(57)【要約】【課題】アドレス計算を必要とせず、命令メモリの面積を削減でき、かつ、レジスタ数を削減することができる画像処理装置を提供する。【解決手段】画像処理装置１は、画像データを格納するデータメモリ１３と、画像データのフレーム中におけるRPの位置を示す２次元アドレスを保持するRPレジスタ２３と、フレームの幅及び高さに基づいて、RPレジスタ２３に保持される２次元アドレスの制御を行うRP制御部２２とを有する。また、画像処理装置１は、RPからの２次元相対位置を２個の即値の組により指定するフィールドを具備する命令コードに基づいて、データメモリ１３から読み出し対象画素データを読み出す際に、２次元アドレスと、即値の組と、フレームの幅とに基づいて、読み出し対象画素データが格納されているアドレスを計算するアドレス計算ユニット２１ａ〜２１ｃとを有する。【選択図】図１
2010108084.tif 000002
【特許請求の範囲】
【請求項１】
画像データを格納するデータメモリと、
前記画像データのフレーム中におけるリードポインタの位置を示す第１の２次元アドレスを保持する第１のレジスタと、
前記フレームの幅及び前記フレームの高さに基づいて、前記第１のレジスタに保持される前記第１の２次元アドレスの制御を行う制御回路と、
前記リードポインタからの２次元相対位置を２個の即値の組により指定するフィールドを具備する命令コードに基づいて、前記データメモリから読み出し対象画素データを読み出し、読み出された前記対象画素データに所定の演算処理が施されて得られた画素データを前記データメモリの所定の領域に書き込むロードストアユニットと、
前記ロードストアユニットが前記データメモリから前記読み出し対象画素データを読み出す際に、前記第１の２次元アドレスと、前記即値の組と、前記フレームの幅とに基づいて、前記読み出し対象画素データが格納されているアドレスを計算するアドレス計算ユニットと、
を有することを特徴とする画像処理装置。
【請求項２】
前記リードポインタを仮想的に変更するための第２の２次元アドレスを保持する第２のレジスタを有し、
前記命令コードは、前記即値の組に加え、前記第２のレジスタのレジスタ番号を指定するフィールドを具備し、
前記アドレス計算ユニットは、前記第１の２次元アドレスと、前記即値の組と、前記フレームの幅と、前記第２の２次元アドレスとに基づいて、前記読み出し対象画素データが格納されているアドレスを計算することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
SIMD型画像処理装置であって、演算処理時のSIMD幅を保持するレジスタを有し、
前記アドレス計算ユニットは、前記第１の２次元アドレスと、前記即値の組と、前記フレームの幅と、前記SIMD幅とに基づいて、前記読み出し対象画素データが格納されているアドレスを計算することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
SIMD型画像処理装置であって、演算処理時のSIMD幅を保持するレジスタを有し、
前記アドレス計算ユニットは、前記第１の２次元アドレスと、前記即値の組と、前記フレームの幅と、前記第２の２次元アドレスと、前記SIMD幅とに基づいて、前記読み出し対象画素データが格納されているアドレスを計算することを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記制御回路は、前記フレームの幅及び前記フレームの高さに代わり、それぞれ水平同期信号及び垂直同期信号に基づいて、前記第１のレジスタに保持される前記第１の２次元アドレスを制御することを特徴とする請求項１から４のいずれか１つに記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関し、特に、２次元相対位置を命令コードに即値として指定した２次元ロード命令を具備する画像処理装置に関する。
【背景技術】
【０００２】
従来、メモリ上のデータを読み出し、所定の演算処理を施した後のデータをメモリ上に書き込む画像処理装置が提案されている。この画像処理装置では、あるデータを指定してロードする際に、アドレス計算をする必要があり、処理の複雑化に伴いロード回数が増え、アドレス計算に要するサイクル数が増大するという問題があった。
【０００３】
そのため、ロードするデータが格納されているメモリ上のアドレスを命令フィールドに与え、１命令によりデータをロードすることにより、アドレス計算を必要としない画像処理装置が提案されている。しかし、この画像処理装置では、メモリに格納される画素数が多いほど、命令フィールドが長くなる。さらに、この画像処理装置では、複数の画素を同時にロードする場合、長い命令フィールドが複数必要となり、命令メモリ量の面積が増大するという問題があった。
【０００４】
また、例えば、処理に必要な１つ、あるいは、２つのデータを指定せずに、所定の矩形領域のデータを予めレジスタに転送する画像処理装置が提案されている。（例えば、特許文献１参照）。
【０００５】
この提案の画像処理装置は、メモリからデータをロードする際に、ロード命令中に「ロード開始アドレス」、「インクリメント幅」、「データ高さ」、及び「データ間隔」を指定し、所定の矩形領域のデータをレジスタに転送するようになっている。ところが、レジスタに転送された矩形領域の全てのデータが画像処理の演算に使用されるとは限らない。また、この画像処理装置は、所定の矩形領域のデータを格納するためのレジスタが必要となり、矩形領域のデータが増加すると、必要なレジスタ数も増加するという問題があった。
【特許文献１】特開２００８−３７０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、アドレス計算を必要とせず、命令メモリの面積を削減でき、かつ、レジスタ数を削減することができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、画像データを格納するデータメモリと、前記画像データのフレーム中におけるリードポインタの位置を示す第１の２次元アドレスを保持する第１のレジスタと、前記フレームの幅及び前記フレームの高さに基づいて、前記第１のレジスタに保持される前記第１の２次元アドレスの制御を行う制御回路と、前記リードポインタからの２次元相対位置を２個の即値の組により指定するフィールドを具備する命令コードに基づいて、前記データメモリから読み出し対象画素データを読み出し、読み出された前記対象画素データに所定の演算処理が施されて得られた画素データを前記データメモリの所定の領域に書き込むロードストアユニットと、前記ロードストアユニットが前記データメモリから前記読み出し対象画素データを読み出す際に、前記第１の２次元アドレスと、前記即値の組と、前記フレームの幅とに基づいて、前記読み出し対象画素データが格納されているアドレスを計算するアドレス計算ユニットとを有する画像処理装置を提供することができる。
【発明の効果】
【０００８】
本発明の画像処理装置によれば、アドレス計算を必要とせず、命令メモリの面積を削減でき、かつ、レジスタ数を削減することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【００１０】
（第１の実施の形態）
まず、図１に基づき、本発明の第１の実施の形態に係る画像処理装置の構成について説明する。図１は、第１の実施の形態に係る画像処理装置の構成を示すブロック図である。
【００１１】
図１に示すように、画像処理装置１は、命令メモリ１１と、ロードストアユニット１２と、データメモリ１３と、演算ユニット１４と、制御レジスタ１５とを有し、１チップとして構成されている。
【００１２】
また、画像処理システム１００は、画像処理装置１の外部に、ホストプロセッサ１０１と、バス１０２と、撮像装置１０３と、インターフェース（以下、I/Fという）１０４とを有して構成されている。なお、画像処理装置１、ホストプロセッサ１０１、バス１０２、撮像装置１０３及びI/F１０４が１チップとして構成されていてもよい。この画像処理装置１は、例えば、携帯電話、デジタルカメラ等の画像処理に用いられる。
【００１３】
ホストプロセッサ１０１は、バス１０２を介して、命令メモリ１１に所定の命令コードの書き込みを行う。また、ホストプロセッサ１０１は、制御レジスタ１５に所定のデータの書き込みを行う。
【００１４】
撮像装置１０３は、例えば、CMOSセンサ等であり、撮像した画像データをI/F１０４を介して、データメモリ１３に書き込みを行う。
【００１５】
ロードストアユニット１２は、命令メモリ１１からの命令コードに基づいて、データメモリ１３から画像データを読み出し、読み出した画像データを演算ユニット１４に出力する。
【００１６】
演算ユニット１４は、入力された画像データに対してファームウエアによる演算処理、例えば、Bayer配列からのRGBの補間処理、LPF及びHPF等のフィルタ処理、ガンマ補正処理を施し、ロードストアユニットに出力する。
【００１７】
ロードストアユニット１２は、所定の演算処理が施された画像データをデータメモリ１３に書き込む。
【００１８】
演算ユニット１４により演算された演算結果、即ち、データメモリ１３に格納された最終的な画像データは、バス１０２を介してホストプロセッサ１０１に出力される、あるいは、画像処理装置１の外部にある図示しないレジスタあるいはメモリに格納される。
【００１９】
ロードストアユニット１２は、アドレス計算部２１と、処理対象画素のフレーム内の位置を示すリードポインタ（以下、RPという）を制御するRP制御部２２と、RPの２次元アドレスを保持するRPx２４及びRPy２５を有するRPレジスタ２３とを有して構成されている。
【００２０】
また、ハードウエアにより構成されるアドレス計算部２１は、複数の、ここでは３つのアドレス計算ユニット２１ａ、２１ｂ及び２１ｃを有して構成されている。このように、アドレス計算部２１は、３つのアドレス計算ユニット２１ａ、２１ｂ及び２１ｃを有しており、３画素を同時にロードすることができる。よって、３画素を同時にロードするために、データメモリ１３は、少なくとも３つのバンクに分けられている。
【００２１】
なお、アドレス計算部２１は、３つのアドレス計算ユニット２１ａ、２１ｂ及び２１ｃを有しているが、１つ、２つ、あるいは、４つ以上のアドレス計算ユニットを有していてもよい。例えば、アドレス計算ユニットを４つ有している場合には、データメモリ１３が少なくとも４つのバンクに分けられていれば、４画素を同時にロードすることができる。
【００２２】
制御レジスタ１５は、フレームの高さ（Image_Height）を格納するレジスタ２６と、フレームの幅（Image_Width）を格納するレジスタ２７とを有して構成されている。レジスタ２６には、ホストプロセッサ１０１によって、フレームの縦方向の高さ、即ち、フレームの垂直方向の高さを示す値が格納される。同様に、レジスタ２７には、ホストプロセッサ１０１によって、フレームの横方向の幅、即ち、フレームの水平方向の幅を示す値が格納される。レジスタ２６及び２７に格納された各値は、RP制御部２２に供給され、後述するRPの制御に用いられる。また、レジスタ２７に格納された値は、ハードウエアにより構成されるアドレス計算部の各アドレス計算ユニット２１ａ、２１ｂ及び２１ｃに供給され、後述するアドレス計算に用いられる。
【００２３】
ここで、RPの更新方法について説明する。フレーム内のRPの画素の位置を画素[i][j]とする。iは、フレームの縦方向の位置を示し、０〜ｍの整数である。また、jは、フレームの横方向の位置を示し、０〜nの整数である。このRPは、フレームの左上から各画素毎にラスタスキャン順に変更されていくものとする。
【００２４】
RPは、初期状態ではフレーム内で最初に処理を行う画素[0][0]を指している。データメモリ１３中の画素[0][0]が格納されているアドレスは、ロードストアユニット１２内のレジスタであるRPx２４、RPy２５に初期設定される。RP制御部２２は、ファームウエアによる上述した演算処理が終わると、画素[0][0]から画素[0][1]にインクリメントしてRPを更新する。このように、RP制御部２２は、ファームウエアの一連の演算処理が終わるごとにRPを更新し、最後は、画素[m][n]までRPを更新する。RP制御部２２は、命令メモリ１１からの制御信号に基づいて、このファームウエアの一連の演算処理が終わった否かの判定を行う。
【００２５】
また、RP制御部２２は、レジスタ２６に格納されているフレームの高さとレジスタ２７に格納されているフレームの幅に基づいて、１ラインの終了判定及び１フレームの終了判定を行う。例えば、フレームの幅をWidth、フレームの高さをHeightとすると、RP制御部２２は、RPが画素[0][Width−1]のアドレスになると、１ライン分の処理が終了したと判定し、ラップアラウンド（wrap around）して画素[1][0]のアドレスに更新する。また、RP制御部２２は、RPが画素[Height−１][Width−1]のアドレスになると、１フレーム分の処理が終了したと判定し、ラップアラウンドしてアドレスの更新を行う。このRPのフレーム内の位置と、RPが格納されているメモリアドレスはロードストアユニット１２内のRPレジスタ２３に格納され、初期化、更新等の管理が行われる。
【００２６】
なお、RP制御部２２は、レジスタ２７に格納されているフレームの幅と、レジスタ２６に格納されているフレームの高さとに基づいて、RPの制御を行っているが、撮像装置１０３から供給される水平同期信号と垂直同期信号とに基づいて、RPの制御を行ってもよい。
【００２７】
次に、RPが画素[i][j]を指しているときに、画素[i+Imm_y][j+Imm_x]を読み出す際の２次元ロード命令について説明する。図２は、命令フォーマットの例を説明するための説明図である。ここで、Imm_x及びImm_yのそれぞれは、ロードすべき画素に関するRPからの水平方向の相対位置及び垂直方向の相対位置を示し、例えば、（Imm_x、Imm_y）は、後述するように（Ix0、Iy0）、（Ix1、Iy1）、または（Ix2、Iy2）である。
【００２８】
図２に示すように、命令フィールド中にRPからの２次元相対位置が画素単位の２個の即値の組で指定されている。１画素ロード命令では、１画素分の２次元相対位置（Ix0、Iy0）が命令の即値のフィールドに与えられている。同様に、２画素ロード命令では、２画素分の２次元相対位置（Ix0、Iy0）及び（Ix1、Iy1）が命令の即値のフィールドに与えられ、３画素ロード命令では、３画素分の２次元相対位置（Ix0、Iy0）、（Ix1、Iy1）及び（Ix2、Iy2）が命令の即値のフィールドに与えられている。それらの命令コードを受けて、アドレス計算ユニット２１ａは、読み出しターゲットであるアドレス計算を次式により計算する。
【００２９】
ターゲットアドレス＝(RPy＋Iy0)×Image_Width＋(RPx＋Ix0)  
また、アドレス計算ユニット２１ｂは、上述した計算式のIy0及びIx0をそれぞれIy1及びIx1に代えて計算を行い、アドレス計算ユニット２１ｃは、上述した計算式のIy0及びIx0をそれぞれIy2及びIx2に代えて計算を行う。
【００３０】
アドレス計算ユニット２１ａ、２１ｂ及び２１ｃのそれぞれは、上述したアドレス計算から得られたターゲットアドレスをデータメモリ１３に出力する。これにより、ターゲットアドレスに対応する３画素が同時にロードされることとなる。
【００３１】
なお、RPから１画素分だけロードする場合、アドレス計算ユニット２１ａが上述したアドレス計算を行い、対応するターゲットアドレスをデータメモリ１３に出力し、アドレス計算ユニット２１ｂ及び２１ｃのそれぞれは、無効を示す信号をデータメモリ１３に出力する。同様に、RPから２画素分だけ同時にロードする場合、アドレス計算ユニット２１ａ及び２１ｂのそれぞれが上述したアドレス計算を行い、対応するターゲットアドレスをデータメモリ１３に出力し、アドレス計算ユニット２１ｃは、無効を示す信号をデータメモリ１３に出力する。
【００３２】
以上のように、画像処理装置１は、ロードしたい画素の処理対象画素であるRPからの２次元相対位置を命令の即値のフィールドに与えた命令セットを命令メモリ１１に保持する。また、画像処理装置１は、処理対象画素であるRPと、即値と、フレームの幅とに基づいて、所定のアドレス計算式によりターゲットアドレスを求めるようにした。この結果、ファームウエアでのアドレス計算が不要となり、アドレス計算に要するサイクル数が削減することができる。
【００３３】
また、画像幅が3000画素で9ライン分の画素を指定する場合、２次元アドレスを使用せずに、メモリ上のアドレスを命令フィールドに与えると、長い命令フィールドが必要となる。すなわち、１命令によりアドレスを指定し、データをロードする場合、3000×9＝27000、即ち15bitの命令フィールドが必要となる。３画素同時ロードしようとすると、45bitの命令フィールドが必要となる。しかし、RPが指している画素をターゲットとして処理している時点で、メモリからロードしたい画素は、高々RP周辺の9×9＝81画素程度である。そこで、本実施の形態の２次元アドレスの方式を用いて9×9の範囲の画素を３つ指定する場合は、4bit×2×3画素＝24bitの命令フィールドを持っていればよく、45bitと比較すると大幅に、この例では21bit、削減することができる。この結果、長い命令フィールドも不要となり、命令メモリの面積を削減することができる。さらに、演算に必要な画素だけを指定してロードすることができるため、レジスタ数を削減することができる。
【００３４】
よって、本実施の形態の画像処理装置によれば、アドレス計算を必要とせず、命令メモリの面積を削減でき、かつ、レジスタ数を削減することができる。
【００３５】
また、ファームウエア開発者が、２次元データ読み出し処理のファームウエアをアセンブリ言語により記述する場合に、アドレス計算をファームウエア中に記述する必要がなくなるため、直感的な２次元論理アドレスを意識するだけで容易にアセンブリ言語記述を行うことができる。その結果、ファームウエア開発者は、バグの少ないファームウエアをアセンブリ言語により記述することができ、ファームウエアの開発効率を上げることができるという効果を有する。
【００３６】
（第２の実施の形態）
まず、図３に基づき、本発明の第２の実施の形態に係る画像処理装置の構成について説明する。図３は、第２の実施の形態に係る画像処理装置の構成を示すブロック図である。なお、図３において、図１と同一の構成については、同一の符号を付して説明を省略する。
【００３７】
本実施の形態の画像処理装置１ａは、命令コード中の即値に加えて、ディスプレースメントレジスタ番号を命令コード中に指定し、仮想的にRPの位置を移動することができるようになっている。
【００３８】
図３に示すように、画像処理装置１ａは、図１のアドレス計算部２１に代わりアドレス計算部３１を用いると共に、制御レジスタ１５に代わり制御レジスタ１５ａを用いて構成されている。
【００３９】
制御レジスタ１５ａは、ディスプレースメント、即ち、RPからの２次元相対位置を示す値（DPRx及びDPRy）を格納するレジスタ２８及び２９を有して構成されている。レジスタ及び２９は、RPを仮想的に変更するための２次元アドレスを保持するレジスタを構成する。また、アドレス計算部３１は、アドレス計算ユニット３１ａ、３１ｂ及び３１ｃを有して構成されている。
【００４０】
レジスタ２８には、ホストプロセッサ１０１によって、水平方向のディスプレースメントを示す値（DPRx）が格納される。同様に、レジスタ２９には、ホストプロセッサ１０１によって、垂直方向のディスプレースメントを示す値（DPRy）が格納される。レジスタ２８及び２９のそれぞれに格納された水平方向及び垂直方向のディスプレースメントを示す値は、アドレス計算部３１に供給される。なお、レジスタ２８及び２９の組み合わせは、説明を簡単にするために１つとしているが、複数あってもよい。
【００４１】
図４は、命令フォーマットの例を説明するための説明図である。図４に示すように、命令フォーマットは、図２の命令フォーマットに加え、レジスタ２８及び２９のレジスタ番号を命令コード中に指定している。それらの命令コードを受けて、アドレス計算ユニット３１ａは、読み出しターゲットであるアドレス計算を次式により計算する。
【００４２】
ターゲットアドレス＝(RPy＋Iy0＋DPRy)×Image_Width＋(RPx＋Ix0＋DPRx)  
また、アドレス計算ユニット３１ｂは、上述した計算式のIy0及びIx0をそれぞれIy1及びIx1に代えて計算を行い、アドレス計算ユニット３１ｃは、上述した計算式のIy0及びIx0をそれぞれIy2及びIx2に代えて計算を行う。
【００４３】
図５は、仮想的にRPを変更した例を説明するための説明図である。図５に示すように、ロードストアユニット１２は、RPを基準とした５画素×５画素の矩形領域３２に存在する画素についてアクセス可能であるものとする。レジスタ２８に−２、レジスタ２９に−２を格納することにより、RPを水平方向に−２、垂直方向に−２だけ変更することが可能となる。このように、仮想的にRPを変更することにより、ロードストアユニット１２は、仮想的に変更したRPを基準とした５画素×５画素の矩形領域３３にアクセス可能となる。
【００４４】
例えば、データメモリ１３がラインメモリにより実装されている場合、図５に示すように、RPを戻して画像処理を行うことがある。この場合、第１の実施の形態で説明した方法でRPを制御しようとすると、RPの制御が複雑になることに加えて、２次元相対位置を指定する即値のフィールドのbit幅の制約により、図５の矩形領域３３内部でアクセスできない画素が生じる。そこで、レジスタ２８及び２９にRPを仮想的に変更するための２次元アドレスを格納し、レジスタ２８及び２９を指定するためのレジスタ番号を命令コード中に指定することにより、RPを仮想的に変更することできるだけでなく、図５の矩形領域３３の全ての画素に対してアクセスすることができる。
【００４５】
以上のように、画像処理装置１ａは、即値に加えて、ディスプレースメントが格納されているレジスタ番号を命令フィールドに指定する命令セットを具備するようにした。各アドレス計算ユニット３１ａ、３１ｂ及び３１ｃは、２次元アドレス、即値、フレーム幅、ディスプレースメントを示す２次元アドレスに基づいてターゲットアドレスの計算を行うようにした。この結果、RPを仮想的に変更した矩形領域の画素データをロードすることができる。
【００４６】
よって、本実施の形態の画像処理装置によれば、データメモリ１３がラインメモリとして実装されていて遅延が生じた場合に、命令フィールドのbit幅の制約によりアクセスできなかった矩形領域３３中の画素のロードが遅延のない場合と同様に行うことができるという効果を有する。
【００４７】
（第３の実施の形態）
次に、図６に基づき、本発明の第３の実施の形態に係る画像処理装置の構成について説明する。図６は、第３の実施の形態に係る画像処理装置の構成を示すブロック図である。なお、図６において、図１と同一の構成については、同一の符号を付して説明を省略する。
【００４８】
本実施の形態の画像処理装置１ｂは、第１の実施の形態の画像処理装置１をSIMD（Single Instruction Multiple Data）型に変更した例である。図６に示すように、画像処理装置１ｂは、図１のアドレス計算部２１に代わりアドレス計算部４１を用いると共に、制御レジスタ１５に代わり制御レジスタ１５ｂを用いて構成されている。
【００４９】
制御レジスタ１５ｂは、SIMD幅の値（SIMD_Width）を格納するレジスタ３０を有して構成されている。また、アドレス計算部４１は、アドレス計算ユニット４１ａ、４１ｂ及び４１ｃを有して構成されている。
【００５０】
レジスタ３０には、ホストプロセッサ１０１によって、SIMD幅を示す値が格納される。レジスタ３０に格納されたSIMD幅は、アドレス計算部４１の各アドレス計算ユニット４１ａ、４１ｂ及び４１ｃに供給される。
【００５１】
アドレス計算ユニット４１ａは、図２に示す命令フォーマットに基づいて、読み出しターゲットであるアドレス計算を次式により計算する。
【００５２】
ターゲットアドレス＝(RPy＋Iy0)×Image_Width＋(RPx×SIMD_Width＋Ix0)  
ここで、RPxの値は、１SIMDデータずれるごとに1ずれるとして数える。例えば、SIMD幅が16の場合、16画素右にずれるとRPxは１ずれるというようにRPxを定める。
【００５３】
また、アドレス計算ユニット４１ｂは、上述した計算式のIy0及びIx0をそれぞれIy1及びIx1に代えて計算を行い、アドレス計算ユニット４１ｃは、上述した計算式のIy0及びIx0をそれぞれIy2及びIx2に代えて計算を行う。
【００５４】
以上のように、画像処理装置１ｂは、制御レジスタ１５ｂのレジスタ３０に格納されたSIMD幅に基づいて、ターゲットアドレスの計算を行うようにした。また、命令フォーマットは、図２と同様の命令フォーマットである。そのため、２次元データ読み出し命令の命令コード中には、SIMD幅に関する情報を必要としない。その結果、SIMD幅が変更された場合でも、命令コードは変更する必要がなくなる。
【００５５】
即ち、SIMD幅に変更があった場合は、ホストプロセッサ１０１からレジスタ３０に変更されたSIMD幅を書き込むだけで、アドレス計算ユニット４１ａ、４１ｂ及び４１ｃのそれぞれがターゲットアドレスを計算するようになっている。
【００５６】
よって、本実施の形態の画像処理装置によれば、第１の実施の形態と同様の効果を有すると共に、命令コードは、SIMD幅が変更になった場合でも、バイナリーコンパチブル（binary compatible）になり、ファームウエアの資産としての活用が容易になるという効果を有する。
【００５７】
（第４の実施の形態）
次に、図７に基づき、本発明の第４の実施の形態に係る画像処理装置の構成について説明する。図７は、第４の実施の形態に係る画像処理装置の構成を示すブロック図である。なお、図７において、図３と同一の構成については、同一の符号を付して説明を省略する。
【００５８】
本実施の形態の画像処理装置１ｃは、第２の実施の形態の画像処理装置１ａをSIMD型に変更した例である。図７に示すように、画像処理装置１ｃは、図３のアドレス計算部３１に代わりアドレス計算部５１を用いると共に、制御レジスタ１５ａに代わり制御レジスタ１５ｃを用いて構成されている。
【００５９】
制御レジスタ１５ｃは、SIMD幅を示す値（SIMD_Width）格納するレジスタ３０を有して構成されている。また、アドレス計算部５１は、アドレス計算ユニット５１ａ、５１ｂ及び５１ｃを有して構成されている。
【００６０】
レジスタ３０には、ホストプロセッサ１０１によって、SIMD幅を示す値が格納される。レジスタ３０に格納されたSIMD幅は、アドレス計算部５１に供給される。
【００６１】
アドレス計算ユニット５１ａは、図４の命令フォーマットに基づいて、読み出しターゲットであるアドレス計算を次式により計算する。
【００６２】
ターゲットアドレス＝(RPy＋Iy0＋DPRy)×Image_Width＋{ (RPx＋DPRx)×SIMD_Width + Ix0 }  
ここで、RPx,及びDPRxの値は、ぞれぞれ１SIMDデータずれるごとに1ずれるとして数える。例えば、SIMD幅が16の場合、16画素右にずれるとRPx及びDPRxのそれぞれは１ずれるというようにRPx及びDPRxを定める。
【００６３】
また、アドレス計算ユニット５１ｂは、上述した計算式のIy0及びIx0をそれぞれIy1及びIx1に代えて計算を行い、アドレス計算ユニット５１ｃは、上述した計算式のIy0及びIx0をそれぞれIy2及びIx2に代えて計算を行う。
【００６４】
以上のように、画像処理装置１ｃは、制御レジスタ１５ｃのレジスタ３０に格納されたSIMD幅に基づいて、ターゲットアドレスの計算を行うようにした。また、命令フォーマットは、図４と同様の命令フォーマットである。そのため、２次元データ読み出し命令の命令コード中には、SIMD幅に関する情報を必要としない。その結果、SIMD幅が変更された場合でも、命令コードは変更する必要がなくなる。
【００６５】
即ち、SIMD幅に変更があった場合は、ホストプロセッサ１０１からレジスタ３０に変更されたSIMD幅を書き込むだけで、アドレス計算ユニット５１ａ、５１ｂ及び５１ｃのそれぞれがターゲットアドレスを計算するようになっている。
【００６６】
よって、本実施の形態の画像処理装置によれば、第２の実施の形態と同様の効果を有すると共に、命令コードがSIMD幅に依存せずにバイナリーコンパチブル（binary compatible）になり、ファームウエアの資産としての活用が容易になるという効果を有する。
【００６７】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００６８】
【図１】第１の実施の形態に係る画像処理装置の構成を示すブロック図である。
【図２】命令フォーマットの例を説明するための説明図である。
【図３】第２の実施の形態に係る画像処理装置の構成を示すブロック図である。
【図４】命令フォーマットの例を説明するための説明図である。
【図５】仮想的にRPを変更した例を説明するための説明図である。
【図６】第３の実施の形態に係る画像処理装置の構成を示すブロック図である。
【図７】第４の実施の形態に係る画像処理装置の構成を示すブロック図である。
【符号の説明】
【００６９】
１…画像処理装置、１１…命令メモリ、１２…ロードストアユニット、１３…データメモリ、１４…演算ユニット、１５，１５ａ，１５ｂ，１５ｃ…制御レジスタ、２１，３１，４１，５１…アドレス計算部、２１ａ〜２１ｃ，３１ａ〜３１ｃ，４１ａ〜４１ｃ，５１ａ〜５１ｃ…アドレス計算ユニット、２２…RP制御部、２３…RPレジスタ、１００…画像処理システム、１０１…ホストプロセッサ、１０２…バス、１０３…撮像装置、１０４…インターフェース。
【図１】
2010108084.tif 000003
【図２】
2010108084.tif 000004
【図３】
2010108084.tif 000005
【図４】
2010108084.tif 000006
【図５】
2010108084.tif 000007
【図６】
2010108084.tif 000008
【図７】
2010108084.tif 000009