VideoCore - это маломощный мобильный мультимедийный процессор, первоначально разработанный компанией Alphamosaic Ltd и теперь принадлежит Broadcom. Его двумерная архитектура DSP делает его достаточно гибким и эффективным для декодирования (а также кодирования) ряда мультимедийных кодеков в программном обеспечении при сохранении низкого энергопотребления. Полупроводниковое ядро интеллектуальной собственности (ядро SIP) пока обнаружено только на SoC Broadcom.
Для мобильных мультимедийных устройств требуется много высокоскоростной обработки видео, но при низком энергопотреблении для длительного срока службы батареи. Ядро процессора ARM имеет высокий показатель IPS на ватт (и, таким образом, доминирует на рынке мобильных телефонов), но требует сопроцессоров для ускорения видео и контроллеров дисплея для всей системы. Объем данных, передаваемых между этими чипами на высокой скорости, приводит к более высокому энергопотреблению. Специализированные сопроцессоры могут быть оптимизированы для пропускной способности по сравнению с задержкой (больше ядер и параллелизм данных, но с более низкой тактовой частотой), и они имеют наборы команд и архитектуры памяти, предназначенные для обработки мультимедиа (например, арифметика насыщения и обработка специализированных форматов данных).
VideoCoreIV-AG100-R, найденный в Raspberry Pi 1, 2 и 3, задокументирован для полной поддержки OpenGL ES 2.0 и OpenVG 1.1.
3D-движок состоит из различных подсистем, наиболее распространенными из которых являются QPU. QPU - это 16-канальный процессор с одиночными инструкциями и множественными данными (SIMD).
«Каждый процессор имеет два векторных ALU с плавающей запятой, которые выполняют операции умножения и не умножения параллельно с задержкой одного цикла команд. Внутренне QPU представляет собой 4-процессорный процессор SIMD, мультиплексированный 4 × более четырех циклов, что делает его особенно подходящим для обработки потоков четырех пикселей », - говорится в Справочном руководстве по 3D-архитектуре Broadcom VideoCore® IV. [2]
«QPU организованы в группы до четырех, называемые срезами, которые совместно используют определенные общие ресурсы», - продолжает документ. ср. Вершина и шейдер.
Эти «срезы» примерно соответствуют вычислительным блокам AMD.
По крайней мере, VC 4 (например, в Raspberry Pi) не поддерживает текстуру S3 Сжатие (S3TC). Вероятно, он также не поддерживает Адаптивное масштабируемое сжатие текстур (ASTC).
Из алгоритмов сжатия видео, широко используемых в настоящее время, таких как H.263, H.264 / MPEG-4 AVC, MPEG-4, MPEG-2, MPEG-1, H.265, Daala, Theora, VP8 и VP9, продукты Broadcom VideoCore поддерживают аппаратное ускорение некоторых операций. В некоторых случаях только декомпрессия, только сжатие или оба до определенного разрешения (например, 720p или 1080p) и до определенной частоты кадров (например, 30 или 60 кадров в секунду).
(Следует понимать, что отсутствие аппаратного ускорения не является абсолютным препятствием для получения какого-либо метода обработки или перекодирования таких потоков с использованием инструкций ЦП общего назначения, возможно, со скоростью, воспринимаемой как медленная, в сравнении с аппаратным ускорением, может преодолеть такое препятствие. Предотвращение такого препятствия с помощью более низкого разрешения снижает потребление энергии и устраняет радиаторы, поскольку это способствует сохранению компонентов.)
VC01 на базе VideoCore I обеспечивает видео и мультимедийные возможности для различных телефонов Samsung, включая SCH-V540, SCH-V4200, SCH-V490.
На базе VideoCore II Процессор VC02 / BCM2722 обеспечивает возможности видео для Apple iPod 5-го поколения.
Процессор BCM2727 на базе VideoCore III обеспечивает видео, фото и Возможности 3D-графики для Nokia N8.
Процессор VideoCore IV BCM2763 улучшен по сравнению с VideoCore III с поддержкой кодирования и декодирования 1080p, а также поддержкой камеры с более высоким разрешением и ж aster 2D- и 3D-графика при очень низком энергопотреблении. Он используется в Nokia 808 PureView, некоторых версиях аппаратного обеспечения Roku и Raspberry Pi (модели 2835/2836 для версий 1/2 соответственно).
Процессор VideoCore IV BCM28155 поддерживает кодирование и декодирование 1080p, улучшенную 2D и 3D графику с dual-core процессором ARM Cortex-A9 в Чипсет BCM28155. Он используется в Samsung Galaxy S II Plus, Samsung Galaxy Grand и Amazon Fire TV Stick.
Процессор VideoCore V BCM7251 поддерживает формат 2160p60. декодирование и перекодирование или двойное кодирование / декодирование 1080p60, улучшенная поддержка кодеков (H.265), поддержка DDR3 и DDR4, USB 3.0, PCIe, Gigabit Ethernet и 802.11ac на двухядерном ARM Cortex-A15 Двухъядерный процессор Brahma15.
SoC | GPU | CPU | Максимальный дисплей | Используемые устройства | ||||
---|---|---|---|---|---|---|---|---|
Микроархитектура | Част. (МГц ) | Набор команд | Микроархитектура | Ядра | Частота (МГц) | |||
VC01 | VideoCore 1 | Нет | CIF | Список
| ||||
BCM2702 (VC02) | VideoCore 2 | Нет | SD PAL / NTSC | Список
| ||||
BCM2705 (VC05) | VideoCore 2 | Нет | SD PAL / NTSC | |||||
BCM2091 | VideoCore 4 | Нет | Не указано | |||||
BCM2722 | VideoCore 2 | Нет | SD PAL / NTSC | Список | ||||
BCM2724 | VideoCore 2 | Нет | SD PAL / NTSC | |||||
BCM2727 | VideoCore 3 | Нет | HD 720p | Список | ||||
BCM11181 | VideoCore 3 | Нет | HD 720p | |||||
BCM2763 | VideoCore 4 | Нет | Full HD 1080p | Список | ||||
BCM2820 | VideoCore 4 | ARMv6 | ARM1176 | 1 | 600 | Full HD 1080p | ||
BCM2835 | VideoCore 4 | 250 | ARMv6 | ARM1176 | 1 | 700 | Full HD 1080p | Список |
BCM2836 | VideoCore 4 | 250 | ARMv7 | Cortex-A7 | 4 | 900 | Full HD 1080p | Raspberry Pi 2 |
BCM2837 | VideoCore 4 | 300 | ARMv8 | Cortex-A53 | 4 | 1200 | Full HD 1080p | Raspberry Pi 3 |
BCM11182 | VideoCore 4 | Нет | Full HD 1080p | |||||
BCM11311 | VideoCore 4 | ARMv7 | Cortex-A9 | 2 | Full HD 1080p | |||
BCM21654 | VideoCore 4 | ARMv7 | Cortex-A9 + Cortex-R4 | 1 + 1 | Full HD 1080p | Список | ||
BCM21654G | VideoCore 4 | ARMv7 | Cortex-A9 | 1 | до 1000 | HD 720p | ||
BCM21663 | VideoCore 4 | ARMv7 | Cortex-A9 | 1 | до 1200 | HD 720p | ||
BCM21664 | VideoCore 4 | ARMv7 | Cortex-A9 | 1 | до 1000 | HD 720p | ||
BCM21664T | VideoCore 4 | ARMv7 | Cortex-A9 | 1 | до 1200 | Full HD 1080p | Список
| |
BCM28150 | VideoCore 4 | ARMv7 | Cortex-A9 | 2 | Full HD 1080p | Список
| ||
BCM21553 | VideoCore 4 | ARMv6 | ARM11 | 1 | Full HD 1080p | Список
| ||
BCM28145 / 28155 | VideoCore 4 | ARMv7 | Cortex-A9 | 2 | 1200 | Full HD 1080p | Список | |
BCM23550 | VideoCore 4 | ARMv7 | Cortex-A7 | 4 | 1200 | Full HD 1080p | Список
| |
BCM7251 | VideoCore 5 | ARMv7 | ARM Cortex-A15 | 2 | 1666 | 4K 2160p | ||
BCM2711B0 | VideoCore VI | 500 | ARMv8 | ARM Cortex-A72 | 4 | 1500 | Dual 4K 2160p | Raspberry Pi 4B |
SoC | Микроархитектура | Част. (МГц ) | Набор команд | Микроархитектура | Ядра | Частота (МГц) | Макс. Отображение | Используемые устройства |
GPU | ЦП |
Чипы VideoCore могут запускать полные приложения - это не просто микросхемы DSP видео, которым требуется отдельный процессор для подачи и сбора данных. Однако на практике они часто используются как простые ускорители, поскольку компании обычно предпочитают осторожно осваивать новые технологии, а не брать на себя большой риск при переносе большого количества кода приложения из существующей архитектуры на базе ARM. VideoCore также может быть недостаточно энергоэффективным для задач, не связанных с DSP, но может сочетаться с высокоэффективным ядром ЦП, например, для типичных задач, не связанных с мультимедиа, ширина шины редко превышает 32 бита, в то время как конструкция VideoCore использует несколько ядер с широкой шиной. Хорошим примером является Apple Video iPod. этого подхода.
В портативных компьютерах с низким энергопотреблением используются маломощные процессоры и графические чипы, поэтому Часто возникают проблемы при воспроизведении видео с полной частотой кадров. Переносить полную операционную систему на чип VideoCore нежелательно или практично, поэтому на плату видеоускорителя необходимо выгружать только декодирование видео (например, с использованием чипа BCM70015).
Blu-ray плееры могут также использовать его как маломощный видеоускоритель.
Учитывая, что чипы VideoCore обычно использовались с чипами на базе ARM, последние чипы имеют процессоры VideoCore и ARM.
28 февраля 2014 года, в день второй годовщины Raspberry Pi, Broadcom вместе с фондом Raspberry PI Foundation объявили о выпуске полная документация по графическому ядру VideoCore IV и полный исходный код графического стека в соответствии с лицензией BSD с тремя пунктами.
Однако только небольшая часть драйвера была выпущена как открытый исходный код; все ускорение видео осуществляется с помощью прошивки, закодированной для ее проприетарного графического процессора, исходный код которого не был открытым. Сама SoC управляется ThreadX RTOS, которая загружается в VPU Videocore во время загрузки.
Был составлен обзор архитектуры системы на основе VideoCore (на основе обратного инжиниринга и патентных исследований) Herman Hermitage и доступно на GitHub.
В июне 2014 года Эрик Анхольт покинул Intel и перешел в Broadcom, чтобы разработать бесплатный драйвер (DRM / Драйвер KMS и Gallium3D -driver) для VC4 (VideoCore 4). Через неделю он сообщил о заметном прогрессе.
Я взял на себя новую роль разработчика открытого кода. Я собираюсь работать над созданием драйвера MIT Mesa 3D и ядра DRM для 2708 (он же 2835), чипа Raspberry Pi.
— Эрик Анхольт, http://anholt.livejournal.com/44239.htmlСвободно лицензируемый код трехмерной графики был передан в Mesa 29 августа 2014 г. и впервые был выпущен в составе Mesa 10.3.
Сходные линейки мобильных мультимедийных чипов включают Adreno, Texas Instruments OMAP, Nvidia Tegra, AllWinner A1X и Freescale i.MX. Они основаны на ARM с массивами графических процессоров.
На странице Broadcom YouTube есть видеоролики, демонстрирующие возможности обработки видео, но на их веб-сайте можно найти лишь краткое описание продукта. Подробные данные и инструменты разработки доступны только в рамках NDA, и то только для производителей, у которых есть рынок для очень большого количества устройств. Однако 28 февраля 2014 г., в день второй годовщины Raspberry Pi, Broadcom вместе с Raspberry Pi Foundation объявили о выпуске полной документации для графического ядра VideoCore IV и полной версии исходного кода графического стека. по лицензии BSD с тремя пунктами.