Conjunto de programas de procesamiento de video e imágenes
La suite de procesamiento de video e imágenes de FPGA Intel® es un conjunto de funciones de propiedad intelectual (PI) que puede utilizar para facilitar la elaboración personalizada de diseños de procesamiento de video e imágenes. Estas funciones de Intel® FPGA IP son adecuadas para utilizarlas en una gran variedad de aplicaciones de procesamiento y visualización de imágenes, como difusión de estudio, videoconferencias, redes audiovisuales, imágenes médicas, ciudad inteligente o comercio minorista, y servicios para consumidores.
Guía del usuario del paquete de procesamiento de video e imágenes ›
Conjunto de programas de procesamiento de video e imágenes
La Suite de procesamiento de video y visión es el conjunto de PI de próxima generación para el procesamiento de video, imágenes y visión. Las PIs transportan video mediante el protocolo de video de streaming Intel FPGA, que utiliza el protocolo AXI4-Stream estándar de la industria. Una PI de conversor de protocolos permite la interoperabilidad con el estándar de video de Avalon Streaming y la PI de Suite de procesamiento de video e imágenes existente u otras PI que cumplan con el protocolo de video Avalon Streaming.
La suite de procesamiento de video e imágenes cuenta con núcleos que van de tener funciones simples de composición, como la conversión de espacio de color o las funciones avanzadas de escalamiento de video, que permiten implementar el escalamiento polifásico programable.
- Todos los núcleos VIP utilizan un estándar de interfaz abierta de transmisión Avalon® (Avalon-ST) de bajo costo para poder conectarse con facilidad
- Puede utilizar núcleos VIP para crear rápidamente una cadena de señal de procesamiento de video personalizado mediante el software Intel® Quartus® Prime Lite o Standard Edition y Platform Designer asociado
- Puede mezclar y combinar núcleos de procesamiento de video e imágenes con su propia PI patentada.
- Puede utilizar Platform Designer para integrar de forma automática los procesadores y los dispositivos periféricos integrados, y generar una lógica de arbitraje.
- Capaz de ser compatible con video 8K a 60 fps y mucho más.
Funciones
Funciones de la suite de procesamiento de video e imágenes Intel® FPGA IP
Función Intel® FPGA IP |
Descripción |
---|---|
Se implementa un filtro de respuesta finita al impulso (FIR) de 3x3, 5x5, o 7x7 en una transmisión de datos para suavizar o agudizar las imágenes. |
|
Mezcla y componen varias fuentes de imagen; es útil para implementar la superposición de textos y la mezcla picture-in-picture. |
|
Capta paquetes de datos de video sin demoras adicionales y se conecta a la IP del sistema de seguimiento para recopilar datos de seguimiento de video. |
|
Elimina y repara las secuencias y los casos de error que no son ideales presentes en el flujo de datos entrantes para generar un flujo de salida que cumple con el modelo de uso ideal implícito. |
|
Cambia la frecuencia de muestreo de los datos croma para los fotogramas de imagen, por ejemplo, de 4:2:2 a 4:4:4, o de 4:2:2 a 4:2:0. |
|
Ofrece una forma de cortar transmisiones de video y se puede configurar en el tiempo de compilación o ejecución. |
|
Los núcleos IP de interfaz de video sincronizada convierten los formatos de video sincronizados (como BT656, BT1120, y DVI) a video Avalon-ST y vice versa. |
|
Cambia cómo se transmiten las muestras de planos de color en la interfaz Avalon-ST. Esta función se puede utilizar para dividir y unir transmisiones de video, lo que da control sobre el enrutamiento de las muestras de planos de color. |
|
Convierte datos de imagen en una variedad de espacios de color diferentes, como de RGB a YCrCb. |
|
Configurable Guard Bands |
El núcleo IP de bandas de protección configurables permite comparar cada plano de color en la transmisión de entrada de video con los valores de las bandas de protección superior e inferior. |
Sincroniza los cambios realizados en la transmisión de video en tiempo real entre dos funciones. |
|
Convierte los formatos de video entrelazados al formato de video progresivo mediante un algoritmo de desentrelazado con adaptación de movimiento. También es compatible con los algoritmos “bob” y “weave”, la detección de bordes de bajo ángulo, la detección de cadencia 3:2 y la latencia baja. |
|
Carga fotogramas de video en la RAM externa. Este núcleo es compatible con la carga doble o triple, junto con una variedad de opciones respecto del salto y la repetición de los fotogramas. |
|
Lee el video desde una memoria externa y lo reproduce como transmisión. |
|
Permite corregir las transmisiones de video según las propiedades físicas de los dispositivos de visualización. |
|
Convierte el video progresivo a video entrelazado mediante la disminución de la mitad de las líneas de fotogramas progresivas entrantes. |
|
Función de Intel® FPGA IP del escalador II basada en el código HDL que utiliza menos área que la primera generación del escalador en la suite de procesamiento de video e imágenes, además de tener un mayor desempeño. La función del escalador II reduce aún más los recursos necesarios gracias a la nueva compatibilidad con la frecuencia de muestreo de datos croma de 4:2:2. Los algoritmos lineal y polifásico están disponibles con una nueva característica del algoritmo adaptivo de borde para reducir la borrosidad al mismo que mantienen el realismo. |
|
Permite conmutar las transmisiones de video en tiempo real. |
|
Permite generar una transmisión de video que contiene barras de color quietas para utilizarlas como patrones de prueba. |
|
Supervisa los datos capturados desde el monitor de video y se conecta a la consola del sistema mediante JTAG o USB para tener una pantalla.Supervisa los datos capturados desde el monitor de video y se conecta a la consola del sistema mediante JTAG o USB para tener una pantalla. |
Primeros pasos
Ejemplos de diseño y kits de desarrollo
Los siguientes ejemplos de diseño están disponibles para ejecutarlos en los kits de desarrollo.
Nombre del producto |
Dispositivos/kits de desarrollo compatibles |
Tarjeta secundaria |
Compatible con Platform Designer |
Proveedor |
---|---|---|---|---|
✓ |
Intel |
|||
Ninguno. |
✓ |
ALSE |
||
Demostración de la suite de procesamiento de video e imágenes en VEEK |
Ninguno. |
✓ |
Terasic |
|
Ejemplo de diseño de procesamiento de video e imágenes FPGA Intel® |
✓ |
Intel |
Tutoriales en vídeo
Parámetros de calidad de PI
Aspectos básicos |
|
---|---|
El año en que se lanzó por primera la PI |
2009 |
Compatible con la versión más reciente del software Intel® Quartus® |
18.1 |
Estado |
Producción |
Entregas |
|
Las entregas para el cliente son las siguientes: Archivo de diseño (código fuente cifrado o lista de conexiones post-síntesis) Modelo de simulación para ModelSim* - Intel® FPGA Edition Limitaciones de tiempo o diseño Banco de pruebas o ejemplo de diseño Documentación con control de revisión Archivo Léame |
Sí Sí Sí Sí Sí No |
Cualquier producto adicional Para los clientes provistos con IP |
Ninguno. |
GUI de parametrización que permite al usuario final configurar IP |
Sí |
Se habilitó el núcleo de PI que facilita la asistencia para el modo de evaluación de la PI de FPGA Intel® |
Sí |
Idioma de origen |
Verilog |
Idioma de herramienta de prueba |
Verilog |
Se proporcionan los controladores del software |
Archivo sw.tcl |
Compatibilidad con el sistema operativo (SO) de controladores |
N/C |
Implementación |
|
Interfaz de usuario |
Video sincronizado (en entrada de video sincronizado y fuera de la salida de video sincronizado), Avalon®-ST (todas las otras rutas de datos) |
metadatos IP-XACT |
No |
Verificación |
|
Compatible con simuladores |
ModelSim, VCS, Riviera-PRO, NCSim |
Hardware validado |
Arria® II GX/GZ, Arria® V, Intel® Arria® 10, Cyclone® IV ES/GX, Cyclone® V, Intel® Cyclone® 10, Intel® MAX® 10, Stratix® IV, Stratix® V |
Se realizan las pruebas de cumplimiento de estándares de la industria |
No |
De ser así, ¿cuáles? |
N/C |
De ser así, ¿en cuál de los dispositivos FPGA Intel®? |
N/C |
De ser así, fecha de cuándo se realizó |
N/C |
De no ser así, ¿se planificó? |
N/C |
Interoperabilidad |
|
Se realizaron pruebas de interoperabilidad en la PI |
Sí |
De ser así, ¿en qué dispositivos FPGA Intel®? |
Intel® Arria® 10, Intel® Cyclone® 10 |
Hay informes de interoperabilidad disponibles |
N/C |
Corrector Gamma
El corrector gama se utiliza cuando se necesita limitar los valores de píxeles a rangos específicos según la información de la pantalla a la que se enviarán. Algunas pantallas tienen una respuesta no lineal al voltaje de la señal de video y, debido a esto, se requiere reasignar los valores de píxeles para corregir la pantalla. El corrector gama utiliza una tabla de búsqueda de interfaz Avalon*-MM para ofrecer la asignación de los valores de píxeles a los valores alterados.
Un ejemplo del corrector gama aparece más abajo, en el que la información entrante de YCbCr con valores de color de 8 bits que varía de 0 a 255 pasa por el corrector gama, que reasigna los valores para encajar en el rango de 16 a 240. Luego de eso, se envía a una salida de video sincronizado.
Filtro FIR 2D
El núcleo de propiedad intelectual (PI) de video con filtro de respuesta finita al impulso (FIR) 2D se utiliza para procesar los planos de color en serie y pasar los valores de píxeles a través de un filtro FIR. Los coeficientes se introducen mediante una interfaz de mapeo de memoria Avalon* (Avalon-MM) que se puede conectar a través de un procesador Nios® II u otros dispositivos periféricos que tengan acceso al diseño Qsys que contiene la ruta de datos del video.
A continuación, se presenta un ejemplo de diagrama de bloques en el que se utiliza el filtro FIR 2D. Se formatea la entrada de video sincronizado con paneles de color RGB en serie a fin de pasarla por el filtro FIR. Cuando se completa el filtrado, se utiliza el secuenciador de planos de color para volver a formatear estos planos de tres planos en serie a tres planos en paralelo. Ya que los fotogramas de video tienen tres planos de color en paralelo, ya están listos para transmitirlos de forma externa mediante el núcleo de salida de video sincronizado.
Mezclado de composición alfa I y II
Los núcleos de mezclado de composición alfa I y II ofrecen la capacidad de mezclar hasta 12 o 4 capas de imágenes respectivamente y se pueden controlar en tiempo de ejecución mediante la interfaz Avalon*-MM. Si accede al procesador Nios* II desde la interfaz Avalon*-MM, puede controlar de forma dinámica la ubicación de cada capa mostrada y el orden en el que se superponen las capas (solo mezclador I). La característica de composición alfa del mezclador I es compatible con la visualización de los píxeles transparentes o semitransparentes (solo mezclador I).
En el núcleo mezclador II se incluye un generador de patrones de prueba para utilizarlo como capa de fondo. Este es un beneficio adicional dado que una de las cuatro entradas no debe ser de un núcleo generador de patrones de prueba. Otro beneficio del mezclador II es que es compatible con el video 4K.
A continuación, se presenta un ejemplo de diagramas de bloque sobre cómo se utilizan los núcleos mezcladores. Aparece una entrada de video sincronizado con una transmisión de video activa en la entrada 0, una capa de fondo a partir del generador de patrones de prueba incorporado y el núcleo lector de fotogramas que lee los gráficos estáticos, como el logotipo de una empresa, en la entrada 1. Estas transmisiones se mezclan para obtener la visualización de una imagen de video con gráficos y un fondo a partir del generador de patrones de prueba.
Se recomienda que las entradas de los mezcladores se obtengan directo de un búfer de fotogramas, a menos que sea seguro que las velocidades de fotogramas respectivas de entrada y salida, y la compensación de las capas de entrada, no tendrá como resultado la inanición de datos y el consecuente bloqueo del video.
Remuestreador Chroma
El remuestreador de croma se utiliza para cambiar los formatos croma de los datos de los videos. El video transmitido en el espacio de color YCbCr puede submuestrear los componentes de colores Cb y Cr para guardar el ancho de banda de datos. El remuestreador de croma ofrece la capacidad de cambio entre los formatos 4:4:4, 4:2:2 y 4:2:0.
En el ejemplo, se muestra que el remuestreador de croma mejora una entrada de video sincronizado con YCbCr con formato croma 4:2:2 a un formato 4:4:4. Luego, se pasa este formato de video mejorado a un convertidor de espacio de color, que convierte el formato de video de YCbCr a RGB para enviarlo al núcleo de salida de video sincronizado.
Clipper II
El núcleo Cliper se utiliza cuando desea pasar hacia delante áreas fijas de una transmisión de video. El núcleo Clipper se puede configurar durante la compilación o actualizar mediante la interfaz Avalon*-MM de un procesador Nios® II u otro dispositivo periférico. Clipper tiene la capacidad de configurar el método de corte mediante la compensación de los bordes o un área rectangular fija.
En el ejemplo, se muestran dos instancias de Clipper en el que toma áreas de 400 × 400 píxeles de las respectivas entradas de video. Luego, estas dos transmisiones de video cortadas se mezclan en el núcleo mezclador junto con otros gráficos y el generador de patrones de prueba incorporado como fondo. El mezclador tiene la capacidad de ajustar la ubicación de las entradas de video para que pueda colocar las dos transmisiones de video cortadas una al lado de la otra junto con los búferes de fotogramas si es necesario.
Núcleos de entrada y salida de video sincronizado (I y II)
Los núcleos de entrada y salida de video sincronizado se utilizan para capturar y transmitir video en diversos formatos, como BT656 y BT1120.
Los núcleos de entrada de video sincronizado convierten los datos de video entrantes en datos de paquetes con formato de video de transmisión Avalon (Avalon-ST), lo que permite eliminar el blanqueo horizontal y vertical, además de solo retener las imágenes activas. El núcleo le permite capturar video a una frecuencia y pasar los datos al resto del sistema Qsys que se puede ejecutar a la misma frecuencia o una diferente.
A continuación, se muestra el ejemplo de una entrada de video sincronizado en el que el video entra por un bloque de escalamiento para mejorarlo de 1280 × 720 a 1920 × 1080. Después de esto, se envía al núcleo de salida de video sincronizado. Si la entrada y la salida tienen la misma velocidad de fotogramas, se pueden crear algunos FIFO en la entrada y la salida de video sincronizado para que se genere la conversión sin un búfer de fotogramas.
Secuenciador plano de colores
El secuenciador de planos de color se utiliza para reordenar los elementos del plano de color en un sistema de video. Se puede utilizar para convertir planos de color de series a transmisión paralela (o vice versa) para “duplicar” canales de video (como podría ser necesario para impulsar un subsistema secundario de monitores de video) o “separar” canales de video (como podría ser necesario para separar un plano alfa de una salida de tres planos RGB en cuatro planos de un lector de fotogramas).
Se muestra un ejemplo del secuenciador de planos de color en el que el núcleo de PI de video con filtro FIR 2D requiere que el video entre y salga con los planos de color en serie. Para transmitir el video a la salida de video sincronizado con el formato deseado, se deben convertir los planos de color a paralelo mediante el secuenciador de planos de color.
Convertidor de espacio de color (I y II)
Los núcleos de convertidor de espacio de color (CSC y convertidor de espacio de color II) se utilizan cuando se debe realizar conversiones entre los formatos de espacio de color RGB y YCrCb. Según los requisitos de formato de entrada y salida de video, tendría que convertir entre diferentes formatos de color.
A continuación, se muestra un ejemplo de un convertidor de espacio de color con un video YCrCb mejorado mediante el remuestreador de croma. Luego, se envía al convertidor de espacio de color y se cambia al formato de color RGB para enviarlo a una salida de video sincronizado.
Sincronizador de control
El sincronizador de control se utiliza junto con un controlador principal Avalon-MM, como un procesador Nios® II u otros dispositivos periféricos. El sincronizador de control se utiliza para sincronizar los cambios de configuración del tiempo de ejecución en uno o más bloques de PI de video en alineación con los datos de video a medida que cambian. Algunos cambios de configuración pueden ocurrir antes en un núcleo de PI de video, mientras los fotogramas de video siguen pasando por él en el formato anterior. Para hacer la transición sin interrupciones y evitar distorsiones en la pantalla, el sincronizador de control se utiliza para alinear la conmutación de la configuración a medida que los nuevos datos de los fotogramas de video entrantes llegan al núcleo.
En el ejemplo del sincronizador de control se muestra un procesador Nios® II que configura un generador de patrones de prueba para cambiar el tamaño del fotograma de 720p a 1080p. El sincronizador de control recibe la notificación del procesador Nios® II de que los datos de fotogramas de video se cambiarán pronto, pero se abstiene de reconfigurar la salida de video sincronizado hasta que los nuevos fotogramas pasen a través del búfer de fotogramas al sincronizador de control. El sincronizador de control lee los paquetes de datos de control del fotograma para determinar si corresponde a la nueva configuración. Luego, actualiza el núcleo de salida de video sincronizado con la nueva configuración, lo que hace que el cambio de resolución en la salida de video sea eficiente.
Desentrelazador (I y II) y desentrelazador de difusión
Los núcleos de desentrelazador (desentrelazador, desentrelazador II y desentrelazador de difusión) convierten los fotogramas de video entrelazados en fotogramas de video de análisis progresivo. Existen varios algoritmos que se pueden elegir para desentrelazar video según la cantidad deseada, el área lógica utilizada y el ancho de banda de la memoria externa disponible.
En el siguiente ejemplo, se muestra cómo se utiliza el núcleo desentrelazador. La entrada de video sincronizado recibe los fotogramas entrelazados y los pasa por el desentrelazador, el que gestiona la operación con una memora externa y el núcleo búfer de fotogramas. Después de desentrelazar el video en el formato de análisis progresivo, se envía a través del núcleo de salida de video sincronizado.
Búfer de fotogramas (I y II)
Los núcleos búfer de fotogramas I y II se utilizan para cargar campos de video progresivo y entrelazado, y es compatible con la carga doble o triple con una variedad de opciones para saltar y repetir los fotogramas. En el caso del video desentrelazado, un búfer de fotogramas es necesario para cambiar la velocidad de fotogramas del video o mezclar el video.
En el siguiente ejemplo se muestra cómo se utiliza un búfer de fotogramas. Un núcleo de entrada de video sincronizado recibe un video a 30 fotogramas por segundo (fps) y debe convertirlo a 60 fps. El núcleo búfer de fotogramas se utiliza para cargar varios fotogramas y admite los fotogramas repetidos para convertir la velocidad de fotogramas a 60 fps y, luego, transmitirla a través de un núcleo de salida de video sincronizado.
Frame Reader
El núcleo lector de fotogramas se utiliza para leer fotogramas de video almacenados en una memoria externa y los envía como transmisión de video Avalon-ST. Los datos se almacenan solo como valores de píxeles de video sin procesar.
En el siguiente ejemplo se muestra el uso del lector de fotogramas para obtener los gráficos de un logotipo de una empresa para superponer otra transmisión de video y juntar las capas mediante un núcleo mezclador. Desde allí, el video fusionado se envía a un núcleo de salida de video sincronizado. Como opción, se puede configurar el mezclador para que incluya un canal alfa. En este caso, el lector de fotogramas podría configurarse para leer tres planos de color y un plano alfa que se podría “dividir” mediante un convertidor de espacio de color (no aparece aquí) antes de enviarlo al mezclador.
Escalador II
El núcleo escalador II se utiliza para aumentar o disminuir el tamaño de los fotogramas de video. Es compatible con varios algoritmos, como vecino más cercano, bilineal y bicubic, y el escalamiento polifásico/de Lanczos. Se utiliza la memoria en chip para cargar líneas de video que se usan para el escalamiento; las tasas mayores de escalamiento requieren un mayor almacenamiento.
En el siguiente ejemplo se muestra el uso del núcleo escalador II. Se toma un tamaño de fotogramas de video de 720p de una entrada de video sincronizado y se escala a 1080p. Luego, se envían a la salida de video sincronizado.
Conmutador (I y II)
Los núcleos conmutadores permiten a los usuarios conectar hasta 12 transmisiones de video de entrada o hasta 12 transmisiones de video de salida. El conmutador no fusiona ni duplica las transmisiones de video, sino que le permite cambiar el enrutamiento de un puerto de entrada a uno de salida. No es necesario conectar todos los puertos de salida, a menos que quiera seguir supervisando esas transmisiones de video. El control del conmutador se logra mediante una interfaz Avalon-MM a la que se accede mediante un procesador Nios® II u otro dispositivo periférico mapeado con Avalon-MM.
En el siguiente ejemplo, se muestra el uso del conmutador, en el que una entrada de video sincronizado y un generador de patrones de prueba tienen dos puertos en el conmutador. El segundo puerto de salida del conmutador no se conecta y el procesador Nios® II controla cuál de las dos fuentes se envía al puerto conectado a la salida de video sincronizado para mostrarla en pantalla.
Generador de patrones de prueba II
El núcleo generador de patrones de prueba permite generar una cantidad de imágenes a fin de probar la interfaz de video de forma rápida. Se puede configurar el núcleo para admitir diferentes tamaños de imágenes, como también formatos de color RGB y YCbCr.
Puede utilizar un núcleo generador de patrones de prueba junto con un núcleo de salida de video sincronizado para verificar con rapidez la interfaz de video de su sistema. Si tiene a mano las especificaciones de video deseadas, puede completar un diseño en solo minutos para validar con rapidez la interfaz puede generar una imagen en una pantalla externa.
Monitor de video Avalon-ST
El monitor de video Avalon-ST es un núcleo que se puede insertar en serie en la ruta de datos del video que lee la información del paquete de video Avalon-ST y proporciona datos de diagnóstico para el sistema de seguimiento. El monitor de video se inserta donde desee investigar la ruta de datos del video para analizarla y obtener información de estadísticas. Cuando se combina con el núcleo de sistema de seguimiento y se conecta de forma externa a un puerto de depuración, mediante JTAG o Intel® FPGA Download Cable, puede lograr una mayor visibilidad del comportamiento del sistema de video. Puede usar la consola del sistema como la plataforma virtual para ver esta información.
En el ejemplo se muestra que el monitor de video Avalon-ST está insertado antes y después de un secuenciador de planos de color. Este se utiliza para supervisar la información en paquetes de video provenientes de la salida de video sincronizado y el secuenciador de planos de color. El monitor de video no altera los datos del video a medida que pasa por el núcleo. Los monitores de video se conectan al sistema de seguimiento que, en este caso, tiene acceso mediante JTAG.
Sistema de seguimiento
El sistema de seguimiento se utiliza para acceder a los núcleos monitores de video Avalon-ST insertados en un diseño para obtener información de diagnóstico de video. Se pueden utilizar varios monitores de video para conectarse a un controlador del sistema de seguimiento. Este sistema se conecta al host mediante una interfaz de depuración, por lo común un conector JTAG o una interfaz de Intel® FPGA Download Cable si está disponible.
En el ejemplo se muestra el uso del sistema de seguimiento con un par de núcleos monitores de video Avalon-ST insertados antes y después del secuenciador de planos de color. Los monitores de video se conectan al sistema de seguimiento que, en este caso, tiene acceso mediante JTAG.
Recursos adicionales
Encontrar PI
Encuentre el núcleo de propiedad intelectual Altera® FPGA adecuado para sus necesidades.
Asistencia técnica
Para obtener asistencia técnica sobre este núcleo de PI, visite Recursos de asistencia o Asistencia técnica Premier Intel®. También puede buscar temas relacionados con esta función en el Centro de conocimiento y en las Comunidades.
Evaluación y compra de PI
Información sobre el modo de evaluación y la compra para núcleos de propiedad intelectual Altera® FPGA.
IP Base Suite
Licencias gratuitas para Altera® FPGA IP Core con una licencia activa para el software Quartus® Prime Standard o Pro Edition.
Ejemplos de diseño
Descargue ejemplos de diseño y diseños de referencia para dispositivos Altera® FPGA.
Comuníquese con ventas
Póngase en contacto con el departamento de ventas para cubrir sus necesidades de diseño y aceleración con productos FPGA Altera®.