JP4641867B2 - 画像処理装置 - Google Patents

画像処理装置 Download PDF

Info

Publication number
JP4641867B2
JP4641867B2 JP2005157745A JP2005157745A JP4641867B2 JP 4641867 B2 JP4641867 B2 JP 4641867B2 JP 2005157745 A JP2005157745 A JP 2005157745A JP 2005157745 A JP2005157745 A JP 2005157745A JP 4641867 B2 JP4641867 B2 JP 4641867B2
Authority
JP
Japan
Prior art keywords
data
pixels
pixel
output
image data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005157745A
Other languages
English (en)
Other versions
JP2006333372A (ja
Inventor
裕文 藤川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP2005157745A priority Critical patent/JP4641867B2/ja
Publication of JP2006333372A publication Critical patent/JP2006333372A/ja
Application granted granted Critical
Publication of JP4641867B2 publication Critical patent/JP4641867B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Input (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)

Description

この発明は、画像処理装置に関し、特にたとえばディジタルカメラに適用され、画像データに2次元フィルタ処理を施す、画像処理装置に関する。
従来のこの種の装置の一例が、特許文献1に開示されている。この従来技術によれば、画像データにフィルタ処理を施すときに、処理領域に応じてフィルタ係数が変更される。たとえば、画像の中央領域に注目するときは9×9タップが選択され、画像の端部領域に注目するときは3×3タップが選択される。これによって、画像の全域にわたって有効なフィルタ処理結果が得られる。
特開2001−76135号公報[G06T 5/20, G01N 21/88, H04N 1/60]
しかし、従来技術の2次元フィルタ処理は、画像データに局所的に発生した光量ムラなどの欠陥を補正するために実行される。換言すれば、画像の全域に均一に発生した歪みの補正は想定しておらず、かかる歪みに適した処理動作についても何ら開示されていない。
それゆえに、この発明の主たる目的は、全域に均一に現れた歪みを的確に補正することができる、画像処理装置を提供することである。
請求項1の発明に従う画像処理装置(10)は、撮影操作によって取得された1画面の被写界像データをメモリエリア(58)に書き込む第1書き込み手段(44b, 56d)、指定数の画素の画素データをメモリエリアから周期的に読み出す読み出し手段(56d, 60, 62)、読み出し手段によって読み出された画素データに演算処理を施して所定数の画素の処理画素データを周期的に作成する作成手段(68)、撮影操作に起因する被写界の振れ量を検出する検出手段(72)、作成手段の演算処理量を検出手段の検出結果に応じた量に設定する処理量設定手段(S9, S17)、および読み出し手段による読み出し画素数の指定を作成手段の演算処理量に応じて変更する第1数値変更手段(S11, S19)を備える。
第1書き込み手段は、撮影操作によって取得された1画面の被写界像データをメモリエリアに書き込み、読み出し手段は、指定数の画素の画素データをメモリエリアから周期的に読み出す。読み出された画素データは作成手段によって演算処理を施され、これによって所定数の画素の処理画素データが周期的に作成される。撮影操作に起因する被写界の振れ量は、検出手段によって検出される。処理量設定手段は、作成手段の演算処理量を検出手段の検出結果に応じた量に設定し、第1数値設定手段は、読み出し手段による読み出し画素数の指定を作成手段の演算処理量に応じて変更する。
作成手段に求められる演算処理量は、被写界像データの品質つまり被写界の振れ量によって異なる。そこで、請求項1の発明では、被写界の振れ量を検出し、この検出結果に対応する演算処理量を作成手段に設定するようにしている。また、1回の演算処理に必要なデータ量は、設定された演算処理量に依存する。そこで、請求項1の発明では、読み出し手段による読み出し画素数の指定を作成手段の演算処理量に応じて変更するようにしている。
これによって、手振れに起因する歪が現れている画像データに的確な補正処理を施すことができる。
請求項2の発明に従う画像処理装置は、請求項1に従属し、読み出し手段による読み出し周期を作成手段の演算処理量に応じて変更する周期変更手段(S11, S19)をさらに備える。これによって、振れ量が小さいときに演算処理に要する時間を短縮できる。
請求項3の発明に従う画像処置装置は、請求項1または2に従属し、読み出し手段による読み出し画素は部分的に重複し、重複する読み出し画素の数を作成手段の演算処理量に応じて変更する第2数値変更手段(S15, S23)をさらに備える。これによって、処理画素の部分的な欠落を防止できる。
請求項4の発明に従う画像処理装置は、請求項1ないし3のいずれかに従属し、読み出し手段によって読み出された画素データを格納する一時メモリ(78a~78e, 80a~80e)をさらに備え、読み出し手段は垂直画素方向に読み出しを行い、作成手段は一時メモリに格納された画素データに対して演算処理を実行する。これによって、2次元の演算処理が可能となる。
請求項5の発明に従う画像処理装置は、請求項4に従属し、演算処理は2次元フィルタ処理である。
請求項6の発明に従う画像処理装置は、請求項1に従属し、被写界像データは各々が第1サイズを有する複数の水平ラインの画素データによって形成され、各々が第1サイズよりも大きい第2サイズを有する複数のメモリブロックをメモリエリア上に割り当てる割り当て手段(56f)をさらに備える。
請求項7の発明に従う画像処理装置は、請求項6に従属し、第1書き込み手段は被写界像データを形成する複数の水平ラインの画素データを複数のメモリブロックにそれぞれ書き込み、所定数は指定数よりも小さく、作成手段によって作成された複数の水平ラインの処理画素データを複数のメモリブロックにそれぞれ書き込む第2書き込み手段(64, 66, 56d)、および複数のメモリブロックの各々に対する第1書き込み手段の書き込み開始位置と複数のメモリブロックの各々に対する第2書き込み手段の書き込み開始位置との間にオフセットを確保する確保手段(56r)をさらに備える。
所定数は指定数よりも小さいため、作成手段によって作成される処理画素データの部分的な欠落を防止するには、指定数の水平画素の部分的な重複つまり一部の画素データの繰り返し読み出しが必要となる。そこで、メモリブロックのサイズを水平ラインの画素データのサイズよりも大きくし、第1書き込み手段の書き込み開始位置と第2書き込み手段の書き込み開始位置との間にオフセットを確保するようにしている。
この結果、繰り返し読み出しが必要な画素データが演算処理を施された画素データによって上書きされる事態を回避することができる。つまり、容量が少ないメモリエリアへの簡単なアクセス処理で、画像データに所望の演算処理を施すことができる。
請求項8の発明に従う画像処理装置は、請求項7に従属し、読み出し手段よる読み出し画素の部分的な重複を指示する指示手段(S11, S19)をさらに備える。これによって、画面全体にわたって演算処理が施された画像データが得られる。
この発明によれば、被写界の振れ量に対応する演算処理量を作成手段に設定し、読み出し手段による読み出し画素数の指定を作成手段の演算処理量に応じて変更するようにしたため、手振れに起因する歪が現れている画像データに高速かつ高性能の2次元フィルタ処理を施すことができる。
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
図1を参照して、この実施例のディジタルカメラ10は、光学レンズ12を含む。被写界の光学像は、光学レンズ12を通してイメージセンサ14の撮像面に入射する。撮像面では、被写界を表す電荷が光電変換によって生成される。
被写界を表すリアルタイム動画像(スルー画像)をLCDモニタ32に表示するとき、CPU40は、プリ露光の繰り返しと間引き読み出しとをTG(Timing Generator)16に命令する。TG16は、垂直同期信号が発生する毎に撮像面にプリ露光を施し、これによって生成された電荷を間引き態様で読み出す。この結果、一部の電荷によって形成される低解像度の生画像信号が、イメージセンサ14から周期的に出力される。
出力された生画像信号は、CDS/AGC/AD回路18で相関2重サンプリング,自動ゲイン調整およびA/D変換の一連の処理を施され、これによってディジタル信号である生画像データが得られる。信号処理回路20は、CDS/AGC/AD回路18から出力された生画像データに色分離,白バランス調整,YUV変換などの処理を施し、Y:U:V=4:2:2の比率を有する画像データを作成する。作成された画像データは、バッファ回路22に一時的に蓄えられる。バッファ回路22は、蓄積された画像データをバスB1を介して所定量ずつメモリ制御回路24に与える。画像データは、メモリ制御回路24によってSDRAM26に書き込まれる。
バッファ回路28は、SDRAM26に格納された画像データをバスB1およびメモリ制御回路24を通して所定量ずつ読み出し、読み出された画像データをビデオエンコーダ30に与える。ビデオエンコーダ30は、与えられた画像データをコンポジットビデオ信号に変換し、変換されたコンポジットビデオ信号をLCDモニタ32に与える。この結果、スルー画像がモニタ画面に表示される。
キー入力装置42によって撮影操作が行われると、CPU40は、1回の本露光と全画素読み出しとをTG16に命令する。TG16は、撮像面に本露光を施し、これによって生成された電荷の全て読み出す。この結果、全ての電荷によって形成される高解像度の生画像信号がイメージセンサ14から出力される。
出力された生画像信号は、上述と同様の処理を施される。つまり、CDS/AGC/AD回路18によって相関2重サンプリング,自動ゲイン調整およびA/D変換の一連の処理を施され、信号処理回路20によって色分離,白バランス調整,YUV変換などの処理を施される。Y:U:V=4:2:2の比率を有する画像データは、バッファ回路22,バスB1,メモリ制御回路24を経てSDRAM26に書き込まれる。
SDRAM26に格納された画像データはその後、後述する手振れ補正処理を施される。手振れ補正処理を施された画像データもまた、SDRAM26に格納される。
バッファ回路34は、手振れ補正処理が施された画像データをバスB1およびメモリ制御回路24を通して所定量ずつ読み出し、読み出された画像データをJPEGコーデック36に与える。画像データは、JPEG方式に従って圧縮される。圧縮画像データつまりJPEGデータは、バッファ回路38に一時的に蓄えられる。バッファ回路38は、蓄積されたJPEGデータをバスB1を介して所定量ずつメモリ制御回路24に与える。JPEGデータは、メモリ制御回路24によってSDRAM26に書き込まれる。
CPU40は、SDRAM26に確保されたJPEGデータをバスB1およびメモリ制御回路24を通して読み出し、読み出されたJPEGデータをI/F回路46を通して記録媒体48に記録する。
手振れ補正処理は、以下の要領で実行される。CPU40は、撮影操作が行われたとき、操作タイミング情報を含む撮影操作通知をCPU70に向けて発行する。この通知は、バスB1,バスブリッジ50,バスB2,バスI/F54およびバスB3を介して、CPU70に与えられる。CPU70は、与えられた撮影操作通知を参照して撮影操作が行われたタイミングを特定し、特定されたタイミングにおけるジャイロセンサ72の出力に基づいて撮影操作に起因する撮像面(被写界)の手振れ量を算出する。
検出された手振れ量が閾値を上回るときは“5×5”のタップ長が選択され、検出された手振れ量が閾値以下のときは“3×3”のタップ長が選択される。CPU70は、バスB3,バスI/F54およびバスB2を通してSRAM52にアクセスし、決定されたタップ長に対応するフィルタ係数をSRAM52から読み出す。読み出されたフィルタ係数は、フィルタ回路68に与えられる。
CPU70はまた、決定されたタップ長に対応するデータ読み出し周期,読み出しサイズおよび重複画素数をバッファ回路60および62に設定し、決定されたタップ長に対応するデータ書き込み周期,書き込みサイズおよび重複画素数をバッファ回路64および66に設定し、決定されたタップ長に対応する数値をデータ取得パラメータTR_1〜TR_4の各々ならびにフィルタ処理パラメータF_1〜F_4の各々に設定する。
“5×5”のタップ長が選択されたときは、データ読み出し周期“T5”,読み出しサイズ“68×52”および重複画素数“4”がバッファ回路60および62に設定され、データ書き込み周期“T5”,書き込みサイズ“64×48”および重複画素数“0”がバッファ回路64および66に設定される。
“3×3”のタップ長が選択されたときは、データ読み出し周期“T3”,読み出しサイズ“66×50”および重複画素数“2”がバッファ回路60および62に設定され、データ書き込み周期“T3”,書き込みサイズ“64×48”および重複画素数“0”がバッファ回路64および66に設定される。
また、“5×5”のタップ長が選択されときは、開始ライン番号“0”および取得量“50”がデータ取得パラメータTR_1に設定され、開始ライン番号“46”および取得量“52”がデータ取得パラメータTR_2に設定され、開始ライン番号“94”および取得量“52”がデータ取得パラメータTR_3に設定され、そして開始ライン番号“142”および取得量“50”がデータ取得パラメータTR_4に設定される。
“3×3”のタップ長が選択されときは、開始ライン番号“0”および取得量“49”がデータ取得パラメータTR_1に設定され、開始ライン番号“47”および取得量“50”がデータ取得パラメータTR_2に設定され、開始ライン番号“95”および取得量“50”がデータ取得パラメータTR_3に設定され、そして開始ライン番号“143”および取得量“49”がデータ取得パラメータTR_4に設定される。
さらに、“5×5”のタップ長が選択されたときは、上側画素“2”,右側画素“2”および左側画素“2”がフィルタ処理パラメータF_1に設定され、右側画素“2”および左側画素“2”がフィルタ処理パラメータF_2およびF_3の各々に設定され、下側画素“2”,右側画素“2”および左側画素“2”がフィルタ処理パラメータF_4に設定される。
“3×3”のタップ長が選択されたときは、上側画素“1”,右側画素“1”および左側画素“1”がフィルタ処理パラメータF_1に設定され、右側画素“1”および左側画素“1”がフィルタ処理パラメータF_2およびF_3の各々に設定され、下側画素“1”,右側画素“1”および左側画素“1”がフィルタ処理パラメータF_4に設定される。
撮影操作に応答してSDRAM26に確保される画像データは、水平256画素×垂直192ラインの解像度を有する。上述の開始ライン番号および取得量はそれぞれ、かかる画像データの垂直方向における開始画素位置および画素数を定義する。したがって、“5×5”のタップ長が選択されたときにデータ取得パラメータTR_1〜TR_4によって規定される範囲は、垂直方向において図4(A)に示すように部分的に重複する。また、“3×3”のタップ長が選択されたときにデータ取得パラメータTR_1〜TR_4によって規定される範囲は、垂直方向において図4(B)に示すように部分的に重複する。
データ取得パラメータTR_1〜TR_4の設定が完了すると、CPU70は、4つのデータ取得要求を図2(A)または図3(A)に示すタイミングでD1−I/F44aに向けて発行し、4つのフィルタ処理開始命令を図2(C)または図2(C)に示すタイミングでバッファ回路60および62の各々に向けて発行し、4つのデータ返送命令を図2(E)または図3(E)に示すタイミングでD1−I/F44bに向けて発行する。図2(A),図2(C)および図2(E)に示すタイミングは“5×5”のタップ長に対応し、図3(A),図3(C)および図3(E)に示すタイミングは“3×3”のタップ長に対応する。
D1−I/F44aに向けて発行される4つのデータ取得要求は、データ取得パラメータTR_1〜TR_4をそれぞれ含む。D1−I/F44aは、与えられたデータ取得要求のデータ取得パラメータによって規定される一部の画像データをメモリ制御回路24を通してSDRAM26から読み出す。読み出された画像データは、図2(B)または図3(B)に示すタイミングで、D1−I/F44bおよびメモリ制御回路56を通してSDRAM58に書き込まれる。
バッファ回路60および62の各々に向けて発行される4つのフィルタ処理開始命令は、フィルタ処理パラメータF_1〜F_4をそれぞれ含む。バッファ回路60および62の各々は、フィルタ処理開始命令が与えられる毎に、SDRAM58に格納された画像データを読み出す。読み出し周期,読み出しサイズ,および重複画素数は、CPU70の設定に従う。画像データを形成するYデータおよびU/Vデータは、バッファ回路60および62によってそれぞれ読み出される。
フィルタ処理回路68は、バッファ回路60および62からYデータおよびU/Vデータをそれぞれ入力し、入力されたYデータおよびU/Vデータに2次元フィルタ処理を施す。この処理には、CPU70によって設定されたフィルタ係数が用いられる。“5×5”のタップ長が選択されたときは水平5画素×垂直5ライン毎のフィルタ処理が行われ、“3×3”のタップ長が選択されたときは水平3画素×垂直3ライン毎のフィルタ処理が行われる。
フィルタ処理を施されたYデータはバッファ回路64,バスB4およびメモリ制御回路56を通してSDRAM58に戻され、フィルタ処理を施されたU/Vデータはバッファ回路66,バスB4およびメモリ制御回路56を通してSDRAM58に戻される。書き込み周期,書き込みサイズ,および重複画素数は、CPU70の設定に従う。
D1−I/F44bは、データ返送命令が発行される毎に、フィルタ処理を施された画像データをメモリ制御回路56を通してSDRAM58から読み出す。読み出された画像データは、D1−I/F44a,バスB1およびメモリ制御回路24を通してSDRAM26に書き込まれる。つまり、フィルタ処理を施された画像データは、図2(F)または図3(F)に示すタイミングでSDRAM58からSDRAM26に転送される。
図2(A)〜図2(C)および図4(A)から分かるように、“5×5”のタップ長が選択されたとき、フィルタ処理パラメータF_1に対応して注目される画像データは第0ライン〜第49ラインの画像データであり、フィルタ処理パラメータF_2に対応して注目される画像データは第46ライン〜第97ラインの画像データであり、フィルタ処理パラメータF_3に対応して注目される画像データは第94ライン〜第145ラインの画像データであり、そしてフィルタ処理パラメータF_4に対応して注目される画像データは第142ライン〜第191ラインの画像データである。
また、図3(A)〜図3(C)および図4(B)から分かるように、“3×3”のタップ長が選択されたとき、フィルタ処理パラメータF_1に対応して注目される画像データは第0ライン〜第48ラインの画像データであり、フィルタ処理パラメータF_2に対応して注目される画像データは第47ライン〜第96ラインの画像データであり、フィルタ処理パラメータF_3に対応して注目される画像データは第95ライン〜第144ラインの画像データであり、そしてフィルタ処理パラメータF_4に対応して注目される画像データは第143ライン〜第191ラインの画像データである。
バッファ回路60および62はそれぞれ、フィルタ処理パラメータF_1〜F_4を参照して、図4(A)または図4(B)に斜線で示す周辺領域の画素が直近の画素によって補完されるように、YデータおよびU/Vデータを読み出す。“5×5”のタップ長が選択されたときは2画素が周辺領域に割り当てられ、“3×3”のタップ長が選択されたときは1画素が周辺領域に割り当てられる。したがって、“5×5”のタップ長が選択されたときに発行されるフィルタ処理開始命令に対して注目される画像データのライン数はいずれも“52”である。また、“3×3”のタップ長が選択されたときに発行されるフィルタ処理命令に対して注目される画像データのライン数はいずれも“50である。
“5×5”のタップ長が選択されたとき、バッファ回路60および62は、設定された読み出しサイズ“68×52”に基づいて、注目する52ラインの画像データを水平68画素ずつ垂直方向に走査する。同時に設定された重複画素数は“4”であるため、水平方向には図4(A)に示すように4画素の重複が生じる。水平68画素のYデータおよびU/Vデータは、データ読み出し周期T5でフィルタ回路68に与えられる。
また、“3×3”のタップ長が選択されたとき、バッファ回路60および62は、設定された読み出しサイズ“66×50”に基づいて、注目する50ラインの画像データを水平66画素ずつ垂直方向に走査する。同時に設定された重複画素数は“2”であるため、水平方向には図4(B)に示すように2画素の重複が生じる。水平66画素のYデータおよびU/Vデータは、データ読み出し周期T3でフィルタ回路68に与えられる。
フィルタ回路68は、“5×5”のタップ長が選択されたとき水平68画素×垂直52ラインの画像データに基づいて水平64画素×垂直48ラインの処理画像データを作成し、“3×3”のタップ長が選択されたとき水平66画素×垂直50ラインの画像データに基づいて水平64画素×垂直48ラインの処理画像データを作成する。
バッファ回路64は、フィルタ処理を施されたYデータをSDRAM58に書き込むとき、水平64画素ずつ垂直画素方向に走査する。同様に、バッファ回路66は、フィルタ処理を施されたU/VデータをSDRAM58に書き込むとき、水平64画素ずつ垂直画素方向に走査する。“5×5”のタップ長が選択されたときは、データ書き込み周期T5が経過する毎に64画素のYデータまたはU/VデータがSDRAM58に書き込まれる。“3×3”のタップ長が選択されたときは、データ書き込み周期T3が経過する毎に64画素のYデータまたはU/VデータがSDRAM58に書き込まれる。
この結果、図4(A)に示す水平260画素×垂直196ラインの画像データまたは図4(B)に示す水平258画素×垂直194ラインの画像データに基づいて、図5に示す水平256画素×垂直192ラインの処理画像データが得られる。
CPU70は、詳しくは図6〜図7に示すフィルタ処理タスクを含む複数のタスクを並列的に実行する。なお、これらのタスクに対応する制御プログラムは、図示しないフラッシュメモリに記憶される。
撮影操作通知がCPU40から与えられると、ステップS1からステップS3に進み、撮影操作通知に含まれる操作タイミング情報を参照して、撮影操作が行われたタイミングでのジャイロセンサ72の出力を検出する。ステップS5では、検出されたジャイロセンサ72の出力に基づいて撮影操作に起因する手振れ量を算出する。ステップS7では算出された手振れ量が閾値THを上回るか否かを判別し、YESであればステップS9に進む一方、NOであればステップS17に進む。
ステップS9ではタップ長を“5×5”とし、ステップS11ではデータ読み出し周期,読み出しサイズおよび重複画素数をそれぞれ“T5”,“68×52”および“4”とし、ステップS13ではデータ書き込み周期,書き込みサイズおよび重複画素数をそれぞれ“T5”,“64×48”および“0”とする。ステップS15ではデータ取得パラメータTR_1〜TR_4を“5×5”のタップ長に対応する数値に設定し、ステップS25ではフィルタ処理パラメータF_1〜F_4を“5×5”のタップ長に対応する数値に設定する。
一方、ステップS17ではタップ長を“3×3”とし、ステップS19ではデータ読み出し周期,読み出しサイズおよび重複画素数を“T3”,“66×50”および“2”とし、ステップS21ではデータ書き込み周期,書き込みサイズおよび重複画素数を“T3”,“64×48”および“0”する。ステップS23ではデータ取得パラメータTR_1〜TR_4を“3×3”のタップ長に対応する数値に設定し、ステップS27ではフィルタ処理パラメータF_1〜F_4を“3×3”のタップ長に対応する数値に設定する。
ステップS9またはS17の処理によって、所望のタップ長に対応するフィルタ係数がフィルタ回路68に設定される。ステップS11またはS19の処理によって、所望のデータ読み出し周期,読み出しサイズおよび重複画素数がバッファ回路60および62に設定される。ステップS13またはS21の処理によって、所望のデータ書き込み周期,書き込みサイズおよび重複画素数がバッファ回路64および66に設定される。
ステップS15の処理では、データ取得パラメータTR_1は開始ライン番号および取得量として“0”および“50”をそれぞれ有し、データ取得パラメータTR_2は開始ライン番号および取得量として“46”および“52”をそれぞれ有し、データ取得パラメータTR_3は開始ライン番号および取得量として“94”および“52”をそれぞれ有し、データ取得パラメータTR_4は開始ライン番号および取得量として“142”および“50”をそれぞれ有する。
また、ステップS25の処理では、フィルタ処理パラメータF_1は上側補完画素数,右側補完画素数および左側補完画素数として“2”を有し、フィルタ処理パラメータF_2およびF_3の各々は右側補完画素数および左側補完画素数として“2”を有し、フィルタ処理パラメータF_4は下側補完画素数,右側補完画素数および左側補完画素数として“2”を有する。
ステップS23の処理では、データ取得パラメータTR_1は開始ライン番号および取得量として“0”および“49”をそれぞれ有し、データ取得パラメータTR_2は開始ライン番号および取得量として“47”および“50”をそれぞれ有し、データ取得パラメータTR_3は開始ライン番号および取得量として“95”および“50”をそれぞれ有し、データ取得パラメータTR_4は開始ライン番号および取得量として“143”および“49”をそれぞれ有する。
また、ステップS27の処理では、フィルタ処理パラメータF_1は上側補完画素数,右側補完画素数および左側補完画素数として“1”を有し、フィルタ処理パラメータF_2およびF_3の各々は右側補完画素数および左側補完画素数として“1”を有し、フィルタ処理パラメータF_4は下側補完画素数,右側補完画素数および左側補完画素数として“1”を有する。
ステップS29では変数Xを“1”に設定し、ステップS31ではデータ取得パラメータを“TR_X”とするデータ取得命令をD1−I/F44aに向けて発行する。この結果、“TR_X”によって指定された範囲に属する一部の画像データが、SDRAM26からSDRAM58に転送される。
ステップS33では所定時間待機し、続くステップS33ではフィルタ処理パラメータを“F_X”とするフィルタ処理開始命令をバッファ回路60および62に向けて発行する。SDRAM58に格納された画像データは、設定されたデータ読み出し周期,読み出しサイズおよび重複画素数に従う態様で読み出され、フィルタ回路68によって2次元フィルタ処理を施される。処理された画像データはバッファ回路64および66に与えられ、設定されたデータ書き込み周期,書き込みサイズおよび重複画素数に従う態様でSDRAM58に戻される。SDRAM58には、水平64画素×垂直48ラインの処理画像データが確保される。
ステップS37では水平64画素×垂直48ラインの処理画像データが得られたか否かを判断し、YESであればステップS39でD1−I/F44bに向けてデータ返送命令を発行する。SDRAM58に確保された処理画像データは、D1−I/F44bによってSDRAM26に転送される。
ステップS41では、変数Xを“4”と比較する。変数Xが“4”に満たないときは、ステップS43で変数Xをインクリメントし、ステップS31に戻る。変数Xが“4”に達すると、ステップS1に戻る。
メモリ制御回路56は、図8に示すように構成される。SDRAM58へのデータ書き込みを担うD1−I/F44b,バッファ回路64および66の各々は、“データ書き込み”のアクセス態様情報とアクセスする画素数を示す画素数情報と出力元の識別情報とを含むリクエストを調停回路56cに与え、hv座標系のアドレスが記述されたアドレス情報をアドレス選択回路56eに与え、そして書き込むべき画像データを3ステートバッファ56aに与える。
特に、バッファ回路64および66の各々は、“5×5”のタップ長が選択されたとき“64”を示す画素数情報を含むリクエストをデータ書き込み周期T5で発行し、“3×3”のタップ長が選択されたとき“64”を示す画素数情報を含むリクエストをデータ書き込み周期T3で発行する。アドレス情報は、書き込みサイズ“64×48”に基づく。
一方、SDRAM58からのデータ読み出しを担うD1−I/F44b,バッファ回路60および62の各々は、“データ読み出し”のアクセス態様情報とアクセスする画素数を示す画素数情報と出力元の識別情報とを含むリクエストを調停回路56cに与え、hv座標系のアドレスが記述されたアドレス情報をアドレス選択回路56eに与える。
特に、バッファ回路60および62の各々は、“5×5”のタップ長が選択されたとき“68”を示す画素数情報を含むリクエストをデータ読み出し周期T5で発行し、“3×3”のタップ長が選択されたとき“66”を示す画素数情報を含むリクエストをデータ読み出し周期T3で発行する。また、アドレス情報は、読み出しサイズ“68×52”または“66×50”に基づく。
なお、SDRAM58へのアクセス動作は、バースト転送態様で実行される。具体的には、1回のバーストアクセス動作によって、画素数情報によって指定される画素数に相当するデータ書き込み/データ読み出しが実行される。
調停回路56cは、与えられた複数のリクエストの中から優先度が最も高いリクエストを選択し、選択されたリクエストの出力元に承認信号ACKを返送し、選択されたリクエストに対応するアドレス情報の選択をアドレス選択回路56eに命令し、そして選択されたリクエストに含まれるアクセス態様情報に従うアクセス動作をメモリアクセス回路56dに命令する。選択されたリクエストがD1−I/F44bからSDRAM58への書き込みのリクエストであれば、調停回路56cは、オフセットの確保をアドレス変換回路56fに命令する。
アドレス選択回路56eは、与えられたアドレス情報の中から命令に従うアドレス情報を選択し、選択されたアドレス情報をアドレス変換回路56fに与える。
アドレス変換回路56fは、与えられたアドレス情報が示す水平アドレスおよび垂直アドレスを所定の演算式を用いてロウアドレスおよびカラムアドレスに変換する。オフセットの確保が命令されたとき、アドレス変換回路56fは、レジスタ56rに設定されたオフセット値を変換されたロウアドレスおよびカラムアドレスに加算する。こうして決定されたロウアドレスおよびカラムアドレスは、SDRAM58に向けて出力される。まずロウアドレスが出力され、続いてカラムアドレスが出力される。
メモリアクセス回路56dは、アドレス変換回路56fからロウアドレスが出力されるタイミングでRAS(Row Address Strobe)信号とアクティブコマンドとを出力し、アドレス変換回路56fからカラムアドレスが出力されるタイミングでCAS(Column Address Strobe)信号と書き込み/読み出しコマンドを出力する。メモリアクセス回路56dはさらに、データ書き込みを行うとき3ステートバッファ56aを能動化し、データ読み出しを行うとき3ステートバッファ56bを能動化する。
この結果、データ書き込みのためにD1−I/F44b,バッファ回路64または66から出力された指定画素数の画素データは、3ステートバッファ56aを介してSDRAM58に与えられ、アドレス変換回路56fによって指定されたロウアドレスおよびカラムアドレスを基点として連続する複数のアドレスに書き込まれる。
また、データ読み出し時は、アドレス変換回路56fによって指定されたロウアドレスおよびカラムアドレスを基点として連続する複数のアドレスから、指定画素数の画素データが読み出される。読み出された画素データは、3ステートバッファ56bを介してD1−I/F44b,バッファ回路60または62に与えられる。
図9(A)および図9(B)を参照して、SDRAM58のメモリエリアは、複数のメモリブロックMB1,MB2,MB3,…に分割される。各々のメモリブロックのサイズは、たとえば300画素の画素データを格納できる容量を有する。D1−I/F44bから与えられた画像データを形成する複数ラインの画素データは、複数のメモリブロックにそれぞれ書き込まれる。バッファ回路64および66から出力された画像データを形成する複数ラインの画素データもまた、複数のメモリブロックにそれぞれ書き込まれる。
ただし、D1−I/F44bからの画像データを書き込みときはレジスタ56rに設定されたオフセットが有効化されるため、書き込みを開始するロウアドレスおよびカラムアドレスは、先頭からオフセットに相当する距離だけ後方にシフトされる。
この結果、フィルタ処理を施される前の画像データを形成する複数ラインの画素データは、図9(A)に示す要領で複数のメモリブロックにそれぞれ書き込まれる。一方、フィルタ処理を施された画像データを形成する複数ラインの画素データは、図9(B)に示す要領で複数のメモリブロックにそれぞれ書き込まれる。
フィルタ回路68は、図10に示すように構成される。レジスタ74a〜74eは、CPU70から出力されたフィルタ係数を保持する。“5×5”のタップ長が選択されたときは、フィルタ係数C(0)〜C(4)がレジスタ74a〜74eにそれぞれ設定される。“3×3”のタップ長が選択されたときは、フィルタ係数C(0)〜C(2)がレジスタ74a〜74cにそれぞれ設定され、“0”がレジスタ74dおよび74eの各々に設定される。
なお、“5×5”のタップ長が選択されたとき、フィルタ係数C(0)が示す数値は、注目するラインが変更される毎に“c01”→“c02”→“c03”→“c04”→“c05”→“c01”→…の要領で更新され、フィルタ係数C(1)が示す数値は、注目するラインが変更される毎に“c11”→“c12”→“c13”→“c14”→“c15”→“c11”→…の要領で更新される。同様に、フィルタ係数C(2)が示す数値は、注目するラインが変更される毎に“c21”→“c22”→“c23”→“c24”→“c25”→“c21”→…の要領で更新され、フィルタ係数C(3)が示す数値は、注目するラインが変更される毎に“c31”→“c32”→“c33”→“c34”→“c35”→“c31”→…の要領で更新され、フィルタ係数C(4)が示す数値は、注目するラインが変更される毎に“c41”→“c42”→“c43”→“c44”→“c45”→“c41”→…の要領で更新される。
また、“3×3”のタップ長が選択されたとき、フィルタ係数C(0)が示す数値は、注目するラインが変更される毎に“c01”→“c02”→“c03”→“c01”→…の要領で更新され、フィルタ係数C(1)が示す数値は、注目するラインが変更される毎に“c11”→“c12”→“c13”→“c11”→…の要領で更新され、フィルタ係数C(2)が示す数値は、注目するラインが変更される毎に“c21”→“c22”→“c23”→“c21”→…の要領で更新される。
セレクタ76aは、バッファ回路60から入力されたYデータの書き込み先をラインメモリ78a〜78eの間で循環的に切り換え、セレクタ76bは、バッファ回路62から入力されたU/Vデータの書き込み先をラインメモリ80a〜80eの間で循環的に切り換える。“5×5”のタップ長が選択されたとき、切り換え周期はデータ読み出し周期T5に一致する。“3×3”のタップ長が選択されたとき、切り換え周期はデータ読み出し周期T3に一致する。セレクタ76aの切り換え動作はバッファ回路60によって実行され、セレクタ76bの切り換え動作はバッファ回路62によって実行される。
この結果、ラインメモリ78a〜78eは、“5×5”のタップ長が選択されたとき図11(A)に示すように水平68画素×垂直5ラインのYデータを保持し、“3×3”のタップ長が選択されたとき図12(A)に示すように水平66画素×垂直3ラインのYデータを保持する。同様に、ラインメモリ80a〜80eの各々は、“5×5”のタップ長が選択されたとき図11(A)に示すように水平68画素のU/Vデータを保持し、“3×3”のタップ長が選択されたとき図12(A)に示すように水平66画素のU/Vデータを保持する。
フィルタ演算回路82aは、ラインメモリ78a〜78eの各々から水平5画素ずつYデータを読み出し、読み出された5画素のYデータとレジスタ74a〜74eに保持されたフィルタ係数C(0)〜C(4)とに基づいて1画素のY’データを作成する。作成されたY’データは、注目する水平5画素の中央に割り当てられる。
フィルタ演算回路82bも同様に、ラインメモリ80a〜80eの各々から水平5画素ずつU/Vデータを読み出し、読み出された5画素のU/Vデータとレジスタ74a〜74eに保持されたフィルタ係数C(0)〜C(4)とに基づいて1画素のU’/V’データを作成する。作成されたU’/V’データも、注目する水平5画素の中央に割り当てられる。
この結果、“5×5”のタップ長が選択されたときは、図11(A)に示す水平68画素×垂直5ラインのYデータまたはU/Vデータに基づいて、図11(B)に示す水平64画素×垂直5ラインのYデータまたはU/Vデータが作成される。また、“3×3”のタップ長が選択されたときは、図12(A)に示す水平66画素×垂直3ラインのYデータまたはU/Vデータに基づいて、図12(B)に示す水平64画素×垂直3ラインのYデータまたはU/Vデータが作成される。
図11(B)に示す画素PH1〜PH6はそれぞれ、図11(A)に示す画素ブロックPB1〜PB6に基づいて作成される。また、図12(B)に示す画素PH7〜PH9はそれぞれ、図12(A)に示す画素ブロックPB7〜PB9に基づいて作成される。
フィルタ演算回路82aから出力されたY’データは、加算器84aを経てラインメモリ86aに書き込まれる。コントローラ88aは、次ラインに属する64画素のY’データがフィルタ演算回路82aから出力されるときに、ラインメモリ86aに格納された現ラインのY’データを加算器84aに与える。現ラインのY’データおよび次ラインのY’データは、加算器84aによって加算される。
同様に、フィルタ演算回路82bから出力されたU’/V’データは、加算器84bを経てラインメモリ86bに書き込まれる。コントローラ88bは、次ラインに属する64画素のU’/V’データがフィルタ演算回路82bから出力されるときに、ラインメモリ86bに格納された現ラインのU’/V’データを加算器84bに与える。現ラインのY’データおよび次ラインのY’データは、加算器84bによって加算される。
“5×5”のタップ長が選択されたときは、かかる加算処理が垂直5ラインにわたって実行される。図11(C)に示す水平64画素×垂直1ラインのY”データおよびU”/V”データは、垂直5ライン毎に得られる。また、“3×3”のタップ長が選択されたときは、かかる加算処理が3ラインにわたって実行される。図12(C)に示す水平64画素×垂直1ラインのY”データおよびU”/V”データは、垂直3ライン毎に得られる。Y”データはバッファ回路64に向けて出力され、U”/V”データはバッファ回路66に向けて出力される。
フィルタ演算回路82aは、図13に示すように構成される。セレクタ90は、“5×5”のタップ長が選択されたとき、画素クロックに応答してフィルタ係数C(0)〜C(4)を順に選択する。画素クロックが図14(A)に示す要領で変化するとき、フィルタ係数C(0)〜C(4)は、図14(B)に示す要領でセレクタ90から出力され、ラッチ回路92,94,96,98および100によって形成される経路上を画素クロックに応答してシフトされる。
セレクタ90はまた、“3×3”のタップ長が選択されたとき、画素クロックに応答してフィルタ係数C(0)〜C(2)を順に選択する。画素クロックが図14(B)に示す要領で変化するとき、フィルタ係数C(0)〜C(4)は、図14(B)に示す要領でセレクタ90から出力され、ラッチ回路92,94,96,98および100によって形成される経路上を画素クロックに応答してシフトされる。
ラッチ回路92の出力は図14(C)または図15(C)に示す要領で変化し、ラッチ回路94の出力は図14(D)または図15(D)に示す要領で変化し、ラッチ回路96の出力は図14(E)または図15(E)に示す要領で変化し、ラッチ回路98の出力は図14(F)または図15(F)に示す要領で変化し、ラッチ回路100の出力は図14(G)または図15(G)に示す要領で変化する。
一方、セレクタ112は、ラインメモリ78a〜78eのいずれか1つから出力された水平68画素または水平66画素のYデータを選択する。Yデータは、図14(H)または図15(H)に示す要領でセレクタ112から出力される。ここで、“Y(n)”は、注目する水平68画素または66画素の先頭からn画素目のYデータを意味する。出力されたYデータは、フリップフロップ回路114,116,118,120および122によって形成される経路上を画素クロックに応答してシフトされる。
フリップフロップ回路114の出力は図14(I)または図15(I)に示す要領で変化し、フリップフロップ回路116の出力は図14(J)または図15(J)に示す要領で変化し、フリップフロップ回路118の出力は図14(K)または図15(K)に示す要領で変化し、フリップフロップ回路120の出力は図14(L)または図15(L)に示す要領で変化し、フリップフロップ回路122の出力は図14(M)または図15(M)に示す要領で変化する。
乗算器102はフリップフロップ回路114から出力されたYデータをラッチ回路92の出力によって乗算し、乗算器104はフリップフロップ回路116から出力されたYデータをラッチ回路94の出力によって乗算し、乗算器106はフリップフロップ回路118から出力されたYデータをラッチ回路96の出力によって乗算し、乗算器108はフリップフロップ回路120から出力されたYデータをラッチ回路98の出力によって乗算し、乗算器110はフリップフロップ回路122から出力されたYデータをラッチ回路100の出力によって乗算する。
加算器124は、乗算器102,104,106,108および110によってそれぞれ算出された5個の乗算値を互いに加算する。この結果、加算値を示すY’データが、図14(N)または図15(N)に示す要領で加算器124から出力される。
フィルタ演算回路82bは、図16に示すように構成される。セレクタ126は、ラインメモリ80a〜80eのいずれか1つから出力された水平68画素または水平66画素のU/Vデータを選択する。U/Vデータは、図17(B)または図18(B)に示す要領でセレクタ126から出力される。ここで、“U(n)”は注目する水平68画素または水平66画素の先頭からn画素目のUデータを意味し、“V(n)”は注目する水平68画素または水平66画素の先頭からn画素目のVデータを意味する。出力されたU/Vデータは、フリップフロップ回路128,130,132および134によって形成される経路上を、図17(A)または図18(A)に示す画素クロックに応答してシフトされる。
フリップフロップ回路130の出力は図17(C)または図18(C)に示す要領で変化し、フリップフロップ回路134の出力は図17(D)または図18(D)に示す要領で変化する。
“5×5”のタップ長が選択されたとき、セレクタ136は、“0”およびフィルタ係数C(3)を画素クロックに応答して交互に選択し、セレクタ138は、フィルタ係数C(3)およびC(1)を画素クロックに応答して交互に選択し、セレクタ140は、フィルタ係数C(1)および“0”を画素クロックに応答して交互に選択する。セレクタ136の出力は図17(E)に示す要領で変化し、セレクタ138の出力は図17(F)に示す要領で変化し、セレクタ140の出力は図17(G)に示す要領で変化する。
加算器142はセレクタ136の出力をフィルタ係数C(4)と加算し、加算器144はセレクタ138の出力をフィルタ係数C(2)と加算し、加算器146はセレクタ140の出力をフィルタ係数C(0)と加算する。加算器142の加算結果は図17(H)に示す要領で変化し、加算器144の加算結果は図17(I)に示す要領で変化し、加算器146の加算結果は図17(J)に示す要領で変化する。
セレクタ148はセレクタ126の出力を選択し、セレクタ150はフリップフロップ回路130の出力を選択する。乗算器152はセレクタ148の出力を加算器142の加算結果によって乗算し、乗算器154はセレクタ150の出力を加算器144の加算結果によって乗算する。さらに、乗算器156は、フリップフロップ回路134の出力を加算器146の出力によって乗算する。加算器158は、乗算器152の乗算結果を乗算器154の乗算結果と加算し、加算器160は、加算器158の加算結果を乗算器156の乗算結果と加算する。この結果、加算値を示すU’/V’データが、図17(K)に示す要領で加算器160から出力される。
“3×3”のタップ長が選択されたとき、セレクタ136は、“0”およびフィルタ係数C(1)を画素クロックに応答して交互に選択し、セレクタ138は、フィルタ係数C(1)および“0”を画素クロックに応答して交互に選択する。セレクタ136の出力は図18(E)に示す要領で変化し、セレクタ138の出力は図18(F)に示す要領で変化する。
セレクタ148はフリップフロップ回路130の出力およびセレクタ126の出力を画素クロックに応答して交互に選択し、セレクタ150はフリップフロップ回路134の出力およびフリップフロップ回路130の出力を画素クロックに応答して交互に選択する。セレクタ148の出力は図18(G)に示す要領で変化し、セレクタ150の出力は図18(H)に示す要領で変化する。
加算器142はセレクタ136の出力をフィルタ係数C(2)と加算し、加算器144はセレクタ138の出力をフィルタ係数C(0)と加算する。加算器142の加算結果は図18(I)に示す要領で変化し、加算器144の加算結果は図18(J)に示す要領で変化する。なお、“3×3”のタップ長が選択されたとき、セレクタ140および加算器146の入力はいずれも“0”である。
乗算器152,154および156ならびに加算器158および160は、上述と同様に動作する。この結果、図18(K)に示すU’/V’データが加算器160から出力される。
したがって、“5×5”のタップ長が選択されたときは数1および数2に従う演算が実行され、“3×3”のタップ長が選択されたときは数3および数4に従う演算が実行される。
Figure 0004641867
Figure 0004641867
Figure 0004641867
Figure 0004641867
数1に従う演算が行われたとき、U(n)’データは図19(A)に示す要領で作成され、数2に従う演算が行われたとき、V(n)’データは図19(B)に示す要領で作成される。また、数3に従う演算が行われたとき、U(n)’データは図20(A)に示す要領で作成され、数4に従う演算が行われたとき、V(n)’データは図20(B)に示す要領で作成される。
数1および図19(A)によれば、無効画素U(n−1)に割り当てられるフィルタ係数C(1)が有効画素U(n−2)に割り当てられるフィルタ係数C(0)に加算され、有効画素U(n−2)が加算値C(0)+C(1)によって乗算される。また、無効画素U(n+1)に割り当てられるフィルタ係数C(3)が有効画素U(n)に割り当てられるフィルタ係数C(2)に加算され、有効画素U(n)が加算値C(2)+C(3)によって乗算される。乗算処理の対象から外れた有効画素U(n+2)は、加算処理の対象から外れたフィルタ係数C(4)によって乗算される。U(n)’は、こうして求められた乗算値の総和を示す。
数2および図19(B)によれば、無効画素V(n−1)に割り当てられるフィルタ係数C(1)が有効画素V(n)に割り当てられるフィルタ係数C(2)に加算され、有効画素V(n)が加算値C(1)+C(2)によって乗算される。また、無効画素V(n+1)に割り当てられるフィルタ係数C(3)が有効画素V(n+2)に割り当てられるフィルタ係数C(4)に加算され、有効画素V(n+2)が加算値C(3)+C(4)によって乗算される。乗算処理の対象から外れた有効画素V(n−2)は、加算処理の対象から外れたフィルタ係数C(0)によって乗算される。V(n)’は、こうして求められた乗算値の総和を示す。
数3および図20(A)によれば、無効画素U(n−1)に割り当てられるフィルタ係数C(1)が有効画素U(n)に割り当てられるフィルタ係数C(2)に加算され、有効画素U(n)が加算値C(1)+C(2)によって乗算される。乗算処理の対象から外れた有効画素U(n−2)は、加算処理の対象から外れたフィルタ係数C(0)によって乗算される。U(n)’は、こうして求められた乗算値の総和を示す。
数4および図20(B)によれば、無効画素V(n−1)に割り当てられるフィルタ係数C(1)が有効画素V(n−2)に割り当てられるフィルタ係数C(0)に加算され、有効画素V(n−2)が加算値C(1)+C(2)によって乗算される。乗算処理の対象から外れた有効画素V(n)は、加算処理の対象から外れたフィルタ係数C(2)によって乗算される。V(n−2)’は、こうして求められた乗算値の総和を示す。
以上の説明から分かるように、D1−I/F44aは、各々が256画素を有する複数の水平ラインの画素データによって形成される画像データを出力する。また、メモリ制御回路56のアドレス変換回路56fは、各々が256画素よりも大きい300画素の画素データを格納できるサイズを有する複数のメモリブロックMB1,MB2,MB3,…を、SDRAM58のメモリエリア上に割り当てる。D1−I/F44aによって出力された画像データを形成する複数の水平ラインの画素データはそれぞれ、D1−I/F44bによって複数のメモリブロックMB1,MB2,MB3,…に書き込まれる。
メモリアクセス回路56d,バッファ回路60および62は、指定数の水平画素の画素データをSDRAM58から周期的に読み出す。読み出された画素データは、フィルタ回路68によって演算処理を施される。これによって、指定数よりも小さい所定数(=64)の水平画素の処理画素データが周期的に作成される。作成された複数の水平ラインの処理画素データはそれぞれ、バッファ回路64,66およびメモリアクセス回路56dによって複数のメモリブロックMB1,MB2,MB3,…にそれぞれ書き込まれる。
ここで、レジスタ56rは、D1−I/F44bからの画像データを書き込むときのメモリブロック上の書き込み開始位置とバッファ回路64または66からの画像データを書き込むときのメモリブロック上の書き込み開始位置との間にオフセットを確保する。
所定数(=64)は指定数よりも小さいため、フィルタ回路68によって作成される処理画素データの部分的な欠落を防止するには、指定数の水平画素の部分的な重複つまり一部の画素データの繰り返し読み出しが必要となる。そこで、この実施例では、メモリブロックMB1,MB2,MB3,…の各々のサイズを水平ラインの画素データのサイズよりも大きくし、D1−I/F44bからの画像データの書き込み開始位置とバッファ回路64または66からの画像データの書き込み開始位置との間にオフセットを確保するようにしている。
この結果、繰り返し読み出しが必要な画素データが演算処理を施された画素データによって上書きされる事態を回避することができる。つまり、容量が少ないメモリエリアへの簡単なアクセス処理で、画像データに所望の演算処理を施すことができる。
また、上述した処理画素データの部分的な欠落を防止するために、SDRAM58から読み出される指定数の画素の部分的な重複が、CPU70によって指示される(S11, S19)。これによって、画面全体にわたって演算処理が施された画像データが得られる。
さらに、CPU70は、読み出し画素の指定数を、画像データの水平方向中央部よりも画像データの水平方向端部において小さくする(S11, S25, S19, S27)。また、バッファ回路60および62の各々は、水平方向端部から読み出された画素データの画素数を、タップ長が“5×5”のときに“66”から“68”に増大させ、タップ長が“3×3”のときに“65”から“66”に増大させる。画素数の増大によって、演算処理を施された画像データにおける解像度の劣化を防止できる。
なお、増大された画素数は、水平方向端部から読み出された画素データの画素数と一致する。これによって、演算処理を施された画像データの解像度を演算処理を施される前の画像データの解像度と一致させることができる。
また、D1−I/F44aによって出力される画像データは、撮影操作によって取得された被写界像データであり、撮影操作に起因する被写界の振れ量は、ジャイロセンサ72によって検出される。CPU70は、フィルタ回路68の演算処理量をジャイロセンサ72の検出結果に応じた量に設定し(S9, S17)、SDRAM58からの読み出し画素数の指定をフィルタ回路68の演算処理量に応じて変更する(S11, S19)。
フィルタ回路に求められる演算処理量は、被写界像データの品質つまり被写界の振れ量によって異なる。そこで、この実施例では、被写界の振れ量を検出し、この検出結果に対応する演算処理量をフィルタ回路68に設定するようにしている。また、1回の演算処理に必要なデータ量は、設定された演算処理量に依存する。そこで、この実施例では、読み出し画素数の指定をフィルタ回路68の演算処理量に応じて変更するようにしている。これによって、手振れに起因する歪を的確に補正することができる。
さらに、CPU70は、指定数の画素の読み出し周期をフィルタ回路68の演算処理量に応じて変更する(S11, S19)。これによって、振れ量が小さいときに演算処理に要する時間を短縮できる。
さらに、この実施例では、UデータおよびVデータの各々は、交互に配置された有効画素および無効画素によって形成された画像データである。フィルタ演算回路82bは、かかる画像データに、5個のフィルタ係数を用いた5画素毎のフィルタ処理または3個のフィルタ係数を用いた3画素毎のフィルタ処理を施す。フィルタ演算回路82bからは、有効画素によって形成される処理画像データが出力される。
このとき、加算器142,144または146は、5個または3個のフィルタ係数のうち無効画素に割り当てられるフィルタ係数を有効画素に割り当てられるフィルタ係数に加算する。加算結果は、乗算器152,154または156によって有効画素に乗算される。加算器160は、乗算結果に基づいて処理画像データを形成する1画素を出力する。
有効画素および無効画素にそれぞれ割り当てられる2つのフィルタ係数を互いに加算し、加算結果を有効画素に乗算することで、無効画素を有効画素で補間し、有効画素および補間画素に2つのフィルタ係数をそれぞれ乗算し、そして乗算結果を互いに加算する場合に比べて、処理が簡略化される。つまり、処理を簡略化しつつ、的確なフィルタ処理が実現される。
なお、この実施例では、撮影操作に起因する手振れをフィルタ回路68によって補正するようにしているが、フィルタ回路68は記録済みの画像データに特殊効果を施すために使用するようにしてもよい。この場合、CPU70は、再生モードが選択されたときに図21(および図6〜図7)に示すフロー図に従う処理を実行する。
図21を参照して、ステップS51では特殊効果操作通知がCPU40から与えられたか否かを判別し、YESであれば特殊効果の種類をステップS53で検出する。ステップS55では検出された種類の複雑度が閾値TH’を上回るか否かを判別し、YESであれば図6に示すステップS9に進む一方、NOであれば図6に示すステップS17に進む。なお、図7に示すステップS41の処理が完了すると、ステップS51に戻る。これによって、高速かつ高精度の特殊効果処理が実現される。
なお、この実施例では、撮影時に手振れ補正処理を実行するようにしているが、撮影時に代えて再生時に手振れ補正処理を実行するようにしてもよい。また、この実施例では、フィルタ処理を施された処理画素データが書き込まれるメモリブロックは、フィルタ処理を施される画素データが読み出されるメモリブロックと一致するが、書き込み先のメモリブロックは読み出し元のメモリブロックと異なってもよい。
この発明の一実施例の構成を示すブロック図である。 (A)はD1−I/Fに向けられたデータ取得命令の発行動作の一例を示すタイミング図であり、(B)はSDRAM26からSDRAM58への画像データの転送動作を一例を示すタイミング図であり、(C)はバッファ回路に向けられたフィルタ処理開始命令の発行動作の一例を示すタイミング図であり、(D)はフィルタ回路の処理動作の一例を示すタイミング図であり、(E)はD1−I/Fに向けられたデータ返送命令の発行動作の一例を示すタイミング図であり、そして(F)はSDRAM58からSDRAM26への画像データの転送動作の一例を示すタイミング図である。 (A)はD1−I/Fに向けられたデータ取得命令の発行動作の他の一例を示すタイミング図であり、(B)はSDRAM26からSDRAM58への画像データの転送動作の他の一例を示すタイミング図であり、(C)はバッファ回路に向けられたフィルタ処理開始命令の発行動作の他の一例を示すタイミング図であり、(D)はフィルタ回路の処理動作の他の一例を示すタイミング図であり、(E)はD1−I/Fに向けられたデータ返送命令の発行動作の他の一例を示すタイミング図であり、そして(F)はSDRAM58からSDRAM26への画像データの転送動作の他の一例を示すタイミング図である。 (A)はフィルタ処理を施される前の画像データの一例を示す図解図であり、(B)はフィルタ処理を施される前の画像データの他の一例を示す図解図である。 フィルタ処理を施された後の画像データの一例を示す図解図である。 図1実施例に適用されるCPUの動作の一部を示すフロー図である。 図1実施例に適用されるCPUの動作の他の一部を示すフロー図である。 図1実施例に適用されるメモリ制御回路の構成の一例を示すブロック図である。 (A)はフィルタ処理を施される前の画像データのマッピング状態の一例を示す図解図であり、(B)フィルタ処理が施された後の画像データのマッピング状態の一例を示す図解図である。 図1実施例に適用されるフィルタ回路の構成の一例を示すブロック図である。 (A)タップ長が5×5のときのラインメモリのマッピング状態の一例を示す図解図であり、(B)はタップ長が5×5のときの水平フィルタ処理動作の一例を示す図解図であり、(C)はタップ長は5×5のときの垂直フィルタ処理動作の一例を示す図解図である。 (A)タップ長が3×3のときのラインメモリのマッピング状態の一例を示す図解図であり、(B)はタップ長が3×3のときの水平フィルタ処理動作の一例を示す図解図であり、(C)はタップ長は3×3のときの垂直フィルタ処理動作の一例を示す図解図である。 図10実施例に適用されるY系のフィルタ演算回路の構成の一例を示すブロック図である。 (A)は画素クロックの出力動作の一例を示すタイミング図であり、(B)はセレクタ90の出力動作の一例を示すタイミング図であり、(C)はラッチ回路92の出力動作の一例を示すタイミング図であり、(D)はラッチ回路94の出力動作の一例を示すタイミング図であり、(E)はラッチ回路96の出力動作の一例を示すタイミング図であり、(F)はラッチ回路98の出力動作の一例を示すタイミング図であり、(G)はラッチ回路100の出力動作の一例を示すタイミング図であり、(H)はセレクタ112の出力動作の一例を示すタイミング図であり、(I)はフリップフロップ回路114の出力動作の一例を示すタイミング図であり、(J)はフリップフロップ回路116の出力動作の一例を示すタイミング図であり、(K)はフリップフロップ回路118の出力動作の一例を示すタイミング図であり、(L)はフリップフロップ回路120の出力動作の一例を示すタイミング図であり、(M)はフリップフロップ回路122の出力動作の一例を示すタイミング図であり、そして(N)は加算器124の出力動作の一例を示すタイミング図である。 (A)は画素クロックの出力動作の他の一例を示すタイミング図であり、(B)はセレクタ90の出力動作の他の一例を示すタイミング図であり、(C)はラッチ回路92の出力動作の他の一例を示すタイミング図であり、(D)はラッチ回路94の出力動作の他の一例を示すタイミング図であり、(E)はラッチ回路96の出力動作の他の一例を示すタイミング図であり、(F)はラッチ回路98の出力動作の他の一例を示すタイミング図であり、(G)はラッチ回路100の出力動作の他の一例を示すタイミング図であり、(H)はセレクタ112の出力動作の他の一部を示すタイミング図であり、(I)はフリップフロップ回路114の出力動作の他の一部を示すタイミング図であり、(J)はフリップフロップ回路116の出力動作の他の一例を示すタイミング図であり、(K)はフリップフロップ回路118の出力動作の他の一例を示すタイミング図であり、(L)はフリップフロップ回路120の出力動作の他の一例を示すタイミング図であり、(M)はフリップフロップ回路122の出力動作の他の一例を示すタイミング図であり、そして(N)は加算器124の出力動作の他の一例を示すタイミング図である。 図10実施例に適用されるUV系のフィルタ演算回路の構成の一例を示すブロック図である。 (A)は画素クロックの出力動作の一例を示すタイミング図であり、(B)はセレクタ126の出力動作の一例を示すタイミング図であり、(C)はフリップフロップ回路130の出力動作の一例を示すタイミング図であり、(D)はフリップフロップ回路134の出力動作の一例を示すタイミング図であり、(E)はセレクタ136の動作の一例を示すタイミング図であり、(F)はセレクタ138の動作の一例を示すタイミング図であり、(G)はセレクタ140の動作の一例を示すタイミング図であり、(H)は加算器142の動作の一例を示すタイミング図であり、(I)は加算器144の動作の一例を示すタイミング図であり、(J)は加算器146の動作の一例を示すタイミング図であり、そして(K)は加算器160の出力動作の一例を示すタイミング図である。 (A)は画素クロックの出力動作の他の一例を示すタイミング図であり、(B)はセレクタ126の出力動作の他の一例を示すタイミング図であり、(C)はフリップフロップ回路130の出力動作の他の一例を示すタイミング図であり、(D)はフリップフロップ回路134の出力動作の他の一例を示すタイミング図であり、(E)はセレクタ136の動作の他の一例を示すタイミング図であり、(F)はセレクタ138の動作の他の一例を示すタイミング図であり、(G)はセレクタ140の動作の他の一例を示すタイミング図であり、(H)は加算器142の動作の他の一例を示すタイミング図であり、(I)は加算器144の動作の他の一例を示すタイミング図であり、(J)は加算器146の動作の他の一例を示すタイミング図であり、そして(K)は加算器160の出力動作の他の一例を示すタイミング図である。 (A)はタップ長が5×5のときのUデータに対するフィルタ処理動作の一部を示す図解図であり、(B)はタップ長が5×5のときのVデータに対するフィルタ処理動作の一部を示す図解図である。 (A)はタップ長が3×3のときのUデータに対するフィルタ処理動作の一部を示す図解図であり、(B)はタップ長が3×3のときのVデータに対するフィルタ処理動作の一部を示す図解図である。 この発明の他の実施例の動作の一部を説明するフロー図である。
符号の説明
10 …ディジタルカメラ
20 …信号処理回路
24,56 …メモリ制御回路
26,58 …SDRAM
40,70 …CPU
52 …SRAM
68 …フィルタ回路

Claims (8)

  1. 撮影操作によって取得された1画面の被写界像データをメモリエリアに書き込む第1書き込み手段、
    指定数の画素の画素データを前記メモリエリアから周期的に読み出す読み出し手段、
    前記読み出し手段によって読み出された画素データに演算処理を施して所定数の画素の処理画素データを周期的に作成する作成手段、
    前記撮影操作に起因する被写界の振れ量を検出する検出手段、
    前記作成手段の演算処理量を前記検出手段の検出結果に応じた量に設定する処理量設定手段、および
    前記読み出し手段による読み出し画素数の指定を前記作成手段の演算処理量に応じて変更する第1数値変更手段を備える、画像処理装置。
  2. 前記読み出し手段による読み出し周期を前記作成手段の演算処理量に応じて変更する周期変更手段をさらに備える、請求項1記載の画像処理装置。
  3. 前記読み出し手段による読み出し画素は部分的に重複し、
    重複する読み出し画素の数を前記作成手段の演算処理量に応じて変更する第2数値変更手段をさらに備える、請求項1または2記載の画像処理装置。
  4. 前記読み出し手段によって読み出された画素データを格納する一時メモリをさらに備え、
    前記読み出し手段は垂直画素方向に読み出しを行い、
    前記作成手段は前記一時メモリに格納された画素データに対して前記演算処理を実行する、請求項1ないし3のいずれかに記載の画像処理装置。
  5. 前記演算処理は2次元フィルタ処理である、請求項4記載の画像処理装置。
  6. 前記被写界像データは各々が第1サイズを有する複数の水平ラインの画素データによって形成され、
    各々が前記第1サイズよりも大きい第2サイズを有する複数のメモリブロックを前記メモリエリア上に割り当てる割り当て手段をさらに備える、請求項1記載の画像処理装置。
  7. 前記第1書き込み手段は前記被写界像データを形成する複数の水平ラインの画素データを前記複数のメモリブロックにそれぞれ書き込み、
    前記所定数は前記指定数よりも小さく、
    前記作成手段によって作成された複数の水平ラインの処理画素データを前記複数のメモリブロックにそれぞれ書き込む第2書き込み手段、および
    前記複数のメモリブロックの各々に対する前記第1書き込み手段の書き込み開始位置と前記複数のメモリブロックの各々に対する前記第2書き込み手段の書き込み開始位置との間にオフセットを確保する確保手段をさらに備える、請求項6記載の画像処理装置。
  8. 前記読み出し手段よる読み出し画素の部分的な重複を指示する指示手段をさらに備える、請求項7記載の画像処理装置。
JP2005157745A 2005-05-30 2005-05-30 画像処理装置 Expired - Fee Related JP4641867B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005157745A JP4641867B2 (ja) 2005-05-30 2005-05-30 画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005157745A JP4641867B2 (ja) 2005-05-30 2005-05-30 画像処理装置

Publications (2)

Publication Number Publication Date
JP2006333372A JP2006333372A (ja) 2006-12-07
JP4641867B2 true JP4641867B2 (ja) 2011-03-02

Family

ID=37554537

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005157745A Expired - Fee Related JP4641867B2 (ja) 2005-05-30 2005-05-30 画像処理装置

Country Status (1)

Country Link
JP (1) JP4641867B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH114366A (ja) * 1997-06-11 1999-01-06 Nippon Hoso Kyokai <Nhk> デブロッキングフィルタ
JP2000312311A (ja) * 1999-04-27 2000-11-07 Nippon Hoso Kyokai <Nhk> 信号処理装置
JP2004172893A (ja) * 2002-11-19 2004-06-17 Ricoh Co Ltd 画像処理装置、画像処理方法および記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH114366A (ja) * 1997-06-11 1999-01-06 Nippon Hoso Kyokai <Nhk> デブロッキングフィルタ
JP2000312311A (ja) * 1999-04-27 2000-11-07 Nippon Hoso Kyokai <Nhk> 信号処理装置
JP2004172893A (ja) * 2002-11-19 2004-06-17 Ricoh Co Ltd 画像処理装置、画像処理方法および記録媒体

Also Published As

Publication number Publication date
JP2006333372A (ja) 2006-12-07

Similar Documents

Publication Publication Date Title
JP6016412B2 (ja) 撮像装置および信号処理方法
JP2007135056A (ja) 画像処理装置および方法、並びにプログラム
JP2008205530A (ja) 撮像装置、撮像システム及び撮像方法
JP2008028500A (ja) 画像処理装置、方法、およびプログラム
JP2008306508A (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
TW201204025A (en) Image processing method and device
JP2007174590A (ja) 信号処理装置及び撮像装置
JP5829122B2 (ja) 撮像装置および評価値生成装置
JP4771901B2 (ja) 撮像装置、画像歪み補正方法及びプログラム
JP4739998B2 (ja) 撮像装置
JP4606218B2 (ja) 歪補正装置
JP5996418B2 (ja) 撮像装置および撮像方法
JP4624179B2 (ja) 画像処理装置
JP4519001B2 (ja) フィルタ処理回路
JP2016111568A (ja) 像ぶれ補正制御装置、撮像装置およびそれらの制御方法、プログラム
JP5959194B2 (ja) 撮像装置
JP4641867B2 (ja) 画像処理装置
JP2013084124A (ja) 撮像システム、撮像装置および画像処理方法
KR20120069543A (ko) 화상 처리 장치, 화상 처리 방법 및 촬상 장치
JP2006135501A (ja) 撮像装置
JP6871795B2 (ja) 撮像装置、その制御方法、プログラム及び記録媒体
JP4888306B2 (ja) 画像処理装置および画像処理方法
JP4687619B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP2005295302A (ja) カメラ画像処理装置
JP2008235958A (ja) 撮像装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080508

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100622

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101102

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101130

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees