ほっしーの技術ネタ備忘録

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

libjpeg 使ってみた


現行の問題として
・ノイズ成分の多い画像
・時間方向への相関がほとんどないシーン
ビットレートが異様に大きくなる ( 最大 44Mbps を記録 ) ということがありました。


どっちにしても、画質の劣化が目立たないので、DCT 利用の有名どころ JPEG を使ってみました。
これだと苦手な画像は劣化するだけですむので。( 私らのだとサイズが大きくなる )


すると瞬間最大ビットレートが 20.5Mbps まで落ちました。
あとは適当にデータを削って量子化テーブルを弄ってやるといい感じになるかな?
多少、要調整な感じはするものの、大筋としては悪くない選択かな。


libjpeg って何気にかなり高機能みたい。
量子化テーブルはもちろん、入出力色空間を指定すると内部で変換してくれたり、
ダウンサンプリングのサンプリング幅を指定できたり、スムージング機能があったり...
扱いも、create → read/write → destroy というおなじみのパターン。
readme が英語で読むのに数時間かかったけどねー・・・


開発中のイントラ処理だと、苦手な画像が来るとサイズが異様に大きくなり、
処理時間もとんでもなくかかるので、libjpeg 導入でぐっと軽くなりました。


とりあえず PentiumM 1.4GHz で普通に再生できるレベルにまでは達した……
さらに高速化して少なくとも PentiumIII 1GHz で再生できるレベルまでは持っていきたい。