【実施例】
【0030】
図3において、MPEG−4AVC標準に従ったビデオ・エンコーディングを実行することが可能なビデオエンコーダが、参照番号300によって全体的に示されている。
【0031】
ビデオエンコーダ300は、コンバイナ385の非反転入力に信号通信接続された出力を有するフレーム順序付けバッファ310を含む。コンバイナ385の出力は、変換器および量子化器325の第一入力に信号通信接続される。変換器および量子化器325の出力は、領域マージ拡張付きエントロピー符号器345の第一入力、および逆変換器および逆量子化器350の第一入力に信号通信接続される。領域マージ拡張付きエントロピー符号器345の出力は、コンバイナ390の第1の非反転入力に信号通信接続される。コンバイナ390の出力は、出力バッファ335の第一入力に信号通信接続される。
【0032】
領域マージ拡張付きエンコーダ・コントローラ305の第一出力端は、フレーム順序付けバッファ310の第2の入力、逆変換器および逆量子化器350の第2の入力、画像−タイプ決定モジュール315の入力、マクロブロック−タイプ(MB−タイプ)決定モジュール320の入力、イントラ予測モジュール360の第2の入力、デブロッキングフィルタ365の第2の入力、モーションコンペンセータ370の第一入力、モーション推定器375の第一入力、および参照ピクチャ・バッファ380の第2の入力に信号通信接続される。
【0033】
領域マージ拡張付きエンコーダ・コントローラ305の第2の出力は、付加的強調情報(SEI)インサータ330の第一入力、変換器および量子化器325の第2の入力、エントロピー符号器145の第2の入力、出力バッファ335の第2の入力、およびシーケンス・パラメータ・セット(SPS)およびピクチャ・パラメータ・セット(PPS)インサータ340の入力に信号通信接続される。
【0034】
画像−タイプ決定モジュール315の第一出力端は、フレーム順序付けバッファ310の第三入力に信号通信接続される。画像−タイプ決定モジュール315の第2の出力は、マクロブロック−タイプ決定モジュール320の第2の入力に信号通信接続される。
【0035】
シーケンス・パラメータ・セット(SPS)およびピクチャ・パラメータ・セット(PPS)インサータ340の出力は、コンバイナ390の第三非反転入力に信号通信接続される。逆量子化器および逆変換器350の出力は、コンバイナ319の第1の非反転入力に信号通信接続される。コンバイナ319の出力は、イントラ予測モジュール360の第一入力、およびデブロッキングフィルタ365の第一入力に信号通信接続される。デブロッキングフィルタ365の出力は、参照ピクチャ・バッファ380の第一入力に信号通信接続される。参照ピクチャ・バッファ380の出力は、モーション推定器375の第2の入力に信号通信接続される。モーション推定器375の第一出力端は、モーションコンペンセータ370の第2の入力に信号通信接続される。モーション推定器375の第2の出力は、領域マージ拡張付きエントロピー符号器345の第三入力に信号通信接続される。
【0036】
モーションコンペンセータ370の出力は、スイッチ397の第一入力に信号通信接続される。イントラ予測モジュール360の出力は、スイッチ397の第2の入力に信号通信接続される。マクロブロック−タイプ決定モジュール320の出力は、スイッチ397の第三入力に信号通信接続される。スイッチ397の第三入力(制御入力と比較すると、すなわち第三入力)は、スイッチの「データ」入力がモーションコンペンセータ370かイントラ予測モジュール360によって提供されることであるか否かを確定する。スイッチ397の出力は、コンバイナ319の第2の非反転入力、およびコンバイナ385の逆相入力端子に信号通信接続される。
【0037】
フレーム順序付けバッファ310、および領域マージ拡張付きエンコーダ・コントローラ305の入力は、入力画像301を受信するため、エンコーダ300の入力として利用できる。さらに、サプレメンタルエンハンスメントインフォメーション(SEI)インサータ330の入力は、メタデータの受信のために、エンコーダ300の入力として使われる。出力バッファ335の出力は、ビット列を出力するために、エンコーダ300の出力として使われる。
【0038】
図4を参照すると、MPEG−4AVC標準に従ってビデオ・デコーディングを実行することが可能なビデオデコーダが、参照番号400によって全体的に示されている。
【0039】
ビデオデコーダ400は、領域マージ拡張付きエントロピーデコーダ445の第一入力に信号通信接続される出力を有する入力バッファ410を含む。領域マージ拡張付きエントロピーデコーダ445の第一出力端は、逆変換器および逆量子化器450の第一入力に信号通信接続される。逆変換器および逆量子化器450の出力は、コンバイナ425の第2の非反転入力に信号通信接続される。コンバイナ425の出力は、デブロッキングフィルタ465の第2の入力、およびイントラ予測モジュール460の第一入力に信号通信接続される。デブロッキングフィルタ465の第2の出力は、参照ピクチャ・バッファ480の第一入力に信号通信接続される。参照ピクチャ・バッファ480の出力は、モーションコンペンセータ470の第2の入力に信号通信接続される。
【0040】
領域マージ拡張付きエントロピーデコーダ445の第2の出力は、モーションコンペンセータ470の第三入力、およびデブロッキングフィルタ465の第一入力に信号通信接続される。領域マージ拡張付きエントロピーデコーダ445の第三出力は、領域マージ拡張付きデコーダ・コントローラ405の入力に信号通信接続される。領域マージ拡張付きデコーダ・コントローラ405の第一出力端は、領域マージ拡張付きエントロピーデコーダ445の第2の入力に信号通信接続される。領域マージ拡張付きデコーダ・コントローラ405の第2の出力は、逆変換器および逆量子化器450の第2の入力に信号通信接続される。領域マージ拡張付きデコーダ・コントローラ405の第三出力は、デブロッキングフィルタ465の第三入力に信号通信接続される。領域マージ拡張付きデコーダ・コントローラ405の第四出力は、イントラ予測モジュール460の第2の入力、モーションコンペンセータ470の第一入力、および参照ピクチャ・バッファ480の第2の入力に信号通信接続される。
【0041】
モーションコンペンセータ470の出力は、スイッチ497の第一入力に信号通信接続される。イントラ予測モジュール460の出力は、スイッチ497の第2の入力に信号通信接続される。スイッチ497の出力は、コンバイナ425の第1の非反転入力に信号通信接続される。
【0042】
入力バッファ410の入力は、入力ビット列を受信するために、デコーダ400の入力として使われる。デブロッキングフィルタ465の第一出力端は、出力画像を出力するために、デコーダ400の出力として使われる。
【0043】
上述の如く、本願発明は、ビデオ・エンコーディング、およびデコーディングのためのスキップ/ダイレクトモードのための状況依存的なマージのための方法と装置を提供することを目的とする。
【0044】
場合によっては、与えられたブロックと他のブロックをジョイントコーディングすることを示す構文は、更にコーディング効率を改善するために役立つと理解されるべきである。実施例において、本願発明の原理はこの種のケースを特定するために用いる。さらに、条件つきのコーディング規則は、隣接したブロックの状況に依存してスキップおよびダイレクトモードでジョイントコーディングの利用を可能/使用不可能にするために導入される。さらに、ビデオデータのための暗黙的なコーディング規則をもつ一般のコーディングモードも、本願発明を使用することができる(スキップ/特別なダイレクトモードは、暗黙的なコーディングビデオ・データが動きであり、かつコーディング規則はメディアン予測器であるという特別なケースである)。実際には、本願明細書において記載されている課題としての、動きは、他の暗黙的に得られるビデオデータの状況にも現れ得ることが理解されるべきである。
【0045】
本願発明は、ブロック予測のジョイントコーディングを有するコード体系の中で、スキップ、およびダイレクトモードの使用を目的としている。状況依存的な規則が、マージ情報の使用を可能/不可能にするために、この種のモードで使われる。このことは、スキップおよびダイレクトモードにおいて、マージ情報が無益な場合に、RDパフォーマンスを失うことを回避する。さらに一般的にいえば、本願発明は、状況依存的なビデオデータをコーディングする暗黙的な導出規則(derivation rule)を持つビデオ・データブロックおよび/または領域のジョイントコーディングのマージ情報を使用可能/不可能にする規則に適用可能である。
【0046】
したがって、本願発明の実施例に従って、我々は、ビデオデータのための暗黙的なコーディング規則を持つコーディングモードを使用するフレームパーティションの中のマージ情報の適応的な使用に関する規則を定める。
【0047】
暗黙的なコーディング規則を持つモードの実施例において、我々は、スキップおよびダイレクトモードを利用する。本実施例において、動きデータは、導出規則を使用し、暗黙的にコーディングされる。この導出規則は、利用できるデコードされたデータに基づいて、スキップ/ダイレクトコーディングブロックの動きの推定値を生成する予測器に基づく。このために典型的な予測器(特にMPEG−4AVCスタンダードによって使われる)は、空間的近隣からのメディアン予測器(median predictor)または時間的近隣からの同一位置予測器(collocdated predictor)である。これらの種類のコーディングモードは、何ら制限無く、他の種類のビデオ・データ、例えば方向モードのイントラコーディング、または、モデル・フィッティング(model fitting)に基づいてイメージ/映像コーディングのために使用されるモデルのモデル・パラメータ、に適用することができる。
【0048】
ある程度まで、暗黙的なコーディング規則を持つコーディングモードは、暗黙的なマージ操作としてとらえることができる。メディアン予測器が暗黙的なデータ導出規則として用いられる場合、暗黙的なマージは、予測器によって生成される同じ動きベクトルを持つブロックを有するスキップ/ダイレクトのブロックのマージである。
【0049】
実施例において、マージサイド情報の使用は、暗黙的なコーディング規則を使用するコーディングモードの内で適合的に可能または不可能にされるケースが特定される。暗黙的なコーディング規則を使用しているフレームパーティションが与えられると、マージ情報を使用するべきか否かの決定は、隣接したパーティションモード、およびマージ情報に基づく。
【0050】
スキップまたはダイレクトモードに関して上述の実施例について以下に説明する。スキップ/ダイレクトマクロブロックがマージ方法で影響を受け得る状況は、スキップ/ダイレクトマクロブロックが他の一部のブロック(通常は16×16または他のスキップ/ダイレクトモード)にマージされる可能性に依存する時である。不必要なペイロード・ビットを含むことがないよう、デフォルトにおいては、スキップ/ダイレクトモードはマージ情報を含まない。実際、それらは、デフォルトでマージされない。スキップ/ダイレクトモードが他の一部のブロックとマージされ得る唯一の状況は、スキップ/ダイレクトモードのブロックがすでに幾つかのマージングする葉(merging leaf)端末送信(entering)を持っている場合である。実際、他のブロックがスキップ/ダイレクトブロックにマージされた場合、このことは、そのブロックに対し、ある軽減が既に得られていることを示している。したがって、他のブロックに対するマージングの決定を示す追加ビットを与えることができる。また、スキップ/ダイレクトモード・データの構文は、以下のように修正される。もし、あるブロックが、スキップ/ダイレクトマクロブロックにマージしており、そのスキップ/ダイレクトマクロブロックが、セグメントのスキャニングの最初のブロックである場合、スキップ/ダイレクトマクロブロック・データの構文は、マージされた部分のための動き情報を有する明示的な構文を含んでもよい。
【0051】
図5を参照すると、マージを可能とするスキップモードのためのビデオエンコーダにおいてマージ処理を実行するための例示的な方法が参照番号500によって全体的に示されている。
【0052】
方法500は、決定ブロック510にコントロールを渡す開始ブロック505を有する。決定ブロック510は、いずれかのブロックが現在のブロックにすでにマージされているか否か判断する。その場合は、コントロールは、機能ブロック515に移行する。それ以外の場合には、コントロールは、機能ブロック530に移行する。
【0053】
機能ブロック515は、現在のブロックをマージすることをテストし、決定ブロック520にコントロールを渡す。決定ブロック520は、マージされたブロックがコーディング効率によりよいか否か判断する。その場合は、コントロールは、機能ブロック525に移行する。それ以外の場合、コントロールは、機能ブロック530に移行する。
【0054】
機能ブロック525は、現在のブロックをマージし、かつ終了ブロック599にコントロールを渡す。
【0055】
機能ブロック530は、現在のブロックをマージされないままにしておき、かつ機能ブロック535にコントロールを渡す。機能ブロック535は、暗黙的に現在のブロックのための動きデータをコーディングし、および終了ブロック599にコントロールを渡す。
【0056】
図6を参照すると、マージ可能なスキップモードに対して、ビデオデコーダでマージ処理を実行するための例示的な方法が、参照番号500によって全体的に示されている。
【0057】
方法600は、決定ブロック610にコントロールを渡す開始ブロック605を含む。決定ブロック610は、いずれかのブロックが現在のブロックにすでにマージされているか否か判断する。その場合は、コントロールは、機能ブロック615に移行する。それ以外の場合、コントロールは、機能ブロック630に移行する。
【0058】
機能ブロック615は、コーディングされたマージ情報を読み込んで、決定ブロック620にコントロールを渡す。決定ブロック620は、現在のブロックがマージされたブロックであるか否か判断する。その場合は、コントロールは、機能ブロック625に移行する。それ以外の場合、コントロールは、機能ブロック630に移行する。
【0059】
機能ブロック625は、コーディングされたデータに従って現在のブロックをマージし、終了ブロック699にコントロールを渡す。機能ブロック630は、現在のブロックをマージされないままにしておき、機能ブロック635にコントロールを渡す。機能ブロック635は、現在のブロックのために暗黙的にコーディングされた動きデータをデコードし、終了ブロック699にコントロールを渡す。
【0060】
図7を参照すると、マージ可能なスキップモードのコーディングのための例示的な方法が、参照番号700によって全体的に示されている。
【0061】
方法700は、決定ブロック710にコントロールを渡す開始ブロックを含む。決定ブロック710は、いずれかのブロックが現在のブロックにマージされるか否か判断する。その場合は、コントロールは、決定ブロック715に移行する。それ以外の場合、コントロールは、機能ブロック750に移行する。
【0062】
決定ブロック715は、マージするのが可能なブロックがあるか否か判断する。その場合は、コントロールは、機能ブロック720に移行する。それ以外の場合、コントロールは、決定ブロック740に移行する。
【0063】
機能ブロック720は、マージ/ノーマージ・フラグをコーディングし決定ブロック725にコントロールを渡す。決定ブロック725は、現在のブロックが他のブロックにマージされるか否か判断する。その場合は、コントロールは、決定ブロック730に移行する。それ以外の場合、コントロールは、決定ブロック740に移行する。
【0064】
決定ブロック730は、マージする可能な複数ブロックがあるか否か判断する。その場合は、コントロールは、機能ブロック735に移行する。それ以外の場合、コントロールは、決定ブロック740に移行する。
【0065】
機能ブロック735は、マージの決定をコーディングし、決定ブロック740にコントロールを渡す。
【0066】
決定ブロック740は、現在のブロックがセグメントの最初のブロックであるか否か判断する。その場合は、コントロールは、機能ブロック745に移行する。それ以外の場合、コントロールは、終了ブロック799に移行する。
【0067】
機能ブロック745は、明示的に現在のブロックのための動きデータをコーディングし、終了ブロック799にコントロールを渡す。
【0068】
機能ブロック750は、暗黙的に現在のブロックの動きデータをコーディングし、終了ブロック799にコントロールを渡す。
【0069】
図8を参照すると、マージ可能なスキップモードのデコーディングのための例示的な方法が、参照番号800によって全体的に示されている。
【0070】
方法800は、決定ブロック810にコントロールを渡す開始ブロックを含む。決定ブロック810は、いずれかのブロックが現在のブロックにマージされるか否か判断する。その場合は、コントロールは、決定ブロック815に移行する。それ以外の場合、コントロールは、機能ブロック850に移行する。
【0071】
決定ブロック815は、マージする可能なブロックがあるか否か判断する。その場合は、コントロールは、機能ブロック820に移行する。それ以外の場合、コントロールは、決定ブロック840に移行する。
【0072】
機能ブロック820は、マージ/ノーマージ・フラグをデコードし、決定ブロック825にコントロールを渡す。決定ブロック825は、現在のブロックが他のブロックにマージされるか否か判断する。その場合は、コントロールは、決定ブロック830に移行する。それ以外の場合、コントロールは、決定ブロック840に移行する。
【0073】
決定ブロック830は、マージする可能な複数ブロックがあるか否か判断する。その場合は、コントロールは、機能ブロック835に移行する。それ以外の場合、コントロールは、決定ブロック840に移行する。
【0074】
機能ブロック835は、マージの決定をデコードし、決定ブロック840にコントロールを渡す。
【0075】
決定ブロック840は、現在のブロックがセグメントの最初のブロックであるか否か判断する。その場合は、コントロールは、機能ブロック845に移行する。それ以外の場合、コントロールは、終了ブロック899に移行する。
【0076】
機能ブロック845は、現在のブロックのための明示的にコーディングされた動きデータをデコードし、終了ブロック899にコントロールを渡す。
【0077】
機能ブロック850は、暗黙的にコーディングされた現在のブロックのための動きデータをデコードし、終了ブロック899にコントロールを渡す。
【0078】
本発明の多くの効果/特徴のいくつかは、すでに説明した。例えば、一つの効果/機能としては、パーティションをマージする処理およびフレームのパーティション化を用いたイメージ領域のパーティションのジョイントコーディングのためのエンコーダを含む装置であるということである。ここにおいて、明示的なコーディング規則を持つコーディングモードのために使われているマージング規則とは異なる別個のマージング規則が使用される。そして、暗黙的なコーディング規則を持つコーディングモードを使用する与えられたパーティションの一つのいかなるものも、異なったパーティションの一つとマージされることになる。
【0079】
他の効果/機能は、上述の通りのエンコーダを有する装置であるということである。ここで、暗黙的なコーディング規則を持つコーディングモードを使用する与えられた一つのパーティションがマージ処理によってパーティションの他の一つにマージされるのは、さらにもう一つのパーティションが、前記与えられた一つのパーティションにすでにマージされた場合だけである。
【0080】
さらにもう一つの効果/機能は、上述の通りのエンコーダを有する装置であるということである。ここで、パーティションのうちでマージの対象となるのは、ツリーベースの画像デコンポジションが既に実行された少なくとも一つのブロックまたはブロックの結合である。
【0081】
さらに、他の効果/機能は、上述の通りのエンコーダを有する装置であるということである。ここで、暗黙的なコーディング規則を持つコーディングモードは、スキップモード、ダイレクトモード、および方向イントラデータ(directional intra data)の暗黙的なコーディングのためのモードのうちの少なくとも一つを含むものである。
【0082】
更に、他の効果/機能は、上述の通りのエンコーダを有する装置であるということである。ここで、暗黙的なコーディング規則を持つコーディングモードを使用するパーティションの与えられた一つ、およびパーティションの他の一つがマージされることになっている、パーティションの特定の一つが、スキャンの順番において、少なくとも2つのマージされたパーティションの最初のパーティションである場合、暗黙的なコーディング規則は無視され、明示的なコーディング規則が使われる。
【0083】
他の効果/機能は、上述の通りのエンコーダを有する装置であるということである。ここで、暗黙的なコーディング規則を持つ少なくとも2つのモードをマージする可能性は、高水準構文を使用して使用可能または使用不可能にされる。
【0084】
本願発明のこれらの、そしてまた他の、特徴および効果は、本願明細書における教示に基づいて関連する技術の当業者によって、直ちに確認される。
【0085】
本願発明の教示は、ハードウェア、ソフトウェア、ファームウェア、専用プロセッサまたは組合せのさまざまな形式でインプリメントされてもよいことが理解されるであろう。
【0086】
最も好ましくは、本願発明の教示は、ハードウェアおよびソフトウェアの組合せとしてインプリメントされる。さらに、ソフトウェアはアプリケーションプログラムとして、プログラム記憶領域ユニットに明白に記憶されるよう、インプリメントされてもよい。アプリケーションプログラムは、適切なアーキテクチュアを有しているいかなるマシンにアップロードされ、実行されてもよい。望ましくは、マシンは、ハードウェア、例えば一つ以上の中央処理装置(CPU)、ランダムアクセスメモリ(RAM)、および入出力(I/O)インターフェースを有するコンピュータプラットフォームにインプリメントされる。コンピュータプラットフォームは、オペレーティングシステムおよびマイクロ命令コードを含んでもよい。本願明細書において記載されているさまざまな方法、および機能は、マイクロ命令コードの一部かアプリケーションプログラムの一部またはそれのいかなる組合せであってもよい。それはCPUによって実行されてもよい。加えて、さまざまな他の周辺装置が、コンピュータプラットフォーム、例えば追加データ記憶機構ユニット、および印刷ユニットに接続されてもよい。
【0087】
添付の図面において表されるいくつかの構成部分のシステムコンポーネント、および方法はソフトウェアで好ましくはインプリメントされるため、システムコンポーネントまたは方法機能ブロックとの実際の結合は、本願発明がプログラムされる方式によって、異なってもよいことが、更に理解されるべきである。本願明細書における教示を与えられて、関連する技術の当業者は、これら、および類似した実装または本願発明の構成を考察することが可能である。
【0088】
例示の実施例が添付の図面に即して本願明細書において記載されているが、本願発明は、それらの正確な実施例に限られない。そして、そのさまざまな変形例、および変更態様は本願発明の範囲または精神から逸脱することなく、関連する技術の当業者によって遂行されてもよい。全てのこの種の改変と変更態様は、請求項に記載したように本願発明の範囲内に含まれる。