JP2001216275A - 画像処理装置および画像処理方法 - Google Patents

画像処理装置および画像処理方法

Info

Publication number
JP2001216275A
JP2001216275A JP2000028949A JP2000028949A JP2001216275A JP 2001216275 A JP2001216275 A JP 2001216275A JP 2000028949 A JP2000028949 A JP 2000028949A JP 2000028949 A JP2000028949 A JP 2000028949A JP 2001216275 A JP2001216275 A JP 2001216275A
Authority
JP
Japan
Prior art keywords
unit
address
instruction
application
processor
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
Application number
JP2000028949A
Other languages
English (en)
Inventor
Takashi Izawa
崇 伊澤
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 JP2000028949A priority Critical patent/JP2001216275A/ja
Publication of JP2001216275A publication Critical patent/JP2001216275A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)

Abstract

(57)【要約】 【課題】プログラムコードサイズを削減でき、単一時間
に行う処理量を増大させることができる画像処理装置お
よび画像処理方法を提供する。 【解決手段】アプリケーションプログラムコードに基づ
いた命令を発行するCPU2572と、発行された命令の仕
様通りに要素プロセッサを制御するための制御コードを
生成するプロセッサ部2573とを有し、プロセッサ部2573
は、アドレス、演算長などの演算情報を1つの領域に格
納したアプリケーション変数データ保持部25736 と、発
行された命令をデコードし、アドレス情報を抽出する命
令展開部25732 と、命令展開部で抽出されたアドレス情
報に基づいて、アプリケーション変数データ保持部2573
6 より所望の演算情報を読み出す実行部25733,25734
と、実行部で読み出された演算情報に基づいて制御コー
ドを生成し、要素プロセッサに出力する出力データ保持
部25735 とを含むプログラム制御部257を設ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、たとえばディジタ
ル処理システム等に適用される画像処理装置および画像
処理方法に関するものである。
【0002】
【従来の技術】画像データに対する信号処理の分野にお
いては、1枚の画像を構成する全ての画素に対して同様
の演算処理を施すことが多い。多くのデータに対して同
様の演算処理を高速に実行するために、SIMD(Sing
le Instruction Multiple Data Stream 、単一命令複数
データ)型アーキテクチャが提案され、画像信号処理に
限らず広い分野で利用されている。
【0003】SIMD型アーキテクチャは、演算装置を
必要な個数だけ並べて、各々の演算装置が同一の命令に
従って動作するようにした構成である。したがって、各
々の演算装置に別々のデータを与えると、それぞれのデ
ータに対する演算結果が一度に得られる。
【0004】SIMD型処理装置の画像処理への適用と
しては、たとえば「Kurokawa et al.,”5.4GOPS Linear
Array Architecture DSP for Video-Format Conversio
n'',IEEE 1996/Feb. ISSCC,FP 15.7. 」に示される装置
が知られている。
【0005】図8は、このSIMD型画像処理プロセッ
サを適用した画像処理装置の構成を示すブロック図であ
る。この画像処理装置10は、図8に示すように、入力
フレームメモリ11、SIMD型画像処理プロセッサ1
2、および出力フレームメモリ13を有している。SI
MD型画像処理プロセッサ12は、入力ポインタ12
1、入力SAM( シリアルアクセスメモリ) 部122、
データメモリ部123、ALUアレイ部124、出力S
AM部125、出力ポインタ126、およびプログラム
制御部127により構成される。
【0006】SIMD型画像処理プロセッサ12におい
ては、入力SAM部122、データメモリ部123、A
LUアレイ部124、および出力SAM部125によ
り、全体でリニアアレイ( 直線配列) 型に多数並列化さ
れた要素プロセッサ群が構成されている。この多数の要
素プロセッサPEは、プログラム制御部127内にある
共通の一つのプログラム制御部により連動して制御( S
IMD制御) される。プログラム制御部127には、プ
ログラムメモリとそのプログラムの歩進のためのシーケ
ンス制御回路などがあり、プログラムメモリにあらかじ
め書き込まれたプログラムに従って接続されている各部
分に対する各種制御信号を発生して、各部分を制御す
る。
【0007】プログラム制御部127、データメモリ部
123、ALUアレイ部124をまとめてプロセッサブ
ロックとし、このプロセッサブロックを多段に構成する
ことにより、その段数に比例して処理能力を向上させる
ことができる。図8の中に示される装置は、各プロセッ
サブロック内では、SIMD型処理装置であるが、装置
全体としては複数のプログラムを並列に処理することの
できるMIMD(Multiple Instruction Multiple Data
Stream,複数命令複数データ)型処理装置である。
【0008】普通のプロセッサでは、そのハードウェア
は一般にワード処理プロセッサであり、ワードを単位と
して処理するが、図8の斜線で示した縦の細長い範囲で
示すひとつの要素プロセッサPEは、入力SAM部12
2、データメモリ部123、出力SAM部125はメモ
リの「カラム」になっており、またALUアレイ部12
4は1ビットALUであり、事実上フルアダー( 全加算
器) を主体にした回路になっている。そのため、普通の
プロセッサとは違ってビット処理プロセッサであり、ビ
ットを単位として処理する。普通のCPUで言う8ビッ
トマシンとか16ビットマシンという言い方に対応させ
れば1ビットマシンである。ビット処理プロセッサはハ
ードウェアが小さく、普通には実現できない程多数の並
列数を実現できるので、画像用の場合、要素プロセッサ
直線配列の並列数は、映像信号の一水平走査期間の画素
数( H) に一致させている。
【0009】図8に示すSIMD型画像処理プロセッサ
12による画像処理は次のような手順で行われる。水平
走査アクティブ期間内に、入力SAM部122に1水平
走査線分の入力データを取り込み、水平走査部ブランキ
ング期間で入力SAM部122からデータメモリ部12
3への転送が行われる。データメモリ部123、ALU
アレイ部124では、プログラムに応じて演算処理が行
われる。ALUアレイ部124における演算処理終了
後、処理結果が出力SAM部125に転送され、水平走
査アクティブ期間内に、出力SAM部125から1水平
走査線分データが出力される。上記の処理中に、各部は
すべて並列に動作している。
【0010】このような要素プロセッサ群をアレイ状に
配列した並列プロセッサで画像処理を行うためには、特
にSIMD制御の場合、左右の要素プロセッサとの通信
機能が不可欠となる。この左右通信(今後は,LR通
信,またはLRと記述する)機能により,フィルタ演算
や、補間演算といった左右の画素の処理を可能としてい
る。
【0011】
【発明が解決しようとする課題】ところで、要素プロセ
ッサPEをアレイ状に配列した並列プロセッサで画像処
理を実現する際、プログラム制御部の構成要素であるC
PUはワードという単位で処理を行うが、画像に対して
行う処理と、係数計算などのCPU内の演算、他の演算
ユニットのデータを取得したりするような多様な処理を
受け持つ。
【0012】近年画像処理に対する要求が多くなり、必
要とされる演算量、アプリケーションも増大している。
しかし、要素プロセッサPEをアレイ状に配列した並列
プロセッサで画像を扱う場合、単一時間に処理できる最
大数は限られている。これを実現するために、CPUの
処理速度を上げることや、CPUを複数個使用し並列度
を上げ実現する方法が考えられるが、処理速度を上げる
ためのCPUの開発コストが増大したり、並列度を上げ
るとコスト面での問題と、プログラムが複雑となるので
開発工数の問題が生じる。
【0013】本発明は、かかる事情に鑑みてなされたも
のであり、その目的は、プログラムコードサイズを削減
でき、単一時間に行う処理量を増大させることができる
画像処理装置および画像処理方法を提供することにあ
る。
【0014】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、1次元的に多並列に配置され、制御コー
ドに従って供給される画像データに対する所定の演算処
理を行う複数の要素プロセッサと、アプリケーションプ
ログラムに基づいて上記複数の要素プログラムを連動し
て制御する制御コードを生成するプログラム制御部とを
有する画像処理装置であって、上記プログラム制御部
は、アプリケーションプログラムコードに基づいた命令
を発行する処理部と、上記処理部で発行された命令を受
け取り、その命令の仕様通りに上記要素プロセッサを制
御するための制御コードを生成して出力するプロセッサ
部とを有する。
【0015】また、本発明では、上記処理部が発行する
命令にはアプリケーションプログラムで使用するアプリ
ケーション用情報を指定するためのアドレス情報を含
み、上記プロセッサ部は、アプリケーションプログラム
で使用するアプリケーション用情報を所定のアドレスに
保持するアプリケーション用情報保持部と、上記処理部
で発行された命令をデコードし、上記アドレス情報を抽
出する命令展開部と、上記命令展開部で抽出されたアド
レス情報に基づいて、上記アプリケーション用情報保持
部より所望のアプリケーション用情報を読み出す実行部
と、上記実行部で読み出されたアプリケーション用情報
に基づいて上記制御コードを生成し、要素プロセッサに
出力する出力データ部とを含む。
【0016】また、本発明では、上記アプリケーション
用情報には、アプリケーションのアドレス、演算長を少
なくとも含む。
【0017】また、本発明では、上記要素プロセッサ
は、他の要素プロセッサに供給された画像データを利用
して演算処理を行うことが可能で、上記アプリケーショ
ン用情報には、アプリケーションのアドレス、演算長、
および他の要素プロセッサとの通信情報を少なくとも含
む。
【0018】また、本発明では、上記各要素プロセッサ
は、画像データを入力するための手段を複数備えた入力
シリアルアクセスメモリ部と、入力データ、演算結果を
保持するデータメモリ部と、演算を行うALUアレイ部
と、出力画像データを取得するための手段を複数備えた
出力シリアルアクセスメモリ部との一部を含む。
【0019】また、本発明は、制御コードに従って1次
元的に多並列に配置された複数の要素プロセッサを連動
して制御して供給される画像データに対する所定の演算
処理を行う画像処理方法であって、アプリケーションプ
ログラムコードに基づいた命令を発行し、上記発行され
た命令の仕様通りに上記要素プロセッサを制御するため
の上記制御コードを生成する。
【0020】また、本発明では、上記発行する命令には
アプリケーションプログラムで使用するアプリケーショ
ン用情報を指定するためのアドレス情報を含み、かつ、
アプリケーションプログラムで使用するアプリケーショ
ン用情報を所定のアドレスに保持しておき、上記発行さ
れた命令をデコードしてアドレス情報を抽出し、上記抽
出されたアドレス情報に基づいて、上記保持しておいた
所望のアプリケーション用情報を読み出し、上記読み出
されたアプリケーション用情報に基づいて上記制御コー
ドを生成する。
【0021】また、本発明では、上記アプリケーション
用情報には、アプリケーションのアドレス、演算長を少
なくとも含む。
【0022】また、本発明では、上記要素プロセッサ
は、他の要素プロセッサに供給された画像データを利用
して演算処理を行うことが可能で、上記アプリケーショ
ン用情報には、アプリケーションのアドレス、演算長、
および他の要素プロセッサとの通信情報を少なくとも含
む。
【0023】本発明によれば、たとえばプログラム制御
部の処理部で、アプリケーションプログラムコードに基
づいたアプリケーションプログラムで使用するアプリケ
ーション用情報を指定するためのアドレス情報を含む命
令を発行され、プロセッサ部に供給される。プロセッサ
部では、たとえば命令展開部において、処理部で発行さ
れた命令がデコードされ、アドレス情報が抽出される。
次いで、実行部において、命令展開部で抽出されたアド
レス情報に基づいて、アプリケーション用情報保持部よ
り所望のアプリケーション用情報が読み出される。そし
て、出力データ部において、実行部で読み出されたアプ
リケーション用情報に基づいて制御コードが生成されて
要素プロセッサに出力される。
【0024】本発明によれば、要素プロセッサをアレイ
状に配列した並列プロセッサで画像を扱う場合に生じる
単一時間に処理できる最大数に限界がある問題に対し、
並列プロセッサの1つの命令に要するワード数を削減す
ることができ、処理量を向上させることができる。ま
た、アプリケーション全体のプログラムサイズも小さく
なるので、必要となるメモリ量も削減でき、ハード、コ
スト両面に対して有効である。
【0025】
【発明の実施の形態】図1は、本発明に係る画像処理装
置の一実施形態を示すシステム構成図である。
【0026】本画像処理装置20は、第1入力フレーム
メモリ21、第2入力フレームメモリ22、第1出力フ
レームメモリ23、および第2出力フレームメモリ2
4、およびSIMD型画像処理プロセッサ25を主構成
要素として有している。
【0027】第1入力フレームメモリ21および第2入
力フレームメモリ22は、実際に画像処理を行う基とな
る画像データをフレーム単位で格納し、格納画像データ
をSIMD型画像処理プロセッサ25に供給する。第1
出力フレームメモリ23および第2出力フレームメモリ
24は、SIMD型画像処理プロセッサ25で所定の演
算処理等を受けた画像処理後の画像データをフレーム単
位で格納する。
【0028】なお、画像データのフォーマットは、コン
ピュータディスプレイのような色の3原色であるR
(赤)、G(緑)、B(青)に基づくRGB形式であっ
ても、NTSCのようなテレビ信号であっても良い。ま
た、第1入力フレームメモリ21および第2入力フレー
ムメモリ22に格納される入力画像データ、並びに第1
出力フレームメモリ23および第2出力フレームメモリ
24に格納される出力画像データのサイズは、図1のよ
うな並列プロセッサ1個の場合、入力出力の両方のデー
タとも要素プロセッサ群の数までのサイズに限定され
る。
【0029】SIMD型画像処理プロセッサ25は、入
力ポインタ251、第1入力SAM( シリアルアクセス
メモリ) 部252a、第2入力SAM部252b、デー
タメモリ部253、ALUアレイ部254、第1出力S
AM部255a、第2出力SAM部255b、出力ポイ
ンタ256、およびプログラム制御部257を有してい
る。また、本実施形態では、1画素に対応するそれぞれ
のブロックを合わせたものを要素プロセッサPEと呼
ぶ。本SIMD型画像処理プロセッサは、要素プロセッ
サPEをアレイ状に画像のサイズ分配置した要素プロセ
ッサ群より構成されている。また、本実施形態では、入
力SAM部、出力SAM部を2つ有する構成を示してい
るが、本発明を実現するためには、これら入力SAM
部、出力SAM部は、1つであっても、2つ以上の複数
個持っていても良い。そして、SIMD型画像処理プロ
セッサ25は、ハードウェアで構成されていても良い
し、ソフトウェアで実現されていても良い。
【0030】入力ポインタ251は、ALUアレイ部2
54の書き込みアドレスが、入力ポインタ251を指し
ているときに、ALUアレイ部254の演算結果を受け
て入力SAM部252a、入力SAM部252bを制御
する。なお、入力SAM部252aと入力SAM部25
2b制御用の入力ポインタを別々に持っていても良い
し、同じポインタアドレスであっても良い。また、入力
ポインタ251は、ハードウェアのメモリとして構成さ
れていても良いし、ソフトウェア上で実現されていても
良い。
【0031】入力SAM部252aは、入力ポインタ2
51の指示に従ってスキップ等の処理を含めて、第1入
力フレームメモリ21に格納された画像データを所定の
位置に入力し、そのデータをデータメモリ部253に供
給する。入力SAM部252bは、入力ポインタ251
の指示に従ってスキップ等の処理を含めて、第2入力フ
レームメモリ22に格納された画像データを所定の位置
に入力し、そのデータをデータメモリ部253に供給す
る。なお、入力SAM部252a、および入力SAM部
252bは、ハードウェアで構成されていても良いし、
ソフトウェアのファイルとして構成されていても良い。
【0032】データメモリ部253は、1要素プロセッ
サPE当たり数百ビットのメモリから構成されており、
プログラム制御部257の制御コードに従い、入力SA
M部252a,252bからのデータを保持したり、A
LUアレイ部254が演算を行うためのデータをALU
アレイ部254に送り、また、ALUアレイ部254の
演算結果を保持したりする。なお、データメモリ部25
3は、ハードウェアのメモリとして構成されていても良
いし、ソフトウェアのメモリ配列として構成されていて
も良い。
【0033】ALUアレイ部254は、データメモリ部
253からのデータを入力し、プログラム制御部257
で指定されたアドレスポインタに演算結果を書き込む。
アドレスポインタがデータメモリ部253であった場合
は、データメモリ部253の指定されたアドレスにAL
Uアレイ部254の演算結果が書き込まれる。また、ア
ドレスポインタが入力ポインタ251、出力ポインタ2
56であった場合には、入力ポインタ251、出力ポイ
ンタ252にALUアレイ部254の演算結果が書き込
まれる。なお、ALUアレイ部254は、ハードウェア
で構成されていても良いし、ソフトウェアで構成されて
いても良い。
【0034】出力SAM部255aは、プログラム制御
部257の制御コードの書き込みアドレスが出力SAM
部255aを指している場合、ALUアレイ部254の
演算結果を入力し、第1出力フレームメモリ23へデー
タを供給する。出力SAM部255bは、プログラム制
御部257の制御コードの書き込みアドレスが出力SA
M部255bを指している場合、ALUアレイ部254
の演算結果を入力し、第2出力フレームメモリ24へデ
ータを供給する。なお、本実施形態では、出力SAM部
を2つ持っているが、任意の画素数変換を説明するため
には、出力SAM部は、1つであっても良いし、2つ以
上の複数持っていても良い。また、出力SAM部255
a、および出力SAM部255bは、ハードウェアで構
成されていても良いし、ソフトウェアで実現する場合フ
ァイルとして構成されていても良い。
【0035】出力ポインタ256は、ALUアレイ部2
54の書き込みアドレスS254bが出力ポインタ25
6を指しているときに、ALUアレイ部254の演算結
果を入力とする出力SAM部255a、および出力SA
M部255bを制御する。なお、出力SAM部255a
と出力SAM部255b制御用の出力ポインタを別々に
持っていても良いし、同じポインタアドレスであっても
良い。また、出力ポインタ256は、ハードウェアのメ
モリとして構成されていても良いし、ソフトウェア上で
実現されていても良い。
【0036】要素プロセッサPEは、入力SAM部25
2a,252b、データメモリ部253、ALUアレイ
部254、出力SAM部255a,255bの1画素に
対応したものの集合のことであり、プロセッサは、この
要素プロセッサが複数集まって構成されている。要素プ
ロセッサPEは、たとえばデータを1ビットずつ処理す
る1ビットプロセッサであり、ビット処理プロセッサは
ハードウェアが小さく、普通には実現できない程多数の
並列数を実現できるので、画像用の場合、要素プロセッ
サ直線配列の並列数は、映像信号の一水平走査期間の画
素数( H) に一致させている。また、要素プロセッサ間
の通信のことを左右通信(LR通信) と呼び、左右隣あ
った画素の演算等を可能にする。なお、要素プロセッサ
PEは、ハードウェアで構成されていても良いし、ソフ
トウェアで実現する場合ファイルとして構成されていて
も良い。
【0037】プログラム制御部257は、所定の制御コ
ードに従い、入力SAM部252a,252b、データ
メモリ部253、ALUアレイ部254、出力SAM部
255a,255bを制御する。なお、プログラム制御
部257は、SIMD型画像処理プロセッサ25の内部
に存在しており、ハードウェアで構成されていても良い
し、ソフトウェアで実現する場合には制御コードファイ
ルとして構成されていても良い。
【0038】以下、プログラム制御部257の具体的な
構成および機能について、図面に関連付けて説明する。
【0039】図2は、プログラム制御部257の構成例
を示すブロック図である。このプログラム制御部257
は、図2に示すように、プログラムコードを格納するア
プリケーションプログラム保持部2571と、実際にプ
ログラム制御を行うCPU2572と、並列画像処理プ
ロセッサを駆動させるためのコプロ命令を展開するプロ
セッサ部としてのコプロセッサブロック2573とを有
している。また、コプロセッサブロック2573は、C
PU2752から発行されたコプロセッサ命令を受け取
るコプロ命令受取部25731と、命令を解釈する命令
展開部25732と、並列プロセッサを駆動するための
演算を行う第1実行部25733および第2実行部25
734と、並列プロセッサを駆動する駆動データを保持
する出力データ部としての出力データ保持部25735
と、アプリケーションプログラムで使用する変数アドレ
スや、演算長等を保持するアプリケーション用情報保持
部としてのアプリケーション変数データ保持部2573
6により構成されている。
【0040】アプリケーションプログラム保持部257
1は、上述したようにプログラムコードを格納する。こ
のアプリケーションプログラム保持部2571は、ハー
ドウェアでメモリ構造として構成されていても良いし、
ソフトウェアで実現する場合アプリケーションコードフ
ァイルとして構成されていても良い。アプリケーション
プログラムコードは、C言語などで記述されたプログラ
ムをコンパイルすることで得られるが、主には並列プロ
セッサを制御する制御コードとCPU2572を制御す
るコードで構成されており、コプロセッサブロック25
73は、並列プロセッサを制御する制御コードだけを受
け取る。
【0041】CPU(RISC)2572は、アプリケ
ーションプログラムコードを実際に処理する処理ブロッ
クであり、本実施形態の場合、係数演算やコプロセッサ
(以下、コプロという)命令を発行する等の役割を担っ
ている。CPU2572は、アプリケーションプログラ
ム保持部2571からのコードを入力し、演算等の処理
を行い、コプロ命令をコプロセッサブロック2573に
出力する。なお、CPU2572は、ハードウェア構造
で構成されていても良いし、ハードと等価な動きをする
ソフトウェアで構成されていても良い。
【0042】ここで、本実施形態におけるコプロ命令に
ついて、図3、および図4に関連付けて説明する。
【0043】図3は、CPU2572からコプロセッサ
ブロック2573に出力されるMIPSコプロセッサ命
令(Coprocessor Instruction) の例を示す図であり、こ
の命令が発行されたときだけ、プログラム制御部257
にデータが入力される。
【0044】図3のコプロ命令は、32ビットからな
り、26ビットから31ビットまでの6ビットは、コー
ドCOP用領域である。このコードCOPは、コプロセ
ッサ命令判別のためのコードである。また、0ビットか
ら24ビットまでの25ビットは、オペレーションコー
ド(OPERATION CODE)用領域である。このオペレーション
コードは、加算、減算、乗算、論理演算等の命令と、ア
ドレスやビット長が記述されたコードである。なお、2
5ビット目は、常時論理「1」にセットされている。
【0045】図4は、本実施形態に係るオペレーション
コードの例を示す図である。
【0046】図4(a)は、選択命令で使用されるオペ
レーションコードの実際例を示している。選択命令と
は、 if(cond=1) dst=src1 else dst=src2 のような命令である。
【0047】図4(a)のオペレーションコードにおい
て、20ビットから24ビットまでの5ビットがコンデ
ィションCOND用領域である。このコンディションC
OND用領域には、選択命令等で必要となる条件につい
て記述される。ここに書かれた値は、図2のアプリケー
ション変数データ保持部25736のアドレスに相当し
ており、実際の演算では、このアドレス中に書かれてい
る事柄(データ)を使用して演算を行う。アプリケーシ
ョン変数データ保持部25736には、アドレス、ビッ
ト長、左右通信情報について書かれているが、詳細につ
いては後述する。
【0048】さらに、図4(a)のオペレーションコー
ドにおいて、0ビットから5ビットまでの6ビットがデ
スティネーションdst用領域、6ビットから11ビッ
トの6ビットが第1ソースsrc1用領域、23ビット
から17ビットまでの6ビットが第2ソースsrc2用
領域である。これら、デスティネーションdst、第1
ソースsrc1、および第2ソースsrc2の各領域に
は、演算されるデータについての記述のされているアプ
リケーション変数データ保持部25736のアドレスが
記入される。デスティネーションdstは、書き込みア
ドレスを指定し、第1ソースsrc1、および第2ソー
スsrc2は、読み込みアドレスが指定されることにな
る。
【0049】図4(b)は、本実施形態において、加
算、減算、乗算のような演算を行う場合に使用されるオ
ペレーションコードの実際例を示している。つまり、 dst=src1+src2 dst=src1*src2 といった演算を行う場合に、図4(b)のフィールドが
使われる。このとき、20ビットから24ビットの5ビ
ットは、オペレーションコードOPCODE用領域であ
る。このオペレーションコードOPCODEが、命令の
種類を決めるコードとなっている。
【0050】図4(c)は、本実施形態において、転
送、反転のような演算を行う場合に使用されるオペレー
ションコードの実際例を示している。つまり、 dst=src1 dst=src1の反転 といった演算を行う場合に、図4(c)のフィールドが
使われる。このとき、12ビットから16ビットの5ビ
ットはレングスlen用領域である。このレングスle
n用領域は、転送などのビット長を指定するフィールド
であり、この値に書かれた値だけのビット転送処理が行
われる。
【0051】なお、図4(a),(b)での演算ビット
長は、アドレス変数データ保持部25736に書かれて
いる値を使用して演算するものとする。以上のようなオ
ペレーションコードに展開することと、アプリケーショ
ン変数データ保持部25736を構築することにより、
必要十分な命令を表すことができる。
【0052】コプロセッサブロック2573は、CPU
2572からのコプロ命令を入力し、並列プロセッサの
制御コードを生成して、図1の各制御対象ブロックに出
力する。なお、コプロセッサブロック2573は、ハー
ドウェア構造で構成されていても良いし、ソフトウェア
プログラムとして構成されていても良い。
【0053】そして、上述したように、コプロセッサブ
ロック2573は、コプロ命令受取部25731と、命
令展開部25732と、第1実行部25733および第
2実行部25734と、出力データ保持部25735
と、アプリケーション変数データ保持部25736によ
り構成されている。また、図5は、コプロセッサブロッ
ク2573における内部の演算フローを示している。
【0054】コプロ命令受取部25731は、CPU2
572からの命令を判別し、受け取ったコードを次の命
令展開部25732に出力する。図5の例では、図4
(b)に示すようなコードが送られてくると、コプロ命
令受取部25731は命令と判断し、受け取る。このコ
ードは、次の命令デコード部25732a、およびエン
トリーナンバー振り分け部25732bに出力される。
具体的には、オペレーションコードOPCODEが命令
デコード部25732aに供給され、デスティネーショ
ンdst、第1ソースsrc1、第2ソースsrc2が
エントリーナンバー振り分け部25732bに供給され
る。なお、コプロ命令受取部25731は、ハードウェ
ア構造で構成されていても良いし、ソフトウェアプログ
ラムとして構成されていても良い。
【0055】命令展開部25732は、コプロ命令受取
部25731で受け取ったコプロ命令コードを入力し、
命令のデコード処理を行い、オペレーションコードOP
CODE中に記述されているアプリケーション変数デー
タ保持部25732bの変数データアドレスを抽出す
る。図5の例では、命令デコード部25732aがデコ
ード処理を行い、エントリーナンバー振り分け部257
32bが変数データアドレスを抽出する。命令デコード
部25732aは、オペレーションコードOPCODE
とその後の値を見て命令を決定し、その結果を命令コー
ド用レジスタREG1に送る。エントリーナンバー振り
分け部25732bは、第1ソースSRC1、第2ソー
スSRC2、デスティネーションdst、およびコンデ
ィションCONDの値を抽出し、レジスタREG2〜R
EG5に送る。ここでエントリーナンバーとは、アプリ
ケーション変数データ保持部25736のアドレスに対
応している。なお、命令展開部25732は、ハードウ
ェア構造で構成されていても良いし、ソフトウェアとし
て構成されていても良い。
【0056】第1実行部25733、および第2実行部
25734は、命令展開部25732で振り分けられた
エントリーナンバーから、アプリケーション変数データ
保持部25736よりデータを取ってきて、演算に必要
なデータを揃える。本実施形態において、第1実行部2
5733と第2実行部25734との2つに別れている
のは、アプリケーション変数データ保持部25736の
構成が、1回の操作で2つのデータを持ってこれるよう
に構成しているためで、1回の操作で1つのデータを持
ってくる構成になっている場合には、4度の繰り返し作
業が必要となるし、1回の操作で4つのデータを持って
くる構成であれば、1回の操作で終了する。図5の例で
は、レジスタREG2の「SRC1 NUMBER 」、レジスタR
EG3の「SRC2 NUMBER 」、レジスタREG4の「DST
NUMBER」、レジスタREG5の「 COND NUMBER」に振り
分けられたアドレスを見て、アプリケーション変数デー
タ保持部25736から対応したデータを取ってくるよ
うに構成されている。
【0057】上のアドレスがそれぞれ、SRC1 ADDRESS(s
rc1 のアドレス),SRC1 LENGTH(src1のビット長) ,SR
C1 LR(src1のLR通信情報) の集合が得られてレジスタR
EG6にセットされ、SRC2 ADDRESS,SRC2 LENGTH SRC
2 LRの集合が得られてレジスタREG7にセットされ
る。また、DST ADDRESS が得られてレジスタREG8に
セットされ、COND ADDRESS,COND LR の集合が得られて
レジスタREG9にセットされる。ここで、NUMBERは、
アプリケーション変数データ保持部25736からデー
タを読み出すアドレスを示し、ADDRESS は、並列プロセ
ッサが演算を行う実際のアドレスのことであり(たとえ
ば、図1のALUアレイ部や、データメモリ部)、LENG
THは、演算ビット長、LRは、前述した要素プロセッサ
の左右間のコミュニケーションを表すデータである。さ
らに詳しい内容については、後述する。なお、第1実行
部25733、第2実行部25734は、ハードウェア
構造で構成されていても良いし、ソフトウェアとして構
成されていても良い。
【0058】出力データ保持部25735は、第1実行
部25733、第2実行部25734で得られた命令、
アドレス、ビット長、左右通信データをもとに、制御コ
ードを生成する。この制御コードは、アドレスに従い、
図1にあるような入力SAM部252a,252b、デ
ータメモリ部253、ALUアレイ部254、出力SA
M部255a,255bを制御する。この出力データ保
持部25735は、図5の例では、実行データ出力部2
5735aに対応しており、ここでプロセッサを制御す
る制御コードを作り、出力する。なお、出力データ保持
部25735は、ハードウェア構造で構成されていても
良いし、ソフトウェアとして構成されていても良い。
【0059】アプリケーション変数データ保持部257
36は、アプリケーション起動時に変数データだけを最
初に格納しておく領域であり、その後は、上述したよう
に、第1実行部25733、および第2実行部2573
4の処理により、命令に応じてアドレスからデータを抽
出する。
【0060】図6は、本実施形態におけるアプリケーシ
ョン変数データ保持部25736の構成例を示すブロッ
ク図である。また、図7は、本実施形態におけるアプリ
ケーション変数データ保持部25736のアプリケーシ
ョン変数データの中身について示す図である。以下に、
図6、および図7の説明を行う。
【0061】図6に示すアプリケーション変数データ保
持部25736では、1つの書き込みと2つの別々の読
み出しを同時に行うことのできる構成を採用している。
図6のアプリケーション変数データ保持部25736
は、アドレスデコーダ(Address Decoder) AD1,AD
2、アドレス指定されたビット線およびワード線により
アクセスされるメモリセルがアレイ状に配列されたメモ
リアレイARY1,ARY2、およびセレクタSLC
1,SLC2を基本構成要素として有している。
【0062】図6において、WA( write address)は、
書き込みアドレスを示しており、ここで指定されたアド
レスに書き込みデータWD(write data)を書き込むよう
に構成されている。本実施形態では、読み出しを別々に
2つ行うため、1つのアドレスで2つの領域にデータが
書かれる仕組みとなり、同じデータが2つの領域に書き
込みが行われる。ここでいうアドレスとは、LMA0,
LMA0’、LMA1,LMAA’、... 、LMAn,
LMAn’のことであり、LMA0がアドレス0、LM
A1がアドレス1、LMAnがアドレスnに対応してい
る。
【0063】アドレスデコーダAD1,AD2は、書き
込みアドレスWAをデコードし、アドレスに応じたビッ
ト線のみをアクティブにするブロックである。ソフトウ
ェアの場合は、アドレスに応じた配列に値を代入するこ
とに相当する。
【0064】メモリアレイARY1,ARY2における
LMA0,LMA0’、LMA1,LMAA’、... 、
LMAn,LMAn’は、個々のアプリケーション変数
データを示しており、それぞれの内容は図7に示してい
る。
【0065】データの読み出しは、2つの読み出しアド
レスに対して独立に指定し、別々のデータを得ることが
できる構造となっている。本実施形態では、すべてこの
構成を基本として述べている。読み出しアドレスRA
1,RA2をセレクタSLC1,SLC2に入力し、入
力読み出しアドレスに基づいてセレクタSLC1,SL
C2で選択されたアプリケーション変数データを読み出
し、リードデータRD1,RD2として出力する構造と
なっている。アプリケーション変数データLMA0,L
MA1,LMA2,...,LMAnの個数によって、
一度に読み出しができるデータが決定し、これを、4組
持っていると一度に4つのデータを読み出すことが可能
となる。
【0066】図7において、(a),(b),(c),
(d),(e)は、それぞれアドレス0、アドレス1、
アドレス2、アドレスn-1,アドレスn を表しており、図
6におけるLMA0,LMA1,LMA2,...,L
MAnと等価である。
【0067】ここでは、図7(a)に示すアドレス0を
例にとってデータの中身について説明するる。ビット0
からビット8までの9ビットで、演算のアドレスAddres
s[0]を表している。このアドレスが図1の入力SAM部
252a,252bであったり、データメモリ部253
であったり、出力SAM部255a,255bであった
りする。本実施形態では、Address[0]に割り当てられて
いるビット長は、9ビットであり0〜512までのアド
レスを割り付けることができる。また、ビット16から
ビット23までの8ビットで、演算長length[0] を表し
ている。本実施形態では、8ビットの長さの演算までを
実行できる。また、24ビットから26ビットまでの3
ビットで、左右通信(LR通信)のデータLR[0] を示し
ている。この3ビットデータは次のように分類されてい
る。
【0068】000: 自分自身の要素プロセッサ 001: 1つ左の要素プロセッサ(L1) 010: 2つ左の要素プロセッサ(L2) 100: 1つ右の要素プロセッサ(R1) 110: 2つ右の要素プロセッサ(R2)
【0069】画像処理装置が左右の演算ができる機構に
なっているとき、この左右通信のデータは、L1のデー
タメモリ部のデータという具合に、左右の画素の処理を
行うことをできるようにする。このように、CPU25
72から命令を発行する際、アプリケーション変数デー
タ保持部25736のアドレスだけを送る機構にする
と、演算に必要なデータ全てを1つのワードにまとめる
ことができ、全体の処理の向上を行うことができる。
【0070】なお、アプリケーション変数データ保持部
25736は、ハードウェア構造で構成されていても良
いし、ソフトウェアの配列構造として構成されていても
良い。
【0071】次に、上記構成による動作を、プログラム
制御部の動作を中心に説明する。
【0072】プログラム制御部257のCPU2572
において、アプリケーションプログラム保持部2571
からアプリケーションプログラムコードが入力され、演
算等の処理が行われ、コプロ命令が生成されてコプロセ
ッサブロック2573に出力される。
【0073】コプロセッサブロック2573において
は、CPU2752から発行されたコプロセッサ命令が
コプロ命令受取部25731により受け取られ、命令展
開部25732に供給される。命令展開部25732で
は、コプロ命令受取部25731で受け取ったコプロ命
令コードのデコード処理が行われ、たとえばオペレーシ
ョンコードOPCODE中に記述されているアプリケー
ション変数データ保持部25732bの変数データアド
レスが抽出される。
【0074】次いで、第1実行部25733、および第
2実行部25734において、命令展開部25732で
振り分けられたエントリーナンバーに係る変数データア
ドレスからアプリケーション変数データ保持部2573
6よりデータが読み出され、演算に必要なデータ、たと
えば命令、アドレス、ビット長、左右通信データ等が揃
えられる。そして、出力データ保持部25735におい
て、第1実行部25733、第2実行部25734で得
られた命令、アドレス、ビット長、左右通信データをも
とに、プロセッサを制御するための制御コードが生成さ
れる。この制御コードによって、アドレスに従い、図1
にあるような入力SAM部252a,252b、データ
メモリ部253、ALUアレイ部254、出力SAM部
255a,255bが制御される。
【0075】このようなプログラム制御部257による
制御コードに従って所定の画像処理が行われる。すなわ
ち、たとえば水平走査アクティブ期間内に、第1入力S
AM部252a,第2入力SAM部252bに1水平走
査線分の入力データが取り込まれ、水平走査部ブランキ
ング期間で入力SAM部252a,252bからデータ
メモリ部253への転送が行われる。データメモリ部2
53、ALUアレイ部254では、プログラムに応じて
演算処理が行われる。ALUアレイ部124における演
算処理終了後、処理結果が第1出力SAM部255a、
第2出力SAM部255bに転送され、水平走査アクテ
ィブ期間内に、出力SAM部255a,255bから1
水平走査線分データが出力される。上記の処理中に、各
部はすべて並列に動作している。また、上記処理中に
は、LR通信機能により,フィルタ演算や、補間演算と
いった左右の画素の処理が行われる。
【0076】そして、第1出力フレームメモリ23およ
び第2出力フレームメモリ24に、SIMD型画像処理
プロセッサ25で所定の演算処理等を受けた画像処理後
の画像データが格納される。
【0077】以上説明したように、プログラム制御部に
おいて、従来は、オペレーションコードの内容は、たと
えば図9に示すようになり、CPUが全ての変数の情報
を送るためには、複数のワードとハードウェアの場合に
はサイクル数を必要とする。たとえば、dst= (8bit
の src1 アドレス) + ( 5bitのsrc2アドレス)の場合、
従来の場合、図9(a)に示すsrc1の情報、図9
(b)に示すsrc2の情報、図9(c)に示すdst
の情報、図9(f)に示す加算の命令コード(Instructi
on code ) 、図9(e)に示すLR通信情報の5ワード
が必要となり、処理も5サイクル必要である。これに対
して、本実施形態の場合、図4(b)の1ワードで命令
を送ることができ、その分、他の処理をすることが可能
となる。
【0078】すなわち、本実施形態によれば、CPUで
プログラム制御される画像処理装置において、アドレ
ス、演算長などの演算情報を1つの領域に格納したアプ
リケーション変数データ保持部25736を設けたの
で、並列プロセッサの1つの命令に要するワード数を削
減することができ、処理量を向上させることができる。
また、アプリケーション全体のプログラムサイズも小さ
くなるので、必要となるメモリ量も削減でき、ハード、
コスト両面に対して有効である。また、単一時間内に処
理できる量が増加するので、1つのシステムで多くの処
理、または複雑な処理を可能となる。
【0079】
【発明の効果】以上説明したように、本発明によれば、
従来と比較して、命令を構成するワード数を削減するこ
とができ、プログラムメモリの領域を少なくでき、コス
トを下げることができる。また、従来と比較して、単一
時間内に処理できる量が増加するので、1つのシステム
で多くの処理、または複雑な処理を可能となる利点があ
る。
【図面の簡単な説明】
【図1】本発明に係り画像処理装置の一実施形態を示す
システム構成図である。
【図2】本発明に係るプログラム制御部の構成例を示す
ブロック図である。
【図3】本発明に係るプログラム制御部において、CP
Uからコプロセッサブロックに出力されるMIPSコプ
ロセッサ命令(Coprocessor Instruction) の例を示す図
である。
【図4】本実施形態に係るオペレーションコードの例を
示す図である。
【図5】本発明に係るコプロセッサブロックにおける内
部の演算フローを示す図である。
【図6】本発明に係るアプリケーション変数データ保持
部の構成例を示すブロック図である。
【図7】本実施形態におけるアプリケーション変数デー
タ保持部のアプリケーション変数データの中身について
示す図である。
【図8】SIMD型画像処理プロセッサを適用した従来
の画像処理装置の構成を示すブロック図である。
【図9】従来のオペレーションコードの実際例を示す図
である。
【符号の説明】
20…画像処理装置、21…第1入力フレームメモリ、
22…第2入力フレームメモリ、23…第1出力フレー
ムメモリ、24…第2出力フレームメモリ、25…SI
MD型画像処理プロセッサ、251…入力ポインタ、2
52a…第1入力SAM部、252b…第2入力SAM
部、253…データメモリ部、254…ALUアレイ
部、255a…第1出力SAM部、255b…第2出力
SAM部、256…出力ポインタ、257…プログラム
制御部、2571…アプリケーションプログラム保持
部、2572…CPU、2573…コプロセッサブロッ
ク、25731…コプロ命令受取部、25732…命令
展開部、25733…第1実行部、25734…第2実
行部、25735…出力データ保持部、25736…ア
プリケーション変数データ保持部。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 1次元的に多並列に配置され、制御コー
    ドに従って供給される画像データに対する所定の演算処
    理を行う複数の要素プロセッサと、アプリケーションプ
    ログラムに基づいて上記複数の要素プログラムを連動し
    て制御する制御コードを生成するプログラム制御部とを
    有する画像処理装置であって、 上記プログラム制御部は、アプリケーションプログラム
    コードに基づいた命令を発行する処理部と、 上記処理部で発行された命令を受け取り、その命令の仕
    様通りに上記要素プロセッサを制御するための制御コー
    ドを生成して出力するプロセッサ部とを有する画像処理
    装置。
  2. 【請求項2】 上記処理部が発行する命令にはアプリケ
    ーションプログラムで使用するアプリケーション用情報
    を指定するためのアドレス情報を含み、 上記プロセッサ部は、 アプリケーションプログラムで使用するアプリケーショ
    ン用情報を所定のアドレスに保持するアプリケーション
    用情報保持部と、 上記処理部で発行された命令をデコードし、上記アドレ
    ス情報を抽出する命令展開部と、 上記命令展開部で抽出されたアドレス情報に基づいて、
    上記アプリケーション用情報保持部より所望のアプリケ
    ーション用情報を読み出す実行部と、 上記実行部で読み出されたアプリケーション用情報に基
    づいて上記制御コードを生成し、要素プロセッサに出力
    する出力データ部とを含む請求項1記載の画像処理装
    置。
  3. 【請求項3】 上記アプリケーション用情報には、アプ
    リケーションのアドレス、演算長を少なくとも含む請求
    項2記載の画像処理装置。
  4. 【請求項4】 上記要素プロセッサは、他の要素プロセ
    ッサに供給された画像データを利用して演算処理を行う
    ことが可能で、 上記アプリケーション用情報には、アプリケーションの
    アドレス、演算長、および他の要素プロセッサとの通信
    情報を少なくとも含む請求項2記載の画像処理装置。
  5. 【請求項5】 上記各要素プロセッサは、画像データを
    入力するための手段を複数備えた入力シリアルアクセス
    メモリ部と、入力データ、演算結果を保持するデータメ
    モリ部と、演算を行うALUアレイ部と、出力画像デー
    タを取得するための手段を複数備えた出力シリアルアク
    セスメモリ部との一部を含む請求項1記載の画像処理装
    置。
  6. 【請求項6】 制御コードに従って1次元的に多並列に
    配置された複数の要素プロセッサを連動して制御して供
    給される画像データに対する所定の演算処理を行う画像
    処理方法であって、 アプリケーションプログラムコードに基づいた命令を発
    行し、 上記発行された命令の仕様通りに上記要素プロセッサを
    制御するための上記制御コードを生成する画像処理方
    法。
  7. 【請求項7】 上記発行する命令にはアプリケーション
    プログラムで使用するアプリケーション用情報を指定す
    るためのアドレス情報を含み、かつ、 アプリケーションプログラムで使用するアプリケーショ
    ン用情報を所定のアドレスに保持しておき、 上記発行された命令をデコードしてアドレス情報を抽出
    し、 上記抽出されたアドレス情報に基づいて、上記保持して
    おいた所望のアプリケーション用情報を読み出し、 上記読み出されたアプリケーション用情報に基づいて上
    記制御コードを生成する請求項6記載の画像処理方法。
  8. 【請求項8】 上記アプリケーション用情報には、アプ
    リケーションのアドレス、演算長を少なくとも含む請求
    項7記載の画像処理装置。
  9. 【請求項9】 上記要素プロセッサは、他の要素プロセ
    ッサに供給された画像データを利用して演算処理を行う
    ことが可能で、 上記アプリケーション用情報には、アプリケーションの
    アドレス、演算長、および他の要素プロセッサとの通信
    情報を少なくとも含む請求項7記載の画像処理方法。
JP2000028949A 2000-02-01 2000-02-01 画像処理装置および画像処理方法 Pending JP2001216275A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000028949A JP2001216275A (ja) 2000-02-01 2000-02-01 画像処理装置および画像処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000028949A JP2001216275A (ja) 2000-02-01 2000-02-01 画像処理装置および画像処理方法

Publications (1)

Publication Number Publication Date
JP2001216275A true JP2001216275A (ja) 2001-08-10

Family

ID=18554280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000028949A Pending JP2001216275A (ja) 2000-02-01 2000-02-01 画像処理装置および画像処理方法

Country Status (1)

Country Link
JP (1) JP2001216275A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099232A (ja) * 2004-09-28 2006-04-13 Renesas Technology Corp 半導体信号処理装置
JP2006127460A (ja) * 2004-06-09 2006-05-18 Renesas Technology Corp 半導体装置、半導体信号処理装置、およびクロスバースイッチ
CN100403026C (zh) * 2004-07-09 2008-07-16 株式会社岛津制作所 具有服务器功能的分析器及其操作方法
JP2009524167A (ja) * 2006-01-20 2009-06-25 クゥアルコム・インコーポレイテッド オペランドの早期の条件付き選択
JP2011192305A (ja) * 2011-06-01 2011-09-29 Renesas Electronics Corp 半導体信号処理装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127460A (ja) * 2004-06-09 2006-05-18 Renesas Technology Corp 半導体装置、半導体信号処理装置、およびクロスバースイッチ
US8089819B2 (en) 2004-06-09 2012-01-03 Renesas Electronics Corporation Semiconductor device and semiconductor signal processing apparatus
CN100403026C (zh) * 2004-07-09 2008-07-16 株式会社岛津制作所 具有服务器功能的分析器及其操作方法
JP2006099232A (ja) * 2004-09-28 2006-04-13 Renesas Technology Corp 半導体信号処理装置
JP2009524167A (ja) * 2006-01-20 2009-06-25 クゥアルコム・インコーポレイテッド オペランドの早期の条件付き選択
US9710269B2 (en) 2006-01-20 2017-07-18 Qualcomm Incorporated Early conditional selection of an operand
JP2011192305A (ja) * 2011-06-01 2011-09-29 Renesas Electronics Corp 半導体信号処理装置

