(57)【要約】【課題】  画像データに対して空間フィルタリング処理を行う画像処理システムにおいて、フィルタの前段に配置されるメモリ容量を削減しつつ、処理効率低下を防ぐ。【解決手段】  メインメモリ２に格納された１画面Ｍ画素×Ｎラインの画像データからｐ画素×ｑラインの小矩形領域２ａに切り出され、ラスタスキャンにてバス幅ｋビット×ｓ画素のシステムバス３を経由して順次転送されてくる画像データを一旦格納して、フィルタサイズｍ画素×ｎラインのフィルタ５Ａへ供給する画像メモリ４Ａにおいて、ビット幅が画像データ１画素分ｋのメモリを、システムバス３のバス幅ｓ画素とフィルタ５Ａのライン数ｎの大きい方の数ｔ本備えたメモリ部を設けて、システムバス３の１クロックサイクルで転送されてくる、１ライン上で連続するｓ画素のデータを別々のラインメモリに書き込み、かつ、各ライン上で水平方向に同じ位置の画素データを別々のラインメモリに書き込む。【選択図】  図１
2007072867.tif 000002
【特許請求の範囲】
【請求項１】
メインメモリに格納されたＭ画素×Ｎライン（Ｍ，Ｎは自然数）の画像データからｐ画素×ｑライン（ｐ，ｑは自然数；ｐ＜Ｍ，ｑ＜Ｎ）の複数の矩形領域が切り出し可能とされ、該矩形領域毎のラスタスキャンによりｋビット×ｓ画素（ｋ，ｓは自然数）のバス幅を持つバスを介して転送されてくる該矩形領域の画像データがメモリ部に一旦格納されて、ｍ画素×ｎライン（ｍ，ｎは自然数）の画像データに対してフィルタ処理を行うフィルタ回路に読み出し可能とされる画像メモリであって、
該メモリ部は、複数のラインメモリを有し、データ書き込み時に、該矩形領域の行方向に少なくとも該バス幅分だけ連続した各画像データが別々の該ラインメモリに格納され、かつ、該矩形領域の列方向に少なくとも該フィルタ回路のライン数分連続した各画像データが別々の該ラインメモリに格納され、データ読み出し時に、別々の該ラインメモリに格納された画像データが、該矩形領域におけるｎ行分列毎の各画像データに対応した画像データとして読み出されて、直接、該フィルタ回路に供給される画像メモリ。
【請求項２】
前記複数のラインメモリは、ビット幅が画像データの１画素分ｋであるラインメモリを、前記バス幅に含まれる画素数ｓと前記フィルタ回路のライン数ｎのうち、大きい方の値のｔ本としている請求項１に記載の画像メモリ。
【請求項３】
前記複数のラインメモリは、ビット幅が画像データの１画素分ｋであるＳＲＡＭを、前記バス幅に含まれる画素数ｓと前記フィルタ回路のライン数ｎのうち、大きい方の値のｔ本としている請求項１に記載の画像メモリ。
【請求項４】
前記メモリ部は、前記バスから転送されてくる前記矩形領域の１ラインｐ画素分の画像データと、前記フィルタ回路の水平方向のサイズｍに応じたｍ−１画素分の画像データとの合計であるｐ＋ｍ−１画素分のデータを格納可能で、かつ該メモリ部の本数ｔの整数倍ｇであるエリアを１ライン分のエリアとし、該１ライン分のエリアを該矩形領域のライン数ｑだけ有している請求項１に記載の画像メモリ。
【請求項５】
前記ラインメモリにおける前記矩形領域の１ライン分のデータ格納用エリアは、該矩形領域の１ライン分の画素数ｐとｍ−１を加えたデータ量で、かつ、該ラインメモリの同一アドレスが全て埋まる量となり、かつ下記式
ｐ＋ｍ−１≦ｔ×ｇ  （但し、ｇは２以上の整数）
を満たすように決定されている請求項１または４に記載の画像メモリ。
【請求項６】
前記メモリ部への画像データの書き込み動作を制御する書き込み制御部と、
該メモリ部から前記フィルタ回路への画像データの読み出し動作を制御する読み出し制御部とを有する求項１に記載の画像メモリ。
【請求項７】
前記バスの一クロックサイクルにより転送されてくる、前記矩形領域の一ライン上で連続するｓ画素の画像データのそれぞれを前記ｔ本の各ラインメモリにそれぞれ書き込み、かつ、少なくとも前記フィルタ回路のライン数ｎの数だけ連続する該矩形領域の各ライン上で水平方向に同じ位置に相当する画素データを該ｔ本の各ラインメモリに別々に書き込む書き込み制御部と、
該ｔ本の各ラインメモリに書き込まれている、該矩形領域のｎライン分の各ライン上で水平方向に同じ位置に相当する各画素データを並列に読み出す読み出し制御部とを有する請求項２または６に記載の画像メモリ。
【請求項８】
前記書き込み制御部は、前記バスから転送されてくる画像データの１ライン目の１画素目、２画素目、３画素目、・・・、ｐ画素目が、１本目のラインメモリのワードアドレス０、２本目のラインメモリのワードアドレス０、３本目のラインメモリのワードアドレス０、・・・、ｔ本目のラインメモリのワードアドレス０、１本目のラインメモリのワードアドレス１、２本目のラインメモリのワードアドレス１、・・・の順に各ラインメモリのアドレスの先頭から格納されるように前記メモリ部に対して書き込みアドレスを供給する請求項６または７に記載の画像メモリ。
【請求項９】
前記書き込み制御部は、前記矩形領域の１ラインｐ画素分の画像データを前記ｔ本のラインメモリに振り分けて格納する場合に、１本のラインメモリ当たりに必要とされるワード数をｕ、隣接する矩形領域の各ライン上のｍ−１画素分のデータを格納するために１本のラインメモリ当たりに必要とされるワード数をｖ、ｇ＝ｕ＋ｖとして、前記バスから転送されてくる画像データの２ライン目の１画素目、２画素目、３画素目、・・・、ｐ画素目が、２本目のラインメモリのワードアドレスｇ、３本目のメモリのワードアドレスｇ、・・・、ｔ本目のラインメモリのワードアドレスｇ、１本目のメモリのワードアドレスｇ、２本目のラインメモリのワードアドレスｇ＋１、３本目のメモリのワードアドレスｇ＋１・・・の順に各ラインメモリのアドレスｇ番地から格納されるように前記メモリ部に対して書き込みアドレスを供給する請求項６〜８のいずれかに記載の画像メモリ。
【請求項１０】
前記書き込み制御部は、前記矩形領域の１ラインｐ画素分の画像データを前記ｔ本の各ラインメモリに振り分けて格納する場合に、１本のラインメモリ当たりに必要とされるワード数をｕ、隣接する矩形領域の各ライン上のｍ−１画素分のデータを格納するために１本のラインメモリ当たりに必要とされるワード数をｖ、ｇ＝ｕ＋ｖとして、前記バスから転送されてくる画像データのａライン目の１画素目、２画素目、３画素目、・・・、ｐ画素目が、ａ本目のラインメモリのワードアドレス（ａ−１）×ｇ、ａ＋１本目のラインメモリのワードアドレス（ａ−１）×ｇ、・・・、ｔ本目のラインメモリのワードアドレス（ａ−１）×ｇ、１本目のラインメモリのワードアドレス（ａ−１）×ｇ、２本目のラインメモリのワードアドレス（ａ−１）×ｇ、・・・、ａ本目のラインメモリのワードアドレス（ａ−１）×ｇ＋１、ａ＋１本目のラインメモリのワードアドレス（ａ−１）×ｇ＋１、・・・の順に各ラインメモリのアドレス（ａ−１）×ｇ番地から格納されるように前記メモリ部に対して書き込みアドレスを供給する請求項６、７および９のいずれかに記載の画像メモリ。
【請求項１１】
前記書き込み制御部は、前記矩形領域の各ラインの画像データを格納する際に、前記メモリ部の各ライン用エリアにおいて、直前の前記矩形領域における同ラインの最後のデータに引き続くデータとして格納されるように、書き込みアドレスを生成する請求項６または７に記載の画像メモリ。
【請求項１２】
前記書き込み制御部は、
前記バスのクロック毎にカウントアップ動作を行い、その出力がｔ本の前記ラインメモリのアドレス信号として用いられる第１カウンタと、
該第１カウンタのカウント値が供給されて、前記矩形領域の１ラインの画素数ｐがｔ本の各ラインメモリに書き込み完了することを検出するラインエンド比較器と、
該ラインエンド比較器からの出力がイネーブル端子に供給されて値が１つカウントアップされる第２カウンタと、
該第２カウンタのカウント値が選択信号として供給され、該バスを介して供給される前記ｓ画素分の入力画像データを該選択信号によって切り替えて該ｔ本の各ラインメモリに供給する入力データマルチプレクサとを有する請求項６または７に記載の画像メモリ。
【請求項１３】
前記読み出し制御部は、前記矩形領域の１ラインｐ画素分の画像データをｔ本の前記ラインメモリに振り分けて格納する場合に１本のラインメモリ当たりに必要とされるワード数をｕ、隣接する該矩形領域の各ライン上のｍ−１画素分の画像データを格納するために１本のラインメモリ当たりに必要とされるワード数をｖ、ｇ＝ｕ＋ｖとして、０ライン目からｎ−１ライン目のｎライン分の画像データを読み出す場合に、ｎライン分の各ラインの先頭画素の画像データが、１本目のラインメモリのワードアドレス０、２本目のラインメモリのワードアドレスｇ、３本目のラインメモリのワードアドレス２×ｇ、・・・、ｎ本目のラインメモリのワードアドレス（ｎ−１）×ｇから同時に読み出されるように前記メモリ部に対して読み出しアドレスを供給する請求項６または７に記載の画像メモリ。
【請求項１４】
前記読み出し制御部は、前記矩形領域の１ラインｐ画素分の画像データをｔ本の前記ラインメモリに振り分けて格納する場合に１本のラインメモリ当たりに必要とされるワード数をｕ、隣接する該矩形領域の各ライン上のｍ−１画素分の画像データを格納するために１本のラインメモリ当たりに必要とされるワード数をｖ、ｇ＝ｕ＋ｖとして、０ライン目からｎ−１ライン目のｎライン分の画像データを読み出す場合に、ｎライン分の各ラインの２番目の画素の画像データが、２本目のラインメモリのワードアドレス０、３本目のラインメモリのワードアドレスｇ、４本目のラインメモリのワードアドレス２×ｇ、・・・から同時に読み出されるように前記メモリ部に対して読み出しアドレスを供給する請求項６、７および１３のいずれかに記載の画像メモリ。
【請求項１５】
前記読み出し制御部は、前記矩形領域の１ラインｐ画素分の画像データをｔ本の前記ラインメモリに振り分けて格納する場合に１本のラインメモリ当たりに必要とされるワード数をｕ、隣接する該矩形領域の各ライン上のｍ−１画素分の画像データを格納するために１本のラインメモリ当たりに必要とされるワード数をｖ、ｇ＝ｕ＋ｖとして、０ライン目からｎ−１ライン目のｎライン分の画像データを読み出す場合に、ｎライン分の各ラインのｂ番目の画素データが、ｂ本目のラインメモリのワードアドレス０、ｂ＋１本目のラインメモリのワードアドレスｇ、ｂ＋２本目のラインメモリのワードアドレス２×ｇ、・・・から同時に読み出されるように前記メモリ部に対して読み出しアドレスを供給する請求項６、７および１４のいずれかに記載の画像メモリ。
【請求項１６】
前記読み出し制御部は、前記矩形領域のｎライン分の画像データを読み出す際に、直前の矩形領域における各ラインの最終データの位置からｍ−１画素分遡った位置から読み出されるように、読み出しアドレスを生成する請求項１３〜１５のいずれかに記載の画像メモリ。
【請求項１７】
前記読み出し制御部は、
直前のラインを処理したときの初期値に、前記矩形領域の１ラインｐ画素分の画像データをｔ本の前記ラインメモリに振り分けて格納する場合に１本のラインメモリ当たりに必要とされるワード数をｕ、隣接する該矩形領域の各ライン上のｍ−１画素分のデータを格納するために１本のラインメモリ当たりに必要とされるワード数をｖとして、前記フィルタ回路の処理クロック毎に１ずつカウントアップ動作を行い、ｔ回カウントされる毎にＣＡＲＲＹ信号を出力し、該矩形領域の１ライン分に相当するｐ回カウントされる毎にカウンタの初期値として直前のラインを処理したときの初期値に１を加えた数値が設定される下位カウンタと、
該下位カウンタからのＣＡＲＲＹ信号がイネーブル端子へ供給されて値が１つカウントアップされ、該矩形領域の１ライン分に相当するｐ画素が読み出される毎に、ｇ＝ｕ＋ｖを加算した値を初期値としてカウントアップが行われる上位カウンタと、
該上位カウンタの値にｇを順に加算していくｔ−１個の加算器と、
該下位カウンタのカウンタ値が選択信号として供給され、該上位カウンタのカウンタ値と該加算器による加算値を該選択信号によって切り替えてｔ本の該ラインメモリにアドレスとして供給するアドレスマルチプレクサと、
該下位カウンタのカウンタ値が該選択信号として供給され、該ｔ本のラインメモリからの出力データを該選択信号によって切り替えて該フィルタ回路に供給する出力データマルチプレクサとを有する請求項６または７に記載の画像メモリ。
【請求項１８】
前記バスを介して転送されてくる前記矩形領域の最初のｎ−１ライン分の画像データが、前の行で同じ列の該矩形領域における最後のｎ−１ライン分の画像データと同じである請求項１に記載の画像メモリ。
【請求項１９】
請求項１〜１８のいずれかに記載の画像メモリと、該画像メモリから画像データが供給されてフィルタリング処理を行うフィルタ回路とを有する画像処理機能モジュールを一または複数備えた画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フィルタ処理用の画像データを記憶可能とする画像メモリおよび、この画像メモリが設けられた画像処理システムに関し、特に、システムバス上のメモリに格納された画像データからラスタスキャン方向に矩形領域が切り出されてシステムバスを経由して高速に転送される画像データを一旦保持して、後段のフィルタ回路に画像データを供給するためのバッファメモリとして用いられる画像メモリおよび、この画像メモリおよびフィルタ回路が設けられた画像処理機能モジュールを一または複数備えた画像処理システムに関する。
【背景技術】
【０００２】
従来から、ＣＣＤ用の補間信号処理、この補間信号処理後の拡大・縮小などの画像処理においては、画像データ内に含まれる雑音を除去したり、画像が持つ特徴を抽出したり、画像入出力機器の周波数特性を補償したりするために、各種のフィルタリング処理が行われている。特に、画像データの空間と同じ２次元空間上で処理を行う２次元空間フィルタリング処理が広く行われている。
【０００３】
この空間フィルタリング処理において、フィルタサイズをｍ画素×ｎラインとした場合、フィルタ回路の前段にｎ−１個のラインメモリを設けて、連続するｎラインについて、各ライン上の同一位置（縦方向の位置）の画素データを同時にフィルタ回路に入力させる方法が一般的に用いられている。しかしながら、この方法では、ＦＩＦＯメモリなどのように一般的に高価なラインメモリを用いる必要がある。
【０００４】
これを回避するために、例えば特許文献１には、フィルタ回路の前段に設けられる画像メモリを汎用メモリで実現することができる画像メモリ回路が開示されている。
【０００５】
この従来技術では、水平垂直変換回路を２系統設けることにより、バッファメモリから水平垂直変換回路へのデータの読み出しと、水平垂直変換回路からフィルタ回路への画像データの読み出しが二つの水平垂直変換回路で交互に行われるようにして、信号処理効率の向上が図られている。これについて図１４を用いて説明する。
【０００６】
図１４は、特許文献１に開示されている従来の画像メモリ回路について説明するための図である。
【０００７】
図１４に示すように、従来の画像メモリ回路１００では、メインメモリ１０１に格納されたＭ画素×Ｎラインの画像データがラスタスキャンにより１画素分ｋビットずつ出力される。ラスタスキャンでは、画像データを１行目の左端から右端へスキャンし、１行目の右端までスキャンしたら、その下の２行目の左端から再びスキャンを行う。ラスタスキャンとは、このような行の左から右へ、行の上段から下段へ向かうスキャンを順次行う走査方式である。
【０００８】
そのラスタスキャンで出力されたデータは、シリアルパラレル変換部１０２によってｒ画素（≦Ｍ）分連結され、ｗ＝ｋ×ｒビット幅のデータとしてｗビット幅のバッファメモリ１０３に順次書き込まれる。空間フィルタ回路１０５のサイズをｍ画素×ｎラインとした場合、このバッファメモリ１０３のメモリ容量としては、元画像における、フィルタサイズの行サイズに相当するｎライン分、即ち（処理したい画像の水平方向画素数（列数）Ｍ）×（フィルタサイズのライン数（行数）ｎ）×（１画素のビット数ｋ）の容量が用意されていなければならない。
【０００９】
このバッファメモリ１０３からデータを読み出して空間フィルタ回路１０５にデータを供給する際に、連続するフィルタサイズの行数（ライン数）ｎラインについて各ライン上の同一位置（縦方向の位置）の各画素データが並列でかつ同時に空間フィルタ回路１０５へ供給されるように、２組の水平垂直変換回路１０４ａおよび１０４ｂが設けられている。この水平垂直変換回路１０４ａおよび１０４ｂでは、バッファメモリ１０３からのデータ読み出しを、フィルタサイズのライン数（行数）に相当するｎ回順次、行うことによってｒ画素×ｎライン分のデータが読み出され、水平垂直変換回路１０４ａまたは１０４ｂに設けられたフリップフロップに保持される。その後、空間フィルタ回路１０５の動作クロックに合わせて、各ライン上の同一画素位置のデータのフィルタサイズの行数に相当するｎライン分ずつを同時に読み出す動作をｍ回行うことによって、ｍ画素×ｎラインのサイズの空間フィルタ回路１０５によるフィルタリング処理を行うことができる。
【００１０】
昨今は、ディジタルスチルカメラを初めとする画像データを扱う電子情報機器において、小型化および低消費電力化が急速に進行しており、従来のように外部にＦＩＦＯを設けるような回路構成は採用されず、全ての回路構成が一つのＬＳＩの内部で実現される傾向にある。よって、空間フィルタ回路１０５の前段に設けられるバッファメモリ１０３についても、汎用のＲＡＭ、例えばＬＳＩ内部では一般的にＳＲＡＭによって実現する必要があるため、この特許文献１に記載されている方法は有効である。
【００１１】
また、特許文献２では、画像データなどの大容量データを単一バスにて転送するバス制御方式を有する画像処理システムおよびこれを用いたデジタルスチルカメラ装置について開示されている。その中で、データバスのデータ転送効率を向上させるため、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）に連続データ転送数設定レジスタとリクエスト一時停止手段とを設け、競合制御部にＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）優先設定レジスタを設けている。これにより、ＤＭＡＣとＣＰＵとにバス使用権の割り当てが可能となり、１系統のシステムバスで全てのデータ転送を効率良く行うことができる。
【特許文献１】特開平１０−２８５３６０号公報
【特許文献２】特開２００２−２４１６６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上記特許文献１に記載されている従来技術では、バッファメモリ１０３から例えば水平垂直変換回路１０４ａへのデータ書き込みの場合と、水平垂直変換回路１０４ｂからフィルタ回路１０５へのデータ読み出しの場合との２系統設け、フィルタ回路１０５へのデータ読み出しを水平垂直変換回路１０４ａおよび１０４ｂで交互に行うことにより、処理効率の向上を図っている。
【００１３】
しかしながら、上記特許文献１に記載されている従来技術では、バッファメモリ１０３のメモリ容量として、（処理したい画像の水平方向画素数（列数）Ｍ）×（フィルタサイズのライン数（行数）ｎ）×（１画素のビット数ｋ）に相当するメモリ容量を用意することを前提としている。このため、ＬＳＩの内部に大きなメモリを用意する場合は、即、その占有面積の拡大と共にコストアップにつながる。これに加えて、最近のデジタルカメラのような数１００万画素の画像処理に対応するためには、上記処理したい画像の水平方向画素数（列数）Ｍの値が大きくなることに伴い、大きなメモリを必要とすることになるため、更なる占有面積の拡大と共に多大なコストアップとなる。
【００１４】
このメモリ量が増大する場合の対応として、本発明の説明として図１にも示したように、（処理したい画像の水平方向画素数（列数）Ｍ）×（フィルタサイズのライン数（行数）ｎ）×（１画素のビット数ｋ）に相当する大きなメモリを各機能モジュールに配置することを回避するため、処理したい画像を、ｐ画素×ｑラインの小矩形領域に分割して左上の小矩形領域から水平方向に順番に、小矩形領域単位で切り出して各機能モジュールへ転送する方法について考える。このように、小矩形領域に分割された画像単位でフィルタリング処理を実行していく場合に、上記特許文献１に開示されている従来の方法を用いると、各小矩形領域のフィルタ処理を開始する毎に、まず、水平垂直変換回路へのｎライン分の読み出しが必要となるため、システムの性能がさらに低下する。
【００１５】
つまり、バッファメモリ１０３へのデータ書き込みが完了してから、フィルタ回路１０５で必要となるｎライン分の最初のデータの出力が開始されるまで、即ち、バッファメモリ１０３から一方の水平垂直変換回路１０４ａまたは１０４ｂへのデータの読み出しの際に、バッファメモリ１０３からの読み出しをフィルタサイズの行数（ライン数）に相当するｎ回分行う必要があり、その分、画像処理システムの性能が低下する。
特許文献２の従来技術は、画像処理システムであるものの、前述したように、画像データなどの大容量データを単一バスによりデータ転送するバス制御方式について開示されているだけである。
【００１６】
本発明は、上記従来の問題を解決するもので、フィルタ回路の前段に配置されるメモリ容量を削減しつつ、処理効率低下を防ぐことができる画像メモリおよびこの画像メモリを用いた画像処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明の画像メモリは、メインメモリに格納されたＭ画素×Ｎライン（Ｍ，Ｎは自然数）の画像データからｐ画素×ｑライン（ｐ，ｑは自然数；ｐ＜Ｍ，ｑ＜Ｎ）の複数の矩形領域が切り出し可能とされ、該矩形領域毎のラスタスキャンによりｋビット×ｓ画素（ｋ，ｓは自然数）のバス幅を持つバスを介して転送されてくる該矩形領域の画像データがメモリ部に一旦格納されて、ｍ画素×ｎライン（ｍ，ｎは自然数）の画像データに対してフィルタ処理を行うフィルタ回路に読み出し可能とされる画像メモリであって、該メモリ部は、複数のラインメモリを有し、データ書き込み時に、該矩形領域の行方向に少なくとも該バス幅分だけ連続した各画像データが別々の該ラインメモリに格納され、かつ、該矩形領域の列方向に少なくとも該フィルタ回路のライン数分連続した各画像データが別々の該ラインメモリに格納され、データ読み出し時に、別々の該ラインメモリに格納された画像データが、該矩形領域におけるｎ行分列毎の各画像データに対応した画像データとして読み出されて、直接、該フィルタ回路に供給されており、そのことにより上記目的が達成される。
【００１８】
また、好ましくは、本発明の画像メモリにおける複数のラインメモリは、ビット幅が画像データの１画素分ｋであるラインメモリを、前記バス幅に含まれる画素数ｓと前記フィルタ回路のライン数ｎのうち、大きい方の値のｔ本としている。
【００１９】
さらに、好ましくは、本発明の画像メモリにおける複数のラインメモリは、ビット幅が画像データの１画素分ｋであるＳＲＡＭを、前記バス幅に含まれる画素数ｓと前記フィルタ回路のライン数ｎのうち、大きい方の値のｔ本としている。
【００２０】
さらに、好ましくは、本発明の画像メモリにおけるメモリ部は、前記バスから転送されてくる前記矩形領域の１ラインｐ画素分の画像データと、前記フィルタ回路の水平方向のサイズｍに応じたｍ−１画素分の画像データとの合計であるｐ＋ｍ−１画素分のデータを格納可能で、かつ該メモリ部の本数ｔの整数倍ｇであるエリアを１ライン分のエリアとし、該１ライン分のエリアを該矩形領域のライン数ｑだけ有している。
【００２１】
さらに、好ましくは、本発明の画像メモリにおいて、前記ラインメモリにおける前記矩形領域の１ライン分のデータ格納用エリアは、該矩形領域の１ライン分の画素数ｐとｍ−１を加えたデータ量で、かつ、該ラインメモリの同一アドレスが全て埋まる量となり、かつ下記式
ｐ＋ｍ−１≦ｔ×ｇ  （但し、ｇは２以上の整数）
を満たすように決定されている。
【００２２】
さらに、好ましくは、本発明の画像メモリにおいて、前記メモリ部への画像データの書き込み動作を制御する書き込み制御部と、該メモリ部から前記フィルタ回路への画像データの読み出し動作を制御する読み出し制御部とを有する。
【００２３】
さらに、好ましくは、本発明の画像メモリにおいて、前記バスの一クロックサイクルにより転送されてくる、前記矩形領域の一ライン上で連続するｓ画素の画像データのそれぞれを前記ｔ本の各ラインメモリにそれぞれ書き込み、かつ、少なくとも前記フィルタ回路のライン数ｎの数だけ連続する該矩形領域の各ライン上で水平方向に同じ位置に相当する画素データを該ｔ本の各ラインメモリに別々に書き込む書き込み制御部と、該ｔ本の各ラインメモリに書き込まれている、該矩形領域のｎライン分の各ライン上で水平方向に同じ位置に相当する各画素データを並列に読み出す読み出し制御部とを有する。
【００２４】
さらに、好ましくは、本発明の画像メモリにおける書き込み制御部は、前記バスから転送されてくる画像データの１ライン目の１画素目、２画素目、３画素目、・・・、ｐ画素目が、１本目のラインメモリのワードアドレス０、２本目のラインメモリのワードアドレス０、３本目のラインメモリのワードアドレス０、・・・、ｔ本目のラインメモリのワードアドレス０、１本目のラインメモリのワードアドレス１、２本目のラインメモリのワードアドレス１、・・・の順に各ラインメモリのアドレスの先頭から格納されるように前記メモリ部に対して書き込みアドレスを供給する。
【００２５】
さらに、好ましくは、本発明の画像メモリにおける書き込み制御部は、前記矩形領域の１ラインｐ画素分の画像データを前記ｔ本のラインメモリに振り分けて格納する場合に、１本のラインメモリ当たりに必要とされるワード数をｕ、隣接する矩形領域の各ライン上のｍ−１画素分のデータを格納するために１本のラインメモリ当たりに必要とされるワード数をｖ、ｇ＝ｕ＋ｖとして、前記バスから転送されてくる画像データの２ライン目の１画素目、２画素目、３画素目、・・・、ｐ画素目が、２本目のラインメモリのワードアドレスｇ、３本目のメモリのワードアドレスｇ、・・・、ｔ本目のラインメモリのワードアドレスｇ、１本目のメモリのワードアドレスｇ、２本目のラインメモリのワードアドレスｇ＋１、３本目のメモリのワードアドレスｇ＋１・・・の順に各ラインメモリのアドレスｇ番地から格納されるように前記メモリ部に対して書き込みアドレスを供給する。
【００２６】
さらに、好ましくは、本発明の画像メモリにおける書き込み制御部は、前記矩形領域の１ラインｐ画素分の画像データを前記ｔ本の各ラインメモリに振り分けて格納する場合に、１本のラインメモリ当たりに必要とされるワード数をｕ、隣接する矩形領域の各ライン上のｍ−１画素分のデータを格納するために１本のラインメモリ当たりに必要とされるワード数をｖ、ｇ＝ｕ＋ｖとして、前記バスから転送されてくる画像データのａライン目の１画素目、２画素目、３画素目、・・・、ｐ画素目が、ａ本目のラインメモリ（ＲＡＭ）のワードアドレス（ａ−１）×ｇ、ａ＋１本目のラインメモリのワードアドレス（ａ−１）×ｇ、・・・、ｔ本目のラインメモリのワードアドレス（ａ−１）×ｇ、１本目のラインメモリのワードアドレス（ａ−１）×ｇ、２本目のラインメモリのワードアドレス（ａ−１）×ｇ、・・・、ａ本目のラインメモリのワードアドレス（ａ−１）×ｇ＋１、ａ＋１本目のラインメモリのワードアドレス（ａ−１）×ｇ＋１、・・・の順に各ラインメモリのアドレス（ａ−１）×ｇ番地から格納されるように前記メモリ部に対して書き込みアドレスを供給する。
【００２７】
さらに、好ましくは、本発明の画像メモリにおける書き込み制御部は、前記矩形領域の各ラインの画像データを格納する際に、前記メモリ部の各ライン用エリアにおいて、直前の前記矩形領域における同ラインの最後のデータに引き続くデータとして格納されるように、書き込みアドレスを生成する。
【００２８】
さらに、好ましくは、本発明の画像メモリにおける書き込み制御部は、前記バスのクロック毎にカウントアップ動作を行い、その出力がｔ本の前記ラインメモリのアドレス信号として用いられる第１カウンタと、該第１カウンタのカウント値が供給されて、前記矩形領域の１ラインの画素数ｐがｔ本の各ラインメモリに書き込み完了することを検出するラインエンド比較器と、該ラインエンド比較器からの出力がイネーブル端子に供給されて値が１つカウントアップされる第２カウンタと、該第２カウンタのカウント値が選択信号として供給され、該バスを介して供給される前記ｓ画素分の入力画像データを該選択信号によって切り替えて該ｔ本の各ラインメモリに供給する入力データマルチプレクサとを有する。
【００２９】
さらに、好ましくは、本発明の画像メモリにおける読み出し制御部は、前記矩形領域の１ラインｐ画素分の画像データをｔ本の前記ラインメモリに振り分けて格納する場合に１本のラインメモリ当たりに必要とされるワード数をｕ、隣接する該矩形領域の各ライン上のｍ−１画素分の画像データを格納するために１本のラインメモリ当たりに必要とされるワード数をｖ、ｇ＝ｕ＋ｖとして、０ライン目からｎ−１ライン目のｎライン分の画像データを読み出す場合に、ｎライン分の各ラインの先頭画素の画像データが、１本目のラインメモリのワードアドレス０、２本目のラインメモリのワードアドレスｇ、３本目のラインメモリのワードアドレス２×ｇ、・・・、ｎ本目のラインメモリのワードアドレス（ｎ−１）×ｇから同時に読み出されるように前記メモリ部に対して読み出しアドレスを供給する。
【００３０】
さらに、好ましくは、本発明の画像メモリにおける読み出し制御部は、前記矩形領域の１ラインｐ画素分の画像データをｔ本の前記ラインメモリに振り分けて格納する場合に１本のラインメモリ当たりに必要とされるワード数をｕ、隣接する該矩形領域の各ライン上のｍ−１画素分の画像データを格納するために１本のラインメモリ当たりに必要とされるワード数をｖ、ｇ＝ｕ＋ｖとして、０ライン目からｎ−１ライン目のｎライン分の画像データを読み出す場合に、ｎライン分の各ラインの２番目の画素の画像データが、２本目のラインメモリのワードアドレス０、３本目のラインメモリのワードアドレスｇ、４本目のラインメモリのワードアドレス２×ｇ、・・・から同時に読み出されるように前記メモリ部に対して読み出しアドレスを供給する。
【００３１】
さらに、好ましくは、本発明の画像メモリにおける読み出し制御部は、前記矩形領域の１ラインｐ画素分の画像データをｔ本の前記ラインメモリに振り分けて格納する場合に１本のラインメモリ当たりに必要とされるワード数をｕ、隣接する該矩形領域の各ライン上のｍ−１画素分の画像データを格納するために１本のラインメモリ当たりに必要とされるワード数をｖ、ｇ＝ｕ＋ｖとして、０ライン目からｎ−１ライン目のｎライン分の画像データを読み出す場合に、ｎライン分の各ラインのｂ番目の画素データが、ｂ本目のラインメモリのワードアドレス０、ｂ＋１本目のラインメモリのワードアドレスｇ、ｂ＋２本目のラインメモリのワードアドレス２×ｇ、・・・から同時に読み出されるように前記メモリ部に対して読み出しアドレスを供給する。
【００３２】
さらに、好ましくは、本発明の画像メモリにおける読み出し制御部は、前記矩形領域のｎライン分の画像データを読み出す際に、直前の矩形領域における各ラインの最終データの位置からｍ−１画素分遡った位置から読み出されるように、読み出しアドレスを生成する。
【００３３】
さらに、好ましくは、本発明の画像メモリにおける読み出し制御部は、直前のラインを処理したときの初期値に、前記矩形領域の１ラインｐ画素分の画像データをｔ本の前記ラインメモリに振り分けて格納する場合に、１本のラインメモリ当たりに必要とされるワード数をｕ、隣接する該矩形領域の各ライン上のｍ−１画素分のデータを格納するために１本のラインメモリ当たりに必要とされるワード数をｖとして、前記フィルタ回路の処理クロック毎に１ずつカウントアップ動作を行い、ｔ回カウントされる毎にＣＡＲＲＹ信号を出力し、該矩形領域の１ライン分に相当するｐ回カウントされる毎にカウンタの初期値として直前のラインを処理したときの初期値に１を加えた数値（数字）が設定される下位カウンタと、該下位カウンタからのＣＡＲＲＹ信号がイネーブル端子へ供給されて値が１つカウントアップされ、該矩形領域の１ライン分に相当するｐ画素が読み出される毎に、ｇ＝ｕ＋ｖを加算した値を初期値としてカウントアップが行われる上位カウンタと、該上位カウンタの値にｇを順に加算していくｔ−１個の加算器と、該下位カウンタのカウンタ値が選択信号として供給され、該上位カウンタのカウンタ値と該加算器による加算値を該選択信号によって切り替えてｔ本の該ラインメモリにアドレスとして供給するアドレスマルチプレクサと、該下位カウンタのカウンタ値が該選択信号として供給され、該ｔ本のラインメモリからの出力データを該選択信号によって切り替えて該フィルタ回路に供給する出力データマルチプレクサとを有する。
【００３４】
さらに、好ましくは、本発明の画像メモリにおいて、前記バスを介して転送されてくる前記矩形領域の最初のｎ−１ライン分の画像データが、前の行で同じ列の該矩形領域における最後のｎ−１ライン分の画像データと同じである。
【００３５】
本発明の画像処理システムは、本発明の上記画像メモリと、該画像メモリから画像データが供給されてフィルタリング処理を行うフィルタ回路とを有する画像処理機能モジュールを一または複数備えており、そのことにより上記目的が達成される。
【００３６】
上記構成により、以下に、本発明の作用について説明する。
【００３７】
本発明にあっては、画像メモリ（バッファメモリ）に、図３に示すように、ビット幅が画像データの１画素分ｋであるラインメモリ（例えばＳＲＡＭ）を、システムバスのバス幅に含まれる画素数ｓ以上かつフィルタ回路のライン数ｎ以上、例えばｓとｎの大きい方の数ｔ本だけ設ける。この画像メモリに画像データを格納するときには、システムバスの一つのクロックサイクルにて転送されてくる、一つのライン上で連続するｓ画素のデータの各々をｔ本のラインメモリの別々のものに書き込み、かつ、少なくともフィルタ回路のライン数ｎ以上の数だけ連続する各ライン上で水平方向に同じ位置に相当する画素データ（同列のデータ）をｔ本のラインメモリの別々のものに書き込む。即ち、小矩形領域に分割された画像データにおいて各行のデータ群のそれぞれを別々のラインメモリに書き込み、かつ、小矩形領域に分割された画像データにおける同列のデータ群がそれぞれ別々のラインメモリに書き込まれるようにデータを格納する。
【００３８】
このことにより、画像メモリから画像データを読み出してフィルタに供給する際には、ｎライン分の各ライン上で水平方向に同じ位置の画素データ（ｎ行分の同列データ）を各画像メモリから同時に並列に読み出すことが可能となる。
【００３９】
よって、フィルタ処理に必要なライン数の画素データ（ｎ行分の同列データ）を、従来のように水平垂直変換回路等を介さずに画像処理クロックのクロック毎にバッファメモリ部から直接読み出しを行うことが可能になる。
【発明の効果】
【００４０】
以上により、本発明によれば、処理したい画像データを小矩形領域に分割し、バッファメモリ部において、小矩形領域の各行方向のデータ群がそれぞれ別々のラインメモリに書き込まれ、かつ、小矩形領域の各列方向のデータ群について、それぞれが別々のラインメモリに書き込まれるように格納する。このため、画像メモリから画像データを読み出してフィルタ回路部に供給する際には、ｎライン分の各ライン上で水平方向に同じ位置（左端から何番目）の画素データ（小矩形領域のｎ行分の同列データ）を各メモリから並列に読み出すことができる。
【００４１】
これによって、フィルタ処理に必要なライン数の画素データを、従来のように水平垂直変換回路などを介さずに画像処理クロックのクロック毎にバッファメモリ部から直接読み出しを行うことができる。このため、従来技術のように必要なライン数分のデータを一旦フリップフロップへ読み出すという前処理によるオーバーヘッドなしに、システムバスからバッファメモリ部へのデータ転送が終了すれば、すぐに後段のフィルタ回路部へのデータ供給を開始できる。処理したい画像データを小矩形領域に分割したことにより、フィルタ処理の前段に配置するメモリ容量を削減しつつ、バッファメモリ部から直接フィルタ回路部へデータ読み出しを行うことにより、処理のオーバーヘッドを最小限に抑えることができる。
【発明を実施するための最良の形態】
【００４２】
本発明の画像メモリの実施形態を用いた画像処理システムについて図面を参照しながら説明する。
【００４３】
図１は、本発明の実施形態に係る画像メモリを用いた画像処理システムの要部構成例を示すブロック図である。
【００４４】
図１において、本実施形態の画像処理システム１は、図２に示すようなＭ画素×Ｎラインの１画面分の画像データが格納されたメインメモリ２と、１画素分ｋビット×ｓ画素（ｋ，ｓは自然数）のバス幅を持つシステムバス３と、このシステムバス３を介してメインメモリ２と接続され、フィルタ処理用の画像データを一時記憶するメモリ部としてのバッファメモリ４Ａおよび、ｍ画素×ｎライン（ｍ，ｎは自然数）の画像データに対して空間フィルタリング処理（フィルタ処理）を行うフィルタ５Ａ（フィルタ回路）を持つ機能モジュールＡと、これとフィルタ機能の異なるフィルタ５Ｂおよびフィルタ処理用のバッファメモリ４Ｂを持つ機能モジュールＢと、これとフィルタ機能の異なるフィルタ５Ｃおよびフィルタ処理用のバッファメモリ４Ｃを持つ機能モジュールＣと、これとフィルタ機能の異なるフィルタ５Ｄおよびフィルタ処理用のバッファメモリ４Ｄを持つ機能モジュールＤと、これとフィルタ機能の異なるフィルタ５Ｅおよびフィルタ処理用のバッファメモリ４Ｅを持つ機能モジュールＥとを備えている。
【００４５】
このように、各機能モジュールＡ〜Ｅにはそれぞれ、各種の空間フィルタリング処理（フィルタ処理）を行うためのフィルタ５Ａ〜５Ｅがそれぞれ設けられており、その前段に、システムバス３から転送されてくるデータを一旦格納してフィルタ５Ａ〜５Ｅに供給するためのメモリ部としてのバッファメモリ４Ａ〜４Ｅがそれぞれ設けられている。このフィルタ処理としては、色補間処理（拡大／縮小処理を含む）や、輝度値を平均化して画像を滑らかにする画像平均化処理、画像エッジ強調処理および９０度回転処理など、所定数の画素値（画像データ）を使って新しい画素値（画像データ）を得るための画像処理である。なお、このバッファメモリおよびその制御部が設けられた画像メモリについては、図４を用いて詳細に後述する。
【００４６】
メインメモリ２には、１画面分がＭ画素×Ｎラインである画像データが格納されている。各種画像処理を実行する際には、各機能モジュールＡ〜Ｅから時分割でシステムバス３にアクセスが行われる。Ｍ画素×Ｎラインの１画面分の画像データから複数のｐ画素×ｑライン（ｐ，ｑは自然数；ｐ＜Ｍ，ｑ＜Ｎ）の小矩形領域２ａが順次切り出され、その小矩形領域２ａ毎にラスタスキャンによりｋビット×ｓ画素のバス幅を持つシステムバス３を経由して順次転送されてくるた画像データが、各機能モジュールＡ〜Ｅのバッファメモリ４Ａ〜４Ｅの少なくともいずれかのメモリ部に一旦格納され、画像データが格納されたメモリ部から、フィルタサイズｍ画素×ｎラインの各フィルタ５Ａ〜５Ｅの少なくともいずれかに読み出されて供給されるようになっている。
【００４７】
本実施形態の画像処理システム１は、メインメモリ２のＭ画素×Ｎラインの画像データを、ｐ画素×ｑラインの矩形領域２ａに分割し、システムバス３を介して、この矩形領域２ａの横方向（水平方向）に少なくともバス幅に含まれる画素数分だけ連続した各データを別々のラインメモリからなるバッファメモリ４Ａに格納し、かつ、この矩形領域２ａの縦方向（列方向）に少なくともフィルタ５Ａのライン数分だけ連続した各データを別々のラインメモリからなるバッファメモリ４Ａに格納し、バッファメモリ４Ａに書き込まれたデータを、ラインメモリ群から、矩形領域２ａにおけるｎ行分列毎に読み出し、直接、ｍ列×ｎ行のフィルタ５Ａに供給することを特徴構成としている。
【００４８】
上記構成により、メインメモリ２に格納されたＭ画素×Ｎラインの１画面分の画像データから、ｐ画素×ｑラインの小矩形領域２ａが順次切り出される。この各小矩形領域２ａは、ラスタスキャンによりｋビット×ｓ画素の幅を持つシステムバス３を経由して機能モジュールＡ〜Ｅのバッファメモリ４Ａ〜４Ｅのうちの一つ、例えばバッファメモリ４Ａにデータが転送されてフィルタ処理のために一旦格納される。その後、バッファメモリ４Ａからデータが読み出され、ｍ画素×ｎラインのフィルタ５Ａへ順次データが供給されて、所定の空間フィルタリング処理による画像処理が行われる。
【００４９】
このような画像処理システム１において、システムバス３からバッファメモリ４Ａへの画像データの転送はこのシステムバス幅で行い、バッファメモリ４Ａからフィルタ５Ａへのデータ供給は、システムバス３からバッファメモリ４Ａへのデータ転送終了後、余分な待ち時間なしにすぐにデータ供給を開始することができる。
【００５０】
この機能モジュールＡ内のメモリ部としてのバッファメモリ４Ａの構成について詳細に説明する。
【００５１】
図３に示すように、バッファメモリ４Ａ（メモリ部）に、ビット幅が画像データの１画素のビット数ｋであるラインメモリ（例えばＳＲＡＭ）を、システムバス３のバス幅に含まれる画素数ｓ以上でかつフィルタ５Ａのライン数ｎ以上、例えばｓとｎの大きい方の数ｔ本だけ設ける。
【００５２】
このバッファメモリ４Ａなどのメモリ部に画像データを格納するときには、システムバス３の一クロックサイクルにて転送されてくる、一つのライン上で連続するｓ画素のデータの各々をｔ本のラインメモリの別々のものに書き込み、かつ、少なくともフィルタ回路のライン数ｎ以上の数だけ連続する各ライン上で水平方向に同じ位置（縦方向の位置）に相当する画素データをｔ本のラインメモリの別々のものに書き込む。
【００５３】
例えば、小矩形領域２ａの１ライン上で連続する画素群が別々のラインメモリに書き込まれるように、このバッファメモリ４Ａなどのメモリ部に画像データを格納するときに、システムバス３から転送されてくる画像データの１ライン目の１画素目、２画素目、３画素目、・・・、ｐ画素目を、順に、図３に示す１本目のメモリＮｏ，１のワードアドレス０、２本目のメモリＮｏ．２のワードアドレス０、３本目のメモリＮｏ．３のワードアドレス０、・・・ｔ本目のメモリＮｏ．ｔのワードアドレス０、１本目のメモリＮｏ．１のワードアドレス１、２本目のメモリＮｏ．．２のワードアドレス１、・・・の順に各メモリのアドレスの先頭から縦方向（列方向）に順次格納していく。
【００５４】
ここで、フィルタ５Ａの前段に設けられるバッファメモリ４Ａなどのメモリ部に必要とされるメモリ容量について説明する。
【００５５】
メインメモリ２の画像データ群をいくつかの小矩形領域２ａに分割してフィルタリング処理を行う際に、一つの小矩形領域２ａの処理後に、水平方向にその小矩形領域２ａに隣接する例えば右側の小矩形領域２ａを処理する場合、フィルタ処理後の出力を連続的に得るためには、水平方向のフィルタサイズｍに対して、フィルタ処理のために、水平方向にｍ−１画素分だけ、一つ前の小矩形領域２ａのデータを必要とする。このため、フィルタ５Ａの前段に配置されるメモリ部としては、次の小矩形領域２ａの処理時に必要とされる、前の小矩形領域２ａの各ラインの最後のｍ−１画素分に加えて、次の小矩形領域２ａ分のデータを格納可能な容量を用意する必要がある。
【００５６】
このため、図３に示すように、転送されてくる小矩形領域２ａの１ライン分ｐ画素のデータを格納した後ろに、フィルタ５Ａの水平方向のサイズｍに応じたｍ−１画素分のデータを格納可能な領域を設けることが好ましい。転送されてくる１ライン分のデータｐ画素分とフィルタ５Ａの水平方向のサイズｍに応じたｍ−１画素分の合計であるｐ＋ｍ−１画素分のデータを格納可能で、メモリ部の本数ｔの整数倍ｇであるエリアを小矩形領域２ａの１ライン分のエリアとして、この１ライン分のエリアを小矩形領域２ａのライン数ｑだけ設けることが好ましい。
【００５７】
以下、図３に示すバッファメモリ４Ａ（ＳＲＡＭ）へのアクセスについて、ｙ番目（ｙ＝１，２，３，・・・ｔのＳＲＡＭのワードアドレスｚ（ｚ＝０，１，２，・・・）へのアクセスをＳＲＡＭ（ｚ，ｙ）へのアクセスとして説明する。また、図２に示す１画面Ｎライン×Ｍ画素の画像データにおける水平方向ｉ画素目（ｉ＝１，２，３，…）、垂直方向ｊ画素目（ｊ＝１，２，３，…）をＤ（ｉ，ｊ）とする。
【００５８】
図２に示すｑライン×ｐ画素の小矩形領域２ａにおける１ライン目のデータＤ（１，１）、Ｄ（２、１）、・・・、Ｄ（ｐ，１）は、図３に示すように、ＳＲＡＭ（０，１），ＳＲＡＭ（０，２），・・・，ＳＲＡＭ（０，ｔ），ＳＲＡＭ（１，１），ＳＲＡＭ（１，２）・・・の順に縦方向に書き込まれる。
【００５９】
ここで、小矩形領域２ａの１ライン分のデータ格納用エリアは、小矩形領域２ａの１ライン画素数ｐとｍ−１を加えたデータ量以上で、かつ、各ＳＲＡＭの同一アドレスが全て埋まる量となるように決定される。よって、下記式
ｐ＋ｍ−１≦ｔ×ｇ  （但し、ｇは整数）
を満たすように、図３に示すｔ×ｇの各ライン用エリアが確保される。なお、上記式において、ｔはバッファメモリ４Ａとして用意されるｋビット幅のラインメモリの本数であり、システムバス幅に含まれる画素数ｓとフィルタ５Ａのライン数ｎのいずれか大きい方の値である。また、ｕは小矩形領域２ａの１ライン分ｐ画素をｔ本のラインメモリへ振り分けて格納する場合に１本のメモリ当たりで必要となるワード数である。さらに、ｖは隣接する小矩形領域２ａにおける各ラインのｍ−１画素分のデータを格納するために１本のメモリ当たりで必要となるワード数であり、ｍ−１をｔで除して小数点以下を繰り上げた値とする。さらに、ｇ＝ｕ＋ｖである。
【００６０】
以上のようにして小矩形領域２ａの１ライン分のデータが格納されると、次のラインデータは各メモリのアドレスｇ番地から順に書き込まれる。このとき、図２に示す２ライン目の最初（１画素目）のデータＤ（１，２）の書き込みは、１本目のＳＲＡＭＮｏ．１ではなく、１本分下方にずらして、２本目のＳＲＡＭＮｏ．２から始め、図３に示すように、ＳＲＡＭ（ｇ，２），ＳＲＡＭ（ｇ，３），・・・，ＳＲＡＭ（ｇ，ｔ），ＳＲＡＭ（ｇ，１），ＳＲＡＭ（ｇ＋１，２），ＳＲＡＭ（ｇ＋１，３），・・・の順に書き込みが進められる。
【００６１】
以降、同様の手順で、メインメモリ２からシステムバス３を介して転送されてくる小矩形領域２ａのデータが全てメモリ部（バッファメモリ４Ａ）に格納される。例えば、システムバス３から転送されてくる画像データのａライン目の１画素目、２画素目、３画素目、・・・、ｐ画素目は、ＳＲＡＭ（（ａ−１）×ｇ、ａ）、（（ａ−１）×ｇ、ａ＋１）、・・・、（（ａ−１）×ｇ、ｔ）、（（ａ−１）×ｇ、１）、（（ａ−１）×ｇ、２）、・・・、（（ａ−１）×ｇ＋１、ａ）、（（ａ−１）×ｇ＋１、ａ＋１）、・・・の順に各メモリのアドレス（ａ−１）×ｇ番地から書き込まれる。
【００６２】
以上のような書き込み処理により、メモリ部（例えばバッファメモリ４Ａ）には、小矩形領域２ａ毎の各ラインの先頭から各ライン上で水平方向に同じ位置（小矩形領域２ａの縦方向の位置）の画像データが別々のラインメモリに格納される。即ち、以上の書き込み処理により、バッファメモリ４Ａには、小矩形領域２ａの各行方向に連続したデータ群について、先頭（左端）のデータからそれぞれが別々のラインメモリに書き込まれ、かつ、小矩形領域２ａの各列方向に連続したデータ群について、それぞれが別々のラインメモリに書き込まれるように格納される。
【００６３】
このため、バッファメモリ４Ａ（メモリ部）からデータを読み出してフィルタ５Ａに供給する際には、ｎライン分の各ライン上で水平方向に同じ位置（小矩形領域２ａの縦方向の位置）の画素データを各メモリから並列に読み出すことができる。
【００６４】
例えば、０ライン目からｎ−１ライン目のｎライン分のデータを読み出す場合には、ｎライン分の各ラインの先頭画素が、ＳＲＡＭ（０，１），ＳＲＡＭ（ｇ，２），ＳＲＡＭ（２×ｇ，３），・・・、ＳＲＡＭ（（ｎ−１）×ｇ，ｎ）から同時に読み出されてフィルタ５Ａに供給される。また、各ラインの２番目の画素は、ＳＲＡＭ（０，２），ＳＲＡＭ（ｇ，３），ＳＲＡＭ（２×ｇ、４）、・・・のように先頭画素からメモリの番号を一つ進めてアドレッシングが行われてｎライン分が同時に並列に読出され、フィルタ５Ａに供給される。
【００６５】
以降、同様の手順でＳＲＡＭの番号を一ずつずらしながら読み出しが行われる。各ラインのデータが格納されているエリアにおいて、ＳＲＡＭの同一アドレスが一巡すると、ＳＲＡＭのアドレスが一つ進められる。例えば、各ラインのｂ番目の画素は、ＳＲＡＭ（０，ｂ）、ＳＲＡＭ（ｇ，ｂ＋１），ＳＲＡＭ（２×ｇ、ｂ＋２）、・・・のように先頭画素からメモリの番号をｂ−１進めてアドレッシングが行われてフィルタサイズのｎライン分が同時に読出されて、フィルタ５Ａに供給される。
【００６６】
このようにして、０ライン目からｎ−１ライン目までのｎライン分のデータが読み出され、転送された小矩形領域２ａの最初のｎラインの最終画素までフィルタリング処理が終了すると、次に、１ライン目からｎライン目までのｎライン分のデータが順次並列に小矩形領域２ａの各ラインの先頭から読み出される。
【００６７】
この際には、ＳＲＡＭの読み出し開始アドレスがｇだけ進められ、また、読み出しが開始されるメモリ番号は一つ前のラインの処理開始時におけるメモリ番号の次の番号に設定される。例えば、１ライン目からｎライン目のｎライン分のデータを読み出す場合に、ｎライン分の各ラインの先頭画素は、ＳＲＡＭ（ｇ、２）、ＳＲＡＭ（２×ｇ，３）、・・・から同時に読み出されてフィルタ５Ａに供給される。
【００６８】
以降、同様の手順でＳＲＡＭの番号を１ずつずらしながら読み出しが行われる。このようにして１ライン目からｎライン目までのｎライン分データが最終画素まで読み出され、フィルタリング処理が行われる。なお、読み出しが開始されるメモリ番号がｔまで進むと、その次の小矩形領域２ａには再び１から開始されるものとする。
【００６９】
同様に、処理が進められ、最終的にｑ−ｎラインからｑ−１ラインまでのｎライン分データが読み出されると、一つ目の小矩形領域２ａのフィルタリング処理を行うためのデータの読出しが終了する。
【００７０】
このバッファメモリ４Ａなどのメモリ部には、引き続いて、次の小矩形領域２ａの処理を行うためにシステムバス３を経由してデータが転送されてくる。この際、各ラインのデータは、図３に示すように、各ラインのデータを格納するために用意されたエリアに格納されるが、直前の小矩形領域２ａにおける同ラインの最後のデータに引き続くデータとして、上記と同様の手順により格納される。このとき、各ライン用に割り当てられたエリアの最後まで到達した場合には、再び各ライン用に割り当てられたエリアの先頭から書き込みが行われる。これにより、直前の小矩形領域２ａにおける同ラインのデータは、現在書き込み中の小矩形領域２ａにおける同ラインのデータに書き換えられる。
【００７１】
ここで、上述した通り、各ライン用エリアは、次の小矩形領域２ａのフィルタ処理に必要とされる、水平方向に隣接する直前の小矩形領域２ａに含まれる画素数ｍ−１の画素分だけ余分に確保されているため、小矩形領域２ａのフィルタ処理に必要なデータは書き換えられずにメモリに保持されている。
【００７２】
２番目の小矩形領域２ａのデータ転送が終了すると、フィルタ５Ａへそのデータを供給するためにデータの読み出しが行われる。この際、上記と同様の手順によりｎライン分のデータが並列に読み出されるが、直前の小矩形領域２ａにおける各ラインの最終データの位置からｍ−１画素分遡った位置から読み出しが開始される。以上の動作を継続することにより、１行目の小矩形領域２ａについてのデータ転送およびフィルタ処理が完了する。
【００７３】
２行目以降の小矩形領域２ａのデータ転送およびフィルタ処理についても、同様の手順により行われる。但し、各行（「行」とは「水平方向に並んだ小矩形領域２ａ群」）の小矩形領域２ａの最後のｎ−１ライン分は、次の行の小矩形領域の処理にも用いられるため、システムバス３から転送されてくる小矩形領域２ａの最初のｎ−１ライン分は、前の行の各小矩形領域２ａの最後のｎ−１ラインと同じデータとされる。
【００７４】
以上のようにして、最終行の小矩形領域２ａにおける最後の小矩形領域２ａまで、転送およびフィルタ処理を完了する。
【００７５】
以下に、本発明の画像処理システム１の特徴構成について、より具体的に説明する。
【００７６】
本実施形態の具体例では、例えば１画素分のデータをｋ＝８ビット、システムバス３の幅をｋビット×ｓ画素＝８ビット×４画素＝３２ビットとする。また、矩形領域２ａのサイズをｐ画素×ｑライン＝１６画素×１６ラインとし、フィルタサイズをｍ画素×ｎライン＝３画素×３ラインとして更に説明する。
【００７７】
図１のメインメモリ２内には、図２に示すように、Ｍ画素×Ｎラインの画像データが格納されている。図１に示すようにラスタ方向にスキャンされながら、３２ｂｉｔ（４画素）幅のシステムバス３を経由して、例えば機能モジュールＡに画像データが転送される。このとき、一度のバスサイクル（バスクロック）で、バス幅に相当する４画素分のデータが転送される。転送された４画素分のデータは、一旦、バッファメモリ４Ａに格納され、その後、フィルタ５Ａの処理クロックで読み出されて所定のフィルタ処理が行われる。
【００７８】
図４は、図１の画像処理システム１における機能モジュールＡ内のバッファメモリ４Ａおよびその制御部の構成例を示すブロック図である。
【００７９】
図４において、図１の機能モジュールＡは、クロックセレクタ１１、アドレスセレクタ１２およびメモリ部としてのバッファメモリ４Ａを有したバッファメモリ周辺回路１０と、バッファメモリ４Ａへのデータ書き込みを制御する書き込み制御部２０と、バッファメモリ４Ａからフィルタ５Ａへのデータ読み出しを制御する読み出し制御部３０と、読み出し制御部３０で読み出されたデータが入力されるフィルタ５Ａとを備えている。これらのバッファメモリ周辺回路１０、書き込み制御部２０および読み出し制御部３０により画像メモリ（画像メモリ装置）が構成されている。
【００８０】
上記構成により、システムバス３から送られてくる画像データＳＹＳＢＵＳＤ（３１〜０）は、書き込み制御部２０の制御によって、システムバスクロックＳＹＳＣＬＫのタイミングでバッファメモリ４Ａに書き込まれる。
【００８１】
このとき、バッファメモリ周辺回路１０内でバッファメモリ４Ａへのアドレスを選択するアドレスセレクタ１２は、セレクト信号ＭＳＥＬによって、書き込み制御部２０からの書き込みアドレスＭＥＭ１ＩＮＡＤＲ〜ＭＥＭ４ＩＮＡＤＲ側が選択される。また、バッファメモリ周辺回路１０内でバッファメモリ４Ａへのクロックを選択するクロックセレクタ１１は、セレクト信号ＭＳＥＬによってシステムバスクロックＳＹＳＣＬＫ側が選択される。
【００８２】
一つの矩形領域２ａのデータ書き込みが完了すると、引き続いて、読み出し制御部３０の制御によって、画像処理クロックＰＩＸＣＬＫのタイミングで、フィルタリング処理に適した順序でバッファメモリ４Ａから画像データが読み出され、後段のフィルタ５Ａに画像データが供給される。
【００８３】
このとき、バッファメモリ周辺回路１０内でバッファメモリ４Ａへのアドレスを選択するアドレスセレクタ１２は、セレクト信号ＭＳＥＬによって、読み出し制御部３０からの読み出しアドレスＭＥＭ１ＯＵＴＡＤＲ〜ＭＥＭ４ＯＵＴＡＤＲ側が選択される。また、バッファメモリ周辺回路１０内でバッファメモリ４Ａへのクロックを選択するクロックセレクタ１１は、セレクト信号ＭＳＥＬによって画像処理クロックＰＩＸＣＬＫ側が選択される。
【００８４】
ここで、本実施形態の具体例で必要とされるバッファメモリ４Ａのメモリ容量について説明する。
【００８５】
図５は、図４の書き込み後のバッファメモリ４Ａの具体的構成例を示す図である。
【００８６】
図５において、バッファメモリ４Ａは、ビット幅が画像データの１画素分ｋ＝８であるＳＲＡＭを、システムバス３のバス幅に含まれる画素数ｓ＝４とフィルタ５Ａのライン数ｎ＝３のうち、大きい方の数であるｓ＝ｔ＝４本だけ備えている。ラスタスキャンにより転送されてくる矩形領域２ａの１ライン分のデータである１６画素が４本のラインメモリ４１〜４４に分けて格納される。１ライン分のエリアとしては、１本のラインメモリ当たり（１６画素）÷（４本（ラインメモリ４１〜４４の数））＝４画素分が必要であるが、フィルタサイズの横方向がｍ＝３画素であることから、１ライン分としてｍ-１＝３−１＝２画素分が余分に必要とされる。その２画素分が４本のラインメモリ４１〜４４に格納されるため、１本のラインメモリとしては、１画素分を余分に確保して合計（４画素）＋（余分の１画素）＝５画素分を確保する。さらに、小矩形領域２ａのライン数はｑ＝１６ラインであるため、上記１ライン分の領域を１６個用意する。よって、図５に示すように、８ビット幅で（５×１６）ワードのラインメモリＮｏ．１〜Ｎｏ．４の４本を用意することになる。
【００８７】
図６は、図４に示すバッファメモリ周辺回路の一構成例を示す回路図である。
【００８８】
図６において、バッファメモリ周辺回路１０Ａは、図５に示す４本のラインメモリ４１〜４４（ここではＳＲＡＭメモリ４１〜４４とする）と、各ＳＲＡＭメモリ４１〜４４に供給されるアドレスを選択するための図４に示すアドレスセレクタ１２であるアドレスセレクタ１２１〜１２４と、各ＳＲＡＭメモリ４１〜４４に供給されるクロックを選択するための図４に示すクロックセレクタ１１とを有している。
【００８９】
データ書き込み時には、ＳＲＡＭメモリ４１では、書き込み制御部２０の制御によって、画像データＭＥＭ１ＤＩＮが、システムバスクロックＳＹＳＣＬＫのタイミングで、アドレスＭＥＭ１ＩＮＡＤＲに書き込まれる。また、ＳＲＡＭメモリ４２では、書き込み制御部２０の制御によって、画像データＭＥＭ２ＤＩＮが、システムバスクロックＳＹＳＣＬＫのタイミングで、アドレスＭＥＭ２ＩＮＡＤＲに書き込まれる。さらに、ＳＲＡＭメモリ４３では、書き込み制御部２０の制御によって、画像データＭＥＭ３ＤＩＮが、システムバスクロックＳＹＳＣＬＫのタイミングで、アドレスＭＥＭ３ＩＮＡＤＲに書き込まれる。また、ＳＲＡＭメモリ４４では、書き込み制御部２０の制御によって、画像データＭＥＭ４ＤＩＮが、システムバスクロックＳＹＳＣＬＫのタイミングで、アドレスＭＥＭ４ＩＮＡＤＲに書き込まれる。
【００９０】
データ読み出し時には、ＳＲＡＭメモリ４１では、読み出し制御部３０の制御によって、画像処理クロックＰＩＸＣＬＫのタイミングで、アドレスＭＥＭ１ＯＵＴＡＤＲから画像データＭＥＭ１ＤＯＵＴが読み出される。また、ＳＲＡＭメモリ４２では、読み出し制御部３０の制御によって、画像処理クロックＰＩＸＣＬＫのタイミングで、アドレスＭＥＭ２ＯＵＴＡＤＲから画像データＭＥＭ２ＤＯＵＴが読み出される。さらに、ＳＲＡＭメモリ４３では、読み出し制御部３０の制御によって、画像処理クロックＰＩＸＣＬＫのタイミングで、アドレスＭＥＭ３ＯＵＴＡＤＲから画像データＭＥＭ３ＤＯＵＴが読み出される。さらに、ＳＲＡＭメモリ４４では、読み出し制御部３０の制御によって、画像処理クロックＰＩＸＣＬＫのタイミングで、アドレスＭＥＭ４ＯＵＴＡＤＲから画像データＭＥＭ４ＤＯＵＴが読み出される。
【００９１】
図７は、図４の書き込み制御部２０の回路構成例を示す回路図、図８は、図７の入力データマルチプレクサの論理を示す図、図９は、図７の回路構成を用いたデータ書き込み時の動作タイミングを示すタイミング図である。
【００９２】
図７において、書き込み制御部２０は、第１カウンタ２１と、ラインエンド比較器２２と、第２カウンタ２３と、入力データマルチプレクサ２４とを有している。
【００９３】
第１カウンタ２１は、図９に示すように、システムクロックＳＹＳＣＬＫ毎にカウントアップ動作を行い、その出力は各ＳＲＡＭメモリ４１〜４４のアドレス信号ＭＥＭ１ＩＮＡＤＲ〜ＭＥＭ４ＩＮＡＤＲとして使用される。また、第１カウンタ２１からの出力は、小矩形領域２ａの１ライン分の画素データが各ＳＲＡＭメモリ４１〜４４に書き込み完了したことを検出するラインエンド比較器２２にも供給される。
【００９４】
本実施形態では、１ラインｐ＝１６画素のデータがｔ＝４本のＳＲＡＭメモリ４１〜４４へ振り分けられて格納されるため、１６／４＝４カウントで小矩形領域２ａの１ライン分がＳＲＡＭメモリ４１〜４４に格納される。よって、図９に示すように、「０」からスタートしたカウンタ値が「３」になったときにラインエンド比較器２２の出力ＬＥＮＤがハイレベルになり、第２カウンタ２３のイネーブル端子ＥＮＢに入力されて、第２カウンタ２３が一つカウントアップする。
【００９５】
これにより、第２カウンタ２３のカウント値からの出力が選択信号ＳＥＬとして入力データマルチプレクサ２４に入力され、図８に示すように入力データマルチプレクサ２４の選択状況が切り替わる。
【００９６】
入力データマルチプレクサ２４では、図８および図９に示すように、選択信号ＳＥＬが「０」のときに、システムバス３から送られてくる画像データＳＹＳＢＵＳＤ（３１〜０）のうちのＳＹＳＢＵＳＤ（３１〜２４）であるデータＡがＡｏｕｔからＳＲＡＭメモリ４１に供給される画像データＭＥＭ１ＤＩＮとして出力され、ＳＹＳＢＵＳＤ（２３〜１６）であるデータＢがＢｏｕｔからＳＲＡＭメモリ４２に供給される画像データＭＥＭ２ＤＩＮとして出力され、ＳＹＳＢＵＳＤ（１５〜８）であるデータＣがＣｏｕｔからＳＲＡＭメモリ４３に供給される画像データＭＥＭ３ＤＩＮとして出力され、ＳＹＳＢＵＳＤ（７〜０）であるデータＤがＤｏｕｔからＳＲＡＭメモリ４４に供給される画像データＭＥＭ４ＤＩＮとして出力される。
【００９７】
選択信号ＳＥＬが「１」のときには、システムバス３から送られてくる画像データＳＹＳＢＵＳＤ（３１〜０）のうちのＳＹＳＢＵＳＤ（７〜０）であるデータＤがＡｏｕｔからＳＲＡＭメモリ４１に供給される画像データＭＥＭ１ＤＩＮとして出力され、ＳＹＳＢＵＳＤ（３１〜２４）であるデータＡがＢｏｕｔからＳＲＡＭメモリ４２に供給される画像データＭＥＭ２ＤＩＮとして出力され、ＳＹＳＢＵＳＤ（２３〜１６）であるデータＢがＣｏｕｔからＳＲＡＭメモリ４３に供給される画像データＭＥＭ３ＤＩＮとして出力され、ＳＹＳＢＵＳＤ（１５〜８）であるデータＣがＤｏｕｔからＳＲＡＭメモリ４４に供給される画像データＭＥＭ４ＤＩＮとして出力される。
【００９８】
選択信号ＳＥＬが「２」のときには、システムバス３から送られてくる画像データＳＹＳＢＵＳＤ（３１〜０）のうちのＳＹＳＢＵＳＤ（１５〜８）であるデータＣがＡｏｕｔからＳＲＡＭメモリ４１に供給される画像データＭＥＭ１ＤＩＮとして出力され、ＳＹＳＢＵＳＤ（７〜０）であるデータＤがＢｏｕｔからＳＲＡＭメモリ４２に供給される画像データＭＥＭ２ＤＩＮとして出力され、ＳＹＳＢＵＳＤ（３１〜２４）であるデータＡがＣｏｕｔからＳＲＡＭメモリ４３に供給される画像データＭＥＭ３ＤＩＮとして出力され、ＳＹＳＢＵＳＤ（２３〜１６）であるデータＢがＤｏｕｔからＳＲＡＭメモリ４４に供給される画像データＭＥＭ４ＤＩＮとして出力される。
【００９９】
選択信号ＳＥＬが「３」のときには、システムバス３から送られてくる画像データＳＹＳＢＵＳＤ（３１〜０）のうちのＳＹＳＢＵＳＤ（２３〜１６）であるデータＢがＡｏｕｔからＳＲＡＭメモリ４１に供給される画像データＭＥＭ１ＤＩＮとして出力され、ＳＹＳＢＵＳＤ（１５〜８）であるデータＣがＢｏｕｔからＳＲＡＭメモリ４２に供給される画像データＭＥＭ２ＤＩＮとして出力され、ＳＹＳＢＵＳＤ（７〜０）であるデータＤがＣｏｕｔからＳＲＡＭメモリ４３に供給される画像データＭＥＭ３ＤＩＮとして出力され、ＳＹＳＢＵＳＤ（３１〜２４）であるデータＡがＤｏｕｔからＳＲＡＭメモリ４４に供給される画像データＭＥＭ４ＤＩＮとして出力される。
【０１００】
書き込み制御部２０の上記動作によって、システムバス３の一つのクロックサイクルにて転送されてくる、一つのライン上で連続する４画素のデータの各々がｔ＝４本のラインメモリ４１〜４４（ＳＲＡＭメモリ４１〜４４）の別々のものに書き込まれ、かつ、矩形領域２ａの一つ前のラインと次のラインとでライン上の同一位置のデータ（同列のデータ）が異なるラインメモリ４１〜４４に書き込まれるように制御される。
【０１０１】
メモリ部（ラインメモリ４１〜４４）へのアクセスについて、ｙ番目（ｙ＝１，２，３，４）のメモリ部のワードアドレスｚ（ｚ＝０，１，２，．．．）へのアクセスをＳＲＡＭ（ｚ，ｙ）とすると、システムバス３から転送されてくる１６画素×１６ラインのデータは、バスクロック毎に図５に示すように格納される。ここで、システムバス３からはバス幅に相当する４画素分のデータが一つのバスサイクルで４本のラインメモリの各々のアドレスに書き込まれる。
【０１０２】
図５および図９に示すように、１ライン目の１画素目のデータＤ（１，１）はＳＲＡＭ（０，１）、１ライン目の２画素目のデータＤ（２，１）はＳＲＡＭ（０，２）、１ライン目の３画素目のデータＤ（３，１）はＳＲＡＭ（０，３）、１ライン目の４画素目のデータＤ（４，１）はＳＲＡＭ（０，４）、１ライン目の５画素目のデータＤ（５，１）はＳＲＡＭ（１，１）、１ライン目の６画素目のデータＤ（６，１）はＳＲＡＭ（１，２）、・・・、１ライン目の１６画素目のデータＤ（１６，１）はＳＲＡＭ（３，４）、２ライン目の１画素目のデータＤ（１，２）はＳＲＡＭ（５，２）、２ライン目の２画素目のデータＤ（２，２）はＳＲＡＭ（５，３）、２ライン目の３画素目のデータＤ（３，２）はＳＲＡＭ（５，４）、２ライン目の４画素目のデータＤ（４，２）はＳＲＡＭ（５，１）、２ライン目の５画素目のデータＤ（５，２）はＳＲＡＭ（６，２）、２ライン目の６画素目のデータＤ（６，２）はＳＲＡＭ（６，３）、・・・、１５ライン目の１６画素目のデータＤ（１６，１５）はＳＲＡＭ（７４，２）、１６ライン目の１画素目のデータＤ（１，１６）はＳＲＡＭ（７５，４）、１６ライン目の２画素目のデータＤ（２，１６）はＳＲＡＭ（７５，１）、１６ライン目の３画素目のデータＤ（３，１６）はＳＲＡＭ（７５，２）、１６ライン目の４画素目のデータＤ（４，１６）はＳＲＡＭ（７５，３）、１６ライン目の５画素目のデータＤ（５，１６）はＳＲＡＭ（７６，４）、・・・、１６ライン目の１５画素目のデータＤ（１５，１６）はＳＲＡＭ（７９，２）、１６ライン目の１６画素目のデータＤ（１６，１６）はＳＲＡＭ（７９，３）に、それぞれ書き込まれる。
【０１０３】
全て格納されると、引き続いて、図４に示す読み出し制御部３０によってデータ読み出しが行われフィルタ５Ａへ３ライン分のデータが並列に順次入力される。
【０１０４】
図１０は、図４の読み出し制御部３０の回路構成例を示す回路図、図１１および図１２はそのアドレスマルチプレクサおよび出力データマルチプレクサの各論理をそれぞれ示す図、図１３は、図４のバッファメモリ４Ａからのデータ読み出し時の動作タイミングを示すタイミング図である。
【０１０５】
図１０において、読み出し制御部３０は、上位カウンタ３１と、下位カウンタ３２と、加算器３３〜３５と、アドレスマルチプレクサ３６と、Ｄ型フリップフロップ（ＤＦＦ）３７と、出力データマルチプレクサ３８とを有している。
【０１０６】
下位カウンタ３２は、図１３に示すように、ＲＥＳＥＴ信号により［０，０］とされて、ＲＥＳＥＴ解除後は画像処理クロックＰＩＸＣＬＫ毎に１ずつカウントアップ動作を行う。ｔ＝４回カウントされる毎にＣＡＲＲＹ信号を出力し、矩形領域の１ライン分に相当する回数、本実施形態ではｐ＝１６回カウントされる毎にカウンタの初期値が直前のラインを処理した時の初期値の１を加えた数字（数値）に設定される。
【０１０７】
下位カウンタ３２のカウンタ値は、アドレスマルチプレクサ３６のセレクト入力ＳＥＬへ入力され、図１１に示すようにアドレスマルチプレクサ３６の選択状況が切り替わって、各ＳＲＡＭメモリ４１〜４４のアドレスとして供給される。また、下位カウンタ３２のカウンタ値は、出力データマルチプレクサ３８のセレクト入力ＳＥＬにも入力され、図１２に示すように出力データマルチプレクサ３８の選択状況が切り替わって、各ＳＲＡＭメモリ４１〜４４からの出力データが後段のフィルタ５Ａのどのラインのデータとして出力されるかが決定される。
【０１０８】
下位カウンタ３２からのＣＡＲＲＹ信号は、上位カウンタ３１のＥＮＢ端子にも入力される。図１３に示すように、このＥＮＢ端子がハイレベルのときに上位カウンタ３１が１カウントアップされ、小矩形領域２ａの１ライン分に相当する画素数が読み出される毎に、直前のラインを処理したときの初期値に＋５を加算した値を初期値としてカウントアップが行われる。これによって、最初のラインの処理時は０，１，２，３とカウントされ、次のラインの処理時は５，６，７，８とカウントされ、さらに次のラインの処理時は１０，１１，１２，１３のようにカウントされる。
【０１０９】
この上位カウンタ３１のカウント値は、そのままの値、加算器３３で＋５加算された値、加算器３４でさらに＋５加算された値、加算器３５でさらに＋５加算された値の４つの値がアドレスマルチプレクサ３６へ供給される。ここで、加算器３３〜３５によって加算される＋５は、各ＳＲＡＭメモリ４１〜４４において小矩形領域２ａの１ライン分を格納するために確保されるワード数である。
【０１１０】
アドレスマルチプレクサ３６では、図１１および図１３に示すように、選択信号ＳＥＬが「０」のときに、上位カウンタ３１の出力値ＵＣＮＴである値ＡがＡｏｕｔからＳＲＡＭメモリ４１のアドレスＭＥＭ１ＯＵＴＡＤＲとして出力され、上位カウンタ３１の出力値ＵＣＮＴに加算器３３で＋５加算した値ＢがＢｏｕｔからＳＲＡＭメモリ４２のアドレスＭＥＭ２ＯＵＴＡＤＲとして出力され、上位カウンタ３１の出力値ＵＣＮＴに加算器３３および３４でそれぞれ＋５加算した値ＣがＣｏｕｔからＳＲＡＭメモリ４３のアドレスＭＥＭ３ＯＵＴＡＤＲとして出力され、上位カウンタ３１の出力値ＵＣＮＴに加算器３３〜３５でそれぞれ＋５加算した値ＤがＤｏｕｔからＳＲＡＭメモリ４４のアドレスＭＥＭ４ＯＵＴＡＤＲとして出力される。
【０１１１】
選択信号ＳＥＬが「１」のときには、上位カウンタ３１の出力値ＵＣＮＴに加算器３３〜３５でそれぞれ＋５加算した値ＤがＡｏｕｔからＳＲＡＭメモリ４１のアドレスＭＥＭ１ＯＵＴＡＤＲとして出力され、上位カウンタ３１の出力値ＵＣＮＴである値ＡがＢｏｕｔからＳＲＡＭメモリ４２のアドレスＭＥＭ２ＯＵＴＡＤＲとして出力され、上位カウンタ３１の出力値ＵＣＮＴに加算器３３で＋５加算した値ＢがＣｏｕｔからＳＲＡＭメモリ４３のアドレスＭＥＭ３ＯＵＴＡＤＲとして出力され、上位カウンタ３１の出力値ＵＣＮＴに加算器３３および３４でそれぞれ＋５加算した値ＣがＤｏｕｔからＳＲＡＭメモリ４４のアドレスＭＥＭ４ＯＵＴＡＤＲとして出力される。
【０１１２】
選択信号ＳＥＬが「２」のときには、上位カウンタ３１の出力値ＵＣＮＴに加算器３３および３４でそれぞれ＋５加算した値ＣがＡｏｕｔからＳＲＡＭメモリ４１のアドレスＭＥＭ１ＯＵＴＡＤＲとして出力され、上位カウンタ３１の出力値ＵＣＮＴに加算器３３〜３５でそれぞれ＋５加算した値ＤがＢｏｕｔからＳＲＡＭメモリ４２のアドレスＭＥＭ２ＯＵＴＡＤＲとして出力され、上位カウンタ３１の出力値ＵＣＮＴである値ＡがＣｏｕｔからＳＲＡＭメモリ４３のアドレスＭＥＭ３ＯＵＴＡＤＲとして出力され、上位カウンタ３１の出力値ＵＣＮＴに加算器３３で＋５加算した値ＢがＤｏｕｔからＳＲＡＭメモリ４４のアドレスＭＥＭ４ＯＵＴＡＤＲとして出力される。
【０１１３】
選択信号ＳＥＬが「３」のときには、上位カウンタ３１の出力値ＵＣＮＴに加算器３３で＋５加算した値ＢがＡｏｕｔからＳＲＡＭメモリ４１のアドレスＭＥＭ１ＯＵＴＡＤＲとして出力され、上位カウンタ３１の出力値ＵＣＮＴに加算器３３および３４でそれぞれ＋５加算した値ＣがＢｏｕｔからＳＲＡＭメモリ４２のアドレスＭＥＭ２ＯＵＴＡＤＲとして出力され、上位カウンタ３１の出力値ＵＣＮＴに加算器３３〜３５でそれぞれ＋５加算した値ＤがＣｏｕｔからＳＲＡＭメモリ４３のアドレスＭＥＭ３ＯＵＴＡＤＲとして出力され、上位カウンタ３１の出力値ＵＣＮＴである値ＡがＤｏｕｔからＳＲＡＭメモリ４４のアドレスＭＥＭ４ＯＵＴＡＤＲとして出力される。
【０１１４】
また、出力データマルチプレクサ３８では、図１２および図１３に示すように、選択信号ＳＥＬが「０」のときに、ＳＲＡＭメモリ４１からの出力データＭＥＭ１ＤＯＵＴであるデータＡがＡｏｕｔからラインｙのデータとして出力され、ＳＲＡＭメモリ４２からの出力データＭＥＭ２ＤＯＵＴであるデータＢがＢｏｕｔからラインｙ＋１のデータとして出力され、ＳＲＡＭメモリ４３からの出力データＭＥＭ３ＤＯＵＴであるデータＣがＣｏｕｔからラインｙ＋２のデータとして出力される。
【０１１５】
選択信号ＳＥＬが「１」のときには、ＳＲＡＭメモリ４２からの出力データＭＥＭ２ＤＯＵＴであるデータＢがＡｏｕｔからラインｙのデータとして出力され、ＳＲＡＭメモリ４３からの出力データＭＥＭ３ＤＯＵＴであるデータＣがＢｏｕｔからラインｙ＋１のデータとして出力され、ＳＲＡＭメモリ４４からの出力データＭＥＭ４ＤＯＵＴであるデータＤがＣｏｕｔからラインｙ＋２のデータとして出力される。
【０１１６】
選択信号ＳＥＬが「２」のときには、ＳＲＡＭメモリ４３からの出力データＭＥＭ３ＤＯＵＴであるデータＣがＡｏｕｔからラインｙのデータとして出力され、ＳＲＡＭメモリ４４からの出力データＭＥＭ４ＤＯＵＴであるデータＤがＢｏｕｔからラインｙ＋１のデータとして出力され、ＳＲＡＭメモリ４１からの出力データＭＥＭ１ＤＯＵＴであるデータＡがＣｏｕｔからラインｙ＋２のデータとして出力される。
【０１１７】
選択信号ＳＥＬが「４」のときには、ＳＲＡＭメモリ４４からの出力データＭＥＭ４ＤＯＵＴであるデータＤがＡｕｔからラインｙのデータとして出力され、ＳＲＡＭメモリ４１からの出力データＭＥＭ１ＤＯＵＴであるデータＡがＢｏｕｔからラインｙ＋１のデータとして出力され、ＳＲＡＭメモリ４２からの出力データＭＥＭ２ＤＯＵＴであるデータＢがＣｏｕｔからラインｙ＋２のデータとして出力される。
【０１１８】
上記読み出し制御部３０の動作によって、画像処理クロックＰＩＸＣＬＫ毎に以下のような順序で各ＳＲＡＭメモリ４１〜４４がアドレッシングされ、出力データマルチプレクサ３８を経由してフィルタ５Ａにデータが供給される。
【０１１９】
ここでは、４本の各ＳＲＡＭメモリ４１〜４４から一度に各ラインの同一画素位置のデータが読み出され、出力データマルチプレクサ３８を経由してフィルタ５Ａのライン数分の画素データが順次フィルタ５Ａに供給される。
【０１２０】
図５および図１３に示すように、ＰＩＸＣＬＫの１クロック目ではＳＲＡＭ（０，１）、ＳＲＡＭ（５，２）およびＳＲＡＭ（１０，３）からデータＤ（１，１）、Ｄ（１，２）およびＤ（１，３）、ＰＩＸＣＬＫの２クロック目ではＳＲＡＭ（０，２）、ＳＲＡＭ（５，３）およびＳＲＡＭ（１０，４）からデータＤ（２，１）、Ｄ（２，２）およびＤ（２，３）、ＰＩＸＣＬＫの３クロック目ではＳＲＡＭ（０，３）、ＳＲＡＭ（５，４）およびＳＲＡＭ（１０，１）からＤ（３，１）、Ｄ（３，２）およびＤ（３ｍ３）、・・・、ＰＩＸＣＬＫの１５クロック目ではＳＲＡＭ（３，３）、ＳＲＡＭ（８，４）およびＳＲＡＭ（１３，１）からＤ（１５，１）Ｄ（１５，２）およびＤ（１５，３）、ＰＩＸＣＬＫの１６クロック目ではＳＲＡＭ（３，４）、ＳＲＡＭ（８，１）およびＳＲＡＭ（１３，２）からＤ（１６，１）、Ｄ（１６，２）およびＤ（１６，３）、ＰＩＸＣＬＫの１７クロック目ではＳＲＡＭ（５，２）、ＳＲＡＭ（１０，３）およびＳＲＡＭ（１５，４）からＤ（１７，１）、Ｄ（１７，２）およびＤ（１７，３）、・・・が、それぞれ読み出されることになる。
【０１２１】
以上により、本実施形態によれば、小矩形領域２ａの各行方向に連続したデータ群が、バッファメモリ４Ａにおいて、それぞれ別々のラインメモリに書き込まれ、かつ、小矩形領域２ａの各列方向に連続したデータ群について、それぞれ別々のラインメモリに書き込まれるように格納される。このため、バッファメモリ４Ａの容量を小さくでき、水平垂直変換部におけるデータ並べ替えのためにｎ回のデータ読み出しを行う必要がなく、各ラインの画素単位で一度にｎライン分の画素データを読み出すことができる。つまり、ｎ行分列毎に読み出せる。これによって、システムバス３からバッファメモリ４Ａへのデータ転送が終了すると、従来のように水平垂直変換部などを介さずすぐに、後段のフィルタ５Ａへのデータ供給を開始することができる。したがって、画像データを小矩形領域２ａに分割して処理することにより、フィルタリング処理の前段に配置されるバッファメモリ４Ａのメモリ容量を削減しつつ、処理のオーバーヘッドを最小限に抑えることができる。
【０１２２】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
【産業上の利用可能性】
【０１２３】
本発明は、フィルタ処理用の画像データを記憶可能とする画像メモリおよび、この画像メモリが設けられた画像処理システムに関し、特に、システムバス上のメモリに格納された画像データからラスタスキャン方向に矩形領域が切り出されてシステムバスを経由して高速に転送される画像データを一旦保持して、後段のフィルタ回路に画像データを供給するためのバッファメモリとして用いられる画像メモリおよび、この画像メモリおよびフィルタ回路が設けられた画像処理機能モジュールを一または複数備えた画像処理システムの分野において、処理したい画像データを小矩形領域に分割し、バッファメモリ部において、小矩形領域に連続した各行方向のデータ群がそれぞれ別々のラインメモリに書き込まれ、かつ、小矩形領域に連続した各列方向のデータ群について、それぞれが別々のラインメモリに書き込まれるように格納する。このため、画像メモリから画像データを読み出してフィルタ回路部に供給する際には、ｎライン分の各ライン上で水平方向に同じ位置（左端から何番目）の画素データ（小矩形領域のｎ行分の同列データ）を各メモリから並列に読み出すことができる。これによって、フィルタ処理に必要なライン数の画素データを、従来のように水平垂直変換回路などを介さずに画像処理クロックのクロック毎にバッファメモリ部から直接読み出しを行うことができる。このため、従来技術のように必要なライン数分のデータを一旦フリップフロップへ読み出すという前処理によるオーバーヘッドなしに、システムバスからバッファメモリ部へのデータ転送が終了すれば、すぐに後段のフィルタ回路部へのデータ供給を開始できる。処理したい画像データを小矩形領域に分割したことにより、フィルタ処理の前段に配置するメモリ容量を削減しつつ、バッファメモリ部から直接フィルタ回路部へデータ読み出しを行うことにより、処理のオーバーヘッドを最小限に抑えることができる。
【図面の簡単な説明】
【０１２４】
【図１】本発明の実施形態に係る画像メモリを用いた画像処理システムの要部構成例を示すブロック図である。
【図２】図１のメインメモリのデータ構成例を表した図である。
【図３】図１の機能モジュール内のバッファメモリの構成例を説明するための図である。
【図４】図１の各機能モジュール内のバッファメモリおよびその制御部の構成例を示すブロック図である。
【図５】図４の機能モジュール内における書き込み後のバッファメモリの具体的構成例を示す図である。
【図６】図４のバッファメモリ周辺回路の一構成例を示す回路図である。
【図７】図４の書き込み制御部の回路構成例を示す回路図である。
【図８】図７の入力データマルチプレクサの論理を示す図である。
【図９】図７の書き込み制御部によるバッファメモリへのデータ書き込み時の動作タイミングを示すタイミング図である。
【図１０】図４の読み出し制御部の回路構成例を示す回路図である。
【図１１】図１０のアドレスマルチプレクサの論理を示す図である。
【図１２】図１０の出力データマルチプレクサの論理を示す図である。
【図１３】図１０の読み出し制御部によるバッファメモリからのデータ読み出し時の動作タイミングを示すタイミング図である。
【図１４】特許文献１に開示されている従来の画像メモリについて説明するためのク図である。
【符号の説明】
【０１２５】
１  画像処理システム
２  メインメモリ
２ａ  小矩形領域（矩形領域）
３  システムバス（バス）
４Ａ〜４Ｅ  バッファメモリ（複数のラインメモリ）
５Ａ〜５Ｅ  フィルタ（フィルタ回路）
１０，１０Ａ  バッファメモリ周辺回路
１１  クロックセレクタ
１２、１２１〜１２４  アドレスセレクタ
２０  書き込み制御部
２１  第１カウンタ
２２  ラインエンド比較器
２３  第２カウンタ
２４  入力データマルチプレクサ
３０  読み出し制御部
３１  上位カウンタ
３２  下位カウンタ
３３〜３５  加算器
３６  アドレスマルチプレクサ
３７  Ｄ型フリップフロップ
３８  出力データマルチプレクサ
４１〜４４  ラインメモリ（ＳＲＡＭメモリ）
【図１】
2007072867.tif 000003
【図２】
2007072867.tif 000004
【図３】
2007072867.tif 000005
【図４】
2007072867.tif 000006
【図５】
2007072867.tif 000007
【図６】
2007072867.tif 000008
【図７】
2007072867.tif 000009
【図８】
2007072867.tif 000010
【図９】
2007072867.tif 000011
【図１０】
2007072867.tif 000012
【図１１】
2007072867.tif 000013
【図１２】
2007072867.tif 000014
【図１３】
2007072867.tif 000015
【図１４】
2007072867.tif 000016