1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu và thử nghiệm giải thuật nén ảnh tiên tiến Advanced Image conding trong truyền thông

127 32 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 127
Dung lượng 3,03 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nghiên cứu và thử nghiệm giải thuật nén ảnh tiên tiến Advanced Image conding trong truyền thông Nghiên cứu và thử nghiệm giải thuật nén ảnh tiên tiến Advanced Image conding trong truyền thông Nghiên cứu và thử nghiệm giải thuật nén ảnh tiên tiến Advanced Image conding trong truyền thông luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp

Trang 2

bộ giáo dục và đào tạo trường đại học bách khoa hà nội

Trang 3

MỤC LỤC

LỜI CẢM ƠN 4

LỜI CAM ĐOAN 5

LỜI NÓI ĐẦU 6

TÓM T ẮT LUẬN VĂN 8

ABSTRACT 9

BẢNG CÁC CHỮ VIẾT TẮT 10

DANH SÁCH CÁC HÌNH V À BẢNG BIỂU 11

CHƯƠNG 1: TỔNG QUAN VỀ NÉN ẢNH TRONG TRUYỀN THÔNG 14

1.1 Khái quát về phương pháp nén ảnh 14

1.1.1 Phân loại ảnh số 14

1.1.1.1 Phân loại ảnh theo dữ liệu 14

1.1.1.2 Phân loại ảnh theo tông màu 14

1.1.2 Nhu cầu nén ảnh trong truyền thông 15

1.1.3 Các phương pháp nén ảnh 16

1.1.4 Các bước xử lý của một hệ thống nén ảnh trong truyền thông 16

1.1.4.1 Các bước xử lý cơ bản của quá trình nén ảnh trong truyền thông 17

1.1.4.2 Các bước xử lý của quá trình giải nén trong truyền thông 18

1.2 Một số độ đo về chất lượng nén ảnh 19

1.2.1 Tỷ số nén và tốc độ bit 19

1.2.2 Độ phức tạp và thời gian thực hiện 20

1.2.3 Các độ đo tổn hao 20

1.3 Phương pháp nén ảnh theo chuẩn JPEG 22

1.3.1 Giới thiệu chung về chuẩn nén ảnh JPEG 22

1.3.2 Các kiểu nén ảnh theo chuẩn JPEG 23

1.3.3 Kỹ thuật nén ảnh JPEG cơ sở (Baseline JPEG) 26

1.3.3.1 Chuyển đổi không gian màu 26

1.3.3.2 Sắp xếp dữ liệu ảnh gốc 27

1.3.3.3 Thuật toán nén ảnh JPEG cơ sở 28

1.3.3.4 Ví dụ minh họa thuật toán nén ảnh JPEG cơ sở 33

1.3.4 Nén và chất lượng ảnh JPEG 37

1.4 Phương pháp nén ảnh theo chuẩn JPEG2000 38

1.4.1 Giới thiệu chung về chuẩn nén ảnh JPEG2000 38

1.4.2 Các phần của chuẩn JPEG2000 (JPEG2000 part) 40

1.4.3 Tìm hiểu kỹ thuật nén theo chuẩn JPEG2000 Phần 1 41

1.4.3.1 Biến đổi wavelet 42

1.4.3.2 Lượng tử hoá 45

1.4.3.3 Mã hóa Entropy 45

1.4.4 Nén và chất lượng ảnh JPEG2000 46

1.5 Phương pháp nén ảnh theo chuẩn H.264 47

1.5.1 Giới thiệu chung về chuẩn nén ảnh H.264 47

Trang 4

1.5.2 Tìm hiểu thuật toán nén ảnh theo chuẩn H.264 48

1.5.2.1 Quá trình nén theo chuẩn H.264 48

1.5.2.2 Quá trình giải nén theo chuẩn H.264 50

1.5.3 Nén và chất lượng nén theo chuẩn H.264 50

CHƯƠNG 2: PHƯƠNG PHÁP NÉN ẢNH TIẾN TIẾN (ADVANCED IMAGE CODING) 51

2.1 Giới thiệu phương pháp nén ảnh tiên tiến (Advanced Image Coding) 51

2.1.1 Khái niệm 51

2.1.2 Đặc điểm của phương pháp nén ảnh tiên tiến 52

2.2 Nghiên cứu thuật toán nén ảnh theo phương pháp tiên tiến 52

2.2.1 Giới thiệu thuật toán được nghiên cứu 52

2.2.1.1 Đặc điểm của thuật toán AIC 52

2.2.1.2 Sơ đồ khối của thuật toán AIC 53

2.2.2 AIC – Chuyển đổi màu (Color conversion) 54

2.2.3 AIC – Dự đoán khối (Block Prediction) 56

2.2.3.1 Các kiểu dự đoán khối (Prediction mode) 57

2.2.3.2 Các khối phần dư (Residual Blocks) 60

2.2.4 AIC – Biến đổi Cosine rời rạc và lượng hóa 61

2.2.4.1 DCT một chiều (1-Dimensional DCT) 61

2.2.4.2 DCT 2-Chiều (2-Dimensional DCT) 64

2.2.4.3 Lượng hóa (Quantisation) 65

2.2.5 AIC – Mã hóa số học nhị phân thích nghi ngữ cảnh 65

2.2.5.1 cabAC – mã hóa số học (Arithmetic Coding) 65

2.2.5.2 caBac – nhị phân (Binary) 69

2.2.5.3 CAbac – Thích nghi ngữ cảnh (Context Adaptive) 70

2.3 N én và chất lượng ảnh AIC 71

CHƯƠNG 3: THỬ NGHIỆM, CÀI ĐẶT VÀ ĐÁNH GIÁ THUẬT TOÁN NÉN ẢNH TIÊN TIẾN 73

3.1 Tìm hiểu công cụ thử nghiệm 73

3.1.1 Môi trường và công cụ phát triển chương trình 73

3.1.1.1 Ngôn ngữ lập trình Delphi 73

3.1.1.2 Môi trường lập trình tích hợp Borland Delphi Enterprise 7 74

3.1.2 Đặc tả chức năng gốc của chương trình “AIC.exe” 74

3.1.3 Tìm hiểu kiến trúc cài đặt của chương trình 77

3.1.4 Tìm hiểu cài đặt chi tiêt dự đoán khối 82

3.2 Thử nghiệm và phân tích kết quả thực hiện các thuật toán 88

3.2.1 Tiêu chí đánh giá các thuật toán được thử nghiệm 88

3.2.2 Kịch bản thử nghiệm 94

3.2.2.1 Kịch bản 1 94

3.2.2.2 Kịch bản 2 95

3.2.2.3 Kịch bản 3 96

3.2.2.4 Kịch bản 4 98

3.2.2.5 Kịch bản 5 98

Trang 5

3.2.3 Tiến hành cài đặt chương trình để thực hiện theo các kịch bản thử nghiệm 99

3.2.3.1 Yêu cầu cài đặt để thử nghiệm chương trình theo kịch bản 99

3.2.3.2 Cài đặt chương trình theo yêu cầu thử nghiệm 100

3.2.4 Tiến hành thử nghiệm theo các kịch bản 103

3.2.4.1 Các file ảnh gốc dùng để thử nghiệm 103

3.2.4.2 Thử nghiệm theo kịch bản 1 105

3.2.4.3 Thử nghiệm theo kịch bản 2 107

3.2.4.4 Thử nghiệm theo kịch bản 3 110

3.2.4.5 Thử nghiệm theo kịch bản 4 112

3.2.4.6 Thử nghiệm theo kịch bản 5 116

3.2.5 Tổng hợp kết quả phân tích, đánh giá 120

KẾT LUẬN 123

TÀI LIỆU THAM KHẢO 125

Trang 6

LỜI CẢM ƠN

Luận văn “Nghiên cứu và thử nghiệm giải thuật nén ảnh tiên tiến (Advanced Image Coding) trong truyền thông” đã hoàn theo theo đúng nội dung và kế hoạch

đề ra với sự giúp đỡ, góp ý và động viên của nhiều cá nhân, đoàn thể

Trước hết, em xin bày tỏ lòng biết ơn chân thành đối với PGS.TS Nguyễn Thị Hoàng Lan, giảng viên khoa Công nghệ thông tin, Trường Đại học Bách Khoa Hà Nội, đã hướng dẫn, chỉ bảo, động viên và khích lệ em tận tình trong quá trình học tập, nghiên cứu để hoàn thành luận văn này Những kiến thức mà cô bổ sung, những định hướng mà cô chỉ dẫn và cả những lời động viên, khích lệ của cô trong thời gian làm luận văn đã giúp em đạt được thành quả ngày hôm nay Em xin chân thành cảm ơn cô!

Em cũng xin chân thành cảm ơn các thầy cô khoa Công nghệ thông tin, Trường Đại học Bách Khoa Hà Nội, đã chỉ dạy và giúp đỡ em hoàn thành nhiệm vụ học tập của mình

Cuối cùng, mình xin cảm ơn những người bạn, những người đồng nghiệp thân thiết đã thường xuyên động viên, khích lệ và tạo điều kiện cho mình trong thời gian làm luận văn

