JP7352684B2 - フィルタ処理装置およびその制御方法 - Google Patents

フィルタ処理装置およびその制御方法 Download PDF

Info

Publication number
JP7352684B2
JP7352684B2 JP2022063543A JP2022063543A JP7352684B2 JP 7352684 B2 JP7352684 B2 JP 7352684B2 JP 2022063543 A JP2022063543 A JP 2022063543A JP 2022063543 A JP2022063543 A JP 2022063543A JP 7352684 B2 JP7352684 B2 JP 7352684B2
Authority
JP
Japan
Prior art keywords
data
filter
coefficient
transfer pattern
predetermined number
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
Application number
JP2022063543A
Other languages
English (en)
Other versions
JP2022089892A (ja
Inventor
ソクイ チン
政美 加藤
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2022063543A priority Critical patent/JP7352684B2/ja
Publication of JP2022089892A publication Critical patent/JP2022089892A/ja
Application granted granted Critical
Publication of JP7352684B2 publication Critical patent/JP7352684B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data

Landscapes

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

Description

本発明は、フィルタ処理の技術に関するものである。
フィルタ処理は画像処理や画像認識の分野における重要な技術である。一般に、フィルタ処理は複数の乗算と累積加算を含んでおり、演算量はフィルタのカーネルサイズ(フィルタのカーネルにあるフィルタ係数の個数)に比例する。一方、近年、携帯端末や車載機器等の組み込みシステム向けの画像処理の手法が注目されている。画像の解像度(画素の個数)の増大に伴い、フィルタ処理による演算量が増加するため、効率的にフィルタ処理を並列化することが求められている。また、ユースケースやアプリケーションにより、入力画像とフィルタのカーネルが異なる。そのため、同一のシステムで複数種類のカーネルサイズに対応する機能を備える重要性も高まっており、フィルタのカーネルサイズに対する自由度の高い並列処理方法が提案されている。
特許文献1では、1次元のシフトレジスタを用いて効率的に画素とフィルタ係数を読み出し、複数の乗算器と累積加算器にデータを供給し、並列にフィルタ処理結果を計算する技術が開示されている。
特許第5376920号
しかしながら、特許文献1に記載の手法では、処理対象データのサイズ(幅または高さ)がシフトレジスタのサイズより小さい場合に演算効率が低下するという問題がある。また、格納された係数の出力順序が決まっているため、フィルタのカーネルを回転する場合にはフィルタ係数を並び替えてからシフトレジスタに格納する必要があり、処理速度が遅くなるという問題がある。
本発明はこのような課題を鑑みてなされたものであり、より効率的なフィルタ処理を可能とする技術を提供することを目的とする。
上述の課題を解決するため、本発明に係るフィルタ処理装置は以下の構成を備える。すなわち、フィルタ処理装置は、
フィルタ処理に係る演算を並列に実行する所定数の演算手段と、
複数のデータを2次元に配列して格納するデータ格納手段と、
複数のフィルタ係数を2次元に配列して格納する係数格納手段と、
前記2次元に配列された複数のデータから前記所定数ずつ順次転送するデータを読み出す当該配列内の位置が転送ごとに変化する方向を表すデータ転送パターン設定するデータ転送パターン設定手段と、
前記2次元に配列された複数のフィルタ係数を順次1つずつ読み出す当該配列内の位置が転送ごとに変化する方向を表し、当該転送ごとに変化する方向が前記データ転送パターンと一致する係数転送パターンと一致しない係数転送パターンとを含む複数の係数転送パターンより1つの係数転送パターンを選択して設定する係数転送パターン設定手段と、
前記設定されたデータ転送パターンを参照してデータを前記所定数ずつ順次転送して前記所定数の演算手段のそれぞれに並列して入力し、前記設定された係数転送パターンを参照してフィルタ係数を順次1つずつ転送して前記所定数の演算手段へ共通に入力する制御手段と、
を有する。
本発明によれば、より効率的なフィルタ処理を可能とする技術を提供することができる。
第1実施形態におけるフィルタ処理のフローチャートである。 第1実施形態に係るフィルタ処理装置のブロック図である。 フィルタ処理部の詳細構成を示すブロック図である。 画素、フィルタ係数、出力結果の配列を説明する図である。 積和演算処理部の詳細構成を示すブロック図である。 画素格納部の詳細構成を示すブロック図である。 フィルタ係数格納部の詳細構成を示すブロック図である。 画素の格納位置の変化を説明する図である。 フィルタ係数の格納位置の変化を説明する図である。 第1実施形態における画素及びフィルタ係数それぞれの転送パターンの一例を示す図である。 出力結果の計算例を示す図である(m=1~5)。 出力結果の計算例を示す図である(m=5~9)。 変形例における画素及びフィルタ係数それぞれの転送パターンの一例を示す図である。 変形例におけるフィルタ係数格納部の詳細構成を示すブロック図である。 変形例における画素及びフィルタ係数それぞれの転送パターンの一例を示す図である。 変形例における画素、フィルタ係数、出力結果の配列を説明する図である。
以下に、図面を参照して、この発明の実施の形態の一例を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
(第1実施形態)
本発明に係るフィルタ処理装置の第1実施形態として、画像データを処理するフィルタ処理装置を例に挙げて以下に説明する。
<フィルタ処理装置の構成>
図2は、第1実施形態に係るフィルタ処理装置のブロック図である。
入力部201は、ユーザーからの指示やデータの入力を受け付ける機能部であり、キーボードやポインティング装置やボタン等を含む。通信部203は、機器間の通信を行うためのI/Fである。
データ保存部202は、画像データを保存する機能部であり、通常はハードディスク、フレキシブルディスク、光ディスク(CD、DVDなど)、半導体メモリ等で構成される。データ保存部202には画像データの他にも、プログラムやその他のデータを保存することも可能である。あるいは、後述するRAM208の一部をデータ保存部202として用いるのであっても良い。またあるいは、通信部203を介して通信接続した不図示の外部記憶装置を利用するよう構成しても良い。
表示部204は、処理対象の画像を表示、あるいはGUI等の画像を表示する機能部で、一般的にはCRTや液晶ディスプレイなどが用いられる。あるいは、ケーブル等で接続された外部ディスプレイ装置であっても構わない。また、あるいは公知のタッチスクリーン装置のように、表示部204と入力部201が同一装置であっても良い。その場合に、タッチスクリーンによる入力を入力部201の入力として扱う。
フィルタ処理部205は、後述するフローチャート(図1)に従ったフィルタ処理を行う機能部である。RAM208に保存された画像に対してフィルタ処理を行い、フィルタ処理された結果をデータ保存部202(またはRAM208)に出力する。
CPU206は、ソフトウェアプログラムを実行することにより本装置全体の動作を制御する。ROM207とRAM208は、その制御動作に必要なプログラム、データ、作業領域などを記憶しCPU206に提供する。なお、必要なプログラムがデータ保存部202に格納されている場合や、ROM207に格納されている場合には、一旦RAM208に読み込まれてから実行される。あるいは、通信部203を経由してプログラムを受信するよう構成してもよい。
画像処理部209は、CPU206からの制御に基づき、データ保存部202に記憶された画像データを読み出して画像処理を行う。例えば、画素値のレンジ調整を行い、その結果をRAM208に書き込む。
なお、図2においては、CPUが1つのみ(CPU206)である構成を示しているが、複数のCPUを設ける構成にしても良い。また、フィルタ処理部205をCPUで構成しても良い。また、図2に示す各機能部を1つの装置内に含むよう構成してもよいし、1以上の機能部を別体の装置として構成し通信路で接続した構成としてもよい。フィルタ処理装置は上記以外の様々な構成要素を備え得るが、本発明の主眼ではないのでその説明については省略する。
なお、フィルタ処理された結果は、例えば、CPU206により、動画像(複数フレーム)での画像処理または画像認識に用いられる。CPU206により処理された画像処理または画像認識の結果は、RAM208に保存される。
<フィルタ処理装置の動作>
図3は、フィルタ処理部205の詳細構成を示すブロック図である。また、図1は、第1実施形態におけるフィルタ処理のフローチャートである。
ステップS101では、フィルタ処理制御部311は、RAM208に保存した画像データ(画素セット)とフィルタ係数(フィルタ係数セット)を読み出し、フィルタ係数メモリ302と画素メモリ303に保存する。
図4は、画素、フィルタ係数、出力結果の配列を説明する図である。ここでは、画素セット401には画素(データ値)が16個(D1,1~D4,4)格納される状況を想定する。また、フィルタ係数セット402にはフィルタ係数が9個(C1,1~C3,3)格納される状況を想定する。また、積和演算処理部309は4つの演算器を備え、それぞれの演算器は所定の演算処理を並列に実行するよう構成されている。ここでは、共通のフィルタ係数に異なる画素を並列に乗算し、4つのフィルタ処理結果(O1,1~O2,2)を並列に計算する。具体的には、数式(1)に従って、画素Dに対してフィルタ係数Cを適用することにより処理結果Oが得られる。
Figure 0007352684000001
ステップS102では、フィルタ処理制御部311は、画素セットのループを開始する。保存された画素セットを一つずつ処理する。
ステップS103では、フィルタ処理制御部311は、パターン保持のための転送パターン設定部301に対して転送パターンを設定する。具体的には、転送パターン設定部301に、第1のパターンである画素の転送パターン(Dx(.)とDy(.))と、第2のパターンであるフィルタ係数の転送パターン(Cx(.)とCy(.))を保持する。ここで、Dx(.)とDy(.)は画素の番号を指定するための関数である。また、Cx(.)とCy(.)はフィルタ係数の番号を指定するための関数である。
ステップS104では、フィルタ処理制御部311は、画素メモリ303から画素セットを1つ読み出し、データ保持のための画素格納部306に格納する。また、フィルタ係数メモリ302からフィルタ係数セットを1つ読み出し、係数保持のためのフィルタ係数格納部305に格納する。
ステップS105では、フィルタ処理制御部311は、フィルタ処理部205の初期化をする。ここでは、フィルタ処理の処理結果の初期値(”0”)を設定し、フィルタ係数の処理順序を示す変数mを”1”に設定する。ここでは、図4に示すように、処理結果セット403には処理結果が4個(O1,1~O2,2)ある。フィルタ処理の結果は、上述の数式(1)と後述する数式(2)~(6)を用いて計算する。
ステップS106では、フィルタ処理制御部311は、フィルタのカーネルを走査させ、画素とフィルタ係数の値を用い、積和演算を実行する。積和演算の詳細については、S107~S111を参照して後述する。また、積和演算制御部308は、画素とフィルタ係数の個数を計数する。
フィルタ処理結果を数式(1)と数式(2)に示す。Oi,jは第iのj番の処理結果であり、Pi,j,mは第iのjのm番の積である。水平方向の番号はiであり、垂直方向の番号はjである。変数mの値を変えることにより、積和演算処理部309を制御する。処理順序を示す変数mの値は累積加算の回数の意味も有する。
Figure 0007352684000002
積は画素とフィルタ係数の積であり、数式(3)で計算する。
Figure 0007352684000003
Dx(m),Dy(m)は画素であり、Dx(.)とDy(.)は画素の番号を指定するための関数である。CCx(m),Cy(m)はフィルタ係数であり、Cx(.)とCy(.)はフィルタ係数の番号を指定するための関数である。mの値によって画素の水平番号と垂直番号が異なる。Dx(.)、Dy(.)、Cx(.)、Cy(.)の計算についてはS107~S111を参照して後述する。
ステップS112では、フィルタ処理制御部311は、フィルタ処理結果(O1,1~O2,2)を処理結果メモリ310に保存する。
ステップS113では、フィルタ処理制御部311は、画素セットのループを終了させるかどうかを判定する。全ての画素セットを処理した場合、積和演算処理のループを終了させる。そうでない場合、S103に戻り、残りの画素セットを処理する。
<積和演算(S106)の詳細>
以下では、積和演算(S106)をより詳細に説明する。積和演算(S106)には、ステップS107~S111に示されるループ処理として構成される。
ステップS107では、フィルタ処理制御部311は、積和演算のループを開始する。変数mの値を”1”に設定する。
ステップS108では、画素転送制御部307は、転送パターン設定部301に保持された画素転送パターンを取得し画素格納部306に転送し、画素(DDx(m),Dy(m))を読み出す。また、フィルタ係数転送制御部304は、転送パターン設定部301に保持されたフィルタ係数転送パターンをフィルタ係数格納部305に転送し、フィルタ係数(CCx(m),Cy(m))を読み出し、順番に処理する。これらの操作により、フィルタのカーネルを走査させる。
図6は、画素格納部の詳細構成を示すブロック図である。ここでは、画素格納部306には画素格納ユニットが16個ある。それぞれの画素格納ユニットは上下左右方向に隣接する画素格納ユニットと接続されており、直交配列された2次元の構成になっている。画素格納ユニットには2種類(画素格納ユニットA及びB)ある。所定範囲を示す破線601内に示す4つの画素格納ユニットが画素格納ユニットAとして構成され、残りの12個の画素格納ユニットが画素格納ユニットBとして構成されている。画素格納ユニットAは積和演算処理部309と接続されており、画素格納ユニットBは積和演算処理部309と接続されていない。第1実施形態においては演算器は4並列であり、並列に処理する4つの画素が異なるため、画素格納ユニットAは4つとなっている。
画素格納ユニットBの構成を破線603内に示す。1つの画素格納ユニットBは1つの画素を格納することができる。画素格納ユニットBは、転送パターン設定部301に保持された画素転送パターンに基づき、隣接する4つ(上下左右)の画素格納ユニットからの画素を選択し、画素格納メモリに格納する。また、画素格納ユニットBは、隣接する4つの画素格納ユニットに画素を供給することが可能である。
画素格納ユニットAの構成を破線602内に示す。画素格納ユニットBと同様に、1つの画素格納ユニットAは1つの画素を格納することができる。画素格納ユニットAは、転送パターン設定部301に保持された画素転送パターンに基づき、隣接する4つ(上下左右)の画素格納ユニットからの画素を選択し、画素格納メモリに格納する。また、画素格納ユニットBは、隣接する4つの画素格納ユニットおよび画素格納部306の出力先に画素を供給することが可能である。
図7は、フィルタ係数格納部の詳細構成を示すブロック図である。ここでは、フィルタ係数格納部305にはフィルタ係数格納ユニットが9個ある。それぞれのフィルタ係数格納ユニットは上下左右方向に隣接するフィルタ係数格納ユニットと接続されており、直交配列された2次元の構成になっている。フィルタ係数格納ユニットには2種類(フィルタ係数格納ユニットA及びB)ある。所定位置を示す破線701内に示す1つのフィルタ係数格納ユニットがフィルタ係数格納ユニットAとして構成され、残りの8個のフィルタ係数格納ユニットがフィルタ係数格納ユニットBとして構成されている。フィルタ係数格納ユニットAは積和演算処理部309と接続されており、フィルタ係数格納ユニットBは積和演算処理部309と接続されていない。第1実施形態においては演算器は4並列であるが、並列に処理するフィルタ係数は同一であるため、フィルタ係数格納ユニットAは1つとなっている。
フィルタ係数格納ユニットBの構成を破線703内に示す。1つのフィルタ係数格納ユニットBは1つのフィルタ係数を格納することができる。フィルタ係数格納ユニットBは、転送パターン設定部301に保持されたフィルタ係数転送パターンに基づき、隣接する4つ(上下左右)のフィルタ係数格納ユニットからのフィルタ係数を選択し、フィルタ係数格納メモリに格納する。また、フィルタ係数格納ユニットBは、隣接する4つのフィルタ係数格納ユニットにフィルタ係数を供給することが可能である。
フィルタ係数格納ユニットAの構成を破線702内に示す。フィルタ係数格納ユニットBと同様に、1つのフィルタ係数格納ユニットAは1つのフィルタ係数を格納することができる。フィルタ係数格納ユニットAは、転送パターン設定部301に保持されたフィルタ係数転送パターンに基づき、隣接する4つ(上下左右)のフィルタ係数格納ユニットからのフィルタ係数を選択し、フィルタ係数格納メモリに格納する。また、フィルタ係数格納ユニットAは、隣接する4つのフィルタ係数格納ユニットおよびフィルタ係数格納部305の出力先にフィルタ係数を供給することが可能である。
変数mが1の場合(1回目のループの場合)、画素とフィルタ係数の番号を指定するための関数((Dx(1)、Dy(1)、Cx(1)、Cy(1))の初期値を設定する。変数mが1以外の場合(2回目以降のループの場合)、(Dx(.)、Dy(.)、Cx(.)、Cy(.))は数式(4)と(5)で計算する。変数mは常に正の整数である。
Figure 0007352684000004
Figure 0007352684000005
関数(Dx(.)、Dy(.)、Cx(.)、Cy(.))の入力値がmの場合の出力値は、関数の入力値が(m-1)の場合の出力値と関係がある。ここでは、関数Dx(m)に着目して説明する。番号Dx(m)は、番号Dx(m-1)とシフト値Ix(P(m))の和である。Ix(.)はシフト関数であり、P(.)は画素転送パターンを示す関数である。Ix(.)とIy(.)はシフト方向(4方向)も意味し、数式(6)で計算する。
Figure 0007352684000006
関数Dy(m)、Cx(m)、Cy(m)はDx(m)と同様なため、説明を省略する。
ステップS109では、画素転送制御部307は、S108で読み出された4つの画素を積和演算処理部309に転送し、フィルタ係数転送制御部304は、S108で読み出された1つのフィルタ係数を積和演算処理部309に転送する。
図5は、積和演算処理部の詳細構成を示すブロック図である。乗算器501、加算器502、処理結果格納ユニット503は、それぞれM×N個ずつあり、M×N個の画素と1個のフィルタ係数による積和演算を並列に処理することが可能である。ここでは、演算器は4並列であり、M×Nは”4”である。S105で処理結果の初期値を”0”に設定したので、変数mが”1”の場合、処理結果格納ユニット503に格納されたデータは”0”である。
ステップS110では、積和演算処理部309は、数式(1)と数式(2)に基づき、乗算器501と加算器502を用い、乗算と累積演算を実行する。そして、処理結果を処理結果格納ユニット503に格納する。ここでは、演算器は4並列なので、数式(2)に示した画素とフィルタ係数の積(Pi,j,m,i=1,2,j=1,2)を並列に計算する。そして、計算された積を処理結果(Oi,j,i=1,2,j=1,2)に並列に加算する。
ステップS111では、フィルタ処理制御部311は、積和演算処理のループを終了させるかどうかを判定する。変数mの値がフィルタ係数の総数(X×Y=9)と同じ場合、積和演算処理のループを終了させS112に進む。そうでない場合、変数mの値をインクリメント(1増やす)してS107に戻る。
<積和演算の処理例>
積和演算(S106)の処理例について、1つの画素セットと1つのフィルタ係数セットを例に説明する。ここでは、画素セット401は、16個の画素(D1,1~D4,4)を含む。また、フィルタ係数セット402は、9個のフィルタ係数(C1,1~C3,3)を含む。更に、出力結果セット403は、4個の出力結果(O1,1~O2,2)を含む。
積和演算が始まる前に、S105でフィルタ処理部205を初期化しているため、出力結果(O1,1~O2,2)の値は”0”になっている。
S107では、変数mの値を”1”に設定し、S108に進む。P(m)とP(m)は画素転送パターンを示す関数である。変数mが”1”の場合、P(.)とP(.)とIx(.)とIx(.)を計算しない。その代わりに、画素の番号(Dx(1)、Dy(1))の値を(1,1)に設定し、フィルタ係数の番号(Cx(1)、Cy(1))の値を(1,1)に設定する。
S108では、画素転送制御部307は、画素の番号に対応する画素D1,1とフィルタ係数の番号に対応するフィルタ係数C1,1を読み出す。
図8は、画素の格納位置の変化を説明する図である。具体的にはm=1の場合とm=2の場合の画素の格納位置を示している。
変数mが”1”の場合、画素セット801の中の灰色で示した画素(D1,1~D2,2)が出力画素になる。破線802内は、図6に示す画素格納部306に格納された画素データの例を示している。16個の画素格納ユニットは16個の画素(D1,1~D4,4)を格納している。
図9は、フィルタ係数の格納位置の変化を説明する図である。具体的にはm=1の場合とm=2の場合のフィルタ係数の格納位置を示している。
変数mが”1”の場合、フィルタ係数セット901の中の灰色で示したフィルタ係数(C1,1)が出力フィルタ係数になる。破線902内は、図6に示すフィルタ係数格納部305に格納された係数データの例を示している。9個のフィルタ係数格納ユニットは9個のフィルタ係数(C1,1~C3,3)を格納している。
図10は、第1実施形態における画素及びフィルタ係数それぞれの転送パターンの一例を示す図である。パターン1001は画素の転送パターンを示しており、パターン1003はフィルタ係数の転送パターンを示している。画素の転送方向1002及びフィルタの転送方向1004に示すようにジグザグに走査するように転送する(m=1~9)。このような転送を行うことにより、2次元に直交配列された画素データに対して2次元のフィルタカーネルを適用する。
図6に示したように、出力に繋がっている画素格納ユニットは4個あるが、ここでは左上の1つの画素格納ユニット1-1に着目して説明する。画素格納ユニット1-1は出力結果(O1,1)に対応しており、画素転送の開始位置は”左上”である。また、図7に示したように、出力に繋がっているフィルタ係数格納ユニットはフィルタ係数格納ユニット1-1である。フィルタ係数転送の開始位置は”左上”である。
図11及び図12は、出力結果の計算例を示す図である。特に、処理順序(変数m)毎の、対象となる画素、使用するフィルタ係数、及び、出力結果の計算を詳細に示している。
変数mが”1”の場合、S109で読み出された画素D1,1とフィルタ係数C1,1の積を初期値”0”に加算することにより出力結果O1,1を得る。図11に示した出力結果O1,2、O2,1、O2,2の計算は出力結果O1,1の計算と同様なので、説明を省略する。すなわち、4つの出力結果を並列に計算することが可能である。
S111では、変数mの値を”2”に変更し、S108に進む。変数mが”1”より大きい場合、P(.)とP(.)とIx(.)とIy(.)を数式(3)~(6)に従って計算する。
画素の転送パターンP(2)は”0”であり、シフト値(Ix(PD(2)),Iy(PD(2)))は(1,0)である。シフト値を用いて画素の番号を計算し、画素の番号(Dx(2)、Dy(2))の値を(2,1)に設定する。数式(6)に示したように、シフトの値は4種類ある。ただし、画素格納ユニットの構成(破線602内または破線603内)では、入力画素を直接的に選択することができるので、処理速度が速い。
フィルタ係数の転送パターンP(2)は”0”であり、シフト値(Ix(P(2)),Iy(P(2)))は(1,0)である。シフト値を用いてフィルタ係数の番号を計算し、フィルタ係数の番号(Cx(2)、Cy(2))の値を(2,1)に設定する。数式(6)に示したように、シフトの値は4種類ある。ただし、フィルタ係数格納ユニットの構成(破線702内または破線703内)では、入力画素を直接的に選択することができるので、処理速度が速い。
S108では、画素転送制御部307は、画素の番号に対応する画素D2,1とフィルタ係数の番号に対応するフィルタ係数C2,1を読み出す。
変数mが”2”の場合、画素セット803の中の灰色で示した画素(D2,1~D3,2)が出力画素になる。破線804内は、図6に示す画素格納部306に格納された画素データの例を示している。出力画素のシフト方向は”右”であるため、画素格納部306の中の画素格納ユニット1-1は、画素格納ユニット2-1から画素を選択し、画素格納メモリに保持する。画素格納ユニット1-1にある画素は画素格納ユニット2-1にある画素に置き換えられ、破線802の状態が破線804の状態に変化する。
変数mが”2”の場合、フィルタ係数セット903の中の灰色で示したフィルタ係数(C2,1)が出力フィルタ係数になる。破線902内は、図7に示すフィルタ係数格納部305に格納された係数データの例を示している。出力フィルタ係数のシフト方向は”右”であるため、フィルタ係数格納部305の中のフィルタ係数格納ユニット1-1は、係数格納ユニット2-1からのフィルタ係数を選択し、フィルタ係数格納メモリに保持する。フィルタ係数格納ユニット1-1にあるフィルタ係数はフィルタ係数格納ユニット2-1にあるフィルタ係数に置き換えられ、破線902の状態が破線904の状態に変化する。
図6に示したように、出力に繋がっている画素格納ユニットは4個あるが、ここでは左上の1つの画素格納ユニット1-1に着目して説明する。画素格納ユニット1-1は出力結果(O1,1)に対応しており、画素のシフト方向は”右”である。また、図7に示したように、出力に繋がっているフィルタ係数格納ユニットはフィルタ係数格納ユニット1-1である。フィルタ係数のシフト方向は”右”である。
変数mが”2”の場合、S109で読み出された画素D2,1とフィルタ係数C2,1の積を計算する。そして、得られた積を、画素D1,1とフィルタ係数C1,1の積に加算することにより出力結果O1,1を得る。
ここでは、出力結果O1,1についての積和演算の過程を説明したが、出力結果O1,2、O2,1、O2,2についても同様であるため説明を省略する。
S111では、変数mの値を”3”に変更し、S108に進む。図10~図12に示したように、転送パターンに基づき、数式(1)~数式(6)で出力結果O1,1~O2,2を計算する。積和演算ループが終了すると判定するまで、転送パターンに基づき、画素とフィルタ係数を順番に読み出し、乗算と累積加算を繰り返す。変数mが9の場合、出力結果(O1,1、O1,2、O2,1、O2,2)はフィルタ処理の結果であり、数式(1)における(X=3,Y=3)と等価である。
以上説明したとおり第1実施形態によれば、転送パターンに基づきシフトの値(方向)を選択することにより、効率よく画素とフィルタ係数を転送することができる。また、1つの画素格納ユニット及びフィルタ係数格納ユニットがそれぞれ隣接する4つのユニットからデータを受け取り可能なように構成することにより、積和演算に必要な画素とフィルタ係数を一括して出力することが可能となる。すなわち、離れているユニット間の結線は必要でなく格納部の構成を簡略化することができるため、製造コストを低減することも可能となる。
また、画素格納ユニットが直交配列された2次元の構成になっているため、アプリケーションに応じて、水平方向及び垂直方向それぞれのユニットの個数を任意に決定することが可能である。
(変形例)
<フィルタカーネルの回転/反転>
携帯端末や車載機器は持ち方と置き方によって向きや角度が変わり、入力画像(処理対象データ)の回転角度が異なる。正しい処理結果を算出するためには、処理対象データに対して適正な方向(回転角度)でフィルタ処理をする必要がある。
上述の第1実施形態では、画素の転送方向1002とフィルタ係数の転送方向1004は同じになるパターンについて説明したが、異なる任意のパターンを利用することが出来る。そこで、フィルタのカーネルを回転しフィルタ処理をする形態について説明する。
図13は、変形例における画素及びフィルタ係数それぞれの転送パターンの一例を示す図である。また、図14は、変形例におけるフィルタ係数格納部の詳細構成を示すブロック図である。
第1実施形態における構成(図7)と異なり、破線1401内に示す1つのフィルタ係数格納ユニット3-1がフィルタ係数格納ユニットAであり、フィルタ係数格納部305の出力先と繋がっている。フィルタ係数転送の開始位置は”右上”である。
図13に示した転送パターンに基づいて積和演算をする場合、出力結果は数式(7)における(X=3,Y=3)と等価である。
Figure 0007352684000007
このように入力画像の向き(角度)に合わせてフィルタのカーネルを回転した場合、システム内部のデータ転送順序に変更は生じない。一方、入力画像を回転してからフィルタのカーネルで処理する際と同じ結果が得られる。すなわち、システム内部のデータ転送順序に変更はないため、処理速度に影響せずに効率的にフィルタ処理をすることができる。
また、図13ではフィルタのカーネルを回転する例について説明したが、フィルタの回転に限定されるわけではなく、フィルタの反転(水平反転や垂直反転)を行うことも可能である。このように、アプリケーションに応じて、適切な転送パターンを決定し、様々な回転や向きに対応することが可能である。
<フィルタのカーネルサイズ>
第1実施形態では、フィルタのカーネルサイズ(係数の個数)が9個(X×Y=3×3=9)の例について説明した。ただし、特定のカーネルサイズに限定する訳でなく、数式(8)を満足する任意のカーネルサイズ(X'×Y')を用いることができる。
Figure 0007352684000008
また、第1実施形態で説明したフィルタ処理装置の構成(図6、図7)は3×3だけでなく、3×3以下のフィルタのカーネルサイズも処理できる。例えば、フィルタのカーネルサイズが4個(X'×Y'=2×2=4)であっても処理可能である。
図15は、変形例における画素及びフィルタ係数それぞれの転送パターンの一例を示す図である。第1実施形態の場合(図10)と同様に、積和演算ループが終了すると判定するまで、転送パターンに基づき、画素とフィルタ係数を順番に読み出し、乗算と累積加算を繰り返す。変数mが”4”の場合、出力結果(O1,1、O1,2、O2,1、O2,2)はフィルタ処理の結果であり、数式(1)における(X=2,Y=2)と等価である。カーネルサイズが9個の場合より早くフィルタ処理の結果を出力することができる。
上述のように、同一の構成により複数種類のフィルタのカーネルサイズに対応することが可能であるため、カーネルサイズ毎にフィルタ処理装置を用意する必要がなく、コストの低減が可能である。
<画像とフィルタ係数の転送パターン>
上述の実施形態(図10、図13)では、画素及びフィルタ係数それぞれに対して設定された転送パターンに基づき、フィルタ係数格納部305と画素格納部306の中に保持された画素とフィルタ係数を略ジグザグ形状で順次シフトさせる例について説明した。
ただし、移動方向はジグザグ形状に限るわけでなく、一筆書きの形状であれば、略スパイラル形状などのような任意のパターンでも良い。一筆書きの形状とは、保持された画素とフィルタ係数が全て読み出され、かつ、各画素と各フィルタ係数が読み出された回数が1回である形状ことである。
また、ジグザグ形状で画素とフィルタ係数を転送する場合、数式(6)で計算するシフト方向は4方向(上下左右)に限定される訳ではない。例えば、3方向(下左右)だけでも良い。シフト方向が3方向の場合、1つの画素格納ユニット(又はフィルタ係数格納ユニット)を隣接する3つのユニットからデータを受け取り可能に構成すれば、積和演算に必要な画素とフィルタ係数を全部出力することが可能である。
<有意な画素とフィルタ係数>
フィルタ係数または画素の値が”0”の場合、フィルタの係数と画素の積が0になるため、畳み込み演算の結果に影響しない。そのため、値が”0”以外の画素とフィルタ係数のみが有意であるとみなすことが出来る。そこで、有意でない画素やフィルタ係数が読み出されないように転送パターンを設定することにより処理時間を更に低減することが可能である。
<並列度>
第1実施形態においては、図5に示すように積和演算処理部309は4並列(M=2,N=2)である形態について説明したが、演算器の個数は”4”に限定される訳ではない。要求仕様に応じて任意のK個に決定し得る。
<画素とフィルタ係数の個数>
第1実施形態においては、図4に示すように画素セット401は16個の画素、フィルタ係数セット402は9個のフィルタ係数、処理結果セット403は4個の処理結果である例について説明したが、様々な構成とすることが可能である。
図16は、変形例における画素、フィルタ係数、出力結果の配列を説明する図である。画素セット1601は、2次元に直交配列されたP×Q個の画素(D1,1~DP,Q)で構成されている。フィルタ係数セット1602は、フィルタのカーネルを意味し、X×Y個のフィルタ係数(C1,1~CX,Y)で構成されている。処理結果セット1603は、M×N個の処理結果(O1,1~OM,N)で構成されている。M、N、P、Q、X、Yは、数式(9)と数式(10)を満たしている。
Figure 0007352684000009
Figure 0007352684000010
X、Yの値を増大させる場合、フィルタのカーネルサイズが増大する。M、Nの値を増大させる場合、演算器の並列度が上がるため、並列に処理できる画素数が増大する。
第1実施形態では、フィルタのカーネルは正方形(X=Y=3)である。XとYの値が異なる場合、処理対象のフィルタのカーネルが長方形になる。また、XとYはフィルタの最大カーネルサイズを指定するためのパラメータである。つまり、フィルタの係数がX×Y個未満の場合であっても処理可能である。
<ビデオ処理>
第1実施形態では、2次元データに対するフィルタ処理の例について説明したが、2次元に限るわけでなく、任意のL次元のデータでも良い。例えば、入力データが時系列情報を含んでいる3次元データのビデオの場合には以下のような構成になる。
データセットは、P×Q×R個のデータ(D1,1,1~DP,Q,R)から構成される。フィルタ係数セットは、X×Y×Z個のフィルタ係数(C1,1,1~CX,Y,Z)から構成される。処理結果セットは、M×N×O個の処理結果(R1,1,1~RM,N,O)から構成される。処理結果は、数式(11)により計算される。
Figure 0007352684000011
また、数式(6)では、2次元の直交配列であったためIx(.)とIy(.)は4方向(上下左右)であった。3次元の直交配列である場合、データとフィルタ係数の番号も3次元となるため、6方向(上下左右前後)としてもよい。もちろん、5方向(下左右前後)としてもよい。
<処理対象データ>
上述の説明においては、フィルタ処理の対象となる入力データとして画像から抽出された画素を想定して説明した。ただし、処理対象のデータは画像に限定されず、任意のデータを対象とし得る。
<フィルタ係数>
フィルタ係数は画像処理のパラメータによって決定するとは限らない。例えば、機械学習によって装置が自動的に生成するよう構成しても良い。また、上述のフィルタ処理の構成は、様々な畳み込み演算に適用することが可能である。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
301 転送パターン設定部; 302 フィルタ係数メモリ; 303 画素メモリ; 304 フィルタ係数転送制御部; 305 フィルタ係数格納部; 306 画素格納部; 307 画素転送制御部; 308 積和演算制御部; 309 積和演算処理部; 310 処理結果メモリ; 311 フィルタ処理制御部

Claims (16)

  1. フィルタ処理に係る演算を並列に実行する所定数の演算手段と、
    複数のデータを2次元に配列して格納するデータ格納手段と、
    複数のフィルタ係数を2次元に配列して格納する係数格納手段と、
    前記2次元に配列された複数のデータから前記所定数ずつ順次転送するデータを読み出す当該配列内の位置が転送ごとに変化する方向を表すデータ転送パターン設定するデータ転送パターン設定手段と、
    前記2次元に配列された複数のフィルタ係数を順次1つずつ読み出す当該配列内の位置が転送ごとに変化する方向を表し、当該転送ごとに変化する方向が前記データ転送パターンと一致する係数転送パターンと一致しない係数転送パターンとを含む複数の係数転送パターンより1つの係数転送パターンを選択して設定する係数転送パターン設定手段と、
    前記設定されたデータ転送パターンを参照してデータを前記所定数ずつ順次転送して前記所定数の演算手段のそれぞれに並列して入力し、前記設定された係数転送パターンを参照してフィルタ係数を順次1つずつ転送して前記所定数の演算手段へ共通に入力する制御手段と、
    を有することを特徴とするフィルタ処理装置。
  2. 前記複数の係数転送パターンのそれぞれは、前記2次元に配列された複数のフィルタ係数において、隣り合う位置のフィルタ係数を順次選択して当該複数のフィルタ係数の全てを重複なく選択する係数転送パターンである
    ことを特徴とする請求項1に記載のフィルタ処理装置。
  3. 前記係数格納手段は、それぞれが1つのフィルタ係数を格納可能な2次元に配列された複数の係数格納ユニットを備えており、当該複数の係数格納ユニットにおいて、各係数格納ユニットは、格納しているフィルタ係数を隣接する別の係数格納ユニットへシフト出力可能であり、
    前記制御手段は、前記設定された係数転送パターンを参照して、前記2次元に配列された複数の係数格納ユニット間で、前記複数のフィルタ係数を順次シフトさせる
    ことを特徴とする請求項2に記載のフィルタ処理装置。
  4. 前記制御手段は、前記設定された係数転送パターンを参照して、前記2次元に配列された複数の係数格納ユニット間で、ジグザグ形状の経路に沿って前記複数のフィルタ係数を順次シフトさせる
    ことを特徴とする請求項3に記載のフィルタ処理装置。
  5. 前記複数の係数格納ユニットの特定の1つは、格納しているフィルタ係数を外部出力可能であり、
    前記制御手段は、前記設定された係数転送パターンを参照して、前記特定の1つの係数格納ユニットから、前記複数のフィルタ係数を順次出力させる
    ことを特徴とする請求項3に記載のフィルタ処理装置。
  6. 記データ転送パターンは、前記2次元に配列された複数のデータにおいて、隣り合う位置のデータを順次選択して当該2次元に配列された複数のデータの所定範囲の全てを重複なく選択するデータ転送パターンであり、
    前記制御手段は、当該順次選択されたデータの位置により規定される前記所定数のデータのブロック単位でデータを順次読み出す
    ことを特徴とする請求項1に記載のフィルタ処理装置。
  7. 前記データ格納手段は、それぞれが1つのデータを格納可能な2次元に配列された複数のデータ格納ユニットを備えており、当該複数のデータ格納ユニットにおいて、各データ格納ユニットは、格納しているデータを隣接する別のデータ格納ユニットへシフト出力可能であり、
    前記制御手段は、前記設定されたデータ転送パターンを参照して、前記2次元に配列された複数のデータ格納ユニット間で、前記複数のデータを順次シフトさせる
    ことを特徴とする請求項6に記載のフィルタ処理装置。
  8. 前記制御手段は、前記設定されたデータ転送パターンを参照して、前記2次元に配列された複数のデータ格納ユニット間で、ジグザグ形状の経路に沿って前記複数のデータを順次シフトさせる
    ことを特徴とする請求項7に記載のフィルタ処理装置。
  9. 前記複数のデータ格納ユニットのうち前記所定数のブロックに対応する前記所定数のデータ格納ユニットは、格納しているデータを外部出力可能であり、
    前記制御手段は、前記設定されたデータ転送パターンを参照して、前記所定数のデータ格納ユニットから、前記所定数のデータのブロック単位でデータを順次出力させる
    ことを特徴とする請求項7に記載のフィルタ処理装置。
  10. 前記所定数の演算手段は、前記所定数のデータのそれぞれに対して1つの共通のフィルタ係数を並列に乗算する
    ことを特徴とする請求項1に記載のフィルタ処理装置。
  11. 前記所定数の演算手段は、前記並列に乗算した乗算結果を累積加算する
    ことを特徴とする請求項10に記載のフィルタ処理装置。
  12. 前記複数のデータは画像データであり、
    前記係数転送パターン設定手段は、前記データ格納手段に格納された前記画像データの向きに応じて、前記複数の係数転送パターンより1つの係数パターンを選択して設定する
    ことを特徴とする請求項1に記載のフィルタ処理装置。
  13. 前記所定数の演算手段をK個の演算手段とし、前記複数のデータがP×Q個のデータであり、前記複数のフィルタ係数がX×Y個のフィルタ係数であり、前記フィルタ処理の結果がM×N個の処理結果を含む、とした場合、
    K=M×N、
    P+1=M+X、
    Q+1=N+Y
    を満たす
    ことを特徴とする請求項1に記載のフィルタ処理装置。
  14. 前記M×N個の処理結果は、前記K個の演算手段が順次算出する乗算結果を演算手段毎に累積加算して得られる結果である
    ことを特徴とする請求項13に記載のフィルタ処理装置。
  15. フィルタ処理に係る演算を並列に実行する所定数の演算手段と、
    複数のデータを2次元に配列して格納するデータ格納手段と、
    複数のフィルタ係数を2次元に配列して格納する係数格納手段と、
    を備えるフィルタ処理装置の制御方法であって、
    前記2次元に配列された複数のデータから前記所定数ずつ順次転送するデータを読み出す当該配列内の位置が転送ごとに変化する方向を表すデータ転送パターン設定するデータ転送パターン設定工程と、
    前記2次元に配列された複数のフィルタ係数を順次1つずつ読み出す当該配列内の位置が転送ごとに変化する方向を表し、当該転送ごとに変化する方向が前記データ転送パターンと一致する係数転送パターンと一致しない係数転送パターンとを含む複数の係数転送パターンより1つの係数転送パターンを選択して設定する係数転送パターン設定工程と、
    前記設定されたデータ転送パターンを参照してデータを前記所定数ずつ順次転送して前記所定数の演算手段のそれぞれに並列して入力し、前記設定された係数転送パターンを参照してフィルタ係数を順次1つずつ転送して前記所定数の演算手段へ共通に入力する入力工程と、
    を有することを特徴とするフィルタ処理装置の制御方法。
  16. コンピュータを、請求項1乃至14の何れか一項に記載のフィルタ処理装置の各手段として機能させるためのプログラム。
JP2022063543A 2017-10-17 2022-04-06 フィルタ処理装置およびその制御方法 Active JP7352684B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022063543A JP7352684B2 (ja) 2017-10-17 2022-04-06 フィルタ処理装置およびその制御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017201247A JP2019074967A (ja) 2017-10-17 2017-10-17 フィルタ処理装置およびその制御方法
JP2022063543A JP7352684B2 (ja) 2017-10-17 2022-04-06 フィルタ処理装置およびその制御方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017201247A Division JP2019074967A (ja) 2017-10-17 2017-10-17 フィルタ処理装置およびその制御方法

Publications (2)

Publication Number Publication Date
JP2022089892A JP2022089892A (ja) 2022-06-16
JP7352684B2 true JP7352684B2 (ja) 2023-09-28

Family

ID=63787782

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017201247A Pending JP2019074967A (ja) 2017-10-17 2017-10-17 フィルタ処理装置およびその制御方法
JP2022063543A Active JP7352684B2 (ja) 2017-10-17 2022-04-06 フィルタ処理装置およびその制御方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2017201247A Pending JP2019074967A (ja) 2017-10-17 2017-10-17 フィルタ処理装置およびその制御方法

Country Status (3)

Country Link
US (1) US10861123B2 (ja)
EP (2) EP3757757B1 (ja)
JP (2) JP2019074967A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102548718B1 (ko) * 2017-06-07 2023-06-28 삼성전자주식회사 전자 장치 및 그 제어 방법
JP7165018B2 (ja) * 2018-10-03 2022-11-02 キヤノン株式会社 情報処理装置、情報処理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010015257A (ja) 2008-07-01 2010-01-21 Canon Inc 画像処理装置、画像処理方法、及びプログラム
WO2017146816A1 (en) 2016-02-26 2017-08-31 Google Inc. Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2535817B2 (ja) * 1985-11-20 1996-09-18 ソニー株式会社 演算処理装置
US6292621B1 (en) 1996-02-05 2001-09-18 Canon Kabushiki Kaisha Recording apparatus for newly recording a second encoded data train on a recording medium on which an encoded data train is recorded
US7088860B2 (en) * 2001-03-28 2006-08-08 Canon Kabushiki Kaisha Dynamically reconfigurable signal processing circuit, pattern recognition apparatus, and image processing apparatus
US7432985B2 (en) 2003-03-26 2008-10-07 Canon Kabushiki Kaisha Image processing method
JP5522893B2 (ja) 2007-10-02 2014-06-18 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
JP5376920B2 (ja) 2008-12-04 2013-12-25 キヤノン株式会社 コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置
EP3748964A1 (en) * 2010-12-07 2020-12-09 Sony Corporation Image processing device and image processing method
JP6498019B2 (ja) * 2015-04-10 2019-04-10 キヤノン株式会社 画像記録装置及びその制御方法
US10402196B2 (en) * 2015-05-11 2019-09-03 Ceva D.S.P. Ltd. Multi-dimensional sliding window operation for a vector processor, including dividing a filter into a plurality of patterns for selecting data elements from a plurality of input registers and performing calculations in parallel using groups of the data elements and coefficients
KR102325602B1 (ko) * 2015-07-06 2021-11-12 삼성전자주식회사 데이터를 병렬적으로 처리하는 장치 및 방법
JP6700712B2 (ja) * 2015-10-21 2020-05-27 キヤノン株式会社 畳み込み演算装置
JP6778010B2 (ja) * 2016-04-13 2020-10-28 キヤノン株式会社 画像識別システム、画像識別方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010015257A (ja) 2008-07-01 2010-01-21 Canon Inc 画像処理装置、画像処理方法、及びプログラム
WO2017146816A1 (en) 2016-02-26 2017-08-31 Google Inc. Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
JP2019508802A (ja) 2016-02-26 2019-03-28 グーグル エルエルシー プログラムコードを、高性能で電力効率の良いプログラマブルな画像処理ハードウェアプラットフォームにマッピングするためのコンパイラ技法

Also Published As

Publication number Publication date
US10861123B2 (en) 2020-12-08
JP2022089892A (ja) 2022-06-16
US20190114734A1 (en) 2019-04-18
EP3474133A1 (en) 2019-04-24
EP3757757A1 (en) 2020-12-30
EP3474133B1 (en) 2021-01-13
JP2019074967A (ja) 2019-05-16
EP3757757B1 (en) 2023-12-06

Similar Documents

Publication Publication Date Title
JP7352684B2 (ja) フィルタ処理装置およびその制御方法
JP7329533B2 (ja) 演算を加速するための方法および加速器装置
US11068776B2 (en) Convolutional neural network based data processing apparatus, method for controlling the same, and storage medium storing program
US20200160226A1 (en) Spatial locality transform of matrices
TWI627593B (zh) 用於類神經網路計算的旋轉資料
WO2019201657A1 (en) Accelerator and system for accelerating operations
CN116343319A (zh) 用于卷积神经网络的有效数据布局
EP3093757B1 (en) Multi-dimensional sliding window operation for a vector processor
JP6619034B2 (ja) ホモグラフィの修正
JP7414930B2 (ja) 情報処理装置、情報処理方法
CN107909537A (zh) 一种基于卷积神经网络的图像处理方法及移动终端
JP7402623B2 (ja) フィルタ処理装置及びその制御方法
JP6532334B2 (ja) 並列演算装置、画像処理装置及び並列演算方法
JP7169768B2 (ja) 画像処理装置、画像処理方法
WO2020107886A1 (en) Loading apparatus and method for convolution with stride or dilation of 2
US8503793B2 (en) Correlation processing apparatus and medium readable by correlation processing apparatus
JP2022145001A (ja) 画像処理装置、画像処理方法
US20220366531A1 (en) Method and apparatus with image display
CN107871162A (zh) 一种基于卷积神经网络的图像处理方法及移动终端
TWI408618B (zh) 具有可設定化濾波模組之繪圖處理器及其運算方法
JP2020140625A (ja) 画像処理装置及び画像処理方法
JP2023073824A (ja) 演算装置、情報処理方法、及びプログラム
JP2022184136A (ja) 情報処理装置、情報処理方法
JP2023156864A (ja) 画像処理装置、画像処理方法
KR101344858B1 (ko) 영상처리장치 및 영상처리방법, 컴퓨터 판독가능 기록매체

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230320

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230518

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: 20230818

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230915

R151 Written notification of patent or utility model registration

Ref document number: 7352684

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151