(57)【特許請求の範囲】
【請求項１】
ビデオデータをコード化する方法であって、
前記ビデオデータの変換係数をエントロピーコード化するための複数のコンテキストモデルを維持することと、ここで、前記複数のコンテキストモデルは、異なる変換単位のサイズに各々使用される１つ以上のコンテキストモデルと、２つ以上の変換単位のサイズに使用される少なくとも１つのジョイントコンテキストモデルとを含む、
第１の変換単位又は第２の変換単位の一方の変換係数をエントロピーコード化するための、第１のサイズを有する前記第１の変換単位と前記第１のサイズとは異なる第２のサイズを有する前記第２の変換単位によって共有される前記ジョイントコンテキストモデルを選択することと、
前記ジョイントコンテキストモデルに従って前記第１の変換単位又は前記第２の変換単位の前記一方と関連する前記変換係数のコンテキストを選択することと、
選択された前記コンテキストに基づいて前記変換単位の前記一方の前記変換係数をエントロピーコード化することと、
を備え、前記変換単位の各々は、複数の変換係数を含む残差ビデオブロックデータ単位を備える、方法。
【請求項２】
前記ジョイントコンテキストモデルは、有意性マップの前記ジョイントコンテキストモデルを備え、
前記ジョイントコンテキストモデルに従って前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方に関連する前記変換係数の前記有意性マップの構成要素のコンテキストを選択することと、
選択された前記コンテキストに基づいて前記変換単位の前記一方に関連する前記有意性マップの前記構成要素をエントロピーコード化することと、をさらに備える、請求項１に記載の方法。
【請求項３】
前記ジョイントコンテキストモデルに従って前記変換係数のコンテキストを選択することは、
前記変換単位の前記一方の事前にコード化された近接する変換係数の値に基づいて前記変換係数の所与の１つに前記ジョイントコンテキストモデルのコンテキストを割り当てることと、
前記ジョイントコンテキストモデル内の割り当てられた前記コンテキストに関連する前記変換係数の前記所与の１つの値の確率推定値を決定することと、
前記第１のサイズを有する前記第１の変換単位及び前記第２のサイズを有する前記第２の変換単位の変換係数の実際にコード化された値に基づいて前記ジョイントコンテキストモデルの割り当てられた前記コンテキストと関連する前記確率推定値を更新すること、
を備える、請求項１に記載の方法。
【請求項４】
ビデオデータを復号する方法を含み、
前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方と関連する符号化された変換係数を表すビットストリームを受信すること、
前記ジョイントコンテキストモデルに従って、前記符号化された変換係数のコンテキストを選択すること、
選択された前記コンテキストに基づいて前記変換単位の前記一方に、前記符号化された変換係数をエントロピー復号すること、をさらに備える、請求項１に記載の方法。
【請求項５】
前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方の前記変換係数を残差画素値に逆変換することをさらに備える、請求項４に記載の方法。
【請求項６】
ビデオデータを符号化する方法を備え、
残差画素値を前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方の内の前記変換係数に変換することと、
前記ジョイントコンテキストモデルに従って前記変換単位の前記一方の前記変換係数のコンテキストを選択することと、
選択された前記コンテキストに基づいて前記変換単位の前記一方の前記変換係数をエントロピー符号化することと、をさらに備える、請求項１に記載の方法。
【請求項７】
前記第１のサイズの前記第１の変換単位は、３２×３２変換単位を備え、前記第２のサイズの前記第２の変換単位は１６×１６変換単位を備える、請求項１に記載の方法。
【請求項８】
前記ジョイントコンテキストモデルに従ってコンテキストを選択することは、
前記第１の変換単位の事前にコード化された近接する変換係数の値に基づいて前記第１のサイズを有する前記第１の変換単位の第１の変換係数に前記ジョイントコンテキストモデル内のコンテキストを割り当てることと、
前記ジョイントコンテキストモデル内の割り当てられた前記コンテキストに関連する前記第１の変換係数の値の確率推定値を求めることと、
前記第１の変換係数の実際のコード化された値に基づいて前記ジョイントコンテキストモデル内の割り当てられた前記コンテキストに関連する前記確率推定値を更新することと、
前記第２の変換単位の事前にコード化された近接する変換係数の値に基づいて前記第２のサイズを有する前記第２の変換単位の第２の変換係数に前記ジョイントコンテキストモデル内の同じコンテキストを割り当てることと、
前記ジョイントコンテキストモデル内の前記同じ割り当てられたコンテキストに関連する前記第２の変換係数の値の確率推定値を求めることと、
前記第２の変換係数の実際のコード化された値に基づいて前記ジョイントコンテキストモデル内の前記同じ割り当てられたコンテキストに関連する前記確率推定値を更新することと、を備える、請求項１に記載の方法。
【請求項９】
ビデオデータの変換係数をエントロピーコード化するための複数のコンテキストモデルを記憶するように構成されたメモリと、ここで、前記複数のコンテキストモデルは、異なる変換単位のサイズに各々使用される１つ以上のコンテキストモデルと、２つ以上の変換単位のサイズに使用される少なくとも１つのジョイントコンテキストモデルとを含む、
第１の変換単位又は第２の変換単位の一方の変換係数をエントロピーコード化するための、第１のサイズを有する前記第１の変換単位及び前記第１のサイズとは異なる第２のサイズを有する前記第２の変換単位によって共有される前記ジョイントコンテキストモデルを選択し、前記ジョイントコンテキストモデルに従って前記第１の変換単位又は前記第２の変換単位の前記一方に関連する前記変換係数のコンテキストを選択し、選択された前記コンテキストに基づいて前記変換単位の前記一方の前記変換係数をエントロピーコード化するように構成されたプロセッサと、を備え、前記変換単位の各々は、複数の変換係数を含む残差ビデオブロックデータ単位を備える、ビデオコード化装置。
【請求項１０】
前記ジョイントコンテキストモデルは、有意性マップの前記ジョイントコンテキストモデルを備え、前記プロセッサは、
前記ジョイントコンテキストモデルに従って前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方に関連する前記変換係数の前記有意性マップの構成要素のコンテキストを選択し、
選択された前記コンテキストに基づいて前記変換単位の前記一方に関連する前記有意性マップの前記構成要素をエントロピーコード化するように構成される、請求項９に記載のビデオコード化装置。
【請求項１１】
前記プロセッサは、
前記変換単位の前記一方の事前にコード化された近接する変換係数の値に基づいて前記ジョイントコンテキストモデル内のコンテキストを前記変換係数の所与の１つに割り当て、
前記ジョイントコンテキストモデル内の割り当てられた前記コンテキストに関連する前記変換係数の前記所与の１つの値の確率推定値を決定し、
前記第１のサイズを有する前記第１の変換単位及び前記第２のサイズを有する前記第２の変換単位の変換係数の実際のコード化された値に基づいて前記ジョイントコンテキストモデル内の割り当てられた前記コンテキストと関連する前記確率推定値を更新するように構成される、請求項９に記載のビデオコード化装置。
【請求項１２】
ビデオ復号装置を備え、前記プロセッサは、
前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方に関連する符号化された変換係数を表すビットストリームを受信し、
前記ジョイントコンテキストモデルに従って前記符号化された変換係数のコンテキストを選択し、
選択された前記コンテキストに基づいて前記符号化された変換係数を前記変換単位の前記一方にエントロピー復号するように構成される、請求項９に記載のビデオコード化装置。
【請求項１３】
前記プロセッサは、前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方の前記変換係数を残差画素値に逆変換するように構成される、請求項１２に記載のビデオコード化装置。
【請求項１４】
ビデオコード化装置を備え、前記プロセッサは、
残差画素値を前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方内の前記変換係数に変換し、
前記ジョイントコンテキストモデルに従って前記変換単位の前記一方の前記変換係数のコンテキストを選択し、
選択された前記コンテキストに基づいて前記変換単位の前記一方の前記変換係数をエントロピー符号化するように構成される、請求項９に記載のビデオコード化装置。
【請求項１５】
前記第１のサイズの前記第１の変換単位は、３２×３２変換単位を備え、前記第２のサイズの前記第２の変換単位は１６×１６変換単位を備える、請求項９に記載のビデオコード化装置。
【請求項１６】
前記プロセッサは、
前記第１の変換単位の事前にコード化された近接する変換係数の値に基づいて前記第１のサイズを有する前記第１の変換単位の第１の変換係数に前記ジョイントコンテキストモデル内のコンテキストを割り当て、
前記ジョイントコンテキストモデル内の割り当てられた前記コンテキストに関連する前記第１の変換係数の値の確率推定値を求め、
前記第１の変換係数の実際のコード化された値に基づいて前記ジョイントコンテキストモデル内の割り当てられた前記コンテキストに関連する前記確率推定値を更新し、
前記第２の変換単位の事前にコード化された近接する変換係数の値に基づいて前記第２のサイズを有する前記第２の変換単位の第２の変換係数に前記ジョイントコンテキストモデル内の同じコンテキストを割り当て、
前記ジョイントコンテキストモデル内の同じ割り当てられた前記コンテキストに関連する前記第２の変換係数の値の確率推定値を求め、
前記第２の変換係数の実際のコード化された値に基づいて前記ジョイントコンテキストモデル内の同じ割り当てられた前記コンテキストに関連する前記確率推定値を更新するように構成される、請求項９に記載のビデオコード化装置。
【請求項１７】
ビデオデータの変換係数をエントロピーコード化するための複数のコンテキストモデルを維持するための手段と、ここで、前記複数のコンテキストモデルは、異なる変換単位のサイズに各々使用される１つ以上のコンテキストモデルと、２つ以上の変換単位のサイズに使用される少なくとも１つのジョイントコンテキストモデルとを含む、
第１の変換単位又は第２の変換単位の一方の変換係数をエントロピーコード化するための、第１のサイズを有する前記第１の変換単位と前記第１のサイズとは異なる第２のサイズを有する前記第２の変換単位によって共有される前記ジョイントコンテキストモデルを選択するための手段と、
前記ジョイントコンテキストモデルに従って前記第１の変換単位又は前記第２の変換単位の前記一方に関連する前記変換係数のコンテキストを選択するための手段と、
選択された前記コンテキストに基づいて前記変換単位の前記一方の前記変換係数をエントロピーコード化するための手段とを備え、前記変換単位の各々は、複数の変換係数を含む残差ビデオブロックデータ単位を備える、ビデオコード化装置。
【請求項１８】
前記ジョイントコンテキストモデルは、有意性マップの前記ジョイントコンテキストモデルを備え、
前記ジョイントコンテキストモデルに従って前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方に関連する前記変換係数の前記有意性マップの構成要素のコンテキストを選択するための手段と、
選択された前記コンテキストに基づいて前記変換単位の前記一方に関連する前記有意性マップの前記構成要素をエントロピーコード化するための手段と、をさらに備える、請求項１７に記載のビデオコード化装置。
【請求項１９】
前記変換単位の前記一方の事前にコード化された近接する変換係数の値に基づいて前記ジョイントコンテキストモデル内のコンテキストを前記変換係数の所与の１つに割り当てるための手段と、
前記ジョイントコンテキストモデル内の割り当てられた前記コンテキストに関連する前記変換係数の前記所与の１つの値の確率推定値を決定するための手段と、
前記第１のサイズを有する前記第１の変換単位及び前記第２のサイズを有する前記第２の変換単位の変換係数の実際のコード化された値に基づいて前記ジョイントコンテキストモデル内の割り当てられた前記コンテキストに関連する前記確率推定値を更新するための手段と、
をさらに備える、請求項１７に記載のビデオコード化装置。
【請求項２０】
ビデオ復号装置を備え、
前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方に関連するコード化された変換係数を表すビットストリームを受信するための手段と、
前記ジョイントコンテキストモデルに従って前記コード化された変換係数のコンテキストを選択するための手段と、
選択された前記コンテキストに基づいて前記コード化された変換係数を前記変換単位の前記一方にエントロピー復号するための手段と、をさらに備える、請求項１７に記載のビデオコード化装置。
【請求項２１】
前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方の前記変換係数を残差画素値に逆変換するための手段をさらに備える、請求項２０に記載のビデオコード化装置。
【請求項２２】
ビデオコード化装置を備え、
残差画素値を前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方内の前記変換係数に変換するための手段と、
前記ジョイントコンテキストモデルに従って前記変換単位の前記一方の前記変換係数のコンテキストを選択するための手段と、
選択された前記コンテキストに基づいて前記変換単位の前記一方の前記変換係数をエントロピーコード化するための手段と、をさらに備える、請求項１７に記載のビデオコード化装置。
【請求項２３】
前記第１のサイズの前記第１の変換単位は、３２×３２変換単位を備え、前記第２のサイズの前記第２の変換単位は１６×１６変換単位を備える、請求項１７に記載のビデオコード化装置。
【請求項２４】
実行されたときに、プロセッサに、
ビデオデータの変換係数をエントロピーコード化するための複数のコンテキストモデルを維持させ、ここで、前記複数のコンテキストモデルは、異なる変換単位のサイズに各々使用される１つ以上のコンテキストモデルと、２つ以上の変換単位のサイズに使用される少なくとも１つのジョイントコンテキストモデルとを含む、
第１の変換単位又は第２の変換単位の一方の変換係数をエントロピーコード化するための、第１のサイズを有する前記第１の変換単位及び前記第１のサイズとは異なる第２のサイズを有する前記第２の変換単位によって共有される前記ジョイントコンテキストモデルを選択させ、
前記ジョイントコンテキストモデルに従って前記第１の変換単位又は前記第２の変換単位の前記一方に関連する変換係数のコンテキストを選択させ、
選択された前記コンテキストに基づいて前記変換単位の前記一方の前記変換係数をエントロピーコード化させる、前記ビデオデータをコード化するための命令を備え、前記変換単位の各々は、複数の変換係数を含む残差ビデオブロックデータ単位を備える、コンピュータ可読記憶媒体。
【請求項２５】
前記ジョイントコンテキストモデルは、有意性マップの前記ジョイントコンテキストモデルを備え、前記コンピュータ可読記憶媒体は、前記プロセッサに、
前記ジョイントコンテキストモデルに従って前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方に関連する前記変換係数の前記有意性マップの構成要素のコンテキストを選択させ、
選択された前記コンテキストに基づいて前記変換単位の前記一方に関連する前記有意性マップの前記構成要素をエントロピーコード化させる命令をさらに備える、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項２６】
前記命令は、前記プロセッサに、
前記変換単位の前記一方の事前にコード化された近接する変換係数の値に基づいて前記ジョイントコンテキストモデル内のコンテキストを前記変換係数の所与の１つに割り当てさせ、
前記ジョイントコンテキストモデル内の割り当てられた前記コンテキストに関連する前記変換係数の前記所与の１つの値の確率推定値を決定させ、
前記第１のサイズを有する前記第１の変換単位及び前記第２のサイズを有する前記第２の変換単位の変換係数の実際のコード化された値に基づいて前記ジョイントコンテキストモデル内の割り当てられた前記コンテキストに関連する前記確率推定値を更新させる命令を更に備える、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項２７】
前記命令は、ビデオデータを復号するための命令を備え、前記プロセッサに、
前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方に関連する符号化された変換係数を表すビットストリームを受信させ、
前記ジョイントコンテキストモデルに従って前記符号化された変換係数のコンテキストを選択させ、
選択された前記コンテキストに基づいて符号化された前記変換係数を前記変換単位の前記一方にエントロピー復号させる命令をさらに備える、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項２８】
前記プロセッサに、前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方の前記変換係数を残差画素値に逆変換させる命令をさらに備える、請求項２７に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記命令は、ビデオデータを符号化するための命令を備え、
残差画素値を前記第１のサイズを有する前記第１の変換単位又は前記第２のサイズを有する前記第２の変換単位の前記一方内の変換係数に変換させ、
前記ジョイントコンテキストモデルに従って前記変換単位の前記一方の前記変換係数のコンテキストを選択させ、
選択された前記コンテキストに基づいて前記変換単位の前記一方の前記変換係数をエントロピー符号化させる命令をさらに備える、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記第１のサイズの前記第１の変換単位は、３２×３２変換単位を備え、前記第２のサイズの前記第２の変換単位は１６×１６変換単位を備える、請求項２４に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオコード化に関し、より詳細には、ビデオコード化のためのエントロピーコード化に関する。
【背景技術】
【０００２】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録装置、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー電話又は衛星無線電話、ビデオ遠隔会議機器などを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコード化（ＡＶＣ：Advanced Video Coding）、又は新生の高効率ビデオコード化（ＨＥＶＣ）規格によって定義された規格、及びそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実施する。
【０００３】
ビデオ圧縮技法では、ビデオシーケンスに固有の冗長性を低減又は除去するために空間的予測及び／又は時間的予測を実行する。ブロックベースのビデオコード化の場合、ビデオフレーム又はスライスがビデオブロック又はコード化単位（ＣＵ）に区分され得る。ＣＵの予測ビデオデータを求めるために、ＣＵをさらに１つ以上の予測単位（ＰＵ）に区分してもよい。ビデオ圧縮技法では、ＣＵを、コード化すべきビデオブロックと予測ビデオデータとの差を表す残差ビデオブロックデータの１つ以上の変換単位（ＴＵ）に区分してもよい。２次元離散コサイン変換（ＤＣＴ）などの線形変換をＴＵに施して残差ビデオブロックデータを画素領域から周波数領域に変換して、さらなる圧縮を実現してもよい。
【０００４】
変換に続いて、ＴＵ内の変換係数を量子化によりさらに圧縮してもよい。量子化に続いて、エントロピーコード化ユニットが、ジグザグスキャン又はＴＵのサイズに関連する別のスキャン順序を適用してＴＵ内の係数の２次元アレイをスキャンし、エントロピーコード化することができるシリアル化されたベクトルを生成してもよい。エントロピーコード化ユニットは次いで、係数のシリアル化ベクトルをエントロピーコード化してもよい。例えば、エントロピーコード化ユニットは、コンテキスト適応型可変長コード化（ＣＡＶＬＣ）、コンテキスト適応型２値算術コード化（ＣＡＢＡＣ）、又は別のエントロピーコード化技法を実行し得る。コンテキスト適応エントロピーコード化の場合、エントロピーコード化ユニットは、ＴＵのサイズに関連するコンテキストモデルに従ってＴＵ内の各係数のコンテキストを選択することができる。次いで、選択されたコンテキストに基づいて各係数をエントロピーコード化してもよい。
【発明の概要】
【０００５】
概して、本開示では、それぞれ異なるサイズを有する変換単位同士の間で共有されるジョイントコンテキストモデルを使用して残差ビデオデータのブロックに関連する変換係数のエントロピーコード化及び復号を実行するための技法について説明する。例えば、ジョイントコンテキストモデルは、３２×３２の第１のサイズを有する変換単位と１６ｘ１６の第２のサイズを有する変換単位との間で共有されてもよい。場合によっては、２つよりも多くのサイズの変換単位が同じジョイントコンテキストモデルを共有してもよい。一例として、ジョイントコンテキストモデルは、変換単位の有意性マップのジョイントコンテキストモデルであってもよい。他の例では、ジョイントコンテキストモデルを他のコード化情報又はシンタックス要素に関連付けてもよい。
【０００６】
新生の高効率ビデオコード化（ＨＥＶＣ）規格では、コード化単位（ＣＵ）は、変換される残差ビデオデータを含む１つ以上の変換単位（ＴＵ）を含んでもよい。ビデオコード化効率を向上させるために、例えば、３２×３２から１２８ｘ１２８までの追加の変換単位サイズが提案されているが、この場合、追加の変換単位サイズの各々にコンテキストモデルを維持するためにメモリ及び計算要件も増大する。それぞれ異なるサイズの変換単位同士の間で共有されるジョイントコンテキストモデルを使用してエントロピーコード化を実行すると、ビデオ符号化装置及びビデオ復号装置上にコンテキスト及び確率を記憶するのに必要なメモリの量を低減させ、ビデオ符号化装置及び復号装置上にコンテキストモデルを維持することについての計算コストを削減することができる。
【０００７】
幾つかの例では、これらの技法は、２次元変換を実行するときに変換単位サイズを大きくする中間バッファリング要件を低減させることもできる。その場合、この技法は、２次元変換の各方向を適用して保持される係数ブロックを生成した後、第１のサイズの変換単位に含まれる変換係数のうちのより周波数の高い変換係数のサブセットのゼロ化、即ち、値をゼロに設定することを含む。この例では、エントロピーコード化のためのジョイントコンテキストモデルは、保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有する変換単位と本来第２のサイズを有する変換単位との間で共有されてもよい。場合によっては、保持される係数ブロックは、第２のサイズと等しいサイズを有してもよい。他の例では、エントロピーコード化のためのジョイントコンテキストモデルは、第１のサイズを有する変換単位と第２のサイズを有する変換単位との間で共有されてもよい。
【０００８】
一例において、本開示では、保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有する変換単位と第１のサイズとは異なる第２のサイズを有する変換単位とによって共有されるジョイントコンテキストモデルを維持することを備える、ビデオデータを復号する方法について説明する。この方法は、ジョイントコンテキストモデルに従って、保持される係数ブロックを含む第１のサイズと第２のサイズのうちの一方を有する変換単位に関連する係数のコンテキストを選択することと、選択されたコンテキストに基づくコード化プロセスに従って変換単位に関連する係数をエントロピーコード化することとも含む。
【０００９】
別の例において、本開示では、保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有する変換単位と第１のサイズとは異なる第２のサイズを有する変換単位とによって共有されるジョイントコンテキストモデルを記憶するメモリを備えるビデオコード化装置について説明する。ビデオコード化装置は、ジョイントコンテキストモデルを維持し、ジョイントコンテキストモデルに従って、保持される係数ブロックを含む第１のサイズと第２のサイズのうちの一方を有する変換単位に関連する係数のコンテキストを選択し、選択されたコンテキストに基づくコード化プロセスに従って変換単位に関連する係数をエントロピーコード化するように構成されたプロセッサをさらに含む。
【００１０】
さらなる一例において、本開示では、保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有する変換単位と第１のサイズとは異なる第２のサイズを有する変換単位とによって共有されるジョイントコンテキストモデルを維持するための手段を備えるビデオコード化装置について説明する。ビデオコード化装置は、ジョイントコンテキストモデルに従って、保持される係数ブロックを含む第１のサイズと第２のサイズのうちの一方を有する変換単位に関連する係数のコンテキストを選択するための手段と、選択されたコンテキストに基づくコード化プロセスに従って変換単位に関連する係数をエントロピーコード化するための手段も備える。
【００１１】
別の例において、本開示では、実行されたときに、保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有する変換単位と第１のサイズとは異なる第２のサイズを有する変換単位とによって共有されるジョイントコンテキストモデルをプロセッサに維持させる、ビデオデータをコード化するための命令を備えるコンピュータ可読媒体について説明する。この命令はまた、プロセッサに、ジョイントコンテキストモデルに従って、保持される係数ブロックを含む第１のサイズと第２のサイズのうちの一方を有する変換単位に関連する係数のコンテキストを選択させ、選択されたコンテキストに基づくコード化プロセスに従って変換単位に関連する係数をエントロピーコード化させる。
【００１２】
別の例において、本開示では、第１のサイズを有する変換単位と第１のサイズとは異なる第２のサイズを有する変換単位とによって共有されるジョイントコンテキストモデルを維持することを備える、ビデオデータをコード化する方法について説明する。この方法は、ジョイントコンテキストモデルに従って第１のサイズと第２のサイズのうちの一方を有する変換単位に関連する係数のコンテキストを選択することと、選択されたコンテキストに基づくコード化プロセスに従って変換単位の係数をエントロピーコード化することとも含む。
【００１３】
さらなる例において、本開示では、第１のサイズを有する変換単位と第１のサイズとは異なる第２のサイズを有する変換単位とによって共有されるジョイントコンテキストモデルを記憶するメモリと、ジョイントコンテキストモデルを維持し、ジョイントコンテキストモデルに従って第１のサイズと第２のサイズのうちの一方を有する変換単位に関連する係数のコンテキストを選択し、選択されたコンテキストに基づくコード化プロセスに従って変換単位の係数をエントロピーコード化するように構成されたプロセッサとを備えるビデオコード化装置について説明する。
【００１４】
さらなる例において、本開示では、第１のサイズを有する変換単位と第１のサイズとは異なる第２のサイズを有する変換単位とによって共有されるジョイントコンテキストモデルを維持するための手段を備えるビデオコード化装置について説明する。このビデオコード化装置は、ジョイントコンテキストモデルに従って第１のサイズと第２のサイズのうちの一方を有する変換単位に関連する係数のコンテキストを選択するための手段と、選択されたコンテキストに基づくコード化プロセスに従って変換単位の係数をエントロピーコード化するための手段とも含む。
【００１５】
別の例において、本開示では、実行されたときに、プロセッサに、第１のサイズを有する変換単位と第１のサイズとは異なる第２のサイズを有する変換単位とによって共有されるジョイントコンテキストモデルをプロセッサに維持させ、ジョイントコンテキストモデルに従って第１のサイズと第２のサイズのうちの一方を有する変換単位に関連する係数のコンテキストを選択させ、選択されたコンテキストに基づくコード化プロセスに従って変換単位の係数をエントロピーコード化させる、ビデオデータをコード化するための命令を備えるコンピュータ可読媒体について説明する。
【図面の簡単な説明】
【００１６】
【図１】それぞれ異なるサイズを有する変換単位同士の間で共有されるジョイントコンテキストモデルを使用してビデオ係数のエントロピーコード化を実行するための技法を利用できる例示的なビデオ符号化及び復号システムを示すブロック図。
【図２】ジョイントコンテキストモデルを使用してビデオ係数をエントロピー符号化するための技法を実施できる例示的なビデオエンコーダを示すブロック図。
【図３Ａ】第１のサイズを有する変換単位から得た第２のサイズを有する保持される係数ブロックの方形領域を示す概念図。
【図３Ｂ】第１のサイズを有する変換単位から得た第２のサイズを有する保持される係数ブロックの矩形領域を示す概念図。
【図４】ジョイントコンテキストモデルを使用してビデオ係数をエントロピー復号するための技法を実施することのできる例示的なビデオデコーダを示すブロック図。
【図５】ジョイントコンテキストモデルに従ってビデオ係数のコンテキストを選択するように構成された例示的なエントロピー符号化ユニットを示すブロック図。
【図６】ジョイントコンテキストモデルに従ってビデオ係数のコンテキストを選択するように構成された例示的なエントロピー復号ユニットを示すブロック図。
【図７】第１のサイズを有する第１の変換単位と第２のサイズを有する第２の変換単位との間で共有されるジョイントコンテキストモデルを使用してビデオ係数をエントロピー符号化しかつエントロピー復号する例示的な動作を示すフローチャート。
【図８】第２のサイズを有する保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有する第１の変換単位と第２のサイズを有する第２の変換単位との間で共有されるジョイントコンテキストモデルを使用してビデオ係数をエントロピー符号化しかつエントロピー復号する例示的な動作を示すフローチャート。
【発明を実施するための形態】
【００１７】
概して、本開示では、それぞれ異なるサイズを有する変換単位同士の間で共有されるジョイントコンテキストモデルを使用して残差ビデオデータのブロックに関連する変換係数のエントロピー符号化及び復号を実行するための技法について説明する。例えば、ジョイントコンテキストモデルは、３２×３２の第１のサイズを有する変換単位と１６×１６の第２のサイズを有する変換単位との間で共有されてもよい。新生の高効率ビデオコード化（ＨＥＶＣ）規格では、コード化単位（ＣＵ）は、残差ビデオデータを含む１つ以上の変換単位（ＴＵ）を含んでもよい。変換の前に、残差ビデオデータは残差画素値を空間領域に含む。変換後、残差ビデオデータは残差変換係数を変換領域に含む。ビデオコード化効率を向上させるために、例えば、３２×３２から１２８×１２８までの追加の変換単位サイズが提案されているが、その結果、追加の変換単位サイズの各々にコンテキストモデルを維持するためにメモリ及び計算要件も増大する。それぞれ異なるサイズの変換単位同士の間で共有されるジョイントコンテキストモデルを使用してエントロピーコード化を実行すると、ビデオ符号化装置及びビデオ復号装置上にコンテキスト及び確率を記憶するのに必要なメモリの量を低減させ、ビデオ符号化装置及び復号装置上にコンテキストモデルを維持することについての計算コストを削減することができる。
【００１８】
幾つかの例では、これらの技法は、２次元変換を実行するときに変換単位サイズを大きくする中間バッファリング要件を低減させることもできる。この技法は、２次元変換の各方向を適用して保持される係数ブロックを生成した後、第１のサイズの変換単位に含まれる変換係数のうちのより周波数の高い変換係数のサブセットのゼロ化、即ち値をゼロに設定することを含む。その場合、ビデオ符号化装置及び復号装置は、２次元変換の各方向、即ち行方向及び列方向を適用する合間にバッファリングする係数の数を減らすことができる。第１のサイズを有する変換単位においてより周波数の高い係数がゼロ化されるとき、保持される係数ブロックに含まれる係数は、本来第２のサイズを有する変換単位に含まれる係数と同様の確率統計を有する。この場合、エントロピーコード化のためのジョイントコンテキストモデルは、保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有する変換単位と本来第２のサイズを有する変換単位との間で共有されてもよい。場合によっては、保持される係数ブロックは、第２のサイズと等しいサイズを有してもよい。他の場合には、保持される係数ブロックは、第１のサイズとも第２のサイズとも異なる第３のサイズと等しいサイズを有してもよい。
【００１９】
他の例では、第１のサイズを有する第１の変換単位に含まれる係数は、第１の変換単位内のより周波数の高い係数をゼロ化しない場合でも第２のサイズの第２の変換単位に含まれる係数と同様の確率統計を有してもよい。このことは、より周波数の高い係数が、エントロピーコード化のための近接する係数の確率統計に対する影響が無視できるのほど少ない残差ビデオデータを表し得るために可能になる。この場合、エントロピーコード化のためのジョイントコンテキストモデルは、第１のサイズを有する変換単位と第２のサイズを有する変換単位との間で共有されてもよい。
【００２０】
図１は、それぞれ異なるサイズを有する変換単位同士の間で共有されるジョイントコンテキストモデルを使用してビデオ係数のエントロピーコード化を実行するための技法を利用することのできる例示的なビデオ符号化及び復号システムを示すブロック図である。図１に示すように、システム１０は、符号化されたビデオを記憶し、及び／又は通信チャネル１６を介して符号化ビデオを宛先機器１４へ送信することのできる発信源機器１２を含む。発信源機器１２及び宛先機器１４は、必ずしも互いにリアルタイムにアクティブに通信するとは限らない。場合によっては、発信源機器１２は、宛先機器１４が必要に応じてディスクアクセスを介してアクセスすることができる記憶媒体に符号化されたビデオデータを記憶してもよく、又は宛先機器１４が必要に応じてストリーミングを介してアクセスすることができるファイルサーバに符号化されたビデオデータを記憶してもよい。発信源機器１２及び宛先機器１４は、広範囲の機器のいずれかを備えてもよい。場合によっては、発信源機器１２及び宛先機器１４は、通信チャネル１６を介してビデオ情報を通信することができるワイヤレス通信機器を備え得、その場合、通信チャネル１６はワイヤレスである。
【００２１】
但し、ジョイントコンテキストモデルを使用したビデオ係数のエントロピーコード化に関する本開示の技法は、必ずしもワイヤレスアプリケーション又はワイヤレス設定に限定されるとは限らない。例えば、これらの技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタルビデオ、又は他のシナリオに適用し得る。従って、通信チャネル１６は、符号化ビデオデータの送信に好適なワイヤレス又はワイヤード媒体の任意の組合せを備え得、機器１２、１４は、携帯電話、スマートフォン、デジタルメディアプレーヤ、セットトップボックス、テレビジョン、表示器、デスクトップコンピュータ、ポータブルコンピュータ、タブレットコンピュータ、ゲームコンソール、ポータブルゲーム機器などの様々なワイヤード又はワイヤレス媒体機器のいずれかを備え得る。
【００２２】
図１の例では、発信源機器１２は、ビデオ発信源１８と、ビデオエンコーダ２０と、変調器／復調器（モデム）２２と、送信機２４とを含む。宛先機器１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、表示装置３２とを含む。他の例では、発信源機器及び宛先機器は他の構成要素又は構成を含み得る。例えば、発信源機器１２は、外部カメラ、ビデオストレージアーカイブ、コンピュータグラフィックスソースなどの外部ビデオ発信源１８からビデオデータを受信し得る。同様に、宛先機器１４は、一体型表示装置を含むのではなく、外部表示装置とインターフェースし得る。
【００２３】
図１の図示のシステム１０は一例にすぎない。他の例では、任意のデジタルビデオ符号化装置及び／又は復号装置が、ジョイントコンテキストモデルを使用してビデオ係数のエントロピーコード化のための開示された技法を実行してもよい。本技法はまた、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによって実行され得る。さらに、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。発信源機器１２及び宛先機器１４は、発信源機器１２が宛先機器１４に送信するためのコード化されたビデオデータを発生するような、コード化装置の例にすぎない。幾つかの例では、機器１２、１４の各々がビデオ符号化構成要素及び復号構成要素を含むように、機器１２、１４は、実質的に対称的に動作し得る。従って、システム１０は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト又はビデオ電話通信のためのビデオ機器１２とビデオ機器１４との間の一方向又は双方向のビデオ送信をサポートすることができる。
【００２４】
発信源機器１２のビデオ発信源１８は、ビデオカメラなどの撮像装置、以前に撮影されたビデオを含んでいるビデオアーカイブ、及び／又はビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオ発信源１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、又はライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオ発信源１８がビデオカメラである場合、発信源機器１２及び宛先機器１４は、いわゆるカメラ付き携帯電話又はビデオ電話を形成することができる。但し、上述のように、本開示で説明する技法は、一般にビデオコード化に適用可能であり、ワイヤレス及び／又はワイヤードアプリケーションに適用可能であり得る。各場合に、撮影されたビデオ、以前に撮影されたビデオ又はコンピュータ生成ビデオは、ビデオエンコーダ２０によって符号化され得る。次いで、符号化ビデオ情報は、通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先機器１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器又は他の構成要素を含んでもよい。送信機２４は、増幅器、フィルタ、及び１つ以上のアンテナを含む、データを送信するために設計された回路を含んでもよい。
【００２５】
本開示によれば、発信源機器１２のビデオエンコーダ２０は、ジョイントコンテキストモデルを使用してビデオ係数をエントロピー符号化するための技法を適用するように構成され得る。ビデオフレームのコード化単位（ＣＵ）は、残差ビデオデータを含む１つ以上の変換単位（ＴＵ）を含んでもよい。変換の前に、残差ビデオデータは残差画素値を空間領域に含む。変換後、残差ビデオデータは残差変換係数を変換領域に含む。ビデオエンコーダ２０は、異なるサイズを有する変換単位同士の間で共有されるジョイントコンテキストモデルを維持し、ジョイントコンテキストモデルに従って１つの変換単位に関連する係数のコンテキストを選択してもよい。次いで、ビデオエンコーダ２０は、選択されたコンテキストに基づいて係数をエントロピー符号化してもよい。
【００２６】
一例として、ジョイントコンテキストモデルは、３２×３２の第１のサイズを有する変換単位と１６×１６の第２のサイズを有する変換単位との間で共有されてもよい。他の例では、２つよりも多くのサイズの変換単位が同じジョイントコンテキストモデルを共有してもよい。さらに、２つ又はそれ以上の変換単位がＴＵ用の幾つかのコンテキストモデル又は全てのコンテキストモデルを共有してもよい。ある場合には、ジョイントコンテキストモデルは、ＴＵの有意性マップのジョイントコンテキストモデルであってもよい。他の場合には、ジョイントコンテキストモデルを他のコード化情報又はシンタックス要素に関連付けてもよい。従って、これらの技法は、ビデオエンコーダ２０上にコンテキスト及び確率を記憶するのに必要なメモリの量を低減させ、ビデオエンコーダ２０上にコンテキストモデルを維持することについての計算コストを削減することができる。
【００２７】
一例では、ビデオエンコーダ２０は、２次元変換の各方向を適用して保持される係数ブロックを生成した後、第１のサイズの変換単位に含まれる変換係数のうちのより周波数の高い変換係数のサブセットをゼロ化し、即ち値をゼロに設定することができる。この場合、各技法は、２次元変換の各方向、即ち行方向及び列方向を適用する合間にバッファリングすべき係数の数を減らすことができる。変換単位においてより周波数の高い係数がゼロ化されるとき、保持される係数ブロックに含まれる係数は、本来第２のサイズを有する変換単位に含まれる係数と同様の確率統計を有する。この例では、ビデオエンコーダ２０は、保持される係数ブロックを生成するためにゼロ化される係数を含む第１のサイズを有する変換単位と第２のサイズを有する変換単位とによって共有されるジョイントコンテキストモデルを維持し、ジョイントコンテキストモデルに従って、保持される係数ブロックを含む第１のサイズと第２のサイズのうちの一方の変換単位の係数のコンテキストを選択してもよい。場合によっては、保持される係数ブロックは、第２のサイズと等しいサイズを有してもよい。他の場合には、保持される係数ブロックは、第１のサイズとも第２のサイズとも異なる第３のサイズと等しいサイズを有してもよい。
【００２８】
別の例では、第１のサイズを有する第１の変換単位に含まれる係数は、第１の変換単位内のより周波数の高い係数をゼロ化しない場合でも第２のサイズを有する第２の変換単位に含まれる係数と同様の確率統計を有してもよい。このことは、高周波数係数が、エントロピーコード化のための近接する係数の確率統計に対する影響が無視できるほど少ない残差ビデオデータを表し得るために可能になる。この例では、ビデオエンコーダ２０は、第１のサイズを有する変換単位と第２のサイズを有する変換単位とによって共有されるジョイントコンテキストモデルを維持し、ジョイントコンテキストモデルに従って、第１のサイズと第２のサイズのうちの一方の変換単位の係数のコンテキストを選択してもよい。場合によっては、第１のサイズ及び第２のサイズの変換単位内の高周波数係数のみがジョイントコンテキストモデルを共有してもよい。第１のサイズの変換内の低周波数係数、例えばＤＣ構成要素及び近接する係数は、第２のサイズの変換内の低周波数係数とは異なるコンテキストモデルを使用してもよい。
【００２９】
宛先機器１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８は情報を復調する。チャネル１６を介して伝達される情報は、コード化単位（ＣＵ）、予測単位（ＰＵ）、変換単位（ＴＵ）、又はコード化されたビデオの他の単位、例えば、ビデオスライス、ビデオフレーム、及びビデオシーケンス又はピクチャグループ（ＧＯＰ）の特性及び／又は処理を記述するシンタックス要素を含む、ビデオデコーダ３０によっても使用される、ビデオエンコーダ２０によって定義されるシンタックス情報を含み得る。表示装置３２は、復号されたビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶表示器（ＬＣＤ）、プラズマ表示器、有機発光ダイオード（ＯＬＥＤ）表示器、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。
【００３０】
本開示によれば、宛先機器１４のビデオデコーダ３０は、ジョイントコンテキストモデルを使用してビデオ係数をエントロピー復号するための技法を適用するように構成され得る。復号すべきビデオフレームのＣＵは、変換前及び変換後の残差ビデオデータを含む１つ以上のＴＵを含んでもよい。ビデオデコーダ３０は、それぞれ異なるサイズを有する変換単位同士の間で共有されるジョイントコンテキストモデルを維持し、ジョイントコンテキストモデルに従って１つの変換単位に関連する係数のコンテキストを選択してもよい。次いで、ビデオデコーダ３０は、選択されたコンテキストに基づいて係数をエントロピー復号してもよい。
【００３１】
一例として、ジョイントコンテキストモデルは、３２×３２の第１のサイズを有する変換単位と１６×１６の第２のサイズを有する変換単位との間で共有されてもよい。上述のように、他の例では、２つよりも多くのサイズの変換単位が同じジョイントコンテキストモデルを共有してもよい。さらに、２つ又はそれ以上の変換単位がＴＵ用の幾つかのコンテキストモデル又は全てのコンテキストモデルを共有してもよい。ある場合には、ジョイントコンテキストモデルは、ＴＵの有意性マップのジョイントコンテキストモデルであってもよい。他の場合には、ジョイントコンテキストモデルを他のコード化情報又はシンタックス要素に関連付けてもよい。従って、これらの技法は、ビデオデコーダ３０上にコンテキスト及び確率を記憶するのに必要なメモリの量を低減させ、ビデオデコーダ３０上にコンテキストモデルを維持することについての計算コストを削減することができる。
【００３２】
一例では、ビデオデコーダ３０は、保持される係数ブロックに関連付けられた符号化された係数、及び第１のサイズを有する変換単位におけるゼロ化された係数を表すビットストリームを受信してもよい。変換単位においてより周波数の高い係数がゼロ化されるとき、保持される係数ブロックに含まれる係数は、本来第２のサイズを有する変換単位に含まれる係数と同様の確率統計を有する。この例では、ビデオデコーダ３０は、保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有する変換単位と第２のサイズを有する変換単位とによって共有されるジョイントコンテキストモデルを維持し、ジョイントコンテキストモデルに従って、保持される係数ブロックを含む第１のサイズと第２のサイズのうちの一方の変換単位に関連する符号化された係数のコンテキストを選択してもよい。場合によっては、保持される係数ブロックは、第２のサイズと等しいサイズを有してもよい。他の場合には、保持される係数ブロックは、第１のサイズとも第２のサイズとも異なる第３のサイズと等しいサイズを有してもよい。
【００３３】
別の例では、ビデオデコーダ３０は、第１のサイズと第２のサイズのうちの一方を有する変換単位に関連付けられた符号化された係数を表すビットストリームを受信してもよい。第１のサイズを有する第１の変換単位に含まれる係数は、第１の変換単位内の高周波数係数をゼロ化しない場合でも第２のサイズの変換単位に含まれる係数と同様の確率統計を有してもよい。この例では、ビデオデコーダ３０は、第１のサイズを有する変換単位と第２のサイズを有する変換単位とによって共有されるジョイントコンテキストモデルを維持し、ジョイントコンテキストモデルに従って第１のサイズと第２のサイズのうちの一方の変換単位に関連する符号化された係数のコンテキストを選択してもよい。場合によっては、第１のサイズ及び第２のサイズの変換単位内の高周波数係数のみがジョイントコンテキストモデルを共有してもよい。第１のサイズの変換内の低周波数係数、例えばＤＣ構成要素及び近接する係数は、第２のサイズの変換内の低周波数係数とは異なるコンテキストモデルを使用してもよい。
【００３４】
図１の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトル又は１つ以上の物理的伝送線路など、ワイヤレス又はワイヤードの任意の通信媒体、若しくはワイヤレス及びワイヤードの媒体の任意の組合せを備えることができる。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成することができる。通信チャネル１６は、一般に、ワイヤード又はワイヤレス媒体の任意の好適な組合せを含む、ビデオデータを発信源機器１２から宛先機器１４に送信するのに好適な任意の通信媒体、又は様々な通信媒体の集合体を表す。通信チャネル１６は、発信源機器１２から宛先機器１４への通信を可能にするのに有用なルータ、スイッチ、基地局、又は任意の他の機器を含んでもよい。上述のように、場合によっては、発信源機器１２と宛先機器１４は、通信チャネル１６を介してリアルタイムにアクティブに通信しなくてもよい。その代わりに、例えば、発信源機器１２は、宛先機器１４が必要に応じてディスクアクセスを介してアクセスすることができる記憶媒体に符号化されたビデオデータを記憶してもよく、あるいは宛先機器１４が必要に応じてストリーミングを介してアクセスすることができるファイルサーバに符号化されたビデオデータを記憶してもよい。
【００３５】
ビデオエンコーダ２０及びビデオデコーダ３０は、新生の高効率ビデオコード化（ＨＥＶＣ）規格又は代替的にＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコード化（ＡＶＣ）とも呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、ビデオ圧縮規格に従って動作し得る。但し、本開示の技法は、いかなる特定のコード化規格にも限定されない。他の例にはＭＰＥＧ−２及びＩＴＵ−Ｔ  Ｈ．２６３がある。図１には示されていないが、幾つかの態様では、ビデオエンコーダ２０及びビデオデコーダ３０は、それぞれオーディオエンコーダ及びデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、又は他のハードウェア及びソフトウェアを含んで、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化に対処し得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠することができる。
【００３６】
ＨＥＶＣの規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコード化装置のモデルに基づく。ＨＭは、例えば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存の機器に対してビデオコード化装置の幾つかの追加の能力を仮定する。ＨＭは、ビデオデータのブロックをコード化単位（ＣＵ）と称する。ビットストリーム内のシンタックスデータが、画素の数に関して最大のコード化単位である最大コード化単位（ＬＣＵ）を定義し得る。概して、ＣＵは、ＣＵがサイズの差異を有さないことを除いて、Ｈ．２６４規格のマクロブロックと同様の目的を有する。従って、ＣＵは、サブＣＵに分割され得る。概して、本開示におけるＣＵへの言及は、ピクチャの最大コード化単位又はＬＣＵのサブＣＵを指すことがある。ＬＣＵはサブＣＵに分割され得、各サブＣＵは、さらに、サブＣＵに分割され得る。ビットストリームのシンタックスデータは、ＣＵ深さと呼ばれる、ＬＣＵが分割され得る最大回数を定義し得る。従って、ビットストリームは最小コード化単位（ＳＣＵ）をも定義し得る。
【００３７】
それ以上分割されないＣＵ（即ち、ＬＣＵのリーフノード）は、１つ以上の予測単位（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部又は一部分を表し、そのＰＵの参照サンプルを取り出すためのデータを含む。例えば、ＰＵがイントラモード符号化されるとき、ＰＵは、そのＰＵのためのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（例えば、１／２画素精度、１／４画素精度又は１／８画素精度）、動きベクトルが指し示す参照フレーム、及び／又は動きベクトルの参照フレームリスト（例えば、リスト０又はリスト１）を記述し得る。（１つ以上の）ＰＵを定義するＣＵについてのデータは、例えば、１つ以上のＰＵへのＣＵの区分についても記述し得る。区分モードは、ＣＵが、スキップモード符号化又はダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかによって異なり得る。
【００３８】
１つ以上のＰＵを有するＣＵは、１つ以上の変換単位（ＴＵ）をも含み得る。ＰＵを使用した予測に続いて、ビデオエンコーダは、ＰＵに対応するＣＵの部分についての残差値を計算し得る。ＴＵに含まれる残差値は、エントロピーコード化のためのシリアル化変換係数を生成するために、変換係数に変換され、次いで量子化され、スキャンされ得る画素差分値に対応する。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。従って、各ＴＵは、同じＣＵについての対応するＰＵよりも大きくても小さくてもよい。幾つかの例では、ＴＵの最大サイズは、対応するＣＵのサイズであり得る。本開示は、ＣＵ、ＰＵ、又はＴＵのいずれかを指すために「ビデオブロック」という用語を使用する。
【００３９】
ビデオエンコーダ２０及びビデオデコーダ３０はそれぞれ、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、又はそれらの任意の組合せとして実施され得る。ビデオエンコーダ２０及びビデオデコーダ３０の各々は１つ以上のエンコーダ又はデコーダ中に含まれ得、そのいずれも複合エンコーダ／デコーダ（コーデック）の一部としてそれぞれのカメラ、コンピュータ、モバイル機器、加入者機器、ブロードキャスト機器、セットトップボックス、サーバなどに統合され得る。
【００４０】
ビデオシーケンス又はピクチャのグループ（ＧＯＰ）は、一般に一連のビデオフレームを含む。ＧＯＰは、ＧＯＰ中に含まれる幾つかのフレームを記述するシンタックスデータを、ＧＯＰのヘッダ、ＧＯＰの１つ以上のフレームのヘッダ、又は他の場所中に含み得る。各フレームは、それぞれのフレームについての符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに対して動作する。ビデオブロックは、ＣＵ又はＣＵのＰＵに対応し得る。ビデオブロックは、サイズを固定することも変更することもでき、指定のコード化規格に応じてサイズが異なることがある。各ビデオフレームは複数のスライスを含み得る。各スライスは、１つ以上のＰＵを含み得る、複数のＣＵを含み得る。
【００４１】
一例として、ＨＥＶＣテストモデル（ＨＭ）は、様々なＣＵサイズでの予測をサポートする。ＬＣＵのサイズは、シンタックス情報によって定義され得る。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２Ｎ又はＮ×Ｎのサイズでのイントラ予測をサポートし、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、又はＮ×Ｎの対称サイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、及びｎＲ×２Ｎのインター予測のための非対称分割をサポートする。非対称分割では、ＣＵの一方向は分割されないが、他の方向が２５％と７５％とに分割される。２５％の分割に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、又は「Ｒｉｇｈｔ」という表示によって示される。従って、例えば「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵと下部の２Ｎ×１．５Ｎ  ＰＵとで水平方向に分割される２Ｎ×２Ｎ  ＣＵを指す。
【００４２】
本開示では、「Ｎ×（x）Ｎ」と「Ｎ×（by）Ｎ」とは、垂直寸法及び水平寸法に関するビデオブロック（例えば、ＣＵ、ＰＵ、又はＴＵ）の画素寸法、例えば、１６×（x）１６画素又は１６×（by）１６画素を指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６画素を有し（ｙ＝１６）、水平方向に１６画素を有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮ画素を有し、水平方向にＮ画素を有し、Ｎは、非負整数値を表す。ブロック中の画素は行と列に構成され得る。さらに、ブロックは、必ずしも、水平方向に垂直方向と同じ数の画素を有する必要はない。例えば、ブロックは、Ｎ×Ｍ画素を有する矩形領域を備え得、Ｍは必ずしもＮに等しいとは限らない。
【００４３】
イントラ予測コード化又はインター予測コード化を行ってＣＵのためのＰＵを生成した後、ビデオエンコーダ２０は、残差データを計算して、ＣＵのための１つ以上のＴＵを生成し得る。残差データは、非符号化ピクチャの画素とＣＵのＰＵの予測値との間の画素差分に対応し得る。ビデオエンコーダ２０は、ＣＵについての残差データを含む１つ以上のＴＵを形成し得る。ビデオエンコーダ２０は、次いで、ＴＵを変換し得る。離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、又は概念的に同様の変換などの変換が施される前に、ＣＵの各ＴＵは、画素領域に画素差分値を備える残差ビデオデータを備えてもよい。変換が施された後、各ＴＵは、残差ビデオデータを表す変換係数を周波数領域に備えてもよい。
【００４４】
変換係数を生成するための変換の後、変換係数の量子化が実行され得る。量子化は、概して、係数を表すために使用されるデータ量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減させることができる。例えば、量子化中にｎビット値がｍビット値に切り捨てられ得、ｎはｍよりも大きい。
【００４５】
ビデオエンコーダ２０は、ジグザグスキャン、水平スキャン、垂直スキャン、又はＴＵのサイズに関連する別のスキャン順序を適用して量子化変換係数をスキャンし、エントロピー符号化することのできるシリアル化されたベクトルを生成することができる。幾つかの例では、ビデオエンコーダ２０は、予め定義されたスキャン順序を利用して量子化変換係数をスキャンし得る。他の例では、ビデオエンコーダ２０は、適応型スキャンを実行し得る。ビデオエンコーダ２０は、量子化変換係数をスキャンして１次元ベクトルを形成した後、例えば、コンテキスト適応型可変長コード化（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コード化（ＣＡＢＡＣ）、又は別のエントロピー符号化方法に従って１次元ベクトルをエントロピー符号化し得る。
【００４６】
ビデオエンコーダ２０は、コンテキスト適応型エントロピーコード化を実行するために、例えば、近接する係数の値が非ゼロであるかどうかに関係し得るコンテキストモデルに従って各係数にコンテキストを割り当ててもよい。ビデオエンコーダ２０は次いで、コンテキストモデル内の割り当てられたコンテキストに関連する係数用のコード化プロセスを決定する。従来、ビデオエンコーダ２０は、実装されるビデオ圧縮規格によって支持されるＴＵの様々なサイズの各々に別個のコンテキストモデルを維持しなければならない。ビデオコード化効率を向上させるために、例えば、３２×３２から１２８×１２８までの追加の変換単位サイズが提案されているが、追加のＴＵサイズによって、追加の変換単位サイズの各々にコンテキストモデルを維持するためにメモリ及び計算要件も増大する。
【００４７】
本開示の各技法によれば、ビデオエンコーダ２０は、コンテキスト適応型エントロピーコード化を実行するために、様々なサイズのＴＵ同士の間で共有されるジョイントコンテキストモデルに従って各係数のコンテキストを選択することができる。より具体的には、ビデオエンコーダ２０は、ＴＵの事前に符号化された近接する係数の値に基づいてＴＵの所与の係数にジョイントコンテキストモデル内のコンテキストを割り当てることができる。割り当てられるコンテキストは、ＴＵによって共有されるジョイントコンテキストモデルによって定義される基準に基づいて選択される。ビデオエンコーダ２０は、ジョイントコンテキストモデル内の割り当てられたコンテキストに関連する係数用のコード化プロセスを決定してもよい。次いで、ビデオエンコーダ２０は、求められた確率推定値に基づいて係数をエントロピー符号化する。例えば、ＣＡＢＡＣの場合、ビデオエンコーダ２０は、ジョイントコンテキストモデル内の割り当てられたコンテキストに関連する係数の値（例えば、０又は１）の確率推定値を求めてもよい。ビデオエンコーダ２０は次いで、係数の実際のコード化された値に基づいてジョイントコンテキストモデル内の割り当てられたコンテキストに関連する確率推定値を更新する。
【００４８】
一例として、ビデオエンコーダ２０は、本来第１のサイズを有する第１の変換単位内の保持される係数ブロック又は本来第２のサイズを有する第２の変換単位のいずれかに関連する係数に同じジョイントコンテキストモデルを使用してコンテキストを選択してもよい。さらに、ビデオエンコーダ２０は、本来第１のサイズを有する第１の変換単位内の保持される係数ブロック又は本来第２のサイズを有する第２の変換単位のいずれかの係数の実際のコード化された値に基づいてジョイントコンテキストモデル内の選択されたコンテキストに関連する確率推定値を更新してもよい。別の例として、ビデオエンコーダ２０は、第１のサイズを有する第１の変換単位又は第２のサイズを有する第２の変換単位のいずれかに関連する係数に同じジョイントコンテキストモデルを使用してコンテキストを選択してもよい。この場合、ビデオエンコーダ２０は次いで、第１のサイズの第１の変換単位又は第２のサイズの第２の変換単位のいずれかの係数の実際のコード化された値に基づいてジョイントコンテキストモデル内の選択されたコンテキストに関連する確率推定値を更新してもよい。
【００４９】
いずれの場合も、２つ又はそれ以上のサイズの変換単位間でジョイントコンテキストモデルを共有すると、ビデオエンコーダ２０上にコンテキスト及び確率を記憶するのに必要なメモリの量を低減させることができる。さらに、ジョイントコンテキストモデルを共有すると、ビデオスライスの開始時に全てのコンテキストモデルをリセットすることを含む、ビデオエンコーダ２０上にコンテキストモデルを維持することについての計算コストを削減することもできる。
【００５０】
ビデオエンコーダ２０は、予測情報を示すシンタックス要素をエントロピー符号化してもよい。例えば、ビデオエンコーダ２０は、ＣＵ、ＰＵ、及びＴＵのサイズを含むビデオブロック情報、イントラモード予測に関する動きベクトル情報、ならびに有効係数マップ情報、即ちＣＡＢＡＣ用の、有効係数の位置を示す１及び０のマップを含むシンタックス要素をエントロピー符号化してもよい。ビデオデコーダ３０は、ビデオエンコーダ２０の動作と本質的に対称的な形で動作し得る。
【００５１】
図２は、ジョイントコンテキストモデルを使用してビデオ係数をエントロピー符号化するための技法を実施することのできる例示的なビデオエンコーダを示すブロック図である。ビデオエンコーダ２０は、ビデオフレーム内のコード化単位のイントラコード化及びインターコード化を実行し得る。イントラコード化は、所与のビデオフレーム内のビデオの空間的冗長性を低減又は除去するために空間的予測に依拠する。インターコード化は時間的予測を利用して、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減又は除去する。イントラモード（Ｉモード）は、幾つかの空間ベースの圧縮モードのいずれかを指すことがある。単方向予測（Ｐモード）、双方向予測（Ｂモード）、又は一般化Ｐ／Ｂ予測（ＧＰＢモード）などのインターモードは、幾つかの時間ベースの圧縮モードのいずれかを指すことがある。
【００５２】
図２の例では、ビデオエンコーダ２０は、モード選択ユニット３８と、予測ユニット４０と、加算ユニット５０と、変換ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６と、参照フレームメモリ６４とを含む。予測ユニット４０は、動き推定ユニット４２と、動き補償ユニット４４と、イントラ予測ユニット４６とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算ユニット６２とを含む。ブロック境界をフィルタ処理して再構成されたビデオからブロッキネスアーティファクトを除去するために、デブロッキングフィルタ又は適合型ループフィルタ（ＡＬＦ）及びサンプル適応型オフセット（ＳＡＯ）（図２には示されていない）のような他のループ内フィルタを含めてもよい。必要に応じて、デブロッキングフィルタは、一般に、加算ユニット６２の出力をフィルタ処理する。
【００５３】
図２に示すように、ビデオエンコーダ２０は、符号化すべきビデオフレーム又はスライス内のビデオブロックを受信する。フレーム又はスライスは、複数のビデオブロック又はＣＵに分割され得る。モード選択ユニット３８は、誤差結果に基づいて、コード化モードのうちの１つ、即ちイントラモード又はインターモードを選択し得る。次いで、予測ユニット４０は、得られたイントラコード化又はインターコード化された予測ブロックを、加算ユニット５０に供給して残差ブロックデータを生成し、かつ加算ユニット６２に供給して参照フレームにおける参照ブロックとして使用される符号化ブロックを再構成する。
【００５４】
0061
予測ユニット４０内のイントラ予測ユニット４６は、コード化すべきビデオブロックと同じフレーム内の１つ以上の近接するブロックに対するビデオブロックのイントラ予測コード化を実行する。予測ユニット４０内の動き推定ユニット４２及び動き補償ユニット４４は、参照フレームメモリ６４に記憶された１つ以上の参照フレーム内の１つ以上の参照ブロックに対するビデオブロックのインター予測コード化を実行する。動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、参照フレーム内の参照ブロック又はＰＵに対する現在のビデオフレーム内のビデオブロック又はＰＵの変位を示し得る。参照ブロックは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、又は他の差分メトリックによって求められ得る画素差分に関して、符号化すべきビデオブロック又はＰＵに厳密に一致すると考えられるブロックである。
【００５５】
0062
動き推定ユニット４２は、計算された動きベクトルを動き補償ユニット４４に送る。動き補償ユニット４４によって実行される動き補償は、動き推定によって求められた動きベクトルに基づいて予測ブロックを取り込むか又は生成することを含んでもよい。ビデオエンコーダ２０は、コード化されているビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。加算ユニット５０は、この減算演算を実行する１つ以上の構成要素を表す。
【００５６】
0063
動き補償ユニット４４は、ビデオシーケンスレベル、ビデオフレームレベル、ビデオスライスレベル、ビデオＣＵレベル、又はビデオＰＵレベルのうちの１つ以上における予測情報を表すように定められたシンタックス要素を生成してもよい。例えば、動き補償ユニット４４は、ＣＵ、ＰＵ、及びＴＵのサイズを含むビデオブロック情報、ならびにイントラモード予測に関する動きベクトル情報を含むシンタックス要素を生成してもよい。
【００５７】
0064
ビデオエンコーダ２０が現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成した後、変換ユニット５２は、残差ブロックから１つ以上のＴＵを形成してもよい。変換ユニット５２は、離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、又は概念的に同様の線形変換などの変換をＴＵに適用して、残差変換係数を備えるビデオブロックを生成する。この変換では、残差ブロックを画素領域から周波数領域などの変換領域に変換し得る。より具体的には、ＴＵは、変換が施される前に、画素領域に残差ビデオデータを備えてもよく、変換が施された後、残差ビデオデータを表す変換係数を周波数領域に備えてもよい。
【００５８】
0065
幾つかの例では、変換ユニット５２は２次元固定小数点変換を備え得る。変換ユニット５２は、まずＴＵ内の残差ビデオデータの行に１次元変換を施し、即ち、第１の方向に変換を施し、次いでＴＵ内の残差ビデオデータの列に１次元変換を施し、即ち、第２の方向に変換を施すか、又はこの動作を逆の順序で実行することによってＴＵに２次元変換を適用することができる。一例として、ＴＵは３２×３２ＴＵを備えてもよい。変換ユニット５２は、まずＴＵ内の画素データの各行に３２点１次元変換を施して中間変換係数の３２×３２ＴＵを生成し、次にＴＵ内の中間変換係数の各列に３２点１次元変換を施して変換係数の３２×３２ＴＵを生成してもよい。
【００５９】
0066
ビデオエンコーダ２０は、第１の方向の１次元変換をＴＵ内の残差ビデオデータに施した後、第２の方向への１次元変換を施せるように中間変換係数をバッファリングする。上述のように、ＨＥＶＣ規格では、ビデオコード化効率を向上させるためにより大きい変換単位サイズ、例えば３２×３２から１２８×１２８までのサイズが提案されている。しかしながら、ＴＵサイズを大きくすると、２次元変換の中間バッファリング要件が増大する。例えば、３２×３２ＴＵの場合、ビデオエンコーダ２０は、第１の方向への１次元変換の後１０２４個の中間変換係数をバッファリングする必要がある。
【００６０】
0067
ＴＵサイズを大きくする中間バッファリング要件を低減させるために、本開示で説明する技法は、２次元変換の各方向が適用された後に第１のサイズのＴＵに含まれる変換係数のうちの高周波数の変換係数のサブセットをゼロ化することを含む。このようにして、変換ユニット５２は、ＴＵの第１のサイズよりも小さい第２のサイズを有する保持される係数ブロックをＴＵ内に生成することができる。
【００６１】
0068
ゼロ化プロセスは、ＴＵ内の変換係数のサブセットの値をゼロに等しく設定することを備える。ゼロ化された変換係数は、計算されることも破棄されることもなく、その代わり、単にゼロに設定され、記憶すべき値も符号化すべき値も有さない。本開示によれば、ゼロ化された変換係数は一般に、ＴＵ内の保持される低周波数変換係数と比較して高周波数の変換係数である。高周波数の変換係数は、通常、符号化すべきビデオブロックと予測ブロックとの非常に小さい画素差分に相当する残差ビデオデータを表す。従って、高周波数の変換係数に含まれる残差ビデオデータを非常に少なくすることができ、各値をゼロに等しく設定しても、復号後のビデオ品質に対する影響は無視できる程度の影響である。
【００６２】
0069
一例として、変換ユニット５２は、第１の方向、例えば行方向の１次元変換を３２×３２ＴＵ内の残差ビデオデータに施し、変換から出力される中間変換係数のうちの２分の１をゼロ化してもよい。ビデオエンコーダ２０は次いで、中間変換係数のうちの保持される２分の１の係数にバッファリングを施すだけでよい。次いで、変換ユニット５２は、第２の方向、例えば列方向の１次元変換を３２×３２ＴＵ内の保持される中間変換係数に施し、変換から出力される保持される変換係数のうちの２分の１を再びゼロ化してもよい。このようにして、変換ユニット５２は、本来３２×３２のサイズを有するＴＵ内に１６×１６のサイズを有する有効係数の保持される係数ブロックを生成してもよい。
【００６３】
0070
上述の例では、変換ユニット５２は、１６×１６の保持される係数ブロック、即ちＴＵの元のサイズの４分の１の係数ブロックを生成するように構成された。他の場合には、変換ユニット５２は、コード化プロセスのコード化複雑度要件に応じてゼロ化する係数の割合を高くするか又は低くすることによって異なるサイズを有する保持される係数ブロックを生成するように構成されてもよい。さらに、場合によっては、変換ユニット５２は、矩形領域を有する保持される係数ブロックを生成するように構成されてもよい。この場合、各技法では、まず矩形領域の短い方の辺（即ち、保持される変換係数がより少ない方）の方向に１次元変換を施すことによって中間バッファリング要件をさらに低減させることができる。このようにして、ビデオエンコーダ２０は、矩形領域の長い方の辺の方向に１次元変換を施す前に中間変換係数のうちの２分の１よりも少ない数をバッファリングすることができる。方形領域の保持される係数ブロックと矩形領域の保持される係数ブロックに対するゼロ化プロセスについては、図３Ａ及び図３Ｂに関してより詳しく説明する。
【００６４】
0071
変換ユニット５２は、量子化ユニット５４に得られた変換係数を送り得る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減させることができる。量子化の程度は、量子化パラメータを調整することによって変更され得る。次いで、エントロピー符号化ユニット５６又は量子化ユニット５４は、量子化変換係数を含むＴＵのスキャンを実行し得る。エントロピー符号化ユニット５６は、ジグザグスキャン又はＴＵのサイズに関連する別のスキャン順序を適用して量子化変換係数をスキャンし、エントロピー符号化することのできるシリアル化されたベクトルを生成することができる。
【００６５】
0072
第２のサイズを有する保持される係数ブロックを生成するように本来第１のサイズを有するＴＵの係数がゼロ化された一例では、エントロピー符号化ユニット５６は、第２のサイズのＴＵ用のスキャン順序を使用して保持される係数をスキャンしてもよい。この場合、エントロピー符号化ユニット５６は、本来３２×３２のサイズを有するＴＵ内の１６×１６のサイズを有する保持される係数ブロックに１６×１６スキャン順序を適用してもよい。第２のサイズを有する保持される係数ブロックを生成するように本来第１のサイズを有するＴＵの係数がゼロ化された別の例では、エントロピー符号化ユニット５６は、保持される係数ブロックに含まれないＴＵの係数を飛ばすように修正された第１のサイズのＴＵ用のスキャン順序を使用して保持される係数をスキャンしてもよい。この場合、エントロピー符号化ユニットは、本来３２×３２のサイズを有するＴＵ内のゼロ化された全ての係数を飛ばすことによって１６×１６のサイズを有する保持される係数ブロックに３２×３２スキャン順序を適用してもよい。
【００６６】
0073
エントロピー符号化ユニット５６は、量子化変換係数をスキャンして１次元ベクトルを形成した後、量子化変換係数のベクトルをエントロピーコード化する。例えば、エントロピー符号化ユニット５６は、ＣＡＢＡＣ、ＣＡＶＬＣ、又は別のエントロピーコード化技法のようなコンテキスト適応型エントロピーコード化を実行し得る。エントロピー符号化ユニット５６によるエントロピー符号化の後、符号化されたビットストリームは、ビデオデコーダ３０などのビデオデコーダに送信されるか、又は後で送信若しくは検索するためにアーカイブされ得る。
【００６７】
0074
エントロピー符号化ユニット５６は、コンテキスト適応型エントロピーコード化を実行するために、例えば、近接する係数の値が非ゼロであるかどうかに関係し得るコンテキストモデルに従って各係数にコンテキストを割り当てる。エントロピー符号化ユニット５６はまた、コンテキストモデル内の割り当てられたコンテキストに関連する係数用のコード化プロセスを決定する。次いで、エントロピー符号化ユニット５６は、割り当てられたコンテキストに基づいて係数をエントロピー符号化してもよい。例えば、ＣＡＢＡＣの場合、エントロピー符号化ユニット５６は、ジョイントコンテキストモデル内の割り当てられたコンテキストに関連する係数の値（例えば、０又は１）の確率推定値を求めてもよい。エントロピー符号化ユニット５６は次いで、係数の実際の符号化された値に基づいてコンテキストモデル内の割り当てられたコンテキストに関連する確率推定値を更新する。
【００６８】
0075
従来、ビデオエンコーダ２０は、実装されるビデオ圧縮規格によって支持されるＴＵの様々なサイズの各々について別個のコンテキストモデルを維持する。ビデオコード化効率を向上させるために、例えば、３２×３２から１２８×１２８までの追加の変換単位サイズが提案されているが、追加のＴＵサイズによって、追加の変換単位サイズの各々にコンテキストモデルを維持するためにメモリ及び計算要件も増大する。場合によっては、ＴＵサイズが大きくなるにつれて使用されるコンテキストが多くなることがあり、従って、より大きいＴＵサイズ用のより多くのコンテキストを維持するためにメモリ及び計算要件も増大する可能性がある。
【００６９】
0076
本開示の技法によれば、エントロピー符号化ユニット５６は、それぞれの異なるサイズを有する変換単位同士の間で共有されるジョイントコンテキストモデルを使用してビデオ係数のエントロピー符号化を実行するように構成されてもよい。各技法について、主としてＣＡＢＡＣのエントロピー符号化技法に関して説明する。しかしながら、場合によっては、各技法が他のコンテキスト適応型エントロピー符号化技法に適用されてもよい。ジョイントコンテキストモデルを２つ又はそれ以上のサイズの変換単位間で共有すると、ビデオエンコーダ２０上にコンテキスト及び確率を記憶するのに必要なメモリの量を低減させることができる。さらに、ジョイントコンテキストモデルを共有すると、ビデオスライスの開始時に全てのコンテキストモデルをリセットすることを含む、ビデオエンコーダ２０上にコンテキストモデルを維持することについての計算コストを削減することもできる。ＣＡＢＡＣの場合、各技法は、係数の実際のコード化された値に基づいてコンテキストモデルの確率推定値を頻繁に更新することについての計算コストを削減することもできる。
【００７０】
0077
本開示によれば、エントロピー符号化ユニット５６は、それぞれ異なるサイズを有する変換単位同士の間で共有されるジョイントコンテキストモデルを維持し、ジョイントコンテキストモデルに従って変換単位の１つに関連する係数のコンテキストを選択してもよい。次いで、エントロピー符号化ユニット５６は、選択されたコンテキストに基づいて変換単位内の有効係数をエントロピー符号化してもよい。一例として、ジョイントコンテキストモデルは、３２×３２の第１のサイズを有する変換単位と１６×１６の第２のサイズを有する変換単位との間で共有されてもよい。場合によっては、２つよりも多くのサイズの変換単位が同じジョイントコンテキストモデルを共有してもよい。一例では、ジョイントコンテキストモデルは、変換単位の有意性マップのジョイントコンテキストモデルであってもよい。他の例では、ジョイントコンテキストモデルを他のコード化情報又はシンタックス要素に関連付けてもよい。ジョイントコンテキストモデルを使用するＣＡＢＡＣ符号化プロセスについて図５に関してより詳しく説明する。
【００７１】
0078
一例では、エントロピー符号化ユニット５６は、保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有するＴＵと本来第２のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルを維持してもよい。場合によっては、保持される係数ブロックは、第２のサイズと等しいサイズを有してもよい。例えば、第１のサイズを有するＴＵにおいて高周波数係数がゼロ化されるとき、保持される係数ブロックに含まれる係数は、本来第２のサイズを有するＴＵに含まれる係数と同様の確率統計を有する。この場合、本来第１のサイズを有するＴＵの係数をゼロ化することによって第２のサイズの保持される係数ブロックが生成されたときに、エントロピー符号化５６は、ジョイントコンテキストモデルに従って保持される係数ブロックの係数のコンテキストを選択してもよい。次いで、エントロピー符号化ユニット５６は、選択されたコンテキストに基づいて保持される係数ブロック内の有効係数をエントロピー符号化する。ＣＡＢＡＣの場合、エントロピー符号化ユニット５６はまた、係数の実際のコード化された値に基づいてジョイントコンテキストモデル内の選択されたコンテキストに関連する確率推定値を更新する。
【００７２】
0079
別の例では、エントロピー符号化ユニット５６は、第１のサイズを有する第１のＴＵと第２のサイズを有する第２のＴＵとによって共有されるジョイントコンテキストモデルを維持してもよい。場合によっては、第１のサイズを有する第１のＴＵに含まれる係数は、第１のＴＵ内の高周波数係数をゼロ化しない場合でも第２のサイズを有する第２のＴＵに含まれる係数と同様の確率統計を有してもよい。このことは、高周波数係数が、エントロピーコード化のための近接する係数の確率統計に対する影響が無視できるほど少ない残差ビデオデータを表し得るために可能になる。この例では、エントロピー符号化５６は、ジョイントコンテキストモデルに従って、第１のサイズと第２のサイズのうちの一方のＴＵ内の係数のコンテキストを選択してもよい。次いで、エントロピー符号化ユニット５６は、選択されたコンテキストに基づいてＴＵ内の有効係数をエントロピー符号化する。ＣＡＢＡＣの場合、エントロピー符号化ユニット５６は次いで、係数の実際のコード化された値に基づいてジョイントコンテキストモデル内の選択されたコンテキストに関連する確率推定値を更新してもよい。
【００７３】
0080
エントロピー符号化ユニット５６はまた、符号化されているビデオブロックのための動きベクトルと他の予測シンタックス要素とをエントロピー符号化し得る。例えば、エントロピー符号化ユニット５６は、本開示で説明する技法を使用してＴＵ内の有効係数の位置を示す有意性マップ、即ち０と１のマップを示すシンタックス要素をエントロピー符号化してもよい。例えば、エントロピー符号化ユニット５６は、符号化されたビットストリームで送信できるように動き補償ユニット４４によって生成された適切なシンタックス要素を含むヘッダ情報を構築し得る。ビデオエンコーダ２０は、ＣＵ、ＰＵ、及びＴＵのサイズを含むビデオブロック情報、並びにイントラモード予測に関する動きベクトル情報を示すシンタックス要素をエントロピー符号化してもよい。エントロピー符号化ユニット５６は、シンタックス要素をエントロピー符号化するために、シンタックス要素を１つ以上のバイナリビットとして２値化し、コンテキストモデルに従って各バイナリビットのコンテキストを選択することによってＣＡＢＡＣを実行してもよい。
【００７４】
0081
逆量子化ユニット５８及び逆変換ユニット６０は、それぞれ逆量子化及び逆変換を適用して、残差ブロックを、参照フレームの参照ブロックとして後で使用できるように画素領域に再構成する。加算ユニット６２は、再構成された残差ブロックを、動き補償ユニット４４によって生成された予測ブロックに加算して、参照フレームメモリ６４に記憶される参照ブロックを生成する。参照ブロックは、後続のビデオフレーム中のブロックをインター予測する（inter-predict）ために、動き推定ユニット４２及び動き補償ユニット４４によって参照ブロックとして使用され得る。
【００７５】
0082
図３Ａ及び図３Ｂは、第１のサイズを有する変換単位内の第２のサイズを有する保持される係数ブロックのそれぞれ方形領域及び矩形領域を示す概念図である。図３Ａ及び図３Ｂの概念図において、それぞれ異なるボックスは、変換が施された後のＴＵ内の変換係数を表す。ハッチングされた領域内の係数は、保持される変換係数を備え、ハッチングされた領域に含まれない係数（即ち、白又は斜線のボックス）は、２次元変換時にゼロ化された係数を備える。
【００７６】
0083
上述のように、本開示の技法は、２次元変換の各方向の後に第１のサイズのＴＵに含まれる変換係数のうちの高周波数の変換係数のサブセットをゼロ化することによって、より大きいＴＵサイズ、例えば３２×３２から１２８×１２８までの中間バッファリング要件を低減させる。このようにして、図２の変換ユニット５２は、ＴＵの第１のサイズよりも小さい第２のサイズを有する保持される係数ブロックをＴＵ内に生成することができる。
【００７７】
0084
ゼロ化プロセスは、ＴＵ内の変換係数のサブセットの値をゼロに等しく設定することを備える。ゼロ化された変換係数は、計算されることも破棄されることもなく、その代わり、ゼロ化された変換係数は、単にゼロに等しく設定され、記憶すべき値も符号化すべき値も有さない。本開示によれば、ゼロ化された変換係数は一般に、ＴＵ内の保持される変換係数と比較して高周波数の変換係数である。高周波数の変換係数は、符号化すべきビデオブロックと予測ブロックとの非常に小さい画素差分に相当する残差ビデオデータを表す。従って、高周波数の変換係数に含まれる残差ビデオデータを非常に少なくすることができ、各値をゼロに等しく設定しても、復号後のビデオ品質に対する影響は無視できる程度の影響である。
【００７８】
0085
図３Ａは、１６×１６の第１のサイズを有するＴＵ７０と、ＴＵ７０内の、８×８の第２のサイズの最終的な方形領域を有する保持される係数ブロック７４とを示す。保持される係数ブロック７４のサイズ及び形状は、コード化プロセスのコード化複雑度要件に基づいて選択されてもよい。この例では、図２の変換ユニット５２は、本来１６×１６のサイズを有するＴＵ７０内に８×８のサイズの方形領域を有する保持される係数ブロック７４を生成するように構成されてもよい。変換ユニット５２は、保持される係数ブロック７４を生成するために、２次元変換の各方向、即ち行方向及び列方向を適用した後より周波数の高い係数のうちの２分の１をゼロ化してもよい。他の場合には、変換ユニット５２は、コード化プロセスのコード化複雑度要件に応じてゼロ化する係数の割合を高くするか又は低くするように構成されてもよい。
【００７９】
0086
まず、変換ユニット５２は、ＴＵ７０内の残差ビデオデータの各行に１次元変換を施し、変換から出力される中間変換係数のサブセット（この場合は２分の１）をゼロ化することができる。図３Ａの図示の例では、保持される中間変換係数は、ＴＵ７０の本来の１６×１６のサイズの２分の１に等しい１６×８のサイズの矩形領域を有する保持される中間係数ブロック７３（即ち、ＴＵ７０内の斜線のブロック）に含まれる。ゼロ化後のサブセット（即ち、ＴＵ７０内の白いブロック）は、ＴＵ７０の保持される中間係数ブロック７３内の係数よりも高い周波数値を有する係数を含んでもよい。図示の例では、変換ユニット５２は、ＴＵ７０の各行における８つの最高周波数値を有する係数のうちの２分の１をゼロ化する。このゼロ化プロセスでは、ＴＵ７０内に１６×８の矩形領域を有する保持される中間係数ブロック７３が得られる。他の例では、保持される中間係数ブロック７３の領域は異なるサイズ又は形状を備えてもよい。変換ユニット５２は、１６×１６のＴＵ７０内の全ての係数のうちで最も高い周波数値を有する係数のうちの２分の１をゼロ化してもよい。このゼロ化プロセスによって、ＴＵ７０の左上角部に三角形領域を有する保持される中間係数ブロックが得られる。
【００８０】
0087
ビデオエンコーダ２０は、第１の方向における変換から出力される中間変換係数のうちの２分の１をゼロ化することによって、第２の方向に変換を適用する前に、保持される中間係数ブロック７３内に各係数をバッファリングするだけでよい。ゼロ化後のサブセット（即ち、ＴＵ７０内の白いブロック）内の係数は、記憶すべき値も、変換すべき値も、符号化すべき値も有さない。このようにして、各技法は、２次元変換を実行する際の中間バッファリング要件を低減させることができる。このことは、ＨＥＶＣ規格に関して提案されているより大きい変換単位サイズ、例えば３２×３２から１２８ｘ１２８までのサイズに特に有用である。
【００８１】
0088
バッファリングに続いて、変換ユニット５２は、保持される中間係数ブロック７３内の保持される中間変換係数の各列に１次元変換を施し、変換から出力される変換係数のサブセット（この場合は２分の１）をゼロ化してもよい。図３Ａの図示の例では、保持される中間変換係数は、ＴＵ７０の本来の１６×１６のサイズの４分の１に等しい８×８のサイズの方形領域を有する保持される係数ブロック７４（即ち、ＴＵ７０内のハッチングされたブロック）に含まれる。ゼロ化後のサブセット（即ち、保持される中間係数ブロック７３内のハッチングされていない方形領域）は、ＴＵ７０の保持される係数ブロック７４内の係数よりも高い周波数値を有する係数を含んでもよい。図示の例では、変換ユニット５２は、保持される中間係数ブロック７３の各列における８つの最高周波数値を有する係数のうちの２分の１をゼロ化する。他の例では、変換ユニット５２は、１６×８の保持される中間係数ブロック７３内の全ての係数のうちで最も高い周波数値を有する係数のうちの２分の１をゼロ化してもよい。いずれの場合も、このゼロ化プロセスでは、ＴＵ７０内に８×８の方形領域を有する保持される係数ブロック７４が得られる。
【００８２】
0089
図３Ｂは、１６×１６の第１のサイズを有するＴＵ７６と、ＴＵ７６内の、４×１６の第２のサイズの最終的な矩形領域を有する保持される係数ブロック７８とを示す。保持される係数ブロック７８のサイズ及び形状は、コード化プロセスのコード化複雑度要件に基づいて選択されてもよい。より具体的には、保持される係数ブロック７８の最終的な矩形領域は、イントラコード化モード、スキャンパターン、及び保持される係数ブロック７８に関する最後の有効係数の位置のうちの少なくとも１つに基づいて選択されてもよい。
【００８３】
0090
図３Ｂの図示の例では、変換ユニット５２は、本来１６×１６のサイズを有するＴＵ７６内に４×１６のサイズの矩形領域を有する保持される係数ブロック７８を生成するように構成されてもよい。変換ユニット５２は、最初に、保持される係数ブロック７８の最終的な矩形領域の最も短い辺（例えば、列）の方向においてＴＵ７６に適用されてもよい。変換ユニット５２は、保持される係数ブロック７８を生成するために、２次元変換を第１の方向（例えば、列方向）に施した後で係数のうちの４分の３をゼロ化してもよい。他の場合には、変換ユニット５２は、コード化プロセスのコード化複雑度要件に応じてゼロ化する係数の割合を高くするか又は低くするように構成されてもよい。
【００８４】
0091
保持される係数ブロック用に矩形が選択されると、各技法では、まず矩形領域の短い方の辺（即ち、保持される変換係数がより少ない方）の方向に１次元変換を施すことによって中間バッファリング要件をさらに低減させることができる。このようにして、ビデオエンコーダ２０は、矩形領域の長い方の辺の方向に１次元変換を施す前に中間変換係数のうちの２分の１よりも少ない数をバッファリングすることができる。図３Ｂの図示の例では、保持される係数ブロック７８の最終的な矩形領域の高さ（Ｈ）は、矩形領域の幅（Ｗ）よりも小さく、従って、垂直方向に保持される中間変換係数の方が少ない。従って、変換ユニット５２はまず、ＴＵ７６の各行に変換が施される前にビデオエンコーダ２０がバッファリングする中間変換係数の数が２分の１よりも少なくなる（この場合には４分の１）ようにＴＵ７６の各列に変換を施してもよい。
【００８５】
0092
より具体的には、変換ユニット５２は、ＴＵ７６内の残差ビデオデータの各列に１次元変換を施し、変換から出力される中間変換係数のサブセット（この場合は４分の３）をゼロ化してもよい。図３Ｂの図示の例では、保持される中間変換係数は、ＴＵ７６の本来の１６×１６のサイズの４分の１に等しい４×１６の矩形領域を有する保持される中間係数ブロック７７（即ち、ＴＵ７６内の斜線のブロック）に含まれる。ゼロ化後のサブセット（即ち、ＴＵ７６内の白いブロック）は、ＴＵ７６の保持される中間係数ブロック７７内の係数よりも高い周波数値を有する係数を含んでもよい。図示の例では、変換ユニット５２は、ＴＵ７６の各列における１２個の最高周波数値を有する係数のうちの４分の３をゼロ化する。このゼロ化プロセスでは、ＴＵ７６内に４×１６の矩形領域を有する保持される中間係数ブロック７７が得られる。
【００８６】
0093
ビデオエンコーダ２０は、第１の方向における変換から出力される中間変換係数のうちの４分の３をゼロ化することによって、第２の方向に変換を適用する前に、保持される中間係数ブロック７７内に各係数をバッファリングするだけでよい。ゼロ化後のサブセット（即ち、ＴＵ７６内の白いブロック）内の係数は、記憶すべき値も、変換すべき値も、符号化すべき値も有さない。このようにして、各技法は、２次元変換を実行する際の中間バッファリング要件を低減させることができる。このことは、ＨＥＶＣ規格に関して提案されているより大きい変換単位サイズ、例えば３２×３２から１２８×１２８までのサイズに特に有用である。
【００８７】
0094
バッファリング後、変換ユニット５２は、保持される係数ブロック７７内の係数の行に１次元変換を施してもよい。この例では、ＴＵ７６はすでに、１６×１６の本来のサイズの４分の１までゼロ化されているので、変換ユニット５２は、変換から出力されるどの変換係数もゼロ化しなくてよい。図３Ａの図示の例では、保持される変換係数は、保持される中間係数ブロック７７と同じ４×１６の矩形領域を有する保持される係数ブロック７８（即ち、ＴＵ７６内のハッチングされたブロック）に含まれる。このゼロ化プロセスでは、ＴＵ７０内に４×１６の矩形領域を有する保持される係数ブロック７８が得られる。
【００８８】
0095
図４は、ジョイントコンテキストモデルを使用してビデオ係数をエントロピー復号するための技法を実施することのできる例示的なビデオデコーダを示すブロック図である。図４の例では、ビデオデコーダ３０は、エントロピー復号ユニット８０と、予測ユニット８１と、逆量子化ユニット８６と、逆変換ユニット８８と、加算ユニット９０と、参照フレームメモリ９２とを含む。予測ユニット８１は、動き補償ユニット８２と、イントラ予測ユニット８４とを含む。ビデオデコーダ３０は、幾つかの例では、ビデオエンコーダ２０（図２）に関して説明した符号化パスに一般的に相互関係にある復号パスを実行し得る。
【００８９】
0096
復号プロセス中に、ビデオデコーダ３０は、符号化されたビデオフレーム又はビデオスライスと、ビデオエンコーダ２０などのビデオエンコーダからの符号化情報を表すシンタックス要素とを含む符号化されたビデオビットストリームを受信する。エントロピー復号ユニット８０は、ビットストリームを復号してＴＵ内に量子化された変換係数を生成する。例えば、エントロピー復号ユニット８０は、ＣＡＢＡＣ、ＣＡＶＬＣ、又は別のエントロピー符号化技法のようなコンテキスト適応型エントロピー復号を実行し得る。エントロピー復号ユニット８０は、本開示で説明する技法を使用してＴＵ内の有効係数の位置を示す有意性マップ、即ち１と０のマップを含むシンタックス要素をエントロピー復号してもよい。エントロピー復号ユニット８０は、動きベクトル及び他の予測シンタックス要素をエントロピー復号してもよい。
【００９０】
0097
エントロピー復号ユニット８０は、コンテキスト適応型エントロピー復号を実行するために、例えば、事前に復号された近接する係数の値が非ゼロであるかどうかに関係し得るコンテキストモデルに従って、ビットストリーム内に表された符号化された各係数にコンテキストを割り当てる。エントロピー復号ユニット８０はまた、コンテキストモデル内の割り当てられたコンテキストに関連する符号化された係数用の符号化プロセスを決定する。次いで、エントロピー復号ユニット８０は、割り当てられたコンテキストに基づいて係数をエントロピー復号してもよい。ＣＡＢＡＣの場合、エントロピー復号ユニット８０は、コンテキストモデル内の割り当てられたコンテキストに関連する符号化された係数の値（例えば、０又は１）の確率推定値を求めてもよい。エントロピー復号ユニット８０は次いで、係数の復号された実際の値に基づいてコンテキストモデル内の割り当てられたコンテキストに関連する確率推定値を更新する。
【００９１】
0098
従来、ビデオデコーダ３０は、実装されるビデオ圧縮規格によって支持されるＴＵの様々なサイズの各々に別個のコンテキストモデルを維持しなければならない。ＨＥＶＣ規格の場合、ビデオコード化効率を向上させるために、例えば、３２×３２から１２８×１２８までの追加の変換単位サイズが提案されているが、追加のＴＵサイズによって、追加の変換単位サイズの各々にコンテキストモデルを維持するためにメモリ及び計算要件も増大する。
【００９２】
0099
本開示の技法によれば、エントロピー復号ユニット８０は、異なるサイズを有する変換単位同士の間で共有されるジョイントコンテキストモデルを使用してビデオ係数のエントロピー復号を実行するように構成されてもよい。各技法について、主としてＣＡＢＡＣのエントロピー復号技法に関して説明する。しかしながら、場合によっては、各技法が他のコンテキスト適応型エントロピーコード化技法に適用されてもよい。ジョイントコンテキストモデルを２つ又はそれ以上のサイズの変換単位間で共有すると、ビデオデコーダ３０上にコンテキスト及び確率を記憶するのに必要なメモリの量を低減させることができる。さらに、ジョイントコンテキストモデルを共有すると、ビデオスライスの開始時に全てのコンテキストモデルをリセットすることを含む、ビデオデコーダ３０上にコンテキストモデルを維持することについての計算コストを削減することもできる。ＣＡＢＡＣの場合、各技法は、係数の実際のコード化された値に基づいてコンテキストモデルの確率推定値を頻繁に更新することについての計算コストを削減することもできる。
【００９３】
0100
本開示によれば、エントロピー復号ユニット８０は、異なるサイズを有する変換単位同士の間で共有されるジョイントコンテキストモデルを維持し、ジョイントコンテキストモデルに従って１つの変換単位に関連する係数のコンテキストを選択してもよい。次いで、エントロピー復号ユニット８０は、選択されたコンテキストに基づいて変換単位内の有効係数をエントロピー復号してもよい。一例として、ジョイントコンテキストモデルは、３２×３２の第１のサイズを有する変換単位と１６×１６の第２のサイズを有する変換単位との間で共有されてもよい。場合によっては、２つよりも多くのサイズの変換単位が同じジョイントコンテキストモデルを共有してもよい。一例では、ジョイントコンテキストモデルは、変換単位の有意性マップのジョイントコンテキストモデルであってもよい。他の例では、ジョイントコンテキストモデルを他のコード化情報又はシンタックス要素に関連付けてもよい。ジョイントコンテキストモデルを使用するＣＡＢＡＣ復号プロセスについて図６に関してより詳しく説明する。
【００９４】
0101
一例では、エントロピー復号ユニット８０は、保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有するＴＵと本来第２のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルを維持してもよい。場合によっては、保持される係数ブロックは、第２のサイズと等しいサイズを有してもよい。例えば、この場合、エントロピー復号ユニット８０は、ジョイントコンテキストモデルに従って、本来第１のサイズを有するＴＵ内の第２のサイズを有する保持される係数ブロックの係数のコンテキストを選択してもよい。エントロピー復号ユニット８０は次いで、選択されたコンテキストに基づいて、符号化された有効係数を第１のサイズを有するＴＵ内の保持される係数ブロックに算術的に復号する。ＣＡＢＡＣの場合、エントロピー復号ユニット８０はまた、係数の復号された実際の値に基づいてジョイントコンテキストモデル内の選択されたコンテキストに関連する確率推定値を更新する。
【００９５】
0102
別の例では、エントロピー復号ユニット８０は、第１のサイズを有する第１のＴＵと第２のサイズを有する第２のＴＵとによって共有されるジョイントコンテキストモデルを維持してもよい。この例では、エントロピー復号ユニット８０は、ジョイントコンテキストモデルに従って、第１のサイズと第２のサイズのうちの一方のＴＵに関連する符号化された係数のコンテキストを選択してもよい。次いで、エントロピー復号ユニット８０は、選択されたコンテキストに基づいて、符号化された有効係数をＴＵに復号する。ＣＡＢＡＣの場合、エントロピー復号ユニット８０は次いで、係数の復号された実際の値に基づいてジョイントコンテキストモデル内の選択されたコンテキストに関連する確率推定値を更新してもよい。いずれの場合も、エントロピー復号ユニット８０は、第１のサイズ又は第２のサイズのいずれかを有するＴＵ内の復号された量子化変換係数を逆量子化ユニット８６に転送する。
【００９６】
0103
逆量子化ユニット８６は、上述のようにエントロピー復号ユニット８０によってＴＵに復号された量子化変換係数を逆量子化、即ち脱量子化する。逆量子化プロセスは、各ビデオブロック又はＣＵについてビデオエンコーダ２０によって計算される量子化パラメータＱＰを使用して量子化の程度を求め、同様に、適用すべき逆量子化の程度を求めることを含み得る。逆変換ユニット８８は、逆変換、例えば、逆ＤＣＴ、逆整数変換、逆ウェーブレット変換、又は概念的に同様の逆変換プロセスをＴＵ内の変換係数に適用して、画素領域において残差ビデオデータを生成する。
【００９７】
0104
幾つかの例では、逆変換ユニット８８は２次元固定小数点変換を備え得る。逆変換ユニット８８は、まずＴＵ内の変換係数の行に１次元変換を施し、次いでＴＵ内の変換係数の列に１次元逆変換を施すか、又はこの動作を逆の順序で実行することによって、ＴＵに２次元変換を施すことができる。ビデオデコーダ３０は、第１の方向の１次元逆変換をＴＵ内の各変換係数に施した後、中間残差データを、第２の方向への１次元逆変換を施せるようにバッファリングする。上述のように、ＨＥＶＣ規格では、ビデオコード化効率を向上させるためにより大きい変換単位サイズ、例えば３２×３２から１２８×１２８までのサイズが提案されている。しかしながら、ＴＵサイズを大きくすると、２次元変換の中間バッファリング要件も増大する。
【００９８】
0105
本開示で説明する各技法は、ＴＵサイズを大きくする中間バッファリング要件を低減させるために、図２のビデオエンコーダ２０によって、ＴＵに含まれる変換係数のうちの高周波数の変換係数のサブセットをゼロ化することを含んでもよい。ＴＵ内のゼロ化された変換係数は、単にゼロに等しく設定され、記憶すべき値も、変換すべき値も、符号化すべき値も有さない。従って、エントロピー復号ユニット８０は、通常第１のサイズを有するＴＵ内の第２のサイズを有する保持される係数ブロックに関連する符号化された係数を表す符号化されたビットストリームを受信する。エントロピー復号ユニット８０は、各係数を第１のサイズを有するＴＵ内の保持される係数ブロックに復号する。その場合、ＴＵは、第２のサイズの保持される係数ブロック内の係数とＴＵ内の残りの係数を表すゼロとを含む。
【００９９】
0106
このように、ビデオエンコーダ２０において変換係数をゼロ化するプロセスは、ビデオデコーダ３０において逆変換を実行する際にＴＵサイズを大きくする中間バッファリング要件を低減させることができる。一例として、逆変換ユニット８８は、第１の方向、即ち行方向の１次元領域逆変換を３２×３２のサイズを有するＴＵ内の１６×１６のサイズを有する保持される係数ブロック内の変換係数に施してもよい。行の逆変換の後で、ビデオデコーダ３０は、ＴＵの２分の１、即ち３２×１６の係数のみを備える保持される係数ブロック内の係数から変換された中間残差データをバッファリングするだけでよい。次いで、逆変換ユニット８８は、第２の方向、例えば列方向の１次元逆変換をＴＵ内の中間残差データに施してもよい。このようにして、逆変換ユニット８８は、１６ｘ１６のサイズを有する保持される係数ブロック内の残差データを含め、ＴＵ内の残りの残差データを表すゼロを加算することによって、本来３２×３２のサイズを有するＴＵを生成してもよい。
【０１００】
0107
エントロピー復号ユニット８０はまた、予測ユニット８１に復号された動きベクトルと他の予測シンタックス要素とを転送する。ビデオデコーダ３０は、ビデオ予測単位レベル、ビデオコード化単位レベル、ビデオスライスレベル、ビデオフレームレベル及び／又はビデオシーケンスレベルにおいてシンタックス要素を受信し得る。ビデオフレームがイントラコード化されたフレームとしてコード化されると、予測ユニット８１のイントラ予測ユニット８４は、現在のフレームの事前に復号されたブロックからのデータに基づいて現在のビデオフレームのビデオブロック用の予測データを生成する。ビデオフレームがインターコード化されたフレームとしてコード化されると、予測ユニット８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信された復号された動きベクトルに基づいて現在のビデオフレームのビデオブロックの予測ブロックを生成する。予測ブロックは、参照フレームメモリ９２に記憶された参照フレームの１つ以上の参照ブロックに関して生成されてもよい。
【０１０１】
0108
動き補償ユニット８２は、動きベクトルとその他の予測シンタックスとを構文解析することによって、復号すべきビデオブロックについての予測情報を求め、この予測情報を使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。例えば、動き補償ユニット８２は、受信されたシンタックス要素の幾つかを使用して、現在のフレームを符号化するために使用されるＣＵのサイズと、フレームの各ＣＵがどのように分割されるかを記述する分割情報と、各分割がどのように符号化されるかを示すモード（例えば、イントラ予測又はインター予測）と、インター予測スライスタイプ（例えば、Ｂスライス、Ｐスライス、又はＧＰＢスライス）と、参照フレームリスト構成コマンドと、参照フレームに適用される補間フィルタと、フレームの各ビデオブロックの動きベクトルと、動きベクトルに関連するビデオパラメータ値と、現在のビデオフレームを復号するためのその他の情報を求める。
【０１０２】
ビデオデコーダ３０は、逆変換ユニット８８から得た残差ブロックに、動き補償ユニット８２によって生成された対応する予測ブロックを加算することによって、復号ビデオブロックを形成する。加算ユニット９０は、この加算演算を実行する１つ以上の構成要素を表す。必要に応じて、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタを適用して、復号ブロックをフィルタ処理することもできる。復号されたビデオブロックは次いで、後で行われる動き補償のために参照フレームの参照ブロックを供給する参照フレームメモリ９２に記憶される。参照フレームメモリ９２はまた、図１の表示装置３２などの表示装置上に表示される復号ビデオを生成する。
【０１０３】
図５は、ジョイントコンテキストモデルに従ってビデオ係数のコンテキストを選択するように構成された図２のエントロピー符号化ユニット５６の例を示すブロック図である。エントロピー符号化ユニット５６は、コンテキストモデル化ユニット９４と、算術符号化ユニット９６と、ジョイントコンテキストモデルストア９８とを含む。上述のように、本開示の各技法は、異なるサイズを有する変換単位同士の間で共有されるジョイントコンテキストモデルを使用してビデオ係数のエントロピー符号化を実行することを対象としている。具体的に言うと、本明細書では各技法についてＣＡＢＡＣ符号化プロセスに関して説明する。
【０１０４】
エントロピー符号化ユニット５６は、異なるサイズを有する変換単位同士の間で共有されるジョイントコンテキストモデルをジョイントコンテキストモデルストア９８内に維持する。一例として、ジョイントコンテキストモデルストア９８は、第２のサイズを有する保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有するＴＵと本来第２のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルを記憶してもよい。別の例として、ジョイントコンテキストモデルストア９８は、第１のサイズを有するＴＵ及び第２のサイズを有するＴＵによって共有されるジョイントコンテキストモデルを記憶してもよい。場合によっては、第１のサイズは３２×３２を備えてもよく、第２のサイズは１６×１６を備えてもよい。
【０１０５】
コンテキストモデル化ユニット９４は、エントロピー符号化されるベクトルとしてスキャンされた第１のサイズ又は第２のサイズのいずれかを有するＴＵに関連する変換係数を受信する。次いで、コンテキストモデル化ユニット９４は、ジョイントコンテキストモデルに従って、ＴＵの事前に符号化された近接する係数の値に基づいてＴＵの各係数にコンテキストを割り当てる。より具体的には、コンテキストモデル化ユニット９４は、事前に符号化された近接する係数の値が非ゼロであるかどうかに応じてコンテキストを割り当てることができる。割り当てられるコンテキストは、ジョイントコンテキストモデル内のコンテキストインデックス、例えばコンテキスト（ｉ）（ｉ＝０、１、２、、、Ｎ）を指してもよい。
【０１０６】
係数にコンテキストが割り当てられた後、コンテキストモデル化ユニット９４は、ジョイントコンテキストモデル内の割り当てられたコンテキストに関連する係数の値（例えば、０又は１）の確率推定値を求めてもよい。それぞれの異なるコンテキストインデックスが、そのコンテキストインデックスを有する係数の値の確率推定値に関連付けられる。ＣＡＢＡＣの場合にコンテキストモデル化ユニット９４によって実行される確率推定は、有限状態機械（ＦＳＭ）を使用してテーブルドリブン推定器（table-driven estimator）に基づいてもよい。ＦＳＭは、各コンテキストについて、過去のコンテキスト値を追跡し、所与の係数が０又は１の値を有する確率の最良推定値として現在の状態を供給することによって、関連する確率推定値を維持する。例えば、確率状態が０〜１２７の範囲である場合、状態０は、係数が値０を有する確率が０．９９９９であることを意味してもよく、状態１２７は、係数が値０を有する確率が０．０００１であることを意味してもよい。
【０１０７】
算術符号化ユニット９６は、割り当てられたコンテキストに関連する係数の求められた確率推定値に基づいて係数を算術的に符号化する。このようにして、算術符号化ユニット９６は、ジョイントコンテキストモデルに従って、第１のサイズ又は第２のサイズのいずれかを有するＴＵに関連する算術的に符号化された係数を表す符号化されたビットストリームを生成する。
【０１０８】
0115
符号化後、算術符号化ユニット９６は、係数の実際の符号化された値をコンテキストモデル化ユニット９４に送り返し、ジョイントコンテキストモデルストア９８内において、ジョイントコンテキストモデル内の割り当てられたコンテキストに関連する確率推定値を更新する。コンテキストモデル化ユニット９４は、確率状態間を遷移することによってジョイントコンテキストモデル内の割り当てられたコンテキストの確率更新を実行する。例えば、係数の実際のコード化された値が０である場合、より低い状態に遷移することによって係数値が０に等しい確率を高くしてもよい。ジョイントコンテキストモデルの確率推定値を頻繁に更新して係数の実際の符号化された値を反映することによって、ジョイントコンテキストモデル内の同じコンテキストに割り当てられる将来の係数の確率推定値の精度を高めることができ、それによって、算術符号化ユニット９６によるビット符号化をさらに低減させることができる。
【０１０９】
第１の例では、ジョイントコンテキストモデルストア９８は、第２のサイズを有する保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有するＴＵと本来第２のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルを記憶してもよい。例えば、ジョイントコンテキストモデルストア９８は、本来３２×３２のサイズを有するＴＵ内の１６×１６のサイズを有する保持される係数ブロックと本来１６×１６のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルを記憶してもよい。
【０１１０】
３２×３２のサイズを有する第１のＴＵ内の１６×１６のサイズを有する保持される係数ブロック内の第１の係数に、１６×１６のサイズを有する保持される係数ブロックを生成するためにゼロ化された係数を含む３２×３２のサイズを有するＴＵと１６×１６のサイズを有するＴＵとによって共有されるジョイントコンテキストモデル内のコンテキスト（５）を割り当ててもよい。次いで、コンテキストモデル化ユニット９４は、ジョイントコンテキストモデル内の割り当てられたコンテキスト（５）に関連する第１の係数の値の確率推定値を求め、第１の係数の実際の符号化された値に基づいてジョイントコンテキストモデル内の割り当てられたコンテキスト（５）に関連する確率推定値を更新する。１６×１６のサイズを有する第２のＴＵ内の第２の係数に、第１のＴＵ内の保持される係数ブロック内の係数と同じジョイントコンテキストモデル内のコンテキスト（５）を割り当ててもよい。次いで、コンテキストモデル化ユニット９４は、ジョイントコンテキストモデル内の同じ割り当てられたコンテキスト（５）に関連する第２の係数の値の確率推定値を求め、第２の係数の実際の符号化された値に基づいてジョイントコンテキストモデル内の同じ割り当てられたコンテキスト（５）に関連する確率推定値を更新する。
【０１１１】
第２の例では、ジョイントコンテキストモデルストア９８は、第１サイズを有するＴＵと第２のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルを記憶してもよい。例えば、ジョイントコンテキストモデルストア９８は、３２×３２のサイズを有するＴＵと１６×１６のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルを記憶してもよい。３２×３２のサイズを有する第１のＴＵ内の第１の係数に、３２×３２のサイズを有するＴＵと１６ｘ１６のサイズを有するＴＵとによって共有されるジョイントコンテキストモデル内のコンテキスト（５）を割り当ててもよい。次いで、コンテキストモデル化ユニット９４は、ジョイントコンテキストモデル内の割り当てられたコンテキスト（５）に関連する第１の係数の値の確率推定値を求め、第１の係数の実際の符号化された値に基づいてジョイントコンテキストモデル内の割り当てられたコンテキスト（５）に関連する確率推定値を更新する。１６×１６のサイズを有する第２のＴＵ内の第２の係数に、第１のＴＵ内の係数と同じジョイントコンテキストモデル内のコンテキスト（５）を割り当ててもよい。次いで、コンテキストモデル化ユニット９４は、ジョイントコンテキストモデル内の同じ割り当てられたコンテキスト（５）に関連する第２の係数の値の確率推定値を求め、第２の係数の実際の符号化された値に基づいてジョイントコンテキストモデル内の同じ割り当てられたコンテキスト（５）に関連する確率推定値を更新する。
【０１１２】
図６は、ジョイントコンテキストモデルに従ってビデオ係数のコンテキストを選択するように構成されたエントロピー復号ユニット８０の例を示すブロック図である。エントロピー復号ユニット８０は、算術符号化ユニット１０２と、コンテキストモデル化ユニット１０４と、ジョイントコンテキストモデルストア１０６とを含む。上述のように、本開示の各技法は、異なるサイズを有する変換単位同士の間で共有されるジョイントコンテキストモデルを使用してビデオ係数のエントロピー復号を実行することを対象としている。具体的に言うと、本明細書では各技法についてＣＡＢＡＣ復号プロセスに関して説明する。エントロピー復号ユニット８０は、図５のエントロピー符号化ユニット５６の動作と本質的に対称的な形で動作することができる。
【０１１３】
エントロピー復号ユニット８０は、異なるサイズを有する変換単位同士の間で共有されるジョイントコンテキストモデルをジョイントコンテキストモデルストア１０６内に維持する。ジョイントコンテキストモデルストア１０６内に記憶されるジョイントコンテキストモデルは、図５のエントロピー符号化ユニット５６のジョイントコンテキストモデルストア９８に記憶されるジョイントコンテキストモデルと実質的に同様である。一例として、ジョイントコンテキストモデルストア１０６は、第２のサイズを有する保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有するＴＵと本来第２のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルを記憶してもよい。別の例として、ジョイントコンテキストモデルストア１０６は、第１のサイズを有するＴＵと第２のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルを記憶してもよい。場合によっては、第１のサイズは３２×３２を備えてもよく、第２のサイズは１６×１６を備えてもよい。
【０１１４】
算術復号ユニット１０２は、第１のサイズ又は第２のサイズのいずれかを有するＴＵに関連する符号化された変換係数を表す符号化されたビットストリームを受信する。算術復号ユニット１０２は、ビットストリームに含まれる第１の係数を復号する。次いで、コンテキストモデル化ユニット１０４は、第１の復号された係数の値に基づいてビットストリームに含まれる後続の符号化された係数にコンテキストを割り当てる。同様に、コンテキストモデル化ユニット１０４は、ジョイントコンテキストモデルに従って、ＴＵの事前に復号された近接する係数の値に基づいてビットストリームに含まれる符号化された各係数にコンテキストを割り当てる。より具体的には、コンテキストモデル化ユニット１０４は、事前に復号された近接する係数の値が非ゼロであるかどうかに応じてコンテキストを割り当てることができる。割り当てられるコンテキストは、ジョイントコンテキストモデル内のコンテキストインデックスを指してもよい。
【０１１５】
符号化された係数にコンテキストが割り当てられた後、コンテキストモデル化ユニット１０４は、ジョイントコンテキストモデル内の割り当てられたコンテキストに関連する符号化された係数の値（例えば、０又は１）の確率推定値を求めてもよい。それぞれの異なるコンテキストインデックスが確率推定値に関連付けられる。コンテキストモデル化ユニット１０４は、符号化された係数の求められた確率推定値を算術復号ユニット１０２に送り返す。次いで、算術復号ユニット１０２は、割り当てられたコンテキストに関連する係数の求められた確率推定値に基づいて係数を算術的に復号する。このようにして、算術復号ユニット１０２は、ジョイントコンテキストモデルに従って、第１のサイズ又は第２のサイズのいずれかを有するＴＵ内に、復号された変換係数を生成する。
【０１１６】
復号後、算術復号ユニット１０２は、係数の復号された実際の値をコンテキストモデル化ユニット１０４に送り返し、ジョイントコンテキストモデルストア１０６内において、ジョイントコンテキストモデル内の割り当てられたコンテキストに関連する確率推定値を更新する。ジョイントコンテキストモデルの確率推定値を頻繁に更新して係数の復号された実際の値を反映することによって、ジョイントコンテキストモデル内の同じコンテキストに割り当てられる将来の係数の確率推定値の精度を高めることができ、それによって、算術復号ユニット１０２によるビット復号をさらに低減させることができる。
【０１１７】
第１の例では、ジョイントコンテキストモデルストア１０６は、第２のサイズを有する保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有するＴＵと本来第２のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルを記憶してもよい。例えば、ジョイントコンテキストモデルストア１０６は、本来３２×３２のサイズを有するＴＵ内の１６×１６のサイズを有する保持される係数ブロックと本来１６×１６のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルを記憶してもよい。
【０１１８】
３２×３２のサイズを有する第１のＴＵ内の１６×１６のサイズを有する保持される係数ブロックに関連する第１の符号化された係数に、１６×１６のサイズを有する保持される係数ブロックを生成するためにゼロ化された係数を含む３２×３２のサイズを有するＴＵと１６×１６のサイズを有するＴＵとによって共有されるジョイントコンテキストモデル内のコンテキスト（５）を割り当ててもよい。次いで、コンテキストモデル化ユニット１０４は、ジョイントコンテキストモデル内の割り当てられたコンテキスト（５）に関連する第１の符号化された係数の値の確率推定値を求め、第１の係数の復号された実際の値に基づいてジョイントコンテキストモデル内の割り当てられたコンテキスト（５）に関連する確率推定値を更新する。１６×１６のサイズを有する第２のＴＵに関連する第２の符号化された係数に、第１のＴＵ内の保持される係数ブロックに関連する第１の符号化された係数と同じジョイントコンテキストモデル内のコンテキスト（５）を割り当ててもよい。コンテキストモデル化ユニット１０４は次いで、ジョイントコンテキストモデル内の同じ割り当てられたコンテキスト（５）に関連する第２の符号化された係数の値の確率推定値を求め、第２の係数の復号された実際の値に基づいてジョイントコンテキストモデル内の同じ割当てられたコンテキスト（５）に関連する確率推定値を更新する。
【０１１９】
第２の例では、ジョイントコンテキストモデルストア１０６は、第１サイズを有するＴＵと第２のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルを記憶してもよい。例えば、ジョイントコンテキストモデルストア１０６は、３２×３２のサイズを有するＴＵと１６×１６のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルを記憶してもよい。３２×３２のサイズを有する第１のＴＵに関連する第１の符号化された係数に、３２×３２のサイズを有するＴＵと１６×１６のサイズを有するＴＵとによって共有されるジョイントコンテキストモデル内のコンテキスト（５）を割り当ててもよい。次いで、コンテキストモデル化ユニット１０４は、ジョイントコンテキストモデル内の割り当てられたコンテキスト（５）に関連する第１の符号化された係数の値の確率推定値を求め、第１の係数の復号された実際の値に基づいてジョイントコンテキストモデル内の割り当てられたコンテキスト（５）に関連する確率推定値を更新する。１６×１６のサイズを有する第２のＴＵに関連する第２の符号化された係数に、第１のＴＵに関連する第１の符号化された係数と同じジョイントコンテキストモデル内のコンテキスト（５）を割り当ててもよい。コンテキストモデル化ユニット１０４は次いで、ジョイントコンテキストモデル内の同じ割り当てられたコンテキスト（５）に関連する第２の符号化された係数の値の確率推定値を求め、第２の係数の復号された実際の値に基づいてジョイントコンテキストモデル内の同じ割当てられたコンテキスト（５）に関連する確率推定値を更新する。
【０１２０】
図７は、第１のサイズを有する第１の変換単位と第２のサイズを有する第２の変換単位との間で共有されるジョイントコンテキストモデルを使用してビデオ係数をエントロピー符号化しかつエントロピー復号する例示的な動作を示すフローチャートである。図示の動作について、図２のビデオエンコーダ２０内の図５のエントロピー符号化ユニット５６、及び図３のビデオデコーダ３０内の図６のエントロピー復号ユニット８０を参照して説明するが、他の機器が同様の技法を実施してもよい。
【０１２１】
0128
図示の動作では、ビデオエンコーダ２０内のエントロピー符号化ユニット５６及びビデオデコーダ３０内のエントロピー符号化ユニット８０は、第１のサイズを有するＴＵと第２のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルを維持してもよい。この場合、第１のサイズ、例えば３２×３２を有する第１のＴＵに含まれる係数は、第１のＴＵ内の高周波数係数をゼロ化しない場合でも第２のサイズ、例えば１６×１６を有する第２のＴＵに含まれる係数と同様の確率統計を有してもよい。このことは、高周波数係数が、エントロピーコード化のための近接する係数の確率統計に対する影響が無視できるほど少ない残差ビデオデータを表すために可能になる。
【０１２２】
ある場合には、ビデオエンコーダ２０は、変換ユニット５２を使用して残差ビデオデータを、第１のサイズを有するＴＵ内の変換係数に変換してもよい（１２０）。別の場合には、ビデオエンコーダ２０は、変換ユニット５２を使用して残差ビデオデータを、第２のサイズを有するＴＵ内の変換係数に変換してもよい（１２１）。本開示の各技法は、ＴＵが第１のサイズを有するかそれとも第２のサイズを有するかにかかわらず、エントロピー符号化ユニット５６が同じジョイントコンテキストモデルに従ってＴＵ内の係数をエントロピー符号化するのを可能にする。従って、これらの技法は、ビデオエンコーダ２０上にコンテキスト及び確率を記憶するのに必要なメモリの量を低減させ、ビデオエンコーダ２０上にコンテキストモデルを維持することについての計算コストを削減することができる。
【０１２３】
エントロピー符号化ユニット５６内のコンテキストモデル化ユニット９４は、第１のサイズと第２のサイズの両方を有するＴＵによって共有されるジョイントコンテキストモデルに従ってＴＵ内の各係数のコンテキストを選択する（１２２）。より具体的には、コンテキストモデル化ユニット９４は、ジョイントコンテキストモデルに従って、ＴＵの事前に符号化された近接する係数の値に基づいてＴＵの所与の係数にコンテキストを割り当てる。コンテキストモデル化ユニット９４は次いで、ジョイントコンテキストモデルストア９８内において、ジョイントコンテキストモデル内の割り当てられたコンテキストに関連する係数の値（例えば、０又は１）の確率推定値を求めてもよい。次に、算術符号化ユニット９６は、係数の選択されたコンテキストに基づいて係数を算術的に符号化する（１２４）。
【０１２４】
符号化後、算術符号化ユニット９６は、係数の実際の符号化された値をコンテキストモデル化ユニット９４に送り返す。次いで、コンテキストモデル化ユニット９４は、第１のサイズ又は第２のサイズのいずれかを有するＴＵ内の係数の実際の符号化された値に基づいてジョイントコンテキストモデルの確率推定値を更新してもよい（１２６）。ビデオエンコーダ２０は、第１のサイズ又は第２のサイズのいずれかを有するＴＵに関連する符号化された係数を表すビットストリームをビデオデコーダ３０に送信する（１２８）。
【０１２５】
ビデオデコーダ３０は、第１のサイズ又は第２のサイズのいずれかを有するＴＵに関連する符号化された変換係数を表す符号化されたビットストリームを受信してもよい（１３０）。本開示の各技法は、ＴＵが第１のサイズを有するかそれとも第２のサイズを有するかにかかわらず、エントロピー復号ユニット８０が同じジョイントコンテキストモデルに基づいてＴＵに関連する係数をエントロピー復号するのを可能にする。従って、これらの技法は、ビデオデコーダ３０上にコンテキスト及び確率を記憶するのに必要なメモリの量を低減させ、ビデオデコーダ３０上にコンテキストモデルを維持することについての計算コストを削減することができる。
【０１２６】
エントロピー復号ユニット８０内のコンテキストモデル化ユニット１０４は、第１のサイズと第２のサイズの両方を有するＴＵによって共有されるジョイントコンテキストモデルに従ってＴＵ内の各係数のコンテキストを選択する（１３２）。より具体的には、コンテキストモデル化ユニット１０４は、ジョイントコンテキストモデルに従って、ＴＵの事前に符号化された近接する係数の値に基づいてＴＵに関連する後続の符号化された係数にコンテキストを割り当ててもよい。コンテキストモデル化ユニット１０４は次いで、ジョイントコンテキストモデルストア１０６内において、ジョイントコンテキストモデル内の割り当てられたコンテキストに関連する符号化された係数の値（例えば、０又は１）の確率推定値を求めてもよい。コンテキストモデル化ユニット１０４は、符号化された係数の選択されたコンテキストに関連する確率推定値を算術復号ユニット１０２に送り返す。次に、算術符号化ユニット１０２は、選択されたコンテキストに基づいて、符号化された係数を第１のサイズ又は第２のサイズのいずれかを有するＴＵに算術的に復号する（１３４）。
【０１２７】
復号後、算術復号ユニット１０２は、係数の実際の符号化された値をコンテキストモデル化ユニット１０４に送り返す。次いで、コンテキストモデル化ユニット１０４は、第１のサイズ又は第２のサイズのいずれかを有するＴＵ内の係数の復号された実際の値に基づいてジョイントコンテキストモデルの確率推定値を更新してもよい（１３６）。ある場合には、ビデオデコーダ３０は、逆変換ユニット８８を使用して、第１のサイズを有するＴＵ内の係数を残差ビデオデータに逆変換してもよい（１３８）。別の場合には、ビデオデコーダ３０は、逆変換ユニット８８を使用して、第２のサイズを有するＴＵ内の係数を残差ビデオデータに逆変換してもよい（１３９）。
【０１２８】
図８は、第２のサイズを有する保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有する第１の変換単位と第２のサイズを有する第２の変換単位との間で共有されるジョイントコンテキストモデルを使用してビデオ係数をエントロピー符号化しかつエントロピー復号する例示的な動作を示すフローチャートである。図示の動作について、図２のビデオエンコーダ２０内の図４のエントロピー符号化ユニット５６、及び図３のビデオデコーダ３０内の図５のエントロピー復号ユニット８０を参照して説明するが、他の機器が同様の技法を実施してもよい。
【０１２９】
図示の動作では、ビデオエンコーダ２０内のエントロピー符号化ユニット５６及びビデオデコーダ３０内のエントロピー符号化ユニット８０は、第１のサイズを有するＴＵと第２のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルを維持してもよい。この場合、第１のサイズ、例えば３２×３２のサイズを有する第１のＴＵ内に第２のサイズ、例えば１６×１６のサイズを有する保持される係数ブロックに含まれる係数は、第２のサイズ、例えば１６×１６のサイズを有する第２のＴＵに含まれる係数と同様の確率統計を有してもよい。
【０１３０】
ある場合には、ビデオエンコーダ２０は、変換ユニット５２を使用して残差ビデオデータを、第１のサイズを有するＴＵ内の変換係数に変換してもよい（１４０）。ビデオエンコーダ２０は、変換後に第１のＴＵに含まれる係数のサブセットをゼロ化して、第２のサイズを有する保持される係数ブロックを第１のＴＵ内に生成する（１４１）。ゼロ化された変換係数のサブセットは通常、保持される係数ブロック内の係数と比較して高周波数の変換係数を含む。高周波数の変換係数に含まれる残差ビデオデータを非常に少なくすることができ、各値をゼロに等しく設定しても、復号後のビデオ品質に対する影響は無視できる程度の影響である。別の場合には、ビデオエンコーダ２０は、変換ユニット５２を使用して残差ビデオデータを、第２のサイズを有するＴＵ内の変換係数に変換してもよい（１４２）。
【０１３１】
本開示の各技法は、ＴＵが第１のサイズを有するかそれとも第２のサイズを有するかにかかわらず、エントロピー符号化ユニット５６が同じジョイントコンテキストモデルに従ってＴＵ内の保持される係数をエントロピー符号化するのを可能にする。従って、これらの技法は、ビデオエンコーダ２０上にコンテキスト及び確率を記憶するのに必要なメモリの量を低減させ、ビデオエンコーダ２０上にコンテキストモデルを維持することについての計算コストを削減することができる。
【０１３２】
エントロピー符号化ユニット５６内のコンテキストモデル化ユニット９４は、第２のサイズにゼロ化された係数を含む第１のサイズを有するＴＵと第２のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルに従ってＴＵ内の保持される各係数のコンテキストを選択する（１４４）。より具体的には、コンテキストモデル化ユニット９４は、ジョイントコンテキストモデルに従って、保持される係数ブロックの事前に符号化された近接する係数の値に基づいて第１のＴＵの保持される係数ブロック内の所与の係数にコンテキストを割り当てる。コンテキストモデル化ユニット９４は次いで、ジョイントコンテキストモデルストア９８内において、ジョイントコンテキストモデル内の割り当てられたコンテキストに関連する係数の値（例えば、０又は１）の確率推定値を求めてもよい。次に、算術符号化ユニット９６は、係数の選択されたコンテキストに基づいて係数を算術的に符号化する（１４６）。
【０１３３】
符号化後、算術符号化ユニット９６は、係数の実際の符号化された値をコンテキストモデル化ユニット９４に送り返す。次いで、コンテキストモデル化ユニット９４は、第１のサイズのＴＵ内の第２のサイズの保持される係数ブロック内又は本来第２のサイズを有するＴＵ内の係数の実際の符号化された値に基づいてジョイントコンテキストモデルの確率推定値を更新してもよい（１４８）。ビデオエンコーダ２０は、第１のサイズのＴＵ内の保持される係数ブロック又は第２のサイズのＴＵに関連する符号化された係数を表すビットストリームをビデオデコーダ３０に送信する（１５０）。
【０１３４】
次いで、ビデオデコーダ３０は、第１のサイズのＴＵ内の第２のサイズの保持される係数ブロック又は本来第２のサイズを有するＴＵに関連する符号化された係数を表すビットストリームを受信してもよい（１５２）。本開示の各技法は、ＴＵが第１のサイズを有するかそれとも第２のサイズを有するかにかかわらず、エントロピー復号ユニット８０が同じジョイントコンテキストモデルに基づいてＴＵに関連する係数をエントロピー復号するのを可能にする。従って、これらの技法は、ビデオデコーダ３０上にコンテキスト及び確率を記憶するのに必要なメモリの量を低減させ、ビデオデコーダ３０上にコンテキストモデルを維持することについての計算コストを削減することができる。
【０１３５】
エントロピー復号ユニット８０内のコンテキストモデル化ユニット１０４は、第２のサイズを有する保持される係数ブロックを生成するためにゼロ化された係数を含む第１のサイズを有するＴＵと第２のサイズを有するＴＵとによって共有されるジョイントコンテキストモデルに従ってＴＵに関連する各係数のコンテキストを選択する（１５４）。より具体的には、コンテキストモデル化ユニット１０４は、ジョイントコンテキストモデルに従って、保持される係数ブロックの事前に復号された近接する係数の値に基づいて第１のＴＵの保持される係数ブロックに関連する後続の符号化された係数にコンテキストを割り当ててもよい。コンテキストモデル化ユニット１０４は次いで、ジョイントコンテキストモデルストア１０６内において、ジョイントコンテキストモデル内の割り当てられたコンテキストに関連する符号化された係数の値（例えば、０又は１）の確率推定値を求めてもよい。コンテキストモデル化ユニット１０４は、符号化された係数の選択されたコンテキストに関連する求められた確率を算術符号化ユニット１０２に送り返す。次に、算術符号化ユニット１０２は、選択されたコンテキストに基づいて、符号化された係数を第１のサイズのＴＵ内の保持される係数ブロック又は第２のサイズのＴＵに算術的に復号する（１５６）。
【０１３６】
復号後、算術復号ユニット１０２は、係数の復号された実際の値をコンテキストモデル化ユニット１０４に送り返す。次いで、コンテキストモデル化ユニット１０４は、第１のサイズのＴＵ内の第２のサイズの保持される係数ブロック内又は本来第２のサイズを有するＴＵ内の係数の復号された実際の値に基づいてジョイントコンテキストモデルの確率推定値を更新してもよい（１５８）。ある場合には、ビデオデコーダ３０は、逆変換ユニット８８を使用して、第１のサイズを有するＴＵ内の第２のサイズを有する保持される係数ブロックの係数を残差ビデオデータに逆変換してもよい（１６０）。このようにして、逆変換ユニット８８は、第２のサイズを有する保持される係数ブロック内の残差データを含め、ＴＵ内の残りの残差データを表すゼロを加算することによって、第１のサイズを有するＴＵを生成してもよい。別の場合には、ビデオデコーダ３０は、逆変換ユニット８８を使用して、第２のサイズを有するＴＵ内の係数を残差ビデオデータに逆変換してもよい（１６２）。
【０１３７】
１つ以上の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。各機能は、ソフトウェアで実装された場合、１つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、若しくはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体、又は例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、又は（２）信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コード及び／又はデータ構造を取り出すために１つ以上のコンピュータ若しくは１つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１３８】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気ストレージ機器、フラッシュメモリ、若しくは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。さらに、あらゆる接続をコンピュータ可読媒体と呼ぶことも妥当である。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）及びディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）及びブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１３９】
命令は、１つ以上のデジタル信号プロセッサ（ＤＳＰ）などの１つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明する技法の実装に好適な他の構造のいずれかを指す。さらに、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のハードウェア及び／又はソフトウェアモジュール内に設けられ得、あるいは複合コーデックに組み込まれ得る。また、各技法は、１つ以上の回路又は論理要素中に十分に実装され得る。
【０１４０】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）又はＩＣのセット（例えば、チップセット）を含む、多種多様な機器又は装置において実施され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットは、好適なソフトウェア及び／又はファームウェアとともに、上記で説明したように１つ以上のプロセッサを含む、コーデックハードウェアユニットとして組み合わせられるか、又は相互動作ハードウェアユニットの集合によって実現され得る。
【図１】
0005788517.tif 000002
【図２】
0005788517.tif 000003
【図３Ａ】
0005788517.tif 000004
【図３Ｂ】
0005788517.tif 000005
【図４】
0005788517.tif 000006
【図５】
0005788517.tif 000007
【図６】
0005788517.tif 000008
【図７】
0005788517.tif 000009
【図８】
0005788517.tif 000010