JP2010134891A - 画像処理プロセッサ - Google Patents

画像処理プロセッサ Download PDF

Info

Publication number
JP2010134891A
JP2010134891A JP2009028994A JP2009028994A JP2010134891A JP 2010134891 A JP2010134891 A JP 2010134891A JP 2009028994 A JP2009028994 A JP 2009028994A JP 2009028994 A JP2009028994 A JP 2009028994A JP 2010134891 A JP2010134891 A JP 2010134891A
Authority
JP
Japan
Prior art keywords
instruction
pixel
branch
register
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.)
Granted
Application number
JP2009028994A
Other languages
English (en)
Other versions
JP4901891B2 (ja
Inventor
Yasutaka Tanabe
靖貴 田邉
Takashi Miyamori
高 宮森
Shunichi Ishiwatari
俊一 石渡
Katsuyuki Kimura
克行 木村
Takahisa Wada
卓久 和田
Keiri Nakanishi
圭里 中西
Masato Sumiyoshi
正人 住吉
Ryuji Haneda
隆二 羽田
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009028994A priority Critical patent/JP4901891B2/ja
Priority to US12/540,798 priority patent/US8730250B2/en
Publication of JP2010134891A publication Critical patent/JP2010134891A/ja
Application granted granted Critical
Publication of JP4901891B2 publication Critical patent/JP4901891B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Picture Signal Circuits (AREA)
  • Color Television Image Signal Generators (AREA)

Abstract

【課題】画素位置に応じた信号処理を実行するための画素位置の判定処理を従来よりも少ない演算量で効率的に行う画像処理プロセッサを提供すること。
【解決手段】本発明は、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、映像入力ユニット1は、画素位置カウンタ11を備え、命令フェッチ/発行ユニット4は、遅延量が格納された相対位置レジスタの情報を含んだ命令をフェッチした場合に、遅延量および画素位置カウンタの値に基づいて、処理対象画素データの画素位置を算出するターゲット位置計算部41と、相対位置レジスタの情報を含んだ命令が分岐命令の場合に、算出された画素位置および分岐命令に含まれる分岐条件コードに基づいて、画素位置の画素データに対して信号処理を行うかどうかを判定する分岐条件判定部42と、を備える。
【選択図】図1

Description

本発明は、CMOSセンサ等から入力された画像データに対して所定の信号処理を行う画像処理プロセッサに関する。
画像処理プロセッサが入力画像データに対して実行する各種信号処理の中には、処理対象の画像データの画素位置に応じて実行される処理が存在する。たとえば、2×2画素の配列(パターン)が左上から順に「R」,「GR」,「GB」,「B」となっているBayer配列の画像データを入力画像データとして受け取り、各画素に対応する値(画像データ)に対して、その画素位置および色に応じた処理を行う、といったケースがある。より具体的な例を示すと、GR,GB,B画素の位置において、周囲のR画素の値を利用してそれぞれの位置を補間したR画素で埋め、一色の画像とする場合がある。この場合、画像処理プロセッサでは、各画素の位置を判定し、判定結果に応じて補間処理を行う。すなわち、画素位置の判定処理を行うことによりR画素かどうかを判定し、R画素以外のG画素(GR,GB画素)およびB画素であれば補間処理を行う。この一連の処理(画素位置の判定処理、および判定結果に応じて行う補間処理)は、以下の手順で命令を実行することにより行われる。
(手順1)処理対象画素の画像中の縦位置(以下「v」と記載する)および横位置(以下「h」と記載する)を汎用レジスタにロードさせる命令を実行する。
(手順2)現在の処理スレッドの画像入力からの相対処理位置を汎用レジスタにロードさせる命令を実行する。
(手順3)手順1および手順2で取得した値同士で演算を行うことにより処理スレッドの画素位置を求め、得られた画素位置を汎用レジスタにロードさせる命令を実行する。
(手順4)手順3で求めた画素位置について、そのvが偶数位置かつhが奇数位置かどうかを調べさせる命令を実行する。
(手順5)手順3で求めた画素位置について、そのvが奇数位置かどうかを調べさせる命令を実行する。
(手順6)手順4および手順5の結果の論理和を取らせる命令を実行する。
(手順7)手順6の結果が正しければ、実行する信号処理(補間処理)が記載された位置へ分岐する。一方、正しくなければ分岐を行わない(その結果、補間処理も行われない)ように指示する命令を実行する。
なお、GR,GB,B画素の位置において、周囲のR画素の値を利用してそれぞれの位置を補間したR画素で埋める場合の補間処理の手順を示したが、ある特定位置の画素に対してのみ信号処理を行う場合には、信号処理を行う前に必要な分岐判定処理として上記の手順1〜手順6に相当する処理が必要となる。
以上のように、従来の画像処理プロセッサでは、ある特定位置の画素に対して信号処理を行うかどうかを判定(分岐判定)するために、その前段階の処理(処理対象の画素の位置を特定し、信号処理を実行するか否かを判定する処理)として上記の手順1〜手順6の各命令を実行する必要があった。すなわち、多くの命令を実行する必要があり、全体の演算量が多くなっていた。一方、画像処理プロセッサでは、より大きなサイズの画像データを扱うようになってきており、演算量の削減が課題とされている。したがって、信号処理を効率的に行い、かかる演算量を削減することが要求されている。
ここで、下記特許文献1には、処理対象の位置(座標)を判定し、判定結果に応じて各種処理を実行する技術、具体的には、入力データ中に含まれる3次元座標情報を判定し、判定結果に応じた描示処理を行う三次元グラフィックアクセラレーション用のプロセッサが記載されている。しかしながら、このプロセッサでは、演算量の削減については考慮されていない。
特開平7−49961号公報
本発明は、画素位置に応じて異なる信号処理を実行する際に必要な画素位置の判定処理を従来よりも少ない演算量で効率的に行い、全体の演算量を低く抑えることが可能な画像処理プロセッサを提供することを目的とする。
本願発明の一態様によれば、画像データを外部から受け取る映像入力ユニットおよび命令フェッチ/発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、前記映像入力ユニットは、入力された画素データの数をカウントする画素位置カウンタ、を備え、前記命令フェッチ/発行ユニットは、前記映像入力ユニットに画素データが入力されてから当該画素データに対する命令が実行されるまでの遅延量が格納された相対位置レジスタの情報、を含んだ命令をフェッチした場合に、当該遅延量および前記画素位置カウンタの値に基づいて、当該フェッチした命令の処理対象画素データの画素位置を算出するターゲット位置計算部と、前記相対位置レジスタの情報を含んだ命令が分岐命令の場合に、前記算出された画素位置および当該分岐命令に含まれる分岐条件コードに基づいて、当該画素位置の画素データに対して信号処理を行うかどうかを判定する分岐条件判定部と、を備える画像処理プロセッサが提供される。
また、本願発明の一態様によれば、命令フェッチ/発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、前記命令フェッチ/発行ユニットは、1フレーム分の入力画像データのうちの最後の画素データに対する信号処理が終了した場合にゼロリセットされ、また、最後ではない画素データに対する信号処理が終了した場合にはインクリメントされるターゲット位置レジスタと、分岐命令をフェッチした場合に、前記ターゲット位置レジスタから当該分岐命令の処理対象画素データの画素位置を取得し、取得した画素位置および当該分岐命令に含まれる分岐条件コードに基づいて、前記取得した画素位置の画素データに対して信号処理を行うかどうかを判定する分岐条件判定部と、を備える画像処理プロセッサが提供される。
また、本願発明の一態様によれば、画像データを外部から受け取る映像入力ユニットおよび命令フェッチ/発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、前記映像入力ユニットは、入力された画素データの数をカウントする画素位置カウンタ、を備え、前記命令フェッチ/発行ユニットは、前記映像入力ユニットに画素データが入力されてから当該画素データに対する命令が実行されるまでの遅延量が格納された相対位置レジスタの情報、を含んだ命令をフェッチした場合に、当該遅延量および前記画素位置カウンタの値に基づいて、当該フェッチした命令の処理対象画素データの画素位置を算出するターゲット位置計算部と、前記相対位置レジスタの情報を含んだ命令が演算命令の場合に、前記算出された画素位置、および当該演算命令に含まれる、オペランドが格納されたレジスタの情報、に基づいて、処理対象画素データに対する演算で使用するオペランドを特定する命令デコーダと、を備える画像処理プロセッサが提供される。
また、本願発明の一態様によれば、命令フェッチ/発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、前記命令フェッチ/発行ユニットは、1フレーム分の入力画像データのうちの最後の画素データに対する信号処理が終了した場合にゼロリセットされ、また、最後ではない画素データに対する信号処理が終了した場合にはインクリメントされるターゲット位置レジスタと、演算命令をフェッチした場合に、前記ターゲット位置レジスタから当該演算命令の処理対象画素データの画素位置を取得し、取得した画素位置、および当該演算命令に含まれる、オペランドが格納されたレジスタの情報、に基づいて、処理対象画素データに対する演算で使用するオペランドを特定する命令デコーダと、を備える画像処理プロセッサが提供される。
本発明によれば、画素位置の判定処理(処理対象の画素の位置を特定する処理)を行った上で信号処理を実行する場合に、画素位置の判定処理を少ないステップ数で行い、全体の演算量を従来よりも低く抑えた画像処理プロセッサが得られる、という効果を奏する。
また、本発明によれば、演算自体は同じであるが演算に利用するデータが各画素位置に応じて異なる処理を、同一の命令列に置き換えることができ、この結果、分岐を用いて該当の処理を記述する必要がなくなり、コード量を少なくできる、という効果を奏する。さらに、分岐命令を伴わない演算命令で該当の処理を実行するため、性能の向上を実現できる、という効果を奏する。
図1は、第1の実施の形態にかかる画像処理プロセッサの構成例を示す図。 図2は、入力画像データの画素パターン(Bayer配列)の一例を示す図。 図3は、分岐命令の構成例を示す図。 図4は、分岐条件コードの組み合わせの一例を示す図。 図5は、分岐条件コードと、2×2配列における分岐の成立/非成立のパターンの対応を示した図。 図6は、縦4画素×横4画素のパターンに対する分岐判定動作を説明するための図。 図7は、縦8画素×横8画素のパターンに対する分岐条件コードの一例を示す図。 図8は、第2の実施の形態にかかる画像処理プロセッサの構成例を示す図。 図9は、規則性を持った画素配列に対して実行する処理の一例を示す図。 図10は、第3の実施の形態にかかる画像処理プロセッサの構成例を示す図。 図11は、演算命令の構成例を示す図。 図12は、命令デコーダの構成例を示す図。 図13は、レジスタファイルの構成例を示す図。 図14は、レジスタファイルへのデータ格納例を示した図。 図15は、演算命令におけるレジスタの指定例を示した図。 図16は、第4の実施の形態にかかる画像処理プロセッサの構成例を示す図。 図17は、命令デコーダの構成例を示す図。 図18は、レジスタファイルの構成例を示す図。 図19は、命令デコーダの構成例を示す図。
以下に添付図面を参照して、本発明の実施の形態にかかる画像処理プロセッサを詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
(第1の実施の形態)
図1は、第1の実施の形態にかかる画像処理プロセッサの構成例を示す図である。本実施の形態の画像処理プロセッサは、外部から映像信号(画像データ)を受け取る映像入力ユニット1と、演算データを格納するためのデータメモリ2と、処理内容を記載した情報(命令)を格納するための命令メモリ3と、命令のフェッチおよび発行を行う命令フェッチ/発行ユニット4と、データメモリ2に対するロードストアを実行するロードストアユニット5と、命令メモリ3に格納された命令が示す演算を実施する演算ユニット6Aおよび6Bと、画素位置カウンタが示す値(画素)に対する処理遅延量を示す情報を保持する相対位置レジスタ7と、命令フェッチ/発行ユニット4により発行された2つのPC(プログラムカウンタ)値のうち、いずれか一方を選択するセレクタ8と、を備えている。
また、映像入力ユニット1は、入力されたデータ(画素データ)をカウントし、入力データの位置を示す情報(カウント値)を生成する画素位置カウンタ11を含む。命令フェッチ/発行ユニット4は、画素位置カウンタ11から出力されるカウント値に基づいて、次に発行する命令の処理対象データの画素位置を算出するターゲット位置計算部41と、フェッチした命令が分岐命令の場合に分岐命令にて指定されている分岐条件に基づいて分岐判定を行う分岐条件判定部42と、現命令のプログラムカウンタ値(PC値)を出力するプログラムカウンタ(Program Counter)43と、プログラムカウンタ43からの出力値(PC値)に対して命令の長さ(Byte幅)を加算して非分岐時に選択されるPC値(非分岐時次PC値)を生成する加算器44と、プログラムカウンタ43からの出力値に対して、分岐命令が示す分岐先相対アドレスを加算して分岐時に選択されるPC値(分岐時次PC値)を生成する加算器45と、を含んでいる。
また、図1に示した画像処理プロセッサは、入力された画像データに対して、画素補間、色変換、輪郭補正処理、フィルタリングなどの所定の信号処理を行う画像処理プロセッサであり、特に、画像内のある特定位置の画素に対してのみ信号処理を行う場合に、信号処理を実行する前段階で必要な、処理対象の画像データの画素位置を判定する処理、を効率的に行う。以下に、処理対象の画像データの画素位置を判定する処理(画素位置判定動作)、の詳細について図面を参照しながら説明する。なお、上記の画素補間、色変換、などの所定の信号処理は、既存の一般的な処理手順にて実行する。そのため、信号処理そのものについては、説明を省略する。
ここでは、画像処理プロセッサへの入力画像データが、図2に示した画素パターンのBayer配列である場合の画素位置判定動作について説明する。
図1に示した画像処理プロセッサに対して映像信号(画像データ)が入力されると、この画像データは映像入力ユニット1にて保持される。また、画素位置カウンタ11のカウント値は、画像データの入力に応じてインクリメントされる。すなわち、このカウント値は、最新入力画像データ(最後に入力された画像データ)の画素位置に対応した値となる。
命令フェッチ/発行ユニット4は、画素位置に応じた信号処理を映像入力ユニット1が外部から受け取った画像データ(入力画像データ)に対して実行する場合、画素位置カウンタ11のカウント値(入力画像データの画素位置)および相対位置レジスタ7に格納された値と、命令中に記載された判定条件とを利用した分岐判定を行い、入力画像データに対して信号処理を実行するかどうかを判定する。さらに、命令フェッチ/発行ユニット4は、信号処理を実行する(分岐を行う)場合のPC値(第1のPC値)と信号処理を実行しない場合のPC値(第2のPC値)を生成し、生成した各PC値および信号処理を実行するかどうかの判定結果をセレクタ8へ出力する。なお、画素位置に応じた信号処理を実行する場合とは、分岐命令をフェッチした場合である。分岐命令をフェッチした場合の命令フェッチ/発行ユニット4の詳細動作については後述する。
セレクタ8は、命令フェッチ/発行ユニット4から受け取った判定結果に従い、入力された第1のPC値または第2のPC値を選択し、選択したPC値を命令メモリ3内の所定の領域へ格納する。なお、判定結果が「分岐を行う(信号処理を実行する)」を示す場合、第1のPC値が選択され、他の判定結果の場合には第2のPC値が選択される。
つづいて、命令フェッチ/発行ユニット4が分岐命令をフェッチした場合の詳細動作について説明する。なお、分岐命令の構成は図3に示したとおりであり、命令コード、分岐条件コード、分岐先および相対位置レジスタ番号により構成される。「命令コード」は、命令の種別を示す情報であり、分岐命令以外の命令にも含まれる情報である。命令フェッチ/発行ユニット4は、命令をフェッチした場合、それに含まれる命令コードを確認することによりフェッチした命令が分岐命令か否かを判別する。「分岐条件コード」は、どの画素位置のデータに対する命令実行時に分岐を行うかを示す情報であり、分岐を行った場合、分岐先で指定されている信号処理が実行される。すなわち、「分岐条件コード」は、処理対象の画像データに対して信号処理を実行するかどうかを画素位置に基づいて判定するための情報である。「分岐先」は、分岐を行うと判定した場合の分岐先を示す情報である。「相対位置レジスタ番号」は、後述する相対位置レジスタ7を参照する際の参照先の情報である。
分岐命令をフェッチした場合、命令フェッチ/発行ユニット4では、まず、ターゲット位置計算部41が、画素位置カウンタ11の値(入力画素位置)および相対位置レジスタ7を参照して得られた値(相対位置)に基づいて、フェッチした分岐命令の処理対象画素データの画素位置(以降、この画素位置をターゲット位置と呼ぶ)を特定する。なお、ターゲット位置計算部41は、分岐命令内の相対位置レジスタ番号が示す領域を参照して相対位置を得る。ここで、相対位置とは、映像入力ユニット1に入力された画素データの画素位置(画素位置カウンタ11の値)と、その時点で命令フェッチ/発行ユニット4がフェッチした命令の処理対象となる画素データの画素位置との関係を示す情報であり、具体的には、これらの画素位置の差(遅延量)を示す情報である。別の言い方をすれば、ある画素データが画像処理プロセッサ(映像入力ユニット1)に入力されてから、この入力された画素データに対して命令が実行されるまでのずれ(遅延量)を示す情報である。従って、ターゲット位置は、次式を用いて算出される。なお、ターゲット位置は、画像中の縦方向の位置情報(vとする)および横方向の位置情報(hとする)からなる。
(ターゲット位置)=(入力画素位置)−(相対位置)
次に、分岐条件判定部42が、分岐命令コードの内容に従い、以下の処理を実行して上記ターゲット位置についての分岐判定を行う。
[1.命令コードが縦2画素×横2画素のパターン指定を行う分岐命令を示す場合]
(1−1)分岐条件判定部42は、ターゲット位置計算部41により算出されたターゲット位置(v,h)に対して次式(1)の4つの演算を実行し、それぞれの演算結果を繋ぎ合わせて4bitの情報を生成する。この4bitの情報は、ターゲット位置が2×2配列中のどの位置に該当するかを示す情報(位置情報)であり、R,GR,GB,Bのいずれに該当するかを示す。
v%2==0&&h%2==0, v%2==0&&h%2!=0, v%2!=0&&h%2==0, v%2!=0&&h%2!=0 …(1)
(1−2)上記生成した4bitと、分岐命令内の分岐条件コードに設定されている4bit(2×2配列における分岐パターン指定の4bit)との論理積を取る。
(1−3)そして、論理積の結果が“0”ならば「分岐条件非成立」と判定し、分岐は行わない(対応する画素データに対して信号処理を実行しない)。一方、論理積の結果が“0”以外ならば「分岐条件成立」と判定し、分岐を行う。
以上の手順で分岐判定を行うことにより、2×2画素ごとに規則性を有する画像データ(たとえば図2のBayer配列パターンの信号)に対して、4bitの分岐条件コードのパターン(組み合わせ)を用いた分岐指定ができる。なお、図4は分岐条件コードの組み合わせの一例を示す図である。
すなわち、分岐条件コードの4bitはそれぞれ、
vが偶数位置かつhが偶数位置(図2のR画素に相当)ならば分岐成立、
vが偶数位置かつhが奇数位置(図2のGR画素に相当)ならば分岐成立、
vが奇数位置かつhが偶数位置(図2のGB画素に相当)ならば分岐成立、
vが奇数位置かつhが奇数位置(図2のB画素に相当)ならば分岐成立、
を表わし、分岐命令中にはこれらの条件を組み合わせて指定できる。
また、図5は、分岐条件コードと、2×2配列における分岐の成立/非成立のパターンの対応を示した図であり、図2に示したBayer配列の画像データに対する分岐条件コードの例を示している。たとえば、R画素位置の信号のみを分岐させて信号処理を実行する場合、分岐条件コードとして“1000”を指定する。また、GrおよびGb画素位置の信号を分岐させて信号処理を実行する場合には、“0110”を指定する。同様に、すべての画素位置の信号を分岐させる場合には、“1111”を指定する。
[2.命令コードが縦4画素×横4画素のパターン指定を行う分岐命令を示す場合]
この場合、分岐条件コードは、図6に示したように、2×2配列の画素に対する分岐パターンを示す4bit(図示した第1の分岐条件コードに相当)と、4×4画素配列を構成する4つの2×2画素ブロックに対する分岐パターン指定の4bit(図示した第2の分岐条件コードに相当)との合計8bitからなる。そして、分岐条件判定部42は、第1の分岐条件コードを使用した判定および第2の分岐条件コードを使用した判定を行い、それぞれの判定結果を用いて最終的な分岐判定を行う。なお、図6は、縦4画素×横4画素のパターンに対する分岐判定動作を説明するための図である。
分岐条件判定部42による分岐判定動作を詳細に示すと、
(2−1)分岐条件判定部42は、ターゲット位置計算部41により算出されたターゲット位置(v,h)に対して、上述した「命令コードが縦2画素×横2画素のパターン指定を行う分岐命令を示す場合」と同様に、上記の式(1)の4つの演算を実行し、それぞれの演算結果を繋ぎ合わせて4bitの情報を生成する。この4bitの情報は、ターゲット位置が2×2配列中のどの位置に該当するかを示す情報である。
(2−2)上記生成した4bitと、分岐条件コード中の第1の分岐条件コード(図5参照)との論理積をとる。
なお、これらの手順(2−1)および手順(2−2)は、上述した「命令コードが縦2画素×横2画素のパターン指定を行う分岐命令を示す場合」の手順(1−1)および(1−2)と同じである。
命令コードが縦4画素×横4画素のパターン指定を行う分岐命令を示す場合には、さらに、以下の各処理を実行する。
(2−3)ターゲット位置(v,h)に対して次式(2)の4つの演算を実行し、それぞれの演算結果を繋ぎ合わせて4bitの情報を生成する。この4bitの情報は、4×4配列を構成している4つの2×2配列のブロックのうちのどれに、ターゲット位置が含まれるかを示す情報である。
(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 …(2)
(2−4)次に、上記手順(2−3)で生成した4bitの情報と、分岐条件コード中の第2の分岐条件コード(図5参照)との論理積を取る。
(2−5)上記手順(2−2)における論理積および上記手順(2−4)における論理積の結果同士でさらに論理積を取る。
(2−6)そして、上記手順(2−5)にて求めた論理積の結果が“0”ならば「分岐条件非成立」と判定し、“0”以外ならば「分岐条件成立」と判定する。
以上のような手順で分岐判定を行うことにより、図6に示したように、4×4の画素配列に対する様々なパターンでの分岐条件を8bitで指定可能となる。
[3.命令コードが縦8画素×横8画素のパターン指定を行う分岐命令を示す場合]
命令コードが縦8画素×横8画素のパターン指定を行う分岐命令を示す場合には、図7に示したように、4×4配列のブロック4つに対するパターン指定の4bit(図示した第3の分岐条件コード)をさらに追加して分岐条件コードを拡張することにより可能である。分岐判定手順の拡張方法は、2×2配列での分岐判定手順を4×4配列での分岐判定手順に拡張する場合と同様である。すなわち、上述した手順(2−1)〜(2−5)に相当する処理を実行後、さらに、ターゲット位置(v,h)を2ビットシフトさせ、得られた結果(シフト後のv,h)のそれぞれを2で除算して得られた結果から8×8配列を構成している4つの4×4配列のブロックのうちのどれに、ターゲット位置が含まれているかを示す4bitの情報を生成する。次に、この4bitの情報と第3の分岐条件コード(図6参照)との論理積をとる処理を実行し、最後に、この論理積の結果と上記手順(2−5)で得られた論理積の結果との論理積をとり、その結果が“0”ならば「分岐条件非成立」と判定し、“0”以外ならば「分岐条件成立」と判定する。
なお、同様の手法を用いることにより、さらに大きなサイズのパターン(2n画素×2n画素のパターン,n=4,5,6,…)のパターン指定を行うことができる。
このように、本実施の形態の画像処理プロセッサにおいて、命令フェッチ/発行ユニット4は、分岐命令をフェッチした場合、分岐命令に含まれる相対位置レジスタ番号が示す領域に格納された値(相対位置)、および映像入力ユニット内の画素位置カウンタの値(最新の入力画像データの画素位置)に基づいて、当該分岐命令の処理対象画像データの画素位置(ターゲット位置)を特定し、さらに、特定したターゲット位置の信号に対して信号処理が必要かどうかの判定(分岐判定)を、分岐命令に記述された分岐条件コードを用いて行うこととした。これにより、分岐条件の判定を行うために実行する命令数を従来よりも少なくすることができ、全体の演算量を低く抑えた画像処理プロセッサが得られる。
また、分岐判定処理では、判定対象の画素の配列パターンが2画素×2画素より大きな2n画素×2n画素パターン(n=2,3,4,…)の場合、ターゲット位置を1ビットずつシフトさせながら2画素×2画素のパターンに対する分岐判定と同様の判定処理を複数回にわたって実行し、最終的な分岐判定を行うこととした。これにより、判定対象のパターンに含まれている画素数よりも少ないビット数で、判定対象のパターンに含まれているすべての画素に対する分岐条件を指定できる。
(第2の実施の形態)
図8は、第2の実施の形態にかかる画像処理プロセッサの構成例を示す図である。本実施の形態の画像処理プロセッサは、第1の実施の形態の画像処理プロセッサの相対位置レジスタ7および命令フェッチ/発行ユニット4を命令フェッチ/発行ユニット4aに置き換えたものである。ここでは、第1の実施の形態の画像処理プロセッサと同じ構成要素に同じ符号を付して説明を省略する。また、命令フェッチ/発行ユニット4aは、命令フェッチ/発行ユニット4のターゲット位置計算部41および分岐条件判定部42をターゲット位置レジスタ46および分岐条件判定部42aに置き換えた構成となっている。なお、命令フェッチ/発行ユニット4aと命令フェッチ/発行ユニット4との違いは、分岐条件判定部42がターゲット位置情報をターゲット位置レジスタ46から取得する点である。
本実施の形態の画像処理プロセッサは、入力画像データ1フレーム分のデータをデータメモリ2に配置し、このデータメモリ2に保存されている各画素値について一連の処理を繰り返す。
例えば、ある画素について周辺画素からの線形補間を行う場合、補間前の画素値をデータメモリ2の、補間前の画像フレームを格納したデータ領域から取得し、補間後、別領域に補間後のデータ(補間後の画像フレーム)として保存する。この場合、1つの画素について処理している間は、処理中の画素位置は不変であり、1つの画素について補間処理が終了した後、画素位置(ターゲット位置)はインクリメントされる。そのため、本実施の形態の画像処理プロセッサでは、分岐条件判定部42aから参照可能なターゲット位置レジスタ46を備えた構成を採用し、このターゲット位置レジスタ46に保存されている値(画素位置の情報)は、1つの画素について補間処理が終了した場合に、専用の命令を用いてインクリメントまたはゼロリセットされるようにする。すなわち、1画素フレーム内の最後の画素に対する補間処理が終了した場合にゼロリセットし、最後の画素以外の画素に対する補間処理が終了した場合にはインクリメントする。命令フェッチ/発行ユニット4aでは、フェッチした命令が分岐命令である場合、分岐条件判定部42aが、現在の画素位置の情報をターゲット位置レジスタ46から取得し、取得したターゲット位置情報を用いて、第1の実施の形態で示した分岐判定を行う。分岐判定処理の詳細は、第1の実施の形態で説明したとおりである。
このような構成を採用した場合にも、上述した第1の実施の形態と同様の効果が得られる。また、分岐命令に相対位置レジスタ番号を含める必要がなくなる。
(第3の実施の形態)
以上の第1および第2の実施の形態では、処理対象の画像データの画素位置を判定する処理を効率的に行い、分岐命令を実行する際の演算量を低く抑える技術について説明したが、演算命令についても、同様の手法を利用して効率化が実現可能である。そこで、本実施の形態以降においては、演算命令を効率的に実行可能な画像処理プロセッサについて説明する。
画像処理では、図2に示したBayer配列のような、規則性を持った画素配列を入力として、画像処理を行い、図9のように各画素に対して、演算手順は同一(図9の例では、画素位置に関係なく、入力In[v][h]に対する加算処理を行う)で、利用する変数(BASE_R,BASE_GR,BASE_GB,BASE_B)が違うだけの処理を実行するケースがある。このような、図9に示した処理を行う場合の動作は、従来、以下に示した手順で実行されていた。
(手順1)vを取得し、v%2を演算する。
(手順2)手順1での演算結果が、“0”と等価であるかをテストする。
(手順3)hを取得し、h%2を演算する。
(手順4)手順3での演算結果が、“0”と等価であるかをテストする。
(手順5)手順2と手順4におけるテスト結果の論理積を演算する。
(手順6)手順5での演算結果が成り立っていない場合には、手順7に分岐する。
(手順7)レジスタからIn[v][h]、および、BASE_Rを取得し、これらを加算した後、手順19に分岐する。
(手順8)手順3での演算結果が、“1”と等価であるかをテストする。
(手順9)手順2と手順8におけるテスト結果の論理積を演算する。
(手順10)手順9での演算結果が成り立っていない場合には、手順12に分岐する。
(手順11)レジスタからIn[v][h]、および、BASE_GRを取得し、これらを加算した後、手順19に分岐する。
(手順12)手順1での演算結果が、“1”と等価であるかをテストする。
(手順13)手順4と手順12におけるテスト結果の論理積を演算する。
(手順14)手順13での演算結果が成り立っていない場合には、手順16に分岐する。
(手順15)レジスタからIn[v][h]、および、BASE_GBを取得し、これらを加算した後、手順19に分岐する。
(手順16)手順8と手順12におけるテスト結果の論理積を演算する。
(手順17)手順16での演算結果が成り立っていない場合には、手順19に分岐する。
(手順18)レジスタからIn[v][h]、および、BASE_Bを取得し、これらを加算した後、手順19に分岐する。
(手順19)図9に示した処理を終了し、次の命令を実行する。
以上のように、従来の手順により図9の処理を実行する場合、各画素において演算内容自体は同一(In[v][h]と画素位置に応じたBASE値の加算)であるにもかかわらず、分岐判定などのため命令量が多くなってしまっていた(上記の手順1,2,3,4,5,6,8,9,10,12,13,14,16,17の命令)。また、分岐判定のために多くの命令を実行しなければならず、処理の実行効率を低下させてしまっていた(上記の手順1,2,3,4,5,6,8,9,10,12,13,14,16,17の命令実行)。また、参照するレジスタが違うだけで、同一の演算であるにもかかわらず、それぞれを命令コード列中に配置する必要があり、命令コード量が増大してしまっていた(上記、手順7,11,15,18の命令)。
そこで、本実施の形態の画像処理プロセッサでは、以下に示すような構成および動作を採用することにより、上記の問題点を改善し、演算命令を効率的に実行する。
図10は、第3の実施の形態にかかる画像処理プロセッサの構成例を示す図である。本実施の形態の画像処理プロセッサは、映像入力ユニット1、データメモリ2、命令メモリ3、命令フェッチ/発行ユニット4b、演算ユニット6、相対位置レジスタ7およびレジスタファイル9を備え、第1の実施の形態で説明した画像処理プロセッサが備えていたものと同じ構成要素には同一の符号を付している。本実施の形態では、第1の実施の形態の画像処理プロセッサと異なる構成要素の動作を中心に説明を行う。なお、演算ユニット6は、第1の実施の形態の画像処理プロセッサが備えていた演算ユニット6A,6Bと同じものであり、これらの演算ユニットの数は各実施の形態にかかる画像処理プロセッサの特徴的な動作の実現に影響を与えない(画像処理プロセッサの特徴的な動作は演算ユニットの数に依存しない)。そのため、図10では、簡略化のために単一の演算ユニット6のみを備えた構成としている。
命令フェッチ/発行ユニット4bは、ターゲット位置計算部41、プログラムカウンタ43、加算器44および命令デコーダ47を備え、演算命令をフェッチした場合に、対応する演算で使用するオペランドが格納されたレジスタを特定する。なお、命令デコーダ47以外の構成要素は、第1の実施の形態の画像処理プロセッサが備えていた構成要素の中の同一の符号が付されたものと同じである。
命令デコーダ47は、入力された命令列をデコードする。また、デコードする命令が、図11に示した命令のように、オペランドのレジスタ番号と、そのアクセスタイプ(処理対象画像データの画素位置によって別レジスタを参照するか、否か)についての指定を持つ命令の場合、図12に示したような処理を実行して、レジスタ番号およびレジスタバンク(Bank)番号をデコードし、これを用いてレジスタファイルへアクセスする。なお、図12は、命令デコーダ47の構成例を示す図であり、図3で示した分岐命令と同様に、相対位置レジスタ番号を含んでいる。この相対位置レジスタ番号はターゲット位置計算部41に渡され、ターゲット位置計算部41は、この相対位置レジスタを利用して、第1の実施の形態で説明したように、ターゲット位置を算出する。
命令デコーダ47の説明に戻り、命令デコーダ47は、図12に示した構成をとる。また、レジスタファイル9へのアクセス処理では、図12に示したように、レジスタ番号を得るための動作として、以下の各処理(ステップ)を実行する。
(ステップ1)「命令中にて指定のレジスタ番号+1」を算出する(オペランドレジスタ番号に1を加える)。
(ステップ2)ターゲット位置計算部41で算出されたターゲット位置のh成分(h位置)が奇数であるか否かを算出する。
(ステップ3)ステップ2の結果と、命令中のアクセスタイプ(オペランドレジスタアクセスタイプ)の論理積を取る。
(ステップ4)ステップ3の結果が真ならば、“1”を、そうでなければ、命令中にて指定のレジスタ番号をそのまま、レジスタ番号とする。
また、レジスタバンク番号を得るための動作として、「ターゲット位置計算部41で算出されたターゲット位置のv成分(v位置)に対し、2でのモジュロ演算を実行し、演算結果をレジスタバンク番号とする処理」を実行する。
図13は、レジスタファイル9の構成例を示す図である。図示したように、レジスタファイル9は、2つのバンクで構成されており、レジスタファイル9に格納されたデータの中から、命令デコーダ47が上記動作を実行して得られたレジスタ番号およびレジスタバンク番号に基づいて特定されるデータをレジスタ値として出力する。すなわち、各バンクに対応付けられたマルチプレクサ(MUX)は、命令デコーダ47から入力されたレジスタ番号に対応するレジスタに格納されたデータを選択して出力し、また、これらのマルチプレクサ(説明の便宜上、以下「第1のマルチプレクサ」と呼ぶ)とは異なる他のマルチプレクサ(以下「第2のマルチプレクサ」と呼ぶ)が、第1のマルチプレクサ各々からの出力データのうち、命令デコーダ47から入力されたレジスタバンク番号に対応するデータを選択し、最終的な選択データ(オペランド)として演算ユニット6に向けて出力する。
図14は、図9で示した演算を実行する場合におけるレジスタファイル9へのデータ格納例を示した図であり、図9で示した演算で利用するデータのうち、BASE_Rをバンク[0]のレジスタ番号1に格納し、BASE_GRをバンク[0]のレジスタ番号2に格納し、BASE_GBをバンク[1]のレジスタ番号1に格納し、BASE_Bをバンク[1]のレジスタ番号2に格納した場合について示している。
また、図15は、演算命令におけるレジスタの指定例を示した図であり、オペランドレジスタ番号としてレジスタ1(Reg[1])を指定し、オペランドレジスタアクセスタイプとしてタイプ1(Type=1)を指定した場合について示している。
図14および図15に示した例に従った動作では、
vが偶数,hが偶数(R画素位置)の場合、
レジスタ番号が1,レジスタバンク番号が0
vが偶数,hが奇数(GR画素位置)の場合、
レジスタ番号が2,レジスタバンク番号が0
vが奇数,hが偶数(GB画素位置)の場合、
レジスタ番号が1,レジスタバンク番号が1
vが奇数,hが奇数(B画素位置)の場合、
レジスタ番号が2,レジスタバンク番号が1
となる。
演算ユニット6は、上記の手順で選択・出力されたデータをレジスタファイル9から受け取り、命令フェッチ/発行ユニット4b(命令デコーダ47)から発行された命令に従った演算処理を実行する。
このように、本実施の形態の画像処理プロセッサにおいて、命令フェッチ/発行ユニット4bは、演算命令をフェッチした場合、演算命令に含まれる相対位置レジスタ番号が示す領域に格納された値(相対位置)、および映像入力ユニット内の画素位置カウンタの値(最新の入力画像データの画素位置)に基づいて、当該演算命令の処理対象画像データの画素位置(ターゲット位置)を特定し、さらに、特定したターゲット位置の信号に対する演算処理で使用するデータ(オペランド)を、演算命令に記述されたオペランドのレジスタ番号およびアクセスタイプに基づいて特定することとした。これにより、演算自体は同じであるが演算に利用するデータが各画素位置に応じて異なる処理を、同一の命令列に置き換えることができる。この結果、分岐を用いて該当の処理を記述する必要がなくなり、コード量を少なくできる。また、分岐命令を伴わない演算命令で該当の処理を実行するため、性能を向上させることができる。さらに、共通の命令列を画素毎の処理として命令コード中に含めるため、命令コード量を少なくできる。
なお、第1の実施の形態にかかる画像処理プロセッサに対して、本実施の形態にかかる画像処理プロセッサの特徴的な動作を実現するための構成要素を追加することも可能である。すなわち、図1に示した構成の画像処理プロセッサに対し、図10で示した命令デコーダ47とレジスタファイル9を追加して、第1の実施の形態にかかる画像処理プロセッサの特徴的な動作と本実施の形態にかかる画像処理プロセッサの特徴的な動作の双方を実行可能な画像処理プロセッサを実現することも可能である。
(第4の実施の形態)
図16は、第4の実施の形態にかかる画像処理プロセッサの構成例を示す図である。この画像処理プロセッサは、第3の実施の形態にかかる画像処理プロセッサ(図10参照)の相対位置レジスタ7および命令フェッチ/発行ユニット4bに代えて命令フェッチ/発行ユニット4cを備えた構成をとり、命令フェッチ/発行ユニット4cは、ターゲット位置計算部41に代えて、第2の実施の形態にかかる画像処理プロセッサ(図8参照)が備えていたものと同じターゲット位置レジスタ46を備えている。
すなわち、本実施の形態にかかる画像処理プロセッサは、ターゲット位置の取得方法が第3の実施の形態にかかる画像処理プロセッサと異なり、これ以外の動作については、同一である。また、ターゲット位置の取得方法は、第2の実施の形態にかかる画像処理プロセッサにおける取得方法と同一である。
このように、第2の実施の形態にかかる画像処理プロセッサと同一の方法を利用してターゲット位置を取得する構成を採用することが可能であり、この場合にも、第3の実施の形態にかかる画像処理プロセッサと同様の効果を得ることができる。
本実施の形態で示した構成を採用した場合、ターゲット位置レジスタ46の値を命令によって切り換える必要があるが、同一の画素位置のデータを処理する命令列の実行が連続する場合、それに先立って切り替えを行うので、その後続の各命令においては、画素位置を示すための情報を命令中に保持する必要がない。このため、各命令のフィールドは、その他の情報のために有効に活用することができる。
なお、第3および第4の実施の形態では、図2のBayer配列のように2×2のパターンにおいて、画素色(画素位置)毎に別の値を使って演算を行う処理を実現する画像処理プロセッサについて説明を行った。しかしながら、画素色のパターンについては、Bayer配列の2×2のパターンのみではなく、2n×2nのパターン(n=2,3,4,…)なども存在する。そこで、2n×2nで繰り返しとなる画素色の配列パターンに対応する構成について、以下に示す。
n×2nで繰り返しとなる画素色の配列パターンに対応するための画像処理プロセッサの構成としては、既に説明した図10または図16に示したような、処理対象の画素位置を取得できる構成において、図17に示した構成の命令デコーダを採用し、図18に示したレジスタファイルを利用する構成、または、図19に示した構成の命令デコーダを採用しバンク分けされていないレジスタファイルを利用する(バンク分けされたレジスタファイルを持ってもよいが、図19の命令デコーダを用いている場合には、画素色毎に別の値を参照するため、必ずしもバンク分けされている必要はない)構成、が考えられる。
図17の命令デコーダは、図示したように、レジスタ番号を得るための処理として、入力されたターゲット位置のうちのh位置と、2n−1のマスクを取る。ここで、2nは、画素配列パターンの横方向サイズである。たとえば横方向サイズが8(=23)であれば、23−1=7となる。入力されたh位置とこれをマスクする事により、入力されたh位置から画素配列パターン中での横方向の位置を得る。これを、命令中にて指定されたレジスタ番号と足し合わせることによって、指定されたレジスタ番号に画素配列パターン中での横方向の位置を足し合わせた値を取得する。そして、この取得した値と、命令にて指定されているレジスタ番号を、命令にて指定されているレジスタへのアクセスタイプに従い選択してレジスタ番号を得る。これにより、命令デコーダは必要に応じて、命令によって指定されたレジスタ番号と、指定されたレジスタ番号を画素位置と画素配列パターンに応じて変更した番号と、を選択して出力できる。
v位置についても同様に、v方向のサイズ−1(2n−1)とマスクを取ることによって、レジスタバンク番号を得る。
図18は、図17の命令デコーダから出力されるレジスタ番号と、レジスタバンク番号とを受け、特定のレジスタを参照できるように構成されたレジスタファイルの構成例である。図17の命令デコーダと組み合わせる場合、上記の図13で示したレジスタファイルは、指定されうる配列パターンのv方向のサイズに応じ、そのv方向サイズと同じ数のレジスタバンク(2n×2nの配列パターンなら2n個)を持つ必要がある。この場合のレジスタファイルの構成を示したものが図18である。
図19の命令デコーダは、図12や図17の命令デコーダと構成を変え、レジスタバンク番号を変える代わりに、レジスタ番号を、v方向の位置に応じても、変更するように構成した例である。図示したように、図19の命令デコーダでは、まず、図17の命令デコーダと同様に、処理するデータの画素配列パターン中の横方向位置を、h位置を画素配列パターンの横方向サイズ−1でマスクして求め、求めた値を命令にて指定されたレジスタ番号に加算する(第1の加算結果)。また、v位置を画素配列パターンの縦方向サイズ−1でマスクし、処理するデータの画素配列パターン中の縦方向位置を求め、求めた値を画素配列パターンの横方向のサイズの2の冪乗数(22×22パターンなら2、23×23パターンなら3となる)でシフトし、得られた値を上記第1の加算結果に加算して第2の加算結果を得る。これにより、2n×2nの画素配列パターンであれば、第2の加算結果として、“演算命令で指定されたレジスタ番号+0”〜“演算命令で指定されたレジスタ番号+2n×2n−1”の範囲の値が得られる。
たとえば、画素パターンが4×4パターンの場合においては、h座標が7,v座標が5のとき、ターゲット位置に応じて求められる上記の第2の加算結果(以下「算出レジスタ番号」と記載する)は、次式(3)のようになる。なお、式(3)では、命令中にて指定のレジスタ番号を「指定レジスタ番号」と記載している。
(算出レジスタ番号)
=指定レジスタ番号+{7&(4−1)}+{5&(4−1)}<<2
=指定レジスタ番号+7&3+(5&3)<<2
=指定レジスタ番号+3+1<<2
=指定レジスタ番号+3+4 …(3)
同様に、
h座標が4,v座標が4のとき、(算出レジスタ番号)=指定レジスタ番号+0+0
h座標が5,v座標が4のとき、(算出レジスタ番号)=指定レジスタ番号+1+0
h座標が6,v座標が4のとき、(算出レジスタ番号)=指定レジスタ番号+2+0
h座標が7,v座標が4のとき、(算出レジスタ番号)=指定レジスタ番号+3+0
h座標が4,v座標が5のとき、(算出レジスタ番号)=指定レジスタ番号+0+4
h座標が5,v座標が5のとき、(算出レジスタ番号)=指定レジスタ番号+1+4
h座標が6,v座標が5のとき、(算出レジスタ番号)=指定レジスタ番号+2+4
h座標が7,v座標が5のとき、(算出レジスタ番号)=指定レジスタ番号+3+4
となる。
このように、4×4の配列パターンであれば、処理対象のデータの画素位置が、画素配列パターン内のどの位置に該当しているかに応じ、“指定レジスタ番号(命令にて指定されたレジスタ番号)+0”〜“4×4−1”の範囲となるように加算され、算出レジスタ番号が得られる。そして、アクセスタイプの指定に応じて、算出レジスタ番号か、命令にて指定されたレジスタ番号かを選択することによって、画素位置に応じて参照するレジスタを変更することができる。
図19に示した構成を採用した場合、レジスタバンクによって参照するレジスタを切り替える必要がないので、レジスタファイルを複数のバンクで構成する必要がなくなる。
1 映像入力ユニット、2 データメモリ、3 命令メモリ、4,4a,4b,4c 命令フェッチ/発行ユニット、5 ロードストアユニット、6,6A,6B 演算ユニット、7 相対位置レジスタ、8 セレクタ、9 レジスタファイル、41 ターゲット位置計算部、42,42a 分岐条件判定部、43 プログラムカウンタ(Program Counter)、44,45 加算器、46 ターゲット位置レジスタ、47 命令デコーダ。

Claims (5)

  1. 画像データを外部から受け取る映像入力ユニットおよび命令フェッチ/発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、
    前記映像入力ユニットは、
    入力された画素データの数をカウントする画素位置カウンタ、
    を備え、
    前記命令フェッチ/発行ユニットは、
    前記映像入力ユニットに画素データが入力されてから当該画素データに対する命令が実行されるまでの遅延量が格納された相対位置レジスタの情報、を含んだ命令をフェッチした場合に、当該遅延量および前記画素位置カウンタの値に基づいて、当該フェッチした命令の処理対象画素データの画素位置を算出するターゲット位置計算部と、
    前記相対位置レジスタの情報を含んだ命令が分岐命令の場合に、前記算出された画素位置および当該分岐命令に含まれる分岐条件コードに基づいて、当該画素位置の画素データに対して信号処理を行うかどうかを判定する分岐条件判定部と、
    を備えることを特徴とする画像処理プロセッサ。
  2. 命令フェッチ/発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、
    前記命令フェッチ/発行ユニットは、
    1フレーム分の入力画像データのうちの最後の画素データに対する信号処理が終了した場合にゼロリセットされ、また、最後ではない画素データに対する信号処理が終了した場合にはインクリメントされるターゲット位置レジスタと、
    分岐命令をフェッチした場合に、前記ターゲット位置レジスタから当該分岐命令の処理対象画素データの画素位置を取得し、取得した画素位置および当該分岐命令に含まれる分岐条件コードに基づいて、前記取得した画素位置の画素データに対して信号処理を行うかどうかを判定する分岐条件判定部と、
    を備えることを特徴とする画像処理プロセッサ。
  3. 前記分岐条件判定部は、
    n×2n画素(nは正の整数)ごとに規則性を有する画像を処理対象として判定処理を行うこととし、nが2以上の場合における判定処理では、シフト量を1〜n−1ビットの範囲で1ビットずつ変化させながら、前記画素位置の縦方向の位置情報vおよび横方向の位置情報hを同一ビット数だけ右方向へビットシフトさせて合計n−1個のシフト後の画素位置を求め、さらに、シフト前の画素位置およびn−1個のシフト後の画素位置それぞれについての判定を前記分岐条件コードに基づいて個別に行い、得られたn個の判定結果に基づいて最終的な判定を行うことを特徴とする請求項1または2に記載の画像処理プロセッサ。
  4. 画像データを外部から受け取る映像入力ユニットおよび命令フェッチ/発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、
    前記映像入力ユニットは、
    入力された画素データの数をカウントする画素位置カウンタ、
    を備え、
    前記命令フェッチ/発行ユニットは、
    前記映像入力ユニットに画素データが入力されてから当該画素データに対する命令が実行されるまでの遅延量が格納された相対位置レジスタの情報、を含んだ命令をフェッチした場合に、当該遅延量および前記画素位置カウンタの値に基づいて、当該フェッチした命令の処理対象画素データの画素位置を算出するターゲット位置計算部と、
    前記相対位置レジスタの情報を含んだ命令が演算命令の場合に、前記算出された画素位置、および当該演算命令に含まれる、オペランドが格納されたレジスタの情報、に基づいて、処理対象画素データに対する演算で使用するオペランドを特定する命令デコーダと、
    を備えることを特徴とする画像処理プロセッサ。
  5. 命令フェッチ/発行ユニットを備え、入力画像データに対して所定の信号処理を行う画像処理プロセッサであって、
    前記命令フェッチ/発行ユニットは、
    1フレーム分の入力画像データのうちの最後の画素データに対する信号処理が終了した場合にゼロリセットされ、また、最後ではない画素データに対する信号処理が終了した場合にはインクリメントされるターゲット位置レジスタと、
    演算命令をフェッチした場合に、前記ターゲット位置レジスタから当該演算命令の処理対象画素データの画素位置を取得し、取得した画素位置、および当該演算命令に含まれる、オペランドが格納されたレジスタの情報、に基づいて、処理対象画素データに対する演算で使用するオペランドを特定する命令デコーダと、
    を備えることを特徴とする画像処理プロセッサ。
JP2009028994A 2008-11-05 2009-02-10 画像処理プロセッサ Expired - Fee Related JP4901891B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009028994A JP4901891B2 (ja) 2008-11-05 2009-02-10 画像処理プロセッサ
US12/540,798 US8730250B2 (en) 2008-11-05 2009-08-13 Image processor and command processing method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008284211 2008-11-05
JP2008284211 2008-11-05
JP2009028994A JP4901891B2 (ja) 2008-11-05 2009-02-10 画像処理プロセッサ

Publications (2)

Publication Number Publication Date
JP2010134891A true JP2010134891A (ja) 2010-06-17
JP4901891B2 JP4901891B2 (ja) 2012-03-21

Family

ID=42130917

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009028994A Expired - Fee Related JP4901891B2 (ja) 2008-11-05 2009-02-10 画像処理プロセッサ

Country Status (2)

Country Link
US (1) US8730250B2 (ja)
JP (1) JP4901891B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5380102B2 (ja) * 2009-02-16 2014-01-08 株式会社東芝 マイクロプロセッサ
JP5185242B2 (ja) * 2009-12-04 2013-04-17 株式会社東芝 コンパイル装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007080186A (ja) * 2005-09-16 2007-03-29 Canon Inc データ処理装置、及びその制御方法
WO2007116560A1 (ja) * 2006-03-30 2007-10-18 Nec Corporation 並列画像処理システムの制御方法および装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05328384A (ja) 1992-05-20 1993-12-10 Fujitsu Ltd 画像データ変換回路
US5379071A (en) * 1992-12-16 1995-01-03 Ibm Corporation (International Business Machines Corporation) Method of encoding a location of changes in a sequence of video images
DE69418646T2 (de) 1993-06-04 2000-06-29 Sun Microsystems, Inc. Gleitkommaprozessor für einen hochleistungsfähigen dreidimensionalen Graphikbeschleuniger
US6028807A (en) * 1998-07-07 2000-02-22 Intel Corporation Memory architecture
JP3927715B2 (ja) 1998-12-28 2007-06-13 キヤノン株式会社 色変換方法および色変換装置
JP4868576B2 (ja) * 2006-01-27 2012-02-01 株式会社メガチップス 画像処理装置
JP5328384B2 (ja) 2009-01-14 2013-10-30 キヤノン株式会社 レンズ制御装置、光学機器及びレンズ制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007080186A (ja) * 2005-09-16 2007-03-29 Canon Inc データ処理装置、及びその制御方法
WO2007116560A1 (ja) * 2006-03-30 2007-10-18 Nec Corporation 並列画像処理システムの制御方法および装置

Also Published As

Publication number Publication date
US20100110289A1 (en) 2010-05-06
JP4901891B2 (ja) 2012-03-21
US8730250B2 (en) 2014-05-20

Similar Documents

Publication Publication Date Title
US10395381B2 (en) Method to compute sliding window block sum using instruction based selective horizontal addition in vector processor
KR100498482B1 (ko) 명령어수에 수행 주기 회수를 가중치로 사용하여 쓰레드를페치하는 동시 다중 쓰레딩 프로세서 및 그 방법
JP2011511986A (ja) プロセッサ
JPH02289097A (ja) 画像表示データ処理装置
KR100981998B1 (ko) 데이터 워드 내의 비트 삽입
CN108319559B (zh) 用于控制矢量内存存取的数据处理装置及方法
EP2602710A1 (en) Method of encoding register instruction fields
JP4637640B2 (ja) 図形描画装置
US9354893B2 (en) Device for offloading instructions and data from primary to secondary data path
US20230325189A1 (en) Forming Constant Extensions in the Same Execute Packet in a VLIW Processor
JP3659252B2 (ja) ベクトルデータのアドレス参照方法およびベクトルプロセッサ
JP4686435B2 (ja) 演算装置
EP3559803B1 (en) Vector generating instruction
JP4901891B2 (ja) 画像処理プロセッサ
EP3264261B1 (en) Processor and control method of processor
US11314514B2 (en) Vector length querying instruction
KR102591988B1 (ko) 데이터 처리장치에서의 벡터 인터리빙
JP6378515B2 (ja) Vliwプロセッサ
US10963251B2 (en) Vector register access
JP4896839B2 (ja) マイクロプロセッサおよびデータ処理方法
JP2004302647A (ja) ベクトルプロセッサおよびレジスタのアドレス指定方法
JP3706383B1 (ja) 描画処理装置および描画処理方法、ならびに情報処理装置および情報処理方法
JP2001216275A (ja) 画像処理装置および画像処理方法
JP5292831B2 (ja) プログラマブルコントローラ
JP2010140398A (ja) データ処理装置及びデータ処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111130

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111206

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111227

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150113

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees