El impacto del procesamiento de vídeo
La mayoría de los productos de vídeo de consumo se distinguen por la tecnología de procesamiento de vídeo y los algoritmos utilizados durante y después de la descompresión. Algunas tecnologías de procesamiento de video pueden implementarse de maneras diferentes a las que se enumeran a continuación, y las siguientes tecnologías pueden tener nombres diferentes en diferentes aplicaciones. Para crear un producto de vídeo digital exitoso, es necesario elegir el procesador adecuado. Suena sencillo, pero claro, no lo es. Uno de los grandes problemas es que hay tantos estilos de procesadores entre los que elegir: CPU de uso general, FPGA, DSP, procesadores configurables, chips de función fija y otros tipos de procesadores.
Para agravar el problema, el vídeo digital es un campo en rápida evolución, con estándares que evolucionan y cambian constantemente. Por tanto, en el campo del vídeo digital, la capacidad del procesador para adaptarse a los cambios es más importante que en otras aplicaciones, pero esta flexibilidad suele venir a expensas de una menor eficiencia.
A la hora de elegir un procesador, inevitablemente tendrás que hacer algunas concesiones, pero la clave es saber elegir un procesador para no comprometer el éxito del producto. Dado que hay tantos procesadores entre los que elegir, es prácticamente imposible verlos todos, o incluso obtener una visión detallada de cada una de las categorías principales. En su lugar, utilice un enfoque jerárquico: utilice los criterios de filtrado que sean más importantes. usted y eliminar los que no encajan como candidato.
Los criterios comunes utilizados al realizar la selección primaria incluyen:
* Velocidad. Las tareas de vídeo digital, como muchos otros tipos de tareas de procesamiento de señales, requieren grandes cargas de trabajo computacionales en el procesador. Analice cuidadosamente si el procesador tiene suficiente velocidad para la aplicación de destino. Lo mejor es utilizar pruebas comparativas orientadas al video, como BDTI Video Benchmarks.
*Precio. Si bien el precio del chip es importante, el costo por canal o el costo general del sistema pueden ser más importantes.
*Eficiencia energética. En la mayoría de los casos, tiene más sentido evaluar la eficiencia energética que el consumo de energía porque el uso de energía determina la duración de la batería.
*Flexibilidad. Algunos tipos de procesadores son más flexibles que otros, lo que permite cambios futuros en las características del producto o actualizaciones de campo, como agregar soporte para nuevos algoritmos de compresión. Sin embargo, en general, cuanto más flexible es un procesador, menos eficiente es en términos de coste y uso de energía.
*Calidad de la herramienta de desarrollo. Si el procesador tiene las herramientas para respaldar el desarrollo de aplicaciones de procesamiento de señales (o, por extensión, aplicaciones de video) puede tener un impacto significativo en el tiempo de desarrollo y, a su vez, en el tiempo de comercialización.
*Compatibilidad con modelos de procesadores anteriores. Esto suele ser importante si espera reutilizar software utilizado en productos anteriores.
*Hoja de ruta de proveedores. ¿La hoja de ruta de productos del proveedor está en línea con sus planes de desarrollo de productos posteriores? ¿El procesador será compatible o actualizado durante la vida útil de su producto?
*Se vende como chips o núcleos con licencia. Algunos procesadores se venden como chips empaquetados y listos para usar; otros se venden como propiedad intelectual sujeta a licencia (a menudo llamados núcleos bajo licencia) que se utilizan para fabricar chips personalizados. La mayoría de las categorías de procesadores analizadas en este artículo incluyen tanto chips empaquetados como núcleos con licencia.
Las ventajas y desventajas de los distintos tipos de procesadores
Céntrese en los seis tipos de procesadores comúnmente utilizados en vídeo digital: motor de función fija, producto estándar de aplicación específica (ASSP), procesador de medios. , DSP, procesadores RISC integrados y FPGA. Estos van desde los productos más especializados hasta los más flexibles, discutiendo los pros y los contras de cada tipo de procesador y analizando un producto específico dentro de cada categoría.
Primero hablemos de motores de función fija. Utiliza una arquitectura de procesador cableado para una máxima eficiencia; no utilizan flujos de instrucciones y no son programables. La lógica cableada sacrifica flexibilidad a cambio de una extraordinaria velocidad de procesamiento, eficiencia energética y, a menudo, rentabilidad.
El uso de un motor de función fija puede simplificar el diseño y las pruebas del sistema. Debido a que los motores de función fija no son programables, los desarrolladores de productos no tienen que aprender herramientas de programación ni integrar múltiples módulos de software.
Y no necesitan considerar si las múltiples tareas realizadas por el procesador podrían interactuar entre sí de maneras no deseadas o interferir con las características en tiempo real del sistema.
Los motores de función fija generalmente se proporcionan como propiedad intelectual (IP) con licencia para una fácil integración en chips personalizados. De esta forma, los motores de función fija son más adecuados para aplicaciones de gran volumen, como los teléfonos móviles. Los motores de función fija también están disponibles en ocasiones en forma de chip. Los chips de vídeo de función fija, como los chips decodificadores MPEG-2, pueden agregar funcionalidad a los productos existentes a un costo menor, especialmente cuando el producto tiene un procesador principal capaz de manejar el control de la demanda y las funciones de interfaz de usuario.
Por ejemplo, el decodificador de vídeo 5150 MPEG-4 de Hantro es un ejemplo de motor de función fija vendido como IP. El motor está pensado para usarse como coprocesador, conectado a un procesador de propósito general que maneja algunas de las subtareas menos exigentes requeridas para la decodificación MPEG-4.
La principal desventaja del hardware de función fija es su falta de flexibilidad. Debido a que no es programable, los desarrolladores de productos no pueden modificar fácilmente el hardware de función fija para admitir nuevos estándares o funcionalidades diferentes. Esto es preocupante porque muchas aplicaciones de vídeo aún son inmaduras y los estándares y la funcionalidad están cambiando rápidamente.
Por lo tanto, los motores de función fija se utilizan a menudo como parte de productos estándar dedicados. Hablemos de ASSP a continuación.
Los productos estándar de aplicación específica (ASSP) son chips especializados altamente integrados. Se puede comparar con un circuito integrado de aplicación específica (ASIC). Los ASIC están diseñados por empresas de sistemas y utilizados en sus propios productos. ASSP está diseñado por empresas de chips y se proporciona a múltiples desarrolladores de sistemas como chips disponibles en el mercado. Debido a que desarrollar un chip complejo es costoso y requiere mucho tiempo, ASSP generalmente se usa para productos establecidos que han alcanzado un gran volumen o donde se esperan volúmenes mayores.
Por ejemplo, el Vaddis 5R de Zoran es un chip altamente especializado para el procesamiento de audio y vídeo en grabadoras de DVD. Se han identificado los algoritmos clave necesarios: el más destacado es la compresión y descompresión de vídeo MPEG-2.
Aunque el Vaddis 5R contiene dos procesadores RISC, utiliza aceleradores de hardware de función fija cuando realiza las tareas más intensivas desde el punto de vista computacional, como la decodificación de vídeo MPEG-2 y la conversión del espacio de color. Por las razones expuestas anteriormente, Vaddis 5R (y otros ASSP similares) comparten las ventajas y desventajas de los motores de función fija: buen rendimiento y eficiencia energética, pero flexibilidad limitada.
La flexibilidad limitada significa que cuando los diseñadores de sistemas diseñan productos, estos tienden a ser similares a otros productos que utilizan el mismo ASSP. También significa que los diseñadores de sistemas dependen en gran medida de las hojas de ruta de los proveedores de chips, ya que se requieren chips más nuevos para soportar capacidades significativamente diferentes.
También hay ASSP que dependen principalmente de procesadores programables para realizar tareas de vídeo pesadas, sacrificando la eficiencia energética y la rentabilidad en aras de la flexibilidad. Este tipo de ASSP generalmente viene incluido con software clave, como decodificadores de video y controladores de hardware, lo que libera a los desarrolladores de sistemas de tener que desarrollar una gran cantidad de software de bajo nivel. Sin embargo, en comparación con la adopción de ASSP basado en hardware de función fija, aún puede requerir mucho esfuerzo en el desarrollo y la integración de software.
Los procesadores de medios se encuentran entre los ASSP y los procesadores de señales digitales (DSP) en términos de especialización/flexibilidad. Los procesadores de medios están optimizados para tareas relacionadas con el procesamiento de audio y video, a diferencia de los DSP que están optimizados para una amplia gama de tareas de procesamiento de señales. Los procesadores de medios suelen utilizar varios procesadores, incluido un motor de procesamiento principal tipo DSP, dos o tres coprocesadores dedicados y periféricos de audio y vídeo dedicados.
El PNX1500 de Philips es un procesador multimedia. Al igual que un procesador de medios típico, el PNX1500 se basa en un potente núcleo de procesador altamente paralelo que es muy eficiente a la hora de realizar tareas de procesamiento de vídeo. El PNX1500 también contiene varios aceleradores de hardware de función fija y dispositivos periféricos especializados, que son típicos de los procesadores de medios.
Un núcleo de procesador principal maneja tareas de video complejas, como la compresión, y puede ser programado por el diseñador del sistema.
Al igual que el Vaddis 5R de Zoran, el PNX1500 es muy adecuado para la decodificación MPEG-2. Pero a diferencia del ASSP de Zoran, el PNX1500 es lo suficientemente flexible como para usarse con otros estándares de compresión de video como H.264. Por supuesto, esta flexibilidad tiene un precio: los decodificadores de vídeo de software generalmente son menos eficientes en términos de energía y costos que el hardware de función fija.
Debido a que el procesador de medios utiliza múltiples procesadores diferentes, causa grandes dificultades en el desarrollo de software en comparación con otros procesadores programables. Por ejemplo, para realizar una tarea de vídeo específica, normalmente se deben programar y coordinar dos o más unidades de procesamiento. Para ayudar a compensar esta deficiencia, los proveedores de procesadores multimedia suelen proporcionar bibliotecas de componentes de software optimizados.
Los proveedores de procesadores multimedia suelen enfatizar el uso de C o C cuando desarrollan software y no recomiendan ni admiten el lenguaje ensamblador. El énfasis en desarrollar software en lenguajes de alto nivel es aliviar a los programadores de las muchas complejidades de la arquitectura del procesador. La desventaja es que los programadores deben confiar en el compilador para generar código válido, lo que no siempre es realista. Es posible que los desarrolladores deban invertir un esfuerzo considerable en ajustar manualmente su código de lenguaje de alto nivel para lograr un rendimiento óptimo.
Los procesadores de señales digitales (DSP) están diseñados para una variedad de aplicaciones de procesamiento de señales. En comparación con los procesadores de medios, las especificaciones utilizadas por los DSP se centran menos en el procesamiento de vídeo y tienen un menor paralelismo. Para compensar el menor paralelismo, un DSP normalmente debe ejecutar instrucciones más rápido que un procesador de medios en una aplicación determinada. Las velocidades de instrucción más altas pueden complicar el diseño del sistema y aumentar el consumo de energía. Por otro lado, los DSP requieren velocidades de reloj más bajas cuando manejan tareas de video que los procesadores RISC integrados (que se analizan a continuación). Las ventajas clave de DSP son su flexibilidad y sus potentes herramientas de desarrollo de aplicaciones.