Motion-JPEG2000を使ったノードに最適な動画像配信 STREAM B3 ymo 親 qoo
やりたいと思っていること Motion-JPEG2000を使った画像配信 配信のモデル図(次ページ) ノードの解像度に応じた配信 Waveletによる多重解像度解析 画質変換 興味領域(ROI) Lossy/Lossless変換の選択 ファイルフォーマットはQuickTimeを継承
大まかなモデル(解像度のみ) 入力画像 インターネット Motion-JPEG2000 Encoder Motion-JPEG2000 Decoder 入力画像 Motion-JPEG2000 Decoder Motion-JPEG2000 Encoder Motion-JPEG2000 Decoder インターネット
JPEG2000画像について その1 デコードにかかる時間を計測 計測環境 計測結果 他のデコーダ(シェアウェア) 使用したPC: IBM ThinkPad A22m CPU: PentiumⅢ 1GHz メモリ: 384MB 計測に用いたJPEG2000画像 ファイルサイズ: 970KB 解像度: 1024 × 768 ライブラリ Jasper 1.700.2 計測結果 デコードに要した時間 最短: 約4秒 最長: 約11秒 だいたい約7秒が多い 使用するメモリ 約30MB 時間を一番費やしている箇所 Wavelet変換を行っている箇所 約半分 使用メモリも最大と思われる 他のデコーダ(シェアウェア) デコードにほとんど時間を費やしていない
JPEG2000画像について その2 主観的な評価 JPEGファイルとJPEG2000ファイルを比較 計測環境 原画像: 2.25MB 解像度: 1024 × 768 JPEG圧縮: 48.1 KB 圧縮率: 97.90% JPEG2000圧縮: 48.7 KB 圧縮率: 97.90% エンコーダ JPEG: Photoshop7.0のエンコーダ JPEG2000: libj2k(あまりいけていないライブラリ) Viewerをキャプチャして、拡大 主観的評価ではJPEG2000の方が上 ブロックノイズも発生していない 文字も読み取ることが出来る
JPEG画像
JPEG2000画像
Motion-JPEG2000ファイルフォーマット
Motion-JPEG2000ファイルフォーマット 実線の部分は必須 moov 時間管理 メタデータ track情報(画像や音) ムービーのヘッダ ユーザー情報 moof ムービーのフラグメント mdat 実データ 音声 JPEG2000コードストリーム
今回特に着目する点 ノードの解像度に応じた配信 ノード 解像度 デスクトップPC ノートPC ハイビジョンテレビ など Waveletによる多重解像度解析 JPEG2000でデフォルトでサポート 解像度ごとに符号化を行う 今ところ、この技術をサポートしているのはJPEG2000のみ
解像度分割 LL LL LL W:1600 H:1200 W:800 H:600 W:400 H:300
単純な静止画の配信モデル 入力画像 1600×1200 800×600 400×300 JPEG2000ファイル JPEG2000 Decoder 入力画像 JPEG2000 Decoder 1600×1200 800×600 400×300 JPEG2000 Decoder JPEG2000ファイル
想定される Motion-JPEG2000な世界 入力画像 Motion-JPEG2000 codestream インターネット 1600×1200 800×600 400×300 Packet JPEG2000 encode Motion-JPEG2000 codestream Generator インターネット
望めること ノードの解像度に応じた配信 解像度調整による符号量の削減と圧縮 フィルタの特性上、最適とまではいかなくても、ノードの求める解像度に近いものを配信できる 原理的本来的な解像度変換 解像度を階層的に扱う 配信する際に、解像度変換を行う必要がない 解像度調整による符号量の削減と圧縮 使用帯域の節約 DVと同程度の画質を圧倒的に小さいサイズで実現できる
Motion-JPEG2000フォーマット の欠点 演算や符号化に時間がかかる まだ、フォーマットが一般的でない 普及していない エンコーダ/デコーダが少ない
今期やったこと JPEG2000Viewerを組み立てた 信号処理関係のお勉強 フリーのライブラリを使用 自分で作るには時間がかかりすぎたため、フリーでソースが公開されているものを流用 信号処理関係のお勉強 演算に関して、JPEGと勝手が違ったりする DCT: 整数DWT: 画像処理の世界の常識を知らなかった・・・ Z変換、インパルス、畳み込みなど Z変換はアナログ信号におけるLaplace変換のようなもの、と言われても、さっぱりわからなかった・・・
今後やるべきこと JPEG2000ライブラリを調整 Motion-JPEG2000のエンコーダとデコーダを実装 処理にかかる時間 現在は仕様書に従って、ヘッダをすこし書いた状態 QuickTimeフォーマットの勉強
今後の課題 配信システム 引き続きのsurveyとお勉強 全体的な見直し 伝送部分の設計 解像度変換 これでいいのか? 伝送部分の設計 解像度変換 解像度だけでいいのか? というか、研究になるのか? ただ作ってみましたに終わらないか? 引き続きのsurveyとお勉強 画像についてもネットワークについても知識がまだ足りない
実装環境 OS:WindowsXP 開発環境:Visual Studio.NET 使用言語:Visual C++ .NET