Ch−ơng I: Tổng quan về nén

Một phần của tài liệu Giáo trình Truyền hình số doc (Trang 25 - 33)

1.1. Khái niệm chung

1.1.1. Mục đích của nén

Với công nghệ hiện nay, các thiết bị đều có dải thông nhất định.Các dòng số tốc độ cao yêu cầu dải thông rất rộng v−ợt quá khả năng cho phép của thiết bị. Một cách sơ bộ, nén là quá trình làm giảm tốc độ bit của các dòng dữ liệu tốc độ cao mà vẫn đảm bảo chất l−ợng hình ảnh hoặc âm thanh cần truyền tải.

1.1.2. Bản chất của nén

Khác với nguồn dữ liệu một chiều nh− nguồn âm, đặc tuyến đa chiều của nguồn hình ảnh cho thấy: nguồn ảnh chứa nhiều sự d− thừa hơn các nguồn thông tin khác. Đó là:

♦ Sự d− thừa về mặt không gian (spatial redundancy):

Các điểm ảnh kề nhau trong một mành có nội dung gần giống nhau.

♦ Sự d− thừa về mặt thời gian (temporal redundancy): Các điểm ảnh có cùng vị trí ở các mành kề nhau rất giống nhau.

♦ Sự d− thừa về mặt cảm nhận của con ng−ời:

Mắt ng−ời nhạy cảm hơn với các thành phần tần số thấp và ít nhạy cảm với sự thay đổi nhanh, tần số cao.

Do vậy, có thể coi nguồn hình ảnh là nguồn có nhớ (memory source).

Nén ảnh thực chất là quá trình sử dụng các phép biến đổi để loại bỏ đi các sự d− thừa và loại bỏ tính có nhớ của nguồn dữ liệu, tạo ra nguồn dữ liệu mới có l−ợng thông tin nhỏ hơn. Đồng thời sử dụng các dạng mã hoá có khả năng tận dụng xác suất xuất hiện của các mẫu sao cho số l−ợng bít sử dụng để mã hoá một l−ợng thông tin nhất định là nhỏ nhất mà vẫn đảm bảo chất l−ợng theo yêu cầu.

Biến đổi:

Một số phép biến đổi và kỹ thuật đ−ợc sử dụng để loại bỏ tính có nhớ của nguồn dữ liệu ban đầu, tạo ra một nguồn dữ liệu mới t−ơng đ−ơng chứa l−ợng thông tin ít hơn. Ví dụ nh− kỹ thuật tạo sai số dự báo trong công nghệ DPCM hay phép biến đổi cosin rời rạc của công nghệ mã hoá chuyển đổi. Các phép biến đổi phải có tính thuận nghịch để có thể khôi phục tín hiệu ban đầu nhờ phép biến đổi

ng−ợc.

M hoá:

Các dạng mã hoá đ−ợc lựa chọn sao cho có thể tận dụng đ−ợc xác suất xuất hiện của mẫu. Thông th−ờng sử dụng mã RLC (run length coding: mã hoá loạt dài) và mã VLC (variable length coding): gắn cho mẫu có xác suất xuất hiện cao từ mã có độ dài ngắn sao cho chứa đựng một khối l−ợng thông tin nhiều nhất với số bit truyền tải ít nhất mà vẫn đảm bảo chất l−ợng yêu cầu.

1.1.3. Phân loại nén:

Các thuật toán nén có thể phân làm hai loại: Nén không tổn thất (lossless compression) và nén có tổn thất (lossy compression).

♦ Thuật toán nén không tổn thất không làm suy giảm, tổn hao dữ liệu. Do vậy, ảnh khôi phục hoàn toàn chính xác với ảnh nguồn.

♦ Các thuật toán nén có tổn thất chấp nhận loại bỏ một số thông tin không quan trọng nh− các thông tin không quá nhạy cảm với cảm nhận của con ng−ời để đạt đ−ợc hiệu suất nén cao hơn, Do vậy, ảnh khôi phục chỉ rất gần chứ không phải là ảnh nguyên thủy.

Biến đổi Mã hoá

Giải mã Biến đổi

ng−ợc Dữ liệu Dữ liệu đã nén Quá trình nén Quá trình giải nén Dữ liệu Dữ liệu đãnén

Đối với nén có tổn thất, chất l−ợng ảnh là mội yếu tố vô cùng quan trọng, Tuỳ theo yêu cầu ứng dụng mà các mức độ loại bỏ khác nhau đ−ợc sử dụng, cho mức độ chất l−ợng theo yêu cầu.

1.2. Một số dạng mã hoá sử dụng trong các công nghệ nén.

