You are on page 1of 80

CHƯƠNG 3

MÃ HOÁ NGUỒN
Mã Hoá Nguồn
 Khái niệm mã hoá
• Mã hóa là phép ánh xạ 1 – 1 từ các tập tin rời rạc xk lên
tập các từ mã uk

f : xk  uk
Mã Hoá Nguồn
 Mục Tiêu

- Mã hóa mỗi thông điệp nguồn thành một từ mã nhị phân


duy nhất.

- Một kỹ thuật mã hóa hiệu quả ứng với số lượng bit nhị
phân nhỏ nhất.
Mã Hoá Nguồn
 Mã hiệu
- Trong các hệ thống truyền tin, bên nhận thường biết
tập hợp các tin mà bên phát dùng để lập nên các bản
tin.
- Các tin thường sẽ được ánh xạ (mã hóa) thành một
dạng biểu diễn khác thuận tiện hơn để phát đi.
- Ví dụ: Xét một nguồn tin A = {a, b, c, d}. Chúng ta có
thể thiết lập một song ánh như sau từ A vào tập sau:
a  00, b  01, c  10 và d  11. Bản tin baba sẽ
tương ứng với chuỗi 01000100.
Mã Hoá Nguồn
 Mã hiệu
- Mã hiệu là một tập hữu hạn các kí hiệu và phép ánh xạ
các tin/bản tin của nguồn tin thành các dãy kí hiệu
tương ứng.
- Tập các kí hiệu và phép ánh xạ này thường sẽ phải đáp
ứng các yêu cầu tùy theo hệ thống truyền tin đặt ra.
- Tập các kí hiệu mã dùng để biểu diễn được gọi là bảng
kí hiệu mã, còn số các kí hiệu thì được gọi là cơ số mã,
và thường kí hiệu là m. Nếu mã có cơ số hai thì gọi là
mã nhị phân, còn nếu mã có cơ số ba thì gọi là mã tam
phân ...
Mã Hoá Nguồn
 Mã hoá (Encoding) và giải mã (Decoding)
- Mã hoá là quá trình dùng các kí hiệu mã để biểu diễn
các tin của nguồn.
- Nói cách khác mã hoá là một phép biến đổi từ nguồn
tin thành mã hiệu, hay mã hoá là phép biến đổi từ một
tập tin này thành một tập tin khác có đặc tính thống kê
yêu cầu.
- Quá trình ngược lại của quá trình mã hoá được gọi là
giải mã (decoding).
Mã Hoá Nguồn
 Từ mã (Code word), bộ mã
- Từ mã là chuỗi kí hiệu mã biểu diễn cho tin của nguồn.
Tập tất cả các từ mã tương ứng với các tin của nguồn
được gọi là bộ mã.
- Mã hoá là một phép biến đổi một–một giữa một tin của
nguồn và một từ mã của bộ mã.
- Trong một số trường hợp người ta không mã hoá mỗi
tin của nguồn mà mã hoá một bản tin hay khối tin. Lúc
này chúng ta có khái niệm mã khối.
Mã Hoá Nguồn
 Các thông số của bộ mã và các ký hiệu
- Cơ số mã là số ký hiệu mã trong một bộ chữ mã B, ký
hiệu m.
Ví dụ: mã nhị phân có 2 ký hiệu 0,1  m = 2.

- Độ dài từ mã thứ k (lk) là số ký tự của từ mã thứ k.

- Tổng số các từ mã của bộ mã ký hiệu là N.


Mã Hoá Nguồn
 Khái Niệm các Bộ Mã
• Định nghĩa mã Non-Singular
Một bộ mã được gọi là non-singular khi tất cả các từ mã
là phải hoàn toàn khác nhau
 : xk  xn  uk  un
• Định nghĩa từ mã mở rộng
Một từ mã mở rộng là việc ánh xạ một chuỗi hữu hạn các
từ mã liên tiếp nhau.

x1 x2 ...  u1u2 ...


Mã Hoá Nguồn
 Khái Niệm các Bộ Mã
• Định nghĩa bộ mã giải mã duy nhất (Unique
Decodability)
Một bộ mã được gọi là giải mã duy nhất khi các từ mã
mở rộng của nó là một từ mã non-singular.
Mã Hoá Nguồn
 Phân tách mã