Mặc dù đã có nhiều cố gắng hoàn thành luận văn, tuy nhiên, do thời gian và kiến thức có hạn của bản thân tác giả nên chắc chắn trong bản luận văn không tránh khỏi thiếu sót Rất mong các thầy cô và bạn đọc góp ý để tác giả có thể tiếp tục hoàn thiện và phát triển bản luận văn khi có điều kiện

Tác giả

Trang 7

LỜI CAM ĐOAN

Tôi xin cam đoan tất cả nội dung của luận văn là kết quả của quá trình nghiên cứu và tìm hiểu của bản thân tôi, dưới sự chỉ bảo của giáo viên hướng dẫn là

PSG.TS Nguyễn Thị Hoàng Lan, bộ môn Mạng và truyền thông, khoa Công nghệ

thông tin, trường Đại học Bách Khoa Hà Nội Các kết quả nêu trong luận văn là trung thực, không sao chép toàn văn của bất kỳ công trình nào khác

Hà Nội, ngày 12 tháng 11 năm 2009 Tác giả

Nguyễn Thị Hoa

Trang 8

LỜI NÓI ĐẦU

Đúng như tên gọi của luận văn “Nghiên cứu và thử nghiệm giải thuật nén ảnh

tiên tiến (Advanced Image Coding) trong truyền thông”, mục đích của luận văn này

là tìm hiểu, nghiên cứu thuật toán nén ảnh tiên tiến một thuật toán nén ảnh mới đang được phát triển, chưa trở thành chuẩn nén ảnh được sử dụng rộng rãi, nhưng

có nhiều ưu điểm phù hợp với lĩnh vực truyền thông

Ngày nay, sự ra đời của các chuẩn nén ảnh nổi tiếng như JPEG, JPEG2000, H.264 đã phần nào đáp ứng được nhu cầu lưu trữ, trao đổi ảnh trong truyền thông đang ngày càng lớn mạnh Tuy nhiên, bản thân các phương pháp nén ảnh theo các chuẩn này vẫn còn một số hạn chế, chưa hoàn toàn phù hợp với nén ảnh trong truyền thông Chẳng hạn như JPEG thì có ưu điểm thuật toán đơn giản, dễ cài đặt, nhưng lại hạn chế ở khả năng nén thấp, và chất lượng ảnh cũng chưa tốt JPEG2000

là một chuẩn nén mới ra đời, đã khắc phục được các hạn chế của JPEG nhưng bản thân nó lại có hạn chế rất lớn là thuật toán quá phức tạp và không ổn định Do đó, lĩnh vực nén ảnh vẫn đang tiếp tục phát triển để đưa ra được các phương pháp nén ảnh phù hợp hơn cho truyền thông Đây cũng là nguyên nhân ra đời phương pháp

nén ảnh tiên tiến AIC (Advanced Image Coding) mà luận văn tìm hiểu và cũng là cơ

sở thực tiễn của luận văn

Nội dung của luận văn được trình bày theo các chương như sau:

Chương 1 – Tổng quan về nén ảnh trong truyền thông: trình bày các kiến

thức nền tảng về ảnh và nén ảnh trong truyền thông, cũng như trình bày kỹ các phương pháp nén ảnh theo ba chuẩn nén ảnh nổi tiếng hiện nay là JPEG, JPEG2000

và H.264

Chương 2 – Phương pháp nén ảnh tiên tiến: trình bày nội dung lý thuyết

chính của phương pháp nén ảnh tiên tiến và đi sâu tìm hiểu một thuật toán nén ảnh tiên tiến AIC

Chương 3 – Thử nghiệm cài đặt và đánh giá thuật toán nén ảnh tiên tiến:

trình bày các kết quả tìm hiểu công cụ thử nghiệm, xây dựng, cài đặt các kịch bản

Trang 9

thử nghiệm, đánh giá thuật toán nén ảnh AIC và so sánh nó với các thuật toán nén ảnh JPEG, JPEG2000

Tác giả

Nguyễn Thị Hoa

Trang 10

TÓM T ẮT LUẬN VĂN

Luận văn “Nghiên cứu và thử nghiệm giải thuật nén ảnh tiên tiến (Advanced Image Coding) trong truyền thông” xuất phát từ yêu cầu tìm hiểu, đánh giá một phương pháp nén ảnh mới, có khả năng ứng dụng cao trong truyền thông Do đó, luận văn trình bày một số lý thuyết cơ bản về nén ảnh và một số chuẩn nén ảnh được dùng phổ biến như JPEG, JPEG2000 và H.264 để cung cấp cái nhìn tổng quan

về nén ảnh và các phương pháp nén ảnh trong truyền thông hiện nay Phần nội dung chính của luận văn đi sâu tìm hiểu kỹ lý thuyết của phương pháp nén ảnh tiên tiến

và một thuật toán nén ảnh theo phương pháp này Luận văn cũng đã so sánh, phân tích, đánh giá hiệu quả nén của phương pháp nén ảnh tiên tiến dựa trên kết quả thử nghiệm nén ảnh theo các kịch bản mà luận văn xây dựng Công cụ để tiến hành các thử nghiệm trong luận văn này là chương trình được tác giả luận văn phát triển thêm

từ phần mềm mã nguồn mở “AIC”, một phần mềm cài đặt thuật toán nén ảnh tiên tiến được tải về từ trang web http://www.bilsen.com/aic/

Trang 11

ABSTRACT

The thesis “Research and experiment Advanced Image Coding algorithm in communication network” originate from the need of researching and evaluating a new image coding which has high ability to apply in network communication So, this thesis will present some basis knowledge about image compression and some popular image coding standard such as JPEG, JPEG2000 and H.264 With this way, the thesis provide to readers the overview of image compression and its methods in communication nowadays The main contents of this thesis presents detail about theory of Advanced Image Coding method and a specific algorithm of this method named AIC This thesis also compare, analyze and evaluate the compression performance of AIC algorithm by some scenarios that created by the thesis’s author Application to experiment in this thesis is “AIC.exe” that implemented AIC algorithm following the theory of AIC method This application is an open source and can be downloaded from website http://www.bilsen.com/aic/

Trang 12

BẢNG CÁC CHỮ VIẾT TẮT

1 AIC Advanced Image Coding

2 BPC Fractional bit-plane

3 BPP Bit Per Pixel

C

Context Adaptive Binary Arithmetic Coding algorithms

5 DCT Discrete Cosine Transform

6 DWT Discrete Wavelet Transform

7 EBCOT Embedded Block Coding with Optimized Truncation

8 FDCT Forward DCT

9 FIR Finite Impulse Response filter

10 IDCT Inverse DCT

11 ISO International Standards Organization

12 ITU-T International Telecommunication Union -

Telecommunication Standardization Sector

13 JPEG Joint Photographic Expert Group

14 MCU Minimum Coded Unit

15 MPEG Motion Picture Experts Group

Trang 13

DANH SÁCH CÁC H ÌNH VÀ BẢNG BIỂU

Hình 1- 1: Sơ đồ khối một hệ thống nén ảnh truyền thông: nén (a) và giải nén (b) 17

Hình 1- 2: Nén JPEG tuần tự không tổn hao [8] 23

Hình 1-3: Nén JPEG lũy tiến chọn phổ (a) và xấp xỉ dần (b) [8] 25

Hình 1- 4: Nén JPEG đa phân giải phân cấp [8] 26

Hình 1-5: Thứ tự MCU: YCbCr 4:4:4 (a), YCbCr 4:2:2 (b), YCbCr 4:2:0 (c) [8] 28

Hình 1- 6: JPEG cơ sở: nén (a) và giải nén (b) [8] 28

Hình 1-7: Hiệu các hệ số DC [8] 32

Hình 1-8: Chuỗi zig-zag [8] 32

Hình 1-9: Dữ liệu ảnh gốc [1] 33

Hình 1-10: Các hệ số DCT thuận [1] 34

Hình 1-11: Bảng lượng hóa [1] 34

Hình 1-12: Các hệ số DCT đã lượng hóa [1] 34

Bảng 1-1: Bảng mã Huffman cho sai phân của hệ số DC [10] 35

Bảng 1-2: Dải độ lớn hệ số AC tương ứng với kích thước bit [10] 36

Bảng 1-3: Tính toán giá trị VLC và VLI cho sai phân DC và các hệ số AC [10] 36

Hình 1- 13: Khối dữ liệu giải mã đã lượng tử [1] 36

Hình 1-14: Khối dữ liệu khôi phục từ bộ giải nén JPEG [1] 37

Hình 1- 15: Sơ đồ khối của thuật toán nén ảnh JPEG2000 Nén (a) và Giải nén (b) [6] 41

Hình 1-16: Thực hiện chia ô (tilling) và dịch mức DC trước khi biến đổi Wavelet [6] 42

Hình 1-17: Mức phân giải đầu tiên áp dụng DWT hai chiều [8] 43

Hình 1-18: Các hệ số của bộ lọc cho quá trình nén có tổn thất [6] 44

Hình 1-19: Các hệ số của bộ lọc cho quá trình nén không tổn hao [6] 44

