Mostra argomento precedente :: Mostra argomento successivo |
Autore |
Messaggio |
gerarcone utente attivo

Iscritto: 04 Mgg 2004 Messaggi: 5313 Località: Roma
|
Inviato: Mer 06 Mgg, 2009 10:18 am Oggetto: Qualità ottimale JPEG |
|
|
Buondì!
Vi vorrei fare una domanda: esiste una qualità ottimale per il JPEG oltre la quale non conviene andare? Mi sono costruito il grafico seguente, segnandomi tutti i valori della dimensione del file che mi segnalava "Salva per il web" di Photoshop cambiando i vari valori di qualità, da 0 a 100, e l'ho fatto per tre file, con un numero basso, medio ed alto di dettagli.
Come potete vedere, superato il valore 50 per la qualità il grafico cambia pendenza, e cambia di nuovo dopo 70. Da quel punto in poi la dimensione del file cresce molto velocemente al crescere della qualità. Naturalmente un'immagine con più dettagli occupa più spazio su disco a parità di qualità, ma è interessante vedere come la pendenza delle curve sia simile.
Finora tutte le foto che ho postato su internet le ho settate al 90% della qualità, ma guardando il grafico riflettevo sul fatto che forse è più conveniente scegliere un valore più basso, il che permette di risparmiare molto spazio (moltiplicate i Kb risparmiati per "n" foto ed avrete una discreto numero di MB ).
Secondo voi c'è un modo (rigoroso) per rendersi conto al di sotto di quale soglia di qualità gli artefatti si fanno notare in modo apprezzabile?
Ho aperto un nuovo topic proprio in questo senso, perché al di là di tutti i tutorial sul "salva per il web" che ho trovato, mi sembra che nessuno si sia mai posto il problema di confrontare seriamente più immagini salvate con una differente qualità per trovare un valore ottimale. Un po' come si fa con le prove delle macchine fotografiche su dpreview.
Dite la vostra se vi va, e se il topic è troppo da "salotto informatico" si può anche chiudere/cancellare, da parte mia nessun problema  |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
Robertphotolatex utente attivo

Iscritto: 04 Giu 2008 Messaggi: 735 Località: Emilia Romagna
|
Inviato: Mer 06 Mgg, 2009 10:23 am Oggetto: |
|
|
Le tue stesse rilevazioni le avevo fatte anch'io anche se in modo molto meno professionale....
Per la pubblicazione sul web infatti uso un 70/80 di solito, valore ricavato appunto osservando la dimensione del file in rapporto alla compressione... _________________ Latex Photographer of FetishGreta |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
AleZan coordinatore

Iscritto: 16 Giu 2006 Messaggi: 11698 Località: Bologna
|
Inviato: Mer 06 Mgg, 2009 10:37 am Oggetto: |
|
|
Bel lavoro, interessante.
Mi vengono al volo alcune considerazioni:
1) se il mio obiettivo è il miglior rapporto qualità/compressione, quindi se sto cercando di ridurre al max. le dimensioni del file senza perdere troppa qualità, applicherò una "Qualità" tra il 50 e il 70%. Se comprimo di più non guadagno molto in termini di Kb, se comprimo meno la curva sale vertiginosamente.
2) se invece cerco la qualità in assouto, non guardo il grafico e comprimo il meno possibile. Oggi il costo di memorizzazione è così basso che non mi pare il caso di risparimiare a scapito della qualità.
3) non credo che sia possibile stabilire univocamente un livello di compressione oltre il quale si generano artefatti troppo vistosi: dipende non solo dal numero di dettagli, ma anche da altri fattori come il contrasto generale, le dimensioni di stampa.... Tutti fattori variabili da foto a foto.
ciao _________________ Alessandro - www.alessandrozanini.it
 |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
gerarcone utente attivo

