190 likes | 352 Views
Motion-JPEG2000 を使ったノードに最適な動画像配信. STREAM B3 ymo 親 qoo. やりたいと思っていること. Motion-JPEG2000 を使った画像配信 配信のモデル図(次ページ) ノードの解像度に応じた配信 JPEG2000 画像で可能だといわれている Motion-JPEG2000 とは フレーム内圧縮( JPEG2000 画像が連続した動画) JPEG2000 の特徴を継承 Wavelet による多重解像度解析 画質変換 興味領域( ROI ) Lossy/Lossless 変換の選択
E N D
Motion-JPEG2000を使ったノードに最適な動画像配信Motion-JPEG2000を使ったノードに最適な動画像配信 STREAM B3 ymo 親 qoo
やりたいと思っていること • Motion-JPEG2000を使った画像配信 • 配信のモデル図(次ページ) • ノードの解像度に応じた配信 • JPEG2000画像で可能だといわれている • Motion-JPEG2000とは • フレーム内圧縮(JPEG2000画像が連続した動画) • JPEG2000の特徴を継承 • Waveletによる多重解像度解析 • 画質変換 • 興味領域(ROI) • Lossy/Lossless変換の選択 • ファイルフォーマットはQuickTimeを継承
大まかなモデル(解像度のみ) 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の方が上 • ブロックノイズも発生していない • 文字も読み取ることが出来る
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
単純な静止画の配信モデル JPEG2000 Decoder 入力画像 JPEG2000 Decoder 1600×1200 800×600 400×300 JPEG2000 Decoder JPEG2000ファイル
想定されるMotion-JPEG2000な世界 入力画像 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とお勉強 • 画像についてもネットワークについても知識がまだ足りない
実装環境 OS:WindowsXP 開発環境:Visual Studio.NET 使用言語:Visual C++ .NET