(57)【特許請求の範囲】
【請求項１】
画像データを分割し、該分割された画像データを順番に画像処理する画像処理装置であって、
バッファメモリと、
一度に処理可能な画像処理量がそれぞれ異なる複数の画像処理モジュールと、
上流の画像処理モジュールで順次処理された前記分割された画像データ毎に、下流の画像処理モジュールで一度に処理可能な量の第１の部分画像データを、前記下流の画像処理モジュールに転送し、前記第１の部分画像データ以外の第２の部分画像データを、前記バッファメモリに転送し、前記下流の画像処理モジュールで前記第１の部分画像データに対する処理が完了した後に、前記バッファメモリに記憶されていた前記第２の部分画像データを、前記下流の画像処理モジュールに転送する画像データ転送部と
を備えることを特徴とする画像処理装置。
【請求項２】
前記画像データ転送部は、
前記複数の画像処理モジュールが、前記分割した画像データを順番に画像処理する際に、前記分割した画像データの前後に位置するリングピクセルを含む画像データを入力することを必要とするリングピクセル付画像処理を行う場合に、
前記上流の画像処理モジュールで次に処理された前記分割した画像データのうち、前記下流の画像処理モジュールで一度に処理可能な量の第３の部分画像データを前記下流の画像処理モジュールに転送する際に、前記バッファメモリに記憶されていた前記第２の部分画像データの一部を、前記第３の部分画像データの前後に位置するリングピクセルとして用いるべく、前記第３の部分画像データとともに前記下流の画像処理モジュールに転送する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像データ転送部は、
前記バッファメモリに記憶されていた前記第２の部分画像データを、前記下流の画像処理モジュールに転送する前に、前記第３の部分画像データを先に処理させるべく、前記第３の部分画像データを前記下流の画像処理モジュールに転送する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記画像データ転送部は、
前記第２の部分画像データと前記第３の部分画像データとのうち、前記上流の画像処理モジュールで次に処理された前記分割した画像データをより多く出力可能な方を先に前記下流の画像処理モジュールに転送する
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記画像データ転送部は、
少なくとも、前記上流の画像処理モジュールの画像処理量、前記下流の画像処理モジュールの画像処理量、前記リングピクセルのサイズ、及び前記分割した画像データの処理位置に基づいて、前記下流の画像処理モジュールへの転送量と前記バッファへメモリへの転送量とを決定する
ことを特徴とする請求項２乃至４のいずれかに記載の画像処理装置。
【請求項６】
画像データを分割し、該分割された画像データを順番に画像処理する画像処理方法であって、
一度に処理可能な画像処理量がそれぞれ異なる複数の画像処理モジュールのうち、上流の画像処理モジュールで順次処理された前記分割された画像データ毎に、下流の画像処理モジュールで一度に処理可能な量の第１の部分画像データを、前記下流の画像処理モジュールに転送するステップと、
前記第１の部分画像データ以外の第２の部分画像データを、バッファメモリに転送するステップと、
前記下流の画像処理モジュールで前記第１の部分画像データに対する処理が完了した後に、前記バッファメモリに記憶されていた前記第２の部分画像データを、前記下流の画像処理モジュールに転送するステップと
を含むことを特徴とする画像処理方法。
【請求項７】
画像データを分割し、該分割された画像データを順番に画像処理する画像処理装置のコンピュータに、
一度に処理可能な画像処理量がそれぞれ異なる複数の画像処理モジュールのうち、上流の画像処理モジュールで順次処理された前記分割された画像データ毎に、下流の画像処理モジュールで一度に処理可能な量の第１の部分画像データを、前記下流の画像処理モジュールに転送するステップと、
前記第１の部分画像データ以外の第２の部分画像データを、バッファメモリに転送するステップと、
前記下流の画像処理モジュールで前記第１の部分画像データに対する処理が完了した後に、前記バッファメモリに記憶されていた前記第２の部分画像データを、前記下流の画像処理モジュールに転送するステップと
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来より、デジタルカメラや、携帯電話等の撮影機能を有する画像処理装置では、画像を生成する場合、撮像素子から取り込んだベイヤデータ（元画像データ）に対して、ＹＵＶデータへの変換、シェーディング補正や、エッジ強調などの画像補正、ノイズリダクション、歪曲補正、拡大・縮小などの各処理を行っている。
【０００３】
上述したような各処理を行う場合に、画像全体を処理しようとすると、各処理回路が非常に大きくなってしまうため、画像を横方向に所定のライン数ごとに分割するとともに（この分割した単位をベルトと呼ぶ）、分割した元画像データに画像処理で必要となる画像データ（リングピクセル）を付加して各種画像処理を行う技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２１１４０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、従来の画像処理装置では、複数の画像処理モジュールで処理できる処理単位が異なっており、処理した画像を別の画像処理モジュールが使用する場合には、一度、外部メモリに処理画像全体を保存し、それを別モジュールが読み込み処理を行う必要がある。また、画像処理のために、本来の画像サイズ以上にデータを読み込む必要がある。
【０００６】
このため、画像サイズの２倍以上のデータ入出力を外部メモリに対して行うと、多くのモジュールが同時に処理を行うような場面では、データバスの帯域が不足することで、システム全体の処理能力が低下し、処理が遅くなるという問題があった。
【０００７】
そこで本発明は、外部メモリに対するデータ転送量を大幅に削減することができる画像処理装置、画像処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の画像処理装置は、画像データを分割し、該分割された画像データを順番に画像処理する画像処理装置であって、バッファメモリと、一度に処理可能な画像処理量がそれぞれ異なる複数の画像処理モジュールと、上流の画像処理モジュールで順次処理された前記分割された画像データ毎に、下流の画像処理モジュールで一度に処理可能な量の第１の部分画像データを、前記下流の画像処理モジュールに転送し、前記第１の部分画像データ以外の第２の部分画像データを、前記バッファメモリに転送し、前記下流の画像処理モジュールで前記第１の部分画像データに対する処理が完了した後に、前記バッファメモリに記憶されていた前記第２の部分画像データを、前記下流の画像処理モジュールに転送する画像データ転送部とを備えることを特徴とする画像処理装置である。
【０００９】
本発明の画像処理方法は、画像データを分割し、該分割された画像データを順番に画像処理する画像処理方法であって、一度に処理可能な画像処理量がそれぞれ異なる複数の画像処理モジュールのうち、上流の画像処理モジュールで順次処理された前記分割された画像データ毎に、下流の画像処理モジュールで一度に処理可能な量の第１の部分画像データを、前記下流の画像処理モジュールに転送するステップと、前記第１の部分画像データ以外の第２の部分画像データを、バッファメモリに転送するステップと、前記下流の画像処理モジュールで前記第１の部分画像データに対する処理が完了した後に、前記バッファメモリに記憶されていた前記第２の部分画像データを、前記下流の画像処理モジュールに転送するステップとを含むことを特徴とする画像処理方法である。
【００１０】
本発明のプログラムは、画像データを分割し、該分割された画像データを順番に画像処理する画像処理装置のコンピュータに、一度に処理可能な画像処理量がそれぞれ異なる複数の画像処理モジュールのうち、上流の画像処理モジュールで順次処理された前記分割された画像データ毎に、下流の画像処理モジュールで一度に処理可能な量の第１の部分画像データを、前記下流の画像処理モジュールに転送するステップと、前記第１の部分画像データ以外の第２の部分画像データを、バッファメモリに転送するステップと、前記下流の画像処理モジュールで前記第１の部分画像データに対する処理が完了した後に、前記バッファメモリに記憶されていた前記第２の部分画像データを、前記下流の画像処理モジュールに転送するステップとを実行させることを特徴とするプログラムである。
【発明の効果】
【００１１】
この発明によれば、外部メモリに対するデータ転送量を大幅に削減することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態によるデジタルカメラの略構成を示すブロック図である。
【図２】本実施形態によるＡＳＩＣ２の構成を示すブロック図である。
【図３】本実施形態において、元画像データの処理単位を示す概念図である。
【図４】本実施形態において、画像データ転送部１４によるデータ転送を説明するための概念図である。
【図５】本実施形態による画像データ転送部１４の動作を説明するためのフローチャートである。
【図６】本実施形態による画像データ転送部１４の動作を説明するためのフローチャートである。
【図７】本実施形態による画像データ転送部１４の動作（第１入力ベルト）を説明するための概念図である。
【図８】本実施形態による画像データ転送部１４の動作（第２入力ベルト）を説明するための概念図である。
【図９】本実施形態による画像データ転送部１４の動作（第３入力ベルト）を説明するための概念図である。
【図１０】本実施形態による画像データ転送部１４の動作（第４入力ベルト）を説明するための概念図である。
【図１１】本実施形態において、画像処理部１３の処理結果のＲＡＭ３への書き込み順序を示す概念図である。
【発明を実施するための形態】
【００１３】
本発明は、画像処理を複数のモジュールが連続して行う場合の外部メモリに出力する中間データの量を少なくするために、各モジュールの処理単位を把握するとともに、外部メモリに保存すべきデータと処理すべきデータとを判別し、保存すべきデータのみ外部メモリに保存するようにしている。また、上流モジュールから下流モジュールに直接転送できるデータと外部メモリから読み込んだデータとを合成して下流モジュールに転送できるようにしている。また、外部メモリに保存するデータを少なくするために下流モジュールの処理の順番を変更して処理するようにしている。
【００１４】
以下、本発明の実施の形態を、図面を参照して説明する。
【００１５】
Ａ．実施形態の構成
図１は、本発明の実施形態によるデジタルカメラの略構成を示すブロック図である。図において、ＣＰＵ１は、所定のプログラムを実行することにより、後述する当該デジタルカメラの各部の動作（撮影、画像処理など）を制御する。ＡＳＩＣ２は、後述するＣＣＤ４から入力したベイヤデータに対して、ＹＵＶデータ変換、エッジ強調やシェーディング補正などの画像補正、画像の拡大や縮小、また、必要に応じてノイズ除去や、歪画像の歪曲補正を行う。また、ＡＳＩＣ２は、後述するＣＣＤ４から入力された画像データに対して各種画像処理等を施してＬＣＤ６に表示する。
【００１６】
ＲＡＭ３は、ＣＰＵ１や、ＡＳＩＣ２の動作に係る各種パラメータや、撮像された画像データ、該画像データに対して画像処理を施した後の画像データなどを保存するとともに、画像処理での途中結果を一時保存する。特に、本実施形態では、一部の画像処理（ノイズ除去、歪曲補正）において必要とされるバッファ領域がＲＡＭ３に確保される。ＣＣＤ４は、レンズ等の光学系を通して結像された画像を電気信号として取り込み、撮像画像データ（以下、元画像データ、またはベイヤデータという）としてＡＳＩＣ２に供給する。
【００１７】
ＲＯＭ５は、ＣＰＵ１、ＡＳＩＣ２で実行される所定のプログラムや、動作パラメータなどを記憶する。特に、本実施形態では、各種画像処理で用いられるパラメータなどが記憶する。ＬＣＤ６は、各種メニュー画面や、メニュー画面での各種設定項目、動作パラメータ、撮影時のスルー画像、撮影された元画像データなどを表示する。キーボード７は、各種撮影パラメータ、動作モードを設定・指定するためのボタンや、シャッタボタンなどからなる。電源部８は、各種バッテリ（一次電池、二次電池など）からなり、上述した各部を動作させるための電源を供給する。
【００１８】
次に、図２は、本実施形態によるＡＳＩＣ２の構成を示すブロック図である。図において、ＡＳＩＣ２は、ＤＭＡＣ（Dynamic Memory Access
Controller）９、メモリ制御部１０、ＣＣＤ制御部１１、画像処理部１２、１３、画像データ転送部１４、ＬＣＤ制御部１５、キーボード制御部１６、及び画像変換部１７からなる。
【００１９】
ＤＭＡＣ９は、ＣＰＵ１を介さずに、メモリ制御部１０を用いてＲＡＭ３や、ＲＯＭ５に直接アクセスし、元画像データの保存や、読み込み、あるいは、後述する各種画像処理部への引き渡しなどを制御する。メモリ制御部１０は、ＤＭＡＣ９による制御の下、直接、ＲＡＭ３や、ＲＯＭ５にアクセスして、ＤＭＡＣ９とＲＡＭ３や、ＲＯＭ５との間でデータの受け渡しを行う。ＣＣＤ制御部１１は、ＣＣＤ４を駆動制御し、ＣＣＤ４で取り込んだ元画像データをＤＭＡＣ９に供給する。
【００２０】
画像処理部１２は、ＤＭＣ９から供給される画像データに対して、拡大などの画像処理を行い、画像データ転送部１４に供給する。画像処理部１３は、画像データ転送部１４から供給される画像データに対して、さらに拡大などの画像処理を行う。画像データ転送部１５は、上記画像処理部１２から供給される画像データを画像処理部１３に受け渡す際に、ＤＭＡＣ９を介して、画像処理部１２、１３とＲＡＭ３との間で画像データの転送処理を制御する。
【００２１】
ＬＣＤ制御部１５は、ＤＭＡＣ９から供給される元画像データや、画像処理が施された画像データなどのＬＣＤ６への表示を制御する。キーボード制御部１６は、キーボード７の入力（スキャン）を制御する。画像変換部１７は、元画像データをＹＵＶデータに変換する。
【００２２】
図３は、本実施形態において、元画像データの処理単位を示す概念図である。本実施形態では、図２に示すように、元画像データを第１入力ベルト１０１、第２入力ベルト１０２、第３入力ベルト１０３、…というように、一部が重複したベルト状で読み出し、画像処理部１２へと供給する。画像データ転送部１４は、画像処理部１２から出力される、画像処理後の画像データを、次段の画像処理部１０３、または外部メモリであるＲＡＭ３に振り分けるとともに、外部メモリであるＲＡＭ３への画像データ転送が最小になるように、画像処理部１３の処理単位ごとの処理順番を変更するようにしている。これにより、外部メモリであるＲＡＭ３との間の画像データの送受信量を減らすことができ、システム全体のバス帯域を少なくすることができる。
【００２３】
図４は、本実施形態において、画像データ転送部１４によるデータ転送を説明するための概念図である。本実施形態では、画像処理部１２、１３ともに４倍までの画像拡大が行えるものとし、１６ラインの画像データを画像処理部１２で４倍して６４ラインに拡大し、さらにその画像を画像処理部１３で２倍して１２８ラインに拡大する画像処理を行う場合について説明する。拡大時に必要なリングピクセルは、２ピクセルとし、画像処理部１２、１３のデータ入力時には、ベルトの上下に各々２ライン分のリングピクセルを必要とするものとする。元画像データにリングピクセルが不足する場合には、画像データ転送部１４が２ラインのリングピクセルを付加（上下端のラインをコピー）するものとする。画像処理部１２、１３の出力ライン数は、１６ラインとする。画像処理部１３の入力ライン数は、２倍なので出力１６ライン÷２＋リングの２×２ラインの１２ラインとなる。
【００２４】
Ｂ．実施形態の動作
次に、上述した実施形態の動作について説明する。
図５、及び図６は、本実施形態による画像データ転送部１４の動作を説明するためのフローチャートである。なお、各図において、処理単位をベルトという。また、垂直方向画素数をＹ座標とし、０〜画像サイズ−１とする。画像処理部１２の出力画像は０〜６３ラインとする。
【００２５】
まず、入力側ベルトの終了位置のＹ座標（ＩｎＥｎｄＹ＝ベルトライン数ー１）を算出し（ステップＳ１０）、出力側ベルトの終了位置のＹ座標（ＯｕｔＥｎｄＹ＝ベルトライン数＋下リング−１）を算出する（ステップＳ１２）。次に、ＲＡＭ３へ出力すべきライン数を算出し（ステップＳ１４）、入力データを画像処理部１３へ出力するとともに、内部バッファへ一時蓄積し、必要なラインのデータだけＲＡＭ３に出力し、画像処理部１３の処理結果をＲＡＭ３に出力する（ステップＳ１６）。
【００２６】
次に、ＩｎＥｎｄＹ＿ｏｌｄ＝ＩｎＥｎｄＹとして入力側ベルトの終了値のＹ座標を保存し、入力側ベルトの終了値のＹ座標（ＩｎＥｎｄＹ＝ＩｎＥｎｄＹ＋入力ベルトライン数）を算出（更新）する（ステップＳ１８）。次に、出力側が最終ベルトであるか否かを判断し（ステップＳ２０）、最終ベルトでない場合には、ＯｕｔＥｎｄＹ＿ｏｌｄ＝ＯｕｔＥｎｄＹとして出力側ベルトの終了値のＹ座標を保存し、出力側ベルトの終了値のＹ座標（ＯｕｔＥｎｄＹ＝ＯｕｔＥｎｄＹ＋出力ベルトライン数）を算出（更新）する（ステップＳ２２）。
【００２７】
次に、画像処理部１３への転送ライン数（ＯｕｔＥｎｄＹ−ＩｎＥｎｄＹ＿ｏｌｄ）を算出する（ステップＳ２４）。次に、入力側ベルトの終了値のＹ座標ＩｎＥｎｄＹが出力側ベルトの終了値のＹ座標ＯｕｔＥｎｄＹより小さいか否かを判断する（ステップＳ２６）。そして、入力側ベルトの終了値のＹ座標ＩｎＥｎｄＹが出力側ベルトの終了値のＹ座標ＯｕｔＥｎｄＹ以上である場合には（ステップＳ２６のＮＯ）、ステップＳ２０に戻り、上述した処理を繰り返し実行する。
【００２８】
そして、出力側が最終ベルトになるか（ステップＳ２０のＹＥＳ）、入力側ベルトの終了値のＹ座標ＩｎＥｎｄＹが出力側ベルトの終了値のＹ座標ＯｕｔＥｎｄＹ以下となると（ステップＳ２６のＹＥＳ）、複数の出力ベルトの処理がある場合、画像処理部１３への転送ライン数が多いベルトを選択する（図６のステップＳ２８）。そして、選択したベルトの処理として、入力データを画像処理部１３へ出力するとともに、内部バッファに一時蓄積し、必要なラインのデータだけＲＡＭ３に出力し、画像処理部１３の処理結果をＲＡＭ３に出力する（ステップＳ３０）。
【００２９】
次に、選択されなかったベルトの処理として、ＲＡＭ３からデータを取り込み、取り込んだデータを画像処理部１３に出力し、画像処理部１３の処理結果をＲＡＭ３に出力する（ステップＳ３２）。
【００３０】
次に、入力側は最終ベルトであるか否かを判断し（ステップＳ３４）、最終ベルトでない場合には（ステップＳ３４のＮＯ）、ステップＳ１８に戻り、上述した処理を繰り返し実行する。一方、入力側が最終ベルトである場合には（ステップＳ３４のＹＥＳ）、当該処理を終了する。
【００３１】
次に、上述した処理をより詳細に説明する。
図７乃至図１０（ａ）、（ｂ）、（ｃ）は、本実施形態による画像データ転送部１４の動作を説明するための概念図である。また、図１１は、本実施形態において、画像処理部１３の処理結果のＲＡＭ３への書き込み順序を示す概念図である。なお、以下の説明において、括弧内の数値はライン数を示している。
【００３２】
まず、第１入力ベルト１０１の処理について図７を参照して説明する。
画像データ転送部１４は、動作を開始すると、まず、第１入力ベルト１０１の下端のＹ座標（ＩｎＥｎｄＹ＝ベルトライン数（１６）−１＝１５）を算出し（ステップＳ１０）、第１入力ベルト１０１の出力側の下端のＹ座標（ＯｕｔＥｎｄＹ＝ベルトライン数（８）＋下リング（２）−１＝９）を算出する（ステップＳ１２）。
【００３３】
次に、画像データ転送部１４は、図７に示すように、画像処理部１２からのデータ入力を開始し、０〜１５ラインの入力データの内、０ラインのデータを２ライン分コピーして０〜９ラインのデータ（第１出力ベルト２０１）に付加し、１２ライン分のデータとして画像処理部１３に出力して拡大動作（２倍）を行わせ、その処理結果のデータ（０〜７ライン）を図１１の左端に示すようにＲＡＭ３に書き込む（ステップＳ１６）。一方、画像処理部１２からのデータ入力のうち、画像処理部１３が次ベルト以降で必要な６〜１５ラインのデータを、ＤＭＡＣ９を介してＲＡＭ３に保存する（同じくステップＳ１６）。以上で第１入力ベルト１０１の処理は終了する。
【００３４】
次に、第２入力ベルト１０２の処理について図８（ａ）、（ｂ）を参照して説明する。
画像データ転送部１４は、まず、第１入力ベルト１０１の下端のＹ座標（ＩｎＥｎｄＹ＿ｏｌｄ＝ＩｎＥｎｄＹ＝１５）を保存するとともに、第２入力ベルト１０２の下端のＹ座標（ＩｎＥｎｄＹ＝ＩｎＥｎｄＹ（１５）＋入力ベルトライン数（１６）＝３１）を算出する（ステップＳ１８）。
【００３５】
次に、出力側は最終ベルトではないので（ステップＳ２０のＮＯ）、画像データ転送部１４は、第１出力ベルト２０１の下端のＹ座標（ＯｕｔＥｎｄＹ＿ｏｌｄ＝ＯｕｔＥｎｄＹ＝９）を算出するとともに、第２出力ベルト２０２の下端のＹ座標ＯｕｔＥｎｄＹを算出する（ステップＳ２２）。この場合、出力側は、最終ベルトではないので、第２出力ベルト２０２の下端のＹ座標ＯｕｔＥｎｄＹ＝ＯｕｔＥｎｄＹ（９）＋出力ベルトライン数（８）＝１７となる。
【００３６】
次に、第２入力ベルト１０２のうち、第２出力ベルト２０２として出力できるライン数を計算すると、ＯｕｔＥｎｄＹ（１７）−ＩｎＥｎｄＹ＿ｏｌｄ（１５）＝２となる（ステップＳ２４）。ＩｎＥｎｄＹ（３１）は、ＯｕｔＥｎｄＹ（１７）より大きいので（ステップＳ２６のＮＯ）、第３出力ベルト２０３の下端のＹ座標を計算し、ＯｕｔＥｎｄＹ＿ｏｌｄ＝ＯｕｔＥｎｄＹ＝１７、ＯｕｔＥｎｄＹ＝ＯｕｔＥｎｄＹ（１７）＋出力ベルトライン数（８）＝２５となる（ステップＳ２２）。
【００３７】
次に、第２入力ベルト１０２のうち、第３出力ベルト２０３として出力できるライン数を計算すると、ＯｕｔＥｎｄＹ（２５）−ＩｎＥｎｄＹ＿ｏｌｄ（１５）＝１０となる（ステップＳ２４）。まだＩｎＥｎｄＹ（３１）は、ＯｕｔＥｎｄＹ（２５）より大きいので（ステップＳ２６のＮＯ）、第４出力ベルトの下端のＹ座標を計算し、ＯｕｔＥｎｄＹ＿ｏｌｄ＝ＯｕｔＥｎｄＹ＝２５、ＯｕｔＥｎｄＹ＝ＯｕｔＥｎｄＹ（２５）＋出力ベルトライン数（８）＝３３となる（ステップＳ２２）。
【００３８】
次に、第２入力ベルト１０２のうち、第４出力ベルトとして出力できるライン数を計算すると、ＯｕｔＥｎｄＹ（３３）−ＩｎＥｎｄＹ＿ｏｌｄ（１５）＝１８となるが（ステップＳ２４）、ＩｎＥｎｄＹ（３１）＜ＯｕｔＥｎｄＹ（３３）となり（ステップＳ２６のＹＥＳ）、全てのラインが出力できないので、第２出力ベルト２０２と第３出力ベルト２０３の処理を行うこととする。このとき、第２入力ベルト１０２のうち、第３出力ベルト２０３として出力できるライン数の方が、第２出力ベルト２０２の場合より大きいので、第３出力ベルト２０３を先に処理することとする（ステップＳ２８）。
【００３９】
ゆえに、画像データ転送部１４は、図８（ａ）に示すように、前の処理でＲＡＭ３に保存しておいた１４〜１５ラインのデータを、ＤＭＡＣ９を介してＲＡＭ３からリードし、第２入力ベルト１０２のデータのうち、１６〜２５ラインのデータ（第３出力ベルト２０３）に付加し、１２ライン分のデータとして画像処理部１３に出力して拡大動作（２倍）を行わせ、その処理結果のデータ（１６〜２３ライン）を図１１の中央に示すようにＲＡＭ３に書き込む（ステップＳ３０）。
【００４０】
一方、画像データ転送部１４は、図８（ａ）に示すように、画像処理部１２からのデータ入力のうち、画像処理部１３が次ベルト以降で必要な１６〜１７ラインと２２〜３１ラインのデータを、ＤＭＡＣ９を介してＲＡＭ３に保存する（同じくステップＳ３０）。
【００４１】
次に、画像データ転送部１４は、図８（ｂ）に示すように、前の処理でＲＡＭ３に保存しておいた６〜１７ラインのデータ（第２出力ベルト２０２）を、ＤＭＡＣ９を介してＲＡＭ３から読み込み、画像処理部１３に出力して拡大動作（２倍）を行わせ、その処理結果のデータ（８〜１５ライン）を、図１１の右端に示すようにＲＡＭ３に書き込む（ステップＳ３２）。以上で、第２入力ベルト１０２の処理は終了する。
【００４２】
次に、第３入力ベルト１０３の処理について図９（ａ）、（ｂ）を参照して説明する。
なお、第３入力ベルト１０３については上述いた第２入力ベルト１０２と同様の処理となるので簡単に説明する。画像データ転送部１４は、図９（ａ）に示すように、３０〜３１ラインのデータを、ＤＭＡＣ９を介してＲＡＭ３からリードし、第３入力ベルト１０３のデータのうち、３２〜４１ラインのデータ（第６出力ベルト２０６）に付加し、１２ライン分のデータとして画像処理部１３に出力して拡大動作（２倍）を行わせ、その処理結果のデータ（３２〜３９ライン）をＲＡＭ３に書き込む（ステップＳ３０）。
【００４３】
一方、画像データ転送部１４は、図９（ａ）に示すように、画像処理部１２からのデータ入力のうち、画像処理部１３が次ベルト以降で必要な３２〜３３ラインと３８〜４７ラインのデータを、ＤＭＡＣ９を介してＲＡＭ３に保存する（同じくステップＳ３０）。
【００４４】
次に、画像データ転送部１４は、図９（ｂ）に示すように、前の処理でＲＡＭ３に保存しておいた２２〜３３ラインのデータ（第５出力ベルト２０５）を、ＤＭＡＣ９を介してＲＡＭ３から読み込み、画像処理部１３に出力して拡大動作（２倍）を行わせ、その処理結果のデータ（２４〜３１ライン）をＲＡＭ３に書き込む（ステップＳ３２）。以上で、第３入力ベルト１０３の処理は終了する。
【００４５】
最後に、第４入力ベルト（入力最終ベルト）１０４の処理について図１０（ａ）〜（ｃ）を参照して説明する。画像データ転送部１４は、まず、第３入力ベルト１０３の下端のＹ座標（ＩｎＥｎｄＹ＿ｏｌｄ＝ＩｎＥｎｄＹ＝４７）を保存するとともに、第４入力ベルト１０４の下端のＹ座標（ＩｎＥｎｄＹ＝ＩｎＥｎｄＹ（４７）＋入力ベルトライン数（１６）＝６３）を算出する（ステップＳ１８）。
【００４６】
次に、出力側は処理が終わっている第６出力ベルト２０６の下端のＹ座標（ＯｕｔＥｎｄＹ＿ｏｌｄ＝ＯｕｔＥｎｄＹ＝４１）を算出するとともに、まだ処理を行っていない第７出力ベルト２０７の下端のＹ座標を計算する（ステップＳ２２）。出力側は、最終ベルトでは無いので、出力側の第７ベルト２０７の下端のＹ座標ＯｕｔＥｎｄＹ＝ＯｕｔＥｎｄＹ（４１）＋出力ベルトライン数（８）＝４９となる。
【００４７】
次に、第４入力ベルト１０４のうち、第７出力ベルト２０７として出力できるライン数を計算すると、ＯｕｔＥｎｄＹ（４９）−ＩｎＥｎｄＹ＿ｏｌｄ（４７）＝２となる（ステップＳ２４）。ＩｎＥｎｄＹ（６３）は、ＯｕｔＥｎｄＹ（４９）より大きいので、第８出力ベルト２０８の下端のＹ座標を計算し、ＯｕｔＥｎｄＹ＿ｏｌｄ＝ＯｕｔＥｎｄＹ＝４９、ＯｕｔＥｎｄＹ＝ＯｕｔＥｎｄＹ（４９）＋出力ベルトライン数（８）＝５７となる（ステップＳ２２）。
【００４８】
次に、第４入力ベルト１０４のうち、第８出力ベルト２０８として出力できるライン数を計算すると、ＯｕｔＥｎｄＹ（５７）−ＩｎＥｎｄＹ＿ｏｌｄ（４７）＝１０となる（ステップＳ２４）。まだＩｎＥｎｄＹ（６３）は、ＯｕｔＥｎｄＹ（５７）より大きいが（ステップＳ２６のＹＥＳ）、出力側は最終ベルトになるので（ステップＳ２０のＹＥＳ）、第７出力ベルト２０７と第８出力ベルト２０８の処理を行うこととする。このとき、第４入力ベルト１０４のうち、第８出力ベルト２０８として出力できるライン数の方が、第７出力ベルト２０７の場合より大きいので、第８出力ベルト２０８を先に処理することとする（ステップＳ２８）。
【００４９】
ゆえに、画像データ転送部１４は、図１０（ａ）に示すように、前の処理でＲＡＭ３に保存しておいた４６〜４７ラインのデータを、ＤＭＡＣ９を介してＲＡＭ３からリードし、第４入力ベルト１０４のデータのうち、４８〜５７ラインのデータ（第８出力ベルト２０８）に付加し、１２ライン分のデータとして画像処理部１３に出力して拡大動作（２倍）を行わせ、その処理結果のデータ（４８〜５５ライン）をＲＡＭ３に書き込む（ステップＳ３０）。
【００５０】
一方、画像データ転送部１４は、図１０（ａ）に示すように、画像処理部１２からのデータ入力のうち、画像処理部１３が次ベルト以降で必要な４８〜４９ラインと５４〜６３ラインのデータを、ＤＭＡＣ９を介してＲＡＭ３に保存する（同じくステップＳ３０）。
【００５１】
次に、画像データ転送部１４は、図１０（ｂ）に示すように、前の処理でＲＡＭ３に保存しておいた３８〜４９ラインのデータ（第７出力ベルト２０７）を、ＤＭＡＣ９を介してＲＡＭ３からリードし、画像処理部１３に出力して拡大動作（２倍）を行わせ、その処理結果のデータ（４０〜４７ライン）を、ＤＭＡＣ９を介してＲＡＭ３に書き込む（ステップＳ３２）。
【００５２】
次に、画像データ転送部１４は、図１０（ｃ）に示すように、ＤＭＡＣ９を介してＲＡＭ３から５４〜６３ラインのデータ（第９出力ベルト２０９）を読み込むとともに、６３ラインのデータを２ライン分コピーして付加し、１２ラインのデータとして画像処理部１３に出力して拡大動作を行わせ、その処理結果のデータ（５６〜６３ライン）を、ＤＭＡＣ９を介してＲＡＭ３に書き込む（同じくステップＳ３２）。以上で第４入力ベルト１０４の処理は終了する。
【００５３】
上述したように、本実施形態では、画像データ処理時に、画像処理部１２、１３（複数のモジュール）で画像データの受け渡しを行う場合、画像処理部１２（上流の画像処理モジュール）の出力データを全てＲＡＭ３（バッファメモリ）上に展開せずに、画像処理部１３（下流の画像処理モジュール）で処理可能なデータは、ダイレクトに画像処理部１３（下流の画像処理モジュール）に転送し、処理可能なデータ以外のデータは、ＲＡＭ３（バッファメモリ）に転送するようにしたので、外部メモリ（ＲＡＭ３）との間の画像データの送受信量を減らすことにより、システム全体のバス帯域を少なくすることができる。
【００５４】
また、本実施形態では、画像処理に画像データの前後に位置するリングピクセルを必要とする場合には、ＲＡＭ３（バッファメモリ）への画像データ転送が最小になるように、画像処理部１３（下流の画像処理モジュール）の処理単位ごとの処理順番を変更するようにしたので、ＲＡＭ３（バッファメモリ）との間の画像データの送受信量を減らすことができ、システム全体のバス帯域を少なくすることができる。
【００５５】
より具体的には、ＲＡＭ３（バッファメモリ）との送受信量は、９８ライン分のリード・ライトになる。従来技術のように、全ての画像データをＲＡＭ３上に保存した場合、リングピクセル分の重複したリードが行われるため、画像サイズの２倍以上の１５６ライン分のリード・ライトになる。すなわち、本実施形態では、約６３％のデータ転送量となり、その削減分が他のモジュールの外部メモリへのアクセスに使用することができる。
【００５６】
このように、上述した実施形態によれば、従来技術に比べて外部メモリに対するデータ転送量を大幅に削減することができるため、データバスの帯域使用量を削減することができ、画像処理システム全体の高速化を行うことができる。
【００５７】
なお、上述した実施形態においては、上流の画像処理モジュール（画像処理部１２）の処理能力が下流の画像処理モジュール（画像処理部１３）の処理能力より大である場合を前提に説明したが、これに限らず、上流の画像処理モジュール（画像処理部１２）と下流の画像処理モジュール（画像処理部１３）との処理能力を比較する比較手段を設け、上流の画像処理モジュール（画像処理部１２）の処理能力が下流の画像処理モジュール（画像処理部１３）の処理能力と同等であるか、あるいは下流の画像処理モジュール（画像処理部１３）の処理能力より小であると判定された場合には、外部メモリであるＲＡＭ３への画像データの転送を行う必要がないので、上流の画像処理モジュール（画像処理部１２）で処理した画像データをそのまま下流の画像処理モジュール（画像処理部１３）へ転送して処理させるようにしてもよい。
【００５８】
以上、この発明のいくつかの実施形態について説明したが、この発明は、これらに限定されるものではなく、特許請求の範囲に記載された発明とその均等の範囲を含むものである。
以下に、本願出願の特許請求の範囲に記載された発明を付記する。
【００５９】
（付記１）
付記１に記載の発明は、画像データを分割し、該分割された画像データを順番に画像処理する画像処理装置であって、バッファメモリと、一度に処理可能な画像処理量がそれぞれ異なる複数の画像処理モジュールと、上流の画像処理モジュールで順次処理された前記分割された画像データ毎に、下流の画像処理モジュールで一度に処理可能な量の第１の部分画像データを、前記下流の画像処理モジュールに転送し、前記第１の部分画像データ以外の第２の部分画像データを、前記バッファメモリに転送し、前記下流の画像処理モジュールで前記第１の部分画像データに対する処理が完了した後に、前記バッファメモリに記憶されていた前記第２の部分画像データを、前記下流の画像処理モジュールに転送する画像データ転送部とを備えることを特徴とする画像処理装置である。
【００６０】
（付記２）
付記２に記載の発明は、前記画像データ転送部は、前記複数の画像処理モジュールが、前記分割した画像データを順番に画像処理する際に、前記分割した画像データの前後に位置するリングピクセルを含む画像データを入力することを必要とするリングピクセル付画像処理を行う場合に、前記上流の画像処理モジュールで次に処理された前記分割した画像データのうち、前記下流の画像処理モジュールで一度に処理可能な量の第３の部分画像データを前記下流の画像処理モジュールに転送する際に、前記バッファメモリに記憶されていた前記第２の部分画像データの一部を、前記第３の部分画像データの前後に位置するリングピクセルとして用いるべく、前記第３の部分画像データとともに前記下流の画像処理モジュールに転送することを特徴とする付記１に記載の画像処理装置である。
【００６１】
（付記３）
付記３に記載の発明は、前記画像データ転送部は、前記バッファメモリに記憶されていた前記第２の部分画像データを、前記下流の画像処理モジュールに転送する前に、前記第３の部分画像データを先に処理させるべく、前記第３の部分画像データを前記下流の画像処理モジュールに転送することを特徴とする付記２に記載の画像処理装置である。
【００６２】
（付記４）
付記４に記載の発明は、前記画像データ転送部は、前記第２の部分画像データと前記第３の部分画像データとのうち、前記上流の画像処理モジュールで次に処理された前記分割した画像データをより多く出力可能な方を先に前記下流の画像処理モジュールに転送する
ことを特徴とする付記３に記載の画像処理装置である。
【００６３】
（付記５）
付記５に記載の発明は、前記画像データ転送部は、少なくとも、前記上流の画像処理モジュールの画像処理量、前記下流の画像処理モジュールの画像処理量、前記リングピクセルのサイズ、及び前記分割した画像データの処理位置に基づいて、前記下流の画像処理モジュールへの転送量と前記バッファへメモリへの転送量とを決定することを特徴とする請求項２乃至４のいずれかに記載の画像処理装置である。
【００６４】
（付記６）
付記６に記載の発明は、画像データを分割し、該分割された画像データを順番に画像処理する画像処理方法であって、一度に処理可能な画像処理量がそれぞれ異なる複数の画像処理モジュールのうち、上流の画像処理モジュールで順次処理された前記分割された画像データ毎に、下流の画像処理モジュールで一度に処理可能な量の第１の部分画像データを、前記下流の画像処理モジュールに転送するステップと、前記第１の部分画像データ以外の第２の部分画像データを、バッファメモリに転送するステップと、前記下流の画像処理モジュールで前記第１の部分画像データに対する処理が完了した後に、前記バッファメモリに記憶されていた前記第２の部分画像データを、前記下流の画像処理モジュールに転送するステップとを含むことを特徴とする画像処理方法である。
【００６５】
（付記７）
付記７に記載の発明は、画像データを分割し、該分割された画像データを順番に画像処理する画像処理装置のコンピュータに、一度に処理可能な画像処理量がそれぞれ異なる複数の画像処理モジュールのうち、上流の画像処理モジュールで順次処理された前記分割された画像データ毎に、下流の画像処理モジュールで一度に処理可能な量の第１の部分画像データを、前記下流の画像処理モジュールに転送するステップと、前記第１の部分画像データ以外の第２の部分画像データを、バッファメモリに転送するステップと、前記下流の画像処理モジュールで前記第１の部分画像データに対する処理が完了した後に、前記バッファメモリに記憶されていた前記第２の部分画像データを、前記下流の画像処理モジュールに転送するステップと  を実行させることを特徴とするプログラムである。
【符号の説明】
【００６６】
１  ＣＰＵ
２  ＡＳＩＣ
３  ＲＡＭ
４  ＣＣＤ
５  ＲＯＭ
６  ＬＣＤ
７  キーボード
８  電源部
９  ＤＭＡＣ
１０  メモリ制御部
１１  ＣＣＤ制御部
１２、１３  画像処理部
１４  画像データ転送部
１５  ＬＣＤ制御部
１６  キーボード制御部
【図１】
0005867903.tif 000002
【図２】
0005867903.tif 000003
【図３】
0005867903.tif 000004
【図４】
0005867903.tif 000005
【図５】
0005867903.tif 000006
【図６】
0005867903.tif 000007
【図７】
0005867903.tif 000008
【図８】
0005867903.tif 000009
【図９】
0005867903.tif 000010
【図１０】
0005867903.tif 000011
【図１１】
0005867903.tif 000012