PDA

View Full Version : JPEG: si può evtare che degradi a ogni salvataggio?


zappy
02-01-2003, 14:14
Xchè il jpg degrada ad ogni salvataggio? NN mi dite "xchè è lossy" che già lo so... ;)
se apro un'immagine, la salvo con un altro nome senza modificarla e con lo stesso rapporto di compressione si degrada o no?
E se vario solo luminosità?
E se invece la ritaglio?
E se modifico una parte le altre zone si degradano o no?

Domanda facile facile, eh?!? :D
X espertissimi di algoritmi di compressione ;)
Oppure x chi vuole postare le sue esperienze pratiche

zappy
03-01-2003, 12:33
tutti lo usano e nessuno sa come funziona?!? :cry:

ilsensine
03-01-2003, 14:31
Se, nel salvare una immagine con un altro nome, viene riapplicato l'algoritmo di compressione (anche se con lo stesso indice di qualità o - paradossalmente - uno superiore) può ancora aversi un degrado dell'immagine. Cerco di spiegare il perchè.
Parti dall'immagine originaria, e comprimila ad es. con fattore di qualità k. Otterrai una immagine che, decompressa, corrisponde all'immagine originaria più un fattore di distorsione che puoi interpretare come "rumore aggiunto dal processo di quantizzazione". Il rapporto segnale/rumore è tanto migliore quanto più è alto l'indice di qualità da te scelto (nota che in questa prima compressione il segnale è la tua immagine originaria, bellissima, non affetta da rumore per definizione).
Ora, supponi che vuoi ricomprimere l'immagine ricostruita, utilizzando lo stesso fattore di qualità k: otterrai una immagine rielaborata, circa delle stesse dimensioni di quella compressa originale, con lo stesso rapporto segnale/rumore, ma dove ora il "segnale" non è più l'immagine perfetta originaria, ma una immagine già affetta da rumore. Ciò fa sì (congiuntamente alle inevitabili approssimazioni effettuate durante i calcoli) che l'immagine si degradi via via che ripeti il procedimento. Ho reso l'idea?

zappy
03-01-2003, 15:04
Originally posted by "ilsensine"

.... ora il "segnale" non è più l'immagine perfetta originaria, ma una immagine già affetta da rumore. Ciò fa sì (congiuntamente alle inevitabili approssimazioni effettuate durante i calcoli) che l'immagine si degradi via via che ripeti il procedimento. Ho reso l'idea?
si, chiaro ;)
Tuttavia io ipotizzavo che se l'algoritmo si trova l'immagine già "semplificata" x quel grado di compressione riapplicando il procedimento nn dovrebbe degradarsi ulteriormente.... o no?
Forse no, eh? azz sarebbe una gran figata...

http://www.lithium.it/articolo.asp?code=50
qua tanti bei dettagli matematici x me indecifrabili

misterx
03-01-2003, 15:59
il jpeg sfrutta un algoritmo di compressione con perdita di informazione; quindi tale tipo di formato si sposa molto bene per l'archiviazione di immagini e non per l'ulteriore manipolazione

se si intende ritoccare un'immagine, è sempre conveniente scegliere un formato che non abbia questo inconveniente es: bitmap, tiff o psd di photoshop etc...

solo al termine del lavoro si salva nuovamente nel formato jpeg

tempo addietro si parlava del jpeg 2000 che a detta degli autori non avrebbe sofferto di questo inconveniente, ma a tutt'ora non l'ho mai visto :)

zappy
03-01-2003, 16:10
Originally posted by "misterx"

il jpeg sfrutta un algoritmo di compressione con perdita di informazione; quindi tale tipo di formato si sposa molto bene per l'archiviazione di immagini e non per l'ulteriore manipolazione

se si intende ritoccare un'immagine, è sempre conveniente scegliere un formato che non abbia questo inconveniente es: bitmap, tiff o psd di photoshop etc...

solo al termine del lavoro si salva nuovamente nel formato jpeg

tempo addietro si parlava del jpeg 2000 che a detta degli autori non avrebbe sofferto di questo inconveniente, ma a tutt'ora non l'ho mai visto :)
si, ma la fotocamera digitale mi fa dei jpg!! a me x quello frega! certo fa anche i tiff, ma hai presente quanto sono IMMENSI?!? :D
A me interessava minimizzare le perdite di qualità elaborando dei jpg

jpg2000 è supportato da irfanview, x es. ;)

ilsensine
03-01-2003, 16:19
Originally posted by "misterx"


tempo addietro si parlava del jpeg 2000 che a detta degli autori non avrebbe sofferto di questo inconveniente, ma a tutt'ora non l'ho mai visto :)
Forse in misura minore, ma è impossibile che non ne soffra. La differenza con jpeg è la trasformata (DWT al posto di DCT) e la strategia di quantizzazione, ma ciò non toglie una virgola al principio che determina il degrado.

misterx
03-01-2003, 19:12
Originally posted by "ilsensine"


Forse in misura minore, ma è impossibile che non ne soffra. La differenza con jpeg è la trasformata (DWT al posto di DCT) e la strategia di quantizzazione, ma ciò non toglie una virgola al principio che determina il degrado.


buono a sapersi, mi hanno venduto l'ennesima balla :)

misterx
03-01-2003, 19:13
Originally posted by "zappy"


si, ma la fotocamera digitale mi fa dei jpg!! a me x quello frega! certo fa anche i tiff, ma hai presente quanto sono IMMENSI?!? :D
A me interessava minimizzare le perdite di qualità elaborando dei jpg

jpg2000 è supportato da irfanview, x es. ;)


dipende dalla risoluzione della tua fotocamera; il tiff prevede la compressione lzw se non ricordo male che comprime in modo dignitoso :)

Kaiser70
03-01-2003, 19:45
il tiff prevede la compressione lzw se non ricordo male che comprime in modo dignitoso
La compressione LZW del TIFF è senza perdita di qualità, non semplicemente "dignitosa", il problema è che le fotocamere digitali non consentono questa compressione, ma permettono la registrazione di soli formati TIFF non compressi, quindi troppo pesanti dal punto di vista dello spazio occupato e del tempo necessario per la scrittura sulla compact flash.

misterx
03-01-2003, 19:51
Originally posted by "Kaiser70"


La compressione LZW del TIFF è senza perdita di qualità, non semplicemente "dignitosa", il problema è che le fotocamere digitali non consentono questa compressione, ma permettono la registrazione di soli formati TIFF non compressi, quindi troppo pesanti dal punto di vista dello spazio occupato e del tempo necessario per la scrittura sulla compact flash.


non ho capito se il tuo (semplicemente "dignitosa") da valore a tale algoritmo o meno

domanda:
tutte le fotocamere non comprimono il tiff oppure dipende dal costo della fotocamera stessa?

Kaiser70
03-01-2003, 20:26
Certo! Si tratta di un valido algoritmo.
In realtà è il migliore che consenta compressioni senza perdita di qualità. Però va bene per conservare le foto nel proprio hard disk se si intende elaborarle ancora (io ad esempio converto sempre i file RAW della mia digicam in TIFF lzw). Ma non è utilizzato nelle macchine digitali, nessuna.
Probabilmente perchè i calcoli per la compressione richiederebbero tempo aggiuntivo non giustificato dal reale guadagno di spazio (circa 40-50%).
Le macchine più professionali hanno adottato un'altra soluzione, quella di salvare i dati grezzi (RAW) del CCD, prima ancora che vengano elaborati e salvati come immagine (TIFF o JPEG che sia). Cosa che consente al tempo stesso guadagno di spazio, e flessibilità, perchè i dati di questo tipo sono puri, più adatti a successive elaborazioni.

zappy
04-01-2003, 09:34
Originally posted by "Kaiser70"

Certo! Si tratta di un valido algoritmo.
In realtà è il migliore che consenta compressioni senza perdita di qualità. Però va bene per conservare le foto nel proprio hard disk se si intende elaborarle ancora (io ad esempio converto sempre i file RAW della mia digicam in TIFF lzw).
quindi tu alla digicam fai salvare i raw? allora o hai il microdrive, o la risoluzione della tua macchina è bassa, oppure fai 3 foto e devi scaricarla!!! Sbaglio? :confused:
Diciamo pure che il jpg è una gran cosa e ad alte risoluzioni praticamente nn si notano differenze rispetto alla bitmap. Lo scopo di questa discu era stabilire se e come si può minimizzare il degrado di immagini jpg da elaborare, considerato che fare dei tif con la digicam è assolutamente la scomodità fatta file :D

Quanto all' LZW, è supportato da moltissimi altri formati, fra cui mi pare gif, png, bmp e zip. In genere io uso png come formato lossness.

zappy
04-01-2003, 09:39
Originally posted by "misterx"


