JP2734959B2 - 仮ラベル付け方法 - Google Patents
仮ラベル付け方法Info
- Publication number
- JP2734959B2 JP2734959B2 JP32936993A JP32936993A JP2734959B2 JP 2734959 B2 JP2734959 B2 JP 2734959B2 JP 32936993 A JP32936993 A JP 32936993A JP 32936993 A JP32936993 A JP 32936993A JP 2734959 B2 JP2734959 B2 JP 2734959B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- run
- mcl
- processor
- pen
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Image Analysis (AREA)
Description
【0001】
【産業上の利用分野】本発明は、ラベリング処理のため
の仮ラベル付け処理を、1次元のSIMD型プロセッサ
アレイ上で効率よく実現するための方法に関する。
の仮ラベル付け処理を、1次元のSIMD型プロセッサ
アレイ上で効率よく実現するための方法に関する。
【0002】
【従来の技術】従来より、ラベリング処理を実現するア
ルゴリズムは、ラスタ走査型のもの、輪郭追跡型のも
の、そして分割統治型のものが存在していた。しかしラ
スタ走査型や輪郭追跡型のアルゴリズムでは処理が全画
素に対し逐次的なものであることから1次元SIMD型
のプロセッサアレイ上では効率が悪かった。また分割統
治型のアルゴリズムはN×Wのメッシュ結合型プロセッ
サに対するものが幾つか提案されているが、それらを1
次元SIMD型プロセッサアレイ上で実行した場合で
は、計算量はラスタ走査型のものと同程度になってしま
うため、1次元SIMD型のプロセッサアレイを有効に
使用できるものではなかった。
ルゴリズムは、ラスタ走査型のもの、輪郭追跡型のも
の、そして分割統治型のものが存在していた。しかしラ
スタ走査型や輪郭追跡型のアルゴリズムでは処理が全画
素に対し逐次的なものであることから1次元SIMD型
のプロセッサアレイ上では効率が悪かった。また分割統
治型のアルゴリズムはN×Wのメッシュ結合型プロセッ
サに対するものが幾つか提案されているが、それらを1
次元SIMD型プロセッサアレイ上で実行した場合で
は、計算量はラスタ走査型のものと同程度になってしま
うため、1次元SIMD型のプロセッサアレイを有効に
使用できるものではなかった。
【0003】
【発明が解決しようとする課題】本発明は、上記の従来
技術であるラベリング処理での仮ラベルを付ける処理
を、1次元SIMD型プロセッサアレイ上で効率よく行
えるように、第1の発明は4連結に基づくラベリング処
理、そして第2の発明は8連結に基づくラベリング処
理、に対応する仮ラベル付け方法を与えることを目的と
している。
技術であるラベリング処理での仮ラベルを付ける処理
を、1次元SIMD型プロセッサアレイ上で効率よく行
えるように、第1の発明は4連結に基づくラベリング処
理、そして第2の発明は8連結に基づくラベリング処
理、に対応する仮ラベル付け方法を与えることを目的と
している。
【0004】
【課題を解決するための手段】W個のSIMD型プロセ
ッサが1次元に接続された1次元SIMD型プロセッサ
アレイで、H行W列の0,1からなる2値画像の各列を
各プロセッサに割り当て、画像内の各連結領域にそれぞ
れ別々のラベルを割り振るラベリング処理での仮ラベル
を付ける方法において、第1の発明に係わる仮ラベル付
け方法は、H行W列の仮ラベルデータを格納するための
記憶スペースKと、プロセッサ毎に4つの記憶スペース
V,PEn,CL,Cと、ある特定のプロセッサ上の1
つの記憶スペースPEclと1つのある程度大きい記憶
スペースの配列Ctableに対し、PEnをプロセッ
サごとに順に1からWまでの値で、PEclをW+1
で、それ以外の記憶スペースを0で初期化する処理0を
実行した後、Vに画像の1行分のデータをロードし、そ
してVが0ならCとCLを0にセットし、Vが1ならC
を1だけインクリメントし、次Vが1かつCLが0なら
CLにPEnの値をセットし、それでもCLが0なら隣
接のプロセッサのVが1かつCLが0以外なら隣接プロ
セッサのCLの値をCLにセットし、それ以外ならCL
にPEclの値をセットしPEclを1だけインクリメ
ントする処理1と、Vが1であるプロセッサの固まりを
ランと呼ぶとして各ランを並列に右端から左端まである
いはその逆の向きに走査し各ランの長さG及び各ラン内
の最大のCの値MCとMCに対応する適当なCLの値M
CLを求める処理2と、各ランを並列に右端から左端ま
であるいはその逆の向きに走査しながら、Cの値が2以
上かつCLがMCLに等しくなければCLとMCLの対
をCtableに登録し、次にCLとCをそれぞれMC
LとMC+G−1の値にセットし、次にPEnがMCL
に等しければPEnを0にセットする処理3と、CLの
値を仮ラベルデータとしてKの1行分に書き込む第4の
処理を、画像の全行に対し順に実行することを特徴とし
ている。
ッサが1次元に接続された1次元SIMD型プロセッサ
アレイで、H行W列の0,1からなる2値画像の各列を
各プロセッサに割り当て、画像内の各連結領域にそれぞ
れ別々のラベルを割り振るラベリング処理での仮ラベル
を付ける方法において、第1の発明に係わる仮ラベル付
け方法は、H行W列の仮ラベルデータを格納するための
記憶スペースKと、プロセッサ毎に4つの記憶スペース
V,PEn,CL,Cと、ある特定のプロセッサ上の1
つの記憶スペースPEclと1つのある程度大きい記憶
スペースの配列Ctableに対し、PEnをプロセッ
サごとに順に1からWまでの値で、PEclをW+1
で、それ以外の記憶スペースを0で初期化する処理0を
実行した後、Vに画像の1行分のデータをロードし、そ
してVが0ならCとCLを0にセットし、Vが1ならC
を1だけインクリメントし、次Vが1かつCLが0なら
CLにPEnの値をセットし、それでもCLが0なら隣
接のプロセッサのVが1かつCLが0以外なら隣接プロ
セッサのCLの値をCLにセットし、それ以外ならCL
にPEclの値をセットしPEclを1だけインクリメ
ントする処理1と、Vが1であるプロセッサの固まりを
ランと呼ぶとして各ランを並列に右端から左端まである
いはその逆の向きに走査し各ランの長さG及び各ラン内
の最大のCの値MCとMCに対応する適当なCLの値M
CLを求める処理2と、各ランを並列に右端から左端ま
であるいはその逆の向きに走査しながら、Cの値が2以
上かつCLがMCLに等しくなければCLとMCLの対
をCtableに登録し、次にCLとCをそれぞれMC
LとMC+G−1の値にセットし、次にPEnがMCL
に等しければPEnを0にセットする処理3と、CLの
値を仮ラベルデータとしてKの1行分に書き込む第4の
処理を、画像の全行に対し順に実行することを特徴とし
ている。
【0005】第2の発明に係わる仮ラベル付け方法は、
H行W列の仮ラベルデータを格納するための記憶スペー
スKと、プロセッサ毎に5つの記憶スペースV,PE
n,CL,C,tempCLと、ある特定のプロセッサ
上の1つの記憶スペースPEclと1つのある程度大き
い記憶スペースの配列Ctableに対し、PEnをプ
ロセッサごとに1からWまでの値で、PEclをW+1
で、それ以外の記憶スペースを0で初期化する処理0を
実行した後、Vに画像の1行分のデータをロードした
後、Vが1かつtempCLが0以外ならtempCL
とCLの対をSStblに登録してからtempCLを
0にセットし、またVが0ならCとCLを0にセット
し、Vが1ならCを1だけインクリメントし、次にVが
1かつCLが0ならCLにPEnの値をセットし、それ
でもCLが0なら隣接のプロセッサのVが1かつCLが
0以外なら隣接プロセッサのCLの値をCLにセット
し、それ以外ならCLにPEclの値をセットしPEc
lを1だけインクリメントする処理1と、Vが1である
プロセッサの固まりをランと呼ぶとして各ランを並列に
右端から左端まであるいはその逆の向きに走査し各ラン
の長さG及び各ラン内の最大のCの値MCとMCに対応
する適当なCLの値MCLを求める処理2と、各ランを
並列に右端から左端まであるいはその逆の向きに走査し
ながら、Cの値が2以上かつCLがMCLに等しくなけ
ればCLとMCLの対をCtableに登録し、次にC
LとCをそれぞれMCLとMC+G−1の値にセット
し、次にPEnがMCLに等しければPEnを0にセッ
トする処理3と、CLの値を仮ラベルデータとしてKの
1行分に書き込み、そして各ランの両端のプロセッサが
そのランのMCLとMCの値を、同一ランに属さない隣
接プロセッサのCLとCにセットし、その際もし同一の
プロセッサのCLとCに対し2つのプロセッサが値をセ
ットしようとする場合は片方だけをセットし、もう一方
のMCLを同じプロセッサのtempCLにセットする
第4の処理を、画像の全行に対し順に実行することを特
徴としている。
H行W列の仮ラベルデータを格納するための記憶スペー
スKと、プロセッサ毎に5つの記憶スペースV,PE
n,CL,C,tempCLと、ある特定のプロセッサ
上の1つの記憶スペースPEclと1つのある程度大き
い記憶スペースの配列Ctableに対し、PEnをプ
ロセッサごとに1からWまでの値で、PEclをW+1
で、それ以外の記憶スペースを0で初期化する処理0を
実行した後、Vに画像の1行分のデータをロードした
後、Vが1かつtempCLが0以外ならtempCL
とCLの対をSStblに登録してからtempCLを
0にセットし、またVが0ならCとCLを0にセット
し、Vが1ならCを1だけインクリメントし、次にVが
1かつCLが0ならCLにPEnの値をセットし、それ
でもCLが0なら隣接のプロセッサのVが1かつCLが
0以外なら隣接プロセッサのCLの値をCLにセット
し、それ以外ならCLにPEclの値をセットしPEc
lを1だけインクリメントする処理1と、Vが1である
プロセッサの固まりをランと呼ぶとして各ランを並列に
右端から左端まであるいはその逆の向きに走査し各ラン
の長さG及び各ラン内の最大のCの値MCとMCに対応
する適当なCLの値MCLを求める処理2と、各ランを
並列に右端から左端まであるいはその逆の向きに走査し
ながら、Cの値が2以上かつCLがMCLに等しくなけ
ればCLとMCLの対をCtableに登録し、次にC
LとCをそれぞれMCLとMC+G−1の値にセット
し、次にPEnがMCLに等しければPEnを0にセッ
トする処理3と、CLの値を仮ラベルデータとしてKの
1行分に書き込み、そして各ランの両端のプロセッサが
そのランのMCLとMCの値を、同一ランに属さない隣
接プロセッサのCLとCにセットし、その際もし同一の
プロセッサのCLとCに対し2つのプロセッサが値をセ
ットしようとする場合は片方だけをセットし、もう一方
のMCLを同じプロセッサのtempCLにセットする
第4の処理を、画像の全行に対し順に実行することを特
徴としている。
【0006】
【実施例】本発明について図面を参照しながら詳細に説
明する。
明する。
【0007】図1、2が第1発明による仮ラベル付け方
法のフローチャートであり、図中の0,1,2,3,4
がそれぞれ本発明の処理0,1,2,3,4を表してい
る。
法のフローチャートであり、図中の0,1,2,3,4
がそれぞれ本発明の処理0,1,2,3,4を表してい
る。
【0008】以下では図3の4行12列の2値画像を例
に第1の発明の実施について説明する。但し図3中の黒
丸は画素値が1の画素を表す。
に第1の発明の実施について説明する。但し図3中の黒
丸は画素値が1の画素を表す。
【0009】図4、5、6、7では第1の発明の処理0
を実行してから、処理1〜4を画像の各行に順に実行す
る様子を示している。画像の第1行(図4)ではランが
一つ(長さ12)だけ存在し、処理2ではラン内の全C
が同値であるためMCLの選択肢として12通り存在す
るが、ここではその中の最小のCLをMCLに選んでい
る。
を実行してから、処理1〜4を画像の各行に順に実行す
る様子を示している。画像の第1行(図4)ではランが
一つ(長さ12)だけ存在し、処理2ではラン内の全C
が同値であるためMCLの選択肢として12通り存在す
るが、ここではその中の最小のCLをMCLに選んでい
る。
【0010】処理3では、同一ラン内のCL、Cをそれ
ぞれMCL、MC+G−1に書き換え、またMCLに等
しいPEnを0に書き換え使用済みの印を付ける(図の
丸印)。この使用済みのPEn値がこの長さ12のラン
に付けられた仮ラベル番号となる。処理3で得られたC
Lが画像の第1行に対する仮ラベルデータであり、処理
4ではこのCLをKに書き込み保持する。
ぞれMCL、MC+G−1に書き換え、またMCLに等
しいPEnを0に書き換え使用済みの印を付ける(図の
丸印)。この使用済みのPEn値がこの長さ12のラン
に付けられた仮ラベル番号となる。処理3で得られたC
Lが画像の第1行に対する仮ラベルデータであり、処理
4ではこのCLをKに書き込み保持する。
【0011】画像の第2行(図5)ではランが3つ(共
に長さ1)存在し、処理1では先の行の処理履歴から3
つのランに共にCLに1、Cに13を付け、処理2では
3つのランに対して共にMCLが1、MCが13と求ま
る。処理3では同一ラン内のCL、Cをそれぞれ対応の
MCL、MC+G−1に書き換え、また今回は使用済み
の印を付けるべき新たなPEnは存在しない。処理3で
得られたCLが画像の第2行に対する仮ラベルデータで
あり、処理4でこのCLをKに書き込み保持する。
に長さ1)存在し、処理1では先の行の処理履歴から3
つのランに共にCLに1、Cに13を付け、処理2では
3つのランに対して共にMCLが1、MCが13と求ま
る。処理3では同一ラン内のCL、Cをそれぞれ対応の
MCL、MC+G−1に書き換え、また今回は使用済み
の印を付けるべき新たなPEnは存在しない。処理3で
得られたCLが画像の第2行に対する仮ラベルデータで
あり、処理4でこのCLをKに書き込み保持する。
【0012】画像の第3行(図6)ではランが4つ(長
さはそれぞれ1,4,1,1)存在する。左からみて第
1のランに属する第1画素に対しては先の行の処理履歴
よりCLとPEnが共に0、さらに隣接のVもCLも0
であるため、処理1ではCには1、CLにはPEclの
値(図の丸印)がセットされ、またPEclを1だけイ
ンクリメントする。第2のランに属する4画素の内の両
端2画素は先の行の処理履歴よりCは14、CLは1と
なるが、間の2画素は先の行の処理履歴でCLが共に0
かつPEnが0でないので、Cは共に1でCLは対応す
るPEnの値に従いそれぞれ4、5の値がセットされ
る。第3と第4のランに属する各1画素は、先の行の処
理履歴でCLが共に0かつPEnが0でないのでCは共
に1、CLは対応するPEnからそれぞれ9,12とな
る。
さはそれぞれ1,4,1,1)存在する。左からみて第
1のランに属する第1画素に対しては先の行の処理履歴
よりCLとPEnが共に0、さらに隣接のVもCLも0
であるため、処理1ではCには1、CLにはPEclの
値(図の丸印)がセットされ、またPEclを1だけイ
ンクリメントする。第2のランに属する4画素の内の両
端2画素は先の行の処理履歴よりCは14、CLは1と
なるが、間の2画素は先の行の処理履歴でCLが共に0
かつPEnが0でないので、Cは共に1でCLは対応す
るPEnの値に従いそれぞれ4、5の値がセットされ
る。第3と第4のランに属する各1画素は、先の行の処
理履歴でCLが共に0かつPEnが0でないのでCは共
に1、CLは対応するPEnからそれぞれ9,12とな
る。
【0013】処理2では図6に示すように各ランのG、
MC、MCLを求め、処理3では各ランのCL、Cをそ
れぞれMCL、MC+G−1に書き換えると同時に、新
たに使用済みとなった9,12に等しいPEnを0に書
き換える。そして処理4では処理3で得られたCLを画
像の第3行に対する仮ラベルデータとしてKに書き込み
保持する。
MC、MCLを求め、処理3では各ランのCL、Cをそ
れぞれMCL、MC+G−1に書き換えると同時に、新
たに使用済みとなった9,12に等しいPEnを0に書
き換える。そして処理4では処理3で得られたCLを画
像の第3行に対する仮ラベルデータとしてKに書き込み
保持する。
【0014】画像の最終行である第4行(図7)ではラ
ンが2つ(長さ1と5)存在する。処理1では、左から
みて第1のランに属する1画素は先の行の処理履歴でC
Lが0でかつPEnが0でないのでCには1、CLには
対応するのPEn値である2がセットされ、第2のラン
では第9と第12画素は先の行の処理履歴によりCが
2、CLがそれぞれ9,12であるが、他の画素(第
8,10,11画素)は先の行の処理履歴でCLが0で
かつPEnが0でないのでCには1、CLには対応する
のPEn値である8,10,11がそれぞれに付けられ
る。
ンが2つ(長さ1と5)存在する。処理1では、左から
みて第1のランに属する1画素は先の行の処理履歴でC
Lが0でかつPEnが0でないのでCには1、CLには
対応するのPEn値である2がセットされ、第2のラン
では第9と第12画素は先の行の処理履歴によりCが
2、CLがそれぞれ9,12であるが、他の画素(第
8,10,11画素)は先の行の処理履歴でCLが0で
かつPEnが0でないのでCには1、CLには対応する
のPEn値である8,10,11がそれぞれに付けられ
る。
【0015】続く処理2では(MCLに複数の選択肢が
ある場合は小さいものを選ぶようにして)両ランのM
C、MCLを求め、そして処理3では両ランのCL、C
をそれぞれMCL、MC+G−1に書き換え、新たに使
用済みとなった2に等しいPEnを0に書き換えると同
時に、第2のランにおいてCが2である第12画素のC
Lの値が12から、MCLである9に書き換えられ、そ
してCtableへ(12,9)の仮ラベル対が登録さ
れる。処理4では処理3で得られたCLを画像の第4行
に対する仮ラベルデータとしてKに書き込み保持する。
ある場合は小さいものを選ぶようにして)両ランのM
C、MCLを求め、そして処理3では両ランのCL、C
をそれぞれMCL、MC+G−1に書き換え、新たに使
用済みとなった2に等しいPEnを0に書き換えると同
時に、第2のランにおいてCが2である第12画素のC
Lの値が12から、MCLである9に書き換えられ、そ
してCtableへ(12,9)の仮ラベル対が登録さ
れる。処理4では処理3で得られたCLを画像の第4行
に対する仮ラベルデータとしてKに書き込み保持する。
【0016】こうして得られた図3の画像に対する仮ラ
ベルデータKを図8に示す。最終的なラベリング処理の
結果は、Kの仮ラベルデータと、Ctableに登録さ
れている情報(この場合は(12,9)という情報の
み)、及び従来のラベル分類手法のいずれか(例えば電
子通信学会論文誌’89/2Vol.J72−D2 N
o.2 pp.247−255)を用いて仮ラベルデー
タKの書き換えを行えば得ることができる。図9が図8
の仮ラベルに分類処理を施した後に得られるラベル画像
であり、また図の丸印が分類処理で書き換えられた場所
を示している。
ベルデータKを図8に示す。最終的なラベリング処理の
結果は、Kの仮ラベルデータと、Ctableに登録さ
れている情報(この場合は(12,9)という情報の
み)、及び従来のラベル分類手法のいずれか(例えば電
子通信学会論文誌’89/2Vol.J72−D2 N
o.2 pp.247−255)を用いて仮ラベルデー
タKの書き換えを行えば得ることができる。図9が図8
の仮ラベルに分類処理を施した後に得られるラベル画像
であり、また図の丸印が分類処理で書き換えられた場所
を示している。
【0017】図10、11が第2の発明による仮ラベル
付け方式の構成図であり、図中の0,1,2,3,4が
それぞれ本発明の処理0,1,2,3,4を表してい
る。
付け方式の構成図であり、図中の0,1,2,3,4が
それぞれ本発明の処理0,1,2,3,4を表してい
る。
【0018】以下では先の第1の発明と同様に図3の4
行12列の2値画像を例に第2の発明の実施について説
明する。
行12列の2値画像を例に第2の発明の実施について説
明する。
【0019】図12、13、14、15は第2の発明の
処理0を実行してから、処理1〜4を画像の各行に順に
実行する様子を示したものである。画像の第1行(図1
2)ではランが一つ(長さ12)だけ存在し、処理2で
はラン内の全Cが同値であるためMCLの選択肢として
12通り存在するが、ここではその中の最小のCLをM
CLに選んでいる。
処理0を実行してから、処理1〜4を画像の各行に順に
実行する様子を示したものである。画像の第1行(図1
2)ではランが一つ(長さ12)だけ存在し、処理2で
はラン内の全Cが同値であるためMCLの選択肢として
12通り存在するが、ここではその中の最小のCLをM
CLに選んでいる。
【0020】処理3では、同一ラン内のCL、Cをそれ
ぞれMCL、MC+G−1に書き換え、またMCLに等
しいPEnを0に書き換え使用済みの印を付ける(図の
丸印)。この使用済みのPEn値がこの長さ12のラン
に付けられた仮ラベル番号となる。処理3で得られたC
Lが画像の第1行に対する仮ラベルデータであり、処理
4ではこのCLをKに書き込み保持する。なお、この場
合ランの両端にはプロセッサが存在しないので、MC
L,MCの伝搬操作は行わない。
ぞれMCL、MC+G−1に書き換え、またMCLに等
しいPEnを0に書き換え使用済みの印を付ける(図の
丸印)。この使用済みのPEn値がこの長さ12のラン
に付けられた仮ラベル番号となる。処理3で得られたC
Lが画像の第1行に対する仮ラベルデータであり、処理
4ではこのCLをKに書き込み保持する。なお、この場
合ランの両端にはプロセッサが存在しないので、MC
L,MCの伝搬操作は行わない。
【0021】画像の第2行(図13)ではランが3つ
(共に長さ1)存在し、処理1では先の行の処理履歴か
ら3つのランに共にCLに1、Cに13を付け、処理2
では3つのランに対して共にMCLが1、MCが13と
求まる。
(共に長さ1)存在し、処理1では先の行の処理履歴か
ら3つのランに共にCLに1、Cに13を付け、処理2
では3つのランに対して共にMCLが1、MCが13と
求まる。
【0022】処理3では同一ラン内のCL、Cをそれぞ
れ対応のMCL、MC+G−1に書き換え、また今回は
使用済みの印を付けるべき新たなPEnは存在しない。
処理3で得られたCLが画像の第2行に対する仮ラベル
データであり、処理4でこのCLをKに書き込み保持
し、かつ3つのランそれぞれのMCL及びMCをランの
両端にある、ランに属さないプロセッサのCL,Cにセ
ットするという形でMCL、MCの伝搬を行う。
れ対応のMCL、MC+G−1に書き換え、また今回は
使用済みの印を付けるべき新たなPEnは存在しない。
処理3で得られたCLが画像の第2行に対する仮ラベル
データであり、処理4でこのCLをKに書き込み保持
し、かつ3つのランそれぞれのMCL及びMCをランの
両端にある、ランに属さないプロセッサのCL,Cにセ
ットするという形でMCL、MCの伝搬を行う。
【0023】画像の第3行(図14)ではランが4つ
(長さはそれぞれ1,4,1,1)存在する。左からみ
て第1のランに属する第1画素に対しては先の行の処理
履歴よりCLとPEnが共に0、さらに隣接のVもCL
も0であるため、処理1ではCには1、CLにはPEc
lの値(図の丸印)がセットされ、またPEclを1だ
けインクリメントする。第2と第3のランに属する全画
素は共に先の行の処理履歴よりCは14、CLは1とな
る。第4のランの1画素は、先の行の処理履歴でのCL
が0かつPEnが0でないのでCは1、CLは対応する
PEnから12にセットされる。
(長さはそれぞれ1,4,1,1)存在する。左からみ
て第1のランに属する第1画素に対しては先の行の処理
履歴よりCLとPEnが共に0、さらに隣接のVもCL
も0であるため、処理1ではCには1、CLにはPEc
lの値(図の丸印)がセットされ、またPEclを1だ
けインクリメントする。第2と第3のランに属する全画
素は共に先の行の処理履歴よりCは14、CLは1とな
る。第4のランの1画素は、先の行の処理履歴でのCL
が0かつPEnが0でないのでCは1、CLは対応する
PEnから12にセットされる。
【0024】処理2では図14に示すように各ランの
G、MC、MCLを求め、処理3では各ランのCL、C
をそれぞれMCL、MC+G−1に書き換えると同時
に、新たに使用済みとなった12に等しいPEnを0に
書き換える。処理4では処理3で得られたCLを画像の
第3行に対する仮ラベルデータとしてKに書き込み保持
し、かつ4つのランによるMCL、MC伝搬を行う。こ
こで第1と第2のランの間に挟まれているプロセッサ2
ではMCL、MC伝搬の衝突が発生したため、ここでは
MCが大きいMCL(=1)の方をプロセッサ2に伝搬
し、他方(MCL=13)をtempCLにセットする
(図の丸印)。
G、MC、MCLを求め、処理3では各ランのCL、C
をそれぞれMCL、MC+G−1に書き換えると同時
に、新たに使用済みとなった12に等しいPEnを0に
書き換える。処理4では処理3で得られたCLを画像の
第3行に対する仮ラベルデータとしてKに書き込み保持
し、かつ4つのランによるMCL、MC伝搬を行う。こ
こで第1と第2のランの間に挟まれているプロセッサ2
ではMCL、MC伝搬の衝突が発生したため、ここでは
MCが大きいMCL(=1)の方をプロセッサ2に伝搬
し、他方(MCL=13)をtempCLにセットする
(図の丸印)。
【0025】画像の最終行である第4行(図15)では
ランが2つ(長さ1と5)存在する。処理1では先の行
の処理履歴から、左からみて第1のランに属する画素に
はCは17、CLは1、第2のランは、画素8から10
までがCLは1、Cは14、画素11と12はCLが1
2、Cが2となり、またプロセッサ2でのVが1かつt
empCLが13なので、Ctableへ(13,1)
の仮ラベル対を登録する。
ランが2つ(長さ1と5)存在する。処理1では先の行
の処理履歴から、左からみて第1のランに属する画素に
はCは17、CLは1、第2のランは、画素8から10
までがCLは1、Cは14、画素11と12はCLが1
2、Cが2となり、またプロセッサ2でのVが1かつt
empCLが13なので、Ctableへ(13,1)
の仮ラベル対を登録する。
【0026】処理2では両ランのMC、MCLを求め、
そして処理3では両ランのCL、CをそれぞれMCL、
MC+G−1に書き換えると同時に、第2のランにおい
てCが2である第12画素のCLが12をMCL(=
1)に書き換えたためCtableへ(12,1)の仮
ラベル対を登録する。
そして処理3では両ランのCL、CをそれぞれMCL、
MC+G−1に書き換えると同時に、第2のランにおい
てCが2である第12画素のCLが12をMCL(=
1)に書き換えたためCtableへ(12,1)の仮
ラベル対を登録する。
【0027】処理4では処理3で得られたCLを画像の
第4行に対する仮ラベルデータとしてKに書き込み保持
し、そして2つのランによるMCL、MC伝搬を行う。
第4行に対する仮ラベルデータとしてKに書き込み保持
し、そして2つのランによるMCL、MC伝搬を行う。
【0028】こうして得られた図3の画像に対する仮ラ
ベルデータKを図16に示す。最終的なラベリング処理
の結果は、Kの仮ラベルデータと、Ctableに登録
されている情報(この場合は(12,1)と(13,
1)の2情報)、及び従来のラベル分類手法のいずれか
(例えば電子通信学会論文誌’89/2Vol.J72
−D2 No.2 pp.247−255)を用いて仮
ラベルデータKの書き換えを行えば得ることができる。
ベルデータKを図16に示す。最終的なラベリング処理
の結果は、Kの仮ラベルデータと、Ctableに登録
されている情報(この場合は(12,1)と(13,
1)の2情報)、及び従来のラベル分類手法のいずれか
(例えば電子通信学会論文誌’89/2Vol.J72
−D2 No.2 pp.247−255)を用いて仮
ラベルデータKの書き換えを行えば得ることができる。
【0029】図17が図16の仮ラベルに分類処理を施
した後に得られるラベル画像であり、図の丸印が分類処
理で書き換えられた場所を示している。
した後に得られるラベル画像であり、図の丸印が分類処
理で書き換えられた場所を示している。
【0030】以上の説明から、本発明である第1及び第
2の発明による画像の各行に対する処理時間は、その行
に含まれるランの中で最も画素数の長いものの長さMa
xRunに依存することがわかる。
2の発明による画像の各行に対する処理時間は、その行
に含まれるランの中で最も画素数の長いものの長さMa
xRunに依存することがわかる。
【0031】そこで、H行W列からなる画像のH行のM
axRunの平均値をAveMaxRunと記すとする
と、本発明の計算量は、H行W列からなる画像に対しO
(H<AveMaxRun)程度である。
axRunの平均値をAveMaxRunと記すとする
と、本発明の計算量は、H行W列からなる画像に対しO
(H<AveMaxRun)程度である。
【0032】
【発明の効果】以上詳細に説明したように、本発明によ
る仮ラベル付け方式を採用することで、仮ラベルを付け
るのに必要な計算量はH行W列の画像に対しラスタ走査
型のものがO(H×W)であるのに比べ、本発明はO
(H×AveMaxRun)程度である。一般にW<A
veMaxRunであり、また多くの画像ではW《Av
eMaxRunであることから、本発明を使用すること
で1次元のSIMD型プロセッサアレイ上で従来よりも
効率のよい仮ラベル付け処理を行うことが可能である。
る仮ラベル付け方式を採用することで、仮ラベルを付け
るのに必要な計算量はH行W列の画像に対しラスタ走査
型のものがO(H×W)であるのに比べ、本発明はO
(H×AveMaxRun)程度である。一般にW<A
veMaxRunであり、また多くの画像ではW《Av
eMaxRunであることから、本発明を使用すること
で1次元のSIMD型プロセッサアレイ上で従来よりも
効率のよい仮ラベル付け処理を行うことが可能である。
【図1】第1の発明のフローチャートである。
【図2】第1の発明のフローチャートである。
【図3】第1の発明の実施例で使用した2値画像であ
る。
る。
【図4】第1の発明の実施例である。
【図5】第1の発明の実施例である。
【図6】第1の発明の実施例である。
【図7】第1の発明の実施例である。
【図8】第1の発明の実施例の結果である。
【図9】第1の発明の実施例の結果に対するラベル分類
の結果である。
の結果である。
【図10】第2の発明のフローチャートである。
【図11】第2の発明のフローチャートである。
【図12】第2の発明の実施例である。
【図13】第2の発明の実施例である。
【図14】第2の発明の実施例である。
【図15】第2の発明の実施例である。
【図16】第2の発明に対する実施例の結果である。
【図17】第2の発明に対する実施例の結果に対するラ
ベル分類の結果である。
ベル分類の結果である。
Claims (2)
- 【請求項1】 W個のSIMD型プロセッサが1次元に
接続された1次元SIMD型プロセッサアレイで、H行
W列の0,1からなる2値画像の各列を各プロセッサに
割り当て、画像内の各連結領域にそれぞれ別々のラベル
を割り振るラベリング処理での仮ラベルを付ける方法に
おいて、 H行W列の仮ラベルデータを格納するための記憶スペー
スKと、プロセッサ毎に4つの記憶スペースV,PE
n,CL,Cと、ある特定のプロセッサ上の1つの記憶
スペースPEclと1つのある程度大きい記憶スペース
の配列Ctableに対し、PEnをプロセッサごとに
順に1からWまでの値で、PEclをW+1で、それ以
外の記憶スペースを0で初期化する処理0を実行した
後、Vに画像の1行分のデータをロードし、Vが0なら
CとCLを0にセットし、Vが1ならCを1だけインク
リメントし、Vが1かつCLが0ならCLにPEnの値
をセットし、それでもCLが0なら隣接のプロセッサの
Vが1かつCLが0以外なら隣接プロセッサのCLの値
をCLにセットし、それ以外ならCLにPEclの値を
セットしPEclを1だけインクリメントする処理1
と、Vが1であるプロセッサの固まりをランと呼ぶとし
て各ランを並列に右端から左端まであるいはその逆の向
きに走査し各ランの長さG及び各ラン内の最大のCの値
MCとMCに対応する適当なCLの値MCLを求める処
理2と、各ランを並列に右端から左端まであるいはその
逆の向きに走査しながら、Cの値が2以上かつCLがM
CLに等しくなければCLとMCLの対をCtable
に登録し、次にCLとCをそれぞれMCLとMC+G−
1の値にセットし、次にPEnがMCLに等しければP
Enを0にセットする処理3と、CLの値を仮ラベルデ
ータとしてKの1行分に書き込む第4の処理を、画像の
全行に対し順に実行することを特徴とする仮ラベル付け
方法。 - 【請求項2】 H行W列の仮ラベルデータを格納するた
めの記憶スペースKと、プロセッサ毎に5つの記憶スペ
ースV,PEn,CL,C,tempCLと、ある特定
のプロセッサ上の1つの記憶スペースPEclと1つの
ある程度大きい記憶スペースの配列Ctableに対
し、PEnをプロセッサごとに1からWまでの値で、P
EclをW+1で、それ以外の記憶スペースを0で初期
化する処理0を実行した後、Vに画像の1行分のデータ
をロードした後、Vが1かつtempCLが0以外なら
tempCLとCLの対をSStblに登録してからt
empCLを0にセットし、またVが0ならCとCLを
0にセットし、Vが1ならCを1だけインクリメント
し、次にVが1かつCLが0ならCLにPEnの値をセ
ットし、それでもCLが0なら隣接のプロセッサのVが
1かつCLが0以外なら隣接プロセッサのCLの値をC
Lにセットし、それ以外ならCLにPEclの値をセッ
トしPEclを1だけインクリメントする処理1と、V
が1であるプロセッサの固まりをランと呼ぶとして各ラ
ンを並列に右端から左端まであるいはその逆の向きに走
査し各ランの長さG及び各ラン内の最大のCの値MCと
MCに対応する適当なCLの値MCLを求める処理2
と、各ランを並列に右端から左端まであるいはその逆の
向きに走査しながら、Cの値が2以上かつCLがMCL
に等しくなければCLとMCLの対をCtableに登
録し、次にCLとCをそれぞれMCLとMC+G−1の
値にセットし、次にPEnがMCLに等しければPEn
を0にセットする処理3と、CLの値を仮ラベルデータ
としてKの1行分に書き込み、そして各ランの両端のプ
ロセッサがそのランのMCLとMCの値を、同一ランに
属さない隣接プロセッサのCLとCにセットし、その際
もし同一のプロセッサのCLとCに対し2つのプロセッ
サが値をセットしようとする場合は片方だけをセットし
もう一方のMCLを同じプロセッサのtempCLにセ
ットする第4の処理を、画像の全行に対し順に実行する
ことを特徴とする仮ラベル付け方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32936993A JP2734959B2 (ja) | 1993-12-27 | 1993-12-27 | 仮ラベル付け方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32936993A JP2734959B2 (ja) | 1993-12-27 | 1993-12-27 | 仮ラベル付け方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07192130A JPH07192130A (ja) | 1995-07-28 |
JP2734959B2 true JP2734959B2 (ja) | 1998-04-02 |
Family
ID=18220687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32936993A Expired - Lifetime JP2734959B2 (ja) | 1993-12-27 | 1993-12-27 | 仮ラベル付け方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2734959B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4237046B2 (ja) | 2003-12-24 | 2009-03-11 | 株式会社リコー | 画像処理装置 |
KR101199195B1 (ko) | 2004-08-20 | 2012-11-07 | 후지제롯쿠스 가부시끼가이샤 | 라벨 이미지의 생성 방법 및 화상처리 시스템 |
US8041114B2 (en) * | 2007-06-15 | 2011-10-18 | Microsoft Corporation | Optimizing pixel labels for computer vision applications |
JP5104497B2 (ja) * | 2008-04-10 | 2012-12-19 | ソニー株式会社 | 情報処理装置、および情報処理方法、並びにプログラム |
-
1993
- 1993-12-27 JP JP32936993A patent/JP2734959B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH07192130A (ja) | 1995-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7337205B2 (en) | Matrix multiplication in a vector processing system | |
CN112991142B (zh) | 图像数据的矩阵运算方法、装置、设备及存储介质 | |
JP2734959B2 (ja) | 仮ラベル付け方法 | |
US8135229B1 (en) | Image processing method and device | |
US10949694B2 (en) | Method and apparatus for determining summation of pixel characteristics for rectangular region of digital image avoiding non-aligned loads using multiple copies of input data | |
JPS60191293A (ja) | Crtデイスプレイ装置の高速直線補間回路 | |
JP2021005242A (ja) | 情報処理装置、情報処理プログラム、及び情報処理方法 | |
US6580836B2 (en) | Scan line rendering of convolutions | |
Helman et al. | Efficient image processing algorithms on the scan line array processor | |
US6938064B1 (en) | Method for computing fast Fourier transform and inverse fast Fourier transform | |
US7340113B2 (en) | Image processing apparatus with SIMD-type microprocessor to perform labeling | |
CN110087088B (zh) | 一种基于运动估计的数据存储方法、终端设备及存储介质 | |
JP2812292B2 (ja) | 画像処理装置 | |
JP3860545B2 (ja) | 画像処理装置及び画像処理方法 | |
Hambrusch et al. | Parallel algorithms for gray-scale image component labeling on a mesh-connected computer | |
US6311188B1 (en) | Method and apparatus for element selection exhausting an entire array | |
US4807297A (en) | Neighbor image processing device | |
US11138015B2 (en) | Spatial pipelining of software reductions and scans | |
JP4720805B2 (ja) | 画像処理装置及びプログラム | |
US7609861B2 (en) | Determination of the orientation of the ridges of a fingerprint | |
EP0279211A2 (en) | Table lookup addressing by dichotomy window generation | |
US20060066620A1 (en) | Method, software and apparatus for efficient polygon rendering | |
JPH11149554A (ja) | 3x3グリッドのランクに基づくフィルタのSIMD計算 | |
GB2180118A (en) | Image processing | |
JP2862387B2 (ja) | 超高速画像処理システムのフィルタリング処理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19971202 |