La Mozilla Foundation è da sempre vicina ai problemi della rete, in particolare per quanto riguarda la navigazione web: “Rendere la rete un posto migliore”, è così che recita la mission.
Con l’avvento delle tecnologie mobile e dei piani dati, una delle casistiche da affrontare sempre più spesso è quella riguardante le immagini: se è vero che i siti web ottimizzati anche per la visualizzazione mobile si diffondono a macchia d’olio, è pur vero che la compressione delle immagini gioca un ruolo chiave per offrire un’esperienza di navigazione – quantomeno – decente nel caso di connettività a banda limitata.
E’ con questo scenario in mente che Mozilla ha annunciato oggi il progetto mozjpeg: sfruttando l’enorme compatibilità raggiunta dal formato di compressione JPEG nel corso degli anni – compatibilità non solo web, ma universale per app e programmi -, l’obiettivo della fondazione è quello di creare un encoder che vada a migliorare le percentuali di compressione, riducendo ulteriormente la dimensione delle immagini in formato JPEG senza però intaccare sulla qualità.
Questo perché, essendo più che altro un formato lossy (con perdita di qualità), l’efficienza della compressione è stata messa nel corso degli anni in secondo piano: a compressione maggiore corrisponderebbe inevitabilmente qualità minore.
Gli encoder JPEG di produzione sono rimasti piuttosto statici in termini di efficienza, per cui sostituire JPEG con qualcosa migliore è un argomento di discussione piuttosto frequente.
Si legge sull’annuncio di Mozilla, che continua:
La conseguenza peggiore di un’eventuale transizione da JPEG sarebbe il dover restare anche diversi anni con un tasso di compatibilità scarso con i software più usati del mondo. Noi (di Mozilla) non dubitiamo che prima o poi saranno apportati miglioramenti algoritmici, si spera presto. Anche se la transizione dovesse iniziare per incombenza, il JPEG verrebbe in tutti casi usato largamente.


Da qui l’idea: secondo i Mozilla-man i codificatori JPEG non hanno ancora raggiunto – anche dopo 20 anni – il loro potenziale di compressione migliore, ecco quindi il motivo alla base del progetto.
Per ora in versione 1.0, l’encoder mozjpeg è un fork di libjpeg-turbo con in più la funzionalità ‘jpgcrush’, uno script in perl in grado di ridurre la dimensione delle immagini (alzando il rate di compressione) usando codifica progressiva sul minor numero di bit possibile. Al momento i risultati parlano di un range di compressione in termini di dimensione variabile dal 2 al 6 % su immagini PNG già codificate tramite libjpeg-turbo, e di una media del 10% in più a fronte di un campione di 1.500 JPEG presi da Wikimedia.
L’obiettivo futuro è quello di migliorare ulteriormente il tasso di codifica utilizzando l’algoritmo di quantizzazione Trellis.