Describa brevemente el proceso de codificación de video de HEVC y VVC

Codificación de vídeo H.265/HEVC

El propósito de la codificación de video es comprimir el video original. La idea principal de la compresión es eliminar información redundante desde varias perspectivas principales, como el espacio, el tiempo, la codificación y la visión. Debido a su excelente relación de compresión de datos y calidad de video, H.264 se ha convertido en el estándar de códec más popular en el mercado actual. Si bien H.265 se basa en H.264, al tiempo que garantiza la misma calidad de video, la tasa de bits de la transmisión de video se puede reducir en un 50 %. A medida que el formato de codificación H.265 se vuelve cada vez más popular, el siguiente es el diagrama de flujo del marco de codificación H.265:
inserte la descripción de la imagen aquí
Como se muestra en la figura, un video se descompone gradualmente en bloques de imagen de entrada y luego se somete a tres procesos de codificación. , a saber, codificación predictiva, codificación de transformación y codificación estadística. El proceso general consiste en comprimir primero el cuadro de video a través de la codificación predictiva y luego realizar la codificación de transformación en el residuo de la codificación predictiva, convertir los datos de la imagen de la matriz de dominio espacial a la matriz de coeficiente de transformación de dominio de frecuencia y obtener los coeficientes cuantificados para la subsiguiente codificación de entropía para obtener Para el flujo de código binario, también hay una rama dentro del codificador para la cuantificación y transformación inversas, que se utiliza para la referencia de píxeles posterior para facilitar la siguiente predicción, mientras que la codificación estadística es compresión de video en el dominio de la frecuencia. Estos tres procesos se describen en detalle a continuación.
En los últimos días, encontré una descripción más profesional y detallada en el documento: inserte la descripción de la imagen aquí
defina IV y PV como el valor fuente y el valor predicho del video YUV, (·)/Q es la operación de cuantificación, Q es el factor de cuantificación y DCT/DST está determinado por DT (·) dijo.
Entonces el coeficiente de variación DCT D(1)=[DT (IV(1) − PV(1))/Q], [ ] representa el redondeo.
Los coeficientes cuantificados de los valores de origen después de la transformación y la cuantificación se decodifican inversamente para la reconstrucción del cuadro y se obtiene el coeficiente de reconstrucción RESrt.RT(·) se define para representar el redondeo y la operación por etapas, e IDT(·) representa DCT/DST inversa transformación.
Entonces RESrt=RT(IDT(D(1)/Q^-1).
Después de la transformación inversa, se realiza el filtrado de bucles. Este proceso se puede expresar como IV(1)=filtrado de bucles (PV(1)+RT(IDT (D (1)/Q^-1)), y luego almacene el cuadro en el búfer para la predicción de cuadros posteriores.

1. Codificación predictiva

La esencia del video se compone de una serie de cuadros de video continuos, y existe una gran cantidad de redundancia dentro de un solo cuadro de video y entre múltiples cuadros de video. Desde un punto de vista espacial, la diferencia de valores de píxeles entre píxeles dentro de un solo cuadro de video es muy pequeña. Desde la perspectiva del tiempo, también hay muchos píxeles idénticos entre dos cuadros de video consecutivos. La codificación predictiva es un método de compresión de datos basado en las características estadísticas de la imagen, que utiliza la correlación de imágenes en el tiempo y el espacio, y predice los píxeles que se codifican actualmente a través de los datos de píxeles reconstruidos. La codificación predictiva se puede dividir en intrapredicción e interpredicción:
inserte la descripción de la imagen aquí

1.1 Intrapredicción

La predicción dentro del cuadro significa que los píxeles utilizados para la predicción y los píxeles que se codifican actualmente están ambos en el mismo cuadro de video y, por lo general, en áreas adyacentes. Debido a la fuerte correlación entre los píxeles adyacentes, los valores de los píxeles son generalmente muy cercanos, la probabilidad de mutación es muy pequeña y la diferencia es 0 o un número muy pequeño. Por lo tanto, después de la codificación de predicción intratrama, se transmite la diferencia entre el valor predicho y el valor real, es decir, el valor cercano a 0, que se denomina error de predicción o residual, por lo que se utilizan menos bits para transmitir para lograr el efecto de la compresión.
La codificación predictiva intratrama H.265 toma un bloque como una unidad y utiliza el valor de reconstrucción de un bloque reconstruido adyacente para predecir el bloque que se codifica. El componente de predicción se divide en luminancia y croma, y ​​los bloques de predicción correspondientes son el bloque de predicción de luminancia y el bloque de predicción de croma, respectivamente. Para adaptarse a las características del contenido del video de alta definición y mejorar la precisión de la predicción, H.265 adopta tamaños de bloque de predicción y modos de predicción más abundantes.
El tamaño del bloque de predicción de luminancia H.265 está entre 4 4 ​​y 32 32, y hay 35 modos de predicción para bloques de predicción de todos los tamaños, que se pueden dividir en 3 categorías: modo plano, modo de corriente continua (CC) y modo angular .
1. Modo planar: modo de brillo 0, adecuado para áreas donde los valores de píxeles cambian lentamente, como escenas con cambios graduales de píxeles. Se usa un predictor diferente para cada píxel en el bloque predicho. El valor predicho es igual a: el valor medio de la interpolación lineal del píxel en las direcciones horizontal y vertical.
2. Modo DC: modo de brillo 1, adecuado para grandes áreas planas de la imagen, este modo utiliza el mismo valor de predicción para todos los píxeles en el bloque de predicción. Si el bloque de predicción es un cuadrado, el valor de predicción es igual al valor promedio de los píxeles de referencia de la izquierda y la parte superior; si el bloque de predicción es un rectángulo, el valor de predicción es igual al valor promedio del lado largo.
3. Modo de ángulo: modo de brillo 2 ~ 34, un total de 33 direcciones de predicción, de las cuales el modo 10 es la dirección horizontal y el modo 26 es la dirección vertical. El valor predicho de cada píxel en el modo de ángulo se predice mediante el ángulo de compensación horizontal o vertical a partir del valor de muestra del conjunto de píxeles que se ha reconstruido antes de la dirección de predicción correspondiente.
En vídeo en color, la señal de crominancia y la señal de luminancia en la misma posición tienen características similares, por lo que los modos de predicción del bloque de predicción de crominancia y el bloque de predicción de luminancia también son similares. Hay cinco modos de predicción para el bloque de predicción croma en H.265: modo planar, modo vertical, modo horizontal, modo DC y modo derivado: 1.
Modo planar: modo croma 0, que es lo mismo que el modo luma 0.
2. Modo vertical: modo de croma 1, igual que el modo de luminancia 26.
3. Modo horizontal: Modo Chroma 2, igual que el Modo de brillo 10.
4. Modo DC: modo croma 3, igual que el modo luma 1.
5. Modo de derivación: el modo de croma 4 adopta el mismo modo de predicción que el bloque de predicción de luminancia correspondiente. Si el modo de bloque de predicción de luma correspondiente es uno de 0, 1, 10, 26, reemplácelo con el modo 34.
El diagrama de flujo de la predicción intra-frame es el siguiente, dado que es una descripción breve, no diré mucho sobre los detalles:
inserte la descripción de la imagen aquí

1.2 Predicción Inter

La predicción entre cuadros significa que los píxeles utilizados para la predicción y los píxeles que se codifican actualmente no están en el mismo cuadro de video, pero generalmente son adyacentes o cercanos. En general, el efecto de compresión de la codificación predictiva entre fotogramas es mejor que el de la predicción intrafotograma, principalmente porque la correlación entre fotogramas de vídeo es muy fuerte. Si el objeto en movimiento en el cuadro de video cambia muy lentamente, la diferencia de píxeles entre los cuadros de video también es muy pequeña y la redundancia de tiempo es muy grande.
El método de predicción entre fotogramas para evaluar el movimiento de objetos en movimiento es la estimación de movimiento. Su idea principal es buscar un bloque coincidente en un rango determinado del fotograma de referencia para el bloque de predicción y calcular el desplazamiento relativo entre el bloque coincidente. y el bloque de predicción El desplazamiento relativo es el vector de movimiento. Después de obtener el vector de movimiento, es necesario corregir la predicción, es decir, la compensación de movimiento. Ingrese el vector de movimiento al módulo de compensación de movimiento, "compense" el marco de referencia y luego obtenga el marco predicho del marco codificado actual. La diferencia entre el cuadro predicho y el cuadro actual es el error de predicción entre cuadros.
Si la predicción entre cuadros solo utiliza la imagen del cuadro anterior, se denomina predicción entre cuadros hacia delante o predicción unidireccional. El cuadro predicho también es el cuadro P, y el cuadro P puede hacer referencia al cuadro I o al cuadro P anterior.
Si la predicción entre cuadros no solo usa la imagen del cuadro anterior para predecir el bloque actual, sino que también usa la imagen del siguiente cuadro, entonces es una predicción bidireccional. El cuadro predicho también es el cuadro B, y el cuadro B puede hacer referencia al cuadro I anterior o al cuadro P y al cuadro P posterior.
Dado que el cuadro P debe hacer referencia al cuadro I o cuadro P anterior, y el cuadro B debe hacer referencia al cuadro I o cuadro P anterior y al cuadro P posterior, si en una transmisión de video, el cuadro B viene primero, y el cuadro I y el cuadro P dependientes aún no han llegado, por lo que el cuadro B no se puede decodificar de inmediato, entonces, ¿cómo se debe garantizar el orden de reproducción? De hecho, durante la codificación de video, se generan PTS y DTS. Por lo general, después de que el codificador genera un cuadro I, salta varios cuadros hacia atrás, usa el cuadro I anterior como cuadro de referencia para codificar el cuadro P, y el cuadro entre el cuadro I y el cuadro P se codifica como un cuadro B. La secuencia de cuadros de video para la transmisión se ha compilado de acuerdo con la secuencia de dependencia del cuadro I, el cuadro P y el cuadro B durante la codificación, y se puede decodificar directamente después de recibir los datos. Por lo tanto, es imposible recibir tramas B primero y luego recibir tramas I y tramas P dependientes.
PTS: Marca de tiempo de presentación, que muestra una marca de tiempo y le dice al jugador cuándo mostrar este cuadro.
DTS: Marca de tiempo de decodificación, marca de tiempo de decodificación, le dice al jugador cuándo decodificar este cuadro.
El diagrama de flujo de la predicción entre tramas es el siguiente:
inserte la descripción de la imagen aquí
En general, la entrada, la entrada y la salida de la codificación predictiva son las siguientes:
inserte la descripción de la imagen aquí

2. Transformar la codificación

La codificación de transformación se refiere al mapeo y transformación de la señal de dominio espacial en la imagen al dominio de frecuencia (dominio de frecuencia), y luego codificar los coeficientes de transformación generados. Debido a que en el dominio espacial, la correlación entre los datos es relativamente grande, el cambio del residuo después de la codificación predictiva es pequeño y hay una gran cantidad de redundancia de datos, especialmente en el área plana donde el valor de brillo cambia lentamente en la imagen. Después de transformarse al dominio de la frecuencia, los datos residuales dispersos en el dominio espacial se convertirán en una distribución centralizada, lo que puede reducir la correlación y la redundancia de datos, logrando así el propósito de eliminar la redundancia espacial.
En H.265, un bloque de codificación (CB) se puede dividir en varios bloques de predicción (PB) y bloques de transformación (TB) a través de un quadtree. Dado que la división del quadtree de CB a TB es principalmente para la operación de transformación del residual, este quadtree también se denomina quadtree residual (RQT). Como se muestra en la figura a continuación, es un ejemplo de división RQT, que divide un CB residual de 32 32 en 13 TB de diferentes tamaños. inserte la descripción de la imagen aquí
Hay cuatro tamaños de cada TB, que van desde 4
4, 8 8, 16 16, 32 32, y cada TB corresponde a una matriz de coeficiente de transformación de enteros. Un TB de gran tamaño es adecuado para áreas planas donde los valores de brillo de la imagen cambian lentamente, y un TB de tamaño pequeño es adecuado para áreas complejas donde los valores de brillo de la imagen cambian rápidamente. Todas las dimensiones se pueden transformar usando la transformada de coseno discreta (DCT). Además, para los 4 4 bloques de residuos de luminancia intrapredichos, también se puede usar la transformada sinusoidal discreta (DST).

Dado que la codificación predictiva intratrama se basa en los datos de los bloques codificados a la izquierda y arriba, cuanto más cerca esté el bloque predicho del bloque codificado, más fuerte será la correlación y menor el error de predicción; cuanto más lejos esté del bloque codificado , cuanto menor sea la correlación y menor el error de predicción. Las características de distribución de datos del error de predicción son muy similares a la función de base sinusoidal sen de DST, el punto inicial es el más pequeño y luego aumenta gradualmente. Sin embargo, debido a que la cantidad de cálculo de DST es mayor que la de DCT, es necesario agregar más identificadores de tipo de transformación, por lo que DST solo se usa para bloques residuales de luminancia de predicción intratrama de 4*4.

2.1 Cuantización

Dado que la codificación de transformada solo convierte los datos de imagen de la matriz de dominio espacial a la matriz de coeficientes de transformada de dominio de frecuencia, no se reduce ni el número de coeficientes ni la cantidad de datos en la matriz. Para comprimir datos, también se requiere cuantificación y codificación de entropía de características estadísticas en el dominio de la frecuencia.
Los métodos de cuantificación comunes se pueden dividir en dos categorías: **Cuantización escalar (SQ) y Cuantización vectorial (VQ)**:
1. Cuantificación escalar: divida los datos de la imagen en varios intervalos y luego represente cada intervalo con un valor. valores de todos los puntos de muestra en este intervalo.
2. Cuantificación vectorial: divida los datos de la imagen en varios intervalos y luego use un vector representativo en cada intervalo para representar todos los valores vectoriales en este intervalo.
Debido a que la cuantificación vectorial introduce la correlación entre múltiples píxeles y utiliza un método de probabilidad, la tasa de compresión general es más alta que la de la cuantificación escalar. Sin embargo, debido a su alta complejidad computacional, el método de cuantificación más utilizado en la actualidad es la cantidad escalar.
El proceso de cuantificación en el extremo de la codificación puede entenderse simplemente como la división de cada coeficiente de transformación DCT por el paso de cuantificación para obtener un valor de cuantificación. El proceso de cuantificación inversa correspondiente en el decodificador es multiplicar el valor de cuantificación por el paso de cuantificación para obtener el valor del coeficiente de variación DCT.

3. Codificación estadística (codificación de entropía)

La codificación de entropía se refiere a la codificación que no pierde ninguna información de acuerdo con el principio de entropía durante el proceso de codificación. La cuantificación es un método de compresión con pérdida, mientras que la codificación de entropía es una forma más compacta de marcar la relación de mapeo con los datos originales, que pertenece a la compresión sin pérdida. La codificación de entropía común incluye la codificación de Shannon, la codificación de Huffman, la codificación aritmética, la codificación de longitud de ejecución, etc.

3.1 Codificación de Huffman

La codificación de Huffman es una codificación de longitud variable, es decir, cambia la longitud de codificación de diferentes caracteres. Esta codificación utiliza la probabilidad de ocurrencia de caracteres para construir un árbol binario de Huffman. El objetivo es usar códigos cortos (más cercanos al nodo raíz) al codificar caracteres con alta probabilidad de ocurrencia y usar códigos largos (lejos del nodo raíz). al codificar caracteres con baja probabilidad, de modo que la longitud promedio de la palabra clave sea la más corta.

3.2 Codificación aritmética

Aunque la codificación de Huffman puede obtener los mejores resultados de codificación en teoría, en la codificación real, dado que la unidad de datos mínima procesada por la computadora es 1 bit, la longitud de las palabras de código que contienen puntos decimales solo se puede procesar como números enteros, por lo que el efecto de codificación real a menudo es ligeramente diferente Inferior al efecto de codificación teórico. En el campo de la compresión de imágenes, se suele utilizar la codificación aritmética en lugar de la codificación Huffman. Sin embargo, la base teórica de la codificación aritmética es la misma que la de la codificación Huffman: los caracteres con alta probabilidad usan códigos cortos y los caracteres con baja probabilidad usan códigos largos.
La codificación aritmética se divide en codificación aritmética de modo fijo, codificación aritmética adaptativa (AAC), codificación aritmética binaria, codificación aritmética binaria adaptativa (CABAC), etc. CABAC se utiliza en H.265. Aquí solo presentaremos el proceso de codificación aritmética de modo fijo:
1. Cuente los caracteres y la probabilidad de ocurrencia en la secuencia de símbolos de entrada
2. De acuerdo con la distribución de probabilidad, divida el intervalo [0, 1) en múltiples subintervalos , y cada subintervalo representa un carácter, el tamaño del subintervalo representa la probabilidad de que aparezca el carácter; la suma de todos los tamaños de los subintervalos es igual a 1; suponiendo que el rango del carácter es [L, H); 3. Establezca la variable inicial bajo = 0, alto = 1 y lea
continuamente Para cada carácter en la secuencia de símbolos, encuentre el rango de intervalo [L, H) correspondiente al carácter y actualice los valores de bajo y alto: bajo
= bajo + (alto - bajo) * L
alto = bajo + (alto - bajo) * H
4. Después de atravesar la secuencia de símbolos, obtenga el mínimo y el máximo finales, convierta la forma binaria y la salida para obtener los datos codificados.

4. Otras tecnologías

4.1 Filtrado de bucles

Dado que H.265 adopta la codificación de bloques, habrá algunos efectos de distorsión, como el efecto de bloque y el efecto de timbre, cuando la imagen se descuantifique, transforme y reconstruya. Para resolver estos problemas, H.265 adopta la tecnología de filtrado de bucles, incluido el filtrado de desbloqueo (DBF) y la compensación adaptativa del punto de muestreo (SAO).
DBF actúa sobre los píxeles del borde para resolver los artefactos de bloqueo. El efecto de bloque se refiere a la discontinuidad obvia del valor de gris en el límite de algunos bloques de codificación adyacentes. Hay dos razones principales para el efecto de bloque: la transformación DCT y la cuantificación del residual por parte del codificador se basan en bloques, ignorando la relación entre bloques
. y La correlación entre bloques da lugar a un procesamiento inconsistente entre bloques;
la coincidencia incompleta de los bloques de compensación de movimiento de predicción entre fotogramas provoca errores; el fotograma de referencia de predicción durante la codificación suele provenir de estas imágenes reconstruidas, lo que provoca la distorsión de la imagen que se va a predecir; DBF
para El tipo de límite adopta un filtrado fuerte, un filtrado débil o ningún procesamiento, y la determinación del tipo de límite está determinada por el umbral de gradiente de píxel de límite y el parámetro de cuantificación del bloque de límite. En el procesamiento DBF, primero realice el filtrado horizontal en los bordes verticales de toda la imagen y luego realice el filtrado vertical en los bordes horizontales. El proceso de filtrado es en realidad el proceso de corregir los valores de los píxeles para que los cuadrados parezcan menos obvios. La tecnología DBF también existe en H.264, pero se aplica a bloques de procesamiento de tamaño 4 4, mientras que en H.265 se aplica a bloques de procesamiento 8 8.
SAO es un mecanismo de compensación de errores recientemente introducido para imágenes reconstruidas en H.265, que se utiliza para mejorar el efecto de timbre. El efecto de llamada se refiere al impacto causado por el cambio drástico del valor de gris de la imagen. La razón principal del efecto de llamada es la pérdida de información de alta frecuencia después de la transformación DCT. El principio de SAO es reducir la distorsión de la información de alta frecuencia agregando compensación de valor negativo a los píxeles máximos de la curva de reconstrucción y agregando compensación de valor positivo a los valles. A diferencia de DBF, que solo funciona en los píxeles de contorno, SAO funciona en todos los píxeles del bloque.

Comprensión complementaria

Cuando se codifica CU, el modo de división de PU óptimo y el modo de predicción intratrama se seleccionarán de acuerdo con RD:
inserte la descripción de la imagen aquí
SATD (s, p) es la suma de la diferencia de conversión absoluta entre el bloque PB original s y el bloque PB predicho p de modo
SSD (s, c) Indica la suma de los cuadrados de los errores entre s y el bloque reconstruido
Rtmode indica la tasa de bits necesaria para codificar el modo actual
Rtall es la tasa de bits total necesaria para codificar toda la información (modo de partición, número de modos de predicción , coeficientes residuales)
primero use (4) Preseleccione varios modos óptimos posibles, y luego use (5) para seleccionar el modo óptimo

Codificación de vídeo H.266/VVC

1. Intrapredicción

En términos de predicción intra, VVC admite 67 modos de predicción intra (este número es 35 en HEVC) y ajusta la dirección de predicción de ángulo de bloques no cuadrados. La interpolación de píxeles de predicción utiliza dos tipos de filtros de interpolación de cuatro toques (en HEVC es un diferencia lineal con baja precisión). La tecnología Position Dependent intra Prediction Combination (PDPC) combina las señales de predicción prefiltradas y prefiltradas para mejorar aún más la precisión de la predicción intratrama. La tecnología de predicción intracuadro de línea de referencia múltiple no solo puede utilizar el valor de píxel reconstruido del vecino más cercano, sino también el valor de píxel reconstruido más alejado para la predicción intracuadro. En la tecnología de predicción intratrama basada en matriz, se utiliza la multiplicación matriz-vector para la predicción intratrama. Las técnicas de predicción interna del modelo lineal de componente cruzado utilizan valores de píxel de componentes de imagen de luminancia para predecir valores de píxel de componentes de crominancia en la misma imagen. En el modo de subbloque, diferentes subbloques de una luma CU adoptan la misma información de modo de codificación.

2. Inter predicción

En términos de predicción entre fotogramas, VVC hereda la codificación de diferencia de vector de movimiento (MMVD) de HEVC y el modo de herencia de información de movimiento basado en la unidad de codificación completa, a saber: AMVP (Predicción de vector de movimiento adaptativo) y modo Saltar/Combinar, y se expandieron por separado. Para el modo AMVP, VVC presenta precisión de vector de movimiento adaptativo a nivel de bloque y modo de codificación simétrica (Señalización de diferencias de vector de movimiento simétrico) para predicción bidireccional, pero solo necesita codificar MVD de una de las imágenes de referencia. Para el modo Omitir/Fusionar, VVC presenta la predicción de vectores de movimiento basada en el historial (HMVP, Predicción de vectores de movimiento basada en el historial) y el candidato de fusión promedio por pares. Además de la codificación/herencia del vector de movimiento mencionada anteriormente basada en la unidad de codificación completa, VVC también presenta una Predicción del vector de movimiento temporal basada en subbloques (SbTMVP), es decir, la unidad de codificación actual se divide en subbloques del mismo tamaño. (subbloque de luminancia de 8 × 8), el vector de movimiento de cada subbloque se obtiene por separado. VVC también presenta un modelo de movimiento afín para representar con mayor precisión los movimientos de alto orden, como el escalado y la rotación, para mejorar la eficiencia de la codificación de la información de movimiento. La precisión de los vectores de movimiento se ha mejorado de 1/4 de luminancia de píxel en HEVC a 1/16 de luminancia de píxel. Además, VVC también presenta una serie de nuevas herramientas de codificación de predicción entre fotogramas, como: el modo de fusión (modo de fusión con MVD, MMVD) que combina AMVP y el modo de fusión, que se mejora aún más al agregar una diferencia de vector de movimiento adicional a el modo de fusión; Los resultados de bloque del modo de bloque geométrico pueden estar más en línea con la trayectoria de movimiento del límite del objeto de entidad en el contenido de video; el modo de predicción que combina la predicción inter e intra puede reducir la redundancia temporal y la redundancia espacial en al mismo tiempo para lograr un mejor rendimiento de alta compresión. Otra mejora importante de VVC es la introducción de dos herramientas, el refinamiento de movimiento en el extremo de decodificación y el flujo óptico bidireccional, para mejorar aún más la eficiencia de la compensación de movimiento sin aumentar la sobrecarga de la tasa de bits.

3. Transformación y cuantización

En términos de transformación, VVC presenta transformación no cuadrada, selección de transformación múltiple (transformación principal), transformación no separable de baja frecuencia y transformación de subbloque. Además, la dimensión de transformación máxima en VVC se ha incrementado a 64×64 (32×32 en HEVC). Las transformaciones no cuadradas se utilizan para realizar operaciones de transformación en bloques no cuadrados. Esta transformación utiliza núcleos de transformación de diferentes longitudes horizontal y verticalmente. Con la opción de transformación múltiple, un codificador puede seleccionar entre un conjunto predefinido de transformaciones de salto, seno y coseno enteros e indicar la transformación utilizada en el flujo de bits. La transformada inseparable de baja frecuencia realiza una transformada secundaria en los componentes de baja frecuencia en el resultado de la transformada principal del residuo de intrapredicción para utilizar mejor la direccionalidad del contenido del bloque de codificación para mejorar aún más el rendimiento de la compresión. La transformación de subbloque se usa cuando se codifica una parte de un bloque residual entre predicciones mientras se establecen los valores de otras partes en todos ceros.
VVC presenta tres nuevas herramientas de codificación en términos de cuantificación: sesgo del parámetro de cuantificación de croma adaptable, cuantificación dependiente y codificación conjunta residual cuantificada. Cuando se utiliza la herramienta de desviación de parámetros de cuantificación cromática adaptable, para un grupo de cuantificación específico, los parámetros de cuantificación cromática no se codifican directamente, sino que se derivan de los parámetros de cuantificación luma y una tabla de búsqueda predefinida y transmitida. En la cuantificación dependiente, el rango de valores reconstruidos de un coeficiente de transformación depende de los valores reconstruidos de varios coeficientes de transformación que lo preceden en orden de exploración, lo que reduce la distorsión promedio entre el vector de entrada y el vector reconstruido más cercano. La codificación conjunta de residuos cuantificados se refiere a codificar los residuos de dos componentes de crominancia juntos en lugar de codificarlos por separado, de modo que la eficiencia de codificación será mayor cuando los residuos de los dos componentes de crominancia sean similares.

4. Codificación de entropía

Al igual que HEVC, la codificación de entropía utilizada por VVC también es codificación aritmética binaria adaptable al contexto (Codificación aritmética binaria adaptable al contexto, CABAC), pero se han realizado mejoras tanto en el motor CABAC como en la codificación del coeficiente de transformación. La mejora en el motor CABAC es la tasa de adaptación del modelo de actualización de probabilidad de hipótesis múltiples y el enlace del modelo de contexto (es decir, la velocidad de actualización de probabilidad depende del modelo de contexto), que utiliza dos estimaciones de probabilidad P0 y P1 junto con cada contexto. Sin embargo, P0 y P1 se actualizan de forma independiente entre sí según sus respectivas tasas de adaptación. La estimación de probabilidad P utilizada para la subdivisión de intervalos en el codificador aritmético binario se establece en la media de P0 y P1. En términos de codificación de coeficientes de transformación, además del grupo de coeficientes 4×4, VVC también permite seis grupos de coeficientes de 1×16, 16×1, 2×8, 8×2, 2×4 y 4×2. Además, se agrega un bit indicador para las transiciones de estado dependientes de la cuantificación y se agrega un mecanismo de selección de modelo probabilístico mejorado para la codificación de elementos de sintaxis relacionados con el valor absoluto de los coeficientes de transformación.

5. Filtrado de bucles

Además de admitir el filtro de desbloqueo (Filtro de desbloqueo, DBF) y el desplazamiento adaptativo de muestra (Sample Adaptive Offset, SAO) que también están disponibles en HEVC, VVC también admite Luma Mapping con Chroma Scaling, LMCS) y filtro de bucle adaptativo (filtro de bucle adaptativo , ALF). En DBF, se agregan convenientemente un filtro más largo y un modo de filtrado adaptable al brillo especialmente diseñado para video de alta dinámica. SAO es lo mismo que HEVC. El codificador puede usar LMCS para cambiar linealmente el rango dinámico de la distribución de amplitud de la señal de video de entrada segmentada antes de la codificación para mejorar la eficiencia de la codificación y restaurarla de manera inversa al final de la decodificación. ALF en VVC incluye dos modos: 1) ALF basado en bloques para muestras de luminancia y croma; 2) filtro de bucle adaptativo de componentes cruzados (CC-ALF) para muestras de croma. En ALF, se utilizan filtros de diamante de 7×7 y 5×5 para luminancia y crominancia respectivamente; para cada bloque de 4×4, se clasifica una de 25 clases y 4 estados transpuestos según su direccionalidad y actividad de gradiente, seleccione uno de los pasó conjuntos de filtros para usar. CC-ALF utiliza un filtro de paso alto lineal en forma de diamante para refinar aún más las muestras de croma utilizando las muestras de luminancia filtradas por ALF.

