JP6837084B2 - 二次元実行レーンアレイおよび二次元シフトレジスタを有する画像プロセッサ上でのブロック処理のためのコアプロセス - Google Patents
二次元実行レーンアレイおよび二次元シフトレジスタを有する画像プロセッサ上でのブロック処理のためのコアプロセス Download PDFInfo
- Publication number
- JP6837084B2 JP6837084B2 JP2018568290A JP2018568290A JP6837084B2 JP 6837084 B2 JP6837084 B2 JP 6837084B2 JP 2018568290 A JP2018568290 A JP 2018568290A JP 2018568290 A JP2018568290 A JP 2018568290A JP 6837084 B2 JP6837084 B2 JP 6837084B2
- Authority
- JP
- Japan
- Prior art keywords
- shift register
- array
- data
- processor
- dimensional
- 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
- 238000012545 processing Methods 0.000 title claims description 70
- 238000000034 method Methods 0.000 title claims description 34
- 230000008569 process Effects 0.000 title claims description 31
- 238000003491 array Methods 0.000 title description 5
- 238000004364 calculation method Methods 0.000 claims description 16
- 235000008694 Humulus lupulus Nutrition 0.000 claims description 2
- 230000015654 memory Effects 0.000 description 90
- 239000011159 matrix material Substances 0.000 description 64
- 230000006870 function Effects 0.000 description 22
- 238000003775 Density Functional Theory Methods 0.000 description 20
- 238000004422 calculation algorithm Methods 0.000 description 16
- 238000011161 development Methods 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 12
- 238000013461 design Methods 0.000 description 11
- 125000001475 halogen functional group Chemical group 0.000 description 10
- 238000013459 approach Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 230000001186 cumulative effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000012800 visualization Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000005574 cross-species transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011143 downstream manufacturing Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000005039 memory span Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012805 post-processing Methods 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
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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/3001—Arithmetic instructions
-
- 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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/8023—Two dimensional arrays, e.g. mesh, torus
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
- G11C19/28—Digital stores in which the information is moved stepwise, e.g. shift registers using semiconductor elements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Multimedia (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Image Processing (AREA)
Description
本発明の分野は、一般に画像処理に関し、より具体的には、二次元実行レーンアレイおよび二次元シフトレジスタを有する画像プロセッサ上でのブロック処理のためのコアプロセスに関する。
画像処理は、典型的には、アレイに編成されたピクセル値の処理を含む。ここで、空間的に編成された二次元アレイは、画像の二次元的性質を捕捉する(追加の次元は、時間(例えば二次元画像のシーケンス)およびデータタイプ(例えば色)を含み得る。典型的なケースでは、アレイ化されたピクセル値は、静止画像または動きの画像を捕捉するためにフレームのシーケンスを生成したカメラによって提供される。伝統的な画像プロセッサは、典型的には、2つの極端な側面のいずれかに分類される。
二次元実行レーンアレイおよび二次元シフトレジスタアレイを有する画像プロセッサにおいて、二次元シフトレジスタアレイの複数の行または列の同時シフト量を次の反復ごとに2倍にすることを備える方法が記載される。この方法は、反復のシフト間で、二次元実行レーンアレイのそれぞれのレーン内で1つ以上の命令を実行することも備える。 二次元実行レーンアレイおよび二次元シフトレジスタアレイを有する画像プロセッサ上で、実行レーンアレイのそれぞれのレーン内で1つ以上の命令を繰り返し実行して、二次元シフトレジスタアレイ内の複数のデータの行または列の繰り返される同時シフト間で、同じアレイ位置の異なるレジスタ内のコンテンツ間で選択を行う、別の方法が記載される。
以下の説明および添付の図面は、本発明の様々な実施形態を例示するために使用される。
i.導入
以下の説明は、広く汎用性のあるアプリケーションソフトウェア開発環境を提供する新たな画像処理技術プラットフォームに関する多数の実施形態を記載するものであり、それは改善された電力効率を提供するために、より大きなデータのブロック(例えば、以下にさらに説明するようなライングループおよびシート)を使用する。
a.カーネルの用途および構造
図1は、仮想画像処理環境101と、実際の画像処理ハードウェア103と、仮想処理環境101のために書かれたよりハイレベルのコードを、実際のハードウェア103が物理的に実行するオブジェクトコードに変換するためのコンパイラ102とを含む、画像プロセッサ技術プラットフォームのハイレベル図である。以下でより詳細に説明するように、仮想処理環境101は、アプリケーションの構成プロセスの容易な視覚化のために開発および調整できるアプリケーションの点で、広く汎用性が高い。開発者104によるプログラムコード開発努力が完了すると、コンパイラ102は、仮想処理環境101内で書かれたコードを、実際のハードウェア103に対して対象とされるオブジェクトコードに変換する。
様々な実施形態において、仮想プロセッサの関連する特徴は、それらのメモリモデルである。当該技術分野で理解されるように、プロセッサは、メモリからデータを読み出し、そのデータを操作し、新たなデータをメモリに書き戻す。メモリモデルは、プロセッサが有する、データがメモリ内に編成される方法のパースペクティブまたはビューである。図4a〜図4cは、開発環境の仮想プロセッサ用のメモリモデルの一実施形態に関する。例として、3つの仮想プロセッサおよび対応するスレッド401のみを含む単純化された環境が使用されている。以下により詳細に説明されるように、仮想プロセッサのメモリモデルはSIMDセマンティクスを保存するように注意を払いながら、同時に、各仮想プロセッサに対してスカラー演算およびプライベート中間値記憶空間を規定する。
上で複数の例で示唆したように、仮想プロセッサISAはいくつかの関連機能を含むことができる。これらのうちのいくつかはすぐ下に詳細に説明される。
ここで、[OPCODE]は特定の操作の種類であり(入力アレイからのLOAD、出力アレイへのSTORE)、LINEGROUP_(name)は入力または出力アレイメモリ領域内の特定の画像の特定のセクション(たとえば、画像データのフレームのライングループ)に割り当てられた名前である。ここでは、異なるライングループは別々に操作されるので、異なるライングループには異なる名前が与えられ、それらは一意に識別/アクセスされることができる(例えば、LINEGROUP_1, LINEGROUP_2など)。入力アレイメモリ領域および出力アレイメモリ領域の両方に同じ名前のライングループが存在してもよい。任意のライングループの原点は、例えば、それの適切なメモリ領域内の、それの左下隅であってもよい。
注目すべき違いは、入力オペランド情報が、入力または出力アレイ内の特定のライングループではなく、特定の統計テーブル(STATS_(name))内の位置を定義することである。 ライングループと同様に、スレッドがその動作の過程で異なる統計テーブル上で一意に動作できるように、異なる統計テーブルに異なる名前が付けられる。[OPCODE]は、実行されるべき特定のアトミック動作を指定する(例えば、STAT_ADD; STAT_MUL; STAT_MIN; STAT_MAX)。
LOAD LINEGROUP_1[(X-1);(Y-1);Z]
は、LINEGROUP_1から、入力アレイ内の同じX, Y位置から左に1ピクセル、下に1ピクセルの位置にある値をロードするであろう。
R2 <= LOAD LINEGROUP_1[3(X);3(Y);0]
R3 <= LOAD LINEGROUP_1[((3X)+1);3(Y);0]
R2 <= ADD R1, R2
R2 <= ADD R2, R3
R2 <= DIV R2, 3
STORE LINEGROUP_1[(X);(Y);(0)]; R2
対照的に、1:3アップサンプリングの場合(例えば、画像502は入力画像であり、画像501は出力画像である)、XDおよびYD除数はいずれかの軸に沿って各入力ピクセルに対して3つの出力ピクセルを生成するために使用されるであろう。したがって、ぼけコードは次のように書き直されるであろう。
R2 <= LOAD LINEGROUP_1[(X)/3;(Y)/3;0]
R3 <= LOAD LINEGROUP_1[(X+1)/3;(Y)/3;0]
R2 <= ADD R1, R2
R2 <= ADD R2, R3
R2 <= DIV R2, 3
STORE LINEGROUP_1[(X);(Y);(0)]; R2
様々な実施形態では、メモリのプライベート部分、定数部分、およびルックアップ部分にアクセスする命令の命令フォーマットはまた、a*b + cの形式をとり、式中、aはベース位置であり、bはスケーリング項であり、cはオフセットである。ただし、ここでは、a*b + cという項が、ターゲットとされるテーブルに適用される線形インデックスに本質的に対応する、線形アドレス指定アプローチが採用される。これらの各命令はまた、オペコードおよびアクセスされているメモリ領域の識別子を含む。例えば、ルックアップテーブルメモリ領域からルックアップを実行する命令は、次のように表すことができる。
ここで、LOADはロード操作を識別するオペコードであり、LKUP_(name)はアクセスされているルックアップテーブルメモリ領域内のルックアップテーブルの名前を指定する。ここでも、複数のルックアップテーブルがスレッドによって使用されてもよく、したがって、ルックアップテーブルメモリ領域に存在する2つ以上のうちの適切な1つを識別するために、命名スキームが使用される。
図6は、アプリケーションソフトウェア開発およびシミュレーション環境601を示す。図2に関して上述したように、開発者は、全体的な意図された画像変換と整合する戦略的シーケンスでカーネルを配置することによって、包括的な画像処理機能(例:各段が専用の画像処理タスクを実行する画像処理パイプライン、他のDAG規定のルーチンセットなど)を開発することができる。カーネルはライブラリ602から呼び出されてもよく、および/または開発者が1つ以上のカスタムカーネルを開発してもよい。
a.画像プロセッサハードウェアアーキテクチャおよび動作
図7は、ハードウェアで実現される画像プロセッサのためのアーキテクチャ700の実施形態を示す。画像プロセッサは、例えば、シミュレートされた環境内で仮想プロセッサ用に書かれたプログラムコードを、ハードウェアプロセッサによって実際に実行されるプログラムコードに変換するコンパイラによって対象とされてもよい。図7に示すように、アーキテクチャ700は、複数のラインバッファユニット701_1〜701_M(以下、「ラインバッファ」、「ラインバッファユニット」など)を含み、それらは、複数のステンシルプロセッサユニット702_1〜702_N(以下、「ステンシルプロセッサ」、「ステンシルプロセッサユニット」など)および対応するシート生成部ユニット703_1〜703_N(以下、「シート生成部」、「シート生成部ユニット」など)に、ネットワーク704(例えば、ネットワークオンチップ(NOC)(オンチップスイッチネットワーク、オンチップリングネットワークまたは他の種類のネットワークを含む))を介して相互接続される。一実施形態では、どのラインバッファユニットが、ネットワーク704を介してどのシート生成部および対応するステンシルプロセッサに接続してもよい。
図9aは、ステンシルプロセッサユニットアーキテクチャ900の実施形態を示す。図9aにおいて見られるように、ステンシルプロセッサは、データ計算ユニット901、スカラープロセッサ902および関連するメモリ903およびI/Oユニット904を含む。データ計算ユニット901は、実行レーンのアレイ905、二次元シフトアレイ構造906、およびアレイの特定の行または列に関連する別個のそれぞれのランダムアクセスメモリ907を含む。
a.行/列合計演算
図13および図14a、図14bは、行/列合計演算に関する。行/合計列演算は、統計計算、ノイズ抑制、および大規模ダウンサンプリングに特に有用である。行合計演算および/または列合計演算は、先のセクションで上述した画像プロセッサの実施形態などの、二次元実行レーンアレイおよび対応する二次元シフトレジスタアレイを有する画像プロセッサ上で実施することができる。
図15および図16a〜図16dは、同様に、二次元実行レーンアレイおよび対応する二次元シフトレジスタを有する画像プロセッサ上で実行できる行/列プレフィックス合計演算に関する。行/列プレフィックス合計演算は、積分画像、ボックスフィルタの加速、および圧縮演算のためのアドレスの計算に特に有用である。図15を参照すると、単純化のため、単一の行のみが示されている。ただし、列に対して演算を実行することもできる。また、1行しか描かれていないが、様々な実現例において、すぐ上で論じた行/列合計演算と同様に、(すべての行/列を含む)レジスタアレイ内の任意の数の行(または列)を同時に合計することができる。加えて、図15の行の次元は8つの位置の幅であるよう示されているだけであるが、実際の実施においては、実行レーンアレイおよびシフトレジスタアレイは16×16以上であってもよい。
図17および図18a〜図18dは、二次元実行レーンアレイおよび対応する二次元シフトレジスタを有する画像プロセッサ上で同じく実行可能な行/列最小値発見演算に関する。行/列最小値発見演算は、統計計算およびブロックマッチングの後処理に特に役立つ。
図19a、図19bおよび図20は行列乗算に関する。行列乗算は、離散フーリエ変換またはコサイン変換(圧縮およびフィルタ処理の一般的な基本要素である)に対して、およびより大きな行列/乗算演算(一般に画像認識で使用される)を表現する場合に、特に便利である。2つの行列AおよびBの行列乗算は、結果における各行列座標位置について、座標位置の行内の要素と座標位置の列内のそれらの対応する要素との積を合計することによって実行される。図19bは、図19aの行列AおよびBの行列倍数について得られた行列Xを示す。ここで、結果として得られる行列C内の2つの座標位置1901、1902に対する行列AおよびBの関連付けられる部分積項が特別に示されている。
(a11*b11) + (a12*b21) + (a13*b31) + (a14*b41)
であり、これは、図19aの行列Aの行1901の要素が行列Bの列1902の対応する要素で乗算されるのに対応する。
(a21*b12) + (a22*b22) + (a23*b32) + (a24*b42)
であり、これは、図19aの行列Aの行1903の要素が行列Bの列1902の対応する要素で乗算されるのに対応する。これら2つの例からわかるように、結果として得られる行列C内の任意の座標位置x、yについての結果は、次のように表すことができる:
Σk = 1 to 4 (ax,k)*(bk,y)
図20a〜図20eは、二次元実行レーンアレイ、および対応する二次元シフトレジスタアレイの独自のシフト利点を使用する行列乗算演算の実施形態を示す。
図21は、二次元DFT(2D DFT)を示す。2D DFTは、ノイズの低減および畳み込みの高速化に特に役立つ。図21に見られるように、2D DFTは、2つの複素項2101、2102の積の二次元空間にわたる合計として表すことができる。複素項の第1のもの2101は、大きさおよび位相が時間および周波数の関数であるフェーザに対応する。実現例において、第1の複素項2101は、係数の第1の行列として明示的に計算される。複素項の第2のもの2102は、空間領域から周波数領域に変換されている信号に対応する。
当技術分野で知られているように、高速フーリエ変換(FFT)は、DFTに対する、より高速で、より計算量が少ないアプローチである。FFTは、時間領域または空間領域のデータを周波数領域のデータに迅速に変換するために、特別な効率的なアルゴリズムに依存する。そのようなアルゴリズムの重要な要素はバタフライアルゴリズムである。例示的なバタフライアルゴリズムを図23に示す。ここで、バタフライ演算は、特定の段が同じ行または列の要素間で発生するスワッピングの量を決定する段によって定義される。当技術分野で知られているように、完全なFFTは、バタフライ演算間で、複数の異なる段のバタフライ演算のスワップされた内容上で数学的演算を実行することを含む。
図25はブロックマッチングの図を示す。ブロックマッチングは、動き推定(例えば、ビデオ圧縮に対して)、画像安定化、および画像融合アルゴリズム(例えば、露出融合、および時間ノイズ融合)に特に有用である。ここで、第1のベース(例えば、前の)画像における特定の特徴が、代替の(例えば、後の)画像において探される。図26の例では、ベース画像に存在するブロックABCDが代替画像に見い出される必要がある。
図27は、プログラマーがハイレベル画像処理機能を設計する実行時前開発環境を示し、(図1から図6に関して上記で詳細に説明した仮想ISA環境を含むことができる)アプリケーション開発環境は、開発者が最初から前述のすべての特別な演算のいずれか/すべてを書く必要がないように、それらを提供する。
前のセクションから、セクション1.0で上述した仮想環境がコンピュータシステム上でインスタンス化され得ることを認識することが適切である。同様に、セクション2.0で上述したような画像プロセッサが、(例えば、携帯装置のカメラからのデータを処理する携帯装置のシステムオンチップ(SOC)の一部として)コンピュータシステム上のハードウェアにおいて具現化されてもよい。
Claims (6)
- プロセッサであって、
処理要素の二次元アレイを備え、各処理要素は、前記処理要素の二次元アレイの第1の次元に沿ってそれぞれの位置に関連付けられ、前記プロセッサはさらに、
二次元シフトレジスタアレイを備え、前記二次元シフトレジスタアレイは複数のシフトレジスタ面を有し、各シフトレジスタ面は別途の二次元シフトレジスタアレイを含み、前記二次元シフトレジスタアレイの各シフトレジスタは前記処理要素のうちの1つに専用であり、
前記プロセッサは、前記二次元シフトレジスタアレイの行または列に格納される第1の値のシーケンスから、前記第1の値のシーケンスのどの値が前記第1の値のシーケンスの他のすべての値よりも小さいかを計算する最小値発見(find-min)演算を実行するように命令を実行するよう構成され、
前記複数のシフトレジスタ面のうちの第1のシフトレジスタ面は最初に前記第1の値のシーケンスのデータを有し、前記複数のシフトレジスタ面のうちの第2のシフトレジスタ面は最初に前記第1の値のシーケンス内の各値のそれぞれのインデックス値を有し、
前記複数のシフトレジスタ面のうちの第3のシフトレジスタ面は、最初に、1つの位置だけシフトされた前記第1の値のシーケンスのデータを有し、前記複数のシフトレジスタ面のうちの第4のシフトレジスタ面は、最初に、前記第3のシフトレジスタ面における各値のそれぞれのインデックス値を有し、
前記命令は、前記プロセッサに、複数の反復を実行させ、各反復は演算を含み、前記演算は、
(i)前記処理要素に属する前記第1のシフトレジスタ面上のシフトレジスタと(ii)前記処理要素に属する前記第3のシフトレジスタ面上のシフトレジスタとの間で、より小さい値を計算することと、
前記より小さい値を前記第1のシフトレジスタ面上のシフトレジスタに格納し、対応するインデックス値を前記第2のシフトレジスタ面上のシフトレジスタに格納することと、
前記第3および第4のシフトレジスタ面内のデータを、前の反復に対して2倍になるシフト量で、前記行または列に沿って特定の方向にシフトすることとを、
前記二次元シフトレジスタアレイの前記行または前記列のすべてのデータが処理されるまで行うことを含む、プロセッサ。 - 前記演算はさらに、
ブロックマッチングプロセスを実行して、第1のシフトレジスタ面に格納される第1のブロックについて、第2のシフトレジスタ面に格納されるマッチングブロックの位置を識別することをさらに含み、前記第1のブロックは複数のデータ値を含み、前記第1のブロック内の前記複数のデータ値の各データ値に対して演算を実行することを含み、前記演算は、
前記データ値を前記処理要素の各々にブロードキャストすること、
各処理要素が、(i)前記データ値と(ii)前記処理要素に属する前記第2のシフトレジスタ面のシフトレジスタ内のデータとの間の差を計算すること、および
前記第1のブロックを有する前記第1のシフトレジスタ面を特定の方向に1単位シフトすることであり、
前記最小値発見演算を実行することは、前記第2のシフトレジスタ面に格納されているマッチングブロックの位置を識別する、請求項1に記載のプロセッサ。 - 前記二次元シフトレジスタアレイは、前記二次元シフトレジスタアレイの端部から前記二次元シフトレジスタアレイの反対側の端部にデータをラップするように構成される、請求項1または2に記載のプロセッサ。
- 前記二次元シフトレジスタアレイは、単一の命令または単一のサイクルで、複数のホップでデータをシフトするように構成される、請求項1〜3のいずれか1項に記載のプロセッサ。
- 前記命令は、前記プロセッサに、前記二次元シフトレジスタアレイの複数の行または複数の列上で最小値発見演算を並列で実行させる、請求項1〜4のいずれか1項に記載のプロセッサ。
- 前記処理要素の二次元アレイは少なくとも8×8の処理要素のアレイを含む、請求項1〜5のいずれか1項に記載のプロセッサ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/201,269 US20180005346A1 (en) | 2016-07-01 | 2016-07-01 | Core Processes For Block Operations On An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register |
US15/201,269 | 2016-07-01 | ||
PCT/US2017/036565 WO2018005037A1 (en) | 2016-07-01 | 2017-06-08 | Core processes for block operations on an image processor having a two-dimensional execution lane array and a two-dimensional shift register |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019519863A JP2019519863A (ja) | 2019-07-11 |
JP6837084B2 true JP6837084B2 (ja) | 2021-03-03 |
Family
ID=59258352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018568290A Active JP6837084B2 (ja) | 2016-07-01 | 2017-06-08 | 二次元実行レーンアレイおよび二次元シフトレジスタを有する画像プロセッサ上でのブロック処理のためのコアプロセス |
Country Status (9)
Country | Link |
---|---|
US (2) | US20180005346A1 (ja) |
EP (1) | EP3479341B1 (ja) |
JP (1) | JP6837084B2 (ja) |
KR (1) | KR102232723B1 (ja) |
CN (1) | CN107563954B (ja) |
DE (2) | DE202017103727U1 (ja) |
GB (2) | GB2576278B (ja) |
TW (2) | TWI646501B (ja) |
WO (1) | WO2018005037A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180007302A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register |
US11321802B2 (en) | 2018-02-27 | 2022-05-03 | Google Llc | Large lookup tables for an image processor |
JP7035751B2 (ja) * | 2018-04-12 | 2022-03-15 | 富士通株式会社 | コード変換装置、コード変換方法、及びコード変換プログラム |
US10776110B2 (en) * | 2018-09-29 | 2020-09-15 | Intel Corporation | Apparatus and method for adaptable and efficient lane-wise tensor processing |
US10552939B1 (en) | 2019-02-12 | 2020-02-04 | Google Llc | Image processor complex transfer functions |
US20210081691A1 (en) * | 2019-09-16 | 2021-03-18 | SambaNova Systems, Inc. | Efficient Execution of Operation Unit Graphs on Reconfigurable Architectures Based on User Specification |
US11410027B2 (en) | 2019-09-16 | 2022-08-09 | SambaNova Systems, Inc. | Performance estimation-based resource allocation for reconfigurable architectures |
CN113536220A (zh) * | 2020-04-21 | 2021-10-22 | 中科寒武纪科技股份有限公司 | 运算方法、处理器及相关产品 |
GB2595696B (en) * | 2020-06-04 | 2022-12-28 | Envisics Ltd | Forming a hologram of a target image for projection using data streaming |
CN112784977B (zh) * | 2021-01-15 | 2023-09-08 | 北方工业大学 | 一种目标检测卷积神经网络加速器 |
WO2023089610A1 (en) * | 2021-11-18 | 2023-05-25 | Deci.Ai Ltd. | System and method for optimizing calculation of butterfly transforms by a processing unit |
Family Cites Families (87)
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 |
EP0293701B1 (en) | 1987-06-01 | 1994-08-10 | Applied Intelligent Systems, Inc. | Parallel neighborhood processing system and method |
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 |
US5173947A (en) * | 1989-08-01 | 1992-12-22 | Martin Marietta Corporation | Conformal image processing apparatus and method |
IL94232A0 (en) * | 1990-04-27 | 1991-01-31 | Israel Defence | Electrical apparatus particularly useful as an electromagnetic pulse simulator |
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 | ソニー株式会社 | 画像データ処理装置および画像データ処理方法 |
US5848286A (en) | 1994-03-29 | 1998-12-08 | Cray Research, Inc. | Vector word shift by vo shift count in vector supercomputer processor |
US5606707A (en) * | 1994-09-30 | 1997-02-25 | Martin Marietta Corporation | Real-time image processor |
US5612693A (en) | 1994-12-14 | 1997-03-18 | International Business Machines Corporation | Sliding window data compression using a toroidal bit shift register |
JPH08194679A (ja) * | 1995-01-19 | 1996-07-30 | Texas Instr Japan Ltd | ディジタル信号処理方法及び装置並びにメモリセル読出し方法 |
EP0875031B1 (de) * | 1996-01-15 | 2001-06-20 | Infineon Technologies AG | Prozessor zur bildverarbeitung |
US6016395A (en) * | 1996-10-18 | 2000-01-18 | Samsung Electronics Co., Ltd. | Programming a vector processor and parallel programming of an asymmetric dual multiprocessor comprised of a vector processor and a risc processor |
US5892962A (en) | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
US6148111A (en) * | 1998-04-27 | 2000-11-14 | The United States Of America As Represented By The Secretary Of The Navy | Parallel digital image compression system for exploiting zerotree redundancies in wavelet coefficients |
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 |
US6970196B1 (en) | 1999-03-16 | 2005-11-29 | Hamamatsu Photonics K.K. | High-speed vision sensor with image processing function |
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 |
AU2003286131A1 (en) | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
US20060044576A1 (en) | 2004-07-30 | 2006-03-02 | Kabushiki Kaisha Toshiba | Apparatus for image processing |
US20050216700A1 (en) * | 2004-03-26 | 2005-09-29 | Hooman Honary | Reconfigurable parallelism architecture |
EP1763769A2 (en) * | 2004-05-03 | 2007-03-21 | Silicon Optix | A bit serial processing element for a simd array processor |
US7667764B2 (en) | 2004-06-04 | 2010-02-23 | Konica Minolta Holdings, Inc. | Image sensing apparatus |
JP4219887B2 (ja) | 2004-12-28 | 2009-02-04 | 富士通マイクロエレクトロニクス株式会社 | 画像処理装置及び画像処理方法 |
DE602006021001D1 (de) | 2005-04-28 | 2011-05-12 | Univ Edinburgh | Umkonfigurierbares anweisungs-zellen-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 |
US7991817B2 (en) * | 2006-01-23 | 2011-08-02 | California Institute Of Technology | Method and a circuit using an associative calculator for calculating a sequence of non-associative operations |
GB2436377B (en) * | 2006-03-23 | 2011-02-23 | Cambridge Display Tech Ltd | Data processing hardware |
US7802073B1 (en) | 2006-03-29 | 2010-09-21 | Oracle America, Inc. | Virtual core management |
US7933940B2 (en) * | 2006-04-20 | 2011-04-26 | International Business Machines Corporation | Cyclic segmented prefix circuits for mesh networks |
US20080111823A1 (en) | 2006-11-13 | 2008-05-15 | Faraday Technology Corp. | Graphics processing system |
EP1927950A1 (en) | 2006-12-01 | 2008-06-04 | Thomson Licensing | Array of processing elements with local registers |
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 | ブラザー工業株式会社 | 画像処理装置および画像処理プログラム |
WO2009031302A1 (ja) | 2007-09-05 | 2009-03-12 | Tohoku University | 固体撮像素子及びその駆動方法 |
US8661226B2 (en) * | 2007-11-15 | 2014-02-25 | Nvidia Corporation | System, method, and computer program product for performing a scan operation on a sequence of single-bit values using a parallel processor architecture |
US9619428B2 (en) | 2008-05-30 | 2017-04-11 | Advanced Micro Devices, Inc. | SIMD processing unit with local data share and access to a global data share of a GPU |
US8225325B2 (en) * | 2008-06-06 | 2012-07-17 | Apple Inc. | Multi-dimensional thread grouping for multiple processors |
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 |
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 |
GB201007406D0 (en) | 2010-05-04 | 2010-06-16 | Aspex Semiconductor Ltd | Block motion estimation |
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 |
CN103339604B (zh) | 2011-01-31 | 2016-10-26 | 株式会社索思未来 | 程序生成装置、程序生成方法、处理器装置以及多处理器系统 |
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 |
JP5742651B2 (ja) | 2011-10-15 | 2015-07-01 | コニカミノルタ株式会社 | 画像処理装置、連携方法および連携プログラム |
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 |
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 |
US9319254B2 (en) * | 2012-08-03 | 2016-04-19 | Ati Technologies Ulc | Methods and systems for processing network messages in an accelerated processing device |
US9378181B2 (en) | 2012-11-09 | 2016-06-28 | Intel Corporation | Scalable computing array |
US8954992B2 (en) | 2013-03-15 | 2015-02-10 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Distributed and scaled-out network switch and packet processing |
US10996959B2 (en) * | 2015-01-08 | 2021-05-04 | Technion Research And Development Foundation Ltd. | Hybrid processor |
US9749548B2 (en) | 2015-01-22 | 2017-08-29 | Google Inc. | Virtual linebuffers for image signal processors |
US9772852B2 (en) | 2015-04-23 | 2017-09-26 | Google Inc. | Energy efficient processor core architecture for image processor |
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 |
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 |
US9756268B2 (en) | 2015-04-23 | 2017-09-05 | Google Inc. | Line buffer unit for image processor |
US10291813B2 (en) | 2015-04-23 | 2019-05-14 | Google Llc | Sheet generator 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 |
US9632979B2 (en) * | 2015-06-01 | 2017-04-25 | Intel Corporation | Apparatus and method for efficient prefix sum operation |
-
2016
- 2016-07-01 US US15/201,269 patent/US20180005346A1/en not_active Abandoned
-
2017
- 2017-05-17 US US15/598,082 patent/US9978116B2/en active Active
- 2017-06-08 WO PCT/US2017/036565 patent/WO2018005037A1/en unknown
- 2017-06-08 JP JP2018568290A patent/JP6837084B2/ja active Active
- 2017-06-08 KR KR1020197003054A patent/KR102232723B1/ko active IP Right Grant
- 2017-06-08 EP EP17734557.6A patent/EP3479341B1/en active Active
- 2017-06-20 GB GB1916257.7A patent/GB2576278B/en active Active
- 2017-06-20 GB GB201709788A patent/GB2553632B/en active Active
- 2017-06-22 DE DE202017103727.4U patent/DE202017103727U1/de active Active
- 2017-06-22 DE DE102017113867.6A patent/DE102017113867A1/de active Pending
- 2017-06-30 TW TW106121883A patent/TWI646501B/zh active
- 2017-06-30 TW TW107141459A patent/TWI690896B/zh active
- 2017-07-03 CN CN201710534983.0A patent/CN107563954B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
DE102017113867A1 (de) | 2018-01-04 |
EP3479341A1 (en) | 2019-05-08 |
TWI646501B (zh) | 2019-01-01 |
TW201921314A (zh) | 2019-06-01 |
WO2018005037A1 (en) | 2018-01-04 |
US20180005346A1 (en) | 2018-01-04 |
GB201916257D0 (en) | 2019-12-25 |
KR20190028454A (ko) | 2019-03-18 |
JP2019519863A (ja) | 2019-07-11 |
EP3479341B1 (en) | 2023-11-29 |
US20180005347A1 (en) | 2018-01-04 |
DE202017103727U1 (de) | 2017-11-02 |
GB2553632A (en) | 2018-03-14 |
TW201810180A (zh) | 2018-03-16 |
US9978116B2 (en) | 2018-05-22 |
GB201709788D0 (en) | 2017-08-02 |
CN107563954B (zh) | 2021-04-20 |
GB2576278A (en) | 2020-02-12 |
TWI690896B (zh) | 2020-04-11 |
GB2553632B (en) | 2019-12-25 |
CN107563954A (zh) | 2018-01-09 |
GB2576278B (en) | 2020-09-16 |
KR102232723B1 (ko) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6821715B2 (ja) | 二次元実行レーンアレイおよび二次元シフトレジスタを有する画像プロセッサのためのブロック処理 | |
JP6837084B2 (ja) | 二次元実行レーンアレイおよび二次元シフトレジスタを有する画像プロセッサ上でのブロック処理のためのコアプロセス | |
US10216487B2 (en) | Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure | |
WO2016171846A1 (en) | Compiler for translating between a virtual image processor instruction set architecture (isa) and target hardware having a two-dimensional shift array structure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190308 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190308 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200423 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200519 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200727 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20200901 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201208 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20201208 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20201216 |
|
C21 | Notice of transfer of a case for reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C21 Effective date: 20201222 |
|
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: 20210112 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210208 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6837084 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |