Guías y tutoriales
¿Qué son los macrobloques de compresión?
¿Porqué se ven «cuadraditos» de compresión en algunos contenidos?. ¡Descubre la historia de su origen aquí!
A veces te habrás «asustado» al comprobar que viendo algún contenido, sobre todo de baja calidad (o no), te encuentras con un montón de «cuadraditos» bailando por la pantalla, sobre todo en escenas oscuras.
Aunque los macrobloques de compresión o «artefactos de compresión» están relacionados con baja calidad de la imagen, hay que explicar cómo funcionan los codecs actuales, basados en MPEG, para entender por qué salen estos cuadraditos del demonio 🙂
La mayoría de codecs actuales (H264 y HEVC) están a su vez basados en MPEG, un tipo de codec de vídeo muy peculiar, que permite una gran imagen a un bajo bitrate. Obviamente, a menos bitrate, menos calidad de imagen, aunque eso es un tanto «relativo» en función del tipo de codec, todos ellos funcionan de una forma similar.
Esto que te cuento te va a sorprender, pero ¡el 80% de lo que ves en estos codecs no existe!. Se regenera en tiempo real mediante una serie de algoritmos que reconstruye la imagen. ¿Cómo?. Muy sencillo, usando lo que se denominan «imágenes clave».
Estas imágenes clave son ese 20% de la imagen, son fotogramas que tienen toda la información de imagen. El resto de fotogramas se CREAN en base a ellas, hasta llegar al siguiente fotograma clave. ¿Cómo es esto posible?. Pues porque el resto de fotogramas tan solo llevan la información de diferencia entre ambos.
Al decodificar la imagen, se generan en tiempo real, y a nosotros nos da la sensación de que vemos fotogramas completos, cuando en realidad es todo «mentira» 🙂
Los codecs basados en MPEG lo primero que hacen es recortar detalle en las partes de la imagen más oscuras o tonos similares. La primera percepción de este recorte son, efectivamente, los macrobloques y el «banding».
Si encima resulta que usamos un televisor de muy buena calidad como los OLED, donde su punto fuerte es precisamente el detalle en el negro y el contraste, es posible verlos con más asiduidad. No le pasa nada «raro» a tu televisor. Simplemente este tipo de codecs se diseñaron hace 20 años o más, y no tuvieron en cuenta que la tecnología de display cada vez es más precisa y fiel, y eso significa a veces lidiar con este tipo de cosas.
Otros codecs más avanzados como AV1 permiten codificar la imagen limpia y añadir la capa de grano en tiempo real. Esta capa de grano es idéntica a la original, ya que en el proceso de limpieza de imagen se crea una copia idéntica. Esto permite codificar mejor la imagen y aplicar el grano sobre ella, minimizando los macrobloques y dando una sensación de mayor calidad.
Está por ver el siguiente paso en el ámbito de la compresión, los dos codecs más prometedores son el citado AV1 y H266 o VVC (Versatile Video Coding). ¿Nos libraremos de los macrobloques para entonces?. Habrá que esperar…