Técnicas para la difusión de vídeo

Transcripción

Técnicas para la difusión de vídeo
Técnicas para la difusión de vídeo
1. Introducción.
2. Control de flujo.
Bibliografía
[SAD02] “Compressed video
communications”
[FLU95] "Understanding networked
multimedia“
2.1 Cuantización variable
2.2 Resolución reducida
2.3 Codificación multinivel
3 Técnicas de
3.
transcodificación.
4. Protección y ocultación de
e o es
errores.
5. Conclusiones.
Transmisión de Datos Multimedia –
http://www.grc.upv.es/docencia/tdm
– Master IC 2007/2008
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
Introducción.
‰ Desde el punto de vista de la red:
z Un stream de vídeo ha de ser “paquetizado”
paquetizado para su transporte.
z La pérdida de paquetes implica una degradación de la calidad de vídeo
que observa el destinatario.
z Es por ello que resulte de interés el estudio de técnicas que protejan el
vídeo en su viaje al destino y que los errores detectados puedan ser
“ocultados” al usuario final Æ Video resilience.
‰ Desde
D d ell punto de
d vista
i
del
d l transporte de
d vídeo
íd en sistemas
i
y
redes heterogéneos:
z Interoperabilidad de distintos codecs con bitstreams incompatibles en la
red Æ heterogeneous transcoding.
z Posibilidad de cambiar los parámetros de codificación (i.e. bitrate) de un
mismo codec Æ homogeneous transcoding.
‰ Desde el punto de vista de la aplicación:
z Las redes ((i.e. Internet)) tienen un comportamiento
p
muyy variable e
impredecible en relación al ancho de banda disponible.
z Por ello, con el fin de optimizar el uso de recursos disponibles en la red
y maximizar la calidad de vídeo entregada al destinatario, se requieren
mecanismos de control de flujo extremo-a-extremo.
2
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
2. Control de flujo.
‰ Las técnicas de control de flujo deberán regular el bitrate
de salida para conseguir la mejor relación
calidad/productividad.
‰ El control de flujo es una herramienta que al mismo tiempo
nos permite prevenir situaciones de congestión en la red.
que un sistema de control de flujo
j funcione es
‰ Para q
necesario obtener de la red información acerca del ancho
de banda disponible en cada momento (i.e. RTCP receiver
reports).
)
‰ Existen diferentes formas de realizar un control de flujo:
z Cuantización
ó variable
bl (Variable-quantization
bl
)
z Resolución reducida (Reduced resolution)
z Codificación multinivel (Multi-layer coding)
z Etc..
3
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
4
Variabilidad del bitrate.
‰ Todos los estándares de compresión de vídeo producen de
forma natural un bitstream con tasa de bits variable
variable.
z Se fija el valor de “Qp” para obtener una calidad constante.
p
variar el Qp (MB, GOB o Frame) para
p
conseguir
g
z Por contra,, se puede
una tasa de bits constante a costa de una variabilidad en la calidad.
‰ La variabilidad viene fijada por la actividad espacial y temporal
d la
de
l secuencia
i de
d vídeo:
íd
z Un MB de un cuadro P, no se codifica si es muy similar al MB del cuadro
de referencia
referencia. Dependiendo de la cantidad de movimiento en la escena,
escena
el número de MB que NO se codifican varía Æ Variando también el
bitrate.
z La correlación
l ió entre los
l pixels
i l de
d un bloque
bl
de
d 8x8,
8 8 dicta
di
ell número
ú
de
d
bits necesario para codificar los 64 coeficientes resultantes de la
transformada. Junto con el valor de Qp determinará el número de
coeficiente nulos que aparecen y que posteriormente serán codificados
con VLC en flujos bits de tamaño variable.
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
Variabilidad del bitrate (II).
Codes
Layers
Variable length
Picture
Bit stuffing
ESTUF, PSTUF
Synchronization
Addresing
Q
Quant.
t step
t size
i
Administrative
Spare
PSC(22), ECS(22)
TR(8), TRB(3)
PQUANT(5) DBQUANT(2)
PQUANT(5),DBQUANT(2)
PTYPE(13),CPM(1),PSBI(2)
PEI(1), PSPARE(8)
Group of
Blocks
Bit Stuffing
GSTUF
Synchronization
Addresing
Administrative
Quant. step size
GBSC(17)
GN(5)
GSBI(2), GFID(2)
GQUANT(5)
Administrative
Motion
MCBPC,MODB, CBPY
MVD, MVD2-4,
MVDB
Administrative
Quant. step size
COD(1), CBPB(6)
DQUANT(2)
DCT Coefficients
(except Intra DC
terms)
TCOEFF
DC terms of Intra
DCT Coeff.
INTRADC(8)
Macroblock
Block
Fixed length
‰ Parámetros de longitud fija y variable en un stream de vídeo H.263
5
z La contribución de los p
parámetros de longitud
g
variable en el bitrate final es
mucho mayor que los de longitud fija, a pesar de ser menos.
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
Tasa de bits constante.
‰ Cuando al red ofrece un servicio de transporte de tipo CBR
(i e ATM),
(i.e
ATM) entonces podremos utilizar un control de flujo que
proporcione una tasa de bits constante.
‰ Es necesario incluir un buffer entre el encoder y la red para
suavizar las fluctuaciones del bitrate.
z Almacenar el video antes de enviarlo aumenta el retardo total, siendo
no aconsejable para servicios de entrega de vídeo interactivo.
‰ La técnica más común para controlar el flujo de salida del
encoder
d es ajustar
j t sus parámetros
á t
d
de configuración
fi
ió en
función de la ocupación del buffer (feedback control).
‰ Por otro lado
lado, también podemos regular el flujo con
información acerca de la actividad del frame actual (feedforward).
Picture
activity
Input
6
Modify Encoder
Params.
Source Encoder
Buffer
status
Buffer
Output
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
Ajuste de parámetros de codificación.
‰ Al controlar de flujo de salida de un encoder se debe llegar a
un compromiso entre la calidad y la tasa de compresión.
‰ Cuando se trata de encoders basados en transformada por
bloques, podemos jugar con varios parámetros:
z Tasa de cuadros (frame rate) Æ Sólo usado cuando la calidad de
cada cuadro no puede degradarse.
parte del bloque
q
de coeficientes ((i.e. solo
z Codificar sólo una p
coeff. de baja frecuencia). El coeff. DC siempre debe estar presente.
z Cuando la información del movimiento es más importante que el
detalle espacial Æ Mantener la tasa de cuadros y modificar el
parámetro de cuantización Qp.
„ Incrementando Qp se obtendrán mas coeff. nulos, reduciendo los bits
necesarios para codificar el bloque usando VLC
„ El ajuste de Qp se puede hacer a nivel de un cuadro, GOB o MB.
z Umbral de detección de movimiento. Decide si un MB en un
cuadro P es codificado o saltado (COD=1)
„ Si aumentamos el umbral Æ el encoder se hace menos sensible al
movimiento Æ Pocos MB se codifican Æ Reducimos la tasa de bits.
z Umbral de codificación INTRA de un MB
MB. Decide si un MB es
codificado como INTRA (Mayor tasa de bits) o INTER.
7
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
2.1 Cuantización variable.
‰ El mecanismo de control de flujo más utilizado es:
z Ajuste del valor de Qp del siguiente cuadro, GOB o MB, basándose en la
ocupación actual del buffer (estado de la red).
‰ Sin embargo, estos mecanismos ofrecen resultados no
p ede ibles y/o
predecibles
/o fluctuaciones
fl t a iones severas
se e as del bit
bitrate:
ate
z Los distintos umbrales de cuantización
(valores Qp) no afectan de forma lineal
al bitrate de salida
z El contenido de vídeo puede afectar a la
cantidad de bits necesarios p
para codificar
un frame.
‰ Para producir un bitrate estable es
necesario emplear algoritmos más
complejos, incorporando en muchos casos tanto feedback
(buffer-based) como feed-forward control.
‰ Un ejemplo:
z TM5 Rate control algorithm (MPEG-2, H.263, …) Æ Buffer-based
„ http://www.mpeg.org/MPEG/MSSG/tm5/Overview.html
htt //
/MPEG/MSSG/t 5/O
i
ht l
8
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
TM5 rate control algorithm (I).
‰ Mecanismo que controla el bitrate calculando de forma
p
el valor de Qp para
p
cada MB.
adaptativa
‰ Tres pasos:
z Paso 1: Estimación de la tasa de bits objetivo para el siguiente
cuadro.
d
„ Se realiza antes de codificar el cuadro
„ Estima de la complejidad global, X, del siguiente cuadro (I, P o B)
donde S indica el número de bits requeridos
X i , p ,b = Si , p ,b × Qi , p ,b para codificar el cuadro anterior, y Q es el
valor de cuantización medio de todos los MBs
„ El número
ú
de bits para el siguiente cuadro, T, se calcula en base al número
ú
de bits disponible para el resto del GOP actual, R, y a la complejidad.
„ R se actualiza tras codificar cada frame (inicialmente R = 0)
– Si es el primer cuadro de un GOP (INTRA o I-frame):
R=
bitrate × N p ,b
FrameRate
– Sino (cuadros P y B)
9
R = R − S i , p ,b
+R
donde Np,b es el número de cuadros P y B que faltan por
codificar en el GOP
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
TM5 rate control algorithm (II).
z Paso 2: Cálculo del valor Qp de referencia para todos los MBs del
cuadro (rate control)
„ Esta basado en la idea de un buffer virtual. Antes de codificar el MBj (j>= 1),
se calcula el nivel de llenado del buffer virtual (del cuadro actual I, P o B).
d
i , p ,b
j
=d
i , p ,b
0
+ B j −1 −
Ti , p ,b × ( j − 1)
MB_cnt
d0 es el valor inicial de llenado del buffer
Bj es el número de bits generados al codificar los
MBs del cuadro hasta el MBj (incluido este)
dj es el valor
a o de
d llenado
ado del
d buffer
bu
al
a codificar
od a el MBj
„ El valor final del buffer virtual (dji,p,b cuando j=MB_Cnt) se utiliza como valor
de llenado inicial para el siguiente cuadro del mismo tipo.
„ A continuación se calcula el valor de referencia del cuantizador Qj para MBj:
d j × 31
Qj =
bitrate
2×
2×
framerate
z Paso 3: Determinación del valor del cuantizador (mquantj) de
MBj.
„ Cálculo de la actividad espacial de MBj:
10
– Usando el valor de los pixels originales de los cuatro bloques de 8x8 de luminancia
(n=1..4) y los cuatro bloques de 8x8 de luminancia de los pixels organizados por
campos (n=5..8)
( 5 8)
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
TM5 rate control algorithm (III).
act j = 1 + min (vblk1 , vblk 2 ,..., vblk8 )
(
1 64 n
vblk n = × ∑ Pk − P_mean n
64 k =1
)
2
1 64 n
P_mean n = × ∑ Pk = DCn
64 k =1
Pkn son los valores de los pixels en el enésimo bloque de 8x8
Vblkn corresponde
d a la
l varianza
i
de
d los
l pixels
i l del
d l enésimo
é i
bloque
bl
de
d 8x8
8 8
Actj es la actividad espacial del MBj
„ A continuación
ti
ió se normaliza
li la
l actividad
ti id d espacial:
i l
N act j =
N_act
(2 × act ) + avg_act
j
act j + (2 × avg_act )
avg_act es el valor medio de actj en el último cuadro codificado (para el
primer cuadro se asigna el valor de 400).
„ Por último, calcula el valor del cuantizador (mquantj) para MBj:
mquant j = Q j × N_act j
„ El valor de mquantj se recorta para que entre en el intervalo [1,31] y se
utilice como valor de cuantización de MBj.
11
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
12
Feed-forward rate control.
‹ En
feed-forward el parámetro de cuantificación se calcula
en función de los bits necesarios para codificar el error de
predicción del cuadro actual.
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
1
3
2.2 Control de flujo: Resolución reducida.
‰ Para aplicaciones donde se requieren bajas tasas de bits y no
es suficiente con la cuantificación variable
variable.
‰ Submuestrear cada macrobloque de error antes de codificarlo
y realizar la operación inversa (interpolando) en el
decodificador.
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
1
4
2.2 Control de flujo: Resolución reducida (2).
‰ Ejemplo de decodificador H.263 con procesamiento de
resolución reducida
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
2.3 Control de flujo: Codificación multinivel.
‰ El stream de salida esta formado por un número de
codificaciones a distintos niveles de tasa de bits,
bits cuadros por
segundo y/o resolución.
‰ Nivel Básico + Niveles de mejora.
‰ Ejemplo H.261 con dos niveles sobre ATM (1992)
z Básico
á o a muy
uy baja tasa
a a de
d bits
b
z Mejora Æ diferencias con original
‰ Ejemplo
j p H.263 con dos niveles (1999)
(
)
z Básico Æ QCIF a f/s
z Mejora Æ CIF a 2 x f/s
‰ MPEG-4 soporta multinivel
1
5
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
1
6
2.3 Control de flujo: Codificación multinivel (2).
‰ Ejemplo de MPEG-4, escalabilidad temporal, Qp=cte
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
1
7
3. Transcodificación.
‰ Operaciones necesarias para la conversión de un stream
de vídeo comprimido de unas características a otras
(homogénea) o de una sintaxis a otra (hetereogénea).
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
Transcodificación Homogénea.
‰ Reducción de bitrate, frame rate y/o resolución sin
cambiar el formato (sin cambios de sintaxis)
‰ Ejemplos:
Ej
l
Multi-videoconferencia,
M lti id
f
i VoD
V D
‰ Diferencia con utilizar decodificador+codificador en
cascada
1
8
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
1
9
Transcodificación Homogénea (2).
‰ Reducción del bitrate:
z Requantización escalar
z Requantización vectorial (LVQ), mayor calidad pero incompatible
con MPEG
z Transcodificación de bucle abierto
z Transcodificador mejorado
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
2
0
Transcodificación Homogénea (3).
‰ Reducción del framerate:
z Eliminación de frames Æ recalcular vectores de movimiento
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
Transcodificación Homogénea (4).
‰ Reducción de la resolución:
z Filtro de submuestreo
z Ejemplo: CIF Æ QCIF cada cuatro MB pasan a uno
z Submuestreo en DCT
2
1
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
2
2
Transcodificación Hetereogénea.
‰ La transcodificación de vídeo hetereogénea es un
algoritmo que realiza conversiones de la sintaxis de vídeo
en el dominio comprimido.
z Ajuste
j
de las cabeceras de los frames
z Traducción de los datos de vídeo de una sintaxis a otra.
z Ajustes de los bits de relleno para cumplir los requisitos de
sincronización
i
i ió de
d los
l distintos
di ti t estandares.
t d
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
2
3
4. Protección y ocultación de errores.
‰ Los datos de vídeo codificados son muy sensitivos a la
pérdida de información y a los errores de bit del canal.
canal
‰ La calidad del video se degrada enormemente ante
canales de altos BER a no ser que empleemos
mecanismos de control de errores.
predicciones espacial
p
y temporal
p
de las secuencias de
‰ Las p
vídeo aumentan la vulnerabilidad.
‰ Esquemas de gestión de errores deben situarse en
codificador y decodificador
‰ No es factible la retransmisión del vídeo erróneo debido a
los requisitos de tiempo real
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
4. Protección y ocultación de errores (2).
‰ Técnicas de ocultación de errores.
z Sólo interviene el decodificador en el control de errores
errores. El
codificador no añade redundancia.
z El decodificador trata de aprovechar la información que ya tiene
libre de errores de la secuencia de video ya recibida para realizar
una recuperación aproximada.
(a) Sin ocultación
(b) Zero-MV
(c) MV del frame anterior
(d) MV del frame anterior
que mejor se mueve en la
dirección del MV perdido
2
4
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
2
5
4. Protección y ocultación de errores (3).
‰ Técnicas de protección de errores
(en el codificador).
codificador)
z Inserción de códigos de corrección de
errores. Normalmente se aplican a los
códigos de longitud fija y se combinan
con otras técnicas
z Duplicación de los vectores de
movimiento.
z Refresco INTRA
z Refresco INTRA adaptativo (AIR)
AIR – Dos bloques INTRA en cada cuadro
T
Transmisión
de Datos M
Multimedia - Master IC 2
2007/2008
2
6
5. Conclusiones.
‰ Las técnicas de control de flujo nos permiten cambiar los
parámetros de calidad para conseguir un bitrate deseado
‰ Las técnicas de transcodificación nos permiten convertir
streams de vídeo para adecuar las necesidades del
receptor y del ancho de banda de la red.
‰ Las secuencias de vídeo codificado son muyy sensibles a
los errores. Se pueden utilizar técnicas de ocultación de
errores en el decodificador y codigos de redundancia y
aumento de
d bloques
bl
intra en ell codificador.
df d

Documentos relacionados