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 (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]
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy