ArticleslgStudy

science

VideoCore

VideoCore is a science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand VideoCore rather than just read about it. In short: VideoCore is a series of low-power mobile multimedia processors originally developed by Alphamosaic Ltd and now owned by Broadcom. 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.

VideoCore — main illustration
VideoCore — illustration

Key takeaways

  • VideoCore belongs to science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect VideoCore to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of VideoCore from memory before moving on to harder problems.

Reference excerpt

VideoCore is a series of low-power mobile multimedia processors originally developed by Alphamosaic Ltd and now owned by Broadcom. 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 (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 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 (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. [1] "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 (e.g. in the Raspberry Pi) does not support S3 Texture Compression (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-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 (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 so that the sum of two bright pixels does not 'wrap around' into dark values. An array of graphics processing units for parallel computing 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's 5th generation iPod. The VideoCore III-based BCM2727 processor provides video, still and 3D graphics capabilities for the Nokia N8. The VideoCore IV BCM2763 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 (2835/2836 models for versions 1/2 accordingly). The VideoCore IV BCM28155 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 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 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, 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 (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/KMS driver and Gallium3D-driver) for VC4 (VideoCore 4). After one week, she reported noteworthy progress.

I've taken on a new role as an open source developer there. I'm going to be working on building an MIT-licensed Mesa 3D and kernel DRM driver for the 2708 (aka the 2835), the chip that's in the Raspberry Pi. The freely licensed 3D graphics code was committed to Mesa on 29 August 2014, and was first released as part of Mesa 10.3.

… excerpt ends here. Continue reading the full article.

Illustrations

VideoCore: A Broadcom VideoCore processor powers the line of popular Raspberry Pi micro-computers.
A Broadcom VideoCore processor powers the line of popular Raspberry Pi micro-computers.

Worked examples

Example 1 — a first encounter with VideoCore

Start with the simplest possible case. Write down what VideoCore claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to VideoCore before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about VideoCore ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of VideoCore

In research
VideoCore appears in science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses VideoCore in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
VideoCore is common in secondary-school and first-year university syllabi. It links to neighbouring topics Broadcom, Digital signal processors, Graphics processing units, so understanding it makes those chapters shorter.
In everyday life
Look for VideoCore outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study VideoCore in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what VideoCore means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain VideoCore out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is VideoCore in simple terms?

VideoCore is a series of low-power mobile multimedia processors originally developed by Alphamosaic Ltd and now owned by Broadcom. 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 multi…

Why does VideoCore matter?

Because it connects several science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study VideoCore?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on VideoCore.

Tags

  • Broadcom
  • Digital signal processors
  • Graphics processing units

Keep exploring