เผยแพร่: 6 ตุลาคม 2026
เรายินดีที่จะประกาศว่า Chrome จะรองรับการถอดรหัสรูปแบบรูปภาพ JPEG
XL (.jxl) ตั้งแต่ Chrome 155 เป็นต้นไป JPEG XL เป็นรูปแบบรูปภาพรุ่นถัดไป
ที่ออกแบบมาเพื่อตอบสนองความต้องการของนักพัฒนาเว็บและ
ช่างภาพในปัจจุบัน โดยมีอัตราการบีบอัดดีกว่า JPEG 30-50% การบีบอัดแบบไม่สูญเสียรายละเอียด
การรองรับ HDR ในตัว การแปลงรหัส JPEG แบบไม่สูญเสียรายละเอียด และอื่นๆ
โดยทั่วไป เราขอแนะนำให้ลองใช้ทั้ง AVIF และ JPEG XL เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด เราคาดว่า JPEG XL จะมีประโยชน์มากที่สุดสำหรับการบีบอัดที่มีความเที่ยงตรงสูงหรือแบบไม่สูญเสียข้อมูล โดยเฉพาะอย่างยิ่งสำหรับรูปภาพถ่ายหรือในกรณีที่ต้องการการถอดรหัสแบบค่อยๆ แสดงผล แบบละเอียด
ในโพสต์นี้ เราจะมาแชร์เหตุผลที่นำ JPEG XL มาใช้ใน Chrome, วิธีใช้ Rust เพื่อให้มั่นใจในความปลอดภัยของหน่วยความจำเป็นอันดับแรก, งานด้านประสิทธิภาพที่ครอบคลุมซึ่งทำให้ JPEG XL ทำงานได้อย่างรวดเร็ว และสิ่งที่การเดินทางนี้บอกเราเกี่ยวกับความคิดเห็นของนักพัฒนาซอฟต์แวร์และระบบนิเวศของมาตรฐานเว็บ
ความปลอดภัยต้องมาเป็นอันดับแรก: การติดตั้งใช้งานตัวถอดรหัสใน Rust อีกครั้ง (jxl-rs)
เครื่องมือถอดรหัสรูปภาพเป็นหนึ่งในพื้นที่การโจมตีที่สำคัญและมีการโจมตีแบบกำหนดเป้าหมายมากที่สุดในเว็บเบราว์เซอร์สมัยใหม่ โดยจะประมวลผลโครงสร้างไบนารีที่ซับซ้อนและไม่น่าเชื่อถือโดยตรง จากเครือข่ายและทำงานภายในกระบวนการแสดงผล ที่ผ่านมา ตัวถอดรหัส ที่เขียนด้วยภาษาที่ไม่ปลอดภัยด้านหน่วยความจำ เช่น C++ มักจะเสี่ยงต่อช่องโหว่ ต่างๆ เช่น การอ่านนอกขอบเขต บัฟเฟอร์ล้นฮีป และข้อบกพร่องของการใช้งานหลังช่วงใช้ฟรี (Use After Free)
โมเดลการรักษาความปลอดภัยของเราอาศัยการแซนด์บ็อกซ์และการป้องกันแบบหลายชั้นตามกฎของ
สอง
อย่างไรก็ตาม แซนด์บ็อกซ์เป็นชั้นการป้องกันรอง เราจึงได้ผสานรวม jxl-rs ซึ่งเป็นการติดตั้งใช้งานตัวถอดรหัส JPEG XL ใน Rust เพื่อลดความเสี่ยงด้านความปลอดภัยเหล่านี้ตั้งแต่ต้น
ออกแบบเพื่อความเร็วโดยไม่ลดทอนความปลอดภัย
ความปลอดภัยของหน่วยความจำเป็นสิ่งสำคัญ แต่ตัวถอดรหัสที่ปลอดภัยด้านหน่วยความจำซึ่งมีความเร็วใกล้เคียงกับทางเลือกที่ไม่ปลอดภัยด้านหน่วยความจำที่ดีที่สุดเป็นตัวเลือกที่ชัดเจนกว่ามากเมื่อเทียบกับตัวเลือกที่มีการประนีประนอมด้านประสิทธิภาพอย่างมาก
ส่วนสำคัญของประสิทธิภาพของตัวแปลงรหัสสมัยใหม่คือการใช้ประโยชน์จาก
ฮาร์ดแวร์ SIMD ที่มีอยู่ในอุปกรณ์สมัยใหม่ให้ได้มากที่สุด เราจึงต้องทำให้ฟีเจอร์ target_feature_11 Rust
มีความเสถียร ซึ่งช่วยให้ใช้คำสั่ง SIMD ได้โดยไม่ต้องมีโค้ด unsafe
ขั้นตอนถัดไปคือการสร้างเลเยอร์การแยก SIMD (jxl_simd) ซึ่งได้แรงบันดาลใจจาก
ไลบรารี Highway ของ C++ (ซึ่งเดิมพัฒนาขึ้นสำหรับ libjxl ซึ่งเป็นการใช้งานอ้างอิงของ JPEG XL ใน C++) การพัฒนาเหล่านี้ช่วยให้เราเขียนไลบรารีแบบหลายแพลตฟอร์มที่
ไม่ลดทอนการเพิ่มประสิทธิภาพ SIMD ขณะเดียวกันก็จำกัดการดำเนินการที่ไม่ปลอดภัย
ไว้ในตำแหน่งที่ผ่านการตรวจสอบอย่างเข้มงวดเพียงไม่กี่แห่ง
การเพิ่มประสิทธิภาพใน jxl-rs จะต่อยอดจากประสิทธิภาพใน libjxl ซึ่งรวมถึง
ไปป์ไลน์การประมวลผลทั่วไปสำหรับขั้นตอนที่ข้ามเขตแดนของภูมิภาค ขณะเดียวกันก็
ลดการคัดลอกข้อมูลเพื่อเพิ่มประสิทธิภาพฮาร์ดแวร์ให้ได้สูงสุด เราได้ติดตาม
ประสิทธิภาพของการติดตั้งใช้งาน Rust อีกครั้งในแพลตฟอร์มฮาร์ดแวร์ต่างๆ ในแดชบอร์ดประสิทธิภาพ jxl-rs
เราได้ยืนยันการติดตั้งใช้งาน jxl-rs ด้วยเทคนิคที่ทันสมัยต่างๆ
ซึ่งรวมถึงการฟัซและการตรวจสอบโค้ดโดย AI และไม่พบข้อบกพร่องด้านความปลอดภัยของหน่วยความจำตลอดประวัติการติดตั้งใช้งานทั้งหมด ซึ่งเป็นการยืนยันอีกครั้งถึงการปรับปรุงครั้งใหญ่ที่ Rust นำมาสู่ความปลอดภัยของหน่วยความจำ
ความคิดเห็นของนักพัฒนาแอปและโปรเจ็กต์การทำงานร่วมกัน
ทีม Chrome พิจารณาความคิดเห็นของนักพัฒนาเว็บจากหลากหลายช่องทาง เช่น บั๊ก แบบสำรวจ Developer Signals Project และ Interop Project การตัดสินใจเปิดตัว JPEG XL ของเราอิงตามความคิดเห็นและคำขอที่สอดคล้องกันจากนักพัฒนาเว็บ ซึ่งเห็นได้ชัดเจนที่สุดในกระบวนการ Interop ซึ่งเป็นข้อเสนอที่ได้รับความนิยม ในปี 2026 และ หลายปีก่อนหน้านี้
เราได้เข้าร่วมการตรวจสอบ Interop 2026 JPEG XL เพื่อให้มั่นใจว่ารูปแบบนี้จะทำงานร่วมกันได้ในเบราว์เซอร์ต่างๆ และเพื่อให้มั่นใจว่าการทดสอบจะครอบคลุมฟีเจอร์ทั้งหมดของ JPEG XL ในเบราว์เซอร์ และการทดสอบเหล่านั้นจะผ่านใน Chrome
ลองเลย
การเปิดตัว JPEG XL อย่างเป็นทางการใน Chrome ทำให้เว็บทำงานได้เร็วขึ้น มีประสิทธิภาพมากขึ้น และปลอดภัยมากขึ้น เราขอแนะนำให้นักพัฒนาแอป ครีเอเตอร์เนื้อหา และเจ้าของแพลตฟอร์มเริ่ม
ใช้.jxlรูปภาพและภาพเคลื่อนไหวในไปป์ไลน์ของตน
ลองใช้ รายงานข้อบกพร่อง และช่วยเราสร้างเว็บที่เร็วขึ้นและปลอดภัยยิ่งขึ้นสำหรับทุกคน
การรับทราบ
เราขอขอบคุณทุกท่านที่ร่วมสนับสนุน jxl-rs หรือการผสานรวมกับ Chrome
และขอขอบคุณเป็นพิเศษต่อ Helmut Januschka สำหรับการสนับสนุนที่สำคัญ
ทั้งการผสานรวมกับ Chrome และ jxl-rs รวมถึง Martin Bruse, Zoltan Szabadka,
Sami Boukortt และ Wonwoo Choi สำหรับการสนับสนุนที่สำคัญต่อ jxl-rs
โดยตรง