Gibt es eine Möglichkeit, beschädigte JPEG-Dateien wiederherzustellen?

Ich frage mich, ob es eine Möglichkeit gibt, beschädigte JPEG-Dateien wiederherzustellen.

Sie wurden beschädigt, weil ich einen Ordner wegen eines Fehlers gelöscht und ihn sofort mit einer Wiederherstellungssoftware wiederhergestellt habe. Die meisten Fotos sind in Ordnung, aber einige von ihnen haben Probleme wie

  • graue Bereiche unten
  • Farb-/Bildverschiebungen einiger Bildstreifen

Ich habe versucht, die Integrität mit dem jpeginfoTool zu überprüfen, und es hat mir tatsächlich gezeigt, dass diese Fotos einige Probleme im Zusammenhang mit dem Prüfsummen-Hauffman-Bitstream hatten.

Gibt es irgendwelche Tools, die versuchen können, diese Bilder wiederherzustellen? Einige von ihnen zeigen deutlich, dass die Daten immer noch da sind, nur durcheinander.

Können wir die beiden Fragen zusammenführen (die eine, auf die oben verlinkt ist, und diese)?
Mit welchem ​​Programm haben Sie beschädigte Bilder geöffnet?

Antworten (3)

Dies ist ein langer Weg, aber wenn Ihre JPEGs zufällig im progressiven Modus codiert sind, können Sie möglicherweise eine Version Ihrer beschädigten Bilder mit niedrigerer Auflösung retten.

Progressive JPEGs werden als mehrere inkrementelle "Scans" codiert. Die Datei beginnt mit einem Scan, der das gesamte Bild mit einer sehr niedrigen Auflösung darstellt, jeder nachfolgende Scan baut auf dem vorherigen auf und fügt mehr Auflösung hinzu. Dieser inkrementelle Prozess wird fortgesetzt, bis das Bild mit voller Auflösung erhalten wird.

Wenn Ihre JPEGs progressiv sind, sollten Sie theoretisch in der Lage sein, die Dekodierung zu stoppen, wenn Sie einen beschädigten Scan finden, und obwohl das Bild eine niedrigere Auflösung als das Original hat, ist es zumindest vollständig.

Ich glaube, das von Ihnen verwendete jpeginfo-Tool wird Ihnen mitteilen, ob Ihre JPEGs progressiv oder grundlegend sind. Dies wäre also ein schneller Test, um zu entscheiden, ob Sie mehr Zeit in diese potenzielle Lösung investieren müssen oder nicht.

Leider konnte ich kein Tool finden, das die inkrementellen Auflösungen als einzelne Bilder ausgeben kann. Dies erfordert möglicherweise ein benutzerdefiniertes Tool, das um libjpeg herum erstellt wurde .

Wenn das Problem beim Huffman liegt (das ist der verlustfreie Teil der JPEG-Komprimierung), dann sind Ihre Chancen, die Bildinformationen wiederherzustellen, wirklich minimal. Huffman minimiert wie andere Formen der Entropiecodierung die Informationsredundanz im Datenstrom, idealerweise auf das absolute Minimum. Dies bedeutet, dass es höchstwahrscheinlich keine "anderen Teile" des komprimierten Streams gibt, die Sie verwenden können, um mehr über die Art des fehlenden oder beschädigten Teils zu erfahren.

Allerdings ist möglicherweise ein Tool verfügbar, mit dem Sie das spezifische Image wiederherstellen können, das Sie haben. Andernfalls einige manuelle Fotobearbeitung, wie das Beispiel von @mattdm in der Frage, auf die er verlinkt hat, mein Foto retten.

Hinweis: Interessant zu lesen sind die ersten beiden Absätze der Zusammenfassung dieses Dokuments .