Các dạng mã hoá sử dụng trong công nghệ nén đều tận dụng đ−ợc xác suất xuất hiện mẫu nhằm đạt đ−ợc độ dài mã trung bình (số bit trung bình cần để mã hoá một mẫu) là nhỏ nhất. Tuy nhiên, độ dài này có một giới hạn d−ới mà không một ph−ơng pháp mã hoá nào có thể cung cấp độ dài từ mã trung bình nhỏ hơn. Đó là “ entropy” của nguồn tín hiệu.

1.2.1. Khái niệm entropy của nguồn tín hiệu:

Khái niệm ”entropy” của nguồn tín hiệu đ−ợc sử dụng để đo l−ợng thông tin một nguồn tin chứa đựng.

Một nguồn tin có N mẫu {s1,s2,..,sN} với xác suất xuất hiện các mẫu t−ơng ứng là {p(s1), p(s2),.., p(sN)}. Khi đó,” entropy” của nguồn tin đ−ợc định nghĩa nh− (adsbygoogle = window.adsbygoogle || []).push({});

sau: ) ( log ). ( 2 1 i i N ii S P S P H ∑ = − =

Ví dụ một nguồn tin gồm các mẫu {1,0} với: + xác suất xuất hiện mẫu “1” là 0,8. + xác suất xuất hiện mẫu “0” là 0,2. Khi đó “entropy” của nguồn là:

H = - (0,8.log20,8 + 0,2.log20,2) = 0,7219 bit

“Entropy” của nguồn tin quy định giới hạn d−ới tốc độ bit tại đầu ra bộ mã hoá. Ph−ơng pháp mã hoá nào có độ dài mã trung bình (số bit trung bình cần để mã hoá một mẫu) càng gần giá trị H thì ph−ơng pháp mã hoá đó càng hiệu quả.

1.2.2. Mã hoá loạt dài RLC (run length coding):

Do có sự liên hệ t−ơng hỗ giữa các điểm ảnh lân cận nên trong ảnh số th−ờng có các chuỗi điểm lặp lại, đặc biệt dễ thấy đối với ảnh nhị phân. Khi đó, nếu sử dụng số đếm để thay thế dãy các điểm giống nhau, có thể tiết kiệm số bit cần để mã hoá. ý t−ởng này đ−ợc phát triển trong một dạng mã gọi là “mã hoá loạt dài” (RLC). Trong mã này điểm đại diện đầu tiên đ−ợc thay thế bằng một biểu tr−ng và xem nh− điểm xuất phát, còn độ dài dãy dùng để thay thế loạt dài.

Để phân cách giữa hai dãy có 2 giải pháp nh− sau:

ắ Dùng số chạy dài và mã nguồn nếu mã nguồn đó không phải là số hoặc một biểu tr−ng đặc biệt để thay thế mã nguồn là số.

Ví dụ: $$$$$$$**^^^^^^**$$$$$$$ mã hoá thành: 7$2*6^2*7$ Đối với ảnh nhị phân ta thay mã nguồn {0,1} bởi hai ký hiệu {w,b}. Ví dụ 000001111111111111111100 mã hoá thành: 5w17b2w.

1.2.3. Mã độ dài thay đổi VLC (variable length coding) (mã

Huffman):

Trong các công nghệ nén, mã Huffman là dạng mã đ−ợc sử dụng phổ biến nhất. Bảng mã Huffman có thể cho độ dài mã trung bình để mã hoá cho một mẫu là nhỏ nhất do tận dụng xác suất xuất suất hiện của các mẫu trong nguồn tín hiệu. Trong đó, mẫu có xác suất xuất hiện cao nhất sẽ đ−ợc gắn với một từ mã có độ dài ngắn nhất.

Mặc dù có độ dài mã thay đổi song mã Huffman vẫn có khả năng giải mã đúng do có thuộc tính tiền tố duy nhất (không có bất cứ từ mã nào lại là phần đầu của từ mã tiếp theo).

Để xây dựng cây mã Huffman gồm các b−ớc sau:

♦ B−ớc 1: Hai nút tự do với trọng l−ợng thấp nhất đ−ợc định vị.

♦ B−ớc 2: Nút cha cho hai nút này đ−ợc thiết lập. Nó có trọng l−ợng bằng tổng trọng l−ợng của hai nút con.

♦ B−ớc 3: Nút cha đ−ợc liệt kê vào danh sách các nút tự do và hai nút con đ−ợc xoá khỏi danh sách.

♦ B−ớc 4: Một trong hai nút con đ−ợc ký hiệu nh− đ−ờng dẫn từ nút cha và mã hoá bit “0”. Nút còn lại có thuộc tính thiết lập là bít “1”.

♦ Các b−ớc đ−ợc lặp lại cho đến khi chỉ còn lại một nút tự do. Nút này đ−ợc đánh dấu là gốc của cây.

Ph−ơng pháp mã hoá thống kê Huffman sẽ trở nên nặng nề khi số tin của nguồn quá lớn. Trong tr−ờng hợp này ng−ời ta dùng một biện pháp phụ để giảm nhẹ công việc mã hoá. Tr−ớc tiên liệt kê các tin của nguồn theo thứ tự xác suát giảm dần, Sau đó ghép thành tùng nhóm tin có tổng xác suất gần bằng nhau. Dùng một mã đều để mã hoá các tin trong cùng một nhóm. Sau đó xem các nhóm tin nh−

một khối tin và dùng ph−ơng pháp Huffman để mã hoá các khối tin. Từ mã cuối cùng t−ơng ứng với mỗi tin của nguồn gồm hai phần: một phần là mã Huffman và một phần là mã đều.

Xét ví dụ thiết lập cây mã Huffman cho một nguồn tin chứa các mẫu : {s0, s1, ..,s7} với xác suất xuất hiện lần l−ợt là :

p(si) = {0,1;0,19;0,21;0,3;0,05;0,05;0,07;0,03}. Cây mã Huffman xây dựng cho nguồn tin này nh− sau:

Mặc dù mã Huffman hiệu quả nh−ng chúng ta phải hiểu rằng mã hoá Huffman chỉ tối −u khi đã biết tr−ớc xác suất của mã nguồn và mỗi biểu tr−ng của mã nguồn đ−ợc mã hoá bằng một số bit nguyên.

Đặc biệt mã hoá Huffman đ−ợc phát triển cho ảnh số nh−ng áp dụng cho rất nhiều loại ảnh, mỗi ảnh có xác suất xuất hiện biểu tr−ng của riêng nó. Do đó mã Huffman không phải là tối −u cho bất cứ loại ảnh đặc biệt nào.

1.2.4. Mã hoá dự đoán (Predictive coding):

Nh− đã nói, nguồn ảnh chứa một l−ợng thông tin rất lớn. Nếu mã hoá trực tiếp nguồn tin này theo PCM, tốc độ dòng bit thu đ−ợc sẽ rất cao. Mặt khác, nguồn ảnh lại chứa đựng sự d− thừa và tính “có nhớ”: giữa các điểm ảnh lân cận có mối quan hệ t−ơng hỗ với nhau.

Mã hoá dự đoán đ−ợc xây dựng dựa trên nguyên tắc cơ bản nh− sau:

♦ Lợi dụng mối quan hệ t−ơng hỗ này, từ giá trị các điểm ảnh lân cận, theo một nguyên tắc nào đó có thể tạo nên một giá trị gần giống điểm ảnh hiện hành. Giá trị này đ−ợc gọi là giá trị “dự báo”. (adsbygoogle = window.adsbygoogle || []).push({});

♦ Loại bỏ đi tính “có nhớ” của nguồn tín hiệu bằng một bộ lọc đặc biệt có đáp ứng đầu ra là hiệu giữa tín hiệu vào s(n) và giá trị dự báo của nó.

Liệt kê xác suất Thiết kế mã P(s0)=0,1 Từ mã P(s1)=0,19 P(s2)=0,21 P(s3)=0,3 P(s4)=0,05 P(s7)=0,03 P(s6)=0,07 P(s5)=0,05 00100 0011 0000 11 01 0001 00101 0 1 0 0,08 1 1 0 0,18 0 1 0 1 0,13 0 1 0,4 10 0 1,0 Hình II.1.2: Ví dụ về mã Huffman 1

♦ Thay vì l−ợng tử hoá trực tiếp các mẫu điểm ảnh, mã hoá dự đoán l−ợng tử và mã hoá các “sai số dự báo” tại đầu ra bộ lọc.

”Sai số dự báo”là sự chênh lệch giữa giá trị dự báo và giá trị thực của mẫu hiện hành. Do nguồn “sai số dự báo”(error prediction source) là nguồn không có nhớ và chứa đựng l−ợng thông tin thấp, nên số bit cần để mã hoá sẽ giảm đi rất nhiều.

Ph−ơng pháp tạo điểm ảnh dựa trên tổng giá trị của điểm dự đoán và sai số dự báo gọi là “điều chế xung mã vi sai (DPCM)”.

i(k): Mẫu điểm tuần tự.

e(k): Chênh lệch dự đoán (sai số dự đoán). )

(k

e :Giá trị dự đoán của e(k) với lỗi l−ợng tử q(k).

Mã hoá dự đoán đóng một vai trò vô cùng quan trọng trong các chuẩn nén nh−: MPEG, JPEG, JBIG nhằm tạo một hiệu suất nén cao.

1.2.5. Mã hoá chuyển đổi (Transform coding)

Trong ph−ơng pháp mã hoá chuyển đổi, tính có nhớ của nguồn tín hiệu đ−ợc loại bỏ đi bằng một phép biến đổi. Một khối các điểm ảnh đ−ợc chuyển sang miền

Bộ dự đoán e’(k) + + e(k) i’(k) Hình II.1.3b: Bộ giải mã DPCM i’(k) L−ợng tử hoá Bộ dự đoán i(k) + _ i(k) e(k) i’(k) e(k) + + Hình II.1.3 a: Bộ mã hoá DPCM

tần số theo một ma trận biến đổi phù hợp. Từ khối N giá trị mẫu điểm lân cận nhau s={s(n),s(n+1),.., s(n-N+1)}, thu đ−ợc khối N hê số c= (c1, c2,.., cN).

Phép biến đổi này có tính thuận nghịch, các hệ số này hoàn toàn có thể hồi phục thành giá trị tín hiệu ban đầu bằng phép chuyển đổi ng−ợc.

So với nguồn giá trị thực của điểm ảnh, nguồn các hệ số là không có nhớ. Mặt khác, thông tin của nguồn ảnh tập trung phần lớn ở các thành phần tần số thấp, nên trong khối các hệ số, thông tin cũng tập trung tại một số ít các hệ số chuyển đổi ci. Do vậy sẽ giảm đ−ợc l−ợng bit nếu mã hoá các hệ số này thay cho việc mã hoá trực tiếp các mẫu,

Số l−ợng bit mã hoá còn có thể giảm hơn nữa nếu lợi dụng đặc điểm cúa mắt ng−ời không nhạy cảm với sai số ở tần số cao. Bởi vậy,có thể sử dụng b−ớc l−ợng tử thô cho các hệ số ứng với tần số cao mà không làm giảm sút chất l−ợng ảnh khôi phục.

Hình vẽ sau đây minh hoạ quá trình mã hoá chuyển đổi cho ảnh số:

ảnh số đ−ợc chia thành các khối cỡ pìq. Các khối này sẽ đ−ợc chuyển đổi sang miền tần số. Các hệ số biến đổi sẽ đ−ợc l−ợng tử hoá và mã hoá. Quá trình giải mã sẽ áp dụng phép biến đổi ng−ợc đối với các hệ số để hồi phục ảnh ban đầu.

Biến đổi ng−ợc 2 chiều Giải mã entropy B’ Pìq p p q

Hình II.1.4b: Quá trình giải mã chuyển đổi hai chiều

L−ợng tử, mã hoá entropy

Biến đổi 2 chiều

Hình II.1.4a: Quá trình mã hoá chuyển đổi hai chiều

BPìq

p q

Trong mã hoá chuyển đổi, một điều vô cùng quan trọng là phải chọn đ−ợc phép biến đổi phù hợp có khả năng giảm tối đa mối quan hệ t−ơng hỗ giữa các điểm ảnh trong cùng một khối.

Bản thân phép biến đổi trong mã hoá chuyển đổi không nén dữ liệu. Song nếu l−ợng tử hoá các hệ số, rất nhiều hệ số tần số cao sẽ quy tròn về giá trị 0. Việc lựa chọn bảng l−ợng tử và số bit mã hoá cho các hệ số cũng rất quan trọng do phần lớn hiệu suất nén dữ liệu tập trung trong quá trình này. Cuối cùng, mã hoá entropy đ−ợc chọn để giảm tối đa tốc độ dòng bít.

Phép biến đổi tốt nhất, cho bình ph−ơng sai số của ảnh khôi phục nhỏ nhất là phép biến đổi Karhumen_Loeve (KL) nh−ng phép biến đổi này không phù hợp cho nhiều ứng dụng của ảnh số. Do vậy, trong nén ảnh số, sử dụng phổ biến một phép biến đổi khác gọi là “phép biến đổi cosin rời rạc “ (Discrete Cosine Transform- DCT).

Biến đổi cosin 1 chiều (1D-DCT) dành cho một dãy các điểm ảnh.Việc chuyển đổi một khối nìm điểm ảnh sang miền tần số đ−ợc thực hiện bằng chuyển đổi DCT 2 chiều (2D-DCT). (adsbygoogle = window.adsbygoogle || []).push({});

2

Một phần của tài liệu Giáo trình Truyền hình số doc (Trang 25 - 33)