(57)【特許請求の範囲】
【請求項１】
映像データを復号する方法であって、
ビットストリームから、残差ブロックの残差データを復号することであって、前記残差ブロックは、前記残差ブロックがピクセル領域から周波数領域に変換されないように、変換スキップモードでコーディングされることと、
前記残差ブロックが前記変換スキップモードでコーディングされることに応答して、前記残差ブロックの予測モード及び前記残差ブロックのサイズに基づいて、前記残差ブロックの前記残差データから前記映像データの映像ブロックを再構築する前に前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することであって、前記残差データの位置を再設定することは、前記残差ブロックの前記残差データを回転させること又はフリップさせることのうちの１つを備え、前記残差ブロックの前記予測モードがイントラ予測モードであり、前記残差ブロックの前記サイズがスレショルドのサイズ以下であることに基づいて、前記残差ブロックの前記残差データの位置を再設定するために決定が行われ、前記残差ブロックの前記予測モードが前記イントラ予測モードであり、前記残差ブロックの前記サイズが前記スレショルドのサイズよりも大きいことに基づいて、前記残差ブロックの前記残差データの位置再設定をディスエーブルにするために決定が行われることと、
前記残差データの位置を再設定すべきかどうかを決定した後、前記残差データから前記映像データの前記映像ブロックを再構築することと、を備える、方法。
【請求項２】
前記スレショルドのサイズは、８×８ブロック又は４×４ブロックのうちの１つに等しい請求項１に記載の方法。
【請求項３】
前記スレショルドのサイズは、非可逆コーディングモードにおいて変換をスキップすることが許容される最大ブロックサイズ以下であり、前記非可逆コーディングモードにおいて前記変換をスキップすることが許容される前記最大ブロックサイズは、前記映像データに関連するシーケンスパラメータセット（ＳＰＳ）及びピクチャパラメータセット（ＰＰＳ）のうちの１つにおいて示される請求項１に記載の方法。
【請求項４】
前記残差ブロックの前記予測モードがインター予測モードであることに基づいて、前記残差ブロックの前記残差データの位置再設定をディスエーブルにするために前記決定が行われる請求項１に記載の方法。
【請求項５】
前記残差ブロックの前記予測モードがイントラブロックコピーイング予測モードであることに基づいて、前記残差ブロックの前記残差データの位置を再設定するために前記決定が行われる請求項１に記載の方法。
【請求項６】
前記残差ブロックの前記予測モードが、残差差分パルス符号変調（ＤＰＣＭ）を使用するイントラ予測モード又は残差ＤＰＣＭを使用するイントラブロックコピーイング予測モードのうちの１つであることに基づいて、前記残差ブロックの前記残差データの位置再設定をディスエーブルにするために前記決定が行われる請求項１に記載の方法。
【請求項７】
前記残差ブロックの前記残差データの位置を再設定することの決定に基づいて、平均よりも高いエネルギーを有する前記残差データの一部分を前記残差ブロックの左上隅に配置した前記残差ブロックの前記残差データの符号化中に行われた回転又はフリップのうちの１つを逆転させるために前記残差ブロックの前記残差データの位置を再設定することをさらに備える請求項１に記載の方法。
【請求項８】
前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することは、前記残差ブロックを回転させることを決定することを備え、前記方法は、前記残差ブロックを予め決定された回転値だけ回転させることをさらに備える請求項１に記載の方法。
【請求項９】
前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することは、前記残差ブロックに関する回転値を決定することを備え、前記方法は、前記残差ブロックを前記決定された回転値だけ回転させることをさらに備える請求項１に記載の方法。
【請求項１０】
前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することは、前記残差ブロックの前記残差データをフリップさせることを決定することを備え、前記方法は、前記残差ブロックの主対角線又は副対角線のうちの１つに沿って前記残差ブロックの前記残差データをフリップさせることをさらに備える請求項１に記載の方法。
【請求項１１】
映像データを符号化する方法であって、
残差ブロックの残差データを符号化することであって、前記残差ブロックは、前記残差ブロックがピクセル領域から周波数領域に変換されないように、変換スキップモードでコーディングされることと、
前記残差ブロックが前記変換スキップモードでコーディングされることに応答して、前記残差ブロックの予測モード及び前記残差ブロックのサイズに基づいて、前記残差ブロックの前記残差データから前記映像データの映像ブロックを符号化する前に前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することであって、前記残差データの位置を再設定することは、前記残差ブロックの前記残差データを回転させること又はフリップさせることのうちの１つを備え、前記残差ブロックの前記予測モードがイントラ予測モードであり、前記残差ブロックの前記サイズがスレショルドのサイズ以下であることに基づいて、前記残差ブロックの前記残差データの位置を再設定するために決定が行われ、前記残差ブロックの前記予測モードが前記イントラ予測モードであり、前記残差ブロックの前記サイズが前記スレショルドのサイズよりも大きいことに基づいて、前記残差ブロックの前記残差データの位置再設定をディスエーブルにするために決定が行われることと、
前記残差データの位置を再設定すべきかどうかを決定した後、前記残差ブロックの前記残差データに基づいて、前記映像ブロックを符号化することと、を備える、方法。
【請求項１２】
前記スレショルドのサイズは、８×８ブロック又は４×４ブロックのうちの１つに等しい請求項１１に記載の方法。
【請求項１３】
前記スレショルドのサイズは、非可逆コーディングモードにおいて変換をスキップすることが許容される最大ブロックサイズ以下であり、前記方法は、前記非可逆コーディングモードにおいて前記変換をスキップすることが許容される前記最大ブロックサイズを前記映像データに関連するシーケンスパラメータセット（ＳＰＳ）及びピクチャパラメータセット（ＰＰＳ）のうちの１つにおいて示すことをさらに備える請求項１１に記載の方法。
【請求項１４】
前記残差ブロックの前記予測モードがインター予測モードであることに基づいて、前記残差ブロックの前記残差データの位置再設定をディスエーブルにするために前記決定が行われる請求項１１に記載の方法。
【請求項１５】
前記残差ブロックの前記予測モードがイントラブロックコピーイング予測モードであることに基づいて、前記残差ブロックの前記残差データの位置を再設定するために前記決定が行われる請求項１１に記載の方法。
【請求項１６】
前記残差ブロックの前記予測モードが、残差差分パルス符号変調（ＤＰＣＭ）を使用するイントラ予測モード又は残差ＤＰＣＭを使用するイントラブロックコピーイング予測モードのうちの１つであることに基づいて、前記残差ブロックの前記残差データの位置再設定をディスエーブルにするために前記決定が行われる請求項１１に記載の方法。
【請求項１７】
前記残差ブロックの前記残差データの位置を再設定することの決定に基づいて、平均よりも高いエネルギーを有する前記残差データの一部分を前記残差ブロックの左上隅に配置するために前記残差ブロックの前記残差データを回転させること又はフリップさせることのうちの１つをさらに備える請求項１１に記載の方法。
【請求項１８】
前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することは、前記残差ブロックを回転させることを決定することを備え、前記方法は、前記残差ブロックを予め決定された回転値だけ回転させることをさらに備える請求項１１に記載の方法。
【請求項１９】
前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することは、前記残差ブロックに関する回転値を決定することを備え、前記方法は、前記残差ブロックを前記決定された回転値だけ回転させることをさらに備える請求項１１に記載の方法。
【請求項２０】
前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することは、前記残差ブロックの前記残差データをフリップさせることを決定することを備え、前記方法は、前記残差ブロックの主対角線又は副対角線のうちの１つに沿って前記残差ブロックの前記残差データをフリップさせることをさらに備える請求項１１に記載の方法。
【請求項２１】
映像データをコーディングするための映像コーディングデバイスであって、
映像データを格納するように構成されたメモリと、
残差ブロックの残差データをコーディングするように構成され、前記残差ブロックは、前記残差ブロックがピクセル領域から周波数領域に変換されないように、変換スキップモードでコーディングされる、
前記残差ブロックが前記変換スキップモードでコーディングされることに応答して、前記残差ブロックの予測モード及び前記残差ブロックのサイズに基づいて、前記残差ブロックの前記残差データから前記映像データの映像ブロックをコーディングする前に前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定するように構成され、ここにおいて、前記残差データの位置を再設定することは、前記残差ブロックの前記残差データを回転させること又はフリップさせることのうちの１つを備え、前記残差ブロックの前記予測モードがイントラ予測モードであり、前記残差ブロックの前記サイズがスレショルドのサイズ以下であることに基づいて、前記残差ブロックの前記残差データの位置を再設定するために決定が行われ、前記残差ブロックの前記予測モードが前記イントラ予測モードであり、前記残差ブロックの前記サイズが前記スレショルドのサイズよりも大きいことに基づいて、前記残差ブロックの前記残差データの位置再設定をディスエーブルにするために決定が行われる、
前記残差データの位置を再設定すべきかどうかを決定した後、前記残差ブロックの前記残差データに基づいて、前記映像ブロックをコーディングするように構成された１つ以上のプロセッサと、を備える、映像コーディングデバイス。
【請求項２２】
前記スレショルドのサイズは、非可逆コーディングモードにおいて変換をスキップすることが許容される最大ブロックサイズ以下であり、前記非可逆コーディングモードにおいて前記変換をスキップすることが許容される前記最大ブロックサイズは、前記映像データに関連するシーケンスパラメータセット（ＳＰＳ）及びピクチャパラメータセット（ＰＰＳ）のうちの１つにおいて示される請求項２１に記載のデバイス。
【請求項２３】
前記残差ブロックの前記予測モードがインター予測モードであることに基づいて、前記残差ブロックの前記残差データの位置再設定をディスエーブルにするために前記決定が行われる請求項２１に記載のデバイス。
【請求項２４】
前記残差ブロックの前記予測モードが、イントラブロックコピーイング予測モードであることに基づいて、前記残差ブロックの前記残差データの位置を再設定するために前記決定が行われる請求項２１に記載のデバイス。
【請求項２５】
前記映像コーディングデバイスは、映像データを符号化するための映像符号化デバイスを備え、前記残差ブロックの前記残差データの位置を再設定することの決定に基づいて、前記プロセッサは、平均よりも高いエネルギーを有する前記残差データの一部分を前記残差ブロックの左上隅に配置するために前記残差ブロックの前記残差データを回転させること又はフリップさせることのうちの１つを行うように構成される請求項２１に記載のデバイス。
【請求項２６】
前記映像コーディングデバイスは、映像データを復号するための映像復号デバイスを備え、前記残差ブロックの前記残差データの位置を再設定することの決定に基づいて、前記プロセッサは、平均よりも高いエネルギーを有する前記残差データの一部分を前記残差ブロックの左上隅に配置した前記残差ブロックの前記残差データの符号化中に行われた回転又はフリップのうちの１つを逆転させるために前記残差ブロックの前記残差データの位置を再設定するように構成される請求項２１に記載のデバイス。
【請求項２７】
映像データをコーディングするための命令を備える非一時的なコンピュータによって読み取り可能な媒体であって、前記命令は、実行されたときに、
残差ブロックの残差データをコーディングすることであって、前記残差ブロックは、前記残差ブロックがピクセル領域から周波数領域に変換されないように、変換スキップモードでコーディングされることと、
前記残差ブロックが前記変換スキップモードでコーディングされることに応答して、前記残差ブロックの予測モード及び前記残差ブロックのサイズに基づいて、前記残差ブロックの前記残差データから前記映像データの映像ブロックをコーディングする前に前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することであって、前記残差データの位置を再設定することは、前記残差ブロックの前記残差データを回転させること又はフリップさせることのうちの１つを備え、前記残差ブロックの前記予測モードがイントラ予測モードであり、前記残差ブロックの前記サイズがスレショルドのサイズ以下であることに基づいて、前記残差ブロックの前記残差データの位置を再設定するために決定が行われ、前記残差ブロックの前記予測モードが前記イントラ予測モードであり、前記残差ブロックの前記サイズが前記スレショルドのサイズよりも大きいことに基づいて、前記残差ブロックの前記残差データの位置再設定をディスエーブルにするために決定が行われることと、
前記残差データの位置を再設定すべきかどうかを決定した後、前記残差ブロックの前記残差データに基づいて、前記映像ブロックを符号化することと、を１つ以上のプログラマブルプロセッサに行わせる、非一時的なコンピュータによって読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［０００１］本出願は、米国特許出願第１３／９３９，０３７号（出願日：２０１３年７月１０日）の一部継続出願であり、米国仮特許出願第６１／６７０，５６９号（出願日：２０１２年７月１１日）、米国仮特許出願第６１／８１５，１４８号（出願日：２０１３年４月２３日）、及び米国仮特許出願第６１／８３３，７８１号（出願日：２０１３年６月１１日）の利益を主張するものであり、各々の全内容がここにおける引用によってここに組み入れられている。本出願は、その全内容がここにおける引用によってここに組み入れられている米国仮特許出願第６１／８９０，１０２号（出願日：２０１３年１０月１１日）の利益も主張するものである。
【０００２】
［０００２］本開示は、映像コーディング（すなわち、映像符号化及び映像復号）に関するものであり、特に、可逆映像コーディングに関するものである。
【背景技術】
【０００３】
［０００３］デジタル映像能力を広範なデバイス内に組み入れることができ、デジタルテレビと、デジタル直接放送システムと、無線放送システムと、パーソナルデジタルアシスタント（ＰＤＡ）と、ラップトップ又はデスクトップコンピュータと、タブレットコンピュータと、電子書籍リーダーと、デジタルカメラと、デジタル記録デバイスと、デジタルメディアプレーヤーと、ビデオゲームプレイ装置と、ビデオゲームコンソールと、セルラー又は衛星無線電話と、いわゆる“スマートフォン”と、ビデオ遠隔会議装置と、映像ストリーミングデバイスと、等、を含む。デジタル映像デバイスは、映像圧縮技法、例えば、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、アドバンストビデオコーディング（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ））によって定義される規格、現在策定中の高効率映像コーディング（Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格、及び該規格の拡張版において説明されるそれらを実装する。映像デバイスは、該映像圧縮技法を実装することによってデジタル映像情報をより効率的に送信、受信、符号化、復号、及び／又は格納することができる。
【０００４】
［０００４］映像圧縮技法は、映像シーケンスに固有の冗長性を低減又は除去するために空間的（イントラピクチャ）予測及び／又は時間的（インターピクチャ）予測を行う。ブロックに基づく映像コーディングでは、映像スライス（例えば、映像フレーム、映像フレームの一部分、等）を映像ブロックに分割することができ、それらは、ツリーブロック、コーディングユニット（ＣＵ）及び／又はコーディングノードと呼ぶこともできる。ピクチャのイントラコーディングされた（Ｉ）スライス内の映像ブロックは、同じピクチャ内の近隣ブロック内の基準サンプルに関して空間的予測を用いて符号化される。ピクチャのインターコーディングされた（Ｐ又はＢ）スライス内の映像ブロックは、同じピクチャ内の近隣ブロック内の基準サンプルに関しては空間的予測、その他の基準ピクチャ内の基準サンプルに関しては時間的予測を使用することができる。ピクチャは、フレームと呼ぶことができ、基準ピクチャは、基準フレームと呼ぶことができる。
【０００５】
［０００５］空間的又は時間的予測の結果、コーディングされるべきブロックに関する予測ブロックが得られる。残差データは、コーディングされるべきオリジナルのブロックと予測ブロックとの間のピクセル差分を表す。インター予測ブロックは、前に復号された基準ピクチャ内で予測ブロックを形成する基準サンプルのブロックを指し示す動きベクトル、及びコーディングされたブロックのピクセルと予測ブロックのピクセルとの間の差分を示す残差データにより符号化される。イントラコーディングされたブロックは、イントラコーディングモード及び残差データにより符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換することができ、その結果残差変換係数が得られ、それらは量子化することができる。量子化された変換係数は、当初は二次元配列で配置され、変換係数の一次元ベクトルを生成するために走査することができ、及び、さらなる圧縮を達成させるためにエントロピーコーディングを適用することができる。
【発明の概要】
【０００６】
［０００６］概して、本開示は、変換がスキップ又は迂回される可逆コーディングモード又は非可逆コーディングモードのいずれかにおいて予測残差ブロックの残差データをコーディングするための技法について説明する。例えば、変換スキップモードを使用する可逆コーディングモード又は非可逆コーディングモードにおいて残差ブロックに変換が適用されないときには、平均よりも高いエネルギー、すなわち、平均よりも大きいピクセル差分値、を有する残差データは、残差ブロックの左上隅に配置することができず、それは、エントロピーコーディングに関しては予想される。本開示の技法は、残差ブロックの残差データをコーディングする前に残差ブロックの残差データの位置を再設定（ｒｅｐｏｓｉｔｉｏｎｉｎｇ）、例えば、回転又はフリップ（ｆｌｉｐ）させるべきかどうかを決定することを含む。
【０００７】
［０００７］１つの映像コーディング規格例、例えば、高効率映像コーディング（ＨＥＶＣ）のレンジ拡張、により、非可逆コーディングモードでは、あらゆるサイズの残差ブロックに変換スキップモードを適用することができ、可逆コーディングモードでは、すべての残差ブロックに関して変換手順及び量子化手順が迂回される。本開示の技法により、非可逆コーディングモード又は可逆コーディングモードのいずれでも残差ブロックに変換が適用されないときには、残差ブロックの残差データの位置の再設定は、ある一定の予測モード及びある一定のブロックサイズに制限することができる。例えば、映像符号器又は映像復号器は、残差ブロックの予測モード、例えば、イントラ予測モード、インター予測モード、又はイントラブロックコピーイング予測モード、及び残差ブロックのサイズに基づいて残差ブロックの残差データの位置を再設定すべきかどうかを決定することができる。幾つかの例においては、それらの技法は、インター予測モード及びイントラブロックコピーイング予測モードにおけるすべての残差ブロックに関する残差データの位置の再設定をディスエーブルにする。その他の例においては、それらの技法は、残差ブロックがスレショルドサイズ以下であるブロックサイズを有するときにイントラ予測モードで残差ブロックの位置を再設定することを決定する。
【０００８】
［０００８］一例においては、本開示は、映像データを復号する方法が対象であり、その方法は、残差映像ブロックに変換が適用されないことを示す１つ以上の構文要素に基づいて非可逆コーディングモード又は可逆コーディングモードにおいて映像データの残差ブロックを復号することと、残差ブロックの予測モード及び残差ブロックのサイズに基づいて、残差ブロックの残差データから映像ブロックを再構築する前に残差ブロックの残差データの位置を再設定すべきかどうかを決定することであって、残差データの位置を再設定することは、残差ブロックの残差データを回転させること又はフリップさせることのうちの１つを備えることと、を備える。
【０００９】
［０００９］他の例においては、本開示は、映像データを符号化する方法を対象とするものであり、その方法は、非可逆コーディングモード又は可逆コーディングモードのいずれかにおいて映像データの残差ブロックを符号化することであって、残差映像ブロックに変換が適用されないことと、残差ブロックの予測モード及び残差ブロックのサイズに基づいて、残差ブロックの残差データを符号化する前に残差ブロックの残差データの位置を再設定すべきかどうかを決定することであって、残差データの位置を再設定することは、残差ブロックの残差データを回転させること又はフリップさせることのううちの１つを備えることと、を備える。
【００１０】
［００１０］さらなる例においては、本開示は、映像データをコーディングするための映像コーディングデバイスを対象とするものであり、そのデバイスは、映像データを格納するように構成されたメモリと、非可逆コーディングモード又は可逆コーディングモードのいずれかにおいて映像データの残差ブロックをコーディングするように構成され、ここにおいて、可逆コーディングモードでは残差映像ブロックに変換が適用されず、及び、残差ブロックの予測モード及び残差ブロックのサイズに基づいて、残差ブロックの残差データをコーディングする前に残差ブロックの残差データの位置を再設定すべきかどうかを決定するように構成され、ここにおいて、残差データの位置を再設定することは、残差ブロックの残差データを回転させること又はフリップさせることのうちの１つを備える、１つ以上のプロセッサと、を備える。
【００１１】
［００１１］追加の例においては、本開示は、映像データをコーディングするための命令を備えるコンピュータによって読み取り可能な媒体を対象とするものであり、それらの命令は、実行されたときに、非可逆コーディングモード又は可逆コーディングモードにおいて映像データの残差ブロックをコーディングすることを１つ以上のプログラマブルプロセッサに行わせ、可逆コーディングモードでは残差映像ブロックに変換は適用されず、及び、残差ブロックの予測モード及び残差ブロックのサイズに基づいて、残差ブロックの残差データをコーディングする前に残差ブロックの残差データの位置を再設定すべきかどうかを決定することを１つ以上のプログラマブルプロセッサに行わせ、残差データの位置を再設定することは、残差ブロックの残差データを回転させること又はフリップさせることのうちの１つを備える。
【００１２】
［００１２］添付される図面及び以下の説明において１つ以上の例の詳細が示される。これらの説明と図面から、及び請求項からその他の特徴、目的、及び利点が明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】［００１３］変換スキップを用いて残差データをコーディングするために本開示において説明される技法を利用することができる映像符号化及び復号システム例を示したブロック図である。
【図２】［００１４］残差ブロックの残差データを符号化する前に残差ブロックを回転させるべきかどうかを決定するために本開示において説明される技法を実装することができる映像符号器例を示したブロック図である。
【図３】［００１５］残差ブロックの残差データから映像ブロックを再構築する前に残差ブロックを回転させるべきかどうかを決定するために本開示において説明される技法を実装することができる映像復号器例を示したブロック図である。
【図４】［００１６］動き予測モードにより１つ以上の予測ユニット（ＰＵ）に及び四分木データ構造により複数の変換ユニット（ＴＵ）に分割された残差ブロックのコーディングユニット（ＣＵ）を示したブロック図である。
【図５】［００１７］映像符号器が残差ブロックの残差データを符号化する前に残差ブロックを回転させるべきかどうかを決定する典型的な動作を例示したフローチャートである。
【図６】［００１８］映像復号器が残差ブロックの残差データから映像ブロックを再構築する前に残差ブロックを回転させるべきかどうかを決定する典型的な動作を例示したフローチャートである。
【図７】［００１９］残差ブロックの縁部における境界のタイプに基づいて残差ブロックを予め決定された回転値だけ回転させるべきかどうかを決定する１つの動作例を示したフローチャートである。
【図８】［００２０］残差ブロックを回転させるべきかどうかを決定する他の動作例を示したフローチャートであり、２つ以上の可能な回転値の各々に関して残差ブロックの縁部における境界のタイプに基づいて残差ブロックに関する回転値を決定することを含む。
【図９】［００２１］残差ブロックに変換が適用されないときに回転を行うことができる残差ブロックのブロックサイズを制限する動作例を示したフローチャートである。
【図１０】［００２２］残差ブロックに変換が適用されないときに対角線に沿った残差データサンプル値のフリップを行うことができる残差ブロックのブロックサイズを制限する動作例を示したフローチャートである。
【図１１Ａ】［００２３］残差差分パルス符号変調（ＲＤＰＣＭ）を用いてコーディングされる残差ブロックを例示した概念図である。
【図１１Ｂ】［００２３］残差差分パルス符号変調（ＲＤＰＣＭ）を用いてコーディングされる残差ブロックを例示した概念図である。
【図１２】［００２４］イントラブロックコピーイング予測モードを用いて同じピクチャ内の前にコーディングされたブロックに基づいて予測中の現在のブロックを含む現在のピクチャを例示した概念図である。
【図１３】［００２５］残差ブロックの予測モード及び残差ブロックのサイズに基づいて変換が適用されない残差ブロックの残差データの位置を再設定すべきかどうかを決定する動作例を示したフローチャートである。
【発明を実施するための形態】
【００１４】
［００２６］本開示は、変換スキップを用いて予測残差ブロックの残差データをコーディングするための技法について説明する。残差ブロックの残差データは、コーディングされるべき映像ブロックのピクセルとコーディングされるべきブロックに関して生成された予測ブロックの対応するピクセルとの間のピクセル差分値を備える。残差ブロックが変換スキップモードにおいて可逆コーディングモード又は非可逆コーディングモードを用いてコーディングされるときには残差ブロックに関して変換をスキップすることができる。残差ブロックに変換が適用されないときには、平均よりも高いエネルギー、すなわち、平均よりも大きいピクセル差分値、を有する残差データは、残差ブロックの左上隅に配置することができず、それは、エントロピーコーディングに関しては予想される。
【００１５】
［００２７］残差ブロックに関して変換がスキップされるときには、平均よりも高いエネルギーを有する残差データを残差ブロックの左上隅に配置するために符号化中に残差ブロックを回転させることによってエントロピーコーディング効率を向上させることができる。復号中には、残差ブロック及び予測ブロックからオリジナルの映像ブロックを再構築するために符号化中に行われた回転を逆にする必要がある。
【００１６】
［００２８］イントラ予測モードにおいて、残差ブロックに関して変換がスキップされるときには、平均よりも高いエネルギーを有する残差データは、典型的には、残差ブロックの右下隅に配置される。幾つかの事例においては、イントラ予測残差ブロックは、平均よりも高いエネルギーを有する残差データを残差ブロックの左上隅に配置するために残差ブロックをコーディングする前に１８０度だけ自動的に回転させることができる。しかしながら、インター予測モードでは、残差ブロックを自動的に１８０度だけ回転させるのは常に望ましいわけではない。
【００１７】
［００２９］本開示の技法により、残差ブロックに関して変換がスキップされることに基づいて、映像符号器又は映像復号器内に含まれている位置再設定ユニットは、残差ブロックの残差データをコーディングする前に残差ブロックを回転させるべきかどうかを決定する。幾つかの例においては、回転値は、映像符号器と映像復号器との間で明示でシグナリングすることができる。その他の例においては、映像符号器及び映像復号器は、残差ブロックの２つ以上の縁部における境界のタイプに基づいて残差ブロックを回転させるべきかどうかを各々独立して決定することができる。
【００１８】
［００３０］インター予測モードでは、残差ブロックの変換ユニット（ＴＵ）境界、すなわち、同じ予測ユニット（ＰＵ）に属する２つのＴＵ間の境界、における残差データは、典型的には、残差ブロック内の平均的な残差データよりも低いエネルギーを有する。さらに、残差ブロックのＰＵ境界、すなわち、異なるＰＵに属する２つのＴＵ間の境界、における残差データは、典型的には、残差ブロック内の平均的な残差データよりも高いエネルギーを有する。この観測に基づき、本開示の技法は、残差ブロックの２つ以上の縁部における境界のタイプに基づいて変換スキップを用いてインター予測残差ブロックを回転させることを含む。例えば、位置再設定ユニットは、残差ブロックの２つ以上の縁部における境界のタイプを決定し、次に、残差データの位置を再設定するために縁部における境界のタイプに基づいて残差ブロックを回転させるべきかどうかを決定することができる。
【００１９】
［００３１］幾つかの例においては、位置再設定ユニットは、残差ブロックを予め決定された回転値、例えば、１８０度、だけ回転させるか、又は、残差ブロックを回転させないかを決定する。その他の例においては、位置再設定ユニットは、残差ブロックを回転させるべき回転値を、２つ以上の回転値、例えば、０度、すなわち回転させない、１８０度、９０度又は２７０度、から決定する。
【００２０】
［００３２］符号化側では、回転は、エントロピーコーディング効率を向上させるために、平均よりも高いエネルギーを有する残差データを、残差ブロックの残差データを符号化する前に回転された残差ブロックの左上隅に配置する。復号側では、回転は、予測ブロックを用いて残差ブロックから映像ブロックを再構築するために、符号化中に行われた回転を逆転させ、平均よりも高いエネルギーを有する残差データをオリジナルの映像ブロック内の原位置に戻す。
【００２１】
［００３３］本開示は、変換がスキップ又は迂回される可逆コーディングモード又は非可逆コーディングモードのいずれかにおいて予測残差ブロックの残差データをコーディングするための技法についても説明する。本開示の技法は、残差ブロックの残差データをコーディングする前に残差ブロックの残差データの位置を再設定する、例えば、回転させる又はフリップさせるべきかどうかを決定することを含む。幾つかの例においては、残差ブロックの残差データは、上述されるように回転させることができる。その他の例においては、残差ブロックの残差データは、残差ブロックの主対角線又は副対角線のうちの１つに沿ってフリップさせることができ、残差データをフリップさせるために残差ブロックの対角線の第１の側における残差データを残差ブロックの対角線の第２の側における対応するミラー画像（鏡像）の位置における残差データとスワップすることを含む。
【００２２】
［００３４］１つの映像コーディング規格例、高効率映像コーディング（ＨＥＶＣ）のレンジ拡張により、非可逆コーディングモードでは、あらゆるサイズの残差ブロックに変換スキップモードを適用することができ、可逆コーディングモードでは、すべての残差ブロックに関して変換手順及び量子化手順が迂回される。従って、非可逆コーディングモード及び可逆コーディングモードの両方において、すべてのブロックサイズに関して変換をスキップ又は迂回することができ、従って、イントラ予測モード及びインター予測モードの両方においてすべてのブロックサイズに対して回転を適用することができる。幾つかの例においては、非可逆コーディングモードでは、変換スキップモードは、最大ブロックサイズまでのサイズ、例えば、４×４又は８×８、を有する残差ブロックのみに適用されるように制限することができる。非可逆コーディングモードにおいて変換をスキップすることが許容される最大ブロックサイズは、残差ブロックに関連するシーケンスパラメータセット（ＳＰＳ）及びピクチャパラメータセット（ＰＰＳ）のうちの１つにおいて示すことができる。
【００２３】
［００３５］本開示の技法により、非可逆コーディングモード及び可逆コーディングモードのいずれにおいても残差ブロックに変換が適用されないときには、残差ブロックの残差データの位置の再設定は、ある一定の予測モード及びある一定のブロックサイズに制限することができる。例えば、映像符号器又は映像復号器は、残差ブロックの予測モード、例えば、イントラ予測モード、インター予測モード、又はイントラブロックコピーイング予測モード、及び、残差ブロックのサイズ、に基づいて残差ブロックの残差データの位置を再設定すべきかどうかを決定することができる。幾つかの例においては、それらの技法は、インター予測モード及びイントラブロックコピーイング予測モードにおいてすべての残差ブロックに関する残差データの位置の再設定をディスエーブルにする。その他の例においては、それらの技法は、残差ブロックがスレショルドのりサイズ以下のブロックサイズを有するときにイントラ予測モードで残差ブロックの位置を再設定することを決定する。幾つかの事例においては、スレショルドのサイズは、４×４又は８×８に等しいことができる。その他の事例においては、スレショルドサイズは、非可逆コーディングモードにおいて変換スキップが許容される最大ブロックサイズ以下であることができる。このようにして、イントラ予測モード残差ブロックに回転を適用することができるブロックサイズは、変換スキップモードを使用する可逆コーディングモード及び非可逆コーディングモードの両方において同じである。
【００２４】
［００３６］図１は、変換スキップを用いて残差データをコーディングするために本開示において説明される技法を利用することができる映像符号化及び復号システム例１０を示したブロック図である。図１において示されるように、システム１０は、例えば、行先デバイス１４によってのちに復号するために符号化された映像データを生成するソースデバイス１２を含む。ソースデバイス１２及び行先デバイス１４は、広範なデバイスのうちのいずれかを備えることができ、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、電話ハンドセット、例えば、いわゆる“スマート”フォン、いわゆる“スマート”パッド、テレビ、カメラ、表示装置、デジタルメディアプレーヤー、ビデオゲームコンソール、映像ストリーミングデバイス、等を含む。幾つかの事例においては、ソースデバイス１２及び行先デバイス１４は、無線通信のために装備することができる。
【００２５】
［００３７］行先デバイス１４は、リンク１６を介して復号されるべき符号化された映像データを受信することができる。リンク１６は、符号化された映像データをソースデバイス１２から行先デバイス１４に移動させることが可能なあらゆるタイプの媒体又はデバイスを備えることができる。一例においては、リンク１６は、ソースデバイス１２が符号化された映像データをリアルタイムで直接行先デバイス１４に送信するのを可能にする通信媒体を備えることができる。符号化された映像データは、通信規格、例えば、無線通信プロトコル、により変調し、行先デバイス１４に送信することができる。通信媒体は、無線又は有線の通信媒体、例えば、無線周波数（ＲＦ）スペクトル又は１つ以上の物理的送信ライン、を備えることができる。通信媒体は、パケットに基づくネットワーク、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、又はグローバルネットワーク、例えば、インターネット、の一部を形成することができる。通信媒体は、ルータ、スイッチ、基地局、又はソースデバイス１２から行先デバイス１４への通信を容易にするのに役立つことができるその他のあらゆる装置を含むことができる。
【００２６】
［００３８］代替として、符号化されたデータは、出力インタフェース２２から記憶デバイス３４に出力することができる。同様に、符号化されたデータは、入力インタフェースによって記憶デバイス３４からアクセスすることができる。記憶デバイス３４は、様々な分散された又はローカルでアクセスされるデータ記憶媒体、例えば、ハードドライブ、Ｂｌｕｅ−ｒａｙディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性メモリ、非揮発性メモリ、又は符号化された映像データを格納するためのその他の適切なデジタル記憶媒体、を含むことができる。さらなる例では、記憶デバイス３４は、ソースデバイス１２によって生成された符号化された映像を保持することができるファイルサーバ又は他の中間的な記憶デバイスに対応することができる。行先デバイス１４は、ストリーミング又はダウンロードを介して記憶デバイス３４から格納される映像データにアクセスすることができる。ファイルサーバは、符号化された映像データを格納すること及びその符号化された映像データを行先デバイス１４に送信することが可能なあらゆるタイプのサーバであることができる。ファイルサーバ例は、（例えば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続記憶（ＮＡＳ）デバイス、及びローカルディスクドライブを含む。行先デバイス１４は、インターネット接続を含む標準的なデータ接続を通じて符号化された映像データにアクセスすることができる。これは、ファイルサーバに格納された符号化された映像データにアクセスするのに適する無線チャネル（例えば、Ｗｉ−Ｆｉ接続）、有線接続（例えば、ＤＳＬ、ケーブルモデム、等）、又は両方の組み合わせを含むことができる。記憶デバイス３４からの符号化された映像データの送信は、ストリーミング送信、ダウンロード送信、又は両方の組み合わせであることができる。
【００２７】
［００３９］本開示の技法は、無線の用途又はセッティングには必ずしも限定されない。それらの技法は、映像コーディングに適用することができ、様々なマルチメディア用途、例えば、オーバー・ザ・エアテレビ放送、ケーブルテレビ送信、衛星テレビ送信、例えば、インターネットを介してのストリーミング映像送信、データ記憶媒体上に格納するためのデジタル映像の符号化、データ記憶媒体に格納されたデジタル映像の復号、又はその他の用途をサポートする。幾つかの例では、システム１０は、映像ストリーミング、映像再生、映像放送、及び／又は映像テレフォニー、等の用途をサポートするために１方向又は２方向の映像送信をサポートするように構成することができる。
【００２８】
［００４０］図１の例では、ソースデバイス１２は、映像ソース１８と、映像符号器２０と、出力インタフェース２２と、を含む。幾つかの事例においては、出力インタフェース２２は、変調器／復調器（モデム）及び／又は送信機を含むことができる。ソースデバイス１２において、映像ソース１８は、ソース、例えば、映像キャプチャデバイス、例えば、ビデオカメラ、以前にキャプチャされた映像が入った映像アーカイブ、映像コンテンツプロバイダからの映像を受信するための映像フィードインタフェース、及び／又は、コンピュータグラフィックスデータをソース映像として生成するためのコンピュータグラフィックスシステム、又は、該ソースの組み合わせを含むことができる。一例として、映像ソース１８がビデオカメラである場合は、ソースデバイス１２及び行先デバイス１４は、いわゆるカメラフォン又はビデオフォンを形成することができる。しかしながら、本開示において説明される技法は、映像コーディング全般に対して適用可能であり、及び、無線及び／又は有線の用途に適用することができる。
【００２９】
［００４１］キャプチャされた、予めキャプチャされた、又はコンピュータによって生成される映像は、映像符号器１２によって符号化することができる。符号化された映像データは、ソースデバイス２０の出力インタフェース２２を介して行先デバイス１４に直接送信することができる。符号化された映像データは、復号及び／又は再生を目的として行先デバイス１４又はその他のデバイスがのちにアクセスするために記憶デバイス３４に格納することもできる（又は代替として格納することができる）。
【００３０】
［００４２］行先デバイス１４は、入力インタフェース２８と、映像復号器３０と、表示装置３２と、を含む。幾つかの事例においては、入力インタフェース２８は、受信機及び／又はモデムを含むことができる。行先デバイス１４の入力インタフェース２８は、リンク１６を通じて符号化された映像データを受信する。リンク１６を通じて通信される、又は記憶デバイス３４で提供される符号化された映像データは、映像データを復号する際に映像復号器、例えば、映像復号器３０、によって使用するための映像符号器２０によって生成された様々な構成要素を含むことができる。該構成要素は、通信媒体で送信された符号化された映像データとともに含めること、記憶媒体に格納すること、又はファイルサーバに格納することができる。
【００３１】
［００４３］表示装置３２は、行先デバイス１４と一体化すること又は行先デバイス１４の外部に存在することができる。幾つかの例においては、行先デバイス１４は、一体化された表示装置を含むことができ及び外部の表示デバイスとインタフェースするように構成することもできる。その他の例においては、行先デバイス１４は、表示装置であることができる。概して、表示装置３２は、復号された映像データをユーザに表示し、様々な表示装置、例えば、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、又は他のタイプの表示装置、を備えることができる。
【００３２】
［００４４］デジタル映像デバイスは、デジタル映像情報をより効率的に符号化及び復号するための映像圧縮技法を実装する。映像圧縮は、映像シーケンスに固有の冗長性を低減させるか又は除去するために空間的（フレーム内）予測技法及び／又は時間的（フレーム間）予測技法を適用することができる。映像符号器２０及び映像復号器３０は、映像圧縮規格、例えば、現在策定中の高効率映像コーディング（ＨＥＶＣ）規格、に従って動作することができ、及びＨＥＶＣテストモデル（ＨＭ）に準拠することができる。代替として、映像符号器２０及び映像復号器３０は、その他の独占規格又は工業規格により動作することができる。しかしながら、本開示の技法は、特定のコーディング規格には限定されない。
【００３３】
［００４５］映像コーディング規格は、ＩＴＵ−Ｔ  Ｈ．２６１、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６２又はＩＳＯ／ＩＥＣ  ＭＰＥＧ−２  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｖｉｓｕａｌ、ＩＴＵ−Ｔ  Ｈ．２６４（ＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  ＡＶＣとも呼ばれる）を含み、それのスケーラブル映像コーディング（ＳＶＣ）及びマルチビュー映像コーディング（ＭＶＣ）拡張を含む。さらに、新しいコーディング規格、すなわち、ＨＥＶＣが、ＩＴＵ−Ｔビデオコーディングエキスパーツグループ（ＶＣＥＧ）及びＩＳＯ／ＩＥＣモーションピクチャエキスパーツグループ（ＭＰＥＧ）の映像コーディングに関する共同作業チーム（ＪＣＴ−ＶＣ）によって策定中である。
【００３４】
［００４６］２０１２年４月２７日〜２０１２年５月７日にスイス  ジュネーブで開催された第９回会議におけるＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の映像コーディングに関する共同作業チーム（ＪＣＴ−ＶＣ）のＢｒｏｓｓ、等による文書ＨＣＴＶＣ−Ｉ１００３、“高効率映像コーディング（ＨＥＶＣ）テキスト仕様ドラフト７”において出現中のＨＥＶＣ規格の“ワーキングドラフト７”又は“ＷＤ７”が記述されており、それは、
http://phenix.it-sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v6.zipからダウンロード可能である。さらに、２０１２年７月１１日〜２０日にスウェーデン  ストックホルムで開催された第１０回会議におけるＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の映像コーディングに関する共同作業チーム（ＪＣＴ−ＶＣ）のＢｒｏｓｓ、等による文書ＪＣＴＶＣ−Ｉ１００３_ｄ７、“高効率映像コーディング（ＨＥＶＣ）テキスト仕様ドラフト８”において“ワーキングドラフト８”又は“ＷＤ８”が記述されており、それは、http://phenix.int-evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-I1003-v8.zipからダウンロード可能である。
【００３５】
［００４７］２０１３年１月１４日〜２３日にスイス  ジュネーブで開催された第１２回会議におけるＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の映像コーディングに関する共同作業チーム（ＪＣＴ−ＶＣ）のＢｒｏｓｓ、等による文書ＪＣＴＶＣ−Ｌ１００３ｖ３４、“高効率映像コーディング（ＨＥＶＣ）テキスト仕様ドラフト１０”におけるＨＥＶＣ規格のドラフトをhttp://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zipからダウンロード可能である。２０１３年７月２５日〜８月２日にオーストリア  ウィーンで開催された第１４回会議におけるＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の映像コーディングに関する共同作業チーム（ＪＣＴ−ＶＣ）のＦｌｙｎｎ、等による文書ＪＣＴＶＣ−Ｎ１００５、“高効率映像コーディング（ＨＥＶＣ）範囲拡大テキスト仕様：ドラフト４”においてＨＥＶＣ規格の範囲拡大が記述されており、それは、http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1005-v3.zipからダウンロード可能である。
【００３６】
［００４８］図１には示されていないが、幾つかの態様においては、映像符号器２０及び映像復号器３０は、各々、音声符号器及び復号器と一体化することができ、及び、共通のデータストリーム又は別々のデータストリーム内の音声及び映像の両方の符号化を取り扱うための該当するＭＵＸ−ＤＥＭＵＸユニット、又はその他のハードウェア及びソフトウェアを含むことができる。該当する場合は、幾つかの例においては、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はその他のプロトコル、例えば、ユーザデータグラムプロトコル（ＵＤＰ）、に準拠することができる。
【００３７】
［００４９］映像符号器２０及び映像復号器３０は、各々、様々な適切な符号器回路、例えば、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア又はそれらのあらゆる組み合わせのうちのいずれかとして実装することができる。技法がソフトウェア内において部分的に実装されるときには、デバイスは、ソフトウェアに関する命令を適切な、非一時的なコンピュータによって読み取り可能な媒体に格納することができ及び本開示の技法を実行するために１つ以上のプロセッサを用いてハードウェア内で命令を実行することができる。映像符号器２０及び映像復号器３０の各々は、１つ以上の符号器又は復号器に含めることができ、それらのいずれも、各々のデバイスにおいて結合された符号器／復号器（ＣＯＤＥＣ）の一部として一体化することができる。
【００３８】
［００５０］ＪＣＴ−ＶＣでは現在ＨＥＶＣ規格の策定作業中である。ＨＥＶＣＶ標準化努力は、ＨＥＶＣテストモデル（ＨＭ）と呼ばれる映像コーディングデバイスの進化中のモデルに基づく。ＨＭは、例えば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣ、による既存のデバイスに対する映像コーディングデバイスの幾つかの追加能力を想定している。例えば、Ｈ．２６４は９つのイントラ予測符号化モードを提供する一方で、ＨＭは、３４ものイントラ予測符号化モードを提供することができる。
【００３９】
［００５１］概して、ＨＭのワーキングモデルでは、映像フレーム又はピクチャは、１つ以上のスライスに分割することができ、それらは、ツリーブロック又は最大コーディングユニット（ＬＣＵ）のシーケンスにさらに分割することができ、それらは、コーディングユニット（ＣＵ）にさらに分割することができると記述している。ＣＵは、概して、様々なコーディングツールが映像圧縮のために適用される基本ユニットとして働く画像領域を意味する。ＣＵは、通常は、Ｙで表されるルミナンスコンポーネント、Ｕ及びＶで表される２つのクロマコンポーネントを有する。映像サンプリングフォーマットに依存して、サンプル数の点でのＵコンポーネント及びＶコンポーネントのサイズは、Ｙコンポーネントのサイズと同じであること又は異なることができる。ＣＵは、典型的には正方形であり、例えば、ＩＴＵ−Ｔ  Ｈ．２６４、等のその他の映像コーディング規格下におけるいわゆるマクロブロックに類似するとみなすことができる。本出願では、現在策定中のＨＥＶＣＶ規格の現在提案されている態様の一部によるコーディングが例示目的で説明される。しかしながら、本開示において説明される技法は、その他の映像コーディングプロセス、例えば、Ｈ．２６４又はその他の規格により定義されるそれら又は独占権を有するコーディングプロセスにとって有用であることができる。
【００４０】
［００５２］ＨＭにより、ＣＵは、コーディングノードと、そのコーディングノードに関連する１つ以上の予測ユニット（ＰＵ）及び／又は１つ以上の変換ユニット（ＴＵ）と、を含む。ビットストリーム内の構文データは、ツリーブロック又はピクセル数の点で最大のＣＵであるＬＣＵを定義することができる。概して、ＣＵは、Ｈ．２６４のマクロブロックと同様の目的を有するが、ＣＵは、サイズの区別を有さない。従って、ＣＵは、サブＣＵに分割することができる。概して、本開示におけるＣＵへの言及は、ピクチャの最大コーディングユニット又はＬＣＵのサブＣＵを意味することができる。ＬＣＵは、サブＣＵに分割することができ、各サブＣＵは、サブＣＵにさらに分割することができる。ビットストリームに関する構文データは、ＬＣＵを分割することができる最大回数を定義することができ、ＣＵ深度と呼ばれる。従って、ビットストリームは、最小コーディングユニット（ＳＣＵ）も定義することができる。本開示は、ＣＵ、ＰＵ、又はＴＵのうちのいずれかを意味するために用語“ブロック”又は“一部分”を使用する。概して、“一部分”は、映像フレームのいずれかのサブセットを意味することができる。
【００４１】
［００５３］ＬＣＵは、四分木データ構造と関連させることができる。概して、四分木データ構造は、１つのＣＵ当たり１つのノードを含み、根ノードは、ＬＣＵに対応する。ＣＵが４つのサブＣＵに分割される場合は、ＣＵに対応するノードは、４つの葉ノード又は子ノードを含み、それらの各々は、サブＣＵのうちの１つに対応する。四分木データ構造の各ノードは、対応するＣＵに関する構文データを提供することができる。例えば、四分木内のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示すスプリットフラグを含むことができる。ＣＵに関する構文要素は、繰り返し定義することができ、及び、ＣＵがサブＣＵに分割されるかどうかに依存することができる。ＣＵがそれ以上分割されない場合は、葉ＣＵと呼ぶことができる。
【００４２】
［００５４］さらに、葉ＣＵのＴＵは、各々の四分木データ構造、例えば、残差四分木（ＲＱＴ）、と関連させることができる。すなわち、葉ＣＵは、葉ＣＵがどのようにしてＴＵに分割されるかを示す四分木を含むことができる。本開示は、ＬＣＵがＣＵ四分木としてどのように分割されるかを示す四分木及び葉ＣＵがＴＵ四分木としてどのようにしてＴＵに分割されるかを示す四分木に言及する。ＴＵ四分木の根ノードは、概して、葉ＣＵに対応し、ＣＵ四分木の根ノードは、概して、ＬＣＵに対応する。分割されないＴＵ四分木のＴＵは、葉ＴＵと呼ばれる。ＴＵの形状は、正方形であっても非正方形であってもよい。
【００４３】
［００５５］葉ＣＵは、１つ以上のＰＵを含むことができる。概して、ＰＵは、対応するＣＵの全体又は一部分を表し、ＰＵに関する基準サンプルを取り出すためのデータを含むことができる。例えば、ＰＵがイントラモード符号化されるときには、ＰＵは、ＰＵに関するイントラ予測モードを記述するデータを含むことができる。他の例として、ＰＵがインターモード符号化されるときには、ＰＵは、ＰＵに関する動きベクトルを定義するデータを含むことができる。動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルに関する解像度（例えば、１／４ピクセル精度又は１／８ピクセル精度）、動きベクトルが指し示す基準フレーム、及び／又は動きベクトルに関する基準リスト（例えば、リスト０又はリスト１）を記述することができる。ＰＵを定義する葉ＣＵに関するデータは、例えば、ＣＵを１つ以上のＰＵに分割することも記述することができる。分割モードは、ＣＵが復号されるか、イントラ予測モードコーディングされるか、又はインター予測モードコーディングされるかどうかに依存して異なることができる。イントラコーディングの場合は、ＰＵは、葉ＴＵと同じに取り扱うことができる。ＰＵは、正方形又は非正方形として分割することができる。
【００４４】
［００５６］概して、ＴＵは、変換プロセス及び量子化プロセスのために使用される。予測後は、予測ブロックを用いてコーディングノードによって識別された映像ブロックに関して残差データ値が計算される。次に、コーディングノードは、オリジナルの映像ブロックではなく残差値を参照するように更新される。残差値は、エントロピーコーディングのためのシリアライズされた（ｓｅｌｉａｌｉｚｅｄ）変換係数を生成するために変換係数に変換し、量子化し、及び走査することができるピクセル差分値を備える。コーディングノードは、これらのシリアライズされた変換係数を参照するために再度更新することができる。
【００４５】
［００５７］映像シーケンスは、典型的には、一連の映像フレーム又はピクチャを含む。ピクチャのグループ（ＧＯＰ）は、概して、映像ピクチャのうちの一連の１つ以上を含む。ピクチャのグループ（ＧＯＰ）は、概して、映像ピクチャのうちの一連の１つ以上を備える。ＧＯＰは、ＧＯＰ内に含まれるピクチャ数を記述する構文データをＧＯＰのヘッダ、１つ以上のピクチャのヘッダ、又はその他の場所において含むことができる。ピクチャの各スライスは、各々のスライスに関する符号化モードを記述するスライス構文データを含むことができる。各スライスは、映像データを符号化するために使用される映像ブロックにさらに分割される。映像ブロックは、ＣＵ内のコーディングノードに対応することができる。映像ブロックは、固定された又は可変のサイズを有することができ、及び、指定されたコーディング規格によりサイズが異なることができる。
【００４６】
［００５８］一例として、ＨＭは、様々なＰＵサイズの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２Ｎ又はＮ×ＮのＰＵサイズでのイントラ予測、及び２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、又はＮ×Ｎの対称的ＰＵサイズでのインター予測をサポートする。ＨＭは、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、及びｎＲ×２ＮのＰＵサイズでのインター予測に関する非対称的な分割もサポートする。非対称的な分割では、ＣＵの１方の方向が分割されず、他方の方向が２５％及び７５％に分割される。２５％の分割に対応するＣＵの部分は、“ｎ”によって示され、“上（Ｕｐ）”、“下（Ｄｏｗｎ）”、“左（Ｌｅｆｔ）”、又は“右（Ｒｉｇｈｔ）”の表示文字によって後続される。従って、例えば、“２Ｎ×ｎＵ”は、水平に分割され、最上部が２Ｎ×０．５Ｎ  ＰＵ、最下部が２Ｎ×１．５Ｎ  ＰＵである２Ｎ×２Ｎ  ＣＵを意味する。
【００４７】
［００５９］本開示においては、“Ｎ×Ｎ”及び“Ｎ  ｂｙ  Ｎ”は、垂直及び水平の寸法に関する映像ブロックのピクセル寸法を意味するために互換可能な形で使用することができ、例えば、１６×１６ピクセル又は１６  ｂｙ  １６ピクセル。概して、１６×１６ブロックは、垂直方向に１６ピクセル（ｙ＝１６）及び水平方向に１６ピクセル（ｘ＝１６）を有することになる。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮのピクセル及び水平方向にＮのピクセルを有し、ここで、Ｎは、負でない整数値を表す。ブロック内のピクセルは、行及び列で配列することができる。さらに、ブロックは、水平方向と垂直方向で必ずしも同じピクセル数を有する必要がない。例えば、ブロックは、Ｎ×Ｍサンプルを備えることができ、ここで、Ｍは必ずしもＮと等しくない。
【００４８】
［００６０］ブロック（例えば、映像データのＰＵ）をコーディングするために、そのブロックに関する予測子が最初に導き出される。予測子は、予測ブロックとも呼ばれ、イントラ（Ｉ）予測（すなわち、空間的予測）又はインター（Ｐ又はＢ）予測（すなわち、時間的予測）を通じて導き出すことができる。従って、幾つかの予測ユニットは、同じフレーム（又はスライス）内の近隣の基準ブロック内の基準サンプルに関して空間的予測を用いてイントラコーディング（Ｉ）することができ、その他の予測ユニットは、その他の前にコーディングされたフレーム（又はスライス）内の基準サンプルのブロックに関して単一方向にインターコーディング（Ｐ）すること又は両方向にインターコーディング（Ｂ）することができる。各々の場合において、基準サンプルは、コーディングされるべきブロックに関する予測ブロックを形成するために使用することができる。
【００４９】
［００６１］予測ブロックが識別された時点で、オリジナルの映像データブロックとその予測ブロックとの間の差分が決定される。この差分は、予測残差データと呼ぶことができ、コーディングされるべきブロック内のピクセル値とコーディングされたブロックを表すために選択された予測ブロック内のピクセルサンプル値との間のピクセル差分を示す。より良い圧縮を達成するために、予測残差データは、例えば、離散コサイン変換（ＤＣＴ）、整数変換、Ｋａｒｈｕｎｅｎ−Ｌｏｅｖｅ（Ｋ−Ｌ）変換、又は他の変換を用いて変換することができる。
【００５０】
［００６２］変換ブロック、例えば、ＴＵ、内の残差データは、空間的ピクセル領域内に常在するピクセル差分値の二次元（２Ｄ）配列で配置することができる。変換は、残差ピクセル値を、変換領域、例えば、周波数領域、において変換係数の二次元配列に変換する。さらなる圧縮のために、変換係数は、エントロピーコーディング前に量子化することができる。量子化は、概して、変換係数を表すために使用されるデータ量を低減させるためにそれらの係数が量子化されるプロセスを意味する。量子化プロセスは、変換係数のうちの一部又は全部に関連するビット深度を小さくすることができる。例えば、量子化中にｎビット値が切り捨てられてｍビット値になり、ここで、ｎはｍよりも大きい。
【００５１】
［００６３］量子化された変換係数のブロックをエントロピーコーディングすることを目的として、通常は、ブロック内の量子化された変換係数の二次元（２Ｄ）配列が、特定の走査順序に従って、変換係数の順序が設定された一次元（１Ｄ）配列、すなわち、ベクトル、に再配置されるように走査プロセスが行われる。幾つかの例においては、エントロピー符号化することができるシリアライズされたベクトルを生成するために量子化された変換係数を走査するために予め定義された走査順序が使用される。その他の例においては、適応型走査を行うことができる。
【００５２】
［００６４］次に、変換係数のベクトルにエントロピーコーディングが適用される。変換ユニット内の量子化された変換係数の走査は、エントロピーコーダのために変換係数の２Ｄ配列をシリアライズする。有意な（すなわち、ゼロでない）係数の位置を示すために有意性マップ（ｓｉｇｎｉｆｉｃａｎｃｅ  ｍａｐ）を生成することができる。走査は、有意な（すなわち、ゼロでない）係数のレベルを走査するために、及び／又はそれらの有意な係数の符号をコーディングするために適用することができる。エントロピーコーダは、エントロピーコーディング、例えば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、確率間隔分割エントロピーコーディング（ＰＩＰＥ）、等、を走査された量子化された変換係数の一次元ベクトルに適用することができる。
【００５３】
［００６５］ＣＡＢＡＣを実行するために、コンテキストモデル内のコンテキストが送信されるべきシンボルに割り当てられる。コンテキストは、例えば、シンボルの近隣値がゼロでないかどうかに関連することができる。ＣＡＶＬＣを実行するために、送信されるべきシンボルに関して可変長コードが選択される。ＶＬＣ内のコードワードは、相対的により短いコードがより確率の高いシンボルに対応し、より長いコードがより確率の低いシンボルに対応するような形で構築することができる。このようにして、ＶＬＣの使用は、送信されるべき各シンボルに関して等しい長さのコードワードを使用してビット節約を達成することができる。確率の決定は、シンボルに割り当てられたコンテキストに基づくことができる。
【００５４】
［００６６］幾つかの事例においては、変換は、予測残差ブロックの残差データをコーディングする前にスキップすることができる。一例においては、残差ブロックは、残差ブロックの残差データをコーディングする前に残差ブロックに変換が適用されない変換スキップモードにおいて非可逆コーディングモードを用いてコーディングすることができる。この場合は、残差ブロックの残差データに対して量子化を依然として行うことができる。例えば、ＨＥＶＣは、ＴＵに関する変換スキップモードを示すために構成要素、すなわち、ｔｒａｎｓｆｏｒｍ_ｓｋｉｐ_ｆｌａｇ構成要素、を使用する。他の例においては、残差ブロックは、残差ブロック内の残差データの可逆コーディングを達成するために変換及び量子化の両方がスキップされる可逆コーディングモードを用いてコーディングすることができる。例えば、ＨＥＶＣは、ＣＵに関する可逆コーディングモードを示すために構成要素、すなわち、ｃｕ_ｔｒａｎｓｑｕａｎｔ_ｂｙｐａｓｓ_ｆｌａｇ構成要素、を使用する。
【００５５】
［００６７］ＪＣＴＶＣ−Ｊ００９２（２０１２年７月１１日〜２０日にスウェーデンのストックホルムで開催された第１０回会合におけるＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の映像コーディング共同作業チーム（ＪＣＴ−ＶＣ）によるＨｅ，Ｄ．ｅｔ  ａｌ．，“Ｒｏｔａｔｉｏｎ  ｏｆ  Ｒｅｓｉｄｕａｌ  Ｂｌｏｃｋ  ｆｏｒ  Ｔｒａｎｓｆｏｒｍ  Ｓｋｉｐｐｉｎｇ”（変換スキップのための残差ブロックの回転）では、イントラ予測モードにおいて残差ブロックに関して変換がスキップされるときには、残差データのエントロピーコーディングを適用する前に残差ブロックが１８０度だけ自動的に回転されることが提案されている。ＪＣＴＶＣ−Ｊ００５３（２０１２年７月１１日〜２０日にスウェーデンのストックホルムで開催された第１０回会合におけるＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の映像コーディング共同作業チーム（ＪＣＴ−ＶＣ）によるＡｎ，Ｊ．ｅｔ  ａｌ．，“Ｒｅｓｉｄｕｅ  Ｓｃａｎ  ｆｏｒ  Ｉｎｔｒａ  Ｔｒａｎｓｆｏｒｍ  Ｓｋｉｐ  Ｍｏｄｅ”（イントラ変換スキップモードに関する残差走査）でも同様の考えが提案されており、同じ目的を達成するためにエントロピーコーディングのためにイントラ予測残差ブロック内において残差データ（すなわち、ピクセル差分値）を走査する方向が自動的に変更される。同様に、ＪＣＴＶＣ−Ｋ０２９４（２０１２年１０月１０日〜１９日に中国の上海で開催された第１１回会合におけるＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の映像コーディング共同作業チーム（ＪＣＴ−ＶＣ）によるＷｅｅｒａｋｋｏｄｙ，Ｒ．ｅｔ  ａｌ．“Ｍｉｒｒｏｒｉｎｇ  ｏｆ  Ｃｏｅｆｆｉｃｉｅｎｔｓ  ｆｏｒ  Ｔｒａｎｓｆｏｒｍ  Ｓｋｉｐｐｉｎｇ”（変換スキップのための係数のミラーリング）では、使用されている走査に依存して、イントラ予測残差ブロックの残差データが残差ブロックの主対角線又は副対角線に沿って自動的にフリップされることが提案されている。
【００５６】
［００６８］さらに、可逆コーディングモードでは、残差ブロックに関して変換が常にスキップされる。ＪＣＴＶＣ−Ｊ００９３では、予測残差ブロックを１８０度だけ自動的に回転させることをイントラ予測モード及びインター予測モードの両方に関して可逆コーディングモードにまで拡張させることを提案している。これらの考え方のうちの幾つかは、ＪＣＴＶＣ−Ｊ０４６８（２０１２年７月にスウェーデンのストックホルムで開催された第１０回会合におけるＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の映像コーディング共同作業チーム（ＪＣＴ−ＶＣ）によるＴｓｕｋｕｂａ  ｅｔ  ａｌ．，“Ｃｏｍｂｉｎａｔｉｏｎ  ｏｆ  ＪＣＴＶＣ−Ｊ００６９  ａｎｄ  ＪＣＴＶＣ−Ｊ００９３（ＪＣＴＶＣ−Ｊ００６９及びＪＣＴＶＣ−Ｊ００９３の組み合わせ）、及び、ＪＣＴＶＣ−Ｍ０３３３（２０１３年４月に韓国の仁川で開催された第１３回会合におけるＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の映像コーディング共同作業チーム（ＪＣＴ−ＶＣ）によるＳｏｌｅ  ｅｔ  ａｌ．，“ＡｈＧ８：Ｒｅｓｉｄｕａｌ  ｒｏｔａｔｉｏｎ  ａｎｄ  ｓｉｇｎｉｆｉｃａｎｃｅ  ｍａｐ  ｃｏｎｔｅｘｔ  ｆｏｒ  ｓｃｒｅｅｎ  ｃｏｎｔｅｎｔ  ｃｏｄｉｎｇ（画面コンテンツコーディングに関する残差回転及び有意性マップ）においても論じられている。ＪＣＴＶＣ−Ｊ００５３及びＪＣＴＶＣ−Ｋ０２９４において提案される方法は、イントラ予測モード及びインター予測モードの両方に関して可逆コーディングモードに拡張することもできる。
【００５７】
［００６９］イントラコーディングでは、予測が行われるサンプルは、映像ブロックの左側又は上側に配置される。上側及び左側からの予測されるサンプルの距離が大きくなるのに従い、予測誤差が増大する傾向がある。この理由で、残差ブロックの右下隅の残差データサンプル値は、典型的には、左上隅のそれらと比較してより大きい絶対的大きさを有する。変換係数コーディング、すなわち、エントロピーコーディング、は、より高いエネルギーの残差データは左上隅に集中すると仮定して設計される。従って、イントラ予測残差ブロックに関しては、残差映像ブロックを１８０度だけ自動的に回転させることは、変換スキップモードにおける非可逆コーディングモードが使用されるときにエントロピーコーディング効率を向上させる上で有効である。
【００５８】
［００７０］しかしながら、可逆モードでコーディングされる残差ブロックは、イントラ予測残差ブロック又はインター予測残差ブロックを使用することができる。インター予測残差ブロックの場合は、残差データは、イントラ予測残差ブロックに関して上述されるプロパティを所有しない。インター予測残差ブロックに関しては１８０度の自動的回転を行うことは常に望ましいわけではない。
【００５９】
［００７１］本開示の技法は、残差ブロックに関して変換がスキップされることに基づいて、残差ブロックの残差データをコーディングする前に残差ブロックを回転させるべきかどうかを決定することを含む。幾つかの例においては、残差ブロックに関する回転値は、映像符号器２０と映像復号器３０との間のビットストリームで明示でシグナリングすることができる。その他の例においては、映像符号器２０及び映像復号器３０は、残差ブロックの２つ以上の縁部における境界のタイプに基づいて残差ブロックを回転させるべきかどうかを各々独立して決定することができる。
【００６０】
［００７２］ＪＣＴＶＣ−Ｇ２８１（２０１１年１１月２１日〜３０日にスイスのジュネーブで開催された第７回会合におけるＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の映像コーディング共同作業チーム（ＪＣＴ−ＶＣ）によるＡｎ，Ｊ．  ｅｔ  ａｌ．，“Ｎｏｎ−ＣＥ７：Ｂｏｕｎｄａｒｙ−Ｄｅｐｅｎｄｅｎｔ  Ｔｒａｎｓｆｏｒｍ  ｆｏｒ  Ｉｎｔｅｒ−Ｐｒｅｄｉｃｔｅｄ  Ｒｅｓｉｄｕｅ”（非ＣＥ７：インター予測された残差に関する境界に依存する変換）では、インター予測された残差データのエネルギーに関して次の観測が行われた。すなわち、ＴＵを備える残差ブロックに関して、残差ブロックの特定の縁部における近隣ブロック（上下左右）が残差ブロックと同じＰＵに属する、すなわち、近隣ブロックが同じＰＵに属するＴＵである、場合は、特定の縁部は、ＴＵ境界であり、ＴＵ境界における残差データは、典型的には、残差ブロックの平均的残差データよりも低いエネルギーを有する。他方、残差映像ブロックの特定の縁部における近隣ブロックが残差ブロックと異なるＰＵに属する、すなわち、近隣ブロックが異なるＰＵに属するＴＵである、場合は、特定の縁部は、ＰＵ境界であり、ＴＵ境界における残差データは、典型的には、残差ブロックの平均的残差データよりも高いエネルギーを有する。本開示においては、残差ブロックの縁部における残差データのエネルギーレベルは、残差データのサイズ、すなわち、残差映像ブロックの縁部における残差データサンプル値に関するピクセル差分の絶対的大きさ、に比例する。
【００６１】
［００７３］上記の観測に基づき、本開示の技法は、残差ブロックの２つ以上の縁部における境界のタイプに基づいて変換のスキップを用いてインター予測残差ブロックを回転させることを含む。それらの技法により、映像符号器又は映像復号器に含まれている位置再設定ユニットは、残差ブロックの２つ以上の縁部における境界のタイプを決定し、次に、それらの縁部における境界のタイプに基づいて、オリジナルの残差ブロックのＰＵ境界における残差データを回転された残差ブロックの左上隅に配置するために残差ブロックを回転させるべきかどうかを決定する。それらの技法は、映像コーダ、例えば、映像符号器２０又は映像復号器３０、によって実行することができる。
【００６２】
［００７４］幾つかの例においては、位置再設定ユニットは、残差ブロックを予め決定された回転値、例えば、１８０度、だけ回転させるか又は残差ブロックを回転させないかを決定する。その他の例においては、位置再設定ユニットは、残差ブロックを回転させるべき回転値を、２つ以上の回転値、例えば、０度、すなわち回転させない、１８０度、９０度又は２７０度、から決定する。符号化側では、回転は、平均よりも高いエネルギーを有する残差データを、エントロピーコーディング効率を向上させるために残差ブロックの残差データを符号化する前に回転された残差ブロックの左上隅に配置する。復号側では、回転は、予測ブロックを用いて残差ブロックから映像ブロックを再構築するために、符号化中に行われた回転を逆転させ、平均よりも高いエネルギーを有する残差データをオリジナルの映像ブロック内の原位置に戻す。
【００６３】
［００７５］図２は、残差ブロックの残差データを符号化する前に残差ブロックを回転させるべきかどうかを決定するために本開示において説明される技法を実装することができる映像符号器例２０を示したブロック図である。映像符号器２０は、映像スライス内の映像ブロックのイントラコーディング及びインターコーディングを行うことができる。イントラコーディングは、所定の映像フレーム又はピクチャ内の映像における空間的冗長性を低減させる又は除去するために空間的予測に依存する。インターコーディングは、映像シーケンスの隣接するフレーム又はピクチャ内の映像における時間的冗長性を低減させる又は除去するために時間的予測に依存する。イントラモード（Ｉモード（登録商標））は、幾つかの空間に基づく圧縮モードのうちのいずれかを意味することができる。インターモード、例えば、単一方向性予測（Ｐモード）又は両方向性予測（Ｂモード）は、幾つかの時間に基づく圧縮モードのうちのいずれかを意味することができる。
【００６４】
［００７６］図２の例において、映像符号器２０は、分割ユニット３５と、予測処理ユニット４１と、基準ピクチャメモリ６４と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、位置再設定ユニット６６と、エントロピー符号化ユニット５６と、を含む。予測処理ユニット４１は、動き推定ユニット４２と、動き補償ユニット４４と、イントラ予測処理ユニット４６と、を含む。映像ブロック再構築に関して、映像符号器２０は、逆量子化ユニット５８と、逆変換処理ユニット６０と、加算器６２と、も含む。再構築された映像からブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングするためにデブロッキングフィルタ（図２には示されていない）を含めることもできる。希望される場合は、デブロッキングフィルタは、典型的には、加算器６２の出力をフィルタリングする。デブロッキングフィルタに加えて追加のループフィルタ（ループ内又はループ後）を使用することもできる。
【００６５】
［００７７］図２において示されるように、映像符号器２０が映像データを受信し、分割ユニット３５がそのデータを映像ブロックに分割する。この分割は、映像ブロックへの分割に加えて、例えば、ＬＣＵ及びＣＵの四分木構造による、スライス、タイル、又はその他のより大きいユニットへの分割を含むこともできる。映像符号器２０は、概して、符号化されるべき映像スライス内の映像ブロックを符号化するコンポーネントを例示する。スライスは、複数の映像ブロックに（及び、可能なことに、タイルと呼ばれる映像ブロックの組に）分割することができる。予測処理ユニット４１は、誤り結果（例えば、コーディングレート及び歪みレベル）に基づいて現在の映像ブロックに関して、複数の可能なコーディングモードのうちの１つ、例えば、複数のイントラコーディングモードのうちの１つ又は複数のインターコーディングモードのうちの１つ、を選択することができる。予測処理ユニット４１は、結果的に得られたイントラ又はインターコーディングされたブロックを、残差ブロックデータを生成するために加算器５０に、及び、基準ピクチャとしての使用のために符号化されたブロックを再構築するために加算器６２に、提供することができる。
【００６６】
［００７８］予測処理ユニット４１内のイントラ予測処理ユニット４６は、空間的圧縮を提供するために、コーディングされるべき現在のブロックと同じフレーム又はスライス内の１つ以上の近隣ブロックに関して現在の映像ブロックのイントラ予測コーディングを行うことができる。予測処理ユニット４１内の動き推定ユニット４２及び動き補償ユニット４４は、時間的圧縮を提供するために、１つ以上の基準ピクチャ内の１つ以上の予測ブロックに関して現在の映像ブロックのインター予測コーディングを行う。
【００６７】
［００７９］動き推定ユニット４２は、映像シーケンスに関する予め決定されたパターンに従って映像スライスに関するインター予測モードを決定するように構成することができる。予め決定されたパターンは、シーケンス内の映像スライスをＰスライス又はＢスライスとして指定することができる。動き推定ユニット４２及び動き補償ユニット４４は、高度に一体化することができるが、概念上の目的で別々に例示されている。動き推定は、動き推定ユニット４２によって行われ、動きベクトルを生成するプロセスであり、映像ブロックに関する動きを推定する。動きベクトルは、例えば、基準ピクチャ内の予測ブロックに対する現在の映像フレーム又はピクチャ内の映像ブロックのＰＵの変位を示すことができる。
【００６８】
［００８０］予測ブロックは、ピクセル差分の点でコーディングされるべき映像ブロックのＰＵに密接にマッチングすることが判明しているブロックであり、差分絶対値和（ＳＡＤ）、差分二乗和（ＳＳＤ）、又はその他の差分メトリックによって決定することができる。幾つかの例においては、映像符号器２０は、基準ピクチャメモリ６４に格納された基準ピクチャの整数未満のピクセル位置に関する値を計算することができる。例えば、映像符号器２０は、基準ピクチャの１／４ピクセル位置、１／８ピクセル位置、又はその他の分数のピクセル位置の値を内挿することができる。従って、動き推定ユニット４２は、完全ピクセル位置及び分数ピクセル位置に関する動き探索を行い、分数のピクセル精度を有する動きベクトルを出力することができる。
【００６９】
［００８１］動き推定ユニット４２は、ＰＵの位置を基準ピクチャの予測ブロックの位置と比較することによってインターコーディングされたスライス内の映像ブロックのＰＵに関する動きベクトルを計算する。基準ピクチャは、第１の基準ピクチャリスト（リスト０）又は第２の基準ピクチャリスト（リスト１）から選択することができ、それらの各々は、基準ピクチャメモリ６４に格納された１つ以上の基準ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６及び動き補償ユニット４４に送信する。
【００７０】
［００８２］動き補償は、動き補償ユニット４４によって行われ、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチ又は生成することを含むことができ、サブピクセル精度に合わせた内挿を行うことができる。現在の映像ブロックのＰＵに関する動きベクトルを受信した時点で、動き補償ユニット４４は、基準ピクチャリストのうちの１つにおいて動きベクトルが指し示す予測ブロックの位置を突き止めることができる。映像符号器２０は、コーディング中の現在の映像ブロックのピクセル値から予測ブロックのピクセル値を減じることによって残差映像ブロックを形成し、ピクセル差分値を形成する。ピクセル差分値は、ブロックに関する残差データを形成し、及び、ルマ及びクロマ差分コンポーネントの両方を含むことができる。加算器５０は、この減算動作を行うコンポーネント又はコンポーネント（複数）を代表する。動き補償ユニット４４は、映像スライスの映像ブロックを復号する際に映像復号器３０によって使用するために映像ブロック及び映像スライスに関連する構文要素を生成することもできる。
【００７１】
［００８３］イントラ予測処理ユニット４６は、上述されるように、動き推定ユニット４２及び動き補償ユニット４４によって行われるインター予測の代替として、現在のブロックをイントラ予測することができる。特に、イントラ予測処理ユニット４６は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定することができる。幾つかの例においては、イントラ予測処理ユニット４６は、例えば、別々の符号化パス（ｅｎｃｏｄｉｎｇ  ｐａｓｓ）中に、様々なイントラ予測モードを用いて現在のブロックを符号化することができ、及び、イントラ予測処理ユニット４６は、試験されたモードから使用すべき適切なイントラ予測モードを選択することができる。例えば、イントラ予測処理ユニット４６は、様々な試験されたイントラ予測モードに関するレート−歪み解析を用いてレート−歪み値を計算すること、及び、試験されたモードの中で最良のレート−歪み特性を有するイントラ予測モードを選択することができる。レート−歪み解析は、概して、符号化されたブロックと符号化されたブロックを生成するために符号化されたオリジナルの符号化されていないブロックとの間の歪み（又は誤り）の量、及び符号化されたブロックを生成するために使用されたビットレート（すなわち、ビット数）を決定する。イントラ予測処理ユニット４６は、いずれのイントラ予測モードがブロックに関する最良のレート−歪み値を呈するかを決定するために様々な符号化されたブロックに関する歪み及びレートから比率を計算することができる。
【００７２】
［００８４］いずれの場合も、ブロックに関してイントラ予測モードを選択後は、イントラ予測処理ユニット４６は、ブロックに関する選択されたイントラ予測モードを示す情報をエントロピーコーディングユニット５６に提供することができる。エントロピーコーディングユニット５６は、本開示の技法により選択されたイントラ予測モードを示す情報を符号化することができる。映像符号器２０は、送信されるビットストリーム内に構成データを含めることができ、それらは、複数のイントラ予測モードインデックステーブル及び複数の修正されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）、様々なブロックに関するコンテキストを符号化することに関する定義、及び、それらのコンテキストの各々のために使用するための最も可能性の高いイントラ予測モード、イントラ予測モードインデックステーブル、及び修正されたイントラ予測モードインデックステーブルの表示、を含むことができる。
【００７３】
［００８５］予測処理ユニット４１がインター予測又はイントラ予測を介して現在の映像ブロックに関する予測ブロックを生成した後は、映像符号器２０は、現在の映像ブロックから予測ブロックを減じることによって残差映像ブロックを形成する。残差映像ブロック内の残差データは、コーディングされるべき現在の映像ブロックと予測ブロックとの間のピクセル差分値を備える。残差映像ブロックは、映像ブロックに関する残差データの少なくとも一部分を含む１つ以上のＴＵを備えることができる。映像ブロックが非可逆コーディングモードを用いてコーディングされるときには、残差ブロックの各々は、変換処理ユニット５２に適用される。変換処理ユニット５２は、変換、例えば、離散コサイン変換（ＤＣＴ）又は概念的に類似する変換を用いて残差データを残差変換係数に変換する。変換処理ユニット５２は、残差映像データをピクセル領域から変換領域、例えば、周波数領域、に変換することができる。
【００７４】
［００８６］変換処理ユニット５２は、結果的に得られた変換係数を量子化ユニット５４に送信することができる。量子化ユニット５４は、ビットレートをさらに低減させるために変換係数を量子化する。量子化プロセスは、それらの係数のうちの一部又は全部に関連するビット深度を小さくすることができる。量子化度は、量子化パラメータを調整することによって修正することができる。幾つかの例においては、量子化ユニット５４は、量子化された変換係数を含む行列の走査を行うことができる。代替として、エントロピー符号化ユニット５６がその走査を行うことができる。
【００７５】
［００８７］変換スキップモードにおいて非可逆コーディングモードを用いて映像ブロックがコーディングされるときには、残差ブロックには変換は適用されない。さらに、可逆コーディングモードを用いて映像ブロックがコーディングされるときには、残差ブロックには変換及び量子化のいずれも適用されない。本開示の技法により、残差ブロックに関して変換がスキップされるときには、残差ブロックは、位置再設定ユニット６６に加えられる。この場合は、残差データはピクセル領域にとどまり、空間的ピクセル位置におけるピクセル差分値を備える。これは、変換処理ユニット５２を用いて周波数成分に対応する位置における変換係数として残差データを変換領域に変換することと反対である。
【００７６】
［００８８］位置再設定ユニット６６は、平均よりも高いエネルギー、すなわち、平均よりも大きいピクセル差分値、を有する残差データを残差ブロックの左上隅に配置するために残差ブロックを回転させるべきかどうかを決定する。高いエネルギーの残差データをシフトさせることは、典型的には、変換処理ユニット５２によって変換処理が行われた結果として生じる。しかしながら、エントロピー符号化ユニット５６は、高いエネルギーの残差データは変換された残差ブロックの左上隅に集中されるという仮定に基づいて設計されているため、変換がスキップされるときには、残差ブロックを回転させるのが望ましい。
【００７７】
［００８９］イントラ予測残差ブロックの場合は、位置再設定ユニット６６は、平均よりも高いエネルギーを有する残差データを残差ブロックの左上隅に配置するために残差ブロックを１８０度だけ自動的に回転させることができる。イントラ予測残差ブロックに関して変換がスキップされるときには、高いエネルギーの残差データは、典型的には、１８０度の回転がエントロピーコーディング効率を向上させるように右下隅に集中する。インター予測残差ブロックの場合は、高いエネルギーの残差データは、残差データブロック内のあらゆる位置に集中させることができる。その場合は、位置再設定ユニット６６は、最初に、残差ブロックを回転させるべきかどうかを決定し、次に、その決定に基づいて、残差ブロックを決定された回転値だけ回転させるか又は残差ブロックを回転させないかを決定することができる。幾つかの例においては、位置再設定ユニット６６は、決定された回転値を反時計回りの方向で残差ブロックに適用することができる。以下において、インター予測残差ブロックを回転させるべきかどうかを決定するための動作例が、図５乃至８に関してより詳細に説明される。
【００７８】
［００９０］変換スキップモードにおける非可逆コーディングモードに関しては、位置再設定ユニット６６は、エントロピー符号化ユニット５６によるエントロピー符号化前にさらなる圧縮のために回転された残差ブロックを量子化ユニット５４に送信する。幾つかの事例においては、残差ブロックは、位置再設定ユニット６６で残差ブロックを回転させるべきかどうかを決定する前に量子化ユニット５４に送信することができる。可逆コーディングモードの場合は、位置再設定ユニット６６は、さらなる圧縮を行わずにエントロピー符号化のために回転された残差ブロックをエントロピー符号化ユニット５６に直接送信する。
【００７９】
［００９１］エントロピー符号化ユニット５６は、残差係数、例えば、量子化された変換係数、量子化された残差係数又は圧縮されない残差係数、をエントロピー符号化する。例えば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型算術コーディング（ＳＢＡＣ）、確率間隔分割エントロピー（ＰＩＰＥ）コーディング、又はその他のエントロピー符号化法又は技法を行うことができる。エントロピー符号化ユニット５６によるエントロピー符号化に引き続き、符号化されたビットストリームは、映像復号器、例えば、映像復号器３０、に送信するか、又は、映像復号器によるのちの送信又は取り出しのためにアーカイブに保存することができる。エントロピー符号化ユニット５６は、コーディング中の現在の映像スライスに関して動きベクトル及びその他の構成要素をエントロピー符号化することもできる。
【００８０】
［００９２］逆量子化ユニット５８及び逆変換処理ユニット６０は、基準ピクチャの基準ブロックとしてのちに使用するためにピクセル領域内の残差ブロックを再構築するために逆量子化及び逆変換を量子化された変換係数にそれぞれ適用する。変換スキップモードにおける非可逆コーディングモードに関して、逆量子化ユニット５８は、残差ブロックを再構築するために、量子化された残差係数に対して逆量子化を適用し、位置再設定ユニット６６は、高いエネルギーの残差データを原位置に戻すための逆回転を行う。幾つかの事例においては、量子化された残差係数は、逆量子化ユニット５８による逆量子化を行う前に逆回転を行うために位置再設定ユニット６６に送信することができる。可逆コーディングモードの場合は、位置再設定ユニット６６は、残差ブロックを再構築するために高いエネルギーの残差データを原位置に戻すために残差係数の逆回転を行う。
【００８１】
［００９３］次に、動き補償ユニット４４は、基準ピクチャリストのうちの１つ内の基準ピクチャのうちの１つの予測ブロックに再構築された残差ブロックを加えることによって基準ブロックを計算することができる。動き補償ユニット４４は、動き推定の際に使用するために整数未満のピクセル値を計算するために１つ以上の内挿フィルタを再構築された残差ブロックに適用することもできる。加算器６２は、基準ピクチャメモリ６４に格納するために基準ブロックを生成するために動き補償ユニット４４によって生成された動き補償された予測ブロックに再構築された残差ブロックを加える。基準ブロックは、後続する映像フレーム又はピクチャ内のブロックをインター予測するための基準ブロックとして動き推定ユニット４２及び動き補償ユニット４４によって使用することができる。
【００８２】
［００９４］映像符号器２０は、残差ブロックに関する変換をスキップすることと残差ブロックを回転させるべきかどうかを決定することとを含む本開示の技法を実行するように構成することができる。映像符号器２０の位置再設定ユニット６６は、残差ブロックを回転させるべきかどうかを決定することができる。幾つかの例においては、位置再設定ユニット６６は、残差ブロックをエントロピー符号化するために必要なビット数に基づいて残差ブロックを回転させるべきかどうかを決定することができる。例えば、位置再設定ユニット６６は、エントロピー符号化のための最小ビット数が結果的に得られることになる回転値に基づいて残差ブロックを回転させるべきかどうかを決定することができる。その他の例においては、位置再設定ユニット６６は、残差ブロックの２つ以上の縁部の境界のタイプに基づいて残差ブロックを回転させるべきかどうかを決定することができる。
【００８３】
［００９５］残差ブロックが回転されるときには、映像符号器２０の位置再設定ユニット６６は、予め決定された回転値だけ残差ブロックを回転させることを決定することができ、又は、残差ブロックを回転させるべき回転値を決定することができる。いずれの場合も、映像符号器２０は、エントロピー符号化ユニット５４によって残差ブロックの残差データを符号化する前に決定された回転値だけ残差ブロックを回転させる。以下において、残差ブロックの縁部における境界のタイプに基づいてインター予測残差ブロックを回転させるべきかどうかを決定するための動作例が図５乃至８に関してより詳細に説明される。
【００８４】
［００９６］幾つかの例においては、映像符号器２０は、残差ブロックに関して変換スキップが使用されるかどうか、すなわち、変換スキップモードで可逆コーディングモードを用いて又は非可逆コーディングモードを用いて残差ブロックが符号化されるかどうかをシグナリングすることしかできない。この場合は、映像復号器は、残差ブロックから映像ブロックを再構築するために、符号化中に行われた回転を逆転させるように残差ブロックを回転させるべきかどうかを決定するために残差ブロックの縁部における境界のタイプを決定する動作と同じ動作を使用することができる。その他の例においては、映像符号器２０は、符号化中に残差ブロックに適用された回転の回転値を映像復号器にシグナリングすることができる。この場合は、映像復号器は、残差ブロックから映像ブロックを再構築するために符号化中に行われた回転を逆転させるためにシグナリングされた回転値に基づいて残差ブロックを回転させることができる。
【００８５】
［００９７］幾つかの追加の例においては、映像符号器２０は、残差ブロックのサイズがスレショルドのブロックサイズ以下であるときに残差ブロックに関する変換をスキップすることと残差ブロックを回転させることとを含む本開示の技法を実行するように構成される。スレショルドのブロックサイズは、非可逆コーディングモードにおいて変換のスキップ及び回転が許容されるブロックサイズに等しいことができる。このようにして、回転を行うことができるブロックサイズは、変換スキップモードにおいて可逆コーディングモード又は非可逆コーディングモードのいずれかを用いてコーディングされた残差ブロックに関して整合される、すなわち、同じであることができる。この技法は、インター予測残差ブロック及びイントラ予測残差ブロックの両方に適用することができる。
【００８６】
［００９８］さらに、映像符号器２０は、残差ブロックのサイズがスレショルドのブロックサイズ以下であるときに残差ブロックに関する変換をスキップすることと残差ブロックの対角線に沿って残差データサンプル値をフリップさせることとを含む本開示の技法を実行するように構成することができる。残差ブロックの残差データサンプル値をフリップさせることは、対角線の１方の側の残差データサンプル値を、残差ブロックの対角線の他方の側の対応するミラー画像位置の残差データサンプル値とスワップすることを含む。この技法は、インター予測残差ブロック及びイントラ予測残差ブロックの両方に適用することもできる。
【００８７】
［００９９］幾つかの例においては、可逆コーディングモードの場合は、回転又はフリップは、スレショルドのブロックサイズ以下のサイズを有するイントラ予測残差ブロックのみに適用することができる。その他の例においては、回転又はフリップは、スレショルドのブロックサイズ以下のサイズを有するすべての残差ブロック、すなわち、イントラ予測及びインター予測残差ブロック、に適用することができる。追加の例においては、変換スキップモードにおける非可逆コーディングモードの場合は、回転又はフリップは、イントラ予測残差ブロックのみに適用することができ、又は、イントラ予測残差ブロック及びインター予測残差ブロックの両方に適用することができる。
【００８８】
［０１００］図３は、残差ブロックの残差データから映像ブロックを再構築する前に残差ブロックを回転させるべきかどうかを決定するために本開示において説明される技法を実装することができる映像復号器例３０を示したブロック図である。図３の例においては、映像復号器３０は、エントロピー復号ユニット８０と、予測処理ユニット８１と、逆量子化ユニット８６と、逆変換ユニット８８と、位置再設定ユニット９４と、加算器９０と、基準ピクチャメモリ９２と、を含む。予測処理ユニット８１は、動き補償ユニット８２と、イントラ予測処理ユニット８４と、を含む。映像復号器３０は、幾つかの例においては、図２からの映像符号器２０に関して説明される符号化パスと概して相互的である復号パスを行うことができる。
【００８９】
［０１０１］復号プロセス中に、映像復号器３０は、符号化された映像スライスの映像ブロック及び関連する構成要素を表す符号化された映像ビットストリームを映像符号器、例えば、映像符号器２０、から受信する。映像復号器３０のエントロピー復号ユニット８０は、残差係数、動きベクトル、及びその他の構成要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット８０は、動きベクトル及びその他の構成要素を予測処理ユニット８１に転送する。映像復号器３０は、映像スライスレベル及び／又は映像ブロックレベルで構成要素を受信することができる。
【００９０】
［０１０２］映像スライスがイントラコーディングされた（Ｉ）スライスとしてコーディングされるときには、予測処理ユニット８１のイントラ予測処理ユニット８４は、シグナリングされたイントラ予測モード及び現在のフレーム又はピクチャの前に復号されたブロックからのデータに基づいて現在の映像スライスの映像ブロックに関する予測データを生成することができる。映像フレームがインターコーディングされた（すなわち、Ｂ又はＰ）スライスとしてコーディングされるときには、予測処理ユニット８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信された動きベクトル及びその他の構成要素に基づいて現在の映像スライスの映像ブロックに関する予測ブロックを生成する。予測ブロックは、基準ピクチャリストのうちの１つ内の基準ピクチャのうちの１つから生成することができる。映像復号器３０は、基準ピクチャメモリ９２に格納されている基準ピクチャに基づいてデフォルトの構築技法を用いて基準フレームリスト、リスト０及びリスト１、を構築することができる。
【００９１】
［０１０３］動き補償ユニット８２は、動きベクトル及びその他の構成要素を構文解析することによって現在の映像スライスの映像ブロックに関する予測情報を決定し、及び、復号中の現在の映像ブロックに関する予測ブロックを生成するために予測情報を使用する。例えば、動き補償ユニット８２は、映像スライスの映像ブロックをコーディングするために使用された予測モード（例えば、イントラ予測又はインター予測）、インター予測スライスタイプ（例えば、Ｂスライス又はＰスライス）、スライスに関する基準ピクチャリストのうちの１つ以上に関する構築情報、スライスの各々のインター符号化された映像ブロックに関する動きベクトル、スライスの各々のインターコーディングされた映像ブロックに関するインター予測状態、及び、現在の映像スライス内の映像ブロックを復号するためのその他の情報を決定するために受信された構成要素のうちの一部を使用する。
【００９２】
［０１０４］動き補償ユニット８２は、内挿フィルタに基づいて内挿を行うこともできる。動き補償ユニット８２は、基準ブロックの整数未満のピクセルに関する内挿された値を計算するために映像ブロックの符号化中に映像符号器２０によって使用された内挿フィルタを使用することができる。この場合は、動き補償ユニット８２は、受信された構成要素から映像符号器２０によって使用された内挿フィルタを決定すること及び予測ブロックを生成するために内挿フィルタを使用することができる。
【００９３】
［０１０５］上述されるように、エントロピー復号ユニット８０は、映像ブロックの残差係数、例えば、量子化された変換係数、量子化された残差係数又は圧縮されない残差係数、を生成するためにビットストリームをエントロピー復号する。映像ブロックが非可逆コーディングモードを用いてコーディングされるときには、逆量子化ユニット８６は、ビットストリームで提供された残差ブロックの量子化された変換係数を逆量子化、すなわち、量子化解除、する。逆量子化プロセスは、量子化度、そして同様に、適用されるべき逆量子化度、を決定するために映像スライス内の各映像ブロックに関して計算された量子化パラメータを使用することを含むことができる。逆変換処理ユニット８８は、ピクセル領域において残差ブロックを再構築するために逆変換、例えば、逆ＤＣＴ、逆整数変換、又は概念的に類似する逆変換プロセスを変換係数に適用する。
【００９４】
［０１０６］映像ブロックが変換スキップモードにおいて非可逆コーディングモードを用いてコーディングされるときには、残差ブロックには逆変換は適用されない。さらに、映像ブロックが可逆コーディングモードを用いてコーディングされるときには、残差ブロックには逆変換及び逆量子化のいずれも適用されない。本開示の技法により、残差ブロックの残差係数に関して逆変換がスキップされるときには、位置再設定ユニット９４に残差ブロックが加えられる。この場合は、残差データはピクセル領域内にとどまり、空間的ピクセル位置におけるピクセル差分値を備える。これは、変換処理ユニット８８を用いて周波数成分に対応する位置における変換係数として変換領域から残差データを変換することと反対である。
【００９５】
［０１０７］位置再設定ユニット９４は、平均よりも高いエネルギー、すなわち、平均よりも大きいピクセル差分値、を有する残差データを残差ブロックの左上隅に配置した符号化中に行われた回転を逆転させるために残差ブロックを回転させることができる。高いエネルギーの残差データをシフトさせて原位置に戻すことは、典型的には、逆変換処理ユニット８８によって逆変換処理が行われた結果として生じる。しかしながら、逆変換がスキップされるときには、予測ブロックを用いて映像ブロックを適切に再構築するために残差ブロックを回転させることが必要になる。
【００９６】
［０１０８］変換スキップモードにおける非可逆コーディングモードに関して、逆量子化ユニット８６は、伸張のために、ビットストリームにおいて提供された残差ブロックの量子化された残差係数に逆量子化を適用する。次に、位置再設定ユニット９４は、残差ブロックを再構築するために符号化中に行われた回転を逆転させて原位置に戻すための回転を行う。幾つかの事例においては、量子化された残差係数は、逆量子化ユニット８６によって逆量子化を行う前に逆回転を行うために位置再設定ユニット９４に送信することができる。可逆コーディングモードの場合は、位置再設定ユニット９４は、伸張なしでビットストリームにおいて提供された残差ブロックの量子化された残差係数を直接受信する。次に、位置再設定ユニット９４は、残差ブロックを再構築するために、符号化中に行われた回転を逆転させて高いエネルギーの残差データを原位置に戻すための回転を行う。このようにして、ピクセル差分値は、対応するピクセルのオリジナルの空間的位置に回転されて戻される。
【００９７】
［０１０９］変換スキップを用いたイントラ予測残差ブロックの場合は、高いエネルギーの残差データは、典型的には、右下隅に集中し、従って、符号化中の１８０度の回転は、エントロピーコーディング効率を向上させることになる。この場合は、位置再設定ユニット９４は、平均よりも高いエネルギーを有する残差データをオリジナルの残差ブロックの右下隅の位置に戻すために１８０度だけイントラ予測残差ブロックを自動的に回転させることができる。
【００９８】
［０１１０］インター予測残差ブロックの場合は、高いエネルギーの残差データは、残差ブロック内のあらゆる位置に集中させることができる。この場合は、位置再設定ユニット９４は、最初に、残差ブロックを回転させるべきかどうかを決定し、次に、その決定に基づいて、残差ブロックを決定された回転値だけ回転させるか又は残差ブロックを回転させない。符号化中に残差ブロックに関して行われた回転を逆転させるために、位置再設定ユニット９４は、残差ブロックを回転させるべきかどうかを決定し、しかしながら、決定された回転値を、図２からの映像符号器２０の位置再設定ユニット６６と反対の方向に、例えば、反時計回り方向と反対の時計回り方向に、適用する。
【００９９】
［０１１１］動き補償ユニット８２が動きベクトル及びその他の構成要素に基づいて現在の映像ブロックに関する予測ブロックを生成した後は、映像復号器３０は、再構築された残差ブロックを動き補償ユニット８２によって生成された対応する予測ブロックと加算することによって復号された映像ブロックを形成する。より具体的には、残差ブロックのピクセル差分値は、対応する予測ブロックの対応する予測ピクセル値と加算される。この加算プロセスは、映像ブロック全体を再構築するためにルマブロック及びクロマブロックの両方に関して行われる。加算器９０は、この加算動作を行うコンポーネント又はコンポーネント（複数）を代表する。希望される場合は、ブロッキネスアーティファクトを除去するために復号されたブロックをフィルタするためにデブロッキングフィルタを適用することもできる。ピクセル遷移を平滑化するために、又はその他の形で映像品質を向上させるためにその他のループフィルタ（コーディングループ内又はコーディングループ後のいずれか）を使用することもできる。次に、所定のフレーム又はピクチャ内の復号された映像ブロックが基準ピクチャメモリ９２に格納され、それは、後続する動き補償のために使用される基準ピクチャを格納する。基準ピクチャメモリ９２は、表示装置、例えば、図１の表示装置３２、でののちの提示のために復号された映像も格納する。
【０１００】
［０１１２］映像復号器３０は、残差ブロックに関する逆変換をスキップすることと残差ブロックを回転させるべきかどうかを決定することとを含む本開示の技法を実行するように構成することができる。映像復号器３０の位置再設定ユニット９４は、残差ブロックを回転させるべきかどうかを決定することができる。幾つかの例においては、位置再設定ユニット９４は、映像符号器２０において使用された残差ブロックに関する回転値を示すビットストリーム内の構成要素に基づいて残差ブロックを回転させるべきかどうかを決定する。その他の例においては、位置再設定ユニット９４は、残差ブロックの２つ以上の縁部における境界のタイプに基づいて残差ブロックを回転させるべきかどうかを決定することができる。
【０１０１】
［０１１３］残差ブロックが回転されるときには、映像復号器３０の位置再設定ユニット９４は、残差ブロックを予め決定された回転値だけ回転させることを決定することができ、又は、残差ブロックを回転させるべき回転値を決定することができる。いずれの場合も、映像復号器３０は、予測ブロックを用いて残差ブロックから映像ブロックを再構築する前に残差ブロックを決定された回転値だけ回転させる。以下では、残差ブロックの縁部における境界のタイプに基づいてインター予測残差ブロックを回転させるべきかどうかを決定するための動作例が図５乃至８に関してより詳細に説明される。
【０１０２】
［０１１４］幾つかの例においては、映像復号器３０は、残差ブロックに関して変換スキップが使用されるかどうか、すなわち、変換スキップモードにおいて可逆コーディングモードを用いて又は非可逆コーディングモードを用いて残差ブロックが符号化されるかどうかを示すだけの構文要素を受信することができる。この場合は、位置再設定ユニット９４は、残差ブロックから映像ブロックを再構築するために、符号化中に行われた回転を逆転させるために残差ブロックを回転させるべきかどうかを決定するために残差ブロックの縁部における境界のタイプを決定するために映像符号器２０と同じ動作を使用する。その他の例においては、映像復号器３０は、符号化中に残差ブロックに適用された回転の回転値、例えば、０度、９０度、１８０度又は２７０度、を示す構文要素を受信することができる。この場合は、位置再設定ユニット９４は、残差ブロックから映像ブロックを再構築するために、例えば、反対方向に０度、９０度、１８０度又は２７０度だけ回転させることによって、符号化中に行われた回転を逆転させるためにシグナリングされた回転値に基づいて残差ブロックを回転させることができる。以下において、インター予測残差ブロックを回転させるべきかどうかを決定するための動作例が、図５乃至８に関してより詳細に説明される。
【０１０３】
［０１１５］幾つかの追加例においては、映像復号器３０は、残差ブロックのサイズがスレショルドのブロックサイズ以下であるときに残差ブロックに関する変換をスキップすることと残差ブロックを回転させることとを含む本開示の技法を実行するように構成される。スレショルドのブロックサイズは、非可逆コーディングモードにおいて変換スキップ及び回転が許容されるブロックサイズに等しいことができる。このようにして、回転を行うことができるブロックサイズは、変換スキップモードにおいて可逆コーディングモード又は非可逆コーディングモードのいずれかを用いてコーディングされた残差ブロックに関して整合される、すなわち、同じであることができる。この技法は、インター予測残差ブロック及びイントラ予測残差ブロックの両方に適用することができる。
【０１０４】
［０１１６］さらに、映像復号器３０は、残差ブロックのサイズがスレショルドのブロックサイズ以下であるときに残差ブロックに関する変換をスキップすることと残差ブロックの対角線に沿って残差データサンプル値をフリップさせることとを含む本開示の技法を実行するように構成することができる。残差ブロックの残差データサンプル値をフリップさせることは、対角線の１方の側の残差データサンプル値を、残差ブロックの対角線の他方の側の対応するミラー画像位置の残差データサンプル値とスワップすることを含む。この技法は、インター予測ブロック及びイントラ予測残差ブロックの両方に適用することもできる。
【０１０５】
［０１１７］幾つかの例においては、可逆コーディングモードの場合は、回転又はフリップは、スレショルドのブロックサイズ以下のサイズを有するイントラ予測残差ブロックのみに適用することができる。その他の例においては、回転又はフリップは、スレショルドのブロックサイズ以下のサイズを有するすべての残差ブロック、すなわち、イントラ予測及びインター予測残差ブロック、に適用することができる。追加の例においては、変換スキップモードにおける非可逆コーディングモードの場合は、回転又はフリップは、イントラ予測残差ブロックのみに適用することができ、又は、イントラ予測残差ブロック及びインター予測残差ブロックの両方に適用することができる。
【０１０６】
［０１１８］図４は、動き予測モードにより１つ以上のＰＵ１０２、１０４に分割され、四分木データ構造により複数のＴＵ１１０、１１２、１１４、１１６に分割される残差ブロックのＣＵ１００を示したブロック図である。図４において、ＰＵ境界は、ＰＵ１０２及び１０４の縁部の周囲の太い実線として示される。ＰＵ境界は、異なるＰＵに属する２つのＴＵ間の境界、例えば、ＰＵ１０２内のＴＵ１１４とＰＵ１０４内のＴＵ１１６との間の境界、を備える。図４において、ＴＵ境界は、ＰＵ１０２内のＴＵ１００とＴＵ１１２との間、及びＰＵ１０４内のＴＵ１１４とＴＵ１１６との間の太い破線として示される。ＴＵ境界は、同じＰＵに属する２つのＴＵ間の境界、例えば、ＰＵ１０２内のＴＵ１１０とＰＵ１０４内のＴＵ１１２との間の境界、を備える。
【０１０７】
［０１１９］概して、本開示は、変換スキップを用いて予測残差ブロック、例えば、ＴＵ１１２、の残差データをコーディングするための技法について説明する。ＴＵ１１２の残差データは、映像ブロックの一部分と関連する予測ブロックとの間のピクセル差分値を備える。ＴＵ１１２が変換スキップモードにおいて可逆コーディングモード又は非可逆コーディングモードのいずれかを用いてコーディングされるときにはＴＵ１１２に関して変換をスキップすることができる。ＴＵ１１２に変換を適用しなければ、平均よりも高いエネルギー、すなわち、平均よりも大きいピクセル差分値、を有する残差データは、ＴＵ１１２の左上隅に配置することができず、それは、エントロピーコーディングに関しては予想される。
【０１０８】
［０１２０］イントラ予測モードにおいて、残差ブロックに関して変換がスキップされるときには、平均よりも高いエネルギーを有する残差データは、典型的には、イントラ予測残差ブロックの右下隅に配置される。幾つかの事例においては、イントラ予測残差ブロックは、平均よりも高いエネルギーを有する残差データを残差ブロックの左上隅に配置するために残差ブロックをコーディングする前に１８０度だけ自動的に回転させることができる。しかしながら、インター予測モードでは、残差ブロックを１８０度だけ自動的に回転させるのは常に望ましいわけではない。
【０１０９】
［０１２１］インター予測残差ブロックの残差データのエネルギーに関して次の観測が行われている。すなわち、インター予測残差ブロックのＴＵ境界の残差データは、典型的には、残差ブロック内の平均的な残差データよりも低いエネルギーを有する。さらに、インター予測残差ブロックのＰＵ境界の残差データは、典型的には、残差ブロック内の平均的な残差データよりも高いエネルギーを有する。この観測に基づき、本開示の技法は、ＴＵ１１２の２つ以上の縁部における境界のタイプに基づいて、変換スキップを用いてインター予測残差ブロック、例えば、ＴＵ１１２、を回転させることを含む。
【０１１０】
［０１２２］本開示の技法により、ＴＵ１１２に関して変換がスキップされるときには、位置再設定ユニット（例えば、図２からの映像符号器２０の位置再設定ユニット６６又は図３からの映像復号器３０の位置再設定ユニット９４）は、ＴＵ１１２のオリジナルのバージョンのＰＵ境界の残差データをＴＵ１１２の回転されたバージョンの左上隅に配置するために、ＴＵ１１２の２つ以上の縁部における境界のタイプを決定し、次に、ＴＵ１１２を回転させるべきかどうかを決定することができる。幾つかの事例においては、それらの技法は、変換スキップモードにおいて可逆コーディングモード又は非可逆コーディングモードを用いてコーディングされたインター予測残差ブロックにしか適用することができない。その場合は、変換スキップモードにおいて可逆コーディングモード又は非可逆コーディングモードを用いてコーディングされたイントラ予測された残差ブロックは、残差映像ブロック内の残差データをコーディングする前に１８０度だけ自動的に回転させることができる。その他の事例においては、それらの技法は、変換スキップモードにおいて可逆コーディングモード又は非可逆コーディングモードを用いてコーディングされたインター予測残差ブロック及びイントラ予測残差ブロックの両方に適用することもできる。
【０１１１】
［０１２３］幾つかの例においては、それらの技法は、ＴＵ１１２を予め決定された回転値、例えば、１８０度、だけ回転させるか又はＴＵ１１２を回転させないかを決定することを含む。その他の例においては、それらの技法は、２つ以上の回転値、例えば、０度、すなわち回転させない、１８０度、９０度又は２７０度、からＴＵ１１２を回転させる回転値を決定することを含む。符号化側では、回転は、エントロピーコーディング効率を向上させるためにＴＵ１１２の残差データを符号化する前に平均よりも高いエネルギーを有する残差データをＴＵ１１２の回転されたバージョンの左上隅に配置するために行われる。幾つかの事例においては、回転は、符号化側では反時計回りの方向に行うことができる。復号側では、回転は、予測ブロックを用いてＴＵ１１２から映像ブロックを再構築するために、符号化中に行われた回転を逆転させ、平均より高いエネルギーを有する残差データをＴＵ１１２内の原位置に戻すために行われる。幾つかの事例においては、回転は、復号側では時計回り方向に行うことができる。
【０１１２】
［０１２４］本開示の技法の第１の例においては、変換がスキップされるイントラ予測残差ブロックは、残差ブロックの残差データをコーディングする前に１８０度だけ自動的に回転される。逆に、変換がスキップされているかどうかにかかわらず、インター予測残差ブロック、例えば、ＴＵ１１２、に関しては回転は適用されない。
【０１１３】
［０１２５］本開示の技法の第２の例においては、残差ブロックは、残差ブロックの縁部における境界のタイプに依存して、１８０度だけ回転させるか又は回転させないことができる。９０度又は２７０度の回転は、トランスポーズバッファ（ｔｒａｎｓｐｏｓｅ  ｂｕｆｆｅｒ）を要求することがあるため、０度又は１８０度に回転を制限することが望ましいであろう。概して、残差ブロックの左縁部及び上縁部がＰＵ境界、例えば、ＴＵ１１０、である場合は、左上隅内の残差データは、ＴＵ１１０内の平均的な残差データよりも高いエネルギーを有する可能性がある。その場合は、高いエネルギーの残差データが既にＴＵ１１０の左上隅に集中しているため、ＴＵ１１０を１８０度回転させることは望ましくないであろう。従って、映像コーディングデバイスは、ＴＵ１１０の回転を行わないことを決定することができる。しかしながら、残差ブロックの左縁部及び上縁部がＴＵ境界であり、残差映像ブロックの右縁部及び下縁部がＰＵ境界である場合は、高いエネルギーの残差データを残差ブロックの回転されたバージョンの左上隅に配置するために１８０度回転させることが望ましい。従って、映像コーディングデバイスは、その残差ブロックを１８０度だけ回転させることを決定することができる。
【０１１４】
［０１２６］本開示の技法により、映像コーディングデバイスの位置を再設定することは、残差ブロックの各縁部をＰＵ境界又はＴＵ境界として分類することができる。次に、位置再設定ユニットは、残差ブロックを１８０度だけ回転させるべきかどうかを決定するための規則を適用する。残差ブロックの右縁部及び下縁部におけるＰＵ境界の数が、残差ブロックの左縁部及び上縁部におけるＰＵ境界の数よりも多い場合は、位置再設定ユニットは、残差ブロックを１８０度だけ回転させることを決定する。以下の表１は、１８０度の回転が行われる縁部分類の組み合わせを示す。残りの組み合わせに関しては、映像コーディングデバイスの位置再設定ユニットは、残差ブロックに関する回転を行わないことを決定する。左縁部及び上縁部に関するＰＵ境界の数が残差ブロックの下縁部及び右縁部におけるＰＵ境界の数と等しい場合は、映像コーディングデバイスの位置再設定ユニットは、残差ブロックを１８０度だけ回転させること又は残差ブロックを回転させないことを決定することができる。
【表１】
0006285014.tif 000002
【０１１５】
［０１２７］一例として、映像コーディングデバイスの位置再設定ユニットは、ＴＵ１１２の各縁部における境界のタイプに基づいてＴＵ１１２の残差ブロックを例えば１８０度だけ回転させるべきかどうかを決定することができる。位置再設定ユニットは、ＴＵＩ１１２の左縁部及び上縁部におけるＰＵ境界の第１の数が１つのＰＵ境界、すなわち、上縁部、に等しいと決定する。位置再設定ユニットは、ＴＵＩ１１２の右縁部及び下縁部におけるＰＵ境界の第２の数が２つのＰＵ境界、すなわち、右縁部及び下縁部の両方、に等しいと決定する。この場合は、ＰＵ境界の第２の数は、ＰＵ境界の第１の数よりも多く、このため、位置再設定ユニットは、ＴＵ１１２の残差データをコーディングする前に１８０度だけＴＵ１１２を回転させることを決定する。
【０１１６】
［０１２８］本開示の技法の第３の例においては、映像コーディングデバイスの位置再設定ユニットは、各残差映像ブロックに関して最大で４つの可能な回転値、すなわち、０度、すなわち回転させない、１８０度、９０度、及び２７０度、を検討することができる。幾つかの事例においては、９０度又は２７０度の回転は、トランスポーズバッファを要求することがあるためハードウェアにおいて実装するのが困難であるので、位置再設定ユニットは、回転値のうちの２つ、例えば、０度及び１８０度、のみを検討することができる。従って、この例では、回転させない又は１８０度の回転のみが検討される。
【０１１７】
［０１２９］回転値（０度、１８０度、９０度、及び２７０度）のうちの各々を適用した後は、位置再設定ユニットは、それらの回転値の各々の１つに関して残差ブロックの左縁部及び上縁部におけるＰＵ境界の数を計算する。これらのＰＵ境界数をｎ０、ｎ１８０、ｎ９０、及びｎ２７０によって表す。同様に、回転値（０度、１８０度、９０度、及び２７０度）のうちの各々を適用した後は、位置再設定ユニットは、それらの回転値のうちの各々の１つに関して残差ブロックの右縁部及び下縁部におけるＰＵ境界の数を計算する。これらのＰＵ境界数をｍ０、ｍ１８０、ｍ９０、及びｍ２７０によって表す。回転は、符号化側では反時計回りの方向で行うことができ、復号側では時計回りの方向で行うことができる。
【０１１８】
［０１３０］これらの技法により、映像コーディングデバイスの位置再設定ユニットは、回転値の各々に関して残差ブロックの左縁部及び上縁部におけるＰＵ境界の数と残差ブロック右縁部及び下縁部におけるＰＵ境界の数との間の差分値を計算する。すなわち、ｄ０＝（ｎ０−ｍ０）、ｄ９０＝（ｎ９０−ｍ９０）、ｄ１８０＝（ｎ１８０−ｍ１８０）、及びｄ２７０＝（ｎ２７０−ｍ２７０）である。位置再設定ユニットは、すべての回転値に関して差分値ｄ０、ｄ９０、ｄ１８０、及びｄ２７０から最大差分値を決定する。次に、映像コーディングデバイスの位置再設定ユニットは、最大差分値に対応する回転値だけ残差ブロックを回転させることを決定する。
【０１１９】
［０１３１］差分値のうちの２つ以上が最大差分値に等しい場合は、位置再設定ユニットは、予め決定された順序に従って残差ブロックに適用されるべき回転値を選択することができる。予め決定された順序の一例は、回転させない、１８０度の回転、９０度の回転、及び２７０度の回転である。この例において、ｄ０、ｄ９０、及びｄ１８０、がすべて最大差分値に等しい場合は、残差ブロックには回転は適用されない。ｄ９０及びｄ１８０の両方が最大差分値に等しい場合は、残差ブロックには１８０度の回転値が適用される。その他の例においては、最大値に等しい場合に異なる回転選択順序を使用することができる。以下の表２は、オリジナルの残差ブロックに関する境界タイプの２つの組み合わせ及びその結果得られた残差ブロックに関する回転値を示す。
【表２】
0006285014.tif 000003
【０１２０】
［０１３２］一例として、映像コーダの位置再設定ユニットは、ＴＵ１１２の各縁部における境界のタイプに基づいて、ＴＵ１１２の残差映像ブロックを０度、１８０度、９０度だけ反時計回りに回転させるべきかどうかを決定することができる。位置再設定ユニットは、回転値の各々に関してＴＵ１１２の左縁部及び上縁部におけるＰＵ境界の第１の数を決定し、従って、ｎ０＝１、ｎ１８０＝２、ｎ９０＝２、及びｎ２７０＝１である。次に、位置再設定ユニットは、回転値の各々に関してＴＵ１１２の右縁部及び下縁部におけるＰＵ境界の第２の数を決定し、従って、ｍ０＝２、ｎ１８０＝１、ｎ９０＝１、及びｎ２７０＝２である。
【０１２１】
［０１３３］次に、位置再設定ユニットは、回転値の各々に関してＰＵ境界の第１の数とＰＵ境界の第２の数との間の差分値を計算し、従って、ｄ０＝−１、ｄ１８０＝１、ｄ９０＝１、及びｄ２７０＝−１である。次に、位置再設定ユニットは、ＴＵ１１２のすべての回転値に関する差分値からの最大差分値がｄ１８０及びｄ９０に等しいと決定し、それらは両方とも１に等しい。等しい（ｔｉｅ）場合は、上述される予め決定された順序に従い、１８０度の回転値が９０度よりも優先されて選択される。次に、映像コーディングデバイスの位置再設定ユニットは、残差映像ブロック内の残差データをコーディングする前に、最大差分値を有する回転値、この場合は１８０度、だけ残差ブロックを回転させることを決定する。
【０１２２】
［０１３４］図５は、映像符号器が残差ブロックの残差データを符号化する前に残差ブロックを回転させるべきかどうかを決定する典型的な動作を例示したフローチャートである。その動作は、図２からの映像符号器２０に関して説明される。映像符号器２０は、インター予測モードにおいて動き補償ユニット４４からの予測ブロックを用いて映像ブロックから残差ブロックを計算する（１２０）。幾つかの例においては、残差ブロックは、残差ブロックに関して変換及び量子化の両方が常にスキップされる可逆コーディングモードを用いてコーディングすることができる。その他の例においては、残差ブロックは、残差ブロックに関して変換のみがスキップされる変換スキップモードにおいて非可逆コーディングモードを用いてコーディングすることができる。
【０１２３】
［０１３５］変換スキップを用いて残差ブロックをコーディングすることを選択したことに応答して、映像符号器２０は、変換処理ユニット５２において残差ブロックに関して変換を行うことをスキップする（１２２）。一例として、映像符号器２０は、残差ブロックに関して変換及び量子化が常にスキップされる可逆コーディングモードを用いて残差ブロックがコーディングされるかどうかを示す構文要素、すなわち、ｃｕ_ｔｒａｎｓｑｕａｎｔ_ｂｙｐａｓｓ_ｆｌａｇ、を符号化することができる。他の例においては、映像符号器２０は、非可逆コーディングモードを用いた残差ブロックのコーディング中に、変換のみがスキップされる変換スキップモードが使用されかどうかを示す構文要素、すなわち、ｔｒａｎｆｏｒｍ_ｓｋｉｐ_ｆｌａｇ、を符号化することができる。
【０１２４】
［０１３６］それらの技法により、残差ブロックに関して変換がスキップされるときには、映像符号器２０の位置再設定ユニット６６は、残差ブロックの各縁部における境界のタイプを決定する（１２４）。残差ブロックの特定の縁部における境界のタイプは、残差ブロックの特定の縁部において典型的に存在する残差データのエネルギーのレベルを示す。次に、位置再設定ユニット６６は、各縁部における境界のタイプに基づいて残差ブロックを回転させるべきかどうかを決定する（１２６）。位置再設定ユニット６６は、エントロピーコーディング効率を向上させるために平均よりも高いエネルギーを有する残差データを残差ブロックの左上隅に配置するために残差ブロックを回転させることを決定することができる。
【０１２５】
［０１３７］位置再設定ユニット６６が残差ブロックを回転させることを決定したときには（１２８の「はい」分岐）、位置再設定ユニット６６は、決定された回転値だけ残差ブロックを回転させる（１３０）。幾つかの事例においては、図７に関してより詳細に説明されるように、決定された回転値は、静的な、予め決定された回転値、例えば、１８０度、であることができる。その他の事例においては、図８に関してより詳細に説明されるように、位置再設定ユニット６６は、残差ブロックを回転させる回転値を複数の回転値から決定することができる。それらの複数の回転値は、１８０度、反時計回りの９０度又は反時計回りの２７０度を含むことができる。
【０１２６】
［０１３８］位置再設定ユニット６６が残差ブロックを回転させないことを決定したときには（１２８の「いいえ」分岐）、位置再設定ユニット６６は、残差ブロックを回転させない。位置再設定ユニット６６が残差ブロックを回転させるかどうかにかかわらず、エントロピー符号化ユニット５６は、残差ブロックの残差データを符号化する（１３２）。幾つかの事例においては、例えば、変換スキップモードにおける非可逆コーディングモードでは、残差ブロックの残差データは、エントロピー符号化ユニット５６によるエントロピー符号化の前に量子化ユニット５４を用いて量子化することができる。位置再設定ユニット６６によって残差ブロックを回転させるべきかどうかを決定する前に量子化ユニット５４を用いて残差ブロックの残差データを量子化することも可能である。その他の事例、例えば、可逆コーディングモード、においては、変換及び量子化の両方がスキップされ、さらなる圧縮を行わずにエントロピー符号化ユニット５６によって残差ブロックの残差データが直接エントロピー符号化される。
【０１２７】
［０１３９］代替として、残差ブロックの縁部の各々における境界のタイプを決定し及び縁部における境界のタイプに基づいて回転させるべきかどうかを決定する代わりに、位置再設定ユニット６６は、残差ブロックをエントロピー符号化するために必要なビット数に基づいて残差ブロックを回転させるべきかどうかを決定することができる。この場合は、位置再設定ユニット６６は、１つ以上の回転値を残差ブロックに適用すること、及び、各回転値に関して、回転された残差ブロックに含まれる量子化された残差係数をエントロピー符号化するために必要なビット数を決定することができる。次に、位置再設定ユニット６６は、エントロピー符号化のための最小ビット数が結果的に得られることになる回転値に基づいて残差ブロックを回転させるかどうかを決定することができる。
【０１２８】
［０１４０］この代替例においては、エントロピー符号化ユニット５６は、残差ブロックを回転させるべきかどうかを示す構文要素を符号化することができる。映像復号器は、回転させるべきかどうか又は残差ブロックに関する回転値を決定するために同一の情報にアクセスすることができない。従って、回転値は、ビットストリーム内において明示でシグナリングする必要がある。２つのみの可能な回転値、すなわち、０度、すなわち回転させない、及び１８０度、の場合は、回転値をシグナリングするには１つのビットで十分である。エントロピー符号化ユニット５６は、コンテキストを用いて又はバイパスモードでビットをＣＡＢＡＣコーディングすることができる。４つの可能な回転値、すなわち、０度、１８０度、反時計回りの９０度、又は反時計回りの２７０度、の場合は、２つのビットを用いて回転値をシグナリングすることができる。エントロピー符号化ユニット５６は、コンテキストを用いて又はバイパスモードで２つのビットをＣＡＢＡＣコーディングすることができる。
【０１２９】
［０１４１］図６は、映像復号器が残差ブロックの残差データから映像ブロックを再構築する前に残差ブロックを回転させるべきかどうかを決定する典型的な動作を示したフローチャートである。その動作は、図３からの映像復号器３０に関して説明される。映像復号器３０のエントロピー復号ユニット８０は、映像符号器から受信された映像ブロックに関するビットストリームからの残差ブロックの残差データ及び関連する構成要素を復号する（１４０）。一例として、構成要素、すなわち、ｃｕ_ｔｒａｎｓｑｕａｎｔ_ｂｙｐａｓｓ_ｆｌａｇ、は、残差ブロックに関して変換及び量子化の両方が常にスキップされる可逆コーディングモードを用いて残差ブロックがコーディングされるかどうかを示す。他の例においては、構成要素、すなわち、ｔｒａｎｓｆｏｒｍ_ｓｋｉｐ_ｆｌａｇ、は、非可逆コーディングモードを用いた残差ブロックのコーディング中に、変換のみがスキップされる変換スキップモードが使用されるかどうかを示す。
【０１３０】
［０１４２］幾つかの事例、例えば、変換スキップモードにおける非可逆コーディングモードモード、では、残差ブロックの残差データは、残差ブロックを回転させて残差ブロックの残差データから映像ブロックを再構築する前に逆量子化ユニット８６を用いて逆量子化される。逆量子化ユニット８６を用いて残差ブロックの残差データを逆量子化する前に位置再設定ユニット９４によって残差ブロックを回転させるべきかどうかを決定することも可能である。その他の事例、例えば、可逆コーディングモード、では、逆量子化及び逆変換の両方がスキップされ、さらなる伸張を行わずに映像ブロックを直接再構築するために残差ブロックの残差データが使用される。
【０１３１】
［０１４３］映像復号器３０は、関連する構成要素によって示される変換スキップに基づいて逆変換処理ユニット８８において残差ブロックに関する逆変換を行うことをスキップする（１４２）。それらの技法により、残差ブロックに関して逆変換がスキップされるときには、映像復号器３０の位置再設定ユニット９４は、残差ブロックの各縁部における境界のタイプを決定する（１４４）。次に、位置再設定ユニット９４は、各縁部における境界のタイプに基づいて残差ブロックを回転させるべきかどうかを決定する（１４６）。位置再設定ユニット９４は、エントロピーコーディング効率を向上させるために平均よりも高いエネルギーを有する残差データを残差ブロックの左上隅に配置した、符号化中に行われた残差ブロックの回転、を逆転させるために残差ブロックを回転させることを決定することができる。
【０１３２】
［０１４４］位置再設定ユニット９４が残差ブロックを回転させることを決定したときには（１４８の「はい」分岐）、位置再設定ユニット９４は、決定された回転値だけ残差ブロックを回転させる（１５０）。幾つかの事例においては、図７に関してより詳細に説明されるように、決定された回転値は、静的な、予め決定された回転値、例えば、１８０度、であることができる。その他の事例においては、図８に関してより詳細に説明されるように、位置再設定ユニット９４は、残差ブロックを回転させる回転値を複数の回転値から決定することができる。それらの複数の回転値は、例えば、映像符号器が反時計回りの方向に回転を行った場合には、１８０度、時計回りの９０度又は時計回りの２７０度を含むことができる。
【０１３３】
［０１４５］位置再設定ユニット９４が残差ブロックを回転させないことを決定したときには（１４８の「いいえ」分岐）、位置再設定ユニット９４は、残差ブロックを回転させない。位置再設定ユニット９４が残差ブロックを回転させるかどうかにかかわらず、映像復号器３０は、インター予測モードにおいて動き補償ユニット８２からの予測ブロックを用いて残差ブロックから映像ブロックを再構築する（１５２）。
【０１３４】
［０１４６］代替として、残差ブロックの縁部の各々における境界のタイプを決定し及び縁部における境界のタイプに基づいて回転させるべきかどうかを決定する代わりに、位置再設定ユニット９４は、明示でシグナリングされた回転値だけ残差ブロックを回転させるべきかどうかを示す構文要素に基づいて残差ブロックを回転させるべきかどうかを決定することができる。この場合は、映像符号器は、残差ブロックをエントロピー符号化するために必要なビット数に基づいて残差ブロックを回転させるべきかどうかを決定することができる。例えば、映像符号器は、エントロピー符号化のための最小ビット数が結果的に得られることになる回転値に基づいて残差ブロックを回転させるべきかどうかを決定し、その回転値を映像復号器３０に明示でシグナリングすることができる。
【０１３５】
［０１４７］この代替例においては、エントロピー復号ユニット８０は、残差ブロックを回転させるべきかどうかを示す構文要素を復号することができる。映像復号器３０は、回転させるべきかどうか又は残差ブロックに関する回転値を決定するために映像符号器として同一の情報にアクセスすることができない。従って、回転値は、ビットストリーム内において明示でシグナリングする必要がある。２つのみの可能な回転値、すなわち、０度、すなわち回転させない、及び１８０度、の場合は、回転値をシグナリングするには１つのビットで十分である。エントロピー復号ユニット８０は、コンテキストを用いて又はバイパスモードでビットをＣＡＢＡＣコーディングすることができる。４つの可能な回転値、すなわち、０度、１８０度、時計回りの９０度、又は時計回りの２７０度、の場合は、２つのビットを用いて回転値をシグナリングすることができる。エントロピー復号ユニット８０は、コンテキストを用いて又はバイパスモードで２つのビットをＣＡＢＡＣコーディングすることができる。
【０１３６】
［０１４８］図７は、残差ブロックの縁部における境界のタイプに基づいて予め決定された回転値だけ残差ブロックを回転させるべきかどうかを決定する１つの動作例を示したフローチャートである。例示される動作は、縁部における境界のタイプに基づいて残差ブロックを回転させるべきかどうかを決定する図５からのステップ１２６及び図６からのステップ１４６のより詳細な例である。
【０１３７】
［０１４９］例えば、変換スキップモードにおける可逆コーディングモード又は非可逆コーディングモードで、残差ブロックに関して変換がスキップされるときには、平均よりも高いエネルギーを有する残差データを残差ブロックの左上隅に配置するために符号化中に残差ブロックを回転させることによってエントロピーコーディング効率を向上させることができる。復号中には、インター予測モードにおいて予測ブロックを用いて残差ブロックから映像ブロックを適切に再構築するために符号化中に行われた回転を逆転させる必要がある。
【０１３８】
［０１５０］インター予測モードにおいて、残差ブロックの特定の縁部が同じＰＵ内の２つのＴＵ間のＴＵ境界である場合は、残差ブロックのＴＵ境界における残差データは、典型的には、残差ブロック内の平均的残差データよりも低いエネルギーを有する。さらに、残差ブロックの特定の縁部が異なるＰＵにおける２つのＴＵ間のＰＵ境界である場合は、残差ブロックのＰＵ境界における残差データは、典型的には、残差ブロック内の平均的残差データよりも高いエネルギーを有する。この観測に基づいて、図７において例示される技法は、オリジナルの残差ブロックのＰＵ境界における残差データを回転された残差ブロックの左上隅に配置するために、残差ブロックを予め決定された回転値、例えば、１８０度、だけ回転させるべきかどうかを決定するために残差ブロックの縁部における境界のタイプを使用する。符号化側では、この回転は、エントロピーコーディング効率を向上させるために平均よりも高いエネルギーを有する残差データを回転された残差ブロックの左上隅に配置する。復号側では、この回転は、符号化中に行われた回転を逆転させ、平均よりも高いエネルギーを有する残差データをオリジナルの残差ブロック内の原位置に戻す。
【０１３９】
［０１５１］図７において例示される動作は、図２からの映像符号器２０の位置再設定ユニット６６に関して説明される。その他の例においては、図３からの映像復号器３０の位置再設定ユニット９４によって同じ動作を行うこともできる。例示される動作において、位置再設定ユニット６６は、残差ブロックを予め決定された回転値、例えば、１８０度、だけ回転させるか又は残差ブロックを回転させないことができる。残差ブロックを回転させるべきかどうかを決定するために、位置再設定ユニット６６は、残差ブロックの左縁部及び上縁部におけるＰＵ境界の第１の数を決定する（１６０）。位置再設定ユニット６６は、残差ブロックの右縁部及び下縁部におけるＰＵ境界の第２の数も決定する（１６２）。
【０１４０】
［０１５２］ＰＵ境界の第２の数がＰＵ境界の第１の数よりも多い場合は（１６４の「はい」分岐）、平均よりも高いエネルギーを有する残差データは、残差ブロックの右上隅に集中される可能が高い。この場合は、位置再設定ユニット６６は、残差ブロックを予め決定された回転値だけ回転させる（１６８）。例えば、残差ブロックを１８０度だけ回転させることは、平均よりも高いエネルギーを有する残差データを回転された残差ブロックの左上隅に配置する。他方、ＰＵ境界の第２の数がＰＵ境界の第１の数以下である場合は（１６４の「いいえ」分岐）、平均より高いエネルギーを有する残差データは、既に残差ブロックの左上隅に集中されている可能性が高い。その場合は、位置再設定ユニット６６は、残差ブロックを回転させない（１６６）
［０１５３］図８は、残差ブロックを回転させるべきかどうか決定する動作の他の例を示したフローチャートであり、２つ以上の可能な回転値の各々に関して残差ブロックの縁部における境界のタイプに基づいて残差ブロックに関する回転値を決定することを含む。例示される動作は、縁部における境界のタイプに基づいて残差ブロックを回転させるべきかどうかを決定する図５からのステップ１２６及び図６からのステップ１４６の他のより詳細な例である。
【０１４１】
［０１５４］例えば、変換スキップモードにおける可逆コーディングモード又は非可逆コーディングモードで、残差ブロックに関して変換がスキップされるときには、平均よりも高いエネルギーを有する残差データを残差ブロックの左上隅に配置するために符号化中に残差ブロックを回転させることによってエントロピーコーディング効率を向上させることができる。復号中には、インター予測モードにおいて予測ブロックを用いて残差ブロックから映像ブロックを適切に再構築するために符号化中に行われた回転を逆転させる必要がある。
【０１４２】
［０１５５］インター予測モードにおいて、残差ブロックの特定の縁部が同じＰＵ内の２つのＴＵ間のＴＵ境界である場合は、残差ブロックのＴＵ境界における残差データは、典型的には、残差ブロック内の平均的残差データよりも低いエネルギーを有する。さらに、残差ブロックの特定の縁部が異なるＰＵにおける２つのＴＵ間のＰＵ境界である場合は、残差ブロックのＰＵ境界における残差データは、典型的には、残差ブロック内の平均的残差データよりも高いエネルギーを有する。この観測に基づいて、図８において例示される技法は、オリジナルの残差ブロックのＰＵ境界における残差データを回転された残差ブロックの左上隅に配置するために残差ブロックを予め決定された回転値、例えば、０度、１８０度、９０度、又は２７０度、だけ回転させる回転値を決定するために残差ブロックの縁部における境界のタイプを使用する。符号化側では、この回転は、エントロピーコーディング効率を向上させるために平均よりも高いエネルギーを有する残差データを回転された残差ブロックの左上隅に配置する。復号側では、この回転は、符号化中に行われた回転を逆転させ、平均よりも高いエネルギーを有する残差データをオリジナルの残差ブロック内の原位置に戻す。
【０１４３】
［０１５６］図８において例示される動作は、図２からの映像符号器２０の位置再設定ユニット６６に関して説明される。その他の例においては、図３からの映像復号器３０の位置再設定ユニット９４によって同じ動作を行うこともできる。例示される動作において、位置再設定ユニット６６は、複数の回転値から選択された回転値だけ残差ブロックを回転させることができる。幾つかの事例においては、回転値は、０度、すなわち回転させない、及び１８０度を含むことができる。その他の事例においては、回転値は、０度、１８０度、９０度及び２７０度を含むことができる。一例として、符号化側では、回転値は、反時計回りの方向であることができ、復号側では、回転値は、時計回りの方向であることができる。
【０１４４】
［０１５７］残差ブロックを回転させるべき回転値を決定するために、位置再設定ユニット６６は、回転値の各々に関して残差ブロックの左縁部及び上縁部におけるＰＵ境界の第１の数を決定する（１７０）。位置再設定ユニット６６は、回転値の各々に関して残差ブロックの右縁部及び下縁部におけるＰＵ境界の第２の数も決定する（１７２）。従って、位置再設定ユニット６６は、残差ブロックの可能な回転の各々を行い、及び、それらの回転の各々におけるＰＵ境界の位置及び数を決定する。
【０１４５】
［０１５８］位置再設定ユニット６６は、回転値の各々に関して第１の数と第２の数との間の差分値を計算する（１７４）。このようにして、位置再設定ユニット６６は、平均よりも高いエネルギーを有する残差データが、各々の回転が行われた後に残差ブロック内のどこに集中されている可能性が高いかを決定する。次に、位置再設定ユニット６６は、すべての回転値に関して計算された差分値から最大差分値を決定する（１７６）。平均よりも高いエネルギーを有する残差データが残差ブロックの左上隅に集中するのを最大にするために、回転ユニット６６は、最大差分値に関連する回転値のうちの１つを選択する。次に、位置再設定ユニット９４は、最大差分値を有する回転値だけ残差ブロックを回転させる（１７８）。
【０１４６】
［０１５９］図９は、残差ブロックに変換が適用されないときに回転を行うことができる残差ブロックのブロックサイズを制限する動作例を示したフローチャートである。図９の例示される動作は、図２からの映像符号器２０の位置再設定ユニット６６に関して説明される。その他の例においては、図３からの映像復号器３０の位置再設定ユニット９４によって同じ動作を行うこともできる。例示される動作は、非可逆コーディングモード及び可逆コーディングモードの両方においてイントラ予測残差ブロック及びインター予測残差ブロックの両方に対して適用することができる。
【０１４７】
［０１６０］上述される技法は、残差ブロックに関して変換がスキップ又は迂回されるときに残差ブロックを決定された回転値だけ回転させることを含む。上記の技法は、変換スキップモードが使用される非可逆コーディングモードコーディングモード又は変換プロセス及び量子化プロセスの両方が迂回される可逆コーディングモードのいずれかを用いてコーディングされるインター予測残差ブロック及びイントラ予測残差ブロックの両方に関して回転を行うことが説明される。
【０１４８】
［０１６１］非可逆コーディングモードでは、すべての残差ブロックサイズに対して変換スキップモードを適用することができる。可逆コーディングモードでは、すべての残差ブロックサイズに関して変換が迂回される。従って、イントラ予測モード及びインター予測モードの両方においてすべてのブロックサイズに関して回転を行うことができる。しかしながら、大きいサイズの残差ブロック、例えば、１６×１６又は３２×３２ブロック、に関して回転を行うことは、ハードウェア実装に関しては困難になることがある。本開示の技法により、変換が適用されない残差ブロックに関して残差データを回転させることは、スレショルドのサイズ以下である残差ブロックサイズに制限することができる。従って、残差ブロックを回転させるべきかどうか決定することは、可逆コーディングモードを示すｃｕ_ｔｒａｎｓｑｕａｎｔ_ｂｙｐａｓｓ_ｆｌａｇ、非可逆コーディングモードにおける変換スキップモードを示す変換スキップフラグ、及び残差ブロックのサイズに依存することができる。
【０１４９】
［０１６２］図９において例示される動作では、位置再設定ユニット６６は、残差ブロックに変換が適用されない、すなわち、変換スキップモードにおいて可逆コーディングモード又は非可逆コーディングモードを用いて残差ブロックがコーディングされる、ときに残差ブロックを受信する。本開示の技法は、非可逆コーディングモード及び可逆コーディングモードの両方において回転を行うことができる残差ブロックのサイズを制限することを含む。
【０１５０】
［０１６３］この場合は、残差ブロックを回転させるべきかどうかを決定するために、位置再設定ユニット６６は、変換が適用されない残差ブロックのサイズを決定する（１８０）。残差ブロックのサイズがスレショルドのブロックサイズ以下である場合は（１８２の「はい」分岐）、位置再設定ユニット６６は、残差ブロックを決定された回転値だけ回転させるべきかどうかを決定する（１８６）。残差ブロックのサイズがスレショルドのサイズよりも大きい場合は（１８２の「いいえ」分岐）、位置再設定ユニット６６は、回転をディスエーブルにし、残差ブロックを回転させない（１８４）。回転の決定は、上においてさらに詳細に説明される動作のうちの１つによって行うことができる。幾つかの例においては、残差ブロックがイントラ予測残差ブロックである場合は、回転は、残差ブロックのブロックサイズがスレショルドブロックサイズ判定基準を満たすときに常に適用される。幾つかの事例においては、残差ブロックの回転は、１８０度に制限することができる。その他の事例においては、残差ブロックの回転は、上述される技法により０度、９０度、１８０度又は２７０度のうちの１つとして決定することができる。その他の例においては、残差ブロックがインター予測残差ブロック又はイントラブロックコピーイング（ＢＣ）予測残差モードである場合は、回転をディスエーブルにすることができる。
【０１５１】
［０１６４］一例においては、非可逆コーディングモード及び可逆コーディングモードの両方において残差ブロックの回転を行うためのスレショルドのサイズは、８×８である。その他の例においては、スレショルドのサイズは、４×４に等しいことができる。幾つかの事例においては、回転は、非可逆コーディングモード又は可逆コーディングモードにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロックにしか適用することができず、インター予測残差ブロックに関してはブロックサイズにかかわらず回転をディスエーブルにすることができる。幾つかの事例においては、回転は、ブロックサイズにかかわらずイントラＢＣ予測残差ブロックに関してもディスエーブルにすることができる。その他の事例においては、回転は、非可逆コーディングモード又は可逆コーディングモードにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロック及びインター予測残差ブロックの両方に対して適用することができる（すなわち、残差ブロックサイズがスレショルドのブロックサイズ以下である）。他の事例においては、回転は、変換スキップを用いる非可逆コーディングモードにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロックのみに対して、及び、可逆コーディングモードにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロック及びインター予測残差ブロックの両方に対して適用することができる。
【０１５２】
［０１６５］他の例においては、変換スキップモードは、最大ブロックサイズまでのサイズ、例えば、４×４又は８×８、を有する非可逆コーディングモードにおける残差ブロックのみに適用されるように制限することができる。非可逆コーディングモードにおいて変換をスキップすることが許容される最大ブロックサイズは、残差ブロックに関連するＳＰＳ及びＰＰＳのうちの１つにおいて示すことができる。この場合は、非可逆コーディングモード及び可逆コーディングモードの両方において残差ブロックの回転を行うためのスレショルドサイズは、非可逆コーディングモードにおいて変換をスキップすることができる最大ブロックサイズ以下、例えば、４×４又は８×８、である。非可逆コーディングモードにおいて変換をスキップすることができる最大ブロックサイズ以下になるようにスレショルドのブロックサイズを設定することは、可逆コーディングモード事例及び非可逆コーディングモード事例の両方に関して回転を行うことができるブロックサイズを整合させる。
【０１５３】
［０１６６］幾つかの事例においては、回転は、非可逆コーディングモード又は可逆コーディングモードのいずれかにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロックにしか適用することができず、インター予測残差ブロックに関してはブロックサイズにかかわらず回転をディスエーブルにすることができる。幾つかの事例においては、イントラＢＣ予測残差ブロックに関してもブロックサイズにかかわらず回転をディスエーブルにすることができる。その他の事例においては、回転は、非可逆コーディングモード又は可逆コーディングモードのいずれかにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロック及びインター予測残差ブロックの両方に対して適用することができる。他の事例においては、回転は、変換スキップを用いる非可逆コーディングモードにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロックのみに対して、及び、可逆コーディングモードにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロック及びインター予測残差ブロックの両方に対して適用することができる。
【０１５４】
［０１６７］図１０は、残差ブロックに変換が適用されないときに対角線に沿った残差データサンプル値のフリップを行うことができる残差ブロックのブロックサイズを制限する動作例を示したフローチャートである。図１０において例示される動作は、図２からの映像符号器２０の位置再設定ユニット６６に関して説明される。その他の例においては、図３からの映像復号器３０の位置再設定ユニット９４によっても同じ動作を行うことができる。例示される動作は、非可逆コーディングモード及び可逆コーディングモードの両方におけるイントラ予測残差ブロック及びインター予測残差ブロックの両方に対して適用することができる。
【０１５５】
［０１６８］残差ブロックの回転に適用される上記の技法は、残差ブロックの残差データサンプル値をフリップさせることに対しても適用することができる。上述されるように、ＪＣＴＶＣ−Ｋ０２９４では、使用中の走査に依存して、残差ブロックに関して変換がスキップされるときに残差ブロックの主対角線又は副対角線に沿ってイントラ予測残差ブロックのサンプル値をフリップさせることができる。図９に関して上述されるように、残差ブロックに関して回転を適用することができる判定基準は、予測残差値のフリップをいつ行うことができるかを決定することにも適用することができる。
【０１５６】
［０１６９］残差ブロックの残差データサンプル値がフリップされるときには、対角線の一方の側におけるサンプル値は、残差ブロックの対角線の他方の側における対応するミラー画像位置におけるサンプル値と場所をスワップする。幾つかの例においては、残差ブロックのサンプル値をフリップさせることは、残差ブロックの主対角線、すなわち、残差ブロックの左上隅から右下隅への対角線、を横切ってサンプル値をミラーリング（ｍｉｒｒｏｒｉｎｇ）することを含むことができる。その他の例においては、残差ブロックのサンプル値をフリップさせることは、残差ブロックの副対角線、すなわち、残差ブロックの左下隅から右上隅への対角線、を横切ってサンプル値をミラーリングすることを含むことができる。幾つかの事例においては、残差ブロックのサンプル値は、変換がスキップされた残差ブロックに関して水平又は垂直な走査モードが選択されたときに主対角線に関してフリップされる。その他の事例においては、残差ブロックのサンプル値は、変換がスキップされた残差ブロックに関して対角線走査モードが選択されたときに副対角線に関してフリップされる。
【０１５７】
［０１７０］非可逆コーディングモードでは、すべての残差ブロックサイズに対して変換スキップを適用することができる。可逆コーディングモードでは、すべての残差ブロックサイズに関して変換が迂回される。従って、フリップさせることは、イントラ予測モード及びインター予測モードの両方においてすべての残差ブロックサイズに関して行うことができる。本開示の技法により、変換が適用されない残差ブロックの残差データをフリップさせることは、スレショルドのサイズ以下である残差ブロックサイズに制限することができる。従って、残差ブロックをフリップさせるべきかどうかを決定することは、可逆コーディングモードを示すｃｕ_ｔｒａｎｓｑｕａｎｔ_ｂｙｐａｓｓ_ｆｌａｇ、非可逆コーディングモードにおける変換スキップモードを示す変換スキップフラグ、及び残差ブロックのサイズに依存することができる。
【０１５８】
［０１７１］図１０において例示される動作では、位置再設定ユニット６６は、残差ブロックに関して変換がスキップされる、すなわち、残差ブロックが変換スキップモードにおいて可逆コーディングモード又は非可逆コーディングモードを用いてコーディングされる、ときに残差ブロックを受信する。本開示の技法は、非可逆コーディングモード及び可逆コーディングモードの両方においてフリップを行うことができる残差ブロックのサイズを制限することを含む。
【０１５９】
［０１７２］この場合は、残差ブロックをフリップさせるべきかどうかを決定するために、位置再設定ユニット６６は、変換が適用されない残差ブロックのサイズを決定する（１９０）。残差ブロックのサイズがスレショルドのブロックサイズ以下である場合は（１９２の「はい」分岐）、位置再設定ユニット６６は、残差ブロックの対角線に沿って残差データサンプル値をフリップさせるべきかどうかを決定する（１９６）。残差ブロックのサイズがスレショルドのサイズよりも大きい場合は（１９２の「いいえ」分岐）、位置再設定ユニット６６は、フリップすることをディスエーブルにし、残差ブロックの残差データサンプル値をフリップさせない（１９４）。残差データサンプル値は、残差ブロックの主対角線に沿って、すなわち、左上から右下に、又は副対角線に沿って、すなわち、左下から右上に、フリップさせることができる。
【０１６０】
［０１７３］一例においては、非可逆コーディングモード及び可逆コーディングモードの両方において残差ブロックの残差データをフリップさせるためのスレショルドのサイズは、８×８である。その他の例においては、スレショルドのサイズは、４×４に等しいことができる。幾つかの事例においては、フリップさせることは、非可逆コーディングモード又は可逆コーディングモードにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロックにしか適用することができず、インター予測残差ブロックに関してはブロックサイズにかかわらず回転をディスエーブルにすることができる。幾つかの事例においては、フリップさせることは、ブロックサイズにかかわらずイントラＢＣ予測残差ブロックに関してもディスエーブルにすることができる。その他の事例においては、フリップさせることは、非可逆コーディングモード又は可逆コーディングモードにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロック及びインター予測残差ブロックの両方に対して適用することができる（すなわち、残差ブロックサイズがスレショルドのブロックサイズ以下である）。他の事例においては、フリップさせることは、変換スキップを用いる非可逆コーディングモードにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロックのみに対して、及び、可逆コーディングモードにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロック及びインター予測残差ブロックの両方に対して適用することができる。
【０１６１】
［０１７４］他の例においては、変換スキップモードは、最大ブロックサイズまでのサイズ、例えば、４×４又は８×８、を有する非可逆コーディングモードにおける残差ブロックのみに適用されるように制限することができる。非可逆コーディングモードにおいて変換をスキップすることが許容される最大ブロックサイズは、残差ブロックに関連するＳＰＳ及びＰＰＳのうちの１つにおいて示すことができる。この場合は、非可逆コーディングモード及び可逆コーディングモードの両方において残差ブロックの残差データをフリップさせるためのスレショルドのサイズは、非可逆コーディングモードにおいて変換をスキップすることができる最大ブロックサイズ以下、例えば、４×４又は８×８、である。非可逆コーディングモードにおいて変換をスキップすることができる最大ブロックサイズ以下になるようにスレショルドのブロックサイズを設定することは、可逆コーディングモード事例及び非可逆コーディングモード事例の両方に関してフリップを行うことができるブロックサイズを整合させる。
【０１６２】
［０１７５］幾つかの事例においては、フリップさせることは、非可逆コーディングモード又は可逆コーディングモードのいずれかにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロックにしか適用することができず、インター予測残差ブロックに関してはブロックサイズにかかわらず回転をディスエーブルにすることができる。幾つかの事例においては、イントラＢＣ予測残差ブロックに関してもブロックサイズにかかわらずフリップさせることをディスエーブルにすることができる。その他の事例においては、フリップさせることは、非可逆コーディングモード又は可逆コーディングモードのいずれかにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロック及びインター予測残差ブロックの両方に対して適用することができる。他の事例においては、フリップさせることは、変換スキップを用いる非可逆コーディングモードにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロックのみに対して、及び、可逆コーディングモードにおいてスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロック及びインター予測残差ブロックの両方に対して適用することができる。
【０１６３】
［０１７６］図１１Ａ及び１１Ｂは、残差差分パルス符号変調（ＲＤＰＣＭ）を用いてコーディングされた映像ブロック２００及び２０２をそれぞれ例示した概念図である。一例においては、映像コーディング規格によって、水平方向又は垂直方向において残差差分パルス符号変調（ＲＤＰＣＭ）を用いる変換スキップイントラ予測ブロック及び変換スキップインター予測ブロックをサポートすることができる。ＲＤＰＣＭに関する基本的な考え方は、垂直モードにおいて現在のピクセルを予測するために上行（ｕｐｐｅｒ  ｒｏｗ）のピクセルを使用することによって残差ブロックの残差データを予測し、水平モードにおいて現在のピクセルを予測するために左列（ｌｅｆｔ  ｃｏｌｕｍｎ）のピクセルを使用するためにＤＰＣＭ技法を適用することである。残差ブロック２００及び２０２の各々は、サイズＭ（行）×Ｎ（列）であり、残差データピクセルを含み、ここで、０≦ｉ≦（Ｍ−１）及び０≦ｊ≦（Ｎ−１）である。
【０１６４】
［０１７７］ＲＤＰＣＭを用いて非可逆コーディングモードにおいて残差ブロックを復号するときには、図３からの映像復号器３０では次の動作順序に従うことができる。すなわち、位置再設定ユニット９４による回転又はフリップ、逆量子化ユニット８６による逆量子化、逆変換スキップ、及び逆ＲＤＰＣＭ。ＲＤＰＣＭを用いて非可逆コーディングモードにおいて残差ブロックを符号化するときには、図２からの映像復号器２０では次の動作順序に従うことができる。すなわち、ＲＤＰＣＭ、変換スキップ、量子化ユニット５４による量子化、及び位置再設定ユニット６６による回転又はフリップ。ＲＤＰＣＭを用いて可逆コーディングモードにおいて残差ブロックを復号するときには、図３からの映像復号器３０では次の動作順序に従うことができる。すなわち、位置再設定ユニット９４による回転又はフリップ、逆量子化及び逆変換の迂回、及び逆ＲＤＰＣＭ。ＲＤＰＣＭを用いて可逆コーディングモードにおいて残差ブロックを符号化するときには、図２からの映像復号器２０では次の動作順序に従うことができる。すなわち、ＲＤＰＣＭ、変換及び量子化の迂回、及び位置再設定ユニット６６による回転又はフリップ。
【０１６５】
［０１７８］図１１Ａは、残差ブロック２００に適用された垂直インターＲＤＰＣＭモードを例示する。垂直インターＲＤＰＣＭモードでは、残差ブロック２００の第１の行２０１内の残差データは不変であり（すなわち、あらゆるその他の行から予測されない）、他方、残差ブロック２００の残差データの以後の行は、上方の行から予測される。垂直インターＲＤＰＣＭ後は、第１の行２０１内の残差データは、残差ブロック２００内の残差データのその他の行と比較してより多い又はより高いエネルギーを有する傾向がある。垂直インターＲＤＰＣＭ後に残差ブロック２００が例えば１８０度だけ回転される場合は、残差ブロック２００の残差データの最下部の行は、残差データのその他の行よりも多い又は高いエネルギー／大きさを有する傾向がある。
【０１６６】
［０１７９］図１１Ｂは、残差ブロック２０２に適用された水平インターＲＤＰＣＭモードを例示する。水平インターＲＤＰＣＭモードでは、残差ブロック２０２の左端の列２０３内の残差データは不変であり（すなわち、あらゆるその他の列から予測されない）、他方、残差ブロック２０２の残差データの以後の列は、左の列から予測される。水平インターＲＤＰＣＭ後は、左端の列２０３内の残差データは、残差ブロック２０２内の残差データのその他の列と比較してより多い又はより高いエネルギーを有する傾向がある。水平インターＲＤＰＣＭ後に残差ブロック２０２が例えば１８０度だけ回転される場合は、残差ブロック２０２の残差データの右端の行は、残差データのその他の行よりも多い又は高いエネルギー／大きさを有する傾向がある。
【０１６７】
［０１８０］インターＲＤＰＣＭに関して、予測方向（ＲＤＰＣＭなし、水平、垂直）は、明示で映像復号器３０にシグナリングすることができる。例えば、映像符号器２０は、映像データの特定のブロック（又は複数のブロック）に関してＲＤＰＣＭを示す１つ以上の構文要素を符号化されたビットストリームにおいて含むことができる。映像復号器３０は、それらの１つ以上の構成要素を受信し、ＲＤＰＣＭを相互に行うことができる。
【０１６８】
［０１８１］上述されるように、ＨＥＶＣでは、エントロピーコーディングは、変換コーディング用に設計されている。典型的には、より小さい周波数変換係数がより高いエネルギーを有する。変換係数は、映像ブロックの右下から左上に向かって走査されてエントロピーコーディングされる。従って、映像符号器又は映像復号器は、映像ブロックの右下隅での走査における最初の係数が走査順序で後の係数よりも小さいエネルギーを有すると予想する。しかしながら、インターＲＤＰＣＭブロックが回転された後は、映像ブロックの右下隅での走査における最初の係数は、走査順序で後の係数よりも多くの又は高いエネルギーを有する傾向があり、その結果、コーディング性能が悪化することになる（すなわち、映像コーディングのためにより多くのビットが必要になる）。
【０１６９】
［０１８２］本開示の技法は、インターＲＤＰＣＭ残差ブロックに関する残差データの位置再設定を選択的にディスエーブルにする（すなわち、適用しない）ことを含む。より具体的には、水平方向又は垂直方向におけるＲＤＰＣＭを用いたインター予測モード及びイントラ予測モードのいずれの残差ブロックに関しても、その残差ブロックは、残差ブロックの残差データをコーディングする前に回転させることはできない。幾つかの例においては、幾つかの予測モードに関して、残差データをコーディングする前に回転をディスエーブルにする、すなわち、残差ブロックを回転させない技法は、変換スキップを用いた非可逆コーディングモードのみ、可逆コーディングモードのみ、又は、変換スキップを用いた非可逆コーディングモード及び可逆コーディングモードの両方、に対して適用することができる。
【０１７０】
［０１８３］図１２は、イントラブロックコピーイング（イントラＢＣ）予測モードを用いて同じピクチャ２１０内の前にコーディングされたブロックに基づいて予測中である現在のブロック２１２を含む現在のピクチャ２１０を示した概念図である。一例においては、映像コーディング規格は、予測モードのうちの１つとしてイントラＢＣ予測モードを含むことができる。幾つかの用途、例えば、リモートデスクトップ、リモートゲーム、ワイヤレスディスプレイ、自動車インフォテインメント、クラウドコンピューティング、等、における映像コンテンツは、典型的には、ナチュラルコンテンツ（ｎａｔｕｒａｌ  ｃｏｎｔｅｎｔ）及びスクリーンコンテンツの組み合わせを含み、ここで、スクリーンコンテンツは、例えば、テキスト及び人工的グラフィックスを含むことができる。スクリーンコンテンツ領域では、繰り返されたパターン（例えば、キャラクタ、アイコン、シンボル、等）がしばしば存在する。イントラＢＣ予測モードは、この種の冗長性を除去してスクリーンコンテンツに関するイントラ予測コーディング効率を向上させる専用技法である。
【０１７１】
［０１８４］図１２において例示されるように、イントラＢＣ予測モードを用いる現在の映像ブロック２１２の場合は、現在のピクチャ２１０の再構築された領域２１３内の前にコーディングされた映像ブロック２１４から予測信号が入手される。オフセット又は変位ベクトル（すなわち、動きベクトル）２１６は、現在の映像ブロック２１２において予測されるべきサンプルの位置から変位された前にコーディングされた映像ブロック２１４内での予測信号の位置を示す。一例として、映像符号器２０は、動きベクトル２１６を、現在の映像ブロック２１２と映像ブロック２１４の予測信号との間の差分として残差信号とともに符号化することができる。次に、映像復号器３０は、動きベクトル２１６及び映像符号器２０から受信された残差信号に基づいて現在の映像ブロック２１２を符号化することができる。
【０１７２】
［０１８５］幾つかの例においては、イントラＢＣ予測モードを用いてコーディングされるブロックに対してインターＲＤＰＣＭを適用することができる。インターＲＤＰＣＭの場合と同じように、映像符号器２０又は映像復号器３０は、ＲＤＰＣＭ−オフ、ＲＤＰＣＭ−水平及びＲＤＰＣＭ−垂直を含む３つのモードを用いてイントラＢＣ予測ブロックから残差データを予測することができる。この拡張は、可逆事例及び非可逆事例の両方に関して適用することができる。
【０１７３】
［０１８６］本開示の技法は、イントラＢＣ予測モードにおいて残差ブロックの残差データの位置再設定を選択的にディスエーブルにする（すなわち、適用しない）ことを含む。さらに、水平方向又は垂直方向においてＲＤＰＣＭを用いるインター予測モード、イントラ予測モード又はイントラＢＣ予測モードのうちのいずれかにおける残差ブロックに関しては、その残差ブロックは、残差ブロックの残差データをコーディングする前に回転させることはできない。
【０１７４】
［０１８７］幾つかの例においては、幾つかの予測モードに関する位置再設定をディスエーブルにする技法は、変換スキップを用いた非可逆コーディングのみ、可逆コーディングのみ、又は、変換スキップを用いた非可逆コーディング及び可逆コーディングの両方に対して適用することができる。他の例においては、位置再設定は、すべてのインター予測モードブロック及びすべてのイントラＢＣ予測モードブロックに関してディスエーブルにする（すなわち、適用しない）ことができる。この判定基準は、位置再設定を適用することができるかどうかを決定するためにコーディングが変換スキップを用いた非可逆又は可逆のいずれであるかに関するその他の判定基準と組み合わせることができる。
【０１７５】
［０１８８］本開示は、概して、変換がスキップ又は迂回される可逆コーディングモード又は非可逆コーディングモードのいずれかにおいて予測残差ブロックの残差データをコーディングするための技法について説明する。本開示の技法により、映像符号器２０又は映像復号器３０は、残差ブロックの予測モード、例えば、イントラ予測モード、インター予測モード、又はイントラブロックコピーイング予測モード、及び残差ブロックのサイズに基づいて残差ブロックの残差データの位置を再設定するべきかどうかを決定する。幾つかの例においては、それらの技法は、インター予測モード及びイントラＢＣ予測モードにおけるすべての残差ブロックに関する残差データの位置再設定をディスエーブルにする。その他の例においては、上述されるように、それらの技法は、残差ブロックが非可逆コーディングモード及び可逆コーディングモードの両方に関してスレショルドのサイズ以下であるブロックサイズを有するときにイントラ予測モードにおいて残差ブロックの位置を再設定することを決定する。
【０１７６】
［１８９］図１３は、変換が適用されない残差ブロックの予測モード及び残差ブロックのサイズに基づいてその残差ブロックの残差データの位置を再設定すべきかどうかを決定する動作例を示したフローチャートである。図１３において例示される動作は、図２からの映像符号器２０の位置再設定ユニット６６に関して説明される。その他の例においては、図３からの映像復号器３０の位置再設定ユニット９４によっても同じ動作を行うことができる。例示される動作は、非可逆コーディングモード及び可逆コーディングモードの両方におけるすべての残差ブロックに適用することができる。
【０１７７】
［０１９０］上述される技法は、残差ブロックに変換が適用されないときに残差ブロックを決定された回転値だけ回転させること又は残差ブロックの対角線に沿って残差データをフリップさせることを含む。上記の技法は、変換スキップモードにおける非可逆コーディングモード又は変換プロセス及び量子化プロセスの両方が迂回される可逆コーディングモードのいずれかを用いてコーディングされるインター予測残差ブロック及びイントラ予測残差ブロックの両方に関して残差データの位置を再設定することについて説明する。
【０１７８】
［０１９１］映像コーディング規格例、例えば、ＨＥＶＣＶのレンジ拡張、により、非可逆コーディングモードにおいて、変換スキップモードは、あらゆるサイズの残差ブロックに対して適用することができる。可逆コーディングモードにおいては、すべての残差ブロックに関して変換手順及び量子化手順が迂回される。従って、非可逆コーディングモード及び可逆コーディングモードの両方において、すべてのブロックサイズに関して変換をスキップ又は迂回することができる。位置再設定、例えば、回転又はフリップ、は、イントラ予測モード及びインター予測モードの両方においてすべての残差ブロックサイズに関して行うことができる。幾つかの例においては、非可逆コーディングモードでは、変換スキップモードは、最大ブロックサイズまでのサイズを有する残差ブロック、例えば、４×４又は８×８、のみに適用されるように制限することができる。非可逆コーディングモードにおいて変換がスキップされることが許容される最大ブロックサイズは、残差ブロックに関連するＳＰＳ及びＰＰＳのうちの１つにおいて示すことができる。
【０１７９】
［０１９２］図１３において例示される動作では、位置再設定ユニット６６は、残差ブロックに変換が適用されない、すなわち、変換スキップモードにおいて可逆コーディングモード又は非可逆コーディングモードを用いて残差ブロックがコーディングされる、ときに残差ブロックを受信する。本開示の技法は、非可逆コーディングモード及び可逆コーディングモードの両方において位置再設定を行うことができる残差ブロックのサイズを制限することができる。
【０１８０】
［０１９３］この場合は、残差ブロックの位置を再設定すべきかどうかを決定するために、位置再設定ユニット６６は、変換が適用されない残差ブロックの予測モードを決定する（２２０）。残差ブロックがインター予測モードである場合は（２２２の「はい」分岐）、位置再設定ユニット６６は、位置再設定プロセスをディスエーブルにし、残差ブロックの残差データを回転もフリップもさせない（２３２）。残差ブロックがインター予測モードでなく（２２２の「いいえ」分岐）、残差ブロックがイントラＢＣ予測モード（２２４の「はい」分岐）である場合は、位置再設定ユニット６６は、位置再設定プロセスをディスエーブルにし、残差ブロックの残差データを回転もフリップもさせない（２３２）。
【０１８１】
［０１９４］残差ブロックがイントラＢＣ予測モードでなく（２２４の「いいえ」分岐）、残差ブロックがイントラ予測モードである（２２６の「はい」分岐）場合は、位置再設定ユニット６６は、可逆コーディングモードにおいて残差ブロックのサイズを決定する（２２８）。残差ブロックのサイズがスレショルドのブロックサイズ以下である場合は（２３０の「はい」分岐）、位置再設定ユニット６６は、残差ブロックの位置を再設定する、すなわち、回転又はフリップさせるべきかどうかを決定する。残差ブロックのサイズがスレショルドサイズよりも大きい場合は（２３０の「いいえ」分岐）、位置再設定ユニット６６は、位置再設定プロセスをディスエーブルにし、残差ブロックの残差データを回転もフリップもさせない（２３２）。残差ブロックがイントラ予測モードではない場合は（２２６の「いいえ」分岐）、位置再設定ユニット６６は、位置再設定プロセスをディスエーブルにし、残差ブロックの残差データを回転もフリップもさせない（２３２）。その他の例において、いずれかの予測モードにおける残差ブロックがＲＤＰＣＭを使用する場合は、位置再設定ユニット６６は、位置再設定プロセスをディスエーブルにし、残差ブロックの残差データを回転もフリップもさせない。
【０１８２】
［０１９５］一例においては、残差ブロックの位置再設定を行うべきかどうかを決定するための動作２３０で使用されるスレショルドのサイズは、８×８である。他の例においては、スレショルドのサイズは、４×４に等しい。さらなる例においては、変換スキップモードは、最大ブロックサイズまでのサイズ、例えば、４×４又は８×８、を有する非可逆コーディングモードにおける残差ブロックのみに対して適用するように制限することができる。非可逆コーディングモードにおいて変換をスキップすることが許容される最大ブロックサイズは、残差ブロックに関連するＳＰＳ及びＰＰＳのうちの１つにおいて示すことができる。この場合は、非可逆コーディングモード及び可逆コーディングモードの両方において残差ブロックの位置の再設定を行うべきかどうかを決定するためのスレショルドのサイズは、非可逆コーディングモードにおいて変換をスキップすることができる最大ブロックサイズ、以下である、例えば、４×４又は８×８。非可逆コーディングモードにおいて変換をスキップすることができる最大ブロックサイズ以下にスレショルドのブロックサイズを設定することは、可逆コーディングモード事例及び非可逆コーディングモード事例の両方に関して回転を行うことができるブロックサイズを整合させる。
【０１８３】
［０１９６］回転プロセスの場合は、位置再設定の決定は、上において図５乃至８に関してより詳細に説明される動作のうちの１つによって行うことができる。幾つかの例においては、残差ブロックがイントラ予測残差ブロックである場合は、残差ブロックのブロックサイズがスレショルドブロックサイズ判定基準を満たすときに常に回転を適用することができる。幾つかの事例においては、残差ブロックの回転は、１８０度に制限することができる。その他の事例においては、残差ブロックがスレショルドブロックサイズ判定基準を満たすイントラ予測残差ブロックであるときには、残差ブロックの回転は、上述される技法により０度、９０度、１８０度又は２７０度のうちの１つに決定することができる。
【０１８４】
［０１９７］１つ以上の例においては、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらのあらゆる組み合わせにおいて実装することができる。ソフトウェアにおいて実装される場合は、それらの機能は、コンピュータによって読み取り可能な媒体において１つ以上の命令又はコードとして格納又は送信すること及びハードウェアに基づく処理ユニットによって実行することができる。コンピュータによって読み取り可能な媒体は、コンピュータによって読み取り可能な記憶媒体を含むことができ、それは、有形な媒体、例えば、データ記憶媒体、又は、例えば、通信プロトコルにより、１つの場所から他へのコンピュータプログラムの転送を容易にするあらゆる媒体を含む通信媒体、に対応する。このように、コンピュータによって読み取り可能な媒体は、概して、（１）非一時的である有形なコンピュータによって読み取り可能な記憶媒体又は（２）通信媒体、例えば、信号又は搬送波、に対応することができる。データ記憶媒体は、本開示において説明される技法の実装のために命令、コード及び／又はデータ構造を取り出すために１つ以上のコンピュータ又は１つ以上のプロセッサによってアクセスすることができるあらゆる利用可能な媒体であることができる。コンピュータプログラム製品は、コンピュータによって読み取り可能な媒体を含むことができる。
【０１８５】
［０１９８］一例により、及び制限することなしに、該コンピュータによって読み取り可能な記憶媒体は、希望されるプログラムコードを命令又はデータ構造の形態で格納するために使用することができ及びコンピュータによってアクセス可能であるＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又はその他の光学ディスク記憶装置、磁気ディスク記憶装置、又はその他の磁気記憶デバイス、フラッシュメモリ、又はその他のいずれかの媒体を備えることができる。さらに、どのような接続も、コンピュータによって読み取り可能な媒体であると適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、より対線、デジタル加入者ライン（ＤＳＬ）、又は無線技術、例えば、赤外線、無線、及びマイクロ波、を用いてウェブサイト、サーバ、又はその他の遠隔ソースから送信される場合は、該同軸ケーブル、光ファイバケーブル、より対線、ＤＳＬ、又は無線技術、例えば赤外線、無線、及びマイクロ波、は、媒体の定義の中に含まれる。しかしながら、コンピュータによって読み取り可能な記憶媒体およびデータ記憶媒体は、コネクション、搬送波、信号、又はその他の遷移媒体は含まず、代わりに、非一時的な、有形の記憶媒体を対象とすることが理解されるべきである。ここにおいて用いられるときのディスク（ｄｉｓｋ及びｄｉｓｃ）は、コンパクトディスク（ＣＤ）（ｄｉｓｃ）と、レーザディスク（ｄｉｓｃ）と、光ディスク（ｄｉｓｃ）と、デジタルバーサタイルディスク（ＤＶＤ）（ｄｉｓｃ）と、フロッピー（登録商標）ディスク（ｄｉｓｋ）と、Ｂｌｕ−ｒａｙ（登録商標）ディスク（ｄｉｓｃ）と、を含み、ここで、ｄｉｓｋは、通常は磁気的にデータを複製し、ｄｉｓｃは、レーザを用いて光学的にデータを複製する。上記の組み合わせも、コンピュータによって読み取り可能な媒体の適用範囲内に含められるべきである。
【０１８６】
［０１９９］命令は、１つ以上のプロセッサ、例えば、１つ以上のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、又はその他の同等の集積又はディスクリート論理回路によって実行することができる。従って、ここにおいて用いられる場合の用語“プロセッサ”は、上記の構造又はここにおいて説明される技法の実装に適するあらゆるその他の構造のうちのいずれかを意味することができる。さらに、幾つかの態様では、ここにおいて説明される機能は、符号化および復号のために構成された専用のハードウェア及び／又はソフトウェアモジュール内において提供されること、又は組み合わされたコーデック内に組み入れることができる。さらに、技法は、１つ以上の回路又は論理素子内に完全に実装することが可能である。
【０１８７】
［０２００］本開示の技法は、無線ハンドセット、集積回路（ＩＣ）又は一組のＩＣ（例えば、チップセット）を含む非常に様々なデバイス又は装置内に実装することができる。本開示では、開示される技法を実施するように構成されたデバイスの機能上の態様を強調するために様々なコンポーネント、モジュール、又はユニットが説明されるが、異なるハードウェアユニットによる実現は必ずしも要求しない。むしろ、上述されるように、様々なユニットは、適切なソフトウェア及び／又はファームウェアと関係させて、コーデックハードウェアユニット内において結合させること又は上述されるように１つ以上のプロセッサを含む相互運用的なハードウェアユニットの集合によって提供することができる。
【０１８８】
［０２０１］様々な例が説明されている。これらの及びその他の例は、以下の請求項の範囲内である。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］  映像データを復号する方法であって、
映像データの残差ブロックに変換が適用されないことを示す１つ以上の構文要素に基づいて非可逆コーディングモード又は可逆コーディングモードのいずれかにおいて前記残差映像ブロックを復号することと、
前記残差ブロックの予測モード及び残差ブロックのサイズに基づいて、前記残差ブロックの残差データから映像ブロックを再構築する前に前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することであって、前記残差データの位置を再設定することは、前記残差ブロックの前記残差データを回転させること又はフリップさせることのうちの１つを備えることと、を備える、方法。
［Ｃ２］  前記残差ブロックの前記予測モードがイントラ予測モードであるときに、前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することは、
前記残差ブロックの前記サイズを決定することと、
前記残差ブロックの前記サイズがスレショルドのサイズ以下であることに基づいて、前記残差ブロックの前記残差データの位置を再設定することを決定することと、
前記残差ブロックの前記サイズが前記スレショルドのサイズよりも大きいことに基づいて、前記残差ブロックの前記残差データの位置を再設定することをディスエーブルにすることと、を備えるＣ１に記載の方法。
［Ｃ３］  前記スレショルドのサイズは、８×８ブロック又は４×４ブロックのうちの１つに等しいＣ２に記載の方法。
［Ｃ４］  前記スレショルドサイズは、前記非可逆コーディングモードにおいて変換をスキップすることが許容される最大ブロックサイズ以下であり、前記非可逆コーディングモードにおいて前記変換をスキップすることが許容される前記最大ブロックサイズは、前記映像データに関連するシーケンスパラメータセット（ＳＰＳ）及びピクチャパラメータセット（ＰＰＳ）のうちの１つにおいて示されるＣ２に記載の方法。
［Ｃ５］  前記残差ブロックの前記予測モードがインター予測モードであるときに、前記残差ブロックの前記残差データの位置再設定をディスエーブルにすることをさらに備えるＣ１に記載の方法。
［Ｃ６］  前記残差ブロックの前記予測モードがイントラブロックコピーイング予測モードであるときに、前記残差ブロックの前記残差データの位置再設定をディスエーブルにすることをさらに備えるＣ１に記載の方法。
［Ｃ７］  前記残差ブロックの前記予測モードが、残差ＤＰＣＭを使用するイントラ予測モード又は残差ＤＰＣＭを使用するイントラブロックコピーイング予測モードのうちの１つであるときに、前記残差ブロックの前記残差データの位置再設定をディスエーブルにすることをさらに備えるＣ１に記載の方法。
［Ｃ８］  前記残差ブロックの前記残差データの位置を再設定することの決定に基づき、平均よりも高いエネルギーを有する前記残差データの一部分を前記残差ブロックの左上隅に配置した前記残差ブロックの前記残差データの符号化中に行われた回転又はフリップのうちの１つを逆転させるために前記残差ブロックの前記残差データの位置を再設定することをさらに備えるＣ１に記載の方法。
［Ｃ９］  前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することは、前記残差ブロックを回転させることを決定することを備え、前記残差ブロックを予め決定された回転値だけ回転させることをさらに備えるＣ１に記載の方法。
［Ｃ１０］  前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することは、前記残差ブロックに関する回転値を決定することを備え、前記残差ブロックを前記決定された回転値だけ回転させることをさらに備えるＣ１に記載の方法。
［Ｃ１１］  前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することは、前記残差ブロックの前記残差データをフリップさせることを決定することを備え、前記残差ブロックの主対角線又は副対角線のうちの１つに沿って前記残差ブロックの前記残差データをフリップさせることをさらに備えるＣ１に記載の方法。
［Ｃ１２］  映像データを符号化する方法であって、
非可逆コーディングモード又は可逆コーディングモードのいずれかにおいて映像データの残差ブロックを符号化することであって、残差映像ブロックには変換が適用されないことと、
前記残差ブロックの予測モード及び前記残差ブロックのサイズに基づいて、前記残差ブロックの残差データを符号化する前に前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することであって、前記残差データの位置を再設定することは、前記残差ブロックの前記残差データを回転させること又はフリップさせることのうちの１つを備えることと、を備える、方法。
［Ｃ１３］  前記残差ブロックの前記予測モードがイントラ予測モードであるときに、前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することは、
前記残差ブロックの前記サイズを決定することと、
前記残差ブロックの前記サイズがスレショルドのサイズ以下であることに基づいて、前記残差ブロックの前記残差データの位置を再設定することを決定することと、
前記残差ブロックの前記サイズが前記スレショルドのサイズよりも大きいことに基づいて、前記残差ブロックの前記残差データの位置を再設定することをディスエーブルにすることと、を備えるＣ１２に記載の方法。
［Ｃ１４］  前記スレショルドのサイズは、８×８ブロック又は４×４ブロックのうちの１つに等しいＣ１３に記載の方法。
［Ｃ１５］  前記スレショルドのサイズは、前記非可逆コーディングモードにおいて変換をスキップすることが許容されるブロックサイズ以下であり、前記非可逆コーディングモードにおいて前記変換をスキップすることが許容される前記最大ブロックサイズを前記映像データに関連するシーケンスパラメータセット（ＳＰＳ）及びピクチャパラメータセット（ＰＰＳ）のうちの１つにおいて示すことをさらに備えるＣ１３に記載の方法。
［Ｃ１６］  前記残差ブロックの前記予測モードがインター予測モードであるときに、前記残差ブロックの前記残差データの位置再設定をディスエーブルにすることをさらに備えるＣ１２に記載の方法。
［Ｃ１７］  前記残差ブロックの前記予測モードがイントラブロックコピーイング予測モードであるときに、前記残差ブロックの前記残差データの位置再設定をディスエーブルにすることをさらに備えるＣ１２に記載の方法。
［Ｃ１８］  前記残差ブロックの前記予測モードが、残差ＤＰＣＭを使用するイントラ予測モード又は残差ＤＰＣＭを使用するイントラブロックコピーイング予測モードのうちの１つであるときに、前記残差ブロックの前記残差データの位置再設定をディスエーブルにすることをさらに備えるＣ１２に記載の方法。
［Ｃ１９］  前記残差ブロックの前記残差データの位置を再設定することの決定に基づき、平均よりも高いエネルギーを有する前記残差データの一部分を前記残差ブロックの左上隅に配置するために前記残差ブロックの前記残差データを回転させること又はフリップさせることのうちの１つをさらに備えるＣ１２に記載の方法。
［Ｃ２０］  前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することは、前記残差ブロックを回転させることを決定することを備え、前記残差ブロックを予め決定された回転値だけ回転させることをさらに備えるＣ１２に記載の方法。
［Ｃ２１］  前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することは、前記残差ブロックに関する回転値を決定することを備え、前記残差ブロックを前記決定された回転値だけ回転させることをさらに備えるＣ１２に記載の方法。
［Ｃ２２］  前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することは、前記残差ブロックの前記残差データをフリップさせることを決定することを備え、前記残差ブロックの主対角線又は副対角線のうちの１つに沿って前記残差ブロックの前記残差データをフリップさせることをさらに備えるＣ１２に記載の方法。
［Ｃ２３］  映像データをコーディングするための映像コーディングデバイスであって、
映像データを格納するように構成されたメモリと、
非可逆コーディングモード又は可逆コーディングモードのいずれかにおいて映像ブロックの残差ブロックをコーディングするように構成され、ここにおいて、前記残差映像ブロックには変換が適用されず、及び、前記残差ブロックの予測モード及び前記残差ブロックのサイズに基づいて、前記残差ブロックの残差データをコーディングする前に前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定するように構成され、ここにおいて、前記残差データの位置を再設定することは、前記残差ブロックの前記残差データを回転させること又はフリップさせることのうちの１つを備える、１つ以上のプロセッサと、を備える、映像コーディングデバイス。
［Ｃ２４］  前記残差ブロックの前記予測モードがイントラ予測モードであるときに、前記プロセッサは、
前記残差ブロックの前記サイズを決定し、
前記残差ブロックの前記サイズがスレショルドのサイズ以下であることに基づいて、前記残差ブロックの前記残差データの位置を再設定することを決定し、及び
前記残差ブロックの前記サイズが前記スレショルドのサイズよりも大きいことに基づいて、前記残差ブロックの前記残差データの位置を再設定することをディスエーブルにするように構成されるＣ２３に記載のデバイス。
［Ｃ２５］  前記スレショルドのサイズは、非可逆コーディングモードにおいて変換をスキップすることが許容される最大ブロックサイズ以下であり、前記非可逆コーディングモードにおいて前記変換をスキップすることが許容される前記最大ブロックサイズは、前記映像データに関連するシーケンスパラメータセット（ＳＰＳ）及びピクチャパラメータセット（ＰＰＳ）のうちの１つにおいて示されるＣ２４に記載のデバイス。
［Ｃ２６］  前記残差ブロックの前記予測モードがインター予測モード又はイントラブロックコピーイング予測モードのうちの１つであるときに、前記残差ブロックの前記残差データの位置再設定をディスエーブルにするＣ２３に記載のデバイス。
［Ｃ２７］  前記残差ブロックの前記予測モードが、残差ＤＰＣＭを使用するイントラ予測モード又は残差ＤＰＣＭを使用するイントラブロックコピーイング予測モードのうちの１つであるときに、前記残差ブロックの前記残差データの位置再設定をディスエーブルにするＣ２３に記載のデバイス。
［Ｃ２８］  前記映像コーディングデバイスは、映像データを符号化するための映像符号化デバイスを備え、前記残差ブロックの前記残差データの位置を再設定することの決定に基づき、前記プロセッサは、平均よりも高いエネルギーを有する前記残差データの一部分を前記残差ブロックの左上隅に配置するために前記残差ブロックの前記残差データを回転させること又はフリップさせることのうちの１つを行うように構成されるＣ２３に記載のデバイス。
［Ｃ２９］  前記映像コーディングデバイスは、映像データを復号するための映像復号デバイスを備え、前記残差ブロックの残差データの位置を再設定することの決定に基づき、前記プロセッサは、平均よりも高いエネルギーを有する前記残差データの一部分を前記残差ブロックの左上隅に配置した前記残差ブロックの前記残差データの符号化中に行われた回転又はフリップのうちの１つを逆転させるために前記残差ブロックの前記残差データの位置を再設定するように構成されるＣ２３に記載のデバイス。
［Ｃ３０］  映像データをコーディングするための命令を備えるコンピュータによって読み取り可能な媒体であって、前記命令は、実行されたときに、
非可逆コーディングモード又は可逆コーディングモードのいずれかにおいて映像データの残差ブロックをコーディングすること、及び
前記残差ブロックの予測モード及び前記残差ブロックのサイズに基づいて、前記残差ブロックの残差データをコーディングする前に前記残差ブロックの前記残差データの位置を再設定すべきかどうかを決定することを１つ以上のプログラマブルプロセッサに行わせ、前記残差映像ブロックには変換が適用されず、及び、前記残差データの位置を再設定することは、前記残差ブロックの前記残差データを回転させること又はフリップさせることのうちの１つを備える、コンピュータによって読み取り可能な媒体。
【図１】
0006285014.tif 000004
【図２】
0006285014.tif 000005
【図３】
0006285014.tif 000006
【図４】
0006285014.tif 000007
【図５】
0006285014.tif 000008
【図６】
0006285014.tif 000009
【図７】
0006285014.tif 000010
【図８】
0006285014.tif 000011
【図９】
0006285014.tif 000012
【図１０】
0006285014.tif 000013
【図１１Ａ】
0006285014.tif 000014
【図１１Ｂ】
0006285014.tif 000015
【図１２】
0006285014.tif 000016
【図１３】
0006285014.tif 000017