ppt

EMONシステム:
コマンドパイプラインによる
マルチメディアストリーム処理
笠松健一
藤川賢治
岡部寿男
古村隆明
京都大学工学部
京都大学情報学研究科
京都大学情報学研究科
京都高度技術研究所
平成14年3月14日
研究の背景と目的


インターネットでマルチメディア伝送を個人でもできる
 電話やビデオ放送のソフトウェアが急速に普及
デジタル家電やAV機器を対象とするネットワーク技術の
研究


独自方式→IPへ統合の方向
 例えばIPスピーカ、IPマイクの登場
このようなネットワーク環境の変化に既存のソフトウェア
では各ソフトウェア毎に逐一対応する必要
再利用性の高い部品を組み合わせることにより
処理を行うシステムを提案
関連研究 (マイクロソフト社製の
インターネットを利用するアプリケーション)

電話アプリケーションNetMeeting




音声録音機能
音声再生機能
音声ストリームのネットワーク伝送機能
放送アプリケーションMediaEncoder


音声録音機能
音声ストリームのネットワーク伝送機能
関連研究 (マイクロソフト社製の
インターネットを利用するアプリケーション)

NetMeetingで伝送する音声を
MediaEncoderで放送することはできない


機能は十分に有る
実現にはプログラミング言語の知識が必要
HostA
NetMeeting
電話機能
HostB
NetMeeting
電話機能
MediaEncoder
放送機能
提案するシステム

コマンドパイプラインにより処理
UNIXにはパイプでプログラムを連携し、
様々な処理を行う考え方が存在
→マルチメディアストリーム処理に適用
 機能毎にプログラムを実装し、パイプで連携
 パイプラインの例
$ audiocapt | udpsend 10.0.0.1

マイクで音声を取り込む
データを10.0.0.1へ送信
→マイクで取り込んだ音声を10.0.0.1へ送信
提案するシステムの設計と実装
実装したプログラムと接続関係
audiocapt
音声を録音
jpegcapt
映像の取込み
fecenc
前方誤り訂正
の符号を付加
audioplay
音声を再生
udpsend
UDP/IPで送信
ntspcall
電話の発信
パイプによる接続
ソケットによる接続
jpegplay
映像を表示
rtpenc
RTPヘッダを
付加
fecdec
前方誤り訂正
を行う
IPネットワーク
ntspwait
電話の着信
rtpdec
RTPヘッダを
削除
udprecv
UDP/IPで受信
実現したアプリケーションの例
ビデオオンデマンド
jpegcapt
映像の取込み



fecenc
前方誤り訂正
の符号を付加
rtpenc
RTPヘッダを付加
udpsend
UDP/IPで送信
HostA$ jpegcapt | fecenc | rtpenc >video.jpgs
HostA$ udpsend 10.0.0.2< video.jpgs
HostB$ udprecv | rtpdec | fecdec | jpegplay
jpegplay
映像を表示
fecdec
前方誤り訂正
を行う
rtpdec
RTPヘッダを
削除
HostA
video.jpgs
IP ネットワーク
HostB:10.0.0.2
udprecv
UDP/IPで受信
実現したアプリケーションの例
実時間放送
jpegcapt
映像の取込み


fecenc
前方誤り訂正
の符号を付加
rtpenc
RTPヘッダを付加
HostA
udpsend
UDP/IPで送信
HostA$ jpegcapt | fecenc | rtpenc
| udpsend 10.0.0.2
IP ネットワーク
HostB$ udprecv | rtpdec | fecdec | jpegplay
jpegplay
映像を表示
fecdec
前方誤り訂正
を行う
rtpdec
RTPヘッダを
削除
HostB:10.0.0.2
udprecv
UDP/IPで受信
リードソロモン符号による
前方誤り訂正
Header
元データのパケット
(メディアパケット)
k
n
Reed Solomon 符号
FECで付加される
パケット
(FECパケット)

n 個中の任意の n-k 個以下のパケットロス時に
データの訂正が可能
n-k
実現したアプリケーションの例
前方誤り訂正を行うリレー
送信ホスト



リレーホスト
受信ホスト
リレーホスト
受信ホスト
リレーホスト
受信ホスト
fecencがFECパケットの生成
fecdecがメディアパケットの回復
送信ホストから受信ホストまで伝送する途中で
前方誤り訂正を行うリレー
relay$ udprecv | rtpdec | fecdec | fecenc | rtpenc | udpsend
実現したアプリケーションの例
電話
audioplay
音声を再生
rtpdec
RTPヘッダを削除
audiocapt
音声を録音
rtpenc
RTPヘッダを付加
HostA
ntspcall
電話の発信
IPネットワーク
audioplay
音声を再生
rtpdec
RTPヘッダを削除
audiocapt
音声を録音
rtpenc
RTPヘッダを付加
ntspwait
電話の着信
HostB:10.0.0.2
HostA$ ntspcall 10.0.0.2 “rtpdec | audioplay” “audiocapt | rtpenc”
HostB$ ntspwait 10.0.0.2 “rtpdec | audioplay” “audiocapt | rtpenc”
既存のプログラムと連携
SSH

ホストBでマイクから取り込んだ音声ストリームを
ホストAへ暗号化して伝送し、ホストAで再生する
HostA$ ssh 10.0.0.2 audiocapt | audioplay
既存のプログラムと連携
tee
teeを用いると、プログラムの出力をプログラムや
ファイルへ複数同時に出力することができる
 HostAでカメラから映像を取込み、ファイルに保存しながら放送
HostA$ jpegcapt | tee save.jpgs | rtpenc | udpsend 225.0.0.1

同期再生


映像とそれに同期する音声について考える
映像を取り込むホストと音声を取り込むホストが異
なる場合や、再生を行うホストが異なる場合に
同期再生を行う機能の実現


ホスト間で時計の情報と再生バッファーの状況の共有
NTPを用いてホストの時計を同期することにより
映像と音声を異なるホストで再生する機能を実装
複数ホストによる
同期再生機能の実装
音声送信ホスト
NTPサーバ
audiocapt
音声を録音
映像送信ホスト
jpegcapt
映像の取込み


音声受信ホスト
audioplay
音声を再生
IPネットワーク
映像受信ホスト
jpegplay
映像の再生
NTPで同期しているホストの時計を元にタイムスタンプを付加
再生時刻はタイムスタンプの時刻+あらかじめ定めた時間
まとめと今後の課題

まとめ




今後の課題


機能毎に実装したプログラムをパイプで連携し、さま
ざまな処理を行うシステムを提案
提案するシステムの設計と実装
IPネットワークを利用した様々な処理を実現
音声ミキサーなどの機能を追加
実装したシステムの情報

http://www.ibcast.net/
実現したアプリケーションの例
IPマイクによる電話
audioplay
音声を再生
rtpdec
RTPヘッダを削除
HostA:10.0.0.1
udprecv
RTPヘッダを付加
ntspcall
電話の発信
IPネットワーク
audiocapt
音声を録音
rtpenc
RTPヘッダを付加
udpsend
UDP/IPで送信
HostM
HostA$ ntspcall 10.0.0.2 “rtpdec | audioplay” “udprecv 10.0.0.1”
HostM$ audiocapt | rtpenc | udpsend 10.0.0.1