CoreAVC

Last updated
CoreAVC
Developer(s) CoreCodec, Inc
Initial releaseJanuary 2, 2006 (2006-01-02)
Final release 3.0.1.0 (September 9, 2011;12 years ago (2011-09-09) [1] ) [±]
Preview release non [±]
Written inCore-C (modular ANSI C), C++
Operating system Windows, CE, Mobile; macOS, Linux (OEM only), Symbian, iOS, Palm OS, Android
Available inEnglish
Type Codec
License Proprietary
Website corecodec.com [ dead link ]

CoreAVC was a proprietary codec for decoding the H.264/MPEG-4 AVC (Advanced Video Coding) video format.

Contents

In 2010, when CoreAVC was a software-only decoder, it was one of the fastest software decoders, but still slower than hardware-based ones. [2] CoreAVC supports all H.264 Profiles except for 4:2:2 and 4:4:4.

From 2009, CoreAVC introduced support to two forms of GPU hardware acceleration for H.264 decoding on Windows: CUDA (Nvidia only, in 2009) and DXVA (Nvidia and ATI GPUs, in 2011).

CoreAVC was included as a part of the CorePlayer Multimedia Framework and was being used in the now defunct desktop client by Joost [3] a system that was distributing videos over the Internet using peer-to-peer TV technology.

CoreAVC-For-Linux DMCA complaint

An open-source project named CoreAVC-For-Linux hosted at Google Code patches the loader code in the open source media player program MPlayer and allows it to use the Windows only CoreAVC DirectShow filter in free software environments. It does not include CoreAVC, but simply allows MPlayer to make use of it. This project also contains patches to use the proprietary codec in MythTV, open source software for Home Theater Personal Computers and the media player xine.

In May 2008 the CoreAVC-For-Linux project was taken down by Google due to a DMCA complaint. [4] There was speculation about this DMCA complaint, because the project as a wrapper did not use any copyrighted material, but maybe reverse engineering techniques were used without prior permission, which CoreCodec, Inc. interpreted as a violation of the DMCA. [5] CoreCodec has stated that reverse engineering was the reason, and it was in error [6] and has apologized to the community. [7]

CoreAVC-For-Linux is now back online and is recognized and supported by CoreCodec. Despite this, the project's future is currently in doubt as the developer stated they are quite busy and do not have enough time to continue working on it. The developer is currently requesting help from any developers interested in contributing to the project. [8]

Multi-platform support

In early 2008, due to popular demand, CoreCodec ported the until then Windows-only to a plethora of platforms and CPU architectures. CoreAVC is now supported on the operating systems Windows, macOS and Linux, as well as mobile-embedded operating systems like Palm OS, Symbian, Windows CE and Windows Mobile - although the Linux version is not available as retail but only for OEMs. CoreAVC runs not only on 32-bit and 64-bit x86, but also on PowerPC (including AltiVec support), ARM9, ARM11 and MIPS. As for GPUs, supported are Intel 2700G, ATI Imageon, Marvell Monahan, (limited) Qualcomm QTv.

In February 2009, CoreCodec released an update to CoreAVC that implemented support for Nvidia CUDA. CUDA allows selected Nvidia graphics cards to assist in the decoding of video. In March 2011, CoreCodec introduced support for DXVA. Like CUDA, DXVA allows ATI and NVIDIA based graphics cards to assist in the decoding of video. [1]

Related Research Articles

<span class="mw-page-title-main">Graphics processing unit</span> Specialized electronic circuit; graphics accelerator

A graphics processing unit (GPU) is a specialized electronic circuit initially designed to accelerate computer graphics and image processing. After their initial design, GPUs were found to be useful for non-graphic calculations involving embarrassingly parallel problems due to their parallel structure. Other non-graphical uses include the training of neural networks and cryptocurrency mining.

SMPTE 421, informally known as VC-1, is a video coding format. Most of it was initially developed as Microsoft's proprietary video format Windows Media Video 9 in 2003. With some enhancements including the development of a new Advanced Profile, it was officially approved as a SMPTE standard on April 3, 2006. It was primarily marketed as a lower-complexity competitor to the H.264/MPEG-4 AVC standard. After its development, several companies other than Microsoft asserted that they held patents that applied to the technology, including Panasonic, LG Electronics and Samsung Electronics.

<span class="mw-page-title-main">Free and open-source graphics device driver</span> Software that controls computer-graphics hardware

A free and open-source graphics device driver is a software stack which controls computer-graphics hardware and supports graphics-rendering application programming interfaces (APIs) and is released under a free and open-source software license. Graphics device drivers are written for specific hardware to work within a specific operating system kernel and to support a range of APIs used by applications to access the graphics hardware. They may also control output to the display if the display driver is part of the graphics hardware. Most free and open-source graphics device drivers are developed by the Mesa project. The driver is made up of a compiler, a rendering API, and software which manages access to the graphics hardware.

DirectX Video Acceleration (DXVA) is a Microsoft API specification for the Microsoft Windows and Xbox 360 platforms that allows video decoding to be hardware-accelerated. The pipeline allows certain CPU-intensive operations such as iDCT, motion compensation and deinterlacing to be offloaded to the GPU. DXVA 2.0 allows more operations, including video capturing and processing operations, to be hardware-accelerated as well.

