background

Eclipsis

An astronomic framework

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

FormatoEstensioniProduttoriSi riconosce daStatotime.php
JPEG — firma FF D8 FF
JPEG.jpg .jpeg .jpetutte le fotocamere e i telefonila firmain usosì
MPO.mpofotocamere stereoscopiche (Fujifilm W3, Nintendo 3DS)la firmastoricono: formato storico
PNG — firma 89 50 4E 47 0D 0A 1A 0A
PNG.pngschermate di telefoni e computer (le fotocamere non lo scrivono)la firmain usosì
TIFF e RAW basati su TIFF — firma II*\0 o MM\0*
GoPro GPR.gprGoPro (DNG con compressione VC-5)tag DNGVersion e marca GoProin usono: nei file non c'è un'anteprima JPEG
Adobe DNG.dngLeica, Pentax e Ricoh, Sigma fp, DJI, telefoni (Apple ProRAW, Android)tag DNGVersionin usosì
Canon CR2.cr2Canon, modelli dal 2004 al 2018marcatore «CR» 2 al byte 8in usosì
Nikon NEF.nefNikon, reflex e mirrorless Zmarca nell'IFD0: Nikonin usosì
Nikon NRW.nrwNikon Coolpixmarca nell'IFD0: Nikonin usosì
Sony ARW.arwSony Alpha, RX e ZVmarca nell'IFD0: Sonyin usosì
Sony SR2.sr2Sony DSC-R1, 2005marca nell'IFD0: Sonystoricono: formato storico
Sony SRF.srfSony DSC-F828, 2003marca nell'IFD0: Sonystoricono: formato storico
Pentax PEF.pefPentax e Ricohmarca nell'IFD0: Pentax o Ricohin usosì
Hasselblad 3FR.3frHasselblad, medio formatomarca nell'IFD0: Hasselbladin usono: nei file non c'è un'anteprima JPEG
Phase One IIQ.iiqPhase One e Leaf, dorsi digitalimarca nell'IFD0: Phase One o Leafin usono: nei file non c'è un'anteprima JPEG
Samsung SRW.srwSamsung NX, 2010-2015marca nell'IFD0: Samsungstoricono: formato storico
Epson ERF.erfEpson R-D1, 2004-2009marca nell'IFD0: Epsonstoricono: formato storico
Leaf MOS.mosLeaf, dorsi digitali fino al 2012 circatag 0x8606 (dati Leaf), senza Makestoricono: formato storico
Mamiya MEF.mefMamiya ZDmarca nell'IFD0: Mamiyastoricono: formato storico
Kodak DCR.dcrKodak DCS, fino al 2005marca nell'IFD0: Kodakstoricono: formato storico
Kodak KDC.kdcKodak EasyShare, fino al 2012marca nell'IFD0: Kodakstoricono: formato storico
TIFF.tif .tiffconversione in macchina (Fujifilm) e fotocamere storichenessuno dei segni dei RAWin usono: servirebbe il decodificatore TIFF
TIFF con la firma di Olympus — firma IIRO, IIRS, MMOR
Olympus ORF.orfOlympus e OM Systemla firmain usosì
Olympus ORI.oriOM System, fotogramma di base dell'alta risoluzionela firmain usosì
TIFF con la firma di Panasonic — firma IIU\0
Panasonic RW2.rw2Panasonic Lumixmarca nell'IFD0: Panasonicin usosì
Leica RWL.rwlLeica compatte fatte con Panasonic (D-Lux, C)marca nell'IFD0: Leicain usosì
contenitore ISO a box — firma ftyp al byte 4
Canon CR3.cr3Canon, dal 2018marca ISO crxin usosì
AVIF.avifformato del web, raro negli apparecchi fotograficimarca ISO avif, avisin usono: servirebbe un decodificatore HEVC o AV1
HEIF.heic .heif .hifCanon, Sony, Nikon, Fujifilm (.hif); iPhone e Android (.heic)marca ISO heic, heix, hevc…in usono: servirebbe un decodificatore HEVC o AV1
Fujifilm — firma FUJIFILMCCD-RAW
Fujifilm RAF.rafFujifilmla firmain usosì
Sigma — firma FOVb
Sigma X3F.x3fSigma con sensore Foveon (serie SD e DP)la firmastoricono: formato storico
Canon CIFF — firma HEAPCCDR al byte 6
Canon CRW.crwCanon, fino al 2004la firmastoricono: formato storico
Minolta — firma \0MRM
Minolta MRW.mrwMinolta e Konica Minolta, fino al 2006la firmastoricono: 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.

AnnoChe cosa
1986Aldus 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.
1991Kodak DCS, un corpo Nikon F3 con un sensore da 1,3 megapixel: la prima reflex digitale in commercio.
1992La norma JPEG (ITU-T T.81) e il formato di file JFIF; la revisione 6.0 del TIFF, ancora in vigore.
1995Exif 1.0: data, ora, esposizione, marca e modello scritti dentro il file.
1998DCF: la cartella DCIM e i nomi come IMG_1234.JPG, perché una scheda di memoria si legga su qualunque apparecchio.
1999–2002I RAW delle prime reflex: NEF della Nikon D1 (1999), CRW della Canon D30 (2000), X3F della Sigma SD9 (2002).
2001TIFF/EP (ISO 12234-2), un profilo del TIFF per la fotografia elettronica che molti RAW seguono a grandi linee.
2004Il DNG di Adobe, un RAW con le specifiche pubbliche; Canon passa dal CRW al CR2.
2014–2020I telefoni: DNG in Android 5 (2014), HEIF in iOS 11 (2017), Apple ProRAW, un DNG, nel 2020.
2018–2020Il 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).
2023DNG 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.

Struttura semplificata di un file RAW basato su TIFF intestazioneII*\0 o MM\0* + offset IFD0marca, modello, miniatura SubIFDdati del sensore, anteprima JPEG Exif IFDdata e ora, esposizione MakerNotedati del produttore
Figura 1. Com'è fatto, in breve, un RAW basato su TIFF: l'intestazione porta al primo indice dei tag (IFD0), che rimanda agli altri. Quanti IFD ci sono e che cosa contiene ciascuno cambia da un produttore all'altro; l'Exif dentro una JPEG ha la stessa struttura.

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. II o MM dicono 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 FF e un byte di tipo; la firma è il marcatore d'inizio, FF D8, seguito dal FF del 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 0A servono 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