(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022116271
(43)【公開日】2022-08-09
(54)【発明の名称】映像符号化方法及び装置、並びに映像復号化方法及び装置
(51)【国際特許分類】
H04N 19/12 20140101AFI20220802BHJP
H04N 19/157 20140101ALI20220802BHJP
H04N 19/176 20140101ALI20220802BHJP
H04N 19/70 20140101ALI20220802BHJP
【FI】
H04N19/12
H04N19/157
H04N19/176
H04N19/70
【審査請求】有
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2022089918
(22)【出願日】2022-06-01
(62)【分割の表示】P 2020027478の分割
【原出願日】2013-07-02
(31)【優先権主張番号】10-2012-0071938
(32)【優先日】2012-07-02
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2013-0077047
(32)【優先日】2013-07-02
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】596099882
【氏名又は名称】エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート
【氏名又は名称原語表記】ELECTRONICS AND TELECOMMUNICATIONS RESEARCH INSTITUTE
(71)【出願人】
【識別番号】512139102
【氏名又は名称】ユニバーシティ-インダストリー コーオペレイション グループ オブ キョンヒ ユニバーシティ
【氏名又は名称原語表記】UNIVERSITY-INDUSTRY COOPERATION GROUP OF KYUNG HEE UNIVERSITY
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100096921
【弁理士】
【氏名又は名称】吉元 弘
(72)【発明者】
【氏名】キム、フイ、ヨン
(72)【発明者】
【氏名】リム、ソン、チャン
(72)【発明者】
【氏名】リー、ジン、ホ
(72)【発明者】
【氏名】チェ、ジン、ス
(72)【発明者】
【氏名】キム、ジン、ウン
(72)【発明者】
【氏名】パク、クワン、フン
(72)【発明者】
【氏名】キム、キョン、ヨン
(57)【要約】 (修正有)
【課題】符号化/復号化効率を向上させることができる変換スキップブロックに対する量子化/逆量子化方法及び装置を提供する。
【解決手段】残余信号(または変換係数)に対するスケーリング方法は、現在ブロックが変換スキップブロックであるかどうかによって現在ブロックに対するスケールファクタを導出するステップ及びスケールファクタに基づいて現在ブロックに対するスケーリングを実行するステップを含む。現在ブロックに対するスケールファクタは、現在ブロック内の変換係数の位置に基づいて導出される。変換スキップブロックは、現在ブロックに対して変換を適用しないブロックであり、現在ブロックに対して逆変換を適用するかどうかを示す情報に基づいて特定される。
【選択図】
図6
【特許請求の範囲】
【請求項1】
映像復号化方法であって、
現在ブロックの逆量子化変換係数を取得するステップ;
前記現在ブロックに変換を行うかどうかを示す情報を取得するステップ;
前記情報が、前記現在ブロックに前記変換を行うことを示す場合、前記現在ブロックの変換のタイプを決定するステップ;
前記決定された変換のタイプに基づいて、前記逆量子化変換係数に前記変換を行うことにより、前記現在ブロックの残差サンプルを取得するステップ;
を含み、
前記現在ブロックの前記変換のタイプは、イントラ予測モードに依存しない整数離散余弦変換(Discrete Cosine Transform;DCT)、又はイントラ予測モードに依存しない整数離散正弦変換(Discrete Sine Transform;DST)に決定されることを特徴とする映像復号化方法。
【請求項2】
映像符号化方法であって、
現在ブロックの残差サンプルを取得するステップ;
前記現在ブロックに変換を行うかどうかを決定するステップ;
前記現在ブロックに前記変換が行われる場合、及び前記現在ブロックがイントラ予測される場合、前記現在ブロックの変換のタイプを決定するステップ;
前記決定された変換のタイプに基づいて、前記残差サンプルに前記変換を行うことにより、前記現在ブロックの変換係数を取得するステップ;
を含み、
前記現在ブロックの前記変換のタイプは、イントラ予測モードに依存しない整数離散余弦変換(Discrete Cosine Transform;DCT)、又はイントラ予測モードに依存しない整数離散正弦変換(Discrete Sine Transform;DST)に決定されることを特徴とする映像符号化方法。
【請求項3】
映像符号化方法によって発生したビットストリームを送信する方法であって、
現在ブロックの残差サンプルを取得するステップ;
前記現在ブロックに変換を行うかどうかを決定するステップ;
前記現在ブロックに前記変換が行われる場合、及び前記現在ブロックがイントラ予測される場合、前記現在ブロックの変換のタイプを決定するステップ;
前記決定された変換のタイプに基づいて、前記残差サンプルに前記変換を行うことにより、前記現在ブロックの変換係数を取得するステップ;
を含み、
前記現在ブロックの前記変換のタイプは、イントラ予測モードに依存しない整数離散余弦変換(Discrete Cosine Transform;DCT)、又はイントラ予測モードに依存しない整数離散正弦変換(Discrete Sine Transform;DST)に決定されることを特徴とするビットストリームを送信する方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像の符号化並びに復号化に関し、より詳しくは、変換係数に対するスケーリング方法及び装置に関する。
【背景技術】
【0002】
最近、HD(High Definition)解像度(1280×1024または1920×1080)を有する放送サービスが韓国内だけでなく、世界的に拡大されている。それによって、多くのユーザが高解像度、高画質の映像に慣れており、それに応えて多くの機関が次世代映像機器に対する開発に拍車を掛けている。また、HDTVと共にHDTVの4倍以上の解像度を有するUHD(Ultra High Definition)に対する関心が増大するにつれて、動映像標準化団体は、より高い解像度、高画質の映像に対する圧縮機術の必要性を認識するようになった。また、現在HDTV、携帯電話、ブルーレイプレーヤに使われるH.264/AVCより高い圧縮効率を介して同じ画質を維持すると同時に、周波数帯域や格納側面で多くの利得を得ることができる新しい標準が切実な状況である。
【0003】
現在MPEG(Moving Picture Experts Group)とVCEG(Video Coding Experts Group)は、共同に次世代ビデオコーデックであるHEVC(High Efficiency Video Coding)を標準化しており、UHD映像まで含む映像をH.264/AVC対比2倍の圧縮効率で符号化をすることを目標としている。これはHD、UHD映像だけでなく、3D放送及び移動通信ネットワークでも現在より低い周波数で高画質の映像を提供することができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、符号化/復号化効率を向上させることができる映像符号化/復号化方法及び装置を提供する。
【0005】
本発明は、符号化/復号化効率を向上させることができる変換係数(または、残余信号)のスケーリング方法及び装置を提供する。
【0006】
本発明は、符号化/復号化効率を向上させることができる変換スキップブロックに対する量子化/逆量子化方法及び装置を提供する。
【課題を解決するための手段】
【0007】
本発明の一態様によると、映像復号化方法が提供される。前記映像復号化方法は、現在ブロックが変換スキップブロックであるかどうかによって前記現在ブロックに対するスケールファクタを導出するステップ、及び前記スケールファクタに基づいて前記現在ブロックに対するスケーリングを実行するステップを含む。
【0008】
前記現在ブロックに対するスケールファクタは、前記現在ブロック内の変換係数の位置に基づいて導出され、前記変換スキップブロックは、前記現在ブロックに対して変換を適用しないブロックであり、前記現在ブロックに対して逆変換を適用するかどうかを示す情報に基づいて特定される。
【0009】
前記現在ブロックに対するスケールファクタを導出するステップでは、前記現在ブロックが変換スキップブロックの場合、前記現在ブロック内の変換係数の位置に関係なく基本スケールファクタを導出する。
【0010】
前記基本スケールファクタは、所定のスケールファクタ値を有し、前記所定のスケールファクタ値は、16である。
【0011】
前記基本スケールファクタは、前記現在ブロックが量子化行列を使用するかどうかによって異なるスケールファクタ値を有する。
【0012】
前記基本スケールファクタは、前記現在ブロックが輝度ブロックであるか、または色差ブロックであるかによって異なるスケールファクタ値を有する。
【0013】
前記現在ブロックを含む映像に変換スキップアルゴリズムが使われるかどうかを示すフラグがPPS(Picture Parameter Set)を介してシグナリングされる。
【0014】
前記基本スケールファクタは、輝度信号と色差信号に対するスケールファクタ情報を含む。
【0015】
前記現在ブロックに対するスケールファクタを導出するステップでは、前記現在ブロックが変換スキップブロックであり、または前記現在ブロックが量子化行列を使用しない場合、前記現在ブロック内の変換係数の位置に関係なく基本スケールファクタを導出する。
【0016】
前記現在ブロックに対するスケールファクタを導出するステップでは、前記現在ブロックが変換スキップブロックでない場合、前記現在ブロック内の変換係数の位置に基づいて量子化行列を利用して前記現在ブロックに対するスケールファクタを導出する。
【0017】
本発明の他の態様によると、映像復号化装置が提供される。前記映像復号化装置は、現在ブロックが変換スキップブロックであるかどうかによって前記現在ブロックに対するスケールファクタを導出し、前記スケールファクタに基づいて前記現在ブロックに対するスケーリングを実行する逆量子化部を含む。
【0018】
前記現在ブロックに対するスケールファクタは、前記現在ブロック内の変換係数の位置に基づいて導出され、前記変換スキップブロックは、前記現在ブロックに対して変換を適用しないブロックであり、前記現在ブロックに対して変換を適用するかどうかを示す情報に基づいて特定される。
【0019】
本発明の他の態様によると、映像符号化方法が提供される。前記映像符号化方法は、現在ブロックが変換スキップブロックであるかどうかによって前記現在ブロックに対するスケールファクタを導出するステップ、及び前記スケールファクタに基づいて前記現在ブロックに対するスケーリングを実行するステップを含む。
【0020】
前記現在ブロックに対するスケールファクタは、前記現在ブロック内の変換係数の位置に基づいて導出され、前記変換スキップブロックは、前記現在ブロックに対して変換を適用しないブロックであり、前記現在ブロックに対して変換を適用するかどうかを示す情報に基づいて特定される。
【0021】
前記現在ブロックに対するスケールファクタを導出するステップでは、前記現在ブロックが変換スキップブロックの場合、前記現在ブロック内の変換係数の位置に関係なく基本スケールファクタを導出する。
【0022】
前記基本スケールファクタは、所定のスケールファクタ値を有し、前記所定のスケールファクタ値は、16である。
【0023】
前記基本スケールファクタは、前記現在ブロックが量子化行列を使用するかどうかによって異なるスケールファクタ値を有する。
【0024】
前記基本スケールファクタは、前記現在ブロックが輝度ブロックであるか、または色差ブロックであるかによって異なるスケールファクタ値を有する。
【0025】
前記現在ブロックを含む映像に変換スキップアルゴリズムが使われるかどうかを示すフラグがPPS(Picture Parameter Set)を介してシグナリングされる。
【0026】
前記基本スケールファクタは、輝度信号と色差信号に対するスケールファクタ情報を含む。
【0027】
前記現在ブロックに対するスケールファクタを導出するステップでは、前記現在ブロックが変換スキップブロックであり、または前記現在ブロックが量子化行列を使用しない場合、前記現在ブロック内の変換係数の位置に関係なく基本スケールファクタを導出する。
【0028】
前記現在ブロックに対するスケールファクタを導出するステップでは、前記現在ブロックが変換スキップブロックでない場合、前記現在ブロック内の変換係数の位置に基づいて量子化行列を利用して前記現在ブロックに対するスケールファクタを導出する。
【0029】
本発明の他の態様によると、映像符号化装置が提供される。前記映像符号化装置は、現在ブロックが変換スキップブロックであるかどうかによって前記現在ブロックに対するスケールファクタを導出し、前記スケールファクタに基づいて前記現在ブロックに対するスケーリングを実行する量子化部を含む。
【0030】
前記現在ブロックに対するスケールファクタは、前記現在ブロック内の変換係数の位置に基づいて導出され、前記変換スキップブロックは、前記現在ブロックに対して変換を適用しないブロックであり、前記現在ブロックに対して変換を適用するかどうかを示す情報に基づいて特定される。
【発明の効果】
【0031】
変換スキップアルゴリズムが適用されたブロックは、変換/逆変換過程を実行しないため、既存の変換/逆変換過程を実行したブロックとは互いに異なる変換係数特性を有する。即ち、既存の変換/逆変換過程を実行したブロックに適用したスケーリング方法をそのまま変換スキップブロックに適用する場合、符号化/復号化効率を減少させることができる。したがって、変換スキップブロックに対してはブロック内の変換係数の位置に関係なく同じようにスケールファクタを適用することによって、符号化及び復号化効率を増加させることができる。
【図面の簡単な説明】
【0032】
【
図1】本発明が適用される映像符号化装置の一実施例に係る構成を示すブロック図である。
【
図2】本発明が適用される映像復号化装置の一実施例に係る構成を示すブロック図である。
【
図3】映像を符号化する時、映像の分割構造を概略的に示す図である。
【
図4】コーディングユニット(CU)が含むことができる予測ユニット(PU)の形態を示す図である。
【
図5】コーディングユニット(CU)が含むことができる変換ユニット(TU)の形態を示す図である。
【
図6】本発明の一実施例に係る残余信号(または、変換係数)に対するスケーリング方法を示す流れ図である。
【
図7】本発明の他の実施例に係る残余信号(または、変換係数)に対するスケーリング方法を示す流れ図である。
【発明を実施するための形態】
【0033】
以下、図面を参照して本発明の実施形態に対して具体的に説明する。本明細書の実施例を説明するにあたって、関連した公知構成または機能に対する具体的な説明が本明細書の要旨を不明にすると判断される場合は該当説明を省略することもできる。
【0034】
本明細書において、一構成要素が他の構成要素に連結されている、または接続されていると言及された場合、その他の構成要素に直接的に連結されている、または接続されていることを意味し、または中間に他の構成要素が存在することを意味する。併せて、本明細書において、特定構成を含むと記述する内容は、該当構成以外の構成を排除するものではなく、追加的な構成が本発明の実施または本発明の技術的思想の範囲に含まれることができることを意味する。
【0035】
第1、第2などの用語は、多様な構成を説明するときに使われることができるが、前記構成は、前記用語により限定されるものではない。前記用語は、一つの構成を他の構成から区別する目的として使われる。例えば、本発明の権利範囲を外れない限り、第1の構成は第2の構成と命名することができ、同様に、第2の構成も第1の構成と命名することができる。
【0036】
また、本発明の実施例に示す構成部は、互いに異なる特徴的な機能を示すために独立的に図示されるものであって、各構成部が分離されたハードウェアや一つのソフトウェア構成単位に構成されることを意味しない。即ち、各構成部は、説明の便宜上、それぞれの構成部として羅列して含むものであって、各構成部のうち少なくとも二つの構成部が統合されて一つの構成部からなり、または一つの構成部が複数個の構成部に分けられて機能を遂行することができる。各構成部の統合された実施例及び分離された実施例も、本発明の本質から外れない限り、本発明の権利範囲に含まれる。
【0037】
また、一部の構成要素は、本発明で本質的な機能を遂行する必須的構成要素ではなく、単に性能を向上させるための選択的構成要素である。本発明は、単に性能向上のために使われる構成要素を除いた本発明の本質具現に必須的構成部のみを含むことができ、単に性能向上のために使われる選択的構成要素を除いた必須的構成要素のみを含む構造も本発明の権利範囲に含まれる。
【0038】
まず、説明の便宜及び発明の理解のために、本明細書で使われる用語に対して簡略に説明する。
【0039】
ユニット(unit)は、映像符号化及び復号化の単位を意味する。即ち、映像符号化/復号化において、符号化または復号化単位とは、一つの映像を細分化されたユニットに分割して符号化または復号化する時、その分割された単位を意味する。ブロック(block)、マクロブロック(Macro Block;MB)、符号化ユニット(Coding Unit;CU)、予測ユニット(Prediction Unit;PU)、変換ユニット(Transform Unit;TU)、符号化ブロック(Coding Block;CB)、予測ブロック(Prediction Block;PB)、変換ブロック(Transform Block;TB)などとも呼ばれる。また、一つのユニットは、大きさが小さい下位ユニットに分割されることができる。
【0040】
ブロック(block)は、サンプル(sample)のM×N配列を意味し、MとNは、正の整数値を有する。また、ブロックは、2次元形態の配列を意味する。
【0041】
変換ユニット(Transform Unit;TU)は、変換、逆変換、量子化、逆量子化、変換係数符号化/復号化のように残余信号(residual signal)の符号化/復号化を実行する時の基本ユニットであり、一つの変換ユニットは、大きさが小さい複数の変換ユニットに分割されることができる。このとき、残余信号(residual signal)がブロック形態で存在する場合、残余ブロック(residual block)ということができる。
【0042】
量子化行列(quantization matrix)は、映像の主観的画質または客観的画質を向上させるために量子化または逆量子化過程で利用する行列を意味する。量子化行列は、スケーリングリスト(scaling list)とも呼ばれる。
【0043】
量子化行列は、基本行列(default matrix)、非基本行列(non-default matrix)、平面行列(flat matrix)に分けられることができる。基本行列は、符号化器と復号化器で予め定義されている所定の量子化行列を意味する。非基本行列は、符号化器と復号化器で予め定義されておらずに、ユーザにより送信/受信される量子化行列を意味する。平面行列は、行列内の全ての元素が同じ値を有する行列を意味する。
【0044】
スケーリング(scaling)は、変換係数レベルに因数をかける過程を意味し、その結果、変換係数を生成する。スケーリングは、逆量子化(dequantization)ともいう。
【0045】
変換係数(transform coefficient)は、変換を実行した後に生成された係数値を意味する。本明細書では、変換係数に量子化を適用した、量子化された変換係数レベル(transform coefficient level)も変換係数と通称して使用する。
【0046】
量子化媒介変数(quantization parameter)は、量子化及び逆量子化で変換係数レベルをスケーリングする時に使われる値を意味する。このとき、量子化媒介変数は、量子化ステップ大きさ(step size)にマッピングされた値である。
【0047】
パラメータセット(parameter set)は、ビットストリーム内の構造のうちヘッダ情報に該当し、シーケンスパラメータセット(sequence parameter set)、映像パラメータセット(picture parameter set)、適応パラメータセット(adaptation parameter set)などを通称する。
【0048】
図1は、本発明が適用される映像符号化装置の一実施例に係る構成を示すブロック図である。
【0049】
図1を参照すると、映像符号化装置100は、動き予測部111、動き補償部112、イントラ予測部120、スイッチ115、減算器125、変換部130、量子化部140、エントロピー符号化部150、逆量子化部160、逆変換部170、加算器175、フィルタ部180、及び参照映像バッファ190を含む。
【0050】
映像符号化装置100は、入力映像に対してイントラ(intra)モードまたはインター(inter)モードに符号化を実行することで、ビットストリームを出力することができる。イントラモードである場合、スイッチ115がイントラに切り替えられ、インターモードである場合、スイッチ115がインターに切り替えられることができる。イントラ予測は、画面内予測を意味し、インター予測は、画面間予測を意味する。映像符号化装置100は、入力映像の入力ブロックに対する予測ブロックを生成した後、入力ブロックと予測ブロックとの差分(residual)を符号化することができる。このとき、入力映像は、原映像(original picture)を意味する。
【0051】
イントラモードである場合、イントラ予測部120は、現在ブロック周辺の既に符号化/復号化されたブロックのピクセル値を利用して空間的予測を実行することで、予測ブロックを生成することができる。
【0052】
インターモードである場合、動き予測部111は、動き予測過程で参照映像バッファ190に格納されている参照映像で入力ブロックと最もよくマッチされる領域を探して動きベクトルを求めることができる。動き補償部112は、動きベクトルを利用して動き補償を実行することによって予測ブロックを生成することができる。ここで、動きベクトルは、インター予測に使われる2次元ベクトルであり、現在符号化/復号化対象映像と参照映像との間のオフセットを示すことができる。
【0053】
減算器125は、入力ブロックと生成された予測ブロックとの差分により残差ブロック(residual block)を生成することができる。
【0054】
変換部130は、残差ブロックに対して変換(transform)を実行することで、変換係数(transform coefficient)を出力することができる。そして、量子化部140は、入力された変換係数を量子化パラメータ(quantization parameter、または、量子化媒介変数)によって量子化することで、量子化された係数(quantized coefficient)を出力することができる。
【0055】
エントロピー符号化部150は、量子化部140で算出された値または符号化過程で算出された符号化パラメータ値などに基づいてエントロピー符号化を実行することで、ビットストリーム(bit stream)を出力することができる。エントロピー符号化が適用される場合、高い発生確率を有するシンボル(symbol)に少ない数のビットが割り当てられ、低い発生確率を有するシンボルに多い数のビットが割り当てられてシンボルが表現されることによって、符号化対象シンボルに対するビット列の大きさが減少されることができる。したがって、エントロピー符号化を介して映像符号化の圧縮性能が高まることができる。エントロピー符号化部150は、エントロピー符号化のために、指数-ゴロム(Exponential-Golomb)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-Adaptive Binary Arithmetic Coding)のような符号化方法を使用することができる。
【0056】
図1の実施例による映像符号化装置100は、インター予測符号化、即ち、画面間予測符号化を実行するため、現在符号化された映像は、参照映像として使われるために復号化されて格納される必要がある。したがって、量子化された係数は、逆量子化部160で逆量子化され、逆変換部170で逆変換される。逆量子化、逆変換された係数は、加算器175を介して予測ブロックと加えられて復元ブロックが生成される。
【0057】
復元ブロックは、フィルタ部180を経て、フィルタ部180は、デブロッキングフィルタ(deblocking filter)、SAO(Sample Adaptive Offset)、ALF(Adaptive Loop Filter)のうち少なくとも一つ以上を復元ブロックまたは復元映像に適用することができる。フィルタ部180は、適応的インループ(in-loop)フィルタとも呼ばれる。デブロッキングフィルタは、ブロック間の境界に発生したブロック歪曲を除去することができる。SAOは、コーディングエラーを補償するためにピクセル値に適正オフセット(offset)値を加えることができる。ALFは、復元された映像と原映像を比較した値に基づいてフィルタリングを実行することができる。フィルタ部180を経た復元ブロックは、参照映像バッファ190に格納されることができる。
【0058】
図2は、本発明が適用される映像復号化装置の一実施例に係る構成を示すブロック図である。
【0059】
図2を参照すると、映像復号化装置200は、エントロピー復号化部210、逆量子化部220、逆変換部230、イントラ予測部240、動き補償部250、加算器255、フィルタ部260、及び参照映像バッファ270を含む。
【0060】
映像復号化装置200は、符号化器で出力されたビットストリームの入力を受けてイントラモードまたはインターモードに復号化を実行することで、再構成された映像、即ち、復元映像を出力することができる。イントラモードである場合、スイッチがイントラに切り替えられ、インターモードである場合、スイッチがインターに切り替えられることができる。
【0061】
映像復号化装置200は、入力されたビットストリームから復元された残差ブロック(reconstructed residual block)を得て、予測ブロックを生成した後、復元された残差ブロックと予測ブロックを加えて再構成されたブロック、即ち、復元ブロックを生成することができる。
【0062】
エントロピー復号化部210は、入力されたビットストリームを確率分布によってエントロピー復号化し、量子化された係数(quantized coefficient)形態のシンボルを含むシンボルを生成することができる。
【0063】
エントロピー復号化方法が適用される場合、高い発生確率を有するシンボルに少ない数のビットが割り当てられ、低い発生確率を有するシンボルに多い数のビットが割り当てられてシンボルが表現されることによって、各シンボルに対するビット列の大きさが減少されることができる。
【0064】
量子化された係数は、逆量子化部220で逆量子化され、逆変換部230で逆変換され、量子化された係数が逆量子化/逆変換された結果、復元された残差ブロックが生成されることができる。
【0065】
イントラモードである場合、イントラ予測部240は、現在ブロック周辺の既に復号化されたブロックのピクセル値を利用して空間的予測を実行することで、予測ブロックを生成することができる。インターモードである場合、動き補償部250は、動きベクトル及び参照映像バッファ270に格納されている参照映像を利用して動き補償を実行することによって予測ブロックを生成することができる。
【0066】
残差ブロックと予測ブロックは、加算器255を介して加えられ、加えられたブロックは、フィルタ部260を経ることができる。フィルタ部260は、デブロッキングフィルタ、SAO、ALFのうち少なくとも一つ以上を復元ブロックまたは復元映像に適用することができる。フィルタ部260は、再構成された映像、即ち、復元映像を出力することができる。復元映像は、参照映像バッファ270に格納されてインター予測に使われることができる。
【0067】
図3は、映像を符号化する時、映像の分割構造を概略的に示す。
【0068】
HEVC(High Efficiency Video Coding)では映像を効率的に分割するために、コーディングユニット(Coding Unit;CU)に符号化を実行する。
【0069】
図3を参照すると、HEVCでは映像300を最大コーディングユニット(Largest Coding Unit;LCU)(以下、LCUという)単位に順次に分割した後、LCU単位に分割構造を決定する。分割構造は、LCU310内で映像を効率的に符号化するためのコーディングユニット(以下、CUという)の分布を意味し、このような分布は、一つのCUをその縦横に半分ずつ減少された4個のCUに分割するかどうかによって決定されることができる。分割されたCUは、同じ方式に分割されたCUに対し、その縦横に半分ずつ減少された4個のCUに再帰的に分割されることができる。
【0070】
このとき、CUの分割は、予め定義された深さまで再帰的に分割されることができる。深さ情報は、CUの大きさを示す情報であって、各CU毎に格納されている。例えば、LCUの深さは0であり、SCU(Smallest Coding Unit)の深さは予め定義された最大深さである。ここで、LCUは、前述したように、最大コーディングユニット大きさを有するコーディングユニットであり、SCU(Smallest Coding Unit)は、最小コーディングユニット大きさを有するコーディングユニットである。
【0071】
LCU310から横縦に半分ずつ分割を実行するたびにCUの深さは、1ずつ増加する。それぞれの深さ別に、分割を実行しないCUの場合は、2N×2N大きさを有し、分割を実行するCUの場合は、2N×2N大きさのCUからN×N大きさを有する4個のCUに分割される。Nの大きさは、深さが1ずつ増加するたびに半分に減少する。
【0072】
図3を参照すると、最小深さが0であるLCUの大きさは、64×64画素であり、最大深さが3であるSCUの大きさは、8×8画素である。このとき、64×64画素のCU(LCU)は深さ0で表現され、32×32画素のCUは深さ1で表現され、16×16画素のCUは深さ2で表現され、8×8画素のCU(SCU)は深さ3で表現されることができる。
【0073】
また、特定CUを分割するかどうかに対する情報は、CU毎に1ビットの分割情報を介して表現されることができる。この分割情報は、SCUを除いた全てのCUに含まれることができ、例えば、CUを分割しない場合は、分割情報に0を格納することができ、CUを分割する場合は、分割情報に1を格納することができる。
【0074】
一方、LCUから分割されたCUは、予測のための基本単位である予測ユニット(Prediction Unit;PUまたはPrediction Block;PB)と、変換のための基本単位である変換ユニット(Transform Unit;TUまたはTransform Block;TB)とで構成されることができる。
【0075】
図4は、コーディングユニット(CU)が含むことができる予測ユニット(PU)の形態を示す。
【0076】
LCUから分割されたCUのうち、それ以上分割されないCUは、一つ以上の予測ユニットに分割され、この行為自体も分割(partition)(または、パーティション)という。予測ユニット(以下、PUという)は、予測を実行する基本単位であって、スキップ(skip)モード、インター(inter)モード、イントラ(intra)モードのうちいずれか一つに符号化され、各モードによって多様な形態でパーティションされることができる。
【0077】
図4を参照すると、スキップモードの場合、CU内でパーティションなく、CUと同じ大きさを有する2N×2Nモード410をサポートすることができる。
【0078】
インターモードの場合、CU内で8種類のパーティションされた形態、例えば、2N×2Nモード410、2N×Nモード415、N×2Nモード420、N×Nモード425、2N×nUモード430、2N×nDモード435、nL×2Nモード440、nR×2Nモード445をサポートすることができる。
【0079】
イントラモードの場合、CU内で2N×2Nモード410、N×Nモード425をサポートすることができる。
【0080】
図5は、コーディングユニット(CU)が含むことができる変換ユニット(TU)の形態を示す。
【0081】
変換ユニット(以下、TUという)は、CU内で空間変換と量子化/逆量子化(スケーリング)過程のために使われる基本単位である。TUは、正方形または長方形の形態を有することができる。LCUから分割されたCUのうち、それ以上分割されないCUは、一つまたはそれ以上のTUに分割されることができる。
【0082】
このとき、TUの分割構造は、クワッドツリー(quad-tree)構造である。例えば、
図5に示すように、一つのCU510がクワッドツリー構造によって一回またはそれ以上分割され、多様な大きさのTUで構成されることができる。
【0083】
一方、HEVCでは、H.264/AVCのように画面内予測(以下、イントラ予測)符号化を実行することができる。このとき、現在ブロックの周辺に位置した周辺ブロックから現在ブロックのイントラ予測モード(または、予測方向性)を誘導して符号化することができる。
【0084】
前記のように、イントラ予測モードに基づいて予測が実行されることによって取得された信号に対する予測映像は、原映像との差分値を有することができる。このような予測映像と原映像との間の差分値を有する差分映像は、周波数領域変換と量子化を経てエントロピー符号化されることができる。このとき、周波数領域変換の符号化効率を上げるために、整数変換、整数離散余弦変換(Discrete Cosine Transform;DCT)、整数離散正弦変換(Discrete Sine Transform;DST)、またはイントラ予測モード従属的なDCT/DSTなどをブロック大きさによって選択的、適応的に適用することができる。
【0085】
また、文書映像またはパワーポイントのプレゼンテイション映像のようなスクリーンコンテンツ(screen contents)で符号化効率を上げるために、変換スキップ(Transform SKIP)アルゴリズムを適用することができる。
【0086】
変換スキップアルゴリズムを適用する場合、符号化器では、原映像と予測映像との間の差分値を有する差分映像(残余ブロック)を周波数変換過程無く量子化して残余ブロックに対してエントロピー符号化を実行する。そして、復号化器では、残余ブロックに対してエントロピー復号化し、逆量子化(スケーリング)を実行することで復元された残余ブロックを生成する。したがって、このような変換スキップアルゴリズムが適用されたブロックは、周波数変換/逆変換過程を飛び越えるようになる。
【0087】
量子化/逆量子化過程では、映像の主観的画質向上のために、ブロック内の変換係数の位置によってスケールファクタ(scale factor)を異なるように適用することができる。それに対し、量子化/逆量子化を実行する時、ブロック内の変換係数の位置に関係なくスケールファクタを同じように適用する方法がある。このような方法の適用可否は、ビットストリームのSPS(Sequence Parameter Set)またはPPS(Picture Parameter Set)を介してシグナリングされることができる。
【0088】
前記過程の一実施例として、変換係数のスケーリング過程(Scaling Process for transform coefficients)は、下記のように実行されることができる。
【0089】
変換係数のスケーリング過程
【0090】
ここでの入力は、下記の通りである。
【0091】
-現在変換ブロックの幅Width;nW
【0092】
-現在変換ブロックの高さHeight;nH
【0093】
-要素(element)cijを有する変換係数の配列;(nW×nH)array d
【0094】
-現在ブロックの輝度信号及び色差信号に対するインデックス;cIdx
【0095】
もし、cIdxが‘0’の場合、輝度信号を意味し、cIdxが‘1’であり、またはcIdxが‘2’の場合、色差信号を意味する。また、cIdxが‘1’の場合、色差信号でCbを意味し、cIdxが‘2’の場合、色差信号でCrを意味する。
【0096】
-量子化パラメータ;qP
【0097】
ここでの出力は、下記の通りである。
【0098】
-スケールされた変換係数に対する配列;(nW×nH)array dij
【0099】
変数log2TrSizeは、log2TrSize=(Log2(nW)+Log2(nH))>>1を介して誘導される。変数shiftは、cIdxによって異なるように誘導される。cIxが‘0’の場合(輝度信号の場合)、shift=BitDepthY+log2TrSize-5から誘導され、その以外の場合(色差信号の場合)、shift=BitDepthC+log2TrSize-5から誘導される。ここで、BitDepthYとBitDepthCは、現在映像に対するサンプルのビット数(例えば、8ビット)を意味する。
【0100】
スケーリング変数に対する配列levelScale[]は、以下の数式1の通りである。
【0101】
【0102】
スケールされた変換係数は、下記の過程を介して計算される。
【0103】
まず、スケールファクタmijは、下記の過程を介して誘導される。
【0104】
-もし、scaling_list_enable_flagが‘0’の場合、mijは、以下の数式2のように誘導される。
【0105】
【0106】
-その以外の場合、mijは、以下の数式3のように誘導される。
【0107】
【0108】
ここで、SizeIDは、変換ブロックの大きさによって以下の表1を介して誘導され、RefMatrixID、そしてtrafoTypeは、以下の数式4及び数式5から各々誘導される。また、数式4において、scaling_list_pred_matrix_id_deltaは、ビットストリームのSPS(Sequence Parameter Set)またはPPS(Picture Parameter Set)を介してシグナリングされる。
【0109】
【0110】
【0111】
表1は、変換ブロックの大きさによるSizeID値を示す一例である。
【0112】
【0113】
次に、スケールされた変換係数dijは、以下の数式6から誘導される。
【0114】
【0115】
一方、前述したように、変換スキップアルゴリズムが適用されたブロック(以下、変換スキップブロックという)は、周波数変換過程を実行しない。したがって、既存の周波数変換過程を実行したブロックと変換スキップブロックは、互いに異なる変換係数特性を有することができる。即ち、既存の周波数変換過程を実行したブロックに適用したスケーリング方法をそのまま変換スキップブロックに適用する場合、符号化効率を減少させることができる。
【0116】
したがって、本発明では、変換スキップブロックの場合を考慮してスケーリングを実行する方法を提供する。
【0117】
符号化器と復号化器で映像の主観的画質を向上させるために量子化行列(基本行列及び非基本行列)を使用する場合、ブロック内の変換係数(transform coefficient)の位置によって量子化行列から誘導されたスケールファクタ(scale factor)が異なるように適用されることができる。このような方法は、ブロックの変換(transform)時、残余ブロックのエネルギーがブロックの左側上端位置(低周波数領域)に圧縮される特性を利用することで、一般的に人間の目に敏感な低周波数領域よりは人間の目に敏感でない高周波数領域に対してより大きい量子化ステップ大きさ(step size)で量子化を実行する。このような方法を介して映像符号化時、人間の目に敏感な領域に対して主観的画質を向上させることができる。
【0118】
しかし、変換スキップが適用された場合、残余ブロックは、周波数領域変換/逆変換を実行しないため、ブロック内で低周波数領域側に圧縮されない。このような場合、既存の周波数領域に使用する量子化/逆量子化方法を適用すると、映像またはブロック内の歪曲が激しくなるという短所がある。したがって、映像内で量子化行列を使用する場合、周波数領域変換/逆変換を実行しないブロック(変換スキップブロック)に対しては映像またはブロック内の歪曲を最小化することができるスケーリング(量子化/逆量子化)方法が必要である。例えば、変換スキップブロックに対しては量子化行列が適用されないようにする方法がある。このような方法は、ブロック内の変換係数の位置に関係なく基本スケールファクタを同じように適用することができる。
【0119】
[実施例1]変換スキップブロックに対してブロック内の変換係数の位置に関係なくスケールファクタを同じように適用する方法及び装置
【0120】
図6は、本発明の一実施例に係る残余信号(または、変換係数)に対するスケーリング方法を示す流れ図である。
【0121】
図6の方法は、前述した
図1の符号化装置または前述した
図2の復号化装置で実行されることができる。より具体的には、
図1または
図2の量子化部または逆量子化部で実行されることができる。
図6の実施例では、説明の便宜のために、
図6の方法が符号化装置で実行されると説明するが、これは復号化装置でも同じように適用されることができる。
【0122】
図6を参照すると、現在ブロックの残余信号(または、変換係数)に対するスケーリング(量子化または逆量子化)時に適用されるスケールファクタ(m
ij)は、現在ブロックが変換スキップブロックであるかどうかによって誘導されることができる。
【0123】
符号化装置は、現在ブロックが変換スキップブロックであるかどうかを判断する(S600)。
【0124】
このとき、現在ブロックが変換スキップブロックであるかどうかは、変換スキップブロックであるかどうかを指示する情報を介して判断されることができる。例えば、変換スキップブロックであるかどうかを指示する情報は、フラグ(transSkipFlag)である。このようなフラグtransSkipFlag値は、ビットストリーム内の変換スキップブロックに対する情報をエントロピー復号化して誘導されることができる。もし、現在ブロックが変換スキップブロックの場合、transSkipFlag値が1であり、現在ブロックが変換スキップブロックでない場合、transSkipFlag値が0である。
【0125】
もし、現在ブロックが変換スキップブロックの場合(例えば、transSkipFlag値が1の場合)、符号化装置は、現在ブロック内の残余信号(または、変換係数)の位置に関係なくスケールファクタ(mij)を誘導する(S610)。
【0126】
このとき、
図6に示すように、スケールファクタ(m
ij)は、所定の基本スケールファクタ値(T)に設定されることができる。例えば、所定の基本スケールファクタ値(T)は、16である。
【0127】
それに対し、現在ブロックが変換スキップブロックでない場合(例えば、transSkipFlag値が0の場合)、符号化装置は、現在ブロック内の残余信号(または、変換係数)の位置に基づいてスケールファクタ(mij)を誘導する(S620)。
【0128】
このとき、スケールファクタ(m
ij)は、量子化行列を利用して現在ブロック内の残余信号(または、変換係数)の位置によって異なるように設定されることができ、
図6に示すように、以下の数式7のように誘導されることができる。
【0129】
【0130】
ここで、ScalingFactorは、スケールファクタを格納している配列である。SizeIDは、現在ブロック(変換ブロックまたは量子化行列)の大きさを示すための値であり、前述した表1のように現在ブロック(変換ブロック)の大きさによってSizeID値が誘導されることができる。RefMatrixIDとtrafoTypeは、以下の数式8及び数式9から各々誘導されることができる。nWは、現在ブロックの幅を意味する。
【0131】
【0132】
ここで、MatrixID値は、予測モード及び色成分(color component)による量子化行列の種類を意味し、一例として、以下の表2のようにMatrixID値が誘導されることができる。scaling_list_pred_matrix_id_deltaは、ビットストリームのSPS(Sequence Parameter Set)またはPPS(Picture Parameter Set)を介してシグナリングされる。
【0133】
【0134】
ここで、nWは、現在ブロックの幅を意味し、nHは、現在ブロックの高さを意味する。
【0135】
表2は、予測モード及び色成分によるMatrixID値を示す。
【0136】
【0137】
図7は、本発明の他の実施例に係る残余信号(または、変換係数)に対するスケーリング方法を示す流れ図である。
【0138】
図7の方法は、前述した
図1の符号化装置または前述した
図2の復号化装置で実行されることができる。より具体的には、
図1または
図2の量子化部または逆量子化部で実行されることができる。
図7の実施例では、説明の便宜のために、
図7の方法が符号化装置で実行されると説明するが、これは復号化装置でも同じように適用されることができる。
【0139】
図7を参照すると、現在ブロックの残余信号(または、変換係数)に対するスケーリング(量子化または逆量子化)時に適用されるスケールファクタ(m
ij)は、現在ブロックが変換スキップブロックであるかどうか、及び量子化行列の使用可否によって誘導されることができる。
【0140】
符号化装置は、現在ブロックが量子化行列を使用するかどうか、及び変換スキップブロックであるかどうかを判断する(S700)。
【0141】
このとき、現在ブロックが量子化行列を使用するかどうかは、量子化行列の使用可否を指示する情報を介して判断することができる。例えば、量子化行列の使用可否を指示する情報は、フラグ(scaling_list_enable_flag)である。このようなフラグscaling_list_enable_flag値は、ビットストリーム内の量子化行列の使用に対する情報をエントロピー復号化して誘導されることができる。もし、現在ブロックが量子化行列を使用する場合、scaling_list_enable_flag値は1であり、現在ブロックが量子化行列を使用しない場合、scaling_list_enable_flag値は0である。
【0142】
また、現在ブロックが変換スキップブロックであるかどうかは、変換スキップブロックであるかどうかを指示する情報を介して判断されることができる。例えば、変換スキップブロックであるかどうかを指示する情報は、フラグ(transSkipFlag)である。このようなフラグtransSkipFlag値は、ビットストリーム内の変換スキップブロックに対する情報をエントロピー復号化して誘導されることができる。もし、現在ブロックが変換スキップブロックの場合、transSkipFlag値が1であり、現在ブロックが変換スキップブロックでない場合、transSkipFlag値が0である。
【0143】
もし、現在ブロックが変換スキップブロックであり、または量子化行列を使用しない場合(例えば、transSkipFlag==1 or scaling_list_enable_flag==0)、符号化装置は、現在ブロック内の残余信号(または、変換係数)の位置に関係なくスケールファクタ(mij)を誘導する(S710)。
【0144】
このとき、
図7に示すように、スケールファクタ(m
ij)は、所定の基本スケールファクタ値(T)に設定されることができる。例えば、所定の基本スケールファクタ値(T)は、16である。
【0145】
その以外の場合(現在ブロックが変換スキップブロックでない、且つ量子化行列を使用する場合)、符号化装置は、現在ブロック内の残余信号(または、変換係数)の位置に基づいてスケールファクタ(mij)を誘導する(S720)。
【0146】
このとき、スケールファクタ(m
ij)は、量子化行列を利用して現在ブロック内の残余信号(または、変換係数)の位置によって異なるように設定されることができ、
図7のステップS720に示す数式のように誘導されることができる。ステップS720に示す数式を介して誘導されるスケールファクタ(m
ij)は、
図6(ステップS620)での説明と同じであるため、ここでは説明を省略する。
【0147】
図6及び
図7を介して前述したように、現在ブロック(現在符号化または復号化対象ブロック)が変換スキップブロックの場合、現在ブロック内の係数(または、信号)の位置に関係なく現在ブロック(変換スキップブロック)に対して所定の値(T)を有するスケールファクタを適用した。このとき、本発明の実施例によるスケールファクタ値は、該当ブロックに適用される多様な符号化パラメータによって異なるように設定されることができる。
【0148】
一例として、該当ブロックに適用されるスケールファクタ値は、量子化行列の使用可否を示すパラメータ(例えば、scaling_list_enable_flag)値によって下記のように設定されることができる。
【0149】
-量子化行列を使用する場合(例えば、scaling_list_enable_flag==1)、基本スケールファクタ値は、‘T1’に設定(mij=T1)
【0150】
-量子化行列を使用しない場合(例えば、scaling_list_enable_flag==0)、基本スケールファクタ値は、‘T2’に設定(mij=T2)
【0151】
ここで、T1及び/またはT2値は、符号化器が決定してシグナリングしてもよく、予め決められた値を使用してもよい。ビットストリームを介してシグナリングされる場合、復号化器は、ビットストリームをパーシングしてT1及び/またはT2値を求めることができる。
【0152】
他の例として、該当ブロックに適用されるスケールファクタ値は、該当ブロックの信号に対する色相特性を誘導することができる情報(例えば、色相成分インデックスcIdx)値によって下記のように設定されることができる。色相成分インデックスcIdxは、その値によって輝度信号(Y信号)または色差信号(Cb信号またはCr信号)を示す。
【0153】
-例1:該当ブロックの信号が明るさ信号(輝度信号)であるかどうかによって基本スケールファクタ値を‘Ty’または‘Tc’に設定する。例えば、明るさ信号の場合、基本スケールファクタ値を‘Ty’に設定し、明るさ信号でない場合(色差信号の場合)、基本スケールファクタ値を‘Tc’に設定する。
【0154】
-例2:該当ブロックの色相成分別に基本スケールファクタ値を設定する。例えば、輝度信号(Y信号)の場合、基本スケールファクタ値を‘Ty’に設定し、色差信号がCb信号の場合、基本スケールファクタ値を‘Tcb’に設定し、色差信号がCr信号の場合、基本スケールファクタ値を‘Tcr’に設定する。
【0155】
ここで、Ty、Tc、Tcb及び/またはTcr値は、符号化器が決定してシグナリングしてもよく、予め決められた値を使用してもよい。ビットストリームを介してシグナリングされる場合、復号化器は、ビットストリームをパーシングしてTy、Tc、Tcb及び/またはTcr値を求めることができる。
【0156】
前述した本発明の実施例による符号化パラメータによって基本スケールファクタを決定する方法は、独立的に適用されてもよく、組み合わせて適用されてもよいが、同じ変換スキップブロックに対してはブロック(符号化または復号化対象ブロック)内の係数(または、信号)の位置に関係なく常に同じスケールファクタ値が適用されなければならない。
【0157】
前述した本発明の実施例を反映した変換係数のスケーリング過程(Scaling Process for transform coefficients)は、下記のように実行されることができる。
【0158】
変換係数のスケーリング過程
【0159】
ここでの入力は、下記の通りである。
【0160】
-現在変換ブロックの幅Width;nW
【0161】
-現在変換ブロックの高さHeight;nH
【0162】
-要素(element)cijを有する変換係数の配列;(nW×nH)array d
【0163】
-現在変換ブロックの変換スキップ適用可否情報
【0164】
-現在ブロックの輝度信号及び色差信号に対するインデックス;cIdx
【0165】
もし、cIdxが‘0’の場合、輝度信号を意味し、cIdxが‘1’であり、またはcIdxが‘2’の場合、色差信号を意味する。また、cIdxが‘1’の場合、色差信号でCbを意味し、cIdxが‘2’の場合、色差信号でCrを意味する。
【0166】
-量子化パラメータ;qP
【0167】
ここでの出力は、下記の通りである。
【0168】
-スケールされた変換係数に対する配列;(nW×nH)array dij
【0169】
変数log2TrSizeは、log2TrSize=(Log2(nW)+Log2(nH))>>1を介して誘導される。変数shiftは、cIdxによって異なるように誘導される。cIxが‘0’の場合(輝度信号の場合)、shift=BitDepthY+log2TrSize-5から誘導され、その以外の場合(色差信号の場合)、shift=BitDepthC+log2TrSize-5から誘導される。ここで、BitDepthYとBitDepthCは、現在映像に対するサンプルのビット数(例えば、8ビット)を意味する。
【0170】
スケーリング変数の配列levelScale[]は、以下の数式10の通りである。
【0171】
【0172】
スケールされた変換係数は、下記の過程を介して計算される。
【0173】
まず、スケールファクタmijは、下記の過程を介して誘導される。
【0174】
-もし、scaling_list_enable_flagが‘0’であり、または現在変換ブロックが変換スキップブロックの場合、mijは、以下の数式11のように誘導される。
【0175】
【0176】
-その以外の場合、mijは、以下の数式12のように誘導される。
【0177】
【0178】
ここで、SizeIDは、ブロックの大きさによって前述した表1を介して誘導され、RefMatrixID、そしてtrafoTypeは、以下の数式13及び数式14から各々誘導される。また、数式13において、scaling_list_pred_matrix_id_deltaは、ビットストリームのSPS(Sequence Parameter Set)を介してシグナリングされる。
【0179】
【0180】
【0181】
次に、スケールされた変換係数dijは、以下の数式15から誘導される。
【0182】
【0183】
一方、前記のように、スケーリング過程を介してスケールされた変換係数は、逆変換過程を実行する。このとき、変換スキップが適用された現在変換ブロックは、逆変換過程を実行せずに、下記のような‘shift’演算過程のみを実行する。
【0184】
1.もし、現在ブロックのcIdxが‘0’の場合(輝度信号の場合)、shift=13-BitDepthYであり、その以外の場合(色差信号の場合)、shift=13-BitDepthCである。
【0185】
2.残余ブロックに対する配列rij(i=0..(nW)-1,j=0..(nH)-1)は、下記のように設定する。
【0186】
もし、shiftが‘0’より大きい場合、rij=(dij+(1<<(shift-1)))>>shiftであり、その以外の場合、rij=(dij<<(-shift)である。
【0187】
ここで、dijは、スケールされた変換係数に対する配列であり、rijは、スケールされた変換係数を逆変換して求められた残余ブロックに対する配列を意味する。
【0188】
前述したスケールされた変換係数の逆変換過程を反映した実施例として、スケールされた変換係数のための変換過程(Transformation process for scaled transform coefficients)部分は、下記のように実行されることができる。
【0189】
スケールされた変換係数のための変換過程
【0190】
ここでの入力は、下記の通りである。
【0191】
-現在変換ブロックの幅Width;nW
【0192】
-現在変換ブロックの高さHeight;nH
【0193】
-要素(element)dijを有するスケールされた変換係数の配列;(nW×nH)array d
【0194】
-現在ブロックに対する変換スキップ適用可否情報
【0195】
-現在ブロックの輝度信号及び色差信号に対するインデックス;cIdx
【0196】
もし、cIdxが‘0’の場合、輝度信号を意味し、cIdxが‘1’であり、またはcIdxが‘2’の場合、色差信号を意味する。また、cIdxが‘1’の場合、色差信号でCbを意味し、cIdxが‘2’の場合、色差信号でCrを意味する。
【0197】
ここでの出力は、下記の通りである。
【0198】
-スケールされた変換係数を逆変換して求められた残余ブロックに対する配列;(nW×nH)array r
【0199】
現在ブロックに対する符号化モード(PredMode)が画面内予測モード(Intra)であり、Log2(nW*nH)値が‘4’であり、cIdx値が‘0’の場合、輝度信号の画面内予測方向モード(イントラ予測モード)によって、変数horizTrTypeとvertTrTypeは、以下の表3を介して求められる。もし、その以外の場合、変数horizTrTypeとvertTrTypeは、‘0’に設定する。
【0200】
表3は、イントラ予測モードによるhorizTrTypeとvertTrType値の一例を示す。
【0201】
【0202】
現在ブロックに対する残余信号は、下記のような順序に求められる。
【0203】
まず、もし、現在ブロックに対する変換スキップが適用された場合は、下記を適用する。
【0204】
1.もし、cIdxが‘0’の場合、shift=13-BitDepthYであり、その以外の場合、shift=13-BitDepthCである。
【0205】
2.残余ブロックに対する配列rij(i=0..(nW)-1,j=0..(nH)-1)は、下記のように設定する。
【0206】
-もし、shiftが‘0’より大きい場合、rij=(dij+(1<<(shift-1)))>>shiftであり、その以外の場合、rij=(dij<<(-shift)である。
【0207】
もし、現在ブロックに対する変換スキップが適用されない場合は、下記を適用する。
【0208】
1.変数horizTrTypeとvertTrType値を有してスケールされた変換係数に対する逆変換過程を実行する。まず、現在ブロックの大きさ(nW,nH)とスケールされた変換係数配列(nW×nH array d)、変数horizTrTypeの入力を受けて水平方向に1次元逆変換を実行することで、配列(nW×nH array e)を出力する。
【0209】
2.次に、配列(nW×nH array e)の入力を受けて配列(nW×nH array g)を以下の数式16のように誘導する。
【0210】
【0211】
3.次に、現在ブロックの大きさ(nW,nH)と配列(nW×nH array g)、変数vertTrTypeの入力を受けて垂直方向に1次元逆変換を実行する。
【0212】
4.次に、cIdxによって残余ブロックに対する配列(nW×nH)array rを以下の数式17のように設定する。
【0213】
【0214】
ここで、shiftは、cIdxが‘0’の場合、shift=20-BitDepthYであり、その以外の場合、shift=20-BitDepthC値を有する。BitDepthは、現在映像に対するサンプルのビット数(例えば、8ビット)を意味する。
【0215】
前述したような変換係数のスケーリング過程及びスケールされた変換係数のための変換過程を実行することによって、復元された残余ブロックを生成することができる。そして、復元された残余ブロックに、イントラ予測またはインター予測を介して生成された予測ブロックを加算することによって、復元ブロックを生成することができる。このとき、復元ブロックは、ループフィルタが適用されたブロックであってもよく、ループフィルタが適用されないブロックであってもよい。
【0216】
以下、本発明では、変換スキップブロックであるかどうかによって誘導される基本スケールファクタをシグナリングする方法を提供する。
【0217】
本発明の一実施例によると、変換スキップブロックであるかどうかによって誘導される基本スケールファクタは、SPS(Sequence Parameter Set)を介してシグナリングされることができる。
【0218】
表4は、本発明の一実施例による基本スケールファクタ情報をシグナリングするためのSPSシンタックスの一例を示す。
【0219】
【0220】
表4を参照すると、transform_skip_enabled_flagは、現在シーケンスに変換スキップアルゴリズムを使用するかどうかを示す。
【0221】
もし、変換スキップアルゴリズムが使われる場合、flat_scale_factor_y_minus16、flat_scale_factor_cb_minus16、flat_scale_factor_cr_minus16がシグナリングされる。ここで、この値は、正数または負数符号を有する形態で符号化(se(v))されることができる。または、この値は、0と正数符号を有する形態で符号化(ue(v))されることができる。
【0222】
flat_scale_factor_y_minus16は、輝度信号に対するスケールファクタを意味する。例えば、flat_scale_factor_y_minus16値が‘0’の場合、輝度信号に対するスケールファクタは、前記‘0’に‘16’を加えて‘16’値を有する。
【0223】
flat_scale_factor_cb_minus16は、色差信号Cbに対するスケールファクタを意味し、flat_scale_factor_cr_minus16は、色差信号Crに対するスケールファクタを意味する。
【0224】
これと関連して、輝度信号または色差信号に対するスケールファクタは、以下の数式18乃至数式20のように誘導されることができる。
【0225】
ここで、基本スケールファクタFlatScalingFactor[cIdx]は、輝度信号と色差信号に対するスケールファクタを格納している。例えば、色相成分インデックスcIdxが0の場合は輝度(Y)信号、1の場合はCb色差信号、2の場合はCr色差信号を指示することができる。また、FlatScalingFactor[cIdx]値は、任意の値の範囲を有することができ、一例として、8ビット信号の場合、‘-15’から‘255-16’の値を有することができる。
【0226】
輝度信号に対する基本スケールファクタは、数式18のように誘導されることができる。
【0227】
【0228】
Cb色差信号に対する基本スケールファクタは、数式19のように誘導されることができる。
【0229】
【0230】
Cr色差信号に対する基本スケールファクタは、数式20のように誘導されることができる。
【0231】
【0232】
前述した本発明の一実施例による変換スキップブロックであるかどうかによって誘導される基本スケールファクタをシグナリングする方法を反映することで、変換係数のスケーリング過程(Scaling Process for transform coefficients)を下記のように実行することができる。
【0233】
変換係数のスケーリング過程
【0234】
ここでの入力は、下記の通りである。
【0235】
-現在変換ブロックの幅Width;nW
【0236】
-現在変換ブロックの高さHeight;nH
【0237】
-要素(element)cijを有する変換係数の配列;(nW×nH)array d
【0238】
-現在変換ブロックの変換スキップ適用可否情報;transSkipFlag
【0239】
transSkipFlag値が1の場合、現在ブロックに変換スキップが適用されたことを示し、transSkipFlag値が0の場合、現在ブロックに変換スキップが適用されないことを示す。
【0240】
-現在ブロックの輝度信号及び色差信号に対するインデックス;cIdx
【0241】
もし、cIdxが‘0’の場合、輝度信号を意味し、cIdxが‘1’であり、またはcIdxが‘2’の場合、色差信号を意味する。また、cIdxが‘1’の場合、色差信号でCbを意味し、cIdxが‘2’の場合、色差信号でCrを意味する。
【0242】
-量子化パラメータ;qP
【0243】
ここでの出力は、下記の通りである。
【0244】
-スケールされた変換係数に対する配列;(nW×nH)array dij
【0245】
変数log2TrSizeは、log2TrSize=(Log2(nW)+Log2(nH))>>1を介して誘導される。変数shiftは、cIdxによって異なるように誘導される。cIxが‘0’の場合(輝度信号の場合)、shift=BitDepthY+log2TrSize-5から誘導され、その以外の場合(色差信号の場合)、shift=BitDepthC+log2TrSize-5から誘導される。ここで、BitDepthYとBitDepthCは、現在映像に対するサンプルのビット数(例えば、8ビット)を意味する。
【0246】
スケーリング変数の配列levelScale[]は、以下の数式21の通りである。
【0247】
【0248】
スケールされた変換係数は、下記の過程を介して計算される。
【0249】
まず、スケールファクタmijは、下記の過程を介して誘導される。
【0250】
-もし、scaling_list_enable_flagが‘0’の場合、mijは、以下の数式22のように誘導される。
【0251】
【0252】
-その以外の場合(即ち、scaling_list_enable_flagが‘1’の場合、mijは、以下の数式23のように誘導される。
【0253】
【0254】
ここで、SizeIDは、ブロックの大きさによって前述した表1を介して誘導され、RefMatrixID、そしてtrafoTypeは、以下の数式24及び数式25から各々誘導される。数式24において、scaling_list_pred_matrix_id_deltaは、ビットストリームのSPS(Sequence Parameter Set)を介してシグナリングされる。
【0255】
【0256】
【0257】
次に、スケールされた変換係数dijは、以下の数式26から誘導される。
【0258】
【0259】
一方、本発明の実施例による変換スキップブロックであるかどうかによって誘導される基本スケールファクタは、前述したSPSだけでなく、PPS(Picture Parameter Set)またはスライスヘッダ(SliceHeader)を介してシグナリングされることができる。また、CU単位またはTU単位にシグナリングされることもできる。
【0260】
前述したSPSでシグナリングされるflat_scale_factor_y_minus16、flat_scale_factor_cb_minus16、flat_scale_factor_cr_minus16値は、PPS(または、SliceHeader、CU、TU)で更新して使用することができる。
【0261】
表5は、本発明の他の実施例による基本スケールファクタ情報をシグナリングするためのPPSシンタックスの一例を示す。
【0262】
【0263】
表5を参照すると、transform_skip_enabled_flagは、現在映像に変換スキップアルゴリズムを使用するかどうかを示す。もし、変換スキップアルゴリズムが使われる場合、pps_flat_scaling_factor_present_flag値がシグナリングされる。
【0264】
例えば、もし、pps_flat_scaling_factor_present_flag値が‘0’の場合、前述したSPSで適用したflat_scale_factor_y_minus16、flat_scale_factor_cb_minus16、flat_scale_factor_cr_minus16を変換スキップブロックのためのスケールファクタとして使用する。それに対し、もし、pps_flat_scaling_factor_present_flag値が‘1’の場合、前述したSPSで適用したflat_scale_factor_y_minus16、flat_scale_factor_cb_minus16、flat_scale_factor_cr_minus16値を更新するために該当値がシグナリングされる。
【0265】
シグナリングされたflat_scale_factor_y_minus16、flat_scale_factor_cb_minus16、flat_scale_factor_cr_minus16値は、現在映像の変換スキップブロックに対するスケールファクタとして使われる。このとき、この値は、再変更されない時まで持続的に使われることができる。または、この値は、現在映像にのみ適用して使用し、次の映像ではSPSで使用したスケールファクタ値を適用することができる。
【0266】
ここで、flat_scale_factor_y_minus16、flat_scale_factor_cb_minus16、flat_scale_factor_cr_minus16は、正数または負数符号を有する形態で符号化(se(v))されることができる。または、この値は、0と正数符号を有する形態で符号化(ue(v))されることができる。
【0267】
flat_scale_factor_y_minus16、flat_scale_factor_cb_minus16、flat_scale_factor_cr_minus16値は、輝度信号及び色差信号毎に各々異なる値を有して各々シグナリングされることができる。例えば、flat_scale_factor_y_minus16値は輝度信号に対するスケールファクタ、flat_scale_factor_cb_minus16値はCb色差信号に対するスケールファクタ、flat_scale_factor_cr_minus16値はCr色差信号に対するスケールファクタをシグナリングするときに使われることができる。または、輝度信号に対するスケールファクタとしてflat_scale_factor_y_minus16、色差信号に対するスケールファクタとしてflat_scale_factor_cb_cr_minus16を利用してシグナリングすることもできる。または、輝度信号及び色差信号に対するスケールファクタとして一つの値flat_scale_factor_y_cb_cr_minus16を利用してシグナリングすることもできる。
【0268】
前述したように、SPSまたはPPSでシグナリングされるflat_scale_factor_y_minus16、flat_scale_factor_cb_minus16、flat_scale_factor_cr_minus16値は、SliceHeader(または、CU、TU)で更新して使用することができる。
【0269】
表6は、本発明の他の実施例による基本スケールファクタ情報をシグナリングするためのスライスヘッダ(SliceHeader)シンタックスの一例を示す。
【0270】
【0271】
表6を参照すると、transform_skip_enabled_flagは、現在スライスに変換スキップアルゴリズムを使用するかどうかを示す。もし、変換スキップアルゴリズムが使われる場合、flat_scaling_factor_override_flag値がシグナリングされる。
【0272】
例えば、もし、flat_scaling_factor_override_flag値が‘0’の場合、前述したSPSまたはPPSで適用したflat_scale_factor_y_minus16、flat_scale_factor_cb_minus16、flat_scale_factor_cr_minus16を変換スキップブロックのためのスケールファクタとして使用する。それに対し、もし、flat_scaling_factor_override_flag値が‘1’の場合、前述したSPSまたはPPSで適用したflat_scale_factor_y_minus16、flat_scale_factor_cb_minus16、flat_scale_factor_cr_minus16値を更新するために該当値がシグナリングされる。
【0273】
flat_scale_factor_y_delta、flat_scale_factor_cb_delta、flat_scale_factor_cr_delta値は、現在スライスの変換スキップブロックに対するスケールファクタとして使われる。
【0274】
ここで、flat_scale_factor_y_delta、flat_scale_factor_cb_delta、flat_scale_factor_cr_delta値は、正数または負数符号を有する形態で符号化(se(v))されることができる。または、この値は、0と正数符号を有する形態で符号化(ue(v))されることができる。
【0275】
flat_scale_factor_y_delta、flat_scale_factor_cb_delta、flat_scale_factor_cr_delta値は、輝度信号及び色差信号毎に各々異なる値を有して各々シグナリングされることができる。例えば、flat_scale_factor_y_delta値は輝度信号に対するスケールファクタ、flat_scale_factor_cb_delta値はCb色差信号に対するスケールファクタ、flat_scale_factor_cr_delta値はCr色差信号に対するスケールファクタをシグナリングするときに使われることができる。または、輝度信号に対するスケールファクタとしてflat_scale_factor_y_delta、色差信号に対するスケールファクタとしてflat_scale_factor_cb_cr_deltaを利用してシグナリングすることもできる。または、輝度信号及び色差信号に対するスケールファクタとして一つの値flat_scale_factor_y_cb_cr_deltaを利用してシグナリングすることもできる。
【0276】
前記のように、シグナリングされたflat_scale_factor_y_delta、flat_scale_factor_cb_delta、flat_scale_factor_cr_delta値を利用して以下の数式27乃至数式29のように基本スケールファクタを誘導することができる。
【0277】
ここで、基本スケールファクタFlatScalingFactor[cIdx]は、輝度信号と色差信号に対するスケールファクタを格納している。例えば、色相成分インデックスcIdxが0の場合は輝度(Y)信号、1の場合はCb色差信号、2の場合はCr色差信号を指示することができる。また、FlatScalingFactor[cIdx]値は、任意の値の範囲を有することができ、一例として、8ビット信号の場合‘-15’から‘255-16’の値を有することができる。
【0278】
輝度信号に対する基本スケールファクタは、flat_scale_factor_y_deltaを利用して数式27のように誘導されることができる。
【0279】
【0280】
Cb色差信号に対する基本スケールファクタは、flat_scale_factor_cb_deltaを利用して数式28のように誘導されることができる。
【0281】
【0282】
Cr色差信号に対する基本スケールファクタは、flat_scale_factor_cr_deltaを利用して数式29のように誘導されることができる。
【0283】
【0284】
一方、前述した実施例は、ブロック大きさまたはCU深さまたはTU深さによって適用範囲を異なるようにすることができる。このように適用範囲を決定する変数(例えば、ブロックの大きさまたは深さ情報)は、符号化器及び復号化器が予め決められた値を使用するように設定してもよく、プロファイルまたはレベルによって決められた値を使用するように設定してもよく、符号化器が変数値をビットストリームに記載すると、復号化器がビットストリームからこの値を求めて使用するように設定してもよい。
【0285】
CU深さによって適用範囲を異なるようにする時は、表7に例示したように、次の三つの方法が適用されることができる。方法Aは、与えられた深さ以上の深さにのみ適用する方式であり、方法Bは、与えられた深さ以下にのみ適用する方式であり、方法Cは、与えられた深さにのみ適用する方式である。
【0286】
表7は、CU(または、TU)深さによって本発明の方法を適用する範囲を決定する方法の一例を示す。表7において、‘O’表記は、CU(または、TU)の該当深さに該当方法を適用することを意味し、‘X’表記は、CU(または、TU)の該当深さに該当方法を適用しないことを意味する。
【0287】
【0288】
表7を参照すると、CU(または、TU)深さが2の場合、本発明の実施例に対して方法A、方法B、方法Cを全部適用することができる。
【0289】
CU(または、TU)の全ての深さに対して本発明の実施例を適用しない場合、任意の指示子(例えば、flag)を使用して表現することもでき、CU深さの最大値より一つ大きい値を、適用範囲を示すCU深さ値としてシグナリングすることで表現することもできる。
【0290】
また、前述したCU(または、TU)深さによって本発明の方法を適用する範囲を決定する方法は、輝度ブロックと色差ブロックの大きさによって異なるように適用することができ、また、輝度映像及び色差映像に異なるように適用することができる。
【0291】
表8は、輝度ブロック及び色差ブロックの大きさによって適用範囲を決定する方法の組合せを概略的に示す一例である。
【0292】
【0293】
表8の方法のうち、方法“ト1”をみると、輝度ブロックの大きさが8(8×8、8×4、2×8等)の場合、且つ色差ブロックの大きさが4(4×4、4×2、2×4)の場合、本発明の実施例1(ト1-実施例1)を輝度信号及び色差信号、並びに水平信号及び垂直信号に適用することができる。
【0294】
前述した実施例において、方法は、一連のステップまたはブロックで流れ図に基づいて説明されているが、本発明は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと、異なる順序にまたは同時に発生できる。また、当該技術分野において、通常の知識を有する者であれば、流れ図に示すステップが排他的でなく、他のステップが含まれ、または流れ図の一つまたはそれ以上のステップが本発明の範囲に影響を及ぼさずに削除可能であることを理解することができる。
【0295】
以上の説明は、本発明の技術思想を例示的に説明したものに過ぎず、本発明が属する技術分野において、通常の知識を有する者であれば、本発明の本質的な特性から外れない範囲で多様な修正及び変形が可能である。したがって、本発明に開示された実施例は、本発明の技術思想を限定するためのものではなく、説明するためのものであり、このような実施例により本発明の技術思想の範囲が限定されるものではない。本発明の保護範囲は、特許請求の範囲により解釈されなければならず、それと同等な範囲内にある全ての技術思想は、本発明の権利範囲に含まれると解釈されなければならない。