(57)【要約】【課題】画像処理の高速化を図り得る新規な画像処理プロセッサを提供する。【解決手段】画像処理プロセッサは、共通処理ユニット６と、複数の専用処理ユニット７と、制御部３とを有する。共通処理ユニット６は、複数の色成分について共通で用いられ、ある命令に応じた処理を実行する。複数の専用処理ユニットは７、複数の色成分のそれぞれに対応して色成分毎に個別に設けられ、ある命令に応じた処理をそれぞれが並行的に実行する。制御部３は、画像処理の手順を規定する一連の命令に基づいて、共通処理ユニット６と、複数の専用処理ユニット７とを制御するとともに、共通処理ユニット６と複数の専用処理ユニット７との間のデータ転送を制御する。【選択図】図１
2006236175.tif 000002
【特許請求の範囲】
【請求項１】
画像データに対する演算が必要な画像処理を実行する画像処理プロセッサにおいて、
複数の色成分について共通で用いられ、ある命令に応じた処理を実行する共通処理ユニットと、
複数の色成分のそれぞれに対応して色成分毎に専用で用いられ、ある命令に応じた処理をそれぞれが並行的に実行する複数の専用処理ユニットと、
画像処理の手順を規定する一連の命令に基づいて、前記共通処理ユニットと、前記複数の専用処理ユニットとを制御するとともに、前記共通処理ユニットと前記複数の専用処理ユニットとの間のデータ転送を制御する制御部と
を有することを特徴とする画像処理用プロセッサ。
【請求項２】
前記複数の専用処理ユニットのそれぞれは、
演算回路と、
前記演算回路から出力されたデータを一時的に格納する専用レジスタとを有し、
前記制御部は、前記専用レジスタに格納されたデータを前記演算回路の入力としてフィードバックし、または、当該格納されたデータを前記共通処理ユニットに出力することを特徴とする請求項１に記載された画像処理プロセッサ。
【請求項３】
前記複数の専用処理ユニットのそれぞれは、
前記演算回路として、加算器と、乗算器と、セレクタとを有し、
前記セレクタは、前記加算器から出力されたデータ、前記乗算器から出力されたデータおよび前記共通ユニットから転送されたデータのいずれかを前記専用レジスタに出力することを特徴とする請求項２に記載された画像処理プロセッサ。
【請求項４】
前記専用処理ユニットのそれぞれは、前記画像データを構成する画素値の各色成分のビット幅よりも大きなビット幅を有する中間データを処理対象とし、
前記専用レジスタは、前記中間データを格納可能な記憶領域を有することを特徴とする請求項１から３のいずれかに記載された画像処理プロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを入力とした画像処理を実行する画像処理プロセッサに関する。
【背景技術】
【０００２】
近年の画像処理技術の向上により、リアルタイムで生成される画像において、様々な効果を引き出すために、画像データの加工技術の多様化が進んでいる。例えば、特許文献１には、入力された命令およびデータに基づいて所定の画像処理を行う汎用処理ユニットのみならず、少なくとも一つの専用処理ユニットをも備えた画像処理プロセッサが開示されている。専用処理ユニットは、透視変換／光源処理、セットアップ／ＤＤＡ処理またはフラグメント処理といったように、予め定められた所定の画像処理のみを行う。
【特許文献１】特開２００３−１０８９８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、画像処理の高速化を図り得る新規な画像処理プロセッサを提供することである。
【課題を解決するための手段】
【０００４】
かかる課題を解決するために、本発明は、画像データに対する演算が必要な画像処理を実行する画像処理プロセッサを提供する。このプロセッサは、共通処理ユニットと、複数の専用処理ユニットと、制御部とを有する。共通処理ユニットは、複数の色成分について共通で用いられ、ある命令に応じた処理を実行する。複数の専用処理ユニットは、複数の色成分のそれぞれに対応して色成分毎に個別に設けられ、ある命令に応じた処理をそれぞれが並行的に実行する。制御部は、画像処理の手順を規定する一連の命令に基づいて、共通処理ユニットと、複数の専用処理ユニットとを制御するとともに、共通処理ユニットと複数の専用処理ユニットとの間のデータ転送を制御する。
【０００５】
ここで、本発明において、複数の専用処理ユニットのそれぞれは、演算回路と、演算回路から出力されたデータを一時的に格納する専用レジスタとを有することが好ましい。この場合、制御部は、専用レジスタに格納されたデータを演算回路の入力としてフィードバックし、または、この格納されたデータを共通処理ユニットに出力することが望ましい。
【０００６】
また、本発明において、複数の専用処理ユニットのそれぞれは、演算回路として、加算器と、乗算器と、セレクタとを有する。この場合、セレクタは、加算器から出力されたデータ、乗算器から出力されたデータおよび前記共通ユニットから転送されたデータのいずれかを専用レジスタに出力することが好ましい。
【０００７】
さらに、本発明において、専用処理ユニットのそれぞれは、画像データを構成する画素値の各色成分のビット幅よりも大きなビット幅を有する中間データを処理対象とし、専用レジスタは、中間データを格納可能な記憶領域を有することが望ましい。
【発明の効果】
【０００８】
本発明によれば、共通処理ユニットに加え、色成分ごとに個別に設けられた複数の専用処理ユニットを設けることで、共通処理ユニットのみを用いた処理と比較して、画像処理の高速化を図ることができる。
【０００９】
また、専用処理ユニットに専用レジスタを内蔵し、自己の演算回路による処理結果を専用レジスタに格納することで、専用処理ユニット外のレジスタの使用頻度を減らすことができるので、画像処理の高速化を図ることができる。
【発明を実施するための最良の形態】
【００１０】
図１は、本実施形態に係る画像処理プロセッサ１の概略的なブロック構成図である。画像処理プロセッサ１は、例えばフレームメモリ２に格納されている画素値（輝度を示すＲＧＢデータと透明度を示すαデータとを含む）を入力として、画像データに対する演算が必要な画像処理を実行する。なお、この画像処理プロセッサ１の特徴は、画像処理演算部５の構成にあり、それ以外については一般的な構成を有する。
【００１１】
画像処理プロセッサ１は、制御部３と、命令格納部４（例えばレジスタ）と、画像処理演算部５とから構成されている。制御部３は、命令格納部４にアクセスし、個々に格納されている一連の命令（画像処理の手順を規定）にしたがって、画像処理演算部５を制御する。
【００１２】
画像処理演算部５は、共通処理ユニット６と、複数の専用処理ユニット７とから構成される。共通処理ユニット６は、共通演算部６ａと共通レジスタ６ｂとを有し、複数の色成分について共通で用いられ、ある命令に応じた処理を実行する。共通演算部６ａは、制御部３からの命令に応じた処理を実行する。共通レジスタ６ｂは、共通演算部６ａでの処理結果である出力データ、または、専用処理ユニット７での処理結果である出力データを一時的に格納する。複数の専用処理ユニット７は、複数の色成分（ＲＧＢ）のそれぞれに対応して色成分毎に専用で用いられ、ある命令に応じた処理をそれぞれが並行的に実行する。
【００１３】
図２は、専用処理ユニット７のブロック構成図である。それぞれの色成分（ＲＧＢ）に対応した各専用処理ユニット７は、専用加算器７ａおよび専用乗算器７ｂの双方を含む専用演算回路と、専用セレクタ７ｃと、専用レジスタ７ｄとから構成されている。専用セレクタ７ｃは、専用加算器７ａから出力されたデータ、専用乗算器７ｂから出力されたデータおよび前記共通ユニットから転送されたデータのいずれかを後段の専用レジスタ７ｄに出力し、格納する。制御部３は、この専用レジスタ７ｄに格納されたデータを専用演算回路への入力としてフィードバックし、または、この格納されたデータを共通処理ユニット６に出力する。
【００１４】
それぞれの専用処理ユニット７は、画素値を構成する各色成分本来のビット幅（ｎビット）よりも大きなビット幅（ｍビット：ｍ＞ｎ）を有する中間データを処理対象としている。そのため、専用処理ユニット７に設けられた専用レジスタ７ｄは、この中間データを格納すべく、少なくともｍビット幅の記憶領域を有する。本実施形態において、共通レジスタのビット幅は各色成分それぞれ８ビット（ｎ＝８）であり、専用レジスタ７ｄのビット幅は各色成分それぞれ３２ビット（ｍ＝３２）である。
【００１５】
つぎに、命令格納部４に格納される各種命令（コマンド）のうち、本実施形態に固有の命令である専用命令について詳述する。以下は、説明を簡略化すべく、フレームメモリ２の画像データは、共通レジスタ６ｂに既に転送・格納されているものとする。
【００１６】
［データ設定命令（rgbset）］
図３は、データ設定命令（rgbset）の説明図である。この命令（rgbset）は、各専用レジスタ７ｄの値を所定の値に一括かつ画一的に設定する命令である。具体的には、命令中の引数が設定値として専用レジスタ７ｄに格納される。例えば、命令「rgbset 0」、すなわち、この命令に記述された設定値が「０」（初期化）の場合、ＲＧＢそれぞれの専用レジスタ７ｄの値が全て「０」に設定される。
【００１７】
［加減算命令（rgbadd）］
図４は、加減算命令（rgbadd）の説明図である。この命令（rgbadd）は、命令中の引数によってアドレス指定された共通レジスタ６ｂのＲＧＢデータの値と、各専用レジスタ７ｄに格納された値との加算を同時並行的に行い、この演算結果を各専用レジスタ７ｄへ上書格納する命令である。具体的には、まず、命令中に記述された共通レジスタ６ｂの指定アドレスに格納されているＲＧＢデータの値が各専用加算器７ａに転送される。つぎに、専用加算器７ａは、共通レジスタ６ｂより読み出された値と、専用レジスタ７ｄよりフィードバックされた値との加算を行う。そして、専用セレクタ７ｃの選択により、専用加算器７ａの出力が専用レジスタ７ｄに転送され、元のデータに上書きされる。例えば、共通レジスタ６ｂのアドレスｒ0にＲＧＢデータの値（Ｒ0，Ｇ0，Ｂ0）が纏めて格納され、Ｒ用の専用レジスタ７ｄに「Ｒind」、Ｇ用のそれに「Ｇind」、Ｂ用のそれに「Ｂind」がそれぞれ格納されているケースを考える。この場合、「rgbbadd ｒ0」が実行されると、それぞれの専用レジスタ７ｄの値Ｒind，Ｇind，Ｂindは以下のように更新される。
Ｒind  ←  Ｒind ＋ Ｒ0
Ｇind  ←  Ｇind ＋ Ｇ0
Ｂind  ←  Ｂind ＋ Ｂ0
【００１８】
なお、専用加算器７ａは、加算のみならず減算も可能である。減算は、共通レジスタ６ｂに格納されている値または専用レジスタ７ｄに格納されている値の一方を、マイナスの値にすることによって実行される。本実施形態を実装する場合は、専用加算器７ａの入力側にそれぞれの値に対するビット反転回路を設け、専用加算器７ａに入力される値の一方に対するビット反転を、制御部３から制御することで実現する。なお、専用加算器７ａは、このビット反転回路を含めて加減算器とみなすこともできる。
【００１９】
［乗除算命令（rgbmult）］
図５は、乗除算命令（rgbmult）の説明図である。この命令（rgbmult）は、専用レジスタ７ｄに格納されたＲＧＢデータの値と、任意の値とで乗算を同時並行的に行い、この演算結果を専用レジスタ７ｄへ上書きして格納する命令である。具体的には、まず、命令中に引数として記述された指定アドレスに格納されている値が共通レジスタ６ｂより読み出され、これが各専用乗算器７ｂに転送される。つぎに、専用乗算器７ｂは、この共通レジスタ６ｂから転送された値と、専用レジスタ７ｄに格納された値との乗算を行う。そして、専用セレクタ７ｃの選択により、専用乗算器７ｂの出力が専用セレクタ７ｃに転送され、元のデータに上書きされる。例えば、共通レジスタのアドレスｒ0に定数Ｃonstが格納され、Ｒ用の専用レジスタ７ｄに「Ｒind」、Ｇ用のそれに「Ｇind」、Ｂ用のそれに「Ｂind」がそれぞれ格納されているケースを考える。この場合、「rgbmult ｒ0」が実行されると、それぞれの専用レジスタ７ｄの値Ｒind，Ｇind，Ｂindは以下のように更新される。
Ｒind  ←  Ｒind × Ｃonst
Ｇind  ←  Ｇind × Ｃonst
Ｂind  ←  Ｂind × Ｃonst
【００２０】
なお、専用乗算器７ｂは、乗算のみならず除算も可能である。除算は、共通レジスタ６ｂの値が１未満の場合に実行される。本実施形態を実装する場合は、共通レジスタ６に格納されている除算したい値（例えばａとする）を、あらかじめ共通処理ユニット６で計算しておき、この計算結果の値（１／ａ）を乗算することで実現する。
【００２１】
［データ出力（rgbget）］
図６は、データ出力命令（rgbget）の説明図である。この命令（rgbget）は、専用レジスタ７ｄに格納されたＲＧＢデータの各値を一括して出力し、これらの値を共通レジスタ６ｂにおける引数としての指定アドレスに格納する命令である。具体的には、まず、ＲＧＢそれぞれの専用レジスタ７ｄに格納されている値が出力され、命令中の指定アドレスにしたがって、これらの値が共通レジスタ６ｂへ格納される。例えば、専用レジスタ７ｄのそれぞれにＲind，Ｇind，Ｂindが格納されていたとする。ここで、「rgbset ｒ0」が実行されると、Ｒind，Ｇind，Ｂindの各値が、アドレスｒ0の共通レジスタ６ｂに纏めて同時並行的に格納される。なお、専用レジスタ７ｄのビット幅は、色成分ごとにそれぞれ３２ビット設けられているが、共通レジスタ６ｂの各色成分のビット幅は、８ビットしかないので、それぞれ整数化（８ビット化）されて、共通レジスタ６ｂに格納される。
【００２２】
本実施形態に係る画像処理プロセッサ１は、上述したような固有の専用命令と、それ以外の汎用命令とを組み合わせることによって、様々な画像処理を実行可能である。以下、このような画像処理の一例について、プログラムリストを例示しながら詳述する。
【００２３】
（モザイク処理・ぼかし処理）
図７は、モザイク処理のプログラムリストである。モザイク処理とは、フレームメモリ２上に配置されている画像領域を所定サイズの画素ブロックに分け、その画素ブロック内で画素の平均値を算出する処理である。一例として、画像ブロックを２×２サイズとし、利用する画素値は互いに隣接する４つのアドレス（Ａddr1,Ａddr2,Ａddr3,Ａddr4）に格納されているものとする。
【００２４】
なお、同図のプログラムリストに記載されている命令「read」は、フレームメモリ２に格納されているＲＧＢデータの値を、共通レジスタ６ｂに読み出す命令である。また、「write」は、共通レジスタ６ｂに格納されているＲＧＢデータの値をフレームメモリ２に書き出す命令である。例えば、「read ｒ0, Ａddr1」が読み出されると、フレームメモリ２のアドレスＡddr1におけるＲＧＢデータの値が共通レジスタ６ｂのｒ0に格納される。また、「write ｒ0, Ａddr1」が読み出されると、共通レジスタ６ｂに格納されているＲＧＢデータの値が、フレームメモリ２のＡddr1に書き出される。
【００２５】
１行目の命令「rgbset 0」によって、各色成分の専用レジスタ７ｄが０に設定される。つぎに、２行目の命令「read ｒ0, Ａddr1」によって、フレームメモリ２のアドレスＡddr1に格納されているＲＧＢデータの各値が、共通レジスタ６ｂのアドレスｒ0に転送される。３行目の命令「rgbadd ｒ0」によって、共通レジスタ６ｂのアドレスｒ0に格納されているＲＧＢデータの値Ｒ0，Ｇ0，Ｂ0が、色成分ごとに各専用処理ユニット７の専用加算器７ａへ同時並行的にデータ転送される。転送されたこれらのデータは、専用加算器７ａにおいて、各専用レジスタ７ｄに格納されている値と加算され、専用セレクタ７ｃを介して、各専用レジスタ７ｄへ上書きして格納される。
【００２６】
そして、４行目〜９行目の命令において、２〜３行目の命令と同様に、フレームメモリ２のアドレスを順次Ａddr2〜Ａddr4とシフトさせながら、各色成分の値を共通レジスタ６ｂに格納する。共通レジスタ６ｂに格納された各色成分の値は、各専用レジスタ７ｄの値と合算される。
【００２７】
１０行目の命令「rgbmult 1/4」によって、各専用レジスタ７ｄに格納されている値が１/４で乗算（４で除算）される。１１行目の命令「rgbget ｒ0」によって、各専用レジスタ７ｄに格納されている値が共通レジスタ６ｂのアドレスｒ0に対して纏めて返される。最後に、１２〜１５行目の命令「write ｒ0,Ａddrn」（n＝1〜4）によって、共通レジスタ６ｂのアドレスｒ0に格納されている各ＲＧＢデータの値が、フレームメモリ２の各アドレス（Ａddr1,Ａddr2,Ａddr3,Ａddr4）に返される。以上の処理によって、モザイク処理が完了する。
【００２８】
なお、上記モザイク処理の変形例として、ぼかし処理を実行することも可能である。ぼかし処理は、モザイク処理と比べて、平均値を算出するメモリフレームのアドレスが、互いに隣接するブロック状（矩形状）でない点で異なる。プログラム上におけるぼかし処理は、フレームメモリ内の各アドレスについて、そのアドレスの周囲の数ピクセルにおける、ＲＧＢデータの値の読み込みと加算（２〜３行目のプログラム）とを繰り返し、最後に平均値をとることで実現する。具体的なプログラムについては、モザイク処理と大差ないので、これ以上の説明を省略する。
【００２９】
（ＹＵＶデータ変換処理）
図８は、ＹＵＶデータ変換処理のプログラムリストである。ＹＵＶデータ変換処理とは、ＲＧＢデータから、ＹＵＶデータ(輝度と色差情報からなるデータ)へフォーマットを変換する処理である。ＲＧＢデータにおける各色成分の値をＲ，Ｇ，Ｂとすると、ＹＵＶデータにおける各色成分の値Ｙ，Ｕ，Ｖは、以下のような式の計算で求められる。
Ｙ=  0.299×Ｒ＋0.587×Ｇ＋0.114×Ｂ  ・・・式（１）
Ｕ=−0.147×Ｒ−0.289×Ｇ＋0.436×Ｂ  ・・・式（２）
Ｖ=  0.615×Ｒ−0.515×Ｇ−0.100×Ｂ  ・・・式（３）
【００３０】
上記処理を、本実施形態において実装するために、変換するアドレスのＲ，Ｇ，Ｂの各値を読み込んで、所定の定数と乗算（除算）させるプログラムを設定する。本実施形態において、ＹＵＶデータに変換する処理はＡddr1に格納されているＲＧＢデータである。
【００３１】
なお、同図のプログラムリストに記載されている命令「ldi」とは、任意の定数を、記述されたアドレスを持つ共通レジスタ６ｂに格納するという命令である。例えば、命令「ldi ｒ0, 10」が実行されると、共通レジスタ６ｂのｒ0に、定数「１０」が格納される。また、命令「ldi ｒ1, (20, 30)」が実行されると、共通レジスタ６ｂのｒ1における上位１６ビットに「２０」が格納され、ｒ1における下位１６ビットに「３０」が格納される。これらの命令は、本実施形態に限らず一般のプロセッサでも同様の命令を持っているが、その他に持っている基本的な命令の組み合わせでも同じ処理が実現できるものである。本発明を実装する場合、ＲＧＢデータにおける各ビット幅の合計が、専用レジスタ７ｄに出力されるビット幅以下であればよい。
【００３２】
また、命令「rgbmult2」とは、前述した命令「ldi」によって格納される共通レジスタ６ｂの値と、専用レジスタ７ｄとを乗算するという処理である。例えば、各専用レジスタに格納されている値がＲ，Ｇ，Ｂであり、上記の命令「ldi」により、共通レジスタ６ｂのｒ0に１つ、ｒ1に２つの係数がそれぞれ格納されているとする。このとき、命令「rgbmult2 ｒ0, ｒ1」が読み出されると、専用処理ユニット７内で以下の処理が同時並行的に行われる。
Ｒ  ←  Ｒ×ｒ0
Ｇ  ←  Ｇ×（ｒ1の上位１６ビットに格納された値）
Ｂ  ←  Ｂ×（ｒ1の下位１６ビットに格納された値）
【００３３】
なお、上記命令は、ｒ0〜ｒ2のそれぞれに１つの係数が格納されていたとして、「rgbmult ｒ0, ｒ1, ｒ2」と記述してもよい。本発明を実装する場合、１行の命令で３つ以上の共通レジスタ６ｂを指定するのは、あまり一般的ではないため、１つのレジスタに２つの係数を格納した。
【００３４】
図８を用いてプログラムの具体的な説明をする。プログラムの全体の流れとしては、まず、１行目の命令によって、フレームメモリ２の処理対象となるアドレスのＲＧＢデータを共通レジスタ６ｂへ読み取る。そして、２〜１６行目の命令によって、ＲＧＢスケールをＹＵＶスケールに変換処理を行い、１７〜２０行目の命令によって、共通レジスタ６ｂへのＹＵＶデータの出力を行う。
【００３５】
なお、２〜６行目までの命令はＹデータの値を算出する命令であり、同様に、７行目〜１１行目までの命令はＵデータの値、１２〜１６行目までのプログラムはＶデータの値をそれぞれ算出する。また、１７行目〜１９行目のプログラムによって、Ｙ，Ｕ，Ｖの値が、再度各専用レジスタ７ｄに格納される。そして、２０行目のプログラムによって、専用レジスタ７ｄに格納されていたＹ，Ｕ，Ｖの値はそれぞれ８ビット幅に変換されて、共通レジスタ６ｂに格納される。
【００３６】
ＹＵＶデータ変換処理における各成分値の算出するプログラムは類似しており、特に算出に係る係数のみが異なる。そのため、ＵデータおよびＶデータの算出についての説明は省略し、２〜６行目のプログラムによる、Ｙデータの値の算出を説明する。まず、２行目の命令によって、ｒ0に0.229という定数が格納される。つぎに、３行目の命令によって、ｒ1の上位１６ビットに0.587が、また下位１６ビットに0.114が格納される。つぎに、４行目の命令によって、専用レジスタ７ｄに、各色成分に対応したＲＧＢデータの値が格納される。つぎに、５行目の命令によって、Ｒの専用処理ユニット７内では、専用レジスタ７ｄに格納されている値Ｒと、共通レジスタ６ｂに格納されている係数（0.299）とが乗算され、その結果が専用レジスタに再び格納される。同様に、ＧおよびＢの専用処理ユニット７内では、専用レジスタ７ｄに格納されている値と、ｒ1に格納されている２つの係数（0.587，0.114）が乗算され、その結果が専用レジスタに再び格納される。ちなみに、５行目の命令は式（１）に相当し、Ｙの値を算出している。最後に、６行目の命令によって、共通レジスタｒ3にＹデータの値が出力される。
【００３７】
（畳込処理）
図９は、畳込処理のプログラムリストである。畳み込み（コンボリューション）処理とは、注目するＲＧＢデータとその周囲のＲＧＢデータに、任意の重みをかけて足す処理である。なお、この処理は画像表示される物体の輪郭などを検出する画像処理にも適用可能である。
【００３８】
プログラム中では、Ａddr1が処理対象の画素のアドレス、Ａddr2〜9が周囲の画素のアドレスとし、Ｃonst1〜Ｃonst9は各ピクセルの重みを表す定数とする。このとき、例えば、Ｃonst1〜Ｃonst9の値が全て１/９である場合、出力される値は、単純に注目ピクセルと周囲のピクセルを足した平均値となり、これはぼかし処理と同一の処理となる。
【００３９】
なお、図９に記載されている命令「rgbmuladd ｒ0, ｒ1」は、共通レジスタ６ｂのアドレスｒ0に格納されている値に、共通レジスタ６ｂのアドレスｒ1に格納されているＲＧＢデータの値を乗算し、さらに、各色成分の専用レジスタ７ｄに格納されている値を足す命令である。例えば、ｒ0に格納されている各色成分の値をＲa，Ｇa，Ｂaとし、ｒ1に格納されている値をＣonst1とする。ここで、命令「rgbmuladd ｒ1」が実行されると、以下の処理が同時並行的に行われる。
Ｒ  ←  Ｒ＋Ｒa×Ｃonst1
Ｇ  ←  Ｇ＋Ｇa×Ｃonst1
Ｂ  ←  Ｂ＋Ｂa×Ｃonst1
【００４０】
このとき、ＲＧＢデータのそれぞれにｒ1を乗算する回路が、専用処理ユニット７の外部にある回路に用意されている場合、乗算処理は、専用乗算器７ｂの外部で行った方がよい。これは、実装上において、制御部３が行う他の命令と共有できるようにするためである。
【００４１】
図９を用いてプログラムの具体的な説明をする。プログラムの全体的な流れとしては、まず、１行目の命令によって専用レジスタ７ｄのリセットが行われる。そして２〜４行目までの３行の命令によって、９画素うちの１つに対して重み付けを行った値が算出される。そして、５〜１３行目までにかけて、２〜４行目と同様の処理が行われ、残りの８画素における重み付けを行った値が算出され、算出した結果が順次合算される。最後に１４行目の命令により、各専用レジスタ７ｄに格納された値が、共通レジスタ６ｂへ出力される。
【００４２】
畳込処理における各ＲＧＢデータの値に重み付けを行うプログラムは類似しており、特に算出に係る係数のみが異なる。そのため、２番目から９番目のＲＧＢデータの値における処理の説明は省略し、１〜４行目のプログラムによる、１番目のＲＧＢデータの値における処理を説明する。まず、１行目の命令によって、各専用レジスタ７ｄ内の値が０に格納される。つぎに、２行目の命令によって、フレームメモリ２に格納されている画素値が共通レジスタ６ｂのｒ0に格納される。つぎに、３行目の命令によって、共通レジスタ６ｂのｒ1に定数Ｃonst1が格納される。つぎに、４行目の命令によって、共通レジスタｒ0の各色成分にｒ1を乗算し、その乗算結果に専用レジスタ７ｄの値を加算して、再び専用レジスタ７ｄに格納する。５行目以降の命令については、２〜４行目の命令を、読み出すフレームメモリ２のアドレスを変位させながら繰り返して処理を行う。
【００４３】
本実施形態によれば、専用処理ユニット７を画像処理装置内に設け、初期化をはじめとした各色成分ごとの演算処理に関する複数の命令を１命令で実行する。これにより、各色成分ごとに個別に設けられた複数の専用処理ユニット７が処理を並行的に実行するので、共通処理ユニット６のみを用いた処理と比較して、画像処理の高速化を図ることができる。また、専用処理ユニット７に専用レジスタ７ｄを内蔵し、自己の演算回路による処理結果を専用レジスタ７ｄに出力をすることで、専用処理ユニット７外のレジスタの使用頻度を減らすことができるので、より一層の画像処理の高速化を図ることができる。
【００４４】
また、専用レジスタ７ｄのビット幅は、共通レジスタ６ｂ（またはフレームメモリ２）に格納されている色成分のビット幅より大きいため、従来であれば演算処理において、３２ビットの専用レジスタを８ビットの整数型へ変換する必要があったが、本実施形態では、専用加算器７ａ・専用乗算器７ｂも３２ビットでの対応が可能であるため、さらなる処理速度の高速化を図ることができる。
【図面の簡単な説明】
【００４５】
【図１】本実施形態に係る画像処理プロセッサの概略的なブロック構成図
【図２】専用演算部のブロック構成図
【図３】データ設定命令（rgbset）の説明図
【図４】加減算命令（rgbadd）の説明図
【図５】乗除算命令（rgbmult）の説明図
【図６】データ出力命令（rgbget）の説明図
【図７】モザイク処理のプログラムリスト
【図８】ＹＵＶデータ変換処理のプログラムリスト
【図９】畳込処理のプログラムリスト
【符号の説明】
【００４６】
１  画像処理プロセッサ
２  フレームメモリ
３  制御部
４  命令格納部
５  画像処理演算部
６  共通処理ユニット
６ａ  共通演算部
６ｂ  共通レジスタ
７  専用処理ユニット
７ａ  専用加算器
７ｂ  専用乗算器
７ｃ  専用セレクタ
７ｄ  専用レジスタ
【図１】
2006236175.tif 000003
【図２】
2006236175.tif 000004
【図３】
2006236175.tif 000005
【図４】
2006236175.tif 000006
【図５】
2006236175.tif 000007
【図６】
2006236175.tif 000008
【図７】
2006236175.tif 000009
【図８】
2006236175.tif 000010
【図９】
2006236175.tif 000011