(57)【特許請求の範囲】
【請求項１】
入力データに含まれる同一あるいは類似の文脈の記号を寄せ集める並べ替え動作を行う第１の並べ替え手段と、
前記入力データに対して前記第１の並べ替え手段によって並べ替え動作を行うことによりデータの遷移回数が減少するか否かを前記並べ替え動作を行うことなく判定し、減少する旨の判定を行ったときに前記第１の並べ替え手段による並べ替え動作の実施を決定し、減少しない旨の判定を行ったときに前記第１の並べ替え手段による並べ替え動作の中止を決定する並べ替え動作適用判定手段と、
前記第１の並べ替え手段による並べ替え動作が行われない場合には、対応する前記入力データを出力し、前記第１の並べ替え手段による並べ替え動作が行われた場合には、対応する前記入力データと前記第１の並べ替え手段によって並べ替えが行われた後のデータの中から遷移回数が少ない方を選択的に出力するデータ選択手段と、
前記データ選択手段から出力されるデータに対してランレングス符号化処理を行うランレングス符号化手段と、
を備え、前記並べ替え動作適用判定手段は、前記入力データに含まれる同一あるいは類似の文脈の記号を、前記文脈の長さを制限して寄せ集める並べ替え動作を行う第２の並べ替え手段と、前記第２の並べ替え手段によって並べ替え動作を行った後のデータの遷移回数に基づいて、前記入力データに対して前記第１の並べ替え手段によって並べ替え動作を行った後のデータの遷移回数を予測する第１の遷移回数予測手段とを備え、前記第１の遷移回数予測手段によって予測した遷移回数に基づいて、前記第１の並べ替え手段によって並べ替え動作を行うことによりデータの遷移回数が減少するか否かの判定を行うことを特徴とするデータ圧縮装置。
【請求項２】
請求項１において、
前記第２の並べ替え手段は、Ｓ変換処理によってデータの並べ替えを行うことを特徴とするデータ圧縮装置。
【請求項３】
入力データに含まれる同一あるいは類似の文脈の記号を寄せ集める並べ替え動作を行う第１の並べ替え手段と、
前記入力データに対して前記第１の並べ替え手段によって並べ替え動作を行うことによりデータの遷移回数が減少するか否かを前記並べ替え動作を行うことなく判定し、減少する旨の判定を行ったときに前記第１の並べ替え手段による並べ替え動作の実施を決定し、減少しない旨の判定を行ったときに前記第１の並べ替え手段による並べ替え動作の中止を
決定する並べ替え動作適用判定手段と、
前記第１の並べ替え手段による並べ替え動作が行われない場合には、対応する前記入力データを出力し、前記第１の並べ替え手段による並べ替え動作が行われた場合には、対応する前記入力データと前記第１の並べ替え手段によって並べ替えが行われた後のデータの中から遷移回数が少ない方を選択的に出力するデータ選択手段と、
前記データ選択手段から出力されるデータに対してランレングス符号化処理を行うランレングス符号化手段と、
を備え、前記並べ替え動作適用判定手段は、前記入力データのエントロピーを測定するエントロピー測定手段と、前記エントロピー測定手段によって測定されたエントロピーの値に基づいて、前記入力データに対して前記第１の並べ替え手段によって並べ替え動作を行った後のデータの遷移回数を予測する第２の遷移回数予測手段とを備え、前記第２の遷移回数予測手段によって予測した遷移回数に基づいて、前記第１の並べ替え手段によって並べ替え動作を行うことによりデータの遷移回数が減少するか否かの判定を行うことを特徴とするデータ圧縮装置。
【請求項４】
請求項１〜３のいずれかにおいて、
前記第１の並べ替え手段は、Burrows-Wheeler変換処理によってデータの並べ替えを行うことを特徴とするデータ圧縮装置。
【請求項５】
請求項１〜４のいずれかにおいて、
前記入力データは、集積回路試験用のテストパターンデータであることを特徴とするデータ圧縮装置。
【請求項６】
データに含まれる同一あるいは類似の文脈の記号を寄せ集める第１の並べ替え処理と、ランレングス符号化処理とを組み合わせるデータ圧縮方法において、
前記第１の並べ替え処理を行うことなく前記第１の並べ替え処理を行うことによってデータの遷移回数が減少するか否かを判定する第１のステップと、
前記第１のステップにおいて前記遷移回数が減少する旨の判定がなされたときに、前記入力データに対して実際に前記第１の並べ替え処理を行う第２のステップと、
前記第２のステップにおいて前記第１の並べ替え処理が行われたときに、前記第１の並べ替え処理によって得られるデータの遷移回数と前記入力データの遷移回数とを比較して遷移回数が少ないデータを選択的に出力し、前記第１のステップにおいて前記遷移回数が減少しない旨の判定がなされたときに前記入力データを出力する第３のステップと、
前記第３のステップにおいて出力されたデータに対して前記ランレングス符号化処理を行う第４のステップと、
前記入力データに含まれる同一または類似の文脈の記号を前記文脈の長さを制限して寄せ集める第２の並べ替え処理を行う第５のステップと、
前記第５のステップにおいて行われる前記第２の並べ替え処理によって得られるデータの遷移回数に基づいて、前記第１の並べ替え処理によって得られるデータの遷移回数を予測する第６のステップと、
を有し、前記第６のステップにおいて予測された前記遷移回数に基づいて、前記第１のステップによる判定動作を行うことを特徴とするデータ圧縮方法。
【請求項７】
請求項６において、
前記第５のステップで行われる前記第２の並べ替え処理は、Ｓ変換処理であることを特徴とするデータ圧縮方法。
【請求項８】
データに含まれる同一あるいは類似の文脈の記号を寄せ集める第１の並べ替え処理と、ランレングス符号化処理とを組み合わせるデータ圧縮方法において、
前記第１の並べ替え処理を行うことなく前記第１の並べ替え処理を行うことによってデータの遷移回数が減少するか否かを判定する第１のステップと、
前記第１のステップにおいて前記遷移回数が減少する旨の判定がなされたときに、前記入力データに対して実際に前記第１の並べ替え処理を行う第２のステップと、
前記第２のステップにおいて前記第１の並べ替え処理が行われたときに、前記第１の並べ替え処理によって得られるデータの遷移回数と前記入力データの遷移回数とを比較して遷移回数が少ないデータを選択的に出力し、前記第１のステップにおいて前記遷移回数が減少しない旨の判定がなされたときに前記入力データを出力する第３のステップと、
前記第３のステップにおいて出力されたデータに対して前記ランレングス符号化処理を行う第４のステップと、
前記入力データのエントロピーを測定する第７のステップと、
前記第７のステップにおいて測定された前記エントロピーの値に基づいて、前記第１の並べ替え処理によって得られるデータの遷移回数を予測する第８のステップと、
を有し、前記第８のステップにおいて予測された前記遷移回数に基づいて、前記第１のステップによる判定動作を行うことを特徴とするデータ圧縮方法。
【請求項９】
請求項６〜８のいずれかにおいて、
前記第２のステップで行われる前記第１の並べ替え処理は、Burrows-Wheeler変換処理であることを特徴とするデータ圧縮方法。
【請求項１０】
請求項６〜９のいずれかにおいて、
前記入力データは、集積回路試験用のテストパターンデータであることを特徴とするデータ圧縮方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、集積回路試験で用いられるテストパターンデータ等の圧縮処理を行うデータ圧縮装置およびデータ圧縮方法に関する。
【０００２】
【従来の技術】
従来、集積回路試験のための膨大なテストパターンデータの圧縮を行う手法として、Burrows-Wheeler 変換処理とランレングス符号化処理とを組み合わせてデータの圧縮を行う手法が知られている。
【０００３】
Burrows-Wheeler 変換（以後、「ＢＷ変換」と称する）については、例えばBurrows M.and Wheeler D.,“A Block-sorting Lossless Data Compression Algorithm,”SRC Research Report 124,Digital Systems Research Center,Palo Alto,CA,May 1994 に記載されている。このＢＷ変換は、入力データに含まれる同一の文脈あるいは類似した文脈の記号を寄せ集める並べ替え動作を行うものである。ここで、「文脈」とは、入力データから任意に取り出したデータ列を表す。例えば、入力データが文字データである場合には、文脈は入力文字列から任意に取り出した文字列を表す。入力データ列が十分に長いとき、ＢＷ変換によって同一の記号が寄せ集められ、ＢＷ変換されたデータの遷移回数が元の入力データの遷移回数よりも小さくなる。ここで、「遷移回数」とは、データ列において隣り合う２つのデータが０から１、１からＸのように変化する回数を表す。このため、ＢＷ変換されたデータは、ランレングス符号化と組み合わせることによって効率よくデータの圧縮を行うことが可能となる。
【０００４】
具体的には、入カデータをＢＷ変換し、元の入カデータの遷移回数とＢＷ変換された後のデータの遷移回数とを比較し、より遷移回数が少ないデータに対してランレングス符号化を用いることによりテストパターンデータの圧縮が行われる。
【０００５】
【発明が解決しようとする課題】
ところで、上述した従来のデータ圧縮方法において、あるデータをＢＷ変換した後の遷移回数を正確に知ることは不可能であり、ＢＷ変換によって遷移回数が減少するか否かを確認するために入カデータを一度ＢＷ変換しているが、ＢＷ変換の処理速度は非常に低速であるため、データ圧縮処理に多くの時間がかかっていた。
【０００６】
特に、集積回路の集積度が向上するにつれて、集積回路を試験するテストパターンのデータサイズは年々増大しつづけている。また、集積回路のＡＳＩＣ（Application Specific Integrated Circuit ）化によって、集積回路の少量多品種化が進み、これに対応してテストパターンの種類も多くなる。このため、多くのテストパターンを実用的な処理時間で圧縮するために、より高速なテストパターン圧縮手法が望まれていた。
【０００７】
本発明は、このような点に鑑みて創作されたものであり、その目的は、データ圧縮処理の高速化が可能なデータ圧縮装置およびデータ圧縮方法を提供することにある。
【０００８】
【課題を解決するための手段】
上述した課題を解決するために、本発明のデータ圧縮装置およびデータ圧縮方法では、入力データに含まれる同一あるいは類似の文脈の記号を寄せ集める並べ替え処理を行ったときにデータの遷移回数が減少するか否かを、実際に並べ替え処理を行うことなくあらかじめ判定し、減少しないと判断した場合にこの並べ替え処理を中止する。したがって、並べ替え処理の対象となる入力データの数を減らすことができ、データ圧縮処理の高速化が可能となる。
【０００９】
特に、上述した並べ替え動作をBurrows-Wheeler 変換処理によって行うことが好ましい。また、集積回路試験用のテストパターンデータを圧縮対象とすることが好ましい。Burrows-Wheeler変換は、データ列の並べ替えに多くの時間を要するため、全ての入力データに対してこの並べ替え処理を行うのではなく、データの遷移回数が並べ替え処理を行ったときに減少しない入力データに対してはこの並べ替え処理を中止することによる処理時間短縮の効果が大きい。また、集積回路試験用のテストパターンは、ビットデータ‘１’と‘０’とが組合わさった膨大なデータであり、並べ替えによって同一のビットデータを連続して並べることができれば、その後に行われるランレングス符号化と組み合わせることにより、圧縮によってデータ量を大幅に減らすことができる。
【００１０】
また、データの遷移回数が減少するか否かについての上述した判定動作は、入力データの遷移回数に基づいて行うことが好ましい。入力データの遷移回数が少ない場合には、並べ替え処理を行ってもその遷移回数がさらに低減されることが期待できないため、このような場合には並べ替え処理を中止してもデータの圧縮率に影響がなく、並べ変え動作を中止した分だけデータ圧縮処理の高速化が可能となる。
【００１１】
また、データの遷移回数が減少するか否かについての上述した判定動作は、入力データに対して文脈の長さを制限して同一あるいは類似の文脈の記号を寄せ集める並べ替え動作（例えばＳ変換処理によるデータ並べ替え動作）を行った結果に基づいて行うことが好ましい。文脈の長さを制限した並べ替え処理によって得られたデータの遷移回数と文脈の長さを制限しない並べ替え処理によって得られたデータの遷移回数とは相関があるため、高速処理が可能な文脈を制限した並べ替え処理を行うことによって、文脈の長さを制限しない並べ替え処理によってデータの遷移回数が減少するか否かが判定でき、この判定結果に応じて文脈の長さを制限しない並べ替え処理を適宜中止することにより、不必要な並べ替え処理をほぼ正確に排除してデータ圧縮処理の大幅な高速化が可能になる。
【００１２】
また、データの遷移回数が減少するか否かについての上述した判定動作は、入力データのエントロピーの値に基づいて行うことが好ましい。入力データのエントロピーは、入力データ中で各記号が出現する確率を全記号について平均化したものに負号をつけたものであり、このエントロピーの大小と入力データに対して並べ替え処理を行った後のデータの遷移回数との間には相関があるため、このエントロピーを測定することによりデータ並べ替えによってデータの遷移回数が減少するか否かが判定でき、この判定結果に応じて文脈の長さを制限しない並べ替え処理を適宜中止することにより、不必要なデータ並べ替え処理をほぼ正確に排除してデータ圧縮処理の大幅な高速化が可能になる。
【００１３】
【発明の実施の形態】
本発明を適用した一実施形態のテストパターン圧縮装置は、入力されたテストパターンデータに対して、ＢＷ変換を適用すべきかどうかを高速な手段を用いて決定し、ＢＷ変換によって遷移回数が減少しない入力データヘのＢＷ変換の適用を中止することによって、圧縮の対象となるテストパターンを高速に圧縮することに特徴がある。以下、本発明を適用した一実施形態のテストパターン圧縮装置の詳細について、図面を参照しながら説明する。
【００１４】
〔第１の実施形態〕
図１は、本発明を適用した第１の実施形態のテストパターン圧縮装置の構成を示す図である。同図に示すように、本実施形態のテストパターン圧縮装置１０は、ＢＷ変換適用決定部１１、ＢＷ変換部１２、比較部１３、データ選択部１４、ランレングス圧縮部１５を含んで構成されている。
【００１５】
ＢＷ変換適用決定部１１は、入カデータの遷移回数φINを測定し、この遷移回数φINに基づいて、入カデータにＢＷ変換を適用するかどうかを決定する。具体的には、遷移回数φINが所定値以下の場合に、入力データに対してＢＷ変換を適用する旨が決定され、フラグｆ１に１がセットされる。反対に、遷移回数φINが所定値より大きい場合に、入力データに対してＢＷ変換を適用しない旨が決定され、フラグｆ１に０がセットされる。例えば所定値が１に設定されている場合を考えると、入力データの遷移回数φINが所定値以下、すなわち０または１の場合には、遷移回数が既に下限値であるため、ＢＷ変換によって遷移回数を低減することは望めない。したがって、このような遷移回数を有する入力データに対してＢＷ変換を行う必要はなく、ＢＷ変換を行わない旨の決定がなされる。
【００１６】
ＢＷ変換部１２は、ＢＷ変換適用決定部１１によってＢＷ変換を適用する旨の決定がなされたときに、入力データに対してＢＷ変換を行うとともに、このＢＷ変換後のデータの遷移回数φBWを測定する。比較部１３は、ＢＷ変換適用決定部１１によって得られた入カデータの遷移回数φINと、ＢＷ変換部１２によって得られたＢＷ変換後のデータの遷移回数φBWとを比較する。φIN＞φBWの場合にはフラグｆ２に１がセットされ、φIN≦φBWの場合にはフラグｆ２に０がセットされる。
【００１７】
データ選択部１４は、入力データとこれをＢＷ変換した後のデータとが入力されており、比較部１３による比較結果に基づいて、より遷移回数の小さなデー夕を選択する。具体的には、比較部１３によってセットされたフラグｆ２が１の場合にはＢＷ変換されたデータが選択され、フラグｆ２が０の場合には入力データが選択される。ランレングス圧縮部１５は、データ選択部１４によって選択されたデータに対してランレングス符号化によるデータ圧縮を行う。
【００１８】
上述したＢＷ変換適用決定部１１が並べ替え動作適用判定手段に、ＢＷ変換部１２が第１の並べ替え手段に、データ選択部１４がデータ選択手段にそれぞれ対応する。
【００１９】
次に、本実施形態のテストパターン圧縮装置１０を用いてテストパターンの圧縮を行う場合の動作を説明する。テストパターン圧縮装置１０は、所定のサイズＬのデータを一つの入力単位として各種の処理を行っており、Ｌより大きなデータについては、あらかじめサイズＬの複数のサブデータに分割され、この分割された各サブデータがテストパーン圧縮装置１０に入力される。
【００２０】
図２は、本実施形態のテストパターン圧縮装置１０において行われるテストパターンの圧縮動作の動作手順を示す流れ図である。まず、ＢＷ変換適用決定部１１は、入力されたテストパターンデータの遷移回数ｍを測定して、（ステップ１０１）、入カデータへのＢＷ変換の適用を決定する（ステップ１０２）。入力データにＢＷ変換を適用するときはフラグｆ１に１が、適用しないときはフラグｆ１に０がそれぞれ設定される。
【００２１】
次に、ＢＷ変換部１２は、フラグｆ１が１であるか否かを判定する（ステップ１０３）。フラグｆ１が１の場合には、ＢＷ変換部１２は、入カデータに対してＢＷ変換処理を行った後に（ステップ１０４）、ＢＷ変換されたデータの遷移回数ｎを測定してその測定値をφBWにセットする（ステップ１０５）。一方、フラグｆ１が０の場合には、ＢＷ変換部１２は、φBWに遷移回数の上限値である入カデータサイズＬをセットする（ステップ１０６）。
【００２２】
次に、比較部１３は、φINとφBWの値を比較し、比較結果に基づいてフラグｆ２をセットする（ステップ１０７）。具体的には、比較部１３は、φIN≦φBWの場合にフラグｆ２に０を、φIN＞φBWの場合にフラグｆ２に１をセットする。次に、データ選択部１４は、フラグｆ２が１であるか否かを判定し（ステップ１０８）、フラグｆ２が１の場合にはＢＷ変換されたデータを選択し（ステップ１０９）、フラグｆ２が０の場合には入力データを選択する（ステップ１１０）。
【００２３】
次に、ランレングス圧縮部１５は、データ選択部１４によって選択されたデータに対して、ランレングス符号化を用いた圧縮処理を行って（ステップ１１１）、圧縮データを出力し（ステップ１１２）、一連のデータ圧縮処理が終了する。なお、圧縮されたデータを元のテストパターンデータに伸張するために、ランレングス圧縮部１５から出力された圧縮データには、ランレングス符号化された圧縮データがＢＷ変換されたものであるか否かを示すフラグｆ２が付加されている。
【００２４】
このようにして、本実施形態のテストパターン圧縮装置１０によって圧縮されたデータは、この圧縮データに付加されたフラグｆ２が１の場合には、ランレングス復号化した後にＢＷ逆変換を行うことによって完全に元のテストパターンデータに伸張することができ、フラグｆ２が０の場合には、ランレングス復号化のみを行うことによって完全に元のテストパターンデータに伸張することができる。
【００２５】
次に、データ圧縮に際して行われるＢＷ変換処理およびランレングス符号化処理と、データ伸張に際して行われるランレングス復号化処理および逆ＢＷ変換処理について、具体例に基づいて説明する。
【００２６】
図３は、ＢＷ変換部１２において行われるＢＷ変換処理の動作手順を示す流れ図である。まず、ＢＷ変換部１２は、入力文字列Ｓを取得し、入力文字列のサイズ（長さ）をｎにセットする（ステップ２０１）。以下では、例えばｎ＝６とした６文字の入力文字列Ｓとして‘ａｂｒａｃａ’を用いて説明する。
【００２７】
次に、ＢＷ変換部１２は、取得した入力文字列Ｓに対応するｎ個の循環文字列（サイクリックにシフトした文字列）を生成する（ステップ２０２）。循環文字列とは、図４（Ａ）に示すように、文字列の最初の文字をサイクリックに最後尾に移動した文字列をいう。ここで用いた文字列Ｓ（‘ａｂｒａｃａ’）の例では、図４（Ｂ）に示すように、６つの循環文字列が得られる。
【００２８】
次に、ＢＷ変換部１２は、ステップ２０２で得られた６つの循環文字列を、辞書に登録する順番に並べ替えて行列Ｍを作成する（ステップ２０３）。Ｓ＝‘ａｂｒａｃａ’の例では、はじめに‘ａａ’、次に‘ａｂ’、つづいて‘ａｃ’というように、図５に示すように並べ替えられる。
【００２９】
次に、ＢＷ変換部１２は、作成された行列Ｍに基づいて、行列Ｍの最後列から得られる最終文字列Ｌと、入力文字列Ｓに等しい行番号Ｉを取得する（ステップ２０４、２０５）。Ｓ＝‘ａｂｒａｃａ’の例では、図６に示すように、Ｌ＝‘ｃａｒａａｂ’、Ｉ＝２が得られる。
【００３０】
以上のように、Ｓ＝‘ａｂｒａｃａ’という文字列が最終文字列Ｌ＝‘ｃａｒａａｂ’と行番号Ｉ＝２というデータに変換される。最後に、ＢＷ変換部１２は、このＢＷ変換されたデータを出力し（ステップ２０６）、処理を終了する。
【００３１】
図７は、ランレングス圧縮部１５において行われるランレングス符号化処理の動作手順を示す流れ図である。まず、ランレングス圧縮部１５は、入力文字列から１文字データを取得してｃｈにセットし（ステップ３０１）、ランレングス符号を生成するための記号の初期値ｉｎｉｔｉａｌにこの取得した文字ｃｈをセットして、カウント数ｉを０にリセットする（ステップ３０２）。
【００３２】
次に、ランレングス圧縮部１５は、入カデータから次の１文字を取得してｃｈにセットし（ステップ３０３）、カウント数ｉに１を加算して文字数をカウントアップする（ステップ３０４）。また、ランレングス圧縮部１５は、取得した文字ｃｈと初期値ｉｎｉｔｉａｌとが一致しているか否かを判定し（ステップ３０５）、一致している場合には、入力データが残っているか否かを判定する（ステップ３０６）。残っている場合には、上述したステップ３０３以降の処理が繰り返される。
【００３３】
また、文字ｃｈと初期値ｉｎｉｔｉａｌとが一致していない場合（ステップ３０５において否定判断された場合）、あるいは入力データが残っていない場合（ステップ３０６において否定判断された場合）には、次にランレングス圧縮部１５は、初期値ｉｎｉｔｉａｌ と得られたカウント数ｉを用いて符号化処理を行う（ステップ３０７）。その後、ランレングス圧縮部１５は、入カデータが残っているか否かを判定し（ステップ３０８）、入カデータが残っている場合には上述したステップ３０２以降の処理を繰り返し、入力データが残っていない場合には、圧縮データを出力し（ステップ３０９）、処理を終了する。
【００３４】
図８は、ランレングス復号化処理の動作手順を示す流れ図であり、例えば図示しないランレングス復号化部によってランレングス符号を伸張して元の文字列を得る場合の動作手順が示されている。まず、ランレングス復号化部は、圧縮データからランレングス符号を一つ取得し（ステップ４０１）、ランレングス符号から初期値ｉｎｉｔｉａｌと文字の連続回数ｎを取得する（ステップ４０２）。次に、ランレングス復号化部は、初期値ｉｎｉｔｉａｌを連続回数ｎだけコピー（ステップ４０３）した後に、ランレングス符号が残っているか否かを判定し（ステップ４０４）、残っている場合には上述したステップ４０１以降の処理を繰り返す。また、ランレングス符号が残っていない場合には、ランレングス復号化部は、伸張されたデータを出力して（ステップ４０５）、処理を終了する。
【００３５】
図９は、逆ＢＷ変換処理の動作手順を示す流れ図であり、例えば図示しない逆ＢＷ変換部によって逆ＢＷ変換を行う場合の動作手順が示されている。以下では、上述したＢＷ変換の説明で用いた最終文字列Ｌ＝‘ｃａｒａａｂ’、行番号Ｉ＝２の例を用いて説明を行うものとする。まず、逆ＢＷ変換部は、変換データを取得し、変換データから得られる最終文字列Ｌと行番号Ｉ、文字列の長さｎをセットする（ステップ５０１）。上述した例では、Ｌ＝‘ｃａｒａａｂ’、Ｉ＝２、ｎ＝６が設定される。
【００３６】
次に、逆ＢＷ変換部は、取得した最終文字列Ｌの文字を並べ替えて文字列Ｆを生成する（ステップ５０２）。Ｌ＝‘ｃａｒａａｂ’の例では、文字列Ｆとして‘ａａａｂｃｒ’が生成される。また、逆ＢＷ変換部は、最終文字列Ｌと文字列Ｆのｉ番目の各文字Ｌ［ｉ］、Ｆ［ｉ］の対応を示す行列Ｔを作成する（ステップ５０３）。ここで、ＴはＬ［Ｔ［ｉ］］＝Ｆ［ｉ］を満たす行列である。また、もし最終文字列Ｌの中で同じ文字ｃｈが使われている場合には、最終文字列Ｌにおけるｃｈが文字列Ｆにおけるｃｈと同じ順序となるようにそれぞれを対応させる。したがって、Ｌ＝‘ｃａｒａａｂ’、Ｆ＝‘ａａａｂｃｒ’の例では、図１０に示すように、Ｔ＝［２４５６１３］と得られる。
【００３７】
次に、逆ＢＷ変換部は、カウント数ｉを０にリセットした後（ステップ５０４）、カウント数ｉに１を加算し（ステップ５０５）、文字列Ｆ、行番号Ｉ、行列Ｔから元の入力文字列Ｓのｉ番目の文字Ｓ［ｉ］を復元して出力する（ステップ５０６、５０７）。ここで、Ｓ［ｉ］はＳ［ｉ］＝Ｆ［Ｔi-1 ［Ｉ］］，Ｔ0 ［Ｉ］＝Ｉ，Ｔi+1 ［Ｉ］＝Ｔ［Ｔi ［Ｉ］］で表される。
【００３８】
次に、逆ＢＷ変換部は、入力文字列Ｓの復元されていない文字があるか、すなわち、ｉ＜ｎを満たすか否かを判定し（ステップ５０８）、復元されていない文字が残っている場合（ｉ＜ｎを満たす場合）には上述したステップ５０５以降の処理を繰り返し、最後の文字まで復元されている場合（ｉ＝ｎの場合）には処理を終了する。ここで用いた例では、図１１に示すように、Ｓ［１］＝‘ａ’、Ｓ［２］＝‘ｂ’、Ｓ［３］＝‘ｒ’、Ｓ［４］＝‘ａ’、Ｓ［５］＝‘ｃ’、Ｓ［６］＝‘ａ’となる。したがって、もとの入力文字列Ｓ＝‘ａｂｒａｃａ’が復元される。
【００３９】
このように、本実施形態のテストパターン圧縮装置１０では、圧縮対象となるテストパターンデータが入力されたときに、入力データの全てに対してＢＷ変換を行うのではなく、遷移回数が所定値より少なく、ＢＷ変換によってデータ圧縮が期待できない入力データに対してはＢＷ変換を行わずに、入力データに対して直接ランレングス符号化処理を行っている。したがって、比較的時間のかかるＢＷ変換の回数を減らすことができ、テストパターン圧縮装置１０全体におけるデータ圧縮処理の高速化が可能になる。
【００４０】
〔第２の実施形態〕
上述した第１の実施形態のテストパターン圧縮装置１０では、入力データの遷移回数に基づいてＢＷ変換を行うか否かを決定したが、この入力データの遷移回数がある程度大きな値になると、遷移回数だけではＢＷ変換によってデータの遷移回数が減少するのか増加するのかがわからないため、入力データの遷移回数以外の情報に基づいてＢＷ変換を行うか否かを決定するようにしてもよい。
【００４１】
図１２は、本発明を適用した第２の実施形態のテストパターン圧縮装置の構成を示す図である。同図に示すように、本実施形態のテストパターン圧縮装置１０Ａは、ＢＷ変換適用決定部２０、ＢＷ変換部１２、比較部１３、データ選択部１４、ランレングス圧縮部１５を含んで構成されている。このテストパターン圧縮装置１０Ａは、図１に示したＢＷ変換適用決定部１１をＢＷ変換適用決定部２０に置き換えた構成を有している。ＢＷ変換適用決定部２０は、入力データに対してＳ変換処理を行い、その結果に基づいてＢＷ変換を行うか否かを決定しており、遷移回数測定部２１、Ｓ変換部２２、遷移回数計算部２３、比較部２４を含んで構成されている。
【００４２】
Ｓ変換は、ＢＷ変換から派生した高速な変換アルゴリズムであり、Michael  Schindlerによって発表された。例えばM.Schindler,“A Fast Block-sorting Algorithm for Lossless Data Compression,”Data Compression Conference 1996,Snowbird Utah,March 1996 に記載されている。このＳ変換は、ソーティングにおける文字列（文脈）の長さを制限することによって、変換の処理速度を向上させたものである。Ｓ変換の具体的な内容については後述する。
【００４３】
遷移回数測定部２１は、入カデータの遷移回数φINを測定する。Ｓ変換部２２は、入カデータをＳ変換し、Ｓ変換後のデータの遷移回数φS を測定する。遷移回数計算部２３は、Ｓ変換部２２によって測定された遷移回数φS に基づいて、ＢＷ変換後の遷移回数を計算する。一般に、Ｓ変換後のデータの遷移回数φS は、文脈の長さを制限したために、ＢＷ変換後の遷移回数φBWより大きくなる。したがって、Ｓ変換後のデータの遷移回数φSは、ＢＷ変換後のデータの遷移回数φBWに所定の定数ｋ（＞１）を乗算することにより得ることができる。なお、この定数ｋは、多くのデータに対して行った、ＢＷ変換後の遷移回数φBWとＳ変換後の遷移回数φS との比較結果（φS ＝ｋ×φBW）から統計的に得ることが好ましい。例えば、Ｓ変換後の平均の遷移回数がＢＷ変換後の平均の遷移回数の２倍であるデータに対しては、ｋ＝２となる。
【００４４】
比較部２４は、遷移回数測定部２１によって測定された入カデータの遷移回数φINと、遷移回数計算部２３によって計算されたＢＷ変換後のデータの遷移回数φS ／ｋとを比較し、この比較結果に基づいてフラグｆ１に１あるいは０をセットする。φIN＞φS ／ｋの場合にはフラグｆ１に１がセットされ、φIN≦φS ／ｋの場合にはフラグｆ１に０がセットされる。
【００４５】
なお、ＢＷ変換適用決定部２０以外の各構成部は、対応する第１の実施形態の各構成と基本的に同じ動作を行っている。すなわち、ＢＷ変換部１２は、ＢＷ変換適用決定部２０によってフラグｆ１が１にセットされたときに、入力データに対してＢＷ変換を行うとともに、このＢＷ変換後のデータの遷移回数φBWを測定する。また、比較部１３は、入カデータの遷移回数φINとＢＷ変換後のデータの遷移回数φBWとを比較し、データ選択部１４は、この比較結果に基づいて入力データとＢＷ変換後のデータのいずれかを選択的に出力する。そして、ランレングス圧縮部１５は、データ選択部１４から出力されたデータに対してランレングス符号化を行ってデータを圧縮する。
【００４６】
上述したＢＷ変換部１２が第１の並べ替え手段に、データ選択部１４がデータ選択手段に、ＢＷ変換適用決定部２０が並べ替え動作適用判定手段に、Ｓ変換部２２が第２の並べ替え手段に、遷移回数計算部２３が第１の遷移回数予測手段にそれぞれ対応する。
【００４７】
次に、本実施形態のテストパターン圧縮装置１０Ａを用いてテストパターンの圧縮を行う場合の動作を説明する。テストパターン圧縮装置１０Ａは、所定のサイズＬのデータを一つの入力単位として各種の処理を行っており、Ｌより大きなデータについては、あらかじめサイズＬの複数のサブデータに分割され、この分割された各サブデータがテストパーン圧縮装置１０Ａに入力される。
【００４８】
図１３は、本実施形態のテストパターン圧縮装置１０Ａにおいて行われるテストパターンの圧縮動作の動作手順を示す流れ図である。まず、遷移回数測定部２１は、入力されたテストパターンデータの遷移回数ｍを測定してその値をφINにセットする（ステップ６０１）。また、Ｓ変換部２２は、入カデータに対してＳ変換処理を行った後に（ステップ６０２）、Ｓ変換されたデータの遷移回数ｔを測定し、その値をφS にセットする（ステップ６０３）。Ｓ変換処理では、並べ替える文脈の長さを任意に設定できるが、ここで用いる文脈長Ｎは、ある固定値でもよいし、外部から入力して任意の値に設定することもできる。
【００４９】
次に、遷移回数計算部２３は、Ｓ変換後のデータの遷移回数φS と定数ｋを用いてＢＷ変換後の遷移回数の見積もり値（予測値）を計算し、その計算結果φS ／ｋをφにセットする（ステップ６０４）。ここで、定数ｋは、ある固定値でもよいし、外部から入力して任意の値に設定することもできる。次に、比較部２４は、入力データの遷移回数φINと、遷移回数計算部２３によって見積もったＢＷ変換後のデータの遷移回数φ（＝φS ／ｋ）とを比較し、比較結果に基づいてフラグｆ１をセットする（ステップ６０５）。具体的には、比較部２４は、φIN≦１またはφIN≦φS ／ｋの場合にフラグｆ１に０を、φIN＞φS ／ｋの場合にフラグｆ１に１をセットする。
【００５０】
次に、ＢＷ変換部１２は、上述したフラグｆ１が１にセットされているか否かを判定し（ステップ６０６）、フラグｆ１が１の場合には入力データに対してＢＷ変換処理を行った後に（ステップ６０７）、ＢＷ変換されたデータの遷移回数ｎを測定してその値をφBWにセットする（ステップ６０８）。一方、フラグｆ１が０の場合には、ＢＷ変換部１２は、φBWに遷移回数の上限値である入カデータサイズＬをセットする（ステップ６０９）。
【００５１】
次に、比較部１３は、φINとφBWの値を比較し、比較結果に基づいてフラグｆ２をセットする（ステップ６１０）。具体的には、比較部１３は、φIN≦φBWの場合にフラグｆ２に０を、φIN＞φBWの場合にフラグｆ２に１をセットする。次に、データ選択部１４は、フラグｆ２が１であるか否かを判定し（ステップ６１１）、フラグｆ２が１の場合にはＢＷ変換されたデータを選択し（ステップ６１２）、フラグｆ２が０の場合には入カデータを選択する（ステップ６１３）。
【００５２】
次に、ランレングス圧縮部１５は、データ選択部１４によって選択されたデータに対して、ランレングス符号化を用いた圧縮処理を行って（ステップ６１４）、圧縮データを出力し（ステップ６１５）、一連のデータ圧縮処理が終了する。なお、圧縮されたデータを元のテストパターンデータに伸張するために、ランレングス圧縮部１５から出力される圧縮データには、ランレングス符号化された圧縮データがＢＷ変換されたものであるか否かを示すフラグf２が付加されている。
【００５３】
このようにして本実施形態のテストパターン圧縮装置１０Ａによって圧縮されたデータは、第１の実施形態のテストパターン圧縮装置１０から出力される圧縮データと同様に、圧縮データに付加されたフラグｆ２が１の場合には、ランレングス復号化した後ＢＷ逆変換を行うことによって完全に元のテストパターンデータに伸張でき、フラグｆ２が０の場合には、ランレングス復号化のみを行うことによって完全にもとのテストパターンデータに伸張できる。
【００５４】
次に、データ圧縮に際して行われるＳ変換処理について、具体例に基づいて説明する。図１４は、Ｓ変換部２２において行われるＳ変換処理の動作手順を示す流れ図である。まず、Ｓ変換部２２は、入力文字列Ｓを取得し、入力文字列のサイズ（長さ）をｎにセットする（ステップ７０１）。以下では、例えばｎ＝６とした６文字の入力文字列Ｓとして‘ａｂａａｂｃ’を用いて説明する。
【００５５】
次に、Ｓ変換部２２は、取得した入力文字列Ｓのｎ個の文字と、それらの文字の直後の文脈を列挙する（ステップ７０２）。ここで、列挙する文脈の長さは任意に設定することができ、以下では例えば文脈の長さを２とした場合を考えるものとする。また、文脈とは、入力文字列Ｓから任意かつ循環的に取り出した文字列をいい、文字列Ｓ（‘ａｂａａｂｃ’）の例では、図１５に示すように、６つの文字とこれらの直後の６つの文脈が得られる。
【００５６】
次に、Ｓ変換部２２は、ステップ７０２で得られた６つの文脈を、辞書に登録する順番に並べ替え、同時に文脈の直前の文字も文脈と一緒に並べ替える（ステップ７０３）。Ｓ＝‘ａｂａａｂｃ’の例では、はじめに‘ａａ’、次に‘ａｂ’というように文脈が並べ替えられ、直前の文字は図１６に示すように並べ替えられる。このとき、同一の文脈が複数存在する場合には、入力文字列Ｓにおいて、より後ろにある文脈をより前に並べる。例えば、図１６に示した文脈‘ａｂ’の例では、２番目の文脈‘ａｂ’は文字列Ｓの６番目の文字‘ｃ’の直後の文脈であり、３番目の文脈‘ａｂ’は文字列Ｓの３番目の文字‘ａ’の直後の文脈である。
【００５７】
次に、Ｓ変換部２２は、ステップ７０３で並べ替えられた文脈の直前の文字（直前文字列Ｐ）と、入力文字列Ｓの最初の２文字（文脈の長さと等しい）を初期文字列Ｉとして取得する（ステップ７０４、７０５）。Ｓ＝‘ａｂａａｂｃ’の例では、図１７に示すように、直前文字列Ｐとして‘ｂｃａａａｂ’が、初期文字列Ｉとして‘ａｂ’が得られる。このように、Ｓ＝‘ａｂａａｂｃ’という文字列は、直前文字列Ｐ＝‘ｂｃａａａｂ’と、初期文字列Ｉ＝‘ａｂ’というデータに変換される。最後に、Ｓ変換部２２は、Ｓ変換されたデータを出力し（ステップ７０６）、Ｓ変換に関する一連の処理を終了する。
【００５８】
このように、本実施形態のテストパターン圧縮装置１０Ａでは、圧縮対象となるテストパターンデータが入力されたときに、入力データの全てに対してＢＷ変換を行うのではなく、入力データに対してＳ変換を行うことによって見積もったＢＷ変換後のデータの遷移回数が入力データの遷移回数よりも多くなる場合にはＢＷ変換を行わずに、入力データに対して直接ランレングス符号化処理を行っている。したがって、比較的時間のかかるＢＷ変換の回数を減らすことができ、テストパターン圧縮装置１０Ａ全体におけるデータ圧縮処理の高速化が可能になる。
【００５９】
ところで、単位長さＬのデータに対するＳ変換の処理時間をＴS 、同じ長さＬのデータに対するＢＷ変換の処理速度をＴBWとする。入力データを単位長さＬのＮ個のサブデータに分割して、分割された各サブデータに対してＢＷ変換およびランレングス符号化を用いて圧縮処理を行うものとすると、単にＢＷ変換処理とランレングス符号化処理とを組み合わせた従来の圧縮方法では、
Ｎ×（ＴBW＋ＴRLC ）
の時間が必要であった。ここで、ＴRLC は、単位長さＬのデータに対するランレングス符号化の処理時間を表す。これに対し、Ｓ変換を併用する本実施形態の圧縮手法では、
Ｎ×ＴS ＋（Ｎ−ｎ）×ＴBW＋Ｎ×ＴRLC
＝Ｎ×（ＴS ＋TBW＋ＴRLC ）−ｎ×TBW
の時間が必要である。ここでｎは、ＢＷ変換の適用を中止した回数を示す。したがって、本実施形態のテストパターン圧縮装置１０Ａを用いることにより、
ｎ×ＴBW−Ｎ×ＴS 
の時間を削減することができる。通常、Ｓ変換はＢＷ変換より数十倍から数百倍高速であるため、ほぼＢＷ変換の適用を中止した分（ｎ×ＴBW）だけ処理時間を削減することが可能である。
【００６０】
ＢＷ変換とランレングス符号化のみを用いる従来の圧縮手法と、ＢＷ変換とランレングス符号化およびＳ変換を用いた本実施形態の圧縮手法の各処理時間の比較例を以下に示す。なお、実際の測定には、１００ピンのＣＩＣＳマイコン用の３つのテストパターンデータと、１４４ピンのディスクコントローラ用の２つのテストパターンデータと、１４４ピンのＲＩＳＣマイコン用の３つのテストパターンデータの合計８つのテストパターンデータを用いた。
【００６１】
図１８は、実際の集積回路試験で用いられるテストパターンデータを入力データとして、ＢＷ変換後のデータの遷移回数とＳ変換後のデータの遷移回数とを比較した結果を示す図である。同図に示すように、Ｓ変換後のデータの平均遷移回数は、並べ替えに用いる文脈長Ｌが長いほど小さくなって、文脈長Ｌが８の場合にはＢＷ変換後のデータの平均遷移回数の約２．５倍に、文脈長Ｌが１６の場合にはＢＷ変換後のデータの平均遷移回数の約１．８倍になる。Ｓ変換後のデータの遷移回数からＢＷ変換後のデータの遷移回数を見積もる場合の定数ｋは、これらの倍率に基づいて設定することができる。
【００６２】
図１９は、実際の集積回路試験で用いられるテストパターンデータを入力データとして、ＢＷ変換とＳ変換のそれぞれの変換速度を比較した結果を示す図である。同図に示すように、Ｓ変換の速度は、文脈の長さに応じてＢＷ変換のおよそ１０倍（文脈長Ｌ＝１６）から１００倍（文脈長Ｌ＝８）、６８０倍（文脈長Ｌ＝１）と非常に高速である。したがって、Ｓ変換を用いてＢＷ変換後の遷移回数を予測する本実施形態のテストパターン圧縮方法によれば、従来の圧縮方法に比べて圧縮処理時間の大幅な短縮が期待できる。
【００６３】
図２０は、本実施形態の圧縮方法の処理時間と、ＢＷ変換とランレングス符号化を組み合わせた従来の圧縮方法の処理時間とを比較した結果を示す図である。同図において、Ｋ１、Ｋ２、Ｋ３はＣＩＳＣマイコン用の各テストパターンに  、Ａ１、Ａ２はディスクコントローラの各テストパターンに、Ｓ１、Ｓ２、Ｓ３はＲＩＳＣマイコンの各テストパターンにそれぞれ対応している。また、文脈長Ｌを８としてＳ変換を行った場合の本実施形態の測定結果には斜線を付して示してある。図２０に示すように、Ｓ変換を用いる本実施形態のテストパターン圧縮方法によれば、従来のテストパターン圧縮方法に比べて、平均で約７２％処理時間を短縮することができる。
【００６４】
〔第３の実施形態〕
上述した第２の実施形態のテストパターン圧縮装置１０Ａでは、ＢＷ変換後のデータの遷移回数をＳ変換後のデータの遷移回数に基づいて予測したが、Ｓ変換後のデータの遷移回数を測定する代わりに、入力データのエントロピーを計算し、この計算結果に基づいてＢＷ変換後のデータの遷移回数を予測するようにしてもよい。
【００６５】
図２１は、本発明を適用した第３の実施形態のテストパターン圧縮装置の構成を示す図である。同図に示すように、本実施形態のテストパターン圧縮装置１０Ｂは、ＢＷ変換適用決定部３０、ＢＷ変換部１２、比較部１３、データ選択部１４、ランレングス圧縮部１５を含んで構成されている。このテストパターン圧縮装置１０Ｂは、図１に示したＢＷ変換適用決定部１０をＢＷ変換適用決定部３０に置き換えた構成を有している。ＢＷ変換適用決定部３０は、入力データのエントロピー計算を行い、その結果に基づいてＢＷ変換を行うか否かを決定しており、遷移回数測定部３１、エントロピー測定部３２、遷移回数予測部３３、比較部３４を含んで構成されている。
【００６６】
遷移回数測定部３１は、入カデータの遷移回数φINを測定する。エントロピー測定部３２は、入カデータのエントロピーＨを測定する。エントロピーＨは、入カデータ中に現れる各記号の出現確率ｐi （ｉ＝１，…，Ｎ）（Ｎは入カデータ中に出現する記号の種類数）を測定することにより、
【００６７】
【数１】
0003860910.tif 000002
【００６８】
によって計算される。
【００６９】
遷移回数予測部３３は、エントロピー測定部３２によって計算されたエントロピーＨに基づいて、ＢＷ変換後の遷移回数の予測値φH を計算する。上述したエントロピーＨは、入力データ中で各記号が出現する確率を全記号について平均化したものに負号をつけたものである。したがって、エントロピーＨの値が小さいということは、入力データ中に同じ記号が多く含まれているということであり、この入力データをＢＷ変換することによって遷移回数が少ないデータが得られる。反対に、エントロピーＨの値が大きいということは、入力データ中に同じ記号があまり多くは含まれていないということであり、この入力データをＢＷ変換することによって遷移回数が多いデータが得られる。このようにエントロピーＨとＢＷ変換後のデータの遷移回数との間には相関があり、所定の予測関数Ｆ（Ｈ）を用いることにより、ＢＷ変換後のデータの遷移回数の予測値ｔ（＝Ｆ（Ｈ））を計算することができる。なお、予測関数Ｆは、エントロピーと遷移回数の統計的解析から得ることができる。
【００７０】
比較部３４は、遷移回数測定部３１によって測定された入カデータの遷移回数φINと、遷移回数予測部３３によって得られたＢＷ変換後のデータの遷移回数の予測値φH を比較し、この比較結果に基づいてフラグｆ１に１あるいは０をセットする。φIN＞φH の場合にはフラグｆ１に１がセットされ、φIN≦φH の場合にはフラグｆ１に０がセットされる。
【００７１】
なお、ＢＷ変換適用決定部３０以外の各構成部は、対応する第１の実施形態の各構成と基本的に同じ動作を行っている。すなわち、ＢＷ変換部１２は、ＢＷ変換適用決定部３０によってフラグｆ１が１にセットされたときに、入力データに対してＢＷ変換を行うとともに、このＢＷ変換後のデータの遷移回数φBWを測定する。また、比較部１３は、入カデータの遷移回数φINとＢＷ変換後のデータの遷移回数φBWとを比較し、データ選択部１４は、この比較結果に基づいて入力データとＢＷ変換後のデータのいずれかを選択的に出力する。そして、ランレングス圧縮部１５は、データ選択部１４から出力されたデータに対してランレングス符号化を行ってデータを圧縮する。
【００７２】
上述したＢＷ変換部１２が第１の並べ替え手段に、データ選択部１４がデータ選択手段に、ＢＷ変換適用決定部３０が並べ替え動作適用判定手段に、エントロピー測定部３２がエントロピー測定手段に、遷移回数予測部３３が第２の遷移回数予測手段にそれぞれ対応する。
【００７３】
次に、本実施形態のテストパターン圧縮装置１０Ｂを用いてテストパターンの圧縮を行う場合の動作を説明する。テストパターン圧縮装置１０Ｂは、所定のサイズＬのデータを一つの入力単位として各種の処理を行っており、Ｌより大きなデータについては、あらかじめサイズＬの複数のサブデータに分割され、この分割された各サブデータがテストパーン圧縮装置１０Ｂに入力される。
【００７４】
図２２は、本実施形態のテストパターン圧縮装置１０Ｂにおいて行われるテストパターンの圧縮動作の動作手順を示す流れ図である。まず、遷移回数測定部３１は、入力されたテストパターンデータの遷移回数ｍを測定してその値をφINにセットする（ステップ８０１）。また、エントロピー測定部３２は、エントロピーｈを測定し、その値をＨにセットする（ステップ８０２）。
【００７５】
次に、遷移回数予測部３３は、エントロピー測定部３２によって計算されたエントロピーＨに基づいて、ＢＷ変換後のデータの遷移回数の予測値ｔ（ｔ＝Ｆ（Ｈ））を計算し、その値をφH にセットする（ステップ８０３）。次に、比較部３４は、入力データの遷移回数φINと、遷移回数予測部３３によって予測された遷移回数φH とを比較し、比較結果に基づいてフラグｆ１をセットする（ステップ８０４）。具体的には、比較部３４は、φIN≦１またはφIN≦φH の場合にフラグｆ１に０を、φIN＞φH の場合にフラグｆ１に１をセットする。
【００７６】
次に、ＢＷ変換部１２は、上述したフラグｆ１が１にセットされているか否かを判定し（ステップ８０５）、フラグｆ１が１の場合には入力データに対してＢＷ変換処理を行った後に（ステップ８０６）、ＢＷ変換されたデータの遷移回数ｎを測定してその値をφBWにセットする（ステップ８０７）。一方、フラグｆ１が０の場合には、ＢＷ変換部１２は、φBWに遷移回数の上限値である入カデータサイズＬをセットする（ステップ８０８）。
【００７７】
次に、比較部１３は、φINとφBWの値を比較し、比較結果に基づいてフラグｆ２をセットする（ステップ８０９）。具体的には、比較部１３は、φIN≦φBWの場合にフラグｆ２に０を、φIN＞φBWの場合にフラグｆ２に１をセットする。次に、データ選択部１４は、フラグｆ２が１であるか否かを判定し（ステップ８１０）、フラグｆ２が１の場合にはＢＷ変換されたデータを選択し（ステップ８１１）、フラグｆ２が０の場合には入カデータを選択する（ステップ８１２）。
【００７８】
次に、ランレングス圧縮部１５は、データ選択部１４によって選択されたデータに対して、ランレングス符号化を用いた圧縮処理を行って（ステップ８１３）、圧縮データを出力し（ステップ８１４）、一連のデータ圧縮処理が終了する。なお、圧縮されたデータを元のテストパターンデータに伸張するために、ランレングス圧縮部１５から出力される圧縮データには、ランレングス符号化された圧縮データがＢＷ変換されたものであるか否かを示すフラグf２が付加されている。
【００７９】
このようにして本実施形態のテストパターン圧縮装置１０Ｂによって圧縮されたデータは、第１の実施形態のテストパターン圧縮装置１０等から出力される圧縮データと同様に、圧縮データに付加されたフラグｆ２が１の場合には、ランレングス復号化した後ＢＷ逆変換を行うことによって完全に元のテストパターンデータに伸張でき、フラグｆ２が０の場合には、ランレングス復号化のみを行うことによって完全にもとのテストパターンデータに伸張することができる。
【００８０】
このように、本実施形態のテストパターン圧縮装置１０Ｂでは、圧縮対象となるテストパターンデータが入力されたときに、入力データの全てに対してＢＷ変換を行うのではなく、入力データのエントロピーＨを計算することによって予測したＢＷ変換後のデータの遷移回数が入力データの遷移回数よりも多くなる場合にはＢＷ変換を行わずに、入力データに対して直接ランレングス符号化処理を行っている。したがって、比較的時間のかかるＢＷ変換の回数を減らすことができ、テストパターン圧縮装置１０Ｂ全体におけるデータ圧縮処理の高速化が可能になる。
【００８１】
なお、上述した各実施形態では、集積回路用のテストパターンデータの圧縮を行う場合を説明したが、他の用途に用いられるデータを圧縮する場合にも本発明を適用することができる。
【００８２】
【発明の効果】
上述したように、本発明によれば、入力データに含まれる同一あるいは類似の文脈の記号を寄せ集める並べ替え処理を行ったときにデータの遷移回数が減少するか否かを、実際に並べ替え処理を行うことなくあらかじめ判定し、減少しないと判断した場合にこの並べ替え処理を中止することにより、この並べ替え処理の対象となる入力データの数を減らすことができ、データ圧縮処理の高速化が可能となる。
【図面の簡単な説明】
【図１】第１の実施形態のテストパターン圧縮装置の構成を示す図である。
【図２】図１に示すテストパターン圧縮装置において行われるテストパターンの圧縮動作の動作手順を示す流れ図である。
【図３】ＢＷ変換部において行われるＢＷ変換処理の動作手順を示す流れ図である。
【図４】ＢＷ変換の具体例を示す図である。
【図５】ＢＷ変換の具体例を示す図である。
【図６】ＢＷ変換の具体例を示す図である。
【図７】ランレングス圧縮部において行われるランレングス符号化処理の動作手順を示す流れ図である。
【図８】ランレングス復号化処理の動作手順を示す流れ図である。
【図９】逆ＢＷ変換処理の動作手順を示す流れ図である。
【図１０】逆ＢＷ変換の具体例を示す図である。
【図１１】逆ＢＷ変換の具体例を示す図である。
【図１２】第２の実施形態のテストパターン圧縮装置の構成を示す図である。
【図１３】図１２に示すテストパターン圧縮装置において行われるテストパターンの圧縮動作の動作手順を示す流れ図である。
【図１４】Ｓ変換部において行われるＳ変換処理の動作手順を示す流れ図である。
【図１５】Ｓ変換の具体例を示す図である。
【図１６】Ｓ変換の具体例を示す図である。
【図１７】Ｓ変換の具体例を示す図である。
【図１８】ＢＷ変換後のデータの遷移回数とＳ変換後のデータの遷移回数とを比較した結果を示す図である。
【図１９】ＢＷ変換とＳ変換のそれぞれの変換速度を比較した結果を示す図である。
【図２０】第２の実施形態の圧縮方法の処理時間とＢＷ変換とランレングス符号化を組み合わせた従来の圧縮方法の処理時間とを比較した結果を示す図である。
【図２１】第３の実施形態のテストパターン圧縮装置の構成を示す図である。
【図２２】図２１に示すテストパターン圧縮装置において行われるテストパターンの圧縮動作の動作手順を示す流れ図である。
【符号の説明】
１０、１０Ａ、１０Ｂ  テストパターン圧縮装置
１１、２０、３０  ＢＷ変換適用決定部
１２  ＢＷ変換部
１３、２４、３４  比較部
１４  データ選択部
１５  ランレングス圧縮部
２１、３１  遷移回数測定部
２２  Ｓ変換部
２３  遷移回数計算部
３２  エントロピー測定部
３３  遷移回数予測部
【図１】
0003860910.tif 000003
【図２】
0003860910.tif 000004
【図３】
0003860910.tif 000005
【図４】
0003860910.tif 000006
【図５】
0003860910.tif 000007
【図６】
0003860910.tif 000008
【図７】
0003860910.tif 000009
【図８】
0003860910.tif 000010
【図９】
0003860910.tif 000011
【図１０】
0003860910.tif 000012
【図１１】
0003860910.tif 000013
【図１２】
0003860910.tif 000014
【図１３】
0003860910.tif 000015
【図１４】
0003860910.tif 000016
【図１５】
0003860910.tif 000017
【図１６】
0003860910.tif 000018
【図１７】
0003860910.tif 000019
【図１８】
0003860910.tif 000020
【図１９】
0003860910.tif 000021
【図２０】
0003860910.tif 000022
【図２１】
0003860910.tif 000023
【図２２】
0003860910.tif 000024