Nghiên cứu so sánh khả năng nén ảnh mất dữ liệu của định dạng JPEG và WebP

hệ số nén của jpg và webp

Giới thiệu

Chúng tôi thực hiện so sánh đánh giá ảnh WebP và JPEG dựa trên bộ mã hóa mới mà chúng tôi phát hành trong libwebp. Mục tiêu là thực hiện chạy một tập lặp lại dễ dàng sử dụng các thử nghiệm sử dụng công cụ sẵn có công khai và so sánh ảnh nén đạt được từ WebP bà JPEG.

Nghiên cứu so sánh trước đây của chúng tôi về WebP tập trung đánh giá một số lượng lớn ảnh và được tiến hành trên nguồn JPEG thu được qua quét dữ liệu từ web. JPEG là định dạng nén mất dữ liệu và kiểu nén có lịch sử lâu đời. Thêm vào đó, chúng tôi ban đầu sử dụng Peak Singnal-to-Noise Ration (PSNR/Đỉnh tỷ lệ tín hiệu trên tạp âm) làm chỉ số đo đạc chất lượng. PSNR có một số điểm yếu kém khi sử dụng làm chỉ số đo chất lượng ảnh. Dựa trên phản hồi từ cộng đồng, chúng tôi thực hiện thử nghiệm trên ảnh PNG bao gồm hình ảnh có sẵn trong một số bộ kiểm tra tiêu chuẩn (standard test suites). Chúng tôi sử dụng Structural Similarity hay còn gọi là SSIM làm tiêu chuẩn chất lượng trong nghiên cứu này. SSIM được xem là chỉ số tốt hơn để đánh giá chất lượng hình ảnh.

Phương pháp nghiên cứu

Chúng tôi mô tả hai cách đá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 tiết kiệm được với cùng chất lượng như JPEG. Cụ thể thì chúng tôi tạo ra ảnh WebP có cùng chất lượng (cùng chỉ số SSIM) như ảnh JPEG và sau đó so sánh kích cỡ file của WebP và ảnh JPEG. Trong trường hợp thứ hai, chúng tôi phân tích SSIM và số lượng bít trên mỗi pixel (bpp/bits per pixel) của WebP và JPEG. Các sơ đồ này cho thấy sự đánh đổi biến dạng tỷ lệ (rate-distortion trade off) cho WebP và JPEG.

Bộ dữ liệu cho thử nghiệm này bao gồm các ảnh PNG. Các ảnh này được lấy từ các bộ kiểm tra ảnh tiêu chuẩn công khai cũng như một số lượng lớn ảnh PNG quét được từ internet.

Mỗi thử nghiệm bao gồm việc chạy một tập hợp lệnh. Chỉ những công cụ dòng lệnh (command line) được cung cấp công khai được sử dụng, điều này là cần thiết để thử nghiệm có khả năng được thực hiện lặp lại cho những ai khác muốn tiến hành. Các công cụ dòng lệnh được sử dụng cho thử nghiệm này bao gồm:

  • identifyconvert là các công cụ dòng-lệnh nằm trong ImageMagick. Chúng tôi đã sử dụng phiên bản 6.5.7 cho phân tích này. Chúng tôi sử dụng convert để chuyển qua lại giữa đị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 ảnh.
  • cwebpdwebp là công cụ dòng lệnh nằm trong thư viện libwebp được chúng tôi phát hành trong Q1 năm 2011. Chúng tôi sử dụng thư viện phiên bản 0.1.2. Chúng tôi sử dụng cwebpdwebp để mã hóa và giải mã các ảnh WebP. Chúng tôi sử dung các thông số mã hóa và giải mã mặc định của những công cụ này.
  • cjpegdjpeg là các công cụ dòng lệnh nằm trong 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ã hóa và giải mã ảnh JPEG. Chúng tôi sử dụng cjpeg với cờ -optimize để tối ưu hóa cho kích cỡ dung lượng. Chúng tôi thiết lập tất cả các thông số khác với các giá trị mặc định của chúng.

