Está en la página 1de 9

P

P
r
r
o
o
b
b
l
l
e
e
m
m
a
a
s
s
-
-
T
T
e
e
m
m
a
a
2
2

P Pr ro oc ce es sa ad do o M Mu ul lt ti im me ed di ia a




P
P
r
r
o
o
c
c
e
e
s
s
a
a
d
d
o
o

A
A
u
u
d
d
i
i
o
o
y
y
V
V

d
d
e
e
o
o
M
M
u
u
l
l
t
t
i
i
m
m
e
e
d
d
i
i
a
a



C Cu ur rs so o 2 20 01 11 1- -2 20 01 12 2


P Pr ro of fe es so or r: : R Ra af fa ae el l B Be er re en ng gu ue er r V Vi id da al l




Grado en Ingeniera en Sistemas de Telecomunicacin
Procesado de Audio y Vdeo / Procesado Multimedia



PAV_PMM_Tema2Problemas_ 1112_v1_00.docx - 2 - 2012 Rafael Berenguer Vidal








NDICE

1. ENUNCIADO PROBLEMAS/CUESTIONES ..................................................... 3
1.1. Compresin seal de vdeo alta velocidad ............................................................................. 3
1.2. Programacin con un procesador super-escalar .................................................................... 3
1.3. Uso de instrucciones MMX ..................................................................................................... 4
2. SOLUCIONES PROBLEMAS/CUESTIONES ................................................... 5
2.1. Compresin seal de vdeo alta velocidad ............................................................................. 5
2.2. Programacin con un procesador super-escalar .................................................................... 7
2.3. Uso de instrucciones MMX ..................................................................................................... 8




Grado en Ingeniera en Sistemas de Telecomunicacin
Procesado de Audio y Vdeo / Procesado Multimedia



PAV_PMM_Tema2Problemas_ 1112_v1_00.docx - 3 - 2012 Rafael Berenguer Vidal

1 1. . E EN NU UN NC CI IA AD DO O P PR RO OB BL LE EM MA AS S/ /C CU UE ES ST TI IO ON NE ES S
Como prctica de los conceptos estudiados en este tema, se proponen a continuacin un
conjunto de problemas. Se recomienda al alumno a resolverlos por l mismo y
posteriormente comparar sus resultados y realizacin con las soluciones que se facilitan
en el siguiente apartado.
1.1. Compresin seal de vdeo alta velocidad
Supongamos que tenemos una seal de vdeo de alta velocidad con las siguientes
caractersticas: 336 96 pxeles con un frame rate de 1200 fps. Vamos a suponer que los pxeles
los codificamos con YUV utilizando 8 bits para la luminancia y 5 bits para las crominancias.
Cul es la capacidad del dispositivo de almacenamiento requerido para almacenar un
minuto de vdeo sin comprimir? Si comprimimos este vdeo mediante un procesador estndar,
cul es el tiempo del deadline de frame? El estndar de compresin elegido divide la
imagen en bloques de 8 8. Para codificar un bloque de una componente de color, se necesitan 2048
operaciones de enteros. Qu potencia de procesador (medida en operaciones de enteros por
segundo) se requiere para poder comprimir dicho flujo de vdeo?
1.2. Programacin con un procesador super-escalar
En la siguiente figura, podemos ver un esquema de un procesador superescalar.

Explicar cul es la utilidad del bloque Reorder Buffer. Cmo se podra aprovechar este
procesador para optimizar el siguiente programa de mezcla de audio?
for (int i=0;i<longtotal;i++)
{
mezcla[i]=(audio1[i]+audio2[i])/2);
}


Grado en Ingeniera en Sistemas de Telecomunicacin
Procesado de Audio y Vdeo / Procesado Multimedia



PAV_PMM_Tema2Problemas_ 1112_v1_00.docx - 4 - 2012 Rafael Berenguer Vidal

1.3. Uso de instrucciones MMX
En la figura tenemos un esquema de funcionamiento de la instruccin UNPCKLBW del conjunto de
instrucciones MMX de un procesador Intel de 64 bits. Esta instruccin mueve datos de dos registros a
otro segn la siguiente distribucin:

Suponiendo que vamos a trabajar con datos multimedia, qu utilidad puede tener esta
instruccin? Indicar para qu tipos de datos sera interesante (sus caractersticas, qu tipo de media,
algn procesado que hiciera uso, etc.).



Grado en Ingeniera en Sistemas de Telecomunicacin
Procesado de Audio y Vdeo / Procesado Multimedia



PAV_PMM_Tema2Problemas_ 1112_v1_00.docx - 5 - 2012 Rafael Berenguer Vidal

2 2. . S SO OL LU UC CI IO ON NE ES S P PR RO OB BL LE EM MA AS S/ /C CU UE ES ST TI IO ON NE ES S
2.1. Compresin seal de vdeo alta velocidad
Supongamos que tenemos una seal de vdeo de alta velocidad con las siguientes
caractersticas: 336 96 pxeles con un frame rate de 1200 fps. Vamos a suponer que los pxeles
los codificamos con YUV utilizando 8 bits para la luminancia y 5 bits para las crominancias.
Cul es la capacidad del dispositivo de almacenamiento requerido para almacenar un
minuto de vdeo sin comprimir? Si comprimimos este vdeo mediante un procesador estndar,
cul es el tiempo del deadline de frame? El estndar de compresin elegido divide la
imagen en bloques de 8 8. Para codificar un bloque de una componente de color, se necesitan 2048
operaciones de enteros. Qu potencia de procesador (medida en operaciones de enteros por
segundo) se requiere para poder comprimir dicho flujo de vdeo?
stas son las caractersticas del vdeo indicado:

33696
1200
8 /
5 /
pxels
fps
bit luminancia
YUV
bit crominancia


As pues, el bit rate puede ser calculado fcilmente teniendo cuenta todos los factores:

33696 1200 8 25
696.729.600 696, 73
pxels frame bit
BR
frame seg pxel
bit
Mbps
seg



Dado que se nos pregunta por la capacidad de almacenamiento requerida, slo tenemos que
multiplicar este bit rate por un minuto:

10
10
30
60 4,1810
1 1
4,1810
8 2
4,862
bit
C BR seg bits
seg
Byte GByte
bit
bit Byte
GByte


El tiempo de deadline de frame consiste en el tiempo entre llegada de los frames. Indica cunto
tiempo medio dispone el procesador para comprimir un determinado frame. Si el tiempo utilizado por
el procesador es mayor del deadline, el proceso de compresin no se podr realizar en tiempo real.
Este tiempo coincidir, por tanto, con el perodo de frame:


Grado en Ingeniera en Sistemas de Telecomunicacin
Procesado de Audio y Vdeo / Procesado Multimedia



PAV_PMM_Tema2Problemas_ 1112_v1_00.docx - 6 - 2012 Rafael Berenguer Vidal

1 1
0,83
1200
dl
t seg seg ms
FR

En primer lugar necesitamos saber el nmero de bloques de la imagen:
8
8
336 pxels
96 pxels

Dado que los bloques tienen un tamao de 88 pxeles y la imagen tiene un tamao de 33696 pxeles,
sta estar, por tanto, formada por 4212 bloques, lo que hace un total de 4212=504 bloques.
Para obtener el nmero de operaciones, procedemos teniendo en cuenta el nmero de bloques, el
frame rate, la cantidad de componentes de color por frame y el nmero de operaciones para cada
bloque y componente de color:
9
504 1200 3 2048
3, 71510 3, 715
bloques frame componentes operaciones
P
frame seg bloque componente
operaciones
GOPS
seg











Grado en Ingeniera en Sistemas de Telecomunicacin
Procesado de Audio y Vdeo / Procesado Multimedia



PAV_PMM_Tema2Problemas_ 1112_v1_00.docx - 7 - 2012 Rafael Berenguer Vidal

2.2. Programacin con un procesador super-escalar
En la siguiente figura, podemos ver un esquema de un procesador superescalar.

