(57)【要約】【課題】画素位置に応じた信号処理を実行するための画素位置の判定処理を従来よりも少ない演算量で効率的に行う画像処理プロセッサを提供すること。【解決手段】本発明は、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、映像入力ユニット１は、画素位置カウンタ１１を備え、命令フェッチ／発行ユニット４は、遅延量が格納された相対位置レジスタの情報を含んだ命令をフェッチした場合に、遅延量および画素位置カウンタの値に基づいて、処理対象画素データの画素位置を算出するターゲット位置計算部４１と、相対位置レジスタの情報を含んだ命令が分岐命令の場合に、算出された画素位置および分岐命令に含まれる分岐条件コードに基づいて、画素位置の画素データに対して信号処理を行うかどうかを判定する分岐条件判定部４２と、を備える。【選択図】図１
2010134891.tif 000002
【特許請求の範囲】
【請求項１】
画像データを外部から受け取る映像入力ユニットおよび命令フェッチ／発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、
前記映像入力ユニットは、
入力された画素データの数をカウントする画素位置カウンタ、
を備え、
前記命令フェッチ／発行ユニットは、
前記映像入力ユニットに画素データが入力されてから当該画素データに対する命令が実行されるまでの遅延量が格納された相対位置レジスタの情報、を含んだ命令をフェッチした場合に、当該遅延量および前記画素位置カウンタの値に基づいて、当該フェッチした命令の処理対象画素データの画素位置を算出するターゲット位置計算部と、
前記相対位置レジスタの情報を含んだ命令が分岐命令の場合に、前記算出された画素位置および当該分岐命令に含まれる分岐条件コードに基づいて、当該画素位置の画素データに対して信号処理を行うかどうかを判定する分岐条件判定部と、
を備えることを特徴とする画像処理プロセッサ。
【請求項２】
命令フェッチ／発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、
前記命令フェッチ／発行ユニットは、
１フレーム分の入力画像データのうちの最後の画素データに対する信号処理が終了した場合にゼロリセットされ、また、最後ではない画素データに対する信号処理が終了した場合にはインクリメントされるターゲット位置レジスタと、
分岐命令をフェッチした場合に、前記ターゲット位置レジスタから当該分岐命令の処理対象画素データの画素位置を取得し、取得した画素位置および当該分岐命令に含まれる分岐条件コードに基づいて、前記取得した画素位置の画素データに対して信号処理を行うかどうかを判定する分岐条件判定部と、
を備えることを特徴とする画像処理プロセッサ。
【請求項３】
前記分岐条件判定部は、
２n×２n画素（ｎは正の整数）ごとに規則性を有する画像を処理対象として判定処理を行うこととし、ｎが２以上の場合における判定処理では、シフト量を１〜ｎ−１ビットの範囲で１ビットずつ変化させながら、前記画素位置の縦方向の位置情報ｖおよび横方向の位置情報ｈを同一ビット数だけ右方向へビットシフトさせて合計ｎ−１個のシフト後の画素位置を求め、さらに、シフト前の画素位置およびｎ−１個のシフト後の画素位置それぞれについての判定を前記分岐条件コードに基づいて個別に行い、得られたｎ個の判定結果に基づいて最終的な判定を行うことを特徴とする請求項１または２に記載の画像処理プロセッサ。
【請求項４】
画像データを外部から受け取る映像入力ユニットおよび命令フェッチ／発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、
前記映像入力ユニットは、
入力された画素データの数をカウントする画素位置カウンタ、
を備え、
前記命令フェッチ／発行ユニットは、
前記映像入力ユニットに画素データが入力されてから当該画素データに対する命令が実行されるまでの遅延量が格納された相対位置レジスタの情報、を含んだ命令をフェッチした場合に、当該遅延量および前記画素位置カウンタの値に基づいて、当該フェッチした命令の処理対象画素データの画素位置を算出するターゲット位置計算部と、
前記相対位置レジスタの情報を含んだ命令が演算命令の場合に、前記算出された画素位置、および当該演算命令に含まれる、オペランドが格納されたレジスタの情報、に基づいて、処理対象画素データに対する演算で使用するオペランドを特定する命令デコーダと、
を備えることを特徴とする画像処理プロセッサ。
【請求項５】
命令フェッチ／発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、
前記命令フェッチ／発行ユニットは、
１フレーム分の入力画像データのうちの最後の画素データに対する信号処理が終了した場合にゼロリセットされ、また、最後ではない画素データに対する信号処理が終了した場合にはインクリメントされるターゲット位置レジスタと、
演算命令をフェッチした場合に、前記ターゲット位置レジスタから当該演算命令の処理対象画素データの画素位置を取得し、取得した画素位置、および当該演算命令に含まれる、オペランドが格納されたレジスタの情報、に基づいて、処理対象画素データに対する演算で使用するオペランドを特定する命令デコーダと、
を備えることを特徴とする画像処理プロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＭＯＳセンサ等から入力された画像データに対して所定の信号処理を行う画像処理プロセッサに関する。
【背景技術】
【０００２】
画像処理プロセッサが入力画像データに対して実行する各種信号処理の中には、処理対象の画像データの画素位置に応じて実行される処理が存在する。たとえば、２×２画素の配列（パターン）が左上から順に「Ｒ」，「ＧＲ」，「ＧＢ」，「Ｂ」となっているＢａｙｅｒ配列の画像データを入力画像データとして受け取り、各画素に対応する値（画像データ）に対して、その画素位置および色に応じた処理を行う、といったケースがある。より具体的な例を示すと、ＧＲ，ＧＢ，Ｂ画素の位置において、周囲のＲ画素の値を利用してそれぞれの位置を補間したＲ画素で埋め、一色の画像とする場合がある。この場合、画像処理プロセッサでは、各画素の位置を判定し、判定結果に応じて補間処理を行う。すなわち、画素位置の判定処理を行うことによりＲ画素かどうかを判定し、Ｒ画素以外のＧ画素（ＧＲ，ＧＢ画素）およびＢ画素であれば補間処理を行う。この一連の処理（画素位置の判定処理、および判定結果に応じて行う補間処理）は、以下の手順で命令を実行することにより行われる。
【０００３】
（手順１）処理対象画素の画像中の縦位置（以下「ｖ」と記載する）および横位置（以下「ｈ」と記載する）を汎用レジスタにロードさせる命令を実行する。
（手順２）現在の処理スレッドの画像入力からの相対処理位置を汎用レジスタにロードさせる命令を実行する。
（手順３）手順１および手順２で取得した値同士で演算を行うことにより処理スレッドの画素位置を求め、得られた画素位置を汎用レジスタにロードさせる命令を実行する。
（手順４）手順３で求めた画素位置について、そのｖが偶数位置かつｈが奇数位置かどうかを調べさせる命令を実行する。
（手順５）手順３で求めた画素位置について、そのｖが奇数位置かどうかを調べさせる命令を実行する。
（手順６）手順４および手順５の結果の論理和を取らせる命令を実行する。
（手順７）手順６の結果が正しければ、実行する信号処理（補間処理）が記載された位置へ分岐する。一方、正しくなければ分岐を行わない（その結果、補間処理も行われない）ように指示する命令を実行する。
【０００４】
なお、ＧＲ，ＧＢ，Ｂ画素の位置において、周囲のＲ画素の値を利用してそれぞれの位置を補間したＲ画素で埋める場合の補間処理の手順を示したが、ある特定位置の画素に対してのみ信号処理を行う場合には、信号処理を行う前に必要な分岐判定処理として上記の手順１〜手順６に相当する処理が必要となる。
【０００５】
以上のように、従来の画像処理プロセッサでは、ある特定位置の画素に対して信号処理を行うかどうかを判定（分岐判定）するために、その前段階の処理（処理対象の画素の位置を特定し、信号処理を実行するか否かを判定する処理）として上記の手順１〜手順６の各命令を実行する必要があった。すなわち、多くの命令を実行する必要があり、全体の演算量が多くなっていた。一方、画像処理プロセッサでは、より大きなサイズの画像データを扱うようになってきており、演算量の削減が課題とされている。したがって、信号処理を効率的に行い、かかる演算量を削減することが要求されている。
【０００６】
ここで、下記特許文献１には、処理対象の位置（座標）を判定し、判定結果に応じて各種処理を実行する技術、具体的には、入力データ中に含まれる３次元座標情報を判定し、判定結果に応じた描示処理を行う三次元グラフィックアクセラレーション用のプロセッサが記載されている。しかしながら、このプロセッサでは、演算量の削減については考慮されていない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平７−４９９６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、画素位置に応じて異なる信号処理を実行する際に必要な画素位置の判定処理を従来よりも少ない演算量で効率的に行い、全体の演算量を低く抑えることが可能な画像処理プロセッサを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願発明の一態様によれば、画像データを外部から受け取る映像入力ユニットおよび命令フェッチ／発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、前記映像入力ユニットは、入力された画素データの数をカウントする画素位置カウンタ、を備え、前記命令フェッチ／発行ユニットは、前記映像入力ユニットに画素データが入力されてから当該画素データに対する命令が実行されるまでの遅延量が格納された相対位置レジスタの情報、を含んだ命令をフェッチした場合に、当該遅延量および前記画素位置カウンタの値に基づいて、当該フェッチした命令の処理対象画素データの画素位置を算出するターゲット位置計算部と、前記相対位置レジスタの情報を含んだ命令が分岐命令の場合に、前記算出された画素位置および当該分岐命令に含まれる分岐条件コードに基づいて、当該画素位置の画素データに対して信号処理を行うかどうかを判定する分岐条件判定部と、を備える画像処理プロセッサが提供される。
【００１０】
また、本願発明の一態様によれば、命令フェッチ／発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、前記命令フェッチ／発行ユニットは、１フレーム分の入力画像データのうちの最後の画素データに対する信号処理が終了した場合にゼロリセットされ、また、最後ではない画素データに対する信号処理が終了した場合にはインクリメントされるターゲット位置レジスタと、分岐命令をフェッチした場合に、前記ターゲット位置レジスタから当該分岐命令の処理対象画素データの画素位置を取得し、取得した画素位置および当該分岐命令に含まれる分岐条件コードに基づいて、前記取得した画素位置の画素データに対して信号処理を行うかどうかを判定する分岐条件判定部と、を備える画像処理プロセッサが提供される。
【００１１】
また、本願発明の一態様によれば、画像データを外部から受け取る映像入力ユニットおよび命令フェッチ／発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、前記映像入力ユニットは、入力された画素データの数をカウントする画素位置カウンタ、を備え、前記命令フェッチ／発行ユニットは、前記映像入力ユニットに画素データが入力されてから当該画素データに対する命令が実行されるまでの遅延量が格納された相対位置レジスタの情報、を含んだ命令をフェッチした場合に、当該遅延量および前記画素位置カウンタの値に基づいて、当該フェッチした命令の処理対象画素データの画素位置を算出するターゲット位置計算部と、前記相対位置レジスタの情報を含んだ命令が演算命令の場合に、前記算出された画素位置、および当該演算命令に含まれる、オペランドが格納されたレジスタの情報、に基づいて、処理対象画素データに対する演算で使用するオペランドを特定する命令デコーダと、を備える画像処理プロセッサが提供される。
【００１２】
また、本願発明の一態様によれば、命令フェッチ／発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、前記命令フェッチ／発行ユニットは、１フレーム分の入力画像データのうちの最後の画素データに対する信号処理が終了した場合にゼロリセットされ、また、最後ではない画素データに対する信号処理が終了した場合にはインクリメントされるターゲット位置レジスタと、演算命令をフェッチした場合に、前記ターゲット位置レジスタから当該演算命令の処理対象画素データの画素位置を取得し、取得した画素位置、および当該演算命令に含まれる、オペランドが格納されたレジスタの情報、に基づいて、処理対象画素データに対する演算で使用するオペランドを特定する命令デコーダと、を備える画像処理プロセッサが提供される。
【発明の効果】
【００１３】
本発明によれば、画素位置の判定処理（処理対象の画素の位置を特定する処理）を行った上で信号処理を実行する場合に、画素位置の判定処理を少ないステップ数で行い、全体の演算量を従来よりも低く抑えた画像処理プロセッサが得られる、という効果を奏する。
【００１４】
また、本発明によれば、演算自体は同じであるが演算に利用するデータが各画素位置に応じて異なる処理を、同一の命令列に置き換えることができ、この結果、分岐を用いて該当の処理を記述する必要がなくなり、コード量を少なくできる、という効果を奏する。さらに、分岐命令を伴わない演算命令で該当の処理を実行するため、性能の向上を実現できる、という効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、第１の実施の形態にかかる画像処理プロセッサの構成例を示す図。
【図２】図２は、入力画像データの画素パターン（Ｂａｙｅｒ配列）の一例を示す図。
【図３】図３は、分岐命令の構成例を示す図。
【図４】図４は、分岐条件コードの組み合わせの一例を示す図。
【図５】図５は、分岐条件コードと、２×２配列における分岐の成立／非成立のパターンの対応を示した図。
【図６】図６は、縦４画素×横４画素のパターンに対する分岐判定動作を説明するための図。
【図７】図７は、縦８画素×横８画素のパターンに対する分岐条件コードの一例を示す図。
【図８】図８は、第２の実施の形態にかかる画像処理プロセッサの構成例を示す図。
【図９】図９は、規則性を持った画素配列に対して実行する処理の一例を示す図。
【図１０】図１０は、第３の実施の形態にかかる画像処理プロセッサの構成例を示す図。
【図１１】図１１は、演算命令の構成例を示す図。
【図１２】図１２は、命令デコーダの構成例を示す図。
【図１３】図１３は、レジスタファイルの構成例を示す図。
【図１４】図１４は、レジスタファイルへのデータ格納例を示した図。
【図１５】図１５は、演算命令におけるレジスタの指定例を示した図。
【図１６】図１６は、第４の実施の形態にかかる画像処理プロセッサの構成例を示す図。
【図１７】図１７は、命令デコーダの構成例を示す図。
【図１８】図１８は、レジスタファイルの構成例を示す図。
【図１９】図１９は、命令デコーダの構成例を示す図。
【発明を実施するための形態】
【００１６】
以下に添付図面を参照して、本発明の実施の形態にかかる画像処理プロセッサを詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
【００１７】
（第１の実施の形態）
図１は、第１の実施の形態にかかる画像処理プロセッサの構成例を示す図である。本実施の形態の画像処理プロセッサは、外部から映像信号（画像データ）を受け取る映像入力ユニット１と、演算データを格納するためのデータメモリ２と、処理内容を記載した情報（命令）を格納するための命令メモリ３と、命令のフェッチおよび発行を行う命令フェッチ／発行ユニット４と、データメモリ２に対するロードストアを実行するロードストアユニット５と、命令メモリ３に格納された命令が示す演算を実施する演算ユニット６Ａおよび６Ｂと、画素位置カウンタが示す値（画素）に対する処理遅延量を示す情報を保持する相対位置レジスタ７と、命令フェッチ／発行ユニット４により発行された２つのＰＣ（プログラムカウンタ）値のうち、いずれか一方を選択するセレクタ８と、を備えている。
【００１８】
また、映像入力ユニット１は、入力されたデータ（画素データ）をカウントし、入力データの位置を示す情報（カウント値）を生成する画素位置カウンタ１１を含む。命令フェッチ／発行ユニット４は、画素位置カウンタ１１から出力されるカウント値に基づいて、次に発行する命令の処理対象データの画素位置を算出するターゲット位置計算部４１と、フェッチした命令が分岐命令の場合に分岐命令にて指定されている分岐条件に基づいて分岐判定を行う分岐条件判定部４２と、現命令のプログラムカウンタ値（ＰＣ値）を出力するプログラムカウンタ（Program  Counter）４３と、プログラムカウンタ４３からの出力値（ＰＣ値）に対して命令の長さ（Byte幅）を加算して非分岐時に選択されるＰＣ値（非分岐時次ＰＣ値）を生成する加算器４４と、プログラムカウンタ４３からの出力値に対して、分岐命令が示す分岐先相対アドレスを加算して分岐時に選択されるＰＣ値（分岐時次ＰＣ値）を生成する加算器４５と、を含んでいる。
【００１９】
また、図１に示した画像処理プロセッサは、入力された画像データに対して、画素補間、色変換、輪郭補正処理、フィルタリングなどの所定の信号処理を行う画像処理プロセッサであり、特に、画像内のある特定位置の画素に対してのみ信号処理を行う場合に、信号処理を実行する前段階で必要な、処理対象の画像データの画素位置を判定する処理、を効率的に行う。以下に、処理対象の画像データの画素位置を判定する処理（画素位置判定動作）、の詳細について図面を参照しながら説明する。なお、上記の画素補間、色変換、などの所定の信号処理は、既存の一般的な処理手順にて実行する。そのため、信号処理そのものについては、説明を省略する。
【００２０】
ここでは、画像処理プロセッサへの入力画像データが、図２に示した画素パターンのＢａｙｅｒ配列である場合の画素位置判定動作について説明する。
【００２１】
図１に示した画像処理プロセッサに対して映像信号（画像データ）が入力されると、この画像データは映像入力ユニット１にて保持される。また、画素位置カウンタ１１のカウント値は、画像データの入力に応じてインクリメントされる。すなわち、このカウント値は、最新入力画像データ（最後に入力された画像データ）の画素位置に対応した値となる。
【００２２】
命令フェッチ／発行ユニット４は、画素位置に応じた信号処理を映像入力ユニット１が外部から受け取った画像データ（入力画像データ）に対して実行する場合、画素位置カウンタ１１のカウント値（入力画像データの画素位置）および相対位置レジスタ７に格納された値と、命令中に記載された判定条件とを利用した分岐判定を行い、入力画像データに対して信号処理を実行するかどうかを判定する。さらに、命令フェッチ／発行ユニット４は、信号処理を実行する（分岐を行う）場合のＰＣ値（第１のＰＣ値）と信号処理を実行しない場合のＰＣ値（第２のＰＣ値）を生成し、生成した各ＰＣ値および信号処理を実行するかどうかの判定結果をセレクタ８へ出力する。なお、画素位置に応じた信号処理を実行する場合とは、分岐命令をフェッチした場合である。分岐命令をフェッチした場合の命令フェッチ／発行ユニット４の詳細動作については後述する。
【００２３】
セレクタ８は、命令フェッチ／発行ユニット４から受け取った判定結果に従い、入力された第１のＰＣ値または第２のＰＣ値を選択し、選択したＰＣ値を命令メモリ３内の所定の領域へ格納する。なお、判定結果が「分岐を行う（信号処理を実行する）」を示す場合、第１のＰＣ値が選択され、他の判定結果の場合には第２のＰＣ値が選択される。
【００２４】
つづいて、命令フェッチ／発行ユニット４が分岐命令をフェッチした場合の詳細動作について説明する。なお、分岐命令の構成は図３に示したとおりであり、命令コード、分岐条件コード、分岐先および相対位置レジスタ番号により構成される。「命令コード」は、命令の種別を示す情報であり、分岐命令以外の命令にも含まれる情報である。命令フェッチ／発行ユニット４は、命令をフェッチした場合、それに含まれる命令コードを確認することによりフェッチした命令が分岐命令か否かを判別する。「分岐条件コード」は、どの画素位置のデータに対する命令実行時に分岐を行うかを示す情報であり、分岐を行った場合、分岐先で指定されている信号処理が実行される。すなわち、「分岐条件コード」は、処理対象の画像データに対して信号処理を実行するかどうかを画素位置に基づいて判定するための情報である。「分岐先」は、分岐を行うと判定した場合の分岐先を示す情報である。「相対位置レジスタ番号」は、後述する相対位置レジスタ７を参照する際の参照先の情報である。
【００２５】
分岐命令をフェッチした場合、命令フェッチ／発行ユニット４では、まず、ターゲット位置計算部４１が、画素位置カウンタ１１の値（入力画素位置）および相対位置レジスタ７を参照して得られた値（相対位置）に基づいて、フェッチした分岐命令の処理対象画素データの画素位置（以降、この画素位置をターゲット位置と呼ぶ）を特定する。なお、ターゲット位置計算部４１は、分岐命令内の相対位置レジスタ番号が示す領域を参照して相対位置を得る。ここで、相対位置とは、映像入力ユニット１に入力された画素データの画素位置（画素位置カウンタ１１の値）と、その時点で命令フェッチ／発行ユニット４がフェッチした命令の処理対象となる画素データの画素位置との関係を示す情報であり、具体的には、これらの画素位置の差（遅延量）を示す情報である。別の言い方をすれば、ある画素データが画像処理プロセッサ（映像入力ユニット１）に入力されてから、この入力された画素データに対して命令が実行されるまでのずれ（遅延量）を示す情報である。従って、ターゲット位置は、次式を用いて算出される。なお、ターゲット位置は、画像中の縦方向の位置情報（ｖとする）および横方向の位置情報（ｈとする）からなる。
（ターゲット位置）＝（入力画素位置）−（相対位置）
【００２６】
次に、分岐条件判定部４２が、分岐命令コードの内容に従い、以下の処理を実行して上記ターゲット位置についての分岐判定を行う。
【００２７】
［１．命令コードが縦２画素×横２画素のパターン指定を行う分岐命令を示す場合］
（１−１）分岐条件判定部４２は、ターゲット位置計算部４１により算出されたターゲット位置（ｖ，ｈ）に対して次式（１）の４つの演算を実行し、それぞれの演算結果を繋ぎ合わせて４ｂｉｔの情報を生成する。この４ｂｉｔの情報は、ターゲット位置が２×２配列中のどの位置に該当するかを示す情報（位置情報）であり、Ｒ，ＧＲ，ＧＢ，Ｂのいずれに該当するかを示す。
v%2==0&&h%2==0,  v%2==0&&h%2!=0,  v%2!=0&&h%2==0,  v%2!=0&&h%2!=0  …（１）
【００２８】
（１−２）上記生成した４ｂｉｔと、分岐命令内の分岐条件コードに設定されている４ｂｉｔ（２×２配列における分岐パターン指定の４ｂｉｔ）との論理積を取る。
【００２９】
（１−３）そして、論理積の結果が“０”ならば「分岐条件非成立」と判定し、分岐は行わない（対応する画素データに対して信号処理を実行しない）。一方、論理積の結果が“０”以外ならば「分岐条件成立」と判定し、分岐を行う。
【００３０】
以上の手順で分岐判定を行うことにより、２×２画素ごとに規則性を有する画像データ（たとえば図２のＢａｙｅｒ配列パターンの信号）に対して、４ｂｉｔの分岐条件コードのパターン（組み合わせ）を用いた分岐指定ができる。なお、図４は分岐条件コードの組み合わせの一例を示す図である。
【００３１】
すなわち、分岐条件コードの４ｂｉｔはそれぞれ、
ｖが偶数位置かつｈが偶数位置（図２のＲ画素に相当）ならば分岐成立、
ｖが偶数位置かつｈが奇数位置（図２のＧＲ画素に相当）ならば分岐成立、
ｖが奇数位置かつｈが偶数位置（図２のＧＢ画素に相当）ならば分岐成立、
ｖが奇数位置かつｈが奇数位置（図２のＢ画素に相当）ならば分岐成立、
を表わし、分岐命令中にはこれらの条件を組み合わせて指定できる。
【００３２】
また、図５は、分岐条件コードと、２×２配列における分岐の成立／非成立のパターンの対応を示した図であり、図２に示したＢａｙｅｒ配列の画像データに対する分岐条件コードの例を示している。たとえば、Ｒ画素位置の信号のみを分岐させて信号処理を実行する場合、分岐条件コードとして“１０００”を指定する。また、ＧｒおよびＧｂ画素位置の信号を分岐させて信号処理を実行する場合には、“０１１０”を指定する。同様に、すべての画素位置の信号を分岐させる場合には、“１１１１”を指定する。
【００３３】
［２．命令コードが縦４画素×横４画素のパターン指定を行う分岐命令を示す場合］
この場合、分岐条件コードは、図６に示したように、２×２配列の画素に対する分岐パターンを示す４ｂｉｔ（図示した第１の分岐条件コードに相当）と、４×４画素配列を構成する４つの２×２画素ブロックに対する分岐パターン指定の４ｂｉｔ（図示した第２の分岐条件コードに相当）との合計８ｂｉｔからなる。そして、分岐条件判定部４２は、第１の分岐条件コードを使用した判定および第２の分岐条件コードを使用した判定を行い、それぞれの判定結果を用いて最終的な分岐判定を行う。なお、図６は、縦４画素×横４画素のパターンに対する分岐判定動作を説明するための図である。
【００３４】
分岐条件判定部４２による分岐判定動作を詳細に示すと、
（２−１）分岐条件判定部４２は、ターゲット位置計算部４１により算出されたターゲット位置（ｖ，ｈ）に対して、上述した「命令コードが縦２画素×横２画素のパターン指定を行う分岐命令を示す場合」と同様に、上記の式（１）の４つの演算を実行し、それぞれの演算結果を繋ぎ合わせて４ｂｉｔの情報を生成する。この４ｂｉｔの情報は、ターゲット位置が２×２配列中のどの位置に該当するかを示す情報である。
（２−２）上記生成した４ｂｉｔと、分岐条件コード中の第１の分岐条件コード（図５参照）との論理積をとる。
【００３５】
なお、これらの手順（２−１）および手順（２−２）は、上述した「命令コードが縦２画素×横２画素のパターン指定を行う分岐命令を示す場合」の手順（１−１）および（１−２）と同じである。
【００３６】
命令コードが縦４画素×横４画素のパターン指定を行う分岐命令を示す場合には、さらに、以下の各処理を実行する。
【００３７】
（２−３）ターゲット位置（ｖ，ｈ）に対して次式（２）の４つの演算を実行し、それぞれの演算結果を繋ぎ合わせて４ｂｉｔの情報を生成する。この４ｂｉｔの情報は、４×４配列を構成している４つの２×２配列のブロックのうちのどれに、ターゲット位置が含まれるかを示す情報である。
(v>>1)%2==0&&(h>>1)%2==0,  (v>>1)%2==0&&(h>>1)%2!=0,
(v>>1)%2!=0&&(h>>1)%2==0,  (v>>1)%2!=0&&(h>>1)%2!=0                …（２）
【００３８】
（２−４）次に、上記手順（２−３）で生成した４ｂｉｔの情報と、分岐条件コード中の第２の分岐条件コード（図５参照）との論理積を取る。
【００３９】
（２−５）上記手順（２−２）における論理積および上記手順（２−４）における論理積の結果同士でさらに論理積を取る。
【００４０】
（２−６）そして、上記手順（２−５）にて求めた論理積の結果が“０”ならば「分岐条件非成立」と判定し、“０”以外ならば「分岐条件成立」と判定する。
【００４１】
以上のような手順で分岐判定を行うことにより、図６に示したように、４×４の画素配列に対する様々なパターンでの分岐条件を８ｂｉｔで指定可能となる。
【００４２】
［３．命令コードが縦８画素×横８画素のパターン指定を行う分岐命令を示す場合］
命令コードが縦８画素×横８画素のパターン指定を行う分岐命令を示す場合には、図７に示したように、４×４配列のブロック４つに対するパターン指定の４ｂｉｔ（図示した第３の分岐条件コード）をさらに追加して分岐条件コードを拡張することにより可能である。分岐判定手順の拡張方法は、２×２配列での分岐判定手順を４×４配列での分岐判定手順に拡張する場合と同様である。すなわち、上述した手順（２−１）〜（２−５）に相当する処理を実行後、さらに、ターゲット位置（ｖ，ｈ）を２ビットシフトさせ、得られた結果（シフト後のｖ，ｈ）のそれぞれを２で除算して得られた結果から８×８配列を構成している４つの４×４配列のブロックのうちのどれに、ターゲット位置が含まれているかを示す４ｂｉｔの情報を生成する。次に、この４ｂｉｔの情報と第３の分岐条件コード（図６参照）との論理積をとる処理を実行し、最後に、この論理積の結果と上記手順（２−５）で得られた論理積の結果との論理積をとり、その結果が“０”ならば「分岐条件非成立」と判定し、“０”以外ならば「分岐条件成立」と判定する。
【００４３】
なお、同様の手法を用いることにより、さらに大きなサイズのパターン（２n画素×２n画素のパターン，ｎ＝４，５，６，…）のパターン指定を行うことができる。
【００４４】
このように、本実施の形態の画像処理プロセッサにおいて、命令フェッチ／発行ユニット４は、分岐命令をフェッチした場合、分岐命令に含まれる相対位置レジスタ番号が示す領域に格納された値（相対位置）、および映像入力ユニット内の画素位置カウンタの値（最新の入力画像データの画素位置）に基づいて、当該分岐命令の処理対象画像データの画素位置（ターゲット位置）を特定し、さらに、特定したターゲット位置の信号に対して信号処理が必要かどうかの判定（分岐判定）を、分岐命令に記述された分岐条件コードを用いて行うこととした。これにより、分岐条件の判定を行うために実行する命令数を従来よりも少なくすることができ、全体の演算量を低く抑えた画像処理プロセッサが得られる。
【００４５】
また、分岐判定処理では、判定対象の画素の配列パターンが２画素×２画素より大きな２n画素×２n画素パターン（n=2,3,4,…）の場合、ターゲット位置を１ビットずつシフトさせながら２画素×２画素のパターンに対する分岐判定と同様の判定処理を複数回にわたって実行し、最終的な分岐判定を行うこととした。これにより、判定対象のパターンに含まれている画素数よりも少ないビット数で、判定対象のパターンに含まれているすべての画素に対する分岐条件を指定できる。
【００４６】
（第２の実施の形態）
図８は、第２の実施の形態にかかる画像処理プロセッサの構成例を示す図である。本実施の形態の画像処理プロセッサは、第１の実施の形態の画像処理プロセッサの相対位置レジスタ７および命令フェッチ／発行ユニット４を命令フェッチ／発行ユニット４ａに置き換えたものである。ここでは、第１の実施の形態の画像処理プロセッサと同じ構成要素に同じ符号を付して説明を省略する。また、命令フェッチ／発行ユニット４ａは、命令フェッチ／発行ユニット４のターゲット位置計算部４１および分岐条件判定部４２をターゲット位置レジスタ４６および分岐条件判定部４２ａに置き換えた構成となっている。なお、命令フェッチ／発行ユニット４ａと命令フェッチ／発行ユニット４との違いは、分岐条件判定部４２がターゲット位置情報をターゲット位置レジスタ４６から取得する点である。
【００４７】
本実施の形態の画像処理プロセッサは、入力画像データ１フレーム分のデータをデータメモリ２に配置し、このデータメモリ２に保存されている各画素値について一連の処理を繰り返す。
【００４８】
例えば、ある画素について周辺画素からの線形補間を行う場合、補間前の画素値をデータメモリ２の、補間前の画像フレームを格納したデータ領域から取得し、補間後、別領域に補間後のデータ（補間後の画像フレーム）として保存する。この場合、１つの画素について処理している間は、処理中の画素位置は不変であり、１つの画素について補間処理が終了した後、画素位置（ターゲット位置）はインクリメントされる。そのため、本実施の形態の画像処理プロセッサでは、分岐条件判定部４２ａから参照可能なターゲット位置レジスタ４６を備えた構成を採用し、このターゲット位置レジスタ４６に保存されている値（画素位置の情報）は、１つの画素について補間処理が終了した場合に、専用の命令を用いてインクリメントまたはゼロリセットされるようにする。すなわち、１画素フレーム内の最後の画素に対する補間処理が終了した場合にゼロリセットし、最後の画素以外の画素に対する補間処理が終了した場合にはインクリメントする。命令フェッチ／発行ユニット４ａでは、フェッチした命令が分岐命令である場合、分岐条件判定部４２ａが、現在の画素位置の情報をターゲット位置レジスタ４６から取得し、取得したターゲット位置情報を用いて、第１の実施の形態で示した分岐判定を行う。分岐判定処理の詳細は、第１の実施の形態で説明したとおりである。
【００４９】
このような構成を採用した場合にも、上述した第１の実施の形態と同様の効果が得られる。また、分岐命令に相対位置レジスタ番号を含める必要がなくなる。
【００５０】
（第３の実施の形態）
以上の第１および第２の実施の形態では、処理対象の画像データの画素位置を判定する処理を効率的に行い、分岐命令を実行する際の演算量を低く抑える技術について説明したが、演算命令についても、同様の手法を利用して効率化が実現可能である。そこで、本実施の形態以降においては、演算命令を効率的に実行可能な画像処理プロセッサについて説明する。
【００５１】
画像処理では、図２に示したＢａｙｅｒ配列のような、規則性を持った画素配列を入力として、画像処理を行い、図９のように各画素に対して、演算手順は同一（図９の例では、画素位置に関係なく、入力Ｉｎ[ｖ][ｈ]に対する加算処理を行う）で、利用する変数（ＢＡＳＥ＿Ｒ，ＢＡＳＥ＿ＧＲ，ＢＡＳＥ＿ＧＢ，ＢＡＳＥ＿Ｂ）が違うだけの処理を実行するケースがある。このような、図９に示した処理を行う場合の動作は、従来、以下に示した手順で実行されていた。
【００５２】
（手順１）ｖを取得し、ｖ％２を演算する。
（手順２）手順１での演算結果が、“０”と等価であるかをテストする。
（手順３）ｈを取得し、ｈ％２を演算する。
（手順４）手順３での演算結果が、“０”と等価であるかをテストする。
（手順５）手順２と手順４におけるテスト結果の論理積を演算する。
（手順６）手順５での演算結果が成り立っていない場合には、手順７に分岐する。
（手順７）レジスタからＩｎ[ｖ][ｈ]、および、ＢＡＳＥ＿Ｒを取得し、これらを加算した後、手順１９に分岐する。
（手順８）手順３での演算結果が、“１”と等価であるかをテストする。
（手順９）手順２と手順８におけるテスト結果の論理積を演算する。
（手順１０）手順９での演算結果が成り立っていない場合には、手順１２に分岐する。
（手順１１）レジスタからＩｎ[ｖ][ｈ]、および、ＢＡＳＥ＿ＧＲを取得し、これらを加算した後、手順１９に分岐する。
（手順１２）手順１での演算結果が、“１”と等価であるかをテストする。
（手順１３）手順４と手順１２におけるテスト結果の論理積を演算する。
（手順１４）手順１３での演算結果が成り立っていない場合には、手順１６に分岐する。
（手順１５）レジスタからＩｎ[ｖ][ｈ]、および、ＢＡＳＥ＿ＧＢを取得し、これらを加算した後、手順１９に分岐する。
（手順１６）手順８と手順１２におけるテスト結果の論理積を演算する。
（手順１７）手順１６での演算結果が成り立っていない場合には、手順１９に分岐する。
（手順１８）レジスタからＩｎ[ｖ][ｈ]、および、ＢＡＳＥ＿Ｂを取得し、これらを加算した後、手順１９に分岐する。
（手順１９）図９に示した処理を終了し、次の命令を実行する。
【００５３】
以上のように、従来の手順により図９の処理を実行する場合、各画素において演算内容自体は同一（Ｉｎ[ｖ][ｈ]と画素位置に応じたＢＡＳＥ値の加算）であるにもかかわらず、分岐判定などのため命令量が多くなってしまっていた（上記の手順１，２，３，４，５，６，８，９，１０，１２，１３，１４，１６，１７の命令）。また、分岐判定のために多くの命令を実行しなければならず、処理の実行効率を低下させてしまっていた（上記の手順１，２，３，４，５，６，８，９，１０，１２，１３，１４，１６，１７の命令実行）。また、参照するレジスタが違うだけで、同一の演算であるにもかかわらず、それぞれを命令コード列中に配置する必要があり、命令コード量が増大してしまっていた（上記、手順７，１１，１５，１８の命令）。
【００５４】
そこで、本実施の形態の画像処理プロセッサでは、以下に示すような構成および動作を採用することにより、上記の問題点を改善し、演算命令を効率的に実行する。
【００５５】
図１０は、第３の実施の形態にかかる画像処理プロセッサの構成例を示す図である。本実施の形態の画像処理プロセッサは、映像入力ユニット１、データメモリ２、命令メモリ３、命令フェッチ／発行ユニット４ｂ、演算ユニット６、相対位置レジスタ７およびレジスタファイル９を備え、第１の実施の形態で説明した画像処理プロセッサが備えていたものと同じ構成要素には同一の符号を付している。本実施の形態では、第１の実施の形態の画像処理プロセッサと異なる構成要素の動作を中心に説明を行う。なお、演算ユニット６は、第１の実施の形態の画像処理プロセッサが備えていた演算ユニット６Ａ，６Ｂと同じものであり、これらの演算ユニットの数は各実施の形態にかかる画像処理プロセッサの特徴的な動作の実現に影響を与えない（画像処理プロセッサの特徴的な動作は演算ユニットの数に依存しない）。そのため、図１０では、簡略化のために単一の演算ユニット６のみを備えた構成としている。
【００５６】
命令フェッチ／発行ユニット４ｂは、ターゲット位置計算部４１、プログラムカウンタ４３、加算器４４および命令デコーダ４７を備え、演算命令をフェッチした場合に、対応する演算で使用するオペランドが格納されたレジスタを特定する。なお、命令デコーダ４７以外の構成要素は、第１の実施の形態の画像処理プロセッサが備えていた構成要素の中の同一の符号が付されたものと同じである。
【００５７】
命令デコーダ４７は、入力された命令列をデコードする。また、デコードする命令が、図１１に示した命令のように、オペランドのレジスタ番号と、そのアクセスタイプ（処理対象画像データの画素位置によって別レジスタを参照するか、否か）についての指定を持つ命令の場合、図１２に示したような処理を実行して、レジスタ番号およびレジスタバンク（Bank）番号をデコードし、これを用いてレジスタファイルへアクセスする。なお、図１２は、命令デコーダ４７の構成例を示す図であり、図３で示した分岐命令と同様に、相対位置レジスタ番号を含んでいる。この相対位置レジスタ番号はターゲット位置計算部４１に渡され、ターゲット位置計算部４１は、この相対位置レジスタを利用して、第１の実施の形態で説明したように、ターゲット位置を算出する。
【００５８】
命令デコーダ４７の説明に戻り、命令デコーダ４７は、図１２に示した構成をとる。また、レジスタファイル９へのアクセス処理では、図１２に示したように、レジスタ番号を得るための動作として、以下の各処理（ステップ）を実行する。
【００５９】
（ステップ１）「命令中にて指定のレジスタ番号＋１」を算出する（オペランドレジスタ番号に１を加える）。
（ステップ２）ターゲット位置計算部４１で算出されたターゲット位置のｈ成分（ｈ位置）が奇数であるか否かを算出する。
（ステップ３）ステップ２の結果と、命令中のアクセスタイプ（オペランドレジスタアクセスタイプ）の論理積を取る。
（ステップ４）ステップ３の結果が真ならば、“１”を、そうでなければ、命令中にて指定のレジスタ番号をそのまま、レジスタ番号とする。
【００６０】
また、レジスタバンク番号を得るための動作として、「ターゲット位置計算部４１で算出されたターゲット位置のｖ成分（ｖ位置）に対し、２でのモジュロ演算を実行し、演算結果をレジスタバンク番号とする処理」を実行する。
【００６１】
図１３は、レジスタファイル９の構成例を示す図である。図示したように、レジスタファイル９は、２つのバンクで構成されており、レジスタファイル９に格納されたデータの中から、命令デコーダ４７が上記動作を実行して得られたレジスタ番号およびレジスタバンク番号に基づいて特定されるデータをレジスタ値として出力する。すなわち、各バンクに対応付けられたマルチプレクサ（ＭＵＸ）は、命令デコーダ４７から入力されたレジスタ番号に対応するレジスタに格納されたデータを選択して出力し、また、これらのマルチプレクサ（説明の便宜上、以下「第１のマルチプレクサ」と呼ぶ）とは異なる他のマルチプレクサ（以下「第２のマルチプレクサ」と呼ぶ）が、第１のマルチプレクサ各々からの出力データのうち、命令デコーダ４７から入力されたレジスタバンク番号に対応するデータを選択し、最終的な選択データ（オペランド）として演算ユニット６に向けて出力する。
【００６２】
図１４は、図９で示した演算を実行する場合におけるレジスタファイル９へのデータ格納例を示した図であり、図９で示した演算で利用するデータのうち、ＢＡＳＥ＿Ｒをバンク［０］のレジスタ番号１に格納し、ＢＡＳＥ＿ＧＲをバンク［０］のレジスタ番号２に格納し、ＢＡＳＥ＿ＧＢをバンク［１］のレジスタ番号１に格納し、ＢＡＳＥ＿Ｂをバンク［１］のレジスタ番号２に格納した場合について示している。
【００６３】
また、図１５は、演算命令におけるレジスタの指定例を示した図であり、オペランドレジスタ番号としてレジスタ１（Reg[1]）を指定し、オペランドレジスタアクセスタイプとしてタイプ１（Type=1）を指定した場合について示している。
【００６４】
図１４および図１５に示した例に従った動作では、
ｖが偶数，ｈが偶数（Ｒ画素位置）の場合、
レジスタ番号が１，レジスタバンク番号が０
ｖが偶数，ｈが奇数（ＧＲ画素位置）の場合、
レジスタ番号が２，レジスタバンク番号が０
ｖが奇数，ｈが偶数（ＧＢ画素位置）の場合、
レジスタ番号が１，レジスタバンク番号が１
ｖが奇数，ｈが奇数（Ｂ画素位置）の場合、
レジスタ番号が２，レジスタバンク番号が１
となる。
【００６５】
演算ユニット６は、上記の手順で選択・出力されたデータをレジスタファイル９から受け取り、命令フェッチ／発行ユニット４ｂ（命令デコーダ４７）から発行された命令に従った演算処理を実行する。
【００６６】
このように、本実施の形態の画像処理プロセッサにおいて、命令フェッチ／発行ユニット４ｂは、演算命令をフェッチした場合、演算命令に含まれる相対位置レジスタ番号が示す領域に格納された値（相対位置）、および映像入力ユニット内の画素位置カウンタの値（最新の入力画像データの画素位置）に基づいて、当該演算命令の処理対象画像データの画素位置（ターゲット位置）を特定し、さらに、特定したターゲット位置の信号に対する演算処理で使用するデータ（オペランド）を、演算命令に記述されたオペランドのレジスタ番号およびアクセスタイプに基づいて特定することとした。これにより、演算自体は同じであるが演算に利用するデータが各画素位置に応じて異なる処理を、同一の命令列に置き換えることができる。この結果、分岐を用いて該当の処理を記述する必要がなくなり、コード量を少なくできる。また、分岐命令を伴わない演算命令で該当の処理を実行するため、性能を向上させることができる。さらに、共通の命令列を画素毎の処理として命令コード中に含めるため、命令コード量を少なくできる。
【００６７】
なお、第１の実施の形態にかかる画像処理プロセッサに対して、本実施の形態にかかる画像処理プロセッサの特徴的な動作を実現するための構成要素を追加することも可能である。すなわち、図１に示した構成の画像処理プロセッサに対し、図１０で示した命令デコーダ４７とレジスタファイル９を追加して、第１の実施の形態にかかる画像処理プロセッサの特徴的な動作と本実施の形態にかかる画像処理プロセッサの特徴的な動作の双方を実行可能な画像処理プロセッサを実現することも可能である。
【００６８】
（第４の実施の形態）
図１６は、第４の実施の形態にかかる画像処理プロセッサの構成例を示す図である。この画像処理プロセッサは、第３の実施の形態にかかる画像処理プロセッサ（図１０参照）の相対位置レジスタ７および命令フェッチ／発行ユニット４ｂに代えて命令フェッチ／発行ユニット４ｃを備えた構成をとり、命令フェッチ／発行ユニット４ｃは、ターゲット位置計算部４１に代えて、第２の実施の形態にかかる画像処理プロセッサ（図８参照）が備えていたものと同じターゲット位置レジスタ４６を備えている。
【００６９】
すなわち、本実施の形態にかかる画像処理プロセッサは、ターゲット位置の取得方法が第３の実施の形態にかかる画像処理プロセッサと異なり、これ以外の動作については、同一である。また、ターゲット位置の取得方法は、第２の実施の形態にかかる画像処理プロセッサにおける取得方法と同一である。
【００７０】
このように、第２の実施の形態にかかる画像処理プロセッサと同一の方法を利用してターゲット位置を取得する構成を採用することが可能であり、この場合にも、第３の実施の形態にかかる画像処理プロセッサと同様の効果を得ることができる。
【００７１】
本実施の形態で示した構成を採用した場合、ターゲット位置レジスタ４６の値を命令によって切り換える必要があるが、同一の画素位置のデータを処理する命令列の実行が連続する場合、それに先立って切り替えを行うので、その後続の各命令においては、画素位置を示すための情報を命令中に保持する必要がない。このため、各命令のフィールドは、その他の情報のために有効に活用することができる。
【００７２】
なお、第３および第４の実施の形態では、図２のＢａｙｅｒ配列のように２×２のパターンにおいて、画素色（画素位置）毎に別の値を使って演算を行う処理を実現する画像処理プロセッサについて説明を行った。しかしながら、画素色のパターンについては、Ｂａｙｅｒ配列の２×２のパターンのみではなく、２n×２nのパターン（n=2,3,4,…）なども存在する。そこで、２n×２nで繰り返しとなる画素色の配列パターンに対応する構成について、以下に示す。
【００７３】
２n×２nで繰り返しとなる画素色の配列パターンに対応するための画像処理プロセッサの構成としては、既に説明した図１０または図１６に示したような、処理対象の画素位置を取得できる構成において、図１７に示した構成の命令デコーダを採用し、図１８に示したレジスタファイルを利用する構成、または、図１９に示した構成の命令デコーダを採用しバンク分けされていないレジスタファイルを利用する（バンク分けされたレジスタファイルを持ってもよいが、図１９の命令デコーダを用いている場合には、画素色毎に別の値を参照するため、必ずしもバンク分けされている必要はない）構成、が考えられる。
【００７４】
図１７の命令デコーダは、図示したように、レジスタ番号を得るための処理として、入力されたターゲット位置のうちのｈ位置と、２n−１のマスクを取る。ここで、２nは、画素配列パターンの横方向サイズである。たとえば横方向サイズが８(＝２3)であれば、２3−１＝７となる。入力されたｈ位置とこれをマスクする事により、入力されたｈ位置から画素配列パターン中での横方向の位置を得る。これを、命令中にて指定されたレジスタ番号と足し合わせることによって、指定されたレジスタ番号に画素配列パターン中での横方向の位置を足し合わせた値を取得する。そして、この取得した値と、命令にて指定されているレジスタ番号を、命令にて指定されているレジスタへのアクセスタイプに従い選択してレジスタ番号を得る。これにより、命令デコーダは必要に応じて、命令によって指定されたレジスタ番号と、指定されたレジスタ番号を画素位置と画素配列パターンに応じて変更した番号と、を選択して出力できる。
【００７５】
ｖ位置についても同様に、ｖ方向のサイズ−１（２n−１）とマスクを取ることによって、レジスタバンク番号を得る。
【００７６】
図１８は、図１７の命令デコーダから出力されるレジスタ番号と、レジスタバンク番号とを受け、特定のレジスタを参照できるように構成されたレジスタファイルの構成例である。図１７の命令デコーダと組み合わせる場合、上記の図１３で示したレジスタファイルは、指定されうる配列パターンのｖ方向のサイズに応じ、そのｖ方向サイズと同じ数のレジスタバンク（２n×２nの配列パターンなら２n個）を持つ必要がある。この場合のレジスタファイルの構成を示したものが図１８である。
【００７７】
図１９の命令デコーダは、図１２や図１７の命令デコーダと構成を変え、レジスタバンク番号を変える代わりに、レジスタ番号を、ｖ方向の位置に応じても、変更するように構成した例である。図示したように、図１９の命令デコーダでは、まず、図１７の命令デコーダと同様に、処理するデータの画素配列パターン中の横方向位置を、ｈ位置を画素配列パターンの横方向サイズ−１でマスクして求め、求めた値を命令にて指定されたレジスタ番号に加算する（第１の加算結果）。また、ｖ位置を画素配列パターンの縦方向サイズ−１でマスクし、処理するデータの画素配列パターン中の縦方向位置を求め、求めた値を画素配列パターンの横方向のサイズの２の冪乗数（２2×２2パターンなら２、２3×２3パターンなら３となる）でシフトし、得られた値を上記第１の加算結果に加算して第２の加算結果を得る。これにより、２n×２nの画素配列パターンであれば、第２の加算結果として、“演算命令で指定されたレジスタ番号＋０”〜“演算命令で指定されたレジスタ番号＋２n×２n−１”の範囲の値が得られる。
【００７８】
たとえば、画素パターンが４×４パターンの場合においては、ｈ座標が７，ｖ座標が５のとき、ターゲット位置に応じて求められる上記の第２の加算結果（以下「算出レジスタ番号」と記載する）は、次式（３）のようになる。なお、式（３）では、命令中にて指定のレジスタ番号を「指定レジスタ番号」と記載している。
（算出レジスタ番号）
＝指定レジスタ番号＋｛７＆（４−１）｝＋｛５＆（４−１）｝＜＜２
＝指定レジスタ番号＋７＆３＋（５＆３）＜＜２
＝指定レジスタ番号＋３＋１＜＜２
＝指定レジスタ番号＋３＋４                                        …（３）
【００７９】
同様に、
ｈ座標が４，ｖ座標が４のとき、（算出レジスタ番号）＝指定レジスタ番号＋０＋０
ｈ座標が５，ｖ座標が４のとき、（算出レジスタ番号）＝指定レジスタ番号＋１＋０
ｈ座標が６，ｖ座標が４のとき、（算出レジスタ番号）＝指定レジスタ番号＋２＋０
ｈ座標が７，ｖ座標が４のとき、（算出レジスタ番号）＝指定レジスタ番号＋３＋０
ｈ座標が４，ｖ座標が５のとき、（算出レジスタ番号）＝指定レジスタ番号＋０＋４
ｈ座標が５，ｖ座標が５のとき、（算出レジスタ番号）＝指定レジスタ番号＋１＋４
ｈ座標が６，ｖ座標が５のとき、（算出レジスタ番号）＝指定レジスタ番号＋２＋４
ｈ座標が７，ｖ座標が５のとき、（算出レジスタ番号）＝指定レジスタ番号＋３＋４
となる。
【００８０】
このように、４×４の配列パターンであれば、処理対象のデータの画素位置が、画素配列パターン内のどの位置に該当しているかに応じ、“指定レジスタ番号（命令にて指定されたレジスタ番号）＋０”〜“４×４−１”の範囲となるように加算され、算出レジスタ番号が得られる。そして、アクセスタイプの指定に応じて、算出レジスタ番号か、命令にて指定されたレジスタ番号かを選択することによって、画素位置に応じて参照するレジスタを変更することができる。
【００８１】
図１９に示した構成を採用した場合、レジスタバンクによって参照するレジスタを切り替える必要がないので、レジスタファイルを複数のバンクで構成する必要がなくなる。
【符号の説明】
【００８２】
１  映像入力ユニット、２  データメモリ、３  命令メモリ、４，４ａ，４ｂ，４ｃ  命令フェッチ／発行ユニット、５  ロードストアユニット、６，６Ａ，６Ｂ  演算ユニット、７  相対位置レジスタ、８  セレクタ、９  レジスタファイル、４１  ターゲット位置計算部、４２，４２ａ  分岐条件判定部、４３  プログラムカウンタ（Program  Counter）、４４，４５  加算器、４６  ターゲット位置レジスタ、４７  命令デコーダ。
【図１】
2010134891.tif 000003
【図２】
2010134891.tif 000004
【図３】
2010134891.tif 000005
【図４】
2010134891.tif 000006
【図５】
2010134891.tif 000007
【図６】
2010134891.tif 000008
【図７】
2010134891.tif 000009
【図８】
2010134891.tif 000010
【図９】
2010134891.tif 000011
【図１０】
2010134891.tif 000012
【図１１】
2010134891.tif 000013
【図１２】
2010134891.tif 000014
【図１３】
2010134891.tif 000015
【図１４】
2010134891.tif 000016
【図１５】
2010134891.tif 000017
【図１６】
2010134891.tif 000018
【図１７】
2010134891.tif 000019
【図１８】
2010134891.tif 000020
【図１９】
2010134891.tif 000021