MPEG-1

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

MPEG-1 es un estándar para la compresión con pérdida de vídeo y audio. Está diseñado para comprimir video digital sin procesar de calidad VHS y audio de CD hasta aproximadamente 1,5 Mbit/s (relaciones de compresión de 26:1 y 6:1 respectivamente) sin una pérdida de calidad excesiva, lo que permite crear CD de video, TV por cable/satélite digital y audio digital. práctica de radiodifusión (DAB).

Hoy en día, MPEG-1 se ha convertido en el formato de audio/video con pérdida más compatible del mundo y se usa en una gran cantidad de productos y tecnologías. Quizás la parte más conocida del estándar MPEG-1 es la primera versión del formato de audio MP3 que introdujo.

El estándar MPEG-1 se publica como ISO/IEC 11172: tecnología de la información: codificación de imágenes en movimiento y audio asociado para medios de almacenamiento digital hasta aproximadamente 1,5 Mbit/s.

El estándar consta de las siguientes cinco Partes:

  1. Sistemas (storage and synchronization of video, audio, and other data together)
  2. Video (contenido de vídeo comprimido)
  3. Audio (contenido de audio comprimido)
  4. Pruebas de conformidad (prueban la corrección de las implementaciones de la norma)
  5. Software de referencia (ejemplo software que muestra cómo codificar y decodificar de acuerdo con el estándar)

Historia

El predecesor de MPEG-1 para la codificación de video fue el estándar H.261 producido por el CCITT (ahora conocido como ITU-T). La arquitectura básica establecida en H.261 fue la estructura de codificación de video híbrida DCT con compensación de movimiento. Utiliza macrobloques de tamaño 16×16 con estimación de movimiento basada en bloques en el codificador y compensación de movimiento usando vectores de movimiento seleccionados por codificador en el decodificador, con codificación de diferencia residual usando una transformada de coseno discreta (DCT) de tamaño 8×8, cuantificación escalar y códigos de longitud variable (como los códigos de Huffman) para la codificación de entropía. H.261 fue el primer estándar práctico de codificación de video y todos sus elementos de diseño descritos también se usaron en MPEG-1.

Inspirado en el exitoso enfoque colaborativo y las tecnologías de compresión desarrolladas por el Grupo Conjunto de Expertos en Fotografía y el Grupo de Expertos en Telefonía del CCITT (creadores del estándar de compresión de imágenes JPEG y el estándar H.261 para videoconferencias, respectivamente), El grupo de trabajo del Grupo de expertos en imágenes en movimiento (MPEG) se estableció en enero de 1988, por iniciativa de Hiroshi Yasuda (Nippon Telegraph and Telephone) y Leonardo Chiariglione (CSELT). MPEG se formó para abordar la necesidad de formatos estándar de video y audio, y para construir sobre H.261 para obtener una mejor calidad mediante el uso de métodos de codificación un poco más complejos (por ejemplo, admitir una mayor precisión para los vectores de movimiento).

El desarrollo del estándar MPEG-1 comenzó en mayo de 1988. Empresas e instituciones individuales presentaron catorce propuestas de códec de video y catorce de audio para su evaluación. Los códecs se probaron exhaustivamente en cuanto a complejidad computacional y calidad subjetiva (percibida por el ser humano), a velocidades de datos de 1,5 Mbit/s. Esta tasa de bits específica se eligió para la transmisión a través de líneas T-1/E-1 y como la tasa de datos aproximada de los CD de audio. Los códecs que sobresalieron en esta prueba se utilizaron como base para el estándar y se refinaron aún más, con características adicionales y otras mejoras que se incorporaron en el proceso.

Después de 20 reuniones del grupo completo en varias ciudades del mundo y 4 años y medio de desarrollo y pruebas, el estándar final (para las partes 1 a 3) se aprobó a principios de noviembre de 1992 y se publicó unos meses después. La fecha de finalización informada del estándar MPEG-1 varía mucho: en septiembre de 1990 se produjo un borrador de estándar en gran parte completo y, a partir de ese momento, solo se introdujeron cambios menores. El proyecto de norma estaba disponible públicamente para su compra. La norma se terminó con la reunión del 6 de noviembre de 1992. El Berkeley Plateau Multimedia Research Group desarrolló un decodificador MPEG-1 en noviembre de 1992. En julio de 1990, antes de que se escribiera el primer borrador del estándar MPEG-1, se comenzó a trabajar en un segundo estándar, MPEG-2, destinado a extender MPEG -1 tecnología para proporcionar video de calidad de transmisión completa (según CCIR 601) a altas tasas de bits (3-15 Mbit / s) y soporte para video entrelazado. Debido en parte a la similitud entre los dos códecs, el estándar MPEG-2 incluye compatibilidad retroactiva completa con video MPEG-1, por lo que cualquier decodificador MPEG-2 puede reproducir videos MPEG-1.

