For faster navigation, this Iframe is preloading the Wikiwand page for JPEG XL.

JPEG XL

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 (stan na listopad 2022)

[edytuj | edytuj kod]

Oficjalne wsparcie

[edytuj | edytuj kod]
  • ImageMagick[15] – narzędzie do przetwarzania grafiki rastrowej
  • XnView MP[16] – przeglądarka i edytor grafiki rastrowej
  • MConverter[17] – konwerter plików online
  • Squoosh[18] – konwerter formatów graficznych działający w całości w przeglądarce na bazie WebAssembly
  • gThumb[19] – przeglądarka obrazów na Linuxa
  • ImageGlass[20] – przeglądarka obrazów na Windowsa
  • Affinity Photo[21] – edytor grafiki rastrowej

Nieoficjalne wsparcie

[edytuj | edytuj kod]

Wsparcie testowe

[edytuj | edytuj kod]

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, DOI10.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. ImageMagick - Image Formats. imagemagick.org. [dostęp 2021-03-19]. (ang.).
  16. 0001845: JPEG XL - MantisBT. xnview.com. [dostęp 2021-03-19].
  17. MConverter: Free, Easy-to-Use Online File Converter ⚡. [dostęp 2021-04-06]. Cytat: We can also convert to and from new, more efficient image formats, such as AVIF and JPEG XL. (ang.).
  18. Squoosh. [dostęp 2021-04-06]. (ang.).
  19. gThumb Image Viewer 3.11.3 Adds JPEG XL (.jxl) Support [Ubuntu PPA] | UbuntuHandbook. ubuntuhandbook.org, 2021-04-15. [dostęp 2021-05-17]. (ang.).
  20. Announcing ImageGlass 8.1 - Home | ImageGlass. imageglass.org, 2021-04-17. [dostęp 2021-05-17]. (ang.).
  21. Version 2 of Affinity apps: What’s new? [online], Affinity [dostęp 2022-11-09] (ang.).
  22. GitHub - mirillis/jpegxl-wic: JPEG XL Windows Imaging Component implementation. [dostęp 2021-04-06]. (ang.).
  23. GitHub - yllan/JXLook: JPEG-XL viewer on macOS. [dostęp 2021-04-06]. (ang.).
  24. GitHub - novomesk/qt-jpegxl-image-plugin: Qt plug-in to allow Qt and KDE based applications to read/write JXL images.. [dostęp 2021-04-06]. (ang.).
  25. plugins/gimp/CMakeLists.txt · ff093712 · jpeg / JPEG XL Reference Software · GitLab. 2019-12-27. [dostęp 2021-05-17]. (ang.).
  26. 1178058 - chromium - An open-source project to help move the web forward. - Monorail. chromium.org. [dostęp 2021-03-19]. (ang.).
  27. 1178058 - chromium - An open-source project to help move the web forward. - Monorail [online], bugs.chromium.org [dostęp 2022-11-23].
  28. 1539075 - (JPEG-XL) Implement support for Next-Generation Image Compression (JPEG XL). mozilla.org. [dostęp 2021-03-19]. (ang.).

Linki zewnętrzne

[edytuj | edytuj kod]
{{bottomLinkPreText}} {{bottomLinkText}}
JPEG XL
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?