JP6319420B2 - 情報処理装置、デジタルカメラおよびプロセッサ - Google Patents

情報処理装置、デジタルカメラおよびプロセッサ Download PDF

Info

Publication number
JP6319420B2
JP6319420B2 JP2016504209A JP2016504209A JP6319420B2 JP 6319420 B2 JP6319420 B2 JP 6319420B2 JP 2016504209 A JP2016504209 A JP 2016504209A JP 2016504209 A JP2016504209 A JP 2016504209A JP 6319420 B2 JP6319420 B2 JP 6319420B2
Authority
JP
Japan
Prior art keywords
data
memory
unit
register
image
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
JP2016504209A
Other languages
English (en)
Other versions
JPWO2015125960A1 (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.)
Nikon Corp
Original Assignee
Nikon 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 Nikon Corp filed Critical Nikon Corp
Publication of JPWO2015125960A1 publication Critical patent/JPWO2015125960A1/ja
Application granted granted Critical
Publication of JP6319420B2 publication Critical patent/JP6319420B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Processing (AREA)
  • Image Input (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、複数の単位データからなるストリームデータを一時記憶するデータメモリと、データメモリから読み出したストリームデータに所定の情報処理を行うプロセッサとを備えた情報処理装置に関する。また、この情報処理装置を備えたデジタルカメラに関する。
上記のような情報処理装置の一つとして画像処理装置がある。画像処理装置は、デジタルカメラやビデオカメラ、これらカメラの記録媒体に記録された画像データを取り扱うコンピュータ、プリンタ等に幅広く用いられている。近年では、画像の高精細化や高画質化などの要請から画像1枚(1フレーム)当たりの画像データの容量が大幅に増加し、さらに高フレーム化の要請が加わって、単位時間当たりに記録される画像データの容量が著しく増加している。このように巨大化した画像データを、撮影者等にストレスを与えることなく画像処理するため、画像処理装置には処理速度の高速化が求められている。
画像処理を高速化する手段として種々の構成の画像処理装置が提案されている。例えば、コンパクトフラッシュ(登録商標)カードやSDカード(登録商標)などの外部記録媒体に記録された複数の画像データから、所定の(例えば画像1枚分または1フレーム分の)画像データを読み出して一時記憶するDRAM等のデータメモリと、データメモリに一時記憶された画像データに対して所定の画像処理を行う画像処理プロセッサとを備える画像処理装置において、データメモリと画像処理プロセッサとの間に、データメモリから画像データの一部を読み出して一時記憶するリードキャッシュメモリと、画像処理プロセッサにより処理された上記一部の画像データを一時記憶するライトキャッシュメモリとを設けた画像処理装置が知られている。
また、画像データに対する演算処理そのものを高速化する技術として、単一命令複数データ流(SIMD:Single Instruction Multiple Date stream)の演算方式を採用した画像処理装置が提案されている(例えば特許文献1を参照)。この技術は、演算処理を実行する演算器を複数並列に設け、これらを同時に並行して動作させることにより、処理速度の向上を図るものである。
特開2002−358288号公報
一方、データを記憶する記憶手段として、新規なメモリ技術の研究が進展しており、その一つとしてマーチングメモリ(Marching Memory)がある。マーチングメモリは、半導体チップのマイクロアーキテクチャに関する国際的なシンポジウムである、IEEE/ACMの第43回国際アニュアルシンポジウム(MICRO−43)と併せて開催された、第6回ユニークなチップおよびシステムに関するワークショップUCAS−6で発表された。その発表内容は、予稿集である以下の文献に記載されている。
T.Watanabe and M.J.Flynn,"Marching Memory:designing computers to avoid the Memory Bottleneck",Workshop on Unique Chips and Systems,UCAS-6,December 2010 Atlanta,GA,pp44-47.
上記文献に示された内容から、マーチングメモリの基本的な構成および動作の態様を概説すると以下のようになる。マーチングメモリは、複数の記憶領域(セルという)が連設されたカラムを一つの単位として構成される。カラムの両端は、設定に応じてデータ(または命令)の入力ポートおよび出力ポートとなり、入力ポートに設定されたカラムの端部に順次データが入力される。入力ポートに入力された複数のデータ等は、順次隣接するセルに送り移動されて各セルに一時記憶される。
例えば、5個のセル(記憶領域)が左右方向に連接されたカラムを有するマーチングメモリにおいて、カラムの左端側を入力ポートとし、入力ポートに1,2,3,4,5の5つのデータが順に入力される場合について説明する。この場合において、最初のデータである1が入力されたときに左端のセルに1が一時記憶される。他のセルはリセット状態(またはこの5つのデータが入力される直前に入力された4つのデータが一時記憶された状態)である。2番目のデータ2が入力されると、それまで左端のセルに記憶されていたデータである1は左端から2番目のセルに送り移動され、左端のセルには新たに入力されたデータの2が一時記憶される。以下同様に入力されたデータが順送りされて各セルに記憶され、5つのデータが全て入力されると、カラムの右端側から左端側に向けて各セルに1,2,3,4,5の5つのデータが一時記憶された状態になる。
そのため、カラムの右端側を出力ポートとして設定した場合には、マーチングメモリに対して一時記憶した5つのデータの出力指令が出されたとき、または新たなデータが入力されるごとに、一時記憶されたデータが1,2,3,4,5の順に出力ポートから出力される。一方、カラムの右端部を入力ポートおよび出力ポートとした場合には、マーチングメモリに対して一時記憶した5つのデータの出力指令が出されたときに、一時記憶されたデータが5,4,3,2,1の順に出力ポートから出力される。
本発明は、このような新規なメモリ技術であるマーチングメモリについて、その特長的な動作形態を活かした好適なアプリケーションを提供することを目的とする。
本実施形態によれば、複数の単位データからなるストリームデータを一時記憶するデータメモリと、演算器を有し前記データメモリから読み出したストリームデータに所定の情報処理を行うプロセッサとを備えた情報処理装置であって、前記プロセッサのレジスタファイルとしてマーチングメモリを備え、前記マーチングメモリは、複数の記憶領域が連設されたカラムを有し入力された複数の単位データを前記カラムの一端から順次隣接する記憶領域に送り移動させて各記憶領域に一時記憶する単位マーチングメモリが複数並列に設けられて構成され、前記マーチングメモリは、入力された複数の単位データを第1の前記単位マーチングメモリの各記憶領域に一時記憶し、前記プロセッサは、バッチ演算処理命令に基づいて、前記第1の単位マーチングメモリの各記憶領域に一時記憶された前記複数の単位データを、前記演算器により順次演算処理して処理後の各単位データを第2の前記単位マーチングメモリの各記憶領域に一時記憶させる情報処理装置が提供される。
本実施形態によれば、複数の単位データからなるストリームデータを一時記憶するデータメモリと、演算器を有し前記データメモリから読み出したストリームデータに所定の情報処理を行う複数のプロセッサとを備えた情報処理装置であって、前記データメモリと前記複数のプロセッサとの間に、共有メモリとしてマーチングメモリを備え、前記マーチングメモリは、複数の記憶領域が連設されたカラムを有し、入力された複数の単位データを前記カラムの一端から順次隣接する記憶領域に送り移動させて各記憶領域に一時記憶する単位マーチングメモリが複数並列に設けられて構成される情報処理装置が提供される。
本実施形態によれば、複数の単位データからなるストリームデータを一時記憶するデータメモリと、演算器を有し前記データメモリから読み出したストリームデータに所定の情報処理を行う複数のプロセッサとを備えた情報処理装置であって、前記プロセッサのバッファメモリとしてマーチングメモリを備え、前記マーチングメモリは、複数の記憶領域が連設されたカラムを有し、入力された複数の単位データを前記カラムの一端から順次隣接する記憶領域に送り移動させて各記憶領域に一時記憶する単位マーチングメモリが複数並列に設けられて構成される情報処理装置が提供される。
本実施形態によれば、上記いずれかに記載の情報処理装置と、撮像素子を有し前記情報処理装置に前記ストリームデータである画像データを入力する画像入力系と、前記情報処理装置により処理された画像データを出力する画像出力系とを備えたデジタルカメラが提供される。
本実施形態によれば、複数の単位データからなるストリームデータに所定の情報処理を行うプロセッサであって、マーチングメモリで構成されたレジスタファイルと、前記レジスタファイルに保持されたデータを用いて演算処理を実行する演算器と、を備え、前記マーチングメモリは、複数の記憶領域が連設されたカラムを有し、入力された複数の単位データを前記カラムの一端から順次隣接する記憶領域に送り移動させて各記憶領域に一時記憶する単位マーチングメモリが複数並列に設けられて構成されるプロセッサが提供される。
本発明の適用例として示す、デジタルカメラにおける信号処理系のアーキテクチャを例示するブロック図である。 第1実施形態における第1の態様の画像処理装置の概要のブロック図である。 第1実施形態における第2の態様の画像処理装置の概要のブロック図である。 第2実施形態の画像処理装置の概要のブロック図である。 第2実施形態の画像処理装置におけるリングレジスタの作用を説明するための説明図である。 本発明の他の適用例を説明するための、画像処理装置における信号の処理系統を大まかにまとめたブロック図である。
以下、本発明を実施するための形態について、図面を参照しながら説明する。本発明は様々な情報を処理する情報処理装置に適用可能であるが、本実施形態では、一例として本発明をデジタルカメラの画像処理装置に適用した場合について説明する。デジタルカメラにおける信号処理系のアーキテクチャを例示するブロック図を図1に示す。
この信号処理系は、画像入出力部1、データメモリ部2、CPUコア部3、DSPアレイ部4、CPU/DSP間同期通信機構部5、および各部を繋ぐバス61〜66などから構成される。
画像入出力部1は、いずれも図示を省略する画像入力系や画像出力系、CFカードやSDカード(登録商標)などの外部記録媒体との間で、画像データの入出力を制御する制御部である。画像入出力部1には、上記各部と画像データのやりとりを実行するI/O回路11、画像データのコーデックやデコードを実行する機能ブロック(IP)12などが設けられ、ストリームI/Oバス61を介して画像入力系、画像出力系、外部記録媒体と繋がっている。
なお、画像入力系は、デジタルカメラにより種々のフォーマットで撮影された画像(静止画または動画)の原データを入力する系であり、例えば、CMOSあるいはCCD等の撮像素子と、撮像素子に被写体の像を結像する撮像レンズとを備えて構成される。また、画像出力系は、画像処理装置により処理された画像データを液晶表示パネルや外部出力端子に出力する系である(図6を参照)。
画像入出力部1は、ストリームI/Oバス61およびバスブリッジを介してメインバス62に接続される。メインバス62には、データメモリ部2、CPUコア部3、DSPアレイ部4が接続されている。すなわち、メインバス62には、データメモリ部2が接続される他、バスブリッジを介してCPUコア部3のCPUデータバス63が接続され、同様にバスブリッジを介してDSPアレイ部4のDSPデータバス(ストリームバス)64が接続されている。なお、ストリームI/Oバス61とDSPデータバス64とは、バスブリッジを介して直接的にも接続されている。
データメモリ部2は、データメモリ21とメモリコントローラ22とを備えて構成される。データメモリ21は、画像入力系や外部記録媒体等から画像入出力部1を介して入力された画像データを一時記憶する記憶素子であり、例えば記憶量がギガバイトオーダのDRAM(Dynamic Random Access Memory)が用いられる。メモリコントローラ22は、データメモリ21への画像データの書き込みや、データメモリ21に一時記憶された画像データの読み出しを制御する制御回路である。
CPUコア部3は、予め設定記憶されたプログラムに基づいてデジタルカメラの作動を制御する制御部であり、図1では2つの処理回路を並列に設けた並列演算モジュールの構成例を示す。CPUコア部3は、命令RAM(Instruction RAM)31と、命令RAM31にCPU命令バス65を介して並列接続された処理回路と、各処理回路にCPUデータバス63を介して接続されたDMAC(Direct Memory Access Controller)35やSRAM(Static Random Access Memory)36等とを有して構成される。命令RAM31は、複数の処理命令からなるプログラムが予め設定記憶されたRAM(Random Access Memory)である。
並列に設けられた各処理回路は、プログラムの各ステップの処理命令を一時保持する命令キャッシュ32、処理命令を実行するCPU33、処理命令を実行する際に参照される演算データを一時保持するデータキャッシュ34を有して構成される。命令キャッシュ32は、CPU命令バス65を介して命令RAM31に接続されており、命令RAM31に記憶されたプログラムの処理命令が、処理ステップの進行とともに読み出されて命令キャッシュ32に一時保持される。データキャッシュ34はCPUデータバス63に接続されており、このバスに接続されたDMAC35やSRAM36等から、CPU33が処理を実行する際に参照する演算データが、処理ステップの進行とともに読み出されてデータキャッシュ34に一時保持される。CPU33は、命令キャッシュ32に一時保持された処理命令に基づき、データキャッシュ34に一時保持された演算データを参照して処理を実行する。
DSPアレイ部4は、予め設定記憶されたプログラムに基づいて所定の画像処理を行う画像処理装置である。図1には、複数のデジタル信号プロセッサ(DSP:Digital Signal Processor)43,43・・・を並列に設けた並列処理モジュールの構成例を示す。また、図1には、複数のデジタル信号プロセッサ43,43・・・について共通の共有メモリ44を設けた構成例を示す。
DSPアレイ部4は、複数の処理命令からなるプログラムが予め設定記憶された命令RAM41と、命令RAM41にDSP命令バス66を介して並列接続された画像処理回路と、画像処理回路にDSPデータバス64を介して接続されたDMAC45やSRAM46等とを有して構成される。
並列に設けられた画像処理回路は、各々、処理命令を一時保持する命令キャッシュ(I$)42と、処理命令を実行するデジタル信号プロセッサ(以下、適宜DSPと略記する)43とを有し、複数のDSP43,43・・・が処理を分担して並列に画像処理を実行する。命令キャッシュ42,42・・・は、DSP命令バス66を介して命令RAM41に並列接続されており、各命令キャッシュ42には各DSP43が分担処理すべき処理命令が読み出されて一時保持される。DSP43,43・・・は共有メモリ44に接続され、各DSPが共有メモリ44から画像データを読み出し、あるいは処理した画像データを共有メモリ44に書き込み可能になっている。
また、共有メモリ44は、DSPデータバス64に接続され、バスブリッジを介してメインバス62およびストリームI/Oバス61に接続されている。そのため、共有メモリ44は、これらのバスを介してデータメモリ21やDMAC45、SRAM46、画像入力系等との間で画像データのやりとりが可能になっている。
共有メモリ44は、命令RAM41から読み出した処理命令に基づいて、上記各部(例えばデータメモリ21)から所定の画像データを読み出し、メモリ内に一時記憶する。DSP43,43・・・は、命令RAM41から読み出して命令キャッシュ42,42・・・に一時保持された処理命令に基づいて、共有メモリ44から各自が分担する画像データの一部を読み出し、それぞれ画像処理を実行する。DSP43,43・・・により画像処理された画像データは共有メモリ44に一時記憶され、逐次データメモリ21に転送されて記憶される。
CPU/DSP間同期通信機構部5は、CPUコア部3とDSPアレイ部4との間で、相互に実行する処理のタイミングを調整する機構であり、CPU33とDSP43との間に設けられた同期制御割り込みコントローラ51と、CPUデータバス63とDSPデータバス64との間に設けられた共有RAM52とを有して構成される。例えば、CPU33は、プログラムの実行中に画像処理が必要なプロセスが生じたときに、共有RAM52に処理すべき画像データのアドレスや処理内容等のデータを書き込み、同期制御割り込みコントローラ51を介してDSP43に割り込み処理の実行指令を出力する。DSP43は、指定された画像データを読み出して画像処理を実行し、処理後の画像データのアドレス等を共有RAM52に書き込むとともに、同期制御割り込みコントローラ51を介してCPU33に割り込み処理が完了した旨の信号を出力する。これにより、CPUコア部3とDSPアレイ部4とで効率的に並列処理が行われる。
以上のように概要構成されるデジタルカメラの信号処理系にあって、外部記録媒体(不図示)に記録された画像データや、外部記録媒体から読み出されてデータメモリ21に一時記憶される画像データは、画像を構成する多数の単位データからなるデータ群であり、隣接する単位データが空間的に相互に所定の関連性をもったデータの集合体、すなわちストリームデータである。また、画像データに所定の画像処理を行うDSP43は、プロセッサ内部に算術論理ユニット(ALU:Arithmetic Logic Unit)、あるいは浮動小点演算ユニット(FPU:Floating Point number processing Unit)等の演算器を有して構成される。
そして、本デジタルカメラの信号処理系においては、画像データが一時記憶された外部記録媒体(不図示)やデータメモリ21と、DSP43,43・・・の演算器との間に、複数の記憶領域が連設されたカラムを有するマーチングメモリが設けられて構成される。以下、マーチングメモリを用いた画像処理装置の具体的な態様について詳細に説明する。
第1実施形態の画像処理装置は、DSP43にマーチングメモリを備える、すなわち、マーチングメモリをDSP43に内蔵して一体に構成される。本形態に含まれる第1の態様の画像処理装置100について、その概要のブロック図である図2を参照して説明する。なお、図2は、画像処理装置100におけるDSP(デジタル信号プロセッサ)43を主体として示すブロック図であり、データメモリ部2におけるメモリコントローラ22や、DSPアレイ部4における命令RAM41、命令キャッシュ42、共有メモリ44等の記載を省略している。
画像処理装置100は、画像データを一時記憶するデータメモリ21と、データメモリ21から読み出した画像データに所定の情報処理を行うDSP43とを備える。本態様のDSP43は、演算処理に必要なデータを一時保持するレジスタファイル110と、レジスタファイル110に保持されたデータを用いて演算処理を実行するALUあるいはFPU等の演算器120と、演算結果を一時的に保持するアキュムレータ130と、データメモリ21とレジスタファイル110との間に設けたロードバッファ151およびストアバッファ152からなるバッファメモリ150とを備えて構成される。そして、このロードバッファ151およびストアバッファ152としてマーチングメモリが用いられる。
ロードバッファ151およびストアバッファ152は、複数のセル(記憶領域)が行方向に連接されたカラムにより形成される単位マーチングメモリを一つのバッファとし、これを複数並列に設けて構成される。例えば、行方向に256のセルが連接されたカラムにより形成される単位マーチングメモリを一つのバッファとし、これを列方向に256個並列に設けて、256個のバッファからなるロードバッファ151、ストアバッファ152が形成される。マーチングメモリの各セルには画像データを構成する単位データが一時保持され、ロードバッファ151およびストアバッファ152に、各々256×256個の単位データを一時保持(一時記憶)可能に構成される。
ロードバッファ151は、命令RAM41からのDMA(Direct Memory Access)転送命令に応じてデータメモリ21にアクセスし、所定範囲の画像データを読み込んで一時保持する。例えば、水平方向(X方向とする)に4メガピクセル×垂直方向(Y方向とする)に3メガピクセルの画像データから、X方向に256ピクセル×Y方向に256ピクセル分の画像データを読み出し、256のバッファに一時保持する。このとき、X方向について最初に読み出したX1ラインの256ピクセル分の単位データを、B1バッファの第1セルから第256セルに順次送り動作させて一時保持し、次に読み出したX2ラインの256ピクセル分の単位データを、B2バッファの第1セルから第256セルに順次送り動作させて一時保持させる。以降同様に読み出し動作を繰り返し、B1バッファからB256バッファに順次一時保持させる。各レジスタには画像データのX方向ラインに沿って隣接する256ピクセル分の単位データが一時保持される。
レジスタファイル110は、命令RAM41からのロード命令に応じてロードバッファ151から単位データを読み込み、所定のレジスタ、例えばR1レジスタに格納する。同様にDMAC45あるいはSRAM46から実行する画像処理に応じたデータを読み込み、所定のレジスタ、例えばR2レジスタに格納する。
演算器120は、命令RAM41からの演算命令に応じ、R1レジスタに格納された単位データと、R2レジスタに格納されたデータとを用いて演算処理を実行し、演算結果をアキュムレータ130を介してレジスタファイル110に出力し、所定のレジスタ、例えばR3レジスタに格納する。
レジスタファイル110は、命令RAM41からのストア命令に応じて演算処理後の単位データを出力し、ストアバッファ152に演算結果の単位データを書き込む。
このとき、レジスタファイル110には、ロードバッファ151における各バッファ(単位マーチングメモリ)のカラムに並んだ単位データが順にロードされて演算器120により演算処理される。また、演算処理後の単位データは、演算処理された順にストアされ、ストアバッファ152における各バッファ(単位マーチングメモリ)のカラムに一時保持される。例えば、ロードバッファ151におけるB1バッファのカラムに並んだ単位データが、第1セルから順にレジスタファイル110に読み込まれて演算器120により演算処理され、演算処理後の単位データは、ストアバッファ152におけるB1バッファのカラムに、第1セルから第256セルに順次送り動作されて書き込まれる。以降、B2バッファ〜B256バッファについても同様である。
演算器120による上記演算処理の進行に伴い、ロードバッファ151に一時保持された画像データは順次減少し、ストアバッファ152には演算処理後(画像処理後)の画像データが順次増加する。ロードバッファ151およびストアバッファ152は、この演算処理の進行と並行して、すなわち演算処理実行のバックグラウンドで、データメモリ21との間で画像データのDMA転送を行う。
このような構成の画像処理装置100においては、X方向ライン1本分の画像データが各バッファの第1セルから第256セルに一時保持され、X1ラインからX256ラインの画像データが、B1バッファからB256バッファ(第1単位マーチングメモリから第256単位マーチングメモリ)に一時保持される。そして、演算器120により、B1バッファの第1セル〜第256セル、B2バッファの第1セル〜第256セル、B3バッファの第1セル〜第256セル・・・、B256バッファの第1セル〜第256セルのように、各バッファのセルに一時保持された単位データが順次ロードされて演算処理される。
画像データは、隣接するセルに一時記憶される単位データが空間的に相互に関連性を有する(例えば隣接する画素により検出された)データの集合体であり、ストリームデータである。そのため、ランダムデータのように、各単位データに対してアドレッシングを施して読み書きを行う必要がなく、1ライン分の単位データを各単位マーチングメモリのバッファにおいて順に送り動作させてセルに記憶させ、あるいは読み出せばよい。また、隣接するセル間のデータの送り移動、すなわち単位データの書き込みおよび読み出し動作は、DSP43のクロックパルスに同期させて高速に行うことができる。
さらに、ロードバッファ151およびストアバッファ152とデータメモリ21とは、物理的に離れているため画像データのやりとりに時間がかかり、画像処理を高速化・高効率化する一つの障害になり得る。しかし、画像処理装置100においては、ロードバッファ151およびストアバッファ152とデータメモリ21との間での画像データの転送が、演算器120において演算処理が実行されている期間に並行して、バックグラウンドで行われる。
従って、画像処理装置100によれば、マーチングメモリの特長的な動作形態を活かし、高速・高効率で画像処理を実行することができる。
なお、B1〜B256バッファにX1〜X256ラインの画像データが一時保持される構成を例示したが、B1〜B256バッファは各々任意ラインの画像データを一時保持させることができ、処理に応じて空いているバッファを使用することができる。例えば、B35バッファにX1ラインの画像データ、B42バッファにX2ラインの画像データを一時保持させる等のように使用することができる。
次に、第1実施形態に含まれる第2の態様の画像処理装置200について、図3を参照して説明する。図3は、画像処理装置200におけるDSP(デジタル信号プロセッサ)43を主体として示すブロック図であり、図2と同様にデータメモリ部2におけるメモリコントローラ22や、DSPアレイ部4における命令RAM41、命令キャッシュ42、共有メモリ44等の記載を省略している。
画像処理装置200は、画像データを一時記憶するデータメモリ21と、データメモリ21から読み出した画像データに所定の情報処理を行うDSP43とを備える。本態様のDSP43は、演算処理に必要なデータを一時保持するレジスタファイル210と、レジスタファイル210に保持されたデータを用いて演算処理を実行するALUあるいはFPU等の演算器220と、演算結果を一時的に保持するアキュムレータ230と、レジスタファイル210の各レジスタに一時記憶された画像データのアドレス情報を一時保持するアドレスレジスタファイル250とを備えて構成される。そして、本態様の画像処理装置200においては、レジスタファイル210としてマーチングメモリが用いられる。
レジスタファイル210は、複数のセル(記憶領域)が行方向に連接されたカラムにより形成される単位マーチングメモリを一つのレジスタとし、これを複数並列に設けて構成される。すなわち、並列に設けられた単位マーチングメモリ211,212,213,・・・,21Nが、レジスタファイル210におけるR1,R2,R3,・・・,RNレジスタを構成する。例えば、行方向に256のセルを有する単位マーチングメモリを列方向に32個並列に設けたレジスタファイル210では、各々256個の単位データを保持可能なレジスタが32個設けられる。
アドレスレジスタファイル250は、レジスタファイル210の各レジスタに一時保持された画像データのアドレスデータを一時保持するレジスタファイルであり、R1,R2,R3,・・・,RNレジスタに対応したA1,A2,A3,・・・,ANアドレスレジスタを有して構成される。例えば32のレジスタを有して構成される。
本態様の画像処理装置200において、1つのバッチ命令により、レジスタ1ライン分のロード、ストア、演算処理が実行される。すなわち、1つのバッチロード命令により256個の単位データからなる1ライン分の画像データがレジスタにロードされ、1つのバッチ演算命令により1ライン分の画像データについて演算処理が行われ、1つのバッチストア命令により1ライン分の画像データがデータメモリ21にストアされる。レジスタにマーチングメモリを用いこのようなバッチ命令を行うことにより、命令効率を大幅に高めることができる。具体的には、以下のようにバッチ命令、処理が実行される。
レジスタファイル210は、命令RAM41からのバッチロード命令に応じてデータメモリ21にアクセスし、所定範囲の画像データを読み出して、各レジスタに格納する。例えば、水平方向に4メガピクセル×垂直方向に3メガピクセルの画像データから、水平方向に256ピクセル×垂直方向に10ピクセル分の画像データを読み出し、10のレジスタに格納する。このとき、最初のバッチロード命令に基づいてロードしたX1ラインの256ピクセル分の単位データを、R1レジスタの第1セルから第256セルに順次送り動作させて格納し、次のバッチロード命令に基づいてロードしたX2ラインの256ピクセル分の単位データを、R2レジスタの第1セルから第256セルに順次送り動作させて格納させる。以降同様にバッチロード命令に基づくロード動作を繰り返し、R1レジスタからR10レジスタに順次格納する。R1〜R10の各レジスタには画像データのX方向ラインに沿って隣接する256ピクセル分の単位データが格納される。
このとき、アドレスレジスタファイル250には、バッチロード命令に基づいて読み出され、各レジスタに格納された画像データのアドレス情報が格納される。例えば、R1レジスタの第1セル〜第256セルに、X1ラインの画像データが格納された場合には、このX1ラインのアドレスがA1レジスタに格納される。また、次述する演算処理後のX1ラインの画像データがR21レジスタに格納された場合には、演算処理後のX1ラインのアドレスがA21レジスタに格納される。
また、レジスタファイル210には、命令RAM41からのバッチロード命令の実行に応じてDMAC45あるいはSRAM46から、実行する画像処理に応じたデータが読み出され、各レジスタに格納される。例えば、DMAC45から、バッチロード命令の実行に応じてX1ラインの画像処理に対応した256個のデータが読み出されてR11レジスタに格納され、バッチロード命令の実行に応じてX2ラインの画像処理に対応した256個のデータが読み出されてR12レジスタに格納される。以下同様にして、X10ラインの画像処理に対応した256個のデータが読み出されてR20レジスタに格納される。
演算器220は、命令RAM41からのバッチ演算命令に応じて、各レジスタに格納された画像データをバッチ処理する。例えば、命令RAM41からのバッチ演算命令が、R1レジスタに格納された画像データと、R11レジスタに格納されたデータとを加算して、R21レジスタに格納せよというバッチ演算命令であったとき、演算器220は次のように演算処理を実行する。
演算器220は、バッチ演算命令に基づいてR1レジスタの第1セルに格納された単位データと、R11レジスタの第1セルに格納されたデータとを加算して、R21レジスタの第1セルに格納する。次いで、R1レジスタの第2セルに格納された単位データと、R11レジスタの第2セルに格納されたデータとを加算して、R21レジスタの第2セルに格納する。以下同様に、R1レジスタの第nセルに格納された単位データと、R11レジスタの第nセルに格納されたデータとを加算して、R21レジスタの第nセルに格納する。この処理を1命令で第1セル〜第256セルまで実行する。
命令RAM41からの次のバッチ演算命令として、R2レジスタ(X2ライン)に格納された画像データに対する処理命令が出されると、演算器220は、R1レジスタに格納された画像データに対して行った処理と同様に演算処理を実行する。以降、バッチ演算を繰り返す場合は、例えばR3レジスタ〜R10レジスタについて、同様の演算処理を実行する。
ここで、R1レジスタ〜R10レジスタの第1セル〜第256セルには、それぞれX1ライン〜X10ラインを形成する演算処理前の単位データが順に並んで格納される。また、レジスタファイル210を構成する各レジスタはいずれも単位マーチングメモリであり、第1セル〜第256セルに格納されたデータはデータの並び順を維持したまま順送り移動される。そのため、演算処理の実行時に各単位マーチングメモリを単純に順送り動作させることによって、第1セル〜第256セルに格納された単位データを順に演算器220に送り出し、演算処理を実行させることができる。演算処理後の単位データをR21レジスタ〜R30レジスタの第1セル〜第256セルに書き込むときについても同様であり、各単位マーチングメモリを順送り動作させて単位データを送り込むことにより、第1セル〜第256セルに単位データが順に並んで格納される。
演算器220による上記演算処理の進行に伴い、R1レジスタ〜R10レジスタに格納された演算処理前の画像データ、およびR11レジスタ〜R20レジスタに格納されたデータは順次減少し、R21レジスタ〜R30レジスタに格納された演算処理後の画像データが順次増加する。DSP43は、演算器220による演算処理の進行と並行して、バッチストア命令を出すことにより、レジスタファイル210とデータメモリ21との間で画像データのDMA転送を行わせる。
このような構成の画像処理装置200においては、1つのバッチロード命令でX方向ライン1本分の256の単位データからなる画像データが各レジスタの第1セルから第256セルに格納され、10のバッチロード命令でX1ラインからX10の2560の単位データからなる画像データが、R1レジスタからR10レジスタに格納される。演算器220では、1つのバッチ演算命令で256の単位データからなる1ライン分の画像データが演算処理され、10のバッチ演算命令でR1レジスタ〜R10レジスタに格納された10ライン分の画像データが演算処理されて、R21〜R30に格納される。
画像データは、隣接するセルに格納される単位データが空間的に相互に関連性を有する(例えば隣接する画素により検出された)データの集合体であり、ストリームデータである。そのため、ランダムデータのように、各単位データに対して逐一アドレッシングを施して読み書きを行う必要がなく、アドレッシングやデータサーチ等に要する時間を排除することができる。
さらに、画像処理装置200においては、演算器220が1本のX方向ライン分に相当する単位データ群(上記実施例では256の単位データ群)のロード・演算・ストアの各処理をそれぞれ1命令でバッチ処理する。1ライン分の単位データ群はデータの並び順を維持したまま順送り移動されるため、ロード時や演算処理の実行時、ストア時に単位マーチングメモリを単純に順送り動作させることによって、単位データ群を順にロードし、演算処理し、演算結果のデータ群を順に格納することができる。単位マーチングメモリにおける隣接するセル間のデータの送り移動、すなわち単位データの書き込みおよび読み出し動作は、基準クロックパルスに同期させて高速に行うことができる。さらに、1つのバッチ命令により、レジスタ1ライン分のロード、ストア、演算処理が実行されるため命令効率を大幅に高めることができる。
また、レジスタファイル210とデータメモリ21とは、物理的に離れているため画像データのやりとりに時間がかかり、画像処理を高速化・高効率化する一つの障害になり得る。しかしながら、画像処理装置200においては、レジスタファイル210とデータメモリ21との間での画像データの転送が、演算器220において演算処理が実行されている期間に並行して、バックグラウンドで行われる。
従って、画像処理装置200によれば、マーチングメモリの特長的な動作形態を活かし、高速・高効率で画像処理を実行することができる。
なお、以上では、説明簡明化のため、レジスタファイル210におけるR1〜R10レジスタにX1〜X10ラインの画像データが格納され、R11〜R20レジスタにX1〜X10ラインの処理データが格納され、R21〜R30レジスタにX1〜X10ラインの処理後の画像データが格納される構成を例示した。しかしながら、R1〜R32レジスタは、その時の割り付けにより、各々任意ラインの画像データ、処理データ、処理後の画像データを格納することができ、処理に応じて空いているレジスタを割り付けて使用することができる。例えば、R8レジスタ及びR13レジスタにX1ライン及びX2ラインの画像データが格納され、R2レジスタ及びR25レジスタにX1ライン及びX2ラインの処理データが格納され、R5レジスタ及びR32レジスタにX1ライン及びX2ラインの処理後の画像データが格納されるようにすることができる。
アドレスレジスタ250についても同様であり、A1〜A32レジスタは、その時の割り付けにより、各々任意ラインの画像データのアドレス、処理後の画像データのアドレスを格納することができ、処理に応じて空いているレジスタを割り付けて使用することができる。例えば、R9レジスタに格納したX3ラインの画像データのアドレスがA2レジスタに格納され、R22レジスタに格納したX3ラインの処理後のアドレスがA11レジスタに格納されるようにすることができる。
次に、第2実施形態の画像処理装置について説明する。第2実施形態の画像処理装置は、データメモリ21と、複数のDSP(デジタル信号プロセッサ)43,43,・・・,43とを備え、データメモリ21とDSP43,43,・・・,43との間にマーチングメモリを利用した共有メモリ44を設けて構成される。
本実施形態の画像処理装置400について、図4を参照して説明する。図4は、画像処理装置400における共有メモリ44を主体として示すブロック図であり、データメモリ部2におけるメモリコントローラ22や、DSPアレイ部4における命令RAM41、命令キャッシュ42等の記載を省略している。
画像処理装置400は、画像データを一時記憶するデータメモリ21と、データメモリ21から読み出した画像データに所定の情報処理を行うDSP43と、共有メモリ44とを備える。共有メモリ44は、画像データ等を一時記憶するデータ記憶部401と、データ記憶部401に入出力される画像データ等の流れを制御するデータ制御部402とから構成される。
データ記憶部401は、画像データを一時記憶するMMアレイ410と、MMアレイ(マーチングメモリアレイ)410に一時記憶された画像データの情報を一時保持するMMラベル管理コントローラ420とを有して構成される。データ制御部402は、データメモリ21およびDSP43,43,・・・,43とMMアレイ410との間に設けられたリード/ライト調整回路430と、リード/ライト調整回路430の作動を制御するリード/ライトシーケンサ440とを有して構成される。
MMアレイ410は、複数のセル(記憶領域)が行方向に連接されたカラムにより形成される単位マーチングメモリを一つのメモリとし、これを複数並列に設けて構成される。すなわち、並列に設けられた単位マーチングメモリ411,412,413,・・・,41Nが、MMアレイ410におけるC1,C2,C3,・・・,CNメモリを構成する。MMアレイの容量は、デジタルカメラにより撮影される画像データのデータ容量に応じて設定され、例えば、行方向に256×nのセルを有する単位マーチングメモリを、列方向に256×m個並列に設けて構成される。本実施形態では、各単位マーチングメモリのカラムの一端をデータの入出力ポートとした構成を例示する。
リード/ライト調整回路430は、MMアレイ410とデータメモリ21との間での画像データの読み出しや書き込み、MMアレイ410とDSP43,43,・・・,43との間での画像データの転送を行う際の、画像データの流れを調整する回路である。例示するリード/ライト調整回路430は、DSP43,43,・・・,43に対応して設けられたロード/ストアユニット431,431,・・・,431と、単位マーチングメモリ411,412,・・・,41Nに対応する第1〜第Nレジスタが円環状に相互接続されたリングレジスタ433と、ロード/ストアユニット431とリングレジスタ433との接続をコントロールするポート接続コントローラ432とを有して構成される。
ロード/ストアユニット431は、一端がグローバルメモリ転送バス68を介してDSP43,43,・・・,43およびデータメモリ21に接続され、他端がポート接続コントローラ432に接続される。リングレジスタ433は、第1〜第Nレジスタの一端が各々対応するC1〜CNメモリの入出力ポートに接続され、他端がポート接続コントローラ432に接続される。
リード/ライトシーケンサ440は、画像処理装置400で実行する画像処理の内容に応じて、リード/ライト調整回路430のロード/ストアユニット431、ポート接続コントローラ432、およびリングレジスタ433の作動を制御する。画像処理装置400で実行する画像処理は既に公知の種々のものがあり、処理内容に応じてリード/ライトシーケンサ440が制御するリード/ライト調整回路430の制御形態(処理モード)も異なったものとなる。ここでは、(1)データメモリ21に記憶された画像データをそのままMMアレイ410に一時記憶するコピーモード、(2)データメモリ21に記憶された画像データの水平方向と垂直方向とを反転させるX−Y変換モード、(3)データメモリ21に記憶された画像データのデータ数を減少させる圧縮モードを、処理モードの代表例として説明する。
(1)コピーモード
コピーモードは、データメモリ21に記憶された画像データを、そのままMMアレイ410に一時記憶するような処理モードである。コピーモードの場合に、リード/ライトシーケンサ440は、リード/ライト調整回路430を以下のように制御する。いま、第1のロード/ストアユニット431に、X1ライン〜X5ラインの画像データを読み出し、MMアレイ410のC1メモリ〜C5メモリに一時記憶させる(書き込む)とする。
このとき、リード/ライトシーケンサ440は、まず第1のロード/ストアユニット431に、X1ラインのアドレスを指定してX方向ライン1本分の画像データを読み出させる。ポート接続コントローラ432には、第1のロード/ストアユニット431と、リングレジスタ433におけるC1メモリに対応したレジスタである第1レジスタとを接続させる。リングレジスタ433は、レジスタ間でのデータ移動を行わず、ポート接続コントローラ432から入力されたデータをそのメモリに出力する設定とする。これにより、データメモリ21から読み出されたX1ラインの画像データは、第1のロード/ストアユニット431〜ポート接続コントローラ432〜リングレジスタ433の第1レジスタを通り、MMアレイ410のC1メモリに一時記憶される。
次いで、リード/ライトシーケンサ440は、第1のロード/ストアユニット431に、X2ラインのアドレスを指定してX方向ライン1本分の画像データを読み出させる。ポート接続コントローラ432には、第1のロード/ストアユニット431と、リングレジスタ433の第2レジスタとを接続させる。リングレジスタ433はレジスタ間でのデータ移動を行わない設定を維持する。これにより、データメモリ21から読み出されたX2ラインの画像データが、第1のロード/ストアユニット431〜ポート接続コントローラ432〜リングレジスタ433の第2レジスタを通り、MMアレイ410のC2メモリに一時記憶される。X3ライン〜X5ラインについても同様であり、ポート接続コントローラ432の接続設定を順次切り替えることにより、X3ライン〜X5ラインの画像データが、MMアレイ410のC3メモリ〜C5メモリに一時記憶される。
MMラベル管理コントローラ420には、MMアレイ410のC1メモリ〜C5メモリに一時記憶された画像データのアドレス情報がラベルとして一時記憶される。例えば、C1メモリに一時記憶された画像データは、データメモリ21に記憶された原画像データにおけるX1ラインの画像データである旨のラベルが一時記憶される。C2メモリ〜C5メモリについても同様である。
なお、MMアレイ410のC1〜CNメモリには、任意ラインの画像データを一時記憶させることができる。例えば、C3メモリにX1ラインの画像データ、C6メモリにX2ラインの画像データを一時記憶させるようにすることができる。
以上は、データメモリ21に記憶された画像データをMMアレイ410に一時記憶する場合について説明したが、MMアレイ410に一時記憶された画像データを、DSP43に転送するとき、あるいはデータメモリ21に書き込むときについても同様である。すなわち、リード/ライトシーケンサ440は、読み出すべきMMアレイ410のメモリと、DSP43への転送を行うロード/ストアユニット431との接続を順次切り換えて、所定範囲の画像データをDSP43に転送する。
(2)X−Y変換モード
X−Y変換モードは、データメモリ21に記憶された画像データにおける水平方向(X方向)と垂直方向(Y方向)とを反転させてMMアレイ410に一時記憶するようなる処理モードである。X−Y変換モードの場合、リード/ライトシーケンサ440は、リード/ライト調整回路430を以下のように制御する。いま、第1のロード/ストアユニット431に、X1ライン〜X5ラインの画像データを読み出し、MMアレイ410にY1ライン〜Y5ラインとして一時記憶させる場合を説明する。
このとき、リード/ライトシーケンサ440は、まず第1のロード/ストアユニット431に、X1ラインのアドレスを指定してX方向イン1本分の画像データを読み出させる。ポート接続コントローラ432には、第1のロード/ストアユニット431と、リングレジスタ433における第1レジスタとを接続させる。リングレジスタ433については、X1ラインを構成する単位データが入力されるごとに、レジスタ間でデータを送り移動させるように設定する。
図5は、1本のX方向ラインが4つの単位データで構成される場合のリングレジスタ433の作用を示している。このとき、データメモリ21から読み出されたX1ラインの4つの単位データは、リングレジスタ433により順次データが移動され、X1ラインの第1単位データがC4メモリに対応する第4レジスタに、第2単位データがC3メモリに対応する第3レジスタに、第3単位データがC2メモリに対応する第2レジスタに、第4単位データがC1メモリに対応する第1レジスタに移動される。そして、X方向ライン1本分の画像データがリングレジスタ433の第4レジスタ〜第1レジスタに格納されたのち、各レジスタに格納された単位データがMMアレイ410に書き込まれる。これにより、X1ラインがY1ラインにX−Y変換される。
次いで、リード/ライトシーケンサ440は、第1のロード/ストアユニット431に、X2ラインのアドレスを指定してX方向ライン1本分の画像データを読み出させる。ポート接続コントローラ432、リングレジスタ433の設定は同一である。データメモリ21から読み出されたX2ラインの4つの単位データは、リングレジスタ433により順次データが移動され、X2ラインの第1単位データが第4レジスタに、第2単位データが第3レジスタに、第3単位データが第2レジスタに、第4単位データが第1レジスタに移動される。そして、X方向ライン1本分の画像データがリングレジスタ433の第4レジスタ〜第1レジスタに格納されたのち、各レジスタに格納された単位データがMMアレイ410に書き込まれる。これにより、X2ラインがY2ラインにX−Y変換される。このとき、先にC4メモリ〜C1メモリの第1セルに一時記憶されていたY1ラインの各単位データは、Y2ラインの各単位データの書き込み動作とともに第2セルに送り移動される。
X3ライン〜X5ラインついても同様にしてX−Y変換され、Y3ライン〜Y5ラインとしてMMアレイ410に一時記憶される。
MMラベル管理コントローラ420には、MMアレイ410のC1メモリ〜C4メモリに一時記憶された画像データの情報がラベルとして一時記憶される。例えば、C1メモリに一時記憶された画像データは、データメモリ21に記憶された原画像データにおけるY4ラインに相当する画像データである旨のラベルが一時記憶される。C2メモリ〜C4メモリについても同様である。
以上は、データメモリ21に記憶された画像データを、X−Y変換してMMアレイ410に一時記憶する場合について説明したが、MMアレイ410に一時記憶された画像データを、DSP43に転送するとき、あるいはデータメモリ21に書き込むときにX−Y変換する場合も同様である。例えば、上記のようにしてC1メモリ〜C4メモリにX−Y変換された画像データが一時記憶されている場合に、C1メモリ〜C4メモリを同時に送り動作させてリングレジスタ433の各レジスタに単位データを格納し、この4つの単位データをデータ移動させて一つのロード/ストアユニット431から出力させれば、Y方向ラインをX方向ラインにX−Y変換してDSP43等に転送することができる。
(3)圧縮モード
圧縮モードは、データメモリに記憶された画像データを間引いてデータ数を減少させた画像データをMMアレイ410に一時記憶するような処理モードである。圧縮モードの場合、リード/ライトシーケンサ440は、リード/ライト調整回路430を以下のように制御する。いま、第1のロード/ストアユニット431に、X1ライン〜X5ラインの画像データを読み出し、MMアレイ410にデータ数を1/4に圧縮した画像データを一時記憶させる場合を説明する。
このとき、リード/ライトシーケンサ440は、まず第1のロード/ストアユニット431に、X1ラインのアドレスを指定してX方向ライン1本分の画像データを読み出させる。ポート接続コントローラ432には、第1のロード/ストアユニット431と、リングレジスタ433における第1レジスタとを接続させる。リングレジスタ433に対しては、ポート接続コントローラ432からリングレジスタ433に入力されるX1ラインの単位データが4n−2〜4n(nは1以上の整数)の場合には、単位データが入力されるごとに、レジスタ間でデータを送り移動させるように設定する。
具体的には、X1ラインを構成する単位データが入力されたときに、1〜4番目(n=1)の単位データについて、前述したX−Y変換モードと同様の動作を行わせる。すなわち、2〜4番目の単位データが入力されたときに、リングレジスタ433によりレジスタ間で順次データが移動され、1番目の単位データが第4レジスタに、2番目の単位データが第3レジスタに、3番目の単位データが第2レジスタに、4番目の単位データが第1レジスタに移動される。そして、これら4つの単位データがリングレジスタ433の第4レジスタ〜第1レジスタに格納されたのち、各レジスタに格納された単位データがMMアレイ410に書き込まれる。これによりX1ラインにおける、1番目の単位データがC4メモリ、2番目の単位データがC3メモリ、3番目の単位データがC2メモリ、4番目の単位データがC1メモリに一時保持される。
5〜8番目(n=2)の単位データが入力されたときも同様に、6〜8番目の単位データが入力されたときに、リングレジスタ433によりレジスタ間で順次データが移動され、5番目の単位データが第4レジスタに、6番目の単位データが第3レジスタに、7番目の単位データが第2レジスタに、8番目の単位データが第1レジスタに移動される。そして、これら4つの単位データがリングレジスタ433の第4レジスタ〜第1レジスタに格納されたのち、各レジスタに格納された単位データがMMアレイ410に書き込まれる。これによりX1ラインにおける、1番目と5番目の単位データがC4メモリ、2番目と6番目の単位データがC3メモリ、3番目と7番目の単位データがC2メモリ、4番目と8番目の単位データがC1メモリに一時保持される。
このような動作をX1ライン1本分について実行すると、MMアレイ410のC4メモリにX1ラインにおける1,5,9,・・・,4m番目の単位データ、C3メモリにX1ラインにおける2,6,10,・・・,(4m+1)番目の単位データ、C2メモリにX1ラインにおける3,7,11,・・・,(4m+2)番目の単位データ、C1メモリにX1ラインにおける4,8,12,・・・,(4m+3)番目の単位データが一時記憶される。C1メモリ〜C4メモリに一時記憶された画像データは、いずれもX1ラインの画像データであるが、データを4つ飛びに間引いてデータ数を1/4に減少させた圧縮画像データである。
X2ライン以降のX方向ラインについても、X1ラインと同様に同期して同時に実行させることができる。リード/ライトシーケンサ440は、例えば第2のロード/ストアユニット431に、X2ラインのアドレスを指定してX方向ライン1本分の画像データを読み出させる。ポート接続コントローラ432には、第2のロード/ストアユニット431と、リングレジスタ433における第5レジスタとを接続させる。リングレジスタ433に対しては、ポート接続コントローラ432からリングレジスタ433に入力されるX2ラインの単位データが4n−2〜4n(nは1以上の整数)の場合には、X2ラインを構成する単位データが入力されるごとに、レジスタ間でデータを送り移動させるように設定する。
このような設定により、X2ラインにおける1〜4番目の単位データは、1番目の単位データが第8レジスタに、2番目の単位データが第7レジスタに、3番目の単位データが第6レジスタに、4番目の単位データが第5レジスタに移動される。そして、これら4つの単位データがリングレジスタ433の第8レジスタ〜第5レジスタに格納されたのち、各レジスタに格納された単位データがMMアレイ410に書き込まれる。これによりX2ラインにおける、1番目の単位データがC8メモリ、2番目の単位データがC7メモリ、3番目の単位データがC6メモリ、4番目の単位データがC5メモリに一時保持される。
5〜8番目(n=2)の単位データが入力されたときも同様に処理され、5番目の単位データが第8レジスタに、6番目の単位データが第7レジスタに、7番目の単位データが第6レジスタに、8番目の単位データが第5レジスタに移動される。そして、これら4つの単位データがリングレジスタ433の第8レジスタ〜第5レジスタに格納されたのち、各レジスタに格納された単位データがMMアレイ410に書き込まれる。これによりX2ラインにおける、1番目と5番目の単位データがC8メモリ、2番目と6番目の単位データがC7メモリ、3番目と7番目の単位データがC6メモリ、4番目と8番目の単位データがC5メモリに一時保持される。
このような動作をX2ライン1本分について実行すると、MMアレイ410のC8メモリにX2ラインにおける1,5,9,・・・,4m番目の単位データ、C7メモリにX2ラインにおける2,6,10,・・・,(4m+1)番目の単位データ、C6メモリにX2ラインにおける3,7,11,・・・,(4m+2)番目の単位データ、C5メモリにX2ラインにおける4,8,12,・・・,(4m+3)番目の単位データが一時記憶される。C5メモリ〜C8メモリに一時記憶された画像データは、いずれもX2ラインの画像データであるが、データを4つ飛びに間引いてデータ数を1/4に減少させた圧縮画像データである。
リード/ライトシーケンサ440は、X3ライン〜X5ラインについても上記X1ラインおよびX2ラインと同様の設定を行い、同様の処理を行わせる。MMアレイ410には、C12メモリ,C16メモリ,C20メモリにX3,X4,X5ラインにおける1,5,9,・・・,4m番目の単位データが一時記憶され、C11メモリ,C15メモリ,C19メモリにX3,X4,X5ラインにおける2,6,10,・・・,4m+1番目の単位データが一時記憶される。
以上の動作により、MMアレイ410には、C1〜C4メモリに各々データ数を1/4に減少させたX1ラインの圧縮画像データ、C5〜C8メモリに各々データ数を1/4に減少させたX2ラインの圧縮画像データ、C9〜C12メモリに各々データ数を1/4に減少させたX3ラインの圧縮画像データ、・・・、C17〜C20メモリに各々データ数を1/4に減少させたX5ラインの圧縮画像データが一時記憶される。
そして、ポート接続コントローラ432により、第1のロード/ストアユニット431とC1メモリ、第2のロード/ストアユニット431とC5メモリ、第3のロード/ストアユニット431とC9メモリ、・・・、第5のロード/ストアユニット431とC17メモリを接続する設定とし、C1,C5,C9,・・・,C17メモリの単位マーチングメモリを順送り動作させて、例えばデータメモリ21に書き込むことにより、原画像データに対してデータ数を1/4に減少させた圧縮画像データを作成することができる。
なお、本実施形態では、複数並列に並べられた単位マーチングメモリのカラムの一端を入出力ポートとしたが、一端を入力ポート、他端を出力ポートとしてもよく、あるいは両端をともに入出力ポートとしてもよい。これらの場合に、ロード/ストアユニット431およびポート接続コントローラ432は、MMアレイ410を挟んで両側に設けられるが、リングレジスタ433は、いずれか一方としてもよい。
さて、以上では、マーチングメモリを画像処理装置に適用した場合について、いくつかの適用例を示して説明してきた。しかし、マーチングメモリはこれらの適用例に限らず、画像処理装置における他の部位や、処理形態が異なる他の情報処理装置等にも広く適用することが可能である。画像処理装置における他の部位への適用について、図6を参照して簡潔に説明する。図6は画像処理装置における信号の処理系統を大まかにまとめたブロック図である。
図示する信号処理系は、画像入力系510、画像処理系520、画像出力系530、画像処理装置に接続されるDRAM540、外部メモリ(MM)550、ストレージ560、および外部処理系570などから構成される。
画像処理系520は、CPU521、GPU(Graphics Processing Unit)522、コーデック523、DRAMコントローラ524、外部メモリコントローラ525、ストレージ用IP526、外部処理系用IP527などからなり、これらがバスで接続されたSoC(System on Chip)構成になっている。なお、図1を参照して説明した信号処理系との対比においては、概ね、CPU521がCPUコア部3、GPU522がDSPアレイ部4、DRAM540がDRAM21に相当する。
このような信号処理系において、画像入力系510、画像処理系520におけるCPU521および外部処理系用IP527、画像出力系530、外部メモリ550、ストレージ560、外部処理系570などにマーチングメモリを好適に適用することができる。すなわち、画像入力系510においては、撮像素子により撮影された画像データの一時記憶に、画像出力系530においては、画像処理系520から出力された画像データの一時記憶に、マーチングメモリを好適に適用することができる。画像処理系520におけるCPU521においては、例えば、顔認識や動く被写体のトラッキング等を行う際の画像データの一時記憶にマーチングメモリを好適に適用することができる。外部メモリ550やストレージ560、外部処理系570等についても同様であり、画像データの一時記憶にマーチングメモリを好適に適用することができる。
本実施形態のアプリケーションは、複数の単位データからなるストリームデータ(例えば、実施形態における画像データ)を一時記憶するデータメモリと、演算器を有しデータメモリから読み出したストリームデータに所定の情報処理を行うプロセッサ(例えば、実施形態におけるデジタル信号プロセッサ)とを備えた情報処理装置である。そのうえで、本実施形態の情報処理装置は、プロセッサのレジスタファイルとしてマーチングメモリを備える。マーチングメモリは、複数の記憶領域が連設されたカラムを有し入力された複数の単位データをカラムの一端から順次隣接する記憶領域に送り移動させて各記憶領域に一時記憶する単位マーチングメモリが複数設けられて構成される。そして、マーチングメモリは、入力された複数の単位データを第1の単位マーチングメモリの各記憶領域に一時記憶し、プロセッサは、バッチ演算処理命令に基づいて、第1の単位マーチングメモリの各記憶領域に一時記憶された複数の単位データを、演算器により順次演算処理して処理後の各単位データを第2の単位マーチングメモリの各記憶領域に一時記憶させるように構成される。
ここで、本実施形態における「ストリームデータ」とは、複数の単位データからなるデータ群であり、隣接する単位データが、空間的および/または時間的に相互に所定の関連性をもっているようなデータの集合体をいう。具体的には、デジタルカメラやデジタルビデオカメラ等で撮影された静止画や動画の画像データ、これらのカメラやICレコーダ等により録音された音声データ、各種測定器により測定された時間的・空間的な測定データなどがストリームデータの例として示される。
例えば、デジタルカメラによって撮影された静止画の画像データは、撮像素子を構成する各画素の検出信号に基づいて生成された単位データの集合体(データ群)である。このデータ群を構成する単位データは、データ間に関連性がないランダムデータではなく、所定範囲で空間的な関連性を有するデータである。この空間的な関連性に基づいて、隣接する単位データ間では、明度や彩度等の特徴量についてある一定の関連性を有し、例えば特徴量が滑らかに変化している。また、静止画が連写された場合の画像データや動画の画像データでは、1フレーム内で空間的に隣接する単位データについて上記のような空間的な関係を有することに加えて、前後のフレーム間で時間的な関連性を有している。ICレコーダ等により録音された音声データも同様であり、周波数や強度が時間軸方向に滑らかに変化する単位データの集合体である。
また、本実施形態の情報処理装置は、データメモリと複数のプロセッサとの間に、共有メモリとしてマーチングメモリを備える。マーチングメモリは、複数の記憶領域が連設されたカラムを有し入力された複数の単位データをカラムの一端から順次隣接する記憶領域に送り移動させて各記憶領域に一時記憶する単位マーチングメモリが複数並列に設けられて構成される。
このとき、前記マーチングメモリにおける各単位マーチングメモリの入力ポートおよび/または出力ポートには、入力された複数の単位データの配列および/または出力する複数の単位データの配列を変更する配列変更手段(例えば、実施形態におけるリングレジスタ)を設けて情報処理装置を構成することができる。
また、前記配列変更手段は、各前記単位マーチングメモリの入力ポートおよび/または出力ポートに接続されたレジスタ群からなるリングレジスタと、このリングレジスタの作動を制御するシーケンサ(例えば、実施形態におけるリード/ライトシーケンサ)とを有し、シーケンサが、情報処理装置が実行する情報処理のモードに応じてリングレジスタの作動を制御し、複数の単位データの配列を変更するように構成しても良い。
ここで、情報処理のモードは、情報処理装置が適用されるシステムに応じて適宜に設定することができる。例えば、情報処理装置をデジタルカメラに適用する場合の代表例として、画像圧縮モードや垂直−水平変換モード、デコンボリューションモードなどが例示される。画像圧縮モードについても既に公知の複数のモードが考えられるが、例えば、データメモリに記憶された全画素の画像データ(データ容量が大きいストリームデータ)から、画素数を間引くことにより圧縮した画像データ(データ容量を縮小したストリームデータ)に変関するようなモードが例示される。
また、本実施形態の情報処理装置は、プロセッサのバッファメモリとしてマーチングメモリを備える。マーチングメモリは、複数の記憶領域が連設されたカラムを有し入力された複数の単位データをカラムの一端から順次隣接する記憶領域に送り移動させて各記憶領域に一時記憶する単位マーチングメモリが複数並列に設けられて構成される。
本実施形態における他の態様は、以上いずれかに記載の情報処理装置と、撮像素子を有し前記情報処理装置にストリームデータである画像データを入力する画像入力系と、情報処理装置により処理された画像データを出力する画像出力系とを備えたデジタルカメラである。
本実施形態によれば、マーチングメモリは複数の記憶領域(セル)が連設されたカラムを単位とし、入力ポートに入力された単位データが順次隣接する記憶領域に送り移動されて各セルに一時記憶される。このとき、単位データの入力および移動速度は、例えばCPUの基準クロックに対応させることもでき、高速の読み取り動作が可能である。また、本発明の態様の情報処理装置が対象とするデータ群は、複数の単位データからなるストリームデータであり、隣接するデータ間で所定の関連性を有するデータ群である。すなわち、読み込む単位データごとに逐一アドレッシングが必要なランダムデータと異なり、マーチングメモリの動作形態に合致したデータ群なのである。
以上説明したように、本発明が対象とするデータ群はストリームデータであり、隣接するデータ間で所定の関連性を有している。そのため、ランダムデータのように、各単位データに対して逐一アドレッシングを施して読み書きを行う必要がなく、アドレッシングやデータサーチ等に要する時間を排除することができる。また、マーチングメモリは複数のセルが連設されたカラムを単位とし、セルに入力された単位データが順次送り移動されて各セルに一時記憶される。このとき、単位データの入力および移動速度は、CPUの基準クロック等に対応させることもでき、高速で書き込みおよび読み出し動作させることができる。従って、本発明によれば、マーチングメモリの特長的な動作形態を活かした好適なアプリケーションを提供することができる。例えば、本発明の態様の情報処理装置および情報処理装置を備えたデジタルカメラによれば、マーチングメモリの特長的な動作形態を活かした好適なアプリケーションを提供することができる。
21 データメモリ
43 デジタル信号プロセッサ(DSP)
44 共有メモリ
100 第1実施形態における第1の態様の画像処理装置
120 演算器
150 バッファメモリ
151 ロードバッファ(マーチングメモリ)
152 ストアバッファ(マーチングメモリ)
200 第1実施形態における第2の態様の画像処理装置
210 レジスタファイル(マーチングメモリ)
211,212,213,・・・,21N 単位マーチングメモリ
220 演算器
400 第2実施形態の画像処理装置
410 MMアレイ(マーチングメモリ)
411,412,413,・・・,41N 単位マーチングメモリ
433 リングレジスタ(配列変更手段)
440 リード/ライトシーケンサ(シーケンサ)
510 画像入力系
520 画像処理系
530 画像出力系

Claims (7)

  1. 複数の単位データからなるストリームデータを一時記憶するデータメモリと、
    演算器を有し前記データメモリから読み出したストリームデータに所定の情報処理を行う複数のプロセッサとを備えた情報処理装置であって、
    前記データメモリと前記複数のプロセッサとの間に、共有メモリとしてマーチングメモリを備え、
    前記マーチングメモリは、複数の記憶領域が連設されたカラムを有し、入力された複数の単位データを前記カラムの一端から順次隣接する記憶領域に送り移動させて各記憶領域に一時記憶する単位マーチングメモリが複数並列に設けられて構成され
    前記マーチングメモリにおける各前記単位マーチングメモリの入力ポートおよび/または出力ポートに接続され、入力された複数の単位データの配列および/または出力する複数の単位データの配列を変更するリングレジスタと、前記リングレジスタの作動を制御するシーケンサとを備え、
    前記シーケンサは、情報処理装置が実行する情報処理のモードに基づいて前記リングレジスタの作動を制御し、前記複数の単位データの配列を変更する、
    情報処理装置。
  2. 前記プロセッサのレジスタファイルとして第2のマーチングメモリを備える、請求項1に記載の情報処理装置。
  3. 前記プロセッサのバッファメモリとして第3のマーチングメモリを備える、請求項1または2に記載の情報処理装置。
  4. 前記バッファメモリはロードバッファおよびストアバッファの少なくとも一方を含む、請求項3に記載の情報処理装置。
  5. 前記ストリームデータは、画像データ、音声データおよび測定データのいずれかを含む、請求項1から4のいずれか1項に記載の情報処理装置。
  6. 前記プロセッサはデジタル信号プロセッサを含む、請求項1から5のいずれか1項に記載の情報処理装置。
  7. 請求項1からのいずれか一項に記載の情報処理装置と、
    撮像素子を有し前記情報処理装置に前記ストリームデータである画像データを入力する画像入力系と、
    前記情報処理装置により処理された画像データを出力する画像出力系と
    を備えたデジタルカメラ。
JP2016504209A 2014-02-24 2015-02-23 情報処理装置、デジタルカメラおよびプロセッサ Active JP6319420B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014032724 2014-02-24
JP2014032724 2014-02-24
PCT/JP2015/055050 WO2015125960A1 (ja) 2014-02-24 2015-02-23 情報処理装置、デジタルカメラおよびプロセッサ

Publications (2)

Publication Number Publication Date
JPWO2015125960A1 JPWO2015125960A1 (ja) 2017-03-30
JP6319420B2 true JP6319420B2 (ja) 2018-05-09

Family

ID=53878456

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016504209A Active JP6319420B2 (ja) 2014-02-24 2015-02-23 情報処理装置、デジタルカメラおよびプロセッサ

Country Status (2)

Country Link
JP (1) JP6319420B2 (ja)
WO (1) WO2015125960A1 (ja)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04100358A (ja) * 1990-08-17 1992-04-02 Matsushita Electric Ind Co Ltd セル転送回路
JPH04293151A (ja) * 1991-03-20 1992-10-16 Fujitsu Ltd 並列データ処理方式
JP4186561B2 (ja) * 2002-04-25 2008-11-26 ソニー株式会社 画像処理装置およびその方法
JP4158413B2 (ja) * 2002-05-22 2008-10-01 ソニー株式会社 画像処理装置
JP4264527B2 (ja) * 2002-05-23 2009-05-20 ソニー株式会社 画像処理装置およびその方法
JP4264526B2 (ja) * 2002-05-23 2009-05-20 ソニー株式会社 画像処理装置およびその方法
JP2004013873A (ja) * 2002-06-03 2004-01-15 Sony Corp 画像処理装置
JP4264530B2 (ja) * 2002-07-19 2009-05-20 ソニー株式会社 画像処理装置およびその方法
JP4264529B2 (ja) * 2002-07-19 2009-05-20 ソニー株式会社 画像処理装置およびその方法
JP2004118822A (ja) * 2002-09-27 2004-04-15 Sony Corp 画像処理装置
JP2004118713A (ja) * 2002-09-27 2004-04-15 Sony Corp 画像処理装置
JP2004127227A (ja) * 2002-10-04 2004-04-22 Sony Corp 画像処理装置
JP2004145838A (ja) * 2002-10-25 2004-05-20 Sony Corp 画像処理装置
JP2010054939A (ja) * 2008-08-29 2010-03-11 Toshiba Corp 情報処理装置および画像信号処理方法
CN102483697B (zh) * 2009-07-21 2015-06-10 中村维男 无存储器瓶颈的低能耗高速计算机
JP2012159903A (ja) * 2011-01-31 2012-08-23 Fujitsu Semiconductor Ltd データ処理システム、データ処理装置、及びデータ処理方法

Also Published As

Publication number Publication date
WO2015125960A1 (ja) 2015-08-27
JPWO2015125960A1 (ja) 2017-03-30

Similar Documents

Publication Publication Date Title
JP4893621B2 (ja) 信号処理装置
US8904069B2 (en) Data processing apparatus and image processing apparatus
CN108388527B (zh) 直接存储器存取引擎及其方法
US20110173416A1 (en) Data processing device and parallel processing unit
TWI757637B (zh) 影像信號處理器、其操作方法以及應用處理器
US20160070642A1 (en) Memory control and data processing using memory address generation based on differential addresses
US20120327260A1 (en) Parallel operation histogramming device and microcomputer
US11775809B2 (en) Image processing apparatus, imaging apparatus, image processing method, non-transitory computer-readable storage medium
JP2001084229A (ja) Simd型プロセッサ
US8386725B2 (en) USB host controller and controlling method for USB host controller
US11704546B2 (en) Operation processing apparatus that calculates addresses of feature planes in layers of a neutral network and operation processing method
JP6319420B2 (ja) 情報処理装置、デジタルカメラおよびプロセッサ
JP6294732B2 (ja) データ転送制御装置及びメモリ内蔵装置
JP2021012596A (ja) 演算処理装置及び演算処理方法
US20100030978A1 (en) Memory controller, memory control method, and image processing device
US12001365B2 (en) Scatter and gather streaming data through a circular FIFO
JP2012098884A (ja) データ処理装置および画像処理装置
JP5196946B2 (ja) 並列処理装置
JP5583563B2 (ja) データ処理装置
JP2003030129A (ja) データバッファ
US20230409323A1 (en) Signal processing apparatus and non-transitory computer-readable storage medium
JPH07210545A (ja) 並列処理プロセッサ
JP5358315B2 (ja) 並列計算装置
JP5393626B2 (ja) 情報処理装置
JP4244619B2 (ja) 画像データ処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171221

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180319

R150 Certificate of patent or registration of utility model

Ref document number: 6319420

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250