39
Tema 2.7. Transformación y cuan3ficación Compresión de Vídeo Juan A. Michell Mar?n Gustavo A. Ruiz Robredo Departamento de Electrónica y Computadores Este tema se publica bajo Licencia: Crea9ve Commons BYNCSA 4.0

Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Tema  2.7.  Transformación  y  cuan3ficación  

Compresión  de  Vídeo  

Juan  A.  Michell  Mar?n  Gustavo  A.  Ruiz  Robredo  

Departamento  de  Electrónica  y  Computadores  

Este  tema  se  publica  bajo  Licencia:  Crea9ve  Commons  BY-­‐NC-­‐SA  4.0  

Page 2: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 2

TRANSFORMADA DISCRETA DEL COSENO (DCT)

La transformada discreta del coseno (DCT) opera con un block x de N×Nmuestras para crear la matriz de coeficientes X de dimensión N×N

TX A x A= ⋅ ⋅

La 2D DCT directa (forward) viene definida como

La 2D DCT inversa (inverse) viene definida comoTx A X A= ⋅ ⋅

Los elementos A son

n(2m 1)n

A(n,m) C cos2N+ π

=

n1

C , n 0N

= = n2

C , n 0N

= >

donde

Page 3: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 3

N 1 N 1

u vn 0 m 0

(2n 1)u (2m 1)vX(u,v) C C x(n,m)cos cos

2 N 2 N

− −

= =

+ π + π=

× ×∑ ∑N 1N 1

u vu 0 v 0

(2n 1)u (2m 1)vx(n,m) C C X(u,v)cos cos

2 N 2 N

− −

= =

+ π + π=

× ×∑ ∑

De forma que la 2D DCT directa e inversa se puede expresar

1 1 1 1cos(0) cos(0) cos(0) cos(0)

2 2 2 21 1 3 1 5 1 7

cos cos cos cos2 8 2 8 2 8 2 8

A1 2 1 6 1 10 1 14

cos cos cos cos2 8 2 8 2 8 2 8

1 3 1 9 1 15 1 21cos cos cos cos

2 8 2 8 2 8 2 8

π π π π

=π π π π

π π π π

Por ejemplo para N=4 se tiene

Page 4: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 4

Imagen original

2D DCT

Distribución de coeficientes

Concentraciónde la energía

Page 5: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 5

¿Por qué la DCT?

o La DCT tiene una buena capacidad de compactación de la energía al dominiotransformado, es decir, consigue concentrar la mayor parte de la información enpocos coeficientes transformados.

o La transformación es independiente de los datos. El algoritmo aplicado no variacon los datos que recibe, como sí sucede en otros algoritmos de compresión.

o Hay fórmulas para el cálculo rápido del algoritmo reduciendo el número deoperaciones.

o Produce pocos errores en los límites de los bloques imagen. La minimización delos errores a los contornos de los bloques permite reducir el efecto de bloque enla imágenes reconstruidas.

o Tiene una interpretación frecuencial de los componentes transformados. Lacapacidad de interpretar los coeficientes en el punto de vista frecuencial permiteaprovechar al máximo la capacidad de compresión.

Page 6: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 6

Operando resulta

1 1 1 12 2 2 2

1 1 3 1 3 1cos cos cos cos

2 8 2 8 2 8 2 8A

1 1 1 12 2 2 2

1 3 1 1 1 3cos cos cos cos

2 8 2 8 2 8 2 8

π π π π − − = − −

π π π π − −

a a a ab c c b

Aa a a ac b b c

− − =

− − −

1a

2=

1b cos

2 8π =

1 3c cos

2 8π =

Otra manera de expresar la anterior matriz

Page 7: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 7

La transformada usada por el H.264 está basada en la DCT 4×4 pero conalgunas diferencias fundamentales :

o Es una transformada de números enteros.

o Puede ser implementada con solamente operaciones desuma/resta y desplazamientos.

o Los factores de normalización de la transformada se integran en elcuantificador, reduciendo el número total de multiplicadores.

o Toda la aritmética se puede realizar en 16 bits, compatible conmultitud de procesadores.

TRANSFORMADA ENTERA DEL H.264

Page 8: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 8

2 2

2 2

2 2

2 2

a ab a ab1 1 1 1 1 1 1 d1 d d 1 x 1 d 1 1 ab b ab b

X1 1 1 1 1 d 1 1 a ab a abd 1 1 d 1 1 1 d ab b ab b

− − − − = ⊗ − − − − − − − −

( )TX C x C E= ⋅ ⋅ ⊗

La transformada directa 2D DCT se puede expresar también como

El operador ⊗ significa multiplicación elemento a elemento omultiplicación escalar, no es una multiplicación matricial.

A nivel matricial se indica como

1. Al término C·x·CT se denomina cuerpo principal (core) de latransformada 2D.

2. E es la matriz de los factores de escalado.

Post-escaladado

Page 9: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 9

1 2 1a b d

2 5 2= = =

Para simplificar la anterior transformada y asegurar que permaneceortogonal, los coeficientes a b y d son simplificados a

2 2

2 2

2 2

2 2

a ab / 2 a ab / 21 1 1 1 1 2 1 12 1 1 2 x 1 1 1 2 ab / 2 b / 4 ab / 2 b / 4

X1 1 1 1 1 1 1 2 a ab / 2 a ab / 21 2 2 1 1 2 1 1 ab / 2 b / 4 ab / 2 b / 4

− − − − = ⊗ − − − − − − − −

( )Tf f fX C x C E= ⋅ ⋅ ⊗

que a nivel matricial se indica como

Se puede observar que el core de esta transformada Cf·x·CfT se calcula a

partir de operaciones de suma/resta y de shift. No necesitamultiplicaciones.

Como resultado se obtiene la transformada directa usada en el H.264 es

Page 10: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 10

x0

x1

x2

x3

Y0

Y2

Y1

Y3

1D f 1DY C x= ⋅

Algoritmo rápido de la transformada entera directa 1D

Page 11: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 11

0,3 0,2 0,1 0,0

1,3 1,2 1,1 1,0

2,3 2,2 2,1 2,0

3,3 3,2 3,1 3,0

x x x xx x x xx x x xx x x x 1 D

dire

cta

Tran

sfor

mad

a

Implementación de la transformada directa 2D basada en dos 1D

0,3 0,2 0,1 0,0

1,3 1,2 1,1 1,0

2,3 2,2 2,1 2,0

3,3 3,2 3,1 3,0

Y Y Y YY Y Y YY Y Y YY Y Y Y

1 D directa Transformada

0,0 1,0 2,0 3,0

0,1 1,1 2,1 3,1

0,2 1,2 2,2 3,2

0,3 1,3 2,3 3,3

X X X XX X X XX X X XX X X X

Transposición

Page 12: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 12

2 2

2 2

2 2

2 2

a ab a ab1 1 1 1 / 2 1 1 1 11 1 / 2 1 1 X ab b ab b 1 1/2 -1/2 -1

x 1 1 / 2 1 1 1 -1 -1 1a ab a ab1 1 2 1 / 2 1/2 -1 1 -1/2ab b ab b

− − = ⊗ − − − −

( )Ti i ix C X E C= ⊗

La transformada inversa 2D usada en el H.264 es

Matricialmente se puede expresar como

Pre-escaladado

Page 13: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 13

X0

X1

X2

X3

>>1

T1D i 1DU C X= ⋅

>>1

U0

U2

U1

U3

Algoritmo rápido de la transformada inversa 1D

Page 14: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 14

0,3 0,2 0,1 0,0

1,3 1,2 1,1 1,0

2,3 2,2 2,1 2,0

3,3 3,2 3,1 3,0

X X X XX X X XX X X XX X X X 1 D

inve

rsa

Tran

sfor

mad

a

Implementación de la transformada inversa 2D basada en dos 1D

0,3 0,2 0,1 0,0

1,3 1,2 1,1 1,0

2,3 2,2 2,1 2,0

3,3 3,2 3,1 3,0

