(57)【特許請求の範囲】
【請求項１】
非同期系伝送路と同期系伝送路との間のインタフェースをなし、少なくとも１つのサーバ計算機から前記非同期系伝送路を介して伝送される符号化されたマルチメディアデータのストリームを入力して、前記同期系伝送路の持つ絶対的なクロックに同期した出力レートで当該同期系伝送路へのストリーム出力を行なうマルチメディアデータ入出力インタフェース装置において、
前記非同期系伝送路からの入力ストリームを一時保持するための前記同期系伝送路へのストリーム出力に用いられるバッファ記憶手段と、
前記同期系伝送路へ送出するストリームの出力レートが前記非同期系伝送路から入力するストリームの入力レートより少なくとも当該入力レートのドリフト分を上回る予め定められた一定レートに設定されていることを前提条件に、前記バッファ記憶手段に一定量の入力データを蓄えた後、前記バッファ記憶手段へのデータ入力を続けながら、前記バッファ記憶手段からの前記一定レートでのストリームの出力を一定時間行ない、前記一定量と前記一定時間後に前記バッファ記憶手段に残っているデータの量との差及び当該時間から、出力レートと入力レートとの差分を算出するレート差分算出手段と、
前記バッファ記憶手段がアンダーフロー状態となっても前記出力レートが前記一定レートとなるように挿入されるべきダミーパケットの挿入間隔を、前記レート差分算出手段によって算出された前記出力レートと入力レートとの差分をもとに算出するダミーパケット挿入間隔算出手段と、
前記ダミーパケット挿入間隔算出手段の算出結果をもとに前記ダミーパケットを挿入する位置を決定するダミーパケット挿入位置決定手段と、
前記バッファ記憶手段から前記同期系伝送路へのストリーム出力を前記クロックに同期した前記一定レートで行なうストリーム出力手段と、
前記バッファ記憶手段からの出力ストリーム中の前記ダミーパケット挿入位置決定手段によって決定された位置に前記ダミーパケットを挿入することで出力レートの調整を行なうダミーパケット挿入手段とを具備することを特徴とするマルチメディアデータ入出力インタフェース装置。
【請求項２】
非同期系伝送路と同期系伝送路との間のインタフェースをなし、少なくとも１つのサーバ計算機から前記非同期系伝送路を介して伝送される符号化されたマルチメディアデータのストリームを入力してバッファ記憶手段に一時記憶しながら、当該バッファ記憶手段から前記同期系伝送路へのストリーム出力を当該同期系伝送路の持つ絶対的なクロックに同期した出力レートで行なうマルチメディアデータ入出力インタフェース装置に適用される一定レートストリーム出力方法であって、
前記同期系伝送路へ送出するストリームの出力レートを前記非同期系伝送路から入力するストリームの入力レートより少なくとも当該入力レートのドリフト分を上回る値に設定することで、前記バッファ記憶手段がアンダーフロー状態となるように設定し、
前記バッファ記憶手段に一定量の入力データを蓄えた後、前記バッファ記憶手段へのデータ入力を続けながら、前記バッファ記憶手段からの予め定められた一定レートでのストリームの出力を一定時間行なうことにより、前記一定量と前記一定時間後に前記バッファ記憶手段に残っているデータの量との差及び当該時間から、出力レートと入力レートとの差分を算出し、
前記バッファ記憶手段がアンダーフロー状態となっても前記出力レートが前記一定レートとなるように挿入されるべきダミーパケットの挿入間隔を、前記算出された出力レートと入力レートとの差分をもとに算出し、
前記ダミーパケットの挿入間隔の算出結果をもとに前記ダミーパケットを挿入する位置を決定し、
前記バッファ記憶手段からの出力ストリーム中の前記決定された位置に前記ダミーパケットを挿入することで出力レートの調整を行なうようにしたことを特徴とする一定レートストリーム出力方法。
【請求項３】
非同期系伝送路と同期系伝送路との間のインタフェースをなし、少なくとも１つのサーバ計算機から前記非同期系伝送路を介して伝送される符号化されたマルチメディアデータのストリームを入力してバッファ記憶手段に一時記憶しながら、当該バッファ記憶手段から前記同期系伝送路へのストリーム出力を当該同期系伝送路の持つ絶対的なクロックに同期した出力レートで行なうマルチメディアデータ入出力インタフェース装置に適用される一定レートストリーム出力用のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記同期系伝送路へ送出するストリームの出力レートが前記非同期系伝送路から入力するストリームの入力レートより少なくとも当該入力レートのドリフト分を上回る予め定められた一定レートに設定されていることを前提条件に、前記バッファ記憶手段に一定量の入力データを蓄えた後、前記バッファ記憶手段へのデータ入力を続けながら、前記バッファ記憶手段からの前記一定レートでのストリームの出力を一定時間行ない、前記一定量と前記一定時間後に前記バッファ記憶手段に残っているデータの量との差及び当該時間から、出力レートと入力レートとの差分を算出する機能と、
前記バッファ記憶手段がアンダーフロー状態となっても前記出力レートが前記一定レートとなるように挿入されるべきダミーパケットの挿入間隔を、前記算出された出力レートと入力レートとの差分をもとに算出する機能と、
前記ダミーパケットの挿入間隔の算出結果をもとに前記ダミーパケットを挿入する位置を決定する機能と、
前記バッファ記憶手段から前記同期系伝送路へのストリーム出力を前記クロックに同期した前記一定レートで行なう機能と、
前記バッファ記憶手段からの出力ストリーム中の前記決定された位置に前記ダミーパケットを挿入することで出力レートの調整を行なう機能とを前記マルチメディアデータ入出力インタフェース装置に含まれるコンピュータに実現させるための一定レートストリーム出力用のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、非同期系伝送路と同期系伝送路との間のインタフェースをなし、非同期系伝送路を介して伝送されるマルチメディアデータを安定した状態で同期系伝送路に送出するのに好適なマルチメディアデータ入出力インタフェース装置及び同装置に適用される一定レートストリーム出力方法に関する。
【０００２】
【従来の技術】
近年、映像や音声等の各種メディアの情報信号をデジタル化して信号処理し、それを伝送するマルチメディアデータ伝送技術がめざましく進歩している。
デジタル映像データ（動画像データ）等のマルチメディアデータは、ＭＰＥＧ（Moving Picture Experts Group）と呼ばれる規格の符号化処理技術（データ圧縮処理技術）を適用して符号化されるのが一般的である。ＭＰＥＧシステムの１つにＭＰＥＧ２システムがある。このＭＰＥＧ２システムでは、符号化されたマルチメディアデータのビットストリーム（ビット列）は、それぞれＰＥＳ（Packetized Elementary Stream）パケットと呼ばれるパケット単位に区切られたＰＥＳとされて時分割多重されることにより、トランスポートストリーム（Transport Stream；ＴＳ）と呼ばれる多重通信信号となる。このトランスポートストリーム（ＭＰＥＧ２ＴＳ）は、ＰＥＳパケットが幾つかに分解されて１８８バイトの固定長のトランスポートパケット（ＴＳパケット）に乗せられたデータ構造となっている。トランスポートストリームでは、ＳＴＢ（Set Top of Box）に代表される受信装置の復号器（デコーダ）において基準時計の同期をとるための、ＰＣＲ（Program Clock Referance 、プログラム時刻基準参照値）と呼ばれる６バイトの時間情報（一種のタイムスタンプ）が適当な頻度で設定される。このＰＣＲの値（ＰＣＲ値）が設定される特定パケットはＰＣＲパケットと呼ばれ、その値には、該当するパケットの送出時の時刻が用いられる。
【０００３】
ケーブルなど放送系のネットワークを介して、メディアサーバ（メディアサーバ計算機）から出力された動画像データなどのマルチメディアデータ、例えばΜＰＥＧ２ＴＳ（形式のマルチメディアデータ）の再生を行なう場合の問題点として、ΜＰＥＧ２ＴＳのタイミングモデルを守らなくてはならないという大前提が崩れてしまうことが挙げられる。
【０００４】
この前提とは、マルチメディアデータに対するデコーダ、エンコーダの前後に、バッファリングを行なって遅れ時間を許す部分が存在するものの、ストリームに破綻をきたすことなく連続再生を行なうためには、システム全体としてエンコーダからデコーダまでの遅れ時間が常に一定値をとらなくてはならないということである。
【０００５】
このようなタイミングモデル、つまりメディアサーバのクロックに従ってデータ発信が行なわれ、データ下流の機器はそのクロックに従ってデータ転送を行なうモデルはプッシュモデルと呼ばれ、ＭＰＥＧ２ＴＳなどリアルタイムデータ送信を行なう上での基本的なモデルである。これにより、ＰＣＲを付加したエンコーダのシステム時間情報を再生しながら、破綻をきたすことなくデータの再生を行なうことが可能となる。
【０００６】
ところが、図１０のシステムに示すように、メディアサーバ１０１からＡＴＭ（Asyncronous Transfer Mode 、非同期転送モード）伝送路に代表される非同期系伝送路１０２に出力されたデータストリーム（つまり、コンピュータ系からの非同期によるデータストリーム）を、マルチメディアデータ入出力インタフェース装置１０３で受けて、受信装置（ＳＴＢ）１０５に対して放送系のケーブル伝送路、つまり同期系伝送路１０４によるデータ送信（放送系へのデータ送信）を行なう場合、同期系伝送路１０４には当該伝送路１０４の搬送波の周波数という絶対的なクロックが存在するため、同期系伝送路１０４の上流のサーバ１０１のクロックに同期をとってデータ転送を行なうことは難しい。
【０００７】
そのため、非同期系伝送路１０２（コンピュータ系）と同期系伝送路１０４（放送系）との接続部分（をなすマルチメディアデータ入出力インタフェース装置１０３）にてアンダーフローやオーバーフローが起こり易くなってしまい、ＳＴＢ１０５側では安定したストリームを得ることはできない。入出力インタフェース装置１０３内に単純にバッフアを設けて破綻を防止するのでは、そのバッファサイズが巨大なものとなりかねない。
【０００８】
【発明が解決しようとする課題】
メディアサーバ（メディアサーバ計算機）のクロックにより決められるトランスポートストリーム（ＭＰＥＧ２ＴＳ）の持つクロック情報と、機器のクロックの差を吸収する方法の１つとして、ＰＬＬ（位相ロックループ）回路により機器のクロックを修正するという方法が知られている。これは、デコーダ等で用いられている手法で、機器のクロックをストリームのクロック情報に合わせることで、同期をとる方法である。
【０００９】
しかし、図１０に示したような同期系（放送系）に接続を行なうシステムの場合、この方法を用いることは難しい。第１の理由は、非同期系（コンピュータ系）につながる同期系伝送路（放送系伝走路）自身が絶対クロックを持つためである。第２の理由は、図１１のシステムに示すように、非同期系伝送路１０２を介してデータを供給するメディアサーバが複数存在し（図ではサーバ１０１-1〜１０１-3の３台）、各サーバでそれぞれクロックが異なるため、つまりデータをエンコードして送るときのストリーム（図ではＡ〜Ｃ）に付属して送られる同期信号が異なるためである。
【００１０】
本発明は上記事情を考慮してなされたものでその目的は、サーバ計算機からの非同期によるマルチメディアデータのストリームを受けて同期系伝送路に転送するのに、破綻することのない安定したストリームの長時間に亘る供給が図れるマルチメディアデータ入出力インタフェース装置及び同装置に適用される一定レートストリーム出力方法に関する。
【００１１】
【課題を解決するための手段】
本発明は、非同期系伝送路と同期系伝送路との間のインタフェースをなし、少なくとも１つのサーバ計算機から上記非同期系伝送路を介して伝送される符号化されたマルチメディアデータのストリームを入力して、上記同期系伝送路の持つ絶対的なクロックに同期した出力レートで当該同期系伝送路に送出するマルチメディアデータ入出力インタフェース装置において、上記非同期系伝送路からの入力ストリームを一時保持するためのバッファ記憶手段と、上記非同期系伝送路から入力するストリームの入力レートが上記同期系伝送路へ送出するストリームの出力レートより少なくとも当該入力レートのドリフト分を下回る値に設定されていることを前提条件に、上記バッファ記憶手段がアンダーフロー状態となっても出力レートが予め定められた一定レートとなるように、ダミーパケットを挿入することで出力レートの調整を行なうようにしたことを特徴とする。ここで、複数のサーバ計算機からそれぞれストリームを受ける入出力インタフェース装置にあっては、それぞれのストリームについてダミーパケットの挿入によりレート調整を行って入力ストリームのレートの平準化を行ない、出力ストリームにおける時分割多重化を行なうようにするとよい。
【００１２】
このような構成においては、バッファ記憶手段がアンダーフロー状態に設定される条件のもとで、一定の出力レートとなるようにダミーパケット（Ｎｕｌｌパケット）が挿入（付加）されるため、大容量のバッファ記憶手段を用いることなく、上流のサーバ計算機側のクロック（非同期系伝送路のクロック）と搬送波という絶対的なクロックが存在する放送系伝送路などの同期系伝送路のクロックとのずれを吸収し、つまり非同期系伝送路のクロックに影響されずに、同期系伝送路のクロックに同期した時分割多重化が可能となる。
【００１３】
ここで、入力ストリームを構成するパケット列に含まれる、再生時期を表すための時間情報（ＰＣＲ値）を持つ特定パケット（ＰＣＲパケット）を出力する場合、当該パケット中の時間情報（ＰＣＲ値）をレート調整に応じて書き換えて、ダミーパケット挿入による当該パケットの（同期系伝送路に接続された）受信装置（例えばＳＴＢ）への到着時間の遅れ分を修正するならば、受信装置側でパケット未到達状態と誤判断されるのを防止して、当該受信装置側で正しく連続再生することが可能となる。
【００１４】
また、ダミーパケットの挿入位置（挿入タイミング）は、出力レートと入力レートとの差分をもとにダミーパケットの挿入間隔を算出し、その挿入間隔から決定すればよい。
【００１５】
また、出力レートと入力レートとの差分であるレート差分（Δｒａｔｅ）は、バッファ記憶手段に一定量（ｘ0 ）の入力データを蓄えた後、当該バッファ記憶手段へのデータ入力を続けながら、当該バッファ記憶手段からの一定レートでのストリームの出力を一定時間（Δｔ）行ない、上記一定量（ｘ0 ）と一定時間（Δｔ）後にバッファ記憶手段に残っているデータの量（ｘ1 ）との差（ｘ0 −ｘ1 ）及び当該時間（Δｔ）から算出すればよい。ここで、レート差分Δｒａｔｅと、（ｘ0 −ｘ1 ）及びΔｔとの関係は、Δｒａｔｅ＝（ｘ0 −ｘ1 ）／Δｔのように表される。
【００１６】
このように、レート差分（Δｒａｔｅ）を求めるのに、単純に出力レートと入力レートとを用いるのではなく、即ち（一定レートとなる出力レートとは異なって）非同期系伝送路を経ることによるパケット到着時間の揺らぎ（ドリフト）の影響を受けるために正確に測定することが困難な入力レートを測定して出力レートと共に用いるのではなく、当該揺らぎの影響を受けることのない、バッファ記憶手段の入力バッファ領域の時間（Δｔ）当りの増減量（ｘ0 −ｘ1 ）を利用することにより、レート差分（Δｒａｔｅ）を正確に求めることが可能となる。
【００１７】
また本発明は、上記レート差分を予め定められた条件を満足するタイミング毎に算出し、当該レート差分を算出する毎に、最新のダミーパケットの挿入間隔を算出するようにしたことをも特徴とする。
【００１８】
このような構成においては、常に最新のストリーム入出力状態に対応したレート差分が算出（測定）されて、その最新のレート差分をもとに最新のストリーム入出力状態に対応したダミーパケットの挿入間隔が決定されることから、破綻することのない安定したストリームの長時間に亘る供給が可能となる。
【００１９】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
図１は本発明の一実施形態に係るマルチメディアデータ入出力インタフェース装置を備えたデータ伝送システムの全体構成を示すブロック図である。
【００２０】
図１のデータ伝送システムは、クロックが異なる複数のメディアサーバ、例えば３台のメディアサーバ１０-1〜１０-3（クロックはＣＬＫ１〜ＣＬＫ３）を備えている。メディアサーバ１０-1〜１０-3は、当該サーバ１０-1〜１０-3から送出されるマルチメディアデータのストリーム（例えばＭＰＥＧ２ＴＳ）の伝送路としての非同期系伝送路（コンピュータ系伝送路）１１を介してマルチメディアデータ入出力インタフェース装置２０と接続されている。本実施形態において、非同期系伝送路１１はＡＴＭ伝送路である。
【００２１】
マルチメディアデータ入出力インタフェース装置２０は、非同期系伝送路１１と、放送系伝送路（ケーブル伝送路）等の同期系伝送路１２とのインタフェースをなすもので、非同期系伝送路１１を介して転送されるメディアサーバ１０-1〜１０-3からの各ストリームを入力（受信）し、同期系伝送路１２のクロックとの同期がとれた出力レートに合わせて当該同期系伝送路１２に出力（送信）する機能を有する。この入出力インタフェース装置２０は、非同期系伝送路１１とのインタフェースをなすＡＴＭインタフェース２１、及び同期系伝送路１２とのインタフェースをなし、当該同期系伝送路１２への破綻することのない安定した一定レートでのストリームの出力を行なう機能（コンスタントビットレートストリームエンジン機能、以下ＣＳＥ機能と称する）を有するカード（以下、ＣＳＥカードと称する）２２を備えている。
【００２２】
同期系伝送路１２には、当該伝送路１２を介してマルチメディアデータ入出力インタフェース装置２０から転送されるストリームを受信して再生するＳＴＢ３０が接続されている。ＳＴＢ３０には、再生されたデータ（動画像データ、音声データ）を表示、音声出力するためのモニタ３１が接続されている。
【００２３】
図２はマルチメディアデータ入出力インタフェース装置２０のハードウェア並びにソフトウェア構成を示す。
同図に示すように、マルチメディアデータ入出力インタフェース装置２０は、主として、プログラム処理が可能な情報処理装置、例えばワークステーション（以下、ＷＳと称する）２３と、当該ＷＳ２３に実装されたＡＴＭインタフェース２１及びＣＳＥカード２２とから構成されている。
【００２４】
ＷＳ２３には、後述するストリームの多重化、クロック誤差調整のためのアルゴリズム（具体的には、入力レートと出力レートとの差分を検出するためのレート差分検出アルゴリズム、Ｎｕｌｌパケットの挿入とＰＣＲの書き換えのためのアルゴリズム）を提供するアプリケーションプログラム（以下、上位アプリケーションと称する）２３０、当該上位アプリケーション２３０のもとでＡＴＭインタフェース２１を制御するためのデバイスドライバ（以下、ＡＴＭＩＦドライバと称する）２３１、及び当該上位アプリケーション２３０のもとでＣＳＥカード２２を制御するためのデバイスドライバ（以下、ＣＳＥカードドライバと称する）２３２等のソフトウェアプログラムがロードされている。
【００２５】
ここで、上位アプリケーション２３０、ＡＴＭＩＦドライバ２３１、及びＣＳＥカードドライバ２３２は、記録媒体、例えばＣＤ−ＲＯＭ２４に記録されており、当該ＣＤ−ＲＯＭ２４をＷＳ２３のＣＤ−ＲＯＭドライブ（図示せず）に装着して読み込むことによりＷＳ２３内にローディングされる。なお、これらのソフトウェアプログラムを記録した記録媒体としては、ＣＤ−ＲＯＭ２４の他に、フロッピーディスク、メモリカード等が利用可能である。また、ＡＴＭＩＦドライバ２３１及びＣＳＥカードドライバ２３２のうちの少なくともＡＴＭＩＦドライバ２３１については、ＣＤ−ＲＯＭ２４とは別のＯＳ（オペレーティングシステム）用ＣＤ−ＲＯＭ（記録媒体）から提供するようにしてもよい。また、ソフトウェアプログラムを記録した記録媒体の内容が、通信回線等を介してＷＳ２３にダウンロードされるものであっても構わない。
【００２６】
ＣＳＥカード２２は、カード１枚あたり実効帯域２４Ｍ（メガ）ｂｐｓ（ビット／ｓｅｃ）のデータ転送が可能であり、その出力に同期系伝送路１２を介して６４ＱΑＭ（Quadrature Amplitude Modulation ）装置またはＳＴＢを接続することを想定したハードウェア構成となっている。図１のデータ伝送システムでは、ＣＳＥカード２２には同期系伝送路１２を介して多数のＳＴＢ３０（図では１つだけ示してある）が接続される。ＣＳＥカード２２はＡＴＭインタフェース２１と共にＷＳ２３内部の図示せぬＩ／Ｏ接続バス（ＳＢｕｓ）に接続されている。
【００２７】
ＣＳＥカード２２は、ストリームデータのバッファリングのための、例えば１ＭＢ（メガバイト）の書き換え可能なメモリ、例えばＳＲＡＭ（Static Random Access Memory ）２２１と、ＷＳ２３内のＩ／Ｏ接続バスとＳＲＡＭ２２１との間のデータ転送をＤＭＡ（Direct Memory Access）方式で行なうＤＭＡコントローラ（以下、ＤＭＡＣと称する）２２２とを備えている。ＳＲＡＭ２２１は、Α，Ｂ２面のバッファに分割して管理され、定常状態では一方の面（バッファ）では（入力バッファとして）入力を受けながら、他方の面（バッファ）は（出力バッファとして）コンスタントビットレート出力を行なうように制御される。入力バッファとして用いられた面は、次には出力バッファに切り換えられ、出力バッファとして用いられた面は、次には入力バッファに切り換えられる。
【００２８】
ＳＲＡＭ２２１からの出力レート、即ち（マルチメディアデータ入出力インタフェース装置２０内の）ＣＳＥカード２２から同期系伝送路１２への出力レートは水晶発信器の周波数によって、上記したカード１枚あたりの実行帯域２４Ｍｂｐｓより大きい例えば２７Ｍｂｐｓに定められている。ＳＲＡＭ２２１との間のＤＭＡ転送時において、当該ＳＲＡＭ２２１（内の入力バッファ）が完全充填（ＦＵＬＬ）時と、ＳＲＡＭ２２１（内の出力バッファ）からの出力完了（ＥＭＰＴＹ）時には、ＣＳＥカード２２から割り込み信号が出される。ＳＲＡＭへのストリームの充填が間に合わない場合は、上位アプリケーション２３０の制御のもとでＮｕｌｌパケットの挿入が行なわれる。
（Ａ）動作の概要
次に、本実施形態の動作について、マルチメディアデータ入出力インタフェース装置２０の動作を中心に説明する。
【００２９】
（Ａ１）アンダーフロー施策
マルチメディアデータ入出力インタフェース装置２０は、メディアサーバ１０-i（ｉ＝１〜３）から非同期系伝送路１１を介して送出されるデータストリーム（ΜＰＥＧ２ＴＳ）、即ちコンピユータ系からの非同期によるデータストリームをＡＴＭインタフェース２１にて受信（入力）し、ＣＳＥカード２２により同期系伝送路１２（ケーブル系）の同期信号に同期してデータを送出（出力）する。この際、送信レート（出力レート）と比較して受信レート（入力レート）が早い場合は入出力インタフェース装置２０内にてオーバーフローを起こし、逆の場合はアンダーフローが起こる。
【００３０】
オーバーフローが起こる場合はバッフアにより吸収するしかないが、ΜＰＥＧ２ＴＳのようなリアルタイム系で且つサイズの大きなデータを長時間に渡って流す場合たちまち破綻を生じる。
【００３１】
例えば、４Ｍｂｐｓのストリームにおいて、１００ｐｐｍのドリフトが存在する場合、１日を通じて破綻することなくストリームを流し続けるならば、次式
（４×１０6  [bit/sec]）×（１００×１０-6）
×（２４×３６００[sec] ）＝３．４５６×１０7 Ｍｂ（メガビット）
＝４．３２ＭＢ（メガバイト）
から明らかなように、４Ｍｂｐｓのストリーム１本あたり４．３２ＭＢ程度のバッファ領域が必要となる。このバッファ量は、一度バッファリングされたデータが再生されるまでに約１７秒間かかることを意味する。このような巨大なバッファを持つことはコストの面からも応答性の面からも好ましいことではない。
【００３２】
そこで、本実施形態におけるマルチメディアデータ入出力インタフェース装置２０が適用されるデータ伝送システムでは、送信側の実効レートを、受信側の合計レートの２４Ｍｂｐｓより数１００ｐｐｍ（ドリフトを上回る値α）早めたレートとし、意図的にアンダーフロー状態を作り出すようにしている。２４Ｍｂｐｓは、例えば４ＭｂｐｓのＭＰＥＧ２コンテンツ６本分、あるいは６Ｍｂｐｓのコンテンツ４本分に相当する。
【００３３】
また、マルチメディアデータ入出力インタフェース装置２０では、送信側の実効レートを数１００ｐｐｍ（α）早めた分の帯域を用い、上位アプリケーション２３０の提供するアルゴリズムによって、通常のパケットとは別の特別のパケットとしてのＮｕｌｌパケットの付加を行ない調整を行う。このＮｕｌｌパケットはＭＰＥＧ２ＴＳの同期バイト、Ｎｕｌｌパケット用に決められた値のＰＩＤ（パケット識別子）データのみを持ち、プログラムの再生には関与しないダミーパケットである。
【００３４】
この意図的に作り出したアンダーフロー状態でのＮｕｌｌパケット付加（挿入）によるレート調整により、各ストリームのレートを同期系伝送路１２（放送系伝走路）のクロックと同期がとれたレートに合わせることが可能となると同時に時分割多重化を行うことができる。この様子を図３に示す。ここでは、受信側の合計レートの２４Ｍｂｐｓより数１００ｐｐｍ早められた出力帯域（２４Ｍｂｐｓ＋α）において、多重化されたストリーム全体で見た場合のＮｕｌｌパケットの比率が模式的に示されている（斜線部）。図３は模式図であることから、Ｎｕｌｌパケットが１箇所に集中して付加されているように示されているが、実際には次に述べるように所定のルールに従って分散して付加（挿入）される。
【００３５】
（Ａ２）レート差分検出
Ｎｕｌｌパケットを挿入する際には、全体のレートの調整のみでなく、その位置について考慮する必要がある。
【００３６】
例えば、レート調整のために大量のＮｕｌｌパケットが１箇所に入ったとするなら、ＳＴＢ３０側では再生するパケットが、破綻しないための条件を満たす時間内に届かずアンダーフローを起こす。このようなＳＴＢ３０側でのアンダーフローを防ぐための処理を施すには、入力レートの正確な値を知ることが必要である。
【００３７】
しかし、通常の方法では困難である。なぜなら、パケット間の到着時間間隔からレートを計算しようとしても、ネットワーク（非同期系伝送路１１）を経由したことによるジッタ（ドリフト）の影響により、正確な値を得ることができないからである。その値を計算しようとするなら、繰り返しサンプルをとる必要がある。また従来のような、巨大バッファを用いて入力パケットを溜めて単位時間当たりの入力を算出する方法では、ジッタの影響を取り除けるだけの容量のバッファを確保しなければならず効率が悪く、またバッファの大きさがディレイの原因となり、操作性が著しく落ちることなどの問題点がある。
【００３８】
そこで、本実施形態におけるマルチメディアデータ入出力インタフェース装置２０では、入力ストリームと出力ストリームのレート誤差が大きくても１００ｐｐｍ程度であることを利用して、最初に一定量のデータをバッファに蓄えておいた状態で、予めシングルストリーム１本分の出力帯域を、最大予想入力帯域を超えるレートに設定しておき、しばらくの間入出力を行なったときのバッファ残量と入出力を行なった時間から両者のレートの差、つまり出力レートと入力レートとの差（レート差分）を検出するようにしている。また、このレート差分を用いてＮｕｌｌパケットを付加（挿入）する位置を、次のように決定する。
【００３９】
（Ａ３）Ｎｕｌｌパケットの付加とＰＣＲの置き換え
検出したレート差分をもとにＮｕｌｌパケットの付加を行なった場合、パケットの到着時間とメディアサーバ１０-iから送出される時間情報との間にずれを生じることとなる。ΜＰＥＧ２ＴＳを用いたシステムでは、エンコーダ側のシステム時間を、プログラム時刻基準参照値（ＰＣＲ）という時間情報の値を用いて取得する。ＰＣＲは全てパケットに付加されているわけではなく、ＰＣＲパケットと呼ばれる特定パケットにのみその情報が付加されている。
【００４０】
上記のずれを修正するのに、出力側に基準となるクロックを設けハードウェア（ＨＷ）によりＰＣＲを書き換える手法が考えられる。しかし、この手法はハードウェアのロジックの増大などの不都合が生じるため適当ではない。
【００４１】
そこで、本実施形態におけるマルチメディアデータ入出力インタフェース装置２０では、先の手法で検出したレートの差分データを用いて、Ｎｕｌｌパケット挿入間隔の計算を行ない、Ｎｕｌｌパケット１つ分のずれが生じたらＮｕｌｌパケットの挿入を行なう手法を適用する。同時に、修正するシステム時間の計算を行ない、ＰＣＲパケットを確認したら、そのＰＣＲフィールドの書き換えを行なう。このＰＣＲの置き換えを行なう理由を、図４を参照して説明する。
【００４２】
Ｎｕｌｌパケットを付加した場合、そのＮｕｌｌパケット付加直後のパケットは内部のＰＣＲに持つ時刻よりも遅れて到着することとなる。つまり、図４中の時刻ｔ0 で到着していなければならないものが、Ｎｕｌｌパケット付加により時刻ｔ1 にならないと到着しない。この時刻ｔ1 での到着を正しいものとするために、ＰＣＲの置き換えを行なう。
【００４３】
以上の（Ａ１）〜（Ａ３）により、ＭＰＥＧ２ＴＳのタイミングモデルが回復し、ＳＴＢ３０側でロックが外れることなく連続的に再生することが可能となる。
（Ｂ）動作の詳細
次に、マルチメディアデータ入出力インタフェース装置２０で適用された、Ｎｕｌｌパケット挿入による、同期系伝送路１２（放送系伝送路）に同期されて、且つコンテンツへの影響を最小限とするストリームの再構築方法のアルゴリズムについて詳細に説明する。
【００４４】
（Ｂ１）レート差分測定手順
初めに、同期系伝送路１２のクロックとメディアサーバ１０-iのクロックとの差分に起因するレート差分（出力レートと入力レートとの差分）を上位アプリケーション２３０に従って測定する手順について、図５のフローチャートを参照して説明する。なお、同期系伝送路１２における１ストリーム分の伝送帯域はメディアサーバ１０-iから受信するデータ通信帯域より１００ｐｐｍ程度のオーダで高いものとする。
【００４５】
まず、マルチメディアデータ入出力インタフェース装置２０のＣＳＥカード２２に設けられたＳＲＡＭ２２１のバッファ領域（入力バッフア）に一定量（ｘ0 バイト）のデータを溜める（ステップＳ１）。
【００４６】
次に、コンスタントストリームの出力を開始する（ステップＳ２）。同時に、時間Δｔ（ｓｅｃ）をカウントするタイマを起動（セット）する（ステップＳ３）。
【００４７】
そして、タイマが時間Δｔをカウントし終えるまでの時間Δｔの期間、ＳＲＡＭ２２１のバッファ領域にデータを入力しながら、当該バッファ領域からのコンスタントストリームの出力を行なう（ステップＳ４）。
【００４８】
やがてタイマが時間Δｔをカウントし終えると、バッファ領域の残量（ｘ1 バイト）を測定する（ステップＳ５）。もし入力レートと出力レートとの差がないならば、ｘ1 ＝ｘ0 バイトとなるはずであるが、本実施形態のように出力レート＞入力レートとなるように設定されている場合には、ｘ1 ＜ｘ0 となる。
【００４９】
次に出力レートと入力レートとの差分（誤差）Δｒａｔｅ（バイト／ｓｅｃ）を、次式
Δｒａｔｅ＝（ｘ0 −ｘ1 ）／Δｔ
により算出する（ステップＳ６）。
【００５０】
（Ｂ２）Ｎｕｌｌパケット挿入間隔等の決定手順
次に、測定したレート差分Δｒａｔｅをもとに、上位アプリケーション２３０に従ってＮｕｌｌパケット挿入間隔等を決定する手順について、図６のフローチャートを参照して説明する。
【００５１】
まず、１秒間当たりに付加するパケットの数Ｐadd ( 個／ｓｅｃ）を、次式
Ｐadd ＝１８８／Δｒａｔｅ
により算出する（ステップＳ１１）。ここで分子の「１８８（バイト）」は、パケット（トランスポートパケット）のサイズを示す。
【００５２】
このＰadd の値から、図７に示すＮｕｌｌパケット挿入間隔Ｔint （ｓｅｃ）を、次式
Ｔint ＝１／Ｐadd
により算出する。この間隔Ｔint でＮｕｌｌパケットを挿入すると、入力側（受信側）のレートと出力側（送信側）のレートの差（Δｒａｔｅ）を吸収することができる。
【００５３】
次に、入力レートＲin（バイト／ｓｅｃ）を求める。この入力レートＲinは、出力レートＲout （バイト／ｓｅｃ）がコンスタントであることから、次式
Ｒin＝Ｒout −Δｒａｔｅ
により求められる。
【００５４】
このＲinの値から、図７に示す入力ストリームのパケット間隔、つまりＮｕｌｌパケット挿入前ストリームのパケット到着間隔Ｔin（ｓｅｃ）を、次式
Ｔin＝１８８／Ｒin
により算出する。
【００５５】
同様にして、図７に示す出力ストリームのパケット間隔、つまりＮｕｌｌパケット挿入後のストリームのパケット間隔Ｔout （ｓｅｃ）を、Ｒout の値から、次式
Ｔout ＝１８８／Ｒout
により算出する。
【００５６】
（Ｂ３）Ｎｕｌｌパケット挿入、ＰＣＲの書き換え
次に、上記（Ｂ２）で算出したＮｕｌｌパケット挿入間隔Ｔint 、Ｎｕｌｌパケット挿入前ストリームのパケット到着間隔Ｔin、Ｎｕｌｌパケット挿入後のストリームのパケット間隔Ｔout 等をもとに、上位アプリケーション２３０に従ってＮｕｌｌパケット挿入、ＰＣＲの書き換えを行なう手順について、図８及び図９のフローチャートを参照して説明する。
【００５７】
まず、参照するパケット（カレントパケット）を指すポインタＰの値を、ストリームの先頭パケットを指すように初期設定する（ステップＳ２１）。
次にポインタＰの指すカレントパケットがＰＣＲパケットであるか否かを調べる（ステップＳ２２）。もし、カレントパケットがＰＣＲパケットでなければ、ポインタＰを１つ進めて（ステップＳ２３）、次のパケットを調べる（ステップＳ２２）。
【００５８】
このようにして、ＰＣＲパケットが見付けられたなら、Ｎｕｌｌパケットを挿入してからカレントパケットまでの時間間隔（経過時間）Ｔを初期値０に設定する（ステップＳ２４）。また、見付けたＰＣＲパケット（つまりポインタＰの指すパケット）の持つＰＣＲの値（ＰＣＲフィールドの値）を、基準時間として書き込む値（基準時間設定値）ＴPCR に設定する（ステップＳ２５）。
【００５９】
次にポインタＰを１つ進め（ステップＳ２６）、次のパケットがあるならば（ステップＳ２７）、Ｎｕｌｌパケットを挿入してからの経過時間Ｔの値を、Ｎｕｌｌパケット挿入前ストリームのパケット到着間隔（入力ストリームのパケット間隔）Ｔinの分だけ加えた値に更新する（ステップＳ２８）。また、基準時間設定値ＴPCR を、Ｎｕｌｌパケット挿入後のストリームのパケット間隔（出力ストリームのパケット間隔）Ｔout の分だけ加えた値に更新する（ステップＳ２９）。
【００６０】
次に、（最後にＮｕｌｌパケットを挿入してからの）経過時間ＴとＮｕｌｌパケット挿入間隔Ｔint とを比較する（ステップＳ３０）。もし、（先のステップＳ２８で経過時間ＴをＴinの分だけ更新した結果）Ｔ＞Ｔint となっているならば、Ｎｕｌｌパケットを挿入し（ステップＳ３１）、経過時間ＴをＴint だけ減らした値に更新する（ステップＳ３２）。続いて、（先のステップＳ２６で１つ進められた）ポインタＰの指すカレントパケットがＰＣＲパケットであるか否かを調べる（ステップＳ３３）。これに対し、上記ステップＳ３０でＴ＞Ｔint となっていないことが判定された場合には、そのままステップＳ３３に進み、ポインタＰの指すカレントパケットがＰＣＲパケットであるか否かを調べる。
【００６１】
もし、カレントパケットがＰＣＲパケットであるならば、当該ＰＣＲパケットの持つＰＣＲ値を現在の基準時間設定値ＴPCR に書き換え（ステップＳ３４）、しかる後にステップＳ２６に戻る。これに対し、カレントパケットがＰＣＲパケットでないならば、そのままステップＳ２６に戻る。
【００６２】
ところで、上記（Ｂ１）のレート差分測定手順で測定（算出）されたレート差分Δｒａｔｅをもとに、上記（Ｂ２）のＮｕｌｌパケット挿入間隔等の決定手順でＮｕｌｌパケット挿入間隔Ｔint を決定し、その決定した間隔Ｔint でＮｕｌｌパケットの挿入操作を行なう場合に、一度決定したＮｕｌｌパケット挿入間隔Ｔint を固定的に使用するものとすると、その間隔Ｔint が長期に亘り最も適切な間隔であるとは限らないという問題が考えられる。それは、間隔Ｔint （レート差分Δｒａｔｅ）の測定を行なった時間帯のサンプリング状態などの影響で、本来の間隔（レート差分）より僅かにずれていることがあり得るからである。
【００６３】
つまり、一度だけレート差分Δｒａｔｅの測定を行なってＮｕｌｌパケット挿入間隔Ｔint を固定してしまうと、微妙なずれの影響が徐々に蓄積し、非常に長時間に亘ってストリームを流した場合、ＳＲＡＭ２２１内のバッファ領域においてストリームの破綻が起こる虞があるということである。
【００６４】
そこで本実施形態では、このような不具合を防止するために、システムの状態（バッファ領域の使用状況）を監視しながら動的にレート差分Δｒａｔｅを測定してシステム状態に合致したＮｕｌｌパケット挿入間隔Ｔint を決定するようにしている。ここでは、レート差分Δｒａｔｅを動的に測定するのに、その測定タイミングを決定するための条件を設定し、その条件を満足するタイミング毎にレート差分Δｒａｔｅを測定する。この条件には、例えばインターバルタイマによる一定時間計測等を利用すればよい。
【００６５】
【発明の効果】
以上詳述したように本発明によれば、サーバ計算機からの非同期によるマルチメディアデータの入力ストリームを一時保持して（搬送波という絶対的なクロックが存在する放送系伝送路などの）同期系伝送路に送出するのに用いられるバッファ記憶手段をアンダーフロー状態に設定する一方、一定の出力レートとなるようにダミーパケットを挿入する構成としたことにより、サーバ計算機からの非同期によるマルチメディアデータのストリームを受けて同期系伝送路に転送するのに、大容量のバッファ記憶手段を用いることなく、サーバ計算機側のクロック（非同期系伝送路のクロック）と同期系伝送路のクロックとのずれを吸収でき、且つ破綻することのない安定したストリームの長時間に亘る供給を実現できる。
【００６６】
また、本発明によれば、ＰＣＲパケット中のＰＣＲ値をダミーパケット挿入によるレート調整に応じて書き換えて、ダミーパケット挿入に伴う当該パケットの受信装置への到着時間の遅れ分を修正することにより、受信装置側でパケット未到達状態と誤判断されるのを防止して、当該受信装置側で正しく連続再生することができる。
【００６７】
また、本発明によれば、ダミーパケットの挿入間隔を決定するのに必要な出力レートと入力レートとの差分（レート差分）を求めるのに、単純に出力レートと、ドリフトの影響を受けて正確に測定することが困難な入力レートとを用いるのではなく、ドリフトの影響を受けることのない、バッファ記憶手段の入力バッファ領域の時間当りの増減量を利用するようにしたので、レート差分を正確に求めることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るマルチメディアデータ入出力インタフェース装置を備えたデータ伝送システムの全体構成を示すブロック図。
【図２】同実施形態におけるマルチメディアデータ入出力インタフェース装置のハードウェア並びにソフトウェア構成を示す図。
【図３】同実施形態において、送信側の実効レートを、受信側の合計レートより数１００ｐｐｍ（α）早めたレートとして、意図的にアンダーフロー状態を作り出すようにした様子を示す図。
【図４】同実施形態におけるＮｕｌｌパケット挿入に伴うＰＣＲ書き換えを説明するための図。
【図５】同実施形態におけるレート差分測定処理を説明するためのフローチャート。
【図６】同実施形態におけるＮｕｌｌパケット挿入間隔等の決定処理を説明するためのフローチャート。
【図７】図６のフローチャートに従う処理で決定されるＮｕｌｌパケット挿入間隔、入力ストリームのパケット間隔、及び出力ストリームのパケット間隔の関係を示す図。
【図８】同実施形態におけるＮｕｌｌパケット挿入及びＰＣＲ書き換え処理を説明するためのフローチャートの一部を示す図。
【図９】同実施形態におけるＮｕｌｌパケット挿入及びＰＣＲ書き換え処理を説明するためのフローチャートの残りを示す図。
【図１０】コンピュータ系（非同期系）から放送系（同期系）へのデータ送信が行なわれるシステムを示す図。
【図１１】クロックの異なる複数のコンピュータ系（非同期系）から放送系（同期系）へのデータ送信が行なわれるシステムを示す図。
【符号の説明】
１０-1〜１０-3…メディアサーバ
１１…非同期系伝送路
１２…同期系伝送路
２０…マルチメディアデータ入出力インタフェース装置
２１…ＡＴＭインタフェース
２２…ＣＳＥカード
２３…ＷＳ
２４…ＣＤ−ＲＯＭ（記録媒体）
３０…ＳＴＢ
２２１…ＳＲＡＭ（バッファ記憶手段）
２３０…上位アプリケーション（レート調整手段、時間情報書き換え手段、ダミーパケット挿入間隔算出手段、レート差分算出手段）
【図１】
0003851721.tif 000002
【図２】
0003851721.tif 000003
【図３】
0003851721.tif 000004
【図４】
0003851721.tif 000005
【図５】
0003851721.tif 000006
【図６】
0003851721.tif 000007
【図７】
0003851721.tif 000008
【図８】
0003851721.tif 000009
【図９】
0003851721.tif 000010
【図１０】
0003851721.tif 000011
【図１１】
0003851721.tif 000012