Các thuật toán thông dụng

Một phần của tài liệu Bài giảng Xử lý Audio và Video doc (Trang 145 - 156)

Các nguyên tắc được bàn trong phần trước nhìn chung đều được sử dụng với các thuật toán thông dụng. Phần này sẽđề cập đến một số thuật toán để chỉ ra cách thức hoạt động của nó.

5.4.1. JPEG

Ảnh động chỉ là một chuỗi các hình đang được truyền ở tốc độ đủ để người xem có thể nhìn thấy như là một ảnh chuyển động liên tục. Một phương pháp nén

ảnh động là nén từng ảnh một và truyền kết quả thu được thành một dòng bit đơn. Bất cứ một phương pháp nén hình ảnh chuyển động nào cũng có thể được sử dụng nhưng một trong những phương pháp nén tốt nhất đã được phát triển bởi JPEG của ISO/IEC và được gọi là nén JPEG.

Tiêu chuẩn nén ảnh JPEG không phải là một thuật toán đơn lẻ mà giống như là một hộp công cụ của các kỹ thuật nén, nó có các chế độ (mode) và các sự lựa chọn với các ứng dụng nén hình dạng chuyển động liên tục trên phạm vi lớn. Có thể lựa chọn cả nén tổn hao và nén không tổn hao, số bit/mẫu khác nhau, các độ phân giải khác nhau, và một vài thuật toán khác nhau. Có bốn chếđộ hoạt động:

ƒ Không tổn hao-ảnh được tái tạo lại một cách chính xác. Toàn bộ các chếđộ

ƒ Liên tục-chếđộ này mã hóa theo trật tựảnh đã được quét, đây là cách thông thường mà ảnh vẫn được xử lý.

ƒ Tăng dần-đây là phương pháp mã hóa đa đường truyền đi một ảnh thô trước tiên, ảnh này sẽ nhanh chóng được hiển thị ở máy thu. Tiếp sau đó là các quá trình mã hóa lặp lại với độ phân giải theo thứ tự tăng cao hơn, có thể được hiển thị nhằm đưa ra chất lượng ảnh ngày càng tốt hơn.

ƒ Thứ bậc-trong chếđộ này, ảnh được mã hóa ở nhiều độ phân giải, người sử

dụng có thể chọn độ phân giải để hiển thị ảnh.

Việc cung cấp sự lựa chọn cấu hình trong JPEG có nghĩa là tiêu chuẩn có thể

phù hợp cho nhiều ứng dụng khác nhau và có thể nâng cấp trong tương lai để có thể

tiếp tục nghiên cứu và phát triển công nghệ nén hình. Đây là đặc điểm rất quan trọng và thỏa mãn đối với các tiêu chuẩn nén. Mã hóa JPEG Tạo định dạng xen kẻ Bảng đặc điểm kỹ thuật Định dạng giải mã GiJPEG ải mã Bảng đặc điểm kỹ thuật ảnh nguồn ảnh tái tạo Hình 5.8. Kiến trúc JPEG

Hình 5.8 là một sơ đồ khối của kiến trúc JPEG. Ảnh nguồn được mã hóa dưới sựđiều khiển của một hoặc nhiều bản đặc điểm kỹ thuật. Dữ liệu đã mã hóa được

đặt vào định dạng xen kẽ JPEG để phát tới người sử dụng. Đây là định dạng có thể được lưu trữ hoặc truyền. Ởđầu thu, bảng đặc điểm kỹ thuật và dữ liệu mã hóa được tách riêng và quá trình xử lý ngược lại được thực hiện để khôi phục ảnh ban đầu.

Tất cả các loại hình mã hóa, trừ chếđộ không tổn hao, đều dựa vào DCT. Hình 5.9 minh họa quá trình xử lý chi tiết cho chếđộ hoạt động liên tục. Mỗi thành phần của hình nguồn được chia thành các khối 8x8 pixel. Quá trình xử lý DTC trước

được sử dụng cho khối này. Việc này cho kết quả là một số DC và 63 thành phần tần số cao hơn, mỗi một thành phần sẽ được lượng tử hóa theo một bảng 64 giá trị

lượng tử.

Bảng lượng tử này là đặc điểm kỹ thuật đầu tiên của thuật toán; nó phải do người sử dụng cung cấp và trở thành một phần của dòng dữ liệu được truyền tới máy thu. Người sử dụng có thể điều khiển sự thỏa hiệp giữa cấp độ nén và chất lượng của ảnh bằng cách xác định bảng. Nội dung của bảng lượng tử là kích cỡ của

bước sẽđược sử dụng; các giá trị của hệ số DCT được chia cho kích thước của bước tương ứng và kết quả được làm tròn tới số bit đã xác định. Vì vậy, giá trị lượng tử

lớn hơn sẽ cho kết quả là lượng tử thô và điều đó có nghĩa là các giá trị lớn hơn sẽ được làm tròn về 0. DCT trước Trật tự zig-zac Lượng tử Mã hóa entropy Bảng đặc điểm kỹ thuật Bảng đặc điểm kỹ thuật Xác định xen kẻ Nguồn từ khối 8x8

Hình 5.9. Xử lý JPEG cho chếđộ hoạt động liên tục

Tiếp theo quá trình lượng tử hóa, hệ số DC được mã hóa ngược lại với các hệ

số DC của khối hình trước, 63 hệ sốđã lượng tử sau đó được đặt theo trật tự zic-zac và được mã hóa thống kê theo cả phương pháp Huffman hoặc theo phương pháp số

học như trình bày trong tiêu chuẩn. Trong cả 2 trường hợp, phải cần đến một đặc

điểm kỹ thuật của bảng thứ hai để xác định ghi mã thống kê. Một lần nữa người sử

dụng có thể thay đổi bảng này đểđiều khiển chỉ tiêu nén.

Bước cuối cùng của quá trình mã hóa là tập hợp dữ liệu nén và đặc điểm kỹ

thuật của bảng vào một dòng bit một chiều theo định dạng xen kẽ, điều này được minh họa trên hình 5.10. Các phần khác nhau của dòng bit xen kẽ bị làm mất tính tuyến tính bởi các mã đã đánh dấu, các mã này bao gồm hai byte- byte thứ nhất là tất cả các số 1 (0xFF trong mã HEX) và byte thứ hai là bất cứ giá trị nào khác ngoài 0 hoặc 0xFF.(Lưu ý rằng nếu một byte 0xFF xảy ra trong dữ liệu của dòng bit, nó sẽ được mã hóa như là 0xFF00 để tránh bị coi như là một dấu hiệu). Các dấu này trông giống như các mã giải thoát đã được mô tả cho RLE trong phần 5.3.1.1

SOI SOF

Header

khung Quét 1 Quét 2 ….. Quét n

EOI SOS Header quét Dữ liệu mã hóa entropy Hình 5.10. Định dạng xen kẻ JPEG

Byte thứ hai của dấu hiệu xác định kiểu dấu hiệu và một vài kiểu dấu hiệu có các thông số bổ sung kèm theo. Trong trường hợp này hai byte đầu tiên sau dấu hiệu luôn chỉ rõ độ dài của khối thông số tiếp theo. Vì vậy, ví dụ một header của khung hình có một dấu hiệu đặc biệt được xác định, và sau đó một thông sốđộ dài sẽ chỉ rõ có thêm bao nhiêu byte trong header. Đây là một phương pháp thông dụng để xác

định các header của dòng bit.

Như minh họa trên hình 5.10, dữ liệu của hình đã mã hóa cho một hình đơn ( khung hình) được truyền đi trong khối được gọi là quét, (đối với các định dạng DCT liên tục) bao gồm tất cả thành phần của ảnh dưới dạng được chèn. Các đặc điểm kỹ

thuật của bảng được phát đi trước tiên, vì vậy chúng có thể đáp ứng cho quá trình giải nén dữ liệu quét xảy ra sau này. Header của khung hình và header quét có chứa chi tiết định dạng ảnh và quá trình giải nén của nó.

Nén JPEG có thể thực hiện nén dữ liệu ảnh với bộ phân giải tự nhiên cao,theo tỉ lệ 10:1 hoặc hơn với sự suy giảm có thể nhìn thấy rõ rệt. Một vài ảnh có thểđược nén nhiều còn một vài ảnh khác có thể được nén ít và tất nhiên, các điều kiện nhìn cũng sẽảnh hưởng đến cấp độ nén có thể chấp nhận được.

5.4.2 M-JPEG

Định dạng giao diện JPEG hỗ trợ cho nhiều quá trình quét trong một khung hình và nếu các quá trình quét tương ứng với các khung hình của một dòng ảnh

động. Tức là khi ấy ảnh động được nén. Do một dòng chuyển động thường phải chịu sự suy giảm ảnh nhiều hơn một ảnh thường bởi vì hiệu ứng trung bình của khung hình có thểđạt được trong nhiều trường hợp là rất nhiều hơn cả tỉ lệ nén 10:1

đã đề cập ở trên. Phương pháp này đôi khi được sử dụng do có thể thực hiện những ý đồ nén quan trọng với quá trình xử lý đơn giản hơn so với hệ thống nén chuyển

