JPEG XL
Estensione.jxl
Magic number
  • FF 0A
  • 00 00 00 0C 4A 58 4C 20 0D 0A 87 0A
Tipo MIMEimage/jxl
SviluppatoreJoint Photographic Experts Group, Google, Cloudinary
LicenzaRoyalty-free
TipoCompressione dell'immagine
CompressioneSia lossy che lossless
Estensione diPIK, FLIF, FUIF
StandardISO/IEC 18181
Formato aperto?
Sito webjpeg.org/jpegxl/

JPEG XL è un formato per immagini di tipo raster. Supporta sia una compressione con perdita di dati che una compressione senza perdita di dati. È progettato per ottenere una compressione più efficiente dei formati preesistenti e fungere da loro sostituto in tutte le situazioni.[1]

Nome

Il nome è composto da JPEG derivante da il Joint Photographic Experts Group, che è il comitato che ne progettò il formato, X parte del nome di diversi standard JPEG dal 2000: JPEG XT, JPEG XR, JPEG XS) e L per lungo termine. La L è inclusa poiché l'intenzione degli autori per il formato è quella di sostituire il formato precedente JPEG e durare altrettanto a lungo.[2]

Autori

Autori principali: Jyrki Alakuijala, Jon Sneyers, Luca Versari.

Altri collaboratori: Sami Boukortt, Alex Deymo, Moritz Firsching, Thomas Fischbacher, Eugene Kliuchnikov, Robert Obryk, Alexander Rhatushnyak, Zoltan Szabadka, Lode Vandevenne, Jan Wassenberg.

Storia

Nell'agosto 2017, JTC1 / SC29 / WG1 (JPEG) ha pubblicato un invito a presentare proposte per JPEG XL, lo standard di codifica delle immagini di nuova generazione.[3] Le proposte sono state presentate entro settembre 2018, portando a una bozza del comitato nel luglio 2019.[4] Si basava principalmente su una combinazione di una proposta denominata PIK,[5] presentata da Google, e una proposta denominata FUIF[6] — a sua volta basato su FLIF — presentato da Cloudinary.

Il flusso di bit è stato congelato in modo informale il 24 dicembre 2020 con il rilascio della versione 0.2 del software di riferimento libjxl.[7] Il formato del file e il sistema di codifica principale sono stati formalmente standardizzati rispettivamente il 13 ottobre 2021 e il 30 marzo 2022.[8][9]

Le proposte sono state presentate entro settembre 2018, portando a una bozza del comitato nel luglio 2019, con il formato del file e il sistema di codifica principale sono stati formalmente standardizzati rispettivamente il 13 ottobre 2021 e il 30 marzo 2022.[10][11]

Caratteristiche

Le caratteristiche principali sono:[12][13][14][15]

Descrizione

L'invito a presentare proposte[3] per JPEG XL parla del requisito di uno standard di compressione delle immagini di prossima generazione con un'efficienza di compressione sostanzialmente migliore (miglioramento del 60%) rispetto a JPEG. Lo standard dovrebbe superare le prestazioni di compressione delle immagini fisse mostrate da HEIC, AVIF, WebP e JPEG 2000. Fornisce inoltre opzioni di ricompressione senza perdite efficienti per le immagini nel formato JPEG tradizionale/legacy. JPEG XL supporta la compressione con perdita e la compressione senza perdita di immagini ad altissima risoluzione (fino a 1 terapixel), fino a 32 bit per componente, fino a 4099 componenti (inclusa la trasparenza alfa), immagini animate e anteprime incorporate. Dispone di funzionalità mirate alla distribuzione sul Web come la decodifica progressiva avanzata[19] e un sovraccarico minimo dell'intestazione, nonché funzionalità mirate all'elaborazione di immagini e alla stampa digitale, come il supporto per più livelli, CMYK e tinte piatte. È specificamente progettato per gestire senza problemi spazi colore ampi con una gamma dinamica elevata come Rec. 2100 con la funzione di trasferimento PQ o HLG.

Programmi ed adozione

Implementazioni codec

