OrigamiSat-2 jpg creating on LINUX #12026年05月10日 13:07

ChatGPTに、下段2番目画像のHEXデータからJPEG画像化できない原因を聞いてみた。↑↓ このHEXデータは、かなり「JPEGらしい構造」を持っています。 実際、  開始マーカー FFD8  JFIFヘッダ FFE0...4A464946  DQT FFDB  SOF0 FFC0  Huffman Table FFC4  スキャン開始 FFDA  終端マーカー FFD9 まで揃っています。 つまり「完全に壊れたデータ」ではありません。ただし、問題箇所があります。 問題点1:Huffman Table が異常 この部分: FFC4001F00000105010101010117BB01... JPEGの FFC4 (Huffman Table) では、長さ定義部分が正常な値で並ぶ必要があります。 しかし: ...01010117BB01... の 17BB が非常に不自然です。 通常ここは: 0101010101010101 のような小さい値列になります。 BB が突然現れるのは、  1バイト欠損  ビットずれ  HEX混入  コピー崩れ の典型です。 問題点2:量子化Table も怪しい この部分: FFDB00430006040506050406060506070706080A100A... は一見正常ですが、後半の並びが JPEG標準Table と微妙に違います。 つまり:  一部だけ書き換わった  通信途中で化けた  ログ保存時に欠損した可能性があります。 問題点3:途中に不自然な値 この部分: ...E6E70E05E8E9EA... JPEG Huffman定義で、E70E05 のような並びはかなり異常です。 通常は: E7E8E9EA のように連続します。 つまり、0E05 が途中混入した可能性が高いです。 結論:このJPEGは、  ヘッダは存在  JPEG構造もほぼ存在、  しかし Huffman Table が壊れているため、一般的なJPEGデコーダでは  「不正JPEG」  「破損ファイル」  「SOS marker error」  「Huffman table error」 になります。 かなり高い確率で起きていること: あなたのデータは、  シリアルログ  通信ログ  UARTダンプ  メモリダンプ  途中コピー などから抜き出されていて、数バイト欠損または混入しています。 特に:  17BB  0E05  69DD あたりが危険です。修復できる可能性はあります。 このJPEGは:  骨格はかなり正常  サイズ情報もある  SOF/SOSもあるので、 標準Huffman Table へ置換 破損バイト除去 で復旧できる可能性があります。特にこのJPEGは Baseline DCT JPEG なので、 標準Huffman Table を使う修復が有効です。

OrigamiSat-2 jpg creating on LINUX #22026年05月10日 20:37

> 結論としては、このJPEGは画像本体(SOS以降)は生きている可能性大、
> DHTだけが破損している可能性大なので、最も確実に画像化するのは
>「DHT全部を、標準Huffman Table へ完全置換」することです。

以上、ChatGPT の示唆のとおりHEXデータを修正して、本来の画像の
左上ほんの一部だけJPEG画像化することができた。(試行錯誤継続中)