(57)【要約】【課題】  デコーダのような処理手段の動作速度に応じてデータ出力速度を柔軟に変更することが可能な受信処理装置、受信装置、制御プログラム、および制御プログラムを記録した記録媒体を提供する。【解決手段】  データ蓄積手段３３は、ネットワーク接続手段３２にて受信したデータをデコーダ３７に出力する前に一時的に蓄積する。クロック手段３４は、デコーダ３７へのデータ出力時間を決定するための基準として用いるクロックを発生する。カウント手段３５は、クロック手段３４のクロック情報をカウントし、所定の規則に従って調整したカウント値をデータ出力手段３６に出力する。データ出力手段３６は、カウント手段３５でカウントされるカウント値と受信データに含まれる時刻情報とに基づいて、データ蓄積手段３３で蓄積されたデータをデコーダ３７に出力する。【選択図】        図２
2006042273.tif 000002
【特許請求の範囲】
【請求項１】
通信網を介してデータを受信し、該受信データを処理手段において処理する受信処理装置であって、
前記受信データを蓄積するデータ蓄積手段と、
前記データ蓄積手段から出力される前記受信データを前記処理手段に出力処理するデータ出力手段とを備え、
前記データ出力手段は、前記処理手段のデータ処理速度に応じて、前記処理手段に出力する前記受信データの出力速度を変化させる、受信処理装置。
【請求項２】
前記データ出力手段の動作を制御するクロック手段をさらに備え、
前記処理手段のデータ処理速度は、前記クロック手段の動作周波数と、前記処理手段を制御するクロック周波数との差に基づいて決定される、請求項１に記載の受信処理装置。
【請求項３】
前記クロック手段のクロック数をカウントするカウント手段をさらに備え、
前記データ出力手段は、前記処理手段の処理速度を補正する前記受信データのタイムスタンプの値と前記タイムスタンプが前記処理手段に入力された時の前記カウント手段のカウント値とに基づいて、前記処理手段に出力する前記受信データの出力速度を変化させる、請求項１に記載の受信処理装置。
【請求項４】
前記データ出力手段は、所定の時間間隔ごとに、前記処理手段に出力する前記受信データの出力速度を変化させる、請求項１から３のいずれかに記載の受信処理装置。
【請求項５】
前記データ出力手段は、前記処理手段の処理速度が所定の速度に達するまで、前記処理手段に出力する前記受信データの出力速度を変化させる、請求項４に記載の受信処理装置。
【請求項６】
前記データ出力手段は、前記データ蓄積手段に蓄積されている前記受信データが所定量に達したとき、前記処理手段に出力する前記受信データの出力速度を変化させる、請求項１から３のいずれかに記載の受信処理装置。
【請求項７】
前記データ出力手段は、
前記データ蓄積手段に蓄積されている前記受信データが所定の上限値に達したとき、前記処理手段に出力する前記受信データの出力速度が増加するように制御する第１の補正処理手段と、
前記データ蓄積手段に蓄積されている前記受信データが所定の下限値に達したとき、前記処理手段に出力する前記受信データの出力速度が減少するように制御する第２の補正処理手段とを含む、請求項６に記載の受信処理装置。
【請求項８】
通信網を介してデータを受信する受信装置であって、
該受信データを受信処理する受信処理部と、
前記受信処理部から出力される前記受信データを復号化処理するデコーダとを備え、
前記受信処理部は、
前記受信データを蓄積するデータ蓄積手段と、
前記データ蓄積手段から出力される前記受信データを前記デコーダに出力処理するデータ出力手段とを含み、
前記データ出力手段は、前記デコーダのデータ処理速度に応じて、前記デコーダに出力する前記受信データの出力速度を変化させる、受信装置。
【請求項９】
通信網を介してデータを受信し、該受信データを処理手段において処理する制御プログラムであって、コンピュータに、
前記受信データを蓄積するステップと、
前記蓄積された受信データを前記処理手段に出力するステップと、
前記処理手段のデータ処理速度に応じて、前記処理手段に出力する前記受信データの出力速度を変化させるステップとを実行させる、制御プログラム。
【請求項１０】
請求項９に記載の制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、受信処理装置、受信装置、制御プログラム、および制御プログラムを記録した記録媒体に関し、特に、ＩＰデータ通信網のようなネットワークにおいて用いられる受信処理装置、受信装置、制御プログラム、および制御プログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
近年、ホームネットワークでＡＶ（Audio Visual）データなどのリアルタイムデータをＩＰ（Internet Protocol）パケットにより転送する技術が広がりつつある。ＩＰパケットで転送する場合、エンコーダ（符号化回路）とデコーダ（復号化回路）とのクロックのズレにより、単位時間当たりに伝送されるデータ量と再生されるデータ量との間に違いが生じる。これにより、画質の劣化等の問題を引き起こす可能性があった。
【０００３】
図１５は、デジタルデータのリアルタイムストリーム伝送で一般的に用いられているＭＰＥＧ２−ＴＳ（Moving Picture Experts Group 2-Transport Stream）システムの概略的な構成を示した図である。
【０００４】
図１５に示すように、通信網１００に対して、送信装置２００および受信装置３００が接続されている。通信網１００は、遅延の変動（ジッタ）が少ないものとする。送信装置２００は、エンコーダ２０１と、送信バッファ２０２とを含む。受信装置３００は、ＰＬＬ（Phase Locked Loop）回路３１１を有するデコーダ３１０を含む。
【０００５】
送信装置２００は、送信クロック２１０からの送信クロック信号ＣＬＫｓに合わせてデータ信号ＤＴ１を出力する。データ信号ＤＴ１は、通信網１００を介して受信装置３００に転送される。データ信号ＤＴ１は、ＰＣＲ（Program Clock Reference）信号と呼ばれる同期信号を含んでいる。
【０００６】
受信装置３００は、ＰＣＲ信号を含むデータ信号ＤＴ１を受けて、デコーダ３１０の内部で、ＰＣＲ信号に含まれる値およびＰＣＲ信号が入力された時間の情報を抽出する。ＰＬＬ回路３１１は、これらのＰＣＲ情報を元に、送信クロック信号ＣＬＫｓをデコーダクロック３１２のクロック信号として再現する。これにより、送信側クロックと受信側クロックとのズレをなくすことができる。
【０００７】
しかし、上記のＰＣＲ情報を用いた同期方式は、通信網におけるジッタがある程度の範囲内に収まっているという条件の下で有効な技術である。そのため、ＩＰデータ通信網のようなネットワークにおいては有効ではない。上記の問題を解決するために、アダプティブクロック法と呼ばれる方法が用いられている（たとえば、特許文献１参照）。
【０００８】
図１６は、アダプティブクロック法を用いた場合のＭＰＥＧ２−ＴＳシステムの概略的な構成を示した図である。
【０００９】
図１６に示すように、通信網１０１に対して、送信装置２００および受信装置３０１が接続されている。送信装置２００は、図１５と同じく、エンコーダ２０１と、送信バッファ２０２とを含む。受信装置３０１は、ＰＬＬ回路３１１を有するデコーダ３１０と、受信バッファ３２０とを含む。
【００１０】
送信装置２００は、送信クロック２１０からの送信クロック信号ＣＬＫｓに合わせてデータ信号ＤＴ２を出力する。データ信号ＤＴ２は、通信網１０１を介して受信装置３０１に転送される。
【００１１】
受信装置３０１は、データ信号ＤＴ２をデコーダ３０１で受ける前に、受信バッファ３２０において一旦バッファリングする。受信バッファ３２０は、受信クロック３３０からの受信クロック信号ＣＬＫｒに合わせて、バッファリングされたデータ信号ＤＴ２をデコーダ３１０に出力する。なお、受信クロック信号ＣＬＫｒとデコーダクロック３１２のクロック信号とは、一般に別クロックである。
【００１２】
上記の構成により、デコーダクロック３１２のクロック信号は、受信クロック信号ＣＬＫｒに同期する。そのため、図１５の場合と異なり、送信クロック信号ＣＬＫｓと受信クロック信号ＣＬＫｒとは一般に異なっている。その結果、受信バッファ３２０内のデータは、長期的に見ると、増加または減少していく。
【００１３】
このような課題に対処するため、受信バッファ３２０は、データ信号ＤＴ２のバッファ量に応じて、デコーダ３１０へのデータ出力速度すなわち受信クロック信号ＣＬＫｒの周波数を変動させている。
【００１４】
具体的には、バッファ量が上限閾値を上回った場合、データ出力速度を上げることで、バッファ溢れ（オーバーラン）現象を回避している。また、バッファ量が下限閾値を下回った場合、データ出力速度を下げることで、データが足りなくなる（アンダーラン）現象を回避している。
【特許文献１】特開２００２−１６５１４８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
従来の送受信システムは、デコーダの動作速度がどのような状況であっても、データ出力速度をある決まった値に切り替えるような処理を行なっていた。
【００１６】
図１７は、図１６のアダプティブクロック法を用いた場合におけるデコーダ３１０へのデータ出力速度の変動を示した図である。
【００１７】
図１７に示すように、受信バッファ３２０のバッファ量が上限閾値を上回ったとき、デコーダ３１０へのデータ出力速度をハイレベルとする。当該ハイレベル時のデータ出力速度は、送信クロック信号ＣＬＫｓに基づく送信速度よりも必ず速くなるように設定される。逆に、受信バッファ３２０のバッファ量が下限閾値を上回ったとき、デコーダ３１０へのデータ出力速度をローレベルとする。当該ローレベル時のデータ出力速度は、送信クロック信号ＣＬＫｓに基づく送信速度よりも必ず遅くなるように設定される。
【００１８】
上記のように、デコーダへのデータ出力速度をハイとローとの２段階で切り替えた場合、当該切り替えのタイミングにおいてデータ出力速度に大幅な変化が生じる。そのため、大きな入力の変化に迅速に追随できないデコーダには適用できない可能性があった。
【００１９】
この発明は、上記の問題点を解決するためになされたものであって、その目的は、デコーダのような処理手段の動作速度に応じてデータ出力速度を柔軟に変更することが可能な受信処理装置、受信装置、制御プログラム、および制御プログラムを記録した記録媒体を提供することである。
【課題を解決するための手段】
【００２０】
この発明は、通信網を介してデータを受信し、受信データを処理手段において処理する受信処理装置であって、受信データを蓄積するデータ蓄積手段と、データ蓄積手段から出力される受信データを処理手段に出力処理するデータ出力手段とを備える。データ出力手段は、処理手段のデータ処理速度に応じて、処理手段に出力する受信データの出力速度を変化させる。
【００２１】
好ましくは、データ出力手段の動作を制御するクロック手段をさらに備える。処理手段のデータ処理速度は、クロック手段の動作周波数と、処理手段を制御するクロック周波数との差に基づいて決定される。
【００２２】
好ましくは、クロック手段のクロック数をカウントするカウント手段をさらに備える。データ出力手段は、処理手段の処理速度を補正する受信データのタイムスタンプの値とタイムスタンプが処理手段に入力された時のカウント手段のカウント値とに基づいて、処理手段に出力する受信データの出力速度を変化させる。
【００２３】
好ましくは、データ出力手段は、所定の時間間隔ごとに、処理手段に出力する受信データの出力速度を変化させる。
【００２４】
好ましくは、データ出力手段は、処理手段の処理速度が所定の速度に達するまで、処理手段に出力する受信データの出力速度を変化させる。
【００２５】
好ましくは、データ出力手段は、データ蓄積手段に蓄積されている受信データが所定量に達したとき、処理手段に出力する受信データの出力速度を変化させる。
【００２６】
好ましくは、データ出力手段は、データ蓄積手段に蓄積されている受信データが所定の上限値に達したとき、処理手段に出力する受信データの出力速度が増加するように制御する第１の補正処理手段と、データ蓄積手段に蓄積されている受信データが所定の下限値に達したとき、処理手段に出力する受信データの出力速度が減少するように制御する第２の補正処理手段とを含む。
【００２７】
この発明の他の局面によれば、通信網を介してデータを受信する受信装置であって、受信データを受信処理する受信処理部と、受信処理部から出力される受信データを復号化処理するデコーダとを備える。受信処理部は、受信データを蓄積するデータ蓄積手段と、データ蓄積手段から出力される受信データをデコーダに出力処理するデータ出力手段とを含む。データ出力手段は、デコーダのデータ処理速度に応じて、デコーダに出力する受信データの出力速度を変化させる。
【００２８】
この発明の他の局面によれば、通信網を介してデータを受信し、受信データを処理手段において処理する制御プログラムであって、受信データを蓄積するステップと、蓄積された受信データを処理手段に出力するステップと、処理手段のデータ処理速度に応じて、処理手段に出力する受信データの出力速度を変化させるステップとをコンピュータに実行させる。
【００２９】
この発明の他の局面によれば、通信網を介してデータを受信し、受信データを処理手段において処理する制御プログラムを記録したコンピュータ読み取り可能な記録媒体であって、受信データを蓄積するステップと、蓄積された受信データを処理手段に出力するステップと、処理手段のデータ処理速度に応じて、処理手段に出力する受信データの出力速度を変化させるステップとをコンピュータに実行させる。
【発明の効果】
【００３０】
この発明によれば、デコーダのような処理手段の動作速度に応じてデータ出力速度を柔軟に変更することが可能となる。
【発明を実施するための最良の形態】
【００３１】
以下、この発明の実施の形態について図面を参照して詳しく説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【００３２】
この発明の実施の形態では、遅延変動が大きな通信網を経由するリアルタイム通信において、バッファのオーバラン／アンダーランを回避するために、バッファリングによる出力速度の制御（例えば、アダプティブクロック法）を行なう場合について考える。そのような場合に、データ出力速度の変化による画質等への影響を軽減することが可能な受信装置について以下に説明する。
【００３３】
この発明の実施の形態では、ＩＰ（Internet Protocol）ネットワークを通じてＲＴＰ（Real Time Protocol）を用いたＭＰＥＧ２のリアルタイムストリーム伝送における例について述べる。ただし、本発明はこれに限定されるものではない。
【００３４】
図１は、この発明の実施の形態による受信装置１２が動作するネットワークシステムの構成を概略的に示した図である。
【００３５】
ネットワークシステムとは、例えば、テレビ、ハードディスクレコーダ（以下、ＨＤＲと称す）およびデジタルチューナーなどの様々な家庭内の機器が接続されたネットワークである。ネットワークシステムでは、例えば、ＩＰのようなネットワークプロトコルを用いて通信が行われる。
【００３６】
図１に示すように、通信ネットワーク１０に対して、送信装置１１と、受信装置１２と、機器１３，１４とが接続されている。送信装置１１は、通信ネットワーク１０を介して受信装置１２との間でリアルタイムストリーム伝送を行なう。送信装置１１としては、例えば、通信機能を備えたビデオ、ＨＤＲまたはデジタルチューナーなどが考えられる。受信装置１２は、通信ネットワーク１０を介して送信装置１１から送信されるリアルタイムデータを受信する。受信装置１２としては、例えば、通信機能を備えたテレビまたは液晶プロジェクタなどが考えられる。機器１３，１４は、通信ネットワーク１０に接続されるその他の機器である。
【００３７】
図２は、図１に示した送信装置１１および受信装置１２の具体的な構成を示したブロック図である。
【００３８】
図２を参照して、送信装置１１は、エンコーダ２１と、送信処理部２４とを備える。エンコーダ２１は、所定の入力に対して、ＭＰＥＧ２で規定されている符号化規則に従い符号化し、ＭＰＥＧ２のデータを出力する。エンコーダ２１は、クロック手段２２と、符号化手段２３とを含む。クロック手段２２は、エンコード時間をカウントする。符号化手段２３は、入力データを符号化する。
【００３９】
送信処理部２４は、エンコーダ２１から出力されたデータをネットワーク上で伝送可能なフォーマットにし、通信ネットワークへ出力する。送信処理部２４は、処理手段２５と、ネットワーク接続手段２６とを含む。処理手段２５は、エンコーダ２１から出力されるＭＰＥＧ２データに対して、複数のヘッダを付加する。ネットワーク接続手段２６は、処理手段２５で生成されたＩＰパケットを通信ネットワークへ出力する。ネットワーク接続手段２６は、例えば、イーサーネット（登録商標）カードである。
【００４０】
図３は、処理手段２５によって複数のヘッダが付加されたＭＰＥＧ２データのフレームフォーマットの一例を示した図である。
【００４１】
図３に示すように、ＭＰＥＧ２データには、一例として、ＩＰヘッダ、ＴＣＰ（Transmission Control Protocol）ヘッダ、およびＲＴＰヘッダが付加されている。ＲＴＰヘッダは、シーケンス番号、タイムスタンプ、およびその他の各種信号を含んでいる。タイムスタンプは、受信装置１２のデコーダ３７への出力時間を表わす。
【００４２】
図２に戻って、受信装置１２は、送信装置１１からのリアルタイムストリームデータを受信する。受信装置１２は、受信処理部３１と、デコーダ３７とを備える。受信処理部３１は、通信ネットワークから伝送されたデータを受信する。受信処理部３１は、ネットワーク接続手段３２と、データ蓄積手段３３と、クロック手段３４と、カウント手段３５と、データ出力手段３６とを含む。
【００４３】
ネットワーク接続手段３２は、通信ネットワークと受信装置１２とを接続する手段であって、送信装置１２から送信されたデータを受信する。ネットワーク接続手段３２は、例えば、イーサーネット（登録商標）カードである。データ蓄積手段３３は、ネットワーク接続手段３２にて受信したデータをデコーダ３７に出力する前に一時的に蓄積するバッファと当該バッファを制御する制御手段とを含む。
【００４４】
クロック手段３４は、デコーダ３７へのデータ出力時間を決定するための基準として用いるクロックを発生する。カウント手段３５は、クロック手段３４のクロック情報をカウントし、所定の規則に従って調整したカウント値をデータ出力手段３６に出力する。データ出力手段３６は、カウント手段３５でカウントされるカウント値と受信データに含まれる時刻情報とに基づいて、データ蓄積手段３３で蓄積されたデータをデコーダ３７に出力する。
【００４５】
デコーダ３７は、受信したデータの復号化を行なう。デコーダ３７は、復号化手段３８と、クロック手段３９とを含む。復号化手段３８は、データ出力手段３６から出力されたＭＰＥＧ２データの復号化を行なう。クロック手段３９は、データ出力手段３６から出力されたデータに含まれる時刻情報と当該データがデコーダ３７に入力されたタイミングとから受信したデータの再生を行なうためのクロック情報を生成し、それを復号化手段３８に出力する。
【００４６】
図４は、図２に示した受信処理部３１の具体的な処理機能を示した機能ブロック図である。
【００４７】
図４を参照して、受信処理部３１は、図２で説明したように、ネットワーク接続手段３２と、データ蓄積手段３３と、クロック手段３４と、カウント手段３５と、データ出力手段３６とを含む。データ蓄積手段３３は、データ受信処理手段４１を有する。カウント手段３５は、クロックカウント処理手段４２を有する。データ出力手段３６は、バッファリング処理手段４３と、データ出力処理手段４４と、第１補正手段４５と、第２補正手段４６とを有する。
【００４８】
図４に示すように、図２で説明した受信処理部３１の各手段は、その内部にそれぞれの手段を機能させるための処理機能手段を有しており、それぞれが協調して動作することにより受信処理が実現されている。
【００４９】
受信処理部２１が起動されると、データ受信処理手段４１、クロックカウント処理手段４２、およびバッファリング処理手段４３が起動される。データ受信処理手段４１およびクロックカウント処理手段４２は常時実行され、バッファリング処理手段４３は、所定の条件になればデータ出力処理手段４４を起動する。また、データ出力処理手段４４は、所定の条件になれば、第１補正手段４５および第２補正手段４６を起動する。
【００５０】
次に、受信装置１２がリアルタイムデータを受信する際の詳細な動作についてフローチャートを用いて順次説明する。
【００５１】
図５は、データ蓄積手段３３が有するデータ受信処理手段４１の受信処理動作を示したフローチャートである。
【００５２】
図５を参照して、データ受信処理手段４１が起動されると、ステップＳ５０２において、ネットワーク接続手段３２からデータ（次のパケット）を受信したか否かを判定する。次のパケットを受信していれば、ステップＳ５０４に進む。次のパケットを受信していなければ、再度ステップＳ５０２の判定処理を行なう。ステップＳ５０２の判定処理は、次のパケットを受信するまで続けられる。
【００５３】
ステップＳ５０４では、受信したデータをデータ蓄積手段３３のバッファへ書き込む。当該書き込みが完了したら、ステップＳ５０６に進む。ステップＳ５０６では、バッファの書き込み位置（buffer_tail）を１つ進める（図９参照）と共に、受信したデータのＲＴＰヘッダに含まれるタイムスタンプ値を変数ta_rtp_tsに書き込む。ステップＳ５０６が終了すると、ステップＳ５０２からの一連の処理を繰り返す。
【００５４】
図６は、カウント手段３５が有するクロックカウント処理手段４２のカウント処理動作を示したフローチャートである。
【００５５】
図６を参照して、クロックカウント処理手段４２が起動されると、ステップＳ６０２において、クロック手段３４からのクロック入力を取得する。クロック入力を取得したら、ステップＳ６０４において、クロック手段３４のクロックをカウントする変数Ｃ０をインクリメントする。次に、ステップＳ６０６において、クロックの補正値buf_adjustがゼロか否かを判定する。
【００５６】
buf_adjustがゼロの場合は、クロックの補正が行なわれない状態であり、ステップＳ６１６において、カウント情報ＣＯＵＮＴをインクリメントした後、ステップＳ６０２の処理に戻る。buf_adjustがゼロでない場合は、補正処理１または補正処理２が実行中であり、カウント情報ＣＯＵＮＴの補正を実行する。具体的には、ステップＳ６０８において、クロックの補正周期Ｔの算出を行う。
【００５７】
クロックの補正値buf_adjustは、１秒あたりに補正するクロックの数である。そのため、基準クロックが１秒あたりにクロックアップする数Ｋに対して、Ｔ＝Ｋ／buf_adjustが補正を行う周期となる。クロックの補正は、クロック手段３４からの入力がＴ回行われるにつき１回行なわれる。
【００５８】
ステップＳ６１０では、基準クロックのカウント値Ｃ０に対して補正する時間になったか否かを判定する。補正する時間になっていない場合は、ステップＳ６１６において、カウント情報ＣＯＵＮＴをインクリメントした後、ステップＳ６０２の処理に戻る。
【００５９】
補正する時刻になった場合は、ステップＳ６１２において、クロックの補正周期Ｔの値がゼロより大きいか小さいかを判定する。これにより、カウントアップの速度を早くするのか遅くするのかを判定する。
【００６０】
クロックの補正周期Ｔの値がゼロより大きい時は、カウントアップの速度を遅くすると判断し、カウント情報ＣＯＵＮＴの値をインクリメントせずに、ステップＳ６０２の処理に戻る。クロックの補正周期Ｔの値がゼロより小さいときは、カウントアップの速度を早くすると判断し、ステップＳ６１４において、カウント情報ＣＯＵＮＴの値を２インクリメントし、ステップＳ６０２の処理に戻る。
【００６１】
図７は、データ出力手段３６が有するバッファリング処理手段４３のバッファリング動作を示したフローチャートである。
【００６２】
図７を参照して、バッファリング処理手段４３が起動されると、ステップＳ７０２において、データ蓄積手段３３内のバッファに最初のパケットが書き込まれたか否かを判定する。最初のパケットが書き込まれていたら、ステップＳ７０４において、カウント手段３５から取得した現在のカウント値を変数fr_rtp_tiに書き込む。変数fr_rtp_tiを書き込んだ後、ステップＳ７０６において、最初のパケットのＲＴＰヘッダに含まれるタイムスタンプ値を変数fr_rtp_tsおよび変数he_rtp_tsに書き込む。その後、ステップＳ７０８において、出力開始時間の算出を行なう。
【００６３】
出力開始時間（start_ti）は、最初のパケットを受信した時刻（fr_rtp_ti）から所定の時間（MAX_SAVE；図１０参照）経過後となるように設定される。MAX_SAVEは、通常ネットワーク上で想定される最大のジッタ分の時間（例えば、３００ｍ秒）に設定される。ステップＳ７０２で最初のパケットが書き込まれていないか、ステップＳ７０８の処理が完了したら、ステップＳ７１０に進む。
【００６４】
ステップＳ７１０では、カウント手段３５から取得したカウント値が出力開始時間（start_ti）を越えているかどうかを判定する。カウント値が出力開始時間を超えていれば、バッファリング処理を終了し、データ出力処理へ移る。カウント値が出力開始時間を超えていなければ、ステップＳ７０２に戻り、一連の処理を繰り返す。なお、１度ステップＳ７０４〜Ｓ７０８の処理を完了した後は、最初のパケットの確認は完了したことになるので、ステップＳ７０２での判定処理は常にＮＯとなる。
【００６５】
図８は、データ出力手段３６が有するデータ出力処理手段４４の受信処理動作を示したフローチャートである。
【００６６】
図８を参照して、データ出力処理手段４４が起動されると、ステップＳ８０２において、データ蓄積手段３３におけるバッファの先頭位置（buffer_headの位置にあるパケット）を当該バッファから取り出だす。次に、ステップＳ８０４において、取り出したパケットのＲＴＰのタイムスタンプと、カウント手段３５から取得したカウント値とを比較し、取り出したパケットが出力開始時間になったか否かを判定する。
【００６７】
取り出したパケットが出力開始時間になっていたら、ステップＳ８０６において、取り出したパケットをデコーダ３７に書き込む。取り出したパケットが出力開始時間になっていなければ、出力開始時間になるまで、ステップＳ８０４の処理を繰り返す。
【００６８】
ステップＳ８０６でパケットをデコーダ３７に書き込んだら、ステップＳ８０８において、バッファからの読み出し位置（buffer_head）をインクリメントし（図９参照）、先頭のパケットのデータのタイムスタンプ値を変数he_rtp_tsに書き込む。次に、ステップＳ８１０において、第２補正手段４６による補正処理２が継続中か否かの判定を行なう。
【００６９】
補正処理２が継続中であれば（UNDER_REVISE=TRUE）、ステップＳ８２０において、補正処理２を実行する。補正処理２が継続中でなければ（UNDER_REVISE=FALSE）、ステップＳ８１２において、現在のバッファ量が下限の閾値（UNDER_ADJUST；図１０参照）より少なくなっているか否かを判定する。
【００７０】
現在のバッファ量が下限の閾値より少なくなっている場合、ステップＳ８２０において、アンダーランを回避するために補正処理２を実行する。現在のバッファ量が下限の閾値より少なくなっていない場合は、ステップＳ８１４に進み、第１補正手段４５による補正処理１が継続中か否かを判定する。
【００７１】
補正処理１が継続中であれば（OVER_REVISE=TRUE）、ステップＳ８１８において、補正処理１を実行する。補正処理１が継続中でなければ（OVER_REVISE=FALSE）、ステップＳ８１６において、現在のバッファ量が上限の閾値（OVER_ADJUST；図１０参照）より大きくなっているか否かを判定する。
【００７２】
現在のバッファ量が上限の閾値より大きくなっている場合、ステップＳ８１８において、オーバーランを回避するために補正処理１を実行する。現在のバッファ量が上限の閾値より大きくなっていない場合は、ステップＳ８０２に戻って処理を継続する。また、ステップＳ８１８の補正処理１およびステップＳ８２０の補正処理２が終了後も、ステップＳ８０２に戻って処理を継続する。
【００７３】
図９は、データ蓄積手段３３のバッファにおける書き込み位置（buffer_tail）および読み出し位置（buffer_head）を示した模式図である。
【００７４】
図５で説明したように、データ蓄積手段３３のバッファに対する受信データの書き込みが完了したのち、当該バッファの書き込み位置（buffer_tail）が１つ進められる。また、図８で説明したように、受信データから取り出したパケットをデコーダ３７に書き込んだのち、データ蓄積手段３３のバッファからの読み出し位置（buffer_head）がインクリメントされる。
【００７５】
図１０は、データ蓄積手段３３のバッファにおける最大バッファ量に対する各種の所定値を示した図である。
【００７６】
図１０に示すように、最大バッファ量に対して、出力開始位置（MAX_SAVE）、ネットワークジッタで変動する最小値（UNDER_ADJUST）、およびネットワークジッタで変動する最大値（OVER_ADJUST）が定まる。なお、図１０の出力開始位置（MAX_SAVE）とは、図７で説明した最大のジッタ分の時間に対応するバッファ量である。
【００７７】
図１１は、データ出力手段３６が有する第１補正手段４５の補正処理１を示したフローチャートである。
【００７８】
第１補正手段４５は、データ蓄積手段３３のバッファ量が上限の閾値OVER_ADJUSTを上回ったときに起動される。第１補正手段４５は、オーバーランを回避するために、クロックカウント手段３５の動作速度を速くする処理を実行する。
【００７９】
図１１を参照して、第１補正手段４５が起動されると、ステップＳ９０２において、補正処理１が継続中か否かの判定を行なう。補正処理１が継続中でなければ（OVER_REVISE=FALSE）、補正処理１がこれから開始されると判断し、ステップＳ９０４に進む。
【００８０】
ステップＳ９０４では、クロックの補正値buf_adjustに所定値ΔＦを代入して初期化する。buf_adjustは、クロックカウント処理手段４２で参照される値で、１秒あたりに補正するクロック数を表わす。すなわち、カウント手段３５が出力するカウント情報ＣＯＵＮＴは、クロック手段３４が出力するクロックに対して１秒あたりbuf_adjust分だけカウント調整された値となる。データ出力手段３６は、カウント手段３５のカウント情報ＣＯＵＮＴを元にデコーダ３７に対してデータを出力する。そのため、buf_adjustから現在のデータ出力速度を取得可能である。
【００８１】
デコーダ３７は、データ出力手段３６のデータ出力速度に追随して、クロック手段３９から出力されるクロックの動作速度を調整する。データ出力速度の変化に対して、クロック手段３９の動作速度が収束するまでにはある程度の時間が必要となる。したがって、buf_adjustが変更されてから所定の時間経過後にbuf_adjustの値を評価することにより、クロック手段３９の調整後の動作速度を推測することが可能となる。
【００８２】
ステップＳ９０６では、補正処理１の実行ループ回数を設定する。ステップＳ９０６においては、補正処理１が開始された直後であるため、実行ループ回数を１に設定する。ステップＳ９０８では、次に補正値buf_adjustを変更する時刻（例えば、１００ｍ秒後）を設定する。
【００８３】
これにより、クロック手段３９の動作速度が収束後に、次回の補正値を変更することが可能となる。その結果、クロック手段３９の動作速度に対して、データ出力手段３６のデータ出力速度を所定の範囲内で変動させる制御が可能となる。ステップＳ９１０では、補正処理１が継続中であることを示すため、OVER_REVISE=TRUEにフラグを設定し、処理を終了する。
【００８４】
一方、ステップＳ９０２において補正処理１が継続中であれば（OVER_REVISE=TRUE）、ステップＳ９１２において、次の補正実行時間になったか否かを判定する。次の補正実行時刻になっていなければ、処理を終了する。次の補正実行時刻になっていれば、ステップＳ９１４において、クロックの補正値buf_adjustを所定値ΔＦだけ増加させる。
【００８５】
ステップＳ９１６では、補正処理１の実行ループ回数をインクリメントする。次に、ステップＳ９１８において、当該実行ループ回数ｎが補正処理１の規定の補正回数Ｎに到達しているかどうかを判定する。規定の補正回数Ｎに到達していれば、ステップＳ９２０において、OVER_REVISE=FALSEにフラグを設定し、補正処理１を終了する。規定の補正回数Ｎに到達していなければ、ステップＳ９２２において、次の補正処理１の実行時間を設定し、処理を終了する。
【００８６】
図１２は、データ出力手段３６が有する第２補正手段４６の補正処理２を示したフローチャートである。
【００８７】
第２補正手段４６は、データ蓄積手段３３のバッファ量が下限の閾値UNDER_ADJUSTを下回ったときに起動される。第２補正手段４６は、アンダーランを回避するために、クロックカウント手段３５の動作速度を遅くする処理を実行する。
【００８８】
図１２を参照して、第２補正手段４６が起動されると、ステップＳ１００２において、補正処理２が継続中か否かの判定を行なう。補正処理２が継続中でなければ（UNDER_REVISE=FALSE）、補正処理２がこれから開始されると判断し、ステップＳ１００４に進む。
【００８９】
ステップＳ１００４では、クロックの補正値buf_adjustに所定値−ΔＦを代入して初期化する。buf_adjustは、クロックカウント処理手段４２で参照される値で、１秒あたりに補正するクロック数を表わす。ステップＳ１００６では、補正処理２が開始された直後であることから、実行ループ回数を１に設定する。ステップＳ１００８では、次に補正値buf_adjustを変更する時刻（例えば、１００ｍ秒後）を設定する。
【００９０】
これにより、所定の時間周期で単位時間当たりのクロックの補正値を変更することが可能となる。その結果、所定の回数に分けて段階的にクロック手段３９の動作速度を変更する制御が可能となる。ステップＳ１０１０では、補正処理２が継続中であることを示すため、UNDER_REVISE=TRUEにフラグを設定し、処理を終了する。
【００９１】
一方、ステップＳ１００２において補正処理２が継続中であれば（UNDER_REVISE=TRUE）、ステップＳ１０１２において、次の補正実行時間になったか否かを判定する。次の補正実行時刻になっていなければ、処理を終了する。次の補正実行時刻になっていれば、ステップＳ１０１４において、クロックの補正値buf_adjustを所定値ΔＦだけ減少させる。
【００９２】
ステップＳ１０１６では、補正処理２の実行ループ回数をインクリメントする。次に、ステップＳ１０１８において、当該実行ループ回数ｎが補正処理２の規定の補正回数Ｎに到達しているかどうかを判定する。規定の補正回数Ｎに到達していれば、ステップＳ１０２０において、UNDER_REVISE=FALSEにフラグを設定し、補正処理２を終了する。規定の補正回数Ｎに到達していなければ、ステップＳ１０２２において、次の補正処理２の実行時間を設定し、処理を終了する。
【００９３】
クロック手段３９の動作周波数が２７ＭＨｚ（２７×１０6Ｈｚ）の場合、クロックを例えば１００ｍ秒（０．１秒）ごとに５００ｎ秒（５００×１０-9秒）変動させるとすると、クロックの補正値ΔＦは、
ΔＦ＝２７×１０6×５００×１０-9／０．１＝１３５（Ｈｚ）
と算出される。また、送信クロックの誤差がＭＰＥＧ２で規定されている２７ＭＨｚ±３０ｐｐｍであるとすると、クロック手段３９の動作周波数は、一番速い場合で（２７Ｍ＋８１０）Ｈｚ、一番遅い場合で（２７Ｍ−８１０）Ｈｚとなる。そのため、クロック手段３９の動作周波数の差は、最大で１６２０Ｈｚとなる。
【００９４】
上記のクロック手段３９の動作周波数の差を、クロックの補正値ΔＦで分割することになる。したがって、規定の補正回数Ｎを例えばＮ＝１６２０／１３５＝１２と設定しておけば、この発明の実施の形態の環境下において、受信装置１２は問題なく動作することになる。
【００９５】
図１３は、この発明の実施の形態による受信装置１２の機能を実現するためのコンピュータシステムの一例を示した図である。
【００９６】
図１３に示すコンピュータシステムは、コンピュータ本体７１と、ディスプレイ装置７２と、ＦＤ（Flexible Disk）７４が装着されるＦＤドライブ７３と、キーボード７５と、マウス７６と、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）７８が装着されたＣＤ−ＲＯＭ装置７７と、ネットワーク通信装置７９とを含む。
【００９７】
受信装置１２の機能を実現するプログラム（以下、制御プログラム）は、ＦＤ７４またはＣＤ−ＲＯＭ７８等の記録媒体によって供給される。制御プログラムがコンピュータ本体７１によって実行されることにより、上述の受信処理が行なわれる。また、制御プログラムは、他のコンピュータより通信回線およびネットワーク通信装置７９を経由し、コンピュータ本体７１に供給されてもよい。
【００９８】
なお、記録媒体は、ＦＤ７４、ＣＤ−ＲＯＭ７８に限定されるものではなく、磁気テープ、ＭＯ（Magnetic Optical disk）、ＭＤ（Mini Disc）、ＤＶＤ（Digital Versatile Disc）、ＩＣ（Integrated Circuit）カードなどであってもよい。
【００９９】
図１４は、この発明の実施の形態による受信装置１２のデコーダ３７へのデータ出力速度の変動を示した図である。
【０１００】
図１４に示すように、この発明の実施の形態による受信装置１２では、デコーダ３７へのデータ出力速度の１回の変更幅に上限を設けている。また、前のレベルのデータ出力速度から判断して次のデータ出力速度のレベルが決定されている。
【０１０１】
当該出力速度の変更を複数回繰り返すことによって、受信装置１２の受信クロックに基づく送信速度よりも速く（または遅く）なるようにデコーダ３７へのデータ出力速度を制御している。なお、デコーダ３７へのデータ出力速度の具体的な制御方法は、図５〜８、１１，１２の各フローチャートで説明した通りである。
【０１０２】
上記のようにデコーダ３７へのデータ出力速度を制御することにより、デコーダの要求から外れるデータ出力速度の変化をなくすことができる。その結果、画質の劣化等によるデコーダの動作異常を防ぐことができる。また、局所的な周波数の変動に制限があるデコーダにおいても、バッファリング制御が適用可能になる。なお、この発明の実施の形態においては、１回の補正におけるクロックの補正値がΔＦに固定される例を示したが、ΔＦは現在のデコーダの動作速度から判断して変動させるようにしてもよい。
【０１０３】
以上のように、この発明の実施の形態によれば、デコーダへのデータ出力速度の１回の変更幅に上限を設け、前のレベルのデータ出力速度から判断して次のデータ出力速度のレベルを決定することにより、デコーダの要求から外れるデータ出力速度の変化をなくすことができ、画質の劣化等によるデコーダの動作異常を防ぐことができる。
【０１０４】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１０５】
【図１】この発明の実施の形態による受信装置１２が動作するネットワークシステムの構成を概略的に示した図である。
【図２】図１に示した送信装置１１および受信装置１２の具体的な構成を示したブロック図である。
【図３】処理手段２５によって複数のヘッダが付加されたＭＰＥＧ２データのフレームフォーマットの一例を示した図である。
【図４】図２に示した受信処理部３１の具体的な処理機能を示した機能ブロック図である。
【図５】データ蓄積手段３３が有するデータ受信処理手段４１の受信処理動作を示したフローチャートである。
【図６】カウント手段３５が有するクロックカウント処理手段４２のカウント処理動作を示したフローチャートである。
【図７】データ出力手段３６が有するバッファリング処理手段４３のバッファリング動作を示したフローチャートである。
【図８】データ出力手段３６が有するデータ出力処理手段４４の受信処理動作を示したフローチャートである。
【図９】データ蓄積手段３３のバッファにおける書き込み位置および読み出し位置を示した模式図である。
【図１０】データ蓄積手段３３のバッファにおける最大バッファ量に対する各種の所定値を示した図である。
【図１１】データ出力手段３６が有する第１補正手段４５の補正処理１を示したフローチャートである。
【図１２】データ出力手段３６が有する第２補正手段４６の補正処理２を示したフローチャートである。
【図１３】この発明の実施の形態による受信装置１２の機能を実現するためのコンピュータシステムの一例を示した図である。
【図１４】この発明の実施の形態による受信装置１２のデコーダ３７へのデータ出力速度の変動を示した図である。
【図１５】デジタルデータのリアルタイムストリーム伝送で一般的に用いられているＭＰＥＧ２−ＴＳシステムの概略的な構成を示した図である。
【図１６】アダプティブクロック法を用いた場合のＭＰＥＧ２−ＴＳシステムの概略的な構成を示した図である。
【図１７】図１６のアダプティブクロック法を用いた場合におけるデコーダ３１０へのデータ出力速度の変動を示した図である。
【符号の説明】
【０１０６】
１０  通信ネットワーク、１１，２００  送信装置、１２，３００，３０１  受信装置、１３，１４  機器、２１，２０１  エンコーダ、２２，３４，３９  クロック手段、２３  符号化手段、２４  送信処理部、２５  処理手段、２６，３２  ネットワーク接続手段、３１  受信処理部、３３  データ蓄積手段、３５  カウント手段、３６  データ出力手段、３７，３１０  デコーダ、３８  復号化手段、４１  データ受信処理手段、４２  クロックカウント処理手段、４３  バッファリング処理手段、４４  データ出力処理手段、４５  第１補正手段、４６  第２補正手段、７１  コンピュータ本体、７２  ディスプレイ装置、７３  ＦＤドライブ、７４  ＦＤ、７５  キーボード、７６  マウス、７７  ＣＤ−ＲＯＭ装置、７８  ＣＤ−ＲＯＭ、７９  ネットワーク通信装置、１００  通信網、２０２  送信バッファ、２１０  送信クロック、３１１  ＰＬＬ回路、３１２  デコーダクロック、３２０  受信バッファ、３３０  受信クロック。
【図１】
2006042273.tif 000003
【図２】
2006042273.tif 000004
【図３】
2006042273.tif 000005
【図４】
2006042273.tif 000006
【図５】
2006042273.tif 000007
【図６】
2006042273.tif 000008
【図７】
2006042273.tif 000009
【図８】
2006042273.tif 000010
【図９】
2006042273.tif 000011
【図１０】
2006042273.tif 000012
【図１１】
2006042273.tif 000013
【図１２】
2006042273.tif 000014
【図１３】
2006042273.tif 000015
【図１４】
2006042273.tif 000016
【図１５】
2006042273.tif 000017
【図１６】
2006042273.tif 000018
【図１７】
2006042273.tif 000019