(57)【要約】【課題】  画像圧縮にあたりノイズを生じにくく、ハードウェアの規模が小さく計算量が少ない画像符号化装置及び画像符号化方法を提供することにある。【解決手段】  カラーフィルタを用いるイメージアレイのＮ×Ｎ画素よりなるブロックから色成分ごとに分けて複数の画素ブロックを抽出した後符号化を行うイメージフィルタ原色フィルタ画像の動画像の画像符号化装置において、画素ブロックに１×１点で動き検出を行い動きベクトルを抽出する動き検出手段と、動きベクトルを元に該動画像を圧縮する圧縮手段とを備えることを特徴とする。【選択図】図３
2007158524.tif 000002
【特許請求の範囲】
【請求項１】
カラーフィルタを用いるイメージアレイのＮ×Ｎ画素よりなるブロックから色成分ごとに分けて複数の画素ブロックを抽出した後符号化を行うイメージフィルタ原色フィルタ画像の動画像の画像符号化装置において、
該画素ブロックに１×１点で動き検出を行い動きベクトルを抽出する動き検出手段と、
該動きベクトルを元に該動画像を圧縮する圧縮手段とを備えることを特徴とする画像符号化装置。
【請求項２】
前記圧縮手段として動き補償予測符号化の圧縮を用いることを特徴とする請求項１記載の画像符号化装置。
【請求項３】
前記動き検出手段が、圧縮対象画像のある画素とその近傍の参照画像とで差分をとることで動きベクトルを抽出することを特徴とする請求項１又は請求項２記載の画像符号化装置。
【請求項４】
前記動きベクトルが、前記画素ブロックの所定範囲内のマクロブロック自体の動きベクトルと、該マクロブロック内の画素の動きベクトルとでなることを特徴とする請求項１〜請求項３記載のいずれかに記載の画像符号化装置。
【請求項５】
前記動き検出手段が、１つの赤（Ｒ）、２つの緑（Ｇ１、Ｇ２）、１つの青（Ｂ）の前記画素ブロックの色成分に対して同時に動き検出を行うことを特徴とする請求項１〜請求項４のいずれかに記載の画像符号化装置。
【請求項６】
カラーフィルタを用いるイメージアレイのＮ×Ｎ画素よりなるブロックから色成分ごとに分けて複数の画素ブロックを抽出した後符号化を行うイメージフィルタ原色フィルタ画像の動画像の画像符号化方法において、
該画素ブロックに１×１点で動き検出を行い動きベクトルを抽出し、
該動きベクトルを元に該動画像を圧縮することを特徴とする画像符号化方法。
【請求項７】
前記圧縮として動き補償予測符号化の圧縮を用いることを特徴とする請求項６記載の画像符号化方法。
【請求項８】
前記動き検出が、圧縮対象画像のある画素とその近傍の参照画像とで差分をとることで動きベクトルを抽出することを特徴とする請求項６又は請求項７記載の画像符号化方法。
【請求項９】
前記動きベクトルが、前記画素ブロックの所定範囲内のマクロブロック自体の動きベクトルと、該マクロブロック内の画素の動きベクトルとでなることを特徴とする請求項６〜請求項８記載のいずれかに記載の画像符号化方法。
【請求項１０】
前記動き検出が、１つの赤（Ｒ）、２つの緑（Ｇ１、Ｇ２）、１つの青（Ｂ）の前記画素ブロックの色成分に対して同時に動き検出を行うことを特徴とする請求項６〜請求項９のいずれかに記載の画像符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イメージフィルタ原色フィルタ画像の動画像の圧縮を行う画像符号化装置及び画像符号化方法に関する。
【背景技術】
【０００２】
従来より、カプセル内視鏡等の医療に用いられる超小型カメラの画像を送信する装置において、撮影した動画像を圧縮するにあたり様々な方法が提案されてきた。例えば、特許文献１の圧縮技術がある。特許文献１に示される圧縮技術では、イメージアレイから得られた画像信号をデジタル信号に変換し、そして４×４画素ＲＧＢ成分抽出回路により色成分ごとに４×４の画素ブロックに変換し、変換回路により各ブロックに対して２次元離散コサイン変換を施したのち、量子化回路により量子化を行う。その後、ＡＣ係数に対してはゼロレングス圧縮をハフマン符号化回路より行い、ゼロでないＡＣ係数及びＤＣ係数に対してはハフマン符号化回路により可変長符号化を行うものである。
【特許文献１】特開２００５−２１７８９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の画像符号化装置の圧縮技術では、２次元離散コサイン変換や動き検出等のハードウェアの規模が大きくなり、計算量も大きいことから、医療用等で用いられる超小型カメラ等に実装することが困難である。
【０００４】
本発明は、このような事情に鑑みてなされたもので、画像圧縮にあたりノイズを生じにくく、ハードウェアの規模が小さく計算量が少ない画像符号化装置及び画像符号化方法を提供することにある。
【課題を解決するための手段】
【０００５】
請求項１記載の画像符号化装置は、画素ブロックに１×１点で動き検出を行い動きベクトルを抽出する動き検出手段と、動きベクトルを元に該動画像を圧縮する圧縮手段とを備えることを特徴とする。
【０００６】
請求項２記載の画像符号化装置は、圧縮手段として動き補償予測符号化の圧縮を用いることを特徴とする。
【０００７】
請求項３記載の画像符号化装置は、動き検出手段が、圧縮対象画像のある画素とその近傍の参照画像とで差分をとることで動きベクトルを抽出することを特徴とする。
【０００８】
請求項４記載の画像符号化装置は、動きベクトルが、画素ブロックの所定範囲内のマクロブロック自体の動きベクトルと、マクロブロック内の画素の動きベクトルとでなることを特徴とする。
【０００９】
請求項５記載の画像符号化装置は、動き検出手段が、１つの赤（Ｒ）、２つの緑（Ｇ１、Ｇ２）、１つの青（Ｂ）の前記画素ブロックの色成分に対して同時に動き検出を行うことを特徴とする。
【００１０】
請求項６記載の画像符号化方法は、画素ブロックに１×１点で動き検出を行い動きベクトルを抽出し、動きベクトルを元に該動画像を圧縮することを特徴とする。
【００１１】
請求項７記載の画像符号化方法は、圧縮として動き補償予測符号化の圧縮を用いることを特徴とする。
【００１２】
請求項８記載の画像符号化方法は、動き検出が、圧縮対象画像のある画素とその近傍の参照画像とで差分をとることで動きベクトルを抽出することを特徴とする。
【００１３】
請求項９記載の画像符号化方法は、動きベクトルが、画素ブロックの所定範囲内のマクロブロック自体の動きベクトルと、マクロブロック内の画素の動きベクトルとでなることを特徴とする。
【００１４】
請求項１０記載の画像符号化方法は、動き検出が、１つの赤（Ｒ）、２つの緑（Ｇ１、Ｇ２）、１つの青（Ｂ）の画素ブロックの色成分に対して同時に動き検出を行うことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、画素ブロックに１×１点で動き検出を行い動きベクトルを抽出する動き検出手段と、動きベクトルを元に該動画像を圧縮する圧縮手段とを備え画像を圧縮することで、画像圧縮にあたりノイズを生じにくく、ハードウェアの規模が小さく計算量が少なく抑えることができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の形態について図面を参照しながら具体的に説明する。本発明の形態における画像符号化装置は、カラーフィルタを用いるイメージアレイのＮ×Ｎ画素よりなるブロックから色成分ごとに分けて複数の画素ブロックを抽出した後符号化を行うイメージフィルタ原色フィルタ画像の動画像の圧縮を行うものである。
【００１７】
図１は、本発明に係る画像符号化装置の一例を示す構成図である。図２は、同画像符号化装置のカラーフィルタの説明図である。図３は、同画像符号化方法の動作を示す説明図である。図４は、同画像符号化方法を示す構成図である。図５は、同画像符号化方法の動作を示すフローチャートである。図６〜図１２は、同画像符号化方法の動作を示す説明図である。
【００１８】
本実施例の画像符号化装置は、図１に示すように、単板カラー方式のイメージセンサは、撮像部の上に、モザイク上の配列のカラーフィルタ５を配置し、赤（以下Ｒ）、緑（以下Ｇ）、青（以下Ｂ）のカラー信号を得ている。具体的には、撮像部５の信号を垂直スキャナ１２及びノイズキャンセル回路１４を介して水平スキャナ１６で出力させ、増幅器１８を介してＡ／Ｄ変換器２０でデジタル化し、バッフメモリ２４及び予測差分符号化回路２６を介して出力させている。ひとつの画素には１色のみのカラーフィルタしか使うことができないので、それぞれ欠けている色は、色補間処理により欠けている色を計算して推定している（以下補間した画像をビットマップ画像と呼ぶ）。実際には、図２（ａ）に示すカラーフィルタを用いるイメージアレイのＮＨ×ＮＶ画素よりなるブロックから色成分ごとに分けて、図２（ｂ）に示す複数の画素ブロックを抽出した後符号化を行う。
【００１９】
次に、本実施例の画像符号化装置の構成及び動作について説明する。概略は、図３に示すように、ベイヤーカラーフィルタの出力（ａ）を（ｂ）のように並べ替えた後、１×１点の動き検出を行う。その結果を普通なら直交変換（ＤＣＴ）するところを、行わないで、いきなり量子化して可変長符号化を行う。ブロック図で示すと、図４のようになる。図３、図４の内容をほかの図を参照しながら詳細に説明する。
【００２０】
図１に示すように、ベイヤーカラーフィルタが付いている撮像部５からＡ／Ｄ変換器２０によりＡ／Ｄ変換されてデジタル化された信号は、図２（ａ）のように並んでいた画像が、図２（ｂ）のように並べ替えられてバッファメモリ２４に読み出される。この画像信号は、補間処理やＹＵＶ表色系への色変換処理を経ずに、圧縮対象画像として扱われる。
【００２１】
図５に動き補償予測符号化（標準圧縮方式でいうところのＰピクチャ）を行うフローチャートを示す。まず、図５（ａ）では、画面全体をマクロブロックに分割し（Ｓ１００）、１×１点の動き検出を行う（Ｓ１０１）。図５（ｂ）１×１点の動き検出をフローチャートに示すが，１×１点の動き検出については後述する。
【００２２】
１×１点の動き検出を行った後、マクロブロックのオフセットを計算する（Ｓ１０２）。オフセットとは、マクロブロックの移動量のことであり、１×１点の動き検出から求める。さらに、オフセットが加味されたマクロブロック内での画素の動きベクトルを１×１点の動き検出結果から求める（Ｓ１０３）。その後、動き補償を行う（Ｓ１０４）。予測差分画像は、ＤＣＴをかける必要がなくなるくらい隣り合う画素間の冗長性が排除されていると考えられるので、ＤＣＴを行わずに量子化され、可変符号化ビットを割り当ててＬＺ７７法やレンジコーダにより符号化する（Ｓ１０５）。また、求めた動きベクトルにも可変長ビットを割当て（Ｓ１０６）、ＬＺ７７法やレンジコーダによって圧縮が完了する（Ｓ１１０）。これをすべてのマクロブロックについて行い、動き補償予測符号化（Ｐピクチャ）の圧縮は完了する。Ｉピクチャにおいては、カラーフィルタの出力を直接ＰＮＧ方式や、ＬＺ７７法、レンジコーダなどで圧縮したものを用いる。
【００２３】
次に、図５（ｂ）の１×１点の動き検出について説明する。１×１点の動き検出では、圧縮対象画像のある画素とその近傍の参照画像の画素で差分をとることで、数１で示す式の評価関数が最小になる画素を見つける。
【００２４】
【数１】
2007158524.tif 000003
【００２５】
動きベクトルは、図６に示すように、Ｒ，Ｇ１、Ｇ２、Ｂの動きベクトルを同時に検索する。したがって、各色で同じ動きベクトルを持つことになる。また、輝度成分を利用しないで、Ｒ、Ｇ、Ｂ成分を利用して最小値Ｅｒｒｍｉｎを評価する理由は、輝度でいくら最小値になっても、例えばＲで必ず最小になるとは限らないからである。輝度は色の成分を含んでいないので、そのような偽最小値が生じてしまうためである。ここで、Ｒは参照画像を、Ｒ‘は圧縮対象画像を示している。ＧとＧ’やＢとＢ‘についても同様である。Ｇ１、Ｇ２は、図２（ｂ）で、ベイヤーのＧをＧ１、Ｇ２の二画面分に分離したものである。そして、動きベクトルには一意のベクトル番号ｎを付ける。ｘとｙの絶対値が小さい（ｘ，ｙ）の組み合わせから小さいベクトル番号ｎを付けておき、このベクトル番号ｎを可変長符号化する。Ｒ、Ｇ１、Ｇ２、Ｂを別々に動き検出しない理由は、圧縮すべき動きベクトルが４倍に増加してしまうからである。
【００２６】
１×１点の動き検出で求められた動きベクトルを基にして、マクロブロックのオフセット（動きベクトル）と、マクロブロック内の画素の動きベクトルを求める方法について述べる（図７、図８）。まず、図７（ａ）の格子の中に書かれた数字は、図７（ｃ）にあるように、動きベクトル（ｘ，ｙ）とそれに付けられたベクトル番号ｎである。図７（ａ）の格子の中の数字は、説明が分かりやすいように意図的に考えた数字である。ちなみに、図７（ａ）の斜めの矢印は、ベクトル番号ｎのベクトルが指す先を示している。このように、多数の画素で似たようなベクトルを持つことが多々ある。図７（ｃ）に示したように、最も頻度が大きいのは９度数のベクトル番号２＝（２，２）であり、これをマクロブロックの動きベクトルとして（ＯｆｆＳｅｔＸ，ＯｆｆＳｅｔＹ）＝（２，２）を設定する。ところで、ここでのマクロブロックは、図７（ａ）で太い四角で囲ったように４×４画素としている。
【００２７】
次に、図７（ａ）の１×１の動きベクトルと、（ＯｆｆＳｅｔＸ，ＯｆｆＳｅｔＹ）＝（２，２）のベクトルと差分をとる。そのベクトルを再びベクトル番号に置き換えると図７（ｂ）のようになる。これをみると、画素の動きベクトルには、ゼロベクトルが多く含まれるようになる。
【００２８】
図８は、上記の説明を模式的に表現しなおしたものである。図８（ａ）に、１×１の動き検出で求められた画素の動きベクトルを示す。すべての画素の動きベクトルが、長い距離を指しているような場合、可変長符号化の効率が悪くなる。そこで、図８（ｂ）のように、ある領域をマクロブロックとしてひとまとめに取り扱い、オフセット分まとめて移動しておいてから、内部の個々の画素を動かすようにする。こうすることで、大きな移動量を持つ動きベクトルが少なくなる。この結果ゼロベクトルなどが増えて可変長符号化効率が向上する。
【００２９】
また、マクロブロックの動きベクトルも、カメラのパンニングなど画面全体が平行して移動している場合などのように、隣同士のマクロブロックで同じ値をとりやすいので、冗長性がある。このように、図８（ａ）の１×１の動き検出で求められた動きベクトルを図８（ｂ）マクロブロックの動きとマクロブロック内の画素の動きに分離するほうが圧縮率向上につながる。この方法で、動きの多い動画像の圧縮率が顕著に増加する。
【００３０】
動きベクトルが求まった後は、予測差分画像を求める必要がある。数２に示す式は、参照画像と圧縮対象画像の間で予測差分画像を求め、それを量子化係数ＱＴで量子化している（図５（ａ））。
【００３１】
【数２】
2007158524.tif 000004
【００３２】
この式において、ＲＱＴ、Ｇ１ＱＴ、Ｇ２ＱＴ、ＢＱＴは、量子化された予測差分画像を示している。Ｒ、Ｇ１、Ｇ２、Ｂは参照画像を、Ｒ‘、Ｇ１’、Ｇ２‘、Ｂ’は圧縮対象画像を示している。（ｘｒｅｆ，ｙｒｅｆ）は参照画像の座標を、（ｘｉｎｐ，ｙｉｎｐ）は圧縮対象画像の座標を示している。なお、（ｘｒｅｆ，ｙｒｅｆ）は、（ｘｉｎｐ，ｙｉｎｐ）を中心とする最大±ＭＶの探索領域内の画素を示す座標である。尚、ここでは、ＤＣＴを行わない。その理由は、１×１点の動き検出・補償により、十分な精度の動き補償がなされており、ＤＣＴをしなくても隣同士の画素の相関をかなり多く引き去っているからである。ここで用いているスカラー量子化とは、量子化係数が画面全体で一律同じ値である量子化法である。量子化テーブルが無く、処理が簡単になる。なお、ＱＴを２のべき乗に選ぶと、シフトレジスタだけで量子化回路を構成できる。
【００３３】
次に、２種類の動きベクトル（マクロブロックの動きベクトルと、マクロブロック内の画素の動きベクトル）の可変長符号化について説明する。マクロブロックの動きベクトルは、隣同士のマクロブロックの動きベクトルと差分を取る。その差分をとったマクロブロックの動きベクトルと、マクロブロック内の画素の動きベクトルは、同様な符号化手法を行う。
【００３４】
図９（ｂ）に示すように、動きベクトルの成分（ｘ，ｙ）に対にしてベクトル番号ｎが割り当てられており、このｎに対して可変長ビットを割り当てる。出現頻度が高い（０，０）や（１，０）などのベクトル番号には、短いビットを割り当てる。図９（ａ）に示すように、ベクトル番号が小さいほうが木の根に近くなるように２分木を作成する。可変長ビットの割り当ては、目的のノードから根に向かって遷移した経路を逆にしたものが、求める符号になる。
【００３５】
つまり、５を符号化する場合、ノード５から出発し、左の子から親をたどれば０が出力され、右の子から親をたどれば１が出力される。ここで木の根にたどり着けば、０１となる。出力された符合を逆に並べると１０となり、これが求めるパスとなる。復号する際は、根から出発して、この符号どおり左（１）→右（０）に木を探索すれば、目的のノード５へ到達できる。
【００３６】
図１０では、ベクトル番号８と４に対して可変長ビットを割り当てた例である。図１０（ａ）で、８の場合、８と書いてあるノードから２分木の根に向けて出発する。８の親３に遷移すると、親３から見れば、ノード８は右の子であるため、１が出力される。次は、３から親１へ遷移する。親１から見れば子３は、左の子であるため、０が出力される。最後に、左の子から親である根に遷移するので、また０が出力される。これを逆に並べて００１がノード８までのパスとなる。
【００３７】
図１０（ｂ）は、こうして求まった００１という符号に対する補助情報である。００１という符号は、符号の長さを明記する必要がある。そうしないと２進数のビットストリームを並べた場合、どこからどこまでが該当する符号かが分からなくなるからである。そのため、００１が正確に切り出されるために、もうひとつ補助のためのストリームを生成する。このストリームは図１０（ｂ）に記される符号である。００１という情報に対して図１０（ｂ）は、８が始まる合図として１を出力する。そして００１の３ビットが出力されている間０を３つ出力する。したがって、００１というパスに対して、１０００が出力される。同様に、４の場合、パス０１とそれに対しては、符号が始まる合図として１を出力し、図１０（ａ）の０１に対して２ビットの０を出力する。その結果、１００が出力される。このように可変長符号が割り当てられたら、ＬＺ７７法や、レンジコーダなどを用いてこの符合を圧縮する。この出力は多重器へ出力する。
【００３８】
次に、量子化された予測差分画像ＲＱＴ、Ｇ１ＱＴ、Ｇ２ＱＴ、ＢＱＴの可変長符号化について説明する（図５（ａ））。動き補償後の予測差分画像を量子化器で量子化する。この量子化された予測差分画像を、可変長ビットを割り当てる。予測誤差も０が最も多く、１や−１などが次に出現頻度が高くなる可能性が高い。そのため、動きベクトルでの可変長ビットの割り当てと同様に、図１１に示すように、０を木の根とする２分木を作成し、１、−１、２、−２、３・・・と絶対値が小さい順に木の根に近くなるような２分木を作成し、目的の差分値が入っているノードまでに至るパスとその長さを2進数で表現することで、動きベクトルと同様、可変長ビットを割り当てる。
【００３９】
例として、差分値に４と３の２つのデータに可変長符号を割り当てる。４と書いてあるノードから出発して、２分木を根までたどっていくと、右の子から３回親に遷移することを繰り返すので、出力は０００となる。これを逆に並べて０００となる。符合の長さは３である。上述の動きベクトルの可変長符号化と同様に、ビットストリームから値を切り出すための補助的なストリームは、先頭の合図として１を出力してそのあと先の３ビットの符号分０が３つ続き、図１２（ｂ）に示すように、１０００となる。同様に、３が入ってくると、図１２（ａ）は１０、図１２（ｂ）は１００となる。このように（ａ）には、あるノードから根まで遷移したときに出力される符号を逆に並べ、木の根からある節（ノード）へのパスとする。そして、図１２（ａ）、（ｂ）の符号には冗長性が含まれているため、これをＬＺ７７法やレンジコーダなどで符号化する。この符号化器は特に指定はしなく、効率がよく、ハードウェアが小さい符号化方法ならば何でも構わない。
【００４０】
以上のように本実施例の画像符号化装置及び画像符号化方法によれば、画像圧縮にあたりノイズを生じにくく、ハードウェアの規模が小さく計算量が少なく抑えることができる。具体的には、ベイヤー画像の直接圧縮により、カメラ側の補間回路が不要になり、同様にＲＧＢ表色系からＹＵＶ表色系への変換回路も不要である。さらに、動き検出を大まかな被写体の動きを示す成分と、細かな動きを示す成分の両方を採用することで、高品質な差分画像を得ることができる。
【００４１】
さらに、１×１画素単位の動き検出は、直接Ｎ×Ｎ画素で動き検出をするよりも差分絶対値和の計算コストを削減できる。さらに、ベイヤー画像の動き検出の探索領域はビットマップで行う場合に比べ４分の１となる。
【００４２】
さらに、ＤＣＴがなくても、高品質な圧縮でき、ブロックノイズ等のＤＣＴにまつわる画質の劣化がなく、ＤＣＴに必要なハードウェアや計算コストを削減できる。
【００４３】
さらに、量子化器も簡単なスカラー量子化であるため、ハードウェアを簡略化できる。また、ジグザグスキャンなども存在しないため、ハードウェアを簡略化できる。
【００４４】
さらに、ベイヤー画像はビットマップ画像の３分の１のバッファメモリしか占有しないので、動画圧縮でネックになるバッファメモリサイズを大幅に減らすことができる。
【産業上の利用可能性】
【００４５】
以上のように、本発明の画像符号化装置及び画像符号化方法は、カプセル内視鏡等の医療機器の他、超小型カメラの画像を送信する装置に適用できる。
【図面の簡単な説明】
【００４６】
【図１】本発明に係る画像符号化装置の一例を示す構成図である。
【図２】同画像符号化装置のカラーフィルタの説明図である。
【図３】同画像符号化方法の動作を示す説明図である。
【図４】同画像符号化方法を示す構成図である。
【図５】同画像符号化方法の動作を示すフローチャートである。
【図６】同画像符号化方法の動作を示す説明図である。
【図７】同画像符号化方法の動作を示す説明図である。
【図８】同画像符号化方法の動作を示す説明図である。
【図９】同画像符号化方法の動作を示す説明図である。
【図１０】同画像符号化方法の動作を示す説明図である。
【図１１】同画像符号化方法の動作を示す説明図である。
【図１２】同画像符号化方法の動作を示す説明図である。
【符号の説明】
【００４７】
５・・・・撮像部
１２・・・垂直スキャナ
１４・・・ノイズキャンセル回路
１６・・・水平スキャナ
１８・・・増幅器
２０・・・Ａ／Ｄ変換器
２４・・・バッフメモリ
２６・・・予測差分符号化回路
【図５】
2007158524.tif 000005
【図９】
2007158524.tif 000006
【図１０】
2007158524.tif 000007
【図１１】
2007158524.tif 000008
【図１２】
2007158524.tif 000009
【図１】
2007158524.tif 000010
【図２】
2007158524.tif 000011
【図３】
2007158524.tif 000012
【図４】
2007158524.tif 000013
【図６】
2007158524.tif 000014
【図７】
2007158524.tif 000015
【図８】
2007158524.tif 000016