(57)【特許請求の範囲】
【請求項１】
メモリと、該メモリにアクセスするためのアドレスを生成するダイレクトメモリアクセスコントローラと、該ダイレクトメモリアクセスコントローラにより生成されたアドレスに従って該メモリとの間でデータバスを介してデータ転送を行って、画面を分割して生成した関連性の高い領域毎に画像処理を行う１つもしくは複数の画像処理モジュールとを備え、
該画像処理モジュールは、
前記領域における水平サイズＭ個×垂直サイズＮ個の画素に対応するブロック単位のデータが前記メモリから転送されて格納される入力バッファと、
該入力バッファに格納されたデータが画像処理されると格納されて、前記ブロック単位で前記メモリに出力する出力バッファと、
前記入力バッファ内に格納されたデータが残り少なくなると該入力バッファにデータの入力を要求するダイレクトメモリアクセス要求を前記ダイレクトメモリアクセスコントローラに出力し、前記出力バッファ内に前記ブロック単位のデータが一定量格納されると該出力バッファからのデータの出力を要求するダイレクトメモリアクセス要求を該ダイレクトメモリアクセスコントローラに出力するダイレクトメモリアクセス要求出力手段とを備え、
前記ダイレクトメモリアクセスコントローラは、
前記ブロック単位の水平サイズ値Ｍと、前記ブロック単位の垂直サイズ値Ｎと、前記領域における水平方向の前記ブロック単位の個数と、前記ブロック単位の垂直方向１ラインに相当するメモリ空間でのアドレス増加値と、前記領域におけるデータ転送開始アドレス値と、前記領域におけるデータ転送終了アドレス値と、前記領域における水平方向に隣接する全てのブロック単位のデータ転送終了後に、該水平方向に隣接する全てのブロック単位の最も左端に位置するブロック単位のデータを、その下側に隣接するブロック単位において重複して転送するための該左端に位置するブロック単位の垂直サイズの設定値とを、各々格納する複数のレジスタと、
前記メモリからの入力データの前記各ブロック単位内での水平座標、該入力データの前記各ブロック内での垂直座標、水平方向の前記各ブロックの番号、および処理中のブロック単位の第１行の垂直座標を各々識別するための複数のカウンタと、
該レジスタに格納された値と該カウンタでカウントされた値とに基づいて、前記メモリから前記画像処理モジュールに転送されるデータのアドレスを計算するアドレス計算手段とを備え、
該ダイレクトメモリアクセスコントローラは、
前記ダイレクトメモリアクセス要求出力手段によるダイレクトメモリアクセス要求に基づいて、前記領域におけるデータ開始アドレスの画素を含むブロック単位において１水平ラインの左端から右端までの画素のデータを転送する工程と、該データ転送が終了すると垂直方向の下側に隣接する１水平ラインの左端から右端までの画素のデータ転送を連続して行う工程と、該ブロック単位のデータ転送が終了すると水平方向の右側に隣接する新たなブロック単位において同様のデータ転送を連続して行う工程と、同様のデータ転送を前記領域における水平方向に隣接するブロック単位に対して順次行う工程と、前記領域における水平方向に隣接する全てのブロック単位のデータ転送が終了すると、垂直方向の下側に隣接する複数のブロック単位における前記領域の最も左端に位置する新たなブロック単位において同様のデータ転送を連続して行う工程と、前記領域におけるデータ終了アドレスの画素を含むブロック単位まで同様のデータ転送を繰り返し行う工程とを、１回の起動によって実行することを特徴とする画像処理装置。
【請求項２】
前記ダイレクトメモリアクセスコントローラにおける前記ブロック単位の水平サイズ値Ｍおよび垂直サイズ値Ｎを格納する前記レジスタの該水平サイズ値Ｍおよび該垂直サイズ値Ｎが、前記画像処理モジュールによって設定されることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
請求項１または請求項２に記載の画像処理装置において、
前記ダイレクトメモリアクセスコントローラは、前記ダイレクトメモリアクセス要求出力手段によるダイレクトメモリアクセス要求に基づいて、前記領域におけるデータ開始アドレスの画素を含むブロック単位において１水平ラインの左端から右端までの画素のデータを転送する工程と、該データ転送が終了すると垂直方向の下側に隣接する１水平ラインの左端から右端までの画素のデータ転送を連続して行う工程と、該ブロック単位のデータ転送が終了すると水平方向の右側に隣接する新たなブロック単位において同様のデータ転送を連続して行う工程と、同様のデータ転送を前記領域における水平方向に隣接するブロック単位に対して順次行う工程、前記領域における水平方向に隣接する全てのブロック単位のデータ転送が終了すると、垂直方向の下側に隣接する複数のブロック単位における前記領域の最も左端に位置する新たなブロック単位において同様のデータ転送を連続して行う工程と、前記領域におけるデータ終了アドレスの画素を含むブロック単位まで同様のデータ転送を繰り返し行う工程とを、１回の起動によって実行することを特徴とする画像処理方法。
【請求項４】
固体撮像素子を用いた撮像部と、請求項１に記載の画像処理装置とを備え、該固体撮像素子で取り込んだ画像データに対して該画像処理装置により画像処理を行うことを特徴とする携帯用映像機器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置および画像処理方法並びにそれを用いたデジタルスチルカメラ等の携帯用映像機器に関する。さらに詳しくは、局所的な画像データに対して所定の画像処理を施す画像処理モジュールと、画像全体のデータを格納し得る大規模なメモリとの間を、ＣＰＵを介さずにダイレクトメモリアクセス（以下、ＤＭＡと称する）によりデータを転送し、その繰り返しにより画像全体を処理する画像処理装置および画像処理方法並びに携帯用映像機器に関する。
【０００２】
【従来の技術】
例えば、デジタルスチルカメラにおいては、固体撮像素子（ＣＣＤ等）から取り込まれるカラーフィルターを介した画像データに対して、ＲＧＢのベイヤー配列からＹｃｂＣｒの輝度データと色差データとに分離変換した後、ＪＰＥＧ圧縮処理を施してメモリカードに画像データを記憶させたり、逆に、データ伸張処理を施したり、あるいはビデオ信号に変換して、ディスプレイに表示して撮影前のモニタリングを行ったり、メモリカードに記憶したデータを読み出して画像表示を行ったりしている。
【０００３】
このような画像データを処理するための画像処理装置は、図１０に示すように、ＣＰＵ１０１、ＤＭＡコントローラ１０２、１つもしくは複数の画像処理モジュール１０３、メモリコントローラ１０４および外部メモリ１０５等から構成され、データのやり取りはデータバスを介して行われる。そして、例えばＣＣＤからのデジタルデータ取り込み処理や輝度データと色差データの分離変換処理、ＪＰＥＧ圧縮処理およびビデオ信号への変換処理等が、各々の画像処理モジュール１０３（１〜ｎ）において実行される。
【０００４】
これらの画像処理を行うためには、膨大なデータ量を処理する必要があるが、実際の画像データでは、該当画素データとその周辺の画素データは関連性が高い。そして、関連性の高い局所的にまとまった領域の画素データに対しては、同一処理による繰り返し処理となることが多い。このため、このような局所的にまとまった領域の画素データを処理する各画像処理モジュールに対しては、ＤＭＡコントローラによって規則的に生成されるアドレスに従って、外部メモリからデータを読み出して画像処理モジュールに転送し、または画像処理モジュールでの処理結果データを同様に転送して外部メモリに格納するように、各画像処理モジュール間のデータのやり取りは外部メモリを一旦介して行う。そして、ＤＭＡコントローラが、各々の画像処理モジュールからの転送要求に対して、優先順位等に従って適切に調整を行い、ＤＭＡコントローラからアクノリッジ信号を受けた画像処理モジュールがデータバスや外部メモリを使用する。これにより、外部メモリやデータバスを複数の画像処理モジュールで共有化して、全体の構成を簡単なものにしている。
【０００５】
このような画像処理装置において、図１１に示すように、メモリに格納されている全画像データの一部分（斜線部）のみを処理したい場合や、図１２に示すように、画面上で各行に対応する画像データが格納されているメモリのアドレス上では連続していない場合（斜線部）がある。図１１は、画面上の画素位置と、その画素に対応するデータを格納しているメモリのアドレス空間を模式的に表しており、メモリのアドレス空間での横（水平）方向で言えば、アドレス空間上の改行幅に対して一部のアドレス空間上の領域幅（ＰＩＸＥＬ＋１）を処理する例を示している。また、図１２は、画面上の各行に対応する画素データがメモリのアドレス空間上の各行の領域（ＩＮＣＰＸずつアドレス増加）の内の一部の領域幅（ＰＩＸＥＬ＋１）に格納されていることを表している。
【０００６】
このような場合の処理は、メモリのアドレス空間での２次元的配列から画素データを切り出して転送することになり、このための処理方法が例えば特開昭６３−９８０５６号公報に開示されている。
【０００７】
この処理方法は、図１１に基づいて説明すると、メモリのアドレス空間上の次の行までのアドレス増加分（ＩＮＣＰＸ）、今回転送して処理したい領域の横幅（ＰＩＸＥＬ＋１）、転送を開始するスタートアドレス（ＢＡＳＥ）および転送を終了させるエンドアドレス（ＥＮＤ）を設定し、１度のＤＭＡ起動で画像処理に必要な矩形領域を切り出して（読み出して）画像データを転送させ、画像処理モジュールに入力させるものである。さらに、これとは別に、スタートアドレスと処理したい領域の横幅と縦幅（垂直方向の幅）を設定する方法もある。
【０００８】
このとき、ＤＭＡコントローラは、左端のアドレスＢＡＳＥ＋０から読み出しを開始させ、アドレスを順次水平方向右に移動（＋１）しながらメモリから画像データを読み出して画像処理モジュールに転送させる。そして、アドレスがＢＡＳＥ＋ＰＩＸＥＬ（横幅ＰＩＸＥＬ＋１）になると、左端に戻って垂直方向の下の行のアドレスＢＡＳＥ＋ＩＮＣＰＸに移り、同じく水平方向右にアドレスを移動（＋１）しながらメモリから画像データを読み出して画像処理モジュールに転送させていく。このようにアドレス移動およびデータ読み出しを続けて、最後にアドレスがＥＮＤになると転送を終了させる。このようにして、１回のＤＭＡ起動による転送が終了する。
【０００９】
【発明が解決しようとする課題】
ところで、ノイズ除去や１次補間による画面拡大もしくは縮小処理等のために行われるフィルタ処理や、圧縮伸張処理等の場合には、処理すべき画素の周辺の画素のデータも取り込み、ある係数を掛けて加減算等が行われる。このため、画面をブロックで分割してブロック単位でデータをメモリから読み出して画像処理モジュールに転送させ、画像処理モジュールではブロック単位で処理を行い、処理結果データをブロック単位で転送してメモリに格納させている。
【００１０】
このとき、画像処理モジュールではブロック内の複数の画像データに同時にアクセスしなければならない場合があり、画像処理モジュールはこれに対応するため、内部にこれらの画像データを一時格納しておくバッファ（バッファメモリ）を有している必要がある。このようなバッファの容量は、ＬＳＩチップのサイズに影響を与えるため、可能な限り容量を小さく抑えるのが好ましい。
【００１１】
このようなブロック単位の転送を、上述した特開昭６３−９８０５６号公報に記載されている従来技術を用いて１回のＤＭＡ転送により行おうとした場合、まず、画像処理の対象となるアドレス空間領域を、左端（例えばＢＡＳＥ＋０に相当）から右端（例えばＢＡＳＥ＋ＰＩＸＥＬに相当）まで、全体を水平方向に走査してデータを読み出して転送させる必要がある。
【００１２】
従って、画像処理モジュールは、少なくとも、図１３に示すように転送されるアドレス空間（処理部分）に対して、ブロック単位の垂直サイズ×転送の横幅（白抜きの部分）の容量に対応するバッファを、内部に持っていることが要求される。そして、このバッファにデータを取り込んだ後、ブロック単位で処理を行うことになる。
【００１３】
このため、バッファ容量の規模が大きくなってしまい、一方、バッファ容量を制限すれば、処理可能な画像処理対象の横幅の最大値が制限されてしまうことになる。さらに、実際のバッファ容量は、データの待ち合わせを考慮して、例えば２倍のサイズ等に設計されるが、ここでは説明を簡単にするために触れないことにする。
【００１４】
一方、別の処理方法として、転送するデータをブロック単位の垂直サイズ×ブロック単位の横幅とすれば、バッファ容量は小さくて済むが、その場合にはブロック転送毎にＤＭＡ起動が必要となり、全体の画像処理に要する処理時間が長くなるという不具合が生じてしまう。
【００１５】
本発明は、このような従来技術の課題を解決するためになされたものであり、1回のＤＭＡ起動により画像処理に必要な部分全体に対してブロック単位の転送を可能とし、しかも、画像処理モジュール内のバッファ容量をブロック単位程度の小規模容量に抑えることが可能な画像処理装置および画像処理方法並びに携帯用映像機器を提供することを目的とする。
【００１６】
【課題を解決するための手段】
本発明の画像処理装置は、メモリと、該メモリにアクセスするためのアドレスを生成するダイレクトメモリアクセスコントローラと、該ダイレクトメモリアクセスコントローラにより生成されたアドレスに従って該メモリとの間でデータバスを介してデータ転送を行って、画面を分割して生成した関連性の高い領域毎に画像処理を行う１つもしくは複数の画像処理モジュールとを備え、該画像処理モジュールは、前記領域における水平サイズＭ個×垂直サイズＮ個の画素に対応するブロック単位のデータが前記メモリから転送されて格納される１つの入力バッファと、該入力バッファに格納されたデータが画像処理されると格納されて、前記ブロック単位で前記メモリに出力する１つの出力バッファと、前記入力バッファ内に格納されたデータが残り少なくなると該入力バッファにデータの入力を要求するダイレクトメモリアクセス要求を前記ダイレクトメモリアクセスコントローラに出力し、前記出力バッファ内に前記ブロック単位のデータが一定量格納されると該出力バッファからのデータの出力を要求するダイレクトメモリアクセス要求を該ダイレクトメモリアクセスコントローラに出力するダイレクトメモリアクセス要求出力手段とを備え、前記ダイレクトメモリアクセスコントローラは、前記ブロック単位の水平サイズ値Ｍと、前記ブロック単位の垂直サイズ値Ｎと、前記領域における水平方向の前記ブロック単位の個数と、前記ブロック単位の垂直方向１ラインに相当するメモリ空間でのアドレス増加値と、前記領域におけるデータ転送開始アドレス値と、前記領域におけるデータ転送終了アドレス値とを、各々格納する複数のレジスタと、前記メモリからの入力データの前記各ブロック単位内での水平座標と、該入力データの前記各ブロック単位内での垂直座標と、該入力データが属する水平方向の前記ブロック単位の位置を示す番号と、該入力データが属する垂直方向の前記ブロック単位の位置を示す番号とを、各々識別するための複数のカウンタと、前記レジスタに格納された値と該カウンタでカウントされた値とに基づいて、前記データ転送されるデータのアドレスを計算するアドレス計算手段とを備え、該ダイレクトメモリアクセスコントローラは、前記ダイレクトメモリアクセス要求出力手段によるダイレクトメモリアクセス要求に基づいて、前記領域におけるデータ開始アドレスの画素を含むブロック単位において１水平ラインの左端から右端までの画素のデータを転送する工程と、該データ転送が終了すると垂直方向の下側に隣接する１水平ラインの左端から右端までの画素のデータ転送を連続して行う工程と、該ブロック単位のデータ転送が終了すると水平方向の右側に隣接する新たなブロック単位において同様のデータ転送を連続して行う工程と、同様のデータ転送を前記領域における水平方向に隣接するブロック単位に対して順次行う工程と、前記領域における水平方向に隣接する全てのブロック単位のデータ転送が終了すると、垂直方向の下側に隣接する複数のブロック単位における前記領域の最も左端に位置する新たなブロック単位において同様のデータ転送を連続して行う工程と、前記領域におけるデータ終了アドレスの画素を含むブロック単位まで同様のデータ転送を繰り返し行う工程と���、１回の起動によって実行することを特徴とする。
【００１７】
また、本発明の画像処理装置は、メモリと、該メモリにアクセスするためのアドレスを生成するダイレクトメモリアクセスコントローラと、該ダイレクトメモリアクセスコントローラにより生成されたアドレスに従って該メモリとの間でデータバスを介してデータ転送を行って、画面を分割して生成した関連性の高い領域毎に画像処理を行う１つもしくは複数の画像処理モジュールとを備え、該画像処理モジュールは、前記領域における水平サイズＭ個×垂直サイズＮ個の画素に対応するブロック単位のデータが前記メモリから転送されて格納される１つの入力バッファと、該入力バッファに格納されたデータが画像処理されると格納されて、前記ブロック単位で前記メモリに出力する１つの出力バッファと、前記入力バッファ内に格納されたデータが残り少なくなると該入力バッファにデータの入力を要求するダイレクトメモリアクセス要求を前記ダイレクトメモリアクセスコントローラに出力し、前記出力バッファ内に前記ブロック単位のデータが一定量格納されると該出力バッファからのデータの出力を要求するダイレクトメモリアクセス要求を該ダイレクトメモリアクセスコントローラに出力するダイレクトメモリアクセス要求出力手段とを備え、前記ダイレクトメモリアクセスコントローラは、前記ブロック単位の水平サイズ値Ｍと、前記ブロック単位の垂直サイズ値Ｎと、前記領域における水平方向の前記ブロック単位の個数と、前記ブロック単位の垂直方向１ラインに相当するメモリ空間でのアドレス増加値と、前記領域におけるデータ転送開始アドレス値と、前記領域におけるデータ転送終了アドレス値と、前記領域における水平方向に隣接する全てのブロック単位のデータ転送終了後に、該水平方向に隣接する全てのブロック単位の最も左端に位置するブロック単位のデータを、その下側に隣接するブロック単位において重複して転送するための該左端に位置するブロック単位の垂直サイズの設定値とを、各々格納する複数のレジスタと、前記メモリからの入力データの前記各ブロック単位内での水平座標、該入力データの前記各ブロック内での垂直座標、水平方向の前記各ブロックの番号、および処理中のブロック単位の第１行の垂直座標を各々識別するための複数のカウンタと、該レジスタに格納された値と該カウンタでカウントされた値とに基づいて、前記メモリから前記画像処理モジュールに転送されるデータのアドレスを計算するアドレス計算手段とを備え、該ダイレクトメモリアクセスコントローラは、前記ダイレクトメモリアクセス要求出力手段によるダイレクトメモリアクセス要求に基づいて、前記領域におけるデータ開始アドレスの画素を含むブロック単位において１水平ラインの左端から右端までの画素のデータを転送する工程と、該データ転送が終了すると垂直方向の下側に隣接する１水平ラインの左端から右端までの画素のデータ転送を連続して行う工程と、該ブロック単位のデータ転送が終了すると水平方向の右側に隣接する新たなブロック単位において同様のデータ転送を連続して行う工程と、同様のデータ転送を前記領域における水平方向に隣接するブロック単位に対して順次行う工程と、前記領域における水平方向に隣接する全てのブロック単位のデータ転送が終了すると、垂直���向の下側に隣接する複数のブロック単位における前記領域の最も左端に位置する新たなブロック単位において同様のデータ転送を連続して行う工程と、前記領域におけるデータ終了アドレスの画素を含むブロック単位まで同様のデータ転送を繰り返し行う工程とを、１回の起動によって実行することを特徴とする。
また、前記ダイレクトメモリアクセスコントローラにおける前記ブロック単位の水平サイズ値Ｍおよび垂直サイズ値Ｎを格納する前記レジスタの該水平サイズ値Ｍおよび該垂直サイズ値Ｎが、前記画像処理モジュールによって設定されることが好ましい。
【００１８】
本発明の画像処理方法は、前記画像処理装置において、前記ダイレクトメモリアクセスコントローラは、前記ダイレクトメモリアクセス要求出力手段によるダイレクトメモリアクセス要求に基づいて、前記領域におけるデータ開始アドレスの画素を含むブロック単位において１水平ラインの左端から右端までの画素のデータを転送する工程と、該データ転送が終了すると垂直方向の下側に隣接する１水平ラインの左端から右端までの画素のデータ転送を連続して行う工程と、該ブロック単位のデータ転送が終了すると水平方向の右側に隣接する新たなブロック単位において同様のデータ転送を連続して行う工程と、同様のデータ転送を前記領域における水平方向に隣接するブロック単位に対して順次行う工程、前記領域における水平方向に隣接する全てのブロック単位のデータ転送が終了すると、垂直方向の下側に隣接する複数のブロック単位における前記領域の最も左端に位置する新たなブロック単位において同様のデータ転送を連続して行う工程と、前記領域におけるデータ終了アドレスの画素を含むブロック単位まで同様のデータ転送を繰り返し行う工程とを、１回の起動によって実行することを特徴とする。
【００１９】
本発明の携帯用映像機器は、固体撮像素子を用いた撮像部と本発明の画像処理装置とを備え、該固体撮像素子で取り込んだ画像データに対して該画像処理装置により画像処理を行い、そのことにより上記目的が達成される。
【００２０】
以下に、本発明の作用について説明する。
【００２１】
本発明にあっては、メモリと、ダイレクトメモリアクセスコントローラ（ＤＭＡコントローラ）と、ブロック単位でデータ処理を行うと共に、ＤＭＡコントローラで生成されるアドレスに従ってメモリとの間でＭ（水平ライン）×Ｎ（垂直ライン）のブロック単位でデータ転送を行う１つもしくは複数の画像処理モジュールがデータバスに接続された画像処理装置において、ＤＭＡコントローラがブロックの水平サイズ値、垂直サイズ値、画面上の水平方向のブロック数値、画面上の垂直方向１ラインに相当するメモリ空間でのアドレス増加値、データ転送開始アドレス値（スタートアドレス）およびデータ転送終了アドレス値（エンドアドレス）を各々格納するレジスタと、メモリからの入出力データのブロック内での水平座標、垂直座標、水平方向のブロック番号および垂直方向のブロック番号を各々カウントするカウンタと、レジスタに格納された値とカウンタでカウントされた値とに基づいてアドレスを計算するアドレス計算手段を備えている。
【００２２】
このＤＭＡコントローラにより、後述する実施形態１において図４に示すように、まず、レジスタに設定されたスタートアドレスから、ブロック内を左から右へデータを転送し、レジスタに設定されたブロックの水平サイズ値とカウントでカウントされた水平座標とを比較して、設定された水平サイズのデータが転送されたか否かを判断し、設定された水平サイズのデータが転送されると次の行（図では下の行）のデータを転送する。
【００２３】
次に、レジスタに設定されたブロックの垂直サイズ値とカウントでカウントされた垂直座標とを比較して、設定されたブロックサイズのデータが転送されたか否かを判断し、設定されたブロックサイズのデータが転送されると次のブロック（図では右隣）のデータを転送する。
【００２４】
続いて、レジスタに設定された水平方向のブロック数値とカウンタでカウントされた水平方向のブロック番号とを比較して、設定された最も右端のブロックのデータが転送されたか否かを判断し、設定された最も右端のブロックのデータが転送されると、レジスタに設定された１ブロックの垂直サイズ分だけ進んだ行の左端ブロックから右端ブロックへ、同様にブロック単位でのデータ転送を続ける。
【００２５】
最後に、カウンタでカウントされたメモリからの入出力データのブロック内での水平座標、垂直座標、水平方向のブロック番号および垂直方向のブロック番号と、レジスタに設定された画面上の垂直方向１ラインに相当するメモリ空間でのアドレス増加値およびスタートアドレスから、アドレス計算部によりアドレス計算を行い、得られたアドレスがレジスタに設定されたエンドアドレスと一致すると、ＤＭＡ転送を終了する。
【００２６】
このように、アドレスを制御する機能をＤＭＡコントローラに備えることにより、１回のＤＭＡ起動により、メモリと画像処理モジュールとの間で画像の必要な部分全体をブロック単位でデータ転送して、画像処理を行うことが可能となる。
【００２７】
上記画像処理モジュールは、後述する実施形態２に示すように、複数のモジュールでデータバスを共有することも可能である。
【００２８】
さらに、ブロックの周辺部でのりしろとなる部分の同じデータを重複して転送する必要がある場合等には、後述する実施形態３に示すように、上記カウンタにより垂直方向のブロック番号に変えて、処理中のブロックの行ライン（画面上の垂直座標）を識別する構成とすることが可能である。
【００２９】
さらに、ブロックサイズの変更が必要とされる場合等には、後述する実施形態４に示すように、画像処理モジュールに入出力されるブロックの水平サイズ値および垂直サイズ値を、画像処理モジュールからレジスタに設定する構成とすることが可能である。
【００３０】
このように構成された本発明の画像処理装置は、バッファ容量を小規模容量に抑えて装置の小型化を図ることができるので、例えば固体撮像素子を用いた携帯用映像機器等において、デジタルデータ取り込み処理、輝度データと色差データの分離変換処理、ＪＰＥＧ圧縮処理、ビデオ信号への変換処理、フィルタ処理等を行うのに好適に使用することが可能である。
【００３１】
【発明の実施の形態】
以下に、本発明の実施の形態について、図面に基づいて説明する。
【００３２】
（実施形態１）
図１は、本発明の一実施形態である画像処理装置の構成を説明するための図である。この画像処理装置は、ＤＭＡコントローラ１、メモリコントローラ２、画像処理モジュール３および外部メモリ５を備え、これらがデータバス４を介してデータのやり取りを行うように構成されている。なお、ここではＤＭＡコントローラによる制御の説明を簡単にするため、ＣＰＵは省略しており、画像処理モジュールも１つのみとして説明を行う。また、固体撮像素子（ＣＣＤ）からの画像信号をアナログデジタル変換して画像処理モジュールに入力する点、およびビデオ信号に変換した後、ディスプレイにデータを出力する点についても、図１では省略している。
【００３３】
この画像処理装置において、ブロック単位でデータを入出力してブロック単位で処理を行う画像処理モジュール３は、入力バッファおよび出力バッファを備えており、内部処理の進捗具合やバッファ内のデータ保持量に応じて、データ入力またはデータ出力のためのＤＭＡ要求信号ＤＲＥＱをＤＭＡコントローラ１に出力する。
【００３４】
ＤＭＡコントローラ１は、内部のレジスタに保持されている設定値とカウンタでカウントされたカウント値により外部メモリ５上の実アドレス信号ＡＤＲを生成し、メモリコントローラ２に出力する。このレジスタおよびカウンタについては以下に詳述する。
【００３５】
メモリ５から画像処理モジュール３に画像データを入力する場合には、ＤＭＡコントローラ１からのストローブ信号ＤＭＳＴＲＢを受けて、メモリコントローラ２はアドレス信号ＡＤＲに従って外部メモリ５からブロック単位のデータを読み出し、データバス４に出力する。また、メモリコントローラ２はＷＡＩＴ信号をＤＭＡコントローラ１に出力することにより、データバス４上のデータの有効期間を指示する。
【００３６】
ＤＭＡ要求に対してＤＭＡコントローラ１からＤＭＡアクノリッジ信号ＤＡＣＫを受けた画像処理モジュール３は、適切なタイミングでデータバス４上のブロック単位のデータを内部の入力バッファに取り込む。それと同時に、ＤＭＡコントローラ１は、データバス４上のデータが有効であるときに、内部のカウンタをカウントアップして外部メモリ５を順次アクセスしていく。
【００３７】
一方、画像処理モジュール３から、ブロック単位での画像処理を行った処理結果データを出力する場合には、まず、ＤＭＡ要求信号ＤＲＥＱをＤＭＡコントローラ１に対して出力する。
【００３８】
このとき、メモリコントローラ２は、アクセスが無い状態か、またはアクセス中の処理が終了した段階で、ＷＡＩＴ信号によりデータバス４上にデータを出力しても良いことを、ＤＭＡコントローラ１に知らせる。これにより、ＤＭＡコントローラ１は、画像処理モジュール３にＤＭＡアクノリッジ信号ＤＡＣＫを発行する。画像処理モジュール３は、このＤＭＡアクノリッジ信号ＤＡＣＫを受けて、内部の出力バッファからブロック単位のデータをデータバス４上に出力する。
【００３９】
そして、メモリコントローラ２は、ＤＭＡコントローラ１からのメモリ５上の実アドレス信号ＡＤＲとストローブ信号ＤＭＳＴＲＢを受けて、実アドレス信号ＡＤＲに従ってデータバス４上のデータをメモリ５に格納する。
【００４０】
なお、メモリコントローラ２は、信号ＢＷＲＩＴＥがＬｏｗのときに外部メモリに対して読み出し動作を行い、読み出しデータ値をデータバス４に送る。そして、データ有効になると信号ＷＡＩＴを解除する。さらに、メモリコントローラ２は、信号ＢＷＲＩＴＥがＨｉｇｈのときにデータバス上のデータを外部メモリに対して書き込む。
【００４１】
図２は、この画像処理装置におけるＤＭＡコントローラの回路構成を説明するためのブロック図である。このＤＭＡコントローラは、バスインターフェイス部・ＤＭＡアクノリッジ生成部２１、レジスタバンク部２２、カウンタ部２３、アドレス計算部２４およびエンドアドレス検出部２５から構成されている。
【００４２】
バスインターフェイス部・ＤＭＡアクノリッジ生成部２１は、画像処理モジュールからのＤＭＡ要求信号ＤＲＥＱを基に、メモリコントローラがアドレス信号ＡＤＲを取り込むためのストローブ信号ＤＭＳＴＲＢをメモリに発行する。
【００４３】
さらに、バスインターフェイス部・ＤＭＡアクノリッジ生成部２１は、メモリコントローラからのＷＡＩＴ信号によりデータバス上のデータが有効であると指示された期間（サイクル）に、カウントアップ信号ＤＮＴＵＰによりカウンタ部２３にカウントアップを指示すると共に、画像処理モジュールに対してＤＭＡアクノリッジ信号ＤＡＣＫを発行する。
【００４４】
メモリコントローラは、ストローブ信号ＤＭＳＴＲＢを受け取ると、ＤＭＡコントローラからのアドレス信号ＡＤＲを取り込み、メモリにアクセスする。
【００４５】
さらに、バスインターフェイス部・ＤＭＡアクノリッジ生成部２１は、メモリコントローラからのＷＡＩＴ信号により、メモリへアクセス中（ＷＡＩＴ信号がアクティブ状態）でメモリからデータを読み出し中であれば、データバス上のデータが有効であるか無効であるかを識別する。また、メモリへデータを格納中であればデータバス上の空き状態を識別する。さらに、ＷＡＩＴ信号がアクティブ状態でない場合には、メモリへのアクセスは終了状態であると識別する。
【００４６】
次に、レジスタバンク部２２は、転送して処理するブロック単位の水平サイズ（横幅）値を格納するレジスタ（ＰＸＩＲ）と、ブロック単位の垂直サイズ（縦幅）値を格納するレジスタ（ＬＮＩＲ）とを含んで構成されている。また、レジスタバンク部２２は、画面上の処理したい水平方向の範囲（横幅）で転送されるブロック数値を格納するレジスタ（ＮＯＲＸ）と、転送開始アドレス（スタートアドレス）値を格納するレジスタ（ＢＡＳＥ）と、転送終了アドレス（エンドアドレス）値を格納するレジスタ（ＥＮＤ）と、垂直方向の１行に相当するメモリのアドレス空間でのアドレス増加値を格納するレジスタ（ＩＮＣＰＸ）を含んで構成されている。なお、ブロック単位の水平サイズは０〜ＰＸＩＲまでのＰＸＩＲ＋１個であるが、０からカウントするため、レジスタ格納値はＰＸＩＲとなる。また、ブロック単位の垂直サイズは０〜ＬＮＩＲまでのＬＮＩＲ＋１個であるが、０からカウントするため、レジスタ格納値はＬＮＩＲとなる。さらに、画面上の処理したい水平方向の範囲横幅で転送されるブロック数は０〜ＮＯＲＸのＮＯＲＸ＋１個であるが、０からカウントするため、レジスタ格納値はＮＯＲＸとなる。これらのレジスタ内の設定値は、画像処理システムを制御するホストコンピューター（図示せず）から設定される。
【００４７】
次に、カウンタ部２３は、４つのカウンタＣ１、Ｃ２、Ｃ３およびＣ４から構成されている。カウンタＣ１はブロック内の水平方向の位置（水平座標）を識別するためのカウンタであり、カウンタＣ２はブロック内の垂直方向の位置（垂直座標）を識別するためのカウンタであり、カウンタＣ３は画面上の水平方向に何番目のブロックの画素に対応するデータを転送中であるかを識別するためのカウンタであり、カウンタＣ４は画面上の垂直方向に何番目のブロックの画素に対応するデータを転送中であるかを識別するためのカウンタである。
【００４８】
図３は、カウンタ部２３のより詳細な回路構成を説明するための図であり、以下ではメモリのアドレス空間を示す図４と合わせて動作を説明する。カウンタ部は、加算器３１と、第１のセレクタ３２ａおよび第２のセレクタ３２ｂと、ラッチ回路３３と、コンパレータＣＯＭＰ３４ａ〜３４ｃと、ＡＮＤゲート３５ａ〜ｄ５ｃとの組み合わせで４つのカウンタＣ１〜Ｃ４が構成されている。なお、図３では信号を単線で記載しているが、実際には複数のビットで構成されており、例えばラッチ回路等もビットに対応して複数個設けられている。また、この図ではラッチ回路に入力されるクロック信号は図示していない。
【００４９】
加算器３１は一方から入力された値に１を加算するものであり、セレクタ３２ａ、３２ｂはセレクト端子がＨｉｇｈレベルのときにＢ入力端子を選択し、逆にセレクト端子がＬｏｗレベルのときにＡ入力端子を選択して出力するものである。また、コンパレータ３４ａ〜３４ｃは一方の端子（ここではラッチ回路３３に接続された端子）から入力される値が他方の端子（ここではレジスタに接続された端子）から入力される値以上になったとき（ここでは一致したとき）にＨｉｇｈレベルを出力し、値が小さいときにはＬｏｗレベルを出力するものである。さらに、ラッチ回路３３は例えばＤタイプフリップフロップ（ＤＦ／Ｆ）等で構成されている。
【００５０】
まず、メモリコントローラからデータバス上のデータが有効であることを示すＷＡＩＴ信号がＤＭＡコントローラに入力されると、これを基にカウントアップｐ信号ＣＮＴＵＰがカウンタ部２３に入力される。このカウントアップ信号はＣＮＴＵＰは、データバス上の１画素データを転送するための水平転送クロック信号と同じ周波数の信号である。
【００５１】
カウント開始時には全ての出力Ｃ１、Ｃ２、Ｃ３、Ｃ４は０を出力しており、また、全てのコンパレータ３４ａ〜３４ｃの出力はＬｏｗレベルであり、従ってＡＮＤゲート３５ａ〜３５ｃの出力はＬｏｗレベルとなっている。よって、第１のセレクタ３２ａはＡ入力端子を選択し、出力Ｃ１（最初は０）の値に加算器３１により＋１を加算した値を出力する。
【００５２】
そして、カウントアップ信号ＣＮＴＵＰがＨｉｇｈレベルのとき、第２のセレクタ３２ｂはＢ入力端子を選択することから、第１のセレクタ３２ａの出力（＋１を加算した値）がラッチ回路３３に入力される。そして、カウントアップ信号ＣＮＴＵＰが次にＬｏｗレベルになると、第２のセレクタ３２ｂはＡ入力端子を選択することから、出力Ｃ１の値（＋１を加算した値）がそのまま第２のセレクタ３２ｂから出力されるため、ラッチ回路３３の信頼性が向上する。なお、ラッチ回路３３への入力は、第２のセレクタ３２ｂの出力が安定しているタイミングで、クロック（図示せず）により第２のセレクタ３２ｂの出力（＋１加算した値）を取り込み、かつ、ラッチをかければよい。
【００５３】
一方、出力Ｃ１の値（＋１加算した値）は加算器３１により＋１が加算され、その結果、＋２が加算された値が第１のセレクタ３２ａから出力されている。
【００５４】
次に、水平方向にさらに１つ右の画素データに移動するのに対応して、カウントアップ信号ＣＮＴＵＰが再度Ｈｉｇｈレベルになると、第２のセレクタ３２ｂはＢ入力端子を選択することから、第１のセレクタ３２ａの出力（＋２加算された値）がラッチ回路３３に入力される。そして、カウントアップ信号ＣＮＴＵＰが次にＬｏｗレベルになると、第２のセレクタ３２ｂはＡ入力端子を選択することから、出力Ｃ１の値（＋２を加算した値）がそのまま第２のセレクタ３２ｂから出力されるため、ラッチ回路３３の信頼性が向上する。
【００５５】
一方、出力Ｃ１の値（＋２加算した値）は加算器３１により＋１が加算され、その結果、＋３が加算された値が第１のセレクタ３２ａから出力されている。
【００５６】
以上の動作を繰り返すことにより、カウンタＣ１からの出力Ｃ１はカウントアップされていく。そして、図４のブロック単位内で水平方向に移動してブロック単位内の右端の画素に対応するデータが転送されて、出力Ｃ１がレジスタ（ＰＸＩＲ）に格納されている値（ブロック単位の水平サイズ値）と一致すると、コンパレータＣＭＰ３４ａの出力からＨｉｇｈレベルが出力される。
【００５７】
これにより、カウントアップ信号ＣＮＴＵＰがＨｉｇｈレベルになったときにＡＮＤゲート３５ａの出力はＨｉｇｈレベルとなり、第１のセレクタ３２ａはＢ入力端子が選択されて０が出力され、第２のセレクタ３２ｂもＢ入力端子が選択されているためラッチ回路３３には０が入力される。従って、カウンタＣ１からの出力Ｃ１は０となり、また、ＡＮＤゲート３５ａの出力はＬｏｗレベルに戻る。
【００５８】
カウンタＣ２は、ＡＮＤゲート３５ａの出力が一旦Ｈｉｇｈレベルとなったときに上述したカウンタＣ１と同様の動作を行い、＋１を加算した値を出力Ｃ２から出力する。一方、カウンタＣ１の出力Ｃ１は、カウントアップ信号ＣＮＴＵＰの入力に基づいて、再度０からカウントアップを始める。
【００５９】
従って、図４では、ブロック単位内で垂直方向に１つ下がり、左端から右へ移動しながら画素に対応するデータを転送していることになる。
【００６０】
ブロック単位内で水平方向に移動して右端の画素に対応するデータを転送する毎に、カウンタＣ２の出力Ｃ２はカウントアップされていく。そして、図４のブロック単位内で垂直方向に移動してブロック単位内の最下行の右端の画素に対応するデータが転送されて、出力Ｃ２がレジスタ（ＬＮＩＲ）に格納されている値（ブロック単位の垂直サイズ値）と一致すると、上記と同様に、カウンタＣ３の出力Ｃ３から＋１加算した値を出力し、カウンタ１およびカウンタ２の出力Ｃ１および出力Ｃ２は０となる。
【００６１】
これにより、図４では、今までブロック単位で転送していたブロック０の右隣りのブロック１に移り、ブロック１の最上行の左端から水平方向に右に移動しながら画素に対応するデータを転送する。
【００６２】
そして、転送したい画素領域において水平方向で右端のブロックＮＯＲＸの画素に対応するデータの転送を終了し、出力Ｃ３がレジスタ（ＮＯＲＸ）に格納されている値と一致すると、上記と同様に、カウンタＣ４の出力Ｃ４から＋１加算した値を出力し、カウンタ１〜カウンタ３の出力Ｃ１〜出力Ｃ３は０となる。
【００６３】
これにより、図４では、画面上の左端のブロック０の下行のブロックに移動し、上述した動作を繰り返す。
【００６４】
アドレス計算部２４では、これら出力Ｃ１〜Ｃ４の値と、画面上の垂直方向の１行に相当するメモリのアドレス空間でのアドレス増加値を格納するレジスタ（ＩＮＣＰＸ）からの値と、転送開始アドレス値を格納するレジスタ（ＢＡＳＥ）からの値からアドレス計算を行う。このアドレス計算部２４では、
ＡＤＲ＝ＢＡＳＥ＋（Ｃ３×（ＰＸＩＲ＋１）＋Ｃ１）＋（Ｃ４×（ＬＮＩＲ＋１）＋Ｃ２）×ＩＮＣＰＸ
により、メモリ上の実アドレスＡＤＲを計算し、メモリコントローラに指示する。また、エンドアドレス検出部２５により、計算されたＡＤＲが転送終了アドレス値を格納するレジスタ（ＥＮＤ）の値と一致したことが検出されると、ＤＭＡ転送を終了する。なお、図３のラッチ回路は、ＡＤＲが上記転送終了アドレス値と一致すると、リセット（図示せず）される。
【００６５】
以上のように、本実施形態によれば、ＤＭＡコントローラに転送して処理するブロック単位の水平サイズ値と、ブロック単位の垂直サイズ値と、画面上の処理したい水平方向の範囲で転送されるブロック数値と、転送開始アドレス値と、転送終了アドレス値と、垂直方向の１行に相当するメモリのアドレス空間でのアドレス増加値とを一旦設定することにより、すなわち、１回のＤＭＡ起動により、開始アドレスから終了アドレスまでのデータをブロック単位で転送することが可能である。さらに、ブロック単位でデータ転送を行うため、画像処理モジュールの入力側および出力側のバッファ容量もブロック単位に合わせた小容量で充分である。
【００６６】
（実施形態２）
図５は本実施形態の画像処理装置の構成を説明するための図である。本実施形態では、複数（ここでは２つ）の画像処理モジュールがデータバスを共有している例について説明する。
【００６７】
本実施形態では、各画像処理モジュール３Ａ、３Ｂへのデータの入出力を制御するため、独立したＤＭＡチャンネルを割り当てる。図５では、チャンネル名は各モジュールの名前Ａ、Ｂと入出力ＩＮ、ＯＵＴから各々ＡＩ、ＡＯ、ＢＩ、ＢＯとして、関係する信号の末尾にチャンネル名を付けて区別している。
【００６８】
図６は、本実施形態のＤＭＡコントローラの構成を説明するための図である。ここでは、図２に示したＤＭＡアクノリッジ生成部・バスインターフェイス部に、さらに画像処理モジュール３Ａまたは３Ｂのいずれからのデータをデータバスを介して入出力するかの優先順位を決定する優先順位判定部が新たに追加されている。
【００６９】
このＤＭＡアクノリッジ生成部・優先順位判定部・バスインターフェイス部２６では、各画像処理モジュール３Ａ、３ＢからのＤＭＡ要求（ＤＲＥＱ−ＡＩ、ＡＯ、ＢＩ、ＢＯ）に対して、いずれの画像処理モジュールにＤＭＡアクノリッジ信号ＤＡＣＫを発行するかによって優先順位を付ける。そして、その優先順位に従って、転送中のチャンネルを示すＳＥＬ信号を出力する。
【００７０】
さらに、カウンタ部２３にはチャンネル数分のカウンタを備え、レジスタバンク部２４にはチャンネル数分の設定用レジスタを備えている。また、選択中のチャンネルのレジスタおよびカウンタを選択するセレクタ部２７を備えている。
【００７１】
画像処理モジュール３Ａおよび３Ｂ単位で設定されているレジスタバンク部２２およびカウンタ部２３からの信号は、セレクタ部２７で上記優先順位に基づく選択信号ＳＥＬにより、いずれかが選択されてアドレス計算部２４に出力される。そして、全てのチャンネルで共有のアドレス計算部２４にてメモリの実効アドレスＡＤＲを計算し、メモリコントローラに指示する。
【００７２】
さらに、実施形態１では画像処理モジュールが１つであったため、ＷＡＩＴ信号のみでメモリからのデータ読み出しおよびメモリへのデータ格納（書き込み）を識別していたが、ここでは２つの画像処理モジュール３Ａ、３Ｂがあるため、ＳＥＬ信号を基にリードライト信号ＢＷＲＩＴＥを生成し、ＷＡＩＴ信号とＢＷＲＩＴＥ信号により、どの画像処理モジュールがデータ読み出しまたはデータ書き込みを行うのかをメモリコントローラに指示する。従って、複数の画像処理モジュールがデータバスを共有しても、実施形態１と同様に処理を行うことができる。
【００７３】
（実施形態３）
本実施形態では、同じデータを重複して転送する必要がある場合の例を説明する。
【００７４】
例えば、画像処理モジュールで実現される局所的な画像信号処理が、平滑化処理等、１つの出力画素データを計算するために複数の近隣画素を参照するような処理等であった場合、ブロック転送を行ったときにブロックの周辺部でのりしろとなる部分の同じデータを重複して転送する必要がある。
【００７５】
そこで、本実施形態では、このような場合に対応するために、実施形態１および実施形態２の構成に加えて、ＤＭＡコントローラのレジスタバンク部に、１ブロック行の処理（画面の横方向に左端から右端まで１ブロックずつ転送処理を行うこと）終了後に処理中のブロックの第１行Ｃ４を移動させる垂直ライン数を格納するＹＩＮＣレジスタを設ける。
【００７６】
さらに、カウンタ部を図７に示すように構成し、カウンタＣ１の出力Ｃ１がレジスタＰＸＩＲに設定された値、カウンタＣ２の出力Ｃ２がレジスタＬＮＩＲに設定された値およびカウンタＣ３の出力Ｃ３がレジスタＮＯＲＸに設定された値に一致した次のサイクルにおいて、カウンタＣ４の出力値Ｃ４にレジスタＹＩＮＣに設定された値を加算するように変更する。これにより、カウンタＣ４は、垂直方向のブロック数ではなく、画面上の垂直座標をカウントする。
【００７７】
ここで、ＹＩＮＣ＝ＬＮＩＲ＋１であれば、実施形態１および実施形態２と同様の転送処理が行われる。また、ＹＩＮＣ＜ＬＮＩＲ＋１であれば、図８に示すように、（ＬＮＩＲ−ＹＩＮＣ＋１）行が重複して転送される。なお、１ブロック行の処理終了後に次の段のブロックの第１行目に戻る位置を図８中の矢印で示している。
【００７８】
さらに、のりしろの幅が固定されていてもよい場合には、ＹＩＮＣレジスタを設けずに、内部でＬＮＩＲレジスタからＹＩＮＣ＝ＬＮＩＲ＋（のりしろ）として計算を行ってもよい。
【００７９】
アドレス計算部では、
ＡＤＲ＝ＢＡＳＥ＋（Ｃ３×（ＰＸＩＲ＋１）＋Ｃ１）＋（Ｃ２＋Ｃ４）×ＩＮＣＰＸ
により、メモリ上の実効アドレスＡＤＲを計算する。
【００８０】
なお、水平方向の重複については、画像処理モジュール内のバッファに、既に前回のブロック処理のための左隣りのブロックのデータが保持されているため、これを利用することにより転送データ数の増加を抑えることができる。
【００８１】
（実施形態４）
本実施形態では、ＤＭＡコントローラに設定するブロックサイズの変更が必要である場合の例を説明する。
【００８２】
例えば、画像処理モジュールで実現される局所的な画像信号処理が、倍率を自由に設定可能な拡大縮小処理等であった場合、画像処理モジュールでの倍率を変更するとデータの増減が生じるので、ＤＭＡコントローラに設定するブロックサイズを変更する必要がある。
【００８３】
そこで、本実施形態では、このような場合に対応するために、実施形態１〜実施形態３においてレジスタバンク部に保持していたＰＸＩＲ、ＬＮＩＲ、ＹＩＮＣ等を、図９に示すように画像処理モジュールにより設定する。例えば、ある画像処理モジュールに入力されるデータのブロックサイズＰＸＩＲ−Ｉ、ＬＮＩＲ−ＩまたはＹＩＮＣ−Ｉ等の値を画像処理モジュールから発行し、拡大または縮小を行った後の処理結果データのブロックサイズＰＸＩＲ−Ｏ、ＬＮＩＲ−ＯまたはＹＩＮＣ−Ｏ等の値を画像処理モジュールから発行する。これにより、対応する画像処理モジュール単位でＤＭＡコントローラ内のレジスタ値を設定することができるので、きめ細かい制御が可能であり、画像処理装置外部のホストコンピューターからの制御と比較して、制御やレジスタ値の設定が容易になる。
【００８４】
【発明の効果】
以上詳述したように、本発明によれば、ノイズ除去や補間を行って拡大または縮小処理のためのフィルタ処理等のように、関連する周辺画素に対応するデータも取り込んで局所的な画像処理を行うため、ブロック単位（Ｍ×Ｎ）でメモリからデータを読み出し、またはメモリにかく込みを行う画像処理装置において、簡単な制御回路および簡単な設定により、１回のＤＭＡ起動により処理したい画像領域に対応するデータを転送することができ、高速処理を実現することができる。
【００８５】
また、画像処理モジュール内部の入力側および出力側に設けるバッファ容量も、ブロック単位の小容量で充分であり、チップサイズを小さくして製造コストの低廉価化を図ることができる。
【００８６】
これは、画像処理モジュール内の信号処理部では、ブロック単位で信号処理を行うため、ブロック単位のデータが入力側のバッファに格納されればこれらのデータにより信号処理を行うことができるからである。なお、現実的にはデータの待ち合わせなども考慮して、入力側および出力画ｗあのバッファは、各々２×ブロック単位のデータ容量程度であればよい。
【００８７】
さらに、複数の画像処理モジュールで画像処理装置が構成され、各々の画像処理モジュールの入力や出力が様々なブロックサイズであっても、任意のサイズでブロック転送を行うことができるので、制御が容易である。
【００８８】
さらに、画像処理が近隣画素を参照するような処理であって、出力よりも広い範囲の入力データを必要とし、入力データとしては出力されるブロックの周辺部分を重複して転送する必要がある場合に、垂直方向に自動的に重複させてブロック転送を行うこともできる。この場合、水平方向の重複は画像処理モジュール内のバッファを利用することができるので、簡単な制御により、高速に処理を行うことができる。
【００８９】
さらに、画像処理が倍率を変更可能な拡大または縮小のような処理であって、入力または出力のブロックサイズが変更されるような場合に、画像信号処理モジュールに倍率を設定して、画像処理モジュールから自動的にＤＭＡコントローラが転送するときのブロックサイズを設定することができるので、制御が容易である。例えば、拡大処理であれば出力側、縮小処理であれば入力側が画像処理モジュールが備える各々のバッファのサイズに一致するようにレジスタの値を設定することにより、バッファを有効に使用して転送効率を向上させることができる。
【００９０】
本発明は、小型化および軽量化が重視される固体撮像素子を用いた携帯型デジタルスチルカメラやデジタルビデオカメラのような携帯用映像機器に適用した場合に、特に大きな効果が得られる。
【図面の簡単な説明】
【図１】実施形態１の画像処理装置の構成を説明するための図である。
【図２】実施形態１の画像処理装置におけるＤＭＡコントローラの構成を説明するための図である。
【図３】実施形態１の画像処理装置におけるＤＭＡコントローラのカウンタ部の構成を説明するための図である。
【図４】実施形態１の画像処理装置におけるデータ転送順序を説明するための図である。
【図５】実施形態２の画像処理装置の構成を説明するための図である。
【図６】実施形態２の画像処理装置におけるＤＭＡコントローラの構成を説明するための図である。
【図７】実施形態３の画像処理装置におけるＤＭＡコントローラのカウンタ部の構成を説明するための図である。
【図８】実施形態３の画像処理装置におけるデータ転送順序を説明するための図である。
【図９】実施形態４の画像処理装置の構成を説明するための図である。
【図１０】一般的な画像処理装置の構成を説明するための図である。
【図１１】画像データとして転送される部分の画面上の画素位置とその画素に対応するデータを格納しているメモリのアドレス空間を説明するための図である。
【図１２】メモリ上で転送される領域を説明するための図である。
【図１３】従来技術において、ブロック単位で処理を行う画像処理モジュールにデータを転送する場合に必要とされるバッファのサイズを説明するための図である。
【符号の説明】
１  ＤＭＡコントローラ
２  メモリコントローラ
３、３Ａ、３Ｂ  画像処理モジュール
４  データバス
５  外部メモリ
２１  バスインターフェイス部・ＤＭＡアクノリッジ部
２２  レジスタバンク部
２３  カウンタ部
２４  アドレス計算部
２５  エンドアドレス検出部
２６  バスインターフェイス部・優先順位判定部・ＤＭＡアクノリッジ部
２７  セレクタ部
３１  加算器
３２ａ  第１のセレクタ
３２ｂ  第２のセレクタ
３３  ラッチ回路
３４ａ〜３４ｃ  コンパレータ
３５ａ〜３５ｃ  ＡＮＤゲート
１０１  ＣＰＵ
１０２  ＤＭＡコントローラ
１０３  画像処理モジュール
１０４  メモリコントローラ
１０５  外部メモリ
【図１】
0003781634.tif 000002
【図２】
0003781634.tif 000003
【図３】
0003781634.tif 000004
【図４】
0003781634.tif 000005
【図５】
0003781634.tif 000006
【図６】
0003781634.tif 000007
【図７】
0003781634.tif 000008
【図８】
0003781634.tif 000009
【図９】
0003781634.tif 000010
【図１０】
0003781634.tif 000011
【図１１】
0003781634.tif 000012
【図１２】
0003781634.tif 000013
【図１３】
0003781634.tif 000014