Vận chuyển JPEG XL trong Chrome

Xuất bản: Ngày 6 tháng 10 năm 2026

Chúng tôi rất vui mừng thông báo rằng Chrome sẽ hỗ trợ giải mã định dạng hình ảnh JPEG XL (.jxl) kể từ Chrome 155. JPEG XL là một định dạng hình ảnh thế hệ mới được thiết kế để đáp ứng nhu cầu của các nhà phát triển web và nhiếp ảnh gia hiện đại. Định dạng này có khả năng nén tốt hơn từ 30% đến 50% so với JPEG, khả năng nén không tổn hao, hỗ trợ HDR tích hợp, khả năng chuyển mã JPEG không tổn hao và nhiều tính năng khác.

Nhìn chung, bạn nên thử cả AVIF và JPEG XL để đạt được kết quả tốt nhất. Chúng tôi hy vọng JPEG XL sẽ hữu ích nhất cho việc nén có độ trung thực cao hoặc nén không mất dữ liệu, đặc biệt là đối với hình ảnh chụp hoặc trong trường hợp bạn muốn giải mã tăng dần chi tiết.

Trong bài đăng này, chúng tôi sẽ chia sẻ lý do chúng tôi đưa JPEG XL vào Chrome, cách chúng tôi sử dụng Rust để đảm bảo an toàn bộ nhớ trước tiên, công việc hiệu suất mở rộng giúp JPEG XL hoạt động nhanh chóng và những gì hành trình này cho chúng tôi biết về ý kiến phản hồi của nhà phát triển cũng như hệ sinh thái tiêu chuẩn web.

An toàn là trên hết: Triển khai lại bộ giải mã bằng Rust (jxl-rs)

Bộ giải mã hình ảnh là một trong những bề mặt tấn công quan trọng và được nhắm đến nhiều nhất trong mọi trình duyệt web hiện đại. Chúng xử lý trực tiếp các cấu trúc nhị phân phức tạp, không đáng tin cậy từ mạng và chạy trong quy trình kết xuất. Trước đây, các bộ giải mã được viết bằng các ngôn ngữ có bộ nhớ không an toàn như C++ thường dễ bị các lỗ hổng bảo mật như đọc ngoài phạm vi, tràn bộ nhớ khối xếp và lỗi use-after-free.

Mô hình bảo mật của chúng tôi dựa trên cơ chế hộp cát và phòng thủ chuyên sâu, theo quy tắc hai. Tuy nhiên, hộp cát là một lớp phòng thủ thứ cấp. Để loại bỏ những rủi ro bảo mật này ngay từ nguồn, chúng tôi đã tích hợp jxl-rs, một quy trình triển khai thuần tuý bằng Rust của trình giải mã JPEG XL.

Thiết kế để tăng tốc độ mà không ảnh hưởng đến sự an toàn

An toàn bộ nhớ là yếu tố quan trọng, nhưng một bộ giải mã an toàn đối với bộ nhớ có tốc độ xấp xỉ bằng tốc độ của lựa chọn thay thế không an toàn đối với bộ nhớ tốt nhất là lựa chọn rõ ràng hơn nhiều so với lựa chọn có hiệu suất giảm đáng kể.

Một phần cơ bản trong hiệu suất của các bộ mã hoá và giải mã hiện đại là tận dụng tối đa phần cứng SIMD có trên các thiết bị hiện đại. Để làm như vậy một cách an toàn, tính năng target_feature_11 Rust phải được ổn định, cho phép sử dụng các chỉ dẫn SIMD mà không cần mã unsafe.

Bước tiếp theo là xây dựng một lớp trừu tượng SIMD (jxl_simd), lấy cảm hứng từ thư viện Highway C++ (bản thân thư viện này ban đầu được phát triển cho libjxl, việc triển khai tham chiếu C++ của JPEG XL). Nhờ đó, chúng tôi có thể viết một thư viện đa nền tảng không ảnh hưởng đến việc tối ưu hoá hiệu suất SIMD, đồng thời hạn chế các thao tác không an toàn ở một số ít vị trí được kiểm tra kỹ lưỡng.

Các điểm tối ưu hoá hiệu suất trong jxl-rs được xây dựng dựa trên các điểm tối ưu hoá trong libjxl. Điều này bao gồm một quy trình xử lý chung cho các bước vượt qua biên giới khu vực, đồng thời giảm thiểu việc sao chép dữ liệu để tối đa hoá hiệu suất phần cứng. Chúng tôi đã theo dõi hiệu suất của việc triển khai lại Rust trên nhiều nền tảng phần cứng trên trang tổng quan hiệu suất jxl-rs.

Chúng tôi đã xác minh việc triển khai jxl-rs bằng nhiều kỹ thuật hiện đại, bao gồm cả kiểm thử ngẫu nhiên và đánh giá mã bằng AI, đồng thời không phát hiện thấy bất kỳ lỗi nào về độ an toàn của bộ nhớ trong toàn bộ nhật ký triển khai. Điều này một lần nữa chứng minh những cải tiến lớn mà Rust mang lại cho độ an toàn của bộ nhớ.

Ý kiến phản hồi của nhà phát triển và Dự án tăng khả năng tương tác

Nhóm Chrome xem xét ý kiến phản hồi của nhà phát triển web từ nhiều kênh, chẳng hạn như lỗi, khảo sát, Dự án Tín hiệu dành cho nhà phát triển và Dự án Interop. Quyết định của chúng tôi về việc phát hành JPEG XL dựa trên ý kiến phản hồi và yêu cầu nhất quán từ các nhà phát triển web. Điều này thể hiện rõ nhất trong Quy trình tương tác, trong đó JPEG XL là một đề xuất phổ biến vào năm 2026 và nhiều năm trước đó.

Để đảm bảo định dạng này có thể tương tác trên nhiều trình duyệt, chúng tôi đã tham gia Cuộc điều tra về JPEG XL trong Interop 2026 để đảm bảo có phạm vi kiểm thử cho tất cả các tính năng của JPEG XL trong trình duyệt và những kiểm thử đó sẽ được thực hiện trong Chrome.

Dùng thử

Với việc JPEG XL chính thức có mặt trong Chrome, web sẽ trở nên nhanh hơn, phong phú hơn và an toàn hơn. Chúng tôi khuyến khích các nhà phát triển, nhà sáng tạo nội dung và chủ sở hữu nền tảng bắt đầu sử dụng hình ảnh và ảnh động .jxl trong quy trình của họ.

Hãy dùng thử, báo cáo lỗi và giúp chúng tôi tiếp tục xây dựng một web nhanh hơn và an toàn hơn cho mọi người.

Lời cảm ơn

Chúng tôi xin cảm ơn tất cả những người đã đóng góp cho jxl-rs hoặc việc tích hợp vào Chrome, đặc biệt là Helmut Januschka vì những đóng góp đáng kể của ông cho cả việc tích hợp vào Chrome và cho chính jxl-rs, cũng như Martin Bruse, Zoltan Szabadka, Sami Boukortt và Wonwoo Choi vì những đóng góp đáng kể của họ cho chính jxl-rs.