JP7201802B2 - 3次元画像処理におけるデータの読み書き方法とシステム、記憶媒体及び端末 - Google Patents

3次元画像処理におけるデータの読み書き方法とシステム、記憶媒体及び端末 Download PDF

Info

Publication number
JP7201802B2
JP7201802B2 JP2021520315A JP2021520315A JP7201802B2 JP 7201802 B2 JP7201802 B2 JP 7201802B2 JP 2021520315 A JP2021520315 A JP 2021520315A JP 2021520315 A JP2021520315 A JP 2021520315A JP 7201802 B2 JP7201802 B2 JP 7201802B2
Authority
JP
Japan
Prior art keywords
sub
size
image
data
circular buffer
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
JP2021520315A
Other languages
English (en)
Other versions
JP2022508028A (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.)
VeriSilicon Microelectronics Nanjing Co Ltd
Original Assignee
VeriSilicon Microelectronics Nanjing Co Ltd
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 VeriSilicon Microelectronics Nanjing Co Ltd filed Critical VeriSilicon Microelectronics Nanjing Co Ltd
Publication of JP2022508028A publication Critical patent/JP2022508028A/ja
Application granted granted Critical
Publication of JP7201802B2 publication Critical patent/JP7201802B2/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
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Architecture (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、バッファ応用の技術分野に関し、特に、3次元画像処理におけるデータの読み書き方法とシステム、記憶媒体及び端末に関する。
デジタル画像処理(Digital Image Processing)とは、コンピュータによって画像のノイズ除去、強調、復元、分割、特徴抽出等の処理を行う方法及び技術のことである。3次元画像処理アルゴリズムでは、複数の層に分けて順番に処理を行うことが多い。各層には入力画像と出力画像が存在するため、3次元画像処理の具体的な実現過程では膨大なメモリ帯域幅を占有する必要がある。例えば、ニューラルネットワークAlex netでは、724M MACsの演算量に対して3000Mのデータアクセスが必要である。よって、メモリの全てにオフチップ(off-chip)DRAMを使用すると、膨大な帯域幅によって多大な消費電力や遅延が発生し、システム性能に深刻な影響が及ぶ。このことから、データの読み書きが3次元画像処理のネックとなっている。
従来技術では、ダブルデータレートメモリ(Double Data Rate、DDR)と算術論理演算装置(Arithmetic Logical Unit、ALU)の間に多段ローカルメモリを増設し、可能な限りバッファリングするとともに、バッファの内容を再利用することがDDRの帯域幅を効果的に減少させる方法とされている。例えば、DRAMとALUの間のグローバルバッファ(global buffer)によって、各ALUの間に互いにアクセス可能なローカル共有メモリを増設し、ALUの内部にレジスタファイル(Register file)を増設する。層を追うごとにバッファレベルを低下させることで、各レベルのメモリユニットがユニットデータを処理する際の消費電力とアクセス遅延も段階的に低下する。この場合には、往々にしてハードウェアがより複雑となり、複雑度に応じて面積も増大する。
このほか、データのビット幅を下げることで帯域幅は減少する。具体的には、量子化によって低いビット(bit)数でデータを表し、処理を要するデータ量を減らしたあと、出力結果を逆量子化する。当該方法によれば、ALUがよりシンプルとなるが、データのビット幅が低下するに伴って、自ずと演算精度が低下してしまう。また、ニューラルネットワークの場合には、データを再トレーニングする必要も生じる。
画像処理アルゴリズムによる画像処理は一定の順序で行われる。そのため、データストリームを分析及び制御し、バッファ(buffer)を合理的に使用してバッファリングすることが可能である。また、画像を小さなタイル(tile)に分割して順に処理する。当該方法によれば、メモリの読み取り幅が小さくなる。バッファリングはタイル単位で行われるため、バッファリングの単位が小さくなり、より小さなメモリ管理ユニット(Memory Management Unit、MMU)又はキャッシュ(cache)ユニットを使用可能となる。しかし、隣接するタイル間には重畳データが存在する。そのため、タイルの境界に位置する点を処理したい場合には、隣接するタイルのデータに繰り返しアクセスせねばならない。タイル間における共通して処理せねばならないデータをオーバーラップ(overlap)データと称する。タイルをバッファリングする場合には、オーバーラップデータについてもバッファリングする必要がある。且つ、1つの層の操作が完了しなければ次の層を操作することができず、層間の結果をDDR内に記憶するために膨大な帯域幅が必要となるほか、バッファ内に記憶するために膨大なバッファ面積も必要となる。そのため、如何にしてバッファの利用率を提供するかが重要な技術研究の方向性となっている。
上述した従来技術の欠点に鑑みて、本発明の目的は、3次元垂直スライド(vertical sliding)技術及びサーキュラーバッファ(circular buffer)によって、限られたバッファ状況で3次元画像処理におけるバッファ利用率を極めて大きく向上させ、重畳部分の処理を減少させることで、画像処理における帯域幅の消耗及び読み書き遅延の問題を全体的に低減させる3次元画像処理におけるデータの読み書き方法とシステム、記憶媒体及び端末を提供することである。
上記の目的及びその他関連の目的を実現するために、本発明は、3次元画像処理におけるデータの読み書き方法を提供する。当該方法は、垂直スライド技術によって3次元画像を水平方向に分割することで、前記3次元画像を少なくとも2つのサブ画像に分け、各サブ画像について、前記サブ画像の処理データをサーキュラーバッファに記憶し、前記サブ画像の処理が完了したあと、前記サーキュラーバッファ内には次のサブ画像が必要とする重畳部分のデータが保持されるステップと、画像処理アルゴリズムの多層ネットワークを少なくとも2つのセグメントに分割することで、各セグメントにおける隣接する層間のデータをバッファ経由でのみやり取りし、DDR経由ではやり取りしないようにするステップとを含む。上記のセグメントは、多層ネットワークのうち隣接する層間でのデータのやり取りをサーキュラーバッファ経由でのみ行うことができるように、サーキュラーバッファのサイズに基づいて定められた層数から成る。
本発明の一実施例において、各サブ画像が占有するサーキュラーバッファのサイズは、サブ画像Xのサイズ*(サブ画像Yのサイズ+オーバーラップのサイズ)*サブ画像Zのサイズである。このうち、サブ画像Xのサイズ、サブ画像Yのサイズ、サブ画像Zのサイズ及びオーバーラップのサイズとは、それぞれ、サブ画像のX方向のサイズ、Y方向のサイズ、Z方向のサイズ、及び重畳部分のサイズのことである。
本発明の一実施例において、各セグメントにおいて、最後の層以外の各層の出力データはバッファに書き込まれ、第1層以外の各層はいずれも前記バッファからデータを読み取る。
本発明の一実施例では、ニューラルネットワークの3次元画像処理に応用する。
然るべく、本発明は3次元画像処理におけるデータの読み書きシステムを提供する。当該システムは、サーキュラーバッファモジュールとセグメントバッファモジュールを含む。
前記サーキュラーバッファモジュールは、垂直スライド技術によって3次元画像を水平方向に分割することで、前記3次元画像を少なくとも2つのサブ画像に分ける。各サブ画像について、前記サブ画像の処理データをサーキュラーバッファに記憶する。前記サブ画像の処理が完了したあと、前記サーキュラーバッファ内には次のサブ画像が必要とする重畳部分のデータが保持される。
前記セグメントバッファモジュールは、画像処理アルゴリズムの多層ネットワークを少なくとも2つのセグメントに分割することで、各セグメントにおける隣接する層間のデータをバッファ経由でのみやり取りし、DDR経由ではやり取りしないようにする。
本発明の一実施例において、各サブ画像が占有するサーキュラーバッファのサイズは、サブ画像Xのサイズ*(サブ画像Yのサイズ+オーバーラップのサイズ)*サブ画像Zのサイズである。このうち、サブ画像Xのサイズ、サブ画像Yのサイズ、サブ画像Zのサイズ及びオーバーラップのサイズとは、それぞれ、サブ画像のX方向のサイズ、Y方向のサイズ、Z方向のサイズ、及び重畳部分のサイズのことである。
本発明の一実施例において、各セグメントにおいて、最後の層以外の各層の出力データはバッファに書き込まれ、第1層以外の各層はいずれも前記バッファからデータを読み取る。
本発明の一実施例では、ニューラルネットワークの3次元画像処理に応用する。
本発明は、記憶媒体を提供する。当該記憶媒体にはコンピュータプログラムが記憶されている。当該プログラムは、プロセッサで実行される際に上記の3次元画像処理におけるデータの読み書き方法を実現する。
本発明は、端末を提供する。当該端末は、プロセッサ及びメモリを含む。前記メモリは、コンピュータプログラムを記憶するために用いられる。前記プロセッサは、前記メモリに記憶されているコンピュータプログラムを実行することで、前記端末に上記の3次元画像処理におけるデータの読み書き方法を実行させる。
上述したように、本発明で記載する3次元画像処理におけるデータの読み書き方法とシステム、記憶媒体及び端末は、以下の有益な効果を有する。
(1)3次元垂直スライド技術とサーキュラーバッファにより、重畳部分の処理を減少させることで、限りあるバッファ状況で3次元画像処理におけるバッファの利用率を極めて大きく向上させる。
(2)ネットワーク全体を分析することで、限りあるバッファ下において層間の結果を必ずしもDDR経由でやり取りする必要がなくなるため、DDRへのアクセスが減少する。これにより、画像処理アルゴリズムにおける帯域幅の需要が減少し、読み書きの遅延や消費電力が低減する。
(3)ハードウェア設計において、より小さなバッファ(buffer)面積を使用可能となる。
図1は、本発明の3次元画像処理におけるデータの読み書き方法の一実施例のフローチャートを示す。 図2は、画像処理アルゴリズムのデータ構造の概略図を示す。 図3は、一実施例における3次元画像を垂直スライドによりサブ画像とする場合の概略図を示す。 図4は、他の実施例における3次元画像を垂直スライドによりサブ画像とする場合の概略図を示す。 図5は、一実施例におけるサブ画像の対応関係の概略図を示す。 図6は、一実施例における3次元画像のサーキュラーバッファの概略図を示す。 図7は、本発明の3次元画像処理におけるデータの読み書きシステムの一実施例の構造図を示す。 図8は、本発明の端末の一実施例における構造図を示す。
以下に、特定の具体的実施例によって本発明の実施形態につき説明する。なお、当業者であれば、本明細書に開示の内容から本発明のその他の利点及び効果を容易に理解可能である。更に、本発明はその他の異なる具体的実施形態によっても実施又は応用可能である。また、本明細書の各詳細事項については、視点及び応用の違いに応じて、本発明の精神を逸脱しないことを前提に各種の補足又は変更が可能である。説明すべき点として、矛盾が生じない場合には、以下の実施例及び実施例の特徴を互いに組み合わせてもよい。
説明すべき点として、以下の実施例で提供する図面は本発明の基本思想を概略的に説明するものにすぎない。図中には本発明に関係するアセンブリのみを示しているが、実際に実施する際のアセンブリの数、形状及びサイズに基づき記載しているわけではない。実際に実施する際には、各アセンブリの形態、数及び比率に基づいて任意に変更してもよく、且つ、アセンブリのレイアウト及び形態がより複雑になる場合もある。
本発明の3次元画像処理におけるデータの読み書き方法とシステム、記憶媒体及び端末は、3次元垂直スライド技術とサーキュラーバッファにより、限られたバッファ状況で3次元画像処理におけるバッファ利用率を極めて大きく向上させ、重畳部分の処理及びDDRへのアクセスを減少させる。これにより、画像処理における帯域幅の消耗及び読み書き遅延の問題を全体的に低減させて、3次元画像処理の速度を極めて大きく向上させる。
図1に示すように、一実施例において、本発明の3次元画像処理におけるデータの読み書き方法は、以下のステップを含む。
ステップS1において、垂直スライド技術によって3次元画像を水平方向に分割することで、前記3次元画像を少なくとも2つのサブ画像に分ける。次に、各サブ画像について、前記サブ画像の処理データをサーキュラーバッファに記憶する。前記サブ画像の処理が完了したあと、前記サーキュラーバッファ内には次のサブ画像が必要とする重畳部分のデータが保持される。
具体的に、3次元画像を分割する際には、一定の3次元ブロックサイズで垂直方向に上から下へと順にスライドする。この技術を垂直スライド技術と称する。垂直スライド技術では、元の3次元画像を上下複数の層に分割する。なお、各層に含まれるデータに重畳は存在しない。また、分割過程では、3次元スライドブロックのサイズを一定とする。よって、第1層又は最後の層については、3次元画像の実際のサイズ及び3次元スライドブロックのサイズに基づき調整を行う。図3に示す例では、3次元画像を4つのサブ画像に分割し、それぞれsubImage0、subImage1、subImage2、subImage3としている。
図2に示すように、ALUはバスを通じてDDRにアクセスするほか、SRAMバッファに直接アクセスすることが可能である。第1回要求としてDDRにデータを要求する場合には、バッファリングを要するデータをSRAMにバッファリングする必要がある。また、ALUがデータを再度要求する場合には、データがSRAMバッファ内に位置していれば、SRAMバッファから直接読み取りを行う。
タイル間におけるオーバーラップ(overlap)の繰り返し処理を減らすために、本発明では、垂直スライド(Vertical sliding)技術を用いて3次元画像を水平方向に分割する。各分割ブロックはサブ画像(sub image)と称される。好ましくは、各サブ画像はできるだけ扁長となるようにする。各サブ画像の幅が元画像の幅と同じ場合には、使用可能なSRAMのサイズに基づいてサブ画像の最大高さを算出可能である。図3に代表的な分割を示す。サブ画像は、X及びZ方向の深さについては元画像と同じであるが、Y方向の高さは小さくなっている。また、算出されたサブ画像の値がマイナス値又は0であった場合には、3次元画像を左右に分ける必要がある。図4は、左右に分けて分割する場合を示しており、元の3次元画像を3×4個の3次元サブ画像に分割している。
具体的に、本発明では、サブ画像の処理過程にサーキュラーバッファ(circular buffer)を導入する。1つのサブ画像の処理が完了し、当該サブ画像の下方のサブ画像を引き続き処理する際には、一時的に前のサブ画像におけるオーバーラップ行のバッファを破棄しないことで、DDRからの重畳データの読み取りを減らす。実行するごとにサーキュラーバッファ内で上書きされるデータは、前のサブ画像におけるすでに消費されており、以降は使用されることのないデータである。こうすることで、空間の節約になるだけでなく、オーバーラップの読み書きの繰り返しが減少する。画像の畳み込み操作において、オーバーラップのサイズは畳み込みカーネル(kernel)の高さに関係する。縦分割方向のサブ画像はサーキュラーバッファを共有し、横方向において隣接するサブ画像はオーバーラップのデータを処理する必要がある。具体的に、各スライディングウィンドウの高さをN、カーネルの高さをMとすると、第2層の1行目は第1層のM-1行を再度使用する必要がある。サーキュラーバッファでは、第1層の処理が完了して当該層の下方の層を処理する場合、第1層の末尾から開始して第2層へと降り、サーキュラーバッファの末尾に到達したあとサーキュラーバッファの先頭へと戻る。第1層のうち上書きされないのは、第2層の1行目が必要とする第1層の末尾数行に相当するため、バッファを節約することができ、バッファの利用率が向上する。
サブ画像の分割にあたっては、異なる層間のサブ画像に対応関係が存在する。図5は、2つの層が合計3つのサブ画像に分割される場合を示している。なお、簡略化のために、Z方向の図示は省略している。仮に、SubImage00とSubImage20の高さが2であり、その他のサブ画像の高さが4であるとする。畳み込み操作を実行するにあたり、2回の畳み込みカーネルを3×3とすると、SubImage00とSubImage10がSubImage10の入力に対応し、SubImage10がSubImage20の入力に対応する。その他の依存関係についてもこれと同様となる。具体的に、SubImage11を入力とする場合には、SubImage10の内容を使用する必要があり、必要とされる行がオーバーラップ行となる。サーキュラーバッファ技術を利用すれば、SRAM内にはオーバーラップ行と新たに生成された結果のみを記憶すればよく、元の3次元画像の出力全体を記憶する必要はない。
サーキュラーバッファは3次元画像全体を1つの循環単位として実現され、Z面ごとにオーバーラップ行のための空間が予め保持される。仮に、1つの3次元画像が、Z方向に2つの面としてZ0及びZ1を有しており、Y方向にR0~R7の8行を有しているとする。このとき、3次元画像を2つのサブ画像に上下に分割して、subImage0及びsubImage1と称すると、subImage0がR0~R3を含み、subImage1がR4~R7を含む。仮に、畳み込みカーネルのサイズを3×3×2とすると、サブ画像間のオーバーラップは2行となる。サーキュラーバッファのサイズは、サブ画像Xのサイズ*(サブ画像Yのサイズ+オーバーラップのサイズ)*サブ画像Zのサイズとなる。このうち、サブ画像Xのサイズ、サブ画像Yのサイズ、サブ画像Zのサイズ及びオーバーラップのサイズとは、それぞれ、サブ画像のX方向のサイズ、Y方向のサイズ、Z方向のサイズ、及び重畳部分のサイズのことである。
図6に示すように、subImage0をバッファリングする場合、サーキュラーバッファの設置にはオーバーラップ空間が予め保持される。当該実施例において、オーバーラップ空間は2行であり、「empty(空)」で表される。SubImage0は、バッファリングされたあと次の層のネットワークに消費される。そして、次にsubImage1をバッファリングする際には、subImage1の各Z面が、subImage0の各Z面に対応するemptyから、或いは、Z面の最後に対応する位置から順に記憶されて行く。これにより上書きされる部分は、SubImage0のうちすでに消費された部分に相当する。いずれかのZ面がサーキュラーバッファの末尾に到達すると、バッファの先頭部が上書きされる。また、各Z面における上書きされない行は、オーバーラップに必要な行に相当する。
説明すべき点として、同一の3次元画像から分割される複数のサブ画像の高さは完全に同一とは限らない。よって、1つのサブ画像を処理するごとに、3次元サブ画像の始点アドレス、幅、高さ、ストライド幅(stride)及び出力アドレスを情報として把握する必要がある。これらのパラメータは、サブ画像を分割したあと正しく配置せねばならない。
ステップS2において、画像処理アルゴリズムの多層ネットワークを少なくとも2つのセグメントに分割することで、各セグメントにおける隣接する層間のデータをバッファ経由でのみやり取りし、DDR経由ではやり取りしないようにする。
具体的に、画像処理モデルでは複数の層を含むことが多く、層ごとに然るべきタスクを完了させる。また、隣接する層の間にはデータの依存関係が存在する。そのため、隣接する2つの層の間でDDRを用いてデータのやり取りを完了させる場合には、大量のDDR帯域幅や遅延が発生する。また、中間結果を全てバッファ内にバッファリングしてしまうと、バッファを膨大に占有することになる。そこで、サブ画像に分割したあと、層間の中間結果についてサブ画像をバッファリングの単位とすれば、層全体の全ての中間結果をバッファリングする必要がなくなる。よって、本発明では、バッファのサイズに基づいて、どれだけの層がバッファを利用してやり取り可能であるかを判断する。これらの層の特性としては、第1層がDDRからデータを読み取って出力をSRAMバッファ内にバッファリングし、中間層がバッファからデータを読み取ってバッファに書き込む。これを、最後の層のデータがDDRに書き戻されるまで行う。また、上記の条件を満たす層がセグメント(segment)となる。即ち、セグメント内における最後の層以外の各層の結果はSRAMバッファに書き込まれ、第1層以外の層はいずれもSRAMからデータを読み取る。
分割されるサブ画像が小さいほど、サーキュラーバッファが占有するSRAMは小さくなる。つまり、サブ画像間のオーバーラップ部分が占める割合が大きいほど、有効データの占有率は小さくなる。よって、データをDDRによりバッファリングするか、SRAMによりバッファリングするかでコストが異なってくる。また、セグメントの分割の違いによって、コストパフォーマンスやSRAMの利用率に違いが出るため、性能の最適解を見つける必要がある。且つ、層の分割はサブ画像の分割にも関連する。
好ましくは、本発明の3次元画像処理におけるデータの読み書き方法をニューラルネットワークの3次元画像処理に応用する。
図7に示すように、一実施例において、本発明の3次元画像処理におけるデータの読み書きシステムは、サーキュラーバッファモジュール61とセグメントバッファモジュール62を含む。
前記サーキュラーバッファモジュール61は、垂直スライド技術によって3次元画像を水平方向に分割することで、前記3次元画像を少なくとも2つのサブ画像に分ける。各サブ画像について、前記サブ画像の処理データをサーキュラーバッファに記憶する。前記サブ画像の処理が完了したあと、前記サーキュラーバッファ内には次のサブ画像が必要とする重畳部分のデータが保持される。
前記セグメントバッファモジュール62は、画像処理アルゴリズムの多層ネットワークを少なくとも2つのセグメントに分割することで、各セグメントにおける隣接する層間のデータをバッファ経由でのみやり取りし、DDR経由ではやり取りしないようにする。
説明すべき点として、前記サーキュラーバッファモジュール61とセグメントバッファモジュール62の構造及び原理は、上述した3次元画像処理におけるデータの読み書き方法のステップと一対一で対応しているため、ここでは改めて詳述しない。
説明すべき点として、上記の装置における各モジュールの区分は論理機能に基づく区分にすぎず、実際に実現する際には全部或いは一部を1つの物理的実体に集積してもよいし、物理的に切り離してもよい。且つ、これらのモジュールは、全てを処理デバイスでソフトウェアを呼び出す形式で実現してもよいし、全てをハードウェア形式で実現してもよいし、また、一部のモジュールを処理デバイスでソフトウェアを呼び出す形式で実現して一部のモジュールをハードウェア形式で実現してもよい。例えば、xモジュールを単独で設置される処理デバイスとしてもよいし、上記装置のいずれかのチップに集積して実現してもよい。また、xモジュールは、プログラムコードの形式で上記装置のメモリに記憶してもよいし、上記装置のいずれかの処理デバイスにより上記xモジュールの機能を呼び出して実行してもよい。その他のモジュールの実現についてもこれと同様である。また、これらモジュールの全部又は一部を一体的に集積してもよいし、個別に実現してもよい。ここでいう処理デバイスは、信号処理能力を有する集積回路とすればよい。実現過程において、上記方法の各ステップ又は上記の各モジュールは、処理デバイスにおけるハードウェアの集積論理回路又はソフトウェア形式の命令により完了してもよい。上記のモジュールは、上記の方法を実施する1又は複数の集積回路として配置可能である。例えば、1又は複数の特定用途向け集積回路(Application Specific Integrated Circuit、ASICと略称)、1又は複数のマイクロプロセッサ(Digital Singnal Processor、DSPと略称)、1又は複数のフィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGAと略称)等とすればよい。上記いずれかのモジュールを処理デバイスによりプログラムコードを呼び出す形式で実現する場合、当該処理デバイスは、例えば中央処理装置(Central Processing Unit、CPUと略称)やその他のプログラムコードを呼び出し可能なプロセッサといった汎用のプロセッサとすればよい。これらのモジュールは一体的に集積し、システムオンチップ(system-on-a-chip、SOCと略称)の形式で実現してもよい。
本発明の記憶媒体にはコンピュータプログラムが記憶されている。当該プログラムは、プロセッサで実行される際に上記の3次元画像処理におけるデータの読み書き方法を実現する。
好ましくは、前記記憶媒体には、ROM、RAM、磁気ディスク、USB、メモリカード又は光ディスク等のプログラムコードを記憶可能な各種媒体が含まれる。
図8に示すように、一実施例において、本発明の端末はプロセッサ71とメモリ72を含む。
前記メモリ72は、コンピュータプログラムを記憶するために用いられる。
前記メモリ72には、ROM、RAM、磁気ディスク、USB、メモリカード又は光ディスク等のプログラムコードを記憶可能な各種媒体が含まれる。
前記プロセッサ71は前記メモリ72に接続されており、前記メモリ72に記憶されているコンピュータプログラムを実行することで、前記端末に上記の3次元画像処理におけるデータの読み書き方法を実行させる。
好ましくは、前記プロセッサ71は、中央処理装置(Central Processing Unit、CPUと略称)やネットワークプロセッサ(Network Processor、NPと略称)等を含む汎用のプロセッサとしてもよいし、デジタルシグナルプロセッサ(Digital Signal Processor、DSPと略称)、特定用途向け集積回路(Application Specific Integrated Circuit、ASICと略称)、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGAと略称)、又は、その他のプログラマブルロジックデバイス、ディスクリートゲート、又はトランジスタの論理デバイス、ディスクリートハードウェアアセンブリとしてもよい。
以上述べたように、本発明の3次元画像処理におけるデータの読み書き方法とシステム、記憶媒体及び端末は、3次元垂直スライド技術とサーキュラーバッファにより重畳部分の処理を減少させることで、限りあるバッファ状況で3次元画像処理におけるバッファの利用率を極めて大きく向上させる。また、ネットワーク全体を分析することで、限りあるバッファ下において層間の結果を必ずしもDDR経由でやり取りする必要がなくなるため、DDRへのアクセスが減少する。これにより、画像処理アルゴリズムにおける帯域幅の需要が減少し、読み書きの遅延や消費電力が低減する。また、ハードウェア設計において、より小さなバッファ面積を使用可能となる。従って、本発明は従来技術における様々な瑕疵を効果的に解消しており、高度な産業の利用価値を有している。
上記の実施例は本発明の原理と効果を例示的に説明するものにすぎず、本発明を制限するものではない。本技術を熟知する者であれば、本発明の精神及び範囲を逸脱しないことを前提に、上記の実施例を補足又は変形可能である。従って、当業者が本発明で開示した精神及び技術思想から逸脱することなく遂行するあらゆる等価の補足又は変形もまた本発明の特許請求の範囲に含まれる。
61 サーキュラーバッファモジュール
62 セグメントバッファモジュール
71 プロセッサ
72 メモリ

