VideoCore - VideoCore

А Broadcom Процессор VideoCore используется в линейке популярных Raspberry Pi микрокомпьютеры.

VideoCore это малая мощность мобильный мультимедийный процессор, первоначально разработанный Alphamosaic Ltd и теперь принадлежит Broadcom. Его двумерный DSP Архитектура делает его достаточно гибким и эффективным для декодирования (а также кодирования) ряда мультимедийных кодеков в программном обеспечении при сохранении низкого энергопотребления.[1] В ядро интеллектуальной собственности полупроводников (Ядро SIP) пока обнаружено только на SoC Broadcom.

Технические детали

Ограничения мультимедийной системы

Мобильные мультимедийные устройства требуют значительного количества высокоскоростной обработки видео, но при низком энергопотреблении для длительного времени автономной работы. В РУКА ядро процессора имеет высокий IPS на ватт (и таким образом доминирует на рынке мобильных телефонов), но требует сопроцессоров для ускорения видео и контроллеров дисплея для всей системы. Объем данных, передаваемых между этими чипами на высокой скорости, приводит к более высокому энергопотреблению. Специализированные сопроцессоры могут быть оптимизированы для пропускной способности по сравнению с задержкой (больше ядер и параллелизм данных, но с более низкой тактовой частотой), и они имеют наборы команд и архитектуры памяти, предназначенные для обработки мультимедиа (например, арифметика насыщения и обработка специализированных форматов данных) .

3D двигатель

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 × за четыре цикла, что делает его особенно подходящим для обработки потоков четырехпикселей », - говорит Broadcom. Справочное руководство по 3D-архитектуре VideoCore® IV. [2]

«QPU организованы в группы до четырех, называемые срезами, которые используют определенные общие ресурсы», - говорится в документе. ср. Вершина и шейдер.

Эти «срезы» примерно соответствуют Вычислительные блоки AMD.

По крайней мере, VC 4 (например, в Raspberry Pi) не поддерживает Сжатие текстур S3 (S3TC).[2] Наверное, тоже не поддерживает Адаптивное масштабируемое сжатие текстур (АНТК).

Алгоритмы сжатия видео

Об алгоритмах сжатия видео, широко используемых в настоящее время, таких как H.263, H.264 / MPEG-4 AVC, MPEG-4, MPEG-2, MPEG-1, H.265, Даала, Теора, VP8 и VP9, Продукты Broadcom VideoCore поддерживают аппаратное ускорение некоторых операций. В некоторых случаях только декомпрессия, только сжатие или оба до определенного разрешения (например, 720p или 1080p) и до определенной частоты кадров (например, 30 или 60 кадров в секунду).

(Следует понимать, что отсутствие аппаратного ускорения не является абсолютным препятствием для получения какого-либо метода обработки или перекодирования таких потоков, используя универсальные инструкции ЦП, возможно, со скоростью, воспринимаемой медленной по сравнению с аппаратным ускорением, может преодолеть такое препятствие. Предотвращение такого препятствия с помощью более низкого разрешения снижает потребление энергии и устраняет радиаторы, поскольку это способствует сохранению компонентов.)

Ключевые особенности VideoCore

  • Набор инструкций написан с учетом обработки видео с самого начала. Например, арифметика насыщения так что сумма двух ярких пикселей не «переходит» в темные значения.
  • Массив графические процессоры за параллельные вычисления видеоданных на относительно низкой тактовой частоте.
  • Очень высокая степень интеграции объединяет ЦП, графические процессоры, память и схему дисплея на одном кристалле, устраняя нагрузку по питанию, связанную с управлением быстрыми внешними шинами.

Варианты

VC01 на базе VideoCore I обеспечивает видео и мультимедийные возможности для различных телефонов Samsung, включая SCH-V540, SCH-V4200, SCH-V490.[3]

VC02 на базе VideoCore II / BCM2722 процессор предоставляет возможности видео для яблоко с IPod 5-го поколения.[4]

На базе VideoCore III BCM2727 процессор обеспечивает возможности видео, неподвижной и трехмерной графики для Nokia N8.

VideoCore IV BCM2763 процессор улучшен по сравнению с VideoCore III с поддержкой 1080p кодирование и декодирование, а также поддержка камеры с более высоким разрешением и более быстрая 2D и 3D графика при очень низком энергопотреблении. Он используется в Nokia 808 PureView,[5] некоторые версии Року оборудование и Raspberry Pi (2835/2836 моделей для версий 1/2 соответственно).[6]

VideoCore IV BCM28155 процессор поддерживает кодирование и декодирование 1080p, улучшенную 2D и 3D графику с двухъядерный ARM Cortex-A9 Процессор на чипсете BCM28155. Он используется в Samsung Galaxy S II Plus, Samsung Galaxy Гранд и Amazon Fire TV Stick.

