(57)【要約】  画像ブロックの映像データを符号化するビデオエンコーダと対応する方法が開示される。ビデオエンコーダは、可能性のあるブロックサイズのサブセットのみに対して、対応する動き情報を出力するため初期的な動き推定を実行し、前記可能性のあるブロックサイズのサブセットのみに対応する動き情報と、他の画像関連分析データとに基づき、他のブロックサイズが評価されるべきか判断することによって、モード決定を実行する。
2008514121.tif 000002
【特許請求の範囲】
【請求項１】
画像ブロックの映像データを符号化する装置であって、
可能性のあるブロックサイズのサブセットのみに対して、対応する動き情報を出力するため初期的な動き推定を実行し、前記可能性のあるブロックサイズのサブセットのみに対応する動き情報と、他の画像関連分析データとに基づき、他のブロックサイズが評価されるべきか判断することによって、モード決定を実行するエンコーダを有する装置。
【請求項２】
前記エンコーダは、閾値基準に基づき該判断を終了する、請求項１記載の装置。
【請求項３】
前記画像関連分析データは、同質性分析に基づく、請求項１記載の装置。
【請求項４】
前記エンコーダは、前記同質性分析を向上させるため、動きベクトルを予め計算する前処理要素を有する、請求項３記載の装置。
【請求項５】
前記他の画像関連分析データは、さらにブロック誤差表面に基づき、前記同質性分析データと組み合わされる、請求項３記載の装置。
【請求項６】
前記エンコーダは、前記画像ブロックの動きベクトルを予め符号化されたビットストリームから抽出する符号変換装置である、請求項１記載の装置。
【請求項７】
画像ブロックの映像データを符号化する方法であって、
可能性のあるブロックサイズのサブセットのみに対して、対応する動き情報を出力するため初期的な動き推定を実行することによってモード決定を実行するステップと、
前記可能性のあるブロックサイズのサブセットのみに対応する動き情報と、他の画像関連分析データとに基づき、他のブロックサイズが評価されるべきか判断するステップと、
を有する方法。
【請求項８】
前記判断するステップは、閾値基準に基づき該判断を終了する、請求項７記載の方法。
【請求項９】
前記画像関連分析データは、同質性分析に基づく、請求項７記載の方法。
【請求項１０】
前記同質性分析を向上させるため、動きベクトルを予め計算する前処理ステップをさらに有する、請求項９記載の方法。
【請求項１１】
前記他の画像関連分析データは、ブロック誤差表面にさらに基づき、前記同質性分析データと組み合わされる、請求項９記載の方法。
【請求項１２】
当該方法は、符号変換装置によって実行され、さらに、前記画像ブロックの動きベクトルを予め符号化されたビットストリームから抽出するステップを有する、請求項７記載の方法。
【請求項１３】
画像ブロックの映像データを符号化する装置であって、
可能性のあるブロックサイズのサブセットのみに対して、対応する動き情報を出力するため初期的な動き推定を実行することによってモード決定を実行する手段と、
前記可能性のあるブロックサイズのサブセットのみに対応する動き情報と、他の画像関連分析データとに基づき、他のブロックサイズが評価されるべきか判断する手段と、
を有する装置。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［関連出願の相互参照］
本出願は、参照することによりその全体がここに含まれる、２００４年９月１６日に出願された米国仮出願第６０／６１０，２７８号“ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＦＡＳＴ  ＭＯＤＥ  ＤＥＣＩＳＩＯＮ  ＦＯＲ  ＩＮＴＥＲＦＲＡＭＥＳ”の優先権を主張する。
［発明の分野］
本発明は、一般にビデオエンコーダに関し、より詳細には、インタフレームのための高速モード決定方法及び装置に関する。
［発明の背景］
インタ及びイントラ符号化方法は共に、各種映像圧縮規格に従ってインタフレームを符号化するのに利用可能である。イントラ符号化は空間的相関のみを利用するのに対して、インタ符号化は、以前に符号化されたフレームとの時間的相関を利用する。一般に、インタ符号化は、以前のピクチャから良好に予測されるマクロブロックに対して利用され、イントラ符号化は、以前のピクチャから良好には予測されないマクロブロック、すなわち、低空間アクティビティを有するマクロブロックに対して利用される。
【０００２】
典型的には、エンコーダは、符号化効率及び主観的クオリティに対する考慮に基づき、各マクロブロックに対するインタ／イントラ符号化決定を行う。ＪＶＴ／Ｈ．２６４／ＭＰＥＧ  ＡＶＣ（ＪＶＴ）規格では、インタ符号化は、各種ブロックパーティション及び複数の参照ピクチャが１６×１６のマクロブロックを予測するのに利用されることを可能にする。
【０００３】
ＪＶＴエンコーダは、ツリー構造の階層的マクロブロックパーティションを利用する。インタ符号化された１６×１６のピクセルマクロブロックは、１６×８、８×１６又は８×８のサイズのマクロブロックパーティションに分割されるかもしれない。８×８ピクセルのマクロブロックパーティションはまた、サブマクロブロックとして知られている。エンコーダは、圧縮効率と主観的クオリティを最大化するため、マクロブロックの特性に基づき、マクロブロックをパーティション及びサブマクロブロックパーティションに分割する方法を選択するかもしれない。
【０００４】
さらに、ＪＶＴはまた、ＩＮＴＲＡ、ＳＫＩＰ及びＤＩＲＥＣＴモードをサポートしている。イントラモードは、忠実性レンジ（Ｆｉｄｅｌｉｔｙ  Ｒａｎｇｅ）拡張モードのみであるＩＮＴＲＡ４×４、ＩＮＴＲＡ１６×１６及びＩＮＴＲＡ８×８の３つのタイプを許容する。ＩＮＴＲＡ４×４及びＩＮＴＲＡ８×８は、９つの予測モード、すなわち、垂直（ｖｅｒｔｉｃａｌ）、水平（ｈｏｒｉｚｏｎｔａｌ）、ＤＣ、対角下方／左方（ｄｉａｇｏｎａｌ  ｄｏｗｎ／ｌｅｆｔ）、対角下方／右方（ｄｉａｇｏｎａｌ  ｄｏｗｎ／ｒｉｇｈｔ）、垂直左方（ｖｅｒｔｉｃａｌ−ｌｅｆｔ）、水平下方（ｈｏｒｉｚｏｎｔａｌ−ｄｏｗｎ）、垂直右方（ｖｅｒｔｉｃａｌ−ｒｉｇｈｔ）及び垂直上方（ｈｏｒｉｚｏｎｔａｌ−ｕｐ）予測をサポートしている。ＩＮＴＲＡ１６×１６は、４つの予測モード、すなわち、垂直（ｖｅｒｔｉｃａｌ）、水平（ｈｏｒｉｚｏｎｔａｌ）、ＤＣ及びプレーン（ｐｌａｎｅ）予測をサポートしている。
【０００５】
複数の参照ピクチャが、複数の参照ピクチャの何れが利用されるか示すため符号化される参照ピクチャインデックスと共にインタ予測に利用可能である。Ｐピクチャ（又はＰスライス）では、１方向のみの予測が利用され、許容される参照ピクチャはリスト０により管理される。Ｂピクチャ（又はＢスライス）では、リスト０とリスト１の２つのリストの参照ピクチャが管理される。Ｂピクチャ（又はＢスライス）では、リスト０又はリスト１の何れを利用した１方向のみの予測が可能とされ、又はリスト０とリスト１の双方を利用した双方向予測が可能とされる。双方向予測が利用されるとき、リスト０とリスト１の予測器（ｐｒｅｄｉｃｔｏｒ）は、最終的な予測器を構成するよう平均化される。
【０００６】
各マクロブロックパーティションは、独立した参照ピクチャインデックス、予測タイプ（リスト０、リスト１、ｂｉｐｒｅｄ）及び独立した動きベクトルを有するかもしれない。各サブマクロブロックパーティションは、独立した動きベクトルを有するかもしれないが、同一のサブマクロブロックのすべてのサブマクロブロックパーティションは、同一の参照ピクチャインデックスと予測タイプを利用する。
【０００７】
インタ符号化されたマクロブロックについて、上記マクロブロックパーティションに加えて、ＰフレームはまたＳＫＩＰモードをサポートし、ＢフレームはＳＫＩＰモードとＤＩＲＥＣＴモードの双方をサポートしている。ＳＫＩＰモードでは、動き及び残差情報は符号化されない。ＳＫＩＰマクロブロックの動き情報は、ピクチャ／スライスタイプ（Ｐ又はＢ）及びシーケンスやスライスレベルパラメータなどの他の情報により指定される動きベクトル予測器と同一であり、他の時間的又は空間的に隣接したマクロブロック及びスライス内の自らのマクロブロックポジションに関連する。他方、ＤＩＲＥＣＴモードでは、動き情報は符号化されず、予測残差が符号化される。マクロブロックとサブマクロブロックは共に、ＤＩＲＥＣＴモードをサポートする。
【０００８】
モード決定について、インタピクチャは、インタモードとイントラモードの双方をサポートする必要がある。イントラモードは、ＩＮＴＲＡ４×４とＩＮＴＲＡ１６×１６を含む。Ｐピクチャについて、インタモードは、ＳＫＩＰ、１６×１６、１６×８、８×１６及びサブマクロブロック８×８パーティションを含む。８×８はさらに、８×８、８×４、４×８及び４×４パーティションをサポートする。Ｂピクチャについて、リスト０と１の両方及びＤＩＲＥＣＴモードは、マクロブロックとサブマクロブロックの双方に対して考えられる。
【０００９】
従来技術では、ＲＤＯ（Ｒａｔｅ−Ｄｉｓｔｏｒｔｉｏｎ  Ｏｐｔｉｍｉｚａｔｉｏｎ）フレームワークが、モード決定に対して利用される。インタモードでは、動き推定は、モード決定とは別に考えられる。動き推定は、まずすべてのブロックタイプのインタモードに対して実行され、その後、各インタモードとイントラモードのコストを比較することによって、モード決定が行われる。最小のコストによるモードが、ベストモードとして選択される。
【００１０】
Ｐ又はＢピクチャにおける１つのマクロブロックｓを符号化するための従来の手順（以降において、「従来技術によるマクロブロック符号化手順」）は、以下のように要約される。
【００１１】
従来技術によるマクロブロック符号化手順の第１ステップでは、直近に復号されたピクチャが与えられると、ラグランジェ乗数λＭＯＤＥ、λＭＯＴＩＯＮ及びマクロブロック量子化器（ｑｕａｎｔｉｚｅｒ）ＱＰを決定する。
【００１２】
従来技術によるマクロブロック符号化手順の第２ステップでは、動き推定及び参照ピクチャ選択が、可能なマクロブロックモードの各基準ピクチャ及び動きベクトルに対して、
【数１】
2008514121.tif 000003
を最小化することによって実行される。上記式では、ｍは対象となる現在の動きベクトルであり、ＲＥＦは参照ピクチャを示し、ｐは動きベクトルの符号化中の予測に使用される動きベクトルであり、Ｒ（ｍ−ｐ）は動きベクトルを符号化するのに使用されるビットを表し、Ｒ（ＲＥＦ）は参照ピクチャを符号化するためのビットである。ＳＡＤは、動きベクトルによって予測される参照信号ともとの信号との間の差分の絶対値の和を示す。
【００１３】
従来技術によるマクロブロック符号化手順の第３ステップでは、マクロブロック予測モードは、ＭＯＤＥを変更するとき、ＱＰ及びλＭＯＤＥが与えられると、
【数２】
2008514121.tif 000004
を最小化することにより選択される。ＳＳＤは、もとの信号と再構成された信号との間の差分の平方の和を示す。Ｒ（ｓ，ｃ，ＭＯＤＥ）は、マクロブロックヘッダ、動き及びすべてのＤＣＴ係数に対するビットを含む、ＭＯＤＥの選択に係るビット数である。ＭＯＤＥは、
【数３】
2008514121.tif 000005
の潜在的なマクロブロックモードの集合からのモードを示す。ＩＮＴＲＡ４×４は、
【数４】
2008514121.tif 000006
のモードを含み、ＩＮＴＲＡ１６×１６は、
【数５】
2008514121.tif 000007
のモードを含む。
【００１４】
従来技術によるマクロブロック符号化手順に関して、モード決定誤差表面が単調である可能性が高く、このため、あるモードが最初に調べられた場合、ベストモードを見つけることがより簡単になるかもしれないということを考慮することによって、クオリティについてほとんど影響を有さず、モード決定の複雑さを大きく低減させることが可能な従来技術による高速モード選択が導入された。与えられたモードに対するモード決定が実行されない場合、このことは、高速な動き推定アルゴリズムが利用されたとしても、符号化の最もコストのかかる部分となる動き推定もまた実行されないことを意味する。より詳細には、このアプローチでは、ＳＫＩＰ及び１６×１６モードがまず調べられた。それらの歪み関係（すなわち、Ｊ（ＳＫＩＰ）＜Ｊ（１６×１６））と残差の利用性に従って、検索を終了するか否かさらなる決定がなされた。そうでない場合、Ｊ（８×８）とＪ（４×４）がまた計算された。Ｊ（１６×１６）、Ｊ（８×８）及びＪ（４×４）の各関係に基づき、残りのブロックサイズの何れがテストされるべきか決定するため、さらなる決定が行われた。例えば、歪みが単調である場合（すなわち、Ｊ（１６×１６）＞Ｊ（８×８）＞Ｊ（４×４）又はＪ（１６×１６）＜Ｊ（８×８）＜Ｊ（４×４））、何れの追加的パーティションが調べられるべきか容易に決定することができる。第１のケースについて、例えば、小さなパーティション（８×４及び４×８）のみがテストされ、第２のケースでは、１６×８及び８×１６のみが調べられる。歪みが単調でない場合、すべての可能性のあるモードがテストされる。
【００１５】
異なる従来技術による高速モード決定アプローチでは、追加的な条件が歪みの値（図１参照）及び異なるモード間の関係（図２参照）に基づき導入され、それは検索がクオリティについて大きな影響を与えることなくさらに迅速に完了することを可能にした。
【００１６】
図１を参照するに、歪み値に基づく動きベクトル及びモード決定方法が、参照番号１００を用いて全体表示される。方法１００は、機能ブロック１０４にコントロールをわたすスタートブロック１０２を有する。機能ブロック１０４は、ＳＫＩＰモードと１６×１６モードをチェックし、コントロールを判定ブロック１０６にわたす。判定ブロック１０６は、ＳＫＩＰモードの歪みＪ（ＳＫＩＰ）が１６×１６モードの歪みＪ（１６×１６）未満であるか、そして１６×１６モードが残差を有するか否か判断する。ＳＫＩＰモードの歪みが１６×１６モードの歪み未満でなく、及び／又は１６×１６モードが残差を有する場合、コントロールは機能ブロック１０８にわたされる。そうでない場合、ＳＫＩＰモードの歪みが１６×１６モードの歪み未満であり、かつ１６×１６モードが残差を有しない場合、コントロールは判定ブロック１２６にわたされる。
【００１７】
機能ブロック１０８は、現在の（すなわち、現在評価されている）８×８サブパーティションについて８×８モードをチェックし、コントロールを判定ブロック１１０と機能ブロック１１４にわたす。判定ブロック１１０は、８×８モードが現在の８×８サブパーティションについて１６×１６モードと同一の動き情報を有しているか判断する。８×８モードが対象となるサブパーティションについて１６×１６モードと同一の動き情報を有しない場合、コントロールは機能ブロック１１２にわたされる。そうでない場合、８×８モードが現在の８×８サブパーティションについて１６×１６モードと同一の動き情報を有している場合、コントロールは、機能ブロック１１４にわたされる。
【００１８】
機能ブロック１１２は、１６×８及び８×１６サブパーティションをチェックし、機能ブロック１１４にコントロールをわたす。
【００１９】
機能ブロック１１４は、現在の４×４サブパーティションについて４×４モードをチェックし、コントロールを判定ブロック１１６と機能ブロック１２０にわたす。判定ブロック１１６は、４×４モードが現在の４×４サブパーティションについて８×８モードと同一の動き情報を有しているか判断する。４×４モードが現在の４×４サブパーティションについて８×８モードと同一の動き情報を有していない場合、コントロールは機能ブロック１１８にわたされる。そうでない場合、４×４モードは現在の４×４サブパーティションについて８×８モードと同一の動き情報を有する場合、コントロールは、機能ブロック１２０にわたされる。
機能ブロック１１８は、８×４及び４×８サブパーティションをチェックし、コントロールを機能ブロック１２０にわたす。
【００２０】
機能ブロック１２０は、イントラモードをチェックし、コントロールを機能ブロック１２２にわたす。機能ブロック１２２は、評価されたモードのうちからベストモードを選択し、コントロールをエンドブロック１２４にわたす。エンドブロック１２４は、マクロブロック符号化を終了する。
【００２１】
判定ブロック１２６は、ＳＫＩＰモードが現在の（すなわち、現在評価されている）１６×１６ＭＢについて１６×１６モードと同一の動き情報を有しているか判断する。ＳＫＩＰモードが現在の１６×１６ＭＢについて１６×１６モードと同一の動き情報を有していない場合、コントロールは判定ブロック１０８にわたされる。そうでない場合、ＳＫＩＰモードは現在の１６×１６ＭＢについて１６×１６モードと同一の動き情報を有する場合、コントロールは機能ブロック１２０にわたされる。
【００２２】
図２を参照するに、異なるモード間の関係に基づく動きベクトル及びモード決定方法が、参照番号２００を用いて全体表示される。方法２００は、機能ブロック２０４にコントロールをわたすスタートブロック２０２を含む。機能ブロック２０４は、ＳＫＩＰモードと１６×１６モードをチェックし、コントロールを判定ブロック２０６にわたす。判定ブロック２０６は、ＭＣ２＞Ｔ１が成り立つか判断する。ここで、ＭＣ２は、ＳＫＩＰモードと１６×１６モードとの間の最小歪みであり、ＭＣ２＝ｍｉｎ（Ｊ（ＳＫＩＰ），Ｊ（１６×１６）であり、Ｔ１は第１閾値である。ＭＣ２≦Ｔ１である場合、コントロールは判定ブロック２０８にわたされる。そうでない場合、すなわち、ＭＣ２＞Ｔ１の場合、コントロールは機能ブロック２１０と機能ブロック２１２にわたされる。
【００２３】
判定ブロック２０８は、ＭＣ２がＴ２（第２閾値）より大きいか判断する。ＭＣ２がＴ２より大きくない場合、コントロールは機能ブロック２１０と２１２にわたされる。そうでない場合、すなわち、ＭＣ２がＴ２より大きい場合、コントロールは機能ブロック２１８にわたされる。
【００２４】
機能ブロック２１０は、他のインタモードをチェックし、コントロールを機能ブロック２１２にわたす。機能ブロック２１２は、他のテストされていないイントラモードをチェックし、コントロールを機能ブロック２１４にわたす。機能ブロック２１４は、評価されたモードのうちからベストモードを選択し、コントロールをエンドブロック２１６にわたす。エンドブロック２１６は、マクロブロック符号化を終了する。
【００２５】
機能ブロック２１８は、ＩＮＴＲＡ４×４  ＤＣをチェックし、コントロールを判定ブロック２２０にわたす。判定ブロック２２０は、Ｊ（ＩＮＴＲＡ４×４  ＤＣ）がａ＊ＭＣ２＋ｂ未満であるか判断する。ここで、ａ及びｂは定数である。Ｊ（ＩＮＴＲＡ４×４  ＤＣ）がａ＊ＭＣ２＋ｂ未満である場合、コントロールは機能ブロック２１０と２１２にわたされる。そうでない場合、すなわち、Ｊ（ＩＮＴＲＡ４×４  ＤＣ）がａ＊ＭＣ２＋ｂ未満でない場合、コントロールは機能ブロック２１２にわたされる。
【００２６】
他の異なる従来技術による高速モード決定アプローチでは、同質性分析及び定常検出などのシンプルな方法を用いて、ピクチャがまず解析された。同質性分析は、標準偏差、分散、歪度、尖度などのシンプルな統計測定値を考慮することにより実行可能である。残念ながら、これらのメトリックは、リアルタイムの実現には適していないかもしれない。何れのモードが考慮されるべきかの判定はまた、高速イントラ決定を用いた、特にエッジ方向に関するさらに異なる従来アプローチに基づくものであった。図３において、同質性分析及び定常検出を利用するアプローチに関する方法を見ることができ、そこでは、１６×１６、１６×８、８×１６、８×８、８×４、４×８及び４×４が、モード１〜７に連続的に割り当てられる。
【００２７】
図３を参照するに、同一性及び定常性を利用したモード決定方法が、参照番号３００を用いて全体表示される。方法３００は、コントロールを機能ブロック３０４にわたすスタートブロックを有する。機能ブロック３０４は、エッジ検出を実行し、コントロールを機能ブロック３０６にわたす。機能ブロック３０６は、高速イントラモード決定を実行し、コントロールを機能ブロック３０８にわたす。機能ブロック３０８は、モード１〜７のフラグを設定し、コントロールを判定ブロック３１０にわたす。判定ブロック３１０は、対象となる（すなわち、現在評価されている）１６×１６マクロブロック（ＭＢ）がゼロの動きを有するか判断する。１６×１６ＭＢがゼロの動きを有しない場合、コントロールは判定ブロック３１２にわたされる。そうでない場合、すなわち、１６×１６ＭＢがゼロの動きを有している場合、コントロールは機能ブロック３１８にわたされる。
【００２８】
判定ブロック３１２は、１６×１６ＭＢが同質的であるか判断する。１６×１６ＭＢが同質的でない場合、コントロールは判定ブロック３１４にわたされる。そうでない場合、すなわち、１６×１６ＭＢが同質的である場合、コントロールは機能ブロック３２８にわたされる。
【００２９】
判定ブロック３１４は、１６×１６ブロックの各８×８サブブロックが同質的であるか判断する。各８×８サブブロックが同質的でない場合、コントロールは判定ブロック３１６にわたされる。そうでない場合、すなわち、各８×８サブブロックが同質的である場合、コントロールは機能ブロック３３２にわたされる。
【００３０】
判定ブロック３１６は、対象となる８×８サブブロックが１６×１６ＭＢの最後のサブブロックであるか判断する。８×８サブブロックが１６×１６ＭＢの最後のサブブロックでない場合、コントロールはステップ３１４に戻る。そうでない場合、すなわち、８×８サブブロックが１６×１６ＭＢの最後のサブブロックである場合、コントロールは機能ブロック３２４にわたされる。機能ブロック３２４は、フラグを設定したモードに対してのみ異なるブロックサイズに対する動き推定を実行し、コントロールをエンドブロック３２６にわたす。エンドブロック３２６は、マクロブロック符号化を終了する。
【００３１】
機能ブロック３１８は、ＭＢ差分を計算し、コントロールを判定ブロック３２０にわたす。判定ブロック３２０は、ＭＢ差分が予め指定された閾値未満であるか判断する。ＭＢ差分が予め指定された閾値未満である場合、コントロールはステップ３１２にわたされる。そうでない場合、すなわち、ＭＢ差分が予め指定された閾値未満である場合、コントロールは機能ブロック３２２にわたされる。
【００３２】
機能ブロック３２２は、モード１を除くすべてのモードフラグをクリアし、コントロールを機能ブロック３２４にわたす。
【００３３】
機能ブロック３２８は、すべてのモード４、５、６及び７フラグをクリアし、コントロールを機能ブロック３３０にわたす。機能ブロック３３０は、イントラ垂直予測画選択されるとモード２フラグをクリアし、イントラ水平予測画選択されるとモード３フラグをクリアし、そうでない場合、モード２及び３をクリアし、その後、コントロールを機能ブロック３２４にわたす。
【００３４】
機能ブロック３３２は、８×８サブブロックについてモード５、６及び７フラグをクリアし、コントロールを判定ブロック３１６にわたす。
【００３５】
インタモード決定は、動き推定、各種ブロックサイズ及び複数参照ピクチャ選択に関連付けされる。イントラモード決定は、各種ブロックサイズ及び複数空間予測モード選択に関連付けされる。従って、フレーム間についてのモード決定は、エンコーダに対して大きな負荷を課す。
【００３６】
従って、エンコーダに対する不可を軽減する高速フレーム間モード決定を実行するための方法及び装置を有することが、望ましく、大変効果的である。
［発明の概要］
従来技術の上記及び他の欠点及び問題点が、高速フレーム間モード決定のための方法及び装置に関する本発明により解決される。
【００３７】
本発明の特徴によると、画像ブロックについて映像データを符号化するビデオエンコーダが提供される。ビデオエンコーダは、可能性のあるブロックサイズのサブセットのみに対して初期的な動き推定を、それに対応する動き情報を出力するため実行し、当該可能性のあるブロックサイズのサブセットのみに対応する動き情報と、画像関連分析データとに基づき、他のブロックサイズが評価されるべきか判断することによって、モード決定を実行するエンコーダを有する。
【００３８】
本発明の他の特徴によると、画像ブロックについて映像データを符号化する方法が提供される。本方法は、能性のあるブロックサイズのサブセットのみに対して初期的な動き推定を、それに対応する動き情報を出力するため実行し、当該可能性のあるブロックサイズのサブセットのみに対応する動き情報と、画像関連分析データとに基づき、他のブロックサイズが評価されるべきか判断することによって、モード決定を実行するステップを有する。
【００３９】
本発明の上記及び他の特徴、機能及び効果は、添付した図面と共に参照されるべき以下の実施例の詳細な説明から明になるであろう。
［詳細な説明］
本発明は、高速なフレーム間モード決定方法及び装置に関する。効果的には、本発明は、高速フレーム間モード決定に対する従来アプローチを比較して、モード決定の複雑さを低減しながら、同時に符号化効率を維持する。
【００４０】
本説明は、本発明の原理を説明する。従って、当業者は、ここに明示的に記載又は図示されてはいないが、本発明の原理を実現し、その趣旨及び範囲内に含まれる各種構成を考案することが可能であるということは理解されるであろう。
【００４１】
ここに記載されるすべての具体例及び条件付き言語は、読み手が本発明の原理と発明者により従来技術を向上させるのに寄与するコンセプトを理解するのに資するため、教示的目的のためのものであり、このような具体的に記載された具体例及び条件に限定されるものでないと解釈されるべきである。
【００４２】
さらに、ここに記載された本発明の原理、特徴及び実施例と共に、それらの具体的な例に関するすべての記載は、構造的及び機能的な均等物を含むものとされる。さらに、このような均等物は、現在知られている均等物だけでなく将来開発される均等物、すなわち、構成に関係なく同一の機能を実行するよう開発された任意の要素を含むことが意図される。
【００４３】
従って、例えば、ここに与えられたブロック図は、本発明の原理を実現する例示的回路の概念図を表していることが当業者により理解されるであろう。同様に、フローチャート、フロー図、状態遷移図、擬似コードなどは、実質的にコンピュータ可読媒体に表現され、当該コンピュータ又はプロセッサが明示的に図示されているか否かに関係なく、コンピュータ又はプロセッサにより実行可能な各種プロセスを表すことが理解されるであろう。
【００４４】
図示された各種要素の機能は、専用のハードウェアと共に、適切なソフトウェアに関連してソフトウェアを実行可能なハードウェアを利用することにより提供することが可能である。プロセッサにより提供されるとき、これらの機能は単独の専用プロセッサ、単独の共有プロセッサ、又はその一部が共有可能な複数のプロセッサによって提供することが可能である。さらに、「プロセッサ」又は「コントローラ」の用語の明示的な使用は、ソフトウェアを実行可能なハードウェアのみを表すものと解釈されるべきでなく、非明示的には、限定されることなく、デジタル信号プロセッサ（ＤＳＰ）ハードウェア、ソフトウェアを格納するＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）及び不揮発性ストレージを含むかもしれない。
【００４５】
他の従来及び／又はカスタムハードウェアもまた含まれるかもしれない。同様に、図示された任意のスイッチは、単ある概念状のものである。それらの機能は、プログラムロジックの実行を介し、専用ロジックを介し、プログラムコントロールと専用ロジックのやりとりを介し、又は手動により実行可能であり、特定の技術は文脈からより具体的に理解されるような実現する者により選択可能である。
【００４６】
請求項において、指定された機能を実行するための手段として表現される要素は、例えば、ａ）当該機能を実行する回路要素の組み合わせ、又はｂ）ファームウェア、マイクロコードなどを含む、当該機能を実行するソフトウェアを実行するための適切な回路と組み合わされた任意の形態のソフトウェアを含む、当該機能を実行する任意の方法を含むことが意図される。このような請求項により規定されるような本発明は、記載された各種手段により提供される機能が、請求項が求める方法により組み合わされるという事実に依拠する。従って、これらの機能を提供することが可能な任意の手段が、ここに示されたものと均等であるとみなされる。
【００４７】
ここでは、モード決定の複雑さをさらに低減するため、新規な組み合わせにより従来アプローチのある側面を部分的に利用する新規な方法及び装置が提供される。本発明は、関連する従来技術のアプローチに対するパフォーマンスの向上を提供可能である。例えば、本発明の一実施例では、誤差表面の単調性を考慮することによって、関連する従来技術によるアプローチに対するパフォーマンスの向上が実現される。さらに、本発明は、関連する従来技術によるアプローチに対する効率性の向上を提供することができる。例えば、同質性条件を利用する１つの関連する従来技術によるアプローチでは、同質性条件が充足されていない場合には、すべてのモードがチェックされる必要がある。この従来技術によるアプローチと対照的に、本発明は、まず１６×１６、８×８及び４×４モードのみを調べ、他の従来アプローチに示される条件及び／又はここに示される他の条件などに基づき適切なモードをチェックする。このような実現形態の一例を図５に見ることができる。エッジ情報がモード決定に利用されることに留意されたい。当該メトリックは、標準偏差、分散、歪度、尖度などのメトリックよりリアルタイムの実現により良好であるためである。もちろん、上記及び他のメトリックが、本発明の範囲を維持しながら、本発明により利用可能である。
【００４８】
図４を参照するに、映像データを符号化するエンコーダが、参照番号４００により全体表示される。
【００４９】
エンコーダ４００への入力は、加算接合部４１０の非反転入力と信号通信接続される。加算接合部４１０の出力は、ブロック変換装置４２０に信号通信接続される。変換装置４２０は、量子化装置４３０の第１入力と信号通信接続される。量子化装置４３０の出力は、可変長符号化装置（ＶＬＣ）４４０と信号通信接続され、ＶＬＣ４４０の出力は、エンコーダ４００の外部に利用可能な出力である。レートコントローラ４７７の第１入力は、加算接合部４１０の出力に信号通信接続され、レートコントローラ４７７の第２入力は、ＶＬＣ４４０の出力に信号通信接続され、レートコントローラ４７７の出力は、量子化装置４３０の第２入力に信号通信接続される。
【００５０】
量子化装置４３０の出力はさらに、逆量子化装置４５０に信号通信接続される。逆量子化装置４５０は、逆ブロック変換装置４６０に信号通信接続され、逆ブロック変換装置４６０は、参照ピクチャストア４７０に信号通信接続される。参照ピクチャストア４７０の第１出力は、動き推定装置４８０の第１入力と信号通信接続される。エンコーダ４００への入力は、さらに動き推定装置４８０の第２入力と信号通信接続される。動き推定装置４８０の出力は、動き補償装置４９０の第１出力に信号通信接続される。参照ピクチャストア４７０の第２出力は、動き補償装置４９０の第２入力と信号通信接続される。動き補償装置４９０の出力は、加算接合部４１０の反転入力に信号通信接続される。
【００５１】
エンコーダ４００が符号変換装置であるか、又は符号変換装置と共に利用される場合、符号変換装置は予め符号化されたビットストリームから動きベクトルを抽出するかもしれない。
【００５２】
図５において利用されるアプローチが、ここで概略され、その後、図５に示される方法ステップに関してより詳細に説明される。
【００５３】
ＳＫＩＰモードと１６×１６モードがまずテストされる。最小の歪みが閾値Ｔ１以下である場合、又はＳＫＩＰモード及び１６×１６モードが同一の動きベクトルを有し、１６×１６モードが残差を有していない場合、モード検索はすぐに終了される。そうでない場合、同質性条件が調べられる。１６×１６モードが同質である場合、８×１６モード又は１６×８モードのみがエッジ情報に応じてテストされる必要があるかもしれない（すなわち、垂直エッジについては、８×１６モードをテストし、水平エッジについては、１６×８モードをテストし、そうでない場合には、モード決定を終了する）。１６×１６が同質でない場合、８×８モードと、適用可能である場合には、１６×８モード及び８×１６モードがまたテストされる。最小の歪みが閾値Ｔ２以下である場合、モード検索は再び終了され、最小の歪みのモードが、ベストモードとして選択される。そうでない場合、各８×８サブパーティションに対して、同質性条件が再び適用される。８×８サブパーティションが同質であると判明すると、さらなるモード検索は不要である。そうでない場合には、８×４及び４×８サブパーティションが、８×８モードに関する４×４モードの関係又は閾値パラメータに基づき決定することができる（すなわち、４×４ＭＶが８×８ＭＶと異なる場合）。すべての８×８サブパーティションがテストされるとき、すべてのモードの検索を終了することができる。
【００５４】
図５を参照するに、モード決定方法は、参照番号５００を用いて全体表示される。方法５００は、コントロールを機能ブロック５０４にわたすスタートブロック５０２を含む。機能ブロック５０４は、エッジ検出を実行し、コントロールを機能ブロック５０６にわたす。機能ブロック５０６は、高速イントラモード決定を実行し、コントロールを機能ブロック５０８にわたす。機能ブロック５０８は、すべてのモードフラグを設定し、コントロールを機能ブロック５１０にわたす。機能ブロック５１０は、ＳＫＩＰモードと１６×１６モードをチェックし、コントロールを判定ブロック５１２にわたす。判定ブロック５１２は、現在の（すなわち、現在評価されている）１６×１６マクロブロック（ＭＢ）について、ＳＫＩＰモードの歪みＪ（ＳＫＩＰ）が１６×１６モードの歪みＪ（１６×１６）未満であり、１６×１６モードが残差を有しないか判断する。ＳＫＩＰモードの歪みが１６×１６モードの歪み未満でなく、及び／又は１６×１６モードが残差を有する場合、コントロールを判定ブロック５１４にわたす。そうでない場合、ＳＫＩＰモードの歪みは１６×１６モードの歪み未満であり、１６×１６モードは残差を有しない場合、コントロールは判定ブロック５２８にわたされる。
【００５５】
判定ブロック５１４は、最小歪み（ＭｉｎＪ）が予め指定された閾値Ｔ１未満であるか判断する。ＭｉｎＪがＴ１未満でない場合、コントロールは判定ブロック５１６にわたされる。そうでない場合、ＭｉｎＪがＴ１未満である場合、コントロールは機能ブロック５３０にわたされる。
【００５６】
判定ブロック５１６は、１６×１６ＭＢが同質であるか判断する。１６×１６ＭＢが同質でない場合、コントロールは機能ブロック５１８にわたされる。そうでない場合、１６×１６ＭＢが同質である場合、コントロールは機能ブロック５３４にわたされる。
【００５７】
機能ブロック５１８は、現在の（すなわち、現在評価されている）１６×１６ＭＢの８×８サブパーティションについて８×８モードをチェックし、コントロールを判定ブロック５３６と判定ブロック５２０にわたす。
【００５８】
判定ブロック５３６は、８×８モードが、現在の８×８サブパーティションについて１６×１６モードと同一の動き情報を有するか判断する。８×８モードが現在の８×８サブパーティションについて、１６×１６モードと同一の動き情報を有しない場合、コントロールは機能ブロック５３８にわたされる。そうでない場合、すなわち、８×８モードは現在の８×８サブパーティションについて１６×１６モードと同一の動き情報を有する場合、コントロールは、判定ブロック５２０にわたされる。
【００５９】
機能ブロック５３８は、１６×８及び８×１６サブパーティションをチェックし、コントロールを判定ブロック５２０にわたす。
【００６０】
判定ブロック５２０は、最小歪み（ＭｉｎＪ）が予め指定された閾値Ｔ２未満であるか判断する。ＭｉｎＪがＴ２未満でない場合、コントロールは、判定ブロック５２２にわたされる。そうでない場合、すなわち、ＭｉｎＪがＴ２未満である場合、コントロールは機能ブロック５３０にわたされる。
【００６１】
判定ブロック５２２は、１６×１６ＭＢの各８×８サブパーティションに対して、当該８×８サブパーティションが同質であるか判断する。現在の８×８サブパーティションが同質でない場合、コントロールは機能ブロック５２４にわたされる。そうでない場合、すなわち、現在の８×８サブパーティションが同質である場合、コントロールは機能ブロック５２６にわたされる。
【００６２】
機能ブロック５２４は、１６×１６ＭＢの現在の４×４サブパーティションについて４×４モードをチェックし、コントロールを判定ブロック５４０と５２６にわたす。
【００６３】
判定ブロック５４０は、現在の４×４サブパーティションについて、４×４モードが８×８モードと同一の動き情報を有しているか判断する。４×４モードが対象となる４×４サブパーティションについて８×８モードと同一の動き情報を有していない場合、コントロールは、機能ブロック５４２にわたされる。そうでない場合、すなわち、４×４モードが現在の４×４サブパーティションについて８×８モードと同一の動き情報を有している場合、コントロールは判定ブロック５２６にわたされる。
【００６４】
判定ブロック５２６は、現在の８×８サブパーティションが、１６×１６ＭＢに含まれる最後の８×８サブパーティションであるか判断する。現在の８×８サブパーティションが、１６×１６ＭＢに含まれる最後の８×８サブパーティション出ない場合、コントロールは、判定ブロック５２２にわたされる。そうでない場合、すなわち、対象となる８×８サブパーティションが、１６×１６ＭＢに含まれる最後の８×８サブパーティションである場合、コントロールは、機能ブロック５３０にわたされる。
【００６５】
判定ブロック５２８は、ＳＫＩＰモードが、１６×１６ＭＢについて１６×１６モードと同一の動き情報を有しているか判断する。ＳＫＩＰモードが１６×１６ＭＢについて１６×１６モードと同一の動き情報を有していない場合、コントロールは判定ブロック５１４にわたされる。そうでない場合、すなわち、ＳＫＩＰモードが１６×１６ＭＢについて１６×１６モードと同一の動き情報を有している場合、コントロールは、機能ブロック５３０にわたされる。
【００６６】
機能ブロック５３４は、イントラ垂直が利用されているとき、８×１６をチェックし、イントラ水平が利用されているとき、１６×８をチェックし、コントロールを機能ブロック５３０にわたす。
【００６７】
機能ブロック５４２は、８×４及び４×８サブパーティションをチェックし、コントロールを判定ブロック５２６にわたす。
【００６８】
機能ブロック５３０は、評価されたモードからベストモードを選択し、コントロールをエンドブロック５３２にわたす。エンドブロック５３２は、マクロブロック符号化を終了する。
【００６９】
上記スキームはまた、閾値に基づく追加的な歪みを考慮し、以前に計算されたブロック又はマクロブロックに基づきこのような閾値を適応させ、さらにモード動きベクトル（ＭＶ）相関を考慮するように、モード間の関係及び歪みに関する従来の追加的パラメータを含むよう容易に変形可能である。
【００７０】
上で記載されなかった定常検出及び同質性分析を利用した従来のアプローチの１つの特徴は、パーティション内部のゼロの動きを考慮することである。このコンセプトは、バックグラウンド又は一般には定常領域を決定するのに効果的であるが、それは、画像が大きな大域的動きにより特徴付けされる場合、あまり有用でないかもしれない。複数のエンコーダが予備的な、通常は１６×１６のＭＥをすでに利用した前処理要素を有するか、又は符号変換アーキテクチャに基づくものであることを考慮すると（例えば、ソース入力は、復号され、その後にフォーマットＢに再符号化されるＭＰＥＧ−２などの異なるフォーマットＡによるものである）、ゼロの動きを考慮する代わりに、このような要素が利用可能である場合、当該要素から新しい動きベクトルが代わりに利用可能となることが開示されている。より詳細には、モード１６×１６及びＳＫＩＰの各モードをチェックした後、追加的な条件が追加され、それに従って、｜ＭＶＢｅｓｔＭｏｄｅ−ＭＶＰｒｅｄＭＶ｜＜εかつＭｉｎＪ＜Ｔ３である場合、検索は再び終了される。ここで、ＢｅｓｔＭｏｄｅは最小歪みＭｉｎＪによるモードであり、ＰｒｅｄＭＶは前処理要素ＭＶであり、ε及びＴ３は所定の閾値である。当該アプローチは動き情報に基づき領域同質性を決定するのに利用可能であるため、同様の条件がまた、８×８サブパーティションに対して適用可能である。
【００７１】
本発明の多数の付随的効果／特徴の一部について説明する。例えば、１つの効果／特徴は、まず可能性のあるブロックサイズのサブセットについてのみ動き推定を実行することによってモード決定を実行し、その後、動き情報をと追加的な分析特性を利用して、他のブロックサイズが調べられるべきか判断するエンコーダである。他の効果／特徴は、分析特性が同質性分析に基づく上述したようなエンコーダである。さらなる他の効果／特徴は、閾値基準が検索を終了するよう導入される上述したようなエンコーダである。さらなる他の効果／特徴は、分析特性が上述したような同質性分析に基づき、予め計算されたＭＶを利用して、同質性分析を向上させる前処理要素を有する上述したようなエンコーダである。さらなる効果は、分析特性が上述したような同質性分析に基づき、ブロック誤差表面が、何れのブロックパーティションが調べられるべきか決定するため、同質性条件と組み合わせて利用される上述したエンコーダである。
【００７２】
本発明の上記及び他の特徴及び効果は、ここでの教示に基づき、当業者により容易に確認可能であろう。本発明の教示は、ハードウェア、ソフトウェア、ファームウェア、特定用途プロセッサ又は上記の組み合わせの各種形態により実現可能であるということが理解されるべきである。
【００７３】
より好ましくは、本発明の教示はハードウェアとソフトウェアの組み合わせとして実現される。さらに、ソフトウェアは、好ましくは、プログラムストレージユニットに有形に実現されるアプリケーションプログラムとして実現される。アプリケーションプログラムは、何れか適切なアーキテクチャを有するマシーンにアップロードされてもよいし、又はそれにより実行されてもよい。好ましくは、当該マシーンは、１以上の中央処理ユニット（ＣＰＵ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）及び入出力（Ｉ／Ｏ）インタフェースなどのハードウェアを有するコンピュータプラットフォーム上で実現される。コンピュータプラットフォームはまた、オペレーティングシステムとマイクロ命令コードを有してもよい。ここに記載された各種プロセス及び機能は、マイクロ命令の一部、アプリケーションプログラムの一部又はＣＰＵにより実行可能な上記の何れかの組み合わせであってもよい。さらに、追加的なデータストレージユニットや印刷ユニットなど他の各種周辺ユニットは、コンピュータプラットフォームに接続されてもよい。
【００７４】
さらに、添付した図面に示されるシステムコンポーネント及び方法の一部は、好ましくは、ソフトウェアにより実現されるため、システムコンポーネント又はプロセス機能ブロックとの間の実際の接続は、本発明がプログラムされる方法に応じて異なるかもしれないということが理解されるべきである。ここでの教示が与えられると、当業者は、本発明の上記及び同様の実現形態又は構成を想到することが可能となるであろう。
【００７５】
図示された実施例が添付した図面を参照して説明されたが、本発明は、これらの実施例に限定されるものでなく、本発明の趣旨又は範囲から逸脱することなく、当業者により各種変更及び改良が可能となるということが理解されるべきである。このようなすべての変更及び改良は、添付した請求項に与えられるような本発明の範囲内に含まれるべきものである。
【図面の簡単な説明】
【００７６】
【図１】図１は、歪み値に基づく動きベクトル及びモード決定方法のフロー図を示す。
【図２】図２は、異なるモードの間の関係に基づき動きベクトル及びモード決定方法のフロー図を示す。
【図３】図３は、同質性及び定常性を利用したモード決定方法のフロー図を示す。
【図４】図４は、本発明の原理によるエンコーダのブロック図を示す。
【図５】図５は、本発明の原理によるモード決定方法のフロー図を示す。
【図１】
2008514121.tif 000008
【図２】
2008514121.tif 000009
【図３】
2008514121.tif 000010
【図４】
2008514121.tif 000011
【図５】
2008514121.tif 000012
【国際調査報告】
2008514121.tif 000013
2008514121.tif 000014
2008514121.tif 000015