(57)【特許請求の範囲】
【請求項１】
画像データに対して第１画像処理を実行し、該第１画像処理後の中間画像を第１方向及び該第１方向と直交する第２方向に分割した第１ブロックの単位で出力し、前記第１画像処理の終了した画素データの前記中間画像における第１方向及び第２方向の座標を含む処理済座標を出力する第１処理部と、
前記中間画像を格納するメモリ部と、
前記処理済座標に基づいて、前記メモリ部から前記中間画像を読み出し、該中間画像に対して第２画像処理を実行し、前記第２画像処理後の画像データを第１方向及び第２方向に分割した第２ブロックの単位で出力する第２処理部と、
前記第１処理部から出力される前記中間画像を前記メモリ部に格納する制御と、前記メモリ部から前記中間画像を読み出して前記第２処理部に出力する制御とを実行する制御部と、を有することを特徴とする画像処理装置。
【請求項２】
前記第２処理部は、前記第２画像処理に不要となった画素データの前記中間画像における第１方向及び第２方向の座標を含む不要座標を前記第１処理部に出力し、
前記第１処理部は、前記不要座標に基づいて、前記メモリ部に対する上書きを許可することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１画像処理は、前記第１方向に沿って実行され、
前記メモリ部は、前記第１ブロックで出力される前記第１画像処理後の中間画像が順次格納されるバッファ領域を有し、
前記制御部は、前記バッファ領域の第１方向のサイズをＨ１、前記バッファ領域の第２方向のサイズをＶ１、前記中間画像を格納する際の前記バッファ領域における開始アドレスをｏｆｓ、処理対象の画素データの前記中間画像における第１方向の座標をサイズＨ１で除算したときの剰余をｎ、処理対象の画素データの前記中間画像における第２方向の座標をサイズＶ１で除算したときの剰余をｍとしたときに、下記式１を用いて前記メモリ部のアドレスを算出し、
式１：
メモリ部のアドレス＝（Ｈ１×ｍ＋ｎ）＋ｏｆｓ
前記制御部は、前記アドレスに前記処理対象の画素データを格納することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第１画像処理及び前記第２画像処理の処理内容に基づいて、前記バッファ領域のサイズと前記第１ブロック及び前記第２ブロックのサイズとを設定する制御回路を有することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記制御回路は、前記各第１ブロックのサイズを、前記第２処理部から前記各第２ブロックを出力可能なサイズに設定することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記制御回路は、
前記第２画像処理が、前記第２方向に隣接して並ぶ前記第２ブロックに対して処理を行う際に、前記中間画像の画素データを重複して使用しない画像処理である場合には、
前記バッファ領域の第１方向のサイズを、前記中間画像の第１方向のサイズよりも小さいサイズに設定し、
前記バッファ領域の第２方向のサイズを、前記第１ブロックの第２方向のサイズと等しいサイズに設定することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記制御回路は、
前記第２画像処理が、前記第２方向に隣接して並ぶ前記第２ブロックに対して処理を行う際に、前記中間画像の画素データを重複して使用する画像処理である場合には、
前記バッファ領域の第１方向のサイズを、前記中間画像の第１方向のサイズと等しいサイズに設定し、
前記バッファ領域の第２方向のサイズを、前記第１ブロックの第２方向のサイズと、前記重複して使用する画素データのサイズとに基づいて設定することを特徴とする請求項５に記載の画像処理装置。
【請求項８】
前記中間画像を第１中間画像とし、前記バッファ領域を第１バッファ領域としたときに、前記メモリ部は、前記第２画像処理後の画像データが第２中間画像として格納され、前記第１バッファ領域とは異なる領域に割り当てられた第２バッファ領域を有し、
前記第２処理部は、前記第２画像処理の終了した画素データの前記第２中間画像における第１方向及び第２方向の座標を処理済座標として出力し、
前記第２処理部から出力される処理済座標に基づいて、前記第２バッファ領域から前記第２中間画像を読み出し、該第２中間画像に対して第３画像処理を実行するとともに、前記第３画像処理後の画像データを第１方向及び第２方向に分割した第３ブロックの単位で出力する第３処理部を有し、
前記第３処理部は、前記第３画像処理に不要となった画素データの前記第２中間画像における第１方向及び第２方向の座標を不要座標として前記第２処理部に出力し、
前記第２処理部は、前記第３処理部から出力される不要座標に基づいて、前記不要となった画素データが格納された前記第２バッファ領域に対する上書きを許可することを特徴とする請求項３〜７のいずれか一項に記載の画像処理装置。
【請求項９】
画像処理装置の外部に設けられた外部メモリから入力画像を読み出し、該入力画像に対して第１画像処理を実行し、
前記第１画像処理後の中間画像を第１方向及び該第１方向に直交する第２方向に分割した第１ブロックの単位で出力し、
前記画像処理装置内に設けられたメモリ部に、前記中間画像を前記第１ブロック毎に順次格納し、
前記第１画像処理の終了した画素データの前記中間画像における第１方向及び第２方向の座標を含む処理済座標を生成し、
前記処理済座標に基づいて、前記メモリ部から前記中間画像を読み出し、
前記読み出した中間画像に対して第２画像処理を実行し、
前記第２画像処理後の画像データを第１方向及び第２方向に分割した第２ブロックの単位で出力することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関するものである。
【背景技術】
【０００２】
従来、デジタルカメラ等の撮像装置は、ＣＣＤ（Charge Coupled Devices）イメージセンサなどの撮像素子によって得られた撮像信号をデジタルの画像データに変換し、外部メモリ（例えば、ＳＤＲＡＭ）に格納する。撮像装置に設けられた画像処理装置は、外部メモリから読み出した画像データに対して、ローパスフィルタやノイズフィルタ等のフィルタ処理、解像度変換処理やブレンド処理等の各種の画像処理を施す複数の処理部を有する。そして、画像処理装置は、各処理部にて画像データに対して画像処理を施した後に、処理後の画像データを外部メモリに一時的に格納する（例えば、特許文献１参照）。
【０００３】
撮像装置は、例えばＩＳＯ感度が高いモードでは、画像データに対するノイズの影響が増大するため画像データに対するフィルタ処理を複数回実行する。しかし、フィルタ処理の回数が増加すると外部メモリに対するアクセス頻度が高くなり、メモリアクセスにおける帯域幅が増加するという問題がある。
【０００４】
そこで、外部メモリに対するアクセス頻度を抑えるために、画像処理後の画像データを一時的に記憶する内蔵メモリを画像処理装置内に設ける技術が提案されている（例えば、特許文献２，３参照）。この種の画像処理装置における処理の一例を図３３に示す。
【０００５】
図３３に示す画像処理装置８０では、まず、フィルタ処理部８１が、外部メモリ９０から読み出した画像データに対して第１のフィルタ処理を実行し、そのフィルタ処理後の画像データ（中間画像）を内蔵メモリ８３に格納する。次に、フィルタ処理部８２は、フィルタ処理部８１から処理済のライン番号の通知を受けて、内蔵メモリ８３から中間画像を読み出し、その中間画像に対して第２のフィルタ処理を実行する。そして、フィルタ処理部８２は、２回のフィルタ処理が施された画像データを外部メモリ９０に格納する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１２４０７１号公報
【特許文献２】特開２００５−０９４２１２号公報
【特許文献３】特開２０１４−１０２６７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、上記画像処理装置８０では、内蔵メモリ８３のメモリ容量の増大を抑制するために、１フレームの画像データを複数のブロックに分割し、各フィルタ処理部８１，８２がブロックを順次入力してフィルタ処理を実行する。しかし、この場合には、内蔵メモリ８３に中間画像が格納されてから、その中間画像をフィルタ処理部８２が読み出すまでの間に多大な待ち時間が発生するという問題がある。例えば、図３４に示すように、中間画像を９つのブロックｂｌｋに分割して内蔵メモリ８３に格納する場合には、まず、左上のブロックｂｌｋ内の画素データがラスタースキャンの順序に従って内蔵メモリ８３に格納される。続いて、上記左上のブロックｂｌｋの右隣のブロックｂｌｋ内の画素データがラスタースキャンの順序に従って内蔵メモリ８３に格納される。そして、次のブロックｂｌｋ（つまり、右上のブロックｂｌｋ）内の１ライン目の画素データが内蔵メモリ８３に格納される（図中白丸参照）。これにより、中間画像の１ライン目の画素データに対する第１のフィルタ処理が終了するため、その処理終了を示す処理済のライン番号がフィルタ処理部８１からフィルタ処理部８２に出力される。フィルタ処理部８２は、上記処理済のライン番号を受けてはじめて、左上のブロックｂｌｋにおける１ライン目の画素データ（図中三角参照）を内蔵メモリ８３から読み出すことができる。すなわち、図中白丸で示した画素データに対する第１のフィルタ処理が終了するまでは、図中三角で示した画素データに対する第２のフィルタ処理を実施することができない。このように、フィルタ処理部８２における待ち時間が長いという問題がある。
【課題を解決するための手段】
【０００８】
本発明の一観点によれば、画像データに対して第１画像処理を実行し、該第１画像処理後の中間画像を第１方向及び該第１方向と直交する第２方向に分割した第１ブロックの単位で出力し、前記第１画像処理の終了した画素データの前記中間画像における第１方向及び第２方向の座標を含む処理済座標を出力する第１処理部と、前記中間画像を格納するメモリ部と、前記処理済座標に基づいて、前記メモリ部から前記中間画像を読み出し、該中間画像に対して第２画像処理を実行し、前記第２画像処理後の画像データを第１方向及び第２方向に分割した第２ブロックの単位で出力する第２処理部と、前記第１処理部から出力される前記中間画像を前記メモリ部に格納する制御と、前記メモリ部から前記中間画像を読み出して前記第２処理部に出力する制御とを実行する制御部と、を有する。
【発明の効果】
【０００９】
本発明の一観点によれば、待ち時間を短くすることができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】一実施形態の撮像装置を示すブロック図。
【図２】一実施形態の画像処理プロセッサの内部構成例を示すブロック図。
【図３】一実施形態の画像処理回路の内部構成例を示すブロック図。
【図４】入力画像の出力順序を示す説明図。
【図５】中間画像の出力順序を示す説明図。
【図６】中間画像の出力順序を示す説明図。
【図７】第１の具体例における画像処理回路の処理の流れを示すブロック図。
【図８】（ａ），（ｂ）は、第１の具体例におけるバッファ領域を示す説明図、（ｃ）は、第１の具体例における内蔵メモリを示す説明図、（ｄ）は、第１の具体例における外部メモリの一部を示す説明図。
【図９】（ａ）は、拡大率が１／３．９倍のときのバイキュービック法を示す説明図、（ｂ）は、フィルタサイズが５×５のときのフィルタ処理を示す説明図。
【図１０】第１の具体例における中間画像の各画素データのＸＹ座標と、内蔵メモリのアドレスＡＤＤとの対応を示した説明図。
【図１１】第１の具体例における中間画像の各画素データのＸＹ座標と、内蔵メモリのアドレスＡＤＤとの対応を示した説明図。
【図１２】（ａ），（ｂ）は、第１の具体例における画像処理回路の動作を示す説明図。
【図１３】第１の具体例における画像処理回路の動作を示す説明図。
【図１４】（ａ），（ｂ）は、第１の具体例における画像処理回路の動作を示す説明図。
【図１５】第１の具体例における画像処理回路の動作を示す説明図。
【図１６】（ａ），（ｂ）は、第１の具体例における画像処理回路の動作を示す説明図。
【図１７】第１の具体例における画像処理回路の動作を示す説明図。
【図１８】（ａ），（ｂ）は、第２の具体例におけるバッファ領域を示す説明図、（ｃ）は、第２の具体例における内蔵メモリを示す説明図。
【図１９】拡大率が１／４倍のときのバイキュービック法を示す説明図。
【図２０】第２の具体例における中間画像の各画素データのＸＹ座標と、内蔵メモリのアドレスＡＤＤとの対応を示した説明図。
【図２１】第２の具体例における中間画像の各画素データのＸＹ座標と、内蔵メモリのアドレスＡＤＤとの対応を示した説明図。
【図２２】（ａ），（ｂ）は、第２の具体例における画像処理回路の動作を示す説明図。
【図２３】（ａ），（ｂ）は、第２の具体例における画像処理回路の動作を示す説明図。
【図２４】（ａ），（ｂ）は、第２の具体例における画像処理回路の動作を示す説明図。
【図２５】（ａ），（ｂ）は、第２の具体例における画像処理回路の動作を示す説明図。
【図２６】第３の具体例における画像処理回路の処理の流れを示すブロック図。
【図２７】（ａ）は、第３の具体例における中間画像を示す説明図、（ｂ）は、第３の具体例における中間画像の出力順序を示す説明図、（ｃ）は、第３の具体例における中間画像の各画素データのＸＹ座標と、内蔵メモリのアドレスＡＤＤとの対応を示した説明図。
【図２８】第３の具体例におけるバッファ領域を示す説明図。
【図２９】拡大率が１／２倍のときのバイリニア法を示す説明図。
【図３０】（ａ），（ｂ）は、第３の具体例における画像処理回路の動作を示す説明図。
【図３１】一実施形態の画像処理回路の効果を示す説明図。
【図３２】（ａ），（ｂ）は、一実施形態の画像処理回路の効果を示す説明図。
【図３３】従来の画像処理装置を示すブロック図。
【図３４】従来の画像処理装置の問題点を示す説明図。
【発明を実施するための形態】
【００１１】
以下、図１〜図３２に従って一実施形態を説明する。
図１に示す撮像装置１０は、例えば、デジタルスチルカメラである。撮像装置１０は、撮像部１１と、画像処理プロセッサ（ＩＳＰ：Image Signal Processor）１２と、画像処理プロセッサ１２の外部に設けられた外部メモリ１３と、入力部１４と、メモリカード１５と、表示部１６とを有している。
【００１２】
撮像部１１は、撮像素子１１Ａと、アナログ−デジタル変換回路（Ａ／Ｄ変換回路）１１Ｂとを有している。撮像素子１１Ａは、例えば、ＣＣＤ（Charge Coupled Device）イメージセンサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサである。撮像素子１１Ａは、例えば、ベイヤ配列のカラーフィルタを介して入射する光の量に応じた撮像信号（アナログ信号）を出力する。Ａ／Ｄ変換回路１１Ｂは、撮像素子１１Ａから出力されるアナログの撮像信号をデジタルの画像データに変換して画像処理プロセッサ１２に出力する。なお、Ａ／Ｄ変換回路１１Ｂからは、撮像素子１１Ａにより撮像された１画面（１フレーム）の画像データがフレーム毎に出力される。
【００１３】
画像処理プロセッサ１２は、撮像部１１から出力される撮像データ（例えば、ＲＧＢ形式の画像データ（ベイヤデータ））に対して各種画像処理を施す。例えば、画像処理プロセッサ１２は、所定の処理段階で画像データを外部メモリ１３に一時的に格納する。すなわち、外部メモリ１３は作業メモリとして機能する。この外部メモリ１３は、例えば、同期式半導体メモリ（ＳＤＲＡＭ：Synchronous Dynamic Random Access Memory）などの書き換え可能なメモリである。また、画像処理プロセッサ１２は、外部メモリ１３に格納された各種画像処理後の画像データをメモリカード１５に格納したり、表示部１６に表示したりする。
【００１４】
入力部１４は、ユーザにより操作されるシャッタボタンやメニューボタン等の各種スイッチを有している。この各種スイッチは、例えば、写真撮影、撮影条件の設定、表示方式の設定、外部メモリ１３に記憶した画像データに対する処理の設定等を行うために使用される。
【００１５】
メモリカード１５は、例えば、コンパクトフラッシュ（登録商標）やＳＤメモリカード（登録商標）などの携帯型メモリカードである。
表示部１６は、例えば、撮影した画像を確認するモニタとして利用される。表示部１６としては、例えば、液晶表示装置（ＬＣＤ：Liquid Crystal Display）や有機ＥＬ（Electronic Luminescence）を用いることができる。また、表示部１６としては、例えば、電子ビューファインダ（ＥＶＦ：Electronic View Finder）や、外部接続のためのインターフェース（例えば、ＨＤＭＩ（登録商標）：High-Definition Multimedia Interface）を用いることができる。
【００１６】
次に、画像処理プロセッサ１２の内部構成例について説明する。
画像処理プロセッサ１２は、プリプロセス処理部２１と、画像処理回路２２と、中央処理装置（ＣＰＵ：Central Processing Unit）２３と、メモリカードインターフェース（Ｉ／Ｆ）２４と、表示Ｉ／Ｆ２５と、調停回路２６とを有している。これらプリプロセス処理部２１、画像処理回路２２、ＣＰＵ２３、メモリカードＩ／Ｆ２４、表示Ｉ／Ｆ２５及び調停回路２６は、共有バス２７を介して互いに接続されている。なお、共有バス２７は、アドレスバス、コントロールバス及びデータバスを有している。
【００１７】
プリプロセス処理部２１は、撮像部１１から入力される１フレームの画像データに対して、例えば、ホワイトバランス調整、ゲイン調整、欠陥信号の補正等の前処理を施す。プリプロセス処理部２１は、処理後の画像データを外部メモリ１３に格納する。
【００１８】
画像処理回路２２は、外部メモリ１３からプリプロセス処理部２１により前処理された１フレームの画像データ（入力画像）を複数のブロックに分割して読み出し、各種の画像処理を施す。画像処理回路２２は、画像処理後の画像データ（出力画像）を外部メモリ１３に格納する。
【００１９】
ＣＰＵ２３は、画像処理プロセッサ１２全体を統括制御する。ＣＰＵ２３は、例えば、入力部１４の操作により設定される撮像装置１０の動作モード等に応じて、各処理に必要な情報（パラメータ）の各処理部への設定や、データの書き込み／読み出し制御等を行う。また、ＣＰＵ２３は、例えば、撮像装置１０の動作モード等に応じて、画像処理回路２２の画像データに対する演算又は変換などの処理等を変更する。
【００２０】
メモリカードＩ／Ｆ２４は、撮像装置１０に装着される上記メモリカード１５と接続される。メモリカードＩ／Ｆ２４は、メモリカード１５に対するデータの入出力を実行する。例えば、ＣＰＵ２３は、外部メモリ１３から画像データを読み出し、その画像データをメモリカードＩ／Ｆ２４を介してメモリカード１５に格納する。
【００２１】
表示Ｉ／Ｆ２５は、撮像装置１０に設けられた上記表示部１６と接続される。表示Ｉ／Ｆ２５は、例えば、外部メモリ１３に格納された画像データを読み出し、その画像データに基づいて生成した表示データを表示部１６に出力する。
【００２２】
プリプロセス処理部２１、画像処理回路２２、メモリカードＩ／Ｆ２４及び表示Ｉ／Ｆ２５は、外部メモリ１３にデータを書き込む、又は外部メモリ１３からデータを読み出すために共有バス２７の使用権を要求するための要求を調停回路２６に出力する。調停回路２６は、プリプロセス処理部２１、画像処理回路２２、メモリカードＩ／Ｆ２４及び表示Ｉ／Ｆ２５等の各処理部から出力され競合する要求を、例えば、各処理部に対応して設定された優先度に従って調停し、１つの処理部に対して共有バス２７の使用を許可する。共有バス２７の使用が許可された処理部は、外部メモリ１３に対するアクセスのための制御信号を出力する。例えば、読み出し要求の場合、調停回路２６は、制御信号に応じて外部メモリ１３からデータを読み出し、その読み出したデータを要求元の処理部に出力する。また、書き込み要求の場合、調停回路２６は、書き込み要求と、その要求元の処理部から出力されるデータを外部メモリ１３に出力し、外部メモリ１３はそのデータを記憶する。
【００２３】
次に、画像処理回路２２の内部構成例について説明する。
図２に示すように、画像処理回路２２は、画像処理部３０と、制御部４０と、内蔵メモリ５０と、内部バス６０とを有している。
【００２４】
画像処理部３０は、ブレンド処理部３１と、フィルタ処理部３２と、解像度変換処理部３３と、コーデック処理部３４とを有している。各処理部３１〜３４は、内部バス６０を介して互いに接続されるとともに、内部バス６０を介して制御部４０と接続されている。なお、内部バス６０は、アドレスバス、コントロールバス及びデータバスを有している。
【００２５】
図２に従って、各処理部３１〜３４が画像データに対して行う処理の一例について説明する。
ブレンド処理部３１は、例えば、外部メモリ１３から複数の画像データを読み出し、それら複数の画像データを混合（ブレンド）して１つの画像データを生成するブレンド処理を実行する。例えば、ブレンド処理部３１は、異なる露光量で被写体を撮像することにより得られた複数の画像データを合成するハイダイナミックレンジ（ＨＤＲ：High Dynamic Range）合成を実行する。そして、ブレンド処理部３１は、例えば、制御部４０を介してブレンド処理後の画像データを内蔵メモリ５０の所定の領域に格納する。なお、ブレンド処理部３１におけるブレンド処理としては、ＨＤＲ合成に限らず、例えば、ノイズ除去を実行するものであってもよい。
【００２６】
フィルタ処理部３２は、例えば、内蔵メモリ５０に格納されたブレンド処理後の画像データに含まれるノイズを除去するフィルタ処理を実行する。また、フィルタ処理部３２は、例えば、内蔵メモリ５０に格納されたブレンド処理後の画像データに対して画像の輪郭（エッジ）を強調するフィルタ処理を実行する。そして、フィルタ処理部３２は、フィルタ処理後の画像データを内蔵メモリ５０の所定の領域に格納する。
【００２７】
解像度変換処理部３３は、例えば、フィルタ処理部３２によりフィルタ処理された画像データの画像サイズ（解像度）を拡大又は縮小する解像度変換（リサイズ）処理を実行する。解像度変換処理部３３は、例えば、解像度変換処理後の画像データを外部メモリ１３に格納する。
【００２８】
コーデック処理部３４は、外部メモリ１３に格納された解像度変換処理後の画像データを読み出し、その画像データを所定の方式（例えば、ＪＰＥＧ（Joint Photographic Experts Group）方式）により符号化する。コーデック処理部３４は、符号化後の画像データを外部メモリ１３に格納する。
【００２９】
各処理部３１〜３４は、上記共有バス２７を介して調停回路２６及びＣＰＵ２３等と接続されている。各処理部３１〜３４は、外部メモリ１３をアクセスするための要求（書き込み要求又は読み出し要求）を、共有バス２７を通じて調停回路２６に出力する。
【００３０】
なお、画像処理部３０に含まれる処理部３１〜３４及び各処理部３１〜３４の処理内容は一例を示すものであり、画像処理部３０が含む処理部の種類や処理内容は、適宜変更してもよい。
【００３１】
ＣＰＵ２３は、動作モード（撮影モード）等に応じた所定の処理を実行するために、画像処理回路２２に対してパラメータ等の設定情報を出力する。この設定情報は、例えば、画像処理部３０内の各処理部３１〜３４が画像データに対してパイプライン処理を行う順番及び回数や、各処理部３１〜３４で処理された画像データ（中間画像）を格納する内蔵メモリ５０の領域を指定する情報等を含む。また、設定情報は、各処理部３１〜３４における処理単位を指定する情報等を含む。
【００３２】
各処理部３１〜３４は、外部メモリ１３に格納された入力画像ＩＰを、ＣＰＵ２３からの設定情報に基づくサイズに分割したブロックとして入力し、そのブロックに対して画像処理を実行する。各処理部３１〜３４は、画像処理後のブロックを、制御部４０を介して内蔵メモリ５０の所定の領域に格納する。このとき、制御部４０は、各処理部３１〜３４から入力される画像処理後のブロックを、ＣＰＵ２３から入力される設定情報等に基づく内蔵メモリ５０の領域に順次格納する制御を実行する。また、各処理部３１〜３４は、内蔵メモリ５０に格納された中間画像を読み出し、その中間画像に対して画像処理を実行する。このとき、制御部４０は、各処理部３１〜３４から入力される座標情報やＣＰＵ２３から入力される設定情報等に基づく内蔵メモリ５０の領域から中間画像を順次読み出す制御を実行する。
【００３３】
次に、制御部４０の内部構成例と併せて、画像処理回路２２における処理の一例について説明する。
図２及び図３に示すように、制御部４０は、切替回路４１と、調停部４２と、アドレス演算器４３と、内蔵メモリ制御部４４とを有している。
【００３４】
切替回路４１は、ＣＰＵ２３からの設定情報に基づいて、各処理部３１〜３４が画像データに対してパイプライン処理を行う順番や回数を切り替える。例えば、図３に示した例における切替回路４１は、ブレンド処理部３１→フィルタ処理部３２→解像度変換処理部３３という順番でパイプライン処理が実施されるように制御する。なお、図３に示した例では、コーデック処理部３４はパイプライン処理に含まれていない。
【００３５】
パイプライン処理における最も上流の処理部（ここでは、ブレンド処理部３１）は、外部メモリ１３に格納された入力画像ＩＰを、所定のサイズに分割したブロックとして入力し、そのブロックに対して画像処理を実行する。本例のブレンド処理部３１は、入力画像ＩＰ１内のブロックに含まれる画像データと、入力画像ＩＰ２内のブロックに含まれる画像データとを外部メモリ１３から読み出し、それら２つの画像データに対してブレンド処理を実行する。
【００３６】
ここで、外部メモリ１３に格納された入力画像ＩＰ（入力画像ＩＰ１，ＩＰ２）について説明する。
図４に示す入力画像ＩＰは、例えば、ブレンド処理が施される一部の部分画像ＩＰａが複数のブロックＢＬＫに分割されて処理される。そして、ブレンド処理後の画像データ（部分画像ＩＰａ）が、ブレンド処理部３１から出力される。すなわち、ブレンド処理の施された部分画像ＩＰａが図５に示す中間画像ＭＰ１としてブレンド処理部３１から出力される。このため、中間画像ＭＰ１は、上記ブロックＢＬＫと同じ大きさのブロックＢＫに分割され、そのブロックＢＫの単位でブレンド処理部３１から順次出力される。すなわち、ブレンド処理部３１からは、中間画像ＭＰ１が、その中間画像ＭＰ１を水平方向（行方向、図中左右方向）及び水平方向と直交する垂直方向（列方向、図中上下方向）に分割したブロックＢＫの単位で順次出力される。
【００３７】
ここで、図５に示した中間画像ＭＰ１は、複数の画素（ここでは、２４画素×２４画素）が水平方向及び垂直方向に２次元状に配列された画像データである。そして、中間画像ＭＰ１では、所定のサイズのブロックＢＫが水平方向に６個配列され、ブロックＢＫが垂直方向に６個配列されている。なお、図５では、水平方向に並ぶブロックＢＫのブロック位置を水平位置Ｈ（Ｈ＝０〜５）、垂直方向に並ぶブロックＢＫのブロック位置を垂直位置Ｖ（Ｖ＝０〜５）としたときに、各ブロックＢＫを「ＢＫＶＨ」として示している。なお、以下の説明では、ブロックＢＫＶＨ（つまり、ブロックＢＫ００〜ＢＫ０５，ＢＫ１０〜ＢＫ１５，ＢＫ２０〜ＢＫ２５，ＢＫ３０〜ＢＫ３５，ＢＫ４０〜ＢＫ４５，ＢＫ５０〜ＢＫ５５）を総称する場合には、ブロックＢＫと称する。また、以下の説明では、中間画像ＭＰ１における水平方向の座標をＸ座標、中間画像ＭＰ１における垂直方向の座標をＹ座標としたときに、中間画像ＭＰ１内の各画素データを、座標（Ｘ座標，Ｙ座標）の画素データと称する。
【００３８】
複数のブロックＢＫでは、水平方向の画素数（サイズ）を異なるサイズに設定することが可能である。例えば、中間画像ＭＰ１の水平方向の最初のブロックＢＫ、つまり水平位置Ｈ＝０に配列されたブロックＢＫ（ブロックＢＫ００，ＢＫ１０，ＢＫ２０，ＢＫ３０，ＢＫ４０，ＢＫ５０）の水平サイズＨＳ０は、他のブロックＢＫの水平サイズＨＳ１よりも大きい値に設定されている。図５の例では、水平サイズＨＳ０が６画素に設定され、水平サイズＨＳ１が４画素に設定されている。なお、中間画像ＭＰ１の水平方向の最後のブロックＢＫ、つまり水平位置Ｈ＝５に配列されたブロックＢＫ（例えば、ブロックＢＫ０５）の水平サイズＨＳ２は、同じ水平ライン（例えば、垂直位置Ｖ＝０）に配列された他のブロックＢＫ（例えば、ブロックＢＫ００〜ＢＫ０４）に含まれていない余りの画素数（ここでは、２画素）となる。
【００３９】
また、複数のブロックＢＫでは、垂直方向の画素数（サイズ）を異なるサイズに設定することが可能である。例えば、中間画像ＭＰ１の垂直方向の最初のブロックＢＫ、つまり垂直位置Ｖ＝０に配列されたブロックＢＫ（つまり、ブロックＢＫ００〜ＢＫ０５）の垂直サイズＶＳ０は、他のブロックＢＫの垂直サイズＶＳ１よりも大きい値に設定されている。なお、中間画像ＭＰ１の垂直方向の最後のブロックＢＫ、つまり垂直位置Ｖ＝５に配列されたブロックＢＫ（例えば、ブロックＢＫ５０）の垂直サイズＶＳ２は、同じ垂直ライン（例えば、水平位置Ｈ＝０）に配列された他のブロックＢＫ（例えば、ブロックＢＫ００，ＢＫ１０，ＢＫ２０，ＢＫ３０，ＢＫ４０）に含まれていない余りの画素数（ここでは、２画素）となる。
【００４０】
このように、各ブロックＢＫは、中間画像ＭＰ１全体の水平方向の画素数（ここでは、２４画素）よりも少ない画素が水平方向に配列され、中間画像ＭＰ１全体の垂直方向の画素数（ここでは、２４画素）よりも少ない画素が垂直方向に配列された短冊状（矩形状）の領域となっている。
【００４１】
複数のブロックＢＫは、図中に矢印で示すように、水平方向の図中左から右、及び垂直方向の図中上から下に向かってラスタースキャンの順序に従って順次出力される。具体的には、複数のブロックＢＫは、ブロックＢＫ００→ＢＫ０１→ＢＫ０２→ＢＫ０３→ＢＫ０４→ＢＫ０５という順番で順次出力され、続いて、ブロックＢＫ１０→ＢＫ１１→ＢＫ１２→ＢＫ１３→ＢＫ１４→ＢＫ１５という順番で順次出力される。このように、複数のブロックＢＫに対する処理順序は、最初に進む処理方向が水平方向となる処理順序である。さらに、各ブロックＢＫに含まれる複数の画素は、上述したラスタースキャンの順序と同様に左上から右下に向かって順次処理される。具体的には、ブロックＢＫ００では、座標（０，０）から座標（５，０）まで水平方向に沿って座標を１画素ずつシフトさせて画素データが順次出力される。続いて、垂直方向に沿って座標を１画素分シフトさせ、座標（０，１）から座標（５，１）の画素データが順次出力される。以後も同様に、座標（０，２）から座標（５，２）の画素データ、座標（０，３）から座標（５，３）の画素データ、座標（０，４）から座標（５，４）の画素データ、座標（０，５）から座標（５，５）の画素データが順次出力される。
【００４２】
図３に示すように、処理部３１〜３４は、それぞれの処理タイミングに応じて内蔵メモリ５０をアクセスするための要求（書き込み要求又は読み出し要求）を含む各種信号を調停部４２に出力する。調停部４２は、処理部３１〜３４の要求を調停し、調停結果に応じて１つの処理部に対してアクセス許可を与える。
【００４３】
調停部４２は、ライト調停部４２Ａと、リード調停部４２Ｂとを有している。ライト調停部４２Ａは、処理部３１〜３４から出力され競合する書き込み要求を、例えば、各処理部３１〜３４に対応して設定された優先度に従って調停し、１つの処理部に対して内蔵メモリ５０へのライトアクセスを許可する。ライト調停部４２Ａによりライトアクセスが許可された処理部は、内蔵メモリ５０に対するライトアクセスのための制御信号（各種コマンドやアドレス等）及び処理済の画像データ（例えば、中間画像）をライト調停部４２Ａに出力する。ライト調停部４２Ａは、調停結果に応じた書き込み要求と、上記ライトアクセスが許可された処理部からの制御信号及び中間画像とを、アドレス演算器４３を介して内蔵メモリ制御部４４に出力する。
【００４４】
また、リード調停部４２Ｂは、処理部３１〜３４から出力され競合する読み出し要求を、例えば、各処理部３１〜３４に対応して設定された優先度に従って調停し、１つの処理部に対して内蔵メモリ５０へのリードアクセスを許可する。リードアクセスが許可された処理部は、内蔵メモリ５０に対するリードアクセスのための制御信号（各種コマンドやアドレス等）をリード調停部４２Ｂに出力する。リード調停部４２Ｂは、調停結果に応じた１つの読み出し要求と、上記リードアクセスが許可された処理部からの制御信号を内蔵メモリ制御部４４に出力する。
【００４５】
図３に示した例において、ブレンド処理部３１がライト調停部４２Ａからライトアクセスの許可を受けると、ブレンド処理後の中間画像ＭＰ１（図５参照）及び制御信号がブレンド処理部３１からライト調停部４２Ａに出力される。すると、ライト調停部４２Ａから、ブレンド処理部３１からの制御信号及び中間画像ＭＰ１が、アドレス演算器４３及び内蔵メモリ制御部４４を介して内蔵メモリ５０に出力される。そして、中間画像ＭＰ１が内蔵メモリ５０の所定の領域（ここでは、バッファ領域５１）に格納される。
【００４６】
なお、バッファ領域５１から読み出された中間画像ＭＰ１に対してフィルタ処理が施されると、そのフィルタ処理後の画像データ（中間画像ＭＰ２）が内蔵メモリ５０の所定の領域（ここでは、バッファ領域５２）に格納される。すなわち、本例の内蔵メモリ５０は、バッファ領域５１とバッファ領域５２とを有している。
【００４７】
アドレス演算器４３は、ＣＰＵ２３からの設定情報に基づいて、調停部４２から入力される処理対象の画素データの座標位置から、当該処理対象の画素データを格納する内蔵メモリ５０のアドレスＡＤＤを算出する。詳述すると、上記設定情報には、バッファ領域５１及びバッファ領域５２の水平サイズＨ１と、バッファ領域５１及びバッファ領域５２の垂直サイズＶ１とが含まれる。さらに、上記設定情報には、バッファ領域５１及びバッファ領域５２の開始アドレスがアドレスオフセットｏｆｓとして含まれている。そして、アドレス演算器４３は、上記設定情報に基づいて、処理対象の画素データの中間画像ＭＰ１，ＭＰ２におけるＸ座標及びＹ座標から、以下の式を用いて内蔵メモリ５０のアドレスＡＤＤに算出する。
【００４８】
ＡＤＤ＝（Ｈ１×ｍ＋ｎ）＋ｏｆｓ      …（１）
上記式１における剰余ｍは、処理対象の画素データのＹ座標を垂直サイズＶ１で除算したときの剰余である。また、式１における剰余ｎは、処理対象の画素データのＸ座標を水平サイズＨ１で除算したときの剰余である。そして、アドレス演算器４３は、内蔵メモリ５０のアドレスＡＤＤと、書き込み要求又は読み出し要求とを内蔵メモリ制御部４４に出力する。
【００４９】
このように、ＣＰＵ２３からの設定情報に基づいてアドレスＡＤＤが算出されることにより、内蔵メモリ５０の所定の領域がバッファ領域５１及びバッファ領域５２に割り当てられる。換言すると、ＣＰＵ２３は、撮像装置１０の動作モード等（例えば、画像処理回路２２で入力画像に対して実施される処理内容）に応じて、バッファ領域５１及びバッファ領域５２のサイズを設定する。
【００５０】
内蔵メモリ制御部４４は、書き込み要求の場合、要求元の処理部から出力された中間画像ＭＰ１，ＭＰ２を、アドレス演算器４３で算出されたアドレスＡＤＤにより指定される内蔵メモリ５０の領域に格納する。また、内蔵メモリ制御部４４は、読み出し要求の場合、アドレス演算器４３で算出されたアドレスＡＤＤにより指定される内蔵メモリ５０の領域から中間画像ＭＰ１，ＭＰ２を読み出し、その読み出した中間画像ＭＰ１，ＭＰ２を要求元の処理部に出力する。
【００５１】
例えば、図３に示した例において、ブレンド処理部３１がライトアクセスの許可を受けると、内蔵メモリ制御部４４は、ブレンド処理部３１から出力されるブレンド処理後の中間画像ＭＰ１を内蔵メモリ５０のバッファ領域５１に格納する。このとき、ブレンド処理部３１は、ブレンド処理が終了した画素データの中間画像ＭＰ１におけるＸＹ座標（Ｘ座標及びＹ座標）を処理済座標ＦＣ１として下流のフィルタ処理部３２に出力する。
【００５２】
フィルタ処理部３２は、上流のブレンド処理部３１から入力される処理済座標ＦＣ１が、ＣＰＵ２３からの設定情報により設定される所定の座標まで進むと、内蔵メモリ５０のバッファ領域５１から中間画像ＭＰ１を読み出すための読み出し要求をリード調停部４２Ｂに出力する。フィルタ処理部３２がリード調停部４２Ｂからリードアクセスの許可を受けると、フィルタ処理部３２から制御信号が出力され、その制御信号がリード調停部４２Ｂを介してアドレス演算器４３に出力される。すると、アドレス演算器４３では、処理対象の画素データの中間画像ＭＰ１におけるＸＹ座標から、その画素データが格納されている内蔵メモリ５０のアドレスＡＤＤが上記式１から算出される。そして、内蔵メモリ制御部４４は、アドレスＡＤＤで指定される内蔵メモリ５０の領域から中間画像ＭＰ１を読み出し、読み出した中間画像ＭＰ１をフィルタ処理部３２に出力する。
【００５３】
フィルタ処理部３２は、バッファ領域５１から読み出した中間画像ＭＰ１に対して所定のフィルタ処理を実行する。このとき、フィルタ処理部３２は、中間画像ＭＰ１を、所定のサイズに分割したブロックとして入力し、そのブロックに対して画像処理を実行する。そして、フィルタ処理部３２は、ライト調停部４２Ａからライトアクセスの許可を受けると、フィルタ処理後の画像データを図６に示す中間画像ＭＰ２としてライト調停部４２Ａに出力する。このとき、フィルタ処理部３２は、中間画像ＭＰ２を、その中間画像ＭＰ２を水平方向及び垂直方向に分割したブロックＢＬの単位で順次出力する。その後、アドレス演算器４３及び内蔵メモリ制御部４４の制御によって中間画像ＭＰ２が内蔵メモリ５０のバッファ領域５２に格納される。このとき、フィルタ処理部３２は、フィルタ処理が終了した画素データの中間画像ＭＰ２におけるＸＹ座標を処理済座標ＦＣ２として下流の解像度変換処理部３３に出力する。また、フィルタ処理部３２は、フィルタ処理の実行に際して不要となった中間画像ＭＰ１の画素データのＸＹ座標を不要座標ＮＣ１として上流のブレンド処理部３１に出力する。なお、ブレンド処理部３１では、フィルタ処理部３２からの不要座標ＮＣ１に基づいて、その不要座標ＮＣ１の画素データが格納されたバッファ領域５１の領域に対する上書きが許可される。
【００５４】
ここで、フィルタ処理部３２から出力される中間画像ＭＰ２について説明する。
図６に示した中間画像ＭＰ２は、複数の画素（ここでは、２４画素×２４画素）が水平方向及び垂直方向に２次元状に配列された画像データである。すなわち、中間画像ＭＰ２は、中間画像ＭＰ１と同じサイズの画像データである。そして、中間画像ＭＰ２では、所定のサイズのブロックＢＬが水平方向に６個配列され、ブロックＢＬが垂直方向に６個配列されている。なお、図６では、水平方向に並ぶブロックＢＬのブロック位置を水平位置Ｈ（Ｈ＝０〜５）、垂直方向に並ぶブロックＢＬのブロック位置を垂直位置Ｖ（Ｖ＝０〜５）としたときに、各ブロックＢＬを「ＢＬＶＨ」として示している。なお、以下の説明では、ブロックＢＬＶＨ（つまり、ブロックＢＬ００〜ＢＬ０５，ＢＬ１０〜ＢＬ１５，ＢＬ２０〜ＢＬ２５，ＢＬ３０〜ＢＬ３５，ＢＬ４０〜ＢＬ４５，ＢＬ５０〜ＢＬ５５）を総称する場合には、ブロックＢＬと称する。また、以下の説明では、中間画像ＭＰ２における水平方向の座標をＸ座標、中間画像ＭＰ２における垂直方向の座標をＹ座標としたときに、中間画像ＭＰ２内の各画素データを、座標（Ｘ座標，Ｙ座標）の画素データと称する。
【００５５】
複数のブロックＢＬでは、水平方向の画素数（サイズ）を異なるサイズに設定することが可能であり、垂直方向の画素数（サイズ）を異なるサイズに設定することが可能である。但し、図６に示した例では、全てのブロックＢＬが同じサイズに設定されている。すなわち、中間画像ＭＰ２の水平方向の最初のブロックＢＬ（つまり、ブロックＢＬ００，ＢＬ１０，ＢＬ２０，ＢＬ３０，ＢＬ４０，ＢＬ５０）の水平サイズＨＳ１０と、他のブロックＢＬの水平サイズＨＳ１１とが全て４画素に設定されている。なお、本例では、中間画像ＭＰ２の水平方向の最後のブロックＢＬ（つまり、ブロックＢＬ０５，ＢＬ１５，ＢＬ２５，ＢＬ３５，ＢＬ４５，ＢＬ５５）の水平サイズＨＳ１２も４画素になっている。また、中間画像ＭＰ２の垂直方向の最初のブロックＢＬ（つまり、ブロックＢＬ００〜ＢＬ０５）の垂直サイズＶＳ１０と、他のブロックＢＬの垂直サイズＶＳ１１とが全て４画素に設定されている。なお、本例では、中間画像ＭＰ２の垂直方向の最後のブロックＢＬ（つまり、ブロックＢＬ５０〜ＢＬ５５）の垂直サイズＶＳ１２も４画素になっている。
【００５６】
このように、各ブロックＢＬは、中間画像ＭＰ２全体の水平方向の画素数（ここでは、２４画素）よりも少ない画素が水平方向に配列され、中間画像ＭＰ２全体の垂直方向の画素数（ここでは、２４画素）よりも少ない画素が垂直方向に配列された短冊状（矩形状）の領域となっている。
【００５７】
複数のブロックＢＬは、図中に矢印で示すように、水平方向の図中左から右、及び垂直方向の図中上から下に向かってラスタースキャンの順序に従って順次出力される。具体的には、複数のブロックＢＬは、ブロックＢＬ００→ＢＬ０１→ＢＬ０２→ＢＬ０３→ＢＬ０４→ＢＬ０５という順番で順次出力され、続いて、ブロックＢＬ１０→ＢＬ１１→ＢＬ１２→ＢＬ１３→ＢＬ１４→ＢＬ１５という順番で順次出力される。さらに、各ブロックＢＬに含まれる複数の画素は、上述したラスタースキャンの順序と同様に左上から右下に向かって順次処理される。具体的には、ブロックＢＬ００では、座標（０，０）から座標（３，０）まで水平方向に沿って座標を１画素ずつシフトさせて画素データが順次出力される。続いて、垂直方向に沿って座標を１画素分シフトさせ、座標（０，１）から座標（３，１）の画素データが順次出力される。以後も同様に、座標（０，２）から座標（３，２）の画素データ、座標（０，３）から座標（３，３）の画素データが順次出力される。
【００５８】
図３に示すように、解像度変換処理部３３は、上流のフィルタ処理部３２から入力される処理済座標ＦＣ２が、ＣＰＵ２３からの設定情報により設定される所定の座標まで進むと、内蔵メモリ５０のバッファ領域５２から中間画像ＭＰ２を読み出すための読み出し要求をリード調停部４２Ｂに出力する。解像度変換処理部３３がリード調停部４２Ｂからリードアクセスの許可を受けると、解像度変換処理部３３から制御信号が出力され、その制御信号がリード調停部４２Ｂを介してアドレス演算器４３に出力される。すると、アドレス演算器４３では、処理対象の画素データの中間画像ＭＰ２におけるＸＹ座標から、その画素データが格納されている内蔵メモリ５０のアドレスＡＤＤが算出される。そして、内蔵メモリ制御部４４は、アドレスＡＤＤで指定される内蔵メモリ５０の領域から中間画像ＭＰ２を読み出し、読み出した中間画像ＭＰ２を解像度変換処理部３３に出力する。
【００５９】
解像度変換処理部３３は、バッファ領域５２から読み出した中間画像ＭＰ２に対して解像度変換処理（拡大処理又は縮小処理）を実行する。このとき、解像度変換処理部３３は、中間画像ＭＰ２を、所定のサイズに分割したブロックとして入力し、そのブロックに対して画像処理を実行する。例えば、解像度変換処理部３３は、バッファ領域５２に格納したときと同様の順序で、中間画像ＭＰ２をバッファ領域５２から読み出す。具体的には、解像度変換処理部３３は、図６に示した中間画像ＭＰ２を、ブロックＢＬ００→ＢＬ０１→ＢＬ０２→ＢＬ０３→ＢＬ０４→ＢＬ０５という順番で順次入力し、続いて、ブロックＢＬ１０→ＢＬ１１→ＢＬ１２→ＢＬ１３→ＢＬ１４→ＢＬ１５という順番で順次入力する。解像度変換処理部３３は、入力したブロックＢＬ毎に所定の解像度変換処理を実行する。
【００６０】
そして、解像度変換処理部３３は、調停部４２（図２参照）から外部メモリ１３に対するライトアクセスの許可を受けると、解像度変換処理後の画像データを出力画像ＯＰとして外部メモリ１３に格納する。このとき、解像度変換処理部３３は、解像度変換処理の実行に際して不要となった中間画像ＭＰ２の画素データのＸＹ座標を不要座標ＮＣ２として上流のフィルタ処理部３２に出力する。なお、フィルタ処理部３２では、解像度変換処理部３３からの不要座標ＮＣ２に基づいて、その不要座標ＮＣ２の画素データが格納されたバッファ領域５２に対する上書きが許可される。
【００６１】
なお、本実施形態において、画像処理プロセッサ１２は画像処理装置の一例、外部メモリ１３は外部メモリの一例、ＣＰＵ２３は制御回路の一例、制御部４０は制御部の一例、内蔵メモリ５０はメモリ部の一例、水平方向は第１方向の一例、垂直方向は第２方向の一例である。
【００６２】
次に、図５〜図３０に従って、画像処理回路２２の動作について説明する。ここでは、３つの具体例を挙げつつ、画像処理回路２２の動作について説明する。
（第１の具体例）
まず、図５〜図１７に従って、第１の具体例における画像処理回路２２の動作について説明する。
【００６３】
図７に示した第１の具体例の画像処理回路２２では、図３に示した例と同様に、ブレンド処理部３１→フィルタ処理部３２→解像度変換処理部３３という順番でパイプライン処理が実行される。このとき、ブレンド処理部３１から出力されるブレンド処理後の中間画像ＭＰ１、つまり図５に示した中間画像ＭＰ１は、図中矢印で示した順番で内蔵メモリ５０のバッファ領域５１に格納される。また、フィルタ処理部３２では、バッファ領域５１から読み出された中間画像ＭＰ１に対して、フィルタサイズが５画素×５画素に設定されたフィルタ処理が実行される。このフィルタ処理部３２から出力されるフィルタ処理後の中間画像ＭＰ２、つまり図６に示した中間画像ＭＰ２は、図中矢印で示した順番で内蔵メモリ５０のバッファ領域５２に格納される。そして、解像度変換処理部３３では、バッファ領域５２から読み出された中間画像ＭＰ２に対して、バイキュービック法を用いて、拡大率が１／３．９倍に設定された解像度変換処理（縮小処理）が実行される。この解像度変換処理部３３から出力される解像度変換処理後の出力画像ＯＰは、外部メモリ１３の所定の領域に格納される。
【００６４】
図８（ｃ）に示すように、本例の内蔵メモリ５０では、ブレンド処理後の中間画像ＭＰ１が格納されるバッファ領域５１と、フィルタ処理後の中間画像ＭＰ２が格納されるバッファ領域５２とが連続した領域に割り当てられている。
【００６５】
図８（ａ）に示すように、バッファ領域５１は、１９２画素分のデータを格納可能なメモリ領域である。具体的には、内蔵メモリ５０のアドレス「０」からアドレス「１９１」までの領域がバッファ領域５１となる。このとき、バッファ領域５１の水平サイズＨ１は、中間画像ＭＰ１全体の水平方向の画素数（ここでは、２４画素）が格納可能なサイズに設定されている。また、バッファ領域５１の垂直サイズＶ１は、垂直方向の８画素のデータが格納可能なサイズに設定されている。すなわち、本例のバッファ領域５１は、中間画像ＭＰ１の水平８ライン分の画素データを格納可能なサイズに設定されている。
【００６６】
バッファ領域５１は、短冊状の複数個の短冊バッファＡ０〜Ａ５を有している。各短冊バッファＡ０〜Ａ５の垂直方向のサイズは、バッファ領域５１の垂直サイズＶ１と同一のサイズに設定されている。各短冊バッファＡ０〜Ａ５の水平方向のサイズは、対応するブロックＢＫ（図５参照）の水平方向のサイズと同一のサイズに設定されている。具体的には、バッファ領域５１の先頭（最も左側）に配置された短冊バッファＡ０の水平方向のサイズは、中間画像ＭＰ１の水平位置Ｈ＝０に配列されたブロックＢＫ（例えば、ブロックＢＫ００）の水平方向のサイズ（ここでは、６画素）を格納可能なサイズに設定されている。同様に、短冊バッファＡ１〜Ａ４の水平方向のサイズは、対応するブロックＢＫ０１〜ＢＫ０４の水平方向のサイズ（ここでは、４画素）を格納可能なサイズに設定されている。バッファ領域５１の最後（最も右側）に配置された短冊バッファＡ１の水平方向のサイズは、中間画像ＭＰ１の水平位置Ｈ＝５に配列されたブロックＢＫ（例えば、ブロックＢＫ０５）の水平方向のサイズ（ここでは、２画素）を格納可能なサイズに設定されている。
【００６７】
さらに、上記アドレス演算器４３（図３参照）で式１を用いてアドレスＡＤＤが算出し、そのアドレスＡＤＤで指定される内蔵メモリ５０の領域に中間画像ＭＰ１を格納することにより、各短冊バッファＡ０〜Ａ５には、対応するブロックＢＫの画素データが循環的に格納される。具体的には、短冊バッファＡ０には、中間画像ＭＰ１における水平位置Ｈ＝０であるブロックＢＫ（つまり、ブロックＢＫ００，ＢＫ１０，ＢＫ２０，ＢＫ３０，ＢＫ４０，ＢＫ５０）の画素データが循環的に格納される。同様に、短冊バッファＡ１には水平位置Ｈ＝１であるブロックＢＫの画素データが循環的に格納され、短冊バッファＡ２には水平位置Ｈ＝２であるブロックＢＫの画素データが循環的に格納され、短冊バッファＡ３には水平位置Ｈ＝３であるブロックＢＫの画素データが循環的に格納される。また、短冊バッファＡ４には水平位置Ｈ＝４であるブロックＢＫの画素データが循環的に格納され、短冊バッファＡ５には水平位置Ｈ＝５であるブロックＢＫの画素データが循環的に格納される。
【００６８】
図８（ｂ）に示すように、本例のバッファ領域５２は、１２０画素分のデータを格納可能なメモリ領域である。具体的には、内蔵メモリ５０のアドレス「１９２」からアドレス「３１１」までの領域がバッファ領域５２となる。すなわち、バッファ領域５２は、バッファ領域５１に続くアドレス「１９２」から１２０画素分のデータが格納可能な領域に設定されている。このとき、バッファ領域５２の水平サイズＨ１は、中間画像ＭＰ２全体の水平方向の画素数（ここでは、２４画素）が格納可能なサイズに設定されている。また、バッファ領域５２の垂直サイズＶ１は、垂直方向の５画素分の画素データが格納可能なサイズに設定されている。すなわち、本例のバッファ領域５２は、中間画像ＭＰ２の水平５ライン分の画素データを格納可能なサイズに設定されている。
【００６９】
バッファ領域５２は、短冊状の複数個の短冊バッファＢ０〜Ｂ５を有している。各短冊バッファＢ０〜Ｂ５の垂直方向のサイズは、バッファ領域５２の垂直サイズＶ１と同一のサイズに設定されている。各短冊バッファＢ０〜Ｂ５の水平方向のサイズは、対応するブロックＢＬ００〜ＢＬ０５（図６参照）の水平方向のサイズと同一のサイズに設定されている。ここで、本例では、ブロックＢＬ００〜ＢＬ０５の水平方向のサイズが全て４画素であるため、短冊バッファＢ０〜Ｂ５の水平方向のサイズが全て４画素を格納可能なサイズに設定されている。
【００７０】
さらに、上記アドレス演算器４３（図３参照）で式１を用いてアドレスＡＤＤが算出され、そのアドレスＡＤＤで指定される内蔵メモリ５０の領域に中間画像ＭＰ２が格納されることにより、各短冊バッファＢ０〜Ｂ５には、対応するブロックＢＬの画素データが循環的に格納される。具体的には、短冊バッファＢ０には、中間画像ＭＰ２における水平位置Ｈ＝０であるブロックＢＬ（つまり、ブロックＢＬ００，ＢＬ１０，ＢＬ２０，ＢＬ３０，ＢＬ４０，ＢＬ５０）の画素データが循環的に格納される。同様に、短冊バッファＢ１には水平位置Ｈ＝１であるブロックＢＬの画素データが循環的に格納され、短冊バッファＢ２には水平位置Ｈ＝２であるブロックＢＬの画素データが循環的に格納され、短冊バッファＢ３には水平位置Ｈ＝３であるブロックＢＬの画素データが循環的に格納される。また、短冊バッファＢ４には水平位置Ｈ＝４であるブロックＢＬの画素データが循環的に格納され、短冊バッファＢ５には水平位置Ｈ＝５であるブロックＢＬの画素データが循環的に格納される。
【００７１】
図８（ｄ）に示すように、解像度変換処理部３３から出力される出力画像ＯＰが格納される外部メモリ１３の領域は、例えば、７画素×７画素のデータを格納可能なメモリ領域が確保されている。
【００７２】
次に、バッファ領域５１及びバッファ領域５２を上述したサイズに設定した理由、及び中間画像ＭＰ１，ＭＰ２のブロックＢＫ，ＢＬを上述したサイズに設定した理由について説明する。
【００７３】
まず、図９（ａ）に示すように、本例の解像度変換処理部３３で実行されるバイキュービック法は、画素値を求めるべき着目点近傍の１６画素（４画素×４画素）の入力画素値（図中の破線枠参照）に基づいて３次の多項式を計算し、その着目点の画素値（つまり、解像度変換後の画素値）を求める方法である。このため、解像度変換処理部３３で解像度変換処理を実行するためには、垂直方向に並ぶ４画素分の画素値と水平方向に並ぶ４画素分の画素値が必要となる。すなわち、解像度変換処理部３３で解像度変換処理を実行するためには、バッファ領域５２から中間画像ＭＰ２の垂直４画素×水平４画素分の画素データを読み出す必要がある。このため、中間画像ＭＰ２のブロックＢＬのサイズは、解像度変換処理部３３における１回の解像度変換処理に必要な数の画素値を含むサイズ（ここでは、４画素×４画素）に設定されている。換言すると、出力画像ＯＰの１つのブロック（ここでは、１画素分）の画素データが解像度変換処理部３３から出力可能なように、ブロックＢＬのサイズが設定されている。
【００７４】
さらに、当該解像度変換処理における拡大率が１／３．９倍のように１／４倍よりも大きくなると、例えば、座標（０，０）の出力画素値を算出する際に使用した入力画素値の一部が、座標（０，１）の出力画素値を算出する際に重複して使用される場合がある。具体的には、入力画像の座標（０，０）〜（３，３）の１６画素の画素値に基づいて出力画像の座標（０，０）の画素値が算出され、入力画像の座標（０，３）〜（３，６）の１６画素の画素値に基づいて出力画像の座標（０，１）の画素値が算出される。すなわち、図示の例では、入力画像の座標（０，３）〜（３，３）の４画素の画素値、つまり演算対象の入力画素値のうち水平１ライン分の画素値が、出力画像の座標（０，０）の画素値と座標（０，１）の画素値を算出する際に重複して使用される。以下の説明では、このように垂直方向に隣接して並ぶ出力画像の画素値を算出する際に重複して使用される水平ライン（糊代部分）を「垂直重複ライン」と称する。なお、拡大率が１／３．９倍のバイキュービック法では、垂直重複ラインが１ラインとなる。
【００７５】
以上説明したように、解像度変換処理部３３における処理で垂直重複ラインが必要である場合には、中間画像ＭＰ２が格納されるバッファ領域５２の水平サイズＨ１は、中間画像ＭＰ２全体の水平方向のサイズと等しくなるように設定される。これは、解像度変換処理部３３において、図６に示すように、中間画像ＭＰ２をブロックＢＬ００→ＢＬ０１→…→ＢＬ０５→ＢＬ１０という順番で処理する際に、ブロックＢＬ１０に対して処理するときにブロックＢＬ００の一部（つまり、垂直重複ライン）のデータが必要になるためである。すなわち、ブロックＢＬ１０に対する処理を実行するまで、ブロックＢＬ００の一部のデータをバッファ領域５２に格納しておく必要があるため、バッファ領域５２の水平サイズＨ１が中間画像ＭＰ２全体の水平方向のサイズと等しいサイズに設定されている。また、バッファ領域５２の垂直サイズＶ１は、ブロックＢＬの垂直サイズＶＳ１１（ここでは、４ライン）に、垂直重複ライン（ここでは、１ライン）を加えたライン数（ここでは、５ライン）を格納可能なサイズに設定される。これは、解像度変換処理部３３において、中間画像ＭＰ２をブロックＢＬ００→ＢＬ０１→…→ＢＬ０５→ＢＬ１０という順番で処理する際に、ブロックＢＬ１０に対して処理するときにブロックＢＬ００の一部（つまり、垂直重複ライン）のデータがブロックＢＬ１０の画素データによって上書きされないようにするためである。
【００７６】
また、図９（ｂ）に示すように、本例のフィルタ処理部３２で実行されるフィルタ処理は、画素値を求めるべき着目点の入力画素（黒丸参照）と、その周辺の周辺画素である２４画素の入力画素値（図中の破線枠参照）とに基づいて、上記着目点の画素値（つまり、フィルタ処理後の画素値）を求める方法である。このため、フィルタ処理部３２でフィルタ処理を実行するためには、垂直方向に並ぶ５画素分の画素値と水平方向に並ぶ５画素分の画素値が必要となる。すなわち、フィルタ処理部３２でフィルタ処理を実行するためには、バッファ領域５１から中間画像ＭＰ１の垂直５画素×水平５画素分の画素データを読み出す必要がある。さらに、図９（ｂ）に示すように、フィルタサイズが５×５のフィルタ処理では、垂直重複ラインが２ラインとなる。
【００７７】
以上説明したフィルタ処理部３２の上流のブレンド処理部３１から出力される中間画像ＭＰ１のブロックＢＫのサイズは、フィルタ処理部３２からブロックＢＬ毎に中間画像ＭＰ２を出力可能なサイズに設定される。具体的には、図５に示した中間画像ＭＰ１のブロックＢＫの垂直サイズＶＳ１及び水平サイズＨＳ１は、ブレンド処理部３１の下流のフィルタ処理部３２から出力されるブロックＢＬの垂直サイズＶＳ１１及び水平サイズＨＳ１１とそれぞれ同じサイズに設定される。また、ブロックＢＫの垂直サイズＶＳ０及び水平サイズＨＳ０は、垂直サイズＶＳ１及び水平サイズＨＳ１（つまり、ブロックＢＬの垂直サイズＶＳ１１及び水平サイズＨＳ１１）に、下流のフィルタ処理における垂直重複ライン（ここでは、２ライン）を加えたサイズに設定される。
【００７８】
そして、上述のようにフィルタ処理部３２における処理で垂直重複ラインが必要である場合には、中間画像ＭＰ１が格納されるバッファ領域５１の水平サイズＨ１は、中間画像ＭＰ１全体の水平方向のサイズと等しくなるように設定される。また、バッファ領域５１の垂直サイズＶ１は、ブレンド処理部３１から出力されるブロックＢＫの垂直サイズＶＳ１（ここでは、４ライン）に、フィルタ処理における垂直重複ライン（ここでは、２ライン）を加えたライン数（ここでは、６ライン）以上のライン数を格納可能なサイズに設定される。本例のバッファ領域５１の垂直サイズＶ１は、上述した６ラインに、更にマージンとして２ラインを加えたライン数、つまり８ラインを格納可能なサイズに設定されている。
【００７９】
次に、中間画像ＭＰ１，ＭＰ２の内蔵メモリ５０への格納方法について詳述する。
図７に示したブレンド処理部３１は、外部メモリ１３から２つの入力画像ＩＰ、つまり入力画像ＩＰ１及び入力画像ＩＰ２を読み出し、それら２つの入力画像ＩＰ１，ＩＰ２を混合して中間画像ＭＰ１を生成するブレンド処理を実行する。なお、ブレンド処理は、２つの入力画像ＩＰ１，ＩＰ２の対応する画素同士を入力画素としてブレンド演算するため、注目画素の周辺の周辺画素はブレンド演算に不要である。
【００８０】
詳述すると、図７に示したパイプライン処理が開始されると、ブレンド処理部３１は、まず、中間画像ＭＰ１の左上のブロックＢＫ００に対応する入力画像ＩＰ１，ＩＰ２に対してブレンド処理を実行する。そして、ブレンド処理部３１は、ブレンド処理後の画像データ、つまり中間画像ＭＰ１をブロックＢＫの単位で出力し、そのブロックＢＫをバッファ領域５１に格納する。具体的には、図５に示すように、ブレンド処理部３１は、まず、ブロックＢＫ００内の座標（０，０）〜座標（５，０）までのブレンド処理後の画素データを内蔵メモリ５０のバッファ領域５１に格納する。このとき、ブレンド処理部３１からは、ブレンド処理後の画素データと併せて、その画素データの中間画像ＭＰ１におけるＸＹ座標が出力される。そして、アドレス演算器４３では、ブレンド処理部３１からのＸＹ座標に基づいて、上述した式１を用いて内蔵メモリ５０のアドレスＡＤＤが算出され、そのアドレスＡＤＤで指定される内蔵メモリ５０の領域にブレンド処理後の画素データが格納される。なお、本例の式１では、バッファ領域５１の水平サイズＨ１が「２４」、バッファ領域５１の垂直サイズＶ１が「８」、バッファ領域５１の開始アドレス、つまりアドレスオフセットｏｆｓが「０」となる。
【００８１】
図１０は、中間画像ＭＰ１の各画素データのＸＹ座標と、内蔵メモリ５０（バッファ領域５１）のアドレスＡＤＤとの対応を示した図である。図１０では、中間画像ＭＰ１内に示した数字が内蔵メモリ５０（バッファ領域５１）のアドレスＡＤＤを示している。
【００８２】
図１０に示すように、中間画像ＭＰ１の座標（０，０）の画素データは、内蔵メモリ５０のアドレス「０」に格納される。同様に、中間画像ＭＰ１の座標（１，０）、（２，０）、（３，０）、（４，０）、（５，０）の画素データは、内蔵メモリ５０のアドレス「１」、「２」、「３」、「４」、「５」に順次格納される。すなわち、図１２（ａ）に示すように、ブロックＢＫ００の１ライン目の画素データは、バッファ領域５１の短冊バッファＡ０の１ライン目に順次格納される。
【００８３】
ブロックＢＫ００の１ライン目の画素データの出力が終了すると、続いて、ブロックＢＫ００の２ライン目に対応する入力画像ＩＰ１，ＩＰ２に対するブレンド処理が実行される。すると、図１０に示すように、中間画像ＭＰ１の座標（０，１）、（１，１）、（２，１）、（３，１）、（４，１）、（５，１）の画素データが、内蔵メモリ５０のアドレス「２４」、「２５」、「２６」、「２７」、「２８」、「２９」に順次格納される。すなわち、ブロックＢＫ００の２ライン目の画素データは、短冊バッファＡ０の２ライン目の先頭のアドレス「２４」から順に格納される。以後も同様に、ブロックＢＫ００の３ライン目の画素データが、短冊バッファＡ０の３ライン目の先頭のアドレス「４８」から順に格納される。なお、以下では、説明の便宜上、中間画像ＭＰ１における処理対象の画素データに対応する入力画像に対してブレンド処理を実行し、上記処理対象の画素データをバッファ領域５１に格納する一連の処理を、単に「中間画像ＭＰ１における処理対象の画素データの処理」ともいう。
【００８４】
図１２（ａ）に示すように、ブロックＢＫ００の３ライン目の最後の座標（５，２）の画素データがバッファ領域５１に格納されると（図中白丸参照）、フィルタ処理部３２によるフィルタ処理が開始される。すなわち、フィルタ処理部３２は、例えば、ブレンド処理部３１から処理済座標ＦＣ１として座標（５，２）が入力されると、リード調停部４２Ｂに読み出し要求を発行し、バッファ領域５１からの中間画像ＭＰ１の読み出しを開始する。フィルタ処理部３２は、バッファ領域５１に格納されたブロックＢＫ００の１〜３ライン目の画素データを読み出し、それら１〜３ライン目の画素データに対してフィルタ処理を実行する。このとき、フィルタ処理部３２によるフィルタ処理では、注目画素を中心として５画素×５画素の画素データが必要であるため、Ｙ座標＝０より上側の水平ラインの画素データはＹ座標＝０の画素データで代用し、Ｘ座標＝０よりも左側の垂直ラインの画素データはＸ座標＝０の画素データで代用する。
【００８５】
このようなフィルタ処理が実行されると、中間画像ＭＰ２のブロックＢＬ００の１ライン目の画素データがバッファ領域５２に格納される。このとき、フィルタ処理部３２からは、フィルタ処理後の画素データと併せて、その画素データの中間画像ＭＰ２におけるＸＹ座標が出力される。そして、アドレス演算器４３では、フィルタ処理部３２からのＸＹ座標に基づいて、上述した式１を用いて内蔵メモリ５０のアドレスＡＤＤが算出され、そのアドレスＡＤＤで指定される内蔵メモリ５０の領域にフィルタ処理後の画素データが格納される。なお、本例の式１では、バッファ領域５２の水平サイズＨ１が「２４」、バッファ領域５２の垂直サイズＶ１が「５」、バッファ領域５２の開始アドレス、つまりアドレスオフセットｏｆｓが「１９２」となる。
【００８６】
図１１は、中間画像ＭＰ２の各画素データのＸＹ座標と、内蔵メモリ５０（バッファ領域５２）のアドレスＡＤＤとの対応を示した図である。図１１では、中間画像ＭＰ２内に示した数字が内蔵メモリ５０（バッファ領域５２）のアドレスＡＤＤを示している。
【００８７】
図１１に示すように、中間画像ＭＰ２の座標（０，０）の画素データは、内蔵メモリ５０のアドレス「１９２」に格納される。同様に、中間画像ＭＰ２の座標（１，０）、（２，０）、（３，０）の画素データは、内蔵メモリ５０のアドレス「１９３」、「１９４」、「１９５」に順次格納される。すなわち、図１２（ａ）に示すように、ブロックＢＬ００の１ライン目の画素データは、バッファ領域５２の短冊バッファＢ０の１ライン目に順次格納される。なお、以下では、説明の便宜上、中間画像ＭＰ２における処理対象の画素データに対応する入力画像に対してフィルタ処理を実行し、上記処理対象の画素データをバッファ領域５２に格納する一連の処理を、単に「中間画像ＭＰ２における処理対象の画素データの処理」ともいう。
【００８８】
続いて、図１２（ｂ）に示すように、ブロックＢＫ００の４ライン目の処理が終了すると（図中三角参照）、ブロックＢＫ００の１〜４ライン目の画素データを用いてフィルタ処理が実行される。これにより、ブロックＢＬ００の２ライン目の画素データが短冊バッファＢ０の２ライン目に格納される。同様に、ブロックＢＫ００の５ライン目の処理が終了すると（四角参照）、ブロックＢＫ００の１〜５ライン目の画素データを用いてフィルタ処理が実行される。これにより、ブロックＢＬ００の３ライン目の画素データが短冊バッファＢ０の３ライン目に格納される。ここで、ブロックＢＬ００の３ライン目の最後の座標（３，２）の画素データがバッファ領域５２に格納されると、これ以降のフィルタ処理においてブロックＢＫ００の１ライン目の画素データは不要となる。このため、フィルタ処理部３２は、ブロックＢＫ００の１ライン目の最後の座標（５，０）を不要座標ＮＣ１としてブレンド処理部３１に出力する。そして、ブレンド処理部３１は、不要座標ＮＣ１として座標（５，０）が入力されると、ブロックＢＫ００の１ライン目の画素データが格納されている短冊バッファＡ０の１ライン目の領域に対する上書きを許可する。
【００８９】
その後も同様に、ブロックＢＫ００の６ライン目（最終ライン）の処理が終了すると（菱形参照）、ブロックＢＫ００の２〜６ライン目の画素データを用いてフィルタ処理が実行される。これにより、ブロックＢＬ００の４ライン目（最終ライン）の画素データが短冊バッファＢ０の４ライン目に順次格納される。このとき、ブレンド処理部３１は、不要座標ＮＣ１として座標（５，１）が入力されると、ブロックＢＫ００の２ライン目の画素データが格納されている短冊バッファＡ０の２ライン目の領域に対する上書きを許可する。なお、これ以降の処理では、中間画像ＭＰ２の水平位置Ｈ＝０のブロックＢＬ００，ＢＬ１０，ＢＬ２０，ＢＬ３０，ＢＬ４０，ＢＬ５０の１ライン分の画素データが短冊バッファＢ０に格納される毎に、短冊バッファＡ０の１ライン分の領域に対する上書きが許可される。
【００９０】
このように、ブロックＢＫ００の全画素データのバッファ領域５１への格納が終了すると、ブロックＢＬ００の全ての画素データに対する処理を実行することができる。そして、ブロックＢＬ００の最終ラインの最後の座標（３，３）の画素データがバッファ領域５２に格納されると（黒丸参照）、解像度変換処理部３３による解像度変換処理が開始される。すなわち、解像度変換処理部３３は、フィルタ処理部３２から処理済座標ＦＣ２として例えば座標（３，３）が入力されると、リード調停部４２Ｂに読み出し要求を発行し、バッファ領域５２からの中間画像ＭＰ２の読み出しを開始する。解像度変換処理部３３は、バッファ領域５２に格納されたブロックＢＬ００の１〜４ライン目の画素データを読み出し、それら１〜４ライン目の画素データを用いて解像度変換処理を実行する。これにより、出力画像ＯＰの座標（０，０）の画素データが解像度変換処理部３３から出力され、その画素データが外部メモリ１３に格納される。ここで、出力画像ＯＰの座標（０，０）の画素データが外部メモリ１３に格納されると、これ以降の解像度変換処理においてブロックＢＬ００の１〜３ライン目の画素データは不要となる。このため、解像度変換処理部３３は、ブロックＢＬ００の３ライン目の最後の座標（３，２）を不要座標ＮＣ２としてフィルタ処理部３２に出力する。そして、フィルタ処理部３２は、不要座標ＮＣ２として座標（３，２）が入力されると、ブロックＢＬ００の１〜３ライン目の画素データが格納されている短冊バッファＢ０の１〜３ライン目の領域に対する上書きを許可する。
【００９１】
以上説明した動作により、中間画像ＭＰ１の左上のブロックＢＫ００、中間画像ＭＰ２の左上のブロックＢＬ００及び出力画像ＯＰの座標（０，０）の画素データの処理が完了する。なお、以上説明した処理では、出力画像ＯＰの座標（０，０）の画素データの出力が可能なように、ブロックＢＬ００のサイズが設定され、そのブロックＢＬ００の全ての画素データの出力が可能なように、ブロックＢＫ００のサイズが設定されている。
【００９２】
続いて、図１３に示すように、ブロックＢＫ００の処理が終了すると、ブロックＢＫ００の右隣のブロックＢＫ０１の１ライン目の処理が開始され、その１ライン目の画素データが短冊バッファＡ１の１ライン目に格納される。次いで、ブロックＢＫ０１の２，３ライン目の処理が終了すると（図中白丸参照）、ブロックＢＬ００の右隣のブロックＢＬ０１の１ライン目の処理が開始され、その１ライン目の画素データが短冊バッファＢ１の１ライン目に格納される。その後、ブロックＢＫ０１の最終ラインの処理が終了し、ブロックＢＬ０１の最終ラインの処理が終了すると、出力画像ＯＰの座標（１，０）の画素データの処理が開始される。以後も同様に、ブロックＢＫ００と同じ垂直位置Ｖ＝０に配列されたブロックＢＫ０２，ＢＫ０３，ＢＫ０４，ＢＫ０５がこの順番でバッファ領域５１（短冊バッファＡ２，Ａ３，Ａ４，Ａ５）に順次格納される。この処理と並行して、ブロックＢＬ００と同じ垂直位置Ｖ＝０に配列されたブロックＢＬ０２，ＢＬ０３，ＢＬ０４，ＢＬ０５がこの順番でバッファ領域５２（短冊バッファＢ２，Ｂ３，Ｂ４，Ｂ５）に順次格納される。さらに、これらの処理と並行して、出力画像ＯＰの１ライン目の画素データ、つまり座標（２，０）、（３，０）、（４，０）、（５，０）、（６，０）の画素データがこの順番で外部メモリ１３に順次格納される。
【００９３】
なお、上述したブロックＢＫ００，ＢＫ０１に対する処理と、ブロックＢＬ００，ＢＬ０１に対する処理と、出力画像ＯＰの座標（０，０）、（０，１）の画素データに対する処理とは、処理済座標ＦＣ１，ＦＣ２及び不要座標ＮＣ１，ＮＣ２に基づいて並行して実行される。
【００９４】
次に、図１４（ａ）に示すように、ブロックＢＫ０５の処理が終了すると、中間画像ＭＰ１の２段目先頭（つまり、垂直位置Ｖ＝１及び水平位置Ｈ＝０）のブロックＢＫ１０の１ライン目の処理が実行される。これにより、ブロックＢＫ１０の１ライン目の画素データが、バッファ領域５１の短冊バッファＡ０の７ライン目に順次格納される。すなわち、ブロックＢＫ１０の１ライン目の画素データは、ブロックＢＫ００の最終ラインが格納された領域（ここでは、短冊バッファＡ０の６ライン目）の直下の領域（ここでは、短冊バッファＡ０の７ライン目）に格納される。
【００９５】
ブロックＢＫ１０の１ライン目の処理が終了すると（図中白丸参照）、中間画像ＭＰ２の２段目先頭（つまり、垂直位置Ｖ＝１及び水平位置Ｈ＝０）のブロックＢＬ１０の１ライン目の処理が開始される。詳述すると、フィルタ処理部３２は、短冊バッファＡ０の３〜７ライン目の領域に格納された中間画像ＭＰ１の３〜７ライン目の画素データを読み出す。すなわち、フィルタ処理部３２は、ブロックＢＫ００の３〜６ライン目の画素データと、ブロックＢＫ１０の１ライン目の画素データとを読み出す。そして、フィルタ処理部３２は、読み出した画素データを用いてフィルタ処理を実行する。これにより、ブロックＢＬ１０の１ライン目の画素データがフィルタ処理部３２から出力され、それら画素データが短冊バッファＢ０の５ライン目に順次格納される。すなわち、ブロックＢＬ１０の１ライン目の画素データは、ブロックＢＬ００の最終ラインが格納された領域（ここでは、短冊バッファＢ０の４ライン目）の直下の領域（ここでは、短冊バッファＢ０の５ライン目）に格納される。
【００９６】
続いて、図１４（ｂ）に示すように、ブロックＢＬ１０に対する処理と並行して、ブロックＢＫ１０の２ライン目の処理が開始され、その２ライン目の画素データが短冊バッファＡ０の８ライン目の領域に格納される。次いで、ブロックＢＫ１０の２ライン目の処理が終了すると（三角参照）、ブロックＢＬ１０の２ライン目の処理が開始され、その２ライン目の画素データがバッファ領域５２に格納される。具体的には、ブロックＢＬ１０の２ライン目（中間画像ＭＰ２の６ライン目）の画素データは、短冊バッファＢ０の１ライン目に順次格納される。すなわち、ブロックＢＬ１０の２ライン目の画素データは、ブロックＢＬ００の１ライン目の画素データが格納されていた短冊バッファＢ０の１ライン目に上書きされる。ここで、解像度変換処理部３３から出力画像ＯＰの座標（０，０）が出力された時点（図１２（ｂ）参照）で、短冊バッファＢ０の１ライン目に対する上書きが許可されているため、待ち時間を設けることなく、ブロックＢＬ１０の画素データを短冊バッファＢ０に格納することができる。
【００９７】
このように、図８（ｂ）に示した短冊バッファＢ０では、アドレス「１９２」〜「１９５」→「２１６」〜「２１９」→「２４０」〜「２４３」→「２６４」〜「２６７」→「２８８」〜「２９１」の順に画素データが格納された後、アドレス「１９２」に戻って画素データが格納される。すなわち、短冊バッファＢ０では、終端（アドレス「２９１」）と始端（アドレス「１９２」）とが連結され、終端に画素データが格納された後に続けて始端に画素データが格納される。このような短冊バッファＢ０は、中間画像ＭＰ２における水平位置Ｈ＝０のブロックＢＬ００，ＢＬ１０，ＢＬ２０，ＢＬ３０，ＢＬ４０，ＢＬ５０の画素データが循環的に格納されるリングバッファとして機能する。
【００９８】
次いで、図１５に示すように、ブレンド処理部３１からブロックＢＫ１０の３ライン目の処理が実行されると、その３ライン目の画素データが短冊バッファＡ０の１ライン目に順次格納される。すなわち、ブロックＢＫ１０の３ライン目の画素データは、ブロックＢＫ００の１ライン目の画素データが格納されていた短冊バッファＡ０の１ライン目に上書きされる。ここで、フィルタ処理部３２から不要座標ＮＣ１として座標（５，０）が出力された時点（図１２（ａ）参照）で、短冊バッファＡ０の１ライン目に対する上書きが許可されている。このため、待ち時間を設けることなく、ブロックＢＫ１０の画素データを短冊バッファＡ０に格納することができる。
【００９９】
このように、図８（ａ）に示した短冊バッファＡ０では、アドレス「０」〜「５」→「２４」〜「２９」→「４８」〜「５３」→「７２」〜「７７」→「９６」〜「１０１」→「１２０」〜「１２５」→「１４４」〜「１４９」→「１６８」〜「１７３」に順に画素データが格納された後、アドレス「０」に戻って画素データが格納される。すなわち、短冊バッファＡ０では、終端（アドレス「１７３」）と始端（アドレス「０」）とが連結され、終端に画素データが格納された後に続けて始端に画素データが格納される。このような短冊バッファＡ０は、中間画像ＭＰ１における水平位置Ｈ＝０のブロックＢＫ００，ＢＫ１０，ＢＫ２０，ＢＫ３０，ＢＫ４０，ＢＫ５０の画素データが循環的に格納されるリングバッファとして機能する。
【０１００】
以後も同様に、図１５に示すように、ブロックＢＫ１０の最終ライン（４ライン目）の画素データが短冊バッファＡ０の２ライン目に格納される。それらの処理と並行して、ブロックＢＬ１０の３，４ライン目の画素データが短冊バッファＢ０の２，３ライン目に格納される。そして、ブロックＢＬ１０の４ライン目の画素データが短冊バッファＢ０に格納されると（黒丸参照）、出力画像ＯＰの座標（０，１）の画素データに対する処理が開始される。詳述すると、解像度変換処理部３３は、短冊バッファＢ０の４，５ライン目及び１，２ライン目に格納された中間画像ＭＰ２の４〜７ライン目の画素データを読み出す。すなわち、解像度変換処理部３３は、ブロックＢＬ００の４ライン目の画素データと、ブロックＢＬ１０の１〜３ライン目の画素データとを読み出す。そして、解像度変換処理部３３は、読み出した画素データを用いて解像度変換処理を実行する。これにより、出力画像ＯＰの座標（０，１）の画素データが解像度変換処理部３３から出力され、その画素データが外部メモリ１３に格納される。
【０１０１】
以上説明した動作により、中間画像ＭＰ１の２段目先頭のブロックＢＫ１０、中間画像ＭＰ２の２段目先頭のブロックＢＬ１０及び出力画像ＯＰの座標（０，１）の画素データの処理が完了する。このとき、図１５に示すように、短冊バッファＡ０には、ブロックＢＫ１０の１〜４ライン目の画素データと併せて、ブロックＢＫ００の３〜６ライン目の画素データが格納されている。ここで、ブロックＢＫ００の６ライン目の画素データは、垂直方向に隣接するブロックＢＬ１０，ＢＬ２０の処理で重複して使用される画素データである。このため、短冊バッファＡ０では、ブロックＢＫ００，ＢＫ１０が循環的に格納されるが、垂直方向に隣接するブロックＢＬ１０，ＢＬ２０の処理で重複して使用される画素データは上書きされずに残るようになっている。これは、ブロックＢＫのサイズとバッファ領域５１の垂直サイズＶ１とを上述のように設定したためである。
【０１０２】
以後も同様に、図１６（ａ）に示すように、ブロックＢＫ１０と同じ垂直位置Ｖ＝１に配列されたブロックＢＫ１１，ＢＫ１２，ＢＫ１３，ＢＫ１４，ＢＫ１５がこの順番で短冊バッファＡ１，Ａ２，Ａ３，Ａ４，Ａ５に順次格納される。この処理と並行して、ブロックＢＬ１０と同じ垂直位置Ｖ＝１に配列されたブロックＢＬ１１，ＢＬ１２，ＢＬ１３，ＢＬ１４，ＢＬ１５がこの順番で短冊バッファＢ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５に順次格納される。さらに、これらの処理と並行して、出力画像ＯＰの２ライン目の画素データ、つまり座標（１，１）、（２，１）、（３，１）、（４，１）、（５，１）、（６，１）の画素データがこの順番で外部メモリ１３に順次格納される。
【０１０３】
このとき、短冊バッファＡ１〜Ａ５の６，７ライン目には、ブロックＢＫ１１〜ＢＫ１５の１，２ライン目の画素データがそれぞれ格納され、短冊バッファＡ１〜Ａ５の１，２ライン目には、ブロックＢＫ１１〜ＢＫ１５の３，４ライン目の画素データがそれぞれ格納される。また、短冊バッファＢ１〜Ｂ５の５ライン目には、ブロックＢＬ１１〜ＢＬ１５の１ライン目の画素データがそれぞれ格納され、短冊バッファＢ１〜Ｂ５の１〜３ライン目には、ブロックＢＬ１１〜ＢＬ１５の２〜４ライン目の画素データがそれぞれ格納される。
【０１０４】
次に、図１６（ｂ）に示すように、ブロックＢＫ１５の処理が終了すると、中間画像ＭＰ１の３段目先頭（つまり、垂直位置Ｖ＝２及び水平位置Ｈ＝０）のブロックＢＫ２０の処理が実行される。これにより、ブロックＢＫ２０の画素データが短冊バッファＡ０の３〜６ライン目に順次格納される。
【０１０５】
また、ブロックＢＫ２０の１ライン目の処理が終了した後、ブロックＢＫ２０の処理と並行して、中間画像ＭＰ２の３段目先頭のブロックＢＬ２０の処理が開始される。そして、ブロックＢＬ２０の１，２ライン目の画素データが短冊バッファＢ０の４，５ライン目に順次格納され、ブロックＢＬ２０の３，４ライン目の画素データが短冊バッファＢ０の１，２ライン目に順次格納される。なお、ブロックＢＬ２０の処理が終了した後、出力画像ＯＰの座標（０，２）の画素データが外部メモリ１３に格納される。
【０１０６】
図１７に示すように、以後も同様に、ブロックＢＫ２０と同じ垂直位置Ｖ＝２に配列されたブロックＢＫ２１，ＢＫ２２，ＢＫ２３，ＢＫ２４，ＢＫ２５がこの順番で短冊バッファＡ１，Ａ２，Ａ３，Ａ４，Ａ５に順次格納される。この処理と並行して、ブロックＢＬ２０と同じ垂直位置Ｖ＝２に配列されたブロックＢＬ２１，ＢＬ２２，ＢＬ２３，ＢＬ２４，ＢＬ２５がこの順番で短冊バッファＢ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５に順次格納される。さらに、これらの処理と並行して、出力画像ＯＰの３ライン目の画素データ、つまり座標（１，２）、（２，２）、（３，２）、（４，２）、（５，２）、（６，２）の画素データがこの順番で外部メモリ１３に順次格納される。
【０１０７】
このとき、短冊バッファＡ１〜Ａ５の３〜６ライン目には、ブロックＢＫ２１〜ＢＫ２５の１〜４ライン目の画素データがそれぞれ格納される。また、短冊バッファＢ１〜Ｂ５の４，５ライン目には、ブロックＢＬ２１〜ＢＬ２５の１，２ライン目の画素データがそれぞれ格納され、短冊バッファＢ１〜Ｂ５の１，２ライン目には、ブロックＢＬ２１〜ＢＬ２５の３，４ライン目の画素データがそれぞれ格納される。
【０１０８】
図示は省略するが、以後も同様に、中間画像ＭＰ１の垂直位置Ｖ＝３，４，５に配列されたブロックＢＫ３０〜ＢＫ３５，ＢＫ４０〜ＢＫ４５，ＢＫ５０〜ＢＫ５５の処理が実行される。これらの処理と並行して、中間画像ＭＰ２の垂直位置Ｖ＝３，４，５に配列されたブロックＢＬ３０〜ＢＬ３５，ＢＬ４０〜ＢＬ４５，ＢＬ５０〜ＢＬ５５の処理が実行される。
【０１０９】
このとき、短冊バッファＡ０にはブロックＢＫ３０，ＢＫ４０，ＢＫ５０が循環的に格納され、短冊バッファＡ１にはブロックＢＫ３１，ＢＫ４１，ＢＫ５１が循環的に格納され、短冊バッファＡ２にはブロックＢＫ３２，ＢＫ４２，ＢＫ５２が循環的に格納される。また、短冊バッファＡ３にはブロックＢＫ３３，ＢＫ４３，ＢＫ５３が循環的に格納され、短冊バッファＡ４にはブロックＢＫ３４，ＢＫ４４，ＢＫ５４が循環的に格納され、短冊バッファＡ５にはブロックＢＫ３５，ＢＫ４５，ＢＫ５５が循環的に格納される。
【０１１０】
一方、短冊バッファＢ０にはブロックＢＬ３１，ＢＬ４１，ＢＬ５１が循環的に格納され、短冊バッファＢ２にはブロックＢＬ３２，ＢＬ４２，ＢＬ５２が循環的に格納される。また、短冊バッファＢ３にはブロックＢＬ３３，ＢＬ４３，ＢＬ５３が循環的に格納され、短冊バッファＢ４にはブロックＢＬ３４，ＢＬ４４，ＢＬ５４が循環的に格納され、短冊バッファＢ５にはブロックＢＬ３５，ＢＬ４５，ＢＬ５５が循環的に格納される。
【０１１１】
以上説明したように、本例のパイプライン処理では、上流の処理部（例えば、ブレンド処理部３１）から処理済座標（例えば、処理済座標ＦＣ１）としてＸＹ座標が出力され、そのＸＹ座標に基づいて下流の処理部（例えば、フィルタ処理部３２）における画像処理が実行される。これにより、下流の処理部における待ち時間を従来技術に比べて短くすることができる。例えば、ブレンド処理部３１によるブレンド処理とフィルタ処理部３２によるフィルタ処理を、従来の方法でパイプライン処理を行った場合には、中間画像ＭＰ１の３ライン目の最後の画素データに対するブレンド処理が終了したときにはじめて、フィルタ処理部３２が中間画像ＭＰ１の左上の画素データを読み出すことができる。すなわち、従来の方法では、座標（２３，２）の画素データに対するブレンド処理が終了するまで、ブロックＢＫ００の左上の画素データに対するフィルタ処理を実施することができない。これに対し、本例では、処理済座標として、水平方向の座標（Ｘ座標）と垂直方向の座標（Ｙ座標）を利用するため、ブロックＢＫ００の３ライン目の最後の画素データ、つまり座標（５，２）の画素データに対するブレンド処理が終了したときに、ブロックＢＫ００の左上の画素データに対するフィルタ処理を開始することができる。すなわち、従来の方法に比べて、１２０画素の画素データ（具体的には、ブロックＢＫ００の４〜６ライン目の画素データ、ブロックＢＫ０１〜ＢＫ０４の画素データ、及びブロックＢＫ０５の１〜３ライン目の画素データ）に対してフィルタ処理を実行する時間分だけ、フィルタ処理部３２における待ち時間を短くすることができる。
【０１１２】
なお、詳細な説明は省略するが、本例のパイプライン処理におけるフィルタ処理部３２と解像度変換処理部３３との関係においても同様のことがいえる。
また、バッファ領域５２は、複数個の短冊バッファＢ０〜Ｂ５を有し、それら短冊バッファＢ０〜Ｂ５に対応するブロックＢＬの画素データを循環的に格納するようにした。換言すると、アドレス演算器４３において、式１を用いてアドレスＡＤＤを算出することにより、ブロックＢＬの画素データを対応する短冊バッファＢ０〜Ｂ５に循環的に格納するようにした。そして、この式１を用いてアドレスＡＤＤを算出することにより、バッファ領域５２の垂直サイズＶ１を、ブロックＢＬの垂直方向のサイズ（ここでは、４ライン）に、下流の解像度変換処理における垂直重複ライン（ここでは、１ライン）を加えたサイズに設定することができる。
【０１１３】
ここで、処理対象の画素データのＸ座標及びＹ座標に基づいて、下記式
中間画像ＭＰ２の水平サイズ×Ｙ座標＋Ｘ座標    …（２）
から算出した演算結果の下位ビットを抽出することにより、内蔵メモリ５０のアドレスを算出する比較例について説明する。この場合には、中間画像ＭＰ２を格納するバッファ領域としては、水平サイズが中間画像ＭＰ２の水平サイズと等しいサイズと、垂直サイズがブロックＢＬの垂直サイズを２倍したサイズ（ここでは、８ライン）とが必要になる。
【０１１４】
これに対し、本例では、上述したように、バッファ領域５２の垂直サイズＶ１を５ラインに設定することができる。このため、式１を用いてアドレスＡＤＤを算出することにより（短冊バッファＢ０〜Ｂ５毎にリングバッファとして機能させることにより）、内蔵メモリ５０のメモリ容量を小さくすることができる。
【０１１５】
なお、バッファ領域５１（短冊バッファＡ０〜Ａ５）についても、バッファ領域５２（短冊バッファＢ０〜Ｂ５）と同様のことがいえる。
さらに、中間画像ＭＰ２のブロックＢＬのサイズを、出力画像ＯＰの１つのブロック（ここでは、１画素の画素データ）を出力可能なサイズに設定するようにした。また、バッファ領域５２の垂直サイズＶ１を、ブロックＢＬの垂直サイズＶＳ１１（ここでは、４ライン）に、下流の解像度変換処理における垂直重複ライン（ここでは、１ライン）を加えたサイズに設定するようにした。これにより、例えば、短冊バッファＢ０にブロックＢＬ００，ＢＬ１０を循環的に格納した際に、垂直方向に隣接する出力画像ＯＰの座標（０，１）、（０，２）の画素データに対する処理で重複して使用される画素データを短冊バッファＢ０内に確実に残すことができる。
【０１１６】
同様に、中間画像ＭＰ１のブロックＢＫのサイズを、中間画像ＭＰ２をブロックＢＬ毎に出力可能なサイズに設定し、バッファ領域５１の垂直サイズＶ１を、ブロックＢＫの垂直サイズＶＳ１（ここでは、４ライン）に、下流のフィルタ処理における垂直重複ライン（ここでは、２ライン）を加えたサイズ以上のサイズに設定するようにした。これにより、例えば、短冊バッファＡ０にブロックＢＫ００，ＢＫ１０を循環的に格納した際に、垂直方向に隣接するブロックＢＬ１０，ＢＬ２０に対する処理で重複して使用される画素データを短冊バッファＡ０内に確実に残すことができる。
【０１１７】
（第２の具体例）
次に、図１８〜図２５に従って、第２の具体例における画像処理回路２２の動作について説明する。
【０１１８】
第２の具体例の画像処理回路２２では、図７に示した第１の具体例と同様に、ブレンド処理部３１→フィルタ処理部３２→解像度変換処理部３３という順番でパイプライン処理が実行される。但し、解像度変換処理部３３では、バッファ領域５２から読み出された中間画像ＭＰ２に対して、バイキュービック法を用いて、拡大率が１／４倍に設定された解像度変換処理（縮小処理）が実行される。この解像度変換処理における拡大率が第１の具体例とは異なる。以下、第１の具体例との相違点を中心に説明する。
【０１１９】
図１８（ｃ）に示すように、本例の内蔵メモリ５０では、ブレンド処理後の中間画像ＭＰ１が格納されるバッファ領域５１と、フィルタ処理後の中間画像ＭＰ２が格納されるバッファ領域５２とが連続した領域に割り当てられている。
【０１２０】
図１８（ａ）に示すように、バッファ領域５１は、１４４画素分のデータを格納可能なメモリ領域である。具体的には、内蔵メモリ５０のアドレス「０」からアドレス「１４３」までの領域がバッファ領域５１となる。このとき、バッファ領域５１の水平サイズＨ１は、中間画像ＭＰ１全体の水平方向の画素数（ここでは、２４画素）が格納可能なサイズに設定されている。また、バッファ領域５１の垂直サイズＶ１は、垂直方向の６画素分の画素データが格納可能なサイズに設定されている。具体的には、バッファ領域５１の垂直サイズＶ１は、フィルタ処理部３２から出力されるブロックＢＫの垂直サイズＶＳ１（ここでは、４ライン）に、フィルタ処理における垂直重複ライン（ここでは、２ライン）を加えたライン数（ここでは、６ライン）を格納可能なサイズに設定される。すなわち、本例のバッファ領域５１のサイズは、必要最小限のサイズに設定されている。
【０１２１】
バッファ領域５１は、第１の具体例と同様に、短冊状の複数個の短冊バッファＡ０〜Ａ５を有している。各短冊バッファＡ０〜Ａ５の水平方向のサイズは、対応するブロックＢＫ００〜ＢＫ０５の水平方向のサイズと同一のサイズに設定されている。
【０１２２】
図１８（ｂ）に示すように、本例のバッファ領域５２は、３２画素分のデータを格納可能なメモリ領域である。具体的には、内蔵メモリ５０のアドレス「１４４」からアドレス「１７５」までの領域がバッファ領域５２となる。すなわち、バッファ領域５２は、バッファ領域５１に続くアドレス「１４４」から３２画素分のデータが格納可能な領域に設定されている。このとき、バッファ領域５２の水平サイズＨ１は、中間画像ＭＰ２全体の水平方向の画素数（ここでは、２４画素）よりも小さい画素数（ここでは、８画素）が格納可能なサイズに設定されている。また、バッファ領域５２の垂直サイズＶ１は、４画素分のデータが格納可能なサイズに設定されている。
【０１２３】
バッファ領域５２は、短冊状の複数個の短冊バッファＢ０，Ｂ１を有している。各短冊バッファＢ０，Ｂ１の水平方向のサイズは、中間画像ＭＰ２のブロックＢＬの水平方向のサイズと同一のサイズに設定されている。これら短冊バッファＢ０，Ｂ１には、多数のブロックＢＬの画素データが循環的に格納される。
【０１２４】
次に、バッファ領域５２を上述したサイズに設定した理由について説明する。
まず、図１９に示すように、バイキュービック法を用いて、拡大率が１／４倍に設定された解像度変換処理では、入力画像の座標（０，０）〜（３，３）の１６画素を用いて出力画像の座標（０，０）の画素値が算出される。また、上記解像度変換処理では、入力画像の座標（０，４）〜（３，７）の１６画素を用いて出力画像の座標（０，１）の画素値が算出される。すなわち、拡大率が１／４倍である場合には、垂直重複ラインを必要としない。この場合には、バッファ領域５２の水平サイズＨ１は、中間画像ＭＰ２全体の水平方向のサイズよりも小さいサイズに設定することができる。本例のバッファ領域５２の水平サイズＨ１は、解像度変換処理部３３における１回の解像度変換処理で必要な水平方向の画素数（ここでは、４画素）よりも多い画素数（ここでは、８画素）を格納可能なサイズに設定される。また、本例のバッファ領域５２の垂直サイズＶ１は、ブロックＢＬの垂直サイズＶＳ１１（ここでは、４画素）と同一のサイズに設定される。すなわち、本例のバッファ領域５２は、中間画像ＭＰ２の２個分のブロックＢＬの画素データを格納可能なサイズに設定される。これは、解像度変換処理部３３において、中間画像ＭＰ２の各ブロックＢＬを処理する際に、時間的に前に処理したブロックＢＬのデータを必要としないために、各短冊バッファＢ０，Ｂ１に対して別の画素データを順次上書きすることができるためである。但し、バッファ領域５２のサイズは、パイプライン処理における上流の処理部との処理速度差の変動を吸収できるサイズであれば特に限定されず、例えば、ブロックＢＬのサイズの倍数である必要はない。
【０１２５】
次に、図２０〜図２５に従って、中間画像ＭＰ１，ＭＰ２の内蔵メモリ５０への格納方法について詳述する。なお、図２０は、中間画像ＭＰ１の各画素データのＸＹ座標と、内蔵メモリ５０（バッファ領域５１）のアドレスＡＤＤとの対応を示した図である。図２０では、中間画像ＭＰ１内に示した数字が内蔵メモリ５０（バッファ領域５１）のアドレスＡＤＤを示している。また、図２１は、中間画像ＭＰ２の各画素データのＸＹ座標と、内蔵メモリ５０（バッファ領域５２）のアドレスＡＤＤとの対応を示した図である。図２１では、中間画像ＭＰ２内に示した数字が内蔵メモリ５０（バッファ領域５２）のアドレスＡＤＤを示している。
【０１２６】
図２２（ａ）に示すように、まず、中間画像ＭＰ１のブロックＢＫ００の１〜３ライン目の処理が実行され、それら１〜３ライン目の画素データがバッファ領域５１の短冊バッファＡ０の１〜３ライン目に格納される。ブロックＢＫ００の３ライン目の処理が終了すると（図中白丸参照）、中間画像ＭＰ２のブロックＢＬ００の１ライン目の処理が実行され、その１ライン目の画素データがバッファ領域５２の短冊バッファＢ０の１ライン目に格納される。以後も同様に、ブロックＢＫ００の４〜６ライン目の処理と、ブロックＢＬ００の２〜４ライン目の処理とが並行して実行される。そして、ブロックＢＬ００の４ライン目（最終ライン）の処理が終了すると（図中黒丸参照）、出力画像ＯＰの座標（０，０）の画素データに対する処理が実行され、その画素データが外部メモリ１３に格納される。
【０１２７】
ここで、中間画像ＭＰ２のブロックＢＬ００の最後の画素データがバッファ領域５２に格納されると、これ以降のフィルタ処理においてブロックＢＫ００の２ライン目の画素データは不要となる。このため、ブレンド処理部３１は、フィルタ処理部３２からの不要座標ＮＣ１（ここでは、座標（５，１））に基づいて、ブロックＢＫ００の１〜２ライン目の画素データが格納されている短冊バッファＡ０の座標（０，０）、（０，１）、（１，０）、（１，１）の領域に対する上書きを許可する。
【０１２８】
また、出力画像ＯＰの座標（０，０）の画素データが外部メモリ１３に格納されると、これ以降の解像度変換処理においてブロックＢＬ００の１〜４ライン目の画素データは不要となる。このため、解像度変換処理部３３は、ブロックＢＬ００の４ライン目の最後の座標（３，３）を不要座標ＮＣ２としてフィルタ処理部３２に出力する。そして、フィルタ処理部３２は、解像度変換処理部３３からの不要座標ＮＣ２に基づいて、ブロックＢＬ００の１〜４ライン目の画素データが格納されている短冊バッファＢ０の全領域に対する上書きを許可する。
【０１２９】
続いて、図２２（ｂ）に示すように、ブロックＢＫ０１の１〜６ライン目の処理と、ブロックＢＬ０１の１〜４ライン目の処理とが並行して実行される。これにより、ブロックＢＫ０１の１〜６ライン目の画素データがバッファ領域５１の短冊バッファＡ１の１〜６ライン目に格納され、ブロックＢＬ０１の１〜４ライン目の画素データがバッファ領域５２の短冊バッファＢ１の１〜４ライン目に格納される。そして、ブロックＢＬ０１の最終ラインの処理が終了すると（図中黒丸参照）、出力画像ＯＰの座標（１，０）の画素データに対する処理が実行され、その画素データが外部メモリ１３に格納される。ここで、出力画像ＯＰの座標（１，０）の画素データが外部メモリ１３に格納されると、これ以降の解像度変換処理においてブロックＢＬ０１の１〜４ライン目の画素データは不要となる。このため、フィルタ処理部３２は、解像度変換処理部３３からの不要座標ＮＣ２（ここでは、座標（７，３））に基づいて、ブロックＢＬ０１の画素データが格納されている短冊バッファＢ１の全領域に対する上書きを許可する。
【０１３０】
次いで、図２３（ａ）に示すように、中間画像ＭＰ１のブロックＢＫ０２の１〜３ライン目の処理が実行され、それら１〜３ライン目の画素データが短冊バッファＡ２の１〜３ライン目に格納される。ブロックＢＫ０２の３ライン目の処理が終了すると（図中白丸参照）、中間画像ＭＰ２のブロックＢＬ０２の１ライン目の処理が実行される。これにより、ブロックＢＬ０２の１ライン目の画素データは、短冊バッファＢ０の１ライン目に順次格納される。すなわち、ブロックＢＬ０２の１ライン目の画素データは、ブロックＢＬ００の１ライン目の画素データが格納されていた短冊バッファＢ０の１ライン目に上書きされる。ここで、解像度変換処理部３３から出力画像ＯＰの座標（０，０）が出力された時点（図２２（ａ）参照）で、短冊バッファＢ０の全領域に対する上書きが許可されているため、待ち時間を設けることなく、ブロックＢＬ１０の画素データを短冊バッファＢ０に格納することができる。
【０１３１】
続いて、図２３（ｂ）に示すように、ブロックＢＫ０２の４〜６ライン目の処理と、ブロックＢＬ０２の２〜４ライン目の処理が並行して実行される。これにより、ブロックＢＬ０２の２〜４ライン目の画素データが、短冊バッファＢ０の２〜４ライン目に上書きされる。このように、短冊バッファＢ０，Ｂ１には、中間画像ＭＰ２の各ブロックＢＬが交互に格納される。
【０１３２】
以後も同様に、図２４（ａ）に示すように、中間画像ＭＰ１の垂直位置Ｖ＝０に配列されたブロックＢＫ０３，ＢＫ０４，ＢＫ０５がこの順番で短冊バッファＡ３，Ａ４，Ａ５に順次格納される。この処理と並行して、中間画像ＭＰ２の垂直位置Ｖ＝０に配列されたブロックＢＬ０３，ＢＬ０４，ＢＬ０５の処理が実行される。これにより、まず、ブロックＢＬ０３の画素データが短冊バッファＢ１に格納される。続いて、ブロックＢＬ０４の画素データが短冊バッファＢ０に格納され、ブロックＢＬ０５の画素データが短冊バッファＢ１に格納される。このため、図２４（ａ）に示すように、ブロックＢＬ０５の処理が終了すると、短冊バッファＢ０，Ｂ１にそれぞれブロックＢＬ０４，ＢＬ０５の画素データが格納された状態となる。さらに、これらの処理と並行して、出力画像ＯＰの座標（３，０）、（４，０）、（５，０）の画素データがこの順番で外部メモリ１３に順次格納される。
【０１３３】
次に、図２４（ｂ）に示すように、ブロックＢＫ０５の処理が終了すると、中間画像ＭＰ１の２段目先頭のブロックＢＫ１０の処理が実行される。これにより、まず、ブロックＢＫ１０の１ライン目の画素データが、ブロックＢＫ００の１ライン目の画素データが格納されていた短冊バッファＡ０の１ライン目に格納される。このとき、短冊バッファＡ０の１ライン目に対する上書きが、ブロックＢＫ１０の処理を開始する前に既に許可されている。このため、待ち時間を設けることなく、ブロックＢＫ１０の画素データを短冊バッファＡ０に格納することができる。このように、短冊バッファＡ０には、第１の具体例と同様に、ブロックＢＫ００，ＢＫ１０の画素データが循環的に格納される。
【０１３４】
ブロックＢＫ１０の１ライン目の処理が終了すると（図中白丸参照）、中間画像ＭＰ２の２段目先頭のブロックＢＬ１０の１ライン目の処理が開始される。詳述すると、フィルタ処理部３２は、短冊バッファＡ０の３〜６ライン目と１ライン目の領域に格納された中間画像ＭＰ１の３〜７ライン目（つまり、ブロックＢＫ００の３〜６ライン目及びブロックＢＫ１０の１ライン目）の画素データを読み出す。そして、フィルタ処理部３２は、読み出した画素データを用いてフィルタ処理を実行する。これにより、ブロックＢＬ１０の１ライン目の画素データがフィルタ処理部３２から出力され、それら画素データが短冊バッファＢ０の１ライン目に順次格納される。
【０１３５】
ここで、中間画像ＭＰ２のブロックＢＬ１０の１ライン目の処理が終了すると、これ以降のフィルタ処理においてブロックＢＫ００の３ライン目の画素データは不要となるため、ブロックＢＫ００の３ライン目の画素データが格納されている短冊バッファＡ０の３ライン目の領域に対する上書きが許可される。
【０１３６】
以後も同様に、ブロックＢＫ１０の処理と、ブロックＢＬ１０の処理とが並行に実行される。これにより、ブロックＢＫ１０の２〜４ライン目が短冊バッファＡ０の２〜４ライン目に格納され、ブロックＢＬ１０の２〜４ライン目が短冊バッファＢ０の２〜４ライン目に格納される。そして、ブロックＢＬ１０の４ライン目の画素データが短冊バッファＢ０に格納されると（黒丸参照）、出力画像ＯＰの座標（０，１）の画素データに対する処理が実行され、その画素データが外部メモリ１３に格納される。
【０１３７】
以上説明した動作により、中間画像ＭＰ１の２段目先頭のブロックＢＫ１０、中間画像ＭＰ２の２段目先頭のブロックＢＬ１０及び出力画像ＯＰの座標（０，１）の画素データの処理が完了する。このとき、図２４（ｂ）に示すように、短冊バッファＡ０には、ブロックＢＫ１０の１〜４ライン目の画素データと併せて、ブロックＢＫ００の５，６ライン目の画素データが格納されている。このため、短冊バッファＡ０では、ブロックＢＫ００，ＢＫ１０が循環的に格納されるが、垂直方向に隣接するブロックＢＬ１０，ＢＬ２０の処理で重複して使用される、ブロックＢＫ００の６ライン目の画素データは上書きされずに残るようになっている。
【０１３８】
なお、中間画像ＭＰ２のブロックＢＬのバッファ領域５２への格納方法は、以降の処理でも同様であるため、以下の説明では省略する。
続いて、図２５（ａ）に示すように、ブロックＢＫ１０と同じ垂直位置Ｖ＝１に配列されたブロックＢＫ１１，ＢＫ１２，ＢＫ１３，ＢＫ１４，ＢＫ１５がこの順番で短冊バッファＡ１，Ａ２，Ａ３，Ａ４，Ａ５に順次格納される。このとき、短冊バッファＡ１〜Ａ５の１〜４ライン目には、ブロックＢＫ１１〜ＢＫ１５の１〜４ライン目の画素データがそれぞれ格納される。
【０１３９】
次に、図２５（ｂ）に示すように、ブロックＢＫ１５の処理が終了すると、中間画像ＭＰ１の垂直位置Ｖ＝２に配列されたブロックＢＫ２０，ＢＫ２１，ＢＫ２２，ＢＫ２３，ＢＫ２４，ＢＫ２５の処理が順に実行される。これにより、ブロックＢＫ２０〜ＢＫ２５の画素データが、短冊バッファＡ０〜Ａ５の５，６ライン目及び１，２ライン目にそれぞれ格納される。
【０１４０】
図示は省略するが、以後も同様に、中間画像ＭＰ１の垂直位置Ｖ＝３，４，５に配列されたブロックＢＫ３０〜ＢＫ３５，ＢＫ４０〜ＢＫ４５，ＢＫ５０〜ＢＫ５５の処理が実行される。
【０１４１】
以上説明したように、本例のパイプライン処理では、下流の処理部（例えば、フィルタ処理部３２）から不要座標（例えば、不要座標ＮＣ１）としてＸＹ座標が出力され、そのＸＹ座標に基づいて上流の処理部（例えば、ブレンド処理部３１）においてバッファ領域（例えば、バッファ領域５１）の上書きが許可される。これにより、上流の処理部における待ち時間を短くすることができる。例えば、下流の処理部からのライン番号の通知に基づいて、上流の処理部においてバッファ領域の上書きを許可する場合には、中間画像ＭＰ２の各ラインの処理が終了するまでバッファ領域の対応するラインへの上書きが許可されない。これに対し、本例では、不要座標として、水平方向の座標（Ｘ座標）と垂直方向の座標（Ｙ座標）を利用する。このため、例えば、ブロックＢＬの各ラインの終了に基づいて、バッファ領域５１の対応する領域への上書きが許可される。
【０１４２】
バッファ領域５２についても同様に、出力画像ＯＰの各画素データの処理終了毎に、その画素データに対応する領域の上書きが許可される。これにより、バッファ領域５２の水平サイズＨ１を、中間画像ＭＰ２の水平方向のサイズ（ここでは、２４画素）よりも小さいサイズ（ここでは、８画素）に設定することができる。この結果、内蔵メモリ５０のメモリ容量を小さくすることができる。
【０１４３】
なお、以上説明した第１の具体例及び第２の具体例において、ブレンド処理部３１は第１処理部の一例、フィルタ処理部３２は第２処理部の一例、解像度変換処理部３３は第３処理部の一例である。また、中間画像ＭＰ１は第１中間画像の一例、中間画像ＭＰ２は第２画像処理後の画像データ及び第２中間画像の一例、出力画像ＯＰは第３画像処理後の画像データの一例、入力画像ＩＰ，ＩＰ１，ＩＰ２は所定の画像データの一例である。また、ブロックＢＫは第１ブロックの一例、ブロックＢＬは第２ブロックの一例、出力画像ＯＰの各画素データは第３ブロックの一例、バッファ領域５１は第１バッファ領域の一例、バッファ領域５２は第２バッファ領域の一例である。また、ブレンド処理部３１によるブレンド処理は第１画像処理の一例、フィルタ処理部３２によるフィルタ処理は第２画像処理の一例、解像度変換処理部３３による解像度変換処理は第３画像処理の一例である。
【０１４４】
（第３の具体例）
次に、図２６〜図３０に従って、第３の具体例における画像処理回路２２の動作について説明する。
【０１４５】
図２６に示した第３の具体例の画像処理回路２２では、フィルタ処理部３２→解像度変換処理部３３という順番でパイプライン処理が実行される。このとき、フィルタ処理部３２は、外部メモリ１３から読み出した入力画像ＩＰに対して、フィルタサイズが５画素×５画素に設定されたフィルタ処理を実行する。フィルタ処理部３２は、フィルタ処理後の中間画像ＭＰを所定サイズのブロックの単位で内蔵メモリ５０のバッファ領域５１に格納する。続いて、解像度変換処理部３３は、バッファ領域５１から読み出した中間画像ＭＰに対して、バイリニア法を用いて、拡大率が１／２倍に設定された解像度変換処理（縮小処理）を実行する。そして、解像度変換処理部３３は、解像度変換処理後の画像データを出力画像ＯＰとして外部メモリ１３に格納する。
【０１４６】
ここで、フィルタ処理部３２から出力される中間画像ＭＰについて説明する。
図２７（ａ）に示した中間画像ＭＰは、複数の画素（ここでは、１２画素×１２画素）が水平方向及び垂直方向に２次元状に配列された画像データである。中間画像ＭＰでは、所定のサイズのブロックｂが水平方向に６個配列され、ブロックｂが垂直方向に６個配列されている。なお、図２７（ａ）では、水平位置Ｈ（Ｈ＝０〜５）及び垂直位置Ｖ（Ｖ＝０〜５）を用いて、各ブロックｂを「ｂＶＨ」として示している。なお、以下の説明では、ブロックｂＶＨ（つまり、ブロックｂ００〜ｂ０５，ｂ１０〜ｂ１５，ｂ２０〜ｂ２５，ｂ３０〜ｂ３５，ｂ４０〜ｂ４５，ｂ５０〜ｂ５５）を総称する場合には、ブロックｂと称する。また、以下の説明では、中間画像ＭＰにおける水平方向の座標をＸ座標、中間画像ＭＰにおける垂直方向の座標をＹ座標としたときに、中間画像ＭＰ内の各画素データを、座標（Ｘ座標，Ｙ座標）の画素データと称する。
【０１４７】
複数のブロックｂでは、水平方向の画素数（サイズ）を異なるサイズに設定することが可能であり、垂直方向の画素数（サイズ）を異なるサイズに設定することが可能である。但し、図２７（ａ）に示した例では、全てのブロックｂが同じサイズ（ここでは、２画素×２画素）に設定されている。このブロックｂのサイズは、下流の解像度変換処理部３３からブロック（ここでは、１画素データ）毎に出力画像ＯＰを出力可能なサイズに設定されている。
【０１４８】
このように、複数のブロックｂは、中間画像ＭＰが水平方向及び垂直方向に分割されたものである。すなわち、各ブロックｂは、中間画像ＭＰ全体の水平方向の画素数（ここでは、１２画素）よりも少ない画素が水平方向に配列され、中間画像ＭＰ全体の垂直方向の画素数（ここでは、１２画素）よりも少ない画素が垂直方向に配列された短冊状（矩形状）の領域となっている。
【０１４９】
中間画像ＭＰは、ブロックｂの単位でフィルタ処理部３２から順次出力される。例えば、複数のブロックｂは、図２７（ｂ）に矢印で示すように、水平方向の図中左から右、及び垂直方向の図中上から下に向かってラスタースキャンの順序に従って順次出力される。具体的には、複数のブロックｂは、ブロックｂ００→ｂ０１→ｂ０２→…→ｂ０５という順番で順次出力され、続いて、ブロックｂ１０→ｂ１１→ｂ１２→…→ｂ１５という順番で順次出力される。さらに、各ブロックｂに含まれる複数の画素は、上述したラスタースキャンの順序と同様に左上から右下に向かって順次処理される。具体的には、ブロックｂ００では、座標（０，０）→座標（１，０）の画素データが順次出力され、続いて、垂直方向に沿って座標を１画素分シフトさせ、座標（０，１）→座標（１，１）の画素データが順次出力される。
【０１５０】
図２８に示すように、バッファ領域５１は、８画素分のデータを格納可能なメモリ領域である。具体的には、内蔵メモリ５０のアドレス「０」からアドレス「８」までの領域がバッファ領域５１となる。このとき、バッファ領域５１の水平サイズＨ１は、中間画像ＭＰ全体の水平方向の画素数（ここでは、１２画素）よりも小さい画素数（ここでは、４画素）が格納可能なサイズに設定されている。また、バッファ領域５１の垂直サイズＶ１は、垂直方向の２画素分のデータが格納可能なサイズに設定されている。
【０１５１】
バッファ領域５１は、短冊状の複数個の短冊バッファＡ０，Ａ１を有している。各短冊バッファＡ０，Ａ１の垂直方向のサイズは、バッファ領域５１の垂直サイズＶ１と同一のサイズに設定されている。また、各短冊バッファＡ０，Ａ１の水平方向のサイズは、中間画像ＭＰのブロックｂの水平方向のサイズ（ここでは、２画素）と同一のサイズに設定されている。これら短冊バッファＡ０，Ａ１には、多数のブロックｂの画素データが循環的に格納される。
【０１５２】
次に、バッファ領域５１を上述したサイズに設定した理由について説明する。
まず、図２９に示すように、バイリニア法を用いて、拡大率が１／２倍に設定された解像度変換処理では、入力画像の座標（０，０）〜（１，１）の４画素を用いて出力画像の座標（０，０）の画素値が算出される。また、上記解像度変換処理では、入力画像の座標（０，２）〜（１，３）の４画素を用いて出力画像の座標（０，１）の画素値が算出される。すなわち、拡大率が１／２倍である場合には、垂直重複ラインを必要としない。この場合には、バッファ領域５１の水平サイズＨ１は、中間画像ＭＰ全体の水平方向のサイズよりも小さいサイズに設定することができる。例えば、バッファ領域５１の水平サイズＨ１は、ブロックｂの水平方向のサイズ（ここでは、２画素）よりも多い画素数（ここでは、４画素）を格納可能なサイズに設定される。また、本例のバッファ領域５１の垂直サイズＶ１は、ブロックｂの垂直方向のサイズ（ここでは、２画素）を格納可能なサイズに設定される。すなわち、本例のバッファ領域５１は、中間画像ＭＰの２個分のブロックｂの画素データを格納可能なサイズに設定される。但し、バッファ領域５１のサイズは、パイプライン処理における上流の処理部との処理速度差の変動を吸収できるサイズであれば特に限定されず、例えば、ブロックｂのサイズの倍数である必要はない。
【０１５３】
次に、図２６〜図３０に従って、中間画像ＭＰの内蔵メモリ５０への格納方法について詳述する。
図２６に示したパイプライン処理が開始されると、フィルタ処理部３２は、まず、中間画像ＭＰの左上のブロックｂ００に対応する入力画像ＩＰを外部メモリ１３から読み出し、その入力画像ＩＰに対してフィルタ処理を実行する。そして、フィルタ処理部３２は、フィルタ処理後の画像データ、つまり中間画像ＭＰをブロックｂの単位で出力し、そのブロックｂをバッファ領域５１に格納する。具体的には、図３０に示すように、フィルタ処理部３２は、まず、ブロックｂ００内の座標（０，０）〜座標（１，０）までのフィルタ処理後の画素データをバッファ領域５１に格納する。このとき、フィルタ処理部３２からは、フィルタ処理後の画素データと併せて、その画素データの中間画像ＭＰにおけるＸＹ座標が出力される。そして、アドレス演算器４３では、フィルタ処理部３２からのＸＹ座標に基づいて、上述した式１を用いて内蔵メモリ５０のアドレスＡＤＤが算出され、そのアドレスＡＤＤで指定される内蔵メモリ５０の領域にフィルタ処理後の画素データが格納される。なお、本例の式１では、バッファ領域５１の水平サイズＨ１が「４」、バッファ領域５１の垂直サイズＶ１が「２」、バッファ領域５１の開始アドレス、つまりアドレスオフセットｏｆｓが「０」となる。
【０１５４】
図２７（ｃ）は、中間画像ＭＰの各画素データのＸＹ座標と、内蔵メモリ５０（バッファ領域５１）のアドレスＡＤＤとの対応を示した図である。図２７（ｃ）では、中間画像ＭＰ内に示した数字が内蔵メモリ５０（バッファ領域５１）のアドレスＡＤＤを示している。
【０１５５】
図２７（ｃ）に示すように、中間画像ＭＰの座標（０，０）、（１，０）の画素データは、内蔵メモリ５０のアドレス「０」、「１」に順次格納される。すなわち、図３０（ａ）に示すように、ブロックｂ００の１ライン目の画素データは、バッファ領域５１の短冊バッファＡ０の１ライン目に格納される。続いて、ブロックｂ００の１ライン目の処理が終了すると、ブロックｂ００の２ライン目の処理が実行される。これにより、ブロックｂ００の２ライン目の画素データが、短冊バッファＡ０の２ライン目に格納される。
【０１５６】
次いで、ブロックｂ００の２ライン目の処理が終了すると（図中黒丸参照）、解像度変換処理部３３による解像度変換処理が開始される。すなわち、解像度変換処理部３３は、フィルタ処理部３２から処理済座標ＦＣ２として例えば座標（１，１）が入力されると、リード調停部４２Ｂに読み出し要求を発行し、バッファ領域５１からの中間画像ＭＰの読み出しを開始する。解像度変換処理部３３は、バッファ領域５１に格納されたブロックｂ００の１，２ライン目の画素データを読み出し、それら１，２ライン目の画素データを用いて解像度変換処理を実行する。これにより、出力画像ＯＰの座標（０，０）の画素データが解像度変換処理部３３から出力され、その画素データが外部メモリ１３に格納される。ここで、出力画像ＯＰの座標（０，０）の画素データが外部メモリ１３に格納されると、これ以降の解像度変換処理においてブロックｂ００の１，２ライン目の画素データは不要となる。このため、解像度変換処理部３３は、ブロックｂ００の２ライン目の最後の座標（１，１）を不要座標ＮＣ２としてフィルタ処理部３２に出力する。そして、フィルタ処理部３２は、不要座標ＮＣ２として座標（１，１）が入力されると、ブロックｂ００の１，２ライン目の画素データが格納されている短冊バッファＡ０の全領域に対する上書きを許可する。
【０１５７】
また、ブロックｂ００の処理が終了すると、ブロックｂ０１の処理が実行される。これにより、ブロックｂ０１の１，２ライン目の画素データがバッファ領域５１の短冊バッファＡ１の１，２ライン目に順次格納される。そして、ブロックｂ０１の最終ラインの処理が終了すると（図中黒丸参照）、出力画像ＯＰの座標（１，０）の画素データに対する処理が実行され、その画素データが外部メモリ１３に格納される。ここで、出力画像ＯＰの座標（１，０）の画素データが外部メモリ１３に格納されると、これ以降の解像度変換処理においてブロックｂ０１の１，２ライン目の画素データは不要となる。このため、フィルタ処理部３２は、解像度変換処理部３３からの不要座標ＮＣ２（ここでは、座標（３，１））に基づいて、ブロックｂ０１の画素データが格納されている短冊バッファＡ１の全領域に対する上書きを許可する。
【０１５８】
また、図３０（ｂ）に示すように、ブロックｂ０１の処理が終了すると、ブロックｂ０２の処理が実行される。これにより、ブロックｂ０２の１，２ライン目の画素データが短冊バッファＡ０の１，２ライン目に順次格納される。すなわち、ブロックｂ０２の画素データは、ブロックｂ００の画素データが格納されていた短冊バッファＡ０に上書きされる。ここで、解像度変換処理部３３から出力画像ＯＰの座標（０，０）が出力された時点（図３０（ａ）参照）で、短冊バッファＡ０の全領域に対する上書きが許可されているため、待ち時間を設けることなく、ブロックｂ０２の画素データを短冊バッファＡ０に格納することができる。
【０１５９】
図示は省略するが、以後も同様に、中間画像ＭＰの各ブロックｂに対して処理が実行され、各ブロックｂの画素データが短冊バッファＡ１→Ａ０→Ａ１→Ａ０の順番に循環的に格納される。
【０１６０】
なお、以上説明した第３の具体例において、フィルタ処理部３２は第１処理部の一例、解像度変換処理部３３は第２処理部の一例、中間画像ＭＰは中間画像の一例、出力画像ＯＰは第２画像処理後の画像データの一例である。また、ブロックｂは第１ブロックの一例、出力画像ＯＰの各画素データは第２ブロックの一例、バッファ領域５１はバッファ領域の一例、フィルタ処理部３２によるフィルタ処理は第１画像処理の一例、解像度変換処理部３３による解像度変換処理は第２画像処理の一例である。
【０１６１】
以上説明した本実施形態によれば、以下の効果を奏することができる。
（１）パイプライン処理において、上流の処理部から処理済座標ＦＣ１，ＦＣ２としてＸＹ座標を出力し、そのＸＹ座標に基づいて下流の処理部における画像処理を開始するようにした。これにより、下流の処理部における待ち時間を従来技術に比べて短くすることができる。例えば、従来技術では、図３１に示すように、図中破線丸で示した画素データに対して上流の処理部による処理が終了するまでは、図中三角で示した画素データに対する下流の処理部による処理を実行することができない。これに対し、本例では、図中白丸で示した画素データに対して上流の処理部による処理が終了すると、図中三角で示した画素データに対する下流の処理部による処理を開始することができる。
【０１６２】
（２）パイプライン処理において、下流の処理部から不要座標ＮＣ１，ＮＣ２としてＸＹ座標を出力し、そのＸＹ座標に基づいて上流の処理部においてバッファ領域の上書きを許可するようにした。これにより、上流の処理部における待ち時間を短くすることができる。
【０１６３】
（３）式１を用いてバッファ領域のアドレスＡＤＤを算出し、そのアドレスＡＤＤに中間画像を格納するようにした。これにより、中間画像を格納するためのバッファ領域のサイズを小さくすることができる。この結果、内蔵メモリ５０のメモリ容量を小さくすることができる。
【０１６４】
（４）ところで、上記式２を用いて内蔵メモリ５０のアドレスを算出し、そのアドレスに中間画像を格納する場合には、バッファ領域が２のべき乗単位のサイズに制限されてしまう。これに対し、本例では、任意サイズのバッファ領域５１，５２（短冊バッファＡ０〜Ａ５，Ｂ０〜Ｂ５）をリングバッファとして機能させるためのアドレス演算、つまり式１を用いて内蔵メモリ５０のアドレスＡＤＤを算出するため、バッファ領域５１，５２のサイズは２のべき乗単位のサイズに制約されない。これにより、バッファ領域５１，５２のサイズ選択の自由度を向上させることができる。すなわち、図３２（ａ）及び図３２（ｂ）に示すように、内蔵メモリ５０の分割方法の自由度を向上させることができ、内蔵メモリ５０の分割位置を自由に設定することができる。
【０１６５】
（５）また、式１では、中間画像ＭＰ１，ＭＰ２毎に、内蔵メモリ５０の開始アドレスをアドレスオフセットｏｆｓとして加算するようにした。これにより、例えば各バッファ領域５１，５２が２のべき乗単位のサイズでない場合であっても、複数のバッファ領域５１，５２を連続した領域に割り当てることができる。したがって、各バッファ領域５１，５２のサイズに制限されることなく、内蔵メモリ５０のメモリ容量を効率的に使用することができる。
【０１６６】
（６）画像処理部３０における処理内容に応じて、バッファ領域５１，５２のサイズとブロックＢＫ，ＢＬのサイズを適宜調整するようにした。
例えば、上流のブレンド処理部３１から出力される各ブロックＢＫのサイズを、下流のフィルタ処理部３２から各ブロックＢＬを出力可能なサイズに設定するようにした。また、バッファ領域５１の垂直サイズＶ１を、ブロックＢＫの垂直サイズＶＳ１に、下流のフィルタ処理における垂直重複ラインを加えたサイズに設定するようにした。これにより、例えば、短冊バッファＡ０にブロックＢＫ００，ＢＫ１０を循環的に格納した際に、垂直方向に隣接するブロックＢＬ１０，ＢＬ２０に対する処理で重複して使用される画素データを短冊バッファＡ０内に確実に残すことができる。
【０１６７】
（他の実施形態）
なお、上記実施形態は、これを適宜変更した以下の態様にて実施することもできる。
・上記実施形態における不要座標ＮＣ１，ＮＣ２の出力を省略してもよい。
【０１６８】
・上記実施形態の式１において、アドレスオフセットｏｆｓの加算を省略してもよい。この場合には、例えば、各処理部３１〜３４から出力される中間画像を、中間画像毎に予め設定された固定の領域に格納するようにしてもよい。
【０１６９】
・上記実施形態では、中間画像の全てを内蔵メモリ５０に格納するようにした。これに限らず、例えば中間画像の一部を外部メモリ１３に格納するようにしてもよい。
・上記実施形態において、ＣＰＵ２３における処理内容の少なくとも一部を他の処理部（例えば、制御部４０等）にて処理するようにしてもよい。
【０１７０】
・上記実施形態の各処理部３１〜３４における処理順序は一例であり、適宜変更可能である。例えば、図５に示す中間画像ＭＰ１を右下から左上に向かって処理してもよい。この場合、最初に処理するブロックを、例えば、右下のブロックＢＫ５５とする。また、上記実施形態では、例えば、複数のブロックＢＫに対する処理順序を、最初に進む処理方向が水平方向となる処理順序としたが、最初に進む処理方向が垂直方向となる処理順序であってもよい。
【符号の説明】
【０１７１】
１２  画像処理プロセッサ
１３  外部メモリ
２２  画像処理回路
２３  ＣＰＵ
３０  画像処理部
３１  ブレンド処理部
３２  フィルタ処理部
３３  解像度変換処理部
３４  コーデック処理部
４０  制御部
４３  アドレス演算器
４４  内蔵メモリ制御部
５０  内蔵メモリ
５１，５２  バッファ領域
Ａ０〜Ａ５，Ｂ０〜Ｂ５  短冊バッファ
ＢＫ，ＢＬ，ｂ  ブロック
ＭＰ，ＭＰ１，ＭＰ２  中間画像
ＩＰ  入力画像
ＯＰ  出力画像
ＦＣ１，ＦＣ２  処理済座標
ＮＣ１，ＮＣ２  不要座標
【図１】
0006350151.tif 000002
【図２】
0006350151.tif 000003
【図３】
0006350151.tif 000004
【図４】
0006350151.tif 000005
【図５】
0006350151.tif 000006
【図６】
0006350151.tif 000007
【図７】
0006350151.tif 000008
【図８】
0006350151.tif 000009
【図９】
0006350151.tif 000010
【図１０】
0006350151.tif 000011
【図１１】
0006350151.tif 000012
【図１２】
0006350151.tif 000013
【図１３】
0006350151.tif 000014
【図１４】
0006350151.tif 000015
【図１５】
0006350151.tif 000016
【図１６】
0006350151.tif 000017
【図１７】
0006350151.tif 000018
【図１８】
0006350151.tif 000019
【図１９】
0006350151.tif 000020
【図２０】
0006350151.tif 000021
【図２１】
0006350151.tif 000022
【図２２】
0006350151.tif 000023
【図２３】
0006350151.tif 000024
【図２４】
0006350151.tif 000025
【図２５】
0006350151.tif 000026
【図２６】
0006350151.tif 000027
【図２７】
0006350151.tif 000028
【図２８】
0006350151.tif 000029
【図２９】
0006350151.tif 000030
【図３０】
0006350151.tif 000031
【図３１】
0006350151.tif 000032
【図３２】
0006350151.tif 000033
【図３３】
0006350151.tif 000034
【図３４】
0006350151.tif 000035