Przejdź do zawartości

JPEG XL

Z Wikipedii, wolnej encyklopedii
JPEG XL
Ikona formatu
ilustracja
Rozszerzenia pliku

.jxl

Typ MIME

image/jxl[1]

Producent

Joint Photographic Experts Group

Typ

kompresja grafiki rastrowej

Otwarty format?

tak

Strona internetowa

JPEG XLformat graficzny obsługujący zarówno kompresję stratną, jak i bezstratną. Zaprojektowano go z myślą, by był lepszy od istniejących formatów rastrowych, a tym samym stał się ich uniwersalnym zamiennikiem[2].

Historia

[edytuj | edytuj kod]

W 2017 roku komitet JTC1/SC29/WG1 (JPEG) ogłosił możliwość składania propozycji (Call for Proposals) na kandydatów na JPEG XL[3].

Format został zamrożony 24 grudnia 2020 r., co oznacza, że obecnie zakodowane pliki będzie można zdekodować w przyszłości[4].

Funkcje

[edytuj | edytuj kod]

Najważniejszymi funkcjami są[5][6]:

  • większy zestaw funkcji i lepsza efektywność kompresji w porównaniu do tradycyjnych formatów graficznych (m.in. JPEG, GIF oraz PNG),
  • dekodowanie progresywne (polepszanie się jakości wizualnej w miarę ładowania kolejnych fragmentów pliku),
  • odwracalne kodowanie plików JPEG oszczędzające ≈20% rozmiaru,
  • bezstratne kodowanie (w tym kanału alfa),
  • algorytmy kompresji przystosowane zarówno do fotografii, jak i sztucznych obrazów,
  • referencyjny koder zoptymalizowany pod percepcję ludzką,
  • obsługa wysokiej głębi bitowej oraz obrazów HDR,
  • wsparcie dla animowanych obrazów,
  • wydajne kodowanie i dekodowanie bez używania wyspecjalizowanego sprzętu,
  • format otwarty, wolny od tantiem z otwartoźródłową implementacją referencyjną[7].

Informacje techniczne

[edytuj | edytuj kod]

JPEG XL został oparty na formacie PIK od Google oraz FUIF od Cloudinary(inne języki), który z kolei powstał na bazie FLIF(inne języki)[8].

Format ten opiera się na dwóch głównych trybach kodowania:

  • VarDCT – używa tego samego algorytmu DCT, co klasyczny JPEG, ale bloki, zamiast być ograniczone do 8×8, występują w różnych rozmiarach (od 2×2 aż po 256×256) oraz kształtach (np. 16×8, 8×32, 32×64), a także mogą używać innych rodzajów transformacji (AFV, Hornuss).
  • Modular – jest odpowiedzialny m.in. za wydajne, bezstratne kodowanie treści. To z jego pomocą zapisywane są dodatkowe kanały (np. alfa, głębokość, temperatura i inne) oraz współczynniki DC (skala 1:8) trybu VarDCT. Możliwa jest w nim również stratna kompresja, dokonywana z pomocą transformacji Haaro-podobnej, nazywanej w JPEG XL „squeeze”. Ma ona progresywne właściwości: w miarę doczytywania danych widać coraz więcej detali. Progresywne ładowanie obrazów zapisanych trybem VarDCT odbywa się między innymi właśnie przez zapisanie współczynników DC trybu VarDCT w trybie modularnym stratnym, działając w tandemie.

Oba tryby mogą wspomagać się dodatkowymi narzędziami, nieznanymi w innych kodekach:

  • modelowanie krzywych do kodowania np. włosów,
  • powtarzające się „łatki” mogące być np. literami tekstu albo „duszkami” grafiki pikselowej,
  • synteza szumu (jest on trudny do zakodowania w obu trybach, więc lepiej jest oszacować jego wartość w koderze, zapisać ją w pliku i zaaplikować szum ponownie w dekoderze).

Stratne ustawienia kodowania z reguły używają przestrzeni barw XYB stworzonej na bazie LMS[9].

JPEG XL potrafi również bezstratnie zakodować już istniejące pliki JPEG do bardziej kompaktowej formy, kopiując bezpośrednio współczynniki bloków DCT z JPEG-a do bloków VarDCT w JPEG XL, zawdzięczając mniejszy rozmiar lepszemu kodowaniu entropijnemu. Kiedyś za bezstratną kompresję plików JPEG był odpowiedzialny Brunsli, odrębny tryb od VarDCT i modularnego, został on jednak porzucony na rzecz uproszczenia specyfikacji i zmniejszenia rozmiaru dekodera o 20%[10].