động phức tạp như MPEG. Đây được gọi là JPEG chuyển động hay M-JPEG. Bởi vì tiêu chuẩn JPEG được sử dụng chỉ cho hình nên có không có phần cung cấp cho thành phần audio được yêu cầu cùng với ảnh động.

5.4.3 MPEG

Nén JPEG quan tâm đến nén sự dư thừa không gian trong các ảnh nhưng không chú ý tới bất cứ sự dư thừa nào tồn tại giữa các khung hình liên tục của một dòng ảnh động. Một tập đoàn nghiên cứu khác IEC/ISO, tập đoàn chuyên gia ảnh

động (MPEG) được thành lập để chuyên giải quyết vấn đề này và cho đến nay họđã chuẩn hóa hai định dạng: MPEG-1 Và MPEG-2 .Sự khác nhau giữa tiêu chuẩn này nằm ở tốc độ dữ liệu và chất lượng ảnh – MPEG-1 được thiết kế cho tốc độ truyền dữ liệu tới tận 1,5 Mb/s và hoạt động trong giới hạn này đểđạt được các ảnh có chất lượng tốt nhất có thể. MPEG-2 hoạt động với tốc độ dữ liệu tới 20 Mb/s và cho chất

thống ATV Grand Alliance đã được chuẩn hóa bởi ATSC và trong truyền hình quảng bá phát vệ tinh. Ởđây sẽ bàn đến phiên bản của MPEG-2.

Nén MPEG áp dụng cho tất cả các quá trình như của JPEG bao gồm DCT, lượng tử hóa, mã entropy và cộng thêm bù chuyển động để nén dư thừa xen kẽ

khung hình. Như với JPEG, các quá trình này được thực hiện theo cách thức rất linh hoạt, cho phép người sử dụng điều chỉnh nén để phù hợp với những ứng dụng chuyên biệt và nội dung của ảnh. Khoảng cách dòng Dòng quét Mẫu tín hiệu chói Mẫu tín hiệu CB Mẫu tín hiệu CR CB, CR cùng vị trí

Hình 5.11. Mô hình lấy mẫu không gian MPEG-2

MPEG-2 sử dụng quá trình lấy mẫu con các thành phần hiệu màu theo tỉ lệ 2:1 theo cả hàng dọc và hàng ngang. Nó khác với quá trình lấy mẫu con của ITU-R Ree.BT.601,chỉ lấy mẫu con theo hang ngang. Với lý do này, và cũng để thừa nhận là tốc độ dữ liệu của độ chói bị giảm xuống bởi một hệ số 2 khác so với tỉ lệ 4:2:2, lấy mẫu con MPEG-2 được gọi là 4:2:0. Mô hình lấy mẫu không gian được minh họa trên hình 5.12. Các mẫu CR và CB có cùng vị trí không gian nhưng vị trí nó bị

dịch chuyển đi một nửa độ cao của dòng so với các mẫu độ chói. Điều này được thực hiện để các vị trí lấy mẫu độ chói sẽ như nhau cho cả nguồn quét cách dòng, hoặc có thể tăng dần; tuy nhiên với yêu cầu là giá trị của mẫu phải được nội suy từ

những mẫu lấy đồng thời với mẫu độ chói.

Do cần thiết phải giảm mô hình lấy mẫu thành khối 8x8 cho DTC và quá trình xử lý bù ảnh động, quá trình lấy mẫu con 4:2:0 cần đến một quan niệm là khối khác:

khối lớn .Đây là một nhóm 2x2 gồm khối độ chói 8x8 (vì vậy sẽ là 16x16) có liên quan đến 2 khối mẫu các thành phần hiệu màu 8x8, một cho CR và một cho CB. Hầu hết quá trình xử lý MPEG-2 đều thực hiện với khối lớn do chúng là đơn vị không gian nhỏ nhất có thể được biểu thị bởi một số tích phân của các khối 8x8 cho tất cả

các thành phần tín hiệu. B Hình 5.12. Thứ tự khung MPEG I B P B P B P B I 1 2 3 4 5 6 7 8 9 1 3 2 5 4 7 6 9 8

Hình 5.12. Biểu diễn mô hình lấy mẫu không gian

Với phần bù chuyển động, mỗi khung hình đều được dựa vào vị trí sai từ

khung hình trước, song phải bắt đầu quá trình khung hình thứ nhất. Vì vậy, MPEG-2 cung cấp các khung hình hoàn toàn tự mã hóa giống nhưảnh của JPEG. Các khung hình này được gọi là khung hình 1. Các khung hình được dự đoán từ khung hình trước bằng bù chuyển động được gọi là khung hình P. Một kiểu khung hình thứ ba cũng được cung cấp dựa vào dựđoán từ khung hình trước và khung hình tiếp theo –

