Guides

Pourquoi la moitié de votre JPEG est grise

Une photo qui s'ouvre sur une moitié supérieure nette et une moitié inférieure d'un gris uni ressemble à un bug, mais elle vous dit précisément ce qui s'est passé : le fichier est arrivé à court de données à mi-hauteur de l'image. Voici comment un JPEG est construit, à quoi ressemble chaque type de défaillance à l'écran, et une lecture honnête de celles qui reviennent entières et de celles qui, tout simplement, ne reviennent pas.

Comment un JPEG est construit : un manuel de règles, puis le balayage

Un JPEG, ce sont deux parties qui partagent un même fichier. La première est un court en-tête : un ensemble de marqueurs qui portent les règles dont un décodeur a besoin avant de pouvoir dessiner quoi que ce soit. Le marqueur de trame (SOF) enregistre les dimensions de l'image et le nombre de composantes de couleur. Les tables de quantification (DQT) indiquent avec quelle agressivité le fichier a été compressé. Les tables de Huffman (DHT) sont le livre de codes qui sert à décompresser les valeurs compressées. Ensemble, elles forment le manuel de règles.

La seconde partie est le balayage codé par entropie : un long flux unique, très densément empaqueté, des données réelles des pixels, qui occupe généralement la quasi-totalité du fichier. Il se lit dans un ordre strict, bloc par bloc, du coin supérieur gauche au coin inférieur droit. Le décodeur ne peut ni sauter en avant ni commencer au milieu, parce que chaque bloc s'appuie sur le précédent.

Un JPEG en deux morceaux : un petit manuel de règles au début, puis le long balayage de pixels que les règles expliquent comment lire.

Cette séparation explique tous les symptômes ci-dessous. Endommagez le manuel de règles et le décodeur ne peut pas commencer, même quand chaque pixel est présent. Coupez le balayage prématurément et le décodeur dessine ce qu'il peut, puis s'arrête là où les données s'arrêtent.

Trois classes de défaillance, et ce que chacune signifie

Les photos corrompues se répartissent en trois classes reconnaissables. Rapprocher votre symptôme de sa classe est le moyen le plus rapide de connaître le pronostic avant de consacrer le moindre temps à une réparation.

Classe 1 : elle ne s'ouvre pas du tout

Toutes les visionneuses refusent le fichier, ou affichent un symbole d'image cassée. C'est presque toujours un dommage d'en-tête ou de marqueur : le manuel de règles du début est déchiqueté, si bien que rien ne peut commencer à lire le balayage qui se trouve derrière. Contre toute intuition, c'est la classe qui offre les meilleureschances, parce que les données d'image sont généralement là, intactes, derrière une porte d'entrée cassée.

Classe 2 : le haut correct, le bas gris ou étiré

La photo s'ouvre, la partie supérieure semble parfaite, puis elle bascule vers un gris uni ou un étirement vers le bas de la dernière ligne correcte. C'est une troncature, ou une erreur de bit à mi-parcours du balayage. Seule la partie située au-dessus de la coupure existe encore. C'est unpartiel authentique : vous récupérez le vrai haut, et le gris en dessous a disparu.

Classe 3 : elle s'ouvre, mais les couleurs sont fausses

L'image entière s'affiche, mais elle est postérisée, teintée ou avec les couleurs décalées. Ici, le balayage est intact et ce sont les tables qui le pilotent qui sont fausses : une DQT ou une DHT endommagée décode de vrais pixels avec les mauvaises règles. Comme les données de l'image ont survécu, corriger ou remplacer les tables ramène souvent les couleurs proprement. Les trois classes ci-dessus sont exactement les cases dans lesquelles l'outil de réparation photo range un fichier quand il le lit en local.

Pourquoi le bas vire au gris et y reste

Un JPEG se décode de haut en bas, bloc par bloc, et la luminosité de chaque bloc est stockée comme une différence par rapport au bloc précédent. C'est cette dépendance en chaîne qui oblige le décodeur à avancer dans l'ordre et l'empêche de sauter au bas d'un fichier endommagé pour le sauver. Quand le balayage se termine prématurément, un téléchargement tronqué ou une carte retirée en pleine écriture, le décodeur n'a tout simplement plus de blocs à dessiner. La plupart des visionneuses remplissent le reste d'un gris neutre ; certaines répètent la dernière valeur lue, ce qui ressemble à un étirement vertical.

La troncature, illustrée : le manuel de règles et le haut du balayage ont survécu ; les lignes sous la coupure n'ont jamais été dans le fichier.

La zone grise n'est ni cachée, ni chiffrée, ni en attente d'être déverrouillée. Ce sont des données d'image qui n'existent pas dans le fichier, donc aucun outil ne peut les ramener : les restaurer reviendrait à inventer des pixels, et inventer des pixels, ce n'est pas réparer. Un seul bit inversé au milieu du balayage produit la version « couleurs décalées » de la même histoire. Il désynchronise le flux compressé, et tout ce qui suit ce point se décode en bruit jusqu'à ce qu'un marqueur de redémarrage (RST), si l'appareil en a écrit, permette au décodeur de récupérer. Beaucoup d'appareils n'en écrivent pas, et c'est pourquoi un seul octet défectueux peut ruiner les deux tiers inférieurs d'une image.

L'erreur de marqueur de Photoshop, décodée

Si vous avez ouvert le fichier dans Photoshop, vous avez probablement vu ceci, mot pour mot :

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

