(57)【要約】【課題】０削除及びフラグ検出に必要な処理回数が入力キューのビット列の並びに影響されないようにして、処理時間を短縮する。【解決手段】０削除及びフラグ検出部２１では、入力キュー記憶部２１ｂに記憶されたデータを８ビット単位でバッファメモリ２１c に読み込み、０削除及びフラグ検出テーブル２１ｅを検索して、フラグ検出及び０削除処理を行う。入力キューから選択される所定数のビット列は、その並びに関係なく処理され、出力キューに付加されるので、０削除及びフラグ検出処理の処理回数は入力キュー記憶部２１ｂから読み込まれるビット列の並びとは無関係となる。【選択図】  図１
2005295211.tif 000002
【特許請求の範囲】
【請求項１】
フラグのビットパターンの独自性を保証するための０挿入処理を受けたデータの入力キューから前記フラグの検出及び０削除を行い出力キュー列を生成するデータ処理装置であって、前記入力キューから所定ビット数毎にビット列を選択して入力ビット列とする手段と、前回の入力ビット列と前回の出力ビット列との差異に対応する状態データ、前記所定ビット数のビット列の並び、データの種別、出力ビット列、及び次回の状態データの組合せが予め記憶されたテーブルを検索して、前記入力ビット列のデータの種別、出力ビット列及び次回の状態データを読み出す手段と、前記読み出されたデータの種別により前記フラグを検出する手段と、前記出力ビット列を前記出力キューに付加する手段とを備えたことを特徴とするデータ処理装置。
【請求項２】
フラグのビットパターンの独自性を保証するための０挿入処理を受けたデータの入力キューから前記の検出及び０削除を行い出力キューを生成するデータ処理装置のコンピュータを、前記入力キューから所定ビット数毎にビット列を選択して入力ビット列とする手段と、前回の入力ビット列と前回の出力ビット列との差異に対応する状態データ、前記所定ビット数のビット列の並び、データの種別、出力ビット列、及び次回の状態データの組合せが予め記憶されたテーブルを検索して、前記入力ビット列のデータの種別、出力ビット列及び次回の状態データを読み出す手段と、前記読み出されたデータの種別により前記フラグを検出する手段と、前記出力ビット列を前記出力キューに付加する手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＨＤＬＣ（High-level Data Link Control Procedure）を用いたデータを処理する装置に関し、特にフラグ検出及び０削除処理を高速化したデータ処理装置に関する。
【背景技術】
【０００２】
ＨＤＬＣは、ＩＢＭ社のＳＤＬＣ（Synchronous Data Link Control ）をベースにＩＳＯ（国際標準化機構）が定めたデータリンク層の標準規約である。ＨＤＬＣのフレーム構成は、図１５に示すように、フレームの開始及び終了を示す８ビットのフラグと、順次フラグに続く８ビットのアドレス部、８ビット又は１６ビットの制御部、任意ビット長の情報部、及び１６ビットのＦＣＳ（フレーム・チェック・シーケンス）からなる。フラグのビットパターンは０１１１１１１０と定められているため、フレームの開始と終了を示すフラグに挟まれた部分では、ビット１が５個連続する場合、送信側ではその次にビット０を挿入し（これを０挿入という）、受信側ではそのビット０を削除する（これを０削除という）ことで、フラグのビットパターンの独自性を保証している。また、受信側では、０削除を行うときに、フラグを検出する処理をフレーム単位で繰り返す。
【０００３】
従来、このような０削除及びフラグ検出方法として、特許文献１に開示されたものがある。以下、図２６及び２７のフローチャート並びに図２８乃至乃至４０の状態変化を示す図を参照しながら、特許文献１に開示された０削除及びフラグ検出方法について説明する。これらの図において、入力キューはこれから０削除処理を受けるデータ、出力キューは０削除処理を受けたデータである。また、図２６は開始フラグ検出処理であり、図２７は開始フラグ検出後の処理である。
【０００４】
まず、０削除の前にフラグ検出を行うために、入力キューの先頭から１オクテット（８ビット）のデータを選択する（図２８（ａ）、図２７ステップＳ３１）。次に、フラグ検出テーブルを検索して、（ア）入力キューから削除するビット数（削除ビット数）、及び（イ）データ種別（フラグ／通常データ）を読み出す（図２８（ｂ）、ステップＳ３２）。ここでは、データ種別はフラグではなく、削除ビット数＝１である。従って、ステップＳ３３で”いいえ”と判断され、ステップＳ３５で入力キューから先頭の１ビットが削除され、ステップＳ３１に戻る。フラグが検出される迄は出力キューにデータは付加されないので、図２８（ｃ）に示すように、先頭の１が入力キューから削除されるが、出力キューに付加されるデータはない。
【０００５】
再び入力キューから８ビットを選択する。今回は０１１１１１１０が選択されている（図２９（ａ））。フラグ検出テーブルを検索することにより、入力された８ビットがフラグであり、削除ビット数＝８であることが分かる。従って、ステップＳ３３で”はい”と判断され、ステップＳ３４で入力キューからフラグの８ビットが削除され、開始フラグ検出処理を終える。
【０００６】
開始フラグが検出されたので、次に図２７に示されている０削除処理を実行する。入力キューの先頭から１オクテット（８ビット）のデータを選択する（図３０（ａ）、図２７のステップＳ４１）。ここでは、０１０１１０１１が選択されている。次に、０削除テーブルを検索して、（ア）出力キューに付加するビット数（出力ビット数）、（イ）入力キューから削除するビット数（削除ビット数）、及び（ウ）データ種別（通常データ／フラグ／アボート）を読み出す（図３０（ｂ）、ステップＳ４２）。ここでは、図３０（ｂ）に示されているように、出力ビット数＝５、削除ビット数＝５、データ種別＝通常データである。選択された８ビットの後部の３ビット０１１が出力キューに付加されない理由は、この０１１がフラグの先頭３ビットと同じであるため、その３ビットの次に１１１１０が続いた場合、終了フラグとなるからである。従って、ステップＳ４３”通常データ”と判定され、ステップＳ４４で０１０１１が出力キューに付加され、ステップＳ４5 で０１０１１が入力キューから削除された結果、図３０（ｃ）に示す状態となる。
【０００７】
以後、図３１乃至３９迄ステップＳ４１乃至４５の処理が繰り返し実行され、図４０（ａ）に示すようにステップＳ４３でフラグが検出され、１フレームの処理が終わる。図３３、３４、３５、３７及び３８では０削除が行われている。１フレームの処理が終わると、ステップＳ４１に戻って次のフレームの処理を行う。また、ステップＳ４３でアボートが検出された場合は、図２６のステップＳ３１に戻ってフラグ検出処理を行う。
【特許文献１】特表２００２−５２０９５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来の０削除及びフラグ検出方法では、入力キューから選択したビット列のうち確定したビット数分だけを削除しながら０削除及びフラグ検出を行うため、削除処理が複雑になる。また、ビット列の並びにより開始フラグ検出迄の処理回数、及びあるフラグの検出後０削除を行い次のフラグを検出する迄の処理回数が増減する。特にフラグの一部と同じビット並びのデータがあるとき、及び０削除が必要なビット列が連続するときに処理回数が多くなり、処理時間が長くなる。
【０００９】
本発明はこのような問題点を解決するためになされたもので、０削除及びフラグ検出に必要な処理回数が入力キューのビット列の並びに影響されないようにして、処理時間を短縮することを目的とする。
【課題を解決するための手段】
【００１０】
請求項１に係る発明は、フラグのビットパターンの独自性を保証するための０挿入処理を受けたデータの入力キューから前記フラグの検出及び０削除を行い出力キュー列を生成するデータ処理装置であって、前記入力キューから所定ビット数毎にビット列を選択して入力ビット列とする手段と、前回の入力ビット列と前回の出力ビット列との差異に対応する状態データ、前記所定ビット数のビット列の並び、データの種別、出力ビット列、及び次回の状態データの組合せが予め記憶されたテーブルを検索して、前記入力ビット列のデータの種別、出力ビット列及び次回の状態データを読み出す手段と、前記読み出されたデータの種別により前記フラグを検出する手段と、前記出力ビット列を前記出力キューに付加する手段とを備えたことを特徴とするデータ処理装置である。
請求項２に係る発明は、フラグのビットパターンの独自性を保証するための０挿入処理を受けたデータの入力キューから前記の検出及び０削除を行い出力キューを生成するデータ処理装置のコンピュータを、前記入力キューから所定ビット数毎にビット列を選択して入力ビット列とする手段と、前回の入力ビット列と前回の出力ビット列との差異に対応する状態データ、前記所定ビット数のビット列の並び、データの種別、出力ビット列、及び次回の状態データの組合せが予め記憶されたテーブルを検索して、前記入力ビット列のデータの種別、出力ビット列及び次回の状態データを読み出す手段と、前記読み出されたデータの種別により前記フラグを検出する手段と、前記出力ビット列を前記出力キューに付加する手段として機能させることを特徴とするプログラムである。
【発明の効果】
【００１１】
本発明によれば、入力キューから選択された所定数の入力ビット列は、その並びに関係なく処理され、出力キューに付加されるので、０削除及びフラグ検出に必要な処理回数は入力キューのビット列の並びとは無関係となり、処理時間が短縮される。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しながら本発明の実施形態について説明する。
図１は本発明の実施形態に係る送信回路及び受信制御回路の構成を示すブロック図である。送信制御回路１は、ＦＣＳ生成部１１と、その出力側に接続された０挿入部１２と、その出力側に接続されたフラグ生成部１３とを備えている。受信制御回路２は、０削除及びフラグ検出部２１と、その出力側に接続されたエラー検出部２２とからなる。
【００１３】
０挿入部１２は、入力キュー記憶部１２ｂと、その出力側に接続されたバッファメモリ１２ｃと、その出力側に接続された出力キュー記憶部１２ｄと、各部を制御する制御部１２ａと、制御部１２ａに接続された０挿入テーブル１２ｅとを備えている。また、０削除及びフラグ検出部２１は、入力キュー記憶部２１ｂと、その出力側に接続されたバッファメモリ２１ｃと、その出力側に接続された出力キュー記憶部２１ｄと、各部を制御する制御部２１ａと、制御部２１ａに接続された０削除及びフラグ検出テーブル２１ｅとを備えている。
【００１４】
送信制御回路１のＦＣＳ生成部１１には、図示されていないフレーム生成部で生成されたＨＤＬＣフレームデータが入力される。ＦＣＳ生成部１１は、入力されたＨＤＬＣフレームデータにＦＣＳ（誤り訂正符号）を付加し、０挿入部１２へ出力する。０挿入部１２では、制御部１２ａの制御により、入力キュー記憶部１２ｂにデータを記憶すると共に、記憶されたデータを所定ビット単位でバッファメモリ１２c に読み込み、０挿入テーブル１２ｅを検索して、０挿入処理を行い、０挿入処理を受けたデータをバッファメモリ１２c から出力キュー記憶部１２ｄへ送出する。さらに、出力キュー記憶部１２ｄに記憶されたデータをフラグ生成部１３へ送るように制御する。詳細について後述するように、０挿入テーブル１２ｅには、前回入力キュー記憶部１２ｂから読み込まれたビット列と前回出力キュー記憶部１２ｄに送出されたビット列との差異に対応する状態データ、所定ビット数のビット列の並び、出力キュー記憶部１２ｄへ送出されるビット列とそのビット数、及び入力キュー記憶部１２ｂから読み込まれるビット列と出力キュー記憶部１２ｄへ送出されるビット列との差異に対応する次回の状態データの全ての組合せが予め記憶されている。また、入力キューから選択される所定数のビット列は、ビット列の並びに関係なく、入力キューから削除されるので、０挿入処理の処理回数は入力キュー記憶部１２ｂから読み込まれるビット列の並びとは無関係となる。フラグ生成部１２ｄは、入力されたデータにフラグ０１１１１１１０を付加し、図示されていないデータ伝送路を介して受信制御回路２へ送信する。
【００１５】
受信制御回路２の０削除及びフラグ検出部２１には、送信制御回路１から送信されたＨＤＬＣフレームデータが図示されていないデータ伝送路を介して入力される。０削除及びフラグ検出部２１では、制御部２１ａの制御により、入力キュー記憶部２１ｂにデータを記憶すると共に、記憶されたデータを所定ビット単位でバッファメモリ２１ｃに読み込み、０削除及びフラグ検出テーブル２１ｅを検索して、０削除及びフラグ検出処理を行い、０削除及びフラグ検出処理を受けたデータをバッファメモリ２１ｃから出力キュー記憶部２１ｄへ送出する。さらに、出力キュー記憶部２１ｄに記憶されたデータをエラー検出部２２へ送るように制御する。詳細について後述するように、０削除及びフラグ検出テーブル２１ｅには、前回入力キュー記憶部１２ｂから読み込まれたビット列と前回出力キュー記憶部１２ｄに送出されたビット列との差異に対応する状態データ、所定ビット数のビット列の並び、出力キュー記憶部２１ｄへ送出されるビット列とそのビット数、入力キュー記憶部２１ｂから読み込まれるビット列と出力キュー記憶部２１ｄへ送出されるビット列との差異に対応する次回の状態データ、及びデータの種別（通常データ／フラグ／アボート）の全ての組合せが予め記憶されている。また、入力キューから選択される所定数のビット列は、ビット列の並びに関係なく、入力キューから削除されるので、０削除処理の処理回数は入力キュー記憶部２１ｂから読み込まれるビット列の並びとは無関係となる。エラー検出部２２は、入力されたデータのＦＣＳを用いて誤り訂正処理を行い、図示されていないフレーム受信部へ送出する。
【００１６】
以下、図２乃至１１を参照しながら、送信制御回路１の０挿入部１２の動作を説明する。
まず、０挿入テーブル１２ｅの内容を説明する。本実施形態では、入力キュー記憶部１２ｂから８ビットずつデータがバッファメモリ１２ｃに読み込まれ、０挿入が必要な場合、つまり１が５個続いた場合には０挿入処理を受け、出力キュー記憶部１２ｄへ送出される。また、入力キュー記憶部１２ｂから例えば１１１０１１１１が読み込まれた場合、出力キュー記憶部１２ｄへ送出されるのは１１１０となり、１１１１は送出されない。本実施形態では、この１１１１からなる残りビットを状態番号として保存し、次回に入力キュー記憶部１２ｂから読み込まれる８ビットと同時に扱う。
【００１７】
残りビットは、１、１１、１１１及び１１１１の４種類であるから、図２に示すように、状態番号０乃至４により残りビットの種類を定めている。そして、０挿入テーブル１２ｅには、入力キューから読み込まれる８ビットのビット列の並び、出力キュー記憶部１２ｄへ出力されるビット列とそのビット数、及び状態番号の全ての組合せが予め記憶されている。
【００１８】
次に、０挿入テーブル１２ｅの作成手順を説明する。
［１］状態番号が０のテーブルの場合
下記（１）〜（４）の手順で作成する。
（１）対象とする８ビットについて、順にビットを調べ、０挿入が必要か否かを判定する。
【００１９】
＜判定の法則＞
・０挿入が必要か否かは１が５個連続しているか、途中で０が出現するかを確認する。
・１の連続数が５個未満の場合、そのまま取り出しビットの並びとすることができる。
・１の連続数が５個に達した場合、続けて０を挿入する事によってそれまで判定したビット列は、取り出しビットの並びとし、１の連続数も０から数え直す。
【００２０】
（２）  （１）の処理を行い、8 ビット全てを調べる。８ビットの終了時点では以下の３つの状態が考えられる。
（ア）８ビット目が０で終了した状態（１の連続数が０）
（イ）８ビット目で１の連続数が５になり、０挿入をした直後の状態（１の連続数が０）
（ウ）８ビット目では１の連続数が１以上５未満であり、次の取り出しビットに影響を与える状態
【００２１】
（３）（ア）、（イ）の状態の場合、それまで作成した、ビット列、作成済みのビット数がテーブルとなる。また、全てのビットが判定終了したので、残りのビットは０である。これは、残りのビット数が０であるので、次状態が０ということでもある。
【００２２】
（４）（ウ）の状態の場合は、判定済みのビット列とビット列のビット数をテーブルとする。また、終了時点での１の連続数を次の状態番号とする。
残りビット無しの場合  →  次状態：０
残りビット１の場合  →  次状態番号：１
残りビット１１の場合  →  次状態番号：２
残りビット１１１の場合  →  次状態番号：３
残りビット１１１１の場合  →  次状態番号：４
【００２３】
［２］状態番号が０以外のテーブルの場合
下記（１）〜（５）の手順で作成する。
（１）状態番号により、対象とする８ビットの前に以下のビットを加える。
状態番号：１→１＋（対象とする８ビット）
状態番号：２→１１＋（対象とする８ビット）
状態番号：３→１１１＋（対象とする８ビット）
状態番号：４→１１１１＋（対象とする８ビット）
【００２４】
（２）  （１）で作成したビット列について、順にビットを調べ、０挿入が必要か否かを判定する。
＜判定の法則＞
・０挿入が必要か否かは１が５個連続しているか、途中で０が出現するかを確認する。
・１の連続数が５個未満の場合、そのまま取り出しビットの並びとすることができる。
・１の連続数が５個に達した場合、続けて０を挿入する事によってそれまで判定したビット列は、取り出しビットの並びとし、１の連続数も０から数え直す。
【００２５】
（３）  （２）の処理を行い、（１）で作成したビット全てを調べる。全ビットの終了時点では以下の３つの状態が考えられる。
（ア）最後のビットが０で終了した状態（１の連続数が０）
（イ）最後のビットで１の連続数が５になり、０挿入をした直後の状態（１の連続数が０）
（ウ）最後のビットでは１の連続数が１以上５未満であり、次の取り出しビットに影響を与える状態
【００２６】
（４）（ア）、（イ）の状態の場合、それまで作成した、ビット列、作成済みのビット数がテーブルとなる。また、全てのビットが判定終了したので、残りのビットは０である。これは、残りのビット数が０であるので、次状態が０ということでもある。
【００２７】
（５）（ウ）の状態の場合は、判定済みのビット列とビット列のビット数をテーブルとする。また、終了時点での１の連続数を次状態番号とする。
残りビット無しの場合  →  次状態番号：０
残りビット１の場合  →  次状態番号：１
残りビット１１の場合  →  次状態番号：２
残りビット１１１の場合  →  次状態番号：３
残りビット１１１１の場合  →  次状態番号：４
【００２８】
［３］０挿入テーブルの作成例（状態番号：２、入力ビット列：１０１１１１０１の変換テーブル作成の場合）
（１）状態２であるから、前回のビット列は１１で終了した状態であり、これに１０１１１１０１を合わせて判定ビット列は１１１０１１１１０１と考えることができる。
（２）（１）で作成したビット列について、０挿入の必要を考慮しながら、取り出しビットを作成すると、１１１０１１１１０＋１と分割できる。
（３）よって、取り出しビットは、１１１０１１１１０、ビット数「９」を得る。残りの「１」については次状態に影響を与えるため、今回はデータを確定できず、次の状態を１とする。
（４）以上から、状態番号：２、入力ビット列：１０１１１１０１の変換テーブルとして、
次状態番号：１  、出力ビット数：９、出力ビット列＝１１１０１１１１０
が得られる。
【００２９】
図３は０挿入テーブル１２ｅの一部を抜粋したものである。この図に示されているように、状態番号と入力ビット列が決まれば、それに対応して次状態番号、出力ビット数及び出力ビット列が定まる。なお、入力キュー記憶部１２ｂから最初に読み込まれるビット列の状態番号は０である。
【００３０】
次に図４のフローチャート及び図５乃至１１の状態変化を示す図を用いて０挿入方法を説明する。これらの図において、入力キューは入力キュー記憶部１２ｂに記憶されているビット列、出力キューは出力キュー記憶部１２ｄに記憶されているビット列である。なお、この入力キューのビット列の並びは従来例における入力キューのビット列の並びと同じである。
【００３１】
まず、６オクテット（４８ビット）入力キューの先頭から１オクテット（８ビット）のデータを選択する（図５（ａ）、図４のステップＳ１）。図５（ａ）において、枠で囲まれた０１０１１０１１が選択された８ビットを示す。次に、０挿入用テーブルを検索して、（ア）次回の状態番号（次状態番号）、（イ）出力キューに付加するビット数（出力ビット数）、（ウ）及び出力キューに付加するビット列（出力ビット列）を読み出す（図５（ｂ）、ステップＳ２）。０挿入用テーブルには、入力される８ビットの全ての組み合わせと状態番号数の積（２8 ×５＝１２８０通り）に対する上記（ア）、（イ）及び（ウ）のデータが予め格納されている。
【００３２】
ここでは、次状態番号＝２、出力ビット数＝６、出力ビット列＝０１０１１０である。なお、入力キューから選択された０１０１１０１１の状態（初期状態）は０である。ここで、選択された８ビットの全てが出力キューに付加されない理由は、選択された８ビットの末尾の２ビット１１は、その２ビットの次に１が３個続いた場合、その次に０挿入処理を行うことになるため、次に選択される先頭の３ビットと併せて処理する必要があり、未確定であるためである。従って、ここでは、出力キューに０１０１１０を付加する（ステップＳ３）。一方、入力キューからは０１０１１０１１を削除すると共に次状態番号を保存する（ステップＳ４）。図５（ｃ）において０１０１１０１１が削除された入力キュー、０１０１１０が付加された出力キューを示す。ここで、入力キューの０１０１１０に付与された二重線は削除されたビット列を表し、網がけは今回削除されたビット列を表す。また、出力キューに付与された下線は今回付加されたビット列を表す。
【００３３】
以上のステップＳ１乃至４を入力キューのビット列がなくなるまで繰り返す（ステップＳ５）。ここでは、図６（ａ）に示すように、１０１１１１０１を選択する。この入力ビット列の状態番号は前回保存された２である。この入力ビット列及び状態番号を用いて０挿入テーブル１２ｅを検索すると、図６（ｂ）に示すように、次状態番号＝１、出力ビット数＝９、出力ビット列＝１１１０１１１１０である。ここで、出力ビット列の先頭の２ビット１１は、入力キューから前回選択されて削除されたものの出力ビットにならず、次状態番号により保存されていたものである。次に、１１１０１１１１０を出力キューに付加し（ステップＳ３）、１０１１１１０１を入力キューから削除すると共に次状態番号（＝１）を保存する（ステップＳ４）ことで、図６（ｃ）に示す状態となる。
【００３４】
以後、図７乃至１０までステップＳ１乃至４の処理が繰り返し実行され、図１１に示す状態になると、ステップＳ５で”はい”と判定されるので、次のステップＳ６で状態番号を判断し、その状態番号に対応する数の１を出力キューに付加して１フレームの処理が終わる。図７、８、９及び１０では０挿入を行っている。
【００３５】
このように、本実施形態の０挿入処理では、入力キューから選択した１オクテット（８ビット）を入力ビット列の並びに関係なく全て削除しているため、処理が簡単であり、かつ入力キューのオクテット数と同じ回数のループ処理により完了する。
【００３６】
次に、図１２乃至２４を参照しながら、受送信制御回路２の０削除及びフラグ検出部２１の動作を説明する。
【００３７】
まず、０削除及びフラグ検出テーブル２１ｅの内容を説明する。本実施形態では、入力キュー記憶部２１ｂから８ビットずつデータがバッファメモリ２１ｃに読み込まれ、０削除が必要な場合、つまり１が５個続いた場合には０削除処理を受け、出力キュー記憶部２１ｄへ付加される。また、フラグである０１１１１１１０が読み込まれた場合、フラグ検出処理を行う。ここで、フレームの最初のフラグである開始フラグが検出されたときは、それ以後読み込まれるデータに対して０削除処理を開始し、フレームの最後のフラグである終了フラグが検出されたときは、１フレームの０削除処理を終える。また、０挿入処理と同様、入力キューから選択したビット列の内、出力キューに付加されない残りビット列を識別するために状態番号を保存する。
【００３８】
状態番号は、図１２に示されているように、状態０から１２までの１３通りになる。そして、０削除及びフラグ検出テーブル２１ｅには、入力キュー２１ｂから読み込まれる８ビットのビット列の並び、出力キュー記憶部２１ｄへ出力されるビット列とそのビット数、データの種別（通常データ／フラグ／アボート）及び状態番号の全ての組合せが予め記憶されている。
【００３９】
次に、０削除及びフラグ検出テーブル２１ｅの作成手順を説明する。
［１］状態０のテーブルの場合
下記（１）〜（５）の手順により作成する。
【００４０】
（１）対象とする８ビットについて、順にビットを調べ、フラグの有無と０削除が必要か否かを判定する。
＜判定の法則＞
・０挿入が必要か否かは１が５個連続しているか、途中で０が出現するかを確認する。
ただし、フラグの存在も考慮する為、１から始まる１の連続の場合と、０から始まる１の連続は区別する必要がある。
・１から始まる１の連続の場合で、１の連続数が５未満の場合、そのまま取り出しビットの並びとする。
・１から始まる１の連続の場合で、１の連続数が５個で次に続くビットが０の場合、その０を削除したものを取り出しビットの
の並びとする。
・１から始まる１の連続の場合で、１の連続数が６個になる場合、無効なデータであるので, 種別を「無効（アボート）」とする。
・０から始まる１の連続の場合で、１の連続数が５未満の場合、そのまま取り出しビットの並びとする。
・０から始まる１の連続の場合で、１の連続数が５個で次に続くビットが０の場合、その０を削除したものを取り出しビット
の並びとする。
・０から始まる１の連続の場合で、１の連続数が６個で次に続くビットが０の場合、そのビット並びはフラグをあらわすので、
種別を「フラグ」とする。このとき、フラグに該当する０１１１１１１０の並びは取り出しビットには含めない。
・０から始まる１の連続の場合で、１の連続数が７個になる場合、無効なデータであるので、種別を「無効」とする。
【００４１】
（２）  （１）の処理を行い、８ビット全てを調べる。８ビットの終了時点では以下の４つの状態が考えられる。
（ア）８ビット目が０で終了した場合
（イ）７ビット目まで１が５個連続し、８ビット目の０を削除して終了した場合
（ウ）８ビット目では１の連続数が１以上６未満で有り、次の取り出しビットに処理が依存する場合
（エ）データ種別が「異常」な場合
【００４２】
（３）（ア）、（イ）の状態の場合、データ種別は「通常」、作成済みのビット列とそのビット列のビット数がテーブルになる。また、全てのビットが判定終了したので、残りビットは０である。これは、残りのビット数が０であるので、次状態が０ということである。
【００４３】
（４）（ウ）の状態の場合は、データ種別は「通常」、作成済みのビット列と、そのビット数がテーブルになる。また、終了時点での確定していないビットの状態により、次状態番号を決める。
残りビットが０の場合→次状態番号：１
残りビットが１の場合→次状態番号：２
残りビットが０１の場合→次状態番号：３
残りビットが１１の場合→次状態番号：４
残りビットが０１１の場合→次状態番号：５
残りビットが１１１の場合→次状態番号：６
残りビットが０１１１の場合→次状態番号：７
残りビットが１１１１の場合→次状態番号：８
残りビットが０１１１１の場合→次状態番号：９
残りビットが１１１１１の場合→次状態番号：１０
残りビットが０１１１１１の場合→次状態番号：１１
残りビットが０１１１１１１の場合→次状態番号：１２
（５）（エ）の状態の場合、データ種別を「異常」とする。
【００４４】
［２］状態番号が０以外のテーブルの場合
下記（１）〜（６）の手順により作成する。
（１）状態により、対象とする８ビットの前に以下のビットを加える。
状態番号：１→０＋（対象とする８ビット）
状態番号：２→１＋（対象とする８ビット）
状態番号：３→０１＋（対象とする８ビット）
状態番号：４→１１＋（対象とする８ビット）
状態番号：５→０１１＋（対象とする８ビット）
状態番号：６→１１１＋（対象とする８ビット）
状態番号：７→０１１１＋（対象とする８ビット）
状態番号：８→１１１１＋（対象とする８ビット）
状態番号：９→０１１１１＋（対象とする８ビット）
状態番号：１０→１１１１１＋（対象とする８ビット）
状態番号：１１→０１１１１１＋（対象とする８ビット）
状態番号：１２→０１１１１１１＋（対象とする８ビット）
【００４５】
（２）  （１）で作成したビット列について、順にビットを調べ、フラグの有無と０削除が必要か否かを判定する。
＜判定の法則＞
・０挿入が必要か否かは１が５個連続しているか、途中で０が出現するかを確認する。
ただし、フラグの存在も考慮する為、１から始まる１の連続と、０から始まる１の連続とは区別する必要がある。
・１から始まる１の連続の場合で、１の連続数が５未満の場合、そのまま取り出しビットの並びとする。
・１から始まる１の連続の場合で、１の連続数が５個で次に続くビットが０の場合、その０を削除したものを取り出しビットの並びとする。
・１から始まる１の連続の場合で、１の連続数が６個になる場合、無効なデータであるので、種別を「無効」とする。
・０から始まる１の連続の場合で、１の連続数が５未満の場合、そのまま取り出しビットの並びとする。
・０から始まる１の連続の場合で、１の連続数が５個で次に続くビットが０の場合、その０を削除したものを取り出しビット
の並びとする。
・０から始まる１の連続の場合で、１の連続数が６個で次に続くビットが０の場合、そのビット並びはフラグをあらわすので、
種別を「フラグ」とする。このとき、フラグに該当する０１１１１１１０の並びは取り出しビットには含めない。
・０から始まる１の連続の場合で、１の連続数が７個になる場合、無効なデータであるので、種別を「無効」とする。
【００４６】
（３）  （２）の処理を行い、（１）で作成したビット全てを調べる。全てのビットの終了時点では以下の４つの状態が考えられる。
（ア）８ビット目が０で終了した場合
（イ）７ビット目まで１が５個連続し、８ビット目の０を削除して終了した場合
（ウ）８ビット目では１の連続数が１以上６未満で有り、次の取り出しビットに処理が依存する場合
（エ）データ種別が「異常」な場合
【００４７】
（４）（ア）、（イ）の状態の場合、データ種別は「通常」、作成済みのビット列とそのビット列のビット数がテーブルになる。また、全てのビットが判定終了したので、残りビットは０であるこれは、残りのビット数が０であるので、次状態が０ということである。
【００４８】
（５）（ウ）の状態の場合は、データ種別は「通常」、作成済みのビット列と、そのビット数がテーブルになる。また、終了時点での確定していないビットの状態により、次状態番号を決める。
残りビットが０の場合→次状態番号：１
残りビットが１の場合→次状態番号：２
残りビットが０１の場合→次状態番号：３
残りビットが１１の場合→次状態番号：４
残りビットが０１１の場合→次状態番号：５
残りビットが１１１の場合→次状態番号：６
残りビットが０１１１の場合→次状態番号：７
残りビットが１１１１の場合→次状態番号：８
残りビットが０１１１１の場合→次状態番号：９
残りビットが１１１１１の場合→次状態番号：１０
残りビットが０１１１１１の場合→次状態番号：１１
残りビットが０１１１１１１の場合→次状態番号：１２
（６）（エ）の状態の場合、データ種別を「異常」とする。
【００４９】
［３］０削除テーブルの作成例（状態番号：１２、入力ビット列：００１０１１０１の変換テーブルの作成の場合）
（１）状態番号：１２であるから、前回のビット列は０１１１１１１で終了した状態であり、これに今回の００１０１１０１を合わせて判定ビット列は０１１１１１１００１０１１０１と考えることができる。
（２）  （１）で作成したビット列について、フラグの存在と０削除の必要を考慮しながら、取り出しビットを作成すると、０１１１１１１０＋０１０１１＋０１に分割できる。よって、ひとつ目の０１１１１１１０から種別はフラグ、取り出しビットは０１０１１、ビット数５を得る。
残りの０１については次状態に影響を与えるため、今回はデータを確定できず、次状態番号を３とする。
以上から、状態番号：１２、入力ビット列：００１０１１０１」の変換テーブルとして、
次状態番号：３、出力ビット数：５、出力ビット列＝１１１０１１１１０
が得られる。
【００５０】
図１３は０削除及びフラグ検出テーブル２１ｅの一部を抜粋したものである。この図に示されているように、状態番号と入力ビット列が決まれば、それに対応してデータ種別が判定されると共に次状態番号、出力ビット数及び出力ビット列が定まる。なお、入力キュー記憶部１２ｂから最初に読み込まれるビット列の状態番号は０である。
【００５１】
次に、図１４及び１５のフローチャート並びに図１６乃至２４の状態変化を示す図を用いて０削除及びフラグ検出方法を説明する。これらの図において、入力キューはこれから０削除及びフラグ検出処理を受けるデータ、出力キューは０削除及びフラグ検出処理を受けたデータである。また、図１４は開始フラグ検出処理であり、図１５は開始フラグ検出後の処理である。なお、この入力キューのビット列の並びは従来例における入力キューのビット列の並びと同じである。
【００５２】
まず、０削除の前にフラグ検出を行うために、入力キューの先頭から１オクテット（８ビット）のデータを選択する（図１６（ａ）、図１４のステップＳ１１）。図１６（ａ）において、枠で囲まれた１０１１１１１１が選択された８ビットを示す。次に、０削除及びフラグ検出テーブル２１ｅを検索して、（ア）次状態番号、（イ）データ種別（通常データ／フラグ／アボート）、（ウ）出力キューに付加するビット数（出力ビット数）、及び（エ）出力キューに付加するビット列（出力ビット列）を読み出す。（図１６（ｂ）、ステップＳ１２）。ここでは、次状態番号＝１２、データ種別＝通常、出力ビット数＝１、出力ビット列＝１である。従って、フラグではないから、ステップＳ１３で”いいえ”と判断し、ステップＳ１４で入力キューから８ビットを削除すると共に状態番号１２を保存した後にステップＳ１１に戻る。フラグが検出される迄は出力キューにデータは付加されないので、図１６（ｃ）に示すように、１０１１１１１１が入力キューから削除され、出力キューに付加されるデータはない。
【００５３】
再び入力キューから８ビットを選択する（ステップＳ１１）。今回は００１０１１０１が選択されている（図１７（ａ））。この入力ビット列の状態番号は前回保存された１２である。この入力ビット列及び状態番号を用いて０削除及びフラグ検出テーブル２１ｅを検索すると（ステップＳ１２）、次状態番号＝３、データ種別＝フラグ、出力ビット数＝５、出力ビット列＝０１０１１である（図１７（ｂ））。フラグが検出されているから、ステップＳ１３で”はい”と判断し、ステップＳ１５で出力キューに出力ビット列を付加した後、ステップＳ１６で００１０１１０１を削除すると共に状態番号３を保存し、開始フラグ検出処理を終える。
【００５４】
開始フラグが検出されたので、次に図１５に示されている０削除処理を実行する。入力キューの先頭から１オクテット（８ビット）のデータを選択する（図１８（ａ）、図１５のステップＳ２１）。ここでは、１１０１１１１０が選択されている。次に、０削除及びフラグ検出テーブル２１ｅを検索すると（ステップＳ２２）、次状態番号＝１、データ種別＝通常、出力ビット数＝９、出力ビット列＝０１１１０１１１１である（図１８（ｂ））。従って、ステップＳ２３通常データと判定し、ステップＳ２４で０１１１０１１１１を出力キューに付加し、ステップＳ２５で入力キューから１１０１１１１０を削除すると共に状態番号１を保存する（図１８（ｃ））。
【００５５】
以後、図１９乃至図２４迄ステップＳ２１乃至２５の処理が繰り返し実行され、図２４に示すようにステップＳ２３でフラグが検出され、１フレームの処理が終わる。図１９、２０、２１、２２、及び２４では０削除が行われている。１フレームの処理が終わると、ステップＳ２１に戻って次のフレームの処理を行う。また、ステップＳ２３でアボートが検出された場合は、図１４のステップＳ１１に戻ってフラグ検出処理を行う。
【００５６】
このように、本実施形態の０削除処理では、入力キューから選択した１オクテット（８ビット）を入力ビット列の並びに関係なく全て削除しているため、処理が簡単であり、かつ入力キューのオクテット数と同じ回数のループ処理により完了する。
【００５７】
なお、以上の説明では、最適値の８ビット単位で入力キューからビット列を読み込むものとしたが、８ビット以外のビット数単位で読み込むようにしてもよい。また、本発明は、ＨＤＬＣ手順だけでなく、ビット列の並びを特定の規則に従って変換する処理であり、かつ変換の前後にビット数が増減する処理に対しても同様に適用できる。
【図面の簡単な説明】
【００５８】
【図１】図１は本発明の実施形態に係る送信回路及び受信制御回路の構成を示すブロック図である。
【図２】本発明の実施形態における０挿入テーブルの状態番号を示す図である。
【図３】本発明の実施形態における０挿入テーブルの抜粋を示す図である。
【図４】本発明の実施形態における０挿入処理のフローチャートである。
【図５】本発明の実施形態における０挿入処理の状態変化を示す図である。
【図６】本発明の実施形態における０挿入処理の状態変化を示す図である。
【図７】本発明の実施形態における０挿入処理の状態変化を示す図である。
【図８】本発明の実施形態における０挿入処理の状態変化を示す図である。
【図９】本発明の実施形態における０挿入処理の状態変化を示す図である。
【図１０】本発明の実施形態における０挿入処理の状態変化を示す図である。
【図１１】本発明の実施形態における０挿入処理の状態変化を示す図である。
【図１２】本発明の実施形態における０削除及びフラグ検出テーブルの状態番号を示す図である。
【図１３】本発明の実施形態における０削除及びフラグ検出テーブルの抜粋を示す図である。
【図１４】本発明の実施形態における開始フラグ検出処理のフローチャートである。
【図１５】本発明の実施形態における０削除処理のフローチャートである。
【図１６】本発明の実施形態における開始フラグ検出処理の状態変化を示す図である。
【図１７】本発明の実施形態における開始フラグ検出処理の状態変化を示す図である。
【図１８】本発明の実施形態における０削除処理の状態変化を示す図である。
【図１９】本発明の実施形態における０削除処理の状態変化を示す図である。
【図２０】本発明の実施形態における０削除処理の状態変化を示す図である。
【図２１】本発明の実施形態における０削除処理の状態変化を示す図である。
【図２２】本発明の実施形態における０削除処理の状態変化を示す図である。
【図２３】本発明の実施形態における０削除処理の状態変化を示す図である。
【図２４】本発明の実施形態における０削除処理の状態変化を示す図である。
【図２５】ＨＤＬＣフレームの構成を示す図である。
【図２６】従来の開始フラグ検出処理のフローチャートである。
【図２７】従来の０削除処理のフローチャートである。
【図２８】従来の開始フラグ検出処理の状態変化を示す図である。
【図２９】従来の開始フラグ検出処理の状態変化を示す図である。
【図３０】従来の０削除処理の状態変化を示す図である。
【図３１】従来の０削除処理の状態変化を示す図である。
【図３２】従来の０削除処理の状態変化を示す図である。
【図３３】従来の０削除処理の状態変化を示す図である。
【図３４】従来の０削除処理の状態変化を示す図である。
【図３５】従来の０削除処理の状態変化を示す図である。
【図３６】従来の０削除処理の状態変化を示す図である。
【図３７】従来の０削除処理の状態変化を示す図である。
【図３８】従来の０削除処理の状態変化を示す図である。
【図３９】従来の０削除処理の状態変化を示す図である。
【図４０】従来の０削除処理の状態変化を示す図である。
【符号の説明】
【００５９】
１２・・・０挿入回路、１２ａ，２１ａ・・・制御部、１２ｂ，２１ｂ・・・入力キュー記憶部、１２ｄ，２１ｄ・・・出力キュー記憶部、１２ｅ・・・０挿入テーブル、２１・・・０削除及びフラグ検出部、２１ｅ・・・０削除及びフラグ検出テーブル。
【図１】
2005295211.tif 000003
【図２】
2005295211.tif 000004
【図３】
2005295211.tif 000005
【図４】
2005295211.tif 000006
【図５】
2005295211.tif 000007
【図６】
2005295211.tif 000008
【図７】
2005295211.tif 000009
【図８】
2005295211.tif 000010
【図９】
2005295211.tif 000011
【図１０】
2005295211.tif 000012
【図１１】
2005295211.tif 000013
【図１２】
2005295211.tif 000014
【図１３】
2005295211.tif 000015
【図１４】
2005295211.tif 000016
【図１５】
2005295211.tif 000017
【図１６】
2005295211.tif 000018
【図１７】
2005295211.tif 000019
【図１８】
2005295211.tif 000020
【図１９】
2005295211.tif 000021
【図２０】
2005295211.tif 000022
【図２１】
2005295211.tif 000023
【図２２】
2005295211.tif 000024
【図２３】
2005295211.tif 000025
【図２４】
2005295211.tif 000026
【図２５】
2005295211.tif 000027
【図２６】
2005295211.tif 000028
【図２７】
2005295211.tif 000029
【図２８】
2005295211.tif 000030
【図２９】
2005295211.tif 000031
【図３０】
2005295211.tif 000032
【図３１】
2005295211.tif 000033
【図３２】
2005295211.tif 000034
【図３３】
2005295211.tif 000035
【図３４】
2005295211.tif 000036
【図３５】
2005295211.tif 000037
【図３６】
2005295211.tif 000038
【図３７】
2005295211.tif 000039
【図３８】
2005295211.tif 000040
【図３９】
2005295211.tif 000041
【図４０】
2005295211.tif 000042