פורסם: 6 באוקטובר 2026
אנחנו שמחים לבשר שגרסה 155 של Chrome כוללת תמיכה בפענוח של פורמט התמונה JPEG
XL (.jxl). JPEG XL הוא פורמט תמונה מהדור הבא שנועד לענות על הצרכים של מפתחי אתרים וצלמים מודרניים. הוא מציע דחיסה טובה יותר ב-30% עד 50% בהשוואה ל-JPEG, דחיסה ללא אובדן מידע, תמיכה מובנית ב-HDR, המרת קידוד של JPEG ללא אובדן מידע ועוד.
באופן כללי, מומלץ לנסות גם AVIF וגם JPEG XL כדי להשיג את התוצאות הכי טובות. אנחנו צופים ש-JPEG XL יהיה שימושי במיוחד לדחיסת נתונים ברמת דיוק גבוהה או לדחיסה ללא אובדן מידע, במיוחד של תמונות צילומיות או במקרים שבהם עדיף פענוח הדרגתי עם פרטים מדויקים.
בפוסט הזה נסביר למה הוספנו את JPEG XL ל-Chrome, איך השתמשנו ב-Rust כדי להבטיח קודם כל את בטיחות הזיכרון, מה עשינו כדי לשפר את הביצועים, ומה למדנו מהתהליך הזה על משוב מפתחים ועל המערכת האקולוגית של תקני האינטרנט.
קודם כל בטיחות: הטמעה מחדש של המפענח ב-Rust (jxl-rs)
מפענחי תמונות הם אחד ממשטחי התקיפה הקריטיים והממוקדים ביותר בכל דפדפן אינטרנט מודרני. הם מעבדים ישירות מבנים בינאריים מורכבים ולא מהימנים מהרשת, ופועלים בתוך תהליך העיבוד. בעבר, דקודרים שנכתבו בשפות לא בטוחות מבחינת זיכרון, כמו C++, היו מועדים לפגיעויות כמו קריאות מחוץ לגבולות, הצפת ערימה ובאגים של שימוש אחרי שחרור.
מודל האבטחה שלנו מבוסס על ארגז חול (sandboxing) והגנה לעומק, בהתאם לכלל השניים.
עם זאת, ארגז חול הוא שכבת הגנה משנית. כדי למנוע את הסיכונים האלה לאבטחה במקור, שילבנו את jxl-rs, הטמעה טהורה של Rust של מפענח JPEG XL.
עיצוב שמתמקד במהירות, בלי להתפשר על בטיחות
בטיחות הזיכרון היא קריטית, אבל מפענח בטוח לזיכרון שמהיר בערך כמו האלטרנטיבה הכי טובה שלא בטוחה לזיכרון הוא בחירה הרבה יותר ברורה מאשר בחירה עם פשרה משמעותית בביצועים.
חלק מהותי בביצועים של קודקים מודרניים הוא ניצול מלא של חומרת SIMD שזמינה במכשירים מודרניים. כדי לעשות זאת בצורה בטוחה, היה צריך לייצב את התכונה target_feature_11 Rust, מה שאפשר את השימוש בהוראות SIMD בלי לדרוש קוד unsafe.
השלב הבא היה בניית שכבת הפשטה של SIMD (jxl_simd), בהשראת ספריית Highway של C++ (שפותחה במקור עבור libjxl, הטמעת ההפניה של C++ של JPEG XL). ביחד, ההתפתחויות האלה אפשרו לכתוב ספרייה מרובת פלטפורמות שלא מתפשרת על אופטימיזציות של ביצועי SIMD, תוך הגבלת פעולות לא בטוחות למספר קטן של מיקומים שנבדקו בקפידה.
אופטימיזציות של הביצועים ב-jxl-rs מבוססות על אלה ב-libjxl. הוא כולל צינור עיבוד נתונים גנרי לשלבים שחוצים גבולות אזוריים, תוך צמצום העתקות הנתונים כדי למקסם את ביצועי החומרה. אנחנו עוקבים אחרי הביצועים של ההטמעה מחדש של Rust בפלטפורמות חומרה שונות בלוח הבקרה של הביצועים של jxl-rs.
בדקנו את ההטמעה של jxl-rs באמצעות טכניקות שונות ומתקדמות, כולל fuzzing ובדיקת קוד באמצעות AI, ולא מצאנו באגים שקשורים לבטיחות הזיכרון לאורך כל היסטוריית ההטמעה. זהו אימות נוסף לשיפורים המשמעותיים ש-Rust מביאה לבטיחות הזיכרון.
משוב ממפתחים ופרויקט יכולת הפעולה ההדדית
צוות Chrome מתייחס למשוב ממפתחי אתרים ממגוון רחב של ערוצים, כמו באגים, סקרים, פרויקט Developer Signals ופרויקט Interop. ההחלטה שלנו להשיק את JPEG XL התבססה על משוב ובקשות עקביים ממפתחי אתרים, שהיו הכי בולטים בתהליך Interop, שבו זו הייתה הצעה פופולרית בשנת 2026 ובשנים שלפני כן.
כדי לוודא שהפורמט תואם לדפדפנים שונים, השתתפנו בבדיקה של JPEG XL במסגרת Interop 2026 כדי לוודא שיש כיסוי בדיקות לכל התכונות של JPEG XL בדפדפנים, ושהבדיקות האלה עוברות ב-Chrome.
רוצה לנסות?
עם ההשקה הרשמית של JPEG XL ב-Chrome, האינטרנט הופך למהיר, עשיר ובטוח יותר. אנחנו ממליצים למפתחים, ליוצרי תוכן ולבעלי פלטפורמות להתחיל
להשתמש ב.jxlתמונות ובאנימציות בצינורות העיבוד שלהם.
אתם מוזמנים לנסות את התכונה, לדווח על באגים ולעזור לנו להמשיך לפתח אינטרנט מהיר ובטוח יותר לכולם.
תודות
אנחנו רוצים להודות לכל האנשים שתרמו ל-jxl-rs או לשילוב שלו ב-Chrome, ובמיוחד להלמוט יאנושקה על התרומה המשמעותית שלו לשילוב ב-Chrome ול-jxl-rs, ולמרטין ברוס, זולטן סאבאדקה, סאמי בוקורט ו-ונוו צ'וי על התרומה המשמעותית שלהם ל-jxl-rs עצמו.