libjxl
software
Logo
Logo
Schermata di esempio
Schermata di esempio
GenereImplementazione di riferimento (non in lista)
SviluppatoreJoint Photographic Experts Group, Google e Cloudinary
Data prima versione27 dicembre 2019[20]
Ultima versione0.9.0 (22 dicembre 2023)
Sistema operativoUnix-like
macOS
Microsoft Windows
LinguaggioC++
LicenzaBSD 3-clausole
(licenza libera)
Sito webgithub.com/libjxl/libjxl

Browser web

Software decodifica o esportazione jxl

Supporto futuro

Dettagli tecnici

Architettura del codec

JPEG XL si basa sulle idee del formato PIK di Google e del formato FUIF di Cloudinary (a sua volta basato su FLIF).[27] La modalità modulare è basata su FUIF, nato dopo FLIF. Contiene degli elementi lossless PIK, WebP lossless e nuove idee che sono state sviluppate durante lo sviluppo di Jxl dal suo punto di partenza PIK + FUIF.[28] JPEG XL può ricodificare senza perdita di dati i file JPEG esistenti copiando direttamente i coefficienti di blocco DCT di JPEG, su blocchi VarDCT 8 × 8, rendendo possibili file di dimensioni inferiori grazie ad una migliore codifica entropica.

I dati di ricostruzione JPEG consentono la transcodifica di nuovo nel file JPEG originale, sebbene i vincoli limitino il supporto per alcuni file.[29]

Il formato si basa principalmente su 2 modalità di codifica, incluse nella finalizzazione di gennaio 2021:

Uno dei modi in cui le immagini basate su VarDCT possono essere caricate progressivamente è salvando i coefficienti DC di VarDCT con lo "squeeze" di modular facendo funzionare le modalità entrambe in tandem ed esse possono essere assistite da una modellazione separata di caratteristiche specifiche dell'immagine, sconosciute in altri codec al momento della creazione del formato:

Le modalità con perdita in genere utilizzano lo spazio colore XYB derivato da LMS.

La previsione viene eseguita utilizzando un decorrelatore pixel per pixel senza informazioni collaterali, incluso un insieme ponderato di predittori parametrizzati con correzione automatica. La modellazione del contesto include modelli statici specializzati e potenti modelli meta-adattivi che tengono conto dell'errore locale, con una struttura ad albero segnalata e una selezione di predittori per contesto. La codifica dell'entropia è abilitata per LZ77 e può utilizzare sia i sistemi numerici asimmetrici (ANS) sia la codifica Huffman (per codificatori a bassa complessità o per ridurre il sovraccarico di flussi brevi).[senza fonte]

L'impostazione predefinita è un'impostazione visivamente quasi priva di perdite che fornisce comunque una buona compressione.

Le immagini animate (multi-frame) non eseguono previsioni avanzate tra i frame, sebbene siano disponibili alcuni rudimentali strumenti di codifica tra frame:

Supporto e adozione del settore

Oltre a Cloudinary e Google (originariamente), durante l'implementazione preliminare di JPEG XL nei browser Web, diversi noti rappresentanti di marchi del settore hanno espresso pubblicamente il loro supporto per JPEG XL come opzione preferita, tra cui Facebook ,[30][31] Adobe,[32][33] Intel e la Video Electronics Standards Association,[34][35][36] Flickr e SmugMug ,[37] Shopify,[38] la Fondazione Krita,[39] e Serif Ltd.[40]

Miglioramenti rispetto al FUIF

La compressione FLIF può essere sperimentata approssimativamente in JPEG XL come "modulare" -- con la maggior parte delle cose migliorate, ma anche alcune indebolite per dirla in breve, FLIF/FUIF è circa il 50% in più di byte rispetto alla modalità VarDCT di JPEG XL, quindi non lo è esattamente competitivo per le fotografie.

In JPEG XL abbiamo esteso FLIF/FUIF con la palettizzazione delta (ispirazione senza perdita di dati WebP), alberi di contesto statici anziché adattivi per una decodifica più rapida (per velocità), con il predittore di gradiente di Alexander Ratushnyak (possibile ispirazione gralic/qlic) e con LZ77 con 2d short codici (ispirazione senza perdita di dati WebP).

Come funziona LZ77 in jxl

