(57)【要約】      （修正有）【課題】多数のエンコーディング法において、実装の性能及び速度を改善する。【解決手段】ビデオ処理装置は、モード選択信号が第１値を具備している際には、エンコーディングモードにおいて動作し、モード選択信号が第２値を具備している際には、デコーディングモードにおいて動作する。エンコーディングモードは、それぞれが特定のコーディング機能を実行する複数の機能固有のハードウェアエンジンを利用しており、デコーディングモードは、複数のハードウェアエンジンの中の少なくとも１つを利用している。【選択図】図４
2008228305.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ処理装置が入力信号をエンコーディングするエンコーディングモードと、ビデオ処理装置が前記入力信号をデコーディングするデコーディングモードと、を有するビデオ処理システムであって、
前記ビデオ処理装置は、
複数のマクロブロックのそれぞれのマクロブロックについてモーションサーチモーションベクトルを生成するモーションサーチモジュールと、
前記モーションサーチモジュールに結合されており、前記モーションサーチモーションベクトルに基づいて、前記複数のマクロブロックのそれぞれのマクロブロックについて改良されたモーションベクトルを生成するモーション改良モジュールと、
前記複数のマクロブロックのそれぞれのマクロブロックについて最良のイントラ予測モードを生成するイントラ予測モジュールと、
前記モーション改良モジュール、ダイレクトモードモジュール、及び前記イントラ予測モジュールに結合されており、前記改良されたモーションベクトル、ダイレクトモードモーションベクトル、及び前記最良のイントラ予測モードに関連したコストに基づいて、前記複数のマクロブロックのそれぞれのマクロブロックについて最終的なモーションベクトルを判定するモード決定モジュールと、
前記モード決定モジュールに結合されており、前記ビデオ処理装置が前記エンコーディングモードにあるときに、前記複数のマクロブロックのそれぞれのマクロブロックについて前記最終的なモーションベクトルに対応した残留ピクセル値を生成すると共に、前記ビデオ処理装置が前記デコーディングモードにあるとき及びビデオ処理装置が前記エンコーディングモードにあるときに、フィルタリングされていない再構築フレームを生成する再構築モジュールと、
前記再構築モジュールに結合されており、前記ビデオ処理装置が前記エンコーディングモードにあるときに、前記残留ピクセル値を変換及び量子化すると共に、ビデオ処理装置が前記デコーディングモードにあるとき及びビデオ処理装置が前記エンコーディングモードにあるときに、逆変換及び逆量子化によって残留ピクセル値を形成する変換及び量子化モジュールと、
を有する、ビデオ処理システム。
【請求項２】
前記モーションサーチモジュール、前記モーション改良モジュール、前記イントラ予測モジュール、前記モード決定モジュール、前記再構築モジュール、及び前記変換及び量子化モジュールの中の少なくとも１つは、前記ビデオ処理装置が前記エンコーディングモードにあるとき及び前記ビデオ処理装置が前記デコーディングモードにあるときに動作する請求項１に記載のビデオ処理システム。
【請求項３】
前記モーション改良モジュール、前記モード決定モジュール、及び前記イントラ予測モジュールは、それぞれ、前記ビデオ処理装置が前記エンコーディングモードにあるとき及び前記ビデオ処理装置が前記デコーディングモードにあるときに動作する請求項１に記載のビデオ処理システム。
【請求項４】
前記再構築モジュールに結合されており、フィルタリングされていない再構築フレームから再構築フレームを形成するフィルタモジュールを更に有しており、前記フィルタモジュールは、前記ビデオ処理装置が前記エンコーディングモードにあるとき及び前記ビデオ処理装置が前記デコーディングモードにあるときに動作する請求項１に記載のビデオ処理システム。
【請求項５】
前記エンコーディングモード及び前記デコーディングモードは、それぞれ、Ｈ．２６４規格、ＭＰＥＧ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）規格、及びＳＭＰＴＥ（Ｓｏｃｉｅｔｙ  ｏｆ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  ａｎｄ  Ｔｅｌｅｖｉｓｉｏｎ  Ｅｎｇｉｎｅｅｒｓ）規格のうちの１つにおいて動作する請求項１に記載のビデオ処理システム。
【請求項６】
前記エンコーディングモード及び前記デコーディングモードは、規格選択信号が第１値を有しているときには、第１規格に従って、そして、前記規格選択信号が第２値を有しているときには、第２規格に従って、選択的に動作する請求項１に記載のビデオ処理システム。
【請求項７】
入力信号をエンコーディングするエンコーディングモードと、前記入力信号をデコーディングするデコーディングモードと、を有するビデオ処理装置であって、
複数のマクロブロックのそれぞれのマクロブロックについてモーションサーチモーションベクトルを生成するモーションサーチモジュールと、
前記モーションサーチモジュールに結合されており、前記モーションサーチモーションベクトルに基づいて、前記複数のマクロブロックのそれぞれのマクロブロックについて改良されたモーションベクトルを生成するモーション改良モジュールと、
前記複数のマクロブロックのそれぞれのマクロブロックについて最良のイントラ予測モードを生成するイントラ予測モジュールと、
前記モーション改良モジュール、ダイレクトモードモジュール、及び前記イントラ予測モジュールに結合されており、前記改良されたモーションベクトル、ダイレクトモードモーションベクトル、及び前記最良のイントラ予測モードと関連したコストに基づいて、前記複数のマクロブロックのそれぞれのマクロブロックについて最終的なモーションベクトルを判定するモード決定モジュールと、
を有しており、
前記モーションサーチモジュール、前記モーション改良モジュール、前記イントラ予測モジュール、及び前記モード決定モジュールの中の少なくとも１つは、前記ビデオ処理装置が前記エンコーディングモードにあるとき及び前記ビデオ処理装置が前記デコーディングモードにあるときに動作する、ビデオ処理装置。
【請求項８】
前記モード決定モジュールに結合されており、前記ビデオ処理装置が前記エンコーディングモードにあるときに、前記複数のマクロブロックのそれぞれのマクロブロックについて前記最終的なモーションベクトルに対応した残留ピクセルブロックを生成すると共に、前記ビデオ処理装置が前記デコーディングモードにあるとき及びビデオ処理装置が前記エンコーディングモードにあるときに、フィルタリングされていない再構築フレームを生成する再構築モジュールを更に有する請求項７に記載のビデオ処理装置。
【請求項９】
前記再構築モジュールに結合されており、前記ビデオ処理装置が前記エンコーディングモードにあるときに、前記残留ピクセル値を変換及び量子化すると共に、ビデオ処理装置が前記デコーディングモードにあるとき及びビデオ処理装置が前記エンコーディングモードにあるときに、逆変換及び逆量子化によって残留ピクセル値を形成する変換及び量子化モジュールを更に有する請求項８に記載のビデオ処理装置。
【請求項１０】
前記再構築モジュールに結合されており、前記フィルタリングされていない再構築フレームから再構築フレームを形成するフィルタモジュールを更に有しており、前記フィルタモジュールは、前記ビデオ処理装置が前記エンコーディングモードにあるとき及び前記ビデオ処理装置が前記デコーディングモードにあるときに動作する請求項８に記載のビデオ処理装置。
【請求項１１】
前記エンコーディングモード及び前記デコーディングモードは、それぞれ、Ｈ．２６４規格、ＭＰＥＧ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）規格、及びＳＭＰＴＥ（Ｓｏｃｉｅｔｙ  ｏｆ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  ａｎｄ  Ｔｅｌｅｖｉｓｉｏｎ  Ｅｎｇｉｎｅｅｒｓ）規格のうちの１つにおいて動作する請求項７に記載のビデオ処理装置。
【請求項１２】
前記エンコーディングモード及び前記デコーディングモードは、規格選択信号が第１値を有しているときには、第１規格に従って、そして、前記規格選択信号が第２値を有しているときには、第２規格に従って、選択的に動作する請求項７に記載のビデオ処理装置。
【請求項１３】
モード選択信号が第１値を有しているときに、ビデオ処理装置をエンコーディングモードにおいて動作させる段階と、
前記モード選択信号が第２値を有しているときに、前記ビデオ処理装置をデコーディングモードにおいて動作させる段階と、
を有する方法であって、
前記ビデオ処理装置を前記エンコーディングモードにおいて動作させる前記段階は、それぞれが特定のコーディング機能を実行する複数の機能固有のハードウェアエンジンを利用しており、前記ビデオ処理装置を前記デコーディングモードにおいて動作させる前記段階は、前記複数の機能固有のハードウェアエンジンの中の少なくとも１つを利用している、方法。
【請求項１４】
前記エンコーディングモード及び前記デコーディングモードは、それぞれ、Ｈ．２６４規格、ＭＰＥＧ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）規格、及びＳＭＰＴＥ（Ｓｏｃｉｅｔｙ  ｏｆ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  ａｎｄ  Ｔｅｌｅｖｉｓｉｏｎ  Ｅｎｇｉｎｅｅｒ）規格のうちの１つにおいて動作する請求項１３に記載の方法。
【請求項１５】
前記エンコーディングモード及び前記デコーディングモードは、規格選択信号が第１値を有しているときには、第１規格に従って、そして、前記規格選択信号が第２値を有しているときには、第２規格に従って選択的に動作する請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオエンコーダ／デコーダなどの装置において使用されるエンコーディングに関するものである。
【背景技術】
【０００２】
ビデオエンコーディングは、最近のビデオ処理装置において重要な課題となっている。ロバストなエンコーディングアルゴリズムによれば、ビデオ信号を小さな帯域幅で伝送すると共に、小さなメモリ内に保存可能である。しかしながら、これらのエンコーディング方法の精度は、益々高分解能及び高画質に習熟するようになっているユーザーの厳しい目に晒されている。ＭＰＥＧ−４  Ｐａｒｔ  １０又はＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）とも呼ばれているＨ．２６４規格を含む多数のエンコーディング法の規格が公表されている。この規格は、多数の強力な技法を規定してはいるが、これらの方法の実装の性能及び速度を改善するべく、更なる改善が可能である。これらのエンコーディング法によってエンコードされたビデオ信号は、大部分のビデオディスプレイ装置上において再生するべく、同様にデコードしなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ビデオ信号の効率的なエンコーディング及びデコーディング、並びに、エンコーダ及びデコーダの効率的な実装は、多くのビデオ装置、特に、家庭内における使用をその用途とするビデオ装置の実装にとって重要である。これらのシステムと本発明との比較を通じて、従来の伝統的な方法における更なる制約及び欠点が当業者に明らかとなるであろう。
【課題を解決するための手段】
【０００４】
上記課題を解決するために、ビデオ処理装置が入力信号をエンコーディングするエンコーディングモードと、ビデオ処理装置が入力信号をデコーディングするデコーディングモードと、を有するビデオ処理システムであって、ビデオ処理装置は、複数のマクロブロックのそれぞれのマクロブロックについてモーションサーチモーションベクトルを生成するモーションサーチモジュールと、モーションサーチモジュールに結合されており、モーションサーチモーションベクトルに基づいて、複数のマクロブロックのそれぞれのマクロブロックについて改良されたモーションベクトルを生成するモーション改良モジュールと、複数のマクロブロックのそれぞれのマクロブロックについて最良のイントラ予測モードを生成するイントラ予測モジュールと、モーション改良モジュール、ダイレクトモードモジュール、及びイントラ予測モジュールに結合されており、改良されたモーションベクトル、ダイレクトモードモーションベクトル、及び最良のイントラ予測モードに関連したコストに基づいて、複数のマクロブロックのそれぞれのマクロブロックについて最終的なモーションベクトルを判定するモード決定モジュールと、モード決定モジュールに結合されており、ビデオ処理装置がエンコーディングモードにあるときに、複数のマクロブロックのそれぞれのマクロブロックについて最終的なモーションベクトルに対応した残留ピクセル値を生成すると共に、ビデオ処理装置がデコーディングモードにあるとき及びビデオ処理装置がエンコーディングモードにあるときに、フィルタリングされていない再構築フレームを生成する再構築モジュールと、再構築モジュールに結合されており、ビデオ処理装置がエンコーディングモードにあるときに、残留ピクセル値を変換及び量子化すると共に、ビデオ処理装置がデコーディングモードにあるとき及びビデオ処理装置がエンコーディングモードにあるときに、逆変換及び逆量子化によって残留ピクセル値を形成する変換及び量子化モジュールと、を有する、ビデオ処理システムが提供される。
【０００５】
また、上記課題を解決するために、入力信号をエンコーディングするエンコーディングモードと、入力信号をデコーディングするデコーディングモードと、を有するビデオ処理装置であって、複数のマクロブロックのそれぞれのマクロブロックについてモーションサーチモーションベクトルを生成するモーションサーチモジュールと、モーションサーチモジュールに結合されており、モーションサーチモーションベクトルに基づいて、複数のマクロブロックのそれぞれのマクロブロックについて改良されたモーションベクトルを生成するモーション改良モジュールと、複数のマクロブロックのそれぞれのマクロブロックについて最良のイントラ予測モードを生成するイントラ予測モジュールと、モーション改良モジュール、ダイレクトモードモジュール、及びイントラ予測モジュールに結合されており、改良されたモーションベクトル、ダイレクトモードモーションベクトル、及び最良のイントラ予測モードと関連したコストに基づいて、複数のマクロブロックのそれぞれのマクロブロックについて最終的なモーションベクトルを判定するモード決定モジュールと、を有しており、モーションサーチモジュール、モーション改良モジュール、イントラ予測モジュール、及びモード決定モジュールの中の少なくとも１つは、ビデオ処理装置がエンコーディングモードにあるとき及びビデオ処理装置がデコーディングモードにあるときに動作する、ビデオ処理装置が提供される。
【０００６】
さらに、上記課題を解決するために、モード選択信号が第１値を有しているときに、ビデオ処理装置をエンコーディングモードにおいて動作させる段階と、モード選択信号が第２値を有しているときに、ビデオ処理装置をデコーディングモードにおいて動作させる段階と、を有する方法であって、ビデオ処理装置をエンコーディングモードにおいて動作させる段階は、それぞれが特定のコーディング機能を実行する複数の機能固有のハードウェアエンジンを利用しており、ビデオ処理装置をデコーディングモードにおいて動作させる段階は、複数の機能固有のハードウェアエンジンの中の少なくとも１つを利用している方法が提供される。
【発明を実施するための最良の形態】
【０００７】
図１〜図３は、本発明の実施例による様々なビデオ装置の概略図を示している。具体的には、組み込み型のデジタルビデオレコーダ機能又はスタンドアロン型のデジタルビデオレコーダを有するセットトップボックス１０、コンピュータ２０、及び携帯型のコンピュータ３０は、本発明の１つ又は複数の特徴及び機能を含むビデオ装置１２５を内蔵した電子装置を示している。尚、これらの特定の装置が図示されてはいるが、ビデオ処理装置１２５には、図４〜図１２及び添付の請求項との関連において記述されている方法及びシステムに従ってビデオコンテンツをエンコーディング、デコーディング、及び／又はトランスコーディングすることができる任意の装置が含まれている。
【０００８】
図４は、本発明の一実施例によるビデオ装置のブロックダイアグラムを示している。具体的には、ビデオ装置１７５は、テレビ受像機、ケーブルテレビ受像機、衛星放送受信機、広帯域モデム、３Ｇトランシーバ又はその他の情報受信機、或いは、受信信号９８を受信すると共に、時分割逆多重化、周波数分割逆多重化、又はその他の逆多重化法によって１つ又は複数のビデオ信号１１０を抽出する能力を有するトランシーバなどの受信モジュール１００を含んでいる。ビデオ処理装置１２５は、ビデオエンコーダ／デコーダ１０２を含んでおり、且つ、ビデオディスプレイ装置１０４に対応したフォーマットで保存、編集、及び／又は再生するために、ビデオ信号をエンコーディング、デコーディング、又はトランスコーディングするべく受信モジュール１０に結合されている。
【０００９】
本発明の一実施例においては、受信信号９８は、テレビ信号、高精細度テレビ信号、機能強化された高精細度テレビ信号、或いは、直接的に又は１つ又は複数の衛星又はその他の中継局を通じて無線媒体上において、又はケーブルネットワーク、光ネットワーク、又はその他の伝送ネットワークを通じて伝送されたその他の放送ビデオ信号などの放送ビデオ信号である。更には、受信信号９８は、保存されたビデオファイルから生成することも可能であり、磁気テープ、磁気ディスク、又は光ディスクなどの記録媒体から再生することも可能であると共に、ローカルエリアネットワーク、ワイドエリアネットワーク、メトロポリタンエリアネットワーク、又はインターネットなどのパブリック又はプライベートネットワーク上において伝送されるストリーミングビデオ信号を包含することも可能である。
【００１０】
ビデオ信号１１０は、ＮＴＳＣ（Ｎａｔｉｏｎａｌ  Ｔｅｌｅｖｉｓｉｏｎ  Ｓｙｓｔｅｍｓ  Ｃｏｍｍｉｔｔｅｅ）、ＰＡＬ（Ｐｈａｓｅ  Ａｌｔｅｒｎａｔｉｎｇ  Ｌｉｎｅ）、又はＳＥＣＡＭ（Ｓｅｑｕｅｎｔｉｅｌ  Ｃｏｕｌｅｕｒ  Ａｖｅｃ  Ｍｅｍｏｉｒｅ）を含むいくつかのビデオフォーマットのいずれかにおいてフォーマッティングされたアナログビデオ信号を包含可能である。処理済みのビデオ信号１２は、Ｈ．２６４、ＭＰＥＧ−４  Ｐａｒｔ  １０  ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）、又は（ＭＰＥＧ１、ＭＰＥＧ２、又はＭＰＥＧ４などの）ＭＰＥＧ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）フォーマット、Ｑｕｉｃｋｔｉｍｅフォーマット、Ｒｅａｌ  Ｍｅｄｉａフォーマット、ＷＭＶ（Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ  Ｖｉｄｅｏ）又はＡＶＩ（Ａｕｄｉｏ  Ｖｉｄｅｏ  Ｉｎｔｅｒｌｅａｖｅ）、或いは、標準的又はプロプライエタリなその他のデジタルビデオフォーマットなどのデジタルビデオコーデック規格に従ってフォーマット可能である。
【００１１】
ビデオディスプレイ装置１０４は、テレビ、モニタ、コンピュータ、ハンドヘルド型装置、或いは、処理済みのビデオ信号１１２のストリーミングビデオ信号としてのデコーディングに基づいて、又は保存されているデジタルビデオファイルの再生により、投影などによって直接的又は間接的に光学画像ストリームを生成するその他のビデオディスプレイ装置を包含可能である。
【００１２】
ビデオ処理装置１２５は、本発明に従って動作しており、且つ、具体的には、後続の図５〜図１２との関連において記述されている多くの任意選択の機能及び特徴を含んでいる。
【００１３】
図５は、本発明の一実施例によるビデオエンコーダ／デコーダ１０２のブロックダイアグラムを示している。具体的には、ビデオエンコーダ／デコーダ１０２は、Ｈ．２６４規格、ＭＰＥＧ−４規格、ＶＣ−１（ＳＭＰＴＥ規格４２１Ｍ）、又はその他の規格の機能及び特徴の多くに従って動作することにより、エンコーディング、デコーディング、又はトランスコーディングのために信号インターフェイス１９８によって任意選択によってフォーマッティングされた入力信号１１０をエンコーディング、デコーディング、又はトランスコーディングすることにより、処理済みのビデオ信号１１２を生成している。
【００１４】
ビデオエンコーダ／デコーダ１０２は、単一の処理装置又は複数の処理装置を使用して実装可能な処理モジュール２００を含んでいる。このような処理装置は、マイクロプロセッサ、コプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、マイクロコンピュータ、中央処理装置、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、プログラム可能なロジック装置、状態機械、ロジック回路、アナログ回路、デジタル回路、及び／又はメモリモジュール２０２などのメモリ内に保存された演算命令に基づいて（アナログ及び／又はデジタル）信号を操作する任意の装置であってよい。メモリモジュール２０２は、単一のメモリ装置又は複数のメモリ装置であってよい。このメモリ装置は、ハードディスクドライブ又はその他のディスクドライブ、読み出し専用メモリ、ランダムアクセスメモリ、揮発性メモリ、不揮発性メモリ、スタティックメモリ、ダイナミックメモリ、フラッシュメモリ、キャッシュメモリ、及び／又はデジタル情報を保存する任意の装置を包含可能である。処理モジュールが、状態機械、アナログ回路、デジタル回路、及び／又はロジック回路によってその機能の１つ又は複数のものを実装している際には、対応する演算命令を保存したメモリは、状態機械、アナログ回路、デジタル回路、及び／又はロジック回路を有する回路内に又はこの外部に組み込み可能であることに留意されたい。
【００１５】
処理モジュール２００とメモリモジュール２０２は、バス２２０を介して、信号インターフェイス１９８と、モーションサーチモジュール２０４、モーション改良モジュール２０６、ダイレクトモードモジュール２０８、イントラ予測モジュール２１０、モード決定モジュール２１２、再構築モジュール２１４、エントロピーコーディング／リオーダーモジュール２１６、隣接管理モジュール２１８、順方向変換及び量子化モジュール２２０、及びデブロッキングフィルタモジュール２２２などの複数のその他のモジュールに結合されている。ビデオエンコーダ／デコーダ１０２のこれらのモジュールは、ソフトウェア又はファームウェアにおいて実装可能であり、且つ、処理モジュール２００によって実行される動作として構築可能である。或いは、この代わりに、これらのモジュールの１つ又は複数のものは、特定の実装に応じて、状態機械、アナログ回路、デジタル回路、及び／又はロジック回路を包含すると共に独立的に又は処理モジュール２００又はその他のモジュールの１つ又は複数のものの制御及び／又は指示の下に動作するハードウェアエンジンを使用して実装することも可能である。又、本発明のソフトウェアによる実装は、磁気又は光ディスク、読み出し専用メモリ、又はランダムアクセスメモリなどの実体のあるストレージ媒体内に保存可能であると共に、製造品として製造することも可能であることに留意されたい。尚、特定のバスアーキテクチャが図示されてはいるが、１つ又は複数のモジュール及び／又は追加バスの間の直接的な接続を使用した代替アーキテクチャを本発明に従って実装することも同様に可能である。
【００１６】
ビデオエンコーダ／デコーダ１０２は、モード選択信号の値によって設定されるエンコーディングモード及びデコーディングモードを含む様々な動作モードにおいて動作可能であり、モード選択信号は、ユーザー定義パラメータ、ユーザー入力、レジスタ値、メモリ値、又はその他の信号であってよい。更には、エンコーダ／デコーダ１０２内においては、入力信号をエンコーディング又はデコーディングするべくエンコーディング又はデコーディングモードによって使用される特定の規格も、規格選択信号によって判定可能であり、この規格選択信号も、ユーザー定義パラメータ、ユーザー入力、レジスタ値、メモリ値、又はその他の信号であってよい。本発明の一実施例においては、エンコーディングモードの動作は、それぞれが特定のコーディング機能を実行する複数のモジュールを利用している。又、デコーディングの動作も、複数のモジュールの中の少なくとも１つを利用している。この結果、モーション改良モジュール２０６、ダイレクトモードモジュール２０８、イントラ予測モジュール２１０、モード決定モジュール２１２、再構築モジュール２１４、変換及び量子化モジュール２２０、デブロッキングフィルタモジュール２２２、又はその他の機能固有のモジュールなどのモジュールをエンコーディング及びデコーディングプロセスの両方において使用することにより、ビデオエンコーダ／デコーダ１０２を集積回路上において実装した際のアーキテクチャによる占有面積を節約可能であり、或いは、その他の有効性を実現可能である。
【００１７】
モーション補償モジュール１５０は、ビデオ入力信号１１０のフレーム及び／又はフィールドの列及び行からの１６ピクセル×１６ピクセルなどのピクセル値のマクロブロックへのセグメント化に基づいて、ビデオ入力信号１１０からの画像を処理するモーションサーチモジュール２０４を含んでいる。本発明の一実施例においては、モーションサーチモジュールは、ビデオ信号のフィールド及び／又はフレームのそれぞれのマクロブロック又はマクロブロックのペアについて、ビデオ信号の基準フレーム又は基準フィールドから現在のフレーム又はフィールドへのマクロブックの変位を表す（図９との関連において更に説明するように、サブブロックへのマクロブロックのパーティショニングに応じた）１つ又は複数のモーションベクトルを判定している。動作の際には、モーションサーチモジュールは、サーチレンジ内において動作することにより、現在のフレーム又はフィールド内のマクロブロック（又は、サブブロック）を１ピクセルの分解能などの整数ピクセルレベルの精度において検出している。候補場所をコスト形成に基づいて評価することにより、最も好ましい（例えば、最低の）コストを具備した場所及び対応するモーションベクトルを判定している。
【００１８】
本発明の一実施例においては、コスト形成は、基準マクロブロック及び候補マクロブロックのピクセル値間におけるＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）の合計と、重み付けされたレート項と、に基づいており、このレート項は、候補モーションベクトルと、現在のマクロブロックの右側の隣接マクロブロックとビデオ入力信号の前の行の隣接した現在のマクロブロックからのモーションベクトルに基づいたＰＭＶ（Ｐｒｅｄｉｃｔｅｄ  Ｍｏｔｉｏｎ  Ｖｅｃｔｏｒ）又はビデオ入力信号の前の行の隣接した現在のマクロブロックからのモーションベクトルに基づいて判定される推定予測マクロブロックの間の差のコーディングに消費することを要するビット数を表している。本発明の一実施例においては、コスト計算は、現在のマクロブロック内における隣接サブブロックの使用を回避している。この結果、モーションサーチモジュール２０４は、マクロブロックに対して作用することにより、マクロブロックのそれぞれのサブブロックについてモーションサーチモーションベクトルを同時に判定可能である。
【００１９】
モーション改良モジュール２０６は、モーションサーチモーションベクトルに基づいて、複数のマクロブロックのそれぞれのマクロブロックについて改良されたモーションベクトルを生成している。本発明の一実施例においては、モーション改良モジュールは、ビデオ入力信号１１０のフィールド及び／又はフレームのそれぞれのマクロブロック又はマクロブロックペアについて、ビデオ信号の基準フレーム又は基準フィールドから現在のフレーム又はフィールドへのマクロブロックの変位を表す改良されたモーションベクトルを判定している。動作の際には、モーション改良モジュールは、現在のフレーム又はフィールド内のマクロブロックの場所を、１／４ピクセルの分解能などの更に向上したピクセルレベルの精度に改良している。又、候補場所をコスト形成に基づいて評価することにより、最も好ましい（例えば、最低の）コストを具備した場所及び改良されたモーションベクトルを判定している。モーションサーチモジュールの場合と同様に、コスト形成は、基準マクロブロック及び候補マクロブロックのピクセル値の間のＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）の合計と、重み付けされたレート項と、に基づいており、この重み付けされたレート項は、候補モーションベクトルと、現在のマクロブロックの右側の隣接マクロブロック及びビデオ入力信号の前の行の隣接した現在のマクロブロックからのモーションベクトルに基づいたＰＭＶ（Ｐｒｅｄｉｃｔｅｄ  Ｍｏｔｉｏｎ  Ｖｅｃｔｏｒ）又はビデオ入力信号の前の行の隣接した現在のマクロブロックからのモーションベクトルに基づいて判定された推定予測マクロブロックの間の差のコーディングに消費することを要するビット数を表している。本発明の一実施例においては、コスト計算は、現在のマクロブロック内における隣接サブブロックの使用を回避している。この結果、モーション改良モジュール２０６は、マクロブロックに作用することにより、マクロブロックのそれぞれのサブブロックについてモーションサーチモーションベクトルを同時に判定可能である。
【００２０】
更には、モーションサーチモジュール２０４又はモーション改良モジュール２０６は、静止モーションベクトルと関連したコストを評価すると共に、スキップモードコストがスキップモード閾値に対して好ましく比較される際にモーションサーチ及び／又はモーション改良の部分をスキップすることにより、ビデオ入力信号１１０のＰスライスのスキップモードコストを判定するべく動作可能である。
【００２１】
推定予測モーションベクトルを使用する際には、コスト形成は、現在の行からのモーションベクルの使用を回避しており、且つ、モーションサーチモジュール２０４及びモーション改良モジュール２０６の両方は、パイプライン方式において、且つ、並行して、ビデオ入力信号１１０の行の全体に作用することにより、行内のそれぞれのマクロブロックについて改良されたモーションベクトルを同時に判定可能であることに留意されたい。
【００２２】
ダイレクトモードモジュール２０８は、ピクセルのマクロブロックに隣接している複数のマクロブロックに基づいて、複数のマクロブロックのそれぞれのマクロブロックについてダイレクトモードモーションベクトルを生成している。本発明の一実施例においては、ダイレクトモードモジュール２０８は、例えば、Ｈ．２６４規格によって定義されている方式により、ビデオ入力信号１１０のＢスライスのダイレクトモードモーションベクトルのコストに基づいて、ダイレクトモードモーションベクトル及びダイレクトモードモーションベクトルに関連したコストを判定するべく動作している。
【００２３】
従来のモジュールが、モーションベクトルのインター予測に合焦しているのに対して、イントラ予測モジュール２１０は、複数のマクロブロックのそれぞれのマクロブロックについて最良のイントラ予測モードを生成している。具体的には、イントラ予測モジュール２１０は、例えば、Ｈ．２６４規格によって規定されている方式において動作することにより、隣接マクロブロックから判定されたモーションベクトルに基づいて、複数のイントラ予測モードを評価し、最良のイントラ予測モード及び関連したコストを判定している。
【００２４】
モード決定モジュール２１２は、改良されたモーションベクトル、ダイレクトモードモーションベクトル、及び最良のイントラ予測モードに関連したコストと、特に、最も好ましい（最低の）コスト、或いは、さもなければ、許容可能なコストをもたらす方法に基づいて、複数のマクロブロックのそれぞれのマクロブロックについて最終的なモーションベクトルを判定している。再構築モジュール２１４は、複数のマクロブロックのそれぞれのマクロブロックにおける最終的なモーションベクトルに対応した残留ルーマ及び／又はクロマピクセル値を生成することにより、モーション補償を完成させている。
【００２５】
ビデオエンコーダ／デコーダ１０２の順方向変換及び量子化モジュール２２０は、残留ピクセル値を、量子化及び変換された係数に変換、コーディング、及び量子化することにより、処理済みのビデオ信号１１２を生成しており、これは、更に、エントロピーコーディングモジュール２１６内におけるエントロピーコーディングなどによってコーディングすると共に、デブロッキングフィルタモジュール２２２によってフィルタリングし、処理済みのビデオ信号１１２として伝送及び／又は保存可能である。
【００２６】
前述のように、モーション補償モジュール１５０のモジュールの多くは、隣接マクロブロックについて判定されたモーションベクトルに基づいて動作している。隣接管理モジュール２１８は、複数のマクロブロックの中の少なくとも１つの隣接マクロブロックに対して作用した際に、モーションサーチモジュール２０４、モーション改良モジュール２０６、ダイレクトモードモジュール２０８、イントラ予測モジュール２１０、エントロピーコーディングモジュール２１６、及びデブロッキングフィルタモジュール２２２の中の少なくとも１つによって取得されるように、複数のマクロブロックの中の少なくとも１つのマクロブロックの隣接データを生成及び保存している。１つのモーションベクトル（又は、図７及び図８との関連において更に説明するマクロブロックパーティショニングの場合には、複数のモーションベクトル）及びその他のエンコーディングデータが完成した後に、更なる処理対象であると共にそのデータの使用を必要としている更なる隣接マクロブロックの処理において使用されるように、隣接データを保存している。又、隣接データは、ビデオ入力信号１１０の将来のフレーム及び／又はフィールドなどの将来の画像の処理のためにも、保存されている。
【００２７】
本発明の一実施例においては、リンクされたリスト、アレイ、又は１つ又は複数のレジスタなどのデータ構造を使用することにより、それぞれのマクロブロックの隣接データを関連付けすると共に保存している。隣接データは、モーションベクトル、基準インデックス、量子化パラメータ、コーディングブロックパターン、マクロブロックタイプ、イントラ／インター予測モジュールタイプ、隣接ピクセル値、及び／又は現在のマクロブロックの結果を計算するべく本発明のモジュール又は手順の中の１つ又は複数のものによって使用される隣接マクロブロック及び／又はサブブロックからのその他のデータを含んでいる。例えば、モーションサーチモジュール２０４及びモーション改良モジュール２０６の予測モーションベクトルを判定するには、隣接部のモーションベクトル及び基準インデックスの両方が必要である。これらのデータに加えて、ダイレクトモードモジュール２０８は、以前の基準画像の同一の場所に位置していたマクロブロックのモーションベクトルをも必要としている。デブロッキングフィルタモジュール２２２は、隣接部のモーションベクトル、量子化パラメータ、基準インデックス、及びコーディングブロックパターンなどを使用して判定されたフィルタリング強度の組に従って動作している。エントロピーコーディングモジュール２１６内におけるエントロピーコーディングのためには、ＭＶＤ（Ｍｏｔｉｏｎ  Ｖｅｃｔｏｒ  Ｄｉｆｆｅｒｅｎｃｅ）、マクロブロックタイプ、量子化パラメータデルタ、インター予約タイプなどが必要である。
【００２８】
特定のマクロブロックＭＢ（ｘ，ｙ）が、マクロブロックＭＢ（ｘ−１，ｙ−１）、ＭＢ（ｘ，ｙ−１）、ＢＭ（ｘ＋１，ｙ−１）、及びＭＢ（ｘ−１，ｙ）からの隣接データを必要としている例を検討してみよう。従来技術によるコーデックにおいては、隣接データの準備には、関連する隣接サブブロックの場所の計算が必要である。しかしながら、この計算は、従来のビデオコーディング規格においてそうであったほどには簡単ではない。例えば、Ｈ．２６４コーディングにおいては、複数のパーティションタイプのサポートにより、サブブロックのサイズ及び形状が大きく変化している。更には、ＭＢＡＦＦ（ＭａｃｒｏＢｌｏｃｋ  Ａｄａｐｔｉｖｅ  Ｆｒａｍｅ  ａｎｄ  Ｆｉｅｌｄ）コーディングのサポートにより、マクロブロックは、フレーム又はフィールドモードにあってよい。Ｈ．２６４においては、それぞれのモードごとに、１つの隣接部導出方法が定義されている。従って、これに相応し、計算において、それぞれのモードを考慮する必要がある。更には、４つの隣接部ＭＢ（ｘ−１，ｙ−１）、ＭＢ（ｘ，ｙ−１）、ＭＢ（ｘ＋１，ｙ−１）、及びＭＢ（ｘ−１，ｙ）が関係しているため、必要な隣接データのすべてを取得するべく、４回にわたって導出を起動する必要がある。従って、現在のマクロブロックＭＢ（ｘ，ｙ）のエンコーディングは、４つの隣接部の場所の判定が完了すると共に、それらのデータのメモリからのフェッチが完了する時点まで開始することができない。
【００２９】
本発明の一実施例においては、それぞれのマクロブロックを処理して最終的なモーションベクトル及びエンコーディング済みのデータを判定する際に、隣接データを、このデータを必要とすることになるそれぞれの隣接マクロブロックのために、データ構造内に保存している。隣接データが予め準備されているため、現在のマクロブロックＭＢ（ｘ，ｙ）は、処理の準備が完了次第、即座に開始可能である。隣接部をポインティングするのに伴う負担を、実質的に、その先行するマクロブロックに対して再割り当てしているのである。従って、マクロブロックのエンコーディングを更に合理化及び高速化可能である。換言すれば、ＭＢ（ｘ−１，ｙ−１）について最終的なモーションベクトルを判定する際に、ＭＢ（ｘ，ｙ）と、更には、ＭＢ（ｘ，ｙ−１）、ＭＢ（ｘ−２，ｙ）、ＭＢ（ｘ−１，ｙ）などのその他の隣接マクロブロックを含む更なる処理対象であるそれぞれの隣接マクロブロックについて、隣接データを保存しているのである。同様に、ＭＢ（ｘ，ｙ−１）、ＭＢ（ｘ＋１，ｙ−１）、及びＭＢ（ｘ−１、ｙ）について最終的なモーションベクトルを判定する際に、ＭＢ（ｘ，ｙ）を含む更なる処理対象であるマクロブロックのそれぞれに対応したそれぞれの隣接マクロブロックについて隣接データを保存しているのである。この結果、ＭＢ（ｘ，ｙ）の処理の準備が完了した際に、このマクロブロックに対応したデータ構造内には、高速取得されるべく隣接データが既に保存されている。
【００３０】
この結果、取得したデータを使用することにより、モーション補償を実行可能である。具体的には、モーションサーチモジュール２０４及び／又はモーション改良モジュールは、取得した隣接データを使用することにより、複数のマクロブロックのそれぞれのマクロブロックについて（標準ＰＭＶ又は推定予測モーションベクトルなどの）少なくとも１つの予測モーションベクトルを生成可能である。更には、それぞれ、Ｈ．２６４規格、ＭＰＥＧ−４規格、ＶＣ−１（ＳＭＰＴＥ規格４２１Ｍ）に、或いは、その他の規格又はその他の手段によって規定されているように、ダイレクトモーションモジュール２０８は、取得した隣接データを使用することにより、複数のマクロブロックのそれぞれのマクロブロックについて少なくとも１つのダイレクトモードモーションベクトルを生成可能であり、イントラ予測モジュール２１０は、取得した隣接データを使用することにより、複数のマクロブロックのそれぞれのマクロブロックについて最良のイントラ予測モードを生成可能であり、且つ、コーディングモジュール２１６は、取得した隣接データをエントロピーコーディングにおいて使用可能である。
【００３１】
明示的に示されてはいないが、ビデオエンコーダ／デコーダ１０２は、メモリキャッシュ、メモリ管理モジュール、コームフィルタ又はその他のビデオフィルタ、並びに／或いは、ビデオ入力信号１１０の処理済みのビデオ信号１１２へのエンコーディングをサポートするためのその他のモジュールを包含可能である。
【００３２】
これらの機能固有のモジュールを再使用する特定のエンコーディング及びデコーディングプロセスの更なる詳細について、図６及び図７との関連において更に詳しく説明することとする。
【００３３】
図６は、本発明の一実施例によるビデオエンコーディング動作のブロックフローチャートを示している。具体的には、類似のエンコーディング動作を実装するべく図５との関連において説明した機能固有のモジュールの多くを使用する例示用のビデオエンコーディング動作が示されている。モーションサーチモジュール２０４は、現在のフレーム／フィールド２６０及び１つ又は複数の基準フレーム／フィールド２６２に基づいて、複数のマクロブロックのそれぞれのマクロブロックについてモーションサーチモーションベクトルを生成している。モーション改良モジュール２０６は、モーションサーチモーションベクトルに基づいて、複数のマクロブロックのそれぞれのマクロブロックについて改良されたモーションベクトルを生成している。イントラ予測モジュール２１０は、複数のマクロブロックのそれぞれのマクロブロックの最良のイントラ予測モードを評価及び選択している。モード決定モジュール２１２は、改良されたモーションベクトルと関連したコストと、最良のイントラ予測モードに基づいて、複数のマクロブロックのそれぞれのマクロブロックについて最終的なモーションベクトルを判定している。
【００３４】
再構築モジュール２１４は、差分回路２８２による現在のフレーム／フィールド２６０のピクセル値からの減算により、複数のマクロブロックのそれぞれのマクロブロックについて最終モーションベクトルに対応した残留ピクセル値を生成すると共に、加算回路２８４を使用して（変換及び量子化モジュール２２０を通じて処理された）残留ピクセル値を再加算することにより、フィルタリングされていない再構築フレーム／フィールドを生成している。変換及び量子化モジュール２２０は、変換モジュール２７０及び量子化モジュール２７２内において残留ピクセル値を変換及び量子化すると共に、逆変換モジュール２７６及び逆量子化モジュール２７４内における逆変換及び逆量子化によって残留ピクセル値を再形成している。更には、量子化及び変換された残留ピクセル値をエントロピーコーディング／リオーダリングモジュール２１６のリオーダリングモジュール２７８によってリオーダリングすると共に、エントロピーエンコーディングモジュール２８０によってエントロピーコーディングすることにより、ネットワーク抽象化レイヤ出力２８１を形成している。
【００３５】
デブロッキングフィルタモジュール２２２は、フィルタリングされていない再構築フレーム／フィールドから現在の再構築フレーム／フィールド２６４を形成している。尚、デブロッキングフィルタが図示されてはいるが、本発明の広範な範囲内において、コームフィルタ又はその他のフィルタ構成などのその他のフィルタモジュールを同様に使用することも可能である。又、現在の再構築フレーム／フィールド２６４をバッファリングすることにより、将来の現在のフレーム／フィールド２６０用の基準フレーム／フィールド２６２を生成することも可能であることに留意されたい。
【００３６】
又、図５との関連において説明したように、本明細書に記述されているモジュールの中の１つ又は複数のものを、図７との関連において説明するように、デコーディングプロセスにおいて使用することも可能である。
【００３７】
図７は、本発明の一実施例によるビデオデコーディング動作のブロックフローチャートを示している。具体的には、このビデオデコーディング動作は、共通の参照符号によって示されている図６との関連において説明した多数の共通要素を含んでいる。この場合には、モーション改良モジュール２０６、イントラ予測モジュール２１０、モード決定モジュール２１２、及びデブロッキングフィルタモジュール２２２を、それぞれ、図６との関連において説明したように使用することにより、基準フレーム／フィールド２６２を処理している。更には、再構築モジュール２１４は、加算回路２８４を再使用しており、変換及び量子化モジュールは、逆変換モジュール２７６及び逆量子化モジュール２７４を再使用している。尚、エントロピーコーディング／リオーダーモジュール２１６が再使用されているが、ネットワーク抽象化レイヤ出力２８１を生成するリオーダリングモジュール２７８及びエントロピーエンコーディングモジュール２８０の代わりに、エントロピーデコーディングモジュール２８６及びリオーダリングモジュール２８８によってネットワーク抽象化レイヤ入力２８７を処理していることに留意されたい。
【００３８】
尚、図６及び図７の特定のエンコーディング及びデコーディング動作との関連において、特定の機能固有のハードウェアエンジンなどのモジュールの再使用について説明したが、本発明は、同様に、図１〜図５及び図８〜図１２との関連において記述されている本発明のその他の実施例に対して、並びに／或いは、ビデオエンコーディング及びデコーディングとの関連において使用されるその他の機能固有のモジュールと共に、同様に利用可能である。
【００３９】
図８は、本発明の一実施例による例示用の上部フレーム及び下部フレームマクロブロック（２５０、２５２）と例示用の上部フィールド及び下部フィールドマクロブロック（２５４、２５６）の間の関係のグラフィカルな図を示している。この実施例においては、モーションサーチモジュール２０４は、ビデオ入力信号１１０のフレームからの上部フレームマクロブロック２５０及び下部フレームマクロブロック２５２と、ビデオ入力信号１１０の対応するフィールドからの上部フィールドマクロブロック２５４及び下部フィールドマクロブロック２５６を含むマクロブロックのペアを同時に評価することにより、複数のマクロブロックのそれぞれのマクロブロックについてモーションサーチモーションベクトルを生成している。
【００４０】
この図示の例を検討すれば、マクロブロックのそれぞれは、サイズが、１６ピクセル×１６ピクセルである。上部フレームマクロブロック２５０及び下部フレームマクロブロック２５２を含む現在のフレームの候補フレームマクロブロックペアを基準フレームのマクロブロックペアと比較することにより、フルピクセル分解能、或いは、更に粗い又は更に高精細のその他の分解能において、モーションサーチを実行している。更には、候補フレームマクロブロックペアからの（奇数ラインなどの）第１パリティのラインをグループ化することにより、上部フィールドマクロブロック２５４を形成している。同様に、候補フレームマクロブロックペアからの（偶数ラインなどの）第２パリティのラインをグループ化することにより、下部フィールドマクロブロック２５６を形成している。モーションサーチモジュール２０４は、複数のラインと関連したコストを算出し、複数のラインの中の複数の上部ラインについて蓄積されたコストに基づいて上部フレームマクロブロック２５０と関連したコストを生成し、複数のラインの中の複数の下部ラインについて蓄積されたコストに基づいて下部フレームマクロブロック２５２と関連したコストを生成し、上部又は下部フィールド基準と比較される複数のラインの中の複数の第１パリティラインについて蓄積されたコストに基づいて上部フィールドマクロブロック２５４と関連したコストを生成すると共に、こちらも上部又は下部フィールド基準に基づいた複数のラインの中の複数の第２パリティラインについて蓄積されたコストに基づいて下部フィールドマクロブロック２５６に関連したコストを生成している。この結果、マクロブロックのペアについて、基準の上部フレームと比較された上部フレーム、基準の下部フレームと比較された下部フレーム、基準の上部フィールドと比較された上部フィールド、基準の下部フィールドと比較された下部フィールド、基準の下部フィールドと比較された上部フィールド、及び基準の上部フィールドと比較された下部フィールドという６つのコストを同時に生成可能である。
【００４１】
これらのコストのそれぞれは、基準フレーム又はフィールドとの間における現在のフレーム又はフィールドのピクセル値のＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）に基づいて生成可能である。ＳＡＤは、それぞれのラインにおける蓄積に基づいて、単一パスにおいて、同時に算出可能である。特定のマクロブロック（上部又は下部、フレーム又はフィールド）における全体的なＳＡＤは、その特定のマクロブロックを構成しているラインのＳＡＤを合計することによって判定可能である。或いは、この代わりに、サブブロックごとに蓄積した後にマクロブロック全体の合計として蓄積可能である４×１セグメントなどの更に小さなセグメントに基づいて、単一パスにおいて、ＳＡＤを算出することも可能である。この代替方法は、図７との関連において更に説明するように、特に、更に小さなサブブロックへのマクロブロックのパーティショニングに基づいて動作しているモーションサーチモジュールの場合に有用である。
【００４２】
モーションサーチモジュール２０４は、マクロブロック適応型のフレーム及びフィールド処理と関連した動作に対して特に良好に適合されている。現在のマクロブロックペアにおけるフレームモードコストを前述のように生成可能である。更には、モーションサーチモジュール２０４は、任意選択により、現在の下部フィールドマクロブロックと上部フィールドマクロブロック基準、現在の下部フィールドマクロブロックと上部フィールドマクロブロック基準、現在の上部フィールドマクロブロックと下部フィールドマクロブロック基準、及び現在の上部フィールドマクロブロックと上部フィールドマクロブロック基準の間のＳＡＤなどの蓄積された差に基づいて、フィールド決定を生成している。このフィールド決定は、最低のコストをもたらす（上部／上部、下部／下部）又は（上部／下部、下部／上部）の組み合わせを判定する段階を含んでいる。同様に、モーションサーチモジュール２０４も、任意選択により、フィールドモード判定に基づいて、フレームモードコストがフィールドモードコストに対して好ましく比較されるか（例えば、相対的に低い）又は好ましくない状態で比較されるか（例えば、相対的に高い）に基づいて、特定のマクロブロックペアについてフレームモード又はフィールドモードを選択可能である。更には、フレーム及びフィールドの両方に作用しているモーション補償モジュール１５０のその他のモジュールも、同様に動作可能である。
【００４３】
具体的には、隣接管理モジュール２１８は、フレームモードにおいて処理する際には、少なくとも１つのマクロブロックの下の行内の隣接マクロブロックによって取得されるべく下部フレーム隣接データと、フィールドモードにおいて処理する際には、少なくとも１つのマクロブロックの下の行内の隣接マクロブロックによって取得されるべく下部フィールド隣接データを含む隣接データを生成している。更には、この隣接データは、フィールドモードにおいて処理する際には、少なくとも１つのマクロブロックの右側の隣接マクロブロックによって取得されるべく右フレーム隣接データと、フィールドモードにおいて処理する際には、少なくとも１つのマクロブロックの右側の隣接マクロブロックによって取得されるべく右フィールド隣接データを含んでいる。この結果、モーションサーチモジュールと、隣接データを使用して動作すると共にフレーム又はフィールドモードにおいて動作可能であるモーション補償モジュール１５０のその他のモジュールは、対象のマクロブロックの上のフレームモード隣接部のフレームモード隣接データ、対象のマクロブロックの上のフィールドモード隣接部のフィールドモード隣接データ、対象のマクロブロックの左側のフレームモード隣接部のフレームモード隣接データ、及び／又は対象のマクロブロックの左側のフィールドモード隣接部のフィールドモード隣接データに対して直接的にアクセス可能である。以前と同様に、この情報は、マクロブロック自身がフレーム又はフィールドモードのいずれにおいて処理されたかどうかとは無関係に、前のマクロブロックの処理において保存されており、これは、メモリからの直接的な取得により、且つ、ルックアップテーブルや更なる処理を伴うことなしに、対象のマクロブロックの処理の際にアクセス可能である。
【００４４】
図９は、ビデオ入力信号のマクロブロックの複数のサブブロックへの例示用のパーティショニングのグラフィカルな図を示している。具体的には、図５との関連において前述したモジュールは、例えば、Ｈ．２６４規格に従って１６ピクセル×１６ピクセルなどのサイズを具備したマクロブロックに対して作用可能であるが、マクロブロックを側部が４ピクセルの更に小さなサイズのサブブロックにパーティショニングすることにより、マクロブロックとの関連において説明した機能及び特徴を、ドットによって示された個別のピクセル位置を有するそれぞれのサブブロックに対して適用可能である。例えば、モーションサーチモジュール２０４は、それぞれのマクロブロックのそれぞれのサブブロックについて、別個のモーションサーチモーションベクトルを生成可能である。
【００４５】
マクロブロック３０２は、Ｈ．２６４規格に応じたサブブロックへのパーティショニングの一例を表している。マクロブロック３００、３０４、及び３０６は、その他の可能なサブブロックへのパーティショニングの例を表している。具体的には、マクロブロック３００は、１つの８×１６サブブロックと２つの８×８サブブロックにパーティショニングされた１６×１６マクロブロックである。マクロブロック３０２は、３つの８×８サブブロックと４つの４×４サブブロックにパーティショニングされた１６×１６マクロブロックである。マクロブロック３０４は、１つの８×１６サブブロック、１つの８×８サブブロック、及び２つの４×８サブブロックにパーティショニングされた１６×１６マクロブロックである。マクロブロック３０６は、１つの８×８サブブロック、３つの４×８サブブロック、２つの８×４サブブロック、及び２つの４×４サブブロックにパーティショニングされた１６×１６マクロブロックである。それぞれのサブブロックのモーションサーチモーションベクトルのみならず、特定のマクロブロックのすべての可能なパーティションの組における最良のモーションベクトルを判定するためのモーションサーチなどの様々な補償方法が必要となることから、更に小さなサブブロックへのマクロブロックのパーティショニングは、モーション補償の複雑性を増大させる。しかしながら、この結果、更に正確なモーション補償と、デコーディングされたビデオ画像における圧縮アーチファクトの低減を実現可能である。
【００４６】
図１０は、特定のマクロブロックのモーション補償又はエンコーディングにおいて使用される隣接マクロブロックの一例を示すビデオ入力信号の複数のマクロブロックのグラフィカルな図を示している。３つのマクロブロックＭＢｎ−１、ＭＢｎ、及びＭＢｎ＋１が、フレーム又はフィールドモードにおけるビデオ入力信号の行ｉ＋１、行ｉ、及び行ｉ＋１という３つの行について示されている。わかりやすくするべく、個々のピクセル場所を表すドットは省略している。
【００４７】
例えば、ビデオエンコーダ／デコーダ１０２がマクロブロックＭＢ（ｎ，ｉ）に対して作用しているとしよう。更には、モーション改良モジュール２０６、モーションサーチモジュール２０４、ダイレクトモードモジュール２０８、イントラ予測モジュール２１０、及びコーディングモジュール２１６が、ＭＢ（ｎ−１，ｉ−１）からの４×４サブブロックＤ０、ＭＢ（ｎ，ｉ−１）からのサブブロックＢ０、ＭＢ（ｎ＋１，ｉ−１）からのサブブロックＣ０、並びに、ＭＢ（ｎ−１，ｉ）からのサブブロックＡ０について判定された最終的なモーションベクトルを必要としているとしよう。ＭＢ（ｎ−１，ｉ−１）を処理する際に、Ｄ０のモーションベクトルを、ＭＢ（ｎ，ｉ−１）、ＭＢ（ｎ−２，ｉ）、及びＭＢ（ｎ−１，ｉ）などのその他の隣接部のその他の隣接データと共に、ＭＢ（ｎ，ｉ）と関連付けられたデータ構造内に保存している。ＭＢ（ｎ，ｉ−１）を処理する際に、Ｂ０のモーションベクトルを、その他の隣接部のその他の隣接データと共に、ＭＢ（ｎ，ｉ）と関連付けられたデータ構造内に保存している。ＭＢ（ｎ＋１，ｉ−１）を処理する際に、Ｃ０のモーションベクトルを、その他の隣接部のその他の隣接データと共に、ＭＢ（ｎ，ｉ）と関連付けられたデータ構造内に保存している。そして、ＭＢ（ｎ−１，ｉ）を処理する際に、Ｄ０のモーションベクトルを、その他の隣接部のその他の隣接データと共に、ＭＢ（ｎ，ｉ）と関連付けられデータ構造内に保存している。この結果、ＭＢ（ｎ，ｉ）を処理する際には、すべての必要な隣接データをデータ構造から容易に取得可能である。
【００４８】
以上の説明は、図６との関連において説明したように、フレーム又はフィールドモードにおける処理に関係していが、隣接マクロブロックの処理の際には、必要に応じて、後から取得するべく、フレーム及びフィールドモードの両方の隣接データを保存可能である。更には、以上の説明は、個々のマクロブロックに合焦しているが、例えば、マクロブロックペアの処理において直接的に生成されるマクロブロックペア内の上部マクロブロックから導出された下部マクロブロックによって使用される隣接データと共に、マクロブロックペアの処理に基づいた隣接データを保存することも可能である。
【００４９】
図１１は、本発明の一実施例によるモーション改良エンジン１７５を含むビデオエンコーダ／デコーダ１０２のブロックダイアグラムを示している。前述の共通の参照符号によって示されているモジュールに加えて、モーション改良エンジン１７５は、メモリモジュール２０２とは別個に又はこの一部として実装可能な共有メモリ２０５を含んでいる。更には、モーション改良エンジン１７５は、フレーム又はフィールド、並びに、時間的に順方向、時間的に逆方向、又は順方向と逆方向の混合のいずれかである異なる基準画像を使用してサブピクセルサーチを処理する能力を有する非常に一般的な設計を具備した特殊目的ハードウェア構成によって実装可能である。モーション改良エンジン１７５は、複数の圧縮モードにおいて動作することにより、Ｈ．２６４、ＭＰＥＧ−４、ＶＣ−１などの複数の異なる圧縮アルゴリズムを、最適化された単一のフレームワークにおいてサポート可能である。再構築は、クロマのみ、ルーマのみ、或いは、クロマ及びルーマの両方について実行可能である。
【００５０】
例えば、これらの圧縮モードの能力は、次のようなものを包含可能である。
【００５１】
（Ｈ．２６４）
１．ＭＢＡＦＦがＯＮである際の順方向／逆方向及び混合方向における（１６×１６）、（１６×８）、（８×１６）、及び（８×８）のサイズのサブブロックへのすべての大きなパーティションに対するモーションサーチ及び改良。これは、フィールド及びフレームＭＢタイプをも含んでいる。
【００５２】
２．ＭＢＡＦＦがＯＦＦである際の順方向／逆方向及び混合方向における（１６×１６）、（１６×８）、（８×１６）、及び（８×８）のサイズのサブブロックへのすべてのパーティションに対する、並びに、（８×８）、（８×４）、（４×８）、及び（４×４）のサイズのサブブロックへのサブパーティションに対するモーションサーチ及び改良。
【００５３】
３．ＭＢＡＦＦ  ＯＮ及びＯＦＦにおけるダイレクトモード及び／又はスキップモードコストの演算。
【００５４】
４．モード決定は、ＭＢＡＦＦ  ＯＮ及びＯＦＦにおける前述のパーティションのすべてに基づいている。対応するパーティションにおけるクロマ再構築は、ルーマモーション再構築が起動された際に、黙示的に実行される。
【００５５】
５．モーション改良及び補償は、Ｈ．２６４規格の６タップフィルタアルゴリズムを使用した１／４ピクセル精度の最終モーションベクトルを含んでいる。
【００５６】
（ＶＣ−１）
１．順方向、逆方向、及び混合方向におけるフィールド及びフレームの両方における１６×１６及び８×８パーティションの両方のモーションサーチ及び改良。
【００５７】
２．モード決定は、前述のパーティションのそれぞれのものに基づいている。これは、ルーマ及び対応するクロマ再構築を伴っている。
【００５８】
３．モーション改良及び補償は、ＶＣ−１規格の双一次１／２ピクセル精度の最終モーションベクトルを含んでいる。
【００５９】
（ＭＰＥＧ−４）
１．順方向、逆方向、及び混合方向におけるフィールド及びフレームの場合の両方における１６×１６及び８×８パーティションの両方のモーションサーチ及び改良。
【００６０】
２．モード決定は、前述のパーティションのすべてに基づいている。再構築は、ルーマのみに関係している。
【００６１】
３．モーション改良及び補償は、ＶＣ−１規格の双一次１／２ピクセル精度のＭＶを含んでいる。
【００６２】
更には、モーション改良エンジン１７５は、（１）モーション改良モジュール２０６の動作が、メモリモジュール２０２内に含まれているソフトウェア／ファームウェアアルゴリズムによってトリガ及び／又は制御されると共に、処理モジュール２００によって実行されるモードと、（２）モーション改良モジュール２０６の動作が、ほとんど又はなんらのソフトウェア／ファームウェアの介入を伴うことなしに、モーションサーチモジュール２０４によってトリガされるモードという２つの基本動作モードにおいて動作可能である。第１のモードは、恐らくは、本明細書に記述されているように変更された１つ又は複数の規格に従って動作することになる。第２の動作モードは、自動化された方式において、且つ、品質の低下を伴うことなしに、動的に、且つ、更に迅速に、制御及び実行可能である。
【００６３】
共有メモリ２０５に対しては、第１又は第２動作モードを円滑に実行するべく、個々に、独立的に、且つ、同時に、モーションサーチモジュール２０４及びモーション改良モジュール２０６からアクセス可能である。具体的には、共有メモリ２０５は、モーションサーチモジュール２０４によって実行される演算の結果として得られた（モーションベクトル及びコストなどの）結果を含むコストテーブルなどのメモリの一部を含んでいる。このコストテーブルは、共有メモリ内の複数の固定された場所を包含可能であり、ここには、モーション改良モジュール２０６によって後から取得されるように、具体的には、第２動作モードにおいて使用されるように、これらの演算結果が保存されている。コストテーブルに加えて、共有メモリ２０５は、いずれかのモードにおいて使用するべく、モーションサーチモジュール２０４によって実行された演算に基づいて下した決定についてモーション改良モジュール２０６及びファームウェアに対して通知するヒントテーブルなどの追加情報を保存することも可能である。この例は、良好なパーティション、良好ではないパーティション、及び／又は破棄可能なパーティションの識別、フレームモード又はフィールドモードのいずれが、そして、どの程度、良好であるかの識別、並びに、順方向、逆方向、及び混合方向の中のいずれが、そして、どの程度、良好であるのかの識別などを含んでいる。
【００６４】
モーションサーチモジュールは、取得した結果に基づいて、早期にその演算を終了可能である。いずれにしても、モーションサーチは、モーションサーチモジュール２０４からモーション改良モジュール２０６に送信されるトリガ信号により、モーション改良の開始を直接的にトリガ可能である。モーション改良モジュール２０６は、ヒントテーブル及び／又はコストテーブル内に保存されているデータに基づいて、モーションサーチモジュール１０４又はモーション改良モジュール２０６がコスト閾値又はその他の性能基準に基づいて良好であると判定した特定のパーティション、特定のモード（フレーム又はフィールド）、及び／又は特定の方向（順方向、逆方向、又は混合方向）のみを改良するという選択肢を具備可能である。代替例においては、モーション改良モジュールは、ソフトウェア／ファームウェアアルゴリズムに基づいて更に均一な方式によって直接的に実行することも可能である。この結果、モーション改良エンジン１７５は、選択されたパーティション、単一のパーティションのすべてのサブブロック、パーティションのグループ、又はＭＢ／ＭＢペアの全体について、フレーム及びフィールドの両方に基づいて、フレーム又はフィールドモードのみにおいて、並びに、順方向、逆方向、及び混合方向において、又は特定の方向において、モーションサーチモジュール２０４によって実行された演算に基づいて、改良が実行されるように、パイプライン方式において、且つ、並行して、モーションサーチ及びモーション改良を完成させるべく、動的又は選択的に動作可能である。
【００６５】
動作の際には、モーションサーチモジュール２０４は、複数のＭＢ／ＭＢペアのマクロブロックの複数のパーティショニングにおける複数のサブブロックについてモーションサーチモーションベクトルを同時に生成している。モーション改良モジュール２０６は、イネーブルされた際に、複数のマクロブロックの中のマクロブロックの複数のサブブロックのそれぞれのモーションサーチモーションベクトルに基づいて、複数のマクロブロックの中のＭＢ／ＭＢペアの複数のパーティショニングにおける複数のサブブロックについて改良されたモーションベクトルを同時に生成している。モード決定モジュールは、複数のマクロブロックの中のマクロブロックの複数のパーティショニングにおける複数のサブブロックのそれぞれの改良されたモーションベクトルと関連したコストに基づいて、複数のパーティショニングの中の選択されたパーティショニングを選択すると共に、複数のマクロブロックの中のマクロブロックの選択されたパーティショニングに対応した複数のサブブロックのそれぞれについて最終的なモーションベクトルを判定している。再構築モジュール２１４は、複数のマクロブロックの中のマクロブロックの複数のサブブロックの最終的なモーションベクトルに対応したクロマ及び／又はルーマの残留ピクセル値を生成している。
【００６６】
更には、モーションサーチモジュール２０４及びモーション改良モジュール２０６は、第１圧縮規格に対応したモード、第２圧縮規格に対応したモード、及び／又は第３圧縮規格に対応したモードなどを含む複数のその他の選択されたモードにおいて動作することも可能であり、この場合に、複数のパーティショニングは、選択されたモードに基づいたものであってよい。例えば、１つのモードにおいて、モーションサーチモジュール２０４及びモーション改良モジュール２０６は、ＭＢＡＦＦ（Ｍａｃｒｏｂｌｏｃｋ  Ａｄａｐｔｉｖｅ  Ｆｒａｍｅ  ａｎｄ  Ｆｉｅｌｄ）信号がアサートされている際には、ＭＢＡＦＦがイネーブルされた状態において、そして、ＭＢＡＦＦイネーブル信号がデアサートされている際には、ＭＢＡＦＦがディスエーブルされた状態において、動作する能力を有しており、この場合に、複数のパーティショニングは、ＭＢＡＦＦイネーブル信号に基づいている。一実施例においては、ＭＢＡＦＦ信号がアサートされている際には、マクロブロックの複数のパーティショニングは、マクロブロックを、１６ピクセル×１６ピクセル、１６ピクセル×８ピクセル、８ピクセル×１６ピクセル、並びに、８ピクセルのサイズの最小寸法を具備する８ピクセル×８ピクセルという第１最小寸法を具備したサブブロックにパーティショニングしている。更には、ＭＢＡＦＦ信号がデアサートされている際には、マクロブロックの複数のパーティショニングは、マクロブロックを、１６ピクセル×１６ピクセル、１６ピクセル×８ピクセル、８ピクセル×１６ピクセル、８ピクセル×８ピクセル、４ピクセル×８ピクセル、８ピクセル×４ピクセル、並びに、４ピクセルのサイズの最小寸法を具備する４ピクセル×４ピクセルというサイズの第２最小寸法を具備したサブブロックにパーティショニングしている。その他の動作モードにおいては、マクロブロックの複数のパーティショニングは、マクロブロックを、１６ピクセル×１６ピクセルと８ピクセル×８ピクセルというサイズのサブブロックにパーティショニングしている。尚、以上においては、特定のマクロブロック寸法について説明しているが、本発明の更に広範な範囲によれば、その他の寸法も同様に可能である。
【００６７】
利用している特定の圧縮規格に基づいたＭＢ／ＭＢペアのパーティショニングに加えて、モーションサーチモジュール２０４は、複数のマクロブロックの中のマクロブロックの複数のパーティショニングにおける複数のサブブロックについてモーションサーチモーションベクトルを生成可能であると共に、グループ選択信号に基づいて、複数のパーティショニングの選択されたグループを生成可能である。更には、モーション改良モジュール２０６は、複数のマクロブロックの中のマクロブロックの複数のサブブロックのそれぞれのモーションサーチモーションベクトルに基づいて、複数のマクロブロックの中のマクロブロックの複数のパーティショニングの選択されたグループにおける複数のサブブロックについて改良されたモーションベクトルを生成可能である。この実施例においては、アルゴリズムを高速化するべく、グループ選択信号をモーションサーチモジュール２０４によって使用して１つ又は複数の閾値を選択的に適用することにより、モーション改良モジュール２０６によって考慮されるパーティション数を絞り込むことが可能である。
【００６８】
例えば、グループ選択信号が第１値を具備している際には、モーションサーチモジュール２０４は、複数のマクロブロックの中のマクロブロックの複数のパーティショニングについて、複数のサブブロックのそれぞれのもののモーションサーチモーションベクトルと関連した蓄積されたコストを第１閾値と比較すると共に、第１閾値と好ましく比較される蓄積されたコストを有するパーティショニングとなるように選択されたグループを割り当てることにより、複数のパーティションの選択されたグループを判定している。このモードにおいて、非常に良好なコストを生成する特定のパーティショニングが見出された場合には、モーションサーチモジュール２０４は、その特定のマクロブロックについて早期に終了可能であり、且つ、モーション改良モジュール２０６は、パーティショニングの組の全体に対してではなく、第１閾値と好ましく比較されるコストを生成している特定のパーティショニングに対して作用可能である。
【００６９】
更には、グループ選択信号が第２値を具備している際には、モーションサーチモジュール２０４は、複数のマクロブロックの中のマクロブロックの複数のパーティショニングについて、複数のサブブロックのそれぞれのもののモーションサーチモーションベクトルと関連した蓄積されたコストを比較すると共に、最も好ましい蓄積されたコストを有する選択されたパーティショニングとなるように選択されたグループを割り当てることにより、複数のパーティショニングの選択されたグループを判定している。この場合にも、モーション改良モジュール２０６は、パーティショニングの組の全体に対してではなく、モーションサーチから最も好ましいコストを生成している特定のパーティショニングに対して作用可能である。
【００７０】
更には、グループ選択信号が第３値を具備している際には、モーションサーチモジュール２０４は、複数のマクロブロックの中のマクロブロックの複数のパーティショニングについて、複数のサブブロックのそれぞれのもののモーションサーチモーションベクトルと関連した蓄積されたコストを第２閾値と比較すると共に、第２閾値と好ましく比較される蓄積されたコストを有する複数のパーティショニングの中のパーティショニングのそれぞれとなるように選択されたグループを割り当てることにより、複数のパーティショニングの選択されたグループを判定している。このモードにおいては、モーション改良モジュール２０６は、パーティショニングの組の全体に対してではなく、第２閾値と好ましく比較されるコストを生成しているパーティショニングに対してのみ作用可能である。
【００７１】
前述のように、モーションサーチモジュール２０４及びモーション改良モジュール２０６は、並行して、複数のマクロブロックの中のマクロブロックの複数のパーティショニングにおける複数のサブブロックについてモーションサーチモーションベクトルを同時に生成するべく、パイプライン化可能であり、且つ、動作可能である。更には、共有メモリ２０５をモーションサーチモジュール２０４及びモーション改良モジュール２０６の両方に密接に結合することにより、モーション改良モジュール２０６によって使用されように、モーションサーチモジュール２０４からのパーティショニングの選択されたグループにおける結果を効率的に保存可能である。具体的には、モーションサーチモジュール２０４は、パーティショニングの選択されたグループ及び対応したモーションサーチモーションベクトルを共有メモリ内に、そして、その他の結果をコスト及びヒントテーブル内に保存している。モーション改良モジュール２０６は、パーティショニングの選択されたグループ及び対応したモーションサーチモーションベクトルをこの共有メモリから取得している。特定の実施例においては、モーションサーチモジュール２０４は、共有メモリ内におけるマクロブロック及び対応したモーションサーチモーションベクトル並びに／或いはその他の結果の保存に応答してトリガ信号を生成可能であり、モーション改良モジュール２０６は、このトリガ信号に応答し、共有メモリからのパーティショニングの選択されたグループ及び対応したモーションサーチモーションベクトル並びに／或いはその他の結果の取得を開始可能である。
【００７２】
前述のように、静止モーションベクトルと関連したコストがスキップモードのコスト閾値と好ましく比較されるスキップモードにある際又は特定のパーティションと関連した合計コストがスキップ改良コスト閾値と好ましく比較される場合などにおいては、特定のアプリケーション、圧縮規格、又は特定のマクロブロックについて、モーション改良モジュールを選択的にディスエーブルすることにより、特定のマクロブロックにおけるモーション改良をターンオフ可能であり、この場合には、改良されたモーションベクトルの代わりに、モーションサーチモーションベクトルを使用可能である。更に別の任意選択の特徴においては、モーションサーチモジュール２０４は、前述のように、ＳＡＤ（Ｓｕｍ  ｏｆ  Ａｃｃｕｍｕｌａｔｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）コストなどの１つ又はいくつかのコスト計算に基づいて、複数のマクロブロックの中のマクロブロックの複数のパーティショニングにおける複数のサブブロックについてモーションサーチモーションベクトルを生成している。しかしながら、モーション改良モジュール２０６は、イネーブルされた際に、ＳＡＴＤ（Ｓｕｍ  ｏｆ  Ａｃｃｕｍｕｌａｔｅｄ  Ｔｒａｎｓｆｏｒｍ  Ｄｉｆｆｅｒｅｎｃｅ）コストに基づいた複数のマクロブロックの中のマクロブロックの複数のサブブロックのそれぞれのモーションサーチモーションベクトルに基づいて、複数のマクロブロックの中のマクロブロックの複数のパーティショニングにおける複数のサブブロックについて改良されたモーションベクトルを生成している。この場合には、モード決定モジュール２１２は、モーションサーチモジュール２０４からのＳＡＤコストに基づいて、又はモーション改良モジュール２０６からのＳＡＴＤコストに基づいて、動作しなければならない。
【００７３】
具体的には、モード決定モジュール２１２は、モーション改良モジュール２０６及びモーションサーチモジュール２０４に結合されている。モーション改良モジュール２０６が複数のマクロブロックの中のマクロブロックについてイネーブルされている際には、モード決定モジュール２１２は、複数のマクロブロックの中のマクロブロックの複数のパーティショニングの複数のサブブロックのそれぞれのものの改良されたモーションベクトルと関連したＳＡＴＤコストに基づいて、複数のパーティショニングの中の選択されたパーティショニングを選択している。更には、モーション改良モジュール２０６が複数のマクロブロックの中のマクロブロックについてディスエーブルされている際には、モード決定モジュール２１２は、複数のマクロブロックの中のマクロブロックの複数のパーティショニングの複数のサブブロックのそれぞれのもののモーションサーチモーションベクトルと関連したＳＡＤコストに基づいて、複数のパーティショニングの中の選択されたパーティショニングを選択すると共に、複数のマクロブロックの中のマクロブロックの選択されたパーティショニングに対応した複数のサブブロックのそれぞれについて最終的なモーションベクトルを判定している。
【００７４】
モーション改良エンジン１７５は、フレーム又はフィールドモードの両方において動作可能であるため、モード決定モジュール２１２は、複数のマクロブロックの中のマクロブロックの複数のパーティショニングの複数のサブブロックのそれぞれのものの改良されたモーションベクトルと関連したＳＡＴＤコストに基づいて、又は複数のマクロブロックの中のマクロブロックの複数のパーティショニングの複数のサブブロックのそれぞれのもののモーションサーチモーションベクトルと関連したＳＡＤコストに基づいて、そのマクロブロックについてフレームモード及びフィールドモードのいずれかを選択している。
【００７５】
本発明の一実施例においては、モーション改良エンジン１７５は、共有メモリ２０５内に配置されているＦＩＦＯ命令を介して機能するべく設計されている。このエンジンの機能的な柔軟性は、ＦＩＦＯ命令の非常に柔軟な設計によって実現されている。ＦＩＦＯ命令は、４つの３２ビットレジスタを具備しており、この中の１つが、モーション改良エンジン１７５用のトリガとなっている。これは、単一のパーティション、パーティションのグループ、又はＭＢ／ＭＢペアの全体について、ＭＢＡＦＦを伴って又は伴うことなしに、順方向、逆方向、及び混合方向において、等しい容易さにより、モーション改良／補償を完成させるべく、プログラム可能であろう。尚、本発明の将来の特徴をサポートするべく、いくつかのビットが予約されていることに留意されたい。
【００７６】
具体的な一実施例においては、ＦＩＦＯ命令の構造は、次の表に要約されているとおりである。
【００７７】
【表１】
2008228305.tif 000003
【００７８】
【表２】
2008228305.tif 000004
【００７９】
ＦＩＦＯ命令に加えて、共有メモリ内には、モーション改良エンジン１７５が使用するいつかのスライスレベルレジスタも存在している。これらには、使用されるコーデック、画像の幅、画像の高さ、スライスタイプ、ＭＢＡＦＦフラグ、ＳＡＴＤ／ＳＡＤフラグ、及びこれらに類似したものなどの共通ビデオ情報が含まれている。前述のビットを適切にプログラムすることにより、以下の柔軟性／シナリオに対処することができよう。
【００８０】
１．タスクビットは、モーション改良エンジン１７５によって実行される動作を定義している。これをレジスタ内のコーデック情報と適切に組み合わせることにより、モーション改良エンジン１７５は、先程列挙したすべてのコーデックにおいて前述のタスクのすべてを実行可能である。
【００８１】
２．方向ビットは、使用する必要があると共にＢスライスをコーティングする際に特に有用である基準画像を参照している。これらの３ビットの任意の組み合わせをタスクのいずれかに設定可能であろう。これらの３ビットのすべてを改良のためにイネーブルすることにより、モーション改良エンジン１７５は、１回の呼び出しにおいて、３つのすべての方向においてＭＢ全体のモーション改良を完成可能である。但し、モーション改良エンジン１７５は、（Ｐスライスにおいて必要とされているように）任意の特定方向を選択し、その方向についてのみ改良を実行することも可能である。従って、ＦＩＦＯ命令は、単一であってすべての方向の呼び出し、又は複数であって１つの方向の呼び出しという両方のケースに対処する柔軟性を提供している。
【００８２】
３．パーティションビットは、すべてのパーティション及びサブパーティションのモーション改良及び再構築に総合的に対応しているため、その設計が非常に柔軟である。これらのビットを方向ビットと効果的に組み合わせることにより、モーション改良エンジン１７５は、両極端を実現可能であり、即ち、一回ですべての方向におけるすべてのパーティションの改良を実行することも可能であり、或いは、特定の方向における選択されたパーティションの組の改良／補償を実行することも可能である。又、パーティションビットは、レジスタ内のＭＢＡＦＦ  ＯＮフラグに基づいて、モーション改良エンジン１７５によって動的に異なる方式において解釈されている。従って、最適化され、限定されたビットの組を使用することにより、モーション改良エンジン１７５は、パーティションの組み合わせのすべてのシナリオに対処可能である。これらのモードのそれぞれにおけるパーティションビットの構造を、フレーム（ＦＲＭ）、フィールド（ＦＬＤ）、及びダイレクトモード（ＤＩＲＥＣＴ）の結果について、以下のテーブルに要約している。
【００８３】
【表３】
2008228305.tif 000005
【００８４】
【表４】
2008228305.tif 000006
【００８５】
【表５】
2008228305.tif 000007
【００８６】
又、ＦＩＦＯ命令は、早期終了方式をも具備しており、これを有効に使用することにより、モーション改良をインテリジェントに高速化可能であろう。これらは、モーションサーチモジュール２０４との関連において直接的に使用可能であり、或いは、アルゴリズムのニーズに適合するべくプロセッサ２００の介入を伴って使用することも可能である。これらは、次のとおりである。
【００８７】
ａ．ＢＥＳＴ  ＭＢ  ＰＡＲＴＩＴＩＯＮ：これは、超高速モードであり、これは、改良を実行するべくモーションサーチによって通知されている最良モードのみを選択する。モーション改良は、最良のパーティションの１つのフレーム又はフィールドのみにおけるモーションサーチ結果に基づいて設定された閾値テーブル内にある特定のパーティションのみを観察している。
【００８８】
ｂ．ＴＨＲＥＳＨＯＬＤ  ＥＮＡＢＬＥ：このフラグは、モーションサーチのＭＳ  Ｓｔａｔｓ  Ｒｅｇｉｓｔｅｒ内の閾値情報の使用を可能にするべく使用されている。このビットがＯＮの場合には、モーション改良エンジン１７５は、ＭＳ  Ｓｔａｔｓ  Ｒｅｇｉｓｔｅｒの閾値部分内に規定されているモードについてのみ改良を実行する。このビットは、次のように動作している。上部／下部、フレーム／フィールドＭＢのそれぞれについて、次の内容を実行している。
【００８９】
パーティションビットのいずれか（１６×１６、１６×８、８×１６、８×８のいずれか）が、ＭＳ  Ｓｔａｔｓ  Ｒｅｇｉｓｔｅｒの閾値部分内においてイネーブルされている場合には（これは、閾値がそれらのパーティションについて満足されていることを意味している）、ＦＩＦＯ命令内のＰＡＲＴＩＴＩＯＮビットとは無関係に、それらのすべてのイネーブルされているパーティションを実行する。ＭＢＡＦＦ  ＯＦＦの場合に、８×８ビットが設定されている際には、改良は、８×８パーティションのそれぞれにおいて、ヒントテーブル内に規定されている最良のサブパーティションについてのみ実行される。モーション改良は、閾値を満足しているパーティションのモーションサーチ結果に基づいて設定された閾値テーブル内にある特定のパーティションのみを観察している。
【００９０】
図１２は、本発明の一実施例による方法のフローチャートを示している。具体的には、図１〜図１１との関連において説明した特徴及び機能の１つ又は複数のものと関連して使用される方法が示されている。段階４００においては、モード選択信号が第１値を具備している際に、ビデオ処理装置は、エンコーディングモードにおいて作動しており、段階４０２においては、モード選択信号が第２値を具備している際に、ビデオ処理装置は、デコーディングモードにおいて作動している。更に詳しくは、段階４００は、それぞれが特定のコーディング機能を実行する複数の機能固有のハードウェアエンジンを利用しており、段階４０２は、複数の機能固有のハードウェアエンジンの中の少なくとも１つを利用している。
【００９１】
本発明の一実施例においては、エンコーディングモード及びデコーディングモードは、それぞれ、Ｈ．２６４規格、ＭＰＥＧ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）規格、及びＳＭＰＴＥ（Ｓｏｃｉｅｔｙ  ｏｆ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  ａｎｄ  Ｔｅｌｅｖｉｓｉｏｎ  Ｅｎｇｉｎｅｅｒｓ）規格の中の１つにおいて動作している。更には、エンコーディングモード及びデコーディングモードは、規格選択信号が第１値を具備している際には、第１規格に従って、そして、規格選択信号が第２値を具備している際には、第２規格に従って、選択的に動作可能である。
【００９２】
好適な実施例においては、様々な回路コンポーネントは、０．３５ミクロン以下のＣＭＯＳ技術を使用して実装されている。但し、本発明の広範な範囲内において、集積型又は非集積化の両方のその他の回路技術を使用可能である。
【００９３】
以上、本明細書においては、本発明の様々な機能及び特徴の特定の組み合わせについて明示的に説明したが、本明細書に開示されている特定の例によって制限されることのないこれらの特徴及び機能のその他の組み合わせも可能であり、これらも、本発明の範囲内に明らかに包含されている。
【００９４】
当業者であれば理解するように、本明細書において使用されている「実質的に（ｓｕｂｓｔａｎｔｉａｌｌｙ）」又は「略（ａｐｐｒｏｘｉｍａｔｅｌｙ）」という用語は、産業的に許容される許容範囲を、その対応する用語及び／又は項目間における相対性に対して提供している。このような産業的に許容される許容範囲は、１パーセント未満から２０パーセントの範囲を有すると共に、コンポーネント値、集積回路プロセスの変動、温度変動、立ち上がり及び立ち下がり時間、及び／又は熱雑音に対応しているが、これらに限定されるものではない。項目間におけるこのような相対性は、数パーセントの差から桁の違いまでの範囲を有している。当業者であれば理解するように、本明細書において使用されている「結合された（ｃｏｕｐｌｅｄ）」という用語は、直接的な結合と、別のコンポーネント、要素、回路、又はモジュールを介した間接的な結合を含んでおり、この場合に、間接的な結合の場合には、介在するコンポーネント、要素、回路、又はモジュールは、信号の情報を変更することはないが、その電流レベル、電圧レベル、及び／又は電力レベルを調節可能である。又、当業者であれば理解するように、推定された結合（即ち、１つの要素が別の要素に対して推定によって結合されている場合）は、「結合された（ｃｏｕｐｌｅｄ）」と同様に、２つの要素間における直接的及び間接的な結合を含んでいる。当業者であれば理解するように、本明細書において使用されている「好ましく比較される（ｃｏｍｐａｒｅｓ  ｆａｖｏｒａｂｌｙ）」という用語は、複数の要素、項目、信号などの間の比較が望ましい関係を提供していることを示している。例えば、望ましい関係が、信号１が信号２を上回る大きさを具備しているということである際には、好ましい比較は、信号１の大きさが信号２の大きさを上回っている際、又は信号２の大きさが信号１の大きさを下回っている際に、実現可能である。
【００９５】
モジュールという用語が本発明の様々な実施例の説明において使用されているが、モジュールは、出力信号を生成するための入力信号の処理などの１つ又は複数の機能を実行するハードウェア、ソフトウェア、及び／又はファームウェアにおいて実装された機能ブロックを含んでいる。本明細書において使用されているように、モジュールは、それ自体がモジュールであるサブモジュールを包含可能である。
【００９６】
従って、本明細書においては、ビデオ処理装置及びこれと共に使用するビデオエンコーダ／デコーダを実装するための装置及び方法、並びに、好適な実施例を含むいくつかの実施例について説明しており、本明細書に記述されている本発明の様々な実施例は、本発明を従来技術から弁別する特徴を具備している。
【００９７】
当業者には、この開示されている発明が様々な方法において変更可能であり、且つ、以上において具体的に記述及び説明した好適な形態以外の多くの実施例が可能であることが明らかであろう。従って、添付の請求項は、本発明の真の精神及び範囲に属する本発明のすべての変更を包含することを意図している。
【図面の簡単な説明】
【００９８】
【図１】本発明の実施例による様々なビデオ装置の概略図である。
【図２】本発明の実施例による様々なビデオ装置の概略図である。
【図３】本発明の実施例による様々なビデオ装置の概略図である。
【図４】本発明の一実施例によるビデオ装置を示すブロックダイアグラムである。
【図５】本発明の一実施例によるビデオエンコーダ／デコーダ１０２のブロックダイアグラムを示す図である。
【図６】本発明の一実施例によるビデオエンコーディング動作を示すブロックフローチャートである。
【図７】本発明の一実施例によるビデオデコーディング動作を示すブロックフローチャートである。
【図８】本発明の一実施例による例示用の上部フレーム及び下部フレームマクロブロック（２５０、２５２）と例示用の上部フィールド及び下部フィールドマクロブロック（２５４、２５６）の間の関係を示すグラフィカルな図である。
【図９】本発明の一実施例による例示用のマクロブロックのパーティショニングを示すグラフィカルな図である。
【図１０】モーション補償又は特定のマクロブロックのエンコーディングにおいて使用される隣接マクロブロックの一例を示すビデオ入力信号の複数のマクロブロックのグラフィカルな図である。
【図１１】本発明の一実施例によるモーション改良エンジン１７５を含むビデオエンコーダ／デコーダ１０２を示すブロックダイアグラムである。
【図１２】本発明の一実施例による方法を示すフローチャートである。
【図１】
2008228305.tif 000008
【図２】
2008228305.tif 000009
【図３】
2008228305.tif 000010
【図４】
2008228305.tif 000011
【図５】
2008228305.tif 000012
【図６】
2008228305.tif 000013
【図７】
2008228305.tif 000014
【図８】
2008228305.tif 000015
【図９】
2008228305.tif 000016
【図１０】
2008228305.tif 000017
【図１１】
2008228305.tif 000018
【図１２】
2008228305.tif 000019
【外国語明細書】
2008228305000001.pdf