Hace ya algún tiempo realicé un post sobre el primer sistema de compresión que empezó a utilizarse en la Ultra HD, el DIRAC. Este sistema quedó reemplazado por el HEVC, por ello también me pareció interesante hacer otro post introductorio sobre el sistema de compresión HEVC que puedes ver aquí.
Uno de los sistemas de compresión utilizados (sino el que más) en la compresión de 4K y 8K es el HEVC (High Efficiency Video Coding) o también llamado H.265. Este códec de compresión es capaz de disminuir el flujo de datos hasta un 50% si se compara con el códec H-264 o hasta un 75% si lo comparamos con el códec de compresión MPEG-2, siempre sin tener que sacrificar la calidad de la señal de vídeo.
Este sistema de compresión surge de la unión de los grupos de trabajo de la ISO/IEC por medio del Moving Picture Experts Group (MPEG) y la ITU a través del Video Coding Experts Groups (VCEG). Es el mismo sistema de trabajo que se creo para la realización de la especificación del sistema de compresión H.264/MPEG-4 AVC.
Teniendo en cuenta que hasta abril del 2013 no se publicó la primera versión del HEVC, hasta ese momento el H.264 lideró de forma muy eficaz el mercado audiovisual siendo utilizado en el campo de dispositivos móviles, radiodifusión (TDT), videocámaras, etc.
Esto quedará desbancado con la aparición de un nuevo sistema de televisión como la UHDTV que requiere unos flujos de datos enormes y que necesita de un códec de compresión de este nivel.
Figura©Tilanotv. Reducción de compresión en diferentes formatos.
El códec HVEC se presenta actualmente con tres perfiles de codificación, que son:
- Main, el cual permite una profundidad de color de 8 bits.
- Main 10 permite además de 8 los 10 bits de profundidad de color.
- Main Still Picture que permite codificar una sola imagen fija con las mismas exigencias del perfil Main.
Además de los perfiles, el códec H-265 al igual que el H-264 también dispone de niveles, donde este último tiene similitudes con el H-265 en cuanto a los primeros perfiles, pero se diferencia en que el H-265 tiene tres niveles más, el 6, 6.1 y 6.2 que se utilizan para definir los requerimientos para vídeo en 8K.
Al igual que los anteriores sistemas de compresión desde que salió el H-261, el HEVC utiliza un enfoque híbrido que mejora aspectos con respecto al H-264 como la Intra predicción, la Inter predicción y la codificación, influyendo para esto último las mejoras en procesamiento paralelo requiriendo de hasta diez veces más capacidad de procesamiento llegando por este motivo a tener quinientas formas diferentes para codificar cada macrobloque.
El procesamiento paralelo de frente de onda y los azulejos en el códec HEVC
Como ya se ha comentado, el HEVC tiene una serie de mejoras que acompañan tanto la codificación como la decodificación de los datos, entre los que están el filtro de eliminación de bloques en bucle, los tiles o divisiones y el procesamiento paralelo de frente de onda (WPP). En la siguiente figura podemos apreciar que una imagen se puede dividir en segmentos o slices.
Figura@Tilanotv. Slices
Otra de las mejoras que se han añadido son las Tiles o azulejos, que permiten que una imagen se pueda fraccionar en una matriz de recuadros rectangulares, los cuales pueden codificarse y decodificarse a la vez de forma independiente. Esto hace que ofrezcan una mayor eficiencia en la codificación que los segmentos, ya que no tienen una cabecera de segmento.
También podemos destacar que permiten el acceso aleatorio a zonas concretas de una imagen en una transferencia de vídeo. Esto podemos apreciarlo en la siguiente imagen.
Figura@Tilanotv. Tiles
Por último tenemos el procesamiento paralelo de frente de onda o WPP que es el que va a permitir que cada hilera se pueda dividir en unidades de codificación en estructura de árbol o CTUs. Alternativamente con la WPP una imagen o un segmento se pueden dividir en hileras de unidades de transporte se puede decodificar por si misma, pero las siguientes tienen que tener en cuenta la anterior hilera para su correcta decodificación. Esto se puede apreciar en la siguiente imagen.
Figura@Tilanotv. WPP
Métodos de transformación de saltos y exploración
En cuanto a la transformación de saltos, se pueden realizar saltos entre una o más dimensiones espaciales, llevándose a cabo ésta en tamaños de 4×4 normalmente, lo que hace que se mejore la eficacia de la compresión en secuencia de vídeo especiales como en el caso de los gráficos de ordenador.
Por lo que respecta a la exploración de la imagen, la que conocíamos más quizás fuese la exploración en zigzag, pero la HEVC no es esta la que utiliza, ya que cuando realizan movimientos de exploración en diagonal. No da unos resultados óptimos. Por ello, el sistema HEVC utiliza además de la exploración diagonal, la horizontal y la vertical, pudiéndose aplicar en el caso de intra en TBs de 4×4 y de 8×8. Todo esto lo podemos ver en la siguiente figura.
Herramientas utilizadas en codificación del HEVC
El sistema de compresión HEVC al igual que anteriores sistemas de compresión, no utiliza solo una herramienta a la hora de realizar su cometido sino que por el contrario mezcla de forma inteligente el uso de varios o todos los útiles para una mejor optimización del sistema de compresión.
Por ello, el códec HEVC una de las mejores bazas que tiene es el incremento de herramientas utilizadas para la compresión de datos, en unos casos, y la mejora de alguno de los existentes en el H.264 en otros casos. Así que una vez aclarado este punto, a continuación podemos ver las nueve herramientas que utiliza el códec HEVC para la compresión de datos:
- Codificación en árbol.
- Codificación de entropía.
- Compensación de movimiento.
- Predicción del vector de movimiento.
- Predicción Intra.
- Filtros Loop.
- Filtros de desbloqueo.
- Transformadas inversas.
- Compensación adaptativa.
En un post posterior, veremos más detenidamente nueve herramientas utilizadas en la codificación HEVC. Mientras tanto puedes dejar un comentario si te apetece comentar alguna.
Fuentes consultadas:
http://www.projectorreviews.com/technical_blog/ultra-hd-video-standards-move-forward/
http://www.heywatchencoding.com/hevc
http://www.heywatchencoding.com/h265
http://www.elecard.com/en/technology/hevc.html
http://www.ittiam.com/en/Embedded/IP-Portfolio/HEVC/Know-the-HEVC-Standard.aspx
http://www.design-reuse.com/articles/33379/4k-10-bits-hevc-encoder-development.html
http://www.theregister.co.uk/2013/04/11/feature_wtf_is_h265_hevc/
http://opticalengineering.spiedigitallibrary.org/article.aspx?articleid=1183336