Claims (10)

  1. ダブルデータレートメモリ(DDR)及びサーキュラーバッファ並びに多層ネットワークを用いた画像処理アルゴリズムを用いて行う3次元画像処理におけるデータの読み書き方法において、
    垂直スライド技術によって3次元画像を水平方向に分割することで、前記3次元画像を少なくとも2つのサブ画像に分け、各サブ画像について、前記サブ画像の処理データを前記サーキュラーバッファに記憶し、前記サブ画像の処理が完了したあと、前記サーキュラーバッファ内には次のサブ画像が必要とする重畳部分のデータが保持されるステップと、
    前記多層ネットワークのうち隣接する層間でデータのやり取りを前記サーキュラーバッファ経由でのみ行うことができる層数から成るセグメントを、前記サーキュラーバッファのサイズに基づいて定め、かつ、前記多層ネットワークを少なくとも2つの前記セグメントに分割することで、前記各セグメントにおける隣接する層間のデータを前記サーキュラーバッファ経由でのみやり取りし、前記DDR経由ではやり取りしないようにするステップとを含むことを特徴とする3次元画像処理におけるデータの読み書き方法。
  2. 前記各サブ画像が占有する前記サーキュラーバッファのサイズは、サブ画像Xのサイズ*(サブ画像Yのサイズ+オーバーラップのサイズ)*サブ画像Zのサイズであり、このうち、サブ画像Xのサイズ、サブ画像Yのサイズ、サブ画像Zのサイズ及びオーバーラップのサイズとは、それぞれ、サブ画像のX方向のサイズ、Y方向のサイズ、Z方向のサイズ、及び重畳部分のサイズのことであることを特徴とする請求項1に記載の3次元画像処理におけるデータの読み書き方法。
  3. 前記各セグメントにおいて、最後の層以外の各層の出力データは前記サーキュラーバッファに書き込まれ、第1層以外の各層はいずれも前記サーキュラーバッファからデータを読み取ることを特徴とする請求項1に記載の3次元画像処理におけるデータの読み書き方法。
  4. ニューラルネットワークの3次元画像処理に応用されることを特徴とする請求項1に記載の3次元画像処理におけるデータの読み書き方法。
  5. ダブルデータレートメモリ(DDR)及びサーキュラーバッファ並びに多層ネットワークを用いた画像処理アルゴリズムを用いて行う3次元画像処理におけるデータの読み書きシステムにおいて、
    サーキュラーバッファモジュールとセグメントバッファモジュールを含み、
    前記サーキュラーバッファモジュールは、垂直スライド技術によって3次元画像を水平方向に分割することで、前記3次元画像を少なくとも2つのサブ画像に分け、各サブ画像について、前記サブ画像の処理データを前記サーキュラーバッファに記憶し、前記サブ画像の処理が完了したあと、前記サーキュラーバッファ内には次のサブ画像が必要とする重畳部分のデータが保持され、
    前記セグメントバッファモジュールは、前記多層ネットワークのうち隣接する層間でデータのやり取りを前記サーキュラーバッファ経由でのみ行うことができる層数から成るセグメントを、前記サーキュラーバッファのサイズに基づいて定め、かつ、前記多層ネットワークを少なくとも2つの前記セグメントに分割することで、前記各セグメントにおける隣接する層間のデータを前記サーキュラーバッファ経由でのみやり取りし、前記DDR経由ではやり取りしないようにすることを特徴とする3次元画像処理におけるデータの読み書きシステム。
  6. 前記各サブ画像が占有する前記サーキュラーバッファのサイズは、サブ画像Xのサイズ*(サブ画像Yのサイズ+オーバーラップのサイズ)*サブ画像Zのサイズであり、このうち、サブ画像Xのサイズ、サブ画像Yのサイズ、サブ画像Zのサイズ及びオーバーラップのサイズとは、それぞれ、サブ画像のX方向のサイズ、Y方向のサイズ、Z方向のサイズ、及び重畳部分のサイズのことであることを特徴とする請求項5に記載の3次元画像処理におけるデータの読み書きシステム。
  7. 前記各セグメントにおいて、最後の層以外の各層の出力データは前記サーキュラーバッファに書き込まれ、第1層以外の各層はいずれも前記前記サーキュラーバッファからデータを読み取ることを特徴とする請求項5に記載の3次元画像処理におけるデータの読み書きシステム。
  8. ニューラルネットワークの3次元画像処理に応用されることを特徴とする請求項5に記載の3次元画像処理におけるデータの読み書きシステム。
  9. コンピュータプログラムが記憶されている記憶媒体であって、
    当該プログラムは、プロセッサで実行される際に請求項1~4のいずれか1項に記載の3次元画像処理におけるデータの読み書き方法を実現することを特徴とする記憶媒体。
  10. プロセッサ及びメモリを含み、
    前記メモリはコンピュータプログラムを記憶するために用いられ、
    前記プロセッサは、前記メモリに記憶されているコンピュータプログラムを実行することで、請求項1~4のいずれか1項に記載の3次元画像処理におけるデータの読み書き方法を実行することを特徴とする端末。
JP2021520315A 2018-10-10 2019-09-25 3次元画像処理におけるデータの読み書き方法とシステム、記憶媒体及び端末 Active JP7201802B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811179323.6A CN111028360B (zh) 2018-10-10 2018-10-10 一种3d图像处理中数据读写方法及***、存储介质及终端
CN201811179323.6 2018-10-10
PCT/CN2019/107678 WO2020073801A1 (zh) 2018-10-10 2019-09-25 一种3d图像处理中数据读写方法及***、存储介质及终端

Publications (2)

Publication Number Publication Date
JP2022508028A JP2022508028A (ja) 2022-01-19
JP7201802B2 true JP7201802B2 (ja) 2023-01-10

Family

ID=70164275

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021520315A Active JP7201802B2 (ja) 2018-10-10 2019-09-25 3次元画像処理におけるデータの読み書き方法とシステム、記憶媒体及び端末

Country Status (6)

Country Link
US (1) US11455781B2 (ja)
EP (1) EP3816867A4 (ja)
JP (1) JP7201802B2 (ja)
KR (1) KR20210070369A (ja)
CN (1) CN111028360B (ja)
WO (1) WO2020073801A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117036149A (zh) * 2020-12-01 2023-11-10 华为技术有限公司 一种图像处理方法及芯片
CN112541929A (zh) * 2021-01-25 2021-03-23 翱捷科技股份有限公司 一种用于卷积神经网络的图像处理方法及***
WO2023033759A1 (en) * 2021-09-03 2023-03-09 Aselsan Elektroni̇k Sanayi̇ Ve Ti̇caret Anoni̇m Şi̇rketi̇ A method to accelerate deep learning applications for embedded environments
US11972504B2 (en) 2022-08-10 2024-04-30 Zhejiang Lab Method and system for overlapping sliding window segmentation of image based on FPGA
CN115035128B (zh) * 2022-08-10 2022-11-08 之江实验室 基于fpga的图像重叠滑窗分割方法及***

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018147182A (ja) 2017-03-03 2018-09-20 キヤノン株式会社 演算処理装置およびその制御方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090073179A1 (en) * 2006-03-06 2009-03-19 Nxp B.V. Addressing on chip memory for block operations
CN101080009B (zh) * 2007-07-17 2011-02-23 智原科技股份有限公司 运用于图像编解码器中的去方块过滤方法与装置
CN101859280B (zh) 2010-06-03 2012-04-04 杭州海康威视软件有限公司 一种二维图像数据的并行传输计算方法及***
CN104281543B (zh) * 2013-07-01 2017-12-26 图芯芯片技术(上海)有限公司 同时支持显示控制器和图形加速器访问内存的架构方法
US20150228106A1 (en) * 2014-02-13 2015-08-13 Vixs Systems Inc. Low latency video texture mapping via tight integration of codec engine with 3d graphics engine
US10944911B2 (en) * 2014-10-24 2021-03-09 Texas Instruments Incorporated Image data processing for digital overlap wide dynamic range sensors
JP6766557B2 (ja) * 2016-09-29 2020-10-14 アイシン精機株式会社 周辺監視装置
CN108629734B (zh) 2017-03-23 2021-10-22 展讯通信(上海)有限公司 图像几何变换方法、装置及终端
CN107679621B (zh) * 2017-04-19 2020-12-08 赛灵思公司 人工神经网络处理装置
US11373266B2 (en) * 2017-05-05 2022-06-28 Intel Corporation Data parallelism and halo exchange for distributed machine learning
CN107454364B (zh) * 2017-06-16 2020-04-24 国电南瑞科技股份有限公司 一种视频监控领域的分布式实时图像采集与处理***
US20190057060A1 (en) * 2017-08-19 2019-02-21 Wave Computing, Inc. Reconfigurable fabric data routing
CN108475347A (zh) 2017-11-30 2018-08-31 深圳市大疆创新科技有限公司 神经网络处理的方法、装置、加速器、***和可移动设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018147182A (ja) 2017-03-03 2018-09-20 キヤノン株式会社 演算処理装置およびその制御方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LU, Liqiang et al.,Evaluating Fast Algorithms for Convolutional Neural Networks on FPGAs,2017 IEEE 25th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM),米国,IEEE,2017年04月30日,pp.101-108,<URL:https://ieeexplore.ieee.org/document/7966660>
MARTINS, Leonardo et al.,Accelerating Curvature Estimate in 3D Seismic Data Using GPGPU,2014 IEEE 26th International Symposium on Computer Architecture and High Performance Computing,米国,IEEE,2014年10月22日,pp.105 - 111,<URL:https://ieeexplore.ieee.org/document/6970653>
加藤 英樹,高並列ニューロコンピュータ,FUJITSU,日本,富士通株式会社,1991年05月10日,第42巻 第3号,pp.213~221

