JP2007073010A - Simd方式プロセッサ、当該simd方式プロセッサを利用する画像処理方法、及び画像処理装置 - Google Patents
Simd方式プロセッサ、当該simd方式プロセッサを利用する画像処理方法、及び画像処理装置 Download PDFInfo
- Publication number
- JP2007073010A JP2007073010A JP2005262554A JP2005262554A JP2007073010A JP 2007073010 A JP2007073010 A JP 2007073010A JP 2005262554 A JP2005262554 A JP 2005262554A JP 2005262554 A JP2005262554 A JP 2005262554A JP 2007073010 A JP2007073010 A JP 2007073010A
- Authority
- JP
- Japan
- Prior art keywords
- register
- processor
- processor element
- image data
- image processing
- 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
- Advance Control (AREA)
- Image Processing (AREA)
Abstract
【課題】 2つ以上の連続する画素データ範囲をビット分割されたレジスタに格納して処理ステップを減少させ、無効画素の割合を減少させて処理の更なる効率化を達成する。
【解決手段】 プロセッサエレメントに内蔵のレジスタのビット幅を、N個のグループにビット分割し、プロセッサエレメント数以下の画素数の第1の画像データ範囲を、第1端から順に、該プロセッサエレメントに内蔵のレジスタのM番目のグループに記憶させ、第1の画像データ範囲に続く前記プロセッサエレメント数以下の画素数の第2の画像データ範囲を、第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵のレジスタのM番目グループ以外のグループに記憶させ、第1の画像データ範囲の画像処理と第2の画像データ範囲の画像処理を、第2端のプロセッサエレメントを境に連続する画素データを参照して行う。
【選択図】図1
【解決手段】 プロセッサエレメントに内蔵のレジスタのビット幅を、N個のグループにビット分割し、プロセッサエレメント数以下の画素数の第1の画像データ範囲を、第1端から順に、該プロセッサエレメントに内蔵のレジスタのM番目のグループに記憶させ、第1の画像データ範囲に続く前記プロセッサエレメント数以下の画素数の第2の画像データ範囲を、第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵のレジスタのM番目グループ以外のグループに記憶させ、第1の画像データ範囲の画像処理と第2の画像データ範囲の画像処理を、第2端のプロセッサエレメントを境に連続する画素データを参照して行う。
【選択図】図1
Description
本発明は、SIMD(Single Instruction−stream Multiple Data−stream)方式プロセッサ、当該SIMD方式プロセッサを利用する画像処理方法、及びSIMD方式プロセッサを搭載する画像処理装置に関する。
画像処理を実行するマイクロプロセッサでは、SIMD(Single Instruction−stream Multiple Data−stream)型を採用することが多い。なぜなら、1つの命令で複数のデータに対して同時に同一の演算処理が実行可能であるSIMD方式プロセッサの特徴が画像処理に適しているからである。SIMD方式プロセッサは、プロセッサエレメント(Processor Element:以下、PEと称する。)と呼ばれる単位で演算部とレジスタを備え、そのようなPEを複数個有する。これら複数個のPEが同時に演算処理を行うことで、1つの命令で複数のデータに対して同時に同一の演算処理を実行する。画像処理において各PEは、通常1個の画素の画像処理を担当するように設計されている。
通常、SIMD方式プロセッサを用いて画像処理を行う場合、水平走査方向に複数のPEを展開する。プロセッサに装備しているPEが水平走査方向の画素数より少ない場合、水平走査方向の画素をPE数単位で分割し、画像処理を複数回反復実施することで、水平走査方向の全画素の画像処理を行う。このことは、例えば特許文献2に開示されている。
例えば、水平走査方向に480個の画素データが並ぶようなデータの画像処理を、96のPEを備えるSIMD方式プロセッサで処理する場合を考える。制約条件が無い場合、図13に示すように96データ単位で5回反復処理を実施することにより、全480個のデータの処理を完遂できる。
ところで、フィルタ処理などの画像処理をSIMD方式プロセッサで行う場合、注目画素の隣接する画素を参照して処理を行わなければならない。そうすると、PEアレイの両端に位置するPEでは隣接PEが存在しないために、適切な隣接データを参照できないことがある。このとき、PEアレイの両端に位置するPEでは適切な処理結果が得られない。
このような場合、適切な(正常な)処理結果ではない部分を排除し、有効な範囲だけを処理結果として採用する。そうすると、有効なデータの範囲は、SIMD方式プロセッサに装備されているPE数よりも少なくなることが多い。
図14は、96個のPEを備えたSIMD方式プロセッサにおいて、隣接データを参照する度に有効なデータ範囲が減少していく様子を示す。図14に示す例では、2つ隣までのデータを参照するフィルタ処理を8回行うことで、有効範囲が64画素に減少している。
次に、図15は、上記のように64画素に減少した有効範囲で、前述の水平走査方向480画素データの処理を行う場合の、反復処理の様子を示す。図15に示されているように、全480画素の処理を行うには、7.5回の反復処理が必要となる。
PEアレイの端部で無効になる画素の数は、フィルタ処理の内容で決定される。つまり、SIMD方式プロセッサに備えられるPE数が小さいほど、有効画素の割合が減少することになりデータ処理効率が悪化する。
しかしながら、近年は画像処理における画像の精度は益々向上しており、水平走査方向の画素は増加する傾向にある。このことは、水平走査方向の画素をPE数単位で分割し、画像処理を複数回反復実施するSIMD方式プロセッサでは、反復回数が増加することを意味する。ここで更に、SIMD方式プロセッサが備えているPE数に対する有効画素範囲が減少するとしたら、反復回数の更なる増加に繋がり、ひいては全体の画像処理に要する時間の増大に繋がる。
ところで、一方で、SIMD方式プロセッサで演算を行うデータのビット幅も、年々増加する傾向にある。データのビット幅が増加するとしても、従来の構成のプロセッサのビット幅を増やせば対応は可能である。しかし、ビット幅が少ないデータの演算にビット幅が大きいプロセッサをそのまま全て使うのは、効率的ではない。したがって、従来技術では、レジスタやALU(演算論理回路)を分割し、同時に複数の独立した演算を行うようにしている。
なお、特許文献1は、装備しているPE数よりも多い画素データに対して反復処理を実施し、且つ隣接する画素データを参照する画像処理において、無効画素を減少させることに対応し得るSIMD方式プロセッサを開示する。このSIMD方式プロセッサでは、連続する画素データを2本(以上)のレジスタに配置して処理するが、その処理では2ステップが必要となる。特許文献2は、装備しているPE数よりも多い画素データに対して反復処理を実施するSIMD方式プロセッサを開示する。このSIMD方式プロセッサでは、メモリとPEの間で画像データを適宜ロード/ストアする。隣接する画素データを参照する画像処理において、無効画素が発生することの記載があるが、解決方法については開示がない。特許文献3は、プロセッサに装備しているPEが水平走査方向の画素数より少ない場合の課題解決を、目的とする発明を記載する。テンポラリレジスタを備え、メインのレジスタと連結してシフト(巡回的に転送)することで課題解決を実現している。特許文献4は、画像データの端部における処理結果の歪みを減少することを目的とする(SIMD方式の)画像処理プロセッサを開示する。この画像処理プロセッサでは、PEアレイの端に新たにPEを拡張設置し、端部の画像データに対し端部のデータを折り返し入力する。但し、この発明の画像処理プロセッサでは、水平走査方向のデータよりプロセッサに装備されたPE数が上回ることを前提としている。
特開2004−206387公報
特開2001−134538公報
特開2000−20705公報
特開平8−180177号公報
本発明は、同じ数のPEを備えるSIMD方式プロセッサと比較して、2つ若しくはそれ以上の連続する画素データをビット分割されたレジスタに格納して処理ステップをより減少させることと、無効画素の割合を減少させて処理の更なる効率化を達成することを目的とする。
本発明は、上記の目的を達成するためになされたものである。本発明に係る請求項1に記載の画像処理方法は、
画像データの主走査方向に連続する画素を、SIMD方式プロセッサに装備されたプロセッサエレメント数に応じて分割し、画像処理を行う画像処理方法であって、
前記プロセッサエレメントに内蔵の第1レジスタのビット幅を、N(N≧2)個のグループにビット分割し、
前記プロセッサエレメント数以下の画素数の第1の画像データ範囲を、前記プロセッサエレメントの第1端から順に、該プロセッサエレメントに内蔵の第1レジスタのM(1≦M≦N)番目のグループに記憶させ、
前記第1の画像データ範囲に続く前記プロセッサエレメント数以下の画素数の第2の画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵の第1レジスタのM番目グループ以外のグループに記憶させ、
第1の画像データ範囲の画像処理と第2の画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行うことを特徴とする。
画像データの主走査方向に連続する画素を、SIMD方式プロセッサに装備されたプロセッサエレメント数に応じて分割し、画像処理を行う画像処理方法であって、
前記プロセッサエレメントに内蔵の第1レジスタのビット幅を、N(N≧2)個のグループにビット分割し、
前記プロセッサエレメント数以下の画素数の第1の画像データ範囲を、前記プロセッサエレメントの第1端から順に、該プロセッサエレメントに内蔵の第1レジスタのM(1≦M≦N)番目のグループに記憶させ、
前記第1の画像データ範囲に続く前記プロセッサエレメント数以下の画素数の第2の画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵の第1レジスタのM番目グループ以外のグループに記憶させ、
第1の画像データ範囲の画像処理と第2の画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行うことを特徴とする。
本発明に係る請求項2に記載のSIMD方式プロセッサは、
複数のプロセッサエレメントがプロセッサエレメントアレイ部を構成するSIMD方式プロセッサである。そのSIMD方式プロセッサにおいて、
前記プロセッサエレメントは、
N(N≧2)個にビット分割され、ビット分割された分割単位がN個のグループに分類され、N個のグループが識別されるレジスタと、
プロセッサエレメント内で、同一の識別の前記グループに属する前記分割単位が繋がるレジスタバスであって、隣接するプロセッサエレメントが互いのレジスタ内の、同一の識別の前記グループに属する分割単位を参照し演算するためのN個のレジスタバスと、
プロセッサエレメントの演算部へ入力するデータが該プロセッサエレメントのレジスタ内の分割単位か、前記レジスタバスを経て伝えられる隣接するプロセッサエレメントのレジスタ内の分割単位かを選択するマルチプレクサと、
2つの前記グループが隣り合う場合、相対的に反対方向のプロセッサエレメントのレジスタを参照するようにマルチプレクサを制御する制御回路を備え、
プロセッサエレメントアレイ部の少なくとも一方の端のプロセッサエレメントもしくは端から数個の端プロセッサエレメントでは、参照方向にレジスタが存在しない場合のために、プロセッサエレメントのレジスタ内の隣り合うグループのレジスタバス、若しくは、参照方向とは反対方向のプロセッサエレメントの隣り合うグループのレジスタバスが、存在しないレジスタバスの代りとして、前記マルチプレクサに繋がれていることを特徴とする。
複数のプロセッサエレメントがプロセッサエレメントアレイ部を構成するSIMD方式プロセッサである。そのSIMD方式プロセッサにおいて、
前記プロセッサエレメントは、
N(N≧2)個にビット分割され、ビット分割された分割単位がN個のグループに分類され、N個のグループが識別されるレジスタと、
プロセッサエレメント内で、同一の識別の前記グループに属する前記分割単位が繋がるレジスタバスであって、隣接するプロセッサエレメントが互いのレジスタ内の、同一の識別の前記グループに属する分割単位を参照し演算するためのN個のレジスタバスと、
プロセッサエレメントの演算部へ入力するデータが該プロセッサエレメントのレジスタ内の分割単位か、前記レジスタバスを経て伝えられる隣接するプロセッサエレメントのレジスタ内の分割単位かを選択するマルチプレクサと、
2つの前記グループが隣り合う場合、相対的に反対方向のプロセッサエレメントのレジスタを参照するようにマルチプレクサを制御する制御回路を備え、
プロセッサエレメントアレイ部の少なくとも一方の端のプロセッサエレメントもしくは端から数個の端プロセッサエレメントでは、参照方向にレジスタが存在しない場合のために、プロセッサエレメントのレジスタ内の隣り合うグループのレジスタバス、若しくは、参照方向とは反対方向のプロセッサエレメントの隣り合うグループのレジスタバスが、存在しないレジスタバスの代りとして、前記マルチプレクサに繋がれていることを特徴とする。
本発明に係る請求項3に記載のSIMD方式プロセッサは、
複数のプロセッサエレメントがプロセッサエレメントアレイ部を構成するSIMD方式プロセッサである。そのSIMD方式プロセッサにおいて、
前記プロセッサエレメントは、
N(N≧2)個にビット分割され、ビット分割された分割単位がN個のグループに分類され、N個のグループが識別されるレジスタと、
プロセッサエレメント内で、同一の識別の前記グループに属する前記分割単位が繋がるレジスタバスであって、隣接するプロセッサエレメントが互いのレジスタ内の、同一の識別の前記グループに属する分割単位を参照し演算するためのN個のレジスタバスと、
プロセッサエレメントの演算部へ入力するデータが該プロセッサエレメントのレジスタ内の分割単位か、前記レジスタバスを経て伝えられる隣接するプロセッサエレメントのレジスタ内の分割単位かを選択するマルチプレクサと、
2つの前記グループが隣り合う場合、相対的に反対方向のプロセッサエレメントのレジスタを参照するようにマルチプレクサを制御する制御回路を備え、
更に、プロセッサエレメントアレイ部の少なくとも一方の端のプロセッサエレメントもしくは端から数個の端プロセッサエレメントは、同一の識別の前記グループに属する前記分割単位が繋がるN個の第2のレジスタバスを有し、
プロセッサエレメントアレイ部の少なくとも一方の端のプロセッサエレメントもしくは端から数個の端プロセッサエレメントでは、参照方向にレジスタが存在しない場合のために、プロセッサエレメントのレジスタ内の隣り合うグループの第2のレジスタバス、若しくは、参照方向とは反対方向のプロセッサエレメントの隣り合うグループの第2のレジスタバスが、存在しないレジスタバスの代りとして、前記マルチプレクサに繋がれていることを特徴とする。
複数のプロセッサエレメントがプロセッサエレメントアレイ部を構成するSIMD方式プロセッサである。そのSIMD方式プロセッサにおいて、
前記プロセッサエレメントは、
N(N≧2)個にビット分割され、ビット分割された分割単位がN個のグループに分類され、N個のグループが識別されるレジスタと、
プロセッサエレメント内で、同一の識別の前記グループに属する前記分割単位が繋がるレジスタバスであって、隣接するプロセッサエレメントが互いのレジスタ内の、同一の識別の前記グループに属する分割単位を参照し演算するためのN個のレジスタバスと、
プロセッサエレメントの演算部へ入力するデータが該プロセッサエレメントのレジスタ内の分割単位か、前記レジスタバスを経て伝えられる隣接するプロセッサエレメントのレジスタ内の分割単位かを選択するマルチプレクサと、
2つの前記グループが隣り合う場合、相対的に反対方向のプロセッサエレメントのレジスタを参照するようにマルチプレクサを制御する制御回路を備え、
更に、プロセッサエレメントアレイ部の少なくとも一方の端のプロセッサエレメントもしくは端から数個の端プロセッサエレメントは、同一の識別の前記グループに属する前記分割単位が繋がるN個の第2のレジスタバスを有し、
プロセッサエレメントアレイ部の少なくとも一方の端のプロセッサエレメントもしくは端から数個の端プロセッサエレメントでは、参照方向にレジスタが存在しない場合のために、プロセッサエレメントのレジスタ内の隣り合うグループの第2のレジスタバス、若しくは、参照方向とは反対方向のプロセッサエレメントの隣り合うグループの第2のレジスタバスが、存在しないレジスタバスの代りとして、前記マルチプレクサに繋がれていることを特徴とする。
本発明に係る請求項4に記載の画像処理方法は、
請求項1に記載の画像処理方法において、
前記プロセッサエレメントに内蔵の第2レジスタのビット幅を、N(N≧2)個のグループにビット分割し、
前記プロセッサエレメント数以下の画素数の第3の画像データ範囲を、前記プロセッサエレメントの第1端から順に、該プロセッサエレメントに内蔵の第2レジスタのM(1≦M≦N)番目のグループに記憶させ、
前記第3の画像データ範囲に続く前記プロセッサエレメント数以下の画素数の第4の画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵の第2レジスタのM番目グループ以外のグループに記憶させ、
第3の画像データ範囲の画像処理と第4の画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行うことを特徴とする。
請求項1に記載の画像処理方法において、
前記プロセッサエレメントに内蔵の第2レジスタのビット幅を、N(N≧2)個のグループにビット分割し、
前記プロセッサエレメント数以下の画素数の第3の画像データ範囲を、前記プロセッサエレメントの第1端から順に、該プロセッサエレメントに内蔵の第2レジスタのM(1≦M≦N)番目のグループに記憶させ、
前記第3の画像データ範囲に続く前記プロセッサエレメント数以下の画素数の第4の画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵の第2レジスタのM番目グループ以外のグループに記憶させ、
第3の画像データ範囲の画像処理と第4の画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行うことを特徴とする。
本発明に係る請求項5に記載の画像処理方法は、
請求項1に記載の画像処理方法において、
前記プロセッサエレメントに内蔵の第2レジスタ及び第3レジスタのビット幅を、N(N≧2)個のグループにビット分割し、
前記プロセッサエレメント数以下の画素数の第3の画像データ範囲を、前記プロセッサエレメントの第1端から順に、該プロセッサエレメントに内蔵の第2レジスタのM(1≦M≦N)番目のグループに記憶させ、
前記第3の画像データ範囲に続く前記プロセッサエレメント数以下の画素数の第4の画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵の第3レジスタのL(1≦L≦N)番目グループに記憶させ、
第3の画像データ範囲の画像処理と第4の画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行うことを特徴とする。
請求項1に記載の画像処理方法において、
前記プロセッサエレメントに内蔵の第2レジスタ及び第3レジスタのビット幅を、N(N≧2)個のグループにビット分割し、
前記プロセッサエレメント数以下の画素数の第3の画像データ範囲を、前記プロセッサエレメントの第1端から順に、該プロセッサエレメントに内蔵の第2レジスタのM(1≦M≦N)番目のグループに記憶させ、
前記第3の画像データ範囲に続く前記プロセッサエレメント数以下の画素数の第4の画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵の第3レジスタのL(1≦L≦N)番目グループに記憶させ、
第3の画像データ範囲の画像処理と第4の画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行うことを特徴とする。
本発明に係る請求項6に記載の画像処理装置は、
画像データの主走査方向に連続する画素を、SIMD方式プロセッサに装備されたプロセッサエレメント数に応じて分割し、画像処理を行う画像処理装置であって、
前記プロセッサエレメントに内蔵の第1レジスタのビット幅が、N(N≧2)個のグループにビット分割されており、
前記プロセッサエレメント数以下の画素数の第1の画像データ範囲を、前記プロセッサエレメントの第1端から順に、外部記憶装置から、該プロセッサエレメントに内蔵の第1レジスタのM(1≦M≦N)番目のグループに記憶させ、
前記第1の画像データ範囲に続く前記プロセッサエレメント数以下の画素数の第2の画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、外部記憶装置から、該プロセッサエレメントに内蔵の第1レジスタのM番目グループ以外のグループに記憶させ、
第1の画像データ範囲の画像処理と第2の画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行うことを特徴とする。
画像データの主走査方向に連続する画素を、SIMD方式プロセッサに装備されたプロセッサエレメント数に応じて分割し、画像処理を行う画像処理装置であって、
前記プロセッサエレメントに内蔵の第1レジスタのビット幅が、N(N≧2)個のグループにビット分割されており、
前記プロセッサエレメント数以下の画素数の第1の画像データ範囲を、前記プロセッサエレメントの第1端から順に、外部記憶装置から、該プロセッサエレメントに内蔵の第1レジスタのM(1≦M≦N)番目のグループに記憶させ、
前記第1の画像データ範囲に続く前記プロセッサエレメント数以下の画素数の第2の画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、外部記憶装置から、該プロセッサエレメントに内蔵の第1レジスタのM番目グループ以外のグループに記憶させ、
第1の画像データ範囲の画像処理と第2の画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行うことを特徴とする。
本発明を利用することにより、2つ若しくはそれ以上の連続する画素データ範囲をビット分割されたレジスタに格納して処理するため、処理ステップが減少する。更に、プロセッサエレメントアレイ部の端部で画素データが連続するので、無効画素の割合が減少し処理全体がより効率化する。
以下、図面を参照して本発明に係る好適な実施形態を説明する。
図1は、一般的なSIMD方式プロセッサ2及び画像メモリ10の概略の構成図である。グローバルプロセッサ6は、所謂SISD(Single Instruction−stream, Single Data−stream)タイプのプロセッサであり、プログラムRAMとデータRAMを内蔵してプログラムを解読し各種制御信号を生成する。この制御信号はグローバルプロセッサ6に内蔵される各種ブロックの他、レジスタファイル12や演算アレイ14に供給される。また、グローバルプロセッサ6は、GP(グローバルプロセッサ)命令実行時には内蔵する汎用レジスタ、ALU(算術論理演算器)等を使用して各種演算処理、プログラム制御処理を行う。
レジスタファイル12は、PE(プロセッサエレメント)命令で処理されるデータを保持している。PE命令はSIMDタイプの命令であり、レジスタファイルに保持されている複数のデータに対して同時に同じ処理を行う。
このレジスタファイル12からのデータの読み出し/書き込みの制御は、グローバルプロセッサ6によって行われる。読み出されたデータは演算アレイ14に送られ、演算アレイ14での演算処理後にレジスタファイル12に書き込まれる。また、レジスタファイル12は、プロセッサ外部からのアクセスが可能であり、グローバルプロセッサ6の制御とは別に、外部から特定のレジスタに対して読み出し/書き込みが行われる。
演算アレイ14は、PEにおける演算部のアレイ状の集合体であり、PE命令の演算処理が行われる部位である。処理の制御はすべてグローバルプロセッサ6から行われる。画像メモリ10は、処理する前の画像データを記憶し、処理後の画像データを記憶する。
外部入出力8は、画像メモリ10から処理する前の画像データを読み出し、PEのレジスタファイル12に書き込む、あるいはレジスタファイル12から処理後の画像データを読み出し、画像メモリ10に書き込む。
図2は、2つのグループ(上位ビット側、下位ビット側)に、ビット分割されたALU、レジスタ等をもつSIMD方式プロセッサ2の詳細な構成例である。グローバルプロセッサ6には、該プロセッサ6のプログラム格納用のプログラムRAM(Program−RAM)36と演算データ格納用のデータRAM(Data−RAM)38が内蔵されている。
さらに、プログラムのアドレスを保持するプログラムカウンタ(PC)26、演算処理のデータ格納のための汎用レジスタであるG0〜G3レジスタ(16、18、20、22)、レジスタ退避、復帰時に退避先データRAMのアドレスを保持しているスタックポインタ(SP)24、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ(LS)28、同じくIRQ時とNMI時の分岐元アドレスを保持するLI、LNレジスタ(30、32)、プロセッサ6の状態を保持しているプロセッサステータスレジスタ(P)34が内蔵されている。
これらのレジスタと図示していない命令デコーダ、ALU、メモリ制御回路、割り込み制御回路、外部I/O制御回路、GP演算制御回路を使用してGP命令の実行が行われる。PE命令実行時はレジスタファイル制御回路11、演算部制御回路13、図示していない命令デコーダを使用して、レジスタファイル12の制御と演算アレイ14の制御を行う。
レジスタファイル12には、各PEに16ビットのレジスタが複数本内蔵されており、PE数分の組がアレイ構成になっている。レジスタはPEごとにR0、R1、R2、...と呼ばれている。それぞれのレジスタは、演算アレイ14に対してポートを備えており、上位ビット側と下位ビット側のそれぞれに対して、8ビットのリード/ライト兼用のバス(以下レジスタバス)で演算アレイ14からアクセスされる。図示しているレジスタは、紙面の関係により各PEで1本としている。
演算アレイ14はPEにおける演算部40のアレイ状の集合体であり、各演算部40は、32ビットALUと32ビットAレジスタ、Fレジスタを内蔵している。PE命令による演算は、基本的にレジスタファイル12から読み出されたデータをALUの片側の入力として、もう片側にはAレジスタの内容を入力として結果をAレジスタに格納する。したがって、AレジスタとR0、R1、R2、...レジスタとの演算が行われることになる。32ビットALUは、2つの16ビットALU(54a、54b)から構成されており、演算の精度が必要な場合は下位ビット側のALU54bからキャリーが上位ビット側のALU54aに入力され、32ビットALUとして機能する。演算の精度が32ビットも必要でない場合は、16ビットずつの独立した演算を行うことも可能である。
レジスタファイル12と演算部40との接続に5対1のマルチプレクサが置かれており、該マルチプレクサは、PE方向で左に1つ、2つ離れたデータと右に1つ、2つ離れたデータ、中央のデータを演算対象として選択する。
PEnは、レジスタファイル12と演算アレイ14の対応する組のうちの任意のひとつである。図2では、PEnを中心に前後2つのPEを示しており、これらはPE全体の一部である。以下の説明では、図の左方向に向かって大きいPE番号がつけられるものとして説明する。
このPEnのマルチプレクサに注目すると、上位ビット側マルチプレクサ48a、下位ビット側マルチプレクサ48bともに、入力されている信号はPEn+2、PEn+1、PEn、PEn−1、PEn−2のレジスタバス(46a、46b)であり、前後2つのPEを参照する演算が可能であることが判る。各PEに1個の画素を配置したとき、2画素隣までを参照するフィルタ処理などの画像処理が可能である。
レジスタファイル12に示される最上段のレジスタは、外部入出力8によって内容の読み出し/書き込みが可能なレジスタである。図外の外部入出力8からデータバスとコントロール信号を用いて、任意のレジスタの読み出し/書き込みが可能である。
図3に図2と同じSIMD方式プロセッサで、PEアレイ部4の一端の部分を示す。グローバルプロセッサ6部分は、図2と同じである。図3のPEアレイ部4では、図2に示した外部入出力8からのデータバスとコントロール信号と読み出し/書き込みが可能なレジスタを、図示していない。
図示されているPEは、右端のPE0からPE4の部分である。各PEは図2と同様の構成であるため、マルチプレクサに入力される信号は、上位ビット側、下位ビット側ともに、PE4、PE3、PE2までは図2のときと同様に前後2PEの参照が可能になっている。
ところがPE1にとって2つ前のPE、すなわちPEn−2に相当するPEは存在しない。同様に、PE0にとっては1つ前、2つ前のPE、すなわちPEn−1、PEn−2に相当するPEは存在しない。そのため存在しないPEのレジスタバスのデータは上位ビット側、下位ビット側ともに固定値となる。例ではGND、すなわち値は“0”となる。
《第1の実施形態》
図4は、本発明の第1の実施形態に係るSIMD方式プロセッサを用いる画像処理方法を示す概念図である。図13を用いて説明した従来技術の画像処理と同じ条件とする。即ち、96個のPEを備えるSIMD方式プロセッサで、水平走査方向に480画素データを処理するものとする。
図4は、本発明の第1の実施形態に係るSIMD方式プロセッサを用いる画像処理方法を示す概念図である。図13を用いて説明した従来技術の画像処理と同じ条件とする。即ち、96個のPEを備えるSIMD方式プロセッサで、水平走査方向に480画素データを処理するものとする。
第1の実施形態では、1回の処理でPE数の2倍の画素データを読み込んで処理する。画像データのビット幅は、PEに内蔵するレジスタのビット幅に対して半分であるとする。図4を用いて読み込み方法を説明する。図4の上部に示すように連続する192画素データを読み込むものとして、前半画像データ96個と後半画像データ96個を設定する。
前半画像データは、最左端としてd(−96)があり、右すなわち前方に向かって順に、d(−95)、d(−94)、...、d(−3)、d(−2)、d(−1)と96個のデータがあり、これらはPE95、PE94、PE93、...、PE2、PE1、PE0のレジスタR0の上位ビット側にそれぞれ読み込まれる。後半画像データは、最左端としてd(0)があり、右すなわち前方に向かって順に、d(1)、d(2)、...、d(93)、d(94)、d(95)と96個のデータがあり、これらはPE0、PE1、PE2、...、PE93、PE94、PE95のR0の下位ビット側にそれぞれ読み込まれる。
PEそのものは96しかないが、192個の画像データが図4に示すように、全て同一レジスタ上にあるので、実際の画像処理の演算では、192個のデータの処理が同時に一度で実施できる。以上のように、第1の実施形態に係る画像処理方法では、ビット分割されたレジスタにデータを配置することにより、二度必要であった演算処理を一度で実施することが可能となる。
前述のように、フィルタ処理などの画像処理では、注目画素の隣接画素を参照する。前半画像データの処理において隣接データを参照する場合、d(−96)の隣接データのうちd(−97)に相当する隣接データは、どのPEにも存在しないため、処理を進めていくうちにこちらの端から無効データが発生する。一方、d(−1)の隣接データはd(−2),d(−3),...あるいはd(0),d(1),...であり、両方向の隣接データが近くのPEに存在するため、フィルタ処理されたd(−1)のデータは無効データとはならない。
同様に、後半画像データの処理において隣接データを参照した場合、d(95)の隣接データのうちd(96)に相当する隣接データは、どのPEにも存在しないため、処理を進めていくうちにこちらの端から無効データが発生する。一方、d(0)の隣接データはd(−1),d(−2),...あるいはd(1),d(2),...であり、両方向の隣接データが近くのPEに存在するため、フィルタ処理されたd(0)のデータは無効データとはならない。
以上のように、第1の実施形態に係る画像処理方法では、PEアレイ部14の一端で有効処理範囲の減少を防ぐことができる。図15で示した従来の方法と同様の条件、即ち、96個のPEを備えるSIMD方式プロセッサで、水平走査方向に480画素データを処理するものとし、1回の画像処理の過程で端の画素から16データ分が無効になるものとした場合、第1の実施形態では、図5のように示すことができる。
第1の実施形態では、1回の読み込みでPE数の2倍の192データを読み込むが、前半96データと後半96データは同一のレジスタに格納するため、一度の演算処理で実施できる。そして、前半画像データと後半画像データの繋ぎ目付近は、これまでの説明のように無効画素が発生しない。そのため192データのうち中央の160データが有効範囲となる。これを水平走査方向に展開するとき、480データに対しては3回の処理で完遂することができる。
第1の実施形態では、前半画像データをレジスタの上位ビット側に右から左へ読み込んだ後、そこで折り返し、後半画像データをレジスタの下位ビット側に左から右へ読み込む。ここで比較対象のために、従来の方法を利用し、折り返しをすることなく、96個のPEを備えるSIMD方式プロセッサで、水平走査方向に480画素データを処理することを想定する。条件を合わせるため、画像データのビット幅は、PEに内蔵するレジスタのビット幅に対して半分であるとし、1回の処理でPE数の2倍の画素データを読み込んで処理するものとする。
つまり、(図4上部に示す)d(−96)、d(−95)、...、d(−3)、d(−2)、d(−1)の96個のデータは、PE95、PE94、PE93、...、PE2、PE1、PE0のR0の上位ビット側にそれぞれ読み込まれる。d(0)、d(1)、...、d(93)、d(94)、d(95)は、PE95、PE94、PE93、...、PE2、PE1、PE0のR0の下位ビット側にそれぞれ読み込まれる。上位ビット側、下位ビット側それぞれにおいて繋ぎ目付近で無効画素が発生するので、上位ビット側、下位ビット側での有効画素はそれぞれ、64個に過ぎない。従って、1度の処理での処理量は128個のデータである。そうすると、480個のデータに対しては、3.75回の処理が必要になる。
第1の実施形態に係る画像処理方法では、上述のとおり同じ条件下で3回の処理で完了できる。従って、本発明は処理の効率化を達成しているといえる。
《第2の実施形態》
図6は、本発明の第2の実施形態に係るSIMD方式プロセッサ2の構成図であり、図3と同様のPEアレイ部4の一端の部分を示している。
図6は、本発明の第2の実施形態に係るSIMD方式プロセッサ2の構成図であり、図3と同様のPEアレイ部4の一端の部分を示している。
第2の実施形態に係るSIMD方式プロセッサ2では、PE1の下位ビット側のマルチプレクサは、入力信号としてPEn−2に相当するところにPE0の上位ビット側レジスタバスを接続する。すなわち、PEn+2、PEn+1、PEn、PEn−1、PEn−2に相当するのは、PE3の下位ビット側レジスタバス、PE2の下位ビット側レジスタバス、PE1の下位ビット側レジスタバス、PE0の下位ビット側レジスタバス、PE0の上位ビット側レジスタバスとなる。
PE1の上位ビット側のマルチプレクサも同様に、入力信号としてPEn+2に相当するところにPE0の下位ビット側レジスタバスを接続する。すなわち、PEn+2、PEn+1、PEn、PEn−1、PEn−2に相当するのは、PE0の下位ビット側レジスタバス、PE0の上位ビット側レジスタバス、PE1の上位ビット側レジスタバス、PE2の上位ビット側レジスタバス、PE3の上位ビット側レジスタバスとなる。
同様に、PE0の下位ビット側のマルチプレクサは、入力信号としてPEn−1に相当するところにPE0の上位ビット側レジスタバスを、PEn−2に相当するところにPE1の上位ビット側レジスタバスを接続する。すなわち、PEn+2、PEn+1、PEn、PEn−1、PEn−2に相当するのは、PE2の下位ビット側レジスタバス、PE1の下位ビット側レジスタバス、PE0の下位ビット側レジスタバス、PE0の上位ビット側レジスタバス、PE1の上位ビット側レジスタバスとなる。
PE0の上位ビット側のマルチプレクサも同様に、入力信号としてPEn+1に相当するところにPE0の下位ビット側レジスタバスを、PEn+2に相当するところにPE1の下位ビット側レジスタバスを接続する。すなわち、PEn+2、PEn+1、PEn、PEn−1、PEn−2に相当するのは、PE1の下位ビット側レジスタバス、PE0の下位ビット側レジスタバス、PE0の上位ビット側レジスタバス、PE1の上位ビット側レジスタバス、PE2の上位ビット側レジスタバスとなる。
図7は、図6に示す本発明の第2の実施形態に係るSIMD方式プロセッサにおける上位ビット側マルチプレクサ42aの制御信号生成回路の概略図(図7(1))、及び下位ビット側マルチプレクサ42bの制御信号生成回路の概略図(図7(2))の概略図である。図7に示す制御信号生成回路の動作を説明する。
C_en、L1_en、L2_en、U1_en、U2_enは、それぞれ現在実行中の命令が、(水平走査方向上で)どのPEに格納されている画像データを参照する命令であるかを示している。順に、C_enは自身のPE参照命令、L1_enは1つ前方のPE参照命令、L2_enは2つ前方のPE参照命令、U1_enは1つ後方のPE参照命令、U2_enは2つ後方のPE参照命令である。
CA_enable、L1A_enable、L2A_enable、U1A_enable、U2A_enableは、各PEの上位ビット側で実際に開かれる参照経路がどれであるかを示している。CB_enable、L1B_enable、L2B_enable、U1B_enable、U2B_enableは、各PEの下位ビット側で実際に開かれる参照経路がどれであるかを示している。
つまり、CA_enable、CB_enableは、自身のPEを参照するゲートが開く信号である。L1A_enable、L1B_enableは、1つ前のPEを参照するゲートが開く信号である。L2A_enable、L2B_enableは、2つ前のPEを参照するゲートが開く信号である。U1A_enable、U1B_enableは、1つ後のPEを参照するゲートが開く信号である。U2A_enable、U2B_enableは、2つ後のPEを参照するゲートが開く信号である。「ビット分割モード」は、レジスタを上位ビット側と下位ビット側で分けて用いる場合のモードである。
上位ビット側では、(水平走査方向上で)前方PEを参照したい場合は、前方のPEを参照する経路が開く。下位ビット側では、(水平走査方向上で)前方PEを参照したい場合は、ビット分割モードではない時は、上位ビット側と同様に前方PEを参照する経路が開く。ビット分割モードである時は、上位ビット側とは反対方向のPEを参照する経路が開く。
本発明の第2の実施形態に係るSIMD方式プロセッサにおける、マルチプレクサを介する隣接PEへの参照処理を説明する。
まず、レジスタR0における後半画像データの処理を行う場合を取り上げる。後半画像データでは、PE0からPE95への方向とデータの方向とが一致している。従って、PEnでの画像処理時に隣接する画素を参照するとき、2つ前方画素、1つ前方画素、当該画素、1つ後方画素、2つ後方画素に相当するのは、PEn+2、PEn+1、PEn、PEn−1、PEn−2のレジスタR0の下位ビット側ということになる。
後半画像データのPE1のレジスタの下位ビット側のデータはd(1)であり、その2つ後方画素はd(−1)である。PE1の場合、2つ後方画素に相当するPEn−2については、図6に示す構成に従いPE0の上位ビット側レジスタバスに接続される。PE0のレジスタの上位ビット側にはd(−1)が格納されており、このときPE0の上位ビット側レジスタバスを経てPE1の下位ビット側マルチプレクサにd(−1)を伝達できる。従って、PE1のレジスタの下位ビット側においても、PEn+2、PEn+1、PEn、PEn−1、PEn−2に対応するデータとして、d(3)、d(2)、d(1)、d(0)、d(−1)を読み込むことができる。すなわち、すべて正しい参照データを得ることができ、処理結果は信用できることになる。
後半画像データのPE0のレジスタの下位ビット側のデータはd(0)であり、その2つ後方画素はd(−2)、1つ後方画素はd(−1)である。PE0の場合、2つ後方画素に相当するPEn−2については、図6に示す構成に従いPE1の上位ビット側レジスタバスに接続され、1つ後方画素に相当するPEn−1については、図6に示す構成に従いPE0の上位ビット側レジスタバスに接続される。PE1のレジスタの上位ビット側にはd(−2)が、PE0のレジスタの上位ビット側にはd(−1)が格納されている。このときPE1、PE0の上位ビット側レジスタバスを経て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の演算結果が信用できるということは、この端における有効範囲の減少はないことになる。
次に、レジスタR0における前半画像データの処理を行う場合を取り上げる。前半画像データでは、PE0からPE95への方向とデータの方向とが逆転している。従って、PEnでの画像処理時に隣接する画素を参照するとき、2つ前方画素、1つ前方画素、当該画素、1つ後方画素、1つ後方画素に相当するのは、PEn−2、PEn−1、PEn、PEn+1、PEn+2のR0の上位ビット側ということになる。
前半画像データのPE1の上位ビット側レジスタのデータはd(−2)であり、その2つ前方画素はd(0)である。PE1の場合、2つ前方画素に相当するPEn−2については、図6に示す構成に従いPE0の下位ビット側レジスタバスに接続される。PE0のレジスタの下位ビット側にはd(0)が格納されており、このときPE0の下位ビット側レジスタバスを経てPE1の上位ビット側マルチプレクサにd(0)を伝達できる。従って、PE1においてもPEn+2、PEn+1、PEn、PEn−1、PEn−2に対応するデータとして、d(−4)、d(−3)、d(−2)、d(−1)、d(0)を読み込むことができる。すなわち、すべて正しい参照データを得ることができ、処理結果は信用できることになる。
前半画像データのPE0のレジスタの上位ビット側のデータはd(−1)であり、その2つ前方画素はd(1)、1つ前方画素はd(0)である。PE0の場合、2つ前方画素に相当するPEn−2については、図6に示す構成に従いPE1の下位ビット側レジスタバスに接続され、1つ前方画素に相当するPEn−1については、図6に示す構成に従いPE0の下位ビット側レジスタバスに接続される。PE1のレジスタの下位ビット側にはd(1)が、PE0のレジスタの下位ビット側にはd(0)が格納されている。このときPE1、PE0の下位ビット側レジスタバスを経て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)を読み込むことができる。すなわち、すべて正しい参照データを得ることができ、処理結果は信用できることになる。
前半画像データの処理において、PE1およびPE0の演算結果が信用できるということは、この端における有効範囲の減少はないことになる。
なお、上記の説明では一つの好適な実施形態を取り上げたが、本発明がこれに限定されるものではない。上述の実施形態ではSIMD方式プロセッサのPE0側の端部において工夫を施しているが、反対端に施しても同様の効果を得ることができる。また上述の実施形態では、参照画素は前後2画素であるが、1画素以上であれば本発明を実現できる。
《第3の実施形態》
図8は、本発明の第3の実施形態に係るSIMD方式プロセッサの構成図であり、図3及び図6と同様のPEアレイ部4の一端の部分を示している。
図8は、本発明の第3の実施形態に係るSIMD方式プロセッサの構成図であり、図3及び図6と同様のPEアレイ部4の一端の部分を示している。
第3の実施形態に係るSIMD方式プロセッサでは、PE0とPE1の各レジスタには、上位ビット側、下位ビット側それぞれに、従来のレジスタバスとは別のバス(以下、第2のレジスタバスと言う。)が配置されており、各レジスタは対レジスタバスのポートとは別に第2のレジスタバス(60a、60b)に対してポートを持つ。
PE1の下位ビット側のマルチプレクサは、入力信号としてPEn−2に相当するところにPE0の上位ビット側の第2のレジスタバスを接続する。すなわち、PEn+2、PEn+1、PEn、PEn−1、PEn−2の夫々のバスに相当するのは、PE3の下位ビット側レジスタバス、PE2の下位ビット側レジスタバス、PE1の下位ビット側レジスタバス、PE0の下位ビット側レジスタバス、PE0の上位ビット側の第2のレジスタバスとなる。
PE1の上位ビット側のマルチプレクサにおいても同様に、PEn+2、PEn+1、PEn、PEn−1、PEn−2の夫々のバスに相当するのは、PE0の下位ビット側の第2のレジスタバス、PE0の上位ビット側レジスタバス、PE1の上位ビット側レジスタバス、PE2の上位ビット側レジスタバス、PE3の上位ビット側レジスタバスとなる。
同様に、PE0の下位ビット側のマルチプレクサは、入力信号としてPEn−1に相当するところにPE0の上位ビット側の第2のレジスタバスを、PEn−2に相当するところにPE1の上位ビット側の第2のレジスタバスを接続する。すなわち、PEn+2、PEn+1、PEn、PEn−1、PEn−2の夫々のバスに相当するのは、PE2の下位ビット側レジスタバス、PE1の下位ビット側レジスタバス、PE0の下位ビット側レジスタバス、PE0の上位ビット側の第2のレジスタバス、PE1の上位ビット側の第2のレジスタバスとなる。
PE0の上位ビット側のマルチプレクサにおいても同様に、PEn+2、PEn+1、PEn、PEn−1、PEn−2の夫々のバスに相当するのは、PE1の下位ビット側の第2のレジスタバス、PE0の下位ビット側の第2のレジスタバス、PE0の上位ビット側レジスタバス、PE1の上位ビット側レジスタバス、PE2の上位ビット側レジスタバスとなる。
上記の第3の実施形態に係るSIMD方式プロセッサの構成によれば、第2の実施形態に係るSIMD方式プロセッサと同じ効果を得られることは明白である。
《第4の実施形態》
図9は、本発明の第4の実施形態に係るSIMD方式プロセッサを用いる画像処理方法を示す概念図である。ここでは、96個のPEを備えるSIMD方式プロセッサで、水平走査方向に384画素データを処理するものとする。
図9は、本発明の第4の実施形態に係るSIMD方式プロセッサを用いる画像処理方法を示す概念図である。ここでは、96個のPEを備えるSIMD方式プロセッサで、水平走査方向に384画素データを処理するものとする。
第4の実施形態でも、1回の処理でPE数の2倍の画素データを読み込んで処理する。画像データのビット幅は、PEに内蔵するレジスタのビット幅に対して半分であるとする。図9を用いて読み込み方法を説明する。図9の上部に示すように連続する384画素データを読み込むものとして、第1画像データ、第2画像データ、第3画像データ及び第4画像データを設定する。夫々のデータ数は96である。
第1画像データは、最左端としてd(0)があり、右すなわち前方に向かって順に、d(1)、d(2)、...、d(93)、d(94)、d(95)と96個のデータがあり、これらはPE95、PE94、PE93、...、PE2、PE1、PE0のレジスタR1の上位ビット側にそれぞれ読み込まれる。第2画像データは、最左端としてd(96)があり、右すなわち前方に向かって順に、d(97)、d(98)、...、d(189)、d(190)、d(191)と96個のデータがあり、これらはPE0、PE1、PE2、...、PE93、PE94、PE95のレジスタR1の下位ビット側にそれぞれ読み込まれる。
第3画像データは、最左端としてd(192)があり、右すなわち前方に向かって順に、d(193)、d(194)、...、d(285)、d(286)、d(287)と96個のデータがあり、これらはPE95、PE94、PE93、...、PE2、PE1、PE0のレジスタR0の上位ビット側にそれぞれ読み込まれる。第4画像データは、最左端としてd(288)があり、右すなわち前方に向かって順に、d(289)、d(290)、...、d(381)、d(382)、d(383)と96個のデータがあり、これらはPE0、PE1、PE2、...、PE93、PE94、PE95のレジスタR0の下位ビット側にそれぞれ読み込まれる。
PEそのものは96しかないが、レジスタR0とレジスタR1の夫々に格納された192の画像データは、同一レジスタ上にあるので、実際の画像処理での演算は一度で実施され得る。従って、384画素データの演算を2ステップで実施できる。
フィルタ処理などの画像処理では、注目画素の隣接画素を参照する。第1の実施形態に係る画像処理方法を利用することにより、第1画像データと第2画像データの繋ぎ目付近、および第3画像データと第4画像データの繋ぎ目付近には、無効データが発生しない。更に同様に、第2画像データと第3画像データの繋ぎ目付近においても、図9に示すように、隣接データを参照することができるため、無効データは発生しない。
このように、第4の実施形態ではPEアレイの一端での有効処理範囲の減少を防ぐことができる。
図10は、本発明の第4の実施形態に係るSIMD方式プロセッサの構成図である。上述の図9に示す画像処理方法を実現する構成である。PEアレイ部4の両端の部分を示している。
図10に示す第4の実施形態に係るSIMD方式プロセッサでは、図8に示す第3の実施形態に係るSIMD方式プロセッサのPEアレイ部4の一端のPEに備えた構成を、他端のPEにも備えさせる。このことにより、PEアレイ部4の一端では、同一レジスタの上位ビット側と下位ビット側に格納された連続する画像データを相互に参照することが可能となり、PEアレイ部4の他端では、隣接レジスタの上位ビット側と下位ビット側に格納された連続する画像データを相互に参照することが可能となる。従って、画像分割による繋ぎ目の無効画素が更に減少する。但し、隣接レジスタを参照する場合は、データ処理が2ステップ必要となる。
《第5の実施形態》
図11は、本発明の第5の実施形態に係るSIMD方式プロセッサにおけるレジスタファイル12と外部入出力8、及び画像メモリ10のブロック図である。図12は、本発明の第1乃至第4の実施形態に係るSIMD方式プロセッサのPEアレイ部4の一部のブロック図である。なお、第5の実施形態に係るSIMD方式プロセッサにおけるレジスタファイル12と外部入出力8、及び画像メモリ10は、上述の第1乃至第4の実施形態に係るSIMD方式プロセッサに付属することを想定している。
図11は、本発明の第5の実施形態に係るSIMD方式プロセッサにおけるレジスタファイル12と外部入出力8、及び画像メモリ10のブロック図である。図12は、本発明の第1乃至第4の実施形態に係るSIMD方式プロセッサのPEアレイ部4の一部のブロック図である。なお、第5の実施形態に係るSIMD方式プロセッサにおけるレジスタファイル12と外部入出力8、及び画像メモリ10は、上述の第1乃至第4の実施形態に係るSIMD方式プロセッサに付属することを想定している。
図11に示す外部入出力8は、初期ロードレジスタ70を備えるアドレスカウンタ74と、制御回路72とを有する。この制御回路72により、アドレスカウンタ74は、アップカウンタおよびダウンカウンタとして動作する。画像メモリ10には、画像データが水平走査方向に順序どおり並んでいる。
画像メモリ10に記憶された画像データは、外部入出力8を介して、レジスタファイル12の各PE内のレジスタに格納される。又は、レジスタファイル12の各PE内のレジスタに格納されるデータが、やはり外部入出力8を介して、画像メモリ10へ書き込まれる。これらの場合において、アドレスが外部入出力8からレジスタファイル12に供給され、PEを示すアドレスに一致するPEのレジスタにて、リード/ライトの動作が行われる。
ここで、レジスタファイル12内のPE数を(PE0〜PE95の)96個として、図11に示すアドレスカウンタ74の動作を説明する。画像データは、画像メモリ10から順に転送されてくる。アドレスカウンタ74は、最初に初期のPE番号値“PE0”をロードする。この後、制御回路72からのUP信号により順次アドレスがカウントアップされる。PE数の上端の“PE95”に到達すると、アドレスカウンタ74は今度は到達した上端の“PE95”を初期のPE番号値としてロードする。この後、制御回路72からのDOWN信号により順次アドレスがカウントダウンされる。このような構成により、画像メモリ10より順に送信されてくる画像データを、PE0からPE95への順序でも、PE95からPE0への順序でも、どちらでも格納できる。
図12は、本発明の第1乃至第4の実施形態に係るSIMD方式プロセッサのPEアレイ部4の一部のブロック図であり、特に、外部入出力8に接続するレジスタファイル12内のレジスタの一部を示している。制御信号及びデータ信号には、7ビットアドレス、ハイレベル時にリード動作をローレベル時にライト動作を示すリード/ライト選択信号(上位ビット側、下位ビット側)、転送のタイミングを示すクロック、上位ビット側と下位ビット側のそれぞれ8ビットの転送データが含まれる。なお、各PEにはアドレスデコード・リードライトコントロール回路76が設けられており、アドレス、リード/ライト選択信号(上位ビット側、下位ビット側)及びクロックは、このアドレスデコード・リードライトコントロール回路76に与えられ、アドレスデコード・リードライトコントロール回路76はレジスタへのデータの入出力の制御を行う。
図11に示すアドレスカウンタ74からのアドレスに係る信号、及び図12に示すリード/ライト選択信号(上位ビット側、下位ビット側)により、まず、画像データが図12に示すレジスタに図4に示す配置のように転送される。次に、図12に示すレジスタより、図4に示すレジスタR0に、SIMD方式プロセッサの転送命令により画像データが転送される。この転送命令は一般的な命令であり、SIMD方式プロセッサにとって処理時間が大きな負担になるということはない。
図12では、外部入出力8に接続するレジスタは、図4に示す通常のレジスタR0とは別のレジスタとして示している。通常のレジスタに当たるレジスタR0が外部入出力8に接続されてもよい。
このように外部入出力8を介して画像メモリ10からレジスタへのデータ転送を行えば、画像データを図4若しくは図9に示すような配置に転送できる。
2・・・SIMD方式プロセッサ、4・・・PEアレイ部、6・・・グローバルプロセッサ、8・・・外部入出力、10・・・画像メモリ、14・・・演算アレイ、40・・・演算部。
Claims (6)
- 画像データの主走査方向に連続する画素を、SIMD方式プロセッサに装備されたプロセッサエレメント数に応じて分割し、画像処理を行う画像処理方法であって、
前記プロセッサエレメントに内蔵の第1レジスタのビット幅を、N(N≧2)個のグループにビット分割し、
前記プロセッサエレメント数以下の画素数の第1の画像データ範囲を、前記プロセッサエレメントの第1端から順に、該プロセッサエレメントに内蔵の第1レジスタのM(1≦M≦N)番目のグループに記憶させ、
前記第1の画像データ範囲に続く前記プロセッサエレメント数以下の画素数の第2の画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵の第1レジスタのM番目グループ以外のグループに記憶させ、
第1の画像データ範囲の画像処理と第2の画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行うことを特徴とする画像処理方法。 - 複数のプロセッサエレメントがプロセッサエレメントアレイ部を構成するSIMD方式プロセッサにおいて、
前記プロセッサエレメントは、
N(N≧2)個にビット分割され、ビット分割された分割単位がN個のグループに分類され、N個のグループが識別されるレジスタと、
プロセッサエレメント内で、同一の識別の前記グループに属する前記分割単位が繋がるレジスタバスであって、隣接するプロセッサエレメントが互いのレジスタ内の、同一の識別の前記グループに属する分割単位を参照し演算するためのN個のレジスタバスと、
プロセッサエレメントの演算部へ入力するデータが該プロセッサエレメントのレジスタ内の分割単位か、前記レジスタバスを経て伝えられる隣接するプロセッサエレメントのレジスタ内の分割単位かを選択するマルチプレクサと、
2つの前記グループが隣り合う場合、相対的に反対方向のプロセッサエレメントのレジスタを参照するようにマルチプレクサを制御する制御回路を備え、
プロセッサエレメントアレイ部の少なくとも一方の端のプロセッサエレメントもしくは端から数個の端プロセッサエレメントでは、参照方向にレジスタが存在しない場合のために、プロセッサエレメントのレジスタ内の隣り合うグループのレジスタバス、若しくは、参照方向とは反対方向のプロセッサエレメントの隣り合うグループのレジスタバスが、存在しないレジスタバスの代りとして、前記マルチプレクサに繋がれていることを特徴とするSIMD方式プロセッサ。 - 複数のプロセッサエレメントがプロセッサエレメントアレイ部を構成するSIMD方式プロセッサにおいて、
前記プロセッサエレメントは、
N(N≧2)個にビット分割され、ビット分割された分割単位がN個のグループに分類され、N個のグループが識別されるレジスタと、
プロセッサエレメント内で、同一の識別の前記グループに属する前記分割単位が繋がるレジスタバスであって、隣接するプロセッサエレメントが互いのレジスタ内の、同一の識別の前記グループに属する分割単位を参照し演算するためのN個のレジスタバスと、
プロセッサエレメントの演算部へ入力するデータが該プロセッサエレメントのレジスタ内の分割単位か、前記レジスタバスを経て伝えられる隣接するプロセッサエレメントのレジスタ内の分割単位かを選択するマルチプレクサと、
2つの前記グループが隣り合う場合、相対的に反対方向のプロセッサエレメントのレジスタを参照するようにマルチプレクサを制御する制御回路を備え、
更に、プロセッサエレメントアレイ部の少なくとも一方の端のプロセッサエレメントもしくは端から数個の端プロセッサエレメントは、同一の識別の前記グループに属する前記分割単位が繋がるN個の第2のレジスタバスを有し、
プロセッサエレメントアレイ部の少なくとも一方の端のプロセッサエレメントもしくは端から数個の端プロセッサエレメントでは、参照方向にレジスタが存在しない場合のために、プロセッサエレメントのレジスタ内の隣り合うグループの第2のレジスタバス、若しくは、参照方向とは反対方向のプロセッサエレメントの隣り合うグループの第2のレジスタバスが、存在しないレジスタバスの代りとして、前記マルチプレクサに繋がれていることを特徴とするSIMD方式プロセッサ。 - 請求項1に記載の画像処理方法において、
前記プロセッサエレメントに内蔵の第2レジスタのビット幅を、N(N≧2)個のグループにビット分割し、
前記プロセッサエレメント数以下の画素数の第3の画像データ範囲を、前記プロセッサエレメントの第1端から順に、該プロセッサエレメントに内蔵の第2レジスタのM(1≦M≦N)番目のグループに記憶させ、
前記第3の画像データ範囲に続く前記プロセッサエレメント数以下の画素数の第4の画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵の第2レジスタのM番目グループ以外のグループに記憶させ、
第3の画像データ範囲の画像処理と第4の画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行うことを特徴とする画像処理方法。 - 請求項1に記載の画像処理方法において、
前記プロセッサエレメントに内蔵の第2レジスタ及び第3レジスタのビット幅を、N(N≧2)個のグループにビット分割し、
前記プロセッサエレメント数以下の画素数の第3の画像データ範囲を、前記プロセッサエレメントの第1端から順に、該プロセッサエレメントに内蔵の第2レジスタのM(1≦M≦N)番目のグループに記憶させ、
前記第3の画像データ範囲に続く前記プロセッサエレメント数以下の画素数の第4の画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、該プロセッサエレメントに内蔵の第3レジスタのL(1≦L≦N)番目グループに記憶させ、
第3の画像データ範囲の画像処理と第4の画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行うことを特徴とする画像処理方法。 - 画像データの主走査方向に連続する画素を、SIMD方式プロセッサに装備されたプロセッサエレメント数に応じて分割し、画像処理を行う画像処理装置であって、
前記プロセッサエレメントに内蔵の第1レジスタのビット幅が、N(N≧2)個のグループにビット分割されており、
前記プロセッサエレメント数以下の画素数の第1の画像データ範囲を、前記プロセッサエレメントの第1端から順に、外部記憶装置から、該プロセッサエレメントに内蔵の第1レジスタのM(1≦M≦N)番目のグループに記憶させ、
前記第1の画像データ範囲に続く前記プロセッサエレメント数以下の画素数の第2の画像データ範囲を、前記第1端の反対端である第2端のプロセッサエレメントから逆順に、外部記憶装置から、該プロセッサエレメントに内蔵の第1レジスタのM番目グループ以外のグループに記憶させ、
第1の画像データ範囲の画像処理と第2の画像データ範囲の画像処理を、前記第2端のプロセッサエレメントを境に連続する画素データを参照して行うことを特徴とする画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005262554A JP2007073010A (ja) | 2005-09-09 | 2005-09-09 | Simd方式プロセッサ、当該simd方式プロセッサを利用する画像処理方法、及び画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005262554A JP2007073010A (ja) | 2005-09-09 | 2005-09-09 | Simd方式プロセッサ、当該simd方式プロセッサを利用する画像処理方法、及び画像処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007073010A true JP2007073010A (ja) | 2007-03-22 |
Family
ID=37934367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005262554A Pending JP2007073010A (ja) | 2005-09-09 | 2005-09-09 | Simd方式プロセッサ、当該simd方式プロセッサを利用する画像処理方法、及び画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007073010A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8024550B2 (en) | 2008-01-22 | 2011-09-20 | Ricoh Company, Ltd. | SIMD processor with each processing element receiving buffered control signal from clocked register positioned in the middle of the group |
JP2012190389A (ja) * | 2011-03-14 | 2012-10-04 | Ricoh Co Ltd | プロセッサ装置及びその演算方法 |
JP2014016894A (ja) * | 2012-07-10 | 2014-01-30 | Renesas Electronics Corp | 並列演算装置、並列演算装置を備えたデータ処理システム、及び、データ処理プログラム |
US9317474B2 (en) | 2012-08-07 | 2016-04-19 | Renesas Electronics Corporation | Semiconductor device |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000020705A (ja) * | 1998-06-30 | 2000-01-21 | Sharp Corp | 並列画像処理プロセッサ |
JP2001169068A (ja) * | 1999-12-14 | 2001-06-22 | Ricoh Co Ltd | 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2004206387A (ja) * | 2002-12-25 | 2004-07-22 | Ricoh Co Ltd | 画像処理方法およびプロセッサおよび画像処理装置 |
JP2004362253A (ja) * | 2003-06-04 | 2004-12-24 | Ricoh Co Ltd | Simd型マイクロプロセッサ |
JP2005148899A (ja) * | 2003-11-12 | 2005-06-09 | Ricoh Co Ltd | Simd型プロセッサ |
JP2005174292A (ja) * | 2003-12-09 | 2005-06-30 | Arm Ltd | データシフト操作 |
-
2005
- 2005-09-09 JP JP2005262554A patent/JP2007073010A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000020705A (ja) * | 1998-06-30 | 2000-01-21 | Sharp Corp | 並列画像処理プロセッサ |
JP2001169068A (ja) * | 1999-12-14 | 2001-06-22 | Ricoh Co Ltd | 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2004206387A (ja) * | 2002-12-25 | 2004-07-22 | Ricoh Co Ltd | 画像処理方法およびプロセッサおよび画像処理装置 |
JP2004362253A (ja) * | 2003-06-04 | 2004-12-24 | Ricoh Co Ltd | Simd型マイクロプロセッサ |
JP2005148899A (ja) * | 2003-11-12 | 2005-06-09 | Ricoh Co Ltd | Simd型プロセッサ |
JP2005174292A (ja) * | 2003-12-09 | 2005-06-30 | Arm Ltd | データシフト操作 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8024550B2 (en) | 2008-01-22 | 2011-09-20 | Ricoh Company, Ltd. | SIMD processor with each processing element receiving buffered control signal from clocked register positioned in the middle of the group |
JP2012190389A (ja) * | 2011-03-14 | 2012-10-04 | Ricoh Co Ltd | プロセッサ装置及びその演算方法 |
JP2014016894A (ja) * | 2012-07-10 | 2014-01-30 | Renesas Electronics Corp | 並列演算装置、並列演算装置を備えたデータ処理システム、及び、データ処理プログラム |
US9317474B2 (en) | 2012-08-07 | 2016-04-19 | Renesas Electronics Corporation | Semiconductor device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4913685B2 (ja) | Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法 | |
KR20010031192A (ko) | 기계시각시스템에서의 영상데이터와 같은 논리적으로인접한 데이터샘플들을 위한 데이터처리시스템 | |
JP2009223758A (ja) | 画像処理装置 | |
US7500089B2 (en) | SIMD processor with exchange sort instruction operating or plural data elements simultaneously | |
US20190213006A1 (en) | Multi-functional execution lane for image processor | |
EP3622389A1 (en) | Circuit to perform dual input value absolute value and sum operation | |
JP5633122B2 (ja) | プロセッサ及び情報処理システム | |
JP2007073010A (ja) | Simd方式プロセッサ、当該simd方式プロセッサを利用する画像処理方法、及び画像処理装置 | |
US7512290B2 (en) | Image processing apparatus with SIMD-type microprocessor to perform labeling | |
JP2006350907A (ja) | Simd型マイクロプロセッサ、データ転送装置、及びデータ変換装置 | |
JPH11312085A (ja) | プロセッサ | |
JP4408113B2 (ja) | 信号処理方法 | |
JP4482356B2 (ja) | Simdプロセッサを用いた画像処理方法及び画像処理装置 | |
JP3821198B2 (ja) | 信号処理装置 | |
JP2004206387A (ja) | 画像処理方法およびプロセッサおよび画像処理装置 | |
JP4868607B2 (ja) | Simd型マイクロプロセッサ | |
JP2008071037A (ja) | Simd型マイクロプロセッサ | |
JP3969580B2 (ja) | データ処理装置、画像処理装置、画像形成装置、プログラム及び記憶媒体 | |
JP4708387B2 (ja) | アドレスデータ生成装置及びメモリアドレッシング方法 | |
JP4516495B2 (ja) | Simd型マイクロプロセッサにおけるデータ処理方法 | |
JP4346039B2 (ja) | データ処理装置 | |
JP2010033426A (ja) | Simd型マイクロプロセッサおよび演算方法 | |
JP2011134085A (ja) | 画像処理装置 | |
JP5463799B2 (ja) | Simd型マイクロプロセッサ | |
JP2007102799A (ja) | ソート機能を有するsimd型マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080822 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101019 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110301 |