đây được gọi là dựđoán hai hướng. Nhưng khung hình này được gọi là khung hình B. Khung hình B có thểđược nén thậm chí nhiều hơn khung hình P nhưng yêu cầu phải có một khung hình mới ở bộ giải mã trước khi khung hình B được giải nén, do vậy phải sử dụng cách thức truyền các khung hình không theo thứ tự trong dòng truyền. Đây cũng không phải là vấn đề quá khó, trừ phi phải cần lưu trữ nhiều hơn ở

máy thu và cộng thêm khoảng trễ vào quá trình nén và giải nén. Tiêu chuẩn cung cấp cho đặc điểm này và ứng dụng của nó được xác định ở thời điểm mã hóa.

Hình 5.13 là sơ đồ một chuỗi khung hình, minh họa cách sử dụng của khung hình I-P và B và trật tự truyền xảy ra. Do I là các khung hình được nén ít nhất, nên

ứng dụng của nó phải được tối thiểu hóa để đạt được tốc độ dữ liệu thấp nhất nhưng I vẫn yêu cầu theo định ký cho dòng video để bản thân nó có thể phục lại sau khi chuyển mạch kênh hoặc ngưng hoạt động do lỗi. Tiêu chuẩn nêu rõ, ít nhất cứ 133

khung hình sẽ xuất hiện khung hình I-hầu hết các hệ thống đều cung cấp số khung hình nhiều hơn như vậy .Điều này được xác định ở bộ mã hóa.

Lượng tử hóa DCT Bù chuyển động Đánh giá chuyển động Lưu trữ khung hình Lượng tử hóa ngược DCT ngược Mã hoá dòng bit Nén phần lỗi dự báo Video đã mã hóa Đầu vào video Lưu trữ khung hình tái tạo Vector chuyển động Hình 5.13. Quá trình xử lý MPEG

Hình 5.14 là một sơ đồ khối xử lý nén MPEG-2 trình bày các nguyên lý đã đề

cập từ trước tới giờ.Quá trình xử lý được thực hiện trên khối 8x8 tại một thời điểm. Nếu khung hình hoặc khối lớn, được ghi mã hóa trong các pixel sẽ trực tiếp vào quá trình xử lý DTC. Đối với các khối đã ghi mã xen kẽ, bước đầu tiên là thực hiện bù

ảnh động sử dụng các khung hình mỏ neo lưu trữ từ khung hình trước khung hình sắp tới. Kết quả này được sử dụng so sánh với các pixel đầu vào và các visai để khối chuyển tới quá trình xử lý DCT.Ở đầu ra của DTC ,các hệ số được lượng tử hóa theo bảng lượng tử. sẽ có các bảng khác nhau, phụ thuộc vào việc sử dụng ghi mã trong hay mã xen kẽ. Kết quả của quá trình lượng tử hóa được sắp xếp theo trật tự

và sử dụng mã entropy để truyền.

Một vòng bổ sung sẽ giải mã các vi sai của DCT vì vậy, các khung hình dự trữ được sử dụng cho bù chuyển động sau này bị suy giảm bởi quá trình lượng tử hóa từ

việc tích tụ khi các khung hình được dựđoán từ khung này đến khung khác.

Quá trình mã hóa phải có sự lựa chọn liên quan đến kiểu dựđoán khung hình và lượng tử hóa. Những sự lựa chọn này có thểđược thực hiện dựa trên cơ sở khối lớn, nếu cần. Vì vậy, nó trở thành một nghệ thuật để khởi động bộ mã hóa nhằm, đạt

được khả năng nén tốt nhất với tốc độ dữ liệu cho trứơc. Tham gia vào quá trình này còn có bộ mã hóa có khả năng tựđộng hóa rất tinh xảo.

5.4.4. Video của máy tính cá nhân

tiết tuyệt vời, song vẫn cần đến một phần cứng chuyên biệt, trừ trường hợp ở nhưng máy tính cá nhân cực nhanh. Một số thuật toán nén khác nhau đã phát triển một cách đặc biệt. ứng dụng riêng cho máy tính cá nhân. Các thuật toán này tạo ra sự

thỏa hiệp khác nhau giữa cấp độ nén và chất lựợng ảnh để giảm các yêu cầu tính toán cho quá trình giải mã.Hầu hết các thuật toán này được thiết kế như các hệ

thống không đối xứng. Một số tiêu chuẩn đã sẵn sangf đáp ứng là Indeo của Intel, Video cho Windows của Microsoft, Quick time của Apple (cho Macinstosh và các

Một phần của tài liệu Bài giảng Xử lý Audio và Video doc (Trang 145 - 156)

Tải bản đầy đủ (PDF)

(156 trang)