68
Đồ án tốt nghiệp đại học Mục lục Nguyễn Phương Hiền – D04VT2 i MỤC LỤC MỤC LỤC .................................................................................................................. I DANH MỤC HÌNH VẼ .......................................................................................... IV DANH MỤC BẢNG BIỂU ..................................................................................... VI THUẬT NGỮ VIẾT TẮT ..................................................................................... VII LỜI NÓI ĐẦU........................................................................................................... A CHƯƠNG 1 TỔNG QUAN ẢNH SỐ VÀ CÁC KĨ THUẬT NÂNG CAO CHẤT LƯỢNG ẢNH ............................................................................................................ 1 1.1 TỔNG QUAN VỀ ẢNH SỐ ....................................................................................... 1 1.2 CÁC KĨ THUẬT NÂNG CAO CHẤT LƯỢNG ẢNH ....................................................... 1 1.2.1 Biến đổi mức xám ........................................................................................ 1 1.2.1.1 Biến đổi âm bản .................................................................................... 2 1.2.1.2 Biến đổi log ........................................................................................... 2 1.2.1.3 Biến đổi hàm mũ.................................................................................... 3 1.2.1.4 Giãn độ tương phản............................................................................... 3 1.2.1.5 Kĩ thuật cắt theo mức ............................................................................ 4 1.2.2 Cân bằng mức xám ...................................................................................... 5 1.2.3 So sánh mức xám ......................................................................................... 6 1.2.4 Chèn nhiễu................................................................................................... 6 1.2.5 Lọc ảnh ........................................................................................................ 7 1.2.5.1 Lọc làm mịn ảnh .................................................................................... 8 a. Lọc không gian tuyến tính ......................................................................... 8 b. Lọc không gian phi tuyến .......................................................................... 8 c. Lọc trung bình ........................................................................................... 8 d. Lọc thông thấp miền tần số ........................................................................ 9 1.2.5.2 Lọc sắc nét ảnh..................................................................................... 9 a. Lọc thông cao ............................................................................................ 9 b. Lọc tần số từ không gian.......................................................................... 10 1.2.5 Các kĩ thuật làm nổi đường biên ảnh ......................................................... 10 1.3 KẾT LUẬN CHƯƠNG 1 ........................................................................................ 11 CHƯƠNG 2 CÁC KĨ THUẬT NÉN ẢNH ............................................................. 12

Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Embed Size (px)

DESCRIPTION

Image Processing

Citation preview

Page 1: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Mục lục

Nguyễn Phương Hiền – D04VT2 i

MỤC LỤC

MỤC LỤC.................................................................................................................. I DANH MỤC HÌNH VẼ .......................................................................................... IV DANH MỤC BẢNG BIỂU ..................................................................................... VI THUẬT NGỮ VIẾT TẮT ..................................................................................... VII LỜI NÓI ĐẦU...........................................................................................................A CHƯƠNG 1 TỔNG QUAN ẢNH SỐ VÀ CÁC KĨ THUẬT NÂNG CAO CHẤT LƯỢNG ẢNH ............................................................................................................1

1.1 TỔNG QUAN VỀ ẢNH SỐ.......................................................................................1 1.2 CÁC KĨ THUẬT NÂNG CAO CHẤT LƯỢNG ẢNH.......................................................1

1.2.1 Biến đổi mức xám ........................................................................................1 1.2.1.1 Biến đổi âm bản ....................................................................................2 1.2.1.2 Biến đổi log ...........................................................................................2 1.2.1.3 Biến đổi hàm mũ....................................................................................3 1.2.1.4 Giãn độ tương phản...............................................................................3 1.2.1.5 Kĩ thuật cắt theo mức ............................................................................4

1.2.2 Cân bằng mức xám ......................................................................................5 1.2.3 So sánh mức xám .........................................................................................6 1.2.4 Chèn nhiễu...................................................................................................6 1.2.5 Lọc ảnh........................................................................................................7

1.2.5.1 Lọc làm mịn ảnh....................................................................................8 a. Lọc không gian tuyến tính .........................................................................8 b. Lọc không gian phi tuyến ..........................................................................8 c. Lọc trung bình ...........................................................................................8 d. Lọc thông thấp miền tần số ........................................................................9

1.2.5.2 Lọc sắc nét ảnh.....................................................................................9 a. Lọc thông cao ............................................................................................9 b. Lọc tần số từ không gian..........................................................................10

1.2.5 Các kĩ thuật làm nổi đường biên ảnh .........................................................10 1.3 KẾT LUẬN CHƯƠNG 1 ........................................................................................11

CHƯƠNG 2 CÁC KĨ THUẬT NÉN ẢNH .............................................................12

Page 2: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Mục lục

Nguyễn Phương Hiền – D04VT2 ii

2.1 TỔNG QUAN VỀ NÉN ẢNH ..................................................................................12 2.1.1 Giới thiệu chung về nén ảnh số ..................................................................12 2.1.2 Sơ đồ khối hệ thống nén ảnh điển hình.......................................................13 2.1.3 Phân loại các kỹ thuật nén .........................................................................13 2.1.4 Các nguyên tắc khi nén ảnh .......................................................................14 2.1.5 Dư thừa số liệu ..........................................................................................14

2.1.5.1 Dư thừa mã (Coding Redundancy) ......................................................15 2.1.5.2 Dư thừa trong pixel ( Interpixel Redudancy) .......................................16 2.1.5.3 Dư thừa tâm sinh lý (Psychovisual Redudancy) ...................................16

2.1.6 Giới thiệu một số kỹ thuật sử dụng trong nén ảnh ......................................17 2.1.6.1 Mã hoá dựa trên phép biến đổi DCT ...................................................17

a. Biến đổi DCT thuận và nghịch.................................................................17 b. Lượng tử và giải lượng tử ........................................................................19 c. Mã hóa và giải mã....................................................................................19

2.1.6.2 Kỹ thuật mã hoá băng con ...................................................................20 a. Ý tưởng mã hoá băng con............................................................................20 b. Mã hoá băng con.........................................................................................20 2.1.6.3 Biến đổi Wavelet trong nén ảnh ...........................................................22

a. Biến đổi Wavelet 1-D ..............................................................................23 b. Biến đổi Wavelet rời rạc 2-D...................................................................24

2.1.7 Các tiêu chuẩn nén ảnh..............................................................................26 2.2. GIỚI THIỆU JPEG VÀ JPEG2000......................................................................26

2.2.1 JPEG .........................................................................................................26 2.2.1.1 Giới thiệu sơ lược................................................................................26 2.2.1.2 Sơ đồ khối ...........................................................................................27

2.2.2 JPEG2000 .................................................................................................28 2.2.2.1 Giới thiệu sơ lược................................................................................28 2.2.2.2 Sơ đồ khối bộ mã hóa và bộ giải mã JPEG 2000 .................................28

2.2.3 So sánh JPEG và JPEG2000 .....................................................................29 2.3 KẾT LUẬN CHƯƠNG 2 ........................................................................................31

CHƯƠNG 3 CHƯƠNG TRÌNH MÔ PHỎNG.......................................................32 3.1 NGÔN NGỮ MATLAB .........................................................................................32

Page 3: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Mục lục

Nguyễn Phương Hiền – D04VT2 iii

3.1.1 Sơ lược lịch sử Matlab ..............................................................................32 3.1.2 Đặc điểm của Matlab và các ứng dụng ......................................................34

3.2 CHƯƠNG TRÌNH MÔ PHỎNG SỬ DỤNG MATLAB ..................................................35 3.2.1 Giao diện chương trình mô phỏng..............................................................35 3.2.2 Nâng cao chất lượng ảnh...........................................................................36

3.2.2.1 Biến đổi mức xám ................................................................................36 a. Biến đổi mức xám sử dụng hàm imadjust ................................................37 b. Biến đổi âm bản.......................................................................................38 c. Biến đổi log .............................................................................................39 d. Biến đổi hàm mũ .....................................................................................39 e. Biến đổi giãn độ tương phản ....................................................................40 f. Kĩ thuật cắt theo mức ...............................................................................41

3.2.2.2 Cân bằng mức xám ..............................................................................41 3.2.2.3 So sánh mức xám.................................................................................42 3.2.2.4 Chèn nhiễu ..........................................................................................43 3.2.2.5 Lọc ảnh ...............................................................................................44

a. Lọc làm mịn ảnh......................................................................................45 b. Lọc sắc nét ảnh........................................................................................51

3.2.2.6 Các kĩ thuật làm nổi đường biên ảnh ...................................................53 3.2.3 Nén ảnh .....................................................................................................54

3.2.3.1 Nén ảnh dùng mã hóa Huffman ...........................................................54 3.2.3.2 Nén ảnh dùng mã dự đoán không tổn thất............................................54 3.2.3.3 Nén ảnh JPEG dùng biến đổi DCT ......................................................54 3.2.3.4 Nén ảnh JPEG2000 .............................................................................55

3.3 KẾT LUẬN CHƯƠNG 3 ........................................................................................56 KẾT LUẬN ..............................................................................................................57 TÀI LIỆU THAM KHẢO .......................................................................................58

Page 4: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Danh mục hình vẽ

Nguyễn Phương Hiền – D04VT2 iv

DANH MỤC HÌNH VẼ

Hình 1.1 Biến đổi âm bản ...........................................................................................2 Hình 1.2 Đồ thị hàm log ..............................................................................................3 Hình 1.3 Đồ thị hàm mũ ..............................................................................................3 Hình 1.4 Biến đổi giãn độ tương phản..........................................................................4 Hình 1.5 Đồ thị kĩ thuật cắt theo mức ..........................................................................4 Hình 1.6 Biểu đồ hàm s = T(r) .....................................................................................5 Hình 1.7 Cơ chế lọc không gian...................................................................................7 Hình 1.8 Đường biên của ảnh ....................................................................................10 Hình 2.1 Sơ đồ khối một hệ thống nén ảnh điển hình.................................................13 Hình 2.2 Mô hình mã hóa dự đoán không tổn thất bao gồm bộ mã hóa và bộ giải mã 16 Hình 2.3 Sơ đồ mã hóa và giải mã dùng biến đổi DCT ..............................................17 Hình 2.4 Các bước của quá trình mã hóa biến đổi DCT đối với 1 khối.......................18 Hình 2.5 a) Băng lọc phân tích; b) Hai bộ lọc thông thấp và thông cao c) Phần vùng trong miền tần số; d) Băng lọc tổng hợp ....................................................................21 Hình 2.6 Sơ đồ khối phân tích tín hiệu mức j .............................................................23 Hình 2.7 Sơ đồ biến đổi ngược Wavelet mức j...........................................................24 Hình 2.8 Sơ đồ phân tích Wavelet rời rạc 2-D............................................................25 Hình 2.9 Sơ đồ biến đổi ngược Wavelet rời rạc 2-D...................................................25 Hình 2.10 Sơ đồ khối bộ mã hóa và giải mã JPEG dựa trên biến đổi DCT .................27 Hình 2.11 Sơ đồ khối bộ mã hóa và bộ giải mã JPEG 2000 .......................................28 Hình 2.12 So sánh JPEG, JPEG2000 .........................................................................29 Hình 2.13 Tỉ lệ nén của JPEG2000 và JPEG..............................................................30 Hình 2.14 Minh hoạ tính năng ROI............................................................................31 Hình 3.1 Giao diện chương trình nâng cao chất lượng và nén ảnh..............................36 Hình 3.2 Giao diện chương trình biến đổi ảnh xám....................................................37 Hình 3.3 Đồ thị của các giá trị trong hàm imadjust ....................................................38 Hình 3.4 Ảnh âm bản.................................................................................................39 Hình 3.5 Ảnh biến đổi hàm log ..................................................................................39 Hình 3.6 Ảnh biến đổi hàm mũ ..................................................................................40

Page 5: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Danh mục hình vẽ

Nguyễn Phương Hiền – D04VT2 v

Hình 3.7 Ảnh giãn độ tương phản ..............................................................................40 Hình 3.8 Ảnh cắt theo mức không nền và có nền .......................................................41 Hình 3.9 Ảnh cân bằng và biểu đồ .............................................................................42 Hình 3.10 Hai ảnh xám gần giống nhau .....................................................................42 Hình 3.11 Ảnh xám thu được trước và sau khi cân bằng ...........................................43 Hình 3.12 Ảnh chèn nhiễu salf & pepper ...................................................................43 Hình 3.13 Giao diện chương trình mô phỏng các phương pháp chèn và lọc nhiễu......44 Hình 3.14 Ảnh lọc sử dụng bộ lọc trung bình.............................................................47 Hình 3.15 Ảnh thu được nhờ bộ lọc Laplace có giá trị -4 và -8 ở chính giữa..............48 Hình 3.16 Ảnh lọc không gian phi tuyến....................................................................49 Hình 3.17 Ảnh lọc trung vị 3x3..................................................................................50 Hình 3.18 Ảnh lọc trung bình ....................................................................................50 Hình 3.19 Ảnh lọc thông thấp ....................................................................................51 Hình 3.20 Ảnh lọc thông cao cơ bản ..........................................................................51 Hình 3.21 Ảnh lọc emphasis cao tần ..........................................................................52 Hình 3.22 Ảnh lọc tần số từ không gian .....................................................................53 Hình 3.23 Giao diện nén ảnh JPEG và JPEG2000......................................................55

Page 6: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Danh mục bảng biểu

Nguyễn Phương Hiền – D04VT2 vi

DANH MỤC BẢNG BIỂU

Bảng 2.1 Số bit mỗi pixel ................................................................................... 30

Bảng 3.1 Các bộ lọc đặc biệt............................................................................... 45

Page 7: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Thuật ngữ viết tắt

Nguyễn Phương Hiền – D04VT2 vii

THUẬT NGỮ VIẾT TẮT

Thuật ngữ Tên tiếng Anh Tiếng Việt D

DCT Discrete Cosin Transform Biến đổi cosin rời rạc DFT Discrete Fourier Transform Biến đổi Fourier rời rạc DWT Discrete Wavelet Transform Biến đổi Wavelet rời rạc

F

FFT Fast Fourier Transform Biến đổi Fourier nhanh I

IEEE Institute of Electrical and Electronic Enginee

Học viện kĩ nghệ điện và điện tử

IPT Image Processing Toolbox Hộp công cụ xử lí ảnh ISO International Organization for

Standardization Tổ chức chuẩn hóa quốc tế

J

JPEG Joint Photo Graphic Experts Group

Liên hiệp các nhóm chuyên gia về hình ảnh

M

MIT Massachusetts Institute of Technology

Học viện Công nghệ Massachusetts

MPEG Motion Picture Experts Group

Nhóm chuyên gia về hình ảnh động

MSE Mean Square Error Lỗi trung bình quân phương P

PSNR Peak Signal-to-Noise Ratio Tỷ số tín hiệu đỉnh trên nhiễu Q

QMF Quadrature Mirror Filter Bộ lọc gương cầu phương

Page 8: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Thuật ngữ viết tắt

Nguyễn Phương Hiền – D04VT2 viii

S

SBC Subband Coding Mã hóa băng con SNR Signal-to-Noise Ratio Tỷ số tín hiệu trên nhiễu

R

RLC Run Length Coding Mã hoá loạt dài RMSE Root Mean Square Error Lỗi trung bình quân phương

chuẩn ROI Region of Interest Mã hoá ảnh theo vùng

V

VLC Variable Length Coding Mã hóa với độ dài mã thay đổi W

WIC Wavelet Image Compession Nén ảnh sử dụng Wavelet

Page 9: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Lời nói đầu

Nguyễn Phương Hiền – D04VT2 a

LỜI NÓI ĐẦU

Trong nhiều thập kỷ gần đây, cùng với sự tiến bộ của khoa học kỹ thuật, sự phát triển mạnh mẽ của máy tính và sự ra đời của Internet thì nhu cầu các dịch vụ dữ liệu truyền trên mạng là rất lớn, nhất là dữ liệu đa phương tiện. Ảnh số ra đời khiến cho nhu cầu của con người về chất lượng ảnh cũng ngày càng tăng cao. Con người sử dụng ảnh số cho nhiều mục đích, nhiều lĩnh vực khác nhau, từ nghệ thuật, y học cho tới thiên văn học, địa lý,…Vì vậy ảnh số phải được xử lí sao cho phù hợp với từng mục đích cụ thể. Xuất phát từ nhu cầu đó của con người, nhiều kỹ thuật xử lí ảnh số ra đời. Xử lí ảnh số mặc dù là một khoa học còn tương đối mới mẻ so với nhiều ngành khoa học khác nhất là trên quy mô công nghiệp, song nó đã đem lại nhiều lợi ích. Xử lí ảnh số bao gồm việc tìm tòi nghiên cứu về các kĩ thuật nén ảnh để đảm bảo tiết kiệm băng thông truyền dẫn, giảm bớt không gian lưu trữ để truyền thông tin trên mạng một cách dễ dàng và nhanh chóng. Ngoài ra, các thuật toán nhằm nâng cao chất lượng ảnh cũng là một vấn đề đòi hỏi sự đầu tư nghiên cứu. Các thuật toán, các phép biến đổi nâng cao chất lượng ảnh mà chúng ta đã biết như tạo ảnh âm bản, chèn nhiễu, tăng, giãn độ tương phản, biến đổi logic số học, phép lọc…

Các kỹ thuật nén sử dụng phép biến đổi Fourier (FT), biến đổi cosine rời rạc (DCT), biến đổi Wavelet (DWT)... có nhiều ưu điểm không chỉ trong xử lí ảnh mà còn nhiều ứng dụng khác. Bằng chứng là sự ra đời của chuẩn nén JPEG (DCT) và JPEG2000 (dựa trên DWT) đang được sử dụng rất rộng rãi.

Với mục tiêu xây dựng chương trình mô phỏng, minh họa cho các kĩ thuật nâng cao chất lượng và nén ảnh, em quyết định chọn đề tài này để làm đồ án tốt nghiệp.

Đồ án của em chia làm 3 chương:

- Chương 1 giới thiệu tổng quan về ảnh số và các kĩ thuật nâng cao chất lượng ảnh như biến đổi ảnh xám, biến đổi âm bản, các phương pháp lọc ảnh nhiễu...

- Chương 2 giới thiệu về kĩ thuật nén ảnh và đi sâu vào 2 chuẩn nén ảnh JPEG và JPEG2000.

- Chương 3 giới thiệu tổng quan về ngôn ngữ lập trình Matlab và chương trình mô phỏng kĩ thuật nâng cao chất lượng và nén ảnh bằng Matlab.

Page 10: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Lời nói đầu

Nguyễn Phương Hiền – D04VT2 b

Em xin chân thành cảm ơn thầy giáo, ThS. Nguyễn Xuân Hoàng đã nhiệt tình hướng dẫn, tạo điều kiện giúp đỡ em hoàn thành đồ án này.

Hà nội, tháng 11 năm 2008

Sinh viên

Nguyễn Phương Hiền

Page 11: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 1: Nâng cao chất lượng ảnh

Nguyễn Phương Hiền – D04VT2 1

CHƯƠNG 1

TỔNG QUAN ẢNH SỐ VÀ CÁC KĨ THUẬT NÂNG CAO CHẤT LƯỢNG ẢNH

Lịch sử của xử lí ảnh bắt nguồn từ việc nâng cao chất lượng hình ảnh được truyền qua giữa đường cáp London và NewYork vào năm 1920. Lúc ấy xử lí ảnh chỉ đơn giản là xử lí phân bố các mức sáng (mức xám và độ phân giải của ảnh). Việc nâng cao chất lượng ảnh bằng các phương pháp xử lí để truyền ảnh số được nghiên cứu liên tục 35 năm sau đó. Do kỹ thuật máy tính ngày càng phát triển, nên xử lí ảnh và nâng cao chất lượng ảnh cũng phát triển rất nhanh.

Trong chương này, ta tìm hiểu về một số kĩ thuật nâng cao chất lượng ảnh như biến đổi ảnh xám, các phương pháp lọc nhiễu, làm nổi đường biên ảnh... Các kĩ thuật này hiện nay đang được ứng dụng rộng rãi trong nhiều lĩnh vực.

1.1 Tổng quan về ảnh số

Hình ảnh tĩnh có thể được biểu diễn bởi hàm 2 chiều f(x,y), trong đó x và y là tọa độ không gian phẳng (2 chiều). Khi xét ảnh “đen-trắng”, giá trị hàm f tại một điểm được xác định bởi tọa độ (x, y) được gọi là độ chói (mức xám) của ảnh tại điểm này. Nếu x, y và f là các giá trị rời rạc, ta gọi ảnh đó là ảnh số. Xử lí ảnh số là quá trình biến đổi ảnh số trên máy tính. Như vậy, ảnh số được tạo ra bởi một số hữu hạn các điểm ảnh, mỗi điểm ảnh nằm tại một vị trí nhất định và có một giá trị nhất định. Một điểm ảnh trong một ảnh còn được gọi là một pixel.

1.2 Các kĩ thuật nâng cao chất lượng ảnh

Hệ thống thị giác là cơ quan cảm nhận hình ảnh quang học tương đối hoàn hảo, cho phép con người cảm nhận được hình ảnh quang học trong thiên nhiên. Ứng dụng quan trọng nhất của nâng cao chất lượng ảnh là biến đổi tính chất của ảnh số nhằm tạo cảm nhận về sự gia tăng chất lượng hình ảnh quang học.

1.2.1 Biến đổi mức xám

Hàm biến đổi mức xám có công thức như sau:

s = T(r) (1.1) [2]

Page 12: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 1: Nâng cao chất lượng ảnh

Nguyễn Phương Hiền – D04VT2 2

trong đó r: mức xám ảnh vào f(x, y)

s: mức xám ảnh ra g(x, y)

T: hàm biến đổi mức xám.

1.2.1.1 Biến đổi âm bản

Âm bản của một ảnh có các mức xám trong khoảng [0, L-1] được tạo ra nhờ phép biến đổi âm. Phép biến đổi này ứng dụng rất nhiều trong các phim ảnh trong y học.

Hàm sử dụng trong ảnh âm bản như sau:

f (u) = L − u (1.2) [7]

trong đó L: mức xám cao nhất

u: mức xám của ảnh vào

f(u): hàm biến đổi mức xám của ảnh vào.

Hình 1.1 Biến đổi âm bản [7]

Phép biến đổi này phù hợp cho việc nâng cao các chi tiết trắng hoặc xám nằm trong vùng tối của ảnh, đặc biệt là khi vùng tối chiếm phần lớn kích thước ảnh.

1.2.1.2 Biến đổi log

Các biến đổi log được thực hiện bằng cách sử dụng công thức:

s = c.log (1 + r) (1.3)

trong đó r: mức xám ảnh vào

c: hằng số

s: mức xám ảnh ra.

Page 13: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 1: Nâng cao chất lượng ảnh

Nguyễn Phương Hiền – D04VT2 3

Hình 1.2 Đồ thị hàm log

1.2.1.3 Biến đổi hàm mũ

Phép biến đổi theo hàm mũ có công thức cơ bản như sau:

s = c. γr (1.4)

trong đó r: mức xám ảnh vào

s: mức xám ảnh ra

c và γ: các hằng số dương.

Hình 1.3 Đồ thị hàm mũ

1.2.1.4 Giãn độ tương phản

Hàm biểu diễn trong hình 1.4 được gọi là một hàm biến đổi giãn độ tương phản bởi vì nó nén các mức đầu vào thấp hơn m thành một khoảng hẹp các mức tối trên ảnh

Page 14: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 1: Nâng cao chất lượng ảnh

Nguyễn Phương Hiền – D04VT2 4

ra; tương tự, nó nén các giá trị phía trên m thành một băng hẹp các mức sáng trên đầu ra. Kết quả ra là một ảnh có độ tương phản cao hơn.

Hình 1.4 Biến đổi giãn độ tương phản

1.2.1.5 Kĩ thuật cắt theo mức

Kỹ thuật này dùng 2 phép ánh xạ khác nhau cho trường hợp có nền và không nền.

- Có nền: ≤≤

=khácu

