SlideShare une entreprise Scribd logo
1  sur  33
LÝ THUYẾT THÔNG TIN
CHƯƠNG 3: NÉN DỮ LIỆU
NGUYỄN THỊ NGA
NGUYỄN THANH DŨNG
NGUYỄN THANH TÍNH
NỘI DUNG CHƯƠNG
I. Các định nghĩa về mã hóa
II. Bất đẳng thức Kraft cho mã tức thời
III. Các mã tối ưu
IV. Các giới hạn chiều dài của mã tối ưu
V. Bất đẳng thức Kraft cho mã tách được duy nhất
VI. Mã Huffman
VII. Định lý về sự tối ưu của mã hóa Huffman
I. CÁC ĐỊNH NGHĨA VỀ MÃ HÓA
1. Các định nghĩa về mã hóa dữ liệu :
- Tập hợp các phép ánh xạ để biến ngẫu nhiên X nhận giá trị
trong tập 𝒳 thành các chuỗi có chiều dài xác định của các ký tự
thuộc tập ký tự mã 𝒟.
- Ví dụ :
Biến ngẫu nhiên X thuộc tập 𝒳={A,H,N,T}
Tập kí tự mã 𝒟={0,1}
Bộ mã : phép ánh xạ
A 0
H 10
N 110
T 111
=> “NHAT” 110100111
- C(x) : từ mã (codeword) tương ứng với giá trị x của biến X.
- l(x) : chiều dài của C(x).
- Ví dụ:
Biến ngẫu nhiên X thuộc tập 𝒳={A,H,N,T}
Tập kí tự mã 𝒟={0,1}
Các từ mã : Chiều dài:
C A = 0, l A = 1;
C H = 10, l H = 2;
C N = 110, l N = 3;
C T = 111, l T = 3;
2. Chiều dài trung bình của bộ mã :
-Chiều dài trung bình L(C) của bộ mã C cho biến ngẫu nhiên X
tuân theo phân phối p(x).
L C = x∈𝒳 p x l(x)
-Ví dụ:
Cho biến ngẫu nhiên X có:
Suy ra: L(C) = 1,75 bit
Nhận xét: L(C) = H(X) = 1,75 bit.
X A H N T
P(X=x) 1/2 1/4 1/8 1/8
C(x) 0 10 110 111
3. Bộ mã tách được :
- Bộ mã được gọi là tách được nếu tất cả các giá trị của X đều
được mã hóa thành những chuỗi khác nhau trong bảng mã.
x ≠ x′ => C x ≠ C(x′)
- Ví dụ:
Cho biến ngẫu nhiên X có:
+ Với chuỗi mã hóa có dạng : 0101100110
+ Chuỗi sau mã hóa : ABABBAABBA hay cũng có thể là
CCDCD và nhiều kết quả khác nữa.
X A B C D
C(x) 0 1 01 10
4. Bộ mã mở rộng :
- Bộ mã mở rộng C∗ của C là phép biến đổi chuỗi các giá trị của
biến X thành chuỗi từ mã.
C x1, x2, … xn = C x1 C x2 … C(xn)
- Ví dụ:
Cho C x1 = 0 và C x2 = 01
=> Bộ mã mở rộng C x1, x2 = 001
5. Bộ mã tách được duy nhất:
- Một bộ mã được gọi là tách được duy nhất khi bộ mã mở rộng
từ nó tách được duy nhất.
- Ví dụ:
Giả sử dãy mã nhận được (cần giải mã) là: 0010000101001.
=> Chuỗi sau giải mã là: abaaabbab
X a b
C(x) 0 01
6. Mã tức thời :
- Một bộ mã được gọi là tức thời nếu không tồn tại từ mã này
là tiền tố của từ mã khác.
- Ví dụ:
Cho biến ngẫu nhiên X có:
Chuỗi cần mã hóa là: 0111011000.
=> Chuỗi sau giải mã: ABDCA
X A B C D
C(x) 0 11 100 101
MỐI QUAN HỆ GIỮA CÁC BỘ MÃ
TẤT CẢ CÁC MÃ
MÃ TÁCH ĐƯỢC
MÃ TÁCH ĐƯỢC DUY
NHẤT
MÃ TỨC THỜI
II. ĐỊNH LÍ KRAFT
- Điều kiện cần :
Cho mã tức thời X ={ x1, x2, x3} có:
Bảng chữ cái 𝒟 kích thước D (thường lấy D=2).
Chiều dài các từ mã: l1, l2, … ln.
Chiều dài từ mã thỏa mãn (bất đẳng thức Kraft):
i=1
n
D−li ≤ 1
- Điều kiện đủ :
Nếu có tập hợp các từ mã thỏa mãn bất đẳng thức Kraft thì
sẽ tồn tại bộ mã tức thời bởi các bộ mã có chiều dài như trên.
a. Định nghĩa cây bậc D cỡ K:
- Cây bậc D cỡ k là cây có hệ thống nút, cạnh thỏa mãn:
+ Từ 1 nút có số cạnh đi ra không vượt quá D.
+ Nút lá cách nút gốc không quá k cạnh.
- Tính chất :
+ Các nút (trừ nút gốc) của cây
đều được mã hóa từ tập {0,1,2,…,D-1}
+ Mỗi nút (đã mã hóa) có mã của
nút kề trước là tiền tố.
+ Tổng số các nút lá bằng Dk
.
b. Chứng minh bất đẳng thức Kraft:
- Điều kiện cần:
Cho trước bộ mã tức thời X ={ 𝑥1, 𝑥2, 𝑥3} với 𝑙1 ≤ 𝑙2 ≤ ⋯ ≤ 𝑙𝑛.
Ta cần chứng minh:
i=1
n
D−li ≤ 1
- Xây dựng cây bậc D cỡ ln.
- Qui tắc : một nút nào đó được chọn để gán một từ mã thì tất cả
các nút kề sau nút gán từ mã phải được xóa.
- Cụ thể như sau:
Chọn một nút có mã với độ dài mã là l1 gán cho nó một từ
mã C(x1).
=>Tổng số nút lá được xóa tương ứng là Dln−l1
- Vậy số nút lá bị xóa hoặc được gán từ mã là:
=> Dln−l1 +Dln−l2 + ⋯ + Dln−ln = i=1
n
Dln−li ≤ Dln
= tổng số nút lá.
=> i=1
n
D−li ≤ 1
- Điều kiện đủ :
Giả sử :
i=1
n
D−li ≤ 1
- Xét l1, l2, … , ln và cơ số sinh mã là D:
+ Bước 1: Ta xếp theo thứ tự l1 ≤ l2 ≤ ⋯ ≤ ln, xây dựng cây
bậc D cỡ k.
+ Bước 2: Chọn nút bất kỳ trên cây có độ dài l1 gán cho từ
mã C(x1) và xóa tất cả các nút kề sau nó.
+ Bước 3: Lặp lại bước 2 đối với các từ mã còn lại C(xi) ứng
với li.
=> Bảng mã X={ x1, x2, x3} là bảng mã tức thời.
- Ví dụ:
Xét bảng mã thỏa mãn n=3; l1=1; l2=2; l3=3; D=2
i=1
3
D−li =
1
21 +
1
22 +
1
23 =
7
8
< 1
=> X ={ x1, x2, x3} là bảng mã thức thời
Chọn x1 = 0 cắt bỏ các nút con của x1.
Chọn x2 = 10 cắt bỏ các nút con của x2.
Chọn x3 =111.
III. MÃ TỐI ƯU:
1. Định nghĩa:
- Mã tối ưu là mã có chiều dài trung bình ngắn nhất so với các
mã tách được duy nhất khác.
- Tồn tại nhiều mã tối ưu cho mỗi nguồn , các mã tối ưu này có
cùng chiều dài.
- Trong các mã tối ưu đó sẽ có 1 mã là mã tức thời.
2. Tính chất:
- Bộ mã tức thời sẽ thỏa mãn bất đẳng thức Kraft.
𝑖=1
𝑚
𝐷−𝑙𝑖 ≤ 1
- Với D là kích thước tập kí tự mã, m là số từ mã và l là chiều dài
từ mã .
-Ngược lại, nếu chiều dài của các từ mã thỏa mãn bất đẳng thức
Kraft thì tồn tại bộ mã tức thời.
3. Ví dụ:
- Cho biến ngẫu nhiên X có:
- Ta có:
𝑖=1
3
𝐷−𝑙𝑖 = 2−1 + 2−2 + 2−3 = 0.875 < 1
=> 𝐿𝐶1
= 0.4*1 + 0.3*2 + 0.3*3 = 1.9
𝑖=1
3
𝐷−𝑙𝑖 = 2−1
+ 2−2
+ 2−2
= 1
=>𝐿𝐶2
= 0.4*1 + 0.3*2 + 0.3*2 = 1.6
- Từ 𝐿𝐶2
< 𝐿𝐶1
=> min𝐿𝐶 = 𝐿𝐶2
= 1.6
Vậy 𝐶2 là mã tối ưu của biến ngẫu nhiên X.
X 1 2 3
P(X=i) 0.4 0.3 0.3
C1 0 10 110
C2 0 01 11
IV. CÁC GIỚI HẠN CHIỀU DÀI CỦA MÃ TỐI ƯU:
1. Định lý chiều dài trung bình mã:
a. Định lý:
- Chiều dài trung bình mã L của bộ mã tức thời bất ký từ bảng kí
tự gồm D ký tự của biến ngẫu nhiên X lớn hơn hoặc bằng entropy
cơ số D của X:
L ≥ 𝐻𝐷 ( 𝑋 )
- Dấu “ = “ xảy ra khi và chỉ khi 𝐷−𝑙𝑖 = 𝑝𝑖
b. Chứng minh:
- Cho 2 phân phối ngẫu nhiên pi và qi , ta có:
𝑖
𝑝𝑖 log𝐷
1
𝑝𝑖
≤
𝑖
𝑝𝑖 log𝐷
1
𝑞𝑖
Ta có ∀ 𝑥 > 0 , ln 𝑥 ≤ 𝑥 − 1 => log𝐷 𝑥 ≤
𝑥−1
ln 𝐷 𝑖 𝑝𝑖 log𝐷
1
𝑝𝑖
−
Nên 𝐿 ≥ 𝐻𝐷 𝑋 − 𝑖 𝑝𝑖 log𝐷 𝐾
Vì mã tức thời nên : 𝐾 = 𝑖 𝐷−𝑙𝑖 ≤ 1
=> log𝐷 𝐾 ≤ 0
=> 𝐿 ≥ 𝐻𝐷 𝑋
Khi 𝐷−𝑙𝑖 = pi
=>
𝐾 = 𝑖 𝐷−𝑙𝑖 = 𝑖 𝑝𝑖 = 1 → log𝐷 𝐾 = 0
𝑞𝑖 =
𝐷−𝑙𝑖
𝐾
= 𝑝𝑖
=> 𝐻𝐷 𝑋 ≤ 𝑖 𝑝𝑖 log𝐷 𝐾 + 𝐿 = 𝐿
2. Định lý giới hạn chiều dài mã tối ưu:
a. Định lý :
- Cho nguồn theo phân phối p, Bảng kí tự D, với 𝑙1* , 𝑙2* ,.. là
chiều dài tối ưu của các từ mã . T có định lý giới hạn chiều dài
như sau :
𝐻𝐷 𝑋 ≤ L* ≤ 𝐻𝐷 (𝑋) + 1
- Chiều dài trung bình của bộ mã tối ưu của biến X: L = 𝐻𝐷(𝑋)
𝐷−𝑙𝑖 = 𝑝𝑖 𝑙𝑖 = 𝑙𝑜𝑔𝐷
1
𝑝𝑖
- Chiều dài 𝑙𝑖 có thể không phải là số nguyên, do đó ta làm tròn
chiều dài thành số tự nhiên gần nhất
𝑙𝑖 = 𝑙𝑜𝑔𝐷
1
𝑝𝑖
-Ví dụ: Cho biến ngẫu nhiên X nhận giá trị X ={1,2,3} và tập ký
tự D = {0,1}.
- 𝑙1 = 𝑙𝑜𝑔2
1
0.6
= 0.74 ≈ 1
- 𝑙2 = 𝑙𝑜𝑔2
1
0.3
= 1.74 ≈ 2
- 𝑙3 = 𝑙𝑜𝑔2
1
0.1
= 3.32 ≈ 4
X 1 2 3
P(X=i) 0.6 0.3 0.1
b. Chứng minh :
- Ta có: li = log𝐷
1
pi
=> li
* = 𝑙𝑜𝑔𝐷
1
𝑝𝑖
( 𝑥 𝑙à 𝑠ố 𝑛𝑔𝑢𝑦ê𝑛 𝑛ℎỏ 𝑛ℎấ𝑡 ≥ 𝑥 )
𝐿∗ = 𝑝𝑖. 𝑙𝑖
Nên : log𝐷
1
pi
≤ li
* < log𝐷
1
pi
+ 1 (1)
𝐷−𝑙𝑖∗
≤ 𝐷
− 𝑙𝑜𝑔𝐷
1
𝑝𝑖 = 𝑝𝑖 = 1
(2)
=> 𝑝𝑖. log𝐷
1
pi
≤ 𝑝𝑖.li
* < 𝑝𝑖. log𝐷
1
pi
+ 𝑝𝑖
=> 𝑝𝑖. log𝐷
1
pi
≤ 𝑝𝑖.li
* < 𝑝𝑖. log𝐷
1
pi
+ 𝑝𝑖
=> HD(X) ≤ L* < HD(X) + 1
V.BẤT ĐẲNG THỨC KRAFT CHO
MÃ TÁCH ĐƯỢC DUY NHẤT.
1 . Bất đẳng thức McMillan - Kraft :
- Xét một tập nguồn X = {x1, x2 ,……, xn } được mã hóa
thành một mã tách được duy nhất từ tập D-ký tự .
- Chiều dài trung bình của các từ mã của mã tách được
từ nguồn trên phải thỏa mãn bất đẳng thức sau :
𝑖=1
𝑛
𝐷−𝑙𝑖 ≤ 1
- Với li là chiều dài từ mã tương ứng lần lượt với tập
nguồn X.
2. Chứng minh bất đẳng thức :
- Xét các độ dài từ mã của kí tự từ tập nguồn X . Với bộ mã mở
rộng ta có :
l(x1, x2 ,……, xn ) = 𝑖=1
𝑛
li
- Mũ k vế trái của bất đẳng thức ta được :
( 𝑖=1
𝑛
𝐷−𝑙𝑖)
𝑘
= 𝑖1=1
𝑛
𝑖2=1
𝑛
… 𝑖𝑘=1
𝑛
𝐷−(𝑙1+𝑙2…+𝑙𝑘)
 ( 𝑖=1
𝑛
𝐷−𝑙𝑖)
𝑘
= 𝑙=1
𝑘.𝑙𝑚𝑎𝑥
𝑎𝑙.𝐷−𝑙
.
- Trong đó 𝑙𝑚𝑎𝑥 là chiều dài lớn nhất của từ mã và 𝑎𝑙 là số
lượng chuỗi nguồn 𝑋𝑘 ánh xạ vào một từ mã có chiều dài là l.
-Vì đây là mã tách được duy nhất nên 𝑎𝑙 < = 𝐷𝑙.
=>( 𝑖=1
𝑛
𝐷−𝑙𝑖 )𝑘 ≤ 𝑙=1
𝑘.𝑙𝑚𝑎𝑥
𝐷𝑙 .𝐷−𝑙
= 𝑘. 𝑙𝑚𝑎𝑥
=> 𝑖=1
𝑛
𝐷−𝑙𝑖 ≤ (𝑘. 𝑙𝑚𝑎𝑥)
1
𝑘
-Vì bất đẳng thức trên đúng với mọi k ∈ N, nên đúng với k->∞
=> 𝑖=1
𝑛
𝐷−𝑙𝑖 ≤ 1
VI. MÃ HÓA HUFFMAN.
1. Giới thiệu :
- Mã hóa HUFFMAN là một thuật toán mã hóa dùng để nén dữ
liệu.
- Nó dựa trên bảng tần suất xuất hiện các kí tự cần mã hóa để xây
dựng một bộ mã nhị phân cho các kí tự đó sao cho dung lượng
sau khi mã hóa là nhỏ nhất.
2. Ứng dụng :
- Máy tính IBM , MODEM, máy Fax, định dạng ZIP,…..
3. Thuật toán :
- Bước 1: Sắp xếp các kí tự nguồn theo thứ tự xác suất giảm dần
- Bước 2: Ta kết hợp 2 giá trị có xác suất thấp nhất thành một từ
gốc mới với xác suất là bằng tổng của 2 xác suất thấp nhất .
- Bước 3: Tiếp tục kết hợp hai giá trị có xác suất thấp trong tập
giá trị gốc mới cho đến khi ta chỉ còn một giá trị gốc với xác suất
bằng 1.
- Bước 4: Sau khi có được cây mã HUFFMAN hoàn chỉnh , ta
tiến hành gán các kí tự 0, 1 lên các nhánh của cây.
- Bước 5: Sắp xếp các kí tự mã hóa từ gốc đến nhánh , ta có được
từ mã ứng với giá trị gốc ban đầu .
4. Ví dụ:
- Xét tập nguồn X như sau :
C 0.4
B 0.25
D 0.2
A 0.15
C 0.4
AD 0.35
B 0.25
X A B C D
P(x) 0.15 0.25 0.4 0.2
ABD 0.6
C 0.4
ABCD 1
- Từ sơ đồ trên ta có cây HUFFMAN :
ABCD
C ABD
B AD
D
A
0 1
0 1
0 1
A 110
B 10
C 0
D 111
VII.Định lý về sự tối ưu của mã hóa HUFFMAN
- Định lý : Mã hóa Huffman là mã tối ưu : Nếu C* là Huffman
và C là mã tách được duy nhất bất ký, L(C*) ≤ L(C).
-Bổ đề : Với bất kỳ phân phối ngẫu nhiên nào cũng tồn tại mã tức
thời tối ưu thỏa mãn các điều sau :
- Chiều dài từ mã tăng khi xác suất giảm .
- Hai từ mã dài nhất có chiều dài bằng nhau .
- Hai từ mã dài nhất chỉ khác nhau ở ký tự cuối và tương
ứng với hai giá trị có xác suất thấp nhất.
CẢM ƠN ĐÃ LẮNG NGHE

