(57)【特許請求の範囲】
【請求項１】
所定のネットワークを介して送信装置に接続される通信装置において、
前記送信装置から送信されてきたパケットを受信する受信手段と、
前記送信装置と共有するクロックに同期したクロックを生成し、生成した前記クロックをカウントするカウント手段と、
前記受信手段により、前記パケットが受信されたときの、前記カウント手段によりカウントされた前記クロックの値を抽出する抽出手段と、
前記受信手段により受信された前記パケットから、到着間隔および同期残差を含むタイムスタンプが含まれるパケットを検出する第１の検出手段と、
前記第１の検出手段により検出された前記パケットに含まれる前記タイムスタンプから、前記到着間隔および前記同期残差を検出する第２の検出手段と、
前記第２の検出手段により検出された前記到着間隔および前記同期残差、並びに前記抽出手段により抽出された前記クロックの値に基づいて、前記タイムスタンプの修正値を計算する修正値計算手段と、
前記修正値計算手段により計算された前記修正値に基づいて、前記タイムスタンプを修正する修正手段と
を備えることを特徴とする通信装置。
【請求項２】
前記修正値計算手段は、
前記抽出手段により抽出された、前記第１の検出手段により、前記到着間隔および前記同期残差を含む前記タイムスタンプが含まれる第１のパケットが検出されたときの、前記カウント手段によりカウントされた前記クロックの値と、前記第１のパケットに含まれる前記タイムスタンプの値とのオフセット値を計算し、
計算した前記オフセット値と、前記クロックの値に基づいて、基準クロック値を計算し、
計算した前記オフセット値、計算した前記基準クロック値、および前記抽出手段により抽出された、前記第１の検出手段により、前記到着間隔および前記同期残差を含む前記タイムスタンプが含まれる第２のパケットが検出されたときの、
前記カウント手段によりカウントされた前記クロックの値に基づいて、前記第２のパケットに含まれる前記タイムスタンプの値の推測値を計算し、
計算した前記推測値、並びに前記第１のパケットに含まれる前記到着間隔および前記同期残差に基づいて、前記第２のパケットに含まれる前記タイムスタンプの修正値を算出する
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記修正値計算手段により計算された、前記オフセット値、および計算された前記修正値を、前記第１のパケットおよび前記第２のパケットから構成されるプログラムに対応させて記憶する記憶手段
をさらに備えることを特徴とする請求項２に記載の通信装置。
【請求項４】
所定のネットワークを介して送信装置に接続される通信装置の通信方法において、
前記送信装置から送信されてきたパケットを受信する受信ステップと、
前記送信装置と共有するクロックに同期したクロックを生成し、生成した前記クロックをカウントするカウントステップと、
前記受信ステップの処理で、前記パケットが受信されたときの、前記カウントステップでカウントされた前記クロックの値を抽出する抽出ステップと、
前記受信ステップの処理で受信された前記パケットから、到着間隔および同期残差を含むタイムスタンプが含まれるパケットを検出する第１の検出ステップと、
前記第１の検出ステップの処理で検出された前記パケットに含まれる前記タイムスタンプから、前記到着間隔および前記同期残差を検出する第２の検出ステップと、
前記第２の検出ステップの処理で検出された前記到着間隔および前記同期残差、並びに前記抽出ステップの処理で抽出された前記クロックの値に基づいて、前記タイムスタンプの修正値を計算する修正値計算ステップと、
前記修正値計算ステップの処理で計算された前記修正値に基づいて、前記タイムスタンプを修正する修正ステップと
を含むことを特徴とする通信方法。
【請求項５】
所定のネットワークを介して送信装置に接続される通信装置で行われる通信処理を制御するプログラムであって、
前記送信装置と共有するクロックに同期したクロックを生成し、生成した前記クロックをカウントするカウントステップと、
前記送信装置から送信されてきたパケットが検出されたときの、前記カウントステップでカウントされた前記クロックの値を抽出する抽出ステップと、
前記送信装置から送信されてきた前記パケットから、到着間隔および同期残差を含むタイムスタンプが含まれるパケットを検出する第１の検出ステップと、
前記第１の検出ステップの処理で検出された前記パケットに含まれる前記タイムスタンプから、前記到着間隔および前記同期残差を検出する第２の検出ステップと、
前記第２の検出ステップの処理で検出された前記到着間隔および前記同期残差、並びに前記抽出ステップの処理で抽出された前記クロックの値に基づいて、前記タイムスタンプの修正値を計算する修正値計算ステップと、
前記修正値計算ステップの処理で計算された前記修正値に基づいて、前記タイムスタンプを修正する修正ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信装置および方法、並びに記録媒体に関し、特に、デジタル化されたデータを送受信することができるようにした通信装置および方法、並びに記録媒体に関する。
【０００２】
【従来の技術】
デジタル化されたオーディオデータまたはビデオデータを再生して利用するシステムにおいては、エンコード側でエンコードされたデータが、デコード側に供給され、そこでデコードされて、データが再生される。この場合、例えば、エンコード側およびデコード側のそれぞれにおいて参照可能なクロックが存在し、エンコード側において、そのクロックに同期して、エンコード処理などの処理が行われる。デコード側においても、そのクロックと同期して、デコード処理などの処理が行われる。このように両者の処理が、１つの（共通の）クロックと同期して行われることにより、エンコード側においてエンコードされたデータが、デコード側において適切にデコードされる。
【０００３】
ところが、上述したような参照可能なクロックが存在せず、エンコード側およびデコード側において、それぞれ独立したシステムクロック（互いに同期していないクロック）に従って、各処理（エンコード側におけるエンコード処理、およびデコード側におけるデコード処理）が行われると、エンコード側から送信されるデータのレートと、デコード側でデコードされるデータのレートが異なるようになり、例えば、デコード側のバッファがオーバーフローしたり、アンダーフローしたりして、デコードされるべきデータが失われる。例えば、ビデオデータが失われると、そのビデオデータを含むフレームが表示されなくなる。
【０００４】
そこで、エンコード側とデコード側がネットワークを介して接続される場合など、両者が参照可能なシステムクロックを設けることが困難であるとき、タイムスタンプが用いられ、両者のシステムクロックの同期が取られるようになされる。
【０００５】
図１は、タイムスタンプを利用したデータ伝送システムの構成例を示している。エンコード側のエンコーダ１は、伝送すべきデータとしての、例えばビデオデータおよびオーディオデータをMPEG(Moving Picture Expert Group)-2方式に従ってエンコードし、システムエンコーダ２に出力する。システムエンコーダ２は、エンコーダ１から入力されたビデオデータとオーディオデータをそれぞれパケット化し、トランスポートストリームパケットを生成するとともに、必要に応じて他のトランスポートストリームと多重化して、ネットワーク３上に出力する。なお、この例の場合のように、ネットワーク３を介してデータが伝送される場合など、伝送中のデータにエラーが発生する可能性があるとき、データの形態としてトランスポートストリームが利用される。一方、例えば、蓄積メディアにデータを蓄積させてデータを授受する場合など、エラーが想定されていないシステムにおいては、プログラムストリームと称される他の形態が利用される。
【０００６】
システムエンコーダ２はまた、生成したトランスポートストリームパケットのヘッダに、タイムスタンプであるPCR(Program Clock Reference)を、図２に示すように組み込む（以下、PCRがヘッダに組み込まれたトランスポートストリームパケットをPCRパケットと称する）。このPCRは、エンコード側から、トランスポートストリームパケットが出力されるタイミングでカウントされた、システムエンコーダ２におけるシステムクロックＣ１（MPEG−２方式の場合、周波数が２７ＭＨzのクロック）のカウント値である。PCRはまた、MPEG-2規格により、0.1秒間に少なくとも１つ、エンコード側から出力されるように、トランスポートストリームパケットに組み込まれる。なお、プログラムストリームに対応するタイムスタンプは、SCR(System Clock Reference)と称され、0.7秒間に少なくとも１つ出力されるように、プログラムストリームパケットに組み込まれる。
【０００７】
図１に戻り、エンコード側から出力されたトランスポートストリームパケット（PCRパケットを含む）は、ネットワーク３を介して、デコード側に到着し、そのシステムデコーダ４に入力される。システムデコーダ４は、入力されたトランスポートストリームパケットをデパケット化し、その結果得られたオーディオストリームまたはビデオストリームを、デコーダ５に出力する。システムデコーダ４はまた、図２に示すように、PCRパケットからPCRを取り出し、そのPCRと、PCRを取り出したタイミングでカウントしたデコード側のシステムクロックＣ２（２７ＭＨzのクロック）のカウント値と比較し、その比較結果に基づいて、システムクロックＣ２の速度を調整し、デコーダ５に供給する。
【０００８】
デコーダ５は、システムデコーダ４から供給されたオーディオデータまたはビデオデータを、システムデコーダ４から供給されたシステムクロックＣ２に同期して、デコード処理する。
【０００９】
次に、デコード側におけるシステムクロックＣ２の生成（調整）処理を、図３と図４を参照してさらに説明する。システムデコーダ４は、図３に示すように構成されている。システムデコーダ４に供給されたトランスポートストリームパケットは、システムデコーダ４のシステムデコード部１１およびタイムスタンプ取出回路１２に供給される。
【００１０】
タイムスタンプ取出回路１２は、図２に示したように、PCRパケットに組み込まれたPCRを取り出し、PLL回路１３に出力する。PLL回路１３は、例えば図４に示すように構成されており、その減算器２１には、タイムスタンプ取出回路１２により取り出されたPCR、およびPCRが入力されたタイミングでカウントされたカウンタ２４のカウント値（Ｄ／Ａコンバータ兼VCO２３から出力されるクロックのカウント値）が入力される。減算器２１は、タイムスタンプ取出回路１２からのPCRと、カウンタ２４からのカウント値との差を算出し、ローパスフィルタ（以下、LPFと略称する）２２に出力する。LPF２２は、入力された減算器２１からの演算結果を時間的に平滑し、Ｄ/Ａコンバータ兼VCO（電圧制御発振器）２３に出力する。Ｄ/Ａコンバータ兼VCO２３は、LPF２２より入力されたデジタル信号をアナログ信号に変換し、そのアナログ信号を制御電圧として、その制御電圧に対応する周波数のシステムクロックＣ２を発生する。Ｄ/Ａコンバータ兼VCO２３は、発生したシステムクロックＣ２をカウンタ２４およびデコーダ５に出力する。
【００１１】
カウンタ２４は、Ｄ／Ａコンバータ兼VCO２３からのシステムクロックＣ２をカウントし、そのカウント値を、その時点におけるシステムクロックＣ２の周波数と位相を表す信号として、減算器２１に供給する。すなわち、このPLL回路１３において、トランスポートストリームパケットに組み込まれたPCRと、そのPCRが取り出されるタイミング（PCRパケットがデコード側に到着するタイミング）でカウントされたシステムクロックＣ２のカウント値の差がなくなるように、システムクロックＣ２の速度が調整される。その結果、エンコード側のシステムクロックＣ１と同期する、デコード側のシステムクロックＣ２が生成される。
【００１２】
図３に戻り、システムデコード部１１は、入力されたトランスポートストリームパケットをデパケット化し、その結果得られたオーディオストリームおよびビデオストリームを、デコーダ５に出力する。
【００１３】
ところで、ネットワーク３として、衛星放送における伝送方法と同様に、衛星が利用されている場合、エンコード側から伝送されたトランスポートストリームパケットには、固定遅延が付加される。つまり、エンコード側から伝送されたトランスポートストリームパケットは、一定時間分だけ遅れて、または速まって、デコード側に到着する。この場合、遅れる時間または速まる時間は、一定であるので、トランスポートストリームパケット（PCRパケットを含む）のデコード側への到着間隔は、エンコード側からの出力間隔と同じとなる。そのため、この場合においては、図３と図４を参照して説明した方法を利用することで、デコード側のシステムクロックＣ２は、エンコード側のシステムクロックＣ１と同期するように生成される。
【００１４】
なお、データに固定遅延が付加された場合の処理方法については、下記の文献においても報告されている。
（１）M. Perkins and P．Skelly，"A Hardware MPEG Clock Recovery Experiment in the Presence of ATM Jitter", ATM Forum contribution to the SAA sub−working group,94−0434，May 1994．
（２）G.Franceschini,"Extension of the Adaptive Clock Method to Variable Bit Rate Streams",ATM Forum contribution to the SAA sub-working group,94−0321，May 1994．
（３）ISO／IEC13818−1(MPEG−2  Systems),"GENERIC CODING OF MOVING PICTURES AND ASSOCIATED AUDIO", Recommendation H.222.0, ISO/IEC JTC/SC29/WG11NO721rev,June,1994.
【００１５】
文献（１）は、ATM上で発生するジッタをシミュレーションしたデータに基づき、情報発生源のシステムクロックヘの同期を取るハードウェアについて開示している。文献（２）は、可変ビットレートに関する同期の取り方について開示している。また文献（３）はMPEG−2システムに関する国際標準のドラフトである。
【００１６】
しかしながら、例えば、図５のデータ伝送システムのように、ATMネットワーク３０を介してデータが伝送される場合、データはATMセル化される。ATMネットワーク３０を構成するバッファ（図示せず）に、ATMネットワーク３０上を伝送するATMセルが一時保持されること、また複数のノード（図示せず）から１つのノードにATMセルが送信されること（同一方向にATMセルが送信されること）より、ATMネットワーク３０上で伝送されるATMセルには、遅延ゆらぎ（固定遅延とは異なり、遅延時間が一定ではない遅延）が付加される。遅延ゆらぎが付加されることにより、この例の場合、システム全体として、MPEG-2方式のジッタの許容範囲である+/-500nsを超える、1ms乃至2msのジッタが発生するおそれがある。このようなジッタが発生すると、ATMセルの、エンコード側からの出力間隔と、デコード側への到着間隔とが異なるようになり、デコード側において、エンコード側のシステムクロックＣ１と同期するシステムクロックＣ２が生成できなくなる。
【００１７】
そこで、システムデコーダ４のPLL回路１３を改良することより、データに付加された遅延ゆらぎをある程度吸収することも可能であるが、この場合、PLL回路１３の構成が複雑になる。また、PLL回路１３を改良したとしても、ATMネットワーク３０上で付加される遅延ゆらぎのように、その大きさが大きい場合、それを完全に吸収することは困難である。
【００１８】
図５のデータ伝送システムでは、図１のデータ伝送システムのエンコード側のシステムエンコーダ２とATMネットワーク３０との間に、MPEG／ATM変換器３１が設けられ、さらにデコード側のシステムデコーダ４とATMネットワーク３０との間に、ATM／MPEG変換器３２が設けられている。エンコード側のMPEG／ATM変換器３１は、システムエンコーダ２からのトランスポートストリームパケットをATMセル化し、ATMネットワーク３０上に出力する。デコード側のATM／MPEG変換器３２には、ATMネットワーク３０を介してエンコード側から伝送されてきた、遅延ゆらぎが付加されたATMセルが入力される。ATM／MPEG変換器３２は、入力されたATMセルをトランスポートストリームパケット化し、システムデコーダ４に出力する。システムデコーダ４（PLL回路１３）は、デコード側のシステムクロックＣ２を生成するが、デコード側に到着したATMセルには、遅延ゆらぎが付加されているので、生成されるシステムクロックＣ２は、エンコード側のシステムクロックＣ１と同期したものとはならない。つまり、この例の場合、データは適切にデコードされない。
【００１９】
【発明が解決しようとする課題】
このように、PLL回路を利用してデコード側のシステムクロックを生成する方法では、エンコード側から伝送されてきたデータに遅延ゆらぎが付加されると、エンコード側のシステムクロックと同期したデコード側のシステムクロックが生成できない。そこで、PLL回路を利用せずに、データに付加された遅延ゆらぎを吸収する各種方法が提案されている。以下に説明するアダプティブクロック法も、そのうちの１つの方法である。
【００２０】
図６は、アダプティブクロック法を適用したデコード側の装置のアダプティブクロック部５１の構成例を表している。なお、ネットワーク５０を介して伝送されてくるデータには、遅延ゆらぎが付加されているものとする。
【００２１】
ネットワーク５０を介して伝送されてきた、遅延ゆらぎが付加されたデータは、アダプティブクロック部５１のFIFO(First-In-First-Out memory)５２に入力される。FIFO５２は、入力されたデータを一時的に保持するとともに、制御部５３から供給される所定の読み出しクロックに対応してデータを出力する。FIFO５２はまた、自分自身のデータ占有率をLPF５４に出力する。LPF５４は、FIFO５２のデータ占有率を示すデータを時間的に平滑し、それを制御部５３に出力する。
【００２２】
制御部５３は、LPF５４から供給されるデータ（平滑されたFIFO５２のデータ占有率）が、所定の値になるように、FIFO５２に出力する読み出しクロックの速度を制御する。すなわち、アダプティブクロック法においては、制御部５３により制御されるこのクロックがデコード側のシステムクロックとなる。
【００２３】
このように、アダプディブクロック法においては、受信されたデータのみに基づいて、デコード側のシステムクロックが生成されるので、装置の構成を簡単にすることができる。しかしながら、この場合においては、ジッタ成分をアナログ的にシェイビングしているだけなので、長い時間でみればジッタ成分は残っており、例えば、１ms乃至２msのジッタは、40μs程度にしか低減されず、MPEG-2規格の+/-500nsを満たすことができない課題があった。
【００２４】
また、従来の伝送方式では、１プログラム（１番組）の伝送が想定されているので、伝送されるデータは、同じタイムベースでエンコードされている。そのため、同期を取るクロックは１つでよかったが、異なるタイムベースでエンコードされたデータが多重化されたマルチプログラムのストリームに対しては、プログラムの数だけ同期させるPLL及びクロックが必要となり、そのため、装置の構成が複雑になるという課題があった。
【００２５】
本発明はこのような状況に鑑みてなされたものであり、遅延ゆらぎを、容易に、かつ、確実に吸収し、また装置を複雑、かつ、大型化することなく、複数のプログラムに対応するデータを送受信することができるようにするものである。
【００３２】
【課題を解決するための手段】
請求項１に記載の通信装置は、送信装置から送信されてきたパケットを受信する受信手段と、送信装置と共有するクロックに同期したクロックを生成し、生成したクロックをカウントするカウント手段と、受信手段により、パケットが受信されたときの、カウント手段によりカウントされたクロックの値を抽出する抽出手段と、受信手段により受信されたパケットから、到着間隔および同期残差を含むタイムスタンプが含まれるパケットを検出する第１の検出手段と、第１の検出手段により検出されたパケットに含まれるタイムスタンプから、到着間隔および同期残差を検出する第２の検出手段と、第２の検出手段により検出された到着間隔および同期残差、並びに抽出手段により抽出されたクロックの値に基づいて、タイムスタンプの修正値を計算する修正値計算手段と、修正値計算手段により計算された修正値に基づいて、タイムスタンプを修正する修正手段とを備えることを特徴とする。
【００３３】
修正値計算手段には、抽出手段により抽出された、第１の検出手段により、到着間隔および同期残差を含むタイムスタンプが含まれる第１のパケットが検出されたときの、カウント手段によりカウントされたクロックの値と、第１のパケットに含まれるタイムスタンプの値とのオフセット値を計算させ、計算したオフセット値と、クロックの値に基づいて、基準クロック値を計算させ、計算したオフセット値、計算した基準クロック値、および抽出手段により抽出された、第１の検出手段により、到着間隔および同期残差を含むタイムスタンプが含まれる第２のパケットが検出されたときの、カウント手段によりカウントされたクロックの値に基づいて、第２のパケットに含まれるタイムスタンプの値の推測値を計算させ、計算した推測値、並びに第１のパケットに含まれる到着間隔および同期残差に基づいて、第２のパケットに含まれるタイムスタンプの修正値を算出させることができる。
【００３４】
修正値計算手段により計算された、オフセット値、および計算された修正値を、第１のパケットおよび第２のパケットから構成されるプログラムに対応させて記憶する記憶手段をさらに設けることができる。
【００３５】
請求項４に記載の通信方法は、送信装置から送信されてきたパケットを受信する受信ステップと、送信装置と共有するクロックに同期したクロックを生成し、生成したクロックをカウントするカウントステップと、受信ステップの処理で、パケットが受信されたときの、カウントステップでカウントされたクロックの値を抽出する抽出ステップと、受信ステップの処理で受信されたパケットから、到着間隔および同期残差を含むタイムスタンプが含まれるパケットを検出する第１の検出ステップと、第１の検出ステップの処理で検出されたパケットに含まれるタイムスタンプから、到着間隔および同期残差を検出する第２の検出ステップと、第２の検出ステップの処理で検出された到着間隔および同期残差、並びに抽出ステップの処理で抽出されたクロックの値に基づいて、タイムスタンプの修正値を計算する修正値計算ステップと、修正値計算ステップの処理で計算された修正値に基づいて、タイムスタンプを修正する修正ステップとを含むことを特徴とする。
【００３６】
請求項５に記載の記録媒体は、送信装置と共有するクロックに同期したクロックを生成し、生成したクロックをカウントするカウントステップと、送信装置から送信されてきたパケットが検出されたときの、カウントステップでカウントされたクロックの値を抽出する抽出ステップと、送信装置から送信されてきたパケットから、到着間隔および同期残差を含むタイムスタンプが含まれるパケットを検出する第１の検出ステップと、第１の検出ステップの処理で検出されたパケットに含まれるタイムスタンプから、到着間隔および同期残差を検出する第２の検出ステップと、第２の検出ステップの処理で検出された到着間隔および同期残差、並びに抽出ステップの処理で抽出されたクロックの値に基づいて、タイムスタンプの修正値を計算する修正値計算ステップと、修正値計算ステップの処理で計算された修正値に基づいて、タイムスタンプを修正する修正ステップとを含むことを特徴とする。
【００３７】
請求項１に記載の通信装置、請求項４に記載の通信方法、および請求項５に記載の記録媒体においては、送信装置と共有するクロックに同期したクロックが生成され、生成されたクロックがカウントされ、送信装置から送信されてきたパケットが検出されたときの、カウントされたクロックの値が抽出され、送信装置から送信されてきたパケットから、到着間隔および同期残差を含むタイムスタンプが含まれるパケットが検出され、検出されたパケットに含まれるタイムスタンプから、到着間隔および同期残差が検出され、検出された到着間隔および同期残差、並びに抽出されたクロックの値に基づいて、タイムスタンプの修正値が計算され、計算された修正値に基づいて、タイムスタンプが修正される。
【００３８】
【発明の実施の形態】
図７は、本発明を適用したデータ伝送システムの構成例を表している。送信装置１０１には、図示せぬエンコーダでエンコードされた複数のプログラム、図示せぬシステムエンコーダで多重化されたトランスポートストリームパケットMPEG−TSが入力される（例えば、図１に示すシステムエンコーダ２の出力が送信装置１０１に入力される）。このトランスポートストリームパケットMPEG−TSには、MPEG-2規格により、0.1秒間に少なくとも１つのPCRがATMネットワーク１０２上に出力されるように、PCRパケットPが含まれている。
【００３９】
送信装置１０１は、ATMネットワーク１０２のネットワーククロックＮ（８ＫＨz）と同期するクロックＳ（２７ＭＨz）を生成してそれをカウントするとともに、PCRパケットPが、システムエンコーダから入力（到着）したときのそのカウント値（NCOUNT）、およびPCRパケットPのPCR（以下、EPCRと称する）に基づいて、後述する同期情報を算出し、PCRパケットPに挿入する。送信装置１０１はまた、同期情報を挿入したPCRパケットPおよびその他のトランスポートストリームパケットMPEG−TSをATMセルに変換し、ATMネットワーク１０２上に出力する。
【００４０】
ATMネットワーク１０２は、ネットワーククロックＮを有し、そのネットワーククロックＮに同期して、各種の処理（例えば、ATMセル伝送処理）を実行する。ATMネットワーク１０２上を伝送されるATMセルには、遅延ゆらぎが付加される。
【００４１】
受信装置１０３には、ATMネットワーク１０２を介して送信装置１０１から伝送されてきた、遅延ゆらぎが付加されたATMセルが入力される。受信装置１０３は、入力されたATMセルをトランスポートストリームパケットMPEG−TSに変換する。受信装置１０３はまた、ATMネットワーク１０２のネットワーククロックＮと同期するクロックＲ（２７ＭＨz）を生成してそれをカウントするとともに、PCRパケットPが入力（到着）したとき（正確には、受信装置１０３のPCRパケット検出部３０４（図１７）によりPCRパケットPが検出されたとき）のカウント値（以下、RNCOUNTと称する）、およびPCRパケットPに挿入された同期情報に基づいて、PCRパケットPのPCR（EPCR）を修正する。EPCRが修正されたPCRパケットPおよびその他のトランスポートストリームパケットMPEG−TSは、図示せぬシステムデコーダに出力される（例えば、図１に示すシステムデコーダ４に出力される）。
【００４２】
図８は、送信装置１０１の構成例を表している。SYNC_BYTE検出部２０１には、送信装置１０１に到着したトランスポートストリームパケットMPEG−TSが入力される。
【００４３】
SYNC_BYTE検出部２０１は、入力されるトランスポートストリームパケットMPEG−TSの先頭を検出し、フレーム同期を確立するとともに、フレーム同期を確立した後、トランスポートストリームパケットMPEG−TSを、PCRパケット検出部２０２およびRTS／PAT算出部２０３に出力する。
【００４４】
図９は、PCRパケットPのデータ構成を示しているが、他のトランスポートストリームパケットMPEG−TS（PCRパケットP以外のトランスポートストリームパケットMPEG−TS）も、図９に示すように、ヘッダ部、アダプテーションフィールド部、およびペイロード部からなる、１８８バイトの固定パケットであり、そのヘッダ部には、sync_byte（”０ｘ４７ｈ”）（８バイト）が設定されている。SYNC_BYTE検出部２０１は、トランスポートストリームパケットMPEG−TSのヘッダ部に設定されているこのsync_byteを検出することで、トランスポートストリームパケットMPEG−TSの先頭を検出（決定）し、トランスポートストリームパケットMPEG−TSのフレーム同期を確立する。
【００４５】
PCRパケット検出部２０２は、SYNC_BYTE検出部２０１からのトランスポートストリームパケットMPEG−TSのヘッダ部またはアダプテーションフィールド部を参照して、そのトランスポートストリームパケットMPEG−TSがPCRパケットPであるか否かを判定し、PCRパケットPであると判定した場合（PCRパケットPを検出した場合）、PCRパケット検出信号Dpを、RTS／PAT算出部２０３およびカウンタ２０８に出力する。
【００４６】
PCRパケットPのヘッダ部およびアダプテーションフィールド部には、図９に示すように、MPEG-2規格に準拠した所定のデータ（以下、このデータをPCRパケット条件と称する）が設定されており、PCRパケット検出部２０２は、このPCRパケット条件から、そのパケットがPCRパケットPであるか否かを判定する。PCRパケット条件とは、図９を参照して説明するadaptation_field_control（２ビット）、PCR _ flag（１ビット）、またはPCRパケットPの専用のPID(Packet Identification)（１３ビット）である。
【００４７】
PCRパケットPのヘッダ部は、sync_byte（８ビット）の他、transport_error_indicator（１ビット）、payload_unit_start_indicator（１ビット）、transport_priority（１ビット）、PID（１３ビット）、transport_scrambling_control（２ビット）、adaptation_field_control（２ビット）、continuity_counter（４ビット）の各ビットが含まれており、そのadaptation_field_controlには”１０”または”１１”が設定されている。
【００４８】
また、PCRパケットPのアダプテーションフィールド部は、adaptation _ field _ length（８ビット）、discontinuity_indicator（１ビット）、random_ access_indicator（１ビット）、elementary_stream_priority_indicator （１ビット）、PCR_flag、OPCR_flag（１ビット）、splicing_point_flag（１ビット）、transport_private_date_flag（１ビット）、adaptation_field_extension_flag（１ビット）、program_clock_reference_base（３３ビット）、reserved（６ビット）、およびprogram_clock_reference_extension（９ビット）の各ビットが含まれており、そのadaptation _ field _ lengthには、”０”以上の値が設定され、そしてPCR_flagには”１”が設定されている。
【００４９】
図８に戻り、RTS／PAT算出部２０３には、SYNC_BYTE検出部２０１から、トランスポートストリームパケットMPEG−TSが、PCRパケット検出部２０２から、PCRパケット検出信号Dpが、そしてカウンタ２０８から、カウント値（NCOUNT）が、それぞれ入力される。RTS／PAT算出部２０３は、PCRパケット検出信号Dpにより特定されるトランスポートストリームパケットMPEG−TS、すなわち、PCRパケットPからPCR（EPCR）を読み出し、そのEPCRおよびカウンタ２０８から入力されたNCOUNTに基づいて、同期情報としてのRTSおよびPATを算出し、RTS／PAT挿入部２０４に出力する。これらの詳細については、図１３を参照して後述するが、PATは、２つのPCRパケットPの間隔を、PLL回路２０７が出力するクロックＳの数で表した値であり、RTSは、２つのPCRパケットPの間隔における、システムエンコーダのシステムクロックとクロックＳのずれを表す。
【００５０】
なお、PCRは、図９に示すように、PCRパケットPのアダプテーションフィールド部のprogram_clock_reference_baseの値（ベースカウント値）（３３ビット）およびprogram_clock_reference_extensionの値（拡張カウント値）（９ビット）の組み合わせにより示される。program_clock_reference_baseには、PCRパケットP毎に、０乃至２９９のベースカウント値が順に設定され（カウントされ）、ベースカウント値が２９９から０の値に戻る（リセット）されるタイミングで、拡張カウント値が１だけインクリメントされる。すなわち、program_clock_reference_baseおよびprogram_clock_reference_extensionの合計４２ビットにより、MPEG-2方式における２７ＭＨzのシステムクロックを単位として、２４時間分の時間がカウントされる。
【００５１】
RTS／PAT挿入部２０４は、RTS／PAT算出部２０３から入力された同期情報を、図９に示すように、PCRパケットPのペイロード部に挿入し、MPEG／ATM変換部２０５に出力する。通常、PCRパケットPは、専用のPID（１３ビット）が付されて伝送されることが多く、この場合、そのペイロード部には、オーディオデータやビデオデータが格納されておらず、スタッフィングバイトが格納されている。
【００５２】
MPEG／ATM変換部２０５は、トランスポートストリームパケットMPEG−TSをALL(ATM Adaptation Layer)5にマッピングして、ATMセルを生成する。具体的には、図１０（Ａ）に示すように、RTS／PAT挿入部２０４から入力される、２つのトランスポートストリームパケットMPEG−TSからCPCS (Common Part Convergence Sublayer)ペイロードが生成され、さらにそれにAAL5のCS(Convergence Sublayer）で規定されるCPCSトレイラが付加されて、CPCS-PDU(Protocol Data Unit)が生成される（図１０（Ｂ））。
【００５３】
CPCS-PDUは、図１０（Ｃ）に示すように、８つのSAR(Segmentation and Reassembly)-PDU（４８バイト）に分割される。そしてSAR-PDUは、図１０（Ｄ）に示すように、ATMレイヤにおいて、５バイトのATMヘッダが付加され、５３バイトのATMセルに変換される。このようにして生成されたATMセルは、ATMセル送受信部２０６に出力される。
【００５４】
ATMセル送受信部２０６は、MPEG／ATM変換部２０５から入力されたATMセルを、ATMネットワーク１０２上に出力する。ATMセル送受信部２０６はまた、ATMネットワーク１０２から順次送信されてくるATMセルを受信し、受信したATMセルに基づいてATMネットワーク１０２のネットワーククロックＮに同期した８ＫＨzのクロックを生成し、PLL回路２０７に出力する。PLL回路２０７は、ATMセル送受信部２０６からの８ＫＨzのクロックから、そのクロックと同期する２７ＭＨzのクロックＳを再生する。
【００５５】
PLL回路２０７は、図１１に示すような構成を有しており、そのVCO２５１は、位相比較部２５２から供給される比較結果（位相誤差）に基づいて２７ＭＨzのクロックＳを発生し、カウンタ２０８および分周器２５３に出力する。分周器２５３は、VCO２５１から入力されたクロックＳを、１／３３７５に分周して８ＫＨzのクロックを生成し、位相比較部２５２に出力する。位相比較部２５２は、ATMセル送受信部２０６からの８ＫＨzのクロックの位相と、分周器２５３からの８ＫＨzのクロックの位相を比較し、その比較結果をVCO２５１に出力する。
【００５６】
このように、クロックＳは、ネットワーククロックＮと同期するように、その位相が調整される。
【００５７】
再び図８に戻り、カウンタ２０８は、PLL回路２０７からのクロックＳ（２７ＭＨz）をカウントするとともに、PCRパケット検出部２０２から、PCRパケット検出信号Dpが入力されたときのカウント値（NCOUNT）を、RTS／PAT算出部２０３に出力する。
【００５８】
メモリ２０９は、RTS／PAT算出部２０３から供給される、同期情報を算出する上において必要なデータを適宜記憶する。なお、この例の場合、RTS／PAT算出部２０３による同期情報算出処理は、プログラム毎（トランスポートストリームパケットMPEG−TSに設定されたPID毎）に行われるので、メモリ２０９は、RTS／PAT算出部２０３から供給されるこのデータを各プログラム毎に記憶する。
【００５９】
次に、送信装置１０１における同期情報挿入処理を、図１２のフローチャートを参照して説明する。なお、この処理は、トランスポートストリームパケットMPEG−TSに設定されたPID毎（最大8192個のプログラム分のPID毎）に実行されるが、この例の場合、１つのPIDに対応して実行される同時情報挿入処理を例として説明する。
【００６０】
SYNC_BYTE検出部２０１により、トランスポートストリームパケットMPEG−TSのフレーム同期が確立された状態において、ステップＳ２１で、RTS／PAT算出部２０３は、PCRパケット検出部２０２から、フレーム同期確立後、送信装置１０１に最初に到着したPCRパケットP1が検出されたときのPCRパケット検出信号Dpが、そしてカウンタ２０８から、NCOUNT（そのPCRパケット検出信号Dpが入力されたときのカウンタ２０８のカウント値）が入力されるまで待機する。なお、ステップＳ２１での待機中、RTS／PAT算出部２０３には、SYNC_BYTE検出部２０１から、トランスポートストリームパケットMPEG−TSが随時入力されるが、RTS／PAT算出部２０３は、入力されるこのトランスポートストリームパケットMPEG−TSを、そのままRTS／PAT挿入部２０４に出力する。また、PLL回路２０７は、ATMセル送受信部２０６を介してATMネットワーク１０２からネットワーククロックＮの供給を受け、これに同期したクロックＳを生成し、カウンタ２０８に出力しており、カウンタ２０８は、これをカウントしている。
【００６１】
ステップＳ２１において、PCRパケット検出部２０２から、PCRパケットP1が検出されたとき（時刻ｔ１）のPCRパケット検出信号Dpが入力され、そしてカウンタ２０８から、NCOUNT1（そのPCRパケット検出信号Dpが入力されたとき（時刻ｔ１）のカウンタ２０８のカウント値）が入力されたとき、ステップＳ２２に進み、RTS／PAT算出部２０３は、ステップＳ２１でPCRパケット検出部２０２から入力されたPCRパケット検出信号Dpで特定されるトランスポートストリームパケットMPEG−TS（PCRパケットP1）のPCR（EPCR1）を検出する。
【００６２】
次に、ステップＳ２３において、RTS／PAT算出部２０３は、ステップＳ２１でカウンタ２０８から入力されたNCOUNT1およびステップＳ２２で検出したEPCR1を、次に示す式（１）に代入し、オフセット値（以下、RTS／PAT算出部２０３により算出されるオフセット値をOFFSETと称する）を算出する。
OFFSET＝EPCR1−NCOUNT1・・・（１）
【００６３】
ステップＳ２４において、RTS／PAT算出部２０３は、ステップＳ２２で検出したEPCR1をNPCR1として、ステップＳ２３で算出したOFFSETとともにメモリ２０９に記憶させる。次に、ステップＳ２５で、RTS／PAT算出部２０３は、PCRパケット検出部２０２から、PCRパケットP1の次に送信装置１０１に到着するPCRパケットP2が検出されたときのPCRパケット検出信号Dpが、そしてカウンタ２０８から、NCOUNT（そのPCRパケット検出信号Dpが入力されたときのカウンタ２０８のカウント値）が入力されるまで待機する。
【００６４】
ステップＳ２５において、PCRパケット検出部２０２から、PCRパケットP2が検出されたとき（時刻ｔ２）のPCRパケット検出信号Dpが入力され、そしてカウンタ２０８から、NCOUNT2（そのPCRパケット検出信号Dpが入力されたとき（時刻ｔ２）のカウンタ２０８のカウント値）が入力されたと判定されたとき、ステップＳ２６に進み、RTS／PAT算出部２０３は、PCRパケット検出部２０２から入力されたPCRパケット検出信号Dpにより特定されるPCRパケットP2のEPCR2を検出する。
【００６５】
次に、ステップＳ２７において、RTS／PAT算出部２０３は、同期情報、つまり、RTSおよびPATを算出する。この同期情報算出処理を、図１３（Ａ）を参照して説明する。図１３（Ａ）は、カウンタ２０８によるカウント値（ネットワーククロックＮと同期するクロックＳがカウントされたカウント値）を横軸にとり、その横軸上に、NCOUNT1（時刻ｔ１でのカウント値（ステップＳ２１））、EPCR1（ステップＳ２２）、NCOUNT2（時刻ｔ２でのカウント値（ステップＳ２５））、およびEPCR2（ステップＳ２６）の他、同期情報を算出する上において必要なデータ（OFFSET、NPCRなど）を示したものである。
【００６６】
RTS／PAT算出部２０３は、次に示す式（２）に従って、NCOUNT2に、メモリ２０９に記憶されているOFFSETを加算して、NPCR2を算出する。図１３（Ａ）の例では、NPCR2は、NCOUNT2よりOFFSET分だけ右側方向に離れた位置に示されている。
NPCR2＝NCOUNT2＋OFFSET・・・（２）
なお、NCOUNT1およびNCOUNT2にOFFSETを加算し、NPCR1およびNPCR2を算出したのは、カウンタ２０８でカウントされたNCOUNT1およびNCOUNT2、すなわち、ネットワーククロックＮと同期するクロックＳのカウント値を、EPCRの時間軸に対応させるためである。
【００６７】
RTS／PAT算出部２０３は、メモリ２０９に記憶されているNPCR1を参照点Bとして、算出したNPCR2とともに、次の式（３）に代入して、PAT（以下、RTS／PAT算出部２０３により算出されるPATをEPATと称する）1を算出する（図１３）。
EPAT1＝NPCR2−参照点B（＝NPCR1）・・・（３）
すなわち、EPAT1は、PCRパケットP1とPCRパケットP2の送信装置１０１への到着間隔の間でカウントされるクロックＳのクロック数を示している。
【００６８】
次に、RTS／PAT算出部２０３は、EPCR1、EPCR2、およびEPAT1を、次の式（４）に代入して、RTS1を算出する。
RTS1＝（EPCR2−EPCR1）−EPAT1・・・（４）
EPCR1とEPCR2の差は、PCRパケットP1とPCRパケットP2のシステムエンコーダからの出力間隔（実質的に、送信装置１０１への到着間隔と同じ間隔）の間でカウントされるシステムエンコーダのシステムクロックのクロック数を示す。つまり、RTSは、送信装置１０１へのPCRパケットP1とPCRパケットP2の到着間隔の間にカウントされる、システムエンコーダのシステムクロックの数（EPCR2−EPCR1）とクロックＳのクロック数（EPAT1）の差であり、その間の両者のずれに対応する。
【００６９】
このように、RTS1およびEPAT1が算出されると、ステップＳ２８において、RTS／PAT算出部２０３は、ステップＳ２７で算出したRTS1およびEPAT1をRTS／PAT挿入部２０４に出力する。RTS／PAT挿入部２０４は、RTS／PAT算出部２０３から入力されたRTS1およびEPAT1を、図９に示したように、PCRパケットP1のペイロード部に同期情報として挿入する。なお、図９には、ペイロード部にオーディオデータまたはビデオデータが格納されていない場合が示されているが、ペイロード部にデータが格納されている場合であっても、そのデータの後に同期情報を挿入することができる。ペイロード部に格納されているデータの長さは、ヘッダ部に示されているので、データの後に同期情報が挿入されても、そのヘッダ部に示すデータの長さから、同期情報が挿入されている位置を検出することができ、同期情報を読み出することが可能となる。
【００７０】
次に、ステップＳ２９において、RTS／PAT算出部２０３は、次の式（５）に従って、ステップＳ２３で算出したOFFSETに、ステップＳ２７で算出したRTS1を加算し、新しいOFFSETを算出する（図１３）。
新しいOFFSET＝OFFSET＋RTS1・・・（５）
【００７１】
さらに、ステップＳ３０において、RTS／PAT算出部２０３は、次の式（６）に従って、ステップＳ２５で入力されたNCOUNT2に、ステップＳ２９で算出した新しいOFFSETを加算し、新しい参照点Bを算出する。
新しい参照点B＝NCOUNT2＋新しいOFFSET・・・（６）
【００７２】
ステップＳ３１において、RTS／PAT算出部２０３は、ステップＳ２６で検出したEPCR2、ステップＳ２９で算出した新しいOFFSET、およびステップＳ３０で算出した新しい参照点Bをメモリ２０９に上書きする。すなわち、この場合、ステップＳ２４で記憶されたEPCR1に代えてEPCR2が、ステップＳ２４で記憶されたEPCR1（参照点B）に代えて新しい参照点Bが、およびステップＳ２４で記憶されたOFFSETに代えて新しいOFFSETが記憶される。
【００７３】
その後、ステップＳ２５に戻り、RTS／PAT算出部２０３は、例えば、図１４（Ａ）に示すように、PCRパケットP2の後のPCRパケットP3またはPCRパケットP4が送信装置１０１に到着すると、ステップＳ２５乃至ステップＳ３１における処理を実行する。これにより、PCRパケットP2にEPAT2およびRTS2が挿入され、PCRパケットP3にEPAT3およびRTS3が挿入される。以下に、PCRパケットP2の次のPCRパケットP3が送信装置１０１に到着した場合の処理を、簡単に説明する。
【００７４】
PCRパケットP3が送信装置１０１に到着すると（PCRパケット検出部２０２により検出されると）（ステップＳ２５）、PCRパケットP3のEPCR3が検出され（ステップＳ２６）、RTS2およびEPAT2が算出される（ステップＳ２７）。具体的には、メモリ２０９から参照点B、OFFSETおよびEPCR2が読み出され、カウンタ２０８から入力されたNCOUNT3に、メモリ２０９から読み出されたOFFSETが加算されて、NPCR3が算出される（式（２））。また、算出されたNPCR3から、メモリ２０９より読み出された参照点Bが減算されて、EPAT2が算出される（式（３））。次に、検出されたEPCR3から、メモリ２０９より読み出されたEPCR2が減算され、その減算結果からさらに算出されたEPAT2が減算されて、RTS2が算出される（式（４））。
【００７５】
このようにして算出されたRTS2およびEPAT2は、RTS／PAT挿入部２０４に出力され、そこでPCRパケットP2に挿入される（ステップＳ２８）。次に、OFFSETにRTS2が加算され、新しいOFFSETが算出され（式（５））（ステップＳ２９）、NCOUNT3に、算出された新しいOFFSETが加算され、新しい参照点Bが算出される（式（６））（ステップＳ３０）。そして、算出された新しい参照点Bおよび新しいOFFSETは、検出されたEPCR3とともにメモリ２０９に上書きされる（ステップＳ３１）。
【００７６】
以上のようにして、システムエンコーダにおけるシステムクロック（PCR）と、送信装置１０１におけるクロックＳの間の同期情報が算出され、PCRパケットPに挿入される。同期情報が挿入されたPCRパケットPは、MPEG／ATM変換部２０５に供給され、そこで、ATMセルに変換され、ATMセル送受信部２０６を介して、送信装置１０１への到着間隔（EPAT）が保持される状態で受信装置１０３に伝送される。
【００７７】
なお、以上の処理においてメモリ２０９に記憶される各種データは、プログラム毎に記憶される。
【００７８】
次に、同期情報の情報量について説明する。MPEG-2規格によれば、システムクロックとして用いられる２７ＭＨzのクロック（例えば、システムエンコーダのシステムクロックや送信装置１０１のクロックＳ）には、それぞれ+/-30ppm（parts per million ）の偏差が許容されている。すなわち、システムエンコーダのクロックおよびクロックＳの周波数は、（２７ＭＨz−８１０（＝２７×１０6×３０×１０-6）Ｈz）乃至（２７ＭＨz＋８１０Ｈz）の範囲で変動する。
【００７９】
つまり、両者の周波数のずれは、図１５に示すように、システムエンコーダのシステムクロックの周波数が２７ＭＨz＋８１０Ｈz（図１５（Ａ））で、かつ、クロックＳの周波数が２７ＭＨz−８１０Ｈz（図１５（Ｃ））であるとき、また逆に、図１６に示すように、システムエンコーダのシステムクロックの周波数が２７ＭＨz−８１０Ｈz（図１６（Ａ））で、かつ、クロックＳの周波数が２７ＭＨz＋８１０Ｈzであるとき（図１６（Ｃ））に最大となる。
【００８０】
そこで、図１５の場合における各クロックの１秒間にカウントされるクロック数を求めると、想定する真の27 MHzの場合、２７×１０6個であるのに対して、図１５（Ａ）のシステムエンコーダの場合は、（２７×１０6＋８１０）個となり、図１５（Ｃ）のクロックＳの場合は、（２７×１０6−８１０）個となる。また、同様に図１６の場合における各クロックの１秒間にカウントされるクロック数を求めると、図１６（Ａ）のシステムエンコーダのシステムクロック場合、（２７×１０6−８１０）個となり、図１６（Ｃ）のクロックＳの場合、（２７×１０6＋８１０）個となる。すなわち、両者の周波数が最大となるときの、１秒間でカウントされるクロック数は、１６２０個となる。
（２７×１０6＋８１０）−（２７×１０6−８１０）＝１６２０
【００８１】
ところで、同期情報の１つであるRTSも、図１３（Ａ）に示したように、システムエンコーダのシステムクロックとクロックＳのずれ（PCRパケットPの送信装置１０１への到着間隔の間でカウントされるクロック数の差）を示すものであるが、RTSは、クロックＳのカウント値（NCOUNT）をPCRの時間軸に対応させることで算出されている。すなわち、RTSの最大値も、PCRの時間軸に対応させて求める必要がある。また、PCRは、0.1秒間に１つ以上の割合で、トランスポートストリームパケットMPEG−TSに組み込まれているので、RTSは、最大0.1秒間のずれ（0.1秒間にカウントされるクロック数の差）を示すことができる必要がある。つまり、RTSは、図１５の状態のとき、プラス側で最大となり、その値は、下記に示すように、162.00486となる。
((1+30ppm)/(1-30ppm)-1)×27MHz×0.1s=162.00486
【００８２】
上記式は、図１５（Ｃ）のクロックＳの周期（１／（２７ＭＨz−８１０Ｈz））（時間）を、図１５（Ａ）のシステムエンコーダのシステムクロックの周期（１／（２７ＭＨz＋８１０Ｈz））で正規化し（PCRの時間軸に対応させ）、正規化されたそのクロックＳの時間（PCRの時間軸に対応するクロックＳの時間）と、PCRの時間（１単位）との差を求め、求めたその差に基づいて、0.1秒間に発生する両者のクロックのずれをクロック数で示したものである。
【００８３】
一方、図１６の状態のとき、RTSは、マイナス側で最大となり、その値は、下記に示すように、-161.99514となる。
((1-30ppm)/(1+30ppm)-1)×２７MHz×0.1s=-161.9951
すなわち、以上のことから、RTSは、下記に示す範囲の値を取り得る。
-162＜＝RTS＝＜162
【００８４】
このことより、RTSを表すには、９ビットが必要となるが（バイト単位で容量を確保するものとすると、２バイトが必要となるが）、１ビット分削除し、８ビットで示しても、+/-１クロック分の誤差が発生するだけで、MPEG-2方式のジッタの規格を越えない。MPEG-2方式におけるジッタの規格は、+/-500nsであり、それをクロック数に変換すると、+/-13.5(=+/-500nsec×27MHz)クロックである。すなわち、+/-１クロック分の誤差は、その範囲内であり、結局、この例の場合、RTSは、８ビット（１バイト（-127乃至127)）で示される。
【００８５】
一方、EPATは、３バイト分で示される。すなわち、この例の場合、同期情報（RTSおよびEPAT）は、合計４バイトで示される。
【００８６】
図１７は、受信装置１０３の構成例を表している。ATMセル受信部３０１は、ATMネットワーク１０２を介して、送信装置１０１から伝送されてきたATMセル（図１０（Ｄ））を受信し、ATM／MPEG変換部３０２に出力する。ATMセル受信部３０１はまた、ATMネットワーク１０２から順次送信されてくるATMセルを受信し、受信したATMセルに基づいてATMネットワーク１０２のネットワーククロックＮに同期した８ＫＨzのクロックを生成し、PLL回路３０８に出力する。
【００８７】
ATM／MPEG変換部３０２は、ATMセル受信部３０１から入力されるATMセルをトランスポートストリームパケットMPEG−TSに変換し、SYNC_BYTE検出部３０３に出力する。
【００８８】
SYNC_BYTE検出部３０３は、図８の送信装置１０１のSYNC_BYTE検出部２０１と同様に、ATM／MPEG変換部３０２からのトランスポートストリームパケットMPEG−TSに設定された同期バイトを利用して、トランスポートストリームパケットMPEG−TSのフレーム同期を確立し、フレーム同期を確立したトランスポートストリームパケットMPEG−TSを、PCRパケット検出部３０４およびMPCR算出部３０５に出力する。
【００８９】
PCRパケット検出部３０４は、図８の送信装置１０１のPCRパケット検出部２０２と同様に、SYNC_BYTE検出部３０３から入力されたトランスポートストリームパケットMPEG−TSのヘッダ部およびアダプテーションフィールド部を参照し、PCRパケット条件が設定されているか否かを判定し、PCRパケット条件が設定されていると判定した場合（PCRパケットPを検出した場合）、PCRパケット検出信号DpをMPCR算出部３０５およびカウンタ３０９に出力する。
【００９０】
MPCR算出部３０５には、SYNC_BYTE検出部３０３から、トランスポートストリームパケットMPEG−TSが、PCRパケット検出部３０４から、PCRパケット検出信号Dpが、そしてカウンタ３０９から、カウント値（以下、RNCOUNTと称する）が、それぞれ入力される。MPCR算出部３０５は、PCRパケット検出部３０４からのPCRパケット検出信号Dpにより特定されるPCRパケットPから同期情報を読み出し、その同期情報およびカウンタ３０９から入力されるRNCOUNTに基づいて、MPCRを算出し、PCR修正部３０６に出力する。
【００９１】
PCR修正部３０６は、MPCR算出部３０５から入力されるPCRパケットPのPCR（EPCR）を、MPCR算出部３０５から入力されるMPCRに置き換え（修正し）、図示せぬシステムデコーダに出力する。
【００９２】
メモリ３０７は、MPCR算出部３０５から供給される、MPCRを算出する上において必要な各種データを適宜記憶する。なお、この例の場合、MPCR算出部３０５によるMPCR算出処理は、プログラム毎（トランスポートストリームパケットMPEG−TSに設定されたPID毎）に行われるので、メモリ３０７は、MPCR算出部３０５から供給されるデータを各プログラム毎に記憶する。
【００９３】
PLL回路３０８は、図８の送信装置１０１のPLL回路２０７と同様に、図１１に示すような構成を有しており、ATMセル受信部３０１から供給された、ATMネットワーク１０２のネットワーククロックＮに同期した８ＫＨzのクロックから、それに同期する２７ＭＨzのクロックＲを生成し、カウンタ３０９に出力する。
【００９４】
カウンタ３０９は、PLL回路３０８からの２７ＭＨzのクロックＲをカウントするとともに、PCRパケット検出部３０４から、PCRパケット検出信号Dpが入力されたときのカウント値（RNCOUNT）をMPCR算出部３０５に出力する。
【００９５】
次に、受信装置１０３におけるPCR修正処理を、図１８のフローチャートを参照して説明する。なお、この処理は、トランスポートストリームパケットMPEG−TSに設定されたPID毎（最大8192個のプログラム分のPID毎）に実行されるが、この例の場合、１つのPIDに対応して実行されるPCR修正処理を例として説明する。
【００９６】
PLL回路３０８は、ATMセル受信部３０１を介してATMネットワーク１０２から入力されるネットワーククロックＮに同期したクロックＲを生成し、カウンタ３０９に入力する。カウンタ３０９は、クロックＲをカウントしている。ATMセル受信部３０１により受信されたATMセルが、ATM／MPEG変換部３０２に入力され、そこでトランスポートストリームパケットMPEG−TSに変換され、そしてそのトランスポートストリームパケットMPEG−TSのフレーム同期がSYNC_BYTE検出部３０３により確立されている状態において、ステップＳ４１において、MPCR算出部３０５は、PCRパケット検出部３０４から、フレーム同期確立後、受信装置１０３に到着した最初のPCRパケットPが検出されたときのPCRパケット検出信号Dpが、そしてカウンタ３０９から、RNCOUNT（そのPCRパケット検出信号Dpが入力されたときのカウンタ３０９のカウント値）が入力されるまで待機する。なお、ステップＳ４１での待機中、MPCR算出部３０５には、SYNC_BYTE検出部３０３から、トランスポートストリームパケットMPEG−TSが随時入力されるが、MPCR算出部３０５は、入力されるこのトランスポートストリームパケットMPEG−TSを、そのままPCR修正部３０６に出力する。
【００９７】
ステップＳ４１において、PCRパケット検出部３０４から、フレーム同期確立後、受信装置１０３に到着した最初のPCRパケットPが検出されたとき（時刻ｔ１１）のPCRパケット検出信号Dpが入力され、そしてカウンタ３０９から、RNCOUNT（そのPCRパケット検出信号Dpが入力されたと判定されたとき（時刻ｔ１１）のカウンタ３０９のカウント値）が入力されたとき、ステップＳ４２に進み、MPCR算出部３０５は、PCRパケット検出信号DPにより特定されるトランスポートストリームパケットMPEG−TS（PCRパケットP）のEPCRを検出する。
【００９８】
次に、ステップＳ４３において、MPCR算出部３０５は、ステップＳ４１でカウンタ３０９から入力されたRNCOUNT、およびステップＳ４２で検出したEPCRをRPCR1として、次の式（７）に代入し、オフセット値（以下、MPCR算出部３０５により算出されるオフセット値をROFFSETと称する）を算出する。
ROFFSET＝RPCR1−RNCOUNT・・（７）
【００９９】
ステップＳ４４において、MPCR算出部３０５は、RPCR1（＝ステップＳ４２で検出されたEPCR）を、MPCR1として、ステップＳ４３で算出したROFFSETとともにメモリ３０７に記憶させる。次に、ステップＳ４５において、MPCR算出部３０５は、PCRパケットPに挿入されている同期情報（RTSおよびEPAT）を読み取り、メモリ３０７に記憶させる。
【０１００】
ステップＳ４６において、MPCR算出部３０５は、PCRパケット検出部３０４から、PCRパケットPが検出されたときのPCRパケット検出信号DPが入力され、そしてカウンタ３０９から、RNCOUNT（そのPCRパケット検出信号Dpが入力されたときのカウンタ３０９のカウント値）が入力されるまで待機する。ステップＳ４６において、PCRパケット検出部３０４から、そのPCRパケットPが検出されたとき（時刻ｔ１２）のPCRパケット検出信号Dpが入力され、そしてカウンタ３０９から、RNCOUNT（そのPCRパケット検出信号Dpが入力されたとき（時刻ｔ１２）のカウンタ３０９のカウント値）が入力されたと判定されたとき、ステップＳ４７に進み、MPCR算出部３０５は、ステップＳ４６で入力されたPCRパケット検出信号Dpにより特定されるPCRパケットPのEPCRを検出する。
【０１０１】
次に、ステップＳ４８において、MPCR算出部３０５は、PCRパケットPのEPCRと置き換えられるMPCRを算出する。ここでのMPCRの算出方法を、図１３（Ｂ）を参照して説明する。なお、この例の場合、ステップＳ４１で入力されたPCRパケット検出信号Dpにより特定されるトランスポートストリームパケットMPEG−TSは、送信装置１０１から送信されてきたPCRパケットP1であり、ステップＳ４６で入力されたPCRパケット検出信号Dpで特定されるトランスポートストリームパケットMPEG−TSは、PCRパケットP2であるとする。図１３（Ｂ）は、カウンタ３０９によるカウント値（ネットワーククロックＮと同期するクロックＲがカウントされたカウント値）を横軸にとり、その横軸上に、RNCOUNT１（時刻ｔ１１でのカウント値（ステップＳ４１））、PCRパケットP1のEPCR1（ステップＳ４２）、RNCOUNT2（時刻ｔ１２でのカウント値（ステップＳ４６））、およびPCRパケットP2のEPCR2（ステップＳ４７）の他、MPCRを算出する上において必要なデータ（例えば、ROFFSET、RPCRなど）を示したものである。
【０１０２】
MPCR算出部３０５は、次の式（８）に従って、RNCOUNT2に、メモリ３０７に記憶されているROFFSET（ステップＳ４４で記憶された）を加算して、RPCR2を算出する。図１３（Ｂ）の例では、RPCR2が、RNCOUNT2よりROFFSET分だけ右側方向に示されている。
RPCR2＝RNCOUNT2＋ROFFSET・・・（８）
【０１０３】
MPCR算出部３０５は、算出したRPCR2とメモリ３０７から読み取ったMPCR1（ステップＳ４４で記憶されている）のそれぞれを、次の式（９）に代入して、PAT（以下、MPCR算出部３０５により算出されるPATをRPATと称する）1を算出する（図１３（Ｂ））。
RPAT1＝RPCR2−MPCR1（＝RPCR1）・・・（９）
RPAT１は、PCRパケットP1とPCRパケットP2の受信装置１０３への到着間隔の間でカウントされるクロックＲのクロック数を示している。
【０１０４】
次に、MPCR算出部３０５は、PCRパケットP1から読み取ったRTS1およびEPAT1（ステップＳ４５）、メモリ３０７に記憶されているMPCR1、並びに先に算出したRPAT１を、次の式（１０）に代入し、MPCR2を算出する（図１３（Ｂ））。
MPCR2＝MPCR1＋RPAT1＋RTS1×RPAT1／EPAT1・・・（１０）
【０１０５】
このようにMPCR2が算出されると、ステップＳ４９において、MPCR算出部３０５は、ステップＳ４８で算出したMPCR2をPCR修正部３０６に出力する。PCR修正部３０６は、PCRパケットP2のEPCR2を、MPCR算出部３０５から供給されたMPCR2で置き換える（修正する）。なお、この例の場合、EPCR1＝MPCR1としたので、その置き換えは行われないが、MPCR1を、最初の複数回に受信したＮ個のEPCRの平均とすることもでき、この場合、EPCR1とMPCR1の置き換えが行われる（EPCRの修正が行われる）。
【０１０６】
次に、ステップＳ５０において、MPCR算出部３０５は、次の式（１１）に従って、メモリ３０７に記憶されているROFFSETに、式（１０）の第３項（＝RTS1×RPAT1／EPAT1）で算出される値を加算し、新しいROFFSETを算出する（図１３（Ｂ））。
新しいROFFSET＝ROFFSET＋RTS1×RPAT1／EPAT1・・・（１１）
【０１０７】
ステップＳ５１において、MPCR算出部３０５は、ステップＳ４８で算出したMPCR2およびステップＳ５０で算出した新しいROFFSETを、メモリ３０７に上書きする。すなわち、この場合、ステップＳ４４で記憶されたROFFSETに代えて新しいROFFSETが、そしてステップＳ４４で記憶されたMPCR1に代えてMPCR2が記憶される。ステップＳ５２において、MPCR算出部３０５は、PCRパケットP2に挿入された同期情報（RTS2およびEPAT2）を読み取り、メモリ３０７に記憶させる。
【０１０８】
その後、ステップＳ４６に戻り、MPCR算出部３０５は、例えば、図１４（Ｂ）に示すように、PCRパケットP2の後のPCRパケットP3またはPCRパケットP4が受信装置１０３に到着すると、ステップＳ４６乃至ステップＳ５２における処理を実行する。これにより、PCRパケットP3のEPCR3がMPCR3と置き換えられ、PCRパケットP4のEPCR4がMPCR4と置き換えられる。以下に、PCRパケットP3が受信装置１０３に到着した場合の処理を、簡単に説明する。
【０１０９】
PCRパケットP3が受信装置１０３に到着すると（PCRパケット検出部３０４により検出されると）（ステップＳ４６）、PCRパケットP3のEPCR3が検出され（ステップＳ４７）、MPCR3が算出される（ステップＳ４８）。具体的には、メモリ３０７から、MPCR2、ROFFSET、RTS2およびEPAT2が読み出され、カウンタ３０９から入力されたRNCOUNT3に、メモリ３０７から読み出されたROFFSETが加算されて、RPCR3が算出される（式（９））。また算出されたRPCR3から、メモリ３０７から読み出されたMPCR2が減算されて、RPAT2が算出される（式（９））。次に、メモリ３０７から読み出されたMPCR2、RTS2、およびEPAT2、並びに算出されたRPAT2が、（式（１０））に代入され、MPCR3が算出される。
【０１１０】
このようにして算出されたMPCR3は、PCR修正部３０６に出力され、そこでPCRパケットP3のEPCR3と置き換えられる。次に、ROFFSETに式（１０）の第３項の値が加算され（式（１１））（ステップＳ５０）、新しいROFFSETが算出され、算出されたMPCR3とともにメモリ３０７に上書きされる（ステップＳ５１）。そして、PCRパケットP3に挿入されている同期情報（RTS3およびEPAT3）がメモリ３０７に上書きされる（ステップＳ５２）。
【０１１１】
以上のようにして、PCRパケットPが受信装置１０３に到着したときの、ATMネットワーク１０２のネットワーククロックＮと同期したクロックＲのカウント値（RNCOUNT）と、PCRパケットPに挿入された同期情報に基づいてMPCRが算出され、そのMPCRに基づいてPCRが修正される（置き換えられる）。PCRが修正されたPCRパケットPは、PCR修正部３０６から、受信装置１０３への到着間隔が保持された状態で、図示せぬシステムデコーダに出力される。
【０１１２】
なお、以上の処理においてメモリ３０７に記憶される各種データは、プログラム毎に記憶される。
【０１１３】
ところで、送信装置１０１から送信されてきたデータに、遅延が付加されていなければ（固定遅延または遅延ゆらぎのいずれも付加されていなければ）、PCRパケットP1およびPCRパケットP2は、図１３（Ｂ）の矢印Ａおよび矢印Ｂで示されるクロックＲのカウント値がカウントされるタイミングで、受信装置１０３に到着する。しかしながら、この例の場合のように、データに遅延ゆらぎが付加されている場合、PCRパケットP1およびPCRパケットP2は、RNCOUNT1およびRNCOUNT2がカウントされるタイミングで、受信装置１０３に到着する。すなわち、遅延が付加されていない場合と異なるタイミングで、受信装置１０３に到着する。また、固定遅延が付加される場合とも異なり、PCRパケットP1およびPCRパケットP2の受信装置１０３への到着間隔（RPAT）と、送信装置１０１への到着間隔（EPAT）（実質的に、送信装置１０１からの送信間隔と同じ間隔）は等しくない。同様に、PCRパケットP3およびPCRパケットP4は、遅延が付加されていないときに到着するタイミング（図１４（Ｂ）の点線の矢印に示すタイミング）とは異なるタイミングで（図１４（Ｂ）において左右方向に、矢印で示される分だけずれて）、受信装置１０３に到着する。すなわち、図３と図４で説明した方法では、システムエンコーダのシステムクロックと同期する、システムデコーダのシステムクロックは生成されない。
【０１１４】
これに対して、本発明では、システムエンコーダから出力されたPCRパケットP1とPCRパケットP2の送信装置１０１への到着間隔の間にカウントされる、クロックＳ（ネットワーククロックＮと同期するクロック）のクロック数（EPAT）と、そのEPATと、送信装置１０１への到着間隔の間にカウントされる、システムエンコーダのシステムクロックのクロック数（EPCR1とEPCR2との差）の差（RTS）、すなわち、その間に発生したシステムエンコーダのシステムクロックとクロックＳとのずれがPCRパケットPに挿入されて、受信装置１０３に供給される。そして受信装置１０３において、供給されたEPATおよびRTSに基づいて、PCRパケットP1とPCRパケットP2の受信装置１０３への到着間隔（RPAT）の間に発生するシステムエンコーダのシステムクロックとクロックＳ（クロックＲ）とのずれが推測され（比例計算され）、その推測値に基づいて、EPCRが修正される。すなわち、PCRが、遅延ゆらぎに対応した値に修正される。これにより、システムデコーダにおいて、システムエンコーダのシステムクロックと同期するシステムクロックが生成される。
【０１１５】
上述した一連の処理は、ハードウエアにより実現させることもできるが、ソフトウエアにより実現させることもできる。一連の処理をソフトウエアにより実現する場合には、そのソフトウエアを構成するプログラムがコンピュータにインストールされ、そのプログラムがコンピュータで実行されることより、上述した送信装置１０１や受信装置１０３が機能的に実現される。
【０１１６】
そこで、図１９は、上述のような送信装置１０１または受信装置１０３として機能するコンピュータ５０１の１実施の形態を示すブロック図である。CPU（Central Processing Unit）５１１にはバス５１５を介して入出力インタフェース５１６が接続されており、CPU５１１は、入出力インタフェース５１６を介して、ユーザから、キーボード、マウスなどよりなる入力部５１８から指令が入力されると、例えば、ROM（Read Only Memory）５１２、ハードディスク５１４、またはドライブ５２０に装着される磁気ディスク５３１、光ディスク５３２、光磁気ディスク５３３、若しくは半導体メモリ５３４などの記録媒体に格納されているプログラムを、RAM（Random Access Memory）５１３にロードして実行する。これにより、上述した各種の処理（例えば、図１２のフローチャートまたは図１８のフローチャートにより示される処理）が行われる。さらに、CPU５１１は、その処理結果を、例えば、入出力インタフェース５１６を介して、LCD（Liquid Crystal Display）などよりなる表示部５１７に必要に応じて出力する。なお、プログラムは、ハードディスク５１４やROM５１２に予め記憶しておき、コンピュータ５０１と一体的にユーザに提供したり、磁気ディスク５３１、光ディスク５３２、光磁気ディスク５３３，半導体メモリ５３４等のパッケージメディアとして提供したり、衛星、ネットワーク等から通信部５１９を介してハードディスク５１４に提供することができる。
【０１１７】
以下に、例えば、ハードディスク５１４に格納されているプログラムをRAM５１３にロードすることで実行されるCPU５１１の動作を、図１２のフローチャートを参照して説明する。
【０１１８】
ステップＳ２１で、CPU５１１は、フレーム同期確立後、コンピュータ５０１に最初に到着するPCRパケットP1を検出するまで待機し、PCRパケットP1を検出したとき、ステップＳ２２に進み、PCRパケットP1のPCR（EPCR1）を検出する。
【０１１９】
次に、ステップＳ２３において、CPU５１１は、PCRパケットP1を検出したタイミングでカウントしたネットワークのネットワーククロックと同期するクロックのカウント値（NCOUNT1）およびステップＳ２２で検出したEPCR1を、式（１）に代入し、オフセット値（OFFSET）を算出する。
【０１２０】
ステップＳ２４において、CPU５１１は、ステップＳ２２で検出したEPCR1と、ステップＳ２３で算出したOFFSETを、例えばハードディスク５１４に記憶させる。次に、ステップＳ２５で、CPU５１１は、PCRパケットP1の次のPCRパケットP2を検出するまで待機する。
【０１２１】
ステップＳ２５において、PCRパケットP2を検出したとき、CPU５１１は、ステップＳ２６に進み、PCRパケットP2のEPCR2を検出する。さらに、ステップＳ２７において、CPU５１１は、同期情報、つまり、RTSおよびPATを算出し、ステップＳ２８において、算出したRTS1およびEPAT1をPCRパケットP1に挿入する。
【０１２２】
次に、ステップＳ２９において、CPU５１１は、式（５）に従って、ステップＳ２３で算出したOFFSETに、ステップＳ２７で算出したRTS1を加算し、新しいOFFSETを算出する。
【０１２３】
ステップＳ３０において、CPU５１１は、式（６）に従って、PCRパケットP2を検出したタイミングでカウントしたネットワークのネットワーククロックと同期するクロックのカウント値（NCOUNT2）に、ステップＳ２９で算出した新しいOFFSETを加算し、新しい参照点Bを算出する。
【０１２４】
ステップＳ３１において、CPU５１１は、ステップＳ２６で検出したEPCR2、ステップＳ２９で算出した新しいOFFSET、およびステップＳ３０で算出した新しい参照点Bをメモリ２０９に上書きする。
【０１２５】
以上のように、CPU５１１によって、プログラムが実行されることにより、上図した送信装置１０１のブロック図の構成が、機能的に実現される。ここでは、詳細な説明は省略するが、図１８のフローチャートに示した各ステップを、受信装置１０３の各部に代わり、CPU５１１が実行することにより、受信装置１０３のブロック図の構成も、機能的に実現される。
【０１２６】
なお、本明細書において、システムの用語は、複数の装置、手段などより構成される全体的な装置を意味するものとする。
【０１２８】
【発明の効果】
請求項１に記載の通信装置、請求項４に記載の通信方法、および請求項５に記載の記録媒体によれば、パケットの到着間隔と同期残差、並びに送信装置と共有のクロックに同期したクロックをカウントしたカウント値に基づいて、タイムスタンプの修正値を計算し、タイムスタンプを修正するようにしたので、遅延ゆらぎを取り除くことができ、例えば、固定遅延に対応したデコーダにおいてもデコードが可能となる。
【図面の簡単な説明】
【図１】従来のデータ伝送システムの構成例を示すブロック図である。
【図２】  PCRを説明する図である。
【図３】図１のシステムデコーダ４の構成例を示すブロック図である。
【図４】図３のPLL回路１３の構成例を示すブロック図である。
【図５】従来のデータ伝送システムの他の構成例を示すブロック図である。
【図６】アダプティブクロック部５１の構成例を示すブロック図である。
【図７】本発明を適用したデータ伝送システムの構成例を示すブロック図である。
【図８】図７の送信装置２０１の構成例を示すブロック図である。
【図９】  MPEGトランスポートストリームパケットのデータ構造を説明する図である。
【図１０】  ATMセルを説明する図である。
【図１１】  PLL回路２０７の構成例を示すブロック図である。
【図１２】同期情報挿入処理を説明するフローチャートである。
【図１３】同期情報算出方法およびMPCR算出方法を説明する図である。
【図１４】同期情報算出方法およびMPCR算出方法を説明する他の図である。
【図１５】  RTSのデータ量を説明する図である。
【図１６】  RTSのデータ量を説明する他の図である。
【図１７】図７の受信装置２０３の構成例を示すブロック図である。
【図１８】   PCR修正処理を説明するフローチャートである。
【図１９】 コンピュータ５０１の構成例を示すブロック図である。
【符号の説明】
１０１  送信装置,   １０２  ATMネットワーク，  １０３  受信装置，  ２０１  SYNC_BYTE検出部，  ２０２  PCRパケット検出部，  ２０３  RTS／PAT算出部，  ２０４  RTS／PAT挿入部，  ２０５  MPEG／ATM変換部，  ２０６  ATMセル送受信部，  ２０７  PLL回路，  ２０８  カウンタ，  ２０９  メモリ，３０１  ATMセル送受信部，  ３０２  ATM／MPEG変換部，  ３０３  SYNC_BYTE検出部，  ３０４  PCRパケット検出部，  ３０５  MPCR算出部，  ３０６  PCR修正部，  ３０７  メモリ，  ３０８  PLL回路，  ３０９  カウンタ
【図１】
0004081936.tif 000002
【図２】
0004081936.tif 000003
【図３】
0004081936.tif 000004
【図４】
0004081936.tif 000005
【図５】
0004081936.tif 000006
【図６】
0004081936.tif 000007
【図７】
0004081936.tif 000008
【図８】
0004081936.tif 000009
【図９】
0004081936.tif 000010
【図１０】
0004081936.tif 000011
【図１１】
0004081936.tif 000012
【図１２】
0004081936.tif 000013
【図１３】
0004081936.tif 000014
【図１４】
0004081936.tif 000015
【図１５】
0004081936.tif 000016
【図１６】
0004081936.tif 000017
【図１７】
0004081936.tif 000018
【図１８】
0004081936.tif 000019
【図１９】
0004081936.tif 000020