Bài giảng Kỹ thuật truyền thông - Chương 4: Mã hóa nguồn

Cơ bản về mã hóa

• Tại một thời điểm, nguồn tạo ra một ký hiệu từ bảng ký hiệu của

nguồn

• Thông thường, bảng chữ là hữu hạn

• S = {s1, s2, , sq} Ở đây q là ||S|| hoặc sô ký hiệu của nguồn S

• Mã hóa: Sử dụng một tập hữu hạn các ký hiệu mã để biểu diễn các

ký hiệu của nguồn

• Có thể biểu diễn tập ký hiệu mã bởi tập X = {x1, x2, ,xr}. Ví dụ với mã BCD, X

= (0,1), r=2

• r là ||X|| hay số ký hiệu mã khác nhau

• được gọi là cơ số của mã

• r = 2 : mã nhị phân

• r ≠ 2: mã r trị

Bài giảng Kỹ thuật truyền thông - Chương 4: Mã hóa nguồn trang 1

Trang 1

Bài giảng Kỹ thuật truyền thông - Chương 4: Mã hóa nguồn trang 2

Trang 2

Bài giảng Kỹ thuật truyền thông - Chương 4: Mã hóa nguồn trang 3

Trang 3

Bài giảng Kỹ thuật truyền thông - Chương 4: Mã hóa nguồn trang 4

Trang 4

Bài giảng Kỹ thuật truyền thông - Chương 4: Mã hóa nguồn trang 5

Trang 5

Bài giảng Kỹ thuật truyền thông - Chương 4: Mã hóa nguồn trang 6

Trang 6

Bài giảng Kỹ thuật truyền thông - Chương 4: Mã hóa nguồn trang 7

Trang 7

Bài giảng Kỹ thuật truyền thông - Chương 4: Mã hóa nguồn trang 8

Trang 8

Bài giảng Kỹ thuật truyền thông - Chương 4: Mã hóa nguồn trang 9

Trang 9

Bài giảng Kỹ thuật truyền thông - Chương 4: Mã hóa nguồn trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 69 trang xuanhieu 1120
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Kỹ thuật truyền thông - Chương 4: Mã hóa nguồn", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kỹ thuật truyền thông - Chương 4: Mã hóa nguồn

