Código de Huffman
Código de Huffman
Código aritmético
Run-Length Encoding (RLE)
Codificação preditiva
• Predictive Coding
transmit the difference between
estimate of future sample &
the sample itself.
- Delta modulation
- DPCM
- Adaptive predictive coding
- Differential frame coding
Differential Pulse Code
Modulation (DPCM)
Delta Modulation
(t)
x(t)
+
-
y (t)
f (t)

Delta modulation
y(t)
x(t)
f(t)
t
Codificação de planos de bit
abcdef
a
b
c
d
e
f
Codificação por transformação
• Transform Coding
- transform image
- code the coefficients of the transform
- transmit them
- reconstruct by inverse transform
• Benefits
- transform coeff. relatively uncorrelated
- energy is highly compacted
- reasonable robust relative to
channel errors
Padrão JPEG



"Joint Photographic Expert Group".
Voted as international standard in 1992.
Works with color and grayscale images,
e.g., satellite, medical, ...
Lossy and lossless
JPEG (intraframe)


First generation JPEG uses DCT+Run
length Huffman entropy coding.
Second generation JPEG (JPEG2000)
uses wavelet transform + bit plane
coding + Arithmetic entropy coding.
Visão geral JPEG
DCT (Discrete Cosine Transformation)
Quantization
zigzag Scan
DPCM on DC component
RLE on AC Components
Entropy Coding
Porquê DCT e não DFT
• DCT is similar to DFT, but can provide a
better approximation with fewer coefficients
• The coefficients of DCT are real valued
instead of complex valued in DFT.
• DCT reduces Gibbs effect between subimage boundaries.
Porquê DCT e não DFT
DCT
Transformada discreta de cosseno
Inversa:
Funções base DCT de 8x8
• Each 8x8 block can
be looked at as a
weighted sum of
these basis functions.
• The process of 2D
DCT is also the
process of finding
those weights.
DCT
Quantização



F'[u, v] = round ( F[u, v] / q[u, v] ). Why?
-- To reduce number of bits per sample
Example: 101101 = 45 (6 bits).
q[u, v] = 4 --> Truncate to 4 bits: 1011 =
11.
Quantization error is the main source of
the Lossy Compression.
Tabelas de quantização
Luminância
Cromaticidades
Um fator de qualidade multiplica a matriz de quantização.
Varredura Zig-Zag


Why? -- To group low frequency coefficients
in top of vector.
Maps 8 x 8 to a 1 x 64 vector.
Codifica DC com DPCM


DC component is large and varied, but
often close to previous value.
Encode the difference from previous 8 x 8
blocks -- DPCM
Codifica AC com RLE



1 x 64 vector has lots of zeros in it
Keeps skip and value, where skip is the
number of zeros and value is the next
non-zero component.
Send (0,0) as end-of-block sentinel value.
Codificação entrópica





Categorize DC values into SIZE (number of bits
needed to represent) and actual bits.
Example: if DC value is 4, 3 bits are needed.
Send off SIZE as Huffman symbol, followed by
actual 3 bits.
For AC components two symbols are used:
Symbol_1: (skip, SIZE), Symbol_2: actual bits.
Symbol_1 (skip, SIZE) is encoded using the
Huffman coding, Symbol_2 is not encoded.
Huffman Tables can be custom (sent in header)
or default.
Categorias de codificação
Size
Amplitude
-1.1
2
-3..-2,2..3
3
-7..-4,4..7
4
-15..-8,8..15
5
-31..-16,16..31
6
-63..-32,32..63
7
-127..-64,64..127
8
-255..-128,128..255
9
-511..-256,256..511
10
-1023..512,512..1023
Código de luminância
Categoria
Tamanho
Code
0
5
00
1
3
010
2
4
011
3
5
100
4
7
101
5
8
110
6
10
1110
7
12
11110
8
14
111110
9
16
1111110
10
18
11111110
11
20
111111110
Exemplo
JPEG 2000
Exemplos
Original
Exemplos
JPEG
27:1
Exemplos
JPEG2000
27:1
Download

DPCM - Impa