Rokiのチラ裏

学生による学習のログ

JPEG デコーダ書いた

以前 JPEG エンコーダをフルスクラッチで書いたが、今度は JPEG デコーダを書いて見た。該当するコミットはこちら。

github.com

プロジェクト全体はこちら。

github.com

量子化テーブルの要素数を間違えて指定していて、少しハマった瞬間もあったが今回は割とサクサクと一日ほどで作り終えた。次は画像処理としては、巷で流行っている HEIF 関係の処理系を書ければと思っている。

#追記・諸々のアップデート

元々は C++1z 標準の[[fallthrough]]attribute を使っていたがコンパイラの対応状況になるべく依存しないようその辺りを吸収してくれるライブラリを作ったのでそれを使うように変更。 github.com

エンコード、デコード処理で用いるコサインテーブルは、元々実行時に生成されていたが、コンパイル時にコサインテーブルを生成するライブラリを作ったので、それを使うように変更。 github.com