U U U UU U U UU U U UU U U U

1 D inversa Transformada

0,0 1,0 2,0 3,0

0,1 1,1 2,1 3,1

0,2 1,2 2,2 3,2

0,3 1,3 2,3 3,3

x x x xx x x xx x x xx x x x

Transposición

Page 15: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 15

CUANTIFICACIÓN (QUANTIZATION)

El H.264 asume cuantificación escalar que satisface los siguientesrequerimientos:

o Evitar la división y aritmética de punto flotante.

o Incorporar el post- y pre-escalado de las matrices Ef y Ei.

La cuantización directa básica se aplica a los coeficientes X de latransformada

( ) ( )( )Z u,v round X u,v / QStep=

donde

o X(u,v) son los coeficientes de la transformada.

o Z(u,v) son los coeficientes cuantificados.

o QStep es el parámetro de cuantificación que indica el tamaño de paso.En el H.264 se define un total de 52 valores estandarizados diferentes.

Page 16: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 16

Para indexar estos 52 valores se utiliza el parámetro de cuantificación QP(Quantization Parameter) que varía de 0 a 51.

QP 0 1 2 3 4 5

QStep 0.625 0.6875 0.8125 0.875 1 1.125

QP 6 7 8 9 10 11 12

QStep 1.25 1.375 1.625 1.75 2 2.25 2.5

QP … 18 … 24 … 30 …

QStep … 5 … 10 … 20 …

QP 36 … 42 … 48 … 51

QStep 40 … 80 … 160 … 224

Tabla de cuantificación definida en el H.264

Un incremento de QP en 1 supone un incremento aproximado del 12% enel valor de QStep.

Un incremento de QP en 6 significa que QStep es incrementado por unfactor de 2.

Page 17: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 17

Post-escalado

La transformada directa 2D

( )

2 2

2 2T

f f f 2 2

2 2

a ab / 2 a ab / 2

ab / 2 b / 4 ab / 2 b / 4X C x C E W

a ab / 2 a ab / 2

ab / 2 b / 4 ab / 2 b / 4

= ⋅ ⋅ ⊗ = ⊗

En el cuantificador directo, los elementos de Ef se incorporan alcuantificador de forma que cada coeficiente W(u,v) es escaladoindependientemente:

( ) ( )( )fZ u,v round W u,v E (u,v) / QStep= ⋅

Para simplificar la aritmética y evitar divisiones de número flotantes, seutiliza una matriz de coeficientes enteros MF(u,v)

( ) ( )( )qbitsZ u,v round W u,v MF(u,v) / 2= ⋅

Page 18: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 18

donde fqbits

E (u,v)MF(u,v)QStep2

= qbits 15 floor(QP / 6)= +y

QP%6 Posiciones(0,0), (2,0), (2,2), (0,2)

Posiciones(1,1), (1,3), (3,1), (3,3) resto

0 13107 5243 8066

1 11916 4660 7490

2 10082 4194 6554

3 9362 3647 5825

4 8192 3355 5243

5 7282 2893 4559

Definición de los valores MF(u,v)

Ejemplo: Supongamos QP=4 y (u,v)=(0,0). Entonces, QStep=1.0, Ef(u,v)=a2=0.25 yqbits=15. Entonces

qbits 15ffqbits

E (0,0)MF(0,0)MF(0,0) E (0,0) 2 QStep 0.25 2 1.0 8192

QStep2= ⇒ = ⋅ ⋅ = ⋅ ⋅ =

Page 19: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 19

( )( ) ( )

qbits

qbits

Z(u,v) W(u,v) MF(u,v) f) qbits

sign Z(u,v) sign W(u,v)

2 / 3 para intraf

2 / 6 para inter

qbits 15 floor(QP / 6)

= ⋅ + >>

=

= = +

Finalmente, las ecuaciones usadas por el H.264 en el proceso decuantización directa son

QP%6 indica que los coeficientes se repiten cada incremento en 6 de QP.