Hình 1- 20: Sơ đồ khối nén và giải nén theo chuẩn H.264 [11] 48

Hình 1-21: Dự đoán trong khối và liên khối theo chuẩn H.264 [11] 49

Hình 2- 1: Sơ đồ khối nén và giải nén AIC 53

Hình 2-2: Ảnh RGB và các thành phần màu RGB của nó 54

Hình 2-3: Ảnh YCbCr và các thành phần màu Y, Cb, Cr của nó 55

Hình 2- 4: Vị trí khối hiện tại trong dự đoán khối AIC [3] 56

Hình 2-5: Khối hiện tại và 25 điểm ảnh dùng để dự đoán khối [3] 57

Hình 2- 6: Dự đoán khối AIC mode 0 [3] 57

Hình 2-7: Dự đoán khối AIC mode 1 [3] 57

Hình 2- 8: Dự đoán khối AIC mode 2 [3] 57

Hình 2-9: Dự đoán khối AIC mode 3 [3] 58

Hình 2-10: Dự đoán khối AIC mode 4 [3] 58

Hình 2- 11: Dự đoán khối AIC mode 5 [3] 58

Hình 2-12: Dự đoán khối AIC mode 6 [3] 58

Hình 2- 13: Dự đoán khối AIC mode 7 [3] 59

Hình 2-14: Dự đoán khối AIC mode 8 [3] 59

Hình 2- 15: Ảnh gốc (trái) và ảnh dự đoán (phải) [3] 60

Hình 2- 16: Ảnh phần dư độ chói [3] 61

Hình 2-17: Kết quả biến đổi FDCT theo phương pháp AIC [3] 62

Trang 14

Hình 2-18: Khôi phục mẫu từ các hệ số DCT [3] 63

Hình 2- 19: Cây Huffman cho mã hóa từ "SQUEEZE" [3] 66

Hình 2- 20: Bit mã hóa Huffmancủa từ "SQUEEZE" [3] 67

Hình 2-21: Chia đoạn cấp 1 các ký hiệu trong từ "SQUEEZE" theo mã hóa số học [3] 67

Hình 2- 22: Chia đoạn cấp 2 các ký hiệu trong từ "SQUEEZE" theo mã hóa số học [3] 67

Hình 2-23: Chia đoạn các ký hiệu trong từ "SQUEEZE" theo mã hóa số học [3] 68

Hình 2- 24: Cây mã Huffman của từ chỉ gồm 2 ký hiệu [3] 69

Hình 2-25: Bit mã của mã hóa Huffman cho từ gồm hai ký hiệu [3] 69

Hình 3-1: Môi trường lập trình Borland Delphi 7 74

Hình 3- 2: Sơ đồ phân cấp chức năng của chương trình AIC.exe 75

Hình 3-3: Chức năng điều chỉnh tốc độ nén ảnh 76

Hình 3- 4: Chức năng lựa chọn thuật toán kiểm thử 76

Hình 3-5: Chức năng tự động chạy các thuật toán muốn so sánh 77

Hình 3- 6: Chức năng vẽ đồ thị quan hệ chất lượng và độ nén 77

Hình 3-7: Sơ đồ lớp dùng để đọc, ghi các định dạng file ảnh khác nhau 78

Hình 3-9: Biểu đồ tuần tự của quá trình nén, giải nén một ảnh ở định dạng bất kỳ 79

Hình 3- 10: Biểu đồ lớp của khối thực hiện nén ảnh AIC 80

Hình 3-11: Biểu đồ lớp của khối thực hiện thuật toán giải nén ảnh AIC 81

Hình 3- 12: Cài đặt dự đoán khối Mode 0 [3] 82

Hình 3-13: Cài đặt dự đoán khối Mode 1 [3] 82

Hình 3- 14: Cài đặt dự đoán khối Mode 2 [3] 83

Hình 3-15: Cài đặt dự đoán khối Mode 3 [3] 83

Hình 3-16: Cài đặt dự đoán khối Mode 4 [3] 84

Hình 3- 17: Cài đặt dự đoán khối Mode 5 [3] 85

Hình 3-18: Cài đặt dự đoán khối Mode 6 [3] 86

Hình 3- 19: Cài đặt dự đoán khối Mode 7 [3] 86

Hình 3-20: : Cài đặt dự đoán khối Mode 8 [3] 87

Hình 3- 21: Sơ đồ tính độ nén BPP bằng chương trình AIC.exe 89

Hình 3- 22: Mối quan hệ giữa hệ số Quality và BPP 90

Hình 3-23: Sơ đồ tính độ đo PSNR bằng chương trình AIC.exe 92

Hình 3- 24: Sơ đồ khối tính độ đo phức tạp thuật toán 93

Hình 3-25: Sơ đồ thực hiện kịch bản 1 95

Hình 3- 26: Sơ đồ thực hiện kịch bản 2 96

Hình 3-27: Sơ đồ thực hiện kịch bản 3 97

Hình 3- 28: Sơ đồ thự hiện kịch bản 4 98

Hình 3- 29: Sơ đồ thực hiện kịch bản 5 99

Hình 3-30: Cài đặt thêm giao diện hiển thị độ đo thời gian thực hiện thuật toán 100

Hình 3- 31: Giao diện lựa chọn và vẽ đồ thị độ đo tương ứng 100

Hình 3-32: Cài đặt tính toán và hiển thị thời gian thực hiện thuật toán 101

Hình 3- 33: Cài đặt vẽ đồ thị theo độ đo đã chọn 103

Hình 3-34: Kết quả thử nghiệm theo kịch bản 1 với ảnh lena.bmp 512x512, 64x64, 32x32 105

Hình 3-35: Kết quả thử nghiệm theo kịch bản 1 với ảnh house.bmp 512x512, 64x64, 32x32 105

Hình 3- 36: Kết quả thử nghiệm theo kịch bản 1 với ảnh lena.pgm 512x512 106

Hình 3-37: Kết quả thử nghiệm theo kịch bản 1 với ảnh simple.bmp 512x512, 64x64, 32x32 106

Trang 15

Bảng 3-1: Dải tốc độ bit (bpp) của ba thuật toán 106

Hình 3- 39: Đồ thị PSNR-BPP của ba thuật toán với ảnh lena.bmp 512x512, 64x64, 32x32 108

Hình 3- 40: Đồ thị độ đo PSNR-BPP của ba thuật toán với ảnh house.bmp 512x512, 64x64, 32x32 108

Hình 3-41: Đồ thị độ đo PSNR-BPP của ba thuật toán với ảnh lena.pmg 512x512 108

Hình 3- 42: Đồ thị độ đo PSNR-BPP của ba thuật toán với ảnh simple.bmp 512x512, 64x64, 32x32 108

Bảng 3-2: Dải độ đo PSNR của ba thuật toán 109

Hình 3- 43: Đồ thị Total Time - PSNR của ba thuật toán cho ảnh lena.bmp 512x512, 64x64, 32x32 110

Hình 3-44: Đồ thị Total Time - PSNR của ba thuật toán cho ảnh house.bmp 512x512, 64x64, 32x32 111 Hình 3-45: Đồ thị Total Time - PSNR của ba thuật toán cho ảnh lena.pgm 512x512 111

Hình 3- 46: Đồ thị Total Time - PSNR của ba thuật toán cho ảnh simple.bmp 512x512, 64x64, 32x32 111 Hình 3-47: Ảnh khôi phục của các thuật toán trên ảnh lena.bmp 512x512, tốc độ bit 0.5 bpp 112

Bảng 3-4: Các độ đo của ba thuật toán với ảnh lena.bmp 512x512 ở tốc độ bit 0.5 bpp 113

Hình 3-48: Ảnh khôi của các thuật toán trên ảnh lena.bmp 512x512, tốc độ bit 9.8 bpp 113

Bảng 3-5: Các độ đo của ba thuật toán với ảnh lena.bmp 512x512 ở tốc độ bit 9.8 bpp 114

Hình 3-49: Ảnh khôi phục của các thuật toán trên ảnh lena.bmp 64x64, tốc độ bit 1.4 bpp 114

Bảng 3-6: Các độ đo của ba thuật toán với ảnh lena.bmp 64x64 ở tốc độ bit 1.4 bpp 115

Hình 3- 50: Ảnh khôi phục của các thuật toán trên ảnh lena.bmp 64x64, tốc độ bit 4.1 bpp 115

Bảng 3-7: Các độ đo của ba thuật toán với ảnh lena.bmp 64x64 ở tốc độ bit 4.1 bpp 115

Hình 3- 51: Ảnh khôi phục của các thuật toán trên ảnh house.bmp 512x512, tốc độ bit 0.25 bpp 117

Bảng 3-8: Các độ đo của ba thuật toán với ảnh house.bmp 512x512 ở tốc độ bit 0.25 bpp 117

Hình 3- 52: Ảnh khôi phục của các thuật toán trên ảnh simple.bmp 512x512, tốc độ bit 0.25 bpp 118

Bảng 3-9: Các độ đo của ba thuật toán với ảnh simple.bmp 512x512 ở tốc độ bit 0.25 bpp 118

