4
Exercício Deseja-se criar um frame-buffer para armazenar uma imagem high color (16 bits) por pixel de 1024 x 768 pixels. Calcule a quantidade de memória utilizada em bytes e os valores de L e b. Em seguida, calcule os endereços no frame-buffer dos pixels dados abaixo, sabendo-se que FB=8K: • (200,10) • (1003,108) (101, 7) • (17,11)

Exercício

  • Upload
    macha

  • View
    22

  • Download
    0

Embed Size (px)

DESCRIPTION

Exercício. Deseja-se criar um frame-buffer para armazenar uma imagem high color (16 bits) por pixel de 1024 x 768 pixels. Calcule a quantidade de memória utilizada em bytes e os valores de L e b. Em seguida, calcule os endereços no frame-buffer dos pixels dados abaixo, sabendo-se que FB=8K: - PowerPoint PPT Presentation

Citation preview

Page 1: Exercício

Exercício

• Deseja-se criar um frame-buffer para armazenar uma imagem high color (16 bits) por pixel de 1024 x 768 pixels. Calcule a quantidade de memória utilizada em bytes e os valores de L e b. Em seguida, calcule os endereços no frame-buffer dos pixels dados abaixo, sabendo-se que FB=8K:

• (200,10)• (1003,108)• (101, 7)• (17,11)

Page 2: Exercício

Resolução

• m = FB + [ x + Ly ] * bonde: m : é o endereço do início do pixel no FB FB: endereço inicial do Frame-Buffer L : número de pixels numa linha da imagemNeste caso, temos:• FB=8192 (8*1024 = 8K)• L=1024• b=2 (16 bits / 8 = 2 bytes)• Número de bytes ocupados = 1024 x 768 x 2 = 1.572.864 = 1.536Kb = 1,5Mbytes

Page 3: Exercício

Resultado da Execução do Script

C:\>perl fb.plFB=8192L=1024b=2Size: 1.572.864 bytesPara x= 200, y= 10 => m= 29.072Para x=1003, y=108 => m=231.382Para x= 101, y= 7 => m= 22.730Para x= 17, y= 11 => m= 30.754

Page 4: Exercício

Scriptmy $cols=1024;my $rows=768;

my $FB = 8*1024;my $L = $cols;my $b = 2;

print "FB=$FB, "L=$L\n", "b=$b\n";

print "Size: ", $cols * $rows * $b, " bytes\n";

print getAddr(200,10),"\n";print getAddr(1003,108),"\n";print getAddr(101,7),"\n";print getAddr(17,11),"\n";

sub getAddr {

my ($x,$y)=@_;

print "x=$x, y=$y\n";

my $m = $FB + ($x+$L*$y)*$b;

return $m;

}