Similar Documents

Publication Publication Date Title
US20090013151A1 (en) Simd type microprocessor
JP2554050B2 (ja) デ−タ処理方法
US7558816B2 (en) Methods and apparatus for performing pixel average operations
JP5077579B2 (ja) 並列画像処理システムの制御方法および装置
JP2001216275A (ja) 画像処理装置および画像処理方法
US20080229063A1 (en) Processor Array with Separate Serial Module
US6654870B1 (en) Methods and apparatus for establishing port priority functions in a VLIW processor
US5872964A (en) Comparison operating unit and graphic operating system
JPH0574096B2 (ja)
US8484444B2 (en) Methods and apparatus for attaching application specific functions within an array processor
US6405301B1 (en) Parallel data processing
US5475828A (en) Digital processor having plurality of memories and plurality of arithmetic logic units corresponding in number thereto and method for controlling the same
JP4896839B2 (ja) マイクロプロセッサおよびデータ処理方法
EP1088266A1 (en) Parallel data processing
JPH07210545A (ja) 並列処理プロセッサ
JP2583506B2 (ja) データ処理装置
JP2999907B2 (ja) マイクロプログラム制御方式の中央処理装置
JP2003196259A (ja) データ駆動型情報処理装置およびデータ処理方法
US8395630B2 (en) Format conversion apparatus from band interleave format to band separate format
JP2005267362A (ja) Simdプロセッサを用いた画像処理方法及び画像処理装置
JP2006344238A (ja) 並列プロセッサ及びそれを用いた画像処理装置
JP2001236495A (ja) 画像処理装置および画像処理方法
JPH09223009A (ja) データ処理装置と方法
JP4294190B2 (ja) 並列プロセッサ及びそれを用いた画像処理装置
JP3834869B2 (ja) 並列処理プロセッサ