Motion-JPEG2000 ストリーミング(前編)
Download
Report
Transcript 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
計測に用いたJPEG2000画像
Jasper 1.700.2
計測結果
デコードに要した時間
最短: 約4秒 最長: 約11秒 だいたい約7秒が多い
使用するメモリ
約30MB
時間を一番費やしている箇所
ファイルサイズ: 970KB
解像度: 1024 × 768
ライブラリ
CPU: PentiumⅢ 1GHz
メモリ: 384MB
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
W:1600
H:1200
LL
W:800
H:600
LL
W:400
H:300
単純な静止画の配信モデル
JPEG2000
Decoder
入力画像
JPEG2000
Decoder
1600×1200
800×600
400×300
JPEG2000ファイル
JPEG2000
Decoder
想定される
Motion-JPEG2000な世界
入力画像
1600×1200
800×600
400×300
JPEG2000 encode
Motion-JPEG2000
codestream
Generator
Packet
インターネット
望めること
ノードの解像度に応じた配信
フィルタの特性上、最適とまではいかなくても、ノード
の求める解像度に近いものを配信できる
原理的本来的な解像度変換
解像度を階層的に扱う
配信する際に、解像度変換を行う必要がない
解像度調整による符号量の削減と圧縮
使用帯域の節約
DVと同程度の画質を圧倒的に小さいサイズで実現できる
Motion-JPEG2000フォーマット
の欠点
演算や符号化に時間がかかる
まだ、フォーマットが一般的でない
普及していない
エンコーダ/デコーダが少ない
今期やったこと
JPEG2000Viewerを組み立てた
フリーのライブラリを使用
自分で作るには時間がかかりすぎたため、フリーでソースが公開されてい
るものを流用
信号処理関係のお勉強
演算に関して、JPEGと勝手が違ったりする
DCT:
整数DWT:
2
N
C
H
N 1
k
x ( n ) cos
( 2 n 1) k
2N
n0
(z)
0
( 1 2 z
1
6 z
2
2z
3
z
4
)
8
画像処理の世界の常識を知らなかった・・・
Z変換、インパルス、畳み込みなど
Z変換はアナログ信号におけるLaplace変換のようなもの、と言われても、さっぱり
わからなかった・・・
今後やるべきこと
JPEG2000ライブラリを調整
処理にかかる時間
Motion-JPEG2000のエンコーダとデコーダを実
装
現在は仕様書に従って、ヘッダをすこし書いた状態
QuickTimeフォーマットの勉強
今後の課題
配信システム
全体的な見直し
これでいいのか?
伝送部分の設計
解像度変換
解像度だけでいいのか?
というか、研究になるのか?
ただ作ってみましたに終わらないか?
引き続きのsurveyとお勉強
画像についてもネットワークについても知識がまだ足りない
実装環境
OS:WindowsXP
開発環境:Visual Studio.NET
使用言語:Visual C++ .NET