2010-01-01から1ヶ月間の記事一覧

雑記

とうとうiPadが発表されました。ちまたでは、売れないと言っている人たちも結構いるようですが、私はかなり売れると思いました。 一家の主婦がリビングに一台置いておくのに最適のネットビューワーだと思います。(android or ChromeOS) + Tegra のタブレット…

JPEG アルゴリズム全体像

ここまでで、今更ですがJPEGの全体像を掴むことができました。 JPEGというアルゴリズムがどのような思想でデータ圧縮しているか理解できたので、メモ代わりにまとめておきます。 エンコード側で考えます。デコードは逆に操作するだけです。 JPEGは上図の4つ…

JPEGのハフマン符号 (5) デコードフローチャート

次に、JPEG規格ドキュメントの Annex F.2 にデコードフローチャートが載っていますので、そこを見ていきます。 AC成分のデコードの全体フローは以下のようなものです。 この中の DECODE というプロシージャが実際にハフマン符号から値を取り出すものです。 …

JPEGのハフマン符号 (4) デコード用 ハフマン符号テーブルの生成

ここでは、ハフマンテーブルセグメントの情報から実際のデコードに使うためのテーブルを生成する方法を記します。 JPEG規格ドキュメントの Annex C に相当します。例として以下のハフマンテーブルセグメントを持つ場合を考えます。 jpegsnoopの出力ファイル…

JPEGのハフマン符号 (3) ハフマンテーブルの記述

JPEGの規格の中には、ハフマンテーブルの持ち方とそのデコードをどのように行うかのフローチャートが載っています。 ここではそれについて記します。まず、ハフマンテーブルの持ち方は以下の図のようになります。 DHTというのは、ここからハフマンテーブルが…

JPEGのハフマン符号 (2) AC成分

次にAC成分です。同様にエンコード時を考えます。AC成分もDC成分と同様に、数値を表現するのに必要なビット数毎にハフマンコードを割り当てて、その直後に数値を記録するという考え方を用います。しかし、さらにランレングス圧縮という手法を組み合わせます…

JPEGのハフマン符号 (1) DC成分

JPEGのハフマン符号を理解するため、エンコード時の符号化を考えます。JPEGのハフマン符号は、画素の値をそのまま符号化はしません。 ・画素の値を表現するために必要なビット数をハフマン符号化してデータ圧縮を行います。 ・DCT出力値のAC部分とDC部分で異…

ハフマン符号のアルゴリズム

非常に簡単にハフマン符号について説明します。アルゴリズムの教科書は沢山読みましたが、私が最も良いと思ったものは以下のものです。「アルゴリズムイントロダクション」T.コルメン C.ライザーソン R.リベスト 近代科学社定評のある本なので良く読み返し…

JPEG ファイルフォーマット

JPEGファイルの内部構造を調査しました。JPEGにおいて 0xFFXX (XXはいろいろな数値)という、最初の1バイトがFFで始まるマーカーというものが多数定義されています。 例えばJPEGデータは SOIマーカーで始まり、EOIマーカーで終わりますが、それぞれ以下の値…