Iscritto: 04 Mgg 2004 Messaggi: 5313 Località: Roma
|
Inviato: Mer 06 Mgg, 2009 10:54 am Oggetto: |
|
|
AleZan ha scritto: | 1) se il mio obiettivo è il miglior rapporto qualità/compressione, quindi se sto cercando di ridurre al max. le dimensioni del file senza perdere troppa qualità, applicherò una "Qualità" tra il 50 e il 70%. Se comprimo di più non guadagno molto in termini di Kb, se comprimo meno la curva sale vertiginosamente. |
Diciamo che per postare immagini sul web che richiedono di essere scaricate molto velocemente, probabilmente la qualità ottimale sta tra 50 e 70. E su questo non ci piove (basta quardare la pendenza delle curve dopo 70 per rendersi conto che non conviene più andare oltre).
AleZan ha scritto: | 2) se invece cerco la qualità in assouto, non guardo il grafico e comprimo il meno possibile. Oggi il costo di memorizzazione è così basso che non mi pare il caso di risparimiare a scapito della qualità. |
E pure qua hai ragione. Diciamo che la differenza di "peso" tra una immagine compressa al 70% e una al 90% è mediamente di 200 Kb. Moltiplicando questa quantità per 5mila immagini si ottiene circa 1GB di differenza. E oggi come oggi te lo tirano appresso.
Anche per gli hosting on line con delle limitazioni sullo spazio web vale questo discorso? Ad esempio l'account gratuito di Flickr permette di caricare 100MB di foto al mese. Considerando che una foto al 70% occupi mediamente 100Kb mentre una al 90% 300Kb, potrò uploadare circa 1024 foto al 70% oppure circa 340 al 90%.
AleZan ha scritto: | 3) non credo che sia possibile stabilire univocamente un livello di compressione oltre il quale si generano artefatti troppo vistosi: dipende non solo dal numero di dettagli, ma anche da altri fattori come il contrasto generale, le dimensioni di stampa.... Tutti fattori variabili da foto a foto. |
Ti faccio una domanda: a parità di qualità, una foto con più dettagli mostrerà artefatti più visibili rispetto ad una con pochi dettagli? |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
AleZan coordinatore

Iscritto: 16 Giu 2006 Messaggi: 11698 Località: Bologna
|
Inviato: Mer 06 Mgg, 2009 11:07 am Oggetto: |
|
|
gerarcone ha scritto: | Ti faccio una domanda: a parità di qualità, una foto con più dettagli mostrerà artefatti più visibili rispetto ad una con pochi dettagli? |
Teoricamente sì. Nel senso che gli artefatti "nascono" proprio intorno ai dettagli. _________________ Alessandro - www.alessandrozanini.it
 |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
gerarcone utente attivo

Iscritto: 04 Mgg 2004 Messaggi: 5313 Località: Roma
|
Inviato: Mer 06 Mgg, 2009 11:12 am Oggetto: |
|
|
AleZan ha scritto: | gerarcone ha scritto: | Ti faccio una domanda: a parità di qualità, una foto con più dettagli mostrerà artefatti più visibili rispetto ad una con pochi dettagli? |
Teoricamente sì. Nel senso che gli artefatti "nascono" proprio intorno ai dettagli. |
Ma allora il settaggio della qualità che ci sta a fare? Capisco che se converto due immagini mantenendo uguale la dimensione in Kb posso ottenere più artefatti in quella con più dettagli, ma se la qualità è uguale la dimensione in Kb dell'immagine più dettagliata sarà maggiore (come si vede dal grafico) e finora io ho sempre pensato che gli artefatti fossero ugualmente visibili in due immagini convertite con lo stesso valore della qualità  |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
AleZan coordinatore

Iscritto: 16 Giu 2006 Messaggi: 11698 Località: Bologna
|
Inviato: Mer 06 Mgg, 2009 11:23 am Oggetto: |
|
|
La risposta sta nell'analisi matematica dell'algoritmo di compressione del JPEG. Che è pubblico, quindi lo trovi in giro.
In pratica più aumenti la compressione, più concedi all'algoritmo del JPEG di scartare delle informazioni.
Se queste informazioni sono pixel in un cielo azzurro, artefatti non ne vedrai (e la compressione sarà più efficiente). Se invece sono pixel che disegnano le foglioline di un albero, ogni informazione "buttata via" provocherà un artefatto.
Se ingrandisci spaventosamente un JPEG vedi chiaramente che la compressione lavora a matrici di 8x8 pixel, e vedi come e dove si generano gli artefatti. _________________ Alessandro - www.alessandrozanini.it
 |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
