
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 como para decodificar (así como codificar) varios códecs multimedia en software manteniendo un bajo consumo de energía. [ 1 ] El núcleo de propiedad intelectual de semiconductores (núcleo SIP) se ha encontrado hasta ahora solo en SoC de Broadcom.
Detalles técnicos
Restricciones del sistema multimedia
Los dispositivos multimedia móviles requieren un procesamiento de vídeo de alta velocidad con un bajo consumo energético para prolongar la duración de la batería. El núcleo del procesador ARM ofrece un alto rendimiento por vatio (y, por lo tanto, domina el mercado de la telefonía móvil), pero requiere coprocesadores de aceleración de vídeo y controladores de pantalla para un sistema completo. La gran cantidad de datos que se transmiten entre estos chips a alta velocidad conlleva un mayor consumo energético. Los coprocesadores especializados pueden optimizarse para priorizar el rendimiento sobre la latencia (más núcleos y paralelismo de datos, pero a una menor velocidad de reloj) y cuentan con conjuntos de instrucciones y arquitecturas de memoria diseñadas para el procesamiento multimedia (por ejemplo, aritmética de saturación y manejo de formatos de datos especializados).
Motor 3D
El VideoCoreIV-AG100-R, presente en las Raspberry Pi 1, 2 y 3, está documentado para ser totalmente compatible con OpenGL ES 2.0 y OpenVG 1.1.
El motor 3D se compone de varios subsistemas, siendo las QPU los más abundantes. Una QPU es un procesador SIMD ( de instrucción única y datos múltiples ) de 16 vías .
Según la Guía de referencia de la arquitectura VideoCore® IV 3D de Broadcom, "cada procesador cuenta con dos ALU de punto flotante vectorial que realizan operaciones de multiplicación y no multiplicación en paralelo con una latencia de un ciclo de instrucción. Internamente, la QPU es un procesador SIMD de 4 vías multiplexado 4 veces durante cuatro ciclos, lo que lo hace especialmente adecuado para procesar secuencias de grupos de píxeles" .
"Las QPU se organizan en grupos de hasta cuatro, denominados segmentos, que comparten ciertos recursos comunes", continúa el documento. cf. Vértice y sombreador .
Estas "segmentos" se corresponden aproximadamente con las Unidades de Cómputo de AMD .
Al menos VC 4 (por ejemplo, en la Raspberry Pi) no admite la compresión de texturas S3 (S3TC). [ 2 ] Probablemente tampoco admita la compresión de texturas escalable adaptativa (ASTC).
algoritmos de compresión de vídeo
De los algoritmos de compresión de vídeo actualmente en uso generalizado, como H.263 , H.264/MPEG-4 AVC , MPEG-4 , MPEG-2 , MPEG-1 , H.265 , Daala , Theora , VP8 y VP9 , los productos VideoCore de Broadcom admiten la aceleración por hardware de algunas operaciones. En algunos casos, solo la descompresión, solo la 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).
Características principales de VideoCore
- Conjunto de instrucciones diseñado desde el principio pensando en el procesamiento de vídeo. Por ejemplo, se utiliza un cálculo de saturación para evitar que la suma de dos píxeles brillantes se convierta en valores oscuros.
- Un conjunto de unidades de procesamiento gráfico para el cálculo paralelo de datos de vídeo a una velocidad de reloj relativamente baja.
- La alta integración consiste en colocar la CPU, las GPU, la memoria y los circuitos de visualización en un solo chip, eliminando la carga energética que supone controlar buses externos de alta velocidad.
Variantes
El VC01 basado en VideoCore I proporciona capacidades de vídeo y multimedia a varios teléfonos Samsung, incluidos SCH-V540, SCH-V4200 y 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ía y gráficos 3D para el Nokia N8 .
El procesador VideoCore IV BCM2763 mejora al VideoCore III con soporte para codificación y decodificación 1080p , además de soporte para cámaras de mayor resolución y gráficos 2D y 3D más rápidos, todo ello con un consumo energético muy bajo. Se utiliza en el Nokia 808 PureView , [ 5 ] algunas versiones de hardware Roku y la Raspberry Pi (modelos 2835/2836 para las versiones 1/2 respectivamente). [ 6 ]
El procesador VideoCore IV BCM28155 admite codificación y decodificación 1080p, y ofrece gráficos 2D y 3D mejorados gracias a su CPU ARM Cortex-A9 de doble núcleo integrada en el chipset BCM28155. Se utiliza en los dispositivos Samsung Galaxy S II Plus , Samsung Galaxy Grand y Amazon Fire TV Stick .
El procesador VideoCore V BCM7251 admite decodificación y transcodificación 2160p60 o codificación/decodificación dual 1080p60, cuenta con soporte mejorado para códecs (H.265), soporte para DDR3 y DDR4, USB 3.0, PCIe, Gigabit Ethernet y 802.11ac en una CPU de doble núcleo ARM Cortex-A15 Brahma15.
Tabla de SoC que adoptan bloques SIP de VideoCore
Productos VideoCore
Los chips VideoCore pueden ejecutar aplicaciones completas; los chips DSP no son simplemente chips DSP de vídeo que requieren un procesador independiente para suministrar y recopilar datos. Es posible que VideoCore no sea óptimamente eficiente en tareas que no sean DSP, pero puede combinarse con un núcleo de CPU de alta eficiencia. Por ejemplo, las tareas típicas que no son multimedia rara vez requieren un ancho de bus superior a 32 bits, mientras que el diseño de VideoCore emplea varios núcleos con un ancho de bus amplio.
La decodificación del vídeo se delegó en una placa aceleradora de vídeo mediante un chip BCM.
Los reproductores de Blu-ray también pueden usarlo como acelerador de vídeo de bajo consumo.
Si bien los chips VideoCore se solían usar con chips basados en ARM, los chips más recientes incorporan procesadores VideoCore y ARM.
Soporte para Linux
El 28 de febrero de 2014, día del segundo aniversario de la Raspberry Pi , Broadcom, junto con la Fundación Raspberry Pi, anunció la publicación de la documentación completa para el núcleo gráfico VideoCore IV y una publicación completa del código fuente de la pila gráfica bajo una licencia BSD de 3 cláusulas . [ 13 ] [ 14 ] [ 15 ]
Sin embargo, solo una pequeña parte del controlador se publicó como código abierto; toda la aceleración de vídeo se realiza mediante un firmware codificado para su GPU propietaria, que no se publicó como código abierto. El propio SoC se gestiona mediante un RTOS basado en ThreadX que se carga en la VPU del VideoCore durante el arranque. [ 16 ]
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 para unirse a Broadcom y desarrollar un controlador gratuito ( controlador DRM / KMS y controlador Gallium3D ) para VC4 (VideoCore 4). [ 18 ] Tras una semana, informó de un progreso notable. [ 19 ] [ 20 ]
He asumido un nuevo rol como desarrollador de código abierto allí. Voy a trabajar en la creación de un controlador Mesa 3D y un controlador DRM del kernel con licencia 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 libre se incorporó a Mesa el 29 de agosto de 2014, [ 22 ] y se lanzó por primera vez como parte de Mesa 10.3.
Programación del núcleo de computación
La comunidad de código abierto ha creado una biblioteca de C++ llamada V3DLib para ejecutar directamente kernels de cómputo personalizados en la GPU VideoCore de todas las Raspberry Pi. Esto permite realizar computación de propósito general en unidades de procesamiento gráfico ( GPGPU ), sin las limitaciones de la API orientada a gráficos de OpenGL .
competidores del mercado
Entre las gamas de chips multimedia móviles similares se incluyen Adreno , Texas Instruments OMAP , Nvidia Tegra , AllWinner A1X y Freescale i.MX. Estos se basan en la arquitectura ARM y cuentan con matrices de unidades de procesamiento gráfico.
Fuentes de datos
La página de Broadcom en YouTube [ 23 ] tiene videos que demuestran la capacidad de procesamiento de video, pero su sitio web solo ofrece información básica sobre el producto. Los datos detallados y las herramientas de desarrollo solo están disponibles bajo un acuerdo de confidencialidad (NDA ) y únicamente para fabricantes con un mercado que requiera un gran volumen de unidades.
Véase también
Referencias
- ↑ Alphamosaic Ltd > Tecnología – VideoCore , archivado el 9 de febrero de 2003.
- ↑ "¿Puedo jugar a Morrowind con OpenMW en otras plataformas como la Raspberry Pi?" 6 de agosto de 2011.
- ↑ "Presentación de Broadcom a cargo de Yossi Cohen" (PDF) .
- ↑ Ecker, Clint (20 de octubre de 2005). "Video iPod: Vivisection" . Ars Technica . Recuperado el 29 de marzo de 2008 .
- ↑ "Nokia 808 PureView con una increíble cámara de 41 megapíxeles" . staygrab.com . Archivado del original el 13 de enero de 2013. Consultado el 23 de enero de 2013 .
- ↑ "BCM2835 - Documentación de Raspberry Pi" .
- 1 2 3 "Preguntas frecuentes sobre Raspberry Pi" .
- ↑ "Desmontaje del Roku 2 XS" . Mis alternativas de cable . 28 de julio de 2011. Archivado del original el 3 de enero de 2017. Consultado el 26 de mayo de 2016 .
- ↑ "DESTACADO: CÓMO: Crear modos HDMI personalizados - Página 3" . Foros de Raspberry Pi . Consultado el 24 de septiembre de 2019 .
- ↑ "Opus HD" . Xolo . Archivado del original el 10 de octubre de 2014.
- ↑ "Análisis de Raspberry Pi 4: El nuevo estándar de oro para la informática de placa única" . Tom's Hardware . 28 de agosto de 2019. Consultado el 24 de septiembre de 2019 .
- ↑ "Presentamos: Raspberry Pi 5!" . Raspberry Pi . 28 de septiembre de 2023 . Consultado el 28 de septiembre de 2023 .
- ↑ "Raspberry Pi celebra su segundo aniversario con un plan para un controlador gráfico de código abierto" . 28 de febrero de 2014.
- ↑ "Un regalo de cumpleaños de Broadcom" . Raspberry Pi . 28 de febrero de 2014. Archivado del original el 28 de febrero de 2014. Consultado el 1 de marzo de 2014 .
- ↑ "Android para todos: Broadcom da a los desarrolladores las claves del reino de VideoCore" . www.broadcom.com . Consultado el 24 de septiembre de 2019 .
- ↑ Hermitage, Herman (21 de marzo de 2015). "Diversión y juegos con las unidades de procesamiento cuádruple Videocoreiv" . GitHub .
- ↑ "hermanhermitage/videocoreiv" . GitHub .
- ↑ "Eric Anholt deja el equipo de gráficos Linux de Intel para unirse a Broadcom" . 17 de junio de 2014.
- ↑ "Controlador VC4 para Linux" . GitHub . Archivado del original el 22 de julio de 2014. Consultado el 22 de junio de 2014 .
- ↑ "Conductor VC4, semana 1" . 22 de junio de 2014. Archivado del original el 16 de agosto de 2014.
- ↑ Eric Anholt. "¡Nuevo trabajo!" . Consultado el 27 de diciembre de 2023 .
- ↑ "vc4: Importación inicial del controlador de esqueleto" . La biblioteca de gráficos Mesa 3D. 9 de agosto de 2014.
- ↑ "Broadcom Limited" . YouTube .
- Broadcom
- Procesadores de señales digitales
- Unidades de procesamiento gráfico