Hình 3-53: Ảnh khôi phục của các thuật toán trên ảnh lena.pgm 512x512, tốc độ bit 0.25 bpp 119

Bảng 3-10: Các độ đo của ba thuật toán với ảnh lena.pgm 512x512 ở tốc độ bit 0.25 bpp 119

Trang 16

Chương 1: TỔNG QUAN VỀ NÉN ẢNH TRONG

TRUYỀN THÔNG 1.1 Khái quát về phương pháp nén ảnh

1.1.1 Phân loại ảnh số

1.1.1.1 Phân loại ảnh theo dữ liệu

Ảnh nhị phân (bi-level image/ binary image): mỗi điểm ảnh chỉ biểu diễn bởi

một bit và chỉ cho phép phân biệt 2 màu khác nhau Ví dụ: các ảnh được quét bởi máy scanner sử dụng mức mật độ chỉ là hai: một cho thông tin và một cho nền Các ứng dụng thường bao gồm:

• Văn bản, các đường kẻ hay hình minh họa

• Các tài liệu FAX

• Đôi khi là các ảnh đồ họa với các sắc xám

Ảnh đa mức xám (greyscale image): mỗi điểm ảnh biểu diễn bởi 8 bit màu và

một điểm ảnh biểu diễn 256 mức giá trị của độ xám cho một màu Ví dụ: các ảnh được quét bằng máy scanner sử dụng mức mật độ đa mức để chụp được các sắc khác nhau giữa màu đen và màu trắng Ảnh xám phù hợp cho ảnh y học và ảnh đồ họa đen trắng

Ảnh màu (color image): ảnh được chụp bởi máy scanner màu, sử dụng nhiều

mức cường độ và lọc để chụp các mức sáng khác nhau cho các màu chính: đỏ (R – Red ), xanh dương (G – Green), xanh lục (B – Blue) Một số hệ thống máy tính sử

dụng 16 bit, 24 bit, 36 bit hay 48 bit để biểu diễn các giá trị màu Thông dụng nhất

là dùng 24 bit để biểu diễn các giá trị màu

1.1.1.2 Phân loại ảnh theo tông màu

Ảnh có tông màu liên tục (continuous-tone image): Loại ảnh này tương tự

ảnh tự nhiên có chứa các vùng màu Các màu này được coi như liên tục khi mắt người di chuyển theo các vùng của ảnh Điều này là do ảnh thường có nhiều màu hay các mức xám tương tự nhau và mắt người không dễ dàng phân biệt những thay

Trang 17

đổi nhỏ về màu sắc của các điểm ảnh kề nhau Các ví dụ về loại ảnh này là ảnh chụp bởi máy ảnh số hay các ảnh đồ họa hay ảnh vẽ được quét từ máy scanner

Ảnh có tông màu rời rạc (discrete-tone image): còn gọi là ảnh đồ họa

(graphical image) hay ảnh nhân tạo (synthetic image) Ảnh thường không có nhiễu

và mờ như ảnh tự nhiên Các điểm ảnh kề nhau thường hoặc là giống hệt nhau hoặc

là khác nhau đáng kể về giá trị Loại ảnh này có thể chứa các đặc điểm hay điểm ảnh giống nhau lặp đi lặp lại trong ảnh Ví dụ cho loại ảnh này là các đối tượng đồ họa hay ảnh nhân tạo, một trang văn bản, một biểu đồ hay nội dung của màn hình máy tính

Ảnh tựa hoạt hình (cartoon-like image): Loại ảnh này bao gồm các vùng

màu đồng nhất nhưng các vùng liền kề có thể có màu rất khác nhau Các vùng màu đồng nhất này là đặc điểm rất tốt cho nén ảnh

1.1.2 Nhu cầu nén ảnh trong truyền thông

Các file ảnh thường có kích thước lớn do một ảnh là hai chiều và có thể hiển thị quá nhiều màu Trong một ảnh bitmap, mỗi điểm ảnh yêu cầu 24 bit để biểu diễn cho các màu của nó Vấn đề ảnh kích thước lớn sẽ dẫn đến tốn kém dung lượng để lưu trữ và đặc biệt là gặp khó khăn khi truyền tải qua mạng do hạn chế của băng thông đường truyền Chẳng hạn, một file ảnh kích thước 4”x4” được quét ở độ phân

giải 300dpi (dot per inch) với 24bits/pixel thì sẽ yêu cầu lớn lơn 4MB dung lượng

bộ nhớ Ảnh này, khi truyền trên đường truyền điển hình (64k bit/giây) thì cần đến hơn một phút để truyền Trong khi đó, nhu cầu lưu trữ và truyền các file ảnh là rất lớn Do đó, nhu cầu tìm ra các phương pháp nén để giảm kích thước các file ảnh trở thành vấn đề quan trọng của truyền thông

Các phương pháp nén ảnh có thể lưu trữ, biểu diễn các file ảnh với kích thước nhỏ hơn ảnh gốc là do hai nguyên nhân chính sau:

• Trong file ảnh tồn tại dữ liệu dư thừa Nếu ta loại bỏ được các dư thừa này thì có thể giảm kích thước file ảnh mà không ảnh hưởng đến nội dung thông tin trong ảnh

• Khả năng cảm nhận của mắt người là có giới hạn và trong một giới hạn sai số cho phép, mắt người không thể phân biệt được sự khác biệt giữa ảnh nén và ảnh gốc dù cho ảnh nén có mất mát một lượng thông

Trang 18

tin so với ảnh gốc Mà ảnh trong truyền thông chủ yếu là để con người nhìn nên có thể chấp nhận nén mất mát thông tin

Mỗi loại ảnh chứa một lượng dư thừa nhất định nhưng nguyên nhân dư thừa khác nhau và điều này dẫn đến các phương pháp nén ảnh khác nhau Đó là lý do vì sao có nhiều phương pháp nén khác nhau được phát triển

1.1.3 Các phương pháp nén ảnh

Căn cứ vào đặc điểm ảnh khôi phục sau khi nén, người ta chia thành hai phương pháp nén ảnh chính sau:

Nén không tổn hao (lossless compression): Một phương pháp nén ảnh là

không tổn hao khi có thể khôi phục lại chính xác ảnh gốc từ ảnh nén, không bị mất mát thông tin Hạn chế của nén không tổn hao là chỉ thu được hiệu quả nén nhỏ Nén không tổn hao được sử dụng trong trường hợp thông tin trong ảnh gốc là quá quan trọng và việc mất mát thông tin là không chấp nhận được, chẳng hạn như ảnh

y tế, ảnh các văn bản

khi không thể khôi phục lại chính xác ảnh gốc từ ảnh nén Nén có tổn hao có thể cho hiệu quả nén cao hơn nhiều so với nén không tổn hao mà vẫn đảm bảo sự mất mát thông tin là chấp nhận được do mắt người không cảm nhận được sự khác biệt giữa ảnh gốc và ảnh nén Với hiệu quả nén cao, nén ảnh có tổn hao phù hợp với môi trường truyền thông như các ảnh trên web

1.1.4 Các bước xử lý của một hệ thống nén ảnh trong truyền thông

Hình dưới đây mô tả các bước xử lý của một hệ thống nén ảnh trong truyền thông bao gồm hai quá trình nén (compression) và giải nén (de-compression):

Trang 19

Hình 1-1: Sơ đồ khối một hệ thống nén ảnh truyền thông: nén (a) và giải nén (b)

Hình (a) mô tả quá trình nén ảnh điển hình, hình (b) mô tả quá trình giải nén điển hình Trong quá trình nén, đầu tiên, dữ liệu ảnh được chia thành các khối có kích thước nhỏ hơn (thường các khối có kích thước 8x8 điểm ảnh), từng khối dữ liệu ảnh này sẽ được đưa vào khối biến đổi để bắt đầu thực hiện quá trình nén ảnh Trong sơ đồ khối trên, chỉ có bước xử lý lượng hóa là gây mất mát thông tin, do đó, phương pháp mã hóa không tổn hao sẽ bỏ qua xử lý này khi nén ảnh và bỏ qua xử

lý giải lượng hóa khi giải nén ảnh

1.1.4.1 Các bước xử lý cơ bản của quá trình nén ảnh trong truyền thông Biến đổi (Transform): Mục đích của khối biến đổi là thực hiện phép biến đổi

trên dữ liệu đầu vào trong không gian quan sát để thu được không gian dữ liệu khác cho hiệu quả nén tốt hơn Tính chất của phép biến đổi sử dụng cho mục đích nén ảnh bao gồm:

• Bảo toàn thông tin: thông tin của ảnh trong không gian trước và sau phép biến đổi là như nhau, không có sự mất mát thông tin nào cả Phép biến đổi là một song ánh, có phép biến đổi ngược tương ứng để

Trang 20

thu được dữ liệu chính xác như trong miền không gian ban đầu từ dữ liệu trong miền không gian đã qua biến đổi

• Giảm tương quan trong dữ liệu ảnh để giảm dư thừa dữ liệu

