(57)【要約】  【構成】  Ｄ１−Ｉ／Ｆ４４ｂは、撮影操作によって取得された１画面の被写界像データをＳＤＲＡＭ５８に書き込み、バッファ回路６０および６２の各々は、指定数の画素の画素データをＳＤＲＡＭ５８から周期的に読み出す。読み出された画素データはフィルタ回路６８によって演算処理を施され、これによって所定数の画素の処理画素データが周期的に作成される。撮影操作に起因する被写界の振れ量は、ジャイロセンサ７２によって検出される。ＣＰＵ７０は、フィルタ回路６８の演算処理量をジャイロセンサ７２の検出結果に応じた量に設定し、ＳＤＲＡＭ５８からの読み出し画素数の指定をフィルタ回路６８の演算処理量に応じて変更する。  【効果】  手振れに起因する歪が現れている画像データに的確な補正処理を施すことができる。【選択図】  図１
2006333372.tif 000002
【特許請求の範囲】
【請求項１】
撮影操作によって取得された１画面の被写界像データをメモリエリアに書き込む第１書き込み手段、
指定数の画素の画素データを前記メモリエリアから周期的に読み出す読み出し手段、
前記読み出し手段によって読み出された画素データに演算処理を施して所定数の画素の処理画素データを周期的に作成する作成手段、
前記撮影操作に起因する被写界の振れ量を検出する検出手段、
前記作成手段の演算処理量を前記検出手段の検出結果に応じた量に設定する処理量設定手段、および
前記読み出し手段による読み出し画素数の指定を前記作成手段の演算処理量に応じて変更する第１数値変更手段を備える、画像処理装置。
【請求項２】
前記読み出し手段による読み出し周期を前記作成手段の演算処理量に応じて変更する周期変更手段をさらに備える、請求項１記載の画像処理装置。
【請求項３】
前記読み出し手段による読み出し画素は部分的に重複し、
重複する読み出し画素の数を前記作成手段の演算処理量に応じて変更する第２数値変更手段をさらに備える、請求項１または２記載の画像処理装置。
【請求項４】
前記読み出し手段によって読み出された画素データを格納する一時メモリをさらに備え、
前記読み出し手段は垂直画素方向に読み出しを行い、
前記作成手段は前記一時メモリに格納された画素データに対して前記演算処理を実行する、請求項１ないし３のいずれかに記載の画像処理装置。
【請求項５】
前記演算処理は２次元フィルタ処理である、請求項４記載の画像処理装置。
【請求項６】
前記被写界像データは各々が第１サイズを有する複数の水平ラインの画素データによって形成され、
各々が前記第１サイズよりも大きい第２サイズを有する複数のメモリブロックを前記メモリエリア上に割り当てる割り当て手段をさらに備える、請求項１記載の画像処理装置。
【請求項７】
前記第１書き込み手段は前記被写界像データを形成する複数の水平ラインの画素データを前記複数のメモリブロックにそれぞれ書き込み、
前記所定数は前記指定数よりも小さく、
前記作成手段によって作成された複数の水平ラインの処理画素データを前記複数のメモリブロックにそれぞれ書き込む第２書き込み手段、および
前記複数のメモリブロックの各々に対する前記第１書き込み手段の書き込み開始位置と前記複数のメモリブロックの各々に対する前記第２書き込み手段の書き込み開始位置との間にオフセットを確保する確保手段をさらに備える、請求項６記載の画像処理装置。
【請求項８】
前記読み出し手段よる読み出し画素の部分的な重複を指示する指示手段をさらに備える、請求項７記載の画像処理装置。
【請求項９】
前記読み出し手段による読み出し画素の指定数を前記画像データの水平方向中央部よりも前記画像データの水平方向端部において小さくする指定数変更手段をさらに備え、
前記読み出し手段は前記水平方向端部から読み出された画素データの画素数を増大させる増大手段を含む、請求項８記載の画像処理装置。
【請求項１０】
前記増大手段によって増大された画素数は前記第１数と一致する、請求項９記載の画像処理装置。
【請求項１１】
前記作成手段は前記読み出し手段の読み出し周期と同じ周期で前記所定数の水平画素の処理画素データを作成する、請求項１ないし１０のいずれかに記載の画像処理装置。
【請求項１２】
前記第１書き込み手段の書き込み開始位置は前記第２書き込み手段の書き込み開始位置よりも後方である、請求項１ないし１１のいずれかに記載の画像処理装置。
【請求項１３】
請求項１ないし１２のいずれかに記載の画像処理装置を備える、ディジタルカメラ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理装置に関し、特にたとえばディジタルカメラに適用され、画像データに２次元フィルタ処理を施す、画像処理装置に関する。
【背景技術】
【０００２】
従来のこの種の装置の一例が、特許文献１に開示されている。この従来技術によれば、画像データにフィルタ処理を施すときに、処理領域に応じてフィルタ係数が変更される。たとえば、画像の中央領域に注目するときは９×９タップが選択され、画像の端部領域に注目するときは３×３タップが選択される。これによって、画像の全域にわたって有効なフィルタ処理結果が得られる。
【特許文献１】特開２００１−７６１３５号公報［G06T 5/20, G01N 21/88, H04N 1/60］
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、従来技術の２次元フィルタ処理は、画像データに局所的に発生した光量ムラなどの欠陥を補正するために実行される。換言すれば、画像の全域に均一に発生した歪みの補正は想定しておらず、かかる歪みに適した処理動作についても何ら開示されていない。
【０００４】
それゆえに、この発明の主たる目的は、全域に均一に現れた歪みを的確に補正することができる、画像処理装置を提供することである。
【課題を解決するための手段】
【０００５】
請求項１の発明に従う画像処理装置(10)は、撮影操作によって取得された１画面の被写界像データをメモリエリア(58)に書き込む第１書き込み手段(44b, 56d)、指定数の画素の画素データをメモリエリアから周期的に読み出す読み出し手段(56d, 60, 62)、読み出し手段によって読み出された画素データに演算処理を施して所定数の画素の処理画素データを周期的に作成する作成手段(68)、撮影操作に起因する被写界の振れ量を検出する検出手段(72)、作成手段の演算処理量を検出手段の検出結果に応じた量に設定する処理量設定手段(S9, S17)、および読み出し手段による読み出し画素数の指定を作成手段の演算処理量に応じて変更する第１数値変更手段(S11, S19)を備える。
【０００６】
第１書き込み手段は、撮影操作によって取得された１画面の被写界像データをメモリエリアに書き込み、読み出し手段は、指定数の画素の画素データをメモリエリアから周期的に読み出す。読み出された画素データは作成手段によって演算処理を施され、これによって所定数の画素の処理画素データが周期的に作成される。撮影操作に起因する被写界の振れ量は、検出手段によって検出される。処理量設定手段は、作成手段の演算処理量を検出手段の検出結果に応じた量に設定し、第１数値設定手段は、読み出し手段による読み出し画素数の指定を作成手段の演算処理量に応じて変更する。
【０００７】
作成手段に求められる演算処理量は、被写界像データの品質つまり被写界の振れ量によって異なる。そこで、請求項１の発明では、被写界の振れ量を検出し、この検出結果に対応する演算処理量を作成手段に設定するようにしている。また、１回の演算処理に必要なデータ量は、設定された演算処理量に依存する。そこで、請求項１の発明では、読み出し手段による読み出し画素数の指定を作成手段の演算処理量に応じて変更するようにしている。
【０００８】
これによって、手振れに起因する歪が現れている画像データに的確な補正処理を施すことができる。
【０００９】
請求項２の発明に従う画像処理装置は、請求項１に従属し、読み出し手段による読み出し周期を作成手段の演算処理量に応じて変更する周期変更手段(S11, S19)をさらに備える。これによって、振れ量が小さいときに演算処理に要する時間を短縮できる。
【００１０】
請求項３の発明に従う画像処置装置は、請求項１または２に従属し、読み出し手段による読み出し画素は部分的に重複し、重複する読み出し画素の数を作成手段の演算処理量に応じて変更する第２数値変更手段(S15, S23)をさらに備える。これによって、処理画素の部分的な欠落を防止できる。
【００１１】
請求項４の発明に従う画像処理装置は、請求項１ないし３のいずれかに従属し、読み出し手段によって読み出された画素データを格納する一時メモリ(78a~78e, 80a~80e)をさらに備え、読み出し手段は垂直画素方向に読み出しを行い、作成手段は一時メモリに格納された画素データに対して演算処理を実行する。これによって、２次元の演算処理が可能となる。
【００１２】
請求項５の発明に従う画像処理装置は、請求項４に従属し、演算処理は２次元フィルタ処理である。
【００１３】
請求項６の発明に従う画像処理装置は、請求項１に従属し、被写界像データは各々が第１サイズを有する複数の水平ラインの画素データによって形成され、各々が第１サイズよりも大きい第２サイズを有する複数のメモリブロックをメモリエリア上に割り当てる割り当て手段(56f)をさらに備える。
【００１４】
請求項７の発明に従う画像処理装置は、請求項６に従属し、第１書き込み手段は被写界像データを形成する複数の水平ラインの画素データを複数のメモリブロックにそれぞれ書き込み、所定数は指定数よりも小さく、作成手段によって作成された複数の水平ラインの処理画素データを複数のメモリブロックにそれぞれ書き込む第２書き込み手段(64, 66, 56d)、および複数のメモリブロックの各々に対する第１書き込み手段の書き込み開始位置と複数のメモリブロックの各々に対する第２書き込み手段の書き込み開始位置との間にオフセットを確保する確保手段(56r)をさらに備える。
【００１５】
所定数は指定数よりも小さいため、作成手段によって作成される処理画素データの部分的な欠落を防止するには、指定数の水平画素の部分的な重複つまり一部の画素データの繰り返し読み出しが必要となる。そこで、メモリブロックのサイズを水平ラインの画素データのサイズよりも大きくし、第１書き込み手段の書き込み開始位置と第２書き込み手段の書き込み開始位置との間にオフセットを確保するようにしている。
【００１６】
この結果、繰り返し読み出しが必要な画素データが演算処理を施された画素データによって上書きされる事態を回避することができる。つまり、容量が少ないメモリエリアへの簡単なアクセス処理で、画像データに所望の演算処理を施すことができる。
【００１７】
請求項８の発明に従う画像処理装置は、請求項７に従属し、読み出し手段よる読み出し画素の部分的な重複を指示する指示手段(S11, S19)をさらに備える。これによって、画面全体にわたって演算処理が施された画像データが得られる。
【００１８】
請求項９の発明に従う画像処理装置は、請求項８に従属し、読み出し手段による読み出し画素の指定数を画像データの水平方向中央部よりも画像データの水平方向端部において小さくする指定数変更手段(S11, S15, S19, S23)をさらに備え、読み出し手段は水平方向端部から読み出された画素データの画素数を増大させる増大手段(60, 62)を含む。増大手段によって画素数を増大させることで、演算処理を施された画像データにおける解像度の劣化を防止できる。
【００１９】
請求項１０の発明に従う画像処理装置は、請求項９に従属し、増大手段によって増大された画素数は第１数と一致する。演算処理を施された画像データの解像度を演算処理を施される前の画像データの解像度と一致させることができる。
【００２０】
請求項１１の発明に従う画像処理装置は、請求項１ないし１０のいずれかに従属し、作成手段は読み出し手段の読み出し周期と同じ周期で所定数の水平画素の処理画素データを作成する。
【００２１】
請求項１２の発明に従う画像処理装置は、請求項１ないし１１のいずれかに従属し、第１書き込み手段の書き込み開始位置は第２書き込み手段の書き込み開始位置よりも後方である。
【００２２】
請求項１３の発明に従うディジタルカメラは、請求項１ないし１２のいずれかに記載の画像処理装置を備える。
【発明の効果】
【００２３】
この発明によれば、被写界の振れ量に対応する演算処理量を作成手段に設定し、読み出し手段による読み出し画素数の指定を作成手段の演算処理量に応じて変更するようにしたため、手振れに起因する歪が現れている画像データに高速かつ高性能の２次元フィルタ処理を施すことができる。
【００２４】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２５】
図１を参照して、この実施例のディジタルカメラ１０は、光学レンズ１２を含む。被写界の光学像は、光学レンズ１２を通してイメージセンサ１４の撮像面に入射する。撮像面では、被写界を表す電荷が光電変換によって生成される。
【００２６】
被写界を表すリアルタイム動画像（スルー画像）をＬＣＤモニタ３２に表示するとき、ＣＰＵ４０は、プリ露光の繰り返しと間引き読み出しとをＴＧ(Timing Generator)１６に命令する。ＴＧ１６は、垂直同期信号が発生する毎に撮像面にプリ露光を施し、これによって生成された電荷を間引き態様で読み出す。この結果、一部の電荷によって形成される低解像度の生画像信号が、イメージセンサ１４から周期的に出力される。
【００２７】
出力された生画像信号は、ＣＤＳ／ＡＧＣ／ＡＤ回路１８で相関２重サンプリング，自動ゲイン調整およびＡ／Ｄ変換の一連の処理を施され、これによってディジタル信号である生画像データが得られる。信号処理回路２０は、ＣＤＳ／ＡＧＣ／ＡＤ回路１８から出力された生画像データに色分離，白バランス調整，ＹＵＶ変換などの処理を施し、Ｙ：Ｕ：Ｖ＝４：２：２の比率を有する画像データを作成する。作成された画像データは、バッファ回路２２に一時的に蓄えられる。バッファ回路２２は、蓄積された画像データをバスＢ１を介して所定量ずつメモリ制御回路２４に与える。画像データは、メモリ制御回路２４によってＳＤＲＡＭ２６に書き込まれる。
【００２８】
バッファ回路２８は、ＳＤＲＡＭ２６に格納された画像データをバスＢ１およびメモリ制御回路２４を通して所定量ずつ読み出し、読み出された画像データをビデオエンコーダ３０に与える。ビデオエンコーダ３０は、与えられた画像データをコンポジットビデオ信号に変換し、変換されたコンポジットビデオ信号をＬＣＤモニタ３２に与える。この結果、スルー画像がモニタ画面に表示される。
【００２９】
キー入力装置４２によって撮影操作が行われると、ＣＰＵ４０は、１回の本露光と全画素読み出しとをＴＧ１６に命令する。ＴＧ１６は、撮像面に本露光を施し、これによって生成された電荷の全て読み出す。この結果、全ての電荷によって形成される高解像度の生画像信号がイメージセンサ１４から出力される。
【００３０】
出力された生画像信号は、上述と同様の処理を施される。つまり、ＣＤＳ／ＡＧＣ／ＡＤ回路１８によって相関２重サンプリング，自動ゲイン調整およびＡ／Ｄ変換の一連の処理を施され、信号処理回路２０によって色分離，白バランス調整，ＹＵＶ変換などの処理を施される。Ｙ：Ｕ：Ｖ＝４：２：２の比率を有する画像データは、バッファ回路２２，バスＢ１，メモリ制御回路２４を経てＳＤＲＡＭ２６に書き込まれる。
【００３１】
ＳＤＲＡＭ２６に格納された画像データはその後、後述する手振れ補正処理を施される。手振れ補正処理を施された画像データもまた、ＳＤＲＡＭ２６に格納される。
【００３２】
バッファ回路３４は、手振れ補正処理が施された画像データをバスＢ１およびメモリ制御回路２４を通して所定量ずつ読み出し、読み出された画像データをＪＰＥＧコーデック３６に与える。画像データは、ＪＰＥＧ方式に従って圧縮される。圧縮画像データつまりＪＰＥＧデータは、バッファ回路３８に一時的に蓄えられる。バッファ回路３８は、蓄積されたＪＰＥＧデータをバスＢ１を介して所定量ずつメモリ制御回路２４に与える。ＪＰＥＧデータは、メモリ制御回路２４によってＳＤＲＡＭ２６に書き込まれる。
【００３３】
ＣＰＵ４０は、ＳＤＲＡＭ２６に確保されたＪＰＥＧデータをバスＢ１およびメモリ制御回路２４を通して読み出し、読み出されたＪＰＥＧデータをＩ／Ｆ回路４６を通して記録媒体４８に記録する。
【００３４】
手振れ補正処理は、以下の要領で実行される。ＣＰＵ４０は、撮影操作が行われたとき、操作タイミング情報を含む撮影操作通知をＣＰＵ７０に向けて発行する。この通知は、バスＢ１，バスブリッジ５０，バスＢ２，バスＩ／Ｆ５４およびバスＢ３を介して、ＣＰＵ７０に与えられる。ＣＰＵ７０は、与えられた撮影操作通知を参照して撮影操作が行われたタイミングを特定し、特定されたタイミングにおけるジャイロセンサ７２の出力に基づいて撮影操作に起因する撮像面（被写界）の手振れ量を算出する。
【００３５】
検出された手振れ量が閾値を上回るときは“５×５”のタップ長が選択され、検出された手振れ量が閾値以下のときは“３×３”のタップ長が選択される。ＣＰＵ７０は、バスＢ３，バスＩ／Ｆ５４およびバスＢ２を通してＳＲＡＭ５２にアクセスし、決定されたタップ長に対応するフィルタ係数をＳＲＡＭ５２から読み出す。読み出されたフィルタ係数は、フィルタ回路６８に与えられる。
【００３６】
ＣＰＵ７０はまた、決定されたタップ長に対応するデータ読み出し周期，読み出しサイズおよび重複画素数をバッファ回路６０および６２に設定し、決定されたタップ長に対応するデータ書き込み周期，書き込みサイズおよび重複画素数をバッファ回路６４および６６に設定し、決定されたタップ長に対応する数値をデータ取得パラメータＴＲ＿１〜ＴＲ＿４の各々ならびにフィルタ処理パラメータＦ＿１〜Ｆ＿４の各々に設定する。
【００３７】
“５×５”のタップ長が選択されたときは、データ読み出し周期“Ｔ５”，読み出しサイズ“６８×５２”および重複画素数“４”がバッファ回路６０および６２に設定され、データ書き込み周期“Ｔ５”，書き込みサイズ“６４×４８”および重複画素数“０”がバッファ回路６４および６６に設定される。
【００３８】
“３×３”のタップ長が選択されたときは、データ読み出し周期“Ｔ３”，読み出しサイズ“６６×５０”および重複画素数“２”がバッファ回路６０および６２に設定され、データ書き込み周期“Ｔ３”，書き込みサイズ“６４×４８”および重複画素数“０”がバッファ回路６４および６６に設定される。
【００３９】
また、“５×５”のタップ長が選択されときは、開始ライン番号“０”および取得量“５０”がデータ取得パラメータＴＲ＿１に設定され、開始ライン番号“４６”および取得量“５２”がデータ取得パラメータＴＲ＿２に設定され、開始ライン番号“９４”および取得量“５２”がデータ取得パラメータＴＲ＿３に設定され、そして開始ライン番号“１４２”および取得量“５０”がデータ取得パラメータＴＲ＿４に設定される。
【００４０】
“３×３”のタップ長が選択されときは、開始ライン番号“０”および取得量“４９”がデータ取得パラメータＴＲ＿１に設定され、開始ライン番号“４７”および取得量“５０”がデータ取得パラメータＴＲ＿２に設定され、開始ライン番号“９５”および取得量“５０”がデータ取得パラメータＴＲ＿３に設定され、そして開始ライン番号“１４３”および取得量“４９”がデータ取得パラメータＴＲ＿４に設定される。
【００４１】
さらに、“５×５”のタップ長が選択されたときは、上側画素“２”，右側画素“２”および左側画素“２”がフィルタ処理パラメータＦ＿１に設定され、右側画素“２”および左側画素“２”がフィルタ処理パラメータＦ＿２およびＦ＿３の各々に設定され、下側画素“２”，右側画素“２”および左側画素“２”がフィルタ処理パラメータＦ＿４に設定される。
【００４２】
“３×３”のタップ長が選択されたときは、上側画素“１”，右側画素“１”および左側画素“１”がフィルタ処理パラメータＦ＿１に設定され、右側画素“１”および左側画素“１”がフィルタ処理パラメータＦ＿２およびＦ＿３の各々に設定され、下側画素“１”，右側画素“１”および左側画素“１”がフィルタ処理パラメータＦ＿４に設定される。
【００４３】
撮影操作に応答してＳＤＲＡＭ２６に確保される画像データは、水平２５６画素×垂直１９２ラインの解像度を有する。上述の開始ライン番号および取得量はそれぞれ、かかる画像データの垂直方向における開始画素位置および画素数を定義する。したがって、“５×５”のタップ長が選択されたときにデータ取得パラメータＴＲ＿１〜ＴＲ＿４によって規定される範囲は、垂直方向において図４（Ａ）に示すように部分的に重複する。また、“３×３”のタップ長が選択されたときにデータ取得パラメータＴＲ＿１〜ＴＲ＿４によって規定される範囲は、垂直方向において図４（Ｂ）に示すように部分的に重複する。
【００４４】
データ取得パラメータＴＲ＿１〜ＴＲ＿４の設定が完了すると、ＣＰＵ７０は、４つのデータ取得要求を図２（Ａ）または図３（Ａ）に示すタイミングでＤ１−Ｉ／Ｆ４４ａに向けて発行し、４つのフィルタ処理開始命令を図２（Ｃ）または図２（Ｃ）に示すタイミングでバッファ回路６０および６２の各々に向けて発行し、４つのデータ返送命令を図２（Ｅ）または図３（Ｅ）に示すタイミングでＤ１−Ｉ／Ｆ４４ｂに向けて発行する。図２（Ａ），図２（Ｃ）および図２（Ｅ）に示すタイミングは“５×５”のタップ長に対応し、図３（Ａ），図３（Ｃ）および図３（Ｅ）に示すタイミングは“３×３”のタップ長に対応する。
【００４５】
Ｄ１−Ｉ／Ｆ４４ａに向けて発行される４つのデータ取得要求は、データ取得パラメータＴＲ＿１〜ＴＲ＿４をそれぞれ含む。Ｄ１−Ｉ／Ｆ４４ａは、与えられたデータ取得要求のデータ取得パラメータによって規定される一部の画像データをメモリ制御回路２４を通してＳＤＲＡＭ２６から読み出す。読み出された画像データは、図２（Ｂ）または図３（Ｂ）に示すタイミングで、Ｄ１−Ｉ／Ｆ４４ｂおよびメモリ制御回路５６を通してＳＤＲＡＭ５８に書き込まれる。
【００４６】
バッファ回路６０および６２の各々に向けて発行される４つのフィルタ処理開始命令は、フィルタ処理パラメータＦ＿１〜Ｆ＿４をそれぞれ含む。バッファ回路６０および６２の各々は、フィルタ処理開始命令が与えられる毎に、ＳＤＲＡＭ５８に格納された画像データを読み出す。読み出し周期，読み出しサイズ，および重複画素数は、ＣＰＵ７０の設定に従う。画像データを形成するＹデータおよびＵ／Ｖデータは、バッファ回路６０および６２によってそれぞれ読み出される。
【００４７】
フィルタ処理回路６８は、バッファ回路６０および６２からＹデータおよびＵ／Ｖデータをそれぞれ入力し、入力されたＹデータおよびＵ／Ｖデータに２次元フィルタ処理を施す。この処理には、ＣＰＵ７０によって設定されたフィルタ係数が用いられる。“５×５”のタップ長が選択されたときは水平５画素×垂直５ライン毎のフィルタ処理が行われ、“３×３”のタップ長が選択されたときは水平３画素×垂直３ライン毎のフィルタ処理が行われる。
【００４８】
フィルタ処理を施されたＹデータはバッファ回路６４，バスＢ４およびメモリ制御回路５６を通してＳＤＲＡＭ５８に戻され、フィルタ処理を施されたＵ／Ｖデータはバッファ回路６６，バスＢ４およびメモリ制御回路５６を通してＳＤＲＡＭ５８に戻される。書き込み周期，書き込みサイズ，および重複画素数は、ＣＰＵ７０の設定に従う。
【００４９】
Ｄ１−Ｉ／Ｆ４４ｂは、データ返送命令が発行される毎に、フィルタ処理を施された画像データをメモリ制御回路５６を通してＳＤＲＡＭ５８から読み出す。読み出された画像データは、Ｄ１−Ｉ／Ｆ４４ａ，バスＢ１およびメモリ制御回路２４を通してＳＤＲＡＭ２６に書き込まれる。つまり、フィルタ処理を施された画像データは、図２（Ｆ）または図３（Ｆ）に示すタイミングでＳＤＲＡＭ５８からＳＤＲＡＭ２６に転送される。
【００５０】
図２（Ａ）〜図２（Ｃ）および図４（Ａ）から分かるように、“５×５”のタップ長が選択されたとき、フィルタ処理パラメータＦ＿１に対応して注目される画像データは第０ライン〜第４９ラインの画像データであり、フィルタ処理パラメータＦ＿２に対応して注目される画像データは第４６ライン〜第９７ラインの画像データであり、フィルタ処理パラメータＦ＿３に対応して注目される画像データは第９４ライン〜第１４５ラインの画像データであり、そしてフィルタ処理パラメータＦ＿４に対応して注目される画像データは第１４２ライン〜第１９１ラインの画像データである。
【００５１】
また、図３（Ａ）〜図３（Ｃ）および図４（Ｂ）から分かるように、“３×３”のタップ長が選択されたとき、フィルタ処理パラメータＦ＿１に対応して注目される画像データは第０ライン〜第４８ラインの画像データであり、フィルタ処理パラメータＦ＿２に対応して注目される画像データは第４７ライン〜第９６ラインの画像データであり、フィルタ処理パラメータＦ＿３に対応して注目される画像データは第９５ライン〜第１４４ラインの画像データであり、そしてフィルタ処理パラメータＦ＿４に対応して注目される画像データは第１４３ライン〜第１９１ラインの画像データである。
【００５２】
バッファ回路６０および６２はそれぞれ、フィルタ処理パラメータＦ＿１〜Ｆ＿４を参照して、図４（Ａ）または図４（Ｂ）に斜線で示す周辺領域の画素が直近の画素によって補完されるように、ＹデータおよびＵ／Ｖデータを読み出す。“５×５”のタップ長が選択されたときは２画素が周辺領域に割り当てられ、“３×３”のタップ長が選択されたときは１画素が周辺領域に割り当てられる。したがって、“５×５”のタップ長が選択されたときに発行されるフィルタ処理開始命令に対して注目される画像データのライン数はいずれも“５２”である。また、“３×３”のタップ長が選択されたときに発行されるフィルタ処理命令に対して注目される画像データのライン数はいずれも“５０である。
【００５３】
“５×５”のタップ長が選択されたとき、バッファ回路６０および６２は、設定された読み出しサイズ“６８×５２”に基づいて、注目する５２ラインの画像データを水平６８画素ずつ垂直方向に走査する。同時に設定された重複画素数は“４”であるため、水平方向には図４（Ａ）に示すように４画素の重複が生じる。水平６８画素のＹデータおよびＵ／Ｖデータは、データ読み出し周期Ｔ５でフィルタ回路６８に与えられる。
【００５４】
また、“３×３”のタップ長が選択されたとき、バッファ回路６０および６２は、設定された読み出しサイズ“６６×５０”に基づいて、注目する５０ラインの画像データを水平６６画素ずつ垂直方向に走査する。同時に設定された重複画素数は“２”であるため、水平方向には図４（Ｂ）に示すように２画素の重複が生じる。水平６６画素のＹデータおよびＵ／Ｖデータは、データ読み出し周期Ｔ３でフィルタ回路６８に与えられる。
【００５５】
フィルタ回路６８は、“５×５”のタップ長が選択されたとき水平６８画素×垂直５２ラインの画像データに基づいて水平６４画素×垂直４８ラインの処理画像データを作成し、“３×３”のタップ長が選択されたとき水平６６画素×垂直５０ラインの画像データに基づいて水平６４画素×垂直４８ラインの処理画像データを作成する。
【００５６】
バッファ回路６４は、フィルタ処理を施されたＹデータをＳＤＲＡＭ５８に書き込むとき、水平６４画素ずつ垂直画素方向に走査する。同様に、バッファ回路６６は、フィルタ処理を施されたＵ／ＶデータをＳＤＲＡＭ５８に書き込むとき、水平６４画素ずつ垂直画素方向に走査する。“５×５”のタップ長が選択されたときは、データ書き込み周期Ｔ５が経過する毎に６４画素のＹデータまたはＵ／ＶデータがＳＤＲＡＭ５８に書き込まれる。“３×３”のタップ長が選択されたときは、データ書き込み周期Ｔ３が経過する毎に６４画素のＹデータまたはＵ／ＶデータがＳＤＲＡＭ５８に書き込まれる。
【００５７】
この結果、図４（Ａ）に示す水平２６０画素×垂直１９６ラインの画像データまたは図４（Ｂ）に示す水平２５８画素×垂直１９４ラインの画像データに基づいて、図５に示す水平２５６画素×垂直１９２ラインの処理画像データが得られる。
【００５８】
ＣＰＵ７０は、詳しくは図６〜図７に示すフィルタ処理タスクを含む複数のタスクを並列的に実行する。なお、これらのタスクに対応する制御プログラムは、図示しないフラッシュメモリに記憶される。
【００５９】
撮影操作通知がＣＰＵ４０から与えられると、ステップＳ１からステップＳ３に進み、撮影操作通知に含まれる操作タイミング情報を参照して、撮影操作が行われたタイミングでのジャイロセンサ７２の出力を検出する。ステップＳ５では、検出されたジャイロセンサ７２の出力に基づいて撮影操作に起因する手振れ量を算出する。ステップＳ７では算出された手振れ量が閾値ＴＨを上回るか否かを判別し、ＹＥＳであればステップＳ９に進む一方、ＮＯであればステップＳ１７に進む。
【００６０】
ステップＳ９ではタップ長を“５×５”とし、ステップＳ１１ではデータ読み出し周期，読み出しサイズおよび重複画素数をそれぞれ“Ｔ５”，“６８×５２”および“４”とし、ステップＳ１３ではデータ書き込み周期，書き込みサイズおよび重複画素数をそれぞれ“Ｔ５”，“６４×４８”および“０”とする。ステップＳ１５ではデータ取得パラメータＴＲ＿１〜ＴＲ＿４を“５×５”のタップ長に対応する数値に設定し、ステップＳ２５ではフィルタ処理パラメータＦ＿１〜Ｆ＿４を“５×５”のタップ長に対応する数値に設定する。
【００６１】
一方、ステップＳ１７ではタップ長を“３×３”とし、ステップＳ１９ではデータ読み出し周期，読み出しサイズおよび重複画素数を“Ｔ３”，“６６×５０”および“２”とし、ステップＳ２１ではデータ書き込み周期，書き込みサイズおよび重複画素数を“Ｔ３”，“６４×４８”および“０”する。ステップＳ２３ではデータ取得パラメータＴＲ＿１〜ＴＲ＿４を“３×３”のタップ長に対応する数値に設定し、ステップＳ２７ではフィルタ処理パラメータＦ＿１〜Ｆ＿４を“３×３”のタップ長に対応する数値に設定する。
【００６２】
ステップＳ９またはＳ１７の処理によって、所望のタップ長に対応するフィルタ係数がフィルタ回路６８に設定される。ステップＳ１１またはＳ１９の処理によって、所望のデータ読み出し周期，読み出しサイズおよび重複画素数がバッファ回路６０および６２に設定される。ステップＳ１３またはＳ２１の処理によって、所望のデータ書き込み周期，書き込みサイズおよび重複画素数がバッファ回路６４および６６に設定される。
【００６３】
ステップＳ１５の処理では、データ取得パラメータＴＲ＿１は開始ライン番号および取得量として“０”および“５０”をそれぞれ有し、データ取得パラメータＴＲ＿２は開始ライン番号および取得量として“４６”および“５２”をそれぞれ有し、データ取得パラメータＴＲ＿３は開始ライン番号および取得量として“９４”および“５２”をそれぞれ有し、データ取得パラメータＴＲ＿４は開始ライン番号および取得量として“１４２”および“５０”をそれぞれ有する。
【００６４】
また、ステップＳ２５の処理では、フィルタ処理パラメータＦ＿１は上側補完画素数，右側補完画素数および左側補完画素数として“２”を有し、フィルタ処理パラメータＦ＿２およびＦ＿３の各々は右側補完画素数および左側補完画素数として“２”を有し、フィルタ処理パラメータＦ＿４は下側補完画素数，右側補完画素数および左側補完画素数として“２”を有する。
【００６５】
ステップＳ２３の処理では、データ取得パラメータＴＲ＿１は開始ライン番号および取得量として“０”および“４９”をそれぞれ有し、データ取得パラメータＴＲ＿２は開始ライン番号および取得量として“４７”および“５０”をそれぞれ有し、データ取得パラメータＴＲ＿３は開始ライン番号および取得量として“９５”および“５０”をそれぞれ有し、データ取得パラメータＴＲ＿４は開始ライン番号および取得量として“１４３”および“４９”をそれぞれ有する。
【００６６】
また、ステップＳ２７の処理では、フィルタ処理パラメータＦ＿１は上側補完画素数，右側補完画素数および左側補完画素数として“１”を有し、フィルタ処理パラメータＦ＿２およびＦ＿３の各々は右側補完画素数および左側補完画素数として“１”を有し、フィルタ処理パラメータＦ＿４は下側補完画素数，右側補完画素数および左側補完画素数として“１”を有する。
【００６７】
ステップＳ２９では変数Ｘを“１”に設定し、ステップＳ３１ではデータ取得パラメータを“ＴＲ＿Ｘ”とするデータ取得命令をＤ１−Ｉ／Ｆ４４ａに向けて発行する。この結果、“ＴＲ＿Ｘ”によって指定された範囲に属する一部の画像データが、ＳＤＲＡＭ２６からＳＤＲＡＭ５８に転送される。
【００６８】
ステップＳ３３では所定時間待機し、続くステップＳ３３ではフィルタ処理パラメータを“Ｆ＿Ｘ”とするフィルタ処理開始命令をバッファ回路６０および６２に向けて発行する。ＳＤＲＡＭ５８に格納された画像データは、設定されたデータ読み出し周期，読み出しサイズおよび重複画素数に従う態様で読み出され、フィルタ回路６８によって２次元フィルタ処理を施される。処理された画像データはバッファ回路６４および６６に与えられ、設定されたデータ書き込み周期，書き込みサイズおよび重複画素数に従う態様でＳＤＲＡＭ５８に戻される。ＳＤＲＡＭ５８には、水平６４画素×垂直４８ラインの処理画像データが確保される。
【００６９】
ステップＳ３７では水平６４画素×垂直４８ラインの処理画像データが得られたか否かを判断し、ＹＥＳであればステップＳ３９でＤ１−Ｉ／Ｆ４４ｂに向けてデータ返送命令を発行する。ＳＤＲＡＭ５８に確保された処理画像データは、Ｄ１−Ｉ／Ｆ４４ｂによってＳＤＲＡＭ２６に転送される。
【００７０】
ステップＳ４１では、変数Ｘを“４”と比較する。変数Ｘが“４”に満たないときは、ステップＳ４３で変数Ｘをインクリメントし、ステップＳ３１に戻る。変数Ｘが“４”に達すると、ステップＳ１に戻る。
【００７１】
メモリ制御回路５６は、図８に示すように構成される。ＳＤＲＡＭ５８へのデータ書き込みを担うＤ１−Ｉ／Ｆ４４ｂ，バッファ回路６４および６６の各々は、“データ書き込み”のアクセス態様情報とアクセスする画素数を示す画素数情報と出力元の識別情報とを含むリクエストを調停回路５６ｃに与え、ｈｖ座標系のアドレスが記述されたアドレス情報をアドレス選択回路５６ｅに与え、そして書き込むべき画像データを３ステートバッファ５６ａに与える。
【００７２】
特に、バッファ回路６４および６６の各々は、“５×５”のタップ長が選択されたとき“６４”を示す画素数情報を含むリクエストをデータ書き込み周期Ｔ５で発行し、“３×３”のタップ長が選択されたとき“６４”を示す画素数情報を含むリクエストをデータ書き込み周期Ｔ３で発行する。アドレス情報は、書き込みサイズ“６４×４８”に基づく。
【００７３】
一方、ＳＤＲＡＭ５８からのデータ読み出しを担うＤ１−Ｉ／Ｆ４４ｂ，バッファ回路６０および６２の各々は、“データ読み出し”のアクセス態様情報とアクセスする画素数を示す画素数情報と出力元の識別情報とを含むリクエストを調停回路５６ｃに与え、ｈｖ座標系のアドレスが記述されたアドレス情報をアドレス選択回路５６ｅに与える。
【００７４】
特に、バッファ回路６０および６２の各々は、“５×５”のタップ長が選択されたとき“６８”を示す画素数情報を含むリクエストをデータ読み出し周期Ｔ５で発行し、“３×３”のタップ長が選択されたとき“６６”を示す画素数情報を含むリクエストをデータ読み出し周期Ｔ３で発行する。また、アドレス情報は、読み出しサイズ“６８×５２”または“６６×５０”に基づく。
【００７５】
なお、ＳＤＲＡＭ５８へのアクセス動作は、バースト転送態様で実行される。具体的には、１回のバーストアクセス動作によって、画素数情報によって指定される画素数に相当するデータ書き込み／データ読み出しが実行される。
【００７６】
調停回路５６ｃは、与えられた複数のリクエストの中から優先度が最も高いリクエストを選択し、選択されたリクエストの出力元に承認信号ＡＣＫを返送し、選択されたリクエストに対応するアドレス情報の選択をアドレス選択回路５６ｅに命令し、そして選択されたリクエストに含まれるアクセス態様情報に従うアクセス動作をメモリアクセス回路５６ｄに命令する。選択されたリクエストがＤ１−Ｉ／Ｆ４４ｂからＳＤＲＡＭ５８への書き込みのリクエストであれば、調停回路５６ｃは、オフセットの確保をアドレス変換回路５６ｆに命令する。
【００７７】
アドレス選択回路５６ｅは、与えられたアドレス情報の中から命令に従うアドレス情報を選択し、選択されたアドレス情報をアドレス変換回路５６ｆに与える。
【００７８】
アドレス変換回路５６ｆは、与えられたアドレス情報が示す水平アドレスおよび垂直アドレスを所定の演算式を用いてロウアドレスおよびカラムアドレスに変換する。オフセットの確保が命令されたとき、アドレス変換回路５６ｆは、レジスタ５６ｒに設定されたオフセット値を変換されたロウアドレスおよびカラムアドレスに加算する。こうして決定されたロウアドレスおよびカラムアドレスは、ＳＤＲＡＭ５８に向けて出力される。まずロウアドレスが出力され、続いてカラムアドレスが出力される。
【００７９】
メモリアクセス回路５６ｄは、アドレス変換回路５６ｆからロウアドレスが出力されるタイミングでＲＡＳ(Row Address Strobe)信号とアクティブコマンドとを出力し、アドレス変換回路５６ｆからカラムアドレスが出力されるタイミングでＣＡＳ(Column Address Strobe)信号と書き込み／読み出しコマンドを出力する。メモリアクセス回路５６ｄはさらに、データ書き込みを行うとき３ステートバッファ５６ａを能動化し、データ読み出しを行うとき３ステートバッファ５６ｂを能動化する。
【００８０】
この結果、データ書き込みのためにＤ１−Ｉ／Ｆ４４ｂ，バッファ回路６４または６６から出力された指定画素数の画素データは、３ステートバッファ５６ａを介してＳＤＲＡＭ５８に与えられ、アドレス変換回路５６ｆによって指定されたロウアドレスおよびカラムアドレスを基点として連続する複数のアドレスに書き込まれる。
【００８１】
また、データ読み出し時は、アドレス変換回路５６ｆによって指定されたロウアドレスおよびカラムアドレスを基点として連続する複数のアドレスから、指定画素数の画素データが読み出される。読み出された画素データは、３ステートバッファ５６ｂを介してＤ１−Ｉ／Ｆ４４ｂ，バッファ回路６０または６２に与えられる。
【００８２】
図９（Ａ）および図９（Ｂ）を参照して、ＳＤＲＡＭ５８のメモリエリアは、複数のメモリブロックＭＢ１，ＭＢ２，ＭＢ３，…に分割される。各々のメモリブロックのサイズは、たとえば３００画素の画素データを格納できる容量を有する。Ｄ１−Ｉ／Ｆ４４ｂから与えられた画像データを形成する複数ラインの画素データは、複数のメモリブロックにそれぞれ書き込まれる。バッファ回路６４および６６から出力された画像データを形成する複数ラインの画素データもまた、複数のメモリブロックにそれぞれ書き込まれる。
【００８３】
ただし、Ｄ１−Ｉ／Ｆ４４ｂからの画像データを書き込みときはレジスタ５６ｒに設定されたオフセットが有効化されるため、書き込みを開始するロウアドレスおよびカラムアドレスは、先頭からオフセットに相当する距離だけ後方にシフトされる。
【００８４】
この結果、フィルタ処理を施される前の画像データを形成する複数ラインの画素データは、図９（Ａ）に示す要領で複数のメモリブロックにそれぞれ書き込まれる。一方、フィルタ処理を施された画像データを形成する複数ラインの画素データは、図９（Ｂ）に示す要領で複数のメモリブロックにそれぞれ書き込まれる。
【００８５】
フィルタ回路６８は、図１０に示すように構成される。レジスタ７４ａ〜７４ｅは、ＣＰＵ７０から出力されたフィルタ係数を保持する。“５×５”のタップ長が選択されたときは、フィルタ係数Ｃ（０）〜Ｃ（４）がレジスタ７４ａ〜７４ｅにそれぞれ設定される。“３×３”のタップ長が選択されたときは、フィルタ係数Ｃ（０）〜Ｃ（２）がレジスタ７４ａ〜７４ｃにそれぞれ設定され、“０”がレジスタ７４ｄおよび７４ｅの各々に設定される。
【００８６】
なお、“５×５”のタップ長が選択されたとき、フィルタ係数Ｃ（０）が示す数値は、注目するラインが変更される毎に“ｃ０１”→“ｃ０２”→“ｃ０３”→“ｃ０４”→“ｃ０５”→“ｃ０１”→…の要領で更新され、フィルタ係数Ｃ（１）が示す数値は、注目するラインが変更される毎に“ｃ１１”→“ｃ１２”→“ｃ１３”→“ｃ１４”→“ｃ１５”→“ｃ１１”→…の要領で更新される。同様に、フィルタ係数Ｃ（２）が示す数値は、注目するラインが変更される毎に“ｃ２１”→“ｃ２２”→“ｃ２３”→“ｃ２４”→“ｃ２５”→“ｃ２１”→…の要領で更新され、フィルタ係数Ｃ（３）が示す数値は、注目するラインが変更される毎に“ｃ３１”→“ｃ３２”→“ｃ３３”→“ｃ３４”→“ｃ３５”→“ｃ３１”→…の要領で更新され、フィルタ係数Ｃ（４）が示す数値は、注目するラインが変更される毎に“ｃ４１”→“ｃ４２”→“ｃ４３”→“ｃ４４”→“ｃ４５”→“ｃ４１”→…の要領で更新される。
【００８７】
また、“３×３”のタップ長が選択されたとき、フィルタ係数Ｃ（０）が示す数値は、注目するラインが変更される毎に“ｃ０１”→“ｃ０２”→“ｃ０３”→“ｃ０１”→…の要領で更新され、フィルタ係数Ｃ（１）が示す数値は、注目するラインが変更される毎に“ｃ１１”→“ｃ１２”→“ｃ１３”→“ｃ１１”→…の要領で更新され、フィルタ係数Ｃ（２）が示す数値は、注目するラインが変更される毎に“ｃ２１”→“ｃ２２”→“ｃ２３”→“ｃ２１”→…の要領で更新される。
【００８８】
セレクタ７６ａは、バッファ回路６０から入力されたＹデータの書き込み先をラインメモリ７８ａ〜７８ｅの間で循環的に切り換え、セレクタ７６ｂは、バッファ回路６２から入力されたＵ／Ｖデータの書き込み先をラインメモリ８０ａ〜８０ｅの間で循環的に切り換える。“５×５”のタップ長が選択されたとき、切り換え周期はデータ読み出し周期Ｔ５に一致する。“３×３”のタップ長が選択されたとき、切り換え周期はデータ読み出し周期Ｔ３に一致する。セレクタ７６ａの切り換え動作はバッファ回路６０によって実行され、セレクタ７６ｂの切り換え動作はバッファ回路６２によって実行される。
【００８９】
この結果、ラインメモリ７８ａ〜７８ｅは、“５×５”のタップ長が選択されたとき図１１（Ａ）に示すように水平６８画素×垂直５ラインのＹデータを保持し、“３×３”のタップ長が選択されたとき図１２（Ａ）に示すように水平６６画素×垂直３ラインのＹデータを保持する。同様に、ラインメモリ８０ａ〜８０ｅの各々は、“５×５”のタップ長が選択されたとき図１１（Ａ）に示すように水平６８画素のＵ／Ｖデータを保持し、“３×３”のタップ長が選択されたとき図１２（Ａ）に示すように水平６６画素のＵ／Ｖデータを保持する。
【００９０】
フィルタ演算回路８２ａは、ラインメモリ７８ａ〜７８ｅの各々から水平５画素ずつＹデータを読み出し、読み出された５画素のＹデータとレジスタ７４ａ〜７４ｅに保持されたフィルタ係数Ｃ（０）〜Ｃ（４）とに基づいて１画素のＹ’データを作成する。作成されたＹ’データは、注目する水平５画素の中央に割り当てられる。
【００９１】
フィルタ演算回路８２ｂも同様に、ラインメモリ８０ａ〜８０ｅの各々から水平５画素ずつＵ／Ｖデータを読み出し、読み出された５画素のＵ／Ｖデータとレジスタ７４ａ〜７４ｅに保持されたフィルタ係数Ｃ（０）〜Ｃ（４）とに基づいて１画素のＵ’／Ｖ’データを作成する。作成されたＵ’／Ｖ’データも、注目する水平５画素の中央に割り当てられる。
【００９２】
この結果、“５×５”のタップ長が選択されたときは、図１１（Ａ）に示す水平６８画素×垂直５ラインのＹデータまたはＵ／Ｖデータに基づいて、図１１（Ｂ）に示す水平６４画素×垂直５ラインのＹデータまたはＵ／Ｖデータが作成される。また、“３×３”のタップ長が選択されたときは、図１２（Ａ）に示す水平６６画素×垂直３ラインのＹデータまたはＵ／Ｖデータに基づいて、図１２（Ｂ）に示す水平６４画素×垂直３ラインのＹデータまたはＵ／Ｖデータが作成される。
【００９３】
図１１（Ｂ）に示す画素ＰＨ１〜ＰＨ６はそれぞれ、図１１（Ａ）に示す画素ブロックＰＢ１〜ＰＢ６に基づいて作成される。また、図１２（Ｂ）に示す画素ＰＨ７〜ＰＨ９はそれぞれ、図１２（Ａ）に示す画素ブロックＰＢ７〜ＰＢ９に基づいて作成される。
【００９４】
フィルタ演算回路８２ａから出力されたＹ’データは、加算器８４ａを経てラインメモリ８６ａに書き込まれる。コントローラ８８ａは、次ラインに属する６４画素のＹ’データがフィルタ演算回路８２ａから出力されるときに、ラインメモリ８６ａに格納された現ラインのＹ’データを加算器８４ａに与える。現ラインのＹ’データおよび次ラインのＹ’データは、加算器８４ａによって加算される。
【００９５】
同様に、フィルタ演算回路８２ｂから出力されたＵ’／Ｖ’データは、加算器８４ｂを経てラインメモリ８６ｂに書き込まれる。コントローラ８８ｂは、次ラインに属する６４画素のＵ’／Ｖ’データがフィルタ演算回路８２ｂから出力されるときに、ラインメモリ８６ｂに格納された現ラインのＵ’／Ｖ’データを加算器８４ｂに与える。現ラインのＹ’データおよび次ラインのＹ’データは、加算器８４ｂによって加算される。
【００９６】
“５×５”のタップ長が選択されたときは、かかる加算処理が垂直５ラインにわたって実行される。図１１（Ｃ）に示す水平６４画素×垂直１ラインのＹ”データおよびＵ”／Ｖ”データは、垂直５ライン毎に得られる。また、“３×３”のタップ長が選択されたときは、かかる加算処理が３ラインにわたって実行される。図１２（Ｃ）に示す水平６４画素×垂直１ラインのＹ”データおよびＵ”／Ｖ”データは、垂直３ライン毎に得られる。Ｙ”データはバッファ回路６４に向けて出力され、Ｕ”／Ｖ”データはバッファ回路６６に向けて出力される。
【００９７】
フィルタ演算回路８２ａは、図１３に示すように構成される。セレクタ９０は、“５×５”のタップ長が選択されたとき、画素クロックに応答してフィルタ係数Ｃ（０）〜Ｃ（４）を順に選択する。画素クロックが図１４（Ａ）に示す要領で変化するとき、フィルタ係数Ｃ（０）〜Ｃ（４）は、図１４（Ｂ）に示す要領でセレクタ９０から出力され、ラッチ回路９２，９４，９６，９８および１００によって形成される経路上を画素クロックに応答してシフトされる。
【００９８】
セレクタ９０はまた、“３×３”のタップ長が選択されたとき、画素クロックに応答してフィルタ係数Ｃ（０）〜Ｃ（２）を順に選択する。画素クロックが図１４（Ｂ）に示す要領で変化するとき、フィルタ係数Ｃ（０）〜Ｃ（４）は、図１４（Ｂ）に示す要領でセレクタ９０から出力され、ラッチ回路９２，９４，９６，９８および１００によって形成される経路上を画素クロックに応答してシフトされる。
【００９９】
ラッチ回路９２の出力は図１４（Ｃ）または図１５（Ｃ）に示す要領で変化し、ラッチ回路９４の出力は図１４（Ｄ）または図１５（Ｄ）に示す要領で変化し、ラッチ回路９６の出力は図１４（Ｅ）または図１５（Ｅ）に示す要領で変化し、ラッチ回路９８の出力は図１４（Ｆ）または図１５（Ｆ）に示す要領で変化し、ラッチ回路１００の出力は図１４（Ｇ）または図１５（Ｇ）に示す要領で変化する。
【０１００】
一方、セレクタ１１２は、ラインメモリ７８ａ〜７８ｅのいずれか１つから出力された水平６８画素または水平６６画素のＹデータを選択する。Ｙデータは、図１４（Ｈ）または図１５（Ｈ）に示す要領でセレクタ１１２から出力される。ここで、“Ｙ（ｎ）”は、注目する水平６８画素または６６画素の先頭からｎ画素目のＹデータを意味する。出力されたＹデータは、フリップフロップ回路１１４，１１６，１１８，１２０および１２２によって形成される経路上を画素クロックに応答してシフトされる。
【０１０１】
フリップフロップ回路１１４の出力は図１４（Ｉ）または図１５（Ｉ）に示す要領で変化し、フリップフロップ回路１１６の出力は図１４（Ｊ）または図１５（Ｊ）に示す要領で変化し、フリップフロップ回路１１８の出力は図１４（Ｋ）または図１５（Ｋ）に示す要領で変化し、フリップフロップ回路１２０の出力は図１４（Ｌ）または図１５（Ｌ）に示す要領で変化し、フリップフロップ回路１２２の出力は図１４（Ｍ）または図１５（Ｍ）に示す要領で変化する。
【０１０２】
乗算器１０２はフリップフロップ回路１１４から出力されたＹデータをラッチ回路９２の出力によって乗算し、乗算器１０４はフリップフロップ回路１１６から出力されたＹデータをラッチ回路９４の出力によって乗算し、乗算器１０６はフリップフロップ回路１１８から出力されたＹデータをラッチ回路９６の出力によって乗算し、乗算器１０８はフリップフロップ回路１２０から出力されたＹデータをラッチ回路９８の出力によって乗算し、乗算器１１０はフリップフロップ回路１２２から出力されたＹデータをラッチ回路１００の出力によって乗算する。
【０１０３】
加算器１２４は、乗算器１０２，１０４，１０６，１０８および１１０によってそれぞれ算出された５個の乗算値を互いに加算する。この結果、加算値を示すＹ’データが、図１４（Ｎ）または図１５（Ｎ）に示す要領で加算器１２４から出力される。
【０１０４】
フィルタ演算回路８２ｂは、図１６に示すように構成される。セレクタ１２６は、ラインメモリ８０ａ〜８０ｅのいずれか１つから出力された水平６８画素または水平６６画素のＵ／Ｖデータを選択する。Ｕ／Ｖデータは、図１７（Ｂ）または図１８（Ｂ）に示す要領でセレクタ１２６から出力される。ここで、“Ｕ（ｎ）”は注目する水平６８画素または水平６６画素の先頭からｎ画素目のＵデータを意味し、“Ｖ（ｎ）”は注目する水平６８画素または水平６６画素の先頭からｎ画素目のＶデータを意味する。出力されたＵ／Ｖデータは、フリップフロップ回路１２８，１３０，１３２および１３４によって形成される経路上を、図１７（Ａ）または図１８（Ａ）に示す画素クロックに応答してシフトされる。
【０１０５】
フリップフロップ回路１３０の出力は図１７（Ｃ）または図１８（Ｃ）に示す要領で変化し、フリップフロップ回路１３４の出力は図１７（Ｄ）または図１８（Ｄ）に示す要領で変化する。
【０１０６】
“５×５”のタップ長が選択されたとき、セレクタ１３６は、“０”およびフィルタ係数Ｃ（３）を画素クロックに応答して交互に選択し、セレクタ１３８は、フィルタ係数Ｃ（３）およびＣ（１）を画素クロックに応答して交互に選択し、セレクタ１４０は、フィルタ係数Ｃ（１）および“０”を画素クロックに応答して交互に選択する。セレクタ１３６の出力は図１７（Ｅ）に示す要領で変化し、セレクタ１３８の出力は図１７（Ｆ）に示す要領で変化し、セレクタ１４０の出力は図１７（Ｇ）に示す要領で変化する。
【０１０７】
加算器１４２はセレクタ１３６の出力をフィルタ係数Ｃ（４）と加算し、加算器１４４はセレクタ１３８の出力をフィルタ係数Ｃ（２）と加算し、加算器１４６はセレクタ１４０の出力をフィルタ係数Ｃ（０）と加算する。加算器１４２の加算結果は図１７（Ｈ）に示す要領で変化し、加算器１４４の加算結果は図１７（Ｉ）に示す要領で変化し、加算器１４６の加算結果は図１７（Ｊ）に示す要領で変化する。
【０１０８】
セレクタ１４８はセレクタ１２６の出力を選択し、セレクタ１５０はフリップフロップ回路１３０の出力を選択する。乗算器１５２はセレクタ１４８の出力を加算器１４２の加算結果によって乗算し、乗算器１５４はセレクタ１５０の出力を加算器１４４の加算結果によって乗算する。さらに、乗算器１５６は、フリップフロップ回路１３４の出力を加算器１４６の出力によって乗算する。加算器１５８は、乗算器１５２の乗算結果を乗算器１５４の乗算結果と加算し、加算器１６０は、加算器１５８の加算結果を乗算器１５６の乗算結果と加算する。この結果、加算値を示すＵ’／Ｖ’データが、図１７（Ｋ）に示す要領で加算器１６０から出力される。
【０１０９】
“３×３”のタップ長が選択されたとき、セレクタ１３６は、“０”およびフィルタ係数Ｃ（１）を画素クロックに応答して交互に選択し、セレクタ１３８は、フィルタ係数Ｃ（１）および“０”を画素クロックに応答して交互に選択する。セレクタ１３６の出力は図１８（Ｅ）に示す要領で変化し、セレクタ１３８の出力は図１８（Ｆ）に示す要領で変化する。
【０１１０】
セレクタ１４８はフリップフロップ回路１３０の出力およびセレクタ１２６の出力を画素クロックに応答して交互に選択し、セレクタ１５０はフリップフロップ回路１３４の出力およびフリップフロップ回路１３０の出力を画素クロックに応答して交互に選択する。セレクタ１４８の出力は図１８（Ｇ）に示す要領で変化し、セレクタ１５０の出力は図１８（Ｈ）に示す要領で変化する。
【０１１１】
加算器１４２はセレクタ１３６の出力をフィルタ係数Ｃ（２）と加算し、加算器１４４はセレクタ１３８の出力をフィルタ係数Ｃ（０）と加算する。加算器１４２の加算結果は図１８（Ｉ）に示す要領で変化し、加算器１４４の加算結果は図１８（Ｊ）に示す要領で変化する。なお、“３×３”のタップ長が選択されたとき、セレクタ１４０および加算器１４６の入力はいずれも“０”である。
【０１１２】
乗算器１５２，１５４および１５６ならびに加算器１５８および１６０は、上述と同様に動作する。この結果、図１８（Ｋ）に示すＵ’／Ｖ’データが加算器１６０から出力される。
【０１１３】
したがって、“５×５”のタップ長が選択されたときは数１および数２に従う演算が実行され、“３×３”のタップ長が選択されたときは数３および数４に従う演算が実行される。
【０１１４】
【数１】
2006333372.tif 000003
【０１１５】
【数２】
2006333372.tif 000004
【０１１６】
【数３】
2006333372.tif 000005
【０１１７】
【数４】
2006333372.tif 000006
【０１１８】
数１に従う演算が行われたとき、Ｕ（ｎ）’データは図１９（Ａ）に示す要領で作成され、数２に従う演算が行われたとき、Ｖ（ｎ）’データは図１９（Ｂ）に示す要領で作成される。また、数３に従う演算が行われたとき、Ｕ（ｎ）’データは図２０（Ａ）に示す要領で作成され、数４に従う演算が行われたとき、Ｖ（ｎ）’データは図２０（Ｂ）に示す要領で作成される。
【０１１９】
数１および図１９（Ａ）によれば、無効画素Ｕ（ｎ−１）に割り当てられるフィルタ係数Ｃ（１）が有効画素Ｕ（ｎ−２）に割り当てられるフィルタ係数Ｃ（０）に加算され、有効画素Ｕ（ｎ−２）が加算値Ｃ（０）＋Ｃ（１）によって乗算される。また、無効画素Ｕ（ｎ＋１）に割り当てられるフィルタ係数Ｃ（３）が有効画素Ｕ（ｎ）に割り当てられるフィルタ係数Ｃ（２）に加算され、有効画素Ｕ（ｎ）が加算値Ｃ（２）＋Ｃ（３）によって乗算される。乗算処理の対象から外れた有効画素Ｕ（ｎ＋２）は、加算処理の対象から外れたフィルタ係数Ｃ（４）によって乗算される。Ｕ（ｎ）’は、こうして求められた乗算値の総和を示す。
【０１２０】
数２および図１９（Ｂ）によれば、無効画素Ｖ（ｎ−１）に割り当てられるフィルタ係数Ｃ（１）が有効画素Ｖ（ｎ）に割り当てられるフィルタ係数Ｃ（２）に加算され、有効画素Ｖ（ｎ）が加算値Ｃ（１）＋Ｃ（２）によって乗算される。また、無効画素Ｖ（ｎ＋１）に割り当てられるフィルタ係数Ｃ（３）が有効画素Ｖ（ｎ＋２）に割り当てられるフィルタ係数Ｃ（４）に加算され、有効画素Ｖ（ｎ＋２）が加算値Ｃ（３）＋Ｃ（４）によって乗算される。乗算処理の対象から外れた有効画素Ｖ（ｎ−２）は、加算処理の対象から外れたフィルタ係数Ｃ（０）によって乗算される。Ｖ（ｎ）’は、こうして求められた乗算値の総和を示す。
【０１２１】
数３および図２０（Ａ）によれば、無効画素Ｕ（ｎ−１）に割り当てられるフィルタ係数Ｃ（１）が有効画素Ｕ（ｎ）に割り当てられるフィルタ係数Ｃ（２）に加算され、有効画素Ｕ（ｎ）が加算値Ｃ（１）＋Ｃ（２）によって乗算される。乗算処理の対象から外れた有効画素Ｕ（ｎ−２）は、加算処理の対象から外れたフィルタ係数Ｃ（０）によって乗算される。Ｕ（ｎ）’は、こうして求められた乗算値の総和を示す。
【０１２２】
数４および図２０（Ｂ）によれば、無効画素Ｖ（ｎ−１）に割り当てられるフィルタ係数Ｃ（１）が有効画素Ｖ（ｎ−２）に割り当てられるフィルタ係数Ｃ（０）に加算され、有効画素Ｖ（ｎ−２）が加算値Ｃ（１）＋Ｃ（２）によって乗算される。乗算処理の対象から外れた有効画素Ｖ（ｎ）は、加算処理の対象から外れたフィルタ係数Ｃ（２）によって乗算される。Ｖ（ｎ−２）’は、こうして求められた乗算値の総和を示す。
【０１２３】
以上の説明から分かるように、Ｄ１−Ｉ／Ｆ４４ａは、各々が２５６画素を有する複数の水平ラインの画素データによって形成される画像データを出力する。また、メモリ制御回路５６のアドレス変換回路５６ｆは、各々が２５６画素よりも大きい３００画素の画素データを格納できるサイズを有する複数のメモリブロックＭＢ１，ＭＢ２，ＭＢ３，…を、ＳＤＲＡＭ５８のメモリエリア上に割り当てる。Ｄ１−Ｉ／Ｆ４４ａによって出力された画像データを形成する複数の水平ラインの画素データはそれぞれ、Ｄ１−Ｉ／Ｆ４４ｂによって複数のメモリブロックＭＢ１，ＭＢ２，ＭＢ３，…に書き込まれる。
【０１２４】
メモリアクセス回路５６ｄ，バッファ回路６０および６２は、指定数の水平画素の画素データをＳＤＲＡＭ５８から周期的に読み出す。読み出された画素データは、フィルタ回路６８によって演算処理を施される。これによって、指定数よりも小さい所定数（＝６４）の水平画素の処理画素データが周期的に作成される。作成された複数の水平ラインの処理画素データはそれぞれ、バッファ回路６４，６６およびメモリアクセス回路５６ｄによって複数のメモリブロックＭＢ１，ＭＢ２，ＭＢ３，…にそれぞれ書き込まれる。
【０１２５】
ここで、レジスタ５６ｒは、Ｄ１−Ｉ／Ｆ４４ｂからの画像データを書き込むときのメモリブロック上の書き込み開始位置とバッファ回路６４または６６からの画像データを書き込むときのメモリブロック上の書き込み開始位置との間にオフセットを確保する。
【０１２６】
所定数（＝６４）は指定数よりも小さいため、フィルタ回路６８によって作成される処理画素データの部分的な欠落を防止するには、指定数の水平画素の部分的な重複つまり一部の画素データの繰り返し読み出しが必要となる。そこで、この実施例では、メモリブロックＭＢ１，ＭＢ２，ＭＢ３，…の各々のサイズを水平ラインの画素データのサイズよりも大きくし、Ｄ１−Ｉ／Ｆ４４ｂからの画像データの書き込み開始位置とバッファ回路６４または６６からの画像データの書き込み開始位置との間にオフセットを確保するようにしている。
【０１２７】
この結果、繰り返し読み出しが必要な画素データが演算処理を施された画素データによって上書きされる事態を回避することができる。つまり、容量が少ないメモリエリアへの簡単なアクセス処理で、画像データに所望の演算処理を施すことができる。
【０１２８】
また、上述した処理画素データの部分的な欠落を防止するために、ＳＤＲＡＭ５８から読み出される指定数の画素の部分的な重複が、ＣＰＵ７０によって指示される(S11, S19)。これによって、画面全体にわたって演算処理が施された画像データが得られる。
【０１２９】
さらに、ＣＰＵ７０は、読み出し画素の指定数を、画像データの水平方向中央部よりも画像データの水平方向端部において小さくする(S11, S25, S19, S27)。また、バッファ回路６０および６２の各々は、水平方向端部から読み出された画素データの画素数を、タップ長が“５×５”のときに“６６”から“６８”に増大させ、タップ長が“３×３”のときに“６５”から“６６”に増大させる。画素数の増大によって、演算処理を施された画像データにおける解像度の劣化を防止できる。
【０１３０】
なお、増大された画素数は、水平方向端部から読み出された画素データの画素数と一致する。これによって、演算処理を施された画像データの解像度を演算処理を施される前の画像データの解像度と一致させることができる。
【０１３１】
また、Ｄ１−Ｉ／Ｆ４４ａによって出力される画像データは、撮影操作によって取得された被写界像データであり、撮影操作に起因する被写界の振れ量は、ジャイロセンサ７２によって検出される。ＣＰＵ７０は、フィルタ回路６８の演算処理量をジャイロセンサ７２の検出結果に応じた量に設定し(S9, S17)、ＳＤＲＡＭ５８からの読み出し画素数の指定をフィルタ回路６８の演算処理量に応じて変更する(S11, S19)。
【０１３２】
フィルタ回路に求められる演算処理量は、被写界像データの品質つまり被写界の振れ量によって異なる。そこで、この実施例では、被写界の振れ量を検出し、この検出結果に対応する演算処理量をフィルタ回路６８に設定するようにしている。また、１回の演算処理に必要なデータ量は、設定された演算処理量に依存する。そこで、この実施例では、読み出し画素数の指定をフィルタ回路６８の演算処理量に応じて変更するようにしている。これによって、手振れに起因する歪を的確に補正することができる。
【０１３３】
さらに、ＣＰＵ７０は、指定数の画素の読み出し周期をフィルタ回路６８の演算処理量に応じて変更する(S11, S19)。これによって、振れ量が小さいときに演算処理に要する時間を短縮できる。
【０１３４】
さらに、この実施例では、ＵデータおよびＶデータの各々は、交互に配置された有効画素および無効画素によって形成された画像データである。フィルタ演算回路８２ｂは、かかる画像データに、５個のフィルタ係数を用いた５画素毎のフィルタ処理または３個のフィルタ係数を用いた３画素毎のフィルタ処理を施す。フィルタ演算回路８２ｂからは、有効画素によって形成される処理画像データが出力される。
【０１３５】
このとき、加算器１４２，１４４または１４６は、５個または３個のフィルタ係数のうち無効画素に割り当てられるフィルタ係数を有効画素に割り当てられるフィルタ係数に加算する。加算結果は、乗算器１５２，１５４または１５６によって有効画素に乗算される。加算器１６０は、乗算結果に基づいて処理画像データを形成する１画素を出力する。
【０１３６】
有効画素および無効画素にそれぞれ割り当てられる２つのフィルタ係数を互いに加算し、加算結果を有効画素に乗算することで、無効画素を有効画素で補間し、有効画素および補間画素に２つのフィルタ係数をそれぞれ乗算し、そして乗算結果を互いに加算する場合に比べて、処理が簡略化される。つまり、処理を簡略化しつつ、的確なフィルタ処理が実現される。
【０１３７】
なお、この実施例では、撮影操作に起因する手振れをフィルタ回路６８によって補正するようにしているが、フィルタ回路６８は記録済みの画像データに特殊効果を施すために使用するようにしてもよい。この場合、ＣＰＵ７０は、再生モードが選択されたときに図２１（および図６〜図７）に示すフロー図に従う処理を実行する。
【０１３８】
図２１を参照して、ステップＳ５１では特殊効果操作通知がＣＰＵ４０から与えられたか否かを判別し、ＹＥＳであれば特殊効果の種類をステップＳ５３で検出する。ステップＳ５５では検出された種類の複雑度が閾値ＴＨ’を上回るか否かを判別し、ＹＥＳであれば図６に示すステップＳ９に進む一方、ＮＯであれば図６に示すステップＳ１７に進む。なお、図７に示すステップＳ４１の処理が完了すると、ステップＳ５１に戻る。これによって、高速かつ高精度の特殊効果処理が実現される。
【０１３９】
なお、この実施例では、撮影時に手振れ補正処理を実行するようにしているが、撮影時に代えて再生時に手振れ補正処理を実行するようにしてもよい。また、この実施例では、フィルタ処理を施された処理画素データが書き込まれるメモリブロックは、フィルタ処理を施される画素データが読み出されるメモリブロックと一致するが、書き込み先のメモリブロックは読み出し元のメモリブロックと異なってもよい。
【図面の簡単な説明】
【０１４０】
【図１】この発明の一実施例の構成を示すブロック図である。
【図２】（Ａ）はＤ１−Ｉ／Ｆに向けられたデータ取得命令の発行動作の一例を示すタイミング図であり、（Ｂ）はＳＤＲＡＭ２６からＳＤＲＡＭ５８への画像データの転送動作を一例を示すタイミング図であり、（Ｃ）はバッファ回路に向けられたフィルタ処理開始命令の発行動作の一例を示すタイミング図であり、（Ｄ）はフィルタ回路の処理動作の一例を示すタイミング図であり、（Ｅ）はＤ１−Ｉ／Ｆに向けられたデータ返送命令の発行動作の一例を示すタイミング図であり、そして（Ｆ）はＳＤＲＡＭ５８からＳＤＲＡＭ２６への画像データの転送動作の一例を示すタイミング図である。
【図３】（Ａ）はＤ１−Ｉ／Ｆに向けられたデータ取得命令の発行動作の他の一例を示すタイミング図であり、（Ｂ）はＳＤＲＡＭ２６からＳＤＲＡＭ５８への画像データの転送動作の他の一例を示すタイミング図であり、（Ｃ）はバッファ回路に向けられたフィルタ処理開始命令の発行動作の他の一例を示すタイミング図であり、（Ｄ）はフィルタ回路の処理動作の他の一例を示すタイミング図であり、（Ｅ）はＤ１−Ｉ／Ｆに向けられたデータ返送命令の発行動作の他の一例を示すタイミング図であり、そして（Ｆ）はＳＤＲＡＭ５８からＳＤＲＡＭ２６への画像データの転送動作の他の一例を示すタイミング図である。
【図４】（Ａ）はフィルタ処理を施される前の画像データの一例を示す図解図であり、（Ｂ）はフィルタ処理を施される前の画像データの他の一例を示す図解図である。
【図５】フィルタ処理を施された後の画像データの一例を示す図解図である。
【図６】図１実施例に適用されるＣＰＵの動作の一部を示すフロー図である。
【図７】図１実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図８】図１実施例に適用されるメモリ制御回路の構成の一例を示すブロック図である。
【図９】（Ａ）はフィルタ処理を施される前の画像データのマッピング状態の一例を示す図解図であり、（Ｂ）フィルタ処理が施された後の画像データのマッピング状態の一例を示す図解図である。
【図１０】図１実施例に適用されるフィルタ回路の構成の一例を示すブロック図である。
【図１１】（Ａ）タップ長が５×５のときのラインメモリのマッピング状態の一例を示す図解図であり、（Ｂ）はタップ長が５×５のときの水平フィルタ処理動作の一例を示す図解図であり、（Ｃ）はタップ長は５×５のときの垂直フィルタ処理動作の一例を示す図解図である。
【図１２】（Ａ）タップ長が３×３のときのラインメモリのマッピング状態の一例を示す図解図であり、（Ｂ）はタップ長が３×３のときの水平フィルタ処理動作の一例を示す図解図であり、（Ｃ）はタップ長は３×３のときの垂直フィルタ処理動作の一例を示す図解図である。
【図１３】図１０実施例に適用されるＹ系のフィルタ演算回路の構成の一例を示すブロック図である。
【図１４】（Ａ）は画素クロックの出力動作の一例を示すタイミング図であり、（Ｂ）はセレクタ９０の出力動作の一例を示すタイミング図であり、（Ｃ）はラッチ回路９２の出力動作の一例を示すタイミング図であり、（Ｄ）はラッチ回路９４の出力動作の一例を示すタイミング図であり、（Ｅ）はラッチ回路９６の出力動作の一例を示すタイミング図であり、（Ｆ）はラッチ回路９８の出力動作の一例を示すタイミング図であり、（Ｇ）はラッチ回路１００の出力動作の一例を示すタイミング図であり、（Ｈ）はセレクタ１１２の出力動作の一例を示すタイミング図であり、（Ｉ）はフリップフロップ回路１１４の出力動作の一例を示すタイミング図であり、（Ｊ）はフリップフロップ回路１１６の出力動作の一例を示すタイミング図であり、（Ｋ）はフリップフロップ回路１１８の出力動作の一例を示すタイミング図であり、（Ｌ）はフリップフロップ回路１２０の出力動作の一例を示すタイミング図であり、（Ｍ）はフリップフロップ回路１２２の出力動作の一例を示すタイミング図であり、そして（Ｎ）は加算器１２４の出力動作の一例を示すタイミング図である。
【図１５】（Ａ）は画素クロックの出力動作の他の一例を示すタイミング図であり、（Ｂ）はセレクタ９０の出力動作の他の一例を示すタイミング図であり、（Ｃ）はラッチ回路９２の出力動作の他の一例を示すタイミング図であり、（Ｄ）はラッチ回路９４の出力動作の他の一例を示すタイミング図であり、（Ｅ）はラッチ回路９６の出力動作の他の一例を示すタイミング図であり、（Ｆ）はラッチ回路９８の出力動作の他の一例を示すタイミング図であり、（Ｇ）はラッチ回路１００の出力動作の他の一例を示すタイミング図であり、（Ｈ）はセレクタ１１２の出力動作の他の一部を示すタイミング図であり、（Ｉ）はフリップフロップ回路１１４の出力動作の他の一部を示すタイミング図であり、（Ｊ）はフリップフロップ回路１１６の出力動作の他の一例を示すタイミング図であり、（Ｋ）はフリップフロップ回路１１８の出力動作の他の一例を示すタイミング図であり、（Ｌ）はフリップフロップ回路１２０の出力動作の他の一例を示すタイミング図であり、（Ｍ）はフリップフロップ回路１２２の出力動作の他の一例を示すタイミング図であり、そして（Ｎ）は加算器１２４の出力動作の他の一例を示すタイミング図である。
【図１６】図１０実施例に適用されるＵＶ系のフィルタ演算回路の構成の一例を示すブロック図である。
【図１７】（Ａ）は画素クロックの出力動作の一例を示すタイミング図であり、（Ｂ）はセレクタ１２６の出力動作の一例を示すタイミング図であり、（Ｃ）はフリップフロップ回路１３０の出力動作の一例を示すタイミング図であり、（Ｄ）はフリップフロップ回路１３４の出力動作の一例を示すタイミング図であり、（Ｅ）はセレクタ１３６の動作の一例を示すタイミング図であり、（Ｆ）はセレクタ１３８の動作の一例を示すタイミング図であり、（Ｇ）はセレクタ１４０の動作の一例を示すタイミング図であり、（Ｈ）は加算器１４２の動作の一例を示すタイミング図であり、（Ｉ）は加算器１４４の動作の一例を示すタイミング図であり、（Ｊ）は加算器１４６の動作の一例を示すタイミング図であり、そして（Ｋ）は加算器１６０の出力動作の一例を示すタイミング図である。
【図１８】（Ａ）は画素クロックの出力動作の他の一例を示すタイミング図であり、（Ｂ）はセレクタ１２６の出力動作の他の一例を示すタイミング図であり、（Ｃ）はフリップフロップ回路１３０の出力動作の他の一例を示すタイミング図であり、（Ｄ）はフリップフロップ回路１３４の出力動作の他の一例を示すタイミング図であり、（Ｅ）はセレクタ１３６の動作の他の一例を示すタイミング図であり、（Ｆ）はセレクタ１３８の動作の他の一例を示すタイミング図であり、（Ｇ）はセレクタ１４０の動作の他の一例を示すタイミング図であり、（Ｈ）は加算器１４２の動作の他の一例を示すタイミング図であり、（Ｉ）は加算器１４４の動作の他の一例を示すタイミング図であり、（Ｊ）は加算器１４６の動作の他の一例を示すタイミング図であり、そして（Ｋ）は加算器１６０の出力動作の他の一例を示すタイミング図である。
【図１９】（Ａ）はタップ長が５×５のときのＵデータに対するフィルタ処理動作の一部を示す図解図であり、（Ｂ）はタップ長が５×５のときのＶデータに対するフィルタ処理動作の一部を示す図解図である。
【図２０】（Ａ）はタップ長が３×３のときのＵデータに対するフィルタ処理動作の一部を示す図解図であり、（Ｂ）はタップ長が３×３のときのＶデータに対するフィルタ処理動作の一部を示す図解図である。
【図２１】この発明の他の実施例の動作の一部を説明するフロー図である。
【符号の説明】
【０１４１】
１０  …ディジタルカメラ
２０  …信号処理回路
２４，５６  …メモリ制御回路
２６，５８  …ＳＤＲＡＭ
４０，７０  …ＣＰＵ
５２  …ＳＲＡＭ
６８  …フィルタ回路
【図１】
2006333372.tif 000007
【図２】
2006333372.tif 000008
【図３】
2006333372.tif 000009
【図４】
2006333372.tif 000010
【図５】
2006333372.tif 000011
【図６】
2006333372.tif 000012
【図７】
2006333372.tif 000013
【図８】
2006333372.tif 000014
【図９】
2006333372.tif 000015
【図１０】
2006333372.tif 000016
【図１１】
2006333372.tif 000017
【図１２】
2006333372.tif 000018
【図１３】
2006333372.tif 000019
【図１４】
2006333372.tif 000020
【図１５】
2006333372.tif 000021
【図１６】
2006333372.tif 000022
【図１７】
2006333372.tif 000023
【図１８】
2006333372.tif 000024
【図１９】
2006333372.tif 000025
【図２０】
2006333372.tif 000026
【図２１】
2006333372.tif 000027