(57)【要約】【課題】メモリ容量を効率的に利用する。【解決手段】信号に所定の係数を乗算する複数の係数乗算器３０，３６，４０と、信号を遅延させる複数の遅延器３４，３８と、複数の信号を加算する加算器３２とを含み入力信号および出力信号についての係数乗算および遅延の処理を施し、入力信号から出力信号を得るフィルタを複数有する。ＲＡＭ５０は、１つ目のフィルタの複数の係数乗算器３０ｐ，３６ｐ，４０ｐのための係数データを複数セット記憶するとともに、２つ目のフィルタの遅延器３４ｙ，３８ｙの遅延データを記憶する。ＲＡＭ５２は、２つ目のフィルタの複数の係数乗算器３０ｑ，３６ｑ，４０ｑのための係数データを複数セット記憶するとともに、１つ目のフィルタの遅延器３４ｐ，３８ｐの遅延データを記憶する。【選択図】図１
2011259272.tif 000002
【特許請求の範囲】
【請求項１】
信号に所定の係数を乗算する複数の係数乗算器と、信号を遅延させる複数の遅延器と、複数の信号を加算する加算器とを含み入力信号および出力信号についての係数乗算および遅延の処理を施し、入力信号から出力信号を得るフィルタを複数有するデジタルフィルタであって、
１つ目のフィルタの複数の係数乗算器のための係数データを複数セット記憶するとともに、２つ目のフィルタの遅延器の遅延データを記憶する第１メモリと、２つ目のフィルタの複数の係数乗算器のための係数データを複数セット記憶するとともに、１つ目のフィルタの遅延器の遅延データを記憶する第２メモリと、
を有するデジタルフィルタ。
【請求項２】
請求項１に記載のデジタルフィルタにおいて、
複数のフィルタは、Ｘ軸、Ｙ軸の２軸周りの加速度を検出するジャイロフィルタからの２軸の信号を処理するフィルタであり、
前記１つ目のフィルタはＸ軸またはＹ軸の一方の加速度を処理し、前記２つ目のフィルタはＸ軸またはＹ軸の一方の加速度を処理し、
前記１つ目のフィルタと、前記２つ目のフィルタは、１つのフィルタを時分割で利用することで構成されるデジタルフィルタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルフィルタにおけるメモリの効率的な利用に関する。
【背景技術】
【０００２】
各種信号処理において、デジタル処理が広く利用されており、各種のデジタルフィルタが利用される。
【０００３】
図２には、デジタルフィルタの一例として、１次ＩＩＲフィルタの構成が示されている。入力信号Ｉｎは、係数乗算器１０で係数ａが乗算された後、加算器１２に入力される。入力信号Ｉｎは、遅延器１４において遅延され、Ｚ１として係数乗算器１６において係数ｂが乗算されて加算器１２に入力される。
【０００４】
加算器１２の出力は、出力信号Ｏｕｔとして出力されると共に、遅延器１８で遅延され、Ｚ２として係数乗算器２０で係数ｃが乗算されて加算器１２に入力される。
【０００５】
従って、このデジタルフィルタでは、Ｏｕｔ＝ａ・Ｉｎ＋ｂ・Ｚ１＋ｃ・Ｚ２という演算が行われる。
【０００６】
ここで、係数データａ，ｂ，ｃや、遅延データＺ１，Ｚ２は、ＳＲＡＭなどの記憶部（ＲＡＭ）に記憶され、ここから読み出される。一方、上述した演算のためには、（１）ａ・Ｉｎ、（２）ｂ・Ｚ１、（３）ｃ・Ｚ２という演算を１クロックで行うことになる。このため、係数データと遅延データをそれぞれ同時に読み出す必要がある。
【０００７】
このような場合、係数ａ，ｂ，ｃを記憶する係数ＲＡＭと遅延データＺ１，Ｚ２を記憶する遅延ＲＡＭは別々のＲＡＭで構成したほうが演算効率がよい。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−６１０５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ここで、デジタルフィルタなどをハード化するにあたり、ＲＡＭ容量の最小値に制限がある（容量制限がある）場合が多い。すなわち、ＲＡＭは汎用の記憶部材であり、特別な用途のために作製するとコストが高くなるため、汎用回路として既に用意されている容量のものを使用せざるを得ない。そこで、係数ＲＡＭや遅延ＲＡＭが必要な容量以上の容量となってしまう場合がある。
【００１０】
この回避策として、１つのＲＡＭで２つのポートから同時読み出しが可能なＤｕａｌ（デュアル）ポートＳＲＡＭを使用する方法がある。しかし、ＤｕａｌポートＳＲＡＭは、Ｓｉｎｇｌｅ（シングル）ポートＳＲＡＭに比べ、同容量であっても、面積が大きく非効率的である。
【課題を解決するための手段】
【００１１】
本発明は、信号に所定の係数を乗算する複数の係数乗算器と、信号を遅延させる複数の遅延器と、複数の信号を加算する加算器とを含み入力信号および出力信号についての係数乗算および遅延の処理を施し、入力信号から出力信号を得るフィルタを複数有するデジタルフィルタであって、１つ目のフィルタの複数の係数乗算器のための係数データを複数セット記憶するとともに、２つ目のフィルタの遅延器の遅延データを記憶する第１メモリと、２つ目のフィルタの複数の係数乗算器のための係数データを複数セット記憶するとともに、１つ目のフィルタの遅延器の遅延データを記憶する第２メモリと、を有することを特徴とする。
【００１２】
また、複数のフィルタは、Ｘ軸、Ｙ軸の２軸周りの加速度を検出するジャイロフィルタからの２軸の信号を処理するフィルタであり、前記１つ目のフィルタはＸ軸またはＹ軸の一方の加速度を処理し、前記２つ目のフィルタはＸ軸またはＹ軸の一方の加速度を処理し、前記１つ目のフィルタと、前記２つ目のフィルタは、１つのフィルタを時分割で利用することで構成されることが好適である。
【発明の効果】
【００１３】
本発明によれば、並列読み出しを可能としつつ、メモリの効率的利用を図ることができる。
【図面の簡単な説明】
【００１４】
【図１】実施形態の構成を示す図である。
【図２】デジタルフィルタの構成を示す図である。
【図３】手ぶれ補正のための回路を示す図である。
【図４】ジャイロフィルタの構成を示す図である。
【図５】ジャイロフィルタのＸ軸演算時の処理を説明する図である。
【図６】ジャイロフィルタのＹ軸演算時の処理を説明する図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について、図面に基づいて説明する。
【００１６】
図１は、実施形態のフィルタの構成を示す図であり、２つのフィルタを２つ直列接続した構成を示している。なお、フィルタは３つ以上接続してもよい。また、複数のフィルタは、１つのフィルタを時分割で利用することより構成してもよい。
【００１７】
入力信号ｐＩｎは、係数乗算器３０ｐに入力され、ここで係数ｐａが乗算され、得られたｐａ・ｐＩｎが加算器３２ｐに入力される。入力信号ｐＩｎは、遅延器３４ｐにも入力され、ここにおいて遅延され、ＰＺ１となる。遅延された信号ＰＺ１は、係数乗算器３６ｐにおいて係数ｐｂが乗算されて加算器３２ｐに入力される。
【００１８】
加算器３２ｐの出力は、出力信号ｐＯｕｔとして出力されると共に、遅延器３８ｐで遅延されＰＺ２となる。遅延された信号ＰＺ２は、係数乗算器４０ｐで係数ｐｃが乗算されて加算器３２ｐに入力される。
【００１９】
従って、このデジタルフィルタでは、ｐＯｕｔ＝ｐａ・ｐＩｎ＋ｐｂ・ＰＺ１＋ｐｃ・ＰＺ２という演算が行われる。なお、現在の入力信号をＩｎn、出力信号をＯｕｔnと表すと、上式は、ｐＯｕｔn＝ｐａ・ｐＩｎn＋ｐｂ・ｐＩｎn-1＋ｐｃ・ｐＯｕｔn-1となる。
【００２０】
１段目のフィルタの出力は、２段目のフィルタに入力される。この２段目のフィルタの構成は１段目のフィルタと同一の構成であり、各部材の添え字ｐをｑに変更して示してある。また、信号については、信号名の最初の文字ｐをｑに変更して示している。
【００２１】
このような２段目のフィルタの信号において、ｑＩｎn＝ｐＯｕｔnである。従って、２段目のフィルタは、
ｑＯｕｔn＝ｑａ・ｑＩｎn＋ｑｂ・ＱＺ１＋ｑｃ・ＱＺ２＝ｑａ・ｑＩｎn＋ｑｂ・ｑＩｎn-1＋ｑｃ・ｑＯｕｔn-1＝ｑａ・ｐＯｕｔn＋ｑｂ・ｐＯｕｔn-1＋ｑｃ・ｑＯｕｔn-1
という演算を行う。
【００２２】
ここで、係数データａ，ｂ，ｃや、遅延データＺ１，Ｚ２は、ＳＲＡＭなどの記憶部（ＲＡＭ）に記憶され、ここから読み出される。一方、１段目の演算のためには、（１）ｐａ・Ｉｎn、（２）ｐｂ・ＰＺ１、（３）ｐｃ・ＰＺ２という演算を１クロックで行うことになる。
【００２３】
本実施形態では、２つの記憶部であるＲＡＭ５０、ＲＡＭ５２において、異なるフィルタの係数データと遅延データを記憶している。すなわち、ＲＡＭ５０には、係数ｐａ，ｐｂ，ｐｃと、遅延データＱＺ１，ＱＺ２が記憶され、ＲＡＭ５２には、係数ｑａ，ｑｂ，ｑｃと、遅延データＰＺ１，ＰＺ２が記憶されている。
【００２４】
そこで、１段目のフィルタにおける処理の際には、ＲＡＭ５０から係数ｐａ，ｐｂ，ｐｃ、ＲＡＭ５２から遅延データＰＺ１，ＰＺ２を並列して読み出し、演算を行い、２段目のフィルタにおける処理の際には、ＲＡＭ５２から係数ｑａ，ｑｂ，ｑｃ、ＲＡＭ５０から遅延データＱＺ１，ＱＺ２を並列して読み出し、演算を行う。
【００２５】
また、ＲＡＭ５０には、係数ｐａ，ｐｂ，ｐｃと、ＲＡＭ５２には、係数ｑａ，ｑｂ，ｑｃと、遅延データＰＺ１，ＰＺ２が記憶されているが、これらはそれぞれ複数セット記憶されている。従って、係数を切り換える場合には、読み出す係数のセットを変更するだけで、データの書き換えなどは通常必要がない。
【００２６】
このような処理を順次行うことで、２段接続されたデジタルフィルタにおいて、２つのＲＡＭ５０，５２から並列してデータを読み出して演算処理を行うことができる。そして、各ＲＡＭ５０，５２は、それぞれ１段目のフィルタ、２段目のフィルタにおける係数データを必要とする各種のパターンだけ記憶することができる。このように、係数データと、遅延データの両方を記憶することで、ＲＡＭ５０，５２の両方とも、ある程度の容量となり、それらの容量を有効に利用することが可能になる。また、係数を変更する場合には、ＲＡＭ５０，５２に記憶されている各種の係数データのセットの中から選択することができ、係数の切り換えにも容易に対処することができる。
【００２７】
すなわち、フィルタ特性を瞬時に切り換えたい場合、ＲＡＭ５０の係数ｐａ、ｐｂ、ｐｃを順次更新すると、演算途中で係数が変わり、予期せぬ動作をすることも考えられる。しかし、上述のように係数のセットを複数（ｐａ１、ｐｂ１、ｐｃ１）、（ｐａ２、ｐｂ２、ｐｃ２）、（ｐａ３、ｐｂ３、ｐｃ３）・・・準備し、どの組み合わせを使用するかを切り替えて使用することで、係数の瞬時の切り換えに対応することができる。なお、ＲＡＭ５２においても同様である。
【００２８】
このように、本実施形態では、１つのフィルタにおいて必要な係数データおよび遅延データを２つのＲＡＭ５０，５２から並列して読み出すことができ、高速の処理が可能となる。また、ＲＡＭ５０，５２はそれぞれ係数データおよび遅延データを記憶するため、各ＲＡＭの容量がバランスするので、不要な空き部分が生じるのを防止して、効率的なメモリの利用を図ることができる。
【００２９】
このようなフィルタは、手ぶれ補正用のフィルタ回路に好適に利用することができる。特に、複数方向の加速度を検出するジャイロの検出信号を処理するに当たって、複数のデジタルフィルタ（ＩＩＲフィルタ）が必要になり、上述した構成はこのジャイロフィルタに好適に適用される。
【００３０】
図３に、カメラの手振れ補正システムの概略のブロック構成図を示す。本手振れ補正システムは、センサ部１０２、回路部１０４、及び駆動部１０６を含む。本システムは、撮像素子（図示せず）の受光面に光学像を形成する光学系に設けられた補正レンズ（レンズ１０８８）を合焦調整部材としその位置を調整して手ぶれ補正する方式を採用している。
【００３１】
センサ部１０２は、ホール素子１１０とジャイロセンサ１１２とからなる。ホール素子１１０は、レンズ１０８の位置を検出するセンサであり、レンズ１０８に固定された磁石の磁場に基づいて、レンズ１０８との距離に応じた電圧信号ＶPを発生して回路部１０４へ出力する。光軸に垂直な平面（ｘ−ｙ平面）内でのレンズ１０８の２次元的な位置（ＰP，ＰQ）を検出するために、ホール素子１１０はｘ方向、ｙ方向それぞれに対応して設けられ、ｘ方向、ｙ方向それぞれについて信号ＶPを出力する。
【００３２】
ジャイロセンサ１１２は、カメラの振動を検出するために設けられたセンサ（変位速度検出器）であり、カメラの変位速度に応じた振動検知信号として、角速度ωに応じた電気信号Ｖωを回路部１０４へ出力する。ジャイロセンサ１１２も２つ設けられ、ｘ軸の回りでの角速度成分及びｙ軸の回りでの角速度成分それぞれについて信号Ｖωを出力する。
【００３３】
変位可能なレンズ１０８と当該レンズ１０８を変位させる駆動部１０６とは振動補償機構を構成し、駆動部１０６は、例えば、ボイスコイルモータ（Voice Coil Motor：ＶＣＭ）１１４で構成される。ＶＣＭ１１４は、回路部１０４が生成する駆動信号に応じて、ＶＣＭ１１４を構成する可動コイルの位置を直線変位させ、レンズ１０８の位置を制御する。ｘ−ｙ平面内での２次元変位を実現するために、可動コイルは一対設けられ、ｘ方向、ｙ方向にそれぞれ変位する。
【００３４】
回路部１０４は、ＡＤＣ（Ａ／Ｄ変換器）１２０、ホールフィルタ１２２、ジャイロフィルタ１２４、及びＤＡＣ１２６を有する。回路部１０４は、ロジック回路で構成され、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）として構成される。
【００３５】
ＡＤＣ１２０には、ホール素子１１０、ジャイロセンサ１１２の出力信号ＶP，Ｖωがそれぞれ入力される。ＡＤＣ１２０は、２つのホール素子１１０がそれぞれ出力する電圧信号ＶPと、２つのジャイロセンサ１１２がそれぞれ出力する電圧信号Ｖωとを時分割で位置データＤP、角速度データＤωに変換する。各信号のＡ／Ｄ変換は、サーボ制御周期毎に周期的に行われる。
【００３６】
ホール素子１１０の出力に基づいて生成された位置データＤPは、ホールフィルタ１２２に入力される。一方、ジャイロセンサ１１２の出力に基づいて生成された角速度データＤωは、ジャイロフィルタ１２４に入力される。
【００３７】
ジャイロフィルタ１２４は、カメラの変位量に応じた振動補償データを生成する回路であり、サーボ制御周期毎に所定のサンプリング期間にわたり入力される角速度Ｄωを積分処理して、ｘ軸、ｙ軸それぞれの回りでのカメラの揺動角度θに応じたデータＤθを生成する。ジャイロフィルタ１２４は、データＤθに基づいて、ｘ方向、ｙ方向それぞれに対する手振れ量に応じた振動補償データＤSを生成し出力する。この振動補償データＤSがレンズ１０８をｘ軸、ｙ軸の両方向にどのくらい変位させるかについてのデータである。
【００３８】
ホールフィルタ１２２は、加算器１３２及びサーボ回路１３４を有する。加算器１３２は、ＡＤＣ１２０からの位置データＤPと、ジャイロフィルタ１２４からの振動補償データＤSとをｘ，ｙ各方向別に加算する。サーボ回路１３４は、加算器１３２の出力データから、ｘ軸方向、ｙ軸方向それぞれについてのレンズ１０８が現在位置からどの程度変位すべきかを示す所要変位量に相当するサーボデータＤSVを算出する。得られたサーボデータＤSVは、ＤＡＣ１２６に供給される。
【００３９】
ＤＡＣ１２６は、ホールフィルタ１２２から出力されるサーボデータＤSVをアナログ電圧信号に変換する。ＤＡＣ１２６が出力する電圧信号は所定の増幅処理を施してＶＣＭ１１４に印加される。ＶＣＭ１１４は、ＤSVの絶対値が減少する方向に駆動され、これにより、本システムを搭載したカメラは、撮像期間にて、手振れに応じてレンズ１０８を移動させ、手振れによる撮像素子上での被写体像の変位を補償し、高画質な画像信号を得ることができる。
【００４０】
次に、ジャイロフィルタ１２４の構成を説明する。図４は、ジャイロフィルタ１２４の概略の構成を示すブロック図である。ジャイロフィルタ１２４は、手振れ成分抽出回路１４２、積分回路１４４、及びセンタリング処理回路１４６を有する。
【００４１】
手振れ成分抽出回路１４２は高域通過フィルタ（High Pass Filter：ＨＰＦ）であり、時系列の角速度データＤωが入力され、ここに含まれる低周波成分を減衰し目的補償帯域の振動成分を抽出する。目的補償帯域は、カメラの手振れが例えば２〜１０Ｈｚ程度の低い周波数を含むことに対応して、１Ｈｚ以上に設定される。すなわち、手振れ成分抽出回路１４２はほとんど直流成分とみなせるような低周波数成分を減衰する一方、数Ｈｚ程度の成分は通過させる。手振れ成分抽出回路１４２は浮動小数点形式で演算を行うデジタルフィルタで構成され、図示しないレジスタに設定されたフィルタ係数によりフィルタ特性が設定される。
【００４２】
積分回路１４４は、手振れ成分抽出回路１４２が出力する浮動小数点形式の角速度データを積分して、撮像装置の変位量を表す角度データＤθを生成する。積分回路１４４はＬＰＦを用いて構成することができ、図示しないレジスタに設定されたフィルタ係数によりフィルタ特性が設定される。なお、積分回路１４４にて生成される角度データＤθは上述のように撮像装置の変位量を表し、これをホールフィルタ１２２への振動補償データＤSとして用いることもできるが、本システムでは、積分回路１４４にて得られた角度データＤθに対して、さらにセンタリング処理を行った結果を振動補償データＤSとしてホールフィルタ２２へ供給している。
【００４３】
センタリング処理回路１４６は、レンズ１０８が補償制御機構による可動限界に到達しにくくなるように変位量を修正する処理を行う。センタリング処理回路１４６では、積分処理により得られる角度データＤθから、目的補償帯域の下限より低い周波数を有し直流と見なせる成分を減衰する。この場合、センタリング処理回路１４６はＨＰＦを用いて構成することができる。このセンタリング用のＨＰＦはデジタルフィルタにより構成され、図示しないレジスタに設定されたフィルタ係数によりフィルタ特性を設定される。上述した手振れ成分抽出回路１４２を構成するＨＰＦと同様、基本的に、センタリング処理回路１４６を構成するＨＰＦのカットオフ周波数は目的補償帯域の下限より低く設定される。上述のようにセンタリング処理回路１４６の処理結果が振動補償データＤSとなる。
【００４４】
ここで、本実施形態では、ジャイロセンサ１１２は、ｘ軸回り、ｙ軸回りの角速度についての信号Ｖωを検出する。そして、ジャイロフィルタ２４では、信号Ｖωから算出したｘ軸及びｙ軸方向の角度データＤθに基づき、ｘ，ｙ軸方向の移動量である振動補償データＤSを算出し、レンズ１０８のｘ，ｙ軸方向の移動によって、像の位置を補償している。補償の形式は、これに限らず、その他方向についてレンズ１０８を移動することも可能である。
【００４５】
センタリング処理回路１４６から出力される振動補償データＤSはホールフィルタ１２２の加算器１３２に入力される。
【００４６】
ここで、ジャイロフィルタ１２４を構成する、手振れ成分抽出回路１４２、積分回路１４４、センタリング処理回路１４６は、それぞれデジタルフィルタを有し、このデジタルフィルタは１次ＩＩＲフィルタで構成される。また、これら演算は、Ｘ軸についての演算と、Ｙ軸に対する演算が必要であり、図１のデジタルフィルタがＸ軸演算用と、Ｙ軸演算用とにそれぞれ必要となる。本実施形態では、このような手振れ補正におけるジャイロフィルタ１２４を、Ｘ軸演算とＹ軸演算に共用する構成とし、時分割で処理する。
【００４７】
すなわち、図５，６に示すように、ＲＡＭ５０は記憶部５０−１にＸ軸の係数データ、記憶部５０−２にＹ軸の遅延データを格納し、ＲＡＭ５２は記憶部５２−１にＸ軸の遅延データ、記憶部５２−２にＹ軸の係数データを格納する。
【００４８】
そして、Ｘ軸演算時には、図５に示すように、ＲＡＭ５０の記憶部５０−１からＸ軸演算用の係数データを読み出し、ＲＡＭ５２の記憶部５２−１からＸ軸演算用の遅延データを読み出す。これら読み出した係数データ、遅延データが手振れ成分抽出回路１４２、積分回路１４４、センタリング処理回路１４６のデジタルフィルタに供給され、Ｘ軸についてのジャイロフィルタ１２４の演算が行われる。また、図６に示すように、ＲＡＭ５０の記憶部５０−２からＹ軸演算用の遅延データを読み出し、ＲＡＭ５２の記憶部５２−２からＹ軸演算用の係数データを読み出す。これら読み出した係数データ、遅延データが手振れ成分抽出回路１４２、積分回路１４４、センタリング処理回路１４６のデジタルフィルタに供給され、Ｙ軸についてのジャイロフィルタ１２４の演算が行われる。
【００４９】
手振れ補正のジャイロフィルタを構成する場合、遅延データの容量に比べ係数データの容量の方が大きくなる場合が多く、これは撮影シーンに応じて手振れ補正の特性を変更するために、複数の係数データを予め準備しておくためである。本実施形態においては、１つのＲＡＭに係数データと、遅延データの組み合わせを格納するため、各ＲＡＭの容量を比較的均一にすることができ、効率的なＲＡＭの利用を図ることができ、また、各演算において必要な係数データと、遅延データを２つのＲＡＭから同時に読み出すことができる。
【符号の説明】
【００５０】
３０，３６，４０  係数乗算器、３２  加算器、３４，３８  遅延器。
【図１】
2011259272.tif 000003
【図２】
2011259272.tif 000004
【図３】
2011259272.tif 000005
【図４】
2011259272.tif 000006
【図５】
2011259272.tif 000007
【図６】
2011259272.tif 000008