• Tập trung năng lượng thông tin của ảnh vào một số phần tử dữ liệu trong miền không gian mới mà không dàn trải năng lượng thông tin như trong miền không gian ban đầu của ảnh

Với các tính chất phép biến đổi ở trên, quá trình nén ảnh hay dùng các phép biến đổi sau: biến đổi cosin rời rạc (DCT - Discrete Cosine Transform), biến đổi

wavelet (DWT - Discrete Wavelet Transform) Tính chất của phép biến đổi được sử

dụng là thuận nghịch, nghĩa là quá trình biến đổi này không làm mất thông tin của ảnh Đồng thời, quá trình biến đổi cũng là quá trình quyết định chính đến khả năng nén của phương pháp nén ảnh

Lượng hóa (Quantize): Kết quả của quá trình biến đổi là các dữ liệu dưới

dạng số thực hay các số có giá trị lớn nên cần nhiều bộ nhớ để lưu trữ Quá trình lượng hóa thực hiện các phép lượng hóa vec tơ hay các phép lượng hóa vô hướng trên các kết quả dữ liệu biến đổi để thu được dữ liệu mới cần ít bit để biểu diễn hơn Đây là quá trình cho phép điều chỉnh độ nén trong khoảng khả năng nén của ảnh và cũng là quá trình gây mất mát thông tin duy nhất trong quá trình nén ảnh

biểu diễn dữ liệu hiệu quả hơn Các giá trị dữ liệu được biểu diễn ở dạng dòng bit

(bitstream) để đưa lên đường truyền hay lưu trữ Các loại mã hóa thông dụng trong nén ảnh bao gồm: mã hóa loạt dài (run-length), mã hóa Huffman và mã hóa số học

1.1.4.2 Các bước xử lý của quá trình giải nén trong truyền thông

Giải mã (De-code): Dòng bit dữ liệu của ảnh mã hóa được thực hiện giải mã

bằng bộ giải mã tương ứng với loại mã hóa đã dùng khi nén ảnh Kết quả của quá trình giải mã sẽ tạo ra các khối dữ liệu tương ứng với đầu ra của bộ lượng hóa

Giải lượng hóa (De-quantize): Các khối dữ liệu được giải mã sẽ được áp dụng

phép biến đổi ngược của phép lượng hóa đã dùng để thu được dữ liệu đã giải lượng hóa

Trang 21

Biến đổi ngược (Inverse Transform): Các khối dữ liệu đã giải lượng hóa được

thực hiện phép biến đổi ngược của phép biến đổi đã dùng khi mã hóa và cho kết quả

1.2.1 Tỷ số nén và tốc độ bit

Tỷ số nén (compression ratio): là độ đo thông dụng nhất để đánh giá hiệu

năng của thuật toán nén ảnh Nó được tính bằng tỉ số giữa số bit biểu diễn ảnh gốc

so với số bit biểu diễn ảnh nén theo công thức sau:

o c

CC

R= ( 1-1 ) Trong đó, R: tỷ số nén

Co: Số bít biểu diễn ảnh gốc

Cc: Số bit biểu diễn ảnh nén

Chẳng hạn, lưu trữ một ảnh kích thước 256x256 dùng 1 byte để biểu diễn mỗi điểm ảnh, cần 65536 Byte Nếu ảnh nén chỉ cần 4096 Byte để biểu diễn thì tỷ số nén là 16:1

Tỷ số nén của phương pháp nén không tổn hao hoàn toàn phụ thuộc vào tính chất của ảnh đầu vào: cùng một thuật toán nén không tổn hao, nếu ảnh đầu vào khác nhau thì sẽ thu được các tỉ số nén khác nhau

Tốc độ bit (bit rate hay bit per sample): là một biến thể của tỉ số nén Độ đo

này cho biết số bit trung bình cần để biểu một điểm ảnh Nó được tính theo công thức sau:

c

CS

Br= (bpp) ( 1-2 )

Trang 22

Trong đó, Br: Tốc độ bit Đơn vị: bpp (bit per pixel)

Cc: Số bit biểu diễn ảnh

1.2.2 Độ phức tạp và thời gian thực hiện

Độ phức tạp của thuật toán nén ảnh thường được đo bằng số phép toán số học

và yêu cầu bộ nhớ để thực hiện thuật toán Số phép toán số học được đo bằng đơn vị

triệu phép toán trên giây MOPS (Million of Operatrions Per Second), nhưng trong nén ảnh thường dùng thuật ngữ triệu lệnh trên giây MIPS (Million of Instructions Per Second) Thông thường, khi độ phức tạp thuật toán càng lớn thì hiệu quả nén càng cao, nhưng giá thành và thời gian thực hiện lại tăng

Thời gian thực hiện thuật toán nén và giải nén ảnh cũng là một độ đo hiệu quả nén và độ đo này đặc biệt có ý nghĩa đối với các ứng dụng thời gian thực như tương tác hội thảo truyền hình, duyệt ảnh trực tuyến, truyền thông thoại thời gian thực Một thuật toán nén phức tạp có thể cung cấp một tỉ số nén tốt hơn, nhưng có thể dẫn đến tăng thời gian thực hiện thuật toán và làm cho hiệu năng của hệ thống nén giảm

1.2.3 Các độ đo tổn hao

Mục tiêu của nén ảnh có tổn hao là nhằm đạt được tỉ số nén tốt, tuy nhiên cái giá phải trả cho mục tiêu này là mất một số thông tin so với ảnh gốc Độ đo của các thuật toán hay các hệ thống nén có tổn hao thường bao gồm một độ đo chất lượng của ảnh khôi phục so với ảnh gốc ban đầu

Mặc dù thước đo tốt nhất của sự trung thực của ảnh khôi phục là hỏi một người quen với việc quan sát ảnh và đưa ra ý kiến, nhưng cách này không thực tế về mặt toán học

Trang 23

Các công cụ toán học để đo sai số giá trị của hai biến được gọi là độ đo méo

hiệu (difference distortion measure) Xem một ảnh như một ma trận các giá trị, độ

đo của thuật toán nén ảnh có tổn hao thường sử dụng một ma trận chuẩn để đo sự sai khác giữa ảnh khôi phục và ảnh gốc Thông thường, giá trị sai khác nhỏ thì chất lượng ảnh sẽ tốt

Gọi Pi là các điểm ảnh khôi phục và Qi là các điểm ảnh gốc, trong đó i = 1, ,

N Chúng ta có các độ đo hay được dùng sau [7]:

Ma trận độ đo sai số bình phương (squared error measure matrix): đây là

P Q N

σ

=

= ∑ ( 1-6 )

Tỷ số tín hiệu trên nhiễu (SNR – Signal-to-noise-ratio): là tỉ số của giá trị

bình phương trung bình của đầu ra và MSE:

2 2

x d

SNR σσ

Tỷ số tín hiệu mức đỉnh trên nhiễu (PSNR – Peak-signal-to-noise-ratio):

đo sai số liên quan đến giá trị bình phương trung bình của tín hiệu và cũng thường được đo theo thang đo decibel (dB):

σ

Trang 24

Ma trận sai phân tuyệt đối trung bình:

1.3.1 Giới thiệu chung về chuẩn nén ảnh JPEG

JPEG là một chuẩn quốc tế đầu tiên cho nén ảnh tĩnh màu và đa mức xám JPEG là chữ viết tắt của Joint Photographic Expert Group, tổ chức đã xây dựng nên chuẩn này vào năm 1991 JPEG được thiết kế phù hợp với ảnh quang cảnh tự nhiên, không thích hợp với các ảnh nhân tạo như ảnh hoạt hình hay ảnh vẽ JPEG thực

hiện tốt nhất với các ảnh có tông màu liên tục (continuous tone) Nó cũng không xử

Các đặc điểm của thuật toán nén ảnh theo chuẩn JPEG:

Là một công nghệ tiên tiến quan tâm đến tốc độ nén (compression rate) cùng với độ trung thực của ảnh và đặc biệt là trong khoảng độ trung thực so với ảnh gốc được đánh giá “rất tốt”; đồng thời quá trình

mã hóa cần phải được tham số hóa để ứng dụng (hay người dùng) có thể tự thiết đặt độ thỏa hiệp giữa độ nén và chất lượng ảnh

• Có khả năng áp dụng thực tế cho bất cứ loại ảnh số có tông màu liên tục nào, nghĩa là không bị hạn chế bởi chiều của ảnh, không gian màu

Trang 25

và cũng không giới hạn cho các loại ảnh có sự hạn chế về nội dung cảnh như độ phức tạp, khoảng màu hay các đặc điểm thống kê

• Có một độ phức tạp tính toán dễ kiểm soát được để có thể cài đặt được

dễ dàng với hiệu năng có thể thực hiện được trong khả năng của CPU cũng như cài đặt phần cứng được với chi phí khả thi cho các ứng dụng yêu cầu hiệu năng cao

1.3.2 Các kiểu nén ảnh theo chuẩn JPEG

JPEG định nghĩa bốn kiểu hay kỹ thuật nén ảnh sau:

lần quét và ảnh khôi phục chính xác như ảnh gốc (mặc dù kết quả nén thấp hơn so với nén có mất mát thông tin) Phương pháp này sử dụng mã hóa dự đoán để giảm

