Formati delle fotocamere
Le fotocamere e i telefoni salvano le foto in una trentina di formati. Questa scheda li elenca
tutti: chi li produce, in che contenitore stanno, come si riconoscono, e quali accetta la pagina
Orologio della macchina fotografica. L'elenco segue la tabella
dei formati di ExifTool ed è lo stesso del registro con cui il sito verifica i file caricati
(wsgi-scripts/lib/verifica_immagini.py), provato su un file reale per formato
dell'archivio pubblico raw.pixls.us.
Come si riconosce un formato
Non dall'estensione, che la sceglie chi salva il file e non prova nulla, ma dal contenuto. I formati appartengono a poche famiglie di contenitori: ogni famiglia ha una firma nei primi byte e una struttura sua, e dentro la famiglia il formato si distingue da un dettaglio — la marca del produttore scritta nel file, un marcatore, la marca del contenitore ISO. La maggior parte dei RAW, per esempio, è un TIFF: un NEF, un ARW e un PEF hanno la stessa firma e si distinguono solo dal tag Make (Nikon, Sony, Pentax).
Il sito verifica ogni file caricato in due passi, prima di passarlo a qualunque programma. L'estensione deve essere fra quelle ammesse dalla pagina e i primi byte devono avere la firma della famiglia del formato; poi si percorre la struttura della famiglia — i marcatori di una JPEG, gli IFD di un TIFF, i box di un contenitore ISO, le intestazioni di RAF, X3F, CRW e MRW — con ogni lunghezza e ogni offset controllati contro la dimensione del file, e si controlla la regola del formato. Solo dopo il file arriva a chi lo legge davvero. Le ragioni di sicurezza sono spiegate nella scheda Approfondimento della pagina dell'orologio.
I formati
Nella colonna time.php il sì vuol dire che la pagina dell'orologio accetta il formato; per gli altri c'è il motivo. Storico vuol dire che nessuna fotocamera in commercio lo scrive più.
| Formato | Estensioni | Produttori | Si riconosce da | Stato | time.php |
|---|---|---|---|---|---|
JPEG — firma FF D8 FF | |||||
| JPEG | .jpg .jpeg .jpe | tutte le fotocamere e i telefoni | la firma | in uso | sì |
| MPO | .mpo | fotocamere stereoscopiche (Fujifilm W3, Nintendo 3DS) | la firma | storico | no: formato storico |
PNG — firma 89 50 4E 47 0D 0A 1A 0A | |||||
| PNG | .png | schermate di telefoni e computer (le fotocamere non lo scrivono) | la firma | in uso | sì |
TIFF e RAW basati su TIFF — firma II*\0 o MM\0* | |||||
| GoPro GPR | .gpr | GoPro (DNG con compressione VC-5) | tag DNGVersion e marca GoPro | in uso | no: nei file non c'è un'anteprima JPEG |
| Adobe DNG | .dng | Leica, Pentax e Ricoh, Sigma fp, DJI, telefoni (Apple ProRAW, Android) | tag DNGVersion | in uso | sì |
| Canon CR2 | .cr2 | Canon, modelli dal 2004 al 2018 | marcatore «CR» 2 al byte 8 | in uso | sì |
| Nikon NEF | .nef | Nikon, reflex e mirrorless Z | marca nell'IFD0: Nikon | in uso | sì |
| Nikon NRW | .nrw | Nikon Coolpix | marca nell'IFD0: Nikon | in uso | sì |
| Sony ARW | .arw | Sony Alpha, RX e ZV | marca nell'IFD0: Sony | in uso | sì |
| Sony SR2 | .sr2 | Sony DSC-R1, 2005 | marca nell'IFD0: Sony | storico | no: formato storico |
| Sony SRF | .srf | Sony DSC-F828, 2003 | marca nell'IFD0: Sony | storico | no: formato storico |
| Pentax PEF | .pef | Pentax e Ricoh | marca nell'IFD0: Pentax o Ricoh | in uso | sì |
| Hasselblad 3FR | .3fr | Hasselblad, medio formato | marca nell'IFD0: Hasselblad | in uso | no: nei file non c'è un'anteprima JPEG |
| Phase One IIQ | .iiq | Phase One e Leaf, dorsi digitali | marca nell'IFD0: Phase One o Leaf | in uso | no: nei file non c'è un'anteprima JPEG |
| Samsung SRW | .srw | Samsung NX, 2010-2015 | marca nell'IFD0: Samsung | storico | no: formato storico |
| Epson ERF | .erf | Epson R-D1, 2004-2009 | marca nell'IFD0: Epson | storico | no: formato storico |
| Leaf MOS | .mos | Leaf, dorsi digitali fino al 2012 circa | tag 0x8606 (dati Leaf), senza Make | storico | no: formato storico |
| Mamiya MEF | .mef | Mamiya ZD | marca nell'IFD0: Mamiya | storico | no: formato storico |
| Kodak DCR | .dcr | Kodak DCS, fino al 2005 | marca nell'IFD0: Kodak | storico | no: formato storico |
| Kodak KDC | .kdc | Kodak EasyShare, fino al 2012 | marca nell'IFD0: Kodak | storico | no: formato storico |
| TIFF | .tif .tiff | conversione in macchina (Fujifilm) e fotocamere storiche | nessuno dei segni dei RAW | in uso | no: servirebbe il decodificatore TIFF |
TIFF con la firma di Olympus — firma IIRO, IIRS, MMOR | |||||
| Olympus ORF | .orf | Olympus e OM System | la firma | in uso | sì |
| Olympus ORI | .ori | OM System, fotogramma di base dell'alta risoluzione | la firma | in uso | sì |
TIFF con la firma di Panasonic — firma IIU\0 | |||||
| Panasonic RW2 | .rw2 | Panasonic Lumix | marca nell'IFD0: Panasonic | in uso | sì |
| Leica RWL | .rwl | Leica compatte fatte con Panasonic (D-Lux, C) | marca nell'IFD0: Leica | in uso | sì |
contenitore ISO a box — firma ftyp al byte 4 | |||||
| Canon CR3 | .cr3 | Canon, dal 2018 | marca ISO crx | in uso | sì |
| AVIF | .avif | formato del web, raro negli apparecchi fotografici | marca ISO avif, avis | in uso | no: servirebbe un decodificatore HEVC o AV1 |
| HEIF | .heic .heif .hif | Canon, Sony, Nikon, Fujifilm (.hif); iPhone e Android (.heic) | marca ISO heic, heix, hevc… | in uso | no: servirebbe un decodificatore HEVC o AV1 |
Fujifilm — firma FUJIFILMCCD-RAW | |||||
| Fujifilm RAF | .raf | Fujifilm | la firma | in uso | sì |
Sigma — firma FOVb | |||||
| Sigma X3F | .x3f | Sigma con sensore Foveon (serie SD e DP) | la firma | storico | no: formato storico |
Canon CIFF — firma HEAPCCDR al byte 6 | |||||
| Canon CRW | .crw | Canon, fino al 2004 | la firma | storico | no: formato storico |
Minolta — firma \0MRM | |||||
| Minolta MRW | .mrw | Minolta e Konica Minolta, fino al 2006 | la firma | storico | no: formato storico |
Formati che le fotocamere non scrivono
- PNG: sono le schermate di telefoni e computer, non le foto delle fotocamere; la pagina dell'orologio lo accetta come le JPEG.
- WebP, GIF, BMP: formati del web e dei programmi.
- JPEG XL: nessuna fotocamera lo scrive come file a sé; dal DNG 1.7 (2023) è una delle compressioni possibili dentro un DNG.
- Video (MP4, MOV, CRM, BRAW): fuori da questo registro.
Che cosa hanno insegnato i file reali
- Le stranezze dei produttori. Le Panasonic scrivono nella RW2 un offset dei dati 0xFFFFFFFF con lunghezza zero (i dati veri stanno in un tag loro); la Hasselblad H3D dichiara nel 3FR, per i dati compressi, la lunghezza non compressa (79 MB in un file di 53); la Kodak P712 fa puntare l'IFD di interoperabilità in mezzo ai dati; i Leaf MOS non hanno il tag Make. Il registro tollera queste stranezze, una per una e documentate nel codice, senza rinunciare agli altri controlli.
- Un'estensione sbagliata vera. Il campione «DNG» del Samsung SM-G973U nell'archivio raw.pixls.us è una JPEG: il registro lo respinge come DNG e lo accetta come JPEG.
- ExifTool non è un oracolo. La versione di Ubuntu 24.04 (12.76) chiama NRW anche i NEF delle Nikon Z5 II e Z6 III; il controllo incrociato del sito accetta i due nomi per i file Nikon.
- Le anteprime. Dai RAW la pagina dell'orologio legge l'anteprima JPEG incorporata, quasi sempre a piena risoluzione (da 1920 pixel di lato nelle RW2 a 5088 nel CR3 della R5 Mark II); in alcuni DNG è piccola (852 pixel nell'iPhone XS, 640 nella Pentax K-r), e il DNG della Sigma fp, il 3FR, l'IIQ e il GPR dei campioni non ne hanno.
- La robustezza. I test del registro alterano a caso i primi 64 kB di ogni campione e lo troncano: 416 varianti, nessun errore del validatore e al massimo pochi millesimi di secondo per file.
Fonti
- ExifTool, Supported File Types: exiftool.org.
- raw.pixls.us, archivio pubblico di file RAW con licenza CC0: raw.pixls.us
(i 32 campioni di prova, uno per formato, con le impronte SHA-256 in
work/campioni_fotocamere/FONTI.md). - Adobe, TIFF Revision 6.0, 1992; ISO 12234-2:2001, TIFF/EP.
- Adobe, Digital Negative (DNG) Specification, versione 1.7.1.0, settembre 2023.
- ITU-T T.81 | ISO/IEC 10918-1, JPEG, 1992; ITU-T T.871, JPEG File Interchange Format, 2011; CIPA DC-008, Exif; CIPA DC-007, Multi-Picture Format.
- ISO/IEC 14496-12, ISO base media file format; ISO/IEC 23008-12, HEIF; Alliance for Open Media, AV1 Image File Format (AVIF).
- W3C, Portable Network Graphics (PNG) Specification (Third Edition), raccomandazione del 24 giugno 2025: w3.org.
- L. Clévy, Describing the Canon Raw v3 (CR3) file format: github.com/lclevy/canon_cr3.
Questa scheda racconta da dove vengono i formati della tabella, che cosa c'è dentro un RAW, che cosa dicono le firme, com'è fatto ciascun formato e perché la pagina dell'orologio ne accetta solo una parte. La sicurezza del caricamento e l'ora che la macchina scrive nei file sono trattate nella scheda Approfondimento della pagina Orologio della macchina fotografica.
Trent'anni di formati
I formati di oggi sono strati di decisioni prese in momenti diversi. Prima venne il contenitore, il TIFF; poi il modo di comprimere, il JPEG, e quello di annotare lo scatto, l'Exif. Con le prime reflex digitali ogni produttore scelse un suo formato per i dati grezzi del sensore, quasi sempre costruito sul TIFF; il DNG di Adobe provò a dare a tutti un formato aperto, e i telefoni lo adottarono. Negli ultimi anni le foto sono entrate nel contenitore dei video.
| Anno | Che cosa |
|---|---|
| 1986 | Aldus e Microsoft pubblicano il TIFF: un contenitore fatto di cartellini (i tag) raccolti in indici (gli IFD), da cui discende la maggior parte dei RAW. |
| 1991 | Kodak DCS, un corpo Nikon F3 con un sensore da 1,3 megapixel: la prima reflex digitale in commercio. |
| 1992 | La norma JPEG (ITU-T T.81) e il formato di file JFIF; la revisione 6.0 del TIFF, ancora in vigore. |
| 1995 | Exif 1.0: data, ora, esposizione, marca e modello scritti dentro il file. |
| 1998 | DCF: la cartella DCIM e i nomi come IMG_1234.JPG, perché una scheda di memoria si legga su qualunque apparecchio. |
| 1999–2002 | I RAW delle prime reflex: NEF della Nikon D1 (1999), CRW della Canon D30 (2000), X3F della Sigma SD9 (2002). |
| 2001 | TIFF/EP (ISO 12234-2), un profilo del TIFF per la fotografia elettronica che molti RAW seguono a grandi linee. |
| 2004 | Il DNG di Adobe, un RAW con le specifiche pubbliche; Canon passa dal CRW al CR2. |
| 2014–2020 | I telefoni: DNG in Android 5 (2014), HEIF in iOS 11 (2017), Apple ProRAW, un DNG, nel 2020. |
| 2018–2020 | Il contenitore ISO dei video arriva alle foto: il CR3 di Canon (2018) e il HEIF nelle fotocamere, a partire dalla Canon EOS-1D X Mark III (2020). |
| 2023 | DNG 1.7: i dati del sensore si possono comprimere in JPEG XL (ISO/IEC 18181, 2022). |
Che cosa c'è dentro un RAW
Un RAW non è un'immagine pronta, ma la lettura del sensore prima di ogni elaborazione. Ogni fotosito misura un solo colore, quello del filtro che ha davanti. Nella disposizione inventata da Bryce Bayer alla Kodak (brevetto del 1976) i filtri si ripetono in quadrati di 2×2, con due verdi, un rosso e un blu, perché l'occhio è più sensibile al verde; Fujifilm usa dal 2012 un motivo di 6×6 (X-Trans), e le Sigma con sensore Foveon misurano i tre colori in tre strati sovrapposti. Il programma che «sviluppa» il RAW ricostruisce i due colori mancanti di ogni pixel, la demosaicizzazione, e poi applica bilanciamento del bianco, colore e curva tonale.
Accanto ai valori del sensore, da 12 a 14 bit per fotosito nella maggior parte delle fotocamere e fino a 16 nel medio formato, il file porta ciò che serve per svilupparli: il livello del nero e quello di saturazione, le matrici che portano i colori del sensore in uno spazio di colore standard, i coefficienti del bilanciamento del bianco scelto in macchina, registrati ma non applicati. E porta almeno un'anteprima JPEG, che la fotocamera usa per mostrare la foto sullo schermo: è quella che legge la pagina dell'orologio, perché per leggere l'ora sulla foto di un orologio basta e avanza.
Il resto sta nella MakerNote, un tag dell'Exif (0x927C) che ogni produttore riempie come crede: l'obiettivo montato, i punti di messa a fuoco, il numero degli scatti, il numero di serie. Non è documentata; la si conosce perché qualcuno l'ha decifrata, soprattutto Phil Harvey con ExifTool. A volte è cifrata: nel 2005 Nikon cifrò il bilanciamento del bianco nei NEF di alcune reflex, e ne nacque una polemica pubblica con Adobe.
Che cosa dicono le firme
Riconoscere un file dal contenuto è un'idea vecchia quanto Unix: il comando file lo fa
dagli anni Settanta, cercando nei primi byte un «numero magico». Le firme della tabella sono di
questo tipo, e ognuna racconta qualcosa del suo formato.
- TIFF.
IIoMMdicono l'ordine dei byte nei numeri: Intel, il byte meno significativo per primo, o Motorola, il più significativo per primo. Il numero che segue, 42, la specifica lo chiama «arbitrario ma scelto con cura». Olympus e Panasonic l'hanno sostituito con un loro valore (RO,U): la struttura resta un TIFF, ma un programma TIFF qualunque non apre più i loro file. Dopo la firma, un offset porta al primo IFD. - JPEG. Il file è una sequenza di segmenti che cominciano con
FFe un byte di tipo; la firma è il marcatore d'inizio,FF D8, seguito dalFFdel segmento successivo. L'Exif sta nel segmento APP1 ed è a sua volta un TIFF in miniatura: per questo gli stessi IFD si ritrovano nelle JPEG e nei RAW. - PNG. Gli otto byte
89 50 4E 47 0D 0A 1A 0Aservono ad accorgersi dei trasferimenti che rovinano i file. Il primo non è ASCII e cambia se un canale toglie l'ottavo bit; poi vengono «PNG», un a capo alla DOS (0D 0A), il carattere che per il DOS chiude un file di testo (1A) e un a capo alla Unix (0A), che cambiano se qualcuno converte gli a capo. - Contenitore ISO. Il file è una serie di box, ognuno con la sua lunghezza e un tipo di
quattro lettere; il primo,
ftyp, dichiara la «marca» del contenuto. È l'eredità del QuickTime di Apple (1991), diventato la norma ISO/IEC 14496-12: lo stesso contenitore serve ai video MP4, alle foto HEIF e al CR3. - Intestazioni proprietarie.
FUJIFILMCCD-RAW,FOVb(Foveon),HEAPCCDR(il «mucchio» del formato CIFF di Canon),\0MRM(Minolta): formati nati fuori dal TIFF, ognuno con una struttura sua.
Per questo il registro del sito ragiona per famiglie di contenitori e non per formati: otto validatori coprono le dieci famiglie della tabella e i loro 32 formati, perché ORF e RW2 usano quello del TIFF, da cui differiscono solo per la firma. Un formato nuovo di una famiglia nota è una riga del registro, non un programma nuovo.
I formati uno per uno
Le descrizioni seguono l'ordine della tabella della scheda Tipi di file. Dimensioni, offset e numero degli IFD vengono dai file campione dell'archivio raw.pixls.us su cui è provato il registro, letti con un analizzatore della struttura e con ExifTool: altri modelli dello stesso formato possono avere più o meno IFD, ma l'impianto è quello. JPEG, PNG, HEIF, AVIF, MPO e MEF non hanno un campione in quell'archivio e sono descritti dalle loro specifiche.
JPEG e MPO
JPEG (.jpg, .jpeg, .jpe). Il file è una sequenza di segmenti,
ognuno aperto da FF e da un byte che ne dice il tipo, quasi sempre seguito dalla sua
lunghezza. Comincia con SOI (FF D8) e finisce con EOI (FF D9); in mezzo stanno i
segmenti applicativi (APP0 per il JFIF, APP1 per l'Exif e per l'XMP, APP2 per il profilo di colore
ICC), le tabelle di quantizzazione (DQT) e di Huffman (DHT), l'intestazione del fotogramma (SOF, con
dimensioni, numero dei componenti e tipo di codifica: sequenziale, progressiva o senza perdita) e
una o più scansioni (SOS) con i dati compressi. L'Exif del segmento APP1 è un TIFF completo, con il
suo IFD0, l'IFD Exif e un IFD1 che di solito porta una miniatura JPEG di 160×120 pixel: una JPEG
dentro la JPEG. Dopo EOI possono esserci altri dati, che il registro non legge: le immagini
secondarie di un MPO, la mappa di guadagno delle foto Ultra HDR, il video delle Motion Photo.
MPO (.mpo, Multi-Picture Object, CIPA DC-007). Più JPEG complete una dopo l'altra:
la prima porta in un segmento APP2 l'indice MPF, con posizione, dimensione e ruolo di ciascuna
immagine (per esempio la vista sinistra e quella destra di una coppia stereoscopica). Un programma
che non conosce il formato vede solo la prima JPEG; per il registro un MPO è una JPEG con un'altra
estensione.
PNG
PNG (.png). Dopo la firma di otto byte vengono i chunk, ognuno con lunghezza, tipo
di quattro lettere, dati e un controllo CRC-32: IHDR (dimensioni, profondità, tipo di colore), poi
eventualmente la tavolozza (PLTE), il profilo di colore e i metadati — l'Exif ha un chunk suo,
eXIf, dal 2017 —, uno o più IDAT con i pixel compressi con l'algoritmo Deflate dopo un filtro riga
per riga, e infine IEND. Le maiuscole e le minuscole del tipo hanno un significato: la prima lettera
minuscola dice che il chunk si può ignorare senza danno.
TIFF e RAW basati su TIFF
Tutti cominciano con II*\0 o MM\0* e con l'offset del primo IFD. Un IFD è un
elenco di voci di dodici byte (tag, tipo, numero dei valori, valore o offset del valore) seguito
dall'offset dell'IFD successivo; i tag SubIFDs (0x014A) ed ExifIFD (0x8769) aprono rami laterali.
Ogni immagine — la miniatura, l'anteprima, i dati del sensore — sta in un IFD suo, con larghezza,
altezza, compressione e posizione dei dati, in strisce o in tasselli; il tag NewSubfileType dice se è
l'immagine principale (0) o una versione ridotta (1). Da un formato all'altro cambia quale immagine
sta in quale IFD, come sono compressi i dati del sensore e che cosa c'è nella MakerNote.
GoPro GPR (.gpr). È un DNG (versione 1.3 nel campione della HERO7 Black) in cui i dati del
sensore, 4000×3000 a 16 bit, sono compressi con il codec VC-5, normato come SMPTE ST 2073 e
pubblicato da GoPro come software libero. Il codice di compressione, 9, nel TIFF generico vuol dire
un'altra cosa, e ExifTool infatti lo chiama «JBIG». L'unico IFD contiene direttamente i dati del
sensore: non c'è un'anteprima, ed è per questo che la pagina dell'orologio non accetta il formato.
Adobe DNG (.dng). Un TIFF/EP con un vocabolario di tag pubblico: DNGVersion, le matrici di
colore per due illuminanti (ColorMatrix1 e 2), i livelli del nero e del bianco (BlackLevel,
WhiteLevel), il bilanciamento del bianco di scatto (AsShotNeutral), l'area utile del sensore. Di
solito l'IFD0 contiene una miniatura o un'anteprima e un SubIFD i dati del sensore, compressi in JPEG
senza perdita; altri SubIFD possono portare anteprime più grandi. Nei campioni la Pentax K-r scrive
nell'IFD0 una miniatura di 160×120 non compressa, nel primo SubIFD i dati del sensore (4352×2868, 12
bit) e nel secondo un'anteprima JPEG di 4288×2848; l'iPhone XS mette nell'IFD0 un'anteprima di
852×640 e i dati del sensore a 16 bit in 64 tasselli, e fra l'intestazione e il primo IFD scrive la
parola APPLEDNG; la Sigma fp mette i dati del sensore direttamente nell'IFD0, senza anteprima. Il
produttore può conservare la sua MakerNote nel tag DNGPrivateData, come fa la Pentax (100 kB). Nei DNG
«lineari», come l'Apple ProRAW, i dati del sensore sono già demosaicizzati.
Canon CR2 (.cr2, 2004–2018). Un TIFF con un'aggiunta all'intestazione: al byte 8 la
scritta «CR», la versione del formato (2.0) e l'offset dell'IFD con i dati del sensore. Gli IFD sono
quattro, in catena: l'IFD0 con un'anteprima JPEG (1936×1288 nel campione della EOS 40D, metà della
risoluzione piena) e l'Exif con la MakerNote di Canon; l'IFD1 con una miniatura JPEG; l'IFD2 con una
piccola immagine RGB non compressa a 16 bit (486×324), per mostrare la foto in fretta; l'IFD3 con i
dati del sensore in JPEG senza perdita (ITU-T T.81, processo 14), divisi in fette verticali. Il
campione è un sRAW, un RAW ridotto che Canon registra in YCbCr invece che come mosaico del
sensore.
Nikon NEF (.nef). Nell'IFD0 una miniatura JPEG e i metadati principali, XMP compreso; le
anteprime e i dati del sensore stanno nei SubIFD. Nel campione della Z6 III i SubIFD sono sei:
un'anteprima JPEG di 1,3 MB, i dati del sensore (14 bit, compressione Nikon, codice 34713),
un'altra JPEG, un'immagine ridotta non compressa e due IFD vuoti. La MakerNote comincia con «Nikon»
e contiene un TIFF intero, con la sua intestazione: gli offset al suo interno si contano da lì, non
dall'inizio del file. Alcune sue parti sono cifrate, con una chiave ricavata dal numero di serie e dal
numero degli scatti.
Nikon NRW (.nrw). Lo stesso impianto del NEF, per le compatte Coolpix: nel campione della
P1000 l'IFD0 con la miniatura, un SubIFD con un'anteprima JPEG di 1,7 MB, uno con i dati del sensore
non compressi a 12 bit (24 MB) e uno con una seconda JPEG. È così simile al NEF che anche ExifTool li
confonde: la versione di Ubuntu 24.04 chiama NRW i NEF delle Z6 III e Z5 II.
Sony ARW (.arw). Nel campione della ILCE-7M5 l'IFD0 contiene un'anteprima JPEG (433 kB),
l'IFD1 una miniatura e l'IFD2 un'anteprima a piena risoluzione (4608×3072, 2,3 MB); i dati del
sensore (4640×3088, 14 bit) stanno in un SubIFD, compressi con un algoritmo di Sony che ExifTool
indica soltanto con il nome generico del codice. Il tag DNGPrivateData punta a SR2Private, una
struttura di Sony con parti cifrate, fra cui il bilanciamento del bianco e i livelli del nero.
Sony SR2 (.sr2, solo la DSC-R1 del 2005). L'antenato dell'ARW: un'anteprima JPEG nell'IFD0,
una miniatura nell'IFD1, i dati del sensore non compressi a 14 bit (3984×2608) in un SubIFD, e anche
qui il tag DNGPrivateData che punta alla struttura SR2Private.
Sony SRF (.srf, solo la DSC-F828 del 2003). La F828 aveva un filtro a quattro colori, con
lo smeraldo accanto al rosso, al verde e al blu, e il suo RAW è il più singolare della famiglia: i
dati del sensore (3360×2460) stanno nell'IFD0, ma cifrati, e la chiave per leggerli è in una
struttura di Sony dentro la MakerNote; l'IFD1 contiene un'anteprima JPEG.
Pentax PEF (.pef). Big-endian, a differenza dei RAW di Canon, Nikon e Sony. Nel campione
della K-r i dati del sensore stanno direttamente nell'IFD0 (4352×2868, 12 bit, compressione Pentax),
la miniatura di 160×120 nell'IFD1 e l'anteprima JPEG di 4288×2848 nell'IFD2. La MakerNote comincia
con «AOC», le iniziali di Asahi Optical Co., il vecchio nome della Pentax.
Hasselblad 3FR (.3fr). Nel campione della H3D l'IFD0 porta una miniatura RGB di 320×240
non compressa e un SubIFD i dati del sensore (7262×5456, 16 bit) in JPEG senza perdita; nessuna
anteprima JPEG. Il SubIFD dichiara come lunghezza dei dati 79 MB, cioè la lunghezza non compressa, in
un file di 53: una delle stranezze che il registro tollera.
Phase One IIQ (.iiq). L'intestazione è TIFF, ma l'offset del primo IFD porta in fondo al
file; subito dopo l'intestazione comincia invece un blocco di Phase One, riconoscibile da
IIII, che contiene i dati del sensore e le impostazioni della macchina. Per il TIFF quel
blocco è la MakerNote dell'Exif: nel campione del dorso P40+ è lunga 11 MB su 11,2. L'IFD0 e l'IFD1
contengono due miniature di 304×220; anteprime JPEG non ce ne sono.
Samsung SRW (.srw, 2010–2015). Big-endian; nel campione della NX500 l'IFD0 ha appena sei
tag e rimanda a due SubIFD, uno con un'anteprima JPEG (3,8 MB) e uno con i dati del sensore
(6496×4336, 12 bit), compressi con un algoritmo di Samsung che ExifTool indica con il nome generico
del codice; l'IFD1 rimanda a una miniatura JPEG.
Epson ERF (.erf, solo la R-D1, 2004–2009). La R-D1 fu la prima fotocamera digitale a
telemetro, con l'innesto Leica M. Il suo RAW è un TIFF big-endian con una miniatura di 160×120
nell'IFD0 e i dati del sensore (3040×2024, 12 bit) impacchettati senza compressione in un SubIFD; la
MakerNote comincia con «EPSON».
Leaf MOS (.mos). I dorsi Leaf scrivono un TIFF big-endian senza il tag Make: nel campione
dell'Aptus 22 l'IFD0 contiene direttamente i dati del sensore (4008×5344, 16 bit) in un unico
tassello in JPEG senza perdita, e il tag privato 0x8606 porta mezzo megabyte di dati di Leaf, con le
impostazioni della macchina. Il registro riconosce il formato da quel tag, perché la marca non
c'è.
Mamiya MEF (.mef). Il RAW della Mamiya ZD, un medio formato con il dorso digitale integrato
nel corpo: un TIFF con la marca Mamiya nell'IFD0, ed è da quella che il registro lo riconosce.
Kodak DCR (.dcr, fino al 2005). Il formato delle reflex professionali Kodak DCS, costruite
su corpi Nikon e Canon. Nel campione della DCS760C, su corpo Nikon F5 (2001), il TIFF è big-endian e il
primo IFD sta a 12982 byte dall'inizio; l'IFD0 e un SubIFD contengono due miniature RGB a 16 bit
(380×252), un secondo SubIFD i dati del sensore (3040×2016, 12 bit, compressione Kodak) e un terzo una
versione ridotta (760×504) compressa allo stesso modo.
Kodak KDC (.kdc, fino al 2012). Il RAW delle compatte Kodak EasyShare. Nel campione della
P712 l'IFD0 è un'anteprima JPEG di 1,5 MB e un SubIFD raccoglie 28 tag propri di Kodak; l'IFD di
interoperabilità di questo modello punta in mezzo ai dati, un'altra stranezza documentata nel
registro.
TIFF (.tif, .tiff). Un TIFF senza nessuno dei segni dei RAW: lo scrivono
alcune fotocamere quando convertono in macchina (Fujifilm) e lo scrivevano le prime reflex digitali.
Il campione viene dalla Kodak EOS DCS 3 del 1995, costruita su un corpo Canon: un'immagine di 1280×1024
a 8 bit, cioè il mosaico del sensore registrato come una foto in scala di grigi, più due miniature di
160×128.
TIFF con la firma di Olympus
Olympus ORF (.orf). La firma IIRO, o le varianti IIRS e
MMOR, sostituisce il 42; per il resto è un TIFF. Nel campione della TG-7 l'IFD0 contiene
direttamente i dati del sensore, non compressi (4040×3016, 16 bit per fotosito). Tutto il resto sta
nella MakerNote, che comincia con «OM SYSTEM» ed è lunga 1,5 MB: dentro ci sono le sue sezioni
(obiettivo, impostazioni, sviluppo, messa a fuoco) e anche l'anteprima JPEG, che la pagina
dell'orologio va a prendere lì.
Olympus ORI (.ori). Nelle foto ad alta risoluzione, in cui la macchina compone più scatti
spostando il sensore, OM System salva accanto al file composto il primo fotogramma, alla risoluzione
nativa, con l'estensione ORI. La struttura è quella di un ORF: nel campione della OM-5 Mark II,
5240×3912 a 16 bit e una MakerNote di 1,5 MB.
TIFF con la firma di Panasonic
Panasonic RW2 (.rw2). Firma IIU\0, primo IFD a 24 byte dall'inizio. Un solo
IFD principale, con una sessantina di tag in gran parte propri di Panasonic (dimensioni del sensore,
livelli del nero, bilanciamento del bianco) e il rimando all'Exif. I dati del sensore non stanno dove
direbbe il TIFF: le strisce dichiarano l'offset 0xFFFFFFFF e lunghezza zero, e la posizione vera è nel
tag 0x0118. L'anteprima è una JPEG completa, con il suo Exif, dentro il tag 0x002E: 942 kB nel
campione della GH5S.
Leica RWL (.rwl). Le compatte Leica fatte con Panasonic (D-Lux, C) scrivono lo stesso
formato con un'altra estensione e la marca LEICA: nel campione della D-LUX 6 l'IFD ha 40 tag e
l'anteprima nel tag 0x002E pesa 526 kB.
Contenitore ISO a box
Canon CR3 (.cr3, dal 2018). Un contenitore ISO di marca crx. Nel box
moov un box uuid di Canon contiene i metadati in quattro TIFF in miniatura (CMT1 con
l'IFD0, CMT2 con l'Exif, CMT3 con la MakerNote, CMT4 con il GPS) e una miniatura di 160×120 (THMB);
seguono quattro tracce, come in un video: la prima con una JPEG a piena risoluzione, la seconda con un
RAW ridotto (1620×1080 nei campioni), la terza con i dati del sensore, compressi con il codec CRX di
Canon, la quarta con metadati di scatto (CTMD). Fuori dal moov stanno un box uuid
con l'XMP, uno con l'anteprima PRVW di 1620×1080 e il box mdat con i dati veri e
propri.
AVIF (.avif). Lo stesso contenitore del HEIF, di marca avif, con le immagini
compresse in AV1, il codec video aperto di Alliance for Open Media; nato per il web nel 2019, è raro
negli apparecchi fotografici.
HEIF (.heic, .heif, .hif). Un contenitore ISO in cui le immagini
sono «oggetti» descritti nel box meta: iinf li elenca, iloc dice dove
stanno i loro byte, iprp ne raccoglie le proprietà (dimensioni, profilo di colore,
configurazione del codec) e iref le relazioni fra loro (questa è la miniatura di quella,
questo è l'Exif di quella). I telefoni dividono la foto in tasselli compressi in HEVC, di 512×512
nell'iPhone, e la ricompongono con un oggetto di tipo grid; le fotocamere Canon, Sony, Nikon
e Fujifilm lo usano per le foto a 10 bit, anche in HDR, con l'estensione HIF.
Fujifilm
Fujifilm RAF (.raf). Un'intestazione propria: la firma FUJIFILMCCD-RAW, le
versioni del formato, il nome del modello e una tabella di offset. Nel campione della X-S10, a 148
byte dall'inizio, comincia un'anteprima JPEG completa (2,8 MB, con il suo Exif); poi una tabella di 12
record con i dati di sviluppo (dimensioni, disposizione del mosaico, bilanciamento del bianco) e infine
i dati del sensore, 15,8 MB, che cominciano a loro volta con un piccolo IFD alla maniera del TIFF che ne
descrive dimensioni e posizione. Il mosaico delle X-Trans è di 6×6, non il 2×2 di Bayer.
Sigma
Sigma X3F (.x3f). Un'intestazione FOVb con versione, numero di serie e
dimensioni; in fondo al file una directory (SECd, il cui offset sta negli ultimi quattro byte)
elenca le sezioni. Nel campione della DP1 sono tre immagini (SECi) — un'anteprima JPEG di 2640×1760,
una miniatura di 221×147 e i dati del sensore, 2688×1792 su tre strati, compressi —, una sezione di
proprietà (SECp, coppie di nome e valore come il modello e l'obiettivo) e una di taratura (CAMF), i cui
dati sono offuscati.
Canon CIFF
Canon CRW (.crw, fino al 2004). Il formato CIFF (Camera Image File Format) non è un TIFF:
dopo l'ordine dei byte e la lunghezza dell'intestazione (26 byte) viene la firma HEAPCCDR,
e il resto del file è un «mucchio» di record la cui directory sta in fondo. Ogni record ha un tag, una
lunghezza e un offset; i bit alti del tag ne dicono il tipo, e alcuni tipi aprono un altro mucchio,
così che la struttura è un albero. Nel campione della PowerShot G1 (2000) il mucchio principale ha tre
record: i dati del sensore (2,3 MB, subito dopo l'intestazione), un'anteprima JPEG di 38 kB e un
mucchio con le proprietà dell'immagine, diviso a sua volta in mucchi per l'Exif, la descrizione e il
modello.
Minolta
Minolta MRW (.mrw, fino al 2006). Un'intestazione fatta di blocchi, ognuno con un nome di
quattro caratteri e una lunghezza: \0MRM li contiene tutti; \0PRD dice le
dimensioni del sensore e dell'immagine e i bit per fotosito; \0TTW è un TIFF completo, con
l'Exif e la MakerNote; \0WBG porta i coefficienti del bilanciamento del bianco e
\0RIF le impostazioni di scatto. Subito dopo l'intestazione cominciano i dati del sensore:
nel campione della DiMAGE 5 (2001), 2056×1544 fotositi a 12 bit.
Formati che invecchiano
Un RAW proprietario si legge finché qualcuno sa leggerlo. I produttori distribuiscono i loro programmi, non le specifiche: quasi tutto ciò che i programmi indipendenti sanno dei RAW viene dalla decifrazione paziente di Dave Coffin, che nel 1997 scrisse dcraw, un unico programma in C capace di leggere i file di centinaia di fotocamere, e lo aggiornò per vent'anni, e dalle librerie nate da lì, come LibRaw (2008). È grazie a loro che i formati segnati come storici nella tabella, i Kodak DCR, i Minolta MRW, i primi Sony, si aprono ancora.
Adobe propose il DNG nel 2004 anche per questo: un RAW con le specifiche pubbliche, in cui chi converte può incorporare perfino il file originale. Lo hanno adottato Leica, Pentax e Ricoh, la Sigma fp, i droni DJI e soprattutto i telefoni; i grandi produttori di fotocamere sono rimasti ai loro formati. Archivi come raw.pixls.us, che raccoglie con licenza CC0 file campione di moltissimi modelli, servono a chi scrive i decodificatori per provarli: il registro di questo sito è stato provato sui loro file.
Perché la pagina dell'orologio ne accetta solo alcuni
Accettare un formato vuol dire far girare sul server il codice che lo legge: meno formati, meno codice esposto ai file di chiunque. La pagina dell'orologio non sviluppa i RAW, ne legge l'anteprima JPEG, e quindi accetta 14 formati: i RAW che un'anteprima ce l'hanno, la JPEG e la PNG. Restano fuori i 3FR, gli IIQ e i GPR, che nei file di prova non hanno un'anteprima; HEIF e AVIF, che vorrebbero un decodificatore HEVC, coperto da brevetti, o AV1; il TIFF, che vorrebbe il suo; e i formati storici, che nessuna fotocamera in commercio scrive più. Le difese contro i file costruiti apposta sono descritte nell'Approfondimento della pagina dell'orologio.
Bibliografia
- Aldus Corporation, TIFF Revision 6.0, 3 giugno 1992 (oggi distribuita da Adobe).
- ISO 12234-2:2001, Electronic still-picture imaging — Removable memory — Part 2: TIFF/EP image data format.
- Adobe, Digital Negative (DNG) Specification, versione 1.7.1.0, 2023: helpx.adobe.com.
- CIPA DC-008-2023, Exif Version 3.0; CIPA DC-009-2010, Design rule for Camera File system (DCF) Version 2.0.
- ITU-T T.81 | ISO/IEC 10918-1, JPEG, 1992; ITU-T T.871, JPEG File Interchange Format, 2011.
- ISO/IEC 14496-12, ISO base media file format; ISO/IEC 23008-12, Image File Format (HEIF); ISO/IEC 18181-1:2022, JPEG XL image coding system.
- W3C, Portable Network Graphics (PNG) Specification (Third Edition), 2025, il capitolo sulla firma e le note sulle scelte di progetto: w3.org.
- B. E. Bayer, Color imaging array, brevetto US 3,971,065, 20 luglio 1976.
- D. Coffin, dcraw, dal 1997; LibRaw: libraw.org.
- P. Harvey, ExifTool Tag Names, con le MakerNote dei produttori: exiftool.org.
- L. Clévy, Describing the Canon Raw v3 (CR3) file format: github.com/lclevy/canon_cr3.
- raw.pixls.us, archivio di file RAW campione con licenza CC0: raw.pixls.us.
Keywords: formati, fotocamere, RAW, JPEG, HEIF, DNG, CR3, CR2, NEF, ARW, RAF, ORF, RW2, PEF, TIFF, firma, magic bytes, ExifTool, verifica dei file, sicurezza, upload