(57)【要約】      （修正有）【課題】動画データのビットストリームから変換ユニットの残差係数を生成する方法を提供する。【解決手段】方法は、８ｘ８サイズの変換ユニット１５００が対応するイントラ予測モードが複数のイントラ予測モードのうちの第１のイントラ予測モードの場合、残差係数のスキャン順序が第１の残差係数のスキャン順序であり、有意係数グループフラグのスキャン順序が第１の有意係数グループフラグのスキャン順序であると判断する。イントラ予測モードが複数のイントラ予測モードのうちの第１のイントラ予測モードと異なる第２のイントラ予測モードの場合、残差係数のスキャン順序が第１の残差係数のスキャン順序とは異なる第２の残差係数のスキャン順序であると判断し、有意係数グループフラグのスキャン順序が第１の有意係数グループフラグのスキャン順序とは異なる第２の有意係数グループフラグのスキャン順序であると判断する。【選択図】図１５
2020074516.tif 000002
【特許請求の範囲】
【請求項１】
動画データを生成する方法であって、
８ｘ８のサイズである正方ブロックによって表わされる変換ユニットに関して、前記正方ブロックを構成する正方サブブロック内の残差係数のうちいずれかが有意係数であるか否かを示す有意係数グループフラグを含む、前記正方ブロック内の残差係数を表わすデータを取得する取得ステップと、
複数のイントラ予測モードのうちの前記変換ユニットに対応するイントラ予測モードに従って、複数のスキャン順序から、前記残差係数、および前記有意係数グループフラグのスキャン順序を決定する決定ステップと、
前記決定ステップにおいて決定された有意係数グループフラグおよび残差係数のスキャン順序に従って、前記取得ステップにおいて取得されたデータから動画データを生成する生成ステップと、を有し、
前記決定ステップにおいて、
前記変換ユニットに対応するイントラ予測モードが前記複数のイントラ予測モードのうちの第１のイントラ予測モードの場合、前記残差係数のスキャン順序が第１の残差係数のスキャン順序であり、前記有意係数グループフラグのスキャン順序が第１の有意係数グループフラグのスキャン順序であると判断し、
前記イントラ予測モードが前記複数のイントラ予測モードのうちの前記第１のイントラ予測モードと異なる第２のイントラ予測モードの場合、前記残差係数のスキャン順序が第１の残差係数のスキャン順序とは異なる第２の残差係数のスキャン順序であると判断し、前記有意係数グループフラグのスキャン順序が前記第１の有意係数グループフラグのスキャン順序とは異なる第２の有意係数グループフラグのスキャン順序であると判断し、
前記決定ステップにおいて、前記正方ブロックに含まれる正方サブブロックのうちの左隅に位置する正方サブブロックが有意係数を含むと推測され、前記生成ステップにおいて、前記左隅に位置するサブブロックとは異なるサブブロックの有意係数グループフラグが符号化されることを特徴とする生成方法。
【請求項２】
請求項１において、前記正方サブブロックは、互いに重複しない領域を表わすことを特徴とする生成方法。
【請求項３】
請求項１において、前記複数のスキャン順序は、後方斜め左下方向スキャン、後方水平方向スキャン、後方垂直方向スキャンを含むことを特徴とする生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、デジタル動画信号処理に関し、特に、変換ユニット（ＴＵ）の残差係数の符号化および復号化のための方法、装置、およびシステムに関し、変換ユニット（ＴＵ）は、正方形または非正方形とすることができる。
【背景技術】
【０００２】
現在、動画データの伝送および記憶のための実用例を含む、動画符号化のための多くの実用例が存在する。多くの動画符号化規格もまた開発されており、他も現在開発中である。動画符号化規格における最近の動向では、「映像符号化共同研究部会」（Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ：ＪＣＴ−ＶＣ）と呼ばれるグループが結成されている。映像符号化共同研究部会（ＪＣＴ−ＶＣ）は、動画符号化専門家グループ（ＶＣＥＧ）として知られる、国際電気通信連合（ＩＴＵ）の電気通信標準化部門（ＩＴＵ−Ｔ）の研究委員会１６、研究課題６（ＳＧ１６／Ｑ６）のメンバー、および動画専門家組織（ＭＰＥＧ）としても知られる、国際標準化機構／国際電気標準会議合同技術委員会１／専門部会２９／作業グループ１１（ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１）のメンバーを含む。
【０００３】
映像符号化共同研究部会（ＪＣＴ−ＶＣ）は、「Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ」として知られる既存の動画符号化規格より著しく優れている新しい動画符号化規格を作り出すことを目的としている。Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ規格は、それ自体が、ＭＰＥＧ−４およびＩＴＵ−Ｔ  Ｈ．２６３などの以前の動画符号化規格を大幅に改善したものである。開発中の新しい動画符号化規格は、「高効率動画符号化（ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ：ＨＥＶＣ）」と名称付けられている。映像符号化共同研究部会ＪＣＴ−ＶＣはまた、高解像度または高フレームレートで動作するように規格の実装をスケーリングする場合に困難を生じるという、高効率動画符号化（ＨＥＶＣ）のために提案された技術から生じる実装上の問題を考慮している。
【０００４】
高圧縮効率の実現に対して困難を呈するＨ．２６４／ＭＰＥＧ−４  ＡＶＣ動画符号化規格の１つの領域は、動画データを表すために使用される残差係数の符号化である。動画データは、一連のフレームにより形成され、各フレームは、サンプルの２次元配列を有する。典型的には、フレームは、１つの輝度チャネルと、２つの色差チャネルを有する。各フレームは、最大符号化ユニット（ＬＣＵ）の配列に分解される。最大符号化ユニット（ＬＣＵ）は、固定サイズを有し、エッジ寸法は、６４の輝度サンプルなどの、２のべき乗で、等しい幅と高さを有する。符号化ツリーは、各最大符号化ユニット（ＬＣＵ）を４つの符号化ユニット（ＣＵ）に細分割することを可能にし、それぞれの幅および高さが、もとの最大符号化ユニット（ＬＣＵ）の半分である。各符号化ユニット（ＣＵ）は、さらに、４つの等しいサイズの符号化ユニット（ＣＵ）に分割してもよい。そのような細分割処理は、最小符号化ユニット（ＳＣＵ）サイズに達するまで再帰的に適用してもよく、符号化ユニット（ＣＵ）は、最小サポートサイズまで定義することができる。最大符号化ユニットの、符号化ユニットの階層への再帰的細分化は、四分木構造を有し、符号化ツリーと称される。この細分化処理は、一連のフラグとして通信ビットストリームで符号化され、ビンとしてコード化される。したがって、符号化ユニットは、正方形である。
【０００５】
符号化ツリー内には、それ以上細分割されない１組の符号化ユニットが存在し、符号化ツリーの葉ノードを占める。変換ツリーは、これらの符号化ユニットで存在する。さらに、変換ツリーは、符号化ツリーで使用するような四分木構造を使用して、符号化ユニットを分解してもよい。変換ツリーの葉ノードでは、残差データが、変換ユニット（ＴＵ）を使用して符号化される。符号化ツリーとは対照的に、変換ツリーは、符号化ユニットを、非正方形の変換ユニットに細分割することができる。さらに、変換ツリー構造は、変換ユニット（ＴＵ）が、もとの符号化ユニットによってもたらされる領域のすべてを占めることを要求しない。
【０００６】
符号化ツリーの葉ノードでの各符号化ユニットは、予測されたデータサンプルの１つまたは複数の配列に細分割され、それぞれが、予測ユニット（ＰＵ）として知られる。各予測ユニット（ＰＵ）は、イントラ予測処理またはインター予測処理を適用することによって導出される、入力動画フレームデータの一部の予測を含む。いくつかの方法を使用して、符号化ユニット（ＣＵ）内で予測ユニット（ＰＵ）を符号化することができる。単一の予測ユニット（ＰＵ）は、符号化ユニット（ＣＵ）の領域全体を占めてもよく、または、符号化ユニット（ＣＵ）は、水平に、もしくは垂直に、２つの等しいサイズの矩形予測ユニット（ＰＵ）に分割してもよい。さらに、符号化ユニット（ＣＵ）は、４つの等しいサイズの正方予測ユニット（ＰＵ）に分割してもよい。
【０００７】
動画符号器は、動画データを一連の構文要素に変換することによって、動画データをビットストリームに圧縮する。コンテキスト適応型２進算術符号化（ｃｏｎｔｅｘｔ  ａｄａｐｔｉｖｅ  ｂｉｎａｒｙ  ａｒｉｔｈｍｅｔｉｃ  ｃｏｄｉｎｇ：ＣＡＢＡＣ）スキームが、開発中の高効率動画符号化（ＨＥＶＣ）規格において定義され、ＭＰＥＧ４−ＡＶＣ／Ｈ．２６４動画圧縮規格で定義されるような同一の算術符号化スキームを使用する。開発中の高効率動画符号化（ＨＥＶＣ）規格では、コンテキスト適応型２進算術符号化（ＣＡＢＡＣ）が使用される場合、各構文要素は、一連のビンとして表され、ビンは、利用可能なビンのセットから選択される。利用可能なビンのセットは、コンテキストモデルから取得され、ビン毎に１コンテキストを有する。各コンテキストは、可能性の高いビン値（ｖａｌＭＰＳ）、および算術符号化演算もしくは算術復号化演算のための確率状態を保持する。ビンはまた、バイパスコード化されてもよく、その場合、コンテキストとの関連はない。バイパスコード化されたビンは、ビットストリーム内の１ビットを消費し、したがって、１値または０値となる確率が等しいビンと適合する。構文要素からそのような一連のビンを作り出すことは、構文要素「に起因するビン」として知られる。
【０００８】
動画符号器または動画復号器では、別々のコンテキスト情報が各ビンに対して利用可能である場合、ビンに対するコンテキスト選択は、符号化効率を改善するための手段をもたらす。特に、符号化効率は、ビンの以前のインスタンスからの統計学的性質が、関連したコンテキスト情報を使用して、ビンの現在のインスタンスの統計学的性質と相関するように、特定のビンを選択することによって改善することができる。そのようなコンテキスト選択は、空間的ローカル情報をよく使用して、最適なコンテキストを決定する。
【０００９】
開発中の高効率動画符号化（ＨＥＶＣ）規格、およびＨ．２６４／ＭＰＥＧ−４  ＡＶＣでは、現在ブロックに対する予測が、他のフレームからの、または以前に復号化された現在ブロック内の隣接領域からの参照サンプルデータに基づいて導出される。予測と所望のサンプルデータとの間の差異は、残差として知られる。残差の周波数領域表現は、残差係数の２次元配列である。慣習的に２次元配列の左上隅は、低周波数情報を表す残差係数を備える。
【００１０】
典型的な動画データでは、サンプル値の変更の大部分は、段階的であり、残差内に圧倒的多数の低周波数情報をもたらす結果となる。これは、２次元配列の左上隅に位置する残差係数に対する強度がより高いことを明らかにする。
【００１１】
残差係数の２次元配列の左上隅において圧倒的多数を占める低周波数情報の特性は、選択された２進化スキームによって利用され、ビットストリームにおける残差係数のサイズを最小化することができる。
【００１２】
ＨＭ−５．０は、変換ユニット（ＴＵ）を、多数のサブセットに分割し、２つのパス内の各サブセットにおける残差係数をスキャンする。第１のパスは、非ゼロ値（有意）またはゼロ値（非有意）であるとして残差係数の状態を示すフラグを符号化する。このデータは、有意度マップとして知られる。第２のパスは、係数レベルとして知られる、有意残差係数の強度および符号を符号化する。
【００１３】
提供されたスキャンパターンは、残差係数の２次元配列を、１次元配列にスキャンすることを可能にする。ＨＭ−５．０では、提供されたスキャンパターンは、有意度マップと係数レベルとの両方を処理するために使用される。提供されたスキャンパターンを使用して有意度マップをスキャンすることによって、２次元有意度マップにおける最終有意係数の位置を判断することができる。スキャンパターンは、水平、垂直、または斜めとすることができる。
【００１４】
高効率動画符号化（ＨＥＶＣ）テストモデル５．０（ＨＭ−５．０）は、正方形および非正方形の両方である変換ユニット（ＴＵ）としても知られる、残差ブロックに対するサポートをもたらす。各変換ユニット（ＴＵ）は、残差係数の１セットを備える。等しいサイズの辺寸法を有する残差ブロックは、正方形の変換ユニット（ＴＵ）として知られ、等しくないサイズの辺寸法を有する残差ブロックは、非正方形の変換ユニット（ＴＵ）として知られる。
【００１５】
ＨＭ−５．０でサポートされる変換ユニット（ＴＵ）サイズは、４×４、８×８、１６×１６、３２×３２、４×１６、１６×４、８×３２、および３２×８である。典型的には、変換ユニット（ＴＵ）サイズは、輝度サンプルの点から記載されるが、４：２：０の色差フォーマットが使用される場合、各色差サンプルは、２×２輝度サンプルの領域を占める。それに応じて、変換ユニット（ＴＵ）をスキャンして、色差残差データを符号化するために、４×４輝度残差ブロックの場合に２×２であるような、水平および垂直寸法が半分のスキャンパターンを使用する。残差係数のスキャニングおよびコード化のために、１６×１６、３２×３２、４×１６、１６×４、８×３２、および３２×８変換ユニット（ＴＵ）が、サイズが４×４で、ＨＭ−５．０内に存在する対応するマップを用いて、多数のサブブロック、すなわち、変換ユニット（ＴＵ）スキャンの下位レイヤに分割される。ＨＭ−５．０では、これらの変換ユニット（ＴＵ）サイズに対するサブブロックは、変換ユニット（ＴＵ）におけるサブセットと共に配置される。あるサブブロック内で共に配置される有意度マップの一部内の設定された有意係数フラグは、有意係数グループと称される。１６×１６、３２×３２、４×１６、１６×４、８×３２、および３２×８変換ユニット（ＴＵ）に対して、有意度マップコード化は、２レベルスキャンを利用する。上位レベルスキャンは、後方斜め左下方向スキャン（ｂａｃｋｗａｒｄ  ｄｉａｇｏｎａｌ  ｄｏｗｎ−ｌｅｆｔ  ｓｃａｎ）などのスキャンを実行し、各サブブロックの有意係数グループを表すフラグをコード化または推測する。サブブロック内では、後方斜め左下方向スキャンなどのスキャンが実行され、１値の有意係数グループフラグを有するサブブロックに対する有意係数フラグをコード化する。１６×１６変換ユニット（ＴＵ）の場合には、４×４上位スキャンを用いる。３２×３２変換ユニット（ＴＵ）の場合には、８×８上位スキャンを用いる。１６×４、４×１６、３２×８、および８×３２変換ユニット（ＴＵ）サイズの場合には、それぞれ、４×１、１×４、８×２、および２×８上位スキャンを用いる。
【００１６】
各変換ユニット（ＴＵ）では、残差係数データは、ビットストリームに符号化してもよい。各「残差係数」は、周波数（ＤＣＴ）領域における変換ユニット内の画像特性を表し、変換ユニット内で独自の位置を占める数である。変換ユニットは、空間領域と周波数領域との間で変換することができる残差データサンプルのブロックである。周波数領域では、変換ユニット（ＴＵ）は、残差係数データとして、残差データサンプルを符号化する。変換ユニットの辺寸法は、２のべき乗で形成され、「輝度」チャネルに対して４サンプルから３２サンプルの範囲であり、「色差」チャネルに対して２から１６サンプルの範囲である。変換ユニット（ＴＵ）ツリーの葉ノードは、変換ユニット（ＴＵ）を含有するか、または、残差係数データを必要としない場合には、全く含有しない可能性がある。
【００１７】
変換ユニットの空間表現として、残差データサンプルの２次元配列があり、以下に詳細に説明するように、変形離散コサイン変換（ＤＣＴ）などの変換からもたらされる周波数領域表現もまた、残差係数の２次元配列である。変換ユニット（ＴＵ）内の典型的なサンプルデータのスペクトル特性は、周波数領域表現が、空間表現よりもコンパクトであることなどである。さらに、変換ユニット（ＴＵ）において典型的な圧倒的多数の低周波数スペクトル情報は、変換ユニット（ＴＵ）の左上に向かってより大きな値の残差係数のクラスタリングをもたらし、低周波数残差係数が表される。
【００１８】
変形離散コサイン変換（ＤＣＴ）または変形離散サイン変換（ＤＳＴ）は、残差変換を実施するために使用することができる。残差変換の実施は、各必要な変換ユニット（ＴＵ）サイズをサポートするよう構成される。動画符号器では、残差変換からの残差係数は、スケール変更され、量子化される。スケーリングおよび量子化により、残差係数の大きさが低減し、画質を低減するという代償を払って、ビットストリームにコード化されたデータのサイズを低減する。
【００１９】
開発中の高効率動画符号化（ＨＥＶＣ）規格の複雑度の一態様は、スキャニングを実行するために必要な参照テーブルの数である。参照テーブルを追加するごとにメモリの不要な消費をもたらすため、必要な参照テーブルの数を減らすことは、複雑度を低減する一態様である。
【発明の概要】
【発明が解決しようとする課題】
【００２０】
本発明の目的は、既存の配列の１つまたは複数の不利な点を実質的に克服する、または、少なくとも、改善することである。
【課題を解決するための手段】
【００２１】
本開示の一態様では、動画データのビットストリームから変換ユニットの残差係数を復号化する方法を提供する。本方法は、
動画データのビットストリームから変換ユニットを受信するステップであって、変換ユニットは、上位正方レイヤおよび下位正方レイヤを有し、上位レイヤは、最大４つの有意係数グループフラグの、有意係数グループフラグのそれぞれが下位レイヤの非重複領域を表す場合の正方配列を表す、ステップと、
受信した変換ユニットに対する正方上位レイヤの有意係数グループフラグを決定するステップと、
決定した有意係数グループフラグに従って、正方下位レイヤの残差係数の値を決定して、動画データのビットストリームの変換ユニットを復号化するステップと
を備える。
【００２２】
最大４つの有意係数グループフラグによって表される非重複領域のそれぞれは、それぞれが１６の残差係数を有する正方形領域であることが好ましい。
【００２３】
上位レイヤが４つの有意係数フラグを有することが望ましく、本方法は、所定のスキャンパターンにオフセットを適用することによって、下位レイヤの非重複領域のそれぞれに対するスキャンパターンを決定する、さらなるステップを備える。
【００２４】
本方法はまた、ビットストリームで符号化された有意係数フラグを復号化することによって、正方上位レイヤの有意係数グループフラグを決定してもよい。
【００２５】
正方上位レイヤの有意係数グループフラグを決定することは、有意係数フラグの少なくとも１つを推測することを備えることが好ましい。
【００２６】
変換ユニットの下位レイヤがサブブロックとして形成され、決定した有意係数グループフラグに従って、正方下位レイヤの残差係数の値を決定することは、変換ユニットのサブブロックのそれぞれを繰り返し処理することを備えることが有利である。この繰り返し処理により、サブブロックのそれぞれを表す線形配列を形成し、対応するオフセット値を使用して、線形配列から各サブブロックを再構成することが望ましい。
【００２７】
特定の実装形態では、上位レイヤは、４つの有意係数グループフラグの正方配列を表す。
【００２８】
一実装形態では、変換ユニットの下位レイヤのスキャン方向は、変換ユニットに適用されるイントラ予測モードに従って選択される。他の実装形態では、変換ユニットの上位レイヤのスキャン方向は、変換ユニットに適用されるイントラ予測モードに従って選択される。さらに、変換ユニットの上位レイヤのスキャン方向は、斜め方向であり、変換ユニットの下位レイヤのスキャン方向から独立している。
【００２９】
本開示の別の態様では、動画データのビットストリームにおける変換ユニットの残差係数を符号化する方法を提供する。本方法は、
変換ユニットの正方下位レイヤに対する残差係数の値を受信するステップと、
変換ユニットの正方上位レイヤに対する有意係数グループフラグを決定するステップであって、上位レイヤは、最大４つの有意係数グループフラグの、有意係数グループフラグのそれぞれが下位レイヤの非重複領域を表す場合の、正方配列を表す、ステップと、
正方形下位レイヤに対する残差係数の値と、正方上位レイヤの有意係数グループフラグとを符号化し、動画データのビットストリームにおける変換ユニットを符号化するステップと
を備える。
【００３０】
別の態様では、動画データを生成する方法を提供する。本方法は、動画データを生成する方法であって、
所定のサイズである正方ブロックによって表わされる変換ユニットに関して、前記正方ブロックを構成する正方サブブロック内の残差係数のうちいずれかが有意係数であるか否かを示す有意係数グループフラグを含む、前記正方ブロック内の残差係数を表わすデータを取得する取得ステップと、
複数のイントラ予測モードのうちの前記変換ユニットが対応するイントラ予測モードに従って、複数のスキャン順序から、前記残差係数、および前記有意係数グループフラグのスキャン順序を決定する決定ステップと、
前記決定した有意係数グループフラグおよび残差係数のスキャン順序に従って、前記生成ステップにおいて生成されたデータから動画データを生成する生成ステップと、を有し、
前記決定ステップにおいて、
前記変換ユニットが対応するイントラ予測モードが前記複数のイントラ予測モードのうちの第１のイントラ予測モードの場合、前記残差係数のスキャン順序が第１の残差係数のスキャン順序であり、前記有意係数グループフラグのスキャン順序が第１の有意係数グループフラグのスキャン順序であると判断し、
前記イントラ予測モードが前記複数のイントラ予測モードのうちの前記第１のイントラ予測モードと異なる第２のイントラ予測モードの場合、前記残差係数のスキャン順序が第１の残差係数のスキャン順序とは異なる第２の残差係数のスキャン順序であると判断し、前記有意係数グループフラグのスキャン順序が前記第１の有意係数グループフラグのスキャン順序とは異なる第２の有意係数グループフラグのスキャン順序であると判断する、ことを特徴とする。
【００３１】
他の態様もまた開示する。
【００３２】
本発明の少なくとも一実施形態を、以下の図面を参照して、ここで説明する。
【図面の簡単な説明】
【００３３】
【図１】動画符号器の機能モジュールを示す模式的ブロック図である。
【図２】動画復号器の機能モジュールを示す模式的ブロック図である。
【図３（Ａ）】図１の符号器で実施することができる汎用コンピュータシステムの模式的ブロック図である。
【図３（Ｂ）】図２の復号器で実施することができる汎用コンピュータシステムの模式的ブロック図である。
【図４】エントロピー符号器の機能モジュールを示す模式的ブロック図である。
【図５】エントロピー復号器の機能モジュールを示す模式的ブロック図である。
【図６】８×８変換ユニット（ＴＵ）の残差係数を符号化するための従来方法を示すフローダイアグラムである。
【図７】８×８変換ユニット（ＴＵ）の残差係数を復号化するための従来方法を示すフローダイアグラムである。
【図８】有意係数グループを使用して、８×８変換ユニット（ＴＵ）の残差係数を符号化するための、本開示による方法を示すフローダイアグラムである。
【図９】有意係数グループを使用して、８×８変換ユニット（ＴＵ）の残差係数を復号化するための、本開示による方法を示すフローダイアグラムである。
【図１０】（Ａ）８×８変換ユニット（ＴＵ）の有意係数のグループを表すための、本開示による方法である。  （Ｂ）８×８変換ユニット（ＴＵ）の有意係数のグループを表すための、本開示による方法である。
【図１１】後方斜め方向スキャンを使用して、８×８変換ユニット（ＴＵ）の残差係数をスキャンするための従来方法を示す図である。
【図１２】後方水平方向スキャンを使用して、８×８変換ユニット（ＴＵ）の残差係数をスキャンするための従来方法を示す図である。
【図１３】後方垂直方向スキャンを使用して、８×８変換ユニット（ＴＵ）の残差係数をスキャンするための従来方法を示す図である。
【図１４】２レイヤ階層を使用して、８×８変換ユニット（ＴＵ）の残差係数をスキャンするための、本開示による方法を示す図である。
【図１５】（Ａ）後方斜め方向スキャンを使用して、８×８変換ユニット（ＴＵ）の残差係数をスキャンするための、本開示による方法を示す図である。  （Ｂ）後方斜め方向スキャンを使用して、８×８変換ユニット（ＴＵ）の残差係数をスキャンするための、本開示による方法を示す図である。  （Ｃ）後方斜め方向スキャンを使用して、８×８変換ユニット（ＴＵ）の残差係数をスキャンするための、本開示による方法を示す図である。
【図１６】（Ａ）後方水平方向スキャンを使用して、８×８変換ユニット（ＴＵ）の残差係数をスキャンするための、本開示による方法を示す図である。  （Ｂ）後方水平方向スキャンを使用して、８×８変換ユニット（ＴＵ）の残差係数をスキャンするための、本開示による方法を示す図である。  （Ｃ）後方水平方向スキャンを使用して、８×８変換ユニット（ＴＵ）の残差係数をスキャンするための、本開示による方法を示す図である。
【図１７】（Ａ）後方垂直方向スキャンを使用して、８×８変換ユニット（ＴＵ）の残差係数をスキャンするための、本開示による方法を示す図である。  （Ｂ）後方垂直方向スキャンを使用して、８×８変換ユニット（ＴＵ）の残差係数をスキャンするための、本開示による方法を示す図である。  （Ｃ）後方垂直方向スキャンを使用して、８×８変換ユニット（ＴＵ）の残差係数をスキャンするための、本開示による方法を示す図である。
【図１８】（Ａ）オフセットを利用する、スキャニングのための代替手法である。  （Ｂ）オフセットを利用する、スキャニングのための代替手法である。  （Ｃ）オフセットを利用する、スキャニングのための代替手法である。
【発明を実施するための形態】
【００３４】
添付図面のいずれか一つまたは複数において、同じ参照番号を有するステップおよび／または特徴を参照する場合、それらのステップおよび／または特徴は、本説明の目的において、別異の意味が明らかでない限り、同じ機能または動作を意味する。
【００３５】
図１は、動画符号器１００の機能モジュールを示す模式的ブロック図である。図２は、対応する動画復号器２００の機能モジュールを示す模式的ブロック図である。動画符号器１００および動画復号器２００は、図３Ａおよび図３Ｂに示すような汎用コンピュータシステム３００を使用して実現することができ、さまざまな機能モジュールを、コンピュータシステム３００内の専用ハードウェアによって、コンピュータシステム３００内で実行可能なソフトウェアによって、またはコンピュータシステム３００内の専用ハードウェアおよび実行可能なソフトウェアの組み合わせによって実施することができる。
【００３６】
図３Ａから分かるとおり、コンピュータシステム３００は、コンピュータモジュール３０１と、キーボード３０２、マウスポインタデバイス３０３、スキャナ３２６、カメラ３２７、およびマイクロフォン３８０などの入力デバイスと、プリンタ３１５、ディスプレイデバイス３１４、および拡声器３１７などの出力デバイスとを備える。外部の変調器−復調器（モデム）トランシーバデバイス３１６は、コンピュータモジュール３０１が使用し、接続部３２１を介して、通信ネットワーク３２０と通信することができる。通信ネットワーク３２０は、インターネット、セルラー電子通信ネットワーク、またはプライベートＷＡＮなどのワイドエリアネットワーク（ＷＡＮ）としてもよい。接続部３２１が電話線である場合、モデム３１６は、従来の「ダイアルアップ」モデムとしてもよい。あるいは、接続部３２１が、大容量（例えば、ケーブル）接続である場合、モデム３１６は、ブロードバンドモデムとしてもよい。通信ネットワーク３２０に無線接続するために、無線モデムを使用してもよい。
【００３７】
典型的には、コンピュータモジュール３０１は、少なくとも１つのプロセッサユニット３０５、およびメモリユニット３０６を備える。例えば、メモリユニット３０６は、半導体ランダム・アクセス・メモリ（ＲＡＭ）および半導体リード・オンリー・メモリ（ＲＯＭ）を有してもよい。コンピュータモジュール３０１はまた、多数の入力／出力（Ｉ／Ｏ）インターフェース、すなわち、ビデオディスプレイ３１４、拡声器３１７、およびマイクロフォン３８０に結合するオーディオ−ビデオインターフェース３０７と、キーボード３０２、マウス３０３、スキャナ３２６、カメラ３２７、およびオプションのジョイスティックまたは他のヒューマン・インターフェース・デバイス（図示せず）に結合するＩ／Ｏインターフェース３１３と、外部モデム３１６およびプリンタ３１５のためのインターフェース３０８とを備える。実装形態によっては、モデム３１６は、コンピュータモジュール３０１内に、例えば、インターフェース３０８内に、組み込んでもよい。コンピュータモジュール３０１はまた、ローカル・ネットワーク・インターフェース３１１を有し、ローカル・ネットワーク・インターフェース３１１は、ローカルエリアネットワーク（ＬＡＮ）として知られるローカルエリア通信ネットワーク３２２に、接続部３２３を介して、コンピュータシステム３００を接続することを可能にする。図３Ａに図示したように、ローカル通信ネットワーク３２２はまた、接続部３２４を介して、ワイドネットワーク３２０に接続してもよく、接続部３２４は、典型的には、いわゆる「ファイアウォール」デバイスまたは同様の機能を有するデバイスを備える。ローカル・ネットワーク・インターフェース３１１は、Ｅｔｈｅｒｎｅｔ（登録商標）回路カード、Ｂｌｕｅｔｏｏｔｈ（登録商標）無線装置、またはＩＥＥＥ８０２．１１無線装置を備えることができるが、多数の他の種類のインターフェースを、インターフェース３１１として用いてもよい。
【００３８】
Ｉ／Ｏインターフェース３０８および３１３は、シリアル接続およびパラレル接続のいずれか、またはその両方とすることができ、前者は、典型的には、ユニバーサルシリアルバス（ＵＳＢ）規格に従って実現され、対応するＵＳＢ接続部（図示せず）を有する。記憶デバイス３０９が設置され、典型的には、ハードディスクドライブ（ＨＤＤ）３１０を含む。フロッピー（登録商標）・ディスク・ドライブおよび磁気テープドライブ（図示せず）などの他の記憶デバイスもまた、使用してもよい。典型的には、光学ディスクドライブ３１２が、データの不揮発性ソースとして動作するよう設けられる。例えば、光学ディスク（例えば、ＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、ＵＳＢ−ＲＡＭ、ポータブル、外部ハードドライブ、およびフロッピー（登録商標）ディスクなどのポータブル・メモリ・デバイスを、システム３００への適切なデータソースとして使用してもよい。典型的には、ＨＤＤ３１０、光学ドライブ３１２、ネットワーク３２０およびに３２２、またはカメラ３２７のいずれかは、符号化される動画データに対するソースであり、またディスプレイ３１４は、格納もしくは再生される復号化された動画データの送信先となる可能性がある。
【００３９】
典型的には、コンピュータモジュール３０１の構成要素３０５から３１３は、相互接続バス３０４を介し、当業者に既知である、コンピュータシステム３００の動作における従来のモードで通信する。例えば、プロセッサ３０５は、接続部３１８を使用して、システムバス３０４に結合される。同じように、メモリ３０６および光学ディスクドライブ３１２は、接続部３１９によって、システムバス３０４に結合される。記載した構成を実現することが可能なコンピュータの例には、ＩＢＭ−ＰＣならびに互換機、Ｓｕｎ  Ｓｐａｒｃｓｔａｔｉｏｎ、Ａｐｐｌｅ  Ｍａｃ（商標）、または同様のコンピュータシステムがある。
【００４０】
必要に応じて、または所望する場合、符号器１００および復号器２００は、以下に説明する方法と同様に、コンピュータシステム３００を使用して実現してもよく、符号器１００、復号器２００、ならびに図１０および図１１の処理は、説明するように、コンピュータシステム３００内で実行可能な、１つまたは複数のソフトウェア・アプリケーション・プログラム３３３として実現してもよい。特に、符号器１００、復号器２００、および記載した方法のステップは、コンピュータシステム３００内で実行されるソフトウェア３３３における命令３３１（図３Ｂ参照）によって実行される。ソフトウェア命令３３１は、１つまたは複数のコードモジュールとして形成してもよく、それぞれが、１つまたは複数の特定のタスクを実行する。ソフトウェアはまた、２つの別々の部分に分割してもよく、第１の部分および対応するコードモジュールは、説明した方法を実行し、第２の部分および対応するコードモジュールは、第１の部分とユーザとの間のユーザインターフェースを管理する。
【００４１】
ソフトウェアは、コンピュータ可読媒体に格納することができ、コンピュータ可読媒体は、例えば、以下で説明する記憶デバイスを含む。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム３００内にロードされ、次いで、コンピュータシステム３００によって実行される。コンピュータ可読媒体上に記録された、そのようなソフトウェアまたはコンピュータプログラムを有するコンピュータ可読媒体は、コンピュータプログラム製品である。コンピュータシステム３００においてコンピュータプログラム製品を使用することにより、符号器１００、復号器２００、および説明した方法を実現するために有利な装置をもたらすことが好ましい。
【００４２】
典型的には、ソフトウェア３３３は、ＨＤＤ３１０またはメモリ３０６に格納される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム３００内にロードされ、コンピュータシステム３００によって実行される。したがって、例えば、ソフトウェア３３３は、光学ディスクドライブ３１２によって読み取られる光学可読ディスク記憶媒体（例えば、ＣＤ−ＲＯＭ）３２５上に記憶してもよい。
【００４３】
場合によっては、アプリケーションプログラム３３３は、１つまたは複数のＣＤ−ＲＯＭ３２５で符号化されてユーザにもたらされ、対応するドライブ３１２を介して読み込まれ、または、ネットワーク３２０もしくは３２２からユーザによって読み込まれてもよい。またさらに、ソフトウェアは、他のコンピュータ可読媒体からコンピュータシステム３００内にロードすることもできる。コンピュータ可読記憶媒体は、コンピュータシステム３００で実行および／または処理するための、記録された命令および／またはデータをもたらす、任意の非一時的有形記憶媒体を意味する。そのような記憶媒体の例には、フロッピー（登録商標）ディスク、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ハードディスクドライブ、ＲＯＭもしくは集積回路、ＵＳＢメモリ、光磁気ディスク、またはＰＣＭＣＩＡカードなどのコンピュータ可読カードがあり、そのようなデバイスは、コンピュータモジュール３０１に内蔵または外付けする。ソフトウェア、アプリケーションプログラム、命令、および／または動画データもしくは符号化された動画データをコンピュータモジュール３０１にもたらす可能性のある一時的または非有形コンピュータ可読伝送媒体の例には、他のコンピュータまたはネットワークデバイスへの無線もしくは赤外線伝送チャネルおよびネットワーク接続、ならびに電子メール伝送およびウェブサイトなどに記録された情報を含むインターネットまたはイントラネットがある。
【００４４】
アプリケーションプログラム３３３の第２の部分および上記の対応するコードモジュールは、ディスプレイ３１４上で表現されるか、または表示される、１つまたは複数のグラフィカル・ユーザ・インターフェース（ＧＵＩ）を実現するよう実行してもよい。典型的には、キーボード３０２およびマウス３０３の操作を通じて、コンピュータシステム３００およびアプリケーションのユーザは、ＧＵＩと関連したアプリケーションに制御コマンドを送りおよび／または入力するよう機能的に適合可能な方法でインターフェースを操作することができる。機能的に適合可能なユーザインターフェースの他の形態は、拡声器３１７を介して出力される音声プロンプトおよびマイクロフォン３８０を介して入力されるユーザ音声コマンドなどを使用するオーディオインターフェースなどとして実現してもよい。
【００４５】
図３Ｂは、プロセッサ３０５および「メモリ」３３４の詳細な模式的ブロック図である。メモリ３３４は、図３Ａにおけるコンピュータモジュール３０１によってアクセス可能な全メモリモジュール（ＨＤＤ３０９および半導体メモリ３０６を含む）の論理集合を表す。
【００４６】
コンピュータモジュール３０１は、最初に、電源を入れられると、電源投入時の自己診断（ＰＯＳＴ）プログラム３５０を実行する。典型的には、ＰＯＳＴプログラム３５０は、図３Ａの半導体メモリ３０６のＲＯＭ３４９に格納される。ソフトウェアを格納するＲＯＭ３４９などのハードウェアデバイスは、ファームウェアと称される場合がある。ＰＯＳＴプログラム３５０は、コンピュータモジュール３０１内のハードウェアを検査して、適切に機能することを保証し、典型的には、プロセッサ３０５、メモリ３３４（３０９、３０６）、および基本入出力システムソフトウェア（ＢＩＯＳ）モジュール３５１をチェックし、さらに典型的には、正確に動作するために、ＲＯＭ３４９に格納される。ＰＯＳＴプログラム３５０が良好に実行されると、ＢＩＯＳ３５１は、図３Ａのハードディスクドライブ３１０を起動する。ハードディスクドライブ３１０を起動することにより、ハードディスクドライブ３１０上にあるブートストラップ・ローダ・プログラム３５２が、プロセッサ３０５を介して実行される。これにより、オペレーティングシステム３５３が、ＲＡＭメモリ３０６にロードされ、オペレーティングシステム３５３は、動作を開始する。オペレーティングシステム３５３は、プロセッサ３０５により実行可能なシステム・レベル・アプリケーションであり、さまざまな高レベル機能を実行し、高レベル機能には、プロセッサ管理、メモリ管理、デバイス管理、記憶管理、ソフトウェア・アプリケーション・インターフェース、および汎用ユーザインターフェースがある。
【００４７】
オペレーティングシステム３５３は、メモリ３３４（３０９、３０６）を管理して、コンピュータモジュール３０１で実行する各処理またはアプリケーションを、他の処理に割り当てられたメモリと衝突することなく実行するのに十分なメモリを確保することを保証する。さらに、図３Ａのシステム３００で利用可能な異なる種類のメモリを適切に使用して、各処理を効果的に実行することを可能にしなければならない。したがって、集合的なメモリ３３４は、（特に言及しない限り）メモリの特定のセグメントを割り当てる方法を示すことは意図しないが、コンピュータシステム３００によってアクセス可能なメモリの概観、およびそれらを使用する方法を示すことを意図する。
【００４８】
図３Ｂに示すように、プロセッサ３０５は、制御ユニット３３９、算術論理ユニット（ＡＬＵ）３４０、および、キャッシュメモリと呼ばれることもある、ローカルまたは内部メモリ３４８を含む多数の機能モジュールを含む。典型的には、キャッシュメモリ３４８は、レジスタ部分に、多数の記憶レジスタ３４４から３４６を備える。１つまたは複数の内部バス３４１は、これらの機能モジュールを、機能的に相互接続する。典型的には、プロセッサ３０５はまた、１つまたは複数のインターフェース３４２を有し、システムバス３０４を介して、接続部３１８を用いて、外部デバイスと通信する。メモリ３３４は、接続部３１９を用いて、バス３０４に結合される。
【００４９】
アプリケーションプログラム３３３は、条件分岐命令およびループ命令を含むことができる一連の命令３３１を備える。プログラム３３３はまた、プログラム３３３の実行時に使用するデータ３３２を含んでもよい。命令３３１およびデータ３３２は、それぞれ、メモリ領域３２８、３２９、３３０および３３５、３３６、３３７に格納される。命令３３１およびメモリ領域３２８から３３０の相対的なサイズに応じて、特定の命令が、メモリ領域３３０で示される命令によって表される単一のメモリ領域に格納され得る。その代わりに、命令は、メモリ領域３２８および３２９で示される命令セグメントによって表されるように、それぞれが別々のメモリ領域に格納される多数の部分にセグメンテーションされてもよい。
【００５０】
通常、プロセッサ３０５は、そこで実行される命令のセットを与えられる。プロセッサ３０５は、次の入力を待ち、プロセッサ３０５は、他のセットの命令を実行することによって対応する。各入力は、多数のソースのうちの１つまたは複数からもたらすことができ、入力デバイス３０２、３０３の１つもしくは複数によって生成されたデータ、ネットワーク３２０、３０２のうち１つの外部ソースから受信したデータ、記憶デバイス３０６、３０９の１つから検索されたデータ、または対応するリーダ３１２に挿入された記憶媒体３２５から検索されたデータを含み、すべて図３Ａに示される。命令のセットを実行することで、場合によっては、データを出力する可能性がある。命令の実行はまた、メモリ３３４へのデータまたは変数の格納を含んでもよい。
【００５１】
符号器１００、復号器２００、および説明した方法は、入力変数３５４を使用する。入力変数３５４は、メモリ３３４内の対応するメモリ領域３５５、３５６、３５７に格納される。符号器１００、復号器２００、および説明した方法は、出力変数３６１を生成する。出力変数３６１は、メモリ３３４内の対応するメモリ領域３６２、３６３、３６４に格納される。中間変数３５８は、メモリ領域３５９、３６０、３６６、および３６７に格納することができる。
【００５２】
図３Ｂのプロセッサ３０５において、レジスタ３４４、３４５、３４６、算術論理ユニット（ＡＬＵ）３４０、および制御ユニット３３９が協働し、プログラム３３３を構成する命令セット内のすべての命令に対する「取り出し、復号化、および実行」サイクルを行うのに必要な、一連のマイクロ操作を実行する。各取り出し、復号化、および実行サイクルは、以下を備える。
（ａ）取り出し動作：メモリ領域３２８、３２９、３３０から命令３３１を取り出しまたは読み取り
（ｂ）復号化動作：制御ユニット３３９が、どの命令が取り出されたかを判断する
（ｃ）実行動作：制御ユニット３３９および／またはＡＬＵ３４０が命令を実行するその後、次の命令のためのさらなる取り出し、復号化、および実行サイクルを実行してもよい。同様に、制御ユニット３３９がメモリ領域３３２に値を格納または書き込む格納サイクルを実行してもよい。
【００５３】
説明する図１、図２、図４、図５、図７から図１０、および図１４から図１７の処理における各ステップまたはサブ処理は、プログラム３３３の１つまたは複数のセグメントと関連づけられ、プログラム３３３の当該セグメントに対する命令セット内のすべての命令に対して、取り出し、復号化、および実行サイクルを行うために協働するプロセッサ３０５内のレジスタ部分３４４、３４５、３４７、ＡＬＵ３４０、および制御ユニット３３９によって実行される。
【００５４】
あるいは、符号器１００、復号器２００、および説明した方法は、説明した方法の機能またはサブ機能を実行する１つまたは複数の集積回路などの専用ハードウェアで実現してもよい。そのような専用ハードウェアは、コンピュータ化された装置の形式としてもよく、グラフィックプロセッサ、デジタル信号プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、または１つもしくは複数のマイクロプロセッサおよび関連したメモリを含んでもよい。そのようなコンピュータ化された装置を使用して、ハードウェアにおける何らかのコーディング動作およびハードウェアで実行するソフトウェアにおける他のコーディング動作を実行してもよい。
【００５５】
上記のように、動画符号器１００は、ハードディスクドライブ３０５にあり、プロセッサ３０５により実行中に制御される、ソフトウェア・アプリケーション・プログラム３３３の１つまたは複数のソフトウェア・コード・モジュールとして実現してもよい。特に、動画符号器１００は、ソフトウェア・アプリケーション・プログラム３３３の１つまたは複数のソフトウェアモジュールとしてそれぞれが実現され得るモジュール１０２から１１２、１１４、および１１５を備える。
【００５６】
動画符号器１００は、高効率動画符号化（ＨＥＶＣ）動画復号化パイプラインの一例であるが、モジュール１０２から１１２、１１４、および１１５によって実行される処理段階は、ＶＣ−１またはＨ．２６４／ＭＰＥＧ−４  ＡＶＣなどの他のビデオコーデックと共通である。動画符号器１００は、輝度サンプルおよび色差サンプルを含む一連のフレームとして、符号化されていないフレームデータ１０１を受信する。動画符号器１００は、例えば、フレームデータ１０１の各フレームを、符号化ユニット（ＣＵ）ツリーとして表すことが可能な、階層化された符号化ユニット（ＣＵ）のセットに分割する。
【００５７】
動画符号器１００は、マルチプレクサモジュール１１０からの、予測ユニット（ＰＵ）１２０として知られる予測されたデータサンプルの配列を受信することによって動作する。差異モジュール１１５は、予測ユニット（ＰＵ）１２０と、フレームデータ１０１から受信したデータサンプルの対応する配列との間の差異を出力する。差異は、残差データサンプル１２２として知られる。
【００５８】
差異モジュール１１５からの残差データサンプル１２２は、変換モジュール１０２によって受信される。変換モジュール１０２は、空間表現から周波数領域表現に差異を変換し、変換ツリーにおける各変換ユニット（ＴＵ）に対する変換係数１２４を生成する。開発中の高効率動画符号化（ＨＥＶＣ）規格の場合、周波数領域表現への変換は、変形離散コサイン変換（ＤＣＴ）を使用して実現され、従来のＤＣＴは、シフトおよび付加を用いて実現されるよう変更される。次いで、変換係数１２４は、スケール変更および量子化モジュール１０３に入力され、スケール変更ならびに量子化されて、残差係数１２６を生成する。スケール変更および量子化処理では、精度の損失が生じる。残差係数１２６は、スケール変更および量子化モジュール１０３によって実行されるスケーリングを反転する逆スケーリングモジュール１０５への入力と見なされ、残差係数１２６の再スケール変更バージョンである、再スケール変更された変換係数１２８を生成する。残差係数１２６はまた、符号化ビットストリーム１１３における残差係数を符号化するエントロピー符号器モジュール１０４への入力と見なされる。スケール変更および量子化モジュール１０３に起因する精度の損失のため、再スケール変更された変換係数１２８は、もとの変換係数１２４と同一ではない。逆スケーリングモジュール１０５からの再スケール変更された変換係数１２８は、次いで、逆変換モジュール１０６に出力される。逆変換モジュール１０６は、周波数領域から空間領域への逆変換を行い、復号器で生成される空間領域表現と同一である、再スケール変更された変換係数１２８の空間領域表現１３０を生成する。
【００５９】
動き推定モジュール１０７は、フレームデータ１０１を、典型的にはメモリ３０６内に構成されるフレーム・バッファ・モジュール１１２に格納された以前のフレームデータと比較することによって、運動ベクトル１３２を生成する。次いで、運動ベクトル１３２は、フレーム・バッファ・モジュール１１２に格納されるサンプルをフィルタリングし、運動ベクトル１３２から導出される空間オフセットを考慮に入れることによってインター予測参照サンプル１３４を生成する、動き補償モジュール１０８に入力される。図１に示さないが、運動ベクトル１３２もまた、構文要素として、符号化ビットストリーム１１３でコード化するために、エントロピー符号器モジュール１０４に通される。イントラフレーム予測モジュール１０９は、加算モジュール１１４から取得されるサンプル１３８を使用して、イントラ予測参照サンプル１３６を生成する。加算モジュール１１４は、マルチプレクサモジュール１１０の出力１２０と、逆変換モジュール１０６からの出力１３０とを合計する。
【００６０】
予測ユニット（ＰＵ）は、イントラ予測方法またはインター予測方法を使用してコード化してもよい。イントラ予測を使用するか、インター予測を使用するかの判断は、結果としての符号化ビットストリーム１１３の所望のビットレートと、イントラ予測方法またはインター予測方法により発生する画質劣化の量との間のレート−劣化トレードオフによる。マルチプレクサモジュール１１０は、現在の予測モード１４２により、図示しないが、当分野で既知である制御ロジックによって決定される、イントラフレーム予測モジュール１０９からのイントラ予測参照サンプル１３６、または動き補償ブロック１０８からのインター予測参照サンプル１３４のいずれかを選択する。予測モード１４２はまた、図示したように、エントロピー符号器１０４にもたらされ、説明するように、変換ユニットのスキャン順序を決定するか、または確立するために使用される。インターフレーム予測は、斜め方向スキャン順序のみを使用し、一方、イントラフレーム予測は、斜め方向スキャン順序、水平方向スキャン順序、または垂直方向スキャン順序を使用することができる。
【００６１】
加算モジュール１１４は、デブロッキング・フィルタ・モジュール１１１への入力である合計１３８を生成する。デブロッキング・フィルタ・モジュール１１１は、ブロック境界に沿ってフィルタリングを行い、メモリ３０６内に構成されるフレーム・バッファ・モジュール１１２に書き込まれるデブロック化サンプル１４０を生成する。フレーム・バッファ・モジュール１１２は、後に参照するための複数の過去フレームからのデータを保持するのに十分な容量を有するバッファである。
【００６２】
動画符号器１００では、１つの変換ユニット（ＴＵ）内の残差データサンプル１２２が、入力フレームデータ１０１のデータサンプルと、入力フレームデータ１０１のデータサンプルの予測１２０との間の差異を発見することによって決定される。差異は、変換ユニット（ＴＵ）の残差係数の空間表現をもたらす。
【００６３】
エントロピー符号器モジュール１０４の動作中、変換ユニット（ＴＵ）の残差係数は、２次元有意度マップに変換される。変換ユニット（ＴＵ）における残差係数の有意度マップは、次いで、スキャン順序として知られている特定の順序でスキャンされ、有意係数フラグのリストと呼ばれる、フラグ値の１次元リストを形成する。スキャン順序は記述されるか、他にスキャンパターンによって指定すれば良い。例えば、イントラ予測モジュール１０９から予測モード１４２と共に受け取る。イントラ予測モジュール１０９は、スキャンパターンを選択するために使用される可能性があるイントラ予測モードを決定する。例えば、イントラ予測モード１（垂直イントラ予測）が選択された場合、水平方向スキャニングが、図１２に示すように使用される。イントラ予測モード０（平面イントラ予測）が選択された場合、斜め方向スキャニングが、図１１に示すように使用され、一方、イントラ予測モード２（水平イントラ予測）が選択された場合、垂直方向スキャニングが、図１３に示すように使用される。スキャンパターンは、水平、垂直、斜め、またはジグザグとすることができる。高効率動画符号化（ＨＥＶＣ）テストモデルのバージョン５では、逆方向へのスキャニングを行うが、順方向へのスキャニングも可能である。１６×１６、３２×３２、４×１６、１６×４、８×３２、および３２×８変換ユニット（ＴＵ）の場合、２レベルスキャンが定義され、変換ユニット（ＴＵ）が、サブブロックのセットに分割され、各サブブロックは、正方形である。上位では、スキャニングは、後方斜め左下方向スキャンなどのスキャンを使用して、各下位をスキャンすることによって行われる。サブブロックレベルとしても知られる下位では、スキャニングはまた、後方斜め左下方向スキャンなどのスキャンを使用して行われる。ＨＥＶＣ参照モデルバージョン５．０では、スキャン動作は、最終有意係数後の１残差係数で開始し（「後の」は、残差係数の後方スキャンの方向である）、有意度マップの左上位置に達するまで進行する。この特性を有し、ＨＥＶＣ参照モデルバージョン５．０に従うスキャン動作は、「後方スキャン」として知られる。ＨＥＶＣ参照ソフトウェアバージョン５．０では最終有意係数の位置は、変換ユニット（ＴＵ）における係数の座標を符号化することによって示される。当業者には、本文における形容詞「最終」の使用は、スキャニングの特定順序に依存することが認識されるだろう。あるスキャンパターンによる、「最終」非ゼロ残差係数または対応する１値有意係数フラグである可能性があるものは、他のスキャンパターンによる「最終」ではないかも知れない。有意係数フラグのリストは、最終有意係数の前の各残差係数の有意性を示し、ビットストリーム１１３内にコード化される。最終有意係数フラグ値は、最終有意係数フラグの位置より前のコード化により、残差係数に有意であることが暗黙的に示されたため、ビットストリーム１１３内に明示的に符号化する必要はない。
【００６４】
変換ユニット（ＴＵ）の左上に向けての、より大きな値の残差係数のクラスタリングは、その有意度のリストにおいて、より早くに、最有意フラグをもたらし、一方、有意なフラグは、リストの後方では、ほとんど見つからない。
【００６５】
エントロピー符号器モジュール１０４はまた、スケールおよび量子化モジュール１０３から受信した入力残差係数データ（または、残差係数）１２６から構文要素も生成する。エントロピー符号器モジュール１０４は、符号化ビットストリーム１１３を出力し、これを以下により詳細に説明する。開発中の高効率動画符号化（ＨＥＶＣ）規格の場合、符号化ビットストリーム１１３は、ネットワーク抽象化レイヤ（ＮＡＬ）ユニットに描画される。フレームの各スライスは、１つのＮＡＬユニットに格納される。
【００６６】
エントロピー符号器モジュール１０４で実現されるエントロピー符号化方法にはいくつかの代替法がある。開発中の高効率動画符号化（ＨＥＶＣ）規格は、コンテキスト適応型２進算術符号化（ＣＡＢＡＣ）をサポートし、コンテキスト適応型２進算術符号化（ＣＡＢＡＣ）の変形は、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣで見られる。代替のエントロピー符号化方式は、当分野で既知である、確率区間区分エントロピー（ＰＩＰＥ：ｐｒｏｂａｂｉｌｉｔｙ  ｉｎｔｅｒｖａｌ  ｐａｒｔｉｔｉｏｎｉｎｇ  ｅｎｔｒｏｐｙ）コーダである。
【００６７】
複数の動画符号化方法をサポートする動画符号器１００に対し、サポートされるエントロピーコーディング方法の１つは、符号器１００の構成により選択される。さらに、各フレームからの符号化ユニットを符号化する際、エントロピー符号器モジュール１０４は、各フレームが、フレーム毎に１つまたは複数のスライスを有するように符号化ビットストリーム１１３を書き込み、各スライスは、フレームの一部に対する画像データを含有する。フレーム毎に１つのスライスを生成することで、各スライスの境界を描画することと関連したオーバーヘッドを低減する。しかしながら、フレームを複数のスライスに分割することも可能である。
【００６８】
動画復号器２００は、ハードディスクドライブ３０５にあり、プロセッサ３０５により実行中に制御される、ソフトウェア・アプリケーション・プログラム３３３の１つまたは複数のソフトウェア・コード・モジュールとして実現してもよい。特に、動画復号器２００は、ソフトウェア・アプリケーション・プログラム３３３の１つまたは複数のソフトウェア・コード・モジュールとしてそれぞれが実現され得るモジュール２０２から２０８、および２１０を備える。動画復号器２００は、高効率動画符号化（ＨＥＶＣ）動画復号化パイプラインを参照して説明するが、モジュール２０２から２０８、および２０９によって実行される処理段階は、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ、ＭＰＥＧ−２、およびＶＣ−１などのエントロピーコーディングを使用する他のビデオコーデックと共通である。
【００６９】
符号化ビットストリーム１１３などの符号化ビットストリームは、動画復号器２００によって受信される。符号化ビットストリーム１１３は、メモリ３０６、ハードディスクドライブ３１０、ＣＤ−ＲＯＭ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、または他のコンピュータ可読記憶媒体から読み込むことができる。あるいは、符号化ビットストリーム１１３は、通信ネットワーク３２０に接続されたサーバまたは無線周波数受信器などの外部ソースから受信してもよい。符号化ビットストリーム１１３は、復号化すべきフレームデータを示す符号化構文要素を含む。
【００７０】
符号化ビットストリーム１１３は、エントロピー復号器モジュール２０２に入力される。エントロピー復号器モジュール２０２は、符号化ビットストリーム１１３から構文要素を抽出し、その構文要素の値を、動画復号器２００内の他のブロックに通す。エントロピー復号器モジュール２０２で実現されるエントロピー復号化方法は、エントロピー符号器モジュール１０４を参照して説明したものなど、複数あってもよい。残差係数データを表す構文要素データ２２０は、逆スケールおよび変換モジュール２０３に通され、運動ベクトル情報を表す構文要素データ２２２は、動き補償モジュール２０４に通される。逆スケールおよび変換モジュール２０３は、残差係数データについて逆スケーリングを実行し、再構築された変換係数を生成する。次いで、モジュール２０３は、逆変換を行い、再構築された変換係数を、逆変換モジュール１０６を参照して説明した逆変換のように、周波数領域表現から空間領域表現に変換し、残差サンプル２２４を生成する。
【００７１】
動き補償モジュール２０４は、フレーム・バッファ・ブロック２０８からの以前のフレームデータ２２６と結合され、メモリ３０６内で構成される、エントロピー復号器モジュール２０２からの運動ベクトルデータ２２２を使用し、出力復号化フレームデータの予測である、予測ユニット（ＰＵ）に対するインター予測参照サンプル２２８を生成する。現在の符号化ユニットがイントラ予測を使用してコード化されたことを構文要素が示す場合、イントラフレーム予測モジュール２０５は、予測ユニット（ＰＵ）と空間的に隣接するサンプルを使用して、予測ユニット（ＰＵ）に対し、イントラ予測参照サンプル２３０を生成する。空間的に隣接するサンプルは、加算モジュール２１０から出力された合計２３２から取得される。マルチプレクサモジュール２０６は、符号化ビットストリーム１１３における構文要素によって示される現在の予測モードにより、予測ユニット（ＰＵ）に対し、イントラ予測参照サンプルまたはインター予測参照サンプルを選択する。マルチプレクサモジュール２０６から出力されたサンプル２３４の配列は、加算モジュール２１０によって、逆スケールおよび変換モジュール２０３からの残差サンプル２２４に加えられ、合計２３２を生成する。合計２３２は、次いで、デブロッキング・フィルタ・モジュール２０７とイントラフレーム予測モジュール２０５とのそれぞれに入力される。符号器１００とは対照的に、イントラフレーム予測モジュール２０５は、エントロピー復号器２０２から予測モード２３６を受信する。マルチプレクサ２０６は、イントラフレーム予測／インターフレーム予測選択信号を、エントロピー復号器２０２から受信する。デブロッキング・フィルタ・モジュール２０７は、データブロック境界に沿ってフィルタリングを行い、データブロック境界に沿って視認可能なアーチファクトを平滑化する。デブロッキング・フィルタ・モジュール２０７の出力は、メモリ３０６内に構成されたフレーム・バッファ・モジュール２０８に書き込まれる。フレーム・バッファ・モジュール２０８は、今後参照するための複数の復号化フレームを保持するのに十分な記憶領域を提供する。復号化フレーム２０９はまた、フレーム・バッファ・モジュール２０８から出力される。
【００７２】
エントロピー符号器１０４は、図４を参照して説明する。残差係数４０１などの構文要素は、バイナライザモジュール４０４に入力される。変換ユニット（ＴＵ）サイズ４０２は、バイナライザモジュール４０４に入力され、符号化される変換ユニット（ＴＵ）のサイズを指示する。スキャンパターン４０３は、バイナライザモジュール４０４に入力される。バイナライザモジュール４０４は、各構文要素を、一連のビンにバイナライズする。各ビンは、ビン値４０６およびコンテキストインデックス４０５を備える。ビン値４０６およびコンテキストインデックス４０５は、コンテキストモデル４０７によって受信され、コンテキストモデル４０７は、コンテキスト４０８を出力し、コンテキストインデックス４０５に従って選択される。コンテキスト４０８は、ビン値４０５により更新される。コンテキスト４０８を更新する方法は、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣにおいてコンテキスト適応型２進算術符号化（ＣＡＢＡＣ）によって使用される方法と一致する。バイナライザモジュール４０４は、以下の図６を参照して説明する方法６００により、残差係数をバイナライズする。二値算術符号器４０９は、コンテキスト４０８およびビン値４０６を使用して、符号化ビットストリーム１１３にビンを符号化する。
【００７３】
エントロピー復号器２０２は、図５を参照して説明する。変換ユニット（ＴＵ）サイズ５０２およびスキャンパターン５０１は、逆バイナライザモジュール５０３によって受信される。スキャンパターン５０１は、エントロピー復号器２０２によって決定される予測モード２３６から決定してもよい。このことは、符号器１００のイントラ予測モジュール１０９に関して上記したように、予測モード２３６に基づいてスキャンパターンを選択することによって行うことができる。逆バイナライザモジュール５０３は、バイナライザモジュール４０４の反転動作を実行することによって、残差係数５０９を出力する。コンテキストインデックス５０４は、復号化すべき各ビンに対し、逆バイナライザモジュール５０３から出力される。コンテキストモデル５０５は、コンテキストインデックス５０４によって選択されたコンテキスト５０６を出力する。二値算術復号器５０７は、コンテキスト５０６を使用して、符号化ビットストリーム１１３からのビン値５０８を復号化する。ビン値５０８は、コンテキストモデル５０５によって受信され、コンテキスト５０６を更新するために使用される。ビン値５０８はまた、逆バイナライザモジュール５０３によって受信される。逆バイナライザモジュール５０３は、以下の図７を参照して説明する方法７００により、残差係数を復号化する。
従来の８×８ＴＵ符号化
後方斜め方向スキャンを使用して８×８変換ユニット（ＴＵ）１１００を符号化する従来の方法は、図６および図１１を参照して説明する。図１１における８×８変換ユニット（ＴＵ）１１００は、サブブロックを利用しない。後方斜め左下方向スキャン１１０１は、８×８変換ユニット（ＴＵ）１１００の全体にわたって適用される。図６の方法６００は、後方斜め左下方向スキャン１１０１スキャンパターンを使用して適用される。
【００７４】
最終有意係数ポジションを符号化するステップ６０１は、８×８変換ユニット（ＴＵ）１１００における最終有意係数のポジションを符号化する。最終有意係数のポジションは、順方向に後方斜め左下方向スキャン１１０１を適用することによって８×８変換ユニット（ＴＵ）１１００を検索する場合、最終非ゼロ残差係数のポジションとして定義される。
【００７５】
８×８テーブルを参照するステップ６０２、有意係数フラグを符号化するステップ６０３、およびサブセット内の最後であるかを判断するステップ６０４で、１６個の係数のサブセットにおける有意係数をすべて符号化する。ステップ６０３および６０４は、後方スキャンが用いられた場合、最終有意係数を含有するサブセットについて、第１に動作する。８×８テーブルを参照するステップ６０２は、８×８後方斜め左下方向スキャン１１０１を保持するテーブルへの現在のサブセットに対するインデックスにおいて判断する。有意係数フラグを符号化するステップ６０３では、二値算術符号器４０９を使用して、符号化ビットストリーム１１３に、サブセット内の１つの有意係数を符号化する。サブセット内の最後であるかを判断するステップ６０４は、サブセット内のすべての有意係数がスキャンされた場合、ステップ６０２および６０３を終了する。後方スキャンの場合、このループは、最大値からゼロにカウントダウンする。最大値は１６であり、最終有意係数を含有するサブセットの場合を除き、最大値は、サブセットスキャンからの最終有意係数を省くよう構成される。
【００７６】
残差レベルを符号化するステップ６０５は、サブセット内の各有意係数に対する残差レベルを符号化する。サブセットにおける残差レベルは、複数のステップで符号化され、各ステップは、サブセットにおける有意係数を繰り返し処理する。第１に、有意係数の絶対値が１より大きいことを示すフラグが符号化される。第２に、有意係数が２より大きい絶対値を有する、有意係数が１より大きい絶対値を有することを示すフラグが符号化される。第３に、各有意係数の符号を示すフラグが符号化される。第４に、有意係数が２よりも大きい値を有する場合、これらの３つの有意係数を引いた強度が符号化される。
【００７７】
最終サブセットかを判断するステップ６０６により、変換ユニット（ＴＵ）１１００における第１のサブセットが符号化されるまで、ステップ６０２、６０３、６０４、および６０５が繰り返えされ、サブセット４、３、および２のいずれかが符号化されると、必要に応じ、方法６００は終了する。
【００７８】
後方水平方向スキャンを使用して８×８変換ユニット（ＴＵ）１２００を符号化する従来の方法は、図６および図１２を参照して説明する。８×８変換ユニット（ＴＵ）１２００は、サブブロックを利用しない。後方水平方向スキャン１２０１は、８×８変換ユニット（ＴＵ）１２００の全体にわたって適用される。方法６００は、定義されたスキャンパターンを使用して適用される。
【００７９】
後方垂直方向スキャンを使用して８×８変換ユニット（ＴＵ）１３００を符号化する従来の方法は、図６および図１３を参照して説明する。８×８変換ユニット（ＴＵ）１３００は、サブブロックを利用しない。後方垂直方向スキャン１３０１は、８×８変換ユニット（ＴＵ）１３００の全体にわたって適用される。方法６００は、定義されたスキャンパターンを使用して適用される。
従来の８×８ＴＵ復号化
後方斜め方向スキャンを使用して８×８変換ユニット（ＴＵ）１１００を復号化する従来の方法は、図７および図１１を参照して説明する。８×８変換ユニット（ＴＵ）１１００は、サブブロックを利用しない。後方斜め左下方向スキャン１１０１は、８×８変換ユニット（ＴＵ）１１００の全体にわたって適用される。方法７００は、定義されたスキャンパターンを使用して適用される。
【００８０】
最終有意係数ポジションを復号化するステップ７０１は、８×８変換ユニット（ＴＵ）１１００における最終有意係数の位置を復号化し、スキャンパターンが順方向に適用された場合、最終非ゼロ残差係数として定義される。
【００８１】
８×８ポジションテーブルを参照するステップ７０２、有意係数を復号化するステップ７０３、およびサブセット内の最後であるかをテストするステップ７０３は、サブセット内の各位置を繰り返し処理することによって、最終位置から第１の位置へ、サブセット内の有意係数フラグを復号化し、位置毎に１つの有意係数フラグを復号化する。８×８ポジションテーブルを参照するステップ７０２では、サブセット内の現在の有意係数に対し、８×８変換ユニット（ＴＵ）１１００内の位置を決定する。最終有意係数を含有するサブセットの場合、最終位置は、最終有意係数ポジションがサブセットスキャンから除かれるか、そうでなければ、最終ポジションが１６に設定されるよう定義される。
【００８２】
残差レベルを復号化するステップ７０５では、サブセット内の各有意係数に対する強度および符号を復号化する。残差レベルを復号化するステップ７０５では、サブセット内の有意係数を４回繰り返し処理することによって、有意係数の残差レベルを復号化する。第１の繰り返しでは、有意係数の絶対値が１より大きいかどうかを示すフラグが復号化される。第２の繰り返しでは、１より大きい有意係数の絶対値が、また、２より大きいことを示すフラグが復号化される。第３の繰り返しでは、各有意係数に対する符号を示すフラグが復号化される。第４の繰り返しでは、２より大きい有意係数に対して、３を引いた強度が符号化され、強度が２より大きいことが既知である場合について、残差強度の再構成を可能にする。
【００８３】
最終サブセットかをテストするステップ７０６により、変換ユニット（ＴＵ）１１００における第１のサブセットが復号化されるまで、ステップ７０２、７０３、７０４、および７０５が繰り返えされ、必要に応じ、サブセット４、３、および２のいずれかが符号化されると、方法７００は終了する。
【００８４】
後方水平方向スキャンを使用して８×８変換ユニット（ＴＵ）１２００を復号化する従来の方法は、図７および図１２を参照して説明する。８×８変換ユニット（ＴＵ）１２００は、サブブロックを利用しない。後方水平方向スキャン１２０１は、８×８変換ユニット（ＴＵ）１２００の全体にわたって適用される。方法７００は、定義されたスキャンパターンを使用して適用される。
【００８５】
後方垂直方向スキャンを使用して８×８変換ユニット（ＴＵ）１３００を復号化する従来の方法は、図７および図１３を参照して説明する。８×８変換ユニット（ＴＵ）１３００は、サブブロックを利用しない。後方垂直方向スキャン１３０１は、８×８変換ユニット（ＴＵ）１３００の全体にわたって適用される。方法７００は、定義されたスキャンパターンを使用して適用される。
実施形態−８×８ＴＵを符号化
本開示による、後方斜め左下方向スキャンを使用して８×８変換ユニット（ＴＵ）１５００を符号化する方法８００は、図８、図１０Ａ、図１０Ｂ、図１４、図１５Ａ、図１５Ｂ、および図１５Ｃを参照して説明する。図１５Ａに示す８×８変換ユニット（ＴＵ）１５００は、４×４のサブブロックサイズを有する。変換ユニット（ＴＵ）１５００は、符号化するためにスキャンすべき係数の正方下位レイヤを表す。図１５Ｃに示すサブブロック１５０２などの各サブブロック内では、図１５Ｃに示すように、後方斜め左下方向スキャン１５０５を適用する。８×８変換ユニット（ＴＵ）１５００におけるサブブロックをスキャニングする場合、図１５Ｂに示すように、２×２後方斜め左下方向上位レイヤスキャン１５０４が、正方上位レイヤ１５０３表現に適用される。図１５Ｂから分かるとおり、上位レイヤ１５０３は、下位レイヤサブブロック１５０２の２×２配列を含む。この方式では、有意係数グループフラグは、非重複領域を表し、サブブロックは、下位レイヤにおいて重複しない。したがって、図１５Ａのスキャンパターン１５０１は、図１５Ｂのパターン１５０４を４回複製した図１５Ｃのパターン１５０５の組み合わせを表す。この手法の利点の１つは、図１１、図１２、および図１３における６４（８×８）サイズ配列に対するパターンを格納する代わりに、パターン１５０１を４（２×２）＋１６（４×４）＝２０サイズ配列を使用して格納することができ、メモリの使用を大きく抑えることを可能にすることである。さらに、例えば、配列サイズ２×２、４×４、および８×８のいずれも正方形であることが理解されよう。
【００８６】
方法８００は、定義されたサブブロックサイズ、上位レイヤサイズ、およびスキャンパターンを使用して適用される。方法８００は、有意係数グループを使用して、変換ユニット（ＴＵ）の残差係数を符号化する。方法８００は、図８を参照して説明する。変換ユニット（ＴＵ）は、多くのサブブロックに分割される。図１０Ａは、変換ユニット（ＴＵ）の例示的上位正方レイヤ１０００を示す。
【００８７】
図１４に示す８×８変換ユニット（ＴＵ）１４００は、図１５Ａの８×８変換ユニット（ＴＵ）１５００の一例であり、２レイヤ（上位および下位）階層における残差係数を符号化する。８×８変換ユニット（ＴＵ）１４００は、４×４サブブロック１４０１などの、等しいサイズのサブブロックに分割される。変換ユニット（ＴＵ）１４００におけるサブブロックは、上位レイヤ１４０２によって表される。上位レイヤ１４０２は、有意係数グループフラグ１４０３などの、有意係数グループフラグを含み、そのそれぞれは、算出または推測することができる。有意係数グループフラグ１４０３などの有意係数グループフラグが算出される場合、有意係数グループフラグは、サブブロック１４０１などの対応するサブブロック内の、残差係数１４０４などの残差係数のいずれが有意であるかを示す。有意係数グループフラグが推測される場合、対応するサブブロック内のすべての残差係数が有意ではないとすることが可能である。
【００８８】
図８に示す方法８００では、最終有意係数ポジションを符号化するステップ８０１で、２レベルスキャンパスに沿って、最終有意係数の座標を符号化する。２×２テーブルポジションを参照するステップ８０２では、２×２後方斜め左下方向上位レイヤスキャン１５０４に参照を適用することによって、現在サブブロックに対するポジションを決定する。これにより、関連するサブブロック１５０２を正確に識別することをもたらす。４×４テーブルポジションを参照するステップ８０３では、４×４後方斜め左下方向スキャン１５０５に参照を実行することによって、現在の有意係数に対するポジション内のオフセットを決定し、それにより、現在の４×４サブブロック１５０２内の正確な位置を識別する。有意係数フラグを決定するステップ８０４では、サブブロック１５０２内の、したがって、８×８変換ユニット（ＴＵ）１５００内の、決定したオフセットで、有意（１値）として残差係数の値をテストし、残差係数が非ゼロである場合、非有意（ゼロ値）である。
【００８９】
サブブロック内の最後であるかをテストするステップ８０５により、最終有意係数を含有しないサブブロック内のすべての位置がテストされるようにステップ８０３および８０４が繰り返され、最終有意係数を含有するサブセットに対し、すべての位置が最終有意係数に先行する（ここで、「先行する」とは、順方向のスキャニングの適用を仮定する）。パターン１５０５などの後方スキャンの場合、サブブロック内の最後は、常に、左上位置である。前方スキャンの場合、サブブロック内の最後は、最終有意係数を含有しないサブブロックに対する右下位置であり、前方スキャンの順序で、最終有意係数ポジションの直前の位置である。
【００９０】
有意係数グループフラグを決定するステップ８０６では、有意係数フラグを決定し、サブブロック内の有意係数フラグのいずれ（すなわち、少なくとも１つ）が１値であるかを示す。最終有意係数を含有するサブブロックの場合、有意係数グループフラグは、１値であると推測される。変換ユニット（ＴＵ）１５００の左上隅に位置するサブブロックの場合も、有意係数グループフラグが１値であると推測される。有意係数グループを符号化するステップ８０７では、サブブロックに含有される有意度マップの部分を判断するための情報を符号化する。第１に、推測されなかった有意係数グループフラグは、ビットストリームに符号化される。第２に、有意係数グループフラグが１値である場合、サブセットに含有される有意度マップの部分が、ビットストリームに符号化される。残差値を符号化するステップ８０８は、有意度マップを２×２上位レイヤおよび４×４下位サブブロックレイヤに構成することを除き、残差レベルを符号化するステップ６０５と同様に動作する。最終サブブロックであるかをテストするステップ８０９により、最終有意係数を含有するサブブロックから、変換ユニット（ＴＵ）１５００の左上隅に位置するサブブロックへ、サブブロックの繰り返しが可能となる。このサブブロックが符号化されると、方法８００は終了する。方法８００は、動画符号器１００によってサポートされるすべての変換ユニット（ＴＵ）において、４×４サブブロックスキャンの使用を可能にすることが、当業者によって理解されよう。
【００９１】
有意係数グループフラグを決定する際の上位レイヤの動作は、図１０Ａに示す例示的上位レイヤ１０００を参照して説明する。例示的上位レイヤ１０００は、サブブロック毎に１つのｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇから成る。例示的上位レイヤ１０００における各サブブロックに対し、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇが算出または推測される。例示的上位レイヤ１０００における左上サブブロックに対し、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇは常に、１値として推測される。最終有意係数を含有する例示的上位レイヤ１０００におけるサブブロックに対しても、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇは１値として推測される。例示的上位レイヤ１０００における他の位置に対し、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇ  Ｘ１００１などのｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇは、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇ  Ａ１００２などの右隣接部およびｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇ  Ｂ１００３などの下隣接部が両方とも１値である場合のみ、１値であると推測される。右隣接部または下隣接部のｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇが例示的上位レイヤ１０００の外側になる場合、その隣接部に対して０値が推測される。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇが推測されると、符号化ビットストリーム１１３で符号化されない。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇが推測されなかった場合、対応するサブブロック内のすべてのｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが０値であることが既知である場合、０値ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇが算出される。あるいは、対応するサブブロック内のｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇの少なくとも１つが１値である場合、１値ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇが算出される。例示的上位レイヤ１０００に対するｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇの算出値は、後方斜め左下方向スキャンを使用して、符号化ビットストリーム１１３に符号化される。
【００９２】
例えば、図１０Ｂを参照すると、上位レイヤ１００４では、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇ１００５などの影付きｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇが、右隣接部および下隣接部に基づき、１値であると推測され、したがって、符号化ビットストリーム１１３で符号化されない。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇ１００６は、最終有意係数を含有するため、１値と推測される。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇ１００７などのｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇは、最終有意係数の後に位置しているため、それらの位置に対しては、いかなる値も推測、算出、または符号化されない。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇ１００８は、上位レイヤ８０４の左上に位置し、常に１値として推測される。
【００９３】
上位レイヤにおける各ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇを符号化すると、コンテキストがコンテキストモデル４０４から選択される。輝度サンプルを符号化する変換ユニット（ＴＵ）および色差サンプルを符号化する変換ユニット（ＴＵ）に対し、２つのコンテキストが利用可能であり、例示的上位レイヤ１０００を符号化するために、全部で４つのコンテキストが存在する。例示的上位レイヤ１０００における各ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇに対するコンテキストの選択は、右隣接部および下隣接部に左右される。一例として、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇ  Ｘ１００１に対するコンテキストは、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇ  Ａ１００２とｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆｇｒｏｕｐ＿ｆｌａｇ  Ｂ１００３との値の論理ＯＲを行うことによって決定される。例示的上位レイヤ１０００の外側にある左隣接部および下隣接部は、コンテキストの選択のために、０値であると推測される。
【００９４】
本開示による、後方水平方向スキャンを使用して８×８変換ユニット（ＴＵ）１６００を符号化する方法は、図８、図１６Ａ、図１６Ｂ、および図１６Ｃを参照して説明する。８×８変換ユニット（ＴＵ）１６００は、４×４の下位サブブロックサイズを有する。サブブロック１６０２などの各サブブロック内では、後方水平方向スキャン１６０５が適用され、図１６Ａに示す全体的なスキャンパターン１６０１をもたらす。８×８変換ユニット（ＴＵ）１６００内のサブブロック１６０２をスキャンするために、２×２後方水平方向上位レイヤスキャン１６０４が適用される。方法８００は、定義されたサブブロックサイズ、および上位レイヤサイズ、およびスキャンパターンを使用して適用される。
【００９５】
本開示による、後方垂直方向スキャンを使用して８×８変換ユニット（ＴＵ）１７００を符号化する方法は、図８、図１７Ａ、図１７Ｂ、および図１７Ｃを参照して説明する。８×８変換ユニット（ＴＵ）１７００は、４×４のサブブロックサイズを有する。図１７Ｃのサブブロック１７０２などの各下位レイヤサブブロック内では、後方垂直方向スキャン１７０５が適用される。８×８変換ユニット（ＴＵ）１７００におけるサブブロックをスキャニングする場合、図１７Ｂに示す２×２後方垂直方向上位レイヤスキャン１７０４が適用され、図１７Ａに示す全体的なスキャンパターン１７０１をもたらす。方法８００は、定義されたサブブロックサイズ、および上位レイヤサイズ、およびスキャンパターンを使用して適用される。
実施形態−８×８ＴＵの復号化
本開示による、８×８変換ユニット（ＴＵ）１５００を復号化する方法は、図９、図１５Ａ、図１５Ｂ、および図１５Ｃを参照して説明する。８×８変換ユニット（ＴＵ）１５００は、４×４のサブブロックサイズを有する。サブブロック１５０２などの各サブブロック内では、後方斜め左下方向スキャン１５０５を適用する。８×８変換ユニット（ＴＵ）１５００におけるサブブロックをスキャニングする場合、２×２後方斜め左下方向スキャン１５０４が適用され、全体的なスキャンパターン１５０１をもたらす。方法９００は、定義されたサブブロックサイズ、および上位レイヤサイズ、およびスキャンパターンを使用して適用される。
【００９６】
有意係数グループを使用して、変換ユニット（ＴＵ）の残差係数を復号化する方法９００は、図９を参照して説明する。変換ユニット（ＴＵ）は、多くのサブブロックに分割される。最終有意係数ポジションを復号化するステップ９０１では、２レベルスキャンパス１５０１に沿って、変換ユニット（ＴＵ）１５００における最終有意係数の座標を復号化する。２×２テーブルポジションを参照するステップ９０２では、２×２後方斜め左下方向上位レイヤスキャン１５０４に参照を適用することによって、現在サブブロックに対するポジションを決定する。有意係数グループを復号化するステップ９０３では、有意係数グループフラグを決定するステップ８０６で記載したものと同様の処理を使用して、有意係数フラグの推測値を決定するか、または符号化ビットストリーム１１３から１つの有意係数グループフラグを復号化する。有意係数グループフラグをテストするステップ９０４では、決定した有意係数グループフラグの値をテストする。フラグが１値である場合、制御は４×４テーブルポジションを参照するステップ９０５に進み、そうでなければ、フラグが０値の場合、制御は、サブブロックの最後であるかをテストするステップ９０９に進む。ステップ９０５では、４×４後方斜め左下方向スキャンに参照を実行することによって、現在の有意係数に対するポジション内のオフセットを決定する。４×４テーブルポジションを参照するステップ９０５の結果は、２×２テーブルポジションを参照するステップ９０２の結果と組み合わされ、８×８変換ユニット（ＴＵ）１５００にポジションオフセットをもたらす。次いで、有意係数フラグを復号化するステップ９０６で、サブブロック１５０２などのサブブロック内の１つの残差係数に対する有意係数フラグを復号化する。サブブロック内の最終有意係数に達し、サブブロック内の以前の有意係数が１値ではなく、対応する有意係数グループフラグが算出された（すなわち、推測されなかった）場合、サブブロック内の最終有意係数は、１値であると推測される。サブブロック内の最後であるかをテストするステップ９０７では、サブブロック内のポジションをテストし、４×４サブブロック１５０２が、その全体を処理されるまで、ステップ９０５および９０６を繰り返す。処理されるべき第１のサブブロックに対し、最終有意係数フラグは、サブブロック内全体で繰り返された後の（「後の」は、後方スキャンの順序での定義である）位置のみを含有する。サブブロックの最終ポジションが処理された場合、残差レベルを復号化するステップ９０８では、残差レベルを復号化するステップ７０５と同様の方法で、残差レベルを復号化する。サブブロックの最後であるかをテストするステップ９０９は、変換ユニット（ＴＵ）１５００内のすべてのサブブロックにわたって繰り返しもたらされ、最終有意係数を含有するサブブロックから始まり、変換ユニット（ＴＵ）１５００の左上隅に位置するサブブロックが、ステップ９０２から９０８によって処理されるまで後方に処理され、その後、方法９００は終了する。方法９００は、動画復号器２００によってサポートされるすべての変換ユニット（ＴＵ）サイズにおいて、４×４サブブロックスキャンの使用を可能にすることが、当業者によって理解されよう。
【００９７】
本開示による、８×８変換ユニット（ＴＵ）１６００を復号化する方法は、図９、図１６Ａ、図１６Ｂ、および図１６Ｃを参照して説明する。８×８変換ユニット（ＴＵ）１６００は、４×４のサブブロックサイズを有する。サブブロック１６０２などの各サブブロック内では、後方水平方向スキャン１６０５を適用する。８×８変換ユニット（ＴＵ）１６００内のサブブロックをスキャニングする場合、２×２後方水平方向スキャン１６０４が適用される。方法９００は、定義されたサブブロックサイズ、および上位レイヤサイズ、およびスキャンパターンを使用して適用される。
【００９８】
本開示による、８×８変換ユニット（ＴＵ）１７００を復号化する方法は、図９、図１７Ａ、図１７Ｂ、および図１７Ｃを参照して説明する。８×８変換ユニット（ＴＵ）１７００は、４×４のサブブロックサイズを有する。サブブロック１７０２などの各サブブロック内では、後方垂直方向スキャン１７０５が適用される。８×８変換ユニット（ＴＵ）１７００内のサブブロックをスキャニングする場合、２×２後方垂直方向スキャン１７０４が適用される。方法９００は、定義されたサブブロックサイズ、および上位レイヤサイズ、およびスキャンパターンを使用して適用される。
実施形態−８×８変換ユニットに対してのみの、斜め方向上位レイヤスキャン
方法８００および９００が、変換ユニット（ＴＵ）１５００、１６００、および１７００に適用されたが、それらは、サブブロックレイヤから上位レイヤに同じスキャンパターンを適用した。１つの代替方法は、変換ユニット（ＴＵ）１５００、１６００、および１７００に対する上位レイヤスキャンのために、後方斜め左下方向スキャンのみを使用することである。さらに、上位レイヤスキャンは、すべての変換ユニットサイズに対して、後方斜め左下方向に設定してもよい。その場合、上位レイヤのスキャンパターンは、下位レイヤのスキャンパターンから独立する。そうすることで、２×２後方水平方向スキャン１６０４および２×２後方斜め垂直方向スキャン１７０４ためのメモリ領域が不要になる。実施形態−３２×３２上位レイヤスキャンのための８×８変換ユニットスキャンの再利用３２×３２変換ユニットは、８×８上位レイヤスキャンを利用し、後方斜め左下方向スキャンを行う。２×２後方斜め方向スキャン１５０４および４×４後方斜め方向スキャン１５０５から派生して、８×８上位レイヤスキャンを８×８後方斜め方向スキャン１５００と置き換えることが可能である。そのような構成により、８×８上位レイヤスキャンのための参照テーブルを不要にすることを可能にし、必要なメモリ領域を低減する。
【００９９】
方法６００および７００が、特定のサブブロックサイズで適用される場合に、動画符号器１００または動画復号器２００内のテーブルの数を減らすことを可能にすることが、当業者には明らかであろう。
実施形態−オフセットを使用するスキャニング
図１８Ａから図１８Ｃは、線形配列の値が、２次元（２Ｄ）配列から導出され、オフセットが線形配列で使用され、２Ｄ配列の異なるサブブロック間の区別を確立する、さらなる実装形態を示す。図１８Ａは、８×８変換ユニットが、順方向−下方スキャン（水平、および左から右）で、順方向−下方スキャンに従って、各サブブロックを横断して、Ａ、Ｂ、Ｃ、およびＤの順序で、４つの４×４ユニット（サブブロック）としてアクセスされることを示す。図１８Ａから図１８Ｃに示した実装形態もまた、逆方向に８×８変換ユニットをスキャニングすることが可能であることが、当業者に理解されるであろう。
【０１００】
図１８Ｂから分かるとおり、各サブブロックのスキャニングは、対応する線形配列の値をもたらす。必要であれば、図１８Ｂの４つの配列は、対応する変換ユニットの値をスキャニングするアクセス順序を元から定義して格納してもよい。
【０１０１】
あるいは、図１８Ｃに図示したように、図１８Ａの変換ユニットのスキャニングは、１６（４×４）個の値の単一線形配列として格納してもよく、ここでは、オフセット（Ｘ）が、４つの配列を再構成するために使用される。Ｘを０、４、３２、および３６へ変えることによって、図１８Ｂの４つの配列のそれぞれを、再構成することができる。
総括
ここで開示したさまざまな構成により、上位および下位レベル正方レイヤを有する変換ユニットの符号化および復号化を提供し、ここで、上位レイヤとは、最大４つの有意係数グループフラグの正方配列（例えば２×２）を表す。このことは、例えば、図１５Ｂ、図１６Ｂ、および図１７Ｂで示される。これにより、４×４サブブロック（それぞれ、図１５Ｃ、図１６Ｃ、および図１７Ｃ）に適用される所望のスキャンパターンに従って、下位８×８正方レイヤ（それぞれ、図１５Ａ、図１６Ａ、および図１７Ａ）を効果的に横断することを可能にする。したがって、８×８変換ユニットは、４×４下位スキャンおよび２×２上位スキャンの組み合わせを使用して、符号化または復号化することができる。
【産業上の利用可能性】
【０１０２】
説明した構成は、コンピュータおよびデータ処理業に適用可能であり、特に、動画信号などの信号の符号化および復号化のためのデジタル信号処理に対して適用可能である。
【０１０３】
上記は、本発明のいくつかの実施形態のみを説明し、変形例および／または変更例は、本発明の範囲および精神から逸脱することなく行うことができ、本実施形態は、例示目的であって、制限するものではない。
【０１０４】
（オーストラリアの場合のみ）本明細書の文脈において、「備える」という言葉は、「主に含むが、必ずしも単独ではない」、「有する」、または「含む」を意味し、「それのみから成ること」を意味しない。「備える」という言葉の変化形は、それに対応して意味が変化する。
【図１】
2020074516.tif 000003
【図２】
2020074516.tif 000004
【図３（Ａ）】
2020074516.tif 000005
【図３（Ｂ）】
2020074516.tif 000006
【図４】
2020074516.tif 000007
【図５】
2020074516.tif 000008
【図６】
2020074516.tif 000009
【図７】
2020074516.tif 000010
【図８】
2020074516.tif 000011
【図９】
2020074516.tif 000012
【図１０】
2020074516.tif 000013
【図１１】
2020074516.tif 000014
【図１２】
2020074516.tif 000015
【図１３】
2020074516.tif 000016
【図１４】
2020074516.tif 000017
【図１５】
2020074516.tif 000018
【図１６】
2020074516.tif 000019
【図１７】
2020074516.tif 000020
【図１８】
2020074516.tif 000021