Видеоядро V BCM7251 процессор поддерживает декодирование и перекодирование 2160p60 или двойное кодирование / декодирование 1080p60, имеет улучшенную поддержку кодеков (H.265), поддержку DDR3 и DDR4, USB 3.0, PCIe, Gigabit Ethernet и 802.11ac на двухъядерный ARM Cortex-A15 Двухъядерный процессор Brahma15.

Таблица SoC, использующих блоки VideoCore SIP

SoCGPUЦПУМакс дисплейИспользование устройств
МикроархитектураFreq. (МГц )Набор инструкцийМикроархитектураЯдраFreq. (МГц)
VC01VideoCore 1НиктоCIF
BCM2702 (VC02)VideoCore 2НиктоSD PAL / NTSC
BCM2705 (VC05)VideoCore 2НиктоSD PAL / NTSC
BCM2091VideoCore 4НиктоНеопределенные
BCM2722VideoCore 2НиктоSD PAL / NTSC
BCM2724VideoCore 2НиктоSD PAL / NTSC
BCM2727VideoCore 3НиктоHD 720p
BCM11181VideoCore 3НиктоHD 720p
BCM2763VideoCore 4НиктоFull HD 1080p
BCM2820VideoCore 4ARMv6ARM11761600Full HD 1080p
BCM2835VideoCore 4250ARMv6ARM11761700Full HD 1080p
BCM2836VideoCore 4250ARMv7Cortex-A74900Full HD 1080p[а]Raspberry Pi 2[7]
BCM2837VideoCore 4300ARMv8Cortex-A5341200Full HD 1080p[а]Raspberry Pi 3[7]
BCM11182VideoCore 4НиктоFull HD 1080p
BCM11311VideoCore 4ARMv7Cortex-A92Full HD 1080p
BCM21654VideoCore 4ARMv7Cortex-A9 + Cortex-R41+1Full HD 1080p
BCM21654GVideoCore 4ARMv7Cortex-A91до 1000HD 720p
BCM21663VideoCore 4ARMv7Cortex-A91до 1200HD 720p
BCM21664VideoCore 4ARMv7Cortex-A91до 1000HD 720p
BCM21664TVideoCore 4ARMv7Cortex-A91до 1200Full HD 1080p
BCM28150VideoCore 4ARMv7Cortex-A92Full HD 1080p
BCM21553VideoCore 4ARMv6ARM111Full HD 1080p
BCM28145 / 28155VideoCore 4ARMv7Cortex-A921200Full HD 1080p
BCM23550VideoCore 4ARMv7Cortex-A741200Full HD 1080p
BCM7251VideoCore 5ARMv7ARM Cortex-A15216664K 2160p
BCM2711B0VideoCore VI500ARMv8ARM Cortex-A7241500Двойной 4K 2160pRaspberry Pi 4B[11]
SoCМикроархитектураFreq. (МГц )Набор инструкцийМикроархитектураЯдраFreq. (МГц)Макс дисплейИспользование устройств
GPUЦПУ
  1. ^ а б Редактирование /boot/config.txt может обеспечить более высокое разрешение, изменив количество сканирований и частоту пикселей (например, 2560x1080)[9]

Продукты VideoCore

Чипы VideoCore могут запускать полные приложения - это не просто микросхемы DSP для видео, которым требуется отдельный процессор для предоставления и сбора данных. Однако на практике они часто используются как простые ускорители, поскольку компании обычно предпочитают осторожно осваивать новые технологии, а не брать на себя большой риск при переносе большого количества кода приложения из существующей архитектуры на базе ARM. VideoCore также может быть не оптимально энергоэффективным для задач, не связанных с DSP, но может быть соединен с высокоэффективным ядром процессора, например, для типичных задач, не связанных с мультимедиа, редко требуется ширина шины более 32 бит, в то время как конструкция VideoCore использует несколько жилы с широкой шиной. Apple Video iPod - хороший пример такого подхода.

В портативных компьютерах с низким энергопотреблением используются процессоры и графические чипы с низким энергопотреблением, поэтому часто возникают проблемы при воспроизведении видео с полной частотой кадров. Переносить полную операционную систему на чип VideoCore нежелательно или практично, поэтому на плату видеоускорителя необходимо выгружать только декодирование видео (например, с использованием микросхемы BCM70015).[нужна цитата ]

Плееры Blu-ray также могут использовать его как маломощный видеоускоритель.

Отметим, что чипы VideoCore обычно использовались с чипами на базе ARM, последние чипы имеют процессоры VideoCore и ARM.

Поддержка Linux