Predykcja jest wykonywana przy użyciu dekorelatora piksel po pikselu bez dodatkowych informacji, używając sparametryzowanego, samokorygującego, ważonego zestawu predyktorów. Modelowanie kontekstowe obejmuje wyspecjalizowane modele statyczne i potężne modele metadaptacyjne, które uwzględniają błąd lokalny, z sygnalizowaną strukturą drzewa i wyborem predyktorów w zależności od kontekstu. Kodowanie entropijne używa algorytmu LZ77 i może wykorzystywać zarówno rANS (wariant przedziałowy Asymetrycznych Systemów Liczbowych), jak i kodowanie Huffmana (dla prostszych koderów lub w celu zmniejszenia narzutu danych w małych plikach)[potrzebny przypis].

Domyślnie implementacja referencyjna JPEG XL używa ustawień, które pomimo dobrej kompresji wciąż zapewniają jakość obrazu niemal nieodróżnialną od oryginału[11].

Animacje w tym formacie, w przeciwieństwie do formatów typowo filmowych (takich jak H.264 czy VP9), nie używają zaawansowanej kompresji międzyklatkowej, ale (podobnie do GIF) mają do dyspozycji pewne proste narzędzia:

  • klatka może aktualizować tylko część obrazu,
  • obraz może być nie tylko zastąpiony, ale też wmieszany, dodany lub przemnożony[12],
  • aż do 4 klatek[13] może być oznaczonych do przechowywania „łatek” wykorzystywanych w późniejszych klatkach[14].

Oprogramowanie i wsparcie

[edytuj | edytuj kod]

Implementacja referencyjna

[edytuj | edytuj kod]
libjxl
Logo libjxl
Logo programu
Ilustracja
Narzędzia wiersza poleceń cjxl (koder), jxlinfo (informacje o pliku) i djxl (dekoder)
Pierwsze wydanie 27 grudnia 2019; około 6 lat temu[15]
Aktualna wersja stabilna 0.12.0[16] edytuj / 1 lipca 2026; 56 dni temu
Język programowania C++
System operacyjny Linux, macOS, Windows
Rodzaj biblioteka programistyczna, kodek
Licencja BSD 3-clause (do 2021 roku Apache License 2.0)
Strona internetowa

Implementacją referencyjną formatu jest libjxl – napisana w C++ biblioteka udostępniana na 3-klauzulowej licencji BSD (wcześniej na Apache License 2.0). Stanowi ona zarazem czwartą część normy ISO/IEC 18181, zatytułowaną Reference software[17]. Poza samą biblioteką pakiet zawiera narzędzia wiersza poleceń: koder cjxl, dekoder djxl, jxlinfo wypisujący informacje o pliku, implementację metryki jakości obrazu ssimulacra2 oraz wtyczkę dla GIMP-a i biblioteki gdk-pixbuf. libjxl jest dostępna w repozytoriach wszystkich głównych dystrybucji Linuxa i systemów BSD[18].

Przeglądarki internetowe

[edytuj | edytuj kod]
  • Safari (silnik WebKit) – domyślne włączone dekodowanie JPEG XL, od Safari 17 beta (6 czerwca 2023); wsparcie jest częściowe (obrazy statyczne, bez animacji i dekodowania progresywnego)[19].
  • Google Chrome / Chromium – po usunięciu obsługi w Chrome 110 (2023) dekodowanie przywrócono w Chrome 145 (wydanie stabilne 10 lutego 2026). Wykorzystano nowy dekoder w języku Rust o nazwie jxl-rs zamiast referencyjnej biblioteki libjxl (w C++). Funkcja jest domyślnie wyłączona i wymaga włączenia przez użytkownika chrome://flags/#enable-jxl-image-format[20][21].
  • Mozilla Firefox – od Firefox 152 (16 czerwca 2026) obsługa JPEG XL jest dostarczana w domyślnym wydaniu release, jednak funkcja ta wymaga aktywacji parametru image.jxl.enabled lub funkcji Multimedia: JPEG XL w ustawieniach[22].
  • Przeglądarki oparte na Chromium (Microsoft Edge, Opera, Brave, Vivaldi) do obsługi formatu wymagają aktywacji tej funkcji przez użytkownika[23].
  • Według serwisu Can I Use globalny udział przeglądarek obsługujących JPEG XL wynosi 13,6% ze względu na domyślą obsługę w przeglądarce Safari i iOS Safari 17+); Chrome, Edge i Firefox nie wchodzą do tego udziału ze względu na obsługę w formie funkcji eksperymentalnej[24].

Edytory i przeglądarki grafiki

