Está en la página 1de 53

Aplicaciones Multimedia y SIMD

• Audio Digital

• Imagen Digital https://jpeg.org/

• Vídeo Digital

Arquitecturas Paralelas 85
Vídeo Digital
• En 1995, Sony con otras nueve
compañías más crearon un único estándar
para el formato DVD, Digital Video Disc o
Digital Versatile Disc.
• Mediante mejoras se pueden almacenar
4.7 GB de información en un disco del
mismo tamaño que un CD, capacidad 7
veces superior.

Arquitecturas Paralelas 86
Vídeo Digital
• Una de las primeras aplicaciones fue en el
campo del vídeo digital.
• Gracias a la técnica de compresión de
vídeo MPEG2, un único disco DVD de una
capa puede almacenar 135 minutos de
vídeo y sonido de gran calidad por cara

Arquitecturas Paralelas 87
Vídeo Digital
• Compresión sin Pérdidas, Lossless
• Compresión con Pérdidas, Lossy
• DVD PAL: 720x576 pixels por frame, 24
frames por segundo, …., ¿una hora de
vídeo?

Arquitecturas Paralelas 88
YUV o YCbCr
• Es otro modelo de color.
• 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).

Arquitecturas Paralelas 89
RGB y YUV o YCbCr
• Paso de RGB a YUV o YCbCr:

• Paso de YUV o YCbCr a RGB:

Arquitecturas Paralelas 90
RGB y YUV o YCbCr
• Se redondea a entero
• Aritmética en enteros

Arquitecturas Paralelas 91
YUV o YCbCr
• YUV ocupa 3 Bytes en memoria: 1 Byte
para Y, 1 Byte para U y 1 Byte para V
• Usada para compatibilizar el paso de la
televisión de blanco y negro a color
• Usada también por ventajas en la
compresión de imágenes y vídeo.

Arquitecturas Paralelas 92
RGB y YUV o YCbCr
• Representación RGB. • Representación YUV
o YCbCr

Arquitecturas Paralelas 93
Macrobloques y bloques

Arquitecturas Paralelas 94
Muestreo de la Croma
2 filas x 4 columnas de pixels
Compresión
con pérdidas

Arquitecturas Paralelas 95
Muestreo de la Croma

By Stevo-88 - Own work, Public Domain, https://commons.wikimedia.org/w/index.php?curid=10942363


Arquitecturas Paralelas 96
Compresión de imagen

Con Pérdidas
Con Pérdidas 4:2:0

Sin Pérdidas
Con Pérdidas
Sin Pérdidas

Arquitecturas Paralelas 99
Compresión de imagen

Arquitecturas Paralelas 100


DCT: Discrete Cosine Transform

Arquitecturas Paralelas 101


Compresión de imagen

Arquitecturas Paralelas 102


Arquitecturas Paralelas 103
Arquitecturas Paralelas 104
Arquitecturas Paralelas 105
Compresión sin Pérdidas: RLE
• RLE o Run-Length Encoding es una forma
muy simple de compresión sin pérdidas
• Secuencias de datos con el mismo valor
son almacenadas como un único valor
más su repetición
• Muy útil en gráficos sencillos con áreas de
color plano, como iconos y logotipos.

Arquitecturas Paralelas 106


RLE
• Sea una única línea con N representando
pixel en negro y B en blanco:
BBBBBBBBBBBBNBBBBBBBBBBBBNNN
BBBBBBBBBBBBBBBBBBBBBBBBNBBB
BBBBBBBBBBB
• Comprimido con RLE queda como:
12B1N12B3N24B1N14B
• El código run-length representa el original
de 67 caracteres con tan sólo 18.

Arquitecturas Paralelas 107


Compresión sin Pérdidas: Huffman
• Técnica para la compresión de datos,
ampliamente usada y muy efectiva.
• Ejemplo: fichero con 100.000 caracteres.
Se sabe que aparecen 6 caracteres
diferentes y la frecuencia de aparición de
cada uno de ellos es:

Arquitecturas Paralelas 108


Codificación Huffman
• Solución 1: Código de longitud fija. Para 6
caracteres se necesitan 3 bits (300000 bits)

• Solución 2: Código de longitud variable en el


que los más frecuentes tienen el código más
corto. Restricción: ningún código es prefijo de
otro (224000 bits).

Arquitecturas Paralelas 109


Codificación Huffman
• Codificación: concatenar el código de cada uno
de los caracteres. Ejemplo: aabacd =
0+0+101+0+100+111 = 001010100111
• Descodificación: Fácil, ningún código es
prefijo/comienzo de otro. NO hay ambigüedad.
Ejemplo: 101011101111011100 = badadcf
¡Única posibilidad!

Arquitecturas Paralelas 110


Codificación Huffman
• Un árbol binario es una forma de
representar el código prefijo que simplifica
el proceso de descodificación:
– las hojas son los caracteres,
– el camino de la raíz a la hojas con la
interpretación 0 a la izquierda y 1 a la
derecha nos da el código de cada hoja.