Chất lượng của ảnh được đo bằng cách sử dụng SSIM. Như được lưu ý từ trước, SSIM nhìn chung được chấp nhận là chỉ số chất lượng tốt hơn so với PSNR. Với cách tính chỉ số SSIM, chúng tôi đã sử dụng triển khai có sẵn công khai trong C++. Bạn đọc có thể tải mã Python chúng tôi sử dụng trong thử nghiệm từ kho lưu trữ mã ở phần chú thích.

Bộ dữ liệu ảnh

Chúng tôi chọn bộ dữ liệu để đánh giá là các bộ kiểm tra hình ảnh tiêu chuẩn cũng như một tập hợp lớn các ảnh khác. Danh sách dưới đây là bộ dữ liệu được sử dụng trong thử nghiệm.

  1. Lena: với ảnh Lenna được sử dụng rộng rãi (kích cỡ 512 x 512 pixle)
  2. Kodak: 24 ảnh từ bộ ảnh màu thật của Kodak
  3. Tecnick: 100 ảnh từ bộ sưu tập được cung cấp tại trang Tecnick.com. Chúng tôi đã sử dụng 100 ảnh màu RGB có kích cỡ nguyên bản.
  4. Ảnh quét trên internet: Để kiểm tra số lượng lớn ảnh, chúng tôi thu thập một mẫu ngẫu nhiên ảnh PNG từ công cụ tìm kiếm ảnh của Google. Hầu hết các ảnh PNG quét được là icons, đồ họa, bảng biểu, tài liệu quét, vân vân. Tuy nhiên hầu hết các ảnh trong bộ kiểm tra tiêu chuẩn là ảnh, chứ không phải được máy tính tạo ra (như icon,..). Để làm cho bộ dữ liệu này có mức độ tự nhiên tương tự với bộ kiểm tra tiêu chuẩn, chúng tôi đã chạy một thuật toán phát hiện khuôn mặt cho các ảnh PNG này và chỉ đánh giá những ảnh đó (khoảng 11 ngàn bức) cho thử nghiệm (tức là những ảnh vượt qua được kiểm tra phát hiện khuôn mặt).

Thử nghiệm 1: WebP và JPEG với cùng chỉ số SSIM

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

  1. Nén ảnh nguồn PNG sang JPG với tham số chất lượng cố định Q và ghi lại SSIM vào giữa ảnh nguồn PNG và ảnh nén JPEG.
  2. Nén cùng nguồn ảnh sang WebP với tham số chất lượng đạt được SSIM được ghi ở trên càng tương đồng với JPEG càng tốt.

Chúng tôi chạy hai bước trên cho tất cả ảnh trong tệp dữ liệu và sau đó so sánh kích cỡ file trung bình và SSIM cho ảnh JPEG và WebP.

Bảng bên dưới cho thấy kết quả của thử nghiệm này với ba giá trị khác nhau (50, 75 và 95) của thông số chất lượng Q của JPEG. Chỉ số chất lượng 50 và 95 biểu thị tương ứng ảnh nén ở tỷ lệ bít thấp và cao. Chúng tôi cũng bao gồm ảnh có chỉ số chất lượng JPEG 75 vì đây là mức chất lượng thường được khuyến nghị cho ảnh của JPEG.

Bảng 1: Kích cỡ file trung bình của WebP và JPEG với cùng chỉ số SSIM tương ứng với JPEG Q=50

LennaKodakTecnikImage_crawl
WebP: Kích cỡ file 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 cỡ file 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ệ kích cỡ giữa WebP so với JPEG0.740.720.740.66

Bảng 2: Kích cỡ file trung bình của WebP và JPEG với cùng chỉ số SSIM tương ứng với JPEG Q=75

LennaKodakTecnikImage_crawl
WebP: Kích cỡ file trung bình
(SSIM trung bình)
26.7 KB
(0.864)
46.5 KB
(0.932)
139.0 KB
(0.939)
9.9 KB
(0.930)
JPEG: Kích cỡ file trung bình
(SSIM trung bình)
37.0 KB
(0.863)
66.0 KB
(0.931)
191.0 KB
(0.938)
14.4 KB
(0.929)
Tỷ lệ kích cỡ giữa WebP so với JPEG0.720.700.730.69

