JP2007072867A - 画像メモリおよび画像処理システム - Google Patents
画像メモリおよび画像処理システム Download PDFInfo
- Publication number
- JP2007072867A JP2007072867A JP2005260784A JP2005260784A JP2007072867A JP 2007072867 A JP2007072867 A JP 2007072867A JP 2005260784 A JP2005260784 A JP 2005260784A JP 2005260784 A JP2005260784 A JP 2005260784A JP 2007072867 A JP2007072867 A JP 2007072867A
- Authority
- JP
- Japan
- Prior art keywords
- line
- memory
- data
- image data
- 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.)
- Withdrawn
Links
Images
Landscapes
- Image Input (AREA)
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
Abstract
【課題】 画像データに対して空間フィルタリング処理を行う画像処理システムにおいて、フィルタの前段に配置されるメモリ容量を削減しつつ、処理効率低下を防ぐ。
【解決手段】 メインメモリ2に格納された1画面M画素×Nラインの画像データからp画素×qラインの小矩形領域2aに切り出され、ラスタスキャンにてバス幅kビット×s画素のシステムバス3を経由して順次転送されてくる画像データを一旦格納して、フィルタサイズm画素×nラインのフィルタ5Aへ供給する画像メモリ4Aにおいて、ビット幅が画像データ1画素分kのメモリを、システムバス3のバス幅s画素とフィルタ5Aのライン数nの大きい方の数t本備えたメモリ部を設けて、システムバス3の1クロックサイクルで転送されてくる、1ライン上で連続するs画素のデータを別々のラインメモリに書き込み、かつ、各ライン上で水平方向に同じ位置の画素データを別々のラインメモリに書き込む。
【選択図】 図1
【解決手段】 メインメモリ2に格納された1画面M画素×Nラインの画像データからp画素×qラインの小矩形領域2aに切り出され、ラスタスキャンにてバス幅kビット×s画素のシステムバス3を経由して順次転送されてくる画像データを一旦格納して、フィルタサイズm画素×nラインのフィルタ5Aへ供給する画像メモリ4Aにおいて、ビット幅が画像データ1画素分kのメモリを、システムバス3のバス幅s画素とフィルタ5Aのライン数nの大きい方の数t本備えたメモリ部を設けて、システムバス3の1クロックサイクルで転送されてくる、1ライン上で連続するs画素のデータを別々のラインメモリに書き込み、かつ、各ライン上で水平方向に同じ位置の画素データを別々のラインメモリに書き込む。
【選択図】 図1
Description
本発明は、フィルタ処理用の画像データを記憶可能とする画像メモリおよび、この画像メモリが設けられた画像処理システムに関し、特に、システムバス上のメモリに格納された画像データからラスタスキャン方向に矩形領域が切り出されてシステムバスを経由して高速に転送される画像データを一旦保持して、後段のフィルタ回路に画像データを供給するためのバッファメモリとして用いられる画像メモリおよび、この画像メモリおよびフィルタ回路が設けられた画像処理機能モジュールを一または複数備えた画像処理システムに関する。
従来から、CCD用の補間信号処理、この補間信号処理後の拡大・縮小などの画像処理においては、画像データ内に含まれる雑音を除去したり、画像が持つ特徴を抽出したり、画像入出力機器の周波数特性を補償したりするために、各種のフィルタリング処理が行われている。特に、画像データの空間と同じ2次元空間上で処理を行う2次元空間フィルタリング処理が広く行われている。
この空間フィルタリング処理において、フィルタサイズをm画素×nラインとした場合、フィルタ回路の前段にn−1個のラインメモリを設けて、連続するnラインについて、各ライン上の同一位置(縦方向の位置)の画素データを同時にフィルタ回路に入力させる方法が一般的に用いられている。しかしながら、この方法では、FIFOメモリなどのように一般的に高価なラインメモリを用いる必要がある。
これを回避するために、例えば特許文献1には、フィルタ回路の前段に設けられる画像メモリを汎用メモリで実現することができる画像メモリ回路が開示されている。
この従来技術では、水平垂直変換回路を2系統設けることにより、バッファメモリから水平垂直変換回路へのデータの読み出しと、水平垂直変換回路からフィルタ回路への画像データの読み出しが二つの水平垂直変換回路で交互に行われるようにして、信号処理効率の向上が図られている。これについて図14を用いて説明する。
図14は、特許文献1に開示されている従来の画像メモリ回路について説明するための図である。
図14に示すように、従来の画像メモリ回路100では、メインメモリ101に格納されたM画素×Nラインの画像データがラスタスキャンにより1画素分kビットずつ出力される。ラスタスキャンでは、画像データを1行目の左端から右端へスキャンし、1行目の右端までスキャンしたら、その下の2行目の左端から再びスキャンを行う。ラスタスキャンとは、このような行の左から右へ、行の上段から下段へ向かうスキャンを順次行う走査方式である。
そのラスタスキャンで出力されたデータは、シリアルパラレル変換部102によってr画素(≦M)分連結され、w=k×rビット幅のデータとしてwビット幅のバッファメモリ103に順次書き込まれる。空間フィルタ回路105のサイズをm画素×nラインとした場合、このバッファメモリ103のメモリ容量としては、元画像における、フィルタサイズの行サイズに相当するnライン分、即ち(処理したい画像の水平方向画素数(列数)M)×(フィルタサイズのライン数(行数)n)×(1画素のビット数k)の容量が用意されていなければならない。
このバッファメモリ103からデータを読み出して空間フィルタ回路105にデータを供給する際に、連続するフィルタサイズの行数(ライン数)nラインについて各ライン上の同一位置(縦方向の位置)の各画素データが並列でかつ同時に空間フィルタ回路105へ供給されるように、2組の水平垂直変換回路104aおよび104bが設けられている。この水平垂直変換回路104aおよび104bでは、バッファメモリ103からのデータ読み出しを、フィルタサイズのライン数(行数)に相当するn回順次、行うことによってr画素×nライン分のデータが読み出され、水平垂直変換回路104aまたは104bに設けられたフリップフロップに保持される。その後、空間フィルタ回路105の動作クロックに合わせて、各ライン上の同一画素位置のデータのフィルタサイズの行数に相当するnライン分ずつを同時に読み出す動作をm回行うことによって、m画素×nラインのサイズの空間フィルタ回路105によるフィルタリング処理を行うことができる。
昨今は、ディジタルスチルカメラを初めとする画像データを扱う電子情報機器において、小型化および低消費電力化が急速に進行しており、従来のように外部にFIFOを設けるような回路構成は採用されず、全ての回路構成が一つのLSIの内部で実現される傾向にある。よって、空間フィルタ回路105の前段に設けられるバッファメモリ103についても、汎用のRAM、例えばLSI内部では一般的にSRAMによって実現する必要があるため、この特許文献1に記載されている方法は有効である。
また、特許文献2では、画像データなどの大容量データを単一バスにて転送するバス制御方式を有する画像処理システムおよびこれを用いたデジタルスチルカメラ装置について開示されている。その中で、データバスのデータ転送効率を向上させるため、DMAC(Direct Memory Access Controller)に連続データ転送数設定レジスタとリクエスト一時停止手段とを設け、競合制御部にDMA(Direct Memory Access)優先設定レジスタを設けている。これにより、DMACとCPUとにバス使用権の割り当てが可能となり、1系統のシステムバスで全てのデータ転送を効率良く行うことができる。
特開平10−285360号公報
特開2002−24166号公報
上記特許文献1に記載されている従来技術では、バッファメモリ103から例えば水平垂直変換回路104aへのデータ書き込みの場合と、水平垂直変換回路104bからフィルタ回路105へのデータ読み出しの場合との2系統設け、フィルタ回路105へのデータ読み出しを水平垂直変換回路104aおよび104bで交互に行うことにより、処理効率の向上を図っている。
しかしながら、上記特許文献1に記載されている従来技術では、バッファメモリ103のメモリ容量として、(処理したい画像の水平方向画素数(列数)M)×(フィルタサイズのライン数(行数)n)×(1画素のビット数k)に相当するメモリ容量を用意することを前提としている。このため、LSIの内部に大きなメモリを用意する場合は、即、その占有面積の拡大と共にコストアップにつながる。これに加えて、最近のデジタルカメラのような数100万画素の画像処理に対応するためには、上記処理したい画像の水平方向画素数(列数)Mの値が大きくなることに伴い、大きなメモリを必要とすることになるため、更なる占有面積の拡大と共に多大なコストアップとなる。
このメモリ量が増大する場合の対応として、本発明の説明として図1にも示したように、(処理したい画像の水平方向画素数(列数)M)×(フィルタサイズのライン数(行数)n)×(1画素のビット数k)に相当する大きなメモリを各機能モジュールに配置することを回避するため、処理したい画像を、p画素×qラインの小矩形領域に分割して左上の小矩形領域から水平方向に順番に、小矩形領域単位で切り出して各機能モジュールへ転送する方法について考える。このように、小矩形領域に分割された画像単位でフィルタリング処理を実行していく場合に、上記特許文献1に開示されている従来の方法を用いると、各小矩形領域のフィルタ処理を開始する毎に、まず、水平垂直変換回路へのnライン分の読み出しが必要となるため、システムの性能がさらに低下する。
つまり、バッファメモリ103へのデータ書き込みが完了してから、フィルタ回路105で必要となるnライン分の最初のデータの出力が開始されるまで、即ち、バッファメモリ103から一方の水平垂直変換回路104aまたは104bへのデータの読み出しの際に、バッファメモリ103からの読み出しをフィルタサイズの行数(ライン数)に相当するn回分行う必要があり、その分、画像処理システムの性能が低下する。
特許文献2の従来技術は、画像処理システムであるものの、前述したように、画像データなどの大容量データを単一バスによりデータ転送するバス制御方式について開示されているだけである。
特許文献2の従来技術は、画像処理システムであるものの、前述したように、画像データなどの大容量データを単一バスによりデータ転送するバス制御方式について開示されているだけである。
本発明は、上記従来の問題を解決するもので、フィルタ回路の前段に配置されるメモリ容量を削減しつつ、処理効率低下を防ぐことができる画像メモリおよびこの画像メモリを用いた画像処理システムを提供することを目的とする。
本発明の画像メモリは、メインメモリに格納されたM画素×Nライン(M,Nは自然数)の画像データからp画素×qライン(p,qは自然数;p<M,q<N)の複数の矩形領域が切り出し可能とされ、該矩形領域毎のラスタスキャンによりkビット×s画素(k,sは自然数)のバス幅を持つバスを介して転送されてくる該矩形領域の画像データがメモリ部に一旦格納されて、m画素×nライン(m,nは自然数)の画像データに対してフィルタ処理を行うフィルタ回路に読み出し可能とされる画像メモリであって、該メモリ部は、複数のラインメモリを有し、データ書き込み時に、該矩形領域の行方向に少なくとも該バス幅分だけ連続した各画像データが別々の該ラインメモリに格納され、かつ、該矩形領域の列方向に少なくとも該フィルタ回路のライン数分連続した各画像データが別々の該ラインメモリに格納され、データ読み出し時に、別々の該ラインメモリに格納された画像データが、該矩形領域におけるn行分列毎の各画像データに対応した画像データとして読み出されて、直接、該フィルタ回路に供給されており、そのことにより上記目的が達成される。
また、好ましくは、本発明の画像メモリにおける複数のラインメモリは、ビット幅が画像データの1画素分kであるラインメモリを、前記バス幅に含まれる画素数sと前記フィルタ回路のライン数nのうち、大きい方の値のt本としている。
さらに、好ましくは、本発明の画像メモリにおける複数のラインメモリは、ビット幅が画像データの1画素分kであるSRAMを、前記バス幅に含まれる画素数sと前記フィルタ回路のライン数nのうち、大きい方の値のt本としている。
さらに、好ましくは、本発明の画像メモリにおけるメモリ部は、前記バスから転送されてくる前記矩形領域の1ラインp画素分の画像データと、前記フィルタ回路の水平方向のサイズmに応じたm−1画素分の画像データとの合計であるp+m−1画素分のデータを格納可能で、かつ該メモリ部の本数tの整数倍gであるエリアを1ライン分のエリアとし、該1ライン分のエリアを該矩形領域のライン数qだけ有している。
さらに、好ましくは、本発明の画像メモリにおいて、前記ラインメモリにおける前記矩形領域の1ライン分のデータ格納用エリアは、該矩形領域の1ライン分の画素数pとm−1を加えたデータ量で、かつ、該ラインメモリの同一アドレスが全て埋まる量となり、かつ下記式
p+m−1≦t×g (但し、gは2以上の整数)
を満たすように決定されている。
p+m−1≦t×g (但し、gは2以上の整数)
を満たすように決定されている。
さらに、好ましくは、本発明の画像メモリにおいて、前記メモリ部への画像データの書き込み動作を制御する書き込み制御部と、該メモリ部から前記フィルタ回路への画像データの読み出し動作を制御する読み出し制御部とを有する。
さらに、好ましくは、本発明の画像メモリにおいて、前記バスの一クロックサイクルにより転送されてくる、前記矩形領域の一ライン上で連続するs画素の画像データのそれぞれを前記t本の各ラインメモリにそれぞれ書き込み、かつ、少なくとも前記フィルタ回路のライン数nの数だけ連続する該矩形領域の各ライン上で水平方向に同じ位置に相当する画素データを該t本の各ラインメモリに別々に書き込む書き込み制御部と、該t本の各ラインメモリに書き込まれている、該矩形領域のnライン分の各ライン上で水平方向に同じ位置に相当する各画素データを並列に読み出す読み出し制御部とを有する。
さらに、好ましくは、本発明の画像メモリにおける書き込み制御部は、前記バスから転送されてくる画像データの1ライン目の1画素目、2画素目、3画素目、・・・、p画素目が、1本目のラインメモリのワードアドレス0、2本目のラインメモリのワードアドレス0、3本目のラインメモリのワードアドレス0、・・・、t本目のラインメモリのワードアドレス0、1本目のラインメモリのワードアドレス1、2本目のラインメモリのワードアドレス1、・・・の順に各ラインメモリのアドレスの先頭から格納されるように前記メモリ部に対して書き込みアドレスを供給する。
さらに、好ましくは、本発明の画像メモリにおける書き込み制御部は、前記矩形領域の1ラインp画素分の画像データを前記t本のラインメモリに振り分けて格納する場合に、1本のラインメモリ当たりに必要とされるワード数をu、隣接する矩形領域の各ライン上のm−1画素分のデータを格納するために1本のラインメモリ当たりに必要とされるワード数をv、g=u+vとして、前記バスから転送されてくる画像データの2ライン目の1画素目、2画素目、3画素目、・・・、p画素目が、2本目のラインメモリのワードアドレスg、3本目のメモリのワードアドレスg、・・・、t本目のラインメモリのワードアドレスg、1本目のメモリのワードアドレスg、2本目のラインメモリのワードアドレスg+1、3本目のメモリのワードアドレスg+1・・・の順に各ラインメモリのアドレスg番地から格納されるように前記メモリ部に対して書き込みアドレスを供給する。
さらに、好ましくは、本発明の画像メモリにおける書き込み制御部は、前記矩形領域の1ラインp画素分の画像データを前記t本の各ラインメモリに振り分けて格納する場合に、1本のラインメモリ当たりに必要とされるワード数をu、隣接する矩形領域の各ライン上のm−1画素分のデータを格納するために1本のラインメモリ当たりに必要とされるワード数をv、g=u+vとして、前記バスから転送されてくる画像データのaライン目の1画素目、2画素目、3画素目、・・・、p画素目が、a本目のラインメモリ(RAM)のワードアドレス(a−1)×g、a+1本目のラインメモリのワードアドレス(a−1)×g、・・・、t本目のラインメモリのワードアドレス(a−1)×g、1本目のラインメモリのワードアドレス(a−1)×g、2本目のラインメモリのワードアドレス(a−1)×g、・・・、a本目のラインメモリのワードアドレス(a−1)×g+1、a+1本目のラインメモリのワードアドレス(a−1)×g+1、・・・の順に各ラインメモリのアドレス(a−1)×g番地から格納されるように前記メモリ部に対して書き込みアドレスを供給する。
さらに、好ましくは、本発明の画像メモリにおける書き込み制御部は、前記矩形領域の各ラインの画像データを格納する際に、前記メモリ部の各ライン用エリアにおいて、直前の前記矩形領域における同ラインの最後のデータに引き続くデータとして格納されるように、書き込みアドレスを生成する。
さらに、好ましくは、本発明の画像メモリにおける書き込み制御部は、前記バスのクロック毎にカウントアップ動作を行い、その出力がt本の前記ラインメモリのアドレス信号として用いられる第1カウンタと、該第1カウンタのカウント値が供給されて、前記矩形領域の1ラインの画素数pがt本の各ラインメモリに書き込み完了することを検出するラインエンド比較器と、該ラインエンド比較器からの出力がイネーブル端子に供給されて値が1つカウントアップされる第2カウンタと、該第2カウンタのカウント値が選択信号として供給され、該バスを介して供給される前記s画素分の入力画像データを該選択信号によって切り替えて該t本の各ラインメモリに供給する入力データマルチプレクサとを有する。
さらに、好ましくは、本発明の画像メモリにおける読み出し制御部は、前記矩形領域の1ラインp画素分の画像データをt本の前記ラインメモリに振り分けて格納する場合に1本のラインメモリ当たりに必要とされるワード数をu、隣接する該矩形領域の各ライン上のm−1画素分の画像データを格納するために1本のラインメモリ当たりに必要とされるワード数をv、g=u+vとして、0ライン目からn−1ライン目のnライン分の画像データを読み出す場合に、nライン分の各ラインの先頭画素の画像データが、1本目のラインメモリのワードアドレス0、2本目のラインメモリのワードアドレスg、3本目のラインメモリのワードアドレス2×g、・・・、n本目のラインメモリのワードアドレス(n−1)×gから同時に読み出されるように前記メモリ部に対して読み出しアドレスを供給する。
さらに、好ましくは、本発明の画像メモリにおける読み出し制御部は、前記矩形領域の1ラインp画素分の画像データをt本の前記ラインメモリに振り分けて格納する場合に1本のラインメモリ当たりに必要とされるワード数をu、隣接する該矩形領域の各ライン上のm−1画素分の画像データを格納するために1本のラインメモリ当たりに必要とされるワード数をv、g=u+vとして、0ライン目からn−1ライン目のnライン分の画像データを読み出す場合に、nライン分の各ラインの2番目の画素の画像データが、2本目のラインメモリのワードアドレス0、3本目のラインメモリのワードアドレスg、4本目のラインメモリのワードアドレス2×g、・・・から同時に読み出されるように前記メモリ部に対して読み出しアドレスを供給する。
さらに、好ましくは、本発明の画像メモリにおける読み出し制御部は、前記矩形領域の1ラインp画素分の画像データをt本の前記ラインメモリに振り分けて格納する場合に1本のラインメモリ当たりに必要とされるワード数をu、隣接する該矩形領域の各ライン上のm−1画素分の画像データを格納するために1本のラインメモリ当たりに必要とされるワード数をv、g=u+vとして、0ライン目からn−1ライン目のnライン分の画像データを読み出す場合に、nライン分の各ラインのb番目の画素データが、b本目のラインメモリのワードアドレス0、b+1本目のラインメモリのワードアドレスg、b+2本目のラインメモリのワードアドレス2×g、・・・から同時に読み出されるように前記メモリ部に対して読み出しアドレスを供給する。
さらに、好ましくは、本発明の画像メモリにおける読み出し制御部は、前記矩形領域のnライン分の画像データを読み出す際に、直前の矩形領域における各ラインの最終データの位置からm−1画素分遡った位置から読み出されるように、読み出しアドレスを生成する。
さらに、好ましくは、本発明の画像メモリにおける読み出し制御部は、直前のラインを処理したときの初期値に、前記矩形領域の1ラインp画素分の画像データをt本の前記ラインメモリに振り分けて格納する場合に、1本のラインメモリ当たりに必要とされるワード数をu、隣接する該矩形領域の各ライン上のm−1画素分のデータを格納するために1本のラインメモリ当たりに必要とされるワード数をvとして、前記フィルタ回路の処理クロック毎に1ずつカウントアップ動作を行い、t回カウントされる毎にCARRY信号を出力し、該矩形領域の1ライン分に相当するp回カウントされる毎にカウンタの初期値として直前のラインを処理したときの初期値に1を加えた数値(数字)が設定される下位カウンタと、該下位カウンタからのCARRY信号がイネーブル端子へ供給されて値が1つカウントアップされ、該矩形領域の1ライン分に相当するp画素が読み出される毎に、g=u+vを加算した値を初期値としてカウントアップが行われる上位カウンタと、該上位カウンタの値にgを順に加算していくt−1個の加算器と、該下位カウンタのカウンタ値が選択信号として供給され、該上位カウンタのカウンタ値と該加算器による加算値を該選択信号によって切り替えてt本の該ラインメモリにアドレスとして供給するアドレスマルチプレクサと、該下位カウンタのカウンタ値が該選択信号として供給され、該t本のラインメモリからの出力データを該選択信号によって切り替えて該フィルタ回路に供給する出力データマルチプレクサとを有する。
さらに、好ましくは、本発明の画像メモリにおいて、前記バスを介して転送されてくる前記矩形領域の最初のn−1ライン分の画像データが、前の行で同じ列の該矩形領域における最後のn−1ライン分の画像データと同じである。
本発明の画像処理システムは、本発明の上記画像メモリと、該画像メモリから画像データが供給されてフィルタリング処理を行うフィルタ回路とを有する画像処理機能モジュールを一または複数備えており、そのことにより上記目的が達成される。
上記構成により、以下に、本発明の作用について説明する。
本発明にあっては、画像メモリ(バッファメモリ)に、図3に示すように、ビット幅が画像データの1画素分kであるラインメモリ(例えばSRAM)を、システムバスのバス幅に含まれる画素数s以上かつフィルタ回路のライン数n以上、例えばsとnの大きい方の数t本だけ設ける。この画像メモリに画像データを格納するときには、システムバスの一つのクロックサイクルにて転送されてくる、一つのライン上で連続するs画素のデータの各々をt本のラインメモリの別々のものに書き込み、かつ、少なくともフィルタ回路のライン数n以上の数だけ連続する各ライン上で水平方向に同じ位置に相当する画素データ(同列のデータ)をt本のラインメモリの別々のものに書き込む。即ち、小矩形領域に分割された画像データにおいて各行のデータ群のそれぞれを別々のラインメモリに書き込み、かつ、小矩形領域に分割された画像データにおける同列のデータ群がそれぞれ別々のラインメモリに書き込まれるようにデータを格納する。
このことにより、画像メモリから画像データを読み出してフィルタに供給する際には、nライン分の各ライン上で水平方向に同じ位置の画素データ(n行分の同列データ)を各画像メモリから同時に並列に読み出すことが可能となる。
よって、フィルタ処理に必要なライン数の画素データ(n行分の同列データ)を、従来のように水平垂直変換回路等を介さずに画像処理クロックのクロック毎にバッファメモリ部から直接読み出しを行うことが可能になる。
以上により、本発明によれば、処理したい画像データを小矩形領域に分割し、バッファメモリ部において、小矩形領域の各行方向のデータ群がそれぞれ別々のラインメモリに書き込まれ、かつ、小矩形領域の各列方向のデータ群について、それぞれが別々のラインメモリに書き込まれるように格納する。このため、画像メモリから画像データを読み出してフィルタ回路部に供給する際には、nライン分の各ライン上で水平方向に同じ位置(左端から何番目)の画素データ(小矩形領域のn行分の同列データ)を各メモリから並列に読み出すことができる。
これによって、フィルタ処理に必要なライン数の画素データを、従来のように水平垂直変換回路などを介さずに画像処理クロックのクロック毎にバッファメモリ部から直接読み出しを行うことができる。このため、従来技術のように必要なライン数分のデータを一旦フリップフロップへ読み出すという前処理によるオーバーヘッドなしに、システムバスからバッファメモリ部へのデータ転送が終了すれば、すぐに後段のフィルタ回路部へのデータ供給を開始できる。処理したい画像データを小矩形領域に分割したことにより、フィルタ処理の前段に配置するメモリ容量を削減しつつ、バッファメモリ部から直接フィルタ回路部へデータ読み出しを行うことにより、処理のオーバーヘッドを最小限に抑えることができる。
本発明の画像メモリの実施形態を用いた画像処理システムについて図面を参照しながら説明する。
図1は、本発明の実施形態に係る画像メモリを用いた画像処理システムの要部構成例を示すブロック図である。
図1において、本実施形態の画像処理システム1は、図2に示すようなM画素×Nラインの1画面分の画像データが格納されたメインメモリ2と、1画素分kビット×s画素(k,sは自然数)のバス幅を持つシステムバス3と、このシステムバス3を介してメインメモリ2と接続され、フィルタ処理用の画像データを一時記憶するメモリ部としてのバッファメモリ4Aおよび、m画素×nライン(m,nは自然数)の画像データに対して空間フィルタリング処理(フィルタ処理)を行うフィルタ5A(フィルタ回路)を持つ機能モジュールAと、これとフィルタ機能の異なるフィルタ5Bおよびフィルタ処理用のバッファメモリ4Bを持つ機能モジュールBと、これとフィルタ機能の異なるフィルタ5Cおよびフィルタ処理用のバッファメモリ4Cを持つ機能モジュールCと、これとフィルタ機能の異なるフィルタ5Dおよびフィルタ処理用のバッファメモリ4Dを持つ機能モジュールDと、これとフィルタ機能の異なるフィルタ5Eおよびフィルタ処理用のバッファメモリ4Eを持つ機能モジュールEとを備えている。
このように、各機能モジュールA〜Eにはそれぞれ、各種の空間フィルタリング処理(フィルタ処理)を行うためのフィルタ5A〜5Eがそれぞれ設けられており、その前段に、システムバス3から転送されてくるデータを一旦格納してフィルタ5A〜5Eに供給するためのメモリ部としてのバッファメモリ4A〜4Eがそれぞれ設けられている。このフィルタ処理としては、色補間処理(拡大/縮小処理を含む)や、輝度値を平均化して画像を滑らかにする画像平均化処理、画像エッジ強調処理および90度回転処理など、所定数の画素値(画像データ)を使って新しい画素値(画像データ)を得るための画像処理である。なお、このバッファメモリおよびその制御部が設けられた画像メモリについては、図4を用いて詳細に後述する。
メインメモリ2には、1画面分がM画素×Nラインである画像データが格納されている。各種画像処理を実行する際には、各機能モジュールA〜Eから時分割でシステムバス3にアクセスが行われる。M画素×Nラインの1画面分の画像データから複数のp画素×qライン(p,qは自然数;p<M,q<N)の小矩形領域2aが順次切り出され、その小矩形領域2a毎にラスタスキャンによりkビット×s画素のバス幅を持つシステムバス3を経由して順次転送されてくるた画像データが、各機能モジュールA〜Eのバッファメモリ4A〜4Eの少なくともいずれかのメモリ部に一旦格納され、画像データが格納されたメモリ部から、フィルタサイズm画素×nラインの各フィルタ5A〜5Eの少なくともいずれかに読み出されて供給されるようになっている。
本実施形態の画像処理システム1は、メインメモリ2のM画素×Nラインの画像データを、p画素×qラインの矩形領域2aに分割し、システムバス3を介して、この矩形領域2aの横方向(水平方向)に少なくともバス幅に含まれる画素数分だけ連続した各データを別々のラインメモリからなるバッファメモリ4Aに格納し、かつ、この矩形領域2aの縦方向(列方向)に少なくともフィルタ5Aのライン数分だけ連続した各データを別々のラインメモリからなるバッファメモリ4Aに格納し、バッファメモリ4Aに書き込まれたデータを、ラインメモリ群から、矩形領域2aにおけるn行分列毎に読み出し、直接、m列×n行のフィルタ5Aに供給することを特徴構成としている。
上記構成により、メインメモリ2に格納されたM画素×Nラインの1画面分の画像データから、p画素×qラインの小矩形領域2aが順次切り出される。この各小矩形領域2aは、ラスタスキャンによりkビット×s画素の幅を持つシステムバス3を経由して機能モジュールA〜Eのバッファメモリ4A〜4Eのうちの一つ、例えばバッファメモリ4Aにデータが転送されてフィルタ処理のために一旦格納される。その後、バッファメモリ4Aからデータが読み出され、m画素×nラインのフィルタ5Aへ順次データが供給されて、所定の空間フィルタリング処理による画像処理が行われる。
このような画像処理システム1において、システムバス3からバッファメモリ4Aへの画像データの転送はこのシステムバス幅で行い、バッファメモリ4Aからフィルタ5Aへのデータ供給は、システムバス3からバッファメモリ4Aへのデータ転送終了後、余分な待ち時間なしにすぐにデータ供給を開始することができる。
この機能モジュールA内のメモリ部としてのバッファメモリ4Aの構成について詳細に説明する。
図3に示すように、バッファメモリ4A(メモリ部)に、ビット幅が画像データの1画素のビット数kであるラインメモリ(例えばSRAM)を、システムバス3のバス幅に含まれる画素数s以上でかつフィルタ5Aのライン数n以上、例えばsとnの大きい方の数t本だけ設ける。
このバッファメモリ4Aなどのメモリ部に画像データを格納するときには、システムバス3の一クロックサイクルにて転送されてくる、一つのライン上で連続するs画素のデータの各々をt本のラインメモリの別々のものに書き込み、かつ、少なくともフィルタ回路のライン数n以上の数だけ連続する各ライン上で水平方向に同じ位置(縦方向の位置)に相当する画素データをt本のラインメモリの別々のものに書き込む。
例えば、小矩形領域2aの1ライン上で連続する画素群が別々のラインメモリに書き込まれるように、このバッファメモリ4Aなどのメモリ部に画像データを格納するときに、システムバス3から転送されてくる画像データの1ライン目の1画素目、2画素目、3画素目、・・・、p画素目を、順に、図3に示す1本目のメモリNo,1のワードアドレス0、2本目のメモリNo.2のワードアドレス0、3本目のメモリNo.3のワードアドレス0、・・・t本目のメモリNo.tのワードアドレス0、1本目のメモリNo.1のワードアドレス1、2本目のメモリNo..2のワードアドレス1、・・・の順に各メモリのアドレスの先頭から縦方向(列方向)に順次格納していく。
ここで、フィルタ5Aの前段に設けられるバッファメモリ4Aなどのメモリ部に必要とされるメモリ容量について説明する。
メインメモリ2の画像データ群をいくつかの小矩形領域2aに分割してフィルタリング処理を行う際に、一つの小矩形領域2aの処理後に、水平方向にその小矩形領域2aに隣接する例えば右側の小矩形領域2aを処理する場合、フィルタ処理後の出力を連続的に得るためには、水平方向のフィルタサイズmに対して、フィルタ処理のために、水平方向にm−1画素分だけ、一つ前の小矩形領域2aのデータを必要とする。このため、フィルタ5Aの前段に配置されるメモリ部としては、次の小矩形領域2aの処理時に必要とされる、前の小矩形領域2aの各ラインの最後のm−1画素分に加えて、次の小矩形領域2a分のデータを格納可能な容量を用意する必要がある。
このため、図3に示すように、転送されてくる小矩形領域2aの1ライン分p画素のデータを格納した後ろに、フィルタ5Aの水平方向のサイズmに応じたm−1画素分のデータを格納可能な領域を設けることが好ましい。転送されてくる1ライン分のデータp画素分とフィルタ5Aの水平方向のサイズmに応じたm−1画素分の合計であるp+m−1画素分のデータを格納可能で、メモリ部の本数tの整数倍gであるエリアを小矩形領域2aの1ライン分のエリアとして、この1ライン分のエリアを小矩形領域2aのライン数qだけ設けることが好ましい。
以下、図3に示すバッファメモリ4A(SRAM)へのアクセスについて、y番目(y=1,2,3,・・・tのSRAMのワードアドレスz(z=0,1,2,・・・)へのアクセスをSRAM(z,y)へのアクセスとして説明する。また、図2に示す1画面Nライン×M画素の画像データにおける水平方向i画素目(i=1,2,3,…)、垂直方向j画素目(j=1,2,3,…)をD(i,j)とする。
図2に示すqライン×p画素の小矩形領域2aにおける1ライン目のデータD(1,1)、D(2、1)、・・・、D(p,1)は、図3に示すように、SRAM(0,1),SRAM(0,2),・・・,SRAM(0,t),SRAM(1,1),SRAM(1,2)・・・の順に縦方向に書き込まれる。
ここで、小矩形領域2aの1ライン分のデータ格納用エリアは、小矩形領域2aの1ライン画素数pとm−1を加えたデータ量以上で、かつ、各SRAMの同一アドレスが全て埋まる量となるように決定される。よって、下記式
p+m−1≦t×g (但し、gは整数)
を満たすように、図3に示すt×gの各ライン用エリアが確保される。なお、上記式において、tはバッファメモリ4Aとして用意されるkビット幅のラインメモリの本数であり、システムバス幅に含まれる画素数sとフィルタ5Aのライン数nのいずれか大きい方の値である。また、uは小矩形領域2aの1ライン分p画素をt本のラインメモリへ振り分けて格納する場合に1本のメモリ当たりで必要となるワード数である。さらに、vは隣接する小矩形領域2aにおける各ラインのm−1画素分のデータを格納するために1本のメモリ当たりで必要となるワード数であり、m−1をtで除して小数点以下を繰り上げた値とする。さらに、g=u+vである。
p+m−1≦t×g (但し、gは整数)
を満たすように、図3に示すt×gの各ライン用エリアが確保される。なお、上記式において、tはバッファメモリ4Aとして用意されるkビット幅のラインメモリの本数であり、システムバス幅に含まれる画素数sとフィルタ5Aのライン数nのいずれか大きい方の値である。また、uは小矩形領域2aの1ライン分p画素をt本のラインメモリへ振り分けて格納する場合に1本のメモリ当たりで必要となるワード数である。さらに、vは隣接する小矩形領域2aにおける各ラインのm−1画素分のデータを格納するために1本のメモリ当たりで必要となるワード数であり、m−1をtで除して小数点以下を繰り上げた値とする。さらに、g=u+vである。
以上のようにして小矩形領域2aの1ライン分のデータが格納されると、次のラインデータは各メモリのアドレスg番地から順に書き込まれる。このとき、図2に示す2ライン目の最初(1画素目)のデータD(1,2)の書き込みは、1本目のSRAMNo.1ではなく、1本分下方にずらして、2本目のSRAMNo.2から始め、図3に示すように、SRAM(g,2),SRAM(g,3),・・・,SRAM(g,t),SRAM(g,1),SRAM(g+1,2),SRAM(g+1,3),・・・の順に書き込みが進められる。
以降、同様の手順で、メインメモリ2からシステムバス3を介して転送されてくる小矩形領域2aのデータが全てメモリ部(バッファメモリ4A)に格納される。例えば、システムバス3から転送されてくる画像データのaライン目の1画素目、2画素目、3画素目、・・・、p画素目は、SRAM((a−1)×g、a)、((a−1)×g、a+1)、・・・、((a−1)×g、t)、((a−1)×g、1)、((a−1)×g、2)、・・・、((a−1)×g+1、a)、((a−1)×g+1、a+1)、・・・の順に各メモリのアドレス(a−1)×g番地から書き込まれる。
以上のような書き込み処理により、メモリ部(例えばバッファメモリ4A)には、小矩形領域2a毎の各ラインの先頭から各ライン上で水平方向に同じ位置(小矩形領域2aの縦方向の位置)の画像データが別々のラインメモリに格納される。即ち、以上の書き込み処理により、バッファメモリ4Aには、小矩形領域2aの各行方向に連続したデータ群について、先頭(左端)のデータからそれぞれが別々のラインメモリに書き込まれ、かつ、小矩形領域2aの各列方向に連続したデータ群について、それぞれが別々のラインメモリに書き込まれるように格納される。
このため、バッファメモリ4A(メモリ部)からデータを読み出してフィルタ5Aに供給する際には、nライン分の各ライン上で水平方向に同じ位置(小矩形領域2aの縦方向の位置)の画素データを各メモリから並列に読み出すことができる。
例えば、0ライン目からn−1ライン目のnライン分のデータを読み出す場合には、nライン分の各ラインの先頭画素が、SRAM(0,1),SRAM(g,2),SRAM(2×g,3),・・・、SRAM((n−1)×g,n)から同時に読み出されてフィルタ5Aに供給される。また、各ラインの2番目の画素は、SRAM(0,2),SRAM(g,3),SRAM(2×g、4)、・・・のように先頭画素からメモリの番号を一つ進めてアドレッシングが行われてnライン分が同時に並列に読出され、フィルタ5Aに供給される。
以降、同様の手順でSRAMの番号を一ずつずらしながら読み出しが行われる。各ラインのデータが格納されているエリアにおいて、SRAMの同一アドレスが一巡すると、SRAMのアドレスが一つ進められる。例えば、各ラインのb番目の画素は、SRAM(0,b)、SRAM(g,b+1),SRAM(2×g、b+2)、・・・のように先頭画素からメモリの番号をb−1進めてアドレッシングが行われてフィルタサイズのnライン分が同時に読出されて、フィルタ5Aに供給される。
このようにして、0ライン目からn−1ライン目までのnライン分のデータが読み出され、転送された小矩形領域2aの最初のnラインの最終画素までフィルタリング処理が終了すると、次に、1ライン目からnライン目までのnライン分のデータが順次並列に小矩形領域2aの各ラインの先頭から読み出される。
この際には、SRAMの読み出し開始アドレスがgだけ進められ、また、読み出しが開始されるメモリ番号は一つ前のラインの処理開始時におけるメモリ番号の次の番号に設定される。例えば、1ライン目からnライン目のnライン分のデータを読み出す場合に、nライン分の各ラインの先頭画素は、SRAM(g、2)、SRAM(2×g,3)、・・・から同時に読み出されてフィルタ5Aに供給される。
以降、同様の手順でSRAMの番号を1ずつずらしながら読み出しが行われる。このようにして1ライン目からnライン目までのnライン分データが最終画素まで読み出され、フィルタリング処理が行われる。なお、読み出しが開始されるメモリ番号がtまで進むと、その次の小矩形領域2aには再び1から開始されるものとする。
同様に、処理が進められ、最終的にq−nラインからq−1ラインまでのnライン分データが読み出されると、一つ目の小矩形領域2aのフィルタリング処理を行うためのデータの読出しが終了する。
このバッファメモリ4Aなどのメモリ部には、引き続いて、次の小矩形領域2aの処理を行うためにシステムバス3を経由してデータが転送されてくる。この際、各ラインのデータは、図3に示すように、各ラインのデータを格納するために用意されたエリアに格納されるが、直前の小矩形領域2aにおける同ラインの最後のデータに引き続くデータとして、上記と同様の手順により格納される。このとき、各ライン用に割り当てられたエリアの最後まで到達した場合には、再び各ライン用に割り当てられたエリアの先頭から書き込みが行われる。これにより、直前の小矩形領域2aにおける同ラインのデータは、現在書き込み中の小矩形領域2aにおける同ラインのデータに書き換えられる。
ここで、上述した通り、各ライン用エリアは、次の小矩形領域2aのフィルタ処理に必要とされる、水平方向に隣接する直前の小矩形領域2aに含まれる画素数m−1の画素分だけ余分に確保されているため、小矩形領域2aのフィルタ処理に必要なデータは書き換えられずにメモリに保持されている。
2番目の小矩形領域2aのデータ転送が終了すると、フィルタ5Aへそのデータを供給するためにデータの読み出しが行われる。この際、上記と同様の手順によりnライン分のデータが並列に読み出されるが、直前の小矩形領域2aにおける各ラインの最終データの位置からm−1画素分遡った位置から読み出しが開始される。以上の動作を継続することにより、1行目の小矩形領域2aについてのデータ転送およびフィルタ処理が完了する。
2行目以降の小矩形領域2aのデータ転送およびフィルタ処理についても、同様の手順により行われる。但し、各行(「行」とは「水平方向に並んだ小矩形領域2a群」)の小矩形領域2aの最後のn−1ライン分は、次の行の小矩形領域の処理にも用いられるため、システムバス3から転送されてくる小矩形領域2aの最初のn−1ライン分は、前の行の各小矩形領域2aの最後のn−1ラインと同じデータとされる。
以上のようにして、最終行の小矩形領域2aにおける最後の小矩形領域2aまで、転送およびフィルタ処理を完了する。
以下に、本発明の画像処理システム1の特徴構成について、より具体的に説明する。
本実施形態の具体例では、例えば1画素分のデータをk=8ビット、システムバス3の幅をkビット×s画素=8ビット×4画素=32ビットとする。また、矩形領域2aのサイズをp画素×qライン=16画素×16ラインとし、フィルタサイズをm画素×nライン=3画素×3ラインとして更に説明する。
図1のメインメモリ2内には、図2に示すように、M画素×Nラインの画像データが格納されている。図1に示すようにラスタ方向にスキャンされながら、32bit(4画素)幅のシステムバス3を経由して、例えば機能モジュールAに画像データが転送される。このとき、一度のバスサイクル(バスクロック)で、バス幅に相当する4画素分のデータが転送される。転送された4画素分のデータは、一旦、バッファメモリ4Aに格納され、その後、フィルタ5Aの処理クロックで読み出されて所定のフィルタ処理が行われる。
図4は、図1の画像処理システム1における機能モジュールA内のバッファメモリ4Aおよびその制御部の構成例を示すブロック図である。
図4において、図1の機能モジュールAは、クロックセレクタ11、アドレスセレクタ12およびメモリ部としてのバッファメモリ4Aを有したバッファメモリ周辺回路10と、バッファメモリ4Aへのデータ書き込みを制御する書き込み制御部20と、バッファメモリ4Aからフィルタ5Aへのデータ読み出しを制御する読み出し制御部30と、読み出し制御部30で読み出されたデータが入力されるフィルタ5Aとを備えている。これらのバッファメモリ周辺回路10、書き込み制御部20および読み出し制御部30により画像メモリ(画像メモリ装置)が構成されている。
上記構成により、システムバス3から送られてくる画像データSYSBUSD(31〜0)は、書き込み制御部20の制御によって、システムバスクロックSYSCLKのタイミングでバッファメモリ4Aに書き込まれる。
このとき、バッファメモリ周辺回路10内でバッファメモリ4Aへのアドレスを選択するアドレスセレクタ12は、セレクト信号MSELによって、書き込み制御部20からの書き込みアドレスMEM1INADR〜MEM4INADR側が選択される。また、バッファメモリ周辺回路10内でバッファメモリ4Aへのクロックを選択するクロックセレクタ11は、セレクト信号MSELによってシステムバスクロックSYSCLK側が選択される。
一つの矩形領域2aのデータ書き込みが完了すると、引き続いて、読み出し制御部30の制御によって、画像処理クロックPIXCLKのタイミングで、フィルタリング処理に適した順序でバッファメモリ4Aから画像データが読み出され、後段のフィルタ5Aに画像データが供給される。
このとき、バッファメモリ周辺回路10内でバッファメモリ4Aへのアドレスを選択するアドレスセレクタ12は、セレクト信号MSELによって、読み出し制御部30からの読み出しアドレスMEM1OUTADR〜MEM4OUTADR側が選択される。また、バッファメモリ周辺回路10内でバッファメモリ4Aへのクロックを選択するクロックセレクタ11は、セレクト信号MSELによって画像処理クロックPIXCLK側が選択される。
ここで、本実施形態の具体例で必要とされるバッファメモリ4Aのメモリ容量について説明する。
図5は、図4の書き込み後のバッファメモリ4Aの具体的構成例を示す図である。
図5において、バッファメモリ4Aは、ビット幅が画像データの1画素分k=8であるSRAMを、システムバス3のバス幅に含まれる画素数s=4とフィルタ5Aのライン数n=3のうち、大きい方の数であるs=t=4本だけ備えている。ラスタスキャンにより転送されてくる矩形領域2aの1ライン分のデータである16画素が4本のラインメモリ41〜44に分けて格納される。1ライン分のエリアとしては、1本のラインメモリ当たり(16画素)÷(4本(ラインメモリ41〜44の数))=4画素分が必要であるが、フィルタサイズの横方向がm=3画素であることから、1ライン分としてm-1=3−1=2画素分が余分に必要とされる。その2画素分が4本のラインメモリ41〜44に格納されるため、1本のラインメモリとしては、1画素分を余分に確保して合計(4画素)+(余分の1画素)=5画素分を確保する。さらに、小矩形領域2aのライン数はq=16ラインであるため、上記1ライン分の領域を16個用意する。よって、図5に示すように、8ビット幅で(5×16)ワードのラインメモリNo.1〜No.4の4本を用意することになる。
図6は、図4に示すバッファメモリ周辺回路の一構成例を示す回路図である。
図6において、バッファメモリ周辺回路10Aは、図5に示す4本のラインメモリ41〜44(ここではSRAMメモリ41〜44とする)と、各SRAMメモリ41〜44に供給されるアドレスを選択するための図4に示すアドレスセレクタ12であるアドレスセレクタ121〜124と、各SRAMメモリ41〜44に供給されるクロックを選択するための図4に示すクロックセレクタ11とを有している。
データ書き込み時には、SRAMメモリ41では、書き込み制御部20の制御によって、画像データMEM1DINが、システムバスクロックSYSCLKのタイミングで、アドレスMEM1INADRに書き込まれる。また、SRAMメモリ42では、書き込み制御部20の制御によって、画像データMEM2DINが、システムバスクロックSYSCLKのタイミングで、アドレスMEM2INADRに書き込まれる。さらに、SRAMメモリ43では、書き込み制御部20の制御によって、画像データMEM3DINが、システムバスクロックSYSCLKのタイミングで、アドレスMEM3INADRに書き込まれる。また、SRAMメモリ44では、書き込み制御部20の制御によって、画像データMEM4DINが、システムバスクロックSYSCLKのタイミングで、アドレスMEM4INADRに書き込まれる。
データ読み出し時には、SRAMメモリ41では、読み出し制御部30の制御によって、画像処理クロックPIXCLKのタイミングで、アドレスMEM1OUTADRから画像データMEM1DOUTが読み出される。また、SRAMメモリ42では、読み出し制御部30の制御によって、画像処理クロックPIXCLKのタイミングで、アドレスMEM2OUTADRから画像データMEM2DOUTが読み出される。さらに、SRAMメモリ43では、読み出し制御部30の制御によって、画像処理クロックPIXCLKのタイミングで、アドレスMEM3OUTADRから画像データMEM3DOUTが読み出される。さらに、SRAMメモリ44では、読み出し制御部30の制御によって、画像処理クロックPIXCLKのタイミングで、アドレスMEM4OUTADRから画像データMEM4DOUTが読み出される。
図7は、図4の書き込み制御部20の回路構成例を示す回路図、図8は、図7の入力データマルチプレクサの論理を示す図、図9は、図7の回路構成を用いたデータ書き込み時の動作タイミングを示すタイミング図である。
図7において、書き込み制御部20は、第1カウンタ21と、ラインエンド比較器22と、第2カウンタ23と、入力データマルチプレクサ24とを有している。
第1カウンタ21は、図9に示すように、システムクロックSYSCLK毎にカウントアップ動作を行い、その出力は各SRAMメモリ41〜44のアドレス信号MEM1INADR〜MEM4INADRとして使用される。また、第1カウンタ21からの出力は、小矩形領域2aの1ライン分の画素データが各SRAMメモリ41〜44に書き込み完了したことを検出するラインエンド比較器22にも供給される。
本実施形態では、1ラインp=16画素のデータがt=4本のSRAMメモリ41〜44へ振り分けられて格納されるため、16/4=4カウントで小矩形領域2aの1ライン分がSRAMメモリ41〜44に格納される。よって、図9に示すように、「0」からスタートしたカウンタ値が「3」になったときにラインエンド比較器22の出力LENDがハイレベルになり、第2カウンタ23のイネーブル端子ENBに入力されて、第2カウンタ23が一つカウントアップする。
これにより、第2カウンタ23のカウント値からの出力が選択信号SELとして入力データマルチプレクサ24に入力され、図8に示すように入力データマルチプレクサ24の選択状況が切り替わる。
入力データマルチプレクサ24では、図8および図9に示すように、選択信号SELが「0」のときに、システムバス3から送られてくる画像データSYSBUSD(31〜0)のうちのSYSBUSD(31〜24)であるデータAがAoutからSRAMメモリ41に供給される画像データMEM1DINとして出力され、SYSBUSD(23〜16)であるデータBがBoutからSRAMメモリ42に供給される画像データMEM2DINとして出力され、SYSBUSD(15〜8)であるデータCがCoutからSRAMメモリ43に供給される画像データMEM3DINとして出力され、SYSBUSD(7〜0)であるデータDがDoutからSRAMメモリ44に供給される画像データMEM4DINとして出力される。
選択信号SELが「1」のときには、システムバス3から送られてくる画像データSYSBUSD(31〜0)のうちのSYSBUSD(7〜0)であるデータDがAoutからSRAMメモリ41に供給される画像データMEM1DINとして出力され、SYSBUSD(31〜24)であるデータAがBoutからSRAMメモリ42に供給される画像データMEM2DINとして出力され、SYSBUSD(23〜16)であるデータBがCoutからSRAMメモリ43に供給される画像データMEM3DINとして出力され、SYSBUSD(15〜8)であるデータCがDoutからSRAMメモリ44に供給される画像データMEM4DINとして出力される。
選択信号SELが「2」のときには、システムバス3から送られてくる画像データSYSBUSD(31〜0)のうちのSYSBUSD(15〜8)であるデータCがAoutからSRAMメモリ41に供給される画像データMEM1DINとして出力され、SYSBUSD(7〜0)であるデータDがBoutからSRAMメモリ42に供給される画像データMEM2DINとして出力され、SYSBUSD(31〜24)であるデータAがCoutからSRAMメモリ43に供給される画像データMEM3DINとして出力され、SYSBUSD(23〜16)であるデータBがDoutからSRAMメモリ44に供給される画像データMEM4DINとして出力される。
選択信号SELが「3」のときには、システムバス3から送られてくる画像データSYSBUSD(31〜0)のうちのSYSBUSD(23〜16)であるデータBがAoutからSRAMメモリ41に供給される画像データMEM1DINとして出力され、SYSBUSD(15〜8)であるデータCがBoutからSRAMメモリ42に供給される画像データMEM2DINとして出力され、SYSBUSD(7〜0)であるデータDがCoutからSRAMメモリ43に供給される画像データMEM3DINとして出力され、SYSBUSD(31〜24)であるデータAがDoutからSRAMメモリ44に供給される画像データMEM4DINとして出力される。
書き込み制御部20の上記動作によって、システムバス3の一つのクロックサイクルにて転送されてくる、一つのライン上で連続する4画素のデータの各々がt=4本のラインメモリ41〜44(SRAMメモリ41〜44)の別々のものに書き込まれ、かつ、矩形領域2aの一つ前のラインと次のラインとでライン上の同一位置のデータ(同列のデータ)が異なるラインメモリ41〜44に書き込まれるように制御される。
メモリ部(ラインメモリ41〜44)へのアクセスについて、y番目(y=1,2,3,4)のメモリ部のワードアドレスz(z=0,1,2,...)へのアクセスをSRAM(z,y)とすると、システムバス3から転送されてくる16画素×16ラインのデータは、バスクロック毎に図5に示すように格納される。ここで、システムバス3からはバス幅に相当する4画素分のデータが一つのバスサイクルで4本のラインメモリの各々のアドレスに書き込まれる。
図5および図9に示すように、1ライン目の1画素目のデータD(1,1)はSRAM(0,1)、1ライン目の2画素目のデータD(2,1)はSRAM(0,2)、1ライン目の3画素目のデータD(3,1)はSRAM(0,3)、1ライン目の4画素目のデータD(4,1)はSRAM(0,4)、1ライン目の5画素目のデータD(5,1)はSRAM(1,1)、1ライン目の6画素目のデータD(6,1)はSRAM(1,2)、・・・、1ライン目の16画素目のデータD(16,1)はSRAM(3,4)、2ライン目の1画素目のデータD(1,2)はSRAM(5,2)、2ライン目の2画素目のデータD(2,2)はSRAM(5,3)、2ライン目の3画素目のデータD(3,2)はSRAM(5,4)、2ライン目の4画素目のデータD(4,2)はSRAM(5,1)、2ライン目の5画素目のデータD(5,2)はSRAM(6,2)、2ライン目の6画素目のデータD(6,2)はSRAM(6,3)、・・・、15ライン目の16画素目のデータD(16,15)はSRAM(74,2)、16ライン目の1画素目のデータD(1,16)はSRAM(75,4)、16ライン目の2画素目のデータD(2,16)はSRAM(75,1)、16ライン目の3画素目のデータD(3,16)はSRAM(75,2)、16ライン目の4画素目のデータD(4,16)はSRAM(75,3)、16ライン目の5画素目のデータD(5,16)はSRAM(76,4)、・・・、16ライン目の15画素目のデータD(15,16)はSRAM(79,2)、16ライン目の16画素目のデータD(16,16)はSRAM(79,3)に、それぞれ書き込まれる。
全て格納されると、引き続いて、図4に示す読み出し制御部30によってデータ読み出しが行われフィルタ5Aへ3ライン分のデータが並列に順次入力される。
図10は、図4の読み出し制御部30の回路構成例を示す回路図、図11および図12はそのアドレスマルチプレクサおよび出力データマルチプレクサの各論理をそれぞれ示す図、図13は、図4のバッファメモリ4Aからのデータ読み出し時の動作タイミングを示すタイミング図である。
図10において、読み出し制御部30は、上位カウンタ31と、下位カウンタ32と、加算器33〜35と、アドレスマルチプレクサ36と、D型フリップフロップ(DFF)37と、出力データマルチプレクサ38とを有している。
下位カウンタ32は、図13に示すように、RESET信号により[0,0]とされて、RESET解除後は画像処理クロックPIXCLK毎に1ずつカウントアップ動作を行う。t=4回カウントされる毎にCARRY信号を出力し、矩形領域の1ライン分に相当する回数、本実施形態ではp=16回カウントされる毎にカウンタの初期値が直前のラインを処理した時の初期値の1を加えた数字(数値)に設定される。
下位カウンタ32のカウンタ値は、アドレスマルチプレクサ36のセレクト入力SELへ入力され、図11に示すようにアドレスマルチプレクサ36の選択状況が切り替わって、各SRAMメモリ41〜44のアドレスとして供給される。また、下位カウンタ32のカウンタ値は、出力データマルチプレクサ38のセレクト入力SELにも入力され、図12に示すように出力データマルチプレクサ38の選択状況が切り替わって、各SRAMメモリ41〜44からの出力データが後段のフィルタ5Aのどのラインのデータとして出力されるかが決定される。
下位カウンタ32からのCARRY信号は、上位カウンタ31のENB端子にも入力される。図13に示すように、このENB端子がハイレベルのときに上位カウンタ31が1カウントアップされ、小矩形領域2aの1ライン分に相当する画素数が読み出される毎に、直前のラインを処理したときの初期値に+5を加算した値を初期値としてカウントアップが行われる。これによって、最初のラインの処理時は0,1,2,3とカウントされ、次のラインの処理時は5,6,7,8とカウントされ、さらに次のラインの処理時は10,11,12,13のようにカウントされる。
この上位カウンタ31のカウント値は、そのままの値、加算器33で+5加算された値、加算器34でさらに+5加算された値、加算器35でさらに+5加算された値の4つの値がアドレスマルチプレクサ36へ供給される。ここで、加算器33〜35によって加算される+5は、各SRAMメモリ41〜44において小矩形領域2aの1ライン分を格納するために確保されるワード数である。
アドレスマルチプレクサ36では、図11および図13に示すように、選択信号SELが「0」のときに、上位カウンタ31の出力値UCNTである値AがAoutからSRAMメモリ41のアドレスMEM1OUTADRとして出力され、上位カウンタ31の出力値UCNTに加算器33で+5加算した値BがBoutからSRAMメモリ42のアドレスMEM2OUTADRとして出力され、上位カウンタ31の出力値UCNTに加算器33および34でそれぞれ+5加算した値CがCoutからSRAMメモリ43のアドレスMEM3OUTADRとして出力され、上位カウンタ31の出力値UCNTに加算器33〜35でそれぞれ+5加算した値DがDoutからSRAMメモリ44のアドレスMEM4OUTADRとして出力される。
選択信号SELが「1」のときには、上位カウンタ31の出力値UCNTに加算器33〜35でそれぞれ+5加算した値DがAoutからSRAMメモリ41のアドレスMEM1OUTADRとして出力され、上位カウンタ31の出力値UCNTである値AがBoutからSRAMメモリ42のアドレスMEM2OUTADRとして出力され、上位カウンタ31の出力値UCNTに加算器33で+5加算した値BがCoutからSRAMメモリ43のアドレスMEM3OUTADRとして出力され、上位カウンタ31の出力値UCNTに加算器33および34でそれぞれ+5加算した値CがDoutからSRAMメモリ44のアドレスMEM4OUTADRとして出力される。
選択信号SELが「2」のときには、上位カウンタ31の出力値UCNTに加算器33および34でそれぞれ+5加算した値CがAoutからSRAMメモリ41のアドレスMEM1OUTADRとして出力され、上位カウンタ31の出力値UCNTに加算器33〜35でそれぞれ+5加算した値DがBoutからSRAMメモリ42のアドレスMEM2OUTADRとして出力され、上位カウンタ31の出力値UCNTである値AがCoutからSRAMメモリ43のアドレスMEM3OUTADRとして出力され、上位カウンタ31の出力値UCNTに加算器33で+5加算した値BがDoutからSRAMメモリ44のアドレスMEM4OUTADRとして出力される。
選択信号SELが「3」のときには、上位カウンタ31の出力値UCNTに加算器33で+5加算した値BがAoutからSRAMメモリ41のアドレスMEM1OUTADRとして出力され、上位カウンタ31の出力値UCNTに加算器33および34でそれぞれ+5加算した値CがBoutからSRAMメモリ42のアドレスMEM2OUTADRとして出力され、上位カウンタ31の出力値UCNTに加算器33〜35でそれぞれ+5加算した値DがCoutからSRAMメモリ43のアドレスMEM3OUTADRとして出力され、上位カウンタ31の出力値UCNTである値AがDoutからSRAMメモリ44のアドレスMEM4OUTADRとして出力される。
また、出力データマルチプレクサ38では、図12および図13に示すように、選択信号SELが「0」のときに、SRAMメモリ41からの出力データMEM1DOUTであるデータAがAoutからラインyのデータとして出力され、SRAMメモリ42からの出力データMEM2DOUTであるデータBがBoutからラインy+1のデータとして出力され、SRAMメモリ43からの出力データMEM3DOUTであるデータCがCoutからラインy+2のデータとして出力される。
選択信号SELが「1」のときには、SRAMメモリ42からの出力データMEM2DOUTであるデータBがAoutからラインyのデータとして出力され、SRAMメモリ43からの出力データMEM3DOUTであるデータCがBoutからラインy+1のデータとして出力され、SRAMメモリ44からの出力データMEM4DOUTであるデータDがCoutからラインy+2のデータとして出力される。
選択信号SELが「2」のときには、SRAMメモリ43からの出力データMEM3DOUTであるデータCがAoutからラインyのデータとして出力され、SRAMメモリ44からの出力データMEM4DOUTであるデータDがBoutからラインy+1のデータとして出力され、SRAMメモリ41からの出力データMEM1DOUTであるデータAがCoutからラインy+2のデータとして出力される。
選択信号SELが「4」のときには、SRAMメモリ44からの出力データMEM4DOUTであるデータDがAutからラインyのデータとして出力され、SRAMメモリ41からの出力データMEM1DOUTであるデータAがBoutからラインy+1のデータとして出力され、SRAMメモリ42からの出力データMEM2DOUTであるデータBがCoutからラインy+2のデータとして出力される。
上記読み出し制御部30の動作によって、画像処理クロックPIXCLK毎に以下のような順序で各SRAMメモリ41〜44がアドレッシングされ、出力データマルチプレクサ38を経由してフィルタ5Aにデータが供給される。
ここでは、4本の各SRAMメモリ41〜44から一度に各ラインの同一画素位置のデータが読み出され、出力データマルチプレクサ38を経由してフィルタ5Aのライン数分の画素データが順次フィルタ5Aに供給される。
図5および図13に示すように、PIXCLKの1クロック目ではSRAM(0,1)、SRAM(5,2)およびSRAM(10,3)からデータD(1,1)、D(1,2)およびD(1,3)、PIXCLKの2クロック目ではSRAM(0,2)、SRAM(5,3)およびSRAM(10,4)からデータD(2,1)、D(2,2)およびD(2,3)、PIXCLKの3クロック目ではSRAM(0,3)、SRAM(5,4)およびSRAM(10,1)からD(3,1)、D(3,2)およびD(3m3)、・・・、PIXCLKの15クロック目ではSRAM(3,3)、SRAM(8,4)およびSRAM(13,1)からD(15,1)D(15,2)およびD(15,3)、PIXCLKの16クロック目ではSRAM(3,4)、SRAM(8,1)およびSRAM(13,2)からD(16,1)、D(16,2)およびD(16,3)、PIXCLKの17クロック目ではSRAM(5,2)、SRAM(10,3)およびSRAM(15,4)からD(17,1)、D(17,2)およびD(17,3)、・・・が、それぞれ読み出されることになる。
以上により、本実施形態によれば、小矩形領域2aの各行方向に連続したデータ群が、バッファメモリ4Aにおいて、それぞれ別々のラインメモリに書き込まれ、かつ、小矩形領域2aの各列方向に連続したデータ群について、それぞれ別々のラインメモリに書き込まれるように格納される。このため、バッファメモリ4Aの容量を小さくでき、水平垂直変換部におけるデータ並べ替えのためにn回のデータ読み出しを行う必要がなく、各ラインの画素単位で一度にnライン分の画素データを読み出すことができる。つまり、n行分列毎に読み出せる。これによって、システムバス3からバッファメモリ4Aへのデータ転送が終了すると、従来のように水平垂直変換部などを介さずすぐに、後段のフィルタ5Aへのデータ供給を開始することができる。したがって、画像データを小矩形領域2aに分割して処理することにより、フィルタリング処理の前段に配置されるバッファメモリ4Aのメモリ容量を削減しつつ、処理のオーバーヘッドを最小限に抑えることができる。
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
本発明は、フィルタ処理用の画像データを記憶可能とする画像メモリおよび、この画像メモリが設けられた画像処理システムに関し、特に、システムバス上のメモリに格納された画像データからラスタスキャン方向に矩形領域が切り出されてシステムバスを経由して高速に転送される画像データを一旦保持して、後段のフィルタ回路に画像データを供給するためのバッファメモリとして用いられる画像メモリおよび、この画像メモリおよびフィルタ回路が設けられた画像処理機能モジュールを一または複数備えた画像処理システムの分野において、処理したい画像データを小矩形領域に分割し、バッファメモリ部において、小矩形領域に連続した各行方向のデータ群がそれぞれ別々のラインメモリに書き込まれ、かつ、小矩形領域に連続した各列方向のデータ群について、それぞれが別々のラインメモリに書き込まれるように格納する。このため、画像メモリから画像データを読み出してフィルタ回路部に供給する際には、nライン分の各ライン上で水平方向に同じ位置(左端から何番目)の画素データ(小矩形領域のn行分の同列データ)を各メモリから並列に読み出すことができる。これによって、フィルタ処理に必要なライン数の画素データを、従来のように水平垂直変換回路などを介さずに画像処理クロックのクロック毎にバッファメモリ部から直接読み出しを行うことができる。このため、従来技術のように必要なライン数分のデータを一旦フリップフロップへ読み出すという前処理によるオーバーヘッドなしに、システムバスからバッファメモリ部へのデータ転送が終了すれば、すぐに後段のフィルタ回路部へのデータ供給を開始できる。処理したい画像データを小矩形領域に分割したことにより、フィルタ処理の前段に配置するメモリ容量を削減しつつ、バッファメモリ部から直接フィルタ回路部へデータ読み出しを行うことにより、処理のオーバーヘッドを最小限に抑えることができる。
1 画像処理システム
2 メインメモリ
2a 小矩形領域(矩形領域)
3 システムバス(バス)
4A〜4E バッファメモリ(複数のラインメモリ)
5A〜5E フィルタ(フィルタ回路)
10,10A バッファメモリ周辺回路
11 クロックセレクタ
12、121〜124 アドレスセレクタ
20 書き込み制御部
21 第1カウンタ
22 ラインエンド比較器
23 第2カウンタ
24 入力データマルチプレクサ
30 読み出し制御部
31 上位カウンタ
32 下位カウンタ
33〜35 加算器
36 アドレスマルチプレクサ
37 D型フリップフロップ
38 出力データマルチプレクサ
41〜44 ラインメモリ(SRAMメモリ)
2 メインメモリ
2a 小矩形領域(矩形領域)
3 システムバス(バス)
4A〜4E バッファメモリ(複数のラインメモリ)
5A〜5E フィルタ(フィルタ回路)
10,10A バッファメモリ周辺回路
11 クロックセレクタ
12、121〜124 アドレスセレクタ
20 書き込み制御部
21 第1カウンタ
22 ラインエンド比較器
23 第2カウンタ
24 入力データマルチプレクサ
30 読み出し制御部
31 上位カウンタ
32 下位カウンタ
33〜35 加算器
36 アドレスマルチプレクサ
37 D型フリップフロップ
38 出力データマルチプレクサ
41〜44 ラインメモリ(SRAMメモリ)
Claims (19)
- メインメモリに格納されたM画素×Nライン(M,Nは自然数)の画像データからp画素×qライン(p,qは自然数;p<M,q<N)の複数の矩形領域が切り出し可能とされ、該矩形領域毎のラスタスキャンによりkビット×s画素(k,sは自然数)のバス幅を持つバスを介して転送されてくる該矩形領域の画像データがメモリ部に一旦格納されて、m画素×nライン(m,nは自然数)の画像データに対してフィルタ処理を行うフィルタ回路に読み出し可能とされる画像メモリであって、
該メモリ部は、複数のラインメモリを有し、データ書き込み時に、該矩形領域の行方向に少なくとも該バス幅分だけ連続した各画像データが別々の該ラインメモリに格納され、かつ、該矩形領域の列方向に少なくとも該フィルタ回路のライン数分連続した各画像データが別々の該ラインメモリに格納され、データ読み出し時に、別々の該ラインメモリに格納された画像データが、該矩形領域におけるn行分列毎の各画像データに対応した画像データとして読み出されて、直接、該フィルタ回路に供給される画像メモリ。 - 前記複数のラインメモリは、ビット幅が画像データの1画素分kであるラインメモリを、前記バス幅に含まれる画素数sと前記フィルタ回路のライン数nのうち、大きい方の値のt本としている請求項1に記載の画像メモリ。
- 前記複数のラインメモリは、ビット幅が画像データの1画素分kであるSRAMを、前記バス幅に含まれる画素数sと前記フィルタ回路のライン数nのうち、大きい方の値のt本としている請求項1に記載の画像メモリ。
- 前記メモリ部は、前記バスから転送されてくる前記矩形領域の1ラインp画素分の画像データと、前記フィルタ回路の水平方向のサイズmに応じたm−1画素分の画像データとの合計であるp+m−1画素分のデータを格納可能で、かつ該メモリ部の本数tの整数倍gであるエリアを1ライン分のエリアとし、該1ライン分のエリアを該矩形領域のライン数qだけ有している請求項1に記載の画像メモリ。
- 前記ラインメモリにおける前記矩形領域の1ライン分のデータ格納用エリアは、該矩形領域の1ライン分の画素数pとm−1を加えたデータ量で、かつ、該ラインメモリの同一アドレスが全て埋まる量となり、かつ下記式
p+m−1≦t×g (但し、gは2以上の整数)
を満たすように決定されている請求項1または4に記載の画像メモリ。 - 前記メモリ部への画像データの書き込み動作を制御する書き込み制御部と、
該メモリ部から前記フィルタ回路への画像データの読み出し動作を制御する読み出し制御部とを有する求項1に記載の画像メモリ。 - 前記バスの一クロックサイクルにより転送されてくる、前記矩形領域の一ライン上で連続するs画素の画像データのそれぞれを前記t本の各ラインメモリにそれぞれ書き込み、かつ、少なくとも前記フィルタ回路のライン数nの数だけ連続する該矩形領域の各ライン上で水平方向に同じ位置に相当する画素データを該t本の各ラインメモリに別々に書き込む書き込み制御部と、
該t本の各ラインメモリに書き込まれている、該矩形領域のnライン分の各ライン上で水平方向に同じ位置に相当する各画素データを並列に読み出す読み出し制御部とを有する請求項2または6に記載の画像メモリ。 - 前記書き込み制御部は、前記バスから転送されてくる画像データの1ライン目の1画素目、2画素目、3画素目、・・・、p画素目が、1本目のラインメモリのワードアドレス0、2本目のラインメモリのワードアドレス0、3本目のラインメモリのワードアドレス0、・・・、t本目のラインメモリのワードアドレス0、1本目のラインメモリのワードアドレス1、2本目のラインメモリのワードアドレス1、・・・の順に各ラインメモリのアドレスの先頭から格納されるように前記メモリ部に対して書き込みアドレスを供給する請求項6または7に記載の画像メモリ。
- 前記書き込み制御部は、前記矩形領域の1ラインp画素分の画像データを前記t本のラインメモリに振り分けて格納する場合に、1本のラインメモリ当たりに必要とされるワード数をu、隣接する矩形領域の各ライン上のm−1画素分のデータを格納するために1本のラインメモリ当たりに必要とされるワード数をv、g=u+vとして、前記バスから転送されてくる画像データの2ライン目の1画素目、2画素目、3画素目、・・・、p画素目が、2本目のラインメモリのワードアドレスg、3本目のメモリのワードアドレスg、・・・、t本目のラインメモリのワードアドレスg、1本目のメモリのワードアドレスg、2本目のラインメモリのワードアドレスg+1、3本目のメモリのワードアドレスg+1・・・の順に各ラインメモリのアドレスg番地から格納されるように前記メモリ部に対して書き込みアドレスを供給する請求項6〜8のいずれかに記載の画像メモリ。
- 前記書き込み制御部は、前記矩形領域の1ラインp画素分の画像データを前記t本の各ラインメモリに振り分けて格納する場合に、1本のラインメモリ当たりに必要とされるワード数をu、隣接する矩形領域の各ライン上のm−1画素分のデータを格納するために1本のラインメモリ当たりに必要とされるワード数をv、g=u+vとして、前記バスから転送されてくる画像データのaライン目の1画素目、2画素目、3画素目、・・・、p画素目が、a本目のラインメモリのワードアドレス(a−1)×g、a+1本目のラインメモリのワードアドレス(a−1)×g、・・・、t本目のラインメモリのワードアドレス(a−1)×g、1本目のラインメモリのワードアドレス(a−1)×g、2本目のラインメモリのワードアドレス(a−1)×g、・・・、a本目のラインメモリのワードアドレス(a−1)×g+1、a+1本目のラインメモリのワードアドレス(a−1)×g+1、・・・の順に各ラインメモリのアドレス(a−1)×g番地から格納されるように前記メモリ部に対して書き込みアドレスを供給する請求項6、7および9のいずれかに記載の画像メモリ。
- 前記書き込み制御部は、前記矩形領域の各ラインの画像データを格納する際に、前記メモリ部の各ライン用エリアにおいて、直前の前記矩形領域における同ラインの最後のデータに引き続くデータとして格納されるように、書き込みアドレスを生成する請求項6または7に記載の画像メモリ。
- 前記書き込み制御部は、
前記バスのクロック毎にカウントアップ動作を行い、その出力がt本の前記ラインメモリのアドレス信号として用いられる第1カウンタと、
該第1カウンタのカウント値が供給されて、前記矩形領域の1ラインの画素数pがt本の各ラインメモリに書き込み完了することを検出するラインエンド比較器と、
該ラインエンド比較器からの出力がイネーブル端子に供給されて値が1つカウントアップされる第2カウンタと、
該第2カウンタのカウント値が選択信号として供給され、該バスを介して供給される前記s画素分の入力画像データを該選択信号によって切り替えて該t本の各ラインメモリに供給する入力データマルチプレクサとを有する請求項6または7に記載の画像メモリ。 - 前記読み出し制御部は、前記矩形領域の1ラインp画素分の画像データをt本の前記ラインメモリに振り分けて格納する場合に1本のラインメモリ当たりに必要とされるワード数をu、隣接する該矩形領域の各ライン上のm−1画素分の画像データを格納するために1本のラインメモリ当たりに必要とされるワード数をv、g=u+vとして、0ライン目からn−1ライン目のnライン分の画像データを読み出す場合に、nライン分の各ラインの先頭画素の画像データが、1本目のラインメモリのワードアドレス0、2本目のラインメモリのワードアドレスg、3本目のラインメモリのワードアドレス2×g、・・・、n本目のラインメモリのワードアドレス(n−1)×gから同時に読み出されるように前記メモリ部に対して読み出しアドレスを供給する請求項6または7に記載の画像メモリ。
- 前記読み出し制御部は、前記矩形領域の1ラインp画素分の画像データをt本の前記ラインメモリに振り分けて格納する場合に1本のラインメモリ当たりに必要とされるワード数をu、隣接する該矩形領域の各ライン上のm−1画素分の画像データを格納するために1本のラインメモリ当たりに必要とされるワード数をv、g=u+vとして、0ライン目からn−1ライン目のnライン分の画像データを読み出す場合に、nライン分の各ラインの2番目の画素の画像データが、2本目のラインメモリのワードアドレス0、3本目のラインメモリのワードアドレスg、4本目のラインメモリのワードアドレス2×g、・・・から同時に読み出されるように前記メモリ部に対して読み出しアドレスを供給する請求項6、7および13のいずれかに記載の画像メモリ。
- 前記読み出し制御部は、前記矩形領域の1ラインp画素分の画像データをt本の前記ラインメモリに振り分けて格納する場合に1本のラインメモリ当たりに必要とされるワード数をu、隣接する該矩形領域の各ライン上のm−1画素分の画像データを格納するために1本のラインメモリ当たりに必要とされるワード数をv、g=u+vとして、0ライン目からn−1ライン目のnライン分の画像データを読み出す場合に、nライン分の各ラインのb番目の画素データが、b本目のラインメモリのワードアドレス0、b+1本目のラインメモリのワードアドレスg、b+2本目のラインメモリのワードアドレス2×g、・・・から同時に読み出されるように前記メモリ部に対して読み出しアドレスを供給する請求項6、7および14のいずれかに記載の画像メモリ。
- 前記読み出し制御部は、前記矩形領域のnライン分の画像データを読み出す際に、直前の矩形領域における各ラインの最終データの位置からm−1画素分遡った位置から読み出されるように、読み出しアドレスを生成する請求項13〜15のいずれかに記載の画像メモリ。
- 前記読み出し制御部は、
直前のラインを処理したときの初期値に、前記矩形領域の1ラインp画素分の画像データをt本の前記ラインメモリに振り分けて格納する場合に1本のラインメモリ当たりに必要とされるワード数をu、隣接する該矩形領域の各ライン上のm−1画素分のデータを格納するために1本のラインメモリ当たりに必要とされるワード数をvとして、前記フィルタ回路の処理クロック毎に1ずつカウントアップ動作を行い、t回カウントされる毎にCARRY信号を出力し、該矩形領域の1ライン分に相当するp回カウントされる毎にカウンタの初期値として直前のラインを処理したときの初期値に1を加えた数値が設定される下位カウンタと、
該下位カウンタからのCARRY信号がイネーブル端子へ供給されて値が1つカウントアップされ、該矩形領域の1ライン分に相当するp画素が読み出される毎に、g=u+vを加算した値を初期値としてカウントアップが行われる上位カウンタと、
該上位カウンタの値にgを順に加算していくt−1個の加算器と、
該下位カウンタのカウンタ値が選択信号として供給され、該上位カウンタのカウンタ値と該加算器による加算値を該選択信号によって切り替えてt本の該ラインメモリにアドレスとして供給するアドレスマルチプレクサと、
該下位カウンタのカウンタ値が該選択信号として供給され、該t本のラインメモリからの出力データを該選択信号によって切り替えて該フィルタ回路に供給する出力データマルチプレクサとを有する請求項6または7に記載の画像メモリ。 - 前記バスを介して転送されてくる前記矩形領域の最初のn−1ライン分の画像データが、前の行で同じ列の該矩形領域における最後のn−1ライン分の画像データと同じである請求項1に記載の画像メモリ。
- 請求項1〜18のいずれかに記載の画像メモリと、該画像メモリから画像データが供給されてフィルタリング処理を行うフィルタ回路とを有する画像処理機能モジュールを一または複数備えた画像処理システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005260784A JP2007072867A (ja) | 2005-09-08 | 2005-09-08 | 画像メモリおよび画像処理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005260784A JP2007072867A (ja) | 2005-09-08 | 2005-09-08 | 画像メモリおよび画像処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007072867A true JP2007072867A (ja) | 2007-03-22 |
Family
ID=37934241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005260784A Withdrawn JP2007072867A (ja) | 2005-09-08 | 2005-09-08 | 画像メモリおよび画像処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007072867A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101608347B1 (ko) | 2009-11-02 | 2016-04-01 | 삼성전자주식회사 | 디지털 영상 신호 처리 장치 및 방법 |
CN111052742A (zh) * | 2017-09-30 | 2020-04-21 | 深圳市大疆创新科技有限公司 | 图像处理 |
US10911739B2 (en) | 2016-10-20 | 2021-02-02 | Hitachi Automotive Systems, Ltd. | Camera device |
-
2005
- 2005-09-08 JP JP2005260784A patent/JP2007072867A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101608347B1 (ko) | 2009-11-02 | 2016-04-01 | 삼성전자주식회사 | 디지털 영상 신호 처리 장치 및 방법 |
US10911739B2 (en) | 2016-10-20 | 2021-02-02 | Hitachi Automotive Systems, Ltd. | Camera device |
CN111052742A (zh) * | 2017-09-30 | 2020-04-21 | 深圳市大疆创新科技有限公司 | 图像处理 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100325375A1 (en) | Data-access control device and data-access control method | |
JP5886583B2 (ja) | データ処理装置、処理方法、制御方法、及びプログラム | |
US20020083266A1 (en) | Image data organization into pixel tile memory matrix | |
JP2007072867A (ja) | 画像メモリおよび画像処理システム | |
JP7278150B2 (ja) | 画像処理装置、撮像装置、画像処理方法 | |
US8150215B2 (en) | Routable image pipeline device | |
JP2000311241A (ja) | 画像処理装置 | |
US6195463B1 (en) | Multiresolution image processing and storage on a single chip | |
TWI424372B (zh) | Selectable image line path means | |
CN102202202B (zh) | 可选径的影像管线装置 | |
JP3629873B2 (ja) | 画像処理装置 | |
JP4835872B2 (ja) | 画像処理装置 | |
KR101586844B1 (ko) | 영상 처리 장치 및 방법 | |
JP2989193B2 (ja) | 画像メモリインターリーブ入出力回路 | |
EP1726016A1 (en) | Technique for efficient video re-sampling | |
JPH11168610A (ja) | 画像処理装置 | |
JPS636681A (ja) | 画像メモリ制御装置 | |
JP2006050415A (ja) | 画像処理装置および閾値データ記憶方法 | |
JPH06324935A (ja) | アドレス発生器およびアドレス発生システム | |
US8792749B2 (en) | Scaling device and method capable of controlling data flow quantity | |
JP2647377B2 (ja) | 画像処理装置 | |
JPH11289438A (ja) | デジタル画像処理装置およびデジタル画像処理方法 ならびに画像読み取り装置 | |
JP2570294B2 (ja) | 画像読取装置 | |
JPH09147096A (ja) | 画素データのメモリへの格納方式 | |
JPS60198655A (ja) | 画像記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20081202 |