Fundamentos de Compresión de Video: MPEG-2 y MPEG-4
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 4,62 KB
Proceso de Compresión
- (8x8): Se divide la imagen en bloques de 8x8 píxeles (en MPEG-2 estos bloques se agrupan en macrobloques de 16x16).
- DCT (Transformada Discreta del Coseno): Transforma cada bloque del dominio espacial al dominio de la frecuencia, concentrando la energía en pocos coeficientes (cerca del coeficiente DC).
- Cuantización y Threshold: Se divide cada coeficiente DCT por un valor de una tabla de cuantización, generando muchos ceros y descartando información de alta frecuencia poco perceptible. (Compresión con pérdida).
- ZigZag: Lectura serial de los coeficientes ya cuantizados, ordenando primero los de baja frecuencia para agrupar los ceros de forma eficiente.
- RLC (Run-Length Coding): Convierte las largas cadenas de ceros en pares (cantidad de repeticiones, valor), reduciendo la cantidad de símbolos a transmitir.
- VLC (Variable Length Coding): Asigna códigos más cortos a los símbolos más frecuentes.
Tipos de Frames
- IntraFrame (I-Frame): Se codifica de forma independiente, usando solo compresión espacial (DCT), sin referencia a otras imágenes. Sirve como referencia para los demás tipos de frames (~100 KB).
- PredFrame (P-Frame): Se codifica usando compensación de movimiento hacia adelante, tomando como referencia una imagen I o P anterior ya codificada. Puede propagar errores, ya que otros P-frames lo usan como referencia (~50 KB).
- BidiFrame (B-Frame): Se codifica usando compensación de movimiento bidireccional; puede referenciar tanto frames pasados como futuros (I o P). Logra el mayor grado de compresión (~8 KB) y nunca se utiliza como referencia de otros frames.
Slice
Grupo de macrobloques contiguos dentro de una misma imagen (cada macrobloque = 4 bloques de 8x8 píxeles). Su función es permitir el manejo de errores de forma parcializada. Si el decodificador detecta un error, puede saltarse solo ese slice en vez de descartar la imagen completa.
Comparativa: MPEG-2 vs. MPEG-4
Similitudes
- Ambos usan DCT + cuantización como núcleo de la compresión espacial.
- Ambos utilizan I-P-B Frames, con predicción y compensación de movimiento basada en macrobloques.
- Ambos emplean algún esquema de codificación entrópica (RLC + VLC/Huffman) en su etapa final.
- Ambos definen perfiles (profiles) y niveles (levels) para clasificar la complejidad del encoder/decoder y sus aplicaciones.
Diferencias clave
- Flexibilidad de bloques: MPEG-2 usa bloques fijos de 8x8 (macrobloques de 16x16). MPEG-4/H.264 flexibiliza esto, permitiendo sub-bloques de 16x8, 8x16, 8x4, 4x8 e incluso 4x4.
- Codificación basada en objetos: MPEG-4 introduce el concepto de codificar la escena como objetos de forma arbitraria más el fondo, manejados por separado. MPEG-2 trata cada imagen como un conjunto plano de datos.
- Retrocompatibilidad: No existe; una decisión explícita del grupo de estudio de MPEG-4/H.264 fue no mantener retrocompatibilidad con MPEG-2.
- Eficiencia: MPEG-4/H.264 utiliza herramientas de codificación entrópica más avanzadas (CAVLC y CABAC), permitiendo transmitir HD a menos de la mitad de la tasa binaria de MPEG-2 (6–10 Mbps vs. 15–20 Mbps).
Multiplexor MPEG-2
- Producir un flujo de salida a bit rate constante, independiente de la variabilidad de los flujos de entrada.
- Organizar los paquetes PES (de largo variable) en TSP (Transport Stream Packets) de largo fijo (188 bytes), agregando el encabezado correspondiente a cada paquete.
- Garantizar que cada PES (de audio o video) tenga un PID único, para que el demultiplexor del receptor pueda identificar correctamente a qué contenido pertenece cada paquete.
- Insertar la información de PCR, que entrega la base de sincronización del programa para que el decodificador pueda reconstruir el reloj del encoder.
Cuestionario de Verificación
- La compresión de audio usa un esquema de aumentar la razón de señal a ruido mediante la reducción de los bits usados en la cuantización. Falso.
- Si un decodificador no puede leer la PAT de un stream digital multiprograma, no será capaz de desplegar ningún contenido de ese stream. Verdadero.
- Todo encoder debe contener también un multiplexor. Falso.