Мэдээ

Вэбийн том эргэлт: Google буулт хийж, Rust дээр бичигдсэн шинэ декомпрессортойгоор Chrome-д JPEG XL-ийг буцаан авчирлаа

TOGTOKHTOGTOKH·2026 оны аравдугаар сарын 7·1 үзсэн·
Вэбийн том эргэлт: Google буулт хийж, Rust дээр бичигдсэн шинэ декомпрессортойгоор Chrome-д JPEG XL-ийг буцаан авчирлаа

Вэб хөгжүүлэлтийн ертөнцөд сүүлийн жилүүдэд хамгийн их маргаан дагуулсан сэдвүүдийн нэг бол зургийн дараагийн үеийн формат JPEG XL (.jxl)-ийн хувь заяа байлаа.

2022 оны сүүлээр Google өөрсдийн Chromium кодын сангаас JPEG XL-ийн туршилтын дэмжлэгийг гэнэт хасаж, хөгжүүлэгчдийн дунд хүчтэй шүүмжлэл өрнүүлж байв. Тэгвэл Google албан ёсны Chrome for Developers блогоор дамжуулан Chrome 155 хувилбараас эхлэн JPEG XL тайлагчийг (decoding) үндсэн тохиргоогоор шууд ажиллуулж эхлэхээ албан ёсоор зарлалаа!

Энэхүү шийдвэр нь зүгээр нэг хуучин боломжоо эргүүлж авчирсан хэрэг биш; харин цаанаа Rust хэлний санах ойн аюулгүй байдал (memory safety) болон вэб стандартын шинэ түвшний ялалт юм.


100,000 мөр C++ кодоос үүдсэн айдсыг Rust хэрхэн арилгав?

Google-ийн хөгжүүлэгчид анх JPEG XL-ийг хасахдаа "экосистемийн эрэлт хангалтгүй, одоо байгаа форматыг орлох давуу тал тодорхойгүй" гэсэн тайлбар өгч байсан билээ. Гэвч хөшигний ард өөр том шалтгаан байсан нь аюулгүй байдлын эрсдэл байв.

Зургийн анхны код тайлагч болох libjxl нь 100,000 гаруй мөр C++ кодоос бүрдсэн бөгөөд олон урсгалт (multithreaded) ажиллагаатай байв. Хөтөч дотор ажилладаг C/C++ медиа парсерууд түүхэндээ олон ноцтой heap-buffer-overflow болон zero-day халдлагын гол үүр болж ирсэн (бид WebP-ийн алдарт libwebp эмзэг байдлыг санаж байгаа).

Mozilla Firefox-ийн баг Google-ийн судалгааны багт нэгэн тодорхой шаардлага тавьсан байдаг: "Хэрэв та нар JPEG XL-ийг Rust хэл дээр санах ойн аюулгүй байдлыг 100% хангасан, хурдан, авсаархан хэлбэрээр дахин бичиж чадвал бид үүнийг дэмжих болно".

Google Research баг уг сорилтыг хүлээн авч, бүхэлд нь цэвэр Rust дээр jxl-rs төслийг хөгжүүлж дуусгажээ. Тэд fuzzing тестүүд болон хиймэл оюуны код шинжилгээгээр шалгахад санах ойн аюулгүй байдлын ямар ч цоорхой илрээгүй бөгөөд Rust-ийн SIMD оновчлолын ачаар хуучин C++ хөдөлгүүрээсээ хүртэл хамаагүй өндөр үр дүн үзүүлсэн байна.

Бодит туршилтаар jxl-rs нь өмнөх C++ сангаасаа:

  • 86% илүү хурдан decode хийж,
  • 22% бага санах ой (RAM) зарцуулж байгааг Pixel 7A болон олон төрлийн архитектур дээр баталгаажуулжээ.

Хөгжүүлэгчид яагаад JPEG XL-ийг ингэтлээ хүсэмжлээд байв?