- Xét bộ mã X1 = {0, 10, 11} mã hoá cho nguồn A = {a,
b, c}. Giả sử bên phát phát đi bảng tin x = abaac, lúc
đó chuỗi từ mã tương ứng được phát đi là y = 0100011.
- Bên làm sao có thể nhận biết được bảng tin tương ứng
mà bên phát đã phát?
- Bên nhận phải thực hiện quá trình tách mã: với chuỗi kí
hiệu mã nhận được như trên thì bên nhận chỉ có một
khả năng để tách mã hợp lý là 0 | 10 | 0 | 0 | 11 và xác
định được bảng tin đã được gởi đi là abaac.
Mã Hoá Nguồn
 Phân tách mã
- Xét một bộ mã khác X = {0, 10, 01} mã hoá cho nguồn
A trên. Giả sử bên nhận nhận được chuỗi kí hiệu là y =
01010 và thực hiện quá trình tách mã.
- Các khả năng tách mã: 0 | 10 | 10, 01 | 0 | 10 và 01 | 01 |
0  bên nhận sẽ không biết được chính xác bên phát
đã phát đi bảng tin nào trong ba bảng tin sau abb hay
cab hay cca.
 Điều kiện để một bộ mã là phân tách được là không
tồn tại dãy từ mã này trùng với dãy từ mã khác của
cùng bộ mã.
Mã Hoá Nguồn
 Phân tách mã
- Xét X = {010, 0101, 10100} mã hoá cho nguồn A trên.
Chuỗi kí hiệu nhận là 01010100101 và chỉ có một cách
tách mã duy nhất là 0101 | 010 | 0101.
- Tuy nhiên, khi gặp chuỗi 010, ta chưa dám chắc đó là
một từ mã vì nó có thể là phần đi đầu của từ mã 0101.
- Nguyên nhân của điều này là do trong bộ mã có một từ
mã này là tiếp đầu ngữ của một từ mã khác.
Mã Hoá Nguồn
 Định nghĩa bộ mã có tính Prefix
• Một bộ mã có tính prefix khi không có bất cứ từ mã
nào là phần mào đầu (prefix) của một từ mã khác trong
bộ mã.
Mã có tính prefix có thể giải mã tức thời.
Một bộ mã prefix là bộ mã giải mã duy nhất.
Một bộ mã giải mã duy nhất chưa phải là một bộ mã
có tính Prefix.
Mã Hoá Nguồn
 Định nghĩa bộ mã có tính Prefix
Ví dụ: Bộ mã nào có tính Prefix

Nguồn tin Bộ mã A Bộ mã B
S1 0 0
S2 10 01
S3 110 011
S4 1110 0111

Giải mã chuỗi bit sau 0101101110


Mã Hoá Nguồn
 Định nghĩa bộ mã có tính Prefix
Bộ mã A có tính Prefix vì không có từ mã nào là mào đầu
của từ mã khác trong bộ mã
Bộ mã B không có tính Prefix vì 0 là mào đầu của 01
(tương tự 01 là mào đầu của 011, 011 là mào đầu của
0111)
Giải mã chuỗi bit 0101101110 sử dụng bộ mã A:
0101101110  S1S2S3S4
Giải mã chuỗi bit 0101101110 sử dụng bộ mã B:
0101101110  S2S3S4S1
Mã Hoá Nguồn
 Mã có tính Prefix tối thiểu
- Mã có tính prefix sao cho nếu x là một prefix của một từ
mã thì xσ phải là một từ mã hoặc là prefix của một từ
mã trong bộ mã với σ lấy tất cả các giá trị còn lại trong
bộ chữ mã B.
Ví dụ: U={00, 01, 10} không phải là mã có tính Prefix tối
thiểu vì 1σ phải là một từ mã thuộc bộ mã với σ nhận
các giá trị 0 và 1. Tuy nhiên, với σ =1, thì 11 không
phải là từ mã hoặc prefix của từ mã nào trong bộ mã.
Mã Hoá Nguồn
 Sơ Đồ
Mã giả mã duy nhất
Toàn bộ mã

Mã non-singular
Mã giải mã tức thởi
Mã Hoá Nguồn
 Mã đều và mã đầy
• Mã đều là mã có chiều dài của các từ mã là bằng nhau.

 : lk  L
• Bộ mã đầy là bộ mã có tính chất:

N m l
Mã Hoá Nguồn
 Mã đều và mã đầy
• Ví dụ: Bộ mã A là bộ mã đều nhưng không đầy, Bộ mã
B là bộ mã không đều
Nguồn tin Bộ mã C
Nguồn tin Bộ mã A Bộ mã B S1 00
S1 00 0 S2 01
S2 01 10 S3 10
S3 11 11 S4 11

• Bộ mã C là bộ mã đều và đầy vì các từ mã có chiều dài


bằng nhau và số từ mã bằng 2^2 = 4.
Mã Hoá Nguồn
 Mã không đều
- Các từ mã có chiều dài khác nhau. Ví dụ: bộ mã B
trong ví dụ trên.
- Các bộ mã không đều thường quan tâm đến xác suất
xuất hiện của các ký tự
- Ký tự nào có xác suất xuất hiện lớn thì được mã hoá
bằng từ mã có chiều dài ngắn
- Ký tự nào có xác suất xuất hiện thấp thì được mã hoá
bằng từ mã có chiều dài lớn hơn
Mã Hoá Nguồn
 Mã Morse: Mã hoá không đều
Mã Hoá Nguồn
 Alphabet: tần suất xuất hiện trong các văn bản
tiếng Anh
Mã Hoá Nguồn
 Độ Dài Trung Bình và Hiệu Suất Mã
• Độ dài trung bình: trung bình thống kê của độ dài các
từ mã:

L   p  xk  lk
k

• Hiệu suất của bộ mã được tính bằng công thức:

 HX /L
Mã Hoá Nguồn
 Các phương pháp biểu diễn mã
1. Bảng đối chiếu mã
Liệt kê bộ mã với các tin và từ mã tương ứng
- Ưu điểm
Đơn giản với bộ mã nhỏ
Nền tảng của phương pháp mã hóa từ điển
- Nhược điểm
Cồng kềnh với bộ mã lớn
Không thấy được sự tương quan giữa các từ mã
Mã Hoá Nguồn
 Các phương pháp biểu diễn mã
1. Bảng đối chiếu mã
Ví dụ:
Mã Hoá Nguồn
 Các phương pháp biểu diễn mã
2. Cây mã
Gồm: các nút và các nhánh
Gốc của cây là nút gốc
Mỗi nhánh phân thành m nhánh hoặc ít hơn (ví dụ: đối
với mã nhị phân số nhánh nhiều nhất là 02)
Nút cuối (là nút không có nhánh nào xuất phát) đại
diện cho một từ mã
Thứ tự các trị ký hiệu từ nút gốc đến nút cuối
Mã Hoá Nguồn
 Các phương pháp biểu diễn mã
2. Cây mã
- Các bit của từ mã được xác định theo thứ tự các nhánh
đi từ gốc về nút cuối.
Mã Hoá Nguồn
 Các phương pháp biểu diễn mã
3. Mặt tọa độ mã
Từ mã được biểu diễn bằng một điểm trong hệ tọa độ 2
chiều (l,b).
l là chiều dài từ mã
b là trọng số của từ mã
l 1
b 
k 0
ck m k

m là cơ số mã, c là trị ký hiệu thứ k trong từ mã.


Mã Hoá Nguồn
 Các phương pháp biểu diễn mã
3. Mặt tọa độ mã
Mã Hoá Nguồn
 Các phương pháp biểu diễn mã
4. Hàm cấu trúc mã
Hàm cấu trúc mã G(uk) là số từ mã trong bộ mã có độ
dài bằng uk.
Ví dụ: U = {00, 01,100,1010,1011}, G(1) = 0, G(2)=2,
G(3)=1, G(4)=2, G(5)=0, G(6)=0,…
Hàm cấu trúc mã cho biết là mã đều hay không đều.
Mã đều có G(uk) khác 0 tại một giá trị duy nhất.
Mã không đều có G(uk) khác 0 tại ít nhất 02 giá trị.
Mã Hoá Nguồn
 Các phương pháp biểu diễn mã
5. Đồ hình kết cấu mã
Một dạng đặc biệt của cây mã, trong đó các nút lá
trùng với nút gốc và ngoài ra mỗi cạnh của đồ hình kết
cấu mã đều là cạnh có hướng. Một từ mã được biểu
diễn bằng một chu trình xuất phát từ nút gốc và quay
trở về lại nút gốc.
Mã Hoá Nguồn
 Bất Đẳng Thức Kraft
 Cho l1, …, lN là chiều dài của các từ mã của một bộ mã
prefix có cơ số mã m thì
N

 1
m  lk

k 1

 Ngược lại với một tập các độ dài từ mã thõa bất đẳng
thức này thì tồn tại một bộ mã prefix nhận tập độ dài
này làm độ dài các từ mã.
Mã Hoá Nguồn
 Bất Đẳng Thức Kraft Nguồn tin Bộ mã A Bộ mã B

- Các bộ mã là mã nhị phân S1 0 0

nên m=2 S2 100 10

S3 110 110
- Bộ mã A: chiều dài của
S4 111 11
các từ mã là 1, 3, 3, 3
4
1 1 1 1 7
m
k 1
 lk
 1  3  3  3  1
2 2 2 2 8

 Bộ mã A có tính Prefix
Mã Hoá Nguồn
 Bất Đẳng Thức Kraft Nguồn tin Bộ mã A Bộ mã B

- Bộ mã B: chiều dài của S1 0 0


S2 100 10
các từ mã là 1, 2, 3, 2
S3 110 110
S4 111 11
4
1 1 1 19
m
k 1
 lk
 1  2  3  2  1
2 2 2 2 8
 Bộ mã B không có tính Prefix. Thật vậy, từ mã 11 là
mào đầu của từ mã 110 trong bộ mã.
Mã Hoá Nguồn
 Bài tập 3.1: Xét nguồn tin có M ký tự, được mã hoá
bằng bộ mã đều. Hỏi chiều dài tối thiểu của mỗi từ
mã bằng bao nhiêu?
 Bài tập 3.2: Xét nguồn tin có 5 ký tự. Hãy thiết kế
một bộ mã không đều, có các tính chất sau:
a)Có tính Prefix nhưng không có tính Prefix tối thiểu
b)Có tính Prefix tối thiểu
Mã Hoá Nguồn
 Mã thống kê tối ưu
- Phép mã hóa mà kết quả là một bộ mã có chiều dài
trung bình là nhỏ nhất trong tất cả các phép mã hóa có
thể có cho nguồn.
- Bộ mã của phép mã hóa tối ưu cho nguồn được gọi là
bộ mã tối ưu.
- Ba phép mã hóa: Shannon, Shannon-Fano, Huffman.
Mã Hoá Nguồn
 Mã thống kê tối ưu
- Cho một nguồn tin S = {S1,…,Sk} với xác suất tương
ứng p1,…,pk. Một bộ mã giải mã được với cơ số mã m,
chiều dài trung bình từ mã thoả mãn:

H X HX
L 1
log  m  log  m 
Mã Hoá Nguồn
 Mã Hoá Shannon
- Sắp xếp các tin ui và xác suất tương ứng p(ui) theo thứ
tự giảm dần vào cột 1 và cột 2.
i 1

- Cột 3 ghi giá trị Qi   p  uk 


k 0

- Cột 4 ghi độ dài từ mã thứ i: li    log 2 p  ui  


- Cột 5 biểu diễn Qi dưới dạng nhị phân
- Cột 6 là từ mã ngõ ra với chiều dài li bit nhị phân sau
dấu phẩy.
Mã Hoá Nguồn
 Mã Hoá Shannon
• Ví dụ: Mã hoá nguồn X có 3 ký tự với xác suất xuất hiện lần
lượt là 0.6, 0.3, 0.1.
Tin P Q l Nhị Phân Từ mã
S1 0.6 0 1 0,00 0
S2 0.3 0.6 2 0.1001… 10
S3 0.1 0.9 4 0.11100… 1110

• Cột Q: tổng xác suất xuất hiện của các ký tự phía trên ký tự
đang xét.
• Giá trị đầu tiên luôn bằng 0 vì không có ký tự nào ở trên S1, giá
trị thứ hai bằng 0.6 vì chỉ ký tự S1 ở trên S2, giá trị thứ 03 bằng
0.6 + 0.3 = 0.9 vì S1 và S2 ở trên S3.
Mã Hoá Nguồn
 Mã Hoá Shannon
Tin P Q l Nhị Phân Từ mã
S1 0.6 0 1 0,00 0
S2 0.3 0.6 2 0.1001… 10
S3 0.1 0.9 4 0.11100… 1110

• Cột l:
- Chiều dài từ mã của S1: l1    log 2  0.6    0.737   1
- Chiều dài từ mã của S2: l2    log 2  0.3   1.737   2
- Chiều dài từ mã của S3: l3    log 2  0.1   3.3219   4
Mã Hoá Nguồn
 Mã Hoá Shannon
Tin P Q l Nhị Phân Từ mã
S1 0.6 0 1 0,00 0
S2 0.3 0.6 2 0.1001… 10
S3 0.1 0.9 4 0.11100… 1110

• Cột nhị phân: Đổi giá trị của Q từ thập phân sang nhị phân
- Q=0 thì nhị phân của Q là: 0.0000… Do từ mã S1 có chiều dài
bằng 1 nên từ mã là 0
Mã Hoá Nguồn
 Mã Hoá Shannon
- Q=0.6:
Lấy 0.6 x 2 = 1.2
Lấy phần thập phân 0.2 tiếp tục nhân 2: 0.2 x 2 = 0.4
Lấy phần thập phân 0.4 tiếp tục nhân 2: 0.4 x 2 = 0.8
Lấy phần thập phân 0.8 tiếp tục nhân 2: 0.8 x 2 = 1.6
Lấy phần thập phân 0.6 tiếp tục nhân 2: 0.6 x 2 = 1.2

Do đó, nhị phân của Q là: 0. 10011…
Do chiều dài S2 bằng 2 nên từ mã của S2 là 10
Mã Hoá Nguồn
 Mã Hoá Shannon
- Q=0.9:
Lấy 0.9 x 2 = 1.8
Lấy phần thập phân 0.8 tiếp tục nhân 2: 0.8 x 2 = 1.6
Lấy phần thập phân 0.6 tiếp tục nhân 2: 0.6 x 2 = 1.2
Lấy phần thập phân 0.2 tiếp tục nhân 2: 0.2 x 2 = 0.4

Do đó, nhị phân của Q là: 0. 1110…
Do chiều dài S3 bằng 4 nên từ mã của S3 là 1110
Mã Hoá Nguồn
 Mã Hoá Shannon
Tin P Q l Nhị Phân Từ mã
S1 0.6 0 1 0,00 0
S2 0.3 0.6 2 0.1001… 10
S3 0.1 0.9 4 0.11100… 1110

Entropy của nguồn tin:


H  0.6  log 2  1 / 0.6   0.3  log 2  1 / 0.3  0.1  log 2  1 / 0.1  1.2955

Chiều dài trung bình của bộ mã:


L  0.6  1  0.3  2  0.1  4  1.6

Hiệu suất mã hoá:   H  1.2955  0.8097 80.97%


 
L 1.6
Mã Hoá Nguồn
 Mã Hoá Shannon
Bài tập 3.3: Mã hoá nguồn X có 4 ký tự với xác suất xuất
hiện lần lượt là 0.4, 0.3, 0.2, 0.1
a) Tính hiệu suất mã hoá
b) Bộ mã có tính chất gì?
Mã Hoá Nguồn
 Mã Hoá Shannon
Bài tập 3.4: Mã hoá nguồn X có 6 ký tự với xác suất xuất
hiện lần lượt là 0.3, 0.25, 0.2, 0.12, 0.08, 0.05. Tính
hiệu suất mã hoá.
Mã Hoá Nguồn
 Mã Hoá Shannon-Fano
Bước 1: Sắp xếp các ký tự theo xác suất xuất hiện giảm
dần.
Bước 2: Vẽ đường thẳng chia các ký tự thành hai nhóm
sao cho tổng xác suất của hai nhóm là gần nhau nhất.
Viết ký tự 0 cho nhóm ở trên đường thẳng và ký tự 1
cho các nhóm ở phía dưới đường thẳng.
Bước 3: Tiếp tục chia các nhóm có nhiều hơn 1 ký tự
thành các nhóm nhỏ sử dụng phương pháp trong Bước
2.
Bước 4: Khi tất cả các nhóm đều chỉ chứa 1 ký tự, từ mã
được tạo ra từ các bit đọc từ trái sang phải.
Mã Hoá Nguồn
 Mã Hoá Shannon-Fano
Ví dụ: Mã hoá nguồn X có 4 ký tự A, B, C, D với
xác suất xuất hiện lần lượt là 0.6, 0.3 và 0.1.
Bước 1: Vẽ đường thẳng chia S1 thành 01 nhóm,
S2 và S3 một nhóm để chênh lệch tổng xác suất
của 02 nhóm thấp nhất. Điền bit 0 cho S1, bit 1
cho nhóm S2, S3.
S1 0.6 0
…………………………
S2 0.3 1
S3 0.1 1
Mã Hoá Nguồn
 Mã Hoá Shannon-Fano
Bước 2: Chia nhóm chứa 02 phần tử là S2 và S3
thành hai nhóm. Điền bit 0 cho nhóm có S2, bit
1 cho nhóm có S3

S1 0.6 0
…………………………
S2 0.3 1 0
…………..
S3 0.1 1 1
Mã Hoá Nguồn
 Mã Hoá Shannon-Fano Tin Từ mã

Bảng mã: S1 0

S2 10

S3 11
Entropy của nguồn tin

H  0.6  log 2  1 / 0.6   0.3  log 2  1 / 0.3  0.1  log 2  1 / 0.1  1.2955

Chiều dài trung bình


L  0.6  1  0.3  2  0.1  2  1.4
Hiệu suất mã hoá:
H 1.2955
   92.54  % 
L 1.4
Mã Hoá Nguồn
 Mã Hoá Shannon-Fano
Bài tập 3.5: Mã hoá nguồn X có 4 ký tự A, B, C,
D, với xác suất xuất hiện lần lượt là 0.1, 0.3, 0.2
và 0.4 bằng mã Shannon-Fano.
a)Bộ mã có tính chất gì?
b)Tính hiệu suất mã hoá.
Mã Hoá Nguồn
 Mã Hoá Shannon-Fano
Bài tập 3.6: Mã hoá nguồn X có 6 ký tự với xác suất xuất
hiện lần lượt là 0.3, 0.25, 0.2, 0.12, 0.08, 0.05. Tính
hiệu suất mã hoá
Mã Hóa Nguồn
 Mã hóa Huffman cơ sở (basic Huffman encoding)
Bước 1: Sắp xếp các ký tự theo xác suất xuất hiện giảm
dần.
Bước 2: Gán cho hai ký tự có xác suất xuất hiện thấp nhất
với hai nhánh (0) và (1) của cây mã. Từ hai ký tự này,
giảm còn một ký tự với xác suất bằng tổng của hai xác
suất.
Bước 3: Lặp lại từ Bước 1 cho đến khi chỉ còn lại một ký
tự duy nhất với xác suất bằng 1.
Bước 4: Duyệt cây mã để tìm ra những từ mã tương ứng
với từng ký tự nguồn.
Mã Hóa Nguồn
 Mã hóa Huffman cơ sở (basic Huffman encoding)
Ví dụ: Mã hoá nguồn X có 03 ký tự với xác suất xuất
hiện là 0.6, 0.3 và 0.1 bằng mã Huffman cơ sở. Đầu
tiên, sắp xếp theo thứ tự xác suất xuất hiện giảm dần

A 0.6 0.6 (1)


B 0.3 (1) 1.0
C 0.1 (0) 0.4 0.4 (0)
Nhóm hai ký tự B và C thành một ký tự có tổng xác suất
bằng 0.4, và thực hiện lại bước sắp xếp các ký tự theo
xác suất xuất hiện giảm dần. Tiến trình dừng sau hai
bước sắp xếp vì chỉ còn lại 01 ký tự có tổng xác suất
Mã Hóa Nguồn
 Mã hóa Huffman cơ sở (basic Huffman encoding)
 Vẽ cây mã
Cây mã được vẽ ngược lại
1.0 với sơ đồ.
) (1)
( 0 Gốc 1.0 được chia làm 02
nhánh (1) và (0), tương ứng
với xác suất xuất hiện 0.6
0.4 0.6 và 0.4.
(0) (1)
A Nhánh 0.4 lại chia thành 02
nhánh (1) và (0), tương ứng
0.1 0.3 với xác suất xuất hiện 0.3
và 0.1
C B A, B, C lần lượt là các nút
cuối
Mã Hóa Nguồn
 Mã hóa Huffman cơ sở (basic Huffman encoding)
 Duyệt cây mã để xác định các từ mã
1.0 Ký tự Từ mã
) (1) A 1
( 0
B 01

C 00
0.4 0.6
( 0) (1)
A

0.1 0.3
C B
Mã Hóa Nguồn
 Mã hóa Huffman cơ sở (basic Huffman encoding)
 Ví dụ:
Mã Hóa Nguồn
 Mã hóa Huffman cơ sở (basic Huffman encoding)
Mã Hóa Nguồn
 Mã hóa Huffman cơ sở (basic Huffman encoding)
Mã Hoá Nguồn
 Mã Hoá Huffman cơ sở
Bài tập 3.7: Mã hoá nguồn X có 4 ký tự A, B, C,
D, với xác suất xuất hiện lần lượt là 0.4, 0.3, 0.2
và 0.1 bằng mã Huffman cơ sở.
a)Bộ mã có tính chất gì?
b)Tính hiệu suất mã hoá.
Mã Hoá Nguồn
 Mã Hoá Huffman cơ sở
Bài tập 3.8: Mã hoá nguồn X có 6 ký tự với xác
suất xuất hiện lần lượt là 0.3, 0.25, 0.2, 0.12,
0.08, 0.05. Tính hiệu suất mã hoá.
Mã Hoá Nguồn
 Một số nhận xét
- Phương pháp Shannon cho kết quả là một mã prefix.
- Trong nhiều trường hợp có nhiều hơn một cách chia
thành các nhóm có tổng xác suất gần bằng nhau, ứng
với mỗi cách chia có thể sẽ cho ra các bộ mã có chiều
dài trung bình khác nhau.
- Phương pháp Shannon-Fano thường cho kết quả tốt
hơn phương pháp Shannon.
- Trong trường hợp tổng quát phương pháp Shannon-
Fano không phải là phương pháp mã hóa tối ưu.
Mã Hoá Nguồn
 Mã Hoá Huffman “m” phân
- Tính    k  m  /  m  1 với k là số ký tự.
- Nếu α không phải số nguyên, thêm một số
nguồn tin với xác suất bằng 0 sao cho thõa

k  m     m  1
'

- Thực hiện tương tự như Huffman tĩnh


- Vẽ cây mã từ gốc đến các tin nguyên thủy và gán cho
m nhánh mỗi nút là 0,1….,m-1.
Mã Hoá Nguồn
 Mã Hoá Huffman “m” phân
Ví dụ: Mã hoá nguồn 6 ký tự với xác suất xuất hiện lần
lượt là 0.3, 0.25, 0.2, 0.12, 0.08, 0.05 bằng mã
Huffman tam phân.
- Vì k=6 và m=3 nên 63
  1.5
3 1
-  không là số nguyên nên phải thêm vào 01 ký tự có
xác suất xuất hiện bằng 0
k ' k  m     m  1  k
 3  2   3  1  6  1
Mã Hoá Nguồn
 Mã Hoá Huffman “m” phân
- Tiến hành thuật toán Huffman tĩnh với 07 ký tự:
S1 0.3 0.3 0.45 (2)
S2 0.25 0.25 0.3 (1) 1.0
S3 0.2 0.2 (2)
S4 0.12 0.13 (1) 0.25 (0)
S5 0.08 (2)
S6 0.05 (1) 0.12 (0)
S7 0 (0)
S7 là ký tự được thêm vào
Mã Hoá Nguồn
Vẽ cây mã: 1.0
(2)
(0)
(1)

0.25 0.3 0.45


S2 S1 ) (2)
(0
(1)
0.12 0.13 0.2
S4 (0) (2S3
)
(1)
0 S7 0.05 S6 0.08 S5
Mã Hoá Nguồn
- Duyệt cây mã để xác định từ mã:
Ký tự Từ mã
S1 1
S2 0
S3 22
S4 20
S5 212
S6 211

- Entropy:
H  0.3log3  1 / 0.3  0.25log3  1 / 0.25   0.2log 3  1 / 0.2 
0.12log3  1 / 0.12   0.08log 3  1 / 0.08   0.05log 3  1 / 0.05 
 1.4891
Mã Hoá Nguồn
- Chiều dài trung bình
L  0.3  1  0.25  1  0.2  2  0.12  2  0.08  3
 0.05  3
 1.58

- Hiệu suất mã hoá:


1.4891
  94.25 %
1.58
Mã Hoá Nguồn
 Mã Hoá Huffman “m” phân
Bài tập 3.9: Cho nguồn tin có 11 tin

Si S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11

P(Si) 0.16 0.14 0.13 0.12 0.1 0.1 0.06 0.06 0.05 0.04 0.04

a) Lập bộ mã Huffman tứ phân (m=4) cho nguồn tin S


b) Tính độ dài trung bình từ mã và hiệu suất của bộ mã
Mã Hoá Nguồn
 Mã Huffman thích ứng
- 1 ký tự tương đương với 1 cây mã
- Cây mã phát triển theo quá trình mã hóa
- Cùng một ký tự những thời điểm xuất hiện khác nhau sẽ
dẫn đến từ mã khác nhau
- Trọng số của các nút (lá, trung gian và gốc) thõa:
- Trái sang phải, dưới lên trên: đảm bảo không giảm
- Nếu giảm đổi lại cây mã
Mã Hoá Nguồn
 Mã Huffman thích ứng
- Từ mã ngõ ra
- Nếu ký tự mã hóa xuất hiện lần đầu : từ mã ngõ ra sẽ
gồm trọng số nhánh từ gốc đến trước nhánh ký tự mã
hóa và ký tự mã hóa.
- Nếu ký tự mã hóa đã có trước đó: từ mã ngõ ra sẽ là
trọng số của nhánh từ gốc đến ký tự mã hóa.
Mã Hoá Nguồn
 Mã hoá đoạn
- Mã hóa đoạn là kỹ thuật đơn giản nhất để mã hóa nén
dữ liệu.
- Dựa trên nguyên lý mã hóa những chuỗi giá trị dữ liệu
được lặp lại
- Ưu điểm là dễ dàng và nhanh chóng
Mã Hoá Nguồn
 Mã hoá nén từ điển
- Mã hóa nén không yêu cầu biết trước phân bố của
nguồn, tính thích nghi cao.
- Mã hóa chuỗi ký tự độ dài khác nhau thành các thẻ bài.
- Các loại mã hóa từ điển
LZ77
LZSS
LZ78
LZW
Mã Hoá Nguồn
 Mã hoá LZ77
- Mã hóa tuần tự chuỗi ký tự
- Nếu có chuỗi ký tự giống trong bộ mã thì xuất thẻ bài:
< i,j,k>
i vị trí ký tự giống trong từ điển
j độ dài cụm ký tự giống
k ký tự kế tiếp
- Không có ký tự giống xuất: <‘0’,’0’,’ký tự đang xét’>
- Ví dụ mã hóa chuỗi ký tự: abcaabcdecar
Mã Hoá Nguồn
 Mã hoá LZSS
- Mã hóa tuần tự chuỗi ký tự
Nếu có chuỗi ký tự giống trong bộ mã thì xuất thẻ bài:
< 0,i,j>
i vị trí ký tự giống trong từ điển
j độ dài cụm ký tự giống
- Không có ký tự giống xuất: <‘1’,’ký tự đang xét’>
Ví dụ mã hóa chuỗi ký tự: abcaabcdecar
Mã Hoá Nguồn
 Mã hoá LZ78
- Mã hóa tuần tự từ chuỗi ký tự
- Nếu có cụm ký tự giống “chính xác” ký tự có trong từ
điển thì xuất thẻ bài < vị trí cụm ký tự trong từ điển,
‘ký tự tiếp theo’> và nối ký tự tiếp theo để tạo thành
cụm ký tự mới trong từ điển.
- Nếu không có cụm ký tự giống sẽ xuất thẻ bài <0,’ký tự
đang mã hóa’>
Ví dụ mã hóa chuỗi ký tự: abcaabcdecar
Mã Hoá Nguồn
 Mã hoá LZW
- Mã hóa tuần tự từ chuỗi ký tự
- Nếu có cụm ký tự giống “chính xác” ký tự có trong từ
điển thì xuất vị trí của cụm ký tự trong từ điển và nối
ký tự mã hóa tiếp theo để tạo thành cụm ký tự mới
trong từ điển.
- Nếu không có cụm ký tự giống sẽ xuất chuỗi ký tự đã
biết cuối cùng và thêm ký tự mới vào từ điển.
Ví dụ mã hóa chuỗi ký tự: abcaabcdecar
Mã Hoá Nguồn
Bài tập 3.10: Cho nguồn tin có 8 tin
S1 S2 S3 S4 S5 S6 S7 S8

0.25 0.2 0.15 0.12 0.1 0.07 0.06 0.05

a) Hãy mã hoá nguồn này bằng mã hoá đều


b) Hãy mã hoá nguồn này bằng mã hoá Shannon
c) Hãy mã hoá nguồn này bằng mã hoá Shannon-Fano
d) Hãy mã hoá nguồn này bằng mã hoá Huffman
e) Tính hiệu suất mã hoá của các bộ mã.
Mã Hoá Nguồn
Bài tập 3.11: Hãy mã hoá thông điệp sau sử dụng kỹ
thuật mã hoá nguồn thích hợp

HOC VIEN CONG NGHE BUU CHINH VIEN THONG


CO SO TAI TPHCM

Ghi chú: không có khoảng trắng giữa các từ.

You might also like