Domanda:
Perché Darktable esporta enormi JPEG?
Matteo Pagliazzi
2013-07-29 19:25:36 UTC
view on stackexchange narkive permalink

Ho una Nikon D3200 e ho appena iniziato a scattare in Raw.

I file Raw sono 18-24 MB e se li converto in JPEG utilizzando ViewNX 2 di Nikon, ottengo file 8-12 MB nella parte superiore qualità e risoluzione utilizzando sRGB; la stessa dimensione che otterrei scattando fuori dalla fotocamera in JPG con la massima qualità.

Invece di usare Darktable con le stesse opzioni (qualità 100 e sRGB alla massima risoluzione), ottengo file di 25 -30 MB, che è molto, anche più del Raw originale.

C'è una ragione per questo? Come posso cambiarlo? Se non è possibile modificare, quale impostazione mi consiglieresti di utilizzare in Darktable per ottenere file più piccoli senza perdere troppa qualità?

Posso riprodurlo con i file D5100 (ma non con i file Fujifilm).
Per la visualizzazione sul web, consiglierei di impostare la qualità a circa 75. Se vuoi un valore leggermente migliore, 95 è tutto ciò che ti serve. La dimensione è di 7 MB per me.
Quattro risposte:
Michael Nielsen
2013-07-29 22:19:03 UTC
view on stackexchange narkive permalink

I file RGB non compressi (3 valori per pixel) saranno più grandi dei tuoi raw, poiché i raw contengono una bitmap monocromatica (1 valore per pixel) e di solito un'anteprima ridotta in scala e compressa in modo aggressivo che richiede una frazione della dimensione, 400k per fotocamere Canon 10MP e 1M per Nikon D5100 (conosco questi numeri perché li leggevo dai file raw e li memorizzavo in un file temporaneo). I Nikon NEF memorizzano le anteprime a piena risoluzione mentre Canon utilizza la metà della risoluzione, quindi la frazione più grande.

Quindi puoi aspettarti che una "bitmap" RGB non compressa a 16 bit si avvicini a 3 volte più grande del raw e per 3 diviso per 2 per 8 bit non compresso. Un'immagine a 16 MP a 8 bit è 48 Mb non compressa.

Ora al punto, dato che qui stiamo parlando di jpeg. È la dimensione del bitmap non compresso che è la dimensione di base per la compressione da cui partire, non la dimensione grezza. Ciò significa che se imposti la compressione in modo che sia molto delicata, può facilmente essere ancora più grande del raw.

I numeri di qualità jpeg sono arbitrari - tutto quello che sai per certo è che la qualità 100 è maggiore di 90 e 90 è maggiore di 80 nello stesso programma. Con il JPEGLIB che uso per il mio jpeg che gestisce un'immagine da 16 MP diventa 4 Mb, e scende rapidamente a 1,7 Mb a 95, senza alcun impatto di qualità percepibile. Normalmente lo tengo a 80, che è 950k. E sfogliando il file da 4Mb e 950k al 100% di zoom, non vedo alcuna differenza. Quindi sembra eccessivo che il tuo 100% si comprima a malapena.

Quindi dovresti scattare un'immagine con molti dettagli e un cielo limpido e salvarla a 100, 90,80,70, 60,50, fino a quando non vedi un colpo di qualità. Per le tue immagini da 24 MP probabilmente raggiungerai quel limite a circa 1,5 Mb, qualunque sia il numero di qualità jpeg che potrebbe essere nel tuo programma.

Ottima risposta, potresti aggiungere un link al jpeglib magari
thomasrutter
2013-07-30 09:01:54 UTC
view on stackexchange narkive permalink

La discrepanza nelle dimensioni tra i file JPEG codificati a "qualità 100%" in codificatori diversi è probabilmente il risultato di uno dei seguenti:

  • Diverse impostazioni di sottocampionamento della crominanza . Il sottocampionamento della crominanza in JPEG riduce la risoluzione spaziale dei canali della crominanza in cambio della riduzione delle dimensioni del file con una differenza di qualità leggermente diversa, almeno per la maggior parte del materiale fotografico.

    Diversi codificatori JPEG possono regolare il sub-crominanza -campionamento in modo diverso: alcuni potrebbero regolarlo insieme all'impostazione della qualità, quindi una qualità superiore utilizzerà anche meno sottocampionamento. Alcuni potrebbero utilizzare un controllo diverso e separato rispetto all'impostazione della qualità. E alcuni potrebbero non consentire alcun aggiustamento a questa impostazione.

  • Differenze nel modo in cui i codificatori interpretano l'impostazione della qualità. Diversi codificatori JPEG applicheranno significati diversi all'impostazione della qualità, quindi non è possibile confrontare le impostazioni della qualità tra codificatori diversi.

    Ad esempio, la qualità dell'80% in un codificatore può scegliere valori di quantizzazione medi simili alla qualità del 92% in un altro codificatore. Le impostazioni di qualità influenzano solo indirettamente l'algoritmo che il codificatore utilizza per scegliere i valori di quantizzazione per ogni blocco dell'immagine. Dietro le quinte, sono questi valori del quantizzatore che effettivamente influenzano la qualità e di solito non puoi regolarli direttamente.

    Anche l'impostazione della qualità "100%" può avere significati diversi tra gli encoder. In alcuni significa utilizzare i quantizzatori più bassi disponibili (preservando il maggior numero di dettagli). In altri potrebbe non arrivare necessariamente a tanto o potrebbe (come menzionato sopra) influenzare altri aspetti della codifica come il sottocampionamento della crominanza.

Nota che l'immagine JPEG non sarà mai di dimensioni più grandi dell'immagine bitmap non compressa, per qualsiasi immagine normale. Tuttavia, confrontarlo con un file RAW può essere un po 'fuorviante poiché un file RAW richiederebbe diversi passaggi (incluso un passaggio chiamato demosaicizzazione , che aumenterà le dimensioni a causa dell'interpolazione) per espanderlo in una corretta immagine bitmap non compressa.

Unapiedra
2013-07-29 19:48:34 UTC
view on stackexchange narkive permalink

Sembra che il file di grandi dimensioni sia previsto per le impostazioni che hai scelto.

Quando prendo un'immagine NEF da una Nikon D5100 e la converto in JPEG utilizzando lo spazio colore sRGB e la qualità 100, il il risultato è di circa 18 MB. Fare lo stesso con dcraw e la conversione di ImageMagick porta anche a un file da 18 MB.

La qualità JPEG 100 probabilmente non dovrebbe mai essere necessaria. Se vuoi file senza perdita di dati, usa TIFF. Per visualizzare JPEG 100 non è necessario, puoi tranquillamente usare qualcosa come 95 e non essere in grado di distinguere.

Quale compressione JPEG scegliere può essere ricercata ulteriormente e ci sono domande su questo qui, ma scegliere un valore negli anni '90 ridurrà notevolmente le dimensioni e sarà adatto allo scopo per la maggior parte delle applicazioni.

Ok, con 95 ottengo circa 11-12mb (provo due immagini a 97, 95, 93) che dovrebbe essere ok. L'unica cosa che non capisco è perché con ViewNX 2 alla massima qualità ottengo file molto più piccoli. Forse la loro massima qualità non è veramente 100 poiché non c'è un valore numerico ma solo un cursore.
Non so di ViewNX. Se 12 MB è troppo grande, prova ad andare a 75. Prova se riesci a vedere una differenza. Quello che cercare sono i bordi in colori normalmente uniformi (come il cielo) e dettagli fini in aree molto strutturate.
@Unapiedra: Questo non è esclusivo di Darktable. Diversi prodotti con cui lavoro hanno un'ENORME differenza di dimensioni tra JPEG 100% e, diciamo, 95% di qualità.
AJ Henderson
2013-07-29 21:48:16 UTC
view on stackexchange narkive permalink

Diversi codificatori utilizzano valori diversi per la massima qualità. Sebbene JPEG sia ottimo per ridurre le dimensioni del file consentendo di semplificare le immagini in modi sottili, è un trucco che non cerca motivi nell'intera immagine che consentirebbero di ridurre le dimensioni senza perdite.

Il file RAW d'altra parte probabilmente utilizza una compressione senza perdita di uso generale che sembra trovare modelli che il codificatore JPEG non trova. Ciò, oltre al sovraccarico del formato di file JPEG, può comportare un file complessivo più grande rispetto al RAW originale potenzialmente.

Per quanto riguarda le diverse dimensioni per la massima qualità tra i codificatori, questo è semplicemente il risultato della differenza tra i valori utilizzato quando si codifica "100%". Non è ancora senza perdite e la semplificazione si verifica ancora, ma il livello di semplificazione può variare molto da un programma all'altro. In particolare per le qualità più elevate, quantità relativamente piccole di guadagno di qualità possono comportare la necessità di un numero di dati notevolmente maggiore poiché si aggiungono bit meno significativi di un numero già elevato di valori.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...