HOME

TheInfoList



OR:

VideoCore is a series of low-power mobile multimedia processors originally developed by Alphamosaic Ltd and now owned by
Broadcom Broadcom Inc. is an American multinational corporation, multinational designer, developer, manufacturer, and global supplier of a wide range of semiconductor and infrastructure software products. Broadcom's product offerings serve the data cen ...
. Alphamosaic marketed its first version as a two-dimensional DSP architecture that makes it flexible and efficient enough to decode (as well as encode) a number of multimedia codecs in software while maintaining low power usage. The
semiconductor intellectual property core A semiconductor is a material with electrical conductivity between that of a conductor and an insulator. Its conductivity can be modified by adding impurities (" doping") to its crystal structure. When two regions with different doping level ...
(SIP 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 (and thus dominates the mobile phone market) 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 (more cores and data parallelism, but at a lower clock speed) and have instruction-sets and memory architectures designed for media processing (e.g. saturation arithmetic, and handling of specialised data formats).


3D engine

The VideoCoreIV-AG100-R found in the
Raspberry Pi Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
1, 2 and 3, is documented to fully support
OpenGL ES OpenGL for Embedded Systems (OpenGL ES or GLES) is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accelerate ...
2.0 and
OpenVG OpenVG is an API designed for hardware-accelerated 2D vector graphics. Its primary platforms are mobile phones, gaming & media consoles and consumer electronic devices. It was designed to help manufacturers create more attractive user interfac ...
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 Single instruction, multiple data (SIMD) is a type of parallel computer, parallel processing in Flynn's taxonomy. SIMD describes computers with multiple processing elements that perform the same operation on multiple data points simultaneousl ...
(SIMD) 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 (computer graphics), Vertex and
shader In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene—a process known as '' shading''. Shaders have evolved to perform a variety of s ...
. These "slices" correspond roughly to AMD's Compute Units. At least VC 4 (e.g. in the Raspberry Pi) does not support
S3 Texture Compression S3 Texture Compression (S3TC) (sometimes also called DXTn, DXTC, or BCn) is a group of related lossy texture compression algorithms originally developed by Iourcha et al. of S3 Graphics, Ltd. for use in their Savage 3D computer graphics accele ...
(S3TC). It probably also does not support Adaptive Scalable Texture Compression (ASTC).


Video compression algorithms

Of video compression algorithms currently in wide use, such as H.263, H.264/MPEG-4 AVC,
MPEG-4 MPEG-4 is a group of international standards for the compression of digital audio and visual data, multimedia systems, and file storage formats. It was originally introduced in late 1998 as a group of audio and video coding formats and related ...
,
MPEG-2 MPEG-2 (a.k.a. H.222/H.262 as was defined by the ITU) is a standard for "the generic coding of moving pictures and associated audio information". It describes a combination of lossy video compression and lossy audio data compression methods ...
,
MPEG-1 MPEG-1 is a Technical standard, standard for lossy compression of video and Audio frequency, audio. It is designed to compress VHS-quality raw digital video and CD audio down to about 1.5 Mbit/s (26:1 and 6:1 compression ratios respectively ...
, H.265, Daala,
Theora Theora is a free lossy video compression format. It was developed by the Xiph.Org Foundation and distributed without licensing fees alongside their other free and open media projects, including the Vorbis audio format and the Ogg contai ...
,
VP8 VP8 is an open format, open and royalty-free Video coding format, video compression format released by On2 Technologies in 2008. Initially released as a Proprietary software, proprietary successor to On2's previous VP7 format, VP8 was released a ...
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 (e.g. 720p or 1080p) and up to a certain frame rate (e.g. 30 or 60 frames per second).


VideoCore key features

* Instruction set written with video processing in mind from the start. For example,
saturation arithmetic Saturation arithmetic is a version of arithmetic in which all operations, such as addition and multiplication, are limited to a fixed range between a minimum and maximum value. If the result of an operation is greater than the maximum, it is set ...
so that the sum of two bright pixels does not 'wrap around' into dark values. * An array of
graphics processing unit A graphics processing unit (GPU) is a specialized electronic circuit designed for digital image processing and to accelerate computer graphics, being present either as a discrete video card or embedded on motherboards, mobile phones, personal ...
s for
parallel computing Parallel computing is a type of computing, computation in which many calculations or Process (computing), processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. ...
of video data at relatively low clock speed. * Very high integration puts CPU, GPUs, memory and display circuitry on a single chip, removing the power burden of driving fast off-chip buses.


Variants

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 / BCM2722 processor provides video capabilities for
Apple An apple is a round, edible fruit produced by an apple tree (''Malus'' spp.). Fruit trees of the orchard or domestic apple (''Malus domestica''), the most widely grown in the genus, are agriculture, cultivated worldwide. The tree originated ...
's 5th generation iPod. The VideoCore III-base
BCM2727
processor provides video, still and 3D graphics capabilities for the
Nokia N8 The Nokia N8 is a touchscreen-based smartphone developed by Nokia. Announced on 27 April 2010, the Nokia N8 was the first device to run on the Symbian^3 mobile operating system and it was the company's flagship device for the year. It was rel ...
. The VideoCore I
BCM2763
processor improves on the VideoCore III with support for
1080p 1080p (1920 × 1080 progressively displayed pixels; also known as Full HD or FHD, and BT.709) is a set of HDTV high-definition video modes characterized by 1,920 pixels displayed across the screen horizontally and 1,080 pixels down the sc ...
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 The Nokia 808 PureView is a Symbian-powered smartphone by Nokia. It was first unveiled on 27 February 2012 at the Mobile World Congress (MWC) and released in May 2012. It is the first smartphone to feature Nokia PureView Pro technology, a pix ...
, some versions of
Roku Roku ( ) is a brand of consumer electronics that includes streaming players, smart TVs (and their operating systems), as well as a free TV streaming service. The brand is owned by Roku, Inc., an American company. As of 2024, Roku is the U ...
hardware and the
Raspberry Pi Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
(2835/2836 models for versions 1/2 accordingly). The VideoCore I
BCM28155
processor supports for 1080p encode and decode, improved 2D and 3D graphics with
dual-core A multi-core processor (MCP) is a microprocessor on a single integrated circuit (IC) with two or more separate central processing units (CPUs), called ''cores'' to emphasize their multiplicity (for example, ''dual-core'' or ''quad-core''). Ea ...
ARM Cortex-A9 The ARM Cortex-A9 MPCore is a 32-bit multi-core processor that provides up to 4 cache-coherent cores, each implementing the ARM v7 architecture instruction set. It was introduced in 2007. Features Key features of the Cortex-A9 core are: * ou ...
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 BCM7251 processor supports 2160p60 decode and transcode or dual 1080p60 encode/decode, features improved codec support (H.265), DDR3 and DDR4 support, USB 3.0, PCIe, Gigabit Ethernet and 802.11ac on a
dual-core A multi-core processor (MCP) is a microprocessor on a single integrated circuit (IC) with two or more separate central processing units (CPUs), called ''cores'' to emphasize their multiplicity (for example, ''dual-core'' or ''quad-core''). Ea ...
ARM Cortex-A15 Brahma15 dual core CPU.


Table of SoCs adopting VideoCore SIP blocks


VideoCore products

VideoCore chips can run complete applications – DSP chips are not simply just video DSP chips that require a separate processor to supply and collect data. 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 video decoding was offloaded onto a video accelerator board using a BCM chip. 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 Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
, 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 A real-time operating system (RTOS) is an operating system (OS) for real-time computing applications that processes data and events that have critically defined time constraints. A RTOS is distinct from a time-sharing operating system, such as Unix ...
that is loaded into the VideoCore's VPU during bootup. An architectural overview of the VideoCore based system was compiled (based on reverse engineering & patent research) by Herman Hermitage and is available on GitHub. In June 2014, Emma Anholt left Intel for Broadcom to develop a free driver (
DRM DRM may refer to: Government, military and politics * Defense reform movement, U.S. campaign inspired by Col. John Boyd * Democratic Republic of Madagascar, a former socialist state (1975–1992) on Madagascar * Direction du renseignement militair ...
/ KMS driver and Gallium3D-driver) for VC4 (VideoCore 4). After one week, she 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.


Compute Kernel programming

The open source community has produced a C++ library calle
V3DLib
for directly running custom
compute kernel In computing, a compute kernel is a routine compiled for high throughput accelerators (such as graphics processing units (GPUs), digital signal processors (DSPs) or field-programmable gate arrays (FPGAs)), separate from but used by a main pro ...
s on the VideoCore GPU on all Raspberry Pi's. This allows general-purpose computing on graphics processing units (
GPGPU General-purpose computing on graphics processing units (GPGPU, or less often GPGP) is the use of a graphics processing unit (GPU), which typically handles computation only for computer graphics, to perform computation in applications traditiona ...
) which is not limited by OpenGL's
graphics Graphics () are visual images or designs on some surface, such as a wall, canvas, screen, paper, or stone, to inform, illustrate, or entertain. In contemporary usage, it includes a pictorial representation of the data, as in design and manufa ...
-oriented
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
.


Market competitors

Similar mobile multimedia chip ranges include
Adreno Adreno is a series of graphics processing unit (GPU) semiconductor intellectual property cores developed by Qualcomm and used in many of their SoCs. History Adreno is an integrated graphics processing unit (GPU) within Qualcomm's Snapdrago ...
,
Texas Instruments OMAP OMAP (Open Multimedia Applications Platform) is a family of image processor, image/video processors that was developed by Texas Instruments. They are proprietary system on chips (SoCs) for portable and mobile multimedia application software, ap ...
, Nvidia Tegra, AllWinner A1X and Freescale i.MX. These 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.


See also

* Broadcom Crystal HD


References

{{Graphics Processing Unit Broadcom Digital signal processors Graphics processing units