En particular, el estándar MPEG-1 define muy estrictamente el flujo de bits y la función del decodificador, pero no define cómo se debe realizar la codificación MPEG-1, aunque se proporciona una implementación de referencia en ISO/IEC-11172-5. Esto significa que la eficiencia de la codificación MPEG-1 puede variar drásticamente según el codificador utilizado y, en general, significa que los codificadores más nuevos funcionan significativamente mejor que sus predecesores. Las primeras tres partes (Sistemas, Video y Audio) de ISO/IEC 11172 se publicaron en agosto de 1993.

Piezas MPEG-1
Parte Número Primer público
Fecha de lanzamiento
(primera edición)
más recientes
Corrección
Título Descripción
Parte 1 ISO/IEC 11172-1 1993 1999 Sistemas
Segunda parte ISO/IEC 11172-2 1993 2006 Video
Parte 3 ISO/IEC 11172-3 1993 1996 Audio
Parte 4 ISO/IEC 11172-4 1995 2007 Pruebas de cumplimiento
Parte 5 ISO/IEC TR 11172-5 1998 2007 simulación de software

Patentes

Debido a su antigüedad, MPEG-1 ya no está cubierto por ninguna patente esencial y, por lo tanto, puede usarse sin obtener una licencia ni pagar ninguna tarifa. La base de datos de patentes ISO enumera una patente para ISO 11172, US 4,472,747, que expiró en 2003. El borrador casi completo del estándar MPEG-1 estuvo disponible públicamente como ISO CD 11172 el 6 de diciembre de 1991. Ni el artículo Kuro5hin de julio de 2008 ni el #34;Estado de patente de MPEG-1, H.261 y MPEG-2", ni un hilo de agosto de 2008 en la lista de correo de gstreamer-devel pudieron enumerar una sola capa de audio MPEG-1 y video MPEG-1 no vencida Patente I/II. Una discusión de mayo de 2009 en la lista de correo whatwg mencionó que la patente US 5,214,678 posiblemente cubra MPEG-1 Audio Layer II. Presentada en 1990 y publicada en 1993, esta patente ya ha expirado.

Un descodificador y codificador de MPEG-1 completo, con "audio de capa III", no se pudo implementar sin regalías, ya que había empresas que exigían tarifas de patentes para las implementaciones de MPEG-1 Audio Layer III, como se mencionó. en el artículo MP3. Todas las patentes en el mundo relacionadas con MP3 expiraron el 30 de diciembre de 2017, lo que hace que este formato sea totalmente gratuito para su uso. El 23 de abril de 2017, Fraunhofer IIS dejó de cobrar por el programa de licencias de MP3 de Technicolor para ciertas patentes y software relacionados con MP3.

Antiguas titulares de patentes

(feminine)

Las siguientes corporaciones presentaron declaraciones ante ISO diciendo que tenían patentes para el formato de video MPEG-1 (ISO/IEC-11172-2), aunque todas esas patentes han expirado desde entonces.

  • BBC
  • Daimler Benz AG
  • Fujitsu
  • IBM
  • Matsushita Electric Industrial Co., Ltd.
  • Mitsubishi Electric
  • NEC
  • NHK
  • Philips
  • Pioneer Corporation
  • Qualcomm
  • Ricoh
  • Sony
  • Instrumentos de Texas
  • Thomson Multimedia
  • Impresión superior
  • Toshiba
  • Victor Company of Japan