Bài giảng Kỹ thuật truyền thông - Chương 4: Mã hóa nguồn
• Example:
 • Original Source :
 4.6.2. Mã số học - Thuật toán mã hóa 
 Bản tin rỗng sẽ được coi tương ứng với một điểm bất kỳ trong đoạn
 [0,1). Điểm đầu I(0) = 0, điểm cuối U(0) = 0.
 Với bản tin dài n, thuật toán mã hóa bản tin sẽ lần lượt tìm điểm đầu, 
 điểm cuối cho bản tin dài n = 1, 2,.. là I(n), U(n). Công thức tính lần
 lượt các điểm này như sau:
  I(n) = I(n-1) + {U(n-1) – I(n-1)} F(sn-1)
  U(n) = I(n-1) + {U(n-1) – I(n-1)} F(sn)
  Với ánh xạ S ={si: i=1,..,q} = {1,..,q}. Tin sn là tin nằm ở cuối bản tin. F(sn-1) là hàm
 phân bố xác suất của tin ở trước tin sn trong tập tin của nguồn.
  Chứng minh được I(n) >= I(n-1) và U(n) <= U(n-1). Đoạn của bản tin dài hơn nằm
 trong đoạn của bản tin ngắn hơn
 4.6.2. Mã số học - Thuật toán mã hóa 
 Sau khi xác định điểm đầu điểm cuối của đoạn chứa bản tin, điểm biểu
 diễn bản tin được chọn là điểm có giá trị là phân số nhị phân bé nhất trong
 đoạn đó. Phần phân số nhị phân của điểm này sẽ được lấy làm mã mã
 hóa bản tin.
  Điểm biểu diễn bản tin nằm trong các đoạn biểu diễn các bản tin rút
 gọn còn 1, 2, 3, .., n tính từ đầu bản tin.
 Với mã số học r trị thì chọn điểm biểu diễn từ mã là điểm có giá trị bằng
 phân số r phân ngắn nhất trong đoạn và phần phân số này là mã của bản
 tin.
 Mã số học cho độ dài trung bình của từ mã Hr(S) <= L <= Hr(S) + 2/n. N 
 độ dài bản tin. 
 4.6.2.Mã số học - thuật toán mã hóa
 Ví dụ: Nguồn S = {a,b,c} có P(S) = {0.7, 0.1, 0.2} và bản
 tin m = acb
 Hàm phân bố xác suất F(si):
  si = a -> x = 1
  si = b -> x = 2
  si = c -> x = 3
 4.6.2.Mã số học - thuật toán mã hóa
 Khi chưa mã hóa (bản tin rỗng) bản tin sẽ là điểm bất kỳ trong đoạn [0,1) hay I(0) =0 và U(0) =1
 Với ký hiệu đầu, bản tin là a:
  I(1) = I(0) + [U(0) - I(0)]F(si = rỗng) = 0 + (1 -0)0 = 0
  U(1)= I(0) + [u(0) – I(0)]F(si=a) = 0 + (1 – 0) 0.7 = 0.7
 Với ký hiệu thứ hai, bản tin là ac: 
  I(2) = I(1) + [U(1) – I(1)] F(b) = 0 + (0.7 – 0) 0.8 = 0.56
  U(2) = I(1) + [U(1) – I(1)]F(c) = 0 + (0.7 -0) 1= 0.7
 Với ký hiệu thứ ba, bản tin là acb: 
  I(3) = I(2) + [U(2) – I(2)] F(a) = 0.56 + (0.7 – 0.56)0.7 = 0.658
  U(3) = I(2) + {U(2) – I(2)} F(b) = 0.56 + (0.7 -0.56) 0.8 = 0.672
 Chọn điểm biểu diễn bản tin là 0,6640625 có giá trị nhị phân 0.1010101 có số chữ số nhị phân ngắn
 nhất trong đoạn [0.658, 0.672]. Mã của bản tin sẽ là 1010101.
 4.6.2. Mã số học - Thuật toán giải mã
 Mã của bản tin là chuỗi nhị phân nằm trong đoạn biểu diễn 
 bản tin con dài 1,2,.., n tin của bản tin (tính từ đầu bản tin)
 Bắt đầu từ đầu chuối mã nhận được chúng ta sẽ xác định 
 đoạn chứa điểm có giá trị bằng phân số ứng với chuỗi mã nhị 
 phân dài 1, 2,.. chữ số nhị phân. Khi đoạn chứa chuỗi mã nhị 
 phân nằm trong đoạn chứa bản tin con dài n = 1,2,.. ta tách ra 
 được bản tin dàicon n của bản tin. 
 Liên tiếp tìm các tin cho đến khi hết tin của bản tin.
 Mã số học không cần truyền bảng mã đến nơi nhận.
 4.6.2. Mã số học - Thuật toán giải mã
 Ví dụ: Với nguồn S = (a,b,c) với P(S) = (0.7, 0.1, 0.2) và bản tin m = acb
 được mã hóa 1010101. 
 Với cách mã hóa số học bản tin a nằm trong đoạn [ 0, 0.7], ac nằm trong
 đoạn [0.56, 0.7] , acb nằm trong đoạn [0.658, 0.672].
 Chuỗi mã nhận được là 101010
  Ký hiệu mã đầu 1 ứng với giá trị 0.1 nhị phân, nằm trong đoạn [0.100.., 
 0.111..] nhị phân hay [0.5,1] chưa cho phép xác định tin đầu tiên vì đây là
 khoảng chứa ký hiệu đầu có thể là a hoặc b hoặc c.
  Thêm ký hiệu 10 ứng với giá trị 0.10 nhị phân, nằm trong đoạn [0.1000.., 
 0.10111..] nhị phân hay [0.5, 0.75], ký hiệu đầu có thể là a hoặc b 
 4.6.2. Mã số học - Thuật toán giải mã
 Thêm ký hiệu tiếp 101 ứng với giá trị 0.101 nhị phân, nằm trong khoảng [0.10100.., 
 0.10111..] hay [0.625, 0.75], ký hiệu đầu vẫn có thể a hoặc b
 Thêm ký hiệu tiếp 1010 ứng với giá trị 0.1010, nằm trong khoảng [0.101000.., 
 0.101011..] hay [0.625, 0.6875]. Đoạn này nằm trong đoạn của tin đầu là a, [0, 0.7] 
 và trong đoạn của tin thứ hai là c, [0.56, 0.7]. Vậy tin đầu của bản tin là a và tin thứ
 hai là c. 
 Tiếp tục 10101 ứng với đoạn [0.65625, 0.6875], 101010 ứng với đoạn [0.65625, 
 0.67185] không nằm trong đoạn [0.658, 0.672] nên không giải mã được. 
 Mã 1010101 ứng với đoan [0.6640625, 0.671875] nằm trong đoạn [0.658, 0.672] 
 ứng với bản tin acb. Vậy bản tin là acb.
 So với mã Huffman, bản tin acb có 6 ký tự. Tuy nhiên nếu phải mở rộng nguồn thì
 mã số học có hiệu suất mã khá tốt so với Huffman 
4.7. Mã hóa nguồn với mã có độ dài cố 
định
 •
4.7. Mã hóa nguồn với từ mã có độ dài 
cố định (Cont.)
•
4.8. Mã hóa theo loạt dài (Run-length 
coding)
• Mã hóa theo loạt dài (RLC) là cách đơn giản và hiệu quả để nén dữ
 liệu khi một tin xuất hiện liên tiếp nhau trong bản tin. 
 • Mã này là thích hợp cho một số loại dữ liệu ảnh, nhưng không luôn tích hợp 
 cho văn bản vì rất hiếm khi một ký tự văn bản xuất hiện 2 lần liên tiếp nhau.
• Để nén một chuỗi tin giống nhau, mã hóa theo loạt dài đơn giản thay 
 chuỗi này bằng 1 tin của chuỗi và tiếp theo là số lần lặp tin này của 
 chuỗi
• Bên giải mã, cần phân biệt mã của số lần lặp và tiến hành phục hồi 
 lại chuỗi tin 
4.9. Mã Lempel Ziv
• Mã hóa theo từ điển:
 • Tạo một danh sách các từ và số thứ tự xuất hiện của từ này trong dạng văn
 bản của bản tin. Danh sách này được gọi là từ điển
 • Chuyển văn bản của bản tin thành chuỗi các chỉ thị chỉ ra điểm vào của từ
 trong từ điển. Bản tin chuyển thành chuỗi các chỉ số.
 • Khi giải mã từ chuỗi chỉ số là các điểm vào của từ trong từ điển phục hồi lại
 các từ của bản tin.
 • Mã này phù hợp cho bản tin chuyển về được dạng văn bản.
 • Mã Lempel-Ziv là mã theo từ điển và có nhiều biến dạng. Chúng ta chỉ quan
 tâm đến hai biến dạng LZ77 và LZ78.
