stringtranslate.com

Núcleo de vídeo

Un procesador Broadcom VideoCore impulsa la línea de microcomputadoras Raspberry Pi populares.

VideoCore es una serie de procesadores multimedia móviles de bajo consumo desarrollados originalmente por Alphamosaic Ltd y ahora propiedad de Broadcom . Alphamosaic comercializó su primera versión como una arquitectura DSP bidimensional que la hace lo suficientemente flexible y eficiente para decodificar (y codificar) una serie de códecs multimedia en software manteniendo un bajo consumo de energía. [1] El núcleo de propiedad intelectual de semiconductores (núcleo SIP) hasta ahora sólo se ha encontrado en los SoC de Broadcom.

Detalles técnicos

Restricciones del sistema multimedia

Los dispositivos multimedia móviles requieren mucho procesamiento de vídeo de alta velocidad, pero con poca energía para prolongar la duración de la batería. El núcleo del procesador ARM tiene una alta cifra de IPS por vatio (y por lo tanto domina el mercado de teléfonos móviles), pero requiere coprocesadores de aceleración de video y controladores de pantalla para un sistema completo. La cantidad de datos que pasan entre estos chips a alta velocidad da como resultado un mayor consumo de energía. Los coprocesadores especializados pueden optimizarse para el rendimiento sobre la latencia (más núcleos y paralelismo de datos, pero a una velocidad de reloj más baja) y tienen conjuntos de instrucciones y arquitecturas de memoria diseñadas para el procesamiento de medios (por ejemplo, aritmética de saturación y manejo de formatos de datos especializados). .

motor 3D

Está documentado que el VideoCoreIV-AG100-R que se encuentra en Raspberry Pi 1, 2 y 3 es totalmente compatible con OpenGL ES 2.0 y OpenVG 1.1.

El motor 3D está compuesto por varios subsistemas, siendo los más abundantes los QPU. Una QPU es un procesador SIMD ( una sola instrucción y múltiples datos ) de 16 vías .

"Cada procesador tiene dos ALU vectoriales de punto flotante que llevan a cabo operaciones de multiplicación y no multiplicación en paralelo con una latencia de ciclo de instrucción única. Internamente, la QPU es un procesador SIMD de 4 vías multiplexado 4× en cuatro ciclos, lo que lo hace particularmente adecuado para procesar secuencias de quads de píxeles", según la Guía de referencia de arquitectura 3D VideoCore® IV de Broadcom. [1]

"Las QPU están organizadas en grupos de hasta cuatro, denominados sectores, que comparten ciertos recursos comunes", continúa el documento. cf. Vértice y sombreador .

Estas "porciones" corresponden aproximadamente a las Compute Units de AMD .

Al menos VC 4 (por ejemplo, en Raspberry Pi) no admite la compresión de texturas S3 (S3TC). [2] Probablemente tampoco sea compatible con la compresión de textura escalable adaptativa (ASTC).

Algoritmos de compresión de vídeo

De los algoritmos de compresión de vídeo actualmente de uso generalizado, como H.263 , H.264/MPEG-4 AVC , MPEG-4 , MPEG-2 , MPEG-1 , H.265 , Daala , Theora , VP8 y VP9 , ​​VideoCore de Broadcom Los productos admiten la aceleración de hardware de algunas operaciones. En algunos casos sólo descompresión, sólo compresión o ambas hasta una determinada resolución (por ejemplo, 720p o 1080p) y hasta una determinada velocidad de fotogramas (por ejemplo, 30 o 60 fotogramas por segundo).

Funciones clave de VideoCore

Variantes

El VC01 basado en VideoCore I proporciona capacidades de video y multimedia a varios teléfonos Samsung, incluidos SCH-V540, SCH-V4200, SCH-V490. [3]

El procesador VC02/BCM2722 basado en VideoCore II proporciona capacidades de vídeo para el iPod de quinta generación de Apple . [4]

El procesador BCM2727 basado en VideoCore III proporciona capacidades de vídeo, fotografías y gráficos 3D para el Nokia N8 .

El procesador VideoCore IV BCM2763 mejora el VideoCore III con soporte para codificación y decodificación de 1080p , junto con soporte para cámaras de mayor resolución y gráficos 2D y 3D más rápidos, todo con muy bajo consumo. Se utiliza en el Nokia 808 PureView , [5] algunas versiones del hardware de Roku y la Raspberry Pi (modelos 2835/2836 para las versiones 1/2 en consecuencia). [6]

