(57)【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
コーディングユニット（ＣＵ）の予測ユニット（ＰＵ）用の、複数のフラグを備える第１のシンタックス要素グループと、第２のシンタックス要素グループとを含むエントロピー符号化ビットストリームを受信することと、ここにおいて、前記第２のシンタックス要素グループのシンタックス要素は、前記第１のシンタックス要素グループのそれぞれのシンタックス要素に対応し、前記第１のシンタックス要素グループの前記複数のフラグのうちのあるフラグは、前記ＣＵ中のそれぞれのＰＵのルーマサンプルのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す、
前記第２のシンタックス要素グループの任意のシンタックス要素を復号する前に、前記第１のシンタックス要素グループのシンタックス要素すべてをコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）復号することと、
前記第１のシンタックス要素グループのシンタックス要素すべてをＣＡＢＡＣ復号した後に、前記第２のシンタックス要素グループをバイパス復号することと、ここにおいて、前記第２のシンタックス要素グループは、
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデックスに基づくことを示す場合に、前記最確モードリストへの前記インデックスを示す第１のシンタックス要素、および
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデックスに基づかないことを示す場合に、前記それぞれのＰＵの前記ルーマサンプルの前記イントラ予測モードを示す第２のシンタックス要素
のうちの１つを備え、
前記復号された第１のシンタックス要素グループおよび前記復号された第２のシンタックス要素グループに基づいて前記ビデオデータを再構成することと
を備える方法。
【請求項２】
前記第１のシンタックス要素グループの前記ＣＡＢＡＣ復号とは別に、クロマイントラ予測モードを示すために使われる第１のビンのセットをＣＡＢＡＣ復号することと、
前記第２のシンタックス要素グループの前記バイパス復号とは別に、前記クロマイントラ予測モードを示すために使われる第２のビンのセットをバイパス復号することと
をさらに備える、請求項１に記載の方法。
【請求項３】
受信することは、前記ＣＵの前記ＰＵ用の前記第２のシンタックス要素グループの任意のシンタックス要素を受信する前に、前記ＣＵの前記ＰＵ用の前記第１のシンタックス要素グループのシンタックス要素すべてを受信することを備える、請求項１に記載の方法。
【請求項４】
再構成することは、前記第１のシンタックス要素グループおよび前記第２のシンタックス要素グループに基づいて前記ＣＵの前記ＰＵをイントラ予測復号することを備える、請求項１に記載の方法。
【請求項５】
ビデオデータを符号化する方法であって、
複数のフラグを備える第１のシンタックス要素グループを生成することと、ここにおいて、前記第１のシンタックス要素グループの前記複数のフラグのうちのあるフラグは、コーディングユニット（ＣＵ）中のそれぞれの予測ユニット（ＰＵ）のルーマサンプルのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す、
第２のシンタックス要素グループを生成することと、ここにおいて、前記第２のシンタックス要素グループのシンタックス要素は、前記第１のシンタックス要素グループのそれぞれのシンタックス要素に対応し、ここにおいて、前記第２のシンタックス要素グループは、
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデックスに基づくことを示す場合に、前記最確モードリストへの前記インデックスを示す第１のシンタックス要素、および
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデックスに基づかないことを示す場合に、前記それぞれのＰＵの前記ルーマサンプルの前記イントラ予測モードを示す第２のシンタックス要素
のうちの１つを備え、
前記第２のシンタックス要素グループの任意のシンタックス要素を符号化する前に、前記第１のシンタックス要素グループのシンタックス要素すべてをコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）符号化することと、
前記第１のシンタックス要素グループのシンタックス要素すべてをＣＡＢＡＣ符号化した後に、前記第２のシンタックス要素グループをバイパス符号化することと、
前記符号化された第１のシンタックス要素グループと前記符号化された第２のシンタックス要素グループとを含む前記ビデオデータを出力することと
を備える方法。
【請求項６】
前記第１のシンタックス要素グループの前記ＣＡＢＡＣ符号化とは別に、クロマイントラ予測モードを示すために使われる第１のビンのセットをＣＡＢＡＣ符号化することと、
前記第２のシンタックス要素グループの前記バイパス符号化とは別に、前記クロマイントラ予測モードを示すために使われる第２のビンのセットをバイパス符号化することと
をさらに備える、請求項５に記載の方法。
【請求項７】
出力することは、前記第２のシンタックス要素グループの任意のシンタックス要素を出力する前に、前記符号化された第１のシンタックス要素グループのシンタックス要素すべてを含む前記ビデオデータを出力することを備える、請求項５に記載の方法。
【請求項８】
前記第１のシンタックス要素グループおよび前記第２のシンタックス要素グループに基づいて前記ＣＵの前記ＰＵをイントラ予測符号化することをさらに備える、請求項５に記載の方法。
【請求項９】
前記最確モードリストは、１つまたは複数の隣接ＰＵの１つまたは複数のイントラ予測モードを識別する、請求項１または請求項５に記載の方法。
【請求項１０】
前記第１のシンタックス要素グループは、４つのフラグを含み、前記４つのフラグの各々は、前記ＣＵのＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造のそれぞれのＰＵに関連付けられる、請求項１または請求項５に記載の方法。
【請求項１１】
実行されたとき、デバイスの１つまたは複数のプロセッサに、請求項１〜１０のいずれか一項に記載の方法を行わせる命令が記憶されたコンピュータ可読記憶媒体。
【請求項１２】
ビデオデータを復号するための装置であって、
コーディングユニット（ＣＵ）の予測ユニット（ＰＵ）用の、複数のフラグを備える第１のシンタックス要素グループと、第２のシンタックス要素グループとを含むエントロピー符号化ビットストリームを受信するための手段と、ここにおいて、前記第２のシンタックス要素グループのシンタックス要素は、前記第１のシンタックス要素グループのそれぞれのシンタックス要素に対応し、前記第１のシンタックス要素グループの前記複数のフラグのうちのあるフラグは、前記ＣＵ中のそれぞれのＰＵのルーマサンプルのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す、
前記第２のシンタックス要素グループの任意のシンタックス要素を復号する前に、前記第１のシンタックス要素グループのシンタックス要素すべてをコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）復号するための手段と、
前記第１のシンタックス要素グループのシンタックス要素すべてをＣＡＢＡＣ復号した後に、前記第２のシンタックス要素グループをバイパス復号するための手段と、ここにおいて、前記第２のシンタックス要素グループは、
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデックスに基づくことを示す場合に、前記最確モードリストへの前記インデックスを示す第１のシンタックス要素、および
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデックスに基づかないことを示す場合に、前記それぞれのＰＵの前記ルーマサンプルの前記イントラ予測モードを示す第２のシンタックス要素
のうちの１つを備え、
復号された第１のシンタックス要素グループおよび前記復号された第２のシンタックス要素グループに基づいて前記ビデオデータを再構成するための手段と
を備える装置。
【請求項１３】
ビデオデータを符号化するための装置であって、
複数のフラグを備える第１のシンタックス要素グループを生成するための手段と、ここにおいて、前記第１のシンタックス要素グループの前記複数のフラグのうちのあるフラグは、コーディングユニット（ＣＵ）中のそれぞれの予測ユニット（ＰＵ）のルーマサンプルのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す、
第２のシンタックス要素グループを生成するための手段と、ここにおいて、前記第２のシンタックス要素グループのシンタックス要素は、前記第１のシンタックス要素グループのそれぞれのシンタックス要素に対応し、ここにおいて、前記第２のシンタックス要素グループは、
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデックスに基づくことを示す場合に、前記最確モードリストへの前記インデックスを示す第１のシンタックス要素、および
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデックスに基づかないことを示す場合に、前記それぞれのＰＵの前記ルーマサンプルの前記イントラ予測モードを示す第２のシンタックス要素
のうちの１つを備え、
前記第２のシンタックス要素グループの任意のシンタックス要素を符号化する前に、前記第１のシンタックス要素グループのシンタックス要素すべてをコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）符号化するための手段と、
前記第１のシンタックス要素グループのシンタックス要素すべてをＣＡＢＡＣ符号化した後に、前記第２のシンタックス要素グループをバイパス符号化するための手段と、
前記符号化された第１のシンタックス要素グループと前記符号化された第２のシンタックス要素グループとを含む前記ビデオデータを出力するための手段と
を備える装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
[0001]本出願は、その全体が参照により本明細書に組み込まれる、
２０１２年４月１１日に出願された米国仮出願第６１／６２３，００４号、および
２０１２年４月２７日に出願された米国仮出願第６１／６３９，８３６号の利益を主張する。
【０００２】
[0002]本開示は、ビデオコーディングに関し、より詳細には、ビデオコーディングにおけるシンタックス要素をコーディングするための技法に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマート」フォン、タブレットコンピュータ、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。ビデオコーディング規格には、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２またはＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、ならびに、そのスケーラブルビデオコーディング（ＳＶＣ）およびマルチビュービデオコーディング（ＭＶＣ）の拡張を含む（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとしても知られている）ＩＴＵ−Ｔ  Ｈ．２６４が含まれる。加えて、高効率ビデオコーディング（ＨＥＶＣ）は、ＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）とＩＳＯ／ＩＥＣ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とのＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって開発されているビデオコーディング規格である。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を実行する。ブロックベースの予測ビデオコーディングでは、ビデオフレームまたはビデオフレームのスライスはビデオブロックに区分され得、これらのビデオブロックは、マクロブロックまたはコーディングユニットと呼ばれることがある。各ビデオブロックはさらに区分され得る。イントラコーディングされた（Ｉ）フレームまたはスライス中のビデオブロックは、隣接ビデオブロックに対する空間的予測を使用して符号化される。インターコーディングされた（ＰまたはＢ）フレームまたはスライス中のビデオブロックは、同じフレームまたはスライス中の隣接ビデオブロックに対する空間的予測、あるいは他の参照フレームに対する時間的予測を使用し得る。
【０００５】
[0005]インターコーディングされたブロックは、予測ブロックを形成するために使用される参照サンプルのグループを示す動きベクトルを使用してコーディングされ得る。イントラコーディングされたブロックは、予測ブロックを形成するために使用される参照サンプルのブロックを示すイントラモードを使用してコーディングされ得る。ビデオブロックと予測ブロックとの間の差分は、残差データと呼ばれる場合がある。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらすことができ、その残差変換係数は、次いで量子化され得る。さらに、量子化変換係数および予測情報がさらなる圧縮のためにエントロピーコーディングされ得る。
【発明の概要】
【０００６】
[0006]概して、本開示は、予測ビデオコーディングのためのシンタックス要素を配列するための様々な技法について説明する。これらの技法は、エントロピーコーディングスループットに影響を与え得るパイプラインオーバーヘッドを低減することができる。一例では、シンタックス要素がＣＡＢＡＣ（コンテキスト適応型バイナリ算術コーディング（Context Adaptive Binary Arithmetic Coding）コーディングされるか、またはバイパスコーディングされる順序が最適化され得る。バイパスコーディングは、適応型コンテキストを使用しないビンの算術コーディングを指し得る。一例では、コーディングユニット（ＣＵ）内の予測ユニット（ＰＵ）のイントラ予測モードを示すシンタックス要素が、それらがバイパスコーディングされるべきか、それともＣＡＢＡＣコーディングされるべきかに基づいて一緒にグループ化され得る。このグループ化は、シンタックス要素をエントロピーコーディングするのに必要なサイクルの総数を減らすことができる。
【０００７】
[0007]一例では、本開示は、ビデオデータを復号する方法について説明し、本方法は、コーディングユニット（ＣＵ）の予測ユニット（ＰＵ）用の第１のシンタックス要素グループと第２のシンタックス要素グループとを含むエントロピー符号化ビットストリームを受信することと、ここにおいて、第２のシンタックス要素グループのシンタックス要素は、第１のシンタックス要素グループのそれぞれのシンタックス要素に対応し、第１のシンタックス要素グループのシンタックス要素は、ＣＵ中のそれぞれのＰＵのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す、第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）復号することと、第１のシンタックス要素グループをＣＡＢＡＣ復号した後に、第２のシンタックス要素グループをバイパス復号することと、復号された第１のシンタックス要素グループおよび復号された第２のシンタックス要素グループに基づいてビデオデータを再構成することとを備える。
【０００８】
[0008]別の例では、本開示は、ビデオデータを復号するための装置について説明し、本装置は、コーディングユニット（ＣＵ）の予測ユニット（ＰＵ）用の第１のシンタックス要素グループと第２のシンタックス要素グループとを含むエントロピー符号化ビットストリームを受信することと、ここにおいて、第２のシンタックス要素グループのシンタックス要素は、第１のシンタックス要素グループのそれぞれのシンタックス要素に対応し、第１のシンタックス要素グループのシンタックス要素は、ＣＵ中のそれぞれのＰＵのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す、第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）復号することと、第１のシンタックス要素グループをＣＡＢＡＣ復号した後に、第２のシンタックス要素グループをバイパス復号することと、復号された第１のシンタックス要素グループおよび復号された第２のシンタックス要素グループに基づいてビデオデータを再構成することとを行うように構成されたビデオデコーダを備える。
【０００９】
[0009]別の例では、本開示は、実行されたとき、ビデオデータを復号するためのデバイスの１つまたは複数のプロセッサに、コーディングユニット（ＣＵ）の予測ユニット（ＰＵ）用の第１のシンタックス要素グループと第２のシンタックス要素グループとを含むエントロピー符号化ビットストリームを受信することと、ここにおいて、第２のシンタックス要素グループのシンタックス要素は、第１のシンタックス要素グループのそれぞれのシンタックス要素に対応し、第１のシンタックス要素グループのシンタックス要素は、ＣＵ中のそれぞれのＰＵのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す、第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）復号することと、第１のシンタックス要素グループをＣＡＢＡＣ復号した後に、第２のシンタックス要素グループをバイパス復号することと、復号された第１のシンタックス要素グループおよび復号された第２のシンタックス要素グループに基づいてビデオデータを再構成することとを行わせる命令が記憶されたコンピュータ可読記憶媒体について説明する。
【００１０】
[0010]別の例では、本開示は、ビデオデータを復号するための装置について説明し、本装置は、コーディングユニット（ＣＵ）の予測ユニット（ＰＵ）用の第１のシンタックス要素グループと第２のシンタックス要素グループとを含むエントロピー符号化ビットストリームを受信するための手段と、ここにおいて、第２のシンタックス要素グループのシンタックス要素は、第１のシンタックス要素グループのそれぞれのシンタックス要素に対応し、第１のシンタックス要素グループのシンタックス要素は、ＣＵ中のそれぞれのＰＵのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す、第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）復号するための手段と、第１のシンタックス要素グループをＣＡＢＡＣ復号した後に、第２のシンタックス要素グループをバイパス復号するための手段と、復号された第１のシンタックス要素グループおよび復号された第２のシンタックス要素グループに基づいてビデオデータを再構成するための手段とを備える。
【００１１】
[0011]別の例では、本開示は、ビデオデータを符号化する方法について説明し、本方法は、第１のシンタックス要素グループを生成することと、ここにおいて、第１のシンタックス要素グループのシンタックス要素は、コーディングユニット（ＣＵ）中のそれぞれの予測ユニット（ＰＵ）のイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す、第２のシンタックス要素グループを生成することと、ここにおいて、第２のシンタックス要素グループのシンタックス要素は、第１のシンタックス要素グループのそれぞれのシンタックス要素に対応する、第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）符号化することと、第１のシンタックス要素グループをＣＡＢＡＣ符号化した後に、第２のシンタックス要素グループをバイパス符号化することと、符号化された第１のシンタックス要素グループと符号化された第２のシンタックス要素グループとを含むビデオデータを出力することとを備える。
【００１２】
[0012]別の例では、本開示は、ビデオデータを符号化するための装置について説明し、本装置は、第１のシンタックス要素グループを生成することと、ここにおいて、第１のシンタックス要素グループのシンタックス要素は、コーディングユニット（ＣＵ）中のそれぞれの予測ユニット（ＰＵ）のイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す、第２のシンタックス要素グループを生成することと、ここにおいて、第２のシンタックス要素グループのシンタックス要素は、第１のシンタックス要素グループのそれぞれのシンタックス要素に対応する、第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）符号化することと、第１のシンタックス要素グループをＣＡＢＡＣ符号化した後に、第２のシンタックス要素グループをバイパス符号化することと、符号化された第１のシンタックス要素グループと符号化された第２のシンタックス要素グループとを含むビデオデータを出力することとを行うように構成されたビデオエンコーダを備える。
【００１３】
[0013]別の例では、本開示は、実行されたとき、ビデオデータを符号化するためのデバイスの１つまたは複数のプロセッサに、第１のシンタックス要素グループを生成することと、ここにおいて、第１のシンタックス要素グループのシンタックス要素は、コーディングユニット（ＣＵ）中のそれぞれの予測ユニット（ＰＵ）のイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す、第２のシンタックス要素グループを生成することと、ここにおいて、第２のシンタックス要素グループのシンタックス要素は、第１のシンタックス要素グループのそれぞれのシンタックス要素に対応する、第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）符号化することと、第１のシンタックス要素グループをＣＡＢＡＣ符号化した後に、第２のシンタックス要素グループをバイパス符号化することと、符号化された第１のシンタックス要素グループと符号化された第２のシンタックス要素グループとを含むビデオデータを出力することとを行わせる命令が記憶されたコンピュータ可読記憶媒体について説明する。
【００１４】
[0014]別の例では、本開示は、ビデオデータを符号化するための装置について説明し、本装置は、第１のシンタックス要素グループを生成するための手段と、ここにおいて、第１のシンタックス要素グループのシンタックス要素は、コーディングユニット（ＣＵ）中のそれぞれの予測ユニット（ＰＵ）のイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す、第２のシンタックス要素グループを生成するための手段と、ここにおいて、第２のシンタックス要素グループのシンタックス要素は、第１のシンタックス要素グループのそれぞれのシンタックス要素に対応する、第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）符号化するための手段と、第１のシンタックス要素グループをＣＡＢＡＣ符号化した後に、第２のシンタックス要素グループをバイパス符号化するための手段と、符号化された第１のシンタックス要素グループと符号化された第２のシンタックス要素グループとを含むビデオデータを出力するための手段とを備える。
【００１５】
[0015]１つまたは複数の例の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１６】
【図１】[0016]予測ユニット構造および関連するイントラ予測コーディングモードの例を示す概念図。
【図２】[0017]本開示による技法を利用するように構成され得る例示的なビデオ符号化および復号システムを示すブロック図。
【図３】[0018]本開示による予測シンタックス要素をコーディングするための技法を実装し得るビデオエンコーダの一例を示すブロック図。
【図４】[0019]本開示による予測シンタックス要素をエントロピー符号化するための技法を実装し得るエントロピーエンコーダの一例を示すブロック図。
【図５】[0020]本開示の技法による予測シンタックス要素を符号化することを示すフローチャート。
【図６】[0021]本開示による予測シンタックス要素を含む符号化ビデオシーケンスを復号するための技法を実装し得るビデオデコーダの一例を示すブロック図。
【図７】[0022]本開示による予測シンタックス要素をエントロピー復号するための技法を実装し得るエントロピーデコーダの一例を示すブロック図。
【図８】[0023]本開示の技法による予測シンタックス要素を復号することを示すフローチャート。
【発明を実施するための形態】
【００１７】
[0024]１つまたは複数の予測ユニットに関するイントラ予測モードを示し得るシンタックス要素など、シンタックス要素グループ内の予測シンタックス要素は、正規のコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）コーディングされるか、またはバイパスコーディングされ得る。これらの予測シンタックス要素がＣＡＢＡＣコーダによって受信される順序は、シンタックス要素グループをエントロピーコーディングするのに必要な処理サイクルの総数に影響を与え得る。これは、バイパスコーディングとＣＡＢＡＣコーディングとの間のコーディング移行に伴いＣＡＢＡＣコーディングエンジンを再スタートさせるのに必要なセットアップオーバーヘッドに起因し得る。本開示で説明する技法では、これらのシンタックス要素は、シンタックス要素グループをエントロピーコーディングするのに必要な処理サイクルの総数が減るような方法で配列され得る。
【００１８】
[0025]たとえば、いくつかの他の技法では、イントラ予測の場合、ビデオエンコーダは、ルーマサンプルのイントラ予測モードを明示するシンタックス要素を通知し、クロマサンプルに関するシンタックス要素を通知する。ルーマサンプルに関するシンタックス要素およびクロマサンプルに関するシンタックス要素には、ＣＡＢＡＣコーディングされるものもあれば、バイパスコーディングされるものもある。場合によっては、ＣＡＢＡＣコーディングされたシンタックス要素とバイパスコーディングされたシンタックス要素とはインターリーブされ、パイプラインオーバーヘッドのために最適下限のエントロピーコーディングスループットが生じる。
【００１９】
[0026]たとえば、バイパスモードは通常、ＣＡＢＡＣモードよりもはるかに高いスループットを有する。一例として、バイパスモードが、サイクルあたり１ビンを処理するバイパスモードよりも著しく複雑になることなく、１サイクルに６ビンを処理することができる一方、ＣＡＢＡＣモードは、サイクルあたり１ビンを処理するＣＡＢＡＣモードよりもはるかに複雑な設計でも、サイクルあたり２ビンを処理できるにとどまる。これは、ＣＡＢＡＣモードにおけるコンテキスト切替えの性質に起因する。
【００２０】
[0027]エントロピーコーディングスループットを増大させるために、ＣＡＢＡＣコーディングされたシンタックス要素を一緒にグループ化し、バイパスコーディングされたシンタックス要素を一緒にグループ化するのが有益であり得る。一例として、ＣＡＢＡＣコーディングされたシンタックス要素とバイパスコーディングされたシンタックス要素とは一緒にインターリーブされない。より詳細に説明するように、本開示で説明する技法は、エントロピーコーディングスループットを増大させる可能性を有する、ＣＡＢＡＣコーディングされたシンタックス要素を一緒にグループ化し、バイパスコーディングされたシンタックス要素を一緒にグループ化する様々な例示的な技法を提供する。
【００２１】
[0028]一例として、ルーマイントラモードおよびクロマイントラモードのＣＡＢＡＣコーディングされたビンすべてを一緒に、またルーマイントラモードおよびクロマイントラモードのバイパスコーディングされたビンすべてを一緒に、ビデオエンコーダが符号化し、コーディングされたビットストリームにおいて通知し、ビデオデコーダがコーディングされたビットストリームから受信し、復号する。別の例として、コーディングユニットにおけるすべてのブロックに関するイントラモードのＣＡＢＡＣコーディングされたビンすべてを、またイントラモードのバイパスコーディングされたビンすべてを一緒に、ビデオエンコーダが符号化し、コーディングされたビットストリームにおいて通知し、ビデオデコーダがコーディングされたビットストリームから受信し、復号する。別の例として、コーディングユニットにおけるすべてのブロックに関するルーマイントラモードとクロマイントラモードの両方のＣＡＢＡＣコーディングされたビンすべてを、またルーマイントラモードおよびクロマイントラモードのバイパスコーディングされたビンすべてを一緒に、ビデオエンコーダが符号化し、コーディングされたビットストリームにおいて通知し、ビデオデコーダがコーディングされたビットストリームから受信し、復号する。場合によっては、ビデオデコーダでは、部分的な復号されたシンタックスを記憶するために何らかの追加メモリが必要となる。
【００２２】
[0029]デジタルビデオデバイスは、デジタルビデオ情報をより効率的に符号化および復号するためのビデオ圧縮技法を実装する。ビデオ圧縮技法はビデオコーディング規格に従って定義され得る。ＨＥＶＣの規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスのモデルに基づく。ＨＭは、他の以前のビデオコーディング規格、たとえばＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣの開発中に利用可能なビデオコーディングデバイスに対して、現在のビデオコーディングデバイスの能力が向上していると仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＥＶＣは３５個ものイントラ予測符号化モードを提供する。「ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ６」または「ＷＤ６」と呼ばれる、ＨＥＶＣの最近のワーキングドラフト（ＷＤ）が、文書ＪＣＴＶＣ−Ｈ１００３、Ｂｒｏｓｓら、「ＷＤ６：Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ６  ｏｆ  Ｈｉｇｈ−Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）、第８回会合：サンノゼ、カリフォルニア州、米国、２０１１年２月に記載されている。
【００２３】
[0030]さらに、ＨＥＶＣの別の最近のワーキングドラフト、ワーキングドラフト８が、文書ＨＣＴＶＣ−Ｊ１００３＿ｄ７、Ｂｒｏｓｓら、「Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）  Ｔｅｘｔ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｄｒａｆｔ  ８」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３とＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１とのＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）、第１０回会合：ストックホルム、スウェーデン、２０１２年７月に記載されている。ＨＥＶＣのより最近のワーキングドラフト、ワーキングドラフト９が、２０１３年３月６日現在、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１１＿Ｓｈａｎｇｈａｉ／ｗｇ１１／ＪＣＴＶＣ−Ｋ１００３−ｖ１０．ｚｉｐから入手可能である。ＨＥＶＣ規格は、ＨＥＶＣの配信バージョン用の規格番号であることを意図した、ＩＳＯ／ＩＥＣ  ２３００８−ＨＥＶＣと呼ばれる場合もある。本開示の技法は、ＩＴＵ−Ｔ  Ｈ．２６４規格およびＨＥＶＣ規格に関して説明されるが、本開示の技法は、概して、任意のビデオコーディング規格に適用可能である。
【００２４】
[0031]ビデオシーケンスは、一般に、ピクチャとも呼ばれる一連のビデオフレームを含む。ピクチャグループ（ＧＯＰ）は、概して、一連の１つまたは複数のビデオフレームを備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのフレームを記述するシンタックスデータを、ＧＯＰのヘッダ中、ＧＯＰの１つもしくは複数のフレームのヘッダ中、または他の場所に含み得る。各フレームは、それぞれのフレームの符号化モードを記述するフレームシンタックスデータを含み得る。各ビデオフレームは複数のスライスを含み得る。各スライスは複数のビデオブロックを含み得る。ビデオエンコーダは通常、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロック上で動作する。ビデオブロックは、サイズを固定することも変更することもでき、指定のコーディング規格に応じてサイズが異なることがある。
【００２５】
[0032]一例として、ＩＴＵ−Ｔ  Ｈ．２６４規格は、ルーマ成分については１６×１６、８×８、または４×４、およびクロマ成分については８×８など、様々なブロックサイズのイントラ予測をサポートし、ならびにルーマ成分については１６×１６、１６×８、８×１６、８×８、８×４、４×８および４×４、およびクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。本開示では、「ＮｘＮ」と「Ｎ  ｂｙ  Ｎ」は、垂直寸法および水平寸法に関するブロックのピクセル寸法、たとえば、１６ｘ１６ピクセルまたは１６  ｂｙ  １６ピクセルを指すために互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。ピクセルはサンプルと呼ばれる場合もある。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、ここでＮは非負整数値を表す。ブロック中のピクセルは行および列で配列され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはＮ×Ｍピクセルを備えてよく、この場合に、Ｍは必ずしもＮに等しいとは限らない。
【００２６】
[0033]ビデオブロックは、ピクセル領域におけるピクセルデータのブロック、または変換領域における変換係数のブロックを備え得る。コーディングされたビデオブロックと予測ビデオブロックとの間のピクセル差分を表す残差ビデオブロックデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後に、変換係数が生成され得る。場合によっては、ビデオブロックは、変換領域中の量子化変換係数のブロックを備え得る。
【００２７】
[0034]より小さいビデオブロックは、より良い解像度をもたらすことができ、高い詳細レベルを含むビデオフレームの位置決めに使用され得る。概して、ブロック、およびサブブロックと呼ばれることがある様々なパーティションは、ビデオブロックと見なされ得る。さらに、スライスは、ブロックおよび／またはサブブロックのような、複数のビデオブロックであると見なされ得る。各スライスは、ビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が復号可能なユニットであってよく、またはフレームの他の部分が復号可能なユニットとして定義され得る。「コーディングされたユニット」という用語は、フレーム全体またはフレームのスライス、シーケンスとも呼ばれるピクチャグループ（ＧＯＰ）など、ビデオフレームの任意の単独で復号可能なユニット、または適用可能なコーディング技法に従って定義される別の単独で復号可能なユニットを指すことがある。
【００２８】
[0035]予測データと残差データとを生成するためのイントラ予測コーディングまたはインター予測コーディングの後に、かつ変換係数を生成するための（Ｈ．２６４／ＡＶＣにおいて使用される４×４または８×８整数変換、あるいは離散コサイン変換ＤＣＴなどの）任意の変換の後に、変換係数の量子化が実行され得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化されるプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減することができる。たとえば、量子化中にｎビット値がｍビット値に切り捨てられ得、この場合、ｎはｍよりも大きい。
【００２９】
[0036]量子化の後に、たとえば、コンテンツ適応型可変長コーディング（ＣＡＶＬＣ：content adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、確率間隔区分エントロピーコーディング（ＰＩＰＥ：probability interval partitioning entropy）、または別のエントロピーコーディング方法に従って、量子化データのエントロピーコーディングが実行され得る。予測モードを定義するシンタックス要素などのシンタックス要素のエントロピーコーディングも実行され得る。エントロピーコーディング用に構成された処理ユニットまたは別の処理ユニットは、量子化係数のゼロランレングスコーディング、および／またはコーディングされたブロックパターン（ＣＢＰ）値、マクロブロックタイプ、コーディングモード、（フレーム、スライス、マクロブロック、またはシーケンスなどの）コーディングされたユニットの最大マクロブロックサイズなどのシンタックス情報の生成など、他の処理機能を実行し得る。
【００３０】
[0037]ＨＥＶＣは、ビデオデータのブロックをコーディングユニット（ＣＵ）と称する。概して、本開示の技法は、ＣＵのデータを変換し、量子化し、走査し、エントロピー符号化することに関する。ＣＵは、１つもしくは複数の予測ユニット（ＰＵ）および／または１つもしくは複数の変換ユニット（ＴＵ）を含むことができる。ＰＵは「予測パーティション」と呼ばれることもある。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大のコーディングユニットである最大コーディングユニット（ＬＣＵ）を定義し得る。概して、ＬＣＵはＨ．２６４のマクロブロックと同様の目的を有する。しかしながら、ＬＣＵは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のＣＵを含み得る。ＬＣＵは通常、６４×６４ピクセルを含む。ＬＣＵ内のＣＵは通常、３２×３２ピクセル、１６×１６ピクセル、または８×８ピクセルを含む。したがって、ＬＣＵはサブＣＵに分割され得、各サブＣＵはさらにサブＣＵに分割され得る。ＣＵ中の各ピクセルは、ルーマ（Ｙ）成分と、クロマＵ（Ｕ）成分と、クロマＶ（Ｖ）成分とを含むことができる。いくつかの例では、クロマ成分はＣr成分およびＣb成分と呼ばれ得る。一般に、本開示におけるＣＵへの言及は、ピクチャの最大コーディングユニット（ＬＣＵ）またはＬＣＵのサブＣＵを指し得る。ビットストリームのシンタックスデータは、ＣＵ深度と呼ばれる、ＬＣＵが分割され得る最大回数を定義し得る。それに応じて、シンタックスデータは最小コーディングユニット（ＳＣＵ）をも定義し得る。本開示は、ＣＵ、ＰＵ、またはＴＵのいずれかを指すのに、「ブロック」という用語をも使用する。
【００３１】
[0038]ＬＣＵは、４分木データ構造に関連付けられ得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはＬＣＵに対応する。ＣＵが４つのサブＣＵに分割された場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを提供し得る。たとえば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。ＣＵがこれ以上分割されない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的分割が存在しなくても、リーフＣＵの４つのサブＣＵをリーフＣＵとも呼ぶ。たとえば、１６×１６サイズのＣＵがさらに分割されない場合、この１６×１６ＣＵが決して分割されなくても、４つの８×８サブＣＵをリーフＣＵとも呼ぶ。
【００３２】
[0039]その上、リーフＣＵのＴＵもそれぞれの４分木データ構造に関連付けられ得る。すなわち、リーフＣＵは、リーフＣＵがどのようにＴＵに区分されるかを示す４分木を含み得る。本開示では、ＬＣＵがどのように区分されるかを示す４分木をＣＵ４分木と呼び、リーフＣＵがどのようにＴＵに区分されるかを示す４分木をＴＵ４分木と呼ぶ。ＴＵ４分木のルートノードは概してリーフＣＵに対応し、ＣＵ４分木のルートノードは概してＬＣＵに対応する。分割されないＴＵ４分木のＴＵはリーフＴＵと呼ばれる。
【００３３】
[0040]リーフＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部を表し、そのＰＵ用の参照サンプルを取り出すためのデータを含むことができる。たとえば、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵ用の動きベクトルを定義するデータを含むことができる。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度または１／８ピクセル精度）、動きベクトルに関する参照ピクチャリスト（たとえば、リスト０またはリスト１）を識別する予測方向、および／または動きベクトルが指す参照ピクチャリスト内の参照フレームを示す参照ピクチャインデックス値を記述し得る。同様に、ＣＵがイントラ予測モードでコーディングされるとき、ＰＵは、イントラ予測モード（たとえば、角度予測、ＤＣ予測、または平面予測、．．．、など）を定義するデータを含むことができる。
【００３４】
[0041]（１つまたは複数の）ＰＵを定義するリーフＣＵ用のデータはまた、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述することができる。１つまたは複数のＰＵへのＣＵの区分は、区分モードと呼ばれ得る。ＣＵについて利用可能な区分モードは、ＣＵがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかに応じて異なり得る。イントラコーディングの場合、ＰＵは、以下で説明するリーフ変換ユニットと同じように扱われ得る。
【００３５】
[0042]リーフＣＵは、１つまたは複数の変換ユニット（ＴＵ）を含み得る。概して、本開示では、特に明記しない限り、リーフＣＵおよびリーフＴＵに言及するためにそれぞれＣＵおよびＴＵという用語を使用する。変換ユニットは、上記で説明したように、ＴＵ４分木構造を使用して指定され得る。すなわち、分割フラグは、リーフＣＵが４つの変換ユニットに分割されるかどうかを示し得る。次いで、各変換ユニットはさらに４つのサブＴＵに分割され得る。ＴＵがさらに分割されないとき、そのＴＵはリーフＴＵと呼ばれることがある。概して、分割フラグは、リーフＴＵが正方形ＴＵに分割されることを示し得る。ＴＵが非正方形ＴＵに分割されることを示すために、他のシンタックスデータ、たとえば、ＮＳＱＴに従ってＴＵが区分されるべきであることを示すシンタックスデータが含まれ得る。
【００３６】
[0043]概して、イントラコーディングの場合、リーフＣＵに属するリーフＴＵのすべてが、同じイントラ予測モードを共有し得る。すなわち、リーフＣＵのすべてのＴＵの予測値を計算するために同じイントラ予測モードが適用され得る。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフＴＵの残差値を、ＴＵに対応する予測値の一部と元のブロックとの間の差分として計算し得る。上述のように、残差値は変換され、量子化され、走査され得る。インターコーディングの場合、ビデオエンコーダは、ＰＵレベルで予測を実行し、各ＰＵの残差を計算し得る。リーフＣＵに対応する残差値は変換され、量子化され、走査され得る。インターコーディングの場合、リーフＴＵはＰＵよりも大きくまたは小さくなり得る。イントラコーディングの場合、ＰＵは、対応するリーフＴＵとコロケートされ得る。いくつかの例では、リーフＴＵの最大のサイズは、対応するリーフＣＵのサイズであり得る。
【００３７】
[0044]ＨＥＶＣでは、ＣＵ用の予測ブロックを生成するために使用されるイントラ予測モードの数は、ＰＵ構造によって決定される。ＩＮＴＲＡ＿２Ｎ×２ＮのＰＵ構造は、ＣＵが１つのＰＵのみを含むことを示す。ＩＮＴＲＡ＿Ｎ×ＮのＰＵ構造は、ＣＵが４つのＰＵを含むことを示す。さらに、ＣＵ内の各ＰＵは、１つのルーマイントラ予測モードを有することができ、ＣＵ内のＰＵは、１つのクロマ予測モードを共有することができる。たとえば、ＩＮＴＲＡ＿２Ｎ×２Ｎ  ＰＵ構造を有するＣＵは、１つのルーマイントラ予測モードと１つのクロマイントラ予測モードとを有することができる。さらに、ＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造を有するＣＵは、４つのルーマイントラ予測モード（すなわち、各ＰＵに１つ）とＣＵ全体のための１つのクロマイントラ予測モード（すなわち、４つのＰＵがクロマ予測モードを共有する）とを有することができる。イントラ予測モードを通知するためにシンタックス要素が生成され得る。
【００３８】
[0045]図１は、予測ユニット構造および関連するイントラ予測コーディングモードの例を示す概念図である。図１に示すように、ＩＮＴＲＡ＿２Ｎ×２Ｎ予測ユニット（ＰＵ）構造はただ１つのＰＵを含み、ＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造は４つのＰＵを含む。図１に示すように、ＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造は対称的であり、サイズが等しい４つの正方形のＰＵを含む。上述のように、図１に示す４つのＰＵの各々は、ルーマイントラ予測を有し、クロマイントラ予測を共有することができる。ＨＥＶＣはインターモード予測とともに使用する他のＰＵ構造を定義することに留意されたい。これらのＰＵの一部は、非対称であり、かつ／または長方形のＰＵを含む。本開示の技法はＩＮＴＲＡ＿２Ｎ×２Ｎ  ＰＵ構造およびＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造に関して説明されるが、技法は、概して、イントラ予測モードとともに使用され得る追加のＰＵ構造に適用可能である。たとえば、本開示の技法は、４つの長方形ＰＵからなるＰＵ構造がイントラ予測コーディングモードに関連付けられる場合に適用可能であり得る。
【００３９】
[0046]上述のように、イントラ予測モードを使用してＣＵがコーディングされるとき、イントラ予測モードを通知するためにシンタックス要素が使用され得る。いくつかの例では、ＰＵ用のルーマイントラ予測モードを通知するために３つのシンタックス要素が使用され、クロマイントラ予測モードを通知するために１つのシンタックス要素が使用される。シンタックス要素は表１に太字で示されている。
【表１】
0005940726.tif 000002
【００４０】
[0047]シンタックス要素ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ［ｘ０］［ｙ０］、ｍｐｍ＿ｉｄｘ［ｘ０］［ｙ０］およびｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ［ｘ０］［ｙ０］は、ルーマサンプル用のイントラ予測モードを明示している。アレイインデックスｘ０、ｙ０は、ピクチャの左上ルーマサンプルに対する予測ブロックの左上ルーマサンプルのロケーションを明示している。シンタックス要素ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ［ｘ０］［ｙ０］は、真または偽の条件を示し、１または０の値を有することができる。一例では、ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ［ｘ０］［ｙ０］が１に等しいとき、現在のＰＵ用のイントラ予測モードは、隣接するイントラ予測されたＰＵから推測される。
【００４１】
[0048]たとえば、表１に示すように、ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ［ｘ０］［ｙ０］が１に等しいとき、ｍｐｍ＿ｉｄｘ［ｘ０］［ｙ０］シンタックス要素を、ビデオエンコーダが符号化ビットストリームにおいて通知し、ビデオデコーダが符号化ビットストリームから受信する。ｍｐｍ＿ｉｄｘ［ｘ０］［ｙ０］は、最確モード（ｍｐｍ）リストへのインデックスである。たとえば、ビデオエンコーダおよびビデオデコーダはそれぞれ、最確モードリストを作成するように構成され得る。最確モードリストは、イントラ予測モードを識別する。
【００４２】
[0049]ビデオデコーダは、暗示的に（すなわち、最確モードリストにどのイントラ予測モードが含まれるべきかを示すビデオエンコーダからの通知を受信することなしに）最確モードリストを作成することができ、またはビデオエンコーダから受信された通知に基づいて最確モードリストを作成することができる。いずれの例でも、ビデオエンコーダ側における最確モードリストおよびビデオデコーダ側における最確モードリストは、同じイントラ予測モードを同じ順序で識別することができる。いくつかの例では、ビデオエンコーダおよびビデオデコーダは、ＣＵのイントラ予測されたＰＵごとに最確モードリストを作成することができ、ＣＵの２つ以上のＰＵ用の最確モードリストは異なり得る（すなわち、ＣＵのＰＵ用にそれぞれの最確モードリストがあり得る）。ただし、本開示で説明する技法は、そのように限定されない。
【００４３】
[0050]ビデオエンコーダおよびビデオデコーダが最確モードリストを作成し得る様々な方法があり得る。一例として、ビデオエンコーダおよびビデオデコーダは、最確モードリストに固定数のイントラ予測モードを識別する（すなわち、３つのイントラ予測モードを識別する）ように構成される。ビデオエンコーダおよびビデオデコーダは、現在のＰＵ（たとえば、イントラ予測されているＰＵ）に隣接する第１の隣接ＰＵおよび現在のＰＵに隣接する第２の隣接ＰＵのイントラ予測モードを評価する。第１および第２の隣接ＰＵの例には、左、左上、右、下、および概して任意の隣接ＰＵがある。
【００４４】
[0051]ビデオエンコーダおよびビデオデコーダは、最確モードリストに第１および第２の隣接ＰＵのイントラ予測モードを含める。第１および第２の隣接ＰＵの一方または両方がイントラ予測されない場合、ビデオエンコーダおよびビデオデコーダはＤＣイントラ予測モードを、一例として、最確モードリスト中に、第１および第２の隣接ＰＵ用の最確モードリスト内の対応するロケーションにおいて識別することができる。
【００４５】
[0052]イントラ予測モードリストにおける第３のイントラ予測モードを判断するにあたり、ビデオエンコーダおよびビデオデコーダは、第１および第２の隣接ＰＵ用のイントラ予測モードが同じであるかどうか（イントラ予測されない場合にＤＣイントラ予測モードが選択されたかどうかを含む）を判断することができる。第１および第２の隣接ＰＵ用のイントラ予測モードが同じである場合、ビデオエンコーダおよびビデオデコーダは、イントラ予測モードリストにおける第３のイントラ予測モードを識別するための第１の技法を実装することができる。いくつかの例では、第１および第２の隣接ＰＵ用のイントラ予測モードが同じである場合、ビデオエンコーダおよびビデオデコーダは、最確モードリストにおけるイントラ予測モードのうちの１つを識別し、第１の技法（または第１の技法ではない別の技法）を使用して、最確モードリストにおける第２および第３のイントラ予測モードを識別することができる。第１および第２の隣接ＰＵ用のイントラ予測モードが異なる場合、ビデオエンコーダおよびビデオデコーダは、第３のイントラ予測モードを識別するための第２の技法を実装することができる。
【００４６】
[0053]第３のイントラ予測モードを識別するための第１および第２の技法の様々な例があってよく、本開示で説明する技法はいずれか１つの特定の技法に限定されない。いくつかの例では、第１の技法または第２の技法のいずれかに基づく第３のイントラ予測モードは、必ずしも隣接ＰＵのイントラ予測モードである必要はない。いくつかの例では、第１の技法または第２の技法のいずれかに基づく第３のイントラ予測モードは、隣接ＰＵのイントラ予測モードに基づき得る。
【００４７】
[0054]ｍｐｍ＿ｉｄｘ［ｘ０］［ｙ０］は、ビデオエンコーダが通知し、ビデオデコーダが受信する最確モードリストへのインデックスである。この例では、ｍｐｍ＿ｉｄｘ［ｘ０］［ｙ０］値から、ビデオデコーダは現在のＰＵ用のイントラ予測モードを判断するように構成され得る。いくつかの例では、最確モードリストは隣接ＰＵ（たとえば、第１および第２の隣接ＰＵ）のイントラ予測モードに基づくので、ｍｐｍ＿ｉｄｘ［ｘ０］［ｙ０］シンタックス要素は、場合によっては、現在のＰＵ用のイントラ予測モードを推測するために使用されるべき特定の隣接ＰＵを識別するために使用され得る。たとえば、一例として、ｍｐｍ＿ｉｄｘ［ｘ０］［ｙ０］が、第１の隣接ＰＵに関連するイントラ予測モードを識別する最確モードリストへのインデックスである場合、ビデオデコーダは、第１の隣接ＰＵを、現在のＰＵのイントラ予測モードが推測されるべきＰＵとして識別すると見なされ得る。
【００４８】
[0055]たとえば、図１を参照すると、ＩＮＴＲＡ＿Ｎ×Ｎの例において、ＰＵ1用のイントラ予測モードがＰＵ0用のイントラ予測モードに等しいことがある。シンタックス要素ｍｐｍ＿ｉｄｘ［ｘ０］［ｙ０］は、現在のＰＵがイントラ予測モードを推測することができる、隣接するイントラ予測されたＰＵのセット内の隣接ＰＵを示すことができる。この例では、ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ［ｘ０］［ｙ０］が０に等しい場合、イントラ予測モードは隣接ＰＵから推測されず、シンタックス要素ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ［ｘ０］［ｙ０］によって示される。
【００４９】
[0056]ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ［ｘ０］［ｙ０］シンタックス要素は、現在のＰＵ用の特定のイントラ予測モードを明示し得る。いくつかの例では、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ［ｘ０］［ｙ０］シンタックス要素は、現在のＰＵ用のイントラ予測モードが、最確モードリストによって識別されたイントラ予測モードに含まれないことを明示し得る。たとえば、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ［ｘ０］［ｙ０］シンタックス要素は、最確モードリストで識別されたイントラ予測モードが除外されたときに、すべての考えられるイントラ予測モードから残りのイントラ予測モードを識別する。しかしながら、本開示の技法は、そのように限定されない。
【００５０】
[0057]シンタックス要素ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅ［ｘ０］［ｙ０］は、ＣＵのクロマサンプル用のイントラ予測モードを明示する。クロマイントラ予測は、ルーマイントラ予測モードに基づき得る。シンタックス要素ｃｈｒｏｍａ＿ｐｒｅｄ＿ｆｒｏｍ＿ｌｕｍａ＿ｅｎａｂｌｅｄ＿ｆｌａｇは、クロマ用のイントラ予測モードがルーマ用のイントラ予測モードに基づくかどうかを示すことができる。
【００５１】
[0058]ＨＥＶＣ  ＷＤ６では、考えられるイントラ予測モードは、平面予測モード（ｐｒｅｄＭｏｄｅ＝０）と、ＤＣ予測（ｐｒｅｄＭｏｄｅ＝１）と、３３個の角度予測モード（ｐｒｅｄＭｏｄｅ＝２、．．．、３４）と、ルーマ予測モードからイントラ予測モードを推測するクロマ成分用の予測モード（ｐｒｅｄＭｏｄｅ＝３５）とを含む。したがって、ルーマ成分の場合、ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇの値に応じて、ｍｐｍ＿ｉｄｘシンタックス要素が、最確モードリストへのインデックスを示すことができ、最確モードリストの各エントリは、３５個の考えられるイントラ予測モードのうちの１つを識別するか、またはｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅが、（いくつかの例では、最確モードリストで識別されたイントラ予測モードを除く）３５個の考えられるイントラ予測モードのうちの１つを示すことができる。一例では、シンタックス要素ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅは、０〜３１の整数値を有することができ、固定長バイナリコーディング方法を使用してコーディングされてよく、シンタックス要素ｍｐｍ＿ｉｄｘは、（たとえば、最確モードリストにおける３つのエントリのうちの１つを識別する）０〜２の整数値を有することができ、切断単項（truncated unary）コーディング方法を使用してコーディングされてよい。さらに、クロマ成分の場合、ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅおよび１つまたは複数の他のシンタックス要素が、３６個の考えられるイントラ予測モードのうちの１つを示すことができる。一例では、シンタックス要素ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅは、０〜５の整数値を有することができる。シンタックス要素ｍｐｍ＿ｉｄｘ、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ、およびｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅの各々が特定のイントラ予測モードを識別する方法のより詳細な説明は、ＨＥＶＣ  ＷＤ６において提供されており、簡潔のために本明細書では繰り返す。ただし、本明細書で説明する技法は、概して、シンタックス要素ｍｐｍ＿ｉｄｘ、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ、およびｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅの企図された変形に適用され得ることに留意されたい。
【００５２】
[0059]上述のように、ビデオコーディング規格は、ＣＡＢＡＣ技法に従ってシンタックス要素をエントロピーコーディングすることができる。ＣＡＢＡＣコーディングをシンタックス要素に適用するために、ビデオコーダは、シンタックス要素に２値化を実行することができる。２値化は、シンタックス値を一連の１つまたは複数のビットに変換するプロセスを指す。これらのビットは「ビン」と呼ばれる場合がある。２値化は、可逆的プロセス（lossless process）であり、以下のコーディング技法の１つまたは組合せを含むことができる。固定長コーディング、単項コーディング、切断単項コーディング、切断ライス（truncated Rice）コーディング、ゴロムコーディング、指数ゴロムコーディング、およびゴロムライスコーディング。たとえば、２値化は、５の整数値を、８ビット固定長技法を使用して０００００１０１として、または単項コーディング技法を使用して１１１１０として表現することを含む場合がある。
【００５３】
[0060]２値化の後、ビデオコーダはコーディングコンテキストを識別することができる。コーディングコンテキストは、特定の値を有するビンをコーディングする確率を識別することができる。たとえば、コーディングコンテキストは、０の値のビンをコーディングする０．７の確率と、１の値のビンをコーディングする０．３の確率とを示すことができる。コーディングコンテキストを識別した後、ビデオコーダは、コンテキストに基づいてそのビンを算術的にコーディングすることができる。正規のＣＡＢＡＣコーディングを使用してコーディングされたビンは、「ＣＡＢＡＣビン」と呼ばれる場合がある。
【００５４】
[0061]さらに、すべてのシンタックス要素ビンに正規のＣＡＢＡＣ符号化を実行するのではなく、ビデオコーダは、バイパスのＣＡＢＡＣコーディングを使用して、いくつかのシンタックス要素ビンをコーディングすることができる。バイパスコーディングは、適応型コンテキストを使用せずにビンを算術的に符号化するプロセスを指す。すなわち、バイパスコーディングエンジンは、コンテキストを選択せず、両方のシンボル（０および１）について０．５の確率を仮定することができる。バイパスコーディングはＣＡＢＡＣコーディングほど帯域幅が効率的ではない場合があるが、ビンに正規のＣＡＢＡＣコーディングを実行するのではなく、ビンにバイパスコーディングを実行することは、計算上さほど高価ではない可能性がある。さらに、バイパスコーディングを実行すると、より高い程度の並列化およびスループットが可能になる場合がある。バイパスコーディングを使用してコーディングされたビンは、「バイパスビン」と呼ばれる場合がある。
【００５５】
[0062]ＣＡＢＡＣコーダが実装されるとき、ＣＡＢＡＣコーダは、正規のＣＡＢＡＣコーディングを実行する正規のコーディングエンジンとバイパスコーディングを実行するバイパスコーディングエンジンとを含むことができる。あるビンがＣＡＢＡＣコーディングされる場合、このビンをコーディングするために正規のＣＡＢＡＣ符号化エンジンが使用される。正規のＣＡＢＡＣ符号化エンジンは、単一のビンをコーディングするために３つ以上の処理サイクルを必要とし得る。しかしながら、適切なパイプライン設計により、正規のＣＡＢＡＣ符号化エンジンは、ｎ個のビンを符号化するためにｎ＋Ｍ個のサイクル（Ｍは、パイプラインをスタートさせるためのオーバーヘッドである）を必要とするにすぎないことがある。Ｍは通常、０よりも大きい。
【００５６】
[0063]ＣＡＢＡＣコーディングプロセスの開始時に（すなわち、バイパスモードから正規に切り替えるたびに）、パイプラインオーバーヘッドがもたらされる。あるビンがバイパスコーディングされる場合、このビンをコーディングするためにバイパス符号化エンジンが使用される。バイパスコーディングエンジンは、ｎビット（ｎは１よりも大きいことがある）のシンタックス要素をコーディングするために１サイクルだけ必要とすると予想され得る。したがって、バイパスビンおよびＣＡＢＡＣビンのセットをコーディングするためのサイクルの総数は、セット内のバイパスビンのすべてが一緒にコーディングされ、セット内のＣＡＢＡＣビンのすべてが一緒にコーディングされる場合に、減少し得る。具体的には、ＣＡＢＡＣコーディングに移行する前または移行した後にバイパスビンを一緒にコーディングすることで、ＣＡＢＡＣコーディングエンジンを再スタートさせるのに必要なオーバーヘッドを節減することができる。
【００５７】
[0064]上述のように、ＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造を有するＣＵは、４つのルーマイントラ予測モードを有することができ、したがってシンタックス要素ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ、ｍｐｍ＿ｉｄｘおよびｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅの４つのセットを有することができる。一例では、これらの３つのシンタックス要素のうち、ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇのみがＣＡＢＡＣコーディングされ、ｍｐｍ＿ｉｄｘとｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅの両方はバイパスコーディングされる。ここでも、バイパスコーディングは、非ＣＡＢＡＣプロセスによる、すなわちＣＡＢＡＣエンジン以外でのビンのコーディングを指し得る。バイパスコーディングで使用され得る非ＣＡＢＡＣコーディングの例には、ゴロムコーディング、指数ゴロムコーディング、およびゴロムライスコーディングがある。
【００５８】
[0065]上述のように、ＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造を有するＣＵは、４つのＰＵすべてに使用される１つのクロマイントラ予測モードを有することができる。クロマイントラ予測モードは、ルーマイントラ予測モードに基づき得る。表２は、一例として、シンタックス要素ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅの２値化を示す。２値化により、ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅの対応値を表す１つまたは複数のビンが生じる。この例では、下線が引かれたビンはＣＡＢＡＣコーディングされ、ビンの残りはバイパスコーディングされている。表２に示すように、ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅの２値化および特定のビンがＣＡＢＡＣコーディングされるか、それともバイパスコーディングされるかは、ｃｈｒｏｍａ＿ｐｒｅｄ＿ｆｒｏｍ＿ｌｕｍａ＿ｅｎａｂｌｅ＿ｆｌａｇの値に基づく。したがって、シンタックス要素の２値化および特定のビンがＣＡＢＡＣコーディングされるか、それともバイパスコーディングされるかは、別のシンタックス要素（たとえば、ｃｈｒｏｍａ＿ｐｒｅｄ＿ｆｒｏｍ＿ｌｕｍａ＿ｅｎａｂｌｅ＿ｆｌａｇ）の値に基づき得る。
【表２】
0005940726.tif 000003
【００５９】
[0066]下の表３および表４は、いくつかの例における、ＣＵ用のルーマ予測モードおよびクロマ予測モードを識別するシンタックス要素のコーディング構造を表す。表３は、ＩＮＴＲＡ＿２Ｎ×２Ｎ  ＰＵ構造の場合のシンタックス要素のコーディングを示し、表４は、ＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造のコーディングを示す。表３および表４において、シンタックス要素ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅは、シンタックス要素ｃｈｒｏｍａ＿ｍｏｄｅ＿ｃａｂａｃ＿ｂｉｎｓおよびｃｈｒｏｍａ＿ｍｏｄｅ＿ｂｙｐａｓｓ＿ｂｉｎｓとして表され、表２で提供されたように、ｃｈｒｏｍａ＿ｍｏｄｅ＿ｃａｂａｃ＿ｂｉｎｓは、ＣＡＢＡＣコーディングされたビンを示し、ｃｈｒｏｍａ＿ｍｏｄｅ＿ｂｙｐａｓｓ＿ｂｉｎｓは、バイパスコーディングされたビンを示す。表３および表４は、シンタックス要素がＣＡＢＡＣモードを使用してコーディングされるのか、それともバイパスモードを使用してコーディングされるのかを識別する。シンタックス要素はＣＡＢＡＣコーディングエンジンに出力され、通常、表３および表４に提示された順序でエントロピーコーディングされる。さらに、表４に示すように、各々が４つのＰＵのうちの１つに対応する、ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ、ｍｐｍ＿ｉｄｘおよびｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅの４つのセットと、ＰＵの４つすべてによって共有される１つのクロマモード指示とがある。
【表３】
0005940726.tif 000004
【表４】
0005940726.tif 000005
【００６０】
[0067]表３および表４に示すように、ＣＡＢＡＣコーディングされたシンタックス要素は、バイパスコーディングされたシンタックス要素とインターリーブされ、これは上述のように、たとえばＣＡＢＡＣコーディングエンジンを再スタートさせる際のセットアップオーバーヘッドのために、表３および表４におけるシンタックス要素のすべてをエントロピー符号化するのに必要なサイクルの総数を増やし得る。表４に示すように、この問題は、ＣＵが複数のＰＵを含む場合に悪化する。本開示によれば、パイプラインオーバーヘッド全体とイントラ予測モードを識別するシンタックス要素を符号化するのに必要なサイクルの総数とを減らすために、コーディング順序に対するある種の調整が行われ得る。
【００６１】
[0068]図２は、本開示による技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図２に示すように、システム１０は、符号化ビデオデータを通知するソースデバイス１２を含む。いくつかの例では、ソースデバイス１２は、通信チャネル１６を介して宛先デバイス１４に符号化ビデオデータを通知することができる。ソースデバイス１２および宛先デバイス１４は、広範囲のデバイスのいずれかを備えることができる。場合によっては、ソースデバイス１２および宛先デバイス１４は、いわゆるセルラー電話または衛星無線電話のワイヤレスハンドセットなどのワイヤレス通信デバイス、または通信チャネル１６を介してビデオ情報を通信することができ、その場合、通信チャネル１６がワイヤレスである任意のワイヤレスデバイスを備え得る。ただし、本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。たとえば、これらの技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタルビデオ、または他のシナリオに適用され得る。したがって、通信チャネル１６は、宛先デバイス１４による後の取り出しのための符号化ビデオデータの送信または記憶に好適なワイヤレス媒体、ワイヤード媒体、または記憶媒体の任意の組合せを備え得る。
【００６２】
[0069]図２の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器（モデム）２２と、送信機２４とを含む。宛先デバイス１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。本開示によれば、ソースデバイス１２のビデオエンコーダ２０は、パイプラインオーバーヘッドを低減するようにエントロピー符号化するための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。たとえば、ソースデバイス１２は、外部カメラなどの外部ビデオソース１８からビデオデータを受信し得る。同様に、宛先デバイス１４は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００６３】
[0070]図２の図示のシステム１０は一例にすぎない。パイプラインオーバーヘッドを低減するようにフラグのセットと各フラグに関するそれぞれのシンタックス要素とをエントロピー符号化するための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行され得る。概して、本開示の技法はビデオコーディングデバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実行され得る。その上、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４に送信するためのコーディングされたビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャストまたはビデオ電話通信のためのビデオデバイス１２とビデオデバイス１４との間の一方向または双方向のビデオ送信をサポートすることができる。
【００６４】
[0071]ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および／またはビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラ付き携帯電話またはビデオ電話を形成することができる。ただし、上述のように、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。各々の場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオ情報は、次いで、通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含むことができる。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含むことができる。
【００６５】
[0072]宛先デバイス１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８は情報を復調する。この場合も、ビデオ符号化プロセスは、パイプラインオーバーヘッドを低減するようにシンタックス要素をエントロピー符号化するための本明細書で説明する技法のうちの１つまたは複数を実装し得る。チャネル１６を介して通信される情報は、マクロブロックおよび他のコーディングされたユニット、たとえば、ピクチャグループ（ＧＯＰ）の特性および／または処理を記述するシンタックス要素を含む、ビデオデコーダ３０によっても使用される、ビデオエンコーダ２０によって定義されるシンタックス情報を含み得る。ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００６６】
[0073]図２の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成することができる。通信チャネル１６は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用なルータ、スイッチ、基地局、または任意の他の機器を含むことができる。他の例では、ソースデバイス１２は、データを送信するのではなく、符号化データを記憶媒体に記憶し得る。同様に、宛先デバイス１４は、記憶媒体から符号化データを取り出すように構成され得る。このようにして、ソースデバイス１２は、本明細書で説明する技法により符号化されたビデオファイルを含むコンピュータプログラム製品を生成するように構成され得る。
【００６７】
[0074]ビデオエンコーダ２０およびビデオデコーダ３０は、本明細書で説明したようなビデオ圧縮規格に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。図２には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠することができる。
【００６８】
[0075]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、エンコーダまたはデコーダなどのビデオコーディングデバイスを含むワイヤレス通信デバイス、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路またはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合エンコーダ／デコーダ（コーデック）の一部としてそれぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどに統合され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０を含む装置は、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【００６９】
[0076]ビデオエンコーダ２０およびビデオデコーダ３０は、本開示による技法を実装するように構成され得る。そのような技法は、パイプラインオーバーヘッドを低減することができ、それによりスループットを増大させる可能性がある。たとえば、パイプラインオーバーヘッドの１つの原因は、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）をスタートさせるために必要なサイクルに関連するオーバーヘッドである。本開示で説明する技法では、ビデオエンコーダ２０は、ＣＡＢＡＣ符号化を使用して（たとえば、正規のＣＡＢＡＣエンジンにより）第１のシンタックス要素グループをエントロピー符号化し、バイパス符号化を使用して（たとえば、バイパスエンジンにより）第２のシンタックス要素グループをエントロピー符号化する。同様に、ビデオデコーダ３０は、ＣＡＢＡＣ復号を使用して（たとえば、正規のＣＡＢＡＣエンジンにより）第１のシンタックス要素グループをエントロピー復号し、バイパス復号を使用して（たとえば、バイパス復号エンジンにより）第２のシンタックス要素グループをエントロピー復号する。
【００７０】
[0077]このようにして、ＣＡＢＡＣ符号化された第１のグループのシンタックス要素は、ビットストリームにおいて、バイパス符号化された第２のグループのシンタックス要素とインターリーブされない。ＣＡＢＡＣ符号化されたシンタックス要素とバイパス符号化されたシンタックス要素とがインターリーブされた場合、ビデオエンコーダ２０およびビデオデコーダ３０はＣＡＢＡＣエンジンを繰り返し再スタートさせなければならなくなる。
【００７１】
[0078]たとえば、第１のシンタックス要素がＣＡＢＡＣ符号化されるべきであり、バイパス符号化されるべき第２のシンタックス要素に先行し、ＣＡＢＡＣ符号化されるべき第３のシンタックス要素がバイパス符号化されるべき第２のシンタックス要素の後に来ると仮定する。この例では、ＣＡＢＡＣ符号化され、バイパス符号化されるべきシンタックス要素がインターリーブされ、ビデオエンコーダ２０は第１のシンタックス要素のためにＣＡＢＡＣエンジンをスタートさせ、次いで、バイパスエンジンにより第２のシンタックス要素を符号化した後に第３のシンタックス要素のためにＣＡＢＡＣエンジンを再スタートさせることが必要になるが、これはサイクルを浪費する。
【００７２】
[0079]本開示で説明する技法では、第１のシンタックス要素グループをＣＡＢＡＣ符号化し、第２のシンタックス要素グループをバイパス符号化することによって、ビデオエンコーダ２０は、ＣＡＢＡＣエンジンがスタートするべき回数を減らし、それにより、浪費されるサイクルの数を減らすことができる。同様に、第１のシンタックス要素グループをＣＡＢＡＣ復号し、第２のシンタックス要素グループをバイパス復号することによって、ビデオデコーダ３０は、ＣＡＢＡＣエンジンがスタートするべき回数を減らし、それにより、浪費されるサイクルの数を減らすことができる。
【００７３】
[0080]より詳細に説明するように、第１のシンタックス要素グループの各シンタックス要素はＣＵの１つのＰＵに関連付けられ、第２のシンタックス要素グループの各シンタックス要素は第１のシンタックス要素グループのシンタックス要素に対応する。第１のシンタックス要素グループおよび第２のシンタックス要素グループの各々は、複数のシンタックス要素を含む。第１のシンタックス要素グループの各々は、それぞれのＰＵ（たとえば、第１のシンタックス要素グループのシンタックス要素に対応するＰＵ）のイントラ予測モードが隣接ＰＵから推測されるかどうかを示す。言い換えれば、第１のシンタックス要素グループの各々は、それぞれのＰＵのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す。
【００７４】
[0081]たとえば、ビデオエンコーダ２０およびビデオデコーダ３０は、上述した例示的な方法で最確モードリストを作成するように構成され得る。第１のシンタックス要素グループにおける各シンタックス要素は、ＣＵにおけるＰＵのうちの１つに対応し得る。この例では、第１のシンタックス要素グループにおけるシンタックス要素（すなわち、第１のグループの複数のシンタックス要素におけるシンタックス要素のうちの１つ）は、ＣＵにおけるシンタックス要素が対応するＰＵ用のイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す。
【００７５】
[0082]第１のシンタックス要素グループのシンタックス要素が、関連付けられるＰＵのイントラ予測モードが最確モードリストへのインデックスに基づくことを示す場合、第１のシンタックス要素グループのシンタックス要素に関連付けられる第２のシンタックス要素グループのシンタックス要素は、最確モードリストへのインデックスを識別する。第１のシンタックス要素グループのシンタックス要素が、関連付けられるＰＵのイントラ予測モードが最確モードリストへのインデックスに基づかないことを示す場合、第１のシンタックス要素グループのシンタックス要素に関連付けられる第２のシンタックス要素グループのシンタックス要素は、イントラ予測モードを示す。
【００７６】
[0083]図３は、本明細書で説明するビデオデータを符号化するための技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。一例では、ビデオエンコーダ２０は、第１のシンタックス要素グループと第２のシンタックス要素グループとを生成するように構成されてよく、第２のシンタックス要素グループのシンタックス要素は第１のシンタックス要素グループのそれぞれのシンタックス要素に対応し、第１のシンタックス要素グループのシンタックス要素の各々は、ＣＵ中のそれぞれのＰＵのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す。ビデオエンコーダ２０は、（たとえば、正規のＣＡＢＡＣエンジンを使用して）第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）符号化し、第１のシンタックス要素グループをエントロピー符号化した後に、（たとえば、バイパス符号化エンジンを使用して）第２のシンタックス要素グループをバイパス符号化し、符号化された第１のシンタックス要素グループと符号化された第２のシンタックス要素グループとを含むビデオデータを出力することができる。第１のシンタックス要素グループおよび第２のシンタックス要素グループの各々は、複数のシンタックス要素を含む。
【００７７】
[0084]ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディング（すなわち、イントラ予測符号化）およびインターコーディング（すなわち、インター予測符号化）を実行することができる。図３に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在のビデオブロックであり得るビデオデータを受信し、符号化ビデオビットストリームを出力する。ビデオエンコーダ２０は、さらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびＧＯＰベースのシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはＧＯＰヘッダ中で送り得る。ＧＯＰシンタックスデータは、それぞれのＧＯＰ中のいくつかのフレームを記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用される符号化／予測モードを示し得る。
【００７８】
[0085]図３の例では、ビデオエンコーダ２０は、モード選択ユニット４０と、参照フレームメモリ６４と、加算器５０と、変換処理ユニット５２と、量子化処理ニット５４と、エントロピー符号化ユニット５６とを含む。モード選択ユニット４０は、今度は、動き推定ユニット４２と、動き補償ユニット４４と、イントラ予測ユニット４６と、パーティションユニット４８とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化処理ユニット５８と、逆変換処理ユニット６０と、加算器６２とを含む。
【００７９】
[0086]符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間的な予測を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディング（インター予測符号化）を実行する。イントラ予測ユニット４６は代替的に、空間的な予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コーディング（イントラ予測符号化）を実行し得る。ビデオエンコーダ２０は、たとえば、ビデオデータのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
【００８０】
[0087]その上、パーティションユニット４８は、前のコーディングパスにおける前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、パーティションユニット４８は、初めにフレームまたはスライスをＬＣＵに区分し、レートひずみ分析（たとえば、レートひずみ最適化）に基づいてＬＣＵの各々をサブＣＵに区分し得る。モード選択ユニット４０は、さらに、ＬＣＵをサブＣＵに区分することを示す４分木データ構造を生成し得る。４分木のリーフノードＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。
【００８１】
[0088]モード選択ユニット４０は、たとえば、誤差結果に基づいて、コーディングモード、すなわち、イントラまたはインターのうちの１つを選択することができ、得られたイントラコーディングされたブロックまたはインターコーディングされたブロックを、残差ブロックデータを生成するために加算器５０に提供し、参照フレームとして使用するための符号化ブロックを復元するために加算器６２に提供する。モード選択ユニット４０はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピー符号化ユニット５６に提供する。たとえば、モード選択ユニット４０は、上述のようにシンタックス要素ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ、ｍｐｍ＿ｉｄｘ、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ、ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅ、およびｃｈｒｏｍａ＿ｐｒｅｄ＿ｆｒｏｍ＿ｌｕｍａ＿ｅｎａｂｌｅ＿ｆｌａｇをエントロピー符号化ユニット５６に提供することができる。さらに、モード選択ユニット４０は、ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ、ｍｐｍ＿ｉｄｘ、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ、およびｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅへのシンタックス要素を、シンタックス要素をエントロピー符号化するのに必要なサイクルの数が減る方法でエントロピー符号化ユニット５６に提供されるように配列するように構成され得る。
【００８２】
[0089]たとえば、ビデオエンコーダ２０は、エントロピー符号化ユニット５６を介して、ＣＡＢＡＣ符号化を使用してＣＵ内の各ＰＵ用のｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇをエントロピー符号化する。この例では、第１のシンタックス要素グループは、複数のｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ（すなわち、ＣＵにおける各ＰＵに１つ）を含む。ビデオエンコーダ２０は、エントロピー符号化ユニット５６を介して、対応するｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇが、ＰＵ用のイントラ予測モードが最確モードリストへのインデックスに基づくことを示す場合に、バイパス符号化を使用してｍｐｍ＿ｉｄｘシンタックス要素をエントロピー符号化し、または対応するｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇが、ＰＵ用のイントラ予測モードが最確モードリストへのインデックスに基づかないことを示す場合に、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅシンタックス要素を符号化する。この例では、第２のシンタックス要素グループは、１つまたは複数のｍｐｍ＿ｉｄｘシンタックス要素および１つまたは複数のｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅシンタックス要素のうちの少なくとも１つを含む。
【００８３】
[0090]言い換えれば、第１のシンタックス要素グループにおけるシンタックス要素の一例はｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇであり、第２のシンタックス要素グループにおけるシンタックス要素の一例はｍｐｍ＿ｉｄｘシンタックス要素であり、第２のシンタックス要素グループにおけるシンタックス要素の別の例はｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅシンタックス要素である。
【００８４】
[0091]この場合も、ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇは、ＣＵのＰＵのルーマサンプルのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す。ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇが、ＣＵのＰＵのルーマサンプルのイントラ予測モードが最確モードリストへのインデックスに基づくことを示す場合に、ｍｐｍ＿ｉｄｘシンタックス要素は、最確モードリストへのインデックスを示す。ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇが、ＣＵのＰＵのイントラ予測モードが最確モードリストへのインデックスに基づかないことを示す場合に、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅシンタックス要素は、ＰＵのルーマサンプルのイントラ予測モードを示す。ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅシンタックス要素は、最確モードリストで識別されないイントラ予測モードを示すことができる。
【００８５】
[0092]動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム（または他のコーディングされたユニット）内でコーディングされている現在のブロックに対する参照フレーム（または他のコーディングされたユニット）内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。予測ブロックは、絶対値差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、または他の差分尺度によって決定され得るピクセル差分に関して、コーディングされるべきブロックに精密に一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ２０は、参照フレームメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【００８６】
[0093]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライスにおけるビデオブロックのＰＵのための動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択されてよく、その各々は、参照フレームメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【００８７】
[0094]動き補償ユニット４４によって実行される動き補償は、動き推定ユニット４２によって判断された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット４２と動き補償ユニット４４とは機能的に統合され得る。現在のビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、参照ピクチャリストのうちの１つにおいて動きベクトルが指す予測ブロックの位置を特定し得る。加算器５０は、以下で説明するように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。概して、動き推定ユニット４２はルーマ成分に対して動き推定を実行し、動き補償ユニット４４は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット４０はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【００８８】
[0095]イントラ予測ユニット４６は、上記で説明したように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測ユニット４６は、現在のブロックを符号化するために使用すべきイントラ予測モードを判断し得る。いくつかの例では、イントラ予測ユニット４６は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測ユニット４６（または、いくつかの例では、モード選択ユニット４０）は、たとえばレートひずみ分析に基づいて、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。上述のように、考えられるイントラ予測モードは、平面予測モードと、ＤＣ予測と、角度予測モードと、ルーマ予測モードからイントラ予測モードを推測するクロマ成分用の予測モードとを含む。
【００８９】
[0096]さらに、一例では、イントラ予測ユニット４６は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または誤差）の量、ならびに符号化ブロックを生成するために使用されるビットレート（すなわち、ビット数）を判断する。イントラ予測ユニット４６は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを判断するために、様々な符号化ブロックのひずみおよびレートから比率を計算し得る。
【００９０】
[0097]ブロック用のイントラ予測モードを選択した後、イントラ予測ユニット４６は、シンタックス要素などのブロック用に選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット５６に提供することができる。エントロピー符号化ユニット５６は、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ２０は、（コードワードマッピングテーブルとも呼ばれる）複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブルと、様々なブロック用の符号化コンテキストの定義と、最確イントラ予測モードの指示とを含む送信されたビットストリーム構成データの中に、コンテキストの各々について使用する、イントラ予測モードインデックステーブルと修正されたイントラ予測モードインデックステーブルとを含めることができる。
【００９１】
[0098]上述のように、イントラ予測シンタックス要素ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ、ｍｐｍ＿ｉｄｘ、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ、ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅ、およびｃｈｒｏｍａ＿ｐｒｅｄ＿ｆｒｏｍ＿ｌｕｍａ＿ｅｎａｂｌｅ＿ｆｌａｇは、ＰＵ構造の場合の１つまたは複数のルーマイントラ予測モードとＰＵ構造の場合の１つのクロマイントラ予測モードとを示すことができる。さらに、表３および表４に関して上述したように、コーディング構造内のイントラ予測シンタックス要素ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ、ｍｐｍ＿ｉｄｘ、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ、ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅ、およびｃｈｒｏｍａ＿ｐｒｅｄ＿ｆｒｏｍ＿ｌｕｍａ＿ｅｎａｂｌｅ＿ｆｌａｇの配列は、ＰＵ構造の場合のシンタックス要素のすべてをエントロピー符号化するのに必要なサイクルの総数を決定することができる。したがって、表３および表４に関して上述したようにエントロピー符号化ユニット５６にイントラ予測シンタックス要素を出力することに加えて、イントラ予測ユニット４６は、シンタックス要素をエントロピー符号化するのに必要なサイクルの総数が減る方法でエントロピー符号化ユニット５６に出力されるようにイントラ予測シンタックスを配列するように構成され得る。同様に、この配列により、デコーダにおいてシンタックス要素をエントロピー復号するのに必要なサイクルの総数が減る。
【００９２】
[0099]一例では、イントラ予測ユニット４６は、ルーマイントラモードシンタックス要素のＣＡＢＡＣコーディングされたビンとともにクロマイントラモードシンタックス要素のＣＡＢＡＣコーディングされたビンを、それらが一緒にコーディングされるように配列するように構成され得る。さらに、イントラ予測ユニット４６は、クロマイントラモードシンタックス要素のバイパスコーディングされたビンとともにルーマイントラモードシンタックス要素のバイパスコーディングされたビンを、それらが一緒にコーディングされ得るように配列し得る。表５は、ＩＮＴＲＡ＿２Ｎ×２Ｎ  ＰＵ構造の場合のこの配列の例示的なコーディング構造を提供する。表６は、ＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造の場合のこの配列の例示的なコーディング構造を提供する。表５および表６では、シンタックス要素は、表３および表４に関して上述したように定義され得る。ただし、表５および表６におけるシンタックス要素は、必ずしも上述したのと同じ値の範囲を有する必要はないことに留意されたい。たとえば、ビデオエンコーダ２０が３３個よりも少ないかまたは多いイントラ予測モードを含む場合、シンタックス要素の値はしかるべく調整され得る。表５および表６に示すように、シンタックス要素ｃｈｒｏｍａ＿ｍｏｄｅ＿ｃａｂａｃ＿ｂｉｎｓは、ｍｐｍ＿ｉｄｘおよびｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅの前にコーディングされるように配列される。
【表５】
0005940726.tif 000006
【表６】
0005940726.tif 000007
【００９３】
[0100]別の例では、イントラ予測ユニット４６は、ＣＵ内のＰＵのすべてに関するイントラモードルーマシンタックス要素のＣＡＢＡＣコーディングされたビンを、それらが一緒にコーディングされ得るように配列するように構成され得る。さらに、イントラ予測ユニット４６は、ルーマイントラモードシンタックス要素のバイパスコーディングされたビンを、それらが一緒にコーディングされ得るように配列し得る。表７は、ＩＮＴＲＡ＿２Ｎ×２Ｎ  ＰＵ構造の場合のこの配列の例示的なコーディング構造を提供する。表８は、ＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造の場合のこの配列の例示的なコーディング構造を提供する。表７および表８では、シンタックス要素は、表５および表６に関して上述したように定義され得る。
【００９４】
[0101]表８に示すように、ＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造の場合、４つのＰＵの各々に関するｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇシンタックス要素がコーディングされ、次いで、ＰＵの各々に関するそれぞれのｍｐｍ＿ｉｄｘおよびｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅシンタックス要素がコーディングされる。４つのｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇシンタックス要素は、ＰＵ用の第１のシンタックス要素グループと呼ばれ得る。したがって、イントラ予測ユニット４６は、フラグの各々に関連するそれぞれのシンタックス要素ｍｐｍ＿ｉｄｘおよびｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅの前に、エントロピー符号化ユニット５６の前に第１のシンタックス要素グループを出力するように構成され得る。
【表７】
0005940726.tif 000008
【表８】
0005940726.tif 000009
【００９５】
[0102]また別の例では、イントラ予測ユニット４６は、コーディングユニット中のＰＵすべてに関するルーマイントラモードシンタックス要素とクロマイントラモードシンタックス要素の両方のＣＡＢＡＣコーディングされたビンすべてを、それらが一緒にコーディングされ得るように配列するように構成され得る。さらに、イントラ予測ユニット４６は、ルーマイントラモードとクロマイントラモードの両方のバイパスコーディングされたビンすべてを、それらが一緒にコーディングされ得るように配列するように構成され得る。表９は、ＩＮＴＲＡ＿２Ｎ×２Ｎ  ＰＵ構造の場合のこの配列の例示的なコーディング構造を提供する。表１０は、ＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造の場合のこの配列の例示的なコーディング構造を提供する。表９および表１０では、シンタックス要素は、表５および表６に関して上述したように定義され得る。
【表９】
0005940726.tif 000010
【表１０】
0005940726.tif 000011
【００９６】
[0103]表６〜表１０において、表においてシンタックス要素が提示されている行は、エントロピーエンコーダによってエントロピー符号化される順序に対応することに留意されたい。場合によっては、表６〜表１０における隣接する行の間に中間のエントロピー符号化が生じないことがある。本明細書における「グループ」および「グループ化」という用語は、概して、要素を一緒に近くに、たとえば、ピクチャ、スライス、ＣＵなどのようなビデオコーディングユニット内のシンタックステーブル内に配置することを指し得る。グループに含まれるシンタックス要素に対して演算が実行される場合、場合によっては、グループ内のすべての要素に対する演算が完了するまで、グループの外にある要素に対して演算が実行されない（すなわち、異なるグループ間でインターリーブされない）ように、要素が一緒に近くに配置され得る。場合によっては、グループ中のビンは、連続的に提示され、順番に、または順次、すなわち次々にコーディングされ得る。
【００９７】
[0104]図３を再び参照すると、ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、モード選択ユニット４０からの予測データを減算することによって、残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット５２は、ＤＣＴと概念的に同様である他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換処理ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化処理ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化処理ユニット５４は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット５６が走査を実行し得る。
【００９８】
[0105]ビデオエンコーダ２０は、たとえば、時間的に予測されるべき１つまたは複数の同じフレームにおいて、後続のブロックを予測するための参照として使用されるべき復号されたブロックを記憶するために、逆量子化および逆変換を実行するように構成され得る。逆量子化処理ユニット５８および逆変換処理ユニット６０は、それぞれ逆量子化および逆変換を適用して、たとえば、参照ブロックとして後で使用するために、ピクセル領域内の残差ブロックを復元する。動き補償ユニット４４は、残差ブロックを参照フレームメモリ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照フレームメモリ６４に記憶するための再構成されたビデオブロックを生成する。
【００９９】
[0106]量子化の後、エントロピー符号化ユニット５６は、量子化変換係数をエントロピー符号化する。さらに、エントロピー符号化ユニット５６は、上述した予測シンタックス要素などのシンタックス要素をエントロピー符号化する。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースエントロピー符号化の場合、コンテキストは隣接ブロックに基づくことができる。エントロピー符号化ユニット５６によるエントロピー符号化の後、符号化ビットストリームは、別のデバイス（たとえば、ビデオデコーダ３０）に送信されるか、または後で送信するかもしくは取り出すためにアーカイブされ得る。
【０１００】
[0107]図４は、本開示で説明する技法を実装し得る例示的なエントロピー符号化ユニット５６を示すブロック図である。一例では、図４に示すエントロピー符号化ユニット５６は、ＣＡＢＡＣエンコーダであり得る。例示的なエントロピー符号化ユニット５６は、２値化ユニット５０２と、算術符号化ユニット５１０と、コンテキストモデル化ユニット５０６とを含む場合があり、算術符号化ユニット５１０は、バイパス符号化エンジン５０４と正規符号化エンジン５０８とを含む。
【０１０１】
[0108]エントロピー符号化ユニット５６は、上述したイントラ予測シンタックス要素ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ、ｍｐｍ＿ｉｄｘ、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ、ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅ、およびｃｈｒｏｍａ＿ｐｒｅｄ＿ｆｒｏｍ＿ｌｕｍａ＿ｅｎａｂｌｅ＿ｆｌａｇなどの１つまたは複数のシンタックス要素を受信し得る。エントロピー符号化ユニット５６によってシンタックス要素が受信される順序は、表３〜表１０に関して上述した例示的なコーディング構造などのコーディング構造に従って定義され得る。
【０１０２】
[0109]２値化ユニット５０２は、シンタックス要素を受信し、ビンストリング（すなわち、バイナリストリング）を生成する。２値化ユニット５０２は、たとえば、ビンストリングを生成する次の技法のいずれか１つまたは組合せを使用することができる。固定長コーディング、単項コーディング、切断単項コーディング、切断ライスコーディング、ゴロムコーディング、指数ゴロムコーディング、およびゴロムライスコーディング。さらに、場合によっては、２値化ユニット５０２は、シンタックス要素をバイナリストリングとして受信し、ビン値を単にパススルーする場合がある。一例では、２値化ユニット５０２は、シンタックス要素ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅを受信し、表２に関して上述した例に従ってｃｈｒｏｍａ＿ｐｒｅｄ＿ｆｒｏｍ＿ｌｕｍａ＿ｅｎａｂｌｅ＿ｆｌａｇの値に基づいてビンストリングを生成する。
【０１０３】
[0110]算術符号化ユニット５１０は、２値化ユニット５０２からビンストリングを受信し、そのビンストリングに対して算術符号化を実行するように構成される。図４に示すように、算術符号化ユニット５１０は、バイパス経路または正規コーディング経路からビン値を受信することができる。バイパス経路に従うビン値は、バイパスコーディングされたものとして識別されるビン値であり得るし、正規コーディング経路に従うビン値は、ＣＡＢＡＣコーディングされたものとして識別され得る。上述したＣＡＢＡＣプロセスに従って、算術符号化ユニット５１０がバイパス経路からビン値を受信する場合、バイパス符号化エンジン５０４は、ビン値に割り当てられた適応型コンテキストを利用せずに、ビン値に対して算術符号化を実行することができる。一例では、バイパス符号化エンジン５０４は、ビンの考えられる値について等しい確率を仮定することができる。
【０１０４】
[0111]算術符号化ユニット５１０が正規経路を介してビン値を受信する場合、コンテキストモデル化ユニット５０６は、コンテキスト変数（たとえば、コンテキスト状態）を提供することができ、その結果、正規符号化エンジン５０８は、コンテキストモデル化ユニット５０６によって提供されたコンテキスト割当てに基づいて、算術符号化を実行することができる。コンテキスト割当ては、ＨＥＶＣなどのビデオコーディング規格に従って定義され得る。コンテキストモデルは、メモリに記憶され得る。コンテキストモデル化ユニット５０６は、一連のインデックス付きテーブルを含み、かつ／またはマッピング関数を利用して特定のビン用のコンテキストとコンテキスト変数とを決定することができる。ビン値を符号化した後、正規符号化エンジン５０８は、実際のビン値に基づいてコンテキストを更新することができる。
【０１０５】
[0112]さらに、一例では、エントロピー符号化ユニット５６は、モード選択ユニット４０からシンタックス要素を受信する順序に基づいてビンを符号化するように構成され得る。上述のように、順序は、表３〜表１０に関して上述した例示的なコーディング構造などのコーディング構造に従って定義され得る。エントロピー符号化ユニット５６がシンタックス要素セット内のシンタックス要素を受信する順序は、エントロピー符号化ユニット５６がシンタックス要素セットを符号化するために必要とするサイクルの総数を決定し得る。
【０１０６】
[0113]一例では、正規符号化エンジン５０８は、単一のビンをコーディングするために３つ以上のサイクルを必要とし得る。さらに、一例では、正規符号化エンジン５０８は、ｎ個のビンを符号化するためにｎ＋Ｍ個のサイクル（Ｍは、パイプラインをスタートさせるためのオーバーヘッドである）を必要とし得る。Ｍは通常、０よりも大きい。ＣＡＢＡＣ符号化プロセスの開始時に（たとえば、バイパスモードから正規に切り替えるたびに）、パイプラインオーバーヘッドＭがもたらされる。一例では、バイパス符号化エンジン５０４は、ｎビット（ｎはゼロよりも大きい）のシンタックス要素をコーディングするために１つのサイクルを必要とし得る。
【０１０７】
[0114]したがって、算術符号化ユニット５１０がバイパスビンおよびＣＡＢＡＣビンのセットを符号化するために必要とするサイクルの総数は、パイプラインオーバーヘッドＭがもたらされる回数に基づき得る。たとえば、算術符号化ユニット５１０が表４に配列されたように予測シンタックス要素を符号化する場合、パイプラインオーバーヘッドが５回もたらされることがあり、算術符号化ユニット５１０は、シンタックス要素のビンを符号化するために最低でも５＊Ｍ個のサイクルを必要とし得る。一方、算術符号化ユニット５１０が表８に配列されたように予測シンタックス要素を符号化する場合、パイプラインオーバーヘッドが２回のみもたらされることがあり、算術符号化ユニット５１０のパイプラインオーバーヘッドは、２＊Ｍ個のサイクルに減少し得る。
【０１０８】
[0115]ＨＥＶＣに従ってコーディングされたビデオフレームは数万個程度のＰＵを含み得ることに留意されたい。したがって、コーディング構造においてイントラ予測シンタックス要素が配列される順序は、ビデオコーダがビデオデータをコーディングするために必要とするサイクルの数に相当な影響を与え得る。さらに、図４に示す例示的なエントロピー符号化ユニット５６は、バイパス符号化演算から正規符号化演算への切替えとして記述されているが、場合によってはこれらの演算は並列に実行され得ることに留意されたい。ただし、この場合、エントロピー符号化ユニット５６がバイパスコーディングされたシンタックス要素とＣＡＢＡＣコーディングされたシンタックス要素とを受信する順序は、依然として、シンタックス要素をエントロピー符号化するために必要なサイクルの総数を決定し得る。オーバーヘッドは、コンテキスト切替えからもたらされる。バイパスモードでコーディングされたビンは、次のＣＡＢＡＣコーディングされたビン用のいくつかの異なるシンタックス要素を生じさせ得るので、パイプラインオーバーヘッドを減らすために必要なコンテキストを事前フェッチする（コンテキストバッファをローディングする）のは難しい。
【０１０９】
[0116]図５は、本開示の技法によるビデオデータを符号化する一例を示すフローチャートである。図５のプロセスは概してビデオエンコーダ２０によって実行されるものとして以下に記載されるが、本プロセスは、ビデオエンコーダ２０、モード選択ユニット４０および／またはエントロピー符号化ユニット５６の任意の組合せによって実行されてよい。
【０１１０】
[0117]図５に示すように、ビデオエンコーダ２０は、第１のシンタックス要素グループを生成する（６０２）。一例では、第１のグループ内のシンタックス要素が、それぞれの予測ユニット（ＰＵ）の予測モードが最確モードリストへのインデックスに基づくかどうかを示す。一例では、第１のシンタックス要素グループは、ＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造におけるＰＵに対応するシンタックス要素ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇの４つを含む。ビデオエンコーダ２０は、第２のシンタックス要素グループを生成する（６０４）。一例では、それぞれのシンタックス要素は、上述したようにシンタックス要素のｍｐｍ＿ｉｄｘまたはｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅのいずれかであり得る。第２のグループのシンタックス要素は、第１のグループのそれぞれのシンタックス要素に対応する。
【０１１１】
[0118]ビデオエンコーダ２０は、（たとえば、正規のＣＡＢＡＣエンジンを使用して）第１のシンタックス要素グループをＣＡＢＡＣ符号化する（６０６）。第１のシンタックス要素グループをＣＡＢＡＣ符号化した後、ビデオエンコーダ２０は、（たとえば、バイパス符号化エンジンを使用して）第２のシンタックス要素グループをバイパス符号化する（６０８）。ビデオエンコーダ２０は、第１および第２のシンタックス要素グループに基づいてＣＵのＰＵをイントラ符号化することができる（６１０）。ビデオエンコーダ２０はビットストリームにおいて、符号化された第１のシンタックス要素グループと符号化された第２のシンタックス要素グループとを含むビデオデータを出力することができる（６１２）。ビデオエンコーダ２０はビットストリームにおいて、イントラ符号化ＰＵに関する残差情報も出力する。
【０１１２】
[0119]上述のように、第１のシンタックス要素グループの例は、複数のフラグ（たとえば、ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇシンタックス要素）を含む。複数のフラグのフラグは、それぞれのＰＵのルーマサンプルのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す第１のシンタックス要素グループのシンタックス要素であり得る。
【０１１３】
[0120]いくつかの例では、第１のシンタックス要素グループにおける対応するシンタックス要素が、それぞれのＰＵのルーマサンプルのイントラ予測モードが最確モードリストへのインデックスに基づくことを示す場合に、第２のシンタックス要素グループは、最確モードリストへのインデックスを示す第１のシンタックス要素を含む。たとえば、それぞれのＰＵ用のｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇシンタックス要素が、それぞれのＰＵ用のイントラ予測モードが、最確モードリストへのインデックスに基づくことを示す場合、それぞれのＰＵ用の対応するｍｐｍ＿ｉｄｘシンタックス要素は、最確モードリストへのインデックスを示す。この例では、ｍｐｍ＿ｉｄｘシンタックス要素は、第２のシンタックス要素グループにおける第１のシンタックス要素と見なされる。
【０１１４】
[0121]いくつかの例では、第１のシンタックス要素グループにおける対応するシンタックス要素が、それぞれのＰＵのルーマサンプルのイントラ予測モードが最確モードリストへのインデックスに基づかないことを示す場合に、第２のシンタックス要素グループは、それぞれのＰＵ用のイントラ予測モードを示す第２のシンタックス要素を含む。たとえば、それぞれのＰＵ用のｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇシンタックス要素が、それぞれのＰＵ用のイントラ予測モードが、最確モードリストへのインデックスに基づかないことを示す場合、それぞれのＰＵ用の対応するｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅシンタックス要素はイントラ予測モードを示す。この例では、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅシンタックス要素は、第２のシンタックス要素グループにおける第２のシンタックス要素と見なされる。
【０１１５】
[0122]上述のように、ビデオエンコーダ２０が作成する最確モードリストは、１つまたは複数の隣接ＰＵの１つまたは複数のイントラ予測モードを識別する。いくつかの例では、ビデオエンコーダ２０は、ＣＵのＰＵ用の第２のシンタックス要素グループの任意のシンタックス要素を出力する前に、ＣＵのＰＵ用の第１のシンタックス要素グループのシンタックス要素すべてを出力することができる。いくつかの例では、ビデオエンコーダ２０は、第２のシンタックス要素グループの任意のシンタックス要素をバイパス符号化する前に、第１のシンタックス要素グループのシンタックス要素すべてをＣＡＢＡＣ符号化することができる。
【０１１６】
[0123]いくつかの例では、エントロピーエンコーダは、エントロピー符号化ユニット５６など、ビデオエンコーダ２０内に含まれるエントロピーエンコーダであり得ることに留意されたい。この場合、出力するという用語は、ビデオエンコーダ２０内の１つの構成要素がビデオエンコーダ２０内の別の構成要素にデータを出力することを指し得る。さらに、他の例ではエントロピーエンコーダはビデオエンコーダ２０の外部にあり得る。一例では、ビデオエンコーダ２０は、それぞれのシンタックス要素の前にシンタックス要素グループが順次配列されるようにフラグのセットとそれぞれのシンタックス要素とを出力する。一例では、ビデオエンコーダ２０は、表８に示すコーディング構造に従ってシンタックス要素を配列することができる。ビデオデコーダは、エントロピー符号化ビットストリームを受信し、エントロピー符号化ビットストリームを使用してビデオデータを再構成することができる。
【０１１７】
[0124]図６は、符号化ビデオシーケンスを復号するビデオデコーダ３０の一例を示すブロック図である。一例では、ビデオデコーダ３０は、フラグのセットと各フラグに対応するそれぞれのシンタックス要素とを含むエントロピー符号化ビットストリームを受信することと、ここにおいて、各フラグは、それぞれの予測ユニット（ＰＵ）の予測モードが最確モードリストへのインデックスに基づくかどうかを示す、フラグのセットをＣＡＢＡＣ復号することと、それぞれのシンタックス要素をバイパス復号することと、各フラグおよびそれぞれのシンタックス要素の値に基づいてビデオデータを再構成することとを行うように構成され得る。
【０１１８】
[0125]図６の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化処理ユニット７６と、逆変換処理ユニット７８と、参照フレームメモリ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図４）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
【０１１９】
[0126]エントロピー復号ユニット７０は、エントロピー符号化ビットストリームを受信し、シンタックス要素を符号化するために使用されたエントロピー符号化プロセスとは逆のプロセスに従って、ビットストリームからシンタックス要素を復号する。一例では、シンタックス要素を符号化するために使用されたエントロピー符号化プロセスは、上述のエントロピー符号化プロセスのいずれかであり得る。
【０１２０】
[0127]図７は、本開示で説明する技法を実装し得る例示的なエントロピー復号ユニット７０を示すブロック図である。エントロピー復号ユニット７０は、エントロピー符号化ビットストリームを受信し、そのビットストリームからのシンタックス要素を復号する。シンタックス要素は、上述のイントラ予測シンタックス要素ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ、ｍｐｍ＿ｉｄｘ、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ、ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅ、およびｃｈｒｏｍａ＿ｐｒｅｄ＿ｆｒｏｍ＿ｌｕｍａ＿ｅｎａｂｌｅ＿ｆｌａｇを含み得る。エントロピー復号ユニット７０によってシンタックス要素が復号される順序は、表３〜表１０に関して上述した例示的なコーディング構造などのコーディング構造に従って定義され得る。図７の例示的なエントロピー復号ユニット７０は、算術復号ユニット７０２を含み、算術復号ユニット７０２は、バイパス復号エンジン７０４と正規復号エンジン７０６とを含む場合がある。例示的なエントロピー復号ユニット７０はまた、コンテキストモデル化ユニット７０８と、逆２値化ユニット７１０とを含む。例示的なエントロピー復号ユニット７０は、図４に関して説明した例示的なエントロピー符号化ユニット５６の逆の機能を実行することができる。このようにして、エントロピー復号ユニット７０は、本明細書で説明する技法に基づいてエントロピー復号を実行することができる。
【０１２１】
[0128]算術復号ユニット７０２は、符号化ビットストリームを受信する。図７に示すように、算術復号ユニット７０２は、バイパス経路または正規コーディング経路に従って符号化ビン値を処理することができる。符号化ビン値がバイパス経路に従って処理されるべきか、または正規経路に従って処理されるべきかの指示は、より高いレベルのシンタックスを有するビットストリーム内で通知され得る。上述したＣＡＢＡＣプロセスに従って、算術復号ユニット７０２がバイパス経路からビン値を受信する場合、バイパス復号エンジン７０４は、ビン値に割り当てられたコンテキストを利用せずに、ビン値に対して算術符号化を実行することができる。一例では、バイパス復号エンジン７０４は、ビンの考えられる値について等しい確率を仮定することができる。
【０１２２】
[0129]算術復号ユニット７０２が正規経路を介してビン値を受信する場合、コンテキストモデル化ユニット７０８は、コンテキスト変数を提供することができ、その結果、正規復号エンジン７０６は、コンテキストモデル化ユニット７０８によって提供されたコンテキスト割当てに基づいて、算術符号化を実行することができる。コンテキスト割当ては、ＨＥＶＣなどのビデオコーディング規格に従って定義され得る。コンテキストモデルは、メモリに記憶され得る。コンテキストモデル化ユニット７０８は、一連のインデックス付きテーブルを含み、かつ／またはマッピング関数を利用して、符号化ビットストリームのコンテキストとコンテキスト変数部分とを決定することができる。ビン値を復号した後、正規コーディングエンジン７０６は、復号されたビン値に基づいてコンテキストを更新することができる。さらに、逆２値化ユニット７１０は、ビン値に対して逆２値化を実行し、ビン照合関数を使用してビン値が有効かどうかを判定することができる。逆２値化ユニット７１０はまた、照合判定に基づいてコンテキストモデル化ユニットを更新することができる。したがって、逆２値化ユニット７１０は、コンテキスト適応型復号技法に従ってシンタックス要素を出力する。
【０１２３】
[0130]エントロピー復号ユニット７０がシンタックス要素セット内のシンタックス要素を受信する順序は、エントロピー復号ユニット７０がシンタックス要素セットを復号するために必要とするサイクルの総数を決定し得る。一例では、正規復号エンジン７０６は、単一のビンを復号するために３つ以上のサイクルを必要とし得る。さらに、一例では、正規ＣＡＢＡＣ復号エンジン７０６は、ｎ個のビンを復号するためにｎ＋Ｍ個のサイクル（Ｍは、パイプラインをスタートさせるためのオーバーヘッドである）を必要とし得る。Ｍは通常、０よりも大きい。ＣＡＢＡＣ復号プロセスの開始時に（たとえば、バイパスモードから正規に切り替えるたびに）、パイプラインオーバーヘッドＭがもたらされる。一例では、バイパス復号エンジン７０４は、ｎビットのシンタックス要素をコーディングするために１つのサイクルを必要とし得る。したがって、算術復号ユニット５１０がバイパスビンおよびＣＡＢＡＣビンのセットを復号するために必要とするサイクルの総数は、パイプラインオーバーヘッドＭがもたらされる回数に基づき得る。したがって、コーディング構造においてイントラ予測シンタックス要素が配列される順序は、ビデオデコーダ３０がビデオデータを復号するために必要とするサイクルの数を決定し得る。さらに、図７に示す例示的なエントロピー復号ユニット７０は、バイパス復号演算から正規復号演算への切替えとして記述されているが、場合によってはこれらの演算は並列に実行され得ることに留意されたい。ただし、この場合、エントロピー復号ユニット７０がバイパスコーディングされたシンタックス要素とＣＡＢＡＣコーディングされたシンタックス要素とを受信する順序は、依然として、シンタックス要素をエントロピー復号するために必要なサイクルの総数を決定し得る。
【０１２４】
[0131]図６を再び参照すると、動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成し得る。動き補償ユニット７２は、ビットストリーム中で受信された動きベクトルを使用して、参照フレームメモリ８２中の参照フレーム中の予測ブロックを識別し得る。動き補償ユニット７２は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子がシンタックス要素中に含まれ得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
【０１２５】
[0132]動き補償ユニット７２は、シンタックス情報の一部を使用して、符号化ビデオシーケンスの（１つまたは複数の）フレームを符号化するために使用されるマクロブロックのサイズと、符号化ビデオシーケンスのフレームの各マクロブロックがどのように区分されるのかを記述するパーティション情報と、各パーティションがどのように符号化されるのかを示すモードと、各インター符号化マクロブロックまたはパーティションのための１つまたは複数の参照フレーム（および参照フレームリスト）と、符号化ビデオシーケンスを復号するための他の情報とを判断する。
【０１２６】
[0133]イントラ予測ユニット７４は、ビットストリーム中で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。イントラ予測モードは、上述のイントラ予測モードを含むことができる。イントラ予測ユニット７４は、上述のようにシンタックス要素ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇ、ｍｐｍ＿ｉｄｘ、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅ、ｉｎｔｒａ＿ｃｈｒｏｍａ＿ｐｒｅｄ＿ｍｏｄｅおよびｃｈｒｏｍａ＿ｐｒｅｄ＿ｆｒｏｍ＿ｌｕｍａ＿ｅｎａｂｌｅ＿ｆｌａｇに従って使用するイントラ予測モードを決定することができる。
【０１２７】
[0134]逆量子化ユニット７６は、ビットストリーム中で提供され、エントロピー復号ユニット７０によって復号された量子化ブロック係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、たとえば、Ｈ．２６４復号規格によって定義された従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を判断し、同様に、適用する逆量子化の程度を判断するための、各マクロブロックについてビデオエンコーダによって計算される量子化パラメータＱＰYの使用を含み得る。
【０１２８】
[0135]逆変換ユニット７８は、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換処理を変換係数に適用して、ピクセル領域において残差ブロックを生成する。加算器８０は、残差ブロックを、動き補償ユニット７２またはイントラ予測ユニット７４によって生成される対応する予測ブロックと合計して、復号されたブロックを形成する。このようにして、ビデオデコーダ３０は、符号化ビットストリームからビデオブロックを再構成する。
【０１２９】
[0136]図８は、本開示の技法によるビデオデータを復号する一例を示すフローチャートである。図８のプロセスは概してビデオデコーダ３０によって実行されるものとして以下に記載されるが、本プロセスは、ビデオデコーダ３０、イントラ予測ユニット７４および／またはエントロピー復号ユニット７０の任意の組合せによって実行されてよい。
【０１３０】
[0137]図８に示すように、ビデオデコーダ３０は、第１のシンタックス要素グループを受信する（８０２）。ビデオデコーダ３０は、第２のシンタックス要素グループを受信し、第２のシンタックス要素グループのシンタックス要素は、第１のシンタックス要素グループのそれぞれのシンタックス要素に対応する（８０４）。言い換えれば、ビデオデコーダ３０は、コーディングユニット（ＣＵ）の予測ユニット（ＰＵ）用の第１のシンタックス要素グループと第２のシンタックス要素グループとを含むエントロピー符号化ビットストリームを受信する。
【０１３１】
[0138]一例では、第１のグループ内のシンタックス要素が、それぞれの予測ユニット（ＰＵ）の予測モードが最確モードリストへのインデックスに基づくかどうかを示す。一例では、第１のグループは、ＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造における４つのそれぞれのＰＵに対応するシンタックス要素ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇの４つを含む。一例では、第２のシンタックス要素グループにおけるシンタックス要素は、上述したシンタックス要素のｍｐｍ＿ｉｄｘまたはｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅのいずれかであり得る。一例では、第１のシンタックス要素グループおよび第２のシンタックス要素グループは、表８に関して説明したコーディング構造に従って配列され得る。このようにして、ビデオデコーダ３０がフラグのセットとそれぞれのシンタックス要素とを受信し、これらに対する演算を実行する順序は、コーディング構造に従って定義され得る。
【０１３２】
[0139]ビデオデコーダ３０は、第１のシンタックス要素グループをＣＡＢＡＣ復号する（８０６）。一例では、ビデオデコーダ３０は、図７に関して説明した正規復号エンジン７０６などの正規のコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）エンジンを使用して第１のシンタックス要素グループをＣＡＢＡＣ復号する。ビデオデコーダ３０は、第２のシンタックス要素グループをバイパス復号する（８０８）。一例では、ビデオデコーダ３０は、第１のシンタックス要素グループをエントロピー復号した後に第２のシンタックス要素グループをエントロピー復号することができる。さらに、一例では、ビデオデコーダ３０は、図７に関して説明したバイパス復号エンジン７０４などのバイパス復号エンジンを使用して第２のシンタックス要素グループをエントロピー復号することができる。ビデオデコーダ３０は、復号された第１のシンタックス要素グループおよび復号された第２のシンタックス要素グループに基づいてビデオデータを復号し再構成する（８１０）。一例では、ビデオデコーダ３０は、ビデオデータの残差ブロックとそれぞれのシンタックス要素に関連するビデオデータの対応する予測ブロックとを加算することによってビデオデータを再構成する。たとえば、ビデオデコーダ３０は、第１のシンタックス要素グループおよび復号された第２のシンタックス要素グループに基づいてＣＵのＰＵをイントラ予測復号する。
【０１３３】
[0140]繰り返すと、ビデオエンコーダ２０および図５に関する上記の説明と同様に、第１のシンタックス要素グループの例は複数のフラグ（たとえば、ｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇシンタックス要素）を含む。複数のフラグのフラグは、それぞれのＰＵのルーマサンプルのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す第１のシンタックス要素グループのシンタックス要素であり得る。
【０１３４】
[0141]いくつかの例では、第１のシンタックス要素グループにおける対応するシンタックス要素が、それぞれのＰＵのルーマサンプルのイントラ予測モードが最確モードリストへのインデックスに基づくことを示す場合に、第２のシンタックス要素グループは、最確モードリストへのインデックスを示す第１のシンタックス要素を含む。たとえば、それぞれのＰＵ用のｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇシンタックス要素が、それぞれのＰＵ用のイントラ予測モードが、最確モードリストへのインデックスに基づくことを示す場合、それぞれのＰＵ用の対応するｍｐｍ＿ｉｄｘシンタックス要素は、最確モードリストへのインデックスを示す。この例では、ｍｐｍ＿ｉｄｘシンタックス要素は、第２のシンタックス要素グループにおける第１のシンタックス要素と見なされる。
【０１３５】
[0142]いくつかの例では、第１のシンタックス要素グループにおける対応するシンタックス要素が、それぞれのＰＵのルーマサンプルのイントラ予測モードが最確モードリストへのインデックスに基づかないことを示す場合に、第２のシンタックス要素グループは、それぞれのＰＵ用のイントラ予測モードを示す第２のシンタックス要素を含む。たとえば、それぞれのＰＵ用のｐｒｅｖ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｆｌａｇシンタックス要素が、それぞれのＰＵ用のイントラ予測モードが、最確モードリストへのインデックスに基づかないことを示す場合、それぞれのＰＵ用の対応するｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅシンタックス要素はイントラ予測モードを示す。この例では、ｒｅｍ＿ｉｎｔｒａ＿ｌｕｍａ＿ｐｒｅｄ＿ｍｏｄｅシンタックス要素は、第２のシンタックス要素グループにおける第２のシンタックス要素と見なされる。
【０１３６】
[0143]上述のように、ビデオデコーダ３０が作成する最確モードリストは、１つまたは複数の隣接ＰＵの１つまたは複数のイントラ予測モードを識別する。いくつかの例では、ビデオデコーダ３０は、ＣＵのＰＵ用の第２のシンタックス要素グループの任意のシンタックス要素を受信する前に、ＣＵのＰＵ用の第１のシンタックス要素グループのシンタックス要素すべてを受信することができる。いくつかの例では、ビデオデコーダ３０は、第２のシンタックス要素グループの任意のシンタックス要素をバイパス復号する前に、第１のシンタックス要素グループのシンタックス要素すべてをＣＡＢＡＣ復号することができる。
【０１３７】
[0144]上記の例では、ＣＵ用の予測モードがＩＮＴＲＡ＿Ｎ×Ｎであるとき、ＣＵは４つのＰＵを含み、各ＰＵは、１つのルーマイントラ予測モードとＣＵ全体のためのただ１つのクロマイントラ予測モードとを有する。しかしながら、そのような設計の場合、いくつかの潜在的な欠点があり得る。一例として、異なるテクスチャパターンを有する４つのＰＵが１つの同一のクロマ予測モードを使用することを余儀なくされるので、非効率的な予測パフォーマンスがあり得る。別の例として、ルーマ成分とクロマ成分との間で一貫性のないモード通知があり得る。
【０１３８】
[0145]以下では、ＣＵ全体のためのただ１つのクロマイントラ予測モードがあるという要件に関連する欠点に対処するいくつかの例について説明する。以下の技法は、ＣＵ全体のためのただ１つのクロマイントラ予測モードがあるときの上述の技法とともに、またはＣＵ全体のためのただ１つのクロマイントラ予測モードがあるときの上述の技法とは別個に適用され得る。
【０１３９】
[0146]上記で紹介された非効率的な予測パフォーマンスの潜在的問題に対処するために、本開示の技法は、ルーマイントラ予測モードについて行われているように各ＰＵ用の１つのクロマイントラ予測モードを通知すること、すなわち、現在のＨＥＶＣ規格の文脈でＩＮＴＲＡ＿Ｎ×Ｎとして予測モードによりＣＵ用に４つのｃｈｒｏｍａ＿ｉｎｔｒａ＿ｐｒｅｄｉｃｔｉｏｎ＿ｍｏｄｅが通知されることを含む。この設計により、あるＰＵ用のイントラ予測モードを表すために、１つの「ｌｕｍａ＿ｉｎｔｒａ＿ｐｒｅｄｉｃｔｉｏｎ＿ｍｏｄｅ」シンタックス要素および１つの「ｃｈｒｏｍａ＿ｉｎｔｒａ＿ｐｒｅｄｉｃｔｉｏｎ＿ｍｏｄｅ」シンタックス要素が連続的に通知される。
【０１４０】
[0147]いくつかの例では、このイントラモード通知方式は、現在のＣＵサイズが８×８に等しく、最小変換ユニットサイズが４×４である場合以外に適用され得る。より一般的には、この例外は、現在のＣＵサイズが各寸法において最小変換＿ユニット＿サイズの２倍であるときに存在し、これは、（ソースフォーマットがＹＵＶ４２０であると仮定すると）現在のＣＵのクロマ成分が最小変換ユニットサイズに等しく、さらに４つのＰＵに分割できないことを意味する。そのような場合、現在のＣＵ用にただ１つのｃｈｒｏｍａ＿ｉｎｔｒａ＿ｐｒｅｄｉｃｔｉｏｎ＿ｍｏｄｅが通知される。
【０１４１】
[0148]これらの例によれば、イントラモードのコーディング構造は、表１１および表１２の例に示すように実装され得る。
【表１１】
0005940726.tif 000012
【表１２】
0005940726.tif 000013
【０１４２】
[0149]以下では、ＣＵ全体のためのクロマサンプル用のただ１つのイントラ予測モードではなく、ＣＵの各ＰＵのルーマサンプル用および各ＰＵのクロマサンプル用のイントラ予測モードが定義される例について説明する。表１３および表１４は、それぞれｉｎｔｒａ＿２Ｎ×２Ｎおよびｉｎｔｒａ＿Ｎ×Ｎのためのイントラモードコーディング構造の場合のイントラ予測シンタックスを配列するための方法を定義し、ここではルーマイントラ予測モードおよびクロマイントラ予測モードのＣＡＢＡＣコーディングされたビンすべてが一緒にコーディングされ、次いで、ルーマイントラ予測モードおよびクロマイントラ予測モードのバイパスコーディングされたビンすべてが一緒にコーディングされる。表１５および表１６は、それぞれｉｎｔｒａ＿２Ｎ×２Ｎおよびｉｎｔｒａ＿Ｎ×Ｎのためのイントラモードコーディング構造の場合のイントラ予測シンタックスを配列するための方法を定義し、ここではＣＵにおけるすべてのＰＵのためのイントラ予測モードのＣＡＢＡＣコーディングされたビンすべてが一緒にコーディングされ、次いで、イントラ予測モードのバイパスコーディングされたビンすべてが一緒にコーディングされる。表１７および表１８は、それぞれｉｎｔｒａ＿２Ｎ×２Ｎおよびｉｎｔｒａ＿Ｎ×Ｎのためのイントラモードコーディング構造の場合のイントラ予測シンタックスを配列するための方法を定義し、ここではＣＵにおけるすべてのＰＵのためのルーマイントラ予測モードとクロマイントラ予測モードの両方のＣＡＢＡＣコーディングされたビンすべてがコーディングされ、次いで、ルーマイントラ予測モードおよびクロマイントラ予測モードのバイパスコーディングされたビンすべてが一緒にコーディングされる。
【表１３】
0005940726.tif 000014
【表１４】
0005940726.tif 000015
【表１５】
0005940726.tif 000016
【表１６】
0005940726.tif 000017
【表１７】
0005940726.tif 000018
【表１８】
0005940726.tif 000019
【０１４３】
[0150]１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、全般に、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１４４】
[0151]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１４５】
[0152]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に提供され得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１４６】
[0153]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上述のように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上述した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって提供され得る。
【０１４７】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に本願出願当初の特許請求の範囲を付記する。
[Ｃ１]  ビデオデータを復号する方法であって、
コーディングユニット（ＣＵ）の予測ユニット（ＰＵ）用の第１のシンタックス要素グ
ループと第２のシンタックス要素グループとを含むエントロピー符号化ビットストリーム
を受信することと、ここにおいて、前記第２のシンタックス要素グループのシンタックス
要素は、前記第１のシンタックス要素グループのそれぞれのシンタックス要素に対応し、
前記第１のシンタックス要素グループのシンタックス要素は、前記ＣＵ中のそれぞれのＰ
Ｕのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す、
前記第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング
（ＣＡＢＡＣ）復号することと、
前記第１のシンタックス要素グループをＣＡＢＡＣ復号した後に、前記第２のシンタッ
クス要素グループをバイパス復号することと、
前記復号された第１のシンタックス要素グループおよび前記復号された第２のシンタッ
クス要素グループに基づいて前記ビデオデータを再構成することと
を備える方法。
[Ｃ２]  前記第１のシンタックス要素グループは、複数のフラグを備え、
前記複数のフラグのフラグは、前記それぞれのＰＵのルーマサンプルの前記イントラ予
測モードが前記最確モードリストへの前記インデックスに基づくかどうかを示す前記第１
のシンタックス要素グループの前記シンタックス要素を備え、
前記第２のシンタックス要素グループは、
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づくことを示す場合に、前記最確モードリストへの前記インデックスを示す第１の
シンタックス要素、および
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づかないことを示す場合に、前記それぞれのＰＵの前記ルーマサンプルの前記イン
トラ予測モードを示す第２のシンタックス要素
のうちの１つを備える、Ｃ１に記載の方法。
[Ｃ３]  前記最確モードリストは、１つまたは複数の隣接ＰＵの１つまたは複数のイントラ予測
モードを識別する、Ｃ１に記載の方法。
[Ｃ４]  受信することは、前記ＣＵの前記ＰＵ用の前記第２のシンタックス要素グループの任意
のシンタックス要素を受信する前に、前記ＣＵの前記ＰＵ用の前記第１のシンタックス要
素グループのシンタックス要素すべてを受信することを備える、Ｃ１に記載の方法。
[Ｃ５]  ＣＡＢＡＣ復号することは、前記第２のシンタックス要素グループの任意のシンタック
ス要素をバイパス復号する前に、前記第１のシンタックス要素グループのシンタックス要
素すべてをＣＡＢＡＣ復号することを備える、Ｃ１に記載の方法。
[Ｃ６]  前記第１のシンタックス要素グループは、４つのフラグを含み、前記４つのフラグの各
々は、前記ＣＵのＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造のそれぞれのＰＵに関連付けられる、請
求項１に記載の方法。
[Ｃ７]  再構成することは、
前記第１のシンタックス要素グループおよび前記第２のシンタックス要素グループに基
づいて前記ＣＵの前記ＰＵをイントラ予測復号すること
を備える、Ｃ１に記載の方法。
[Ｃ８]  ビデオデータを復号するための装置であって、
コーディングユニット（ＣＵ）の予測ユニット（ＰＵ）用の第１のシンタックス要素グ
ループと第２のシンタックス要素グループとを含むエントロピー符号化ビットストリーム
を受信することと、ここにおいて、前記第２のシンタックス要素グループのシンタックス
要素は、前記第１のシンタックス要素グループのそれぞれのシンタックス要素に対応し、
前記第１のシンタックス要素グループのシンタックス要素は、前記ＣＵ中のそれぞれのＰ
Ｕのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す、
前記第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング
（ＣＡＢＡＣ）復号することと、
前記第１のシンタックス要素グループをＣＡＢＡＣ復号した後に、前記第２のシンタッ
クス要素グループをバイパス復号することと、
前記復号された第１のシンタックス要素グループおよび前記復号された第２のシンタッ
クス要素グループに基づいて前記ビデオデータを再構成することと
を行うように構成されたビデオデコーダを備える装置。
[Ｃ９]  前記第１のシンタックス要素グループは、複数のフラグを備え、
前記複数のフラグのフラグは、前記それぞれのＰＵのルーマサンプルの前記イントラ予
測モードが前記最確モードリストへの前記インデックスに基づくかどうかを示す前記第１
のシンタックス要素グループの前記シンタックス要素を備え、
前記第２のシンタックス要素グループは、
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づくことを示す場合に、前記最確モードリストへの前記インデックスを示す第１の
シンタックス要素、および
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づかないことを示す場合に、前記それぞれのＰＵの前記ルーマサンプルの前記イン
トラ予測モードを示す第２のシンタックス要素
のうちの１つを備える、Ｃ８に記載の装置。
[Ｃ１０]  前記最確モードリストは、１つまたは複数の隣接ＰＵの１つまたは複数のイントラ予測
モードを識別する、Ｃ８に記載の装置。
[Ｃ１１]  受信するために、前記ビデオデコーダは、前記ＣＵの前記ＰＵ用の前記第２のシンタッ
クス要素グループの任意のシンタックス要素を受信する前に、前記ＣＵの前記ＰＵ用の前
記第１のシンタックス要素グループのシンタックス要素すべてを受信するように構成され
る、Ｃ８に記載の装置。
[Ｃ１２]  ＣＡＢＡＣ復号するために、前記ビデオデコーダは、前記第２のシンタックス要素グル
ープの任意のシンタックス要素をバイパス復号する前に、前記第１のシンタックス要素グ
ループのシンタックス要素すべてをＣＡＢＡＣ復号するように構成される、Ｃ８に記
載の装置。
[Ｃ１３]  前記第１のシンタックス要素グループは、４つのフラグを含み、前記４つのフラグの各
々は、前記ＣＵのＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造のそれぞれのＰＵに関連付けられる、請
求項８に記載の装置。
[Ｃ１４]  再構成するために、前記ビデオデコーダは、
前記第１のシンタックス要素グループおよび前記第２のシンタックス要素グループに基
づいて前記ＣＵの前記ＰＵをイントラ予測復号する
ように構成される、Ｃ８に記載の装置。
[Ｃ１５]  集積回路、
マイクロプロセッサ、および
前記ビデオデコーダを含むワイヤレス通信デバイス
のうちの少なくとも１つを備える、Ｃ８に記載の装置。
[Ｃ１６]  実行されたとき、ビデオデータを復号するためのデバイスの１つまたは複数のプロセッ
サに、
コーディングユニット（ＣＵ）の予測ユニット（ＰＵ）用の第１のシンタックス要素グ
ループと第２のシンタックス要素グループとを含むエントロピー符号化ビットストリーム
を受信することと、ここにおいて、前記第２のシンタックス要素グループのシンタックス
要素は、前記第１のシンタックス要素グループのそれぞれのシンタックス要素に対応し、
前記第１のシンタックス要素グループのシンタックス要素は、前記ＣＵ中のそれぞれのＰ
Ｕのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを示す、
前記第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング
（ＣＡＢＡＣ）復号することと、
前記第１のシンタックス要素グループをＣＡＢＡＣ復号した後に、前記第２のシンタッ
クス要素グループをバイパス復号することと、
前記復号された第１のシンタックス要素グループおよび前記復号された第２のシンタッ
クス要素グループに基づいて前記ビデオデータを再構成することと
を行わせる命令が記憶されたコンピュータ可読記憶媒体。
[Ｃ１７]  前記第１のシンタックス要素グループは、複数のフラグを備え、
前記複数のフラグのフラグは、前記それぞれのＰＵのルーマサンプルの前記イントラ予
測モードが前記最確モードリストへの前記インデックスに基づくかどうかを示す前記第１
のシンタックス要素グループの前記シンタックス要素を備え、
前記第２のシンタックス要素グループは、
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づくことを示す場合に、前記最確モードリストへの前記インデックスを示す第１の
シンタックス要素、および
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づかないことを示す場合に、前記それぞれのＰＵの前記ルーマサンプルの前記イン
トラ予測モードを示す第２のシンタックス要素
のうちの１つを備える、Ｃ１６に記載のコンピュータ可読記憶媒体。
[Ｃ１８]  前記最確モードリストは、１つまたは複数の隣接ＰＵの１つまたは複数のイントラ予測
モードを識別する、Ｃ１６に記載のコンピュータ可読記憶媒体。
[Ｃ１９]  前記１つまたは複数のプロセッサに受信することを行わせる前記命令は、前記１つまた
は複数のプロセッサに、前記ＣＵの前記ＰＵ用の前記第２のシンタックス要素グループの
任意のシンタックス要素を受信する前に、前記ＣＵの前記ＰＵ用の前記第１のシンタック
ス要素グループのシンタックス要素すべてを受信することを行わせる命令を備える、請求
項１６に記載のコンピュータ可読記憶媒体。
[Ｃ２０]  前記１つまたは複数のプロセッサにＣＡＢＡＣ復号することを行わせる前記命令は、前
記１つまたは複数のプロセッサに、前記第２のシンタックス要素グループの任意のシンタ
ックス要素をバイパス復号する前に、前記第１のシンタックス要素グループのシンタック
ス要素すべてをＣＡＢＡＣ復号することを行わせる命令を備える、Ｃ１６に記載のコ
ンピュータ可読記憶媒体。
[Ｃ２１]  前記第１のシンタックス要素グループは、４つのフラグを含み、前記４つのフラグの各
々は、前記ＣＵのＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造のそれぞれのＰＵに関連付けられる、請
求項１６に記載のコンピュータ可読記憶媒体。
[Ｃ２２]  前記１つまたは複数のプロセッサに再構成することを行わせる前記命令は、前記１つま
たは複数のプロセッサに、
前記第１のシンタックス要素グループおよび前記第２のシンタックス要素グループに基
づいて前記ＣＵの前記ＰＵをイントラ予測復号する
ことを行わせる命令を備える、Ｃ１６に記載のコンピュータ可読記憶媒体。
[Ｃ２３]  ビデオデータを復号するための装置であって、
コーディングユニット（ＣＵ）の予測ユニット（ＰＵ）用の第１のシンタックス要素グ
ループと第２のシンタックス要素グループとを含むエントロピー符号化ビットストリーム
を受信するための手段と、ここにおいて、前記第２のシンタックス要素グループのシンタ
ックス要素は、前記第１のシンタックス要素グループのそれぞれのシンタックス要素に対
応し、前記第１のシンタックス要素グループのシンタックス要素は、前記ＣＵ中のそれぞ
れのＰＵのイントラ予測モードが最確モードリストへのインデックスに基づくかどうかを
示す、
前記第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング
（ＣＡＢＡＣ）復号するための手段と、
前記第１のシンタックス要素グループをＣＡＢＡＣ復号した後に、前記第２のシンタッ
クス要素グループをバイパス復号するための手段と、
復号された第１のシンタックス要素グループおよび前記復号された第２のシンタックス
要素グループに基づいて前記ビデオデータを再構成するための手段と
を備える装置。
[Ｃ２４]  前記第１のシンタックス要素グループは、複数のフラグを備え、
前記複数のフラグのフラグは、前記それぞれのＰＵのルーマサンプルの前記イントラ予
測モードが前記最確モードリストへの前記インデックスに基づくかどうかを示す前記第１
のシンタックス要素グループの前記シンタックス要素を備え、
前記第２のシンタックス要素グループは、
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づくことを示す場合に、前記最確モードリストへの前記インデックスを示す第１の
シンタックス要素、および
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づかないことを示す場合に、前記それぞれのＰＵの前記ルーマサンプルの前記イン
トラ予測モードを示す第２のシンタックス要素
のうちの１つを備える、Ｃ２３に記載の装置。
[Ｃ２５]  ビデオデータを符号化する方法であって、
第１のシンタックス要素グループを生成することと、ここにおいて、前記第１のシンタッ
クス要素グループのシンタックス要素は、コーディングユニット（ＣＵ）中のそれぞれの
予測ユニット（ＰＵ）のイントラ予測モードが最確モードリストへのインデックスに基づ
くかどうかを示す、
第２のシンタックス要素グループを生成することと、ここにおいて、前記第２のシンタ
ックス要素グループのシンタックス要素は、前記第１のシンタックス要素グループのそれ
ぞれのシンタックス要素に対応する、ことと、
前記第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング
（ＣＡＢＡＣ）符号化することと、
前記第１のシンタックス要素グループをＣＡＢＡＣ符号化した後に、前記第２のシンタ
ックス要素グループをバイパス符号化することと、
前記符号化された第１のシンタックス要素グループと前記符号化された第２のシンタッ
クス要素グループとを含む前記ビデオデータを出力することと
を備える方法。
[Ｃ２６]  前記第１のシンタックス要素グループは、複数のフラグを備え、
前記複数のフラグのフラグは、前記それぞれのＰＵのルーマサンプルの前記イントラ予
測モードが前記最確モードリストへの前記インデックスに基づくかどうかを示す前記第１
のシンタックス要素グループの前記シンタックス要素を備え、
前記第２のシンタックス要素グループは、
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づくことを示す場合に、前記最確モードリストへの前記インデックスを示す第１の
シンタックス要素、および
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づかないことを示す場合に、前記それぞれのＰＵの前記ルーマサンプルの前記イン
トラ予測モードを示す第２のシンタックス要素
のうちの１つを備える、Ｃ２５に記載の方法。
[Ｃ２７]  前記最確モードリストは、１つまたは複数の隣接ＰＵの１つまたは複数のイントラ予測
モードを識別する、Ｃ２５に記載の方法。
[Ｃ２８]  出力することは、前記第２のシンタックス要素グループの任意のシンタックス要素を出
力する前に、前記符号化された第１のシンタックス要素グループのシンタックス要素すべ
てを含む前記ビデオデータを出力することを備える、Ｃ２５に記載の方法。
[Ｃ２９]  ＣＡＢＡＣ符号化することは、前記第２のシンタックス要素グループの任意のシンタッ
クス要素をバイパス符号化する前に、前記第１のシンタックス要素グループのシンタック
ス要素すべてをＣＡＢＡＣ符号化することを備える、Ｃ２５に記載の方法。
[Ｃ３０]  前記第１のシンタックス要素グループは、４つのフラグを含み、前記４つのフラグの各
々は、前記ＣＵのＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造のそれぞれのＰＵに関連付けられる、請
求項２５に記載の方法。
[Ｃ３１]  前記第１のシンタックス要素グループおよび前記第２のシンタックス要素グループに基
づいて前記ＣＵの前記ＰＵをイントラ予測符号化すること
をさらに備える、Ｃ２５に記載の方法。
[Ｃ３２]  ビデオデータを符号化するための装置であって、
第１のシンタックス要素グループを生成することと、ここにおいて、前記第１のシンタ
ックス要素グループのシンタックス要素は、コーディングユニット（ＣＵ）中のそれぞれ
の予測ユニット（ＰＵ）のイントラ予測モードが最確モードリストへのインデックスに基
づくかどうかを示す、
第２のシンタックス要素グループを生成することと、ここにおいて、前記第２のシンタ
ックス要素グループのシンタックス要素は、前記第１のシンタックス要素グループのそれ
ぞれのシンタックス要素に対応する、
前記第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング
（ＣＡＢＡＣ）符号化することと、
前記第１のシンタックス要素グループをＣＡＢＡＣ符号化した後に、前記第２のシンタ
ックス要素グループをバイパス符号化することと、
前記符号化された第１のシンタックス要素グループと前記符号化された第２のシンタッ
クス要素グループとを含む前記ビデオデータを出力することと
を行うように構成されたビデオエンコーダを備える装置。
[Ｃ３３]  前記第１のシンタックス要素グループは、複数のフラグを備え、
前記複数のフラグのフラグは、前記それぞれのＰＵのルーマサンプルの前記イントラ予
測モードが前記最確モードリストへの前記インデックスに基づくかどうかを示す前記第１
のシンタックス要素グループの前記シンタックス要素を備え、
前記第２のシンタックス要素グループは、
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づくことを示す場合に、前記最確モードリストへの前記インデックスを示す第１の
シンタックス要素、および
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づかないことを示す場合に、前記それぞれのＰＵの前記ルーマサンプルの前記イン
トラ予測モードを示す第２のシンタックス要素
のうちの１つを備える、Ｃ３２に記載の装置。
[Ｃ３４]  前記最確モードリストは、１つまたは複数の隣接ＰＵの１つまたは複数のイントラ予測
モードを識別する、Ｃ３２に記載の装置。
[Ｃ３５]  出力するために、前記ビデオエンコーダは、前記第２のシンタックス要素グループの任
意のシンタックス要素を出力する前に、前記符号化された第１のシンタックス要素グルー
プのシンタックス要素すべてを含む前記ビデオデータを出力するように構成される、請求
項３２に記載の装置。
[Ｃ３６]  ＣＡＢＡＣ符号化するために、前記ビデオエンコーダは、前記第２のシンタックス要素
グループの任意のシンタックス要素をバイパス符号化する前に、前記第１のシンタックス
要素グループのシンタックス要素すべてをＣＡＢＡＣ符号化するように構成される、請求
項３２に記載の装置。
[Ｃ３７]  前記第１のシンタックス要素グループは、４つのフラグを含み、前記４つのフラグの各
々は、前記ＣＵのＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造のそれぞれのＰＵに関連付けられる、請
求項３２に記載の装置。
[Ｃ３８]  前記ビデオエンコーダは、
前記第１のシンタックス要素グループおよび前記第２のシンタックス要素グループに基
づいて前記ＣＵの前記ＰＵをイントラ予測符号化する
ように構成される、Ｃ３２に記載の装置。
[Ｃ３９]  実行されたとき、ビデオデータを符号化するためのデバイスの１つまたは複数のプロセ
ッサに、
第１のシンタックス要素グループを生成することと、ここにおいて、前記第１のシンタ
ックス要素グループのシンタックス要素は、コーディングユニット（ＣＵ）中のそれぞれ
の予測ユニット（ＰＵ）のイントラ予測モードが最確モードリストへのインデックスに基
づくかどうかを示す、
第２のシンタックス要素グループを生成することと、ここにおいて、前記第２のシンタ
ックス要素グループのシンタックス要素は、前記第１のシンタックス要素グループのそれ
ぞれのシンタックス要素に対応する、
前記第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング
（ＣＡＢＡＣ）符号化することと、
前記第１のシンタックス要素グループをＣＡＢＡＣ符号化した後に、前記第２のシンタ
ックス要素グループをバイパス符号化することと、
前記符号化された第１のシンタックス要素グループと前記符号化された第２のシンタッ
クス要素グループとを含む前記ビデオデータを出力することと
を行わせる命令が記憶されたコンピュータ可読記憶媒体。
[Ｃ４０]  前記第１のシンタックス要素グループは、複数のフラグを備え、
前記複数のフラグのフラグは、前記それぞれのＰＵのルーマサンプルの前記イントラ予
測モードが前記最確モードリストへの前記インデックスに基づくかどうかを示す前記第１
のシンタックス要素グループの前記シンタックス要素を備え、
前記第２のシンタックス要素グループは、
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づくことを示す場合に、前記最確モードリストへの前記インデックスを示す第１の
シンタックス要素、および
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づかないことを示す場合に、前記それぞれのＰＵの前記ルーマサンプルの前記イン
トラ予測モードを示す第２のシンタックス要素
のうちの１つを備える、Ｃ３９に記載のコンピュータ可読記憶媒体。
[Ｃ４１]  前記最確モードリストは、１つまたは複数の隣接ＰＵの１つまたは複数のイントラ予測
モードを識別する、Ｃ３９に記載のコンピュータ可読記憶媒体。
[Ｃ４２]  前記１つまたは複数のプロセッサに出力することを行わせる前記命令は、前記１つまた
は複数のプロセッサに、前記第２のシンタックス要素グループの任意のシンタックス要素
を出力する前に、前記符号化された第１のシンタックス要素グループのシンタックス要素
すべてを含む前記ビデオデータを出力することを行わせる命令を備える、Ｃ３９に記
載のコンピュータ可読記憶媒体。
[Ｃ４３]  前記１つまたは複数のプロセッサにＣＡＢＡＣ符号化することを行わせる前記命令は、
前記１つまたは複数のプロセッサに、前記第２のシンタックス要素グループの任意のシン
タックス要素をバイパス符号化する前に、前記第１のシンタックス要素グループのシンタ
ックス要素すべてをＣＡＢＡＣ符号化することを行わせる命令を備える、Ｃ３９に記
載のコンピュータ可読記憶媒体。
[Ｃ４４]  前記第１のシンタックス要素グループは、４つのフラグを含み、前記４つのフラグの各
々は、前記ＣＵのＩＮＴＲＡ＿Ｎ×Ｎ  ＰＵ構造のそれぞれのＰＵに関連付けられる、請
求項３９に記載のコンピュータ可読記憶媒体。
[Ｃ４５]  前記１つまたは複数のプロセッサに、
前記第１のシンタックス要素グループおよび前記第２のシンタックス要素グループに基
づいて前記ＣＵの前記ＰＵをイントラ予測符号化する
ことを行わせる命令をさらに備える、Ｃ３９に記載のコンピュータ可読記憶媒体。
[Ｃ４６]  ビデオデータを符号化するための装置であって、
第１のシンタックス要素グループを生成するための手段と、ここにおいて、前記第１の
シンタックス要素グループのシンタックス要素は、コーディングユニット（ＣＵ）中のそ
れぞれの予測ユニット（ＰＵ）のイントラ予測モードが最確モードリストへのインデック
スに基づくかどうかを示す、
第２のシンタックス要素グループを生成するための手段と、ここにおいて、前記第２の
シンタックス要素グループのシンタックス要素は、前記第１のシンタックス要素グループ
のそれぞれのシンタックス要素に対応する、
前記第１のシンタックス要素グループをコンテキスト適応型バイナリ算術コーディング
（ＣＡＢＡＣ）符号化するための手段と、
前記第１のシンタックス要素グループをＣＡＢＡＣ符号化した後に、前記第２のシンタ
ックス要素グループをバイパス符号化するための手段と、
前記符号化された第１のシンタックス要素グループと前記符号化された第２のシンタッ
クス要素グループとを含む前記ビデオデータを出力するための手段と
を備える装置。
[Ｃ４７]  前記第１のシンタックス要素グループは、複数のフラグを備え、
前記複数のフラグのフラグは、前記それぞれのＰＵのルーマサンプルの前記イントラ予
測モードが前記最確モードリストへの前記インデックスに基づくかどうかを示す前記第１
のシンタックス要素グループの前記シンタックス要素を備え、
前記第２のシンタックス要素グループは、
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づくことを示す場合に、前記最確モードリストへの前記インデックスを示す第１の
シンタックス要素、および
前記第１のシンタックス要素グループにおける前記フラグが、前記それぞれのＰＵの前
記ルーマサンプルの前記イントラ予測モードが前記最確モードリストへの前記インデック
スに基づかないことを示す場合に、前記それぞれのＰＵの前記ルーマサンプルの前記イン
トラ予測モードを示す第２のシンタックス要素
のうちの１つを備える、Ｃ４６に記載の装置。
【図１】
0005940726.tif 000020
【図２】
0005940726.tif 000021
【図３】
0005940726.tif 000022
【図４】
0005940726.tif 000023
【図５】
0005940726.tif 000024
【図６】
0005940726.tif 000025
【図７】
0005940726.tif 000026
【図８】
0005940726.tif 000027