programmatūra · 6 min · 24.10.2026

Firefox 158 ieslēdz JPEG XL pēc noklusējuma: Mozilla prasīja dekoderi Rust valodā

Firefox 158 kopš 13. oktobra atbalsta JPEG XL attēlu formātu pēc noklusējuma. Lietotājam nekas nav jāieslēdz: pārlūks nolasa .jxl failus tāpat kā JPEG vai PNG. Tas ir pirmais Mozilla laidiens, kurā šis atbalsts ir aktīvs bez eksperimentālā karoga.

JPEG XL ir attēlu saspiešanas formāts, ko 2020. gadā standartizēja JPEG komiteja kā ilgi gaidītu JPEG un PNG pēcteci. Formāts apvieno bezzudumu saspiešanu, progresīvu ielādi un iespēju bezzudumu pārkodēt esošus JPEG failus. Pārlūku izstrādātājiem bija vajadzīgi seši gadi, lai vienotos par tā atbalstu.

Kāpēc Mozilla gaidīja piecus gadus

Mozilla pirmo reizi pievienoja JPEG XL atbalstu aiz iestatījumu karoga 2021. gadā, taču ātri to apturēja. Atsauces dekoderis, ko uztur formāta autori, sastāv no aptuveni 100 000 rindu daudzpavedienu C++ koda. Mozilla drošības inženieri novērtēja šo apjomu kā pārāk lielu uzbrukumu virsmu pārlūkam, kas dienā apstrādā miljardiem attēlu no neuzticamiem avotiem.

Draudi ir praktiski. 2023. gadā kritiska WebP bufera pārpilde (CVE-2023-4863) skāra Chrome, Firefox un Safari vienlaikus, jo visi pārlūki izmantoja vienu kopīgu C bibliotēku libwebp. Šis incidents pastiprināja Mozilla pozīciju: jauns attēlu dekoderis jāraksta atmiņdrošā valodā.

Google pārrakstīja dekoderi Rust valodā

Mozilla izvirzīja nosacījumu JPEG XL komandai Google Research: ja vēlaties atbalstu Firefox, uzrakstiet dekoderi Rust valodā. Prasība bija neparasta. Parasti pārlūku izstrādātāji pieņem esošās bibliotēkas vai raksta savas. Šoreiz Mozilla pieprasīja pārrakstīt industrijas atsauces implementāciju citā programmēšanas valodā.

Google Research to izdarīja un izveidoja jxl-rs. Dekoderis izmanto Rust kompilātora garantijas: nav iespējams piekļūt atbrīvotai atmiņai, pārkāpt bufera robežas vai izraisīt pavedienu konfliktu. Tās ir kļūdu kategorijas, kas C++ dekoderos regulāri rada drošības ievainojamības. Jxl-rs apjoms ir aptuveni trešdaļa no C++ atsauces implementācijas.

Mozilla prasīja arī progresīvo renderēšanu. Pārlūks vispirms parāda zemas izšķirtspējas priekšskatījumu, kamēr pārējie attēla dati vēl ceļo no servera. Safari, kas JPEG XL atbalsta kopš 2023. gada, progresīvo renderēšanu neatbalsta. Chromium apvienoja to pašu jxl-rs kodu 2026. gada janvārī, tāpēc kļūdu labojumi jxl-rs projektā automātiski nonāk gan Chrome, gan Firefox.

Ko JPEG XL piedāvā

JPEG XL ir izstrādāts kā JPEG un PNG pēctecis. Tam ir vairākas konkrētas priekšrocības pār esošajiem formātiem.

Pirmā ir bezzudumu JPEG pārkodēšana. Jebkuru esošu JPEG failu var pārvērst JPEG XL formātā, samazinot izmēru par aptuveni 20 %. No šī JPEG XL faila var precīzi atjaunot oriģinālo JPEG, baitu pa baitam. Neviens cits attēlu formāts to nespēj. Uzņēmumiem ar lieliem attēlu arhīviem tas dod tūlītēju ietaupījumu glabāšanas izmaksās bez jebkāda kvalitātes zuduma.