dipende dalla risoluzione della tua fotocamera; il tiff prevede la compressione lzw se non ricordo male che comprime in modo dignitoso :)
vabbè sono sempre file immensi rispettoa il corrispondenti jpg! :eek:

Kaiser70
04-01-2003, 10:09
quindi tu alla digicam fai salvare i raw? allora o hai il microdrive, o la risoluzione della tua macchina è bassa, oppure fai 3 foto e devi scaricarla!!! Sbaglio?
Sbagli! :) :)
La Canon G2 genera file RAW di circa 3,5 Mb Quindi gestibilissimi, sia per lo spazio (ho una scheda 256 Mb su cui vanno circa 63 foto RAW) sia per il tempo di scrittura (5 secondi per scrivere sulla compact). Per quanto riguarda la risoluzione sono 4 Megapixel, non certo bassa.
E non c'è paragone col Jpeg o anche col TIFF perchè si tratta di dati grezzi, posso convertirli in immagini sul pc, salvando in TIFF 16 bit (non il canonico 8 bit) riuscendo a tirare fuori sfumature eccezionali anche in foto + difficili, senza contare che essendo dati grezzi non sono stati trattati dal software della macchina, quindi decido con calma a casa, guardando un'anteprima e facendo varie prove, che settaggi applicare (bilanciamento del bianco, contrasto, saturazione, sharpen) cose che senza RAW sono da scegliere prima, rischiando di trovarsi una foto col bilanciamento del bianco sballato, o con uno sharpening troppo aggressivo, che se pur correggibili in photoshop, non danno certo lo stesso risultato, che se applicati correttamente sui dati originari.

zappy
04-01-2003, 10:47
Originally posted by "Kaiser70"


Sbagli! :) :)
La Canon G2 genera file RAW di circa 3,5 Mb Quindi gestibilissimi, sia per lo spazio (ho una scheda 256 Mb su cui vanno circa 63 foto RAW) sia per il tempo di scrittura (5 secondi per scrivere sulla compact). Per quanto riguarda la risoluzione sono 4 Megapixel, non certo bassa....
hmm ammetto la mia ignoranza... che accidenti sono 'sti "dati grezzi"?!?
voglio dire 4milioni X 8bit-x-pixel X 3 colori (rgb) da ben + che 3.5MB....
nn capisco... :confused:
siamo un po' OT rispetto al titolo del 3d ma è interessante...

Kaiser70
04-01-2003, 11:08
hmm ammetto la mia ignoranza... che accidenti sono 'sti "dati grezzi"?!?
voglio dire 4milioni X 8bit-x-pixel X 3 colori (rgb) da ben + che 3.5MB....

Il CCD cattura la luce e trasforma il segnale luminoso in segnale elettrico, questo, tramite un convertitore analogoco-digitale viene "riscritto" in bit. A questo punto non si ha ancora un file immagine vero e proprio (tiff o jpeg) ma solo dati grezzi (cosi come il CCD legge la luce) perchè diventino immagine occorre che il software interno della macchina effettui alcuni calcoli e applichi i parametri (bilanciam. contrasto, saturaz. etc.) impostati nel menù. Che sono questi calcoli, e perchè i dati grezzi sono inferiori a quelli finali? Devi sapere che ogni pixel del CCD è in grado di leggere 1 colore per volta, quindi i dati grezzi non hanno 8bit x N-pixel x 3 ma solo per 1. Per cui i pixel vengono disposti a scacchiera G-R-G-B (schema Bayer) e ciascun pixel del gruppetto di 4, pur avendo il proprio specifico valore di luminanza, per completare l'informazione sulla crominanza deve "dialogare) con i pixel adiacenti. (quindi il rosso cerca informazioni mancanti dal blu e dai verdi vicinie così via) Ebbene si, tutte le digicam usano un tipo di interpolazione per formare l'immagine finale, il trucco dei 3 CCD non è applicabile in questo campo, a meno di non volere macchine inìgombranti. Provo ad allegare un'immagine dello schema

zappy
04-01-2003, 11:22
Originally posted by "Kaiser70"


Il CCD cattura la luce e trasforma il segnale luminoso in segnale elettrico, questo, tramite un convertitore analogoco-digitale viene "riscritto" in bit. A questo punto non si ha ancora un file immagine vero e proprio (tiff o jpeg) ma solo dati grezzi (cosi come il CCD legge la luce) perchè diventino immagine occorre che il software interno della macchina effettui alcuni calcoli e applichi i parametri (bilanciam. contrasto, saturaz. etc.) impostati nel menù. Che sono questi calcoli, e perchè i dati grezzi sono inferiori a quelli finali? Devi sapere che ogni pixel del CCD è in grado di leggere 1 colore per volta, quindi i dati grezzi non hanno 8bit x N-pixel x 3 ma solo per 1. Per cui i pixel vengono disposti a scacchiera G-R-G-B (schema Bayer) e ciascun pixel del gruppetto di 4, pur avendo il proprio specifico valore di luminanza, per completare l'informazione sulla crominanza deve "dialogare) con i pixel adiacenti. (quindi il rosso cerca informazioni mancanti dal blu e dai verdi vicinie così via) Ebbene si, tutte le digicam usano un tipo di interpolazione per formare l'immagine finale, il trucco dei 3 CCD non è applicabile in questo campo, a meno di non volere macchine inìgombranti. Provo ad allegare un'immagine dello schema
quindi in pratica la luminosità del B e del R è data da parte del G tramite interpolazione? quindi il RAW contiene 256 grigi x il verde e 256 x R e B?
E alla fine quanti sono i sensori effettivi di una 4MPix?
4M X 3(RGB) o 4M X 4(GRGB) o qualcos'altro?

ahaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!! nn capisco + un tubo!!!!!!!!!! :eek: :muro:

Kaiser70
04-01-2003, 11:55
No, il valore di luminosità è effettivamente rilevato da ogni pixel, è la crominanza che non è completa. Ciascun pixel rileva effettivamente solo parzialmente il valore del colore (r,g oppure b ) a seconda della posizione nella griglia, ma per avere il true color occorrono anche i valori delle 2 restanti componenti, che vengono prese a prestito dai pixel adiacenti. Alla fine ciascun blocco di 4 pixel avrà lo stesso valore di crominanza, ma non saranno pixel identici (a meno che non lo siano anche nella realtà) perchè avranno differenti valori di luminosità. Per rispondere alla tua domanda, i pixel effettivi sono 4 milioni per i valori di luminanza, e 4:3 per la crominanza. Alla fine il problema viene fuori ai bordi delle figure, quando il colore cambia repentinamente (tipico l'esempio dei capelli, che spesso se ingrandisci l'immagine sembrano coriandoli). Però con un notevole numero di pixel a disposizione, questa approssimazione, si riduce in proporzione, perchè la linea di demarcazione fra un colore e l'altro resta sempre spessa 2x2 pixel, che in percentuale pesano sempre meno man mano che cresce la risoluzione.

zappy
04-01-2003, 12:12
Ti ringrazio Kaiser :) Ho bisogno di almeno tutto il pomeriggio x digerire 'ste cose.... :D
Effettivamente mi pare che il RAW sia il formato migliore (abbastanza compatto e senza perdite, anzi) ma la mia digicam nn lo fornisce :cry:
azz averlo saputo prima!

_________________

e x il jpg?
- c'è modo di sapere a posteriori a quanto è stato impostata la compressione?
- Risalvando un jpg in jpg, che compressione è meglio impostare? Serve impostarla meno forte che quella originale o basta uguale?

Kaiser70
04-01-2003, 12:50
Si il RAW è il migliore, ma non per chi non vuole stare a perdere tempo al pc e vuole le foto prontePer il JPEG si può usare un programma chiamato JPEG Quality, che analizza la percentuale di compressione e permette di salvare usando la stessa percentuale, se però hai intenzione di modificare il file, salva sempre la versione da modificare in TIFF lzw, fino a quando non raggiungi la versione finale che ti soddisfa. ecco il link:http://www.mediachance.com/digicam/JpgQ.zip

zappy
04-01-2003, 13:28
Originally posted by "Kaiser70"

Si il RAW è il migliore, ma non per chi non vuole stare a perdere tempo al pc e vuole le foto prontePer il JPEG si può usare un programma chiamato JPEG Quality, che analizza la percentuale di compressione e permette di salvare usando la stessa percentuale, se però hai intenzione di modificare il file, salva sempre la versione da modificare in TIFF lzw, fino a quando non raggiungi la versione finale che ti soddisfa. ecco il link:http://www.mediachance.com/digicam/JpgQ.zip
certo certo, nn salvo certo volontariamente un jpg in jpg se so di doverlo ancora editare il giorno dopo ;)
Tnks 4 all :)