(57)【要約】【課題】２次元に配置された画素データから成る画像の列方向へのせん断変形を効率よく行う。【解決手段】Ｍ行Ｎ列の２次元に配列された画素データからなる画像を列方向にせん断変形させる画像処理方法であって、前記画像の列方向の最大変形量Ｓに対して、Ｓと同じかそれ以上の数のＰ行と前記画像の幅であるＮ列のサイズのリング・バッファに、前記画像のＩ行目の画素データをリング・バッファのＪ行目に格納する格納ステップと、当該リング・バッファのデータをリング・バッファのＪ行１列目から傾きＳ／ＮでＮ列にわたって順次斜めに読み出す斜め読出しステップと、読み出したデータをフレームデータのＩ行目のデータとして連続するアドレスに割当てる割当てステップとからなり、上記ステップを前記画素データの１行目からＭ行目まで繰り返し、さらに（Ｓ−１）行Ｎ列のブランクデータを用いて同様のステップを繰り返す。【選択図】          図５
2006285574.tif 000002
【特許請求の範囲】
【請求項１】
Ｍ行Ｎ列の２次元に配列された画素データからなる画像を列方向にせん断変形させる画像処理方法であって、
前記画像の正の列方向の最大変形量Ｓに対して、Ｓと同じかそれ以上の数のＰ行と前記画像の幅であるＮ列のサイズのリング・バッファに、前記画像のＩ行目の画素データを、リング・バッファのＪ行目に格納する格納ステップと、
当該リング・バッファに格納されているデータを、リング・バッファのＪ行１列目から傾きＳ／Ｎで、Ｎ列にわたって順次斜めに読み出す斜め読出しステップと、
読み出したデータを、フレームデータのＩ行目のデータとして連続するアドレスに割当てる割当てステップとからなり、
上記の格納ステップ、斜め読出しステップおよび割当てステップを、前記画素データの１行目からＭ行目まで繰り返し、これに続けてさらに、（Ｓ−１）行Ｎ列のブランクデータの１行目を画像のＭ＋１行目として、ブランクデータの最終行に至るまで、前記格納ステップ、斜め読み出しステップ、割り当てステップを繰り返すことを特徴とする、画像処理方法。
【請求項２】
請求項１に記載の画像処理方法であって、前記斜め読出しステップにおいて、
前記傾きＳ／Ｎの値が１未満の場合、Ｎ／Ｓ列にわたって、同一の行のデータを読出すことを特徴とする、画像処理方法。
【請求項３】
請求項１に記載の画像処理方法であって、前記斜め読出しステップにおいて、
前記傾きＳ／Ｎの値が１より大きい場合、Ｓ／Ｎ行に１行の割合で選択したデータを読出すことを特徴とする、画像処理方法。
【請求項４】
Ｍ行Ｎ列の２次元に配列された画素データからなる画像を列方向にせん断変形させる画像処理方法をコンピュータに実行させるプログラムであって、
前記画像の正の列方向の最大変形量Ｓに対して、Ｓと同じかそれ以上の数のＰ行と前記画像の幅であるＮ列のサイズのリング・バッファに、前記画像のＩ行目の画素データを、リング・バッファのＪ行目に格納する手順と、
当該リング・バッファに格納されているデータを、リング・バッファのＪ行１列目から傾きＳ／Ｎで、Ｎ列にわたって順次斜めに読み出す手順と、
読み出したデータを、フレームデータのＩ行目のデータとして連続するアドレスに割当てる手順とを有し、
上記の格納ステップ、斜め読出しステップおよび割当てステップを、前記画素データの１行目からＭ行目まで繰り返し、これに続けてさらに、（Ｓ−１）行Ｎ列のブランクデータの１行目を画像のＭ＋１行目として、ブランクデータの最終行に至るまで、前記格納ステップ、斜め読み出しステップ、割り当てステップを繰り返すことを特徴とするプログラム。
【請求項５】
Ｍ行Ｎ列の２次元に配列された画素データからなる画像を列方向にせん断変形させる画像処理方法であって、
前記画像のＩ行目のデータを、前記画像列の負の列方向の最大変形量Ｓに対して、Ｓと同じかそれ以上の数のＰ行と前記画像の幅であるＮ列のサイズのリング・バッファの第（Ｊ＋Ｉ）行目に格納する、格納ステップと、
当該リング・バッファに格納されているデータを、リング・バッファのＪ行目の第１列目から、傾き−Ｓ／Ｎで、Ｎ列にわたって順次斜めに読み出す、斜め読出しステップと、
読み出したデータを、フレームデータのＩ行目のデータとして、連続するアドレスに割り当てる、割り当てステップとからなり、
上記の格納ステップ、斜め読出しステップおよび割当てステップを、前記画素データの１行目からＭ行目まで繰り返し、これに続けてさらに、（Ｓ−１）行Ｎ列のブランクデータの１行目を画像のＭ＋１行目として、ブランクデータの最終行に至るまで、前記格納ステップ、斜め読み出しステップ、割り当てステップを繰り返すことを特徴とする、画像処理方法。
【請求項６】
請求項５に記載の画像処理方法であって、前記斜め読出しステップにおいて、
前記傾き−Ｓ／Ｎの値が−１より大きい場合、Ｎ／Ｓ列にわたって、同一の行のデータを読出すことを特徴とする、画像処理方法。
【請求項７】
請求項５に記載の画像処理方法であって、前記斜め読出しステップにおいて、
前記傾き−Ｓ／Ｎの値が−１未満の場合、Ｓ／Ｎ行に１行の割合で選択したデータを読出すことを特徴とする、画像処理方法。
【請求項８】
Ｍ行Ｎ列の２次元に配列された画素データからなる画像を列方向にせん断変形させる画像処理方法をコンピュータに実行させるプログラムであって、
前記画像のＩ行目のデータを、前記画像列の列方向の最大変形量Ｓに対して、Ｓと同じかそれ以上の数のＰ行と前記画像の幅であるＮ列のサイズのリング・バッファの第（Ｊ＋Ｉ）行目に格納する手順と、
当該リング・バッファに格納されているデータを、リング・バッファの第Ｊ行目の第１列目から、傾きＳ／Ｎで、Ｎ列にわたって順次斜めに読み出す手順と、
読み出したデータを、フレームデータのＩ行目のデータとして、連続するアドレスに割り当てる手順とを有し、
上記の格納ステップ、斜め読出しステップおよび割当てステップを、前記画素データの１行目からＭ行目まで繰り返し、これに続けてさらに、（Ｓ−１）行Ｎ列のブランクデータの１行目を画像のＭ＋１行目として、ブランクデータの最終行に至るまで、前記格納ステップ、斜め読み出しステップ、割り当てステップを繰り返すことを特徴とするプログラム。
【請求項９】
Ｍ行Ｎ列の２次元に配列された画素データからなる画像を列方向にせん断変形させる画像処理方法であって、
前記画像の正の列方向の量最大変形Ｓと同じＳ行及び前記画像の幅であるＮ列のサイズを有し、且つブランク状態とされたリング・バッファに、前記画像の１行目からＭ行目までの画素データ及びこれに続く（Ｓ−１）行Ｎ列のブランクデータの１行目から（Ｓ−１）行目までを、前記リング・バッファにおける１行目から順方向に循環的に上書き格納するステップと、
前記上書き格納を行うたびに、前記リング・バッファに対し、前記格納が行われた行の１列目から傾きＳ／ＮでＮ列にわたって順次斜めにデータを読み出す斜め読出しステップと、
読み出した行データを読出し順にフレームデータの連続する行アドレスに割り当てる割り当てステップと、
を備えたことを特徴とする画像処理方法。
【請求項１０】
Ｍ行Ｎ列の２次元に配列された画素データからなる画像を列方向にせん断変形させる画像処理方法であって、
前記画像の負の列方向の最大変形量Ｓと同じＳ行及び前記画像の幅であるＮ列のサイズを有し、且つブランク状態とされたリング・バッファに、前記画像の１行目からＭ行目までの画素データ及びこれに続く(Ｓ−１)行Ｎ列のブランクデータの１行目から(Ｓ−１)行目までを、前記リング・バッファにおけるＳ行目から順方向に循環的に上書き格納する格納ステップと、
前記上書き格納を行うたびに、前記リング・バッファに対し、前記格納が行われた行の次の行の１行目から傾き−Ｓ／ＮでＮ列にわたって順次斜めにデータを読み出す斜め読出しステップと、
読出した行データを読み出し順にフレームデータの連続する行アドレスに割り当てる割り当てステップと、を備えたことを特徴とする画像処理方法。
【請求項１１】
Ｍ行Ｎ列の２次元に配列された画素データからなる画像を列方向にせん断変形させる画像処理装置であって、
前記画像の正の列方向の量最大変形Ｓと同じＳ行及び前記画像の幅であるＮ列のサイズを有し、且つブランク状態とされたリング・バッファに、前記画像の１行目からＭ行目までの画素データ及びこれに続く（Ｓ−１）行Ｎ列のブランクデータの１行目から（Ｓ−１）行目までを、前記リング・バッファにおける１行目から順方向に循環的に上書き格納する手段と、
前記上書き格納を行うたびに、前記リング・バッファに対し、前記格納が行われた行の１列目から傾きＳ／ＮでＮ列にわたって順次斜めにデータを読み出す斜め読出し手段と、
読み出した行データを読出し順にフレームデータの連続する行アドレスに割り当てる割り当て手段と、
を備えたことを特徴とする画像処理装置。
【請求項１２】
Ｍ行Ｎ列の２次元に配列された画素データからなる画像を列方向にせん断変形させる画像処理装置であって、
前記画像の負の列方向の最大変形量Ｓと同じＳ行及び前記画像の幅であるＮ列のサイズを有し、且つブランク状態とされたリング・バッファに、前記画像の１行目からＭ行目までの画素データ及びこれに続く(Ｓ−１)行Ｎ列のブランクデータの１行目から(Ｓ−１)行目までを、前記リング・バッファにおけるＳ行目から順方向に循環的に上書き格納する格納手段と、
前記上書き格納を行うたびに、前記リング・バッファに対し、前記格納が行われた行の次の行の１行目から傾き−Ｓ／ＮでＮ列にわたって順次斜めにデータを読み出す斜め読出し手段と、
読出した行データを読み出し順にフレームデータの連続する行アドレスに割り当てる割り当て手段と、を備えたことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｍ行Ｎ列の２次元に配置された画素データから成る画像データを変形する方法に関し、特に、リングバッファを用いて効率的に列方向へせん断変形させる画像処理方法、画像処理装置、およびプログラムを提供するものである。
【背景技術】
【０００２】
従来、描画ヘッドにより、画像データが表す所望の２次元パターンを描画面上に形成する描画装置が種々知られている。その代表的な例としては、デジタル・マイクロミラー・デバイス（ＤＭＤ）等の空間光変調素子を利用して、画像データに応じて光ビームを変調して露光を行い、描画面上に２次元パターンを描画する露光装置がある。
【０００３】
一般に、ＤＭＤにはマイクロミラーが２次元に配列されており、このようなＤＭＤを走査方向に対して所定の角度だけ傾けて露光が行われる。この走査方向に対する傾きがあることで、マイクロミラーの走査線の間隔が密になり、露光面上に形成される画像の解像度をこうじょうさせることが可能となる（特許文献１）。
【０００４】
しかしながら、走査方向に対して一定の傾斜角度をもって露光を行うＤＭＤの場合、描画すべき画像の画素データの配列とＤＭＤのマイクロミラーの配列とには、前記の傾斜角度によるズレが生じてしまう。ＤＭＤを備える露光装置を用いて描画を行う際には、ＤＭＤの走査方向への相対的な移動に応じて、描画すべき画像の画素データをＤＭＤに順次入力する必要があるが、画素データの配列とＤＭＤのマイクロミラーの配列とは一意に対応するものではない。
【０００５】
そのため、例えば、露光面に露光されるべき画像を表す画像データをＤＲＡＭなどのメモリに一旦記憶し、露光面に対するＤＭＤの各マイクロミラーに対応する画素データのアドレスをそれぞれ特定し、特定されたアドレスに従って画素データを順次読み出すことによって、ＤＭＤの各マイクロミラーに対応して入力される画素データを取得していた。
【特許文献１】特開２００４−９５９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図４に示すように、描画される画像１は、ＤＭＤの走査方向に対応する列方向およびそれに直交する行方向に画素データ５が２次元状に配置されたものである。通常、図４の行方向に配列された画素データは、上記メモリ内に、そのアドレスが連続する方向に記憶されている。このような場合、ＤＭＤの走査方向に対する傾き角度に起因して、各マイクロミラーに対応する画素データが記憶されているアドレスは、上記メモリ内では必ずしも連続したアドレスには配置されておらず、従って、各マイクロミラーに対応する画素データを読み出すとき、そのアドレスを特定し、さらにその離散的に配置されたアドレスに１つ１つアクセスしなければならない。そのため、連続するアドレスにアクセスしてデータを読み出す場合に比べて、すべてのマイクロミラーに対応する画素データを取得するのに、処理時間が長くかかってしまう。
【０００７】
本発明は上記事情に鑑み、各マイクロミラーに対応する画素データをメモリの連続するアドレスから読出し可能となるよう、画像データを変形してフレームデータを作成する方法およびプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【０００８】
すなわち、本発明のフレームデータ作成方法は、Ｍ行Ｎ列の２次元に配列された画素データからなる画像を正の列方向にせん断変形させてフレームデータを作成する方法であって、前記画像の列方向の最大変形量Ｓに対して、Ｓと同じかそれ以上の数のＰ行と前記画像の幅にあたるＮ列のサイズのリング・バッファに、前記画像のＩ行目の画素データを、前記リング・バッフアのＪ行目に格納する格納ステップと、
当該リング・バッファに格納されているデータを、リング・バッファのＪ行１列目から傾きＳ／Ｎで、Ｎ列にわたって順次斜めに読み出す斜め読出しステップと、
読み出したデータを、フレームデータのＩ行目のデータとして連続するアドレスに割当てる割当てステップとからなり、上記の格納ステップ、斜め読出しステップおよび割当てステップを、前記画素データの１行目からＭ行目まで繰り返し、さらに、（Ｓ−１）行Ｎ列のブランクデータの１行目から（Ｓ−１）行目までについて、前記画素について実施した、格納ステップ、斜め読み出しステップ、割り当てステップを繰り返すことを特徴とするものである。
【０００９】
ここで、「列方向の最大変形量Ｓ」とは、元の画像の１行分の画素データが、変形処理によって数行にわたって配置されるときの行数をさすものである。例えば、列方向の最大変形量Ｓの値が６である場合は、１行分の画素データが、６行にわたって所定の傾きで配置されることを指す。
【００１０】
また、「リング・バッファ」とは、配列の先頭と末尾をつないでデータを環状に記憶するものである。もちろん物理的に環状になっているものではなく、アドレスの指定方法によって概念的に環状のバッファを構成するものである。例えばＰ行Ｎ列のサイズのリング・バッファの場合、最終行であるＰ行目の次にデータを格納すべき行は、第１行目となる。また、Ｎ列目の次の列は第１列目となる。従って、画像のＩ行目の画素データを、当該リング・バッファのＪ行目に格納するときに、Ｊ＞Ｐ（Ｐは、リング・バッファの最終行）の場合は、（Ｊ−a・Ｐ）行目（ａは１以上の自然数）に格納される。また、本発明におけるリング・バッファには、予めブランクデータが格納されており、そこに、画像の各行の画素データが、順次上書きされて格納されていくものとする。
【００１１】
ここで、「斜め読出し」とは、列方向への最大変形量Ｓ行と元の画像の幅であるＮ列とから決定される傾きで、リング・バッファのデータを読出すことをいい、例えば、傾きの値が１で、リング・バッファの最終行であるＰ行目の第１列のデータから斜め読出しを進める場合は、Ｐ行１列、（Ｐ−１）行２列、（Ｐ−２）行３列、（Ｐ−３）行４列・・・と、元の画像の幅に相当するＮ列にわたってデータを読出す。
【００１２】
また、各ステップを画像の行数分（ここではＭ行目まで）繰り返したのち、さらに、Ｓ−１行Ｎ列のブランクデータを用いて、同様の処理が行われる。これは、列方向への最大シフト量Ｓが、上述のように、１行分の画素データがＳ行分にわたって斜めに配置されることから必要な処理である。
【００１３】
また、本発明のフレームデータ作成方法は、Ｍ行Ｎ列の２次元に配列された画素データからなる画像を負の列方向にせん断変形させてフレームデータを作成する方法であって、
前記画像のＩ行目のデータを、前記画像列の列方向の最大変形量Ｓに対して、Ｓと同じかそれ以上の数のＰ行と前記画像の幅であるＮ列のサイズのリング・バッファの（Ｊ＋Ｉ）行目に格納する、格納ステップと、
当該リング・バッファに格納されているデータを、前記リング・バッファのＪ行目の第１列目から、傾き−Ｓ／Ｎで、Ｎ列にわたって順次斜めに読み出す、斜め読出しステップと、
読み出したデータを、フレームデータのＩ行目のデータとして、連続するアドレスに割り当てる、割り当てステップとからなり、
上記の格納ステップ、斜め読出しステップ、および割り当てステップを、前記画素データの１行目から（Ｍ＋Ｓ−１）行目まで繰り返すことを特徴とするものである。
【００１４】
ここで、「列方向の最大変形量Ｓ」とは、元の画像の１行分の画素データが、変形処理によって数行にわたって配置されるときの行数をさすものである。例えば、列方向の最大変形量Ｓの値が６である場合は、１行分の画素データが、６行にわたって所定の傾きで配置されることを指す。
【００１５】
ここで、「格納ステップ」において、「リング・バッファのＪ＋Ｉ行目」において、（Ｊ＋Ｉ）の取る値は任意の自然数である。これに対して、「斜め読出しステップ」においては、「リング・バッファの第Ｊ行目第１列目」からデータを読出す。例えば、Ｊ＋Ｉ＝４であり、Ｉ＝１であれば、リング・バッファの３行１列目からデータの読出しを開始する。
【００１６】
この方法においても、列方向の最大シフト量Ｓを勘案して、Ｓ−１行Ｎ列のブランクデータによる、上記各ステップの繰り返し処理が必要となる。
【発明の効果】
【００１７】
本発明のフレームデータ作成方法を露光装置に適用すれば、画像データを予め変形処理することで、各マイクロミラーに対応する画素データをメモリの連続するアドレスに振り分けるため、露光時の画素データの読み込みを効率的に行うことが可能となる。また、画像データの変形処理にあたって、画像幅および変形量に応じたサイズのリング・バッファをもちいて斜め読出しを行うことによって、画像データの変形処理を効率的に行うことが可能となる。
【００１８】
また、本発明のフレームデータ作成方法によれば、任意の傾きで画像の列方向へのせん断変形処理を効率的に行うことができる。
【発明を実施するための最良の形態】
【００１９】
（実施例１）
以下、図面を参照して本発明の画像データの変形処理方法、プログラムについて詳細に説明する。特にＤＭＤを備える露光装置において、フレームデータを作成することを例として、その一実施形態を説明する。ここで、フレームデータとは、露光装置等の描画装置によって描画される画像の画素データが、例えば、ＤＭＤのマイクロミラーに対応した配置に変形された画像のデータをいう。
【００２０】
図１は、本実施形態において露光装置１０の構成を表すものである。露光装置１０は、感光材料１２を表面に吸着して保持する平板状の移動ステージ１４を備えている。そして、４本の脚部１６に指示された厚い板状の設置台１８の上面には、ステージ移動方向に沿って延びた２本のガイド２０が設置されている。ステージ１４は、その長手方向がステージ移動方向を向くように配置されると共に、ガイド２０によって往復移動可能に支持されている。
【００２１】
設置台１８の中央部には、移動ステージ１４の移動経路を跨ぐようにコの字状のゲート２２が設けられている。コの字状のゲート２２の端部の各々は、設置台１８の両側面に固定されている。このゲート２２を挟んで一方の側にはスキャナ２４が設けられ、他方の側には感光材料１２の先端および後端を検知する複数(例えば２個)のセンサ２６が設けられている。スキャナ２４およびセンサ２６はゲート２２に各々取り付けられて、移動ステージ１４の移動経路の上方に固定配置されている。なお、スキャナ２４およびセンサ２６は、これらを制御する、後述する全体制御部に接続されている。
【００２２】
スキャナ２４は、複数の露光ヘッド３０を備えており、各露光ヘッド３０は、図３に示すような空間変調素子であるＤＭＤ３６を備えている。ＤＭＤ３６は、描画素子としてのマイクロミラーが２次元に配列されたもので、マイクロミラーの列方向とＤＭＤの走査方向とが所定の傾斜角度θ（０°＜θ＜９０°）をなすように、露光ヘッド３０に取り付けられている。そのため、ＤＭＤ３６の各マイクロミラーに対応する画素データを読み出そうとすると、画像上で連続する画素データをその主走査方向へ順次読み出すのではなく、図４のように離散的に画素データを読み出す必要がある。
【００２３】
露光処理に際して、このように離散的な画素データを、マイクロミラーごとに特定して読み出さなければならない。そこで、ＤＭＤ３６によって読み出される前に、画像の画素データがＤＭＤ３６の各マイクロミラーと対応するように変形処理を施してフレームデータを作成し、そのフレームデータ上で連続するデータを順次読み出して露光処理を実行するほうが効率がよい。このとき、フレームデータに配置された画素データは、もとの画像の画素データの配列を、列方向（すなわち、図４の列方向）へＤＭＤの傾斜角度θに応じて、せん断変形されたものとなる。
【００２４】
以下、Ｍ行Ｎ列の画像を列方向にせん断変形させて、フレームデータを作成する方法の詳細を説明する。露光面上に形成すべき画像（元画像）は、例えば、図５（Ａ）に示すように、画素データが２次元に配列されている。
【００２５】
上述したように、前記の角度θで走査方向に対している傾斜しているＤＭＤを用いる場合、フレームデータは、元の画像に対して列方向に角度θでせん断されたものとなる（図５（Ｃ））。角度θで列方向にせん断すると、画像の一行の画像データは、
【数１】
2006285574.tif 000003
【００２６】
で表されるＳ行にわたって斜めに配列される。このＳ行を画像の列方向の最大シフト量とする。このとき、Ｓが自然数でない場合は、小数点以下を切り捨て／切り上げ等により最大シフト量を決定してもよい。この場合、図５（Ｃ）に示す正の列方向に、画像をせん断変形することで、各マイクロミラーに対応した画素データを連続したアドレスに割り当てることができる。
【００２７】
ここで、列方向へのせん断変形処理に際して、画像の画素データを一時的に格納し、フレームデータへ読み出すために、リング・バッファを使用する。リング・バッファの行数をＰとすると、Ｐの値は、少なくとも決定されたＳ（列方向最大シフト量）と同じか、それ以上の値でなければならない。また、リング・バッファの列数は、画像の幅であるＮ列が必要である。以下の説明においては、Ｓ行Ｎ列のリング・バッファを用いる。またフレームデータは（Ｍ＋Ｓ−１）行×Ｎ列のサイズとなる。これは、最大シフト量Ｓが、前述のように、画像の１行分の画素データがＳ行にわたって配列されることを示す値であるため、Ｍ行Ｎ列の画像を列方向にせん断変形させるためには、画像の最終行であるＭ行目の画素データをＳ行にわたって配列させるために、（Ｓ−１）行分のブランクデータを用いるためである。
【００２８】
簡単のため、図５（Ａ）で示すように、１２行６列の画像を、列方向最大シフト量６行で、列方向せん断変形を行うこととする。
【００２９】
まず、画像から第１行目の画素データを読み出し、前述のリング・バッファの任意の行に格納する。尚、簡単のために、ここではリング・バッファの第１行目に格納する。このとき、リング・バッファの余の行は、ブランクデータとなっている（図５（Ｂ）の(1) ）。
【００３０】
次に、ＤＭＤの傾き角度に応じてリング・バッファのデータを斜めに読み出していく。簡単のために、本実施例においては、Tan(θ)＝１の場合を一例として、斜め読み出しについて説明する。まず、画像の１行目の画素データが格納されたリング・バッファから、その１行１列目のデータを傾きＮ／Ｓ、すなわち１で、画像の幅に相当するＮ列、すなわち、６列にわたってデータを、リング・バッファから読み出していく。データの読出しを開始する箇所は、画素データが格納されたのと同じ行の第１列目である。したがって、図５（Ｂ）の(1) で示すように、画像の第１行目の画素データが格納されたリング・バッファの、まず、１行１列のデータを読み出し、さらに、リング・バッファの最終行（６行）２列目から傾き１でデータの読み出しを順次進めていく。最終的に、画像の１行分のデータ数（ここでは、Ｎ個）が読み出され、それが、フレームデータの１行目の画素データとなる。
【００３１】
続いて画像の２行目の画素データを、リング・バッファの第２行目に格納する。第１行目には、すでに画像の１行目の画素データが格納されており、第３行目以降はブランクデータとなっている。この状態のリング・バッファに対して、再び、斜め読み出しを実行する。具体的には、リング・バッファの２行１列から傾き１で、斜めにデータを読み出していく。図５（Ｂ）の(2) に示すように、２行１列、１行２列と読み出し、さらに、最終行へ移り、６行３列、５行４列、４行６列の順に斜めにデータが読み出される。読み出されたデータは、図５（Ｃ）のフレームデータの２行目の画素データとなる。
【００３２】
画像の第３行目以降も、最終行（ここでは１２行目）まで、順次、リング・バッファへの画素データの格納、斜め読み出しを繰り返す（図５（Ｂ）の(3) 〜(12)）。さらに列方向最大シフト量Ｓ行（ここでは６行）分を考慮して、（Ｓ−１）行分、すなわち５行分のブランクデータを用いて、リング・バッファへのデータの格納、斜め読み出しを繰り返し、画像の最終行のすべての画素データが、フレームデータに反映されるようにする。例えば、図５（Ｂ）の(13)が、その一例である。
【００３３】
以上の処理によって、図５（Ａ）で示す画像の画素データは、図５（Ｃ）で示すような画素データに変形される。
【００３４】
尚、上述した例では傾きが１の場合の斜め読み出しについて説明したが、傾きが１未満、すなわち、Ｓ／Ｎ＜１の場合は、数列にわたって、同じ行の画素データを読み出しするようにすればよい。例えば、図５（Ａ）と同じ画像に対して列方向最大シフト量を３とすると、斜め読み出しの傾き、すなわちＳ／Ｎは１／２となる。この場合、図６に示すように、６行６列のリング・バッファの１行１列、１行２列のデータを順次読み出し、さらに、６行３列、６行４列、５行５列、５行６列と、データを斜めに読み出せばよい。つまり、Ｎ／Ｓ列（ここでは２列）にわたって、同一の行のデータが読出される。読出されたデータは、フレームデータの１行目の画素データとなる。
【００３５】
逆に、傾きが１より大きい場合、すなわち、（Ｓ／Ｎ）＞１となる場合は、数行にわたる同じ列の画素データから適当なものを読み出しするようにすればよい。例えば、図５（Ａ）と同じ画像に対して列方向最大シフト量Ｓを１２とすると、斜め読み出しの傾き、すなわちＳ／Ｎの値は２となる。この場合、図７に示すように、少なくとも１２行６列のリング・バッファが必要である。このリング・バッファの第１行目に画像の１行目の画素データを格納後、傾き２でリング・バッファのデータを斜めに読出していく。例えば、Ｓ／Ｎ行（ここでは２行）に１行の割合でデータを選択して読み出すようにしてもよい。すなわち、１行１列と１２行1列のうちから１行１列のデータを選択して読出し、これに続けて、１１行２列、９行３列、７行４列、５行５列、３行６列のデータを順次読み出す。読み出されたデータは、フレームデータの１行目の画素データとなる。尚、データの選択の方法は、他の手法を用いてもよい。
【００３６】
また、上述の説明においては、画像の画素ごとに、リング・バッファへの格納、読出しが行われているが、画素データは１つの画素に対応するだけでなく、複数の画素からなるブロックごとに扱われるものであってもよい。
【００３７】
なお、以上の画像処理方法はプログラムとして、ＰＣ等に組み込まれているものであってもよいし、ＤＭＤを備えた露光装置に代表されるような、描画装置に組み込まれるものであってもよい。
【００３８】
また、露光装置に適用するに際して、せん断変形された画像をフレームデータとして一時記憶しておき、その上で、当該フレームデータにおける画素データの配列順に各マイクロミラーに対応する画素データとして読出してもよいし、リング・バッファから直接、上述した斜め読出しによる方法によって画素データを読出すものであってもよい。
【００３９】
（実施例２）
上記の実施例においては、ＤＭＤに適用する場合を例にとって、画像を列方向にせん断処理する方法、特に時計周りの傾斜をもって変形させる方法について説明した。すなわち、先の実施例においては、傾きθ（０°＜θ＜９０°）のＤＭＤ３６に適用することを例にとって画像を正の列方向（図５（Ｃ））にせん断変形処理する方法を説明したが、以下においては、画像を負の列方向（図８（Ｃ））にせん断変形処理する方法を説明する。すなわち、本実施例における方法をＤＭＤに適用するとすれば、その傾きθが０°＞θ＞−９０°の場合である(図示せず)。尚、本実施例の手法も、ＤＭＤを備える描画装置のみに適用されるものとは限らない。
【００４０】
先の実施例と同様に、１２行６列の画像（図８（Ａ））に対して列方向の最大変形量Ｓを６行とし、その変形の方向が先の実施例とは逆の方向となるように、せん断変形処理を行う。また、先の実施例と同様に、リング・バッファを用いる。なお、リング・バッファの行数はＳ行より多くてもよい。また、フレームデータは（Ｍ＋Ｓ−１）行×Ｎ列のサイズとなる。
【００４１】
まず画像の第１行目の画素データを、リング・バッファの任意の行に格納する。ここでは、簡単のため、リング・バッファの最終行(６行目)に格納する。
【００４２】
画像の第１行目の画素データがリング・バッファの最終行（ここでは第６行目）に格納されると、リング・バッファの１行１列目のデータから、傾き−１で、順次斜めに読出しが行われる。図８（Ｂ）の(1) に表すように、１行１列、２行２列、３行３列、４行４列、５行５列、６行６列のデータが斜めに読出され、図８（Ｃ）のフレームデータの第１行目の画素データとされる。斜め読出しを開始するのは、画素データの行と同じリング・バッファの行からで、すなわち、データの格納時とは異なり、ここでは、リング・バッファの第１行を第１行目としてカウントする。
【００４３】
続いて、画像の第２行目の画素データがリング・バッファの１行目に格納され、リング・バッファの２行１列目から傾き−１で、順次斜めに読出しが開始される。図８（Ｂ）の(2) に表すように、２行１列、３行２列、４行３列、５行４列、６行５列、１行６列の順でリング・バッファのデータが読み出され、図８（Ｃ）のフレームデータの第２行目の画素データとされる。
【００４４】
画像の第３行目以降も、最終行（ここでは１２行目）まで、順次、リング・バッファへの画素データの格納、斜め読み出しを繰り返す（図８（Ｂ））。さらに列方向最大シフト量（ここでは６行）分を考慮して、（Ｓ−１）行分、すなわち５行分のブランクデータを用いて、リング・バッファへのデータの格納、斜め読み出しを繰り返し、画像の最終行のすべての画素データが、フレームデータに反映されるようにする。例えば、図８（Ｂ）の(13)および(17)が、その例である。
【００４５】
尚、上述した例では傾きが−１の場合の斜め読み出しについて説明したが、傾きが、０＞（−Ｓ／Ｎ）＞−１の場合は、数列にわたって、同じ行の画素データを読み出しするようにすればよい。例えば、図８（Ａ）の画像を、負の列方向に最大シフト量Ｓを３行として、せん断変形処理を行う場合は、図９（Ａ）に示すように３行×６列のリング・バッファを用い、その最終行、すなわち、第３行目に画像の第１行目の画素データを格納する。そして、リング・バッファの１行１列から傾き−１／２で、順次斜めにデータを読出していく。このとき、Ｎ／Ｓ＝２列にわたって、同一の行のデータを読出すものとする。すなわち、１行１列、１行２列、２行３列、２行４列、３行５列、３行６列のデータを読出し、これを、フレームデータの第１行目の画素データとする。最終的に、図９（Ｂ）で示すようなフレームデータを得ることができる。
【００４６】
逆に、（−Ｓ／Ｎ）＜−１となる場合は、数行にわたる同じ列の画素データから適当なものを選び、読み出しするようにすればよい。例えば、図８（Ａ）の画像を、負の列方向に最大シフト量１２行でせん断変形処理をしてフレームデータを作成する場合は、図１０（Ａ）に示すように、１２行×６列のリング・バッファを用い、その最終行、すなわち、第１２行目に画像の第１行目の画素データを格納する。そして、リング・バッファの１行１列から傾き−２で、順次斜めにデータを読出していく。このとき、Ｓ／Ｎ＝２行に１行の割合で、データを選択して読出すようにする。すなわち、１行１列と２行１列から例えば１行１列目のデータを選んで読出し、以降、１行おきに、３行２列、５行３列、７行４列、９行５列、１１行６列のデータを読出していく。これを、フレームデータの第１行目の画素データとする。なお、１行１列のデータを選択するかわりに、２行１列のデータを選択するようにしてもよい。最終的に、図１０（Ｂ）のようなフレームデータを得ることができる。
【００４７】
また、上述の説明においては、画像の画素ごとに、リング・バッファへの格納、読出しが行われているが、画素データは１つの画素に対応するだけでなく、複数の画素からなるブロックごとに扱われるものであってもよい。
【００４８】
なお、以上の画像処理方法はプログラムとして、ＰＣ等に組み込まれているものであってもよいし、ＤＭＤを備えた露光装置に代表されるような、描画装置に組み込まれるものであってもよい。
【００４９】
本発明でせん断変形されたフレームデータの各行を段階状にシフトさせることによって、がぞうの回転処理を行うこともできる。このシフト処理は、リング・バッファに読出した行データを格納する際に、書き込みアドレスをシフト分だけオフセットすることによって実現できる。尚、回転処理によって重心がずれる場合、画像全体をシフトさせるようにして重心位置を修正することもできる。
【００５０】
また、上述した実施例においてはいずれも「画像処理方法」として詳細を説明したが、本発明の態様は、例えば、描画装置や当該描画装置へ画像のデータを入力するコンピュータなどに前記画像処理方法を実行させるプログラムや、前記画像処理方法の各工程を実行する手段を備えた画像処理装置として、実施されてもよい。
【００５１】
また、上記において詳細に説明した本発明の各実施形態は例示的なものに過ぎず、本発明の技術的範囲は、特許請求の範囲のみによって定められるべきものであることは言うまでもない。
【図面の簡単な説明】
【００５２】
【図１】実施例１の方法を適用する露光装置の構成の例を示す図。
【図２】実施例１の方法を適用する露光装置の構成の例を示す図。
【図３】実施例１の方法を適用する露光装置のＤＭＤにおけるマイクロミラーの配列を示す図。
【図４】ＤＭＤのマイクロミラーに対応する画素データの例を示す図。
【図５】正の列方向へのせん断処理の手順を説明する図で、（Ａ）は元画像を表す図、（Ｂ）はリング・バッファの斜め読出しを説明する図、（Ｃ）はフレームデータを表す図。
【図６】図５（Ａ）の画像に対する正の列方向へのせん断処理であって、傾きが１未満の値で斜め読出しを行う場合の手順を示す図で、（Ａ）はリング・バッファの斜め読出しを説明する図、（Ｂ）はフレームデータを表す図
【図７】図５（Ａ）の画像に対する正の列方向へのせん断処理であって、傾きが１より大きい値で斜め読出しを行う場合に手順を示す図で、（Ａ）はリング・バッファの斜め読出しを説明する図、（Ｂ）はフレームデータを表す図
【図８】負の列方向へのせん断処理の手順を説明する図で、（Ａ）は元画像を表す図、（Ｂ）はリング・バッファの斜め読出しを説明する図、（Ｃ）はフレームデータを表す図
【図９】図８（Ａ）の画像に対する負の列方向へのせん断処理であって、傾きが−１より大きい値で斜め読出しを行う場合の手順を示す図で、（Ａ）はリング・バッファの斜め読出しを説明する図、（Ｂ）はフレームデータを表す図
【図１０】図８（Ａ）の画像に対する負の列方向へのせん断処理であって、傾きが−１未満の値で斜め読出しを行う場合の手順を示す図で、（Ａ）はリング・バッファの斜め読出しを説明する図、（Ｂ）はフレームデータを表す図
【符号の説明】
【００５３】
１０    露光装置
１２    感光材料
１４    移動ステージ
１８    設置台
２０    ガイド
２２    ゲート
２４    スキャナ
２６    センサ
２８    スリット
３０    露光ヘッド
３２    露光エリア
３６    ＤＭＤ
５８    マイクロミラー
【図１】
2006285574.tif 000004
【図２】
2006285574.tif 000005
【図３】
2006285574.tif 000006
【図４】
2006285574.tif 000007
【図５】
2006285574.tif 000008
【図６】
2006285574.tif 000009
【図７】
2006285574.tif 000010
【図８】
2006285574.tif 000011
【図９】
2006285574.tif 000012
【図１０】
2006285574.tif 000013