Estándar MPEG 2 Estándar MPEG-2 • El estándar de compresión de vídeo MPEG-2, fue la segunda fase de trabajo realizado por el grupo MPEG. • El conjunto de requerimientos fijados: – – – – – – – – Compatibilidad con MPEG-1 Buena calidad de la imagen Flexibilidad del formato de entrada Capacidad de acceso aleatorio Rebobinados rápidos y lentos hacia delante y hacia detrás Escalabilidad en el flujo de bits Bajos retardos para comunicaciones en ambos sentidos Resistencia a errores • El estándar MPEG-2 se realizó como una extensión del MPEG-1, el cual, se puede considerar como un subconjunto del MPEG-2. 1 MPEG-2: Características • La sintaxis del MPEG-2 tiene dos categorías: – Una sintaxis no escalable, la cual incluye a la sintaxis del MPEG-1, con extensiones adicionales para soportar vídeo entrelazado. – Una sintaxis escalable, la cual permite una codificación por capas de la señal de vídeo, mediante la cual, el descodificador puede descodificar • o sólo la capa básica para obtener una señal con calidad mínima, • o utilizar capas adicionales para incrementar la calidad de la señal. • Como el MPEG-1, el MPEG-2 es un estándar de compresión con pérdidas, basado en: – – – – – • Compensación de movimiento Estimación de movimiento hacia delante, hacia atrás o interpolada Transformada DCT Cuantificación Codificación RLE y Huffman En el modo de sintaxis escalable, la capa básica de una señal de vídeo codificada con el MPEG-2, podría ser también descodificada por un descodificador MPEG-1, aunque esto último no es requerido en el estándar. MPEG-2: Vídeo entrelazado • El estándar MPEG-2 soporta ambos formatos, – vídeo entrelazado – y vídeo progresivo, – por lo que se debe distinguir entre cuadro y campo. • Los campos de un cuadro de vídeo entrelazado pueden ser – codificados separadamente (imágenes-campo) – o pueden ser juntados de nuevo para formar el cuadro original y ser codificados como una única imagen (imágenes-cuadro), como en el estándar MPEG-1. • Como en MPEG-1, todas las imágenes de entrada (bien sean cuadros o campos) pueden ser codificadas como imágenes I, P o B. – Si la primera imagen de un cuadro codificado es una imagen-campo de tipo I, entonces la segunda imagen puede ser o una imagen de tipo I o una imagen-campo de tipo P. – Si la primera imagen es una imagen-campo de tipo P o B, entonces la segunda imagen-campo tiene que ser del del mismo tipo. 2 MPEG-2: Formatos de muestreo • Como en MPEG-1, las imágenes de entrada son codificadas en el espacio de colores YCbCr, sin embargo, en adición al formato de muestreo 4:2:0 utilizado en el MPEG-1. El MPEG-2 también soporta los formatos 4:2:2 y 4:4:4. • Cuando la sintaxis del MPEG-2 – no está en algunos de los modos de sus extensiones escalables, todos los bloques del macrobloque son de 8 x 8 píxeles. – por el contrario, cuando si que lo está, los macrobloques pueden contener bloques escalados con menores resoluciones, 1 x 1, 2 x 2 ó 4 x 4. • Con respecto al tamaño de la imagen de entrada, el MPEG-2 es muy flexible, aceptando cualquier valor hasta 16.000 x 16.000 píxeles. MPEG-2: Transformada DCT • Debido a la existencia de los conceptos de cuadro y campo, la transformada DCT, que se realiza igualmente que en MPEG-1 sobre la unidad funcional de bloque, puede ser realizada sobre imágenes-cuadro o imágenes-campo. • La estructura de los bloques de luminancia es distinta para cada una de las dos posibilidades. Para los bloques de la crominancia, todos los bloques están entrelazados, es decir, igual que para la transformada DCT de imagen-cuadro. 3 MPEG-2: Estimación y compensación del movimiento • En la predicción por campo, – las predicciones se hacen independientemente para cada campo utilizando como referencia otros campos. Similar a lo que se hace en MPEG-1, considerando cada campo como una imagen independiente. • En la predicción por cuadro, • Para mejorar la eficiencia de la predicción, MPEG-2 proporciona dos modos adicionales de compensación del movimiento. – el cuadro completo es considerado como una única imagen. – La compensación de movimiento 16 x 8: permite a un macrobloque de 16 x 16 ser tratado como dos regiones de 16 x 8, una superior y otra inferior. Cada región de 16 x 8 es compensada independientemente. La compensación de movimiento 16 x 8 m sólo se permite en imágenescampo. – La compensación de movimiento dual-prime: es aplicable sólo a imágenes P y GOPs que no tienen imágenes B entre estas imágenes P y las imágenes de referencia. MPEG-2: Cuantificación • MPEG-1 utiliza sólo dos matrices de cuantificación para los coeficientes DCT, – una para bloques intra – y otra para bloques inter. • Para los formatos 4:2:2 y 4:4:4, el MPEG-2 permite una codificación más eficiente debido al uso de diferentes matrices de cuantificación para los componentes: – luminancia – crominancia. • De este modo, se pueden utilizar – dos matrices para la luminancia (una para bloques intra y otra para bloques inter) – y otras dos para los componentes de crominancia. • Las matrices de cuantificación – En MPEG-1, sólo pueden ser cambiadas en la capa de secuencia, – mientras que en MPEG-2, las matrices pueden ser cambiadas en el nivel de cuadro. • Tanto en MPEG-1 como en MPEG-2, el factor de escala Q (o MQUANT) puede ser cambiado a nivel de macrobloque. 4 MPEG-2: RLE • • • En MPEG-2, en adición al orden en zig-zag de lectura de los coeficientes DCT para realizar la codificación RLE, se permite otro orden de lectura de coeficientes, llamado alternativo. Los coeficientes DC y AC de los bloques intra e inter de la DCT, se codifican de la misma forma que lo hace MPEG-1. Una vez que se ha realizado la RLE, los pares que esta codificación proporciona son codificados acorde a unos códigos de longitud variable Huffman. MPEG-2: Escalabilidad • • Una nueva extensión en MPEG-2 es la escalabilidad del flujo de bits, la cual permite una representación por capas del flujo de bits de una única fuente de vídeo. Esto se consigue estructurando el flujo de bits en dos o más capas, – comenzando por una capa básica, que puede ser única, – y añadiendo una o mas capas que mejoran la calidad que proporciona la capa básica. • La sintaxis del MPEG-2 permite cuatro modos básicos de escalabilidad del flujo de bits: – – – – – • Partición de datos Escalabilidad SNR Escalabilidad espacial Escalabilidad temporal Escalabilidad híbrida (mezcla de las anteriores) En el caso de escalabilidad básica, se utilizan dos capas llamadas – capa básica – y capa de mejora, • Con la escalabilidad híbrida hasta tres capas son soportadas. 5 MPEG-2: Escalabilidad Partición de datos • • • El flujo de bits es dividido en dos capas, llamadas particiones. La idea está basada sobre el hecho de que el sistema visual humano es insensible a las componentes de alta frecuencia de las señales de vídeo. Con este esquema, la llamada capa base transmite con un nivel de prioridad alta. – los coeficientes de baja frecuencia, – los modos de codificación – y los vectores de movimiento • La llamada capa de mejora, transmiten en un nivel de prioridad mas baja donde la probabilidad de pérdidas es mayor – Los coeficientes de alta frecuencia, – y otra información menos importante, – a su llegada al receptor mejora la calidad proporcionada por la capa base. • Este modo de escalabilidad es idóneo en aplicaciones de transmisión de vídeo, cuando se tienen redes de transmisión que soportan dos niveles de prioridad como las redes con tecnología ATM. MPEG-2: Escalabilidad Partición de datos: Características de diseño • Las dos particiones poseen el mismo valor del factor Q. • Breakpoint: define el número de coeficientes distintos de cero en un bloque (aparte del DC en MB intra), que serán asignados a la capa base. • Calidad: la partición de la información debe de ser tal, que la capa base, pueda proporcionar por sí misma una calidad mínima aceptable. • Sobreflujo: la codificación jerárquica introduce un sobreflujo (réplica de cabeceras en ambas particiones) que deberá de ser analizado. 6 MPEG-2: Escalabilidad Partición de datos: Asignación de prioridad El módulo de Asignación de prioridad, se encarga de tomar las decisiones sobre que información del flujo de bits irá a la capa base con Prioridad alta (HP, capa base), y cual irá a la capa de mejora con prioridad baja (LP, capa mejora) 7 MPEG-2: Escalabilidad Partición de datos: Descodificación • Si el error o pérdida de información ocurre en la capa de mejora, el descodificador utiliza sólo la información de la capa base, para reconstruir la señal de vídeo. • Esta situación se prolonga hasta que se encuentre la resincronización entre las dos capas. La re-sincronización se busca a nivel de cabecera de franja y se realiza comparando las cabeceras encontradas en las dos capas. • Los macrobloques que sólo hayan sido descodificados con la capa base tendrán una menor calidad (pero aceptable) que los que fueron descodificados utilizando las dos capas. • Si el error o pérdida de información se produce en la capa base, entonces el descodificador tiene que descartar toda la información recibida (ambas capas) hasta que encuentra la siguiente cabecera de franja de vídeo. 8 MPEG-2: Escalabilidad SNR • Todas las capas tienen la misma resolución espacial para diferentes calidades de vídeo. – La capa básica es codificada por si misma y proporciona la calidad básica del vídeo. – Las capas de mejora restantes son codificadas para mejorar la calidad básica, proporcionando un mayor refinamiento de los coeficientes de la DCT de la capa básica. • Cada capa contiene todos los coeficientes DCT, pero cada capa puede tener un valor diferente del factor Q. • La escalabilidad SNR proporciona también una mejor resistencia a errores de transmisión: – por ejemplo, las capas de mejora pueden transmitirse sobre canales con peores prestaciones, en términos de retardos y errores de transmisión, – y transmitir la capa básica sobre un canal que presente mejores prestaciones, asegurando un mínimo de calidad con la capa básica. MPEG-2: Escalabilidad Temporal • La escalabilidad temporal permite: – la migración desde sistemas con baja resolución temporal a sistemas con mayores resoluciones temporales, – y permite su inter-operatividad con un mismo flujo de bits. • La capa básica: – es codificada por si misma – y proporciona el caudal básico temporal, y las capas de mejora son codificadas con predicción temporal con respecto a la capa básica. – la capa básica y la capa de mejora pueden ser combinadas para generar un flujo de bits de resolución temporal completa. • • Los sistemas de resolución temporal baja pueden descodificar sólo la capa básica para proporcionar una resolución temporal baja, mientras que los sistemas mas sofisticados pueden descodificar ambas capas para obtener una resolución temporal mas alta, a la vez que pueden trabajar conjuntamente con sistemas menos sofisticados. Todas las capas tienen el mismo tamaño de cuadro y formatos de muestreo, pero diferentes caudales de cuadro. 9 MPEG-2: Escalabilidad Espacial • La escalabilidad espacial – fue diseñada para ser utilizada como herramienta que permitiese la interoperatividad entre diferentes estándares y entre diferentes sistemas con diferentes resoluciones como TV y HDTV, con un mismo flujo de bits. • El flujo de bits se divide en capas de diferente resolución espacial. – La capa básica es codificada por si misma y proporciona la resolución espacial básica, – mientras que la capa de mejora utiliza la capa básica, para proporcionar la resolución espacial completa de la señal de vídeo. • Las capas pueden tener diferentes – Tamaños de cuadro – Caudal de cuadros – Formatos de muestreo • En una aplicación típica – La capa básica puede ser un flujo de bits acorde al estándar MPEG-1 con un formato de tamaño SIF – Mientras que la capa de mejora puede ser utilizada para generar una resolución de vídeo del tipo CCIR 601. MPEG-2: Perfiles y niveles • • Los expertos en MPEG se dieron cuenta que era imposible definir un único estándar que pueda satisfacer todos los requerimientos, y que la mayoría de las aplicaciones deberían utilizar un pequeño subconjunto de las posibilidades ofrecidas por el estándar. El grupo MPEG adoptó la decisión de realizar un estándar compuesto por un conjunto de Perfiles y Niveles que pudiesen satisfacer los requerimientos específicos de las aplicaciones. 10 MPEG-2: Sintaxis y Semántica • El flujo de bits de vídeo comprimido puede verse como una jerarquía sintáctica, en la cual las estructuras sintácticas contienen a una o más estructuras sintácticas subordinadas. Cada una de estas estructuras sintácticas se reconoce por una cabecera que la identifica y no puede repetirse en ningún otro lado del flujo de bits codificado. MPEG-2: Sintaxis y Semántica Reglas básicas 1. Si la primera cabecera de la secuencia no está seguida por una extensión de secuencia, entonces el flujo de bits debe ser conforme con la sintaxis del estándar MPEG-1. 2. Si la primera cabecera de secuencia está seguida por una extensión de secuencia entonces todas las subsecuentes apariciones de la cabecera de secuencia deberán estar inmediatamente seguidas por una extensión de secuencia. 3. La extensión de secuencia sólo puede ocurrir inmediatamente después de una cabecera de secuencia. 4. Si en el flujo de bits aparece una extensión de secuencia, entonces después de cada cabecera de imagen debe seguir una extensión para la codificación de la imagen. 5. La extensión para la codificación de la imagen debe de aparecer solamente después de una cabecera de imagen. 6. La primera imagen codificada después de un GOP debería ser una de tipo I. 11 MPEG 2: Codificación CBR • • • • La mayoría de los codificadores de vídeo (incluido MPEG 2) son controlados de acuerdo con el esquema CBR (Constant Bit Rate), donde el caudal generado por la señal de vídeo codificada se mantiene constante a un valor prefijado con anterioridad, mediante el ajuste dinámico del factor de cuantificación Q. En codificación CBR, la calidad de vídeo varía de acuerdo con el contenido de la secuencia, ya que el factor de cuantificación se varía para alcanzar un caudal de salida constante independientemente de la complejidad de la escena. La codificación CBR ha sido motivada hasta la fecha, debido a que las tecnologías de comunicación, tales como la RDSI, y también las tecnologías de almacenamiento, como los CS-ROM, sólo son capaces de trabajar a caudal constante. En un codificador CBR, los bits producidos por el codificador son almacenados en un buffer, el cual es drenado al caudal constante deseado. 12 MPEG 2: Codificación VBR • • • • Las tecnologías LAN o ATM pueden soportar tráfico de caudal variable mediante el uso de la multiplexación estadística. Por lo tanto, cuando el vídeo tiene que ser transmitido por una de estas redes, se puede utilizar un esquema de codificación VBR (Variable Bit Rate), con el objetivo de obtener un nivel mas consistente en la calidad de vídeo comparado al de la codificación CBR. El esquema de codificación VBR mas utilizado es la literatura hoy en día, es la codificación VBR en lazo abierto (OL-VBR), en el cual, el factor de cuantificación Q se mantiene constante para toda la duración de la secuencia y es prefijado con anterioridad. Con codificación OL-VBR, una escena compleja es codificada utilizando un mayor número de bits, de este modo, la calidad es cuasi-constante y menos variable en el tiempo que la obtenida con CBR. MPEG 2: Impacto de los errores • El hecho de que el esquema de codificación de vídeo MPEG 2 utilice técnicas de eliminación de la redundancia o compresión hace que cualquier aplicación de vídeo MPEG 2 sea muy vulnerable ante: – La pérdida de información – Errores en la descodificación o en la transmisión. • Su impacto negativo sobre la calidad de vídeo se ve amplificado debido a los fenómenos de propagación espacial y temporal presentes en el estándar MPEG 2. • En ausencia de cualquier esquema adicional que controle la propagación de las pérdidas o los errores, su impacto es la descodificación puede causar que la degradación de la calidad de vídeo caiga por debajo de niveles aceptables. 13 MPEG 2: Impacto de los errores Propagación espacial • • • • • En ausencia de cualquier esquema adicional que controle la propagación, la pérdida de información conteniendo vídeo o un error provoca la pérdida de toda la información restante de la franja de vídeo. Esta pérdida incluye la información restante perteneciente a esta franja de vídeo aunque se haya recibido correctamente. Los macrobloques pertenecientes a una franja de vídeo contienen información codificada diferencialmente con respecto a los macrobloques que le preceden. Cuando se produce una pérdida o un error en alguno de los macrobloques, el resto de los macrobloques de la franja de vídeo pierde sus predictores para descodificar la información diferencial que transportan. Y por tanto debe de ser también descartados hasta el comienzo de la siguiente franja de vídeo, donde estos predictores fueron iniciados a un valor nulo de codificación. MPEG 2: Impacto de los errores Propagación temporal • • • • Además de la propagación espacial, debido a la naturaleza predictiva entre imágenes de MPEG 2, existe otra propagación de los errores en el dominio temporal, conocida como propagación temporal. Cuando un error se produce en una imagen tipo I, dicho error se propaga por todas las imágenes del GOP hasta la llegada de la siguiente imagen I. Las imágenes P y B del GOP fueron codificadas con referencia a la imagen I. Si los errores se producen en las imágenes de tipo P, la propagación temporal afectará a las imágenes P y B que fueron codificadas con referencia a ésta. Si los errores se producen en una imagen de tipo B, aparecerá la correspondiente propagación espacial pero ésta no será propagada temporalmente a ninguna imagen más, ya que las imágenes de tipo B no son utilizadas como referencia por otras imágenes en el GOP. 14