JP6726752B2 - 画像プロセッサのためのコンパイラ管理メモリ - Google Patents
画像プロセッサのためのコンパイラ管理メモリ Download PDFInfo
- Publication number
- JP6726752B2 JP6726752B2 JP2018539834A JP2018539834A JP6726752B2 JP 6726752 B2 JP6726752 B2 JP 6726752B2 JP 2018539834 A JP2018539834 A JP 2018539834A JP 2018539834 A JP2018539834 A JP 2018539834A JP 6726752 B2 JP6726752 B2 JP 6726752B2
- Authority
- JP
- Japan
- Prior art keywords
- sheet
- image data
- shift register
- array
- dimensional shift
- 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.)
- Active
Links
- 125000001475 halogen functional group Chemical group 0.000 claims description 88
- 238000012545 processing Methods 0.000 claims description 82
- 238000000034 method Methods 0.000 claims description 41
- 230000006870 function Effects 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 9
- 235000002597 Solanum melongena Nutrition 0.000 claims 3
- 244000061458 Solanum melongena Species 0.000 claims 3
- 230000008569 process Effects 0.000 description 20
- 238000004364 calculation method Methods 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 12
- 238000013461 design Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 5
- 230000005574 cross-species transmission Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- LNEPOXFFQSENCJ-UHFFFAOYSA-N haloperidol Chemical compound C1CC(O)(C=2C=CC(Cl)=CC=2)CCN1CCCC(=O)C1=CC=C(F)C=C1 LNEPOXFFQSENCJ-UHFFFAOYSA-N 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000005039 memory span Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30138—Extension of register space, e.g. register cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N3/00—Scanning details of television systems; Combination thereof with generation of supply voltages
- H04N3/10—Scanning details of television systems; Combination thereof with generation of supply voltages by means not exclusively optical-mechanical
- H04N3/14—Scanning details of television systems; Combination thereof with generation of supply voltages by means not exclusively optical-mechanical by means of electrically scanned solid-state devices
- H04N3/15—Scanning details of television systems; Combination thereof with generation of supply voltages by means not exclusively optical-mechanical by means of electrically scanned solid-state devices for picture signal generation
- H04N3/1575—Picture signal readout register, e.g. shift registers, interline shift registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
Description
この出願は、2016年2月26日に出願された米国仮特許出願第62/300,671号「画像プロセッサのためコンパイラ管理メモリ(“COMPILER MANAGED MEMORY FOR IMAGE PROCESSOR”)」の利益を主張し、その全体をここに引用により援用する。
本発明の分野は、一般に画像処理に関し、より詳細には、画像プロセッサのためのコンパイラ管理メモリに関する。
画像処理は、典型的には、アレイに編成されたピクセル値の処理を含む。ここで、空間的に編成された二次元アレイは、画像の二次元的性質を捕捉する(追加の次元は、時間(例えば二次元画像のシーケンス)およびデータタイプ(例えば色)を含み得る。典型的なケースでは、アレイ化されたピクセル値は、静止画像または動きの画像を捕捉するためにフレームのシーケンスを生成したカメラによって提供される。伝統的な画像プロセッサは、典型的には、2つの極端な側面のいずれかに分類される。
ある方法が記載される。この方法は、メモリの第1の位置から次の画像データのシートを二次元シフトレジスタアレイに繰り返しロードすることを備える。メモリは、二次元シフトレジスタアレイと、少なくとも1つのアレイ軸に沿って二次元シフトレジスタアレイよりも小さい寸法を有する実行レーンアレイとに、ローカルに結合される。ロードされた次の画像データのシートは、二次元シフトレジスタアレイの画像領域内に保持される。この方法は、さらに、実行レーンアレイのそれぞれのレーンに沿ってプログラムコード命令を実行することを通して次の画像データのシートに対する出力値を繰り返し判断することを備え、出力値を判断するのに使用されるステンシルサイズは、二次元シフトレジスタアレイ内に存在するピクセルのみを包含する。この方法は、さらに、二次元シフトレジスタアレイに完全にロードされるべき次の画像データのシートをメモリの第2の位置からメモリの第1の位置に繰り返し移動することを備える。
以下の説明および添付の図面は、本発明の実施形態を例示するために使用される。
a.画像プロセッサハードウェアアーキテクチャおよび動作
図1は、ハードウェアで実現される画像プロセッサのためのアーキテクチャ100の実施形態を示す。画像プロセッサは、例えば、シミュレートされた環境内で仮想プロセッサ用に書かれたプログラムコードを、ハードウェアプロセッサによって実際に実行されるプログラムコードに変換するコンパイラによって対象とされてもよい。図4に示すように、アーキテクチャ100は、複数のラインバッファユニット101_1〜101_Mを含み、それらは、複数のステンシルプロセッサユニット102_1〜102_Nおよび対応するシート生成部ユニット103_1〜103_Nに、ネットワーク104(例えば、ネットワークオンチップ(NOC)(オンチップスイッチネットワーク、オンチップリングネットワークまたは他の種類のネットワークを含む))を介して相互接続される。一実施形態では、どのラインバッファユニットが、ネットワーク104を介してどのシート生成部および対応するステンシルプロセッサに接続してもよい。
図3aは、ステンシルプロセッサ300の実施形態を示す。図3aにおいて見られるように、ステンシルプロセッサは、データ計算ユニット301、スカラープロセッサ302および関連するメモリ303およびI/Oユニット304を含む。データ計算ユニット301は、実行レーンのアレイ305、二次元シフトアレイ構造306、およびアレイの特定の行または列に関連する別個のランダムアクセスメモリ307を含む。
図4を再び参照すると、図4の特定の実施形態では、実行レーンアレイ405の右端および下端の周りに存在するレジスタ409のハロー領域の存在を想起されたい(他の実施形態は、実行レーンアレイのより多くのまたはより少ない辺上にハローレジスタを含み得る)。前述の説明では、「シート」は、実行レーンアレイ405の寸法を有する内部のシフトレジスタ空間を消費した画像情報のアレイであると理解された。ここで、様々な実施形態において、ハロー409内のレジスタ位置は、画像データ上で画像処理命令を実行するための関連付けられたALUユニットを含まず、例えば、ハロー409領域は、例えば、実行レーンアレイ領域内のシフトアクティビティからの「スピルオーバ」データを蓄積するために存在する。したがって、処理可能な画像データの領域は領域405に対応し、「シート」は領域405と同一の広がりを持つと理解される。レジスタアレイ406へのシートのロードは、画像データを領域405にロードすることを含む。
(Xa<Xs)かつ(Ya<Ys)=真の場合0
(Xa>Xs)かつ(Ya<Ys)=真の場合1
(Xa>Xs)かつ(Ya>Ys)=真の場合2
(Xa<Xs)かつ(Ya>Ys)=真の場合3
様々な実施形態において、コンパイラは、座標対を読み出すアレイ位置を本質的に識別するXa、Ya座標対のアレイを生成し、XsおよびYsを即値オペランドとして指定し、なぜならば、それらは、QUADRANT命令のすべての実行にわたって一定であるからである。XaおよびYa座標対は、命令の実行に先立って入力オペランド情報としてそれぞれのアレイ位置にロードされる。別の実施形態では、命令は、さらに、[ベース]アドレス値を入力オペランドとして受け入れ、フルアドレス値[ベース]+オフセットをQUADRANT命令の結果として提供することができる。[ベース]オペランドは即値オペランドとして指定されてもよく、または[ベース]値を動的に決定し、それを追加の入力オペランドとしてアレイ位置にブロードキャストするように、プログラムコードを構成してもよい。
上述した様々な画像プロセッサアーキテクチャの特徴は、必ずしも従来の意味での画像処理に限定されず、したがって、画像プロセッサを再特徴付けしてもよい(またはしなくてもよい)他のアプリケーションに適用することができることを指摘することが適切である。例えば、実際のカメラ画像の処理とは対照的に、アニメーションの作成および/または生成および/またはレンダリングにおいて上述した様々な画像プロセッサアーキテクチャの特徴のいずれかが使用される場合、画像プロセッサはグラフィックス処理ユニットとして徳経づけられてもよい。さらに、上述した画像プロセッサアーキテクチャの特徴は、ビデオ処理、視覚処理、画像認識および/または機械学習などの他の技術的用途にも適用することができる。このように適用されて、画像プロセッサは、より汎用的なプロセッサ(例えば、コンピューティングシステムのCPUの一部であるか、またはその一部である)と(例えばコプロセッサとして)一体化されてもよく、またはコンピューティングシステム内のスタンドアロンプロセッサであってもよい。
Claims (18)
- プロセッサであって、
処理要素の二次元アレイと、
前記処理要素の二次元アレイ内の前記処理要素ごとに専用であるレジスタの第1の部分と、前記レジスタの第1の部分の1つ以上の辺上で前記レジスタの第1の部分と境界をなすレジスタのハロー部分とを有する二次元シフトレジスタアレイと、
画像データのシートを前記二次元シフトレジスタアレイにロードするように構成されたシート生成部とを備え、画像データの各シートは少なくとも前記処理要素の二次元アレイにおける処理要素と同じ数のピクセルを有し、
前記プロセッサは、画像データの複数のシートからデータを必要とするステンシル機能を実行するために入力データをロードする命令を実行するように構成され、前記命令は、前記プロセッサに、
画像データの第1のシートおよび画像データの第2のシートを最初に、前記プロセッサにローカルなローカルランダムアクセスメモリ(RAM)にロードすることと、
前記ローカルRAMから、前記画像データの第1のシートを前記二次元シフトレジスタアレイの前記第1の部分にロードすることと、
前記画像データの第2のシートの一部を前記二次元シフトレジスタアレイの前記ハロー部分にロードすることと、
前記二次元シフトレジスタアレイの前記第1の部分にロードされた前記画像データの第1のシートと、前記二次元シフトレジスタアレイの前記ハロー部分にロードされた前記画像データの第2のシートの前記一部とを使用して、前記ステンシル機能の第1の反復を実行することと、
前記画像データの第2のシートを前記プロセッサに再ロードすることなく、前記画像データの第2のシートを前記ローカルRAMから前記二次元シフトレジスタアレイの前記第1の部分にロードすることと、
画像データの第3のシートの一部を前記二次元シフトレジスタアレイの前記ハロー部分にロードすることと、
前記二次元シフトレジスタアレイの前記第1の部分にロードされた前記画像データの第2のシートと、前記二次元シフトレジスタアレイの前記ハロー部分にロードされた前記画像データの第3のシートの前記一部とを使用して、前記ステンシル機能の第2の反復を実行することとを含む動作を実行させる、プロセッサ。 - 前記二次元シフトレジスタアレイの前記ハロー部分に前記画像データの第2のシートの前記一部をロードすることは、前記ローカルRAMから前記画像データの第2のシートの前記一部をロードすることを含む、請求項1に記載のプロセッサ。
- 前記動作はさらに、
前記ステンシル機能の前記第1の反復を実行することと少なくとも部分的に同時に、前記ローカルRAMに前記画像データの第3のシートをロードすることを含む、請求項1に記載のプロセッサ。 - 前記動作はさらに、
前記ローカルRAMにロードされた前記画像データの第1のシートの第1のアドレスを参照する第1のポインタを割り当てることと、
前記ローカルRAMにロードされた前記画像データの第2のシートの第2のアドレスを参照する第2のポインタを割り当てることと、
前記ローカルRAMにロードされた前記画像データの第2のシートの前記第2のアドレスを参照するように前記第1のポインタを更新することとを含む、請求項1に記載のプロセッサ。 - 前記画像データの第2のシートを前記ローカルRAMから前記二次元シフトレジスタアレイの前記第1の部分にロードすることは、前記更新された第1ポインタを参照するロード命令を実行することを含む、請求項4に記載のプロセッサ。
- プロセッサであって、
処理要素の二次元アレイと、
前記処理要素の二次元アレイ内の前記処理要素ごとに専用であるレジスタの第1の部分と、前記レジスタの第1の部分の1つ以上の辺上で前記レジスタの第1の部分と境界をなすレジスタのハロー部分とを有する二次元シフトレジスタアレイと、
画像データのシートを前記二次元シフトレジスタアレイにロードするように構成されたシート生成部とを備え、画像データの各シートは少なくとも前記処理要素の二次元アレイにおける処理要素と同じ数のピクセルを有し、
前記プロセッサは、画像データの複数のシートからデータを必要とするステンシル機能を実行するために入力データをロードする命令を実行するように構成され、前記命令は、前記プロセッサに、
画像データの第1のシートおよび画像データの第2のシートを最初に、前記プロセッサにローカルなローカルランダムアクセスメモリ(RAM)にロードすることと、
前記ローカルRAMから、前記画像データの第1のシートを前記二次元シフトレジスタアレイの前記第1の部分にロードすることと、
前記画像データの第2のシートの一部を前記二次元シフトレジスタアレイの前記ハロー部分にロードすることと、
前記二次元シフトレジスタアレイの前記第1の部分にロードされた前記画像データの第1のシートと、前記二次元シフトレジスタアレイの前記ハロー部分にロードされた前記画像データの第2のシートの前記一部とを使用して、前記ステンシル機能の第1の反復を実行することとを含む動作を実行させ、
前記命令は、前記処理要素の二次元アレイにおいて特定の位置を有する特定の処理要素によって実行されると、前記処理要素に、前記特定の位置の場合に、データをロードする前記ローカルRAMにおける特定のデータのシートを表すオフセットを計算させるオフセット命令を含む、プロセッサ。 - 前記動作は、前記シート生成部によって前記プロセッサの1つ以上の他の構成要素に提供されるよう、データの出力シートを前記シート生成部に提供することをさらに含む、請求項1に記載のプロセッサ。
- 1つ以上の非一時的なコンピュータ記憶媒体上にエンコードされたコンピュータプログラムであって、命令を備え、前記命令は、
(i)処理要素の二次元アレイと、
(ii)前記処理要素の二次元アレイ内の前記処理要素ごとに専用であるレジスタの第1の部分と、前記レジスタの第1の部分の1つ以上の辺上で前記レジスタの第1の部分と境界をなすレジスタのハロー部分とを有する二次元シフトレジスタアレイと、
(iii)画像データのシートを前記二次元シフトレジスタアレイにロードするように構成されたシート生成部であって、画像データの各シートは少なくとも前記処理要素の二次元アレイにおける処理要素と同じ数のピクセルを有するシート生成部とを備えるプロセッサによって実行されると、
前記プロセッサに、画像データの複数のシートからデータを必要とするステンシル機能を実行するために入力データをロードさせ、前記命令は、前記プロセッサに、
画像データの第1のシートおよび画像データの第2のシートを最初に前記プロセッサのローカルランダムアクセスメモリ(RAM)にロードすることと、
前記ローカルRAMから、前記画像データの第1のシートを前記二次元シフトレジスタアレイの前記第1の部分にロードすることと、
前記画像データの第2のシートの一部を前記二次元シフトレジスタアレイの前記ハロー部分にロードすることと、
前記二次元シフトレジスタアレイの前記第1の部分にロードされた前記画像データの第1のシートと、前記二次元シフトレジスタアレイの前記ハロー部分にロードされた前記画像データの第2のシートの前記一部とを使用して、前記ステンシル機能の第1の反復を実行することと、
前記画像データの第2のシートを前記プロセッサに再ロードすることなく、前記画像データの第2のシートを前記ローカルRAMから前記二次元シフトレジスタアレイの前記第1の部分にロードすることと、
画像データの第3のシートの一部を前記二次元シフトレジスタアレイの前記ハロー部分にロードすることと、
前記二次元シフトレジスタアレイの前記第1の部分にロードされた前記画像データの第2のシートと、前記二次元シフトレジスタアレイの前記ハロー部分にロードされた前記画像データの第3のシートの前記一部とを使用して、前記ステンシル機能の第2の反復を実行することとを含む動作を実行させる、コンピュータプログラム。 - 前記二次元シフトレジスタアレイの前記ハロー部分に前記画像データの第2のシートの前記一部をロードすることは、前記ローカルRAMから前記画像データの第2のシートの前記一部をロードすることを含む、請求項8に記載のコンピュータプログラム。
- 前記動作はさらに、
前記ステンシル機能の前記第1の反復を実行することと少なくとも部分的に同時に、前記ローカルRAMに前記画像データの第3のシートをロードすることを含む、請求項8に記載のコンピュータプログラム。 - 前記動作はさらに、
前記ローカルRAMにロードされた前記画像データの第1のシートの第1のアドレスを参照する第1のポインタを割り当てることと、
前記ローカルRAMにロードされた前記画像データの第2のシートの第2のアドレスを参照する第2のポインタを割り当てることと、
前記ローカルRAMにロードされた前記画像データの第2のシートの前記第2のアドレスを参照するように前記第1のポインタを更新することとを含む、請求項8に記載のコンピュータプログラム。 - 前記画像データの第2のシートを前記ローカルRAMから前記二次元シフトレジスタアレイの前記第1の部分にロードすることは、前記更新された第1ポインタを参照するロード命令を実行することを含む、請求項11に記載のコンピュータプログラム。
- 1つ以上の非一時的なコンピュータ記憶媒体上にエンコードされたコンピュータプログラムであって、命令を備え、前記命令は、
(i)処理要素の二次元アレイと、
(ii)前記処理要素の二次元アレイ内の前記処理要素ごとに専用であるレジスタの第1の部分と、前記レジスタの第1の部分の1つ以上の辺上で前記レジスタの第1の部分と境界をなすレジスタのハロー部分とを有する二次元シフトレジスタアレイと、
(iii)画像データのシートを前記二次元シフトレジスタアレイにロードするように構成されたシート生成部であって、画像データの各シートは少なくとも前記処理要素の二次元アレイにおける処理要素と同じ数のピクセルを有するシート生成部とを備えるプロセッサによって実行されると、
前記プロセッサに、画像データの複数のシートからデータを必要とするステンシル機能を実行するために入力データをロードさせ、前記命令は、前記プロセッサに、
画像データの第1のシートおよび画像データの第2のシートを最初に前記プロセッサのローカルランダムアクセスメモリ(RAM)にロードすることと、
前記ローカルRAMから、前記画像データの第1のシートを前記二次元シフトレジスタアレイの前記第1の部分にロードすることと、
前記画像データの第2のシートの一部を前記二次元シフトレジスタアレイの前記ハロー部分にロードすることと、
前記二次元シフトレジスタアレイの前記第1の部分にロードされた前記画像データの第1のシートと、前記二次元シフトレジスタアレイの前記ハロー部分にロードされた前記画像データの第2のシートの前記一部とを使用して、前記ステンシル機能の第1の反復を実行することとを含む動作を実行させ、
前記命令は、前記処理要素の二次元アレイにおいて特定の位置を有する特定の処理要素によって実行されると、前記処理要素に、前記特定の位置の場合に、データをロードする前記ローカルRAMにおける特定のデータのシートを表すオフセットを計算させるオフセット命令を含む、コンピュータプログラム。 - 前記動作は、前記シート生成部によって前記プロセッサの1つ以上の他の構成要素に提供されるよう、データの出力シートを前記シート生成部に提供することをさらに含む、請求項8に記載のコンピュータプログラム。
- プロセッサによって実行される方法であって、
(i)処理要素の二次元アレイと、
(ii)前記処理要素の二次元アレイ内の前記処理要素ごとに専用であるレジスタの第1の部分と、前記レジスタの第1の部分の1つ以上の辺上で前記レジスタの第1の部分と境界をなすレジスタのハロー部分とを有する二次元シフトレジスタアレイと、
(iii)画像データのシートを前記二次元シフトレジスタアレイにロードするように構成されたシート生成部とを備え、画像データの各シートは少なくとも前記処理要素の二次元アレイにおける処理要素と同じ数のピクセルを有し、
前記方法は、前記プロセッサに、画像データの複数のシートからデータを必要とするステンシル機能を実行するために入力データをロードさせ、前記方法は、
前記シート生成部によって、画像データの第1のシートおよび画像データの第2のシートを最初に前記プロセッサのローカルランダムアクセスメモリ(RAM)にロードすることと、
前記シート生成部によって、前記ローカルRAMから前記画像データの第1のシートを前記二次元シフトレジスタアレイの前記第1の部分にロードすることと、
前記シート生成部によって、前記画像データの第2のシートの一部を前記二次元シフトレジスタアレイの前記ハロー部分にロードすることと、
前記処理要素の二次元シフトレジスタアレイによって、前記二次元シフトレジスタアレイの前記第1の部分にロードされた前記画像データの第1のシートと、前記二次元シフトレジスタアレイの前記ハロー部分にロードされた前記画像データの第2のシートの前記一部とを使用して、前記ステンシル機能の第1の反復を実行することと、
前記シート生成部によって、前記画像データの第2のシートを前記プロセッサに再ロードすることなく、前記画像データの第2のシートを前記ローカルRAMから前記二次元シフトレジスタアレイの前記第1の部分にロードすることと、
前記シート生成部によって、画像データの第3のシートの一部を前記二次元シフトレジスタアレイの前記ハロー部分にロードすることと、
前記処理要素の二次元シフトレジスタアレイによって、前記二次元シフトレジスタアレイの前記第1の部分にロードされた前記画像データの第2のシートと、前記二次元シフトレジスタアレイの前記ハロー部分にロードされた前記画像データの第3のシートの前記一部とを使用して、前記ステンシル機能の第2の反復を実行することとを含む、プロセッサによって実行される方法。 - プロセッサであって、
処理要素の二次元アレイと、
前記処理要素の二次元アレイ内の前記処理要素ごとに専用であるレジスタの第1の部分と、前記レジスタの第1の部分の1つ以上の辺上で前記レジスタの第1の部分と境界をなすレジスタのハロー部分とを有する二次元シフトレジスタアレイと、
画像データのシートを前記二次元シフトレジスタアレイにロードするように構成されたシート生成部とを備え、画像データの各シートは少なくとも前記処理要素の二次元アレイにおける処理要素と同じ数のピクセルを有し、
前記プロセッサは、画像データの複数のシートからデータを必要とするステンシル機能を実行するために入力データをロードする命令を実行するように構成され、前記命令は、前記プロセッサに、
画像データの第1のシートおよび画像データの第2のシートを最初に、前記プロセッサにローカルなローカルランダムアクセスメモリ(RAM)にロードすることと、
前記ローカルRAMにロードされた前記画像データの第1のシートの第1のアドレスを参照する第1のポインタを割り当てることと、
前記ローカルRAMにロードされた前記画像データの第2のシートの第2のアドレスを参照する第2のポインタを割り当てることと、
前記第1のポインタを用いて、前記画像データの第1のシートを前記二次元シフトレジスタアレイの前記第1の部分にロードすることと、
前記第2のポインタを用いて、前記画像データの第2のシートの一部を前記二次元シフトレジスタアレイの前記ハロー部分にロードすることと、
前記二次元シフトレジスタアレイの前記第1の部分にロードされた前記画像データの第1のシートと、前記二次元シフトレジスタアレイの前記ハロー部分にロードされた前記画像データの第2のシートの前記一部とを使用して、前記ステンシル機能の第1の反復を実行することと、
前記ステンシル機能の第1の反復を実行した後に、前記ローカルRAMにロードされた前記画像データの第2のシートの前記第2のアドレスを参照するように前記第1のポインタを更新することと、
前記第1のポインタを用いて、前記画像データの第2のシートを前記二次元シフトレジスタアレイの前記第1の部分にロードすることと、
画像データの第3のシートの一部を前記二次元シフトレジスタアレイの前記ハロー部分にロードすることと、
前記二次元シフトレジスタアレイの前記第1の部分にロードされた前記画像データの第2のシートと、前記二次元シフトレジスタアレイの前記ハロー部分にロードされた前記画像データの第3のシートの前記一部とを使用して、前記ステンシル機能の第2の反復を実行することとをを含む動作を実行させる、プロセッサ。 - 1つ以上の非一時的なコンピュータ記憶媒体上にエンコードされたコンピュータプログラムであって、命令を備え、前記命令は、
(i)処理要素の二次元アレイと、
(ii)前記処理要素の二次元アレイ内の前記処理要素ごとに専用であるレジスタの第1の部分と、前記レジスタの第1の部分の1つ以上の辺上で前記レジスタの第1の部分と境界をなすレジスタのハロー部分とを有する二次元シフトレジスタアレイと、
(iii)画像データのシートを前記二次元シフトレジスタアレイにロードするように構成されたシート生成部であって、画像データの各シートは少なくとも前記処理要素の二次元アレイにおける処理要素と同じ数のピクセルを有するシート生成部とを備えるプロセッサによって実行されると、
前記プロセッサに、画像データの複数のシートからデータを必要とするステンシル機能を実行するために入力データをロードさせ、前記命令は、前記プロセッサに、
画像データの第1のシートおよび画像データの第2のシートを最初に前記プロセッサのローカルランダムアクセスメモリ(RAM)にロードすることと、
前記ローカルRAMにロードされた前記画像データの第1のシートの第1のアドレスを参照する第1のポインタを割り当てることと、
前記ローカルRAMにロードされた前記画像データの第2のシートの第2のアドレスを参照する第2のポインタを割り当てることと、
前記第1のポインタを用いて、前記画像データの第1のシートを前記二次元シフトレジスタアレイの前記第1の部分にロードすることと、
前記第2のポインタを用いて、前記画像データの第2のシートの一部を前記二次元シフトレジスタアレイの前記ハロー部分にロードすることと、
前記二次元シフトレジスタアレイの前記第1の部分にロードされた前記画像データの第1のシートと、前記二次元シフトレジスタアレイの前記ハロー部分にロードされた前記画像データの第2のシートの前記一部とを使用して、前記ステンシル機能の第1の反復を実行することと、
前記ステンシル機能の第1の反復を実行した後に、前記ローカルRAMにロードされた前記画像データの第2のシートの前記第2のアドレスを参照するように前記第1のポインタを更新することと、
前記第1のポインタを用いて、前記画像データの第2のシートを前記二次元シフトレジスタアレイの前記第1の部分にロードすることと、
画像データの第3のシートの一部を前記二次元シフトレジスタアレイの前記ハロー部分にロードすることと、
前記二次元シフトレジスタアレイの前記第1の部分にロードされた前記画像データの第2のシートと、前記二次元シフトレジスタアレイの前記ハロー部分にロードされた前記画像データの第3のシートの前記一部とを使用して、前記ステンシル機能の第2の反復を実行することとを含む動作を実行させる、コンピュータプログラム。 - プロセッサによって実行される方法であって、
(i)処理要素の二次元アレイと、
(ii)前記処理要素の二次元アレイ内の前記処理要素ごとに専用であるレジスタの第1の部分と、前記レジスタの第1の部分の1つ以上の辺上で前記レジスタの第1の部分と境界をなすレジスタのハロー部分とを有する二次元シフトレジスタアレイと、
(iii)画像データのシートを前記二次元シフトレジスタアレイにロードするように構成されたシート生成部とを備え、画像データの各シートは少なくとも前記処理要素の二次元アレイにおける処理要素と同じ数のピクセルを有し、
前記方法は、前記プロセッサに、画像データの複数のシートからデータを必要とするステンシル機能を実行するために入力データをロードさせ、前記方法は、
前記シート生成部が、画像データの第1のシートおよび画像データの第2のシートを最初に前記プロセッサのローカルランダムアクセスメモリ(RAM)にロードすることと、
前記シート生成部が、前記ローカルRAMにロードされた前記画像データの第1のシートの第1のアドレスを参照する第1のポインタを割り当てることと、
前記シート生成部が、前記ローカルRAMにロードされた前記画像データの第2のシートの第2のアドレスを参照する第2のポインタを割り当てることと、
前記シート生成部が、前記第1のポインタを用いて、前記画像データの第1のシートを前記二次元シフトレジスタアレイの前記第1の部分にロードすることと、
前記シート生成部が、前記第2のポインタを用いて、前記画像データの第2のシートの一部を前記二次元シフトレジスタアレイの前記ハロー部分にロードすることと、
前記処理要素の二次元シフトレジスタアレイが、前記二次元シフトレジスタアレイの前記第1の部分にロードされた前記画像データの第1のシートと、前記二次元シフトレジスタアレイの前記ハロー部分にロードされた前記画像データの第2のシートの前記一部とを使用して、前記ステンシル機能の第1の反復を実行することと、
前記ステンシル機能の第1の反復の実行後に、前記シート生成部が、前記ローカルRAMにロードされた前記画像データの第2のシートの前記第2のアドレスを参照するように前記第1のポインタを更新することと、
前記シート生成部が、前記第1のポインタを用いて、前記画像データの第2のシートを前記二次元シフトレジスタアレイの前記第1の部分にロードすることと、
前記シート生成部が、画像データの第3のシートの一部を前記二次元シフトレジスタアレイの前記ハロー部分にロードすることと、
前記処理要素の二次元シフトレジスタアレイが、前記二次元シフトレジスタアレイの前記第1の部分にロードされた前記画像データの第2のシートと、前記二次元シフトレジスタアレイの前記ハロー部分にロードされた前記画像データの第3のシートの前記一部とを使用して、前記ステンシル機能の第2の反復を実行することとを含む、プロセッサによって実行される方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662300671P | 2016-02-26 | 2016-02-26 | |
US62/300,671 | 2016-02-26 | ||
US15/427,374 US10204396B2 (en) | 2016-02-26 | 2017-02-08 | Compiler managed memory for image processor |
US15/427,374 | 2017-02-08 | ||
PCT/US2017/018444 WO2017147020A1 (en) | 2016-02-26 | 2017-02-17 | Compiler managed memory for image processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019507922A JP2019507922A (ja) | 2019-03-22 |
JP6726752B2 true JP6726752B2 (ja) | 2020-07-22 |
Family
ID=58228574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018539834A Active JP6726752B2 (ja) | 2016-02-26 | 2017-02-17 | 画像プロセッサのためのコンパイラ管理メモリ |
Country Status (9)
Country | Link |
---|---|
US (3) | US10204396B2 (ja) |
EP (1) | EP3420528B1 (ja) |
JP (1) | JP6726752B2 (ja) |
KR (1) | KR102050899B1 (ja) |
CN (1) | CN107133908B (ja) |
DE (2) | DE102017103764A1 (ja) |
GB (3) | GB2549578B (ja) |
TW (2) | TWI698832B (ja) |
WO (1) | WO2017147020A1 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6815926B2 (ja) * | 2017-04-27 | 2021-01-20 | キヤノン株式会社 | 撮像装置、撮像システム、移動体、チップ |
US10489878B2 (en) * | 2017-05-15 | 2019-11-26 | Google Llc | Configurable and programmable image processor unit |
US10503689B2 (en) * | 2017-05-15 | 2019-12-10 | Google Llc | Image processor I/O unit |
US10460416B1 (en) | 2017-10-17 | 2019-10-29 | Xilinx, Inc. | Inline image preprocessing for convolution operations using a matrix multiplier on an integrated circuit |
US11386644B2 (en) * | 2017-10-17 | 2022-07-12 | Xilinx, Inc. | Image preprocessing for generalized image processing |
CN107633477B (zh) * | 2017-10-20 | 2021-04-20 | 上海兆芯集成电路有限公司 | 图像处理方法及其装置 |
CN108230229B (zh) * | 2018-01-04 | 2021-07-06 | 格兰菲智能科技有限公司 | 图像处理装置以及图像处理方法 |
EP3743806B1 (en) * | 2018-02-27 | 2023-08-30 | Google LLC | Large lookup tables for an image processor |
US10983583B2 (en) * | 2018-08-23 | 2021-04-20 | Apple Inc. | Electronic display reduced blanking duration systems and methods |
US10552939B1 (en) * | 2019-02-12 | 2020-02-04 | Google Llc | Image processor complex transfer functions |
US11848980B2 (en) * | 2020-07-09 | 2023-12-19 | Boray Data Technology Co. Ltd. | Distributed pipeline configuration in a distributed computing system |
CN112184536B (zh) * | 2020-09-24 | 2022-09-30 | 成都海光集成电路设计有限公司 | 基于gemm处理图像数据的方法、装置、设备和介质 |
TWI771921B (zh) * | 2021-02-22 | 2022-07-21 | 瑞鼎科技股份有限公司 | 顯示驅動系統 |
WO2023172660A1 (en) * | 2022-03-10 | 2023-09-14 | Ascenium, Inc. | Highly parallel processing architecture with out-of-order resolution |
Family Cites Families (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4445177A (en) | 1981-05-22 | 1984-04-24 | Data General Corporation | Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions |
DE3851005T2 (de) | 1987-06-01 | 1995-04-20 | Applied Intelligent Syst Inc | Paralleles Nachbarverarbeitungssystem und -Verfahren. |
US4935894A (en) | 1987-08-31 | 1990-06-19 | Motorola, Inc. | Multi-processor, multi-bus system with bus interface comprising FIFO register stocks for receiving and transmitting data and control information |
US5253308A (en) | 1989-06-21 | 1993-10-12 | Amber Engineering, Inc. | Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing |
US6948050B1 (en) | 1989-11-17 | 2005-09-20 | Texas Instruments Incorporated | Single integrated circuit embodying a dual heterogenous processors with separate instruction handling hardware |
WO1994009595A1 (en) | 1991-09-20 | 1994-04-28 | Shaw Venson M | Method and apparatus including system architecture for multimedia communications |
JP3482660B2 (ja) | 1993-09-08 | 2003-12-22 | ソニー株式会社 | 画像データ処理装置および画像データ処理方法 |
US5612693A (en) | 1994-12-14 | 1997-03-18 | International Business Machines Corporation | Sliding window data compression using a toroidal bit shift register |
US6049859A (en) | 1996-01-15 | 2000-04-11 | Siemens Aktiengesellschaft | Image-processing processor |
US5892962A (en) | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
US6366289B1 (en) | 1998-07-17 | 2002-04-02 | Microsoft Corporation | Method and system for managing a display image in compressed and uncompressed blocks |
US6587158B1 (en) | 1998-07-23 | 2003-07-01 | Dvdo, Inc. | Method and apparatus for reducing on-chip memory in vertical video processing |
US7010177B1 (en) | 1998-08-27 | 2006-03-07 | Intel Corporation | Portability of digital images |
AU2941600A (en) | 1999-03-16 | 2000-10-04 | Hamamatsu Photonics K.K. | High-speed vision sensor |
JP3922859B2 (ja) | 1999-12-28 | 2007-05-30 | 株式会社リコー | 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6745319B1 (en) | 2000-02-18 | 2004-06-01 | Texas Instruments Incorporated | Microprocessor with instructions for shuffling and dealing data |
US6728862B1 (en) | 2000-05-22 | 2004-04-27 | Gazelle Technology Corporation | Processor array and parallel data processing methods |
US6728722B1 (en) | 2000-08-28 | 2004-04-27 | Sun Microsystems, Inc. | General data structure for describing logical data spaces |
US7286717B2 (en) | 2001-10-31 | 2007-10-23 | Ricoh Company, Ltd. | Image data processing device processing a plurality of series of data items simultaneously in parallel |
JP4146654B2 (ja) | 2002-02-28 | 2008-09-10 | 株式会社リコー | 画像処理回路、複合画像処理回路、および、画像形成装置 |
US9170812B2 (en) | 2002-03-21 | 2015-10-27 | Pact Xpp Technologies Ag | Data processing system having integrated pipelined array data processor |
WO2003088033A1 (en) | 2002-04-09 | 2003-10-23 | University Of Rochester | Multiplier-based processor-in-memory architectures for image and graphics processing |
US7084929B2 (en) * | 2002-07-29 | 2006-08-01 | Koninklijke Philips Electronics N.V. | Video data filtering arrangement and method |
WO2004021176A2 (de) | 2002-08-07 | 2004-03-11 | Pact Xpp Technologies Ag | Verfahren und vorrichtung zur datenverarbeitung |
US20060044576A1 (en) | 2004-07-30 | 2006-03-02 | Kabushiki Kaisha Toshiba | Apparatus for image processing |
US7667764B2 (en) | 2004-06-04 | 2010-02-23 | Konica Minolta Holdings, Inc. | Image sensing apparatus |
US8736623B1 (en) | 2004-11-15 | 2014-05-27 | Nvidia Corporation | Programmable DMA engine for implementing memory transfers and video processing for a video processor |
JP4219887B2 (ja) | 2004-12-28 | 2009-02-04 | 富士通マイクロエレクトロニクス株式会社 | 画像処理装置及び画像処理方法 |
WO2006114642A1 (en) | 2005-04-28 | 2006-11-02 | The University Court Of The University Of Edinburgh | Reconfigurable instruction cell array |
US7882339B2 (en) | 2005-06-23 | 2011-02-01 | Intel Corporation | Primitives to enhance thread-level speculation |
JP2007067917A (ja) | 2005-08-31 | 2007-03-15 | Matsushita Electric Ind Co Ltd | 画像データ処理装置 |
US7602974B2 (en) | 2005-10-21 | 2009-10-13 | Mobilic Technology (Cayman) Corp. | Universal fixed-pixel-size ISP scheme |
FR2895103B1 (fr) | 2005-12-19 | 2008-02-22 | Dxo Labs Sa | Procede et systeme de traitement de donnees numeriques |
US7802073B1 (en) | 2006-03-29 | 2010-09-21 | Oracle America, Inc. | Virtual core management |
US7834873B2 (en) * | 2006-08-25 | 2010-11-16 | Intel Corporation | Display processing line buffers incorporating pipeline overlap |
CN100409259C (zh) * | 2006-08-29 | 2008-08-06 | 中国航天时代电子公司第七七一研究所 | 可缩放大规模二维卷积电路 |
US20080111823A1 (en) | 2006-11-13 | 2008-05-15 | Faraday Technology Corp. | Graphics processing system |
EP1927949A1 (en) * | 2006-12-01 | 2008-06-04 | Thomson Licensing | Array of processing elements with local registers |
US8321849B2 (en) | 2007-01-26 | 2012-11-27 | Nvidia Corporation | Virtual architecture and instruction set for parallel thread computing |
US20080244222A1 (en) | 2007-03-30 | 2008-10-02 | Intel Corporation | Many-core processing using virtual processors |
JP4389976B2 (ja) | 2007-06-29 | 2009-12-24 | ブラザー工業株式会社 | 画像処理装置および画像処理プログラム |
JP4844853B2 (ja) | 2007-09-05 | 2011-12-28 | 国立大学法人東北大学 | 固体撮像素子及びその駆動方法 |
WO2009145917A1 (en) | 2008-05-30 | 2009-12-03 | Advanced Micro Devices, Inc. | Local and global data share |
JP4999791B2 (ja) | 2008-06-30 | 2012-08-15 | キヤノン株式会社 | 情報処理装置、その制御方法、及びプログラム |
US8456480B2 (en) | 2009-01-14 | 2013-06-04 | Calos Fund Limited Liability Company | Method for chaining image-processing functions on a SIMD processor |
KR101572879B1 (ko) | 2009-04-29 | 2015-12-01 | 삼성전자주식회사 | 병렬 응용 프로그램을 동적으로 병렬처리 하는 시스템 및 방법 |
US20110055495A1 (en) | 2009-08-28 | 2011-03-03 | Qualcomm Incorporated | Memory Controller Page Management Devices, Systems, and Methods |
CN101697486A (zh) * | 2009-09-27 | 2010-04-21 | 华中科技大学 | 一种二维小波变换集成电路结构 |
US8976195B1 (en) | 2009-10-14 | 2015-03-10 | Nvidia Corporation | Generating clip state for a batch of vertices |
US8436857B2 (en) | 2009-10-20 | 2013-05-07 | Oracle America, Inc. | System and method for applying level of detail schemes |
US8595428B2 (en) | 2009-12-22 | 2013-11-26 | Intel Corporation | Memory controller functionalities to support data swizzling |
TWI424372B (zh) * | 2010-03-24 | 2014-01-21 | Altek Corp | Selectable image line path means |
US8749667B2 (en) | 2010-08-02 | 2014-06-10 | Texas Instruments Incorporated | System and method for maintaining maximum input rate while up-scaling an image vertically |
US8508612B2 (en) | 2010-09-30 | 2013-08-13 | Apple Inc. | Image signal processor line buffer configuration for processing ram image data |
US8797323B2 (en) | 2011-01-18 | 2014-08-05 | Intel Corporation | Shadowing dynamic volumetric media |
WO2012105174A1 (ja) | 2011-01-31 | 2012-08-09 | パナソニック株式会社 | プログラム生成装置、プログラム生成方法、プロセッサ装置及びマルチプロセッサシステム |
US9092267B2 (en) | 2011-06-20 | 2015-07-28 | Qualcomm Incorporated | Memory sharing in graphics processing unit |
US20130027416A1 (en) | 2011-07-25 | 2013-01-31 | Karthikeyan Vaithianathan | Gather method and apparatus for media processing accelerators |
US9183614B2 (en) | 2011-09-03 | 2015-11-10 | Mireplica Technology, Llc | Processor, system, and method for efficient, high-throughput processing of two-dimensional, interrelated data sets |
JP5742651B2 (ja) | 2011-10-15 | 2015-07-01 | コニカミノルタ株式会社 | 画像処理装置、連携方法および連携プログラム |
US20140089634A1 (en) | 2011-12-23 | 2014-03-27 | Victor W. Lee | Apparatus and method for detecting identical elements within a vector register |
JP5746100B2 (ja) | 2011-12-27 | 2015-07-08 | 京セラドキュメントソリューションズ株式会社 | 画像形成装置 |
US8823736B2 (en) | 2012-01-20 | 2014-09-02 | Intel Corporation | Graphics tiling architecture with bounding volume hierarchies |
US10244246B2 (en) | 2012-02-02 | 2019-03-26 | Texas Instruments Incorporated | Sub-pictures for pixel rate balancing on multi-core platforms |
US9235769B2 (en) | 2012-03-15 | 2016-01-12 | Herta Security, S.L. | Parallel object detection method for heterogeneous multithreaded microarchitectures |
CN102665049B (zh) * | 2012-03-29 | 2014-09-17 | 中国科学院半导体研究所 | 基于可编程视觉芯片的视觉图像处理系统 |
TWI520598B (zh) | 2012-05-23 | 2016-02-01 | 晨星半導體股份有限公司 | 影像處理裝置與影像處理方法 |
US9232139B2 (en) | 2012-07-24 | 2016-01-05 | Apple Inc. | Image stabilization using striped output transformation unit |
US9378181B2 (en) | 2012-11-09 | 2016-06-28 | Intel Corporation | Scalable computing array |
CN103019656B (zh) * | 2012-12-04 | 2016-04-27 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
CN103020890B (zh) * | 2012-12-17 | 2015-11-04 | 中国科学院半导体研究所 | 基于多层次并行处理的视觉处理装置 |
US8954992B2 (en) | 2013-03-15 | 2015-02-10 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Distributed and scaled-out network switch and packet processing |
US9165337B2 (en) | 2013-05-31 | 2015-10-20 | Qualcomm Incorporated | Command instruction management |
US9477999B2 (en) * | 2013-09-20 | 2016-10-25 | The Board Of Trustees Of The Leland Stanford Junior University | Low power programmable image processor |
US9749548B2 (en) | 2015-01-22 | 2017-08-29 | Google Inc. | Virtual linebuffers for image signal processors |
US10095479B2 (en) | 2015-04-23 | 2018-10-09 | Google Llc | Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure |
US10291813B2 (en) | 2015-04-23 | 2019-05-14 | Google Llc | Sheet generator for image processor |
US9772852B2 (en) | 2015-04-23 | 2017-09-26 | Google Inc. | Energy efficient processor core architecture for image processor |
US9756268B2 (en) | 2015-04-23 | 2017-09-05 | Google Inc. | Line buffer unit for image processor |
US9769356B2 (en) | 2015-04-23 | 2017-09-19 | Google Inc. | Two dimensional shift array for image processor |
US9965824B2 (en) | 2015-04-23 | 2018-05-08 | Google Llc | Architecture for high performance, power efficient, programmable image processing |
US9785423B2 (en) | 2015-04-23 | 2017-10-10 | Google Inc. | Compiler for translating between a virtual image processor instruction set architecture (ISA) and target hardware having a two-dimensional shift array structure |
US10387988B2 (en) * | 2016-02-26 | 2019-08-20 | Google Llc | Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform |
-
2017
- 2017-02-08 US US15/427,374 patent/US10204396B2/en active Active
- 2017-02-17 KR KR1020187022164A patent/KR102050899B1/ko active IP Right Grant
- 2017-02-17 JP JP2018539834A patent/JP6726752B2/ja active Active
- 2017-02-17 EP EP17708937.2A patent/EP3420528B1/en active Active
- 2017-02-17 WO PCT/US2017/018444 patent/WO2017147020A1/en active Application Filing
- 2017-02-23 DE DE102017103764.0A patent/DE102017103764A1/de active Pending
- 2017-02-23 GB GB1702925.7A patent/GB2549578B/en active Active
- 2017-02-23 GB GB1912713.3A patent/GB2576117B/en active Active
- 2017-02-23 DE DE202017101012.0U patent/DE202017101012U1/de active Active
- 2017-02-23 GB GB1820155.8A patent/GB2567757B/en active Active
- 2017-02-24 TW TW107117967A patent/TWI698832B/zh active
- 2017-02-24 TW TW106106319A patent/TWI628618B/zh active
- 2017-02-27 CN CN201710107518.9A patent/CN107133908B/zh active Active
- 2017-06-16 US US15/625,972 patent/US10304156B2/en active Active
-
2019
- 2019-02-11 US US16/272,819 patent/US10685422B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TW201830329A (zh) | 2018-08-16 |
US20170249717A1 (en) | 2017-08-31 |
TWI628618B (zh) | 2018-07-01 |
US10304156B2 (en) | 2019-05-28 |
EP3420528B1 (en) | 2022-06-15 |
GB2567757B (en) | 2019-10-23 |
DE102017103764A1 (de) | 2017-08-31 |
GB2576117B (en) | 2020-08-12 |
GB2549578B (en) | 2019-01-30 |
JP2019507922A (ja) | 2019-03-22 |
WO2017147020A1 (en) | 2017-08-31 |
KR102050899B1 (ko) | 2019-12-02 |
US20190188824A1 (en) | 2019-06-20 |
GB201702925D0 (en) | 2017-04-12 |
KR20180100374A (ko) | 2018-09-10 |
DE202017101012U1 (de) | 2017-05-29 |
TWI698832B (zh) | 2020-07-11 |
EP3420528A1 (en) | 2019-01-02 |
CN107133908A (zh) | 2017-09-05 |
US10685422B2 (en) | 2020-06-16 |
CN107133908B (zh) | 2021-01-12 |
TW201737201A (zh) | 2017-10-16 |
US10204396B2 (en) | 2019-02-12 |
GB201820155D0 (en) | 2019-01-23 |
GB2576117A (en) | 2020-02-05 |
GB2549578A (en) | 2017-10-25 |
US20170287105A1 (en) | 2017-10-05 |
GB2567757A (en) | 2019-04-24 |
GB201912713D0 (en) | 2019-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6726752B2 (ja) | 画像プロセッサのためのコンパイラ管理メモリ | |
JP7202987B2 (ja) | 高性能で、電力効率の良い、プログラマブルな画像処理のためのアーキテクチャ | |
JP6858239B2 (ja) | プログラムコードを、高性能で電力効率の良いプログラマブルな画像処理ハードウェアプラットフォームにマッピングするためのコンパイラ技法 | |
JP6793228B2 (ja) | 画像プロセッサのためのシート生成部 | |
JP6967570B2 (ja) | 画像プロセッサのためのエネルギ効率的なプロセッサコアアーキテクチャ | |
JP6764904B2 (ja) | 画像プロセッサのための二次元シフトアレイ | |
KR102278021B1 (ko) | 이미지 프로세서 런타임 효율성을 개선하기 위한 프로그램 코드 변환 | |
JP2019526849A (ja) | 二次元画像プロセッサ上での統計演算 | |
JP6750022B2 (ja) | 画像プロセッサのためのマクロi/oユニット | |
JP6820428B2 (ja) | マルチコア画像プロセッサ上のアプリケーションソフトウェアの構成 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181004 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181004 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190917 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191112 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20200210 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20200410 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200508 |
|
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: 20200602 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200629 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6726752 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |