JPEG “progressivo”: perché molti siti web evitano il rendering dei JPEG in quel modo? Vantaggi svantaggi?


39

Quando le immagini JPEG vengono utilizzate da una pagina Web, in genere vengono visualizzate dall'alto verso il basso ... ma possono anche essere renderizzate utilizzando una modalità chiamata JPEG progressiva , in cui l'immagine inizia a grandezza naturale , ma sfocata , e quindi diventa più nitida con passaggi successivi, fino a quando non è completamente caricato. Il caricamento progressivo richiede che l'immagine sia stata salvata in questo modo.

Perché più siti Web non utilizzano JPEG progressivo? Quali sono gli svantaggi? È semplicemente una mancanza di supporto per gli strumenti o questi file sono in qualche modo inferiori alle tradizionali immagini JPEG con rendering top-down?


2
Che cosa è successo anche alle gif intrecciate?

7
Erano un grande costruttore di suspense nei film del 1990 circa, in attesa che l'immagine si caricasse, oh è un po 'meno bloccata, ok possiamo quasi vedere la faccia degli assassini ... BAM [tagliato alla drammatica sequenza d'azione]
Mark Henderson,

1
Mi piace l'algoritmo di ingrandimento infinito migliorato usato in Blade Runner.
Chris W. Rea,

3
@ Chris, non è niente in confronto al software in Red Dwarf .
Peter Taylor,

@PeterTaylor È fantastico :-)
Chris W. Rea,

Risposte:


14

JPEG progressivo ha avuto il supporto scattershot sin dall'inizio. La pagina Wikipedia su JPEG dice:

Tuttavia, i JPEG progressivi non sono così ampiamente supportati, [citazione necessaria] e persino alcuni software che li supportano (come versioni di Internet Explorer precedenti a Windows 7) [12] visualizzano l'immagine solo dopo che è stata completamente scaricata.

NB La prima istruzione non è fornita e la fonte per la seconda non dice necessariamente che questa è supportata solo in Windows 7.

Non ricordo quando ho evitato per la prima volta Progressive JPEG, ma il problema più recente è stato che i parser di immagini in Flash (che può caricare PNG, GIF e JPEG) non possono neanche caricare Progressive JPEG ( link aggiornato su Internet Archive ) .


Ma usare Flash è male! ;-)
Marco Demaio il

15

Di solito, le immagini vengono salvate in modo progressivo.

Non ho mai sperimentato o sentito parlare di inconvenienti o problemi di rendering . E anche se alcuni browser molto vecchi potrebbero non rendere l'effetto progressivo, alla fine rendono comunque l'immagine, quindi non è un grosso problema.

Le immagini JPEG progressive sono generalmente di dimensioni inferiori rispetto alla stessa immagine senza progressiva .

Ad esempio, un'immagine JPG 8K (qualità massima) potrebbe facilmente diventare 6K (qualità ancora massima) quando viene adottato il progressivo e senza perdere un pixel di definizione.

Inoltre, con editor di immagini come Photoshop, il salvataggio di un'immagine come JPG progressivo non richiede nulla (è solo una casella di controllo nella finestra che appare quando si utilizza il comando "Salva con nome"), quindi di solito lo faccio.


7
Infatti, yuiblog.com/blog/2008/12/05/imageopt-4 ha riscontrato che il 94% dei file JPEG più grandi di 10 KB si comprime meglio (più piccolo) quando progressivo (è diverso per i file piccoli, tuttavia, poiché il 75% dei file JPEG è più piccolo di 10 KB compressi meglio senza modalità progressiva). Quindi è generalmente una buona idea salvare JPEG di grandi dimensioni come progressivi.
John Mellor,

1
Sono d'accordo con John, se riduci la qualità dalla qualità massima a molto alta (80% -90%) o inferiore, vedrai che il progressivo non produce più una dimensione inferiore.
joelpittet,

1
Non puoi sapere con certezza che le immagini 6K e 8K sono della stessa qualità. È l'impostazione massima e la riduzione sarà invisibile. Ho il sospetto che il file più piccolo sarà più smarrito. Non è possibile che l'algoritmo progressivo sia più efficiente del 25%. Semmai, dovrebbe essere meno efficiente perché aggiunge un livello di separazione ai dati compressi correlati.
Zdenek,

6

Artlung ha trattato alcune considerazioni di supporto, ma c'è anche il fatto che non avrà importanza per la maggior parte del tempo. Il bit importante nella domanda è "fino a quando non è completamente caricato". Il formato progressivo non è una bellezza estetica che rende sfocata l'immagine, è funzionale:

Se un'immagine è abbastanza grande (per dimensione del file) da impiegare un po 'a scaricarsi, allora vedrai la progressione.
Anche se ogni JPEG ovunque è stato salvato come progressivo, alla velocità di connessione comune corrente la stragrande maggioranza delle immagini che incontrerai non è abbastanza grande da vedere l'effetto in modo significativo. Questa era una grande idea quando tutti erano su modem per telefoni lenti, ma è sempre più una curiosità di un'applicazione pratica limitata oltre ai siti che richiedono davvero immagini molto grandi come un fotografo esigente o qualcosa del genere.

Lo stesso vale per le GIF intrecciate, dal momento che qualcuno le ha applicate nei commenti.

