Diseño de una arquitectura hardware del algoritmo Blockmerging según el estándar HEVC de transmisión de video 4K en tiempo real
Abstract
Las exigencias actuales en cuanto a calidad del contenido de video, a la par con el incremento del ancho de banda destinado a la transmisión de video, impulsan la necesidad de desarrollar estándares de codificación que sean más eficientes en cuanto a la calidad de reconstrucción de las imágenes decodificadas y a la cantidad de bits usados para la codificación. En este contexto, surge el nuevo estándar HEVC (High Efficiency VideoCoding) denominadoH.265[1].
Si bien el estándar HEVC ha superado enormemente a sus predecesores con la inclusión de nuevas herramientas tales como el particionamiento en bloques de dimensión variable de los cuadros de la secuencia de video, así como nuevas técnicas de predicción de vectores de movimiento como el AMVP (Advanced Motion Vector Prediction), la etapa de codificación no es del todo eficiente.
Con el objetivo de mejorar la eficiencia de codificación del HEVC se incorpora la técnica de Block Merging. Esta técnica busca provechar las redundancias temporales y espaciales entre bloques de predicción vecinos, de manera que se puedan codificar en conjunto aquellos bloques que cumplan con ciertos criterios de selección [2]. Por lo tanto, el algoritmo de Block Merging tiene como finalidad encontrar, a partir de una lista de posibles candidatos, el bloque de predicción (bloque de píxeles de 8x8,16x16,32x32 o 64x64) cuyo vector de movimiento tenga asociado el mejor costo RD (Rate-Distortion). Al codificar en conjunto bloques de predicción, se evita enviar parámetros (como los vectores de movimiento) repetidas veces, logrando así una importante reducción en la cantidad de bytes a emplear durante la codificación de cuadros de video , considerando que resoluciones de 4k u 8k son cada vez más comunes en los contenidos audiovisuales[2].
El presente trabajo se enfoca en implementar la etapa de elección del mejor candidato usando el algoritmo de SATD (Sum of Absolute Transformed Differences) como parte del algoritmo de Block Merging. La arquitectura fue descrita usando Verilog-HDL y sintetizada en dispositivos FPGA (Field Programmable Gate Array) de la familia Kintex 7 de Xilinx. Por otra parte, se verificó el funcionamiento de la arquitectura mediante el uso conjunto del simulador RTL (Register Transfer Level) de la herramienta Vivado Design Suite y un software de referencia en MATLAB (Matrix Laboratory), logrando una frecuencia de operación de 263.158 MHz. Tomando en cuenta una lista de tres candidatos y un particionamiento variable con un Parámetro de Cuantizaciónn QP (Quantization Parameter) en el rango de 22 hasta 36 considerado en trabajos pasados, la tasa de procesamiento de secuencias de video 4k (3840x2160) de la presente arquitectura se encuentra en el rango de 77.30 fps hasta 145.93 fps, lo cual se ajusta a los requerimientos por parte del estándar HEVC para transmitir video en tiempo real.
Temas
Video digital--Codificación
Procesamiento de datos en tiempo real
Compresión de videos
Procesamiento de datos en tiempo real
Compresión de videos
Para optar el título de
Ingeniero Electrónico
Collections
The following license files are associated with this item: