Domanda:
Perché la dimensione del file aumenta così tanto quando si converte da RAW a TIFF?
Mark Fisher
2015-08-09 09:34:48 UTC
view on stackexchange narkive permalink

Ho convertito file .CR2 (formato RAW di Canon) in file TIFF per creare un video timelapse in Photoshop. Dopo averlo fatto, sono rimasto sbalordito nel rendermi conto che la dimensione del file è balzata da 23,9 MB nel caso dei file .CR2 a 132,7 MB per i file TIFF (queste sono immagini 5760 x 3840px con cui abbiamo a che fare). Le immagini sono state convertite in Lightroom da .CR2 a TIFF a 16 bit senza compressione.

Inizialmente non mi aspettavo ingenuamente alcun aumento della dimensione del file, poiché non venivano create nuove informazioni. Pensando ulteriormente, mi sono reso conto che a causa del filtro Bayer, solo un valore R, G o B per pixel viene registrato nel file raw e il resto viene interpolato nel file TIFF.

Questo spiegherebbe un Aumento di 3 volte della dimensione del file. Tuttavia, da 23,9 MB a 132,7 MB è più di 5,5 volte. Ho controllato uno dei file tif in Photoshop: è un singolo livello senza canali alfa. Da dove provengono i megabyte extra?

Quanti bit sono i file TIFF? 16? Quanti bit sono i tuoi file .CR2? (al massimo è 14 e potrebbe essere inferiore a seconda del modello di fotocamera che hai)
I TIFF sono 16 bpc. Eh, ho sempre pensato che anche i file .CR2 fossero a 16 bpc. Ho appena controllato il manuale: sono 14 bpc. Ciò rappresenta un aumento di 3,4 volte delle dimensioni del file. Ancora un po 'corto ...
Penso che sarebbe più di 3,4 - Stai passando da un singolo valore a 14 bit per ciascun pozzetto del sensore a 3 valori a 16 bit. E i file .CR2 sono anche compressi in modo senza perdite.
Aaah, capisco. Non mi ero accorto che i file .CR2 fossero compressi. Lo faccio 5760 * 3840 * 16 * 3 / (8 * 2 * 20) = 126,6 MB di pura data immagine per i file TIFF. Nel campo giusto ora, ma qualsiasi idea di cosa comporti i 6 MB extra. Non possono essere metadati, sicuramente?
Voglio dire (8 * 2 ^ 20)
In che modo la conversione in TIFF gestisce l'anteprima jpeg?
Questa non è elencata come opzione nella finestra di dialogo di esportazione di Lightroom. Secondo exiftool c'è una miniatura di Photoshop nei metadati. Sono solo 12kb.
Il .CR2 originale conterrà un'anteprima jpeg a piena risoluzione prima della conversione.
È possibile creare il file video time lapse direttamente da LR.
@null Non me ne rendevo conto - ho ragione quando penso che fondamentalmente devi hackerare un file .lrtemplate per rendere la lunghezza della diapositiva davvero breve. Perché altrimenti non puoi trascinare la lunghezza della diapositiva sotto 1.0s.
@MarkFisher sì, è così che l'ho fatto una volta e ha funzionato bene. Non sono sicuro del motivo per cui Adobe non lo stia facendo (o forse lo fanno in una versione corrente di LR), ricordo che la modifica del file modello era un po 'complicata poiché avrebbe richiesto il numero solo in un certo formato.
c'è anche questo plugin di fantasia che applica alcune regolazioni graduali nel tempo, controlla questa risposta: http://photo.stackexchange.com/a/24549/35348
Sembra perfetto. Mi chiedevo come rimuovere lo sfarfallio a causa della potenza del flash incoerente. Lo esaminerò sicuramente.
Una risposta:
James Snell
2015-08-09 14:53:12 UTC
view on stackexchange narkive permalink

TIFF è un formato contenitore che supporta una raccolta di altri standard e, come qualsiasi altro contenitore, ciò che contiene dipenderà interamente da ciò che tu (o chiunque abbia scritto l'esportazione TIFF che stai utilizzando) ha deciso di inserirci.

A prima vista dalla dimensione del file, il convertitore è passato a 16bpc / RGB non compresso. In tal caso, la dimensione del file sembra corretta. Se non è compresso possiamo confermarlo facilmente ...

5760 x 3860 = 22.118.400 (pixel totali)

x 3 = 66.355.200 (3 colori per pixel, R / G / B)

x 2 = 132.710.400 (dimensione totale dell'immagine in byte dove 16 bit = 2 byte)

132,7 MB corrisponde alla dimensione del file originale. Il file effettivo sarà leggermente più grande per contenere l'intestazione TIFF, i metadati e possibilmente un'anteprima.

Per quanto riguarda il motivo per cui il TIFF è molto più grande, ci sono un paio di ragioni principali: -

Interpolazione : ogni pixel sul sensore è uno tra R, G o B. Per ottenere un'immagine RGB completa, il convertitore raw stima gli altri due colori (come R / B per G pixel) dai pixel circostanti. Ciò significa che il nostro file raw deve solo memorizzare 1/3 dei dati che il nostro TIFF fa prima di iniziare. In questo caso, i dati del sensore veramente grezzi non compressi che vengono archiviati sono poco meno di 39 MB.

La compressione entra quindi in azione e porta ulteriormente i 39 MB: la compressione può essere regolata se si conosce il tipo e formattare i dati rispetto agli algoritmi di compressione generici e nel caso CR2 utilizzano un JPEG senza perdita che sembra ridurre le dimensioni di circa il 25%.

Ulteriori informazioni: CR2 è in realtà un formato basato su TIFF che memorizza un JPEG in scala di grigi senza perdita di dati (secondo questa pagina) a cui fa riferimento ExifTool: Canon Raw File Format, che merita di essere letto se non altro per lo sfogo di Phil Harvey su alcuni delle (molte) inadeguatezze di TIFF.


Informazioni aggiuntive per coprire i commenti: I 6 MB "extra" sono probabilmente 0 ed è solo un riempimento per far sì che i valori a 14 bit si adattino al 16 bit ( 2 byte) limite che Lightroom deve utilizzare poiché funziona con byte interi. Lightroom codifica l'output in modo che corrisponda alla profondità a cui ha funzionato anche se TIFF supportava 14 bit / canale non compresso, che IIRC non lo fa e se lo facesse puoi presumere che nessuno lo abbia implementato, quindi finiresti con TIFF tecnicamente corretti che nessuno può aprire (e non per la prima volta nella mia esperienza).

Potrebbe essere più utile nella sezione del calcolo del grigio indicare che "X 2" è una scorciatoia per "X (16 bit per ogni valore di colore per pixel / 8 bit per byte)".
Sì, perché i tempi 2 sono in realtà i tempi di 16 bit diviso per 8 bit per byte.
Tuttavia, quel calcolo rappresenta il 16bpc. Si scopre che non ci sono 6 MB extra come avevo pensato. Sono passato solo di recente al Mac e non mi ero reso conto che utilizza 10 ^ 6 byte come definizione per un MB anziché 2 ^ 20 come in Windows. Tutto è contabilizzato!
Non ho visto alcuna indicazione del tuo Mac nella domanda. Sì, un MB definito come 2 ^ 20 è quasi il 5% più grande di un MB definito come 10 ^ 6.
* Tutti * i valori di colore per ogni pixel vengono interpolati utilizzando i valori dei pozzetti dei pixel circostanti. cioè anche un pixel con una maschera verde includerà l'interpolazione dai pixel circostanti per calcolare il valore verde di quel pixel nell'output RGB. Ciò è dovuto al fatto che la maschera Bayer non elimina * totalmente * la luce dagli altri due colori che passano bene per ogni pixel.


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...