JP3277399B2 - 画像処理用汎用プロセッサ - Google Patents

画像処理用汎用プロセッサ

Info

Publication number
JP3277399B2
JP3277399B2 JP01180793A JP1180793A JP3277399B2 JP 3277399 B2 JP3277399 B2 JP 3277399B2 JP 01180793 A JP01180793 A JP 01180793A JP 1180793 A JP1180793 A JP 1180793A JP 3277399 B2 JP3277399 B2 JP 3277399B2
Authority
JP
Japan
Prior art keywords
general
processor
processing
purpose processor
data
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 - Fee Related
Application number
JP01180793A
Other languages
English (en)
Other versions
JPH06223166A (ja
Inventor
登 黒川
辰伸 安藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP01180793A priority Critical patent/JP3277399B2/ja
Priority to TW082111190A priority patent/TW364963B/zh
Priority to US08/180,715 priority patent/US5602727A/en
Priority to EP94100674A priority patent/EP0610688B1/en
Priority to DE69427663T priority patent/DE69427663T2/de
Publication of JPH06223166A publication Critical patent/JPH06223166A/ja
Application granted granted Critical
Publication of JP3277399B2 publication Critical patent/JP3277399B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration by the use of local operators

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、画像データのフィル
タリング処理などに適用して好適な画像処理用汎用プロ
セッサに関する。
【0002】
【従来の技術】画像処理用のプロセッサとしてはその処
理目的にのみ対応できるように専用化されている。例え
ば2次元画像を処理する並列処理プロセッサとしては、
「特開昭62−208158号公報」などが知られてい
る。
【0003】このLSIは画像処理用のアルゴリズムを
機能的に回路化して1個のLSIに集積したものであ
り、特定の積和演算処理などの特定のアルゴリズムに対
してはパラメータ入力により高速に処理できる。
【0004】また、マイクロプログラム制御によるプロ
セッサとしては、「特開昭63−118885号公報」
などが知られている。このLSIは局所処理用に4つの
プロセッサを持たしたもので、各プロセッサがマイクロ
プログラムに基づいてマルチプロセッサとして動作する
ように構成されている。
【0005】
【発明が解決しようとする課題】このように従来の画像
処理用のプロセッサは何れも専用のプロセッサであるか
ら、特定のアルゴリズムを処理する場合には高速化が可
能であるのに対して、特定のアルゴリズム以外のアルゴ
リズムはこれを処理できない。複数のプロセッサを組み
合わせて使用したとしてもプロセッサ間のデータ通信が
できないため、これもまた特定のアルゴリズムのみに対
応できるマルチプロセッサ構成となっている。
【0006】そのため、汎用性が全くないから、例えば
このプロセッサを(3×3)サイズの積和演算処理か
ら、(5×5)サイズ以上の積和演算処理に拡張するこ
ともできなければ、複数のプロセッサを用いて分割処理
することによって処理の高速化を達成することもできな
い。
【0007】また、プロセッサ間でのデータ通信ができ
れば、例えば2つの画像メモリのデータ同士を演算処理
することができるので、2つの画像データを論理和した
りする演算を簡単に行うことができる。さらには、レジ
スタファイルのアドレス機能を利用すれば画像メモリに
対するアドレス制御用の回路などにも適用することが可
能になる。
【0008】そこで、この発明はこのような従来の課題
を解決したものであって、汎用化を実現した画像処理用
汎用プロセッサを提案するものである。
【0009】
【課題を解決するための手段】上述の課題は、積和演算
機能を有する複数のプロセッサエレメントで構成され、
これら複数のプロセッサエレメント同士で互いに別のプ
ロセッサエレメントの任意の演算処理ステップにおける
画像データ自己のプロセッサエレメントにおける任意
の処理ステップに取り込むようになされた2N(N≧
3)個の汎用プロセッサユニットを備えた画像処理用汎
用プロセッサであって、2N個の汎用プロセッサユニッ
トが2組に分けられ、各組で(N−1)個の汎用プロセ
ッサユニットがライン内のデータ演算処理に使用され、
残りの汎用プロセッサユニットがライン間のデータ演算
処理に使用されると共に、各組の汎用プロセッサユニッ
トで複数の画像データのそれぞれの演算を並列に処理す
るようにしたことを特徴とする第1の画像処理用汎用プ
ロセッサによって解決される。
【0010】本発明に係る第2の画像処理用汎用プロセ
ッサは、積和演算機能を有する複数のプロセッサエレメ
ントで構成され、これら複数のプロセッサエレメント同
士で互いに別のプロセッサエレメントの任意の演算処理
ステップにおける画像データを自己のプロセッサエレメ
ントにおける任意の処理ステップに取り込むようになさ
れた6個の汎用プロセッサユニットを備え、5画素×5
ラインの積和演算処理をする画像処理用汎用プロセッサ
であって、6個の汎用プロセッサユニットが2組に分け
られ、各組で2個の汎用プロセッサユニットがライン内
のデータ演算処理に使用され、残りの1個の汎用プロセ
ッサユニットがライン間のデータ演算処理に使用される
と共に、各組の汎用プロセッサユニットで複数の画像デ
ータのそれぞれの演算を並列に処理するようにしたこと
を特徴とするものである
【0011】
【0012】
【0013】
【作用】本発明に係る第1の画像処理用汎用プロセッサ
によれば、1つの汎用プロセッサユニットが例えば、
1に示すように、プロセッサエレメントPE1,PE
2,PE3を備え、それぞれのプロセッサエレメントP
E1等が図2のようにデータをライトするラインメモリ
LM、ラインメモリLMの出力データを乗算する乗算器
MPY、乗算出力などを取り込むレジスタファイルR
F、レジスタファイルRFの出力を演算する累算器AL
Uで構成される。
【0014】各々のプロセッサエレメントPE1等にお
いて、個々の処理素子の前段にはデータセレクト用の入
力切り替え手段MUXが設けられ、この入力切り替え手
段MUXを適宜制御することによってプロセッサエレメ
ント同士の任意の処理ステップの段階でデータの取り込
みができるようになる。例えば入力切り替え手段MUX
1を制御することによってデータはどのラインメモリL
M1〜LM4にも取り込むことができるし、入力切り替
え手段MUX2とMUX10を制御することによって、
ラインメモリLM1〜LM4のデータをどの乗算器MP
X1〜MPX3にも取り込むことができる。
【0015】第1の画像処理用汎用プロセッサでは上述
した積和演算機能を有する複数のプロセッサエレメント
で構成された2N(N≧3)個の汎用プロセッサユニッ
トを備え、2N個の汎用プロセッサユニットが2組に分
けられ、各組で(N−1)個の汎用プロセッサユニット
がライン内のデータ演算処理に使用され、残りの汎用プ
ロセッサユニットがライン間のデータ演算処理に使用さ
れると共に、各組の汎用プロセッサユニットで複数の画
像データのそれぞれの演算を並列に処理するようになさ
れる。 従って、複数の画像データを高速演算処理可能な
画像処理用汎用プロセッサを構築することができ、汎用
プロセッサユニットの多用途化を実現できる。これによ
り、積和演算処理の拡張が容易に実現できる他、同じプ
ロセッサユニット内でも複数のプロセッサエレメント同
士のデータの授受が可能であるため、2以上の画像メモ
リに対する画像処理なども簡単に実現できるようにな
る。当該構成を採らないフィルタ処理装置に比べて全体
の演算処理時間を短縮することができる。本発明の第2
の画像処理用汎用プロセッサによれば、第1の画像処理
用汎用プロセッサにおいてN=3を代入して、5画素×
5ラインの積和演算処理をする場合に6個の汎用プロセ
ッサユニットを備え、6個の汎用プロセッサユニットが
2組に分けられ、各組で2個の汎用プロセッサユニット
がライン内のデータ演算処理に使用され、残りの汎用プ
ロセッサユニットがライン間のデータ演算処理に使用さ
れると共に、各組の汎用プロセッサユニットで複数の画
像データのそれぞれの演算を並列に処理するようになさ
れる。従って、複数の画像データを高速演算処理可能な
エッジ検出用のフィルタ処理装置等を構築することがで
き、汎用プロセッサユニットの多用途化を実現できる。
当該構成を採らないフィルタ処理装置に比べて全体の演
算処理時間を短縮することができる。その結果プロセ
ッサエレメント間の画像データ取り込みは勿論のこと、
複数のプロセッサエレメントで構成されるプロセッサユ
ニット同士のデータ通信も可能になる。
【0016】
【実施例】続いて、この発明に係る画像処理用汎用プロ
セッサの一例を上述した画像処理に適用した場合につ
き、図面を参照して詳細に説明する。
【0017】図1はこの発明の基本構成を示し、図のよ
うにそれ自身計算機能を有したプロセッサエレメントP
Eが複数、この例では3個PE1〜PE3使用されて汎
用プロセッサPUが構成される。
【0018】プロセッサエレメントPE同士はその任意
の処理ステップで互いの画像データを入力することがで
きるようになされているが、図1には説明の都合上その
接続関係が省略され、エレメント同士は互いに独立した
ものとして図示されている。プロセッサエレメントPE
1〜PE3は同一構成であるので、プロセッサエレメン
トPE1についてその構成を説明する。
【0019】図1に示すプロセッサエレメントPE1に
おいて、LMはラインメモリである。本例では画像デー
タを処理することを前提としているので、メモリの単位
はラインである。ラインメモリLMよりリードされた画
像データは乗算器MPYにて所定の係数Mと乗算され
る。乗算結果はレジスタファイルRFの所定のアドレス
にストアされる。
【0020】レジスタファイルRFよりリードされた複
数の画像データは累算器ALUにて積算処理され、その
結果は再びレジスタファイルRFにストアされる。レジ
スタファイルRFにストアされた積算結果はリードされ
て別のプロセッサエレメントPE2若しくはPE3のレ
ジスタファイルにロードされる。
【0021】累算器ALUにおける乗算した結果である
ステータス情報(キャリー/オーバーフロー/サイン/
ゼロなど)はステータスレジスタSRに一旦ストアされ
ると共に、そのステータス情報(1ビット)はシーケン
サSEQに格納されたマイクロプログラムのアドレスの
一部として使用される。
【0022】シーケンサSEQ1〜SEQ3は対応する
プロセッサエレメントPE1〜PE3を制御するために
設けられたもので、これに内蔵されたマイクロプログラ
ムによって演算処理モードが決定される。
【0023】ラインメモリLMには入力画像データの
他、他の汎用プロセッサPUより出力された演算処理結
果が格納される場合があり、この演算処理結果は最終的
には別の画像メモリにストアされる。したがって、ライ
ンメモリLMの出力は上述した乗算器MPYへの入力デ
ータとして使用されるほか最終データとして外部にも出
力される。
【0024】上述したプロセッサエレメントPE1〜P
E3はその処理途中の段階(ステップ)で、任意のプロ
セッサエレメントPE1〜PE3からの入力画像データ
若しくは処理データを受け取ることができるようになっ
ている。そのための具体的な構成の一例を図2に示す。
【0025】図2において、ラインメモリLMは4個使
用され、乗算器MPYは3個使用される。乗算器MPY
が3個使用される結果、後段に続くレジスタファイルR
F、累算器ALUも、ステータスレジスタSRも、そし
てシーケンサSEQもそれぞれ3個使用される。
【0026】このような個数のときを例示すると、まず
MUX1は入力切り替え手段であって、これにはこの例
では3つの入力データが供給され、そのうちの任意の入
力データを選択して出力させることができるようになさ
れている。入力データの1つであるLMDIは外部に設
けられた画像メモリ(図示はしない)からの入力画像デ
ータであり、LMEIは別の汎用プロセッサPUより出
力された画像データを取り扱うときの入力画像データで
ある。そして、もう1つの入力データは汎用プロセッサ
PU自身の演算処理結果の画像データである。
【0027】ラインメモリLMのそれぞれの出力は入力
切り替え手段MUX2によってどの乗算器MPY1〜M
PY3に供給されるかが決まる。このときのラインメモ
リ指定アドレスはレジスタファイルRF1〜RF3に設
けられたアドレスカウンタCNの出力が利用される。こ
のアドレスカウンタCNのアドレスによってどのライン
メモリLM1〜LM4でもその出力を指定して対応する
乗算器MPY1〜MPY3に入力させることができる。
Rはバッファ用のレジスタである。
【0028】レジスタファイルRF1〜RF3は3つの
入力端子A,B,Cと3つの出力端子D,E,Fとアド
レスCNの7端子構成であって、これらの入出力処理お
よびアドレス指定は同時に実行できるようになってい
る。
【0029】乗算結果はB端子からロードされ、A端子
からは入力切り替え手段MUX7,MUX8,MUX9
で選択された画像データがロードされる。入力切り替え
手段MUX3はレジスタファイルRF1〜RF3の画像
データ(D,E端子)をどの累算器ALU1〜ALU3
に与えるかを選択するためのものである。
【0030】入力切り替え手段MUX4は演算処理結果
の何れかをバッファ用のレジスタRを介してラインメモ
リLMの何れかにライトするかを選択するためのもの
で、この場合には入力切り替え手段MUX3とMUX1
がそれぞれ同時に動作する。ALU1〜ALU3の出力
はさらにレジスタファイルRF1〜RF3のC端子を通
じてロードされる。
【0031】入力切り替え手段MUX5とMUX6とは
レジスタファイルRF1〜RF3の出力画像データ(F
端子)を選択して別の汎用プロセッサに渡すためのもの
で、入力切り替え手段MUX5およびMUX6で選択さ
れた出力画像データLKOA,LKOBは別の汎用プロ
セッサにおける入力画像データ(処理中の画像データ)
LKIA,LKIBとなる。
【0032】入力切り替え手段MUX10はラインメモ
リLMの画像データを別の画像メモリなどにライトする
ときなどのときに外部出力制御用として使用されるもの
であって、プロセッサエレメントPE4によって制御さ
れる。すなわち、プロセッサエレメントPE4に内蔵さ
れたマイクロプログラムによって生成されたアドレスカ
ウンタ出力CNに基づいて入力切り替え手段MUX10
が動作して特定のラインメモリLMが選択される。プロ
セッサエレメントPE4は図示はしないが、他の入力切
り替手段MUX1〜MUX11も制御する。
【0033】ラインメモリLMよりリードされた画像デ
ータは入力切り替え手段MUX11によって何れかの画
像データのみが選択されて出力画像データLMEOとな
される。
【0034】このようにデータ処理中はレジスタファイ
ルRF1〜RF3からのアドレスカウンタ出力CNによ
って入力切り替え手段MUX10が制御されるのに対し
て、最終出力画像データを外部に出力するときにはプロ
セッサエレメントPE4からのアドレスカウンタ出力C
Nによって入力切り替え手段MUX10が制御されるよ
うになっている。
【0035】プロセッサエレメントPE4は上述したプ
ロセッサエレメントPE1〜PE3の構成要素のうちレ
ジスタファイルRF,累算器ALU,ステータスレジス
タSRおよびシーケンサSEQの構成要素によって成り
立っている。
【0036】レジスタファイルRF1〜RF3はその縦
方向に並んだ隣りのレジスタファイルにのみ出力画像デ
ータを受け渡すことができるようになされており、出力
画像データは上述した入力切り替え手段MUX7,MU
X8,MUX9を選択することによって行われる。した
がって、入力切り替え手段MUX7,MUX8,MUX
9では外部からの画像データLKIA,LKIBと前段
のF端子からの出力画像データの計3つの画像データが
選択される。
【0037】累算器ALUの演算処理結果であるステー
タス情報はそれぞれ縦方向に配列された次段の累算器A
LUに伝達されると共に、ステータスレジスタSR1〜
SR3にも供給されて一時的にストアされる。このステ
ータス情報(1ビット)は次段に設けられたシーケンサ
SEQ1〜SEQ3の全てに供給され、3つのステータ
ス情報を結合することによって下位3ビットのアドレス
として使用される。これでシーケンサSEQ1〜SEQ
3のそれぞれに格納されたマイクロプログラムに対する
アドレス(3ビット分)が指定される。このような結合
処理を行うことによってパイプライン処理の高速化を達
成している。
【0038】図2に示したような構成の汎用プロセッサ
PUを使用して画像処理用プロセッサが構成される。図
3はその基本構成を示す。画像処理用プロセッサは上述
したプロセッサエレメントで構成された2N(N≧3)
個の汎用プロセッサユニットを備える。
【0039】図3は6個の汎用プロセッサ(以下プロセ
ッサユニットという)PUを使用して画像処理用プロセ
ッサを構成した場合で、実線は入力画像データの経路、
破線は出力画像データの経路をそれぞれ示す。鎖線は処
理用データの経路(流れ)であって、横方向に並んだプ
ロセッサユニット(PU1,PU2),(PU3,PU
4),(PU5,PU6)同士の間では図のようにデー
タが流れる(鎖線図示)のに対し、縦方向に並んだプロ
セッサユニット(PU1,PU3,PU5),(PU
2,PU4,PU6)同士では鎖線矢印方向のみデータ
が伝達されるように組み合わせられている。
【0040】したがって、1つの画像メモリに蓄積され
た1枚の画像データに対して例えばエッジ検出用のフィ
ルタリング処理(3画素×3ライン、5画素×5ライン
などの積和演算処理)を施す場合には図4のように構成
されることになる。
【0041】図4は積和演算処理用に構成した第2の発
明に係る画像処理用汎用プロセッサの例で、特に同図は
5×5の積和演算処理を実現するときの具体例である。
プロセッサユニットには4個のラインメモリしか搭載し
ていないので、3個のプロセッサユニットが使用され、
そのうち積和演算用に2個使用されると共に、演算結果
が別のプロセッサユニットにロードされる。
【0042】図は画像メモリIMを上下に2分割し、そ
れぞれを同時に処理して処理結果を別の画像メモリOM
に書き込むようにした場合であって、N=3の例であ
る。この場合には図3のように6個の汎用プロセッサユ
ニットを3個づつの(PU1−PU2−PU4),(P
U6−PU5−PU3)の2組に分けてそれぞれの組み
の汎用プロセッサユニットPUA,PUBで複数の画像
データのそれぞれの演算を並列に画像処理を行うように
なされる。
【0043】この例では、2(N−1)=4個の汎用プ
ロセッサユニットPU1、PU2、PU6、及びPU5
をライン内のデータ演算処理に使用される。このとき、
画像処理の流れは矢印の通りのパイプライン処理であっ
て、画像データIMAはプロセッサユニットPU1とP
U2とに入力され、他方の画像データIMBはプロセッ
サユニットPU6とPU5に入力される。そして、残り
プロセッサユニットPU4とPU3から画像処理後の
出力画像データOMA,OMBが出力される。プロセッ
サユニットPU4とPU3をライン間のデータ演算処理
に使用するためである。
【0044】画像データDijの一例を図5に、使用され
るフィルタ係数Mijを図6に示す。(5×5)の画像処
理は第1に画像データとフィルタ係数の乗算処理が各ラ
インa〜eごとに行われ、第2に各ラインa〜eごとに
得られた乗算出力に対する加算処理が行われる。第1の
乗算処理はプロセッサユニットPU1とPU2とで行わ
れ、第2の加算処理はプロセッサユニットPU6で行わ
れる。
【0045】図7〜図9は乗算処理を説明するための図
である。図7に示すプロセッサユニットPU2では3つ
のラインメモリLM1〜LM3が使用されてラインa〜
cの画像データが順次ロードされる(時点i0〜i2)。
【0046】プロセッサユニットPU1では2個のライ
ンメモリLM4とLM5が使用されて対応するラインd
とeの画像データが順次ロードされる(時点i3〜i
4)。5個のラインメモリLMの全てに画像データがロ
ードされると、図8に示すようにこれらの画像データが
ラインごとに順次1画素づつ読み出され、対応する乗算
器MPY(MPY1〜MPY3)において乗算処理が行
われる。
【0047】この乗算処理の一例をラインaについて説
明すれば図10のようになる。この図10における処理
ステップaがプロセッサユニットPU2における乗算器
MPY1の乗算処理例である。ここで、図10の時点t
0が図8に示す時点i5に相当する。
【0048】このような乗算処理と同時に、図8のよう
にプロセッサユニットPU1の空いているラインメモリ
LM3に次のラインfの画像データがロードされると共
に、プロセッサユニットPU2に対しても空いているラ
インメモリLM4に、プロセッサユニットPU1の初段
に位置するラインメモリLM1の画像データがロードさ
れる。時点i6は1ライン処理後の時点t0に対応する。
【0049】このように新しいラインに対する画像デー
タのロードと、空いているラインメモリへの画像データ
のシフト処理を行うのは、順次1ラインづつ画像データ
を更新して(5×5)の積和演算処理を実行する必要が
あるからである。
【0050】プロセッサユニット同士の画像データの授
受は図2でも説明したようにLMEOとLMEIを利用
して行われる。
【0051】ラインa〜eを用いた積和演算処理が終了
すると、今度はラインを1ラインシフトして図9のよう
にラインb〜fを用いた積和演算処理が行われる。そし
て、次の処理に備えるべくラインgのロードとラインe
のシフト処理が行われる。このような処理が最後のライ
ンまで行われて(5×5)の積和演算処理が終了する。
【0052】図10に示すように、処理ステップaでは
乗算器MPYでの画素ごとの乗算処理が行われ、順次乗
算出力が順次レジスタファイルRFにロードされると共
に、5画素分の乗算処理が終了すると、処理ステップb
に示すようにそれらの乗算出力が順次リードされて累算
器ALU1で加算処理が行われる。つまり、累算器AL
U1では5画素分の乗算出力に対する加算処理が行わ
れ、その最終結果の加算出力R10(ラインaの処理で
あるためR10aとして示す)が同じプロセッサエレメ
ントPE1内のレジスタファイルRF1のC端子を通じ
てロードされる。
【0053】加算出力R10aは次のタイミング(図1
0の処理ステップc)にはプロセッサユニットPU4の
プロセッサエレメントPE1に設けられたレジスタファ
イルRF1にロードされて、次のライン間における加算
処理に備えられる。このときは図2に示すようにLKO
A,LKIA(若しくはLKOB,LKIB)を介して
処理データの入出力が行われる。
【0054】処理データの流れは図4に示すように一方
向(プロセッサユニットPU2→PU1→PU4)であ
るから、処理データは図11のような流れに沿って最終
のプロセッサユニットPU4に伝達される。
【0055】図12を参照して説明する。時点t9にな
ると各ラインa〜eの加算出力R10a〜R10eが揃
うので、時点t10でR10aをプロセッサユニットPU
4に移し、これと同時にプロセッサユニットPU2のレ
ジスタファイルRF1にはR10eを、同じレジスタフ
ァイルRF2にはR10dをロードする。
【0056】次の時点t11では加算出力R10bをプロ
セッサユニットPU4に移し、これと同時にプロセッサ
ユニットPU2のレジスタファイルRF2には加算出力
R10dを移すというような順序で、全ての加算出力R
10a〜R10eが順次プロセッサユニットPU4に移
される。
【0057】プロセッサユニットPU4では以下のよう
なライン間の加算処理が実行される。図12と図13を
参照して説明する。
【0058】時点t14になると5ライン分の加算出力R
10a〜R10eが揃うので、これら加算出力R10a
〜R10eが順次累算器ALU1に供給されて順次加算
処理が行われる(図12時点t15〜t18)。最終加算結
果R00は画素D00におけるフィルタリング処理された画
像データとなり、これは図13に示す入力切り替え手段
MUX4→レジスタR→MUX1を経てラインメモリL
M1にライトされる。
【0059】1ライン分の最終加算結果の画像データR
ijがラインメモリLM1にストアされると、次のライン
の最終加算結果である画像データRijが今度は次のライ
ンメモリLM2にライトされる。これと同時にラインメ
モリLM1がリードされて図4に示す外部画像メモリO
Mに画像処理後のデータとしてストアされる。
【0060】ここで、どのラインメモリLMに画像デー
タRijをライトするかはレジスタファイルRF1のアド
レスカウンタCNの出力に基づいて制御されるのに対し
て、ラインメモリLMにストアされた画像データRijを
外部メモリOMにストアするときにはプロセッサエレメ
ントPE1の出力に基づいて制御される。
【0061】図14はフィルタリング係数(マスクデー
タ)としてケニー(CANY)のフィルタを使用した場合の
係数値を示す。ケニーのフィルタでは図のように係数
「0」があるので、この場合にはi=3番目の画素に対
するフィルタリング処理(乗算処理)は不要である。そ
のため、このようなときは図15にその一部の構成を示
すように乗算器MPY1に与えられる係数制御カウンタ
160を工夫して、図16Bのように「0」のマスクデ
ータが出力されないようにする。
【0062】その代わり図17のように画像データのア
ドレスAij(乗算時のアドレス)もコントロールされ、
こうすることによってi=3番目の乗算処理を省くこと
ができるため、乗算処理時間を短縮できる。
【0063】以上の(5×5)の演算処理は図4のよう
に画像データを2分割し、それぞれを同時に処理するこ
とによって演算時間を1/2に短縮できる。そして、プ
ロセッサエレメントPE自体はパイプライン処理である
ためプロセッサエレメントPE自身における処理時間も
短くて済む。
【0064】分割処理は図18のように画像データを3
分割し、3分割された画像データMa,Mb,Mcをそ
れぞれのプロセッサユニットPUa〜PUcで並列処理
すれば全体の処理時間を短縮できる。
【0065】例えば各プロセッサユニットで3ライン分
の画像データを一挙に処理するような場合を想定する
と、この場合には図19のように各プロセッサユニット
PUa〜PUcに対して分割画像データMa〜Mcそれ
ぞれについてライン単位で3タイミング(1クロックに
相当する)ごとに画像データのロードが行われると共
に、3ライン分の画像データ(L1a〜L3a),(L
1b〜L3b),(L1c〜L3c)のロードが行われ
ると同時に、画像データ(L1a〜L3a)のロードが
終了した次のタイミングから画像データ(L1a〜L3
a)の積和処理が実行される。他も同じである。
【0066】このような分割処理を行う場合には、1タ
イミングづつ順次遅れて3分割処理結果(演算処理結
果)が得られるため、実質的に1クロックで画像処理で
きるようになる。
【0067】因みに、3ライン分の画像データのロード
が終了してその積和処理を行い、積和処理が終了した段
階で再び3ライン分の画像データをロードして同じよう
な画像処理を行う場合には図19の3倍の処理時間がか
かってしまう。
【0068】図19のような処理が行えるのも、この発
明のように複数のラインメモリLMを持ち、任意のライ
ンメモリLMに画像データがロードできるように構成さ
れ、そして演算結果が同一若しくは別のプロセッサエレ
メントPEにストアできるように構成され、データはパ
イプライン処理できるようになされているからに他なら
ない。
【0069】続いて、第3および第4の発明を説明す
る。図20は第3の発明の具体例であって、2つの画像
メモリにストアされている画像データを論理積したり、
論理和する演算処理の場合に上述した汎用プロセッサを
使用した場合である。
【0070】図20はそのうち論理積処理(アンド処
理)の具体例であって、画像メモリi,jにはライン情
報としてランレングス化された画像情報がストアされて
いるものとする。これら画像情報はそれぞれ同じプロセ
ッサユニットPUに設けられたプロセッサエレメントP
E1(j用),PE2(i用)にロードされる。
【0071】そして、図21A〜Cのように画像メモリ
iのiラインと画像メモリjのjラインのランレングス
から両者のアンドをとる場合を例示する。両者のアンド
をとると、同図Cのようなランレングスが得られる。
【0072】ランレングスコードに基づいて両者のアン
ドをとるには、図22のように各ランレングスの最初s
と最後eのデータを基準にして両者の重なりを判断すれ
ばよい。両者の重なりと離間の状態を分類すれば図23
に示すようにK1〜K4の4種類となるので、両者のラ
ンレングスs,eを判断した結果、重なり具合いがどの
分類に属するかによって次の処理(アンド出力として利
用するかどうか)が相違する。
【0073】ここで、ランレングスを利用したライン
i,jの重なり具合いを求めるには次のような判断式が
用いられる。
【0074】a=js−ie−1 ・・・・(1) b=is−je−1 ・・・・(2) c=ie−je ・・・・(3) この判断結果a,b,cから条件分岐K1〜K4が決ま
る。
【0075】(1)〜(3)式にあって、i,jはそれ
ぞれ別々の画像メモリi,jのデータであるから、上の
ような判断処理を行うには互いのプロセッサエレメント
PEのデータを使用しなければならない。そのために同
一のプロセッサユニットPU内のプロセッサエレメント
PE同士でのデータの授受が必要になる。そこで、図2
に示す入力切り替え手段MUX3を用いて図24のよう
なデータ経路を作って上述した演算処理を実現させる。
【0076】まず、プロセッサエレメントPE1にあっ
ては最初のタイミングで(1)式の算術を行う。そのた
め、累算器ALU1にはレジスタファイルRF1からj
データ(=js)が、レジスタファイルRF2からiデ
ータ(=ie)がそれぞれリードされて(1)式が演算
され、その結果はステータスレジスタSR1に保存され
る。
【0077】これと同じタイミングに、他方のプロセッ
サエレメントPE2にあっては(2)式の算術が行われ
る。そのため、累算器ALU2にはレジスタファイルR
F1からjデータ(=js)が、レジスタファイルRF
2からiデータ(=ie)がそれぞれリードされて
(2)式が演算され、その結果はステータスレジスタS
R2に保存される。
【0078】このような同時処理ができるのは、レジス
タファイルRF1,RF2ともそのD,E端子から同時
にデータs,eをリードできるようになされているから
である。
【0079】(1)、(2)式の演算が終了した次のタ
イミングでは、プロセッサエレメントPE1で(3)式
の算術を行う。そのため、累算器ALU1にはレジスタ
ファイルRF1からjデータ(=js)が、レジスタフ
ァイルRF2からiデータ(=ie)がそれぞれリード
されて(3)式が演算され、その結果はステータスレジ
スタSR1に保存される。
【0080】ステータスレジスタSR1に保存された
(1)式に関するステータス情報をSR0′とし、
(2)式に関するものをSR1′、ステータスレジスタ
SR2に保存された(3)式に関するものをSR0′と
すれば、これら3つのステータス情報SR0′,SR
1′,SR0′がプロセッサエレメントPE3に設けら
れたシーケンサSEQ3の下位3ビットのアドレスA0
〜A2として使用される。
【0081】このアドレスはステータス情報に基づいて
次に分岐すべき処理条件K1〜K4を指定するためのマ
イクロプログラムのアドレスとして使用されるもので、
指定された処理条件は同じプロセッサエレメントPE3
のレジスタファイルRF3から出力される。
【0082】図25のように条件式(a)〜(c)の結
果と論理「0」、「1」とを関係付ければ、ステータス
情報が例えば「011」(この論理値は(a),
(c),(b)の順でステータス情報を並べたときのも
のである)であったときには、分岐条件K1が選ばれ
る。分岐条件K1とは図23に示すようにiラインとj
ラインが互いに重なりあっていないときの処理条件で、
このときはアンド出力もゼロとなる。
【0083】ステータス情報が「111」であったとき
には分岐条件K2が選択され、この分岐条件K2のとき
は図23のようにjラインがiラインの一部に重なって
いる状態を示すから、このときは図21Cのようなアン
ド出力が得られるように条件分岐K2のプログラムが組
まれている。
【0084】このように異なるプロセッサエレメントP
E1,PE2で得られたステータス情報を組み合わせて
マイクロプログラムに対する1つのアドレスとして直接
使用できるように構成すれば、ステータス情報を一旦シ
フトレジスタなどに保存し、全てのステータス情報が揃
った段階で始めてマイクロプログラムを起動させるよう
にする場合よりも処理時間を短縮でき、パイプライン処
理の効果が一層大きくなる。
【0085】この発明に係るプロセッサは汎用性がある
ので、上述したようにプロセッサユニットPUを増やす
だけで積和演算機能の拡張が簡単に行える他、同一のプ
ロセッサユニットPU内でもプロセッサエレメントPE
同士のデータを使用した演算処理ができる。これらの他
に、このプロセッサは画像メモリに対する制御回路とし
ても使用することができる。
【0086】第4の発明は汎用プロセッサを画像メモリ
用制御回路として使用した場合であって、図26はその
ときの一例を示す系統図である。
【0087】使用する画像メモリとしてはSRAMと一
対のDRAMを例示し、汎用のプロセッサユニットPU
は1個使用され、プロセッサエレメントPEにそれぞれ
設けられたレジスタファイルRF1,RF2がアドレス
発生器として機能する。
【0088】SRAMはレジスタファイルRF1でその
下位アドレスLADRSが、RF2で上位アドレスHA
DRSが指定される。CONT端子にはレジスタファイ
ルRF1からライトイネーブル信号が与えられる。SR
AMの画像データはレジスタR4を制御してラインメモ
リLMにロードされるか、若しくはレジスタファイルR
F1,RF2,RF3に直接ロードされる。
【0089】DRAMa,DRAMbは高速でアクセス
するためにリード、ライトが交互に行われる。DRAM
aはレジスタファイルRF1で制御され、DRAMbは
レジスタファイルRF2で制御される。それぞれのCO
NT端子には縦横方向の各アドレスを指定するRAS,
CASおよびライトイネーブル信号が加えられる。
【0090】ラインメモリLMよりロードされた画像デ
ータはバッファレジスタBF1,BF2を介して対応す
るDRAMに与えられてこれがライトされる。DRAM
a,DRAMbよりリードされた画像データはバッファ
レジスタBF3,BF4を介してラインメモリLMにロ
ードされる。
【0091】レジスタR3とR4はSRAMとDRAM
のデータの何れかを選択するためのもので、デコーダD
ECによってコントロールされる。デコーダDECには
そのコントロール信号がレジスタファイルRF1から供
給される。プロセッサエレメントPE3のレジスタファ
イルRF3はラインメモリLMを選択するためのもので
ある。
【0092】図27はDRAMを制御するときのタイミ
ングチャートの一例で、同図A〜Cのようにプロセッサ
エレメントPE1からDRAMaに対して偶数番目のア
ドレスが指定され、また同図F〜Hのようにプロセッサ
エレメントPE2からは1クロックシフトさせてDRA
Mbに対して奇数番目のアドレスが指定される。
【0093】そして、同図Jのように基準クロックの2
倍周期のリードクロックをそれぞれのメモリに与えると
同図E,Iのタイミングで画像データがリードされるか
ら、最終的には同図Kに示すように基準クロックと同じ
タイミングに画像データが順次出力される。
【0094】上述した実施例はこの発明の一例であっ
て、列挙したこれらの実施例以外でもこの発明を利用で
きることは言うまでもない。
【0095】
【発明の効果】以上説明したように、本発明の第1の画
像処理用汎用プロセッサによれば、2N(N≧3)個の
汎用プロセッサユニットを備え、2N個の汎用プロセッ
サユニットが2組に分けられ、各組で(N−1)個の汎
用プロセッサユニットがライン内のデータ演算処理に使
用され、残りの汎用プロセッサユニットがライン間のデ
ータ演算処理に使用されると共に、各組の汎用プロセッ
サユニットで複数の画像データのそれぞれの演算を並列
に処理するようにしたものであるこの構成によって、
複数の画像データを並列高速演算処理可能な画像処理用
汎用プロセッサを構築することができ、汎用プロセッサ
ユニットの多用途化を実現できる。これにより、積和演
算処理の拡張が容易に実現できる他、同じプロセッサ
ニット内でも複数のプロセッサエレメント同士のデータ
の授受が可能であるため、2以上の画像メモリに対する
画像処理なども簡単に実現することができる
【0096】本発明の第2の画像処理用汎用プロセッサ
によれば、5画素×5ラインの積和演算処理をする場合
に6個の汎用プロセッサユニットを備え、6個の汎用プ
ロセッサユニットが2組に分けられ、各組で2個づつの
汎用プロセッサユニットがライン内のデータ演算処理に
使用され、残りの1個の汎用プロセッサユニットがライ
ン間のデータ演算処理に使用されると共に、各組の汎用
プロセッサユニットで複数の画像データのそれぞれの演
算を並列に処理するようにしたものである。この構成に
よって、複数の画像データを並列高速演算処理可能なエ
ッジ検出用のフィルタ処理装置等を構築することがで
き、汎用プロセッサユニットの多用途化を実現できる。
これにより、当該構成を採らないフィルタ処理装置に比
べて全体の演算処理時間を大幅に短縮することができ
る。
【0097】この発明では実施例以外の画像処理でも、
使用する個数、組合せなどを工夫することによってその
目的に合致した画像処理用汎用プロセッサを実現でき
る。
【図面の簡単な説明】
【図1】この発明に係る汎用プロセッサの概略構成を示
すブロック図である。
【図2】汎用プロセッサの具体例を示す系統図である。
【図3】複数の汎用プロセッサを使用したときの基本的
な組合せを示すブロック図である。
【図4】積和演算処理用に使用したときの汎用プロセッ
サのブロック図である。
【図5】画像データの配列例を示す図である。
【図6】フィルタ係数の配列を示す図である。
【図7】積和演算処理の説明に供するブロック図であ
る。
【図8】積和演算処理の説明に供するブロック図であ
る。
【図9】積和演算処理の説明に供するブロック図であ
る。
【図10】1つのプロセッサユニットにおける積和演算
処理の説明図である。
【図11】(5×5)の加算処理例を示すブロック図で
ある。
【図12】加算処理動作を説明する図である。
【図13】プロセッサユニットPU4での処理動作の説
明図である。
【図14】マスクデータの一例の図である。
【図15】特定のマスクデータを使用したときの乗算処
理例を示すブロック図である。
【図16】そのときの説明図である。
【図17】乗算動作とそのときのアドレスの関係を示す
図である。
【図18】画像データの分割処理例を示すブロック図で
ある。
【図19】分割処理用のタイミング図である。
【図20】画像メモリの説明図である。
【図21】アンド処理の説明図である。
【図22】ランレングスコードの説明図である。
【図23】条件分岐の説明図である。
【図24】プロセッサエレメント間の演算処理例を示す
ブロック図である。
【図25】その動作説明に供する図である。
【図26】画像メモリ用制御回路の一例を示すブロック
図である。
【図27】その動作説明に供する波形図である。
【符号の説明】
PU(PU1〜PU6) 汎用プロセッサ(プロセッサ
ユニット) PE(PE1〜PE3) プロセッサエレメント LM(LM1〜LM4) ラインメモリ MPY(MPY1〜MPY3) 乗算器 RF(RF1〜RF3) レジスタファイル ALU(ALU1〜ALU3) 累算器 SR(SR1〜SR3) ステータスレジスタ SEQ(SEQ1〜SEQ3) シーケンサ MUX(MUX1〜MUX11) 入力切り替え手段 R(R1〜R4) レジスタ BF(BF1〜BF4) バッファレジスタ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−291682(JP,A) 特開 昭63−201777(JP,A) 特開 昭64−28788(JP,A) 特開 平2−159679(JP,A) 実開 平3−113437(JP,U) (58)調査した分野(Int.Cl.7,DB名) G06T 1/00 - 7/60 G06F 15/16

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 積和演算機能を有する複数のプロセッサ
    エレメントで構成され、これら複数のプロセッサエレメ
    ント同士で互いに別のプロセッサエレメントの任意の演
    算処理ステップにおける画像データ自己のプロセッサ
    エレメントにおける任意の処理ステップに取り込むよう
    になされた2N(N≧3)個の汎用プロセッサユニット
    を備えた画像処理用汎用プロセッサであって、 2N個の前記汎用プロセッサユニットが2組に分けら
    れ、 各組で(N−1)個の前記汎用プロセッサユニットがラ
    イン内のデータ演算処理に使用され、残りの前記汎用プ
    ロセッサユニットがライン間のデータ演算処理に使用さ
    れると共に、 各組の前記汎用プロセッサユニットで複数の画像データ
    のそれぞれの演算を並列に処理するようにした ことを特
    徴とする画像処理用汎用プロセッサ。
  2. 【請求項2】 上記プロセッサエレメントは、画像デー
    タをライトするラインメモリ、ラインメモリの出力デー
    タを乗算する乗算器、乗算出力などを取り込むレジスタ
    ファイル、レジスタファイルの出力を演算する累算器で
    構成され、個々の処理素子の前段にはデータセレクト用
    の入力切り替え手段が設けられたことを特徴とする請求
    項1記載の画像処理用汎用プロセッサ。
  3. 【請求項3】 上記画像データはパイプライン処理によ
    って積和演算処理がなされるようになされたことを特徴
    とする請求項2記載の画像処理用汎用プロセッサ。
  4. 【請求項4】 積和演算機能を有する複数のプロセッサ
    エレメントで構成され、これら複数のプロセッサエレメ
    ント同士で互いに別のプロセッサエレメントの任意の演
    算処理ステップにおける画像データを自己のプロセッサ
    エレメントにおける任意の処理ステップに取り込むよう
    になされた6個の汎用プロセッサユニットを備え、5画
    素×5ラインの積和演算処理をする画像処理用汎用プロ
    セッサであって、 6個の前記汎用プロセッサユニットが2組に分けられ、 各組で2個の前記汎用プロセッサユニットがライン内の
    データ演算処理に使用され、残りの1個の前記汎用プロ
    セッサユニットがライン間のデータ演算処理に 使用され
    ると共に、 各組の前記汎用プロセッサユニットで複数の画像データ
    のそれぞれの演算を並列に処理するようにした ことを特
    徴とする画像処理用汎用プロセッサ。
JP01180793A 1993-01-27 1993-01-27 画像処理用汎用プロセッサ Expired - Fee Related JP3277399B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP01180793A JP3277399B2 (ja) 1993-01-27 1993-01-27 画像処理用汎用プロセッサ
TW082111190A TW364963B (en) 1993-01-27 1993-12-30 General processor for processing images
US08/180,715 US5602727A (en) 1993-01-27 1994-01-13 Image processor
EP94100674A EP0610688B1 (en) 1993-01-27 1994-01-18 Image processor
DE69427663T DE69427663T2 (de) 1993-01-27 1994-01-18 Bildprozessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01180793A JP3277399B2 (ja) 1993-01-27 1993-01-27 画像処理用汎用プロセッサ

Publications (2)

Publication Number Publication Date
JPH06223166A JPH06223166A (ja) 1994-08-12
JP3277399B2 true JP3277399B2 (ja) 2002-04-22

Family

ID=11788112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01180793A Expired - Fee Related JP3277399B2 (ja) 1993-01-27 1993-01-27 画像処理用汎用プロセッサ

Country Status (5)

Country Link
US (1) US5602727A (ja)
EP (1) EP0610688B1 (ja)
JP (1) JP3277399B2 (ja)
DE (1) DE69427663T2 (ja)
TW (1) TW364963B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222386A (ja) * 1998-11-25 2000-08-11 Advantest Corp 積和回路及び傾き検出装置
US20040042551A1 (en) * 2002-09-04 2004-03-04 Tinku Acharya Motion estimation
US7266151B2 (en) * 2002-09-04 2007-09-04 Intel Corporation Method and system for performing motion estimation using logarithmic search
US20040057626A1 (en) * 2002-09-23 2004-03-25 Tinku Acharya Motion estimation using a context adaptive search
US20050228966A1 (en) * 2004-03-16 2005-10-13 Kabushiki Kaisha Toshiba Processor system and data processing method
JP4814679B2 (ja) * 2006-04-05 2011-11-16 富士重工業株式会社 画像処理装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4489393A (en) * 1981-12-02 1984-12-18 Trw Inc. Monolithic discrete-time digital convolution circuit
US4606066A (en) * 1982-09-09 1986-08-12 Hitachi, Ltd. Programmable image processor
US5274717A (en) * 1985-02-01 1993-12-28 Hitachi, Ltd. Parallel image processor for performing local neighboring image processing
US4850027A (en) * 1985-07-26 1989-07-18 International Business Machines Corporation Configurable parallel pipeline image processing system
US4790026A (en) * 1985-12-31 1988-12-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Programmable pipelined image processor
JPH0740252B2 (ja) * 1986-03-08 1995-05-01 株式会社日立製作所 マルチプロセツサシステム
JPS63118885A (ja) * 1986-11-06 1988-05-23 Matsushita Electric Ind Co Ltd 並列型画像処理プロセツサ
US4949390A (en) * 1987-04-16 1990-08-14 Applied Vision Systems, Inc. Interconnect verification using serial neighborhood processors
US5029018A (en) * 1987-11-18 1991-07-02 Nissan Motor Company, Limited Structure of image processing system
NL8800053A (nl) * 1988-01-11 1989-08-01 Philips Nv Videoprocessorsysteem, alsmede afbeeldingssysteem en beeldopslagsysteem, voorzien van een dergelijk videoprocessorsysteem.

Also Published As

Publication number Publication date
DE69427663T2 (de) 2001-10-31
EP0610688A3 (en) 1994-10-26
US5602727A (en) 1997-02-11
JPH06223166A (ja) 1994-08-12
EP0610688A2 (en) 1994-08-17
EP0610688B1 (en) 2001-07-11
DE69427663D1 (de) 2001-08-16
TW364963B (en) 1999-07-21

Similar Documents

Publication Publication Date Title
CN109240746B (zh) 一种用于执行矩阵乘运算的装置和方法
EP3451157A1 (en) Device and method for performing forward operation of convolutional neural network
JP3251421B2 (ja) 半導体集積回路
US5473554A (en) CMOS multiplexor
EP0100511B1 (en) Processor for fast multiplication
US5081573A (en) Parallel processing system
JPH10187438A (ja) 乗算器の入力に対する遷移を減少させる方法
JPS60134974A (ja) ベクトル処理装置
JPS6125188B2 (ja)
JP3277399B2 (ja) 画像処理用汎用プロセッサ
US5751999A (en) Processor and data memory for outputting and receiving data on different buses for storage in the same location
US10956361B2 (en) Processor core design optimized for machine learning applications
WO2021120646A1 (zh) 一种数据处理系统
JP2957845B2 (ja) 高速フーリエ変換装置
CN111061507A (zh) 运算方法、装置、计算机设备和存储介质
JPH0616287B2 (ja) マスク付きベクトル演算処理装置
JP3441847B2 (ja) データメモリを有するプロセッサ
JPH01119861A (ja) ディジタル信号処理用lsi
JP3088956B2 (ja) 演算装置
JPH04364525A (ja) 並列演算装置
JP3723311B2 (ja) 並列演算プロセッサ
CN117093263A (zh) 处理器、芯片、板卡及方法
CN115033843A (zh) 基于三角脉动阵列的协方差矩阵计算的电路实现方法
CN117853310A (zh) 基于卷积神经网络fpga加速的图像处理方法及系统
JPH1153344A (ja) 行列演算装置及びそれを有する数値演算プロセッサ

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees