Đối với dữ liệu đa phương tiện, một trong những vấn đề nhận được nhiều sự quan tâm của các nhà nghiên cứu là giảm không gian lưu trữ trong khi vẫn duy trì được chất lượng dữ liệu.. Con n
Trang 1LỜI CÁM ƠN
Sau gần 6 tháng nỗ lực thực hiện, luận văn “Nén ảnh dựa trên phương pháp
5 mô đun kết hợp với phép biến đổi DWT” đã hoàn thành Ngoài sự cố gắng hết
mình của bản thân, em đã nhận được sự khích lệ rất nhiều từ phía nhà trường, thầy
cô, gia đình và bạn bè
Em xin gửi lời cảm ơn tới các thầy cô tại Trường Đại học công nghệ thông tin
và truyền thông Thái Nguyên đã đào tạo và giúp đỡ em trong suốt thời gian em học tập tại trường
Em xin chân thành cảm ơn thầy PGS TS Phạm Văn Ất đã tạo điều kiện cho em tìm hiểu, nghiên cứu và học hỏi những kinh nghiệm trong quá trình làm luận văn Xin cám ơn tất cả bạn bè đã và đang động viên, giúp đỡ tôi trong quá trình học tập và hoàn thành tốt luận văn thạc sĩ này
Thái Nguyên, tháng 7 năm 2015
Trang 2MỤC LỤC
LỜI CÁM ƠN i
THUẬT NGỮ VIẾT TẮT iv
DANH MỤC BẢNG BIỂU v
DANH MỤC HÌNH VẼ vi
Chương 1: TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ NÉN ẢNH 3
1.1 Tranh và ảnh 3
1.2 Xử lý ảnh là gì? 3
1.2.1 Thu nhận và lấy mẫu ảnh 7
1.2.2 Ảnh và ảnh số 9
1.2.3 Một vài ứng dụng 11
1.2.4 Các hướng nghiên cứu của xử lý ảnh 12
1.2.5 Nhiệm vụ xử lý ảnh 13
1.3 Một số định dạng ảnh thông dụng 13
1.3.1 Ảnh nhị phân: 13
1.3.2 Màu thực hoặc RGB: 14
1.3.3 Ảnh chỉ số: 15
1.4 Kích thước của tệp ảnh 16
1.5 Sự cảm nhận ảnh 17
1.6 Khái niệm về nén ảnh 18
1.6.1 Nén bảo toàn và không bảo toàn 18
1.6.2 Nén ảnh JPEG 19
Chương 2 NÉN ẢNH DỰA TRÊN PHƯƠNG PHÁP 5 MÔ ĐUN VÀ DWT 27
2.1 Phương pháp nén 5 mô đun 27
2.1.1 Thuật toán nén 27
2.1.2 Thuật toán giải nén 31
2.2 Phép biến đổi DWT 32
2.2.1 Phép biến đổi DWT một chiều 32
2.2.2 Phép đổi DWT hai chiều 35
2.2.3 Phép biến đổi nhiều mức 36
Trang 32.3 Nén ảnh dựa trên phép biến đổi DWT 38
2.3.1 Nén ảnh dựa trên phép biến đổi DWT một mức 38
2.3.2 Nén ảnh dựa trên phép biến đổi DWT hai mức 40
2.4 Kết hợp giữa phương pháp 5 mô đun và phép biến đổi DWT 41
2.4.1 Kết hợp giữa phương pháp 5 mô đun và phép biến đổi DWT một mức 41 2.4.2 Kết hợp giữa phương pháp 5 mô đun và phép biến đổi DWT hai mức 42
Chương 3 XÂY DỰNG CHƯƠNG TRÌNH VÀ ỨNG DỤNG 45
3.1 Thiết kế giao diện 45
3.1.1 Giao diện chương trình nén 45
3.1.2 Giao diện chương trình giải nén 49
3.2 Thiết kế chi tiết các thuật toán giải nén 52
3.2.1 Phương pháp nén 5 mô đun trên toàn ảnh 52
3.2.2 Phương pháp nén DWT một mức 53
3.2.3 Phương pháp nén DWT hai mức 54
3.3 Thiết kế chi tiết các thuật toán giải nén 55
3.3.1 Phương pháp 5 mô đun trên toàn ảnh 55
3.3.2 Phương pháp nén DWT một mức 56
3.3.3 Phương pháp nén DWT hai mức 56
3.4 So sánh các phương pháp nén 57
3.4.1 So sánh về chất lượng ảnh nén qua hình ảnh 57
3.4.2 So sánh chất lượng ảnh nén qua hệ số MSE và PSNR 60
3.4.3 So sánh thời gian nén và giải nén 61
3.4.4 So sánh về tỷ lệ nén 62
3.5 Một số ứng dụng 65
3.5.1 Trao đổi trên mạng Internet 65
3.5.2 Ứng dụng trên thiết bị Mobile 66
KẾT LUẬN 67
TÀI LIỆU THAM KHẢO 68 PHỤ LỤC
Trang 4THUẬT NGỮ VIẾT TẮT
DCT Biến đổi côsin rời rạc ( Discrete Cosine Transform)
DWT Biến đổi Wavelet rời rạc ( Discrete Wavelet Transform)
DCTLT Lượng tử hóa biến đổi cosin rời rạc
MCU Đơn vị mã hóa tối thiểu (Minimum Codes Unit)
HVS Hệ thống cảm nhận hình ảnh của mắt người
FMM Phương pháp 5 mô đun ( Five modulus method)
(Joint Photographic Experts Group)
Trang 5DANH MỤC BẢNG BIỂU
Bảng 2 1 Giá trị mới thu được bằng FMM 28
Bảng 2 2 Khối ma trận gốc kích thước 8 x 8 30
Bảng 2 3 Biến đổi khối 8x8 sử dụng FMM 30
Bảng 2 4 Chia FMM khối Y 30
Bảng 2 5 Sau khi trừ đi tối thiểu 31
Bảng 3 1 Đánh giá chất lượng ảnh 60
Bảng 3 2 Thời gian nén 61
Bảng 3 3 Thời gian giải nén 61
Trang 6DANH MỤC HÌNH VẼ
Hình 1 1 Tăng cường biên ảnh 4
Hình 1 2 Loại bỏ nhiễu 5
Hình 1 3 Khử bóng mờ của ảnh 5
Hình 1 4 Tìm các đường biên trong ảnh 6
Hình 1.5 Loại bỏ các chi tiết ảnh 7
Hình 1 6 Ví dụ lấy mẫu thấp 7
Hình 1 7 Ví dụ lấy mẫu cao 8
Hình 1 8 Sự ảnh hưởng của lấy mẫu 8
Hình 1 9 Ảnh được xem như một hàm hai biến 9
Hình 1 10 Ảnh ở hình 1.9 được vẽ đồ thị như một hàm hai biến 10
Hình 1 11 Các điểm ảnh và những điểm ảnh lân cận 11
Hình 1 12 Ảnh nhị nhân 14
Hình 1 13 Ảnh đa mức xám 15
Hình 1 14 Ảnh màu thực sự 15
Hình 1 15 Ảnh chỉ số 16
Hình 1 16 Một khối vuông cùng mức xám đặt trên nền tối và nền sáng 18
Hình 1 17 Sự liên tục các mức xám 18
Hình 1 18 Sơ đồ nén ảnh JPEG chuẩn Baseline 19
Hình 1 19 Khối hệ số DCT 20
Hình 1 20 Bảng lượng tử của thành phần Y 20
Hình 1.21 Một khối DCTLT của ảnh Pepper 20
Hình 2 1 Áp dụng phép biến đổi DWT theo hàng và cột 33
Hình 2 2 Áp dụng phép biến đổi DWT theo hai mức 33
Hình 2 3 Phép biến đổi Wavelet rời rạc 2-D 35
Hình 2 4 Bank lọc khôi phục lý thuyết sử dụng DWT 1D 37
Hình 2 5 Minh hoạ DWT hai chiều cho ảnh 37
Hình 2 6 Minh hoạ DWT kiểu dyadic mức 3 để nén ảnh 38
Hình 2 7 Minh hoạ DWT kiểu dyadic mức 3 để nén ảnh 38
Hình 3.1 Ứng dụng gửi ảnh qua Internet 65
Hình 3.2 Ứng dụng nhận ảnh qua Internet 66
Trang 7LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Học viên
Phạm Thị Thu Trang
Trang 8MỞ ĐẦU
Với sự phát triển mạnh mẽ của công nghệ thông tin, ngày càng có nhiều ứng dụng sử dụng dữ liệu đa phương tiện (ảnh, video, audio) như là dữ liệu đầu vào của
hệ thống Bên cạnh đó, việc trao đổi những dữ liệu này trên hệ thống mạng, thiết bị
di động đã trở thành nhu cầu thiết yếu của cuộc sống
Đối với dữ liệu đa phương tiện, một trong những vấn đề nhận được nhiều sự quan tâm của các nhà nghiên cứu là giảm không gian lưu trữ trong khi vẫn duy trì được chất lượng dữ liệu Để giảm không gian lưu trữ, thời gian truyền tải, trong ứng dụng thường
sử dụng kỹ thuật nén dữ liệu Hai phương pháp nén là nén bảo toàn và nén không bảo toàn Phương pháp nén không bảo toàn thường có tỷ lệ nén cao hơn phương pháp bảo toàn, nhưng chất lượng dữ liệu thì kém hơn
Trong hướng nén không bảo toàn, hai phép biến đổi khá phổ biến và hiệu quả thường được sử dụng trong nén dữ liệu là DWT (Discrete Wavelet Transform) và DCT (Discrete Cosine Transform), hai phép biến đổi này đã trở thành hai chuẩn nén ảnh thông dụng là JPEG chuẩn và JPEG 2000 Tuy nhiên, nội dung của hai chuẩn này khá phức tạp Gần đây, các tác giả F.A Jassim và H.E Qassim (năm 2012) đề xuất một phương pháp nén ảnh không bảo toàn mới gọi là phương pháp 5 mô đun (Five Modulus Method) Ý tưởng của phương pháp này là biến đổi miền giá trị điểm ảnh từ đoạn [0,255] về một đoạn nhỏ hơn để thu nhỏ số bit biểu diễn điểm ảnh từ 8 (đối với ảnh đa cấp xám) thành 4 hoặc ít hơn Đây là một phương pháp đơn giản, dễ cài đặt và thời gian thực hiện nhanh nhưng tỷ lệ nén không cao Mục đích của em là thử nghiệm các phương án nén ảnh dựa trên sự kết hợp phương pháp năm
mô đun và các phép biến đổi DWT
Chính vì vậy em chọn đề tài:
“NÉN ẢNH DỰA TRÊN PHƯƠNG PHÁP 5 MÔ ĐUN
KẾT HỢP VỚI PHÉP BIẾN ĐỔI DWT ”
làm luận văn tốt nghiệp
Trang 9Nội dung của luận văn gồm 3 chương:
Chương 1: Tổng quan về xử lý ảnh và nén ảnh
Chương 2: Nén ảnh dựa trên phương pháp 5 mô đun và DWT
Chương 3: Xây dựng chương trình và ứng dụng
Trang 10Chương 1: TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ NÉN ẢNH
1.1 Tranh và ảnh
Như chúng ta đã biết, con người có khả năng thị giác vượt trội: chúng ta tin tưởng một cách vững chắc vào thị giác của chúng ta để tạo ra những hiểu biết về thế giới xung quanh Chúng ta không chỉ quan sát các đồ vật để xác định và phân loại chúng, mà chúng ta còn có thể xem xét để phân biệt và cảm nhận toàn diện đối với những nơi xảy ra một cách nhanh chóng
Con người cũng đã tạo ra những kỹ năng thị giác rất chính xác: không những chúng ta có thể xác định được bề mặt của đối tượng một cách tức thì, mà chúng ta còn có thể phân biệt được màu sắc và xử lý một khối lượng lớn các thông tin thị giác một cách nhanh chóng
Tuy nhiên, thế giới luôn vận động, khi quan sát vật nào đó trong một thời gian tương đối dài chúng ta sẽ thấy nó thay đổi theo một cách nào đó Thậm chí, một cấu trúc đặc lớn như tòa nhà, trái núi cũng sẽ thay đổi sự hiển thị của chúng phụ thuộc vào thời gian (ngày hoặc đêm); lượng ánh sáng (rõ, mờ hoặc những cái bóng khác nhau phủ lên trên nó)
Chúng ta đang tập trung vào các ảnh đơn lẻ: ảnh chụp, nếu chúng ta muốn các ảnh phong cảnh Mặc dù quá trình xử lý ảnh có thể thực hiện với những sự thay đổi về quang cảnh, chúng ta sẽ không khảo sát chúng một cách chi tiết trong tài liệu này
Đối với mục đích của chúng ta, ảnh là một bức tranh riêng rẽ biểu diễn một vật nào đó Nó có thể là ảnh của một người, nhóm người, hoặc của các con vật hoặc của các quang cảnh bên ngoài, hoặc các ảnh nhỏ của các thiết bị điện tử, hoặc là kết quả của vấn đề chụp ảnh y học Thậm chí nếu ảnh là không nhận được ra một cách trực tiếp thì nó cũng không bị làm mờ một cách ngẫu nhiên
1.2 Xử lý ảnh là gì?
Theo [1], [2] xử lý ảnh liên quan đến sự thay đổi bản chất của ảnh để:
1) Cải thiện thông tin hình ảnh của nó đối với sự nhận thức của con người 2) Làm nó trở lên thích hợp hơn cho việc nhận thức máy móc tự động
Trang 11Chúng ta sẽ tập trung vào xử lý ảnh số bao gồm việc sử dụng máy tính để thay đổi bản chất của ảnh số (xem các ví dụ dưới đây) Một điều cần thiết phải nhận thức rằng hai vấn đề trên là các vấn đề tách rời nhưng chúng quan trọng như nhau trong
xử lý ảnh Một phương pháp thỏa mãn điều kiện thứ nhất – làm cho ảnh nhìn rõ hơn – có thể lại là một phương pháp rất tồi đối với điều kiện thứ hai Bởi con người thì thích các bức ảnh sắc nét, rõ ràng và chi tiết.Trong khi máy móc lại ưa chuộng những ảnh đơn giản và không chi tiết
Các ví dụ của 1) có thể bao gồm:
- Tăng cường các đường biên làm cho ảnh hiển thị một cách sắc nét hơn; một
ví dụ được chỉ ra trên hình 1.1 Chúng ta nhận thấy ảnh (b) hiển thị rõ hơn và đẹp hơn ảnh (a) Việc làm rõ các đường biên là một yêu cầu quan trọng trong vấn đề in
ấn Để ảnh hiển thị tốt trên các trang giấy in thì thường áp dụngmột vài kỹ thuật làm
rõ biên trước khi in ảnh
(a) Ảnh gốc (b) Ảnh sau khi tăng cường biên
Hình 1 1 Tăng cường biên ảnh
- Khử nhiễu trên ảnh; nhiễu là các sai số ngẫu nhiên trên ảnh, như ví dụ cho trong hình 1.2 Nhiễu là một vấn đề rất phổ biến trong việc truyền dữ liệu: việc sắp xếp các thiết bị điện tử có thể ảnh hưởng đến quá trình truyền tải dữ liệu và dẫn đến
Trang 12các lỗi không như mong muốn Nhiễu có nhiều biến dạng khác nhau, mỗi dạng yêu cầu một phương pháp riêng để khử nhiễu
- Khử bóng mờ của ảnh Một ví dụ chỉ ra trong hình 1.3 cho thấy,sau khi khử bóng mờ, thì trên ảnh (b) ta dễ dàng đọc được biển số xe và nhìn thấy các đầu nhọn trên hàng rào phía sau xe ô tô cũng như các chi tiết khác mà tất cả đều không rõ ràng trong ảnh gốc (a) Bóng mờ có thể xuất hiện khi tốc độ cửa chập của máy ảnh chậm hơn so với tốc độ di chuyển của đối tượng Trong khi chụp ảnh, các đối tượng
di chuyển nhanh chẳng hạn như vận động viên, xe cộ thì bóng mờ của ảnh có thể xuất hiện và cần được xử lý
Hình 1 2 Loại bỏ nhiễu
Hình 1 3 Khử bóng mờ của ảnh
Trang 13Các ví dụ của 2) bao gồm:
Xác định các đường biên của ảnh là cần thiết để đo kích cỡ các đối tượng trong ảnh, ví dụ như hình 1.4 Khi đã có các đường biên thì chúng ta có thể xác định được phạm vi và không gian của các đối tượng Chúng ta cũng có thể sử dụng các thuật toán dò biên như 1) trong vấn đề tăng cường biên như ở trên Từ kết quả xử lý biên chúng ta sẽ thấy điều cần thiết để tăng cường ảnh gốc và làm cho biên rõ hơn
Hình 1 4 Tìm các đường biên trong ảnh
- Loại bỏ các chi tiết ảnh thường được dùng trong bài toán đếm hoặc đo kích
cỡ các đối tượng trên ảnh, bởi vậy chúng ta không cần quan tâm tất cả các chi tiết của ảnh mà chỉ quan tâm đến hình dáng, kích thước và màu sắc của các đối tượng Đối với trường hợp như vậy, chúng ta cần đơn giản hóa hình ảnh Hình 1.5 chỉ ra một ví dụ: ảnh gốc (a) là con trâu rừng châu Phi, còn ảnh (b) chỉ ra một dạng làm
mờ, trong đó những chi tiết không liên quan (như các khúc gỗ, rừng cây trong nền của ảnh) đã được loại bỏ Ta có thể nhận thấy rằng trong ảnh (b), tất cả các chi tiết
đã bị loại bỏ và chỉ còn lại những cấu trúc thô của ảnh
Trang 14(a) Ảnh gốc (b)Ảnh đã loại bỏ các chi tiết
Hình 1.5 Loại bỏ các chi tiết ảnh
1.2.1 Thu nhận và lấy mẫu ảnh
Lấy mẫu là quá trình rời rạc hóa một hàm liên tục Chẳng hạn ta xét hàm:
và lấy mẫu nó tại 10 giá trị của , các điểm mẫu cho như trên hình 1.6 Đây là một ví dụ về số lượng mẫu thấp nên không đủ để xây dựng lại hàm Giả sử cũng với hàm đã cho, chúng ta lấy 100 mẫu như hình 1.7 thì có thể dễ dàng xây dựng lại hàm Tất cả các tính chất của hàm có thể được xác định từ các mẫu này
Hình 1 6 Ví dụ lấy mẫu thấp
Trang 15Hình 1 7 Ví dụ lấy mẫu cao
Để đảm bảo rằng chúng ta có đủ số mẫu, yêu cầu chu kỳ lấy mẫu không lớn hơn một nửa chi tiết mịn nhất của hàm
Trở lại việc lấy mẫu một ảnh, chúng ta khảo sát ảnh như một hàm liên tục hai biến và chúng ta muốn lấy mẫu nó để sinh ra một ảnh số Một ví dụ chỉ ra trong hình 1.8, trong đó ảnh (a) có tần số lấy mẫu cao và ảnh (b) có tần số lấy mẫu thấp Trên ảnh (b), các đường biên lởm chởm hình răng cưa Tỉ lệ mẫu tất nhiên sẽ ảnh hưởng tới độ phân giải của ảnh
Hình 1 8 Sự ảnh hưởng của lấy mẫu
Trang 16Để nhận được một ảnh mẫu hóa (Ảnh số), chúng ta có thể bắt đầu với sự biểu diễn liên tục của ảnh Để hiển thị cảnh chúng ta ghi năng lượng phản chiếu từ chúng; chúng ta có thể sử dụng ánh sáng hoặc một nguồn năng lượng khác nào đó
1.2.2 Ảnh và ảnh số
Giả sử chúng ta xét một ảnh, chẳng hạn như ảnh chụp Để đơn giản chúng ta xét ảnh đơn sắc (nghĩa là ảnh gồm các mức xám, và không có màu) Chúng ta khảo sát bức ảnh này như là một hàm hai chiều, trong đó giá trị hàm là độ sáng của ảnh tại mỗi điểm cho trước như chỉ ra trên hình 1.9 Chúng ta có thể giả sử rằng trong một cái ảnh như vậy, giá trị độ sáng có thể là các số thực bất kỳ trong khoảng từ 0.0 ( đen ) đến 1.0 ( trắng ) Miền biến đổi của và rõ ràng phụ thuộc vào ảnh nhưng chúng có thể nhận tất cả các giá trị thực giữa giá trị cực tiểu và cực đại của chúng Một hàm như vậy tất nhiên có thể vẽ đồ thị như chỉ ra trong hình 1.10 Tuy nhiên một đồ thị như vậy sẽ hạn chế việc sử dụng đối với chúng ta theo thuật ngữ phân tích ảnh Tuy nhiên quan niệm ảnh như một hàm sẽ là quan trọng để phát triển
và thực hiện các kỹ thuật xử lý ảnh
Hình 1 9 Ảnh được xem như một hàm hai biến
Trang 17Hình 1 10 Ảnh ở hình 1.9 được vẽ đồ thị như một hàm hai biến
Ảnh số khác với bức ảnh (ảnh thực) ở chỗ giá trị của , và ( , ) đều là các giá trị rời rạc Thông thường chúng chỉ nhận các giá trị nguyên, do đó ảnh chỉ ra trong hình 1.9 sẽ có , biến thiên từ 1 đến 256 và giá trị độ sáng cũng thay đổi từ
0 (đen) đến 255 (trắng) Ảnh số như chúng ta đã thấy ở trên có thể được xem như một mảng lớn gồm các điểm mẫu hóa từ một ảnh liên tục, mỗi mẫu có một độ sáng
đã được lượng tử; các điểm mẫu (pixel) lập lên một ảnh số Các điểm ảnh bao quanh một điểm ảnh cho trước tạo lên một vùng lân cận của nó Vùng lân cận có thể được xác định bởi một hình bao và có thể xem như ma trận bao quanh Chẳng hạn chúng ta có thể nói, vùng lân cận 3 × 3 hoặc vùng lân cận 5 × 7 Ngoại trừ các trường hợp rất đặc biệt, vùng lân cận thường có một số lẻ các hàng và cột; điều này đảm bảo rằng điểm ảnh hiện tại (điểm ảnh đang xét) được nằm ở tâm của vùng lân cận Một ví dụ về vùng lân cận cho trong Hình 1.11 Nếu vùng lân cận có một số chẵn các hàng hoặc cột hoặc cả hai thì khi đó cần phải xác định rõ điểm nào trong vùng lân cận là điểm đang xét
Trang 18Điểm ảnh đang xét
Vùng lân cận
Hình 1 11 Các điểm ảnh và những điểm ảnh lân cận
1.2.3 Một vài ứng dụng
Xử lý ảnh có phạm vi ứng dụng rộng; hầu hết mỗi lĩnh vực trong khoa học và
kỹ thuật đều cần sử dụng các phương pháp xử lý ảnh Ở đây ta sẽ đưa ra một vài lĩnh vực điển hình sử dụng xử lý ảnh
1) Trong y học
- Kiểm tra và phân tích các ảnh chụp X quang, ảnh chụp cắt lớp hoặc ảnh chụp cộng hưởng từ
- Phân tích các ảnh tế bào, ảnh phân bào nhiễm thể
2) Trong nông nghiệp
- Ảnh chụp từ vệ tinh để xác định diện tích, định vị các vùng miền được sử dụng cho nhiều mục đích khác nhau ví dụ như: để khảo sát, phân vùng một cách hợp lý các miền khác nhau cho các cây trồng khác nhau
- Kiểm tra hoa quả và rau xanh – phân biệt các sản phẩm tốt và tươi
3) Trong công nghiệp
- Tự động kiểm tra các thành phẩm trên dây chuyền sản xuất
- Kiểm tra các mẫu giấy
4) Trong thi hành luật
- Phân tích vân tay
- Làm rõ hoặc khử mờ các ảnh chụp từ các camera tốc độ cao
Trang 19- Nhận dạng các đối tượng
1.2.4 Các hướng nghiên cứu của xử lý ảnh
Để thuận lợi ta chia quá trình xử lý ảnh thành các công đoạn nhỏ (lớp xử lý) Mỗi một công đoạn có các các thuật toán xử lý tương ứng để đạt được mục đích tương ứng Một số công đoạn phổ biến trong xử lý ảnh như sau:
Tăng cường ảnh
Tăng cường ảnh được hiểu như là công đoạn xử lý một bức ảnh sao cho ảnh kết quả phù hợp hơn đối với mục đích ứng dụng Quá trình này bao gồm:
- Làm rõ hoặc khử mờ ảnh,
- Làm nổi các đường biên,
- Cải thiện độ tương phản hoặc độ sáng của ảnh,
- Loại bỏ nhiễu
Khôi phục ảnh
Khôi phục ảnh là quá trình phục hồi lại tính trung thực của ảnh từ những ảnh
bị biến dạng bởi các nguyên nhân nào đó trong quá trình thu nhận hoặc trao đổi ảnh, chẳng hạn như:
- Khử mờ do chuyển động gây ra,
- Khử những biến đổi quang học,
- Khử nhiễu tuần hoàn
Phân đoạn ảnh
Phân đoạn ảnh là việc chia nhỏ một bức ảnh thành các phần hoặc cô lập (khoanh vùng) các miền nào đó của ảnh:
- Xác định các đường thẳng, đường cong, hoặc các hình đặc biệt trong ảnh,
- Xác định ô tô, cây cối, nhà cửa và đường xá trong ảnh chụp từ trên cao Các công đoạn xử lý ảnh không tách rời nhau; đầu ra của công đoạn này có thể
là đầu vào vào của công đoạn xử lý tiếp theo Tuy nhiên, một số trường hợp thì chỉ cần một trong những công đoạn nói trên Chẳng hạn như chúng ta chỉ muốn nhìn ảnh rõ hơn (tăng cường ảnh), hoặc loại bỏ nhiễu trên ảnh (khôi phục ảnh)
Trang 201.2.5 Nhiệm vụ xử lý ảnh
Để tiện theo dõi, chúng ta sẽ khảo sát chi tiết các công đoạn của xử lý ảnh trong việc tự động nhận các mã bưu điện trên phong bì thư Dưới đây sẽ chỉ ra nội dung cần thực hiện trong mỗi công đoạn:
Thu nhận ảnh: trước tiên chúng ta cần tạo ra một bức ảnh số từ một phong bì
giấy, điều này được thực hiện bằng cách sử dụng CCD camera hoặc máy quét
Tiền xử lý: đây là bước được thực hiện trước tiên, nhiệm vụ chính là thực
hiện một vài thao tác cơ sở để có được ảnh kết quả thuận lợi hơn cho công việc sau này Trong trường hợp này, có thể bao gồm việc tăng cường độ tương phản, khử nhiễu hoặc xác định những vùng thường chứa mã bưu điện
Phân đoạn: đây là lúc mà chúng ta nhận vùng chứa mã bưu điện; nói cách
khác chúng ta sẽ trích từ ảnh những phần mà nó chứa mã bưu điện
Biểu diễn lại và mô tả: các thuật ngữ này ám chỉ việc trích ra những đặc
trưng riêng cho phép chúng ta phân biệt giữa các đối tượng Ở đây chúng ta sẽ khảo sát các đường cong, các lỗ và các góc Chúng cho phép chúng ta phân biệt các chữ
số khác nhau tạo nên mã bưu điện
Nhận dạng và phân tích: điều này có nghĩa là gán các nhãn cho các đối
tượng dựa trên các bộ mô tả chúng (từ các bước trên) và gán nghĩa cho các nhãn
Do đó chúng ta xác định các chữ số đặc biệt và chúng ta giải thích một dãy bốn chữ
số tại cuối của địa chỉ như là mã bưu điện
Một ví dụ về ảnh nhị phân trên hình 1.4.b, trong ảnh này chỉ có hai màu là trắng đối với biên và đen đối với nền Điều này được mô tả rõ hơn trên hình 1.12
Trang 21Hình 1 12 Ảnh nhị nhân
Mỗi điểm ảnh nhận một mức sáng, thông thường từ 0 (đen) đến 255 (trắng) Miền [0,255] có thể được biểu diễn bởi 8 bít hoặc chính xác 1 byte Đây là một
miền giá trị rất thích hợp cho việc lưu trữ và xử lý trên máy tính
Trong các ứng dụng đặc biệt, ảnh đa cấp xám có thể nhận miền giá trị khác [0,255] nhưng nói chung là lũy thừa của 2 Những ảnh như vậy xuất hiện trong y học (tia X), các ảnh trong công việc in ấn Thực tế cho thấy, với 256 mức xám khác nhau là đủ để nhận biết hầu hết các đối tượng tự nhiên
Một ví dụ về ảnh đa cấp xám là phong cảnh đường phố được chỉ ra trên hình 1.1 được mô tả chi tiết trong hình 1.13 dưới đây
1.3.2 Màu thực hoặc RGB:
Trong trường hợp này ảnh thực sự có nhiều màu; mỗi màu được mô tả bởi các thành phần Red, Green và Blue (RGB) Nếu mỗi thành phần , , có giá trị từ 0 đến 255 thì ảnh sẽ có số màu khác nhau tối đa là 256 Do đó mỗi điểm ảnh được biểu diễn bởi 24 bít nên loại ảnh nàythường được gọi là ảnh 24 bít màu
Ảnh 24 bít màu có thể được biểu diễn bởi ba ma trận ứng với các giá trị Red, Green và Blue đối các điểm ảnh Điều đó có nghĩa là với mỗi điểm ảnh có ba giá trị tương ứng trên ba ma trận , và Một ví dụ chỉ ra như trong hình 1.14
Trang 22Hình 1 13 Ảnh đa mức xám
Hình 1 14 Ảnh màu thực sự
1.3.3 Ảnh chỉ số:
Trong thực tế, nhiều ảnh có số màu khác nhau ít hơn nhiều so với 256 màu
Để tiết kiệm bộ nhớ và thuận lợi trong việc quản lý, đối với loại ảnh này người ta lưu trữ tập màu khác nhau ở một vùng nhớ riêng trong tệp hay còn được gọi là bảng
Trang 23màu Nó đơn giản là danh sách các màu khác nhau được sử dụng trong ảnh Khi đó, giá trị mỗi điểm ảnh là một chỉ số ứng với một màu trong bảng màu Để thuận lợi, nếu như ảnh có ít hơn hoặc 256 màu thì người ta sử dụng 1 byte để mô tả giá trị của các điểm ảnh, giống như định dạng ảnh GIF, BMP (dạng 8 bít màu)
Hình 1.15 chỉ ra một ví dụ, giá trị các điểm ảnh không phải là mức xám mà là chỉ số trong bảng màu Trong hình chẳng hạn, điểm ảnh có nhãn là 6 thì ứng với màu RGB là 0.2627 0.2588, 0.2549
Hình 1 15 Ảnh chỉ số
1.4 Kích thước của tệp ảnh
Các tệp ảnh thường có kích thước lớn Chúng ta sẽ khảo sát lượng thông tin được sử dụng trong các kiểu ảnh khác nhau với các kích thước khác nhau Chẳng hạn giả sử ta xét ảnh nhị phân kích thước 512 × 512, số bít được sử dụng của ảnh này (giả sử không nén và bỏ qua các thông tin tiêu đề ảnh ) là:
Trang 24Nhiều ảnh tất nhiên lớn hơn như vậy, các ảnh vệ tinh có thể gồm vài nghìn điểm mỗi chiều Do vậy, sự chêch lệch về bộ nhớ giữa các dạng ảnh trên là rất lớn Tốn không gian lưu trữ Tốc độ truyền tải chậm hơn nên chúng ta cần phải dùng các phương pháp để nén ảnh
1.5 Sự cảm nhận ảnh
Một trong các mục đích quan trọng của xử lý ảnh là làm cho ảnh hiển thị tốt hơn đối với thị giác của con người Do đó chúng ta cần biết các giới hạn của hệ thống thị giác con người Việc cảm nhận ảnh của con người bao gồm 2 bước cơ bản:
- Thu nhận ảnh bằng mắt,
- Nhận dạng và phân tích ảnh bằng thần kinh thị giác trong bộ não
Sự kết hợp và sự biến đổi của các bước trên ảnh hưởng tới các cách mà chúng
ta nhận biết thế giới bao quanh chúng ta
Có một số thứ thường nảy sinh trong đầu chúng ta:
- Màu nền ảnh hưởng khá nhiều đến khả năng quan sát Một khối xám sẽ xuất hiện dường như tối hơn nếu nó được đặt trong một nền trắng chứ không phải nên đen Điều đó có nghĩa là chúng ta không thể cảm nhận mức xám của ảnh như chúng vốn có mà là phụ thuộc vào môi trường bao quanh chúng Trong hình 1.16, khối vuông đặt trong nền trắng (bên trái) trông có vẻ tối hơn so với chính khối vuông đó đặt trong nền đen (bên phải)
- Chúng ta khó có thể quan sát cường độ xám khi mức độ xám của một ảnh chữ nhật thay đổi một cách liên tục Chẳng hạn trong hình 1.17, ảnh thay đổi liên tục từ sáng sang tối theo chiều từ trái sang phải Tuy nhiên bằng mắt thường rất khó
có thể nhận ra các đường biên ngang bên trái của ảnh này
- Hệ thống thị giác con người thường cảm nhận thiếu chính xác về màu sắc xung quanh đường biên giữa hai miền có mức xám khác nhau Chẳng hạn, chúng ta xét một hình tròn nhỏ màu sáng nằm trên nền vuông màu tối Khi chúng ta đưa mắt
từ nền tối sang miền sáng thì phần biên của miền mà ta quan sát được dường như sáng hơn so với phần biên còn lại Khi ta đưa mắt theo chiều ngược lại thì phần biên của nền mà ta quan sát được dường như tối hơn so với phần biên còn lại
Trang 25Hình 1 16 Một khối vuông cùng mức xám đặt trên nền tối và nền sáng
Hình 1 17 Sự liên tục các mức xám
1.6 Khái niệm về nén ảnh
1.6.1 Nén bảo toàn và không bảo toàn
Như chúng ta đã thấy các tệp ảnh có thể rất lớn nên một vấn đề quan trọng trong việc lưu trữ và truyền tải ảnh là cần phải làm cho kích cỡ các tệp ảnh trở nên nhỏ nhất có thể Trong mục này chúng ta sẽ xét một số phương pháp nén ảnh cơ bản Điều đầu tiên cần phân biệt hai lớp các phương pháp nén ảnh khác nhau: Nén bảo toàn ( giữ được tất cả các thông tin về ảnh) và nén không bảo toàn ( một số thông tin có thể bị mất)
Theo [3], [5] nén bảo toàn thường được sử dụng đối với các bức ảnh có ý nghĩa quan trọng không cho phép bất kì một sự mất mát thông tin nào dù nhỏ nhất Điều đáng tiếc là kiểu nén này thường có tỉ lệ nén không cao Tuy nhiên các phương
Trang 26pháp nén bảo toàn thường sử dụng trong nhiều định dạng ảnh tiêu chuẩn như: BCX, PIF, BMP Theo [6], [7] nén không bảo toàn thường có tỉ lệ nén rất cao nhưng chất lượng ảnh thường bị suy giảm, loại nén này thường sử dụng trong trường hợp cho phép ảnh được biến đổi, ví dụ như trong các ảnh phong cảnh, các ảnh động (video)
1.6.2 Nén ảnh JPEG
Ảnh nén JPEG (Joint Photographic Experts Group) là định dạng ảnh được sử dụng phổ biến trên Internet Sơ đồ nén ảnh JPEG chuẩn Baseline như sau:
Hình 1 188 Sơ đồ nén ảnh JPEG chuẩn Baseline
Theo Hình 1.18, trước tiên ảnh được chuyển đổi từ hệ màu RGB sang YCbCr, trong đó, Y là cường độ sáng, Cb và Cr là màu của ảnh Giá trị của Y, Cb, Cr được phân hoạch thành các khối (khối dữ liệu)
Các khối dữ liệu được nhóm lại thành các MCU (Minimum Coded Unit) Tùy theo tỷ lệ nén mà mỗi MCU có thể gồm 1, 2 hoặc 4 khối Do mắt người ít nhạy cảm với các thành phần màu nên các khối Cb, Cr trong một MCU được thay thế bằng một khối đại diện Trên Hình 1.18 minh họa kiểu MCU gồm bốn khối Y, một khối
Cb và một khối Cr
Trang 27Áp dụng phép biến đổi DCT đối với mỗi khối dữ liệu trong các MCU để nhận được các khối DCT như Hình 1.19
Hình 1 20 Bảng lượng tử của thành phần Y ứng với tỷ lệ nén 15:1 trong Photoshop CS5
Các khối DCTLT nhận được thường có nhiều phần tử 0 tập trung ở góc dưới phải, tính chất này chính là đặc trưng của ảnh nén JPEG Hình 1.21 là một khối DCTLT của ảnh Pepper ứng với bảng lượng tử Hình 1.20
Trang 28Hình 1.21 Một khối DCTLT của ảnh Pepper
Tiếp theo, các hệ số của mỗi khối được quét theo đường zigzag và nén theo các phương pháp Run-length, Huffman để nhận được dãy bít dữ liệu ảnh Dãy này được lưu trữ trong tệp ảnh JPEG cùng với một số thông tin phụ trợ khác như: bảng
mã Huffman, bảng lượng tử, kiểu MCU và kích thước ảnh
Trong qui trình nén JPEG, hai phép nén Run-length và Huffman thuộc nhóm phương pháp nén bảo toàn Do đó, những lược đồ nhúng tin có khả năng khôi phục được khối DCTLT gốc từ khối DCTLT chứa tin thì sẽ khôi phục được ảnh gốc
1.6.2.1 Phép biến đổi DCT
Các công thức lượng giác
Hai công thức cơ bản:
cos(a+b) = cos(a)cos(b) – sin(a)sin(b)
sin(a+b) = sin(a)cos(b) + cos(a)sin(b)
Để chứng minh 2 công thức trên, chỉ cần sử dụng:
+ Định nghĩa cos (kề/chéo), sin(đối/chéo)
+ Vẽ trục toạ độ và các góc a, b rồi dựng các tam giác vuông và áp dụng định nghĩa cos và sin
+ Dùng nhận xét: Hai góc có các cạnh vuông góc từng cặp thì bằng nhau
Các công thức suy từ 2 công thức cơ bản:
cos(a)cos(b) = (1/2) ( cos(a+b) + cos(a-b))
sin(a)sin(b) = (1/2) ( cos(a-b) - cos(a+b))
sin(a)cos(b) = (1/2) (sin(a+b) + sin(a-b))
cos(a) + cos(b) = 2 cos((a+b)/2) cos((a-b)/2)
sin(a) + sin(b) = 2 sin((a+b)/2) cos((a-b)/2)
Các công thức sử dụng trong phép biến đổi DCT:
cos(a)cos(b) = (1/2) ( cos(a+b) + cos(a-b)) (I.1)
cos2(a) = (1/2) (1 + cos(2a)) (I.2)
) sin(
2
) 2 sin(
) 1 2 cos(
1
Nh h
i S
Trang 29Chứng minh Theo công thức thứ 3 của I.3, ta có:
) 0 sin(
) 2 sin(
) 2 sin ) 1 ( 2 (sin
) 1 2 cos(
) sin(
2
* ) sin(
2 1
h i
h i h S
h N
i S
2
) sin(
) sin(
2
) 2 sin(
0
0 ) 2
1 2 cos(
* ) 2
1 2 cos(
N
i
k N
i j
0
2 2 ) ) 2
1 2 (cos(
N
i
N j
2
1 2 cos(
2
1 2 ) ) 2 )(
2
1 2 ( 1 ( 2
0 1
0
N j N
i N
j N
i os c
N
i N
i
2
1 2 cos(
) ,
Bổ đề 4
Trang 30là ma trận của phép biến đổi cô sin rời rạc (DCT)
Bổ đề 5 (Công thức tính các phần tử của D) Từ định nghĩa của các ma trận C
và G, suy ra :
N
i g
j i D
j
)2
12cos(
1),
Phép biến đổi cô sin rời rạc từ ma trận X sang ma trận Y
Dạng ma trận:
Y D T XD
Trang 31) , (
* ) , (
* ) , ( )
, )(
(
* ) , ( )
, (
N
k
N
l N
k
T
j l D l k X i k D j
k XD k i D j
i Y
N
l i
N
k l
k X g
g j i Y
N
k N
l j i
) 2
1 2 cos(
) 2
1 2 cos(
) , ( 1
) , (
1
0 1
Phép biến đổi ngược từ Y sang X
Dạng ma trận: Do D-1 = DT nên, từ công thức biến đổi thuận
0 1
0
)2
12cos(
)2
12(),()
,(
N
k N
l k l
l N
j k
N
i os c g g
l k Y j
i
1.6.2.2 Thuật toán nén
Đầu vào: Ảnh mầu RGB hoặc đa cấp xám
Đầu ra: Tệp ảnh JPEG
Quá trình nén nén JPEG được thực hiên theo trình tự sau:
Bước 1 Chia ảnh thành các cụm khối (MCU), gọi k là số khối 8x8 trong một cụm khối Thường dùng 4 kiểu MCU:
0x11 – mỗi cụm khối gồm một khối 8x8 (k=1)
0x21 – mỗi cụm khối gồm 2 khối 8x8 xếp theo hàng -chiều ngang (k=2) 0x12 – mỗi cụm khối gồm 2 khối 8x8 xếp theo cột -chiều dọc (k=2)
0x22 – mỗi cụm khối gồm 4 khối 8x8 xếp theo hàng và cột (k=4)
Trang 32Ghi chú: Có thể bổ sung một số hàng phía dưới và một số cột bên phải để đảm bảo mỗi cụm khối có đủ k khối
Bước 2 Trong mỗi cụm khối:
+ Chuyển từ chuyển mô hình mầu từ R, G, B sang Y, Cb, Cr
+ Y được dịch chuyển sang trái 128 đơn vi, tức là:
Y = Y – 128
Như vậy có k khối Y, k khối Cb và k khối Cr
Bước 3 Giảm mẫu:
+ Giữ nguyên k khối Y
+k khối Cb ghép thành một
+ k khối Cr ghép thành một
Cách ghép như sau:
+ Nếu kiểu MCU là 0x11 thì không ghép
+ Nếu kiểu MCU là 0x21 thì ghép theo cột: mỗi cột của khối kết quả bằng trung bình cộng của 2 cột tương ứng trong 2 khối gốc
+ Nếu kiểu MCU là 0x12 thì ghép theo hàng: mỗi hàng của khối kết quả bằng trung bình cộng của 2 hàng tương ứng trong 2 khối gốc
+ Nếu kiểu MCU là 0x22 thì ghép theo phần tử: mỗi phần tử của khối kết quả bằng trung bình cộng của 4 phần tử tương ứng trong 4 khối gốc
Như vậy sau khi giảm mẫu thì trong một cụm khối gồm k khối Y, một khối Cb
Bước 6 Các đường zigzac DCT lượng tử được nguyên hóa, rồi được nén Runlength-Huffman để tạo dữ liệu ảnh dạng dãy bit
Trang 33Bước 7 Dữ liệu ảnh được tổ chức theo từng cụm khối theo thứ tự từ trên xuống và từ phải sang
1.6.2.3 Thuật toán giải nén
Đầu vào: Tệp ảnh JPEG
Đầu ra: Ảnh không nén
Bước 1: Giải nén dãy bit dữ liệu ảnh để được các khối DCT lượng tử
Bước 2: Áp dụng phép ngược lượng tử hóa đối với các khối DCT lượng tử để nhận được các khối DCT
Bước 3: Áp dụng ngược DCT đối với các khối DCT để nhận được khối ảnh Y, Cb,Cr Bước 4: Chuyển hệ màu Y, Cb,Cr sang RGB
1.6.2.4 Một số nhận xét về thuật toán nén ảnh JPEG
- Tỷ lệ nén khá cao, độ phức tạp của thuật toán lớn nên thời gian nén chậm, không phù hợp với những biết bị di động có cấu hình thấp, giá rẻ
Trang 34Chương 2 NÉN ẢNH DỰA TRÊN PHƯƠNG PHÁP 5 MÔ ĐUN VÀ DWT
2.1 Phương pháp nén 5 mô đun
2.1.1 Thuật toán nén
Theo [4] trong hầu hết các hình ảnh, có một đặc điểm chung đó là các điểm ảnh lân cận có tương quan với nhau Do đó, việc tìm kiếm một hình ảnh ít tương quan là một trong những nhiệm vụ quan trọng nhất
Một trong những khái niệm cơ bản trong nén là giảm sự dư thừa và không phù hợp Điều này có thể được thực hiện bằng cách loại bỏ trùng lặp từ ảnh Human Visual System (HVS) Hệ thống cảm nhận hình ảnh của mắt người không thể nhận thấy một số bộ phận của tín hiệu, tức là bỏ qua những bộ phận này sẽ không được chú ý của người nhận
Điều này là không phù hợp Ngoài ra, cho hình ảnh hai mức, nguyên tắc nén hình ảnh cho chúng ta biết rằng các điểm ảnh lân cận có xu hướng tương tự như nhau Nguyên tắc này có thể được mở rộng nếu các điểm ảnh hiện tại có bất kỳ màu sắc (đen hoặc trắng), thì các điểm ảnh trước và sau có xu hướng giống nhau Do đó, chúng ta đề xuất kỹ thuật được gọi là phương pháp 5 mô đun (FMM) bao gồm phân chia hình ảnh thành các khối 8x8 Rõ ràng, chúng ta biết rằng mỗi điểm ảnh là một
số từ 0 đến 255 cho mỗi mảng Red, Green, và Blue Vì vậy, nếu chúng ta có thể biến đổi mỗi số trong phạm vi đó thành một số chia hết cho 5, thì điều này sẽ không ảnh hưởng đến HVS Nói về mặt toán học, bất kỳ số chia cho 5 sẽ cung cấp cho một phần dư còn lại khoảng 0-4 (ví dụ, 15 mod 5 là 0, 17 mod 5 là 2, 201 mod 5 là 1,
187 mod 5 là 2 và như vậy) Ở đây, đề xuất một công thức mới để chuyển đổi bất kỳ
số nằm trong khoảng 0-255 về một số mà khi chia cho 5 kết quả là luôn luôn nằm giữa 0-4 Vì vậy, các điểm ảnh 200, 201, và 202 là như nhau cho mắt người Do đó,
ý tưởng của thuật toán đã được đề xuất để biến đổi mỗi điểm ảnh trong khoảng
0-255 vào những con số sau đây 0,5,10,15,20,25,30,35,40, ., 200, 205.210.215, .,
250, 255, (tức là bội số của 5)
Trang 35Ý tưởng cơ bản trong FMM là kiểm tra toàn bộ các điểm ảnh trong khối 8×8 và biến đổi mỗi điểm ảnh thành một số chia hết cho 5 theo các điều kiện sau đây
X {0, 255}
D = X mod 5
D’ = 0 nếu D = {0,1,2}
D’ = 5 nếu D ={3,4}
Theo điều kiện trên ta có bảng như sau:
Bảng 2 1 Giá trị mới thu được bằng FMM
Trang 36(0,5,10,15,20, , 255) Nếu chúng ta chia những con số 5 một lần nữa chúng ta sẽ
có được phạm vi còn lại 0-51
Thuật toán nén có thể được mô tả theo 2 phương án:
+ Phương án 1: Không chia khối
Cho ảnh A cấp m x n
Bước 1: Biến đổi A B để các phần tử đều chia hết cho 5
Bước 2: Chia các phần tử của B cho 5 ta được C
C =
5
B
Các phần tử của C có thể biểu diễn bằng 6 bít
Bước 3: Ghi C lên tệp
+ Phương án 2: Chia khối
Ma trận ảnh A chia thành các khối 8 x 8
Xét một khối con X
Bước 1: Biến đổi các giá trị X Y để các phần tử có thể chia hết cho 5 Bước 2: Chia Y cho 5, ta nhận được Z
Z= Y/5 Khối Z có thể biểu diễn bằng 6 bít
Bước 3: Trừ các phần tử của Z cho
= min Z W= Z - 0
Vậy để xác định W, ta cần các giá trị sau
Wij nhỏ bằng S bít, với S trong khoảng từ 3-5
S Wij
Trang 37Bảng 2 2 Khối ma trận gốc kích thước 8x8
Biến đổi X để các phần tử chia hết cho 5, ta được khối Y như bảng 2.3
Bảng 2 3 Biến đổi khối 8x8 sử dụng FMM
Chia khối Y cho 5, ta nhận được Z như bảng 2.4
Bảng 2 4 Chia FMM khối Y