Photoshop est le lecteur le plus strict de la pièce : il valide chaque marqueur et refuse le fichier entier si un seul est faux. Cette exigence est en réalité utile pour le diagnostic. Ouvrez d'abord le même fichier dans un navigateur ou dans Aperçu. Si la photo apparaît là, le balayage est intact et le dommage se limite aux marqueurs, classe 1 ou classe 3, les meilleures chances possibles. Photos de Windows formule le même problème de fond ainsi : It looks like we don't support this file format. et Aperçu sur le Mac a tendance à dire que le fichier may be damaged. Formulation différente, même question par-dessous : le manuel de règles est-il cassé, ou l'image a-t-elle disparu ?

Tactiques de sauvetage : en-têtes donneurs et miniature EXIF

Quand le dommage est dans l'en-tête et que le balayage derrière lui a survécu, la réparation manuelle classique est une greffe d'en-tête donneur. Vous prenez une photo saine prise avec le même appareil et les mêmes réglages, vous copiez son en-tête et vous le greffez sur le balayage orphelin du fichier cassé. Même appareil et mêmes réglages signifie les mêmes tables de quantification et de Huffman et les mêmes dimensions d'image, si bien que le manuel de règles emprunté s'ajuste au flux qu'il doit désormais décrire, et l'image se décode de nouveau. C'est un travail minutieux, à la main et au niveau de l'octet ; les outils de réparation structurelle automatisent précisément cette classe de correctif. La mise en garde honnête : cela ne marche que lorsque le balayage est réellement intact et que les dimensions correspondent. Un donneur d'une autre résolution ou d'un autre modèle d'appareil ne s'alignera pas, et le forcer produit du charabia.

Quand c'est le balayage principal lui-même qui a disparu, il reste une option. La plupart des JPEG d'appareils photo et de téléphones intègrent une petite miniature, son propre petit JPEG complet de quelques centaines de pixels de large, à l'intérieur des métadonnées EXIF au début du fichier. Si l'en-tête a survécu mais pas l'image principale, cette miniature peut être la seule image entière que vous puissiez extraire. Elle est en basse résolution et c'est un sauvetage, pas une restauration, mais pour une photo par ailleurs grise dès les premiers centimètres, une version propre de la taille d'un timbre peut valoir mieux que rien. Beaucoup de photos cassées arrivent ainsi depuis les logiciels de récupération de données, où un fichier reconstitué par carving conserve souvent son en-tête et sa miniature alors que le balayage n'est là qu'en partie.

FAQ

Pourquoi la moitié de mon JPEG est-elle grise ?

Parce que le fichier se termine avant l'image. Un JPEG stocke ses pixels sous forme d'un long flux unique qu'une visionneuse décode strictement de haut en bas. Quand le flux s'arrête prématurément, que le fichier ait été tronqué pendant un transfert ou qu'un octet défectueux ait stoppé le décodeur, il n'y a plus de blocs de pixels à dessiner, et la visionneuse peint donc le reste d'un gris neutre. La zone grise n'est ni cachée ni verrouillée ; ce sont des données qui ne sont pas présentes dans le fichier. La partie du haut est réelle et récupérable ; les lignes manquantes ne peuvent être restaurées par aucun outil, parce qu'il ne reste rien à restaurer.

Comment corriger « invalid JPEG marker type » dans Photoshop ?

Photoshop est le lecteur de JPEG le plus strict de votre machine : un seul marqueur endommagé et il refuse le fichier entier avec Could not complete your request because an unknown or invalid JPEG marker type is found. Ouvrez d'abord le même fichier dans un navigateur web ou dans Aperçu. Si la photo apparaît là, les données d'image ont survécu et seuls les marqueurs sont endommagés, ce qui est la classe de défaillance offrant les meilleures chances de réparation. La réparation au niveau des marqueurs reconstruit la structure autour des données d'image intactes sans réencoder un seul pixel.

Une photo au bas gris peut-elle être entièrement restaurée ?

Non, et tout outil qui promet le contraire ne fait que deviner. La zone grise, ce sont des données d'image que le fichier ne contient pas : il n'y a donc rien à partir de quoi la reconstruire. La réparation peut nettoyer la structure du fichier et rendre chaque ligne qui a réellement survécu, et parfois extraire une petite image complète de la miniature intégrée, mais elle ne peut pas repeindre des lignes dont les pixels n'ont jamais été écrits. Un sauvetage honnête vous rend votre vraie photo, exactement aussi loin que vont les données.

Qu'est-ce qu'un en-tête donneur, et est-ce que ça marche ?

Un en-tête donneur, c'est le manuel de règles (les tables de quantification et de Huffman et les dimensions de l'image) copié depuis une photo saine prise avec le même appareil et les mêmes réglages, puis greffé sur un fichier dont l'en-tête est endommagé mais dont les données d'image ont survécu. Comme les réglages correspondent, les règles empruntées s'ajustent au flux d'image orphelin et la photo se décode de nouveau. Cela ne fonctionne que lorsque les données d'image sont réellement intactes et que les dimensions concordent ; une photo d'un autre appareil ou d'une autre résolution ne conviendra pas. Les outils de réparation structurelle automatisent cette classe de correctif.

Vous avez récupéré ces photos depuis une carte formatée et la moitié refusent de s'ouvrir ? C'est un schéma qui a sa propre explication : pourquoi les fichiers récupérés ne s'ouvrent pas.