qbits se incrementa en 1 por cada incremento en 6 de QP. Es decir, qbits=15para 0≤QP≤5, qbits=16 para 6≤QP≤11, qbits=17 para 12≤QP≤17, etc.

Page 20: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 20

X (u,v) Z(u,v) QStep′ = ⋅

La transformada inversa 2D

( )

2 2

2 2, T T

i i i i i2 2

2 2

a ab a ab

ab b ab bx C Z E C C Z C

a ab a ab

ab b ab b

= ⊗ = ⊗

El proceso de pre-escalado se realiza de la siguiente manera:

1.- Se pre-escala los coeficientes a través del factor QStep:

REESCALADO (RESCALING)

2.- Se incluye las constantes Ei en el proceso de rescalado junto con laconstante de normalización, resultando

floor(QP/6)iWI(u,v) Z(u,v) QStep E (u,v) 64 Z(u,v) MI(u,v) 2= ⋅ ⋅ ⋅ = ⋅ ⋅

Page 21: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 21

QP%6 Posiciones(0,0), (2,0), (2,2), (0,2)

Posiciones(1,1), (1,3), (3,1), (3,3) resto

0 10 16 13

1 11 18 14

2 13 20 16

3 14 23 18

4 16 25 20

5 18 29 23

Definición de los valores MI(u,v)

Ti ixr C WI C= ⋅ ⋅

3.- El proceso de reescalado finaliza realizando la transformada inversa:

Ejemplo: Supongamos QP=3 y (u,v)=(1,2). Entonces, QStep=0.75 y 2floor(QP/6)=1,Ei(1,2)=ab=0.3162. Entonces

ifloor(QP/6)

MI(1,2) QStep E (1,2) 64 18

W'(1,2) Z(1,2) MI(1,2) 2 Z(1,2) 18 1

= ⋅ ⋅ ≅

= ⋅ ⋅ = ⋅ ⋅

Page 22: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 22

Ejemplo: QP=10

5 11 8 10

9 8 4 12

1 10 11 4

19 6 15 7

Bloque de entrada

x=

Core de la transformada directa

TW C x C= ⋅ ⋅ =

140 -1 -6 7

-19 -39 7 -92

22 17 8 31

-27 -32 -59 -21

Matlab: x=[5 11 8 10; 9 8 4 12; 1 10 11 4; 19 6 15 7]

Matlab: W=DCT_forward(x)

Page 23: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 23

Cuantización.

( )( ) ( )

qbits

qbits

Z(u,v) W(u,v) MF(u,v) f) qbits

sign Z(u,v) sign W(u,v)

2 / 3 para intraf

2 / 6 para inter

= ⋅ + >>

=

=

qbits=15+floor(QP/6)=15+floor(10/6)=16

8192 8192

81

5243 33555243 5243

QP%6 4 MF5243355 3355

33553 5243

5243 52 33592 819

5432

= ⇒ =

qbits 16f 2 / 3 2 / 3= =

Page 24: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 24

Z =

17 0 -1 0

-1 -2 0 -5

3 1 1 2

-2 -1 -5 -1

Los coeficientes cuantificados

floor(QP/6)WI(u,v) Z(u,v) MI(u,v) 2= ⋅ ⋅

El proceso de preescalado realiza la operación

16 16

16 1

20 2020 20

QP6

%6 4 MI20 2020

25 2

20

5

25 25

= ⇒ =

floor(QP/6)2 2=

Matlab: Z=Quantization_forward(W, 10, 0)

QP Inter → 0Intra→ 1

Page 25: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 25

WI =

544 0 -32 0

-40 -100 0 -250

96 40 32 80

-80 -50 -200 -50

Core de la transformada inversa

Ti ixr round(C WI C / 64)= ⋅ ⋅ =

4 13 8 10

8 8 4 12

1 10 10 3

18 5 14 7

Matlab: WI=Quantization_inverse (Z, 10)

QP

Matlab: xr=DCT_inverse (WI)

Proceso completo: Matlab: xr=quantization_complete(x,10,0)

5 11 8 10

9 8 4 12

1 10 11 4

19 6 15 7

x=

