明細書
情報処理装置おょぴ方法、 記録媒体、 並びにプログラム 技術分野
本発明は、 情報処理装置および方法、 記録媒体、 並びにプログラムに関し、 特 に、 ストリ一ムデータを、 ネットワークを介して受信する際に生じる、 ス トリー ムデータに付されたタイムスタンプとのク口ック誤差を調整して、 補正できるよ うにした情報処理装置および方法、 記録媒体、 並びにプログラムに関する。 背景技術
インターネットぉょぴ IP (Internet Protocol)関連などのネットワーク技術 の継続成長によって、 IPベースのネットワークを介したストリームデータの送 受信の要求が高まりつつある。
ネットワークを介したストリームデータの送受信処理は、 例えば、 ライブ(同 時実況)中継放送、 または録画した遠隔学習用画像の転送、 IPネットワークを介 したパーソナルコンピュータへのテレビ放送などに応用される。 このような、 ス トリームデータの送受信処理は、 一般に、 インターネットを介して実行される。 ところで、 インターネットを介したデータの通信、 例えば、 TCP P
(Transmis sion Control Protocol/ Internet Protocol) と (?は、 「プル (pul l) J モードと呼ばれる通信方法が使用されており、 データを転送するのに 最適となるように設計されている。 プルモードとは、 送信側の装置と受信側の装 置が相互に通信し、 送信側の装置から送信されてくるデータを受信側の装置がバ ッファリングする際、 オーバーフローしそうになると、 送信側の装置が送信速度 を低下させ、 受信側の装置がアンダーフローしそうになると送信側の装置が通信 速度を上げるなど、 バッファリングに必要な状態を維持できるように通信させる モードである。
このため、 ポイント · トウ ·ポイントで接続された端末間のインタ ネッ トを
介した通信処理においては、 ストリームデータの転送中に遅延が生じることがあ つても、 受信側の装置と送信側の装置との間でストリームデータの再生に障害が 発生しない構成となっている。
しかしながら、 デジタル A/V放送サービスなどでは、 リアルタイムでのスト リームデータの配信を目指しているため、 大容量の送信チャンネルと必要最小容 量の戻りチャンネル (または戻りチャンネルのない) からなる 「プッシュ
(push)」 モードの通信が要求される。 ここでいう、 プッシュモードとは、 送信 側の装置が一方的に、 受信側の装置にデータを送信するモードを示す。
このため、 送信側の装置と、 受信側の装置間では、 ストリームデータの再生に 必要とされるタイムスタンプに記録された再生時刻と、 実際にストリームデータ が受信された受信時刻との間にジッタが生じてしまう。 結果として、 このジッタ によりバッファオーバーフローやバッファアンダーフローが発生してしまい、 通 常のデコーダでストリームデータをデコードすることができなくなってしまうと いう課題があった。
また、 送信側の装置と受信側の装置が、 それぞれに自らの動作に必要なクロッ クを備えているが、 一般に、 受信側の装置 (クライアントコンピュータなど) は、 クロック精度が保証されていないため、 送信側の装置で符号化されたストリーム データに含まれる再生時刻の情報と、 受信側の装置でストリームデータを受信し たときの受信時刻を比較した場合、 一致しないと言ったことが生じてしまうこと があり、 受信側の装置において、 ストリームデータを正確に復号できない恐れが あると言う課題があった。
さらに、 SONET/SDH (Synchronous Opti cal Network/Synchronous Digital Hierarchy) などのクロックの同期が管理された回線では、 データ伝送に係るジ ッタは、 ほぼ 0に管理されているが、 クロックが非同期となっている ATM
(Asynchronous Transfer Mode) では、 セルの衝突を回避させる目的で、 セル の交換機によるセルジッタが発生する。 このセルジッタは、 国内では 1. 5ms以 下、 国際的に見ても 2乃至 3ms以下に抑えられている。 この程度のジッタであ
れば、 例えば、 MPEG (Moving Picture Experts Group) などで定められている 500ns以下のジッタ補正を行うために、 MPEGデコーダが通常採用している PLL (Phase Locked Loop) などを工夫して回線ジッタを吸収することが可能である c しかしながら、 IPベースのデータ転送においては、 バックボーンと、 その末 端に存在する装置とを結ぶ LAN (Local Area Network) スィッチや IPルータな どで大きなジッタが発生する。 また、 LANスィッチや IPルータなどの接続数が 増えるに連れて (ホップ数が増えるに連れて) 、 ジッタは大きくなる。
こういった問題が存在するため、 LANスィツチに代表される機器の性能は向上 されてきており、 スィツチング自体がハードウエアにより高速で行えるようにさ れてきているが、 複数のポート入力からパケットの衝突が起きた場合、 ファース トインファース トアゥトの原則に基づいて、 バッファに一時的に蓄えられる時間 さらに、 スイッチングにおいて、 ソフトウェアの処理が含まれている場合、 そ の処理に費やされる時間が定まらないため、 さらにジッタが増加する。 結果とし て、 低遅延のリアルタイムでのストリームデータの転送を考えた場合、 ある程度 管理された回線を利用する必要があるが、 実際のジッタは、 10ms乃至 lsec程度 となるので、 従来の PLLを用いた方法では、 ジッタの補正が行えず、 符号化を 行った送信側の装置のクロックを受信側の装置で再現することができない。 結果 として、 受信側の装置では、 ストリームデータを正確に再生させることができな いという課題があった。 発明の開示
本発明はこのような状況に鑑みてなされたものであり、 ネットワークを介して ストリームデータを送信する側の装置が、 ストリームデータを符号化するときに 使用したクロックを、 受信側の装置で補正し、 より正確に再現できるようにする ものである。
本発明の第 1の情報処理装置は、 ストリームデータより再生時刻を抽出する第
1の抽出手段と、 ストリームデータの受信時刻を抽出する第 2の抽出手段と、 受 信時刻と再生時刻の差分を演算する演算手段と、 差分に基づいて再生時刻を調整 する調整手段とを含むことを特徴とする。
本発明の第 2の情報処理装置は、 ストリームデータのバケツト間の再生時刻の インターバルを抽出する第 1の抽出手段と、 ストリームデータのパケット間の 受信時刻のィンターバルを抽出する第 2の抽出手段と、 再生時刻のィンターパル と受信時刻のィンターバルの差分を演算する演算手段と、 差分に基づいて再生時 刻を調整する調整手段とを備えることを特徴とする。
前記再生時刻は、 タイムスタンプとするようにさせることができる。
前記ストリームデータのうち、 所定数の連続するパケット間の再生時刻のイン ターパルを積算し、 第 1の時間を求める第 1の積算手段と、 ス トリームデータ のうち、 所定数の連続するパケット間の受信時刻のインターバルを積算し、 第 2 の時間を求める第 2の積算手段とをさらに設けるようにさせることができ、 演算 手段には、 第 1の時間と第 2の時間との差分を演算させるようにすることができ る。
前記第 1の時間と第 2の時間との差分を平滑化する平滑化手段をさらに設ける ようにさせることができる。
前記調整手段には、 平滑化手段により平滑化された第 1の時間と第 2の時間と の差分が 1クロック分のずれとなるバケツト数毎に、 再生時刻に 1クロック分の 時間を加算、 または、 減算して再生時刻情報を調整させるようにすることができ る。
本発明の第 1の情報処理方法は、 ストリームデータより再生時刻を抽出する第 1の抽出ステップと、 ス トリームデータの受信時刻を抽出する第 2の抽出ステツ プと、 受信時刻と再生時刻の差分を演算する演算ステップと、 差分に基づいて再 生時刻を調整する調整ステップとを含むことを特徴とする。
本発明の第 2の情報処理方法は、 ストリームデータのバケツト間の再生時刻ィ ンターバルを抽出する第 1の抽出ステップと、 ストリームデータのバケツト間
の受信時刻インターバルを抽出する第 2の抽出ステップと、 受信時刻のインター バルと再生時刻の差分を演算する演算ステップと、 差分に基づいて再生時刻を調 整する調整ステップとを含むことを特徴とする。 ' 前記再生時刻は、 タイムスタンプとするようにさせることができる。
前記ストリームデータのうち、 所定数の連続するバケツト間の再生時刻のイン ターパルを積算し、 第 1の時間を求める第 1の積算ステップと、 ストリームデ ータのうち、 所定数の連続するパケット間の受信時刻のインターバルを積算し、 第 2の時間を求める第 2の積算ステップとをさらに含ませるようにすることがで き、 演算ステップには、 第 1の時間と第 2の時間との差分を演算させるようにす ることができる。
前記第 1の時間と第 2の時間との差分を平滑化する平滑化ステツプをさらに含' ませるようにすることができる。
前記調整ステツプには、 平滑化ステップにより平滑化された第 1の時間と第 2 の時間との差分が 1クロック分のずれとなるバケツト数毎に、 再生時刻に 1クロ ック分の時間を加算、 または、 減算して再生時刻情報を調整させるようにするこ とができる。
本発明の第 1の記録媒体は、 ス トリームデータより再生時刻の抽出を制御する 第 1の抽出制御ステップと、 ストリームデータの受信時刻の抽出を制御する第 2の抽出制御ステップと、 受信時刻と再生時刻の差分の演算を制御する演算制御 ステップと、 差分に基づいて再生時刻の調整を制御する調整制御ステップとを実 行させるためのプログラムが記録されてコンピュータが読み取り可能であること を特徴とする。
本発明の第 2の記録媒体は、 ストリームデータのパケット間の再生時刻インタ 一バルの抽出を制御する第 1の抽出制御ステップと、 ストリームデータのパケ ット間の受信時刻インターバルの抽出を制御する第 2の抽出制御ステップと、 受 信時刻のインターバルと再生時刻の差分の演算を制御する演算制御ステップと、 差分に基づいて再生時刻の調整を制御する調整制御ステップとを実行させるため
のプログラムが記録されてコンピュータに読み取り可能であることを特徴とする。 前記再生時刻は、 タイムスタンプとするようにさせることができる。
前記ストリームデータのうち、 所定数の連続するパケット間の再生時刻のイン ターパルの積算を制御レ、 第 1の時間を求める第 1の積算制御ステップと、 ス トリームデータのうち、 所定数の連続するパケット間の受信時刻のインターバル の積算を制御し、 第 2の時間を求める第 2の積算制御ステップとをさらに含ませ るようにすることができ、 演算制御ステップには、 第 1の時間と第 2の時間との 差分の演算を制御させるようにすることができる。
前記第 1の時間と第 2の時間との差分の平滑化を制御する平滑化制御ステップ をさらに含ませるようにすることができる。
調整制御ステップには、 平滑化制御ステップにより平滑化が制御された第 1の 時間と第 2の時間との差分が 1クロック分のずれとなるバケツト数毎に、 再生時 刻に 1クロック分の時間を加算、 または、 減算して再生時刻情報の調整を制御さ せるようにすることができる。
本発明の第 1のプログラムは、 ストリームデータより再生時刻の抽出を制御す る第 1の抽出制御ステップと、 ストリームデータの受信時刻の抽出を制御する 第 2の抽出制御ステップと、 受信時刻と再生時刻の差分の演算を制御する演算制 御ステップと、 差分に基づいて再生時刻の調整を制御する調整制御ステップとを コンピュータに実行させることを特徴とする。
本発明の第 2のプログラムは、 ストリームデータのパケット間の再生時刻イン ターバルの抽出を制御する第 1の抽出制御ステップと、 ストリームデータのパ ケット間の受信時刻インターバルの抽出を制御する第 2の抽出制御ステップと、 受信時刻のィンターパルと再生時刻の差分の演算を制御する演算制御ステップと、 差分に基づいて再生時刻の調整を制御する調整制御ステツプとをコンピュータに 実行させることを特徴とする。
前記再生時刻は、 タイムスタンプとするようにさせることができる。
前記ストリームデータのうち、 所定数の連続するバケツト間の再生時刻のイン
ターバルの積算を制御し、 第 1の時間を求める第 1 の積算制御ステップと、 ス トリームデータのうち、 所定数の連続するバケツト間の受信時刻のインターバル の積算を制御し、 第 2の時間を求める第 2の積算制御ステップとをさらに含ませ るようにさせることができ、 演算制御ステップには、 第 1の時間と第 2の時間と の差分の演算を制御させるようにすることができる。
前記第 1の時間と第 2の時間との差分の平滑化を制御する平滑化制御ステップ をさらに含ませるようにすることができる。
前記調整制御ステップには、 平滑化制御ステップにより平滑化が制御された第 1の時間と第 2の時間との差分が 1クロック分のずれとなるパケット数毎に、 再 生時刻に 1クロック分の時間を加算、 または、 減算して再生時刻情報の調整を制 御させるようにすることができる。
本発明の第 1の情報処理装置および方法、 並びにプログラムにおいては、 ス ト リームデータより再生時刻が抽出され、 ストリームデータの受信時刻が抽出され、 受信時刻と再生時刻の差分が演算され、 差分に基づいて再生時刻が調整される。 本発明の第 2の情報処理装置おょぴ方法、 並びにプログラムにおいては、 スト リームデータのパケット間の再生時刻のインターバルが抽出され、 ストリームデ ータのパケット間の受信時刻のインターバルが抽出され、 再生時刻のインターパ ルと受信時刻のインターバルの差分が演算され、 差分に基づいて再生時刻が調整 される。 図面の簡単な説明
図 1は、 本発明を適用した画像表示装置のプロック図である。
図 2は、 TSパケットの Txィンターバルと Rxィンターバルを説明する図であ る。
図 3は、 TSパケットの Txインターパルと Rxインターバルを説明する図であ る。
図 4は、 TSパケットの Txインターバルと Rxインターバルを説明する図であ
る。
図 5は、 TSの表示処理を説明するフローチャートである。
図 6は、 TSの表示処理を説明するフローチャートである。
図 7は、 TSバケツトの Txインターバルを調整する処理を説明する図である。 図 8は、 TSバケツトの Τχィンターパルを調整する処理を説明する図である。 図 9は、 TSバケツトの Τχインターバルを調整する処理を説明する図である。 図 1 0は、 TSバケツトの Τχインターバルを調整する処理を説明する図である。 図 1 1は、 TSバケツトの Τχィンターバルを調整する処理を説明する図である。 図 1 2は、 媒体を説明する図である。 発明を実施するための最良の形態
図 1は、 本発明に係る画像表示装置 2の一実施の形態の構成を示す図である。 本発明の画像表示装置は、 ネットワークを介して配信されてくるストリームデ ータ、 例えば、 MPEG (Moving Picture Experts Group) 2などで圧縮されて配 信されるトランスポートス トリーム (以下、 TSとも称する) をリアルタイムで 受信して、 表示部 2 9に表示させるものである。
I/F (インターフェース) 1 1は、 ネットワーク 1を介してコンテンツなどを 配信するサーバより送信されてくる TSを受信し、 DMA (Direct Memory Access control ler) 1 2に出力する。 DMA 1 2は、 スィッチ 1 3を適宜制御しながら、 I/F 1 1から入力されてくる TSを RAM I 4に記憶させたり、 または、 RAM 1 4に 記憶された TSをタイムスタンプ抽出部 1 5、 ィネーブル信号抽出部 2 0、 およ ぴバッファ 2 7に出力する。
タイムスタンプ抽出部 1 5は、 TSに含まれているタイムスタンプ Txを TSパ ケッ ト単位で抽出し、 Txインターバル演算部 1 6、 および、 調整部 2 5に出力 する。 ここでいうタイムスタンプ Txは、 MPEGの PCR (Program Clock
Reference) に対応するものである。 この PCRは、 RTP (Real Time Protocol) でいうタイムスタンプと同等のものであるので、 本説明においては、 タイムスタ
ンプに統一して称するものとする。
Txインターバル演算部 1 6は、 入力された TSパケットのタイムスタンプ Τχ の情報から連続する TSバケツト間のタイムスタンプ Τχのィンターバル、 すな わち、 連続する TSバケツ トの持つタイムスタンプ Τχの時刻情報の差分となる 時間 (以下、 Txインターバルと称する) を求め、 Txインターバル積算カウンタ 1 7、 および、 Τχインターパルカウンタ 1 8に出力する。
Τχインターバル積算カウンタ 1 7は、 Τχインターバル演算部 1 6より TS ノヽ。 ケット毎に順次入力される Τχインターバルを積算し、 サンプリング周期信号発 生部 3 0よりサンプリング周期信号が入力されるタイミングでその積算値を読み 出して、 減算器 1 9に出力する。
Τχィンターパルカウンタ 1 8は、 Τχィンターバル演算部 1 6より出力される Τχィンターバルの個数をカウントし、 サンプリング周期信号発生部 3 0よりサ ンプリング周期信号が入力されるタイミングで Τχィンターバルの個数を Di v (割算器) 2 4に出力する。
ィネーブル信号抽出部 2 0は、 スィッチ 1 3より供給される TSからイネーブ ル信号を抽出して Rxィンターバル演算部 2 1に出力する。
Rxインターバル演算部 2 1は、 イネ一プル信号抽出部 2 0より供給されてく るィネーブル信号のタイミングである、 TSバケツトが受信された時刻 Rxに基づ いて、 連続する複数の TSパケットの受信された時刻間のインターバル (以下、 Rxインターバルと称する〉 を求め、 Rxインターバル積算カウンタ 2 2に出力す る。
Rxィンターバル積算カウンタ 2 2は、 Rxィンターバル演算部 2 1より TS ノヽ。 ケット毎に順次入力される Rxインターバルを積算し、 サンプリング周期信号発 生部 3 0よりサンプリング周期信号が入力されるタイミングでその積算値を読み 出して、 減算器 1 9に出力する。
減算器 1 9は、 Txインターバル積算カウンタ 1 7より入力される Τχインター バルの積算値 (以下、 ∑ (Tx ( i + 1 ) - Tx ( i ) ) とも称する) から、 Rxィ
2
10
ンターパル積算カウンタ 2 2より入力される Rxインターバルの積算値 (以下、 ∑ (Rx ( i + 1 ) — Rx ( i ) ) とも称する) を減算して、 その差分 Δ Τ ( =∑ (Tx ( i + 1 ) - Tx ( i ) ) 一∑ (Rx ( i + 1 ) -Rx ( i ) ) ) を LPF 2 3に 出力する。
LPF 2 3は、 減算器 1 9からサンプリング周期信^の発生間隔で順次出力され る差分 Δ Τを平滑化して Div (割算器) 2 4に出力する。
Div (割算器) 2 4は、 LPF 2 3より入力されてくる差分 Δ Τを Txインターパ ルカウンタ 1 8から入力されてくる Txインターバルの個数で除して調整バケツ ト数 Cを求めて調整部 2 5に出力する。
調整部 2 5は、 Div 2 4から入力された調整パケット数 Cに基づいて、 調整し ようとする調整パケット番号 Sを求め、 その調整バケツト番号 Sに対応する TS パケット以降の TSバケツトに対して、 加算係数 Aの値に対応するクロック数の 時間をタイムスタンプ Txに加算、 または、 減算してずらすことによりタイムス タンプ Txと TSパケットの受信時刻とのずれを調整して、 読出信号生成部 2 6 に出力すると共に、 加算係数 Aを 1インクリメント、 または、 1デクリメントし たとき、 Tx インターバル積算カウンタ 1 7、 Rx インターバル積算カウンタ 2 2、 および、 Txインターバルカウンタ 1 8をリセットする。 また、 調整バケツト番 号 Sに基づいて、 調整がなされた場合、 その値を完了調整パケット番号 Tとして 更新し、 さらに、 その完了調整パケット番号 Tに、 新たな調整パケット数 Cを加 算することにより、 新たな調整パケット番号 Sを求める。 尚、 加算係数 A、 調整 バケツト番号 S、 および、 完了調整パケット番号は、 自らのメモリ 2 5 aに記憶 されている。 また、 このタイムスタンプ Txの調整方法については詳細を後述す る。
読出信号生成部 2 6は、 調整部 2 5より入力されるタイムスタンプ Txの時刻 情報に基づいて、 対応する TSパケットの読出信号を対応する時刻に生成してバ ッファ 2 7に出力する。 バッファ 2 7は、 スィッチ 1 3から入力された TSパケ ットを一時的に記億して、 読出信号生成部 2 6より読出信号が入力されるとき、
対応する TSバケツトを読み出してデコード部 28に出力する。 デコード部 28 は、 バッファ 2 7より入力された TSパケットに基づいて、 MPEG 2方式などの所 定の方式で TSを復号して表示部 29に表示させる。
サンプリング周期信号発生部 30は、 所定の時間間隔で Txインターバルカウ ンタ 1 8、 Txインターバル積算カウンタ 1 7、 および、 Rxインターバル積算力 ゥンタ 22に対して記憶されている値を読み出させるタイミングを示す信号を所 定のサンプリング周期で出力する。 尚、 このサンプリング周期は、 実質的に、 ィ ネーブル信号が入力されるタイミングと同じであってもよいので、 イネ一プル信 号で代用するようにしてもよい。
次に、 タイムスタンプ Txの調整について説明する。
図 2で示すように、 TSパケット PKT (m) , PKT (m + l) , PKT (m +
2) · ■ · PKT (n- 2) , PKT (n— 1) , PKT (n) が連続的に存在するものと する。 尚、 ここでパケット PKT (m) のタイムスタンプ (再生が指定されている 時刻) は Tx (m) で示されており、 また、 パケット PKT (n) のタイムスタン プは Tx (11 ) で示されている。
理想的な状態では、 パケット PKT (m) が受信される時刻 Rx (m) とバケツ ト PKT (n) が受信される時刻 Rx (n) との関係は、 Tx (m) — Tx (n) =Rx (m) -Rx (n) となるはずである。
しかしながら、 実際には、 インターネットなどのネットワークを介した通信に より受信される TSパケットは、 上述のような様々な要因によりずれが生じるこ とがある。 この場合、 時間の関係は、 例えば、 図 3で示すようになる。 すなわち、 上段の各 TSパケットの受信時刻 Rxの Rxィンターバルの積算ィ直∑ (Rx ( i + 1) -Rx ( i ) ) =111乃至11ー 1 :以下においても同じ) と、 各 TSバケツ トのタイムスタンプ Txの積算値∑ (Tx ( i + 1) — Tx ( i ) ) (= t) ( i = m乃至 n— 1 :以下においても同じ) との間には、 差分 ΔΤで示す実質的な誤 差が生じる。
図 3で示す関係から、 単位時間当りの誤差 (1クロック当りの誤差) は ΔΤ/
tで示されることになる。 したがって、 ITSパケットあたりの誤差 CLK(IPKT) は、 以下の式 (1) で示すような関係となる。 (Tx(i+1)-Tx(i)) ' · · (1)
結果として、 図 4で示すように、 ITSパケット毎に受信時刻のインターバル Rx ( i ) から実際の式 (1) で求めることができる誤差 CLK(IPKT)となる時間 を調整することで、 正確なタイムスタンプ Txに補正することが可能となる。 ところが、 ハードウェアの処理は、 時間の最小単位であるクロックの時間幅よ りも短い時間での処理を実行することができない。 このため、 式 (1) の処理に より小数点以下の値が生じる場合、 すなわち、 割り切れない場合、 1個の TSパ ケット毎に、 図 4で示すように式 (1) を用いてタイムスタンプ Txを調整する ことができない。
そこで、 1ク口ック分の誤差が生じる TSバケツト数を調整バケツト数 Cとし て求め、 調整パケット数 C毎に 1クロック分の時間を加算、 または、 減算する ことでタイムスタンプ Txを調整する。
ここで、 調整パケット数 Cは、 以下に示す式 (2) で示すように、 誤差 CLK(IPKT)の逆数となる。
Q— 1 —( ! ] , . · (2、
ix(Tx(i+1)— Tx(i)) lk(IPKT)ノ
N— ρκτ … (4)
∑(Tx(i+1)-Tx(i))-∑(Rx(i+1)-Rx(i)) さらに、 この式 (2) は、 式 (3) で示すように変形することができる <
で、 N - PKTは、 積算される Τχインターバルが図 3の時間 t となるときのバケツ ト数である。 さらに、 式 (3 ) の Txインターバル (Tx ( i + 1 ) - Tx ( i ) ) をキャンセルすると、 式 (4 ) で示すような関係が得られる。
式 (4 ) で示すように、 パケット数 N- PKTを Txインターバルの積算値から Rx インターバルの積算値を減じた値、 すなわち、 差分 Δ Τで除することにより調 整バケツト数 Cが求められる。
ここで、 図 5, 図 6のフローチャートを参照して、 図 1の画像表示装置による 画像表示処理について説明する。
ステップ S 1において、 調整部 2 5は、 メモリ 2 5 aの加算係数 Aを 0に初期 化する。 このとき、 Txインターバルカウンタ 1 8、 Txインターバル積算カウン タ 1 7、 および、 Rxインターバル積算カウンタ 2 2も初期化されて 0となる。 また、 調整パケット番号 S、 および、 完了調整パケット番号 Tは 1に初期化され る。
ステップ S 2において、 I /F 1 1は、 ネットワーク 1を介して送信されてくる TSパケットを順次受信し、 DMA 1 2に出力する。 ステップ S 3において、 DMA 1 2は、 入力された TSを順次スィツチ 1 3に出力し、 ステップ S 4において、 そ のスィッチを制御して適宜 RAM I 4を使用しながら、 順次バッファ 2 7、 タイム スタンプ抽出部 1 5、 および、 ィネーブル信号抽出部 2 0に出力する。
ステップ S 5において、 バッファ 2 7は、 スィツチ 1 3を介して入力される TSパケットを順次記憶する。 ステップ S 6において、 タイムスタンプ抽出部 1 5は、 TSバケツトからタイムスタンプ Txを抽出して Txィンターバル演算部 1 6および調整部 2 5に出力する。
ステップ S 7において、 Txインターバル演算部 1 6は、 入力されたタイムス タンプ Txから Txインターバルを演算し、 Txインターパル積算カウンタ 1 7、 および、 Txィンターバルカウンタ 1 8に出力する。 すなわち、 例えば、 図 7上 段で示すように各 TSパケット ( 1 ) 乃至 ( 1 2 ) の各タイムスタンプ Txが、 タイムスタンプ時刻 Tx ( 1 ) 乃至 Tx ( 1 2 ) である場合 (尚、 各カツコ内の番
号はパケットの番号である) 、 パケット (1) とパケット (2) の Txインター バルは、 Tx (2) -Tx ( 1) として演算され、 パケット (2) とパケット
(3) の Txインターバルは、 Tx (3) -Tx (2) として演算され、 順次同様に して Txインターバルを演算する。 尚、 図 7上段は、 タイムスタンプ Txと Txィ ンターバルの関係を示し、 図 7下段は、 TSパケットの受信時刻 Rxと Rxインタ 一バルの関係を示しており、 各 () 内の番号は、 TSパケットの番号であり、 以 降においても同様に示す。
ステップ S 8において、 Txインターバル積算カウンタ 1 7は、 入力された Tx インターバルを積算して記憶する。 すなわち、 例えば、 Txインターバル積算力 ゥンタ 1 7は、 パケット (2) が入力される場合、 Txィンターパル (Tx (2) -Tx ( 1 ) ) が記憶され、 パケット (3) が入力されるとき Txインターバル (Tx (3) 一 Tx (2) ) が入力されると共に、 それまでに記憶されていた値に 積算されるので、 Txインターバル積算カウンタ 1 7には、 Txインターバル (Tx (2) -Tx (1) ) + (Tx (3) -Tx (2) ) が記憶される。
ステップ S 9において、 ィネーブル信号抽出部 20は、 TSパケットからイネ 一ブル信号抽出し、 そのイネ一プル信号から TSバケツトの受信時刻 Rxを求め て、 Rxインターバル演算部 2 1に出力する。 ステップ S 1 0において、 Rxイン ターバル演算部 2 1は、 TSバケツトが受信された時刻 Rx間の差分から Rxイン ターパノレを求める。
すなわち、 図 7下段で示すように各 TSパケット (1) 乃至 (9) を受信した 時刻を Rx ( 1) 乃至 Rx (9) で示す場合、 例えば、 TSパケット (2) が受信さ れるとき、 TSパケット (2) が受信された時刻 Rx (2) と、 その前に受信され ている TSパケット (1 ) が受信された時刻 Rx ( 1 ) との Rxインターバルが (Rx (2) -Rx ( 1 ) ) として求められ、 この値が Rxインターバル積算カウン タ 2 2に出力される。
また、 その次のタイミングで、 図 7下段のパケット (3) でイネ一プル信号が 検出された場合、 その前のパケット (2) が受信された時刻 Rx (2) とバケツ
ト (3) が受信された時刻 Rx (3) の差分 (Rx (3) -Rx (2) ) が Rxインタ 一パルとして求められて、 これが Rxィンターバル積算カウンタ 2 2に出力され る。 さらに、 同様の処理がなされる。 尚、 ィネーブル信号は、 実際には、 所定数 の複数の TSバケツトが受信される毎に出力されるものである。
ステップ S 1 1において、 Rxインターバル積算カウンタ 2 2は、 入力された Rxインターバルを積算して記憶する。 すなわち、 上述のようにパケット (2) が受信された場合、 Rxインターバル積算カウンタ 2 2は、 入力された Rxインタ 一バル (Rx (2) -Rx ( 1) ) のみを記憶していることになる。 また、 同様に して、 引き続きパケット (3) が入力されたタイミングでは、 差分 (Rx (3) -Rx (2) ) が積算されて、 (Rx (2) -Rx ( 1) ) + (Rx (3) 一 Rx
(2) ) が記憶されることになる。 以下、 順次同様の処理が繰り返されることに なる。
ステップ S 1 2において、 Txインターバルカウンタ 1 8は、 Τχィンターバル 演算部 1 6より入力されてくる Τχ ィンターバルの個数をカウントして記憶する。 ステップ S 1 3において、 サンプリング周期信号発生部 3 0がサンプリング周 期信号を出力し、 Τχインターバルカウンタ 1 8、 Τχインターバル積算カウンタ 1 7、 および、 Rxインターパル積算カウンタ 2 2に入力されたか否かが判定さ れ、 サンプリング周期信号が入力されなかった場合、 その処理は、 ステップ S 1 に戻り、 サンプリング周期信号が出力されるまでステップ S 2乃至 S 1 3の処理 が繰り返される。
ステップ S 1 3において、 サンプリング周期信号が発生されたと判定された場 合、 ステップ S 1 4において、 Txィンターバル積算力ゥンタ 1 7は、 Τχィンタ 一バルの積算値∑ (Tx ( i + 1 ) _Tx ( i ) ) を減算器 1 9に出力し、 Rxイン ターバル積算カウンタ 2 2は、 Rxインターバルの積算値∑ (Rx ( i + 1) -Rx ( i ) ) を減算器 1 9に出力し、 さらに、 Txインターバルカウンタ 1 8は、 力 ゥントして記憶されている Txィンターバルの個数を Div24に出力する。
例えば、 図 7の場合、 TSパケットが 1個おきに受信されるタイミングでサン
2
16
プリング周期信号が入力されるとき、 例えば、 最初に TSパケッ ト 2が受信され るタイミングでサンプリング周期信号が入力されるものとすると、 Txインター バル積算カウンタ 1 7には、 パケット (1) , (2) のタイムスタンプ Tx
(2) と Tx (1) との差分 (Txインターバル) が記憶されていることになるの で、 ∑ (Tx ( i + 1 ) 一 Tx ( i ) ) = (Tx (2) -Tx (1) ) が Txインターバ ル積算カウンタ 1 7から出力されることになる。 また、 Rxインターバル積算力 ゥンタ 22には、 パケット (1) , (2) の受信時刻 Rx (1) と Rx (2) との 差分 (Rxインターバル) が加算されていることになるので、 ∑ (Rx ( i + 1 ) -Rx ( i ) ) = (Rx (2) -Rx (1) ) が Rxインターバル積算カウンタ 22か ら出力されることになる。
また、 TSバケツト 4が受信されるタイミングでサンプリング周期信号が受信 される場合、 Txインターバル積算カウンタ 1 7には、 パケット (1) 乃至
(4) のタイムスタンプ Tx (1) 乃至 Tx (4) の各差分 (Txインターバル) が 加算されていることになるので、 ∑ (Tx ( i + 1 ) -Tx ( i ) ) = (Tx (2) -Tx (1) ) + (Tx (3) -Tx (2) + (Tx (4) 一 Tx (3) ) = (Tx (4) -Tx (1) ) が減算器 1 9に出力されることになる。 同様にして、 Rxインター バル積算カウンタ 22には、 パケット 1乃至 4の受信時刻の各差分 (Rxインタ —バル) が加算されていることになるので、 ∑ (Rx ( i + 1) -Rx ( i ) ) = (Rx (2) 一 Rx (1) ) + (Rx (3) 一 Rx (2) + (Rx (4) 一 Rx (3) ) = (Rx (4) -Rx (1) ) が Rxインターパル積算カウンタ 22から出力されるこ とになる。
ステップ S 1 5において、 減算器 1 9は、 Txインターバルの積算値∑ (Tx ( i + 1) -Tx ( i ) ) から Rxインターバルの積算値∑ (Rx ( i + 1) — Rx ( i) ) を減算し、 差分 ΔΤ (=∑ (Tx ( i + 1 ) -Tx ( i ) ) 一∑ (Rx ( i + 1) -Rx ( i ) ) ) を求めて LPF23に出力する。
すなわち、 例えば、 図 7の場合、 TSパケット (2) が受信されるタイミング では、 Txインターパル積算カウンタ 1 7から出力される ∑ (Tx ( i + 1 ) 一 Tx
( i ) ) = (Tx (2) -Tx ( 1 ) ) から ∑ (Rx ( i + 1 ) -Rx ( i ) = (Rx (2) -Rx (1) ) が減算されて、 差分 ΔΤが出力される (ΔΤのクロック数が 出力される) 。 尚、 説明を簡単にするため、 図 7上段では、 1個の Txインター バルが 1クロックになるものとし、 さらに、 Txインターバルの 4倍が Rxインタ 一バルの 3倍に等しいものとする。 この場合、 差分 ΔΤは、 ΔΤ=Σ (Tx ( i + 1) -Tx ( i ) ) -∑ (Rx ( i + 1) -Rx ( i ) ) = (Tx (2) -Tx ( 1 ) ) 一 (Rx (2) -Rx ( 1) ) = 1 -4/3=- 1/3 (クロック) となる。
同様にして、 TSバケツト 4が受信されるタイミングでサンプリング周期信号 が受信される場合、 差分 ΔΤは、 ΔΤ= (Tx (4) -Tx (1) ) ― (Rx (4) 一 Rx (1) ) = 3-4=- 1 (クロック) となる。 以降についても、 同様にして 求められる。
ステップ S 1 6 (図 6) において、 LPF23は、 入力された差分 Δ Tを平滑化 して Div 24に出力する。 すなわち、 実際の Rxインターバルは、 図 7下段で示 すような一定の間隔とはならないので、 差分 ΔΤについても同様に変化ことに なるため、 平滑化処理を行う。 結果として、 Rxインターバルにばらつきが発生 しても、 安定した差分 ΔΤの値を設定することができる。
ステップ S 1 7において、 Div 24は、 LPF23により平滑化された差分 ΔΤ で、 Txインターバルカウンタ 1 8より入力された Txインターバルの個数 N- PKT を割ることにより式 (4) で示した演算を実行し、 調整パケット数 Cを求め調 整部 2 5に出力する。
すなわち、 上述のように図 7の場合、 パケット (2) が入力されるとき、 差分 ΔΤ は一 1/3 (クロック) となり、 Tx ィンターバルの数は、 バケツト ( 1 ) , (2) 間の 1個であるので調整パケット数 Cは、 C=lZ (- 1/3) =ー 3個 となる。
同様にして、 パケット (4) が入力されるとき、 差分 ΔΤは 1 (クロック) と なり、 Txィンターバルの数は、 パケット (1) , (2) 間, パケット (2) , ( 3 ) 間, パケット ( 3 ) , (4) 間の 3個であるので調整パケット数 Cは、 C
= 3 / (一 1 ) =ー 3個となる。
図 7の場合、 Txインターバルと Rxインターバルの関係が変化しないので、 い ずれのタイミングでも調整パケット数は、 同一となるが、 実際には、 Rxインタ 一バルが変化するので、 調整パケット数 Cは、 一定とはならないこともある。 ステップ S 1 8において、 調整部 2 5は、 求められた調整パケット数 Cに基づ いて、 調整パケット番号 Sを求める。 すなわち、 調整部 2 5は、 1クロック分の 時間を加算し始めた完了調整バケツト番号丁に、 今現在の調整バケツト数 Cの絶 対値を加算して、 実際に調整を行う調整パケット番号 Sを求める。 例えば、 最初 の処理の場合、 その前に 1クロック分の時間が加算される調整がなされた TSパ ケットが存在しないが、 処理が開始されるとき TSパケット (1 ) では、 調整が なされていることになるので、 初期値として S = 1が設定されるので、 求められ た調整パケット数 Cを加算することにより、 調整パケット番号 S = 4 ( = 1 + 3 ) となる。
ステップ S 1 9において、 調整部 2 5は、 今現在の TSバケツトが、 調整パケ ット番号に対応する TSパケットであるか否かを判定する。 すなわち、 図 7の場 合、 調整パケット番号 S = 4であるが、 図 7下段のパケット 2が入力されるタイ ミングでは、 調整パケット番号 S = 4ではないと判定され、 その処理は、 ステツ プ S 2 0に進む。 .
ステップ S 2 0において、 調整部 2 5は、 タイムスタンプ抽出部 1 5よりこの タイミング以降に供給されてくるタイムスタンプ Txにクロック数 X加算係数 A の時間を加算する。 今の場合、 加算係数 Aは◦であるので、 実質的にタイムスタ ンプ Txを調整することなく、 そのまま読出信号生成部 2 6に出力する。 すなわ ち、 ステップ S 1 9において、 調整パケット番号ではないということは、 タイム スタンプ Txと TSバケツトの受信された時刻 Rxのずれが 1クロック未満である ことになるので、 タイムスタンプ Txの調整は行われない。
ステップ S 2 1において、 読出信号生成部 2 6は、 入力されたタイムスタンプ Txのタイミングでバッファ 2 7に出力する。 ステップ S 2 2において、 ノ ッフ
03 008692
19
ァ 2 7は、 読出信号が入力されたタイミングで対応する TSバケツトをデコード 部 2 8に出力する。
ステップ S 2 3において、 デコーダ 2 8は、 読み出された TSパケットをデコ 一ドして表示部 2 9に表示させる。
ステップ S 2 4において、 トランスポートストリームがその後も続いているか 否かが判定され、 続いていると判定された場合、 その処理は、 ステップ S 2に戻 り、 続いていないと判定された場合、 その処理は、 終了する。
ステップ S 1 9において、 図 7の場合、 調整パケット番号 S = 4であるが、 例 えば、 図 7下段のパケット (4 ) が入力されると、 調整パケット番号 S = 4に対 応する TSパケットであると判定され、 その処理は、 ステップ S 2 5に進む。
ステップ S 2 5において、 調整部 2 5は、 調整バケツト数 Cが負の値である か否かを判定する。 例えば、 図 7の場合、 調整パケット数 Cは、 一 3であるの で調整パケット数 Cは、 負の値であると判定され、 その処理は、 ステップ S 2 6に進む。
ステップ S 2 6において、 調整部 2 5は、 メモリ 2 5 aの加算係数 Aを 1イン クリメントする。 すなわち、 今の場合、 加算係数がィンクリメントされて 1にな るので、 これ以降の処理においては、 タイムスタンプ抽出部 1 5から取得されて いるタイムスタンプ Txに 1クロック分の時間を加算して読出信号生成部 2 6に 出力する。
ステップ S 2 7において、 調整部 2 5は、 Tx インターバル積算カウンタ 1 7、 Rxィンターバル積算カウンタ 2 2、 および、 Txィンターパルカウンタ 1 8をリ セットする。
ステップ S 2 8において、 完了調整バケツト番号 Tを調整バケツト番号 Sに更 新する。 すなわち、 今の場合、 完了調整パケット番号 Tが 1から調整パケット番 号 Sの値であった 4に更新される。
すなわち、 調整パケット数 Cは、 受信される TSバケツトの時刻の積算値と TS バケツトのタイムスタンプ Txの積算値の差分 Δ Τが 1クロック分に相当すると
きの Txインターバルの個数を示しているので、 図 7で示すように、 Τχインター バルが 3個になると、 受信される Rxインターバルとの差分 (ずれ) が 1クロッ ク分 (図 7の場合、 1クロックと 1個の Tx インターバルが同じである) となる。 そこで、 調整パケット数 Cに相当する TSバケツトがカウントされたタイミング で、 図 8上段で示すように、 それ以降のタイムスタンプ Τχの値の全てに加算係 数 Αに対応する数のクロック数の時間を加算するようにして、 受信時刻とのずれ を補正する。 図 8上段においては、 タイムスタンプ!^' (4) 乃至 Tx, (1 0) は、 タイムスタンプ Τχ (4) 乃至 Τχ ( 1 0) のそれぞれに 1クロック分の時間 が加算された時刻となる。
また、 完了調整パケッ ト番号 Τ = 4に更新された後、 上述の処理により調整パ ケット数 Cに変化が生じない場合、 図 8下段で示すように、 TSパケット 4以降 の TSパケットが受信されるタイミングでは、 ステップ S 1 8において、 完了調 整パケット番号 Τ =: 4に調整パケット数 Cの絶対値 = 3が加算されることにより、 調整パケット番号 S = 7となる。 この状態で、 TSパケット (5) , (6) が受 信されるタイミングでは、 ステップ S 1 9において、 調整パケット番号 Sの TS パケットが受信されないので、 その処理は、 ステップ S 2 0に進むことになる。 さらに、 TSパケット (7) が受信されるタイミングでは、 タイムスタンプ Tx との差分が 1クロック分となり、 調整パケット番号 S = 7のパケットが受信され ることになるので、 ステップ S 2 5, S 2 6の処理が実行されることにより、 力 [1 算係数 Αがさらに 1インクリメントされて 2となるので、 TSパケット 8以降の タイムスタンプ Tx' (8) 乃至 Tx' ( 1 0) は、 図 9で示すように、 タイムスタ ンプ Tx', (8) 乃至 Tx' ' (1 0) に変更される。 すなわち、 タイムスタンプ Tx' ' (8) 乃至 Τχ,' (1 0) は、 元のタイムスタンプ Tx (8) 乃至 Tx (1 0 ) に加算係数 A = 2 Xクロック分の時間を加算して調整されることで補正され ることになる。
ステップ S 2 5において、 調整パケット数 Cが負ではない、 すなわち、 0以上 の値であった場合、 ステップ S 2 9において、 調整部 2 5は、 メモリ 2 5 aの力 [I
8692
21
算係数 Aを 1デクリメントする。
すなわち、 例えば、 図 10で示すように、 Txインターバル 1回分が 1クロッ クであり、 かつ、 Τχインターバル 3回分で Rxインターバル 4回分である場合、 バケツト 5が受信されたタイミングでサンプリング周期信号が受信されると、 ス テツプ S 1 7の処理により調整パケット数 Cは、 C= 3Z (3-9/4) =4と なるので、 ステップ S 1 8の処理により、 調整パケット番号 Sは、 最初の処理の 場合、 調整パケット番号は 1 (=前回調整パケット番号 T) +4 (=調整バケツ ト数 C) = 5となる。 そこで、 TSパケット (5) が入力されると、 ステップ S 1 9において、 調整パケット番号であると判定され、 ステップ S 20において、 調整パケット数 Cが正であると判定され、 その処理は、 ステップ S 29に進むこ とになる。
ステップ S 29において、 加算係数 Aが 1デクリメントされることにより、 ス テツプ S 20の処理により、 TSパケットのタイムスタンプ Txから 1クロック分 の時間が減算される。 すなわち、 図 1 1上段で示すように、 TSパケッ ト (1) 乃至 (4) までカウントされると、 その次の TSパケット (5) のタイムスタン プ Tx (5) は、 加算係数 A (= 1) Xクロック数分だけ減算されたタイムスタ ンプ Tx' (5) となる。 図 1 1上段の場合、 1回の Txインターバルが 1クロッ クとなっているので、 実質的には、 TSパケット 4のタイムスタンプ Tx (4) と TSパケット 5のタイムスタンプ Tx' (5) は、 同一となり、 後から再生される TSパケット (5) のみが再生されることになる。
また、 調整パケット数 Cが変化することがない場合、 最初の処理により、 完 了調整パケット番号 Tは、 5に更新されることになるので、 図 1 1のパケット
(9) が入力されるタイミングでは、 ステップ S 1 8の処理で、 調整パケット番 号 Sは、 5 (=完了調整パケット番号 T) +4 (=調整パケッ ト数 C) =9とな るのでパケット (9) が入力されるタイミングで、 加算係数 Aはさらに 1デクリ メントされることになるので、 加算係数 A (= (一 2) ) Xクロック分の時間が
(9) から減じられてタイムスタンプ Tx' ' (9) となり、 こ
のときも実質的に、 TSパケット (8 ) のタイムスタンプ Tx' ( 8 ) と同一の時 刻となる。
しかしながら、 実際には、 Txインターバルは、 複数のクロックであることが 常であり、 図 1 1上段で示すように、 補正前の TSパケットが消滅するようなこ とはなく 1クロック分の補正のみがなされることになる。
したがって、 この処理により、 実際に受信されるタイミングとタイムスタンプ との差分は、 最大でも 1クロック以下に維持されることになるので、 ジッタを除 去すると共に送信側の装置で使用されていたク口ック精度でストリームデータを 再生することが可能となる。
また、 上述の処理においては、 ス トリームデータを一時的にバッファに蓄積し た後、 再生時間を調整するのではなく、 バッファに記憶させる処理を行う前に、 順次再生タイミングを調整した後にバッファに蓄積させるようにしているので、 バッファに蓄積させる時間を短くさせることができ、 システム全体としての遅延 を低減させることができる。
さらに、 上述においては、 MPEGの TSを用いた場合の例について説明してきた 力 タイムスタンプに準じた機能を有したストリームデータのリアルタイムでの 配信処理にも使用することができる。
また、 IPベースのネットワークに限らず、 その他のネッ トワークにも利用す ることが可能である。
上述した一連の処理は、 ハードウェアにより実行させることもできるが、 ソフ トウエアにより実行させることもできる。 一連の処理をソフトウエアにより実行 させる場合には、 そのソフトウェアを構成するプログラムが、 専用のハードゥエ ァに組み込まれているコンピュータ、 または、 各種のプログラムをインス トール することで、 各種の機能を実行させることが可能な、 例えば汎用のパーソナルコ ンピュータなどに記録媒体からインストールされる。
図 1 2は、 画像表示装置 2をソフトウエアにより実現する場合のパーソナルコ ンピュータの一実施の形態の構成を示している。 パーソナルコンピュータの CPU
1 0 1は、 パーソナルコンピュータの動作の全体を制御する。 また、 CPU 1 0 1 は、 バス 1 0 4および入出力ィンターフェース 1 0 5を介してユーザからキーポ ードゃマウスなどからなる入力部 1 0 6から指令が入力されると、 それに対応し X ROM (Read Only Memory) 1 0 2に格納されているプログラムを実行する。 あ るいはまた、 CPU 1 0 1は、 ドライブ 1 1 0に接続された磁気ディスク 1 1 1、 光ディスク 1 1 2、 光磁気ディスク 1 1 3、 または半導体メモリ 1 1 4から読み 出され、 記憶部 1 0 8にインス トールされたプログラムを、 RAM (Random Access Memory) 1 0 3にロードして実行する。 これにより、 上述した画像処理装置の機 能が、 ソフトウェアにより実現されている。 さらに、 CPU 1 0 1は、 通信部 1 0 9を制御して、 外部と通信し、 データの授受を実行する。
プログラムが記録されている記録媒体は、 図 1 2に示すように、 コンピュータ とは別に、 ユーザにプログラムを提供するために配布される、 プログラムが記録 されている磁気ディスク 1 1 1 (フレキシブルディスクを含む) 、 光ディスク 1 1 2 (CD-ROM (Compact Disc-Read Only Memory) , DVD (Di gi tal Versat i l e Disc) を含む) 、 光磁気ディスク 1 1 3 (MD (Mini-Di sc) を含む) 、 もしくは 半導体メモリ 1 1 4などよりなるパッケージメディアにより構成されるだけでな く、 コンピュータに予め組み込まれた状態でユーザに提供される、 プログラムが 記録されている R0M 1 0 2や、 記憶部 1 0 8に含まれるハードディスクなどで構 成される。
尚、 本明細書において、 記録媒体に記録されるプログラムを記述するステップ は、 記載された順序に沿って時系列的に行われる処理は、 もちろん、 必ずしも時 系列的に処理されなくとも、 並列的あるいは個別に実行される処理を含むもので ある。 産業上の利用可能性
本発明によれば、 ジッタを除去すると共に送信側のクロック精度でストリーム データを再生することが可能となる。 また、 バッファに蓄積させる時間を短くさ
せることができ、 システム全体としての遅延を低減させることができる。