Bảng 3: Kích cỡ file trung bình của WebP và JPEG với cùng chỉ số SSIM tương ứng với JPEG Q=95

LennaKodakTecnikImage_crawl
WebP: Kích cỡ file trung bình
(SSIM trung bình)
74.3 KB
(0.910)
118.0 KB
(0.978)
356.0 KB
(0.970)
23.4 KB
(0.969)
JPEG: Kích cỡ file 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ệ kích cỡ giữa WebP so với JPEG0.710.730.720.75

Từ bảng trên chúng ta có thể quan sát thấy rằng WebP đưa ra hệ số nén tốt hơn từ 25-34% so với JPEG với chỉ số SSIM tương đương hoặc tốt hơn một chút.

Thử nghiệm 2: Biểu đồ SSIM và BPP cho ảnh WebP và JPEG

Chúng tôi nghiên cứu chỉ số méo đánh đổi của JPEG và WebP. Cụ thể chúng tôi nghiên cứu biểu đồ SSIM và số lượng bít trên mỗi pixel cho ảnh JPEG và WebP. Chúng tôi lấy ảnh nguồn PNG, nén nó sang JPEG và WebP sử dụng tất cả giá trị chất lượng có thể (từ 0 – 100). Sau đó với mỗi giá trị chất lượng, chúng tôi phác họa SSIM và bpp đạt được cho JPEG và WebP. Các biểu đồ bên dưới cho thấy SSIM và bpp cho 3 ảnh được chọn từ 3 bộ dữ liệu công khai chúng tôi sử dụng.

Hình 1: SSIM và BPP của Lenna

ảnh Lenna - số lượng bít trên mỗi pixel

Hình 2 2: SSIM và BPP của ảnh kodim19.png từ dữ liệu của Kodak

Kodak dữ liệu mẫu

Hình 3: SSIM và BPP của RGB_OR_1200x1200_061.png từ dữ liệu Tecnick 

tecnick

Ngoài ra, chúng tôi cũng nghiên cứu hành vi trung bình của SSIM và bpp cho dữ liệu Kodak và Tecnick. Để phác họa biểu đồ cho hành vi trung bình, chúng tôi nén tất cả ảnh trong bộ dữ liệu sử dụng WebP và JPEG ở 100 giá trị chất lượng khác nhau. Sau đó chúng tôi phác họa giá trị trung bình của SSIM và bpp cho từng giá trị chất lượng. Tệp quét dữ liệu ảnh bao gồm các bức hình không đồng nhất không được đưa vào dữ liệu tổng hợp này. Biểu đồ bên dưới cho thấy hành vi trung bình của SSIM và bpp tương ứng cho Kodak và Tecnick.

Hình 4: SSIM và BPP của bộ dữ liệu Kodak

kodak

Hình 5: SSIM và BPP cho tệp dữ liệu Tecnick

tecnick

Nói tóm lại, từ các biểu đồ trên chúng ta có thể nhận thấy là WebP lúc nào cũng chỉ cần ít bít trên mỗi pixel hơn so với JPEG để đạt được cùng chỉ số SSIM (chất lượng ảnh).

Kết luận

Nghiên cứu đánh giá khả năng nén của WebP trong so sánh với JPEG. Chúng tôi quan sát thấy trung bình WebP có kích cỡ nhỏ hơn từ 25-34% so với ảnh JPEG với cùng chỉ số SSIM (chất lượng ảnh). Phác đồ SSIM và bpp cho thấy nhất quán rằng WebP yêu cầu ít bít trên mỗi pixel hơn so với JPEG với cùng chỉ số SSIM. Những kết quả này chỉ ra rằng, WebP có thể cung cấp khả năng nén tốt hơn đáng kể so với JPEG.

(Dịch từ bài viết WebP Compression Study – website: Developers Google)

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top