(57)【要約】【課題】  低周波成分のマクロブロックをスキップしたときに発生する、画面にマクロブロックが張り付いたような違和感を低減する。【解決手段】  動画像をマクロブロック単位で符号化する符号化装置であって、符号化対象マクロブロックの分散値を算出する分散値算出手段と、前記符号化対象マクロブロックと参照マクロブロックの差分絶対値和を算出する差分絶対値和算出手段と、前記分散値と前記差分絶対値和に基づいて、前記符号化対象マクロブロックを符号化不要なスキップマクロブロックとするか否かを決定する基準を設定する設定手段とを備える。【選択図】  図１
2008301212.tif 000002
【特許請求の範囲】
【請求項１】
動画像をマクロブロック単位で符号化する符号化装置であって、
符号化対象マクロブロックの分散値を算出する分散値算出手段と、
前記符号化対象マクロブロックと参照マクロブロックの差分絶対値和を算出する差分絶対値和算出手段と、
前記分散値と前記差分絶対値和に基づいて、前記符号化対象マクロブロックを符号化不要なスキップマクロブロックとするか否かを決定する基準を設定する設定手段と、
前記符号化対象マクロブロックに対して動き補償予測を行う予測手段と、
前記予測手段の結果と前記基準を比較することによって、前記符号化対象マクロブロックをスキップマクロブロックとするか否かの決定を行う決定手段とを備えることを特徴とする符号化装置。
【請求項２】
前記基準は複数あることを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記設定手段は、前記分散値が第１の閾値よりも小さい場合かつ前記分絶対値和が第２の閾値よりも大きい場合に、前記分散値が第１の閾値よりも大きい場合もしくは前記差分絶対値和が第２の閾値よりも小さい場合とは異なる基準を設定することを特徴とする請求項２に記載の符号化装置。
【請求項４】
前記第２の閾値は前記第１の閾値よりも大きいことを特徴とする請求項３に記載の符号化装置。
【請求項５】
動画像をマクロブロック単位で符号化する符号化装置であって、
符号化対象マクロブロックの分散値を算出する分散値算出手段と、
前記符号化対象マクロブロックと参照マクロブロックの差分絶対値和を算出する差分絶対値和算出手段と、
前記分散値と前記差分絶対値和に基づいて、前記符号化対象マクロブロックをスキップマクロブロックとするか否かの情報を生成する生成手段と、
前記情報に基づいて、前記符号化対象マクロブロックを量子化する量子化係数を制御する制御手段とを備えることを特徴とする符号化装置。
【請求項６】
動画像をマクロブロック単位で符号化する符号化方法であって、
符号化対象マクロブロックの分散値を算出する分散値算出工程と、
前記符号化対象マクロブロックと参照マクロブロックの差分絶対値和を算出する差分絶対値和算出工程と、
前記分散値と前記差分絶対値和に基づいて、前記符号化対象マクロブロックをスキップマクロブロックとするか否かを決定する基準を設定する設定工程と、
前記符号化対象マクロブロックに対して動き補償予測を行う予測工程と、
前記予測工程の結果と前記基準を比較することによって、前記符号化対象マクロブロックをスキップマクロブロックとするか否かの決定を行う決定工程とを備えることを特徴とする符号化方法。
【請求項７】
動画像をマクロブロック単位で符号化する符号化方法であって、
符号化対象マクロブロックの分散値を算出する分散値算出工程と、
前記符号化対象マクロブロックと参照マクロブロックの差分絶対値和を算出する差分絶対値和算出工程と、
前記分散値と前記差分絶対値和に基づいて、前記符号化対象マクロブロックを符号化不要なスキップマクロブロックとするか否かの情報を生成する生成工程と、
前記情報に基づいて、前記符号化対象マクロブロックを量子化する量子化係数を制御する制御工程とを備えることを特徴とする符号化方法。
【請求項８】
請求項６または７に記載の符号化方法をコンピュータが読み込み実行することで、前記コンピュータを、符号化装置として機能させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像を符号化する符号化装置に関するものである。
【背景技術】
【０００２】
動画像の圧縮、符号化技術として、ＭＰＥＧ規格が知られている。動画像を符号化してこのＭＰＥＧ規格に従うデータを生成する符号化装置に於いては、目標とするデータレートに基づいてピクチャ毎に目標とする符号量を決定している。そして、各ピクチャの目標符号量に基づいて、各ピクチャを構成する全てのマクロブロックに平均的に目標となる符号量を割り当てる。その後、目標符号量となるよう、各マクロブロックを符号化する際の量子化ステップを決定し、符号化を行っている。
【０００３】
一方、動画像の符号量を削減することを目的として、量子化後のマクロブロックを、動きベクトル情報と各要素の絶対値の最大値及び絶対値の総和から、一部のマクロブロックを符号化不要としてスキップする方法が知られている。（特許文献１）
【特許文献１】特開平９−３７２６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、量子化後のマクロブロックを動きベクトル情報と各要素の絶対値の最大値及び絶対値の総和に基づいてスキップする方法は、以下の問題点があった。つまり、符号化するマクロブロックの周辺が一様に低周波ブロックであり、画像全体が動いている状態（パン、チルト等）の場合、符号化するマクロブロックと参照するマクロブロックの差分が小さいと、符号化するマクロブロックをスキップしてしまう。これは符号量を最小限とするために参照画面の同位置マクロブロックと等しいとしてしまうことに由来する。このため、画面全体は動いているのに、画面にマクロブロックが張り付いたような違和感のある画像になってしまうといった問題があった。
本発明はこのような問題点を解決することを目的とする。
【課題を解決するための手段】
【０００５】
前記問題を解決するため、本発明は、動画像をマクロブロック単位で符号化する符号化装置であって、符号化対象マクロブロックの分散値を算出する分散値算出手段と、前記符号化対象マクロブロックと参照マクロブロックの差分絶対値和を算出する差分絶対値和算出手段と、前記分散値と前記差分絶対値和に基づいて、前記符号化対象マクロブロックを符号化不要なスキップマクロブロックとするか否かを決定する基準を設定する設定手段と、前記符号化対象マクロブロックに対して動き補償予測を行う予測手段と、前記予測手段の結果と前記基準を比較することによって、前記符号化対象マクロブロックをスキップマクロブロックとするか否かの決定を行う決定手段とを備えることを特徴とする。
【０００６】
また、本発明は、動画像をマクロブロック単位で符号化する符号化装置であって、符号化対象マクロブロックの分散値を算出する分散値算出手段と、前記符号化対象マクロブロックと参照マクロブロックの差分絶対値和を算出する差分絶対値和算出手段と、前記分散値と前記差分絶対値和に基づいて、前記符号化対象マクロブロックをスキップマクロブロックとするか否かの情報を生成する生成手段と、前記情報に基づいて、前記符号化対象マクロブロックを量子化する量子化係数を制御する制御手段とを備えることを特徴とする。
【発明の効果】
【０００７】
低周波成分のマクロブロックをスキップしたときに発生する、画面にマクロブロックが張り付いたような違和感を低減する。
【発明を実施するための最良の形態】
【０００８】
＜実施形態１＞
以下、図面を用いて本発明の実施形態１について説明する。
【０００９】
図１に、本発明の実施形態１の概略構成ブロック図を示す。
【００１０】
１０１は画像データの入力端子である、１０２は、入力端子１０１からの画像データのマクロブロックごとの分散値を算出するブロック分散値算出回路である。１０３は、入力端子１０１からの画像データ（フレーム又はフィールド）単位で所定順序に並び替える画面並び替え回路である。１０４は画像データの差分絶対値和をマクロブロック毎に算出する差分絶対値和算出回路である。１１３は、画面並び替え回路１０３の出力画像データから動き補償された予測値を減算する減算器である。１０５は、画面並び替え回路１０３の出力又は減算器１１３の出力を選択するスイッチである。１０６はスイッチ１１３により選択されたデータを離散コサイン変換するＤＣＴ回路である。１０７はＤＣＴ回路１０６から出力される変換係数データを量子化する量子化回路である。
【００１１】
１０８は、量子化回路１０７の出力データを逆量子化する逆量子化回路である。１０９は、逆量子化回路１０８の出力を逆離散コサイン変換する逆ＤＣＴ回路である。１１０は、画面内符号化のときには、逆ＤＣＴ回路１０９の出力データをそのまま出力し、画面間予測符号化のときには、逆ＤＣＴ回路１０９の出力データに予測値を加算する加算器である。１１２は、加算器１１０の出力と、画面並び替え回路１０３の出力画像データとから、動き補償された予測値を算出する動き補償予測回路である。動き補償予測回路１１２から出力される予測値は減算器１１３に供給され、スイッチ１１１を介して加算器１１０に供給される。スイッチ１１１は、画面内符号化のときには開き、画面間予測符号化のときには閉じる。
【００１２】
１１４は、量子化回路１０７の出力データを可変長符号化し、動き補償予測回路１１２からの動きベクトル情報と共に出力する可変長符号化回路である。１１５は、可変長符号化回路１１４の出力データを一時記憶し、レート調整するバッファである。１１６はバッファ１１５のデータ占有量に従い量子化回路１０７の量子化ステップサイズを調整することにより、符号データレートを制御するレート制御回路である。１１７は、レート制御回路１１６からの出力から、量子化係数を決定する量子化係数算出回路である。１１８は、符号化された画像データを出力する出力端子である。
【００１３】
次に、図１を用いて本実施例の動作を説明する。
入力端子１０１から入力された画像は、ブロック分散値算出回路１０２に入力される。ブロック分散値算出回路１０２は、入力端子１０１からの画像データを、マクロブロック単位に分散値を算出する。ブロック分散値算出回路１０２よりマクロブロック単位に算出された分散値は、動き補償予測回路１１２に供給される。
【００１４】
画面並び替え回路１０３は、入力端子１０１からの画像データを図７に例示する順序に並び替えて、減算器１１３、スイッチ１０５の接点Ａ及び動き補償予測回路１１２に供給する。図７は、画面並び替え回路１０３の並び替え規則の模式図を示す。３フレームを単位として、最後のフレームを先頭に移動し、１番目及び２番目のフレームを繰り下げる。例えば、画面並び替え回路１０３は、フレーム＃１，＃２，＃３の順番で入力する画像データを、フレーム＃３，＃１，＃２の順番に変更して、出力する。
【００１５】
次に、差分絶対値和算出回路１０４は、参照する画像（参照フレーム）と符号化する画像で同位置のマクロブロックの輝度信号の差分絶対値和をマクロブロック毎に計算し、動き補償予測回路１１２に供給する。
【００１６】
画面並び替え回路１０３から出力される画像データが、Ｉピクチャとなる画面内符号化のタイミングでは、スイッチ１０５は接点Ａ側に接続し、画面並び替え回路１０３の出力画像データがＤＣＴ回路に供給される。他方、画面並び替え回路１０３から出力される画像データがＰピクチャ又はＢピクチャとなる画面間予測符号化のタイミングでは、スイッチ１０５は接点Ｂ側に接続し、減算器１１３の出力がＤＣＴ回路１０６に供給される。
【００１７】
ＤＣＴ回路１０６は入力データを離散コサイン変換し、量子化回路１０７は、ＤＣＴ回路１０６の出力データ（変換係数データ）を量子化係数算出回路１１７で指定される量子化ステップサイズで量子化する。逆量子化回路１０８は、量子化回路１０７の出力データを逆量子化し、逆ＤＣＴ回路１０９は、逆量子化回路１０８の出力を逆離散コサイン変換する。逆ＤＣＴ回路１０９の出力は、ＤＣＴ回路１０６の入力データに相当する。
【００１８】
Ｉピクチャの場合、逆ＤＣＴ回路１０９の出力データが復号画像データとなるので、スイッチ１１１を開き、加算器１１０は、逆ＤＣＴ回路１０９の出力データをそのまま動き補償予測回路１１２に供給する。
【００１９】
Ｐピクチャ又はＢピクチャの場合、スイッチ１１１は閉じられ、加算器１１０は、逆ＤＣＴ回路１０９の出力データに、動き補償予測回路１１２から出力される予測値を加算する。加算器１１０の出力データが局部復号画像データとなり、動き補償予測回路１１２に供給される。
【００２０】
動き補償予測回路１１２の動作の詳細は後述する。
可変長符号化回路１１４は、量子化回路１０７の出力データを可変長符号化し、その符号データと動き補償予測回路１１２からの動きベクトル情報とをバッファ１１５に出力する。バッファ１１５は、可変長符号化回路１１４からのデータをレート調節して出力端子１１８に供給すると共に、データの符号量に関する情報をレート制御回路１１６に供給する。量子化係数算出回路１１７は、バッファ１１５内でデータの符号量が適正範囲内に入るように、例えばバッファ１１５がオーバーフローしないように、量子化回路１０７の量子化ステップサイズを調整する。
【００２１】
次に動き補償予測回路１１２の動作を図３のフローチャートを用いて説明する。
ステップＳ３０１において、動き補償予測回路１１２は、ブロック分散値算出回路１０２から供給された符号化対象ブロックの分散値Ｖを入力する。
【００２２】
ステップＳ３０２において、動き補償予測回路１１２は、符号化対象ブロックが低周波ブロックか否かを判定するために、入力された分散値Ｖと第１の閾値（Ｔｈｒｅｓ１）を比較する。
【００２３】
ステップＳ３０２における判定において分散値Ｖが第１の閾値よりも大きい場合、低周波ブロックでないと判定される。この場合、ステップＳ３０３において、動き補償予測回路１１２は、符号化対象ブロックをスキップマクロブロックとするかの基準となるスキップマクロ閾値ＴをＭに設定する。
【００２４】
一方、ステップＳ３０２における判定において分散値Ｖが第１の閾値よりも小さい場合、低周波ブロックであると判定し、ステップＳ３０４において、動き補償予測回路１１２は、差分絶対値和算出回路から供給された差分絶対値和Ｓを入力する。
【００２５】
ステップＳ３０５において、動き補償予測回路１１２は、符号化対象ブロックが参照ピクチャの同位置ブロックと差分が少なく、スキップマクロブロックとするか否かを判定するために差分絶対値和Ｓと第２の閾値（Ｔｈｒｅｓ２）を比較する。
【００２６】
ステップＳ３０５における判定において差分絶対値和Ｓが第２の閾値よりも大きい場合、動き補償予測回路１１２は、スキップマクロ閾値ＴをＮに設定する。
【００２７】
一方、ステップＳ３０５における判定において差分絶対値和Ｓが第２の閾値よりも小さい場合、ステップＳ３０３において、動き補償予測回路１１２は、スキップマクロ閾値ＴをＭに設定する。
【００２８】
閾値Ｍ及びＮの関係は、Ｍ＜Ｎであり、閾値Ｔは、符号化対象マクロブロックより前に符号化したマクロブロックの量子化係数Ｑを用いるため、ＭおよびＮは、Ｍ＝Ｑ／２（ただし、Ｑ＝１の場合はＭ＝１）、Ｎ＝Ｑ＊２（ただし、Ｎは最大でもＱの最大値と等しい）とする。
【００２９】
ステップＳ３０７において、動き補償予測回路１１２は、符号化対象ブロックの動きベクトルを算出する。第２図は符号化対象マクロブロックと、符号化対象のマクロブロックの動きベクトルを算出する際に、参照するマクロブロックを参照するピクチャから検索するサーチエリアを表す図である。本実施例では、マクロブロックサイズを８×８画素、サーチエリアを２４×２４画素として説明するが、両サイズは任意であっても構わない。ここで、動き補償予測回路１１２は画像並び替え回路１０３から出力される符号化対象画像データと加算器１１０から出力される参照画像データから、下式を実行する。
Ａ［ｉ，ｊ］＝Σ｜Ｃ［ｘ，ｙ］−Ｔ［ｉ＋ｘ，ｊ＋ｙ］｜      （１）
Ｃ［ｘ，ｙ］は、符号化対象マクロブロックの輝度信号であり、Ｔ［ｉ＋ｘ，ｊ＋ｙ］は参照するフレーム内のサーチエリアの輝度信号である。ただし、ｘ，ｙはマクロブロックアドレスで決定される。また、ｉ，ｊの最大値はサーチエリアのサイズで決定され、本実施例の場合、それぞれ０から２４までの範囲である。
【００３０】
式（１）より算出されたＡ［ｉ，ｊ］の値から参照マクロブロックの量子化係数等を用いて算出される予測符号量と、参照マクロブロックのベクトルとｉ，ｊから生成されるベクトル符号量が最小となる位置を探索し求める。
【００３１】
ステップＳ３０８において、動き補償予測回路１１２は、符号量に最小となる位置が、符号化対象マクロブロックと参照マクロブロックとで同位置かどうかの判定をする。同位置ではない場合、符号化対象マクロブロックは符号化ブロックして処理を行う。
【００３２】
一方、ステップＳ３０８の判定において、同位置と判定された場合、ステップＳ３０９において、ステップＳ３０７で算出されたＡ［ｉ，ｊ］とスキップマクロ閾値Ｔとを比較する。Ａ［ｉ，ｊ］がスキップマクロ閾値Ｔより小さい場合、動き補償予測回路１１２は、符号化対象マクロブロックをスキップマクロブロックとして処理を行う。一方、Ａ［ｉ，ｊ］がスキップマクロ閾値Ｔより大きい場合、動き補償予測回路１１２は、符号化対象マクロブロックを符号化マクロブロックとして処理を行う。
【００３３】
本実施形態において、Ａ［ｉ，ｊ］と閾値によるマクロブロック判定時に、低周波ブロックでの閾値Ｔを大きくすることにより、スキップマクロブロックの発生を抑制している。
【００３４】
これにより、低周波成分のマクロブロックをスキップしたときに発生する、画面にマクロブロックが張り付いたような違和感を低減することができる。
【００３５】
＜実施形態２＞
以下、図面を用いて本発明の実施形態２について説明する。本実施形態においては、実施形態１で説明したスキップマクロブロックの判定を量子化係数算出回路に用いる例を説明する。
【００３６】
図１に、本発明の実施形態２の概略構成ブロック図を示す。
動き補償予測回路４０１及び量子化係数算出回路４０２以外の動作は実施形態１と同様であるので説明を省略する。
【００３７】
図５に動き補償予測回路４０１の動作を表すフローチャートを示す。ステップＳ３０１からステップＳ３０５、ステップＳ３０７の処理は図３と同一であるため説明を省略する。
【００３８】
ステップＳ５０１において、動き補償予測回路１１２は、ステップＳ３０２における判定において分散値Ｖが第１の閾値よりも大きい場合、低周波ブロックでないと判定し、スキップマクロフラグを０に設定する。また、ステップＳ３０５における判定において差分絶対値和Ｓが第２の閾値よりも小さい場合も同様である。
【００３９】
ステップＳ５０２において、動き補償予測回路１１２は、ステップＳ３０５における判定において差分絶対値和Ｓが第２の閾値よりも大きい場合、スキップマクロフラグを１に設定する。
【００４０】
ステップＳ５０３において、動き補償予測回路１１２は、設定されたフラグを量子化係数算出回路４０２に送信する。
【００４１】
次に、図６に量子化係数算出回路４０２の動作を表すフローチャートを示す。
【００４２】
なお、図６は符号化対象画像のピクチャタイプがＰ，Ｂピクチャの時の量子化係数算出回路４０２の動作を表すフローチャートである。
【００４３】
ステップＳ６０１において、量子化係数算出回路４０２は、量子化係数Ｑを算出する。
【００４４】
量子化係数Ｑは、マクロブロック毎に変更できる値であり、この値が小さければ量子化ステップが細かくなり、最小値Ｑ＝０のとき、圧縮率はもっとも小さくなる。
【００４５】
ステップＳ６０２において、量子化係数算出回路４０２は、動き補償予測回路４０１より供給されたスキップマクロフラグが１か否かを判定する。
【００４６】
ステップＳ６０２における判定において、スキップマクロフラグが１の場合、ステップＳ６０３において量子化係数算出回路４０２は、動き補償予測回路４０１において、符号化対象マクロブロックが同位置の参照マクロブロックを選択しているか否かを判定する。
【００４７】
ステップＳ６０４において、量子化係数算出回路４０２は、ステップＳ６０３における判定が同位置マクロブロックではない場合、符号化対象ブロックの量子化を行う。また、ステップＳ６０３における判定が同位置マクロブロックである場合も、符号化対象ブロックの量子化を行う。（ステップＳ６０５）
【００４８】
ステップＳ６０６において、量子化係数算出回路４０２は、符号化対象マクロブロックがスキップマクロブロックになるか否かをスキップマクロフラグが０か１かによって判定する。
【００４９】
ステップＳ６０６において、符号化対象マクロブロックがスキップマクロブロックと判定された場合、ステップＳ６０７において、量子化係数Ｑが最小値か否かを判定する。
【００５０】
ステップＳ６０７において、量子化係数Ｑが最小値でないと判定された場合、ステップＳ６０８において量子化係数算出回路４０２は、量子化係数Ｑを１つ下げる。
【００５１】
上記の処理を行うことによって、量子化係数算出回路４０２は、スキップマクロブロックの発生を抑制することができる。
【００５２】
これにより、低周波成分のマクロブロックをスキップしたときに発生する、画面にマクロブロックが張り付いたような違和感を低減することができる。
【００５３】
＜その他の実施形態＞
なお、本発明は、複数の機器から構成されるシステムの１部として適用しても、１つの機器からなる装置の１部に適用してもよい。
【００５４】
また、本発明は上記実施例を実現するための装置及び方法のみに限定されるものではない。
【００５５】
例えば、上記システム又は装置内のコンピュータ（ＣＰＵ或いはＭＰＵ）に、上記実施例を実現するためのソフトウェアのプログラムコード（コンピュータプログラム）を供給するものも本発明の範疇に含まれる。また、このプログラムコードに従って上記システム或いは装置のコンピュータが上記各種デバイスを動作させることにより上記実施例を実現する場合も本発明の範疇に含まれる。
【００５６】
この場合、前記ソフトウェアのプログラムコード自体が上記実施例の機能を実現することになる。即ち、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、具体的には上記プログラムコードを格納した記憶媒体も本発明の範疇に含まれる。
【００５７】
この様なプログラムコードを格納する記憶媒体としては、例えばフロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００５８】
また、本発明は上記プログラムコードのみに従って各種デバイスを制御することにより、上記実施例の機能が実現される場合に限らない。例えば、上記プログラムコードがコンピュータ上で稼働しているＯＳ（オペレーティングシステム）、或いは他のアプリケーションソフト等と共同して上記実施例が実現される場合も本発明の範疇に含まれる。
【００５９】
更に、コンピュータの機能拡張ボードに備わるメモリに格納された上記プログラムコードの指示に基づいて、その機能拡張ボードに備わるＣＰＵ等が実際の処理の一部または全部を行う場合なども本発明の範疇に含まれる。
【図面の簡単な説明】
【００６０】
【図１】実施形態１の概略構成ブロック図である。
【図２】マクロブロック及びサーチエリアを表す図である。
【図３】実施形態１における動き補償予測回路１１２の動作のフローチャートである。
【図４】実施形態１の概略構成ブロック図である。
【図５】実施形態２における動き補償予測回路４０１の動作のフローチャートである。
【図６】実施形態２における量子化係数算出回路４０２の動作のフローチャートであるである。
【図７】画面並び替え回路１０３におけるフレーム入れ替え例である。
【図１】
2008301212.tif 000003
【図２】
2008301212.tif 000004
【図３】
2008301212.tif 000005
【図４】
2008301212.tif 000006
【図５】
2008301212.tif 000007
【図６】
2008301212.tif 000008
【図７】
2008301212.tif 000009