3

JPEG 圧縮の手順は次のとおりです。

生の画像データ-> 順方向 DCT -> 量子化 -> エントロピー符号化 -> JPEG 画像

そこには多くのコンバーターと API があり、変換プロセスは単一の API 呼び出しです。ステップバイステップのコードが見つかりませんでした。私の質問は、個々のステップのコードをどこで見つけることができるか、またはこれらの個々のステップを 1 つずつ実行して標準の JPEG 画像を生成できるかということです。イメージ ステガノグラフィ プロジェクトに EmguCV を使用しています。

4

1 に答える 1

4

個々のステップのコードはどこにありますか

C ライブラリが候補になる場合は、C で記述された軽量の JPEG エンコーダーであるjpecを確認する必要があります。これはグレースケール画像のみをサポートすることに注意してください。

メインのエンコード関数 ( jpec_enc_run) は読みやすく、内部関数を介して上記の各ステップを提供します。

/* open = write JPEG headers */
jpec_enc_open(e);

while (jpec_enc_next_block(e)) {
  /* compute the DCT for the current 8x8 block */
  jpec_enc_block_dct(e);

  /* quantize the DCT coefficients for the current block */
  jpec_enc_block_quant(e);

  /* re-order the quantized coefficients with the zig-zag pattern */
  jpec_enc_block_zz(e);

  /* perform entropy coding of the current block and write to the global buffer*/
  e->hskel->encode_block(e->hskel->opq, &e->block, e->buf);
}

/* close = write JPEG end of image marker */
jpec_enc_close(e);

これらの個々の手順を 1 つずつ実行して、標準の JPEG 画像を生成できますか?

これは jpec ですぐに利用できるわけではありませんが、その目的のために非常に簡単に変更できるはずです (低レベルの内部関数を公開および/または適応させることによって)。

于 2013-08-12T07:45:53.470 に答える