Page 26: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 26

EjemploQuantificacionInter.m

Imagen de referencia

Imagen Current16x16

BEST MATCH

Ycomp

DCTWZ

CV

WIQ-1 C

VCV

xr

IMAGEN RESIDUAL

Q

searchArea

QP

PSNRIDCT

posX

posY

searchArea

Page 27: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 27

El H.264 usa tres tipos de transformada para codificar el bloque residual:1. Transformada entera DCT-based de bloques 4x4.2. Transformada Hadamard de 2x2 de los coeficientes DC de las cromas.3. Solo para intra 16x16, transformada Hadamard de 4x4 de los

coeficientes DC de la luma.

0 1 4 5

2 3 6 7

8 9 12 13

10 11 14 15

-1

Intra 16x16 mode only

DC

18 19

20 21

DC16

LUMA (W)

Croma b(Cb)

22 23

24 25

DC17

Croma r(Cr)

TRANSFORMADAS DEL H.264

Page 28: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 28

DC DC

1 1 1 1 1 1 1 11 1 1 1 1 1 1 1

Luma DC Y W / 21 1 1 1 1 1 1 11 1 1 1 1 1 1 1

− − − − = − − − − − − − −

DC1 1 1 1

Croma DC Cbr Cb o Cr1 1 1 1

= − −

En intra 16x16

Orden de transmisión de coeficientes1. En caso intra 16x16, coeficientes YDC. Etiquetados como -1.2. Coeficientes luma de acuerdo al orden indicado (0 a 15).3. Coeficientes DC de las cromas (16 y 17).4. Resto de coeficientes de las cromas (10 a 25).

Page 29: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 29

Transformada directa Cf

Post-escalado Cuantización

2x2 o 4x4 DC transformada directa

Croma oSolo Intra 16x16

Bloquede

entrada

Salidapara

codificar

Diagrama de flujo de codificación de transformada

Transformada inversa Ci

Entradapara

decodificar

Bloquede

salida

Pre-escalado decuantización

2x2 o 4x4 DC transformada inversa

Croma oSolo Intra 16x16

Page 30: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 30

EntropyCoding

Scaling & Inv. Transform

Motion-Compensation

ControlData

Quant.Transf. coeffs

MotionData

Intra/Inter

CoderControl

Decoder

MotionEstimation

Transform/Scal./Quant.-

InputVideoSignal

Split intoMacroblocks16x16 pixels

Intra-frame Prediction

De-blockingFilter

OutputVideoSignal

CODIFICACIÓN ENTRÓPICA

Page 31: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 31

El H.264 utiliza para codificar los símbolos (datos) y generar una secuenciade bits que pueden ser almacenados o transmitidos, diferentes métodos:

o Código de longitud fija. Cualquier símbolo es convertido hacia un códigobinario de longitud especificada (n bits).

o Código de longitud variable Exponential-Golomb . Cada símbolo esrepresentado por un código de palabra (codeword) de longitud variable. Elcódigo de palabra es más corto según la frecuencia de ocurrencia de unsímbolo.

o Context-adaptative variable lenght coding o CAVLC. Ha sido especialmentediseñado para codificar coeficientes de la transformada y la longitud delcódigo es elegido dependiendo de la frecuencia de aparición de loscoeficientes siguiendo un proceso adaptativo.

o CABAC o context-adaptative binary arithmetic coding. Los modelos deprobabilidad son actualizados de acuerdo a las estadísticas de los símbolospreviamente codificados.

Page 32: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 32

OPCIONES DE CODIFICACIÓN ENTRÓPICA

Coeficientes cuantificadosVectores de movimiento….

CodificadorCAVLC/Exp-Golomb

CodificadorCABAC

Formato H.264 (bitstream)

Page 33: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 33

Codificación Exp-Golomb

Permite codificar eficientemente datos con probabilidad variables. Seasigna un codewords corto a los símbolos con mayor frecuencia deaparición y largos codewords a los menos comunes.

Code_num Codeword0 11 0102 0113 001004 001015 001106 001117 00010008 0001001… …….

