2

これは、16 進エディタで JPG ファイルを見たときに、JPG ファイルに見られるいくつかのパターンについての好奇心からの質問です。JPEG ファイル形式に関する質問だと思います。なぜこの部分は他の部分と同じように「ランダム ノイズ」ではないのですか (ハフマン コーディングなど)。

ここに行きます:

この 136 ビット (17 バイト) のパターンは、Adobe Photoshop によって生成されたいくつかの JPG ファイルに表示されます (これらを生成するアプリケーションがPhotoshopだけかどうかはわかりません)。

F7 5E EB DE FD D7 BA F7 BF 75 EE BD EF DD 7B AF 7B

1 つのファイルに複数の場所があり、1 回の反復だけの場合もあれば、8 回または 12 回のように繰り返されて、1088 ビットまたは 1632 ビットのブロックのブロックを構成する場合もあります。正確には、実際には 68 ビットのパターンであり、2 回以上繰り返されます。

F7 5E EB DE FD D7 BA F7 B

11110111010111101110101111011110111111011101011110111010111101111011

AFAIKは、JPGファイル構造について少し読んで、これを16進数で確認して、JPGファイル構造の先頭がFF xxでマークされていることを確認しました。これらの 68 ビット パターンの直前にも直後にも、そのような FF xx 構造体マーカーはありません。

Breakpoint Hex Workshop を使用すると、[データ ビジュアライザー] ウィンドウでこれらのパターンを簡単に見つけることができます。ハフマン ビットストリームの残りの部分は「ノイズ」のように見えますが、突然、明確なパターンを示すブロックが現れます。

また..これがどれほど関連性があるかはわかりませんが..:

以前、CR2 ファイル、つまり Canon RAW ファイルにもこのようなタイプのパターンがあることに気付きました。ただし、ここではパターンははるかに単純な 40 ビットのものでした。

73 9C E7 39 CE

0111 0011 1001 1100 1110 0111 0011 1001 1100 1110

スペースを調整すると、次のようになります。

01110 01110 01110 01110 01110 01110 01110 01110

ご覧のとおり、これは実際には5 ビットの繰り返しパターンであり、CR2 ファイルに出現する場所ごとに数百回繰り返されています。CR2 ファイル形式も圧縮ファイルですが、ロスレスです。もう一度言いますが、私が正しく理解していれば、JPG のハフマン コーディングも一種のロスレス「圧縮」です。

圧縮されたストリームに、「無駄な」ビットのこれらのパターンがあることは非常に奇妙です..

ここに JPG ファイルの 1 つをアップロードしましたhttp://i.imgur.com/t0mi7vo.jpg - これは、フォルダー内のいくつかのファイルの単純なスクリーンショットです。ハフマン コード ビットストリームは、オフセット 0x0000027C から最後まで続きます。たとえば、オフセット 0x0001604A に、繰り返しパターンのインスタンスの 1 つが表示される場合があります。

4

2 に答える 2

0

私が間違っている場合は訂正してください。ただし、これはフォトショップが使用されているかどうかを確認するための「設計図」である可能性があると考えています。たぶん、これはすべて著作権侵害に関連しています

于 2014-11-02T04:22:33.157 に答える
0

User3344003 様、ご回答ありがとうございます。99.9 % 正解です..! :-)

これらのパターン、あなたが書いたように、色の広い領域に関連しています!

ただし、実際には、この特定のパターンを作成するのは黒 (0,0,0)です。

F75EEBDEFDD7BAF7BF75EEBDEFDD7BAF7B

..または、2 x 68 ビット部分に分割された場合。

F75EEBDEFDD7BAF7B
F75EEBDEFDD7BAF7B

実際の動作を確認するには:

1) Photoshopで純粋な黒 (0,0,0)で塗りつぶされた 32 ピクセル x 32 ピクセルの画像を作成します。

2) [ファイル] -> [Web とデバイス用に保存] を選択します。

3) JPEGを選択し、最大 (品質 = 100 )、ぼかし = 0、すべてのプログレッシブ / 最適化 / 埋め込みカラー プロファイル / sRGB オプションに変換 = オフ、メタデータ = なし。

16 進エディタで画像を見ると、次のハフマン コーディング ビットストリームが表示されます。

FFDA
000C03010002110311003F00F9FF00FB
F75EEBDEFDD7BAF7B
F75EEBDEFDD7BAF7B
F75EEBDEFDD7BAF7B
F75EEBDEFDD7BAF7B
F75EEBDEFDD7BAF7B
F75EEBDEFDD7BAF7B
F75EEBDEFDD7BAF7B
F75EEBDEFDD7BAF
FFD9

ご覧のとおり、68 ビット パターンのほぼ8 つのインスタンスが含まれています。

同様に、代わりに純粋な白 (255,255,255)で塗りつぶされた 32 ピクセル x 32 ピクセルの画像を作成すると(上記と同じ方法で JPEG として保存すると)、次のハフマン コーディング ビットストリームが得られます。

FFDA
000C03010002110311003F00DFE3DFBA
F75EF7EEBDD7BDFBA
F75EF7EEBDD7BDFBA
F75EF7EEBDD7BDFBA
F75EF7EEBDD7BDFBA
F75EF7EEBDD7BDFBA
F75EF7EEBDD7BDFBA
F75EF7EEBDD7BDFBA
F75EF7EEBDD7  F
FFD9

また、中央で分割された 64 ピクセル x 64 ピクセルの画像を作成しようとしました。左側の32 ピクセル x 64 ピクセルは純粋な黒 (0,0,0)、右側の32 ピクセル x 64 ピクセルは純粋な白 (255,255,255) です。次に、Quality = 100 などで JPEG として保存します。次に、このHuffman Coding ビットストリームを取得しました。

FFDA
000C03010002110311003F00F9FF00FB
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BAFBFC7B
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BAF803FB
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BAFBFC7B
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BAF803FB
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BAFBFC7B
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BAF803FB
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BAFBFC7B
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BAF803FB
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BAFBFC7B
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BAF803FB
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BAFBFC7B
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BAF803FB
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BAFBFC7B
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BAF803FB
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BAFBFC7B
F75EEBDEFDD7BAF   7B
F75EEBDEFDD7BA
FFD9

これを知ったとき、最初に思ったのは、「しかし、ハフマン符号化は、これよりも効率的であるはずではない..!? 32 ピクセル x 32 ピクセルの純粋な色のパターンで 8 つの同一パターンと、16 + 8 + 8 64 ピクセル x 64 ピクセルの半分黒/半分白の同じもの..? 1 つだけを使用してから、ポインターを使用しないでください。たとえば、この特定のパターンを使用してください。

すると、これらの JPEG は、すべて Quality = 100 で作成されているという点で、実際にはかなり珍しいものであるという事実を思い出しました。

したがって、Quality = 100 は、これらの F75E.. パターンを表示するために必要なもう 1 つの要因のようです。

これを確認するために、もう一度 32 ピクセル x 32 ピクセルの純粋な黒 (0,0,0) を作成しましたが、代わりにQuality = 0で保存しました。これで、このイメージははるかに短いハフマン符号化ビットストリームになりました。これも実際に特定の種類のパターンを示していましたが、非常に異なるものでした:

FFDA
000C03010002110311003F00F99
55540555501
55540555503F
FFD9
于 2014-11-02T20:42:23.197 に答える