VideoCore

редактировать

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

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

Содержание
  • 1 Технические детали
    • 1.1 Ограничения мультимедийной системы
    • 1.2 3D-движок
    • 1.3 Алгоритмы сжатия видео
    • 1.4 Ключевые особенности VideoCore
    • 1.5 Варианты
    • 1.6 Таблица используемых SoC Блоки SIP VideoCore
  • 2 Продукты VideoCore
  • 3 Поддержка Linux
  • 4 Конкуренты на рынке
  • 5 Источники данных
  • 6 См. Также
  • 7 Ссылки
Технические детали

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

Для мобильных мультимедийных устройств требуется много высокоскоростной обработки видео, но при низком энергопотреблении для длительного срока службы батареи. Ядро процессора ARM имеет высокий показатель 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 × более четырех циклов, что делает его особенно подходящим для обработки потоков четырех пикселей », - говорится в Справочном руководстве по 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 кадров в секунду).

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

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

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

Варианты

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, использующих блоки VideoCore SIP

SoC GPUCPUМаксимальный дисплейИспользуемые устройства
МикроархитектураЧаст. (МГц )Набор команд Микроархитектура ЯдраЧастота (МГц)
VC01VideoCore 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 4ARMv6ARM1176 1600Full HD 1080p
BCM2835 VideoCore 4250ARMv6ARM1176 1700Full HD 1080p Список
BCM2836VideoCore 4250ARMv7Cortex-A7 4900Full HD 1080p Raspberry Pi 2
BCM2837VideoCore 4300ARMv8Cortex-A53 41200Full HD 1080p Raspberry Pi 3
BCM11182 VideoCore 4НетFull HD 1080p
BCM11311 VideoCore 4ARMv7Cortex-A9 2Full HD 1080p
BCM21654 VideoCore 4ARMv7Cortex-A9 + Cortex-R4 1 + 1Full HD 1080p Список
BCM21654G VideoCore 4ARMv7Cortex-A9 1до 1000HD 720p
BCM21663 VideoCore 4ARMv7Cortex-A9 1до 1200HD 720p
BCM21664 VideoCore 4ARMv7Cortex-A9 1до 1000HD 720p
BCM21664T VideoCore 4ARMv7Cortex-A9 1до 1200Full HD 1080p Список
BCM28150 VideoCore 4ARMv7Cortex-A9 2Full HD 1080p Список
BCM21553 VideoCore 4ARMv6ARM11 1Full HD 1080p Список
BCM28145 / 28155 VideoCore 4ARMv7Cortex-A9 21200Full HD 1080p Список
BCM23550 VideoCore 4ARMv7Cortex-A7 41200Full HD 1080p Список
BCM7251 VideoCore 5ARMv7ARM Cortex-A15 216664K 2160p
BCM2711B0VideoCore VI500ARMv8ARM Cortex-A72 41500Dual 4K 2160p Raspberry Pi 4B
SoC МикроархитектураЧаст. (МГц )Набор команд Микроархитектура ЯдраЧастота (МГц)Макс. ОтображениеИспользуемые устройства
GPUЦП
Продукты 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 с тремя пунктами.

Однако только небольшая часть драйвера была выпущена как открытый исходный код; все ускорение видео осуществляется с помощью прошивки, закодированной для ее проприетарного графического процессора, исходный код которого не был открытым. Сама 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 с тремя пунктами.

См. также
Ссылки
Последняя правка сделана 2021-06-18 12:55:15
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте