![Raspberry-Pi-2-Bare-BR](https://upload.wikimedia.org/wikipedia/commons/d/d4/Raspberry-Pi-2-Bare-BR.jpg)
VideoCore is a
low-power mobile
Mobile may refer to:
Places
* Mobile, Alabama, a U.S. port city
* Mobile County, Alabama
* Mobile, Arizona, a small town near Phoenix, U.S.
* Mobile, Newfoundland and Labrador
Arts, entertainment, and media Music Groups and labels
* Mobile ( ...
multimedia processor originally developed by
Alphamosaic Ltd and now owned by
Broadcom
Broadcom Inc. is an American designer, developer, manufacturer and global supplier of a wide range of semiconductor and infrastructure software products. Broadcom's product offerings serve the data center, networking, software, broadband, wirel ...
. Its two-dimensional
DSP
DSP may refer to:
Computing
* Digital signal processing, the mathematical manipulation of an information signal
* Digital signal processor, a microprocessor designed for digital signal processing
* Yamaha DSP-1, a proprietary digital signal ...
architecture 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
In electronic design, a semiconductor intellectual property core (SIP core), IP core, or IP block is a reusable unit of logic, cell, or integrated circuit layout design that is the intellectual property of one party. IP cores can be licensed to ...
(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
In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between th ...
processor core has a high
IPS
IPS, ips, or iPS may refer to:
Science and technology Biology and medicine
* ''Ips'' (genus), a genus of bark beetle
* Induced pluripotent stem cell or iPS cells
* Intermittent photic stimulation, a neuroimaging technique
* Intraparietal sulcus, ...
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 association with Broadcom. The Raspberry Pi project originally leaned towards the promotion of teaching basic ...
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-accel ...
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 interfaces ...
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 processing in Flynn's taxonomy. SIMD can be internal (part of the hardware design) and it can be directly accessible through an instruction set architecture (ISA), but it should ...
(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 spec ...
.
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 accelerat ...
(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 tec ...
,
MPEG-2
MPEG-2 (a.k.a. H.222/H.262 as was defined by the ITU) is a standard for "the generic video coding format, coding of moving pictures and associated audio information". It describes a combination of Lossy compression, lossy video compression and ...
,
MPEG-1
MPEG-1 is a standard for lossy compression of video and 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) without excessive quality loss, making ...
,
H.265
H is the eighth letter of the Latin alphabet.
H may also refer to:
Musical symbols
* H number, Harry Halbreich reference mechanism for music by Honegger and Martinů
* H, B (musical note)
* H, B major
People
* H. (noble) (died after 12 ...
,
Daala
Daala is a video coding format under development by the Xiph.Org Foundation under the lead of Timothy B. Terriberry mainly sponsored by the Mozilla Corporation. Like Theora and Opus, Daala is available free of any royalties and its reference imp ...
,
Theora
Theora is a free file format, free Lossy compression, lossy video compression format. It is developed by the Xiph.Org Foundation and distributed without licensing fees alongside their other free and open media projects, including the Vorbis ...
,
VP8
VP8 is an open and royalty-free video compression format released by On2 Technologies in 2008.
Initially released as a proprietary successor to On2's previous VP7 format, VP8 was released as an open and royalty-free format in May 2010 after Goo ...
and
VP9
VP9 is an open and royalty-free video coding format developed by Google.
VP9 is the successor to VP8 and competes mainly with MPEG's High Efficiency Video Coding (HEVC/H.265).
At first, VP9 was mainly used on Google's video platform YouTube. ...
, 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 to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobi ...
s for
parallel computing
Parallel computing is a type of computation in which many calculations or processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. There are several different fo ...
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
BCM2722processor provides video capabilities for
Apple
An apple is an edible fruit produced by an apple tree (''Malus domestica''). Apple fruit tree, trees are agriculture, cultivated worldwide and are the most widely grown species in the genus ''Malus''. The tree originated in Central Asia, wh ...
's
5th generation iPod.
The VideoCore III-base
BCM2727processor 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 releas ...
.
The VideoCore I
BCM2763processor 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 screen vert ...
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 first unveiled on 27 February 2012 at the Mobile World Congress. It is the first smartphone to feature Nokia's PureView Pro technology, a pixel oversampling technique that reduces an im ...
, some versions of
Roku
Roku ( ) is a brand of hardware digital media players manufactured by American company Roku, Inc. They offer access to streaming media content from online services.
The first Roku model, developed in collaboration with Netflix, was introduce ...
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 association with Broadcom. The Raspberry Pi project originally leaned towards the promotion of teaching basic ...
(2835/2836 models for versions 1/2 accordingly).
The VideoCore I
BCM28155processor supports for 1080p encode and decode, improved 2D and 3D graphics with
dual-core
A multi-core processor is a microprocessor on a single integrated circuit with two or more separate processing units, called cores, each of which reads and executes program instructions. The instructions are ordinary CPU instructions (such a ...
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:
* ...
CPU in BCM28155 chipset. It is used in the
Samsung Galaxy S II Plus
The Samsung Galaxy S II (or Galaxy S2) is a touchscreen-enabled, slate-format Android smartphone designed, developed, and marketed by Samsung Electronics, as the second smartphone of the Samsung Galaxy S series. It has additional software feat ...
,
Samsung Galaxy Grand
The Samsung Galaxy Grand is a smartphone developed by Samsung Electronics, first announced on December 18, 2012. The phone has a dual core Cortex-A9 1.2 GHz processor and a RAM of 1 GB, with an internal memory of 8 GB which can be extended ...
and
Amazon Fire TV Stick.
The VideoCore
BCM7251processor 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 is a microprocessor on a single integrated circuit with two or more separate processing units, called cores, each of which reads and executes program instructions. The instructions are ordinary CPU instructions (such a ...
ARM Cortex-A15
The ARM Cortex-A15 MPCore is a 32-bit processor core licensed by ARM Holdings implementing the ARMv7-A architecture. It is a multicore processor with out-of-order superscalar pipeline running at up to 2.5 GHz.
Overview
ARM has claimed ...
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 (e.g. using the BCM70015 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 association with Broadcom. The Raspberry Pi project originally leaned towards the promotion of teaching basic ...
, 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
BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lice ...
.
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 applications that processes data and events that have critically defined time constraints. An RTOS is distinct from a time-sharing operating system, such as Unix, which ...
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 milita ...
/
KMS driver
The Direct Rendering Manager (DRM) is a subsystem of the Linux kernel responsible for interfacing with GPUs of modern video cards. DRM exposes an API that user-space programs can use to send commands and data to the GPU and perform operations su ...
and
Gallium3D
Mesa, also called Mesa3D and The Mesa 3D Graphics Library, is an open source implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware drivers.
Its most ...
-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.
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 (an anagram of AMD's graphic card brand '' Radeon''), was originally developed ...
,
Texas Instruments OMAP
The OMAP (Open Multimedia Applications Platform) family, developed by Texas Instruments, was a series of image/video processors. They are proprietary system on chips (SoCs) for portable and mobile multimedia applications. OMAP devices generally ...
,
Nvidia Tegra
Tegra is a system on a chip (SoC) series developed by Nvidia for mobile devices such as smartphones, personal digital assistants, and mobile Internet devices. The Tegra integrates an ARM architecture central processing unit (CPU), graphics proc ...
,
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
NDA may stand for:
Military
* National Defence Academy (India), a military academy in India
* National Defence Act, legislation for organizing and funding Canada's military
* National Defense Academy of Japan, a military academy in Japan
* Nig ...
, 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.
See also
*
Broadcom Crystal HD Crystal HD is the Broadcom's hardware Semiconductor intellectual property core, SIP core that performs Video codec, video decoding.
Product description
Crystal HD has been available as chip carrier, single chip high-definition advanced media proces ...
References
{{Graphics Processing Unit
Broadcom
Digital signal processors
Graphics processing units