(57)【特許請求の範囲】
【請求項１】
画像を符号化する方法であって、
現在処理ブロックに対して変換（transform）及び量子化（quantization）を行うことにより変換ブロックを生成する段階と、
前記変換ブロックが非正方形ブロック（non-square block）であることに基づいて、前記変換ブロックをサブブロックに分割する段階であって、前記サブブロックは、非正方形サブブロックを有する段階と、
第１スキャン順序（scan order）及び第２スキャン順序に基づいて、前記変換ブロックの係数をエントロピエンコードする段階であって、前記第１スキャン順序は、前記非正方形サブブロックの係数（coefficient）間のスキャン順序を示し、前記第２スキャン順序は、前記サブブロック間のスキャン順序を示す段階と、を有し、
前記非正方形サブブロックの係数の個数は、前記現在処理ブロックの幅及び高さに基づいて決定される、画像符号化方法。
【請求項２】
前記第１スキャン順序は、
前記非正方形サブブロックの左上端係数の位置に基づいて、前記非正方形サブブロック内の係数の距離値を決定する段階と、
前記距離値を順次増加させながら同一の距離値を有する係数に予め定められた順序に従ってスキャンインデックス（scan index）を割り当てる段階と、を有する段階に基づいて決定される、請求項１に記載の画像符号化方法。
【請求項３】
前記非正方形サブブロック内の係数の距離値を決定する段階は、
前記非正方形サブブロックの幅（width）と高さ（height）との比率に基づいて、各係数の水平方向における座標値の増加量を示す水平方向増分と垂直方向における座標値の増加量を示す垂直方向増分とを決定する段階を有し、
前記係数の距離値は、前記水平方向増分と前記垂直方向増分とを合わせた値を利用して決定される、請求項２に記載の画像符号化方法。
【請求項４】
前記非正方形サブブロックの幅が高さより大きいことに基づいて、前記水平方向増分は１に決定され、前記垂直方向増分は２に決定され、
前記非正方形サブブロックの高さが幅より大きいことに基づいて、前記水平方向増分は２に決定され、前記垂直方向増分は１に決定される、請求項３に記載の画像符号化方法。
【請求項５】
前記変換ブロックをサブブロックに分割する段階は、
前記変換ブロックを階層的に分割することにより、前記分割された変換ブロックを下位の深さ（lower depth）を有するサブブロックに分割する段階を有し、
前記第２スキャン順序は、前記変換ブロックからの各深さを有するサブブロック間のスキャン順序を有する、請求項１に記載の画像符号化方法。
【請求項６】
前記変換ブロックが非正方形ブロックであることに基づいて、前記変換ブロックは、サブブロックに分割され、
前記サブブロックは、特定個数の係数を有し、
前記特定個数は、前記変換ブロックの幅（width）と高さ（height）との比率に基づいて決定される、請求項１に記載の画像符号化方法。
【請求項７】
画像を復号する方法であって、
現在処理ブロックが非正方形ブロック（non-square block）であることに基づいて、前記現在処理ブロックをサブブロックに分割する段階であって、前記サブブロックは、非正方形サブブロックを有する段階と、
第１スキャン順序（scan order）及び第２スキャン順序に基づいて、前記現在処理ブロックに対する変換ブロックを取得する段階であって、前記第１スキャン順序は、前記非正方形サブブロックの係数（coefficient）間のスキャン順序を示し、前記第２スキャン順序は、前記サブブロック間のスキャン順序を示す段階と、を有し、
前記非正方形サブブロックの係数の個数は、前記現在処理ブロックの幅及び高さに基づいて決定される、画像復号方法。
【請求項８】
前記第１スキャン順序は、
前記非正方形サブブロックの左上端係数の位置に基づいて、前記非正方形サブブロック内の係数の距離値を決定する段階と、
前記距離値を順次増加させながら同一の距離値を有する係数に予め定められた順序に従ってスキャンインデックス（scan index）を割り当てる段階と、を有する段階に基づいて決定される、請求項７に記載の画像復号方法。
【請求項９】
前記非正方形サブブロック内の係数の距離値を決定する段階は、
前記非正方形サブブロックの幅（width）と高さ（height）との比率に基づいて、各係数の水平方向における座標値の増加量を示す水平方向増分と垂直方向における座標値の増加量を示す垂直方向増分とを決定する段階を有し、
前記係数の距離値は、前記水平方向増分と前記垂直方向増分とを合わせた値を利用して決定される、請求項８に記載の画像復号方法。
【請求項１０】
前記非正方形サブブロックの幅が高さより大きいことに基づいて、前記水平方向増分は１に決定され、前記垂直方向増分は２に決定され、
前記非正方形サブブロックの高さが幅より大きいことに基づいて、前記水平方向増分は２に決定され、前記垂直方向増分は１に決定される、請求項９に記載の画像復号方法。
【請求項１１】
前記現在処理ブロックをサブブロックに分割する段階は、
前記現在処理ブロックを階層的に分割することにより、前記分割された現在処理ブロックを下位の深さ（lower depth）を有するサブブロックに分割する段階を有し、
前記第２スキャン順序は、前記現在処理ブロックからの各深さを有するサブブロック間のスキャン順序を有する、請求項７に記載の画像復号方法。
【請求項１２】
前記現在処理ブロックが非正方形ブロックであることに基づいて、前記現在処理ブロックは、サブブロックに分割され、
前記サブブロックは、特定個数の係数を有し、
前記特定個数は、前記現在処理ブロックの幅（width）と高さ（height）との比率に基づいて決定される、請求項７に記載の画像復号方法。
【請求項１３】
画像を復号する装置であって、
現在処理ブロックが非正方形ブロック（non-square block）であることに基づいて、前記現在処理ブロックをサブブロックに分割し、前記サブブロックは、非正方形サブブロックを有し、
第１スキャン順序（scan order）及び第２スキャン順序に基づいて、前記現在処理ブロックに対する変換ブロックを取得し、前記第１スキャン順序は、前記非正方形サブブロックの係数（coefficient）間のスキャン順序を示し、前記第２スキャン順序は、前記サブブロック間のスキャン順序を示す、ように構成されるプロセッサを有し、
前記非正方形サブブロックの係数の個数は、前記現在処理ブロックの幅及び高さに基づいて決定される、画像復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、静止画又は動画処理方法に関し、より詳細には、変換（transform）された残差信号（residual signal）を符号化／復号する方法及びそれをサポートする装置に関する。
【背景技術】
【０００２】
圧縮符号化とは、デジタル化した情報を通信回線を介して送信したり、記憶媒体に適した形態で記憶する一連の信号処理技術を意味する。画像、イメージ、音声等のメディアが圧縮符号化の対象となることができ、特に、画像を対象として圧縮符号化を行う技術をビデオ画像圧縮と称する。
【０００３】
次世代ビデオコンテンツは、高解像度（high spatial resolution）、高フレームレート（high frame rate）、及び画像表現の高次元化（high dimensionality of scene representation）という特徴を有するようになるであろう。そのようなコンテンツを処理するためには、記憶保持（memory storage）、メモリアクセスレート（memory access rate）、及び処理電力（processing power）の側面で莫大な増加を有してくるであろう。
【０００４】
したがって、次世代ビデオコンテンツをより効率的に処理するためのコーディングツールをデザインする必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、変換（transform）された残差信号を符号化／復号することを提案することにある。
【０００６】
また、本発明の目的は、残差信号に対するエントロピコーディングを行うために、変換ブロックから分割された係数グループ間のスキャン順序（scan order）を設定する方法を提案することにある。
【０００７】
また、本発明の目的は、残差信号に対するエントロピコーディングを行うために、変換ブロックから分割された係数グループ内の係数のスキャン順序（scan order）を設定する方法を提案することにある。
【０００８】
本発明において達成しようとする技術的課題は、以上で言及した技術的課題に制限されず、言及していないさらに他の技術的課題は、下記の記載から本発明の属する技術分野における通常の知識を有する者に明確に理解され得るであろう。
【課題を解決するための手段】
【０００９】
本発明の一態様は、画像を符号化する方法であって、現在処理ブロックの残差信号（residual signal）に対して変換（transform）及び量子化（quantization）を行うことにより量子化された変換ブロックを生成する段階と、量子化された変換ブロックを複数の係数グループ（coefficient group）に分割する段階と、係数グループの係数（coefficient）間のスキャン順序（scan order）を示す第１スキャン順序を決定する段階と、第１スキャン順序と、複数の係数グループ間のスキャン順序を示す第２スキャン順序と、に従って量子化された変換ブロックの係数をエントロピエンコードする段階と、を有する。
【００１０】
好ましくは、第１スキャン順序を決定する段階は、係数グループの左上端係数を基準とする係数グループの各係数の距離値を決定する段階と、距離値を順次増加させながら同一の距離値を有する係数に予め定められた順序に従ってスキャンインデックス（scan index）を割り当てる段階と、を有してもよい。
【００１１】
好ましくは、係数グループの各係数の距離値を決定する段階は、係数グループが非正方形ブロックである場合、係数グループの幅（width）と高さ（height）との比率に基づいて、各係数の水平方向における座標値の増加量を示す水平方向増分と垂直方向における座標値の増加量を示す垂直方向増分とを決定する段階を有し、各係数の距離値は、水平方向増分と垂直方向増分とを合わせた値を利用して決定されてもよい。
【００１２】
好ましくは、係数グループの幅が高さより大きい場合、水平方向増分は１に決定され、垂直方向増分は２に決定され、係数グループの高さが幅より大きい場合、水平方向増分は２に決定され、垂直方向増分は１に決定されてもよい。
【００１３】
好ましくは、複数の係数グループに分割する段階は、量子化された変換ブロックを階層的に分割することにより下位の深さ（lower depth）を有する係数グループに分割する段階を有し、第２スキャン順序は、量子化された変換ブロックから分割された各深さの係数グループ間のスキャン順序を有してもよい。
【００１４】
好ましくは、量子化された変換ブロックが非正方形ブロックである場合、量子化された変換ブロックは、特定個数の係数で構成される係数グループに分割され、特定個数は、量子化された変換ブロックの幅（width）と高さ（height）との比率によって決定されてもよい。
【００１５】
本発明の他の一態様は、画像を復号する方法であって、現在処理ブロックを複数の係数グループ（coefficient group）に分割する段階と、係数グループの係数（coefficient）間のスキャン順序（scan order）を示す第１スキャン順序を決定する段階と、エンコーダから出力されたビットストリームをエントロピデコードすることにより量子化された変換係数を生成する段階と、第１スキャン順序と、複数の係数グループ間のスキャン順序を示す第２スキャン順序と、に従って量子化された変換係数を配置することにより、現在処理ブロックの量子化された変換ブロックを生成する段階と、を有してもよい。
【００１６】
本発明の他の一態様は、第１スキャン順序を決定する段階は、係数グループの左上端係数を基準とする係数グループの各係数の距離値を決定する段階と、距離値を順次増加させながら同一の距離値を有する係数に予め定められた順序に従ってスキャンインデックス（scan index）を割り当てる段階と、を有してもよい。
【００１７】
好ましくは、係数グループの各係数の距離値を決定する段階は、係数グループが非正方形ブロックである場合、係数グループの幅（width）と高さ（height）との比率に基づいて、各係数の水平方向における座標値の増加量を示す水平方向増分と垂直方向における座標値の増加量を示す垂直方向増分とを決定する段階を有し、各係数の距離値は、水平方向増分と垂直方向増分とを合わせた値を利用して決定されてもよい。
【００１８】
好ましくは、係数グループの幅が高さより大きい場合、水平方向増分は１に決定され、垂直方向増分は２に決定され、係数グループの高さが幅より大きい場合、水平方向増分は２に決定され、垂直方向増分は１に決定されてもよい。
【００１９】
好ましくは、複数の係数グループに分割する段階は、現在処理ブロックを階層的に分割することにより下位の深さ（lower depth）を有する係数グループに分割する段階を有し、第２スキャン順序は、現在処理ブロックから分割された各深さの係数グループ間のスキャン順序を有してもよい。
【００２０】
好ましくは、現在処理ブロックが非正方形ブロックである場合、現在処理ブロックは、特定個数の係数で構成される係数グループに分割され、特定個数は、現在処理ブロックの幅（width）と高さ（height）との比率によって決定されてもよい。
【００２１】
本発明の他の一態様は、画像を復号する装置であって、現在処理ブロックを複数の係数グループ（coefficient group）に分割する係数グループ分割部と、係数グループの係数（coefficient）間のスキャン順序（scan order）を示す第１スキャン順序を決定するスキャン順序決定部と、エンコーダから出力されたビットストリームをエントロピデコードすることにより量子化された変換係数を生成する変換係数生成部と、第１スキャン順序と、複数の係数グループ間のスキャン順序を示す第２スキャン順序と、に従って量子化された変換係数を配置することにより、現在処理ブロックの量子化された変換ブロックを生成する変換ブロック生成部と、を有する。
【発明の効果】
【００２２】
本発明の実施形態によると、静止画又は動画の符号化のときに残差信号の量を節約することができる。
【００２３】
また、本発明の実施形態によると、残差信号の量を節約することにより符号化／復号効率を向上させることができる。
【００２４】
また、本発明の実施形態によると、変換係数のスキャン順序（scan order）を効率的に設定することにより、変換係数のコーディングに必要なデータ量を減らすことができる。
【００２５】
また、本発明の実施形態によると、非正方形ブロック形態を考慮して変換係数のスキャン順序（scan order）を設定することにより変換係数のコーディングに必要なデータ量を減らし、圧縮性能を向上させることができる。
【００２６】
本発明で得ることができる効果は、以上で言及した効果に制限されず、言及しない更に他の効果は、以下の記載から本発明が属する技術分野で通常の知識を有する者に明確に理解できるはずである。
【図面の簡単な説明】
【００２７】
【図１】本発明が適用される実施形態であって、静止画又は動画信号のエンコードが行われるエンコーダの概略ブロック図である。
【図２】本発明が適用される実施形態であって、静止画又は動画信号のエンコードが行われるデコーダの概略ブロック図である。
【図３】本発明に適用できるコーディングユニットの分割構造を説明する図である。
【図４】本発明に適用できる予測ユニットを説明する図である。
【図５】本発明が適用されることができる実施形態であって、残差信号を符号化する方法を例示する図である。
【図６】本発明が適用されることができる実施形態であって、残差信号を復号する方法を例示する図である。
【図７】本発明が適用される実施形態であって、係数グループ単位で変換係数をスキャンする方法を例示する図である。
【図８】本発明が適用される実施形態であって、係数グループ別の変換係数のスキャン順序を例示する図である。
【図９】本発明が適用される実施形態であって、変換ブロックの分割構造及び変換係数のスキャン順序を決定する方法を説明する図である。
【図１０】本発明が適用される実施形態であって、変換ブロックの分割構造及び変換係数のスキャン順序を決定する方法を説明する図である。
【図１１】本発明が適用される実施形態であって、ブロック内の係数の位置を表現した一例を示す図である。
【図１２】本発明の一実施形態によるブロック内の変換係数の位置によるスキャン順序を例示する図である。
【図１３】本発明の一実施形態によるブロック内の変換係数の位置によるスキャン順序を例示する図である。
【図１４】本発明が適用される実施形態であって、非正方形ブロックの係数に対するスキャン順序を決定する方法を説明する図である。
【図１５】本発明が適用される実施形態であって、非正方形ブロックの係数に対するスキャン順序を決定する方法を説明する図である。
【図１６】本発明が適用される実施形態であって、スーパーピクセル（super-pixel）単位で非正方形ブロックの係数に対するスキャン順序を決定する方法を説明する図である。
【図１７】本発明が適用される実施形態であって、スーパーピクセル（super-pixel）単位で非正方形ブロックの係数に対するスキャン順序を決定する方法を説明する図である。
【図１８】本発明が適用される実施形態であって、係数グループに対するスキャン順序を決定する方法を例示する図である。
【図１９】本発明の一実施形態による画像の符号化方法を例示する図である。
【図２０】本発明の一実施形態による画像の復号方法を例示する図である。
【図２１】本発明の一実施形態による画像の復号装置を例示する図である。
【発明を実施するための形態】
【００２８】
本発明に関する理解を助けるために、詳細な説明の一部として含まれる添付図面は、本発明に対する実施形態を提供し、詳細な説明とともに本発明の技術的特徴を説明する。
【００２９】
以下、本発明に係る好ましい実施形態を、添付された図面を参照して詳細に説明する。添付された図面とともに以下に開示される詳細な説明は、本発明の例示的な実施形態を説明しようとするものであり、本発明が実施され得る唯一の実施形態を表そうとするものではない。以下の詳細な説明は、本発明の完全な理解を提供するために具体的な細部事項を含む。しかしながら、当業者は、本発明がこのような具体的な細部事項がなくとも実施され得ることが分かる。
【００３０】
いくつかの場合、本発明の概念が曖昧になることを避けるために、公知の構造及び装置は、省略されるか、各構造及び装置の中核機能を中心としたブロック図形式で図示されることができる。
【００３１】
合わせて、本発明で使用される用語は、なるべく現在広く使用される一般的な用語を選択したが、特定の場合は、出願人が任意に選定した用語を使用して説明する。そのような場合には、当該部分の詳細説明でその意味を明確に記載するので、本発明の説明で使用された用語の名称だけで単純に解釈されてはならず、その当該用語の意味まで把握して解釈されなければならないことを明かしておく。
【００３２】
以下の説明で使用される特定用語等は、本発明の理解を助けるために提供されたものであって、このような特定用語の使用は、本発明の技術的思想を逸脱しない範囲で他の形態に変更されることができる。例えば、信号、データ、サンプル、ピクチャ、フレーム、ブロックなどの場合、各コーディング過程（処理）で適宜代替されて解釈され得るであろう。
【００３３】
以下、本明細書において「ブロック」又は「ユニット」は、予測、変換及び／又は量子化などのエンコード／デコードの過程が行われる単位を意味し、サンプル（又は、画素、ピクセル）の多次元配列で構成されることができる。
【００３４】
「ブロック」又は「ユニット」は、輝度（luma）成分に対するサンプルの多次元配列を意味することができ、色差（chroma）成分に対するサンプルの多次元配列を意味することもできる。また、輝度（luma）成分に対するサンプルの多次元配列と色差（chroma）成分に対するサンプルの多次元配列とを全て含んで通称することもできる。
【００３５】
例えば、「ブロック」又は「ユニット」は、エンコード／デコードの実行対象になるサンプルの配列を意味するコーディングブロック（ＣＢ：Coding Block）、複数のコーディングブロックで構成されるコーディングツリーブロック（ＣＴＢ：Coding Tree Block）、同じ予測が適用されるサンプルの配列を意味する予測ブロック（ＰＢ：Prediction Block）（又は、予測ユニット（ＰＵ：Prediction Unit））、同じ変換が適用されるサンプルの配列を意味する変換ブロック（ＴＢ：Transform Block）（又は、変換ユニット（ＴＵ：Transform Unit））を全て含む意味として解釈されることができる。
【００３６】
また、本明細書で別の言及がない限り、「ブロック」又は「ユニット」は、輝度（luma）成分及び／又は色差（chroma）成分に対するサンプルの配列をエンコード／デコードする過程で利用されるシンタックス構造（syntax structure）を含む意味として解釈されることができる。ここで、シンタックス構造は、特定の順序でビットストリーム内に存在する０又はそれ以上のシンタックス要素（syntax element）を意味し、シンタックス要素は、ビットストリーム内で表現されるデータの要素を意味する。
【００３７】
例えば、「ブロック」又は「ユニット」は、コーディングブロックＣＢと当該コーディングブロックＣＢのエンコードのために利用されるシンタックス構造とを含むコーディングユニット（ＣＵ：Coding Unit）、複数のコーディングユニットで構成されるコーディングツリーユニット（ＣＵ：Coding Tree Unit）、予測ブロックＰＢと当該予測ブロックＰＢの予測のために利用されるシンタックス構造とを含む予測ユニット（ＰＵ：Prediction Unit）、変換ブロックＴＢと当該変換ブロックＴＢの変換のために利用されるシンタックス構造とを含む変換ユニット（ＴＵ：Transform Unit）を全て含む意味として解釈されることができる。
【００３８】
また、本明細書で「ブロック」又は「ユニット」は、必ずしも正方形又は長方形の形態のサンプル（又は、画素、ピクセル）の配列に限定されるものではなく、３個以上の頂点を有する多角形の形態のサンプル（又は、画素、ピクセル）の配列を意味することもできる。この場合、ポリゴン（Polygon）ブロック又はポリゴンユニットに呼ばれることもできる。
【００３９】
図１は、本発明が適用される実施形態であって、静止画又は動画信号のエンコードが行われるエンコーダの概略ブロック図を示す。
【００４０】
図１に示すように、エンコーダ１００は、画像分割部１１０、減算器１１５、変換部１２０、量子化部１３０、逆量子化部１４０、逆変換部１５０、フィルタリング部１６０、復号ピクチャバッファ（ＤＰＢ：Decoded Picture Buffer）１７０、予測部１８０、及びエントロピエンコード部１９０を備えて構成されることができる。そして、予測部１８０は、インター予測部１８１、イントラ予測部１８２を備えて構成されることができる。
【００４１】
画像分割部１１０は、エンコーダ１００に入力された入力画像信号（Input video signal）（又は、ピクチャ、フレーム）を１つ又は複数のブロックに分割する。
【００４２】
減算器１１５は、入力画像信号から、予測部１８０（すなわち、インター予測部１８１又はイントラ予測部１８２）から出力された、予測された信号（predicted signal）（又は、予測されたブロック（predicted block））を減算して、差分信号（residual signal）（又は、差分ブロック）を生成する。生成された差分信号（又は、差分ブロック）は、変換部１２０に送信される。
【００４３】
変換部１２０は、差分信号（又は、差分ブロック）に変換技法（例えば、ＤＣＴ（Discrete Cosine Transform）、ＤＳＴ（Discrete Sine Transform）、ＧＢＴ（Graph-Based Transform）、ＫＬＴ（Karhunen-Loeve transform）等）を適用して変換係数（transform coefficient）を生成する。このとき、変換部１２０は、差分ブロックに適用された予測モード及び差分ブロックのサイズに応じて決定された変換技法を利用して変換を行うことにより、変換係数を生成することができる。
【００４４】
量子化部１３０は、変換係数を量子化してエントロピエンコード部１９０に送信し、エントロピエンコード部１９０は、量子化された信号（quantized signal）をエントロピエンコードしてビットストリームに出力する。
【００４５】
一方、量子化部１３０から出力された量子化された信号（quantized signal）は、予測信号を生成するために用いられることができる。例えば、量子化された信号（quantized signal）は、ループ内の逆量子化部１４０及び逆変換部１５０を介して逆量子化及び逆変換を適用することによって、差分信号を復元することができる。復元された差分信号をインター予測部１８１又はイントラ予測部１８２から出力された予測信号（prediction signal）に足すことにより、復元信号（reconstructed signal）（又は、復元ブロック）が生成され得る。
【００４６】
一方、上記のような圧縮過程で隣接するブロックが互いに異なる量子化パラメータにより量子化されることで、ブロック境界が見える劣化が発生し得る。このような現象をブロックアーチファクト（blocking artifacts）といい、これは、画質を評価する重要な要素のうちの１つである。このような劣化を減らすために、フィルタリング過程を行うことができる。このようなフィルタリング過程を介してブロックアーチファクトを除去するとともに、現在ピクチャに対する誤差を減らすことにより、画質を向上させることができる。
【００４７】
フィルタリング部１６０は、復元信号にフィルタリングを適用して、これを再生装置に出力するか、復号ピクチャバッファ１７０に送信する。復号ピクチャバッファ１７０に送信されたフィルタリングされた信号は、インター予測部１８１で参照ピクチャとして使用されることができる。このように、フィルタリングされたピクチャを画面間予測モードで参照ピクチャとして用いることにより、画質だけでなく、符号化効率も向上させることができる。
【００４８】
復号ピクチャバッファ１７０は、フィルタリングされたピクチャをインター予測部１８１における参照ピクチャとして使用するために記憶することができる。
【００４９】
インター予測部１８１は、復元ピクチャ（reconstructed picture）を参照して時間的冗長性及び／又は空間的冗長性を除去するために、時間的予測及び／又は空間的予測を行う。
【００５０】
ここで、予測を行うために用いられる参照ピクチャは、以前の時間にブロック単位で符号化／復号された信号であるため、ブロックアーチファクト（blocking artifact）やリングアーチファクト（ringing artifact）が存在し得る。
【００５１】
したがって、インター予測部１８１は、このような信号の不連続や量子化による性能低下を解決するために又は動き予測の精密度の向上のために、ローパスフィルタ（lowpass filter）を適用することによりピクセル間の信号をサブピクセル単位で補間することができる。ここで、サブピクセルは、補間フィルタを適用して生成された仮想の画素を意味し、整数ピクセルは、復元されたピクチャに存在する実際の画素を意味する。補間方法としては、線形補間、双線形補間（bi-linear interpolation）、ウィナーフィルタ（wiener filter）などが適用され得る。
【００５２】
補間フィルタは、復元ピクチャ（reconstructed picture）に適用されて、予測の精密度を向上させることができる。例えば、インター予測部１８１は、整数ピクセルに補間フィルタを適用して補間ピクセルを生成し、補間ピクセル（interpolated pixels）で構成された補間ブロック（interpolated block）を使用して予測を行うことができる。
【００５３】
イントラ予測部１８２は、現在符号化を進行しようとするブロックの周辺にあるサンプルを参照して現在ブロックを予測する。イントラ予測部１８２は、イントラ予測を行うために、次のような過程を行うことができる。まず、予測信号を生成するために必要な参照サンプルを用意することができる。そして、用意された参照サンプルを用いて予測された信号（予測されたブロック）を生成できる。その後、予測モードを符号化する。このとき、参照サンプルは、参照サンプルパディング及び／又は参照サンプルフィルタリングを介して用意されることができる。参照サンプルは、予測及び復元過程を経ているので、量子化エラーが存在し得る。したがって、このようなエラーを減らすために、イントラ予測に用いられる各予測モードに対して参照サンプルフィルタリング過程が行われ得る。
【００５４】
インター予測部１８１又は上記イントラ予測部１８２を介して生成された、予測された信号（predicted signal）（又は、予測されたブロック）は、復元信号（又は、復元ブロック）を生成するために用いられるか、差分信号（又は、差分ブロック）を生成するために用いられることができる。
【００５５】
図２は、本発明が適用される実施形態であって、静止画又は動画信号のエンコード（デコード）が行われるデコーダの概略ブロック図を示す。
【００５６】
図２に示すように、デコーダ２００は、エントロピデコード部２１０、逆量子化部２２０、逆変換部２３０、加算器２３５、フィルタリング部２４０、復号ピクチャバッファ（ＤＰＢ：Decoded Picture Buffer Unit）２５０、予測部２６０を備えて構成されることができる。そして、予測部２６０は、インター予測部２６１及びイントラ予測部２６２を備えて構成されることができる。
【００５７】
そして、デコーダ２００を介して出力された復元画像信号（reconstructed video signal）は、再生装置を介して再生されることができる。
【００５８】
デコーダ２００は、図１のエンコーダ１００から出力された信号（すなわち、ビットストリーム）を受信し、受信した信号は、エントロピデコード部２１０を介してエントロピデコードされる。
【００５９】
逆量子化部２２０では、量子化ステップサイズ情報を利用してエントロピデコードされた信号から変換係数（transform coefficient）を取得する。
【００６０】
逆変換部２３０では、逆変換技法を適用して変換係数を逆変換して差分信号（residual signal）（又は、差分ブロック）を取得する。
【００６１】
加算器２３５は、取得された差分信号（又は、差分ブロック）を、予測部２６０（すなわち、インター予測部２６１又はイントラ予測部２６２）から出力された、予測された信号（predicted signal）（又は、予測されたブロック）に足すことにより、復元信号（reconstructed signal）（又は、復元ブロック）を生成する。
【００６２】
フィルタリング部２４０は、復元信号（reconstructed signal）（又は、復元ブロック）にフィルタリングを適用して、これを再生装置に出力するか、復号ピクチャバッファ部２５０に送信する。復号ピクチャバッファ部２５０に送信されたフィルタリングされた信号は、インター予測部２６１で参照ピクチャとして使用されることができる。
【００６３】
本明細書において、エンコーダ１００のフィルタリング部１６０、インター予測部１８１、及びイントラ予測部１８２で説明された実施形態は、各々デコーダのフィルタリング部２４０、インター予測部２６１、及びイントラ予測部２６２にも同様に適用されることができる。
【００６４】
ブロック分割構造
【００６５】
一般に、静止画又は動画圧縮技術（例えば、ＨＥＶＣ）では、ブロックベースの画像圧縮方法を利用する。ブロックベースの画像圧縮方法は、画像を特定ブロック単位に分けて処理する方法であって、メモリの使用及び演算量を減少させることができる。
【００６６】
図３は、本発明に適用され得るコーディングユニットの分割構造を説明する図である。
【００６７】
エンコーダは、１つの画像（又は、ピクチャ）を四角形の形態のコーディングツリーユニット（ＣＴＵ：Coding Tree Unit）単位に分割する。そして、ラスタスキャン順序（raster scan order）に従って１つのＣＴＵずつ順次エンコードする。
【００６８】
ＨＥＶＣにおけるＣＴＵのサイズは、６４×６４、３２×３２、１６×１６のうち、いずれか１つに決められることができる。エンコーダは、入力された画像の解像度又は入力された画像の特性などによって、ＣＴＵのサイズを選択して使用することができる。ＣＴＵは、輝度（luma）成分に対するコーディングツリーブロック（ＣＴＢ：Coding Tree Block）と、これに対応する２つの色差（chroma）成分に対するＣＴＢと、を含む。
【００６９】
１つのＣＴＵは、クアッドツリー（Quad-tree）構造に分割されることができる。すなわち、１つのＣＴＵは、正方形の形態を有しながら半分の水平サイズ（half horizontal size）及び半分の垂直サイズ（half vertical size）を有する４個のユニットに分割されて、コーディングユニット（ＣＵ：Coding Unit）が生成され得る。このようなクアッドツリー構造の分割は、再帰的に行われることができる。すなわち、ＣＵは、１つのＣＴＵからクアッドツリー構造で階層的に分割される。
【００７０】
ＣＵは、入力画像の処理過程、例えば、イントラ（intra）／インター（inter）予測が行われるコーディングの基本単位を意味する。ＣＵは、輝度（luma）成分に対するコーディングブロック（ＣＢ：Coding Block）と、これに対応する２つの色差（chroma）成分に対するＣＢと、を含む。ＨＥＶＣにおけるＣＵのサイズは、６４×６４、３２×３２、１６×１６、８×８のうち、いずれか１つに決められることができる。
【００７１】
図３に示すように、クアッドツリーのルートノード（root node）は、ＣＴＵと関連する（関連付けられる）。クアッドツリーは、リーフノード（leaf node）に到達するまで分割され、リーフノードは、ＣＵに該当（対応）する。
【００７２】
より具体的に説明すれば、ＣＴＵは、ルートノード（root node）に該当し、最も小さい深さ（depth）（すなわち、ｄｅｐｔｈ＝０）値を有する。入力画像の特性に応じてＣＴＵが分割されないことがあり、この場合、ＣＴＵは、ＣＵに該当する。
【００７３】
ＣＴＵは、クアッドツリー形態に分割されることができ、その結果、深さ１（ｄｅｐｔｈ＝１）である下位ノードが生成される。そして、１の深さを有する下位ノードでそれ以上分割されないノード（すなわち、リーフノード）は、ＣＵに該当する。例えば、図３（ｂ）においてノードａ、ｂ及びｊに対応するＣＵ（ａ）、ＣＵ（ｂ）、ＣＵ（ｊ）は、ＣＴＵで１回分割され、１の深さを有する。
【００７４】
１の深さを有するノードのうち、少なくともいずれか１つは、再度クアッドツリー形態に分割されることができ、その結果、深さ２（すなわち、ｄｅｐｔｈ＝２）である下位ノードが生成される。そして、２の深さを有する下位ノードでそれ以上分割されないノード（すなわち、リーフノード）は、ＣＵに該当する。例えば、図３（ｂ）においてノードｃ、ｈ、及びｉに対応するＣＵ（ｃ）、ＣＵ（ｈ）、ＣＵ（ｉ）は、ＣＴＵで２回分割され、２の深さを有する。
【００７５】
また、２の深さを有するノードのうち、少なくともいずれか１つは、再度クアッドツリー形態に分割されることができ、その結果、深さ３（すなわち、ｄｅｐｔｈ＝３）である下位ノードが生成される。そして、３の深さを有する下位ノードでそれ以上分割されないノード（すなわち、リーフノード）は、ＣＵに該当する。例えば、図３（ｂ）においてノードｄ、ｅ、ｆ、ｇに対応するＣＵ（ｄ）、ＣＵ（ｅ）、ＣＵ（ｆ）、ＣＵ（ｇ）は、ＣＴＵで３回分割され、３の深さを有する。
【００７６】
エンコーダでは、ビデオ画像の特性（例えば、解像度）に応じて、あるいは符号化の効率を考慮して、ＣＵの最大サイズ又は最小サイズを決定できる。そして、これに関する情報又はこれを導くことができる情報がビットストリームに含まれ得る。最大サイズを有するＣＵを最大コーディングユニット（ＬＣＵ：Largest Coding Unit）と呼び、最小サイズを有するＣＵを最小コーディングユニット（ＳＣＵ：Smallest Coding Unit）と呼ぶことができる。
【００７７】
また、ツリー構造を有するＣＵは、予め決められた最大深さ情報（又は、最大レベル情報）を有して階層的に分割されることができる。そして、それぞれの分割されたＣＵは、深さ情報を有することができる。深さ情報は、ＣＵの分割された回数及び／又は程度を表すので、ＣＵのサイズに関する情報を含むこともできる。
【００７８】
ＬＣＵがクアッドツリーの形態に分割されるので、ＬＣＵのサイズ及び最大深さ情報を利用すれば、ＳＣＵのサイズを求めることができる。あるいは、逆に、ＳＣＵのサイズ及びツリーの最大深さ情報を利用すれば、ＬＣＵのサイズを求めることができる。
【００７９】
１つのＣＵに対して、当該ＣＵが分割されるか否かを表す情報（例えば、分割ＣＵフラグ（ｓｐｌｉｔ＿ｃｕ＿ｆｌａｇ））がデコーダに伝達され得る。この分割モードは、ＳＣＵを除いた全てのＣＵに含まれている。例えば、分割が可能か否かを表すフラグの値が「１」であれば、当該ＣＵはさらに４個のＣＵに分けられ、分割が可能か否かを表すフラグの値が「０」であれば、当該ＣＵはそれ以上分けられず、当該ＣＵに対する処理過程が行われ得る。
【００８０】
前述のように、ＣＵは、イントラ予測又はインター予測が行われるコーディングの基本単位である。ＨＥＶＣは、入力画像をより効果的にコーディングするために、ＣＵを予測ユニット（ＰＵ：Prediction Unit）単位に分割する。
【００８１】
ＰＵは、予測ブロックを生成する基本単位であって、１つのＣＵ内でもＰＵ単位に互いに異なるように予測ブロックを生成できる。ただし、１つのＣＵ内に属するＰＵなどは、イントラ予測とインター予測とが混合されて使用されず、１つのＣＵ内に属するＰＵなどは、同じ予測方法（すなわち、イントラ予測あるいはインター予測）によりコーディングされる。
【００８２】
ＰＵは、クアッドツリー構造に分割されず、１つのＣＵで予め決められた形態で１回分割される。これについて、下記で図面を参照して説明する。
【００８３】
図４は、本発明に適用され得る予測ユニットを説明する図である。
【００８４】
ＰＵは、ＰＵが属するＣＵのコーディングモードとしてイントラ予測モードが使用されるか、インター予測モードが使用されるかによって相違して分割される。
【００８５】
図４（ａ）は、イントラ予測モードが使用される場合のＰＵを例示し、図４（ｂ）は、インター予測モードが使用される場合のＰＵを例示する。
【００８６】
図４（ａ）に示すように、１つのＣＵのサイズが２Ｎ×２Ｎ（Ｎ＝４、８、１６、３２）である場合を仮定すれば、１つのＣＵは、２つのタイプ（すなわち、２Ｎ×２Ｎ又はＮ×Ｎ）に分割されることができる。
【００８７】
ここで、２Ｎ×２Ｎ形態のＰＵに分割される場合、１つのＣＵ内に１つのＰＵだけが存在することを意味する。
【００８８】
それに対し、Ｎ×Ｎ形態のＰＵに分割される場合、１つのＣＵは、４個のＰＵに分割され、各ＰＵ単位別に互いに異なる予測ブロックが生成される。ただし、このようなＰＵの分割は、ＣＵの輝度成分に対するＣＢのサイズが最小サイズである場合（すなわち、ＣＵがＳＣＵである場合）にのみ行われることができる。
【００８９】
図４（ｂ）に示すように、１つのＣＵのサイズが２Ｎ×２Ｎ（Ｎ＝４、８、１６、３２）である場合を仮定すれば、１つのＣＵは、８つのＰＵタイプ（すなわち、２Ｎ×２Ｎ、Ｎ×Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、ｎＬ×２Ｎ、ｎＲ×２Ｎ、２Ｎ×ｎＵ、２Ｎ×ｎＤ）に分割されることができる。
【００９０】
イントラ予測と同様に、Ｎ×Ｎ形態のＰＵ分割は、ＣＵの輝度成分に対するＣＢのサイズが最小サイズである場合（すなわち、ＣＵがＳＣＵである場合）にのみ行われることができる。
【００９１】
インター予測では、横方向に分割される２Ｎ×Ｎ形態及び縦方向に分割されるＮ×２Ｎ形態のＰＵ分割をサポートする。
【００９２】
また、非対称動き分割（ＡＭＰ：Asymmetric Motion Partition）形態であるｎＬ×２Ｎ、ｎＲ×２Ｎ、２Ｎ×ｎＵ、２Ｎ×ｎＤ形態のＰＵ分割をサポートする。ここで、「ｎ」は、２Ｎの１／４値を意味する。ただし、ＡＭＰは、ＰＵが属するＣＵが最小サイズのＣＵである場合、使用されることができない。
【００９３】
１つのＣＴＵ内の入力画像を効率的に符号化するために、コーディングユニットＣＵ、予測ユニットＰＵ、変換ユニットＴＵの最適な分割構造は、下記のような実行過程を経て最小レート歪み（Rate-Distortion）値に基づいて決定されることができる。例えば、６４×６４ＣＴＵ内の最適なＣＵ分割過程を説明すれば、６４×６４サイズのＣＵから８×８サイズのＣＵまでの分割過程を経ながら、レート歪みコストを計算できる。具体的な過程は、次のとおりである。
【００９４】
１）６４×６４サイズのＣＵに対してインター／イントラ予測、変換／量子化、逆量子化／逆変換、及びエントロピエンコードの実行を介して最小のレート歪み値を発生させる最適なＰＵ及びＴＵの分割構造を決定する。
【００９５】
２）６４×６４ＣＵを３２×３２サイズのＣＵ４個に分割し、各３２×３２ＣＵに対して最小のレート歪み値を発生させる最適なＰＵ及びＴＵの分割構造を決定する。
【００９６】
３）３２×３２ＣＵを１６×１６サイズのＣＵ４個に再度分割し、各１６×１６ＣＵに対して最小のレート歪み値を発生させる最適なＰＵ及びＴＵの分割構造を決定する。
【００９７】
４）１６×１６ＣＵを８×８サイズのＣＵ４個に再度分割し、各８×８ＣＵに対して最小のレート歪み値を発生させる最適なＰＵ及びＴＵの分割構造を決定する。
【００９８】
５）上記の３）の過程で算出した１６×１６ＣＵのレート歪み値と、上記の４）の過程で算出した４個８×８ＣＵのレート歪み値と、の合計を比較して、１６×１６ブロック内で最適なＣＵの分割構造を決定する。この過程を残りの３個の１６×１６ＣＵなどに対しても同様に行う。
【００９９】
６）上記の２）の過程で計算された３２×３２ＣＵのレート歪み値と、上記の５）の過程で取得した４個の１６×１６ＣＵのレート歪み値と、の合計を比較して、３２×３２ブロック内で最適なＣＵの分割構造を決定する。この過程を残りの３個の３２×３２ＣＵなどに対しても同様に行う。
【０１００】
７）最後に、上記の１）の過程で計算された６４×６４ＣＵのレート歪み値と、上記の６）の過程で取得した４個の３２×３２ＣＵのレート歪み値との合計を比較して、６４×６４ブロック内で最適なＣＵの分割構造を決定する。
【０１０１】
イントラ予測モードにおいて、ＰＵ単位で予測モードが選択され、選択された予測モードに対して実際のＴＵ単位で予測及び再構成が行われる。
【０１０２】
ＴＵは、実際の予測及び再構成が行われる基本単位を意味する。ＴＵは、輝度（luma）成分に対する変換ブロック（ＴＢ：Transform Block）と、これに対応する２つの色差（chroma）成分に対するＴＢと、を含む。
【０１０３】
前述した図３の例において１つのＣＴＵがクアッドツリー構造に分割されてＣＵが生成されるように、ＴＵは、コーディングしようとする１つのＣＵからクアッドツリー構造に階層的に分割される。
【０１０４】
ＴＵは、クアッドツリー構造に分割されるので、ＣＵから分割されたＴＵは、再度より小さい下位ＴＵに分割されることができる。ＨＥＶＣでは、ＴＵのサイズは、３２×３２、１６×１６、８×８、４×４のうち、いずれか１つに決められることができる。
【０１０５】
さらに、図３に示すように、クアッドツリーのルートノード（root node）は、ＣＵと関連すると仮定する。クアッドツリーは、リーフノード（leaf node）に到達するまで分割され、リーフノードは、ＴＵに該当する。
【０１０６】
より具体的に説明すれば、ＣＵは、ルートノード（root node）に該当し、最も小さい深さ（depth）（すなわち、ｄｅｐｔｈ＝０）値を有する。入力画像の特性に応じてＣＵが分割されないこともあり、この場合、ＣＵは、ＴＵに該当する。
【０１０７】
ＣＵは、クアッドツリー形態に分割されることができ、その結果、深さ１（ｄｅｐｔｈ＝１）である下位ノードが生成される。そして、１の深さを有する下位ノードでそれ以上分割されなかったノード（すなわち、リーフノード）は、ＴＵに該当する。例えば、図３（ｂ）において、ノードａ、ｂ、及びｊに対応するＴＵ（ａ）、ＴＵ（ｂ）、ＴＵ（ｊ）は、ＣＵで１回分割され、１の深さを有する。
【０１０８】
１の深さを有するノードのうち、少なくともいずれか１つは、再度クアッドツリー形態に分割されることができ、その結果、深さ２（すなわち、ｄｅｐｔｈ＝２）である下位ノードが生成される。そして、２の深さを有する下位ノードでそれ以上分割されなかったノード（すなわち、リーフノード）は、ＴＵに該当する。例えば、図３（ｂ）において、ノードｃ、ｈ、及びｉに対応するＴＵ（ｃ）、ＴＵ（ｈ）、ＴＵ（ｉ）は、ＣＵで２回分割され、２の深さを有する。
【０１０９】
また、２の深さを有するノードのうち、少なくともいずれか１つは、再度クアッドツリー形態に分割されることができ、その結果、深さ３（すなわち、ｄｅｐｔｈ＝３）である下位ノードが生成される。そして、３の深さを有する下位ノードでそれ以上分割されなかったノード（すなわち、リーフノード）は、ＣＵに該当する。例えば、図３（ｂ）において、ノードｄ、ｅ、ｆ、ｇに対応するＴＵ（ｄ）、ＴＵ（ｅ）、ＴＵ（ｆ）、ＴＵ（ｇ）は、ＣＵで３回分割され、３の深さを有する。
【０１１０】
ツリー構造を有するＴＵは、予め決められた最大深さ情報（又は、最大レベル情報）を有して階層的に分割されることができる。そして、それぞれの分割されたＴＵは、深さ情報を有することができる。深さ情報は、ＴＵの分割された回数及び／又は程度を表すので、ＴＵのサイズに関する情報を含むこともできる。
【０１１１】
１つのＴＵに対して、当該ＴＵが分割されるか否かを表す情報（例えば、分割ＴＵフラグ（ｓｐｌｉｔ＿ｔｒａｎｓｆｏｒｍ＿ｆｌａｇ））がデコーダに伝達され得る。この分割情報は、最小サイズのＴＵを除いた全てのＴＵに含まれている。例えば、分割が可能か否かを表すフラグの値が「１」であれば、当該ＴＵは、さらに４個のＴＵに分けられ、分割が可能か否かを表すフラグの値が「０」であれば、当該ＴＵは、それ以上分けられない。
【０１１２】
残差信号の符号化／復号方法
【０１１３】
入力された画像は、イントラ予測部又はインター予測部で予測されたブロックにより差分され、予測に関連する情報及び差分に対する残差信号（residual signal）を送信することにより、デコーダにおいて画像を復元することができる。これに関して、以下の図面を参照してより詳細に説明する。
【０１１４】
図５は、本発明が適用されることができる実施形態であって、残差信号を符号化する方法を例示する。
【０１１５】
図５に示すように、エンコーダ（エンコード装置）は、残差信号（residual signal）（又は、残差ブロック）を変換（transform）する（Ｓ５０１）。残差信号は、入力された画像においてイントラ予測部又はインター予測部により予測された信号と差分された信号を意味する。残差信号は、空間領域の信号であり、これを周波数領域に変換することにより信号間の相関（correlation）を取り除いてエネルギを低周波領域に集中させることができる。このとき、エンコーダは、前述したように、ＤＣＴ、ＤＳＴ、ＧＢＴ、ＫＬＴなどの変換技法を適用して変換係数（transform coefficient）を生成することができる。
【０１１６】
エンコーダは、変換係数（transform coefficient）を量子化（quantization）する（Ｓ５０２）。変換された信号は、信号の大きさ（magnitude）を減らすためにスケーリング（scaling）及び／又は量子化される。
【０１１７】
エンコーダは、変換ブロックをサブブロック（subblock）に分割（divide）する（Ｓ５０３）。エンコーダは、変換ブロックを予め定められた一定サイズのサブブロック（例えば、４×４のサイズのサブブロック）に分割する。
【０１１８】
エンコーダは、量子化された変換係数をスキャン（scanning）し、スキャン順序（scan order）に従って係数を符号化する（Ｓ５０４）。すなわち、量子化された変換係数は、予め定められた順序に従ってエントロピ符号化されてデコーダに送信される。
【０１１９】
ここで、スキャン順序（scan order）は、右上対角線スキャン順序（up-right diagonal scan order）、水平スキャン順序（horizontal scan order）、垂直スキャン順序（vertical scan order）などに該当し得る。
【０１２０】
エンコーダは、最後の有効係数（last significant coefficient）（すなわち、最後の非ゼロ係数）から開始していわゆるＤＣ係数と呼ばれる（０，０）座標の係数に到達するまで逆方向に変換係数をスキャンすることができる。このとき、各サブブロック内で量子化された変換係数は、右上対角線スキャン順序に従ってスキャンされ、また、各サブブロックも同様に右上対角線スキャン順序（up-right diagonal scan）に従ってスキャンされる。
【０１２１】
このとき、変換ブロック内で最後の有効係数（last significant coefficient）の位置（すなわち、列（column）の位置及び行（row）の位置）を識別するための情報が符号化されることができる。
【０１２２】
デコーダにおいては、エンコーダにおける過程を逆に行うことにより復元された画像を取得することができる。これについて、以下の図面を参照してより詳細に説明する。
【０１２３】
図６は、本発明が適用されることができる実施形態であって、残差信号を復号する方法を例示する。
【０１２４】
図６に示すように、デコーダ（デコード装置）は、係数を復号する（Ｓ６０１）。すなわち、デコーダは、エンコーダから出力された信号（すなわち、ビットストリーム）に対してエントロピデコーディングを行うことにより量子化された変換係数（transform coefficient）を取得することができる。
【０１２５】
デコーダは、量子化された変換係数をスキャン順序（scan order）通りに配置し、逆量子化（inverse-quantize）を行う（Ｓ６０２）。すなわち、デコーダは、エントロピ復号により復元された各量子化された変換係数を予め定められた順序に従って残差信号配列に配置することができる。
【０１２６】
前述したように、スキャン順序（scan order）は、右上対角線スキャン順序（up-right diagonal scan order）、水平スキャン順序（horizontal scan order）、垂直スキャン順序（vertical scan order）などに該当し得る。
【０１２７】
前述したように、変換ブロック内でスキャン順序（scan order）に従う最後の有効係数（last significant coefficient）（すなわち、最後の非ゼロ係数）の位置を示す情報がビットストリームを介してシグナリングされることができる。デコーダは、上記情報をパージングして変換ブロック内のスキャン順序（scan order）に従う最後の有効な係数（last significant coefficient）（すなわち、非ゼロ係数）の列（column）の位置及び行（row）の位置を導出することができる。
【０１２８】
デコーダは、最後の有効な係数（last significant coefficient）（すなわち、非ゼロ係数）の位置から開始していわゆるＤＣ係数と呼ばれる（０，０）座標に到達するまで逆方向にスキャンすることができる。このとき、各サブブロック内で量子化された変換係数は、右上対角線スキャン順序に対する逆方向順序に従ってスキャンされ、また、各サブブロックも同様に右上対角線スキャン順序（up-right diagonal scan）に対する逆方向順序に従ってスキャンされることがある。
【０１２９】
デコーダは、前述したようにスキャン順序に従って量子化された変換係数を逆量子化することができる。
【０１３０】
デコーダは、逆量子化された変換係数を逆変換（inverse-transform）する（Ｓ６０３）。すなわち、デコーダは、逆変換技法を適用して変換係数を逆変換し、差分信号（residual signal）を取得することができる。
【０１３１】
前述したように、エントロピ復号により復元された各係数は、スキャン順序により残差信号配列に配置され、逆量子化と逆変換により空間領域の残差信号に復元される。そして、復元された残差信号は、予測信号と合わせられた後、フィルタリング過程を経て復元画像として出力される。
【０１３２】
実施形態１
【０１３３】
本発明の一実施形態において、エンコーダ／デコーダは、変換係数に対するスキャン順序（scan order）を階層的に構成することができる。言い換えると、エンコーダ／デコーダは、変換ブロック（又は、残差ブロック、スキャン処理ブロック）を係数グループ（coefficient group）に分割した後、分割された係数グループ単位でスキャンを行うことができる。上記係数グループは、サブブロック、サブグループ、サブ係数グループなどと称されることもある。
【０１３４】
エンコーダ／デコーダは、スキャン順序に従って変換ブロックから分割された係数グループ単位でスキャンしながら各係数グループ内の変換係数をスキャンすることができる。例えば、上記係数グループは、４×４のサイズのブロックであり得る。以下、図７を参照して説明する。
【０１３５】
図７は、本発明が適用される実施形態であって、係数グループ単位で変換係数をスキャンする方法を例示する図である。
【０１３６】
図７に示すように、現在ブロック（すなわち、変換ブロック）のサイズが８×８ブロックであり、係数グループは４×４ブロックに決定された場合を仮定する。この場合、例えば、エンコーダ／デコーダは、ＣＧ１（７０１）、ＣＧ３（７０３）、ＣＧ２（７０２）、ＣＧ４（７０４）の順で係数グループをスキャンすることができる。そして、エンコーダ／デコーダは、係数グループ間のスキャン順序と同一に、対角線スキャン順序（diagonal scan order）に従って各係数グループ内の係数をスキャンすることができる。
【０１３７】
図７の８×８サイズの現在ブロックを
0006949990.tif 000002
と表現し、４×４サイズの係数のグループを
0006949990.tif 000003
と表現（ここで、ｋはスキャン順序を示す）すると、図７の係数グループは、下記の数式１を満たす。
【０１３８】
＜数式１＞
【数１】
0006949990.tif 000004
【０１３９】
図７及び数式１において、低周波に該当する係数（すなわち、ＤＣ係数）からスキャンを開始することを前提としているが、実際の符号化／復号過程では、最後にスキャンされる係数グループから符号化／復号が行われる可能性もある。また、この場合、当該係数グループ内において係数が同一のスキャン順序を利用してスキャンされることもあり、スキャン順序において最後に位置する係数から符号化／復号が行われることもある。
【０１４０】
すなわち、変換係数に対するエントロピコーディングが行われるとき、ＣＧ４（７０４）、ＣＧ２（７０２）、ＣＧ３（７０３）、ＣＧ１（７０１）の順で係数グループが符号化されることができ、このとき、左上端に位置するＤＣ成分係数は、最後に符号化される。
【０１４１】
本明細書では、数式１のように左上端のＤＣ成分からスキャンする方法を中心に実施形態を説明するが、本発明がこれに限定されることはなく、逆方向のスキャン順序が適用されることもできる。実際のコーディング過程で逆方向のスキャン順序が適用される場合にも、本発明で提案する方法が適用されることができる。このとき、逆方向スキャン順序は、順方向スキャン順序から後述する数式９を利用して導出される。
【０１４２】
図８は、本発明が適用される実施形態であって、係数グループ別の変換係数のスキャン順序を例示する図である。
【０１４３】
図８に示すように、現在ブロック８０１、係数グループ８０２、８０３、８０４、８０５及び各係数グループ内の係数の階層関係をツリー（tree）構造で表現することができる。この場合、エンコーダ／デコーダは、左側から右側への順序でスキャンを行うが、深さ優先（depth-first）探索方法によってスキャンを行うことができる。
【０１４４】
ツリー構造のリーフ（leaf）ノードは、現在ブロック８０１内の係数の位置を示す。各係数の位置は、図８に示すように、行（row）方向インデックス及び列（column）方向インデックスからなる１×２行ベクトルで表示されることができる。
【０１４５】
本明細書において、係数グループは、
0006949990.tif 000005
で表記されることができる。ここで、
0006949990.tif 000006
は、当該係数グループの深さｋ（depth）におけるスキャンインデックス（scan index）を示す。そして、ｄは、ツリー構造において当該係数グループの深さを示す。
【０１４６】
図９及び図１０は、本発明が適用される実施形態であって、変換ブロックの分割構造及び変換係数のスキャン順序を決定する方法を説明する図である。
【０１４７】
図９に示すように、現在処理ブロックが１６×１６のサイズのブロックである場合を仮定する。このとき、エンコーダ／デコーダは、変換係数のスキャンを行うために現在処理ブロックを再帰的に（又は、階層的に）分割（すなわち、深さ２以上に分割）することができる。現在処理ブロックが図９（ｃ）のように再帰的に分割される場合、現在処理ブロックの分割構造は、図１４に示すようなツリー形態で表現することができる。
【０１４８】
図１０に示すように、ツリー構造のリーフノードを左から右にスキャンすることにより全変換係数に対するスキャンが行われる。すなわち、スキャン順序は、ツリー構造のリーフノードの左から右に決定されることができる。
【０１４９】
本明細書において、リーフ係数グループは、図１０のツリー構造のリーフノード（すなわち、係数グループ内の変換係数）を含む最下位の深さの係数グループ（すなわち、図１０において深さ２の係数グループ）を示す。上記リーフ係数グループは、これ以上下位の深さの係数グループに分割されない。また、ツリー構造に分割されるブロック構造において、分割回数が増加するほど深さは増加する。下位の深さを有するノードは、ツリー構造において相対的に深さ値がより大きいノード、すなわち、上位の深さを有するノードから分割されたノードである。
【０１５０】
0006949990.tif 000007
内におけるスキャン順序は、次の数式２のように表現することができる。
【０１５１】
＜数式２＞
【数２】
0006949990.tif 000008
【０１５２】
数式２を参照すると、各行ベクトル（row vector）
0006949990.tif 000009
は、ｈ×ｗブロック内における変換係数の位置を示す。ｒiは、行インデックス（row index）を示し、ｃiは、列インデックス（column index）を示す
0006949990.tif 000010
。
【０１５３】
本明細書において、全ての２Ｄブロックの行インデックス及び列インデックスは、１から開始すると仮定する。上記数式２において
0006949990.tif 000011
は、当該係数グループ内の係数のスキャン順序を示す。すなわち、［ｒ1  ｃ1］から［ｒh×w  ｃh×w］までの順で該当位置の係数がスキャンされることができる。
【０１５４】
前述したように、上記数式２の
0006949990.tif 000012
を構成する行ベクトルは、それぞれｈ×ｗサイズのブロック内の変換係数の位置を示すので、深さｄの係数グループ
0006949990.tif 000013
に対する変換ブロック
0006949990.tif 000014
内における行インデックスオフセット（offset）及び列インデックスオフセットを、
0006949990.tif 000015
を構成する全ての列ベクトルに加えることにより、変換ブロック内におけるスキャン順序を求めることができる。このとき、上記行インデックスオフセット及び上記列インデックスオフセットは、次の数式３を利用して計算される。
【０１５５】
＜数式３＞
【数３】
0006949990.tif 000016
【０１５６】
数式３を参照すると、
0006949990.tif 000017
は、現在変換ブロック
0006949990.tif 000018
内で
0006949990.tif 000019
の相対的な位置を示す列ベクトルを示す。例えば、上記図９において、
0006949990.tif 000020
であり、
0006949990.tif 000021
であり得る。
【０１５７】
ベクトル
0006949990.tif 000022
を
0006949990.tif 000023
と定義すると、以下の数式４を利用して
0006949990.tif 000024
のスキャン順序を計算することができる。
【０１５８】
＜数式４＞
【数４】
0006949990.tif 000025
【０１５９】
0006949990.tif 000026
がリーフ係数グループである場合、上記数式４を利用して全体のブロック（すなわち、変換ブロック）内におけるスキャン順序が計算されることができる。すなわち、全体ブロック内におけるスキャン順序は、前述した数式２を利用して計算される係数グループ内におけるスキャン順序と前述した数式３を利用して計算される上記係数グループのオフセット
0006949990.tif 000027
との合計と同じである。
【０１６０】
0006949990.tif 000028
がリーフ係数グループではない場合、変換ブロック内におけるスキャン順序は、次の数式５を利用して計算されることができる。
【０１６１】
＜数式５＞
【数５】
0006949990.tif 000029
【０１６２】
全体ブロック
0006949990.tif 000030
に対するスキャン順序は、
0006949990.tif 000031
で表現されることができる。このとき、上記
0006949990.tif 000032
の行インデックスは、スキャンインデックスを示し、上記
0006949990.tif 000033
の各行ベクトルは、当該スキャンインデックスに対する全体ブロック内における位置を示すことができる。
【０１６３】
図１１は、本発明が適用される実施形態であって、ブロック内の係数の位置を表現した一例を示す図である。
【０１６４】
図１１に示すように、ブロック内の係数の位置をラスタスキャン順序（raster scan order）（すなわち、行優先順序（row-first order）、辞書式順序（lexicographical order））を利用して示すことができる。スキャン順序に従って各係数の位置にインデックス値を図１１に示すように割り当てることができる。そして、図１１の係数の位置を示すインデックス値は、次の数式６のように表現することができる。
【０１６５】
＜数式６＞
【数６】
0006949990.tif 000034
【０１６６】
ブロック内における変換係数の位置に、上記で説明したラスタスキャン順序を含んで任意のスキャン順序に従って係数の位置を示すインデックスを付与すると、スキャン順序は、次の数式７のように表現することができる。
【０１６７】
＜数式７＞
【数７】
0006949990.tif 000035
【０１６８】
0006949990.tif 000036
であるとき、数式７は、数式６のようにまとめることができる。
【０１６９】
本明細書で提案するスキャン順序は、前述の数式２ないし数式７で説明した方式で記述されることができる。このように、以上で説明した方式でスキャン順序が記述されるとしたとき、スキャン順序は、次のような構成要素により決定される。
【０１７０】
１）各深さ（すなわち、０以上の深さ）における係数グループの再帰的な分割
【０１７１】
２）分割された係数グループに対するスキャン順序の決定
【０１７２】
３）リーフ係数グループの変換係数に対するスキャン順序の決定
【０１７３】
上記構成要素が決定されると、数式２ないし数式７を利用してスキャン順序が決定される。したがって、本発明では、上記構成要素を決定することにより適合したスキャン順序を構成する方法を提案する。
【０１７４】
適用可能な全てのスキャン順序行列を含む集合は、次の数式８のように表現することができる。
【０１７５】
＜数式８＞
【数８】
0006949990.tif 000037
【０１７６】
ここで、
0006949990.tif 000038
は、ブロックに対して適用可能な全てのスキャン順序行列を集めた集合を示す。そして、上記ブロックは、様々なサイズ又は形状（例えば、４×４、４×８、１６×４、１６×１６、３２×８など）を有することができる。そして、前述した数式５により導出される
0006949990.tif 000039
は、上記
0006949990.tif 000040
の要素（元素）として含まれることができる。
【０１７７】
一実施形態において、エンコーダ／デコーダは、現在処理ブロックの周辺ブロックに関する情報を利用して上記
0006949990.tif 000041
において特定スキャン順序を選択し、選択されたスキャン順序を利用してスキャンを行うことができる。上記周辺ブロックに関する情報は、例えば、左側ブロック又は上側ブロック内に存在する非ゼロ係数（non-zero coefficient）の個数又は最後の非ゼロ係数（last non-zero coefficient）の位置などであり得る。また、現在処理ブロックの直ぐ前にコード化したブロックに関する情報を利用して現在処理ブロックのスキャン順序を決定することもできる。
【０１７８】
一実施形態において、エンコーダ／デコーダは、現在処理ブロックのサイズ又は形状に応じて、スキャン順序を決定（又は、適用）することができる。例えば、エンコーダ／デコーダは、４×８サイズのブロックに対しては
0006949990.tif 000042
を適用し、８×１６サイズのブロックに対しては
0006949990.tif 000043
を適用することができる。
【０１７９】
一実施形態において、エンコーダ／デコーダは、特定サイズ又は形状のブロックに対して適用可能なスキャン順序の集合
0006949990.tif 000044
のうちの特定スキャン順序を選択して適用することができる。このとき、エンコーダは、シーケンス、ピクチャ、スライス、ＣＴＵ、コーディングブロック（又は、コーディングユニット）又は変換ブロック（又は、変換ユニット）単位で選択されたスキャン順序に対するインデックスをデコーダにシグナリングすることができる。
【０１８０】
変換係数に対してエントロピコーディングを行うときは、前述した順方向のスキャン順序だけでなく、逆方向のスキャン順序を適用することもできる。上記逆方向スキャン順序は、次の数式９を利用して計算されることができる。
【０１８１】
＜数式９＞
【数９】
0006949990.tif 000045
【０１８２】
ここで、Ｐは、反対角線（anti-diagonal）成分のみが１の値を有する順列行列（permutation matrix）を示す。上記順列行列を利用して前述した順方向のスキャン順序の逆方向スキャン順序を導出することができる。
【０１８３】
実施形態２
【０１８４】
本発明の一実施形態において、エンコーダ／デコーダは、係数グループのサイズ又は形態に基づいて、係数グループ内の各係数に対するスキャン順序を決定することができる。すなわち、エンコーダ／デコーダは、ブロックのサイズ又は形態によって、前述した数式２の係数グループ内の係数のスキャン順序を決定することができる。
【０１８５】
図１２及び図１３は、本発明の一実施形態によるブロック内の変換係数の位置によるスキャン順序を例示する図である。
【０１８６】
図１２に示すように、エンコーダ／デコーダは、対角線スキャン順序（diagonal scan order）に従ってｄ値が増加する順で係数をスキャンすることができる。ここで、上記ｄは、左上端係数を基準とした当該係数の距離値を示す。エンコーダ／デコーダは、同一のｄ値を有する位置の係数に対して左下側から右上側にスキャンすることができる。
【０１８７】
ここで、ｄ値は、ｄ＝ｄｘ＋ｄｙに決定されことができ、図１２（ｂ）に示すように、ｄｘ及びｄｙは、それぞれ水平方向の増分（又は、水平方向座標）及び垂直方向の増分（又は、垂直方向座標）を示す。
【０１８８】
前述したように、変換係数に対するエントロピコーディングを行うにおいて、エンコーダ／デコーダは、逆方向スキャン順序を適用することができる。この場合、ｄ値が６である係数からｄ値が０である係数までスキャンが可能であり、図１２（ａ）に示す矢印の方向とは反対に右上側から左下側にスキャンされることができる。本明細書では、順方向スキャン順序を中心に説明するが、エントロピコーディングを行うにおいて、エンコーダ／デコーダは、逆方向スキャン順序に従うこともでき、順方向スキャン順序に従うこともできる。
【０１８９】
同一のｄ値を有する位置は、周波数の観点で、同等の位相を有する係数の位置に該当し得る。したがって、エンコーダ／デコーダは、同一のｄ値を有する位置の係数に対しては、任意の順序を付与することができる。例えば、エンコーダ／デコーダは、図１２（ａ）のｄ値が３であるライン（line）の位置に対しては、［４  １］、［３  ２］、［２  ３］、［１  ４］（各位置を行ベクトルで表現）の順でスキャンすることもでき、［１  ４］、［２  ３］、［３  ２］、［４  １］又は［２  ３］、［３  ２］、［１  ４］、［４  １］の順でスキャンすることもできる。
【０１９０】
また、エンコーダ／デコーダは、図１３に示すように、各反対角線（anti-diagonal）ラインに対して図１２（ａ）における例とは異なるように右側から左側にスキャンするように構成することもできる。
【０１９１】
以下の表１は、前述した対角線スキャン順序を決定するための疑似コードの一例を示す。
【０１９２】
＜表１＞
【表１】
0006949990.tif 000046
【０１９３】
表１を参照すると、エンコーダ／デコーダは、ｄ値を０から１ずつ増加させながら、最も左下側の位置から最も右上側の位置の係数までスキャンインデックスを割り当てることによりスキャン順序を決定することができる。ここで、ｓｙｐｏｓ及びｓｘｐｏｓは、それぞれブロック内の行インデックス及び列インデックスから１を引いた値を示すパラメータである。すなわち、ｓｙｐｏｓ及びｓｘｐｏｓは、０から開始すると仮定する。
【０１９４】
表１において、ｄ値により特定される対角線ラインに対して左下側からスキャンすることを仮定するが、図１３で説明したように、右上側からスキャンするようにコードを構成することも可能である。
【０１９５】
上記表１において、「ｗｈｉｌｅループ（loop）」は、ｄ値に特定される対角線のラインに対してスキャン順序に従ってスキャン情報を示すパラメータ（又は、行列）を決定する。上記パラメータは、スキャン順序を示すパラメータ（ｓｃａｎ＿ｏｒｄｅｒ）又はスキャン位置を示すパラメータ（ｓｃａｎ＿ｐｏｓ）であり得る。上記ｓｃａｎ＿ｏｒｄｅｒ行列には、ブロックの各位置（すなわち、上記ｓｃａｎ＿ｏｒｄｅｒ行列の構成要素）に割り当てられるスキャンインデックスが記憶される。そして、上記ｓｃａｎ＿ｐｏｓ行列には、各行インデックスがスキャンインデックスに該当し、各行は、行ベクトルの形態でブロックにおける係数位置が記憶される。
【０１９６】
既存の方法（例えば、ＨＥＶＣ）で係数の位置にスキャン順序を割り当てると、現在処理ブロックが非正方形ブロックである場合、水平方向又は垂直方向の周波数増加率が効果的に反映されない可能性がある。
【０１９７】
具体的には、非正方形ブロックに対して可分離変換（separable transform）が適用される場合、垂直方向に対する変換基底ベクトル（transform basis vector）の長さと水平方向に対する変換基底ベクトルの長さとは、相異なる可能性がある。例えば、現在処理ブロックが２Ｎ×Ｎサイズのブロックである場合、垂直方向には２Ｎ×２ＮサイズのＤＣＴが適用され、水平方向にはＮ×ＮサイズのＤＣＴが適用される。この場合、縦方向では、係数の垂直方向座標が１増加するたびに１／（２Ｎ）＊πの分だけ周波数が増加するのに対して、横方向では、係数の水平方向座標が１増加するたびに１／（Ｎ）＊π分だけ増加する。
【０１９８】
本明細書で提案する方法の説明において、Ｍ×Ｎブロックは、高さ（height）がＭ、幅（width）がＮであるブロックであることを中心に説明するが、本発明がこれに制限されるのではなく、Ｍ×Ｎブロックは、幅及び高さがそれぞれＭ、Ｎであるブロックを示すこともできることは言うまでもない。
【０１９９】
非正方形ブロックである場合にも、既存の方法で係数の位置に同一にスキャン順序を割り当てる場合、水平方向又は垂直方向に周波数増加率が効果的に反映されない可能性がある。これにより、高周波成分から低周波成分へのスキャンがきちんと行われない可能性があり、画像の圧縮性能が低下することがある。
【０２００】
したがって、本発明では、前述したような問題点を解決し、水平方向又は垂直方向に周波数増加率を効果的に反映するために、非正方形ブロック内の各位置の係数にスキャン順序を割り当てる方法を提案する。
【０２０１】
非正方形ブロックに対しても、前述した図１２及び表１で説明した方法を利用してスキャン順序を求めることができる。例えば、現在処理ブロックが４×８サイズのブロックである場合、関数の入力パラメータとしてｈｅｉｇｈｔ＝４、ｗｉｄｔｈ＝８に設定して表１の関数を行うと、該当スキャン順序を求めることができる。
【０２０２】
図１４及び図１５は、本発明が適用される実施形態であって、非正方形ブロックの係数に対するスキャン順序を決定する方法を説明する図である。
【０２０３】
前述したように、非正方形ブロックに対して可分離変換（分離可能な変換）が適用される場合、垂直方向（すなわち、行方向）に対する変換基底ベクトルの長さと水平方向（すなわち、列方向）に対する変換基底ベクトルの長さとは、異なり得る。
【０２０４】
図１４に示すように、現在処理ブロックが４×８サイズのブロックである場合を仮定する。この場合、垂直方向に４×４サイズのＤＣＴを適用し、水平方向には８×８サイズのＤＣＴを適用することができる。変換係数が左上端に位置するほど低周波成分を示し、右下端に位置するほど高周波成分を示すと仮定する場合、図１４（ａ）の４×８ブロックの場合、垂直方向（又は、縦方向）への周波数増分は、水平方向（又は、横方向）への周波数増分の２倍であり得る。
【０２０５】
したがって、変換係数の位置によるｄｘ及びｄｙは、図１４（ｂ）に示すように設定される。そして、エンコーダ／デコーダは、同一のｄ（このとき、ｄ＝ｄｘ＋ｄｙ）値を有する位置の係数を単位でｄ値が増加する順でスキャン順序を設定することができる。逆方向スキャン順序の場合、エンコーダ／デコーダは、ｄ値が減少する順でスキャン順序を設定することができる。
【０２０６】
本発明において、スキャンライン（scan line）は、同一のｄ値を有する位置の係数を称する。すなわち、同一のｄ値を有する係数は、同一のスキャンラインに含まれる可能性がある。
【０２０７】
同一のスキャンラインに属する係数の間には、任意のスキャン順序が割り当てられることができる。左側から右側にスキャンする場合、図１４（ｃ）に示すように、各位置の係数にスキャンインデックスが割り当てられる。
【０２０８】
図１５に示すように、現在処理ブロックが８×４サイズのブロックである場合を仮定する。水平方向の周波数増分及び垂直方向の周波数増分が図１５（ｂ）に示すように変わる点を除いて、エンコーダ／デコーダは、前述した方法と同一の方法でｄ値を設定してスキャン順序を決定することができる。
【０２０９】
以下の表２は、図１４及び図１５で説明した方法を適用してスキャン順序を求める疑似コードの一例である。
【０２１０】
＜表２＞
【表２】
0006949990.tif 000047
【０２１１】
表２を参照すると、ｓｈは、垂直方向増分（すなわち、ｄｙ）を示すパラメータであり、ｓｗは、水平方向増分（すなわち、ｄｘ）を示すパラメータである。他のパラメータは、表１と同一である。そして、床（floor）関数は、因子（引数）として与えられた数字より小さいか等しい最大（サイズ）の整数値をリターン（return）し、ラウンド（round）関数は、因子として与えられた数字を四捨五入した整数値をリターンする。エンコーダ／デコーダは、現在処理ブロックの幅と高さとの比率を利用してｓｈ値及びｓｗ値を設定し、ｄ値を０から１ずつ増加させながら、最も左下側位置から最も右上側位置の係数までスキャンインデックスを割り当てることによりスキャン順序を決定することができる。
【０２１２】
本発明の一実施形態において、エンコーダ／デコーダは、特定個数の係数単位でグループピング（grouping）した後、様々なスキャン順序を適用してスキャンすることができる。以下、図１６を参照して説明する。
【０２１３】
図１６及び図１７は、本発明が適用される実施形態であって、スーパーピクセル（super-pixel）単位で非正方形ブロックの係数に対するスキャン順序を決定する方法を説明する図である。
【０２１４】
図１６を参照すると、現在処理ブロックが４×８サイズのブロックである場合を仮定する。エンコーダ／デコーダは、スーパーピクセル（super‐pixel）単位で現在処理ブロックを分割することができる。ここで、スーパーピクセルは、特定個数の係数（又は、ピクセル）の集合を示し、上記特定個数は、現在ブロックの幅と高さとの比率によって決定されることができる。上記スーパーピクセルは、サブブロック、サブグループ、係数グループ、サブ係数グループなどと称されることがある。現在ブロックの幅と高さとの比率が２であるため、上記スーパーピクセルは、２つのピクセルで構成される。
【０２１５】
エンコーダ／デコーダは、スーパーピクセルで正方形ブロックを構成し、図７ないし図１３で説明した方法を利用してスーパーピクセル単位でスキャン順序を決定し、スーパーピクセル内では、任意の順序で係数をスキャンすることができる。
【０２１６】
エンコーダ／デコーダは、図１６に示すように、スーパーピクセル単位で対角線スキャン順序に従って４×４サイズの正方形ブロックに対するスキャン順序を適用し、各スーパーピクセル内では左側から右側にスキャン順序を適用することができる。
【０２１７】
図１７に示すように、現在処理ブロックが８×４サイズのブロックである場合を仮定する。同様に、エンコーダ／デコーダは、スーパーピクセル単位で現在処理ブロックを分割することができる。高さが幅の２倍であるため、エンコーダ／デコーダは、垂直方向（又は、縦方向）に２つの係数をグループ化してスーパーピクセルを設定することができる。
【０２１８】
以下の表３は、図１６及び図１７で説明した方法を適用してスキャン順序を求める疑似コードの一例である。
【０２１９】
＜表３＞
【表３】
0006949990.tif 000048
【０２２０】
表３を参照すると、ｓｐｌｅｎは、スーパーピクセルの長さを示すパラメータである。上記ｓｐｌｅｎは、現在処理ブロックの幅及び高さによって決定されることができる。例えば、高さが幅より大きい場合、垂直方向に長いスーパーピクセルに決定され、幅が高さより大きい場合は、水平方向に長いスーパーピクセルに決定される。そして、ｎｏｒｍ＿ｌｅｎｇｔｈは、スーパーピクセル単位で構成されたブロック（すなわち、正方形（square）ブロックに対する一辺の長さを示すパラメータである。上記表３において、「ｗｈｉｌｅループ（loop）」内部の「ｆｏｒ−ｌｏｏｐ」は、スーパーピクセル内の各位置の係数に対してスキャンインデックスを割り当てる。
【０２２１】
エンコーダ／デコーダは、前述したスキャン順序以外にも様々なスキャン順序を適用することができる。例えば、エンコーダ／デコーダは、特定サイズ（例えば、４×８、１６×８、３２×３２など）のブロック変換係数の統計などを利用して、各位置の係数に対して非ゼロ係数の個数情報を取得することができる。そして、エンコーダ／デコーダは、取得された非ゼロ係数の個数に基づいて当該個数の降順（又は、昇順）に係数のスキャン順序を決定することもできる。
【０２２２】
エンコーダ／デコーダは、上記数式２のように
0006949990.tif 000049
の高さ及び幅がそれぞれｈ、ｗであるとするとき、ｈ×ｗブロックに対して適用可能なスキャン順序の集合は、次の数式１０のように表現することができる。
【０２２３】
＜数式１０＞
【数１０】
0006949990.tif 000050
【０２２４】
ここで、
0006949990.tif 000051
は、適用可能なスキャン順序の集合を示す。そして、
0006949990.tif 000052
は、スキャン順序を示し、上記図７ないし図１７で説明したスキャン順序がそれに該当し得る。数式２の
0006949990.tif 000053
は、
0006949990.tif 000054
を満たす。
【０２２５】
実施形態３
【０２２６】
本発明の実施形態では、係数グループのスキャン順序を決定する方法を提案する。例えば、エンコーダ／デコーダは、上記図９（ｃ）において
0006949990.tif 000055
を構成する４つの係数グループに対するスキャン順序を決定することができる。
【０２２７】
エンコーダ／デコーダは、上記図９（ｃ）に示すように対角線スキャン順序で係数グループをスキャンすることができる。また、エンコーダ／デコーダは、係数グループ間のスキャン順序を決定するにおいて、上記実施形態１及び実施形態２で説明したスキャン方法を適用することもあり、任意の順序を有するスキャン順序を適用することもある。
【０２２８】
図１８は、本発明が適用される実施形態であって、係数グループに対するスキャン順序を決定する方法を例示する図である。
【０２２９】
図１８に示すように、エンコーダ／デコーダは、係数グループに対するスキャン順序及び係数グループ内の係数に対するスキャン順序を同一に利用するように構成することもあり、それぞれ別個のスキャン順序を利用するように構成することもある。
【０２３０】
一例として、図１８（ａ）に示すように、エンコーダ／デコーダは、４×２サイズのブロックに係数グループを分割し、係数グループ間には、前述の表２を利用して生成されるスキャン順序を適用し、各係数グループ内では、前述の表１を利用して生成されるスキャン順序を適用することができる。
【０２３１】
他の一例として、図１８（ｂ）に示すように、エンコーダ／デコーダは、２×４サイズブロックに係数グループを分割し、係数グループ間のスキャン順序と係数グループ内の係数間のスキャン順序とに、同様に上記表２を利用して生成されるスキャン順序を適用することもできる。
【０２３２】
他の例として、図１８（ｃ）に示すように、エンコーダ／デコーダは、２×４サイズのブロックに係数グループを分割し、係数グループ間には、上記表２を利用して生成されるスキャン順序を適用し、各係数グループ内では、上記表３を利用して生成されるスキャン順序を適用することができる。
【０２３３】
図１９は、本発明の一実施形態による画像の符号化方法を例示する。
【０２３４】
エンコーダは、現在処理ブロックの残差信号（residual signal）に対して変換（transform）及び量子化（quantization）を行うことにより、量子化された変換ブロックを生成する（Ｓ１９０１）。上記Ｓ１９０１においては、上記図５で説明したＳ５０１及びＳ５０２段階と同一に行われる。
【０２３５】
エンコーダは、上記量子化された変換ブロックを複数の係数グループ（coefficient group）に分割する（Ｓ１９０２）。
【０２３６】
上記図９及び図１０で説明したように、エンコーダは、変換係数に対するスキャンのために現在処理ブロックを再帰的に（又は、階層的に）分割することができる。例えば、上記複数の係数グループに分割する段階は、上記量子化された変換ブロックを階層的に分割することにより下位の深さ（lower depth）を有する係数グループに分割する段階を含み、上記第２スキャン順序は、上記量子化された変換ブロックから分割された各深さの係数グループ間のスキャン順序を含んでもよい。
【０２３７】
また、上記図１６及び図１７で説明したように、エンコーダは、特定個数の係数単位でグループ化（grouping）した後、様々なスキャン順序を適用してスキャンすることができる。すなわち、上記量子化された変換ブロックが非正方形ブロックである場合、上記量子化された変換ブロックは、特定個数の係数で構成される係数グループに分割され、上記特定個数は、上記量子化された変換ブロックの幅（width）と高さ（height）との比率によって決定される。
【０２３８】
エンコーダは、上記係数グループの係数（coefficient）間のスキャン順序（scan order）を示す第１スキャン順序を決定する（Ｓ１９０３）。
【０２３９】
エンコーダは、上記図１２ないし図１８で説明した方法を適用して、上記第１スキャン順序を決定することができる。例えば、上記Ｓ１９０３段階は、上記係数グループの左上端係数を基準とする上記係数グループの各係数の距離値を決定する段階と、上記距離値を順次増加させながら同一の距離値を有する係数に予め定められた順序に従ってスキャンインデックス（scan index）を割り当てる段階と、を含んでもよい。
【０２４０】
また、上記図１４及び図１５で説明したように、エンコーダは、水平方向又は垂直方向に周波数の増加率を効果的に反映させるために、非正方形ブロック内の各位置の係数にスキャン順序を割り当てる。例えば、上記係数グループの各係数の距離値を決定する段階は、上記係数グループが非正方形ブロック（non-square block）である場合、上記係数グループの幅（width）と高さ（height）との比率に基づいて、各係数の水平方向における座標値の増加量を示す水平方向増分と垂直方向における座標値の増加量を示す垂直方向増分とを決定する段階を含み、上記各係数の距離値は、上記水平方向増分と垂直方向増分とを合わせた値を利用して決定されることができる。
【０２４１】
また、上記係数グループの幅が高さより大きい場合、上記水平方向増分は１に決定され、上記垂直方向増分は２に決定され、上記係数グループの高さが幅より大きい場合、上記水平方向増分は２に決定され、上記垂直方向増分は２に決定される。
【０２４２】
上記第１スキャン順序は、エンコーダにより予め定義（又は、設定）されることもあり、ピクチャ、スライス、ＣＴＵ、符号化単位又は変換単位で、エンコーダがデコーダに送信することもある。
【０２４３】
また、エンコーダは、上記複数の係数グループ間のスキャン順序を示す第２スキャン順序を決定することもできる。この場合、上記Ｓ１９０３段階は、第２スキャン順序を決定する段階を含んでもよく、エンコーダは、上記図１２ないし図１８で説明した方法を適用して上記第２スキャン順序を決定することができる。上記第２スキャン順序は、エンコーダにより予め定義（又は、設定）されることもあり、ピクチャ、スライス、ＣＴＵ、符号化単位又は変換単位で、エンコーダがデコーダに送信することもある。
【０２４４】
エンコーダは、上記第１スキャン順序と上記複数の係数グループ間のスキャン順序を示す第２スキャン順序とに従って、上記量子化された変換ブロックの係数をエントロピエンコードする（Ｓ１９０４）。
【０２４５】
図２０は、本発明の一実施形態による画像の復号方法を例示する。
【０２４６】
デコーダは、現在処理ブロックを複数の係数グループ（coefficient group）に分割する（Ｓ２００１）。
【０２４７】
上記図９及び図１０で説明したように、デコーダは、変換係数に対するスキャンのために現在処理ブロックを再帰的に（又は、階層的に）分割することができる。例えば、上記複数の係数グループに分割する段階は、現在処理ブロックを階層的に分割することにより下位の深さ（lower depth）を有する係数グループに分割する段階を含み、上記第２スキャン順序は、上記現在処理ブロックから分割された各深さの係数グループ間のスキャン順序を含んでもよい。
【０２４８】
また、上記図１６及び図１７で説明したように、デコーダは、特定個数の係数単位でグループ化（grouping）した後、様々なスキャン順序を適用してスキャンすることができる。すなわち、上記現在処理ブロックが非正方形ブロックである場合、上記現在処理ブロックは、特定個数の係数で構成される係数グループに分割され、上記特定個数は、上記現在処理ブロックの幅（width）と高さ（height）との比率によって決定されることができる。
【０２４９】
デコーダは、上記係数グループの係数（coefficient）間のスキャン順序（scan order）を示す第１スキャン順序を決定する（Ｓ２００２）
【０２５０】
デコーダは、上記図１２ないし図１８で説明した方法を適用して上記第１スキャン順序を決定することができる。例えば、上記Ｓ２００２段階は、上記係数グループの左上端係数を基準とする上記係数グループの各係数の距離値を決定する段階と、上記距離値を順次増加させながら同一の距離値を有する係数に予め定められた順序に従ってスキャンインデックス（scan index）を割り当てる段階と、を含んでもよい。
【０２５１】
また、上記図１４及び図１５で説明したように、デコーダは、水平方向又は垂直方向に周波数増加率を効果的に反映するために非正方形ブロック内の各位置の係数にスキャン順序を割り当てることができる。例えば、上記係数グループの各係数の距離値を決定する段階は、上記係数グループが非正方形ブロック（non-square block）である場合、上記係数グループの幅（width）と高さ（height）との比率に基づいて、各係数の水平方向における座標値の増加量を示す水平方向増分と垂直方向における座標値の増加量を示す垂直方向増分とを決定する段階を含み、上記各係数の距離値は、上記水平方向増分と垂直方向増分とを合わせた値を利用して決定されることができる。
【０２５２】
また、上記係数グループの幅が高さより大きい場合、上記水平方向増分は１に決定され、上記垂直方向増分は２に決定され、上記係数グループの高さが幅より大きい場合、上記水平方向増分は２に決定され、上記垂直方向増分は２に決定される。
【０２５３】
上記第１スキャン順序は、デコーダにより予め定義（又は、設定）されることもあり、ピクチャ、スライス、ＣＴＵ、符号化単位又は変換単位で、デコーダが（エンコーダから）デコーダに送信されることもある。
【０２５４】
また、デコーダは、上記複数の係数グループ間のスキャン順序を示す第２スキャン順序を決定することもできる。この場合、上記Ｓ２００２段階は、第２スキャン順序を決定する段階を含んでもよく、デコーダは、上記図１２ないし図１８で説明した方法を適用して上記第２スキャン順序を決定することができる。上記第２スキャン順序は、デコーダにより予め定義（又は、設定）されることもあり、ピクチャ、スライス、ＣＴＵ、符号化単位又は変換単位で、エンコーダからデコーダに送信されることもある。
【０２５５】
デコーダは、エンコーダから出力されたビットストリームをエントロピデコードすることにより量子化された変換係数を生成する（Ｓ２００３）。上記Ｓ２００３段階は、上記図６で説明したＳ６０１段階と同一に行われることがある。
【０２５６】
デコーダは、上記第１スキャン順序と、上記複数の係数グループ間のスキャン順序を示す第２スキャン順序と、に従って上記量子化された変換ブロックの係数を配置することにより、上記現在処理ブロックの量子化された変換ブロックを生成する（Ｓ２００４）。
【０２５７】
そして、デコーダは、上記量子化された変換ブロックを逆量子化して変換ブロックを取得することができる。逆量子化する方法は、公知の技術を利用することができ、これに関する詳細な説明は省略する。前述した実施形態による画像の復号方法において一部の段階が省略又は追加されることもあり、説明した手順にも拘束されない。また、上記Ｓ２００３段階と上記Ｓ２００４段階とは、分離して行われることもあり、同時に行われることもある。
【０２５８】
図２１は、本発明の一実施形態による画像の復号装置を例示する。
【０２５９】
図２１では、説明の便宜のために、係数グループ分割部２１０１、スキャン順序決定部２１０２、変換係数生成部２１０３、変換ブロック生成部２１０４を別のブロックで図示しているが、上記係数グループ分割部２１０１、スキャン順序決定部２１０２、変換係数生成部２１０３、変換ブロック生成部２１０４は、エンコーダ及び／又はデコーダに含まれる構成として実現されることができる。
【０２６０】
図２１に示すように、本実施形態による画像の復号装置は、上記図５ないし図２０で提案された機能、過程及び／又は方法を実現し、また、後述するスケーリング及び変換プロセスを行う。具体的には、上記復号装置は、係数グループ分割部２１０１、スキャン順序決定部２１０２、変換係数生成部２１０３、変換ブロック生成部２１０４を含んで構成される。
【０２６１】
図２１に例示された画像の復号装置の細部構成は、１つの例に過ぎず、例示された細部構成の一部が他の細部構成に含まれて共に実現されることもでき、例示されていない他の構成が追加されて共に実現されることもできる。
【０２６２】
係数グループ分割部２１０１は、現在処理ブロックを複数の係数グループ（coefficient group）に分割する。
【０２６３】
上記図９及び図１０で説明したように、係数グループ分割部２１０１は、変換係数に対するスキャンのために現在処理ブロックを再帰的に（又は、階層的に）分割することができる。例えば、係数グループ分割部２１０１は、現在処理ブロックを階層的に分割することにより下位の深さ（lower depth）を有する係数グループに分割し、上記第２スキャン順序は、上記現在処理ブロックから分割された各深さの係数グループ間のスキャン順序を含むことがある。
【０２６４】
また、上記図１６及び図１７で説明したように、係数グループ分割部２１０１は、特定個数の係数単位でグループ化（grouping）した後、様々なスキャン順序を適用してスキャンすることができる。すなわち、上記現在処理ブロックが非正方形ブロックである場合、上記現在処理ブロックは、特定個数の係数で構成される係数グループに分割され、上記特定個数は、上記現在処理ブロックの幅（width）と高さ（height）との比率によって決定されることができる。
【０２６５】
スキャン順序決定部２１０２は、上記係数グループの係数（coefficient）間のスキャン順序（scan order）を示す第１スキャン順序を決定する。
【０２６６】
スキャン順序決定部２１０２は、上記図１２ないし図１８で説明した方法を適用して上記第１スキャン順序を決定することができる。例えば、スキャン順序決定部２１０２は、上記係数グループの左上端係数を基準とする上記係数グループの各係数の距離値を決定し、上記距離値を順次増加させながら同一の距離値を有する係数に予め定められた順序に従ってスキャンインデックス（scan index）を割り当てることができる。
【０２６７】
また、上記図１４及び図１５で説明したように、スキャン順序決定部２１０３は、水平方向又は垂直方向に周波数の増加率を効果的に反映するために、非正方形ブロック内の各位置の係数にスキャン順序を割り当てることができる。例えば、スキャン順序決定部２１０２は、上記係数グループが非正方形ブロック（non-square block）である場合、上記係数グループの幅（width）と高さ（height）との比率に基づいて、各係数の水平方向における座標値の増加量を示す水平方向増分及び垂直方向における座標値の増加量を示す垂直方向増分を決定することができ、上記各係数の距離値は、上記水平方向増分と垂直方向増分とを合算した値を利用して決定されることができる。
【０２６８】
また、上記係数グループの幅が高さより大きい場合、上記水平方向増分は１に決定され、上記垂直方向増分は２に決定され、上記係数グループの高さが幅より大きい場合、上記水平方向増分は２に決定され、上記垂直方向増分は２に決定されることができる。
【０２６９】
上記第１スキャン順序は、デコーダにより予め定義（又は、設定）されることもあり、ピクチャ、スライス、ＣＴＵ、符号化単位又は変換単位で、デコーダが（エンコーダから）デコーダに送信されることもある。
【０２７０】
また、スキャン順序決定部２１０２は、上記複数の係数グループ間のスキャン順序を示す第２スキャン順序を決定することもできる。言い換えると、スキャン順序決定部２１０２は、第２スキャン順序を決定する段階を含んでもよく、スキャン順序決定部２１０２は、上記図１２ないし図１８で説明した方法を適用して上記第２スキャン順序を決定することができる。また、上記第２スキャン順序は、デコーダにより予め定義（又は、設定）されることもあり、ピクチャ、スライス、ＣＴＵ、符号化単位又は変換単位で、エンコーダからデコーダに送信されることもある。
【０２７１】
変換係数生成部２１０３は、エンコーダから出力されたビットストリームをエントロピデコードすることにより量子化された変換係数を生成する。このとき、上記図６で説明したＳ６０１段階と同一の方法が適用されることができる。
【０２７２】
変換ブロック生成部２１０４は、上記第１スキャン順序と上記複数の係数グループ間のスキャン順序を示す第２スキャン順序とに従って、上記量子化された変換ブロックの係数を配置することにより、上記現在処理ブロックの量子化された変換ブロックを生成する。
【０２７３】
以上で説明された実施形態は、本発明の構成要素及び特徴が所定の形態で結合されたものである。各構成要素又は特徴は、別途の明示的な言及がない限り、選択的なものとして考慮されなければならない。各構成要素又は特徴は、他の構成要素や特徴と結合されない形態で実施できる。また、一部の構成要素及び／又は特徴を結合して本発明の実施形態を構成することも可能である。本発明の実施形態で説明される動作の順序は、変更可能である。ある実施形態の一部構成や特徴は、他の実施形態に含まれることができ、又は他の実施形態の対応する構成又は特徴と置き換えることができる。特許請求の範囲で明示的な引用関係がない請求項を結合して実施形態を構成するか、又は出願後の補正により新たな請求項に含めることができることは明らかである。
【０２７４】
本発明に従う実施形態は、多様な手段、例えば、ハードウェア、ファームウエア（firmware）、ソフトウェア、又はそれらの結合などにより実現できる。ハードウェアによる実現の場合、本発明の一実施形態は、１つ又は複数のＡＳＩＣｓ（application specific integrated circuits）、ＤＳＰｓ（digital signal processors）、ＤＳＰＤｓ（digital signal processing devices）、ＰＬＤｓ（programmable logic devices）、ＦＰＧＡｓ（field programmable gate arrays）、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサなどにより実現できる。
【０２７５】
ファームウエアやソフトウェアによる具現の場合、本発明の一実施形態は、以上で説明された機能又は動作を行うモジュール、手続、関数などの形態で具現できる。ソフトウェアコードは、メモリに記憶されてプロセッサにより駆動できる。上記メモリは、上記プロセッサ内部又は外部に位置し、既に公知の多様な手段により上記プロセッサとデータをやり取りすることができる。
【０２７６】
本発明は、本発明の必須的特徴を逸脱しない範囲で他の特定の形態で具体化できることは、当業者にとって明らかである。したがって、前述した詳細な説明は、全ての面から制約的に解析されてはならず、例示的なものとして考慮されなければならない。本発明の範囲は、添付の請求項の合理的解析により決定されなければならず、本発明の等価的範囲内における全ての変更は、本発明の範囲に含まれる。
【産業上の利用可能性】
【０２７７】
以上、前述した本発明の好ましい実施形態は、例示の目的のために開示されたものであって、当業者であれば、以下に添付された特許請求の範囲に開示された本発明の技術的思想及びその技術的範囲内で、様々な他の実施形態の改良、変更、代替、又は付加などが可能であろう。
【図１】
0006949990.tif 000056
【図２】
0006949990.tif 000057
【図３】
0006949990.tif 000058
【図４】
0006949990.tif 000059
【図５】
0006949990.tif 000060
【図６】
0006949990.tif 000061
【図７】
0006949990.tif 000062
【図８】
0006949990.tif 000063
【図９（ａ）】
0006949990.tif 000064
【図９（ｂ）】
0006949990.tif 000065
【図９（ｃ）】
0006949990.tif 000066
【図１０】
0006949990.tif 000067
【図１１】
0006949990.tif 000068
【図１２（ａ）】
0006949990.tif 000069
【図１２（ｂ）】
0006949990.tif 000070
【図１３】
0006949990.tif 000071
【図１４】
0006949990.tif 000072
【図１５】
0006949990.tif 000073
【図１６】
0006949990.tif 000074
【図１７】
0006949990.tif 000075
【図１８】
0006949990.tif 000076
【図１９】
0006949990.tif 000077
【図２０】
0006949990.tif 000078
【図２１】
0006949990.tif 000079