Aplicaciones

  • El software más popular para la reproducción de vídeo incluye la decodificación MPEG-1, además de cualquier otro formato compatible.
  • La popularidad del audio MP3 ha establecido una base instalada masiva de hardware que puede reproducir MPEG-1 Audio (las tres capas).
  • "Virtualmente todos los dispositivos de audio digital" pueden reproducir MPEG-1 Audio. Muchos millones se han vendido hasta la fecha.
  • Antes de que el MPEG-2 se extendiera, muchos servicios digitales de televisión por satélite y cable utilizaban exclusivamente MPEG-1.
  • La popularidad generalizada de MPEG-2 con emisoras significa que MPEG-1 es jugable por la mayoría de las cajas de cable digital y set-top satélite, y los reproductores de disco y cinta digital, debido a la compatibilidad atrasada.
  • MPEG-1 fue utilizado para video de pantalla completa en Green Book CD-i, y en Video CD (VCD).
  • El estándar Super Video CD, basado en VCD, utiliza audio MPEG-1 exclusivamente, así como vídeo MPEG-2.
  • El formato DVD-Video utiliza el vídeo MPEG-2 principalmente, pero el soporte MPEG-1 se define explícitamente en el estándar.
  • El estándar DVD-Vídeo originalmente requería MPEG-1 Audio Layer II para los países PAL, pero fue cambiado para permitir discos solo digitales AC-3/Dolby. MPEG-1 Audio Layer II todavía está permitido en DVDs, aunque las extensiones más nuevas al formato, como MPEG Multicannel, son raramente soportadas.
  • La mayoría de los reproductores de DVD también admiten reproducción de CD de vídeo y CD MP3, que usan MPEG-1.
  • El estándar internacional de radiodifusión digital de vídeo (DVB) utiliza principalmente MPEG-1 Audio Layer II, y vídeo MPEG-2.
  • El estándar internacional de radiodifusión digital de audio (DAB) utiliza MPEG-1 Audio Layer II exclusivamente, debido a sus requisitos de rendimiento de decodificador modesto y de calidad especialmente alta, y tolerancia a errores.
  • La Cassette Digital Compact utiliza PASC (Precision Adaptive Sub-band Coding) para codificar su audio. PASC es una versión temprana de MPEG-1 Audio Layer I con una velocidad fija de 384 kilobits por segundo.

Parte 1: Sistemas

La parte 1 del estándar MPEG-1 cubre los sistemas y se define en ISO/IEC-11172-1.

Los sistemas MPEG-1 especifican el diseño lógico y los métodos utilizados para almacenar el audio, el video y otros datos codificados en un flujo de bits estándar y para mantener la sincronización entre los diferentes contenidos. Este formato de archivo está diseñado específicamente para el almacenamiento en medios y la transmisión a través de canales de comunicación que se consideran relativamente confiables. El estándar solo define una protección limitada contra errores, y los pequeños errores en el flujo de bits pueden causar defectos notables.

Más tarde, esta estructura se denominó flujo de programa MPEG: "El diseño de los sistemas MPEG-1 es esencialmente idéntico a la estructura del flujo de programa MPEG-2." Esta terminología es más popular, precisa (lo diferencia de un flujo de transporte MPEG) y se utilizará aquí.

Flujos elementales, paquetes y referencias de reloj

  • Elementary Streams (ES) son los bitstreams crudos de los datos de audio y video codificados MPEG-1 (salida de un encoder). Estos archivos pueden ser distribuidos por su cuenta, como es el caso con archivos MP3.
  • Las Corrientes Elementales Empaquetadas (PES) son flujos elementales embalados en paquetes de longitudes variables, es decir, divididos ES en pedazos independientes donde se agregó el chequeo de redundancia cíclica (CRC) a cada paquete para la detección de errores.
  • System Clock Reference (SCR) es un valor de tiempo almacenado en un encabezado de 33 bits de cada PES, a una frecuencia/precisión de 90 kHz, con una extensión adicional de 9 bits que almacena datos adicionales de sincronización con una precisión de 27 MHz. Estos son insertados por el encoder, derivado del reloj de tiempo del sistema (STC). Sin embargo, las secuencias de audio y vídeo codificadas simultáneamente no tendrán valores idénticos de SCR debido a la amortiguación, codificación, y otras demoras.

Transmisiones de programas

Los flujos de programa (PS) se ocupan de combinar varios flujos elementales empaquetados (por lo general, solo un PES de audio y video) en un solo flujo, asegurando la entrega simultánea y manteniendo la sincronización. La estructura PS se conoce como multiplex o formato contenedor.