gerarcone utente attivo

Iscritto: 04 Mgg 2004 Messaggi: 5313 Località: Roma
|
Inviato: Mer 06 Mgg, 2009 11:39 pm Oggetto: |
|
|
AleZan ha scritto: | Se queste informazioni sono pixel in un cielo azzurro, artefatti non ne vedrai (e la compressione sarà più efficiente). Se invece sono pixel che disegnano le foglioline di un albero, ogni informazione "buttata via" provocherà un artefatto. |
Se ho capito ciò che intendi, non mi trovi d'accordo
Senza scomodare le formule matematiche che stanno alla base dell'algoritmo (lo feci già in un corso all'università e mi spaventai anche se fu interessante ) e che credo siano destinate agli "addetti ai lavori", ho provato a fare un test forse poco attendibile, ma del quale spero che almeno si capisca il senso
Passo (i)
Ho generato il seguente file utilizzando uno dei pennelli di Photoshop:
(111 Kb)
Questo con l'intento di ottenere un'immagine con bordi netti e una discreta quantità di dettagli. A questo punto ho fatto una copia dello stesso file dopo aver applicato un po' di sfocatura, in modo da ridurre i dettagli:
(55,2 Kb)
Entrambe le immagini che vedete sono state compresse con una qualità del 100% (in realtà io ho usato dei TIFF, ma qui non posso postarli per ovvi motivi).
Il fatto che la seconda immagine è meno "problematica" per il JPEG lo dimostrano anche le ridotte dimensioni del file, che ho annotato sotto.
Passo (ii)
Ho compresso entrambi i TIFF con un fattore di qualità del 10%, in modo da rendere più che manifesti gli artefatti, ed ottenendo i seguenti risultati:
(15,8 Kb) ---------------------------- (10,4 Kb)
Ancora una volta, le dimensioni in Kb delle foglie sfocate sono inferiori a quelle delle foglie non sfocate.
Passo (iii)
Quelle che seguono sono considerazioni personali.
Già dalle due immagini precedenti mi sembra che entrambi i file abbiano un livello di artefatti simile, dunque sarei portato a concludere che la "qualità" di un JPEG rappresenta proprio l'entità degli artefatti all'interno dell'immagine. Del resto il fatto che le immagini con le foglie sfocate, e quindi con meno dettagli da mantenere, siano sempre di minori dimensioni rispetto alle foglie non sfocate (a parità di qualità) ne è una conferma.
Comunque, voglio postare anche due screen-shot delle immagini precedenti ingrandite al 500%:
Mi sembra sia evidente che entrambe presentano lo stesso livello di artefatti. Confermate?
La conclusione a cui voglio arrivare è la seguente: una volta appurato che due JPEG compressi con la qualità "x" hanno lo stesso livello di artefatti, ne consegue che nel comprimere tot fotografie (da mettere su un sito ad esempio) conviene eseguire un'azione in batch con un settaggio di qualità uguale per tutte le foto, piuttosto che valutare caso per caso o peggio eseguendo il batch ma limitando la dimensione dei file. In questo modo si assicura l'uniformità dei file.
In secondo luogo (e questo è il mio obiettivo finale) vorrei trovare un valore di qualità che può rendersi accettabile per tutte le immagini, in maniera da poter eseguire la compressione a più immagini contemporaneamente senza tema chene esca fuori qualcuna dove sono visibili gli artefatti.
Ultima modifica effettuata da gerarcone il Gio 07 Mgg, 2009 10:41 pm, modificato 1 volta in totale |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
AleZan coordinatore

