VideoCore


VideoCore is a low-power mobile multimedia processor originally developed by Alphamosaic Ltd and now owned by Broadcom. Its two-dimensional DSP architecture makes it flexible and efficient enough to decode a number of multimedia codecs in software while maintaining low power usage. The semiconductor intellectual property core has been found so far only on Broadcom SoCs.

Technical details

Multimedia system constraints

Mobile multimedia devices require a lot of high-speed video processing, but at low power for long battery life. The ARM processor core has a high IPS per watt figure, but requires video acceleration coprocessors and display controllers for a complete system. The amount of data passing between these chips at high speed results in higher power consumption.
Specialised co-processors may be optimised for throughput over latency, and have instruction-sets and memory architectures designed for media processing.

3D engine

The VideoCoreIV-AG100-R found in the Raspberry Pi 1, 2 and 3, is documented to fully support OpenGL ES 2.0 and OpenVG 1.1.
The 3D engine is composed of various subsystems, the most abundant being the QPUs. A QPU is a 16-way single instruction, multiple data processor.
"Each processor has two vector floating-point ALUs which carry out multiply and non-multiply operations in parallel with single instruction cycle latency. Internally the QPU is a 4-way SIMD processor multiplexed 4× over four cycles, making it particularly suited to processing streams of quads of pixels," according to Broadcom's VideoCore® IV 3D Architecture Reference Guide.
"QPUs are organized into groups of up to four, termed slices, which share certain common resources," the document continues. cf. Vertex and shader.
These "slices" correspond roughly to AMD's Compute Units.
At least VC 4 does not support S3 Texture Compression. It probably also does not support Adaptive Scalable Texture Compression.

Video compression algorithms

Of video compression algorithms currently in wide use, such as H.263, H.264/MPEG-4 AVC, MPEG-4, MPEG-2, MPEG-1, H.265, Daala, Theora, VP8 and VP9, Broadcom's VideoCore products support hardware acceleration of some operations. In some cases only decompression, only compression or both up to a certain resolution and up to a certain frame rate.

VideoCore key features

The VideoCore I-based VC01 provides video and multimedia capabilities to various Samsung phones, including SCH-V540, SCH-V4200, SCH-V490.
The VideoCore II-based VC02 / processor provides video capabilities for Apple's 5th generation iPod.
The VideoCore III-based processor provides video, still and 3D graphics capabilities for the Nokia N8.
The VideoCore IV processor improves on the VideoCore III with support for 1080p encode and decode, along with higher resolution camera support and faster 2D and 3D graphics, all at very low power. It is used in the Nokia 808 PureView, some versions of Roku hardware and the Raspberry Pi.
The VideoCore IV processor supports for 1080p encode and decode, improved 2D and 3D graphics with dual-core ARM Cortex-A9 CPU in BCM28155 chipset. It is used in the Samsung Galaxy S II Plus, Samsung Galaxy Grand and Amazon Fire TV Stick.
The VideoCore V processor supports 2160p60 decode and transcode or dual 1080p60 encode/decode, features improved codec support, DDR3 and DDR4 support, USB 3.0, PCIe, Gigabit Ethernet and 802.11ac on a dual-core ARM Cortex-A15 Brahma15 dual core CPU.

Table of SoCs adopting VideoCore SIP blocks

VideoCore products

VideoCore chips can run complete applications - they are not simply video DSP chips that require a separate processor to supply and collect data. In practice though, they are often used like simple accelerators, as companies usually prefer to cautiously assimilate new technology rather than take a big risk in porting a large amount of application code from an existing ARM-based design. The VideoCore may also not be optimally power-efficient at non-DSP tasks, but may be coupled with a highly efficient CPU core, for instance typical non-multimedia tasks rarely require more than 32-bit bus width, while the VideoCore design employs multiple wide-bus-width cores. The Apple video iPod is a good example of this approach.
Low-power laptops use low-power processors and graphics chips, and therefore often struggle to play video at full frame rates. It isn't desirable or practical to port a full operating system onto a VideoCore chip, so only the video decoding need be offloaded onto a video accelerator board.
Blu-ray players can also use it as a low-power video accelerator.
Noting that VideoCore chips were usually used with ARM-based chips, the latest chips have VideoCore and ARM processors.

Linux support

On 28 February 2014, on the day of the second anniversary of the Raspberry Pi, Broadcom, together with the Raspberry PI foundation, announced the release of full documentation for the VideoCore IV graphics core, and a complete source release of the graphics stack under a 3-clause BSD license.
However, only a minor part of the driver was released as open source; all of the video acceleration is done using a firmware coded for its proprietary GPU, which was not open sourced. The entire SoC itself is managed by a ThreadX-based RTOS that is loaded into the Videocore's VPU during bootup.
An architectural overview of the VideoCore based system was compiled by Herman Hermitage and is available on GitHub.
In June 2014, Eric Anholt left Intel for Broadcom to develop a free driver for VC4. After one week, he reported noteworthy progress.
The freely licensed 3D graphics code was committed to Mesa on 29 August 2014, and was first released as part of Mesa 10.3.

Market competitors

Similar mobile multimedia chip ranges include Adreno, Texas Instruments OMAP, Nvidia Tegra, AllWinner A1X and Freescale i.MX. These four are ARM-based with arrays of graphics processing units.

Data sources

The Broadcom YouTube page has videos demonstrating the video processing capability, but their website only goes as far as providing product briefs. Detailed data and development tools are only available under NDA, and then only for manufacturers with a market for very many units. However, on 28 February 2014, on the day of the second anniversary of the Raspberry Pi, Broadcom, together with the Raspberry Pi Foundation, announced the release of full documentation for the VideoCore IV graphics core, and a complete source release of the graphics stack under a 3-clause BSD license.