C'è un potenziale fattore di pubblico qui, diciamo se consideri i paesi con un'infrastruttura di rete meno sviluppata in cui possono ottenere velocità significativamente più lente, ma non posso parlarne. Ho potuto vedere come, eventualmente, avere qualche applicazione per la navigazione mobile, ma poi abbiamo loop back al supporto delle ipotesi per la funzione.


1
Penso che il cellulare sia in realtà una grande considerazione qui - suppongo che il nuovo smartphone lo supporti; e renderà l'esperienza di navigazione su 3G o velocità più basse molto meglio - se vedi immagini che hanno un caricamento irrilevante, puoi andartene prima di perdere più tempo o denaro
Baumr

Un browser mobile potrebbe avere un'impostazione per visualizzare solo il primo o il secondo passaggio di un JPEG progressivo per impostazione predefinita. Ciò consentirà di risparmiare sui dati e fornire un'esperienza di navigazione più rapida.
Dom

Baumr: No, il costo della CPU è troppo elevato; il mio telefono in realtà non disegna nemmeno parzialmente un'immagine normale, attende il pieno carico prima ancora di essere visualizzato.
Zdenek,

sunk818: Sebbene teoricamente possibile, sarebbe un hack a più livelli. Dovresti analizzare il JPEG nella parte TCP dello stack e interrompere il trasferimento in anticipo ... Terribile. E si spezzerebbe anche la pipeline. E la maggior parte delle librerie JPEG rifiuta di lavorare con tale file, quindi dovresti usare anche un hack homebrew! Proprio no.
Zdenek,

3

Google utilizza il caricamento progressivo delle loro immagini in images.google.com Inizialmente allungano il pollice per visualizzare in anteprima le dimensioni, quindi caricano l'immagine originale. Penso che sia una buona pratica. Proprio come JPEG progressivo


Lo faccio anch'io. E la mia soluzione è ancora migliore perché Google carica l'immagine intera nascosta mentre la faccio cadere progressivamente nella versione di bassa qualità.
Zdenek,

2

Il rendering progressivo (gif / jpeg) era per i bei vecchi tempi di Internet in cui i server erano lenti e il trasferimento dei dati del miglio finale veniva effettuato durante una scansione attraverso POTS. Nessuno ci perde più tempo.

Tante persone del mio sito Web sono a banda larga che non ha altro scopo se non quello di una dissolvenza minima in effetti su un'immagine molto grande (anche se su un cavo da 8 MB, è appena percettibile). Se il tuo pubblico è ancora al telefono di accesso remoto, potresti doverti preoccupare.

E come sottolineato nei commenti qui sotto, ciò che è vecchio è nuovo e la nuova velocità di trasferimento dell'ultimo miglio è ancora un problema per la rete di telefonia mobile e l'accesso satellitare a causa di problemi di velocità del collegamento o di latenza. Quindi presta attenzione al tuo pubblico e implementalo nuovamente per una migliore esperienza utente dove ne hai bisogno.


3
Stai trascurando le connessioni 3G mobili: queste possono essere lente; dipenderà se le persone visitano il tuo sito, ma il mercato e l'utilizzo stanno davvero crescendo in generale
Baumr,

1
Il JPEG progressivo è ottimo anche per i paesi insulari in cui la larghezza di banda è limitata e la latenza è elevata.
Dom

Ma il rendering progressivo non dovrebbe essere evitato.
Bhavesh Gangani,

Sì, è meno in quale regione del mondo in questi giorni se sei su 2G o 3G. Un utente di Barundi ha appena caricato una pagina che è 3-8 in tutto il mondo da un desktop cablato completo in 115 secondi da una connessione mobile 2G. Può ancora essere un mondo lento sul cellulare.
ClearCrescendo,

Il 60% delle connessioni Chrome sono 2G - Chrome Dev Summit 2016.
Thomas McCabe,

1

Per siti come Wikipedia che eseguono il rendering delle proprie miniature al volo, c'è un'ulteriore considerazione: tutti gli algoritmi per la creazione di file JPEG progressivi richiedono più cicli di memoria e CPU. Quando i file originali sono abbastanza grandi, ciò crea problemi.


0

Molte librerie non lo offrono affatto, o non per impostazione predefinita. Ma non è questo il motivo. Gestisco un sito Web che offre immagini e odio i JPEG progressivi. Perché? Perché l'algoritmo usato in essi è peggiore del mio! Uso la stessa tecnica di Google, inoltre sovrappongo una miniatura media a quella piccola. In questo modo, l'utente ottiene quasi tutta la qualità istantaneamente su qualsiasi connessione, non importa quanto sia grande l'originale. I file progressivi diventano molto bloccati, rovinando questo effetto.

La sovrapposizione delle miniature è il modo per farlo.


0

JPEG progressivo funziona in Chrome, Firefox e IE 9+. Penso che riguardi la maggior parte dei browser utilizzati oggi per utilizzare il web.

JPEG progressivo offre un'esperienza utente migliore in molte situazioni. Mi piace vedere progressivo quando visiti un sito lento (paese dell'isola, effetto slashdot, traffico di punta, ecc.). Non ho bisogno di vedere subito la piena qualità. Un'idea iniziale dell'immagine è spesso abbastanza buona. Mi dà più fastidio vedere un'immagine dall'alto verso il basso a caricamento lento. Mi ricorda i 300 giorni in cui il modem Baud ha scaricato l'arte ASCII.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.