タイムスタンプ付ストリームI/Oによる音の実時間処理

Slides:



Advertisements
Similar presentations
TCP/IP によるチャットプログラ ム 薄井 秀晃. 基礎知識編 TCP/IP とは? IP とは・・・ Internet Protocol の略称であり通信方法の技術的なルールで あり、実際にデータを送受信する前にデータを小さなデータ に分割し、それに発信元と受信先の IP アドレスを付加させて.
Advertisements

画像情報特論 (7) - アダプテーション (1) 同期再生 電子情報通信学科 甲藤二郎
Linuxを組み込んだマイコンによる 遠隔監視システムの開発
多入力パルス波高分析システムの開発 環境計測 小栗 康平  京都府立大学 環境情報学科 環境計測 卒論発表会.
ARTLinuxの特徴 ARTLinux: ハードリアルタイム処理機能を拡張したLinuxカーネル 固定優先度に基づくスケジューリング機能
Webプロキシサーバにおける 動的資源管理方式の提案と実装
動画像品質調整機能を組み込んだ プロキシキャッシングシステムの 実装と評価
ファイルキャッシュを考慮したディスク監視のオフロード
Chapter11-4(前半) 加藤健.
最新ファイルの提供を保証する代理FTPサーバの開発
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
クラウド上の仮想マシンの安全なリモート監視機構
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
KVMにおけるIDSオフロードのための仮想マシン監視機構
インターネットにおける オーケストラ演奏同期機構の 設計と実装
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
帯域外リモート管理を継続可能な マイグレーション手法
大きな仮想マシンの 複数ホストへのマイグレーション
トランスポート層.
Linuxカーネルについて 2014/01.
環境計測に用いられるOSの リアルタイム性の比較
ネストした仮想化を用いた VMの安全な帯域外リモート管理
コンテンツ配信 エンコード (符号化) CBR (Constant Bit Rate) VBR (Variable Bit Rate)
帯域外リモート管理の継続を 実現可能なVMマイグレーション手法
Ibaraki Univ. Dept of Electrical & Electronic Eng.
アスペクト指向プログラミングを用いたIDSオフロード
タイムスタンプ付ストリームI/Oによる音の実時間処理
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
Occam言語による マルチプリエンプティブシステムの 実装と検証
型付きアセンブリ言語を用いた安全なカーネル拡張
オペレーティングシステムJ/K (実時間処理システム)
RT-Linuxを用いた 多入力パルス波高分析システムの開発
仮想計算機を用いて OSを介さずに行う安全な ファイルアクセス制御
IaaS型クラウドにおける インスタンス構成の動的最適化手法
リモートホストの異常を検知するための GPUとの直接通信機構
シャドウデバイスを用いた 帯域外リモート管理を継続可能なVMマイグレーション
コマンドパイプラインによる マルチメディアストリーム処理
実行時情報に基づく OSカーネルのコンフィグ最小化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
Ibaraki Univ. Dept of Electrical & Electronic Eng.
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
東京工業大学 情報理工学研究科 数理・計算科学専攻 千葉研究室 栗田 亮
Intel SGXを用いた仮想マシンの 安全な監視機構
軽量な仮想マシンを用いたIoT機器の安全な監視
ウェブアプリケーションサーバの Degradation Schemeの 制御に向けて
P2P ネットワーク上で 実時間ストリーミングを実現するための 分散制御プロトコルの提案
仮想環境を用いた 侵入検知システムの安全な構成法
Cell/B.E.のSPE Isolationモードを用いた監視システム
アクセス集中時の Webサーバの性能に対する OSの影響
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
Cell/B.E. のSPE上で動作する 安全なOS監視システム
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
EMONシステム: コマンドパイプラインによる マルチメディアストリーム処理
画像情報特論 (6) アダプテーション (1) 概要、RTP/RTCP、メディア同期 電子情報通信学科 甲藤二郎
強制パススルー機構を用いた VMの安全な帯域外リモート管理
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
情報ネットワーク 岡村耕二.
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
ソケットの拡張によるJava用分散ミドルウエアの高信頼化
Virtual Machine Introspectionを可能にするVMCryptの拡張 田所秀和 光来健一 (九州工業大学)
強制パススルー機構を用いた VMの安全な帯域外リモート管理
Presentation transcript:

タイムスタンプ付ストリームI/Oによる音の実時間処理 栗田 亮 (東工大) 千葉 滋 (東工大) 光来 健一 (NTT未来ねっと研究所)

タイミングが重要な音の処理 ♪ ♪ 自動伴奏システム IN OUT 解析 伴奏データ 作成 ソリストに対しコンピュータが伴奏を合わせる ソリストのメロディーの入力に対し伴奏データを出力で返す 入出力をリアルタイムに処理する必要がある IN OUT ♪ ♪ 解析 伴奏データ 作成 音程、音量、 テンポ、etc 伴奏 メロディー

音の入出力処理 Linuxカーネルにおける音の録音 再生の場合は逆の流れ kernel application A/D サウンドデバイスにアクセスして行う A/Dコンバータ・・・アナログ・デジタル変換器 割り込み・・・カーネルバッファにデジタルデータが格納される read()・・・カーネルバッファからアプリケーションバッファへサウンドデータをコピー 再生の場合は逆の流れ kernel application アナログデータ buffer buffer A/D

音の処理のミス 原因 その1: ハードウェア~カーネル間でのデータ損失 → アナログ音の録音再生では高負荷時でもめったに起きない その1: ハードウェア~カーネル間でのデータ損失 → アナログ音の録音再生では高負荷時でもめったに起きない 割り込みの衝突は少ない その2: カーネル~アプリケーション間の転送の遅れ ハードウェア~カーネル間の転送レートについていけなくなり、バッファリングでミスが生じる OSに大きな負荷がかかると生じる

2つの処理ミス 音飛び 途切れ 録音時に発生し、一部のデータが抜け落ちる カーネルバッファが一杯になって生じる 再生時に発生し、再生が一時止まる カーネルバッファが空になって生じる 9 8 7 4 3 2 1 9 8 7 4 3 2 1 6 5 アプリケーションへ カーネル 1 2 3 4 5 6 7 8 9 ハードウェアへ 再生STOP カーネル

従来のLinux Linuxが備える実時間処理機能 問題点 優先度割り当て機能 完全な優先実行は不可能 処理ミスに対処できない 指定したプロセスを優先して実行することが可能 問題点 完全な優先実行は不可能 優先度の高い処理が、優先度の低い処理やハードウェア割り込みによって妨げられる場合がある 処理ミスに対処できない 処理ミスを検知する機能がないので対処できない

リアルタイムLinuxによる対処 既存のリアルタイムLinux 問題点 処理ミスに対処できない リアルタイムスケジューラを用いる実時間処理システム ハードリアルタイム:RT-Linux, ART-Linuxなど ソフトリアルタイム:Linux-SRT, QLinuxなど 問題点 マルチメディア処理には不向き(ハードリアルタイム) ハードリアルタイムOSの応答性はあまり必要ではない 処理ミスに対処できない ユーザーの負担が大きい システムの肥大化 プログラミングが複雑

提案するシステム TS-I/O (Time Stamp - I/O) 処理ミスに対処する機能を提供 TS-I/Oでの入力処理 I/Oデータがバッファに格納された時刻を記録する 音飛びの検知が可能 タイムスタンプとデータサイズを比較する kernel buffer application buffer size=8 サウンド データ buf 時刻 4 6 10 tsize 音飛び タイム スタンプ 0..4 6..10 tbuf

TS-I/Oでの出力処理(1) 再生中の処理ミスへの対処 間が発生した場合、それ以降のデータをとばす 時間軸に沿った再生が可能 application buffer kernel buffer data0~5 5 7 0~5 play 5~7 no data! 7~10 play サウンド データ 7秒経過(2秒遅れ) data7~10 data5~10

TS-I/Oでの出力処理(2) タイムスタンプに従った再生処理 アプリケーションが渡したタイムスタンプに従って再生 録音時のミス(音飛び)に対処した再生が可能 application buffer kernel buffer size=8 0~5 play 5~7 wait… 7~10 play 音飛びした サウンド データ 0..5 7..10 タイム スタンプ

TS-I/Oの利点 シンプルな設計 カーネルレベルの処理 全てのストリームに適応できる I/Oのみをリアルタイム化 マシンの性能に依存しない実時間処理を可能に カーネルレベルの処理 アプリケーションレベルではできない処理が可能 OS内のバッファリングでのミスの検知 全てのストリームに適応できる 全てのストリームにTS-I/Oを利用できれば、タイミング重視のプログラムの作成は非常に楽 汎用ルーチンを作ることで実装できそう

追加システムコール read_gettbuf(fd,buf,tbuf,size,tsize) read(fd,buf,size)+タイムスタンプの取り出し デバイスからの録音データとタイムスタンプを返す tbuf・・・タイムスタンプを格納するバッファ tsize・・・タイムスタンプのサイズ write_puttbuf(fd,buf,tbuf,size,tsize) write(fd,buf,size)+タイムスタンプの転送 デバイスに再生データとタイムスタンプを送る

TS-I/Oの実装 デバイスドライバの関数に処理を追加 タイムスタンプの付加 タイムスタンプを処理 割り込み処理関数 read関数 関数が呼ばれた際にタイムスタンプを取得する タイムスタンプを処理 read関数 タイムスタンプをアプリケーションに転送する write関数 タイムスタンプに従って、時間軸にそった同期再生を行う 再生処理中のミスに対して、その後のデータが時間軸にそうように処理をとばす

実験 オーバーヘッドを測定 割り込み関数のオーバーヘッド 割り込み関数、read関数、write関数のオーバーヘッド 計算機:PentiumⅢ 733MHz, メモリ 512MB 処理にかかったクロックを測定 割り込み関数のオーバーヘッド 割り込み関数1回あたりのオーバーヘッドを測定 割り込み関数呼び出しの周期: 5333 μsec 結果: 2.3 μsec  → 割り込み関数の呼ばれる周期内に納まる小さい値

read関数のオーバーヘッド 10秒のデータを数回のread関数に分けて録音し、1回あたりのタイムスタンプ転送の時間を測定 呼び出す回数が多いほどオーバーヘッドは大きい この時間だけバッファにデータがたまるが、この程度なら問題ない 回数(1回あたりの時間) オーバーヘッド(μsec) 割合(%) 10000回(1msec) 3.2 0.32 1000回(10msec) 5.4 0.054 100回(100msec) 33.1 0.031

write関数のオーバーヘッド 10秒のデータを数回のwrite関数に分けて再生し、関数が1回呼ばれてから終わるまでの処理時間を測定 今回はミスが起こらない場合のオーバーヘッドを測定 100回呼び出した場合、オーバーヘッドはほとんどなかった この時間だけバッファのデータが減っていくが、この程度なら問題ない 回数(1回あたりの時間) オーバーヘッド(μsec) 割合(%) 10000回(1msec) 8.8 0.88 1000回(10msec) 10.3 0.103 100回(100msec)

ネットワークにおけるTS-I/O(1) TS-I/Oの拡張・・・UDPを利用するマルチメディア処理に関して パケットの損失の検知 メディア内、メディア間の同期 処理時間の制御 受信側のアプリケーションに処理開始時間を指定する → これらの処理をOSが自動的にしてくれる

♪ ネットワークにおけるTS-I/O(2) QoS制御 サーバー クライアント バッファのデータが減ってきた場合、タイムスタンプをみてストリームを優先的に処理 サーバからのストリームをバッファリングしながら再生する場合に有効 アプリケーションではできない処理 サーバー クライアント タイムスタンプ Check! ♪ 出力 リングバッファ

関連研究 アプリケーションレベルの実時間処理 関連研究 アプリケーションレベルの実時間処理 MPEG 映像や音声の圧縮符号化方式 各パケットにタイムスタンプを含むヘッダーを付加する RTP(Real-time Transport Protocol) 映像や音声のストリーミングのためのプロトコル タイムスタンプなどを含むヘッダーを付加して送る 我々のTS-I/O 上の技術が提供する実時間処理をカーネルレベルで提供する パケットの損失の検知、同期処理

実時間処理のレベルの比較 アプリケーション TS-I/O リアルタイムOS リアルタイムスケジューリング SOFT メディア内、メディア間の同期が可能 TS-I/O カーネルレベルの実時間処理 QoS制御 OS内のバッファリングミスの検知 リアルタイムOS リアルタイムスケジューリング SOFT アプリケーション TS-I/O リアルタイムOS HARD

まとめ TS-I/Oを提案 今後の発展 Linuxにおけるカーネルレベルでの実時間処理を可能にする機能 TS-I/Oの拡張 ルーチンの作成 現在、各デバイスドライバを書き換える設計 → 汎用ルーチンを作ることで、デバイスドライバへの変更をせずに処理を提供する予定