Document

Anuncio
Té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
Transmisión de Datos Multimedia/ATC/2004-2005
Bibliografía
[SAD02] “Compressed video
communications”
[FLU95] "Understanding networked
multimedia“
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.
Transmisión de Datos Multimedia/ATC/2004-2005

 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.

2
2. Control de flujo.
Transmisión de Datos Multimedia/ATC/2004-2005
 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..

3
Variabilidad del bitrate.
los estándares de compresión de vídeo producen de
forma natural un bitstream con tasa de bits variable.
Transmisión de Datos Multimedia/ATC/2004-2005
 Todos
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 (dicho MB se codifica con el flag COD=1). 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.

4
Variabilidad del bitrate (II).
Transmisión de Datos Multimedia/ATC/2004-2005
Codes
Layers
Variable length
Picture
Bit stuffing
ESTUF, PSTUF
Synchronization
Addresing
Quant. step size
Administrative
Spare
Group of
Blocks
Bit Stuffing
GSTUF
Synchronization
Addresing
Administrative
Quant. step size
Macroblock
Block

Administrative
Motion
DCT Coefficients
(except Intra DC
terms)
Fixed length
MCBPC,MODB,
CBPY
MVD, MVD2-4,
MVDB
TCOEFF
PSC(22), ECS(22)
TR(8), TRB(3)
PQUANT(5),DBQUANT(2)
PTYPE(13),CPM(1),PSBI(
2)
PEI(1),
PSPARE(8)
GBSC(17)
GN(5)
GSBI(2), GFID(2)
GQUANT(5)
Administrative
Quant. step size
COD(1), CBPB(6)
DQUANT(2)
DC terms of Intra
DCT Coeff.
INTRADC(8)
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.
5
Tasa de bits constante.
Transmisión de Datos Multimedia/ATC/2004-2005
 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 (feedforward).
Picture
activity
Input
Modify Encoder
Params.
Source Encoder
Buffer
status
Buffer
Output
6
Ajuste de parámetros de codificación.
Transmisión de Datos Multimedia/ATC/2004-2005
 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 VLC
El 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.
7
2.1 Cuantización variable.
 El
Transmisión de Datos Multimedia/ATC/2004-2005

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 (figura 3.5 !!)
 El contenido de vídeo puede afectar a la cantidad de bits necesarios
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:

TM5 Rate control algorithm (MPEG-2, H.263, …)  Buffer-based
 http://www.mpeg.org/MPEG/MSSG/tm5/Overview.html
8
TM5 rate control algorithm (I).
Transmisión de Datos Multimedia/ATC/2004-2005
 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
codificar el cuadro anterior, y Q es el
i , p ,b i , p,b
i , p ,b para
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)
X
=S
×Q
– Si es el primer cuadro de un GOP (INTRA o I-frame):
R=
bitrate ×N p , b
FrameRate
R
donde Np,b es el número de cuadros P y B que faltan por
codificar en el GOP
– Sino (cuadros P y B)
R=R−S i , p ,b
9
TM5 rate control algorithm (II).
Transmisión de Datos Multimedia/ATC/2004-2005

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).
T i , p ,b×
i , p ,b i , p ,b
d j =d 0 B j−1−
MB_cnt
 j−1 
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
d j ×31el valor de referencia del cuantizador Qj para MBj:
Qj=
bitrate
2×
framerate

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)
10
TM5 rate control algorithm (III).
act j =1min  vblk 1 , vblk 2 , .. . , vblk 8 
Transmisión de Datos Multimedia/ATC/2004-2005
64
2
1
n
vblk n = × ∑  P k −P_mean n 
64 k =1
64
1
P_mean n= × ∑ P nk =DC n
64 k =1
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:
N_act j
2×act j  avg_act

=
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
2.2 Control de flujo
Transmisión de Datos Multimedia/ATC/2004-2005
 Resolución
Reducida
 Codificación Multinivel
 Protección y ocultación de errores
 Transcodificación
12
Descargar