dư thừa không gian của dữ liệu ảnh, kết hợp với mã hóa Huffman (một loại mã hóa entropy) giúp giảm dư thừa trong biểu diễn dữ liệu dòng bit của ảnh Trong phương pháp này không sử dụng khối xử lý lượng tử hóa nên không gây mất mát thông tin

dữ liệu ảnh

Hình 1-2: Nén JPEG tuần tự không tổn hao [8]

Trang 26

Nén tuần tự dựa trên DCT (Sequential DCT-based Mode): Nén ảnh trong

một lần quét sử dụng kỹ thuật nén có tổn hao dựa trên biến đổi cosin rời rạc - DCT Kết quả là ảnh giải mã không hoàn toán chính xác giống hệt ảnh gốc mà là một xấp

xỉ của ảnh gốc Kiểu nén này được ứng dụng cài đặt rộng rãi nhất trong các kiểu nén ảnh JPEG và còn được gọi là nén JPEG cơ sở (Baseline JPEG)

nhiều lần quét và cũng giải nén trong nhiều lần quét với mỗi lần quét liên tiếp thì tạo ra ảnh có chất lượng cao hơn Phương pháp này có thể hiển thị ảnh mà không phải đợi cho đến khi thu được toàn bộ dòng bit ảnh đã nén và giải mã như các phương pháp nén ảnh chỉ trong một lần quét Do đó, phương pháp này phù hợp với các ứng dụng xem ảnh cho phép người dùng xem ảnh từ thô đến tinh và có thể lựa chọn dừng việc hiển thị ảnh ở mức độ mong muốn hay chuyển sang ảnh khác mà không phải chờ toàn bộ dữ liệu ảnh được giải nén Trong phương pháp này, ảnh được mã hóa liên tục trong nhiều lần quét Phiên bản thô của lần quét đầu tiên được truyền đi sau đó chất lượng ảnh ở phía nhận sẽ được cải thiện bằng cách truyền thêm dữ liệu bit nén của các lần quét sau Phương pháp này thực hiện tính toán các khối DCT của toàn bộ ảnh, sau đó, từng khối DCT mới được mã hóa entropy Có hai cách mã hóa bổ sung cho các khối DCT là chọn phổ (các thành phần tần số của các hệ số DCT được truyền theo thứ tự ý nghĩa cảm thụ tăng dần) và xấp xỉ dần (các bit của tất cả các hệ số DCT được truyền dần theo thứ tự giảm dần của ý nghĩa) Phương pháp xấp xỉ dần thường cho ảnh đầu tiên có chất lượng cao hơn so với phương pháp chọn phổ Chuẩn JPEG định nghĩa tổng cộng tám loại nén lũy tiến dựa trên DCT

Trang 27

Hình 1-3: Nén JPEG lũy tiến chọn phổ (a) và xấp xỉ dần (b) [8]

có thể hiển thị trên các thiết bị khác nhau Phương pháp này cho phép hiển thị các phiên bản có độ phân giải thấp hơn mà không cần phải giải nén ảnh ở độ phân giải đầy đủ Do đó, nó phù hợp với các ứng dụng mà ảnh có độ phân giải cao hiển thị trên thiết bị có độ phần giải thấp hơn Theo phương pháp này, ảnh gốc được lọc và giảm mẫu theo một bội số của hai để thu được độ phân giải mong muốn và ảnh có

độ phân giải thấp hơn này sẽ được mã hóa bằng một trong ba kiểu mã hóa còn lại của chuẩn JPEG Ảnh nén có độ phân giải thấp hơn này lại được giải mã và nội suy lên độ phân giải cao hơn Phần bù của ảnh nội suy này so với ảnh có độ phân giải cao hơn ở mức tiếp theo sẽ được mã hóa bằng một trong ba phương pháp của chuẩn JPEG Quá trình này lặp lại cho đến khi tất cả các độ phân giải được mã hóa Chuẩn JPEG định nghĩa 14 phương pháp khác nhau cho nén phân cấp các ảnh khác nhau Phương pháp đa phân giải hình tháp cho việc cài đặt nén phân cấp được minh họa trong hình sau:

Trang 28

Hình 1-4: Nén JPEG đa phân giải phân cấp [8]

1.3.3 Kỹ thuật nén ảnh JPEG cơ sở (Baseline JPEG)

Kỹ thuật nén ảnh JPEG cơ sở là kiểu nén ảnh JPEG được cài đặt và ứng dụng rộng rãi nhất trong truyền thông do các ưu điểm dễ cài đặt và cho chất lượng ảnh nén tương đối tốt Kỹ thuật này được định nghĩa để nén các ảnh có từ một đến bốn thành phần màu có tông màu liên tiếp Nó hỗ trợ nén ảnh xám với một thành phần màu, ảnh màu ở các hệ màu có đến tối đa bốn thành phần màu như RGB (ba thành phần màu), CMYK (bốn thành phần màu) Trong kỹ thuật nén ảnh JPEG cơ sở này, một ảnh ba thành phần màu RGB trước tiên sẽ được chuyển đổi sang không gian độ chói – màu như YCbCr, YUB hay CIELAB Việc chuyển đổi không gian màu này

sẽ giúp tăng hiệu quả nén do tính chất cảm thụ của mắt người trong không gian độ chói – màu Mắt người cảm thụ sự khác biệt trong độ chói tốt hơn sự khác biệt trong thành phần màu nên có thể giảm mẫu thành phần màu mà không ảnh hưởng đến chất lượng ảnh do mắt người không cảm nhận được

Công thức chuyển đổi không gian màu từ RGB sang YCbCr như sau:

Trang 29

hỗ trợ tiến hành giảm mẫu (subsampling) hai thành phần màu này theo chiều ngang

và/hoặc theo chiều dọc mà chỉ làm mất mát rất ít thông tin, tạo ra các định dạng màu 4:4:4, 4:2:2, 4:2:0 Định dạng màu 4:4:4 nghĩa là không có thành phần màu nào bị giảm mẫu Định dạng màu 4:2:2 nghĩa là các thành phần màu có cùng độ phân giải với thành phần chói theo chiều dọc, nhưng có độ phân giải theo chiều ngang chỉ bằng một nửa Định dạng màu 4:2:0 nghĩa là các thành phần màu có độ phân giải theo cả chiều dọc và chiều ngang chỉ bằng một nửa thành phần độ chói Khi giảm mẫu thì sẽ làm mất mát thông tin, nên đối với ảnh màu thì đây là bước đầu tiên làm mất mát thông tin Đối với ảnh xám, chỉ có một thành phần màu thì không phải chuyển đổi không gian màu

1.3.3.2 Sắp xếp dữ liệu ảnh gốc

Sau bước chuyển đổi không gian màu thì kích thước các chiều của các thành phần Y, Cb, Cr có thể khác nhau, tùy thuộc vào định dạng lấy mẫu màu Mỗi thành phần màu được chia thành các khối dữ liệu 8x8 và một đơn vị mã hóa nhỏ nhất

MCU (Minimum Coded Unit) trong mã hóa JPEG được hình thành từ cách chọn một hay nhiều khối dữ liệu trong thứ tự quét xen kẽ (interleave) hay không xen kẽ (non-interleave) Khi quét không xen kẽ, các khối dữ liệu của mỗi thành phần màu được lưu trữ và xử lý riêng theo thứ tự quét mành (raster scan order), từ trái sang

phải, từ trên xuống dưới Khi quét xen kẽ, khối dữ liệu của tất cả các thành phần màu sẽ thuộc cùng một MCU

Trang 30

Hình 1-5: Thứ tự MCU: YCbCr 4:4:4 (a), YCbCr 4:2:2 (b), YCbCr 4:2:0 (c) [8]

1.3.3.3 Thuật toán nén ảnh JPEG cơ sở

Hình 1-6: JPEG cơ sở: nén (a) và giải nén (b) [8]

Trang 31

Hình 1-6 mô tả các bước xử lý chính của kỹ thuật nén JPEG cơ sở, minh họa trường hợp đặc biệt của nén ảnh một thành phần màu (ảnh đa mức xám) Ta có thể nắm được phần cốt lõi của nén ảnh JPEG cơ sở với tư tưởng đây là phần cơ bản của quá trình nén một dòng các khối 8x8 các điểm ảnh xám Nén ảnh màu có thể được xấp xỉ như là nén nhiều ảnh xám, bằng cách nén toàn bộ từng ảnh một hay nén xen

kẽ từng khối 8x8 điểm ảnh của mỗi ảnh

Biến đổi cosine rời rạc (FDCT và IDCT)

Ở đầu vào của bộ mã hóa, các điểm ảnh nguồn được nhóm thành các khối 8x8, dịch chuyển giá trị từ các số nguyên không dấu trong khoảng [0, 2p – 1] thành các

số nguyên có dấu trong khoảng [-2p-1, 2p-1 – 1] và đưa vào biến đổi cosin rời rạc

thuận (Forward DCT – FDCT) Ở đầu ra của của trình giải mã, biến đổi cosin rời rạc đảo (Inverse DCT - IDCT) đưa ra các khối 8x8 điểm ảnh để tạo ra ảnh khôi

phục Các biểu thức sau là định nghĩa toán học lý thuyết của 8x8 FDCT và 8x8 IDCT:

DCT (DCT coefficients) mà giá trị của chúng là được quyết định duy nhất bởi tín hiệu dầu vào 64 điểm xác định

Do đó, các giá trị hệ số DCT có thể được xem như định lượng tương đối của tần số không gian hai chiều được chứa trong tín hiệu đầu vào 64 điểm Các hệ số

Trang 32

với tần số bằng 0 theo cả hai chiều được gọi là hệ số DC và 63 hệ số còn lại được gọi là các hệ số AC Do giá trị các điểm ảnh thường biến đổi chậm giữa các điểm trong ảnh nên bước xử lý DCT thuận đóng vai trò cơ bản trong việc nén dữ liệu bằng cách tập trung hầu hết tín hiệu trong miền tần số không gian thấp hơn Với một khối 8x8 của một ảnh bình thường thì hầu hết các tần số có biên độ bằng 0 hoặc gần bằng 0 và không cần phải mã hóa

Khi giải mã, DCT ngược đảo ngược bước xử lý này Nó lấy đầu vào là 64 hệ

số DCT (lúc này đã được lượng hóa) và khôi phục lại tín hiệu ảnh đầu ra 64 điểm bằng cách cộng các tín hiệu cơ sở Về mặt toán học, DCT là ánh xạ một-một giữa các vectơ 64 điểm giữa miền ảnh và miền tần số Nếu DCT thuận và đảo có thể được tính với độ chính xác hoàn hảo và nếu các hệ số DCT không bị lượng tử hóa, thì tín hiệu vectơ 64 điểm có thể khôi phục lại một cách chính xác Về nguyên lý, DCT không tạo ra mất mát thông tin đối với các điểm ảnh trong ảnh gốc, nó chỉ đơn thuần biến đổi chúng sang miền biểu diễn thích hợp cho việc mã hóa

Một số đặc điểm của việc cài dặt DCT thuận và DCT đảo dẫn đến vấn đề về

độ chính xác mà chuẩn JPEG yêu cầu Một đặc điểm cơ bản là các biểu thức DCT thuận và đảo chứa các hàm siêu việt Do đó, không có cài đặt vật lý nào có thể tính toán một cách chính xác hoàn toàn Do tính quan trọng của việc ứng dụng DCT và

mối liên hệ của nó đối với biến đổi Furier rời rạc (DFT - Discrete Fourier Transform) , nhiều thuật toán khác nhau của DCT thuận và đảo đã được tính toán xấp xỉ được phát minh ra Thực tế, việc nghiên cứu các thuật toán DCT nhanh vẫn đang tiếp tục phát triển và không có thuật toán cụ thể nào là tối ưu cho mọi cài đặt Thậm chí với độ chính xác hạn chế của đầu vào và đầu ra của DCT, các cài đặt được thiết kế riêng biệt của chính cùng một thuật toán DCT thuận và đảo cũng có thể khác biệt một chút trong độ chính xác mà chúng biểu diễn hệ số cosin hay các kết quả trung gian, hay cách chúng tính tổng và làm tròn các giá trị phân số, cũng sẽ tạo ra sự khác biệt một chút ở kết quả đầu ra của cùng dữ liệu đầu vào

Để duy trì sự tự do đổi mới và tùy biến trong các cài đặt, JPEG đã lựa chọn không đặc tả thuật toán duy nhất cho DCT thuận và đảo trong chuẩn Điều này làm cho việc xác nhận tuân theo chuẩn có phần khó hơn một chút, bởi vì hai mã hóa (hay giải mã) tuân theo chuẩn thường đưa ra cùng một đầu ra với đầu vào xác định Chuẩn JPEG giải quyết vấn đề này bằng cách đặc tả một chuẩn kiểm tra độ chính

Trang 33

xác như là một phần trong các kiểm tra của các cài đặt tuân theo chuẩn cho tất cả các mã hóa và giải mã dựa trên DCT, điều này đảm bảo chống lại sự sai khác của các hàm cơ sở cosin sẽ dẫn đến giảm chất lượng ảnh

Ở đầu ra của DCT thuận, từng hệ số của 64 hệ số sẽ được lượng hóa đồng bộ bằng cách liên kết với một bảng lượng hóa 64 phần tử, được định nghĩa bởi ứng dụng (hay người dùng) như đầu vào của quá trình mã hóa Mỗi phần tử thì có thể là một số nguyên nhận giá trị trong khoảng từ 1 đến 255, để xác định kích thước bước của bộ lượng hóa cho hệ số DCT tương ứng với nó Mục đích của lượng hóa là để

có thể đạt được độ nén tốt hơn bằng cách biểu diễn các hệ số DCT với độ chính xác không lớn hơn mức độ cần thiết cho chất lượng ảnh như mong muốn Nói cách khác, mục đích của bước xử lý này là bỏ đi những thông tin không ảnh hưởng đến trực quan Lượng hóa là một ánh xạ nhiều-một, do đó, nó gây mất mát thông tin Nó chính là nguồn gốc của sự tổn hao trong nén dựa trên DCT nói chung và nén JPEG

cơ sở nói riêng

Lượng hóa được định nghĩa bởi phép chia mỗi hệ số DCT cho kích thước bước lượng tử tương ứng của nó, sau đó làm tròn tới số nguyên gần nhất

' ( , ) ( , ) * ( , )

F u v =F u v Q u v ( 1-17 ) Khi mục tiêu để nén ảnh càng nhiều càng tốt mà không tạo ra nhiễu cảm nhận được, độ lớn mỗi bước lượng tử lý tưởng nên được chọn như một ngưỡng cảm nhận hay sự khác biệt vừa đủ chú ý cho phần đóng góp của hàm cosin cơ sở tương ứng với nó Các ngưỡng này cũng là các hàm của đặc tính của ảnh gốc, các đặc tính hiển thị và khoảng cách quan sát Đối với các ứng dụng có thể định nghĩa các biến số này khá tốt, thực tế tâm lý nhìn có thể được dùng để quyết định ngưỡng tốt nhất Những thông số này được thử nghiệm bởi các thành viên của tố chức JPEG và xuất

Trang 34

hiện trong chuẩn ISO (International Standards Organization) như nội dung thông

tin, chứ không phải là yêu cầu bắt buộc

Mã hóa DC và chuỗi zig-zag

Sau khi lượng hóa, hệ số DC được xử lý tách riêng khỏi 63 hệ số AC Hệ số

DC là thước đo giá trị trung bình của 64 điểm ảnh Do giá trị DC giữa các khối 8x8 liền kề thường có mối tương quan với nhau nên hệ số DC đã lượng hóa được mã hóa bằng sự sai khác so với khối đã được mã hóa trước đó Việc xử lý đặc biệt này

là đáng giá vì các hệ số DC thường chứa một lượng đáng kể trong tổng năng lượng của ảnh

Trang 35

Bước xử lý cuối cùng của quá trình nén JPEG cơ sở là mã hóa entropy Bước này đạt được thêm độ nén không tổn hao bằng cách mã hóa các hệ số DCT đã lượng hóa dựa trên đặc điểm thống kê của chúng JPEG đề xuất đặc tả cho hai phương pháp mã hóa entropy: mã hóa Huffman và mã hóa toán học Bộ mã tuần tự cơ sở sử dụng mã hóa Huffman, còn các bộ mã với cả hai phương pháp này được đặc tả cho tất cả các kiểu thực hiện

Ta có thể xem xét mã hóa entropy như một quá trình gồm 2 bước Bước đầu tiên là biến đổi chuỗi zig-zag các hệ số đã lượng hóa thành một chuỗi trung gian gồm các ký hiệu Bước thứ hai là biến đổi các ký hiệu này thành dòng dữ liệu liên tục

Mã hóa Huffman yêu cầu một hoặc nhiều tập hợp bảng mã được định nghĩa bởi ứng dụng JPEG yêu cầu sử dụng cùng một tập hợp bảng mã đã dùng để mã hóa

để giải mã Các bảng mã Huffman có thể được định nghĩa trước và được dùng trong ứng dụng như mặc định hoặc có thể được tính toán riêng cho từng ảnh đầu vào trong quá trình thu thập thống kê ban đầu trước quá trình nén Những lựa chọn này

là nhiệm vụ của ứng dụng sử dụng JPEG, JPEG không đặc tả cho các bảng mã Huffman

1.3.3.4 Ví dụ minh họa thuật toán nén ảnh JPEG cơ sở

Phần dưới đây sẽ xem xét một ví dụ mô tả quá trình nén và giải nén theo kiểu JPEG cơ sở cho một khối 8x8 bit để minh họa cho các lý thuyết đã nói ở trên

Đầu vào của quá trình nén là khối 8x8 điểm ảnh, trích từ một ảnh thật Tính chất của khối dữ liệu này là sự biến đổi giá trị của các điểm ảnh nhỏ, điều này thể hiện sự vượt trội của các tần số không gian thấp

