2

PNG画像ファイル内のテキスト情報を非表示にする必要がある画像ステガノグラフィの問題に取り組んでいます。ステガノグラフィ操作が成功すると、生成される結果の画像は元のファイルよりも大きくなります。LSB ステガノグラフィ (1 ビット、2 ビット、3 ビット) を使用しているため、格納されているデータは画像の既存のビット内にあるため、ファイル サイズは大きくなりません。元のイメージにバイトが追加されることはありません。だから、なぜこれが起こるのか理解できません。概念的には、結果のファイル サイズが増加することはありません。

例えば

オリジナルファイルサイズ:88KB テキストファイルサイズ:382KB 結果のPNGファイルサイズ:487KB

PNGは「可逆データ圧縮」を採用していると読みました。したがって、PNGが画像を圧縮形式で保存している可能性があると想定しているため、画像からその画像バイトを読み取ると、画像が拡張され、その結果、画像サイズが大きくなります。私が間違っている場合は修正してください。あらゆる種類の助けをいただければ幸いです。

4

2 に答える 2

4

概念的に、結果のファイル サイズを増やすか、少なくとも変更する必要があります。圧縮は、画像の相関関係、特にピクセル値の相関関係に依存します。ピクセル値を変更しているため、圧縮が依存しているいくつかの相関を排除しています。「保存されているデータは画像の既存のビット内にある」と言って、圧縮しているときは意味がありません。既存のビットだけでなく、変更している既存の相関関係もあります。

事実上、低ビットにノイズを追加しているため、無損失圧縮データのサイズが常に増加します。

簡単な例: 隣接するピクセル値 200、201、202、203、204、205、206、および 207 を使用して、画像内の線形グラデーションから開始するとします。PNG によって適用されるフィルターは差分を取得し、結果として (行の先頭にいると仮定して) 200, 1, 1, 1, 1, 1, 1, 1. 1 のシーケンスは非常によく圧縮されます。次に、下位ビットにノイズを追加し、207、202、205、206、204、209、210、および 210 に変更します。違いは、207、-5、3、1、2、5、4、0 です。 . そのようなシーケンスは、一連のシーケンスほどには圧縮されません。

于 2012-12-01T15:33:54.070 に答える