Iscritto: 16 Giu 2006 Messaggi: 11698 Località: Bologna
|
Inviato: Gio 07 Mgg, 2009 9:14 am Oggetto: |
|
|
Ah, ok... usiamo lo stesso termine per descrivere due cose diverse.
Io per "artefatto" non intendo i "quadratoni" 8x8 pixel che caratterizzano tutti i JPEG, ma la "sporcizia" che si determina dentro i quadratoni e al confine tra di loro. Sicuramente sono io a usare impropriamente il termine, ma è quello che intendevo. Nel senso che guardando la foto al 100% è questo problema che si nota prima ancora di percepire i quadratoni.
In questo senso l'immagine più dettagliata è più sporca, una volta super-compressa.
L'immagine meno dettagliata osservata al 100% sembrerà più fedele all'originale.
Questo perché il JPEG è più efficiente (comprime di più e con meno danni) su immagini (o zone dell'immagine) con meno dettagli. La maggiore efficienza di compressione in questo caso è dimostrata nella pratica dalla dimensione più piccola del file con meno dettagli.
La minore dimensione del file addirittura la si nota cambiando gli ISO in macchina (il rumore viene letto come detaglio), e questo anche nei RAW che hanno una compressione lossless. _________________ Alessandro - www.alessandrozanini.it
 |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
gerarcone utente attivo

Iscritto: 04 Mgg 2004 Messaggi: 5313 Località: Roma
|
Inviato: Ven 08 Mgg, 2009 9:53 am Oggetto: |
|
|
Credo di aver risolto il problema!
Girando in rete ho scoperto che esiste un'applicazione sviluppata dalla NASA, DCTune, che - cito testualmente traducendo la descrizione sul sito - calcola la migliore matrice di quantizzazione JPEG allo scopo di ottenere la compressione migliore possibile per un dato errore di percezione.
In particolare, se si assegna al programma come input l'errore di percezione uguale a 1.0, il software calcola la massima compressione da assegnare al JPEG in modo che sia percettivamente lossless. Figata!
Ovviamente ho fatto subito qualche prova, ed ecco i risultati.
Ho preso l'immagine con le foglie e l'ho data in pasto a DCTune, che mi ha restituito un file JPEG con fattore di compressione 21 (equivale a qualità 44 con il "Salva per il web" di PS). Ecco le immagini per il confronto:
(Immagine originale) / (Immagine compressa)
L'immagine delle foglie sfocate ha restituito un JPEG con fattore di compressione 40 (sempre qualità 44):
(Immagine originale) / (Immagine compressa)
Se fate attenzione all'immagine con le foglie compresse, vedrete qualche artefatto: questo perché il software ha altri parametri come la distanza dallo schermo che vanno settati con cognizione di causa. Comunque, le impostazioni di default sono state un ottimo punto di partenza per questo post.
Il fatto che la qualità sia relativamente bassa (44/100) fa pensare che probabilmente con un valore di 70, che come si vede dal mio grafico è all'inizio di un brusco aumento della pendenza, si ottiene un risultato decente per praticamente tutte le foto. Comunque, qualche altra prova con il software si può fare  |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
gerarcone utente attivo

Iscritto: 04 Mgg 2004 Messaggi: 5313 Località: Roma
|
Inviato: Ven 08 Mgg, 2009 10:01 am Oggetto: |
|
|
Ho trovato la conferma di quello che diceva AleZan, vale a dire che un'immagine con più dettagli risulta percettivamente più affetta dagli artefatti. Ho dato in pasto al programma le immagini compresse e non, e le ho confrontate con il parametro "-error": la differenza percettiva con le foglie non sfocate è pari a 2.09, mentre quella per le foglie sfocate è 1.71.
Resta da capire come mai c'è questa differenza se proprio il programma ha generato i file imponendo che la differenza non ci fosse  |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
AleZan coordinatore

Iscritto: 16 Giu 2006 Messaggi: 11698 Località: Bologna
|
Inviato: Ven 08 Mgg, 2009 10:11 am Oggetto: |
|
|
gerarcone ha scritto: | In particolare, se si assegna al programma come input l'errore di percezione uguale a 1.0, il software calcola la massima compressione da assegnare al JPEG in modo che sia percettivamente lossless. Figata!  |
Carino.
Dopo questa chiederò ufficialmente agli amministratori di cambiare la dizione sotto il tuo nick in "Utente spaziale"...
 _________________ Alessandro - www.alessandrozanini.it
 |
|
Vai ad inizio pagina Vai a fine pagina |
|
 |
|