Estándar más utilizado para la compresión de vídeo.
Diagrama de bloques de la capa de codificación de vídeo del codificador H.264 con puntuación de calidad perceptual
La codificación de video avanzada ( AVC ), también conocida como H.264 o MPEG-4 Parte 10 , es un estándar de compresión de video basado en codificación orientada a bloques y con compensación de movimiento . [2] Es, con diferencia, el formato más utilizado para la grabación, compresión y distribución de contenido de vídeo, utilizado por el 91% de los desarrolladores de la industria del vídeo en septiembre de 2019 [actualizar]. [3] [4] Admite una resolución máxima de 8K UHD . [5] [6]
La intención del proyecto H.264/AVC era crear un estándar capaz de proporcionar buena calidad de vídeo a velocidades de bits sustancialmente más bajas que los estándares anteriores (es decir, la mitad o menos de la velocidad de bits de MPEG-2 , H.263 o MPEG- 4 Parte 2 ), sin aumentar tanto la complejidad del diseño que su implementación sería poco práctica o excesivamente costosa. Esto se logró con características tales como una transformada de coseno discreta entera de complejidad reducida (DCT entera), [7] segmentación de tamaño de bloque variable y predicción entre imágenes de múltiples imágenes . Un objetivo adicional era proporcionar suficiente flexibilidad para permitir que el estándar se aplicara a una amplia variedad de aplicaciones en una amplia variedad de redes y sistemas, incluidas velocidades de bits altas y bajas, video de alta y baja resolución, transmisión , almacenamiento de DVD , RTP / Redes de paquetes IP y sistemas de telefonía multimedia ITU-T . El estándar H.264 puede verse como una "familia de estándares" compuesta por varios perfiles diferentes, aunque su "perfil alto" es, con diferencia, el formato más utilizado. Un decodificador específico decodifica al menos uno, pero no necesariamente todos los perfiles. El estándar describe el formato de los datos codificados y cómo se decodifican los datos, pero no especifica algoritmos para codificar vídeo; esto se deja abierto para que los diseñadores de codificadores puedan seleccionarlo por sí mismos, y se ha desarrollado una amplia variedad de esquemas de codificación. desarrollado. H.264 se utiliza normalmente para la compresión con pérdida , aunque también es posible crear regiones verdaderamente codificadas sin pérdida dentro de imágenes codificadas con pérdida o para admitir casos de uso poco comunes en los que toda la codificación no tiene pérdida.
H.264 fue estandarizado por el Grupo de Expertos en Codificación de Vídeo (VCEG) del UIT-T de la Comisión de Estudio 16 junto con el Grupo de Expertos en Imágenes en Movimiento (MPEG) ISO/IEC JTC 1 . El esfuerzo de asociación del proyecto se conoce como Equipo Conjunto de Video (JVT). El estándar ITU-T H.264 y el estándar ISO/IEC MPEG-4 AVC (formalmente, ISO/IEC 14496-10 – MPEG-4 Parte 10, Codificación de vídeo avanzada) se mantienen conjuntamente para que tengan contenido técnico idéntico. El trabajo de redacción final de la primera versión de la norma se completó en mayo de 2003, y en ediciones posteriores se han agregado varias extensiones de sus capacidades. La codificación de vídeo de alta eficiencia (HEVC), también conocida como H.265 y MPEG-H Parte 2, es la sucesora de H.264/MPEG-4 AVC desarrollada por las mismas organizaciones, aunque los estándares anteriores todavía son de uso común.
H.264 está restringido por patentes propiedad de varias partes. Una licencia que cubre la mayoría (pero no todas [ cita necesaria ] ) de las patentes esenciales para H.264 es administrada por un grupo de patentes anteriormente administrado por MPEG LA . Via Licensing Corp adquirió MPEG LA en abril de 2023 y formó una nueva empresa de administración de consorcios de patentes llamada Via Licensing Alliance . [8] El uso comercial de tecnologías patentadas H.264 requiere el pago de regalías a Via y otros propietarios de patentes. MPEG LA ha permitido el uso gratuito de tecnologías H.264 para la transmisión de vídeo por Internet de forma gratuita para los usuarios finales, y Cisco pagó regalías a MPEG LA en nombre de los usuarios de binarios por su codificador H.264 de código abierto openH264 .
Nombrar
El nombre H.264 sigue la convención de nomenclatura ITU-T , donde las Recomendaciones reciben una letra correspondiente a su serie y un número de recomendación dentro de la serie. H.264 forma parte de las "Recomendaciones de la serie H: sistemas audiovisuales y multimedia". H.264 se clasifica además en "H.200-H.499: Infraestructura de servicios audiovisuales" y "H.260-H.279: Codificación de vídeo en movimiento". [9] El nombre MPEG-4 AVC se relaciona con la convención de nomenclatura en ISO / IEC MPEG , donde el estándar es la parte 10 de ISO/IEC 14496, que es el conjunto de estándares conocido como MPEG-4. El estándar fue desarrollado conjuntamente en asociación entre VCEG y MPEG, después de un trabajo de desarrollo anterior en el UIT-T como un proyecto VCEG llamado H.26L. Por lo tanto, es común referirse al estándar con nombres como H.264/AVC, AVC/H.264, H.264/MPEG-4 AVC o MPEG-4/H.264 AVC, para enfatizar la herencia común. Ocasionalmente, también se lo conoce como "el códec JVT", en referencia a la organización Joint Video Team (JVT) que lo desarrolló. (Esta asociación y denominación múltiple no son infrecuentes. Por ejemplo, el estándar de compresión de vídeo conocido como MPEG-2 también surgió de la asociación entre MPEG y el ITU-T, donde la comunidad del ITU-T conoce el vídeo MPEG-2 como H .262 [10] ) Algunos programas de software (como el reproductor multimedia VLC ) identifican internamente este estándar como AVC1.
Historia
Historia general
A principios de 1998, el Grupo de Expertos en Codificación de Vídeo (VCEG – ITU-T SG16 Q.6) publicó una convocatoria de propuestas sobre un proyecto llamado H.26L, con el objetivo de duplicar la eficiencia de codificación (lo que significa reducir a la mitad la velocidad de bits necesaria para un nivel determinado de fidelidad) en comparación con cualquier otro estándar de codificación de vídeo existente para una amplia variedad de aplicaciones. VCEG estuvo presidido por Gary Sullivan ( Microsoft , anteriormente PictureTel , EE. UU.). El primer borrador de esa nueva norma se adoptó en agosto de 1999. En 2000, Thomas Wiegand ( Instituto Heinrich Hertz , Alemania) se convirtió en copresidente del VCEG.
En diciembre de 2001, VCEG y el Grupo de Expertos en Imágenes en Movimiento ( MPEG – ISO/IEC JTC 1/SC 29 /WG 11) formaron un Equipo Conjunto de Vídeo (JVT), con el objetivo de finalizar el estándar de codificación de vídeo. [11] La aprobación formal de la especificación se produjo en marzo de 2003. La JVT estaba (está) presidida por Gary Sullivan , Thomas Wiegand y Ajay Luthra ( Motorola , EE. UU.: más tarde Arris , EE. UU.). En julio de 2004, se finalizó el proyecto Fidelity Range Extensions (FRExt). Desde enero de 2005 hasta noviembre de 2007, JVT estuvo trabajando en una extensión de H.264/AVC hacia la escalabilidad mediante un Anexo (G) llamado Scalable Video Coding (SVC). El equipo directivo de JVT fue ampliado por Jens-Rainer Ohm ( Universidad RWTH de Aquisgrán , Alemania). Desde julio de 2006 hasta noviembre de 2009, JVT trabajó en Multiview Video Coding (MVC), una extensión de H.264/AVC hacia la televisión 3D y la televisión de punto de vista libre de rango limitado . Ese trabajo incluyó el desarrollo de dos nuevos perfiles del estándar: el Multiview High Profile y el Stereo High Profile.
A lo largo del desarrollo del estándar, se han desarrollado mensajes adicionales para contener información de mejora suplementaria (SEI). Los mensajes SEI pueden contener varios tipos de datos que indican el momento de las imágenes de vídeo o describen diversas propiedades del vídeo codificado o cómo se puede utilizar o mejorar. También se definen mensajes SEI que pueden contener datos arbitrarios definidos por el usuario. Los mensajes SEI no afectan el proceso de decodificación principal, pero pueden indicar cómo se recomienda posprocesar o mostrar el video. Algunas otras propiedades de alto nivel del contenido de vídeo se transmiten en la información de usabilidad del vídeo (VUI), como la indicación del espacio de color para la interpretación del contenido de vídeo. A medida que se han desarrollado nuevos espacios de color, como para video de alto rango dinámico y amplia gama de colores , se han agregado identificadores VUI adicionales para indicarlos.
Ampliaciones de gama Fidelity y perfiles profesionales
La estandarización de la primera versión de H.264/AVC se completó en mayo de 2003. En el primer proyecto para ampliar el estándar original, JVT desarrolló lo que se denominó Fidelity Range Extensions (FRExt). Estas extensiones permitieron una codificación de video de mayor calidad al admitir una mayor precisión de profundidad de bits de muestra e información de color de mayor resolución, incluidas las estructuras de muestreo conocidas como Y′C B C R 4:2:2 (también conocido como YUV 4:2:2 ) y 4: 4:4. También se incluyeron varias otras características en el proyecto FRExt, como agregar una transformada de coseno discreta entera de 8×8 (DCT entera) con conmutación adaptativa entre las transformadas de 4×4 y 8×8, matrices de ponderación de cuantificación basadas en la percepción especificadas por codificador, codificación eficiente entre imágenes sin pérdidas y compatibilidad con espacios de color adicionales. El trabajo de diseño del proyecto FRExt se completó en julio de 2004 y el trabajo de redacción se completó en septiembre de 2004.
Luego se desarrollaron otros cinco perfiles nuevos (consulte la versión 7 a continuación) destinados principalmente a aplicaciones profesionales, agregando soporte de espacio de color de gama extendida, definiendo indicadores de relación de aspecto adicionales, definiendo dos tipos adicionales de "información de mejora suplementaria" (sugerencia posterior al filtro y tono mapeo) y desaprobando uno de los perfiles FRExt anteriores (el perfil Alto 4:4:4) que la industria retroalimenta [ ¿ por quién? ] indicado debería haber sido diseñado de manera diferente.
Codificación de vídeo escalable
La siguiente característica importante agregada al estándar fue la codificación de video escalable (SVC). Especificado en el Anexo G de H.264/AVC, SVC permite la construcción de flujos de bits que contienen capas de subflujos de bits que también cumplen con el estándar, incluido uno de esos flujos de bits conocido como "capa base" que puede ser decodificado por un código H. 264/AVC códec que no admite SVC. Para la escalabilidad temporal del flujo de bits (es decir, la presencia de un subflujo de bits con una velocidad de muestreo temporal más pequeña que el flujo de bits principal), las unidades de acceso completas se eliminan del flujo de bits al derivar el subflujo de bits. En este caso, la sintaxis de alto nivel y las imágenes de referencia entre predicciones en el flujo de bits se construyen en consecuencia. Por otro lado, para la escalabilidad espacial y de calidad del flujo de bits (es decir, la presencia de un subflujo de bits con menor resolución/calidad espacial que el flujo de bits principal), la NAL ( capa de abstracción de red ) se elimina del flujo de bits al derivar el subflujo de bits. . En este caso, la predicción entre capas (es decir, la predicción de la señal de mayor resolución/calidad espacial a partir de los datos de la señal de menor resolución/calidad espacial) se usa típicamente para una codificación eficiente. Las extensiones de Scalable Video Coding se completaron en noviembre de 2007.
Codificación de vídeo multivista
La siguiente característica importante agregada al estándar fue la codificación de video multivista (MVC). MVC, especificado en el anexo H de H.264/AVC, permite la construcción de flujos de bits que representan más de una vista de una escena de vídeo. Un ejemplo importante de esta funcionalidad es la codificación de vídeo 3D estereoscópico . Se desarrollaron dos perfiles en el trabajo de MVC: el perfil Multiview High admite un número arbitrario de vistas y el perfil Stereo High está diseñado específicamente para video estereoscópico de dos vistas. Las extensiones de Multiview Video Coding se completaron en noviembre de 2009.
Codificación estereoscópica 3D-AVC y MFC
Posteriormente se desarrollaron extensiones adicionales que incluían codificación de video 3D con codificación conjunta de mapas de profundidad y textura (denominada 3D-AVC), codificación estereoscópica compatible con cuadros de resolución múltiple (MFC) y 3D-MFC, varias combinaciones adicionales de funciones y cuadros más altos. tamaños y velocidades de fotogramas.
Versiones
Las versiones del estándar H.264/AVC incluyen las siguientes revisiones completas, correcciones y enmiendas (las fechas son fechas de aprobación final en ITU-T, mientras que las fechas de aprobación finales del "Estándar Internacional" en ISO/IEC son algo diferentes y ligeramente posteriores en la mayoría de los casos). casos). Cada versión representa cambios relativos a la siguiente versión inferior que está integrada en el texto.
Versión 1 (Edición 1): (30 de mayo de 2003) Primera versión aprobada de H.264/AVC que contiene perfiles básico, principal y extendido. [12]
Versión 2 (Edición 1.1): (7 de mayo de 2004) Corrigendum que contiene varias correcciones menores. [13]
Versión 3 (Edición 2): (1 de marzo de 2005) Adición importante que contiene la primera enmienda, que establece las Extensiones de rango de fidelidad (FRExt). Esta versión agregó los perfiles Alto, Alto 10, Alto 4:2:2 y Alto 4:4:4. [14] Después de unos años, el perfil alto se convirtió en el perfil más utilizado de la norma.
Versión 4 (Edición 2.1): (13 de septiembre de 2005) Corrección que contiene varias correcciones menores y agrega tres indicadores de relación de aspecto. [15]
Versión 5 (Edición 2.2): (13 de junio de 2006) Enmienda que consiste en la eliminación del perfil Alto 4:4:4 anterior (procesado como corrección de errores en ISO/IEC). [dieciséis]
Versión 6 (Edición 2.2): (13 de junio de 2006) Enmienda que consiste en extensiones menores como soporte de espacio de color de gama extendida (incluido con los indicadores de relación de aspecto mencionados anteriormente en ISO/IEC). [dieciséis]
Versión 7 (Edición 2.3): (6 de abril de 2007) Enmienda que contiene la adición del perfil predictivo Alto 4:4:4 y cuatro perfiles solo intra (Alto 10 Intra, Alto 4:2:2 Intra, Alto 4:4 :4 Intra y CAVLC 4:4:4 Intra). [17]
Versión 8 (Edición 3): (22 de noviembre de 2007) Adición importante a H.264/AVC que contiene la enmienda para la codificación de video escalable (SVC) que contiene los perfiles Scalable Baseline, Scalable High e Scalable High Intra. [18]
Versión 9 (Edición 3.1): (13 de enero de 2009) Corrección que contiene correcciones menores. [19]
Versión 10 (Edición 4): (16 de marzo de 2009) Enmienda que contiene la definición de un nuevo perfil (el perfil de línea base restringida) con solo el subconjunto común de capacidades admitidas en varios perfiles previamente especificados. [20]
Versión 11 (Edición 4): (16 de marzo de 2009) Adición importante a H.264/AVC que contiene la enmienda para la extensión Multiview Video Coding (MVC), incluido el perfil Multiview High. [20]
Versión 12 (Edición 5): (9 de marzo de 2010) Enmienda que contiene la definición de un nuevo perfil MVC (el perfil estéreo alto) para codificación de video de dos vistas con soporte de herramientas de codificación entrelazada y que especifica un mensaje adicional de información de mejora suplementaria (SEI) denominado mensaje SEI de disposición de embalaje del marco. [21]
Versión 13 (Edición 5): (9 de marzo de 2010) Corrección que contiene correcciones menores. [21]
Versión 14 (Edición 6): (29 de junio de 2011) Enmienda que especifica un nuevo nivel (Nivel 5.2) que admite velocidades de procesamiento más altas en términos de macrobloques máximos por segundo y un nuevo perfil (el perfil Progresivo Alto) que admite solo las herramientas de codificación de cuadros. del perfil Alto previamente especificado. [22]
Versión 15 (Edición 6): (29 de junio de 2011) Corrección que contiene correcciones menores. [22]
Versión 16 (Edición 7): (13 de enero de 2012) Enmienda que contiene la definición de tres nuevos perfiles destinados principalmente a aplicaciones de comunicación en tiempo real: los perfiles Constrained High, Scalable Restringed Baseline y Scalable Constrained High. [23]
Versión 17 (Edición 8): (13 de abril de 2013) Enmienda con indicadores de mensajes SEI adicionales. [24]
Versión 18 (Edición 8): (13 de abril de 2013) Enmienda para especificar la codificación de datos de mapas de profundidad para video estereoscópico 3D, incluido un perfil Multiview Depth High. [24]
Versión 19 (Edición 8): (13 de abril de 2013) Corrigendum para corregir un error en el proceso de extracción de sub-bitstream para video multivista. [24]
Versión 21 (Edición 9): (13 de febrero de 2014) Enmienda para especificar el perfil alto de profundidad de vista múltiple mejorada. [25]
Versión 22 (Edición 9): (13 de febrero de 2014) Enmienda para especificar la mejora compatible con cuadros de resolución múltiple (MFC) para video estereoscópico 3D, el perfil alto MFC y correcciones menores. [25]
Versión 23 (Edición 10): (13 de febrero de 2016) Enmienda para especificar el video estereoscópico MFC con mapas de profundidad, el perfil MFC Depth High, el mensaje SEI de volumen de color de visualización de masterización e identificadores de puntos de código VUI relacionados con el color adicionales. [26]
Versión 24 (Edición 11): (14 de octubre de 2016) Enmienda para especificar niveles adicionales de capacidad de decodificador que admitan tamaños de imagen más grandes (Niveles 6, 6.1 y 6.2), el mensaje SEI de metadatos verdes, el mensaje SEI de información de profundidad alternativa y mensajes adicionales Identificadores de puntos de código VUI relacionados con el color. [27]
Versión 25 (Edición 12): (13 de abril de 2017) Enmienda para especificar el perfil Progressive High 10, log-gamma híbrido (HLG) y puntos de código VUI y mensajes SEI adicionales relacionados con el color. [28]
Versión 26 (Edición 13): (13 de junio de 2019) Enmienda para especificar mensajes SEI adicionales para el entorno de visualización ambiental, información del nivel de luz del contenido, volumen de color del contenido, proyección equirrectangular, proyección de mapa de cubos, rotación de esfera, empaquetamiento regional, ventana gráfica omnidireccional, Manifiesto SEI y prefijo SEI. [29]
Versión 27 (Edición 14): (22 de agosto de 2021) Enmienda para especificar mensajes SEI adicionales para regiones anotadas e información de intervalos de obturación, y diversas correcciones y aclaraciones menores. [30]
Titulares de patentes
Las siguientes organizaciones poseen una o más patentes en el grupo de patentes H.264/AVC de MPEG LA .
Aplicaciones
El formato de vídeo H.264 tiene una gama de aplicaciones muy amplia que cubre todas las formas de vídeo digital comprimido, desde aplicaciones de transmisión por Internet de baja velocidad de bits hasta transmisiones de HDTV y aplicaciones de cine digital con codificación casi sin pérdidas. Con el uso de H.264, se reportan ahorros de velocidad de bits del 50% o más en comparación con MPEG-2 Parte 2 . Por ejemplo, se ha informado que H.264 ofrece la misma calidad de televisión digital por satélite que las implementaciones actuales de MPEG-2 con menos de la mitad de la tasa de bits; las implementaciones actuales de MPEG-2 funcionan a alrededor de 3,5 Mbit/s y H.264 a sólo 1,5. Mbit/s. [33] Sony afirma que el modo de grabación AVC de 9 Mbit/s es equivalente a la calidad de imagen del formato HDV , que utiliza aproximadamente 18-25 Mbit/s. [34]
Para garantizar la compatibilidad y la adopción sin problemas de H.264/AVC, muchos organismos de estándares han modificado o agregado sus estándares relacionados con video para que los usuarios de estos estándares puedan emplear H.264/AVC. Tanto el formato Blu-ray Disc como el formato HD DVD , ahora descontinuado, incluyen H.264/AVC High Profile como uno de los tres formatos de compresión de video obligatorios. El proyecto Digital Video Broadcast ( DVB ) aprobó el uso de H.264/AVC para transmisiones de televisión a finales de 2004.
El organismo de estándares del Comité de Sistemas de Televisión Avanzado (ATSC) en los Estados Unidos aprobó el uso de H.264/AVC para transmisiones de televisión en julio de 2008, aunque el estándar aún no se utiliza para transmisiones ATSC fijas dentro de los Estados Unidos. [35] [36] También ha sido aprobado para su uso con el estándar ATSC-M/H (móvil/portátil) más reciente, utilizando las partes AVC y SVC de H.264. [37]
Los mercados de CCTV (Circuito Cerrado de TV) y Videovigilancia han incluido la tecnología en muchos productos.
Muchas DSLR comunes utilizan vídeo H.264 empaquetado en contenedores QuickTime MOV como formato de grabación nativo.
Formatos derivados
AVCHD es un formato de grabación de alta definición diseñado por Sony y Panasonic que utiliza H.264 (conforme a H.264 y al mismo tiempo agrega características y restricciones adicionales específicas de la aplicación).
XAVC es un formato de grabación diseñado por Sony que utiliza el nivel 5.2 de H.264/MPEG-4 AVC, que es el nivel más alto admitido por ese estándar de vídeo. [38] [39] XAVC puede admitir resolución 4K (4096 × 2160 y 3840 × 2160) a hasta 60 fotogramas por segundo (fps). [38] [39] Sony ha anunciado que las cámaras compatibles con XAVC incluyen dos cámaras CineAlta : la Sony PMW-F55 y la Sony PMW-F5. [40] La Sony PMW-F55 puede grabar XAVC con resolución 4K a 30 fps a 300 Mbit/s y resolución 2K a 30 fps a 100 Mbit/s. [41] XAVC puede grabar resolución 4K a 60 fps con muestreo cromático 4:2:2 a 600 Mbit/s. [42] [43]
Diseño
Características
Diagrama de bloques de H.264
H.264/AVC/MPEG-4 Parte 10 contiene una serie de características nuevas que le permiten comprimir video de manera mucho más eficiente que los estándares anteriores y brindar más flexibilidad para su aplicación en una amplia variedad de entornos de red. En particular, algunas de estas características clave incluyen:
Predicción entre imágenes de varias imágenes que incluye las siguientes características:
Usar imágenes previamente codificadas como referencias de una manera mucho más flexible que en estándares anteriores, permitiendo usar hasta 16 marcos de referencia (o 32 campos de referencia, en el caso de codificación entrelazada) en algunos casos. En los perfiles que admiten fotogramas que no son IDR , la mayoría de los niveles especifican que debe haber suficiente almacenamiento en búfer disponible para permitir al menos 4 o 5 fotogramas de referencia a la resolución máxima. Esto contrasta con los estándares anteriores, donde el límite normalmente era uno; o, en el caso de las " fotografías B " convencionales (fotogramas B), dos.
Compensación de movimiento de tamaño de bloque variable (VBSMC) con tamaños de bloque de hasta 16×16 y tan pequeños como 4×4, lo que permite una segmentación precisa de regiones en movimiento. Los tamaños de bloques de predicción de luma admitidos incluyen 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 y 4×4, muchos de los cuales se pueden usar juntos en un solo macrobloque. Los tamaños de los bloques de predicción de croma son correspondientemente más pequeños cuando se utiliza el submuestreo de croma .
La capacidad de utilizar múltiples vectores de movimiento por macrobloque (uno o dos por partición) con un máximo de 32 en el caso de un macrobloque B construido con 16 particiones de 4×4. Los vectores de movimiento para cada región de partición de 8×8 o mayor pueden apuntar a diferentes imágenes de referencia.
La capacidad de utilizar cualquier tipo de macrobloque en fotogramas B , incluidos los macrobloques I, da como resultado una codificación mucho más eficiente cuando se utilizan fotogramas B. Esta característica quedó notablemente excluida de MPEG-4 ASP .
Filtrado de seis toques para derivar predicciones de muestras de luma de media película, para una compensación de movimiento de subpíxeles más nítida. El movimiento de un cuarto de píxel se deriva de la interpolación lineal de los valores de medio píxel para ahorrar potencia de procesamiento.
Precisión de un cuarto de píxel para compensación de movimiento, lo que permite una descripción precisa de los desplazamientos de áreas en movimiento. Para el croma, la resolución generalmente se reduce a la mitad tanto vertical como horizontalmente (consulte 4:2:0 ); por lo tanto, la compensación de movimiento del croma utiliza unidades de cuadrícula de píxeles de croma de un octavo.
Predicción ponderada, que permite que un codificador especifique el uso de una escala y un desplazamiento al realizar la compensación de movimiento y proporciona un beneficio significativo en el rendimiento en casos especiales, como transiciones de fundido a negro, fundido de aparición y fundido cruzado. Esto incluye predicción ponderada implícita para fotogramas B y predicción ponderada explícita para fotogramas P.
Predicción espacial de los bordes de los bloques vecinos para codificación "intra" , en lugar de la predicción exclusiva "DC" que se encuentra en MPEG-2 Parte 2 y la predicción del coeficiente de transformación que se encuentra en H.263v2 y MPEG-4 Parte 2. Esto incluye luma tamaños de bloques de predicción de 16 × 16, 8 × 8 y 4 × 4 (de los cuales solo se puede usar un tipo dentro de cada macrobloque ).
Transformada de coseno discreta entera (DCT entera), [6] [44] [45] un tipo de transformada de coseno discreta (DCT) [44] donde la transformada es una aproximación entera de la DCT estándar. [46] Tiene tamaños de bloque seleccionables [7] y cálculo de números enteros de coincidencia exacta para reducir la complejidad, que incluye:
Una transformación de bloque espacial 4×4 de enteros de coincidencia exacta, que permite la colocación precisa de señales residuales con poco del " timbre " que a menudo se encuentra en diseños de códecs anteriores. Es similar al estándar DCT utilizado en estándares anteriores, pero utiliza un tamaño de bloque más pequeño y un procesamiento de enteros simple. A diferencia de las fórmulas basadas en cosenos y las tolerancias expresadas en estándares anteriores (como H.261 y MPEG-2), el procesamiento de números enteros proporciona un resultado decodificado exactamente especificado.
Una transformación de bloque espacial de 8×8 de números enteros de coincidencia exacta, que permite comprimir regiones altamente correlacionadas de manera más eficiente que con la transformación de 4×4. Este diseño se basa en el DCT estándar, pero simplificado y diseñado para proporcionar una decodificación exactamente especificada.
Selección de codificador adaptativo entre los tamaños de bloque de transformación de 4×4 y 8×8 para la operación de transformación de enteros.
Una transformada secundaria de Hadamard realizada en coeficientes "DC" de la transformación espacial primaria aplicada a coeficientes cromáticos DC (y también luma en un caso especial) para obtener aún más compresión en regiones suaves.
Un modo de representación de "macrobloque PCM" sin pérdidas en el que las muestras de datos de vídeo se representan directamente, [47] permitiendo una representación perfecta de regiones específicas y permitiendo poner un límite estricto a la cantidad de datos codificados para cada macrobloque.
Un modo mejorado de representación de macrobloques sin pérdidas que permite una representación perfecta de regiones específicas mientras que normalmente utiliza sustancialmente menos bits que el modo PCM.
Funciones flexibles de codificación de video de escaneo entrelazado , que incluyen:
Codificación de campo de cuadro adaptativo de macrobloques (MBAFF), que utiliza una estructura de par de macrobloques para imágenes codificadas como cuadros, lo que permite macrobloques de 16 × 16 en modo de campo (en comparación con MPEG-2, donde el procesamiento en modo de campo en una imagen codificada como un cuadro da como resultado el procesamiento de medios macrobloques de 16×8).
Codificación de campo de cuadro adaptable a la imagen (PAFF o PicAFF) que permite una mezcla seleccionada libremente de imágenes codificadas como cuadros completos donde ambos campos se combinan para la codificación o como campos individuales individuales.
Un diseño de cuantificación que incluye:
Control de tamaño de paso logarítmico para una gestión más sencilla de la velocidad de bits mediante codificadores y escalado de cuantificación inversa simplificado
Matrices de escala de cuantificación personalizadas en frecuencia seleccionadas por el codificador para una optimización de la cuantificación basada en la percepción
Un filtro de desbloqueo en bucle que ayuda a prevenir los artefactos de bloqueo comunes a otras técnicas de compresión de imágenes basadas en DCT, lo que resulta en una mejor apariencia visual y eficiencia de compresión.
Codificación aritmética binaria adaptativa al contexto (CABAC), un algoritmo para comprimir sin pérdidas elementos de sintaxis en la transmisión de video conociendo las probabilidades de los elementos de sintaxis en un contexto determinado. CABAC comprime datos de manera más eficiente que CAVLC, pero requiere considerablemente más procesamiento para decodificarlos.
Codificación de longitud variable adaptativa al contexto (CAVLC), que es una alternativa de menor complejidad a CABAC para la codificación de valores de coeficientes de transformación cuantificados. Aunque es de menor complejidad que CABAC, CAVLC es más elaborado y más eficiente que los métodos típicamente utilizados para codificar coeficientes en otros diseños anteriores.
Funciones de resiliencia ante pérdidas que incluyen:
Una definición de capa de abstracción de red (NAL) que permite utilizar la misma sintaxis de vídeo en muchos entornos de red. Un concepto de diseño muy fundamental de H.264 es generar paquetes autónomos para eliminar la duplicación de encabezados como en el Código de extensión de encabezado (HEC) de MPEG-4. [48] Esto se logró desacoplando la información relevante para más de una porción del flujo de medios. La combinación de los parámetros de nivel superior se denomina conjunto de parámetros. [48] La especificación H.264 incluye dos tipos de conjuntos de parámetros: Conjunto de parámetros de secuencia (SPS) y Conjunto de parámetros de imagen (PPS). Un conjunto de parámetros de secuencia activa permanece sin cambios a lo largo de una secuencia de vídeo codificada, y un conjunto de parámetros de imagen activa permanece sin cambios dentro de una imagen codificada. Las estructuras del conjunto de parámetros de secuencia y de imagen contienen información tal como el tamaño de la imagen, los modos de codificación opcionales empleados y el macrobloque para dividir el mapa de grupo. [48]
Ordenamiento de macrobloques flexible (FMO), también conocido como grupos de cortes, y ordenamiento de cortes arbitrario (ASO), que son técnicas para reestructurar el orden de la representación de las regiones fundamentales ( macrobloques ) en imágenes. FMO y ASO, que normalmente se consideran una característica de robustez contra errores/pérdidas, también se pueden utilizar para otros fines.
Partición de datos (DP), una característica que brinda la capacidad de separar elementos de sintaxis más importantes y menos importantes en diferentes paquetes de datos, lo que permite la aplicación de protección contra errores desiguales (UEP) y otros tipos de mejora de la solidez de errores/pérdidas.
Cortes redundantes (RS), una característica de robustez contra errores/pérdidas que permite a un codificador enviar una representación adicional de una región de imagen (normalmente con menor fidelidad) que se puede utilizar si la representación principal se corrompe o se pierde.
Numeración de cuadros, una característica que permite la creación de "subsecuencias", lo que permite la escalabilidad temporal mediante la inclusión opcional de imágenes adicionales entre otras imágenes, y la detección y ocultación de pérdidas de imágenes completas, que pueden ocurrir debido a pérdidas de paquetes o canales de red. errores.
Cortes de conmutación, llamados cortes SP y SI, que permiten que un codificador dirija a un decodificador para que salte a una secuencia de video en curso para fines tales como conmutación de velocidad de bits de transmisión de video y operación en "modo truco". Cuando un decodificador salta al medio de una transmisión de video usando la función SP/SI, puede obtener una coincidencia exacta con las imágenes decodificadas en esa ubicación en la transmisión de video a pesar de usar imágenes diferentes, o ninguna imagen, como referencia antes de el interruptor.
Un proceso automático simple para evitar la emulación accidental de códigos de inicio , que son secuencias especiales de bits en los datos codificados que permiten el acceso aleatorio al flujo de bits y la recuperación de la alineación de bytes en sistemas que pueden perder la sincronización de bytes.
Información de mejora suplementaria (SEI) e información de usabilidad de vídeo (VUI), que son información adicional que se puede insertar en el flujo de bits para diversos fines, como indicar el espacio de color utilizado en el contenido de vídeo o diversas restricciones que se aplican a la codificación. Los mensajes SEI pueden contener cargas útiles de metadatos arbitrarios definidos por el usuario u otros mensajes con sintaxis y semántica definidas en el estándar.
Imágenes auxiliares, que se pueden utilizar para fines como la composición alfa .
Compatibilidad con muestreo cromático monocromático (4:0:0), 4:2:0, 4:2:2 y 4:4:4 (según el perfil seleccionado).
Soporte de precisión de profundidad de bits de muestra que oscila entre 8 y 14 bits por muestra (según el perfil seleccionado).
La capacidad de codificar planos de color individuales como imágenes distintas con sus propias estructuras de corte, modos de macrobloque, vectores de movimiento, etc., lo que permite diseñar codificadores con una estructura de paralelización simple (compatible solo con los tres perfiles con capacidad 4:4:4). .
Recuento del orden de las imágenes, una característica que sirve para mantener el orden de las imágenes y los valores de las muestras en las imágenes decodificadas aislados de la información de temporización, permitiendo que la información de temporización sea transportada y controlada/cambiada por separado por un sistema sin afectar el contenido de la imagen decodificada.
Estas técnicas, junto con varias otras, ayudan a que H.264 funcione significativamente mejor que cualquier estándar anterior en una amplia variedad de circunstancias en una amplia variedad de entornos de aplicaciones. H.264 a menudo puede funcionar radicalmente mejor que el vídeo MPEG-2, obteniendo normalmente la misma calidad a la mitad de la velocidad de bits o menos, especialmente en contenido de vídeo de alta velocidad de bits y alta resolución. [49]
Al igual que otros estándares de vídeo ISO/IEC MPEG, H.264/AVC tiene una implementación de software de referencia que se puede descargar gratuitamente. [50] Su objetivo principal es dar ejemplos de características H.264/AVC, en lugar de ser una aplicación útil per se . También se han realizado algunos trabajos de diseño de hardware de referencia en el Grupo de expertos en imágenes en movimiento . Los aspectos mencionados anteriormente incluyen funciones en todos los perfiles de H.264. Un perfil para un códec es un conjunto de características de ese códec identificadas para cumplir con un determinado conjunto de especificaciones de las aplicaciones previstas. Esto significa que muchas de las funciones enumeradas no son compatibles con algunos perfiles. En la siguiente sección se analizan varios perfiles de H.264/AVC.
Perfiles
El estándar define varios conjuntos de capacidades, que se denominan perfiles , y se dirigen a clases específicas de aplicaciones. Estos se declaran mediante un código de perfil (profile_idc) y, a veces, un conjunto de restricciones adicionales aplicadas en el codificador. El código de perfil y las restricciones indicadas permiten que un decodificador reconozca los requisitos para decodificar ese flujo de bits específico. (Y en muchos entornos de sistemas, sólo se permite el uso de uno o dos perfiles, por lo que los decodificadores en esos entornos no necesitan preocuparse por reconocer los perfiles utilizados con menos frecuencia). Con diferencia, el perfil más utilizado es el perfil alto.
Los perfiles para aplicaciones de vídeo 2D no escalables incluyen los siguientes:
Perfil de referencia restringido (CBP, 66 con conjunto de restricciones 1)
Principalmente para aplicaciones de bajo costo, este perfil se usa más comúnmente en videoconferencias y aplicaciones móviles. Corresponde al subconjunto de características que son comunes entre los perfiles Baseline, Main y High.
Perfil basal (PA, 66)
Principalmente para aplicaciones de bajo costo que requieren solidez adicional contra la pérdida de datos, este perfil se utiliza en algunas aplicaciones móviles y de videoconferencia. Este perfil incluye todas las funciones admitidas en el perfil de línea base restringido, además de tres funciones adicionales que se pueden utilizar para aumentar la solidez de las pérdidas (o para otros fines, como la composición de secuencias de vídeo multipunto con bajo retardo). La importancia de este perfil se ha desvanecido un poco desde la definición del perfil de línea de base restringido en 2009. Todos los flujos de bits del perfil de línea de base restringido también se consideran flujos de bits de perfil de línea de base, ya que estos dos perfiles comparten el mismo valor de código de identificador de perfil.
Perfil extendido (XP, 88)
Diseñado como perfil de transmisión de video, este perfil tiene una capacidad de compresión relativamente alta y algunos trucos adicionales para mayor solidez ante las pérdidas de datos y el cambio de transmisión del servidor.
Perfil principal (MP, 77)
Este perfil se utiliza para transmisiones de televisión digital de definición estándar que utilizan el formato MPEG-4 tal como se define en el estándar DVB. [51] Sin embargo, no se utiliza para transmisiones de televisión de alta definición, ya que la importancia de este perfil se desvaneció cuando se desarrolló el perfil alto en 2004 para esa aplicación.
Perfil alto (HiP, 100)
El perfil principal para aplicaciones de transmisión y almacenamiento en disco, particularmente para aplicaciones de televisión de alta definición (por ejemplo, este es el perfil adoptado por el formato de almacenamiento de discos Blu-ray y el servicio de transmisión DVB HDTV).
Perfil alto progresivo (PHiP, 100 con conjunto de restricciones 4)
Similar al perfil alto, pero sin compatibilidad con funciones de codificación de campos.
Perfil alto restringido (100 con restricciones establecidas 4 y 5)
Similar al perfil Progresivo Alto, pero sin soporte de cortes B (bipredictivos).
Perfil alto 10 (Hi10P, 110)
Este perfil, que va más allá de las capacidades típicas de los productos de consumo convencionales, se basa en el perfil alto y agrega soporte para hasta 10 bits por muestra de precisión de imagen decodificada.
Perfil alto 4:2:2 (Hi422P, 122)
Este perfil, dirigido principalmente a aplicaciones profesionales que utilizan vídeo entrelazado, se basa en el perfil High 10 y agrega compatibilidad con el formato de muestreo cromático 4:2:2 mientras utiliza hasta 10 bits por muestra de precisión de imagen decodificada.
Perfil predictivo alto 4:4:4 (Hi444PP, 244)
Este perfil se basa en el perfil alto 4:2:2 y admite muestreo cromático de hasta 4:4:4, hasta 14 bits por muestra y, además, admite codificación de región eficiente sin pérdidas y la codificación de cada imagen como tres colores separados. aviones.
Para videocámaras, edición y aplicaciones profesionales, el estándar contiene cuatro perfiles adicionales intra-frame , que se definen como subconjuntos simples de otros perfiles correspondientes. Estos son principalmente para aplicaciones profesionales (por ejemplo, cámara y sistema de edición):
Perfil intra alto 10 (110 con conjunto de restricciones 3)
El perfil High 10 se limita al uso totalmente intra.
Alto perfil intra 4:2:2 (122 con restricción establecida 3)
El perfil alto 4:2:2 se limita al uso exclusivamente intra.
Alto perfil intra 4:4:4 (244 con restricción establecida 3)
El perfil alto 4:4:4 está limitado al uso exclusivamente intra.
CAVLC 4:4:4 Intraperfil (44)
El perfil alto 4:4:4 está restringido al uso totalmente intra y a la codificación de entropía CAVLC (es decir, no admite CABAC).
Como resultado de la extensión Scalable Video Coding (SVC), el estándar contiene cinco perfiles escalables adicionales , que se definen como una combinación de un perfil H.264/AVC para la capa base (identificada por la segunda palabra en el nombre del perfil escalable). ) y herramientas que logran la extensión escalable:
Perfil de referencia escalable (83)
Este perfil, dirigido principalmente a aplicaciones de videoconferencia, móviles y de vigilancia, se basa en el perfil de línea de base restringida al que debe ajustarse la capa base (un subconjunto del flujo de bits). Para las herramientas de escalabilidad, se habilita un subconjunto de las herramientas disponibles.
Perfil de línea base restringido escalable (83 con conjunto de restricciones 5)
Un subconjunto del perfil de referencia escalable destinado principalmente a aplicaciones de comunicación en tiempo real.
Alto perfil escalable (86)
Este perfil, dirigido principalmente a aplicaciones de transmisión y transmisión, se basa en el perfil alto H.264/AVC al que debe ajustarse la capa base.
Perfil alto restringido escalable (86 con conjunto de restricciones 5)
Un subconjunto del Scalable High Profile destinado principalmente a aplicaciones de comunicación en tiempo real.
Perfil intra alto escalable (86 con conjunto de restricciones 3)
Dirigido principalmente a aplicaciones de producción, este perfil es el perfil alto escalable y está restringido al uso totalmente interno.
Como resultado de la extensión Multiview Video Coding (MVC), el estándar contiene dos perfiles multivista :
Este perfil admite dos o más vistas utilizando predicción entre imágenes (temporal) y entre vistas MVC, pero no admite imágenes de campo ni codificación de cuadro-campo adaptable a macrobloques.
La extensión Compatible con marcos de resolución múltiple (MFC) agregó dos perfiles más:
Perfil alto MFC (134)
Un perfil para codificación estereoscópica con mejora de resolución de dos capas.
Perfil alto de profundidad MFC (135)
La extensión 3D-AVC agregó dos perfiles más:
Perfil alto de profundidad de vista múltiple (138)
Este perfil admite la codificación conjunta de mapas de profundidad e información de textura de vídeo para mejorar la compresión del contenido de vídeo 3D.
Perfil alto de profundidad de vista múltiple mejorada (139)
Un perfil mejorado para codificación multivista combinada con información de profundidad.
Soporte de funciones en perfiles particulares
Niveles
Tal como se utiliza el término en el estándar, un " nivel " es un conjunto específico de restricciones que indican un grado de rendimiento del decodificador requerido para un perfil. Por ejemplo, un nivel de soporte dentro de un perfil especifica la resolución de imagen máxima, la velocidad de cuadros y la velocidad de bits que puede usar un decodificador. Un decodificador que se ajuste a un nivel determinado debe poder decodificar todos los flujos de bits codificados para ese nivel y todos los niveles inferiores.
La velocidad de bits máxima para el perfil alto es 1,25 veces la de los perfiles base restringido, base, extendido y principal; 3 veces para Hi10P y 4 veces para Hi422P/Hi444PP.
El número de muestras de luma es 16 × 16 = 256 veces el número de macrobloques (y el número de muestras de luma por segundo es 256 veces el número de macrobloques por segundo).
Almacenamiento en búfer de imágenes decodificadas
Los codificadores H.264/AVC utilizan imágenes previamente codificadas para proporcionar predicciones de los valores de muestras en otras imágenes. Esto permite al codificador tomar decisiones eficientes sobre la mejor manera de codificar una imagen determinada. En el decodificador, dichas imágenes se almacenan en una memoria intermedia de imágenes decodificadas virtual (DPB). La capacidad máxima del DPB, en unidades de tramas (o pares de campos), como se muestra entre paréntesis en la columna derecha de la tabla anterior, se puede calcular de la siguiente manera:
Donde MaxDpbMbs es un valor constante proporcionado en la siguiente tabla como función del número de nivel, y PicWidthInMbs y FrameHeightInMbs son el ancho de la imagen y el alto del fotograma para los datos de vídeo codificados, expresados en unidades de macrobloques (redondeados a valores enteros y teniendo en cuenta el recorte). y emparejamiento de macrobloques cuando corresponda). Esta fórmula se especifica en los apartados A.3.1.h y A.3.2.f de la edición de 2017 de la norma. [28]
Por ejemplo, para una imagen HDTV con 1.920 muestras de ancho (Ancho de imagen en Mbs = 120) y 1.080 muestras de alto (Altura del marco en Mbs = 68), un decodificador de nivel 4 tiene una capacidad máxima de almacenamiento DPB depiso(32768/(120*68))= 4 fotogramas (u 8 campos). Por lo tanto, el valor 4 se muestra entre paréntesis en la tabla anterior en la columna derecha de la fila para el Nivel 4 con el tamaño de marco 1920×1080.
La imagen actual que se está decodificando no se incluye en el cálculo de la plenitud de DPB (a menos que el codificador haya indicado que se almacene para usarla como referencia para decodificar otras imágenes o para tiempos de salida retardados). Por lo tanto, un decodificador necesita tener suficiente memoria para manejar (al menos) una trama más que la capacidad máxima del DPB calculada anteriormente.
Implementaciones
Estadísticas de vídeo de YouTube con códec de vídeo AVC (H.264) y formato de audio Opus
En 2009, el grupo de trabajo HTML5 se dividió entre los partidarios de Ogg Theora , un formato de vídeo gratuito que se cree que no está sujeto a patentes, y H.264, que contiene tecnología patentada. Todavía en julio de 2009, se decía que Google y Apple soportaban H.264, mientras que Mozilla y Opera soportaban Ogg Theora (ahora Google, Mozilla y Opera soportan Theora y WebM con VP8 ). [52] Microsoft, con el lanzamiento de Internet Explorer 9, ha agregado soporte para video HTML 5 codificado usando H.264. En el Simposio Gartner/ITXpo en noviembre de 2010, el director ejecutivo de Microsoft, Steve Ballmer, respondió a la pregunta "¿HTML 5 o Silverlight ?" diciendo "Si quieres hacer algo que sea universal, no hay duda de que el mundo se volverá HTML5". [53] En enero de 2011, Google anunció que retirarían el soporte para H.264 de su navegador Chrome y que admitirían tanto a Theora como a WebM / VP8 para usar solo formatos abiertos. [54]
El 18 de marzo de 2012, Mozilla anunció la compatibilidad con H.264 en Firefox en dispositivos móviles, debido a la prevalencia del video codificado en H.264 y la mayor eficiencia energética del uso de hardware decodificador H.264 dedicado, común en dichos dispositivos. [55] El 20 de febrero de 2013, Mozilla implementó soporte en Firefox para decodificar H.264 en Windows 7 y superior. Esta característica se basa en las bibliotecas de decodificación integradas de Windows. [56] Firefox 35.0, lanzado el 13 de enero de 2015, admite H.264 en OS X 10.6 y superior. [57]
El 30 de octubre de 2013, Rowan Trollope de Cisco Systems anunció que Cisco publicaría tanto los binarios como el código fuente de un códec de video H.264 llamado OpenH264 bajo la licencia BSD simplificada y pagaría todas las regalías por su uso a MPEG LA para cualquier proyecto de software. que utilizan los binarios precompilados de Cisco, lo que hace que los binarios OpenH264 de Cisco sean de uso gratuito. Sin embargo, cualquier proyecto de software que utilice el código fuente de Cisco en lugar de sus binarios sería legalmente responsable de pagar todas las regalías a MPEG LA. Las arquitecturas de CPU de destino incluyen x86 y ARM, y los sistemas operativos de destino incluyen Linux, Windows XP y versiones posteriores, Mac OS X y Android; iOS estuvo notablemente ausente de esta lista, porque no permite que las aplicaciones busquen e instalen módulos binarios de Internet. [58] [59] [60] También el 30 de octubre de 2013, Brendan Eich de Mozilla escribió que usaría los binarios de Cisco en futuras versiones de Firefox para agregar soporte para H.264 a Firefox donde los códecs de plataforma no están disponibles. [61] Cisco publicó el código fuente de OpenH264 el 9 de diciembre de 2013. [62]
Aunque iOS no fue compatible con la versión de software de Cisco de 2013, Apple actualizó su Video Toolbox Framework con iOS 8 (lanzado en septiembre de 2014) para brindar acceso directo a la codificación y decodificación de video H.264/AVC basada en hardware. [59]
Codificadores de software
Hardware
Debido a que la codificación y decodificación H.264 requiere una potencia informática significativa en tipos específicos de operaciones aritméticas, las implementaciones de software que se ejecutan en CPU de uso general suelen ser menos eficientes energéticamente. Sin embargo, la última [ ¿cuándo? ] Las CPU x86 de uso general de cuatro núcleos tienen suficiente potencia de cálculo para realizar codificación SD y HD en tiempo real. La eficiencia de la compresión depende de las implementaciones algorítmicas de vídeo, no de si se utiliza implementación de hardware o software. Por lo tanto, la diferencia entre la implementación basada en hardware y software radica más en la eficiencia energética, la flexibilidad y el costo. Para mejorar la eficiencia energética y reducir el factor de forma del hardware, se puede emplear hardware de propósito especial, ya sea para el proceso completo de codificación o decodificación, o para asistencia de aceleración dentro de un entorno controlado por la CPU.
Se sabe que las soluciones basadas en CPU son mucho más flexibles, particularmente cuando la codificación debe realizarse simultáneamente en múltiples formatos, múltiples velocidades de bits y resoluciones ( vídeo multipantalla ) y posiblemente con características adicionales de soporte de formato de contenedor, funciones avanzadas de publicidad integrada, etc. La solución de software basada en CPU generalmente hace que sea mucho más fácil equilibrar la carga de múltiples sesiones de codificación simultáneas dentro de la misma CPU.
Un codificador hardware H.264 puede ser un ASIC o un FPGA .
Los codificadores ASIC con funcionalidad de codificador H.264 están disponibles en muchas empresas de semiconductores diferentes, pero el diseño central utilizado en el ASIC suele tener licencia de una de las pocas empresas, como Chips&Media , Allegro DVT, On2 (anteriormente Hantro, adquirida por Google), Tecnologías de la imaginación , NGCodec. Algunas empresas tienen ofertas de productos FPGA y ASIC. [70]
Texas Instruments fabrica una línea de núcleos ARM + DSP que realizan codificación DSP H.264 BP 1080p a 30 fps. [71] Esto permite flexibilidad con respecto a los códecs (que se implementan como código DSP altamente optimizado) y al mismo tiempo es más eficiente que el software en una CPU genérica.
Licencia
En los países donde se mantienen las patentes sobre algoritmos de software , se espera que los proveedores y usuarios comerciales de productos que utilizan H.264/AVC paguen regalías por la licencia de patentes por la tecnología patentada que utilizan sus productos. [72] Esto también se aplica al perfil de referencia. [73]
El 26 de agosto de 2010, MPEG LA anunció que no se cobrarán regalías por los vídeos de Internet codificados en H.264 que sean gratuitos para los usuarios finales. [76] Todas las demás regalías siguen vigentes, como las regalías por productos que decodifican y codifican vídeo H.264, así como a los operadores de televisión gratuita y canales de suscripción. [77] Los términos de la licencia se actualizan en bloques de cinco años. [78]
Desde que se completó la primera versión de la norma en mayo de 2003 (Hace 21 años) y el perfil más utilizado (el perfil alto) se completó en junio de 2004 [ cita necesaria ] (hace 20 años), algunas de las patentes relevantes ya han expirado, [75] mientras que otras todavía están vigentes en jurisdicciones de todo el mundo y una de las patentes estadounidenses en el grupo MPEG LA H.264 (otorgada en 2016, prioridad de 2001) dura al menos hasta noviembre de 2030. [79]
En 2005, Qualcomm demandó a Broadcom en el Tribunal de Distrito de Estados Unidos, alegando que Broadcom infringió dos de sus patentes al fabricar productos que cumplían con el estándar de compresión de vídeo H.264. [80] En 2007, el Tribunal de Distrito determinó que las patentes eran inaplicables porque Qualcomm no las había divulgado a la JVT antes del lanzamiento del estándar H.264 en mayo de 2003. [80] En diciembre de 2008, el Tribunal de Justicia de EE.UU. Las apelaciones del Circuito Federal confirmaron la orden del Tribunal de Distrito de que las patentes eran inaplicables, pero se devolvieron al Tribunal de Distrito con instrucciones para limitar el alcance de la inaplicabilidad a los productos compatibles con H.264. [80]
En octubre de 2023, Nokia demandó a HP y Amazon por infracción de patente H.264/H.265 en EE. UU., Reino Unido y otros lugares. [81]
Ver también
VC-1 , estándar diseñado por Microsoft y aprobado como estándar SMPTE en 2006
^ MPEG-4, codificación de vídeo avanzada (Parte 10) (H.264) (borrador completo). Sostenibilidad de los Formatos Digitales. Washington, DC: Biblioteca del Congreso. 5 de diciembre de 2011 . Consultado el 1 de diciembre de 2021 .
^ "H.264: Codificación de vídeo avanzada para servicios audiovisuales genéricos". www.itu.int . Archivado desde el original el 31 de octubre de 2019 . Consultado el 22 de noviembre de 2019 .
^ "Informe para desarrolladores de vídeo 2018" (PDF) . Bitmovin . Septiembre de 2019.
^ "Informe para desarrolladores de vídeo 2019". Bitmovin . Septiembre de 2019.
^ "Entrega de 8K utilizando AVC/H.264". Caja misteriosa . Archivado desde el original el 25 de marzo de 2021 . Consultado el 23 de agosto de 2017 .
^ ab Wang, Hanli; Kwong, S.; Kok, C. (2006). "Algoritmo de predicción eficiente de coeficientes DCT enteros para optimización H.264/AVC". Transacciones IEEE sobre circuitos y sistemas para tecnología de vídeo . 16 (4): 547–552. doi :10.1109/TCSVT.2006.871390. S2CID 2060937.
^ ab Thomson, Gavin; Shah, Athar (2017). "Presentación de HEIF y HEVC" (PDF) . Apple Inc. Consultado el 5 de agosto de 2019 .
^ Ozer, enero (8 de mayo de 2023), Via Heath Hoglund de Los Ángeles habla de MPEG LA/Via Licensing Patent Pool Merger, StreamingMedia.com
^ "Recomendaciones UIT-T". UIT . Consultado el 1 de noviembre de 2022 .
^ "H.262: Tecnología de la información - Codificación genérica de imágenes en movimiento e información de audio asociada: vídeo" . Consultado el 15 de abril de 2007 .
^ "Recomendación UIT-T H.264 (05/2003)". UIT. 30 de mayo de 2003 . Consultado el 18 de abril de 2013 .
^ "Recomendación UIT-T H.264 (05/2003) Cor. 1 (05/2004)". UIT. 7 de mayo de 2004 . Consultado el 18 de abril de 2013 .
^ "Recomendación UIT-T H.264 (03/2005)". UIT. 1 de marzo de 2005 . Consultado el 18 de abril de 2013 .
^ "Recomendación UIT-T H.264 (2005) Cor. 1 (09/2005)". UIT. 13 de septiembre de 2005 . Consultado el 18 de abril de 2013 .
^ ab "Recomendación UIT-T H.264 (2005) Enmienda 1 (06/2006)". UIT. 13 de junio de 2006 . Consultado el 18 de abril de 2013 .
^ "Recomendación UIT-T H.264 (2005) enmienda 2 (04/2007)". UIT. 6 de abril de 2007 . Consultado el 18 de abril de 2013 .
^ "Recomendación UIT-T H.264 (11/2007)". UIT. 22 de noviembre de 2007 . Consultado el 18 de abril de 2013 .
^ "Recomendación UIT-T H.264 (2007) Cor. 1 (01/2009)". UIT. 13 de enero de 2009 . Consultado el 18 de abril de 2013 .
^ ab "Recomendación UIT-T H.264 (03/2009)". UIT. 16 de marzo de 2009 . Consultado el 18 de abril de 2013 .
^ ab "Recomendación UIT-T H.264 (03/2010)". UIT. 9 de marzo de 2010 . Consultado el 18 de abril de 2013 .
^ ab "Recomendación UIT-T H.264 (06/2011)". UIT. 29 de junio de 2011 . Consultado el 18 de abril de 2013 .
^ "Recomendación UIT-T H.264 (01/2012)". UIT. 13 de enero de 2012 . Consultado el 18 de abril de 2013 .
^ abcd "Recomendación UIT-T H.264 (04/2013)". UIT. 12 de junio de 2013 . Consultado el 16 de junio de 2013 .
^ ab "Recomendación UIT-T H.264 (02/2014)". UIT. 28 de noviembre de 2014 . Consultado el 28 de febrero de 2016 .
^ "Recomendación UIT-T H.264 (02/2016)". UIT. 13 de febrero de 2016 . Consultado el 14 de junio de 2017 .
^ "Recomendación UIT-T H.264 (10/2016)". UIT. 14 de octubre de 2016 . Consultado el 14 de junio de 2017 .
^ abc "Recomendación UIT-T H.264 (04/2017)". UIT. 13 de abril de 2017. Consulte las Tablas A-1, A-6 y A-7 para conocer las capacidades tabuladas que dependen del nivel . Consultado el 14 de junio de 2017 .
^ "H.264: Codificación de vídeo avanzada para servicios audiovisuales genéricos - Versión 26 (Edición 13)". www.itu.int . 13 de junio de 2019. Archivado desde el original el 4 de noviembre de 2021 . Consultado el 3 de noviembre de 2021 .
^ "H.264: Codificación de vídeo avanzada para servicios audiovisuales genéricos - Versión 27 (Edición 14)". www.itu.int . 22 de agosto de 2021. Archivado desde el original el 4 de noviembre de 2021 . Consultado el 3 de noviembre de 2021 .
^ ab "AVC/H.264 - Lista de patentes" (PDF) . MPEG LA . Consultado el 22 de diciembre de 2022 .
^ "Licenciantes AVC/H.264". MPEG-LA. Archivado desde el original el 30 de mayo de 2015 . Consultado el 19 de mayo de 2013 .
^ Wenger; et al. (febrero de 2005). "RFC 3984: formato de carga útil RTP para vídeo H.264". Rastreador de datos de Ietf : 2. doi : 10.17487/RFC3984.
^ "¿Qué modo de grabación equivale a la calidad de imagen del formato de vídeo de alta definición (HDV)?". Soporte electrónico de Sony . Archivado desde el original el 9 de noviembre de 2017 . Consultado el 8 de diciembre de 2018 .
^ "Estándar ATSC A/72 Parte 1: Características del sistema de vídeo de AVC en el sistema de televisión digital ATSC" (PDF) . Archivado desde el original (PDF) el 7 de agosto de 2011 . Consultado el 30 de julio de 2011 .
^ "ATSC Estándar A/72 Parte 2: Características del subsistema de transporte de vídeo AVC" (PDF) . Archivado desde el original (PDF) el 7 de agosto de 2011 . Consultado el 30 de julio de 2011 .
^ "Estándar ATSC A/153 Parte 7: Características del sistema de vídeo AVC y SVC" (PDF) . Archivado desde el original (PDF) el 26 de julio de 2011 . Consultado el 30 de julio de 2011 .
^ ab "Sony presenta un nuevo formato de grabación XAVC para acelerar el desarrollo de 4K en los mercados profesionales y de consumo". Sony. 30 de octubre de 2012 . Consultado el 1 de noviembre de 2012 .
^ ab "Sony presenta un nuevo formato de grabación XAVC para acelerar el desarrollo de 4K en los mercados profesionales y de consumo" (PDF) . Sony. 30 de octubre de 2012 . Consultado el 1 de noviembre de 2012 .[ enlace muerto permanente ]
^ Steve Dent (30 de octubre de 2012). "Sony va a la caza del rojo con las videocámaras con sensor PMW-F55 y PMW-F5 pro CineAlta 4K Super 35 mm". Engadget . Consultado el 5 de noviembre de 2012 .
↑ «F55 CineAlta 4K el futuro, antes de lo previsto» (PDF) . Sony. 30 de octubre de 2012. Archivado desde el original (PDF) el 19 de noviembre de 2012 . Consultado el 1 de noviembre de 2012 .
^ Las tarjetas de memoria "ultrarrápidas" SxS PRO+ "transforman la captura de vídeo 4K". Sony. Archivado desde el original el 8 de marzo de 2013 . Consultado el 5 de noviembre de 2012 .
^ "Las tarjetas de memoria ultrarrápidas" SxS PRO+ "transforman la captura de vídeo 4K" (PDF) . Sony. Archivado desde el original (PDF) el 2 de abril de 2015 . Consultado el 5 de noviembre de 2012 .
^ ab Stanković, Radomir S.; Astola, Jaakko T. (2012). "Reminiscencias de los primeros trabajos en DCT: entrevista con KR Rao" (PDF) . Reimpresiones de los primeros días de las ciencias de la información . 60 : 17 . Consultado el 13 de octubre de 2019 .
^ Kwon, pronto-joven; Lee, Joo Kyong; Chung, Ki-dong (2005). "Corrección de medio píxel para transcodificación MPEG-2/H.264". Análisis y Procesamiento de Imágenes – ICIAP 2005 . Apuntes de conferencias sobre informática. vol. 3617. Springer Berlín Heidelberg. págs. 576–583. doi : 10.1007/11553595_71 . ISBN978-3-540-28869-5.
^ Britanak, Vladimir; Sí, Patrick C.; Rao, KR (2010). Transformadas discretas de coseno y seno: propiedades generales, algoritmos rápidos y aproximaciones de números enteros. Elsevier . págs. ix, xiii, 1, 141–304. ISBN9780080464640.
^ "El estándar de codificación de vídeo avanzada H.264/AVC: descripción general e introducción a las extensiones de rango de Fidelity" (PDF) . Consultado el 30 de julio de 2011 .
^ a b C RFC 3984, p.3
^ Apple Inc. (26 de marzo de 1999). "Preguntas frecuentes sobre H.264". Manzana. Archivado desde el original el 7 de marzo de 2010 . Consultado el 17 de mayo de 2010 .
^ Karsten Suehring. "Descarga del software de referencia H.264/AVC JM". Iphome.hhi.de . Consultado el 17 de mayo de 2010 .
^ "TS 101154 - V1.9.1 - Difusión de vídeo digital (DVB); Especificación para el uso de codificación de vídeo y audio en aplicaciones de radiodifusión basadas en el flujo de transporte MPEG-2" (PDF) . Consultado el 17 de mayo de 2010 .
^ "Decodificación del debate sobre el códec de vídeo HTML 5". Ars Técnica . 6 de julio de 2009 . Consultado el 12 de enero de 2011 .
^ "Steve Ballmer, director ejecutivo de Microsoft, entrevistado en el Simposio Gartner/ITxpo Orlando 2010". Vídeo de Gartner. Noviembre de 2010. Archivado desde el original el 30 de octubre de 2021 . Consultado el 12 de enero de 2011 .
^ "Compatibilidad con códec de vídeo HTML en Chrome". 11 de enero de 2011 . Consultado el 12 de enero de 2011 .
^ "Vídeo, dispositivos móviles y la Web abierta". 18 de marzo de 2012 . Consultado el 20 de marzo de 2012 .
^ "WebRTC habilitado, compatibilidad con H.264/MP3 en Win 7 de forma predeterminada, Metro UI para Windows 8 y más: aspectos destacados del desarrollo de Firefox". hacks.mozilla.org . mozilla. 20 de febrero de 2013 . Consultado el 15 de marzo de 2013 .
^ "Firefox - Notas (35.0)". Mozilla .
^ "H.264 de código abierto elimina las barreras a WebRTC". 30 de octubre de 2013. Archivado desde el original el 6 de julio de 2015 . Consultado el 1 de noviembre de 2013 .
^ ab "Preguntas frecuentes sobre el proyecto Cisco OpenH264" . Consultado el 26 de septiembre de 2021 .
^ "Licencia BSD simplificada OpenH264". GitHub . 27 de octubre de 2013 . Consultado el 21 de noviembre de 2013 .
^ "La interoperabilidad de vídeo en la Web recibe un impulso gracias al códec H.264 de Cisco". 30 de octubre de 2013 . Consultado el 1 de noviembre de 2013 .
^ "Soporte de codificación x264 4:0:0 (monocromo)", obtenido el 5 de junio de 2019.
^ "Soporte de codificación x264 4:2:2", obtenido el 5 de junio de 2019.
^ "Soporte de codificación x264 4:4:4", obtenido el 5 de junio de 2019.
^ "Soporte x264 para codificación de 9 y 10 bits", obtenido el 22 de junio de 2011.
^ "x264 reemplaza el perfil alto 4:4:4 sin pérdidas con alto 4:4:4 predictivo", obtenido el 22 de junio de 2011.
^ "Guía de referencia rápida para imágenes integradas del procesador Intel Core de generación". Red de software Intel. 1 de octubre de 2010 . Consultado el 19 de enero de 2011 .
^ "Vídeo de sincronización rápida Intel". www.intel.com. 1 de octubre de 2010 . Consultado el 19 de enero de 2011 .
^ "Diseño-reutilización.com". Diseño-reutilización.com. 1 de enero de 1990 . Consultado el 17 de mayo de 2010 .
^ "Categoría: DM6467 - Wiki de procesadores integrados de Texas Instruments". Procesadores.wiki.ti.com. 12 de julio de 2011. Archivado desde el original el 17 de julio de 2011 . Consultado el 30 de julio de 2011 .
^ "Carpeta informativa" (PDF) . www.mpegla.com .
^ "OMS Video, un proyecto de la iniciativa Open Media Commons de Sun". Archivado desde el original el 11 de mayo de 2010 . Consultado el 26 de agosto de 2008 .
^ "Licenciantes incluidos en la licencia de cartera de patentes AVC/H.264". MPEG LA . Consultado el 18 de junio de 2019 .
^ ab "AVC/H.264 - Lista de patentes". A través de Licensing Alliance . Consultado el 28 de abril de 2024 .
^ "La licencia AVC de MPEG LA no cobrará regalías por vídeos de Internet que sean gratuitos para los usuarios finales durante la vigencia de la licencia" (PDF) . MPEG LA. 26 de agosto de 2010. Archivado desde el original (PDF) el 7 de noviembre de 2013 . Consultado el 26 de agosto de 2010 .
^ Hachman, Mark (26 de agosto de 2010). "MPEG LA elimina las regalías de los vídeos web gratuitos, para siempre". pcmag.com . Consultado el 26 de agosto de 2010 .
^ "Preguntas frecuentes sobre AVC". MPEG LA. 1 de agosto de 2002. Archivado desde el original el 7 de mayo de 2010 . Consultado el 17 de mayo de 2010 .
^ "Patente de Estados Unidos 9.356.620 Baese, et al" . Consultado el 1 de agosto de 2022 .con fecha de prioridad más temprana del 14 de septiembre de 2001 tiene una extensión de plazo de 2,998 días.
^ abc Véase Qualcomm Inc. contra Broadcom Corp., No. 2007-1545, 2008-1162 (Fed. Cir. 1 de diciembre de 2008). Para artículos de prensa popular, consulte signonsandiego.com, "Qualcomm pierde su caso de derechos de patente" y "El caso de patente de Qualcomm va al jurado"; y Bloomberg.com "Broadcom gana el primer juicio en disputa sobre patentes de Qualcomm"
^ "nokia-h264".
Otras lecturas
Wiegand, Thomas; Sullivan, Gary J.; Bjontegaard, Gisle; Luthra, Ajay (julio de 2003). "Descripción general del estándar de codificación de vídeo H.264/AVC" (PDF) . Transacciones IEEE sobre circuitos y sistemas para tecnología de vídeo . 13 (7): 560–576. doi : 10.1109/TCSVT.2003.815165 . Consultado el 31 de enero de 2011 .
Topiwala, Pankaj; Sullivan, Gary J.; Luthra, Ajay (agosto de 2004). Tescher, Andrew G (ed.). "El estándar de codificación de vídeo avanzada H.264/AVC: descripción general e introducción a las extensiones de rango de Fidelity" (PDF) . SPIE Aplicaciones del Procesamiento Digital de Imágenes XXVII . Aplicaciones del Procesamiento Digital de Imágenes XXVII. 5558 : 454. Código bibliográfico : 2004SPIE.5558..454S. doi : 10.1117/12.564457. S2CID 2308860 . Consultado el 31 de enero de 2011 .
Ostermann, J.; Bormans, J.; Lista, P.; Marpe, D.; Narroschke, M.; Pereira, F.; Stockhammer, T.; Wedi, T. (2004). "Codificación de vídeo con H.264/AVC: herramientas, rendimiento y complejidad" (PDF) . Revista de sistemas y circuitos IEEE . 4 (1): 7–28. doi :10.1109/MCAS.2004.1286980. S2CID 11105089. Archivado desde el original (PDF) el 6 de julio de 2017 . Consultado el 31 de enero de 2011 .
Puri, Atul; Chen, Xuemin; Luthra, Ajay (octubre de 2004). "Codificación de vídeo utilizando el estándar de compresión H.264/MPEG-4 AVC" (PDF) . Procesamiento de señales: comunicación de imágenes . 19 (9): 793–849. doi : 10.1016/j.image.2004.06.003 . Consultado el 30 de marzo de 2011 .
Sullivan, Gary J.; Wiegand, Thomas (enero de 2005). "Compresión de vídeo: desde los conceptos hasta el estándar H.264/AVC" (PDF) . Actas del IEEE . 93 (1): 18–31. doi :10.1109/jproc.2004.839617. S2CID 1362034 . Consultado el 31 de enero de 2011 .
Richardson, Iain EG (enero de 2011). "Más información sobre la compresión de vídeo y H.264". VCODEX . Vcodex limitado . Consultado el 31 de enero de 2011 .
enlaces externos
Página de publicación del UIT-T: H.264: Codificación de vídeo avanzada para servicios audiovisuales genéricos
MPEG-4 AVC/H.264 Información Foro de Doom9
H.264/MPEG-4 Parte 10 Tutoriales (Richardson)
"Parte 10: Codificación de vídeo avanzada". Página de publicación ISO: ISO/IEC 14496-10:2010 – Tecnología de la información. Codificación de objetos audiovisuales .
"Software de referencia H.264/AVC JM". Página de inicio de IP . Consultado el 15 de abril de 2007 .
"Sitio de archivo de documentos JVT". Archivado desde el original el 8 de agosto de 2010 . Consultado el 6 de mayo de 2007 .
"Publicaciones". Tomás Wiegand . Consultado el 23 de junio de 2007 .
"Publicaciones". Detlev Marpe . Consultado el 15 de abril de 2007 .
"Cuarta comparación anual de códecs de vídeo H.264". Universidad estatal de Moscú.(de diciembre de 2007)
"Discusión sobre H.264 con respecto a las cámaras IP utilizadas en las industrias de seguridad y vigilancia". 3 de abril de 2009.(con fecha de abril de 2009)