توفير JPEG XL في Chrome

تاريخ النشر: 6 أكتوبر 2026

يسرّنا الإعلان عن أنّ Chrome سيتيح فك ترميز تنسيق الصور JPEG XL (.jxl) بدءًا من الإصدار 155. ‫JPEG XL هو تنسيق صور من الجيل التالي مصمّم لتلبية احتياجات مطوّري الويب والمصوّرين الفوتوغرافيين. ويوفّر ضغطًا أفضل بنسبة تتراوح بين 30 و50% مقارنةً بتنسيق JPEG، وضغطًا لا يؤدي إلى فقدان البيانات، وتوافقًا مدمجًا مع النطاق الديناميكي العالي، وتحويلاً لا يؤدي إلى فقدان البيانات من تنسيق JPEG، وغير ذلك.

بشكل عام، ننصحك بتجربة كلّ من AVIF وJPEG XL للحصول على أفضل النتائج. نتوقّع أن يكون تنسيق JPEG XL مفيدًا بشكل خاص في حالات الضغط العالي الدقة أو الضغط بدون فقدان البيانات، لا سيما في الصور الفوتوغرافية أو في الحالات التي يُفضّل فيها فك الترميز التدريجي الدقيق.

في هذه المشاركة، سنشرح سبب توفيرنا تنسيق JPEG XL في Chrome، وكيفية استخدامنا لغة Rust لضمان أمان الذاكرة أولاً، والجهود الكبيرة التي بذلناها لتحسين الأداء وجعله سريعًا، وما يمكن أن تخبرنا به هذه الرحلة حول ملاحظات المطوّرين ومنظومة المعايير المتوافقة مع الويب.

الأمان أولاً: إعادة تنفيذ أداة فك الترميز في Rust (jxl-rs)

تُعدّ برامج فك ترميز الصور من أهم مساحات الهجوم الموجّهة في أي متصفّح ويب حديث. وهي تعالج بنيات ثنائية معقّدة وغير موثوق بها مباشرةً من الشبكة وتعمل داخل عملية العارض. في السابق، كانت أدوات فك الترميز المكتوبة بلغات غير آمنة للذاكرة، مثل C++، عرضة للثغرات الأمنية، مثل عمليات القراءة خارج الحدود وتجاوز سعة المخزن المؤقت للذاكرة الديناميكية وأخطاء استخدام ذاكرة معيّنة بعد تفريغها.

يعتمد نموذج الأمان لدينا على الحماية في بيئة معزولة والدفاع المتعمّق، ويسترشد بقاعدة الاثنين. ومع ذلك، فإنّ وضع التطبيقات في بيئة معزولة هو طبقة دفاع ثانوية. للتخلص من مخاطر الأمان هذه من المصدر، أضفنا jxl-rs، وهو تطبيق بلغة Rust الخالصة لبرنامج فك ترميز JPEG XL.

تصميم تطبيقات سريعة بدون التأثير في الأمان

مع أنّ أمان الذاكرة أمر بالغ الأهمية، إلا أنّ استخدام برنامج ترميز آمن للذاكرة وسريع تقريبًا مثل أفضل برنامج ترميز بديل غير آمن للذاكرة هو خيار أكثر وضوحًا من اختيار برنامج ترميز يقدّم أداءً أقل بكثير.

يتمثّل أحد الأجزاء الأساسية لأداء برامج الترميز الحديثة في الاستفادة الكاملة من أجهزة 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 باستخدام تقنيات متطوّرة مختلفة، بما في ذلك التشويش ومراجعة الرمز البرمجي باستخدام الذكاء الاصطناعي، ولم نرصد أي أخطاء تتعلّق بأمان الذاكرة طوال سجلّ التنفيذ بالكامل، ما يقدّم تأكيدًا آخر على التحسينات الكبيرة التي يوفّرها Rust في ما يتعلّق بأمان الذاكرة.

ملاحظات المطوّرين و"مشروع إمكانية التشغيل التفاعلي"

يأخذ فريق Chrome في الاعتبار ملاحظات مطوّري الويب الواردة من مجموعة كبيرة من القنوات، مثل الأخطاء والاستطلاعات ومشروع إشارات المطوّرين ومشروع التوافق. استند قرارنا بطرح JPEG XL إلى الملاحظات والطلبات المتكرّرة من مطوّري الويب، والتي كانت واضحة بشكل خاص في "عملية التشغيل التفاعلي"، حيث كانت اقتراحًا شائعًا في عام 2026 وعدة سنوات قبل ذلك.

لضمان إمكانية تشغيل التنسيق على جميع المتصفحات، شاركنا في تحقيق Interop 2026 بشأن JPEG XL للتأكّد من توفّر تغطية اختبارية لجميع ميزات JPEG XL في المتصفحات، ومن اجتياز هذه الاختبارات في Chrome.

للتجربة:

مع إطلاق تنسيق JPEG XL رسميًا في Chrome، أصبح الويب أسرع وأكثر ثراءً وأمانًا. نشجّع المطوّرين وصنّاع المحتوى ومالكي المنصات على البدء في استخدام صور .jxl ورسوم متحركة في مسارات العمل الخاصة بهم.

يمكنك تجربة هذا الإصدار والإبلاغ عن الأخطاء، ومساعدتنا في مواصلة توفير تجربة أسرع وأكثر أمانًا للجميع على الويب.

الإقرارات

نودّ أن نشكر جميع الأشخاص الذين ساهموا في تطوير jxl-rs أو دمجه في Chrome، وخاصةً "هيلموت يانوشكا" على مساهماته الكبيرة في كل من عملية الدمج في Chrome وjxl-rs، و"مارتن بروس" و"زولتان سابادكا" و"سامي بوكورت" و"وون وو تشوي" على مساهماتهم الكبيرة في تطوير jxl-rs.