[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JPH1091780A - 畳み込み装置および畳み込みを実行する方法 - Google Patents

畳み込み装置および畳み込みを実行する方法

Info

Publication number
JPH1091780A
JPH1091780A JP9210435A JP21043597A JPH1091780A JP H1091780 A JPH1091780 A JP H1091780A JP 9210435 A JP9210435 A JP 9210435A JP 21043597 A JP21043597 A JP 21043597A JP H1091780 A JPH1091780 A JP H1091780A
Authority
JP
Japan
Prior art keywords
convolution
multiplier
pass
result
adder
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.)
Pending
Application number
JP9210435A
Other languages
English (en)
Inventor
D Jordan Steven
スティーブン・ディー・ジョーダン
J Fuisutaa Katherine
キャサリン・ジェイ・フィスター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH1091780A publication Critical patent/JPH1091780A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Image Processing (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】相異なる次元の畳み込みを高速で実行する比較
的廉価な畳み込み装置を提供する。 【解決手段】画素の畳み込みを実行する再構成可能な畳
み込み装置が提供される。M×M畳み込み時に、M×M
畳み込み窓の画素値とM×M畳み込みマスクの対応する
係数を乗算し、結果を加算して最終結果を与える。N×
N(NはMよりも大きい)畳み込みでは、第1のパス時
に、N×N畳み込み窓の画素値の第1のサブセットとN
×N畳み込みマスクの対応する係数の第1のサブセット
を乗算し、加算器が第1のパスの中間結果を与えメモリ
に記憶する。N×N畳み込みの第2のパス時に、N×N
畳み込み窓の画素値の第2のサブセットとN×N畳み込
みマスクの対応する係数の第2のサブセットを乗算器に
供給し、加算器が中間結果と第2のパスの結果とを組み
合わせてN×N畳み込みの最終結果を与える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、画像処理で使用さ
れる畳み込み装置に関し、詳細には、それぞれの異なる
畳み込み窓次元を用いて畳み込みを実行するために使用
できる畳み込み装置に関する。
【0002】
【従来の技術】画像処理では、低域フィルタリング(ぼ
かし)、高域フィルタリング(鮮鋭化)、エッジ検出、
エッジ強化、その他の機能を実行するために畳み込みが
使用される。畳み込みとは、ソース画素の近傍の画素の
重み付き和である。重みは、通常は方形である、畳み込
みマスクまたは畳み込みカーネルと呼ばれる係数の行列
によって決定される。行列の次元は通常、奇数であり、
そのため、行列の中心位置は出力画素の位置に対応す
る。ソース画像内の各画素上に、畳み込み窓と呼ばれる
スライディング・ウィンドウが順次センタリングされ
る。畳み込み窓内の各画素値に畳み込みマスク内の対応
する係数を乗じその積の和を求めることによって、出力
画素値が算出される。
【0003】それぞれの異なる畳み込み窓次元を用いて
畳み込みを実行することが必要になることがある。たと
えば、それぞれの異なる状況で5×5畳み込みおよび7
×7畳み込みが必要になる。二次元画像上で7×7畳み
込みを実行するには、生成される各出力画素ごとに49
回の乗算と48回の加算が必要である。7×7畳み込み
マスクを用いてフィルタされた画像は多くの場合、25
6×256画素または512×512画素を有する。C
PUの演算装置に依存するソフトウェア手法は極めて低
速である。専用7×7ハードウェア・畳み込み装置は、
49個の乗算器と48個のアダーを使用するので、望ま
しい性能を有するが高価である。
【0004】
【発明が解決しようとする課題】畳み込みを高速度で実
行し、それぞれの異なる畳み込み窓次元を用いて畳み込
みを実行することができ、比較的廉価である畳み込み装
置を提供することが望ましい。
【0005】
【課題を解決するための手段】本発明の第1の態様によ
れば、画像の画素の畳み込みを実行する再構成可能な畳
み込み装置が提供される。この畳み込み装置は、畳み込
み窓の画素値に畳み込みマスクの対応する係数を乗じ積
を与える複数の乗算器と、これらの積を加算し結果を与
えるために乗算器に結合された加算器と、中間結果を記
憶するメモリと、コントローラとを備える。コントロー
ラは、M×M畳み込み時に、M×M畳み込み窓の画素値
とM×M畳み込みマスクの対応する係数を乗算器に供給
する手段を備える。加算器は、M×M畳み込みの最終結
果を与える。コントローラはさらに、N×N(NはMよ
りも大きい)畳み込みの第1のパス時に、N×N畳み込
み窓の画素値の第1のサブセットとN×N畳み込みマス
クの対応する係数の第1のサブセットを乗算器に供給
し、その場合に加算器がN×N畳み込みの第1のパスの
中間結果を与える手段と、中間結果をメモリに記憶する
手段と、N×N畳み込みの第2のパス時に、N×N畳み
込み窓の画素値の第2のサブセットとN×N畳み込みマ
スクの対応する係数の第2のサブセットを乗算器に供給
し、中間結果をメモリから加算器に供給し、その場合に
加算器が中間結果を第2のパスの結果と組み合わせてN
×N畳み込みの最終結果または第2の中間結果を与える
手段とを備える。この畳み込み装置は、通常M×M個の
マルチプレクサを含み、M×M畳み込みまたはN×N畳
み込みを実行するように再構成することができる。再構
成可能な畳み込み装置の一実施形態では、5×5畳み込
み装置を使用して2回のパスで7×7畳み込みが実行さ
れる。
【0006】N×N畳み込みでは2回よりも多くのパス
が必要になることがある。この場合、コントローラはさ
らに、N×N畳み込みの1回または複数の中間パスのそ
れぞれの間に、N×N畳み込み窓の画素値の中間サブセ
ットとN×N畳み込みマスクの対応する係数の中間サブ
セットを乗算器に供給し、各中間パス時に、前のパスの
中間結果を加算器に供給する手段とを含む。加算器は、
前のパスの中間結果を現パスの結果と組み合わせて現中
間結果を与える。最後の中間パスの結果は最後のパスの
結果と組み合わされN×N畳み込みの最終結果が与えら
れる。
【0007】畳み込み装置を一定の構成で使用してN×
N畳み込みを実行することができる。M×M個の乗算器
を有する畳み込み装置を用いてN×N畳み込みを実行す
るには2回以上のパスが必要である。
【0008】M×M畳み込み装置を使用してL×L畳み
込みを実行することもできる。この場合、LはMよりも
小さい。L×L畳み込みは1回のパスで実行される。
【0009】本発明の他の態様によれば、畳み込み装置
を用いて画像の画素の畳み込みを実行する方法が提供さ
れる。畳み込み装置は、畳み込み窓の画素値を畳み込み
マスクの対応する係数に乗じ積を与える複数の乗算器
と、これらの積の和を求めて結果を与えるために乗算器
に結合された加算器とを含む。N×N畳み込みの第1の
パス時に、N×N畳み込み窓の画素値の第1のサブセッ
トとN×N畳み込みマスクの対応する係数の第1のサブ
セットが乗算器に供給される。この場合、NはMよりも
大きい。加算器は、N×N畳み込みの第1のパスの中間
結果を与え、この中間結果が記憶される。N×N畳み込
みの第2のパス時に、N×N畳み込み窓の画素値の第2
のサブセットとN×N畳み込みマスクの対応する係数の
第2のサブセットが乗算器に供給され、中間結果が加算
器に供給される。加算器は、この中間結果を第2のパス
の結果と組み合わせてN×N畳み込みの最終結果または
第2の中間結果を与える。
【0010】本発明をよりよく理解するため、添付の図
面を参照して以下に実施例につき説明する。
【0011】
【発明の実施例】本発明による畳み込み装置の一実施例
のブロック図が図1に示されている。畳み込み窓の画素
値と畳み込みマスクの係数が乗算器装置10に供給され
る。乗算器装置10は、M×M回の乗算を並列に実行す
る乗算器の配列を含む。図1の例では、乗算器装置10
は、25個の乗算器を5×5乗算器配列として含み、積
R0、R1、...R24を生成する。これらの積は、
加算器12に供給され、加算器12は積R0、R
1、...R24を加算し、結果Sを与える。
【0012】5×5畳み込みでは、5×5乗算器装置1
0は、畳み込み窓の25個の画素値と畳み込みマスクの
対応する25個の係数を受け取り、25個の積R0、R
1、...R24を生成する。加算器12は、これらの
積を組み合わせて結果Sを与える。一実施形態では、乗
算は単一のクロック・サイクルで実行され、加算はパイ
プライン化され、各クロック・サイクルごとに1つの結
果が組み合わされる。速度が、使用される回路実施態様
の関数であることが理解されよう。画像の画素は順次畳
み込まれ、画像全体の畳み込みが行われる。
【0013】図1に示した畳み込み装置は、M×Mより
も大きな畳み込み窓次元を用いて畳み込みを実行するよ
うに再構成することも、あるいはM×Mよりも小さな畳
み込み窓次元を用いて畳み込みを実行するように再構成
することもできる。したがって、M×M個の乗算器を有
するM×M畳み込み装置を、N×N(NはMよりも大き
い)畳み込みを実行するように再構成することができ
る。上記の例では、5×5畳み込み装置を7×7畳み込
みを実行するように再構成することができる。
【0014】一般に、再構成された畳み込み装置は下記
のように動作する。N×N畳み込みの第1のパス時に、
N×N畳み込み窓の第1のサブセットの画素値とN×N
畳み込みマスクの対応する係数の第1のサブセットが乗
算器装置10に供給され、加算器12が中間結果を生成
する。この中間結果はメモリ20に記憶される。第1の
パス時に画像の画素が処理され、画像の各画素ごとの中
間結果がメモリ20に記憶される。
【0015】メモリ20は、画像の各画素ごとの中間結
果を記憶するのに十分な容量を有する。最終結果で所望
の精度を維持するために、メモリ20内の各位置は画素
値よりも大きなビット幅を有することが好ましい。一実
施形態では、画素値が16ビットであるときメモリ20
は32ビット語を使用する。代替手法では、浮動小数点
演算が使用される。
【0016】N×N畳み込みの第2のパス時に、N×N
畳み込み窓の画素値の第2のサブセットとN×N畳み込
みマスクの対応する係数の第2のサブセットが乗算器装
置10に供給され、メモリ20から中間結果が読み取ら
れる。第2のパス時に乗算器装置10によって生成され
た積が、加算器12による中間結果と組み合わされ最終
結果が生成される。第2のパス時には画像内の各画素が
同様に処理される。したがって、M×M畳み込み装置は
2回のパスでN×N畳み込みを実行することができる。
【0017】2回のパスでこの畳み込みを実行するには
長い時間が必要であるが、畳み込み装置は著しく縮小さ
れる。上記の例では、5×5畳み込み装置を使用して2
回のパスで7×7畳み込みが実行される。5×5畳み込
み装置は、25個の乗算器と24個のアダーとを含む。
これに対して、7×7畳み込み装置では、49個の乗算
器と48個のアダーが必要である。畳み込み装置が、乗
算器装置10と加算器12とを含み、それぞれの異なる
次元(それぞれの異なる数の乗算器)を有することがで
き、畳み込み窓がそれぞれの異なる次元(それぞれの異
なる数の画素)を有することができることが理解されよ
う。したがって、所与の畳み込みを実行するときに2回
よりも多くのパスが必要になることもある。2回よりも
多くのパスを使用するとき、最終結果が得られるまで、
各パスの中間結果がメモリ20に記憶され、次のパスの
結果と組み合わされる。
【0018】コントローラ24は、乗算器装置10およ
びメモリ20を制御する。コントローラ24は、7×7
畳み込みにおける実行すべき畳み込みの次元を示すA制
御信号(A CNTL)と、7×7畳み込みにおける畳
み込みの現在のパスを示すB制御信号(B CNTL)
を乗算器装置10に供給する。コントローラ24は、メ
モリ20との間の読取りおよび書込み(R/W)も制御
する。第1のパス時に、メモリ20に中間結果が書き込
まれる。第2のパス時には、メモリ20から中間結果が
読み取られ、乗算器装置に供給され、あるいは直接、加
算器12に供給される。畳み込みで2回よりも多くのパ
スが必要な場合、あるいはNの値がより大きな場合、あ
るいはこの両方である場合は、追加制御信号が必要にな
る。
【0019】M×M畳み込み装置を用いてN×N畳み込
みを実行するときに2回よりも多くのパスが必要になる
ことがある。この場合、各中間パスが中間結果を生成す
る。各中間パスの結果が前のパスの結果と組み合わされ
新しい中間結果が生成され、この結果がメモリ20に記
憶される。最終パスの結果が最後の中間パスの結果と組
み合わされ最終結果が生成される。この場合、各中間パ
ス時に各画素ごとに中間結果が書き込まれ読み取られる
ので、メモリ20の構成は2回のパスのケースと異なっ
てもよい。可能な手法には、より高速なメモリを使用す
ることと、畳み込みをより低速に実行することと、2ポ
ート・メモリを使用することと、より多くのメモリを使
用することが含まれる。
【0020】5×5畳み込み装置の乗算器装置10の例
のブロック図を図2に示す。図の乗算器装置は、25個
の乗算器M0、M1、...M24を5×5配列として
有する。各乗算器は、関連する画素値レジスタと係数レ
ジスタとを有する。したがってたとえば、乗算器40
(M0)は、画素レジスタ42および係数レジスタ44
から入力を受け取る。乗算器40は積R0を生成する。
各係数レジスタ44は、レジスタ・バス46上の係数値
を受け取る。畳み込みマスクの係数は通常、画像全体の
畳み込み中、一定のままである。乗算器配列の各行内の
画素レジスタ42、48などは通常、画像の各行ごとに
画素を順次処理できるように直列接続される。後述のよ
うに、各画素の処理後に画素レジスタ内の画素値が右へ
シフトされる。乗算器装置を再構成するマルチプレクサ
は、図2では図示を簡単にするために省略されているが
図7に示されており、このマルチプレクサについては下
記で説明する。
【0021】5×5畳み込み装置の加算器12の例のブ
ロック図を図3に示す。乗算器装置10から得た積R
0、R1、...R24が加算され結果Sが与えられ
る。結果Sは、実行中の畳み込みに応じて畳み込みの最
終結果でも、あるいは中間結果でもよい。図3の例は、
24個のアダーA0、A1、...A23を使用して、
乗算器装置10の25個の乗算器から得た積R0、R
1、...R24の加算を実行する。アダー60(A
0)は積R0と積R1を組み合わせ、アダー62(A
1)は積R2とR3を組み合わせる。アダー60および
62の出力は、アダー64(A10)によって組み合わ
され、アダー64の出力は、アダー66(A15)によ
って積R4と組み合わされる。この構成は、残りの積を
組み合わせて結果Sを与えるように繰り返される。加算
器12内でいくつかの異なるアダー構成を実施できるこ
とが理解されよう。必要なことは、積R0、R
1、...R24の和を求めることである。
【0022】図1ないし図3に示し上記で説明した5×
5畳み込み装置を使用して画像の5×5畳み込みを実行
する回路構成を図4に概略的に示す。乗算器M0、M
1、...M24は、5×5畳み込みの畳み込み窓に対
応する5×5配列として示されている。畳み込み窓の画
素の画素値は、画素バッファ80、82、84、86に
よって乗算器に供給される。各画素バッファは、画像の
1つの行またはラインの画素値を保持することができ
る。具体的には、バッファ80は、畳み込み窓の第1の
行内の5つの画素値を乗算器装置10の画素値レジスタ
P0、P1、P2、P3、P4(図2)にシフトする。
同様に、バッファ82、84、86は、5つの画素値を
それぞれ、乗算器装置の第2、第3、第4の行内の画素
値レジスタに供給し、畳み込み窓の第5の行の画素値
は、ホスト・コンピュータなどのデータ源から供給する
ことができる。畳み込みマスクの係数は、レジスタ・バ
ス46上で係数レジスタC0、C1、...C24(図
2)へ転送される。次に、畳み込み窓の25個の画素値
が、畳み込みマスクの対応する係数と乗じられ、それら
の積が加算され加算器12の出力で結果が与えられる。
この結果は、畳み込み窓の中心にある乗算器M12の位
置にある画素に対応する。
【0023】次に、画像の第1の行内の第2の画素に対
して畳み込みが実行される。畳み込み窓が、画像に対し
て1画素だけ右へシフトされる。これは、図4の実施形
態では、乗算器装置の画素値レジスタ内の画素値を1位
置だけ右へシフトし、バッファ80、82、84、86
から得た4つの新しい画素値をそれぞれ、乗算器M0、
M5、M10、M15の画素値レジスタにシフトし、新
しい画素値を乗算器M20の画素値レジスタにシフトす
ることによって行われる。この動作は実際上、畳み込み
マスクを画像に対して1画素だけ右へシフトする。画素
値は、畳み込みマスクの対応する係数と乗じられ、それ
らの積が加算され第1の行内の第2の画素の結果が与え
られる。このプロセスは、第1の行のすべての画素に対
して繰り返される。
【0024】各バッファ80、82、84、86からシ
フトされた画素値と畳み込みマスクの第5の行に入力さ
れた画素値は、第1の行の畳み込みが実行されている
間、あらゆるクロック・サイクルで上の行のバッファに
入力される。たとえば、バッファ82から出力された画
素値は、バッファ80に入力される。したがって、画像
の第1の行が処理された後、バッファ80は、画像の第
2の行の画素値を含み、バッファ82は、画像の第3の
行の画素値を含み、バッファ84は、画像の第4の行の
画素値を含み、バッファ86は、画像の第5の行の画素
値を含む。したがって、畳み込み窓は実際上、画像に対
して1行だけ下にシフトされる。画像の第6の行の画素
値は、データ源から乗算器装置10の第5の行に入力さ
れる。このように、画像の第2の行に対して畳み込みが
実行される。このプロセスは、画像の各画素に対して畳
み込みが実行されるまで繰り返される。
【0025】画像のエッジ付近の畳み込み窓内のどの位
置でも画素値が得られないことは明らかである。たとえ
ば、画像の1番上の行の畳み込みを行っているとき、5
×5畳み込み窓の最初の2行では画素値が得られない。
このような画素値の欠如はいくつかの方法で対処するこ
とができる。1つの手法では、画像のエッジ付近の画素
の畳み込みが行われず、出力画像はソース画像よりも小
さくなる。この手法は、畳み込み窓が大きな場合にはあ
まり望ましくない。他の手法では、たとえば定数値など
任意の画素値を使用して畳み込み窓内の空位置が充填さ
れる。他の手法では、画像のエッジにある行または列内
の画素値が重複され、畳み込み窓内の空位置を充填する
ために使用される。
【0026】図1ないし図3に示し上記で説明した5×
5畳み込み装置を使用して画像の7×7畳み込みを実行
する回路構成を図5および図6に概略的に示す。図5で
は、乗算器M0、M1、...M24が、7×7畳み込
みの第1のパスを実行するために7×7畳み込み窓に対
して位置決めされている。図6では、乗算器M0、M
1、...M24が、7×7畳み込みの第2のパスを実
行するために7×7畳み込み窓に対して位置決めされて
いる。図2に示した5×5乗算器配列は図5では、乗算
器M0、M1、...M6が畳み込み窓の第1の行内の
画素を処理し、乗算器M7、M8、...M13が7×
7畳み込み窓の第2の行内の画素を処理し、乗算器M1
4、M15、...M20が畳み込み窓の第3の行内の
画素を処理し、乗算器M21、M22、M23、M24
が7×7畳み込み窓の第4の行内の最初の4画素を処理
するように再構成される。5×5畳み込み装置を再構成
する技法について下記で図7を参照して説明する。バッ
ファ80、82、84が、画像の3つの連続行の画素値
を畳み込み窓の最初の3行内の乗算器に供給する。ホス
ト・コンピュータなどの画素データ源が、畳み込み窓の
第4の行内の乗算器M21、M22、M23、M24に
画素値を供給する。
【0027】7×7畳み込みの第1のパスは下記のよう
に実行される。バッファ80、82、84が、畳み込み
窓の最初の3行内の乗算器の画素値レジスタに画素値を
ロードし、乗算器M21、M22、M23、M24にデ
ータ源から得た画素値がロードされる。7×7畳み込み
マスクの係数のサブセットが、各乗算器内の対応する係
数レジスタにロードされる。乗算器M0、M1、...
M24が、それぞれの画素値レジスタおよび係数レジス
タ内の値どうしを乗じ各積を与える。加算器12によっ
て積R0、R1、...R24が組み合わされ、画像の
第1の行内の第1の画素の中間結果が与えられる。この
中間結果は、メモリ20内の、処理中の画素に対応する
アドレスに記憶される。次いで、畳み込み窓の各行の画
素値レジスタ内の画素値が1位置だけ右へシフトされ、
バッファ80、82、84からの新しい画素値がそれぞ
れ、乗算器M0、M7、M14の画素値レジスタへシフ
トされ、データ源からの新しい画素値が乗算器M21の
画素値レジスタにロードされる。第1の行内の第2の画
素に対する乗算が実行され、加算器12によって積R
0、R1、...R24が組み合わされ、画像の第1の
行内の第2の画素の中間結果が与えられる。この中間結
果はメモリ20にロードされる。このプロセスは、各画
素ごとの中間結果がメモリ20にロードされ、それによ
って7×7畳み込みの第1のパスが完了するまで、画像
内の各画素ごとに繰り返される。上記で図5に関連して
説明したように、各バッファの出力は、各クロック・サ
イクルで上の行内のバッファの入力にロードされ、その
ため、畳み込み窓は実際上、各行の処理が完了した後に
画像に対して1行だけ下にシフトされる。
【0028】7×7畳み込みの第2のパスに関する5×
5畳み込み装置の回路構成を図6に示す。乗算器M2
1、M22、M23は、7×7畳み込み窓の第4の行内
の最後の3画素を処理する。乗算器M0、M1、M6
は、7×7畳み込み窓の第5の行内の画素を処理し、乗
算器M7、M8、...M13は、7×7畳み込み窓の
第6の行内の画素を処理し、乗算器M14、M1
5、...M20は、7×7畳み込み窓の第7の行内の
画素を処理する。バッファ80、82、84はそれぞ
れ、畳み込み窓の第4、第5、第6の行内の乗算器に画
素値を供給し、データ源は畳み込み窓の第7の行内の乗
算器に画素値を供給する。乗算器M21、M22、M2
3は畳み込み窓の第4の行内の最後の3画素を処理する
ので、第2のパス時にバッファ80と乗算器M21との
間に、第4の行内の最初の4画素に対応する第4段レジ
スタが接続され、乗算器M21、M22、M23に画素
データを供給する適切なタイミングが確保される。畳み
込みマスクの下部内の係数は一般に、畳み込みマスクの
上部内の係数とは異なるので、第2のパス時には、各乗
算器内の係数レジスタに畳み込みマスクの下部の係数が
ロードされる。画素値が、対応する係数と乗じられ、積
R0、R1、...R23が与えられる。第1のパス時
に同じ画素に関して得られる中間結果が、メモリ20か
ら読み出され第2のパスの結果と組み合わされる。図6
の実施形態では、この中間結果が乗算器M24に供給さ
れ、乗算器M24の係数レジスタに値1がロードされ
る。したがって、第2のパス時に、第1のパスから得た
中間値が積R24として加算器12に供給される。加算
器12によって、第2のパスから得た積R0、R
1、...R23と第1のパスから得た中間結果(R2
4)が組み合わされ、7×7畳み込みの最終結果が与え
られる。中間結果が必要に応じて直接、加算器12のR
24入力に与えられることが理解されよう。この場合、
R24は、7×7畳み込みの第2のパス時に使用されな
い乗算器を表す。7×7畳み込みの第2のパス時には画
像内の各画素が同様に処理される。第1のパスから得た
中間結果がメモリ20から読み出され、第2のパスから
得た結果と組み合わされ各画素ごとの最終結果が与えら
れる。
【0029】2回のパスで7×7畳み込みを実行するよ
うに5×5畳み込み装置を再構成することについて図7
を参照して説明する。再構成は、5×5畳み込み装置内
のある乗算器にそれぞれの異なる画素値を供給すること
によって行われる。具体的には、5×5畳み込み装置内
のいくつかの乗算器は、同じデータ源から画素値を受け
取ることができ、それに対して、5×5畳み込み装置内
の他の回路は、畳み込み装置の再構成時に異なるデータ
源から画素値を受け取ることができる。それぞれの異な
る画素値を必要とする乗算器に対するデータの選択は、
マルチプレクサによって制御することができる。図4お
よび5を参照すると、図4の5×5畳み込みと図5の7
×7畳み込みの第1のパスとで、乗算器M0、M
1、...M4が畳み込み窓の行に対して同じ位置にあ
ることが分かる。しかし、図6に示した7×7畳み込み
の第2のパスでは、乗算器M0は、バッファ80ではな
くバッファ82から画素値を受け取る。第2のパスにお
いて、マルチプレクサ(図示せず)を使用して、乗算器
M0に供給される画素値のデータ源をバッファ80から
バッファ82に切り換えることができる。乗算器M5お
よびM6は、5×5畳み込み(図4)では第2の行の最
初の2つの位置に現れ、7×7畳み込みの第1のパス
(図5)では第1の行の最後の2つの位置に現れ、7×
7畳み込みの第2のパス(図6)では第5の行の最後の
2つの位置に現れる。乗算器M5は、5×5畳み込みで
はバッファ82から入力画素値を受け取り、7×7畳み
込みの第1のパスと第2のパスの両方では乗算器M4の
画素レジスタから画素値を受け取る。図7を参照すると
分かるように、マルチプレクサ130は、乗算器M5の
画素レジスタ132に供給される画素データ源を制御す
る。マルチプレクサ130は、畳み込み装置が5×5畳
み込みを実行するために使用されているか、それとも7
×7畳み込みを実行するために使用されているかを示す
A制御信号(A CNTL)によって制御される。5×
5畳み込みが実行されているときは、畳み込み窓の第2
の行の入力画素値がマルチプレクサ130によって画素
レジスタ132に供給される。7×7畳み込みが実行さ
れているときは、乗算器M4の画素レジスタの出力がマ
ルチプレクサ130によって画素レジスタ132に供給
される。
【0030】同様に、乗算器M7、M8、M9は、5×
5畳み込み窓(図4)の第2の行の最後の3つの位置に
現れ、7×7畳み込みの第1のパスでは畳み込み窓の第
2の行の最初の3つの位置に現れ、7×7畳み込み窓の
第2のパスでは第6の行の最初の3つの位置に現れる。
したがって、マルチプレクサ140は、乗算器M7の画
素レジスタ142に供給される画素値のデータ源を制御
する。5×5畳み込みが実行されているとき、マルチプ
レクサ140は画素レジスタ144(乗算器M6)の出
力を画素レジスタ142(乗算器M7)に供給する。7
×7畳み込みの第1のパスが実行されているとき、マル
チプレクサ140は、畳み込み窓の第2の行に対応する
画素値をバッファ82から供給する。7×7畳み込みの
第2のパスが実行されているとき、マルチプレクサ14
0は、畳み込み窓の第6の行に対応する画素値をバッフ
ァ84から供給する。
【0031】図4ないし図6を調べると分かるように、
乗算器M0、M5、M7、M10、M14、M15、M
20、M21、M24は、それらの乗算器に供給される
画素値のデータ源を制御するマルチプレクサを必要とす
る。各ケースで、マルチプレクサは、畳み込みに応じて
マルチプレクサに画素値を供給し、パスが処理される。
5×5畳み込み装置内の残りの乗算器は、7×7畳み込
みの場合にマルチプレクサを必要としない。
【0032】図5から明白なように、画像内の画素値の
1番下の3行は、7×7畳み込みの第1のパス時には必
要とされない。同様に、画像内の画素値の1番上の3行
は、7×7畳み込みの第2のパス時には必要とされな
い。
【0033】上記では、本発明の再構成可能な畳み込み
回路について、2回のパスで7×7畳み込みを実行する
ように構成された5×5畳み込み装置に関連して説明し
た。5×5畳み込み装置は、他の次元を有する畳み込み
を実行するように構成することができる。5×5畳み込
み窓の周囲の係数の値を0に設定することによって、5
×5畳み込み装置を用いて3×3畳み込みを実行するこ
とができる。したがって、図4を参照すると分かるよう
に、3×3畳み込みの場合、乗算器M0ないしM4、M
5、M9、M10、M14、M15、M19、M20な
いしM24の畳み込みマスクの係数は0に設定される。
より一般的には、M×M畳み込み装置を使用してL×L
畳み込みを実行することができる。この場合、LはMよ
りも小さく、使用されないマルチプレクサの係数は0に
設定される。
【0034】図8に示したように乗算器を4×6配列と
して再構成し6回のパスを使用することにより、5×5
畳み込み装置によって11×11畳み込みを実行するこ
とができる。各パスで中間結果が生成される。中間結果
は、記憶し第6のパスの結果と組み合わせることも、あ
るいは次のパスの中間結果と組み合わせ11×11畳み
込みの最終結果を与えることもできる。4×6乗算器配
列を使用することによって、ローカル・メモリに記憶さ
れている中間結果を前のパスの後に導入するために、各
パスで5×5畳み込み装置の25個の乗算器のうちの1
つが使用可能なままにされる。図8を参照すると分かる
ように、4×6乗算器配列が使用され、第1のパスと第
3のパスではすべての行および列が活性である。第2お
よび第4のパスでは、4×6乗算器配列の1つの列が不
活性である。第5のパスでは、4×6乗算器配列の1つ
の行が不活性であり、第6のパスでは、1つの行および
1つの列が不活性である。各パス時に、入力画像内のい
くつかの画素は使用されない。制御側ソフトウェアは、
使用されない画素を送ってはならず、かつメモリ20内
の中間結果の位置を追跡しなければならない。同様に、
9×9、13×13、15×15以上の畳み込みマスク
・サイズに関して畳み込みを実行することができる。畳
み込みマスク・サイズが増加するにつれて、パスの数が
増加するが、CPUソフトウェア・ベースの解決策に対
する性能向上はほぼ同じままである。
【0035】この再構成可能畳み込み装置内の乗算器の
数が本発明の範囲内で変更可能であることが理解されよ
う。乗算器装置は、M×M乗算器配列などの正方形乗算
器配列を使用することも、あるいはM1×M2乗算器配列
などの長方形乗算器配列を使用することも、あるいはそ
の他の乗算器構成を使用することもできる。前述のよう
に、正方形の5×5乗算器配列を使用して5×5畳み込
みを実行することができる。5×5畳み込み装置は、図
8に示したように11×11畳み込みを実行するとき
は、長方形の4×6乗算器配列として再構成される。5
×5乗算器配列は、図5および図6に示したように7×
7畳み込みを実行するときは、7つの乗算器からなる3
つの行と7つよりも少ない乗算器からなる1つの行とを
有する不規則配列として再構成される。畳み込みを実行
するために使用されるパスの数および各パスにおける乗
算器の構成は、本発明の範囲内で変更することができ
る。図5および6に示したように、7×7畳み込みの第
1のパスと第2のパスとでそれぞれの異なる乗算器構成
が使用される。所与のパスでは、1つまたは複数の乗算
器が使用されない。たとえば、図8に示した11×11
畳み込みを参照されたい。この畳み込み装置を使用し
て、畳み込み窓内の画素値の数が畳み込み装置内の乗算
器の数よりも大きな畳み込みを実行することができる。
たとえば、M×M乗算器を有する畳み込み回路を使用し
てN×N畳み込みを実行することができる(NはMより
も大きい)。さらに、この畳み込み装置を使用して、畳
み込み窓内の画素値の数が畳み込み回路内の乗算器の数
よりも小さな畳み込みを実行することができる。畳み込
みの最終結果は、各パスの結果を前のパスの結果に加え
最終結果または新しい中間結果を与えることによって、
対話的に算出することができる。別法として、中間結果
を畳み込みの終わりまで保存し、最後のパスの結果と組
み合わせ、畳み込みの最終結果を与えることができる。
画像の画素には通常、行ごとに畳み込みが行われる。し
かし、画素には畳み込みを列ごとに行うことも、あるい
は他の所望の順序で行うこともできる。畳み込み窓の画
素値および畳み込みマスクの対応する係数は、任意の所
望の方法で乗算器装置の乗算器に与えることができる。
図2の例では、各乗算器は、画素値レジスタと係数レジ
スタとを含む。各行の画素値レジスタは互いに連鎖され
る。しかし、画素値は各画素値レジスタに別々に書き込
むことができる。
【0036】グレースケール画像では、各画素は、所定
数のビットを有する単一の画素値で表される。本明細書
で図示し説明した畳み込み装置は、画像内の各画素値の
畳み込みを実行する。カラー画像では、各画素は赤画素
値、緑画素値、青画素値で表される。この場合、本明細
書で図示し説明した3つの畳み込み装置を使用して、3
つの色値の畳み込みを並行して実行することができる。
別法として、単一の畳み込み装置を使用して赤画素値セ
ット、緑画素値セット、青画素値セットの畳み込みを順
次実行することができる。
【0037】現在本発明の好ましい実施形態とみなされ
ているものについて図示し説明したが、当業者には、本
発明の範囲から逸脱せずに本発明に様々な変更および修
正を加えられることが明らかであろう。以下に本発明の
実施態様のいくつかを下記に列挙する。
【0038】(実施態様1)画像の画素の畳み込みを実
行する再構成可能な畳み込み装置であって、畳み込み窓
の画素値に畳み込みマスクの対応する係数を乗じ積を与
える複数の乗算器(10)と、前記積を加算し結果を与
えるために前記乗算器に結合された加算器(12)と、
中間結果を記憶するメモリ(20)と、コントローラ
(24)とを備え、前記コントローラ(24)が、M×
M畳み込み時に、M×M畳み込み窓の画素値とM×M畳
み込みマスクの対応する係数を前記乗算器(10)に供
給し、その場合に前記加算器(12)が、M×M畳み込
みの最終結果を与える手段と、N×N(NはMよりも大
きい)畳み込みの第1のパス時に、N×N畳み込み窓の
画素値の第1のサブセットとN×N畳み込みマスクの対
応する係数の第1のサブセットを前記乗算器(10)に
供給し、その場合に前記加算器(12)がN×N畳み込
みの第1のパスの中間結果を与える手段と、前記中間結
果を前記メモリ(20)に記憶する手段と、N×N畳み
込みの第2のパス時に、N×N畳み込み窓の画素値の第
2のサブセットとN×N畳み込みマスクの対応する係数
の第2のサブセットを前記乗算器(10)に供給し、前
記中間結果を前記メモリ(20)から前記加算器(1
2)に供給し、その場合に前記加算器(12)が前記中
間結果を前記第2のパスの結果と組み合わせN×N畳み
込みの最終結果または第2の中間結果を与える手段とを
含むことを特徴とする再構成可能な畳み込み装置。
【0039】(実施態様2)前記各乗算器が、画素値を
保持する画素レジスタと係数を保持する係数レジスタと
を含むことを特徴とする実施態様1に記載の再構成可能
な畳み込み装置。 (実施態様3)さらに、画像の画素値を前記乗算器に供
給するバッファを含み、前記画像内の各画素に対して畳
み込みが実行されることを特徴とする実施態様1に記載
の再構成可能な畳み込み装置。
【0040】(実施態様4)画像の画素の畳み込みを実
行する再構成可能な畳み込み装置であって、畳み込み窓
の画素値に畳み込みマスクの対応する係数を乗じ積を与
える複数の乗算器(10)と、前記積を加算し結果を与
えるために前記乗算器に結合された加算器(12)と、
中間結果を記憶するメモリ(20)と、コントローラ
(24)とを備え、前記コントローラ(24)が、M×
M畳み込み時に、M×M畳み込み窓の画素値とM×M畳
み込みマスクの対応する係数を前記乗算器に供給し、そ
の場合に前記加算器(12)が、M×M畳み込みの最終
結果を与える手段と、N×N(NはMよりも大きい)畳
み込みの第1のパス時に、N×N畳み込み窓の画素値の
第1のサブセットとN×N畳み込みマスクの対応する係
数の第1のサブセットを乗算器(10)に供給し、その
場合に前記加算器(12)がN×N畳み込みの第1のパ
スの第1の中間結果を与える手段と、前記第1の中間結
果を前記メモリ(20)に記憶する手段と、N×N畳み
込みの1回または複数の中間パスのそれぞれの間に、前
記N×N畳み込み窓の画素値の中間サブセットと前記N
×N畳み込みマスクの対応する係数の中間サブセットを
乗算器(10)に供給し、前記1回または複数の中間パ
スのそれぞれの間に、前のパスの中間結果を前記加算器
(12)に供給し、その場合に前記加算器(12)が前
のパスの中間結果を現パスの結果と組み合わせN×N畳
み込みの現中間結果を与える手段と、前記現中間結果を
前記メモリ(20)に記憶する手段と、N×N畳み込み
の最終パス時に、前記N×N畳み込み窓の画素値の最終
サブセットと前記N×N畳み込みマスクの対応する係数
の最終サブセットを乗算器(10)に供給し、最後の中
間結果を前記メモリ(20)から前記加算器(12)に
供給し、その場合に前記加算器(12)が前記最後の中
間結果を前記最終パスの結果と組み合わせN×N畳み込
みの最終結果を与える手段とを含むことを特徴とする再
構成可能な畳み込み装置。
【0041】(実施態様5)画像の画素の畳み込みを実
行する畳み込み装置であって、畳み込み窓の画素値に畳
み込みマスクの対応する係数を乗じ積を与える複数の乗
算器(10)と、前記積を加算し結果を与えるために前
記乗算器に結合された加算器(12)と、中間結果を記
憶するメモリ(20)と、コントローラ(24)とを備
え、前記コントローラ(24)が、N×N畳み込みの第
1のパス時に、N×N畳み込み窓の画素値の第1のサブ
セットとN×N畳み込みマスクの対応する係数の第1の
サブセットを前記乗算器(10)に供給し、その場合に
前記加算器(12)が、N×N畳み込みの第1のパスの
中間結果を与える手段と、前記中間結果を前記メモリ
(20)に記憶する手段と、N×N畳み込みの第2のパ
ス時に、N×N畳み込み窓の画素値の第2のサブセット
とN×N畳み込みマスクの対応する係数の第2のサブセ
ットを乗算器(10)に供給し、前記中間結果を前記メ
モリ(20)から前記加算器(12)に供給し、その場
合に前記加算器(12)が前記中間結果を前記第2のパ
スの結果と組み合わせN×N畳み込みの最終結果または
第2の中間結果を与える手段とを含むことを特徴とする
畳み込み装置。
【0042】(実施態様6)畳み込み窓の画素値に畳み
込みマスクの対応する係数を乗じて積を与える複数の乗
算器(10)と、前記積の和を求め結果を与えるために
前記乗算器(10)に結合された加算器(12)とを含
む畳み込み装置を用いて画像の画素の畳み込みを実行す
る方法であって、 a)M×M畳み込み時に、M×M畳み込み窓の画素値と
M×M畳み込みマスクの対応する係数を前記乗算器(1
0)に供給し、前記加算器(12)が、M×M畳み込み
の最終結果を与えるステップと、 b)N×N(NはMよりも大きい)畳み込みの第1のパ
ス時に、N×N畳み込み窓の画素値の第1のサブセット
とN×N畳み込みマスクの対応する係数の第1のサブセ
ットを前記乗算器(10)に供給し、前記加算器(1
2)がN×N畳み込みの第1のパスの中間結果を与える
ステップと、 c)前記中間結果を記憶するステップと、 d)N×N畳み込みの第2のパス時に、N×N畳み込み
窓の画素値の第2のサブセットとN×N畳み込みマスク
の対応する係数の第2のサブセットを乗算器(10)に
供給し、前記中間結果を前記加算器(12)に供給し、
前記加算器(12)が前記中間結果を前記第2のパスの
結果と組み合わせN×N畳み込みの最終結果または第2
の中間結果を与えるステップとを含むことを特徴とする
方法。
【0043】(実施態様7)さらに、前記画像内の各画
素ごとにステップb)およびc)を繰り返し、次いで、
前記画像内の各画素ごとにステップd)を繰り返し、前
記画像内の各画素ごとにN×N畳み込みの前記最終結果
または前記第2の中間結果を与えることを含むことを特
徴とする実施態様6に記載の畳み込みを実行する方法。 (実施態様8)畳み込み窓の画素値に畳み込みマスクの
対応する係数を乗じて積を与える複数の乗算器(10)
と、前記積の和を求め結果を与えるために前記乗算器
(10)に結合された加算器(12)とを含む畳み込み
装置を用いて画像の画素の畳み込みを実行する方法であ
って、N×N畳み込みの第1のパス時に、N×N畳み込
み窓の画素値の第1のサブセットとN×N畳み込みマス
クの対応する係数の第1のサブセットを前記乗算器(1
0)に供給し、前記加算器(12)がN×N畳み込みの
第1のパスの中間結果を与えるステップと、前記中間結
果を記憶するステップと、N×N畳み込みの第2のパス
時に、N×N畳み込み窓の画素値の第2のサブセットと
N×N畳み込みマスクの対応する係数の第2のサブセッ
トを乗算器(10)に供給し、前記中間結果を前記加算
器(12)に供給し、前記加算器(12)が前記中間結
果を前記第2のパスの結果と組み合わせN×N畳み込み
の最終結果または第2の中間結果を与えるステップとを
含むことを特徴とする方法。
【0044】(実施態様9)さらに、N×N畳み込みの
1回または複数の後続のパスのそれぞれの間に、前記N
×N畳み込み窓の画素値の後続のサブセットと前記N×
N畳み込みマスクの対応する係数の後続のサブセットを
前記乗算器に供給するステップと、前記1回または複数
の後続のパスのそれぞれの間に、前のパスの中間結果を
前記加算器(12)に供給し、前記加算器(12)が前
のパスの中間結果を現パスの結果と組み合わせN×N畳
み込みの現中間結果または最終結果を与えるステップと
を含むことを特徴とする実施態様8に記載の畳み込みを
実行する方法。 (実施態様10)画像の画素の畳み込みを実行する再構
成可能な畳み込み装置であって、畳み込み窓の画素値に
畳み込みマスクの対応する係数を乗じ積を与えるM×M
粉の乗算器(10)と、前記積を加算し結果を与えるた
めに前記乗算器(10)に結合された加算器(12)
と、L×L(LはMよりも小さい)畳み込み時に、L×
L畳み込み窓の画素値とL×L畳み込みマスクの対応す
る係数を前記乗算器(10)に供給し、その場合に前記
加算器(12)が、L×L畳み込みの最終結果を与える
手段とを備えることを特徴とする再構成可能な畳み込み
装置。
【図面の簡単な説明】
【図1】本発明の実施形態による畳み込み装置のブロッ
ク図である。
【図2】図1に示した乗算器装置の簡略化ブロック図で
ある。
【図3】図1に示した加算器の簡略化ブロック図であ
る。
【図4】図1ないし3の畳み込み装置を用いて5×5畳
み込みを実行する技法を概略的に表した図である。
【図5】図1ないし3の5×5畳み込み装置を使用して
7×7畳み込みの第1のパスを実行する技法を概略的に
表した図である。
【図6】図1ないし3の5×5畳み込み装置を使用して
7×7畳み込みの第2のパスを実行する技法を概略的に
表した図である。
【図7】再構成可能なフィーチャを示す乗算器装置の部
分ブロック図である。
【図8】5×5畳み込み装置を用いて11×11畳み込
みを実行する技法を説明するための、11×11畳み込
み窓を概略的に表した図である。
【符号の説明】
10 乗算器装置 12 加算器 20 メモリ 24 コントローラ 40 乗算器 42、48 画素レジスタ 44 係数レジスタ 46 レジスタ・バス

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 画像の画素の畳み込みを実行する再構成
    可能な畳み込み装置であって、 畳み込み窓の画素値に畳み込みマスクの対応する係数を
    乗じ積を与える複数の乗算器と、 前記積を加算し結果を与えるために前記乗算器に結合さ
    れた加算器と、 中間結果を記憶するメモリと、 コントローラとを備え、前記コントローラが、 M×M畳み込み時に、M×M畳み込み窓の画素値とM×
    M畳み込みマスクの対応する係数を前記乗算器に供給
    し、その場合に前記加算器が、M×M畳み込みの最終結
    果を与える手段と、 N×N(NはMよりも大きい)畳み込みの第1のパス時
    に、N×N畳み込み窓の画素値の第1のサブセットとN
    ×N畳み込みマスクの対応する係数の第1のサブセット
    を前記乗算器に供給し、その場合に前記加算器がN×N
    畳み込みの第1のパスの中間結果を与える手段と、 前記中間結果を前記メモリに記憶する手段と、 N×N畳み込みの第2のパス時に、N×N畳み込み窓の
    画素値の第2のサブセットとN×N畳み込みマスクの対
    応する係数の第2のサブセットを前記乗算器に供給し、
    前記中間結果を前記メモリから前記加算器に供給し、そ
    の場合に前記加算器が前記中間結果を前記第2のパスの
    結果と組み合わせN×N畳み込みの最終結果または第2
    の中間結果を与える手段とを含むことを特徴とする再構
    成可能な畳み込み装置。
