Vous êtes sur la page 1sur 12

UNIVERSIDAD TECNOLOGICA NACIONAL

FACULTAD REGIONAL BUENOS AIRES


Ingeniería en Sistemas de Información

T EORÍA   DE  C ONTROL
Compresión de video MPEG

0
COMPRESIÓN DE VIDEO 
INTRODUCCIÓN

El Moving Pictures Experts Group (MPEG), es la designación para un grupo de estándares de


codificación de audio y vídeo acordado por MPEG (grupo de expertos en imágenes en
movimiento), y publicados como estándar ISO 13818. MPEG es por lo general usado para
codificar audio y vídeo para señales de transmisión, que incluyen televisión digital terrestre, por
satélite o cable.

El MPEG se basa en dos conceptos:

 Compresión JPEG: Cada fotograma o campo entrelazado de una secuencia de vídeo digital es
comprimida por separado como una imagen JPEG.

 Redundancia temporal: En muchas secuencias de video, varias de las escenas son fijas o
varían muy poco. Cuando sólo se mueven los labios del actor, casi los únicos píxeles que se
van a modificar de una imagen a la otra son los de la boca; por lo tanto, es suficiente describir
el cambio de una imagen a la otra. Esta es la principal diferencia entre MPEG (Moving
Pictures Experts Group, Grupo de expertos en imágenes en movimiento) y M-JPEG.

El grupo MPEG se creó en 1988 con el fin de desarrollar estándares internacionales de compresión,
descompresión, procesamiento y codificación de imágenes animadas y datos de audio.

MPEG-1

El MPEG-1, desarrollado en 1988, es un estándar de compresión de datos de video y de los canales de


audio asociados (hasta 2 canales para sonido estéreo). Permite almacenar videos a una
velocidad de 1,5 Mbps con una calidad cercana a la de las cintas VHS en un soporte de CD
denominado VCD (CD de video).

El estándar MPEG-1 representa cada imagen como un conjunto de bloques de 16 X 16. Permite
obtener una resolución de:

 352 x 240 a 30 imágenes por segundo en NTSC

 352 x 288 a 25 imágenes por segundo en PAL/SECAM

El MPEG-1 permite codificar videos a través de varias técnicas:

I-PICTURE

1
Estas imágenes se codifican usando únicamente la codificación JPEG, sin tener en cuenta las
imágenes que las rodean. Dichas imágenes son necesarias en un video MPEG porque aseguran la
cohesión de imágenes; son especialmente útiles para el flujo de video que se puede cambiar a gusto
en cualquier momento (televisión) y son esenciales en el caso de cualquier error de recepción. Por lo
tanto, en un video MPEG hay una o dos de estas por segundo.

P-PICTURE
Estas imágenes se describen por su diferencia en relación con la imagen precedente. El codificador
busca las diferencias de la imagen comparada con la imagen precedente y define bloques, llamados
macrobloques (16 x 16 píxeles), que se superponen a la imagen precedente.

El algoritmo compara ambas imágenes bloque por bloque y, partiendo de un umbral de cierta
diferencia, considera que el área de la imagen precedente sea diferente de la imagen en progreso y le
aplica una compresión JPEG.

Lo que determina la velocidad de la codificación es la búsqueda de macrobloques, porque cuantos


más bloques "buenos" busque el algoritmo, más tiempo pierde.

A diferencia de los marcos I (comprimidos directamente), los marcos P requieren que la imagen
precedente siempre esté en la memoria.

B-PICTURE
Al igual que los marcos P, los marcos B se basan en diferencias con respecto a la imagen de referencia,
excepto que en el caso de los marcos B, esta diferencia se puede llevar a cabo ya sea en la imagen
precedente (como en el caso de los marcos P) o en la siguiente, lo que permite una mejor
compresión. Pero en este caso se genera un retraso (porque es necesario conocer la imagen
siguiente) y se requiere mantener tres imágenes en la memoria (la precedente, la actual y la
siguiente).

FUNCIONAMIENTO
Los primeros cuadros de una secuencia de vídeo se codifican de modo I-picture, sin ninguna
referencia respecto a anteriores o futuros cuadros. Los siguientes cuadros se codifican usando
predicción intercuadro (P-picture). La predicción se basa en los datos del cuadro codificado
inmediatamente anterior, ya sea I-picture o P-picture.

Cada cuadro es dividido en macrobloques no solapados, y cada macrobloque contiene bloques de


datos de luminancia y crominancia (cuatro bloques de luminancia, Y1, Y2, Y3, Y4, y dos de
crominancia, U y V), cada uno de tamaño 8*8 pixels.

En el codificador se aplica la DCT a cada uno de los bloques de crominancia y luminancia. Se obtienen
a la salida los bloques de 64 coeficientes DCT, que son cuantificados uniformemente. El escalón de
cuantificación empleado es transmitido al receptor.

Después de la cuantificación, el coeficiente DCT más pequeño (coeficiente DC) se procesa de forma
diferente a los restantes (coeficientes AC).

2
El coeficiente DC representa la intensidad media del bloque en cuestión y se codifica usando una
técnica de predicción diferencial (debido a la fuerte correlación entre coeficientes DC de bloques
adyacentes, se codifica la diferencia entre el del bloque anterior y el actual).

El resto de coeficientes son barridos en zig-zag y codificados según un código VLC (variable lenght
code). Esta técnica transforma la imagen en dos dimensiones en una ristra de bits de una dimensión.
En el barrido se detectan los valores de los coeficientes AC no nulos, así como la distancia que separa
a dos consecutivos. Este par de valores se codifica con una sola palabra código (VLC).

Para la codificación de las P-pictures, el cuadro anterior es almacenado (FS, frame store) tanto en el
codificador como en el decodificador. La técnica de compensación de movimiento se aplica sobre
macrobloques, obteniendo los vectores de movimiento que son codificados y transmitidos al
receptor.

El error de predicción se calcula para cada pixel de los contenidos en el macrobloque. Se calcula
posteriormente la DCT de los bloques 8*8 que conforman el macrobloque, se cuantifican los
coeficientes obtenidos y se codifican según un código VLC. En éste proceso es necesario el uso de una
buffer para asegurar una determinada tasa binaria.

3
DESARROLLO

DIAGRAMA
regulador

Video codificado
[Y]
Video[X]
Transformaci División en Estimador de DCT cuantificador codificación buffer
ón del macrobloque movimiento vlc
Grado de espacio de s
Cuantificación color

cuantificador
(inv)

Bit de activación
predicción DCT (inv)

ENTRADAS

VIDEO [X]
La principal entrada del sistema es una secuencia de imágenes que conforman un vídeo sin
comprimir. Dicha entrada se puede interpretar como un conjunto de X bits y es del tipo escalón.

La región activa de un frame de televisión digital, según la recomendación CCIR 601, es de 720 píxeles
por 576 líneas para una velocidad de 25 Hz. Utilizando de 8 bits para cada pixel Y, U y V la tasa de bits
de un video entrelazado sin compresión es la siguiente:

720 x 576 x 25 x 8 + 360 x 288 x 25 x ( 8 + 8 ) = 124 Mbit/s

El rango aceptable para nuestro estudio será [122,126] Mbps 1

GRADO DE CUANTIFICACIÓN
Cada secuencia de bits que entra al sistema es acompañada por un número que representa el grado
de compresión. Dicho valor es utilizado por el cuantificador para determinar el ruido generado, es
decir, la calidad de la imagen.

Este valor se mide en una escala del 1 al 10, siendo 1 la peor calidad y 10 la mejor.

BIT DE ACTIVACIÓN
Esta es una entrada binaria del tipo escalón que permite activar o desactivar el proceso de predicción.
Dado el contexto que se estudia, este bit estará siempre inactivo por lo que no se tomara en cuenta el
lazo de retroalimentación correspondiente.

1
Número basado en los codificadores de MPEG-1
4
SALIDAS
La única salida del sistema es un vídeo codificado con una cantidad fija de bits. Dicha salida será
representada por Y bits.

MPEG-1 permite almacenar videos a una velocidad de 1,15 Mbps con una calidad cercana a la de las
cintas VHS en un soporte de CD denominado VCD (CD de video). Por ende, se considerará una salida
de 1.15 Mbps con un rango de aceptación de [1,1.3] Mbps 2.

REALIMENTACIÓN
La codificación de longitud variable origina un flujo de datos no constante. Para adaptarlo a canales
de transmisión con velocidad fija, se suele emplear un regulador. Por ende, la realimentación se
encuentra en el regulador que intenta generar una salida con una cantidad de bits fija Y.

El buffer de amortiguamiento se coloca entre el codificador y la salida. El buffer se llena a una tasa
variable de bits emitidos por el codificador, y se vacían a una velocidad constante por el canal. Para
evitar que el búfer de insuficiente o desbordante, el mecanismo de retroalimentación actúa para
ajustar el bit rate que entran al buffer. Por ejemplo, si el bit rate que llega de la codificación se reduce,
se aumenta el grado de cuantificación aplicado a los coeficientes de DCT3.

PERTURBACIONES
-Problemas de Seguridad: Se pueden crear o eliminar bits debido a interferencias de otros programas
sobre el área de memoria en el que se está trabajando. Esto puede deberse debido a defectos de
software.

-Desborde de buffer: Es posible que la realimentación no ajuste el bit rate con la velocidad suficiente
para que el buffer no se desborde. En estos casos se perderán datos.

-Ruido de alimentación: Los pulsos no se generan adecuadamente y no se llegan a interpretar


correctamente los bits.

DIAGRAMA FINAL
Tomando en cuenta que el lazo de realimentación pertenciente al proceso de Predicción no está
presente en el análisis del sistema dentro del contexto, y que los procesos pueden tomarse como dos
cajas negras, una antes del proceso de Regulación y otra posterior, el diagrama puede simplificarse de
la siguiente forma.

2
Número basado en reproductores de VCD

3
Ver compresión JPEG
5
Video G1 G2
Grado de Video codificado
Cuantificació
n
H

PROCESO 1
Este proceso incluye los subprocesos de transformación del espacio de color, división de macro
bloques, estimador de movimiento y DCT.

Este bloque no genera una mucha ganancia de tamaño del video, su tarea es adaptar los datos para el
siguiente componente.

G1= (1+a) siendo a una constante Real positiva y a <<1. Por ejemplo: a=0.00001

PROCESO 2
Este proceso incluye los subprocesos de cuantificación, codificación vlc y buffering.

Este bloque es el principal encargado de la digitalización y compresión de los datos.

G2= 0,0092 * 1 /( s + b ) siendo b una constante

H
Este proceso incluye el proceso de regulación.

Suponemos un H= 1/1.15 = 0.8695652173913

RESPUESTA TRANSITORIA
El proceso 2 posee internamente un buffer.
En un principio este se encuentra vacio, al comenzar su uso debe llenarse para poder comenzar a
entregar datos correctamente. Esto determina un tiempo antes de que el sistema se estabilice.

RESPUESTA ESTADO ESTABLE


Al estabilizarse el sistema la salida será 1,15 Mbps con un rango de tolerancia entre [1,1.3] Mbps

6
TRANSFERENCIA GLOBAL

ESTABILIDAD

Video codificado
G1 G2

H/G1

El sistema es de tipo 0

Si analizamos los Polos y Ceros de la salida con una entrada impulso unitario:

Por lo tanto, para que el sistema sea estable los polos deben ser Reales negativos, es decir, ”b” tiene
que ser mayor a –o.oo8

ERROR EN ESTADO ESTABLE

Si la entrada es escalón con una amplitud A, entonces:

7
CONTROLADOR

Kp G0(s)

Se suele utilizar un controlador Proporcional que genera una salida que depende directamente de la
magnitud del error en el instante en el que se considera.

El valor Kp y la banda proporcional dependerá del controlador. Dichos valores no introducen polos ni
ceros. Por ende, el controlador no afectará el comportamiento del sistema, es decir, el sistema
seguirá siendo de Tipo 0 y mantendrá su estabilidad. En cambio el error en estado estable deberá
reevaluarse.

8
Anexo - Compresión JPEG

¿QUÉ ES LA COMPRESIÓN ?
La compresión consiste en reducir el tamaño físico de bloques de información. Un compresor se vale
de un algoritmo que se utiliza para optimizar los datos al tener en cuenta consideraciones apropiadas
para el tipo de datos que se van a comprimir. Por lo tanto, es necesario un descompresor para
reconstruir los datos originales por medio de un algoritmo opuesto al que se utiliza para la
compresión.

El método de compresión depende intrínsecamente del tipo de datos que se van a comprimir: no se
comprime una imagen del mismo modo que un archivo de audio.

COMPRESIÓN JPEG
Es un algoritmo de compresión con pérdida. Esto significa que al descomprimir la imagen no
obtenemos exactamente la misma imagen que teníamos antes de la compresión.

Una de las características que hacen muy flexible el JPEG es el poder ajustar el grado de compresión.
Si especificamos una compresión muy alta se perderá una cantidad significativa de calidad, pero
obtendremos archivos de pequeño tamaño. Con una tasa de compresión baja obtenemos una calidad
muy parecida a la del original, y un archivo mayor.

El algoritmo de compresión JPEG se basa en dos defectos visuales del ojo humano, uno es el hecho de
que es mucho más sensible al cambio en la luminancia que en la crominancia, es decir, notamos más
claramente los cambios de brillo que de color. El otro es que notamos con más facilidad pequeños
cambios de brillo en zonas homogéneas que en zonas donde la variación es grande, por ejemplo en
los bordes de los cuerpos de los objetos.

PROCESO DE COMPRESIÓN
Muchas de las opciones del estándar JPEG se usan poco. Esto es una descripción breve de uno de los
muchos métodos usados comúnmente para comprimir imágenes cuando se aplican a una imagen de
entrada con 24 bits por pixel (ocho por cada rojo, verde, y azul).

1. TRANSFORMACIÓN DEL ESPACIO DE COLOR


Comienza convirtiendo la imagen desde su modelo de color RGB a otro llamado YUV ó YCbCr. Este
espacio de color es similar al que usan los sistemas de color para televisión PAL y NTSC, pero es
mucho más parecido al sistema de televisión MAC.

Este espacio de color (YUV) tiene tres componentes:

 La componente Y, o Luminancia (información de brillo), es decir, la imagen en escala de


grises.

 Las componentes U o Cb y V o Cr, respectivamente Saturación (la cantidad de blanco, o la


pureza del color) y Tono (el nombre del color propiamente dicho, o la longitud de onda
asociada); ambas señales son conocidas como crominancia (información de color).

9
El resultado es una imagen en la que la luminancia está separada de la crominancia. Durante esta fase
no hay pérdida de información.

2. SUBMUESTREO
Una opción que se puede aplicar al guardar la imagen, es reducir la información del color respecto a
la de brillo (debido al defecto en el ojo humano comentado anteriormente). Hay varios métodos: si
este paso no se aplica, la imagen sigue en su espacio de color YUV, (este submuestreo se entiende
como 4:4:4), con lo que la imagen no sufre pérdidas. Puede reducirse la información cromática a la
mitad, 4:2:2 (reducir en un factor de 2 en dirección horizontal), con lo que el color tiene la mitad de
resolución (en horizontal), y el brillo sigue intacto. Otro método, muy usado, es reducir el color a la
cuarta parte, 4:2:0, en el que el color se reduce en un factor de 2 en ambas direcciones, horizontal y
vertical. Si la imagen de partida estaba en escala de grises (blanco y negro), puede eliminarse por
completo la información de color, quedando como 4:0:0.

Las técnicas algorítmicas usadas para este paso (para su reconstrucción exactamente) suelen ser
interpolación bilineal, vecino más próximo, convolución cúbica, Bezier, b-spline y Catmun-Roll.rh

3. TRANSFORMACIÓN DISCRETA DE COSENO O DCT


En esta etapa cada componente de la imagen se divide en pequeños bloques de 8×8 píxeles, que se
procesan de forma casi independiente, de esto resulta la formación de los bloques, que se hace
notable en imágenes guardadas con altas compresiones. Si la imagen sufrió un submuestreo del color,
los colores quedarían en la imagen final en bloques de 8×16 y 16×16 pixeles, según fuese 4:2:2 o
4:2:0.

Después cada pequeño bloque se convierte al dominio de la frecuencia a través de la transformación


discreta de coseno bidimensional, abreviadamente llamada DCT.

4. CUANTIFICACIÓN
Como ya habíamos comentado, el ojo humano es muy bueno detectando pequeños cambios de brillo
en áreas relativamente grandes, pero no cuando el brillo cambia rápidamente en pequeñas áreas
(variación de alta frecuencia), esto permite eliminar las altas frecuencias, sin perder excesiva calidad
visual. Esto se realiza dividiendo cada componente en el dominio de la frecuencia por una constante
para ese componente, y redondeándolo a su número entero más cercano. Este es el proceso en el
que se pierde la mayor parte de la información (y calidad) cuando una imagen es procesada por este
algoritmo. El resultado de esto es que los componentes de las altas frecuencias, tienden a igualarse a
cero, mientras que muchos de los demás, se convierten en números positivos y negativos pequeños.

5. CODIFICACIÓN ENTRÓPICA
La codificación entrópica es una forma especial de la compresión sin pérdida de datos. Para ello se
cogen los elementos de la matriz siguiendo una forma de zig-zag, poniendo grupos con frecuencias
similares juntos, e insertando ceros de codificación, y usando la codificación Huffman para lo que
queda. También se puede usar la codificación aritmética, superior a la de Huffman, pero que rara vez
se usa, ya que está cubierta por patentes, esta compresión produce archivos un 5% menores, pero a
costa de un mayor tiempo de codificación y decodificación, esta pequeña ganancia, puede emplearse

10
también en aplicar un menor grado de compresión a la imagen, y obtener más calidad para un
tamaño parecido.

RUIDO PRODUCIDO POR LA COMPRESIÓN


El resultado tras la compresión, puede variar, en función de la agresividad de los divisores de la matriz
de cuantización, a mayor valor de esos divisores, más coeficientes se convierten en ceros, y más se
comprime la imagen. Pero mayores compresiones producen mayor ruido en la imagen, empeorando
su calidad. Una imagen con una fuerte compresión (1%-15%) puede tener un tamaño de archivo
mucho menor, pero tendrá tantas imperfecciones que no será interesante, una compresión muy baja
(98%-100%) producirá una imagen de muy alta calidad, pero, tendrá un tamaño tan grande que
quizás interese más un formato sin pérdida como PNG.

TRANSFORMACIÓN
Imagen RGB
DEL ESPACIO DE SUBMUESTREO DCT
COLOR

Imagen JPEG CODIFICACIÓN


CUANTIFICACIÓN
ENTRÓPICA

Grado de Compresión

11