【文献】
Krit Panusopone et al.,Proposal on RQT root location,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,2011年 3月,JCTVC-E364-r2,pp.1-10,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/5_Geneva/wg11/JCTVC-E364-v3.zip
【文献】
Yuan Yuan et al.,Asymmetric motion partition with OBMC and Non-Square TU,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,2011年 3月,JCTVC-E376,pp.1-6,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/5_Geneva/wg11/JCTVC-E376-v4.zipのうちJCTVC-E376_r3.doc
(58)【調査した分野】(Int.Cl.,DB名)
前記変換ユニットが子変換ユニットを備え、前記方法が、前記子変換ユニットに対する親変換ユニットが分割されるかどうかを示す情報をコーディングすることをさらに備え、前記子変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることが、前記子変換ユニットが正方形か非正方形かを示す前記情報を、前記親変換ユニットが分割される場合にのみコーディングすることを備える、請求項2に記載の方法。
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることが、前記変換ユニットが対応する前記RQTデータ構造のレベルを示す情報をコーディングすることを備える、請求項1に記載の方法。
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることが、前記変換ユニットがクロミナンス成分に対応するか輝度成分に対応するかに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることを備える、請求項1に記載の方法。
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることが、前記変換ユニットに対応する予測ユニットが正方形か非正方形かに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることを備える、請求項1に記載の方法。
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることが、前記変換ユニットに対応する予測ユニットが正方形か非正方形かを示す情報をコーディングすることを備える、請求項1に記載の方法。
前記変換ユニットが非正方形である場合、前記変換ユニットの短い方の端から開始する走査パターンを適用して、前記変換ユニットの係数を変換することをさらに備える、請求項1に記載の方法。
前記変換ユニットが正方形か非正方形かに少なくとも一部基づいて前記変換ユニットのデータをコーディングすることが、前記変換ユニットが非正方形である場合、前記変換ユニットの短い方の端の位置に基づいて前記データをコーディングするためのコンテキストを選択することを備える、請求項1に記載の方法。
前記ビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることが、前記ビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報を復号することを備え、
前記変換ユニットの前記データをコーディングすることが、
前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの量子化された変換係数を復号することと、
前記量子化された変換係数を逆量子化することと、
前記変換係数を逆変換して、前記変換ユニットに対応するコーディングユニットの少なくとも一部分に対する残差データを生成することと
を備える、請求項1に記載の方法。
正方形変換ユニットを使用して前記コーディングユニットをコーディングした結果と、非正方形変換ユニットを使用して前記コーディングユニットをコーディングした結果とを比較することと、
前記比較に基づいて、正方形変換ユニットと非正方形変換ユニットのいずれかを選択することと
をさらに備える、請求項12に記載の方法。
ビデオコーダを備える、ビデオデータをコーディングするためのデバイスであって、前記ビデオコーダが、4分木データ構造を表す情報をコーディングすることであって、前記4分木データ構造が前記ビデオデータのコーディングユニットのサイズを定義する、コーディングすることと、残差4分木変換(RQT)データ構造を表す情報をコーディングすることであって、前記RQTデータ構造を表す前記情報が、前記コーディングユニットの変換ユニットが正方形か非正方形かを示す情報を含む、コーディングすることと、前記変換ユニットが正方形か非正方形かに少なくとも一部基づいて、単一の正方形変換ではなく、複数の非正方形変換を適用し、非正方形ブロックの各々を個別に変換する、前記変換ユニットの量子化パラメータを表すデータをコーディングすることとを行うように構成される、デバイス。
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするために、前記ビデオコーダが、変換選択フラグをコーディングするように構成される、請求項14に記載のデバイス。
前記変換ユニットが子変換ユニットを備え、前記ビデオコーダがさらに、前記子変換ユニットに対する親変換ユニットが分割されるかどうかを示す情報をコーディングするように構成され、前記ビデオコーダが、前記子変換ユニットが正方形か非正方形かを示す前記情報を、前記親変換ユニットが分割される場合にのみコーディングするように構成される、請求項15に記載のデバイス。
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするために、前記ビデオコーダが、前記変換ユニットが対応する前記RQTデータ構造のレベルを示す情報をコーディングするように構成される、請求項14に記載のデバイス。
前記ビデオコーダが、前記変換ユニットがクロミナンス成分に対応するか輝度成分に対応するかに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするように構成される、請求項14に記載のデバイス。
前記ビデオコーダが、前記変換ユニットに対応する予測ユニットが正方形か非正方形かに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするように構成される、請求項14に記載のデバイス。
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするために、前記ビデオコーダが、前記変換ユニットに対応する予測ユニットが正方形か非正方形かを示す情報をコーディングするように構成される、請求項14に記載のデバイス。
前記ビデオコーダがさらに、前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの量子化パラメータを決定するように構成される、請求項14に記載のデバイス。
前記ビデオコーダが、前記変換ユニットが非正方形である場合、前記変換ユニットの短い方の端から開始する走査パターンを適用して、前記変換ユニットの係数を変換するように構成される、請求項14に記載のデバイス。
前記変換ユニットが正方形か非正方形かに少なくとも一部基づいて前記変換ユニットのデータをコーディングするために、前記変換ユニットが非正方形である場合、前記ビデオコーダが、前記変換ユニットの短い方の端の位置に基づいて前記データをコーディングするためのコンテキストを選択するように構成される、請求項14に記載のデバイス。
前記ビデオコーダがビデオデコーダを備え、前記ビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするために、前記ビデオデコーダが、前記ビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報を復号するように構成され、前記変換ユニットの前記データをコーディングするために、前記ビデオデコーダが、前記変換ユニットが正方形か非正方形かに基づいて前記変換ユニットの量子化された変換係数を復号し、前記量子化された変換係数を逆量子化し、前記変換係数を逆変換して、前記変換ユニットに対応するコーディングユニットの少なくとも一部分に対する残差データを生成するように構成される、請求項14に記載のデバイス。
前記ビデオコーダがビデオエンコーダを備え、前記変換ユニットの前記データをコーディングするために、前記ビデオエンコーダが、コーディングユニットの少なくとも一部分に対する残差データを計算し、前記残差データを変換して変換係数を生成し、前記変換係数を量子化し、前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの前記量子化された変換係数を符号化するように構成され、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするために、前記ビデオエンコーダが、前記変換ユニットが正方形か非正方形かを示す前記情報を符号化するように構成される、請求項14に記載のデバイス。
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための前記手段が、変換選択フラグをコーディングするための手段を備える、請求項27に記載のデバイス。
前記変換ユニットが子変換ユニットを備え、前記デバイスが、前記子変換ユニットに対する親変換ユニットが分割されるかどうかを示す情報をコーディングするための手段をさらに備え、前記子変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための前記手段が、前記子変換ユニットが正方形か非正方形かを示す前記情報を、前記親変換ユニットが分割される場合にのみコーディングするための手段を備える、請求項28に記載のデバイス。
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための前記手段が、前記変換ユニットが対応する前記RQTデータ構造のレベルを示す情報をコーディングするための手段を備える、請求項27に記載のデバイス。
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための前記手段が、前記変換ユニットがクロミナンス成分に対応するか輝度成分に対応するかに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための手段を備える、請求項27に記載のデバイス。
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための前記手段が、前記変換ユニットに対応する予測ユニットが正方形か非正方形かに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための手段を備える、請求項27に記載のデバイス。
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための前記手段が、前記変換ユニットに対応する予測ユニットが正方形か非正方形かを示す情報をコーディングするための手段を備える、請求項27に記載のデバイス。
前記変換ユニットが非正方形である場合、前記変換ユニットの短い方の端から開始する走査パターンを適用して、前記変換ユニットの係数を変換するための手段をさらに備える、請求項27に記載のデバイス。
前記変換ユニットが正方形か非正方形かに少なくとも一部基づいて前記変換ユニットのデータをコーディングするための前記手段が、前記変換ユニットが非正方形である場合、前記変換ユニットの短い方の端の位置に基づいて前記データをコーディングするためのコンテキストを選択するための手段を備える、請求項27に記載のデバイス。
前記ビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための前記手段が、前記ビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報を復号するための手段を備え、
前記変換ユニットの前記データをコーディングするための前記手段が、
前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの量子化された変換係数を復号するための手段と、
前記量子化された変換係数を逆量子化するための手段と、
前記変換係数を逆変換して、前記変換ユニットに対応するコーディングユニットの少なくとも一部分に対する残差データを生成するための手段と
を備える、請求項27に記載のデバイス。
前記プロセッサに前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングさせる前記命令が、前記プロセッサに変換選択フラグをコーディングさせる命令を備える、請求項39に記載のコンピュータ可読記憶媒体。
前記変換ユニットが子変換ユニットを備え、前記コンピュータ可読記憶媒体が、前記子変換ユニットに対する親変換ユニットが分割されるかどうかを示す情報を前記プロセッサにコーディングさせる命令をさらに備え、前記子変換ユニットが正方形か非正方形かを示す前記情報を前記プロセッサにコーディングさせる前記命令が、前記子変換ユニットが正方形か非正方形かを示す前記情報を、前記親変換ユニットが分割される場合にのみ前記プロセッサにコーディングさせる命令を備える、請求項40に記載のコンピュータ可読記憶媒体。
前記プロセッサに前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングさせる前記命令が、前記変換ユニットが対応する前記RQTデータ構造のレベルを示す情報を前記プロセッサにコーディングさせる命令を備える、請求項39に記載のコンピュータ可読記憶媒体。
前記プロセッサに前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングさせる前記命令が、前記変換ユニットがクロミナンス成分に対応するか輝度成分に対応するかに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報を前記プロセッサにコーディングさせる命令を備える、請求項39に記載のコンピュータ可読記憶媒体。
前記プロセッサに前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングさせる前記命令が、前記変換ユニットに対応する予測ユニットが正方形か非正方形かに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報を前記プロセッサにコーディングさせる命令を備える、請求項39に記載のコンピュータ可読記憶媒体。
前記プロセッサに前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングさせる前記命令が、前記変換ユニットに対応する予測ユニットが正方形か非正方形かを示す情報を前記プロセッサにコーディングさせる命令を備える、請求項39に記載のコンピュータ可読記憶媒体。
前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの量子化パラメータを前記プロセッサに決定させる命令をさらに備える、請求項39に記載のコンピュータ可読記憶媒体。
前記変換ユニットが非正方形である場合、前記プロセッサに、前記変換ユニットの短い方の端から開始する走査パターンを適用させて、前記変換ユニットの係数を変換させる命令をさらに備える、請求項39に記載のコンピュータ可読記憶媒体。
前記変換ユニットが正方形か非正方形かに少なくとも一部基づいて前記変換ユニットのデータを前記プロセッサにコーディングさせる前記命令が、前記変換ユニットが非正方形である場合、前記プロセッサに、前記変換ユニットの短い方の端の位置に基づいて前記データをコーディングするためのコンテキストを選択させる命令を備える、請求項39に記載のコンピュータ可読記憶媒体。
前記プロセッサにビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングさせる前記命令が、前記プロセッサに前記ビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報を復号させる命令を備え、
前記プロセッサに前記変換ユニットの前記データをコーディングさせる前記命令が、前記プロセッサに、
前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの量子化された変換係数を復号させ、
前記量子化された変換係数を逆量子化させ、
前記変換係数を逆変換させて、前記変換ユニットに対応するコーディングユニットの少なくとも一部分に対する残差データを生成させる命令を備える、請求項39に記載のコンピュータ可読記憶媒体。
前記変換ユニットに対応する前記コーディングユニットの予測ユニットが非正方形であることを示す情報をコーディングすることをさらに備え、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることが、前記変換ユニットが正方形であり前記予測ユニットのサイズよりも大きなサイズを有することを示す情報をコーディングすることを備える、請求項1に記載の方法。
前記ビデオコーダが、前記変換ユニットに対応する前記コーディングユニットの予測ユニットが非正方形であることを示す情報をコーディングし、前記変換ユニットが正方形であり前記予測ユニットのサイズよりも大きなサイズを有することを示す情報をコーディングするように構成される、請求項14に記載のデバイス。
前記変換ユニットに対応する前記コーディングユニットの予測ユニットが非正方形であることを示す情報をコーディングするための手段をさらに備え、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための手段が、前記変換ユニットが正方形であり前記予測ユニットのサイズよりも大きなサイズを有することを示す情報をコーディングするための手段を備える、請求項27に記載のデバイス。
前記プロセッサに、前記変換ユニットに対応する前記コーディングユニットの予測ユニットが非正方形であることを示す情報をコーディングさせる命令をさらに備え、前記プロセッサに、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングさせる前記命令が、前記プロセッサに、前記変換ユニットが正方形であり前記予測ユニットのサイズよりも大きなサイズを有することを示す情報をコーディングさせる命令を備える、請求項39に記載のコンピュータ可読記憶媒体。
【発明を実施するための形態】
【0013】
一般に、ビデオデータは、イントラ予測モードまたはインター予測モードでコーディングされ得る、フレームのシーケンスを含む。フレームは、ビデオデータのブロックに分割することができ、ブロックごとに符号化モードが選択され得る。インター予測モードでは、ブロックは、1つまたは複数の前にコーディングされたフレームのデータに対して予測され得る。イントラ予測モードでは、ブロックは、同じフレームの1つまたは複数の空間的に隣接する前にコーディングされたブロックに対して予測され得る。
【0014】
High Efficiency Video Coding(HEVC)によれば、フレームは、たとえば、32×32の画素ブロックまたは64×64の画素ブロックを備え得る、最大コーディングユニット(LCU)に分割され得る。一般に、LCUは、各々がさらに(再帰的に)区分され得るサブコーディングユニット(サブCU)に区分され得る。一般に、コーディングユニット(CU)という用語は、LCUまたはLCUの任意のサブCU(たとえば、LCUのサブCUまたは別のサブCUのサブCU)を指し得る。CUは、4つの正方形の重複しないサブCUに区分され得る。
【0015】
LCUは、1つまたは複数のノードを含む4分木データ構造に対応することがあり、4分木のルートノードはLCU自体に対応し、他のノードはLCUのサブCUに対応する。区分されていないCUは、一般に、4分木のリーフノード(すなわち、子ノードを有さない4分木のノード)に対応する。したがって、区分されていないCUはリーフノードCUと呼ばれ得る。リーフノードCUは、一般に、CUのデータがどのように予測されるか(すなわち、データがイントラコーディングされるかインターコーディングされるか)を記述する1つまたは複数の予測ユニット(PU)と、残差データ、すなわち、CUの予測されたデータとCUの元のデータとの間の画素ごとの差分に対応する1つまたは複数の変換ユニット(TU)とを含む。
【0016】
HEVCテストモデル(「HM」と省略されることが多い)は、一般には「HEVC」として知られている次世代のビデオコーディング規格のためのビデオコーダ参照ソフトウェアを定義する。HEVCでは、リーフCUを異なるPUへと分割することができ、各PUはリーフCUの一部分の動き情報を定義する。インター予測モードでは、各PUに対して、参照フレーム中で一時的な参照ブロックを見つけるために、動き補償が実行される。この一時的な参照ブロックは通常、PUと比較されると(このことはこの文脈ではPUから差し引かれることを意味することが多い)定義された閾値を下回る量の残差データをもたらすブロックを表す。残差データは、PUの対応する画素と参照ブロックの対応する画素との間の差分を示す、画素差分値を含む。この閾値を下回る場合、ビデオエンコーダは、PUに対する一時的な参照ブロックの位置を特定する、動き情報を生成する。ビデオエンコーダは次いで、一時的な参照ブロックをPUと比較することにより生成される残差データを記憶し、たとえば、PUに対する一時的な参照ブロックの位置を特定する動きベクトルを定義する、動き情報を記憶する。残差データはTUのために記憶されてよく、動きベクトルはPUのために記憶されてよい。
【0017】
HMはさらに、CUの1つまたは複数のTUのデータを含む、4分木ベースの残差4分木変換(RQT)構造を定義する。4分木のルートノードが4個の子ノードを有することができ、一般に、木のノードが4個の子ノードを有することができ、各ノードが同様の方式でフォーマット化され得るという点で、RQTは「再帰的」であると表現され得る。したがって、LCUは、リーフノードCUへのLCUの区分を定義するCU4分木、および、各リーフノードCUに対するTUのデータを含むRQTという、2つの別個のタイプの4分木に対応するデータを含み得る。
【0018】
HMはまず、RQTのルートレベル(「レベル0」とも呼ばれ得る)を定義し、ルートレベルは実質的に、CUに適用される変換を表す(CUの形状およびサイズは通常2N×2Nの記法によって表され、Nは一般に、2の累乗である、CUに対応するビデオデータのブロック中の画素の数を指す)。HMを実装するビデオエンコーダは、リーフノードCUの変換係数がRQTのレベル0に相当する場合、ルートレベルにおける変換を適用することができる。言い換えると、HMを実装するビデオエンコーダは、形状およびサイズがCUの形状およびサイズと一致する、CUの残差データに対して変換を適用することができる。
【0019】
HMはさらに、CU(2N×2Nのサイズを有する)を変換係数データの4個の等しいサイズの副部分(各部分のサイズはN×Nである)へと分割できることを示すことができ、サイズN×Nの変換が残差データのこれらのN×Nの副部分の各々に対して適用され得る。この意味で、変換は、RQTのいわゆる「レベル1」に適用され、このときルートレベルはレベル0を表し、4個のN×Nの副部分へのルートレベルの分割はこの構造のレベル1を表す。
【0020】
変換サイズを選択するために、ビデオエンコーダは、ルートレベル(またはレベル0)において変換を適用した結果と、レベル1において変換を適用した結果とを比較することができる。変換を適用したことのいわゆる「結果」は、一般に、変換された残差データを符号化した結果を指す。この結果を生成するために、ビデオエンコーダは、上で述べられたように、残差データに対する変換を適用して残差データを空間領域から周波数領域へと変換し、様々な周波数の規定された正弦波または余弦波のような基本関数に対する重みとして機能する変換係数の形態で残差データを表す変換係数をもたらす。ビデオエンコーダは次いで、これらの変換係数(変換された残差データとも呼ばれ得る)を量子化して、変換係数を丸めることができる。この量子化ステップは通常、より小さな変換係数の1つまたは複数を0へと丸めることを伴う。ビデオエンコーダはさらに、変換係数をコーディングすることができる。したがって、量子化およびコーディングは、非可逆な形態の圧縮を表す。ビデオエンコーダは次いで、ビデオデータを復号し、逆量子化を実行し、逆変換を適用して、ビデオブロックを再構成することができる。
【0021】
この再構成されたビデオブロックは、この文脈では、変換を適用した結果を表し得る。再構成されたビデオブロックは次いで、元のCUと比較されてよく、元のCUと再構成されたビデオブロックとの間の誤差が求められ得る。ビデオエンコーダは次いで、レベル0において変換を適用した場合に求められた誤差と、レベル1において変換を適用した場合にこの方式で求められた誤差とを比較することができる。
【0022】
いくつかの例では、誤差に加えて(消費される帯域幅または記憶空間に関して)レートを考慮する、レート歪み分析またはレート歪み最適化と呼ばれるより複雑な処理が実行され得る。符号化されたビデオデータを表現するのに使用されるレートまたはビットは、ビットコストを、ビットコストと特定の品質レベルの品質との関係を表す値であるラグランジアンと乗算することによって、数学的に測定される。ソースからの偏差(本開示では誤差または歪みと呼ばれる)は通常、ピーク信号対雑音比(PSNR)というビデオ品質の尺度を最大化するために、平均二乗誤差として測定される。
【0023】
レベル1において変換を適用した結果が、レベル0において変換を適用した結果より(求められた誤差またはレート歪みの尺度に関して)良好である場合、ビデオエンコーダは、副部分の各々に関してこの処理を繰り返して、各副部分を4個の等しいサイズの2次的な(N/2×N/2のサイズの)副部分へと分割し、これによって再帰的な4分木変換構造のレベル2を生成することへと、進むことができる。ビデオエンコーダは次いで、レベル2において変換を適用した結果と、各1次の副部分に対してレベル1において変換を適用した結果とを比較することができ、レベル2において変換を適用した結果がレベル1において変換を適用した結果より(求められる誤差に関して)良好である場合、レベル2の変換を選択する。この処理は、この再帰的な方式で続くことができ、レベルMにおいて適用される変換がレベルM+1において適用される変換より良好になるまで、または、何らかの最大の変換レベルに達するまで、各副部分を4個の等しいサイズの副部分を次々に分割する。いくつかの実装形態では、ビデオエンコーダは、最大の変換レベルで開始することができ、最小のサイズの変換ブロックを適用し、より大きなサイズの変換が(求められる誤差に関して)より良好に実行される場合、より小さなサイズの変換を統合する。この理由で、この変換構造は再帰的4分木変換構造と呼ばれることがある。
【0024】
上のHMの説明の全体で、変換のサイズは、正方形である(たとえば、2N×2N、N×N、およびN/2×N/2)ものとしてのみ説明されてきた。提案されるHMは現在、変換のサイズを正方形に限定するが、(以下でより詳しく説明される)
図4の例に示されるもののような、非正方形の長方形のPUサイズを実現する。非正方形PUは、PUの種々の区分モードから生じ得る。一例として、ビデオコーダは、非対称動き区分(AMP)を使用して、CUをPUに区分することができる。別の例として、ビデオコーダは、短距離イントラ予測(SDIP)または非対称SDIPを使用して、CUをPUに区分することができる。ビデオコーダは、PUの境界にまたがるTUを使用することを避けるように構成され得る。したがって、本開示の技法に従って(たとえば、対応する非正方形PUのサイズと一致するように)非正方形TUを設けることは、いくつかの利点をもたらし得る。
【0025】
たとえば、正方形の変換または変換ユニット(TU)のみを許容することの1つの結果は、ビデオエンコーダが動きの境界(隣接するPUの間の境界を指す)にわたって変換を適用できるということである。動きの境界は、鋭い境界または色もしくは明るさの大きな変化があり得る動きの非連続性を示すことが多く、これらのタイプの境界を適切に捕捉するためにより多くの変換係数を必要とするので、動きの境界にわたって変換を適用すると、通常は変換効率が下がる。非正方形PU以外の正方形TUのみを設けることの別の結果は、ビデオエンコーダが、関連するPUよりも小さな変換を適用できるということである。PUに対してより小さなサイズの変換を適用することも、変換効率を下げることがあり、それは、変換が近隣の画素の間の相関を完全に利用できないことがあるからである。
【0026】
本開示で説明される技法によれば、ビデオエンコーダは、非正方形変換をビデオデータに適用することができる。変換サイズを正方形変換のみに制限するのではなく、本技法は、ビデオコーダ(ビデオエンコーダ、ビデオデコーダ、またはビデオエンコーダとビデオデコーダの両方の組合せを指し得る)が、ビデオデータへの非正方形変換の適用を評価し場合によっては選択することを可能にし得る。非正方形変換をビデオデータに適用することによって、ビデオコーダは、正方形変換が予測境界(これは、動き推定が別々に実行される2つの別個の予測ユニット(PU)によって特定されるビデオデータの2つの別個のブロックの間の境界である)にまたがって適用される場合にもたらされる、アーチファクトと歪みとを低減することができる。加えて、本技法は、非正方形変換が、より大きなサイズのPUに対するより小さなサイズの変換の適用を避けることによって、近隣の画素の間の相関をより完全に利用できるという点で、変換効率を上げることができる。
【0027】
いくつかの例では、2つ(またはそれより多く)の非正方形の隣接するPU(合成されると正方形の予測ブロックを形成し得る)から生じた残差データに単一の正方形変換を適用するのではなく、これらの技法は、ビデオエンコーダが、一致する複数の非正方形変換(複数の非正方形変換の各々がPUによって特定されるブロックのサイズと一致するという意味で)を適用し、非正方形PUの各々から生じる残差データを個別に変換することを可能にでき、その結果として、PUの2つのブロックにわたって単一の正方形変換を適用した場合と比較して、0ではない係数の数が減る可能性がある。0ではない係数の数を減らす際、本技法は、ビデオデータを表現するのに必要なデータの量を減らすことができ、非正方形変換の適用を可能にしない技法と比較して、より圧縮されたビデオデータのバージョンを生成する。
【0028】
例示すると、ビデオエンコーダは、非正方形変換を非正方形PUに対応する残差データへ適用することができる。一例として、N×MのPUサイズ(NおよびMは、2の累乗であることが多い異なる画素数を表す)に対して、ビデオエンコーダは、変換構造を生成するとき、サイズN×Mの変換を追加で適用することができる。別の例として、サイズ2N×NのPUに対して、ビデオエンコーダは、サイズ2N×2N、2N×N、およびN×Nという変換を適用することができ、上で説明されたように、結果の求められた誤差に基づいて、これらの適用された変換の1つを選択する。このようにして、ビデオエンコーダは、非正方形変換サイズを選択することができる。
【0029】
本開示で説明された技法は追加で、変換シグナリング構造(変換選択構造とも呼ばれる、すなわち、どの変換サイズが選択されたかを示す構造)を修正することができる。変換シグナリング構造は、残差4分木変換構造に対応し得る。具体的には、変換シグナリング構造は、非正方形変換に対応するように、これらの技法に従って修正され得る。これらの技法を実装するビデオエンコーダは、サイズ2N×NのPUがある場合、残差データのセットに対してどの変換サイズを選択するかを決定する処理の中で、ルートレベル(またはレベル0)において、サイズ2N×2Nの変換と2N×Nの変換の両方を適用することができる。
【0030】
したがって、サイズ2N×NのこのCUと関連付けられるPUがある場合、ビデオエンコーダはこれらの変換の両方を適用すべきであると、変換シグナリング構造は規定し得る。ビデオエンコーダは次いで、この変換を適用した結果を比較することができ(比較において、上で説明された方式で求められた誤差を再び参照する)、この比較に基づいて、サイズ2N×2Nまたは2N×Nというこれらの変換のうちの1つを選択する。ビデオエンコーダは、残差4分木処理を続けることができ、1次のまたはレベル0の変換のうちの選択された1つを適用した結果を、4個の2次のまたはレベル1のN×Nの変換を適用した結果と比較する。この意味で、本技法は、非正方形PUが現在のCUと関連付けられるかどうかに基づいて、非正方形変換の適用を可能にし得る。また、実際には、この変換選択処理は、最小のサイズの変換ブロックから開始し、たとえばレート対歪みに関してより大きなサイズの変換がより良好に実行される場合、それらの変換ブロックを統合するように、ボトムアップの方式で実行されてよい。
【0031】
本開示で説明される技法のいくつかの実装形態では、ビデオエンコーダは、わずかに異なる方式でこの変換選択処理を実行することができ、サイズ2N×2Nの単一のルートレベル変換が適用され、レベル1の変換は2N×Nのサイズである。次のレベルの、またはレベル2の変換が次いで、レベル1の変換であるものとして上で説明された4個のN×Nの変換として規定され得る。したがって、これらの実装形態では、非正方形変換は、非正方形変換をルートレベル変換と統合するのではなく、固有のレベル1の変換として規定され得る。これらの実装形態は、上で説明された選択処理とより良好に一致することがあり、このとき、同じレベルの変換を適用した結果ではなく、異なるレベルの変換を適用した結果が比較される。
【0032】
加えて、本技法は、変換がどのように選択されるかを制限することができる。たとえば、変換選択処理は、ビデオエンコーダが、ルートレベルにおいて、PUサイズと同じサイズの変換のみを選択することを許容するように、修正され得る。この例では、サイズN×2NのPUに対して、ビデオエンコーダは、ルートレベルでN×2Nの変換を選択するように構成され得る。サイズ2N×2NのPUに対して、ビデオエンコーダは、ルートレベルでサイズ2N×2Nの変換を選択するように構成され得る。
【0033】
いくつかの例では、本技法は、どの変換が適用されるかを制限することができる。つまり、ビデオエンコーダは、本技法のいくつかの実装形態では、PUの形状に基づいて、非正方形変換を適用することができる。一例として、2N×Nという形状のPUに対して、ビデオエンコーダは、一例として、選択処理の間に、サイズ2N×Nの変換のみを適用してよく、サイズN×2Nの変換を適用しなくてよい。選択処理の間に可能な非正方形変換の部分集合のみを適用することで、いくつかの変換の適用をなくすことによって、消費されるプロセッサのサイクルおよび時間が少なくなるので、ビデオ符号化の性能が向上し得る。処理サイクルを減らすことで消費電力を減らすことができ、これは、ビデオエンコーダが、いわゆるスマートフォンのようなモバイルデバイスまたは他の消費電力を意識するデバイスにおいて実装される場合、有益であり得る。
【0034】
その上、本技法は、ビデオコーダが、非正方形変換を、輝度成分と彩度成分の両方ではなく、一部の色成分にのみ、たとえば、輝度成分のみまたは彩度成分のみに適用することを可能にし得る。さらに他の例では、本技法は、ビデオコーダが、いくつかのPUおよび/またはCUのサイズに基づいて、非正方形変換を選択的に適用することを可能にし得る。
【0035】
上で説明された方式で変換を選択した後、ビデオエンコーダは通常、シンタックス要素を使用して、選択された変換をシグナリングする。非正方形変換の導入には、ビデオエンコーダが追加のシンタックス要素をシグナリングすることを必要とし得る。ルートレベルにおいて利用可能な2つ以上の変換がある場合(上で説明された例示的な実装形態を指し、ルートレベルは2N×2Nの変換と2N×Nの変換とを含む)、ビデオエンコーダは、変換選択(TS)フラグをシグナリングして、2つ以上のルートレベルのいずれが選択されたビデオエンコーダを変換するかを示すことができる。ビデオエンコーダは、ルートレベルが4個のN×Nの部分に分割されたかどうかを示す、いわゆる「splitフラグ」の後で、このTSフラグをシグナリングすることができる。たとえば、ビデオエンコーダは、2N×Nの変換を選択するとTSフラグを1に設定し、その他の場合、サイズ2N×2Nの変換を選択するとこのTSフラグを0に設定することができる。
【0036】
本技法のいくつかの実装形態では、ビデオエンコーダは、他のシンタックス要素とともにTSフラグをシグナリングすることができ、TSフラグを、splitフラグと、輝度(CbfY)変換ブロックおよび彩度変換ブロック(U、Vは、2つの彩度色成分であり、UおよびVの各々に対するこれらのシンタックス要素は「CbfU」および「CbfV」と表される)のためのコーディング済ブロックフラグとの1つまたは複数と組み合わせる。例示すると、非正方形変換が輝度成分ブロックに適用されると仮定する。輝度に対して、2N×2Nの変換とN×2Nの変換の両方が変換木のルートレベル(レベル0)において行われ、N×Nがレベル1であると規定される。サイズN×Nの彩度変換ブロックに対して(一般的な4:2:0のYUVビデオフォーマットでは、彩度ブロックサイズが輝度ブロックサイズの1/2×1/2であることを考慮して)、ルートレベル(レベル0)変換はサイズN×Nであり、レベル1変換はサイズN/2×N/2の変換である。これらの仮定のもとで、次の情報がシンタックスとしてビデオデコーダに送信される。
【0037】
1.Splitフラグ;ルートレベル変換が採用されるか、またはより小さな変換(分割される場合)が使用されるかを示すためのフラグ。
【0038】
2.変換選択フラグTS。ルートレベル変換が選択される場合(split=1)、2N×2N(TS=0)と2N×N(TS=1)からの選択をシグナリングするためにTSが送信される。
【0039】
3.輝度のCbf。Split=1または(Split=0,TS=0)である場合、CUの中に0ではない輝度係数があるかどうかをシグナリングするために、フラグCbfYが送信される(CbfY=0では、すべての輝度係数が0であり、CbfY=1では、少なくとも1つの輝度係数が0ではない)。TS=1である場合、第1の2N×Nの変換ブロックと第2のブロックの中にそれぞれ0ではない係数があるかどうかをシグナリングするために、CbfY0およびCbfY1が送信される。
【0040】
4.彩度(U,V)のCbf。フラグCbfUは、CUの中に0ではないU成分の係数があるかどうかをシグナリングするために送信される。フラグCbfVは、CUの中に0ではないV成分の係数があるかどうかをシグナリングするために送信される。
【0041】
これらのシンタックス要素の各々を別々に送信すると、異なるフラグの間の相関を完全には利用できない。その結果、本技法は、ビデオエンコーダが、以下で説明されるような結合コーディング方式を利用することを可能にし得る。
【0042】
1.ビデオエンコーダはまず、可変長コーディング(VLC)を使用して、splitフラグと、CbfYYフラグと、CbfUVフラグとを送信し、CbfYYフラグおよびCbfUVフラグは以下で説明される。
【0043】
2.Split=0である場合、TSフラグが、ビデオエンコーダが非正方形変換を選択したかどうかを示すために送信される。
【0044】
3.TS=1である場合、CbfYYはCbfY0||CbfY1であるとして解釈される(つまり、CbfY0は、変換が適用される第1の2N×N部分またはN×2N部分のCbfYフラグを指し、CbfY1は、変換が適用される第2の2N×N部分またはN×2N部分のCbfYフラグを指す)。この場合、CbfYY=1であれば、CbfY0、CbfY1またはこれらの両方が1かどうかをシグナリングするために、さらなる情報が送信される。CbfYY=0であれば、CBFY0=CBFY1=0である。
【0045】
4.Split=1またはTS=0である場合、CbfYYは上で説明されたCbfYとして解釈される。
【0046】
5.CbfUVが、(CbfU||CbfV)と定義され、CbfUV=1である場合、CbfUとCbfVの少なくとも1つが0ではない。CbfUV=1である場合、CbfU、CbfV、またはこれらの両方が1かどうかをシグナリングするために、さらなる情報が送信される。CbfUV=0である場合、CBFU=CBFV=0である。
【0047】
上の結合コーディング方式では、CbfYYフラグは信号CbfY0とCbfY1を一緒にシグナリングし、CbfUVフラグはCbfUとCbfYを一緒にシグナリングし、CbfYYが0に等しい例、および/またはCbfUVが0に等しい例において、より効率的なシグナリングを実現する(これらの例でCbfYYをシグナリングするには1ビットが必要であり、このときCbfY0とCbfY1とを別々にシグナリングするには2ビットが必要であり、また、これらの例でCbfUVをシグナリングするには1ビットが必要であり、このときCbfUとCbfVとを別々にシグナリングするには2ビットが必要であるため)。
【0048】
一方、ビデオエンコーダはまた、非正方形変換の適用により生成される変換係数を量子化する。これらの非正方形変換係数は量子化され、このとき、本開示の技法は、変換係数が正方形か非正方形かに応じて、異なる量子化ステップサイズを提供することができる。通常、量子化強度/ステップサイズは、量子化パラメータによって制御される。本技法は、ビデオエンコーダが、この量子化ステップサイズを決定する際に新たな量子化パラメータを使用することを可能にでき、このとき、この新たな量子化パラメータは、変換係数が正方形変換の適用を通じて生成されたか非正方形変換の適用を通じて生成されたかを示し得る。言い換えると、量子化パラメータは、異なる変換ステップサイズに対しては異なっていてよく、正方形変換と非正方形変換との間で異なっていてよい。一例では、量子化パラメータ0(QP0)が、現在のフレームの基本QPであると仮定する。本技法のこの態様を実装するビデオエンコーダは、一例として、サイズ2N×NおよびN×2Nの非正方形変換に対してはQP0+3という量子化パラメータを使用し、すべての他の変換に対しては基本QP0を使用することができる。ビデオエンコーダとデコーダの両方が、本技法のこの態様を利用することができる。
【0049】
量子化を実行した後、ビデオエンコーダは通常、2次元アレイとして通常表される係数を走査し、これらの係数の1次元の並びを生成する。通常、変換は、0ではない係数が左上の角または2次元アレイに配置されるように、係数を生成する。ビデオエンコーダは、0ではない係数が1次元の並びにおいて互いに隣に配置され、値が0の変換係数のランレングスコーディングを容易にして、これによって少なくともある量の圧縮を実現する(ランレングスコーディングは通常、単一の数を使用して、値が0の複数の変換係数を表現することを伴うので)ような方式で、これらの係数を走査することができる。
【0050】
本開示で説明される技法の一態様は、非正方形変換係数がビデオエンコーダによって走査される際の方法を規定することができる。本技法のこの態様を実装するビデオエンコーダは、変換係数の2次元ブロックの形状に基づいて、この1次元走査を実行することができる。一例では、ビデオエンコーダは、波面走査と呼ばれる形式の走査(左下から右上または右上から左下への走査)を実行することができ、走査は常に短い方の端から始まる。
【0051】
ビデオエンコーダは次いで、統計的に損失のない形式のコーディング(「エントロピーコーディング」と誤って呼ばれることが多い)を実行して、ランレングス符号化された変換係数の1次元の並びを符号化する。このエントロピーエンコーダは、上で説明されたようなシンタックス要素の結合符号化または合成符号化とともに、ランレングス符号化された変換係数の符号化も実行することができる。コンテキスト適応バイナリ算術コーディング(CABAC)と呼ばれる形式のエントロピー符号化が、変換係数の正方形ブロックから生成される変換係数の1次元の並びを符号化するために利用されることが多い。本開示で説明された技法の様々な態様は、ビデオエンコーダが、変換係数の非正方形ブロックから生成された変換係数の1次元の並びに関して、CABACを実行することを可能にし得る。
【0052】
本技法のこれらのエントロピー符号化の態様を実装するビデオエンコーダは、変換係数の非正方形ブロックに対応するように3つの方法で修正された、ある形式のCABACを実行することができる。第1の修正は、最後の有意な係数のシグナリングを伴い得る。第2の修正は、いわゆる「有意性マップ」に対する修正を伴ってよく、一方第3の修正は、いわゆる「係数レベル」の修正を伴ってよい。
【0053】
非正方形ブロックに対しては、最後の有意な係数のシグナリングにおいて、ビデオエンコーダは、CABACを実行するときに使用されるコンテキストモデルが、コーディングされている座標のサイズの長さに応じたものになるように、第1の修正を実施することができる。言い換えると、水平方向の座標(最後の係数のX成分)は、ブロック(およびコーディングされているxのビン)の幅に応じたコンテキストを有する。等価的に、垂直方向の座標(Y成分)は、ブロックの高さに応じて割り当てられるコンテキストセットを有する。
【0054】
非正方形ブロックの有意性マップに対して、本開示は、サイズ2N×NおよびN×2Nの変換がCABACコーディングのために同じ1つまたは複数のコンテキストを共有することを、提案する。コンテキストを共有することによって、ビデオエンコーダは、コンテキストの総数を減らすことができる。性能を向上させるために、ビデオエンコーダは、コンテキストを、直接ではなく、長方形の形状の1つの座標と値とを転置した後で、導出し共有することができる。たとえば、2N×Nの変換の係数は直接符号化されてよいが、変換されるN×2Nの係数はコーディングの前に転置され、これは、座標XおよびYと、幅および高さとが、コーディングの前に交換されることを意味する。本開示で説明された技法のこの態様は、2N×Nのブロックの統計が、転置された後のN×2Nのブロックの統計と類似しているという事実を利用する。
【0055】
例として、CABACを使用してコーディングするとき、ビデオコーディングデバイスは、係数の有意性と、レベルと、符号とを示す、シンタックス要素を含むシンタックス要素をコーディングするために、係数の逆対角走査を適用することができる。レベルコーディングのために、係数は、16個の係数の部分集合において走査され得る。コンテキストの近隣に基づいて(または、本開示の技法による、係数のX座標およびY座標に基づいて)、各部分集合に対して、コンテキストが再初期化され得る。レベル情報をコーディングするために、対応するバイナリ化されたシンボルの最初の2つのビンはCABACを使用してコーディングされてよく、残りのビンは、指数ゴロムコーディングのような、別のバイパスコーディングエンジンを使用してコーディングされ得る。ビンがCABACエンジンによってコーディングされると、コンテキスト状態が更新される(このとき、コンテキストは、確率モデルによって定義される複数の状態を有する)。CABACエンジンは、確率モデルと、コーディングされている実際の値とに基づいて、コンテキストの異なる状態(値)に移行する。
【0056】
変換係数の8×4ブロックおよび4×8ブロックに対して、ビデオエンコーダは、本技法のこの態様を実装して、(HEVCにおける4×4ブロックおよび8×8ブロックと同様に)係数の位置に基づいて有意性マップのコンテキストを使用することができる。この実装形態では、長辺に沿った2つの隣接する係数によって共有される、16個のコンテキストがCABACのために使用されてよい。以下は、これらの共有されるコンテキストがどのように導出され得るかを示す一例である。
【0057】
XおよびYを、変換係数の2次元ブロック内の変換係数の座標とし、>>をビット右シフト操作とし、CtxNumをブロックに割り当てられたコンテキストとする。8×4ブロックのコンテキストは、次のように導出され得る。
【数1】
【0058】
上で述べられたように、4×8ブロックに対して、コンテキストは次のように導出され得る。
【数2】
【0059】
ここで、Swap(X,Y)は、次のように実装され得る。
【数3】
【0060】
言い換えると、Swap(X,Y)は、XとYの値を転置することができる。
【0061】
より大きなブロック(16×4、4×16、およびそれを上回る)に対しては、ビデオエンコーダは、本技法のこれらの有意性マップの態様を実装して、コンテキストが近隣の係数の有意性に基づく、HEVCにおいて使用される方法と同様の方法を使用することができる。適切な転置(または交換)操作が、2つの形状のうちの1つに適用され得る。
【0062】
係数レベルのコーディングのために、1つのHEVCの案は、4×4のサブブロックへのブロックの分割を利用し、各サブブロック内で順番にコーディングを実行する。このタイプの処理は、ブロックサイズを4×4のサブブロックの中に収めることができない場合(すなわち、長方形の辺の少なくとも1つが4未満である場合)には不可能である。この問題を解決するために、本開示で説明される技法は、ブロックが走査の順序でn個(たとえば、n=16)の連続的な係数の部分集合へと分割されるコーディング処理を、ビデオエンコーダが実行することを可能にし得る。これは、すべての非正方形のブロックサイズに対して、または、4×4のサブブロックを格納できないブロックサイズのみに対して、適用され得る。
【0063】
加えて、ビデオエンコーダは、本開示で説明される技法のいくつかの態様を実装して、非正方形ブロックの4分木Cbfのための確率コンテキストの異なるセットを使用することができ、それは、非正方形ブロックが正方形ブロックとは異なる統計を有するからである。
【0064】
本開示では、本技法は全般に、
図4および
図5の例に示されるビデオエンコーダ20のようなビデオエンコーダに関して説明されるが、本技法の多くの態様が、
図4および
図6の例に示されるビデオデコーダ30のようなビデオデコーダによって実施され得る。たとえば、ビデオデコーダは、上で説明されたCABAC技法の逆バージョンを実施して、ビデオエンコーダのエントロピーエンコーダから出力される符号化されたビデオデータをエントロピー復号することができる。ビデオデコーダは、上で説明された技法の走査の態様と量子化の態様の両方の逆バージョンの形式を実施して、変換係数の非正方形ブロックを再構成することもできる。加えて、ビデオエンコーダは、逆非正方形変換を適用して、変換係数を周波数領域から空間領域へと戻すように変換することができる。ビデオデコーダはまた、上で説明された技法のシンタックスコーディングの態様の逆バージョンを実行して、ビットストリームからのシンタックス要素を解析し、次いで解析されたシンタックス要素を復号することができる。しかしながら、ビデオデコーダは通常、どの変換がシンタックス要素を介して選択されるかをビデオエンコーダがシグナリングすることを考慮して、本技法の選択の態様を実施しない。したがって、ビデオエンコーダに関して上で説明されるが、本技法の多くの態様は、以下でより詳しく説明されるように、ビデオデコーダによって実行され得る。
【0065】
動作において、ビデオデコーダは、本技法を実施して、符号化されたビデオデータの一部を表す変換係数に適用されるべき逆変換が非正方形かどうかを、符号化されたビデオデータの一部と関連付けられる変換情報に基づいて判定し、変換ユニットが非正方形かどうかの判定に基づいて、変換係数を変換係数のブロックへと形成し、変換係数のブロックに逆変換を適用して、変換係数のブロックを残差ビデオデータのブロックへと変換することができる。
【0066】
図1は、非正方形変換を使用してビデオデータをコーディングするための本開示で説明される技法を利用するように構成され得る、例示的なビデオ符号化および復号システム10を示すブロック図である。
図1に示されるように、システム10は、通信チャネル16を介して符号化されたビデオを宛先デバイス14に送信する、ソースデバイス12を含む。符号化されたビデオデータはまた、記憶媒体34またはファイルサーバ36に記憶されてよく、必要に応じて宛先デバイス14によってアクセスされてよい。記憶媒体またはファイルサーバに記憶される場合、ビデオエンコーダ20は、コーディングされたビデオデータを記憶媒体に記憶するための、ネットワークインターフェース、コンパクトディスク(CD)、ブルーレイ(登録商標)またはデジタルビデオディスク(DVD)バーナーまたは刻印設備デバイス、あるいは他のデバイスなど、別のデバイスにコーディングされたビデオデータを与えることができる。同様に、ネットワークインターフェース、CDまたはDVDリーダーなどのような、ビデオデコーダ30とは別個のデバイスが、記憶媒体からコーディングされたビデオデータを取り出し、取り出されたデータをビデオデコーダ30に与えることができる。
【0067】
ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、広範囲にわたるデバイスのいずれかを備え得る。多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。したがって、通信チャネル16は、符号化されたビデオデータの送信に適切な、ワイヤレスチャネル、有線チャネル、またはワイヤレスチャネルと有線チャネルとの組合せを備え得る。同様に、ファイルサーバ36は、インターネット接続を含む任意の標準的なデータ接続を通じて、宛先デバイス14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適切である、ワイヤレスチャネル(たとえば、Wi−Fi接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。
【0068】
本開示の例による、非正方形変換を適用するための技法は、無線を通じたテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の用途など、種々のマルチメディア用途のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/またはビデオ電話などの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0069】
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器22と、送信機24とを含む。ソースデバイス12において、ビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き電話またはビデオ電話を形成し得る。しかしながら、本開示で説明される技法は、全般にビデオコーディングに適用可能であってよく、ワイヤレス用途および/または有線用途、あるいは符号化されたビデオデータがローカルディスクに記憶される用途に適用され得る。
【0070】
キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム22によって変調され、送信機24を介して宛先デバイス14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他のコンポーネントを含み得る。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【0071】
ビデオエンコーダ20によって符号化された、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータにより生成されたビデオはまた、後で利用するために記憶媒体34またはファイルサーバ36に記憶され得る。記憶媒体34は、ブルーレイディスク、DVD、CD−ROM、フラッシュメモリ、または符号化されたビデオを記憶するための任意の他の適切なデジタル記憶媒体を含み得る。記憶媒体34に記憶された符号化されたビデオは次いで、復号および再生のために宛先デバイス14によってアクセスされ得る。
【0072】
ファイルサーバ36は、符号化されたビデオを記憶することと、その符号化されたビデオを宛先デバイス14に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、ローカルディスクドライブ、または、符号化されたビデオデータを記憶することと、符号化されたビデオデータを宛先デバイスに送信することとが可能な他のタイプのデバイスを含む。ファイルサーバ36からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。ファイルサーバ36は、インターネット接続を含む任意の標準的なデータ接続を通じて、宛先デバイス14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適切である、ワイヤレスチャネル(たとえば、Wi−Fi接続)、有線接続(たとえば、DSL、ケーブルモデム、イーサネット(登録商標)、USBなど)、または両方の組合せを含み得る。
【0073】
図1の例では、宛先デバイス14は、受信機26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。宛先デバイス14の受信機26はチャネル16を通じて情報を受信し、モデム28はその情報を復調して、ビデオデコーダ30のための復調されたビットストリームを生成する。チャネル16を通じて通信される情報は、ビデオデータを復号する際にビデオデコーダ30が使用する、ビデオエンコーダ20によって生成された種々のシンタックス情報を含み得る。上で説明されたスライスヘッダシンタックスを含むそのようなシンタックスはまた、記憶媒体34またはファイルサーバ36に記憶された符号化されたビデオデータとともに含まれ得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ(コーデック)の一部を形成し得る。
【0074】
ディスプレイデバイス32は、宛先デバイス14と一体化されてよく、またはその外部にあってよい。いくつかの例では、宛先デバイス14は、一体化されたディスプレイデバイスを含んでよく、また、外部ディスプレイデバイスとインターフェースをとるように構成されてよい。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、種々のディスプレイデバイスのいずれをも備え得る。
【0075】
図1の例では、通信チャネル16は、高周波(RF)スペクトルあるいは1つまたは複数の物理伝送線路のような、任意のワイヤレス通信媒体または有線通信媒体、あるいはワイヤレス媒体と有線媒体との任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は一般に、有線媒体またはワイヤレス媒体の任意の適切な組合せを含む、ビデオデータをソースデバイス12から宛先デバイス14に送信するのに適切な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル16は、ソースデバイス12から宛先デバイス14への通信を可能にするのに有用であり得る、ルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【0076】
ビデオエンコーダ20およびビデオデコーダ30は、現在開発中である来たるHigh Efficiency Video Coding(HEVC)規格などのビデオ圧縮規格に従って動作することができ、HEVCテストモデル(HM)に準拠することができる。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part 10、Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格、またはそのような規格の拡張など、他のプロプライエタリ規格または業界規格に従って動作してよい。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例にはMPEG−2およびITU−T H.263がある。
【0077】
本開示の技法によれば、ビデオエンコーダ20およびビデオデコーダ30は、非正方形変換ブロックを使用してビデオデータをコーディングするように構成され得る。ビデオエンコーダ20およびビデオデコーダ30は、本開示で説明される非正方形変換ブロックに関連する技法のいずれかまたはすべてを、任意の組合せで実施することができる。一般に、ビデオエンコーダ20およびビデオデコーダ30は、ビデオデータの変換ユニットが正方形か非正方形かを示す情報をコーディングし、変換ユニットが正方形か非正方形かに少なくとも一部基づいて変換ユニットのデータをコーディングするように構成される、ビデオコーダの例を代表する。
【0078】
たとえば、ビデオエンコーダ20およびビデオデコーダ30は、2N×2NのCUの残差4分木(RQT)データ構造のルートレベル(レベル0)が2N×2NのTUと2つのN×2N(もしくは2N×N)のTUとのいずれかに対応するように、かつ、RQTデータ構造のレベル1がN×NのTUに対応するように、構成され得る。あるいは、ビデオエンコーダ20およびビデオデコーダ30は、RQTデータ構造のルートレベル(レベル0)が2N×2NのTUに対応し、レベル1が2N×N(またはN×2N)のTUに対応し、レベル2がN×NのTUに対応するように、構成され得る。したがって、変換ユニットが対応するRQTデータ構造のレベルを示す情報をコーディングすることは、変換ユニットが正方形か非正方形かを示す情報をコーディングすることの例を代表し得る。
【0079】
別の代替形態として、ビデオエンコーダ20およびビデオデコーダ30は、TUがRQTデータ構造のルートレベル(レベル0)において対応するPUと同じサイズを常に有するように、または、非正方形TUのみがある形状のPU、たとえば非正方形PUとともに使用されるように、構成され得る。したがって、変換ユニットが正方形か非正方形かを示す情報をコーディングすることは、変換ユニットに対応する予測ユニットが正方形か非正方形かに少なくとも一部基づき得る。いくつかの例では、変換ユニットに対応する予測ユニットが正方形か非正方形かを示す情報をコーディングすること自体が、変換ユニットが正方形か非正方形かを示すコーディングされた情報に相当し得る。
【0080】
加えて、または代替的に、ビデオエンコーダ20およびビデオデコーダ30は、1つまたは複数の変換ユニットのサイズを表すデータをコーディングするように構成され得る。たとえば、ビデオエンコーダ20は、変換ユニットのサイズを選択し、選択されたサイズを示す値をコーディングすることができ、一方ビデオデコーダ30は、受信されたデータを復号し解釈して、コーディングされた変換ユニットのサイズを決定することができる。このようにして、ビデオエンコーダ20およびビデオデコーダ30は、同じ変換ユニットサイズをCUのTUに適用することができる。一般に、変換ユニットサイズを示す情報をコーディングすることは、そのような情報を符号化するビデオエンコーダ20、またはそのような情報を復号するビデオデコーダ30を指し得る。
【0081】
いくつかの例では、変換ユニットサイズを示す情報をコーディングすることは、TUが、RQTのレベル0に対応するか、RQTのレベル1(または、RQTのより高いレベル)に対応するかを示す、splitフラグをコーディングすることを含み得る。そのような情報をコーディングすることはさらに、各レベルにおけるTUのサイズを示す情報をコーディングすることを含み得る。いくつかの例では、レベル0は、対応する2N×2NのCUのための、サイズ2N×2NのTUに対応する。他の例では、レベル0は、サイズ2N×2Nと2N×N(またはN×2N)とのいずれかのTUに対応してよく、レベル0が選択される場合、レベル0においてどのサイズが選択されるかを示すために、さらなる情報がコーディングされ得る。したがって、変換ユニットが対応するRQTにおけるレベルを示す情報をコーディングすること、splitフラグ(つまり、親変換ユニットが分割されて子変換ユニットを形成するかどうか)を示す情報をコーディングすること、および/または、変換選択フラグをコーディングすることは、ビデオデータの変換ユニットが正方形か非正方形かを示す情報をコーディングすることの例を代表し得る。
【0082】
たとえば、TUが0ではない変換係数を含むかどうか、つまりTUがコーディングされるかどうかということのような、TUのサイズを示す情報と一緒に、追加の情報がコーディングされ得る。そのような情報は、輝度のTUおよび/またはクロミナンスのTUに対するコーディングされたブロックフラグを含み得る。したがって、ビデオエンコーダ20およびビデオデコーダ30は、変換ユニットが正方形か非正方形かを示す情報を、変換ユニットがクロミナンス成分に対応するか輝度成分に対応するかに少なくとも一部基づいて、コーディングするように構成され得る。
【0083】
さらに、加えて、または代替的に、ビデオエンコーダ20およびビデオデコーダ30は、様々なTUの量子化パラメータを表すデータをコーディングするように構成され得る。具体的には、ビデオエンコーダ20およびビデオデコーダ30は、TUが正方形か非正方形かに基づいて、異なる量子化パラメータをTUに適用するように構成され得る。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、現在のピクチャの基本量子化パラメータQP
0を表す値をコーディングすることができる。その上、ビデオエンコーダ20およびビデオデコーダ30は、QP
0の値に適用されるべきオフセット値を決定するように構成されてよく、オフセット値は、正方形のTUと非正方形のTUとで異なり得る。たとえば、非正方形TUでは、オフセット値は(QP
0+3に対しては)3であってよく、正方形TUでは、オフセット値は(QP
0に等しいQPでは)0であってよい。正方形TUと非正方形TUに対して異なるQP値を使用することで、さらなる順応性をもたらすことができ、これにより、より良好なコーディング性能を実現することが可能になり得る。オフセット値は固定されていてよく、または、たとえば、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、スライスヘッダ、ピクチャヘッダ、または他のデータ構造においてシグナリングされてよい。このようにして、ビデオエンコーダ20およびビデオデコーダ30は、変換ユニットが正方形か非正方形かに基づいて、変換ユニットに対する量子化パラメータを決定するように構成され得る。
【0084】
その上、ビデオエンコーダ20およびビデオデコーダ30は、追加で、または代替的に、非正方形TUに対して特定の走査パターンを実行するように構成され得る。たとえば、TUが非正方形である場合、TUは一般に、長方形または非正方形であると考えられ得る。したがって、TUは、一方の辺が他方の辺よりも長くなり得る。たとえば、N×2NのTUでは、長さ2Nの辺(たとえば、上側と下側)は長さNの辺(たとえば、左側と右側)よりも長い。同様に、2N×NのTUでは、長さ2Nの辺(たとえば、左側と右側)は長さNの辺(たとえば、上側と下側)よりも長い。本開示の技法によれば、ビデオエンコーダ20およびビデオデコーダ30は、非正方形TUのどちらの辺が長いかに基づいて、走査を実行するように構成され得る。たとえば、N×2NのTUでは、ビデオエンコーダ20およびビデオデコーダ30は、順番が全般に左下から右上である波面走査を使用するように構成されてよく、常に短い方の端(たとえば、左の端)から始めることができる。このようにして、ビデオエンコーダ20およびビデオデコーダ30は、変換ユニットが非正方形である場合、変換ユニットの短い方の端から開始する走査パターンを適用して、変換ユニットの係数を変換するように構成され得る。
【0085】
さらに、ビデオエンコーダ20およびビデオデコーダ30は、追加で、または代替的に、非正方形変換ユニットをサポートするための修正されたCABACエントロピーコーディング技法を実行するように構成され得る。具体的には、非正方形変換ユニットをサポートするエントロピーコーディング技法は、(走査の順序で)最後の有意な係数と、有意性マップと、係数レベルとを示す情報を、シグナリングおよびコーディングすることを含み得る。非正方形ブロックに対しては、最後の有意な係数のシグナリングにおいて、ビデオエンコーダ20およびビデオデコーダ30は、(たとえば、CABACに対する)コンテキストモデルがコーディングされている座標の辺の長さに応じたものになるように、構成され得る。たとえば、水平方向の座標(最後の有意な係数のx成分)は、ブロックの幅とコーディングされているxのビンとに応じたCABACコンテキストを有し得る。同様に、垂直方向の座標(y成分)は、ブロックの高さに応じて割り当てられるコンテキストセットを有し得る。
【0086】
同様に、非正方形ブロックの有意性マップをコーディングするとき、2N×NおよびN×2Nは同じコンテキストを共有することができ、これにより、N×2Nおよび2N×Nに対して異なるコンテキストを有する場合と比較して、コンテキストの総数を減らすことができる。垂直方向の非正方形TUおよび水平方向の非正方形TUは、同じコンテキストと、コンテキストを選択するための同じ規則のセットとを使用することができる。しかしながら、一方のTUの方向に対する係数のX座標およびY座標は、コンテキスト選択に使用され得るが、他方の方向に対する係数のX座標およびY座標は、同じコンテキスト選択基準を使用するために転置され得る。具体的には、性能を向上させるために、ビデオエンコーダ20およびビデオデコーダ30は、直接共有を実行するのではなく、長方形の形状の座標と値とを転置することができる。たとえば、2N×Nの変換ユニットをコーディングするとき、ビデオエンコーダ20およびビデオデコーダ30は、コンテキストを直接適用することができるが、N×2Nの変換ユニットをコーディングするとき、ビデオエンコーダ20およびビデオデコーダ30は、コンテキストを選択する目的のみで、X座標およびY座標と、ブロックの幅および高さとを転置することができる。このようにして、ビデオエンコーダ20およびビデオデコーダ30は、2N×Nのブロックと転置されたN×2Nのブロックとの統計の類似性を利用するように構成され得る。
【0087】
例として、ビデオエンコーダ20およびビデオデコーダ30は、HEVCにおける4×4ブロックおよび8×8ブロックと同様の方式で、4×8ブロックおよび8×4ブロックに対する係数の配置に基づいて、有意性マップをコーディングするためのコンテキストを使用するように構成され得る。長辺に沿った2つの隣接する係数によって共有される、16個のコンテキストが使用されてよい。たとえば、XおよびYは係数の座標とし、「>>」は右シフト操作を表すものとし、CtxNumは現在のブロックに割り当てられたコンテキストとする。8×4ブロックのコンテキストは、次のように導出され得る。
【数4】
【0088】
4×8ブロックに対しては、コンテキストは、式(1)を使用しても導出され得るが、それはXとYを交換した後である。より大きなブロック、たとえば、16×4、4×16、およびそれを上回るブロックに対しては、ビデオエンコーダ20およびビデオデコーダ30は、HEVCにおいて説明される方法と同様の方法を使用するように構成されてよく、この方法では、コンテキストは近隣の係数の有意性に基づく。適切な転置(または交換)操作が、2つの形状のうちの1つに適用され得る。
【0089】
係数レベルのコーディングのために、現在のHEVCは、4×4のサブブロックへのブロックの分割を利用し、各サブブロック内で順番にコーディングを実行する。しかしながら、このタイプの処理は、4×4サブブロックの中に収まらないブロックサイズ(たとえば、長方形の辺の少なくとも1つが4未満である場合)に対しては不適合である。したがって、ビデオエンコーダ20およびビデオデコーダ30は、ブロックが走査の順序でn個(たとえば、n=16)の連続する係数に分割される、コーディング処理を実行することができる。様々な例において、これは、すべての非長方形のブロックサイズに対して、または、4×4サブブロックを格納できないブロックサイズのみに対して、適用され得る。ビデオエンコーダ20およびビデオデコーダ30はさらに、非正方形ブロックの4分木コーディング済ブロックフラグ(CBF)と、正方形ブロックの4分木CBFとに対して、異なるセットの確率コンテキストを使用するように構成されてよく、それは、非正方形ブロックが正方形ブロックと異なる統計を有し得るからである。
【0090】
このようにして、ビデオエンコーダ20およびビデオデコーダ30は、変換ユニットが正方形か非正方形かに少なくとも一部基づいて、変換ユニットのデータをコーディングするように構成され得る。つまり、ビデオエンコーダ20およびビデオデコーダ30は、変換ユニットが非正方形である場合、変換ユニットの短い方の端の位置に基づいて、データをコーディングするためのコンテキストを選択するように構成され得る。
【0091】
図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、各々オーディオエンコーダおよびオーディオデコーダと統合されてよく、また、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なMUX−DEMUXユニット、または他のハードウェアとソフトウェアとを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットはITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0092】
このようにして、ビデオエンコーダ20およびビデオデコーダ30は、ビデオデータの変換ユニットが正方形か非正方形かを示す情報をコーディングし、変換ユニットが正方形か非正方形かに少なくとも一部基づいて変換ユニットのデータをコーディングするように構成される、ビデオコーダの例を代表する。たとえば、変換ユニットのデータをコーディングするために、ビデオエンコーダ20は、コーディングユニットの少なくとも一部分に対する残差データを計算し、残差データを変換して変換係数を生成し、変換係数を量子化し、変換ユニットが正方形か非正方形かに基づいて、変換ユニットの量子化された変換係数を符号化するように構成され得る。加えて、変換ユニットが正方形か非正方形かを示す情報をコーディングするために、ビデオエンコーダ20は、変換ユニットが正方形か非正方形かを示す情報を符号化するように構成され得る。
【0093】
同様に、ビデオデータの変換ユニットが正方形か非正方形かを示す情報をコーディングするために、ビデオデコーダ30は、ビデオデータの変換ユニットが正方形か非正方形かを示す情報を復号するように構成され得る。加えて、変換ユニットのデータをコーディングするために、ビデオデコーダ30は、変換ユニットが正方形か非正方形かに基づいて、変換ユニットの量子化された変換係数を復号し、量子化された変換係数を逆量子化し、変換係数を逆変換して、変換ユニットに対応するコーディングユニットの少なくとも一部分に対する残差データを生成するように構成され得る。
【0094】
ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せのような、種々の適切なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行することができる。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されてよい。
【0095】
ビデオエンコーダ20は、非正方形変換を使用してビデオデータをコーディングするための本開示の技法のうちのいずれかまたはすべてを実装することができる。同様に、ビデオデコーダ30は、非正方形変換を使用してビデオデータをコーディングするためのこれらの技法のうちのいずれかまたはすべてを実装することができる。本開示で説明されるビデオコーダは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングはビデオ符号化またはビデオ復号を指し得る。
【0096】
図2は、本開示で説明される動きベクトル予測処理における統合候補を選択するための技法を使用し得る、ビデオエンコーダ20の例を示すブロック図である。ビデオエンコーダ20は、例示のためにHEVCコーディングの状況において説明されるが、他のコーディング規格または方法に関して本開示を限定するものではない。ビデオエンコーダ20は、ビデオフレーム内のCUのイントラコーディングとインターコーディングとを実行することができる。イントラコーディングは、所与のビデオフレーム内のビデオデータの空間的冗長性を低減または除去するために、空間的予測を利用する。インターコーディングは、ビデオシーケンスの現在のフレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために、時間的予測を利用する。イントラモード(Iモード)は、いくつかの空間ベースのビデオ圧縮モードのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースのビデオ圧縮モードのいずれかを指し得る。
【0097】
図2に示されるように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。
図2の例では、ビデオエンコーダ20は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、参照フレームバッファ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。
図2に示される変換処理ユニット52は、残差データのブロックに実際の変換または変換の組合せを適用するユニットであり、CUの変換ユニット(TU)と呼ばれることもある変換係数のブロックと混同されるべきでない。変換処理ユニット52は、本開示で説明される技法に従って、非正方形変換を適用することができる。ビデオブロックの再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーチファクトを除去するためにブロック境界をフィルタリングするために、デブロッキングフィルタ(
図1に示されない)も含まれ得る。所望される場合、デブロッキングフィルタは通常、加算器62の出力をフィルタリングする。
【0098】
符号化処理中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロック、たとえば、最大コーディングユニット(LCU)に分割され得る。動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対して、受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接するブロックに対して、受信されたビデオブロックのイントラ予測コーディングを実行することができる。
【0099】
モード選択ユニット40は、たとえば、各モードについての誤差(歪みと呼ばれ得る)の結果に基づいて、コーディングモードのうちの1つ、すなわち、イントラまたはインターを選択することができ、得られたイントラまたはインター予測ブロック(たとえば、予測ユニット(PU))を、残差ブロックデータを生成するために加算器50に与え、参照フレーム中で使用する符号化されたブロックを再構成するために加算器62に与える。モード選択ユニット40はまた、上で説明された本開示の技法の変換選択の態様を実施することができる。加算器62は、以下でより詳しく説明されるように、予測ブロックを、そのブロックについての、逆変換ユニット60からの逆量子化され逆変換されたデータと合成して、符号化されたブロックを再構成する。いくつかのビデオフレームがIフレームとして指定されることがあり、Iフレーム中のすべてのブロックはイントラ予測モードで符号化される。いくつかの場合には、たとえば、動き推定ユニット42によって実行された動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測ユニット46は、PフレームまたはBフレーム中のブロックのイントラ予測符号化を実行することができる。さらに、モード選択ユニット40は、非正方形であり得る1つまたは複数のPUへとリーフノードコーディングユニットを区分する方式を選択することができる。たとえば、モード選択ユニット40は、SDIPの場合、2N×2NのCU、N/2×2Nもしくは2N×N/2のPUに対して、N×2Nもしくは2N×NのPUを選択することができ、または、非対称動き区分または非対称SDIPに対して、2N×nU、2N×nD、nL×2N、またはnR×2Nを選択することができる。
【0100】
動き推定ユニット42および動き補償ユニット44は、高度に統合されてよいが、概念的な目的のために別々に示されている。動き推定(または動き探索)は、ビデオブロックの動きを推定する動きベクトルを生成する処理である。動きベクトルは、たとえば、参照フレームの参照サンプル、すなわち参照ブロックに対する、現在のフレーム中の予測ユニットの変位を示し得る。動き推定ユニット42は、予測ユニットを参照フレームバッファ64に記憶された参照フレームの参照サンプルと比較することによって、インターコーディングされたフレームの予測ユニットの動きベクトルを計算する。参照サンプルは、絶対値差分和(SAD)、2乗差分和(SSD)、または他の差分尺度によって求められ得る画素の差分に関して、コーディングされているPUを含むCUの部分と厳密に一致することが見出されるブロックであり得る。参照サンプルは、参照フレームまたは参照スライス内のどこにでも発生する可能性があり、必ずしも、参照フレームまたはスライスのブロック(たとえば、コーディングユニット)境界において発生するとは限らない。いくつかの例では、参照サンプルは、挿入され得る部分画素位置において発生することがある。
【0101】
動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。具体的には、動き推定ユニット42は、上で説明された統合候補を利用して、統合モードに従って動きベクトルをシグナリングする(すなわち、動きベクトルのコピー元の近隣ブロックのインデックスをシグナリングする)ことができる。動きベクトルによって識別される参照フレームの部分は、参照サンプルと呼ばれることがある。動き補償ユニット44は、たとえば、PUの動きベクトルによって特定される参照サンプルを取り出すことによって、現在のCUの予測ユニットに対する予測値を計算することができる。
【0102】
イントラ予測ユニット46は、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、受信されたブロックをイントラ予測することができる。イントラ予測ユニット46は、空間的に隣接する、前にコーディングされたブロック、たとえば、ブロックに対する左から右、上から下への符号化順序を仮定すると、現在のブロックの上のブロック、右上のブロック、左上のブロック、または左のブロックに対して、受信されたブロックを予測することができる。イントラ予測ユニット46は、種々の異なるイントラ予測モードで構成され得る。たとえば、イントラ予測ユニット46は、符号化されているCUのサイズに基づいて、一定数の方向予測モード、たとえば、35個の方向予測モードで構成され得る。
【0103】
イントラ予測ユニット46は、たとえば、様々なイントラ予測モードの誤差値を計算し、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択することができる。方向予測モードは、空間的に隣接する画素の値を合成し、その合成された値をPU中の1つまたは複数の画素位置に適用するための機能を含み得る。PU中のすべての画素位置の値が計算されると、イントラ予測ユニット46は、PUと符号化されるべき受信されたブロックとの間の画素の差分に基づいて、予測モードの誤差値を計算することができる。イントラ予測ユニット46は、許容できる誤差値を生じるイントラ予測モードが発見されるまで、イントラ予測モードをテストし続けることができる。イントラ予測ユニット46は次いで、PUを加算器50に送ることができる。
【0104】
ビデオエンコーダ20は、コーディングされている元のビデオブロックから、動き補償ユニット44またはイントラ予測ユニット46によって計算された予測データを減算することによって、残差ブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数のコンポーネントを代表する。残差ブロックは画素の差分値の2次元行列に対応してよく、残差ブロック中の値の数は、残差ブロックに対応するPU中の画素の数と同じである。残差ブロック中の値は、PUの中と、コーディングされるべき元のブロックの中とで、同じ場所に位置する画素の値の差分、すなわち、誤差に対応し得る。差分は、コーディングされるブロックのタイプに応じて、彩度の差分または輝度の差分であり得る。
【0105】
変換処理ユニット52は、残差ブロックから1つまたは複数の変換ユニット(TU)を形成することができる。変換処理ユニット52は、上で説明された技法に従って、サイズ2N×N、N×2N、N×M、またはM×Nの非正方形変換を含み得る複数の変換の中から、ある変換を選択する。変換処理ユニット52は、次いで、選択された変換をTUに適用して、変換係数の2次元アレイを備えるビデオブロックを生成する。このようにして、変換処理ユニット52は、対応するPUと同じサイズのTU、または対応するPUよりサイズが小さなPUを使用することができる。当然、変換処理ユニット52は、PUよりサイズが大きなTUを使用することもできるが、一般には、対応するPUより大きなTUを使用するのは望ましくないことがある。
【0106】
具体的には、本開示の技法によれば、変換処理ユニット52は、ビデオデータの変換ユニットが正方形か非正方形かを示す情報をコーディングし、変換ユニットが正方形か非正方形かに少なくとも一部基づいて変換ユニットのデータをコーディングすることができる。つまり、いくつかの例では、変換処理ユニット52(または他の例ではモード選択ユニット40)は、リーフノードコーディングユニットのために、正方形変換ユニットを形成すべきか非正方形変換ユニットを形成すべきかを決定することができる。あるいは、モード選択ユニット40は、様々なコーディング経路のコーディング結果に基づいて、正方形変換ユニットを形成すべきか非正方形変換ユニットを形成すべきかを決定し、これによって各経路において変換処理ユニット52に正方形変換と非正方形変換のいずれかを使用させ、また、これらの様々なコーディング経路の結果に基づいて、たとえば、歪みに関して、もしくはレート−歪みの尺度に関して、変換ユニットのサイズと形状とを選択することができる。
【0107】
いくつかの例では、ビデオエンコーダ20(たとえば、ビデオエンコーダ20のモード選択ユニット40および/または変換処理ユニット52)は、正方形変換ユニットを使用すべきか非正方形変換ユニットを使用すべきかを決定するとき、追加のまたは代替的な基準を分析することができる。たとえば、現在のリーフノードCUのPUの形状に基づいて、現在のリーフノードCUのサイズに基づいて、またはそのような基準の組合せに基づいて、たとえばある成分(クロミナンス成分または輝度成分)に対して、ある状況では正方形変換ユニットのみまたは非正方形変換ユニットのみが利用可能となるように、ビデオエンコーダ20が構成され得る。
【0108】
その上、現在のリーフノードCUのTUの形状を選択した後、ビデオエンコーダ20は、選択された形状を示すデータをコーディングすることができる。たとえば、ビデオエンコーダ20は、現在のリーフノードCUのTUが対応するRQTのレベルを表すデータをコーディングするように構成され得る。いくつかの例では、PUの形状は、対応するTUの形状を指示し得るので、PUの形状を示す情報をコーディングすることも、対応するTUの形状を示し得る。同様に、TUがクロミナンス成分に対応するか輝度成分に対応するかを示す情報をコーディングすることはまた、TUが正方形か非正方形か(またはそれらであり得るか)を示し得る。たとえば、ビデオコーディングデバイスは、輝度成分については正方形TUと非正方形TUから選択するように構成され得るが、クロミナンス成分については正方形TUのみを使用するように構成され得る。
【0109】
変換処理ユニット52は、TUが加算器50から受信された残差データを含むように選択されたサイズのTUを形成し、残差データを画素領域から周波数領域に変換するように残差データへの変換を適用することができる。そのような変換されたデータは、変換係数と呼ばれ得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送ることができる。量子化ユニット54は次いで、その変換係数を量子化することができる。いくつかの例では、量子化ユニット54は、TUが正方形か非正方形かに基づいて、量子化パラメータを決定するように構成され得る。たとえば、量子化ユニット54は、TUが正方形か非正方形かに基づいて、量子化パラメータをある量だけオフセットすることができる。上で論じられたように、量子化ユニット54は、QP
0の値にオフセット値を適用することができ、ここでQP
0の値は、TUを含む現在のフレームまたはスライスに対してシグナリングされる量子化パラメータであり、オフセットは、TUが正方形か非正方形かに基づき得る。たとえば、正方形TUと非正方形TUに対して、QP
0の値への異なるオフセットを使用することができる。いくつかの場合には、正方形TUに対してはQP
0の値へのオフセットは使用しなくてよく、非正方形TUに対してはQP
0の値への選択されたオフセットを使用してよい。
【0110】
エントロピー符号化ユニット56は、走査パターンに従って、行列中の量子化された変換係数を走査してエントロピーコーディングすることができる。いくつかの例では、エントロピー符号化ユニット56は、たとえば、HEVCの技法または他の関連するコーディング規格ごとに、従来の走査を実行することができる。いくつかの例では、本開示の技法によれば、エントロピー符号化ユニット56は、変換ユニットの短い方の端と交わる角にある短い方の端において開始し走査パターンの方向にある長い方の端へと至る走査パターンを使用して、非正方形変換ユニットの量子化された変換係数を走査することができる。たとえば、エントロピー符号化ユニット56は、高さよりも長い幅を有するTUの左側の端において走査を開始することができ、このとき左側の端は上側の端と交わる。別の例として、エントロピー符号化ユニット56は、幅よりも長い高さを有するTUの上側の端において走査を開始することができ、このとき上側の端は左側の端と交わる。
【0111】
エントロピー符号化ユニット56はまた、TUが正方形か非正方形かに基づいて、TUの量子化された変換係数をコーディングするように構成され得る。一般に、エントロピーコーディングユニット56は、各係数に対して、係数が0よりも大きな絶対値を有するかどうか(つまり、係数が有意かどうか)、係数が走査の順序で最後の有意な係数かどうか、係数が正の値を有するか負の値を有するか、係数の絶対値が1より大きいかどうか、係数の絶対値が2より大きいかどうか、および係数の「レベル」の値(つまり、係数の絶対値から3を減算したものとしてコーディングされ得る、係数の絶対値)を示す、データ(つまり、シンタックス要素)を符号化することができる。エントロピー符号化ユニット56は、値が推測され得るシンタックス要素の符号化を飛ばすことができ、たとえば、係数が有意ではない場合、つまり、0より大きな絶対値を有さない場合、2よりも大きな絶対値を係数が有するかどうかを示すデータの符号化を飛ばすことができる。
【0112】
いくつかの例では、エントロピー符号化ユニット56は、コンテキスト適応バイナリ算術コーディング(CABAC)を使用して係数を符号化することができる。一般に、CABACを実行するとき、エントロピー符号化ユニット56は、複数のコンテキストセットのうちのあるセットとともに、そのセットの初期値を選択し、コーディングが進行するに従って状態間を遷移する。CABACを実行するために、エントロピー符号化ユニット56は、本開示で説明されるCABAC技法に従って送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択することができる。たとえば、コンテキストは、近隣の値が0ではないかどうかということと、上で説明された技法のCABACの態様に関して上で説明された他の基準および/またはデータとに関連し得る。エントロピー符号化ユニット56はまた、選択された変換を表す信号のような、シンタックス要素をエントロピー符号化することができる。エントロピー符号化ユニット56によるエントロピーコーディングの後、得られた符号化されたビデオは、ビデオデコーダ30などの別のデバイスに送信されてよく、あるいは、後で送信しまたは取り出すためにアーカイブされてよい。
【0113】
TUは、変換係数の2次元行列であると考えられ得るので、変換係数の各々は、ペアの値(X,Y)を使用してTUにおいて特定されてよく、TU内で、Xは水平方向の座標に対応し、Yは垂直方向の座標に対応する。最後の有意な係数のシンタックス要素(X,Y)(すなわち、最後の有意な係数のX座標と最後の有意な係数のY座標とを示すシンタックス要素)をコーディングするとき、エントロピー符号化ユニット56は、コーディングされている座標の辺の長さに基づいて、コンテキストセットを選択することができる。つまり、X成分をコーディングするとき、エントロピー符号化ユニット56は、TUの幅に基づいてコンテキストを選択することができ、一方Y成分をコーディングするとき、エントロピー符号化ユニット56は、TUの高さに基づいてコンテキストを選択することができる。
【0114】
TUの有意性マップ(すなわち、各々のそれぞれの係数が有意(0ではない)かどうかを示す値のセット)をコーディングするとき、エントロピー符号化ユニット56は、幅よりも高さが大きいTUと、高さよりも幅が大きいTUとで、基本的に同じコンテキストを使用することができる。そうするために、エントロピー符号化ユニット56は、直接的なコンテキストの決定を使用していくつかのTUをコーディングすることができ、TUの座標を転置し次いでコンテキストを決定することによって、他のTUをコーディングすることができる。たとえば、相対的に水平方向のTU(高さよりも幅が長い)に対しては、エントロピー符号化ユニット56は、直接的なコンテキストの決定を適用することができ、このときコンテキストは、係数のx座標およびy座標に基づいて係数に対して選択され、相対的に垂直方向のTU(幅よりも高さが長い)に対しては、エントロピー符号化ユニット56は、垂直方向のTUを転置し、次いでコンテキストを決定することができ、このときコンテキストは、転置されたx座標およびy座標に基づいて係数に対して選択される。具体的には、相対的に垂直方向のTUの中の各係数のx座標およびy座標は、コンテキストの選択のために、元のy座標が転置されたx座標として使用され、元のx座標が転置されたy座標として使用されるように、転置される。相対的に垂直方向のTUの中の係数の各々に対する転置された座標[(x,y)→(y,x)]は次いで、x座標およびy座標が相対的に水平方向のTUに対して使用されるのと同じ方式で、それぞれの係数に対するコンテキストを選択するために使用される。
【0115】
ある例として、エントロピー符号化ユニット56は、HEVCにおいて説明されるような4×4ブロックおよび8×8ブロックと同様に、係数の配置に基づいて、有意性マップのコーディングのために、CABACコンテキストを使用して、8×4のTUおよび4×8のTUの係数を符号化することができる。エントロピー符号化ユニット56は、上の式(1)に関して説明されたようなコンテキストを決定するように構成され得る。つまり、エントロピー符号化ユニット56は、8×4ブロックの各係数に対するコンテキストを、CtxNum=Y+(X>>1)として導出することができ、XおよびYは、コンテキストが決定されるそれぞれの係数の水平方向の座標および垂直方向の座標である。つまり、有意係数フラグのような、係数のシンタックス要素をコーディングするためのコンテキストの識別子は、係数のX座標およびY座標に基づき得る。同様に、エントロピー符号化ユニット56は、それぞれの係数のX座標とY座標をまず交換することによって、4×8ブロックの各係数に対するコンテキストを導出することができ、次いで、CtxNum=Y+(X>>1)を実行する。係数レベルのコーディングのために、エントロピー符号化ユニット56は、TUを走査の順序で16個の連続的な係数に分割することができる。非正方形ブロックのコーディング済ブロックフラグをコーディングするとき、エントロピー符号化ユニット56は、コンテキストの異なるセット、たとえば、対応する係数のX座標およびY座標に基づくコーディング済ブロックフラグに特別に対応するコンテキストを使用することができる。
【0116】
いくつかの場合には、エントロピー符号化ユニット56またはビデオエンコーダ20の別のユニットは、エントロピーコーディングに加えて、他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化ユニット56は、CUおよびPUのコーディング済ブロックパターン(CBP)の値を決定するように構成され得る。また、いくつかの場合には、エントロピー符号化ユニット56は、係数のランレングスコーディングを実行することができる。
【0117】
逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、画素領域において残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照フレームバッファ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算することができる。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数画素値を計算することができる。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償された予測ブロックに加算して、参照フレームバッファ64に記憶するための再構成されたビデオブロックを生成する。
【0118】
モード選択ユニット40は次いで、変換を適用した結果を分析し、どの変換がビットストリームの中でシグナリングされるべきかを選択することができ、上で説明された本技法の変換選択の態様に従って、レート−歪み分析または最適化を実行し、様々な変換を互いに比較することが多い。モード選択ユニット40は、上で説明された再帰的な選択処理を実施して、残差4分木変換構造を生成することができ、モード選択ユニット40は、この残差4分木変換構造を、上で説明されたシンタックス要素の形式でエントロピー符号化ユニット56に渡すことができる。
【0119】
このようにして、ビデオエンコーダ20は、ビデオデータの変換ユニットが正方形か非正方形かを示す情報をコーディングし、変換ユニットが正方形か非正方形かに少なくとも一部基づいて変換ユニットのデータをコーディングするように構成される、ビデオコーダの例を代表する。具体的には、変換ユニットのデータをコーディングするために、ビデオエンコーダ20は、コーディングユニットの少なくとも一部分に対する残差データを計算し、残差データを変換して変換係数を生成し、変換係数を量子化し、変換ユニットが正方形か非正方形かに基づいて、変換ユニットの量子化された変換係数を符号化するように構成されてよく、変換ユニットが正方形か非正方形かを示す情報をコーディングするために、ビデオエンコーダ20は、変換ユニットが正方形か非正方形かを示す情報を符号化するように構成され得る。加えて、ビデオエンコーダ20は、正方形変換ユニットを使用してコーディングユニットをコーディングした結果と、非正方形変換ユニットを使用してコーディングユニットをコーディングした結果とを比較して、この比較に基づいて正方形変換ユニットと非正方形変換ユニットのいずれかを選択することができる。
【0120】
図3は、符号化されたビデオシーケンスを復号するビデオデコーダ30の例を示すブロック図である。
図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームバッファ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(
図2参照)に関して説明された符号化経路とは全般的に逆の復号経路を実行することができる。
【0121】
エントロピー復号ユニット70は、変換係数の1次元アレイを取り出すために、符号化されたビットストリームに対してエントロピー復号処理を実行する。使用されるエントロピー復号処理は、ビデオエンコーダ20によって使用されたエントロピーコーディング(たとえば、CABAC、CAVLCなど)に依存する。エンコーダによって使用されるエントロピーコーディング処理は、符号化されたビットストリーム中でシグナリングされてよく、または所定の処理であってよい。一般に、エントロピー復号ユニット70は、エントロピー符号化ユニット56に関して上で説明されたものと逆の方式で、上で説明された技法のエントロピー復号の態様を実施する。エントロピー復号ユニット70はまた、上で説明された技法のシンタックス符号化の態様と全般に逆の、本技法のシンタックス復号の態様を実施して、ビットストリーム(
図2および
図3の例では「符号化されたビデオ」と表される)の中で特定されるシンタックス要素を復号することができる。
【0122】
いくつかの例では、エントロピー復号ユニット70(または逆量子化ユニット76)は、ビデオエンコーダ20のエントロピー符号化ユニット56(または量子化ユニット54)によって使用された走査モードを反映する走査を使用して、受信された値を走査することができる。この意味で、エントロピー復号ユニット70は、エントロピー符号化ユニット56に関して上で説明された技法の走査の態様と逆の方式で、本技法の走査の態様を実施することができる。係数の走査は逆量子化ユニット76において実行され得るが、例示のために、走査はエントロピー復号ユニット70によって実行されるものとして説明される。加えて、説明しやすいように別個の機能ユニットとして示されているが、ビデオデコーダ30のエントロピー復号ユニット70、逆量子化ユニット76、および他のユニットの構造および機能は、互いに高度に統合されてよい。
【0123】
逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された、量子化された変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。このようにして、逆量子化ユニット76は、量子化ユニット54に関して上で説明された技法の量子化の態様と全般的に逆の、本明細書で説明される技法の逆量子化の態様を実施することができる。その上、逆量子化ユニット76は、ビデオエンコーダ20の逆量子化ユニット58によって実施されるような、本技法と実質的に同じ態様を実施することができる。逆量子化処理は、たとえば、HEVCのために提案された処理またはH.264復号規格によって定義された処理と同様の、従来の処理を含み得る。逆量子化処理は、量子化の程度を判定し、同様に、適用されるべき逆量子化の程度を決定するための、CUについてビデオエンコーダ20によって計算される量子化パラメータQPの使用を含み得る。逆量子化ユニット76は、係数が1次元アレイから2次元アレイに変換される前または変換された後に、変換係数を逆量子化することができる。
【0124】
逆変換ユニット78は、逆量子化された変換係数に逆変換を適用する。いくつかの例では、逆変換ユニット78は、ビデオエンコーダ20からのシグナリングに基づいて、あるいはブロックサイズ、コーディングモードのような1つまたは複数のコーディング特性から変換を推測することによって、逆変換を決定することができる。いくつかの例では、逆変換ユニット78は、現在のブロックを含むLCUのための4分木のルートノードにおけるシグナリングされた変換に基づいて、現在のブロックに適用すべき変換を決定することができる。代替的に、変換は、LCU4分木中のリーフノードCUのためのTU4分木のルートにおいてシグナリングされ得る。いくつかの例では、逆変換ユニット78は、逆変換ユニット78が、復号されている現在のブロックの変換係数に2つ以上の逆変換を適用する、カスケード逆変換を適用することができる。逆変換ユニット78は、変換処理ユニット52に関して上で説明された非正方形変換の適用とは全般的に逆の方式で、1つまたは複数の非正方形逆変換を適用することができる。
【0125】
このようにして、逆変換ユニット78は、変換処理ユニット52に関して上で説明された技法の非正方形変換の態様と全般的に逆の、本明細書で説明される技法の非正方形変換の態様を実施することができる。その上、逆変換ユニット78は、ビデオエンコーダ20の逆変換ユニット60によって実施されるような、本技法と実質的に同じ態様を実施することができる。
【0126】
イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在のフレームの以前復号されたブロックからのデータとに基づいて、現在のフレームの現在のブロックについての予測データを生成することができる。
【0127】
一方、動き補償ユニット44は、動きベクトル、参照フレームインデックス、および動き方向のような、動き情報を示すシンタックスデータを受信することができる。取り出された動き予測方向、参照フレームインデックス、および計算された現在の動きベクトル(たとえば、統合モードに従って近隣のブロックからコピーされた動きベクトル)に基づいて、動き補償ユニットは、インター予測のための、現在の部分の動き補償されたブロックを生成する。これらの動き補償されたブロックは基本的に、残差データを生成するために使用される予測ブロックを再現する。
【0128】
動き補償ユニット72は、動き補償されたブロックを生成することができ、場合によっては、補間フィルタに基づいて補間を実行する。サブ画素精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数画素のための補間値を計算することができる。動き補償ユニット72は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを判定し、その補間フィルタを使用して予測ブロックを生成することができる。
【0129】
加えて、動き補償ユニット72およびイントラ予測ユニット74は、HEVCの例では、(たとえば、4分木によって与えられる)シンタックス情報の一部を使用して、符号化されたビデオシーケンスのフレームを符号化するために使用されたLCUのサイズを判定することができる。動き補償ユニット72およびイントラ予測ユニット74はまた、シンタックス情報を使用して、符号化されたビデオシーケンスのフレームの各CUがどのように分割されるか(および、同様に、サブCUがどのように分割されるか)を記述する分割情報を判定することができる。シンタックス情報はまた、各分割がどのように符号化されるかを示すモード(たとえば、イントラ予測またはインター予測、およびイントラ予測の場合はイントラ予測符号化モード)と、各インター符号化されたPUに対する1つまたは複数の参照フレーム(および/またはそれらの参照フレームの識別子を含んでいる参照リスト)と、符号化されたビデオシーケンスを復号するための他の情報とを含み得る。
【0130】
加算器80は、残差ブロックを、動き補償ユニット72またはイントラ予測ユニット74によって生成される対応する予測ブロックと合成して、復号されたブロックを形成する。ビデオデコーダ30はまた、デブロッキングフィルタを適用するデブロッキングユニットを含み得る。このフィルタは、ブロッキネスアーチファクトを除去するために、復号されたブロックをフィルタリングするために適用され得る。復号されたビデオブロックは次いで、参照フレームバッファ82に記憶され、参照フレームバッファ82は、その後の動き補償のための参照ブロックを与え、また、(
図1のディスプレイデバイス32などの)ディスプレイデバイス上での提示のために復号されたビデオを生成する。
【0131】
このようにして、ビデオデコーダ30は、ビデオデータの変換ユニットが正方形か非正方形かを示す情報をコーディングし、変換ユニットが正方形か非正方形かに少なくとも一部基づいて変換ユニットのデータをコーディングするように構成される、ビデオコーダの例を代表する。具体的には、ビデオデータの変換ユニットが正方形か非正方形かを示す情報をコーディングするために、ビデオデコーダ30は、ビデオデータの変換ユニットが正方形か非正方形かを示す情報を復号するように構成されてよく、変換ユニットのデータをコーディングするために、ビデオデコーダ30は、変換ユニットが正方形か非正方形かに基づいて変換ユニットの量子化された変換係数を復号し、量子化された変換係数を逆量子化し、変換係数を逆変換して、変換ユニットに対応するコーディングユニットの少なくとも一部分に対する残差データを生成するように構成され得る。
【0132】
図4は、コーディングユニット(CU)100A〜100Dが異なるサイズを有する複数のPUへと分割されることの、概念図である。サイズ2N×2NのCUは、CU100A〜100Dの区分戦略の1つに従って分割され得る。CU100Aは、サイズ2N×2NのPUを含むので、CU100AのPUは、CU100Aと同じサイズである。CU100Bは、サイズN×2Nの2つのPUへと分割される。CU100Cは、サイズ2N×Nの2つのPUへと分割される。CU100Dは、サイズN×Nの4つのPUへと分割される。これらの例の各々において、CUは、リーフノードCUであると仮定される。
【0133】
本開示の技法によれば、CU100A〜100DのTUは、正方形または非正方形であり得る。いくつかの例では、たとえば、ビデオエンコーダ20およびビデオデコーダ30が対応するPUと同じサイズを有するTUを使用するように構成される場合、CU100Bおよび100CのTUは非正方形であると仮定されてよいが、CU100Aおよび100DのTUは正方形であると仮定されてよい。他の例では、ビデオエンコーダ20およびビデオデコーダ30は、CU100Aおよび100Dに対しては正方形TUのみを使用するが、CU100Bおよび100Cに対しては正方形TUを使用するか非正方形TUを使用するかを決定するように構成され得る。
【0134】
図5は、例示的な残差4分木変換構造110を示す概念図である。
図5の例では、構造110はルートレベルを含み、ルートレベルは、4個のN×Nのサブブロック112A、112B、112C、および112Dに分割された、サイズ2N×2Nの外側の箱である。構造110のサブブロック112Bはさらに、サイズN/2×N/2の4個の副部分へと副次的に分割されており、これは、サイズN×Nの変換を副部分112Bに適用することで得られる結果よりも良好な結果を生むために、サイズN/2×N/2の変換が決定された可能性があることを意味する。部分の副部分112A、112C、および112Dに適用されるとき、ビデオエンコーダは、サイズN/2×N/2の変換ではなくサイズN×Nの変換を選んだので、副部分112A、112C、および112Dに関しては、サイズN/2×N/2の4個の副部分への、これらの部分のさらなる副次的な分割は、より良好な結果を生んでいない可能性がある。加えて、ルートレベルにおいて適用されるサイズ2N×2Nの変換は、副部分112A、112B、112C、および112Dに適用されるサイズN×Nの変換をビデオエンコーダが選択したことを考慮すると、
図5の例ではより良好な結果を生んでいない。
【0135】
RQT構造110の例は、
図5の例では正方形の形状のTUを示すが、本開示の技法によれば、RQT構造は、非正方形の形状のTUも含み得る。そのようなRQT構造の例が、
図8および
図9に関して以下で説明される。
【0136】
図6Aおよび
図6Bは、本開示で説明されるいくつかの技法による、波面走査を示す概念図である。
図6Aの例では、サイズ2N×Nの変換係数120の非正方形ブロックは、変換係数120の非正方形ブロックの最も左側の端である最短の端で開始し、左下から右上に、ビデオコーダによって走査される。高さが幅より小さいので、ビデオコーダは、変換係数120の非正方形ブロックの最も左側の境界から、これらの係数を走査することができる。ビデオエンコーダ20は、エントロピー符号化の間、たとえば、非正方形変換ユニットの短い方の端の位置に応じて、左上の角から開始し、
図6Aまたは
図6Bに示される順序で、非正方形変換ユニットの量子化された変換係数を走査することができる。別の例として、ビデオデコーダ30は、変換係数をエントロピー復号し、次いで、変換係数120の非正方形ブロックの対応する位置に、復号された変換係数を配置することができる。
【0137】
図6Bの例では、変換係数122の非正方形ブロックは、変換係数122の非正方形ブロックの最も左側の端である最短の端で開始し、右上から左下に、ビデオコーダによって走査される。幅が高さより小さいので、ビデオコーダは、変換係数122の非正方形ブロックの最も上側の境界から、これらの係数を走査することができる。ビデオエンコーダ20は、たとえば、エントロピー符号化の間、示された順序で、量子化された変換係数を走査することができる。別の例として、ビデオデコーダ30は、変換係数をエントロピー復号し、次いで、変換係数122の非正方形ブロックの対応する位置に、復号された変換係数を配置することができる。
【0138】
図7Aは、1つまたは複数の予測ブロック(たとえば、PU)へとブロック(たとえば、CU)を区分する様々なモード示す概念図である。具体的には、ブロック130は、予測ブロックが現在のブロックと同じサイズである例を示す。したがって、ブロック130は、対応するCUと同じサイズのPUを表し得る。ブロック132は、2N×2N画素のサイズを有すると言われることがあり、N×Nの予測ブロックに区分され得る。つまり、ブロック132は、4個の正方形の重複しないブロックに区分され、その各々が、親ブロックの対応する角と接触するちょうど1つの角を有する。
【0139】
ブロック134および136は、短距離イントラ予測(SDIP)に従って区分されたブロックの例を表す。SDIPは、2N×hNおよびhN×2Nという2つの新たなユニット区分タイプをもたらす、イントラコーディング技法である。2N×hNの区分(たとえば、ブロック134)では、CUは4個の2N×hNのPUを有し、hN×2N(たとえば、ブロック136)では、CUは4個のhN×2NのPUを有する。各PUは、固有のイントラ予測モード(たとえば、
図4に示される35個のモードの1つ)を有し得る。
図7Aは、ブロック134および136のSDIP区分が対称であることを示す。ブロック134では、SDIP区分は水平方向の軸に関して対称であるが、ブロック136では、SDIP区分は垂直方向の軸に関して対称である。したがって、ブロック134および136は、非正方形PUを含むブロックの例を表し、非正方形PUに対して、非正方形TUが本開示の技法に従って与えられ得る。本開示の技法によれば、ビデオエンコーダ20およびビデオデコーダ30のようなビデオコーダは、CU134および136のような、SDIP PUに区分されるCUに、非正方形変換を適用するように構成され得る。
【0140】
図7Bは、非対称的な区分へと区分されたブロック140〜146の様々な例を示す概念図である。
図7Bの例では、各ブロック140〜146は2つの長方形に区分され、ここでブロック140〜146の各々は元は2N×2Nのブロックである。一方の長方形は、N/2個の画素という寸法(すなわち、長さまたは幅)を有し、もう一方の長方形は、3N/2個の画素という同じ寸法を有する。非対称な区分は、インター予測では非対称動き区分(AMP)から、またはイントラ予測では非対称短距離イントラ予測(SDIP)から生じ得る。
【0141】
この例では、ブロック140、142、144、および146の各々は64×64の画素ブロックであるが、ブロックの他のサイズ(たとえば、32×32、16×16、128×128など)も同様の方式で区分され得る。ブロック140は、垂直方向の境界150Aによって、(1/2N)×2NのPU152Aおよび(3/2N)×2NのPU154Aという、2つのPUへと水平方向に分割される。ブロック142は、垂直方向の境界150Bによって、(3/2N)×2NのPU154Bおよび(1/2N)×2NのPU152Bという、2つのPUへと水平方向に分割される。ブロック144は、水平方向の境界150Cによって、2N×(3/2N)のPU154Cおよび2N×(1/2N)のPU152Cという、2つのPUへと垂直方向に分割される。ブロック146は、水平方向の境界150Dによって、2N×(1/2N)のPU152Dおよび2N×(3/2N)のPU154Dという、2つのPUへと垂直方向に分割される。このようにして、
図7BのPU152、154は、非対称であると呼ばれ得る。また、様々な例において、
図7BのPU152、154は、非対称動き区分または非対称SDIP区分により生じ得る。本開示の技法によれば、ビデオエンコーダ20およびビデオデコーダ30のようなビデオコーダは、CU140、142、144、および146のような、非対称PUに区分されるCUに、非正方形変換を適用するように構成され得る。
【0142】
図8は、非正方形変換ユニットを表現するための例示的な区分構造を示す概念図である。この区分構造は、残差4分木(RQT)に対応し得る。一般に、上で論じられたように、RQTは様々なレベルを有し得る。
図8の例では、RQTのレベル0に対応するTUは、ルートノード160Aのような正方形の形状と、ルートノード160Bのような非正方形の形状のいずれかを有してよく、ルートノード160Bは、2つの非正方形変換ユニット162Aおよび162Bに分割される。
【0143】
この例では、CUのTUが2N×2Nのサイズを有することを示すために、ビデオコーダは、TUがRQTのレベル0に対応することを示す値をコーディングすることができ、さらに、TUがルートノード160Aの形状と同様の形状に対応することを示す変換選択フラグをコーディングすることができる。一方、CUが非正方形TUを含むことを示すために、ビデオコーダは、TUがRQTのレベル0に対応することを示す値をコーディングすることができ、TUがルートノード160Bの変換ユニット162A、162Bの形状と同様の形状に対応することを示す変換選択フラグをコーディングすることができる。いくつかの例では、ビデオコーダはさらに、対応するCUのPUに基づいて、TU162A、162Bが幅よりも長い高さを有するかどうかを判定することができ、または、長さが幅よりも長いかどうかを示すデータをコーディングすることができる。
【0144】
図8に示されるRQTのレベル1に対応する、ノード166のTU164A〜164D(子変換ユニットとも呼ばれる)はN×Nのサイズを有するので、正方形の形状も有する。したがって、ビデオコーダは、TUがN×Nのサイズを有することを示すように、CUのTUが
図8のRQTのレベル1に対応することを示す値をコーディングすることができる。N×NのTUのみがレベル1にあるので、この例では、TUのサイズと形状とを示すためにさらなる情報がコーディングされる必要はない。たとえば、TUがRQTのレベル1に対応する場合、この例ではレベル1はTUのサイズおよび形状について1つの選択肢しか含まないので、ビデオコーダは変換選択フラグをコーディングする必要はない。
【0145】
いくつかの例では、ビデオエンコーダ20は、TU164A〜164Dに対応するサイズを有するTUを使用した様々な例において、CU(1つまたは複数の正方形PUまたは非正方形PUに区分され得る)の第1のコーディング経路を実行することができる。ビデオエンコーダ20は、第1のコーディング経路から得られる性能の尺度を分析することができ、その後、TU162Aおよび162Bに対応するTU(または関連する例では、水平方向を向いた非正方形TU)を使用して、CUの第2のコーディング経路を実行することができる。ビデオエンコーダ20は次いで、この第2のコーディング経路から得られる性能の尺度を分析し、第1のコーディング経路から得られる尺度を第2のコーディング経路から得られる尺度と比較することができる。第1のコーディング経路からの尺度がより良好である場合、ビデオエンコーダ20は、TU164A〜164Dに対応するサイズを有するTUを選択することができる。
【0146】
一方、第2のコーディング経路からの尺度がより良好である場合、ビデオエンコーダ20は、ルートノード160Aに対応するサイズを有するTUを使用して、第3のコーディング経路を実行し、第3のコーディング経路から得られる尺度を分析することができる。その上、ビデオエンコーダ20は、第3のコーディング経路からの尺度を、第2のコーディング経路からの尺度と比較することができる。第2のコーディング経路からの尺度がより良好である場合、ビデオエンコーダ20は、TU162A、162Bに対応するサイズを有するTUを選択することができる。一方、第3のコーディング経路からの尺度がより良好である場合、ビデオエンコーダ20は、ルートノード160Aに対応するサイズを有するTUを選択することができる。
【0147】
図9は、非正方形変換ユニットを表現するための別の例示的な区分構造を示す概念図である。この例では、RQTのレベル0に対応するルートノード170は、2N×2Nのサイズを有する。RQTのレベル1に対応するノード172は、2N×Nのサイズを有する2つのTU174A、174B(子変換ユニットとも呼ばれる)を含む。RQTのレベル2に対応するノード176は、サイズN×Nの4つのTU178A〜178Dを含む。
【0148】
この例では、ビデオコーダは、CUのTUがRQTのレベル0、1、または2に対応するかどうかを示す情報をコーディングすることができる。この例では、CUのTUがレベル0またはレベル2に対応する場合はTUは正方形であるが、TUがレベル1に対応する場合はTUは非正方形である。非正方形TUが幅よりも長い高さを有するかどうかを示すために、追加の情報がコーディングされてよく、またはこのことは、他の情報、たとえば、CUのPUが幅よりも長い高さを有するかどうかに基づいて決定されてよい。
【0149】
ビデオエンコーダ20は、
図8を参照して説明された方式と実質的に一致する方式で、
図9の例示的なRQTのレベル0、1、または2に対応するTUを使用するかどうか決定することができる。たとえば、ビデオエンコーダ20は、レベル2のTUを使用した結果とレベル1のTUを使用した結果を比較することができ、レベル1のTUを使用した結果がより良好である場合、レベル0のTUを使用した結果とレベル1のTUを使用した結果を比較することができる。ビデオエンコーダ20は、これらの結果に基づいて、TUのサイズを選択することができる。ビデオエンコーダ20は、選択されたTUのサイズと形状とを示す情報をコーディングすることができ、ビデオデコーダ30は、そのような情報を復号して、TUのサイズと形状とを決定することができる。
【0150】
図10Aは、CUが正方形TUを含むか非正方形TUを含むかをシグナリングするための例示的なシグナリングデータを示す概念図である。この例では、シグナリングデータは、splitフラグ180と、変換選択(TS)フラグ182と、輝度コーディング済ブロックフラグ(luma CBF)184と、青色相クロミナンスCBF(chroma−u CBF)186と、赤色相クロミナンスCBF(chroma−v CBF)188とを含む。Splitフラグ180は、ルートレベル変換が採用されるかどうか、またはより小さな変換が使用されるかどうかを示し得る。たとえば、splitフラグ180は、ルートノードTUのサイズが使用されることを示すための第1の値(たとえば、0)、または、ルートノードTUがより小さなTUに分割されることを示すための第2の値(たとえば、1)を有し得る。したがって、
図10Aのシグナリングデータは、
図8に示されたもののようにRQTに対応し得る。
【0151】
TSフラグ182は、所与のCUに対して正方形変換ユニットが使用されるか非正方形変換ユニットが使用されるかを示す値を有し得る。たとえば、ルートレベルTUが使用されることをsplitフラグ180が示す場合、TSフラグ182は、ルートレベルTUが正方形(たとえば、2N×2N)か非正方形(たとえば、2N×NまたはN×2N)かを示し得る。したがって、
図8の例に関して、splitフラグ180は、リーフノードCUがレベル0のTUを有することを示すために0という値に設定されてよく、TSフラグ182の0という値は、ルートノード160Aに対応するTUをCUが有することを示すことができ、TSフラグ182の1という値は、TU162A、162Bに対応する2つのTUをCUが有することを示すことができる。いくつかの例では、より高いレベル(たとえば、レベル1)のRQTが使用されることをsplitフラグ180が示す場合、TSフラグ182がコーディングされる必要はない。
【0152】
各CUは、輝度値を示す輝度成分と、色値(たとえば、青と赤の色相)を示す2つのクロミナンス成分という、3つの異なる成分に対するTUを含み得る。様々な成分に対するTUは各々、同じ方法で分割され得るので、RQTに対するデータによって示されるように、すべて、正方形と非正方形のいずれかであり得る。その上、luma CBF184は、輝度成分に対するTUの少なくとも1つの係数が0ではない、すなわち有意であるかどうかを示す値を有し得る。少なくとも1つの0ではないTUの係数がある場合、つまり、少なくとも1つの有意な係数がある場合、TUは「コーディング済」と言われる。同様に、chroma−U CBF186は、第1のクロミナンス成分(たとえば、青色相彩度成分)に対するTUの少なくとも1つの係数が0ではないかどうかを示すことができ、一方chroma−V CBF188は、第2のクロミナンス成分(たとえば、青色相彩度成分)に対するTUの少なくとも1つの係数が0ではないかどうかを示すことができる。
【0153】
いくつかの例では、TUが非正方形の形状を有することをTSフラグ182が示す場合、複数のCBFが各成分に対してコーディングされ得る。たとえば、非正方形TU162A、162B(
図8)では、2つのCBFが、各成分に対してコーディングされ得る(CBF−Y0およびCBF−Y1、CBF−U0およびCBF−U1、ならびにCBF−V0およびCBF−V1)。
【0154】
図10Bは、CUが正方形TUを含むか非正方形TUを含むかをシグナリングするためのシグナリングデータの代替的な例を示す概念図である。Splitフラグ190は、splitフラグ180(
図10A)と実質的に一致し得る。TSフラグ192は、変換選択フラグ182(
図10A)と実質的に一致し得る。しかしながら、この例では、より高いレベルのRQTが使用されるように、ルートノードTUが分割されることをsplitフラグ190が示す場合しか、TSフラグ192はコーディングされる必要がない。したがって、
図10Bのシグナリングデータは、
図9に示されたもののようにRQTに対応し得る。
【0155】
加えて、
図10Bのシグナリングデータは、CBFYYフラグ194を含む。CBFYYフラグ194は、対応するTUが正方形である場合は単一のCBF−Yフラグを表し、または、非正方形の対応する輝度TUの2つのCBF−Yフラグを表し得る。Y0およびY1と呼ばれる非正方形の輝度TUに対しては、CBFYYフラグ194は、CBF−Y0フラグとCBF−Y1フラグのORを表す値を有し得る。したがって、TU Y0とY1のいずれかまたは両方が0ではない係数を有する場合、CBFYYフラグ194は、TU Y0とY1の少なくとも1つが0ではない係数を有することを示す値を有し得る。したがって、TU Y0とY1のいずれが0ではない係数を有するかを示すために、CBFY0フラグ196およびCBFY1フラグ198に対して値がコーディングされ得る。CBFY0フラグ196は、TU Y0が0ではない係数を有するかどうかを示すことができ、一方CBFY1フラグ198は、TU Y1が0ではない係数を有するかどうかを示すことができる。一方、TU Y0とY1の両方のすべての係数の値が0である場合、CBFY0フラグ196およびCBFY1フラグ198は明確にコーディングされる必要はないが、TU Y0およびY1の各々のすべての係数の値が0であることを示すと、CBFYYフラグ194から推測され得る。
【0156】
同様に、CBFUVフラグ200は、対応するTUのCBF−UフラグとCBF−VフラグのORを表し得る。つまり、CBFUVフラグ200は、chroma−U TUとchroma−V TUの少なくとも1つが0ではない値の係数を有するかどうかを示し得る。chroma−U TUとchroma−V TUの少なくとも1つが0ではない値の係数を有することをCBFUVフラグ200が示す場合、CBF−Uフラグ202は、chroma−U TUが0ではない係数を有するかどうかを示すためにコーディングされてよく、CBF−Vフラグ204は、chroma−V TUが0ではない係数を有するかどうかを示すためにコーディングされてよい。chroma−U TUおよびchroma−V TUのすべての係数の値が0であることをCBFUVフラグ200が示す場合、CBF−Uフラグ202およびCBF−Vフラグ204はコーディングされる必要はない。いくつかの例では、TUが分割されることをsplitフラグ190が示す場合、追加のフラグ、たとえば、U1、U2、V1、およびV2に対するCBFUフラグが、クロミナンス成分に対して与えられ得る。
【0157】
いくつかの例では、splitフラグ190、CBFYYフラグ194、およびCBFUVフラグは、たとえば、VLC、ゴロムコーディング、単項コーディング、ランレングスコーディング、または他の結合コーディング方法を使用して、一緒にコーディングされ得る。この結合コーディングは、様々なフラグの間の相関を利用することができる。
【0158】
図11は、正方形変換ユニットまたは非正方形変換ユニットを使用してビデオデータを符号化するための、例示的な方法を示すフローチャートである。
図11の方法は、例示および説明のためにビデオエンコーダ20に関して説明される。しかしながら、他のビデオコーディングデバイスが、同様の方法を実行するように構成され得ることを理解されたい。方法のステップは、必ずしも示された順序で実行される必要はなく、いくつかのステップは、並列にではなく順番に実行されてよい。
【0159】
最初に、ビデオエンコーダ20は、現在のコーディングユニットのための1つまたは複数の予測ユニットを決定することができる(250)。たとえば、ビデオエンコーダ20は、いくつかのコーディング経路を実行して、コーディングユニットを1つまたは複数の予測ユニット(PU)に区分するための区分戦略を決定することができる。PUは、正方形または非正方形であり得る。たとえば、2N×2NのCUでは、たとえば、従来の区分、非対称動き区分、短距離イントラ予測区分、または非対称短距離イントラ予測区分の結果として、2N×2NのPU、2N×NのPU、N×2NのPU、2N×N/2のPU、N/2×2NのPU、2N×nUのPU、2N×nDのPU、nL×2NのPU、nR×2NのPU、または他のサイズのPUが存在し得る。
【0160】
いずれの場合でも、ビデオエンコーダ20は、コーディングユニットのための残差データも計算することができる(252)。つまり、PUを形成した後で、ビデオエンコーダ20は、CUの生の画素値と、PUの予測される画素値との間の、画素ごとの差分を計算して、残差データを形成することができる。ビデオエンコーダ20はさらに、変換ユニットの形状を、たとえば正方形TUか非正方形TUかを決定することができる(254)。いくつかの例では、ビデオエンコーダ20は、上で説明されたように、PUの形状に少なくとも一部基づいてTUの形状を選択することができる。同様に、ビデオエンコーダ20は、TUがクロミナンス成分に対応するか輝度成分に対応するかに少なくとも一部基づいて、TUの形状を選択することができる。その上、上で説明されたように、ビデオエンコーダ20は、複数のコーディング経路を実行して、正方形TUの形状を使用したコーディング結果と非正方形TUの形状を使用したコーディング結果とを比較することができる。これらの複数のコーディング経路は、PUの形状を決定するためのコーディング経路と同時に実行されてよく、または、PUの形状を選択した後で実行されてよい。
【0161】
いずれの場合でも、TUの形状を決定した後で、ビデオエンコーダ20は、残差データを含む、決定された形状の変換ユニットを形成することができる(256)。ビデオエンコーダ20は次いで、変換ユニットの残差データに変換を適用して(258)、変換係数の形式で、画素領域から変換領域(たとえば、周波数領域)に残差データを変換することができる。ビデオエンコーダ20はさらに、変換係数を量子化することができる(260)。上で論じられたように、変換係数を量子化することは、TUが正方形か非正方形かに少なくとも一部基づき得る。たとえば、ビデオエンコーダ20は、TUが正方形か非正方形かに基づいて決定される値だけ、TUに対する量子化パラメータをオフセットすることができる。
【0162】
ビデオエンコーダ20は次いで、量子化された変換係数を走査しエントロピーコーディングすることができる(262)。また、上で論じられたように、走査およびエントロピーコーディングは、TUが正方形か非正方形かに基づき得る。たとえば、走査は、非正方形TUの長さが短い方の端で開始することができ、コンテキストは、TUが非正方形かどうかに基づいて、係数のCABACコーディングに対して選択され得る。さらに、ビデオエンコーダ20は、TUの形状を示すデータをコーディングすることができる(264)。TUの形状を示すデータは、いくつかの例では、
図10Aまたは
図10Bに関して説明されるシンタックスデータに対応し得る。
【0163】
このようにして、
図11の方法は、ビデオデータの変換ユニットが正方形か非正方形かを示す情報をコーディングすることと、変換ユニットが正方形か非正方形かに少なくとも一部基づいて変換ユニットのデータをコーディングすることとを含む、方法の例を代表する。具体的には、変換ユニットのデータをコーディングすることは、コーディングユニットの少なくとも一部分に対する残差データを計算することと、残差データを変換して変換係数を生成することと、変換係数を量子化することと、変換ユニットが正方形か非正方形かに基づいて、変換ユニットの量子化された変換係数を符号化することとを含み得る。同様に、変換ユニットが正方形か非正方形かを示す情報をコーディングすることは、変換ユニットが正方形か非正方形かを示す情報を符号化することを含み得る。その上、方法はさらに、正方形変換ユニットを使用したコーディングユニットのコーディングの結果と、非正方形変換ユニットを使用したコーディングユニットのコーディングの結果とを比較することと、この比較に基づいて正方形変換ユニットと非正方形変換ユニットのいずれかを選択することとを含み得る。
【0164】
図12は、正方形変換ユニットまた非正方形変換ユニットを使用してビデオデータを復号するための例示的な方法を示すフローチャートである。
図12の方法は、例示および説明のためにビデオデコーダ20に関して説明される。しかしながら、他のビデオコーディングデバイスが、同様の方法を実行するように構成され得ることを理解されたい。同様に、方法のステップは、必ずしも示された順序で実行される必要はなく、いくつかのステップは、並列にではなく順番に実行されてよい。
【0165】
この例では、ビデオデコーダ30は、変換ユニットの形状を示すデータを復号することができる(280)。いくつかの例では、このデータはまた、対応する予測ユニットの形状を表し得る。他の例では、データは、いくつかの例では、
図10Aまたは
図10Bに関して説明されるシンタックスデータに対応し得る。このようにして、ビデオデコーダ30は、現在のCUに対するTUの形状を決定することができる。
【0166】
ビデオデコーダ30は次いで、TUの量子化された変換係数を逆走査しエントロピー復号することができる(282)。上で論じられたように、走査およびエントロピー復号(たとえば、CABACに対するコンテキスト選択)は、TUが正方形か非正方形かに基づき得る。ビデオデコーダ30は、復号された量子化された変換係数を逆走査して、量子化された変換係数を含むTUの形態で、2次元行列を復元することができ、この行列は、決定されたように正方形TUまたは非正方形TUの形状を有する。さらに、ビデオデコーダ30は、量子化された変換係数を逆量子化することができ(284)、これは、上で論じられたように、TUが正方形か非正方形かに基づき得る。ビデオデコーダ30はさらに、TUの変換係数を逆変換し、画素領域中で残差データを復元することができる(286)。
【0167】
ビデオデコーダ30はまた、TUに対応するPUに対する予測データを計算することができる(288)。たとえば、ビデオデコーダ30は、現在のCUを含む現在のピクチャまたはスライスの、近隣の以前にコーディングされた画素からのデータをイントラ予測することができ、または、現在のCUに対する動きベクトルのデータを使用して、以前にコーディングされたピクチャからのデータをインター予測することができる。いずれの場合でも、ビデオデコーダ30は次いで、予測データと残差データを合成して現在のCUを復元することができる(290)。その後、ビデオデコーダ30は、たとえば、その後の復号における参照として使用するために、復号されたCUを記憶することができ、完全なピクチャを復元した後で、復号されたCUを出力することができ、これによって合成されたデータを記憶し出力する(292)。
【0168】
このようにして、
図12の方法は、ビデオデータの変換ユニットが正方形か非正方形かを示す情報をコーディングすることと、変換ユニットが正方形か非正方形かに少なくとも一部基づいて変換ユニットのデータをコーディングすることとを含む、方法の例を代表する。具体的には、ビデオデータの変換ユニットが正方形か非正方形かを示す情報をコーディングすることは、ビデオデータの変換ユニットが正方形か非正方形かを示す情報を復号することを含み得る。同様に、変換ユニットのデータをコーディングすることは、変換ユニットが正方形か非正方形かに基づいて、変換ユニットの量子化された変換係数を復号することと、量子化された変換係数を逆量子化することと、変換係数を逆変換して、変換ユニットに対応するコーディングユニットの少なくとも一部分に対する残差データを生成することとを含み得る。
【0169】
1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。各機能は、ソフトウェアで実装される場合、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されてよく、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、データ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は全般に、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に相当し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0170】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【0171】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書で説明された技法の実装に適切な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内で与えられてよく、あるいは複合コーデックに組み込まれてよい。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
【0172】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々なコンポーネント、モジュール、またはユニットが説明されたが、それらのコンポーネント、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上で説明されたように、様々なユニットが、適切なソフトウェアおよび/またはファームウェアとともに、上で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられてよく、または相互動作可能なハードウェアユニットの集合によって与えられてよい。
【0173】
様々な例が説明されてきた。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータをコーディングする方法であって、
前記ビデオデータの変換ユニットが正方形か非正方形かを示す情報をコーディングすることと、
前記変換ユニットが正方形か非正方形かに少なくとも一部基づいて、前記変換ユニットのデータをコーディングすることとを備える、方法。
[C2]
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることが、変換選択フラグをコーディングすることを備える、C1に記載の方法。
[C3]
前記変換ユニットが子変換ユニットを備え、前記方法が、前記子変換ユニットに対する親変換ユニットが分割されるかどうかを示す情報をコーディングすることをさらに備え、前記子変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることが、前記子変換ユニットが正方形か非正方形かを示す前記情報を、前記親変換ユニットが分割される場合にのみコーディングすることを備える、C2に記載の方法。
[C4]
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることが、前記変換ユニットが対応する残差4分木(RQT)データ構造のレベルを示す情報をコーディングすることを備える、C1に記載の方法。
[C5]
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることが、前記変換ユニットがクロミナンス成分に対応するか輝度成分に対応するかに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることを備える、C1に記載の方法。
[C6]
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることが、前記変換ユニットに対応する予測ユニットが正方形か非正方形かに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることを備える、C1に記載の方法。
[C7]
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることが、前記変換ユニットに対応する予測ユニットが正方形か非正方形かを示す情報をコーディングすることを備える、C1に記載の方法。
[C8]
前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの量子化パラメータを決定することをさらに備える、C1に記載の方法。
[C9]
前記変換ユニットが非正方形である場合、前記変換ユニットの短い方の端から開始する走査パターンを適用して、前記変換ユニットの係数を変換することをさらに備える、C1に記載の方法。
[C10]
前記変換ユニットが正方形か非正方形かに少なくとも一部基づいて前記変換ユニットのデータをコーディングすることが、前記変換ユニットが非正方形である場合、前記変換ユニットの短い方の端の位置に基づいて前記データをコーディングするためのコンテキストを選択することを備える、C1に記載の方法。
[C11]
前記ビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることが、前記ビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報を復号することを備え、
前記変換ユニットの前記データをコーディングすることが、
前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの量子化された変換係数を復号することと、
前記量子化された変換係数を逆量子化することと、
前記変換係数を逆変換して、前記変換ユニットに対応するコーディングユニットの少なくとも一部分に対する残差データを生成することとを備える、C1に記載の方法。
[C12]
前記変換ユニットの前記データをコーディングすることが、
コーディングユニットの少なくとも一部分に対する残差データを計算することと、
前記残差データを変換して変換係数を生成することと、
前記変換係数を量子化することと、
前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの量子化された変換係数を符号化することとを備え、
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングすることが、前記変換ユニットが正方形か非正方形かを示す前記情報を符号化することを備える、C1に記載の方法。
[C13]
正方形変換ユニットを使用して前記コーディングユニットをコーディングした結果と、非正方形変換ユニットを使用して前記コーディングユニットをコーディングした結果とを比較することと、
前記比較に基づいて、正方形変換ユニットと非正方形変換ユニットのいずれかを選択することとをさらに備える、C12に記載の方法。
[C14]
ビデオデータの変換ユニットが正方形か非正方形かを示す情報をコーディングし、前記変換ユニットが正方形か非正方形かに少なくとも一部基づいて前記変換ユニットのデータをコーディングするように構成されたビデオコーダを備える、前記ビデオデータをコーディングするためのデバイス。
[C15]
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするために、前記ビデオコーダが、変換選択フラグをコーディングするように構成される、C14に記載のデバイス。
[C16]
前記変換ユニットが子変換ユニットを備え、前記ビデオコーダがさらに、前記子変換ユニットに対する親変換ユニットが分割されるかどうかを示す情報をコーディングするように構成され、前記ビデオコーダが、前記子変換ユニットが正方形か非正方形かを示す前記情報を、前記親変換ユニットが分割される場合にのみコーディングするように構成される、C15に記載のデバイス。
[C17]
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするために、前記ビデオコーダが、前記変換ユニットが対応する残差4分木(RQT)データ構造のレベルを示す情報をコーディングするように構成される、C14に記載のデバイス。
[C18]
前記ビデオコーダが、前記変換ユニットがクロミナンス成分に対応するか輝度成分に対応するかに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするように構成される、C14に記載のデバイス。
[C19]
前記ビデオコーダが、前記変換ユニットに対応する予測ユニットが正方形か非正方形かに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするように構成される、C14に記載のデバイス。
[C20]
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするために、前記ビデオコーダが、前記変換ユニットに対応する予測ユニットが正方形か非正方形かを示す情報をコーディングするように構成される、C14に記載のデバイス。
[C21]
前記ビデオコーダがさらに、前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの量子化パラメータを決定するように構成される、C14に記載のデバイス。
[C22]
前記ビデオコーダが、前記変換ユニットが非正方形である場合、前記変換ユニットの短い方の端から開始する走査パターンを適用して、前記変換ユニットの係数を変換するように構成される、C14に記載のデバイス。
[C23]
前記変換ユニットが正方形か非正方形かに少なくとも一部基づいて前記変換ユニットのデータをコーディングするために、前記変換ユニットが非正方形である場合、前記ビデオコーダが、前記変換ユニットの短い方の端の位置に基づいて前記データをコーディングするためのコンテキストを選択するように構成される、C14に記載のデバイス。
[C24]
前記ビデオコーダがビデオデコーダを備え、前記ビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするために、前記ビデオデコーダが、前記ビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報を復号するように構成され、前記変換ユニットの前記データをコーディングするために、前記ビデオデコーダが、前記変換ユニットが正方形か非正方形かに基づいて前記変換ユニットの量子化された変換係数を復号し、前記量子化された変換係数を逆量子化し、前記変換係数を逆変換して、前記変換ユニットに対応するコーディングユニットの少なくとも一部分に対する残差データを生成するように構成される、C14に記載のデバイス。
[C25]
前記ビデオコーダがビデオエンコーダを備え、前記変換ユニットの前記データをコーディングするために、前記ビデオエンコーダが、コーディングユニットの少なくとも一部分に対する残差データを計算し、前記残差データを変換して変換係数を生成し、前記変換係数を量子化し、前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの前記量子化された変換係数を符号化するように構成され、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするために、前記ビデオエンコーダが、前記変換ユニットが正方形か非正方形かを示す前記情報を符号化するように構成される、C14に記載のデバイス。
[C26]
集積回路と、
マイクロプロセッサと、
前記ビデオコーダを含むワイヤレス通信デバイスと
のうちの少なくとも1つを備える、C14に記載のデバイス。
[C27]
ビデオデータをコーディングするためのデバイスであって、
前記ビデオデータの変換ユニットが正方形か非正方形かを示す情報をコーディングするための手段と、
前記変換ユニットが正方形か非正方形かに少なくとも一部基づいて、前記変換ユニットのデータをコーディングするための手段とを備える、デバイス。
[C28]
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための前記手段が、変換選択フラグをコーディングするための手段を備える、C27に記載のデバイス。
[C29]
前記変換ユニットが子変換ユニットを備え、前記デバイスが、前記子変換ユニットに対する親変換ユニットが分割されるかどうかを示す情報をコーディングするための手段をさらに備え、前記子変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための前記手段が、前記子変換ユニットが正方形か非正方形かを示す前記情報を、前記親変換ユニットが分割される場合にのみコーディングするための手段を備える、C28に記載のデバイス。
[C30]
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための前記手段が、前記変換ユニットが対応する残差4分木(RQT)データ構造のレベルを示す情報をコーディングするための手段を備える、C27に記載のデバイス。
[C31]
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための前記手段が、前記変換ユニットがクロミナンス成分に対応するか輝度成分に対応するかに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための手段を備える、C27に記載のデバイス。
[C32]
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための前記手段が、前記変換ユニットに対応する予測ユニットが正方形か非正方形かに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための手段を備える、C27に記載のデバイス。
[C33]
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための前記手段が、前記変換ユニットに対応する予測ユニットが正方形か非正方形かを示す情報をコーディングするための手段を備える、C27に記載のデバイス。
[C34]
前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの量子化パラメータを決定するための手段をさらに備える、C27に記載のデバイス。
[C35]
前記変換ユニットが非正方形である場合、前記変換ユニットの短い方の端から開始する走査パターンを適用して、前記変換ユニットの係数を変換するための手段をさらに備える、C27に記載のデバイス。
[C36]
前記変換ユニットが正方形か非正方形かに少なくとも一部基づいて前記変換ユニットのデータをコーディングするための前記手段が、前記変換ユニットが非正方形である場合、前記変換ユニットの短い方の端の位置に基づいて前記データをコーディングするためのコンテキストを選択するための手段を備える、C27に記載のデバイス。
[C37]
前記ビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための前記手段が、前記ビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報を復号するための手段を備え、
前記変換ユニットの前記データをコーディングするための前記手段が、
前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの量子化された変換係数を復号するための手段と、
前記量子化された変換係数を逆量子化するための手段と、
前記変換係数を逆変換して、前記変換ユニットに対応するコーディングユニットの少なくとも一部分に対する残差データを生成するための手段とを備える、C27に記載のデバイス。
[C38]
前記変換ユニットの前記データをコーディングするための前記手段が、
コーディングユニットの少なくとも一部分に対する残差データを計算するための手段と、
前記残差データを変換して変換係数を生成するための手段と、
前記変換係数を量子化するための手段と、
前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの量子化された変換係数を符号化するための手段とを備え、
前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングするための前記手段が、前記変換ユニットが正方形か非正方形かを示す前記情報を符号化するための手段を備える、C27に記載のデバイス。
[C39]
実行されると、プロセッサに、
前記ビデオデータの変換ユニットが正方形か非正方形かを示す情報をコーディングさせ、
前記変換ユニットが正方形か非正方形かに少なくとも一部基づいて、前記変換ユニットのデータをコーディングさせる命令を記憶した、コンピュータ可読媒体を備える、コンピュータプログラム製品。
[C40]
前記プロセッサに前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングさせる前記命令が、前記プロセッサに変換選択フラグをコーディングさせる命令を備える、C39に記載のコンピュータプログラム製品。
[C41]
前記変換ユニットが子変換ユニットを備え、前記コンピュータプログラム製品が、前記子変換ユニットに対する親変換ユニットが分割されるかどうかを示す情報を前記プロセッサにコーディングさせる命令をさらに備え、前記子変換ユニットが正方形か非正方形かを示す前記情報を前記プロセッサにコーディングさせる前記命令が、前記子変換ユニットが正方形か非正方形かを示す前記情報を、前記親変換ユニットが分割される場合にのみ前記プロセッサにコーディングさせる命令を備える、C40に記載のコンピュータプログラム製品。
[C42]
前記プロセッサに前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングさせる前記命令が、前記変換ユニットが対応する残差4分木(RQT)データ構造のレベルを示す情報を前記プロセッサにコーディングさせる命令を備える、C39に記載のコンピュータプログラム製品。
[C43]
前記プロセッサに前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングさせる前記命令が、前記変換ユニットがクロミナンス成分に対応するか輝度成分に対応するかに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報を前記プロセッサにコーディングさせる命令を備える、C39に記載のコンピュータプログラム製品。
[C44]
前記プロセッサに前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングさせる前記命令が、前記変換ユニットに対応する予測ユニットが正方形か非正方形かに少なくとも一部基づいて、前記変換ユニットが正方形か非正方形かを示す前記情報を前記プロセッサにコーディングさせる命令を備える、C39に記載のコンピュータプログラム製品。
[C45]
前記プロセッサに前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングさせる前記命令が、前記変換ユニットに対応する予測ユニットが正方形か非正方形かを示す情報を前記プロセッサにコーディングさせる命令を備える、C39に記載のコンピュータプログラム製品。
[C46]
前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの量子化パラメータを前記プロセッサに決定させる命令をさらに備える、C39に記載のコンピュータプログラム製品。
[C47]
前記変換ユニットが非正方形である場合、前記プロセッサに、前記変換ユニットの短い方の端から開始する走査パターンを適用させて、前記変換ユニットの係数を変換させる命令をさらに備える、C39に記載のコンピュータプログラム製品。
[C48]
前記変換ユニットが正方形か非正方形かに少なくとも一部基づいて前記変換ユニットのデータを前記プロセッサにコーディングさせる前記命令が、前記変換ユニットが非正方形である場合、前記プロセッサに、前記変換ユニットの短い方の端の位置に基づいて前記データをコーディングするためのコンテキストを選択させる命令を備える、C39に記載のコンピュータプログラム製品。
[C49]
前記プロセッサに前記ビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングさせる前記命令が、前記プロセッサに前記ビデオデータの前記変換ユニットが正方形か非正方形かを示す前記情報を復号させる命令を備え、
前記プロセッサに前記変換ユニットの前記データをコーディングさせる前記命令が、前記プロセッサに、
前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの量子化された変換係数を復号させ、
前記量子化された変換係数を逆量子化させ、
前記変換係数を逆変換させて、前記変換ユニットに対応するコーディングユニットの少なくとも一部分に対する残差データを生成させる命令を備える、C39に記載のコンピュータプログラム製品。
[C50]
前記プロセッサに前記変換ユニットの前記データをコーディングさせる前記命令が、前記プロセッサに、
コーディングユニットの少なくとも一部分に対する残差データを計算させ、
前記残差データを変換させて変換係数を生成させ、
前記変換係数を量子化させ、
前記変換ユニットが正方形か非正方形かに基づいて、前記変換ユニットの量子化された変換係数を符号化させる命令を備え、
前記プロセッサに前記変換ユニットが正方形か非正方形かを示す前記情報をコーディングさせる前記命令が、前記プロセッサに前記変換ユニットが正方形か非正方形かを示す前記情報を符号化させる命令を備える、C39に記載のコンピュータプログラム製品。