Arquitecturas Paralelas 111


Codificación Huffman
• 1 f:5 e:9 c:12 b:13 d:16 a:45

• 2 c:12 b:13 14 d:16 a:45


0 1
f:5 e:9

• 3 14 d:16 25 a:45
0 1 0 1
f:5 e:9 c:12 b:13

Arquitecturas Paralelas 112


Codificación Huffman
• 3 14 d:16 25 a:45
0 1 0 1

f:5 e:9 c:12 b:13

• 4 25 30 a:45
0 1 0 1
c:12 b:13 14 d:16
0 1
f:5 e:9

Arquitecturas Paralelas 113


Codificación Huffman
• 4 25 30 a:45
0 1 0 1
c:12 b:13 14 d:16
0 1
f:5 e:9

• 5 a:45
0
55
1
25 30
0 1 0 1
c:12 b:13 14 d:16
0 1
f:5 e:9
Arquitecturas Paralelas 114
Codificación Huffman
• 6 0 100 1

a:45 55
0 1
25 30
0 1 0 1

c:12 b:13 14 d:16


0 1

f:5 e:9

Arquitecturas Paralelas 115


Descompresión de imagen
• Transformada coseno discreta inversa

Arquitecturas Paralelas 116


Arquitecturas Paralelas 118
Arquitecturas Paralelas 120
Compresión de Vídeo
• Elimina la redundancia temporal
• En una secuencia de vídeo existen una
gran similitud estre fotogramas o frames
consecutivos

Arquitecturas Paralelas 121


Tipos de Frames
• I o intraframes: los únicos frames completos en
una cadena MPEG. Contienen la información
completa de un frame.
• P o frame predicho: es un frame basado en uno
I o P anterior pero conteniendo sólo las
diferencias. Compresión 1/3 del intraframe.
• B o frame bidirecional: basado tanto en un I o P
anterior como a un I o P futuro y es el que
menos ocupa. Compresión 1/6 del intraframe.

Arquitecturas Paralelas 122


Compensación de movimiento

B frames does

Arquitecturas Paralelas 123


Tipos de Frames

A sample of MPEG GOP (N=9, M=3).

Arquitecturas Paralelas 126


Tipos de Frames

Arquitecturas Paralelas 127


Frame P

Arquitecturas Paralelas 129


Frame P

Arquitecturas Paralelas 130


Frame B

Arquitecturas Paralelas 131


Frame B

Arquitecturas Paralelas 132


Arquitecturas Paralelas 133
Arquitecturas Paralelas 134
Arquitecturas Paralelas 135
Arquitecturas Paralelas 141
Arquitecturas Paralelas 142
Motion Compensation Approach(cont.)
Block Matching--how to find the matching block?
– Matching criteria:
• In practice we couldn’t expect to find the exactly identical
matching block, instead we look for close match.
• Most motion estimation schemes look for minimum mean
square error (MMSE) between block.

1 N
MSE 
N
 n
( I
n 1
( x , y )  I '
n ( x , y )) 2

– Matching block size:


• How large the matching block will affect coding efficiency
• block size MPEG used: 16×16

Arquitecturas Paralelas 143


_mm_sad_epu8

Arquitecturas Paralelas 144


Motion Compensation Approach(cont.)
Motion Vectors
– static background is a very special case, we should consider the
displacement of the block.
– Motion vector is used to inform decoder exactly where in the
previous image to get the data.
– Motion vector would be zero for a static background.

Arquitecturas Paralelas 149


Motion Compensation Approach(cont.)
Residuals
– The differences between the block being coded and it’s best
match are known as residuals.
– The residuals maybe encoded and transmitted along with the
motion vector, so the decoder will be able to reconstruct the
block.
– We should compare the bits of transmitting the motion vector
plus the residuals with the bits of transmitting the block itself and
use the most efficient mechanism.

Arquitecturas Paralelas 150


Reordenación de Frames

Arquitecturas Paralelas 154


MPEG
• Los estándares MPEG sí definen el
formato de cómo debe quedar el vídeo
una vez codificado, frames I, P y B.
• Los estandars MPEG no definen el
proceso de codificación para llegar a esos
I, P y B.

Arquitecturas Paralelas 155


Bibliografía
• https://motorscript.com/mpeg-jpeg-compression/
• http://atc2.aut.uah.es/~nacho/AII/tema1.v3.2.pdf
• http://cesimo.ing.ula.ve/pgmsim/uploads/Main/co
mputacion-paralela.pdf
• Intel MMX for Multimedia PCs,
COMMUNICATIONS OF THE ACM January
1997/Vol. 40, No.1 pages 25-38
• http://www.tommesani.com/Docs.html
• Otras fuentes web (aparecen como enlaces a lo
largo del texto)
Arquitecturas Paralelas 156

También podría gustarte