4.9.1. LZ77
• Xây dựng từ theo luật: 
 • Mỗi “từ mới” là một “từ cũ” thêm một ký tự tiếp theo trong văn bản
 • Mỗi từ được biểu diễn bởi một bộ ba (m,n,c)
 • n (n >1) là số ký hiệu của chuỗi tìm được trùng với một chuỗi đã xuất hiện trước
 nó (“từ cũ”. 
 • c là ký hiệu tiếp theo chuỗi tìm được.
 • m là số vị trí cần phải quay ngược lại để tìm thấy điểm đầu của chuỗi đã tìm được.
 • Bộ ba đầu tiên là (0,0,c). C là ký tự nguồn đầu tiên. Từ đầu tiên là từ rỗng nằn ở vị
 trí 0 trong văn bản.
. Văn bản được chuyển thành chuỗi các bộ ba ứng với các từ tìm được.
. Quá trình giải mã: 
 • Bắt đầu từ bộ ba đầu tiên, dần dần phục hồi lại các từ theo chuỗi các bộ ba nhận
 được.
4.9.1. LZ77
• Văn b: the_fat_cat_sat_on_the_mat.
• Chuỗi các bộ ba:
 • Bắt đầu từ đầu bản tin : (0,0,t), (0,0,h), (0,0,e),(0,0,_), (0,0,f), (0,0,a), (0,0,t), 
 (0,0,_),(0,0,c), (4,3,s),(4,3,o), (0,0,n), (0,0,_), (19,4,m), (11,2,.)
• Giải mã: 
 • (0,0,t)->t, (0,0,h)->h (th), .. (0,0,c)->c(the_fat_c), 
 (4,3,s) (the_fat_cat_s).
4.9.1. LZ78
• Từ rỗng coi là từ nằm ở vị trí 0 trong từ điển. 
• Từ có ví trí 1 tìm được là từ có 1 ký hiệu là ký hiệu đầu của văn bản. Từ
 này là từ cũ (rỗng lấy thêm một ký tự đầu của văn bản). Từ nảy được tách
 ra khỏi văn bản.
• Tiếp tục tìm các từ có thứ tự tìm được tiếp theo dựa vào nguyên tắc “từ
 mới” là chuối ký hiệu của “từ cũ” và lấy thêm 1 ký hiệu tiếp theo trong
 văn bản. Từ này được tách khỏi văn bản. Tiếp tục như vậy cho đến khi
 hết văn bản. 
• Mỗi từ được biểu diễn bởi một cặp (i,c)
 • i là số thứ tự tìm thấy từ
 • c là ký tự lấy thêm
• Văn bản là chuỗi các cặp (i,c) 
4.9.2. LZ78
• Text: the_fat_cat_sat_on_the_mat.
4.10. Mã nguồn liên tục 
•
4.10. Mã nguồn liên tục
  Mã hóa nguồn cho nguồn liên tục là mã hóa bản tin được
 nguồn tạo ra với số ký hiệu mã phải sử dụng là tối thiểu
  Mã nguồn tối ưu có độ dài trung bình từ mã L = Hr(S) cho số
 ký hiệu mã phải sử dụng để mã hóa bản tin là tối thiểu
  Nguồn liên tục được coi là có số tin tạo ra trông 1 đơn vị thời
 gian bằng số mẫu của nguồn rời rạc tương đương (Ts = 
 1/(2Fmax))
  Lượng tin trung bình của mỗi mẫu sẽ là Hr(S) nên số ký hiệu
 mã để mã hóa mỗi mẫu sẽ là L >= Hr(S). Lmin = Hr(s)
4.10. Mã nguồn liên tục
 Mã hóa nguồn cho nguồn liên tục có thể có các phương pháp:
  Mã hóa theo thời gian là mã hóa bản tin được biểu diễn
 theo thời gian
  Mã hóa theo tần số là mã hóa bản tin được biểu diễn theo
 tần số
  Mã hóa mô hình nguồn là tìm mô hình toán học cho nguồn
 và mã hóa các tham số của mô hình
 4.10.1. Mã nguồn liên tục theo thời gian
 Mã hóa bản tin là chuyển bản tin thành chuỗi các từ mã hay thành
 chuỗi ký hiệu mã Mã hóa nguồn cần thực hiện hai nhiệm vụ:
  Chuyển đổi bản tin tạo ra từ tương tự sang số (ADC)
  Giảm số ký hiệu mã đến tối thiểu (hay nén dữ liệu). 
 ADC bao gồm 3 thao tác kế tiếp
 Lấy mẫu
 Lượng tử hóa
 mã hóa (thường là mã nhị phân)
4.10. Mã nguồn liên tục theo thời gian
• Hai nhiệm vụ của mã hóa nguồn cho nguồn liên tục có thể thực hiện song 
 song hoặc theo thứ tự: 
 • Nén trước khi ADC (nén tương tự): 
 • Nén biên độ. 
  Luật nén A: giả sử biên độ x có 0<= |x| <=1. X’ = sign(x){A|x|/(1+lnA)}, khi |x| <=1/A và
 x’ = sign(x){(1 + ln(A|x|)/(1+lnA)}, khi 1/A < |x| <=1.
 • Nén tần số
  Tần số Mel: m = 2595lg(1 + f/700). Với f là tần số đo bằng Hz. 
 • Song song (nén và các thao tác của ADC xen nhau): Ví dụ PCM kết hợp nén và mã
 hóa Delta.
 • Lấy mẫu
 • Tính giá trị Delta (đạo hàm rời rạc) để nén chênh lệch biên độ trung bình giữa hai mẫu liên
 tiếp. 
 • Lượng tử hóa Delta (cùng sai số nhưng delta sẽ giảm số giá trị lượng tử) 
 • ADC trước khi nén: 
 • Đây là thuật toán nén nguồn rời rạc. 
4.10. Mã nguồn liên tục theo thời gian
• Với nguồn ảnh thì mỗi ảnh được chia thành các điểm ảnh (Pixel) theo lưới chia 
 tạo thành bởi các đường song song với hai cạnh của ảnh và cách nhau dưới góc
 nhìn nhỏ hơn hoặc bằng góc phân biêt. 
• Thông tin của ảnh là thông tin từ từng điểm của ảnh. Việc đọc thông tin từ các
 điểm ảnh là thực hiện đọc từng dòng từ trái qua phải và lần lượt từ dòng trên
 xuống dưới.
• Với ảnh động thì sau khi đọc hết thông tin của 1 ảnh sẽ quay lại đọc từ phần tử
 góc trên bên trái của ảnh mới
• Thông tin của ảnh là rời rạc theo thời gian nhưng liên tục theo mức. Trong
 trường hợp số hóa thì thông tin của mỗi điểm ảnh sẽ được lượng tử hóa
 thường là 256 mức (1 byte)
• Thông tin của 1 điểm ảnh thường bao gồm 1 thông tin về độ chói (Britgh) với
 lưới chia theo góc phân biệt 2 phut và 3 thông tin màu với lưới chia theo góc
 phân biệt 5 phút.
4.10. Mã nguồn liên tục theo thời gian
• Việc nén thông tin của 1 ảnh còn gọi là nén ảnh tĩnh thường là tìm
 cách mã hóa để tạo ra chuỗi điểm ảnh có thông tin giống nhau liên
 tiếp và áp dụng mã RLC
• Việc nén ảnh động thường là truyền thông tin 1 ânh đầu và sau đó
 tìm các thông tin thay đổi của ảnh sau so với ảnh trước và chỉ truyền
 các thông tin sai khác của ảnh sau.
4• ..10.1 PCM
4.10.1. PCM
  Để giảm số bit dùng mã hóa PCM áp dụng thêm một luật
 nén:
  Nén biên độ trước PCM làm cho dải động Xmax – Xmin
 giảm dẫn đến số mức lượng tử M = (Xmax – Xmin)/ 
 Vref +1 giảm số bit mã hóa mỗi mẫu n = log2(M) 
 giảm
  Tính giá trị Delta = mẫu(i) – mẫu(i-1). Delta là đạo hàm
 rời rạc của bản tin nên dải động của Delta sẽ bé hơn
4• .10. .1. Mã hóa delta
4.10.2. Mã hóa theo tần số
 Mã hóa nguồn liên tục theo tần số sẽ mã hóa phổ bản tin được tạo
 ra.
 Thông thường các giải pháp mã hóa tần số là mã hóa tham số 
 ước lượng tham số của phổ rồi mã hóa nó
 Do nguồn nói chung có mô hình là quá trình ngẫu nhiên ergodic nên
 tham số biến thiên chậm lấy mẫu thưa hơn và dải động nhỏ
 Hai kỹ thuật hay được sử dụng là mã hóa theo dải băng tần con và
 mã hóa theo các thành phần cơ bản (ví dụ mã hóa formant)
 4.10.2. Mã hóa theo dải băng tần con
 Mã hóa theo băng tần con dựa vào khái niệm băng tần tới hạn (Critical 
 Band) của các cơ quan cảm nhận: cơ quan cảm nhận không phân biêt
 được độ cao của từng tần sô riêng mà theo từng dải tần số == Băng tới
 hạn
 Ví dụ tai người phân biệt các băng tần số (giống như sử dụng bộ lọc thông
 dải) có tần số trung tâm và độ rộng của băng tăng dần theo tần số
 .
 4.10.2. Mã hóa theo dải băng tần con
 Dải tần số tai người nghe tốt sẽ có 24 băng tới hạn, 
mỗi băng gọi là 1 Bark (hay tính theo độ đo Bark)
 Mã hóa theo dải băng tần con sẽ sử dụng một hệ
thống các mạch lọc thông dải có tham số tương ứng
với tham số của các băng tới hạn. Các đầu ra của các
mạch lọc là biên độ trung bình của tín hiệu của mỗi
Băng con. 
Bên giải mã sẽ sử dụng hệ thống mạch lọc giống bên
 mã hóa với đầu vào là nhiễu trắng. Hệ số truyền đạt
 của các mạch lọc này là đầu ra của các bộ lọc mã
 hóa. MP3 là loại mã này cho âm thanh.
4.10.2. Mã hóa theo formant
  Hình bên là khái niệm formant trong phổ
  Hình dưới là phổ đồ (spectograme) của đoạn âm thanh
 4.10.2. Mã hóa theo mô hình nguồn
 Phương pháp mã hóa theo mô hình nguồn là phương pháp tìm mô hình toán học
 cho nguồn từ bản tin được tạo ra
 Phương pháp mã hóa theo mô hình nguồn được ứng dụng nhiều trong thực tế xử lý
 âm thanh là mã hóa dự đoán tuyến tính (Linear Predictive Coding).
 Phương pháp mã hóa dự đoán tuyến tính coi mỗi mẫu tín được tạo ra s[n] là tổ hợp
 tuyến tính của các mẫu tạo ra trước nó s[n – k]
 Ở đây ak là các hệ số cần tìm của bộ dự đoán cấp p, e[n] là sai số dự đoán mẫu
 s[n], p Nếu dự đoán đúng thì sai số e[n] =0. Hay phương trình trên khi e[n] = 0 là
 phương trình sai phân của 1 nguồn tạo ra các mẫu tin s[n]
 4.10.2. Mã hóa theo mô hình nguồn
 Phương trình trên có thể coi là phương trình sai phân của 1 hệ tuyến tính bất
 biến với đầu vào là e[n] và đầu ra s[n]. Hàm truyền của hệ trong không gian z:
 Đây là mô hình của hệ chỉ có các điểm cực hay hệ tự hồi quy
 (AutoRegressive)
 Để hệ trên trở thành mô hình nguồn ta cần tìm các hệ số ak sao cho e[n] -> 0 
 (đạt giá trị cực tiểu)
 4.10.2. Mã hóa theo mô hình nguồn
 Chọn các ak để cực tiểu hóa e[n] có thể đạt được bằng cách cực tiểu hóa năng
 lượng sai số khi chọn các ak theo phương trình
 Đạo hàm phương trình trên theo từng hệ số ak và tìm giá trị ak cho phương trình
 đạo hàm bằng 0 sẽ là hệ p phương trình với các hệ số ak cho năng lượng tối thiểu
 cho phép giải ra các hệ số ak và sai số dự đoán e[n]
 Kết quả là tập hệ số ak của mô hình nguồn và sai số dự đoán e[n] tối thiểu tìm được
 là đầu vào của mô hình. Đây là các tham số trong mã hóa mô hình nguồn.
 Bên giải mã sẽ là hệ tự hồi quy với tập hệ số ak và đầu vào là e[n].
 Bài tập
 Bài 4: Giả sử nguồn tin chỉ tao một bản tin có nội dung là ‘công nghệ
 thông tin’ viết ở dạng tiếng Việt không dấu, không phân biệt chữ
 thường chữ hoa và không có dấu cách giữa các từ. Mỗi ký tự trong
 bản tin là 1 tin được tạo ra từ nguồn. Xác suất xuất hiện của mỗi tin 
 là tần suất xuất hiện của nó trong bản tin. 
 a. Hãy mã hóa bản tin trên theo mã Huffman với cơ số mã r = 4. 
 b. Tính hiệu suất của mã
 c. Cần mở rông nguồn bao nhiêu lần ở hiệu suất mã đạt ít nhất 98%
 Bài 5: Hãy mã hóa bản tin ở câu 4 bằng mã LZ77 và bằng mã LZ78

File đính kèm:

  • pdfbai_giang_ky_thuat_truyen_thong_chuong_4_ma_hoa_nguon.pdf