JP2004206387A - 画像処理方法およびプロセッサおよび画像処理装置 - Google Patents
画像処理方法およびプロセッサおよび画像処理装置 Download PDFInfo
- Publication number
- JP2004206387A JP2004206387A JP2002374515A JP2002374515A JP2004206387A JP 2004206387 A JP2004206387 A JP 2004206387A JP 2002374515 A JP2002374515 A JP 2002374515A JP 2002374515 A JP2002374515 A JP 2002374515A JP 2004206387 A JP2004206387 A JP 2004206387A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- register
- image data
- data
- processor element
- 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.)
- Pending
Links
Images
Landscapes
- Image Processing (AREA)
- Multi Processors (AREA)
Abstract
【課題】同数のPEを備えるSIMD方式プロセッサと比較し、同じ画像処理を実施しながら無効画素割合を減少させ、処理効率化を達成する画像処理方法等を提供する。
【解決手段】プロセッサエレメント数と同じ画素数の第1画像データ範囲を、前記プロセッサエレメントの第1端から順に、該プロセッサエレメントに内蔵の第1レジスタに記憶させ、前記第1画像データ範囲に続くプロセッサエレメント数と同じ画素数の第2画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵の第2レジスタに記憶させ、前記第1画像データ範囲の画像処理と第2画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行う。
【選択図】 図7
【解決手段】プロセッサエレメント数と同じ画素数の第1画像データ範囲を、前記プロセッサエレメントの第1端から順に、該プロセッサエレメントに内蔵の第1レジスタに記憶させ、前記第1画像データ範囲に続くプロセッサエレメント数と同じ画素数の第2画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵の第2レジスタに記憶させ、前記第1画像データ範囲の画像処理と第2画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行う。
【選択図】 図7
Description
【0001】
【発明の属する技術分野】
本発明は、画像処理方法およびプロセッサおよび画像処理装置に関し、特に、同じ数のプロセッサエレメントを備えるSIMD方式プロセッサと比較して、同じ画像処理を実施しながら無効画素の割合を減少させ、処理の効率化を達成する画像処理方法およびプロセッサおよび画像処理装置に関する。
【0002】
【従来の技術】
通常、SIMD(Single Instruction-stream Multiple Data-stream)方式のプロセッサを用いて画像処理を行う場合、水平走査方向にProcessor Element(プロセッサエレメント、以下、PEと記す)を展開する。SIMD方式プロセッサに装備しているPEが、水平走査方向の画素数より少ない場合、水平走査方向の画素をPE数単位で分割し、画像処理を複数回反復実施することで、全画素の画像処理を行う。この画像処理方法は、例えば特許文献1に記載されているSIMD方式プロセッサにみることができる(特許文献1)。
【0003】
水平走査方向に480個のデータが並ぶ画像処理を、96のPEを備えるSIMD方式プロセッサで処理する場合を考える。この場合、図9に示すように、96データ単位で5回の反復実施により、全480データの処理を完遂できることが判る。
しかし、フィルター処理などの画像処理を行う場合、注目画素の隣接する画素を参照して処理を行うため、SIMDの両端に位置するPEでは、隣接PEが存在せず、従って有効な隣接データを参照できず、正しい結果が得られない。
【0004】
通常、正常な結果を得られない部分を切り捨てて、有効な範囲だけを結果として採用するので、SIMD方式プロセッサに装備されているPE数が、有効範囲と等しいわけではない。
前述の96のPEを備えたSIMD方式プロセッサにおいて、隣接データを参照するたびに有効範囲が減少していく様子を、図10に示す。図10の例では、2つ隣のデータを参照するフィルター処理を8回行うことで、有効範囲が64画素に減少している。
【0005】
次に64画素に減少した有効範囲で、前述の水平走査方向480画素の処理を行う場合を、図11に示す。図示のように、全480画素の処理を行うために、7.5回が必要となることが判る。
無効になる画素の数は、フィルター処理の内容で固定であるため、SIMD方式プロセッサに備えられるPE数が小さいほど、有効画素の割合が減少し、効率が悪化する。
【0006】
【特許文献1】
特開2001-134538号公報(段落番号0015〜0031 図1)
【0007】
【発明が解決しようとする課題】
しかしながら、近年は画像処理の精度はますます向上しており、水平走査方向の画素は増加する傾向にある。水平走査方向に対し、反復実行を行う方法の場合、反復回数が増加することを意味する。
SIMD方式プロセッサが備えているPE数に対する有効画素範囲の減少は、さらに反復回数の増加につながり、ひいては全体の画像処理に要する時間の増大となる。
【0008】
そこで本発明の課題は、同じ数のPEを備えるSIMD方式プロセッサと比較して、同じ画像処理を実施しながら無効画素の割合を減少させ、処理の効率化を達成する画像処理方法およびプロセッサおよび画像処理装置を提供することである。
【0009】
【課題を解決するための手段】
前記課題を解決するために請求項1の発明は、画像データの主走査方向に連続する画素を、SIMD方式プロセッサの1列に装備されたプロセッサエレメント数に応じて分割し、画像処理を行う画像処理方法であって、
前記プロセッサエレメント数と同じ画素数の第1画像データ範囲を、前記プロセッサエレメントの第1端から順に、該プロセッサエレメントに内蔵の第1レジスタに記憶させ、
前記第1画像データ範囲に続くプロセッサエレメント数と同じ画素数の第2画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵の第2レジスタに記憶させ、
前記第1画像データ範囲の画像処理と第2画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行う方法としてある。
【0010】
このようにすれば、画像処理データをPE数の倍の範囲で読込み、前半と後半の境目で正確な隣接画像データを参照できるので、境目における無効データの発生を防止でき、画像処理の効率化が図れる。
また、前半と後半のデータの並びを逆順にすることで、前半と後半のデータの境目がPEアレイの一端だけに集中し、参照画素データが互いに比較的近いPEに位置することができる。
【0011】
また、請求項2では、SIMD方式プロセッサの隣接するプロセッサエレメントが互いのレジスタ内容を参照し演算する第1レジスタバスと、
プロセッサエレメントの演算部へ入力するデータが該プロセッサエレメント内のレジスタか、前記レジスタバスを経て伝えられる隣接するプロセッサエレメントのレジスタか、を選択する第1マルチプレクサと、
プロセッサエレメントアレイの少なくとも一方の端に位置するプロセッサエレメントもしくは端から数個のプロセッサエレメントである端プロセッサエレメントに対応するレジスタからデータを読み出す第2レジスタバスと、
前記端プロセッサエレメントにおいては、存在しない側のレジスタ参照経路の代りとして、前記プロセッサエレメントより1つ多く備えた経路を選択する第2マルチプレクサとを備えた構成としてある。
【0012】
このようにすれば、端のPEレジスタには通常のレジスタバスとは別に第2レジスタバスを備えているため、端に位置するPEであっても、範囲を越えての画素データ参照が可能となり、正常な処理結果を得られ、有効範囲の減少を回避できる。従って、画像処理の効率が良くなり処理の高速化が実現できる。
【0013】
また、請求項3では、画像データの主走査方向に連続する画素を、SIMD方式プロセッサに装備されるプロセッサエレメント数に応じて分割し、
プロセッサエレメント数と同じ画素数の第1画像データ範囲を、プロセッサエレメントの第1端から順に該プロセッサエレメントに内蔵の第1レジスタに記憶させ、
前記第1画像データ範囲に続くプロセッサエレメント数と同じ画素数の第2画像データ範囲を、前記第1端の反対端である第2端から逆順にプロセッサエレメントに内蔵の第2レジスタに記憶させる構成としてある。
【0014】
このようにすれば、外部入出力装置を介して画像メモリとのデータ転送を行うことで、画像データを請求項1で示す効果のある配置に転送できる。
【0015】
【発明の実施の形態】
以下、本発明を図示の実施の形態に基づいて説明する。
図1に一般的なSIMD方式プロセッサの概略構成例を示す。
グロバールプロセッサ10:このブロックはいわゆるSISDタイプのプロセッサであり、プログラムRAMとデータRAMを内蔵し、プログラムを解読し各種制御信号を生成する。
【0016】
この各種制御信号は内蔵する各種ブロックの制御以外にも、レジスタファイル20,演算アレイ30に供給される。また、GP(グロバールプロセッサ)命令実行時は内蔵する汎用レジスタ、ALU(算術論理演算器)等を使用して各種演算処理,プログラム制御処理を行う。
【0017】
レジスタファイル20は、PE(プロセッサエレメント)命令で処理されるデータを保持している。PE命令はSIMDタイプの命令であり、レジスタファイル20に保持されている複数のデータを同時に同じ処理を行う。
【0018】
このレジスタファイル20からのデータの読み出し/書き込みの制御は、グロバールプロセッサ10からの制御によって行われる。読み出されたデータは演算アレイ30に送られ、演算アレイ30での演算処理後にレジスタファイル20に書き込まれる。また、レジスタファイル20はプロセッサ外部からのアクセスが可能であり、グロバールプロセッサ10の制御とは別に、外部から特定のレジスタを読み出し/書き込みが行われる。
【0019】
演算アレイ30では、PE命令の演算処理が行われる。処理の制御は、すべてグロバールプロセッサ10から行われる。
画像メモリ40は、処理する元の画像データを記憶し、処理後の画像データを記憶する。
【0020】
外部入出力装置50は、画像メモリ40から処理する元の画像データを読み出し、PEのレジスタファイル20に書き込む、あるいはレジスタファイル20から処理後の画像データを読み出し、画像メモリ40に書き込む。
【0021】
図2は、一般的なSIMD方式プロセッサの詳細な構成例である。
グロバールプロセッサ10には、該プロセッサ10のプログラム格納用のプログラムRAM(Program-RAM)と演算データ格納用のデータRAM(Data-RAM)が内蔵されている。
【0022】
さらに、プログラムのアドレスを保持するプログラムカウンタ(PC)、演算処理のデータ格納のための汎用レジスタであるG0〜G3レジスタ、レジスタ退避,復帰時に退避先データRAMのアドレスを保持しているスタックポインタ(SP)、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ(LS)、同じくIRQ時とNMI時の分岐元アドレスを保持するLI,LNレジスタ、プロセッサの状態を保持しているプロセッサステータスレジスタ(P)が内蔵されている。
【0023】
これらのレジスタと図示省略の命令デコーダ,ALU,メモリ制御回路,割り込み制御回路,外部I/O制御回路,GP演算制御回路を使用して、GP命令の実行が行われる。
PE命令実行時は、命令デコーダ,図示省略のレジスタファイル制御回路,PE演算制御回路を使用して、レジスタファイル20の制御と演算アレイ30の制御を行う。
【0024】
レジスタファイル20には各PEに8ビットのレジスタが複数本内蔵されており、PE数分の組みがアレイ構成になっている。レジスタはPEごとにR0、R1、R2、...と呼ばれている。それぞれのレジスタは演算アレイ30に対してポートを備えており、8ビットのリード/ライト兼用のバス(以下、レジスタバス)で演算アレイ30からアクセスされる。図示のレジスタは、紙面の関係により各PEで3本としている。
【0025】
演算アレイ30は、16ビットALUと16ビットAレジスタ,16ビットFレジスタを内蔵している。PE命令による演算は、基本的にレジスタファイル20から読み出されたデータをALUの片側の入力として、もう片側にはAレジスタの内容を入力として結果をAレジスタに格納する。従って、AレジスタとR0〜R31レジスタとの演算が行われることとなる。
【0026】
レジスタファイル20と演算部(演算アレイ30)との接続に5to1のマルチプレクサを置いており、PE方向で左に1、2つ離れたデータと右に1、2つ離れたデータ、中央のデータを演算対象として選択している。
PEnは、レジスタファイル20と演算アレイ30の対応する任意の1組であって、図ではPEnを中心に前後2つのPEを示しており、PE全体の一部である。以下の説明では、図の左方向に向かって大きいPE番号がつけられるものとして説明する。
【0027】
このPEnの第1のマルチプレクサに注目すると、入力されている信号はPEn+2PEn+1、PEn、PEn-1、PEn-2のレジスタバスであり、前後2個のPEを参照した演算が可能であることが判る。各PEに1個の画素を配置したとき、2画素隣までを参照するフィルターなどの画像処理が可能である。
【0028】
レジスタファイル20に示される最上段のレジスタは、外部入出力装置50によって内容の読み出し/書き込みが可能なレジスタである。図外の外部入出力装置50からデータバスとコントロール信号を用いて、任意のレジスタの読み出し/書き込みが可能である。
【0029】
図3に、図2と同じSIMD方式プロセッサで、PEアレイの一端の部分を示す。
グロバールプロセッサ10の部分は、図2と同じである。PEアレイ部では、図2に示した外部入出力装置50からのデータバスとコントロール信号と読み出し/書き込みが可能なレジスタは、図3では図示していない。
【0030】
図示されているPEは、右端のPE0からPE4の部分である。各PEは図2と同様の構成であるため、前述のマルチプレクサに入力される信号は、PE4,PE3,PE2までは図2のときと同様に、前後2PEの参照が可能になっている。
【0031】
ところがPE1にとって2つ前のPE、すなわちPEn-2に相当するPEは存在しない。同様に、PE0にとっては1つ前、2つ前のPE、すなわちPEn-1、PEn-2に相当するPEは存在しない。そのため存在しないPEのレジスタバスのデータは固定値となる。例ではGND、すなわち値は"0"となる。
【0032】
(1)第1の実施形態…請求項1に対応
図4に本実施形態を示し、動作について説明する。
図9を用いて説明した従来方法の画像処理と同じ条件とする。すなわち、96個のPEを備えるSIMD方式プロセッサで、水平走査方向に480画素データを処理するものとする。
【0033】
本実施形態では、1回の処理でPE数の2倍の画素データを読み込んで処理する。
図4を用いて読み込み方法を説明する。図4の上部に示すように連続する192画素データを読み込むものとして、前半画像データ96と後半画像データ96を設定する。
【0034】
前半画像データは、最左端としてd(96)があり、右すなわち前方に向かって順に、d(-95)、d(-94)、...、d(-3)、d(-2)、d(-1)と96個のデータがあり、これらはPE95、PE94、PE93、...、PE2、PE1、PE0のR1にそれぞれ読み込まれる。
後半画像データは、最左端としてd(0)があり、右すなわち前方に向かって順に、d(1)、d(2)、...、d(93)、d(94)、d(95)と96個のデータがあり、これらはPE0、PE1、PE2、PE93、PE94、PE95のR0にそれぞれ読み込まれる。
【0035】
192の画像データがレジスタ上にあっても、PEそのものは96しかないため、実際の画像処理での演算は、同時に96データ分しか実行できない。そのため、前半/後半に分けて同様の処理を二度実施する。
【0036】
フィルターなどの画像処理を行う場合、注目画素の隣接画素を参照する。前半画像データの処理において隣接データを参照した場合、d(96)の隣接データのうちd(-97)に相当する隣接データは、どのPEにも存在しないため、処理を進めていくうちにこちらの端から無効データが発生する。
一方、d(-1)の隣接データはd(-2)、d(-3)、...あるいはd(0)、d(1)、...と両方向の隣接データが近いPEに存在するため、フィルター処理されたd(-1)のデータは無効データとはならない。
【0037】
同様に、後半画像データの処理において隣接データを参照した場合、d(95)の隣接データのうちd(96)に相当する隣接データは、どのPEにも存在しないため、処理を進めていくうちに、こちらの端から無効データが発生する。
一方、d(0)の隣接データはd(-1)、d(-2)、...あるいはd(1)、d(2)、...と両方向の隣接データが近いPEに存在するため、フィルター処理されたd(0)のデータは無効データとはならない。
【0038】
以上のように、本実施形態ではPEアレイの一端で有効処理範囲の減少を防ぐことができる。
図11で示した従来の方法と同様の条件、すなわち、96個のPEを備えるSIMD方式プロセッサで、水平走査方向に480画素データを処理するものとし、1回の画像処理の過程で端の画素から16データ分が無効になるものとした場合、本実施形態では図7のように示すことができる。
【0039】
本実施形態では、1回の読み込みで従来の2倍の192データを読み込むが、前半96データと後半96データは別に行う必要があるため、2倍の処理ステップを要する。しかし、前半画像データと後半画像データの繋ぎ目付近は、これまでの説明のように無効画素が発生しない。そのため192データのうち中央の160データが有効範囲となる。
【0040】
これを水平走査方向に展開するとき、480データに対しては3回の処理で行うことができる。1回の処理ステップは従来の2倍なので、実質的には従来の6回分に相当する。従来は、前述のように7.5回分を要していたため、処理の高速化が実現できたことが判る。
【0041】
(2)第2の実施形態…請求項2に対応
図5に本実施形態を示す。
図5は、図3で示されるSIMD方式プロセッサのPEの一端と同様の部分を示している。
【0042】
PE0との各レジスタには、従来のレジスタバスとは別のバス(以下、第2レジスタバス)が配置されており、各レジスタは対レジスタバスのポートとは別に第2レジスタバスに対してポートを持つ。
PE1のマルチプレクサは、入力信号としてPEn-2に相当するところにPE0の第2レジスタバスを接続する。すなわち、PEn+2PEn+1、PEn、PEn-1、PEn-2に相当するのは、PE3、PE2PE1、PE0、PE0の第2レジスタバスとなる。
【0043】
同様にPE0のマルチプレクサは、入力信号としてPEn-1に相当するところにPE0の第2レジスタバスを、PEn-2に相当するところにPE1の第2レジスタバスを接続する。すなわち、PEn+2PEn+1、PEn、PEn-1、PEn-2に相当するのは、PE2PE1、PE0、PE0の第2レジスタバス、PE1の第2レジスタバスとなる。
【0044】
後半画像データの処理を行う場合を説明する。後半は、PE0からPE95の方向にデータの方向が一致しているため、PEnでの画像処理時に隣接する画素を参照する、2つ前方画素、1つ前方画素、当該画素、1つ後方画素、2つ後方画素に相当するのは、PEn+2PEn+1、PEn、PEn-1、PEn-2のR0ということになる。
【0045】
図8を用いて読み込み方法を説明する。
後半画像データのPE1のデータはd(1)であって、その2つ後方画素はd(-1)である。PE1の場合、2つ後方画素に相当するPEn-2については、図5の構成例に従いPE0の第2レジスタバスに接続される。
【0046】
PE0のR1にはd(-1)が格納されているため、このとき第2レジスタバスを経てPE1のマルチプレクサにd(-1)を伝達できるため、PE1においてもPEn+2PEn+1、PEn、PEn-1、PEn-2に対応するデータとして、d(3)、d(2)、d(1)、d(0)、d(-1)となり、すべてが正しい参照データを得ることができ、処理結果は信用できる。
【0047】
後半画像データのPE0のデータはd(0)であって、その2つ後方画素はd(-2)、1つ後方画素はd(-1)である。PE0の場合、2つ後方画素に相当するPEn-2については、図5の構成例に従いPE1の第2レジスタバスに接続され、1つ後方画素に相当するPEn-1については、図5の構成例に従いPE0の第2レジスタバスに接続される。
【0048】
PE1のR1にはd(-2)が、PE0のR1にはd(-1)が格納されているため、このとき第2レジスタバスを経てPE0のマルチプレクサにd(-2)あるいはd(-1)を伝達できるため、PE0においてもPEn+2、PEn+1、PEn、PEn-1、PEn-2に対応するデータとして、d(2)、d(1)、d(0)、d(-1)、d(-2)となり、すべてが正しい参照データを得ることができ、処理結果は信用できる。
後半画像データの処理において、PE1およびPE0の演算結果が信用できるということは、この端における有効範囲の減少はないことになる。
【0049】
次に前半画像データの処理を行う場合を説明する。
前半は、PE0からPE95の方向にデータの方向が逆転しているため、PEnでの画像処理時に隣接する画素を参照する、2つ前方画素、1つ前方画素、当該画素、1つ後方画素、2つ後方画素に相当するのは、PEn-2、PEn-1、PEn、PEn+1、PEn+2のR1ということになる。
【0050】
前半画像データのPE1のデータはd(-2)であって、その2つ前方画素はd(0)である。PE1の場合、2つ前方画素に相当するPEn-2については、図5の構成例に従いPE0の第2レジスタバスに接続される。
PE0のR0にはd(0)が格納されているため、このとき第2レジスタバスを経てPE1のマルチプレクサにd(0)を伝達できるため、PE1においてもPEn+2、PEn+1、PEn、PEn-1、PEn-2に対応するデータとして、d(-4)、d(-3)、d(-2)、d(-1)、d(0)となり、すべてが正しい参照データを得ることができ、処理結果は信用できる。
【0051】
前半画像データのPE0のデータはd(-1)であって、その2つ前方画素はd(1)、1つ前方画素はd(-0)である。PE0の場合、2つ前方画素に相当するPEn-2については、図5の構成例に従いPE1の第2レジスタバスに接続され、1つ前方画素に相当するPEn-1については、図5の構成例に従いPE0の第2レジスタバスに接続される。
【0052】
PE1のR0にはd(1)が、PE0のR0にはd(0)が格納されているため、このとき第2レジスタバスを経てPE0のマルチプレクサにd(1)あるいはd(0)を伝達できるため、PE0においてもPEn+2、PEn+1、PEn、PEn-1、PEn-2に対応するデータとして、d(-3)、d(-2)、d(-1)、d(0)、d(1)となり、すべてが正しい参照データを得ることができ、処理結果は信用できる。
【0053】
前半画像データの処理において、PE1およびPE0の演算結果が信用できるということは、この端における有効範囲の減少はないことになる。
なお、説明では本発明の好適例を用いたものであり、本発明がこれに限定されるものではない。例えば、SIMD方式プロセッサにおけるPE0側の一方の端のみについて説明されたが、反対端に対しても同じ効果を得ることができる。また参照画素を前後2画素で例示したが、1画素以上であれば本発明の実現は可能である。
【0054】
(3)第3の実施形態…請求項3に対応
図6に本実施形態を示す。
図6は、図5で示されるSIMD方式プロセッサと同様の部分を示している。図5と異なるのは最上段と2段目に外部入出力装置50から読み出し/書き込みされるレジスタを追加したことである。
【0055】
最上段と2段目のレジスタには、外部入出力装置50からデータバスと読み出し/書き込みをコントロールする信号が導かれており、これらに接続する外部入出力装置50は、図1に示す画像メモリ40から、処理前の画像データを読み出し、最上段と2段目に転送できる。
【0056】
画像メモリ40上の画像データと、PEアレイ上の画像データの関係は、図4で示した関係が保たれるものとする。図4のR0にて示されたレジスタが図6での最上段のレジスタであり、図4のR1にて示されたレジスタが図6での2段目のレジスタとなるように転送する。
【0057】
図6では、外部入出力装置50に接続するレジスタと、折り返し部分で隣接画素を参照するレジスタを別レジスタとして表示している。この構成でも最上段や2段目に転送されたデータ内容を別のレジスタに転送する命令をSIMDプロセッサが行えば、2命令で2個のデータの転送が可能であり、処理時間に大きな負担にならない。転送命令は、SIMD方式プロセッサでは一般的なものである。
【0058】
また、図6では、外部入出力装置50に接続するレジスタと、折り返し部分で隣接画素を参照するレジスタを別レジスタとして表示しているが、同一のレジスタであってもかまわない。
このように外部入出力装置50を介して画像メモリ40とのデータ転送を行うことで、画像データを請求項1で示す効果のある配置に転送できる。
【0059】
(4)類似技術の調査
本発明に類似の従来技術を調査したところ、前記特許文献1以外に下記の2件があった。これらの2件と本発明との相違点を簡単に説明する。
【0060】
特開2000-20705号公報
プロセッサに装備しているPEが、水平走査方向の画素数より少ない場合の課題を目的とする。課題は本発明とほぼ同じであるが、テンポラリレジスタを備え、メインのレジスタと連結してシフト(巡回的に転送)することで実現している点で相違する。
【0061】
特開平8-180177号公報
水平走査方向のデータよりSIMDに装備されたPE数が上回る画像処理プロセッサを前提としている点が本発明と異なる。画像データの端部における処理結果の歪みを減少することが目的で、本発明が解決しようとする課題と異なるが、SIMD端部における有効画素の減少を防止するという点では似ている。その方法は、PEアレイの端に新たにPEを拡張し、端部の画像データに対し端部のデータを折り返し入力することで、固定のダミーデータ(例えば"0")より精度を向上させる。
【0062】
【発明の効果】
以上説明したように本発明によれば、以下の効果を発揮することができる。
請求項1記載の発明によれば、画像処理データをPE数の倍の範囲で読込み、前半と後半の境目で正確な隣接画像データを参照できるため、境目における無効データの発生を防止できるため、画像処理の効率化が図れる。
【0063】
また、前半と後半のデータの並びを逆順にすることで、前半と後半のデータの境目がPEアレイの一端だけに集中し、参照画素データが互いに比較的近いPEに位置することができる。
【0064】
請求項2記載の発明によれば、端のPEレジスタには通常のレジスタバスとは別に第2レジスタバスを備えているため、端に位置するPEであっても、範囲を越えての画素データ参照が可能となり、正常な処理結果を得られ、有効範囲の減少を回避できる。
従って、画像処理の効率が良くなり処理の高速化が実現できる。
請求項3記載の発明によれば、外部入出力装置を介して画像メモリとのデータ転送を行うことで、画像データを請求項1で示す効果のある配置に転送できる。
【図面の簡単な説明】
【図1】本発明を適用する一般的なSIMD方式プロセッサの概略構成図である。
【図2】本発明を適用する一般的なSIMD方式プロセッサの詳細な構成図である。
【図3】図2と同じSIMD方式プロセッサであって、PEアレイの一端の部分を示す図である。
【図4】本発明の第1の実施形態の動作を説明する図である。
【図5】図3で示したSIMD方式プロセッサのPEの一端と同様の部分を示す図である。
【図6】図5で示したSIMD方式プロセッサと同様の部分を示す図である。
【図7】本発明の第1の実施形態における処理を示す図であって、96個のPEを備えるSIMD方式プロセッサで、水平走査方向に480画素データを処理するものとし、1回の画像処理の過程で端の画素から16データ分が無効になるものとした場合の図である。
【図8】本発明の第2の実施形態における読み込み方法を説明する図である。
【図9】従来例を示す図であって、96データ単位で5回の反復実施により、全480データの処理を完遂できることを示す図である。
【図10】従来例を示す図であって、96のPEを備えたSIMD方式プロセッサにおいて、隣接データを参照するたびに有効範囲が減少していく様子を示す図である。
【図11】従来例を示す図であって、64画素に減少した有効範囲で、水平走査方向480画素の処理を行う場合を示す図である。
【符号の説明】
10 グロバールプロセッサ
20 レジスタファイル
30 演算アレイ
40 画像メモリ
50 外部入出力装置
【発明の属する技術分野】
本発明は、画像処理方法およびプロセッサおよび画像処理装置に関し、特に、同じ数のプロセッサエレメントを備えるSIMD方式プロセッサと比較して、同じ画像処理を実施しながら無効画素の割合を減少させ、処理の効率化を達成する画像処理方法およびプロセッサおよび画像処理装置に関する。
【0002】
【従来の技術】
通常、SIMD(Single Instruction-stream Multiple Data-stream)方式のプロセッサを用いて画像処理を行う場合、水平走査方向にProcessor Element(プロセッサエレメント、以下、PEと記す)を展開する。SIMD方式プロセッサに装備しているPEが、水平走査方向の画素数より少ない場合、水平走査方向の画素をPE数単位で分割し、画像処理を複数回反復実施することで、全画素の画像処理を行う。この画像処理方法は、例えば特許文献1に記載されているSIMD方式プロセッサにみることができる(特許文献1)。
【0003】
水平走査方向に480個のデータが並ぶ画像処理を、96のPEを備えるSIMD方式プロセッサで処理する場合を考える。この場合、図9に示すように、96データ単位で5回の反復実施により、全480データの処理を完遂できることが判る。
しかし、フィルター処理などの画像処理を行う場合、注目画素の隣接する画素を参照して処理を行うため、SIMDの両端に位置するPEでは、隣接PEが存在せず、従って有効な隣接データを参照できず、正しい結果が得られない。
【0004】
通常、正常な結果を得られない部分を切り捨てて、有効な範囲だけを結果として採用するので、SIMD方式プロセッサに装備されているPE数が、有効範囲と等しいわけではない。
前述の96のPEを備えたSIMD方式プロセッサにおいて、隣接データを参照するたびに有効範囲が減少していく様子を、図10に示す。図10の例では、2つ隣のデータを参照するフィルター処理を8回行うことで、有効範囲が64画素に減少している。
【0005】
次に64画素に減少した有効範囲で、前述の水平走査方向480画素の処理を行う場合を、図11に示す。図示のように、全480画素の処理を行うために、7.5回が必要となることが判る。
無効になる画素の数は、フィルター処理の内容で固定であるため、SIMD方式プロセッサに備えられるPE数が小さいほど、有効画素の割合が減少し、効率が悪化する。
【0006】
【特許文献1】
特開2001-134538号公報(段落番号0015〜0031 図1)
【0007】
【発明が解決しようとする課題】
しかしながら、近年は画像処理の精度はますます向上しており、水平走査方向の画素は増加する傾向にある。水平走査方向に対し、反復実行を行う方法の場合、反復回数が増加することを意味する。
SIMD方式プロセッサが備えているPE数に対する有効画素範囲の減少は、さらに反復回数の増加につながり、ひいては全体の画像処理に要する時間の増大となる。
【0008】
そこで本発明の課題は、同じ数のPEを備えるSIMD方式プロセッサと比較して、同じ画像処理を実施しながら無効画素の割合を減少させ、処理の効率化を達成する画像処理方法およびプロセッサおよび画像処理装置を提供することである。
【0009】
【課題を解決するための手段】
前記課題を解決するために請求項1の発明は、画像データの主走査方向に連続する画素を、SIMD方式プロセッサの1列に装備されたプロセッサエレメント数に応じて分割し、画像処理を行う画像処理方法であって、
前記プロセッサエレメント数と同じ画素数の第1画像データ範囲を、前記プロセッサエレメントの第1端から順に、該プロセッサエレメントに内蔵の第1レジスタに記憶させ、
前記第1画像データ範囲に続くプロセッサエレメント数と同じ画素数の第2画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵の第2レジスタに記憶させ、
前記第1画像データ範囲の画像処理と第2画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行う方法としてある。
【0010】
このようにすれば、画像処理データをPE数の倍の範囲で読込み、前半と後半の境目で正確な隣接画像データを参照できるので、境目における無効データの発生を防止でき、画像処理の効率化が図れる。
また、前半と後半のデータの並びを逆順にすることで、前半と後半のデータの境目がPEアレイの一端だけに集中し、参照画素データが互いに比較的近いPEに位置することができる。
【0011】
また、請求項2では、SIMD方式プロセッサの隣接するプロセッサエレメントが互いのレジスタ内容を参照し演算する第1レジスタバスと、
プロセッサエレメントの演算部へ入力するデータが該プロセッサエレメント内のレジスタか、前記レジスタバスを経て伝えられる隣接するプロセッサエレメントのレジスタか、を選択する第1マルチプレクサと、
プロセッサエレメントアレイの少なくとも一方の端に位置するプロセッサエレメントもしくは端から数個のプロセッサエレメントである端プロセッサエレメントに対応するレジスタからデータを読み出す第2レジスタバスと、
前記端プロセッサエレメントにおいては、存在しない側のレジスタ参照経路の代りとして、前記プロセッサエレメントより1つ多く備えた経路を選択する第2マルチプレクサとを備えた構成としてある。
【0012】
このようにすれば、端のPEレジスタには通常のレジスタバスとは別に第2レジスタバスを備えているため、端に位置するPEであっても、範囲を越えての画素データ参照が可能となり、正常な処理結果を得られ、有効範囲の減少を回避できる。従って、画像処理の効率が良くなり処理の高速化が実現できる。
【0013】
また、請求項3では、画像データの主走査方向に連続する画素を、SIMD方式プロセッサに装備されるプロセッサエレメント数に応じて分割し、
プロセッサエレメント数と同じ画素数の第1画像データ範囲を、プロセッサエレメントの第1端から順に該プロセッサエレメントに内蔵の第1レジスタに記憶させ、
前記第1画像データ範囲に続くプロセッサエレメント数と同じ画素数の第2画像データ範囲を、前記第1端の反対端である第2端から逆順にプロセッサエレメントに内蔵の第2レジスタに記憶させる構成としてある。
【0014】
このようにすれば、外部入出力装置を介して画像メモリとのデータ転送を行うことで、画像データを請求項1で示す効果のある配置に転送できる。
【0015】
【発明の実施の形態】
以下、本発明を図示の実施の形態に基づいて説明する。
図1に一般的なSIMD方式プロセッサの概略構成例を示す。
グロバールプロセッサ10:このブロックはいわゆるSISDタイプのプロセッサであり、プログラムRAMとデータRAMを内蔵し、プログラムを解読し各種制御信号を生成する。
【0016】
この各種制御信号は内蔵する各種ブロックの制御以外にも、レジスタファイル20,演算アレイ30に供給される。また、GP(グロバールプロセッサ)命令実行時は内蔵する汎用レジスタ、ALU(算術論理演算器)等を使用して各種演算処理,プログラム制御処理を行う。
【0017】
レジスタファイル20は、PE(プロセッサエレメント)命令で処理されるデータを保持している。PE命令はSIMDタイプの命令であり、レジスタファイル20に保持されている複数のデータを同時に同じ処理を行う。
【0018】
このレジスタファイル20からのデータの読み出し/書き込みの制御は、グロバールプロセッサ10からの制御によって行われる。読み出されたデータは演算アレイ30に送られ、演算アレイ30での演算処理後にレジスタファイル20に書き込まれる。また、レジスタファイル20はプロセッサ外部からのアクセスが可能であり、グロバールプロセッサ10の制御とは別に、外部から特定のレジスタを読み出し/書き込みが行われる。
【0019】
演算アレイ30では、PE命令の演算処理が行われる。処理の制御は、すべてグロバールプロセッサ10から行われる。
画像メモリ40は、処理する元の画像データを記憶し、処理後の画像データを記憶する。
【0020】
外部入出力装置50は、画像メモリ40から処理する元の画像データを読み出し、PEのレジスタファイル20に書き込む、あるいはレジスタファイル20から処理後の画像データを読み出し、画像メモリ40に書き込む。
【0021】
図2は、一般的なSIMD方式プロセッサの詳細な構成例である。
グロバールプロセッサ10には、該プロセッサ10のプログラム格納用のプログラムRAM(Program-RAM)と演算データ格納用のデータRAM(Data-RAM)が内蔵されている。
【0022】
さらに、プログラムのアドレスを保持するプログラムカウンタ(PC)、演算処理のデータ格納のための汎用レジスタであるG0〜G3レジスタ、レジスタ退避,復帰時に退避先データRAMのアドレスを保持しているスタックポインタ(SP)、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ(LS)、同じくIRQ時とNMI時の分岐元アドレスを保持するLI,LNレジスタ、プロセッサの状態を保持しているプロセッサステータスレジスタ(P)が内蔵されている。
【0023】
これらのレジスタと図示省略の命令デコーダ,ALU,メモリ制御回路,割り込み制御回路,外部I/O制御回路,GP演算制御回路を使用して、GP命令の実行が行われる。
PE命令実行時は、命令デコーダ,図示省略のレジスタファイル制御回路,PE演算制御回路を使用して、レジスタファイル20の制御と演算アレイ30の制御を行う。
【0024】
レジスタファイル20には各PEに8ビットのレジスタが複数本内蔵されており、PE数分の組みがアレイ構成になっている。レジスタはPEごとにR0、R1、R2、...と呼ばれている。それぞれのレジスタは演算アレイ30に対してポートを備えており、8ビットのリード/ライト兼用のバス(以下、レジスタバス)で演算アレイ30からアクセスされる。図示のレジスタは、紙面の関係により各PEで3本としている。
【0025】
演算アレイ30は、16ビットALUと16ビットAレジスタ,16ビットFレジスタを内蔵している。PE命令による演算は、基本的にレジスタファイル20から読み出されたデータをALUの片側の入力として、もう片側にはAレジスタの内容を入力として結果をAレジスタに格納する。従って、AレジスタとR0〜R31レジスタとの演算が行われることとなる。
【0026】
レジスタファイル20と演算部(演算アレイ30)との接続に5to1のマルチプレクサを置いており、PE方向で左に1、2つ離れたデータと右に1、2つ離れたデータ、中央のデータを演算対象として選択している。
PEnは、レジスタファイル20と演算アレイ30の対応する任意の1組であって、図ではPEnを中心に前後2つのPEを示しており、PE全体の一部である。以下の説明では、図の左方向に向かって大きいPE番号がつけられるものとして説明する。
【0027】
このPEnの第1のマルチプレクサに注目すると、入力されている信号はPEn+2PEn+1、PEn、PEn-1、PEn-2のレジスタバスであり、前後2個のPEを参照した演算が可能であることが判る。各PEに1個の画素を配置したとき、2画素隣までを参照するフィルターなどの画像処理が可能である。
【0028】
レジスタファイル20に示される最上段のレジスタは、外部入出力装置50によって内容の読み出し/書き込みが可能なレジスタである。図外の外部入出力装置50からデータバスとコントロール信号を用いて、任意のレジスタの読み出し/書き込みが可能である。
【0029】
図3に、図2と同じSIMD方式プロセッサで、PEアレイの一端の部分を示す。
グロバールプロセッサ10の部分は、図2と同じである。PEアレイ部では、図2に示した外部入出力装置50からのデータバスとコントロール信号と読み出し/書き込みが可能なレジスタは、図3では図示していない。
【0030】
図示されているPEは、右端のPE0からPE4の部分である。各PEは図2と同様の構成であるため、前述のマルチプレクサに入力される信号は、PE4,PE3,PE2までは図2のときと同様に、前後2PEの参照が可能になっている。
【0031】
ところがPE1にとって2つ前のPE、すなわちPEn-2に相当するPEは存在しない。同様に、PE0にとっては1つ前、2つ前のPE、すなわちPEn-1、PEn-2に相当するPEは存在しない。そのため存在しないPEのレジスタバスのデータは固定値となる。例ではGND、すなわち値は"0"となる。
【0032】
(1)第1の実施形態…請求項1に対応
図4に本実施形態を示し、動作について説明する。
図9を用いて説明した従来方法の画像処理と同じ条件とする。すなわち、96個のPEを備えるSIMD方式プロセッサで、水平走査方向に480画素データを処理するものとする。
【0033】
本実施形態では、1回の処理でPE数の2倍の画素データを読み込んで処理する。
図4を用いて読み込み方法を説明する。図4の上部に示すように連続する192画素データを読み込むものとして、前半画像データ96と後半画像データ96を設定する。
【0034】
前半画像データは、最左端としてd(96)があり、右すなわち前方に向かって順に、d(-95)、d(-94)、...、d(-3)、d(-2)、d(-1)と96個のデータがあり、これらはPE95、PE94、PE93、...、PE2、PE1、PE0のR1にそれぞれ読み込まれる。
後半画像データは、最左端としてd(0)があり、右すなわち前方に向かって順に、d(1)、d(2)、...、d(93)、d(94)、d(95)と96個のデータがあり、これらはPE0、PE1、PE2、PE93、PE94、PE95のR0にそれぞれ読み込まれる。
【0035】
192の画像データがレジスタ上にあっても、PEそのものは96しかないため、実際の画像処理での演算は、同時に96データ分しか実行できない。そのため、前半/後半に分けて同様の処理を二度実施する。
【0036】
フィルターなどの画像処理を行う場合、注目画素の隣接画素を参照する。前半画像データの処理において隣接データを参照した場合、d(96)の隣接データのうちd(-97)に相当する隣接データは、どのPEにも存在しないため、処理を進めていくうちにこちらの端から無効データが発生する。
一方、d(-1)の隣接データはd(-2)、d(-3)、...あるいはd(0)、d(1)、...と両方向の隣接データが近いPEに存在するため、フィルター処理されたd(-1)のデータは無効データとはならない。
【0037】
同様に、後半画像データの処理において隣接データを参照した場合、d(95)の隣接データのうちd(96)に相当する隣接データは、どのPEにも存在しないため、処理を進めていくうちに、こちらの端から無効データが発生する。
一方、d(0)の隣接データはd(-1)、d(-2)、...あるいはd(1)、d(2)、...と両方向の隣接データが近いPEに存在するため、フィルター処理されたd(0)のデータは無効データとはならない。
【0038】
以上のように、本実施形態ではPEアレイの一端で有効処理範囲の減少を防ぐことができる。
図11で示した従来の方法と同様の条件、すなわち、96個のPEを備えるSIMD方式プロセッサで、水平走査方向に480画素データを処理するものとし、1回の画像処理の過程で端の画素から16データ分が無効になるものとした場合、本実施形態では図7のように示すことができる。
【0039】
本実施形態では、1回の読み込みで従来の2倍の192データを読み込むが、前半96データと後半96データは別に行う必要があるため、2倍の処理ステップを要する。しかし、前半画像データと後半画像データの繋ぎ目付近は、これまでの説明のように無効画素が発生しない。そのため192データのうち中央の160データが有効範囲となる。
【0040】
これを水平走査方向に展開するとき、480データに対しては3回の処理で行うことができる。1回の処理ステップは従来の2倍なので、実質的には従来の6回分に相当する。従来は、前述のように7.5回分を要していたため、処理の高速化が実現できたことが判る。
【0041】
(2)第2の実施形態…請求項2に対応
図5に本実施形態を示す。
図5は、図3で示されるSIMD方式プロセッサのPEの一端と同様の部分を示している。
【0042】
PE0との各レジスタには、従来のレジスタバスとは別のバス(以下、第2レジスタバス)が配置されており、各レジスタは対レジスタバスのポートとは別に第2レジスタバスに対してポートを持つ。
PE1のマルチプレクサは、入力信号としてPEn-2に相当するところにPE0の第2レジスタバスを接続する。すなわち、PEn+2PEn+1、PEn、PEn-1、PEn-2に相当するのは、PE3、PE2PE1、PE0、PE0の第2レジスタバスとなる。
【0043】
同様にPE0のマルチプレクサは、入力信号としてPEn-1に相当するところにPE0の第2レジスタバスを、PEn-2に相当するところにPE1の第2レジスタバスを接続する。すなわち、PEn+2PEn+1、PEn、PEn-1、PEn-2に相当するのは、PE2PE1、PE0、PE0の第2レジスタバス、PE1の第2レジスタバスとなる。
【0044】
後半画像データの処理を行う場合を説明する。後半は、PE0からPE95の方向にデータの方向が一致しているため、PEnでの画像処理時に隣接する画素を参照する、2つ前方画素、1つ前方画素、当該画素、1つ後方画素、2つ後方画素に相当するのは、PEn+2PEn+1、PEn、PEn-1、PEn-2のR0ということになる。
【0045】
図8を用いて読み込み方法を説明する。
後半画像データのPE1のデータはd(1)であって、その2つ後方画素はd(-1)である。PE1の場合、2つ後方画素に相当するPEn-2については、図5の構成例に従いPE0の第2レジスタバスに接続される。
【0046】
PE0のR1にはd(-1)が格納されているため、このとき第2レジスタバスを経てPE1のマルチプレクサにd(-1)を伝達できるため、PE1においてもPEn+2PEn+1、PEn、PEn-1、PEn-2に対応するデータとして、d(3)、d(2)、d(1)、d(0)、d(-1)となり、すべてが正しい参照データを得ることができ、処理結果は信用できる。
【0047】
後半画像データのPE0のデータはd(0)であって、その2つ後方画素はd(-2)、1つ後方画素はd(-1)である。PE0の場合、2つ後方画素に相当するPEn-2については、図5の構成例に従いPE1の第2レジスタバスに接続され、1つ後方画素に相当するPEn-1については、図5の構成例に従いPE0の第2レジスタバスに接続される。
【0048】
PE1のR1にはd(-2)が、PE0のR1にはd(-1)が格納されているため、このとき第2レジスタバスを経てPE0のマルチプレクサにd(-2)あるいはd(-1)を伝達できるため、PE0においてもPEn+2、PEn+1、PEn、PEn-1、PEn-2に対応するデータとして、d(2)、d(1)、d(0)、d(-1)、d(-2)となり、すべてが正しい参照データを得ることができ、処理結果は信用できる。
後半画像データの処理において、PE1およびPE0の演算結果が信用できるということは、この端における有効範囲の減少はないことになる。
【0049】
次に前半画像データの処理を行う場合を説明する。
前半は、PE0からPE95の方向にデータの方向が逆転しているため、PEnでの画像処理時に隣接する画素を参照する、2つ前方画素、1つ前方画素、当該画素、1つ後方画素、2つ後方画素に相当するのは、PEn-2、PEn-1、PEn、PEn+1、PEn+2のR1ということになる。
【0050】
前半画像データのPE1のデータはd(-2)であって、その2つ前方画素はd(0)である。PE1の場合、2つ前方画素に相当するPEn-2については、図5の構成例に従いPE0の第2レジスタバスに接続される。
PE0のR0にはd(0)が格納されているため、このとき第2レジスタバスを経てPE1のマルチプレクサにd(0)を伝達できるため、PE1においてもPEn+2、PEn+1、PEn、PEn-1、PEn-2に対応するデータとして、d(-4)、d(-3)、d(-2)、d(-1)、d(0)となり、すべてが正しい参照データを得ることができ、処理結果は信用できる。
【0051】
前半画像データのPE0のデータはd(-1)であって、その2つ前方画素はd(1)、1つ前方画素はd(-0)である。PE0の場合、2つ前方画素に相当するPEn-2については、図5の構成例に従いPE1の第2レジスタバスに接続され、1つ前方画素に相当するPEn-1については、図5の構成例に従いPE0の第2レジスタバスに接続される。
【0052】
PE1のR0にはd(1)が、PE0のR0にはd(0)が格納されているため、このとき第2レジスタバスを経てPE0のマルチプレクサにd(1)あるいはd(0)を伝達できるため、PE0においてもPEn+2、PEn+1、PEn、PEn-1、PEn-2に対応するデータとして、d(-3)、d(-2)、d(-1)、d(0)、d(1)となり、すべてが正しい参照データを得ることができ、処理結果は信用できる。
【0053】
前半画像データの処理において、PE1およびPE0の演算結果が信用できるということは、この端における有効範囲の減少はないことになる。
なお、説明では本発明の好適例を用いたものであり、本発明がこれに限定されるものではない。例えば、SIMD方式プロセッサにおけるPE0側の一方の端のみについて説明されたが、反対端に対しても同じ効果を得ることができる。また参照画素を前後2画素で例示したが、1画素以上であれば本発明の実現は可能である。
【0054】
(3)第3の実施形態…請求項3に対応
図6に本実施形態を示す。
図6は、図5で示されるSIMD方式プロセッサと同様の部分を示している。図5と異なるのは最上段と2段目に外部入出力装置50から読み出し/書き込みされるレジスタを追加したことである。
【0055】
最上段と2段目のレジスタには、外部入出力装置50からデータバスと読み出し/書き込みをコントロールする信号が導かれており、これらに接続する外部入出力装置50は、図1に示す画像メモリ40から、処理前の画像データを読み出し、最上段と2段目に転送できる。
【0056】
画像メモリ40上の画像データと、PEアレイ上の画像データの関係は、図4で示した関係が保たれるものとする。図4のR0にて示されたレジスタが図6での最上段のレジスタであり、図4のR1にて示されたレジスタが図6での2段目のレジスタとなるように転送する。
【0057】
図6では、外部入出力装置50に接続するレジスタと、折り返し部分で隣接画素を参照するレジスタを別レジスタとして表示している。この構成でも最上段や2段目に転送されたデータ内容を別のレジスタに転送する命令をSIMDプロセッサが行えば、2命令で2個のデータの転送が可能であり、処理時間に大きな負担にならない。転送命令は、SIMD方式プロセッサでは一般的なものである。
【0058】
また、図6では、外部入出力装置50に接続するレジスタと、折り返し部分で隣接画素を参照するレジスタを別レジスタとして表示しているが、同一のレジスタであってもかまわない。
このように外部入出力装置50を介して画像メモリ40とのデータ転送を行うことで、画像データを請求項1で示す効果のある配置に転送できる。
【0059】
(4)類似技術の調査
本発明に類似の従来技術を調査したところ、前記特許文献1以外に下記の2件があった。これらの2件と本発明との相違点を簡単に説明する。
【0060】
特開2000-20705号公報
プロセッサに装備しているPEが、水平走査方向の画素数より少ない場合の課題を目的とする。課題は本発明とほぼ同じであるが、テンポラリレジスタを備え、メインのレジスタと連結してシフト(巡回的に転送)することで実現している点で相違する。
【0061】
特開平8-180177号公報
水平走査方向のデータよりSIMDに装備されたPE数が上回る画像処理プロセッサを前提としている点が本発明と異なる。画像データの端部における処理結果の歪みを減少することが目的で、本発明が解決しようとする課題と異なるが、SIMD端部における有効画素の減少を防止するという点では似ている。その方法は、PEアレイの端に新たにPEを拡張し、端部の画像データに対し端部のデータを折り返し入力することで、固定のダミーデータ(例えば"0")より精度を向上させる。
【0062】
【発明の効果】
以上説明したように本発明によれば、以下の効果を発揮することができる。
請求項1記載の発明によれば、画像処理データをPE数の倍の範囲で読込み、前半と後半の境目で正確な隣接画像データを参照できるため、境目における無効データの発生を防止できるため、画像処理の効率化が図れる。
【0063】
また、前半と後半のデータの並びを逆順にすることで、前半と後半のデータの境目がPEアレイの一端だけに集中し、参照画素データが互いに比較的近いPEに位置することができる。
【0064】
請求項2記載の発明によれば、端のPEレジスタには通常のレジスタバスとは別に第2レジスタバスを備えているため、端に位置するPEであっても、範囲を越えての画素データ参照が可能となり、正常な処理結果を得られ、有効範囲の減少を回避できる。
従って、画像処理の効率が良くなり処理の高速化が実現できる。
請求項3記載の発明によれば、外部入出力装置を介して画像メモリとのデータ転送を行うことで、画像データを請求項1で示す効果のある配置に転送できる。
【図面の簡単な説明】
【図1】本発明を適用する一般的なSIMD方式プロセッサの概略構成図である。
【図2】本発明を適用する一般的なSIMD方式プロセッサの詳細な構成図である。
【図3】図2と同じSIMD方式プロセッサであって、PEアレイの一端の部分を示す図である。
【図4】本発明の第1の実施形態の動作を説明する図である。
【図5】図3で示したSIMD方式プロセッサのPEの一端と同様の部分を示す図である。
【図6】図5で示したSIMD方式プロセッサと同様の部分を示す図である。
【図7】本発明の第1の実施形態における処理を示す図であって、96個のPEを備えるSIMD方式プロセッサで、水平走査方向に480画素データを処理するものとし、1回の画像処理の過程で端の画素から16データ分が無効になるものとした場合の図である。
【図8】本発明の第2の実施形態における読み込み方法を説明する図である。
【図9】従来例を示す図であって、96データ単位で5回の反復実施により、全480データの処理を完遂できることを示す図である。
【図10】従来例を示す図であって、96のPEを備えたSIMD方式プロセッサにおいて、隣接データを参照するたびに有効範囲が減少していく様子を示す図である。
【図11】従来例を示す図であって、64画素に減少した有効範囲で、水平走査方向480画素の処理を行う場合を示す図である。
【符号の説明】
10 グロバールプロセッサ
20 レジスタファイル
30 演算アレイ
40 画像メモリ
50 外部入出力装置
Claims (3)
- 画像データの主走査方向に連続する画素を、SIMD方式プロセッサの1列に装備されたプロセッサエレメント数に応じて分割し、画像処理を行う画像処理方法であって、
前記プロセッサエレメント数と同じ画素数の第1画像データ範囲を、前記プロセッサエレメントの第1端から順に、該プロセッサエレメントに内蔵の第1レジスタに記憶させ、
前記第1画像データ範囲に続くプロセッサエレメント数と同じ画素数の第2画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵の第2レジスタに記憶させ、
前記第1画像データ範囲の画像処理と第2画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行うことを特徴とする画像処理方法。 - SIMD方式プロセッサの隣接するプロセッサエレメントが互いのレジスタ内容を参照し演算する第1レジスタバスと、
プロセッサエレメントの演算部へ入力するデータが該プロセッサエレメント内のレジスタか、前記レジスタバスを経て伝えられる隣接するプロセッサエレメントのレジスタか、を選択する第1マルチプレクサと、
プロセッサエレメントアレイの少なくとも一方の端に位置するプロセッサエレメントもしくは端から数個のプロセッサエレメントである端プロセッサエレメントに対応するレジスタからデータを読み出す第2レジスタバスと、
前記端プロセッサエレメントにおいては、存在しない側のレジスタ参照経路の代りとして、前記プロセッサエレメントより1つ多く備えた経路を選択する第2マルチプレクサと
を備えたことを特徴とするプロセッサ。 - 画像データの主走査方向に連続する画素を、SIMD方式プロセッサに装備されるプロセッサエレメント数に応じて分割し、
プロセッサエレメント数と同じ画素数の第1画像データ範囲を、プロセッサエレメントの第1端から順に該プロセッサエレメントに内蔵の第1レジスタに記憶させ、
前記第1画像データ範囲に続くプロセッサエレメント数と同じ画素数の第2画像データ範囲を、前記第1端の反対端である第2端から逆順にプロセッサエレメントに内蔵の第2レジスタに記憶させることを特徴とする画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002374515A JP2004206387A (ja) | 2002-12-25 | 2002-12-25 | 画像処理方法およびプロセッサおよび画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002374515A JP2004206387A (ja) | 2002-12-25 | 2002-12-25 | 画像処理方法およびプロセッサおよび画像処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004206387A true JP2004206387A (ja) | 2004-07-22 |
Family
ID=32812522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002374515A Pending JP2004206387A (ja) | 2002-12-25 | 2002-12-25 | 画像処理方法およびプロセッサおよび画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004206387A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007073010A (ja) * | 2005-09-09 | 2007-03-22 | Ricoh Co Ltd | Simd方式プロセッサ、当該simd方式プロセッサを利用する画像処理方法、及び画像処理装置 |
JP2009037295A (ja) * | 2007-07-31 | 2009-02-19 | Ricoh Co Ltd | 並列プロセッサ用組み込みプログラム開発装置 |
JP2012190389A (ja) * | 2011-03-14 | 2012-10-04 | Ricoh Co Ltd | プロセッサ装置及びその演算方法 |
-
2002
- 2002-12-25 JP JP2002374515A patent/JP2004206387A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007073010A (ja) * | 2005-09-09 | 2007-03-22 | Ricoh Co Ltd | Simd方式プロセッサ、当該simd方式プロセッサを利用する画像処理方法、及び画像処理装置 |
JP2009037295A (ja) * | 2007-07-31 | 2009-02-19 | Ricoh Co Ltd | 並列プロセッサ用組み込みプログラム開発装置 |
JP2012190389A (ja) * | 2011-03-14 | 2012-10-04 | Ricoh Co Ltd | プロセッサ装置及びその演算方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6208772B1 (en) | Data processing system for logically adjacent data samples such as image data in a machine vision system | |
JP2009223758A (ja) | 画像処理装置 | |
US20020174325A1 (en) | SIMD type microprocessor and a method of sort processing | |
JP2008181361A (ja) | データ処理装置、画像処理装置、及びデータ処理プログラム | |
JP2007073010A (ja) | Simd方式プロセッサ、当該simd方式プロセッサを利用する画像処理方法、及び画像処理装置 | |
JP2004206387A (ja) | 画像処理方法およびプロセッサおよび画像処理装置 | |
JP2006350907A (ja) | Simd型マイクロプロセッサ、データ転送装置、及びデータ変換装置 | |
JPH11312085A (ja) | プロセッサ | |
JP4482356B2 (ja) | Simdプロセッサを用いた画像処理方法及び画像処理装置 | |
JP4408113B2 (ja) | 信号処理方法 | |
JP4868607B2 (ja) | Simd型マイクロプロセッサ | |
JP2005189966A (ja) | 画像処理装置 | |
JP3969580B2 (ja) | データ処理装置、画像処理装置、画像形成装置、プログラム及び記憶媒体 | |
JP2008071037A (ja) | Simd型マイクロプロセッサ | |
JP5369669B2 (ja) | Simd型マイクロプロセッサ | |
JP2010033426A (ja) | Simd型マイクロプロセッサおよび演算方法 | |
JP2004192405A (ja) | Simd型プロセッサ | |
JP2003216950A (ja) | パターンマッチングなどを行なうためのsimd型マイクロプロセッサ | |
JP3742745B2 (ja) | 演算処理装置 | |
JP2004252825A (ja) | Peに故障発生してもデータ転送し得るsimd型マイクロプロセッサ | |
JP2011134085A (ja) | 画像処理装置 | |
JP4346039B2 (ja) | データ処理装置 | |
JP2001084171A (ja) | 画像処理装置 | |
JPS6398056A (ja) | Dma制御回路 | |
JP2001202351A (ja) | Simd型プロセッサ |