Hình 1-9: Dữ liệu ảnh gốc [1]

Trang 36

Sau khi trừ từng giá trị điểm ảnh cho 128, khối dữ liệu được thực hiện phép biến đổi DCT thuận và cho kết quả như sau:

Trang 37

Sau đó, các hệ số DCT đã lượng hóa này được mã hóa Huffman trước khi truyền đến quá trình giải mã Hệ số DC (15) phải được mã hóa sai phân Chẳng hạn, nếu hệ số DC của khối trước là 12 thì giá trị sai khác +3 sẽ được mã hóa Do đó, biểu diễn trung gian sẽ là (2)(3), thể hiện SIZE = 2 và AMPLITUDE = 3

Tiếp theo các hệ số AC cũng được mã hóa theo thứ tự zig-zag Giá trị khác 0 đầu tiên là -2, trước đó là 1 giá trị 0 Do đó, biểu diễn trung gian sẽ là (1,2)(-2) Tiếp theo của thứ tự zig-zag là ba giá trị khác 0 và đều bằng -1 Điều này có nghĩa là mỗi một giá trị đứng trước một dải không có giá trị 0 nào, nên biểu diễn trung gian của

nó là (0,1)(-1) Hệ số khác 0 cuối cùng là -1, đứng trước bởi hai giá trị 0, nên biểu diễn trung gian sẽ là (2,1)(-1) Vì đây là hệ số khác 0 cuối cùng, nên biểu diễn cuối cùng của khối 8x8 này là EOB hay (0,0)

Kết quả cuối cùng của chuỗi ký hiệu trung gian cho mã Huffman này là:

(2)(3), (1,2)(-2), (0,1)(-1), (0,1)(-1) , (0,1)(-1), (2,1)(-1), (0,0)

Ở bước tiếp theo, mã Huffman sẽ được sử dụng để mã hóa giá trị của sai khác

DC theo bảng mã Huffman như sau:

Bảng 1-1: Bảng mã Huffman cho sai phân của hệ số DC [10]

Trang 38

Bảng 1-2: Dải độ lớn hệ số AC tương ứng với kích thước bit [10]

Kết quả của mã hóa sai phân hệ số DC và các hệ số AC là

Bảng 1-3: Tính toán giá trị VLC và VLI cho sai phân DC và các hệ số AC [10]

Từ kết quả trên, dòng bit của khối dữ liệu 8x8 trong ví dụ trên như sau:

0111111011010000000001110001010

Quá trình giải mã sẽ thực hiện ngược lại quá trình mã hóa Đầu tiên, dòng bit

mã hóa Huffman trên sẽ được giải mã Huffman và thu được khối dữ liệu các hệ số được giải lượng tử như sau:

Hình 1-13: Khối dữ liệu giải mã đã lượng tử [1]

Trang 39

Khối dữ liệu này sẽ được biến đổi DCT ngược để thu được khối dữ liệu ảnh khôi phục như sau:

Hình 1-14: Khối dữ liệu khôi phục từ bộ giải nén JPEG [1]

1.3.4 Nén và chất lượng ảnh JPEG

Đối với các ảnh màu có nội dung cảnh không phức tạp lắm, hầu hết các phương pháp nén ảnh JPEG dựa trên DCT thường cung cấp các mức độ chất lượng như sau đối với một dải độ nén cụ thể Các mức độ này chỉ mang tính tham khảo, chất lượng và độ nén có thể khác biệt đáng kể tùy thuộc vào đặc tính và nội dung cảnh của ảnh gốc

• 0.25 - 0.5 bit/pixel: chất lượng từ khá cho đến tốt, phù hợp cho một số ứng dụng

• 0.5 - 0.75 bit/pixel: chất lượng từ tốt đến rất tốt, phù hợp cho nhiều ứng dụng

• 0.75 – 1.5 bit/pixel: chất lượng xuất sắc, phù hợp cho hầu hết các ứng dụng

• 2.0 bit/pixel: thường không phân biệt nổi với ảnh gốc, phù hợp cho các ứng dụng đòi hỏi khắt khe nhất

Độ chính xác của ảnh tăng lên khi tăng tốc độ bit bằng cách giảm các hệ số trong bảng lượng hóa Tuy nhiên do tốc độ bit tăng lên nên độ nén của ảnh sẽ giảm, dung lượng ảnh nén sẽ tăng

Khi tỉ số nén cao, chất lượng ảnh JPEG sẽ xuất hiện các khối vuông

Trang 40

1.4 Phương pháp nén ảnh theo chuẩn JPEG2000

1.4.1 Giới thiệu chung về chuẩn nén ảnh JPEG2000

JPEG2000 là một chuẩn nén ảnh tĩnh mới được tổ chức JPEG công bố vào năm 2000 và khuyến cáo người dùng và ứng dụng sử dụng chuẩn này thay thế chuẩn JPEG JPEG2000 không nén ảnh dựa trên biến đổi DCT như JPEG mà dựa trên biến đổi wavelet Mục tiêu của JPEG2000 không chỉ là cải thiện hiệu năng nén

so với JPEG mà còn nhằm thêm hay cải thiện một số chức năng như khả năng co dãn và điều chỉnh Nó cung cấp cho người dùng khả năng điều khiển chuỗi xử lý ảnh một cách linh động Một ví dụ điển hình về khả năng mới của JPEG2000 so với

JPEG là nó cho phép truyền một ảnh đã được chia thành các cấp (layers) để người

dùng cuối có thể lựa chọn một cấp để tải về, tùy theo dung lượng băng thông của người dùng: ảnh có thể co dãn theo cả độ phân giải và chất lượng

Thực tế, việc cải thiện khả năng hỗ trợ tốc độ bit từ rất nhỏ đến rất lớn của JPEG2000 so với JPEG là một trong những thế mạnh quan trọng của JPEG2000 JPEG2000 hỗ trợ một số chức năng quan trọng sau [6]:

hiện tại như JPEG khi thực hiện nén ở tốc độ bit thấp (nghĩa là tốc độ bit khoảng 0.25 bpp đối với ảnh xám có đặc điểm nhiều chi tiết) Các ứng dụng cần đến chức năng này bao gồm truyền ảnh qua mạng và cảm biến điều khiển từ xa Đây là tính năng quan trọng nhất của JPEG2000

• Nén ảnh có tông màu liên tục (continuous-tone) và ảnh nhị phân (bi-level) Các ứng dụng sử dụng tính năng này bao gồm: các tài liệu kết hợp cả ảnh và văn bản, các ảnh y tế có các ghi chú kèm theo, các ảnh đồ họa và các ảnh do máy tính tạo ra với các vùng nhị phân hay

gần nhị phân, sao chép

mã hóa cho cả nén có tổn hao và nén không tổn hao Điều này cho phép JPEG2000 có thể sử dụng cả hai dạng nén này cho cùng một ứng dụng Tính năng này phù hợp với các ứng dụng ảnh y tế yêu cầu không được phép sai sót, các ứng dụng mà chất lượng ảnh cao nhất là

Ngày đăng: 12/02/2021, 18:03

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Gregory K. Wallace (1991), The JPEG Still Picture Compression Standard, Published in IEEE Transactions on Consumer Electornics Sách, tạp chí
Tiêu đề: The JPEG Still Picture Compression Standard
Tác giả: Gregory K. Wallace
Năm: 1991
[4]. Charilaos Christopoulos, Athanassios Skodras, Touradj Ebrahimi (2000), The JPEG2000 still image coding system: an overview, Published in IEEE Transactions on Consumer Electornics Sách, tạp chí
Tiêu đề: The JPEG2000 still image coding system: an overview
Tác giả: Charilaos Christopoulos, Athanassios Skodras, Touradj Ebrahimi
Năm: 2000
[8]. Tinku Acharya, Ping-Sing Tsai (2005), JPEG2000 Standard for Image Compression” Sách, tạp chí
Tiêu đề: JPEG2000 Standard for Image Compression
Tác giả: Tinku Acharya, Ping-Sing Tsai
Năm: 2005
[9]. Marco Cantu (2003), “Mastering Delphi 7” Sách, tạp chí
Tiêu đề: Mastering Delphi 7
Tác giả: Marco Cantu
Năm: 2003
[10]. Purdure University (2007), Digital Image Processing Laboratory: Anchromatic Baseline JPEG encoding Lab Sách, tạp chí
Tiêu đề: Digital Image Processing Laboratory
Tác giả: Purdure University
Năm: 2007
[2]. Radhika Veerla (2008), Implementation of AIC based on I-frame only coding in H.264 and comparison with other still frame image coding standards such as JPEG, JPEG 2000, JPEG-LS, JPEG-XR Khác
[5]. Giacomo Camperi, Vittorio Picco (2008), H.264/AVC intra coding and JPEG2000 comparison Khác
[6]. A.N. Skodras, C.A Christopoulos and T.Ebrahimi, JPEG2000: The Upcoming Still image Compression Standard Khác
[7]. Ida Mengyi Pu (2006), Fundamental Data Compression Khác
[11]. Iain Rechardson (2007), White paper: An overview of H.264 Advanced Video Coding Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w