Las marcas de tiempo de presentación (PTS) existen en PS para corregir la inevitable disparidad entre los valores SCR de audio y video (corrección de base de tiempo). Los valores PTS de 90 kHz en el encabezado PS le indican al decodificador qué valores SCR de video coinciden con qué valores SCR de audio. PTS determina cuándo mostrar una parte de un programa MPEG y también lo utiliza el decodificador para determinar cuándo se pueden descartar los datos del búfer. El decodificador retrasará el video o el audio hasta que llegue el segmento correspondiente del otro y pueda decodificarse.

El manejo de PTS puede ser problemático. Los decodificadores deben aceptar múltiples flujos de programa que se hayan concatenado (unido secuencialmente). Esto hace que los valores de PTS en el medio del video se restablezcan a cero, que luego comienzan a incrementarse nuevamente. Tales disparidades envolventes de PTS pueden causar problemas de temporización que el decodificador debe manejar especialmente.

Además, se requieren marcas de tiempo de decodificación (DTS) debido a los marcos B. Con fotogramas B en el flujo de vídeo, los fotogramas adyacentes deben codificarse y decodificarse fuera de orden (fotogramas reordenados). DTS es bastante similar a PTS, pero en lugar de solo manejar cuadros secuenciales, contiene las marcas de tiempo adecuadas para decirle al decodificador cuándo decodificar y mostrar el siguiente cuadro B (los tipos de cuadros se explican a continuación), antes de su ancla (P - o yo-) marco. Sin cuadros B en el video, los valores PTS y DTS son idénticos.

Multiplexación

Para generar el PS, el multiplexor intercalará los (dos o más) flujos elementales empaquetados. Esto se hace para que los paquetes de los flujos simultáneos puedan transferirse por el mismo canal y se garantice que ambos lleguen al decodificador exactamente al mismo tiempo. Este es un caso de multiplexación por división de tiempo.

Determinar cuántos datos de cada flujo debe haber en cada segmento intercalado (el tamaño del intercalado) es complicado, pero es un requisito importante. El intercalado inadecuado dará como resultado subdesbordamientos o desbordamientos del búfer, ya que el receptor obtiene más de un flujo de lo que puede almacenar (por ejemplo, audio), antes de obtener suficientes datos para decodificar el otro flujo simultáneo (por ejemplo, video). El verificador de búfer de video MPEG (VBV) ayuda a determinar si un PS multiplexado puede ser decodificado por un dispositivo con una tasa de rendimiento de datos y un tamaño de búfer específicos. Esto ofrece retroalimentación al multiplexor y al codificador, para que puedan cambiar el tamaño del multiplexor o ajustar las tasas de bits según sea necesario para el cumplimiento.

Parte 2: Vídeo

La Parte 2 del estándar MPEG-1 cubre el video y se define en ISO/IEC-11172-2. El diseño estuvo fuertemente influenciado por H.261.

MPEG-1 Video aprovecha los métodos de compresión perceptiva para reducir significativamente la tasa de datos requerida por una transmisión de video. Reduce o descarta por completo la información en ciertas frecuencias y áreas de la imagen que el ojo humano tiene una capacidad limitada para percibir por completo. También aprovecha la redundancia temporal (a lo largo del tiempo) y espacial (a lo largo de una imagen) común en el video para lograr una mejor compresión de datos de lo que sería posible de otra manera. (Ver: Compresión de video)

Espacio de color

Ejemplo de 4:2:0 submarinos. Los dos círculos de centro superpuestos representan el croma azul y el croma rojo (color) píxeles, mientras que los 4 círculos exteriores representan el luma (brightness).

Antes de codificar el video en MPEG-1, el espacio de color se transforma en Y′CbCr (Y′=Luma, Cb=Chroma Blue, Cr=Chroma Red). Luma (brillo, resolución) se almacena por separado de croma (color, matiz, fase) y aún más separados en componentes rojo y azul.

El croma también se submuestrea a 4:2:0, lo que significa que se reduce a la mitad de la resolución vertical y la mitad de la resolución horizontal, es decir, a solo una cuarta parte de la cantidad de muestras utilizadas para el componente luma del video. Este uso de una resolución más alta para algunos componentes de color es similar en concepto al filtro de patrón de Bayer que se usa comúnmente para el sensor de captura de imágenes en las cámaras digitales en color. Debido a que el ojo humano es mucho más sensible a los pequeños cambios en el brillo (el componente Y) que en el color (los componentes Cr y Cb), el submuestreo de croma es una forma muy efectiva de reducir la cantidad de datos de video que deben comprimirse. Sin embargo, en videos con detalles finos (alta complejidad espacial) esto puede manifestarse como artefactos de alias de croma. En comparación con otros artefactos de compresión digital, este problema rara vez parece ser una fuente de molestia. Debido al submuestreo, el video Y′CbCr 4:2:0 normalmente se almacena usando dimensiones pares (divisible por 2 horizontal y verticalmente).

