(57)【特許請求の範囲】
【請求項１】
２値画像データの同一ライン上の連続するＮ個（Ｎは２以上の整数）の画素をそれぞれ着目画素とし、前記２値画像データから、前記Ｎ個の着目画素及び当該Ｎ個の着目画素とライン上で隣接する２つの画素からなるＮ＋２個の画素の第１の画素列の各画素値と、前記第１の画素列とライン方向とは直交する２つの方向でそれぞれ隣接するＮ＋２個の画素からなる第２及び第３の画素列の各画素値とを、前回抽出した第１、第２及び第３の画素列とそれぞれ２画素ずつ重複するようにしてライン方向に順次抽出する抽出手段と、
前記抽出手段により抽出された前記第１、第２及び第３の画素列の各画素値が入力され、前記Ｎ個の各着目画素の処理後の画素値を、前記着目画素及び当該着目画素の周囲の画素の処理前の画素値に基づいてそれぞれ決定する決定手段と、を備え
前記決定手段は、Ｎ＋２個の画素からなる前記第１、第２及び第３の画素列の各画素値からなるそれぞれＮ＋２ビットの各画素列データを、予め設定された論理に基づいてそれぞれＮビット長の３つの中間データに変換する変換手段と、
前記変換手段により変換された３つの中間データ間の論理演算を行うことにより前記Ｎ個の注目画素の値を決定する論理演算手段と、を備えた、
画像処理装置。
【請求項２】
２値画像データの同一ライン上の連続するＮ個（Ｎは２以上の整数）の画素をそれぞれ着目画素とし、前記２値画像データから、前記Ｎ個の着目画素及び当該Ｎ個の着目画素とライン上で隣接する２つの画素からなるＮ＋２個の画素の第１の画素列と、前記第１の画素列とライン方向とは直交する２つの方向でそれぞれ隣接するＮ＋２個の画素からなる第２及び第３の画素列と、の各画素値を、前回抽出した第１、第２及び第３の画素列とそれぞれ２画素ずつ重複するようにしてライン方向に順次抽出するステップと、
抽出された前記第１、第２及び第３の画素列の各画素の値が入力され、前記Ｎ個の各着目画素の処理後の画素値を、前記着目画素及び当該着目画素の周囲の画素の処理前の画素値に基づいてそれぞれ決定する際に、Ｎ＋２個の画素からなる前記第１、第２及び第３の画素列の各画素値からなるそれぞれＮ＋２ビットの各画素列データを、予め設定された論理に基づいてそれぞれＮビット長の３つの中間データに変換し、変換された３つの中間データ間の論理演算を行うことにより前記Ｎ個の注目画素の値を決定するステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
下記特許文献１には、２値画像の画像処理に関して、着目画素とその周囲の画素の処理前の各画素値を入力とし計算によって各着目画素の処理後の画素値が決定される処理の高速化の手段として、画素値の計算処理を並列に行う方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平  ３−  ９８１７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
２値画像の膨張処理や収縮処理において、１個の処理回路で１個の着目画素の処理後の画素値を決定するする画像処理装置では、画像処理全体の高速化を目的として複数の着目画素について並列に処理を行うためには、並列に処理する着目画素の数に応じた数の処理回路を設けなければならず、並列処理性能の向上に伴う画像処理装置全体としての回路規模の増大が問題であった。
【０００５】
本発明は、２値画像の並列処理性能を向上させた場合に、並列に処理する着目画素の数に応じた数の処理回路を設ける構成と比べて、回路規模の増大を低減することを目的とする。
【課題を解決するための手段】
【０００６】
［画像処理装置］
請求項１に係る本発明は、２値画像データの同一ライン上の連続するＮ個（Ｎは２以上の整数）の画素をそれぞれ着目画素とし、前記２値画像データから、前記Ｎ個の着目画素及び当該Ｎ個の着目画素とライン上で隣接する２つの画素からなるＮ＋２個の画素の第１の画素列と、前記第１の画素列とライン方向とは直交する２つの方向でそれぞれ隣接するＮ＋２個の画素からなる第２及び第３の画素列と、の各画素値を、前回抽出した第１、第２及び第３の画素列とそれぞれ２画素ずつ重複するようにしてライン方向に順次抽出する抽出手段と、
前記抽出手段により抽出された前記第１、第２及び第３の画素列の各画素の値が入力され、前記Ｎ個の各着目画素の処理後の画素値を、前記着目画素及び当該着目画素の周囲の画素の処理前の画素値に基づいてそれぞれ決定する決定手段と、を備え
前記決定手段は、Ｎ＋２個の画素からなる前記第１、第２及び第３の画素列の各画素値からなるそれぞれＮ＋２ビットの各画素列データを、予め設定された論理に基づいてそれぞれＮビット長の３つの中間データに変換する変換手段と、
前記変換手段により変換された３つの中間データ間の論理演算を行うことにより前記Ｎ個の注目画素の値を決定する論理演算手段とを備えた画像処理装置である。
【０００８】
［プログラム］
請求項２に係る本発明は、２値画像データの同一ライン上の連続するＮ個（Ｎは２以上の整数）の画素をそれぞれ着目画素とし、前記２値画像データから、前記Ｎ個の着目画素及び当該Ｎ個の着目画素とライン上で隣接する２つの画素からなるＮ＋２個の画素の第１の画素列の各画素値と、前記第１の画素列とライン方向とは直交する２つの方向でそれぞれ隣接するＮ＋２個の画素からなる第２及び第３の画素列の各画素値とを、前回抽出した第１、第２及び第３の画素列とそれぞれ２画素ずつ重複するようにしてライン方向に順次抽出するステップと、
前記抽出された前記第１、第２及び第３の画素列の各画素値が入力され、前記Ｎ個の各着目画素の処理後の画素値を、前記着目画素及び当該着目画素の周囲の画素の処理前の画素値に基づいてそれぞれ決定する際に、Ｎ＋２個の画素からなる前記第１、第２及び第３の画素列の各画素値からなるそれぞれＮ＋２ビットの各画素列データを、予め設定された論理に基づいてそれぞれＮビット長の３つの中間データに変換し、変換された３つの中間データ間の論理演算を行うことにより前記Ｎ個の注目画素の値を決定するステップと、
をコンピュータに実行させるためのプログラムである。
【発明の効果】
【０００９】
請求項１に係る本発明よれば、２値画像の画像処理の高速化のために並列に処理できる着目画素の数を増やす際に、並列に処理する着目画素の数に応じた数の画像処理回路を設ける場合と比べて、回路規模の増大を抑えることができる。
【００１１】
請求項２に係る本発明よれば、２値画像の画像処理の高速化のために並列に処理できる着目画素の数を増やす際に、並列に処理する着目画素の数に応じた数の画像処理回路を設ける場合と比べて、回路規模の増大を抑えることができる。
【図面の簡単な説明】
【００１２】
【図１】オープニング処理の具体例を示す概念図である。
【図２】膨張処理を説明する概念図である。
【図３】収縮処理を説明する概念図である。
【図４】実施例に係る画像処理装置１００のブロック図である。
【図５】入力画素領域を示す模式図である。
【図６】１６画素分の画素値から１０画素分の画素値を抽出する処理を示す概念図である。
【図７】１０ビット長の画素列データから８ビット長の中間データへの変換処理を示す概念図である。
【図８】比較例に係る画像処理装置２００のブロック図である。
【図９】比較例に係る画像処理装置３００のブロック図である。
【発明を実施するための形態】
【００１３】
［背景技術］
２値化された画像のノイズ低減の方法として、オープニング処理やクロージング処理が知られている。
【００１４】
オープニング処理及びクロージング処理はともに、膨張処理と収縮処理を同じ回数分交互に繰り返す処理であり、先に膨張処理を行ってから次に収縮処理を行うのがオープニング処理（図１）であり、先に収縮処理を行ってから次に膨張処理を行うのがクロージング処理である。
【００１５】
膨張処理及び収縮処理はともに、着目画素及びその周囲に８隣接している各画素の計９個の画素値に基づいて着目画素の処理後の画素値を決定する処理であり、９個の画素値の論理演算により着目画素の処理後の画素値が算出される。
【００１６】
膨張処理は、着目画素の処理後の画素値を、９個の画素値が全て０の場合に０とし、それ以外の場合は１とするもので、９個の画素値の論理和の結果として着目画素の処理後の画素値が決定される（図２参照）。
【００１７】
収縮処理は、着目画素の処理後の画素値を、９個の画素値が全て１の場合に１とし、それ以外の場合は０とするもので、９個の画素値の論理積の結果として着目画素の処理後の画素値が決定される（図３参照）。
【００１８】
以下、本発明を実施するための形態を詳細に説明する。但し、以下に示す実施形態は、本発明の技術思想を具体化するための画像処理装置の一例を示すものであって、本発明をこの実施形態に限定することを意図するものではなく、本発明は特許請求の範囲に示した技術思想を逸脱することなく種々の変更を行ったものにも均しく適用し得るものである。
【００１９】
［実施形態］
本実施形態では、２値画像データの膨張処理及び縮小処理を行う際に、一度の処理で同一ライン上に連続して存在する８個の着目画素について処理後の画素値を算出するようになされた画像処理装置１００について説明する。
【００２０】
画像処理装置１００は、図４に示すように、データ入力部２０と、画素列抽出部３０と、画素値決定部４０と、データ出力部５０とを有している。更に、画素列抽出部３０は、ラインバッファ１１、１２、１３と、結合部２１、２２、２３と、セレクタ３１、３２、３３とを備え、画素値決定部４０は、変換部４１、４２、４３と、論理演算部４４とを備えている。
【００２１】
データ入力部２０は入力された２値画像データを記憶しており、画素列抽出部３０が、データ入力部２０に記憶されている２値画像データから、処理対象の８個の着目画素及びその周囲の２２個の画素からなる３０個の画素（以下、「入力画素領域」ともいう）の画素値を３個の１０ビット長データとして抽出する。
【００２２】
画素値決定部４０は、入力画素領域の３０個の画素値に基づいて８個の着目画素の処理後の画素値を特定の論理によって決定し、データ出力部５０は、画素値決定部４０によって決定された画素値から出力画像のデータを生成する。
【００２３】
入力画素領域は、図５に示すように、現在処理中の着目画素が存在するライン（「Ｍライン」ともいう）上の画素、すなわち処理対象の８個の着目画素とそのライン方向において両隣に位置する画素からなる同一ライン上の１０個の画素である第一の画素列と、それぞれ１０個の画素であって、第一の画素列とライン方向と直交する方向で隣接する２つの画素列である第二の画素列及び第三の画素列と、に分けることができ、本実施形態においては第一の画素列よりも上（ｙ座標が小さい）方のライン（「Ｕライン」ともいう）上の画素からなる画素列を第二の画素列、下（ｙ座標が大きい）方のライン（「Ｂライン」ともいう）上の画素からなる画素列を第三の画素列として説明する。図５等においては、Ｕライン上の画素を「Ｕ＋数字」で示し、Ｍライン上の画素を「Ｍ＋数字」で示し、Ｂライン上の画素を「Ｂ＋数字」で示している。
【００２４】
以下、画像処理装置１００において、データ入力部２０に記憶される画像データから、出力画像データが生成されまるまでの処理の流れを説明する。
【００２５】
画像処理装置１００では、画像がラスタースキャンされる際に各画素が走査される順に準じて、処理対象の画素の処理が行われる。
【００２６】
すなわち、処理対象の画素が異なるライン上に存在する場合は、最もｙ座標の小さいライン上の画素から（画面表示上、最上のラインの画素から）処理を行い、同一ライン上の画素の処理が全て終わったら、その隣のｙ座標が一つ大きいライン上の画素の処理を順次行っていく、そして、同一ライン上の画素についてはｘ座標の小さい画素から（画面表示上、最左の画素から）順に処理する、というものである。
【００２７】
［画素列抽出］
画素列抽出部３０においては、以下のようにして、データ入力部２０に保持されている入力画像データから、入力画素領域の３０個の画素値に基づいた３個の１０ビット長データが生成される。
【００２８】
ラインバッファ１１、１２、１３はそれぞれ、入力画像データから同一ライン上の連続した８個の画素の画素値を取り込み、８ビット長データとして結合部２１、２２、２３へ受け渡すラインバッファであり、ラインバッファ１１にはＵラインの画素の画素値が取り込まれ、ラインバッファ１２にはＭラインの画素の画素値が取り込まれ、ラインバッファ１３にはＢラインの画素の画素値が取り込まれる。
【００２９】
結合部２１、２２、２３には、前回処理の際にラインバッファ１１、１２、１３から受け取っていた８ビット長データがそれぞれ保持されており、結合部２１、２２、２３は、前回処理時の８ビット長データと、今回処理の際にラインバッファ１１、１２、１３から受け取る８ビット長データとを結合させることで１６ビット長データを生成する。
【００３０】
セレクタ３１、３２、３３では、結合部２１、２２、２３から受け取った１６ビット長データから１０ビット分を切り出すことで、それぞれ、第二の画素列、第一の画素列、第三の画素列の画素値と対応する（「画素値と対応する」とは、各画素の画素値を左から順番に並べてできる、ということを意味する）１０ビット長データである、第二の画素列データ、第一の画素列データ、第三の画素列データが生成される。
【００３１】
なお、前回処理時の８ビット長データと今回処理時の８ビット長データが結合されてできる１６ビット長データからの１０ビット長データの切り出し方は、図６に示すような、
（１）  前回処理時の８ビット全部  ＋  今回処理時の８ビットの最先２ビット
の１０ビット分とする方法の他、例えば、
（２）  前回処理時の８ビットの最後２ビット  ＋  今回処理時の８ビット全部
（３）  前回処理時の後半５ビット  ＋  今回処理時の前半５ビット
といった複数の方法が考えられるが、いずれの方法によっても順次処理を行うことに伴い、各画素列は、最先２画素が前回処理における画素列の最後２画素と、最後２画素が次回処理における画素列の最先２画素と、それぞれ重複（オーバーラップ：図５、図７参照）することになる。
【００３２】
以降は、画素列抽出部３０における処理について、上記（１）の方法で順次切り出す場合について、現在処理中の着目画素をＭ１〜Ｍ８とした場合で具体的に説明する。
【００３３】
ラインバッファ１１にはＵ８〜Ｕ１５の画素の画素値が取り込まれてＵ８〜Ｕ１５の画素の画素値からなる８ビット長データが結合部２１へ受け渡される。
【００３４】
結合部２１では、図６に示すように、前回処理の際にラインバッファ１１から受け取って保持していたＵ０〜Ｕ７の画素の画素値からなる８ビット長データと、今回の処理でラインバッファ１１から受け取る８ビット長データとが結合されて、Ｕ０〜Ｕ１５の画素の画素値からなる１６ビット長データが生成されると共に、Ｕ８〜Ｕ１５の画素の画素値からる８ビット長データが次回処理まで保持されることになる。
【００３５】
そして、セレクタ３１では、１６ビット長データから先頭の１０ビット分を切り出すことで、Ｕ０〜Ｕ９の画素の画素値からなる１０ビット長データが、第二の画素列データとして生成される。
【００３６】
ここで、Ｕ０及びＵ１は前回処理における第二の画素列の最後２画素分と重複している。そして上記処理は、処理対象とする着目画素をライン方向に８画素分ずらした状態で繰り返されていくことになるため、最先の２画素と最後の２画素の重複も繰り返されていく。例えば、次回処理においては着目画素はＭ９〜Ｍ１６となり第一の画素列はＭ８〜Ｍ１７の１０画素となるから、現在処理中の第二の画素列の最後２画素は、図７（Ａ）、図７（Ｂ）に示すように、次回処理における第二の画素列の最先２画素と、Ｕ８及びＵ９として重複することになる。
【００３７】
第一の画素列及び第三の画素列についても、第二の画素列と同様にして、ラインバッファ１２、結合部２２、セレクタ３２、及び、ラインバッファ１３、結合部２３、セレクタ３３、を介して、それぞれＭ０〜Ｍ９の画素の画素値からなる第一の画素列データ、Ｂ０〜Ｂ９の画素の画素値からなる第三の画素列データが生成されると共に、各画素列の２画素分の重複が繰り返される。
【００３８】
画素列抽出部３０では、以上のようにして、３０個の画素からなる入力画素領域の画素値を、第一の画素列データ、第二の画素列データ、第三の画素列データとして、順次抽出していく。
【００３９】
上述のようにして画素列抽出部３０で生成された３個の画素列データ（１０ビット長）は、画素値決定部４０へ入力される。
【００４０】
［画素値決定］
画素値決定部４０は、１０ビット長データを特定の論理で８ビット長データに変換するための変換テーブル（ＬＵＴ：Look Up Table）を備えており、変換部４１、４２、４３がそれぞれ、変換テーブルを参照することで、１０ビット長データである第二の画素列データ、第一の画素列データ、第三の画素列データから、８ビット長データである、第二の中間データ、第一の中間データ、第三の中間データを生成する。
【００４１】
なお、変換テーブルは以下の論理に基づいて作成されている。
（膨張処理の場合）
出力される８ビット長データのｉ番目（ｉは１≦ｉ≦８を満たす整数、以下同じ）のビットの値ＯＩiは、入力される１０ビット長データのｉ番目〜ｉ＋２番目の３ビット長分のデータ値Ｉiによって、
Ｉi＝０００の場合、ＯＩi＝０
Ｉi≠０００の場合、ＯＩi＝１
と定まる。
【００４２】
これは、入力される１０ビット長データのｉ番目の値をＫi、ｉ＋１番目の値をＫi+1、ｉ＋２番目の値をＫi+2（但し、Ｋi、Ｋi+1、Ｋi+2はそれぞれ１か０の値）とした場合、すなわちＩiがＫiＫi+1Ｋi+2と表記できる場合に、変換処理によって生成される８ビット長の中間データのｉ番目のビットの値であるＯＩiをそれぞれ、Ｋi、Ｋi+1、Ｋi+2の論理和として出力することに相当する。
【００４３】
（収縮処理の場合）
出力される８ビット長データのｉ番目のビットの値ＯＩiは、入力される１０ビット長データのｉ番目〜ｉ＋２番目の３ビット長分のデータ値Ｉiによって、
Ｉi＝１１１の場合、ＯＩi＝１
Ｉi≠１１１の場合、ＯＩi＝０
と定まる。
【００４４】
これは、入力される１０ビット長データのｉ番目の値をＫi、ｉ＋１番目の値をＫi+1、ｉ＋２番目の値をＫi+2とした場合、すなわちＩiがＫiＫi+1Ｋi+2と表記できる場合に、変換処理によって生成されるＮビット長の中間データのｉ番目のビットの値であるＯＩiを、それぞれＫi、Ｋi+1、Ｋi+2の論理積として出力することに相当する。
【００４５】
すなわち、図７では、今回の処理（Ａ）において、入力される１０ビット長データである画素列データの１番目〜１０番目のビットの値を、Ｕ０〜Ｕ９で示し、中間データの１番目〜８番目のビットの値を、Ａ１〜Ａ８で示しており、次回の処理（Ｂ）において、画素列データの１番目〜１０番目ビットの値を、Ｕ８〜Ｕ１７で示し、中間データの１番目〜８番目のビットの値を、Ａ９〜Ａ１６で示したが、変換部４１、４２、４３における１０ビット長データから８ビット長データへの変換は、膨張処理であっても収縮処理であっても、中間データの各ビットの値が画素列データの３ビット分の値をそれぞれ論理演算することで得られる点において共通している。例えば、中間データの１ビット目の値Ａ１は、入力される画素列データの１番目、２番目、３番目のビットの値である、Ｕ０、Ｕ１、Ｕ２の値の論理和（膨張処理の場合）又は論理積（縮小処理の場合）として出力される。
【００４６】
ここで、中間データ生成部に入力されるデータが、０００１１１０１０１というような１０ビット長データである場合を例に詳しく説明する。
【００４７】
膨張処理の場合の変換テーブルは、各ＯＩiをそれぞれＫi、Ｋi+1、Ｋi+2の論理和として出力することに相当し、
Ｉi＝０００の場合、ＯＩi＝０
Ｉi≠０００の場合、ＯＩi＝１
によって定義される。
【００４８】
従って、
Ｉ1＝０００、よって、ＯＩ1＝０
Ｉ2＝００１、よって、ＯＩ2＝１
Ｉ3＝０１１、よって、ＯＩ3＝１
Ｉ4＝１１１、よって、ＯＩ4＝１
Ｉ5＝１１０、よって、ＯＩ5＝１
Ｉ6＝１０１、よって、ＯＩ6＝１
Ｉ7＝０１０、よって、ＯＩ7＝１
Ｉ8＝１０１、よって、ＯＩ8＝１  
となる。
【００４９】
すなわち、膨張処理用変換テーブルには、
入力：０００１１１０１０１、に対して、出力：０１１１１１１１、
と定めておくことになる。
【００５０】
収縮処理の場合の変換テーブルは、各ＯＩiをそれぞれＫi、Ｋi+1、Ｋi+2の論理積として出力することに相当し、
Ｉi＝１１１の場合、ＯＩi＝１
Ｉi≠１１１の場合、ＯＩi＝０
によって定義される。
【００５１】
従って、
Ｉ1＝０００、よって、ＯＩ1＝０
Ｉ2＝００１、よって、ＯＩ2＝０
Ｉ3＝０１１、よって、ＯＩ3＝０
Ｉ4＝１１１、よって、ＯＩ4＝１
Ｉ5＝１１０、よって、ＯＩ5＝０
Ｉ6＝１０１、よって、ＯＩ6＝０
Ｉ7＝０１０、よって、ＯＩ7＝０
Ｉ8＝１０１、よって、ＯＩ8＝０
となる。
【００５２】
すなわち、収縮処理用変換テーブルには、
入力：０００１１１０１０１、に対して、出力：０００１００００、
と定めておくことになる。
【００５３】
上述のようにして生成された３個の中間データ（８ビット長）は、論理演算部４４へ受け渡され、論理演算部４４では３個の中間データ間の論理演算によって１個の８ビット長データ（出力画素データ）を生成する。
【００５４】
出力画素データは、現在処理中の連続する８個の着目画素である着目画素列の処理後の画素値と対応しており、着目画素列の処理後の各画素値がライン方向に並んだ８ビット長データである。
【００５５】
３個の中間データ間の論理演算とは、具体的には、着目画素列のｉ番目の画素の処理後の画素値である、出力画素データのｉ番目のビットの値Ｏiが、入力される第一中間データ、第二中間データ、第三中間データのｉ番目の各ビットの値ＯＩ１i、ＯＩ２i、ＯＩ３iを入力とする論理演算によって決定されることを意味し、この論理演算は膨張処理の場合は論理和であり、収縮処理の場合は論理積である。
【００５６】
すなわち、
（膨張処理の場合）
ＯＩ１i＝ＯＩ２i＝ＯＩ３iＩi＝０の場合、Ｏi＝０
ＯＩ１i、ＯＩ２i、ＯＩ３iＩiのいずれかが１の場合、Ｏi＝１
と決定され、
（収縮処理の場合）
ＯＩ１i＝ＯＩ２i＝ＯＩ３iＩi＝１の場合、Ｏi＝１
ＯＩ１i、ＯＩ２i、ＯＩ３iＩiのいずれかが０の場合、Ｏi＝０
と決定される。
【００５７】
ここで、入力画素領域が以下のような画素値である場合を例に、画素値決定部４０における処理を具体的に説明する。
第二の画素列（Ｕ０〜Ｕ９）：００１００００１１１
第一の画素列（Ｍ０〜Ｍ９）：１１１００００１１１
第三の画素列（Ｂ０〜Ｂ９）：０００１０００１１１
※着目画素Ｍ１〜Ｍ８の画素値は、１１００００１１となる
【００５８】
（膨張処理の場合）
画素列抽出部３０から受け渡された３個の１０ビット長データは、変換部４１、４２、４３で８ビット長データへそれぞれ変換される。
【００５９】
ここでは膨張処理であるため、Ｋi、Ｋi+1、Ｋi+2からＯＩiを導いた場合の論理演算は論理和であり、変換部４１、４２、４３は、以下の定義、
Ｉi＝０００の場合、ＯＩi＝０
Ｉi≠０００の場合、ＯＩi＝１
で定められた膨張処理用変換テーブルを参照する。
【００６０】
従って、第一画素列データ（１１１００００１１１）から生成される第一中間データとしては１１１００１１１が出力され、第二画素列データ（００１１００００１１１）から生成される第二中間データとしては１１１００１１１が出力され、第三画素列データ（０００１０００１１１）から生成される第三中間データとしては０１１１０１１１が出力される。
第二中間データ：１１１００１１１
第一中間データ：１１１００１１１
第三中間データ：０１１１０１１１
【００６１】
論理演算部４４では、第一中間データ、第二中間データ、第三中間データを入力として、１個の８ビット長データである出力画素データを論理演算によって生成するが、ここでは膨張処理であるため、出力データの各ビットの値を、入力される各データの各ビットの値から算出するための論理演算は論理和であり、
ＯＩ１1＝１、ＯＩ２1＝１、ＯＩ３1＝０、よって、Ｏ1＝１
ＯＩ１2＝１、ＯＩ２2＝１、ＯＩ３2＝１、よって、Ｏ2＝１
ＯＩ１3＝１、ＯＩ２3＝１、ＯＩ３3＝１、よって、Ｏ3＝１
ＯＩ１4＝０、ＯＩ２4＝０、ＯＩ３4＝１、よって、Ｏ4＝１
ＯＩ１5＝０、ＯＩ２5＝０、ＯＩ３5＝０、よって、Ｏ5＝０
ＯＩ１6＝１、ＯＩ２6＝１、ＯＩ３6＝１、よって、Ｏ6＝１
ＯＩ１7＝１、ＯＩ２7＝１、ＯＩ３7＝１、よって、Ｏ7＝１
ＯＩ１8＝１、ＯＩ２8＝１、ＯＩ３8＝１、よって、Ｏ8＝１
と決定され、出力画素データとして、「１１１１０１１１」が出力される。
【００６２】
（収縮処理の場合）
画素列抽出部３０から受け渡された３個の１０ビット長データは、変換部４１、４２、４３で８ビット長データへそれぞれ変換されるが、ここでは収縮処理であるため、Ｋi、Ｋi+1、Ｋi+2からＯＩiを導く論理演算算は論理積であり、変換部４１、４２、４３が参照する収縮処理用変換テーブルのロジックは、
Ｉi＝１１１の場合、ＯＩi＝１
Ｉi≠１１１の場合、ＯＩi＝０
である。
【００６３】
従って、第一中間データ、第二中間データ、第三中間データは、以下のとおりに出力される。
第二中間データ：０００００００１
第一中間データ：１００００００１
第三中間データ：０００００００１
【００６４】
論理演算部４４では、第一中間データ、第二中間データ、第三中間データを入力として、１個の８ビット長データである出力画素データを論理演算によって生成するが、ここでは膨張処理であるため、出力データの各ビットの値を、入力される各データの各ビットの値から算出するための論理演算は論理和であり、
ＯＩ１1＝１、ＯＩ２1＝１、ＯＩ３1＝０、よって、Ｏ1＝１
ＯＩ１2＝１、ＯＩ２2＝１、ＯＩ３2＝１、よって、Ｏ2＝１
ＯＩ１3＝１、ＯＩ２3＝１、ＯＩ３3＝１、よって、Ｏ3＝１
ＯＩ１4＝０、ＯＩ２4＝０、ＯＩ３4＝１、よって、Ｏ4＝１
ＯＩ１5＝０、ＯＩ２5＝０、ＯＩ３5＝０、よって、Ｏ5＝０
ＯＩ１6＝１、ＯＩ２6＝１、ＯＩ３6＝１、よって、Ｏ6＝１
ＯＩ１7＝１、ＯＩ２7＝１、ＯＩ３7＝１、よって、Ｏ7＝１
ＯＩ１8＝１、ＯＩ２8＝１、ＯＩ３8＝１、よって、Ｏ8＝１
と決定され、出力画素データとして、「１１１１０１１１」が出力される。
【００６５】
論理演算部４４では、第一中間データ、第二中間データ、第三中間データを入力として、１個の８ビット長データである出力画素データを論理演算によって生成するが、ここでは収縮処理であるため、出力データの各ビットの値を、入力される各データの各ビットの値から算出するための論理演算は論理積であり、
ＯＩ１1＝１、ＯＩ２1＝０、ＯＩ３1＝０、よって、Ｏ1＝０
ＯＩ１2＝０、ＯＩ２2＝０、ＯＩ３2＝０、よって、Ｏ2＝０
ＯＩ１3＝０、ＯＩ２3＝０、ＯＩ３3＝０、よって、Ｏ3＝０
ＯＩ１4＝０、ＯＩ２4＝０、ＯＩ３4＝０、よって、Ｏ4＝０
ＯＩ１5＝０、ＯＩ２5＝０、ＯＩ３5＝０、よって、Ｏ5＝０
ＯＩ１6＝０、ＯＩ２6＝０、ＯＩ３6＝０、よって、Ｏ6＝０
ＯＩ１7＝０、ＯＩ２7＝０、ＯＩ３7＝０、よって、Ｏ7＝０
ＯＩ１8＝１、ＯＩ２8＝１、ＯＩ３8＝１、よって、Ｏ8＝１
と決定され、出力画素データとして、０００００００１が出力される。
【００６６】
画素値決定部４０では、以上のようにして、入力画素領域の各画素の画素値を入力として、着目画素の処理後の画素値を当該着目画素の周囲の画素の処理前の画素値に基づいて決定していく。
【００６７】
データ出力部５０は、上述のようにして算出された、着目画素の処理後の画素値と対応する出力画素データを順次画素値決定部４０から受け取り、出力画像データを生成する。
【００６８】
以上のようにして本実施形態に係る画像処理装置１００は、入力画素領域を構成する３０個の画素値を基に、８個の着目画素の処理後の値を一度に決定することができる。
【００６９】
本実施形態においては同時に処理する着目画素を８個とする場合の例を示したが、本発明においては同時に処理する着目画素の数に理論上の制限はなく、予め用意しておく変換テーブルの規模によって、同時に処理可能な着目画素の数を制御することができる。
【００７０】
［比較例］
次に、２値画像の膨張処理、収縮処理に際して、一回の処理で１個の着目画素の処理を行う画像処理部１２０（実施形態に係る画像処理装置１００における画素列抽出部３０及び画素値決定部４０に相当する）を有する、従来型の画像処理装置２００について、図８を参照して説明する。
【００７１】
画像処理装置２００は、画像処理部１２０の他、入力された画像データを記憶するデータ入力部１１０と、画像処理部１２０の出力する画素値を８個結合して８ビット長データを生成する結合部１４０と、結合部１４０の出力する８ビット長データを用いて出力画像データを生成するデータ出力部１５０を備えており、画像処理部１２０は、ラインバッファ１１１、１１２、１１３と、セレクタ１２１、１２２、１２３と、論理演算部１２４を有している
【００７２】
画像処理装置２００は、１個の着目画素とその周囲の８近傍の画素の画素値を基に、当該着目画素の処理後の画素値を決定するものである。ラインバッファ１１１、１１２、１１３は、データ入力部１１０に記憶される入力画像データから同一ライン上の連続した８個の画素の画素値を取り込み、８ビット長データとしてセレクタ１２１、１２２、１２３へ受け渡すラインバッファであり、着目画素Ｍ１を含むＭラインの画素は、ラインバッファ１１２に取り込まれ、Ｍラインより上方のＵラインの画素はラインバッファ１１１に取り込まれ、Ｍラインより下方のＢラインの画素はラインバッファ１１３に取り込まれる。
【００７３】
セレクタ１２１、１２２、１２３においては、ラインバッファ１１１、１１２、１１３から受け取った８ビット長データから、それぞれ、Ｕ０〜Ｕ２、Ｍ０〜Ｍ２、Ｂ０〜Ｂ２の画素の画素値からなる、先頭の３ビット分が切り出され、３個の３ビット長データが論理演算部１２４へ受け渡される。
【００７４】
論理演算部１２４では、以上のようにして抽出された着目画素及びその８隣接画素（Ｕ０〜Ｕ２、Ｍ０〜Ｍ２、Ｂ０〜Ｂ２）の画素値について、膨張処理の場合は論理和をとり、収縮処理の場合は論理積をとることで、着目画素Ｍ１の処理後の画素値を出力する。
画像処理部１２０は、上記処理を着目画素Ｍ２〜Ｍ８について繰り返し、計８個分の着目画素の処理後の画素値を出力していく。
【００７５】
結合部１４０では、順次出力される着目画素Ｍ１〜Ｍ８の処理後の画素値を結合することで８ビット長データを生成して出力画素データとしてデータ出力部１５０へ出力する。
【００７６】
データ出力部１５０は、実施形態に係るデータ出力部５０と同様にして、出力画素データを順次結合部１４０から受け取り、出力画像データを生成する。
【００７７】
次に、上述した画像処理装置２００が備える、ラインバッファ１１１、１１２、１１３と、セレクタ１２１、１２２、１２３と、論理演算部１２４を有している画像処理部１２０を８個備え、８個の着目画素についての画素値の決定を並列に処理できるように為された、従来型の画像処理装置３００について図９を参照して説明する。
【００７８】
画像処理装置３００は、８個の画像処理部１２０（以下、画像処理部１２０ａ〜画像処理部１２０ｈと区別する）を有し、画像処理の高速化のために８個の着目画素について並列に処理を行えるようになされており、その他に、８個の画像処理部１２０から同時に出力される８個の着目画素（Ｍ１〜Ｍ８）の処理後の画素値を結合して８ビット長データである出力画素データを生成する結合部２４０と、画像処理装置２００と同様にデータ入力部１１０、データ出力部１５０を有している。
【００７９】
画像処理装置３００においては、画像処理装置２００において説明したようにして着目画素の処理後の画素値を出力する画像処理部１２０が８個あり、画像処理部１２０が並列に処理を行うことで、８個の着目画素（Ｍ１〜Ｍ８）について、同時に処理後の画素値が決定されて、結合部２４０に受け渡されることになる。
【００８０】
以下、実施形態と同様の以下のような画素値の入力画素領域を処理対象とした場合の画像処理装置３００における処理の流れを説明する。
第二の画素列（Ｕ０〜Ｕ９）：００１００００１１１
第一の画素列（Ｍ０〜Ｍ９）：１１１００００１１１
第三の画素列（Ｂ０〜Ｂ９）：０００１０００１１１
※着目画素Ｍ１〜Ｍ８の画素値は、１１００００１１となる
【００８１】
（膨張処理）
［入力画素値抽出］
画像処理部１２０ａは、データ入力部１１０に保持されている入力画像データから、１番目の着目画素Ｍ１とその８隣接画素とからなるＵ０〜Ｕ２、Ｍ０〜Ｍ２、Ｂ０〜Ｂ２、の画素値を抽出する。
【００８２】
Ｕラインの画素値は０、０、１、Ｍラインの画素値は１、１、１、Ｂラインの画素値は０、０、０となるため、入力画素値として、０、０、１、１、１、１、０、０、０が得られる。
【００８３】
［出力画素値算出］
次いで、画像処理部１２０ａは、得られた９個の画素値について論理和を取ることで、着目画素の処理後の画素値を決定し、１番目の着目画素の処理後の画素値として、「１」を出力する。
【００８４】
そして画像処理装置３００においては、残りの着目画素（Ｍ２〜Ｍ８）について並列に処理を行うため、画像処理部１２０ｂ〜１２０ｈにおいても、画像処理部１２０ａと同様の出力画素値の算出の処理が並行して行われる。
【００８５】
画像処理部１２０ｂ〜１２０ｈではそれぞれ、２〜８番目の各着目画素（Ｍ２〜Ｍ８）について、着目画素とその８隣接画素の各画素値を抽出した後、得られた９個の画素値について、論理和を取ることで、各着目画素の処理後の画素値を決定する。
【００８６】
着目画素Ｍ２とその８隣接画素の画素値は、０、１、０、１、１、０、０、０、１であり、画像処理部１２０ｂは、２番目の着目画素Ｍ２の処理後の画素値として、「１」を出力する。
【００８７】
着目画素Ｍ３とその８隣接画素の画素値は、１、０、０、１、０、０、０、１、０であり、画像処理部１２０ｃは、３番目の着目画素Ｍ３の処理後の画素値として、「１」を出力する。
【００８８】
着目画素Ｍ４とその８隣接画素の画素値は、０、０、０、０、０、０、１、０、０であり、画像処理部１２０ｄは、４番目の着目画素Ｍ４の処理後の画素値として、「１」を出力する。
【００８９】
着目画素Ｍ５とその８隣接画素の画素値は、０、０、０、０、０、０、０、０、０であり、画像処理部１２０ｅは、５番目の着目画素Ｍ５の処理後の画素値として、「０」を出力する。
【００９０】
着目画素Ｍ６とその８隣接画素の画素値は、０、０、１、０、０、１、０、０、１であり、画像処理部１２０ｆは、６番目の着目画素Ｍ６の処理後の画素値として、「１」を出力する。
【００９１】
着目画素Ｍ７とその８隣接画素の画素値は、０、１、１、０、１、１、０、１、１であり、画像処理部１２０ｇは、７番目の着目画素Ｍ７の処理後の画素値として、「１」を出力する。
【００９２】
着目画素Ｍ８とその８隣接画素の画素値は、１、１、１、１、１、１、１、１、１であり、画像処理部１２０ｈは、８番目の着目画素Ｍ８の処理後の画素値として、「１」を出力する。
【００９３】
［出力画素データ生成］
結合部２４０では、画像処理部１２０ａ〜１２０ｈがそれぞれ出力した画素値を入力として、各画素値を順番に並べることで８ビット長データ「１１１１０１１１」生成し、出力画素データとして出力する。
【００９４】
（収縮処理）
次に、画像処理装置３００において収縮処理を行い場合を説明するが、上述した膨張処理との違いは、［出力画素値算出］の際の論理演算として論理積を用いることのみであるため、［入力画素値抽出］の説明については省略する。
【００９５】
［出力画素値算出］
画像処理部１２０ａ〜１２０ｈはそれぞれ、得られた９個の画素値について論理積を取ることで、各着目画素の処理後の画素値を決定する。
【００９６】
画像処理部１２０ａは、１番目の着目画素の処理後の画素値として「０」を出力する。
【００９７】
画像処理部１２０ｂは、２番目の着目画素の処理後の画素値として「０」を出力する。
【００９８】
画像処理部１２０ｃは、３番目の着目画素の処理後の画素値として「０」を出力する。
【００９９】
画像処理部１２０ｄは、４番目の着目画素の処理後の画素値として「０」を出力する。
【０１００】
画像処理部１２０ｅは、５番目の着目画素の処理後の画素値として「０」を出力する。
【０１０１】
画像処理部１２０ｆは、６番目の着目画素の処理後の画素値として「０」を出力する。
【０１０２】
画像処理部１２０ｇは、７番目の着目画素の処理後の画素値として「０」を出力する。
【０１０３】
画像処理部１２０ｈは、８番目の着目画素の処理後の画素値として「１」を出力する。
【０１０４】
［出力画素データ生成］
結合部２４０では、画像処理部１２０ａ〜１２０ｈがそれぞれ出力した画素値を入力として、各画素値を順番に並べることで８ビット長データ「０００００００１」生成し、出力画素データとして出力する。
【０１０５】
［画像データ出力］
データ出力部１５０では、上述のようにして出力される出力画素データを順次受け取り、画像データを生成する。
【０１０６】
上述した比較例に示されるとおり、２値画像の画像処理において１個の処理回路（画像処理部１２０）で１個の着目画素を処理するように為されている従来型の画像処理装置においては、複数の着目画素について並列に処理できるようにするためには、並列に処理したい着目画素の個数分の処理回路が必要となる。
【０１０７】
一方、画像処理装置１００として上記で説明した実施形態では、並列的に処理できる着目画素の数が増えても、比較例における画像処理部１２０に相当する、画素列抽出部３０及び画素値決定部４０を複数用意する必要はなく、変換テーブルさえ用意しておけば複数の着目画素の並列処理が可能であるため、処理性能を向上させた場合の回路規模の増大が抑えられている。
【符号の説明】
【０１０８】
１００、２００、３００…画像処理装置
１１、１２、１３、１１１、１１２、１１３…ラインバッファ
２０、１１０…データ入力部
２１、２２、２３、１４０、２４０…結合部
３０…画素列抽出部
３１、３２、３３、１２１、１２２、１２３…セレクタ
４０…画素値決定部
４１、４２、４３…変換部
４４、１２４…論理演算部
５０、１５０…データ出力部
１２０…画像処理部
【図１】
0006464609.tif 000002
【図２】
0006464609.tif 000003
【図３】
0006464609.tif 000004
【図４】
0006464609.tif 000005
【図５】
0006464609.tif 000006
【図６】
0006464609.tif 000007
【図７】
0006464609.tif 000008
【図８】
0006464609.tif 000009
【図９】
0006464609.tif 000010