Explicar cul es la utilidad del bloque Reorder Buffer. Cmo se podra aprovechar este
procesador para optimizar el siguiente programa de mezcla de audio?
for (int i=0;i<longtotal;i++)
{
mezcla[i]=(audio1[i]+audio2[i])/2);
}
Dado que nos piden la utilidad de un bloque de un procesador superescalar, describiremos
brevemente su funcionamiento para referirnos posteriormente al bloque en cuestin.
En un procesador superescalar es posible procesar varias instrucciones simultneamente, al
proporcionar el mecanismo del pipelining. ste consiste en que se empieza a procesar una instruccin y
antes de que sta tenga listo el resultado, el procesador empieza a procesar la otra instruccin. De
esta forma, el tiempo de ejecucin de instrucciones se reduce por el nmero de instrucciones que el
procesador es capaz de ejecutar a la vez.
Uno de los problemas que presentan estos procesadores, es que para poder aprovechar esta
funcionalidad, es necesario que las instrucciones del programa lo permitan. Es decir, que no
necesitemos el resultado de una instruccin para ejecutar la inmediatamente posterior. Si esto
ocurriese, no podramos empezar a ejecutar esta segunda instruccin hasta que no hubisemos
finalizado la anterior, con lo que no aprovecharamos el efecto superescalar descrito.
En este caso, vemos que no podramos aprovechar la potencionalidad superescalar, porque lo que
hacemos es ir sumando, de forma secuencial, una muestra de cada clip de audio y guardamos el
resultado.
Ahora bien, fijmonos que este procesador tiene dos mdulos de ejecucin. Y, por tanto, podra
realizar dos sumas de forma paralela. Por otra parte, fijmonos que las sumas del algoritmo son
independientes (no necesitamos el resultado de la suma anterior para realizar la siguiente).


Grado en Ingeniera en Sistemas de Telecomunicacin
Procesado de Audio y Vdeo / Procesado Multimedia



PAV_PMM_Tema2Problemas_ 1112_v1_00.docx - 8 - 2012 Rafael Berenguer Vidal

De esta forma, si organizamos las sumas de las muestras pares en una unidad de ejecucin y las sumas
impares (tarea del reorder buffer) la velocidad de ejecucin se duplicar:
UNIDAD A
for (int i=0;i<longtotal;i=i+2)
{ mezcla[i]=(audio1[i]+audio2[i])/2);
}
UNIDAD B
for (int i=1;i<longtotal; i=i+2)
{ mezcla[i]=(audio1[i]+audio2[i])/2);
}
2.3. Uso de instrucciones MMX
En la figura tenemos un esquema de funcionamiento de la instruccin UNPCKLBW del conjunto de
instrucciones MMX de un procesador Intel de 64 bits. Esta instruccin mueve datos de dos registros a
otro segn la siguiente distribucin:

Suponiendo que vamos a trabajar con datos multimedia, qu utilidad puede tener esta
instruccin? Indicar para qu tipos de datos sera interesante (sus caractersticas, qu tipo de media,
algn procesado que hiciera uso, etc.).
Normalmente este tipo de instrucciones estn pensadas para trabajar con datos multimedia. En este
caso vemos que lo que hace la instruccin es mover los 32 bits inferiores de dos registros de 64 bits a
otro registro. Observamos tambin que se produce en 4 grupos de 8 bits (o byte) y se realiza de forma
alternada de un registro y el otro.
Una primera utilidad es ahorrar memoria. Si tenemos datos de 32 bits que ocuparan cada uno 64 bits
(porque los registros del procesador tienen 64 bits), desperdiciaramos la mitad de la memoria. De esta
forma, podemos guardar dos datos de 32 bits en una posicin de 64 bits con lo que no se
desaprovecha memoria.


Grado en Ingeniera en Sistemas de Telecomunicacin
Procesado de Audio y Vdeo / Procesado Multimedia



PAV_PMM_Tema2Problemas_ 1112_v1_00.docx - 9 - 2012 Rafael Berenguer Vidal

No obstante, como vemos los datos quedan cruzados, Por lo que realmente esta instruccin est
pensada no para datos de 32 bits sino para datos de 8 bits (4 datos de 32 bits). O al menos un
metadato formado por 4 datos menores de 8 bits. Tras aplicar la instruccin, quedan cruzados con otro
metadato de 48 bits.
Hay diferentes aplicaciones y datos que pueden hacer uso de esta instruccin. Un tipo de media
que podra utilizar esta instruccin seran las imgenes de color a 32 bits (24 para RGB y 8 para canal
alfa). Por tanto, cada pxel necesitara 32 bits. Con esta instruccin podemos agrupar dos pxels en una
sola instruccin:

El tener los datos cruzados, podemos hacer fcilmente una transicin por fundido o cualquier otro tipo
de operador puntual entre dos imgenes. Ya que normalmente necesitamos tener los valores de los
pxels de las dos imgenes y aplicar el procesado a cada componente de color de cada pxel de
cada imagen.
Otra aplicacin (aunque no tan ptima como la anterior) sera para mezclar 4 muestras de dos canales
de audio con resolucin de 8 bits. Cada dato de 8 bits sera una de las muestras del clip de audio.




R1 R2 G1 G2 B1 B2 1 2
A1 B1 A2 B2 A3 B3 A4 B4

También podría gustarte