(57)【要約】【課題】マスク画像を用いて画像の重ね合わせ処理を行う場合に、マスク画像の画像データを画素単位で１つずつ調べる必要があるため、処理に時間がかかってしまう。【解決手段】ランレングス形式で表現されたマスク画像を用いてディスティネーション画像にソース画像を重ね合わせる処理を行う画像処理装置の構成として、マスク画像の１ランを抽出するラン抽出部３２と、マスク画像の０ランに相当する部分でディスティネーション画像の画像データを出力する出力部３３と、ラン抽出部３２で抽出された１ランに相当する部分でディスティネーション画像画像の画像データとソース画像の画像データとを用いた演算処理を行い、その演算結果を出力する演算部３４とを備える。【選択図】図２
2006195605.tif 000002
【特許請求の範囲】
【請求項１】
ランレングス形式で表現されたマスク画像を用いて第１の画像に第２の画像を重ね合わせる処理を行う画像処理装置であって、
前記マスク画像の１ランを抽出する抽出手段と、
前記マスク画像の０ランに相当する部分で前記第１の画像の画像データを出力する出力手段と、
前記抽出手段で抽出された前記１ランに相当する部分で前記第１の画像の画像データと前記第２の画像の画像データとを用いた演算処理を行い、その演算結果を出力する演算手段と
を備えることを特徴とする画像処理装置。
【請求項２】
ランレングス形式で表現されたマスク画像を用いて第１の画像に第２の画像を重ね合わせる際に用いられる画像処理方法であって、
前記マスク画像の１ランを抽出する抽出工程と、
前記マスク画像の０ランに相当する部分で前記第１の画像の画像データを出力する出力工程と、
前記抽出工程で抽出された前記１ランに相当する部分で前記第１の画像の画像データと前記第２の画像の画像データとを用いた演算処理を行い、その演算結果を出力する演算工程と
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスク画像を用いて画像の重ね合わせ処理を行う画像処理装置と画像処理方法に関する。
【背景技術】
【０００２】
画像処理の１つの形態として、複数の画像（ラスター画像）が互いに重なる位置に描かれる場合に、元の画像（以下、「ディスティネーション画像」と記す）と、新たに書き込む画像（以下、「ソース画像」と記す）との重ね合わせの方法の指示に従って、両方の画像を重ね合わせる処理がある。指示される重ね合わせの方法は、通常、論理積、論理和、否定、排他的論理和などの論理演算の種類として指示される。このような画像間の重ね合わせの論理演算処理はＲＯＰ処理と呼ばれている。
【０００３】
また、画像の重ね合わせ処理として、二値のマスク画像を用いてディスティネーション画像にソース画像を重ね合わせる処理が知られている。マスク画像は、重ね合わせ（論理演算）の対象となる画像領域を指定するものである。実際の画像処理では、マスク画像を構成する画像データの画素値（０又は１）に応じて、例えば画素値が０の画素位置であればディスティネーション画像の画素データをそのまま出力し、画素値が１の画素位置であればディスティネーション画像の画像データとソース画像の画像データとを用いた論理演算を行って当該演算結果を出力している。
【０００４】
また、マスク画像は、その性質上同じ画素値が連続して出現する頻度がきわめて高いため、マスク画像のデータ量を低減するうえでは、二値のマスク画像をランレングス符号化することが非常に有効である。このような理由によりランレングス形式で表現されたマスク画像を取り扱う場合は、これを一旦復号処理して二値の画像データに変換した後、上記同様の処理を行っている。ちなみに、ランレングス形式の画像データを画像処理に適用した技術としては、ランレングス形式の符号（データ）を用いて画像の回転処理を行う技術（特許文献１参照）や、ランレングス変換した画像データに空間フィルタ処理を行う技術（特許文献２参照）などが公知となっている。
【０００５】
【特許文献１】特開昭５７−８９１７１号公報
【特許文献２】特開平１０−１３６８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら従来においては、マスク画像を用いてディスティネーション画像にソース画像を重ね合わせる場合に、マスク画像の画像データ（画素値）を画素単位で１つずつ調べる必要があるため、処理に時間がかかるという不具合があった。また、マスク画像がランレングス形式で表現されていた場合は、これを一旦復号処理してから画像の重ね合わせ処理を行う必要があるため、処理がますます煩雑になるという問題があった。
【課題を解決するための手段】
【０００７】
本発明に係る画像処理装置は、ランレングス形式で表現されたマスク画像を用いて第１の画像に第２の画像を重ね合わせる処理を行う画像処理装置であって、マスク画像の１ランを抽出する抽出手段と、マスク画像の０ランに相当する部分で第１の画像の画像データを出力する出力手段と、抽出手段で抽出された１ランに相当する部分で第１の画像の画像データと第２の画像の画像データとを用いた演算処理を行い、その演算結果を出力する演算手段とを備えるものである。
【０００８】
本発明に係る画像処理装置においては、ランレングス形式で表現されたマスク画像の０ランに相当する部分で第１の画像の画像データが出力手段によって出力される。また、ランレングス形式で表現されたマスク画像の１ランが抽出手段によって抽出されるとともに、その抽出された１ランに相当する部分で第１の画像の画像データと第２の画像の画像データとを用いた演算処理が演算手段で実行され、かつその演算結果が出力される。
【０００９】
本発明に係る画像処理方法は、ランレングス形式で表現されたマスク画像を用いて第１の画像に第２の画像を重ね合わせる際に用いられる画像処理方法であって、マスク画像の１ランを抽出する抽出工程と、マスク画像の０ランに相当する部分で第１の画像の画像データを出力する出力工程と、抽出工程で抽出された１ランに相当する部分で第１の画像の画像データと第２の画像の画像データとを用いた演算処理を行い、その演算結果を出力する演算工程とを有するものである。
【００１０】
本発明に係る画像処理方法においては、ランレングス形式で表現されたマスク画像の０ランに相当する部分で第１の画像の画像データが出力工程で出力される。また、ランレングス形式で表現されたマスク画像の１ランが抽出工程で抽出されるとともに、その抽出された１ランに相当する部分で第１の画像の画像データと第２の画像の画像データとを用いた演算処理が演算工程で実行され、かつその演算結果が出力される。
【発明の効果】
【００１１】
本発明によれば、ランレングス形式で表現されたマスク画像を用いて第１の画像に第２の画像を重ね合わせる場合に、それに先立ってマスク画像の画像データを復号したり、復号したマスク画像の画像データ（画素値）を画素単位で１つずつ調べたりしなくても、ランレングス形式のマスク画像をそのまま用いて、演算処理の対象となる部分（１ランに相当する部分）を素早く特定し、画像の重ね合わせに必要な演算処理を効率良く行うことができる。これにより、画像の重ね合わせ処理を従来よりも高速に行うことができる。また、ランレングス形式の圧縮効果により、必要メモリの量を抑えることができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の具体的な実施の形態について図面を参照しつつ詳細に説明する。
【００１３】
図１は本発明の実施形態に係る画像処理装置の構成を示すブロック図である。本実施形態に係る画像処理装置は、画像入力部１と、画像メモリ２と、画像処理部３と、画像出力部４とを備えた構成となっている。
【００１４】
画像入力部１は、画像処理の対象となる画像データを入力するものである。画像処理の対象となる画像データは、例えば所定の画像ファイルに格納した状態で入力されるもので、画像の重ね合わせ処理を行う場合は、当該画像ファイルの中にディスティネーション画像、ソース画像及びマスク画像の各画像データが格納される。このうち、ディスティネーション画像は本発明における第１の画像に相当し、ソース画像は本発明における第２の画像に相当するものである。ディスティネーション画像及びソース画像は、二値の画像データもしくは多値の画像データで表現され、マスク画像は、二値の画像データもしくは当該二値の画像データをランレングス符号化した画像データ（ランレングスデータ）で表現される。
【００１５】
画像メモリ２は、画像入力部１から入力された画像データを記憶するものである。画像処理部３は、画像メモリ２から画像データを読み出して所定の画像処理（画像の重ね合わせ処理を含む）を行うものである。画像出力部４は、画像処理部３で画像処理された画像データを出力するもので、例えば表示装置や印刷装置によって構成されるものである。
【００１６】
図２は画像処理部３の内部構成を示すブロック図である。なお、ここでは画像処理部３が備える種々の処理機能のうち、特に、画像の重ね合わせに係る処理機能についてのみ表示している。図において、行データ取得部３１は、画像メモリ３２に記憶されたディスティネーション画像、ソース画像及びマスク画像の各画像データを行単位で読み出して取得するものである。
【００１７】
ラン抽出部３２は、行データ取得部３１が取得した画像データのうち、ランレングス形式で表現されたマスク画像の中から１ランを順に抽出するものである。１ランとは、各行のライン方向で画素値＝１となる画素が１つ以上連続する部分（ラン）をいう。よって、ラン抽出部３２で１ランとして抽出されなかった他のランは、全て０ランに相当する部分となる。
【００１８】
出力部３３は、ラン抽出部３２で１ランとして抽出されなかった部分、つまり０ランに相当する部分でディスティネーション画像の画像データを出力するものである。演算部３４は、ラン抽出部３２で抽出された１ランに相当する部分でディスティネーション画像の画像データとソース画像の画像データとを用いた演算処理を行い、その演算結果を出力するものである。
【００１９】
図３は本発明の実施形態に係る画像処理装置（特に画像処理部３）によって実行される画像処理の手順（画像処理方法）を示すフローチャートである。この画像処理の手順は、ランレングス形式で表現されたマスク画像を用いてディスティネーション画像（第１の画像）にソース画像（第２の画像）を重ね合わせる際に適用されるものである。
【００２０】
まず、実際の処理手順の説明に先立って、ランレングス形式のマスク画像がどのようなデータで表現されるものであるかについて記述する。具体的な表現例として、ランレングス形式のマスク画像は、１ランの画素位置を示す（ｊ，ｎ）のデータで表現されるものとする。また、この表現例において、ｊの値は、各行のライン方向（画素の並び方向）で画素値＝１となる画素（１ラン）の開始位置を示し、ｎの値は、その開始位置から画素値＝１の状態が連続する画素の数（ラン長）を示すものとする。
【００２１】
したがって、例えば、二値のマスク画像の、ある行の画像データが、行の先頭（左端）から順に「０００００１１１１１１１１１１００００００００００１１１０００」の画素の並びである場合に、この画像データをランレングス符号化したときの表現は、先頭の画素位置を“０”として「（５，１０）（２５，３）」となる。このランレングス表現は、行の先頭（０画素目）から数えて５画素目が画素値＝１の開始位置となり、そこから１０画素にわたって画素値＝１の状態が連続すること、及び行の先頭から数えて２５画素目に再び画素値＝１の開始位置が存在し、そこから３画素にわたって画素値＝１の状態が連続することに基づくものである。ただし、ランレングス形式のデータ表現としては、これ以外の表現（例えば、先頭ランの種別に続いて各ランのラン長を順に羅列した表現）を採用することも可能である。
【００２２】
実際の処理では、まず、画像データの先頭行から最終行までの間で、先頭行から順に１行ずつ注目行に設定し、この注目行に相当するライン上で、ディスティネーション画像、ソース画像及びマスク画像の各画像データ(dst,src,msk)を行データ取得部３１で取得する（ステップＳ１）。画像データdstは、注目行における１ライン（１行分）分のディスティネーション画像の画像データであり、画像データsrcは、注目行における１ライン分のソース画像の画像データである。また、画像データmskは、注目行における１ライン分のマスク画像の画像データであって、上述したランレングス形式（ｊ，ｎ）で表現されるものである。
【００２３】
次に、現在の注目画素の位置を示すｘの値を０に設定（初期化）した後（ステップＳ２）、上記画像データmskの中から新規のラン（ｊ，ｎ）をラン抽出部３２で抽出する（ステップＳ３）。新規のラン（ｊ，ｎ）とは、現在の注目行に存在するラン（ｊ，ｎ）のなかで、まだ抽出されていないラン（ｊ，ｎ）をいう。例えば、上記ステップＳ１で行データ取得部３１が取得したマスク画像の画像データmskが「（５，１０）（２５，３）」であったと仮定すると、１回目のラン抽出では、新規のラン（ｊ，ｎ）として（５，１０）が抽出され、２回目のラン抽出では、新規のラン（ｊ，ｎ）として（２５，３）が抽出されることになる。また、３回目のラン抽出では、それ以前の２回のラン抽出によって全てのラン（５，１０）（２５，３）が抽出済みとなっているため、新規のラン（ｊ，ｎ）が抽出されないことになる。
【００２４】
次いで、上記ステップＳ３で実際に新規のラン（ｊ，ｎ）が抽出されたかどうか、つまり注目行の中に新規のラン（ｊ，ｎ）が存在したかどうかを判断する（ステップＳ４）。そして、新規のランが存在したと判断した場合（ステップＳ３で新規のランが抽出された場合）は、現在の注目画素位置ｘからｊ−１の画素位置（１ランの開始位置の１つ手前の画素位置）までのディスティネーション画像の画像データを出力部３３で出力する（ステップＳ５）。現在の注目画素位置ｘからｊ−１の画素位置までのディスティネーション画像の画像データとは、０ランに相当する部分のディスティネーション画像の画像データとなる。次に、１ランの開始位置となるｊの値を注目画素位置ｘに代入する（ステップＳ６）。これにより、注目画素の位置がラン（ｊ，ｎ）の開始位置に設定される。
【００２５】
続いて、現在の注目画素位置ｘにおいて、ディスティネーション画像の画像データdst(x)とソース画像の画像データsrc(x)との演算処理を演算部３４で行い、その演算結果を出力する（ステップＳ７）。演算部３４で行われる演算処理は、ディスティネーション画像にソース画像を重ね合わせる際に適用される論理演算処理（論理積、論理和、否定、排他的論理和等）となる。
【００２６】
その後、注目画素位置ｘの値を１だけインクリメントした後（ステップＳ８）、そのｘの値がｊ＋ｎに等しいかどうか、つまり先のステップＳ３で抽出したラン（ｊ，ｎ）の最終画素位置までの演算結果を出力し終えたかどうかを確認する（ステップＳ９）。そして、ｘの値がｊ＋ｎよりも小さい場合は上記ステップＳ７に戻り、ｘの値がｊ＋１に等しい場合は上記ステップＳ３に戻る。
【００２７】
一方、上記ステップＳ４において、注目行の中に新規のラン（ｊ，ｎ）が存在しないと判断した場合（ステップＳ３で新規のランが抽出されなかった場合）は、現在の注目画素位置ｘから行端までのディスティネーション画像の画像データを出力部３３で出力する（ステップＳ１０）。現在の注目画素位置ｘから行端までのディスティネーション画像の画像データとは、０ランに相当する部分のディスティネーション画像の画像データとなる。次いで、現在の注目行が最終行であるかどうかを判断する（ステップＳ１１）。そして、注目行が最終行でなければ、上記ステップＳ１に戻って上記同様にディスティネーション画像、ソース画像及びマスク画像の各画像データを取得する。また、注目行が最終行であれば、その時点で一連の画像処理を終了する。
【００２８】
以上のような処理手順にしたがって、例えば図４に示すように、三角形と四角形と円形の画像オブジェクトを含むディスティネーション画像に、星形の画像オブジェクトを含むソース画像を論理和演算によって重ね合わせるものとすると、図中一点鎖線で示す注目行において、マスク画像の０ランに相当する部分（ハッチング部分）では、ディスティネーション画像の画像データ(dst)がそのまま出力され、マスク画像の１ランに相当する部分（ｊ，ｎ）では、ディスティネーション画像の画像データとソース画像の画像データとの論理和演算結果としてソース画像の画像データ(src)が出力されることになる。
【００２９】
このように本実施形態においては、ランレングス形式で表現されたマスク画像を用いてディスティネーション画像にソース画像を重ね合わせる場合に、演算処理の対象となる画素の位置（１ランに相当する部分）をランレングス形式のマスク画像を用いて素早く特定し、画像の重ね合わせに必要な演算処理を効率良く行うことができる。これにより、マスク画像の画像データを復号したり、復号したマスク画像の画像データを画素単位で１つずつ調べる必要がなくなるため、従来よりも高速に画像処理することができる。また、ランレングス形式のマスク画像を用いることにより、マスク画像のデータ量を低減して必要メモリの量を抑えることができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施形態に係る画像処理装置の構成を示すブロック図である。
【図２】画像処理部の内部構成を示すブロック図である。
【図３】本発明の実施形態に係る画像処理の手順を示すフローチャートである。
【図４】画像の重ね合わせ処理の具体例を示す模式図である。
【符号の説明】
【００３１】
１…画像入力部、２…画像メモリ、３…画像処理部、４…画像出力部、３１…行データ取得部、３２…ラン抽出部、３３…出力部、３４…演算部
【図１】
2006195605.tif 000003
【図２】
2006195605.tif 000004
【図３】
2006195605.tif 000005
【図４】
2006195605.tif 000006