buakhiLuf )( (1.5) [7]

- Không nền: ≤≤

=khác

buakhiLuf

0)( (1.6) [7]

Đồ thị tương ứng của các hàm này như sau:

Hình 1.5 Đồ thị kĩ thuật cắt theo mức

Biến đổi này cho phép phân đoạn một số mức xám từ phần còn lại của ảnh. Nó có tác dụng khi nhiều đặc tính khác nhau của ảnh nằm trên nhiều miền mức xám khác nhau.

Page 15: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 1: Nâng cao chất lượng ảnh

Nguyễn Phương Hiền – D04VT2 5

1.2.2 Cân bằng mức xám

Ảnh có mức xám từ [0, L-1] sẽ có biểu đồ mức xám là:

h(rk) = nk (1.7) [2]

với rk là mức xám thứ k và nk là số pixel trong ảnh có cùng mức xám là rk.

Có thể chuẩn hóa bằng cách chia nk cho tổng số pixel của cả ảnh. Biểu đồ chuẩn hóa sẽ là: p(rk)= nk/n, n là tổng số pixel của cả ảnh. p(rk) phản ánh xác suất xuất hiện của mức xám rk. Chú ý là tổng các thành phần biểu đồ chuẩn hóa phải bằng 1.

Biểu đồ có thể coi là phản ánh xấp xỉ xác suất xuất hiện của các giá trị mức xám trong ảnh. Biểu đồ chính là nền tảng của đa số kỹ thuật xử lí miền không gian, còn có thể sử dụng cho các kỹ thuật nén ảnh, phân rã ảnh… Vận dụng biểu đồ có hiệu quả rất tốt đối với nâng cao chất lượng ảnh.

Đối với các ảnh có mức xám quá tập trung ở vùng tối hoặc vùng trắng, chúng ta có thể sử dụng phương pháp cân bằng mức xám của ảnh để phân tán biểu đồ xám.

Ta định nghĩa hàm s như sau bằng T(r), r thuộc [0, 1] thỏa mãn các điều kiện sau:

- T(r) đơn trị và đơn điệu tăng trên [0, 1] (a)

- 0 ≤ T(r) ≤ 1 với 0 ≤ r ≤ 1 (b)

với s và T(r) là mức xám ảnh ra và biến đổi T của mức xám ảnh vào.

Điều kiện (a) để đảm bảo tồn tại quá trình biến đổi ngược và điều kiện đơn điệu tăng để đảm bảo ảnh sau khi biến đổi không bị thay đổi thứ tự mức xám (trắng thành đen và ngược lại).

Hình 1.6 Biểu đồ hàm s = T(r)

Page 16: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 1: Nâng cao chất lượng ảnh

Nguyễn Phương Hiền – D04VT2 6

Với pr(w) là xác suất của mức xám w:

s = T(r) = ∫r

r dwwp0

)( (1.8) [2]

Với trường hợp r là rời rạc (tín hiệu số), ta có:

pr(rk) = nnk k = 0, 1, 2, ... , L – 1 (1.9) [2]

sk = T(rk) =∑=

k

jjr rp

0

)(

= ∑=

k

j

k

nn

0

k = 0, 1, 2, ... , L – 1 (1.10) [2]

Kết quả của quá trình biến đổi này là ảnh ra có phân bố biểu đồ đồng đều. Phương pháp này gọi là cân bằng biểu đồ.

1.2.3 So sánh mức xám

Có những ảnh khi quan sát ta khó có thể phân biệt được sư khác nhau giữa hai ảnh xám. Để có thể so sánh hai ảnh một cách rõ ràng chúng ta có thể sử dụng phép trừ hai ảnh này cho nhau: mức xám của điểm ảnh thu được sẽ bằng mức xám của điểm ảnh trên ảnh thứ nhất trừ cho mức xám trên điểm ảnh thứ hai. Kĩ thuật này thường được dùng trong dự báo thời tiết và trong y học.

1.2.4 Chèn nhiễu

Khi truyền ảnh đi trên một kênh truyền nào đó thì sẽ có ảnh hưởng của nhiễu, việc loại bỏ nhiễu sẽ đưa ra ảnh có chất lượng cao hơn. Thông thường, người ta xét đến 3 loại nhiễu chính:

• Nhiễu cộng: Nhiễu cộng thường phân bố khắp ảnh. Nếu gọi ảnh quan sát (ảnh thu được) là Xqs, ảnh gốc là Xgốc, nhiễu là η, ảnh thu được có thể biểu diễn bởi:

Xqs = Xgốc + η (1.11) [7]

• Nhiễu nhân: Nhiễu nhân thường phân bố khắp ảnh và ảnh thu được sẽ biểu diễn bởi:

Xqs = Xgốc * η (1.12) [7]

• Nhiễu xung: Nhiễu xung thường gây đột biến tại một số điểm ảnh.

Page 17: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 1: Nâng cao chất lượng ảnh

Nguyễn Phương Hiền – D04VT2 7

1.2.5 Lọc ảnh

Phương pháp lọc ảnh có khá nhiều ứng dụng để xử lí ảnh xám với các mục đích khác nhau: làm mịn ảnh, tăng độ nét của ảnh… Ta xét đến hai khái niệm lọc không gian và lọc tần số. Lọc trong miền không gian là nhân chập một ảnh xám f(x, y) với 1 mặt nạ lọc h(x, y) (là một ma trận H kích thước nhỏ) để tạo ra ảnh mới. Trên thực tế, tích chập không gian thường được đơn giản hóa bằng cách sử dụng các mặt nạ nhỏ, giữ lại các đặc điểm nổi bật của các ảnh. Với f(x, y) là ảnh vào, g(x, y) là ảnh ra, h(x, y) là mặt nạ lọc, ta có:

g(x, y) = f(x, y) ⊗ h(x, y) (1.13)

Ta cũng có thể làm tương tự trong miền tần số bằng cách nhân F(u, v) với H(u, v), đây chính là biến đổi Fourier của lọc không gian. Người ta thường gọi H(u, v) là hàm truyền đạt. Tùy thuộc ma trận sử dụng mà ta nhận được các kết quả khác nhau.

G(u, v) = F(u, v) H(u, v) (1.14)

với F(u, v), G(u, v) là biến đổi Fourier của ảnh vào và ảnh ra, H(u, v) là hàm truyền đạt của bộ lọc.

Hình 1.7 Cơ chế lọc không gian

Page 18: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 1: Nâng cao chất lượng ảnh

Nguyễn Phương Hiền – D04VT2 8

1.2.5.1 Lọc làm mịn ảnh

Ý tưởng của phương pháp lọc làm mịn là thay giá trị của một pixel bằng giá trị mức xám trung bình của các pixel trong mặt nạ. Phương pháp này sẽ giúp loại bỏ các chi tiết không liên quan trước khi thực hiện tách các đối tượng trong ảnh. Chi tiết ở đây là nhóm các pixel có kích thước rất nhỏ so với mặt nạ. Tuy nhiên phương pháp này tạo ra tác dụng không mong muốn là làm giảm độ nét của ảnh.

a. Lọc không gian tuyến tính

Lọc không gian tuyến tính là quá trình lọc mà các phép toán thực hiện trên các pixel của các vùng lân cận là tuyến tính.

Với lọc tuyến tính, đáp ứng được đưa ra bởi phép cộng các hệ số của bộ lọc nhân với pixel ảnh tương ứng trong vùng được quét bởi mặt nạ.

Ví dụ cho lọc tuyến tính với mặt nạ 3x3, đáp ứng R tại điểm (x,y):

R = w(- 1, - 1) f(x - 1, y - 1) + w(- 1, 0) f(x - 1, y) +…+ w(0, 0) f(x, y) + ... + w(1, 0) f(x + 1, y) + w(1, 1) f(x + 1, y + 1) (1.15)

b. Lọc không gian phi tuyến

Đối với lọc phi tuyến thì giá trị của đáp ứng R không đơn thuần là tổng của các tích của hệ số bộ lọc với các giá trị pixel tương ứng, mà nó còn phụ thuộc vào bản thân giá trị của các pixel.

Lọc thống kê thứ tự là lọc phi tuyến trong đó đáp ứng R của bộ lọc được tạo ra dựa trên thứ tự của các pixel trong vùng được quét bởi mặt nạ.

Điển hình cho loại này là lọc trung vị. Giống như tên gọi của nó, trong phép lọc trung vị, giá trị mức xám của pixel sẽ được thay thế bởi mức xám trung bình của các pixel lân cận nó. Phương pháp này được sử dụng khá phổ biến để giảm nhiễu, đặc biệt là loại nhiễu xung (impulse noise hay còn gọi là saft-and-pepper noise).

c. Lọc trung bình

Do có nhiều loại nhiễu can thiệp vào quá trình xử lí ảnh nên cần có nhiều bộ lọc thích hợp. Trường hợp tổng quát có thể dùng phương pháp lọc trung bình với các bộ lọc có kích thước khác nhau, mỗi điểm ảnh được thay thế bằng trung bình trọng số của các điểm lân cận và được định nghĩa như sau:

Page 19: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 1: Nâng cao chất lượng ảnh

Nguyễn Phương Hiền – D04VT2 9

v(m, n) = ∑∑ −−Welk

lnkmylka ),(),(),(

(1.16) [7]

Nếu trong kỹ thuật lọc trên, ta dùng các trọng số như nhau, phương trình trên sẽ trở thành:

v(m, n) = N1 ∑∑ −−

Welklnkmy ),(

),( (1.17) [7]

với y(m, n) là ảnh đầu vào, v(m, n) là ảnh đầu ra và a(k, l) là cửa sổ lọc, ak,l = 1/Nw và Nw là số điểm ảnh trong cửa sổ lọc W.

d. Lọc thông thấp miền tần số

Về cơ bản, ý tưởng lọc trong miền tần số là lựa chọn một hàm truyền đạt để nhân với F(u, v), tạo ra một ảnh mới. Ví dụ, ta có một hàm truyền đạt mà khi nhân hàm này với một F(u, v) trung tâm sẽ làm suy giảm các thành phần cao tần của F(u, v), trong khi đó việc loại bỏ các tần số thấp gần như không thay đổi.

1.2.5.2 Lọc sắc nét ảnh

Mục đích của lọc làm sắc nét ảnh là làm nổi bật các chi tiết nhỏ hoặc chi tiết bị mờ, có thể do nhiễu hoặc do quá trình thu nhận ảnh. Các kĩ thuật lọc làm sắc nét đều là lọc miền tần số.

a. Lọc thông cao

Lọc thông thấp làm mờ một ảnh, ngược lại, lọc thông cao lọc sắc nét ảnh nhờ làm suy giảm các thành phần tần thấp và loại bỏ gần hết các thành phần cao tần của biến đổi Fourier.

Lọc thông cao cơ bản

Cho hàm truyền đạt Hlp(u, v) của 1 bộ lọc thông thấp, ta thu được hàm truyền đạt của bộ lọc thông cao tương ứng nhờ sử dụng:

Hhp(u,v) = 1 – Hlp(u,v) (1.18) [2]

Lọc emphasis cao tần

Các bộ lọc thông cao như trên sẽ làm giảm giá trị trung bình của ảnh tới 0. Như ta đã thấy ở trên, ảnh lọc nét hơn nhưng lại tối hơn nhiều so với ảnh gốc. Một phương pháp giải quyết vấn đề này là chèn thêm vào một offset để lọc thông cao. Khi offset

Page 20: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 1: Nâng cao chất lượng ảnh

Nguyễn Phương Hiền – D04VT2 10

kết hợp với việc nhân bộ lọc với một số lớn hơn 1 thì phương pháp này được gọi là lọc emphasis cao tần bởi vì phép nhân làm nổi rõ các tần số cao.

Emphasis cao tần có hàm truyền đạt:

Hhfe(u,v) = a + bHhp(u,v) (1.19) [2]

trong đó a là offset, b là số nhân và Hhp(u, v) là hàm truyền đạt của bộ lọc thông cao. Để có kết quả lọc cao hơn, sau khi lọc emphasis cao tần ta nên sử dụng phương pháp cân bằng biểu đồ.

b. Lọc tần số từ không gian

Thông thường, lọc trong miền không gian có hiệu suất tính toán cao hơn lọc miền tần số khi các bộ lọc nhỏ. Định nghĩa nhỏ khá phức tạp, nó phụ thuộc vào các hệ số lọc, kích thước của bộ đệm, các dữ liệu phức hợp được xử lí như thế nào. Tuy nhiên, khi đem ra so sánh, ta thấy bộ lọc sử dụng thuật toán FFT có thể nhanh hơn là một bộ lọc trong miền không gian. Do đó, người ta nhận thấy nên chuyển lọc không gian thành kĩ thuật lọc miền tần số tương đương chứa ưu điểm của cả hai phương pháp này.

1.2.5 Các kĩ thuật làm nổi đường biên ảnh

Làm nổi biên ảnh là vấn đề quan trọng trong phân tích ảnh. Trước hết, ta cần tìm hiểu về khái niệm biên ảnh. Một điểm ảnh được coi là nằm trên đường biên nếu tại vị trí điểm ảnh đó có sự thay đổi đột ngột của mức xám. Như vậy, đường biên là đường nối các điểm ảnh nằm trong khu vực ảnh có thay đổi đột ngột về độ chói, đường biên thường ngăn cách hai vùng ảnh có các mức xám gần như không đổi.

Hình 1.8 Đường biên của ảnh

Trong trường hợp lí tưởng, độ chói giữa hai vùng ảnh thay đổi đột ngột hoặc tăng dần đều. Tuy nhiên trên thực tế, mức xám giữa các vùng ảnh thay đổi tương đối ngẫu nhiên. Chính vì vậy quá trình phát hiện đường biên thường không đơn giản và kết quả thường không hoàn toàn chính xác.

Page 21: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 1: Nâng cao chất lượng ảnh

Nguyễn Phương Hiền – D04VT2 11

1.3 Kết luận chương 1

Kết thúc chương 1, một số kĩ thuật nâng cao chất lượng ảnh như biến đổi ảnh xám (biến đổi âm bản, biến đổi hàm log, hàm mũ), lọc nhiễu (lọc thông thấp, thông cao, lọc phi tuyến, tuyến tính, lọc trung vị,…), làm nổi biên ảnh đã được đề cập đến. Trên thực tế, nâng cao chất lượng ảnh còn rất nhiều vấn đề đáng chú ý khác như các kĩ thuật làm trơn ảnh, tách nhiễu, khử nhiễu, làm trơn biên, khuếch đại ảnh, lọc đồng hình, lọc ngoài, lọc giả trung vị...

Page 22: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 12

CHƯƠNG 2

CÁC KĨ THUẬT NÉN ẢNH

Cùng với sự phát triển mạnh mẽ của máy tính và sự ra đời của Internet thì việc tìm một phương pháp nén ảnh để giảm bớt không gian lưu trữ thông tin và truyền thông tin trên mạng nhanh chóng đang là một yêu cầu cấp thiết. Trong những năm gần đây, có rất nhiều các phương pháp đã và đang được nghiên cứu rộng rãi để thực hiện nén ảnh. Tất cả đều với một mục đích chung là làm thế nào để biểu diễn một ảnh với ít bit nhất để có thể tối thiểu hoá dung lượng kênh truyền và không gian lưu trữ trong khi vẫn giữ được tính trung thực của ảnh. Điều này tương đương với việc biểu diễn ảnh có độ tin cậy cao nhất với tốc độ bit nhỏ nhất.

2.1 Tổng quan về nén ảnh

2.1.1 Giới thiệu chung về nén ảnh số

Thông thường, ảnh đen trắng chưa nén được biểu diễn bằng 8 bit/pixel và ảnh màu là 24 bit/pixel. Các kỹ thuật nén hiện nay cho phép dung lượng ảnh được nén giảm 30 đến 50 lần so với ảnh gốc mà ảnh vẫn giữ được độ trung thực cao. Độ trung thực của ảnh được đánh giá dựa trên tiêu chí như lỗi trung bình quân phương (MSE) hoặc tỷ số tín hiệu trên nhiễu (SNR) giữa ảnh gốc và ảnh nén.

Những phương pháp thường (như Compress trong hệ UNIX) không đem lại hiệu quả: tỷ lệ nén dữ liệu cho hình ảnh không quá 2:1. Nhưng với những phương pháp chuyên dụng có thể đạt tới 30:1. Hai phương pháp nén hình ảnh nổi tiếng nhất hiện nay là của nhóm chuyên gia về hình ảnh động (Motion Picture Experts Group - MPEG) và liên hiệp các nhóm chuyên gia về hình ảnh (Joint Photo Graphic Experts Group - JPEG). Những phương pháp này đã trở thành chuẩn công nghiệp. Những nhược điểm cơ bản của các phương pháp này là sự mất mát thông tin và hiệu quả nén không cao đối với những hình ảnh phức tạp.

Tất cả các phương pháp nén ảnh đều dựa trên một nguyên lý đơn giản: trong dữ liệu có nhiều phần tử thừa và nén ảnh dựa trên cơ sở tìm ra những phần tử đó và loại bỏ chúng.

Page 23: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 13

Các phương pháp thông dụng hiện nay như biến đổi cosin rời rạc, nén ảnh Wavelet (WIC) phải dùng đến biến đổi toán học và xấp xỉ các mối tương quan giữa các pixel. Với các phương pháp này ta có thể nén ảnh tới tỷ lệ 20:1 – 30:1. Nhưng những ảnh này (vì bị mất thông tin) chỉ là những ảnh gần đúng với ảnh ban đầu, ngoài ra còn có thể xuất hiện biến dạng hình ảnh.

2.1.2 Sơ đồ khối hệ thống nén ảnh điển hình

Hình 2.1 Sơ đồ khối một hệ thống nén ảnh điển hình

- Khối biến đổi: Thường dùng phép biến đổi cosin rời rạc để tập trung năng lượng tín hiệu vào một số lượng nhỏ các hệ số khai triển để thực hiện phép nén hiệu quả hơn là dùng tín hiệu nguyên thủy.

- Khối lượng tử: Tạo ra một lượng kí hiệu giới hạn cho ảnh nén với hai kĩ thuật: lượng tử vô hướng (thực hiện lượng tử hóa cho từng phần dữ liệu) và lượng tử vector (thực hiện lượng tử hóa một lần một khối dữ liệu). Quá trình này không thuận nghịch.

- Khối mã hóa: Gán một từ mã, một dòng bit nhị phân cho mỗi kí hiệu, số nguyên gần nhất.

2.1.3 Phân loại các kỹ thuật nén

Có nhiều cách phân loại các phương pháp nén khác nhau. Cách thứ nhất dựa vào nguyên lý nén. Cách này phân các phương pháp nén thành hai họ lớn:

- Nén ảnh không mất thông tin (nén không tổn hao): Với phương pháp này sau khi giải nén ta khôi phục được chính xác ảnh gốc. Các phương pháp nén này bao gồm mã hoá Huffman, mã hoá thuật toán…

- Nén ảnh có mất thông tin (nén có tổn hao): Ảnh giải nén có một sự sai khác nhỏ so với ảnh gốc. Các phương pháp này bao gồm:

Ø Lượng tử hoá vô hướng: PCM và DPCM.

Ø Lượng tử hoá vector.

Ø Mã hoá biến đổi: biến đổi cosin rời rạc (DCT), biến đổi Fourier nhanh (FFT).

Page 24: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 14

Ø Mã hoá băng con.

Ngoải ra, ta có thể phân loại dựa vào cách thức thực hiện nén. Theo cách này, người ta cũng phân thành hai họ: Phương pháp nén dữ liệu không gian và phương pháp sử dụng mã hóa biến đổi. Hoặc cũng có thể phân loại dựa vào lý thuyết mã hóa. Cách này cũng phân các phương pháp nén thành hai họ: Các phương pháp nén thế hệ thứ nhất (gồm các phương pháp mà mức độ tính toán là đơn giản, thí dụ việc lấy mẫu, gán từ mã,...) và các phương pháp nén thế hệ thứ hai (dựa vào độ bão hòa của tỷ lệ nén).

2.1.4 Các nguyên tắc khi nén ảnh

Một tính chất chung nhất của tất cả các ảnh số đó là tương quan giữa các pixel ở cạnh nhau lớn, điều này dẫn đến dư thừa thông tin để biểu diễn ảnh. Dư thừa thông tin sẽ làm cho việc mã hoá không tối ưu. Do đó công việc cần làm để nén ảnh là phải tìm được các biểu diễn ảnh với tương quan nhỏ nhất để giảm thiểu độ dư thừa thông tin của ảnh. Thực tế, có hai kiểu dư thừa thông tin được phân loại như sau:

- Dư thừa trong miền không gian: tương quan giữa các giá trị pixel của ảnh, điều này có nghĩa rằng các pixel lân cận của ảnh có giá trị gần giống nhau (trừ những pixel ở giáp đường biên ảnh).

- Dư thừa trong miền tần số: Tương quan giữa các mặt phẳng màu hoặc dải phổ khác nhau.

Trọng tâm của các nghiên cứu về nén ảnh là tìm cách giảm số bit cần để biểu diễn ảnh bằng việc loại bỏ dư thừa trong miền không gian và miền tần số càng nhiều càng tốt.

2.1.5 Dư thừa số liệu

Nén số liệu là quá trình giảm lượng số liệu cần thiết để biểu diễn cùng một lượng thông tin cho trước. Cần phải phân biệt giữa số liệu và thông tin. Thực tế, số liệu và thông tin không đồng nghĩa với nhau. Số liệu (tín hiệu) chỉ là phương tiện dùng để truyền tải thông tin. Cùng một lượng thông tin cho trước có thể biểu diễn bằng các lượng số liệu khác nhau.

Trong nén ảnh số, có ba loại dư thừa số liệu có thể được nhận dạng và phân biệt.

Page 25: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 15

2.1.5.1 Dư thừa mã (Coding Redundancy)

Nếu các mức của tín hiệu video được mã hóa bằng các symbol nhiều hơn cần thiết (tuyệt đối) thì kết quả là có độ dư thừa mã. Để giảm độ dư thừa mã, trong nén ảnh thường sử dụng các mã VLC như mã Huffman, mã RLC... Lượng thông tin về hình ảnh có xác suất thấp hơn.

Nguyên lý cơ bản của việc nén ảnh này là các từ mã có độ dài biến đổi, cho phép gán các từ mã ngắn nhất cho các mức xám có tần suất xuất hiện nhiều nhất trong ảnh. Câu hỏi được đặt ra là: Cần bao nhiêu bit để thay thế cho các mức xám trong một ảnh. Đó là, liệu có tồn tại dữ liệu nhỏ đủ để mã hóa đầy đủ một ảnh mà không gây ra tổn thất?

Ý tưởng này là khởi đầu cho việc thông tin có thể được xử lí giống như cách xử lí xác suất. Với giả định này, một sự kiện ngẫu nhiên E với xác suất P(E) có chứa lượng thông tin:

I(E) = log)(

1EP

= – log P(E) (2.1) [2]

Nếu P(E) = 1 (sự kiện luôn luôn đúng) thì I(E) = 0 và không có thông tin nào trong nó. Vì không có sự không chắc chắn nào liên quan tới sự kiện nên sẽ không có thông tin được truyền tải thông báo rằng sự kiện đó đã xảy ra. Cho một tập hợp các sự kiện ngẫu nhiên gốc rời rạc {a1, a2, …, aj} có xác suất tương ứng là {P(a1), P(a2), …, P(aj)}, lượng thông tin trung bình trên mỗi đầu ra (hay còn gọi là entropy) là:

H = – ∑=

J

jjj aPaP

1)(log)( (2.2) [2]

Nếu một ảnh nhận được là một mẫu “nguồn mức xám”, chúng ta có thể mô hình hóa các xác suất kí hiệu của nguồn bằng cách sử dụng một ma trận mức xám của ảnh này và tính toán giá trị xấp xỉ (gọi là xấp xỉ thứ tự ưu tiên: first-order estimate) của entropy gốc:

~H = – ∑

=

L

kkrkr rPrP

1)(log)( (2.3) [2]

Giá trị xấp xỉ được tính toán bởi hàm entropy (với giả thiết mỗi mức xám được mã hóa độc lập) có biên thấp hơn nhờ việc loại bỏ dư thừa mã.

Page 26: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 16

2.1.5.2 Dư thừa trong pixel ( Interpixel Redudancy)

Vì giá trị của một pixel bất kì nào đó cũng có thể được dự báo từ giá trị của các lân cận của nó, nên thông tin từ các pixel riêng là tương đối nhỏ. Sự tham gia của một pixel riêng vào một ảnh là dư thừa. Nhiều tên (bao gồm: dư thừa không gian, dư thừa hình học, dư thừa trong ảnh) được đặt ra để phân biệt sự phụ thuộc này của các pixel. Ta dùng độ dư thừa trong pixel để chỉ tất cả các tên trên. Để giảm độ dư thừa trong pixel của một ảnh, dãy pixel hai chiều dùng cho việc nhìn và nội suy, phải được biến đổi thành một dạng có hiệu quả hơn.

Người ta đưa ra một phương pháp gọi là mã hóa dự đoán không tổn thất để loại bỏ các dư thừa trong pixel của các pixel kề nhau bằng cách chỉ đưa ra và mã hóa thông tin mới trong mỗi pixel. “Thông tin mới” của 1 pixel là sự khác biệt giữa giá trị thực tế và giá trị dự đoán của pixel đó.

Hình 2.2 Mô hình mã hóa dự đoán không tổn thất bao gồm bộ mã hóa và bộ giải mã

2.1.5.3 Dư thừa tâm sinh lý (Psychovisual Redudancy)

Bằng trực quan ta thấy, sự thu nhận cường độ ánh sáng thay đổi chỉ giới hạn trong một phạm vi nhất định. Hiện tượng này xuất phát từ sự thật là mắt không đáp ứng với cùng độ nhạy của tất cả các thông tin nhìn thấy. Thông tin đơn giản có tầm quan trọng ít hơn thông tin khác trong vùng nhìn thấy. Thông tin này được gọi là độ dư thừa tâm sinh lý. Nó có thể được loại bỏ mà không ảnh hưởng đáng kể đến chất lượng

Page 27: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 17

thu nhận ảnh. Khác với độ dư thừa mã và dư thừa trong pixel, độ dư thừa tâm sinh lý có liên quan đến thông tin theo định lượng. Quá trình loại bỏ nó là đáng kể bởi vì thông tin của nó không cần thiết cho quá trình xử lí thị giác chuẩn. Dư thừa tâm sinh lí có quan hệ tới việc lượng tử hóa. Điều đó có nghĩa là ánh xạ một khoảng rộng các giá trị đầu vào lên một số hữu hạn các giá trị đầu ra. Khi nó là toán tử không đảo ngược (mất thông tin) cho kết quả nén số liệu có tổn hao.

2.1.6 Giới thiệu một số kỹ thuật sử dụng trong nén ảnh

2.1.6.1 Mã hoá dựa trên phép biến đổi DCT

Nguyên tắc chính của phương pháp mã hoá này là biến đổi tập các giá trị pixel của ảnh trong miền không gian sang một tập các giá trị khác trong miền tần số sao cho các hệ số trong tập giá trị mới này có tương quan giữa các điểm ảnh gần nhau nhỏ hơn.

Hình 2.3 Sơ đồ mã hóa và giải mã dùng biến đổi DCT [4]

a. Biến đổi DCT thuận và nghịch

Vì ảnh gốc có kích thước rất lớn cho nên trước khi đưa vào biến đổi DCT, ảnh được phân chia thành các khối vuông, mỗi khối này thường có kích thước 8 x 8 pixel và biểu diễn các mức xám của 64 điểm ảnh, các mức xám này là các số nguyên dương có giá trị từ 0 đến 255. Việc phân khối này sẽ làm giảm được một phần thời gian tính toán các hệ số chung, mặt khác biến đổi cosin đối với các khối nhỏ sẽ làm tăng độ chính xác khi tính toán với dấu phẩy tĩnh, giảm thiểu sai số do làm tròn sinh ra.

Biến đổi DCT là một công đoạn chính trong các phương pháp nén sử dụng biến đổi. Hai công thức ở đây minh hoạ cho 2 phép biến đổi DCT thuận nghịch đối với mỗi

Page 28: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 18

khối ảnh có kích thước 8 x 8. Giá trị x(n1, n2) biểu diễn các mức xám của ảnh trong miền không gian, X(k1, k2) là các hệ số sau biến đổi DCT trong miền tần số.

(2.4) [4]

(2.5) [4]

với và

Mỗi khối 64 điểm ảnh sau biến đổi DCT thuận sẽ nhận được 64 hệ số thực DCT (hình 2.4). Mỗi hệ số này có chứa một trong 64 thành phần tần số không gian hai chiều. Hệ số với tần số bằng không theo cả hai hướng (tương ứng với k1 và k2 bằng 0) được gọi là hệ số một chiều DC, hệ số này chính là giá trị trung bình của 64 điểm ảnh trong khối. 63 hệ số còn lại gọi là các hệ số xoay chiều AC. Hệ số một chiều DC tập trung phần lớn năng lượng của ảnh.

Hình 2.4 Các bước của quá trình mã hóa biến đổi DCT đối với 1 khối [4]

Page 29: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 19

Chú ý rằng bản thân biến đổi DCT không làm mất thông tin vì DCT là một biến đổi tuyến tính chuyển các giá trị của điểm ảnh từ miền không gian thành các hệ số trong miền tần số. Nếu biến đổi DCT thuận và nghịch được tính toán với độ chính xác tuyệt đối và nếu các hệ số DCT không phải qua bước lượng tử và mã hoá thì ảnh thu được sau biến đổi DCT ngược sẽ giống hệt ảnh gốc.

b. Lượng tử và giải lượng tử

Sau khi thực hiện biến đối DCT, 64 hệ số sẽ được lượng tử hoá dựa trên một bảng lượng tử gồm 64 phần tử Q(u,v) với 0 ≤ u, v ≤ 7. Bảng này được định nghĩa bởi từng ứng dụng cụ thể. Các phần tử trong bảng lượng tử có giá trị từ 1 đến 255 được gọi là các bước nhảy cho các hệ số DCT. Quá trình lượng tử được coi như là việc chia các hệ số DCT cho bước nhảy lượng tử tương ứng, kết quả này sau đó sẽ được làm tròn xuống số nguyên gần nhất. Công thức (2.6) thể hiện việc lượng tử với F(u,v) là các hệ số DCT, FQ(u,v) là các hệ số sau lượng tử, các hệ số này sẽ được đưa vào bộ mã hoá entropy.

FQ (u,v) = IntergerRound

),(),(

vuQvuF (2.6) [4]

Mục đích của việc lượng tử hoá là giảm số lượng bit cần để lưu trữ các hệ số biến đổi bằng việc giảm độ chính xác của các hệ số này cho nên lượng tử là quá trình xử lí có mất thông tin.

Quá trình giải lượng tử ở phía bộ giải mã được thực hiên ngược lại. Các hệ số sau bộ giải mã entropy sẽ nhân với các bước nhảy trong bảng lượng tử (bảng lượng tử được đặt trong phần mào đầu của ảnh JPEG). Kết quả này sau đó sẽ được đưa vào biến đổi DCT ngược.

c. Mã hóa và giải mã

Mã hoá là bước cuối cùng trong hệ thống nén ảnh dựa trên biến đổi DCT. Chuẩn nén ảnh JPEG hiện nay dùng phương pháp mã hoá Huffman, đây là phép mã hoá không làm mất thông tin. Phương pháp này dựa trên mô hình thống kê. Dựa vào dữ liệu gốc, người ta tính tần suất xuất hiện các hệ số. Việc tính tần suất được thực hiện bằng cách duyệt tuần tự từ đầu khối đến cuối khối, sau đó, những hệ số có tần suất cao được gắn cho một từ mã ngắn, các hệ số có tần suất thấp được gán một từ mã dài. Với cách thức này chiều dài trung bình của từ mã đã giảm xuống.

Page 30: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 20

Các hệ số thu được sau khi lượng tử hoá sẽ được sắp xếp thành một chuỗi các ký hiệu theo kiểu “zig-zag” (theo đường zig-zag trong hình 2.4) để đặt các hệ số có tần số thấp lên trước các hệ số tần số cao. Các hệ số này sẽ được mã hoá dựa trên bảng mã Huffman sao cho chiều dài trung bình của từ mã là nhỏ nhất. Bảng mã này cũng sẽ được đặt trong phần mào đầu của ảnh để thực hiện giải nén ảnh.

2.1.6.2 Kỹ thuật mã hoá băng con

a. Ý tưởng mã hoá băng con

Mặc dù với tất cả các ưu điểm của nén ảnh JPEG dựa trên biến đổi DCT như: tính toán đơn giản, chất lượng tốt và dễ dàng thực hiện về mặt phần cứng. Nhưng phương pháp này cũng không hẳn là không có nhược điểm. Vì ảnh đầu vào được phân chia thành nhiều khối độc lập, các khối này được thực hiện biến đổi DCT riêng cho nên vẫn có tương quan ở dọc đường biên của các khối. Điều này sẽ gây ra lỗi khối khi thực hiện mã hoá với tốc độ bit thấp. Trong một ảnh số, các thành phần tần số cao chủ yếu tập trung ở vùng biên của ảnh, đấy là nơi mà các giá trị mức xám của các điểm ảnh có độ chênh lệch lớn. Mà trong đa số các ảnh, các chi tiết của ảnh thường thay đổi chậm tức là chênh lệch mức xám giữa các điểm ảnh gần nhau nhỏ. Như vậy có thể kết luận rằng phổ tần của ảnh tập trung chủ yếu ở miền tần số thấp. Trong các phương pháp nén ảnh trước đây, việc mã hoá thực hiện trong toàn dải tần của ảnh, như vậy sẽ gây dư thừa thông tin khi mã hoá trong miền tần số cao vì ở tần số cao không có nhiều thông tin của ảnh. Vì vậy, cần thiết phải đưa ra một phương pháp mới tối ưu hơn.

Ý tưởng của phương pháp mã hoá băng con là chia dải tần số của ảnh thành nhiều dải tần con và mã hoá ở mỗi dải tần một số lượng bit khác nhau. Ví dụ, ở dải tần số cao số bit mã hoá sẽ không cần nhiều bằng ở miền tần số thấp. Với phương pháp này hiệu quả nén sẽ tăng lên và nhiều khối cũng không xuất hiện nữa do không phải phân chia ảnh thành các khối để xử lí.

b. Mã hoá băng con

Nguyên tắc cơ bản trong quá trình mã hoá ảnh băng con là phân chia ảnh thành nhiều dải tần số thông qua các bộ lọc thông thấp, thông dải và thông cao. Các dải tần này gọi là các băng con. Sau đó, các băng con này sẽ được lượng tử và mã hoá độc lập nhau, tuỳ thuộc vào tính chất thống kê và mật độ năng lượng của từng dải mà số bit mã hoá khác nhau.

Page 31: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 21

Hình 2.5 a) Băng lọc phân tích; b) Hai bộ lọc thông thấp và thông cao c) Phần vùng trong miền tần số; d) Băng lọc tổng hợp

Minh họa trên hình 2.5 (a). Gọi L và H tương ứng là các bộ lọc thông thấp và thông cao một chiều. Tần số 2 chiều của ảnh được tách ra từng chiều theo trục w1 và w2. Hình 2.5 (c) mô tả băng lọc được phân thành 4 vùng tần số LL, LH, HL và HH. Vùng trung tâm (LL) là vùng có tần số thấp theo cả hai hướng. Bốn góc (HH) là vùng có các thành phần tần số cao theo cả hai hướng. Bốn vùng bên cạnh (HL, LH) là các vùng có tần số thấp và tần số cao, mỗi thành phần đi theo một hướng. Chú ý đến các hệ số 2 trong hình vẽ 2.5 (a), đó là thành phần giảm mẫu, nó có nhiệm vụ kéo dãn băng tần của từng băng con để bằng với băng tần của ảnh gốc nhưng với tốc độ lấy mẫu thấp hơn.

Các vùng tần số gọi là các băng con sẽ được lượng tử hoá và mã hoá giống như với biến đổi DCT. Sau khi lượng tử, mã hoá, lưu trữ, truyền và giải mã ảnh, mỗi băng con sẽ được tăng mẫu với hệ số 2 (hình 2.5 (d)) và thông qua các bộ lọc để loại bỏ các

Page 32: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 22

thành phần chồng phổ (alias) của tín hiệu sinh ra do các bộ tăng mẫu. Tất cả các băng này sau đó được cộng lại để khôi phục lại ảnh ban đầu.

