Você está na página 1de 14

Transformada Discreta do Cosseno

Hugo Vieira Neto (UTFPR)

Hugo Vieira Neto

UTFPR

17 de maio de 2010

Transformada Discreta do Cosseno

17 de maio de 2010 1 / 14
17 de maio de 2010
1 / 14

Transformada Discreta do Cosseno

A Transformada Discreta do Cosseno (DCT) e´ utilizada no padrao˜

JPEG de compressao˜

psicovisual (com perdas), num processo conhecido como codificac¸ao˜ por transformadas.

de imagens para a explorac¸ao˜

da redundanciaˆ

No padrao˜

mapeia os pixels da imagem para um espac¸o de coeficientes mais

compacto e em seguida faz uso de uma etapa de quantizac¸ao˜

coeficientes, antes de submete-losˆ

bitstream (ordenac¸ao˜

JPEG, o processo de codificac¸ao˜

por transformadas

desses

ao processo de gerac¸ao˜

por entropia).

final do

zig-zag e codificac¸ao˜

Hugo Vieira Neto (UTFPR)

Transformada Discreta do Cosseno

17 de maio de 2010 2 / 14
17 de maio de 2010
2 / 14

Transformada Discreta do Cosseno

Transformada direta (8 × 8): FDCT{f (x, y)} = F (u, v )

1

F(u, v) = 4 C(u)C(v)

7

7

x=0 y=0

f (x, y ) cos (2x + 1)uπ

16

cos (2y + 1)vπ

16

Transformada inversa (8 × 8): IDCT{F (u, v )} = f (x, y )

f(x, y) = 1

4

7

7

x=0 y=0

C(u)C(v )F (u, v ) cos (2x + 1)uπ

16

Onde: C(z) =

1 se z = 0

2

1

se z

= 0

cos (2y + 1)vπ

16

Hugo Vieira Neto (UTFPR)

Transformada Discreta do Cosseno

17 de maio de 2010 3 / 14
17 de maio de 2010
3 / 14

Padrao˜

de Ordenac¸ao˜

Zig-zag

✲ ✲ ✲ ✲ F00 F01 F02 F03 F04 F05 F06 F07 ✠ ✒ ✠
F00
F01
F02
F03
F04
F05
F06
F07
F10
F11
F12
F13
F14
F15
F16
F17
F20
F21
F22
F23
F24
F25
F26
F27
F30
F31
F32
F33
F34
F35
F36
F37
F40
F41
F42
F43
F44
F45
F46
F47
F50
F51
F52
F53
F54
F55
F56
F57
F60
F61
F62
F63
F64
F65
F66
F67
F70
F71
F72
F73
F74
F75
F76
F77

Hugo Vieira Neto (UTFPR)

Transformada Discreta do Cosseno

17 de maio de 2010 4 / 14
17 de maio de 2010
4 / 14

Padrao˜

de Ordenac¸ao˜

Zig-zag

F00 = coeficiente DC F01 a F77 = coeficientes AC

Os 63 coeficientes AC de cada bloco sao˜

visando otimizar a etapa de codificac¸ao˜

Huffman). Essa reordenac¸ao˜

frequencia,ˆ

antes dos coeficientes de alta frequencia.ˆ

representam os valores medios´ codificados por meio de tecnicas´

reordenados em zig-zag por entropia (intermediaria´

+

coloca os coeficientes de baixa

com maior probabilidade de serem diferentes de zero,

Ja´ os coeficientes DC, que

de cada bloco de 64 pixels, sao˜ preditivas, devido a` forte correlac¸ao˜

existente entre os coeficientes DC de blocos adjacentes:

Hugo Vieira Neto (UTFPR)

DIFF = DC i DC i1

Transformada Discreta do Cosseno

17 de maio de 2010 5 / 14
17 de maio de 2010
5 / 14

Codificador Baseline JPEG

Codificador Baseline JPEG Imagem Original (Blocos 8x8) ✲   ✲   ✲   ✲   FDCT

Imagem Original

(Blocos 8x8)

 

 

 

 

FDCT

 

Quantizador

 

Codificador

 
 

 

Tabela de

 

Tabela de

 

Quantizac¸ao˜

Codificac¸ao˜

01101000
01101000

Dados Comprimidos

(Bitstream)

Hugo Vieira Neto (UTFPR)

Transformada Discreta do Cosseno

17 de maio de 2010 6 / 14
17 de maio de 2010
6 / 14

Codificador Baseline JPEG Monocromatico´

1

Adic¸ao˜

de linhas e colunas (multiplos´

de 8*)

2 Deslocamento dos valores dos pixels:

[0, 255] [128, 127]

3 Calculo´

4 Quantizac¸ao:˜

da Transformada do Cosseno Direta

F(u, v) F Q (u, v ) = round Q(u, v) 5 Ordenac¸ao˜ zig-zag 6
F(u, v)
F Q (u, v ) = round
Q(u, v)
5 Ordenac¸ao˜
zig-zag
6 Codificac¸ao˜ intermediaria´
7
Codificac¸ao˜
de Huffman
Hugo Vieira Neto (UTFPR)
Transformada Discreta do Cosseno
17 de maio de 2010
7 / 14

Codificador Baseline JPEG Policromatico´

Alem´

JPEG policromatica´

cor das imagens, isto e,´ em um codificador policromatico´

realizadas as seguintes etapas adicionais antes da Transformada do Cosseno direta:

das etapas descritas anteriormente, a codificac¸ao˜

baseline

necessita tratar adequadamente a informac¸ao˜

de

devem ser

1 do espac¸o de cores RGB para o espac¸o de cores

Conversao˜

YCbCr

2 Subamostragem dos canais de crominanciaˆ

(4:1:1)

*No caso de imagens policromaticas,´

deve resultar em dimensoes˜ subamostragem 4:1:1

multiplas´

a adic¸ao˜

de linhas e colunas

de 16, devido ao uso da

Hugo Vieira Neto (UTFPR)

Transformada Discreta do Cosseno

17 de maio de 2010 8 / 14
17 de maio de 2010
8 / 14

Codificador Baseline JPEG Policromatico´

Sao˜

para os canais de luminanciaˆ

objetivo de otimizar ao maximo´

utilizadas tabelas de quantizac¸ao˜

e de codificac¸ao˜

diferenciadas

(Y) e crominanciaˆ

(Cb e Cr), com o

obtido.

o fator de compressao˜

O bitstream e´ codificado na forma de uma sequenciaˆ (minimum coded units), intercalando as informac¸oes˜ e Cr para cada bloco da imagem.

de MCUs dos canais Y, Cb

Hugo Vieira Neto (UTFPR)

Transformada Discreta do Cosseno

17 de maio de 2010 9 / 14
17 de maio de 2010
9 / 14

Recapitulac¸ao˜

– Projeto Final de PDI

Implementar uma func¸ao˜

arquivos JFIF (Baseline JPEG) de imagens em cores a partir de matrizes genericas:´

imwrite para o Octave capaz de gerar

imwrite(A, ’imagem.jpg’, q)

A func¸ao˜

selec¸ao˜

devera´ obrigatoriamente receber um parametroˆ

(qualidade) da imagem

do grau de compactac¸ao˜

de

No estagio´

novamente a documentac¸ao˜

atual do desenvolvimento do projeto, e´ important´ıssimo ler

dispon´ıvel (referenciasˆ

bibliograficas)´

Hugo Vieira Neto (UTFPR)

Transformada Discreta do Cosseno

17 de maio de 2010 10 / 14
17 de maio de 2010
10 / 14

O que ja´ foi feito (Praticas´

1 e 2)

Imagem RGB de Entrada (H × W )

Hugo Vieira Neto (UTFPR)

Ajuste de

 

Dimensoes˜

 

(imfill)

 

 

Conversao˜ RGB para YCbCr

(rgb2ycbcr)

 

 

Subamostragem

4:1:1

(imdec411)

Imagem RGB (M × N)

Imagem YCbCr (M × N)

Componente Y (M × N)

Componente Cb (M/2 × N/2)

Componente Cr (M/2 × N/2)

Transformada Discreta do Cosseno

17 de maio de 2010 11 / 14
17 de maio de 2010
11 / 14

O que deve ser feito agora (Pratica´

7)

Componente (Y, Cr ou Cr)

Tabela de Quantizac¸ao˜

/ crominancia)ˆ

(luminanciaˆ

Divisao˜

em

 
 

Blocos 8 × 8

 

Blocos de pixels

 

Transformada

 

Discreta do

Cosseno

 

   
 

Quantizac¸ao˜

 

 

Ordenador

Zig-zag

 

Blocos de coeficientes

Blocos quantizados

Blocos ordenados (Y, Cb ou Cr)

Hugo Vieira Neto (UTFPR)

Transformada Discreta do Cosseno

17 de maio de 2010 12 / 14
17 de maio de 2010
12 / 14

O que deve ser feito em seguida (Pratica´

8)

Blocos ordenados (Y, Cb ou Cr)

Tabelas de Huffman

/ crominancia)ˆ

(DC / AC, luminanciaˆ

Informac¸oes˜

(dimensoes,˜

adicionais

tabelas, etc.)

Codificac¸ao˜

 

Intermediaria´

(×3)

 

Blocos RLE

Codificac¸ao˜

 

de Huffman

(×3)

 

Blocos Huffman

Organizador

 

de MCU

 

Organizador

JFIF

 

Blocos MCU (4 × Y + Cb + Cr) = bitstream

Arquivo JPEG/JFIF

Hugo Vieira Neto (UTFPR)

Transformada Discreta do Cosseno

17 de maio de 2010 13 / 14
17 de maio de 2010
13 / 14

Conclusao˜

Estes slides nao˜

recomendada (Wallace, 1992; CCITT, 1993; Hamilton, 1992)

Nao˜ sera´ necessaria´

dispensam a consulta direta a` bibliografia

a entrega do relatorio´

referente a` pratica´

7

Hugo Vieira Neto (UTFPR)

Transformada Discreta do Cosseno

17 de maio de 2010 14 / 14
17 de maio de 2010
14 / 14