So sánh chuẩn JPEG2000 với JPEG và các chuẩn nén ảnh

Một phần của tài liệu Một số phương pháp nén ảnh và xây dựng chương trình thử nghiệm (Trang 49)

khác

Một tính năng quan trọng và là ưu điểm rõ nét nhất của JPEG2000 so với JPEG cũng như các chuẩn nén ảnh khác như MPEG 4 VTC hay JPEG - LS... là 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á nghĩa là 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. Nếu xét về sự tồn tại của hai kỹ thuật này thì JPEG cũng có khả năng nén ảnh có tổn thất và không tổn thất thông tin. Tuy nhiên với JPEG thì cơ chế mã hoá với hai

dạng này là khác nhau và rất khó để sử dụng cả hai dạng này cùng lúc cho

cùng một ứng dụng. Do đó, có thể thấy rằng JPEG có tính mềm dẻo hơn bất

43

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, ảnh bên trái được nén theo JPEG còn ảnh bên phải được nén theo JPEG2000.

JPEG JPEG 2000

JPEG JPEG 2000 (a) (b)

Hình 2.12: So sánh chất lượng ảnh được nén bởi JPEG(a) và JPEG2000(b)

Tính năng ưu việt thứ hai của JPEG2000 so với JPEG chính là 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 được tớ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, chúng ta có: (b là số bít dùng biểu diễn một pixel trên ảnh gốc)

  20 log10 2b 1 RMSE PSNR dB       

44

Trong đó MSE (Mean square error) là sai số bình phương trung bình, PSNR (peak to signal to noise ratio) là tỉ số tín hiệu trên nhiễu

đỉnh. MSE thường được gọi là phương sai lượng tử q2 (quantization error variance). MSE giữa ảnh gốc và ảnh khôi phục được tính như sau:

     2 2 , 1 , , q j k MSE f i k g i k N     

Trong đó tổng lấy theo j, k tính cho tổng tất cả các điểm ảnh trong ảnh và N là số điểm ảnh trong ảnh. RMSE là căn bậc 2 của MSE .

Với hai ảnh ở hình 2.12, sự so sánh về tham số PSNR cho trên bảng

bên dưới. Để 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ố bít/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 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.

Bit per pixel 0.125 0.50 2.00

Ảnh 1 theo JPEG 24.42 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

Bảng 2.3: Bảng so sánh về tham số PSNR của JPEG2000 và JPEG

Tính năng ưu việt thứ 3 của JPEG2000 so với JPEG là chuẩn nén ảnh

này 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 mà chúng ta đã nói tới ở phần mã hoá ảnh theo (adsbygoogle = window.adsbygoogle || []).push({});

JPEG2000.

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 để

45

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 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 - Region of Interest) mà chúng ta đã đề cập trong phần mã hoá ảnh theo JPEG2000.

Hình 2.13: Tính năng 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 hiển thị, tuy nhiên với JPEG2000, do đặc trưng của phép mã hóa 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ó.

46

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM 3.1. Phát biểu bài toán

Trong thực tế ta thấy nhiều vấn đề trong việc lưu trữ và truyền tải ảnh. Dưới đây là ví dụ về lưu trữ ảnh số và truyền đi với đường truyền 9600 bps để thấy rõ sự cần thiết của việc nén ảnh:

• Ảnh đa cấp xám hay ảnh 256 màu có kích thước 800x600, 8 bit/điểm ảnh, cần 3.840.000 bit lưu trữ và mất 6.67 phút để truyền.

• Ảnh màu RGB (24 bit/điểm ảnh) cùng độ phân giải như vậy cần hơn 10 triệu bit để lưu trữ và 20 phút để truyền.

• Một phim âm bản có kích thước 24x36 mm (35 mm) chia bằng các khoảng cách nhau 12 m, vào khoảng 3000x2000 điểm, 8 bit / pixel, yêu cầu 48 triệu bit cho lưu giữ ảnh và 83 phút để truyền.

Vì vậy nén ảnh nhằm giảm đi những chi phí trong việc lưu trữ ảnh và chi phí thời gian để truyền ảnh đi trong truyền thông nhưng vẫn đảm bảo được chất lượng của ảnh.

3.2. Phương pháp tiến hành 3.2.1. Phương pháp Huffman tĩnh 3.2.1. Phương pháp Huffman tĩnh

