Un códec de vídeo es un software o hardware que comprime y descomprime vídeo digital . En el contexto de la compresión de vídeo, códec es un acrónimo de codificador y decodificador , mientras que un dispositivo que solo comprime se suele llamar codificador y uno que solo descomprime se llama decodificador .
El formato de datos comprimidos suele ajustarse a un formato de codificación de vídeo estándar . La compresión suele ser con pérdida , lo que significa que el vídeo comprimido carece de cierta información presente en el vídeo original. Una consecuencia de esto es que el vídeo descomprimido tiene una calidad inferior a la del vídeo original sin comprimir porque no hay suficiente información para reconstruir con precisión el vídeo original.
Existen relaciones complejas entre la calidad del video , la cantidad de datos utilizados para representar el video (determinada por la tasa de bits ), la complejidad de los algoritmos de codificación y decodificación, la sensibilidad a las pérdidas de datos y errores, la facilidad de edición, el acceso aleatorio y el retraso de extremo a extremo ( latencia ).
Históricamente, el vídeo se almacenaba como una señal analógica en cinta magnética . En la época en que el disco compacto entró en el mercado como un formato digital que reemplazaba al audio analógico, se hizo posible también almacenar y transmitir vídeo en formato digital. Debido a la gran cantidad de almacenamiento y ancho de banda necesarios para grabar y transmitir vídeo sin procesar, se necesitaba un método para reducir la cantidad de datos utilizados para representar el vídeo sin procesar. Desde entonces, los ingenieros y matemáticos han desarrollado una serie de soluciones para lograr este objetivo que implican la compresión de los datos de vídeo digital.
En 1974, Nasir Ahmed , T. Natarajan y KR Rao introdujeron la compresión por transformada de coseno discreta (DCT) . [1] [2] [3] A finales de los años 1980, varias empresas comenzaron a experimentar con la compresión con pérdida DCT para la codificación de vídeo, lo que llevó al desarrollo del estándar H.261 . [4] H.261 fue el primer estándar práctico de codificación de vídeo, [5] y fue desarrollado por varias empresas, entre ellas Hitachi , PictureTel , NTT , BT y Toshiba , entre otras. [6] Desde H.261, la compresión DCT ha sido adoptada por todos los principales estándares de codificación de vídeo que le siguieron. [4]
Los estándares de codificación de vídeo más populares utilizados para los códecs han sido los estándares MPEG . MPEG-1 fue desarrollado por el Motion Picture Experts Group (MPEG) en 1991, y fue diseñado para comprimir vídeo de calidad VHS . Fue sucedido en 1994 por MPEG-2 / H.262 , [5] que fue desarrollado por varias empresas, principalmente Sony , Thomson y Mitsubishi Electric . [7] MPEG-2 se convirtió en el formato de vídeo estándar para DVD y televisión digital SD . [5] En 1999, fue seguido por MPEG-4 / H.263 , que fue un gran salto adelante para la tecnología de compresión de vídeo. [5] Fue desarrollado por varias empresas, principalmente Mitsubishi Electric, Hitachi y Panasonic . [8]
El formato de codificación de vídeo más utilizado, a partir de 2016, es H.264/MPEG-4 AVC . Fue desarrollado en 2003 por varias organizaciones, principalmente Panasonic, Godo Kaisha IP Bridge y LG Electronics . [9] H.264 es el principal estándar de codificación de vídeo para discos Blu-ray , y es ampliamente utilizado por servicios de transmisión por Internet como YouTube , Netflix , Vimeo y iTunes Store , software web como Adobe Flash Player y Microsoft Silverlight , y varias transmisiones de HDTV por televisión terrestre y satelital.
AVC ha sido reemplazado por HEVC (H.265), desarrollado en 2013. Está ampliamente patentado, y la mayoría de las patentes pertenecen a Samsung Electronics , GE , NTT y JVC Kenwood . [10] [11] La adopción de HEVC se ha visto obstaculizada por su compleja estructura de licencias. A su vez, HEVC es reemplazado por Versatile Video Coding (VVC).
También existen los formatos de codificación de vídeo abiertos y gratuitos VP8 , VP9 y AV1 , utilizados por YouTube, todos ellos desarrollados con la participación de Google .
Los códecs de vídeo se utilizan en reproductores de DVD, vídeo de Internet , vídeo a la carta , cable digital , televisión digital terrestre , videotelefonía y una variedad de otras aplicaciones. En particular, se utilizan ampliamente en aplicaciones que graban o transmiten vídeo, lo que puede no ser factible con los altos volúmenes de datos y anchos de banda del vídeo sin comprimir. Por ejemplo, se utilizan en quirófanos para grabar operaciones quirúrgicas, en cámaras IP en sistemas de seguridad y en vehículos submarinos operados a distancia y vehículos aéreos no tripulados . Cualquier flujo o archivo de vídeo se puede codificar utilizando una amplia variedad de opciones de formato de vídeo en directo. A continuación se muestran algunas de las configuraciones del codificador H.264 que se deben configurar al transmitir a un reproductor de vídeo HTML5. [12]
Los códecs de vídeo buscan representar un conjunto de datos fundamentalmente analógico en un formato digital. Debido al diseño de las señales de vídeo analógicas, que representan la luminancia (luma) y la información de color (crominancia, croma) por separado, un primer paso común en la compresión de imágenes en el diseño de códecs es representar y almacenar la imagen en un espacio de color YCbCr . La conversión a YCbCr proporciona dos beneficios: primero, mejora la compresibilidad al proporcionar decorrelación de las señales de color; y segundo, separa la señal de luminancia, que es perceptualmente mucho más importante, de la señal de croma, que es menos importante perceptualmente y que se puede representar a una resolución más baja utilizando submuestreo de croma para lograr una compresión de datos más eficiente. Es común representar las proporciones de información almacenada en estos diferentes canales de la siguiente manera Y:Cb:Cr. Diferentes códecs utilizan diferentes proporciones de submuestreo de croma según sea apropiado para sus necesidades de compresión. Los esquemas de compresión de vídeo para la Web y DVD utilizan un patrón de muestreo de color de 4:2:1, y el estándar DV utiliza proporciones de muestreo de 4:1:1. Los códecs de vídeo profesionales diseñados para funcionar a tasas de bits mucho más altas y para grabar una mayor cantidad de información de color para la manipulación de posproducción muestrean en proporciones de 4:2:2 y 4:4:4. Algunos ejemplos de estos códecs son los códecs DVCPRO50 y DVCPROHD de Panasonic (4:2:2), HDCAM-SR de Sony (4:4:4), HDD5 de Panasonic (4:2:2) y Prores HQ 422 de Apple (4:2:2). [13]
También vale la pena señalar que los códecs de video también pueden operar en el espacio RGB. Estos códecs tienden a no muestrear los canales rojo, verde y azul en diferentes proporciones, ya que existe una menor motivación perceptiva para hacerlo; solo el canal azul podría estar submuestreado.
También se puede utilizar cierta cantidad de submuestreo espacial y temporal para reducir la tasa de datos sin procesar antes del proceso de codificación básica. La transformación de codificación más popular es la DCT 8x8. Los códecs que utilizan una transformación wavelet también están entrando al mercado, especialmente en flujos de trabajo de cámaras que implican lidiar con el formato de imagen RAW en secuencias de movimiento. Este proceso implica representar la imagen de video como un conjunto de macrobloques . Para obtener más información sobre esta faceta crítica del diseño de códecs de video, consulte B-frames . [14]
La salida de la transformación se cuantifica primero , luego se aplica la codificación de entropía a los valores cuantificados. Cuando se ha utilizado una DCT, los coeficientes se escanean normalmente utilizando un orden de escaneo en zigzag, y la codificación de entropía normalmente combina una serie de coeficientes cuantificados consecutivos de valor cero con el valor del siguiente coeficiente cuantificado distinto de cero en un solo símbolo y también tiene formas especiales de indicar cuándo todos los valores de coeficientes cuantificados restantes son iguales a cero. El método de codificación de entropía normalmente utiliza tablas de codificación de longitud variable . Algunos codificadores comprimen el vídeo en un proceso de varios pasos llamado codificación de n pasos (por ejemplo, 2 pasos), que realiza una compresión más lenta pero potencialmente de mayor calidad.
El proceso de descodificación consiste en realizar, en la medida de lo posible, una inversión de cada etapa del proceso de codificación. [15] La única etapa que no se puede invertir exactamente es la etapa de cuantificación. Allí, se realiza una aproximación de inversión de máximo esfuerzo. Esta parte del proceso a menudo se denomina cuantificación inversa o descuantificación , aunque la cuantificación es un proceso inherentemente no invertible.
Los diseños de códecs de vídeo suelen estar estandarizados o, con el tiempo, se estandarizan (es decir, se especifican con precisión en un documento publicado). Sin embargo, solo es necesario estandarizar el proceso de decodificación para permitir la interoperabilidad. El proceso de codificación normalmente no se especifica en absoluto en un estándar y los implementadores tienen la libertad de diseñar su codificador como quieran, siempre que el vídeo pueda decodificarse de la manera especificada. Por este motivo, la calidad del vídeo producido al decodificar los resultados de diferentes codificadores que utilizan el mismo estándar de códecs de vídeo puede variar drásticamente de una implementación de codificador a otra.
Se pueden implementar diversos formatos de compresión de video en PC y en equipos electrónicos de consumo. Por lo tanto, es posible que haya varios códecs disponibles en el mismo producto, lo que reduce la necesidad de elegir un único formato de compresión de video dominante para lograr la interoperabilidad .
Los formatos de compresión de vídeo estándar pueden ser compatibles con múltiples implementaciones de codificadores y decodificadores de múltiples fuentes. Por ejemplo, el vídeo codificado con un códec MPEG-4 Parte 2 estándar , como Xvid, se puede decodificar utilizando cualquier otro códec MPEG-4 Parte 2 estándar , como FFmpeg MPEG-4 o DivX Pro Codec, porque todos utilizan el mismo formato de vídeo.
Los códecs tienen sus cualidades y sus inconvenientes. Con frecuencia se publican comparaciones . El equilibrio entre potencia de compresión, velocidad y fidelidad (incluidos los artefactos ) suele considerarse la cifra más importante de mérito técnico.
El material de video en línea está codificado por una variedad de códecs, y esto ha llevado a la disponibilidad de paquetes de códecs: un conjunto preensamblado de códecs de uso común combinado con un instalador disponible como paquete de software para PC, como K-Lite Codec Pack , Perian y Combined Community Codec Pack .