JP4158075B2 - 通信装置、通信方法、および記録媒体 - Google Patents
通信装置、通信方法、および記録媒体 Download PDFInfo
- Publication number
- JP4158075B2 JP4158075B2 JP33235199A JP33235199A JP4158075B2 JP 4158075 B2 JP4158075 B2 JP 4158075B2 JP 33235199 A JP33235199 A JP 33235199A JP 33235199 A JP33235199 A JP 33235199A JP 4158075 B2 JP4158075 B2 JP 4158075B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- time stamp
- clock
- value
- reading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
- Time-Division Multiplex Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
【発明の属する技術分野】
本発明は、通信装置および方法、並びに記録媒体に関し、特に、ATM通信技術などを用いてデジタル化されたオーディオデータやビデオデータを送受信することができるようにした通信装置および方法、並びに媒体に関する。
【0002】
【従来の技術】
図1は、従来のデータ伝送システムの構成例を表している。なお、エンコード側とデコード側のそれぞれが接続するネットワーク3は、デジタルCS放送における伝送方法と同様に、衛星が利用されているものとする。すなわち、ネットワーク3を介して伝送されるデータには、一定間隔の遅延が発生するものとする。
【0003】
エンコーダ1は、伝送すべきデータとしての、例えばビデオデータおよびオーディオデータをMPEG-2方式に従ってエンコードし、システムエンコーダ2に出力する。システムエンコーダ2は、入力されたビデオデータおよびオーディオデータをパケット化し、トランスポートストリームパケットを生成するとともに、必要に応じて他のトランスポートストリームと多重化して、ネットワーク3上に出力する。
【0004】
システムエンコーダ2はまた、生成したトランスポートストリームパケットのヘッダに、タイムスタンプであるPCR(Program Clock Reference)を、図2に示すように組み込む(以下、PCRがヘッダに組み込まれたトランスポートストリームパケットをPCRパケットと称する)。このPCRは、エンコード側から、トランスポートストリームが出力されるタイミングでカウントされた、システムエンコーダ2におけるシステムクロックC1(MPEG-2方式の場合、周波数が27MHzのクロック)のカウント値である。なお、PCRは、MPEG-2規格により、0.1秒間に少なくとも1つ、エンコード側から出力されるように、トランスポートストリームに組み込まれている。
【0005】
図1に戻り、エンコード側から出力されたトランスポートストリームパケット(PCRパケットを含む)は、ネットワーク3を介して、デコード側に到着し、そのシステムデコーダ4に入力される。なお、ネットワーク3を介して伝送されてきたトランスポートストリームは、一定間隔の遅延を有しているので、PCR(PCRパケット)は、エンコード側から送出された間隔と同じ間隔(その差が、MPEG-2規格の+/-500ns以内)でデコード側に到着する。
【0006】
システムデコーダ4は、入力されたトランスポートストリームパケットをデパケット化し、その結果得られたオーディオストリームまたはビデオストリームを、デコーダ5に出力する。システムデコーダ4はまた、図2に示すように、PCRパケットからPCRを取り出し、そのPCRと、PCRを取り出したタイミングでカウントした、デコード側のシステムクロックC2(27MHzのクロック)のカウント値と比較し、その比較結果に基づいて、システムクロックC2の速度を調整し、デコーダ5に供給する。
【0007】
デコーダ5は、システムデコーダ4から供給されたオーディオデータまたはビデオデータを、システムデコーダ4から供給されたシステムクロックC2に同期して、デコード処理をする。
【0008】
次に、デコード側におけるシステムクロックC2の生成(調整)処理を、図3と図4を参照してさらに説明する。システムデコーダ4は、図3に示すように構成されている。システムデコーダ4に供給されたトランスポートストリームパケットは、システムデコーダ4のシステムデコード部11およびタイムスタンプ取出回路12に供給される。
【0009】
タイムスタンプ取出回路12は、図2に示したように、PCRパケットに組み込まれたPCRを取り出し、PLL回路13に出力する。PLL回路13は、例えば図4に示すように構成されており、その減算器21には、タイムスタンプ取出回路12により取り出されたPCR、およびそのPCRが入力されたタイミングでカウントされたカウンタ24のカウント値(D/Aコンバータ兼VCO23から出力されるクロックのカウント値)が入力される。減算器21は、タイムスタンプ取出回路12からのPCRと、カウンタ24からのカウント値との差を算出し、ローパスフィルタ(以下、LPFと略称する)22に出力する。LPF22は、入力された減算器21からの演算結果を時間的に平滑し、D/Aコンバータ兼VCO(電圧制御発振器)23に出力する。D/Aコンバータ兼VCO23は、LPF22より入力されたデジタル信号をアナログ信号に変換し、そのアナログ信号を制御電圧として、その制御電圧に対応する周波数のシステムクロックC2を発生する。D/Aコンバータ兼VCO23は、発生したシステムクロックC2をカウンタ24およびデコーダ5に出力する。
【0010】
カウンタ24は、D/Aコンバータ兼VCO23からのシステムクロックC2をカウントし、そのカウント値を、その時点におけるシステムクロックC2の周波数と位相を表す信号として、減算器21に供給する。すなわち、このPLL回路13において、トランスポートストリームパケットに組み込まれたPCRと、そのPCRが取り出されるタイミング(PCRパケットがデコード側に到着するタイミング)でカウントされたシステムクロックC2のカウント値の差がなくなるように、システムクロックC2の速度が調整される。その結果、エンコード側のシステムクロックC1と同期する、デコード側のシステムクロックC2が生成される。
【0011】
図3に戻り、システムデコード部11は、入力されたトランスポートストリームパケットをデパケット化し、その結果得られたオーディオストリームおよびビデオストリームを、デコーダ5に出力する。
【0012】
ところで、ネットワーク3として、衛星放送における伝送方法と同様に、衛星が利用されている場合、エンコード側から伝送されたトランスポートストリームパケットには、固定遅延が付加される。つまり、エンコード側から伝送されたトランスポートストリームパケットは、一定時間分だけ遅れて、または速まって、デコード側に到着する。この場合、遅れる時間または速まる時間は、一定であるので、トランスポートストリームパケット(PCRパケットを含む)のデコード側への到着間隔は、エンコード側からの出力間隔と同じとなる。そのため、この場合においては、図3と図4を参照して説明した方法を利用することで、デコード側のシステムクロックC2は、エンコード側のシステムクロックC1と同期するように生成される。
【0013】
【発明が解決しようとする課題】
しかしながら、ネットワーク3として、ATM(Asynchronous Transfer Mode)ネットワークが利用される場合、エンコード側から伝送されるトランスポートストリームパケットには、一定間隔の遅延ではなく、例えば、1ms乃至2msの範囲でゆれる遅延(以下、遅延ゆらぎと称する)が付加される。この場合、上述したデータ伝送システムでは、その遅延ゆらぎが吸収されず、結局、遅延の大きさが、MPEG-2規格の+/-500nsの範囲を大きく超えてしまい、データが適切に再生されない。
【0014】
そこで、デコード側において、遅延ゆらぎをある程度低減させた後にシステムクロックを生成するようにしたアダプティブクロック法などの同期方法が提案されている。
【0015】
図5は、アダプティブクロック法を適用したデコード側の装置のアダプティブクロック部51の構成例を表している。なお、ネットワーク50を介して伝送されてくるデータには、遅延ゆらぎが発生しているものとする。
【0016】
ネットワーク50を介して伝送されてきた、遅延ゆらぎを有するデータは、アダプディブクロック部51のFIFO52に入力される。FIFO52は、入力されたデータを一時保持するとともに、制御部53から供給される所定の読み出しクロックに対応してデータを出力する。FIFO52はまた、自分自身のデータ占有率をLPF54に出力する。LPF54は、FIFO52のデータ占有率を平滑し、それを制御部53に出力する。
【0017】
制御部53は、LPF54から供給されるデータ(平滑されたFIFO52のデータ占有率)が、所定の値になるように、FIFO52に出力する読み出しクロックの速度を制御する。すなわち、アダプティブクロック法においては、制御部53により制御されるクロックがデコード側のシステムクロックとされる。
【0018】
このように、このアダプティブクロック方式においては、受信されたデータのみに基づいて、デコード側のシステムクロックが生成されるので、装置の構成を簡単にすることができる。しかしながら、この例では、ジッタ成分をアナログ的にシェイビングしているだけなので、長い時間でみればジッタ成分は残っており、遅延ゆらぎは十分に吸収されない課題がある。
【0019】
また、エンコード側に、図6に示されるような構成を有する送信装置61、およびデコード側に、図7に示すような構成を有する受信装置62からなるデータ伝送システムも提案されている。これは、例えば、各テレビジョン放送局または番組作成会社において、それぞれのクロックに同期した複数のプログラムを伝送するためのシステムである。
【0020】
送信装置61には、図6に示すように、PLL回路71とN個の同期データ作成部72−1乃至72−N(以下、ここに区別する必要がない場合、単に、同期データ作成部72と記述する。他の部分についても同様である)が設けられている。PLL回路71には、ネットワーク63のネットワーククロックである8KHzのクロックが供給される。PLL回路71は、図8に示すように構成されている位相比較器91が設けられている。位相比較器91のVCO92は、位相比較部94から供給される信号に基づいて所定の位相の27MHzを発生し、それを分周器93に出力するとともに、同期データ作成部72−1乃至72−Nのそれぞれにも出力する。
【0021】
分周器93は、VCO92から入力された27MHzのクロックを、1/3375に分周し、8KHzのクロックを生成し、それを位相比較部94に出力する。位相比較部94は、ネットワーク63からの8KHzのクロックと、分周器93からの8KHzのクロックの位相を比較し、比較結果をVCO92に出力する。
【0022】
同期データ作成部72−1は、PLL回路81、ラッチ回路82、およびクロック83などから構成されている。同期データ作成部72−1のPLL回路81には、例えば、所定のクロックに同期して作成されたデータに含まれているタイムスタンプが供給される。PLL回路81は、基本的に、図4に示したPLL回路13と同様の構成を有している。すなわち、PLL回路81は、入力されたタイムスタンプに基づて所定のクロックを発生し、ラッチ回路82に出力する。
【0023】
ラッチ回路82は、PLL回路81からのクロックとクロック83からのクロックに従ってラッチ処理を実行する。そのラッチ処理の処理結果により再生されたデータが同期データとされ、所定のトランスポートストリームパケットに組み込まれる。
【0024】
同期データ作成部72−2乃至72−Nも、同期データ作成部72−1と同様の構成を有しているので、その図示と詳細な説明は省略するが、それぞれ異なるクロックに同期して作成されたデータに含まれるタイムスタンプが入力され、そのクロックに対応した同期データを作成する。
【0025】
受信装置62には、図7に示すように、PLL回路101とN個のシステムクロック再生部102−1乃至102−Nが設けられている。PLL回路101には、ネットワーク63のネットワーククロックである8KHzのクロックが供給される。PLL回路101は、送信装置61のPLL回路71と同様に、入力される8KHzのクロックに対応する27MHzのクロックを発生し、システムクロック再生部102−1乃至102−Nのそれぞれに出力する。
【0026】
システムクロック再生部102−1は、クロック110およびPLL回路111などから構成されている。システムクロック再生部102−1のクロック110には、PLL回路101から供給されたクロックが入力され、クロック110は、それを1/27000000に分周し、PLL回路111に出力する。PLL回路111には、クロック110からのクロックの他、送信装置61の同期データ作成部72−1により作成された同期データが供給される。そこでPLL回路111は、入力されたクロックおよび同期データに基づいて、システムクロックを再生する。
【0027】
システムクロック再生部102−2乃至102−Nも、システムクロック再生部102−1と同様の構成を有しているので、その図示は省略するが、それらは、それぞれ対応する、送信装置61の同期データ作成部72から供給される同期データを利用してシステムクロックを再生する。このように再生されたシステムクロックは、それぞれのデータのエンコード時のクロックに同期しているので、そのクロックに従って、データをそれぞれデコードすることにより、データは適切に再生される。
【0028】
しかしながら、上述したデータ伝送システムにおいては、エンコード時のクロック毎に、同期データ作成部72およびシステムクロック再生部102を備える必要があり、装置の構成が複雑、かつ、大型化してしまう課題があった。
【0029】
本発明はこのような問題に盤みてなされたものであり、遅延ゆらぎを、容易に、かつ、確実に吸収し、また装置を複雑、かつ、大型化することなく、複数のプログラムに対応するデータを送受信することができるようにしたものである。
【0030】
【課題を解決するための手段】
請求項1に記載の通信装置は、入力されてきたデータに付加されているタイムスタンプを読み取る読み取り手段と、データが入力されてきたタイミングで、ネットワーククロックのカウント値を保持する保持手段と、読み取り手段により読み取られたタイムスタンプと、保持手段により保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値に基づいて、基準クロック値を決定する決定手段と、基準クロック値と、読み取り手段により読み取られたタイムスタンプとの距離、並びに基準クロック値と、保持手段により保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値との距離に基づいて、基準クロック値から固定クロック分離れたときのデータのタイムスタンプの誤差を算出する算出手段と、算出手段により算出された誤差を、データに書き込む書き込み手段と、書き込み手段により誤差が書き込まれたタイムスタンプが付加されているデータを、受信装置に送信する送信手段とを備えることを特徴とする。
【0031】
請求項2に記載の通信装置は、データは、MPEG-2方式に準拠したトランスポートストリームパケットデータで、固定クロックは、3240000クロックである。
【0032】
請求項3に記載の通信装置は、決定手段により決定された基準クロック値、所定の参照点と、基準クロック値との距離を記憶することができる。
【0033】
請求項4に記載の通信方法は、入力されてきたデータに付加されているタイムスタンプを読み取る読み取りステップと、データが入力されてきたタイミングで、ネットワーククロックのカウント値を保持する保持ステップと、読み取りステップで読み取られたタイムスタンプと、保持ステップで保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値に基づいて、基準クロック値を決定する決定ステップと、基準クロック値と、読み取りステップで読み取られたタイムスタンプとの距離、並びに基準クロック値と、保持ステップで保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値との距離に基づいて、基準クロック値から固定クロック分離れたときのデータのタイムスタンプの誤差を算出する算出ステップと、算出ステップで算出された誤差を、データに書き込む書き込みステップと、書き込みステップで誤差が書き込まれたタイムスタンプが付加されているデータを、受信装置に送信する送信ステップとを含むことを特徴とする。
【0034】
請求項5に記載の記録媒体は、入力されてきたデータに付加されているタイムスタンプを読み取る読み取りステップと、データが入力されてきたタイミングで、ネットワーククロックのカウント値を保持する保持ステップと、読み取りステップで読み取られたタイムスタンプと、保持ステップで保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値に基づいて、基準クロック値を決定する決定ステップと、基準クロック値と、読み取りステップで読み取られたタイムスタンプとの距離、並びに基準クロック値と、保持ステップで保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値との距離に基づいて、基準クロック値から固定クロック分離れたときのデータのタイムスタンプの誤差を算出する算出ステップと、算出ステップで算出された誤差を、データに書き込む書き込みステップと、書き込みステップで誤差が書き込まれたタイムスタンプが付加されているデータを、受信装置に送信する送信ステップとからなることを特徴とするプログラムを実行させる。
【0035】
請求項1に記載の通信装置、請求項4に記載の通信方法、および請求項5に記載の記録媒体においては、入力されてきたデータに付加されているタイムスタンプが読み取られ、データが入力されてきたタイミングで、ネットワーククロックのカウント値が保持され、読み取られたタイムスタンプと、保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値に基づいて、基準クロック値が決定され、基準クロック値から、読み取られたタイムスタンプの距離と、基準クロック値から、保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値の距離に基づいて、基準クロック値から固定クロック分離れたときのデータのタイムスタンプの誤差が算出され、算出された誤差が、データに書き込まれ、誤差が書き込まれたタイムスタンプが付加されているデータが、受信装置に送信される。
【0036】
請求項6に記載の通信装置は、入力されてきたデータに付加されているタイムスタンプを読み取る第1の読み取り手段と、入力されてきたデータに書き込まされている、所定の固定クロックに対応する誤差情報を読み取る第2の読み取り手段と、データが入力されてきたタイミングで、ネットワーククロックのカウント値を保持する保持手段と、第1の読み取り手段により読み取られたタイムスタンプと、保持手段により保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値に基づいて、基準クロック値を決定する第1の決定手段と、第1の読み取り手段により読み取られたタイムスタンプと、保持手段により保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値に基づいて、オフセット値を決定する第2の決定手段と、第1の読み取り手段により読み取られたタイムスタンプ、第2の読み取り手段により読み取られた、タイムスタンプが付加されているデータに書き込まされた誤差情報、第1の決定手段により決定された基準クロック値、第2の決定手段により決定されたオフセット値、および固定クロックに基づいて、タイムスタンプを書き換える書換手段とを備えることを特徴とする。
【0037】
請求項7に記載の通信装置は、第1の決定手段により決定された基準クロック、および第2の決定手段により決定されたオフセット値を記憶することができる。
【0038】
請求項8に記載の通信方法は、入力されてきたデータに付加されているタイムスタンプを読み取る第1の読み取りステップと、入力されてきたデータに書き込まされている、所定の固定クロックに対応する誤差情報を読み取る第2の読み取りステップと、データが入力されてきたタイミングで、ネットワーククロックのカウント値を保持する保持ステップと、第1の読み取りステップで読み取られたタイムスタンプと、保持ステップにより保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値に基づいて、基準クロック値を決定する第1の決定ステップと、第1の読み取りステップで読み取られたタイムスタンプと、保持ステップで保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値に基づいて、オフセット値を決定する第2の決定ステップと、第1の読み取りステップで読み取られたタイムスタンプ、第2の読み取りステップで読み取られた、タイムスタンプが付加されているデータに書き込まされた誤差情報、第1の決定ステップで決定された基準クロック値、第2の決定ステップで決定されたオフセット値、および固定クロックに基づいて、タイムスタンプを書き換える書換ステップとを含むことを特徴とする。
【0039】
請求項9に記載の記録媒体は、入力されてきたデータに付加されているタイムスタンプを読み取る第1の読み取りステップと、入力されてきたデータに書き込まされている、所定の固定クロックに対応する誤差情報を読み取る第2の読み取りステップと、データが入力されてきたタイミングで、ネットワーククロックのカウント値を保持する保持ステップと、第1の読み取りステップで読み取られたタイムスタンプと、保持ステップにより保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値に基づいて、基準クロック値を決定する第1の決定ステップと、第1の読み取りステップで読み取られたタイムスタンプと、保持ステップで保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値に基づいて、オフセット値を決定する第2の決定ステップと、第1の読み取りステップで読み取られたタイムスタンプ、第2の読み取りステップで読み取られた、タイムスタンプが付加されているデータに書き込まされた誤差情報、第1の決定ステップで決定された基準クロック値、第2の決定ステップで決定されたオフセット値、および固定クロックに基づいて、タイムスタンプを書き換える書換ステップとからなることを特徴とするプログラムを実行させる。
【0040】
請求項6に記載の通信装置、請求項8に記載の通信方法、および請求項9に記載の記録媒体においては、入力されてきたデータに付加されているタイムスタンプが読み取られ、入力されてきたデータに書き込まされている、所定の固定クロックに対応する誤差情報が読み取られ、データが入力されてきたタイミングで、ネットワーククロックのカウント値が保持され、読み取られたタイムスタンプと、保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値に基づいて、基準クロック値が決定され、読み取られたタイムスタンプと、保持された、タイムスタンプが付加されたデータが入力されてきたタイミングでのネットワーククロックのカウント値に基づいて、オフセット値が決定され、読み取られたタイムスタンプ、読み取られた、タイムスタンプが付加されているデータに書き込まされた誤差情報、決定された基準クロック値、決定されたオフセット値、および固定クロックに基づいて、タイムスタンプが書き換えられる。
【0041】
【発明の実施の形態】
図9は、本発明を適用したデータ伝送システムの構成例を表している。このシステムにおいては、MPEG-2方式に準拠したMPEGトランスポートストリームが、ATMネットワークであるネットワーク202を介して送受信される。すなわち、ネットワーク202を介して伝送されるデータには、遅延ゆらぎが発生する。
【0042】
送信装置201には、それぞれにエンコードされた複数のプログラムが多重化されているMPEGトランスポートストリームパケットが入力される。なお、このMPEGトランスポートストリームパケットには、PCRが少なくとも0.1秒以内の間隔で受信装置203に到着するようにPCRパケットが組み込まれている。
【0043】
MPEGトランスポートストリームパケットは、図10に示すように、ヘッダ部、アダプテーションフィールド部、およびペイロード部等からなる、188バイトの固定パケットである。ヘッダ部には、同期バイト(8ビット)、誤り表示(1ビット)、ユニット開始表示(1ビット)、トランスポートパケットプライオリティ(1ビット)、PID(Packet Identification)(13ビット)、スクランブル制御(2ビット)、アダプテーションフィール制御(2ビット)、巡回カウンタ(4ビット)が含まれる。なお、同期バイトは、47hとされている。
【0044】
アダプテーションフィールド部には、アダプテーションフィールド長さ(8ビット)、不連続表示(1ビット)、ランダムアクセス表示(1ビット)、ストリーム優先表示(1ビット)、フラグ(5ビット)、プログラムクロックリファレンスベース(33ビット)、リザーブ(6ビット)、およびプログラムクロックリファレンス拡張(9ビット)が含まれる。なお、フラグには、PCRフラグ(1ビット)をはじめ5種類のフラグが存在する。
【0045】
ペイロード部には、データが含まれる。
【0046】
MPEGトランスポートストリームパケットは、以上のようなデータ構造を有するが、図10に示すように、ヘッダ部のアダプテーションフィールド制御が”10”または”11”とされ、かつ、アダプテーションフィールド部のアダプテーションフィールド長さが00h以外の値で、さらにPCRフラグに”1”が立っている場合(以下、このようなデータ設定をPCRパケット条件と記述する)、そのMPEGトランスポートストリームパケットは、PCRパケットであり、そのアダプテーションフィールド部のプログラムクロックリファレンスベースの値およびプログラムロックリファレンス拡張の値の組み合わせが、PCR値を表す。
【0047】
プログラムクロックリファレンスベースには、0乃至299の値が順に設定され(カウントされ)、プログラムクロックリファレンスベースの値が299から0の値に戻る(リセット)されるタイミングで、プログラムクロックリファレンス拡張の値が1だけインクリメントされる。すなわち、プログラムクロックリファレンスベースおよびプログラムクロックリファレンス拡張の合計42ビットにより、MPEG-2方式における27MHzのシステムクロックを単位として、24時間分の時間がカウントされる。
【0048】
図9に戻り、送信装置201に入力されたMPEGトランスポートストリームパケット(PCRパケットを含む)は、そこで、ATMセルに変換され、ネットワーク202上に伝送されるが、PCRパケットには、そのPCR値に基づいて作成された所定の同期情報(後述)が書き込まれる。
【0049】
ネットワーク202を介して伝送されてきたATMセルは、受信装置203に到着し、そこで、MPEGトランスポートストリームに変換されるが、PCRパケットに含まれるPCR値は、PCRパケットに書き込まれた同期情報に基づいて修正される。PCR値が修正されたPCRパケットを含むMPEGトランスポートストリームパケットは、図示せぬデコーダに供給され、そこでデコードされる。
【0050】
図11は、送信装置201の構成例を表している。MPEGトランスポートストリームパケット同期部(以下、TSパケット同期部と略称する)211には、送信装置201に供給されたMPEGトランスポートストリームパケットが入力される。TSパケット同期部211は、入力されたMPEGトランスポートストリームパケットの先頭を検出し、フレーム同期を確立するとともに、フレーム同期を確立した後、MEPGトランスポートストリームパケットを、PCRパケット検出部212に出力する。
【0051】
PCRパケット検出部212は、TSパケット同期部211から入力されたMPEGトランスポートストリームパケット(フレーム同期が取られているMPEGトランスポートストリームパケット)のヘッダ部およびアダプテーションフィールド部を参照して、PCRパケット条件が設定されているか否かを判定し、PCRパケット条件が設定されていると判定した場合、すなわち、そのMPEGトランスポートストリームパケットがPCRパケットである場合、そのことを示す信号(以下、PCRパケット検出信号と称する)を同期情報処理部213に出力する。なお、PCRパケット検出部212は、入力されたMPEGトランスポートストリームパケット自身には、何ら処理を施さずに、同期情報処理部213に出力する。
【0052】
同期情報処理部213には、PCRパケット検出部212から、MPEGトランスポートストリームパケットおよびPCRパケット検出信号、並びにカウンタ214から、カウント値が、それぞれ入力される。
【0053】
同期情報処理部213は、PCRパケット検出部212からのPCRパケット検出信号により特定される、PCRパケット検出部212からのMPEGトランスポートストリームパケット(PCRパケット)からPCRを読み出し、読み出したPCRに基づいて、所定の同期情報(詳細は後述する)を算出する。同期情報処理部213は、算出した同期情報をそのPCRパケットに書き込み、MPEG/ATM変換部216に出力する。
【0054】
メモリ215は、同期情報処理部213から供給される、同期情報を算出する上において必要なデータを適宜記憶する。なお、この例の場合、同期情報処理部213による同期情報算出処理は、プログラム毎(MEPGトランスポートストリームパケットに設定されたPID毎)に行われるので、メモリ215は、同期情報処理部213から供給されるデータを各プログラム毎に記憶する。
【0055】
MPEG/ATM変換部216は、MPEGトランスポートストリームパケットをATMセルに変換してネットワーク202へ送信する。MPEG/ATM変換部216はまた、ネットワーク202から順次送信されてくるATMセルを受信し、受信したATMセルに基づいてネットワーク202のネットワーククロックに同期した8KHzのクロックを生成し、PLL回路217に出力する。
【0056】
PLL回路217は、例えば、図6のPLL回路71と同様に、図12に示すような位相比較器250を有している。VCO251は、位相比較部252から供給される信号に基づいて所定の位相の27MHzを発生し、カウンタ214および分周器253に出力する。分周器253は、VCO251から入力された27MHzのクロックを、1/3375に分周し、8KHzのクロックを生成し、位相比較部252に出力する。位相比較部252は、MPEG/ATM変換部216からの8KHzのクロックの位相と、分周器253からの8KHzからのクロックの位相を比較し、その比較結果をVCO251に出力する。すなわち、カウンタ214に出力される27MHzのクロックは、ネットワーク202のネットワーククロックと同期するように、その位相が調整される。
【0057】
図11に戻り、カウンタ214は、PLL回路217からの27MHzのクロックを1/3240000で分周して、カウントするとともに、そのカウント値Nを同期情報処理部213に出力する。すなわち、このカウンタ214は、ネットワーク202のネットワーククロックに同期したクロックをカウントする。
【0058】
次に、送信装置201のTSパケット同期部211の動作を、図13のフローチャートを参照して説明する。
【0059】
ステップS1において、TSパケット同期部211は、入力されたMPEGトランスポートストリームパケットのデータを1バイトごと読み取り、読み取った値が、同期バイトと等しい47h(図10)であると判定するまで待機する。読み取った1バイトの値が47hであると判定したとき、TSパケット同期部211は、ステップS2に進み、47hを読み取った回数をカウントするカウンタiの値を1に初期設定する。
【0060】
次に、ステップS3において、TSパケット同期部211は、ステップS1で読み取った47hから188バイト分離れたデータ(188バイト後のデータ)を読み取り、ステップS4において、それが47hであるか否かを判定する。ステップS4において、ステップS3で読み取ったデータが47hではないと判定した場合、TSパケット同期部211は、ステップS1に戻り、それ以降の処理を実行する。一方、ステップS4において、読み取ったデータが47hであると判定した場合、TSパケット同期部211は、ステップS5に進む。
【0061】
ステップS5において、TSパケット同期部211は、カウンタiの値が5であるか否かを判定し、その値が5ではないと判定した場合、ステップS6に進み、カウンタiの値を1だけインクリメントし、ステップS3に戻り、それ以降の処理を実行する。ステップS5で、カウンタiの値が5とであると判定された場合、すなわち、入力されたMPEGトランスポートストリームパケットのデータから、188バイト毎に、5回連続して47hが読み取られた場合、ステップS7に進む。
【0062】
ステップS7において、TSパケット同期部211は、5回目に検出した47hを同期バイトとし、すなわち、MPEGトランスポートストリームパケットの先頭データとし、フレーム同期を確立する。なお、ステップS7で、フレーム同期が確立される前に送信装置201に入力されたデータは、PCRパケット検出部212には供給されず、捨てられる。
【0063】
以上のようにして、フレーム同期が確立される。
【0064】
次に、ステップS8において、TSパケット同期部211は、カウンタiの値を1に初期設定し、ステップS9に進み、同期バイトとした47hから188バイト分離れたデータを読み取り、ステップS10において、それが47hであるか否かを判定する。
【0065】
ステップS10において、ステップS9で読み取られたデータが47hではないと判定した場合、TSパケット同期部211は、ステップS11に進み、カウンタiの値が3であるか否かを判定し、その値が3はないと判定した場合、ステップS12に進み、カウンタiの値を1だけインクリメントし、ステップS9に戻り、それ以降の処理を実行する。一方、ステップS11で、カウンタiの値が3であると判定された場合、ステップS1に戻り、それ以降の処理が実行される。すなわち、ステップS9において読み取られたデータが3回連続して47hではないと判定された場合、MPEGトランスポートストリームパケットのフレーム同期が取られていないと判断され、ステップS1に戻り、同期確立のための処理が、はじめから行われる。なお、同期を確立するための処理がはじめから再度行われる前に入力された、同期が取られていないと予想される、3×188バイト分のデータは、PCRパケット検出部212に供給されることになる。
【0066】
ステップS10において、TSパケット同期部211は、ステップS9で読み取ったデータが47hであると判定した場合、ステップS9に戻り、それ以降の処理を実行する。
【0067】
図14のフローチャートを参照して、同期を確立するための他の方法について説明する。なお、この例の場合、TSパケット同期部211は、図15に示すように、188個のメモリ領域i(=1,2,・・,188)からなる47hカウント部を内蔵しているものとする。なお、初期状態において、47hカウント部の各メモリ領域iには、値0が設定されている。
【0068】
ステップS21において、TSパケット同期部211は、入力されたMPEGトランスポートストリームパケットを1バイトごと読み出し、47hを検出するまで待機し、47hを検出すると、ステップS22に進み、カウンタiの値を1だけインクリメントし、ステップS23において、カウンタiの値で特定されるメモリ領域i(=1)の値を、1だけインクリメントする。
【0069】
図16(B)には、ステップS21で47hが検出された位置から188バイト毎に区分されたデータ1乃至データ5が示され、図16(A)には、各データを構成するバイトと、それに対応する47hカウント部のメモリ領域iの値が示されている。データ1の先頭データ(47h)に対応する、メモリ領域1の値は、1が設定されている。なお、図16中、xxhは、47h以外のデータを示している。
【0070】
次に、ステップS24において、TSパケット同期部211は、ステップS21で、検出した47hの次の1バイト分のデータを読みとり、ステップS25において、カウンタiの値を1だけインクリメントする。
【0071】
ステップS26において、TSパケット同期部211は、ステップS24で読み取ったデータが47hであるか否かを判定し、47hではないと判定した場合、ステップS27に進む。
【0072】
図16のデータ1の場合、47hの次の1バイトのデータは、47hではないので(図中、”xxh”で示されているデータであるので)、ステップS27に進み、TSパケット同期部211は、メモリ領域2に0を設定する。
【0073】
次に、ステップS28において、TSパケット同期部211は、カウンタiの値が189であるか否かを判定し、その値が189ではないと判定した場合、ステップS24に戻り、それ以降の処理を実行する。
【0074】
ステップS26において、読み取られたデータが47hであると判定された場合、ステップS29に進み、TSパケット同期部211は、カウンタiの値で特定されるメモリ領域iの値を1だけインクリメントする。データ1の先頭バイトからkバイト離れたデータは、47hであるので、メモリ領域kの値は、1だけインクリメントされる。
【0075】
次に、ステップS30において、TSパケット同期部211は、ステップS29で、その値を1だけインクリメントしたメモリ領域iの値が5であるか否を判定し、その値が5ではないと判定した場合、ステップS28に戻り、それ以降の処理を実行する。
【0076】
ステップS28において、カウンタiの値が189であると判定された場合、ステップS22に戻り、TSパケット同期部211は、それ以降の処理を実行するステップS30において、メモリ領域iの値が5であると判定された場合、ステップS31に進み、TSパケット同期部211は、カウンタi=5のとき、ステップS24で読み取った47hを同期バイトとし、MPEGトランスポートストリームのフレーム同期を確立する。図16の例では、データ5の先頭データからkバイト離れた47hが読み出されているとき、メモリ領域kの値が5となるので、そのとき読み出されたデータ5の47hが同期バイトとされ、フレーム同期が確立される。
【0077】
ステップS32乃至ステップS36の処理は、図13のステップS8乃至ステップS12における場合と同様であるので、その説明は省略する。
【0078】
次に、同期情報を算出する場合の同期情報処理部213の処理手順を、図17のフローチャートを参照して説明する。なお、この処理は、MPEGトランスポートストリームに設定されたPID毎(最大8192個のプログラム分のPID毎)に実行されるが、この例の場合、1つのPIDに対応して実行される同期情報算出処理を例として説明する。
【0079】
TSパケット同期部211により、MPEGトランスポートストリームパケットのフレーム同期が確立されている状態において、ステップS51において、PCRパケット検出部212が、例えば、図18(A)に示すように、時刻P1において、フレーム同期確立後、送信装置201に入力された最初のPCRパケット(第1番目のPCRパケット)を検出し、PCRパケット検出信号を同期情報処理部213に出力する。同期情報処理部213は、PCRパケットが検出されたことを示すフラグをメモリ215に設定する。
【0080】
次に、ステップS52において、同期情報処理部213は、オフセット値Oを算出する。具体的には、はじめに、同期情報処理部213は、第1番目のPCRパケットのPCR値E1(図18(C))を取得し、それを基準クロック値B(図18(B))とする。なお、このとき、同期情報処理部213は、カウンタ214に対して、図18(B)に示すように、カウント値Nが基準クロック値Bとなるタイミング(時刻t0(図18(A))でカウント値Nのリセットを指令する。次に、同期情報処理部213は、ステップS51でPCRパケット検出信号が入力されたときの、カウンタ214から供給されたカウント値N1(図18(B))を参照点として保持し、それを基準クロック値Bとともに、下記の式(1)に代入し、オフセット値Oを算出する。
オフセット値O=PCR値E1(=基準クロック値B)−カウント値N1
・・・(1)
【0081】
ステップS53において、同期情報処理部213は、基準クロック値Bおよびオフセット値Oのそれぞれをメモリ215に記憶させる。
【0082】
次に、ステップS54において、同期情報処理部213は、カウンタ214からのカウント値Nが3240000を示すまでに、PCRパケット検出信号が、PCRパケット検出部212から入力されたか否かを判定し、それまでにPCRパケット検出信号が入力されたと判定した場合、ステップS55に進む。この例の場合、図18(A),(B)に示すように、ステップS52でカウンタ214のカウント値Nがリセットされてから(時刻t0)、3240000クロックのカウントが完了するとき(時刻t1(図18(A))までに、第2番目のPCRパケットが検出されるので、ステップS55に進む。なお、PCRパケットが入力されていないとき、同期情報処理部213は、PCRパケットが検出されたことを示すフラグを取り消す。
【0083】
ステップS55において、同期情報処理部213は、PCRパケット(この場合、第2番目のPCRパケット)のヘッダ部の同期バイトを47hから−128に変更する。なお、ここでの処理の意味は、後述する。
【0084】
ステップS54において、カウンタ214のカウント値Nが3240000になるまでの間にPCRパケットが検出されなかったと判定した場合、同期情報処理部213は、カウンタ214に対して、カウント値N=3240000となるタイミングで、カウント値Nのリセットを指令し、その後、ステップS56に進む。
【0085】
ステップS56において、同期情報処理部213は、PCRパケットが検出されるまで(PCRパケット検出信号が入力されるまで)待機する。なお、この例の場合、カウンタ214においては、1/3240000に分周された27MHzのクロックがカウントされているので、3240000クロック分のカウントが完了するのに、0.12秒(=3240000/27000000)を要する。すなわち、MPEG-2方式によれば、PCRパケットは、少なくとも0.1秒に1つの割合で伝送されるようになされているので、ステップS54でカウント値Nの値がリセットされてから(例えば、図18(A)の時刻t1)、3240000クロックのカウントが完了する(例えば、図18(A)の時刻t2)までの間には、必ず1つのPCRパケット(この例の場合、第3番目のPCRパケット)が検出される。
【0086】
ステップS56において、PCRパケット(この例の場合、第3番目のPCRパケット)が検出されたとき、同期情報処理部213は、ステップS57に進み、第3番目のPCRパケットに書き込む同期情報を算出する。具体的には、同期情報処理部213は、到着した第3番目のPCRパケットのPCR値E3(図18(C))を取得する。次に、同期情報処理部213は、第3番目のPCRパケットが検出されたときのカウンタ値N3(図18(B))を保持する。さらに、同期情報処理部213は、PCR値E1、PCR値E3、カウント値N3、および基準クロック値Bを、下記の式(2)に代入し、同期情報を算出する。
【0087】
同期情報=((PCR値E3−PCR値E1)−(カウント値N3−基準クロック値B))×3240000÷(カウント値N3−基準クロック値B))・・(2)
【0088】
すなわち、この同期情報は、(カウント値N3−基準クロック値B)分のクロックがカウントされる間に生じる、PCR値E3(システムエンコーダのシステムクロックのカウント値)とカウント値N3(ネットワーク202のネットワーククロックと同期するPLL回路217により発生されたクロックのカウント値)との差(α)から、第3番目のPCRパケットが、カウント値Nが3240000となる時点(時刻t1)に送信装置201に到着されるものとした場合のPCR値Eとカウンタ値N(=3240000)との差(β)を表すものでる。
【0089】
次に、ステップS58において、同期情報処理部213は、第3番目のPCRパケットに、ステップS57で算出した同期情報を書き込む。具体的には、同期情報処理部213は、第3番目のPCRパケットのヘッダ部の同期バイト(47h)を、算出した同期情報に変更する。
【0090】
同期情報処理部213は、ステップS55またはステップS58で同期バイトを変更した後、ステップS59に進み、その値から39hを差し引く。このように、39hの値を差し引くことより、例えば、同期情報が含まれていないPCRパケットの同期バイト(ステップS55で、−128に変更された同期バイト)は、47hとなる。このことより、受信装置102において、図13または図14のフローチャートで説明した同期処理により、MPEGトランスポートストリームパケットの同期が確立されるようになる。
【0091】
次に、ステップS60において、同期情報処理部213は、3240000(クロック)に、ステップS57で算出した同期情報を加算して、それを新たな基準クロック値Bとし、またステップS52で算出したオフセット値Oに同期情報を加算して、それを新たなオフセット値Oして、メモリ215に上書きする。すなわち、次のPCRパケットが入力されたとき、この変更された基準クロック値Bおよびオフセット値Oに基づいて、同期情報が算出される。
【0092】
以上のような処理を同期情報処理部213が実行することより、メモリ215には、基準クロック値B(42ビット)、オフセット値O(42ビット)、およびフラグ(1ビット)が、プログラムのPIDに対応して記憶される。
【0093】
また、以上においては、図18に示したように、時刻t0と時刻t1(図18(A))との間に、第2番目のPCRパケットが検出される(送信装置201に入力される)場合を例として説明したが、例えば、図19に示すように、その間に、第3番目のPCRパケットが入力されるような場合であっても同様に処理される。すなわち、この場合、第2番目のPCRパケットと第3番目のPCRパケットのヘッダ部の同期バイトの値は47h(−128から39hが差し引かれた47h)が設定され、そして第4番目のPCRパケットには、ステップS57における処理で算出される同期情報が、その同期バイトに書き込まれる。
【0094】
以上においては、1のPIDに対応して(1のプログラムに対応して)、同期情報が算出される場合を例として説明したが、図20に示すように、複数のプログラム(2つのプログラム)に対応する場合も同様に、上述した方法で、それぞれの同期情報が算出され、所定のPCRパケットに書き込まれる。
【0095】
図20(A)は、図18(B)と同じ図であり、図20(B)は、他のプログラムに対しての同期情報作成処理を説明するタイミングチャートである。図20(B)の場合、カウント値N10からオフセット値O1だけ離れた地点が基準クロック値Bとされ、上述した同期情報作成処理が行われる。なお、この場合のオフセット値Oおよび基準クロックBは、メモリ215に、プログラムのPIDに対応して記憶される。
【0096】
次に、同期情報の情報量について説明する。MPEG-2規格によれば、システムクロックとして用いられる27MHzのクロック(例えば、システムエンコーダのシステムクロックや送信装置201のPLL回路217により生成されるクロック(以下、クロックSと称する))には、それぞれ+/-30ppm(parts per million )の偏差が許容されている。すなわち、システムエンコーダのクロックおよびクロックSの周波数は、(27MHz−810(=27×106×30×10-6)Hz)乃至(27MHz+810Hz)の範囲で変動する。
【0097】
つまり、両者の周波数のずれは、図21に示すように、システムエンコーダのシステムクロックの周波数が27MHz+810Hz(図21(A))で、かつ、クロックSの周波数が27MHz−810Hz(図21(C))であるとき、また逆に、図22に示すように、システムエンコーダのシステムクロックの周波数が27MHz−810Hz(図22(A))で、かつ、クロックSの周波数が27MHz+810Hzであるとき(図22(C))に最大となる。
【0098】
そこで、図21の場合における各クロックの1秒間にカウントされるクロック数を求めると、想定する真の27 MHzの場合、27×106個であるのに対して(図21(B))、図21(A)のシステムエンコーダの場合は、(27×106+810)個となり、図21(C)のクロックSの場合は、(27×106−810)個となる。また、同様に図22の場合における各クロックの1秒間にカウントされるクロック数を求めると、図22(A)のシステムエンコーダのシステムクロック場合、(27×106−810)個となり、図22(C)のクロックSの場合、(27×106+810)個となる。すなわち、両者の周波数のずれが最大となるときの、1秒間でカウントされるクロック数の差は、1620個となる。
(27×106+810)−(27×106−810)=1620
【0099】
ところで、上述した同期情報も、システムエンコーダのシステムクロックとクロックSのずれ(PCRパケットの送信装置201への到着間隔の間でカウントされるクロック数の差)を示すものであるが、同期情報は、クロックSのカウント値NをPCRの時間軸に対応させることで算出されている。すなわち、同期情報の最大値も、PCRの時間軸に対応させて求める必要がある。また、同期情報は、この例の場合、0.12(=324000/27000000)秒間に、少なくとも1つ以上、MPEGトランスポートストリームパケットに組み込まれているので、同期情報は、最大0.12秒間のずれ(0.12秒間にカウントされるクロック数の差)を示すことができる必要がある。つまり、同期情報は、図21の状態のとき、プラス側で最大となり、その値は、下記に示すように、195となる。
((1+30ppm)/(1-30ppm)-1)×27MHz×0.12s=195
【0100】
上記式は、図21(C)のクロックSの周期(1/(27MHz−810Hz))(時間)を、図21(A)のシステムエンコーダのシステムクロックの周期(1/(27MHz+810Hz))で正規化し(PCRの時間軸に対応させ)、正規化されたそのクロックSの時間(PCRの時間軸に対応するクロックSの時間)と、PCRの時間(1単位)との差を求め、求めたその差に基づいて、0.12秒間に発生する両者のクロックのずれをクロック数で示したものである。
【0101】
一方、図22の状態のとき、同期情報は、マイナス側で最大となり、その値は、下記に示すように、-195となる。
((1-30ppm)/(1+30ppm)-1)×27MHz×0.12s=-195
すなわち、以上のことから、同期情報は、下記に示す範囲の値を取り得る。
-195<=同期情報=<195
【0102】
このことより、同期情報を表すには、9ビットが必要となるが(バイト単位で容量を確保するものとすると、2バイトが必要となるが)、1ビット分削除し、8ビットで示しても、+/-1クロック分の誤差が発生するだけで、MPEG-2方式のジッタの規格を越えない。MPEG-2方式におけるジッタの規格は、+/-500nsであり、それをクロック数に変換すると、+/-13.5(=+/-500nsec×27MHz)クロックである。すなわち、+/-1クロック分の誤差は、その範囲内であり、結局、同期情報は、8ビット(1バイト(-128乃至128))で示すことができる。
【0103】
この例の場合、同期情報は、−125乃至125のうちのいずれかの値とし、その他の値には、図23に示すような意味付けを行って利用する。例えば、−128は、同期情報が設定されていないことを意味する。すなわち、ステップS52で同期バイトが−128とされたが、これは、そのTSパケットには、同期情報が書き込まれないとを示すためである。
【0104】
−127は、例えばPCRパケットに大きなジッタが発生し、入力されたPCRパケットの間隔が大きく、同期情報の値が−125乃至125の範囲外とされるような場合などの、送信装置201において何らかのエラーが発生したことを意味する。−126、126、および127は、リザーブの値である。
【0105】
図24は、受信装置203の構成例を表している。ATM/MPEG変換部301は、ネットワーク202を介して伝送されてきた、送信装置201からのATMセルをMPEGトランスポートストリームパケットに変換し、TSパケット同期部304に出力する。ATM/MPEG変換部301はまた、受信したATMセルに基づいてネットワーク202のネットワーククロックに同期した8KHzのクロックを生成し、PLL回路302に出力する。PLL回路302は、図11のPLL回路217と同様の構成(位相比較回路を有している)を有するので、その詳細な説明は省略するが、ATM/MPEG変換部301から供給されたクロックと同期した、27MHzのクロックを生成し、カウンタ303に出力する。
【0106】
カウンタ303は、PLL回路302からの27MHzのクロックを1/3240000で分周し、それをカウントするとともに、そのカウント値MをPCR書換部306に出力する。
【0107】
TSパケット同期部304は、図11のTSパケット同期部211と同様に、図13または図14に示したフローチャートの処理に従って、ATM/MPEG変換部301からのMPEGトランスポートストリームパケットの同期を確立し、PCRパケット検出部305に出力する。
【0108】
なお、図14のフローチャートに示した処理により、フレーム同期を確立する場合、TSパケット同期部304は、47hカウント部(図15)を利用するが、同期情報が書き込まれたPCRパケットが入力されたとき、47hカウント部のメモリ領域iの値をリセットしないようにすることもできる。図25を参照して、具体的に説明する。
【0109】
データ11およびデータ12のデータに対応して、メモリ領域kの値が2とされている状態において、データ13の先頭データからkバイト離れた、4Ah乃至44hのいずれかの値が読み取られたとき、メモリ領域kの値は0にリセットされない(値2が保持される)。これは、4Ah乃至44hのいずれかの値を、同期情報が含まれるPCRパケットの先頭データであるとし、フレーム同期が取られているとしたためのである。なお、図25中、xxhは、47h、4Ah乃至44h以外のデータを示している。
【0110】
PCRパケット検出部305は、入力されたMPEGトランスポートストリームパケットのヘッダ部およびアダプテーションフィールド部を参照し、PCRパケット条件が設定されているか否かを判定し、PCRパケット条件が設定されていると判定した場合、PCRパケット検出信号をPCR書換部306に出力する。
【0111】
PCR書換部306は、入力されるPCRパケット(同期情報が書き込まれている)から同期情報を読み出すなどの処理を行い、新たなPCR値Dを算出し、PCR値DをPCRパケットに書き込む(書き換える)。なお、PCR書換部306における処理の詳細は、後述する。メモリ307は、PCR書換部306が、PCR値Dを算出するのに必要なデータを記憶している。
【0112】
次に、PCRパケットのPCR値を書き換える場合のPCR書換部306の動作を、図26のフローチャートを参照して説明する。TSパケット同期部304において、MPEGトランスポートストリームパケットの同期が取られている状態において、ステップS71において、PCR書換部306は、オフセット値Dを決定する。この処理の詳細は、図27のフローチャートに示されている。すなわち、ステップS81において、PCR書換部306は、フレーム同期確立後、最初に入力されるPCRパケットのPCR値Eを取得し、それを基準クロック値Bとし、そのPCRパケットが入力されたときのカウンタ303からのカウンタ値Mから、その基準クロック値Bを減算し、オフセット値Wを算出する。PCR書換部306は、基準クロック値Bおよびオフセット値Wを、メモリ307に記憶させる。
【0113】
次に、ステップS82において、PCR書換部306は、カウンタjの値に1を設定し、ステップS83において、次に入力されたPCRパケットのPCR値Eを読み取り、基準クロック値Bとの差ΔEを算出する。次に、ステップS84において、PCR書換部306は、ΔEが所定のリミット値Lより大きいか否かを判定し、大きくないと判定した場合、ステップS85に進み、それをメモリ307に記憶させる。一方、ステップS84において、ΔEがリミット値Lより大きいと判定された場合、ステップS83に戻る。
【0114】
ステップS86において、PCR書換部306は、カウンタjの値が7になったか否かを判定し、その値が7ではないと判定した場合、ステップS87に進み、カウンタjの値を1だけインクリメントして、ステップS83に戻り、次に入力されてくるPCRパケットに対して、それ以降の処理を実行する。
【0115】
ステップS86において、カウンタjの値が7であると判定された場合、すなわち、図28に示すように、7つのΔE1乃至ΔE7が算出され、それらがメモリ307に記憶されたとき、ステップS88に進み、PCR書換部306は、式(3)に示すように、ΔEの合計値を7で割り、ΔEの平均値を算出し、メモリ307に記憶させる。
ΔEの平均値=(ΔE1+ΔE2+ΔE3+ΔE4+ΔE5+ΔE6+ΔE7)/7 ・・・(3)
【0116】
次に、ステップS89において、PCR書換部306は、式(4)に従い、オフセット値Wに、ΔEの平均値を加算して、オフセット値Dを算出する(図28)。
オフセット値D=オフセット値W+ΔEの平均値・・・・(4)
【0117】
このように、オフセット値Dが算出されたとき、処理は終了され、図26のステップS72に進む。なお、オフセット値Dが算出されたタイミング(図29の例では、時刻t10)で、PCR書換部306は、オフセット値Dが算出されたことを示す所定のフラグ(1ビット)をメモリ307にセットする。また、PCR書換部306は、同じタイミングで、カウンタ303に対して、カウント値Mのリセットを指令する。
【0118】
ステップS72において、PCR書換部306は、同期情報が書き込まれたPCRパケットが入力されるまで待機し、それが入力されたとき、ステップS73に進み、カウンタ303が、ステップS71でリセットされてから、3240000クロック分のカウントを完了したか否かを判定し、そのカウントを完了していないと判定した場合、ステップS74に進む。ここでの第1番目のPCRパケットは、送信装置201の説明において示された第1番目のPCRパケットとは、別のパケットである。
【0119】
ステップS74において、PCR書換部306は、PCR値Dを算出する。図29を参照して説明するが、ステップS71でカウント値Mがリセットされてから、340000クロック分のカウントが完了するまでに、同期情報が書き込まれたPCRパケット(第1番目のPCRパケット)が入力されたものとする。そこで、PCR書換部306は、到着した第1番目のPCRパケットの同期情報を取得する。次に、PCR書換部306は、第1番目のPCRパケットが入力されたときの、カウンタ303からのカウンタ値M1(図29(B))を保持する。そして、PCR書換部306は、カウント値M1、オフセット値D、同期情報、および基準クロック値Bを、式(5)に代入して、PCR値Dを算出する。
PCR値D=(カウント値N1+オフセット値D+同期情報×(カウント値N1−基準クロックB)/3240000・・・(5)
【0120】
次に、ステップS75において、PCR書換部306は、第1番目のPCRパケットのPCR値E1を、算出したPCR値Dに書き換え、図示せぬデコーダに出力する。その後処理は終了する。
【0121】
ステップS73において、3240000クロック分のカウントが完了していたと判定された場合、すなわち、図30に示すように、3240000クロック分のカウントが完了してから、第1番目のPCRパケット(同期情報が書き込まれているPCRパケット)が入力されたとき、ステップS76に進み、基準クロック値Bが変更される。具体的には、PCR書換部306は、第1番目のPCRパケットから同期情報を読み出し、それに3240000を加算し、その加算結果を新たな基準クロック値Bとしてメモリ307に上書きする。これにより、基準クロック値Bが変更される。
【0122】
次に、ステップS77において、PCR書換部306は、オフセット値Dを変更する。具体的には、PCR書換部306は、メモリ307からオフセット値Dを読み出し、それに第1番目のPCRパケットの同期情報を加算し、その加算結果を、新たなオフセット値Dとして、メモリ307に上書きする。これにより、オフセット値Dが変更される。
【0123】
その後、ステップS74に戻り、PCR書換部306は、変更された基準クロック値Bおよびオフセット値Dに基づいて、PCR値Dを算出する。
【0124】
以上において説明した、受信装置203におけるPCR書き換え処理は、プログラムごと(例えば、チャンネル)に行われる。すなわち、複数のプログラムに対して同様の処理が行われる。
【0125】
以上のように、送信装置201において同期情報が書き込まれ、ネットワーク202を介して受信装置203に伝送された後、受信装置203において、同期情報に基づいてPCRが書き換えられるようにしたので、複数のプログラム(例えば、8192通りのPID)に対応して、遅延ゆらぎが抑制される。
【0126】
次に、受信装置203の他の構成例を、図31に示す。なお、図中、図24における場合と対応する部分については、同一の符号を付してある。すなわち、ATM/MPEG変換部301とTSパケット同期部304の間に、図5に示したアダプティブクロック部51が設けられている。これにより、アダプティブクロック部51によりある程度ゆらぎが吸収されたMPEGトランスポートストリームパケットにより、PCR値Dが算出される。その結果、受信装置203からMPEGトランスポートストリームパケット(PCRパケットを含む)の供給を受ける、図32に示すようなデコーダ400において、図33に示すように、VBVバッファ401の破綻を防止することができる。
【0127】
デコーダ400において、入力されるMPEGトランスポートストリームパケットに遅延ゆらぎが発生していない場合は、VBVバッファ401のデータ占有量の軌跡は、図33中、点線Aで示されるようになり、オーバフロまたはアンダーフロしない。しかしながら、MPEGトランスポートストリームパケットが遅れて到着するような場合、データ占有量の軌跡は、実線Bで示されるように、アンダーフロになる可能性がある。また、早く到着するような場合、その軌跡は、実線Cに示されるように、オーバーフロになる可能性がある。
【0128】
図34は、上述のような送信装置201または受信装置203として機能するコンピュータ501の一実施の形態の構成を示すブロック図である。CPU(Central Processing Unit)511にはバス515を介して入出力インタフェース516が接続されており、CPU511は、入出力インタフェース516を介して、ユーザから、キーボード、マウスなどよりなる入力部518から指令が入力されると、例えば、ROM(Read Only Memory)512、ハードディスク514、またはドライブ520に装着される磁気ディスク531、光ディスク532、光磁気ディスク533、若しくは半導体メモリ534などの記録媒体に格納されているプログラムを、RAM(Random Access Memory)513にロードして実行する。これにより、上述した各種の処理(例えば、図13,図14,図17,図26,図27のフローチャートにより示される処理)が行われる。さらに、CPU511は、その処理結果を、例えば、入出力インタフェース516を介して、LCD(Liquid Crystal Display)などよりなる表示部517に必要に応じて出力する。なお、プログラムは、ハードディスク514やROM512に予め記憶しておき、コンピュータ501と一体的にユーザに提供したり、磁気ディスク531、光ディスク532、光磁気ディスク533,半導体メモリ534等のパッケージメディアとして提供したり、衛星、ネットワーク等から通信部519を介してハードディスク514に提供することができる。
【0129】
なお、本明細書において、記録媒体により提供されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0130】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0131】
【発明の効果】
請求項1に記載の通信装置、請求項4に記載の通信方法、および請求項5に記載の記録媒体によれば、基準クロック値から固定クロック分離れたときの前記データのタイムスタンプの誤差を算出し、伝送するようにしたので、複数のプログラムのデータに発生する遅延ゆらぎを取り除くことができる。
【0132】
請求項6に記載の通信装置、請求項8に記載の通信方法、および請求項9に記載の記録媒体によれば、固定クロックに対応した誤差情報に基づいて、タイムスタンプを書き換えるようにしたので、複数のプログラムに発生する遅延ゆらぎを取り除くことができる。
【図面の簡単な説明】
【図1】従来のデータ伝送システムの構成例を示すブロック図である。
【図2】 PCRを説明する図である。
【図3】図1のシステムデコーダ4の構成例を示すブロック図である。
【図4】図3のPLL回路13の構成例を示すブロック図である。
【図5】アダプティブクロック部の構成例を示すブロック図である。
【図6】送信装置61の構成例を示すブロック図である。
【図7】受信装置62の構成例を示すブロック図である。
【図8】位相比較器91の構成例を示すブロック図である。
【図9】 本発明を適用したデータ伝送システムの構成例を示す図である。
【図10】 MPEGトランスポートストリームパケットのデータ構造を説明する図である。
【図11】図9の送信装置201の構成例を示す図である。
【図12】位相比較器250の構成例を示す図である。
【図13】同期確立処理を説明するフローチャートである。
【図14】同期確立処理を説明する他のフローチャートである。
【図15】 47hカウント部を示す図である。
【図16】同期確立処理を説明する図である。
【図17】同期情報作成処理を説明するフローチャートである。
【図18】同期情報作成処理を説明するタイミングチャートである。
【図19】同期情報作成処理を説明するタイミングチャートである。
【図20】同期情報作成処理を説明する他のタイミングチャートである。
【図21】同期情報のデータ量を説明する図である。
【図22】同期情報のデータ量を説明する他の図である。
【図23】 同期情報の値の意味を説明する図である。
【図24】受信装置203の構成例を示す図である。
【図25】同期確立処理を説明する図である。
【図26】 PCR書換処理を説明するフローチャートである。
【図27】 オフセット値の算出処理を説明するフローチャートである。
【図28】オフセット値の算出処理を説明する図である。
【図29】 PCR書き換え処理を説明するタイミングチャートである。
【図30】 PCR書き換え処理を説明する他のタイミングチャートである。
【図31】受信装置203の他の構成例を示すブロック図である。
【図32】デコーダ400の構成例を示すブロック図である。
【図33】 VBVバッファのデータ量の軌跡を示す図である。
【図34】コンピュータ501の構成例を示すブロック図である。
【符号の説明】
201 送信装置, 202 ネットワーク, 203 受信装置, 211 TSパケット同期部, 212 PCRパケット検出部, 213 同期情報処理部, 214 カウンタ, 215 メモリ, 216 MPEG/ATM変換部, 217 PLL回路, 301 ATM/MPEG変換部, 302 PLL回路, 303 カウンタ, 304 TSパケット同期部, 305 PCRパケット検出部, 306 PCR書換部, 307 メモリ
Claims (9)
- 所定のネットワーククロックに従ってデータを伝送するネットワークを介して受信装置に接続される通信装置において、
入力されてきたデータに付加されているタイムスタンプを読み取る読み取り手段と、
前記データが入力されてきたタイミングで、前記ネットワーククロックのカウント値を保持する保持手段と、
前記読み取り手段により読み取られた前記タイムスタンプと、前記保持手段により保持された、前記タイムスタンプが付加されたデータが入力されてきたタイミングでの前記ネットワーククロックのカウント値に基づいて、基準クロック値を決定する決定手段と、
前記基準クロック値と、前記読み取り手段により読み取られたタイムスタンプとの距離、並びに前記基準クロック値と、前記保持手段により保持された、前記タイムスタンプが付加されたデータが入力されてきたタイミングでの前記ネットワーククロックのカウント値との距離に基づいて、前記基準クロック値から固定クロック分離れたときの前記データのタイムスタンプの誤差を算出する算出手段と、
前記算出手段により算出された前記誤差を、前記データに書き込む書き込み手段と、
前記書き込み手段により前記誤差が書き込まれたタイムスタンプが付加されているデータを、前記受信装置に送信する送信手段と
を備えることを特徴とする通信装置。 - 前記データは、MPEG-2方式に準拠したトランスポートストリームパケットデータであり、
前記固定クロックは、3240000クロックである
ことを特徴とする請求項1に記載の通信装置。 - 前記決定手段により決定された前記基準クロック値、所定の参照点と、前記基準クロック値との距離を記憶する記憶手段
をさらに備えることを特徴とする請求項1に記載の通信装置。 - 所定のネットワーククロックに従ってデータを伝送するネットワークを介して受信装置に接続される通信装置の通信方法において、
入力されてきたデータに付加されているタイムスタンプを読み取る読み取りステップと、
前記データが入力されてきたタイミングで、前記ネットワーククロックのカウント値を保持する保持ステップと、
前記読み取りステップで読み取られた前記タイムスタンプと、前記保持ステップで保持された、前記タイムスタンプが付加されたデータが入力されてきたタイミングでの前記ネットワーククロックのカウント値に基づいて、基準クロック値を決定する決定ステップと、
前記基準クロック値と、前記読み取りステップで読み取られたタイムスタンプとの距離、前記基準クロック値と、前記保持ステップで保持された、前記タイムスタンプが付加されたデータが入力されてきたタイミングでの前記ネットワーククロックのカウント値との距離に基づいて、前記基準クロック値から固定クロック分離れたときの前記データのタイムスタンプの誤差を算出する算出ステップと、
前記算出ステップで算出された前記誤差を、前記データに書き込む書き込みステップと、
前記書き込みステップで前記誤差が書き込まれたタイムスタンプが付加されているデータを、前記受信装置に送信する送信ステップと
を含むことを特徴とする通信方法。 - 所定のネットワーククロックに従ってデータを伝送するネットワークを介して受信装置に接続される通信装置に、
入力されてきたデータに付加されているタイムスタンプを読み取る読み取りステップと、
前記データが入力されてきたタイミングで、前記ネットワーククロックのカウント値を保持する保持ステップと、
前記読み取りステップで読み取られた前記タイムスタンプと、前記保持ステップで保持された、前記タイムスタンプが付加されたデータが入力されてきたタイミングでの前記ネットワーククロックのカウント値に基づいて、基準クロック値を決定する決定ステップと、
前記基準クロック値と、前記読み取りステップで読み取られたタイムスタンプとの距離、並びに前記基準クロック値と、前記保持ステップで保持された、前記タイムスタンプが付加されたデータが入力されてきたタイミングでの前記ネットワーククロックのカウント値との距離に基づいて、前記基準クロック値から固定クロック分離れたときの前記データのタイムスタンプの誤差を算出する算出ステップと、
前記算出ステップで算出された前記誤差を、前記データに書き込む書き込みステップと、
前記書き込みステップで前記誤差が書き込まれたタイムスタンプが付加されているデータを、前記受信装置に送信する送信ステップと
を含むことを特徴とする処理をコンピュータに実行させるプログラムが記録されている記録媒体。 - 所定のネットワーククロックに従ってデータを伝送するネットワークを介して送信装置に接続される通信装置において、
入力されてきたデータに付加されているタイムスタンプを読み取る第1の読み取り手段と、
入力されてきたデータに書き込まされている、所定の固定クロックに対応する誤差情報を読み取る第2の読み取り手段と、
前記データが入力されてきたタイミングで、前記ネットワーククロックのカウント値を保持する保持手段と、
前記第1の読み取り手段により読み取られたタイムスタンプと、前記保持手段により保持された、前記タイムスタンプが付加されたデータが入力されてきたタイミングでの前記ネットワーククロックのカウント値に基づいて、基準クロック値を決定する第1の決定手段と、
前記第1の読み取り手段により読み取られたタイムスタンプと、前記保持手段により保持された、前記タイムスタンプが付加されたデータが入力されてきたタイミングでの前記ネットワーククロックのカウント値に基づいて、オフセット値を決定する第2の決定手段と、
前記第1の読み取り手段により読み取られたタイムスタンプ、前記第2の読み取り手段により読み取られた、前記タイムスタンプが付加されているデータに書き込まされた誤差情報、前記第1の決定手段により決定された前記基準クロック値、前記第2の決定手段により決定された前記オフセット値、および前記固定クロックに基づいて、前記タイムスタンプを書き換える書換手段と
を備えることを特徴とする通信装置。 - 前記第1の決定手段により決定された前記基準クロック、および前記第2の決定手段により決定された前記オフセット値を記憶する記憶手段
をさらに備えることを特徴する請求項6に記載の通信装置。 - 所定のネットワーククロックに従ってデータを伝送するネットワークを介して送信装置に接続される通信装置の通信方法において、
入力されてきたデータに付加されているタイムスタンプを読み取る第1の読み取りステップと、
入力されてきたデータに書き込まされている、所定の固定クロックに対応する誤差情報を読み取る第2の読み取りステップと、
前記データが入力されてきたタイミングで、前記ネットワーククロックのカウント値を保持する保持ステップと、
前記第1の読み取りステップで読み取られたタイムスタンプと、前記保持ステップにより保持された、前記タイムスタンプが付加されたデータが入力されてきたタイミングでの前記ネットワーククロックのカウント値に基づいて、基準クロック値を決定する第1の決定ステップと、
前記第1の読み取りステップで読み取られたタイムスタンプと、前記保持ステップで保持された、前記タイムスタンプが付加されたデータが入力されてきたタイミングでの前記ネットワーククロックのカウント値に基づいて、オフセット値を決定する第2の決定ステップと、
前記第1の読み取りステップで読み取られたタイムスタンプ、前記第2の読み取りステップで読み取られた、前記タイムスタンプが付加されているデータに書き込まされた誤差情報、前記第1の決定ステップで決定された前記基準クロック値、前記第2の決定ステップで決定された前記オフセット値、および前記固定クロックに基づいて、前記タイムスタンプを書き換える書換ステップと
を含むことを特徴とする通信方法。 - 所定のネットワーククロックに従ってデータを伝送するネットワークを介して送信装置に接続される通信装置に、
入力されてきたデータに付加されているタイムスタンプを読み取る第1の読み取りステップと、
入力されてきたデータに書き込まされている、所定の固定クロックに対応する誤差情報を読み取る第2の読み取りステップと、
前記データが入力されてきたタイミングで、前記ネットワーククロックのカウント値を保持する保持ステップと、
前記第1の読み取りステップで読み取られたタイムスタンプと、前記保持ステップにより保持された、前記タイムスタンプが付加されたデータが入力されてきたタイミングでの前記ネットワーククロックのカウント値に基づいて、基準クロック値を決定する第1の決定ステップと、
前記第1の読み取りステップで読み取られたタイムスタンプと、前記保持ステップで保持された、前記タイムスタンプが付加されたデータが入力されてきたタイミングでの前記ネットワーククロックのカウント値に基づいて、オフセット値を決定する第2の決定ステップと
前記第1の読み取りステップで読み取られたタイムスタンプ、前記第2の読み取りステップで読み取られた、前記タイムスタンプが付加されているデータに書き込まされた誤差情報、前記第1の決定ステップで決定された前記基準クロック値、前記第2の決定ステップで決定された前記オフセット値、および前記固定クロックに基づいて、前記タイムスタンプを書き換える書換ステップと
を含むことを特徴とする処理をコンピュータに実行させるプログラムが記録されている記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33235199A JP4158075B2 (ja) | 1999-04-16 | 1999-11-24 | 通信装置、通信方法、および記録媒体 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11-110135 | 1999-04-16 | ||
JP11013599 | 1999-04-16 | ||
JP33235199A JP4158075B2 (ja) | 1999-04-16 | 1999-11-24 | 通信装置、通信方法、および記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000358006A JP2000358006A (ja) | 2000-12-26 |
JP4158075B2 true JP4158075B2 (ja) | 2008-10-01 |
Family
ID=26449814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33235199A Expired - Fee Related JP4158075B2 (ja) | 1999-04-16 | 1999-11-24 | 通信装置、通信方法、および記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4158075B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7421048B2 (en) * | 2005-01-20 | 2008-09-02 | Vixs Systems, Inc. | System and method for multimedia delivery in a wireless environment |
EP1953948B1 (en) | 2005-11-24 | 2013-10-02 | Fujitsu Semiconductor Limited | Clock synchronization in a receiving device in the case of late packets |
-
1999
- 1999-11-24 JP JP33235199A patent/JP4158075B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000358006A (ja) | 2000-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1089482A1 (en) | Communication device, communication method, and recorded medium | |
US6493832B1 (en) | Communication apparatus which handles a time stamp | |
EP2506570B1 (en) | Method and system for playing video information, and video information content | |
JP4193297B2 (ja) | 通信装置および方法、通信システム、並びに記録媒体 | |
US7756233B2 (en) | Data receiving device and data receiving method | |
US6377588B1 (en) | Method and apparatus for reducing jitter of a program clock reference in a transport stream of MPEG over ATM, and MPEG decoder | |
JP3045715B2 (ja) | 伝送システム、送信装置、記録再生装置、および記録装置 | |
JP4081936B2 (ja) | 通信装置、通信方法、および記録媒体 | |
JP5041844B2 (ja) | Pcr補正回路 | |
JPH11239179A (ja) | マルチメディアデータ中継装置及び方法 | |
JP4224749B2 (ja) | 通信装置、通信方法、および記録媒体 | |
US8483289B2 (en) | Method and system for fast channel change | |
EP1528724A1 (en) | Information processing device and method, recording medium, and program | |
JP4092705B2 (ja) | ストリーム送信装置および受信装置、ならびに送受信方法 | |
JP4158075B2 (ja) | 通信装置、通信方法、および記録媒体 | |
US20070223536A1 (en) | Stream reproducing method and device | |
US6735223B1 (en) | Method of controlling offset of time stamp and apparatus for transmitting packet using the same | |
JP4475273B2 (ja) | 情報処理装置及び方法 | |
JP6259227B2 (ja) | クロック再生制御装置と映像信号受信装置 | |
JP3736396B2 (ja) | ストリーム送信装置および受信装置 | |
JP2002152273A (ja) | 遅延ゆらぎ吸収方法およびパケット配置調整装置 | |
JP2007295491A (ja) | ストリーミングデータ受信装置及びジッタ除去回路 | |
JP4874272B2 (ja) | 映像信号処理装置および映像信号処理方法 | |
JP2002374220A (ja) | ストリーム送受信システム、ストリーム送信装置および受信装置 | |
JP2001016210A (ja) | 通信装置および方法、並びに媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060202 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080327 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080619 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080702 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110725 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |