(57)【特許請求の範囲】
【請求項１】
ビットストリームの一連のパケットの受信に同期をとるに当たり、そのパケットの各々は、予め規定された長さを有するとともに、予め規定された同期パターンによって表現され、
前記同期パターンが現れる範囲内で前記パケット内のビットのグループ化を表現するステップと、
予め決定された独自のグループインデックスによってパケット内の前記グループ化の各々を識別するステップとを具える同期方法において、
前記パケット内のインデックス化されたビットのグループ化で発生する前記同期パターンの数を計数するとともにテーブル化し、前記発生の数に基づいて前記グループインデックスの一つを同期インデックスとして識別するステップと、
前記グループインデックスが前記同期インデックスに等しいときには常に各パケットの開始を識別するステップとを具えることを特徴とする同期方法。
【請求項２】
前記同期パターンがビットのグループ化内で発生しないときに前記発生数を零にセットするステップを具えることを特徴とする請求項１記載の同期方法。
【請求項３】
前記同期バイトインデックスの識別が、前記ヒストグラムの内容上の統計的な試験を具えることを特徴とする請求項１記載の同期方法。
【請求項４】
前記同期バイトインデックスの識別が、前記テーブル化された発生の数の同期パターンの特定の発生数に対応するグループインデックスの識別を具えることを特徴とする請求項１記載の同期方法。
【請求項５】
前記同期バイトインデックスの識別が、前記テーブル化された発生の数の他の任意のグループの同期パターンの発生数より十分大きい同期パターンの発生数に対応するグループインデックスの識別を具えることを特徴とする請求項１記載の識別方法。
【請求項６】
ビットストリームの一連のパケットの受信に同期をとる同期装置であって、そのパケットの各々は、予め規定された長さを有するとともに、予め規定された同期パターンによって表現され、
前記同期パターンが現れる範囲内で前記パケット内のビットのグループ化を表現する手段と、
予め決定されたグループインデックスによってパケット内の前記グループ化の各々を識別する手段とを具える同期装置において、
前記パケット内のインデックス化されたビットのグループ化で発生する前記同期パターンの数を計数するとともにテーブル化する手段と、
前記グループインデックスの一つを同期インデックスとして識別するとともに、前記グループインデックスが前記同期インデックスに等しいグループ化の発生ごとに各パケットの開始を識別する手段とを具えることを特徴とする同期装置。
【請求項７】
前記発生の数に依存する次のパケットの開始の誤った識別を識別する手段を更に具えることを特徴とする請求項６記載の同期装置。
【請求項８】
各々が予め規定された長さを有するとともに予め規定された同期パターンによって表現されたパケットを有するＭＰＥＧ２トランスポートストリームを復号化するデコーダであって、このデコーダが、請求項６記載の装置を具えることを特徴とするデコーダ。
【発明の詳細な説明】
技術分野
本発明は、コンピュータ通信の分野、特に、ビットストリーム内のパケットの開始を検出する分野に関するものである。
発明の背景
ビットストリームのパケットは、特定のデータ値、例えば、特に８ビット幅（バイト又はオクテット）データパターンの出現によってしばしば表現され、これを「同期パターン」と称することができる。排他的なフレーム化信号がビットストリームに沿って受信されない場合、ビットストリームを受信する装置は、パケットの開始を識別するために同期パターンを用いることができる。しかしながら、このように行うことは、同期パターンとして用いられる特定のデータ値がパケットの残りを構成するビット内の他の場所に現れるおそれがある場合には複雑になる。このような出現は、ａ）パケットの開始を識別する際に同期パターンの値が全くに保持されないとき、ｂ）ビットストリームが、任意の予め規定されたビットグループ、例えば、バイト整列を有しないとき、又はｃ）エラーがビットストリームに発生するときに生じるおそれがある。同期プロセスは、例えば、同期パターンが送られる際に雑音が信号をだいなしにするときにパターンが受信されないおそれがあることによって更に複雑になる。
“Motion Pictures Expert Group-2”(MPEG-2)国際規格のISO/IEC 13818-1は、このような同期形態の実現である。各MPEG-2移送ビットストリームパケットは、１８８バイト長を有し、そのうちの最初のものは、同期パターンを有する同期バイトである。同期パターンに用いられるデータ値は０×４７である。したがって、０×４７の値を有する同期バイトは１８８バイトごとにビットストリームに現れる必要がある。同期パターン値０×４７は、同期バイトに対して専ら保持されず、ビットストリーム内の他のバイトはこの値も有することができる。
従来技術によれば、MPEG-2のビットストリームの８ビットパターンごとに試験して、同期バイトであるか否かを決定している。試験された８ビットのグループが同期パターンに一致すると、次の１８７の８ビットグループが、それらが通過する際に計数されるが試験されない。この場合、１８９番目のバイトが試験されて、同期パターンを有するか否か決定される。同期パターンを有する場合、以前の１８８バイト、すなわち、最初に見つける同期パターン及び計数された１８７の８ビットグループがパケットを有するように思われると決定される。その後、プロセスが、１パケット長離間した同期パターンの検出が偶然の結果、すなわち、バイトが正確なパケット長の間隔でビットストリームに任意に現れた同期パターンを有するおそれを参照にするために複数（Ｎ）回繰り返されるが、それは同期バイトを表現する実際のパケットではない。これまで１８９番目の８ビットパターンが同期パターンに一致しない場合、プロセスが再開される。
同期バイトの位置以外の位置での同期パターンのビットストリームにおける出現を、「同期バイトエミュレーション」と称する。典型的なシステムでは、各パケット間隔での同期パターンの連続的な発生数Ｎは、同期バイトエミュレーションの可能性に依存して１０から１００の範囲にあり、ある程度正確な決定に要求される確信がある。同期バイトエミュレーションの可能性は、同期パターンとして選択された値の関数となる。通信システムに対する形式を定型化するに当たり、データの内容が予測しうる発生分布の頻度を有する場合、データパターンが最も生じえないような可能性を、同期パターンとして選択する。データの内容が任意であるとともに一様に分布された最悪の場合には、任意のパターンを選択するとこができ、データバイトに現れる同期パターンの可能性は、あり得る総数のデータパターンのうち一つである。このような場合において、同期バイトエミュレーションのＮの連続的な発生の可能性、すなわち、同期がとられたことの誤った明言は、Ｎ乗までのあり得るデータパターンの総数のうちの一つとなる。Ｎを比較的小さい値にすると、結果的に非常に高い確信とすることができる。しかしながら、Ｎが小さい場合でも、従来の技術は、有限な時間周期中に同期をとることを保証できない。同期バイトエミュレーションがある用途において、従来技術は、パケットを受信したことを決定するのが遅くなるおそれがある。また、正しい同期バイトが同期パターン以外の値を有するようにする雑音又は他の要因に直面すると、プロセスは、同期の再確立を更に遅延して再開される。パケットの開始を決定する同期のこの周期中、パケット内のデータが損失される。このような時間及びデータの損失を、通信の最初の確立中及び雑音又は他のエラーの原因によって生じた同期の各損失の後、システムが同期プロセスを経験する度に被る。
発明の要約
本発明の原理によれば、パケットは、ａ）パケット長内のあり得る位置の各々で同期パターンの発生を表すヒストグラムを展開することによって及びｂ）ヒストグラムで表されたような同期パターンの最大発生数でその位置でパケットの開始を見つけたことを決定することによって表される。
本発明の一例において、パケットに対するあり得る開始位置の各々に対して一つのエントリを有する「一致」テーブルを用いる。あり得る開始位置の各々は、同期パターンと比較することができるデータの有するに相当する。すなわち、一致テーブルのサイズは、パケットごとの「比較ユニット」の数に等しくなる。一致テーブルのエントリは最初に零にセットされる。テーブルは、一致テーブルのサイズに等しい法を有するモジュロカウンタによってアドレス指定される。モジュロカウンタは、新たな比較ユニットを受信する度に増分される。
同期パターンに一致する比較ユニットを受信する度に、モジュロカウンタによってアドレス指定したような一致テーブルの対応するエントリが増分される。比較ユニットが同期パターンに一致しない場合、複数のストラテジのうちの任意のものを引き受けることができる。例えば、モジュロカウンタによってアドレス指定された一致テーブルのエントリを、零にセットすることができ、そのままにすることができ、又は減分することができる。
一致テーブルのエントリの一つの値が、パケットの開始の正しい位置であることを決定するのに十分大きい場合、パケット表現プロセスを完了する。本例にといて、エントリがＮに等しい場合この決定に到達し、正しい同期バイト位置で同期パターンがＮ回発生する前に正しい同期バイト位置以外の位置で同期パターンがＮ回発生する可能性を最小にするために、しきい値を選択する。
好適には、本発明を用いることによって、同期時間をＮパケット間隔未満にすることができる。説明したように、Ｎパケット間隔未満で同期をとることができる本発明によって他のアルゴリズムを用いることができる。また、パケットの各発生と同時に生じる全てのあり得る開始位置についてのプロセス蓄積情報があるので、同期の損失が疑わしい場合は常にそれを用い、これによって、一度再同期が要求される決定が行われると時間を省略する。
詳細な説明
本発明によるパケットフレーム化方法を、比較ユニットがバイトであるシステムで実施することができる。このようなシステムのパケットフレーム化方法の使用を、理解を容易にするために例示して説明する。
図１は、同期バイトフレーム化したビットストリームの例を示す。ビットストリームをバイト１００によって表す。固定された数のバイトはパケット１０１を形成する。本例では、パケット１０１は６バイトを有し、そのうちの最初の１０２を同期バイトとする。各パケットのバイトを、パケット中で０から開始して時間的に現れる順序で参照し及び索引を付ける。バイト０を第１バイトとし、バイト１を第２バイトとする、等々。図１Ａは、ビットストリームの各バイトに対するバイトインデックス１０３を示す。図１Ａに示すように、本例のビットストリームの各バイト０を同期バイトとする。ビットストリームの他の全てのバイトをデータバイト１０４とする。
同期バイトは、同期パターンと称する特定のパターンのバイトを有する。データバイトが同期パターンと同一のビットパターンを有する場合、データバイトは同期バイトをエミュレートする。このようなエミュレートは、同期パターンが同期バイトとして排他的な使用のために確保されていない場合、又はエラーがデータバイト中に発生する場合に生じるおそれがある。図１Ｂは、ビットストリーム中の同期バイトエミュレーション１０５の発生を示す。同期パターン以外のパターンを有するべき同期パターンを発生させるエラーが生じるおそれがある。図１Ｂは、ビットストリーム中のエラーのある同期バイト１０６の発生も示す。
各パケットの開始を決定する他の手段が存在しない場合において、受信装置は、同期バイトを配置することによって開始を決定する必要がある。同期バイトエミュレーション及びエラーのある同期バイトに直面した場合、ビットストリーム中の全てのバイトの中から同期バイトの信頼性のある配置を時間消費プロセスとすることができる。図２は、同期バイトエミュレーションの中から同期バイトを識別する従来の方法を示す。システムの初期状態を「アンロック」状態と称し、これを図２ＡでＳＯ  ２０１として示す。同期パターンを有するバイトを受信すると、システムは同期状態Ｓ１  ２０２に入る。このバイトが正しい同期バイトである場合、次の同期バイトは１パケット長先に配置される。本例においては６バイト先に配置される。システムは、以前に見つけた同期パターンから１パケット長離れたバイト位置で同期パターンを見つけるか否かを決定するように実行する。同期パターンがそのバイト位置に見つからない場合、システムはＳ０状態２０１に戻る。同期パターンを見つけた場合、システムがＳ１の状態にすることなく同期パターンを見つける回数のカウントを増分することができる。このカウントがある特定の数Ｎ未満である場合、システムはＳ１状態のままである。このカウントがＮに等しい場合、システムはロック状態Ｓ２  ２０３に進行する。
図２Ｂは、ビットストリームが同期バイト１０２、同期バイトエミュレーション１０５及びエラーのある同期バイト１０６を有する場合のシステムの動作を示す。結果的に得られる状態Ｓ０  ２０１，Ｓ１  ２０２，Ｓ２  ２０３を、同期バイトを見つけるためにビットストリームを処理するようにシステムが進行するものとして線図的に示す。
図３は、従来の方法に対するブロック図をより一般的な場合について示す。入力ストリーム３０１は、データレジスタ３０８によって受信される。データレジスタ３０８は、入力クロック３０２で示したようにデータユニット３０５に入力を形成する。データユニット３０５又はデータユニット３０５のサブセットは、比較ユニット３０５ａを形成する。各比較ユニット３０５ａは、コンパレータ３０７によって同期パターン３０３と比較される。同期パターン検出信号３０４を、コンパレータ３０７によって発生させて、一致信号を送信する。
初期化に際し、プロセッサ３１０は比較ユニットモジュロＫカウンタ３０９及び一致３１１をリセットし、ロック信号３１２及びパケット信号３２２の開始を表明しない。比較ユニットモジュロＫカウンタをモジュロカウンタとし、その法Ｋをパケットごとの比較ユニットの数に等しくする。プロセッサ３１０は、同期パターン検出信号３０４を受信するまでカウンタリセット信号３１３を表明し続け、その際、比較ユニットモジュロＫカウンタ３０９は、比較クロック３０６によって表したように次に受信した比較ユニットの数をカウントする。
各比較ユニット３０５ａは、コンパレータ３０７によって同期パターン３０３と比較され、このコンパレータ３０７は、比較ユニットが同期パターンと一致したときは常に同期パターン検出信号３０４を表明するが、プロセッサ３１０は、次のパケット信号３１６を比較ユニットモジュロＫカウンタ３０９から受信するまでこの信号に作用しない。比較ユニットモジュロＫカウンタ３０９は、比較クロック３０６のＫの発生を受信すると次のパケット信号３１６を表明する。
次のパケット信号３１６を受信する際に同期パターン検出信号３０４を表明しない場合、プロセッサ３１０は比較ユニットモジュロＫカウンタ３０９及び一致カウンタ３１１をリセットする。プロセッサ３１０は、コンパレータ３０７が次に同期パターン検出信号３０４を表明するまでカウンタリセット３１３を表明し続ける。表明された同期パターン検出信号３０４を受信すると、プロセッサ３１０は、カウンタリセット３１３を放棄し、比較ユニットモジュロＫカウンタ３０９が次のパケット信号を表明しなくなるまで待機し、その後既に説明したようにして実行する。
次のパケット信号３１６の受信の際に同期パターン検出信号３０４を表明した場合、プロセッサ３１０は、一致カウンタ３１１に含まれる一致カウンタ３１５を増分する。一致カウンタ３１５が特定の要求された計数Ｎ  ３０８に等しくない場合、プロセッサ３１０は、比較ユニットモジュロＫカウンタ３０９が次のパケット信号３１６を再表明するまで待機し、その後、既に説明したようにして実行する。
一致カウント３１５が特定の要求された計数Ｎ  ３０８に等しい場合、プロセッサ３１０は、ロック信号３１２及びパケット信号３２２の開始を表明する。表明されたロック信号３１２を受信すると、（図示しない）次のプロセスは、同期が行われたという情報が提供される。パケット信号３２２は、次のパケットの各々の開始で表明されることによってパケットへの出力ストリームを表す。パターン一致のこのシーケンスの最初が生じる際に比較ユニットカウンタが計数を開始するので、このモジュロカウンタからの次のパケット信号の各々は、次のパケットの各々の開始と一致する。したがって、パケット信号３２の開始は、次のパケット信号３１６の発生の各々で表明される。
ロック状態を達成したプロセッサは、同期が消失した同期消失信号３２３を受信するまで各パケットの予め設定された開始時にパケット信号３２２の開始を表明し続け、既に説明した全プロセスを繰り返す必要がある。この同期消失信号を、典型的には、この及び他のプロセスから受信した情報に依存して通信コントローラから発生させる。例えば、通信コントローラは、ロック信号３１２を表明しないプロセッサ３１０に依存してこの信号を表明することができる。次のパケット信号３１６で表されたパケットの開始の発生の度に、比較ユニットは同期パターンを有する必要があり、同期パターン検出信号３０４を表明する必要がある。
それが表明されない場合、これを同期の損失又は比較ユニットの内容のエラーの表示とする。ロック信号３１２は、パケットの開始時の同期パターンのＭ３１８が連続的に存在しなくなるとき表明されない。Ｍを、受信した比較ユニットのランダムエラーによってこのような不存在が発生する可能性を最小にするように十分高く選択する。代表的には、Ｍ３１８を３〜１０の目安でＮ３０８より十分小さくする。ロック信号が表明されない場合、プロセッサ３１０は典型的には上記同期プロセスを再開する。また、図示しない上記通信コントローラは、同期損失信号３２３を表明して、同期プロセスを繰り返すようにする。
ロック信号３１２が表明されないときには常に、（説明しない）次のプロセスが、出力ストリーム３１１を処理することを禁止する。全同期プロセスは、エラーのある同期バイトが同期プロセス中に受信されたとき及び非同期パターンを受信することによって作用した以前の同期パターンが同期バイトエミュレーションであったことを決定するときには常に再開される。同期バイトエミュレーション又は誤りのある同期バイトに直面する同期プロセスに対して要求される時間の量は、この従来の方法を用いて決定することができない。同期バイトエミュレーション及び誤りのある同期バイトの可能性に関する理想的な仮定を用いても、同期プロセスを実行するのに要求される時間を明確に規定することができない。
従来の方法において同期を行うように要求される時間の他の要件は、同期ロックを明言するのに要求される同期パターンの順次の発生の数Ｎの選択である。決定された同期バイト位置が正しい同期バイト位置であるという十分な確信を、データバイトがＮ回の連続する同期パターンの発生を有しないという可能性（すなわちＮ回の連続的な同期バイトエミュレーション）に基づいて提供するように、Ｎを選択する。大きいＮを選択するとこの確信は高くなるが、同期プロセス中の時間及びデータ損失も増大する。理想的には、同期中同期パターンが非常に稀にしか現れない場合、ある位置で（この稀なイベントが）数回の連続して発生すると直ぐにロックを宣言するのが理想的である。それに対して、同期パターンが同期中入力ストリームに非常に頻繁に現れる場合、十分に連続した数がある位置に発生するまでロックの宣言を延期するのが理想的である。同期パターンの実際の発生がシステム設計時には未知であるので、Ｎを、後者の場合を考慮して選択し、したがって、同期パターンの実際の発生が既知である場合に必要な数よりしばしば十分高くセットする。したがって、同期バイトエミュレーション及び誤りのある同期バイトに直面する正しい同期バイトを見つける可能性を最大にするために、従来の方法は、同期プロセス中に同期バイトエミュレーション及び誤りのある同期バイトの実際の発生に依存せずにシステムに最悪の要求を課す。
本発明の好適な実施の形態を図４に示す。図示したように、好適な実施の形態は従来の方法と同様な構成要素を有する。入力ストリーム３０１を、データレジスタ３０８の入力クロックによってデータユニット３０５に表す。データユニット３０５又はそのサブセットは、比較ユニット３０５ａを形成する。コンパレータ３０７は、各比較ユニット３０５ａを同期パターン３０３と比較し、比較ユニットが同期パターンを有する場合は常に同期パターン検出信号３０４を表明する。比較クロック３０６を、受信した比較クロック信号の計数であるパケットごとの比較ユニットのモジュロ数を比較ユニットモジュロＫカウンタ３０９に入力する。モジュロカウンタのように、計数は、０からパケットごとの比較ユニットの数から１引いたものまでの範囲にある。比較ユニットモジュロＫカウンタ３０９に含まれる計数は、アドレス４０３として出力される。
一致テーブル４１１はＫエントリからなり、その各々はアドレス４０３によってアクセスされる。すなわち、一致カウンタ３１５は、比較ユニットモジュロＫカウンタ３０９によって決定されたアドレス４０３で一致テーブル４１１の内容に一致する。プロセッサ４１０は、一致テーブル４１１から一致カウント３１５を読み出すことができ、一致計数３１５を変更してそれを一致テーブル４１１に戻すこともできる。このような全ての読出し及び書込み動作は、比較ユニットモジュロＫカウンタ３０９によって決定されたアドレス４０３の一致テーブル４１１の内容にのみ影響を及ぼす。
初期化の際に、プロセッサ４１０が一致リセット３１４を表明して、一致テーブル４１１の全てのエンティティの内容を零にリセットする。ロック信号３１２及びパケット信号３２２の開始は表明されない。
比較クロック３０６の発生の度に、プロセッサ４１０は、同期パターン検出信号３０４がコンパレータ３０７によって表明された場合一致計数３１５を増分する。同期パターン検出信号３０４が表明されない場合、一致計数３１５は零にリセットされる。新たな一致計数３１５は一致テーブル４１１に書き込まれる。一致テーブル４１１の影響を受けたエントリは、比較ユニットモジュロＫカウンタ３０９によって決定されたアドレス４０３によってアドレスされたものである。
比較ユニットモジュロＫカウンタ３０９はパケットごとの比較ユニット数に等しい法を有するので、パケット長内の各比較有するは、独自のアドレス４０３に対応する独自の一致計数を有する。したがって、一致テーブル４１１の各エントリは、一致テーブル４１１がリセットされたときから受信した信号の１パケット長内の各比較ユニット位置で検出した連続的な同期パターンの数の現在の合計を有する。
既に説明したように、一致計数３１５は、同期パターン検出信号３０４が表明されない場合零にリセットされる。また、一致計数３１５は左を変更しなくてもよく、その結果、一致テーブル４１１が、非同期パターンの介在に依存することなく検出された同期パターン数を有するようになる。この代案は、エラーのある同期バイトの影響を最小にすることによって従来の方法に比べて優れた利点を有する。従来の方法において、エラーのある同期バイトが検出される度に同期プロセスが全体で繰り返される。この代わりの方法を実施することによって、エラーのある同期バイトが稀にしか発生せず、その結果、一つの追加のパケットが同期をとるために要求される。
プロセッサ４１０は、比較クロック３０６で表したように、ロック信号３１２を表明することができるようになるまで、受信した各比較有する３０５ａに対する上記プロセスを適用し続ける。プロセッサ４１０は、一致テーブル４１１の内容に依存してロック信号３１２を表明する。後に説明するように、複数の別のアルゴリズムを用いることができる。本発明の最も簡単な実施の形態において、既に説明した従来の方法に対応して、一致計数３１５がＮ  ３０８に等しくなると常にロック信号３１２が表明される。同時に、アドレスロード信号４１９が、現在のアドレス４０３を格納するために表明され、すなわち、アドレスレジスタ４２０は同期アドレス４２３を有し、このアドレスは、Ｎ回の連続的な一致を達成する比較有する位置に対応する。その後、比較ユニットモジュロＫカウンタ３０９からのアドレス４０３が同期アドレス４２３に等しいときは常に、パケット信号の開始が表明され、これによってパケットへの出力ストリーム３１１が表される。
図５は、図１で既に説明したような同期バイトフレーム化されたビットストリームを処理する装置の動作を示す。ビットストリームは、同期バイト１０２、同期バイトエミュレーション１０５及びエラーのある同期バイト１０６をユニット一連のバイト１００からなる。パケット内のバイトはパケットバイトインデックス１０３によって指標が付けられ、このパケットバイトインデックス１０３を、以前の同期バイトに関連する個々のバイトの位置とする。各同期バイト１０２は０のバイトインデックスを有する。モジュロＫカウンタ３０９の出力に対応する計数インデックス５０９の一例も示す。この計数インデックス５０９も、図４のアドレス４０３に相当する一致テーブル４１１に対するインデックスとして用いられる。一致テーブル４１１の内容を、比較ユニット間隔によって測定された時間に亘って線図的に示す。一致テーブル４１１の最初の内容を５００で示す。時間の１パケット間隔後の一致テーブル４１１の内容を５０１で示す。時間の２パケット間隔後の一致テーブル４１１の内容を５０２で示す。
４のバイトインデックス１０３が５１０で受信される際にプロセスがパケットの中央で開始することを示す。この４のバイトインデックスは、零の開始計数インデックス５０９に対応する。モジュロＫカウンタ３０９がパケット長と同一の計数長を有するので、４のバイトインデックスを有するバイトの次の発生の各々では、対応する零の計数インデックスを有する。同期がとられる前に、実際のバイトインデックスは未知である。同期プロセスは、どの計数インデックスがバイトインデックス０、同期バイトに対応するかの決定となる。その後、パケットの開始は、（図４のアドレス４０３に対応する）計数インデックスが（図４のアドレスレジスタ４２０の内容に対応する）この決定された同期バイトインデックスに等しいときは常に識別される。
同期パターン、すなわち、同期バイト又は同期バイトエミュレーションを有する比較ユニットが発生する度に、計数インデックス５０９に対応するエントリの内容が増分される。最初の６バイトを受信した後、一致テーブル４１１の内容を５０１で示す。計数インデックス５０９が１であるとき１同期パターンが検出され、計数インデックス５０９が２であるとき１同期パターンが検出され、計数インデックス５０９が５であるとき１同期パターンが検出される。同期パターンを有しない比較ユニットが発生する度に、計数インデックス５０９に対応するエントリの内容は、図５で５２０に示すように０にセットされる。一致テーブル４１１の内容は、一致テーブルエントリの一つが特定の値Ｎ、本例では６を達成するまで図示したように更新される。一致テーブルのエントリが図示したように５３０で６の値を達成すると、ロック状態が表明され、このエントリに対応する計数インデックス、本例では２の計数インデックスが、パケット内の同期バイト位置であると決定される。したがって、パケットの開始は、計数インデックスが２となる度に表明される。
図６は、同期パターン６２０を有しない比較ユニットの発生が一致テーブル４１１の内容に影響を及ぼさない点を除いて同一のビットストリーム及びプロセスを示す。図示したように、この代わりのアルゴリズムは、エラーのある同期バイト１０６が存在することによって一致テーブルエントリ６２２を零にリセットしないので、ロック状態をすぐに達成することができ、これによって、同期バイト６３０に対応する一致テーブルエントリが６の値をすぐに達成することができる。
データユニット、比較ユニット、比較クロック及びパケットごとの比較ユニットの数の関係は、到来する入力ストリームの形態及び形式に依存する。大抵の場合、比較ユニットはデータユニットとサイズが等しく、全データユニットは同期パターンと比較される。新たなユニットが比較されるのに利用できるときは常に比較クロックが表明される。入力ストリームを以前のプロセスによって比較ユニットに表す場合、比較クロックはこの表現を行う。すなわち、例えば、入力ストリームが８ビットバイトを表す場合、比較クロックはこのようなバイトの発生の度に表明される。この場合、パケットごとの比較ユニットの数は、パケット中のバイト数に等しくなる。しかしながら、比較ユニットのサイズがしばしば特定され及び既知であるが、各比較ユニットの開始ビットは既知でない。この場合において、比較クロック３０６が入力ストリーム３０１の各ビットの発生の際に表明され、比較ユニット３０５ａが、入力ストリーム３０１の移動窓としてデータレジスタ３０８によって形成される。窓のサイズは比較ユニットごとのビット数であり、比較クロックは、入力ストリームの１ビット位置によってこの窓の移動をマークする。したがって、パケットごとのあり得る比較ユニットの数は、比較クロックごとのビット数によって除算されたパケットのビット数、この場合、１に等しくなる。この場合、パケットごとの比較ユニットの数は、データユニット又は比較ユニットのサイズに依存することなくパケットごとのビット数に等しくなる。
コンパレータ３０７は、現在の比較ユニット３０５ａと同期パターン３０３とを比較し、これらが一致したとき同期パターン検出信号３０４を表明する。比較クロック３０６が必ずしもデータユニット３０５の開始を表さない一般的な場合、データレジスタ３０８によって形成したような入力ストリーム３０１のビットの上記窓上で比較が行われる。一般的な場合においても、データユニットのサイズは同期パターンのサイズと同一である必要はない。コンパレータ３０７を、通信プロトコルのフォーマットにおいてどのビットが特定の同期パターンに対する通信プロトコルの形式で特定されても比較を行うように設計する。すなわち、例えば、データユニットを１６ビットワードとして特定することができ、同時に、同期パターンを、パケット中の第１ワードの最後の５ビットに配置されるように特定する。このような場合において、データレジスタ３０８を、１６ビットデータユニット３０５を発生させるように設計し、コンパレータ３０７は、データユニット３０５の最後の５ビットを同期パターン３０３と比較し、データユニット３０５の他のビットを無視する。データユニット３０５のこれら最後の５ビットは比較ユニット３０５ａを形成する。同期パターン検出信号３０４は、特定のビットが一致する際にコンパレータ３０７によって表明される。
本実施の形態が既に説明した従来の方法よりも優れた利点を提供することは明らかである。既に説明したように、本実施の形態は、従来の方法以下の時間でロック状態を達成する。従来の方法における同期パターンに一致した第１比較ユニットが正しい同期バイトである場合、エラーのない同期バイトが発生し、従来の方法及び本実施の形態は、等しい時間でロック状態を達成する。他の全ての場合、例えば、最初に一致した比較ユニットが同期バイトエミュレーションである場合、従来の方法はより長い時間を必要とし、したがって、本発明の本実施の形態の場合に比べてより多くの情報を放棄する。
さらに、本発明を変更して他の利点を提供することもできる。既に説明したように、この方法をパラメータ化して、Ｎパケットを受信すると常にロック状態となるようにすることができる。特に同期周期中の同期バイトエミュレーション及び誤りのある同期バイトの実際の発生に応答して、最小同期時間で正しい同期バイトを見つける可能性を最大にするようにこの方法をパラメータ化することもできる。さらに、本発明を予測的に用いて、同期の欠如を気づいたときは常に同期プロセスを開始することができ、これによって、時間を省略し、再同期が要求される際にデータの損失を防ぐ。
複数の別のアルゴリズムをプロセッサ４１０で用いて、特定の用途に要求される基準に依存したロック信号３１２及びパケット信号３２２の開始を明言するときを決定することができる。以下のアルゴリズム表現の各々に対して、初期状態は次の通りである。パケット信号３２２の開始及びロック信号３１２が明言されず、一致テーブル４１１の全てのエントリは零を有する。また、アルゴリズムの動作全体に亘って、プロセッサ４１０による一致計数３１５に対する変更は、アドレス４０３によってアドレス指定された一致テーブル４１のエントリで行われる。
本発明に対する基準が正確なＮパケット長で信頼性のある同期を達成することができることである場合、従来の方法を用いるのが容易でない基準、プロセッサ４１０の動作を以下のように特定することができる。各比較クロック３０６が発生すると、一致計数３１５は、同期パターン検出信号が明言されると１増分し、そうでない場合には一致検出３１５はそのままである。アドレスロード信号４１９は、現在の一致計数がこれまで出くわした他の全ての一致計数より大きいときは常に明言される。このようにして、アドレスレジスタ４２０は、これまでの同期パターンに対する最大の一致数を有する一致テーブル４１１のエントリのアドレス４０３を有する。適切な数の比較クロック３０６の発生によって計測されたＮ番目のパケットを処理する間、プロセッサ４１０は、アドレス４０３が同期アドレス４２３に等しいときはパケット信号３２２の開始及びロック信号３１２の開始を明言する。すなわち、同期アドレスは、Ｎパケット長内の同期パターン一致の最大数を有する位置によって決定される。
本発明に対する基準は、同期バイトエミュレーションの実際の発生を考慮してできるだけ短いパケット長で同期をとることができる場合、プロセッサ４１０の動作を以下のように特定することができる。各比較クロック３０６の発生の際に、一致計数３１５は、同期パターン検出信号が明言された場合には１増分され、それ以外の場合には一致計数３１５はそのままである。プロセッサ４１０は、現在の整合計数３１５が一致テーブル４１１の他の全てのエントリより少なくともＮ倍であるときは常に、アドレスロード信号４１９、パケット信号３２２の開始及びロック信号３１２を明言する。このようにして、プロセッサ４１０は、他の任意の位置に比べてＮ倍より多くの位置で発生する同期パターンが観察されるまで同期がとられたことを決定しない。したがって、頻繁な同期バイトエミュレーションを有する状況では、同期が長くとられるが、その結果、上記アルゴリズム又は従来の方法に比べて正確な同期バイトが配置される決定がより信頼性を持って行われる。頻繁に同期エミュレーションを有する状況において、同期が更に頻繁にとられる。したがって、このアルゴリズムを、同期バイトエミュレーションの発生に応答して同期時間を動的に調整して、所定の信頼性で適切なパフォーマンスを実行することができる。
これらアルゴリズムの態様を結合することができる。例えば、先のアルゴリズムを、エラーのある同期バイトにほとんど関連せずに同期バイトエミュレーションに対して適合させる。このアルゴリズムを、非同期パターンに出くわすと常に整合テーブルエントリを零にリセットすることによって、誤りのある同期バイトに対してより影響されやすくなるように変更することができる。エラーのある同期バイトに出くわすと、このアルゴリズムはより多くの時間を消費するが、エラーのある同期バイトが発生しない場合、このアルゴリズムの消費時間が著しく少なくなる。その理由は、互いに相違する位置に現れる同期バイトエミュレーションの影響は、その位置の次の非同期パターンを受信する際に相殺されるからである。実際には、このように変更されたアルゴリズムは、他の任意の位置以外の位置の同期パターンのＮより多く連続的に発生する基準を有する。アルゴリズムの各々において、値Ｎを選択して、同期バイトエミュレーション及びエラーのある同期バイトに出くわすパケットの開始の表示を信頼性を持って明言するのに要求される確信を提供する。同一レベルの確信に対して、各アルゴリズムのＮは、他のアルゴリズムのものと相違する。その理由は、各アルゴリズムは、相違する確信の目安を提供するからである。例えば、直前のアルゴリズムのＮの選択を、従来の方法で選択したＮよりも小さくすることができ、それにもかかわらず結果的に得られる決定の確信のレベルは同一である。この理由は、従来の方法が、他の位置の同期パターンの発生又は不発生によって提供された情報を考察しないからである。これは、正しい同期位置である確信を増大させる本発明によって利用できる同期位置ではないという確信を伝達する情報である。
本発明によって提供されるようなパケットの全てのあり得る同期バイト位置での同期パターンの発生及び／又は不発生のヒストグラムに基づいて、同期がとられるときを決定するのに用いられるアルゴリズムは、上記例の基準に限定されない。パラメータＮを、例えば、ある位置が他の任意の位置の場合に比べてＮ倍の同期パターンを有することを見つけることを要求することによって、多数の方法で用いることができる。同様に、一致テーブルを、所定の数のパケットを超える同期パターンの発生の実行平均を有するように用いることができ、この平均を、同期をとったことを結論付けるとともに後に説明するように同期が消失したときを決定する基準として用いる。二項試行、カイ自乗分布試験、逐次確率比試験のような現象の発生又は不発生の頻度に基づく任意の数の統計的な試験を、同期がとられたと結論付ける本発明において用いることができる。図４のプロセッサ４１０は同期の損失を決定する手段も有する。同期の損失は、同期が確立されたときを決定した位置に対する同期バイト変更の位置によって特徴づけられる。すなわち、受信システムは、非同期バイトを同期バイトと誤って識別する。この誤った識別を、同期パターンが存在することを確信する決定された同期バイト位置の内容を比較することによって回避することができる。しかしながら、同期パターンを有しない１同期バイトの受信は、同期を外れたシステムを明言し及び通信を再確立するための時間及びデータの損失を被るのに必ずしも十分でない。単一の消失同期パターンは、誤りのある同期バイトによって発生するおそれがある。すなわち、同期バイトの位置の表示は識別は適切であるが、特定の同期バイトはエラー成分を有する。特に連続的に繰り返された消失同期パターンは、同期が消失したことを決定する十分な動機を提供する。
同期の際に、同期アドレス４２３は、同期バイトの決定された位置を有する。
アドレス４０３がこの同期アドレス４２３に等しいときは常に、データユニット３０５は同期パターンを有する必要があり、その結果、コンパレータ３０７は同期パターン検出信号３０４を明言する。アドレス４０３が同期アドレス４２３に等しいときに同期パターン検出信号３０４が明言されない場合、プロセッサ４１０は予備の再同期プロセスを開始する。好適な実施の形態において、以下のアルゴリズムが用いられる。同期アドレスの最初の不一致が発生すると、全体の一致テーブル４１１は零にリセットされ、一致計数３１５は１増分される。比較クロック３０６の続いて起こる全ての発生に対して、一致計数３１５は、同期パターン検出信号３０４が明言されるとともにアドレス４０３が同期アドレス４２３に等しくないときには常に増分される。
同期パターン検出信号３０４が明言されない場合、アドレス４０３が同期アドレス４２３に等しくないときの発生に対して、上記選択された同期方法に一致して一致計数３１５はそのままであり又は零にリセットされる。
アドレス４０３が同期アドレスに等しく、同期パターン検出信号３０４が明言されない場合、一致計数３１５が増分される。このようにして、同期アドレス４２３に対応するアドレス４０３の一致テーブル４１１のエントリは、同期パターンを有しない複数の決定された同期バイト位置を有する。この一致計数３１５がＭ３１８に等しい場合、プロセッサ４１０はロック信号３１２を放棄し、一致計数３１５を零にリセットする。プロセッサ４１０は、後に説明するようにＭ個の不一致が発生する又は再同期プロセスが終了するまで既に説明したようにして動作する。
同期アドレス位置でＭ個の不一致が発生する前に、アドレス４０３が同期アドレスに等しく、かつ、同期パターン検出信号３０４が明言される場合、プロセッサ４１０はこの予備の再同期プロセスを終了し、その通常の動作を再開する。それは、アドレス４０３が同期アドレス４２３に等しく既に説明したようなこの予備の再同期プロセスに再び入る度に、同期パターン検出信号３０４の明言に対する検査を継続する。
Ｍ個の非同期が生じる場合、プロセッサは、マッチテーブル４１１のエントリが零にリセットされない点を除いて同期プロセスを再開する。このようにして、以前のＭパケット中の各位置の同期パターンの発生のヒストグラムが保持される。したがって、同期プロセスは、一致テーブル４１１が零にリセットされる場合により少ないＭのパケットが要求される。
図７は、一例のシステムに対する状態図である。システムは先ず、リセット状態７０１で開始する。比較ユニットを受信すると、システムは同期状態７０２に入り、この場合、各比較ユニットが同期パターンと比較されて、１パケット長内のあり得る位置の各々で同期パターンの発生のヒストグラムを創成する。システムは、システムパターンが同一位置でＮ回見つけられるまでこの同期状態７０２のままであり、Ｎ回見つけられると、システムはロック状態７０３に入る。同期パターンがＮ回発生する位置は、同期バイト位置となるように決定される。システムは、予め決定された同期バイト位置に非同期パターンが発生する同期エラーを検出するまでロック状態７０３のままであり、同期エラーが検出されるとシステムは再同期状態７０４に入る。再同期状態７０４において、各比較ユニットが同期パターンと比較されて、非同期バイト位置の各々で同期パターンの発生及び同期バイト位置での連続的な非同期パターンの発生のヒストグラムを創成する。
同期バイト位置に対応する比較ユニットが、Ｍの非同期パターンをこの位置で見つける前に同期パターンを有することを見つける場合、システムはロック状態に再び入る。Ｍの連続的な非同期パターンが同期バイト位置で発生する場合、システムは同期状態７０２に再び入り、非同期バイト位置の同期パターン発生のヒストグラムを保持する。
本発明で説明したような再同期プロセスは、従来の方法に対して顕著な利点を提供する。本発明によれば、同期バイトの同期パターンが存在しないことが最初に生じたことを、同期の損失が来つつある予測子として用いられる。同期パターンが次の同期バイト中で見つけられる場合、予測は無視される。しかしながら、同期バイト中に同期パターンのＭの連続的な不存在が生じることによって同期が消失したことが決定される場合、同期プロセスを開始するが、同期を再確立するのに要求される時間は、同期パターンの最初の不存在が検出されるときに開始されたプロセスに等しい。
同期プロセスに対するアルゴリズムの選択を行うので、同期の損失を決定するのに用いることができる複数のアルゴリズム、すなわち、同期の損失に対する予測子が存在する。例えば、一致テーブルの内容を、所定の数のパケットを超える各位置の同期パターンの発生数の実行平均とすることができ、同期の損失に対する予測子を、ある値より下の同期バイト位置のエントリとすることができ、同期限定の損失は、同期位置のエントリを超える他の位置のエントリとなる。
本発明をソフトウェア上で又はハードウェアとソフトウェアの組合せとして実施することができることは当業者には理解することができる。プロセッサ４１０は、図４の個別の素子として示した全ての素子を有することができる。状態マシン又は他のコントローラは、プロセッサの動作を実行することができる。他のこのような変形は容易である。ソフトウェアを、プロセッサのファームウェアとして実施することができ、パケットのストリームを受信し及び処理する大システムの一部とすることができる。このソフトウェアを、オブジェクト指向フレームワークのサブルーチン、ソフトウェアオブジェクト又はオブジェクトとして実施することができる。
図８は、本発明の好適な実施の形態のフローチャートであり、プロセスの各々はハードウェア、ソフトウェア又は両方の組合せによって実行することができる。図８Ａは全体に亘るフローを示す。プロセスは、比較ユニットを受信する８０１から開始する。これを、高レベルルーチンからの明示的な呼出を通じたもの、イベント駆動又はオブジェクト指向実現のメッセージの受信に応答したもの、又は、ハードウェア素子に対するクロック信号の受信に応答したものとすることができる。比較ユニットを受信すると、ヒストグラムは８０２で更新され、ヒストグラムの内容が明言されて、同期が行われたか否かを８０３で決定する。この明言の結果は、プロセスの開始として８０４にリターンされる。状態は、同期がとられたか、消失したか又は疑われたかのような通信システムの他の部分及び同期バイトの位置に関係する情報を有する。
プロセス８０２を図８Ｂで詳細に説明する。ヒストグラムに対するインデックスは、以前の値を１増分し及び以前の値がパケットごとの比較ユニットの数に等しいときにはリセットすることによって８１１で更新され、すなわち、ブロック８１１はモジュロカウンタ動作を実行する。ヒストグラムのこのインデックスに対応するエントリは、選択されたアルゴリズムによって８１２で更新される。選択されたアルゴリズムが、このインデックスの同期パターンの連続的に発生した数を有するヒストグラムを要求すると、エントリは、比較ユニットが同期パターンをユニット場合には増分され、同期パターンを有しない場合には零にリセットされる。選択されたアルゴリズムが、同期パターンの全発生数を有するアルゴリズムを要求する場合、エントリは、比較ユニットが同期パターンを有する場合には増分され、そうでない場合にはそのままである。既に説明したように、他のアルゴリズムは、実行平均又は同期パターンの発生若しくは不発生に関連した他の目安を有するヒストグラムエントリを要求し、プロセス８１２がそれに応じて変更される。結果的に得られる更新されたヒストグラムがその後８１３にリターンされる。良好に受け入れられたプログラミング実行に調和して、プロセス８０２に、全体に亘るプロセスの状態に関連する情報を提供し、更新プロセス８１１及び８１２をこのような情報に依存するようにする。一例のシステムにおいて、システムがロック状態となる場合、例えば、ヒストグラム更新プロセス８１２は、ヒストグラムのエントリを変更しない。それに対して、選択したアルゴリズムが連続的な実行平均を要求する場合、ヒストグラム更新プロセス８１２は、システムがロック状態である場合でも、各インデックスに対する同期パターンの平均発生数を算出し、これに応じてエントリを変更する。
図８Ｃは、一例のシステムのプロセス８１２の詳細を提供する。決定ブロック８２１はシステムの状態を決定する。状態が同期状態である場合、比較ユニットは、８２３で同期パターンと比較される。同期パターンが比較ユニットに含まれる場合、８２６でこのインデックス番号に対するヒストグラムエントリが増分される。システムが再同期状態にある場合、８２４でインデックスは同期バイトのインデックスと比較される。同期バイトインデックスでない場合、比較ユニットは、８２３で同期パターンと比較され、同期パターンが比較ユニットに含まれる場合、エントリは８２６で増分される。８２４でインデックスが同期バイトのインデックスである場合、８２５で比較ユニットが同期パターンと比較され、同期パターンが比較ユニットに含まれない場合、８２６でエントリが増分される。上記ステップが完了すると、プロセスは８２７にリターンする。
プロセス８０３は、同期を決定するために用いるよう選択したアルゴリズムの例である。一例のアルゴリズムを図８Ｄに詳細に示す。決定ブロック８３１は、プロセスの状態に依存する制御フローチャートに移る。状態がリセット状態である場合、ヒストグラムは８２２でクリアされ、８３２で状態が同期状態になる。
８３２の状態変化に、よって、システムは、次の比較ユニットの受信に応答して同期プロセスを開始することができる。
８３１で表現した状態がロック状態である場合、インデックスは、８３３で同期バイトインデックスと比較される。インデックスが同期バイトのインデックスである場合、比較ユニットは８３４で同期パターンと比較される。同期パターンが比較ユニットに含まれない場合、予備の再同期プロセスが開始される。ヒストグラムは８３５でクリアされる。同期バイトインデックスに対応するヒストグラムエントリは８３６で１にセットされ、これは、これまで出くわした一つの消失同期パターンを表し、システム状態は８３７で再同期状態に変更される。
８３１で表現した状態が同期状態である場合、インデックスによって示した現在のヒストグラムエントリは、８３８でＮと比較される。既に説明したように、Ｎは、同期がとられたか否かを決定する基準として選択したパラメータである。
基準に到達すると、インデックスは８３９で同期バイトインデックスとしてセーブされ、８４０でロック状態が明言される。
８３１で表現したような状態が再同期状態である場合、インデックスは、８４１で同期バイトインデックスと比較される。インデックスが同期バイトのインデックスである場合、比較ユニットは８４５で同期パターンと比較される。比較ユニットが同期パターンを有する場合、ロック状態が８４０で再び明言される。比較有するが同期パターンを有しない場合、このインデックスのヒストグラムエントリは８４２でＭと比較される。既に説明したように、Ｍを、同期が消失したことを決定する基準として選択したパラメータとする。基準に到達すると、同期状態は８４３で明言され、このインデックスのヒストグラムエントリは８４４でリセットされる。ヒストグラムの他のエントリが影響を及ぼされず、これによって、再同期状態の間蓄積されたヒストグラム情報をセーブし、その結果、同期状態で費やされる時間が短くなる。
これらが完了すると、プロセスは８４７にリターンする。
これらは一例を表す。他のアルゴリズムを当業者によって容易に実施することができる。説明したように、基準は、ヒストグラムが同期パターンの連続的な発生数を有することを要求する場合、エントリを零にセットする単一ステップを、決定ブロック８２３からの分岐しないところに挿入することができる。他の例として、アルゴリズムが、あるエントリが他の全てのエントリをＮ超えるときには常に同期がとられることを決定するものである場合、決定ブロック８３８はエントリをテーブルの他の全てのエントリと比較することができる。すなわち、決定ブロック８３８は、エントリと、既に説明したような統計的な試験を用いることによって確立されたある基準と比較することができる。同様に、同期の損失を決定する他の基準を、決定ブロック８４２を変更することによって実施することができる。次のＭに対する比較用に同期バイトインデックスで発生する連続的な非同期パターンの数を有するために、個々の変数を割り当て、同期バイトインデックスのヒストグラムは、他のヒストグラムインデックスに一致するように、発生する同期パターンの数を有することができる。
本発明は、上記実施の形態に限定されるものではなく、幾多の変更及び変形が可能である。
【図面の簡単な説明】
図面中、
図１は、同期バイトフレーム化されたビットストリームと、同期バイトエミュレーション及び誤りのある同期バイトを有する同期バイトフレーム化されたビットストリームとを示す。
図２は、各パケットの正しい同期バイト開始を表す従来の方法に対する状態図及びタイミング図を示す。
図３は、各パケットの正しい同期バイト開始を表す従来の方法のブロック図を示す。
図４は、本発明による各パケットの正しい同期バイト開始を表す方法のブロック図を示す。
図５は、本発明によるビットストリームのプロセスを表す時間シーケンスを示す。
図６は、誤りのある同期バイトを処理する他のアルゴリズムを示す時間シーケンスを示す。
図７は、通信システムに対する本発明の好適な実施の形態の状態図を示す。
図８は、通信システムに対する本発明の好適な実施の形態のフローチャートを示す。
【図１Ａ】
0003946774.tif 000002
【図１Ｂ】
0003946774.tif 000003
【図２Ａ】
0003946774.tif 000004
【図２Ｂ】
0003946774.tif 000005
【図３】
0003946774.tif 000006
【図４】
0003946774.tif 000007
【図５】
0003946774.tif 000008
【図６】
0003946774.tif 000009
【図７】
0003946774.tif 000010
【図８Ａ】
0003946774.tif 000011
【図８Ｂ】
0003946774.tif 000012
【図８Ｃ】
0003946774.tif 000013
【図８Ｄ】
0003946774.tif 000014