問題タブ [dct]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JPEGのステガノグラフィー
JPEG 画像の .txt メッセージを非表示にする Java Steganography プロジェクトに取り組んでいます。大まかに言うと、次の 4 つのステップがあります。
- 各ピクセル ブロックを 8x8 DCT 係数に変換します。
- いくつかの複雑な計算で各ブロックを量子化します。
- メッセージの各ビットを各ブロックの係数の LSB に埋め込み/置換します。
- 埋め込み後、逆 DCT を実行して、メッセージが埋め込まれた JPEG 画像を再作成します。
メッセージを元に戻すために、変更した係数をメッセージで記録する方法がわからないため、3 番目のステップで行き詰まっています。
抽出するために、各係数を埋め込み、各埋め込みを記録する方法を誰かが推奨できますか?
これは大歓迎です。
(また、1と0、およびDC値をそのままにしておく必要があることも知っています)。
java - DCT を使用したステガノグラフィ
大まかに言えば、DCT を使用してメッセージを埋め込むには、次の 4 つの手順が必要です。
- 画像を 8x8 ブロックに分割します
- DCT 数学演算を使用して各ブロックを変換します
- 各 DCT ブロックを量子化 (非可逆圧縮)
- 量子化された係数からメッセージ ビットを埋め込む (0、1、-1、および AC を避ける)
それは問題ありませんが、データを元に戻す方法がわかりません。各係数の LSB を抽出するために、ステップ 1 ~ 3 を実行して各ブロックを量子化することを想定していますか?
その場合、損失の多い手法であるため、(埋め込まれたデータの可能性がある) データを失うことはありませんか?
また、各ブロックを量子化しようとすると、前の画像と同じ係数が残ります (LSB の変更が影響しなかったため)??
誰かがこの問題について教えてくれますか?
ありがとう
java - Java での JPEG 画像の操作
クラスを使用しBufferedImage
て画像をピクセルとして読み込み、ビットシフトを使用して適切なコンポーネントを個別の int 配列に取得します。これは正常に動作します。
この参照サイトを使用して、ピクセル配列で DCT 機能を手動で実行しました。
使用した方法: forwardDCT()
、quantitizeMatrix()
、dequantitzeMatrax()
、inverseDCT()
次に、結果の画像配列にフィードバックされて JPEG ファイルが再構築されます。次に、BufferedImage のwrite()
メソッドを使用して、ピクセル データを画像として書き戻します。
これは完全に機能し、画像を表示できます。(視覚的に圧縮するために使用する値はさらに優れています)。
私の質問は、量子化係数を圧縮された値として JPEG として書き込む方法はありますか?
BufferedImage の write() メソッドは、係数データではなく、ピクセル データの入力に使用されるためですか?
これが明確であることを願っています。
ありがとう
performance - 行列 [NxM] の高速 DCT および IDCT のための単純なアルゴリズムを探しています。
任意のサイズ [NxM] の行列の高速DCT (タイプ 2) を実行する単純なアルゴリズムと、逆変換IDCT (DCT タイプ 3 とも呼ばれる) のアルゴリズムを探しています。
DCT-2D アルゴリズムが必要ですが、DCT-1D を使用して DCT-2D (および IDCT-1D を実装して IDCT-2D ) を実装できるため、DCT-1D アルゴリズムでも十分です。
PHP コードが望ましいですが、十分に明確なアルゴリズムであれば何でもかまいません。
DCT/IDCT を実装するための現在の PHP スクリプトは、行列のサイズが [200x200] を超えると非常に遅くなります。
[4000x4000] までの DCT を 20 秒以内に実行する方法を探していました。誰もそれを行う方法を知っていますか?
matlab - DCT係数に基づくステガノグラフィ
LSB を使用してステガノグラフィーを作成しようとしていますが、多くの黒いピクセルを含む画像が得られました。ゼロ未満の DCT 値を持つカバー画像ピクセルの LSB を置き換えています。画像に黒いピクセルが含まれている理由がわかりません。