2016-04-02 16 views
0

私はMatlabでJPEG圧縮アルゴリズムを実装しようとしています。 私が実装に問題があるのは、ハフマンエンコーディングだけです。量子化とジグザグにDCTを理解しています。その8×8行列です。私はまた、ハフマン符号化がどのように一般的に動作するのか理解しています。 私が理解できないことは、出力ビットストリームと連続ビットを元の形式に変換する辞書があると、出力とは何ですか?どのように私はそれのために作成した辞書を使用して出力ビットストリームを変換するようにコンピュータに指示できますか? さらに、各8x8マトリックスには独自の出力と辞書があります。どのようにこれらのアウトプットを一つにまとめることができますか?一日の終わりに、その結​​果がイメージであると考えられるからです。 私はいくつかのステップを誤解している可能性があります。 どんな助けも非常にうまくいくでしょう!Matlab - JPEG圧縮。ハフマンエンコーディング

編集:申し訳ありませんが、私の質問は明らかに十分に明確ではありません。ハフマン関数で構築されたMatlabs(huffmanencoとhuffmandict)を使用するとしたら、huffmanencoが返す値はどうすればよいでしょうか? huffmanエンコーディングが他のIDEやプログラミング言語にも適用されている限り、ビットの出力文字列をどうするかはわかりません。

答えて

0

ハフマンコーディングでは2つの選択肢があります。

  1. 事前缶詰めのハフマンテーブルを使用します。
  2. 最初のパスがハフマンテーブルを生成し、2パス目がエンコードするデータを2回通過させます。

MCUごとに異なる辞書を使用することはできません。

ランレングス符号化された値があるとします。あなたはそれらをハフマン符号化し、出力ストリームに書き込みます。

EDIT:

あなたは、MATLABのハフマンendocoderはJPEG-互換性があることを確認する必要があります。ハフマン符号化にはさまざまな方法があります。

ビットをエンコーダからJPEGストリームに書き込む必要があります。つまり、ビットレベルのI/Oルーチンが必要です。さらに、圧縮されたデータのFF値をJPEGストリームのFF00値に変換する必要があります。

私は、エンコードがどのように行われるかを示すために

http://www.amazon.com/Compressed-Image-File-Formats-JPEG/dp/0201604434/ref=pd_sim_14_1?ie=UTF8&dpID=41XJBED6RCL&dpSrc=sims&preST=_AC_UL160_SR127%2C160_&refRID=1DYN5VCQQP0N88E64P5Q

のコピーを取得示唆しています。

+0

まずはお返事ありがとうございます。エンコーディングに関する私の質問は、すでにそれを理解している人にとっては本当に基本的なように思えるかもしれません。私は何を意味するのかを明確にするために編集しました。 –

関連する問題