6. Codificación del contenido de la pantalla

VVC conserva la modulación de código de pulso diferencial basada en bloques en HEVC, pero solo para unidades de codificación intrapredichas. La codificación residual de omisión de transformación ha realizado las siguientes mejoras sobre la base de HEVC: 1) La posición del primer valor distinto de cero ya no está codificada y la dirección de exploración cambia a la dirección opuesta; 2) El modelo de contexto se utiliza para mejorar la eficiencia de codificación de la indicación de signos; 3) Mejoras de codificación para valores absolutos. Intra Block Copy (IBC) y el modo de paleta, dos herramientas que ya están en HEVC, también se conservan y mejoran. En HEVC, IBC se define como un modo de predicción entre fotogramas en el que el fotograma de referencia es el propio fotograma actual y el vector de movimiento debe apuntar a un área en la que el fotograma actual ha sido decodificado y no filtrado en bucle. En VVC, IBC está desacoplado de la predicción entre fotogramas y la gestión de los búferes de referencia se simplifica en comparación con HEVC. Las muestras de referencia se almacenan en un pequeño búfer local. La forma en que se codifican las paletas en VVC depende de si luma-chroma usa un solo árbol de codificación. Si se utiliza un único árbol de codificación, las paletas de los tres componentes de croma se codifican conjuntamente; de ​​lo contrario, las paletas de luma y croma se codifican por separado. Para una unidad de codificación que usa una paleta, los píxeles individuales también pueden codificar sus valores cuantificados directamente sin usar el contenido de la paleta. Finalmente, Adaptive Color Transformation en VVC, una herramienta para codificar el contenido de la pantalla, permanece sin cambios desde HEVC.

7. Codificación de video de 360 ​​grados

El video de 360 ​​grados se hizo popular gradualmente alrededor de 2014 y 2015, y la primera versión de HEVC se finalizó a principios de 2013, por lo que VVC se ha convertido con éxito en el primer estándar internacional de codificación de video que incluye herramientas de codificación de video de 360 ​​grados. Dado que las tecnologías de codificación de video tradicionales se utilizan básicamente en la codificación de video de 360 ​​grados, solo hay dos herramientas de "compresión" de video de 360 ​​grados incluidas en VVC, y hay más soporte para video de 360 ​​grados en el diseño del sistema y la interfaz de transmisión ( ver la siguiente sección de este artículo). Una herramienta de "compresión" de video de 360 ​​grados en VVC se denomina envolvente de vector de movimiento, es decir, cuando el vector de movimiento apunta a una posición fuera del límite derecho (izquierdo) de la imagen, los píxeles de referencia reales utilizados en la compensación de movimiento están dentro del límite izquierdo (derecho) de la imagen Píxeles (o subpíxeles obtenidos por filtrado de interpolación). Esto se debe a que los límites izquierdo y derecho de una imagen comúnmente utilizada en videos de 360 ​​grados llamada Proyección Equirectangular (ERP) son en realidad posiciones continuas en la superficie esférica del mundo físico, similar a los límites izquierdo y derecho de un mapamundi. misma línea de longitud que conecta los polos norte y sur. Por lo tanto, dicho ajuste de vector de movimiento puede mejorar la eficiencia de codificación de video de 360 ​​grados usando ERP. Otra herramienta de "compresión" de video de 360 ​​grados se llama borde virtual de filtro de bucle; si se usa, el efecto de la aplicación de filtro de bucle no exagerará ciertas líneas horizontales o verticales en la imagen (estas líneas son los llamados bordes virtuales mencionados aquí). Esta herramienta funciona con otro tipo de mapeo comúnmente utilizado en video de 360 ​​grados, llamado Cube Map Projection (CMP). La referencia [13] contiene un video detallado de 360 ​​grados y una introducción a ERP y CMP.

Alguna referencia de información: https://mp.weixin.qq.com/s/tQo3_EffwUNOph4DnobFzg
https://juejin.cn/post/6940078108787769357

Supongo que te gusta

Origin blog.csdn.net/qq_39969848/article/details/129020948
Recomendado
Clasificación