Exp-Golomb codewords

Simetría

Page 34: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 34

El Exp-Golomp codeword tiene la siguiente estructura:

[prefijo de M ceros] 1 [INFO]

( )( )2M

M floor log code _nu

INFO code _ 1 2

m 1

num

= +

= + −

Ejemplo: code_num=107

( ) ( )26

10 2

log 107 1 6.754 M floor 6.754 6

INFO 107 1 2 44 101100codeword 000000 011011 0

+ = ⇒ = =

= + − = ==

Ejemplo: codeword=000000011100011

2 107

M 7INFO 1100011 99

code_num 2 99 1 226

== =

= + − =

Page 35: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 35

Codificación CAVLC

La codificación CAVLC es diseñada para aprovechar las características delos bloques 4x4 cuantificados:

o Después de realizar la transformada y cuantificación a un bloque4x4, la mayoría de los coeficientes son ceros.

o El valor de estos coeficientes no-ceros tienden a ser de mayor amenor valor si son ordenados en zig-zag.

Page 36: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 36

0 3 -1 0

0 -1 1 0

1 0 0 0

0 0 0 0

Ejemplo de codificación CAVLC de un bloque de coeficientes cuantificados:

0 1 5 6

2 4 7 12

3 8 11 13

9 10 14 15

Secuencia de ordenación de los coeficientes en zig-zag:

Page 37: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 37

Secuencia re-ordenada para codificar:

0 3 0 1 -1 -1 0 1 0 0 0 0 0 0 0 0

Value Code CommentsNumCoeff=5, T1s=3 0000100 Use Num-VLC0

sign of T1 (1) 0 Starting at highest frequency

sign of T1(-1) 1

sign of T1(-1) 1

Level= +1 1 Use Lev-VLC0

Level= +3 0010 Use Lev-VLC1

TotZeros=3 0111 Also depends on NumCoeff

ZerosLeft=3;RunBefore=1 10 RunBefore of the 1st Coeff

ZerosLeft=2;RunBefore=0 1 RunBefore of the 2nd Coeff

ZerosLeft=2;RunBefore=0 1 RunBefore of the 3rd CoeffZerosLeft=2;RunBefore=1 01 RunBefore of the 4th CoeffZerosLeft=1;RunBefore=1 No code required; last coeff

El bitstream transmitido para este bloque es: 000010001110010111101101

Cola de ceros

Page 38: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 38

Code Value Output Array Comments0000100 NumCoeff=5, T1s=3 Empty

0 + 1 T1 sign

1 - -1,1 T1 sign

1 - -1,-1,1 T1 sign

1 +1 1,-1,-1,1 level value

0010 +3 +3,1,-1,-1,1 level value

0111 TotZeros=3 +3,1,-1,-1,1

10 RunBefore=1 +3,1,-1,-1,0,1 RunBefore of the 1st Coeff

1 RunBefore=0 +3,1,-1,-1,0,1 RunBefore of the 2nd Coeff

1 RunBefore=0 +3,1,-1,-1,0,1 RunBefore of the 3rd Coeff

01 RunBefore=1 +3,0,1,-1,-1,0,1 RunBefore of the 4th Coeff

0,+3,0,1,-1,-1,0,1 ZeroLeft=1

Secuencia para decodificar: 000010001110010111101101

Page 39: Compresión de Vídeo. Tema 2.7. Transformación y cuantificación · 4 / b2 / b2 112a4 1x/ b2112/ b a X 1 11 1 1 112 a ab /2 a ab /2 122 1 12 1 1 ab /2 b / 4 ab /2 b / 4 −− −−

Compresión de videoGrado en Ingeniería de Tecnologías de Telecomunicación 39

Ejemplo de codificación CAVLC

bits= forward_4x4_cavlc_H264(Z)

0 3 -1 00 -1 1 01 0 0 00 0 0 0

Z=

bits=000010001110010111101101

Z= inverse_4x4_cavlc_H264(bits)

0 3 -1 00 -1 1 01 0 0 00 0 0 0

Z=