Trong thực tế, rất nhiều lỗi được tạo ra trong quá trình nén và truyền ảnh: lỗi do lượng tử hoá, do mã hoá, lỗi kênh truyền… bên cạnh đó, bản thân băng lọc còn gây ra lỗi do phía thu không khôi phục lại được chính xác tín hiệu phát. Do đó, nếu không quan tâm đến sự có mặt của các bộ mã hoá và kênh truyền thì trước tiên băng lọc phải có tính khôi phục hoàn hảo tức là tín hiệu ra phải là một bản trễ nguyên gốc của tín hiệu đầu vào. Điều này phụ thuộc vào việc thiết kế các bộ lọc trong băng lọc. Có rất nhiều các nghiên cứu để tìm ra các băng lọc thoả mãn tính khôi phục hoàn hảo. Một trong những dạng như vậy là băng lọc gương cầu phương QMF (Quadrature Mirror Filter) với bộ lọc thông cao (H) là ảnh gương của bộ lọc thông thấp (L) qua trục П/2 (hình 2.5 (b)).

2.1.6.3 Biến đổi Wavelet trong nén ảnh

Biến đổi Wavelet

Wavelet là phép biến đổi được sử dụng để phân tích các tín hiệu không ổn định (non-stationary) – là những tín hiệu có đáp ứng tần số thay đổi theo thời gian.

Biến đổi Wavelet được thực hiện theo cách: tín hiệu được nhân với hàm Wavelet rồi thực hiện biến đổi riêng rẽ cho các khoảng tín hiệu khác nhau trong miền thời gian tại các tần số khác nhau. Cách tiếp cận như vậy còn được gọi là: phân tích đa phân giải – MRA (Multi Resolution Analysis): phân tích tín hiệu ở các tần số khác nhau và cho các độ phân giải khác nhau. MRA khi phân tích tín hiệu cho phép: phân giải thời gian tốt và phân giải tần số kém ở các tần số cao; phân giải tần số tốt và phân giải thời gian kém ở các tần số thấp. Như vậy kỹ thuật này rất thích hợp với những tín hiệu: có các thành phần tần số cao xuất hiện trong khoảng thời gian ngắn, các thành phần tần số thấp xuất hiện trong khoảng thời gian dài chẳng hạn như ảnh và khung ảnh video.

Biến đổi Wavelet rời rạc (DWT)

Có thể hiểu phép biến đổi DWT như là áp dụng một tập các bộ lọc: thông cao và thông thấp. Thiết kế các bộ lọc này tương đương như kỹ thuật mã hoá băng con (subband coding) nghĩa là: chỉ cần thiết kế các bộ lọc thông thấp, còn các bộ lọc thông cao chính là các bộ lọc thông thấp dịch pha đi một góc 1800. Tuy nhiên khác với mã hoá băng con, các bộ lọc trong DWT được thiết kế phải có đáp ứng phổ phẳng, trơn và trực giao.

Page 33: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 23

Các thủ tục nén gồm ba bước: − Phân tích − Các hệ số chi tiết theo ngưỡng: Đối với mỗi mức phân tích từ 1 đến N đều

sử dụng một ngưỡng cho các hệ số chi tiết. − Khôi phục.

Nén ảnh có hai phương pháp thực hiện. Thứ nhất là giãn rộng Wavelet theo tín hiệu và lưu giữ chúng bởi một số lượng rất lớn các hệ số nguyên bản. Trường hợp này ta có thể thiết lập ngưỡng toàn cục và tất cả các mức phân tích đều sử dụng ngưỡng này để thiết lập cho việc phân tích. Phương pháp thứ hai là cho phép thiết lập ngưỡng tự động có thể thay đổi giá trị tùy thuộc vào các mức.

a. Biến đổi Wavelet 1-D

Phân tích Wavelet 1-D

Bước phân tích: Tín hiệu được cho đi qua các bộ lọc thông cao và thông thấp rồi được lấy mẫu xuống (down sampling) hệ số 2 tạo thành biến đổi DWT mức 1.

Hình 2.6 minh họa quá trình phân tích Wavelet 1 chiều.

Hình 2.6 Sơ đồ khối phân tích tín hiệu mức j

Biến đổi ngược Wavelet 1-D

Thực hiện biến đổi ngược, bắt đầu từ cAj và cDj, IDWT khôi phục cAj-1, đảo ngược các bước phân chia bằng việc chèn vào các giá trị 0 và kết hợp các kết quả với các bộ lọc khôi phục.

Page 34: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 24

Các bước khôi phục: Lấy mẫu lên (up sampling) hệ số 2 rồi sử dụng các bộ lọc khôi phục thông thấp và thông cao.

Hình 2.7 minh họa quá trình biến đổi ngược Wavelet 1 chiều.

Hình 2.7 Sơ đồ biến đổi ngược Wavelet mức j

Đối với hình ảnh, áp dụng giải thuật tương tự đối với các Wavelet hai chiều và các hàm tỷ lệ nhận được từ các Wavelet một chiều bởi kết quả cắt xén.

DWT hai chiều điển hình cho ta sự phân chia của các hệ số xấp xỉ tại mức j thành bốn thành phần, bao gồm: xấp xỉ tại mức j + 1 và các chi tiết trong ba hướng (ngang, thẳng đứng, và đường chéo).

b. Biến đổi Wavelet rời rạc 2-D

Phân tích Wavelet rời rạc 2-D

Bước phân tích:

Ta sử dụng các bộ lọc riêng biệt, thực hiện biến đổi DWT một chiều dữ liệu vào (ảnh) theo hàng, lấy mẫu xuống, giữ lại các cột có chỉ số chẵn. Rồi ta tiếp tục thực hiện biến đổi DWT một chiều dữ liệu vừa thu được theo cột, lấy mẫu xuống, giữ lại các hàng có chỉ số chẵn. Theo cách này nếu thực hiện biến đổi DWT ở mức 1, sẽ tạo ra 4 nhóm hệ số biến đổi. Quá trình biến đổi DWT hai chiều có thể minh hoạ như hình 2.8.

Page 35: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 25

Hình 2.8 Sơ đồ phân tích Wavelet rời rạc 2-D

b. Biến đổi ngược Wavelet 2-D

Hình 2.9 Sơ đồ biến đổi ngược Wavelet rời rạc 2-D

Hình 2.9 minh họa quá trình biến đổi ngược Wavelet rời rạc 2 chiều.

Page 36: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 26

Trong trường hợp này, các bộ lọc cho phân chia và khôi phục nói chung có các độ dài lẻ khác nhau. Bằng việc chèn các chữ số không, bốn bộ lọc có thể mở rộng theo cách để ta có được cùng độ dài chẵn.

2.1.7 Các tiêu chuẩn nén ảnh

Các tiêu chuẩn quan trọng bao gồm:

- JPEG (Joint Photographic Experts Group: Liên hiệp các nhóm chuyên gia về hình ảnh): dùng cho nén ảnh tĩnh, phát triển bởi sự kết hợp giữa ITU-TS và ISO. JPEG là định dạng nén ảnh có tổn thất và được ứng dụng trong nhiều lĩnh vực như lưu trữ ảnh, Fax màu, truyền ảnh báo chí, ảnh cho y học, camera số... Kĩ thuật này có thể đạt được hệ số nén hơn 80 lần so với ảnh gốc.

- JPEG2000: dùng cho nén ảnh tĩnh, là định dạng nén ảnh có tổn thất, có thể nén nhỏ từ 100-200 lần mà hình ảnh không sai sót bao nhiêu so với hình ảnh gốc, được ứng dụng vào các hệ xử lí và phân phối.

- MPEG-1, MPEG-2, MPEG-4, MPEG-7: dùng cho nén ảnh động, do Ủy ban ISO IEC/JTC1/SC29 – /WG11 phát triển cho mã hóa kết hợp giữa video và audio. MPEG-1 dùng cho nén ảnh động có kích thước 320x240 và tốc độ bit 1-1,5 Mbit/s đối với ghi hình trên băng từ và đĩa quang (CD), 250 Kbps đối với mã hóa audio stereo. MPEG-2 được sử dụng cho các ứng dụng cao hơn với tốc độ ≤ 10 Mbit/s cho viễn thông, truyền thông thông thường và truyền hình có độ phân giải cao (HDTV). MPEG-4 mã hóa video/audio với tốc độ thấp (khoảng 9-14 Kbps). MPEG-7 là chuẩn mô tả thông tin của rât nhiều loại đa phương tiện.

- H.261: do Nhóm nghiên cứu XI phát triển và được biết rộng rãi như tiêu chuẩn mã hóa video cho các dịch vụ nghe nhìn tốc độ n x 64Kbps.

- ITU-TS H.263 cho các ứng dụng điện thoại thấy hình với tốc độ dưới 64Kbps.

2.2. Giới thiệu JPEG và JPEG2000

2.2.1 JPEG

2.2.1.1 Giới thiệu sơ lược

JPEG (Joint Photographic Experts Group) là tên một tổ chức nghiên cứu về các chuẩn nén ảnh (trước đây là ISO) được thành lập vào năm 1982. Năm 1986, JPEG chính thức được thiết lập nhờ sự kết hợp giữa nhóm ISO/IEC và ITU. Đến năm 1994,

Page 37: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 27

JPEG được khẳng định với tiêu chuẩn ISO 10918-1. JPEG là định dạng nén ảnh có tổn thất. Tiêu chuẩn này có có thể được ứng dụng trong nhiều lĩnh vực: lưu trữ ảnh, Fax màu, truyền ảnh báo chí, ảnh cho y học, camera số... Nó còn có các định dạng mở rộng khác như .jpg, .jpeg, .jpe, .jfif và .jif. Kỹ thuật này có thể đạt được hệ số nén hơn tám mươi lần so với ảnh gốc. Tuy nhiên, hệ số nén càng cao thì hình ảnh sau khi giải nén sẽ càng bị sai lệch nhiều hơn, nó chỉ gần giống như ban đầu chứ không đạt hoàn toàn như hình ảnh gốc.

Tiêu chuẩn JPEG được định ra cho nén ảnh tĩnh đơn sắc và màu. Tuy nhiên nó cũng được sử dụng cho nhiều ứng dụng với ảnh động bởi vì nó cho chất lượng khôi phục khá tốt và ít tính toán hơn so với nén MPEG. Nén JPEG có thể thực hiện bởi bốn mode mã hóa: mã hóa tuần tự, mã hóa lũy tiến, mã hóa không tổn thất và mã hóa phân cấp. Mã hóa không tổn thất không sử dụng cho video động bởi vì tỉ lệ nén của nó không đủ cao. Khai triển DCT được chọn là kĩ thuật then chốt trong JPEG vì nó cho ảnh nén chất lượng tốt nhất tại số bit thấp nhất và giải thuật chuyển đổi nhanh, dễ dàng thực hiện bằng phần cứng.

Định dạng nén JPEG được sử dụng trong tất cả máy ảnh kỹ thuật số có kích thước rất nhỏ nên thường chụp được nhiều ảnh trên một thẻ nhớ, JPEG dễ hiển thị trên màn hình, ảnh có thể chuyển nhanh qua thư điện tử (dung lượng từ 300KB đến 700KB), ảnh JPEG chất lượng cao có dung lượng khoảng vài MB hay lớn hơn.

2.2.1.2 Sơ đồ khối

Hình 2.10 Sơ đồ khối bộ mã hóa và giải mã JPEG dựa trên biến đổi DCT

Bước đầu tiên trong xử lí nén JPEG là chia nhỏ ảnh vào thành các khối pixel không chồng lấn có kích thước 8x8. Chúng tạo thành chuỗi nhỏ được xử lí từ trái qua phải, từ trên xuống dưới. Khi mỗi khối 8x8 hoặc ảnh con được xử lí thì 64 pixel của nó bị dịch chuyển -2m-1 mức. trong đó 2m là số mức xám trong ảnh và biến đổi cosin rời rạc 2 chiều của nó được tính toán. Các hệ số kết quả sau đó được chuẩn hóa và lượng tử hóa. Sau khi các hệ số DCT của mỗi khối được lượng tử hóa, các phần tử lượng tử

Page 38: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 28

được sắp xếp lại rồi mã hóa kí hiệu. Chuẩn JPEG cung cấp các bảng mã hóa Huffman AC và DC.

Bộ giải mã thì ngược lại, ảnh nén lần lượt được giải mã hóa, giải lượng tử, biến đổi DCT ngược và ghép các khối 8x8 lại thành ảnh khôi phục.

2.2.2 JPEG2000

2.2.2.1 Giới thiệu sơ lược

JPEG2000 không phải là một chuẩn mới hoàn toàn mà được phát triển chuẩn JPEG đã có. JPEG2000 dùng cho nén ảnh tĩnh, là định dạng nén ảnh có tổn thất, được ứng dụng vào các hệ xử lí và phân phối. Với JPEG2000, kỹ thuật xử lý hình ảnh sẽ đạt được những kết quả rất ngoạn mục vì có thể nén nhỏ từ 100-200 lần mà hình ảnh không sai sót bao nhiêu so với hình ảnh gốc.

JPEG2000 là hệ thống mã hóa hình ảnh mà kỹ thuật nén dựa trên kỹ thuật sóng ngắn. Là một tiện ích toán học cho phép mô tả bằng một công thức đơn giản những gì xảy ra tại một thời điểm chính xác của tín hiệu. Với một chuỗi sóng ngắn, chỉ cần biểu diễn bằng vài công thức, đường biểu diễn không đều mà không cần phải mô tả đặc tính của từng điểm một. Và lẽ dĩ nhiên sẽ rất đắc lực khi phân tích tỉ mỉ một file ảnh kỹ thuật số.

2.2.2.2 Sơ đồ khối bộ mã hóa và bộ giải mã JPEG 2000

Hình 2.11 biểu diễn hệ thống mã hóa JPEG 2000 đơn giản.

Bước đầu tiên của quá trình mã hóa, như trong chuẩn JPEG, là để dịch chuyển 2m-1 mức các pixel của ảnh, trong đó 2m là số mức xám trong ảnh. Sau đó, biến đổi wavelet rời rạc 1 chiều các hàng và cột của ảnh có thể được tính toán. Ngoài việc ảnh vào được chia thành các dải băng con và được xử lí lần lượt thì quá trình mã hóa và giải mã JPEG2000 tương đối giống với JPEG. Chỉ có sự khác biệt là phép biến đổi sử dụng ở đây là biến đổi wavelet chứ không phải là DCT.

Hình 2.11 Sơ đồ khối bộ mã hóa và bộ giải mã JPEG 2000

Page 39: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 29

2.2.3 So sánh JPEG và JPEG2000

– JPEG2000 đưa ra cả hai kỹ thuật nén có tổn thất và không tổn thất theo cùng một cơ chế mã hoá:

JPEG2000 thực hiện tất cả các dạng thức của JPEG chỉ bằng một cơ chế mã hoá duy nhất. Có thể thấy rằng JPEG2000 có tính mềm dẻo hơn JPEG. Hơn thế, chúng ta đã thấy rằng tất cả các phương pháp thiết kế cho chuẩn JPEG2000 đều ưu việt và có nhiều tính năng hơn so với JPEG; ngoài ra những thống kê và thực tế cho thấy với cùng một tỷ lệ nén và một loại ảnh thì ảnh được nén bởi JPEG2000 hầu như luôn có chất lượng tốt hơn so với JPEG. Chúng ta xem xét hai ảnh trên hình 2.12 để thấy rõ điều này.

Hình 2.12 So sánh JPEG, JPEG2000

– Trong dạng thức nén có tổn thất thông tin, JPEG2000 có thể đưa ra tỷ lệ nén cao hơn nhiều so với JPEG. Các phần mềm nén ảnh JPEG hiện tại (kể cả photoshop) cũng chỉ thiết kế để có thể nén ảnh được với tỷ lệ 40:1 nhưng với JPEG2000 thì tỷ lệ nén có thể lên tới 200:1. Theo công thức tính PSNR trong đơn vị dB, ta có b là số bít dùng biểu diễn một pixel trên ảnh gốc.

PSNR(dB) = – 20 log[RMSE/2b – 1] (2.7)

Với hai ảnh ở hình 2.12, so sánh về tham số PSNR cho trên bảng 2.1. Để có thể so sánh dễ dàng hơn, ta xét ảnh được nén với các tỷ lệ khác nhau (đo lường bởi hệ số bit/pixel hay bpp). Tất cả các số liệu trên bảng đều cho thấy JPEG2000 nén ảnh tốt

Page 40: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 30

hơn là JPEG; hơn thế hệ số PSNR mà chúng ta xét trong bảng được đo trong hệ đơn vị logarit.

Bảng 2.1 Số bit mỗi pixel

Bit per pixel 0,125 0,50 2,00

Ảnh 1 theo Jpeg 24,12 31,17 35,15

Ảnh 1 theo Jpeg2000 28,12 32,95 37,35

Ảnh 2 theo Jpeg 22,6 28,92 35,99

Ảnh 2 theo Jpeg2000 24,85 31,13 38,80

Hình 2.13 Tỉ lệ nén của JPEG2000 và JPEG

– Chuẩn nén ảnh JPEG2000 có thể hiển thị được các ảnh với độ phân giải và kích thước khác nhau từ cùng một ảnh nén. Với JPEG thì điều này là không thể thực hiện được. Sở dĩ có điều này là do JPEG2000 sử dụng kỹ thuật phân giải ảnh và mã hoá đính kèm.

Tính năng này là một lợi thế đặc biệt quan trọng của JPEG2000, trong khi JPEG cũng như các chuẩn nén ảnh tĩnh trước đây phải nén nhiều lần để thu được chất lượng với từng lần nén khác nhau thì với JPEG2000 ta chỉ cần nén một lần còn chất lượng ảnh thì sẽ được quyết định tuỳ theo người sử dụng trong quá trình giải nén ảnh theo

Page 41: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 2: Các kĩ thuật nén ảnh

Nguyễn Phương Hiền – D04VT2 31

JPEG2000. Một tính năng ưu việt nữa của JPEG2000 là tính năng mã hoá ảnh quan trọng theo vùng (ROI). Chất lượng của toàn bộ ảnh có thể được thấy rõ trong hình.

Hình 2.14 Minh hoạ tính năng ROI

Như chúng ta thấy trên hình 2.14, chất lượng của vùng ảnh được lựa chọn tăng cao hơn khi vùng đó được áp dụng phương pháp ROI.

– JPEG2000 còn có một khả năng đặc biệt ưu việt hơn so với JPEG, đó chính là khả năng vượt trội trong khôi phục lỗi. Đó là khi một ảnh được truyền trên mạng viễn thông thì thông tin có thể bị nhiễu, với các chuẩn nén ảnh như JPEG thì nhiễu này sẽ được thu vào và hiển thị, tuy nhiên với JPEG2000, do đặc trưng của phép mã hoá có thể chống lỗi, JPEG2000 có thể giảm thiểu các lỗi này tới mức hầu như không có.

2.3 Kết luận chương 2

Chương này đã giới thiệu cho ta một số vấn đề liên quan đến kĩ thuật nén ảnh và giới thiệu và so sánh hai chuẩn nén ảnh phổ biến hiện nay JPEG và JPEG 2000. Tận dụng các ưu điểm của hai kĩ thuật nén ảnh này, người ta đã sử dụng chúng rất nhiều trong các ứng dụng không dây. Ngoài hai chuẩn này ra, nếu quan tâm ta có thể tìm hiểu về một số kĩ thuật nén ảnh khác mới xuất hiện gần đây như định dạng Windows Media Photo (HD Photo), chương trình My Photo Zip dùng cho nén ảnh đồ họa.

Page 42: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 32

CHƯƠNG 3

CHƯƠNG TRÌNH MÔ PHỎNG

Trong hai chương trên, ta đã đề cập đến các kĩ thuật nâng cao chất lượng ảnh và nén ảnh và đã nhận thấy được tầm quan trọng của vấn đề này. Ngày nay, khi mà khoa học kĩ thuật và công nghệ ngày càng phát triển thì người ta càng nghĩ đến chuyện làm thế nào để đưa các vấn đề trên ứng dụng vào thực tiễn. Vì vậy, cần thiết phải xây dựng được chương trình mô phỏng cho các vấn đề này. Đồ án này xây dựng chương trình mô phỏng bằng ngôn ngữ Matlab.

3.1 Ngôn ngữ Matlab

Hiện nay, có rất nhiều ngôn ngữ lập trình đang được quan tâm và ứng dụng. Các ngôn ngữ lập trình như Basic, Pascal, C, Java... được sử dụng rộng rãi trong nhiều lĩnh vực. Trong số đó, Matlab là một ngôn ngữ rất mạnh được sử dụng rộng rãi trong nhiều lĩnh vực. Nó dễ dàng sử dụng hơn các ngôn ngữ khác. Matlab cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao tiếp người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác. Phần mềm MATLAB còn được trang bị thêm thư viện cho các lĩnh vực ứng dụng rất đa dạng như xử lí tín hiệu, nhận dạng hệ thống, xử lí ảnh, mạng nơ ron, logic mờ, tài chính, tối ưu hóa, phương trình đạo hàm riêng, sinh tin học, ... Đây là các tập hợp mã nguồn viết bằng chính MATLAB dựa theo các thuật toán mới, hữu hiệu mà người dùng có thể chỉnh sửa hoặc bổ sung thêm các hàm mới. Với thư viện Toolbox, Matlab cho phép mô phỏng tính toán, thực nghiệm nhiều mô hình trong thực tế và kỹ thuật. Chính vì các ưu điểm đó mà trong đồ án này, em quyết định chọn ngôn ngữ lập trình Matlab để mô phỏng các kĩ thuật nâng cao chất lượng và nén ảnh.

3.1.1 Sơ lược lịch sử Matlab

Matlab là từ viết tắt của "MATrix LABoratory", được phát minh vào cuối thập niên 1970 bới Cleve Moler.

Ban đầu, MATLAB được viết bởi ngôn ngữ Fortran. Cho đến 1980, nó vẫn chỉ là một bộ phận được dùng nội bộ của Đại Học Standford.

Page 43: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 33

Năm 1983, Jack Little đã viết lại MATLAB bằng ngôn ngữ C và nó được xây dựng thêm các thư viện phục vụ cho thiết kế hệ thống điều khiển, hệ thống Hộp Công Cụ (Tool box), mô phỏng ... Jack xây dựng MATLAB trở thành mô hình ngôn ngữ lập trình cơ sở ma trận (matrix-based programming language). Steve Bangert là người đã thực hiện trình thông dịch cho MATLAB. Công trình này tốn gần một năm rưỡi. Sau này, Jack Little kết hợp với Moler và Steve Bangert quyết định đưa Matlab thành dự án thương mại - công ty The MathWorks ra đời thời gian này - năm 1984.

Phiên bản đầu tiên MATLAB 1.0 ra đời năm 1984 viết bằng C cho MS-DOS PC được phát hành đầu tiên tại IEEE Conference on Design and Control (hội nghị IEEE về thiết kế và Điều khiển) tại Las Vegas, bang Nevada Hoa Kì.

Năm 1986, MATLAB 2 ra đời trong đó hỗ trợ UNIX.

Năm 1987, MATLAB 3 phát hành.

Năm 1990 Simulink 1.0 được phát hành chung với MATLAB

Năm 1992 MATLAB 4 thêm vào hỗ trợ 2-D và 3-D đồ họa màu và các ma trận truy tìm. Năm này cũng cho phát hành phiên bản MATLAB Student Edition (MATLAB ấn bản cho học sinh)

Năm 1993 MATLAB cho MS Windows ra đời. Đồng thời công ty này có WEB site là mathwork.com.

Năm 1995 MATLAB cho LINUX ra đời. Trình dịch MATLAB có khả năng chuyển dịch từ ngôn ngữ MATLAB sang ngôn ngữ C cũng được phát hành trong dịp này.

Năm 1996 MATLAB 5 bao gồm thêm các kiểu dữ liệu, phát triển hình ảnh hoá, bộ truy sửa lỗi (debugger), và giao diện đồ họa GUI.

Năm 2002 MATLAB 6.5 phát hành, sử dụng phương pháp dịch JIT (Just in Time) và tái hỗ trợ MAC.

Năm 2004 MATLAB 7 phát hành, có khả năng chính xác đơn và kiểu nguyên, hỗ trợ hàm lồng nhau, công cụ vẽ điểm, và phát triển thuật toán tương tác.

Hiện nay, đã là phiên bản 14 với SP3 cải thiện Simulink cùng với hơn 75 sản phẩm khác.

Page 44: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 34

Matlab được dùng rộng rãi trong giáo dục, phổ biến nhất trong lĩnh vực đại số tuyến tính và giải tích.

3.1.2 Đặc điểm của Matlab và các ứng dụng

MATLAB – phần mềm nổi tiếng của công ty MathWorks, là một ngôn ngữ hiệu năng cao cho tính toán kỹ thuật như được viết trong logo của phần mềm này. Nó tích hợp tính toán, hiển thị và lập trình trong một môi trường dễ sử dụng. Các ứng dụng tiêu biểu của MATLAB bao gồm:

v Hỗ trợ toán học và tính toán.

v Phát triển thuật toán.

v Mô hình, mô phỏng.

v Phân tích, khảo sát và hiển thị số liệu.

v Đồ họa khoa học và kỹ thuật

v Phát triển ứng dụng với các giao diện đồ họa.

Tên của phần mềm MATLAB bắt nguồn từ thuật ngữ “Matrix Laboratory”. Đầu tiên nó được viết bằng FORTRAN để cung cấp truy nhập dễ dàng tới phần mềm ma trận được phát triển bởi các dự án LINPACK và EISPACK. Sau đó nó được viết bằng ngôn ngữ C trên cơ sở các thư viện nêu trên và phát triển thêm nhiều lĩnh vực của tính toán khoa học và các ứng dụng kỹ thuật.

Matlab là một môi trường tính toán số và lập trình. Matlab cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao tiếp người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác. Vì vậy, Matlab là một ngôn ngữ rất mạnh được sử dụng rộng rãi trong nhiều lĩnh vực. Nó dễ dàng sử dụng hơn các ngôn ngữ khác như Basic, Pascal, C...

Phần mềm MATLAB còn được trang bị thêm các ToolBox – các gói chương trình (thư viện) cho các lĩnh vực ứng dụng rất đa dạng như xử lí tín hiệu, nhận dạng hệ thống, xử lí ảnh, mạng nơ ron, logic mờ, tài chính, tối ưu hóa, phương trình đạo hàm riêng, sinh tin học, ... Đây là các tập hợp mã nguồn viết bằng chính MATLAB dựa theo các thuật toán mới, hữu hiệu mà người dùng có thể chỉnh sửa hoặc bổ sung thêm các hàm mới. Với thư viện Toolbox, Matlab cho phép mô phỏng tính toán, thực nghiệm nhiều mô hình trong thực tế và kỹ thuật.

Page 45: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 35

MATLAB được thiết kế để giải các bài toán bằng số chứ không nhằm mục đích chính là tính toán ký hiệu như MATHEMATICA và MAPLE. Tuy nhiên, trong MATLAB cũng có thể tính toán ký hiệu được nhờ các hàm trong Symbolic Math ToolBox.

3.2 Chương trình mô phỏng sử dụng Matlab

3.2.1 Giao diện chương trình mô phỏng

Matlab cung cấp thư viện guide để người sử dụng có thể tự tạo giao diện cho riêng mình. Trong guide, thanh công cụ hỗ trợ rất nhiều cho người sử dụng.

Các công cụ trong thanh công cụ của GUIs:

- Static Text: Ta có thể nhập các đoạn text vào đây. Các đoạn text này dùng để chú thích và không thể thay đổi.

- Edit Text: Ta có thể nhập các đoạn text vào đây. Tuy nhiên, khi chạy chương trình, các đoạn text này có thể thay đổi được. Ví dụ, ta có thể sử dụng edit text để nhập và thay đổi các tham số của chương trình.

- Push Button: Nút chạy chương trình. Khi ấn nút, chương trình mà ta đã lựa chọn sẽ chạy. Ví dụ, các nút xử lí (chạy đoạn chương trình mô phỏng), nút đóng (đóng cửa sổ chương trình hiện thời lại), nút quay lại (quay lại cửa sổ chương trình trước đó), nút thông tin (xem thêm một số thông tin về chương trình đang chạy) ...

- Axes: Các axes được sử dụng để hiển thị các ảnh hoặc đồ thị của chương trình.

- Radio Button và Check Box: Ta có thể tích vào nút này để lựa chọn hoặc không lựa chọn một trong chương trình để chạy mô phỏng.

- Pop-up Menu và Listbox: Ta có thể lựa chọn một trong các chương trình trong Pop-up Menu và Listbox, các chương trình này người sử dụng tự nhập vào và không thể thay đổi được.

- Toggle Button và Panel: Được sử dụng để gom các nút trong chương trình cho gọn, hoặc là để ngăn cách giữa các nhóm chương trình để giao diện đẹp hơn và đỡ rối.

Ngoài ra, thanh công cụ còn có Button Group, Slider nhưng trong đồ án này ta không sử dụng tới.

Page 46: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 36

Ví dụ, giao diện chương trình mô phỏng nâng cao chất lượng và nén ảnh dưới đây đã sử dụng hai công cụ Static Text và Push Button. Người sử dụng còn có thể dễ dàng lựa chọn màu sắc, font chữ, kích thước và màu sắc chữ cho chương trình.

Hình 3.1 Giao diện chương trình nâng cao chất lượng và nén ảnh

Sau đây là các chương trình mô phỏng trong đồ án.

3.2.2 Nâng cao chất lượng ảnh

3.2.2.1 Biến đổi mức xám

Hình 3.2 minh họa giao diện chương trình mô phỏng các phương pháp biến đổi ảnh xám. Phần lí thuyết về các phương pháp biến đổi ảnh xám đã được trình bày kĩ trong chương 1.

Chương trình mô phỏng trong hình 3.2 đã sử dụng các công cụ: Edit Text, Static Text, Axes, Pop-up Menu, Push Button và Toggle Button trong thanh công cụ của GUIs.

Ta có thể sử dụng chương trình khá dễ dàng.

Page 47: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 37

Hình 3.2 Giao diện chương trình biến đổi ảnh xám

a. Biến đổi mức xám sử dụng hàm imadjust

Để sử dụng chương trình mô phỏng các phương pháp biến đổi ảnh xám, ta chỉ cần nhập ảnh vào bằng cách ấn nút “Mở file ảnh”, ta có thể lựa chọn bất kì file ảnh nào có sẵn trong file matlab đang chạy chương trình. Sau đó, ảnh vừa chọn sẽ được nhập vào axes, ta chọn “Biến đổi mức xám nhờ hàm imadjust” trong “Lựa chọn phương pháp biến đổi:” và nhập các giá trị tham số: dải mức xám đầu vào, đầu ra (nằm trong khoảng từ 0 đến 1) và gamma. Rồi cuối cùng ta ấn nút “Xử lí”. Với dải mức xám đầu vào từ 0 đến 0.5, đầu ra từ 0.2 đến 1 và tham số gamma = 0.3, ta có ảnh biến đổi mức xám sử dụng hàm imadjust như hình 3.2. Nếu muốn biết thêm thông tin về phương pháp biến đổi mức xám sử dụng hàm imadjust cũng như các phương pháp khác trong biến đổi ảnh xám, ta có thể lựa chọn xem trong phần “Thông tin”.

Cách sử dụng của các chương trình mô phỏng trong đồ án đều tương tự như vậy.

Hàm imadjust được sử dụng trong mô phỏng này là công cụ xử lí ảnh IPT (Image Processing Toolbox) cơ bản cho các biến đổi mức xám của các ảnh xám. Nó có cú pháp:

Page 48: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 38

g = imadjust(f, [low_in high_in], [low_out high_out], gamma)

Hàm này ánh xạ các giá trị mức xám trong ảnh f đến giá trị mới g, (các giá trị giữa low_in và high_in ánh xạ đến giá trị low_out và high_out).

Hình 3.3 Đồ thị của các giá trị trong hàm imadjust

Các giá trị dưới low_in và trên high_in đều bị cắt đi, các giá trị dưới low_in ánh xạ tới low_out và các giá trị trên high_in ánh xạ tới high_out. Ảnh vào và ảnh ra có thể là của lớp uint8, uint16 hoặc double. Tất cả ảnh vào dù là thuộc lớp nào thì khi xử lí bằng hàm imadjust đều được xác định giá trị từ 0 đến 1. Nếu f thuộc lớp uint8 thì các giá trị thực tế sử dụng là các giá trị đã cho cho nhân với 255; nếu f thuộc lớp uint16 thì các giá trị đã cho nhân với 65535. Nếu [low_in high_in] hoặc [low_out high_out] là ma trận rỗng ([ ]), ta có các giá trị mặc định [0 1]. Nếu high_out nhỏ hơn low_out thì mức xám đầu ra đảo ngược lại.

Tham số gamma xác định dạng đường cong để ánh xạ các giá trị mức xám của f để tạo g. Nói dễ hiểu hơn, gamma xác định độ tương phản của ảnh ra. Nếu gamma nhỏ hơn 1 thì ánh xạ có trọng số hướng về các giá trị ra cao hơn (ảnh ra có độ tương phản thấp hơn). Nếu gamma lớn hơn 1 thì ánh xạ có trọng số hướng về các giá trị ra thấp hơn (ảnh ra có độ tương phản cao hơn). Nếu hàm là g = imadjust(f, [low_in high_in], [low_out high_out]) thì gamma mặc định là 1.

b. Biến đổi âm bản

Ảnh âm bản có thể thu được nhờ hàm imadjust:

g = imadjust(f, [0 1], [1 0]);

Hay: g = imcomplement(f);

Page 49: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 39

Hình 3.4 (a) Ảnh gốc – (b) Ảnh âm bản

c. Biến đổi log

Các biến đổi log được thực hiện bằng cách sử dụng công thức:

g = c*log(1 + double(f)) (3.1)

Hình 3.5 là kết quả mô phỏng biến đổi hàm log với c = 5:

Hình 3.5 (a) Ảnh gốc – (b) Ảnh biến đổi hàm log

d. Biến đổi hàm mũ

Các biến đổi hàm mũ được thực hiện bằng cách sử dụng công thức:

g = c*(f.^gamma) (3.2)

Mô phỏng Matlab với c = 5 và gamma = 2:

Page 50: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 40

Hình 3.6 (a) Ảnh gốc – (b) Ảnh biến đổi hàm mũ

e. Biến đổi giãn độ tương phản

Ta có thể dùng hàm imadjust cho giãn độ tương phản:

g = 1./(1 + (m./(double(f) + eps)).^E) (3.3)

trong đó E là độ dốc của hàm, eps là hằng số, m = mean2(f).

Kết quả biến đổi giãn độ tương phản là tăng độ tương phản giữa các vùng tối và vùng sáng. Hình 3.7 dưới đây minh họa mô phỏng Matlab cho giãn độ tương phản với độ dốc E = 4.

Hình 3.7 (a) Ảnh gốc – (b) Ảnh giãn độ tương phản

Page 51: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 41

f. Kĩ thuật cắt theo mức

Hình 3.8 minh họa mô phỏng Matlab cho kĩ thuật cắt theo mức. Trong trường hợp có nền, tham số L = 0.8, a = 0.4, b = 0.6. Trong trường hợp không nền, tham số L1 = 0.8, L2 = 0.2.

Hình 3.8 (a) Ảnh gốc – (b) Ảnh cắt theo mức không nền – (c) Ảnh cắt theo mức có nền

3.2.2.2 Cân bằng mức xám

Để mô phỏng phương pháp cân bằng biểu đồ, ta sử dụng 2 hàm sau đây.

Hàm thứ nhất dùng để cân bằng mức xám của ảnh vào f:

g = histeq(f, nlev);

trong đó nlev là số mức xám xác định cho ảnh ra (thường là 256).

Nếu hàm là g = histeq(f) thì nlev mặc định bằng 64.

Hàm thứ 2 là hàm imhist() để vẽ biểu đồ của ảnh. Ngoài ra, ta có thể vẽ biểu đồ bằng hàm bar(), plot() hoặc stem() nhưng hàm imhist() là tối ưu nhất để ta có thể so sánh đồ thị ảnh gốc và ảnh cân bằng.

Hình 3.9 là kết quả của chương trình mô phỏng cân bằng biểu đồ ảnh xám với nlev = 256. Đối với phương pháp cân bằng biểu đồ, ta nên chọn ảnh vào thật sáng hoặc thật tối thì sự cân bằng sẽ rõ hơn.

Page 52: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 42

Hình 3.9 (a) Ảnh gốc – (b) Biểu đồ ảnh gốc – (c) Ảnh cân bằng – (d) Biểu đồ của ảnh cân bằng

3.2.2.3 So sánh mức xám

Hình 3.10 Hai ảnh xám gần giống nhau

Page 53: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 43

Ảnh f1 và f2 càng giống nhau thì ảnh thu được càng tối. Do đó, sau khi so sánh ta có thể tiếp tục sử dụng phương pháp cân bằng mức xám với ảnh xám g để dễ dàng quan sát hơn. Sau đây là kết quả thu được trong cả trường hợp không cân bằng và có cân bằng:

Hình 3.11 Ảnh xám thu được trước và sau khi cân bằng (từ trái qua phải)

3.2.2.4 Chèn nhiễu

Trong phần này, ta thực hiện mô phỏng việc thêm nhiễu vào một bức ảnh. Nhiễu mà ta sử dụng để mô phỏng là nhiễu salt and pepper. Đoạn mã sau sẽ thực hiện chức năng này:

g = imnoise(f, ‘loại nhiễu’, mật độ nhiễu);

Và đây là kết quả chèn nhiễu salf & pepper với mật độ nhiễu 0.2:

Hình 3.12 (a) Ảnh gốc – (b) Ảnh chèn nhiễu salf & pepper

Page 54: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 44

Ngoài nhiễu salf & pepper, ta có thể chèn thêm vào ảnh nhiễu Gaussian, localvar, poisson, speckle.

Các loại nhiễu

- 'gaussian': Nhiễu Gauss trắng.

- 'localvar': Nhiễu Gauss trắng trung bình 0 (Zero-mean Gaussian white noise with an intensity-dependent variance).

- 'poisson': Nhiễu Poisson.

- 'salt & pepper': Mở hoặc tắt các pixel. Salt là mở pixel (trắng), pepper là tắt pixel (đen).

- 'speckle': Nhiễu nhân.

3.2.2.5 Lọc ảnh

Ta có thể kết hợp các phương pháp chèn nhiễu và lọc nhiễu trong một giao diện như sau:

Hình 3.13 Giao diện chương trình mô phỏng các phương pháp chèn nhiễu và lọc nhiễu

Page 55: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 45

a. Lọc làm mịn ảnh

Ý tưởng của phương pháp lọc làm mịn là thay giá trị của một pixel bằng giá trị mức xám trung bình của các pixel trong mặt nạ. Phương pháp này sẽ giúp loại bỏ các chi tiết không liên quan trước khi thực hiện tách các đối tượng trong ảnh. Chi tiết ở đây là nhóm các pixel có kích thước rất nhỏ so với mặt nạ. Tuy nhiên phương pháp này tạo ra tác dụng không mong muốn là làm giảm độ nét của ảnh.

Lọc không gian tuyến tính

Lọc không gian tuyến tính sử dụng hàm lọc:

g = imfilter(f, bộ lọc, ‘đường biên’);

trong đó ta xác định các loại đường biên:

- P: Các đường biên của ảnh vào được mở rộng nhờ chèn thêm vào một giá trị P. Mặc định là 0.

- ‘replicate’: Kích thước của ảnh được mở rộng nhờ tạo ra các giá trị trên đường biên bên ngoài của nó.

- ‘symmetric’: Kích thước của ảnh được mở rộng nhờ việc phản xạ ảnh qua biên.

- ‘circular’: Kích thước của ảnh được mở rộng nhờ xử lí ảnh theo chu kì của hàm tuần hoàn.

Toolbox trong Matlab hỗ trợ nhiếu bộ lọc không gian tuyến tính 2-D nhờ sử dụng hàm fspecial, hàm này tạo ra mặt nạ w của bộ lọc nhờ sử dụng cấu trúc lệnh:

w = fspecial(‘type’, parameters)

Trong đó ‘type’ là loại bộ lọc, và parameters xác định thêm các bộ lọc đặc biệt. Các bộ lọc đặc biệt này được thống kê trong bảng 3.1.

Bảng 3.1 Các bộ lọc đặc biệt

Loại Cấu trúc và tham số

‘average’ fspecial(‘average’, [r c]). Một bộ lọc trung bình chữ nhật kích thước r x c, mặc định là 3x3. Có thể thay [r c] bằng một giá trị đơn, khi đó bộ lọc là vuông.

Page 56: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 46

‘disk’ fspecial (‘disk’, r). Bộ lọc trung bình tròn (nằm trong hình vuông có kích thước 2r+1) với đường kính r. Đường kính mặc định là 5.

‘gaussian’ fspecial (‘gaussian’, [r c], sig). Bộ lọc thông thấp Gauss kích thước r x c và độ lệch chuẩn sig (sig mang giá trị dương). Kích thước và độ lệch chuẩn mặc định là 3x3 và 0.5. Có thể thay [r c] bằng một giá trị đơn, khi đó bộ lọc là vuông.

‘laplacian’ fspecial (‘laplacian’, alpha). Bộ lọc Laplace kích thước 3x3 có hình dạng xác định bởi alpha (nằm trong khoảng [0, 1]). Giá trị mặc định của alpha là 0.5.

‘log’ fspecial (‘log’, [r c], sig). Bộ lọc LoG (Laplacian of Gaussian) kích thước r x c và độ lệch chuẩn sig (sig mang giá trị dương). Giá trị mặc định của kích thước bộ lọc và độ lệch chuẩn là 5x5 và 0.5. Có thể thay [r c] bằng một giá trị đơn, khi đó bộ lọc là vuông.

‘motion’ fspecial (‘motion’, len, theta). Cho bộ lọc mà khi nhân với 1 ảnh thì tính toán xấp xỉ chuyển động tuyến tính (của một camera đối với ảnh) của len pixel. Góc chuyển động là theta, được tính bằng độ, ngược chiều kim đồng hồ so với trục ngang. Giá trị mặc định của len và theta là 9 và 0.

‘prewitt’ fspecial (‘prewitt’). Cho mặt nạ Prewitt wv tính toán gradient theo chiều dọc. Mặt nạ cho gradient theo chiều ngang thu được nhờ phép biến đổi: wh = wv’.

‘sobel’ fspecial (‘sobel’). Cho mặt nạ Sobel sv tính toán gradient theo chiều dọc. Mặt nạ cho gradient theo chiều ngang thu được nhờ phép biến đổi: sh = sv’.

Page 57: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 47

‘unsharp’ fspecial (‘unsharp’, alpha). Cho bộ lọc unsharp kích thước 3x3. Tham số alpha điều chỉnh độ sắc nét, nằm trong khoảng (0 1], giá trị mặc định là 0.2.

Ngoài các bộ lọc đặc biệt ở trên ta cũng có thể tự nhập các mặt nạ lọc (ma trận) bất kì. Trong đó ta thấy ảnh lọc sử dụng ma trận H có độ lọc mịn khá cao:

H = [1/9 1/9 1/9;

1/9 1/9 1/9;

1/9 1/9 1/9];

Kết quả mô phỏng biểu diễn trong hình 3.14.

Hình 3.14 (a) Ảnh gốc – (b) Ảnh chèn nhiễu salt & pepper – (c) Ảnh lọc sử dụng ma trận H – (d) Ảnh lọc sử dụng bộ lọc trung bình

Page 58: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 48

Thực ra, với các bộ lọc như trên, các ảnh lọc thu được có khi rất mịn nhưng lại không rõ nét. Để khắc phục tình trạng này, ta có thể sử dụng linh hoạt bộ lọc. Ví dụ, ta sử dụng đoạn mã sau đây:

f = imread (‘moon.tif’);

w4 = fspecial (‘laplacian’, 0) % hoặc w4 = [0 1 0; 1 -4 1; 0 1 0]];

w8 = [1 1 1; 1 -8 1; 1 1 1];

f = im2double (f);

g4 = f – imfilter (f, w4, ‘replicate’);

g8 = f – imfilter (f, w8, ‘replicate’);

>> imshow (f);

>> figure, imshow (g4);

>> figure, imshow (g8);

Hình 3.15 (a) Ảnh gốc – (b) Ảnh thu được nhờ bộ lọc Laplace có giá trị -4 ở chính giữa – (c) Ảnh thu được nhờ bộ lọc Laplace có giá trị -8 ở chính giữa

Ảnh thu được ở hình cuối cùng mịn hơn rất nhiều so với ảnh gốc, hơn nữa, nó còn khá nét.

Lọc không gian phi tuyến

Một công cụ thông dụng để tạo ra các bộ lọc không gian phi tuyến trong IPT (hộp công cụ xử lí ảnh) là hàm ordfilt2, tạo ra các bộ lọc thứ tự cố định (cũng được gọi là các bộ lọc thứ tự). Những bộ lọc không gian phi tuyến này dựa vào thứ tự các pixel

Page 59: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 49

chứa trong vùng lân cận và thay thế giá trị pixel trung tâm của vùng lân cận bởi giá trị xác định bằng kết quả xếp thứ tự. Cấu trúc của lệnh ordfilt2 như sau:

g = ordfilt2 (f, order, domain)

Hàm này tạo ra ảnh đầu ra g bằng cách thay thế mỗi phần tử trong f bằng phần tử thứ order trong tập hợp các vùng lân cận được mô tả bởi các thành phần khác 0 trong domain. Ở đây, domain là ma trận m x n chỉ gồm hai số 0 và 1, mô tả các vị trí pixel trong vùng lân cận sẽ được sử dụng trong việc tính toán. Có thể hiểu domain có chức năng như một mặt nạ. Các pixel trong vùng lân cận tương ứng với 0 trong ma trận domain không được sử dụng trong việc tính toán.

Hình 3.16 (a) Ảnh gốc – (b) Ảnh chèn nhiễu salt & pepper – (c) Ảnh lọc không gian phi tuyến

Bộ lọc cho trạng thái tốt nhất trong xử lí ảnh là bộ lọc trung vị. Ta có thể sử dụng chức năng median trong hàm ordfilt2 để tạo bộ lọc trung vị:

g = ordfilt2 (f, median (1: m*n), ones (m, n));

Trong đó median (1: m*n) tính toán trung vị của chuỗi 1, 2, …, mn. Nhận thấy tầm quan trọng của nó, toolbox cung cấp hàm lọc trung vị 2-D:

g = medfilt2 (f, [m, n], padopt);

trong đó [m n] xác định vùng lân cận kích thước m x n mà trong đó phép tính trung vị được thực hiện, và padopt xác định một trong ba lựa chọn có thể: ‘zeros’ (mặc định), ‘symmetric’ trong đó f được mở rộng một cách đối xứng bằng cách phản xạ nó qua biên, và ‘indexed’ trong đó f được bù bởi 1 nếu nó có dạng double và 0 nếu ngược lại. Dạng mặc định của hàm:

g = medfilt2 (f);

Page 60: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 50

sử dụng ma trận 3x3 để tính toán trung vị, và bù 0 vào biên của ảnh đầu vào.

Kỹ thuật này đòi hỏi giá trị các điểm ảnh trong cửa sổ phải xếp theo thứ tự tăng hay giảm dần so với giá trị trung vị. Kích thước cửa số thường được chọn sao cho số điểm ảnh trong cửa số là lẻ. Các cửa sổ hay dùng là cửa sổ có kích thước 3x3, hay 5x5 hay 7x7. Thí dụ:

Hình 3.17 (a) Ảnh gốc – (b) Ảnh chèn nhiễu salt & pepper – (c) Ảnh lọc trung vị 3x3

Lọc trung bình

Ta có ảnh lọc trung bình thu được nhờ mô phỏng Matlab:

Hình 3.18 (a) Ảnh gốc – (b) Ảnh chèn nhiễu – (c) Ảnh lọc trung bình

Lọc thông thấp miền tần số

Lọc thông thấp sử dụng hàm dftfilt. Kết quả của lọc thông thấp là làm mịn ảnh, tuy nhiên, nó lại làm cho ảnh bị mờ đi.

Page 61: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 51

Hình 3.19 (a) Ảnh gốc – (b) Ảnh chèn nhiễu salt & pepper– (c) Ảnh lọc thông thấp

b. Lọc sắc nét ảnh

Mục đích của lọc làm sắc nét ảnh là làm nổi bật các chi tiết nhỏ hoặc chi tiết bị mờ, có thể do nhiễu hoặc do quá trình thu nhận ảnh. Các kĩ thuật lọc làm sắc nét đều là lọc miền tần số.

Lọc thông cao

- Lọc thông cao cơ bản

Hàm lpfilter có thể được sử dụng như cơ sở cho bộ lọc thông cao.

Hình 3.20 (a) Ảnh gốc – (b) Ảnh chèn nhiễu poisson – (c) Ảnh lọc thông cao cơ bản

- Lọc emphasis cao tần

Các bộ lọc thông cao như trên sẽ làm giảm giá trị trung bình của ảnh tới 0. Như ta đã thấy ở trên, ảnh lọc nét hơn nhưng lại tối hơn nhiều so với ảnh gốc. Một phương pháp giải quyết vấn đề này là chèn thêm vào một offset để lọc thông cao. Khi offset

Page 62: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 52

kết hợp với việc nhân bộ lọc với một số lớn hơn 1 thì phương pháp này được gọi là lọc emphasis cao tần bởi vì phép nhân làm nổi rõ các tần số cao.

Emphasis cao tần có hàm truyền đạt:

Hhfe(u,v) = a + bHhp(u,v)

trong đó a là offset, b là số nhân và Hhp(u, v) là hàm truyền đạt của bộ lọc thông cao. Để có kết quả lọc cao hơn, sau khi lọc emphasis cao tần ta nên sử dụng phương pháp cân bằng biểu đồ.

Hình 3.21 (a) Ảnh gốc – (b) Ảnh chèn nhiễu salt & pepper – (c) Ảnh lọc emphasis cao tần – (d) Ảnh lọc sau khi cân bằng mức xám

Lọc tần số từ không gian

Một phương pháp để tạo một bộ lọc miền tần số H tương ứng với một bộ lọc không gian đã cho h là cho H = fft2(h, PQ(1), PQ(2)), trong đó các giá trị của vector

Page 63: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 53

PQ phụ thuộc vào kích thước ảnh chúng ta muốn lọc. Toolbox cung cấp hàm freqz2 thực hiện kĩ thuật lọc này.

Hàm freqz2 tính toán đáp ứng tần số của các bộ lọc FIR, là bộ lọc tuyến tính. Kết quả là bộ lọc mong muốn trong miền tần số. Cú pháp là:

H = freqz2(h, R, C)

trong đó h là 1 bộ lọc không gian 2D và H là bộ lọc miền tần số 2D tương ứng. Ở đây, R là số hàng và C là số cột mà ta mong muốn bộ lọc H có được. Thông thường, ta cho R = PQ(1) và C = PQ(2).

Hình 3.22 (a) Ảnh gốc – (b) Ảnh chèn nhiễu poisson – (c) Ảnh lọc tần số từ không gian

3.2.2.6 Các kĩ thuật làm nổi đường biên ảnh

Ta sử dụng hàm edge để dò tìm biên ảnh. Cú pháp của hàm:

g = edge(f, phương pháp dò tìm biên, các tham số);

trong đó:

- Phương pháp Sobel tìm ra các cạnh nhờ sử dụng phép tính xấp xỉ Sobel.

- Phương pháp Prewitt tìm ra các cạnh nhờ sử dụng phép tính xấp xỉ Prewitt.

- Phương pháp Roberts tìm ra các cạnh nhờ sử dụng phép tính xấp xỉ Roberts.

- Phương pháp log (Laplacian of Gaussian) tìm ra các cạnh nhờ tìm phần tử 0 ở các đường chéo sau khi lọc ảnh gốc bằng bộ lọc laplace của Gauss.

- Phương pháp Canny tìm ra các cạnh nhờ tìm quỹ tích lớn nhất của gradient cua ảnh gốc. Gradient được tính toán nhờ sử dụng đạo hàm của bộ lọc Gauss.

Page 64: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 54

3.2.3 Nén ảnh

3.2.3.1 Nén ảnh dùng mã hóa Huffman

Mã thu gọn và việc gán mã được mô tả trong hàm huffman. Việc tạo mã Huffman không phải là quá trình nén ảnh. Để thấy được sự nén ảnh được xây dựng trong mã Huffman, các kí hiệu sẽ được mã hóa phải được chuyển đổi hoặc mã hóa cho phù hợp với mã được tạo ra. Ta sử dụng hàm mat2huff và huff2mat để mô tả việc mã hóa và giải mã Huffman.

Bằng cách loại bỏ dư thừa mã kết hợp với mã hóa nhị phân 8 bit thông thường, ảnh có thể nén được 80% so với ảnh gốc (thậm chí bao gồm cả thông tin bổ sung).

3.2.3.2 Nén ảnh dùng mã dự đoán không tổn thất

Các hàm mat2lpc và lpc2mat thực hiện quá trình mã hóa giải mã dự đoán (trừ mã hóa kí hiệu và các bước giải mã).

Hàm Y = mat2lpc(X, F) mã hóa ma trận X sử dụng mã hóa dự đoán không tổn thất 1 chiều. Bộ dự đoán tuyến tính của X được xây dựng dựa trên các hệ số trong F.

Hàm X = lpc2mat(Y, F) giải mã hóa ma trận đầu vào Y dựa trên các hệ số dự đoán tuyến tính trong F .

3.2.3.3 Nén ảnh JPEG dùng biến đổi DCT

Hàm im2jpeg nén ảnh nhờ sử dụng một phép sấp xỉ JPEG. Y = im2jpeg(X, QUALITY) nén ảnh X dựa trên biến đổi DCT 8x8, lượng tử hóa hệ số và mã hóa kí hiệu Huffman. Đầu vào QUALITY xác định số lượng thông tin bị mất mà quá trình nén thu được. Y là một cấu trúc mã hóa:

Y.size: kích thước của X.

Y.numblocks: số khối mã hóa 8x8.

Y.quality: hệ số quality.

Y.huffman: Cấu trúc mã hóa Huffman.

Hàm im2jpeg xử lí các đoạn 8x8 riêng biệt hoặc các khối của ảnh vào, mỗi khối 1 lần (đúng hơn là toàn bộ ảnh 1 lần). Hàm sử dụng các hàm blkproc và im2col để làm đơn giản hóa phép toán.

Page 65: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 55

Trong im2jpeg, hàm blkproc được sử dụng để thuận tiện cho cả phép toán DCT và phép lượng tử hóa, và không chuẩn hóa hệ số, trong khi đó im2col được sử dụng để xác định hệ số lượng tử đang sắp xếp lại.

Tương tự, ta có hàm jpeg2im thực hiện chuỗi các quá trình ngược cần thiết để giải nén một ảnh nén im2jpeg (bỏ qua lượng tử hóa). Nó sử dụng hàm:

A = col2im(B, [M N], [MM NN], ‘distinct’);

để tạo lại 1 ảnh 2D từ các cột của ma trận z, trong đó mỗi cột 64 phần tử là 1 khối 8x8 của ảnh được khôi phục lại. Các tham số A, B, [M N], và ‘distinct’ được xác định cho hàm im2col, trong khi ma trận [MM NN] xác định chiều của ảnh ra A.

Hình 3.23 Giao diện nén ảnh JPEG và JPEG2000

3.2.3.4 JPEG2000

Hàm im2jpeg2k nén ảnh nhờ sử dụng phép tính sấp xỉ JPEG 2000. Y = im2jpeg2k(X, N, Q) nén ảnh X sử dụng biến đổi Wavelet JPEG 2000 N mức, lượng tử hóa ẩn hoặc hiện và mã hóa kí hiệu Huffman. Nếu lượng tử hóa vector Q chứa hai

Page 66: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Chương 3: Chương trình mô phỏng

Nguyễn Phương Hiền – D04VT2 56

phần tử thì chúng được giả thiết là các hệ số lượng tử hóa ẩn. Y là cấu trúc mã hóa chứa dữ liệu mã hóa Huffman và các hệ số thêm vào cần thiết cho việc giải mã jpeg2k2im. Hàm im2jpeg2k chứa một số hàm biến đổi Wavalet như wavecut, wavepaste, wavefilter... mà ta sẽ không đi sâu vào.

Hàm jpeg2k2im thực hiện quá trình ngược lại để khôi phục ảnh gốc. X = jpeg2k2im(Y) giải mã ảnh nén Y, khôi phục lại phép xấp xỉ của ảnh gốc X. Y là một cấu trúc mã hóa.

3.3 Kết luận chương 3

Trong chương này, các chương trình mô phỏng cho các kĩ thuật nâng cao chất lượng và nén ảnh đã được xây dựng. Nhờ vậy, ta không chỉ hiểu rõ hơn về các kĩ thuật đã nêu trên mà còn tìm hiểu được thêm về ngôn ngữ lập trình Matlab đang rất phổ biến hiện nay. Sự khác nhau giữa nén JPEG và JPEG2000 cũng như ưu điểm của JPEG2000 đã được làm rõ nhở xây dựng chương trình mô phỏng.

JPEG2000 được xem như một bước tiến mới không chỉ trong kĩ thuật nén ảnh mà còn trong nén tiếng, nén video với hiệu quả cao và độ phức tạp vừa phải. Hiện nay đang có rất nhiều các nghiên cứu để hoàn thiện JPEG2000 ứng dụng trong xử lý video, một số nghiên cứu khảo sát thực nghiệm cho thấy tính năng ưu việt của JPEG2000 về hiệu năng nén, khả năng hiệu chỉnh lỗi, và chất lượng hình ảnh.

Page 67: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Kết luận

Nguyễn Phương Hiền – D04VT2 57

KẾT LUẬN

Xử lí hình ảnh là một vấn đề thực tiễn không chỉ phục vụ các nhu cầu cá nhân mà còn hỗ trợ đắc lực cho việc nghiên cứu khoa học kĩ thuật cũng như các vấn đề khác. Vì vậy, trong đồ án của mình, em đã tiến hành nghiên cứu và tìm hiểu các kĩ thuật cơ bản để nâng cao chất lượng ảnh số như: ảnh âm bản, cân bằng, lọc làm mịn hay lọc sắc nét… và các kĩ thuật nén ảnh. Bên cạnh đó, đồ án đã tìm hiểu và so sánh 2 chuẩn nén ảnh rất phổ biến hiện nay là JPEG và JPEG2000.

Ngoài ra, em đã tiến hành thực hiện bằng ngôn ngữ MATLAB để xây dựng chương trình mô phỏng tương đối đầy đủ về các kĩ thuật trên.

Do thời gian có hạn, đồ án chưa thể trình bày được hết các kĩ thuật nâng cao chất lượng và nén ảnh. Vì vậy, hướng mở của đồ án là tiếp tục phát triển các kĩ thuật sẵn có và tìm hiểu thêm cũng như mô phỏng các kĩ thuật chưa được đề cập đến trong đồ án như:

ü Nâng cao chất lượng ảnh: lọc đồng hình, tách nhiễu, khử nhiễu, làm trơn biên,…

ü Nén ảnh: Các kĩ thuật nén DFT, SBC, mã hoá RLC,…

Do thời gian còn hạn chế nên không tránh khỏi sai sót khi em viết quyển báo cáo này. Em rất mong nhận được sự đóng góp của các thầy cô cũng như các bạn để đồ án của em có thể hoàn thiện hơn.

Em xin chân thành cảm ơn.

Page 68: Xay Dung Chuong Trinh Mo Phong Cac Ky Thuat Nang Cao Chat Luong Va Nen Anh (1)

Đồ án tốt nghiệp đại học Tài liệu tham khảo

Nguyễn Phương Hiền – D04VT2 58

TÀI LIỆU THAM KHẢO

1. “Matlab”, Bách khoa toàn thư mở Wikipedia, 10/10/2008

2. Raphael C.Gonzalez , Richard E.Woods, Steven L.Eddins, “Digital Image Processing Using Matlab”, Prentice Hall, năm 2004.

3. Matlab Help, Matlab version 7.0 (R14).

4. ThS. Nguyễn Hoài Nam, “Các phương pháp sử dụng trong chuẩn nén ảnh JPEG”, Tạp chí Bưu chính viễn thông kì 1, tháng 3/2004

5. Nguyễn Việt Cường, “JPEG - JPEG2000: Những bước đi ngoạn mục của kỹ thuật nén hình ảnh”, báo OSGColtech/12gio/vietbao, 9/9/2004.

6. TS. Nguyễn Thanh Bình, THS. Võ Nguyễn Quốc Bảo, “Xử lí âm thanh, hình ảnh”, dùng cho sinh viên hệ đại học từ xa, Học viện công nghệ Bưu chính Viễn thông, Hà Nội, năm 2007.

7. PGS.TS Nguyễn Quang Hoan, “Xử lý ảnh”, dùng cho sinh viên hệ đại học từ xa, Học viện công nghệ Bưu chính Viễn thông, năm 2006.