Otrā ir efektīvāka saspiešana jauniem attēliem. Pie vienlīdzīgas vizuālās kvalitātes JPEG XL faili aizņem par 10 līdz 15 % mazāk vietas nekā AVIF fotogrāfijām. Ilustrācijām tie ir kompaktāki par WebP. Core Web Vitals salīdzinājums parāda šos skaitļus ar datiem no vairākiem CDN servisiem.

Trešā ir progresīvā ielāde. AVIF prasa pilnībā lejupielādēt failu pirms attēlošanas. JPEG XL sāk rādīt saturu uzreiz, pat ja fails ir tikai daļēji ielādēts. Uz mobilā tīkla ar 5 Mbit/s ātrumu 2 MB fotogrāfija sāk parādīties pēc dažiem simtiem kilobaitu. Ar AVIF lietotājs redz tukšu laukumu līdz pilnīgai ielādei.

Pārlūku atbalsts 2026. gada oktobrī

JPEG XL ceļš pārlūkos bija nelīdzens. Google 2022. gadā pilnībā izņēma formāta atbalstu no Chrome, pamatojot to ar zemu ekosistēmas interesi. Izstrādātāji iesniedza Chromium kļūdu izsekotājā pieprasījumu ar vairāk nekā 1 500 zvaigznēm, prasot atjaunot formātu.

2026. gada janvārī Chromium apvienoja jxl-rs kodu. Chrome 145 februārī piedāvāja formātu aiz eksperimentālā karoga. Pēc vairāku mēnešu testēšanas Chrome 155 to padarīja pieejamu visiem lietotājiem.

Safari atbalsta JPEG XL kopš 2023. gada, taču ar ierobežojumiem: nav animāciju, nav progresīvās ielādes. Firefox 158 ir pēdējais no trim lielajiem pārlūkiem, kas pabeidza integrāciju.

Pirms Firefox 158 JPEG XL pārlūku pārklājums bija aptuveni 15 % pasaules lietotāju. Tagad formātu pēc noklusējuma nolasa Chrome, Firefox un Safari, kas kopā veido vairāk nekā 90 % galddatoru tirgus.

Mobilajā tirgū situācija ir līdzīga. Android Chrome un iOS Safari jau atbalsta formātu. Daži mazāki mobilie pārlūki vēl nav pievienojušies, taču to kopējā tirgus daļa ir neliela.

Praktiski soļi izstrādātājiem

Izstrādātāji var sākt piedāvāt JPEG XL kā papildu formātu ar HTML <picture> elementu. Piemērs: <source type="image/jxl" srcset="foto.jxl"> pirms esošā JPEG avota. Pārlūki, kas formātu neatbalsta, izlaidīs šo rindu un ielādēs nākamo avotu.

CDN servisi jau ir gatavi. Cloudflare un Cloudinary piedāvā automātisku formāta izvēli pēc pārlūka Accept galvenes. Tā ir HTTP standarta galvene, ar kuru pārlūks paziņo serverim, kādus formātus tas saprot. Firefox 158 tagad iekļauj image/jxl šajā galvenē. Izstrādātājam nav jāģenerē atsevišķi faili katram formātam.

JPEG XL pagaidām ir visnoderīgākais lielām, augstas kvalitātes fotogrāfijām virs 200 KB. Mazām ikonām vai vienkāršām ilustrācijām AVIF ir laba izvēle ar aptuveni 93 % pārlūku pārklājumu. Pārejas periodā abus formātus var piedāvāt paralēli. Konvertēšanai ir pieejami rīki kā libjxl komandrindas utilīta cjxl vai tīmekļa serviss Squoosh.

Firefox 158 iekļauj arī citas izmaiņas: vienmērīgāku ritināšanu visās platformās un uzlabotu PDF izvadi Linux sistēmās.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no programmatūrasaistītie