(57)【要約】【課題】受信したストリームデータについてデータの欠落なく確実に処理して出力することを可能とするデータ処理装置およびデータ処理方法並びにデータ送受信システムを提供する。【解決手段】ＣＰＵ１２は、受信したＭＰＥＧ−ＴＳデータの最初のパケットに付加されたタイムスタンプを初期値として、発振器１４に基づいて２７ＭＨｚのカウンタ１２１を動作させ、そのカウント値と受信した各パケットのタイムスタンプを比較し、カウント値がタイムスタンプと同一もしくはそれ以上である場合に、各パケットのＦＩＦＯバッファ１３からの出力を許可する。その際、ＦＩＦＯバッファ１３に蓄積されたデータ量に応じて、カウンタ１２１の計数速度を調整する。【選択図】図１
2006067158.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロックに基づいて時刻情報としてのタイムスタンプがパケット毎に付加されたストリームデータを格納し、第２のクロックに同期して格納された順序でストリームデータを出力するバッファと、
制御手段と、
前記バッファに格納されたストリームデータの時刻管理のための基準パケットのタイムスタンプを初期値として、前記制御手段により指定された計数速度に応じて計数するカウンタと、
を有し、
前記制御手段は、前記バッファに格納された各パケットのタイムスタンプが、前記カウンタのカウント値と同一若しくはそれ以下である場合には、前記バッファからのストリームデータの出力を許可するとともに、前記バッファに格納されたデータ量を読み取って、当該データ量に応じて前記カウンタの計数速度を調整する
データ処理装置。
【請求項２】
前記制御手段は、
前記データ量が前記バッファの容量に応じて設定される第１の閾値以上である場合には、前記カウンタの計数速度を、前記第２のクロックの周波数に基づく第１の計数速度よりも速い第２の計数速度に変更する
請求項１記載のデータ処理装置。
【請求項３】
前記制御手段は、
前記データ量が前記バッファの容量に応じて設定される第２の閾値以下である場合には、前記カウンタの計数速度を、前記第２のクロックの周波数に基づく第１の計数速度よりも遅い第３の計数速度に変更する
請求項１記載のデータ処理装置。
【請求項４】
第１のクロックに基づいて時刻情報としてのタイムスタンプがパケット毎に付加されたストリームデータを処理するデータ処理方法であって、
前記ストリームデータをバッファに格納するステップと、
前記バッファに格納されたストリームデータの時刻管理のための基準パケットのタイムスタンプを初期値として、指定された計数速度に応じて計数したカウント値と、バッファ内の各パケットのタイムスタンプとを比較するステップと、
比較した結果、前記各パケットのタイムスタンプが、前記カウント値と同一若しくはそれ以下である場合に、前記バッファからのストリームデータの出力を許可するステップと、
第２のクロックに同期して前記バッファからストリームデータを出力するステップと、
前記バッファに格納されたデータ量を読み取るステップと、
前記データ量に応じて前記計数速度を調整するステップと
を有するデータ処理方法。
【請求項５】
データ送信装置とデータ受信装置との間で、複数のパケットからなるストリームデータの授受を行うデータ送受信システムであって、
前記データ送信装置は、
ストリームデータに含まれる各パケットに対して、第１のクロックに基づいて時刻情報としてのタイムスタンプを付加するタイムスタンプ付加手段と、
タイムスタンプが付加されたストリームデータを送信する送信手段と、を含み、
前記データ受信装置は、
前記ストリームデータを受信する受信手段と、
前記ストリームデータを一時的に格納し、第２のクロックに同期して出力するバッファと、制御手段と、
前記バッファに格納されたストリームデータの時刻管理のための基準パケットのタイムスタンプを初期値として、前記制御手段により指定された計数速度に応じて計数するカウンタと、を含み、
前記制御手段は、
前記バッファに格納された各パケットのタイムスタンプが、前記カウンタのカウント値と同一若しくはそれ以下である場合には、前記バッファからのストリームデータの出力を許可するとともに、前記バッファに格納されたデータ量を読み取って、当該データ量に応じて前記カウンタの計数速度を調整する
データ送受信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像、音声等の様々なコンテンツデータをストリームデータとして処理するデータ処理装置およびデータ処理方法並びにデータ送受信システムに関する。
【背景技術】
【０００２】
昨今、インターネット通信など、様々な通信媒体を介した画像、音声データ等の様々なコンテンツのデータ転送が盛んに行われている。特に、近年においては、インターネット上のデータ転送において、従来から利用されているダウンロード型伝送方式に加えて、ストリーム型伝送方式によるサービスが増加してきている。
ストリーム型伝送方式は、送信側から受信端末にデータ送信が行われている間に、並列して受信データの再生処理を実行するものであり、インターネット電話・遠隔テレビ会議や、たとえばビデオオンデマンド（ＶＯＤ）等、様々なコンテンツをストリーミング映像配信によって行うサービスに利用されている。
【０００３】
また、放送・通信・蓄積といったすべてのアプリケーションに対して汎用的に使用できる動画像圧縮方式として、ＭＰＥＧ(Moving Picture Experts Group)が知られている。
上記ストリーム型伝送方式では、ＭＰＥＧによるトランスポートストリーム（以下、ＭＰＥＧ−ＴＳという）を、イーサネット（登録商標）コントローラあるいはＩＥＥＥ８０２．１１に準拠した無線コントローラにより伝送することが行われている。たとえば、ＭＰＥＧ−ＴＳは、ＲＴＰ(Real-time Transport Protocol)／ＵＤＰ(User Datagram Protocol)やＨＴＴＰ(HyperText Transfer Protocol) ／ＴＣＰ(Transport Control Protocol)などのプロトコルに従ってパケット単位で伝送される。
【０００４】
その際、上述した各プロトコルでは、時刻情報を入れるフィールドがないため、ネットワークでパケットの時系列上の順序が狂ってしまった場合には、受信側で正しくＭＰＥＧ−ＴＳパケットを再生することができない。
したがって、受信側で確実にＭＰＥＧ−ＴＳパケットを再生することを可能にするため、送信側においてＭＰＥＧ−ＴＳパケットに時刻情報であるタイムスタンプを付加することが行われる。たとえば、下記特許文献１には、タイムスタンプを付加した受信パケット処理についての技術が開示されている。
【０００５】
一方、ＭＰＥＧ−ＴＳパケットを伝送する際には、ネットワークの特性上、パケットドロップが必ず発生し、その場合には、パケットの再送信が行われる。
受信側では、受信したＭＰＥＧ−ＴＳデータを直接ＭＰＥＧデコーダで処理してしまうと、上記パケットドロップおよびパケット再送信が行われた場合に、元々のパケット間のタイミングが失われてしまうので、通常は受信したＭＰＥＧ−ＴＳデータをＦＩＦＯバッファに一時的に格納し、送信側で付加されたタイムスタンプに基づいて、同期化処理を行い、タイムスタンプを取り除いた形でＭＰＥＧデコーダに入力する。
【０００６】
【特許文献１】特開２００３−１７９６３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、ストリーム型伝送方式では、送信側と受信側では、共通の周波数（ＭＰＥＧ２の場合、２７ＭＨｚ）の発振器を有し、発振器が生成するクロック信号に同期した処理を行っている。この点、受信側のＭＰＥＧデコーダの都合の良いタイミングでデータを読み出すことができる、蓄積系メディアから再生する場合と相違している。
たとえば、送信側では、ＭＰＥＧ−ＴＳパケットに対して、２７ＭＨｚのクロック信号に同期して３２ビットのカウンタ値としてのタイムスタンプを付加する。受信側では、ＭＰＥ−ＴＳデータの最初のパケットのタイムスタンプを初期値として、２７ＭＨｚのクロック信号に同期してカウントアップを行い、そのカウント値と受信した各パケットのタイムスタンプの値とを比較して、各パケットを出力するか否かを判断する。
【０００８】
しかし、送信側と受信側とで、発振器が生成するクロック信号の周波数に誤差があり、全く同一ということはない。
また、通常のＢＳ放送，地上波ディジタル放送などのディジタル放送の場合、完全にリアルタイムで送信されており、受信機側のＰＬＬ回路により同期を取ることができるため、送信側と受信側とでクロック信号の周波数を一致させることが可能であるが、ネットワーク経由でデータの送受信を行う場合には、リアルタイム性がないため、同様の手法を適用することができない。
したがって、ネットワーク経由でデータの送受信を行う際に、送信側と受信側とで発振器が生成するクロック信号の周波数が異なる場合、以下に述べる不利益が招来する。
【０００９】
仮に、送信機側のクロック信号の周波数が受信機側のそれと比較して、少し高い場合には、受信側のＦＩＦＯバッファに少しずつＭＰＥＧ−ＴＳデータが蓄積されていく。かかる場合には、ＦＩＦＯバッファがオーバーフローしないように、ＦＩＦＯバッファに十分なデータ量が格納された時には、所定のデータ量、たとえば、ＦＩＦＯバッファのデータ容量の半分となるようにＭＰＥＧ−ＴＳデータを除去することが行われる。
当然ながら、除去されたＭＰＥＧ−ＴＳデータは受信側でデコードすることができず、その結果、たとえば、当該ＭＰＥＧ−ＴＳデータによる動画再生が一瞬途切れてしまうことになる。
【００１０】
逆に、送信機側のクロック信号の周波数が受信機側のそれと比較して、少し低い場合には、受信側のＦＩＦＯバッファから少しずつＭＰＥＧ−ＴＳデータが取り出されていく。かかる場合には、ＦＩＦＯバッファがアンダーフローしないように、ＦＩＦＯバッファに格納されるデータ量が所定のデータ量を下回った時に、ＦＩＦＯバッファからのＭＰＥＧ−ＴＳデータの出力を、所定のデータ量、たとえば、ＦＩＦＯバッファのデータ容量の半分が格納されるまで中止することが行われる。
当然ながら、ＦＩＦＯバッファから出力を中止された分のＭＰＥＧ−ＴＳデータについてデコードすることができず、その結果、たとえば、当該ＭＰＥＧ−ＴＳデータによる動画再生が一瞬途切れてしまうことになる。
【００１１】
本発明はかかる事情に鑑みてなされたものであり、その目的は、受信したストリームデータについてデータの欠落なく確実に処理して出力することを可能とするデータ処理装置およびデータ処理方法並びにデータ送受信システムを提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するための本発明の第１の観点は、第１のクロックに基づいて時刻情報としてのタイムスタンプがパケット毎に付加されたストリームデータを格納し、第２のクロックに同期して格納された順序でストリームデータを出力するバッファと、制御手段と、前記バッファに格納されたストリームデータの時刻管理のための基準パケットのタイムスタンプを初期値として、前記制御手段により指定された計数速度に応じて計数するカウンタと、を有し、前記制御手段は、前記バッファに格納された各パケットのタイムスタンプが、前記カウンタのカウント値と同一若しくはそれ以下である場合には、前記バッファからのストリームデータの出力を許可するとともに、前記バッファに格納されたデータ量を読み取って、当該データ量に応じて前記カウンタの計数速度を調整するデータ処理装置である。
【００１３】
好適には、前記制御手段は、前記データ量が前記バッファの容量に応じて設定される第１の閾値以上である場合には、前記カウンタの計数速度を、前記第２のクロックの周波数に基づく第１の計数速度よりも速い第２の計数速度に変更する。
【００１４】
好適には、前記制御手段は、前記データ量が前記バッファの容量に応じて設定される第２の閾値以下である場合には、前記カウンタの計数速度を、前記第２のクロックの周波数に基づく第１の計数速度よりも遅い第３の計数速度に変更する。
【００１５】
上記目的を達成するための本発明の第２の観点は、第１のクロックに基づいて時刻情報としてのタイムスタンプがパケット毎に付加されたストリームデータを処理するデータ処理方法であって、前記ストリームデータをバッファに格納するステップと、前記バッファに格納されたストリームデータの時刻管理のための基準パケットのタイムスタンプを初期値として、指定された計数速度に応じて計数したカウント値と、バッファ内の各パケットのタイムスタンプとを比較するステップと、比較した結果、前記各パケットのタイムスタンプが、前記カウント値と同一若しくはそれ以下である場合に、前記バッファからのストリームデータの出力を許可するステップと、第２のクロックに同期して前記バッファからストリームデータを出力するステップと、前記バッファに格納されたデータ量を読み取るステップと、前記データ量に応じて前記計数速度を調整するステップとを有するデータ処理方法である。
【００１６】
上記目的を達成するための本発明の第３の観点は、データ送信装置とデータ受信装置との間で、複数のパケットからなるストリームデータの授受を行うデータ送受信システムであって、前記データ送信装置は、ストリームデータに含まれる各パケットに対して、第１のクロックに基づいて時刻情報としてのタイムスタンプを付加するタイムスタンプ付加手段と、タイムスタンプが付加されたストリームデータを送信する送信手段と、を含み、前記データ受信装置は、前記ストリームデータを受信する受信手段と、前記ストリームデータを一時的に格納し、第２のクロックに同期して出力するバッファと、制御手段と、前記バッファに格納されたストリームデータの時刻管理のための基準パケットのタイムスタンプを初期値として、前記制御手段により指定された計数速度に応じて計数するカウンタと、を含み、前記制御手段は、前記バッファに格納された各パケットのタイムスタンプが、前記カウンタのカウント値と同一若しくはそれ以下である場合には、前記バッファからのストリームデータの出力を許可するとともに、前記バッファに格納されたデータ量を読み取って、当該データ量に応じて前記カウンタの計数速度を調整するデータ送受信システムである。
【００１７】
本発明の第１の観点に係るデータ処理装置の作用は、以下の通りである。
バッファには、第１のクロックに基づいて時刻情報としてのタイムスタンプがパケット毎に付加されたストリームデータが格納され、第２のクロックに同期して出力する。そして、バッファに格納されたストリームデータの時刻管理のための基準パケットのタイムスタンプを初期値としてカウンタを動作させ、当該カウンタは、制御手段により指定された計数速度に応じて計数する。
制御手段は、極力均等時間でバッファから出力されるように、バッファに格納された各パケットのタイムスタンプが、前記カウンタのカウント値と同一若しくはそれ以下である場合に、前記バッファからのストリームデータの出力を許可する。
その際、バッファに格納されたデータ量を読み取って、当該データ量に応じて前記カウンタの計数速度を調整する。
【発明の効果】
【００１８】
したがって、第１のクロックと第２のクロックの周波数が一致しないことにより、バッファがオーバーフロー／アンダーフローに近づく場合には、バッファに格納されたデータ量に応じて、バッファからのストリームデータの出力可否が制御されるため、バッファが破綻することがない。
すなわち、本発明によれば、ストリームデータにタイムスタンプが付加された際のクロック（第１のクロック）と、カウンタの基準となるクロック（第２のクロック）がずれる場合でも、バッファがオーバーフローまたはアンダーフローすることはなく、ストリームデータについてデータの欠落なく確実に処理して出力することが可能となる。
【発明を実施するための最良の形態】
【００１９】
実施の形態
以下、本発明のデータ送受信システムの一実施形態について、添付図面に関連付けて説明する。
図１は、実施形態に係るデータ送受信システムのブロック図を示す。なお、図示した例は、地上波ディジタル放送をＴＶセットで再生する場合について示す。
本実施形態に係るデータ送受信システムは、データとして画像データの授受を行うシステムであって、画像データを送信するデータ送信装置２ａと、画像データを受信するデータ受信装置１と、画像データを再生するＴＶセット等のデータ再生装置３と、から構成される。
【００２０】
データ送信装置２ａは、受信アンテナ２１と、ディジタルチューナ（Ｄ＿ＴＮＲ）２２ａと、チャンネルデコーダ（ＣＮＬ＿ＤＥＣ）２３ａと、タイムスタンプ付加処理部（ＴＭ＿Ａ）２４、発振器（ＯＳＣ）２５と、ＣＰＵ２６と、インタフェース（Ｉ／Ｆ）２７と、を含んで構成される。
なお、タイムスタンプ付加処理部２４は、本発明のタイムスタンプ付加手段の一実施形態である。
インタフェース２７は、本発明の送信手段の一実施形態である。
以下では、ＭＰＥＧによる符号化を一例としてＭＰＥＧ−ＴＳ（トランスポートストリーム）データの場合を説明するが、パケット毎の時刻情報を含むストリームデータであれば、ＭＰＥＧ−ＴＳデータ以外のストリームデータに適用可能である。
【００２１】
ディジタルチューナ２２ａは、受信アンテナ２１が受信した地上波ディジタル放送波に用いるＯＦＤＭ(Orthogonal Frequency Division Multiplexing)の周波数を周波数変換によりダウンコンバートして、任意のチャンネル（放送局）の地上波ディジタル放送信号Ｓ２２ａを抽出する。
チャンネルデコーダ２３ａは、地上波ディジタル放送信号Ｓ２２ａを、たとえばＱＰＳＫ復調して復調信号を生成するとともに、当該復調信号からトランスポートストリームデータ（ＭＰＥＧ−ＴＳデータ）Ｓ２３ａを生成する。
【００２２】
タイムスタンプ付加処理部２４は、ＭＰＥＧ−ＴＳデータＳ２３ａに対して、発振器２５が生成する２７ＭＨｚのクロック信号（本発明の第１のクロック）に基づいて、時刻情報としてのタイムスタンプＴＭを付加し、タイムスタンプ付きＭＰＥＧ−ＴＳデータＳ２４を生成する。
タイムスタンプＴＭは、２７ＭＨｚのクロック信号に同期して単調に増加する３２ビット１６進カウンタの値であり、３２ビットの最大値の１６進表記の「０ｘｆｆ  ｆｆ  ｆｆ  ｆｆ」までカウントした後は、「０ｘ００  ００  ００  ００」に戻りカウントアップを続ける。
【００２３】
図２は、タイムスタンプ付加処理部２４の処理を説明するための図である。
図２において、（ａ）はＭＰＥＧ−ＴＳデータのパケット構造を、（ｂ）はタイムスタンプＴＭが付加されたＭＰＥＧ−ＴＳデータのパケット構造を、それぞれ示す。図２（ａ）に示すように、チャンネルデコーダ２３ａが生成するＭＰＥＧ−ＴＳデータの各パケットは、４バイトのヘッダおよび１８４バイトのペイロード（パケットで伝送するデータ部分）の合計１８８バイトから構成されるのが一般的である。
タイムスタンプ付加処理部２４では、図２（ｂ）に示すように、ＭＰＥＧ−ＴＳデータの各パケットに対して、４バイトのタイムスタンプＴＭを順次付加する処理を行う。
【００２４】
ＣＰＵ２６は、データ送信装置２ａの全体の処理を統括するとともに、タイムスタンプ付きＭＰＥＧ−ＴＳデータＳ２４に対して、ＲＴＰ／ＵＤＰやＨＴＴＰ／ＴＣＰなどのプロトコルに従ったパケット単位のデータを生成する。このデータは、たとえば、イーサネットコントローラあるいはＩＥＥＥ８０２．１１に準拠した無線コントローラ等を含むインタフェース２７等により、データ受信装置１に対して送信される。
【００２５】
本発明のデータ処理装置およびデータ受信装置としてのデータ受信装置１は、インタフェース（Ｉ／Ｆ）１１と、ＣＰＵ１２と、ＦＩＦＯバッファ（ＦＩＦＯ）１３と、発振器（ＯＳＣ）１４と、タイムスタンプ同期出力処理部（ＴＭ＿ＣＴＲＬ）１５と、ＭＰＥＧ−ＴＳデコーダ（ＭＰＥＧ＿ＤＥＣ）１６と、を含んで構成される。
なお、インタフェース１１は、本発明の受信手段の一実施形態である。
ＦＩＦＯバッファ１３は、本発明のバッファの一実施形態である。
ＣＰＵ１２に内蔵され、後述するカウンタ１２１は、本発明のカウンタの一実施形態である。
ＣＰＵ１２は、本発明の制御手段の一実施形態である。
【００２６】
インタフェース１１は、送信側からの信号を正しく受信できるように、たとえば、イーサネットコントローラあるいはＩＥＥＥ８０２．１１に準拠した無線コントローラ等を含む。
ＣＰＵ１２は、データ受信装置１全体の処理を統括するとともに、ＲＴＰ／ＵＤＰやＨＴＴＰ／ＴＣＰなどのプロトコルに従ったパケット単位の受信データからＭＰＥＧ−ＴＳパケットデータ（ＴＳ＿Ｐ）を抽出して、ＦＩＦＯバッファ１３に順次格納する。
【００２７】
なお、ＭＰＥＧ−ＴＳパケットを伝送する際には、ネットワークの特性上、パケットドロップが必ず発生し、その場合には、パケットの再送信を行われる。
その際、受信したＭＰＥＧ−ＴＳデータを直接ＭＰＥＧデコーダ１６で処理してしまうと、上記パケットドロップおよびパケット再送信が行われた場合に、元々のパケット間のタイミングが失われてしまうので、データ受信装置１は、受信したＭＰＥＧ−ＴＳデータをＦＩＦＯバッファ１３に一時的に格納する構成としている。
【００２８】
ＦＩＦＯバッファ１３では、後述するように、格納したＭＰＥＧ−ＴＳデータの各パケットの出力可否がＣＰＵ１２により制御される。ＣＰＵ１２により各パケットの出力が許可されると、発振器１４が生成する２７ＭＨｚのクロック信号（本発明の第２のクロック）に同期して出力を行う。
なお、ＦＩＦＯバッファ１３は、ＣＰＵ１２内部に構成されていてもよい。
【００２９】
次に、ＣＰＵ１２、ＦＩＦＯバッファ１３および発振器１４間の構成について、図３に関連付けて説明する。
図３は、ＣＰＵ１２のＦＩＦＯバッファ１３に対する出力制御に関連したＣＰＵ１２とＦＩＦＯバッファ１３の回路ブロックの構成を示す図である。図３に示すように、ＣＰＵ１２は、ＦＩＦＯ制御部１２２、カウンタ１２１、および比較回路１２３により構成される。
なお、図において、ＴＳ１は、ＦＩＦＯバッファ１３に入力されるＭＰＥＧ−ＴＳデータを、ＴＳ２は、ＦＩＦＯバッファ１３から出力するＭＰＥＧ−ＴＳデータを、それぞれ示す。
【００３０】
図３において、カウンタ１２１は、３２ビットカウンタであり、ＴＳ１の最初のパケットに含まれるタイムスタンプを初期値としてセットし、発振器１４による２７ＭＨｚのクロック信号（本発明の第２のクロック）に基づいて計数する。すなわち、カウンタ１２１のカウント値Ｃｎｔは、２７ＭＨｚのクロック信号に同期して単調に増加する３２ビットの値であり、３２ビットの最大値の１６進表記の「０ｘｆｆ  ｆｆ  ｆｆ  ｆｆ」までカウントした後は、「０ｘ００  ００  ００  ００」に戻りカウントアップを続ける。
カウンタ１２１の計数速度（カウント速度）は、ＦＩＦＯ制御部１２２により制御信号Ｓ１２２をもって制御される。
なお、上記カウンタ１２１は、ＣＰＵ１２と別体で構成してもよい。
【００３１】
なお、カウンタ１２１は、ＴＳ１の最初のパケットに含まれるタイムスタンプを初期値とするが、最初のパケットに限定するものではなく、時刻管理のための基準パケットが最初のパケットでない場合には、当該基準パケットのタイムスタンプにより初期値がセットされる。
【００３２】
比較回路１２３は、カウンタ１２１のカウント値Ｃｎｔと、ＦＩＦＯバッファ１３からのＭＰＥＧ−ＴＳデータ（ＴＳ１）の各パケットのタイムスタンプとを比較する。
ＦＩＦＯ制御部１２２は、その比較結果に基づいて、ＦＩＦＯバッファ１３からの出力可否を制御信号Ｓ１２により制御する。すなわち、以下（１）式を満足する場合に、ＴＳパケットの出力（ＴＳ２の出力）を許可する。
タイムスタンプ≦カウント値Ｃｎｔ  …  （１）
これにより、大量のＭＰＥＧ−ＴＳデータを受信した場合であっても、その大量のデータを一時にＭＰＥＧ−ＴＳデコーダ１６に引き渡すことなく、タイムスタンプの値に応じて、時間遅れをもって供給することになるため、極力均等な間隔でデコード処理を行うことが可能となる。
【００３３】
また、ＦＩＦＯ制御部１２２は、ＦＩＦＯバッファ１３に蓄積されるデータ量を信号Ｓ１３によって読み取る。ＦＩＦＯ制御部１２２は、読み取ったデータ量に応じて、カウンタ１２１に対して信号Ｓ１２２により計数速度の変更を指示する。
計数速度の変更の具体例については、後述する。
【００３４】
図１の全体構成の図の説明に戻る。
タイムスタンプ同期出力処理部１５は、ＦＩＦＯバッファ１３から出力が許可されたＭＰＥＧ−ＴＳデータの各パケット（ＴＳ＿Ｐ）に対して、送信側で各パケットに付加されたタイムスタンプに基づき同期化処理を行う。これにより、データ送信装置２ａでの元々の各パケットのタイミング関係が維持された状態で、ＭＰＥＧ−ＴＳデコーダ１６にＭＰＥＧ−ＴＳデータが供給される。その際、ＭＰＥＧ−ＴＳデータは、各パケットのタイムスタンプが取り除かれた状態で、ＭＰＥＧ−ＴＳデコーダ１６に供給される。
ＭＰＥＧ−ＴＳデコーダ１６では、供給されたＭＰＥＧ−ＴＳデータの各パケットに含まれるＭＰＥＧデータに対して、逆量子化および逆ＤＣＴ等を含む復号化処理を施し、映像信号をデータ再生装置３へ出力する。
【００３５】
ところで、図３において、カウンタ１２１は、データ送信装置２ａからのＭＰＥＧ−ＴＳデータの最初のパケットのタイムスタンプを初期値としているため、仮に、送信側の発振器２５のクロック周波数と、受信側の発振器１４のクロック周波数とが全く同一の場合には、比較回路１２３での比較処理において、伝送される各パケットのタイムスタンプの値とカウンタ１２１の値が完全に一致し、すべてのパケット（ＴＳ１のパケット）についてＦＩＦＯバッファ１３から順次出力が許可され、データ再生装置３において途切れなく画像が再生される。
しかしながら、実際には、送信側の発振器２５と、受信側の発振器１４の発振周波数偏差等により、両者のクロック周波数が一致しないようになると、ＦＩＦＯバッファ１３にオーバーフローまたはアンダーフローが発生し、データ再生装置３の画像再生が一瞬途切れる現象が発生する場合がある。
【００３６】
そこで、本実施形態に係るデータ受信装置１では、ＦＩＦＯバッファ１３に蓄積されたデータ量に応じて、カウンタ１２１の計数速度を調整する。
以下、このカウンタ１２１の計数速度の調整処理について、図４に関連付けて説明する。
図４は、ＦＩＦＯバッファ１３のデータ量に応じたカウンタ１２１の制御について示す図であり、（ａ）はカウンタ１２１を加速させる場合、（ｂ）はカウンタ１２１を減速させる場合である。
【００３７】
図４（ａ）に示すように、ＦＩＦＯバッファ１３に蓄積されたデータ量が予め規定された閾値Ｔｈ＿１を越えることは、データ受信装置１の発振器１４のクロック周波数が、データ送信装置２ａの発振器２５のそれよりも低い場合に起こる。かかる場合には、データ送信装置２ａからのＭＰＥＧ−ＴＳデータの２番目以降のパケットのタイムスタンプがカウンタ１２１のカウント値Ｃｎｔよりも大きくなるため、前記した（１）式を満足せず、ＦＩＦＯバッファ１３からの出力が許可されずに蓄積され続け、ＦＩＦＯバッファ１３がオーバーフローとなる可能性がある。
【００３８】
したがって、この場合には、カウンタ１２１を加速させることによって、ＦＩＦＯバッファ１３に蓄積するデータ量の調整を行う。
具体的には、図３において、ＦＩＦＯ制御部１２２は、信号Ｓ１３によりＦＩＦＯバッファ１３からデータ量を読み取り、そのデータ量を閾値Ｔｈ＿１と比較して、データ量が閾値Ｔｈ＿１（本発明の第１の閾値）を越える場合には、後述するように、カウンタ１２１に対して制御信号Ｓ１２２により加速処理を行う。
すなわち、カウンタ１２１の計数速度を、発振器１４のクロック周波数で定まる計数速度（本発明の第１の計数速度）を速くした計数速度（本発明の第２の計数速度）に変更する。どの程度計数速度を変化させるかについては、発振器２５（送信側）と発振器１４（受信側）の発振精度によって規定すればよい。
なお、閾値Ｔｈ＿１は、ＦＩＦＯバッファ１３が格納可能な最大容量に対して余裕分を考慮した値や、ＦＩＦＯバッファ１３の格納可能な最大容量に対して所定の比率（７０〜８０％等）の値を設定すればよい。
【００３９】
一方、図４（ｂ）に示すように、ＦＩＦＯバッファ１３に蓄積されたデータ量が予め規定された閾値Ｔｈ＿２よりも下回ることは、データ受信装置１の発振器１４のクロック周波数が、データ送信装置２ａの発振器２５のそれよりも高い場合に起こる。かかる場合には、データ送信装置２ａからのＭＰＥＧ−ＴＳデータの２番目以降のパケットのタイムスタンプがカウンタ１２１のカウント値よりも小さくなるため、前記した（１）式を満足し、ＦＩＦＯバッファ１３からの出力が順次許可されていき、ＦＩＦＯバッファ１３がアンダーフローとなる可能性がある。
【００４０】
したがって、この場合には、カウンタ１２１を減速させることによって、ＦＩＦＯバッファ１３に蓄積するデータ量の調整を行う。
具体的には、図３において、ＦＩＦＯ制御部１２２は、信号Ｓ１３によりＦＩＦＯバッファ１３からデータ量を読み取り、そのデータ量を閾値Ｔｈ＿２と比較して、データ量が閾値Ｔｈ＿２（本発明の第２の閾値）を下回った場合には、後述するように、カウンタ１２１に対して制御信号Ｓ１２２により減速処理を行う。
すなわち、カウンタ１２１の計数速度を、発振器１４のクロック周波数で定まる計数速度（本発明の第１の計数速度）を遅くした計数速度（本発明の第３の計数速度）に変更する。どの程度計数速度を変化させるかについては、発振器２５（送信側）と発振器１４（受信側）の発振精度によって規定すればよい。
なお、閾値Ｔｈ＿２は、ＦＩＦＯバッファ１３が空になるまでの余裕分を考慮した値や、ＦＩＦＯバッファ１３の格納可能な最大容量に対して所定の比率（２０〜３０％等）の値を設定すればよい。
【００４１】
次に、カウンタ１２１の加速処理および減速処理の実施例について説明する。
〔１〕加速処理
図５は、カウンタ１２１の加速処理の一例であるフローチャートを示す。このフローチャートは、１２２ｐｐｍで加速する場合の処理を示す。なお、「１２２ｐｐｍで加速する」とは、１００万回カウントする毎にカウント値が１２２回だけ余分に増加する、すなわちカウント値が１００万１２２となることを意味する。また、フローチャートにおいて、Ｘはカウンタ１２１のカウント値を示す。
【００４２】
図５のフローチャートによれば、３２ビットのカウント値Ｘの末尾１６ビットが所定の値になったときに通常より余分にカウントする。すなわち、通常は２７ＭＨｚのクロック信号に応じて、１／２７，０００，０００秒に１つだけカウントアップさせ（ステップＳＴ１８）、カウント値Ｘの末尾１６ビットが１６進表現で「０ｘ２０００」，「０ｘ４０００」，「０ｘ６０００」，「０ｘ８０００」，「０ｘａ０００」，「０ｘｃ０００」または「０ｘｅ０００」になった時に限り（ステップＳＴ１０〜１６）、２つカウントアップさせる（ステップＳＴ１７）。
また、カウント値Ｘが３２ビットの最大値に達した場合には（ステップＳＴ１９）、最初からカウントを継続する（ステップＳＴ２０）。
【００４３】
以上により、カウンタ１２１による１２２ｐｐｍの加速処理が実現できる。
なお、たとえば、発振器１４の発振精度が低く、発振器２５と発振器１４のクロック周波数の差が大きい場合など、カウンタ１２１の計数速度をさらに速くしたいときには、２つのカウントアップを行うタイミングを増加させればよい。たとえば、２４４ｐｐｍの加速処理を実現するためには、カウント値Ｘの末尾１６ビットが１６進表現で「０ｘ１０００」，「０ｘ２０００」，…，「０ｘｅ０００」，「０ｘｆ０００」になった時に、２つカウントアップさせる。
なお、一般に、通常の精度の水晶発振器は、±３０ｐｐｍ程度であり、安価で精度が良くない水晶発振器は、±１００ｐｐｍ程度であるため、発振器２５と発振器１４とで最悪２００ｐｐｍ程度の加減速が可能であれば、性能上問題ないと考えられる。
【００４４】
〔２〕減速処理
図６〜８は、カウンタ１２１の減速処理の一例であるフローチャートを示す。このフローチャートは、１２２ｐｐｍで減速する場合の処理を示す。なお、「１２２ｐｐｍで減速する」とは、１００万回カウントするとカウント値が１２２回だけ少なくなる、すなわちカウント値が９９万９８７８となることを意味する。また、フローチャートにおいて、Ｘはカウンタ１２１のカウント値を示す。
【００４５】
減速処理を実現するために、カウント値Ｘが所定の値になったときにホールド処理（カウントアップしない処理）を行う。
図６において、処理Ａは、カウント値Ｘが所定の値になったときにホールド処理を行う処理であり、処理Ｂは、常にカウント値Ｘをカウントアップさせる処理である。
減速処理では、図６に示すように、変数ｐｒｏが「０」または「１」に交互に切り替わることで、処理Ａおよび処理Ｂを交互に実行する。
【００４６】
図７は、処理Ａについての一例であるフローチャートを示す。
図７のフローチャートによれば、３２ビットのカウント値Ｘの末尾１６ビットが所定の値になったときにカウントアップを行わない（ホールド処理）。すなわち、通常は２７ＭＨｚのクロック信号に応じて、１／２７，０００，０００秒に１つだけカウントアップさせ（ステップＳＴ４２）、カウント値Ｘの末尾１６ビットが１６進表現で「０ｘ２０００」，「０ｘ４０００」，「０ｘ６０００」，「０ｘ８０００」，「０ｘａ０００」，「０ｘｃ０００」または「０ｘｅ０００」になった時に限り（ステップＳＴ３５〜４１）、２つカウントアップを行わない。
また、カウント値Ｘが３２ビットの最大値に達した場合には（ステップＳＴ４３）、最初からカウントを継続する（ステップＳＴ４４）点は、加速処理と同様である。
【００４７】
以上により、カウンタ１２１による１２２ｐｐｍの減速処理が実現できる。
なお、たとえば、発振器１４の発振精度が低く、発振器２５と発振器１４のクロック周波数の差が大きい場合など、カウンタ１２１の計数速度をさらに遅くしたいときには、カウントのホールドを行うタイミングを増加させればよい。たとえば、２４４ｐｐｍの減速処理を実現するためには、カウント値Ｘの末尾１６ビットが１６進表現で「０ｘ１０００」，「０ｘ２０００」，…，「０ｘｅ０００」，「０ｘｆ０００」になった時に、カウント値Ｘをホールドさせる。
【００４８】
図８は、処理Ｂについてのフローチャートを示す。これは、通常のカウントアップ処理と異ならない。
処理Ａおよび処理Ｂを交互に繰り返すことによって、カウント値が処理Ａでホールドされた場合でも、次の処理Ｂでカウントアップされるので、カウント値ＸがステップＳＴ３５〜４１に示した値に止まることはない。
【００４９】
以上説明したように、本実施形態に係るデータ受信装置１によれば、ＣＰＵ１２は、受信したＭＰＥＧ−ＴＳデータの最初のパケットに付加されたタイムスタンプを初期値として、発振器１４に基づいて２７ＭＨｚのカウンタ１２１を動作させ、そのカウント値と受信した各パケットのタイムスタンプを比較し、カウント値がタイムスタンプと同一もしくはそれ以上である場合に、各パケットのＦＩＦＯバッファ１３からの出力を許可する。
その際、ＦＩＦＯバッファ１３に蓄積されたデータ量に応じて、カウンタ１２１の計数速度を調整するので、以下の効果を得ることができる。
【００５０】
すなわち、送信側でＭＰＥＧ−ＴＳデータにタイムスタンプを付加する際の基準となる発振器と、受信側でのカウンタ１２１の動作基準となる発振器とのクロック周波数のずれが生ずる場合であっても、ＦＩＦＯバッファ１３に蓄積されたデータ量をモニタした結果に基づいてカウンタ１２１の計数速度を調整することにより、ＦＩＦＯバッファ１３におけるオーバーフローあるいはアンダーフローの発生を回避することができ、データの欠落のないストリームデータに基づいて、復号・再生処理を行うことができる。
【００５１】
また、実施形態に係るデータ受信装置１は、２７ＭＨｚのカウント処理を行う通常のＭＰＥＧ−ＴＳデータの受信装置に対して新たに付加する構成要素がないため、極めて安価に実現できる。
なお、送信側のクロック周波数（第１のクロックの周波数）と受信側のクロック周波数（第２のクロックの周波数）とを一致させる方法として、ＰＬＬなどを用いる方法も考えられるが、たとえば、２７ＭＨｚのクロックについて数１００Ｈｚ程度の微小なずれをＰＬＬにより一致させることは、数１０万分の１の精度のＰＬＬを構成する必要があり、かかる高精度かつ安定性の高いＰＬＬを実現することは製造上極めて困難である。
これに対して、実施形態に係るデータ受信装置１では、カウンタの計数速度を制御するだけで済み、これはソフトウエアによって実現可能であるため、極めて安価にバッファ制御を実現することができる。
【００５２】
本発明は、上述した実施形態に拘泥せず、その要旨を変更しない範囲で様々な改変が可能である。
たとえば、図９は、図１に示すデータ送受信システムと異なり、アナログ映像信号ＡＳをデータ再生装置３に再生させる場合の構成である。
図９に示すデータ送受信システムでは、データ送信装置２ｂがアナログ映像信号ＡＳをディジタルビデオ信号Ｓ２２ｂへ変換し、ＭＰＥＧエンコーダ２３ｂがディジタルビデオ信号Ｓ２２ｂからＭＰＥＧ−ＴＳデータを生成する。ＭＰＥＧ−ＴＳデータが生成された後は、図１に示すデータ送受信システムと同様の処理となる。
【図面の簡単な説明】
【００５３】
【図１】実施形態に係るデータ送受信システムのブロック図を示す。
【図２】タイムスタンプ付加処理部２４の処理を説明するための図である。
【図３】ＦＩＦＯバッファ１３の出力制御に関連する構成を示すブロック図である。
【図４】ＦＩＦＯバッファ１３のデータ量に応じたカウンタ１２１の制御について示す図である。
【図５】カウンタ１２１の加速処理の一例であるフローチャートを示す。
【図６】カウンタ１２１の減速処理の一例であるフローチャートを示す。
【図７】カウンタ１２１の減速処理の一例であるフローチャートを示す。
【図８】カウンタ１２１の減速処理の一例であるフローチャートを示す。
【図９】実施形態に係るデータ送受信システムの一変形例を示すブロック図である。
【符号の説明】
【００５４】
１…データ受信装置、１１…インタフェース、１２…ＣＰＵ、１３…ＦＩＦＯバッファ、１４…発振器、１５…タイムスタンプ同期出力処理部、１６…ＭＰＥＧ−ＴＳデコーダ２ａ，２ｂ…データ送信装置、２１…受信アンテナ、２２ａ…ディジタルチューナ、２２ｂ…ビデオデコーダ、２３ａ…チャンネルデコーダ、２３ｂ…ＭＰＥＧエンコーダ、２４…タイムスタンプ付加処理部、２５…発振器、２６…ＣＰＵ、２７…インタフェース、３…データ再生装置。
【図１】
2006067158.tif 000003
【図２】
2006067158.tif 000004
【図３】
2006067158.tif 000005
【図４】
2006067158.tif 000006
【図５】
2006067158.tif 000007
【図６】
2006067158.tif 000008
【図７】
2006067158.tif 000009
【図８】
2006067158.tif 000010
【図９】
2006067158.tif 000011