説明

受信処理装置、受信装置、制御プログラム、および制御プログラムを記録した記録媒体

【課題】 デコーダのような処理手段の動作速度に応じてデータ出力速度を柔軟に変更することが可能な受信処理装置、受信装置、制御プログラム、および制御プログラムを記録した記録媒体を提供する。
【解決手段】 データ蓄積手段33は、ネットワーク接続手段32にて受信したデータをデコーダ37に出力する前に一時的に蓄積する。クロック手段34は、デコーダ37へのデータ出力時間を決定するための基準として用いるクロックを発生する。カウント手段35は、クロック手段34のクロック情報をカウントし、所定の規則に従って調整したカウント値をデータ出力手段36に出力する。データ出力手段36は、カウント手段35でカウントされるカウント値と受信データに含まれる時刻情報とに基づいて、データ蓄積手段33で蓄積されたデータをデコーダ37に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、受信処理装置、受信装置、制御プログラム、および制御プログラムを記録した記録媒体に関し、特に、IPデータ通信網のようなネットワークにおいて用いられる受信処理装置、受信装置、制御プログラム、および制御プログラムを記録した記録媒体に関する。
【背景技術】
【0002】
近年、ホームネットワークでAV(Audio Visual)データなどのリアルタイムデータをIP(Internet Protocol)パケットにより転送する技術が広がりつつある。IPパケットで転送する場合、エンコーダ(符号化回路)とデコーダ(復号化回路)とのクロックのズレにより、単位時間当たりに伝送されるデータ量と再生されるデータ量との間に違いが生じる。これにより、画質の劣化等の問題を引き起こす可能性があった。
【0003】
図15は、デジタルデータのリアルタイムストリーム伝送で一般的に用いられているMPEG2−TS(Moving Picture Experts Group 2-Transport Stream)システムの概略的な構成を示した図である。
【0004】
図15に示すように、通信網100に対して、送信装置200および受信装置300が接続されている。通信網100は、遅延の変動(ジッタ)が少ないものとする。送信装置200は、エンコーダ201と、送信バッファ202とを含む。受信装置300は、PLL(Phase Locked Loop)回路311を有するデコーダ310を含む。
【0005】
送信装置200は、送信クロック210からの送信クロック信号CLKsに合わせてデータ信号DT1を出力する。データ信号DT1は、通信網100を介して受信装置300に転送される。データ信号DT1は、PCR(Program Clock Reference)信号と呼ばれる同期信号を含んでいる。
【0006】
受信装置300は、PCR信号を含むデータ信号DT1を受けて、デコーダ310の内部で、PCR信号に含まれる値およびPCR信号が入力された時間の情報を抽出する。PLL回路311は、これらのPCR情報を元に、送信クロック信号CLKsをデコーダクロック312のクロック信号として再現する。これにより、送信側クロックと受信側クロックとのズレをなくすことができる。
【0007】
しかし、上記のPCR情報を用いた同期方式は、通信網におけるジッタがある程度の範囲内に収まっているという条件の下で有効な技術である。そのため、IPデータ通信網のようなネットワークにおいては有効ではない。上記の問題を解決するために、アダプティブクロック法と呼ばれる方法が用いられている(たとえば、特許文献1参照)。
【0008】
図16は、アダプティブクロック法を用いた場合のMPEG2−TSシステムの概略的な構成を示した図である。
【0009】
図16に示すように、通信網101に対して、送信装置200および受信装置301が接続されている。送信装置200は、図15と同じく、エンコーダ201と、送信バッファ202とを含む。受信装置301は、PLL回路311を有するデコーダ310と、受信バッファ320とを含む。
【0010】
送信装置200は、送信クロック210からの送信クロック信号CLKsに合わせてデータ信号DT2を出力する。データ信号DT2は、通信網101を介して受信装置301に転送される。
【0011】
受信装置301は、データ信号DT2をデコーダ301で受ける前に、受信バッファ320において一旦バッファリングする。受信バッファ320は、受信クロック330からの受信クロック信号CLKrに合わせて、バッファリングされたデータ信号DT2をデコーダ310に出力する。なお、受信クロック信号CLKrとデコーダクロック312のクロック信号とは、一般に別クロックである。
【0012】
上記の構成により、デコーダクロック312のクロック信号は、受信クロック信号CLKrに同期する。そのため、図15の場合と異なり、送信クロック信号CLKsと受信クロック信号CLKrとは一般に異なっている。その結果、受信バッファ320内のデータは、長期的に見ると、増加または減少していく。
【0013】
このような課題に対処するため、受信バッファ320は、データ信号DT2のバッファ量に応じて、デコーダ310へのデータ出力速度すなわち受信クロック信号CLKrの周波数を変動させている。
【0014】
具体的には、バッファ量が上限閾値を上回った場合、データ出力速度を上げることで、バッファ溢れ(オーバーラン)現象を回避している。また、バッファ量が下限閾値を下回った場合、データ出力速度を下げることで、データが足りなくなる(アンダーラン)現象を回避している。
【特許文献1】特開2002−165148号公報
【発明の開示】
【発明が解決しようとする課題】
【0015】
従来の送受信システムは、デコーダの動作速度がどのような状況であっても、データ出力速度をある決まった値に切り替えるような処理を行なっていた。
【0016】
図17は、図16のアダプティブクロック法を用いた場合におけるデコーダ310へのデータ出力速度の変動を示した図である。
【0017】
図17に示すように、受信バッファ320のバッファ量が上限閾値を上回ったとき、デコーダ310へのデータ出力速度をハイレベルとする。当該ハイレベル時のデータ出力速度は、送信クロック信号CLKsに基づく送信速度よりも必ず速くなるように設定される。逆に、受信バッファ320のバッファ量が下限閾値を上回ったとき、デコーダ310へのデータ出力速度をローレベルとする。当該ローレベル時のデータ出力速度は、送信クロック信号CLKsに基づく送信速度よりも必ず遅くなるように設定される。
【0018】
上記のように、デコーダへのデータ出力速度をハイとローとの2段階で切り替えた場合、当該切り替えのタイミングにおいてデータ出力速度に大幅な変化が生じる。そのため、大きな入力の変化に迅速に追随できないデコーダには適用できない可能性があった。
【0019】
この発明は、上記の問題点を解決するためになされたものであって、その目的は、デコーダのような処理手段の動作速度に応じてデータ出力速度を柔軟に変更することが可能な受信処理装置、受信装置、制御プログラム、および制御プログラムを記録した記録媒体を提供することである。
【課題を解決するための手段】
【0020】
この発明は、通信網を介してデータを受信し、受信データを処理手段において処理する受信処理装置であって、受信データを蓄積するデータ蓄積手段と、データ蓄積手段から出力される受信データを処理手段に出力処理するデータ出力手段とを備える。データ出力手段は、処理手段のデータ処理速度に応じて、処理手段に出力する受信データの出力速度を変化させる。
【0021】
好ましくは、データ出力手段の動作を制御するクロック手段をさらに備える。処理手段のデータ処理速度は、クロック手段の動作周波数と、処理手段を制御するクロック周波数との差に基づいて決定される。
【0022】
好ましくは、クロック手段のクロック数をカウントするカウント手段をさらに備える。データ出力手段は、処理手段の処理速度を補正する受信データのタイムスタンプの値とタイムスタンプが処理手段に入力された時のカウント手段のカウント値とに基づいて、処理手段に出力する受信データの出力速度を変化させる。
【0023】
好ましくは、データ出力手段は、所定の時間間隔ごとに、処理手段に出力する受信データの出力速度を変化させる。
【0024】
好ましくは、データ出力手段は、処理手段の処理速度が所定の速度に達するまで、処理手段に出力する受信データの出力速度を変化させる。
【0025】
好ましくは、データ出力手段は、データ蓄積手段に蓄積されている受信データが所定量に達したとき、処理手段に出力する受信データの出力速度を変化させる。
【0026】
好ましくは、データ出力手段は、データ蓄積手段に蓄積されている受信データが所定の上限値に達したとき、処理手段に出力する受信データの出力速度が増加するように制御する第1の補正処理手段と、データ蓄積手段に蓄積されている受信データが所定の下限値に達したとき、処理手段に出力する受信データの出力速度が減少するように制御する第2の補正処理手段とを含む。
【0027】
この発明の他の局面によれば、通信網を介してデータを受信する受信装置であって、受信データを受信処理する受信処理部と、受信処理部から出力される受信データを復号化処理するデコーダとを備える。受信処理部は、受信データを蓄積するデータ蓄積手段と、データ蓄積手段から出力される受信データをデコーダに出力処理するデータ出力手段とを含む。データ出力手段は、デコーダのデータ処理速度に応じて、デコーダに出力する受信データの出力速度を変化させる。
【0028】
この発明の他の局面によれば、通信網を介してデータを受信し、受信データを処理手段において処理する制御プログラムであって、受信データを蓄積するステップと、蓄積された受信データを処理手段に出力するステップと、処理手段のデータ処理速度に応じて、処理手段に出力する受信データの出力速度を変化させるステップとをコンピュータに実行させる。
【0029】
この発明の他の局面によれば、通信網を介してデータを受信し、受信データを処理手段において処理する制御プログラムを記録したコンピュータ読み取り可能な記録媒体であって、受信データを蓄積するステップと、蓄積された受信データを処理手段に出力するステップと、処理手段のデータ処理速度に応じて、処理手段に出力する受信データの出力速度を変化させるステップとをコンピュータに実行させる。
【発明の効果】
【0030】
この発明によれば、デコーダのような処理手段の動作速度に応じてデータ出力速度を柔軟に変更することが可能となる。
【発明を実施するための最良の形態】
【0031】
以下、この発明の実施の形態について図面を参照して詳しく説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【0032】
この発明の実施の形態では、遅延変動が大きな通信網を経由するリアルタイム通信において、バッファのオーバラン/アンダーランを回避するために、バッファリングによる出力速度の制御(例えば、アダプティブクロック法)を行なう場合について考える。そのような場合に、データ出力速度の変化による画質等への影響を軽減することが可能な受信装置について以下に説明する。
【0033】
この発明の実施の形態では、IP(Internet Protocol)ネットワークを通じてRTP(Real Time Protocol)を用いたMPEG2のリアルタイムストリーム伝送における例について述べる。ただし、本発明はこれに限定されるものではない。
【0034】
図1は、この発明の実施の形態による受信装置12が動作するネットワークシステムの構成を概略的に示した図である。
【0035】
ネットワークシステムとは、例えば、テレビ、ハードディスクレコーダ(以下、HDRと称す)およびデジタルチューナーなどの様々な家庭内の機器が接続されたネットワークである。ネットワークシステムでは、例えば、IPのようなネットワークプロトコルを用いて通信が行われる。
【0036】
図1に示すように、通信ネットワーク10に対して、送信装置11と、受信装置12と、機器13,14とが接続されている。送信装置11は、通信ネットワーク10を介して受信装置12との間でリアルタイムストリーム伝送を行なう。送信装置11としては、例えば、通信機能を備えたビデオ、HDRまたはデジタルチューナーなどが考えられる。受信装置12は、通信ネットワーク10を介して送信装置11から送信されるリアルタイムデータを受信する。受信装置12としては、例えば、通信機能を備えたテレビまたは液晶プロジェクタなどが考えられる。機器13,14は、通信ネットワーク10に接続されるその他の機器である。
【0037】
図2は、図1に示した送信装置11および受信装置12の具体的な構成を示したブロック図である。
【0038】
図2を参照して、送信装置11は、エンコーダ21と、送信処理部24とを備える。エンコーダ21は、所定の入力に対して、MPEG2で規定されている符号化規則に従い符号化し、MPEG2のデータを出力する。エンコーダ21は、クロック手段22と、符号化手段23とを含む。クロック手段22は、エンコード時間をカウントする。符号化手段23は、入力データを符号化する。
【0039】
送信処理部24は、エンコーダ21から出力されたデータをネットワーク上で伝送可能なフォーマットにし、通信ネットワークへ出力する。送信処理部24は、処理手段25と、ネットワーク接続手段26とを含む。処理手段25は、エンコーダ21から出力されるMPEG2データに対して、複数のヘッダを付加する。ネットワーク接続手段26は、処理手段25で生成されたIPパケットを通信ネットワークへ出力する。ネットワーク接続手段26は、例えば、イーサーネット(登録商標)カードである。
【0040】
図3は、処理手段25によって複数のヘッダが付加されたMPEG2データのフレームフォーマットの一例を示した図である。
【0041】
図3に示すように、MPEG2データには、一例として、IPヘッダ、TCP(Transmission Control Protocol)ヘッダ、およびRTPヘッダが付加されている。RTPヘッダは、シーケンス番号、タイムスタンプ、およびその他の各種信号を含んでいる。タイムスタンプは、受信装置12のデコーダ37への出力時間を表わす。
【0042】
図2に戻って、受信装置12は、送信装置11からのリアルタイムストリームデータを受信する。受信装置12は、受信処理部31と、デコーダ37とを備える。受信処理部31は、通信ネットワークから伝送されたデータを受信する。受信処理部31は、ネットワーク接続手段32と、データ蓄積手段33と、クロック手段34と、カウント手段35と、データ出力手段36とを含む。
【0043】
ネットワーク接続手段32は、通信ネットワークと受信装置12とを接続する手段であって、送信装置12から送信されたデータを受信する。ネットワーク接続手段32は、例えば、イーサーネット(登録商標)カードである。データ蓄積手段33は、ネットワーク接続手段32にて受信したデータをデコーダ37に出力する前に一時的に蓄積するバッファと当該バッファを制御する制御手段とを含む。
【0044】
クロック手段34は、デコーダ37へのデータ出力時間を決定するための基準として用いるクロックを発生する。カウント手段35は、クロック手段34のクロック情報をカウントし、所定の規則に従って調整したカウント値をデータ出力手段36に出力する。データ出力手段36は、カウント手段35でカウントされるカウント値と受信データに含まれる時刻情報とに基づいて、データ蓄積手段33で蓄積されたデータをデコーダ37に出力する。
【0045】
デコーダ37は、受信したデータの復号化を行なう。デコーダ37は、復号化手段38と、クロック手段39とを含む。復号化手段38は、データ出力手段36から出力されたMPEG2データの復号化を行なう。クロック手段39は、データ出力手段36から出力されたデータに含まれる時刻情報と当該データがデコーダ37に入力されたタイミングとから受信したデータの再生を行なうためのクロック情報を生成し、それを復号化手段38に出力する。
【0046】
図4は、図2に示した受信処理部31の具体的な処理機能を示した機能ブロック図である。
【0047】
図4を参照して、受信処理部31は、図2で説明したように、ネットワーク接続手段32と、データ蓄積手段33と、クロック手段34と、カウント手段35と、データ出力手段36とを含む。データ蓄積手段33は、データ受信処理手段41を有する。カウント手段35は、クロックカウント処理手段42を有する。データ出力手段36は、バッファリング処理手段43と、データ出力処理手段44と、第1補正手段45と、第2補正手段46とを有する。
【0048】
図4に示すように、図2で説明した受信処理部31の各手段は、その内部にそれぞれの手段を機能させるための処理機能手段を有しており、それぞれが協調して動作することにより受信処理が実現されている。
【0049】
受信処理部21が起動されると、データ受信処理手段41、クロックカウント処理手段42、およびバッファリング処理手段43が起動される。データ受信処理手段41およびクロックカウント処理手段42は常時実行され、バッファリング処理手段43は、所定の条件になればデータ出力処理手段44を起動する。また、データ出力処理手段44は、所定の条件になれば、第1補正手段45および第2補正手段46を起動する。
【0050】
次に、受信装置12がリアルタイムデータを受信する際の詳細な動作についてフローチャートを用いて順次説明する。
【0051】
図5は、データ蓄積手段33が有するデータ受信処理手段41の受信処理動作を示したフローチャートである。
【0052】
図5を参照して、データ受信処理手段41が起動されると、ステップS502において、ネットワーク接続手段32からデータ(次のパケット)を受信したか否かを判定する。次のパケットを受信していれば、ステップS504に進む。次のパケットを受信していなければ、再度ステップS502の判定処理を行なう。ステップS502の判定処理は、次のパケットを受信するまで続けられる。
【0053】
ステップS504では、受信したデータをデータ蓄積手段33のバッファへ書き込む。当該書き込みが完了したら、ステップS506に進む。ステップS506では、バッファの書き込み位置(buffer_tail)を1つ進める(図9参照)と共に、受信したデータのRTPヘッダに含まれるタイムスタンプ値を変数ta_rtp_tsに書き込む。ステップS506が終了すると、ステップS502からの一連の処理を繰り返す。
【0054】
図6は、カウント手段35が有するクロックカウント処理手段42のカウント処理動作を示したフローチャートである。
【0055】
図6を参照して、クロックカウント処理手段42が起動されると、ステップS602において、クロック手段34からのクロック入力を取得する。クロック入力を取得したら、ステップS604において、クロック手段34のクロックをカウントする変数C0をインクリメントする。次に、ステップS606において、クロックの補正値buf_adjustがゼロか否かを判定する。
【0056】
buf_adjustがゼロの場合は、クロックの補正が行なわれない状態であり、ステップS616において、カウント情報COUNTをインクリメントした後、ステップS602の処理に戻る。buf_adjustがゼロでない場合は、補正処理1または補正処理2が実行中であり、カウント情報COUNTの補正を実行する。具体的には、ステップS608において、クロックの補正周期Tの算出を行う。
【0057】
クロックの補正値buf_adjustは、1秒あたりに補正するクロックの数である。そのため、基準クロックが1秒あたりにクロックアップする数Kに対して、T=K/buf_adjustが補正を行う周期となる。クロックの補正は、クロック手段34からの入力がT回行われるにつき1回行なわれる。
【0058】
ステップS610では、基準クロックのカウント値C0に対して補正する時間になったか否かを判定する。補正する時間になっていない場合は、ステップS616において、カウント情報COUNTをインクリメントした後、ステップS602の処理に戻る。
【0059】
補正する時刻になった場合は、ステップS612において、クロックの補正周期Tの値がゼロより大きいか小さいかを判定する。これにより、カウントアップの速度を早くするのか遅くするのかを判定する。
【0060】
クロックの補正周期Tの値がゼロより大きい時は、カウントアップの速度を遅くすると判断し、カウント情報COUNTの値をインクリメントせずに、ステップS602の処理に戻る。クロックの補正周期Tの値がゼロより小さいときは、カウントアップの速度を早くすると判断し、ステップS614において、カウント情報COUNTの値を2インクリメントし、ステップS602の処理に戻る。
【0061】
図7は、データ出力手段36が有するバッファリング処理手段43のバッファリング動作を示したフローチャートである。
【0062】
図7を参照して、バッファリング処理手段43が起動されると、ステップS702において、データ蓄積手段33内のバッファに最初のパケットが書き込まれたか否かを判定する。最初のパケットが書き込まれていたら、ステップS704において、カウント手段35から取得した現在のカウント値を変数fr_rtp_tiに書き込む。変数fr_rtp_tiを書き込んだ後、ステップS706において、最初のパケットのRTPヘッダに含まれるタイムスタンプ値を変数fr_rtp_tsおよび変数he_rtp_tsに書き込む。その後、ステップS708において、出力開始時間の算出を行なう。
【0063】
出力開始時間(start_ti)は、最初のパケットを受信した時刻(fr_rtp_ti)から所定の時間(MAX_SAVE;図10参照)経過後となるように設定される。MAX_SAVEは、通常ネットワーク上で想定される最大のジッタ分の時間(例えば、300m秒)に設定される。ステップS702で最初のパケットが書き込まれていないか、ステップS708の処理が完了したら、ステップS710に進む。
【0064】
ステップS710では、カウント手段35から取得したカウント値が出力開始時間(start_ti)を越えているかどうかを判定する。カウント値が出力開始時間を超えていれば、バッファリング処理を終了し、データ出力処理へ移る。カウント値が出力開始時間を超えていなければ、ステップS702に戻り、一連の処理を繰り返す。なお、1度ステップS704〜S708の処理を完了した後は、最初のパケットの確認は完了したことになるので、ステップS702での判定処理は常にNOとなる。
【0065】
図8は、データ出力手段36が有するデータ出力処理手段44の受信処理動作を示したフローチャートである。
【0066】
図8を参照して、データ出力処理手段44が起動されると、ステップS802において、データ蓄積手段33におけるバッファの先頭位置(buffer_headの位置にあるパケット)を当該バッファから取り出だす。次に、ステップS804において、取り出したパケットのRTPのタイムスタンプと、カウント手段35から取得したカウント値とを比較し、取り出したパケットが出力開始時間になったか否かを判定する。
【0067】
取り出したパケットが出力開始時間になっていたら、ステップS806において、取り出したパケットをデコーダ37に書き込む。取り出したパケットが出力開始時間になっていなければ、出力開始時間になるまで、ステップS804の処理を繰り返す。
【0068】
ステップS806でパケットをデコーダ37に書き込んだら、ステップS808において、バッファからの読み出し位置(buffer_head)をインクリメントし(図9参照)、先頭のパケットのデータのタイムスタンプ値を変数he_rtp_tsに書き込む。次に、ステップS810において、第2補正手段46による補正処理2が継続中か否かの判定を行なう。
【0069】
補正処理2が継続中であれば(UNDER_REVISE=TRUE)、ステップS820において、補正処理2を実行する。補正処理2が継続中でなければ(UNDER_REVISE=FALSE)、ステップS812において、現在のバッファ量が下限の閾値(UNDER_ADJUST;図10参照)より少なくなっているか否かを判定する。
【0070】
現在のバッファ量が下限の閾値より少なくなっている場合、ステップS820において、アンダーランを回避するために補正処理2を実行する。現在のバッファ量が下限の閾値より少なくなっていない場合は、ステップS814に進み、第1補正手段45による補正処理1が継続中か否かを判定する。
【0071】
補正処理1が継続中であれば(OVER_REVISE=TRUE)、ステップS818において、補正処理1を実行する。補正処理1が継続中でなければ(OVER_REVISE=FALSE)、ステップS816において、現在のバッファ量が上限の閾値(OVER_ADJUST;図10参照)より大きくなっているか否かを判定する。
【0072】
現在のバッファ量が上限の閾値より大きくなっている場合、ステップS818において、オーバーランを回避するために補正処理1を実行する。現在のバッファ量が上限の閾値より大きくなっていない場合は、ステップS802に戻って処理を継続する。また、ステップS818の補正処理1およびステップS820の補正処理2が終了後も、ステップS802に戻って処理を継続する。
【0073】
図9は、データ蓄積手段33のバッファにおける書き込み位置(buffer_tail)および読み出し位置(buffer_head)を示した模式図である。
【0074】
図5で説明したように、データ蓄積手段33のバッファに対する受信データの書き込みが完了したのち、当該バッファの書き込み位置(buffer_tail)が1つ進められる。また、図8で説明したように、受信データから取り出したパケットをデコーダ37に書き込んだのち、データ蓄積手段33のバッファからの読み出し位置(buffer_head)がインクリメントされる。
【0075】
図10は、データ蓄積手段33のバッファにおける最大バッファ量に対する各種の所定値を示した図である。
【0076】
図10に示すように、最大バッファ量に対して、出力開始位置(MAX_SAVE)、ネットワークジッタで変動する最小値(UNDER_ADJUST)、およびネットワークジッタで変動する最大値(OVER_ADJUST)が定まる。なお、図10の出力開始位置(MAX_SAVE)とは、図7で説明した最大のジッタ分の時間に対応するバッファ量である。
【0077】
図11は、データ出力手段36が有する第1補正手段45の補正処理1を示したフローチャートである。
【0078】
第1補正手段45は、データ蓄積手段33のバッファ量が上限の閾値OVER_ADJUSTを上回ったときに起動される。第1補正手段45は、オーバーランを回避するために、クロックカウント手段35の動作速度を速くする処理を実行する。
【0079】
図11を参照して、第1補正手段45が起動されると、ステップS902において、補正処理1が継続中か否かの判定を行なう。補正処理1が継続中でなければ(OVER_REVISE=FALSE)、補正処理1がこれから開始されると判断し、ステップS904に進む。
【0080】
ステップS904では、クロックの補正値buf_adjustに所定値ΔFを代入して初期化する。buf_adjustは、クロックカウント処理手段42で参照される値で、1秒あたりに補正するクロック数を表わす。すなわち、カウント手段35が出力するカウント情報COUNTは、クロック手段34が出力するクロックに対して1秒あたりbuf_adjust分だけカウント調整された値となる。データ出力手段36は、カウント手段35のカウント情報COUNTを元にデコーダ37に対してデータを出力する。そのため、buf_adjustから現在のデータ出力速度を取得可能である。
【0081】
デコーダ37は、データ出力手段36のデータ出力速度に追随して、クロック手段39から出力されるクロックの動作速度を調整する。データ出力速度の変化に対して、クロック手段39の動作速度が収束するまでにはある程度の時間が必要となる。したがって、buf_adjustが変更されてから所定の時間経過後にbuf_adjustの値を評価することにより、クロック手段39の調整後の動作速度を推測することが可能となる。
【0082】
ステップS906では、補正処理1の実行ループ回数を設定する。ステップS906においては、補正処理1が開始された直後であるため、実行ループ回数を1に設定する。ステップS908では、次に補正値buf_adjustを変更する時刻(例えば、100m秒後)を設定する。
【0083】
これにより、クロック手段39の動作速度が収束後に、次回の補正値を変更することが可能となる。その結果、クロック手段39の動作速度に対して、データ出力手段36のデータ出力速度を所定の範囲内で変動させる制御が可能となる。ステップS910では、補正処理1が継続中であることを示すため、OVER_REVISE=TRUEにフラグを設定し、処理を終了する。
【0084】
一方、ステップS902において補正処理1が継続中であれば(OVER_REVISE=TRUE)、ステップS912において、次の補正実行時間になったか否かを判定する。次の補正実行時刻になっていなければ、処理を終了する。次の補正実行時刻になっていれば、ステップS914において、クロックの補正値buf_adjustを所定値ΔFだけ増加させる。
【0085】
ステップS916では、補正処理1の実行ループ回数をインクリメントする。次に、ステップS918において、当該実行ループ回数nが補正処理1の規定の補正回数Nに到達しているかどうかを判定する。規定の補正回数Nに到達していれば、ステップS920において、OVER_REVISE=FALSEにフラグを設定し、補正処理1を終了する。規定の補正回数Nに到達していなければ、ステップS922において、次の補正処理1の実行時間を設定し、処理を終了する。
【0086】
図12は、データ出力手段36が有する第2補正手段46の補正処理2を示したフローチャートである。
【0087】
第2補正手段46は、データ蓄積手段33のバッファ量が下限の閾値UNDER_ADJUSTを下回ったときに起動される。第2補正手段46は、アンダーランを回避するために、クロックカウント手段35の動作速度を遅くする処理を実行する。
【0088】
図12を参照して、第2補正手段46が起動されると、ステップS1002において、補正処理2が継続中か否かの判定を行なう。補正処理2が継続中でなければ(UNDER_REVISE=FALSE)、補正処理2がこれから開始されると判断し、ステップS1004に進む。
【0089】
ステップS1004では、クロックの補正値buf_adjustに所定値−ΔFを代入して初期化する。buf_adjustは、クロックカウント処理手段42で参照される値で、1秒あたりに補正するクロック数を表わす。ステップS1006では、補正処理2が開始された直後であることから、実行ループ回数を1に設定する。ステップS1008では、次に補正値buf_adjustを変更する時刻(例えば、100m秒後)を設定する。
【0090】
これにより、所定の時間周期で単位時間当たりのクロックの補正値を変更することが可能となる。その結果、所定の回数に分けて段階的にクロック手段39の動作速度を変更する制御が可能となる。ステップS1010では、補正処理2が継続中であることを示すため、UNDER_REVISE=TRUEにフラグを設定し、処理を終了する。
【0091】
一方、ステップS1002において補正処理2が継続中であれば(UNDER_REVISE=TRUE)、ステップS1012において、次の補正実行時間になったか否かを判定する。次の補正実行時刻になっていなければ、処理を終了する。次の補正実行時刻になっていれば、ステップS1014において、クロックの補正値buf_adjustを所定値ΔFだけ減少させる。
【0092】
ステップS1016では、補正処理2の実行ループ回数をインクリメントする。次に、ステップS1018において、当該実行ループ回数nが補正処理2の規定の補正回数Nに到達しているかどうかを判定する。規定の補正回数Nに到達していれば、ステップS1020において、UNDER_REVISE=FALSEにフラグを設定し、補正処理2を終了する。規定の補正回数Nに到達していなければ、ステップS1022において、次の補正処理2の実行時間を設定し、処理を終了する。
【0093】
クロック手段39の動作周波数が27MHz(27×106Hz)の場合、クロックを例えば100m秒(0.1秒)ごとに500n秒(500×10-9秒)変動させるとすると、クロックの補正値ΔFは、
ΔF=27×106×500×10-9/0.1=135(Hz)
と算出される。また、送信クロックの誤差がMPEG2で規定されている27MHz±30ppmであるとすると、クロック手段39の動作周波数は、一番速い場合で(27M+810)Hz、一番遅い場合で(27M−810)Hzとなる。そのため、クロック手段39の動作周波数の差は、最大で1620Hzとなる。
【0094】
上記のクロック手段39の動作周波数の差を、クロックの補正値ΔFで分割することになる。したがって、規定の補正回数Nを例えばN=1620/135=12と設定しておけば、この発明の実施の形態の環境下において、受信装置12は問題なく動作することになる。
【0095】
図13は、この発明の実施の形態による受信装置12の機能を実現するためのコンピュータシステムの一例を示した図である。
【0096】
図13に示すコンピュータシステムは、コンピュータ本体71と、ディスプレイ装置72と、FD(Flexible Disk)74が装着されるFDドライブ73と、キーボード75と、マウス76と、CD−ROM(Compact Disc-Read Only Memory)78が装着されたCD−ROM装置77と、ネットワーク通信装置79とを含む。
【0097】
受信装置12の機能を実現するプログラム(以下、制御プログラム)は、FD74またはCD−ROM78等の記録媒体によって供給される。制御プログラムがコンピュータ本体71によって実行されることにより、上述の受信処理が行なわれる。また、制御プログラムは、他のコンピュータより通信回線およびネットワーク通信装置79を経由し、コンピュータ本体71に供給されてもよい。
【0098】
なお、記録媒体は、FD74、CD−ROM78に限定されるものではなく、磁気テープ、MO(Magnetic Optical disk)、MD(Mini Disc)、DVD(Digital Versatile Disc)、IC(Integrated Circuit)カードなどであってもよい。
【0099】
図14は、この発明の実施の形態による受信装置12のデコーダ37へのデータ出力速度の変動を示した図である。
【0100】
図14に示すように、この発明の実施の形態による受信装置12では、デコーダ37へのデータ出力速度の1回の変更幅に上限を設けている。また、前のレベルのデータ出力速度から判断して次のデータ出力速度のレベルが決定されている。
【0101】
当該出力速度の変更を複数回繰り返すことによって、受信装置12の受信クロックに基づく送信速度よりも速く(または遅く)なるようにデコーダ37へのデータ出力速度を制御している。なお、デコーダ37へのデータ出力速度の具体的な制御方法は、図5〜8、11,12の各フローチャートで説明した通りである。
【0102】
上記のようにデコーダ37へのデータ出力速度を制御することにより、デコーダの要求から外れるデータ出力速度の変化をなくすことができる。その結果、画質の劣化等によるデコーダの動作異常を防ぐことができる。また、局所的な周波数の変動に制限があるデコーダにおいても、バッファリング制御が適用可能になる。なお、この発明の実施の形態においては、1回の補正におけるクロックの補正値がΔFに固定される例を示したが、ΔFは現在のデコーダの動作速度から判断して変動させるようにしてもよい。
【0103】
以上のように、この発明の実施の形態によれば、デコーダへのデータ出力速度の1回の変更幅に上限を設け、前のレベルのデータ出力速度から判断して次のデータ出力速度のレベルを決定することにより、デコーダの要求から外れるデータ出力速度の変化をなくすことができ、画質の劣化等によるデコーダの動作異常を防ぐことができる。
【0104】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0105】
【図1】この発明の実施の形態による受信装置12が動作するネットワークシステムの構成を概略的に示した図である。
【図2】図1に示した送信装置11および受信装置12の具体的な構成を示したブロック図である。
【図3】処理手段25によって複数のヘッダが付加されたMPEG2データのフレームフォーマットの一例を示した図である。
【図4】図2に示した受信処理部31の具体的な処理機能を示した機能ブロック図である。
【図5】データ蓄積手段33が有するデータ受信処理手段41の受信処理動作を示したフローチャートである。
【図6】カウント手段35が有するクロックカウント処理手段42のカウント処理動作を示したフローチャートである。
【図7】データ出力手段36が有するバッファリング処理手段43のバッファリング動作を示したフローチャートである。
【図8】データ出力手段36が有するデータ出力処理手段44の受信処理動作を示したフローチャートである。
【図9】データ蓄積手段33のバッファにおける書き込み位置および読み出し位置を示した模式図である。
【図10】データ蓄積手段33のバッファにおける最大バッファ量に対する各種の所定値を示した図である。
【図11】データ出力手段36が有する第1補正手段45の補正処理1を示したフローチャートである。
【図12】データ出力手段36が有する第2補正手段46の補正処理2を示したフローチャートである。
【図13】この発明の実施の形態による受信装置12の機能を実現するためのコンピュータシステムの一例を示した図である。
【図14】この発明の実施の形態による受信装置12のデコーダ37へのデータ出力速度の変動を示した図である。
【図15】デジタルデータのリアルタイムストリーム伝送で一般的に用いられているMPEG2−TSシステムの概略的な構成を示した図である。
【図16】アダプティブクロック法を用いた場合のMPEG2−TSシステムの概略的な構成を示した図である。
【図17】図16のアダプティブクロック法を用いた場合におけるデコーダ310へのデータ出力速度の変動を示した図である。
【符号の説明】
【0106】
10 通信ネットワーク、11,200 送信装置、12,300,301 受信装置、13,14 機器、21,201 エンコーダ、22,34,39 クロック手段、23 符号化手段、24 送信処理部、25 処理手段、26,32 ネットワーク接続手段、31 受信処理部、33 データ蓄積手段、35 カウント手段、36 データ出力手段、37,310 デコーダ、38 復号化手段、41 データ受信処理手段、42 クロックカウント処理手段、43 バッファリング処理手段、44 データ出力処理手段、45 第1補正手段、46 第2補正手段、71 コンピュータ本体、72 ディスプレイ装置、73 FDドライブ、74 FD、75 キーボード、76 マウス、77 CD−ROM装置、78 CD−ROM、79 ネットワーク通信装置、100 通信網、202 送信バッファ、210 送信クロック、311 PLL回路、312 デコーダクロック、320 受信バッファ、330 受信クロック。

【特許請求の範囲】
【請求項1】
通信網を介してデータを受信し、該受信データを処理手段において処理する受信処理装置であって、
前記受信データを蓄積するデータ蓄積手段と、
前記データ蓄積手段から出力される前記受信データを前記処理手段に出力処理するデータ出力手段とを備え、
前記データ出力手段は、前記処理手段のデータ処理速度に応じて、前記処理手段に出力する前記受信データの出力速度を変化させる、受信処理装置。
【請求項2】
前記データ出力手段の動作を制御するクロック手段をさらに備え、
前記処理手段のデータ処理速度は、前記クロック手段の動作周波数と、前記処理手段を制御するクロック周波数との差に基づいて決定される、請求項1に記載の受信処理装置。
【請求項3】
前記クロック手段のクロック数をカウントするカウント手段をさらに備え、
前記データ出力手段は、前記処理手段の処理速度を補正する前記受信データのタイムスタンプの値と前記タイムスタンプが前記処理手段に入力された時の前記カウント手段のカウント値とに基づいて、前記処理手段に出力する前記受信データの出力速度を変化させる、請求項1に記載の受信処理装置。
【請求項4】
前記データ出力手段は、所定の時間間隔ごとに、前記処理手段に出力する前記受信データの出力速度を変化させる、請求項1から3のいずれかに記載の受信処理装置。
【請求項5】
前記データ出力手段は、前記処理手段の処理速度が所定の速度に達するまで、前記処理手段に出力する前記受信データの出力速度を変化させる、請求項4に記載の受信処理装置。
【請求項6】
前記データ出力手段は、前記データ蓄積手段に蓄積されている前記受信データが所定量に達したとき、前記処理手段に出力する前記受信データの出力速度を変化させる、請求項1から3のいずれかに記載の受信処理装置。
【請求項7】
前記データ出力手段は、
前記データ蓄積手段に蓄積されている前記受信データが所定の上限値に達したとき、前記処理手段に出力する前記受信データの出力速度が増加するように制御する第1の補正処理手段と、
前記データ蓄積手段に蓄積されている前記受信データが所定の下限値に達したとき、前記処理手段に出力する前記受信データの出力速度が減少するように制御する第2の補正処理手段とを含む、請求項6に記載の受信処理装置。
【請求項8】
通信網を介してデータを受信する受信装置であって、
該受信データを受信処理する受信処理部と、
前記受信処理部から出力される前記受信データを復号化処理するデコーダとを備え、
前記受信処理部は、
前記受信データを蓄積するデータ蓄積手段と、
前記データ蓄積手段から出力される前記受信データを前記デコーダに出力処理するデータ出力手段とを含み、
前記データ出力手段は、前記デコーダのデータ処理速度に応じて、前記デコーダに出力する前記受信データの出力速度を変化させる、受信装置。
【請求項9】
通信網を介してデータを受信し、該受信データを処理手段において処理する制御プログラムであって、コンピュータに、
前記受信データを蓄積するステップと、
前記蓄積された受信データを前記処理手段に出力するステップと、
前記処理手段のデータ処理速度に応じて、前記処理手段に出力する前記受信データの出力速度を変化させるステップとを実行させる、制御プログラム。
【請求項10】
請求項9に記載の制御プログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2006−42273(P2006−42273A)
【公開日】平成18年2月9日(2006.2.9)
【国際特許分類】
【出願番号】特願2004−223478(P2004−223478)
【出願日】平成16年7月30日(2004.7.30)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】