JP6793162B2 - 画像プロセッサのためのラインバッファユニット - Google Patents
画像プロセッサのためのラインバッファユニット Download PDFInfo
- Publication number
- JP6793162B2 JP6793162B2 JP2018176186A JP2018176186A JP6793162B2 JP 6793162 B2 JP6793162 B2 JP 6793162B2 JP 2018176186 A JP2018176186 A JP 2018176186A JP 2018176186 A JP2018176186 A JP 2018176186A JP 6793162 B2 JP6793162 B2 JP 6793162B2
- Authority
- JP
- Japan
- Prior art keywords
- line
- line buffer
- buffer interface
- interface unit
- unit
- 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
- 230000015654 memory Effects 0.000 claims description 90
- 238000000034 method Methods 0.000 claims description 39
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 47
- 230000008569 process Effects 0.000 description 31
- 238000013461 design Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 12
- 238000011161 development Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 238000013500 data storage 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
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 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
- 238000010801 machine learning Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 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
- 238000013519 translation Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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
- H04N25/70—SSIS architectures; Circuits associated therewith
- H04N25/701—Line sensors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/91—Television signal processing therefor
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Image Input (AREA)
- Information Transfer Systems (AREA)
- Memory System (AREA)
Description
本発明は、一般に、画像処理に関し、特に、画像プロセッサのラインバッファ部に関する。
画像処理は、典型的には、アレイに編成されたピクセル値の処理を含む。ここで、空間的に編成された二次元アレイは、画像の二次元的性質を捕捉する(追加の次元は、時間(例えば二次元画像のシーケンス)およびデータタイプ(例えば色)を含み得る。典型的なケースでは、アレイ化されたピクセル値は、静止画像または動きの画像を捕捉するためにフレームのシーケンスを生成したカメラによって提供される。伝統的な画像プロセッサは、典型的には、2つの極端な側面のいずれかに分類される。
複数のラインバッファインタフェースユニットからなるラインバッファユニットを含む装置が記載される。各ラインバッファインタフェースユニットは、それぞれの作成側による1つ以上の要求を処理して、それぞれのライングループをメモリに格納し、それぞれの消費側による1つ以上の要求を処理して、メモリからそれぞれのライングループをフェッチおよび提供する。ラインバッファユニットは、異なる画像サイズに対する異なるライングループサイズがメモリに記憶可能となるように情報がライングループサイズを確立するプログラマブルな記憶空間を有する。
以下の説明および添付の図面は、本発明の実施形態を例示するために使用される。
i.導入
以下の説明は、広く汎用性のあるアプリケーションソフトウェア開発環境を提供する新たな画像処理技術プラットフォームに関する多数の実施形態を記載するものであり、それは改善された電力効率を提供するために、より大きなデータのブロック(例えば、以下にさらに説明するようなライングループおよびシート)を使用する。
a.カーネルの用途および構造
図1は、仮想画像処理環境101と、実際の画像処理ハードウェア103と、仮想処理環境101のために書かれたよりハイレベルのコードを、実際のハードウェア103が物理的に実行するオブジェクトコードに変換するためのコンパイラ102とを含む、画像プロセッサ技術プラットフォームのハイレベル図である。以下でより詳細に説明するように、仮想処理環境101は、アプリケーションの構成プロセスの容易な視覚化のために開発および調整できるアプリケーションの点で、広く汎用性が高い。開発者104によるプログラムコード開発努力が完了すると、コンパイラ102は、仮想処理環境101内で書か
れたコードを、実際のハードウェア103に対して対象とされるオブジェクトコードに変換する。
グループに対して動作することを意識し得、または、開発環境は、例えば、出力フレーム内のすべてのピクセル(例えば、それ自身の専用プロセッサおよびスレッドによって生成された出力フレームにおけるすべてのピクセル)に対して別個のプロセッサおよびスレッドが存在する抽象化を提示し得る。いずれにせよ、様々な実施形態において、開発者は、各出力ピクセルについて個々のスレッドを含むようにカーネルを理解する(出力アレイが視覚化されているかどうかは、出力フレーム全体またはその一部である)。
ル位置を含みそれを囲む入力アレイのピクセルを処理することによって決定される。例えば、図3からわかるように、出力アレイ304の位置X1は、入力アレイ303の位置Eに対応する。したがって、出力値X1を決定するために処理されるであろう入力アレイ303のピクセル値のステンシルは、入力値ABCDEFGHIに対応するであろう。同様に、出力値X2を決定するために処理される入力アレイピクセルのステンシルは、入力値DEFGHIJKLに対応するであろう。
様々な実施形態において、仮想プロセッサの関連する特徴は、それらのメモリモデルである。当該技術分野で理解されるように、プロセッサは、メモリからデータを読み出し、そのデータを操作し、新たなデータをメモリに書き戻す。メモリモデルは、プロセッサが有する、データがメモリ内に編成される方法のパースペクティブまたはビューである。一実施形態では、仮想プロセッサのメモリモデルは、入力アレイ領域および出力アレイ領域の両方を含む。スレッドの入力ピクセル値は入力アレイ領域に格納され、スレッドによって生成された出力ピクセル値は出力アレイ領域に格納される。
ることを本質的に可能にする非常に汎用性の高いプログラミング環境を可能にする。位置相対的アドレス指定方式を採用する命令のための様々な命令フォーマットの実施形態が、サポートされるISAの他の特徴の実施形態とならんで、以下により詳細に説明される。
a.画像プロセッサハードウェアアーキテクチャおよび動作
図4は、ハードウェアで実現される画像プロセッサのためのアーキテクチャ400の実施形態を示す。画像プロセッサは、例えば、シミュレートされた環境内で仮想プロセッサ用に書かれたプログラムコードを、ハードウェアプロセッサによって実際に実行されるプログラムコードに変換するコンパイラによって対象とされてもよい。図4に示すように、アーキテクチャ400は、複数のラインバッファユニット401_1〜401_Mを含み、それらは、複数のステンシルプロセッサユニット402_1〜402_Nおよび対応するシート生成部ユニット403_1〜403_Nに、ネットワーク404(例えば、ネットワークオンチップ(NOC)(オンチップスイッチネットワーク、オンチップリングネットワークまたは他の種類のネットワークを含む))を介して相互接続される。一実施形態では、どのラインバッファユニットが、ネットワーク404を介してどのシート生成部および対応するステンシルプロセッサに接続してもよい。
とともに構成し、適切な制御フローフックをハードウェアに構成して、出力画像をDAG設計における1つのカーネルから次のカーネルの入力に向けることによって、行なってもよい。
のハイレベルの実施形態を示す。
を継続する次のシート505を提供する。ステンシルが次のシートに対して動作を開始するときのステンシルの初期位置は、(先に図5dに示されている)最初のシート上の消耗点から右への次の進行であることに留意されたい。新たなシート505で、ステンシルプロセッサが最初のシートの処理と同じ態様で新たなシートに対して動作するにつれ、ステンシルは単に右に移動し続ける。
図6は、ステンシルプロセッサ600の実施形態を示す。図6において見られるように、ステンシルプロセッサは、データ計算ユニット601、スカラープロセッサ602および関連するメモリ603およびI/Oユニット604を含む。データ計算ユニット601は、実行レーンのアレイ605、二次元シフトアレイ構造606、およびアレイの特定の行または列に関連する別個のランダムアクセスメモリ607を含む。
セット(例えば、命令を実行することができる論理回路系)を指す。実行レーンは、しかしながら、様々な実施形態では、単なる実行ユニットを超えた、よりプロセッサに似た機能を含むことができる。例えば、1つ以上の実行ユニットに加えて、実行レーンは、受信された命令をデコードする論理回路系、または、よりMIMDのような設計の場合、命令をフェッチおよびデコードする論理回路系を含むことができる。MIMDのようなアプローチに関しては、ここでは集中プログラム制御アプローチが主に記載されているが、より分散型のアプローチが様々な代替実施形態(例えば、アレイ605の各実行レーン内のプログラムコードおよびプログラムコントローラを含む)において実施されてもよい。
a.ラインバッファユニット概観
上記におけるセクション1.0での議論から、様々な実施形態において、ハードウェアプラットフォーム用に書かれたプログラムコードは、その命令フォーマットが入力および出力アレイ位置、例えば、X、Y座標を特定するロードおよびストア命令を有する命令セットを含む一意的な仮想コードで書かれる。様々な実施態様において、X、Y座標情報は実際にはハードウェアプラットフォームにプログラミングされ、そのコンポーネントの様々なものによって認識/理解される。これは、例えば、X、Y座標を(例えばコンパイラ内で)異なる情報に変換することとは別である。例えば、ステンシルプロセッサ内の二次元シフトレジスタ構造の場合、X、Y座標情報はレジスタシフト移動に変換される。対照的に、ハードウェアプラットフォームの他の部分は、元はより高い仮想コードレベルで表現されるX、Y座標情報を具体的に受け取り、理解してもよい。
ように、一実施形態では、特定のカーネルのためのオブジェクトコードが、ステンシルプロセッサのスカラープロセッサ705のプログラム空間にロードされる。
の下側部分を規定してもよい。
ト回路系901に結合されるメモリ902を含む。ラインバッファユニット回路系901は、例えば、専用の論理回路系で構成することができる。ラインバッファユニット回路系901内では、メモリ902内のライングループ903_1〜903_N毎にラインバッファインタフェースユニット904_1〜904_Nが確保されている。様々な実施形態では、ラインバッファユニットが任意の時点で管理できるライングループの数の上限を設定する固定数のラインバッファインタフェースユニット904_1〜904_Nが存在する(N個より少ないライングループがアクティブである場合、対応するより少ない数のラインバッファユニットインタフェースが起動され、いつでも使用される)。
次のライングループの割り当ての一部としてラインバッファインタフェースユニットに提供される更新された構成情報911に関して、公称の場合、ラインバッファユニット900それ自体は、例えば、1つ以上の消費側からなる固定されたセットに供給しているわずか1つの固定された作成側の静的な構成を処理している。この場合、主要な構成情報(例えば、ライングループサイズ、消費側の数など)も静的でありがちであり、ライングループからライングループに変化しない。むしろ、ラインバッファインタフェースユニットに提供される新たな構成情報は、主に新たなライングループ(例えば、メモリ内のライングループの位置など)を識別する。しかしながら、より複雑な潜在的な構成/設計も可能である。これらのうちのいくつかは、この後より詳細に説明される。
ライングループは作成側から受け取られ、消費側にそれらのそれぞれのデータの全量を含むとして送られる)。完全ライングループモードでは、Num_Channelsフィールド922、Row_Widthフィールド924およびFB_Rowsフィールド926をFB_Addressフィールド930とともに使用して、ある完全なライングループに完全にアクセスするためにメモリに適用されるアドレスの範囲を決定することができる。さらに、これらの同じパラメータを使用して、X、Y座標でライングループを要求したシート生成部からの要求を線形メモリアドレスに「変換」することができる。
935は、本質的に、処理される画像の寸法と、画像からそれぞれ分割されるべきライングループに対して動作するステンシルの寸法を記述する。両方のフィールド934,935は、X、Y座標値によって表現することができ、コンパイラから提供することができることに留意されたい。さらに、一実施形態では、ラインバッファ回路系ユニット(図9bには図示せず)内の制御論理回路は、Image_SizeおよびStencil_Dimensionフィールド934,935を使用して、ラインバッファインタフェースユニットが、グローバル情報が関係する作成側/消費側の組からのライングループを処理するように割り当てられているときに、バッファインタフェースユニットのレジスタ空間にロードされるラインにロードされるRow_Width924、FB_Rows926およびFB_Base_Address値930を決定する。代替的またはさらなる実施形態では、画像サイズは2つの別個の値、image_widthおよびimage_heightとして表され、それらはそれらの別個にアドレス指定可能なレジスタ空間を有してもよい。同様に、ステンシルサイズは、2つの別個の値、stencil_widthおよびstencil_heightとして表現されてもよく、それらはそれらの別個にアドレス指定可能なレジスタ空間を有してもよい。
調したが、他のまたは組み合わせられた実施形態では、構成情報をメモリ(バッファユニットメモリなど)または他のメモリもしくは情報保持回路系に保持することができる。
上記の議論は、大部分は、「完全ライングループ」モードに主に向けられ、そこにおいては、ライングループは、完全な全ライングループとして言及され、シート生成部とラインバッファユニットとの間で渡される。「仮想的に高い」と呼ばれる別のモードでは、ライングループは、分離した個別のセグメントで完成される全幅の上側部分および下側部分として言及され、シート生成部間で渡される。
強化された実施形態を示す。ここでは、書込ポインタ1141が、作成側シート生成部によって提供された下側部分を追跡するポインタ制御論理回路系1143によって維持される。本質的に、書込ポインタ1141は、作成側が送る予定の「次の」部分の位置を記憶する。さらに、ポインタ状態情報はシート生成部がX、Y座標を指定することなく(全幅モードで)「次の」全幅のライングループのみを指すことを可能にする(なぜなら、ラインバッファインタフェースユニットは画像についての次の全幅のライングループがどこにあるかを決定することができるからである)。
上述した様々な画像プロセッサアーキテクチャの特徴は、必ずしも従来の意味での画像処理に限定されず、したがって、画像プロセッサを再特徴付けしてもよい(またはしなくてもよい)他のアプリケーションに適用することができることを指摘することが適切である。例えば、実際のカメラ画像の処理とは対照的に、アニメーションの作成および/または生成および/またはレンダリングにおいて上述した様々な画像プロセッサアーキテクチャの特徴のいずれかが使用される場合、画像プロセッサはグラフィックス処理ユニットとして徳経づけられてもよい。さらに、上述した画像プロセッサアーキテクチャの特徴は、ビデオ処理、視覚処理、画像認識および/または機械学習などの他の技術的用途にも適用することができる。このように適用されて、画像プロセッサは、より汎用的なプロセッサ(例えば、コンピューティングシステムのCPUの一部であるか、またはその一部である)と(例えばコプロセッサとして)一体化されてもよく、またはコンピューティングシステム内のスタンドアロンプロセッサであってもよい。
ラフィックスプロセッサユニットにも適用可能であることにも留意されたい。
度を測定することができる深度カメラを含む。アプリケーションプロセッサまたは他のプロセッサの汎用CPUコア(もしくはプログラムコードを実行するために命令実行パイプラインを有する他の機能ブロック)上で実行されるアプリケーションソフトウェア、オペレーティングシステムソフトウェア、デバイスドライバソフトウェアおよび/またはファームウェアは、上記の機能のいずれかを実行してもよい。
Claims (16)
- デバイスであって、
複数のラインバッファインタフェースユニットと、
複数のライングループに分割された画像データを格納するよう構成されたメモリユニットとを備え、
前記デバイスは、前記複数のライングループのそれぞれのライングループに対する読出および書込要求を管理するよう、各ラインバッファインタフェースユニットを割当てるように構成され、
各ラインバッファインタフェースユニットは、作成側コンポーネントから書込要求を受信し、前記書込要求に対応する前記メモリユニット内の書込位置を特定し、前記書込要求に従って前記メモリユニット内の前記書込位置にデータを格納するように構成され、
各ラインバッファインタフェースユニットは、1つ以上の消費側コンポーネントから読出要求を受信し、前記読出要求に対応する前記メモリユニット内の読出位置を特定し、前記読出要求に従って前記メモリユニット内の前記読出位置に格納されたデータを提供するよう構成され、
あるラインバッファインタフェースユニットが、特定のライングループについて1つ以上の消費側コンポーネントからのすべての未処理の読出要求を完了すると、前記デバイスは、異なるライングループに対する読出および書込要求を管理するよう、前記あるラインバッファインタフェースユニットを再割り当てするよう構成され、
各ラインバッファインタフェースユニットは、前記各ラインバッファインタフェースユニットが割当てられるライングループのプロパティを表すデータを格納するように構成された専用のプログラマブルなユニット構成空間を有し、
あるラインバッファインタフェースユニットが第1のライングループから第2のライングループに再割り当てされると、前記デバイスは、前記第2のライングループのプロパティを表すよう、前記あるラインバッファインタフェースユニットの前記プログラマブルなユニット構成空間内のデータを更新する、デバイス。 - 前記プログラマブルなユニット構成空間内の前記データは、前記ラインバッファインタフェースユニットが同時にサービスすることができる最大数の消費側コンポーネント、前記ライングループの行幅、または前記ライングループの前記メモリユニットにおけるベース線形アドレスを表す、請求項1に記載のデバイス。
- 前記デバイスは、画像データが前記メモリユニットに格納された画像の全体のサイズを表すデータを格納するように構成されたプログラマブルなグローバル構成空間を有する、請求項1または2に記載のデバイス。
- 前記プログラマブルなグローバル構成空間は、複数のアクティブなラインバッファインタフェースユニットを表すデータを格納するように構成される、請求項3に記載のデバイス。
- 前記デバイスは、前記プログラマブルなユニット構成空間内の1つ以上のデータ値を、前記デバイスのプログラマブルなグローバル構成空間内の1つ以上のデータ値から動的に計算するように構成される、請求項1に記載のデバイス。
- 前記デバイスは、前記プログラマブルなグローバル構成空間の画像サイズおよびステンシル寸法要素から前記プログラマブルなユニット構成空間内の複数の完全なライングループの行またはライングループベースアドレスを計算するように構成される、請求項5に記載のデバイス。
- 各ラインバッファインタフェースユニットは、値の対を前記メモリユニット内の線形アドレスに変換するように構成された変換回路系を有する、請求項1〜6のいずれか1項に記載のデバイス。
- 各ラインバッファインタフェースユニットは、次の読出要求で提供されるべきライングループの現在または次のセグメントに対してポインタを維持するよう構成される、請求項1〜7のいずれか1項に記載のデバイス。
- 複数のラインバッファインタフェースユニットと、複数のライングループに分割された画像データを格納するメモリユニットとを有するデバイスが、前記複数のライングループのそれぞれのライングループに対する読出および書込要求を管理するよう、各ラインバッファインタフェースユニットを割当てることと、
前記複数のラインバッファインタフェースユニットのうちの特定のラインバッファインタフェースユニットが、前記デバイスの作成側コンポーネントから書込要求を受信することと、
前記特定のラインバッファインタフェースユニットが、前記書込要求に対応する前記メモリユニット内の書込位置を特定することと、
前記特定のラインバッファインタフェースユニットが、前記書込要求に従って前記メモリユニット内の前記書込位置にデータを格納することと、
前記特定のラインバッファインタフェースユニットが、前記デバイスの1つ以上の消費側コンポーネントから読出要求を受信することと、
前記特定のラインバッファインタフェースユニットが、前記読出要求に対応する前記メモリユニット内の読出位置を特定することと、
前記特定のラインバッファインタフェースユニットが、前記読出要求に従って前記メモリユニット内の前記読出位置に格納されたデータを提供すること、
あるラインバッファインタフェースユニットが特定のライングループに対する1つ以上の消費側コンポーネントからのすべての未処理の読出要求を完了した、という指示を前記デバイスが受信することと、
これに応答して、前記デバイスが、異なるライングループに対する読出および書込要求を管理するよう、前記あるラインバッファインタフェースユニットを再割り当てすることとを備え、
各ラインバッファインタフェースユニットは、前記各ラインバッファインタフェースユニットが割当てられるライングループのプロパティを表すデータを格納するように構成された専用のプログラマブルなユニット構成空間を有し、
前記ラインバッファインタフェースユニットを再割り当てすることは、前記デバイスが、前記異なるライングループのプロパティを表すよう、前記ラインバッファインタフェースユニットの前記プログラマブルなユニット構成空間内のデータを更新することを含む、方法。 - 前記プログラマブルなユニット構成空間内の前記データは、前記ラインバッファインタフェースユニットが同時にサービスすることができる最大数の消費側コンポーネント、前記ライングループの行幅、または前記ライングループの前記メモリユニットにおけるベース線形アドレスを表す、請求項9に記載の方法。
- 前記デバイスは、画像データが前記メモリユニットに格納された画像の全体のサイズを表すデータを格納するように構成されたプログラマブルなグローバル構成空間を有する、請求項9または10に記載の方法。
- 前記プログラマブルなグローバル構成空間は、複数のアクティブなラインバッファインタフェースユニットを表すデータを格納するように構成される、請求項11に記載の方法。
- 前記デバイスが、前記プログラマブルなユニット構成空間内の1つ以上のデータ値を、前記デバイスのプログラマブルなグローバル構成空間内の1つ以上のデータ値から動的に計算することをさらに備える、請求項9に記載の方法。
- 前記デバイスが、前記プログラマブルなグローバル構成空間の画像サイズおよびステンシル寸法要素から前記プログラマブルなユニット構成空間内の複数の完全なライングループの行またはライングループベースアドレスを計算することをさらに備える、請求項13に記載の方法。
- 各ラインバッファインタフェースユニットは変換回路系を有し、前記特定のラインバッファインタフェースユニットの変換回路系が、値の対を前記メモリユニット内の線形アドレスに変換することをさらに備える、請求項9〜14のいずれか1項に記載の方法。
- 前記特定のラインバッファインタフェースユニットが、次の読出要求で提供されるべきライングループの現在または次のセグメントに対してポインタを維持することをさらに備える、請求項9〜15のいずれか1項に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/694,712 US9756268B2 (en) | 2015-04-23 | 2015-04-23 | Line buffer unit for image processor |
US14/694,712 | 2015-04-23 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017550919A Division JP6408717B2 (ja) | 2015-04-23 | 2016-03-31 | 画像プロセッサのためのラインバッファユニット |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2019053736A JP2019053736A (ja) | 2019-04-04 |
JP2019053736A5 JP2019053736A5 (ja) | 2019-05-16 |
JP6793162B2 true JP6793162B2 (ja) | 2020-12-02 |
Family
ID=55754441
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017550919A Active JP6408717B2 (ja) | 2015-04-23 | 2016-03-31 | 画像プロセッサのためのラインバッファユニット |
JP2018176186A Active JP6793162B2 (ja) | 2015-04-23 | 2018-09-20 | 画像プロセッサのためのラインバッファユニット |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017550919A Active JP6408717B2 (ja) | 2015-04-23 | 2016-03-31 | 画像プロセッサのためのラインバッファユニット |
Country Status (7)
Country | Link |
---|---|
US (4) | US9756268B2 (ja) |
EP (1) | EP3286723B1 (ja) |
JP (2) | JP6408717B2 (ja) |
KR (1) | KR102013404B1 (ja) |
CN (1) | CN107533751B (ja) |
DE (1) | DE112016001866T5 (ja) |
WO (1) | WO2016171869A1 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9749548B2 (en) | 2015-01-22 | 2017-08-29 | Google Inc. | Virtual linebuffers for image signal processors |
US9756268B2 (en) | 2015-04-23 | 2017-09-05 | Google Inc. | Line buffer unit for image processor |
GB2539461B (en) * | 2015-06-16 | 2020-01-08 | Canon Kk | Image data encapsulation |
US10313641B2 (en) | 2015-12-04 | 2019-06-04 | Google Llc | Shift register with reduced wiring complexity |
US9830150B2 (en) | 2015-12-04 | 2017-11-28 | Google Llc | Multi-functional execution lane for image processor |
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 |
US10204396B2 (en) | 2016-02-26 | 2019-02-12 | Google Llc | Compiler managed memory for image processor |
US10380969B2 (en) | 2016-02-28 | 2019-08-13 | Google Llc | Macro I/O unit for image processor |
US10699362B2 (en) * | 2016-06-23 | 2020-06-30 | Intel Corporation | Divergent control flow for fused EUs |
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 |
US20180005346A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Core Processes For Block Operations On An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register |
US10546211B2 (en) | 2016-07-01 | 2020-01-28 | Google Llc | Convolutional neural network on programmable two dimensional image processor |
US20180005059A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Statistics Operations On Two Dimensional Image Processor |
US10467056B2 (en) * | 2017-05-12 | 2019-11-05 | Google Llc | Configuration of application software on multi-core image processor |
US10489199B2 (en) * | 2017-05-12 | 2019-11-26 | Google Llc | Program code transformations to improve image processor runtime efficiency |
US10430919B2 (en) * | 2017-05-12 | 2019-10-01 | Google Llc | Determination of per line buffer unit memory allocation |
US10503689B2 (en) * | 2017-05-15 | 2019-12-10 | Google Llc | Image processor I/O unit |
US10489878B2 (en) * | 2017-05-15 | 2019-11-26 | Google Llc | Configurable and programmable image processor unit |
US10657617B1 (en) * | 2018-11-26 | 2020-05-19 | GM Global Technology Operations LLC | Method and apparatus for memory access management for data processing |
US11221976B2 (en) * | 2019-01-25 | 2022-01-11 | Microchip Technology Incorporated | Allocation of buffer interfaces for moving data, and related systems, methods and devices |
CN111506520B (zh) * | 2020-07-01 | 2020-09-22 | 腾讯科技(深圳)有限公司 | 一种地址生成的方法、相关装置以及存储介质 |
Family Cites Families (92)
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 |
US4835712A (en) | 1986-04-14 | 1989-05-30 | Pixar | Methods and apparatus for imaging volume data with shading |
JP2554255B2 (ja) | 1987-03-23 | 1996-11-13 | 旭光学工業株式会社 | フイルタリング装置 |
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 |
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 |
DE59607143D1 (de) | 1996-01-15 | 2001-07-26 | Infineon Technologies Ag | Prozessor zur bildverarbeitung |
US6031573A (en) | 1996-10-31 | 2000-02-29 | Sensormatic Electronics Corporation | Intelligent video information management system performing multiple functions in parallel |
US5892962A (en) | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
JP3593439B2 (ja) | 1997-06-09 | 2004-11-24 | 株式会社日立製作所 | 画像処理装置 |
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 |
JP2000251065A (ja) | 1999-03-02 | 2000-09-14 | Fuji Xerox Co Ltd | 画像処理装置 |
US6757019B1 (en) * | 1999-03-13 | 2004-06-29 | The Board Of Trustees Of The Leland Stanford Junior University | Low-power parallel processor and imager having peripheral control circuitry |
JP4489305B2 (ja) | 1999-03-16 | 2010-06-23 | 浜松ホトニクス株式会社 | 高速視覚センサ装置 |
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 |
US6986025B2 (en) | 2001-06-11 | 2006-01-10 | Broadcom Corporation | Conditional execution per lane |
JP3559021B2 (ja) * | 2001-10-31 | 2004-08-25 | 株式会社リコー | データ変換装置,画像処理装置およびデータ変換方法 |
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 |
GB2395299B (en) * | 2002-09-17 | 2006-06-21 | Micron Technology Inc | Control of processing elements in parallel processors |
US7225301B2 (en) | 2002-11-22 | 2007-05-29 | Quicksilver Technologies | External memory controller node |
JP2004215242A (ja) * | 2002-12-16 | 2004-07-29 | Ricoh Co Ltd | データ処理装置,画像処理装置および画像形成装置 |
GB2398446B (en) | 2003-02-12 | 2006-06-07 | Snell & Wilcox Ltd | Image processing |
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 |
JP4219887B2 (ja) * | 2004-12-28 | 2009-02-04 | 富士通マイクロエレクトロニクス株式会社 | 画像処理装置及び画像処理方法 |
US7581851B2 (en) | 2005-01-03 | 2009-09-01 | Jessica Wang | Scented lighting devices and systems, and methods for making the same |
JP6059413B2 (ja) | 2005-04-28 | 2017-01-11 | クアルコム,インコーポレイテッド | 再構成可能命令セル・アレイ |
US7882339B2 (en) | 2005-06-23 | 2011-02-01 | Intel Corporation | Primitives to enhance thread-level speculation |
JP2007034887A (ja) * | 2005-07-29 | 2007-02-08 | Matsushita Electric Ind Co Ltd | ハイレベル合成コンパイラ用のシフトレジスタファイルを自動生成するための方法および装置 |
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 |
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 |
JP2008192038A (ja) | 2007-02-07 | 2008-08-21 | Mitsubishi Electric Corp | 画像前処理装置 |
US20080244222A1 (en) | 2007-03-30 | 2008-10-02 | Intel Corporation | Many-core processing using virtual processors |
US8068114B2 (en) | 2007-04-30 | 2011-11-29 | Advanced Micro Devices, Inc. | Mechanism for granting controlled access to a shared resource |
JP4389976B2 (ja) | 2007-06-29 | 2009-12-24 | ブラザー工業株式会社 | 画像処理装置および画像処理プログラム |
JP2009021459A (ja) | 2007-07-13 | 2009-01-29 | Fuji Xerox Co Ltd | 面発光型半導体レーザの駆動方法および光伝送モジュール |
US8599208B2 (en) * | 2007-08-15 | 2013-12-03 | Nvidia Corporation | Shared readable and writeable global values in a graphics processor unit pipeline |
WO2009031302A1 (ja) | 2007-09-05 | 2009-03-12 | Tohoku University | 固体撮像素子及びその駆動方法 |
JP4917561B2 (ja) | 2008-03-18 | 2012-04-18 | 株式会社リコー | 画像処理装置 |
EP2289001B1 (en) | 2008-05-30 | 2018-07-25 | 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 |
US8332794B2 (en) | 2009-01-22 | 2012-12-11 | Taiwan Semiconductor Manufacturing Company, Ltd. | Circuits and methods for programmable transistor array |
KR101572879B1 (ko) | 2009-04-29 | 2015-12-01 | 삼성전자주식회사 | 병렬 응용 프로그램을 동적으로 병렬처리 하는 시스템 및 방법 |
US8626810B2 (en) | 2009-05-15 | 2014-01-07 | Texas Instruments Incorporated | Method and system for finite impulse response (FIR) digital filtering |
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 |
JP5185242B2 (ja) | 2009-12-04 | 2013-04-17 | 株式会社東芝 | コンパイル装置 |
US8595428B2 (en) | 2009-12-22 | 2013-11-26 | Intel Corporation | Memory controller functionalities to support data swizzling |
US8896668B2 (en) * | 2010-04-05 | 2014-11-25 | Qualcomm Incorporated | Combining data from multiple image sensors |
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 |
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 | 晨星半導體股份有限公司 | 影像處理裝置與影像處理方法 |
US8953882B2 (en) | 2012-05-31 | 2015-02-10 | Apple Inc. | Systems and methods for determining noise statistics of image data |
US20140019486A1 (en) | 2012-07-13 | 2014-01-16 | Amitava Majumdar | Logic Content Processing for Hardware Acceleration of Multi-Pattern Search |
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 |
US9058673B2 (en) | 2013-03-15 | 2015-06-16 | Oracle International Corporation | Image mosaicking using a virtual grid |
US8954992B2 (en) | 2013-03-15 | 2015-02-10 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Distributed and scaled-out network switch and packet processing |
US9477999B2 (en) * | 2013-09-20 | 2016-10-25 | The Board Of Trustees Of The Leland Stanford Junior University | Low power programmable image processor |
US9818166B2 (en) | 2015-01-16 | 2017-11-14 | Intel Corporation | Graph-based application programming interface architectures with producer/consumer nodes for enhanced image processing parallelism |
US9749548B2 (en) | 2015-01-22 | 2017-08-29 | Google Inc. | Virtual linebuffers for image signal processors |
US9756268B2 (en) | 2015-04-23 | 2017-09-05 | Google Inc. | Line buffer unit for image processor |
-
2015
- 2015-04-23 US US14/694,712 patent/US9756268B2/en active Active
-
2016
- 2016-03-31 DE DE112016001866.5T patent/DE112016001866T5/de active Pending
- 2016-03-31 WO PCT/US2016/025385 patent/WO2016171869A1/en active Application Filing
- 2016-03-31 KR KR1020177028003A patent/KR102013404B1/ko active IP Right Grant
- 2016-03-31 EP EP16716763.4A patent/EP3286723B1/en active Active
- 2016-03-31 CN CN201680019839.7A patent/CN107533751B/zh active Active
- 2016-03-31 JP JP2017550919A patent/JP6408717B2/ja active Active
-
2017
- 2017-05-17 US US15/598,027 patent/US10321077B2/en active Active
-
2018
- 2018-09-20 JP JP2018176186A patent/JP6793162B2/ja active Active
-
2019
- 2019-05-03 US US16/402,310 patent/US10638073B2/en active Active
-
2020
- 2020-04-27 US US16/859,308 patent/US11190718B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9756268B2 (en) | 2017-09-05 |
JP2019053736A (ja) | 2019-04-04 |
US11190718B2 (en) | 2021-11-30 |
EP3286723B1 (en) | 2020-10-07 |
US10321077B2 (en) | 2019-06-11 |
US20170257585A1 (en) | 2017-09-07 |
US10638073B2 (en) | 2020-04-28 |
WO2016171869A1 (en) | 2016-10-27 |
KR102013404B1 (ko) | 2019-08-22 |
US20190327433A1 (en) | 2019-10-24 |
JP6408717B2 (ja) | 2018-10-17 |
DE112016001866T5 (de) | 2018-01-25 |
US20160316157A1 (en) | 2016-10-27 |
CN107533751B (zh) | 2020-10-27 |
CN107533751A (zh) | 2018-01-02 |
KR20170125392A (ko) | 2017-11-14 |
JP2018513476A (ja) | 2018-05-24 |
US20200275040A1 (en) | 2020-08-27 |
EP3286723A1 (en) | 2018-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6793162B2 (ja) | 画像プロセッサのためのラインバッファユニット | |
JP6858239B2 (ja) | プログラムコードを、高性能で電力効率の良いプログラマブルな画像処理ハードウェアプラットフォームにマッピングするためのコンパイラ技法 | |
JP7202987B2 (ja) | 高性能で、電力効率の良い、プログラマブルな画像処理のためのアーキテクチャ | |
US10216487B2 (en) | Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure | |
JP6750022B2 (ja) | 画像プロセッサのためのマクロi/oユニット |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190328 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190328 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200630 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200707 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201005 |
|
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: 20201013 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201109 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6793162 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |