(57)【要約】【課題】２値画像データの圧縮処理にあたり、高い圧縮率と高速の圧縮速度を達成するのに適したデータ圧縮装置およびデータ圧縮プログラムを提供する。【解決手段】１ビット数で表わされる数値の連続からなる被圧縮データにデータ圧縮処理を施すデータ圧縮装置において、被圧縮データを構成する数値の連続について隣接する数値が同一か否かを表わす１ビット数で表わされる数値の連続からなる新たな被圧縮データを生成するデータ変換部と、上記データ変換部によって生成されたデータに対して圧縮処理を施すデータ圧縮部とを備えた。【選択図】図３
2008035230.tif 000002
【特許請求の範囲】
【請求項１】
１ビット数で表わされる数値の連続からなる被圧縮データにデータ圧縮処理を施すデータ圧縮装置において、
被圧縮データを構成する数値の連続について隣接する数値が同一か否かを表わす１ビット数で表わされる数値の連続からなる新たな被圧縮データを生成するデータ変換部と、
前記データ変換部によって生成されたデータに対して圧縮処理を施すデータ圧縮部とを備えたことを特徴とするデータ圧縮装置。
【請求項２】
前記データ圧縮部は、前記データ変換部によって生成されたデータに対して可逆圧縮処理を施すものであることを特徴とする請求項１記載のデータ圧縮装置。
【請求項３】
前記データ圧縮部が、データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部を備えたものであることを特徴とする請求項１記載のデータ圧縮装置。
【請求項４】
前記データ圧縮部が、
データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、
符号と数値を対応づけるテーブルを用いて、前記第１の符号化部で符号化された後のデータにエントロピー符号化を施す第２の符号化部を備えたものであることを特徴とする請求項１記載のデータ圧縮装置。
【請求項５】
前記データ圧縮部が、
データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、
ハフマンテーブルを用いて、前記第１の符号化部で符号化された後のデータにハフマン符号化を施す第２の符号化部を備えたものであることを特徴とする請求項１記載のデータ圧縮装置。
【請求項６】
前記データ圧縮部が、
データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、
前記第１の符号化部で符号化された後のデータ中に出現する数値のヒストグラムを求めるヒストグラム算出部と、
前記ヒストグラム算出部で求められたヒストグラムに基づき、符号と数値を対応づけるテーブルに、出現頻度の高い数値ほど符号長の短かい符号を割り当てる符号割当部と、
前記符号割当部で符号が割り当てられたテーブルを用いて、前記第１の符号化部で符号化された後のデータにエントロピー符号化を施す第２の符号化部を備えたものであることを特徴とする請求項１記載のデータ圧縮装置。
【請求項７】
プログラムを実行する情報処理装置内に組み込まれて該情報処理装置に、１ビット数で表わされる数値の連続からなる被圧縮データにデータ圧縮処理を実行させるデータ圧縮プログラムにおいて、
前記情報処理装置上に、
被圧縮データを構成する数値の連続について隣接する数値が同一か否かを表わす１ビット数で表わされる数値の連続からなる新たな被圧縮データを生成するデータ変換部と、
前記データ変換部によって生成されたデータに対して圧縮処理を施すデータ圧縮部とを構築することを特徴とするデータ圧縮プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データ等のデータを圧縮するデータ圧縮装置、およびコンピュータ等の情報処理装置をデータ圧縮装置として動作させるデータ圧縮プログラムに関する。
【背景技術】
【０００２】
近年の情報通信技術の進歩に伴い、文字情報や画像情報を画像データとして取り扱い、このような画像データを送受信する必要性が増加している。このとき送受信する画像データの量が多いと、画像データの送受信に時間がかかることになる。そこで、画像データの送受信にかかる時間を短縮するため、画像データの圧縮処理が必要になる。
【０００３】
画像データの中には、「１」あるいは「０」の２種類の数値の連続で画像データが構成されている画像データ（いわゆる２値画像データ）が存在する。２値画像データは、従来からファクシミリで利用されることの多い画像データであり、送受信にかかる時間を短縮するための圧縮処理の必要性が高い画像データである。２値画像データの典型的な圧縮方法としては、対象画素の画素値を周辺画素の画素値から予測し、その予測の当たり外れのデータをブロック化して１６ビットの数値の連続からなるデータに読み替えて、最後にハフマン符号化を施すという圧縮方法がよく知られている。さらには、こうした圧縮方法を改良した圧縮方法として、周辺ブロックのデータの特徴に応じてハフマンテーブルを切り換えて対象ブロックのデータをハフマン符号化を行うことで、さらなる圧縮率の向上を図った２値画像データの圧縮方法が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２０００−３３３０２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
最近では、２値画像データは、ファクシミリの転送データとしての用途の他に、サーバーからデータの送信を受けて基板にパターンを形成する露光装置において、基板パターンの描画データとしても利用されるようになってきている。基板パターンの描画データの場合には、ファクシミリでのデータの転送以上にデータの高速送信が要求されるため、２値画像データの圧縮処理にあたっては高い圧縮率と高速の圧縮処理とが必要となる。特許文献１記載の圧縮方式では、このような要求に見合うのに充分な圧縮率と圧縮速度の達成は困難であり、２値画像データの圧縮処理にあたってはさらなる工夫が求められる。
【０００５】
本発明は上記事情に鑑み、２値画像データの圧縮処理にあたり、高い圧縮率と高速の圧縮速度を達成するのに適したデータ圧縮装置およびデータ圧縮プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成する本発明のデータ圧縮装置は、
１ビット数で表わされる数値の連続からなる被圧縮データにデータ圧縮処理を施すデータ圧縮装置において、
被圧縮データを構成する数値の連続について隣接する数値が同一か否かを表わす１ビット数で表わされる数値の連続からなる新たな被圧縮データを生成するデータ変換部と、
上記データ変換部によって生成されたデータに対して圧縮処理を施すデータ圧縮部とを備えたことを特徴とする。
【０００７】
ここで、上記の『隣接する数値が同一か否かを表わす１ビット数で表わされる数値』における『隣接する』とは、データストリーム上で隣接してもよいが、必ずしもそれに限定されるものではない。例えば、２次元画像データが１次元ストリーム状のデータとして扱われている場合であれば、２次元的な画像上で見て隣接してもよい。
【０００８】
また、本発明のデータ圧縮装置は、
上記データ圧縮部は、上記データ変換部によって生成されたデータに対して可逆圧縮処理を施すものであることが好ましい。
【０００９】
また、本発明のデータ圧縮装置は、
上記データ圧縮部が、データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部を備えたものであることが好ましく、さらには、符号と数値を対応づけるテーブルを用いて、上記第１の符号化部で符号化された後のデータにエントロピー符号化を施す第２の符号化部を備えたものであることが好ましい。この場合、第２の符号化部は、ハフマンテーブルを用いて、上記第１の符号化部で符号化された後のデータにハフマン符号化を施すものであることがとりわけ好ましい。
【００１０】
また、本発明のデータ圧縮装置は、
上記データ圧縮部が、データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、上記第１の符号化部で符号化された後のデータ中に出現する数値のヒストグラムを求めるヒストグラム算出部と、上記ヒストグラム算出部で求められたヒストグラムに基づき、符号と数値を対応づけるテーブルに、出現頻度の高い数値ほど符号長の短かい符号を割り当てる符号割当部と、上記符号割当部で符号が割り当てられたテーブルを用いて、上記第１の符号化部で符号化された後のデータにエントロピー符号化を施す第２の符号化部を備えたものであることが好ましい。
【００１１】
上記目的を達成する本発明のデータ圧縮プログラムは、
プログラムを実行する情報処理装置内に組み込まれて該情報処理装置に、１ビット数で表わされる数値の連続からなる被圧縮データにデータ圧縮処理を実行させるデータ圧縮プログラムにおいて、
上記情報処理装置上に、
被圧縮データを構成する数値の連続について隣接する数値が同一か否かを表わす１ビット数で表わされる数値の連続からなる新たな被圧縮データを生成するデータ変換部と、
上記データ変換部によって生成されたデータに対して圧縮処理を施すデータ圧縮部とを構築することを特徴とする。
【００１２】
なお、本発明にいうデータ圧縮プログラムについては、ここではその基本形態のみを示すのにとどめるが、これは単に重複を避けるためであり、本発明にいうデータ圧縮プログラムには、上記の基本形態のみではなく、前述したデータ圧縮装置の各形態に対応する各種の形態が含まれる。
【００１３】
また、本発明のデータ圧縮プログラムがコンピュータ上に構成するデータ圧縮部などといった要素は、１つの要素が１つのプログラム部品によって構築されるものであってもよく、１つの要素が複数のプログラム部品によって構築されるものであってもよく、複数の要素が１つのプログラム部品によって構築されるものであってもよい。また、これらの要素は、そのような作用を自分自身で実行するものとして構築されてもよく、あるいは、コンピュータに組み込まれている他のプログラムやプログラム部品に指示を与えて実行するものとして構築されても良い。
【発明の効果】
【００１４】
上記本発明のデータ圧縮装置ないしデータ圧縮プログラムによれば、データ変換部によって生成された新たな被圧縮データに対して、データ圧縮部によって圧縮処理が実行される。
【００１５】
１ビット数で表わされる数値の連続からなる被圧縮データは、一般に、同一の数値が連続して現れる傾向が強い。そこで、被圧縮データを、そのデータ中の隣接する数値が同一か否かを表わす１ビット数で表わされる数値の連続からなる新たな被圧縮データに変換することで、隣接する数値が同一であることを表す数値が連続して並んでいるデータが生成されることとなり、被圧縮データが圧縮されやすい状態に変換される。
【００１６】
このように被圧縮データが圧縮されやすい状態に変換されるため、データ圧縮部が可逆圧縮処理を施すものであっても充分な圧縮率が達成される。特に、画像情報を含むデータの場合には、この可逆圧縮処理によって、画質の低下を回避することができる。
【００１７】
また、上記のデータ圧縮部が第１の符号化部を備えると、圧縮されやすい状態に変換された被圧縮データは、圧縮対象数値のみが、その圧縮対象数値と連続数とを表わす数値とに符号化されるため、原データよりも冗長度が増すという事態が回避され、圧縮率が向上する。
【００１８】
また、上記のデータ圧縮部が第２の符号化部を備えると、エントロピー符号化（典型的にはハフマン符号化）による、圧縮率の更なる向上が見込まれる。
【００１９】
さらに、上記のデータ圧縮部が、ヒストグラム算出部と符号割当部とを備え、第２の符号化部が、符号割当部で符号が割り当てられたテーブルを用いてエントロピー符号化（例えばハフマン符号化）を施すものであると、符号の割り当てが固定されたテーブルを用いたエントロピー符号化と比べ、圧縮率をさらに大きく向上させることができる。
【発明を実施するための最良の形態】
【００２０】
以下図面を参照して本発明の実施の形態を説明する。
【００２１】
図１は、本発明のデータ圧縮装置が適用された基板パターン露光システムの一例を示す図、図２は、図１の基板パターン露光システムにおけるデータ処理の流れを示す図である。
【００２２】
この基板パターン露光システムは、図１に示すように、ホストコントローラ１００と、データ解凍装置２００と、露光装置３００とで構成されており、ホストコントローラ１００とデータ解凍装置２００との間はＬＡＮケーブル１５０で接続され、さらにデータ解凍装置２００と露光装置３００との間は専用インターフェースケーブル２５０で接続されている。
【００２３】
ホストコントローラ１００の内部では、図２に示すように、ＣＡＤデータやＧＩＳデータといった、描画対象（基板パターン）が線図として表現されている描画データ１１に対して、ＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ）が施されて「１」あるいは「０」の連続からなる１ビットデータ１２Ａが生成される。さらにこの１ビットデータ１２Ａについてデータ圧縮処理が行なわれることにより圧縮データ１４が生成され、図１に示すＬＡＮケーブル１５０を経由して、ホストコントローラ１００からデータ解凍装置２００に転送される。データ解凍装置２００では、転送されてきた圧縮データ１４にデータ伸長処理が施され、ホストコントローラ１００でデータ圧縮処理が行われる前の状態の１ビットデータ１２Ｂに復元され、さらにビットマップに展開されて露光装置３００に送られる。露光装置３００には、ミクロンサイズの超微小な鏡で光をデジタル制御するＤＭＤ（Ｄｉｇｉｔａｌ  Ｍｉｃｒｏ−Ｍｉｒｒｏｒ  Ｄｅｖｉｃｅ）が備えられている。ＤＭＤは、高い応答性を備えていることで知られており、露光装置３００は、ＤＭＤを用いた露光処理により、入力されたデータで表された基板パターンを形成する。
【００２４】
この基板パターン露光システムでは、ホストコントローラ１００でデータ圧縮を行なってからデータ解凍装置２００にデータ転送することにより、ホストコントローラ１００からデータ解凍装置２００へのデータ転送時間を短縮することができ、基板パターンの形成にかかる作業効率の向上が図られている。
【００２５】
以下において説明する実施形態は、図１に示す全体システムの中のホストコントローラに組み込まれる画像圧縮装置であり、さらに具体的には、図２に示すホストコントローラ内の１ビットデータ１２Ａについてデータ圧縮を行なう処理に関するものである。
【００２６】
図３は、本発明のデータ圧縮装置の一実施形態に相当する画像圧縮装置を示すブロック構成図である。
【００２７】
この図３に示す画像圧縮装置５００は、「１」あるいは「０」の連続からなる１ビットデータに対して可逆圧縮処理を施す画像圧縮装置であり、この可逆圧縮処理のために、ライン間排他的論理和演算部５１０および圧縮部５５０を備えている。ライン間排他的論理和演算部５１０および圧縮部５５０の詳細は後述するが、この画像圧縮装置５００内での画像データの流れは以下のとおりである。
【００２８】
２値画像ファイルＤ０（本実施形態では、図２に示すように、１ビットデータが格納されたファイル）は、まず、ライン間排他的論理和演算部５１０に入力される。１ビットデータは、所定の主走査方向に並んだ「１」あるいは「０」の連続からなるラインが、主走査方向と直交する副走査方向に所定数並ぶことによって構成されており、ライン間排他的論理和演算部５１０では、隣り合ったライン同士で排他的論理和の演算が行われる。この排他的論理和の演算とは、処理対象となる２つのラインにおいて、主走査方向について同位置にある数値が等しい場合（すなわち、両方とも「０」であるか、あるいは両方とも「１」である場合）には「０」を出力し、主走査方向について同位置にある数値が異なっている場合（すなわち、一方が「０」でもう一方が「１」である場合）には「１」を出力するという演算である。このライン間排他的論理和演算部５１０は、本発明にいうデータ変換部の一例に相当する。
【００２９】
ライン間排他的論理和演算部５１０で生成された、排他的論理和の演算後のデータは、次に圧縮部５５０に入力されて圧縮処理が施される。ここで、圧縮部５５０は、本発明にいうデータ圧縮部の一例に相当する。圧縮部５５０には、ランレングス符号化部５５１と、データスキャニング部５５２と、ハフマン符号化部５５３が備えられており、排他的論理和の演算後のデータは、まず、ランレングス符号化部５５１に入力される。ランレングス符号化部５５１では、各ライン中の１ビットの数値を８個ごとのブロックに分けて、各ブロックの１ビットの数値を８個で８ビットの数値が表されているものとみなす。そして、データ中において、圧縮対象値となる所定の８ビットの数値の存在と、データ中でのその８ビットの数値の連続数とが検出される。次に、その検出結果に基づき、ランレングス符号化部５５１は、８ビットの数値の連続とみなされたデータに対して、上記の圧縮対象数値を除く数値についてはそのまま出力すると共に、圧縮対象数値については、その圧縮対象数値と、その圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力するという符号化処理を施す。ここで、このランレングス符号化部５５１が、本発明にいう第１の符号化部の一例に相当する。ランレングス符号化部５５１での符号化後のデータは、データスキャニング部５５２とハフマン符号化部５５３との双方に入力される。データスキャニング部５５２では、ランレングス符号化部５５１で符号化された後のデータの全てをスキャニングして、そのデータ中に出現する全ての８ビットの数値について出現頻度（ヒストグラム）が求められる。さらに、データスキャニング部５５２では、求められたデータヒストグラム（数値の出現頻度）に基づき、ハフマンテーブルに、出現頻度の高い数値ほど符号長の短かい符号を割り当てる。このデータスキャニング部５５２が、本発明にいうヒストグラム算出部および符号割当部の一例に相当する。
【００３０】
データスキャニング部５５２で数値に符号が割り当てられてなるハフマンテーブルは、ハフマン符号化部５５３に渡され、ハフマン符号化部５５３では、その渡されたハフマンテーブルに従って、そのハフマン符号化部５５３に入力されてきたデータを構成する８ビットの数値を、そのハフマンテーブルに従う符号、すなわち、出現頻度の高い数値ほど短かいビット長で表わされる符号に置き換える符号化処理が行なわれる。このハフマン符号化部５５３は、本発明にいう第２の符号化部の一例に相当する。
【００３１】
ハフマン符号化部５５３でハフマン符号化された後のデータは、データスキャニング部５５２で割り当てられた数値と符号との割当テーブルを含む圧縮情報が添付され、圧縮データＤ２として圧縮部５５０から出力される。
【００３２】
このように圧縮部５５０から出力される圧縮データＤ２は、図１に示すＬＡＮケーブル
１５０を経由してデータ解凍装置２００に転送される。データ解凍装置２００では、その受け取った圧縮データＤ２にデータ伸長処理が施されるが、このデータ伸長処理にあたっては、図３で説明した各種の符号化処理に対応する復号化処理が施されて元の２値画像ファイル中の２値画像データと同一の２値画像データが復元される。
【００３３】
図４は、図１に示すホストコントローラのハードウェア構成図である。
【００３４】
図１に示すホストコントローラ１００は、図４に示す構成のコンピュータシステムで構成されている。
【００３５】
この図４に示す、コンピュータシステムで構成されたホストコントローラ１００には、ＣＰＵ１１１、ＲＡＭ１１２、通信インターフェース１１３、ハードディスクコントローラ１１４、ＦＤドライブ１１５、ＣＤＲＯＭドライブ１１６、マウスコントローラ１１７、キーボードコントローラ１１８、ディスプレイコントローラ１１９、および通信用ボード１２０が備えられており、これらはバス１１０で相互に接続されている。
【００３６】
ハードディスクコントローラ１１４は、このホストコントローラ１００に内蔵されているハードディスク１０４のアクセスを制御するものであり、ＦＤドライブ１１５、ＣＤＲＯＭドライブ１１６は、このホストコントローラ１００に取出し自在に装填されるフレキシブルディスク（ＦＤ）１３０、ＣＤＲＯＭ１４０のアクセスを制御するものである。また、マウスコントローラ１１７、キーボードコントローラ１１８は、このホストコントローラ１００に備えられたマウス１０７、キーボード１０８の操作を検出してＣＰＵ１１１に伝達する役割を担っている。さらに、ディスプレイコントローラ１１９は、このＣＰＵ１１１の指示に基づいて、ホストコントローラ１００に備えられた画像ディスプレイ１０９の表示画面上に画像を表示する役割を担っている。
【００３７】
通信用ボード１２０は、ＳＣＳＩ等の汎用インターフェースプロトコルに準拠した通信を担っており、圧縮後の画像データをＬＡＮケーブル１５０を介してデータ解凍装置２００（図１参照）に転送する役割を担っている。
【００３８】
さらに、通信用インターフェース１１３は、インターネット等の汎用の通信を担っており、このホストコントローラ１００は、この通信用インターフェース１１３を経由して画像データを取り込むこともできる。
【００３９】
ＲＡＭ１１２には、ハードディスク１０４に格納されているプログラムが読み出されてＣＰＵ１１１での実行のために展開され、ＣＰＵ１１１では、そのＲＡＭ１１２に展開されたプログラムが読み出されて実行される。
【００４０】
図５は、本発明のデータ圧縮プログラムの一実施形態に相当する画像圧縮処理プログラムの模式構成図である。
【００４１】
ここでは、この画像圧縮プログラム６００は、ＣＤＲＯＭ１４０に記憶されている。
【００４２】
この画像圧縮プログラム６００は、ライン間排他的論理和演算部６１０および圧縮部６５０によって構成されている。このＣＤＲＯＭ１４０には、ここに示す画像圧縮プログラム６００のほか、図１に示すホストコントローラ１００における一連の処理を実行するための各種プログラムが記憶されているが、それらについては従来と同様であるため図示および説明は省略する。
【００４３】
この図５に示すＣＤＲＯＭ１４０が、図４に示すホストコントローラ１００に装填されＣＤＲＯＭドライブ１１６でアクセスされてそのＣＤＲＯＭ１４０に記憶されているプログラムがこのホストコントローラ１００にアップロードされ、ハードディスク１０４に記憶される。このハードディスク１０４に記憶されたプログラムがそのハードディスク１０４から読み出されてＲＡＭ１１２に展開されＣＰＵ１１１で実行されると、このホストコントローラ１００は、図３に示す画像圧縮装置５００としての処理を含む、ホストコントローラとしての各種処理を実行する装置として動作する。
【００４４】
ここで、図５に示す画像圧縮プログラム６００は、ホストコントローラ１００にインストールされてＣＰＵ１１１で実行されることにより、そのホストコントローラ１００内に図３に示す画像圧縮装置５００を実現するものであり、ライン間排他的論理和演算部６１０および圧縮部６５０は、ＣＰＵ１１１で実行されることにより、そのホストコントローラ１００を、図３に示す画像圧縮装置５００を構成する、それぞれ、ライン間排他的論理和演算部５１０および圧縮部５５０として動作させるプログラム部品である。つまり、これらのプログラム部品により、画像圧縮装置５００の構成要素がホストコントローラ１００上に実質的に構築されることとなる。
【００４５】
図５の画像圧縮プログラム６００を構成するライン間排他的論理和演算部６１０および圧縮部６５０の、ＣＰＵ１１１で実行されたときの作用は、それぞれ、図３の画像圧縮装置５００を構成するライン間排他的論理和演算部５１０および圧縮部５５０の作用そのものである。したがって、図３の画像圧縮装置５００のライン間排他的論理和演算部５１０および圧縮部５５０に関する、これまでの説明、および、以下に説明する詳細説明をもって、図５の画像圧縮プログラム６００を構成するライン間排他的論理和演算部６１０および圧縮部６５０の説明を兼ねるものとする。
【００４６】
図６は、図３のデータ圧縮装置５００に入力される２値画像ファイル中の２値画像データの構造を示す図、図７は、このデータに対して排他的論理和の演算処理が施された後のデータの構造を示す図である。
【００４７】
２値画像ファイル中の２値画像データで表される画像は、所定の主走査方向と、その主走査方向と直交する副走査方向とに画素が並ぶことによって構成されており、このような構成を反映してその２値画像データも、主走査方向と副走査方向とに、画素値を表す「１」あるいは「０」の数値が並んでいるという構造を備えている。図６では、８ビットの数値「Ｐ」によって、主走査方向に並んだ「１」あるいは「０」の８個の数値がまとめて表されている。上記の２値画像データは、このような８ビットの数値が主走査方向（図の左右方向）にＭ個並んでなるラインが、副走査方向（図の上下方向）にＮライン並んでいるという構造を備えている。この図６において、上からｎ番目のライン中の、左からｍ番目に位置する８ビットの数値は、Ｐｎ，ｍと表記されており、この表記法を用いて、副走査方向にｎ番目のラインについては、主走査方向に並ぶ８ビットの数値が、その並び順に、
Ｐｎ，１，Ｐｎ，２，…，Ｐｎ，ｍ−１，Ｐｎ，ｍ，…，Ｐｎ，Ｍ−２，Ｐｎ，Ｍ−１，Ｐｎ，Ｍ
と表されている。
【００４８】
図３に示すデータ圧縮装置５００を構成するライン間排他的論理和演算部５１０には、このような２値画像データが入力されて隣り合ったライン同士で排他的論理和の演算処理が施される。この演算処理では、上述した８ビットの数値が演算処理の単位とされており、隣り合ったラインにおいて主走査方向について同位置にある８ビットの数値同士の間の排他的論理和の演算が、ライン中の８ビットの各数値について順次行われていく。ここで、排他的論理和の演算について具体的な例で説明する。上から１番目のライン中の、左から１番目に位置する８ビットの数値が、
Ｐ１，１＝００００１１０１
であり、上から２番目のライン中の、左から１番目に位置する８ビットの数値が、
Ｐ２，１＝０００１０１００
であったとする。この２つの８ビットの数値の間で排他的論理和の演算を行うことを考える。排他的論理和の演算では、それぞれの８ビットの数値を構成する「１」あるいは「０」の８個の数値の並びについて、同位置にある数値同士を比較して、同じ値であれば「０」を出力し、異なる値であれば「１」を出力し、出力された、「１」あるいは「０」の８個の数値からなる新たな８ビットの数値が生成される。例えば、上記のＰ１，１の右端の数値は「１」であり、一方、上記のＰ２，１の右端の数値は「０」となっている。従って、新たな８ビットの数値の右端の数値は「１」と定まる。また、上記のＰ１，１の右から２番目の数値は「０」であり、一方、上記のＰ２，１の右から２番目の数値も「０」となっている。従って、新たな８ビットの数値の右から２番目の数値は「０」と定まる。このような手続を、２つの８ビットの数値中の８個の数値それぞれについて行う。ここで、Ｐ１，１とＰ２，１との間の排他的論理和の演算を、｛Ｐ１，１  ＥｘＯＲ  Ｐ２，１｝のように表記することにすると、上記のＰ１，１とＰ２，１との間の排他的論理和の演算の結果、
｛Ｐ１，１  ＥｘＯＲ  Ｐ２，１｝＝０００１１００１
という結果が得られる。
【００４９】
図７には、排他的論理和の演算処理が施されたデータの構造が示されており、このデータ中の各ラインも、排他的論理和の演算処理後の８ビットの数値が主走査方向にＭ個並んで構成されており、このようなラインが、副走査方向にＮライン並んでいる。上からｎ番目のライン中の、左からｍ番目の、排他的論理和の演算処理後の８ビットの数値は、Ｘｎ，ｍと表記されており、このＸｎ，ｍは、図６の中央部に示す、排他的論理和の演算処理前の２つの８ビットの数値、Ｐｎ−１，ｍおよびＰｎ，ｍから、下記の変換式によって得られる。
Ｘｎ，ｍ＝｛Ｐｎ，ｍ  ＥｘＯＲ  Ｐｎ−１，ｍ｝                                  …（１）
ここで、ｎ＝１の場合には、右辺のＰｎ−１，ｍの添え字に０が現れることとなるが、添え字が０となる８ビットの数値については、下記のように定義する。
Ｐ０，ｍ＝００００００００  （ｍ＝１〜Ｍ）                        …（２）
ここで、上式の「００００００００」は、８ビットの数値を２進数表示で表したときに値がゼロであることを表している。この式は、副走査方向の仮想的な０番目のラインを新たに設けたときの、そのラインに並ぶ８ビットの数値の定義を表す式である。上述した排他的論理和の演算処理の定義では、一方の８ビットの数値を構成する１ビットの数値（すなわち「１」あるいは「０」）が、他方の８ビットの数値を構成する同位置の１ビットの数値と異なっている場合に「１」が出力されるため、上式の「００００００００」と任意の８ビットの数値との間の排他的論理和の演算では、その任意の８ビットの数値がそのまま出力されることとなる。従って、排他的論理和の演算処理後のデータにおいて、１番目のライン中の８ビットの数値については、式（１）の変換式の右辺に添え字が「０」である項が現れるので式（２）の定義が適用され、排他的論理和の演算処理前のデータがそのまま出力されることとなる。従って、１番目のライン中の８ビットの数値については、
Ｘ１，１＝Ｐ１，１，
Ｘ１，２＝Ｐ１，２，
…………
Ｘ１，Ｍ＝Ｐ１，Ｍ                                    ……（３）
のように表される。２番目以降のライン中の８ビットの数値については、式（１）の変換式がそのまま適用される。例えば、２番目のライン中の８ビットの数値については、
Ｘ２，１＝｛Ｐ２，１  ＥｘＯＲ  Ｐ１，１｝，
Ｘ２，２＝｛Ｐ２，２  ＥｘＯＲ  Ｐ１，２｝，
…………
Ｘ２，Ｍ＝｛Ｐ２，Ｍ  ＥｘＯＲ  Ｐ１，Ｍ｝              ……（４）
のように表される。
【００５０】
図１に示すデータ解凍装置２００では、このように排他的論理和の演算処理が施されたデータに対してデータの復号化処理が行われる。この復号化処理では、まず、式（３）より、排他的論理和の演算処理後のデータの１番目のライン中の８ビットの数値が、そのまま復号化した８ビットの数値として出力される。次に、２番目のライン中の８ビットの数値については、式（４）を、それぞれ、Ｐ２，１，Ｐ２，２，Ｐ２，３，…，Ｐ２，Ｍについて解くことで、
Ｐ２，１＝｛Ｘ２，１  ＥｘＯＲ  Ｐ１，１｝，
Ｐ２，２＝｛Ｘ２，２  ＥｘＯＲ  Ｐ１，２｝，
…………
Ｐ２，Ｍ＝｛Ｘ２，Ｍ  ＥｘＯＲ  Ｐ１，Ｍ｝              ……（５）
と求められる。式（５）において右辺に現れる、Ｐ１，１，Ｐ１，２，Ｐ１，３，…，Ｐ１，Ｍについては、排他的論理和の演算処理後のデータの１番目のライン中の８ビットの数値、Ｘ１，１，Ｘ１，２，Ｘ１，３，…，Ｘ１，Ｍとそれぞれ等しいことがわかっているため、式（５）を用いることで、排他的論理和の演算処理前のデータの２番目のラインについても復号化が行われることとなる。同様に、３番目以降のライン中の８ビットの数値についても、式（１）を、Ｐｎ，ｍについて解いた式、
Ｐｎ，ｍ＝｛Ｘｎ，ｍ  ＥｘＯＲ  Ｐｎ−１，ｍ｝                                  
と、それ以前に復号化された８ビットの数値とを用いることによって復号化が行われる。
【００５１】
以下では、排他的論理和の演算処理が施されたデータに対して施される圧縮処理について説明する。２値画像データは、モノクロの画像を表すデータであり、一般には、白部分と黒部分の境界領域が画像全体に占める割合はわずかである。このため、上記の排他的論理和の演算処理が施された後のデータ中には、２進数表示で「０」が数多く現れることになる。このため、こうしたデータを圧縮するにあたっては、同一の数値の連続を符号化することで圧縮を行うランレングス符号化が有効であり、排他的論理和の演算処理が施された後のデータは、図３に示す圧縮部５５０の構成要素の１つであるランレングス符号化部５５１に入力される。このランレングス符号化部５５１では、排他的論理和の演算処理が施された後のデータを圧縮するのに際し、データを構成する上述の８ビットの数値を圧縮処理の単位として扱い、８ビットの数値を１６進数表示で表したときの、値「００」から値「ＦＦ」までの８ビットの数値の連続に対して以下の符号化処理が適用される。
【００５２】
この符号化処理では、複数の８ビットの数値のうちの特定の数値についてのみ符号化処理が行なわれる。このため、このランレングス符号化部５５１では、受け取ったデータの中から、符号化処理を行なう数値（ここでは、この数値を「圧縮対象数値」と称する）と、その圧縮対象数値の連続数が検出される。本実施形態では、一例として、「ＦＦ」および「００」の２つの数値を圧縮対象数値としている。
【００５３】
図８は、図３に示すランレングス符号化部５５１での符号化の説明図である。
【００５４】
図８の上のラインは、ランレングス符号化部５５１での符号化処理前のデータを表しており、下のラインは、上のラインのデータに対してランレングス符号化部５５１での符号化処理が施された後のデータを表している。
【００５５】
ここでは、図８の上のラインに示すように、ランレングス符号化部５５１からは、
「０６  ０２  ０２  ０２  ＦＦ  ＦＦ  ＦＦ  ＦＦ  ０４  ０５  ００  …  」
なるデータが入力されたものとする。このとき、図３のランレングス符号化部５５１では、先頭の「０６」は圧縮対象数値ではなく、次に続く「０２  ０２  ０２」も圧縮対象数値ではなく、次に、圧縮対象数値である「ＦＦ」が４つ連続していること、次に、圧縮対象数値ではない「０４」、「０５」を間に置いて、圧縮対象数値である「００」が３２７６７個連続していることが検出される。
【００５６】
図９は、ランレングス符号化部における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。
【００５７】
この図９中、Ｚは同一の圧縮対象数値の連続数、例えば図８の上のラインの「ＦＦ」についてはＺ＝４、「００」についてはＺ＝３２７６７である。
【００５８】
また、図９中、「ＹＹ」は、１６進２桁で表わされた圧縮対象数値自体を表わしている。その「ＹＹ」に続く、「０」又は「１」は１ビットで表現された「０」又は「１」であり、さらにそれに続く「ＸＸＸ  ＸＸＸＸ…」は、１つの「Ｘ」が１ビットを表わしており、この「ＸＸＸ  ＸＸＸＸ…」でＺの値を表現している。
【００５９】
すなわち、図９は、圧縮対象数値「ＹＹ」がＺ＜１２８連続するときは、８ビット目で圧縮対象数値「ＹＹ」を表現し、それに続く８ビットで、先頭ビットが「０」、それに続く７ビットでＺの値を表現すること、また、圧縮対象数値「ＹＹ」がＺ≧１２８連続するときは、８ビット目で圧縮対象数値「ＹＹ」を表現し、それに続く２バイト（１６ビット）のうちの先頭の１ビットを「１」とすることで２バイトに跨って表現されていることを表現し、それに続く１５ビットで、Ｚの値を表現することを意味している。
【００６０】
この図９に示す規則に従って図８に示す符号化の例について説明する。
【００６１】
図８の上のラインに示すランレングス符号化前のデータ（上のライン）を構成する先頭の数値「０６」は圧縮対象数値ではないため、その「０６」のまま出力される。また、それに続く「０２  ０２  ０２」も、「０２」は圧縮対象数値ではなく、これら３つの「０２」もそのまま出力される。次に、圧縮対象数値である「ＦＦ」が４個連続するため、「ＦＦ  ０４」に符号化される。次の「０４」及び「０５」は圧縮対象数値ではないため、そのまま「０４  ０５」が出力される。
【００６２】
次に「００」が３２７６７個連続しているため、「００」を置き、次の１６ビットのうちの先頭の１ビットを「１」とし、次いで１５ビットで３２７６７−１２８＝３２６３９を表現することにより、「００  ＦＦ  ７Ｆ」の３バイトで「００」が３２７６７個連続していることを表現する。
【００６３】
図１０は、図３のランレングス符号化部５５１における、連続数に応じた符号化処理の例を示す図である。
・「００」が１２７個連続するときは、２バイトを用いて「００  ７Ｆ」に符号化され、
・「００」が３２７６７個連続するときは、３バイトを用いて「００  ＦＦ  ７Ｅ」に符号化され、
・「００」が３２８９５個連続するときは、３バイトを用いて「００  ＦＦ  ＦＦ」に符号化され、
・  「００」が１２８個連続するときは、３バイトを用いて「００  ８０  ００」に符号化され、
・  「ＦＦ」が１２９個連続するときは、３バイトを用いて「ＦＦ  ８０  ０１」に符号化され、
・「ＦＦ」が４０９６個連続するときは、３バイトを用いて「ＦＦ  ８Ｆ  ８０」に符号化される。
【００６４】
図３に示すランレングス符号化部５５１では、上記のような符号化処理が行なわれる。
【００６５】
ランレングス符号化部５５１におけるこのような符号化処理によって大幅なデータ圧縮が期待される。
【００６６】
図３のランレングス符号化部５５１で上記の符号化処理の行なわれた後のデータは、次に図３の圧縮部５５０を構成するデータスキャニング部５５２とハフマン符号化部５５３に入力される。
【００６７】
このデータスキャニング部５５２では、先ず、ランレングス符号化部５５１から出力されたデータの全体がスキャニングされてデータ値の出現頻度が求められる。
【００６８】
図１１は、データスキャニング部５５２によるスキャニング結果の例を示す図である。
【００６９】
ここでは、「Ａ１」の出現頻度が最も強く、以下順に、「Ａ２」、「Ａ３」、「Ａ４」、…の順であるとする。尚、これら「Ａ１」、「Ａ２」等は数値を直接表わしている訳ではなく、数値を表わす符号である。すなわち、「Ａ１」は例えば数値「００」、「Ａ２」は数値「ＦＦ」等である。また、ここでは、簡単のため、図３のランレングス符号化部５５１から送られてくるデータは全てのデータ値が「Ａ１」〜「Ａ１６」の１６個の数値のうちのいずれかの数値であるものとする。そして、このような１６個の数値それぞれに対して、データスキャニング部５５２では、出現頻度に応じた符号が割り当てられてハフマンテーブルが作成される。即ち、出現頻度の最も高い「Ａ１」には、２ビットで表わされた符号「００」が割り当てられ、次の「Ａ２」には、やはり２ビットで表わされた符号「０１」が割り当てられ、次の「Ａ３」、さらに次の「Ａ４」には、３ビットで表わされる、それぞれ、符号「１００」、符号「１０１」が割り当てられ、次の「Ａ５」〜「Ａ８」には、５ビットで表わされる各符号が割り当てられ、以下同様に、出現頻度が低い数値ほど多くのビット数で表わされた符号が割り当てられる。
【００７０】
図１２は、ハフマンテーブルの一例を示す図である。
【００７１】
このハフマンテーブルは、図１１と一致させてあり、出現頻度が高い数値ほど短かいビット数で表わされた符号に置き換えられるように並べられた、符号化前（置き換え前）の数値と符号化後（置き換え後）の数値との対応テーブルである。
【００７２】
図３の圧縮部５５０を構成するハフマン符号化部５５３では、このようなハフマンテーブルに従ってデータの数値が符号化され、その結果、多くの数値が短かいビット数の符号に置き換えられることとなってデータ圧縮が実現される。
【００７３】
図１３は、ハフマンテーブルに用意される符号列の具体例を示す図である。
【００７４】
図１３に示す符号列では、各符号列中の「，」よりも右側の数値がビット長を意味しており、その「，」から左側に並ぶそのビット長分の２進符号が実際の符号を表わしている。例えば、図１３の左上の第１番目の符号は「１１」の２ビット、次の２番目の符号は「０１１」の３ビット、その次の３番目の符号は「０１０」の３ビット、さらにその次の４番目の符号は「１０１０」の４ビットである。このような符号列により、出現頻度が高い数値ほど短かいビット数で表わされた符号に置き換えられる。
【００７５】
以上の図８〜図１３で説明した処理により、図３の圧縮部５５０に入力されるデータは、ランレングス符号化部５５１による符号化とハフマン符号化部５５３による符号化が施されて高い圧縮率で圧縮された圧縮データＤ２となる。
【００７６】
なお、本実施形態では、図３の圧縮部５５０において、８ビットを単位として圧縮処理を行ったが、本発明では、圧縮部における圧縮単位は、このように８ビット分の数値に限定されず、１２ビットや１６ビットを圧縮単位としてもよい。
【図面の簡単な説明】
【００７７】
【図１】データ圧縮技術が適用された基板パターン露光システムの一例を示す図である。
【図２】基板パターン露光システムにおけるデータ処理の流れを示す図である。
【図３】本発明のデータ圧縮装置の一実施形態に相当する画像圧縮装置を示すブロック構成図である。
【図４】図１に示すホストコントローラのハードウェア構成図である。
【図５】本発明のデータ圧縮プログラムの一実施形態に相当する画像圧縮処理プログラムの模式構成図である。
【図６】図３のデータ圧縮装置に入力される２値画像ファイル中の画像データの構造が示す図である。
【図７】図３のデータ圧縮装置５００に入力される２値画像ファイル中の画像データに対して排他的論理和の演算処理が施された後のデータの構造を示す図である。
【図８】図３に示すランレングス符号化部での符号化の説明図である。
【図９】ランレングス符号化部における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。
【図１０】図３のランレングス符号化部における、連続数に応じた符号化処理の例を示す図である。
【図１１】データスキャニング部によるスキャニング結果の例を示す図である。
【図１２】ハフマンテーブルの一例を示す図である。
【図１３】ハフマンテーブルに用意される符号列の具体例を示す図である。
【符号の説明】
【００７８】
１１    描画データ
１２Ａ，１２Ｂ    １ビットデータ
１４    圧縮データ
１００    ホストコントローラ
１４０    ＣＤＲＯＭ
１５０    ＬＡＮケーブル
２００    データ解凍装置
２５０    専用インターフェースケーブル
３００    露光装置
５００    画像圧縮装置
５１０    ライン間排他的論理和演算部
５５０    圧縮部
５５１    ランレングス符号化部
５５２    データスキャニング部
５５３    ハフマン符号化部
６００    画像圧縮プログラム
６１０    ライン間排他的論理和演算部
６５０    圧縮部
【図１】
2008035230.tif 000003
【図２】
2008035230.tif 000004
【図３】
2008035230.tif 000005
【図４】
2008035230.tif 000006
【図５】
2008035230.tif 000007
【図６】
2008035230.tif 000008
【図７】
2008035230.tif 000009
【図８】
2008035230.tif 000010
【図９】
2008035230.tif 000011
【図１０】
2008035230.tif 000012
【図１１】
2008035230.tif 000013
【図１２】
2008035230.tif 000014
【図１３】
2008035230.tif 000015