El procesador VideoCore IV BCM28155 admite codificación y decodificación de 1080p, gráficos 2D y 3D mejorados con CPU ARM Cortex-A9 de doble núcleo en el chipset BCM28155. Se utiliza en el Samsung Galaxy S II Plus , Samsung Galaxy Grand y Amazon Fire TV Stick .

El procesador VideoCore V BCM7251 admite decodificación y transcodificación de 2160p60 o codificación/decodificación dual de 1080p60, presenta soporte de códec mejorado (H.265), soporte DDR3 y DDR4, USB 3.0, PCIe, Gigabit Ethernet y 802.11ac en un procesador ARM Cortex de doble núcleo. CPU A15 Brahma15 de doble núcleo.

Tabla de SoC que adoptan bloques VideoCore SIP

  1. ^ ab La edición /boot/config.txtpuede generar resoluciones más altas cambiando el recuento de escaneo y los relojes de píxeles (es decir, 2560 x 1080) [9]

Productos VideoCore

Los chips VideoCore pueden ejecutar aplicaciones completas; no son simplemente chips DSP de vídeo que requieren un procesador independiente para suministrar y recopilar datos. Sin embargo, en la práctica, a menudo se utilizan como simples aceleradores, ya que las empresas suelen preferir asimilar con cautela la nueva tecnología en lugar de correr un gran riesgo al portar una gran cantidad de código de aplicación desde un diseño existente basado en ARM. Es posible que VideoCore tampoco tenga una eficiencia energética óptima en tareas que no sean DSP, pero puede combinarse con un núcleo de CPU altamente eficiente; por ejemplo, las tareas típicas no multimedia rara vez requieren más de 32 bits de ancho de bus, mientras que el diseño de VideoCore emplea múltiples Núcleos de gran ancho de bus. El vídeo iPod de Apple es un buen ejemplo de este enfoque.

Las computadoras portátiles de bajo consumo utilizan procesadores y chips gráficos de bajo consumo y, por lo tanto, a menudo tienen dificultades para reproducir videos a velocidades de cuadros completas. No es deseable ni práctico trasladar un sistema operativo completo a un chip VideoCore, por lo que sólo es necesario descargar la decodificación de vídeo en una placa aceleradora de vídeo (por ejemplo, utilizando el chip BCM70015). [ cita necesaria ]

Los reproductores de Blu-ray también pueden utilizarlo como acelerador de vídeo de bajo consumo.

Teniendo en cuenta que los chips VideoCore se usaban generalmente con chips basados ​​en ARM, los últimos chips tienen procesadores VideoCore y ARM.

soporte linux

El 28 de febrero de 2014, el día del segundo aniversario de Raspberry Pi , Broadcom, junto con la Fundación Raspberry Pi, anunció el lanzamiento de la documentación completa para el núcleo de gráficos VideoCore IV y un lanzamiento completo del código fuente de la pila de gráficos bajo un Licencia BSD de 3 cláusulas . [13] [14] [15]

Sin embargo, sólo una pequeña parte del controlador se publicó como código abierto; Toda la aceleración de video se realiza mediante un firmware codificado para su GPU patentada, que no era de código abierto. Todo el SoC en sí está administrado por un RTOS basado en ThreadX que se carga en la VPU de VideoCore durante el arranque. [dieciséis]

Herman Hermitage compiló una descripción general de la arquitectura del sistema basado en VideoCore (basada en ingeniería inversa e investigación de patentes) y está disponible en GitHub. [17]

En junio de 2014, Emma Anholt dejó Intel por Broadcom para desarrollar un controlador gratuito ( controlador DRM / KMS y controlador Gallium3D ) para VC4 (VideoCore 4). [18] Después de una semana, informó de un progreso notable. [19] [20]

Asumí un nuevo rol como desarrollador de código abierto allí. Voy a trabajar en la construcción de un controlador DRM de núcleo y Mesa 3D con licencia del MIT para el 2708 (también conocido como 2835), el chip que está en la Raspberry Pi . [21]

El código de gráficos 3D con licencia gratuita se envió a Mesa el 29 de agosto de 2014 [22] y se lanzó por primera vez como parte de Mesa 10.3.

Computar programación del kernel