El color Y′CbCr a menudo se denomina informalmente YUV para simplificar la notación, aunque ese término se aplica más correctamente a un formato de color algo diferente. De manera similar, los términos luminancia y crominancia se usan a menudo en lugar de los términos (más precisos) luma y croma.

Resolución/tasa de bits

MPEG-1 admite resoluciones de hasta 4095 × 4095 (12 bits) y velocidades de bits de hasta 100 Mbit/s.

Los vídeos MPEG-1 suelen verse con una resolución de formato de entrada de origen (SIF): 352 × 240, 352 × 288 o 320 × 240. Estas resoluciones relativamente bajas, combinadas con una tasa de bits de menos de 1,5 Mbit/s, conforman lo que se conoce como flujo de bits de parámetros restringidos (CPB), más tarde rebautizado como "Nivel bajo" (LL) perfil en MPEG-2. Estas son las especificaciones mínimas de video que cualquier decodificador debería poder manejar, para ser considerado compatible con MPEG-1. Esto fue seleccionado para proporcionar un buen equilibrio entre calidad y rendimiento, lo que permite el uso de hardware razonablemente económico de la época.

Tipos de cuadro/imagen/bloque

MPEG-1 tiene varios tipos de cuadros/imágenes que sirven para diferentes propósitos. El más importante, pero el más simple, es I-frame.

I-fotogramas

"I-marco" es una abreviatura de "Intra-frame", llamado así porque se pueden decodificar independientemente de cualquier otro marco. También pueden conocerse como imágenes I o fotogramas clave debido a su función algo similar a los fotogramas clave utilizados en la animación. Los I-frames pueden considerarse efectivamente idénticos a las imágenes JPEG de referencia.

La búsqueda de alta velocidad a través de un video MPEG-1 solo es posible hasta el cuadro I más cercano. Al cortar un video, no es posible iniciar la reproducción de un segmento de video antes del primer cuadro I en el segmento (al menos no sin una recodificación intensiva desde el punto de vista computacional). Por esta razón, los videos MPEG de solo fotogramas I se utilizan en aplicaciones de edición.

La compresión de solo fotogramas I es muy rápida, pero produce tamaños de archivo muy grandes: un factor de 3 veces (o más) mayor que el video MPEG-1 codificado normalmente, según la complejidad temporal de un video específico. El video MPEG-1 de solo cuadro I es muy similar al video MJPEG. Tanto es así que se puede realizar una conversión de un formato a otro a muy alta velocidad y teóricamente sin pérdidas (en realidad, hay errores de redondeo), siempre que se sigan un par de restricciones (espacio de color y matriz de cuantificación) en la creación del formato. flujo de bits

La longitud entre fotogramas I se conoce como el tamaño del grupo de imágenes (GOP). MPEG-1 suele utilizar un tamaño de GOP de 15 a 18. es decir, 1 fotograma I por cada 14-17 fotogramas no I (alguna combinación de fotogramas P y B). Con codificadores más inteligentes, el tamaño de GOP se elige dinámicamente, hasta un límite máximo preseleccionado.

Se imponen límites al número máximo de fotogramas entre fotogramas I debido a la complejidad de la decodificación, el tamaño del búfer del decodificador, el tiempo de recuperación después de errores de datos, la capacidad de búsqueda y la acumulación de errores IDCT en implementaciones de baja precisión más comunes en decodificadores de hardware (Ver: IEEE-1180).

P-marcos

"Estructura en P" es una abreviatura de "Fotograma previsto". También pueden llamarse tramas predichas hacia adelante o tramas intermedias (las tramas B también son tramas intermedias).

Los fotogramas P existen para mejorar la compresión mediante la explotación de la redundancia temporal (a lo largo del tiempo) en un video. Los marcos P almacenan solo la diferencia en la imagen del marco (ya sea un marco I o un marco P) inmediatamente anterior (este marco de referencia también se denomina marco de anclaje).