X-Video Motion Compensation (XvMC), is an extension of the X video extension (Xv) for the X Window System. The XvMC API allows video programs to offload portions of the video decoding process to the GPU video-hardware. In theory this process should also reduce bus bandwidth requirements. Currently, the supported portions to be offloaded by XvMC onto the GPU are motion compensation and inverse discrete cosine transform (iDCT) for MPEG-2 video. XvMC also supports offloading decoding of mo comp, iDCT, and VLD for not only MPEG-2 but also MPEG-4 ASP video on VIA Unichrome hardware.

ATI Avivo is a set of hardware and low level software features present on the ATI Radeon R520 family of GPUs and all later ATI Radeon products. ATI Avivo was designed to offload video decoding, encoding, and post-processing from a computer's CPU to a compatible GPU. ATI Avivo compatible GPUs have lower CPU usage when a player and decoder software that support ATI Avivo is used. ATI Avivo has been long superseded by Unified Video Decoder (UVD) and Video Coding Engine (VCE).

Unified Video Decoder is the name given to AMD's dedicated video decoding ASIC. There are multiple versions implementing a multitude of video codecs, such as H.264 and VC-1.

The following is a list of H.264/MPEG-4 AVC products and implementations.

PureVideo is Nvidia's hardware SIP core that performs video decoding. PureVideo is integrated into some of the Nvidia GPUs, and it supports hardware decoding of multiple video codec standards: MPEG-2, VC-1, H.264, HEVC, and AV1. PureVideo occupies a considerable amount of a GPU's die area and should not be confused with Nvidia NVENC. In addition to video decoding on chip, PureVideo offers features such as edge enhancement, noise reduction, deinterlacing, dynamic contrast enhancement and color enhancement.

Video Acceleration API (VA-API) is an open source application programming interface that allows applications such as VLC media player or GStreamer to use hardware video acceleration capabilities, usually provided by the graphics processing unit (GPU). It is implemented by the free and open-source library libva, combined with a hardware-specific driver, usually provided together with the GPU driver.

X-Video Bitstream Acceleration (XvBA), designed by AMD Graphics for its Radeon GPU and APU, is an arbitrary extension of the X video extension (Xv) for the X Window System on Linux operating-systems. XvBA API allows video programs to offload portions of the video decoding process to the GPU video-hardware. Currently, the portions designed to be offloaded by XvBA onto the GPU are currently motion compensation (MC) and inverse discrete cosine transform (IDCT), and variable-length decoding (VLD) for MPEG-2, MPEG-4 ASP, MPEG-4 AVC (H.264), WMV3, and VC-1 encoded video.

<span class="mw-page-title-main">Fixstars Solutions</span> American technology company

Fixstars Solutions, Inc. is a software and services company specializing in multi-core processors, particularly in Nvidia's GPU and CUDA environment, IBM Power7, and Cell. They also specialize in solid-state drives and currently manufacture the world's largest SATA drives.

Video Decode and Presentation API for Unix (VDPAU) is a royalty-free application programming interface (API) as well as its implementation as free and open-source library distributed under the MIT License. VDPAU is also supported by Nvidia.

Intel Quick Sync Video is Intel's brand for its dedicated video encoding and decoding hardware core. Quick Sync was introduced with the Sandy Bridge CPU microarchitecture on 9 January 2011 and has been found on the die of Intel CPUs ever since.

<span class="mw-page-title-main">Distributed Codec Engine</span>

Distributed Codec Engine (DCE) is an API and its implementation as software library ("libdce") by Texas Instruments. The library was released under the Revised BSD License and some additional terms.

Video Code Engine is AMD's video encoding application-specific integrated circuit implementing the video codec H.264/MPEG-4 AVC. Since 2012 it was integrated into all of their GPUs and APUs except Oland.

Crystal HD is Broadcom's hardware semiconductor intellectual property (SIP) core that performs video decoding.

Nvidia NVENC is a feature in Nvidia graphics cards that performs video encoding, offloading this compute-intensive task from the CPU to a dedicated part of the GPU. It was introduced with the Kepler-based GeForce 600 series in March 2012.

<span class="mw-page-title-main">MulticoreWare</span>

MulticoreWare Inc is a software development company, offering products and services related to HEVC video compression, machine learning, compilers for heterogeneous computing, and software performance optimization services. MulticoreWare's customers include AMD, Microsoft, Google, Qualcomm and Telestream. The company was founded in 2009 and has offices in the United States, China and India.

Nvidia NVDEC is a feature in its graphics cards that performs video decoding, offloading this compute-intensive task from the CPU.

References

  1. 1 2 "CoreAVC Changelog". www.corecodec.com. Archived from the original on 2 January 2017. Retrieved 17 December 2020.
  2. CoreAVC stronger than AVIVO & PureVideo ? Archived 2007-06-10 at the Wayback Machine (April 2006)
  3. Joost - FAQ: Technology Archived 2007-05-17 at the Wayback Machine
  4. "CoreCodec complains of copied code". Chilling Effects Clearinghouse. 2008-04-30. Retrieved 2008-05-05.
  5. "DMCA takedown of coreavc-for-linux/CoreCodec Homepage". Archived from the original on 2008-05-09. Retrieved 2008-05-09.
  6. DMCA takedown of coreavc-for-linux, message 5780 (May 2008)
  7. DMCA takedown of coreavc-for-linux, message 5785(May 2008)
  8. "coreavc-for-linux". coreavc-for-linux. 2012-06-10. Retrieved 2012-06-10.