La comunidad de código abierto ha producido una biblioteca C++ llamada V3DLib para ejecutar directamente núcleos de cálculo personalizados en la GPU VideoCore en todas las Raspberry Pi. Esto permite la computación de propósito general en unidades de procesamiento de gráficos ( GPGPU ) que no está limitada por la API orientada a gráficos de OpenGL .

Competidores del mercado

Gamas de chips multimedia móviles similares incluyen Adreno , Texas Instruments OMAP , Nvidia Tegra , AllWinner A1X y Freescale i.MX. Están basados ​​en ARM con conjuntos de unidades de procesamiento de gráficos.

Fuentes de datos

La página de YouTube de Broadcom [23] tiene vídeos que demuestran la capacidad de procesamiento de vídeo, pero su sitio web sólo llega a proporcionar resúmenes del producto. Los datos detallados y las herramientas de desarrollo solo están disponibles bajo NDA , y solo para fabricantes con un mercado para muchas unidades. Sin embargo, el 28 de febrero de 2014, el día del segundo aniversario de Raspberry Pi, Broadcom, junto con la Fundación Raspberry Pi, anunció la publicación de la documentación completa para el núcleo de gráficos VideoCore IV y una publicación fuente completa de la pila de gráficos. bajo una licencia BSD de 3 cláusulas. [13] [14]

Ver también

Referencias

  1. ^ Alphamosaic Ltd > Tecnología - VideoCore, archivado el 9 de febrero de 2003.
  2. ^ "¿Puedo jugar a Morrowind con OpenMW en otras plataformas como Raspberry Pi?". 6 de agosto de 2011.
  3. ^ "Presentación de Broadcom a cargo de Yossi Cohen" (PDF) .
  4. ^ Ecker, Clint (20 de octubre de 2005). "Video iPod: Vivisección". Ars Técnica . Consultado el 29 de marzo de 2008 .
  5. ^ "Nokia 808 PureView con una increíble cámara de 41 megapíxeles". estanciagrab.com . Archivado desde el original el 13 de enero de 2013 . Consultado el 23 de enero de 2013 .
  6. ^ "BCM2835 - Documentación de Raspberry Pi".
  7. ^ abc "Preguntas frecuentes sobre Raspberry Pi: preguntas frecuentes".
  8. ^ "Desmontaje de Roku 2 XS". Mis alternativas de cable . 28 de julio de 2011.
  9. ^ "STICKY: CÓMO: Crear modos HDMI personalizados - Página 3". Foros de Raspberry Pi . Consultado el 24 de septiembre de 2019 .
  10. ^ "Opus HD". Xólo . Archivado desde el original el 10 de octubre de 2014.
  11. ^ "Revisión de Raspberry Pi 4: el nuevo estándar de oro para la informática de placa única". Hardware de Tom . 28 de agosto de 2019 . Consultado el 24 de septiembre de 2019 .
  12. ^ "Presentando: ¡Raspberry Pi 5!". Frambuesa Pi . 28 de septiembre de 2023 . Consultado el 28 de septiembre de 2023 .
  13. ^ ab "Raspberry Pi cumple su segundo cumpleaños con un plan para un controlador de gráficos de código abierto". 28 de febrero de 2014.
  14. ^ ab "Un regalo de cumpleaños de Broadcom". Frambuesa Pi . 28 de febrero de 2014.
  15. ^ "Android para todos: Broadcom ofrece a los desarrolladores claves para el reino VideoCore". www.broadcom.com . Consultado el 24 de septiembre de 2019 .
  16. ^ Hermitage, Herman (21 de marzo de 2015). "Diversión y juegos con las unidades de procesador cuádruple Videocoreiv". GitHub .
  17. ^ "hermanhermitage/videocoreiv". GitHub .
  18. ^ "Eric Anholt deja el equipo de gráficos Linux de Intel por Broadcom". 17 de junio de 2014.
  19. ^ "Controlador VC4 Linux". GitHub . Archivado desde el original el 22 de julio de 2014 . Consultado el 22 de junio de 2014 .
  20. ^ "Semana 1 del controlador VC4". 22 de junio de 2014. Archivado desde el original el 16 de agosto de 2014.
  21. ^ Eric Anholt. "¡Nuevo trabajo!" . Consultado el 27 de diciembre de 2023 .
  22. ^ "vc4: importación inicial del controlador esqueleto". La biblioteca de gráficos 3D de Mesa. 9 de agosto de 2014.
  23. ^ "Broadcom limitada". YouTube .