En la codificación de vídeo , un grupo de imágenes , o estructura GOP , especifica el orden en el que se organizan los intra y entre fotogramas . El GOP es una colección de imágenes sucesivas dentro de una secuencia de vídeo codificada. Cada flujo de vídeo codificado consta de GOP sucesivos, a partir de los cuales se generan los fotogramas visibles. Encontrar un nuevo GOP en una secuencia de vídeo comprimido significa que el decodificador no necesita ningún fotograma anterior para decodificar los siguientes y permite una búsqueda rápida a través del vídeo.
Un GOP puede contener los siguientes tipos de imágenes:
Un cuadro I indica el comienzo de un Partido Republicano. Luego siguen varios fotogramas P y B. En diseños más antiguos, la estructura de ordenación y referencia permitida está relativamente restringida. [3]
Los fotogramas I contienen la imagen completa y no requieren ninguna información adicional para reconstruirlos. Normalmente, los codificadores utilizan estructuras GOP que hacen que cada cuadro I sea un "punto de acceso aleatorio limpio", de modo que la decodificación pueda comenzar limpiamente en un cuadro I y cualquier error dentro de la estructura GOP se corrija después de procesar un cuadro I correcto.
En los diseños más nuevos que se encuentran en H.264/MPEG-4 AVC y HEVC , los codificadores tienen mucha más flexibilidad a la hora de hacer referencia a estructuras. Pueden usar las mismas estructuras de referencia que se usaron anteriormente en diseños más antiguos, o pueden usar más imágenes como referencias y pueden usar un orden más flexible del orden de codificación en relación con el orden de visualización. También se les permite utilizar fotogramas B como referencia al codificar otros fotogramas (B o P). Esta flexibilidad adicional puede mejorar la eficiencia de la compresión, pero puede provocar la propagación de errores si algunos datos se pierden o se corrompen. Una estructura popular para usar con los diseños más nuevos es el uso de una jerarquía de marcos B. Los fotogramas B jerárquicos pueden proporcionar una muy buena eficiencia de compresión y también pueden limitar la propagación de errores, ya que la jerarquía puede garantizar que el número de imágenes afectadas por cualquier problema de corrupción de datos esté estrictamente limitado. [4]
Generalmente, cuantos más fotogramas tenga la transmisión de vídeo, más editable será. Sin embargo, tener más fotogramas I aumenta sustancialmente la velocidad de bits necesaria para codificar el vídeo.
La estructura del Partido Republicano suele denominarse mediante dos números, por ejemplo, M =3, N =12 . El primer número indica la distancia entre dos marcos de anclaje (I o P), también conocida como la longitud de un "mini-GOP". [5] El segundo indica la distancia entre dos imágenes completas (I-frames): es el tamaño GOP. [6] En lugar del parámetro M, se puede utilizar el recuento máximo de fotogramas B entre dos fotogramas de anclaje consecutivos; este es el enfoque utilizado por ffmpeg . [7]
Ejemplos:
No es necesario que la estructura del GOP permanezca fija durante la codificación. Variar N para insertar un fotograma I en el cambio de escena es una técnica bien conocida. [8] Las técnicas más nuevas también varían M según la cantidad de movimiento en el video. [9]
Con diseños H.264 y posteriores que permiten estructuras de referencia altamente flexibles, un fotograma B en un GOP puede hacer referencia a un fotograma en un GOP diferente, en particular incluso antes del fotograma I, lo que hace que el fotograma I no sea IDR (no sea un fotograma clave). ). [10] Un GOP que contiene cualquier marco de referencia externa se conoce como "GOP abierto". Lo opuesto es un Partido Republicano autónomo, conocido como "Partido Republicano cerrado". [5] En el orden de codificación, el Partido Republicano puede comenzar con un fotograma B, pero no puede terminar con uno. Open GOP comienza con un marco B y es un poco más eficiente porque comenzar con un marco I significa que se debe agregar un marco P adicional al final (un GOP no puede terminar con un marco B). [11]
bf entero (codificación, vídeo) Establece el número máximo de fotogramas B entre fotogramas que no son B.