JPEG プログラミング
Live Video Streaming にあたって
画像をJPEG圧縮して送るようにしたいということで
JPEGプログラミング。
ただのJPEGであれば既存のライブラリを使えばいいのだが
DCTの結果を他の目的で流用したり
フレーム中の任意のブロックのみエンコードしたり
といったことがしたいので
ライブラリそのままとは行かない。
いい本があったので参考に組んでみる。
JPEG 概念からC++での実装まで 第2版
丁寧な解説と分かりやすいソース。
おかげでエンコード・デコードの流れを理解できた。
しかし、プログラムの方は、ちゃんと動作はするものの
処理時間がかかりすぎて使い物にならなかった。
プロファイルを取ってみればDCT・IDCTが相当重いようだった。
そこで他をあたることにした。
JPEGのエンコード・デコードライブラリとしては
IJG(Independent JPEG Group) のライブラリが有名らしい。
Independent JPEG Group
DCT・IDCTの部分を見れば、なにやら期待できそうな感じだ。
しかしながら、マクロや独自の型が多用されていて
部分的に使うのは難しく感じた。
渋っていたところ、いい物を見つけた。
ファイヤー和田研 内の システムアーキテクチャ論 2004/06/05 実習2
IJGのライブラリからエンコード部分のみ器用に抜き出したソース。
早速試すと、エンコードの処理時間が 1/10 ぐらいに(劇的だな…)。
残るはデコード部分だが、これに関しては
MPEG-2 VIDEO VFAPI Plug-In
のIDCTの部分のソースコードが非常に参考になった。
波長が合うということなのか、読みやすく感じたし
モジュール化がされていて部分的に抜き出し易くなっていた。
ついでに色空間の変換にテーブルを使うことにした。
Software Library の YCbCr→RGB変換Cソース(ver0.01)(02.7.12 bug fixed)
その他参考になりそうなページとしては
Software Laboratory Alpha
があった。
・SIMD Enhanced JPEG Plug-in Ver.0.17
・アセンブリ言語版 DCT ルーチン for IJG JPEG Software
を公開している。
今頃JPEGかよ…という感もあるけど、バリバリ現役の画像形式だし。
大体、JPEG 2000 は?
大分経つけど普及してないよなぁ。
ストレージ容量や回線速度の増えっぷりからして出番ないんじゃない?
名前変えたら? JPEG XP にでもしたら?
画像をJPEG圧縮して送るようにしたいということで
JPEGプログラミング。
ただのJPEGであれば既存のライブラリを使えばいいのだが
DCTの結果を他の目的で流用したり
フレーム中の任意のブロックのみエンコードしたり
といったことがしたいので
ライブラリそのままとは行かない。
いい本があったので参考に組んでみる。
JPEG 概念からC++での実装まで 第2版
丁寧な解説と分かりやすいソース。
おかげでエンコード・デコードの流れを理解できた。
しかし、プログラムの方は、ちゃんと動作はするものの
処理時間がかかりすぎて使い物にならなかった。
プロファイルを取ってみればDCT・IDCTが相当重いようだった。
そこで他をあたることにした。
JPEGのエンコード・デコードライブラリとしては
IJG(Independent JPEG Group) のライブラリが有名らしい。
Independent JPEG Group
DCT・IDCTの部分を見れば、なにやら期待できそうな感じだ。
しかしながら、マクロや独自の型が多用されていて
部分的に使うのは難しく感じた。
渋っていたところ、いい物を見つけた。
ファイヤー和田研 内の システムアーキテクチャ論 2004/06/05 実習2
IJGのライブラリからエンコード部分のみ器用に抜き出したソース。
早速試すと、エンコードの処理時間が 1/10 ぐらいに(劇的だな…)。
残るはデコード部分だが、これに関しては
MPEG-2 VIDEO VFAPI Plug-In
のIDCTの部分のソースコードが非常に参考になった。
波長が合うということなのか、読みやすく感じたし
モジュール化がされていて部分的に抜き出し易くなっていた。
ついでに色空間の変換にテーブルを使うことにした。
Software Library の YCbCr→RGB変換Cソース(ver0.01)(02.7.12 bug fixed)
その他参考になりそうなページとしては
Software Laboratory Alpha
があった。
・SIMD Enhanced JPEG Plug-in Ver.0.17
・アセンブリ言語版 DCT ルーチン for IJG JPEG Software
を公開している。
今頃JPEGかよ…という感もあるけど、バリバリ現役の画像形式だし。
大体、JPEG 2000 は?
大分経つけど普及してないよなぁ。
ストレージ容量や回線速度の増えっぷりからして出番ないんじゃない?
名前変えたら? JPEG XP にでもしたら?
Research | - | trackbacks (0)