Per comprimere il testo, che è principalmente pattern ripetitivo, jxl ha due metodi principali: patch e lz77 con codici di distanza 2d. La limitazione di lz77 è che i gruppi sono codificati in modo indipendente, quindi non puoi fare riferimenti al di fuori di ciascun gruppo 256x256 (per impostazione predefinita). WebP non ha gruppi; proprio come PNG è basato su righe, non affiancato, il che è negativo per la decodifica parallela ma buono per schemi ripetitivi orizzontalmente come il testo. Un'altra cosa è che non abbiamo mai veramente capito come combinare efficacemente l'apprendimento dell'albero MA con lz77, quindi l'encoder attuale esegue sostanzialmente l'uno o l'altro ma non entrambi, il che ovviamente non è ottimale. Una migliore euristica delle patch potrebbe portare a miglioramenti sostanziali per le immagini con molto testo o altri schemi ripetitivi come icone o avatar. Le patch non hanno un limite di limite di gruppo: sono codificate in un frame invisibile separato e possono quindi essere referenziate ovunque. Il problema principale è che non è facile rilevare tutti i pattern ripetuti in un'immagine in un modo che sia comunque ragionevolmente veloce.

Stato standardizzazione

Nome comune Parte Prima data di rilascio pubblica (Prima edizione) Numero ISO/IEC Titolo formale
JPEG XL Parte 1 30 marzo 2022 ISO/IEC 18181-1 JPEG XL Image Coding System — Part 1: Core coding system
Parte 2 13 ottobre 2021 ISO/IEC 18181-2 JPEG XL Image Coding System — Part 2: File format
Parte 3 3 ottobre 2022 ISO/IEC 18181-3 JPEG XL Image Coding System — Part 3: Conformance testing
Parte 4 5 agosto 2022 ISO/IEC 18181-4 JPEG XL Image Coding System — Part 4: Reference software

Note

  1. ^ (EN) Can JPEG XL Become the Next Free and Open Image Format? - Slashdot, su tech.slashdot.org. URL consultato il 17 marzo 2021.
  2. ^ (EN) Support for reading/writing JPEG XL images (#4681) · Issues · GNOME / GIMP, su GitLab. URL consultato il 17 marzo 2021.
  3. ^ a b (EN) N79010 Final Call for Proposals for a Next-Generation Image Coding Standard (JPEG XL) (PDF), su jpeg.org.
  4. ^ (EN) Committee Draft of JPEG XL Image Coding System, su arxiv.org.
  5. ^ (EN) PIK, A new lossy/lossless image format for photos and the internet, su github.com.
  6. ^ (EN) FUIF, Free Universal Image Format, su github.com.
  7. ^ (EN) v0.2 JPEG XL Reference Software, su gitlab.com.
  8. ^ (EN) ISO/IEC 18181-1:2022 Information technology — JPEG XL image coding system — Part 1: Core coding system, su iso.org.
  9. ^ (EN) ISO/IEC 18181-2:2021 Information technology — JPEG XL image coding system — Part 2: File format, su iso.org.
  10. ^ Alexander Rhatushnyak, Jan Wassenberg, Jon Sneyers, Jyrki Alakuijala, Lode Vandevenne, Luca Versari, Robert Obryk, Zoltan Szabadka, Evgenii Kliuchnikov, Iulia-Maria Comsa, Krzyszto f Potempa, Martin Bruse, Moritz Firsching, Renata Khasanova, Ruud van Asseldonk, Sami Boukortt, Sebastian Gomez e Thomas Fischbacher, Committee Draft of JPEG XL Image Coding System, 2019.
  11. ^ N79010 Final Call for Proposals for a Next-Generation Image Coding Standard (JPEG XL) (PDF), in ISO/IEC JTC 1/SC 29/WG 1 (ITU-T SG16). URL consultato il 29 maggio 2018.
  12. ^ JPEG XL reaches Committee Draft, su JPEG Org., 3 agosto 2019. URL consultato il 3 agosto 2019 (archiviato dall'url originale il 3 agosto 2019).
    «The current contributors have committed to releasing it publicly under a royalty-free and open source license.»
  13. ^ JPEG XL White Paper (PDF), su JPEG Org., 22 gennaio 2021. URL consultato il 17 marzo 2021 (archiviato dall'url originale il 2 maggio 2021).
  14. ^ (EN) encode.su JPEG XL VS AVIF Jyrki Alakuijala, su encode.su.
  15. ^ (EN) jpeg xl whitepaper (PDF), su ds.jpeg.org.
  16. ^ Jon Sneyers, How JPEG XL Compares to Other Image Codecs, su Cloudinary, 26 maggio 2020. URL consultato il 19 febbraio 2021 (archiviato dall'url originale il 30 dicembre 2021).
  17. ^ (EN) JPEG - 84th Meeting – Brussels, Belgium - JPEG XL reaches Committee Draft, su jpeg.org. URL consultato il 17 marzo 2021.
  18. ^ (EN) jpeg / JPEG XL Reference Software, su GitLab. URL consultato il 17 marzo 2021.
  19. ^ (EN) Using Saliency in progressive JPEG XL images, su opensource.googleblog.com.
  20. ^ Update JPEG-XL with latest changes., su GitHub, 27 dicembre 2019. URL consultato il 10 ottobre 2022.
  21. ^ Leo Izen, hydrium, su GitHub, 6 marzo 2023. URL consultato il 2 aprile 2023.
  22. ^ (EN) jxl-winthumb, su github.com.
  23. ^ (EN) FFmpeg Lands JPEG-XL Support, su phoronix.com. URL consultato il 24 aprile 2022.
  24. ^ JPEGView, su GitHub. URL consultato il 9 aprile 2023.
  25. ^ Ksnip, su GitHub. URL consultato il 9 aprile 2023.
  26. ^ (EN) PDF/R revisions and new highly compressed image format (Rene Rebe, Exactcode). URL consultato l'8 novembre 2021.
  27. ^ FLIF - Free Lossless Image Format, su flif.info. URL consultato il 6 aprile 2021 (archiviato dall'url originale il 21 dicembre 2021).
  28. ^ (EN) FLIF, 3 Sep 2021, jonsneyers comment, su github.com.
  29. ^ Jon Sneyers, Feature request: allow jbrd to reconstruct a part of the file when it's not possible for the whole file, su GitHub, 10 dicembre 2021.
  30. ^ Erik Andre, Dichiarazione di supporto di Facebook sul problema Chromium n. 1178058, su bugs.chromium.org, 20 aprile 2021. URL consultato il 3 novembre 2022.
  31. ^ (EN) Erik Andre, Facebook Support Statement for Firefox Issue #1539075, su bugzilla.mozilla.org, 24 maggio 2021. URL consultato il 3 novembre 2022.
  32. ^ (EN) Leonard Rosenthol, Dichiarazione del supporto Adobe su problema Firefox #1539075, su bugzilla.mozilla.org, 6 luglio 2021. URL consultato il 3 novembre 2022.
  33. ^ Eric Chan, Dichiarazione di supporto Adobe per il problema con Chromium #1178058, su bugs.chromium.org, 23 agosto 2022. URL consultato il 3 novembre 2022.
  34. ^ Roland Wooster, Dichiarazione di supporto per Chromium Issue # 1178058 del Presidente di VESA DisplayHDR e Principal Engineer di Intel Client Computing Group, su bugs.chromium.org, 24 agosto 2022. URL consultato il 3 novembre 2022.
  35. ^ Mariot Chauvin, Dichiarazione di sostegno del Guardian riguardo al problema Chromium n. 1178058, su bugs.chromium.org, 26 agosto 2022. URL consultato il 3 novembre 2022.
  36. ^ (EN) Implement support for JPEG XL, su bugzilla.mozilla.org. URL consultato il 3 novembre 2022.
  37. ^ (EN) Don MacAskill, Dichiarazione di supporto da parte di Flickr e SmugMug sul numero #1539075 di Firefox, su bugzilla.mozilla.org, 4 gennaio 2022. URL consultato il 3 novembre 2022.
  38. ^ (EN) Colin Bendell, Dichiarazione dell'assistenza Shopify sulla questione Chromium n. 1178058, su bugs.chromium.org, 17 ottobre 2022. URL consultato il 3 novembre 2022.
  39. ^ (EN) Rempt Rempt, Dichiarazione di supporto della Krita Foundation sulla questione Chromium #1178058, su bugs.chromium.org, 10 novembre 2022. URL consultato l'11 novembre 2022.
  40. ^ (EN) Tony Brightman, Dichiarazione di supporto da SerifLabs di Serif Ltd. sul problema di Chromium n. 1178058, su bugs.chromium.org, 11 novembre 2022. URL consultato l'11 novembre 2022.

Altri progetti