Guide

Perché metà del tuo JPEG è grigia

Una foto che si apre con la metà superiore pulita e quella inferiore di un grigio piatto sembra un errore casuale, ma ti sta dicendo con precisione cosa è successo: al file sono finiti i dati a metà dell'immagine. Ecco com'è costruito un JPEG, che aspetto ha sullo schermo ciascun tipo di guasto e una lettura onesta di quali tornano intere e quali semplicemente no.

Com'è costruito un JPEG: un manuale delle regole, poi la scansione

Un JPEG sono due parti che condividono un unico file. La prima è unheader corto: un insieme di marcatori che portano le regole di cui un decoder ha bisogno prima di poter disegnare qualsiasi cosa. Il marcatore di frame (SOF) registra le dimensioni dell'immagine e quanti componenti di colore ci sono. Le tabelle di quantizzazione (DQT) indicano con quanta aggressività il file è stato compresso. Le tabelle di Huffman (DHT) sono il libro dei codici per decomprimere i valori compressi. Insieme, questi sono il manuale delle regole.

La seconda parte è la scansione codificata per entropia: un unico flusso lungo e molto compatto con i dati reali dei pixel, che di solito occupa quasi tutto il file. Viene letto in ordine rigoroso, blocco per blocco, dall'angolo in alto a sinistra a quello in basso a destra. Il decoder non può saltare in avanti e non può iniziare a metà, perché ogni blocco si appoggia a quello precedente.

Un JPEG in due pezzi: un piccolo manuale delle regole all'inizio, poi la lunga scansione di pixel che le regole spiegano come leggere.

Questa divisione spiega ogni sintomo qui sotto. Danneggia il manuale delle regole e il decoder non può nemmeno iniziare, anche quando ogni pixel è presente. Tronca la scansione in anticipo e il decoder disegna ciò che può, poi si ferma dove si fermano i dati.

Tre classi di guasto, e cosa significa ciascuna

Le foto corrotte ricadono in tre classi riconoscibili. Abbinare il tuo sintomo alla sua classe è il modo più rapido di conoscere la prognosi prima di dedicare del tempo a una correzione.

Classe 1: non si apre affatto

Ogni visualizzatore rifiuta il file, o mostra un segnaposto di immagine rotta. Questo è quasi sempre un danno all'header o ai marcatori: il manuale delle regole all'inizio è rovinato, quindi nulla può iniziare a leggere la scansione che sta dietro. Per quanto controintuitivo, questa è la classe con le migliori probabilità, perché i dati dell'immagine di solito sono lì intatti dietro una porta d'ingresso rotta.

Classe 2: sopra bene, sotto grigio o sbavato

La foto si apre, la parte superiore sembra perfetta, e poi crolla in un grigio piatto o in una sbavatura verso il basso dell'ultima riga buona. Questo è troncamento, o un errore di bit a metà della scansione. Esiste ancora solo la parte al di sopra del taglio. Questo è unparziale genuino: riprendi la parte superiore reale, e il grigio sotto è sparito.

Classe 3: si apre, ma i colori sono sbagliati

L'intera immagine viene visualizzata, ma è posterizzata, con una dominante di colore o con i colori spostati. Qui la scansione è intatta e ciò che è sbagliato sono le tabelle che la guidano: una DQT o una DHT danneggiata decodifica pixel reali con le regole sbagliate. Poiché i dati dell'immagine sono sopravvissuti, correggere o sostituire le tabelle spesso riporta i colori in modo pulito. Le tre classi qui sopra sono esattamente le caselle in cui lo strumento di riparazione delle fotoordina un file quando lo legge in locale.

Perché la parte inferiore diventa grigia e resta grigia

Un JPEG si decodifica dall'alto verso il basso, blocco per blocco, e la luminosità di ogni blocco è memorizzata come una differenza rispetto al blocco precedente. Questa dipendenza a catena è il motivo per cui il decoder deve avanzare in ordine e non può saltare alla fine di un file danneggiato per salvarlo. Quando la scansione finisce in anticipo, un download troncato o una scheda rimossa a metà scrittura, il decoder semplicemente non ha più blocchi da disegnare. La maggior parte dei visualizzatori riempie il resto con un grigio neutro; alcuni ripetono l'ultimo valore che hanno letto, il che sembra una sbavatura verticale.

Il troncamento, disegnato: il manuale delle regole e la parte alta della scansione sono sopravvissuti; le righe sotto il taglio non sono mai state nel file.

La zona grigia non è nascosta, né cifrata, né in attesa di essere sbloccata. Sono dati dell'immagine che non esistono nel file, quindi nessuno strumento può recuperarli: ripristinarli significherebbe inventare pixel, e inventare pixel non è riparare. Un singolo bit invertito nel mezzo della scansione produce la versione con i colori spostati della stessa storia. Manda fuori sincrono il flusso compresso, e tutto ciò che c'è dopo quel punto si decodifica come rumore finché un marcatore di riavvio (RST), se la fotocamera ne ha scritto qualcuno, non permette al decoder di riprendersi. Molte fotocamere non li scrivono, ed è per questo che un solo byte difettoso può rovinare i due terzi inferiori di un frame.

L'errore di marcatore di Photoshop, decifrato

Se hai aperto il file in Photoshop, probabilmente hai visto questo, alla lettera:

Could not complete your request because an unknown or invalid JPEG marker type is found.

Photoshop è il lettore più severo della stanza: convalida ogni marcatore e rifiuta l'intero file se uno è sbagliato. Questa severità è in realtà utile per la diagnosi. Apri prima lo stesso file in un browser o in Anteprima. Se la foto compare lì, la scansione va bene e il danno è confinato ai marcatori, classe 1 o classe 3, le migliori probabilità che tu possa avere. Foto di Windows esprime lo stesso problema di fondo come It looks like we don't support this file format. e Anteprima sul Mac tende a dire che il file may be damaged. Formulazione diversa, stessa domanda di fondo: è rotto il manuale delle regole, o l'immagine è sparita?

Tattiche di recupero: header donatori e la miniatura EXIF

Quando il danno è nell'header e la scansione che sta dietro è sopravvissuta, la correzione manuale classica è un trapianto di header donatore. Prendi una foto in buono stato scattata con la stessa fotocamera con le stesse impostazioni, copi il suo header e lo innesti sulla scansione orfana del file rotto. Stessa fotocamera e stesse impostazioni significano le stesse tabelle di quantizzazione e di Huffman e le stesse dimensioni del frame, così il manuale delle regole preso in prestito si adatta al flusso che ora deve descrivere, e l'immagine si decodifica di nuovo. È un lavoro minuzioso, byte per byte e a mano; gli strumenti di riparazione strutturale automatizzano proprio questa classe di correzione. L'avvertenza onesta: funziona solo quando la scansione è davvero intatta e le dimensioni combaciano. Un donatore di un'altra risoluzione o di un altro modello di fotocamera non si allineerà, e forzarlo produce spazzatura.

Quando è la scansione principale in sé a essere sparita, resta un'opzione. La maggior parte dei JPEG di fotocamere e telefoni incorpora una piccolaminiatura, un suo JPEG completo in miniatura di qualche centinaio di pixel di larghezza, dentro i metadati EXIF all'inizio del file. Se l'header è sopravvissuto ma l'immagine principale no, quella miniatura può essere l'unica foto intera che riesci a estrarre. È a bassa risoluzione ed è un recupero, non un ripristino, ma per una foto che per il resto è grigia a partire dal primo centimetro, una versione pulita grande come un francobollo può essere meglio di niente. Molte foto rotte arrivano così dal software di recupero dati, dove un file estratto per carving spesso conserva il suo header e la sua miniatura mentre la scansione c'è solo in parte.

Domande frequenti

Perché metà del mio JPEG è grigia?

Perché il file finisce prima dell'immagine. Un JPEG memorizza i suoi pixel come un unico lungo flusso che un visualizzatore decodifica rigorosamente dall'alto verso il basso. Quando il flusso si interrompe in anticipo, che il file sia stato troncato durante un trasferimento o che un byte difettoso abbia bloccato il decoder, non ci sono più blocchi di pixel da disegnare, così il visualizzatore dipinge il resto di un grigio neutro. La zona grigia non è nascosta né bloccata; sono dati che non sono presenti nel file. La parte superiore è reale e recuperabile; le righe mancanti non le può ripristinare nessuno strumento, perché non è rimasto nulla da ripristinare.

Come correggo «invalid JPEG marker type» in Photoshop?

Photoshop è il lettore di JPEG più severo del tuo computer: un solo marcatore danneggiato e rifiuta l'intero file con Could not complete your request because an unknown or invalid JPEG marker type is found. Apri prima lo stesso file in un browser web o in Anteprima. Se la foto compare lì, i dati dell'immagine sono sopravvissuti e solo i marcatori sono danneggiati, che è la classe di guasto con le migliori probabilità di riparazione. La riparazione a livello di marcatori ricostruisce la struttura attorno ai dati dell'immagine intatti senza ricodificare un solo pixel.

Una foto con la parte inferiore grigia può essere ripristinata del tutto?

No, e qualsiasi strumento che promette il contrario sta tirando a indovinare. La zona grigia sono dati dell'immagine che il file non contiene, quindi non c'è nulla da cui ricostruirla. La riparazione può ripulire la struttura del file e restituire ogni riga che è davvero sopravvissuta, e a volte può estrarre una piccola immagine completa dalla miniatura incorporata, ma non può ridipingere righe i cui pixel non sono mai stati scritti. Un recupero onesto ti restituisce la tua foto reale, esattamente fin dove arrivano i dati.

Cos'è un header donatore e funziona?

Un header donatore è il manuale delle regole (le tabelle di quantizzazione e di Huffman e le dimensioni del frame) copiato da una foto in buono stato scattata con la stessa fotocamera con le stesse impostazioni, e poi innestato su un file il cui header è danneggiato ma i cui dati dell'immagine sono sopravvissuti. Poiché le impostazioni coincidono, le regole prese in prestito si adattano al flusso di immagine orfano e la foto si decodifica di nuovo. Funziona solo quando i dati dell'immagine sono davvero intatti e le dimensioni combaciano; una foto di un'altra fotocamera o di un'altra risoluzione non si adatterà. Gli strumenti di riparazione strutturale automatizzano questa classe di correzione.

Hai recuperato queste foto da una scheda formattata e metà non si aprono? È un pattern con una sua spiegazione: perché i file recuperati non si aprono.