SlideShare a Scribd company logo
5
Most read
6
Most read
7
Most read
CS/EE 5590 / ENG 401 Special Topics
(Class Ids: 17804, 17815, 17803)
Lec 03
Entropy and Coding II
Hoffman and Golomb Coding
Zhu Li
Z. Li Multimedia Communciation, 2016 Spring p.1
Outline
 Lecture 02 ReCap
 Hoffman Coding
 Golomb Coding and JPEG 2000 Lossless Coding
Z. Li Multimedia Communciation, 2016 Spring p.2
Entropy
 Self Info of an event
= = − log Pr = =
− log	( )
 Entropy of a source
= ∑ log	( )
Conditional Entropy, Mutual Information
= , − ( )
, = + − 	 ,
Z. Li Multimedia Communciation, 2016 Spring p.3
H(X) H(Y)
I(X; Y)H(X | Y) H(Y | X)
Total area: H(X, Y)
a b c b c a b
c b a b c b a
Main application: Context
Modeling
Relative Entropy
( | = log
	
Context Reduces Entropy Example
Z. Li Multimedia Communciation, 2016 Spring p.4
x1 x2 x3
x4 x5
H(x5) > H(x5|x4,x3, x2,x1)
H(x5) > H(x5|f(x4,x3, x2,x1))
Condition reduces entropy:
Context function:
f(x4,x3, x2,x1)= sum(x4,x3, x2,x1)
getEntropy.m, lossless_coding.m
f(x4,x3, x2,x1)==100
f(x4,x3, x2,x1)<100
Context:
Lossless Coding
 Prefix Coding
 Codes on leaves
 No code is prefix of other codes
 Simple encoding/decoding
Kraft- McMillan Inequality:
 For a coding scheme with code length: l1, l2, …ln,
 Given a set of integer length {l1, l2, …ln} that satisfy above inequality,
we can always find a prefix code with code length l1, l2, …ln
Z. Li Multimedia Communciation, 2016 Spring p.5
0 1
0 1
0 1
0
10
110 111
Root node
leaf node
Internal node
2 ≤ 1
Outline
 Lecture 02 ReCap
 Hoffman Coding
 Golomb Coding and JPEG 2000 Lossless
Z. Li Multimedia Communciation, 2016 Spring p.6
Huffman Coding
A procedure to construct optimal prefix code
Result of David Huffman’s term paper in 1952 when he was a
PhD student at MIT
 Shannon  Fano  Huffman (1925-1999)
Z. Li Multimedia Communciation, 2016 Spring p.7
Huffman Code Design
 Requirement:
 The source probability distribution.
(But not available in many cases)
 Procedure:
1. Sort the probability of all source symbols in a descending order.
2. Merge the last two into a new symbol, add their probabilities.
3. Repeat Step 1, 2 until only one symbol (the root) is left.
4. Code assignment:
Traverse the tree from the root to each leaf node,
assign 0 to the top branch and 1 to the bottom branch.
Z. Li Multimedia Communciation, 2016 Spring p.8
Example
Source alphabet A = {a1, a2, a3, a4, a5}
Probability distribution: {0.2, 0.4, 0.2, 0.1, 0.1}
a2 (0.4)
a1(0.2)
a3(0.2)
a4(0.1)
a5(0.1)
Sort
0.2
merge Sort
0.4
0.2
0.2
0.2
0.4
merge Sort
0.4
0.2
0.4
0.6
merge
0.6
0.4
Sort
1
merge
Assign code
0
1
1
00
01
1
000
001
01
1
000
01
0010
0011
1
000
01
0010
0011
Z. Li Multimedia Communciation, 2016 Spring p.9
Huffman code is prefix-free
01 (a1)
000 (a3)
0010 (a4) 0011(a5)
1
000
01
0010
0011
1 (a2)
All codewords are leaf nodes
 No code is a prefix of any other code.
(Prefix free)
Z. Li Multimedia Communciation, 2016 Spring p.10
Average Codeword Length vs Entropy
 Source alphabet A = {a, b, c, d, e}
 Probability distribution: {0.2, 0.4, 0.2, 0.1, 0.1}
 Code: {01, 1, 000, 0010, 0011}
 Entropy:
H(S) = - (0.2*log2(0.2)*2 + 0.4*log2(0.4)+0.1*log2(0.1)*2)
= 2.122 bits / symbol
 Average Huffman codeword length:
L = 0.2*2+0.4*1+0.2*3+0.1*4+0.1*4 = 2.2 bits / symbol
 This verifies H(S) ≤ L < H(S) + 1.
Z. Li Multimedia Communciation, 2016 Spring p.11
Huffman Code is not unique
0.4
0.2
0.4
0.6
0.6
0.4
0
1
1
00
01
 Multiple ordering choices for tied probabilities
 Two choices for each split: 0, 1 or 1, 0
0.4
0.2
0.4
0.6
0.6
0.4
1
0
0
10
11
a
b
c
0.4
0.2
0.4
0.6
0.6
0.4
1
0
0
10
11
b
a
c
0.4
0.2
0.4
0.6
0.6
0.4
1
0
0
10
11
Z. Li Multimedia Communciation, 2016 Spring p.12
Huffman Coding is Optimal
Assume the probabilities are ordered:
 p1 ≥ p2 ≥ …… pm.
Lemma: For any distribution, there exists an optimal
prefix code that satisfies:
 If pj ≥ pk, then lj ≤ lk: otherwise can swap codewords to reduce
the average length.
The two least probable letters have the same length:
otherwise we can truncate the longer one without violating
prefix-free condition.
The two longest codewords differ only in the last bit and
correspond to the two least probable symbols. Otherwise we
can rearrange to achieve this.
 Proof skipped.
Z. Li Multimedia Communciation, 2016 Spring p.13
Canonical Huffman Code
 Huffman algorithm is needed only to compute the optimal
codeword lengths
 The optimal codewords for a given data set are not unique
 Canonical Huffman code is well structured
 Given the codeword lengths, can find a canonical Huffman
code
 Also known as slice code, alphabetic code.
Z. Li Multimedia Communciation, 2016 Spring p.14
Canonical Huffman Code
Example:
 Codeword lengths: 2, 2, 3, 3, 3, 4, 4
 Verify that it satisfies Kraft-McMillan inequality
01
100
11
000 001
1010 1011
A non-canonical example
00 01
The Canonical Tree
 Rules:
 Assign 0 to left branch and 1 to right branch
 Build the tree from left to right in increasing order of depth
 Each leaf is placed at the first available position
110100 101
10
1110 1111
111
12
1


N
i
li
Z. Li Multimedia Communciation, 2016 Spring p.15
Canonical Huffman
Properties:
 The first code is a series of 0
 Codes of same length
are consecutive: 100, 101, 110
 If we pad zeros to the right side such that all
codewords have the same length, shorter codes would
have lower value than longer codes:
0000 < 0100 < 1000 < 1010 < 1100 < 1110 < 1111
00 01
110100 101
1110 1111
 If from length n to n + 2 directly:
e.g., 1, 3, 3, 3, 4, 4
C(n+2, 1) = 4( C(n, last) + 1)
0
110100 101
1110 1111
First code
of length n+1
Last code of
length n
 Coding from length level n to level n+1:
 C(n+1, 1) = 2 ( C(n, last) + 1): append a 0 to the next available level-n code
Z. Li Multimedia Communciation, 2016 Spring p.16
Advantages of Canonical Huffman
1. Reducing memory requirement
 Non-canonical tree needs:
All codewords
Lengths of all codewords
 Need a lot of space for large table
01
100
11
000 001
1010 1011
00 01
110100 101
1110 1111
 Canonical tree only needs:
 Min: shortest codeword length
 Max: longest codeword length
 Distribution:
 Number of codewords in each level
 Min=2, Max=4,
# in each level: 2, 3, 2
Z. Li Multimedia Communciation, 2016 Spring p.17
Outline
 Lecture 02 ReCap
 Hoffman Coding
 Golomb Coding
Z. Li Multimedia Communciation, 2016 Spring p.18
Unary Code (Comma Code)
Encode a nonnegative integer n by n 1’s and a 0
(or n 0’s and an 1).
n Codeword
0 0
1 10
2 110
3 1110
4 11110
5 111110
… …
 Is this code prefix-free?
0 1
0 1
0 1
0
10
110
1110
… …
 When is this code optimal?
 When probabilities are: 1/2, 1/4, 1/8, 1/16, 1/32 …  D-adic
 Huffman code becomes unary code in this case.
 No need to store codeword table, very simple
Z. Li Multimedia Communciation, 2016 Spring p.19
Implementation – Very Efficient
Encoding:
UnaryEncode(n) {
while (n > 0) {
WriteBit(1);
n--;
}
WriteBit(0);
}
 Decoding:
UnaryDecode() {
n = 0;
while (ReadBit(1) == 1) {
n++;
}
return n;
}
Z. Li Multimedia Communciation, 2016 Spring p.20
Golomb Code [Golomb, 1966]
A multi-resolutional approach:
 Divide all numbers into groups of equal size m
o Denote as Golomb(m) or Golomb-m
 Groups with smaller symbol values have shorter codes
 Symbols in the same group has codewords of similar lengths
o The codeword length grows much slower than in unary code
0 max
m m m m
 Codeword :
 (Unary, fixed-length)
Group ID:
Unary code
Index within each group:
Z. Li Multimedia Communciation, 2016 Spring p.21
Golomb Code
rm
m
n
rqmn 




 q: Quotient,
used unary code
q Codeword
0 0
1 10
2 110
3 1110
4 11110
5 111110
6 1111110
… …
 r: remainder, “fixed-length” code
 K bits if m = 2^k
 m=8: 000, 001, ……, 111
 If m ≠ 2^k: (not desired)
bits for smaller r
bits for larger r
 m2log
 m2log
m = 5: 00, 01, 10, 110, 111
Z. Li Multimedia Communciation, 2016 Spring p.22
Golomb Code with m = 5 (Golomb-5)
n q r code
0 0 0 000
1 0 1 001
2 0 2 010
3 0 3 0110
4 0 4 0111
n q r code
5 1 0 1000
6 1 1 1001
7 1 2 1010
8 1 3 10110
9 1 4 10111
n q r code
10 2 0 11000
11 2 1 11001
12 2 2 11010
13 2 3 110110
14 2 4 110111
Z. Li Multimedia Communciation, 2016 Spring p.23
Golomb vs Canonical Huffman
Golomb code is a canonical Huffman
 With more properties
 Codewords: 000, 001, 010, 0110, 0111,
1000, 1001, 1010, 10110, 10111
 Canonical form:
From left to right
From short to long
Take first valid spot
Z. Li Multimedia Communciation, 2016 Spring p.24
 A special Golomb code with m= 2^k
 The remainder r is the fixed k LSB bits of n
n q r code
0 0 0 0000
1 0 1 0001
2 0 2 0010
3 0 3 0011
4 0 4 0100
5 0 5 0101
6 0 6 0110
7 0 7 0111
n q r code
8 1 0 10000
9 1 1 10001
10 1 2 10010
11 1 3 10011
12 1 4 10100
13 1 5 10101
14 1 6 10110
15 1 7 10111
 m = 8
Golobm-Rice Code
Z. Li Multimedia Communciation, 2016 Spring p.25
Implementation
Encoding:
GolombEncode(n, RBits) {
q = n >> RBits;
UnaryCode(q);
WriteBits(n, RBits);
}
 Decoding:
GolombDecode(RBits) {
q = UnaryDecode();
n = (q << RBits) + ReadBits(RBits);
return n;
}
Remainder bits:
RBits = 3 for m = 8
Output the lower (RBits) bits of n.
n q r code
0 0 0 0000
1 0 1 0001
2 0 2 0010
3 0 3 0011
4 0 4 0100
5 0 5 0101
6 0 6 0110
7 0 7 0111
Z. Li Multimedia Communciation, 2016 Spring p.26
Exponential Golomb Code (Exp-Golomb)
Golomb code divides the alphabet into
groups of equal size
0 max
m m m m
 In Exp-Golomb code, the group size
increases exponentially
 Codes still contain two parts:
 Unary code followed by fixed-length code
0 max
4 8 161 2
n code
0 0
1 100
2 101
3 11000
4 11001
5 11010
6 11011
7 1110000
8 1110001
9 1110010
10 1110011
11 1110100
12 1110101
13 1110110
14 1110111
15 111100000
 Proposed by Teuhola in 1978
Z. Li Multimedia Communciation, 2016 Spring p.27
Implementation
Decoding
ExpGolombDecode() {
GroupID = UnaryDecode();
if (GroupID == 0) {
return 0;
} else {
Base = (1 << GroupID) - 1;
Index = ReadBits(GroupID);
return (Base + Index);
}
}
}
n code Group
ID
0 0 0
1 100 1
2 101
3 11000 2
4 11001
5 11010
6 11011
7 1110000 3
8 1110001
9 1110010
10 1110011
11 1110100
12 1110101
13 1110110
14 1110111
Z. Li Multimedia Communciation, 2016 Spring p.28
Outline
Golomb Code Family:
 Unary Code
 Golomb Code
 Golomb-Rice Code
 Exponential Golomb Code
Why Golomb code?
Z. Li Multimedia Communciation, 2016 Spring p.29
Geometric Distribution (GD)
 Geometric distribution with parameter ρ:
 P(x) = ρx (1 - ρ), x ≥ 0, integer.
 Prob of the number of failures before the first success in a series of
independent Yes/No experiments (Bernoulli trials).
 Unary code is the optimal prefix code for geometric distribution
with ρ ≤ 1/2:
 ρ = 1/4: P(x): 0.75, 0.19, 0.05, 0.01, 0.003, …
 Huffman coding never needs to re-order  equivalent to unary code.
 Unary code is the optimal prefix code, but not efficient
( avg length >> entropy)
 ρ = 3/4: P(x): 0.25, 0.19, 0.14, 0.11, 0.08, …
 Reordering is needed for Huffman code, unary code not optimal prefix code.
 ρ = 1/2: Expected length = entropy.
 Unary code is not only the optimal prefix code, but also optimal among all
entropy coding (including arithmetic coding).
Z. Li Multimedia Communciation, 2016 Spring p.30
Geometric Distribution (GD)
Geometric distribution is very useful for image/video compression
Example 1: run-length coding
 Binary sequence with i.i.d. distribution
 P(0) = ρ ≈ 1:
 Example: 0000010000000010000110000001
 Entropy << 1, prefix code has poor performance.
 Run-length coding is efficient to compress the data:
or: Number of consecutive 0’s between two 1’s
o  run-length representation of the sequence: 5, 8, 4, 0, 6
 Probability distribution of the run-length r:
o P(r = n) = ρn (1- ρ): n 0’s followed by an 1.
o  The run has one-sided geometric distribution
with parameter ρ.
r
P(r)
Z. Li Multimedia Communciation, 2016 Spring p.31
Geometric Distribution
GD is the discrete analogy of the Exponential distribution
x
exf

 
)( 2
1
Two-sided geometric distribution is the discrete
analogy of the Laplacian distribution (also called
double exponential distribution)
( ) x
f x e 
 

x
f(x)
x
f(x)
Z. Li Multimedia Communciation, 2016 Spring p.32
Why Golomb Code?
Significance of Golomb code:
 For any geometric distribution (GD), Golomb code is optimal prefix
code and is as close to the entropy as possible (among all prefix
codes)
 How to determine the Golomb parameter?
 How to apply it into practical codec?
Z. Li Multimedia Communciation, 2016 Spring p.33
Geometric Distribution
Example 2: GD is a also good model for Prediction error
e(n) = x(n) – pred(x(1), …, x(n-1)).
Most e(n)’s have smaller values around 0:
 can be modeled by geometric distribution.
n
p(n)
10,
1
1
)( ||



 

 n
np
Z. Li Multimedia Communciation, 2016 Spring p.34
x1 x2 x3
x4 x5
0.2 0.3 0.2
0.2 0 0
0 0 0
Optimal Code for Geometric Distribution
 Geometric distribution with parameter ρ:
 P(X=n) = ρn (1 - ρ)
 Unary code is optimal prefix code when ρ ≤ 1/2.
 Also optimal among all entropy coding for ρ = 1/2.
 How to design the optimal code when ρ > 1/2 ?
x
P(x)
1 1
0 0
1
( ) ( ) (1 ) (1 ) (1 )
1q
mm m
qm r qm mq m
X X
r r
P q P qm r

     

 

 

       

 
 xq has geometric dist with parameter ρm.
Unary code is optimal for xq if ρm ≤ 1/2 
2log
1
m integer.possibleminimaltheis
log
1
2








m
rq xmxx 
 Transform into GD with ρ ≤ 1/2 (as close as possible)
How? By grouping m events together!
Each x can be written as
x
P(x)
Z. Li Multimedia Communciation, 2016 Spring p.35
Golomb Parameter Estimation (J2K book: pp. 55)
x
xP )1()( 
• Goal of adaptive Golomb code:
• For the given data, find the best m such that ρm ≤1/2.
• How to find ρ from the statistics of past data?








 

 1)1(
)1()1()( 2
0x
x
xxE
.
)(1
)(
xE
xE


2
1
)(1
)(








m
m
xE
xE
 




 

)(
)(1
log/1
xE
xE
m
Let m=2k
.
)(
)(1
log/1log 22 












 

xE
xE
k Too costly to compute
Z. Li Multimedia Communciation, 2016 Spring p.36
Golomb Parameter Estimation (J2K book: pp. 55)
( )
1
E x




A faster method: Assume ρ ≈ 1, 1 – ρ ≈ 0.
  
)(
1
1
1)1(111
xE
m
mm
mm






ρm ≤1/2 )(
2
1
2 xEm k

.)(
2
1
log,0max 2


















 xEk
Z. Li Multimedia Communciation, 2016 Spring p.37
Summary
 Hoffman Coding
 A prefix code that is optimal in code length (average)
 Canonical form to reduce variation of the code length
 Widely used
 Golomb Coding
 Suitable for coding prediction errors in image
 Optimal for Geometrical Distribution of p=0.5
 Simple to encode and decode
 Many practical applications, e.g., JPEG-2000 lossless.
Z. Li Multimedia Communciation, 2016 Spring p.38
Q&A
Z. Li Multimedia Communciation, 2016 Spring p.39

More Related Content

PPT
Asymptotic notations
PPT
Error detection correction (CRC)
PPT
Transportlayer tanenbaum
PPT
Arithmetic coding
PPTX
Digital Image Processing
PPTX
Audio compression
PPTX
TCP & UDP ( Transmission Control Protocol and User Datagram Protocol)
PDF
Digital Data, Digital Signal | Scrambling Techniques
Asymptotic notations
Error detection correction (CRC)
Transportlayer tanenbaum
Arithmetic coding
Digital Image Processing
Audio compression
TCP & UDP ( Transmission Control Protocol and User Datagram Protocol)
Digital Data, Digital Signal | Scrambling Techniques

What's hot (20)

PPTX
Huffman codes
PPT
Transport services
PPTX
MAC-Message Authentication Codes
PPTX
Serial vs Parallel communication & Synchronous and Asynchronous transmission
PDF
SPEECH COMPRESSION TECHNIQUES: A REVIEW
PPT
Huffman Coding
PPTX
Comparison between Lossy and Lossless Compression
PPTX
AI Greedy and A-STAR Search
PPTX
Input-Buffering
PPT
Chapter 03 cyclic codes
PPTX
Automata theory - Push Down Automata (PDA)
PDF
SHA 1 Algorithm
PDF
2. public key cryptography and RSA
PPTX
Audio compression
PPT
Chapter 5 Image Processing: Fourier Transformation
PPT
Enhancement in spatial domain
PPTX
Generating code from dags
PPTX
Error Control In Network Layer
PDF
NFA to DFA
Huffman codes
Transport services
MAC-Message Authentication Codes
Serial vs Parallel communication & Synchronous and Asynchronous transmission
SPEECH COMPRESSION TECHNIQUES: A REVIEW
Huffman Coding
Comparison between Lossy and Lossless Compression
AI Greedy and A-STAR Search
Input-Buffering
Chapter 03 cyclic codes
Automata theory - Push Down Automata (PDA)
SHA 1 Algorithm
2. public key cryptography and RSA
Audio compression
Chapter 5 Image Processing: Fourier Transformation
Enhancement in spatial domain
Generating code from dags
Error Control In Network Layer
NFA to DFA
Ad

Viewers also liked (7)

PPTX
A short history of video coding
PDF
Compressed Video Quality
PPT
Introduction to H.264 Advanced Video Compression
PPT
Configurable Video Coding
PPT
Iain Richardson: An Introduction to Video Compression
PPT
Book Launch: The H.264 Advanced Video Compression Standard
PPT
Getting the most out of H.264
A short history of video coding
Compressed Video Quality
Introduction to H.264 Advanced Video Compression
Configurable Video Coding
Iain Richardson: An Introduction to Video Compression
Book Launch: The H.264 Advanced Video Compression Standard
Getting the most out of H.264
Ad

Similar to Lec-03 Entropy Coding I: Hoffmann & Golomb Codes (20)

PDF
Basics of coding theory
PPT
Huffmans code
PPT
huffman ppt
PDF
Data communication & computer networking: Huffman algorithm
PPT
Information Theory MSU-EEE.ppt
PPTX
Huffman Coding
PDF
Unit 3 Arithmetic Coding
PPT
Mmclass2
PPTX
basicsofcodingtheory-160202182933-converted.pptx
PPTX
Data Compression in Multimedia
PPTX
Data CompressionMultimedia
DOC
Huffman coding01
PPT
Huffman Coding.ppt
DOC
HuffmanCoding01.doc
PDF
Proof of Kraft Mc-Millan theorem - nguyen vu hung
PPT
Huffman coding
PPT
huffman Codes + Programming 5TH (part1).ppt
PPT
huffman Codes +5TH Programming (part1).ppt
PDF
Introduction to Source Coding.pdf
PPTX
Huffman.pptx
Basics of coding theory
Huffmans code
huffman ppt
Data communication & computer networking: Huffman algorithm
Information Theory MSU-EEE.ppt
Huffman Coding
Unit 3 Arithmetic Coding
Mmclass2
basicsofcodingtheory-160202182933-converted.pptx
Data Compression in Multimedia
Data CompressionMultimedia
Huffman coding01
Huffman Coding.ppt
HuffmanCoding01.doc
Proof of Kraft Mc-Millan theorem - nguyen vu hung
Huffman coding
huffman Codes + Programming 5TH (part1).ppt
huffman Codes +5TH Programming (part1).ppt
Introduction to Source Coding.pdf
Huffman.pptx

More from United States Air Force Academy (16)

PDF
Lec-08 Feature Aggregation II: Fisher Vector, AKULA and Super Vector
PDF
Lec07 aggregation-and-retrieval-system
PDF
PDF
Lec12 review-part-i
PDF
Lec14 eigenface and fisherface
PDF
Lec15 graph laplacian embedding
PDF
Lec17 sparse signal processing & applications
PDF
Lec16 subspace optimization
PDF
Lec11 rate distortion optimization
PDF
Multimedia Communication Lec02: Info Theory and Entropy
PDF
ECE 4490 Multimedia Communication Lec01
PDF
Mobile Visual Search: Object Re-Identification Against Large Repositories
PDF
Tutorial on MPEG CDVS/CDVA Standardization at ICNITS L3 Meeting
PDF
Light Weight Fingerprinting for Video Playback Verification in MPEG DASH
PDF
Subspace Indexing on Grassmannian Manifold for Large Scale Visual Identification
PDF
Scaled Eigen Appearance and Likelihood Prunning for Large Scale Video Duplica...
Lec-08 Feature Aggregation II: Fisher Vector, AKULA and Super Vector
Lec07 aggregation-and-retrieval-system
Lec12 review-part-i
Lec14 eigenface and fisherface
Lec15 graph laplacian embedding
Lec17 sparse signal processing & applications
Lec16 subspace optimization
Lec11 rate distortion optimization
Multimedia Communication Lec02: Info Theory and Entropy
ECE 4490 Multimedia Communication Lec01
Mobile Visual Search: Object Re-Identification Against Large Repositories
Tutorial on MPEG CDVS/CDVA Standardization at ICNITS L3 Meeting
Light Weight Fingerprinting for Video Playback Verification in MPEG DASH
Subspace Indexing on Grassmannian Manifold for Large Scale Visual Identification
Scaled Eigen Appearance and Likelihood Prunning for Large Scale Video Duplica...

Recently uploaded (20)

PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
VCE English Exam - Section C Student Revision Booklet
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PPTX
PPH.pptx obstetrics and gynecology in nursing
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PPTX
master seminar digital applications in india
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
Pre independence Education in Inndia.pdf
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
01-Introduction-to-Information-Management.pdf
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PPTX
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
RMMM.pdf make it easy to upload and study
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Pharmacology of Heart Failure /Pharmacotherapy of CHF
VCE English Exam - Section C Student Revision Booklet
STATICS OF THE RIGID BODIES Hibbelers.pdf
PPH.pptx obstetrics and gynecology in nursing
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
Supply Chain Operations Speaking Notes -ICLT Program
FourierSeries-QuestionsWithAnswers(Part-A).pdf
master seminar digital applications in india
Final Presentation General Medicine 03-08-2024.pptx
Pre independence Education in Inndia.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
2.FourierTransform-ShortQuestionswithAnswers.pdf
01-Introduction-to-Information-Management.pdf
Module 4: Burden of Disease Tutorial Slides S2 2025
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
Renaissance Architecture: A Journey from Faith to Humanism
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
RMMM.pdf make it easy to upload and study
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx

Lec-03 Entropy Coding I: Hoffmann & Golomb Codes

  • 1. CS/EE 5590 / ENG 401 Special Topics (Class Ids: 17804, 17815, 17803) Lec 03 Entropy and Coding II Hoffman and Golomb Coding Zhu Li Z. Li Multimedia Communciation, 2016 Spring p.1 Outline  Lecture 02 ReCap  Hoffman Coding  Golomb Coding and JPEG 2000 Lossless Coding Z. Li Multimedia Communciation, 2016 Spring p.2 Entropy  Self Info of an event = = − log Pr = = − log ( )  Entropy of a source = ∑ log ( ) Conditional Entropy, Mutual Information = , − ( ) , = + − , Z. Li Multimedia Communciation, 2016 Spring p.3 H(X) H(Y) I(X; Y)H(X | Y) H(Y | X) Total area: H(X, Y) a b c b c a b c b a b c b a Main application: Context Modeling Relative Entropy ( | = log Context Reduces Entropy Example Z. Li Multimedia Communciation, 2016 Spring p.4 x1 x2 x3 x4 x5 H(x5) > H(x5|x4,x3, x2,x1) H(x5) > H(x5|f(x4,x3, x2,x1)) Condition reduces entropy: Context function: f(x4,x3, x2,x1)= sum(x4,x3, x2,x1) getEntropy.m, lossless_coding.m f(x4,x3, x2,x1)==100 f(x4,x3, x2,x1)<100 Context:
  • 2. Lossless Coding  Prefix Coding  Codes on leaves  No code is prefix of other codes  Simple encoding/decoding Kraft- McMillan Inequality:  For a coding scheme with code length: l1, l2, …ln,  Given a set of integer length {l1, l2, …ln} that satisfy above inequality, we can always find a prefix code with code length l1, l2, …ln Z. Li Multimedia Communciation, 2016 Spring p.5 0 1 0 1 0 1 0 10 110 111 Root node leaf node Internal node 2 ≤ 1 Outline  Lecture 02 ReCap  Hoffman Coding  Golomb Coding and JPEG 2000 Lossless Z. Li Multimedia Communciation, 2016 Spring p.6 Huffman Coding A procedure to construct optimal prefix code Result of David Huffman’s term paper in 1952 when he was a PhD student at MIT  Shannon  Fano  Huffman (1925-1999) Z. Li Multimedia Communciation, 2016 Spring p.7 Huffman Code Design  Requirement:  The source probability distribution. (But not available in many cases)  Procedure: 1. Sort the probability of all source symbols in a descending order. 2. Merge the last two into a new symbol, add their probabilities. 3. Repeat Step 1, 2 until only one symbol (the root) is left. 4. Code assignment: Traverse the tree from the root to each leaf node, assign 0 to the top branch and 1 to the bottom branch. Z. Li Multimedia Communciation, 2016 Spring p.8
  • 3. Example Source alphabet A = {a1, a2, a3, a4, a5} Probability distribution: {0.2, 0.4, 0.2, 0.1, 0.1} a2 (0.4) a1(0.2) a3(0.2) a4(0.1) a5(0.1) Sort 0.2 merge Sort 0.4 0.2 0.2 0.2 0.4 merge Sort 0.4 0.2 0.4 0.6 merge 0.6 0.4 Sort 1 merge Assign code 0 1 1 00 01 1 000 001 01 1 000 01 0010 0011 1 000 01 0010 0011 Z. Li Multimedia Communciation, 2016 Spring p.9 Huffman code is prefix-free 01 (a1) 000 (a3) 0010 (a4) 0011(a5) 1 000 01 0010 0011 1 (a2) All codewords are leaf nodes  No code is a prefix of any other code. (Prefix free) Z. Li Multimedia Communciation, 2016 Spring p.10 Average Codeword Length vs Entropy  Source alphabet A = {a, b, c, d, e}  Probability distribution: {0.2, 0.4, 0.2, 0.1, 0.1}  Code: {01, 1, 000, 0010, 0011}  Entropy: H(S) = - (0.2*log2(0.2)*2 + 0.4*log2(0.4)+0.1*log2(0.1)*2) = 2.122 bits / symbol  Average Huffman codeword length: L = 0.2*2+0.4*1+0.2*3+0.1*4+0.1*4 = 2.2 bits / symbol  This verifies H(S) ≤ L < H(S) + 1. Z. Li Multimedia Communciation, 2016 Spring p.11 Huffman Code is not unique 0.4 0.2 0.4 0.6 0.6 0.4 0 1 1 00 01  Multiple ordering choices for tied probabilities  Two choices for each split: 0, 1 or 1, 0 0.4 0.2 0.4 0.6 0.6 0.4 1 0 0 10 11 a b c 0.4 0.2 0.4 0.6 0.6 0.4 1 0 0 10 11 b a c 0.4 0.2 0.4 0.6 0.6 0.4 1 0 0 10 11 Z. Li Multimedia Communciation, 2016 Spring p.12
  • 4. Huffman Coding is Optimal Assume the probabilities are ordered:  p1 ≥ p2 ≥ …… pm. Lemma: For any distribution, there exists an optimal prefix code that satisfies:  If pj ≥ pk, then lj ≤ lk: otherwise can swap codewords to reduce the average length. The two least probable letters have the same length: otherwise we can truncate the longer one without violating prefix-free condition. The two longest codewords differ only in the last bit and correspond to the two least probable symbols. Otherwise we can rearrange to achieve this.  Proof skipped. Z. Li Multimedia Communciation, 2016 Spring p.13 Canonical Huffman Code  Huffman algorithm is needed only to compute the optimal codeword lengths  The optimal codewords for a given data set are not unique  Canonical Huffman code is well structured  Given the codeword lengths, can find a canonical Huffman code  Also known as slice code, alphabetic code. Z. Li Multimedia Communciation, 2016 Spring p.14 Canonical Huffman Code Example:  Codeword lengths: 2, 2, 3, 3, 3, 4, 4  Verify that it satisfies Kraft-McMillan inequality 01 100 11 000 001 1010 1011 A non-canonical example 00 01 The Canonical Tree  Rules:  Assign 0 to left branch and 1 to right branch  Build the tree from left to right in increasing order of depth  Each leaf is placed at the first available position 110100 101 10 1110 1111 111 12 1   N i li Z. Li Multimedia Communciation, 2016 Spring p.15 Canonical Huffman Properties:  The first code is a series of 0  Codes of same length are consecutive: 100, 101, 110  If we pad zeros to the right side such that all codewords have the same length, shorter codes would have lower value than longer codes: 0000 < 0100 < 1000 < 1010 < 1100 < 1110 < 1111 00 01 110100 101 1110 1111  If from length n to n + 2 directly: e.g., 1, 3, 3, 3, 4, 4 C(n+2, 1) = 4( C(n, last) + 1) 0 110100 101 1110 1111 First code of length n+1 Last code of length n  Coding from length level n to level n+1:  C(n+1, 1) = 2 ( C(n, last) + 1): append a 0 to the next available level-n code Z. Li Multimedia Communciation, 2016 Spring p.16
  • 5. Advantages of Canonical Huffman 1. Reducing memory requirement  Non-canonical tree needs: All codewords Lengths of all codewords  Need a lot of space for large table 01 100 11 000 001 1010 1011 00 01 110100 101 1110 1111  Canonical tree only needs:  Min: shortest codeword length  Max: longest codeword length  Distribution:  Number of codewords in each level  Min=2, Max=4, # in each level: 2, 3, 2 Z. Li Multimedia Communciation, 2016 Spring p.17 Outline  Lecture 02 ReCap  Hoffman Coding  Golomb Coding Z. Li Multimedia Communciation, 2016 Spring p.18 Unary Code (Comma Code) Encode a nonnegative integer n by n 1’s and a 0 (or n 0’s and an 1). n Codeword 0 0 1 10 2 110 3 1110 4 11110 5 111110 … …  Is this code prefix-free? 0 1 0 1 0 1 0 10 110 1110 … …  When is this code optimal?  When probabilities are: 1/2, 1/4, 1/8, 1/16, 1/32 …  D-adic  Huffman code becomes unary code in this case.  No need to store codeword table, very simple Z. Li Multimedia Communciation, 2016 Spring p.19 Implementation – Very Efficient Encoding: UnaryEncode(n) { while (n > 0) { WriteBit(1); n--; } WriteBit(0); }  Decoding: UnaryDecode() { n = 0; while (ReadBit(1) == 1) { n++; } return n; } Z. Li Multimedia Communciation, 2016 Spring p.20
  • 6. Golomb Code [Golomb, 1966] A multi-resolutional approach:  Divide all numbers into groups of equal size m o Denote as Golomb(m) or Golomb-m  Groups with smaller symbol values have shorter codes  Symbols in the same group has codewords of similar lengths o The codeword length grows much slower than in unary code 0 max m m m m  Codeword :  (Unary, fixed-length) Group ID: Unary code Index within each group: Z. Li Multimedia Communciation, 2016 Spring p.21 Golomb Code rm m n rqmn       q: Quotient, used unary code q Codeword 0 0 1 10 2 110 3 1110 4 11110 5 111110 6 1111110 … …  r: remainder, “fixed-length” code  K bits if m = 2^k  m=8: 000, 001, ……, 111  If m ≠ 2^k: (not desired) bits for smaller r bits for larger r  m2log  m2log m = 5: 00, 01, 10, 110, 111 Z. Li Multimedia Communciation, 2016 Spring p.22 Golomb Code with m = 5 (Golomb-5) n q r code 0 0 0 000 1 0 1 001 2 0 2 010 3 0 3 0110 4 0 4 0111 n q r code 5 1 0 1000 6 1 1 1001 7 1 2 1010 8 1 3 10110 9 1 4 10111 n q r code 10 2 0 11000 11 2 1 11001 12 2 2 11010 13 2 3 110110 14 2 4 110111 Z. Li Multimedia Communciation, 2016 Spring p.23 Golomb vs Canonical Huffman Golomb code is a canonical Huffman  With more properties  Codewords: 000, 001, 010, 0110, 0111, 1000, 1001, 1010, 10110, 10111  Canonical form: From left to right From short to long Take first valid spot Z. Li Multimedia Communciation, 2016 Spring p.24
  • 7.  A special Golomb code with m= 2^k  The remainder r is the fixed k LSB bits of n n q r code 0 0 0 0000 1 0 1 0001 2 0 2 0010 3 0 3 0011 4 0 4 0100 5 0 5 0101 6 0 6 0110 7 0 7 0111 n q r code 8 1 0 10000 9 1 1 10001 10 1 2 10010 11 1 3 10011 12 1 4 10100 13 1 5 10101 14 1 6 10110 15 1 7 10111  m = 8 Golobm-Rice Code Z. Li Multimedia Communciation, 2016 Spring p.25 Implementation Encoding: GolombEncode(n, RBits) { q = n >> RBits; UnaryCode(q); WriteBits(n, RBits); }  Decoding: GolombDecode(RBits) { q = UnaryDecode(); n = (q << RBits) + ReadBits(RBits); return n; } Remainder bits: RBits = 3 for m = 8 Output the lower (RBits) bits of n. n q r code 0 0 0 0000 1 0 1 0001 2 0 2 0010 3 0 3 0011 4 0 4 0100 5 0 5 0101 6 0 6 0110 7 0 7 0111 Z. Li Multimedia Communciation, 2016 Spring p.26 Exponential Golomb Code (Exp-Golomb) Golomb code divides the alphabet into groups of equal size 0 max m m m m  In Exp-Golomb code, the group size increases exponentially  Codes still contain two parts:  Unary code followed by fixed-length code 0 max 4 8 161 2 n code 0 0 1 100 2 101 3 11000 4 11001 5 11010 6 11011 7 1110000 8 1110001 9 1110010 10 1110011 11 1110100 12 1110101 13 1110110 14 1110111 15 111100000  Proposed by Teuhola in 1978 Z. Li Multimedia Communciation, 2016 Spring p.27 Implementation Decoding ExpGolombDecode() { GroupID = UnaryDecode(); if (GroupID == 0) { return 0; } else { Base = (1 << GroupID) - 1; Index = ReadBits(GroupID); return (Base + Index); } } } n code Group ID 0 0 0 1 100 1 2 101 3 11000 2 4 11001 5 11010 6 11011 7 1110000 3 8 1110001 9 1110010 10 1110011 11 1110100 12 1110101 13 1110110 14 1110111 Z. Li Multimedia Communciation, 2016 Spring p.28
  • 8. Outline Golomb Code Family:  Unary Code  Golomb Code  Golomb-Rice Code  Exponential Golomb Code Why Golomb code? Z. Li Multimedia Communciation, 2016 Spring p.29 Geometric Distribution (GD)  Geometric distribution with parameter ρ:  P(x) = ρx (1 - ρ), x ≥ 0, integer.  Prob of the number of failures before the first success in a series of independent Yes/No experiments (Bernoulli trials).  Unary code is the optimal prefix code for geometric distribution with ρ ≤ 1/2:  ρ = 1/4: P(x): 0.75, 0.19, 0.05, 0.01, 0.003, …  Huffman coding never needs to re-order  equivalent to unary code.  Unary code is the optimal prefix code, but not efficient ( avg length >> entropy)  ρ = 3/4: P(x): 0.25, 0.19, 0.14, 0.11, 0.08, …  Reordering is needed for Huffman code, unary code not optimal prefix code.  ρ = 1/2: Expected length = entropy.  Unary code is not only the optimal prefix code, but also optimal among all entropy coding (including arithmetic coding). Z. Li Multimedia Communciation, 2016 Spring p.30 Geometric Distribution (GD) Geometric distribution is very useful for image/video compression Example 1: run-length coding  Binary sequence with i.i.d. distribution  P(0) = ρ ≈ 1:  Example: 0000010000000010000110000001  Entropy << 1, prefix code has poor performance.  Run-length coding is efficient to compress the data: or: Number of consecutive 0’s between two 1’s o  run-length representation of the sequence: 5, 8, 4, 0, 6  Probability distribution of the run-length r: o P(r = n) = ρn (1- ρ): n 0’s followed by an 1. o  The run has one-sided geometric distribution with parameter ρ. r P(r) Z. Li Multimedia Communciation, 2016 Spring p.31 Geometric Distribution GD is the discrete analogy of the Exponential distribution x exf    )( 2 1 Two-sided geometric distribution is the discrete analogy of the Laplacian distribution (also called double exponential distribution) ( ) x f x e     x f(x) x f(x) Z. Li Multimedia Communciation, 2016 Spring p.32
  • 9. Why Golomb Code? Significance of Golomb code:  For any geometric distribution (GD), Golomb code is optimal prefix code and is as close to the entropy as possible (among all prefix codes)  How to determine the Golomb parameter?  How to apply it into practical codec? Z. Li Multimedia Communciation, 2016 Spring p.33 Geometric Distribution Example 2: GD is a also good model for Prediction error e(n) = x(n) – pred(x(1), …, x(n-1)). Most e(n)’s have smaller values around 0:  can be modeled by geometric distribution. n p(n) 10, 1 1 )( ||        n np Z. Li Multimedia Communciation, 2016 Spring p.34 x1 x2 x3 x4 x5 0.2 0.3 0.2 0.2 0 0 0 0 0 Optimal Code for Geometric Distribution  Geometric distribution with parameter ρ:  P(X=n) = ρn (1 - ρ)  Unary code is optimal prefix code when ρ ≤ 1/2.  Also optimal among all entropy coding for ρ = 1/2.  How to design the optimal code when ρ > 1/2 ? x P(x) 1 1 0 0 1 ( ) ( ) (1 ) (1 ) (1 ) 1q mm m qm r qm mq m X X r r P q P qm r                           xq has geometric dist with parameter ρm. Unary code is optimal for xq if ρm ≤ 1/2  2log 1 m integer.possibleminimaltheis log 1 2         m rq xmxx   Transform into GD with ρ ≤ 1/2 (as close as possible) How? By grouping m events together! Each x can be written as x P(x) Z. Li Multimedia Communciation, 2016 Spring p.35 Golomb Parameter Estimation (J2K book: pp. 55) x xP )1()(  • Goal of adaptive Golomb code: • For the given data, find the best m such that ρm ≤1/2. • How to find ρ from the statistics of past data?             1)1( )1()1()( 2 0x x xxE . )(1 )( xE xE   2 1 )(1 )(         m m xE xE          )( )(1 log/1 xE xE m Let m=2k . )( )(1 log/1log 22                 xE xE k Too costly to compute Z. Li Multimedia Communciation, 2016 Spring p.36
  • 10. Golomb Parameter Estimation (J2K book: pp. 55) ( ) 1 E x     A faster method: Assume ρ ≈ 1, 1 – ρ ≈ 0.    )( 1 1 1)1(111 xE m mm mm       ρm ≤1/2 )( 2 1 2 xEm k  .)( 2 1 log,0max 2                    xEk Z. Li Multimedia Communciation, 2016 Spring p.37 Summary  Hoffman Coding  A prefix code that is optimal in code length (average)  Canonical form to reduce variation of the code length  Widely used  Golomb Coding  Suitable for coding prediction errors in image  Optimal for Geometrical Distribution of p=0.5  Simple to encode and decode  Many practical applications, e.g., JPEG-2000 lossless. Z. Li Multimedia Communciation, 2016 Spring p.38 Q&A Z. Li Multimedia Communciation, 2016 Spring p.39