H264



Si quieres esuchar el contenido de ésta página, reproduce lo siguiente:

¿Qué es?

H.264 o MPEG-4 AVC (Advanced Video Coding) es un formato de codificación de vídeo para grabar y distribuir señales de vídeo FullHD y audio. Fue desarrollado y mantenido por el ITU-T Video Coding Experts Group (VCEG) con el ISO/IEC JTC1 Moving Picture Experts Group (MPEG).

Historia

El estándar H.264/AVC fue desarrollado a lo largo de 4 años, originalmente como el proyecto H.26L del VCEG en 1998 y luego como parte de MPEG-4 parte 2, con el trabajo del comité conjunto JVT. Fue concluido en 2003. Este estándar es conocido por seis nombres diferentes, aunque AVC y H.264 son los más comunes.

Versiones

  1. (Edición 1, Mayo de 2003) primera versión de H264, con los perfiles base, principal y extendido. ​

  2. (Edición 2, Marzo de 2005) introdujo los Fidelity Range Extensions (FRExt), además del perfil High y sus variantes. ​

  3. (Edición 2.2, Junio de 2006) eliminación del perfil High 4.4 ​

  4. (Edición 2.3, Abril de 2007) inclusión del perfil High 4.4 predictivo y otros cuatro perfiles con solo predicción intra. ​

  5. (Edición 3, Noviembre de 2007) Scalable Video Coding añadido, con 3 perfiles SVC ​

  6. (Edición 3.1, Enero de 2009) correcciones menores ​

  7. (Edición 4, Marzo de 2009) nuevo perfil, con un subconjunto de características comunes ​

  8. (Edición 4, Marzo de 2009) extensión Multiview Video Coding con su perfil respectivo ​

  9. (Edición 5, de 2010) nuevo perfil MVC y un mensaje de información suplementaria para mejora (SEI) ​

  10. (Edición 6, Junio de 2011) nuevo nivel 5.2 y el Progressive High Profile ​

  11. (Edición 7, Enero de 2012) tres nuevos perfiles orientados a la comunicación en tiempo real. ​

  12. (Edición 8, Abril de 2013) especificación de codificación para información de mapas de profundidad para videos 3D estereoscópicos, con un nuevo perfil. ​

  13. (Edición 8, Abril de 2013) corrección de error en el proceso de extracción de sub-bitstreams ​

  14. (Edición 8, Abril de 2013) indicadores adicionales para el espacio de color. ​

  15. (Edición 9, Febrero de 2014) especificación del Enhanced Multiview Depth High Profile ​

  16. (Edición 9, Febrero de 2014) especificación de las mejoras compatibles con cuadros con múltiples resoluciones (MFC) ​

  17. (Edición 10, Febrero de 2016) especificación de video estereoscópico MFC. ​

  18. (Edición 11, Octubre de 2016) especificación de niveles de decodificación adicionales para soportar imágenes más grandes, más mensajes SEI e identificadores para puntos de códigos VUI. ​

  19. (Edición 12, Abril de 2017) especificación del perfil Progressive High 10, HLG y más códigos VUI y mensajes SEI ​

  20. (Edición 13, Junio de 2019) introducción de gran cantidad de mensajes y metadatos SEI. ​

  21. (Edición 14, Agosto de 2021) más mensajes SEI, así como correcciones y clarificaciones menores ​

Características

Sus características principales están enfocadas a las mejoras en la eficiencia de codificación y a la flexibilidad para su uso en diversas aplicaciones.

Método de compresion

Estos métodos de compresión, recurren a los procedimientos generales de compresión de datos, aprovechando además la redundancia espacial de una imagen (áreas uniformes), la correlación entre puntos cercanos y la menor sensibilidad del ojo a los detalles finos de las imágenes fijas (JPEG) y, para imágenes animadas (MPEG), se saca provecho también de la redundancia temporal entre imágenes sucesivas.

  1. Codificación intra o espacial.

  2. Codificación inter o temporal.

  3. Codificación Bidireccional.

Codificación Intra o Espacial

Cuando las imágenes individuales son comprimidas sin referencia a las demás, el eje del tiempo no entra en el proceso de compresión, esto por lo tanto se denomina codificación intra (intra=dentro) o codificación espacial.
La Transformada Discreta del Coseno se usa en MPEG para determinar el dominio de la frecuencia espacial en imágenes bidimensionales.

Codificación inter o temporal

La codificación inter aprovecha la ventaja que existe cuando las imágenes sucesivas son similares. En lugar de enviar la información de cada imagen por separado, el codificador inter envía la diferencia existente entre la imagen previa y la actual en forma de codificación diferencial. El codificador necesita de una imagen, la cual fue almacenada con anterioridad para luego ser comparada entre imágenes sucesivas y de forma similar se requiere de una imagen previamente almacenada para que el decodificador desarrolle las imágenes siguientes.

Codificación bidireccional

Cuando un objeto se mueve, este oculta lo que hay detrás de él, pero esto va cambiando a medida que se va moviendo, permitiendo observar el fondo. El revelado del fondo exige nuevos datos a ser transmitidos, ya que el área del fondo había sido ocultada anteriormente y la información no pudo ser obtenida desde una imagen previa.


Algoritmo

El estándar H.264/AVC especifica el formato de la información codificada y el proceso de decodificación de la información, pero no determina un algoritmo de codificación específico.
El diseño y la implementación de codificadores H.264/AVC fue simplificada, gracias a varias de las características mencionadas anteriormente.
La capa de codificación de video de h264 utiliza una combinación de predicción temporal y espacial basada en bloques, junto con codificación por transformación basada en bloques.

1. Prediccion

Antes de realizar la predicción de una imagen dada, H.264/AVC subdivide cada imagen en unidades conocidas como “macrobloques”, soportando 4 particiones diferentes (16x16, 16x8, 8x16 y 8x8).
Estos bloques pueden ser divididos aún más en “sub-macrobloques”, con tamaños de 8x8, 4x8, 8x4 o 4x4. El estándar H.264/AVC utiliza dos métodos de predicción, aplicados a cada imagen:

  1. Espacial, o “Intra-predicción”: se predicen los componentes luma y croma de cada macrobloque de una imagen, usando las muestras vecinas ya codificadas.

  2. Temporal, o “Inter-predicción”: se predicen los macrobloques de una imagen con base en la imagen anterior, o en la imagen anterior y posterior.



Para las porciones B y P, se usan dos procesos para el movimiento
  1. Estimación de movimiento: por cada macrobloque, se busca “la mejor pareja” en la porción I correspondiente.

  2. Compensación de movimiento: la sustracción de una inter-predicción del macrobloque actual, después de la estimación de movimiento.
A diferencia de otros estándares de codificación de video, las porciones tipo B pueden ser usadas como imágenes de referencia para predicción compensada por movimiento.
Por esto, la principal diferencia entre las porciones tipo B y P usadas por H.264/AVC es que algunos macrobloques o bloques de las porciones B pueden ser codificados usando un promedio ponderado de dos valores distintos de predicción con compensación de movimiento.

2. Transformación

Un bloque de muestras residuales, producidas por el proceso de predicción, es transformado utilizando una aproximación entera de la DCT.
El resultado de la DCT es cuantizado, usando un parámetro de cuantización. Mientras mayor sea el grado de cuantización, mayor será la compresión y menor será la calidad, debido a la pérdida de información.

3. Codificación

La codificación incluye todos los valores resultantes de la codificación de video, además de información extra para permitir al decodificador recrear una predicción, información sobre los datos comprimidos y las herramientas de codificación usadas, además de información sobre la secuencia de video completa.