[edytuj | edytuj kod]
  • Adobe Photoshop – natywny odczyt i zapis JPEG XL od wersji 26.8 (17 czerwca 2025)[25].
  • GIMP – import od 2.10.32, eksport (8-bitowy, bezstratny) dodano w 2.10.34 (27 lutego 2023); GIMP 3.x obsługuje format przez GEGL/libjxl[26].
  • Krita – natywny odczyt i zapis (w tym animacje) od 5.1.0 (18 sierpnia 2022)[27].
  • Darktable(inne języki) – odczyt od 4.2.0 (21 grudnia 2022)[28].
  • RawTherapee(inne języki) – tylko odczyt, od wersji 5.11 (zależny od libjxl); eksport zapowiedziano na wydanie 6.0[29].
  • DigiKam – od 8.0.0 (16 kwietnia 2023)[30].
  • FastStone Image Viewer – od wersji 8.4 (29 maja 2026)[31].
  • XnView MP – od 0.97.0 (19 sierpnia 2020)[32].
  • Paint.NET – wsparcie natywne od 5.1.5, przez wtyczkę od 4.3.12
  • IrfanView – przez wtyczkę od 4.59[33].
  • Aplikacje KDE (Gwenview, Dolphin, digiKam, Krita) obsługują JPEG XL (odczyt i zapis) dzięki wtyczce KImageFormats zbudowanej z libjxl; przeglądarka obrazów GNOME (Loupe / „Podgląd obrazów") obsługuje format przez bibliotekę glycin[34].

Systemy operacyjne i sprzęt

[edytuj | edytuj kod]
  • Windows 11 (24H2) – wsparcie odczytu przez opcjonalny dodatek „JPEG XL Image Extension" ze sklepu Microsoft Store (dostępny od marca 2025), oparty na libjxl i działający jako kodek Windows Imaging Component (WIC). Umożliwia miniatury i podgląd w Eksploratorze plików oraz odczyt w aplikacjach korzystających z WIC (m.in. Paint, Windows Media Player Legacy); aplikacja Microsoft Photos uzyskała odczyt plików .jxl w kompilacji 2025.11030.20006.0[35].
  • macOS / iOS / iPadOS / visionOS – natywne wsparcie na poziomie systemu od czasu wprowadzenia obsługi w Safari 17 (2023); w macOS 26 Tahoe oraz iOS/iPadOS 26 pliki .jxl otwiera aplikacja Podgląd (Preview)[36].
  • iPhone 16 Pro – od 2024 możliwość rejestrowania zdjęć ProRAW w formacie JPEG XL[37].

Dokumenty, standaryzacja i PDF

[edytuj | edytuj kod]

Norma ISO/IEC 18181 (JPEG XL) składa się z czterech części: część 1 (system kodowania) i część 2 (format pliku) mają drugie edycje z 2024, część 3 (testowanie zgodności) – drugą edycję ze stycznia 2025, a część 4 (oprogramowanie referencyjne) – z 2022[38].

W listopadzie 2025 PDF Association ogłosiło, że JPEG XL zostanie dodany do specyfikacji PDF jako preferowany format obrazów o wysokim zakresie dynamiki (HDR). Dyrektor techniczny stowarzyszenia Peter Wyatt stwierdził: „Musimy przyjąć nowy format obrazu, który obsłuży treści HDR […] wybraliśmy JPEG XL jako nasze preferowane rozwiązanie", wskazując również obsługę obrazów o rozdzielczości ponad miliarda pikseli oraz do 4099 kanałów po 32 bity. Prace toczą się w ramach grupy roboczej ISO TC 171 SC 2 WG 8[39].

Przypisy

[edytuj | edytuj kod]
  1. Provisional Standard Media Type Registry. IANA, 2021-01-28. [dostęp 2021-03-17]. (ang.).
  2. Can JPEG XL Become the Next Free and Open Image Format? - Slashdot. slashdot.org. [dostęp 2021-03-19]. (ang.).
  3. Next-Generation Image Compression (JPEG XL) Final Call for Proposals. 2018-04-23. [dostęp 2021-03-17]. (ang.).
  4. v0.2 JPEG XL Reference Software. 2020-12-24. [dostęp 2021-03-17]. (ang.).
  5. JPEG XL reaches Committee Draft. 2019-08-03. [dostęp 2021-03-17]. [zarchiwizowane z tego adresu (2019-08-03)]. Cytat: The current contributors have committed to releasing it publicly under a royalty-free and open source license. (ang.).
  6. Jyrki Alakuijala, Jon Sneyers, Luca Versari, Jan Wassenberg: JPEG White Paper: JPEG XL Image Coding System. 2021-01. [dostęp 2021-03-17]. (ang.).
  7. JPEG XL Reference Software. [dostęp 2021-03-17]. (ang.).
  8. FLIF - Free Lossless Image Format. 2021-02-09. [dostęp 2021-04-06]. (ang.).
  9. Jyrki Alakuijala i inni, JPEG XL next-generation image compression architecture and coding tools, Andrew G. Tescher, Touradj Ebrahimi (red.), „Applications of Digital Image Processing XLII”, SPIE, 2019, DOI: 10.1117/12.2529237, ISBN 978-1-5106-2967-7 (ang.).
  10. JPEG XL vs. AVIF - Page 2. encode.su. [dostęp 2021-03-19]. (ang.).
  11. Jon Sneyers: How JPEG XL Compares to Other Image Codecs. 2020-05-26. [dostęp 2021-03-17]. (ang.).
  12. lib/jxl/frame_header.h · 131953af · jpeg / JPEG XL Reference Software · GitLab. 2020-11-10. [dostęp 2021-05-17]. (ang.).
  13. lib/jxl/common.h · 44778c69 · jpeg / JPEG XL Reference Software · GitLab. 2021-05-21. [dostęp 2021-05-22]. (ang.).
  14. lib/jxl/frame_header.h · 131953af · jpeg / JPEG XL Reference Software · GitLab. 2020-11-10. [dostęp 2021-05-17]. (ang.).
  15. Update JPEG-XL with latest changes.. GitHub, 2019-12-27. [dostęp 2022-10-10]. [zarchiwizowane z tego adresu (2022-10-10)]. (ang.).
  16. Release 0.12.0. 1 lipca 2026. [dostęp 2026-07-02]. (ang.).
  17. ISO/IEC 18181-4:2022 – Information technology – JPEG XL image coding system – Part 4: Reference software. ISO. [dostęp 2026-07-27]. (ang.).
  18. libjxl package versions – Repology. repology.org. [dostęp 2026-07-27]. (ang.).
  19. News from WWDC23: WebKit Features in Safari 17 beta. WebKit, 2023-06-06. [dostęp 2026-07-27]. (ang.).
  20. Chrome 145 – Release notes. Chrome for Developers, 2026-02-10. [dostęp 2026-07-27]. (ang.).
  21. Google Chrome 145 Released With JPEG-XL Image Support. Phoronix, 2026-02-11. [dostęp 2026-07-27]. (ang.).
  22. Firefox 152.0 – release notes. Mozilla, 2026-06-16. [dostęp 2026-07-27]. (ang.).
  23. Software Support – JPEG XL. jpegxl.info. [dostęp 2026-07-27]. (ang.).
  24. JPEG XL in 2026: Back in Chrome, Still Not Ready for Your Website. Image CDN. [dostęp 2026-07-27]. (ang.).
  25. Feature summary. Adobe, 2025-06-17. [dostęp 2026-07-27]. (ang.).
  26. GIMP 2.10.34 Released. GIMP, 2023-02-27. [dostęp 2026-07-27]. (ang.).
  27. Krita 5.1.0 Released. Krita, 2022-08-18. [dostęp 2026-07-27]. (ang.).
  28. darktable 4.2.0 released. darktable, 2022-12-21. [dostęp 2026-07-27]. (ang.).
  29. RawTherapee v5.11. RawTherapee. [dostęp 2026-07-27]. (ang.).
  30. digiKam 8.0.0 release announcement. digiKam, 2023-04-16. [dostęp 2026-07-27]. (ang.).
  31. FastStone Image Viewer – Version History. FastStone, 2026-05-29. [dostęp 2026-07-27]. (ang.).
  32. XnView MP – Changelog. XnView. [dostęp 2026-07-27]. (ang.).
  33. Software Support – JPEG XL. jpegxl.info. [dostęp 2026-07-27]. (ang.).
  34. KDE/kimageformats. GitHub. [dostęp 2026-07-27]. (ang.).
  35. JPEG XL Image Extension. Microsoft Store. [dostęp 2026-07-27]. (ang.).
  36. News from WWDC23: WebKit Features in Safari 17 beta. WebKit, 2023-06-06. [dostęp 2026-07-27]. (ang.).
  37. iPhone 16 Pro lets users capture ProRAW photos in JPEG XL format. 9to5Mac, 2024-09-13. [dostęp 2026-07-27]. (ang.).
  38. ISO/IEC 18181-1:2024. ISO. [dostęp 2026-07-27]. (ang.).
  39. PDF spec will adopt JPEG XL – another chance for the format?. The Register, 2025-11-10. [dostęp 2026-07-27]. (ang.).

Linki zewnętrzne

[edytuj | edytuj kod]