Windows で破損した jpeg ファイルを修復するにはどうすればいいですか?

Windows で破損した jpeg ファイルを修復するにはどうすればいいですか?

最近、私は愚かにも、削除すべきではなかった写真をいくつか削除してしまいました。プログラム写真を復元すると、下図のように灰色の領域のある破損した状態で写真が返されました。

これを修正する方法をご存知ですか? Windows フォト ビューアーで写真を表示すると、Windows がプレビューを生成している間、完全な画像がほんの一瞬表示されるため、情報は何らかの形で明らかに存在します。

破損した画像

答え1

一部の大きな画像には、画像全体の低解像度バージョンである小さなサムネイルが含まれています。

この小さな画像内画像は、Windows エクスプローラーなどの一部のプログラムで、アイコン ビューで画像を表示するときに使用されます。そうしないと、画像のアイコンを表示するには、画像全体を読み取ってアイコン サイズに変換する必要があり、フォルダーの表示速度が許容できないほど遅くなります。

Windows フォト ビューアーは、大きな画像を読み取りながら、このサムネイルをユーザーフレンドリーな方法で表示していると思います。ただし、その大きな画像は破損しており、サムネイルだけがそのまま残っています。

Recuva は優れた写真復元プログラムなので、画像のその部分を上書きしたことが損傷の原因であると考えられます。復元したいボリュームにデータを書き込まないでください。

ただし、そのボリュームがまだほぼ無傷である場合は、別の非常に優れたファイル回復製品を試すこともできます。
PC INSPECTOR ファイル回復
ただし、復元したイメージを別のボリュームにコピーすることを忘れないでください。そうしないと、1 つのイメージを復元するときに別のイメージが破壊される可能性があります。

破損した JPEG 画像を修復するには、このスレッドを参照してください:破損した jpeg、サムネイルが抽出されました...
サムネイル抽出ツールだけでなく、そのようなツールも数多く推奨されています。
Exifツール特に良さそうです。

答え2

開示:数年前、そのようなファイルを修復できるかどうか尋ねられたので、調べてみることにしました。その結果、ファイルを修復する方法を見つけることができ、最終的にはいくつかの (非フリーの) ツールを作成することができました。この投稿ではそれらについて説明します。可能な限り、無料の代替手段を紹介します。

免責事項:JPEG には多くの計算が関係します。私はこの問題について訓練を受けた専門家でも教育を受けた専門家でもありません。私が説明する内容の多くは、試行錯誤して「何がうまくいくか」を見つけ出すことで発見したものです。したがって、この情報すべてが科学的に正しいとは思わないでください。

それは場合によります。このような画像が表示された場合、3 つの点が間違っている可能性があります。

  1. ファイルの一部のみが復元または存在します (何らかのツールで復元されていない場合)。これが当てはまるかどうかを判断するには、同じカメラと設定で撮影された類似のファイルとファイル サイズを比較します。
  2. ファイル サイズが適切であれば、ファイルの一部に正しいデータが含まれていない可能性があります。これは、16 進エディター (たとえば、無料の HxD) を使用して確認するのが最も簡単です。多くの場合、ファイルの大部分がゼロまたは繰り返しバイト パターン (FF FF FF FF など) で埋められていることがわかります。
  3. 以前の問題がチェックされ、ファイル サイズが適切で、ファイル全体のエントロピー データが高い場合、エンコードおよび圧縮された画像データのわずかな破損でもデコーダー (画像ビューアーに組み込まれている) が混乱する可能性があります。

シナリオ3は修復できる可能性がある唯一のケースなので、詳しく見ていきましょう。JPEGデコーダーにとって意味を持つ特定のバイトの組み合わせがあります。FF xxはJPEGデコーダーによってJPEGマーカーとして解釈されます(見る。これらのマーカーは、JPEG をそれぞれ異なる目的の「セクション」に分割するために使用されます。デコーダーが実際の画像データ内で無効な FF xx バイト ペア (FF Dn (n = 0 ~ 7) や FF 00 ではない) に遭遇した場合、ほとんどのデコーダーはデコードを停止します。これは、FE が FF になる単一の「ビット反転」の結果である可能性があります。画像データの一部がデコードされていないため、灰色のブロックとして表示されます。元の値がわからないため、問題のあるバイト ペアを削除することは解決策の一部にすぎませんが、16 進エディターと画像ビューアのみを使用して画像を修復できました。Jpegスヌープこのような問題のあるバイトの組み合わせのバイトアドレスを特定するのは簡単です。ただし、JPEG のエンコード/デコード方法により、この問題は後続のすべての画像データに影響します (簡単に言うと、輝度と色差のデータはデルタとして保存されます。つまり、前のブロックとの差です)。損傷を修復するには、特別なエディタ (このYouTube動画私は独自のエディタと無料のエディタを使用して、部分的にグレーの JPEG を修復できるかどうか、また修復する方法を確認します。) 問題のあるバイトをゼロで上書きするだけで満足のいく結果が得られる幸運に恵まれることは、ごくまれにあります。

16進エディタのみを使用してJPEGを修復する

シナリオ 2 には解決策はありません。シナリオ/問題 1 は、誤った回復によって発生した可能性があります。

  1. ファイル システム対応の回復ツール: 簡単に言うと、このようなツールはファイル システム データの一部を見つけて失われたデータを見つけます。デジタル カメラで使用されるメモリ カードで主流である FAT ベースのファイル システムを想定すると、ツールはファイル名、ファイル サイズ、ファイル属性、および最初のクラスターをデコードできるディレクトリ エントリを見つけます。次に、ファイル アロケーション テーブルを調べて残りのクラスターを取得し、最後にファイルを再構築します。何らかの理由で FAT チェーンが破損または不完全な場合は、ファイルの一部のみが再構築される可能性があります。このタイプの破損は、FAT ベースのファイル システム (FAT、FAT32、およびある程度は exFAT) では珍しくありません。多くの場合、いわゆるカーバーを使用して回復することは可能ですが、これらには独自の問題があります。

  2. ファイル回復ツールのもう 1 つのカテゴリは、いわゆる「カーバー」です。ファイル システムに依存するのではなく、ドライブをスキャンして、特定のファイル タイプの存在を示す可能性のある「マジック バイト」を探します。JPEG を想定すると、JPEG は常に特定のバイトの組み合わせで始まるため、ドライブをスキャンして、クラスターまたはセクター境界で FF D8 FF を探します。これで、ファイルの開始位置がわかります。

この方法の問題点: 多くのツールは非常に単純化されており、JPEG の「画像終了マーカー」である FF D9 に遭遇するか、次のファイルの開始を示すマジック バイトに遭遇すると、JPEG の終わりに達したと想定します。これらのいわゆるスキャナーの多くは、複数のファイル タイプをスキャンし、まったくの偶然により、他のファイル タイプと一致するバイトの組み合わせに遭遇する場合があります。たとえば、49 44 33 は完全に有効な JPEG データですが、MP3 ファイルのマジック バイトでもあります。単純なアプローチでは、ファイルの終わりに達したという結論を導き出し、MP3 ファイルの回復を開始します。2 つ目の問題は、ファイルの終わりに達する前に次の JPEG に有効なバイトの組み合わせが見つかるファイルの断片化です。多くのカーバーは、回復していた JPEG を閉じて、次の JPEG から始めます。これには簡単な解決策はありませんが、このようなファイルを手動で再構築したり、自分で解決したりできるツールは存在します。

断片化されたJPEGの手動再構成

関連情報