Contenu connexe

Similaire à CompressData.pptx

đề 2003
đề 2003đề 2003
đề 2003dvcuong
 
304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docx304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docxNguynAnThch
 
Dientuso Sld
Dientuso SldDientuso Sld
Dientuso Sldhoadktd
 
Phương pháp số và lập trình - Nội suy, Đạo hàm, Tích phân
Phương pháp số và lập trình - Nội suy, Đạo hàm, Tích phânPhương pháp số và lập trình - Nội suy, Đạo hàm, Tích phân
Phương pháp số và lập trình - Nội suy, Đạo hàm, Tích phânHajunior9x
 
Tổng Hợp Công Thức Sinh Học 12 Full
Tổng Hợp Công Thức Sinh Học 12 Full Tổng Hợp Công Thức Sinh Học 12 Full
Tổng Hợp Công Thức Sinh Học 12 Full nataliej4
 
Kiến trúc máy tính và hợp ngữ bài 06
Kiến trúc máy tính và hợp ngữ bài 06Kiến trúc máy tính và hợp ngữ bài 06
Kiến trúc máy tính và hợp ngữ bài 06Nhóc Nhóc
 
Convolution Decode
Convolution DecodeConvolution Decode
Convolution DecodeEddie Bui
 
08 mat101 bai4_v2.3013101225
08 mat101 bai4_v2.301310122508 mat101 bai4_v2.3013101225
08 mat101 bai4_v2.3013101225Yen Dang
 
Chuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfChuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfHngTrn365275
 
Chuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfChuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfnguyenkaka2
 
06 mat102-bai 3-v1.0
06 mat102-bai 3-v1.006 mat102-bai 3-v1.0
06 mat102-bai 3-v1.0Yen Dang
 

Similaire à CompressData.pptx (20)

đề 2003
đề 2003đề 2003
đề 2003
 
304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docx304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docx
 
Dãy số tuyến tính
Dãy số tuyến tínhDãy số tuyến tính
Dãy số tuyến tính
 
Dientuso Sld
Dientuso SldDientuso Sld
Dientuso Sld
 
MATMAT- Chuong1
MATMAT- Chuong1MATMAT- Chuong1
MATMAT- Chuong1
 
Phương pháp số và lập trình - Nội suy, Đạo hàm, Tích phân
Phương pháp số và lập trình - Nội suy, Đạo hàm, Tích phânPhương pháp số và lập trình - Nội suy, Đạo hàm, Tích phân
Phương pháp số và lập trình - Nội suy, Đạo hàm, Tích phân
 
Nguyen ham
Nguyen hamNguyen ham
Nguyen ham
 
Tổng Hợp Công Thức Sinh Học 12 Full
Tổng Hợp Công Thức Sinh Học 12 Full Tổng Hợp Công Thức Sinh Học 12 Full
Tổng Hợp Công Thức Sinh Học 12 Full
 
