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ị
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
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
• 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:
- bai_giang_ky_thuat_truyen_thong_chuong_4_ma_hoa_nguon.pdf