การศึกษาเชิงเปรียบเทียบ

การศึกษาเปรียบเทียบ WebP, JPEG และ JPEG 2000 เดือนกันยายน 2010

หมายเหตุ: เราได้ทําการศึกษาเบื้องต้นนี้กับ WebP เวอร์ชันแรกที่เราเผยแพร่ ซึ่งใช้ไลบรารี libvpx นอกจากนี้ รูปภาพต้นทางยังเป็นรูปภาพ JPEG ที่เราทำการ Crawl จากเว็บ จากความคิดเห็นของชุมชน เราได้ทำการศึกษาใหม่กับ libwebp เวอร์ชัน 0.1.2 โดยเริ่มจากรูปภาพแบบไม่เสียรายละเอียด (PNG) เป็นแหล่งที่มา การศึกษาใหม่นี้มีผลแทนการศึกษานี้

ทีม WebP ได้ทําการศึกษาเปรียบเทียบวิธีการบีบอัดรูปภาพ 3 วิธีกับชุดรูปภาพ 1 ล้านรูปที่เลือกแบบสุ่ม เป้าหมายของการศึกษานี้คือเพื่อวัดการบีบอัดที่ทำได้โดยใช้วิธีการเหล่านั้น และวิเคราะห์ข้อดีข้อเสียระหว่างขนาดรูปภาพกับการบีบอัด

ระบบใช้วิธีการบีบอัด 3 วิธี ได้แก่ WebP, JPEG 2000 และ Re-JPEG กับรูปภาพ JPEG จำนวน 900,000 รูปในชุดข้อมูล รูปภาพ JPEG ได้รับการบีบอัดอีกครั้งด้วย Re-JPEG เพื่อให้แต่ละรูปภาพมีค่าอัตราส่วนสัญญาณต่อสัญญาณรบกวน (PSNR) สูงสุดตามเป้าหมายมากที่สุด ทีมวิเคราะห์รูปภาพหลังจากบีบอัดแล้ว

นอกเหนือจากการศึกษาขนาดใหญ่แล้ว ทีมยังตรวจสอบรูปภาพแบบสุ่ม 100 รูปด้วยตนเอง และพบว่าในกรณีส่วนใหญ่ WebP ให้คุณภาพของภาพที่น่าพอใจ

สรุป

WebP บีบอัดได้ดีกว่า JPEG หรือ JPEG 2000 โดยรวม ประโยชน์ของการลดขนาดไฟล์จะสูงมากสำหรับรูปภาพขนาดเล็ก ซึ่งเป็นรูปภาพที่พบได้ทั่วไปบนเว็บ

ชุดข้อมูล

ชุดข้อมูลที่ใช้ในการศึกษาคือคอลเล็กชันรูปภาพ 1 ล้านรูปที่ดึงตัวอย่างแบบสุ่มจากที่เก็บรูปภาพที่ทำการ Crawl จากเว็บ ตารางต่อไปนี้แสดงการแจกแจงรูปภาพประเภทต่างๆ ในชุดข้อมูล

ประเภท จำนวน
JPEG ~900,000
PNG ~47,000
GIF ~47,000
อื่นๆ ~6 พัน

การออกแบบการทดสอบ

การทดสอบนี้ทําใน 2 ระยะ ดังนี้

  1. ทีมใช้ WebP กับรูปภาพที่มี PSNR เป้าหมาย 42 ทีมปรับพารามิเตอร์คุณภาพ (QP) สำหรับโปรแกรมเข้ารหัส WebP จนได้ผลลัพธ์ที่ใกล้เคียงกับ 42 มากที่สุดสำหรับรูปภาพหนึ่งๆ ดังนั้น PSNR จริงที่ทำได้สำหรับแต่ละรูปภาพจึงไม่จำเป็นต้องเท่ากับ 42 เสมอไป

  2. ทีมใช้ค่า PSNR สำหรับรูปภาพที่บีบอัดด้วย WebP เป็น PSNR เป้าหมายสำหรับรูปภาพ JPEG 2000 และ Re-JPEG นอกจากนี้ ยังทำการค้นหาบรรทัดในพารามิเตอร์คุณภาพของรูปภาพ JPEG 2000 และ JPEG เพื่อให้ได้ค่า PSNR ที่ใกล้เคียงกับเป้าหมายมากที่สุด

ผลลัพธ์การบีบอัดจริงจะวัดเป็นเปอร์เซ็นต์โดยใช้สูตรต่อไปนี้

compression_percentage = 100 * (original_image.length - compressed_image.length) / original_image.length

ผลลัพธ์

การทดสอบให้ผลลัพธ์ต่อไปนี้สำหรับอัตราส่วนการบีบอัดเชิงลบและเชิงบวก

อัตราส่วนการบีบอัดที่ไม่เป็นลบ

ทีมจะไม่ลงโทษวิธีการใดวิธีการหนึ่งหากวิธีการนั้นทำให้ขนาดรูปภาพเพิ่มขึ้นหลังจากการบีบอัด กล่าวคือ ระบบจะถือว่า compression_percentage เป็น 0 เมื่อ compressed_image.length มากกว่า original_image.length

อัตราขยายการบีบอัดเชิงลบ

ทีมอนุญาตให้ผลลัพธ์เปอร์เซ็นต์การบีบอัดเป็นลบเพื่อให้เข้าใจประสิทธิภาพดิบของโปรแกรมบีบอัดต่างๆ ได้ดียิ่งขึ้น

ต่อไปนี้คือเปอร์เซ็นต์การบีบอัดเฉลี่ยที่ได้จากแต่ละวิธี

ประเภท PSNR เฉลี่ยที่ได้รับ % การบีบอัดเฉลี่ย
(อัตราส่วนการบีบอัดที่ไม่ใช่ค่าลบ)
% การบีบอัดเฉลี่ย
(อัตราขยายการบีบอัดเชิงลบ)
WebP 39.38 41.30 39.80
JPEG 2000 39.49 27.67 9.71
เปลี่ยนเป็น JPEG อีกครั้ง 39.36 22.37 14.62

เมื่ออนุญาตให้ใช้อัตราส่วนการบีบอัดเชิงลบ ประสิทธิภาพเฉลี่ยของ JPEG 2000 จะต่ำกว่าของ JPEG ปัญหานี้อาจเกิดจากอาร์ติแฟกต์ความถี่สูงที่มีอยู่ในรูปภาพ JPEG ซึ่งอาร์ติแฟกต์เหล่านี้อาจส่งผลให้การบีบอัดไม่เป็นไปตามที่คาดหวัง

การติดตั้งใช้งาน Kakadu ที่ใช้ในการทดสอบเพื่อแปลงเป็น JPEG 2000 แปลงรูปภาพประมาณ 240,000 รูปภาพไม่สำเร็จ

JPEG 2000 มีเปอร์เซ็นต์การบีบอัดต่ำกว่า Re-JPEG สาเหตุหลักคือผลลัพธ์ JPEG 2000 เป็นการบีบอัดเชิงลบสำหรับรูปภาพจำนวนมาก ด้วยเหตุนี้ รูปภาพ JPEG จึงมีคะแนนการบีบอัดโดยรวมต่ำกว่า

รูปภาพต่อไปนี้แสดงกราฟการแจกแจงสำหรับทั้ง 3 วิธี

รูปที่ 1: การกระจายประชากรตามขนาดรูปภาพ

กราฟแสดงให้เห็นว่ารูปภาพส่วนใหญ่มีขนาดเล็ก โดยปกติแล้วความถี่ของรูปภาพที่มีขนาดใหญ่กว่า 500,000 จะน้อยกว่า 100

รูปที่ 2: เปอร์เซ็นต์การบีบอัดสำหรับรูปภาพ WebP, JPEG และ JPEG 2000

กราฟนี้แสดงให้เห็นว่าเนื้อหาของรูปภาพที่บีบอัดด้วย WebP ได้รับการบีบอัดที่ดีกว่าการบีบอัด JPEG อีกครั้งและ JPEG 2000 นอกจากนี้ รูปภาพที่บีบอัดด้วย WebP มีการบีบอัดเชิงบวกมากกว่ารูปภาพอื่นๆ

รูปที่ 3: การเปรียบเทียบขนาดรูปภาพและเปอร์เซ็นต์การบีบอัด

กราฟนี้แสดงให้เห็นว่า WebP บีบอัดได้ดีกว่ารูปแบบอื่นๆ โดยเฉพาะสำหรับรูปภาพขนาดเล็ก