Kiến trúc máy tính và hợp ngữ bài 06
Kiến trúc máy tính và hợp ngữ bài 06Kiến trúc máy tính và hợp ngữ bài 06
Kiến trúc máy tính và hợp ngữ bài 06
 
Convolution Decode
Convolution DecodeConvolution Decode
Convolution Decode
 
Luận văn: Thuật toán mô phỏng mcmc thích nghi và ứng dụng, 9đ
Luận văn: Thuật toán mô phỏng mcmc thích nghi và ứng dụng, 9đLuận văn: Thuật toán mô phỏng mcmc thích nghi và ứng dụng, 9đ
Luận văn: Thuật toán mô phỏng mcmc thích nghi và ứng dụng, 9đ
 
Dãy số vmo2009
Dãy số vmo2009Dãy số vmo2009
Dãy số vmo2009
 
Kỹ thuật số
Kỹ thuật sốKỹ thuật số
Kỹ thuật số
 
Dien tu so
Dien tu soDien tu so
Dien tu so
 
08 mat101 bai4_v2.3013101225
08 mat101 bai4_v2.301310122508 mat101 bai4_v2.3013101225
08 mat101 bai4_v2.3013101225
 
Luận văn: Phương trình phi tuyến không chỉnh loại J - đơn điệu, 9đ
Luận văn: Phương trình phi tuyến không chỉnh loại J - đơn điệu, 9đLuận văn: Phương trình phi tuyến không chỉnh loại J - đơn điệu, 9đ
Luận văn: Phương trình phi tuyến không chỉnh loại J - đơn điệu, 9đ
 
Chuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfChuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdf
 
Chuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfChuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdf
 
06 mat102-bai 3-v1.0
06 mat102-bai 3-v1.006 mat102-bai 3-v1.0
06 mat102-bai 3-v1.0
 
Gt de quy_2
Gt de quy_2Gt de quy_2
Gt de quy_2
 

CompressData.pptx

  • 1. LÝ THUYẾT THÔNG TIN CHƯƠNG 3: NÉN DỮ LIỆU NGUYỄN THỊ NGA NGUYỄN THANH DŨNG NGUYỄN THANH TÍNH
  • 2. NỘI DUNG CHƯƠNG I. Các định nghĩa về mã hóa II. Bất đẳng thức Kraft cho mã tức thời III. Các mã tối ưu IV. Các giới hạn chiều dài của mã tối ưu V. Bất đẳng thức Kraft cho mã tách được duy nhất VI. Mã Huffman VII. Định lý về sự tối ưu của mã hóa Huffman
  • 3. I. CÁC ĐỊNH NGHĨA VỀ MÃ HÓA 1. Các định nghĩa về mã hóa dữ liệu : - Tập hợp các phép ánh xạ để biến ngẫu nhiên X nhận giá trị trong tập 𝒳 thành các chuỗi có chiều dài xác định của các ký tự thuộc tập ký tự mã 𝒟. - Ví dụ : Biến ngẫu nhiên X thuộc tập 𝒳={A,H,N,T} Tập kí tự mã 𝒟={0,1} Bộ mã : phép ánh xạ A 0 H 10 N 110 T 111 => “NHAT” 110100111
  • 4. - C(x) : từ mã (codeword) tương ứng với giá trị x của biến X. - l(x) : chiều dài của C(x). - Ví dụ: Biến ngẫu nhiên X thuộc tập 𝒳={A,H,N,T} Tập kí tự mã 𝒟={0,1} Các từ mã : Chiều dài: C A = 0, l A = 1; C H = 10, l H = 2; C N = 110, l N = 3; C T = 111, l T = 3;
  • 5. 2. Chiều dài trung bình của bộ mã : -Chiều dài trung bình L(C) của bộ mã C cho biến ngẫu nhiên X tuân theo phân phối p(x). L C = x∈𝒳 p x l(x) -Ví dụ: Cho biến ngẫu nhiên X có: Suy ra: L(C) = 1,75 bit Nhận xét: L(C) = H(X) = 1,75 bit. X A H N T P(X=x) 1/2 1/4 1/8 1/8 C(x) 0 10 110 111
  • 6. 3. Bộ mã tách được : - Bộ mã được gọi là tách được nếu tất cả các giá trị của X đều được mã hóa thành những chuỗi khác nhau trong bảng mã. x ≠ x′ => C x ≠ C(x′) - Ví dụ: Cho biến ngẫu nhiên X có: + Với chuỗi mã hóa có dạng : 0101100110 + Chuỗi sau mã hóa : ABABBAABBA hay cũng có thể là CCDCD và nhiều kết quả khác nữa. X A B C D C(x) 0 1 01 10
  • 7. 4. Bộ mã mở rộng : - Bộ mã mở rộng C∗ của C là phép biến đổi chuỗi các giá trị của biến X thành chuỗi từ mã. C x1, x2, … xn = C x1 C x2 … C(xn) - Ví dụ: Cho C x1 = 0 và C x2 = 01 => Bộ mã mở rộng C x1, x2 = 001
  • 8. 5. Bộ mã tách được duy nhất: - Một bộ mã được gọi là tách được duy nhất khi bộ mã mở rộng từ nó tách được duy nhất. - Ví dụ: Giả sử dãy mã nhận được (cần giải mã) là: 0010000101001. => Chuỗi sau giải mã là: abaaabbab X a b C(x) 0 01
  • 9. 6. Mã tức thời : - Một bộ mã được gọi là tức thời nếu không tồn tại từ mã này là tiền tố của từ mã khác. - Ví dụ: Cho biến ngẫu nhiên X có: Chuỗi cần mã hóa là: 0111011000. => Chuỗi sau giải mã: ABDCA X A B C D C(x) 0 11 100 101
  • 10. MỐI QUAN HỆ GIỮA CÁC BỘ MÃ TẤT CẢ CÁC MÃ MÃ TÁCH ĐƯỢC MÃ TÁCH ĐƯỢC DUY NHẤT MÃ TỨC THỜI
  • 11. II. ĐỊNH LÍ KRAFT - Điều kiện cần : Cho mã tức thời X ={ x1, x2, x3} có: Bảng chữ cái 𝒟 kích thước D (thường lấy D=2). Chiều dài các từ mã: l1, l2, … ln. Chiều dài từ mã thỏa mãn (bất đẳng thức Kraft): i=1 n D−li ≤ 1 - Điều kiện đủ : Nếu có tập hợp các từ mã thỏa mãn bất đẳng thức Kraft thì sẽ tồn tại bộ mã tức thời bởi các bộ mã có chiều dài như trên.
  • 12. a. Định nghĩa cây bậc D cỡ K: - Cây bậc D cỡ k là cây có hệ thống nút, cạnh thỏa mãn: + Từ 1 nút có số cạnh đi ra không vượt quá D. + Nút lá cách nút gốc không quá k cạnh. - Tính chất : + Các nút (trừ nút gốc) của cây đều được mã hóa từ tập {0,1,2,…,D-1} + Mỗi nút (đã mã hóa) có mã của nút kề trước là tiền tố. + Tổng số các nút lá bằng Dk .
  • 13. b. Chứng minh bất đẳng thức Kraft: - Điều kiện cần: Cho trước bộ mã tức thời X ={ 𝑥1, 𝑥2, 𝑥3} với 𝑙1 ≤ 𝑙2 ≤ ⋯ ≤ 𝑙𝑛. Ta cần chứng minh: i=1 n D−li ≤ 1 - Xây dựng cây bậc D cỡ ln. - Qui tắc : một nút nào đó được chọn để gán một từ mã thì tất cả các nút kề sau nút gán từ mã phải được xóa.
  • 14. - Cụ thể như sau: Chọn một nút có mã với độ dài mã là l1 gán cho nó một từ mã C(x1). =>Tổng số nút lá được xóa tương ứng là Dln−l1 - Vậy số nút lá bị xóa hoặc được gán từ mã là: => Dln−l1 +Dln−l2 + ⋯ + Dln−ln = i=1 n Dln−li ≤ Dln = tổng số nút lá. => i=1 n D−li ≤ 1
  • 15. - Điều kiện đủ : Giả sử : i=1 n D−li ≤ 1 - Xét l1, l2, … , ln và cơ số sinh mã là D: + Bước 1: Ta xếp theo thứ tự l1 ≤ l2 ≤ ⋯ ≤ ln, xây dựng cây bậc D cỡ k. + Bước 2: Chọn nút bất kỳ trên cây có độ dài l1 gán cho từ mã C(x1) và xóa tất cả các nút kề sau nó. + Bước 3: Lặp lại bước 2 đối với các từ mã còn lại C(xi) ứng với li. => Bảng mã X={ x1, x2, x3} là bảng mã tức thời.
  • 16. - Ví dụ: Xét bảng mã thỏa mãn n=3; l1=1; l2=2; l3=3; D=2 i=1 3 D−li = 1 21 + 1 22 + 1 23 = 7 8 < 1 => X ={ x1, x2, x3} là bảng mã thức thời Chọn x1 = 0 cắt bỏ các nút con của x1. Chọn x2 = 10 cắt bỏ các nút con của x2. Chọn x3 =111.
  • 17. III. MÃ TỐI ƯU: 1. Định nghĩa: - Mã tối ưu là mã có chiều dài trung bình ngắn nhất so với các mã tách được duy nhất khác. - Tồn tại nhiều mã tối ưu cho mỗi nguồn , các mã tối ưu này có cùng chiều dài. - Trong các mã tối ưu đó sẽ có 1 mã là mã tức thời. 2. Tính chất: - Bộ mã tức thời sẽ thỏa mãn bất đẳng thức Kraft. 𝑖=1 𝑚 𝐷−𝑙𝑖 ≤ 1 - Với D là kích thước tập kí tự mã, m là số từ mã và l là chiều dài từ mã . -Ngược lại, nếu chiều dài của các từ mã thỏa mãn bất đẳng thức Kraft thì tồn tại bộ mã tức thời.
  • 18. 3. Ví dụ: - Cho biến ngẫu nhiên X có: - Ta có: 𝑖=1 3 𝐷−𝑙𝑖 = 2−1 + 2−2 + 2−3 = 0.875 < 1 => 𝐿𝐶1 = 0.4*1 + 0.3*2 + 0.3*3 = 1.9 𝑖=1 3 𝐷−𝑙𝑖 = 2−1 + 2−2 + 2−2 = 1 =>𝐿𝐶2 = 0.4*1 + 0.3*2 + 0.3*2 = 1.6 - Từ 𝐿𝐶2 < 𝐿𝐶1 => min𝐿𝐶 = 𝐿𝐶2 = 1.6 Vậy 𝐶2 là mã tối ưu của biến ngẫu nhiên X. X 1 2 3 P(X=i) 0.4 0.3 0.3 C1 0 10 110 C2 0 01 11
  • 19. IV. CÁC GIỚI HẠN CHIỀU DÀI CỦA MÃ TỐI ƯU: 1. Định lý chiều dài trung bình mã: a. Định lý: - Chiều dài trung bình mã L của bộ mã tức thời bất ký từ bảng kí tự gồm D ký tự của biến ngẫu nhiên X lớn hơn hoặc bằng entropy cơ số D của X: L ≥ 𝐻𝐷 ( 𝑋 ) - Dấu “ = “ xảy ra khi và chỉ khi 𝐷−𝑙𝑖 = 𝑝𝑖 b. Chứng minh: - Cho 2 phân phối ngẫu nhiên pi và qi , ta có: 𝑖 𝑝𝑖 log𝐷 1 𝑝𝑖 ≤ 𝑖 𝑝𝑖 log𝐷 1 𝑞𝑖
  • 20. Ta có ∀ 𝑥 > 0 , ln 𝑥 ≤ 𝑥 − 1 => log𝐷 𝑥 ≤ 𝑥−1 ln 𝐷 𝑖 𝑝𝑖 log𝐷 1 𝑝𝑖 −
  • 21. Nên 𝐿 ≥ 𝐻𝐷 𝑋 − 𝑖 𝑝𝑖 log𝐷 𝐾 Vì mã tức thời nên : 𝐾 = 𝑖 𝐷−𝑙𝑖 ≤ 1 => log𝐷 𝐾 ≤ 0 => 𝐿 ≥ 𝐻𝐷 𝑋 Khi 𝐷−𝑙𝑖 = pi => 𝐾 = 𝑖 𝐷−𝑙𝑖 = 𝑖 𝑝𝑖 = 1 → log𝐷 𝐾 = 0 𝑞𝑖 = 𝐷−𝑙𝑖 𝐾 = 𝑝𝑖 => 𝐻𝐷 𝑋 ≤ 𝑖 𝑝𝑖 log𝐷 𝐾 + 𝐿 = 𝐿
  • 22. 2. Định lý giới hạn chiều dài mã tối ưu: a. Định lý : - Cho nguồn theo phân phối p, Bảng kí tự D, với 𝑙1* , 𝑙2* ,.. là chiều dài tối ưu của các từ mã . T có định lý giới hạn chiều dài như sau : 𝐻𝐷 𝑋 ≤ L* ≤ 𝐻𝐷 (𝑋) + 1 - Chiều dài trung bình của bộ mã tối ưu của biến X: L = 𝐻𝐷(𝑋) 𝐷−𝑙𝑖 = 𝑝𝑖 𝑙𝑖 = 𝑙𝑜𝑔𝐷 1 𝑝𝑖 - Chiều dài 𝑙𝑖 có thể không phải là số nguyên, do đó ta làm tròn chiều dài thành số tự nhiên gần nhất 𝑙𝑖 = 𝑙𝑜𝑔𝐷 1 𝑝𝑖
  • 23. -Ví dụ: Cho biến ngẫu nhiên X nhận giá trị X ={1,2,3} và tập ký tự D = {0,1}. - 𝑙1 = 𝑙𝑜𝑔2 1 0.6 = 0.74 ≈ 1 - 𝑙2 = 𝑙𝑜𝑔2 1 0.3 = 1.74 ≈ 2 - 𝑙3 = 𝑙𝑜𝑔2 1 0.1 = 3.32 ≈ 4 X 1 2 3 P(X=i) 0.6 0.3 0.1
  • 24. b. Chứng minh : - Ta có: li = log𝐷 1 pi => li * = 𝑙𝑜𝑔𝐷 1 𝑝𝑖 ( 𝑥 𝑙à 𝑠ố 𝑛𝑔𝑢𝑦ê𝑛 𝑛ℎỏ 𝑛ℎấ𝑡 ≥ 𝑥 ) 𝐿∗ = 𝑝𝑖. 𝑙𝑖 Nên : log𝐷 1 pi ≤ li * < log𝐷 1 pi + 1 (1) 𝐷−𝑙𝑖∗ ≤ 𝐷 − 𝑙𝑜𝑔𝐷 1 𝑝𝑖 = 𝑝𝑖 = 1 (2) => 𝑝𝑖. log𝐷 1 pi ≤ 𝑝𝑖.li * < 𝑝𝑖. log𝐷 1 pi + 𝑝𝑖 => 𝑝𝑖. log𝐷 1 pi ≤ 𝑝𝑖.li * < 𝑝𝑖. log𝐷 1 pi + 𝑝𝑖 => HD(X) ≤ L* < HD(X) + 1
  • 25. V.BẤT ĐẲNG THỨC KRAFT CHO MÃ TÁCH ĐƯỢC DUY NHẤT. 1 . Bất đẳng thức McMillan - Kraft : - Xét một tập nguồn X = {x1, x2 ,……, xn } được mã hóa thành một mã tách được duy nhất từ tập D-ký tự . - Chiều dài trung bình của các từ mã của mã tách được từ nguồn trên phải thỏa mãn bất đẳng thức sau : 𝑖=1 𝑛 𝐷−𝑙𝑖 ≤ 1 - Với li là chiều dài từ mã tương ứng lần lượt với tập nguồn X.
  • 26. 2. Chứng minh bất đẳng thức : - Xét các độ dài từ mã của kí tự từ tập nguồn X . Với bộ mã mở rộng ta có : l(x1, x2 ,……, xn ) = 𝑖=1 𝑛 li - Mũ k vế trái của bất đẳng thức ta được : ( 𝑖=1 𝑛 𝐷−𝑙𝑖) 𝑘 = 𝑖1=1 𝑛 𝑖2=1 𝑛 … 𝑖𝑘=1 𝑛 𝐷−(𝑙1+𝑙2…+𝑙𝑘)  ( 𝑖=1 𝑛 𝐷−𝑙𝑖) 𝑘 = 𝑙=1 𝑘.𝑙𝑚𝑎𝑥 𝑎𝑙.𝐷−𝑙 . - Trong đó 𝑙𝑚𝑎𝑥 là chiều dài lớn nhất của từ mã và 𝑎𝑙 là số lượng chuỗi nguồn 𝑋𝑘 ánh xạ vào một từ mã có chiều dài là l.
  • 27. -Vì đây là mã tách được duy nhất nên 𝑎𝑙 < = 𝐷𝑙. =>( 𝑖=1 𝑛 𝐷−𝑙𝑖 )𝑘 ≤ 𝑙=1 𝑘.𝑙𝑚𝑎𝑥 𝐷𝑙 .𝐷−𝑙 = 𝑘. 𝑙𝑚𝑎𝑥 => 𝑖=1 𝑛 𝐷−𝑙𝑖 ≤ (𝑘. 𝑙𝑚𝑎𝑥) 1 𝑘 -Vì bất đẳng thức trên đúng với mọi k ∈ N, nên đúng với k->∞ => 𝑖=1 𝑛 𝐷−𝑙𝑖 ≤ 1
  • 28. VI. MÃ HÓA HUFFMAN. 1. Giới thiệu : - Mã hóa HUFFMAN là một thuật toán mã hóa dùng để nén dữ liệu. - Nó dựa trên bảng tần suất xuất hiện các kí tự cần mã hóa để xây dựng một bộ mã nhị phân cho các kí tự đó sao cho dung lượng sau khi mã hóa là nhỏ nhất. 2. Ứng dụng : - Máy tính IBM , MODEM, máy Fax, định dạng ZIP,…..
  • 29. 3. Thuật toán : - Bước 1: Sắp xếp các kí tự nguồn theo thứ tự xác suất giảm dần - Bước 2: Ta kết hợp 2 giá trị có xác suất thấp nhất thành một từ gốc mới với xác suất là bằng tổng của 2 xác suất thấp nhất . - Bước 3: Tiếp tục kết hợp hai giá trị có xác suất thấp trong tập giá trị gốc mới cho đến khi ta chỉ còn một giá trị gốc với xác suất bằng 1. - Bước 4: Sau khi có được cây mã HUFFMAN hoàn chỉnh , ta tiến hành gán các kí tự 0, 1 lên các nhánh của cây. - Bước 5: Sắp xếp các kí tự mã hóa từ gốc đến nhánh , ta có được từ mã ứng với giá trị gốc ban đầu .
  • 30. 4. Ví dụ: - Xét tập nguồn X như sau : C 0.4 B 0.25 D 0.2 A 0.15 C 0.4 AD 0.35 B 0.25 X A B C D P(x) 0.15 0.25 0.4 0.2 ABD 0.6 C 0.4 ABCD 1
  • 31. - Từ sơ đồ trên ta có cây HUFFMAN : ABCD C ABD B AD D A 0 1 0 1 0 1 A 110 B 10 C 0 D 111
  • 32. VII.Định lý về sự tối ưu của mã hóa HUFFMAN - Định lý : Mã hóa Huffman là mã tối ưu : Nếu C* là Huffman và C là mã tách được duy nhất bất ký, L(C*) ≤ L(C). -Bổ đề : Với bất kỳ phân phối ngẫu nhiên nào cũng tồn tại mã tức thời tối ưu thỏa mãn các điều sau : - Chiều dài từ mã tăng khi xác suất giảm . - Hai từ mã dài nhất có chiều dài bằng nhau . - Hai từ mã dài nhất chỉ khác nhau ở ký tự cuối và tương ứng với hai giá trị có xác suất thấp nhất.
  • 33. CẢM ƠN ĐÃ LẮNG NGHE