La diferencia entre un marco P y su marco ancla se calcula utilizando vectores de movimiento en cada macrobloque del marco (ver más abajo). Dichos datos de vector de movimiento se incrustarán en el cuadro P para que los utilice el decodificador.

Un marco P puede contener cualquier cantidad de bloques intracodificados, además de cualquier bloque predicho hacia adelante.

Si un video cambia drásticamente de un cuadro al siguiente (como un corte), es más eficiente codificarlo como un cuadro I.

Cuadros B

"Estructura B" significa "marco bidireccional" o "marco bipredictivo". También pueden conocerse como fotogramas predichos hacia atrás o imágenes B. Los fotogramas B son bastante similares a los fotogramas P, excepto que pueden hacer predicciones utilizando tanto los fotogramas anteriores como los futuros (es decir, dos fotogramas de anclaje).

Por lo tanto, es necesario que el jugador primero decodifique el siguiente cuadro de anclaje I o P secuencialmente después del cuadro B, antes de que el cuadro B pueda decodificarse y mostrarse. Esto significa que la decodificación de cuadros B requiere búferes de datos más grandes y provoca un mayor retraso tanto en la decodificación como durante la codificación. Esto también requiere la característica de decodificación de sellos de tiempo (DTS) en el contenedor/flujo del sistema (ver arriba). Como tal, los fotogramas B han sido objeto de mucha controversia durante mucho tiempo, a menudo se evitan en los videos y, a veces, los decodificadores de hardware no los admiten por completo.

No se predicen otros fotogramas a partir de un fotograma B. Debido a esto, se puede insertar un cuadro B de tasa de bits muy baja, donde sea necesario, para ayudar a controlar la tasa de bits. Si esto se hiciera con un cuadro P, se predecirían futuros cuadros P a partir de él y se reduciría la calidad de toda la secuencia. Sin embargo, de manera similar, el marco P futuro aún debe codificar todos los cambios entre él y el marco de anclaje I o P anterior. Los cuadros B también pueden ser beneficiosos en videos donde el fondo detrás de un objeto se revela en varios cuadros, o en transiciones que se desvanecen, como cambios de escena.

Un marco B puede contener cualquier cantidad de bloques intracodificados y bloques predichos hacia adelante, además de bloques predichos hacia atrás o predichos bidireccionalmente.

Cuadros en D

MPEG-1 tiene un tipo de cuadro único que no se encuentra en los estándares de video posteriores. "D-marcos" o Las imágenes DC son imágenes codificadas de forma independiente (intra-fotogramas) que se han codificado usando coeficientes de transformación DC únicamente (los coeficientes AC se eliminan al codificar fotogramas D; consulte DCT a continuación) y, por lo tanto, son de muy baja calidad. Los fotogramas D nunca se referencian mediante fotogramas I, P o B. Los cuadros D solo se utilizan para vistas previas rápidas de video, por ejemplo, cuando se busca un video a alta velocidad.

Dado un equipo de decodificación de rendimiento moderadamente superior, se puede lograr una vista previa rápida decodificando fotogramas I en lugar de fotogramas D. Esto proporciona vistas previas de mayor calidad, ya que los fotogramas I contienen coeficientes de CA y coeficientes de CC. Si el codificador puede asumir que la capacidad de decodificación rápida de cuadros I está disponible en los decodificadores, puede ahorrar bits al no enviar cuadros D (mejorando así la compresión del contenido de video). Por esta razón, los marcos D rara vez se usan en la codificación de video MPEG-1, y la función de marco D no se ha incluido en ningún estándar de codificación de video posterior.

Macrobloques

MPEG-1 funciona en video en una serie de bloques de 8×8 para cuantificación. Sin embargo, para reducir la tasa de bits necesaria para los vectores de movimiento y debido a que el croma (color) se submuestrea por un factor de 4, cada par de bloques de croma (rojo y azul) corresponde a 4 bloques de luma diferentes. Este conjunto de 6 bloques, con una resolución de 16×16, se procesan juntos y se denominan macrobloque.

Un macrobloque es la unidad independiente más pequeña de video (en color). Los vectores de movimiento (ver más abajo) operan únicamente a nivel de macrobloque.

