320 likes | 552 Views
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
E N D
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
(t) x(t) + - y (t) f (t) Delta Modulation
y(t) x(t) f(t) t Delta modulation
a b c d e f a b c d e f Codificação de planos de bit
• 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 Codificação por transformação
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 sub-image boundaries.
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.
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.
Exemplos Original
Exemplos JPEG 27:1
Exemplos JPEG2000 27:1