JP9210435A 1996-08-13 1997-08-05 畳み込み装置および畳み込みを実行する方法 Pending JPH1091780A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/700,717 US5949920A (en) 1996-08-13 1996-08-13 Reconfigurable convolver circuit
US700,717 1996-08-13

Publications (1)

Publication Number Publication Date
JPH1091780A true JPH1091780A (ja) 1998-04-10

Family

ID=24814596

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9210435A Pending JPH1091780A (ja) 1996-08-13 1997-08-05 畳み込み装置および畳み込みを実行する方法

Country Status (2)

Country Link
US (1) US5949920A (ja)
JP (1) JPH1091780A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020521263A (ja) * 2017-05-19 2020-07-16 モヴィディウス リミテッド 畳み込み効率を向上させる方法、システム、及び装置
JP2021517702A (ja) * 2018-03-13 2021-07-26 レコグニ インコーポレイテッド 効率的な畳み込みエンジン

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPO478897A0 (en) * 1997-01-24 1997-02-20 Canon Information Systems Research Australia Pty Ltd Scan line rendering of convolutions
US6614474B1 (en) * 1998-08-27 2003-09-02 Polycom, Inc. Electronic pan tilt zoom video camera with adaptive edge sharpening filter
US6236766B1 (en) * 1998-09-11 2001-05-22 General Electric Company Method and apparatus for zooming digital images
US8766995B2 (en) * 2006-04-26 2014-07-01 Qualcomm Incorporated Graphics system with configurable caches
US20070268289A1 (en) * 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
US8884972B2 (en) 2006-05-25 2014-11-11 Qualcomm Incorporated Graphics processor with arithmetic and elementary function units
US8869147B2 (en) * 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US8644643B2 (en) 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
US8766996B2 (en) * 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
US9477999B2 (en) * 2013-09-20 2016-10-25 The Board Of Trustees Of The Leland Stanford Junior University Low power programmable image processor
KR102325602B1 (ko) * 2015-07-06 2021-11-12 삼성전자주식회사 데이터를 병렬적으로 처리하는 장치 및 방법
GB2572605B (en) * 2018-04-05 2022-05-18 Imagination Tech Ltd High accuracy texture filtering
US11151445B2 (en) * 2018-04-21 2021-10-19 Microsoft Technology Licensing, Llc Neural network processor with a window expander circuit
WO2019231254A1 (en) * 2018-05-30 2019-12-05 Samsung Electronics Co., Ltd. Processor, electronics apparatus and control method thereof

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4330833A (en) * 1978-05-26 1982-05-18 Vicom Systems, Inc. Method and apparatus for improved digital image processing
US4750144A (en) * 1985-12-31 1988-06-07 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Real time pipelined system for forming the sum of products in the processing of video data
US4791598A (en) * 1987-03-24 1988-12-13 Bell Communications Research, Inc. Two-dimensional discrete cosine transform processor
US5187755A (en) * 1988-06-30 1993-02-16 Dainippon Screen Mfg. Co., Ltd. Method of and apparatus for compressing image data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020521263A (ja) * 2017-05-19 2020-07-16 モヴィディウス リミテッド 畳み込み効率を向上させる方法、システム、及び装置
JP2021517702A (ja) * 2018-03-13 2021-07-26 レコグニ インコーポレイテッド 効率的な畳み込みエンジン

Also Published As

Publication number Publication date
US5949920A (en) 1999-09-07

Similar Documents

Publication Publication Date Title
JPH1091780A (ja) 畳み込み装置および畳み込みを実行する方法
JP3584053B2 (ja) 複合オペランド内の多ビット要素を選択するためのマスク
EP2017743B1 (en) High speed and efficient matrix multiplication hardware module
EP0496880B1 (en) Circuit switchable as matrix multiplier or convolver for color image processing
JPS6053349B2 (ja) 画像処理プロセツサ
CN108073549B (zh) 卷积运算装置及方法
EP3093757B1 (en) Multi-dimensional sliding window operation for a vector processor
KR20030064239A (ko) 화상을 처리하는 장치 및 방법과 이 장치에 이용되는컴파일러
EP0227406B1 (en) Image signal processor
US6477203B1 (en) Signal processing distributed arithmetic architecture
JPH04128982A (ja) プロセッサエレメント、プロセッシングユニット、プロセッサ、及びその演算処理方法
US4736440A (en) Process for the processing of digitized signals representing an original image
US5016207A (en) High-speed digital filter processor including parallel paths for processing data, suitable for use in spatial filter image processing
KR100550676B1 (ko) 2-차원 피라미드 필터 구조
KR100545015B1 (ko) 2-차원 피라미드 필터 구조
JP4712503B2 (ja) リコンフィグ可能な画像処理用アドレス生成回路及びそれを有するリコンフィグlsi
KR20040007483A (ko) 2-차원 피라미드 필터 구조
JP2862388B2 (ja) 超高速画像処理システムのフィルタリング処理方式
WO2023112581A1 (ja) 推論装置
US6944640B2 (en) Progressive two-dimensional (2D) pyramid filter
KR20040028731A (ko) 2-차원 피라미드 필터 구조
Shoup Real-time image manipulation using soft hardware
JPS61251971A (ja) 画像処理装置
JPS6319911B2 (ja)
EP0321584A1 (en) System for calculating sum of products