Giới thiệu
Chúng tôi so sánh việc nén hình ảnh WebP và JPEG dựa trên bộ mã hoá mới mà chúng tôi phát hành trong libwebp
. Mục tiêu là chạy một tập hợp các thử nghiệm dễ lặp lại bằng cách sử dụng các công cụ có sẵn công khai, đồng thời so sánh khả năng nén hình ảnh bằng WebP và JPEG.
Nghiên cứu so sánh WebP trước đó của chúng tôi tập trung vào việc đánh giá một số lượng lớn hình ảnh và được thực hiện trên các nguồn JPEG được thu thập thông tin từ web. JPEG là một định dạng nén có tổn hao và đưa các cấu phần phần mềm nén vào nguồn. Ngoài ra, ban đầu chúng tôi đã sử dụng Tỷ lệ tín hiệu trên độ nhiễu cao nhất hay PSNR làm chỉ số chất lượng. PSNR có một số nhược điểm khi được dùng làm chỉ số chất lượng hình ảnh. Dựa trên ý kiến phản hồi của cộng đồng, chúng tôi sẽ tiến hành các thử nghiệm đối với hình ảnh PNG, bao gồm cả những hình ảnh có trong một số bộ thử nghiệm tiêu chuẩn. Trong nghiên cứu này, chúng tôi sử dụng tính tương đồng về cấu trúc (hoặc SSIM) làm chỉ số chất lượng cho nghiên cứu này. SSIM được coi là chỉ số chất lượng hình ảnh tốt hơn.
Phương pháp
Chúng tôi mô tả hai loại đánh giá. Trong trường hợp đầu tiên, chúng tôi nghiên cứu khả năng nén bổ sung mà WebP đạt được ở cùng mức chất lượng là JPEG. Cụ thể, chúng tôi tạo ra hình ảnh WebP có chất lượng bằng với chất lượng của hình ảnh WebP (theo chỉ mục SSIM) như hình ảnh JPEG, sau đó so sánh kích thước tệp của hình ảnh WebP và JPEG. Trong trường hợp thứ hai, chúng tôi sẽ phân tích biểu đồ SSIM so với số bit trên mỗi pixel (bpp) cho WebP và JPEG. Những biểu đồ này cho thấy sự đánh đổi tốc độ biến dạng đối với WebP và JPEG.
Tập dữ liệu cho các thử nghiệm bao gồm ảnh PNG. Những hình ảnh này được thu thập từ các bộ hình ảnh kiểm thử tiêu chuẩn có thể truy cập công khai cũng như một bộ sưu tập lớn các hình ảnh PNG được thu thập thông tin từ web.
Mỗi thử nghiệm bao gồm việc chạy một tập hợp các lệnh. Chỉ các công cụ dòng lệnh được cung cấp công khai mới được dùng để đảm bảo các thử nghiệm có thể tái sử dụng một cách hợp lý cho người khác. Công cụ dòng lệnh được dùng cho thử nghiệm này là:
identify
vàconvert
là các công cụ dòng lệnh thuộc ImageMagick. Chúng tôi sử dụng phiên bản 6.5.7 cho bản phân tích này. Chúng tôi dùngconvert
để chuyển đổi giữa định dạng PNG và PPM. Chúng tôi sử dụngidentify
để trích xuất thông tin về chiều rộng và chiều cao của hình ảnh.cwebp
vàdwebp
là các công cụ dòng lệnh nằm trong thư việnlibwebp
mà chúng tôi đã phát hành vào quý 1 năm 2011. Chúng tôi đã sử dụng phiên bản 0.1.2 của thư viện. Chúng tôi sử dụngcwebp
vàdwebp
để mã hoá và giải mã hình ảnh WebP. Chúng tôi đã sử dụng các tham số mã hoá và giải mã mặc định của các công cụ này.cjpeg
vàdjpeg
là các công cụ dòng lệnh thuộc thư việnlibjpeg
. Chúng tôi đã sử dụng phiên bản 6b của thư viện. Chúng tôi đã sử dụngcjpeg
vàdjpeg
để mã hoá và giải mã hình ảnh JPEG. Chúng tôi đã sử dụngcjpeg
cùng với cờ-optimize
để tối ưu hoá kích thước tệp. Chúng tôi đặt tất cả các thông số khác về giá trị mặc định.
Chất lượng hình ảnh được đo bằng SSIM. Như đã lưu ý trước đó, SSIM thường được chấp nhận là chỉ số chất lượng tốt hơn PSNR. Để tính toán chỉ mục SSIM, chúng tôi đã sử dụng phương thức triển khai công khai trong C++. Người đọc có thể tải tập lệnh Python mà chúng tôi sử dụng trong các thử nghiệm từ kho lưu trữ mã để tham khảo.
Tập dữ liệu hình ảnh
Chúng tôi đã chọn các tập dữ liệu để đánh giá các bộ sưu tập hình ảnh thử nghiệm tiêu chuẩn cũng như trên một tập hợp nhiều hình ảnh. Sau đây là danh sách các tập dữ liệu được dùng trong các thử nghiệm.
Lenna: hình ảnh được sử dụng rộng rãi trên Lenna (512 x 512 pixel).
Kodak: 24 hình ảnh trong bộ hình ảnh màu thực của Kodak.
Tecnick: 100 hình ảnh từ bộ sưu tập có tại Tecnick.com. Chúng tôi sử dụng 100 hình ảnh màu RGB có kích thước gốc.
Image_crawl: Để kiểm tra một số lượng lớn hình ảnh, chúng tôi đã thu thập một mẫu hình ảnh PNG ngẫu nhiên từ cơ sở dữ liệu thu thập dữ liệu trên web của Google Tìm kiếm hình ảnh. Hầu hết hình ảnh PNG đã thu thập dữ liệu là biểu tượng, hình ảnh đồ hoạ, biểu đồ, tài liệu đã quét, v.v. Tuy nhiên, hầu hết hình ảnh trong bộ sưu tập kiểm thử tiêu chuẩn đều giống như ảnh chụp thay vì hình ảnh do máy tính tạo. Để tập dữ liệu này về bản chất tương tự như các bộ thử nghiệm tiêu chuẩn, chúng tôi đã chạy thuật toán phát hiện khuôn mặt đối với những hình ảnh PNG này và chỉ xem xét các hình ảnh đó (khoảng 11.000 hình ảnh) cho thử nghiệm đã vượt qua quy trình kiểm tra phát hiện này.
Thử nghiệm 1: WebP so với JPEG ở chỉ số SSIM bằng nhau
Trong thử nghiệm này, chúng tôi tạo hình ảnh JPEG và WebP với giá trị SSIM tương đương và đo lường tỷ lệ kích thước tệp. Các bước thử nghiệm như sau:
Nén hình ảnh PNG nguồn thành JPEG với tham số chất lượng cố định Q và ghi SSIM ở giữa hình ảnh PNG nguồn và hình ảnh JPEG nén.
Nén cùng một hình ảnh nguồn vào WebP bằng một thông số chất lượng giúp đạt được SSIM đã ghi ở trên gần nhất có thể.
Chúng tôi đã chạy 2 bước trên trên tất cả các hình ảnh trong một tập dữ liệu, sau đó đo lường kích thước tệp trung bình và SSIM cho các hình ảnh JPEG và WebP.
Các bảng sau đây cho thấy kết quả của thử nghiệm này đối với 3 giá trị khác nhau (50, 75 và 95) của thông số chất lượng JPEG Q. Các tham số chất lượng 50 và 95 lần lượt biểu thị độ nén hình ảnh ở tốc độ bit thấp và cao. Chúng tôi cũng đưa tham số chất lượng JPEG 75 vào vì đây là mức chất lượng đề xuất chung cho ảnh JPEG.
Bảng 1: Kích thước tệp trung bình của WebP và JPEG cho cùng một chỉ mục SSIM tương ứng với JPEG Q=50
Lenna | Giày Kodak | Tecnik | Image_crawl | |
---|---|---|---|---|
WebP: Kích thước tệp trung bình (SSIM trung bình) |
17,4 KB (0,841) |
31,0 KB (0,898) |
92,4 KB (0,917) |
6,5 KB (0,901) |
JPEG: Kích thước tệp trung bình (SSIM trung bình) |
23,5 KB (0,840) |
42,7 KB (0,897) |
124,6 KB (0,916) |
9,9 KB (0,899) |
Tỷ lệ giữa WebP và kích thước tệp JPEG | 0.74 | 0,72 | 0.74 | 0.66 |
Bảng 2: Kích thước tệp trung bình của WebP và JPEG cho cùng một chỉ số SSIM tương ứng với JPEG Q=75
Lenna | Giày Kodak | Tecnik | Image_crawl | |
---|---|---|---|---|
WebP: Kích thước tệp trung bình (SSIM trung bình) |
26,7 KB (0,864) |
46,5 KB (0,932) |
139 KB (0,939) |
9,9 KB (0,930) |
JPEG: Kích thước tệp trung bình (SSIM trung bình) |
37,0 KB (0,863) |
66 KB (0,931) |
191 KB (0,938) |
14,4 KB (0,929) |
Tỷ lệ giữa WebP và kích thước tệp JPEG | 0,72 | 0,70 | 0.73 | 0,69 |
Bảng 3: Kích thước tệp trung bình của WebP và JPEG cho cùng một chỉ số SSIM tương ứng với JPEG Q=95
Lenna | Giày Kodak | Tecnik | Image_crawl | |
---|---|---|---|---|
WebP: Kích thước tệp trung bình (SSIM trung bình) |
74,3 KB (0,910) |
118 KB (0,978) |
356 KB (0,970) |
23,4 KB (0,969) |
JPEG: Kích thước tệp trung bình (SSIM trung bình) |
104 KB (0,907) |
162 KB (0,976) |
492 KB (0,970) |
31,3 KB (0,968) |
Tỷ lệ giữa WebP và kích thước tệp JPEG | 0.71 | 0.73 | 0,72 | 0,75 |
Từ các bảng trên, chúng ta có thể quan sát thấy rằng WebP tăng thêm 25% – 34% mức nén so với JPEG ở mức bằng hoặc chỉ số SSIM tốt hơn một chút.
Thử nghiệm 2: Đồ thị SSIM so với BPP cho WebP và JPEG
Chúng tôi nghiên cứu sự đánh đổi tốc độ biến dạng của JPEG và WebP. Cụ thể, chúng tôi nghiên cứu biểu đồ SSIM so với số bit trên mỗi pixel (bpp) cho JPEG và WebP. Chúng tôi lấy hình ảnh PNG nguồn, nén hình ảnh đó thành JPEG và WebP bằng cách sử dụng tất cả các giá trị chất lượng (0-100) có thể có. Sau đó, đối với mỗi giá trị chất lượng, chúng tôi sẽ vẽ biểu đồ SSIM và bpp đạt được cho JPEG và WebP. Các hình ảnh sau đây minh hoạ các biểu đồ SSIM và bpp như vậy cho 3 hình ảnh được chọn từ 3 tập dữ liệu công khai mà chúng tôi đã sử dụng.
Hình 1: SSIM và BPP của Lenna
Hình 2: SSIM so với BPP cho kodim19.png từ tập dữ liệu Kodak
Hình 3: SSIM so với BPP cho RGB_OR_1200x1200_061.png từ tập dữ liệu Tecnick
Ngoài ra, chúng tôi cũng nghiên cứu hành vi trung bình của biểu đồ SSIM so với bpp cho các tập dữ liệu của Kodak và Tecnick. Để lập biểu đồ hành vi trung bình, chúng tôi nén tất cả hình ảnh trong một tập dữ liệu bằng WebP và JPEG với 100 giá trị chất lượng khác nhau. Sau đó, chúng tôi biểu diễn giá trị trung bình của SSIM và bpp cho từng giá trị chất lượng. Tập dữ liệu thu thập dữ liệu hình ảnh bao gồm các hình ảnh không đồng nhất không được thêm vào quá trình tổng hợp dữ liệu này. Các biểu đồ sau đây cho thấy hành vi trung bình của SSIM và bpp tương ứng cho các tập dữ liệu Kodak và Tecnick.
Hình 4: SSIM so với BPP cho tập dữ liệu Kodak
Hình 5: SSIM so với BPP cho tập dữ liệu Tecnick
Nhìn chung, từ các biểu đồ trên, chúng ta có thể thấy rằng WebP luôn yêu cầu ít hơn số bit trên mỗi pixel so với JPEG để đạt được cùng chỉ số SSIM.
Kết luận
Nghiên cứu này đánh giá tệp nén WebP so với JPEG. Chúng tôi quan sát thấy kích thước tệp WebP trung bình nhỏ hơn 25% – 34% so với kích thước tệp JPEG ở chỉ mục SSIM tương đương. Biểu đồ SSIM so với bpp cho thấy WebP luôn yêu cầu ít bit hơn trên mỗi pixel so với JPEG cho cùng một chỉ số SSIM. Những kết quả này cho thấy WebP có thể cải thiện đáng kể khả năng nén so với JPEG.
1 Huỳnh-Thu, Q.; Ghanbari, M. (2008). "Phạm vi hiệu lực của PSNR trong quá trình đánh giá chất lượng hình ảnh/video". Thư điện tử 44: 800-801.doi:10.1049/el:20080522.
2 Z. Wang, A. C. Bovik, H. R. Sheikh và E. P. Simoncelli, "Đánh giá chất lượng hình ảnh: Từ đo lường lỗi đến tính tương đồng về cấu trúc", Xử lý hình ảnh, Giao dịch IEEEEE, Tập 13, Số 4, trang 600-612, 2004.