Nghiên cứu nén WebP

Giới thiệu

Chúng tôi đánh giá khả năng nén hình ảnh WebP và JPEG so với 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 bộ thử nghiệm dễ dàng lặp lại bằng cách sử dụng các công cụ có sẵn công khai và so sánh tệp nén hình ảnh mà WebP và JPEG đạt được.

Nghiên cứu so sánh WebP trước đây 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 tiến hành trên các nguồn JPEG được thu thập dữ liệu từ web. JPEG là một định dạng nén 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 so với độ nhiễu cao nhất hoặc 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 của hình ảnh. Dựa trên ý kiến phản hồi của cộng đồng, chúng tôi tiến hành thử nghiệm hình ảnh PNG, bao gồm cả hình ảnh có trong một số bộ thử nghiệm chuẩn. Chúng tôi sử dụng trong nghiên cứu này về 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ố có 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 về nén bổ sung mà WebP đạt được ở cùng mức chất lượng JPEG. Cụ thể, chúng tôi tạo những hình ảnh WebP có chất lượng tương đương (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 phân tích biểu đồ SSIM so với số bit trên mỗi pixel (bpp) cho WebP và JPEG. Các biểu đồ này cho thấy sự đánh đổi sự chênh lệch về giá đối với WebP và JPEG.

Tập dữ liệu cho các thử nghiệm bao gồm hình ảnh PNG. Những hình ảnh này được lấy từ các bộ hình ảnh kiểm thử chuẩn có thể truy cập công khai cũng như một tập hợp lớn hình ảnh PNG được thu thập từ web.

Mỗi thử nghiệm bao gồm chạy một tập lệnh. Chỉ những công cụ dòng lệnh có sẵn công khai mới được dùng để đảm bảo các thử nghiệm có thể tái tạo một cách hợp lý cho người khác. Các công cụ dòng lệnh được sử dụng cho thử nghiệm này là:

  • identifyconvert 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 đã sử dụng convert để chuyển đổi giữa các định dạng PNG và PPM. Chúng tôi sử dụng identify để trích xuất thông tin chiều rộng và chiều cao của hình ảnh.

  • cwebpdwebp là các công cụ dòng lệnh thuộc thư viện libwebp 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ụng cwebpdwebp để mã hoá và giải mã hình ảnh WebP. Chúng tôi đã sử dụng các thông số mã hoá và giải mã mặc định của các công cụ này.

  • cjpegdjpeg là các công cụ dòng lệnh thuộc thư viện libjpeg. Chúng tôi đã sử dụng phiên bản 6b của thư viện. Chúng tôi đã sử dụng cjpegdjpeg để mã hoá và giải mã hình ảnh JPEG. Chúng tôi đã sử dụng cjpeg 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 tham số khác thành 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. Đối với phép tính chỉ mục SSIM, chúng tôi đã sử dụng cách triển khai công khai trong C++. Trình đọc có thể tải xuống các 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 chuẩn cũng như trên một tập hợp hình ảnh lớn. Dưới đây là danh sách các tập dữ liệu dùng trong thử nghiệm.

  1. Lenna: Hình ảnh Lenna được sử dụng rộng rãi (512 x 512 pixel).

  2. Kodak: 24 hình ảnh trong bộ hình ảnh màu thực của Kodak.

  3. Tecnick: 100 hình ảnh từ bộ sưu tập có sẵn tại Tecnick.com. Chúng tôi đã sử dụng 100 hình ảnh có kích thước màu RGB gốc.

  4. Image_crawl: Để kiểm tra nhiều hình ảnh, chúng tôi đã thu thập mẫu hình ảnh PNG ngẫu nhiên từ cơ sở dữ liệu thu thập dữ liệu của Google Tìm kiếm hình ảnh trên Google. Hầu hết hình ảnh PNG đã thu thập dữ liệu là biểu tượng, đồ họa, biểu đồ, tài liệu đã quét, v.v. Tuy nhiên, hầu hết các hình ảnh trong bộ sưu tập thử nghiệm chuẩn đều giống như ảnh, thay vì hình ảnh do máy tính tạo. Để bộ dữ liệu này tương tự về bản chất với các bộ kiểm thử tiêu chuẩn, chúng tôi đã chạy một thuật toán phát hiện khuôn mặt trên các hình ảnh PNG này và chỉ xem xét những hình ảnh đó (khoảng 11.000) cho thử nghiệm này. Kết quả vượt qua bài kiểm tra phát hiện này.

Thử nghiệm 1: WebP so với JPEG ở Chỉ số SSIM bằng

Trong thử nghiệm này, chúng tôi tạo ra các hình ảnh JPEG và WebP tại các giá trị SSIM tương đương và đo lường tỷ lệ kích thước tệp. Các bước của thử nghiệm như sau:

  1. Nén hình ảnh PNG nguồn thành JPEG với tham số chất lượng cố định Q và ghi lại SSIM giữa hình ảnh PNG nguồn và hình ảnh JPEG đã nén.

  2. Nén cùng một hình ảnh nguồn vào WebP bằng tham số chất lượng giúp đạt được SSIM đã ghi ở trên càng chặt chẽ càng tốt.

Chúng tôi đã chạy hai bước trên cho tất cả hình ảnh trong một tập dữ liệu, sau đó đo kích thước tệp trung bình và SSIM cho hình ảnh JPEG và WebP.

Các bảng sau trình bày kết quả của thử nghiệm này cho ba giá trị khác nhau (50, 75 và 95) của tham số chất lượng JPEG trong Q. Các tham số chất lượng 50 và 95 đại diện cho việc nén hình ảnh ở tốc độ bit thấp và cao tương ứng. Chúng tôi cũng đã đưa vào tham số chất lượng JPEG 75 vì đây là mức chất lượng thường được đề xuất cho hình ảnh JPEG.

Bảng 1: Kích thước tệp trung bình cho WebP và JPEG cho cùng một chỉ mục SSIM tương ứng với JPEG Q=50

Lenna Tiếng Kodak Tiếng Tecnik Hình ảnh_thu thập dữ liệu
WebP: Kích thước tệp trung bình
(SSIM trung bình)
17,4 KB
(0,841)
31 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ệ WebP với 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 cho WebP và JPEG cho cùng một chỉ mục SSIM tương ứng với JPEG Q=75

Lenna Tiếng Kodak Tiếng Tecnik Hình ảnh_thu thập dữ liệu
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 KB
(0,863)
66 KB
(0,931)
191,0 KB
(0,938)
14,4 KB
(0,929)
Tỷ lệ WebP với 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 cho WebP và JPEG cho cùng một chỉ mục SSIM tương ứng với JPEG Q=95

Lenna Tiếng Kodak Tiếng Tecnik Hình ảnh_thu thập dữ liệu
WebP: Kích thước tệp trung bình
(SSIM trung bình)
74,3 KB
(0,910)
118 KB
(0,978)
356,0 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ệ WebP với 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 WebP tăng thêm 25% – 34% độ nén so với JPEG ở chỉ số SSIM bằng hoặc cao hơn một chút.

Thử nghiệm 2: Biểu đồ SSIM so với Biểu đồ BPP cho WebP và JPEG

Chúng tôi nghiên cứu sự đánh đổi về tỷ lệ biến dạng tốc độ 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 ta lấy hình ảnh PNG nguồn, nén thành JPEG và WebP bằng cách sử dụng tất cả các giá trị chất lượng có thể có (0-100). Sau đó, đối với mỗi giá trị chất lượng, chúng tôi vẽ biểu đồ SSIM và bpp đạt được cho JPEG và WebP. Các số liệu sau cho thấy biểu đồ SSIM so với các biểu đồ bpp 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 so với BPP của Lenna

ssim so với bpp cho Lenna

Hình 2: SSIM so với BPP đối với kodim19.png từ tập dữ liệu Kodak

ssim so với bpp cho Kodim19

Hình 3: SSIM so với BPP đối với RGB_OR_1200x1200_061.png từ tập dữ liệu Tecnick

ssim so với bpp dành cho RGB_OR_1200x1200

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 biểu đồ bpp cho các tập dữ liệu 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 tập dữ liệu bằng cách sử dụng WebP và JPEG ở 100 giá trị chất lượng khác nhau. Sau đó, chúng tôi lập biểu đồ giá trị trung bình của SSIM và bpp cho mỗi 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 liên quan đến tổng hợp dữ liệu này. Các biểu đồ sau cho thấy hành vi trung bình của SSIM và bpp tương ứng với 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

ssim so với bpp cho Kodak

Hình 5: SSIM so với BPP cho tập dữ liệu Tecnick

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ể quan sát thấy rằng WebP liên tục yêu cầu ít bit hơn mỗi pixel so với JPEG để đạt được cùng chỉ mục SSIM.

Kết luận

Nghiên cứu này đã đánh giá khả năng nén WebP so với JPEG. Chúng tôi nhận thấy rằng 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 tại chỉ mục SSIM tương đương. Biểu đồ SSIM so với bpp cho thấy WebP liên tục yêu cầu ít bit hơn mỗi pixel so với JPEG cho cùng một chỉ mục 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 đánh giá chất lượng hình ảnh/video" Chữ cái điện tử 44: 800-801.doi:10.1049/el:20080522.

2 Z. Vương, A. C. Bovik, H. R Sheikh và E. Nghìn tỷ Simoncelli, "Đánh giá chất lượng hình ảnh: Từ đo lường lỗi đến sự tương đồng về cấu trúc," Xử lý hình ảnh, Giao dịch IEEE, Tập 13, Vấn đề 4, trang 600-612, 2004.