JP2010086497A - 画像処理装置及びデータプロセッサ - Google Patents

画像処理装置及びデータプロセッサ Download PDF

Info

Publication number
JP2010086497A
JP2010086497A JP2008258039A JP2008258039A JP2010086497A JP 2010086497 A JP2010086497 A JP 2010086497A JP 2008258039 A JP2008258039 A JP 2008258039A JP 2008258039 A JP2008258039 A JP 2008258039A JP 2010086497 A JP2010086497 A JP 2010086497A
Authority
JP
Japan
Prior art keywords
data
circuit
storage
control
arithmetic
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
JP2008258039A
Other languages
English (en)
Other versions
JP2010086497A5 (ja
Inventor
Nobutaka Takahashi
宜孝 高橋
Shoji Muramatsu
彰二 村松
Tetsuaki Nakamigawa
哲明 中三川
Hiroyuki Hamazaki
博幸 浜崎
So Otsuka
総 大塚
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2008258039A priority Critical patent/JP2010086497A/ja
Priority to US12/566,123 priority patent/US20100088493A1/en
Publication of JP2010086497A publication Critical patent/JP2010086497A/ja
Publication of JP2010086497A5 publication Critical patent/JP2010086497A5/ja
Priority to US13/839,278 priority patent/US20130212362A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Landscapes

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

Abstract

【課題】ハードワイヤード方式の効率性を確保し、且つ、様々な画像処理機能を実現することが容易な画像処理装置を提供する。
【解決手段】ハードワイヤード方式で実現される画像処理のための演算機能とバッファメモリのメモリアクセス制御に制約を設けて、その制約の範囲をプログラム制御等によって可変可能とする。バッファメモリ(105)は記憶ライン単位という制約を受けて外部からデータを入力し、入力する記憶ライン数と記憶ラインの位置を制御回路(101,102)によりプログラマブルにでき、演算回路(106)はバッファメモリから供給される単数又は複数の記憶ラインのデータ単位で演算を行うという制約を受け、そのデータ単位に対する演算処理単位の演算処理内容を制御回路(101,102)によりプログラマブルに指定することができる。
【選択図】図1

Description

本発明は、画像処理のためのデータ処理技術に関し、例えばラインメモリのようなバッファメモリと演算回路を用いて画像処理を行なう画像処理装置、更にはデータプロセッサに適用して有効な技術に関する。
各種の画像処理アルゴリズムについて研究が進展しており、新しいアルゴリズムの発表や従来アルゴリズムの改良等が発表され続けている。これら新アルゴリズムに対応するためには、画像処理演算のプログラムを改変することにより対応することが考えられる。これはDSP(ディジタル・シグナル・プロセッサ)や一部の多並列演算器を備えた画像処理アーキテクチャによって実現されており、プログラムを組むことにより新アルゴリズムにも一定の対応が可能なものとなっている。プログラムによって新アルゴリズムに対応できるようなアーキテクチャは、一般に消費電力や面積性能比(コストパフォーマンス)の上でハードワイヤード方式に劣る。組込みコントローラ向けには、消費電力や要求される高い面積性能比(コストパフォーマンス)から、ハードワイヤード方式の方が有利である。しかしながら、ハードワイヤード方式はハード設計後に登場する新アーキテクチャへの対応が困難であるという課題があった。ハードワイヤードをベースとして、演算データをラインメモリに書き戻す等、演算の自由度を増やすことを狙った発明として、特許文献1に開示のものがある。
特開平10−340340号公報
しかしながら、演算の自由度を増やすことを狙った特許文献1に開示の技術では、ハードワイヤード方式とプログラム方式との双方の利点を生かしきることが難しいことが本発明者によって見出された。即ち、画像処理機能をハードワイヤード方式で実現される専用ハードウェアで構成した場合、必要最小限のハードウェアで、高い性能を実現することができる反面、メモリのアクセス制御や画像処理の演算処理をハードワイヤード方式にした場合には制御や機能が回路として実装されているため、設計時に予定されている演算アルゴリズム以外の処理をすることは事実上できない。また、汎用プロセッサのようにメモリのアクセス制御や演算処理をプログラムで記述する方式の場合、様々な演算アルゴリズムを可能とするため、メモリへのアクセスに自由度を持たせ、回路が複雑かつ回路規模も大きくなり、その結果、自由度の大きなプログラム記述方式では、ハードワイヤード方式に比べると、同じ性能を実現するためには大きな回路規模で実現しなければならない。
本発明の別の目的は、回路規模が小さく、処理性能に優れた画像処理装置を提供することにある。
本発明の別の目的は、ハードワイヤード方式の効率性を確保し、且つ、様々な画像処理機能を実現することが容易な画像処理装置、更にはデータプロセッサを提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、ハードワイヤード方式で実現される画像処理のための演算機能とバッファメモリのメモリアクセス制御に制約を設けて、その制約の範囲をプログラム制御等によって可変可能とする。これにより、ハードワイヤード方式の効率性が確保され、様々な画像処理機能を実現できるようにそれらのハードワイヤード回路を制御できるようになる。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、ハードワイヤード方式で高効率に実装された演算アルゴリズムを可変可能に用いてより複雑な演算アルゴリズムを実現することができ、回路規模が小さく、処理性能に優れた画像処理装置を提供することができる。
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明に係る画像処理装置(201)は、演算対象とするデータを外部から読み出して入力するための入力回路(104)と、入力回路によって入力したデータを一時的に保持するバッファメモリ(105)と、前記バッファメモリから出力されたデータの演算処理を行なう演算回路(106)と、前記演算回路による演算結果を外部又は前記バッファメモリに書き戻すための出力回路(107)と、制御回路(101,102)と、を有する。前記バッファメモリは記憶領域として論理上直列な記憶ライン(MLi)を複数有し、前記制御回路で指定された前記記憶ラインに入力データを書き込み書き込まれたデータの読出しが可能とされる。前記演算回路はバッファから出力された単数又は複数の前記記憶ラインのデータを前記制御回路により指定された処理内容で演算処理単位毎に繰り返し演算する。前記制御回路は、指定した記憶ラインのデータを記憶ライン単位で前記バッファメモリから前記演算回路に出力させる。
上記によれば、バッファメモリは記憶ライン単位という制約を受けて外部からデータを入力し、入力する記憶ライン数と記憶ラインの位置を制御回路によりプログラマブルにでき、演算回路はバッファメモリから供給される単数又は複数の記憶ラインのデータ単位で演算を行うという制約を受け、そのデータ単位に対する演算処理単位の演算処理内容を制御回路によりプログラマブルに指定することができる。したがって、ハードワイヤード方式の効率性を確保し、様々な画像処理機能を実現できるようにそれらのハードワイヤード回路を制御回路で制御することができる。
〔2〕項1の画像処理装置において、前記制御回路は、外部から入力されるデータを書き込む単数又は複数の前記記憶ラインを指示し、演算回路による演算結果を書き戻す前記記憶ラインを指示する。
〔3〕本発明に係るデータプロセッサは、画像処理装置(201)と、前記画像処理装置の制御及びメモリのアクセス制御を行う中央処理装置(208)とを有する。前記画像処理装置は、演算対象とするデータを前記メモリから読み出して入力するための入力回路と、入力回路によって入力したデータを一時的に保持するバッファメモリと、前記バッファメモリから出力されたデータの演算処理を行なう演算回路と、前記演算回路による演算結果を前記メモリ又は前記バッファメモリに書き戻すための出力回路と、制御回路と、を有する。前記バッファメモリは記憶領域として論理上直列な記憶ラインを複数有し、指定された前記記憶ラインに入力データを書き込み書き込まれたデータの読出しが可能とされる。前記演算回路はバッファから出力された単数又は複数の前記記憶ラインのデータを指定された処理内容で演算処理単位毎に繰り返し演算する。前記制御回路は、前記入力回路から入力されるデータを書き込む単数又は複数の前記記憶ラインを指示し、前記演算回路による演算処理内容を指示し、演算回路による演算結果を書き戻す前記記憶ラインを指示し、バッファメモリから演算回路にデータを供給する記憶ラインを指示する。
上記同様に、ハードワイヤード方式の効率性を確保し、様々な画像処理機能を実現できるようにそれらのハードワイヤード回路を制御回路で制御することができる。
〔4〕項3のデータプロセッサにおいて、前記中央処理装置は画像処理装置の演算動作中に、画像処理装置による演算結果を前記メモリから参照する。
〔5〕本発明の別の観点によるデータプロセッサは、画像処理装置と、前記画像処理装置の制御及びメモリのアクセス制御を行う中央処理装置とを有する。前記画像処理装置は、演算対象とするデータを前記メモリから読み出して入力するための入力回路と、入力回路によって入力したデータを一時的に保持するバッファメモリと、前記バッファメモリから出力されたデータの演算処理を行なう演算回路と、前記演算回路による演算結果を前記メモリ又は前記バッファメモリに書き戻すための出力回路と、制御回路と、を有する。前記バッファメモリは記憶領域として論理上直列な記憶ライン(MLi)を複数有し、前記制御回路で指定された前記記憶ラインに入力データを書き込み書き込まれたデータの読出しが可能とされる。前記演算回路は前記バッファメモリから読み出された複数の前記記憶ラインのデータを前記制御回路で指定された処理内容に従って並列に演算可能である。前記制御回路は、前記バッファメモリの複数の記憶ライン分に相当する第1の記憶領域(MLi〜MLi+4)のデータに対して順次データ処理単位毎に前記演算回路に第1の演算を繰り返し実行させ、繰り返し実行された第1の演算による演算家結果が前記バッファメモリの複数の記憶ライン分に相当する第2の記憶領域(MLj〜MLj+2)の記憶ラインに格納されたとき、第1の記憶領域で最も先にデータ記憶が行われた記憶ラインに対してデータ入換えを行ってから、再び前記第1の演算を繰り返し実行させる制御を行う。
上記同様に、ハードワイヤード方式の効率性を確保し、様々な画像処理機能を実現できるようにそれらのハードワイヤード回路を制御回路で制御することができる。更に、バッファメモリに格納したデータを用いた第1の演算の結果をバッファメモリに書き戻すと共に、第1の演算の用いるデータを記憶ライン単位で更新しながら第1の演算を継続する演算アルゴリズムを実現することができる。
〔6〕項5のデータプロセッサにおいて、前記制御部は、前記第2の記憶領域の記憶ラインに必要な演算結果が揃ったとき、第2の記憶領域のデータに対して順次データ処理単位毎に前記演算回路に第2の演算を繰り返し実行させ、繰り返し実行された第2の演算による演算家結果を前記バッファメモリの第3の記憶領域(MLk)の記憶ラインに格納させる制御を行う。
これにより、バッファメモリに書き戻した第1の演算結果を更に用いて第2の演算を行い、その結果を更にバッファメモリに書き戻して次の演算に備えると言う演算アルゴリズムを実現することができる。
〔7〕項6のデータプロセッサにおいて、前記制御部は、前記第3の記憶領域の記憶ラインに必要な演算結果が揃ったとき、第3の記憶領域のデータに対して前記演算回路に第3の演算を繰り返し実行させ、繰り返し実行された第3の演算による演算家結果を前記バッファメモリの第4の記憶領域(MLm)の記憶ラインに格納させる制御を行う。
これにより、バッファメモリに書き戻した第2の演算結果を更に用いて第3の演算を行い、その結果を更にバッファメモリに書き戻して次の処理に備えると言う演算アルゴリズムを実現することができる。
〔8〕項7のデータプロセッサにおいて、前記制御回路は、前記第4の記憶領域の記憶ラインに必要な演算結果が揃ったとき、前記出力回路に指示を与えて当該演算結果を前記メモリに書き込む制御を行う。これにより、画像処理装置とメモリとの間のデータ転送に伴うオーバーヘッドを抑えることができる。
〔9〕項6のデータプロセッサにおいて、前記制御部は、前記第3の記憶領域の記憶ラインに必要な演算結果が揃ったとき、第3の記憶領域のデータに対して前記演算回路に第3の演算を繰り返し実行させ、繰り返し実行された第3の演算による演算家結果を前記出力回路に外部へ出力させる制御を行う。
〔10〕項5乃至9の何れかのデータプロセッサにおいて、前記制御回路は、マイクロコントローラ、制御レジスタ、及び同期化制御回路を有する。前記マイクロコントローラはプログラムを実行して前記制御レジスタに制御データを書き込む制御を行う。前記同期化制御回路は前記入力回路及び前記演算回路の動作状態に従って前記前記制御レジスタの書き込み制御を行う。前記制御レジスタは書き込まれた制御データに従って前記入力回路、前記バッファ回路、前記演算回路及び前記出力回路に制御信号を出力する。
〔11〕項10のデータプロセッサにおいて、前記制御レジスタは、入力回路からデータを取り込む記憶ラインを指定するための制御情報、出力回路からデータを取り込む記憶ラインを指定するための制御情報、データを取り込む記憶ラインの本数を指定する制御情報、データを出力する記憶ラインを指定するための制御情報、及びデータを出力する記憶ラインの本数を指定する制御情報が設定される。
〔12〕項7のデータプロセッサにおいて、前記第1の演算は、複数記憶ラインの画像データに対してm×n画素単位のデータをデータ処理単位とする平滑化のためのコンボリューション演算である。
〔13〕項12のデータプロセッサにおいて、前記第2の演算は、前記コンボリューション演算された複数記憶ラインの画像データに対してi×j画素単位もデータをデータ処理単位とする輪郭強調のためのフィルタ演算である。
〔14〕項13のデータプロセッサにおいて、前記第3の演算は、前記前記フィルタ演算された画像データを2値化する演算である。
2.実施の形態の詳細
実施の形態について更に詳述する。以下、本発明を実施するための形態を図面に基づいて詳細に説明する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。
図2には本発明に係るデータプロセッサが例示される。同図に示されるデータプロセッサ(MCU)1は、特に制限されないが、相補型MOS集積回路製造技術等により単結晶シリコン等の1個の半導体基板に形成され、例えばシステム・オン・チップのLSIとして構成される。。
図2において、201は画像処理装置(IMGPRCS)、202はチップ内バス、203は周辺インタフェース(I/O)、204はリードオンリーメモリ(ROM)、205は表示出力回路(DCNT)、206は主記憶インタフェース(MCNT)、207は映像入力回路(VIN)、208は中央演算装置(CPU)、209は主記憶(RAM)である。主記憶209はデータプロセッサ1にオンチップされても良い。
画像処理装置201は、画像処理を高速に処理するハードウェアであり、その詳細は後述する。
チップ内バス202は、便宜的に1階層で例示した内部バスであり、夫々の内部回路モジュール間でデータやアドレス等を伝達するために使用され、例えば、スプリットトランザクションバス等によって構成することが可能である。
周辺インタフェース203は、データプロセッサ1を用いる組込みシステムにおける信号のインプットとアウトプットをつかさどる回路である。
リードオンリーメモリ204は、読み出し専用のメモリで、本システムのブートプログラムやシステムに必要な設定等が格納されている。
表示出力回路205は、液晶ディスプレイ等の表示装置に接続するための回路である。
主記憶インタフェース206は、シンクロナスDRAM等から成る主記憶を制御するメモリコントローラである。
映像入力回路207は、画像入力カメラ等からの画像データを受け取り、その信号をチップ内バス202経由で画像処理装置201に伝える。
CPU208はデータプロセッサ1の全体に対する制御を司る回路であり、画像処理装置装置201に対する各種設定もCPU208が行う。特に図示はしないが、ROM204を命令をフェッチし、フェッチした命令を解読し、その解読結果に従って命令を実行するための演算処理やアクセス処理等を行なう。
画像処理に使用する画像データは、例えば主記憶209に格納されている。この画像データは、カメラから入力される場合、映像入力回路207を介して主記憶209に格納される。また、カメラ以外から入力される場合、周辺インタフェース203などの外部インタフェースから入力されて主記憶209に格納される。格納された画像データは、例えば図13に示したメモリ空間にあるように、一塊のデータとして格納されている。この一塊とは、物理的なアドレスを意味しているわけではなく、論理的に一塊のデータとして扱う状況を意味し、連続した画像データが一続きのアドレスに格納されている。カメラから入力された画像データは、映像入力回路207によって主記憶209の指定されたアドレスに書き込まれる。書き込むアドレスは、CPU208がプログラムによって決定し、予め映像入力回路207に設定されている。
画像処理を行う場合、CPU208が処理する場合と、画像処理装置201が処理する場合の、二通りの処理形態が可能である。CPU208で処理する場合は、その命令セットに含まれる演算命令や転送命令等を用いて行うものであり、通常の汎用CPUの動作と差が無いので、ここではその詳細な説明を省略する。画像処理装置201で処理を行なう場合は、主記憶209の画像データを主記憶インタフェース206経由で画像処理装置201に転送する。画像処理の結果は、CPU208や表示出力回路205がアクセスできるように、主記憶209に書き戻される。これらの設定もCPU208の動作プログラムに従って制御される。すなわち、主記憶209のどのアドレスの画像データに関して、画像処理装置201がどのような処理をし、主記憶209のどのアドレスに書き戻すかについては、CPU208がその動作プログラムにしたがって処理を行う。
図1には画像処理装置201の一例が示される。画像処理装置201は、動作を規定するシステムレジスタ(SREG)101、画像処理装置201の動作をプログラムによって制御するマイクロコントローラ(MCRCNT)102、画像処理に必要なデータ取得のタイミングや画像処理機能の切り替えのタイミングを制御する同期化回路(SYNC)103、主記憶209から画像データを読み出す入力回路(INC)104および処理結果を主記憶209に書き戻す出力回路(OUTC)107、処理に必要な画像データを一時記録しておくバッファメモリとしてのラインメモリ(LNMRY)105、主にハードワイヤードロジック方式で構成され高速に画像処理が可能である演算回路(ARTM)106、及びバスインタフェース(BIF)108から構成されている。バスインタフェース108は、画像処理装置201をバス202に接続するためのインタフェースである。
画像処理装置201は、システムレジスタ101に設定された情報に基づいて処理を行う。システムレジスタ101には、その他の内部回路102〜108の動作に必要な情報が設定され、その設定値は、夫々の内部回路102〜108に出力され、夫々の動作を制御する。また、内部レジスタ101は、画像処理の演算結果や動作の状況をモニタするために内部回路102〜108から所定の情報を受け取り、保持する機能を有する。システムレジスタ101は、図2におけるCPU208からバスインタフェース108を介してアクセスされることにより制御データの設定が可能にされ、CPU208はシステムレジスタ101を介して画像処理装置201を制御する。
画像処理装置201における画像処理の一例を説明する。ここでは、図13にある画像データAを処理して、処理結果を画像データCとして書き込むことを想定する。
CPU208からシステムレジスタ101を介して、入力回路104にデータの取得を設定する。この設定は、画像データAのメモリ空間上の位置を定義している。画像処理の内容は、システムレジスタ101に設定され、その内容が演算回路106に伝達される。入力回路104と演算回路106の間にあるラインメモリ105は、入力回路104から入力されるデータを保持し、演算回路106に必要なデータを供給する役目を果たす。例えば、3×3ウィンドウの平滑化フィルタの場合、処理対象の画素データを処理するのに前後左右一画素づつの合計9個のデータを必要とする。これらの画像データを供給するためには、3ライン分の画像データが必要となり、それらを記録するラインメモリ105が必要となる。ラインメモリ105から供給された画像データを演算回路106で処理する。演算回路106は、システムレジスタ101に設定された機能を実行し、ハードワイヤード方式で構成された演算回路構成を有する。ハードワイヤード方式ではあるが、システムレジスタ101の設定内容を変更することにより、多数の画像処理の演算アルゴリズムを実行することができる。演算回路106で処理された結果は出力回路107に出力され、バスインタフェース回路108経由で主記憶209に供給されるか、ラインメモリ105に書き戻さえるかの二通りから一つが選択される。この選択設定は、マイクロコントローラ102で制御が可能である。主記憶209に書き戻された処理結果は、例えば図1の画像データCとして管理され、パターン認識などの処理に使用される。一方、ラインメモリ105に書き戻された処理結果は、再度、演算回路106に供給され、別の処理に使用される。
本実施形態の画像処理方式では、入力回路104が主記憶209からデータを取得して、ラインメモリ105にライン毎に記録して、演算回路106で画像処理する。ここで、ラインメモリ105は記憶領域として論理上直列な記憶ラインを複数有し、前記システムレジスタ101等で指定された前記記憶ラインに入力データを書き込み書き込まれたデータの読出しが可能とされる。更に詳しくは、図7に例示されるように、ラインメモリ105は、メモリアレイ(MARY)70、データ入力バッファ(DIB)71、データ出力バッファ(DOB)72、及びアドレスやアクセス動作形態を制御するメモリ制御回路(MCNT)73によって構成される。図7においてメモリアレイ70はML0−MLnの記憶ラインを備える。ACUNT0−ACUNT4はメモリアレイ70に対するアドレスポインタとして機能するアドレスカウンタである。アドレスカウンタACUNT0−ACUNT4の値がメモリアレイ70に対するアクセスアドレスになる。夫々のアドレスカウンタACUNT0−ACUNT4の意義については後述する。
演算回路106はラインメモリから出力された単数又は複数の前記記憶ラインのデータを前記システムレジスタにより指定された処理内容で演算処理単位毎に演算して出力する。例えば、3×3ウィンドウ、5×5ウィンドウといった処理サイズに応じて、局所的な領域のデータを用いて一画素に対応する処理結果を取得するのに、一度演算処理単位で処理をする方式が一般的であり、この場合に、ラインメモリを使用して、一ラインを単位とする処理を行なうことが一般的であるので、ここでもそれに対応する。具体的にはk×k個の演算ユニットUNT及び夫々の演算ユニットUNTによる演算結果を加減算する加算器を有し、指定されたi×i個の演算ユニットUNTを用い、i本の記憶ラインから供給されるi×i個のデータを並列処理しその処理結果を加算して出力する、というような並列演算が可能にされる。
図1において、同期化回路103は、入力回路104から画像処理に使用するデータの転送開始と終了を画面毎、およびライン毎に受け取る。また、演算回路106からの処理結果有効信号を受け取り、ライン単位の処理に必要となる処理の開始と終了を判断する同期信号を生成し、マイクロコントローラ102に出力する。マイクロコントローラ102では、一ラインの処理が終了すると次のラインの処理内容、ラインメモリからの読み出し箇所、処理結果の記録箇所などの指定を、システムレジスタ101の設定更新によって行い、次の一ラインの処理を制御する。
このとき、入力回路104は、システムレジスタ101内に記録されている主記憶209上の処理対象画像データのスタートアドレスを参照し、設定されたアドレスの範囲のデータを、バスインタフェース108経由で一ライン毎に読み込む。
以上の動作を纏めると、ラインメモリ105は、入力回路104よりデータを受け取り、システムレジスタ101により設定される動作モードに従って、ラインメモリ105にその値を保持し、さらには演算回路106にデータを出力する。演算回路106は、ラインメモリ105からデータを受け取り、システムレジスタ101で設定された演算種別の演算を行う。出力回路107は、演算回路107からのデータを受け取り、必要に応じてシフト処理等を行い、システムレジスタ101の設定に従って、演算回路107による処理結果をラインメモリ105へ書き戻し、又は、バスインタフェース108経由で主記憶209へ出力する。したがって、前記制御レジスタ101及びマイクロコントローラ102は、指定した記憶ラインのデータを記憶ライン単位で前記ラインメモリ105から前記演算回路106に出力させ、演算回路106はラインメモリ105から出力された単数又は複数の前記記憶ラインのデータを前記システムレジスタ101により指定された処理内容で演算処理単位毎に繰り返し演算する。
画像処理装置の更に具体例を説明する。図3はシステムレジスタ101の構成例である。図3において、システムレジスタ101は、マイクロコントローラ設定レジスタ(MCreg)301、同期回路設定レジスタ(SYNCreg)302、入力回路設定レジスタ(INreg)303、ラインメモリ設定レジスタ(LMreg)304、演算回路設定レジスタ(ARreg)305、出力回路設定レジスタ(OUTreg)306、及びバスインタフェース設定レジスタ(BIFreg)307を有する。308はデータバス、309はアドレスバスを意味し、夫々のレジスタに対する書き込み経路を意味し、各種レジスタに設定された制御データが制御信号として対応する内部回路に伝達される制御信号経路については図示を省略してある。
マイクロコントローラ設定レジスタ301は、マイクロコントローラ102の動作開始等の指示を行ったり、マイクロコントローラ102のステータス情報を知るためのレジスタである。
同期回路設定レジスタ302は、同期を監視すべき対象についての、動作開始指示や同期とる(waitする)ことを指示するためのレジスタである。本実施形態が、一ライン毎に処理を実施し、一回の実施毎に処理の内容と演算結果の記録先を変更することができる。そのために必要な処理の開始、終了を一ライン毎に把握する機能に対する設定が行なわれる。
入力回路設定レジスタ303は、入力回路104が主記憶209へ出力するアドレスを生成するために必要な値を保持するためのレジスタである。具体的には、処理対象の画像データが主記憶209のどこに格納されているか、処理する画像データの横方向の画素数、縦方向の画素数などが設定される。
ラインメモリ設定レジスタ304は、ラインメモリの構成制御を行うレジスタである。ラインメモリ105は、処理内容や処理方式によってラインメモリを使用しない場合もある。実施形態では、汎用の画像処理装置を想定しており、ラインメモリの使用方法と、マイクロコントローラの制御を許可するかなどについて、必要な設定が行われる。
演算回路設定レジスタ305は、演算の種別を設定するためのレジスタである。画像処理機能や、それぞれの画像処理で必要になるパラメータを含んでいる。また、一部の処理結果に関しては、演算回路106の処理結果を格納するレジスタも存在する。
出力回路設定レジスタ306は、演算結果を出力する際に、ラインメモリ105へ出力するか、あるいはバスインタフェースBIF経由で外部に出力するかを切替えたり、あるいは、演算結果をシフトダウンするといった処理の指示を指定するためのレジスタである。バスインタフェース設定レジスタ307にはバスインタフェースの動作に必要な設定が行われる。
図4にはマイクロコントローラ102の構成例が示される。図4において、401はマイクロプログラム保持回路(prog)、402はプログラムカウンタ(PC)、403〜417はレジスタR0−R14、418は命令デコーダ(ID)、419は実行回路(EXE)である。このマイクロコントローラ102は、プログラムによってシステムレジスタ101にアクセスをして、ラインメモリ105の制御、画像処理の機能の選択、パラメータの設定、出力データの格納場所を選択することができる。このマイクロコントローラ102がライン毎に制御内容を決定し、さまざまな処理を組み合わせ、ハードワイヤード方式で実装された演算回路106の機能を大幅に拡張している。
マイクロプログラム保持回路401は、主記憶209からマイクロプログラムを読込み、保持するための回路である。プログラムカウンタ402は、マイクロプログラム保持回路401に格納されたプログラムのうち、現在実行中のアドレスを指すポインタである。レジスタ403〜417は、マイクロプログラムの中で参照されるレジスタであり、一部は汎用的に使われ、また一部は特定の機能を有するレジスタである。命令デコーダ418は、現在実行中の命令を解釈するための回路である。実行回路419は、命令解釈により、制御信号を生成し、また、レジスタの更新値を生成するための回路である。
図5には同期化回路103の構成例が示される。図5において、501は入力同期回路(INsync)、502は演算処理同期回路(ARsync)である。510はマイクロコントローラ102、システムレジスタ101とのインタフェース信号を代表し、511はマイクロコントローラ102とのインタフェース信号を代表する。512は入力回路104とのインタフェース信号を代表し、513は演算処理回路106とのインタフェース信号を代表する。
入力同期回路501は、入力回路104について、設定された同期を監視するための回路である。入力回路104は、主記憶209からデータを1ライン分読み込む回路である。入力回路104に指示することにより、1ライン分読見込む動作の起動を行うことができる。また、入力回路104によって、1ライン読み終えたことが検出されると、それが割り込み要求等としてマイクロコントローラ102に伝えられる。
演算処理同期回路502は、演算処理回路105について、設定された同期を監視するための回路である。演算処理回路105において、1ライン単位の演算を可能にするため、演算処理同期回路502によって、1ライン分の演算の起動が指示され、1ライン分の演算の完了が検出された場合には、演算処理同期回路502がその旨を割り込み要求等によってマイクロコントローラ102に伝える。
図6には入力回路104の構成例が示される。図6において、601、603はカウンタ(INCUNT)、602、604は入力データ保持回路(IDREG)、605は同期判別回路(SYNCDET)である。カウンタ601、603は、あらかじめ設定された初期値から最終値まで、カウントアップするカウンタであり、これが主記憶209に対するリードアクセスのアドレスとして出力される。カウンタ601,603には画像処理の対象となる画面先頭(もしくはライン先頭)のアドレスが初期設定され、それを初期値として順次インクリメント動作を行って主記憶209上の画像データのメモリアドレスを生成する。生成されたメモリアドレスによって主記憶209から読出されたデータは入力データ保持回路602、604に順次保持される。同期判別回路605は1ラインのデータがデータ非時回路602,604に保持されたことをメモリアドレスから判別し、その結果を同期化回路103に与えてラインメモリ105に記憶ライン単位でデータを取り込み可能にする。ここで、入力データ保持回路602,604、カウンタ601、603の夫々は一対用意されているのは、画像処理によっては、異なる画像間の演算が必要になるためである。ラインメモリが、並列動作可能なハードウェアを一対備えている場合には、異なる画像を並列にラインメモリに蓄積して、演算処理を実行させることができる。612はマイクロコントローラ102及びシステムレジスタ101に接続する信号線を代表的に示し、613は同期化回路103に接続する信号線を代表的に示し、6111はラインメモリに接続する信号線を代表的に示し、610はバスインタフェース108に接続する信号線を代表的に示す。
図7はラインメモリ105の構成例を示す。記憶ラインML0〜MLnの規模は論理的に可変であり、例えば、1024バイト×4本、又は128バイト×32本という構成を選択できる。演算処理モードの場合、ラインメモリの外からのデータを書きこむ場所(どの記憶ラインか)やラインメモリの外に出力するデータの場所(どの記憶ラインか)の初期値は、マイクロコントローラ102で制御可能なシステムレジスタ101により設定される。また、あるライン上のどこに書き込まれるか等のライン上のアドレスは、ラインメモリ内にあるカウンタACUNT0〜ACUNT4がその動作形態に応じて指定する。ラインメモリは、通常書き込みと読み出しを並行可能なデュアルポートメモリによって構成されており、画像データを読み出しながら、処理結果を書き込むことが可能である。そのために必要なアドレス生成や動作モードの制御はアクセスコントローラ73が行う。アクセスコントローラ73は記憶ラインML0〜MLnを単なるFIFO動作させる動作形態の選択も可能になっており、その選択はシステムレジスタ101の設定で決まる。
図8には演算回路106の構成例が示される。演算回路106は、通常画像処理モードの場合には、画像処理演算のために3×3のフィルタ演算や5×5のフィルタ演算が可能になっている。図8では、一つの矩形が一つの演算機能を果たす回路(演算ユニットUNT)であり、例えばフィルタ処理の場合、一つの演算ユニットUNTブロックは積和演算を実行することができる。画像処理機能の設定やパラメータ設定は、システムレジスタ101で制御され、様々な処理が実装可能である。また、演算処理モードの場合には、前述のフィルタ演算のための演算回路の構成を論理的に変更し、例えば5×5で合計25個の積和回路がある場合、最大25並列までの積和演算が可能となる。この演算回路106は、ハードワイヤードロジック方式で実装されることが一般的であるが、ラインメモリの構成やフィルタのパラメータ、専用ハードウェアなどを実装することで汎用的な画像処理機能を実現することができる。その回路規模は、汎用のプロセッサを複数搭載して同等性能を実現するよりも十分に小さいハード物量で実現が可能である。
図9には出力回路107の構成例が示される。出力回路107はシフタ(SHFT)901とセレクタ(SLCT)902を有する。910はマイクロコントローラ102及びシステムレジスタ101に接続される信号を線を代表的に示す。911は演算回路106回路による演算結果を受取るための信号線を代表的に示す。912はバッフインタフェース108への接続経路、913はラインメモリ105への書き戻し経路である。シフタ901は、演算結果のシフトダウンを行うための回路である。例えば、8bit×8bitの演算を行った場合に、その結果は16bitとなるが、それを8bitの数値としてまるめたい場合等に利用する回路である。セレクタ902は、演算結果をラインメモリ105に書き戻すか、あるいは、バスインタフェース108を通じて主記憶209に書き戻すか、を選択する回路である。ここでライン毎に処理結果をラインメモリ105に書き戻す機能を実現することによって、処理結果を演算途中の結果として利用することが可能となり、マイクロコントローラ102によって基本的な画像処理機能を組み合わせて、高度な画像処理を実現することができる。
図10にはマイクロコントローラの命令セットが抜粋される。
MV命令は、データの転送命令である。データを第1オペランドのレジスタから第2オペランドのレジスタへ、或いは、値をレジスタへ、又は、レジスタの値をラベルが示すアドレスへ、それぞれ転送する。レジスタのデータコピー等に利用される。
ADD命令は、第1オペランドのレジスタの値と第2オペランドのレジスタとの和を計算し、それを第2オペランドのレジスタに代入する命令である。レジスタのデータ加算等に利用される。
CMP命令は、第1オペランドのレジスタの値と第2オペランドのレジスタの値とを比較し(差分をとり)、等しいか否かを条件フラグに反映させる命令である。この条件フラグは後述する分岐命令で利用される。
ST命令は、レジスタのデータをストアする命令であり、画像処理装置がアクセス可能なレジスタ空間のアドレスにレジスタの値を書きこむための命令である。
LD命令は、レジスタにデータをロードする命令であり、画像処理装置がアクセス可能なレジスタ空間のアドレスに記録された値を、指定されたレジスタに読み込むための命令である。
BT命令は、先に述べた、条件フラグが真のときに設定されたアドレスに分岐する命令である。
SNC命令は、ライン毎に変化する信号を設定し、同期を採る命令であり、ライン毎に演算機能を切り替えるための同期をとるのに用いることができる。具体的には、オペランドに同期する処理を行なう機能ブロックを記述することにより、記述した対象の機能ブロックが処理をライン単位で処理終了する同期を監視するための命令である。その対象物のライン単位の動作が終わるまで、マイクロプログラムの実行はウェイトされる。なお、ここでいう機能ブロックとは、入力回路、演算回路を指す。例えば、画像処理を行う回路において、一ライン単位のデータに対する実行が終了されるのを待つのに利用する。
EXE命令は、そのオペランドに機能ブロックを記述することにより、記述した対象の機能ブロックでライン単位の処理を実行するための命令である。記憶ライン単位の画像データの取り込み、又は画像処理の実行に用いられる命令であり、画像処理を行う回路において、一ライン単位の実行を指示する命令として位置付けることができる。
INT命令は、マイクロコントローラ102が必要に応じて、上位のCPU208に割り込みを発生するための命令である。上位のCPU208では、画像認識の処理を行っており、画像処理装置201とは独立に動作する。そのため、画像処理の要求が上位CPU208で発生し、画像処理装置201が画像処理を行い、その終了を画像処理装置201がCPU208に通知する必要がある。この通知をマイクロコントローラ102がプログラム動作によって発生することにより、より効率的な並列処理が可能となる。例えば、従来はハードウェアによる終了通知だったため、予め設計されたタイミング以外では通知をすることができなかった。予めの設計段階で、全ての想定される画像処理を考えることは困難であるため、新しい機能を実現した際に対応できず無駄が発生する可能性がある。この例では、マイクロプログラムによって制御することにより、様々な演算を実装することができる。そして、条件分岐などを実行し、ある場面で上位CPU208に割込み発生をかけて、画像処理結果に対する処理や処理中の演算実行を中止するなどの、適切な処理をプログラムすることが可能となる。例えば、CPU208と画像処理装置201が独立に処理を実行しなければならないとき、画像処理装置が処理中の任意の状態を、CPU208に通知して、画像処理装置201の演算終了を待たずに、CPU208が処理結果に対するアクセスを開始することができる。
図11にはマイクロコントローラのプログラムで利用できるレジスタの機能が例示される。マイクロコントローラ102がライン毎に演算回路106の機能を変更できることを実現するために、記憶ライン毎のメモリアクセスの情報、画像処理の演算機能の設定、画像処理の演算に必要なデータのライン数などを記録するレジスタを保有している。
PCは、プログラムカウンタであり、現在実行中の命令の場所を示す特別なレジスタ。
R0〜R7は、汎用レジスタであり、マイクロプログラム中での一時データの保持に使えるレジスタである。
R8は、ラインメモリのリードポインタのためのレジスタであり、ソースのA側のレジスタである。
R9は、ラインメモリのリードポインタのためのレジスタであり、ソースのB側のレジスタである。
R10は、ラインメモリに予め画像処理に必要なデータを記録しておく情報量を指定するレジスタである。
R11は、画像処理に必要な画像データのライン数が複数本ある場合に、マイクロプログラムがそれを把握するために必要なデータを記録するレジスタである。例えば、必要なライン数であったり、現在読み込んでいるラインメモリのライン位置であったりする。
R12は、入力回路104からのデータ取り込み先のA側用であり、R13は入力回路104からのデータ取り込み先のB側用である。
R14は、 出力回路107からのデータ取り込み先である。
R15は、スタックポインタである。
図12には画像処理装置201を用いた処理の一例として画像認識処理の流れが例示される。図12では、原画像に対して、ノイズ除去を目的として、5×5ウィンドウの平滑化処理を行い、その結果画像に対して、輪郭強調処理を行う。輪郭強調処理では、3×3ウィンドウとする。最後に輪郭強調された結果画像に対して二値化処理を行い、物体の輪郭を抽出する。このような処理は画像認識では、頻繁に行われる一連の処理である。平滑化処理は5×5ウィンドウの画像データのピクセル値を平均化して、中心ピクセルの値とするコンボリューション演算によって行われる。この平滑化処理においては5×5ウィンドウのデータが演算処理単位のデータとなる。
図14には図12の画像処理におけるラインメモリの利用状態が示される。ラインメモリ105の記憶ラインMLi〜MLi+4の5ラインに原画像のデータを格納して5×5の平滑化処理を行い、平滑化処理結果の格納にはラインメモリ105の記憶ラインMLj〜MLj+2の3ラインを用い、3ライン単位で輪郭強調を行い、輪郭強調された画像データの格納には記憶ラインMLkを用い、当該記憶ラインMLk単位で2値化を行う。2値化された画像データはライン単位で記憶ラインMLm以下に格納され、所要のタイミングで主記憶209に転送される。
例えば、記憶ラインMLi〜MLi+4に画素データラインPXL0〜PXL4が格納されるとすると、それに対して5×5の平滑化処理のためのコンボリューション演算が行われ、演算結果はその中心画素の画像データとして記憶ラインMLjに格納され、順次、5×5の演算処理単位を1ピクセルずつ右方向にずらしながらコンボリューション演算を行ってその演算結果を記憶ラインMLjの隣の画素位置に格納していく、という演算を記憶ラインMLi〜MLi+4の右端まで行う。この状態でMLjには画素データラインPXL2における平滑化データCMB2が取得される。この次は、不用になった画素データラインPXL0のデータを無効にしてMLiに、次の画素データラインPXL5のデータを格納し、今度は画素データラインPXL1〜PXL5に対して同じく平滑化処理を行なって、MLj+1に画素データラインPXL3における平滑化データCMB3を取得する。この次も同様に、不用になった画素データラインPXL1のデータを無効にしてMLi+1に、その次の画素データラインPXL6のデータを格納し、今度は画素データラインPXL2〜PXL6に対して同じく平滑化処理を行なって、MLj+2に画素データラインPXL4における平滑化データCMB4を取得する。
3画素ライン分の平滑化データCNB2〜CMB4が取得されたとことで、今度は、それに対して3×3の輪郭強調処理のための演算が行われ、演算結果はその中心画素の画像データとして記憶ラインMLkに格納され、順次、3×3の演算処理単位を1ピクセルずつ右方向にずらしながら輪郭強調演算を行ってその演算結果を記憶ラインMLkの隣の画素位置に格納していく、という演算を記憶ラインMLkの右端まで行う。この状態でMLkには画素データラインPXL3における輪郭強調データEMP3が取得される。
輪郭強調データEMP3が取得されたとことで、今度は、それに対して2値化を行って記憶ラインMLmに格納する。以上の動作を順次繰り返して、記憶ラインMLm以下に2値化データを蓄積していく。
上記処理において、図7のアドレスカウンタACUNT0,ACUNT1は記憶ラインMLi〜Mi+4に順次右方向へ画素データを書き込むためのアドレスを生成するライトポインタとして機能される。ACUNT0とACUNT1の2個のカウンタを備えるのは複数ウインドウの画像データを並列に書き込む場合を想定する。アドレスカウンタACUNT2は記憶ラインMLi〜Mi+4から順次右方向に5画素の画素データを読み出すためのアドレスを生成するリードポインタとして機能される。アドレスカウンタACUNT3は記憶ラインMjに平滑化データを順次書き込む画素位置を生成するアドレスポインタとして機能される。アドレスカウンタACUNT4は記憶ラインMLj〜Mj+2から順次右方向に3画素の画素データを読み出すためのアドレスを生成するリードポインタとして機能される。図示は省略するが、その他に、記憶ラインMLk、MLm等に対するライトポインタやリードポインタとして機能されるアドレスカウンタも設けられている。記憶ラインの指定はシステムレジスタ101への設定で決まる。
尚、2値化処理の演算結果を直接出力回路から主記憶209に出力してもよい。このときには、2値化演算結果を一時的に出力回路107のシフタ901に一時的に蓄積してゆき、1ライン分蓄積されたところで、主記憶209に向けて書き込み動作を行えばよい。
図15には本実施形態で説明したマイクロプログラムで制御する処理フローを示す。処理の開始前に、CPU208に制御によってマイクロプログラムをマイクロプログラム保持回路401に格納する。そして、画像処理を行う段になって、CPU208から起動の指示をレジスタ設定によって行うことで処理を開始する。マイクロプログラムに記述されている最初の命令は、5×5ウィンドウの平滑化処理を行うため、ラインメモリの5本の記憶ラインに処理対象の画像データを格納するところから始まる。これは、入力回路104で指定された処理開始のアドレスから、データを読み込み(S01)、図11で説明したR12,R13のレジスタで指定したラインメモリのアドレスに格納される。マイクロコントローラ102は同期をとるコマンドSNC(図10参照)で、5ラインの入力を待つ。このとき、1ラインづつ待つプログラムでも良いし、5ライン纏めて待つようにすることも可能である。5ラインの読込み終了待ちの処理ステップ(S02)を終えて、ラインメモリに5×5ウィンドウの平滑化処理が可能なデータが格納されたら、平滑化処理を起動する(S03)。このとき、マイクロコントローラ102は、MVやLDといった命令を用いて、演算回路106が処理する画像処理機能を平滑化処理に設定する。マイクロコントローラは処理を起動した後、同期をとるコマンドSNCで再び、1ライン終了を待つ。平滑化処理の結果は、図11のR14に指定したラインメモリに格納する。平滑化処理を1ライン処理している間に、次の1ラインを読み込む(S04)。次の処理がデータを3ライン必要とする3×3ウィンドウの輪郭強調処理となっているため、平滑化処理を3ライン終了するまで、1ラインづつ処理を繰り返す(S05)。3ライン処理が終了した段階で、輪郭強調処理が可能となるため、マイクロコントローラ102はレジスタアクセスのコマンドを使用して、演算回路106の機能を輪郭強調処理に変更し、1ライン分輪郭強調処理を実行する(S06)。このときも平滑化処理の設定と同様にR14のレジスタに設定したラインメモリに結果を格納する。その結果に対して、マイクロコントローラ102は再度演算回路106の機能を二値化処理に変更し処理を行う(S07)。処理結果は、出力回路107を経由して、主記憶RAM209に格納される。こうして、1ライン分の一連の処理が終了する。必要ラインに対して全て処理を行なっていないとき(S08のNo)、マイクロコントローラ102は、再度、主記憶RAM209から次の1ライン分のデータをラインメモリに格納する(S09)。既にこの一覧を読み込んだ際は、5×5ウィンドウの平滑化処理を実行可能なため、新しい5ライン分のデータが揃った時点で平滑化処理を開始する。平滑化処理を1ライン処理した段階で、輪郭強調処理も3ライン分のデータが既に格納されたこととなり、次の処理をする準備が整っているので、マイクロコントローラによって演算回路106の機能を切り替えて輪郭強調処理を実行する。さらに、引き続き二値化処理を実行し、新たな1ライン分の処理結果を主記憶RAM209に格納する。1ライン処理が終了したので、再度同様の処理を繰り返し行い、必要ライン数処理しかたをチェックして(S08)、処理を続ける。必要ライン処理した場合は、その後処理終了して、図10のINT命令によってCPU208に割り込みを発生し、一連の画像処理が終了したことを伝える。
以上のように、ラインメモリ201は記憶ライン単位という制約を受けて外部からデータを入力し、入力する記憶ライン数と記憶ラインの位置をシステムレジスタ101の設定値及びマイクロコントローラ102の制御回路によりプログラマブルにでき、演算回路106はラインメモリ105から供給される単数又は複数の記憶ラインのデータ単位で演算を行うという制約を受け、そのデータ単位に対する演算処理単位の演算処理内容を制御回路によりプログラマブルに指定することができる。したがって、画像処理装置201には、ハードワイヤードロジック方式の高効率な処理と、汎用プロセッサの柔軟性をもった処理を同時に実現することができる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、上記説明では画像認識を画像処理の一例として説明したが本発明おはそれに限定されない。また、画像認識処理として平滑化、輪郭強調、2値化を一例としたが、これについても本発明は限定されない。画像処理装置は1チップのアクセラレータとして構成されてもよい。システムLSIにオンチイプされる回路モジュールは図1に限定されない。
図1は本発明に係る画像処理装置を例示するブロック図である。 図2は本発明に係るデータプロセッサを例示するブロック図である。 図3はシステムレジスタの構成を例示するブロック図である。 図4はマイクロコントローラの構成を例示するブロック図である。 図5は同期化回路の構成を例示するブロック図である。 図6は入力回路の構成を例示するブロック図である。 図7はラインメモリの構成を例示するブロック図である。 図8は演算回路の構成を例示するブロック図である。 図9は出力回路の構成を例示するブロック図である。 図10はマイクロコントローラの命令セットを抜粋して示す説明図である。 図11はマイクロコントローラのプログラムで利用できるレジスタの機能を例示する説明図である。 図12は画像処理装置を用いた処理の一例として画像認識処理による大まかな処理の流れを例示する説明図である。 図13はデータプロセッサのメモリ空間を示すメモリマップ図である。 図14は図12の画像処理におけるラインメモリの利用状態を示す説明図である。 図15は画像処理装置による画像認識処理の動作を例示するフローチャートである。
符号の説明
101 システムレジスタ
102 マイクロコントローラ
103 同期化回路
104 入力回路
105 ラインメモリ
106 演算回路
107 出力回路
108 バスインタフェース
201 画像処理装置
202 チップ内バス
203 周辺インタフェース
204 リードオンリーメモリ(ROM)
205 表示回路
206 主記憶インタフェース
207 ビデオ入力回路
208 CPU

Claims (14)

  1. 演算対象とするデータを外部から読み出して入力するための入力回路と、入力回路によって入力したデータを一時的に保持するバッファメモリと、前記バッファメモリから出力されたデータの演算処理を行なう演算回路と、前記演算回路による演算結果を外部又は前記バッファメモリに書き戻すための出力回路と、制御回路と、を有し、
    前記バッファメモリは記憶領域として論理上直列な記憶ラインを複数有し、前記制御回路で指定された前記記憶ラインに入力データを書き込み書き込まれたデータの読出しが可能とされ、
    前記演算回路はバッファから出力された単数又は複数の前記記憶ラインのデータを前記制御回路により指定された処理内容で演算処理単位毎に繰り返し演算し、
    前記制御回路は、指定した記憶ラインのデータを記憶ライン単位で前記バッファメモリから前記演算回路に出力させる、画像処理装置。
  2. 前記制御回路は、外部から入力されるデータを書き込む単数又は複数の前記記憶ラインを指示し、演算回路による演算結果を書き戻す前記記憶ラインを指示する、請求項1記載の画像処理装置。
  3. 画像処理装置と、前記画像処理装置の制御及びメモリのアクセス制御を行う中央処理装置とを有するデータプロセッサであって、
    前記画像処理装置は、演算対象とするデータを前記メモリから読み出して入力するための入力回路と、入力回路によって入力したデータを一時的に保持するバッファメモリと、前記バッファメモリから出力されたデータの演算処理を行なう演算回路と、前記演算回路による演算結果を前記メモリ又は前記バッファメモリに書き戻すための出力回路と、制御回路と、を有し、
    前記バッファメモリは記憶領域として論理上直列な記憶ラインを複数有し、指定された前記記憶ラインに入力データを書き込み書き込まれたデータの読出しが可能とされ、
    前記演算回路はバッファから出力された単数又は複数の前記記憶ラインのデータを指定された処理内容で演算処理単位毎に繰り返し演算し、
    前記制御回路は、前記入力回路から入力されるデータを書き込む単数又は複数の前記記憶ラインを指示し、前記演算回路による演算処理内容を指示し、演算回路による演算結果を書き戻す前記記憶ラインを指示し、バッファメモリから演算回路にデータを供給する記憶ラインを指示する、データプロセッサ。
  4. 前記中央処理装置は画像処理装置の演算動作中に、画像処理装置による演算結果を前記メモリから参照する、請求項3記載のデータプロセッサ。
  5. 画像処理装置とメモリとを有するデータプロセッサであって、
    前記画像処理装置は、演算対象とするデータを前記メモリから読み出して入力するための入力回路と、入力回路によって入力したデータを一時的に保持するバッファメモリと、前記バッファメモリから出力されたデータの演算処理を行なう演算回路と、前記演算回路による演算結果を前記メモリ又は前記バッファメモリに書き戻すための出力回路と、制御回路と、を有し、
    前記バッファメモリは記憶領域として論理上直列な記憶ラインを複数有し、前記制御回路で指定された前記記憶ラインに入力データを書き込み書き込まれたデータの読出しが可能とされ、
    前記演算回路は前記バッファメモリから読み出された複数の前記記憶ラインのデータを前記制御回路で指定された処理内容に従って並列に演算可能であり、
    前記制御回路は、前記バッファメモリの複数の記憶ライン分に相当する第1の記憶領域のデータに対して順次データ処理単位毎に前記演算回路に第1の演算を繰り返し実行させ、繰り返し実行された第1の演算による演算家結果が前記バッファメモリの複数の記憶ライン分に相当する第2の記憶領域の記憶ラインに格納されたとき、第1の記憶領域で最も先にデータ記憶が行われた記憶ラインに対してデータ入換えを行ってから、再び前記第1の演算を繰り返し実行させる制御を行う、データプロセッサ。
  6. 前記制御部は、前記第2の記憶領域の記憶ラインに必要な演算結果が揃ったとき、第2の記憶領域のデータに対して順次データ処理単位毎に前記演算回路に第2の演算を繰り返し実行させ、繰り返し実行された第2の演算による演算家結果を前記バッファメモリの第3の記憶領域の記憶ラインに格納させる制御を行う、請求項5記載のデータプロセッサ。
  7. 前記制御部は、前記第3の記憶領域の記憶ラインに必要な演算結果が揃ったとき、第3の記憶領域のデータに対して前記演算回路に第3の演算を繰り返し実行させ、繰り返し実行された第3の演算による演算家結果を前記バッファメモリの第4の記憶領域の記憶ラインに格納させる制御を行う、請求項6記載のデータプロセッサ。
  8. 前記制御回路は、前記第4の記憶領域の記憶ラインに必要な演算結果が揃ったとき、前記出力回路に指示を与えて当該演算結果を前記メモリに書き込む制御を行う、請求項7記載のデータプロセッサ。
  9. 前記制御部は、前記第3の記憶領域の記憶ラインに必要な演算結果が揃ったとき、第3の記憶領域のデータに対して前記演算回路に第3の演算を繰り返し実行させ、繰り返し実行された第3の演算による演算家結果を前記出力回路に外部へ出力させる制御を行う、請求項6記載のデータプロセッサ。
  10. 前記制御回路は、マイクロコントローラ、制御レジスタ、及び同期化制御回路を有し、
    前記マイクロコントローラはプログラムを実行して前記制御レジスタに制御データを書き込む制御を行い、
    前記同期化制御回路は前記入力回路及び前記演算回路の動作状態に従って前記前記制御レジスタの書き込み制御を行い、
    前記制御レジスタは書き込まれた制御データに従って前記入力回路、前記バッファ回路、前記演算回路及び前記出力回路に制御信号を出力する、請求項5乃至9の何れか1項記載のデータプロセッサ。
  11. 前記制御レジスタは、入力回路からデータを取り込む記憶ラインを指定するための制御情報、出力回路からデータを取り込む記憶ラインを指定するための制御情報、データを取り込む記憶ラインの本数を指定する制御情報、データを出力する記憶ラインを指定するための制御情報、及びデータを出力する記憶ラインの本数を指定する制御情報が設定される、請求項10記載のデータプロセッサ。
  12. 前記第1の演算は、複数記憶ラインの画像データに対してm×n画素単位のデータをデータ処理単位とする平滑化のためのコンボリューション演算である、請求項7記載のデータプロセッサ。
  13. 前記第2の演算は、前記コンボリューション演算された複数記憶ラインの画像データに対してi×j画素単位もデータをデータ処理単位とする輪郭強調のためのフィルタ演算である、請求項12記載のデータプロセッサ。
  14. 前記第3の演算は、前記前記フィルタ演算された画像データを2値化する演算である、請求項13記載のデータプロセッサ。
JP2008258039A 2008-10-03 2008-10-03 画像処理装置及びデータプロセッサ Pending JP2010086497A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008258039A JP2010086497A (ja) 2008-10-03 2008-10-03 画像処理装置及びデータプロセッサ
US12/566,123 US20100088493A1 (en) 2008-10-03 2009-09-24 Image processing device and data processor
US13/839,278 US20130212362A1 (en) 2008-10-03 2013-03-15 Image processing device and data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008258039A JP2010086497A (ja) 2008-10-03 2008-10-03 画像処理装置及びデータプロセッサ

Publications (2)

Publication Number Publication Date
JP2010086497A true JP2010086497A (ja) 2010-04-15
JP2010086497A5 JP2010086497A5 (ja) 2011-11-17

Family

ID=42076721

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008258039A Pending JP2010086497A (ja) 2008-10-03 2008-10-03 画像処理装置及びデータプロセッサ

Country Status (2)

Country Link
US (2) US20100088493A1 (ja)
JP (1) JP2010086497A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464030B2 (en) * 2010-04-09 2013-06-11 International Business Machines Corporation Instruction cracking and issue shortening based on instruction base fields, index fields, operand fields, and various other instruction text bits
CN110046699B (zh) * 2018-01-16 2022-11-18 华南理工大学 降低加速器外部数据存储带宽需求的二值化系统和方法
CN116957908B (zh) * 2023-09-20 2023-12-15 上海登临科技有限公司 一种硬件处理架构、处理器以及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07295858A (ja) * 1994-04-28 1995-11-10 Sony Corp 画像処理装置及び並列コンピュータのデバッグ処理方法
JPH10340340A (ja) * 1997-06-09 1998-12-22 Hitachi Ltd 画像処理装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393520B2 (en) * 1997-04-17 2002-05-21 Matsushita Electric Industrial Co., Ltd. Data processor and data processing system with internal memories
US6333744B1 (en) * 1999-03-22 2001-12-25 Nvidia Corporation Graphics pipeline including combiner stages
US7158141B2 (en) * 2002-01-17 2007-01-02 University Of Washington Programmable 3D graphics pipeline for multimedia applications
CN101443809A (zh) * 2006-05-09 2009-05-27 皇家飞利浦电子股份有限公司 可编程数据处理电路

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07295858A (ja) * 1994-04-28 1995-11-10 Sony Corp 画像処理装置及び並列コンピュータのデバッグ処理方法
JPH10340340A (ja) * 1997-06-09 1998-12-22 Hitachi Ltd 画像処理装置

Also Published As

Publication number Publication date
US20130212362A1 (en) 2013-08-15
US20100088493A1 (en) 2010-04-08

Similar Documents

Publication Publication Date Title
JP2987308B2 (ja) 情報処理装置
JP4536618B2 (ja) リコンフィグ可能な集積回路装置
JP3778573B2 (ja) データプロセッサ及びデータ処理システム
TWI514267B (zh) 用於多股亂序處理器中之指令排程的方法及裝置與系統
CA2016532C (en) Serializing system between vector instruction and scalar instruction in data processing system
KR20010031192A (ko) 기계시각시스템에서의 영상데이터와 같은 논리적으로인접한 데이터샘플들을 위한 데이터처리시스템
JP2007133456A (ja) 半導体装置
TWI546736B (zh) 多執行緒圖形處理單元管線
JP3797570B2 (ja) セマフォ命令用のセマフォ・バッファを用いた装置と方法
JP2010086497A (ja) 画像処理装置及びデータプロセッサ
JP2010102732A (ja) 情報処理装置、例外制御回路及び例外制御方法
US7539847B2 (en) Stalling processor pipeline for synchronization with coprocessor reconfigured to accommodate higher frequency operation resulting in additional number of pipeline stages
JP2010020363A (ja) 演算処理装置
JP4728581B2 (ja) アレイ型プロセッサ
JP2022072452A (ja) 情報処理装置、及びプログラム
JP3821198B2 (ja) 信号処理装置
JP3719241B2 (ja) 演算装置
JP2011186850A (ja) データ処理システム及びその制御方法
JP2006155637A (ja) 信号処理装置
JP2006285719A (ja) 情報処理装置および情報処理方法
JPH06139071A (ja) 並列計算機
JP2011008416A (ja) 並列計算装置
JP2004070869A (ja) 演算システム
JP2002268876A (ja) パイプライン処理方法、及び情報処理装置
JPH0279122A (ja) 浮動小数点演算機構

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110929

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110929

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130327

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130404