วิเคราะห์ข้อดีและข้อเสียของเทคโนโลยี WebP (2021)
(eng.aurelienpierre.com)- แม้การรองรับ WebP ของ WordPress และเบราว์เซอร์หลัก ๆ จะทำให้การย้ายไลบรารีภาพถ่ายทำได้ง่ายขึ้น แต่ในภาพถ่ายจริง ความเสียหายอย่าง posterization และ ringing กลับเห็นเด่นชัดกว่า การลดขนาดไฟล์
- Google และปลั๊กอิน WordPress หลายตัวแนะนำว่า WebP มีขนาดเล็กกว่า JPEG และ
lossy 80ก็เพียงพอแล้ว แต่หากแปลง JPEG เดิมกลับเป็น WebP อาจเกิด การบีบอัดแบบสูญเสียที่สะสมซ้อนกัน - สำหรับภาพที่ ไล่โทนอย่างนุ่มนวล มีความสำคัญ เช่น ภาพพอร์ตเทรตสตูดิโอและฟิล์มสแกน แม้ WebP 95~96 ก็ให้ผลลัพธ์ใกล้เคียงกับ JPEG 85+noise หรือหนักกว่า
- การเปรียบเทียบค่า SSIM เฉลี่ยและขนาดไฟล์เฉลี่ยไม่สามารถรับประกัน การรับมือกรณีแย่ที่สุด ที่ช่างภาพต้องการได้ และสำหรับเว็บไซต์ที่ปรับจูนคุณภาพแยกตามภาพได้ยาก ความเสถียรสำคัญกว่า
- หากเป็นไซต์ที่คุณภาพภาพสำคัญ แนวทางที่เป็นจริงกว่าคือคง JPEG 85~90 ไว้, เพิ่ม dithering หรือ noise ละเอียด ๆ, หลีกเลี่ยงการ re-encode JPEG เดิมเป็น WebP และใช้ CDN·ภาพแบบ responsive·lazy loading
ความคาดหวังจากการนำ WebP มาใช้และปัญหาจริง
- เมื่อ WordPress ยอมรับการอัปโหลด MIME type
image/webpและหลังเดือนกันยายน 2020 เบราว์เซอร์หลัก ๆ สามารถแสดง WebP ได้ การย้ายไลบรารีภาพถ่ายไปเป็น WebP จึงทำได้ง่ายขึ้น - WebP ดูเป็นตัวเลือกที่น่าสนใจจากการเปรียบเทียบว่ามีขนาดเล็กกว่า JPEG 15% ที่คุณภาพเท่ากัน และตัวเลขของ Google ที่ระบุว่าเล็กกว่า 25~34%
- ใน WordPress มีปลั๊กอินจำนวนมากที่แปลงไลบรารีสื่อเดิมเป็น WebP และหลายตัวทำงานในรูปแบบ SaaS โดยแปลงบนเซิร์ฟเวอร์ภายนอก
- ปลั๊กอินและเอกสารทางเทคนิคบางส่วนระบุว่าคุณภาพ WebP ที่สูงกว่า
lossy 80ไม่จำเป็นสำหรับภาพถ่ายส่วนใหญ่ แต่ตัวอย่างโลโก้ไม่สามารถเป็นตัวแทนปัญหาของงานภาพถ่ายจริงได้เพียงพอ
ความเสียหายเมื่อบีบอัด JPEG เดิมเป็น WebP อีกครั้ง
- หลังจากแปลงสื่อ WordPress ทั้งหมดด้วยคุณภาพ
lossy 80พบว่ามี วงแหวนแบบ posterized ปรากฏบนพื้นหลัง - ภาพที่เกิดปัญหาเป็นภาพสแกนฟอร์แมตกลาง 6×7cm ที่ถ่ายด้วยฟิล์ม Ilford Delta 400 บนกล้อง Mamiya RB 67 และต้นฉบับเริ่มจากสแกน 16 บิต
- เกรนเงินฮาไลด์ของ Delta 400 ทำหน้าที่คล้าย dithering ตามธรรมชาติ ช่วยป้องกัน posterization ในพื้นที่นุ่ม ๆ ได้ดี แต่หลังแปลงเป็น WebP การไล่โทนกลับแตกเป็นขั้น ๆ
- JPEG ต้นฉบับคุณภาพ 85 ก็ไม่ได้สะอาดสมบูรณ์ แต่ยังดีกว่าไฟล์ WebP ที่แปลงแล้ว และผลกระทบหลักมาจากการซ้อนการบีบอัดแบบสูญเสียของ WebP เพิ่มอีกชั้นบน JPEG ที่ถูกบีบอัดแบบสูญเสียอยู่แล้ว
- Google Page Speed Insights และปลั๊กอินหลายตัวแนะนำหรือทำให้ flow การ re-encode แบบนี้ทำได้ง่าย แต่ความเสียหายของคุณภาพจริงไม่ใช่สิ่งที่ปลอดภัย
การทดลองเปรียบเทียบกับภาพถ่ายจริง
- แม้ในเงื่อนไขที่ encode ภาพ RAW โดยตรงจาก darktable และบีบอัดเพียงครั้งเดียว ก็ยังพบจุดอ่อนของ WebP
- ภาพทดสอบเป็น headshot ในสตูดิโอจริง ซึ่งแสงที่ไล่ลงอย่างนุ่มนวลและ gradient ของพื้นหลังมีความสำคัญ
- เมื่อบันทึกทั้ง JPEG และ WebP ที่คุณภาพ 90 และใช้ Floyd-Steinberg dithering แบบ 8 บิต ผลคือ:
- JPEG 85 และ WebP 90 ถูกประเมินว่าล้มเหลวทั้งคู่
- WebP ดูแย่กว่าเพราะวง posterized มี contrast สูงกว่า
- WebP 90 ยังมีปัญหาเหลืออยู่ แม้จะเป็นคุณภาพที่สูงกว่าค่าที่แนะนำ
lossy 80ถึง 10 จุด - JPEG 90 ดูใช้ได้ แต่ขนาดไฟล์ใหญ่กว่า
- เมื่อบันทึก WebP แบบ lossless คุณภาพสะอาดขึ้น แต่ขนาดไฟล์ไม่น่าพอใจ ขณะที่ JPEG 90 แยกความแตกต่างได้ยากด้วยขนาดราวหนึ่งในสามของ WebP และ JPEG 95 ก็ดูคล้ายกันในขนาดที่มากกว่าครึ่งเล็กน้อย
- ในการทดสอบที่เพิ่ม random noise ระดับ -48 dB PSNR แทน Floyd-Steinberg dithering นั้น WebP ก็ยังไวต่อ posterization มากกว่า
- คุณภาพ WebP ที่นุ่มนวลใกล้เคียงกับ JPEG 85+noise อยู่ระหว่าง 95~96
- ภายใต้เงื่อนไขนี้ WebP หนักกว่า JPEG 85+noise 39% และหนักกว่า JPEG 90+Floyd-Steinberg dithering 30%
- ผลลัพธ์ของ WebP ยังมี ringing อ่อน ๆ เหลืออยู่
ช่องว่างระหว่างตัวชี้วัดเฉลี่ยกับคุณภาพภาพถ่าย
- การประเมินความเหนือกว่าของ WebP พึ่งพาค่า SSIM เฉลี่ยและขนาดบิตเฉลี่ยของชุดข้อมูลภาพอย่างมาก
- ค่าเฉลี่ยไม่สามารถรับประกัน ความเสถียรของผลลัพธ์ ที่ช่างภาพต้องการในเว็บพอร์ตโฟลิโอได้
- พอร์ตโฟลิโอภาพถ่ายไม่ใช่พื้นที่ที่ backend บีบอัดจะล้มเหลวแบบสุ่มได้
- การปรับคุณภาพ WebP อย่างละเอียดเป็นรายภาพใช้เวลามาก และใน WordPress ก็ถือว่าทำแบบนั้นได้ยาก
- SSIM เป็นตัวชี้วัดความคล้ายของภาพที่อิงค่าเฉลี่ย ความแปรปรวน และความแปรปรวนร่วม จึงสะท้อนเมตริกการรับรู้จริงได้ไม่เพียงพอและยังเป็นที่ถกเถียง
- สำหรับความเสียหายจากการบีบอัด ไม่เพียงขนาดของความคลาดเคลื่อนเชิงตัวเลขเท่านั้นที่สำคัญ แต่ ลักษณะของ artifact ก็สำคัญด้วย
- noise แบบสุ่มอาจยอมรับได้ในระดับหนึ่ง
- คราบที่มี pattern หรือ gradient แบบเป็นขั้น ๆ ทำลายภาพถ่ายรุนแรงกว่า
ฉากที่ WebP อ่อนแอเป็นพิเศษ
- ในงานภาพถ่าย ฉากที่ยากที่สุดมักไม่ใช่รายละเอียดคมชัด แต่เป็น การไล่โทนอย่างนุ่มนวล
- ในสถานการณ์ที่แสงใกล้เคียง point light ตกลงบนผนังเพื่อสร้างพื้นหลังที่ดูเป็นธรรมชาติ พื้นหลังต้องมี texture เพียงพอแต่ไม่ดึงสายตาไปจากตัวแบบ
- ตัวอย่างการบีบอัด WebP มักแสดงฉากที่คมชัด มี depth of field ลึก และมีรายละเอียดความถี่สูงมาก แต่ฉากแบบนี้มีโอกาสเกิด posterization ต่ำ จึงไม่เผยจุดอ่อนของอัลกอริทึมได้ดี
- ความคมชัดไม่พอไม่ได้ทำลายภาพถ่ายเสมอไป แต่การที่ vignetting นุ่ม ๆ แตกเป็นขั้น ๆ เป็นความเสียหายที่ยอมรับได้ยาก
การออกแบบฟอร์แมตและปัญหาสี
- WebP เป็นรูปแบบ RGB หรือ RGBalpha จึงไม่สามารถบันทึกภาพขาวดำเป็นภาพ grayscale แบบช่องสัญญาณเดียวได้
- posterization ที่พบในการทดสอบแย่ลงด้วยวงสี magenta และเขียว และตีความได้ว่าเป็นการเลื่อนของสีจาก chroma subsampling
- หากสามารถบันทึกรูปแบบขาวดำล้วนเป็นช่องสัญญาณเดียวได้ ก็อาจไม่สร้างการเลื่อนของ chroma เพิ่มเติม
- AVIF แก้ปัญหาส่วนนี้แล้ว แต่คาดว่าจะต้องใช้เวลาอย่างน้อย 10 ปี กว่าเทคโนโลยีนี้จะเกิดขึ้นจริงอย่างแพร่หลายในทางปฏิบัติ
แนวทางรับมือเพื่อรักษาคุณภาพภาพ
- หากเป็นเว็บไซต์ที่ภาพมีความสำคัญ โดยเฉพาะพอร์ตโฟลิโอของศิลปินทัศนศิลป์ เห็นว่าควรรักษาคุณภาพ JPEG 90 หรืออย่างน้อย 85 ไว้จะดีกว่า
- เพื่อปกป้องการไล่โทนที่นุ่มนวล แนะนำให้เพิ่ม dithering หรือ noise ที่อ่อนมาก ๆ ลงในภาพเสมอ
- ไม่ควรแปลง JPEG เดิมเป็น WebP และควรยกเว้นเฉพาะเมื่อยอมรับความเสียหายในระดับตัวอย่างข้างต้นได้เท่านั้น
- หากต้องการเพิ่มความเร็วในการโหลดและการตอบสนองที่ผู้ใช้รับรู้ได้ การใช้ CDN, ขนาดภาพแบบ responsive, และ lazy loading ภาพ ปลอดภัยกว่าการแปลงฟอร์แมต
- รูปแบบ SaaS ที่แปลงบนเซิร์ฟเวอร์ภายนอกมีค่าใช้จ่าย ไม่เปิดเผย factor คุณภาพจริง และอาจเกิดข้อผิดพลาดการเชื่อมต่อ HTTP ในสภาพแวดล้อม WordPress ที่เสริมความแข็งแกร่งด้วยปลั๊กอินความปลอดภัย เป็นต้น
- วิธีรัน ImageMagick หรือ GraphicsMagick โดยตรงบนเซิร์ฟเวอร์ดีกว่า และแนะนำแนวทางที่ใช้โปรแกรมเซิร์ฟเวอร์โดยตรง ไม่ใช่อินเทอร์เฟซ PHP
- หากนักพัฒนาเทคโนโลยีและผู้ออกแบบอัลกอริทึมภาพผลักดันการเลือกฟอร์แมตด้วยตัวชี้วัดเฉลี่ยเพียงอย่างเดียว อาจทำให้ศิลปินตัวจริงสูญเสียเวลาและค่าใช้จ่ายได้
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เจอปัญหาเดียวกันใน WebP เลยกลับไปใช้ JPG/PNG เป็นส่วนใหญ่ โดยใช้ jpg สำหรับภาพถ่าย และ png สำหรับภาพแนว UI
ดูเหมือนปัญหาจริงคือคนจำนวนมากแยกความแตกต่างไม่ออก ซึ่งน่าจะเป็นเพราะจอเดสก์ท็อปแทบไม่มีนวัตกรรมมาราว 10 ปีแล้ว ครึ่งหนึ่งของคนที่นี่คงกำลังดูภาพตัวอย่างบนจอ LCD 1920x1080 ราวปี 2012 และนั่นก็เป็นส่วนหนึ่งของปัญหา
แปลกตรงที่หน้าจอเล็กอย่างมือถือและจอใหญ่อย่างทีวี 4K มีความหนาแน่นพิกเซลที่ดีมากเมื่อเทียบกับระยะการรับชม แต่ พาเนลขนาด 20~40 นิ้ว กลับติดอยู่ที่ระดับกลางยุค 2000
อีกอย่าง ถ้าผู้เขียนใช้ภาพตัวอย่างที่พื้นหลังสว่าง หรือเปลี่ยนพื้นหลังบทความเป็นสีดำก็น่าจะดีกว่านี้ ภาพสีดำบนพื้นขาวทำให้ตาปรับตัวยากและมองปัญหาได้ยาก แต่ถ้าวางบนพื้นหลังมืดจะเห็นความต่างได้ง่ายกว่ามาก
เพราะงั้นคงยากจะบอกว่าคุณภาพจอคือปัญหาหลัก อาจเป็นปัญหาจากไดรเวอร์หรือฟิลเตอร์ post-processing หรืออาจเป็นแค่ไม่ใช่ทุกคนจะมีสายตาแบบที่มองเห็นสิ่งนี้ได้
ถ้าสนใจงานประมวลผลภาพ จากประสบการณ์แล้วจะเริ่มสังเกตรายละเอียดแบบนี้ได้ ผู้เขียนน่าจะมีประสบการณ์มากกว่าฉันชัดเจน และการมองเห็นรายละเอียดพวกนี้อาจเป็นส่วนหนึ่งของงานด้วย เขาน่าจะดูออกแม้บนจอแย่ ๆ และยังบอกได้ด้วยว่าจอนั้นแย่อย่างไร
ตัวอย่างไม่ค่อยดีนัก ถ้าจะสาธิตอะไรควร ขยายภาพหน้าจอ เพื่อให้เห็น artifacts
เวลาคุณแปลง PNG เป็น WebP คำว่า “lossless WebP” นี่ไม่ได้หมายถึงไม่สูญเสียจริง ๆ หรือ?
อีกอย่าง ถ้าแปลง PNG เป็น lossless WebP แล้วแตกกลับเป็น PNG จากนั้นแปลง PNG นั้นกลับเป็น WebP อีกครั้ง ก็จะได้ไฟล์ lossless WebP ที่เหมือนเดิมทุกประการ ไม่ว่าจะเข้ารหัสแบบ lossless จาก PNG ตรง ๆ หรือจาก PNG เดียวกันที่ถูก “crush” ด้วยเครื่องมือปรับแต่ง PNG ก็จะได้ WebP ตัวเดียวกัน
ก็ดีที่มีคนใส่ใจผลลัพธ์ที่ดีที่สุดจริง ๆ แต่คนส่วนใหญ่น่าจะทั้งไม่สังเกตและไม่สนใจ
ผมลองเปิดภาพสองภาพแรกในแท็บแยกกันแล้วสลับไปมาอย่างรวดเร็ว แต่ไม่เห็นความต่างเลย ทดสอบบนจอ 2 ตัวที่ต่างกัน ทั้งใน Chrome และ Firefox และภาพผู้ชายชุดสุดท้ายก็ดูเหมือนกันด้วย
แก้ไข: การเปรียบเทียบอันสุดท้ายใส่ WebP ซ้ำสองครั้ง และลิงก์ผิด นี่คือ jpg แต่ถึงอย่างนั้นก็ยังไม่เห็นความต่าง
https://eng.aurelienpierre.com/wp-content/uploads/sites/8/20...
แก้ไข: ถ้าอยากเห็นความจริง ต้องคลิกดูภาพขนาดเต็มจริง ๆ ภาพที่ฝังอยู่ในบทความ แม้แต่ภาพที่ระบุว่า lossless ก็ยังมี compression artifacts ค่อนข้างหนัก
ดังนั้น https://eng.aurelienpierre.com/wp-content/uploads/sites/8/20... WebP แบบ lossless ขนาดเต็มก็ดูโอเค แต่เวอร์ชันที่ฝังของภาพเดียวกันคือ https://eng.aurelienpierre.com/wp-content/uploads/sites/8/20... ดูแย่มาก
แก้ไข 2: ความต่างของสามอันด้านล่างนี้ค่อนข้างชัดเจน
https://eng.aurelienpierre.com/wp-content/uploads/sites/8/20... lossy-noise.jpg (216 kB JPEG)
https://eng.aurelienpierre.com/wp-content/uploads/sites/8/20... (150 kB WebP)
https://eng.aurelienpierre.com/wp-content/uploads/sites/8/20... (301 kB WebP)
ตัวอย่าง WebP ทั้งสองอัน แม้แต่เวอร์ชัน 301 kB ก็ยังเห็น posterization ชัดเจน
ผมเลยสงสัยว่ามีปัญหากับตัวเข้ารหัส WebP หรือการตั้งค่าที่ใช้หรือเปล่า
แก้ไข 3: gamma ของจอและ color profile อาจมีผลต่อความชัดเจนของ gradient posterization
https://eng.aurelienpierre.com/wp-content/uploads/sites/8/20...
https://eng.aurelienpierre.com/wp-content/uploads/sites/8/20...
แต่ถ้าคุณไม่ได้สนใจเรื่องภาพถ่าย ก็อาจไม่ได้ใส่ใจมากพอจะเห็นมัน
ความต่างแบบนี้ไม่ใช่เรื่องเล็ก คนที่ไม่เห็นความต่าง หรือเห็นก็ต่อเมื่อเพ่งดู ควรรู้ไว้ว่า สำหรับหลายคนมันเห็นได้ทันที
ภาพที่สอง ผมเปิดเวอร์ชัน jpeg 90 [1] และ webp 90 [2] แล้วพอเทียบกันก็เห็นปัญหา banding ชัดเจนทางขวาของลำคอ แถบมืดกว่าที่วนอยู่รอบทั้งภาพก็ดูจางลงเล็กน้อย แต่ถ้ารู้ว่าต้องมองตรงไหนก็ยังเห็นอยู่
ถ้าเอา jpeg 90 ไปเทียบกับ webp lossless, jpeg 100 หรือ jpeg 95 ก็จะเห็น banding ที่อ่อนมากของ jpeg 90 ทางขวาของลำคอเช่นกัน เพียงแต่ถ้าไม่ซูมก็สังเกตได้ยากมาก
[1] https://eng.aurelienpierre.com/wp-content/uploads/sites/8/20...
[2] https://eng.aurelienpierre.com/wp-content/uploads/sites/8/20...
สำหรับผม ข้อเสียของ WebP ที่แย่ที่สุดและสังเกตแยกได้ง่ายที่สุดคือการบังคับใช้ 4:2:0 chroma subsampling ในภาพจำนวนมากที่มีสีสว่างสด การสูญเสียสีและความสว่างเห็นได้ชัดแม้ไม่ต้องมีสายตาแบบมืออาชีพ
ในการเปรียบเทียบ [1] เห็นชัดว่าบอลลูนมุมขวาบนเสียสีแดงสดไป และในการเปรียบเทียบ [2] งานนีออนอาร์ตสีน้ำเงินสว่างตรงกลางสูญเสียความสว่างไป
[1] https://storage.googleapis.com/demos.webmproject.org/webp/cm...
[2] https://storage.googleapis.com/demos.webmproject.org/webp/cm...
สงสัยว่าทำไมคำสั่งนี้ถึงทำให้เกิดสีฟ้าจาง ๆ ตอนแปลง jpg > webp ในขณะที่สีอื่น ๆ ยังออกมาโอเคพอใช้
cwebp -pass 10 -m 6 -nostrong -sharp_yuv -quiet -q 60 -sharpness 2 $1 -oบทความนี้ไม่ได้พูดถึงปัญหาใหญ่ที่สุดที่ผมรู้สึกกับ WebP เลย สำหรับไฟล์ฟอร์แมตนี้ ความไม่สะดวก นอกเบราว์เซอร์มีมากกว่าการประหยัดขนาดเล็กน้อย
มีฟอร์แมตที่ดีกว่าอยู่ ทั้งฟอร์แมตที่ได้แรงบันดาลใจจากวิดีโอโค้ดेकอย่างที่เห็นใน HEIF, AVIF, H.266 หรืออย่าง JPEG XL และ WebP ก็ดูเหมือนเป็นการประนีประนอมที่ไม่มีข้อดีมากพอ
หลายคนเถียงกันว่าในภาพ WEBP ที่อยู่ในสภาวะเกือบดีที่สุดนั้นจะเห็น banding หรือไม่ แต่ภาพ WEBP ในโลกความจริงส่วนใหญ่มักดูแย่มาก ผมเพิ่งเริ่มสังเกตเรื่องนี้อย่างจริงจังไม่นานนี้เอง
แน่นอนว่าตอนนี้เราสามารถ “เก็บกวาด” ภาพได้ด้วยกระบวนการอัปสเกลแบบสร้างภาพใหม่ แต่ก็ค่อนข้างน่าขันที่ต้องใช้ไฟฟ้ามากขนาดนี้เพียงเพราะมีคนอยากประหยัด 45KB
มันทำให้นึกถึงยุคที่ GIF ถูกแปลงเป็น JPEG ด้วย เมื่อราว 25 ปีก่อนมีสกรีนช็อต GIF สะอาด ๆ จำนวนมากที่ 256 สีก็เพียงพอแล้ว แต่ JPEG ทำมันพัง
Google บอกให้นักพัฒนาใช้ WEBP แต่กลับไม่มีปัญหาอะไรเลยกับการเสิร์ฟโฆษณาวิดีโอที่ไม่มีใครอยากดูในระดับเพตะไบต์
ถ้าประเด็นคือ “สำหรับสายตาคนทั่วไปมันอาจดูโอเค แต่สำหรับช่างภาพมันไม่โอเค” งั้นก็น่าจะต้องมีตัวอย่างที่ดีกว่านี้เพื่อแสดงให้ “คนทั่วไป” เห็นว่า WebP แย่อย่างไร และเพื่อรองรับทั้งเนื้อหาและน้ำเสียงของบทความ
หรือเพราะผมดูบน Android ก็ไม่รู้ แต่คุณภาพของภาพทั้งหมดดูเหมือนกันหมด
แล้วถ้าคุณกำลังทำภาพสำหรับ “สายตาแบบมืออาชีพ” ก็แค่ไม่ใช้เทคโนโลยีที่ไม่ตอบโจทย์สายตาแบบมืออาชีพไม่ใช่หรือ? หรือไม่ก็อย่าให้คนอื่นมาตัดสินใจเรื่องนั้นแทน?
พอเห็นคอมเมนต์ในเธรดนี้ที่พูดอย่างมั่นใจว่าไม่มีความต่าง ทั้งที่จริง ๆ พูดเพ้อเจ้อ ความหงุดหงิดของผู้เขียนก็ดูสมเหตุสมผลนะ มองไม่ออกจากภาพชุดแรกก็ไม่เป็นไร แต่คุณก็ไม่ควรมั่นใจว่าตัวเองรู้ดีกว่าผู้เขียน หรือไปออกแบบ image codec
มองออกได้แม้ไม่ต้องดูเต็มจอ แค่ดูผู้ชายที่ทำหน้าบึ้ง แล้วมองที่ขอบเสื้อบริเวณใกล้ไหล่
ในภาพคุณภาพแย่ จะมี แสงฟุ้ง รอบไหล่ คล้ายแสงย้อน
ในภาพคุณภาพดี การไล่เฉดจะเนียนกว่า รอบไหล่ไม่มีแสงฟุ้งคล้ายแสงย้อน แต่ดูเหมือนฉากหลังไล่เฉดนุ่ม ๆ ตามปกติ
ขอย้ำว่าผมไม่ใช่ช่างภาพ ผมเป็นวิศวกร DevOps และครั้งสุดท้ายที่ใช้ JavaScript ในงานอาชีพก็อย่างน้อย 11 ปีที่แล้ว
มันเห็นได้ง่ายพอสมควร
[1] https://news.ycombinator.com/item?id=38653224
แนวคิดพื้นฐานทั้งหมดของบล็อกโพสต์นี้ดูเหมือนไม่ได้พยายามผ่านการตรวจสอบพื้นฐานในฐานะการเปรียบเทียบฟอร์แมต แต่เหมือนแค่อยากบ่นและเรียกคลิกมากกว่า
ข้อมูลพื้นหลังนิดหน่อย Aurelien Pierre เป็นที่รู้จักว่าเป็นผู้มีส่วนร่วมหลักของ Darktable โดย Darktable เป็นเครื่องมือโอเพนซอร์สสำหรับล้างไฟล์ RAW/จัดทำแค็ตตาล็อก ซึ่งก็คือประมาณ Adobe Lightroom แบบโอเพนซอร์ส
เขาเป็นที่รู้กันว่ามีความเห็นหนักแน่นเรื่องวิธีที่ถูกต้อง และบางครั้งก็ถึงขั้นค่อนข้างแข็งกร้าว จนถึงกับ fork Darktable ออกไปเป็นโปรเจกต์ของตัวเองชื่อ Ansel ด้วย เคยมีการพูดคุยใน HN มาก่อน https://news.ycombinator.com/item?id=38390914
หากใส่ใจคุณภาพของภาพเก็บถาวร ก็ไม่ควรนำภาพเก่ามาบีบอัดใหม่เป็นฟอร์แมตใหม่ เว้นแต่จะทำได้จากต้นฉบับแบบไม่บีบอัด การ re-encode จากซอร์สที่บีบอัดแบบสูญเสียข้อมูลจะทำให้คุณภาพแย่ลง พื้นที่เก็บข้อมูลก็ราคาถูกและจะยิ่งถูกลงเรื่อยๆ
สิ่งที่มีความหมายจริงๆ คือการเลือก การตั้งค่าที่ปลอดภัย เมื่อต้องบีบอัดภาพใหม่ด้วยฟอร์แมตใหม่
ในบริบทนี้ Google ได้ขัดขวาง JPEG XL โดยอ้างว่าเมื่อเทียบกับฟอร์แมตเดิมอย่าง WebP แล้ว “ประโยชน์เชิงเพิ่มพูน” ยังไม่มากพอ พร้อมทั้งถอดการรองรับ JPEG XL ออกจาก Chrome และปฏิเสธที่จะนำกลับมา
-q100ขณะที่ JPEG ดูโปร่งใสทางสายตาแม้ที่-q90ดูเหมือนผู้เขียนจะโฟกัสผิดจุด ไปสนใจความต่างของฟอร์แมต ทั้งที่จริงควรโฟกัสที่ วิธีการบีบอัด มากกว่า โปรแกรมประมวลผลภาพแต่ละตัวให้ผลการบีบอัดต่างกัน แม้จะตั้งค่าเลขเดียวกัน เช่น “80”
ถ้าจะเทียบกันอย่างมีความหมายจริง ต้องทดสอบภาพหลายแบบ ไม่ใช่แค่ภาพพอร์ตเทรตสตูดิโอขาวดำที่มีฉากหลังไล่เฉดนุ่มๆ แต่รวมถึงภาพสีเต็มรูปแบบที่มีฉากหลังซับซ้อนด้วย และควรดูหลายโปรแกรม เช่น imagemagik, graphicsMagick, sharp, photoshop รวมถึงบริการคลาวด์ต่างๆ
อีกประเด็นคือกรณีการใช้งาน ถ้าเป็นช่างภาพมืออาชีพที่ต้องการอัปโหลดภาพขนาดเต็มคุณภาพสูงสุด อาจดีกว่าถ้าไม่บีบอัดเลย เพื่อให้ผลงานสร้างสรรค์/การแต่งภาพถูกเก็บไว้ครบถ้วน แต่กรณีนั้นไม่ใช่กรณีใช้งานทั่วไปของเว็บไซต์ที่ต้องแสดงภาพขนาดพอเหมาะและคุณภาพพอเหมาะ
ในหลายสถานการณ์ ภาพที่เล็กกว่ามากอาจคุ้มค่ากับการยอมรับการบีบอัดที่แรงขึ้น และในภาพจำนวนมาก การบีบอัดจะสังเกตเห็นได้น้อยกว่าภาพถ่ายสตูดิโอระดับมืออาชีพความละเอียดเต็มที่มีฉากหลังไล่เฉดขนาดใหญ่
ส่วนตัวผมมองไม่เห็นความต่างที่มีนัยสำคัญ เลยคิดว่าตัวเองคงเป็น “สายตาแบบคนทั่วไป” แน่ๆ
สิ่งที่ผู้เขียนบ่นคือ artifact ที่เกิดขึ้นในฉากหลังของภาพ
น่าทึ่งที่การรับรู้ของแต่ละคนต่างกันได้มากขนาดนี้
ไล่เฉดสีใน WebP มักดูคล้าย ภาพนิ่งจากวิดีโอ การทำ chroma subsampling ลดความหนาแน่นของค่าประมาณความสว่างที่ใช้ได้ และยิ่งใช้แรงเท่าไร ไล่เฉดสีก็ยิ่งแย่ลง
รายละเอียดความถี่สูงและความต่างคอนทราสต์มากจะไม่ได้รับผลกระทบมากนัก แต่ไล่เฉดสีอาจเสียหายหนักได้
chroma หมายถึงสี และการ subsampling สีเป็นวิธีที่ใช้เพื่อหลีกเลี่ยงการตัดข้อมูลออกจากช่องสัญญาณความสว่างที่สำคัญกว่า