Also Published As

Publication number Publication date
CN111028360A (zh) 2020-04-17
CN111028360B (zh) 2022-06-14
EP3816867A4 (en) 2021-09-15
KR20210070369A (ko) 2021-06-14
WO2020073801A1 (zh) 2020-04-16
JP2022508028A (ja) 2022-01-19
EP3816867A1 (en) 2021-05-05
US11455781B2 (en) 2022-09-27
US20210295607A1 (en) 2021-09-23

Similar Documents

Publication Publication Date Title
JP7201802B2 (ja) 3次元画像処理におけるデータの読み書き方法とシステム、記憶媒体及び端末
US10140123B2 (en) SIMD processing lanes storing input pixel operand data in local register file for thread execution of image processing operations
US11989638B2 (en) Convolutional neural network accelerating device and method with input data conversion
US10936230B2 (en) Computational processor-in-memory with enhanced strided memory access
CN108388527B (zh) 直接存储器存取引擎及其方法
US11734788B2 (en) Task execution in a SIMD processing unit with parallel groups of processing lanes
CN111324294B (zh) 存取张量数据的方法和装置
US10552307B2 (en) Storing arrays of data in data processing systems
CN113032007B (zh) 一种数据处理方法及装置
CN111079917A (zh) 张量数据分块存取的方法及装置
US11875248B2 (en) Implementation of a neural network in multicore hardware
JP7403457B2 (ja) 構成可能コンピューティング基板についてのニアメモリのハード化された計算ブロック
CN117271136A (zh) 数据处理方法、装置、设备和存储介质
US9183435B2 (en) Feature generalization using topological model
CN110766150A (zh) 一种深度卷积神经网络硬件加速器中的区域并行数据载入装置及方法
CN113325999B (zh) 用于处理非结构化源数据的方法和***
EP4391376A1 (en) Performing a separable operation on a two-dimensional array of values at a processing unit comprising a memory
US11842273B2 (en) Neural network processing
CN118278474A (zh) 一种基于多核处理器的三维卷积并行计算方法、装置和设备
CN118246498A (zh) 将神经网络映射到硬件
CN118246499A (zh) 在硬件中实现神经网络
CN113298243A (zh) 数据存储管理方法和装置以及卷积计算硬件加速器
CN118227516A (zh) 在处理单元处对值阵列执行运算
JPWO2019143442A5 (ja)
CN116472537A (zh) 一种数据处理方法和处理器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210408

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220803

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221222

R150 Certificate of patent or registration of utility model

Ref document number: 7201802

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150