Ich habe gerade ein Befehlszeilentool geschrieben, um die gesamte Bibliothek zu analysieren und die Warnungen/Fehler mit Hilfe von zu extrahieren jpeginfo. Es wurden viele verschiedene Probleme gemeldet, also denke ich, dass ich sie weiter untersuchen werde. Ich bin praktisch im JPEG-Format, also könnte ich versuchen zu sehen, was wiederherstellbar ist, aber es würde viel Zeit erfordern, deshalb habe ich nach einem vorgefertigten Tool gefragt :) Hier ist das Skript für zukünftige Referenzen: pastie.org/4039144 (es erfordert jpeginfo und Groovy )

graue Bereiche unten

Diese sind oft das Ergebnis eines von drei Problemen:

  1. Datei wurde abgeschnitten, aus irgendeinem Grund abgeschnitten. Am einfachsten lässt sich dies feststellen, indem Sie die Größe der Datei mit der eines Bildes vergleichen, das mit demselben Gerät und denselben Einstellungen aufgenommen wurde.

  2. Dateigröße = okay, aber beim Öffnen in einem Hex-Editor besteht die Hälfte der Datei aus Nullen.

  3. Ungültige Daten im 'JPEG-Bitstream'. Decoder interpretieren alle FF xx Byte-Paare als JPEG-Marker. Wenn das FF xx keiner gültigen Markierung entspricht, stoppen die meisten Decoder die Decodierung. Dies (1) ergibt sich daraus, (2), (3) und (4) sind unterschiedliche Reparaturstufen, Restschäden müssen im Photoshop o.ä. korrigiert werden:

Geben Sie hier die Bildbeschreibung ein

Farb-/Bildverschiebungen einiger Bildstreifen

Die Verschiebung kann auch auf beschädigte Daten im „JPEG-Bitstream“ zurückzuführen sein.

Gestreift, schwerer zu sagen, was du meinst. Wenn du so meinst:

Geben Sie hier die Bildbeschreibung ein

Dann haben wir es mit einer Menge Korruption im Bitstream zu tun, während diese das Ergebnis gemischter Daten sind:

Geben Sie hier die Bildbeschreibung ein

In diesem Fall wurden Daten aufgrund eines beschädigten Dateisystems gemischt. Die diagonalen Muster deuten darauf hin, dass es mit JPEG-Daten gemischt ist, die mit einer anderen Auflösung codiert wurden.

Sogar jede Menge Beschädigungen können manchmal repariert werden, aber es kann bis zu Stunden Arbeit pro Datei dauern:

Geben Sie hier die Bildbeschreibung ein

Eine andere Variante von "Streifen" oder besser gesagt diagonalen Mustern kann durch Header verursacht werden, die nicht die korrekten Encoder-Einstellungen darstellen, was häufig auf falsch wiederhergestellte Dateien zurückzuführen ist:

Geben Sie hier die Bildbeschreibung ein

Ich habe zufällig eine Reparatur dieser bestimmten Datei hier https://youtu.be/jhJtej2UI20

Ob eine Datei repariert werden kann, hängt davon ab, ob der Großteil der JPEG-Daten erhalten bleibt. Wie, hängt von der Ursache ab. Das halbgraue Bild wird durch 'Patching' von JPEG-Daten repariert.

Wir haben keine Chance, das Beispiel mit gemischten Daten im Windows Explorer zu reparieren, diese müssen korrekt wiederhergestellt werden.

Zusammenfassend können wir nur solche reparieren, bei denen JPEG-Daten weitgehend erhalten bleiben. Die Dateigröße ist ein Werbegeschenk sowie ein kurzer Blick mit dem Hex-Editor. Wenn die Dateien in Ordnung aussehen und die Daten in der Datei "zufällig" aussehen (hohe Entropie), besteht die Möglichkeit, dass sie repariert werden können. Wenn sich der Schaden jedoch Datei für Datei wiederholt, handelt es sich möglicherweise stattdessen um ein Dateisystemproblem, und es ist am besten, zu versuchen, die Daten auf einem anderen Laufwerk wiederherzustellen.