Transmisión de Datos Multimedia - Master IC 2006/2007 Técnicas para la difusión de vídeo 1....
-
Upload
maria-dolores-alvarado-sevilla -
Category
Documents
-
view
214 -
download
0
Transcript of Transmisión de Datos Multimedia - Master IC 2006/2007 Técnicas para la difusión de vídeo 1....
Transmisión de Datos Multimedia - Master IC 2006/2007Transmisión de Datos Multimedia - Master IC 2006/2007
Técnicas para la difusión de vídeoTécnicas para la difusión de vídeo
1. Introducción.
2. Control de flujo.2.1 Cuantización variable
2.2 Resolución reducida
2.3 Codificación multinivel
3. Técnicas de transcodificación.
4. Protección y ocultación de errores.
5. Conclusiones.
Bibliografía[SAD02] “Compressed video communications”[FLU95] "Understanding networked multimedia“
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
2
Introducción.
Desde el punto de vista de la red: Un stream de vídeo ha de ser “paquetizado” para su transporte. La pérdida de paquetes implica una degradación de la calidad
de vídeo que observa el destinatario. 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 el punto de vista del transporte de vídeo en sistemas y redes heterogéneos: Interoperabilidad de distintos codecs con bitstreams
incompatibles en la red heterogeneous transcoding. 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:
Las redes (i.e. Internet) tienen un comportamiento muy variable e impredecible en relación al ancho de banda disponible.
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.
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
3
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.
Para que un sistema de control de flujo funcione es 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: Cuantización variable (Variable-quantization) Resolución reducida (Reduced resolution) Codificación multinivel (Multi-layer coding) Etc..
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
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. Se fija el valor de “Qp” para obtener una calidad constante. Por contra, se puede variar el Qp (MB, GOB o Frame) para
conseguir una tasa de bits constante a costa de una variabilidad en la calidad.
La variabilidad viene fijada por la actividad espacial y temporal de la secuencia de vídeo: Un MB de un cuadro P, no se codifica si es muy similar al MB del
cuadro de referencia. Dependiendo de la cantidad de movimiento en la escena, el número de MB que NO se codifican varía Variando también el bitrate.
La correlación entre los pixels de un bloque de 8x8, dicta el número de 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.
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
5
Variabilidad del bitrate (II).
Parámetros de longitud fija y variable en un stream de vídeo H.263 La contribución de los parámetros de longitud variable en el bitrate final es
mucho mayor que los de longitud fija, a pesar de ser menos.
Codes
Layers Variable length
Fixed length
Picture Bit stuffing ESTUF, PSTUF SynchronizationAddresingQuant. step sizeAdministrative Spare
PSC(22), ECS(22)TR(8), TRB(3)PQUANT(5),DBQUANT(2)PTYPE(13),CPM(1),PSBI(2)PEI(1), PSPARE(8)
Group of Blocks
Bit Stuffing GSTUF SynchronizationAddresingAdministrative Quant. step size
GBSC(17)GN(5)GSBI(2), GFID(2)GQUANT(5)
Macroblock
Administrative Motion
MCBPC,MODB, CBPYMVD, MVD2-4, MVDB
Administrative Quant. step size
COD(1), CBPB(6)DQUANT(2)
Block DCT Coefficients (except Intra DC terms)
TCOEFF DC terms of Intra DCT Coeff.
INTRADC(8)
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
6
Tasa de bits constante.
Cuando al red ofrece un servicio de transporte de tipo CBR (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. 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 es ajustar sus parámetros de configuración en función de la ocupación del buffer (feedback control).
Por otro lado, también podemos regular el flujo con información acerca de la actividad del frame actual (feed-forward).
Source Encoder Buffer
Modify EncoderParams.
Input
Picture activity
Buffer status
Output
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
7
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: Tasa de cuadros (frame rate) Sólo usado cuando la calidad
de cada cuadro no puede degradarse. Codificar sólo una parte del bloque de coeficientes (i.e. solo
coeff. de baja frecuencia). El coeff. DC siempre debe estar presente.
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 VLCEl ajuste de Qp se puede hacer a nivel de un cuadro, GOB o MB.
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. Umbral de codificación INTRA de un MB. Decide si un MB es
codificado como INTRA (Mayor tasa de bits) o INTER.
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
8
2.1 Cuantización variable.
El mecanismo de control de flujo más utilizado es: 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
predecibles y/o fluctuaciones severas del bitrate: Los distintos umbrales de cuantización
(valores Qp) no afectan de forma lineal al bitrate de salida
El contenido de vídeo puede afectar a lacantidad de bits necesarios para codificarun 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: TM5 Rate control algorithm (MPEG-2, H.263, …) Buffer-based
http://www.mpeg.org/MPEG/MSSG/tm5/Overview.html
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
9
TM5 rate control algorithm (I).
Mecanismo que controla el bitrate calculando de forma adaptativa el valor de Qp para cada MB.
Tres pasos: Paso 1: Estimación de la tasa de bits objetivo para el
siguiente cuadro. 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 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):
donde Np,b es el número de cuadros P y B que faltan por codificar en el GOP
– Sino (cuadros P y B)
bpibpibpi QSX ,,,,,,
RN
R bp
FrameRate
bitrate ,
bpiSRR ,,
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
10
TM5 rate control algorithm (II).
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).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 de llenado del buffer al codificar 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:
Paso 3: Determinación del valor del cuantizador (mquantj) de MBj. Cálculo de la actividad espacial de MBj:
– 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)
MB_cnt
1,,1
,,0
,,
jTBdd bpij
bpibpij
frameratebitrate
2
31
j
j
dQ
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
11
TM5 rate control algorithm (III).
Pkn son los valores de los pixels en el enésimo bloque de 8x8
Vblkn corresponde a la varianza de los pixels del enésimo bloque de 8x8
Actj es la actividad espacial del MBj
A continuación se normaliza la actividad espacial:
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:
El valor de mquantj se recorta para que entre en el intervalo [1,31] y se utilice como valor de cuantización de MBj.
821 ,...,,min1 vblkvblkvblkact j
64
1
2P_mean
64
1
kn
nkn Pvblk
nk
nkn DCP
64
164
1P_mean
avg_act2
avg_act2N_act
j
jj act
act
jjj Qmquant N_act
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
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.
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
13
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.
Submuestrear cada macrobloque de error antes de codificarlo y realizar la operación inversa (interpolando) en el decodificador.
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
14
2.2 Control de flujo: Resolución reducida (2).
Ejemplo de decodificador H.263 con procesamiento de resolución reducida
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
15
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, cuadros por segundo y/o resolución.
Nivel Básico + Niveles de mejora. Ejemplo H.261 con dos niveles sobre ATM (1992)
Básico a muy baja tasa de bits Mejora diferencias con original
Ejemplo H.263 con dos niveles (1999) Básico QCIF a f/s Mejora CIF a 2 x f/s
MPEG-4 soporta multinivel
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
16
2.3 Control de flujo: Codificación multinivel (2).
Ejemplo de MPEG-4, escalabilidad temporal, Qp=cte
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
17
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).
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
18
Transcodificación Homogénea.
Reducción de bitrate, frame rate y/o resolución sin cambiar el formato (sin cambios de sintaxis)
Ejemplos: Multi-videoconferencia, VoD Diferencia con utilizar decodificador+codificador
en cascada
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
19
Transcodificación Homogénea (2).
Reducción del bitrate: Requantización escalar Requantización vectorial (LVQ), mayor calidad pero
incompatible con MPEG Transcodificación de bucle abierto
Transcodificador mejorado
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
20
Transcodificación Homogénea (3).
Reducción del framerate: Eliminación de frames recalcular vectores de
movimiento
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
21
Transcodificación Homogénea (4).
Reducción de la resolución: Filtro de submuestreo Ejemplo: CIF QCIF cada cuatro MB pasan a uno
Submuestreo en DCT
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
22
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. Ajuste de las cabeceras de los frames Traducción de los datos de vídeo de una sintaxis a otra. Ajustes de los bits de relleno para cumplir los requisitos
de sincronización de los distintos estandares.
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
23
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.
La calidad del video se degrada enormemente ante canales de altos BER a no ser que empleemos mecanismos de control de errores.
Las predicciones espacial y temporal de las secuencias de 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
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
24
4. Protección y ocultación de errores (2).
Técnicas de ocultación de errores. Sólo interviene el decodificador en el control de errores.
El codificador no añade redundancia. 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
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
25
4. Protección y ocultación de errores (3).
Técnicas de protección de errores (en el codificador). 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
Duplicación de los vectores de movimiento.
Refresco INTRA Refresco INTRA adaptativo (AIR)
AIR – Dos bloques INTRA en cada cuadro
Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7Tra
nsm
isió
n d
e D
ato
s M
ult
imed
ia -
Mast
er
IC 2
00
6/2
00
7
26
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 muy sensibles a los errores. Se pueden utilizar técnicas de ocultación de errores en el decodificador y codigos de redundancia y aumento de bloques intra en el codificador.