28 февраля 2014 г., в день второй годовщины Raspberry Pi, Broadcom вместе с фондом Raspberry PI Foundation объявили о выпуске полной документации для графического ядра VideoCore IV и выпуске полного исходного кода графического стека под лицензией Лицензия BSD с 3 пунктами.[12][13][14]

Однако только небольшая часть драйвера была выпущена с открытым исходным кодом; все ускорение видео осуществляется с помощью прошивки, закодированной для ее проприетарного графического процессора, исходный код которого не был открытым. Сама SoC управляется ThreadX -основан ОСРВ который загружается в VPU Videocore во время загрузки.[15]

Обзор архитектуры системы на основе VideoCore был составлен (на основе обратного проектирования и патентных исследований) Herman Hermitage и доступен на GitHub.[16]

В июне 2014 года Эрик Анхольт ушел из Intel в Broadcom, чтобы разработать бесплатный драйвер (DRM /Драйвер KMS и Галлий3D -драйвер) для VC4 (VideoCore 4).[17] Через неделю он сообщил о заметном прогрессе.[18][19]

Я взял на себя новую роль разработчика открытого кода. Я буду работать над созданием Под лицензией MIT Меса 3D и ядро DRM драйвер для 2708 (он же 2835), чип, который находится в Raspberry Pi.

— Эрик Анхольт, http://anholt.livejournal.com/44239.html

Свободно лицензируемый код 3D-графики был передан в Mesa 29 августа 2014 г.[20] и впервые был выпущен как часть Mesa 10.3.

Конкуренты на рынке

Похожие линейки мобильных мультимедийных чипов включают: Адрено, Texas Instruments OMAP, Nvidia Tegra, AllWinner A1X и Freescale i.MX. Они основаны на ARM с массивами графических процессоров.

Источники данных

Страница Broadcom на YouTube[21] есть видеоролики, демонстрирующие возможности обработки видео, но на их веб-сайте представлены только краткие описания продуктов. Подробные данные и инструменты разработки доступны только в NDA, и то только для производителей, у которых на рынке очень много единиц. Однако 28 февраля 2014 года, в день второй годовщины Raspberry Pi, Broadcom вместе с Raspberry Pi Foundation объявили о выпуске полной документации для графического ядра VideoCore IV и полной версии исходного кода графического стека. по лицензии BSD с тремя пунктами.[12][13]

Смотрите также

Рекомендации

  1. ^ Alphamosaic Ltd> Технологии - VideoCore, архивировано 9 февраля 2003 г.
  2. ^ «Могу ли я играть в Morrowind с OpenMW на других платформах, таких как Raspberry Pi?».
  3. ^ [1]
  4. ^ Эккер, Клинт (20 октября 2005 г.). "Видео iPod: Вивисекция". Ars Technica. Получено 29 марта 2008.
  5. ^ http://www.staygrab.com/nokia-808-pureview/
  6. ^ «BCM2835 - Документация Raspberry Pi».
  7. ^ а б c «Часто задаваемые вопросы о Raspberry Pi - часто задаваемые вопросы».
  8. ^ "Roku 2 XS Teardown". Мои кабельные альтернативы. 28 июля 2011 г.
  9. ^ «КЛЕЙКОЕ: HOWTO: создание пользовательских режимов HDMI - стр. 3». Форумы о Raspberry Pi. Получено 24 сентября 2019.
  10. ^ "Opus HD". Ксоло. Архивировано из оригинал 10 октября 2014 г.
  11. ^ «Обзор Raspberry Pi 4: новый золотой стандарт для одноплатных вычислений». Оборудование Тома. 28 августа 2019 г.. Получено 24 сентября 2019.
  12. ^ а б «Raspberry Pi отмечает второй день рождения с планом по выпуску графического драйвера с открытым исходным кодом».
  13. ^ а б "Подарок на день рождения от Broadcom". Raspberry Pi. 28 февраля 2014 г.
  14. ^ "Android для всех: Broadcom дает разработчикам ключи к королевству VideoCore". www.broadcom.com. Получено 24 сентября 2019.
  15. ^ Эрмитаж, Герман (21 марта 2015 г.). «Развлечения и игры с четырехъядерными процессорами Videocoreiv».
  16. ^ "херманэрмитаж / видеокорев".
  17. ^ «Эрик Анхольт покидает команду Intel по работе с графикой Linux для Broadcom». 17 июня 2014 г.
  18. ^ "Драйвер VC4 Linux". Архивировано из оригинал 22 июля 2014 г.. Получено 22 июн 2014.
  19. ^ "VC4 водитель недели 1". 22 июня 2014 г. Архивировано с оригинал 16 августа 2014 г.
  20. ^ "vc4: начальный импорт скелетного драйвера". Библиотека 3D-графики Mesa. 9 августа 2014 г.
  21. ^ «Broadcom Limited».