Private:OSS Multimedia Libraries

From NMSL

Computer Vision and Image Processing Libraries

  • QVision QVision is a free and open source library oriented to the development of computer vision, image/video processing, and scientific computing applications. It is based on the Qt application framework, so it is an object-oriented and cross-platform library for C++. The library is mainly intended for educational and research purposes, usability and performance. It has a clean and well documented, Qt-style, object oriented API.
  • OpenCV (Open Source Computer Vision) A library of programming functions for real time computer vision. OpenCV is released under a BSD license, it is free for both academic and commercial use. It has C++, C, Python and soon Java interfaces running on Windows, Linux, Android and Mac. The library has >2500 optimized algorithms.
  • Point Cloud Library (PCL) The Point Cloud Library is a standalone, large scale, open project for 3D point cloud processing. The PCL framework contains numerous state-of-the art algorithms including filtering, feature estimation, surface reconstruction, registration, model fitting and segmentation, as well as higher level tools for performing mapping and object recognition. PCL is released under the terms of the BSD license. It is free for commercial and research use. It is financially supported by Willow Garage, NVidia, Google, Toyota, and Trimble.


Video Stream Manipulation and Coding

  • VLC Media Player A free and open source cross-platform multimedia player and framework that plays most multimedia files as well as DVD, Audio CD, VCD, and various streaming protocols.
  • x264 A free software library and application for encoding video streams into the H.264/MPEG-4 AVC format, and is released under the terms of the GNU GPL.
  • Multicat The multicat package contains a set of tools designed to easily and efficiently manipulate multicast streams in general, and MPEG-2 Transport Streams (ISO/IEC 13818-1) in particular. The multicat suite of applications is very lightweight and designed to operate in tight environments. Memory and CPU usages are kept to a minimum, and they feature only one thread of execution.
  • GPAC an Open Source multimedia framework for research and academic purposes. The project covers different aspects of multimedia, with a focus on presentation technologies (graphics, animation and interactivity). GPAC provides three sets of tools based on a core library called libgpac: a multimedia player (called Osmo4), a multimedia packager (called MP4Box), and some server tools (under development). GPAC is cross-platform. It is written in (almost 100% ANSI) C for portability reasons, attempting to keep the memory footprint as low as possible. It is currently running under Windows, Linux, MacOSX, Android, iOS (iPhone and iPad), WindowsMobile, Embedded Linux (familiar 8, GPE) and some SymbianOS systems.
  • VDPAU (Video Decode and Presentation API for Unix) An open source library (libvdpau) and API originally designed by Nvidia for its GeForce 8 series and later GPU hardware, targeted at the X Window System on Unix-based operating systems (including Linux, FreeBSD, and Solaris).This VDPAU API allows video programs to offload portions of the video decoding process and video post-processing to the GPU video-hardware. Currently, the portions capable of being offloaded by VDPAU onto the GPU are motion compensation (mo comp), inverse discrete cosine transform (iDCT), VLD (variable-length decoding) and deblocking for MPEG-1, MPEG-2, MPEG-4 ASP (MPEG-4 Part 2), H.264/MPEG-4 AVC and VC-1, WMV3/WMV9 encoded videos. Which specific codecs of these that can be offloaded to the GPU depends on the generation version of the GPU hardware; specifically, to also decode MPEG-4 ASP (MPEG-4 Part 2), Xvid/OpenDivX (DivX 4), and DivX 5 formats, a GeForce 200M (2xxM) Series (the eleventh generation of Nvidia's GeForce graphics processing units) or newer GPU hardware is required. VDPAU can be described as the X Window System equivalent of the Microsoft's DxVA (DirectX Video Acceleration) API for Windows.


GPU Implementations of Computer Vision Tools

  • CUDA SURF An implementation of the popular SURF descriptor, an approximation of SIFT, on commodity graphics hardware and achieve real-time performance even for HD images.
  • SiftGPU An implementation of SIFT for GPU. SiftGPU processes pixels parallely to build Gaussian pyramids and detect DoG Keypoints. Based on GPU list generation, SiftGPU then uses a GPU/CPU mixed method to efficiently build compact keypoint lists. Finally keypoints are processed parallely to get their orientations and descriptors. SiftGPU also includes a GPU exhaustive/guided sift matcher SiftMatchGPU. It basically multiplies the descriptor matrix on GPU and finds the closest feature matches on GPU. Both GLSL and CUDA implementations are provided.
  • OpenVidia: Parallel GPU Computer Vision OpenVIDIA projects implement computer vision algorithms running on on graphics hardware such as single or multiple graphics processing units(GPUs) using OpenGL, Cg and CUDA-C. OpenVIDIA projects utilize the computational power of the GPU to provide real--time computer vision and imaging much faster than the CPU is capable of, while offloading the CPU to allow it to conduct concurrent tasks and also using less power. Additional OpenVidia projects include Stereo Vision, Optical Flow and Feature Tracking algorithms.
  • GpuCV GpuCV is an open-source GPU-accelerated image processing and Computer Vision library. It offers an Intel's OpenCV-like programming interface for easily porting existing OpenCV applications, while taking advantage of the high level of parallelism and computing power available from recent graphics processing units (GPUs). It is distributed as free software under the CeCILL-B license.
  • CudaCuts An implementation of the push-relabel algorithm for graph cuts on the GPU.


Utilities

  • The GNU Scientific Library (GSL) A numerical library for C and C++ programmers. It is free software under the GNU General Public License. The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite.