You are on page 1of 71

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
 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.
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ã Morse
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ã
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
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ã
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
- Tính bất đẳng thức Kraft
Nguồn tin Bộ mã A Bộ mã B

S1 0 0

S2 10 10

S3 110 110

S4 111 11
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


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:
-  − log 2 ( 0.6 )  =
Chiều dài từ mã của S1: l1 = 0.737  =1
- Chiều dài từ mã của S2: l2 = − log 2 ( 0.3)  =1.737  =
2
-  − log 2 ( 0.1)  =
Chiều dài từ mã của S3: l3 = 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
Ví dụ: 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 xuất mã hoá.
Mã Hoá Nguồn
 Mã Hoá Shannon
Tin P q Nhị Phân l Từ mã

S1 0.3 0 0,00 2 00

S2 0.25 0.3 0,01001.. 2 01

S3 0.2 0.55 0,10001.. 3 100

S4 0.12 0.75 0,11000.. 4 1100

S5 0.08 0.87 0,11011.. 4 1101

S6 0.05 0.95 0,111100 5 11110

H(X) = 2.36, L = 2.75, H(X)/L = 85.82%


Mã Hoá Nguồn
 Mã Hoá Shannon
Bài tập 1: Mã hoá nguồn X có 8 ký tự A, B, C, D, E, F, G
và H với xác suất xuất hiện lần lượt là 0.5, 0.15, 0.15,
0.08, 0.08, 0.02, 0.01 và 0.01. Tính hiệu xuấ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: 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: 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 bằng 1.
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ơ đồ.
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.
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ã
Ký tự Từ mã
1.0
A 1

B 01

C 00
0.4 0.6
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: 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: 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 thoả

m + α  ( m − 1)
k =
'

- 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.
- Giá trị α = 1.5
- Số ký tự thêm vào m + α  ( m − 1) − k =
1
- Tiến hành thuật toán Huffman tĩnh
- Duyệt cây mã
- Kết quả: 1,2, 00, 02,010, 011.
- L = 1.58, H = 1.4891  94,25 (%)
Mã Hoá Nguồn
 Mã Hoá Huffman “m” phân
Cho nguồn 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

You might also like