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
N 1
C  x(n) cos
H
k
0
n 0
( z) 
(2n  1)k
2N
( 1 2 z 1  6 z 2  2 z 3  z 4 )
8
画像処理の世界の常識を知らなかった・・・

Z変換、インパルス、畳み込みなど
 Z変換はアナログ信号におけるLaplace変換のようなもの、と言われても、さっぱり
わからなかった・・・
今後やるべきこと

JPEG2000ライブラリを調整


処理にかかる時間
Motion-JPEG2000のエンコーダとデコーダを実
装


現在は仕様書に従って、ヘッダをすこし書いた状態
QuickTimeフォーマットの勉強
今後の課題

配信システム



全体的な見直し
 これでいいのか?
伝送部分の設計
解像度変換
 解像度だけでいいのか?



というか、研究になるのか?
ただ作ってみましたに終わらないか?
引き続きのsurveyとお勉強

画像についてもネットワークについても知識がまだ足りない
実装環境
OS:WindowsXP
開発環境:Visual Studio.NET
使用言語:Visual C++ .NET