WebP болон AVIF зэрэг форматууд гарч ирсэн ч JPEG XL нь инженерийн түвшинд огт өөр давуу талуудыг санал болгодог:

  1. Lossless JPEG Transcoding (Хамгийн том хувьсгал): Та одоогийн сервер дээрээ байгаа хуучин терабайт терабайтаар хэмжигдэх ердийн .jpg файлуудаа ямар ч чанарын алдагдалгүйгээр (lossless) JPEG XL рүү хөрвүүлэхэд файлын хэмжээ шууд 20% багасдаг. Хамгийн гол нь хүссэн үедээ анхны JPEG бит-урсгал руугаа byte-for-byte буцаан задлах чадвартай. Энэ нь CDN болон дата хадгалалтын зардлыг шууд бууруулна.
  2. Шахалтын өндөр чанар: Ердийн JPEG-ээс 30–50% бага хэмжээтэйгээр ижил чанарыг гаргана. AVIF нь маш хүчтэй шахалттай үед давуу талтай байдаг бол өндөр нарийвчлалтай, гэрэл зураг болон lossless шахалтад JPEG XL хосгүй үр дүн үзүүлдэг.
  3. Гайхамшигтай Progressive Decoding: Файлын дөнгөж цөөн хэдэн килобайт татагдахад л хэрэглэгчийн дэлгэц дээр зураг танигдахуйц өнгө дүрсээрээ шууд тодорч эхэлдэг. Энэ нь LCP (Largest Contentful Paint) хэмжүүрийг сайжруулж, гар утасны муу интернеттэй хэрэглэгчдэд бүтээгдэхүүний харагдах хурдыг огцом дээшлүүлнэ.
  4. Бүрэн HDR ба Өргөн Өнгөний Гамут (Wide Gamut): Орчин үеийн дэлгэцүүдийн HDR болон өндөр битийн өнгийг (10-bit, 12-bit болон түүнээс дээш) ямар ч саадгүй дэмждэг.

Форматын дайн дуусав: Universal Browser Support

Apple аль хэдийн 2023 оноос Safari (iOS 17, macOS Sonoma)-д JPEG XL-ийг дэмжиж эхэлсэн байсан бол Firefox мөн jxl-rs суурьтайгаар тун удахгүй Stable хувилбартаа нэвтрүүлэхээ мэдэгдээд байсан билээ.

Одоо зах зээлийн 65 гаруй хувийг дангаар эзэмшдэг Google Chrome 155 хувилбараар нэгдэж байгаа нь JPEG XL бүх гол вэб хөтөч дээр бүрэн стандарт болон ажиллах ногоон гэрэл аслаа гэсэн үг юм.

Frontend хөгжүүлэгчид одоо юу хийх хэрэгтэй вэ?

Та өөрийн төслүүд болон Next.js, Cloudflare Images эсвэл imgix зэрэг зургийн CDN пайплайн дээрээ бэлтгэл хийж эхэлж болно:

<picture>
  <!-- Шинэ боломжийг бүрэн ашиглах -->
  <source srcset="image.jxl" type="image/jxl">
  <source srcset="image.avif" type="image/avif">
  <source srcset="image.webp" type="image/webp">
  <img src="image.jpg" alt="Optimized visual asset" loading="lazy">
</picture>

Энэхүү үйл явдал нь хөгжүүлэгчдийн нийгэмлэгийн хүчтэй санал хүсэлт (Interop төсөл), нээлттэй стандарт болон Rust хэлний давуу тал нэгдэж чадвал Big Tech-ийн анхны шийдвэрийг ч өөрчилж, интернетийн дэд бүтцийг илүү хурдан, аюулгүй болгож чаддагийн бодит баталгаа боллоо.


Эх сурвалж: Chrome for Developers: Shipping JPEG XL in Chrome (2026)

Сэтгэгдэл

Ачаалж байна...