Si la altura o el ancho del video no son múltiplos exactos de 16, las filas completas y las columnas completas de macrobloques aún deben codificarse y decodificarse para completar la imagen (aunque los píxeles decodificados adicionales no se muestran).

Vectores de movimiento

Para disminuir la cantidad de redundancia temporal en un video, solo se actualizan los bloques que cambian (hasta el tamaño máximo de GOP). Esto se conoce como reposición condicional. Sin embargo, esto no es muy efectivo por sí mismo. El movimiento de los objetos y/o de la cámara puede resultar en la necesidad de actualizar grandes porciones del marco, aunque solo haya cambiado la posición de los objetos previamente codificados. A través de la estimación de movimiento, el codificador puede compensar este movimiento y eliminar una gran cantidad de información redundante.

El codificador compara el cuadro actual con partes adyacentes del video desde el cuadro ancla (cuadro I o P anterior) en un patrón de diamante, hasta un límite de radio predefinido (específico del codificador) desde el área del cuadro actual macrobloque. Si se encuentra una coincidencia, solo la dirección y la distancia (es decir, el vector del movimiento) desde el área de video anterior hasta el macrobloque actual deben codificarse en el marco intermedio (P- o B- marco). El proceso inverso, realizado por el decodificador para reconstruir la imagen, se denomina compensación de movimiento.

Sin embargo, un macrobloque pronosticado rara vez coincide perfectamente con la imagen actual. Las diferencias entre el área de coincidencia estimada y el cuadro/macrobloque real se denomina error de predicción. Cuanto mayor sea la cantidad de error de predicción, más datos deben codificarse adicionalmente en el marco. Para una compresión de video eficiente, es muy importante que el codificador sea capaz de realizar una estimación de movimiento de manera efectiva y precisa.

Los vectores de movimiento registran la distancia entre dos áreas en la pantalla según la cantidad de píxeles (también llamados pels). El vídeo MPEG-1 utiliza una precisión de vector de movimiento (MV) de la mitad de un píxel o medio pel. Cuanto mayor sea la precisión de los MV, más precisa será la coincidencia y más eficiente será la compresión. Sin embargo, existen ventajas y desventajas para una mayor precisión. Una precisión de MV más fina da como resultado el uso de una mayor cantidad de datos para representar el MV, ya que se deben almacenar números más grandes en el cuadro para cada MV individual, mayor complejidad de codificación ya que se requieren niveles crecientes de interpolación en el macrobloque tanto para el codificador como para el decodificador, y rendimientos decrecientes (ganancias mínimas) con MV de mayor precisión. Se eligió la precisión de medio pel como el equilibrio ideal para ese momento. (Ver: qpel)

Debido a que es probable que los macrobloques vecinos tengan vectores de movimiento muy similares, esta información redundante se puede comprimir de manera bastante eficaz si se almacena con codificación DPCM. Solo la cantidad (menor) de diferencia entre los MV para cada macrobloque debe almacenarse en el flujo de bits final.

Los fotogramas P tienen un vector de movimiento por macrobloque, en relación con el fotograma ancla anterior. Los cuadros B, sin embargo, pueden usar dos vectores de movimiento; uno del marco de anclaje anterior y otro del futuro marco de anclaje.

Los macrobloques parciales y las barras o los bordes negros codificados en el video que no caen exactamente en un límite de macrobloque causan estragos en la predicción de movimiento. La información de relleno/borde del bloque evita que el macrobloque coincida estrechamente con cualquier otra área del video y, por lo tanto, se debe codificar información de error de predicción significativamente mayor para cada una de las varias docenas de macrobloques parciales a lo largo del borde de la pantalla. La codificación y cuantificación DCT (ver a continuación) tampoco es tan efectiva cuando hay un contraste de imagen grande/nítido en un bloque.

Existe un problema aún más grave con los macrobloques que contienen un ruido de borde significativo y aleatorio, en el que la imagen cambia (típicamente) a negro. Todos los problemas anteriores también se aplican al ruido de borde. Además, la aleatoriedad añadida es simplemente imposible de comprimir significativamente. Todos estos efectos reducirán sustancialmente la calidad (o aumentarán la tasa de bits) del video.

DCT