Dựa vào lý thuyết đã trình bày ở chương 2 với đầu vào là tệp tin nguồn f (.png, .bmp, .tiff, .tif, .jpg) sau khi nén tệp tin nén là fn (.hmc). Giải nén với tệp tin nguồn f (.hmc) sau khi thực hiện giải nén sẽ lưu tập tin dưới một trong các định dạng (.png, .bmp, .tiff, .tif, .jpg), em đã xây dựng chương trình thử nghiệm có các giao diện ở các bước chạy như sau:

47

Hình 3.1: Giao diện chính của phương pháp nén Huffman tĩnh

48

Hình 3.3: Load ảnh để nén phương pháp Huffman tĩnh

49

Hình 3.5: Chọn ảnh để giải nén phương pháp Huffman tĩnh

50

Hình 3.7: Chọn vị trí lưu ảnh sau giải nén (Huffman tĩnh) * Kết quả đạt được

Chương trình chạy tương đối ổn định hỗ trợ định dạng ảnh .bmp, .jpg, .png, .tif, .tiff. Các file ảnh được nén theo phương pháp Huffman tĩnh sẽ được lưu với định dạng chuỗi HUFFMAN (*.hmc). Các file ảnh giải nén phải có định dạng *.hmc mới thực hiện giải nén bằng phương pháp Huffman tĩnh được. Sau khi giải nén ta sẽ chọn định dạng lưu ảnh bất kì trong các định dạng: .bmp, .jpg, .png, .tif, .tiff. Phương pháp Huffman tĩnh cho kết quả nhanh chóng và chất lượng ảnh khi giải nén không thay đổi.

3.2.2. Phương pháp JPEG

Từ lý thuyết đã trình bày ở chương 2 với tệp tin nguồn f (.png, .bmp, .tiff, .tif, .jpg), tệp tin nén (.jpeg) chương trình thử nghiệm được xây dựng với giao diện như sau:

51

Hình 3.8: Giao diện chính của phương pháp nén JPEG (adsbygoogle = window.adsbygoogle || []).push({});

52

Hình 3.10: Ảnh nén được chọn phương pháp JPEG

53

Hình 3.12: Sau khi chọn vị trí lưu ảnh * Kết quả đạt được

Chương trình chạy ổn định hỗ trợ các định dạng ảnh .bmp, .jpg, .png, .tiff, .tif. Các file ảnh được nén sẽ được lưu với định dạng chuỗi JPEG (*. jpeg). Phương pháp JPEG cho kết quả nhanh chóng và chất lượng ảnh nén tốt.

54

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

1. Kết luận

Sau một thời gian làm việc, với sự nỗ lực của bản thân và được sự hướng dẫn tận tình của thầy giáo TS. Trịnh Đình Vinh, em đã hoàn thành bài khóa luận và xây dựng chương trình thử nghiệm thành công bằng ngôn ngữ CSharp. Từ những kiến thức đã nghiên cứu, tìm hiểu em rút ra một số kết luận sau: các thuật toán đều có ưu nhược điểm khác nhau và đem lại kết quả chương trình khác nhau. Tốc độ nén và hiệu quả nén của các phương pháp khác nhau do giải thuật và chất lượng ảnh kết quả yêu cầu là khác nhau.

Phương pháp mã hóa độ dài loạt RLE là một trong các lựa chọn cho nén dữ liệu ảnh hỗ trợ cho các định dạng ảnh .tiff, .bmp. Tuy nhiên nếu tập tin được chọn có dung lượng lớn phương pháp này không những không làm bé tập tin mà còn làm phình to chúng.

Phương pháp mã hóa LZW có các ưu điểm là hệ số nén tương đối cao, trong tập tin nén không cần phải chứa bảng mã. Nhược điểm của thuật toán này là tốn nhiều bộ nhớ, khó thực hiện dựa trên các mảng đơn giản (bé hơn 64KB).

Phương pháp mã hóa Huffman tĩnh có ưu điểm là hệ số nén tương đối cao, phương pháp thực hiện tương đối đơn giản, đòi hỏi ít bộ nhớ, có thể xây dựng dựa trên các mảng bé hơn 64KB. Nhược điểm của nó là phải chứa cả bảng mã vào tập tin nén thì phía nhận mới có thể giải mã được do đó hiệu suất nén chỉ cao khi ta thực hiện nén các tập tin lớn. Nhược điểm của phương pháp nén này có thể khắc phục bằng cách thực hiện nén một lần nhiều tập tin chuẩn bị truyền, làm như vậy coi như chúng ta đang thực hiện nén một tập tin lớn.

Phương pháp mã hóa JPEG cho phép nén ảnh với tỉ số nén lên đến 80:1 hoặc cao hơn, hiển thị các hình ảnh đầy đủ màu hơn cho định dạng di động mà kích thước file lại nhỏ hơn. JPEG cũng được sử dụng rất nhiều trên Web.

55

Lợi ích chính của chúng là chúng có thể hiển thị các hình ảnh với màu chính xác (chúng có thể lên đến 16 triệu màu), điều đó cho phép chúng được sử dụng tốt nhất cho các hình ảnhchụp và hình ảnh minh họa có số lượng màu lớn. Nhược điểm của phương pháp này là được nén bằng thuật toán lossy (mất dữ liệu). Điều này có nghĩa rằng hình ảnh được nén sẽ bị mất một số chi tiết khi chuyển sang định dạng JPEG. Đường bao giữa các khối màu có thể xuất hiện nhiều điểm mờ, và các vùng sẽ mất sự rõ nét, tỉ số nén càng cao thì sự mất mát thông tin trên ảnh JPEG càng lớn. Nói một cách khác, định dạng JPEG thực hiện bảo quản tất cả các thông tin màu trong hình ảnh đó, tuy nhiên với các hình ảnh chất lượng màu cao như hình ảnh chụp thì điều này sẽ không bị ảnh hưởng gì.

Từ những cơ sở lý thuyết đã tìm hiểu được em đã tiến hành cài đặt chương trình cho phương pháp nén ảnh: HUFFMAN tĩnh, JPEG trên ngôn ngữ lập trình CSharp. Đối với phương pháp Huffman tĩnh chương trình chỉ thực hiện nén với các định dạng: .png, .bmp, .tiff, .tif, .jpg; đối với phương pháp JPEG chương trình thực hiện nén với các định dạng ảnh tĩnh. So sánh kết quả nén của 2 phương pháp đã tiến hành cài đặt thử nghiệm: Huffman tĩnh và JPEG cho thấy phương pháp nén JPEG cho kết quả nén với tỉ lệ nén cao hơn với cùng một bức ảnh.

2. Hướng phát triển nghiên cứu

Một số hướng nghiên cứu trong tương lai:

• Thực hiện giải nén đối với Phương pháp JPEG.

• Khóa luận đề cập đến các phương pháp nén ảnh tĩnh mà chưa ứng dụng chúng cho âm thanh, video, đặc biệt là biến đổi Wavelet của chuẩn JPEG2000 do đó việc đi sâu nghiên cứu tìm hiểu các họ của Wavelet là rất cần thiết.

• Nghiên cứu thêm về các giải thuật SPIHT, EZW và các ứng dụng của chúng.

56

• Các phương pháp nén được trình bày trong khóa luận đã ra đời từ nhiều năm trước do đó cần nghiên cứu những cải tiến đối với mỗi phương pháp để nâng cao hiệu quả nén.

Sau một thời gian nghiêm túc tìm hiểu và nghiên cứu chương trình “MỘT SỐ PHƯƠNG PHÁP NÉN ẢNH VÀ XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM” đã được hoàn thành. Qua đây em xin chân thành cảm ơn thầy giáo TS. Trịnh Đình Vinh đã trực tiếp hướng dẫn em để em hoàn thiện khóa luận này.

Mặc dù đã cố gắng để hoàn thành khóa luận và đã có những thành công nhất định nhưng vì thời gian có hạn và khả năng còn hạn chế nên chương trình chưa thực sự được như mong muốn. Em rất mong sự đóng góp ý kiến của các thầy cô để khóa luận của em được hoàn thiện hơn.

57

TÀI LIỆU THAM KHẢO

1. Lương Mạnh Bá, Nguyễn Thanh Thủy (2002), Nhập Môn Xử lý ảnh số, Nxb Khoa học và Kỹ thuật.

2. TS Phạm Việt Bình – TS Đỗ Đăng Toàn, Xử lý ảnh.

3. Võ Đức Khánh (2003),Giáo trình xử lý ảnh, Nxb Thống kê, Hà Nội 4. Nguyễn Kim Sách (1997), Xử lý ảnh và video số , Nxb Khoa học và Kỹ (adsbygoogle = window.adsbygoogle || []).push({});

thuật , Hà Nội.

5. http://diendan.congdongcviet.com/showthread.php?t=19594

6. http://www.JPEG.org/JPEG2000.html

Một phần của tài liệu Một số phương pháp nén ảnh và xây dựng chương trình thử nghiệm (Trang 49)