Cada bloque de 8×8 se codifica aplicando primero una transformada discreta de coseno (FDCT) forward y luego un proceso de cuantificación. El proceso FDCT (en sí mismo) teóricamente no tiene pérdidas y se puede revertir aplicando una DCT inversa (IDCT) para reproducir los valores originales (en ausencia de errores de cuantificación y redondeo). En realidad, hay algunos errores de redondeo (a veces grandes) introducidos tanto por la cuantificación en el codificador (como se describe en la siguiente sección) como por el error de aproximación IDCT en el decodificador. La precisión mínima permitida de una aproximación IDCT de decodificador está definida por ISO/IEC 23002-1. (Antes de 2006, estaba especificado por IEEE 1180-1990).

El proceso FDCT convierte el bloque de 8×8 de valores de píxeles sin comprimir (valores de diferencia de color o brillo) en una matriz indexada de 8×8 de valores de coeficiente de frecuencia. Uno de ellos es el 'coeficiente DC' (estadísticamente alto en varianza), que representa el valor medio de todo el bloque de 8×8. Los otros 63 coeficientes son los "coeficientes de CA" estadísticamente más pequeños, que tienen valores positivos o negativos, cada uno de los cuales representa desviaciones sinusoidales del valor del bloque plano representado por el coeficiente de CC.

Un ejemplo de un bloque FDCT de 8×8 codificado:

Dado que el valor del coeficiente DC está correlacionado estadísticamente de un bloque al siguiente, se comprime mediante la codificación DPCM. Solo la cantidad (menor) de diferencia entre cada valor de CC y el valor del coeficiente de CC en el bloque a su izquierda debe representarse en el flujo de bits final.

Además, la conversión de frecuencia realizada mediante la aplicación de la DCT proporciona una función de descorrelación estadística para concentrar de manera eficiente la señal en menos valores de gran amplitud antes de aplicar la cuantificación (consulte a continuación).

Cuantificación

La cuantificación es, esencialmente, el proceso de reducir la precisión de una señal, dividiéndola por un tamaño de paso más grande y redondeando a un valor entero (es decir, encontrar el múltiplo más cercano y descartar el resto).

El cuantificador de nivel de fotograma es un número del 0 al 31 (aunque los codificadores suelen omitir o desactivar algunos de los valores extremos) que determina cuánta información se eliminará de un fotograma determinado. El cuantificador de nivel de cuadro generalmente lo selecciona dinámicamente el codificador para mantener una determinada tasa de bits especificada por el usuario o (mucho menos comúnmente) lo especifica directamente el usuario.

Una "matriz de cuantificación" es una cadena de 64 números (que van del 0 al 255) que le dice al codificador cuán relativamente importante o no importante es cada pieza de información visual. Cada número en la matriz corresponde a un cierto componente de frecuencia de la imagen de video.

Un ejemplo de matriz de cuantificación:

La cuantificación se realiza tomando cada uno de los 64 valores de frecuencia del bloque DCT, dividiéndolos por el cuantificador de nivel de cuadro y luego dividiéndolos por sus valores correspondientes en la matriz de cuantificación. Finalmente, el resultado se redondea hacia abajo. Esto reduce significativamente, o elimina por completo, la información en algunos componentes de frecuencia de la imagen. Por lo general, la información de alta frecuencia es menos importante visualmente y, por lo tanto, las frecuencias altas están mucho más fuertemente cuantificadas (reducidas drásticamente). MPEG-1 en realidad usa dos matrices de cuantificación separadas, una para intrabloques (bloques I) y otra para interbloques (bloques P y B), por lo que la cuantificación de diferentes tipos de bloques se puede realizar de forma independiente y, por lo tanto, de manera más efectiva..

Este proceso de cuantificación generalmente reduce una cantidad significativa de los coeficientes AC a cero (conocidos como datos dispersos) que luego pueden comprimirse de manera más eficiente mediante la codificación de entropía (compresión sin pérdidas) en el siguiente paso.

Un ejemplo de bloque DCT cuantificado:

Contenido relacionado

Eurostar

Eurostar es un servicio ferroviario internacional de alta velocidad que conecta el Reino Unido con Francia, Bélgica y los Países Bajos. La mayoría de los...

EasyWriter

EasyWriter fue un procesador de texto escrito por primera vez para la computadora de la serie Apple II en 1979, el primer procesador de texto para esa...

JavaScript

JavaScript a menudo abreviado como JS, es un lenguaje de programación que es una de las tecnologías centrales de la World Wide Web, junto con HTML y CSS. A...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save