IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エルジー エレクトロニクス インコーポレイティドの特許一覧

特開2022-8491画像の符号化/復号方法及びそのための装置
<>
  • 特開-画像の符号化/復号方法及びそのための装置 図1
  • 特開-画像の符号化/復号方法及びそのための装置 図2
  • 特開-画像の符号化/復号方法及びそのための装置 図3
  • 特開-画像の符号化/復号方法及びそのための装置 図4
  • 特開-画像の符号化/復号方法及びそのための装置 図5
  • 特開-画像の符号化/復号方法及びそのための装置 図6
  • 特開-画像の符号化/復号方法及びそのための装置 図7
  • 特開-画像の符号化/復号方法及びそのための装置 図8
  • 特開-画像の符号化/復号方法及びそのための装置 図9
  • 特開-画像の符号化/復号方法及びそのための装置 図10
  • 特開-画像の符号化/復号方法及びそのための装置 図11
  • 特開-画像の符号化/復号方法及びそのための装置 図12
  • 特開-画像の符号化/復号方法及びそのための装置 図13
  • 特開-画像の符号化/復号方法及びそのための装置 図14
  • 特開-画像の符号化/復号方法及びそのための装置 図15
  • 特開-画像の符号化/復号方法及びそのための装置 図16
  • 特開-画像の符号化/復号方法及びそのための装置 図17
  • 特開-画像の符号化/復号方法及びそのための装置 図18
  • 特開-画像の符号化/復号方法及びそのための装置 図19
  • 特開-画像の符号化/復号方法及びそのための装置 図20
  • 特開-画像の符号化/復号方法及びそのための装置 図21
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022008491
(43)【公開日】2022-01-13
(54)【発明の名称】画像の符号化/復号方法及びそのための装置
(51)【国際特許分類】
   H04N 19/129 20140101AFI20220105BHJP
   H04N 19/176 20140101ALI20220105BHJP
   H04N 19/157 20140101ALI20220105BHJP
   H04N 19/18 20140101ALI20220105BHJP
【FI】
H04N19/129
H04N19/176
H04N19/157
H04N19/18
【審査請求】有
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021153969
(22)【出願日】2021-09-22
(62)【分割の表示】P 2019556231の分割
【原出願日】2018-03-13
(31)【優先権主張番号】62/484,900
(32)【優先日】2017-04-13
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】502032105
【氏名又は名称】エルジー エレクトロニクス インコーポレイティド
【氏名又は名称原語表記】LG ELECTRONICS INC.
【住所又は居所原語表記】128, Yeoui-daero, Yeongdeungpo-gu, 07336 Seoul,Republic of Korea
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100165191
【弁理士】
【氏名又は名称】河合 章
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100159259
【弁理士】
【氏名又は名称】竹本 実
(72)【発明者】
【氏名】ク ムンモ
(72)【発明者】
【氏名】キム ソンファン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MA23
5C159MC11
5C159ME01
5C159TA42
5C159TB07
5C159TB08
5C159TC26
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
【課題】変換(transform)された残差信号を符号化/復号することを提案する。
【解決手段】本発明では、画像の符号化/復号方法及びそのための装置が開示される。具体的には、画像を符号化する方法であって、現在ブロックの残差信号(residual signal)に対して変換(transform)及び量子化(quantization)を行うことにより量子化された変換ブロックを生成する段階と、上記量子化された変換ブロックを複数の係数グループ(coefficient group)に分割する段階と、上記係数グループの係数(coefficient)間のスキャン順序(scan order)を示す第1スキャン順序を決定する段階と、上記第1スキャン順序と、上記複数の係数グループ間のスキャン順序を示す第2スキャン順序と、に従って上記量子化された変換ブロックの係数をエントロピエンコードする段階と、を有する。
【選択図】図1
【特許請求の範囲】
【請求項1】
画像を符号化する方法であって、
現在処理ブロックに対して変換(transform)及び量子化(quantization)を行うことにより変換ブロックを生成する段階と、
前記変換ブロックが非正方形ブロック(non-square block)であることに基づいて、前記変換ブロックをサブブロックに分割する段階であって、前記サブブロックは、非正方形サブブロックを有する段階と、
第1スキャン順序(scan order)及び第2スキャン順序に基づいて、前記変換ブロックの係数をエントロピエンコードする段階であって、前記第1スキャン順序は、前記非正方形サブブロックの係数(coefficient)間のスキャン順序を示し、前記第2スキャン順序は、前記サブブロック間のスキャン順序を示す段階と、を有し、
前記非正方形サブブロックの係数の個数は、前記現在処理ブロックの幅及び高さに基づいて決定される、画像符号化方法。
【請求項2】
前記第1スキャン順序は、
前記非正方形サブブロックの左上端係数の位置に基づいて、前記非正方形サブブロック内の係数の距離値を決定する段階と、
前記距離値を順次増加させながら同一の距離値を有する係数に予め定められた順序に従ってスキャンインデックス(scan index)を割り当てる段階と、を有する段階に基づいて決定される、請求項1に記載の画像符号化方法。
【請求項3】
前記非正方形サブブロック内の係数の距離値を決定する段階は、
前記非正方形サブブロックの幅(width)と高さ(height)との比率に基づいて、各係数の水平方向における座標値の増加量を示す水平方向増分と垂直方向における座標値の増加量を示す垂直方向増分とを決定する段階を有し、
前記係数の距離値は、前記水平方向増分と前記垂直方向増分とを合わせた値を利用して決定される、請求項2に記載の画像符号化方法。
【請求項4】
前記非正方形サブブロックの幅が高さより大きいことに基づいて、前記水平方向増分は1に決定され、前記垂直方向増分は2に決定され、
前記非正方形サブブロックの高さが幅より大きいことに基づいて、前記水平方向増分は2に決定され、前記垂直方向増分は1に決定される、請求項3に記載の画像符号化方法。
【請求項5】
前記変換ブロックをサブブロックに分割する段階は、
前記変換ブロックを階層的に分割することにより、前記分割された変換ブロックを下位の深さ(lower depth)を有するサブブロックに分割する段階を有し、
前記第2スキャン順序は、前記変換ブロックからの各深さを有するサブブロック間のスキャン順序を有する、請求項1に記載の画像符号化方法。
【請求項6】
前記変換ブロックが非正方形ブロックであることに基づいて、前記変換ブロックは、サブブロックに分割され、
前記サブブロックは、特定個数の係数を有し、
前記特定個数は、前記変換ブロックの幅(width)と高さ(height)との比率に基づいて決定される、請求項1に記載の画像符号化方法。
【請求項7】
画像を復号する方法であって、
現在処理ブロックが非正方形ブロック(non-square block)であることに基づいて、前記現在処理ブロックをサブブロックに分割する段階であって、前記サブブロックは、非正方形サブブロックを有する段階と、
第1スキャン順序(scan order)及び第2スキャン順序に基づいて、前記現在処理ブロックに対する変換ブロックを取得する段階であって、前記第1スキャン順序は、前記非正方形サブブロックの係数(coefficient)間のスキャン順序を示し、前記第2スキャン順序は、前記サブブロック間のスキャン順序を示す段階と、を有し、
前記非正方形サブブロックの係数の個数は、前記現在処理ブロックの幅及び高さに基づいて決定される、画像復号方法。
【請求項8】
前記第1スキャン順序は、
前記非正方形サブブロックの左上端係数の位置に基づいて、前記非正方形サブブロック内の係数の距離値を決定する段階と、
前記距離値を順次増加させながら同一の距離値を有する係数に予め定められた順序に従ってスキャンインデックス(scan index)を割り当てる段階と、を有する段階に基づいて決定される、請求項7に記載の画像復号方法。
【請求項9】
前記非正方形サブブロック内の係数の距離値を決定する段階は、
前記非正方形サブブロックの幅(width)と高さ(height)との比率に基づいて、各係数の水平方向における座標値の増加量を示す水平方向増分と垂直方向における座標値の増加量を示す垂直方向増分とを決定する段階を有し、
前記係数の距離値は、前記水平方向増分と前記垂直方向増分とを合わせた値を利用して決定される、請求項8に記載の画像復号方法。
【請求項10】
前記非正方形サブブロックの幅が高さより大きいことに基づいて、前記水平方向増分は1に決定され、前記垂直方向増分は2に決定され、
前記非正方形サブブロックの高さが幅より大きいことに基づいて、前記水平方向増分は2に決定され、前記垂直方向増分は1に決定される、請求項9に記載の画像復号方法。
【請求項11】
前記現在処理ブロックをサブブロックに分割する段階は、
前記現在処理ブロックを階層的に分割することにより、前記分割された現在処理ブロックを下位の深さ(lower depth)を有するサブブロックに分割する段階を有し、
前記第2スキャン順序は、前記現在処理ブロックからの各深さを有するサブブロック間のスキャン順序を有する、請求項7に記載の画像復号方法。
【請求項12】
前記現在処理ブロックが非正方形ブロックであることに基づいて、前記現在処理ブロックは、サブブロックに分割され、
前記サブブロックは、特定個数の係数を有し、
前記特定個数は、前記現在処理ブロックの幅(width)と高さ(height)との比率に基づいて決定される、請求項7に記載の画像復号方法。
【請求項13】
画像を復号する装置であって、
現在処理ブロックが非正方形ブロック(non-square block)であることに基づいて、前記現在処理ブロックをサブブロックに分割し、前記サブブロックは、非正方形サブブロックを有し、
第1スキャン順序(scan order)及び第2スキャン順序に基づいて、前記現在処理ブロックに対する変換ブロックを取得し、前記第1スキャン順序は、前記非正方形サブブロックの係数(coefficient)間のスキャン順序を示し、前記第2スキャン順序は、前記サブブロック間のスキャン順序を示す、ように構成されるプロセッサを有し、
前記非正方形サブブロックの係数の個数は、前記現在処理ブロックの幅及び高さに基づいて決定される、画像復号装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、静止画又は動画処理方法に関し、より詳細には、変換(transform)された残差信号(residual signal)を符号化/復号する方法及びそれをサポートする装置に関する。
【背景技術】
【0002】
圧縮符号化とは、デジタル化した情報を通信回線を介して送信したり、記憶媒体に適した形態で記憶する一連の信号処理技術を意味する。画像、イメージ、音声等のメディアが圧縮符号化の対象となることができ、特に、画像を対象として圧縮符号化を行う技術をビデオ画像圧縮と称する。
【0003】
次世代ビデオコンテンツは、高解像度(high spatial resolution)、高フレームレート(high frame rate)、及び画像表現の高次元化(high dimensionality of scene representation)という特徴を有するようになるであろう。そのようなコンテンツを処理するためには、記憶保持(memory storage)、メモリアクセスレート(memory access rate)、及び処理電力(processing power)の側面で莫大な増加を有してくるであろう。
【0004】
したがって、次世代ビデオコンテンツをより効率的に処理するためのコーディングツールをデザインする必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の目的は、変換(transform)された残差信号を符号化/復号することを提案することにある。
【0006】
また、本発明の目的は、残差信号に対するエントロピコーディングを行うために、変換ブロックから分割された係数グループ間のスキャン順序(scan order)を設定する方法を提案することにある。
【0007】
また、本発明の目的は、残差信号に対するエントロピコーディングを行うために、変換ブロックから分割された係数グループ内の係数のスキャン順序(scan order)を設定する方法を提案することにある。
【0008】
本発明において達成しようとする技術的課題は、以上で言及した技術的課題に制限されず、言及していないさらに他の技術的課題は、下記の記載から本発明の属する技術分野における通常の知識を有する者に明確に理解され得るであろう。
【課題を解決するための手段】
【0009】
本発明の一態様は、画像を符号化する方法であって、現在処理ブロックの残差信号(residual signal)に対して変換(transform)及び量子化(quantization)を行うことにより量子化された変換ブロックを生成する段階と、量子化された変換ブロックを複数の係数グループ(coefficient group)に分割する段階と、係数グループの係数(coefficient)間のスキャン順序(scan order)を示す第1スキャン順序を決定する段階と、第1スキャン順序と、複数の係数グループ間のスキャン順序を示す第2スキャン順序と、に従って量子化された変換ブロックの係数をエントロピエンコードする段階と、を有する。
【0010】
好ましくは、第1スキャン順序を決定する段階は、係数グループの左上端係数を基準とする係数グループの各係数の距離値を決定する段階と、距離値を順次増加させながら同一の距離値を有する係数に予め定められた順序に従ってスキャンインデックス(scan index)を割り当てる段階と、を有してもよい。
【0011】
好ましくは、係数グループの各係数の距離値を決定する段階は、係数グループが非正方形ブロックである場合、係数グループの幅(width)と高さ(height)との比率に基づいて、各係数の水平方向における座標値の増加量を示す水平方向増分と垂直方向における座標値の増加量を示す垂直方向増分とを決定する段階を有し、各係数の距離値は、水平方向増分と垂直方向増分とを合わせた値を利用して決定されてもよい。
【0012】
好ましくは、係数グループの幅が高さより大きい場合、水平方向増分は1に決定され、垂直方向増分は2に決定され、係数グループの高さが幅より大きい場合、水平方向増分は2に決定され、垂直方向増分は1に決定されてもよい。
【0013】
好ましくは、複数の係数グループに分割する段階は、量子化された変換ブロックを階層的に分割することにより下位の深さ(lower depth)を有する係数グループに分割する段階を有し、第2スキャン順序は、量子化された変換ブロックから分割された各深さの係数グループ間のスキャン順序を有してもよい。
【0014】
好ましくは、量子化された変換ブロックが非正方形ブロックである場合、量子化された変換ブロックは、特定個数の係数で構成される係数グループに分割され、特定個数は、量子化された変換ブロックの幅(width)と高さ(height)との比率によって決定されてもよい。
【0015】
本発明の他の一態様は、画像を復号する方法であって、現在処理ブロックを複数の係数グループ(coefficient group)に分割する段階と、係数グループの係数(coefficient)間のスキャン順序(scan order)を示す第1スキャン順序を決定する段階と、エンコーダから出力されたビットストリームをエントロピデコードすることにより量子化された変換係数を生成する段階と、第1スキャン順序と、複数の係数グループ間のスキャン順序を示す第2スキャン順序と、に従って量子化された変換係数を配置することにより、現在処理ブロックの量子化された変換ブロックを生成する段階と、を有してもよい。
【0016】
本発明の他の一態様は、第1スキャン順序を決定する段階は、係数グループの左上端係数を基準とする係数グループの各係数の距離値を決定する段階と、距離値を順次増加させながら同一の距離値を有する係数に予め定められた順序に従ってスキャンインデックス(scan index)を割り当てる段階と、を有してもよい。
【0017】
好ましくは、係数グループの各係数の距離値を決定する段階は、係数グループが非正方形ブロックである場合、係数グループの幅(width)と高さ(height)との比率に基づいて、各係数の水平方向における座標値の増加量を示す水平方向増分と垂直方向における座標値の増加量を示す垂直方向増分とを決定する段階を有し、各係数の距離値は、水平方向増分と垂直方向増分とを合わせた値を利用して決定されてもよい。
【0018】
好ましくは、係数グループの幅が高さより大きい場合、水平方向増分は1に決定され、垂直方向増分は2に決定され、係数グループの高さが幅より大きい場合、水平方向増分は2に決定され、垂直方向増分は1に決定されてもよい。
【0019】
好ましくは、複数の係数グループに分割する段階は、現在処理ブロックを階層的に分割することにより下位の深さ(lower depth)を有する係数グループに分割する段階を有し、第2スキャン順序は、現在処理ブロックから分割された各深さの係数グループ間のスキャン順序を有してもよい。
【0020】
好ましくは、現在処理ブロックが非正方形ブロックである場合、現在処理ブロックは、特定個数の係数で構成される係数グループに分割され、特定個数は、現在処理ブロックの幅(width)と高さ(height)との比率によって決定されてもよい。
【0021】
本発明の他の一態様は、画像を復号する装置であって、現在処理ブロックを複数の係数グループ(coefficient group)に分割する係数グループ分割部と、係数グループの係数(coefficient)間のスキャン順序(scan order)を示す第1スキャン順序を決定するスキャン順序決定部と、エンコーダから出力されたビットストリームをエントロピデコードすることにより量子化された変換係数を生成する変換係数生成部と、第1スキャン順序と、複数の係数グループ間のスキャン順序を示す第2スキャン順序と、に従って量子化された変換係数を配置することにより、現在処理ブロックの量子化された変換ブロックを生成する変換ブロック生成部と、を有する。
【発明の効果】
【0022】
本発明の実施形態によると、静止画又は動画の符号化のときに残差信号の量を節約することができる。
【0023】
また、本発明の実施形態によると、残差信号の量を節約することにより符号化/復号効率を向上させることができる。
【0024】
また、本発明の実施形態によると、変換係数のスキャン順序(scan order)を効率的に設定することにより、変換係数のコーディングに必要なデータ量を減らすことができる。
【0025】
また、本発明の実施形態によると、非正方形ブロック形態を考慮して変換係数のスキャン順序(scan order)を設定することにより変換係数のコーディングに必要なデータ量を減らし、圧縮性能を向上させることができる。
【0026】
本発明で得ることができる効果は、以上で言及した効果に制限されず、言及しない更に他の効果は、以下の記載から本発明が属する技術分野で通常の知識を有する者に明確に理解できるはずである。
【図面の簡単な説明】
【0027】
図1】本発明が適用される実施形態であって、静止画又は動画信号のエンコードが行われるエンコーダの概略ブロック図である。
図2】本発明が適用される実施形態であって、静止画又は動画信号のエンコードが行われるデコーダの概略ブロック図である。
図3】本発明に適用できるコーディングユニットの分割構造を説明する図である。
図4】本発明に適用できる予測ユニットを説明する図である。
図5】本発明が適用されることができる実施形態であって、残差信号を符号化する方法を例示する図である。
図6】本発明が適用されることができる実施形態であって、残差信号を復号する方法を例示する図である。
図7】本発明が適用される実施形態であって、係数グループ単位で変換係数をスキャンする方法を例示する図である。
図8】本発明が適用される実施形態であって、係数グループ別の変換係数のスキャン順序を例示する図である。
図9】本発明が適用される実施形態であって、変換ブロックの分割構造及び変換係数のスキャン順序を決定する方法を説明する図である。
図10】本発明が適用される実施形態であって、変換ブロックの分割構造及び変換係数のスキャン順序を決定する方法を説明する図である。
図11】本発明が適用される実施形態であって、ブロック内の係数の位置を表現した一例を示す図である。
図12】本発明の一実施形態によるブロック内の変換係数の位置によるスキャン順序を例示する図である。
図13】本発明の一実施形態によるブロック内の変換係数の位置によるスキャン順序を例示する図である。
図14】本発明が適用される実施形態であって、非正方形ブロックの係数に対するスキャン順序を決定する方法を説明する図である。
図15】本発明が適用される実施形態であって、非正方形ブロックの係数に対するスキャン順序を決定する方法を説明する図である。
図16】本発明が適用される実施形態であって、スーパーピクセル(super-pixel)単位で非正方形ブロックの係数に対するスキャン順序を決定する方法を説明する図である。
図17】本発明が適用される実施形態であって、スーパーピクセル(super-pixel)単位で非正方形ブロックの係数に対するスキャン順序を決定する方法を説明する図である。
図18】本発明が適用される実施形態であって、係数グループに対するスキャン順序を決定する方法を例示する図である。
図19】本発明の一実施形態による画像の符号化方法を例示する図である。
図20】本発明の一実施形態による画像の復号方法を例示する図である。
図21】本発明の一実施形態による画像の復号装置を例示する図である。
【発明を実施するための形態】
【0028】
本発明に関する理解を助けるために、詳細な説明の一部として含まれる添付図面は、本発明に対する実施形態を提供し、詳細な説明とともに本発明の技術的特徴を説明する。
【0029】
以下、本発明に係る好ましい実施形態を、添付された図面を参照して詳細に説明する。添付された図面とともに以下に開示される詳細な説明は、本発明の例示的な実施形態を説明しようとするものであり、本発明が実施され得る唯一の実施形態を表そうとするものではない。以下の詳細な説明は、本発明の完全な理解を提供するために具体的な細部事項を含む。しかしながら、当業者は、本発明がこのような具体的な細部事項がなくとも実施され得ることが分かる。
【0030】
いくつかの場合、本発明の概念が曖昧になることを避けるために、公知の構造及び装置は、省略されるか、各構造及び装置の中核機能を中心としたブロック図形式で図示されることができる。
【0031】
合わせて、本発明で使用される用語は、なるべく現在広く使用される一般的な用語を選択したが、特定の場合は、出願人が任意に選定した用語を使用して説明する。そのような場合には、当該部分の詳細説明でその意味を明確に記載するので、本発明の説明で使用された用語の名称だけで単純に解釈されてはならず、その当該用語の意味まで把握して解釈されなければならないことを明かしておく。
【0032】
以下の説明で使用される特定用語等は、本発明の理解を助けるために提供されたものであって、このような特定用語の使用は、本発明の技術的思想を逸脱しない範囲で他の形態に変更されることができる。例えば、信号、データ、サンプル、ピクチャ、フレーム、ブロックなどの場合、各コーディング過程(処理)で適宜代替されて解釈され得るであろう。
【0033】
以下、本明細書において「ブロック」又は「ユニット」は、予測、変換及び/又は量子化などのエンコード/デコードの過程が行われる単位を意味し、サンプル(又は、画素、ピクセル)の多次元配列で構成されることができる。
【0034】
「ブロック」又は「ユニット」は、輝度(luma)成分に対するサンプルの多次元配列を意味することができ、色差(chroma)成分に対するサンプルの多次元配列を意味することもできる。また、輝度(luma)成分に対するサンプルの多次元配列と色差(chroma)成分に対するサンプルの多次元配列とを全て含んで通称することもできる。
【0035】
例えば、「ブロック」又は「ユニット」は、エンコード/デコードの実行対象になるサンプルの配列を意味するコーディングブロック(CB:Coding Block)、複数のコーディングブロックで構成されるコーディングツリーブロック(CTB:Coding Tree Block)、同じ予測が適用されるサンプルの配列を意味する予測ブロック(PB:Prediction Block)(又は、予測ユニット(PU:Prediction Unit))、同じ変換が適用されるサンプルの配列を意味する変換ブロック(TB:Transform Block)(又は、変換ユニット(TU:Transform Unit))を全て含む意味として解釈されることができる。
【0036】
また、本明細書で別の言及がない限り、「ブロック」又は「ユニット」は、輝度(luma)成分及び/又は色差(chroma)成分に対するサンプルの配列をエンコード/デコードする過程で利用されるシンタックス構造(syntax structure)を含む意味として解釈されることができる。ここで、シンタックス構造は、特定の順序でビットストリーム内に存在する0又はそれ以上のシンタックス要素(syntax element)を意味し、シンタックス要素は、ビットストリーム内で表現されるデータの要素を意味する。
【0037】
例えば、「ブロック」又は「ユニット」は、コーディングブロックCBと当該コーディングブロックCBのエンコードのために利用されるシンタックス構造とを含むコーディングユニット(CU:Coding Unit)、複数のコーディングユニットで構成されるコーディングツリーユニット(CU:Coding Tree Unit)、予測ブロックPBと当該予測ブロックPBの予測のために利用されるシンタックス構造とを含む予測ユニット(PU:Prediction Unit)、変換ブロックTBと当該変換ブロックTBの変換のために利用されるシンタックス構造とを含む変換ユニット(TU:Transform Unit)を全て含む意味として解釈されることができる。
【0038】
また、本明細書で「ブロック」又は「ユニット」は、必ずしも正方形又は長方形の形態のサンプル(又は、画素、ピクセル)の配列に限定されるものではなく、3個以上の頂点を有する多角形の形態のサンプル(又は、画素、ピクセル)の配列を意味することもできる。この場合、ポリゴン(Polygon)ブロック又はポリゴンユニットに呼ばれることもできる。
【0039】
図1は、本発明が適用される実施形態であって、静止画又は動画信号のエンコードが行われるエンコーダの概略ブロック図を示す。
【0040】
図1に示すように、エンコーダ100は、画像分割部110、減算器115、変換部120、量子化部130、逆量子化部140、逆変換部150、フィルタリング部160、復号ピクチャバッファ(DPB:Decoded Picture Buffer)170、予測部180、及びエントロピエンコード部190を備えて構成されることができる。そして、予測部180は、インター予測部181、イントラ予測部182を備えて構成されることができる。
【0041】
画像分割部110は、エンコーダ100に入力された入力画像信号(Input video signal)(又は、ピクチャ、フレーム)を1つ又は複数のブロックに分割する。
【0042】
減算器115は、入力画像信号から、予測部180(すなわち、インター予測部181又はイントラ予測部182)から出力された、予測された信号(predicted signal)(又は、予測されたブロック(predicted block))を減算して、差分信号(residual signal)(又は、差分ブロック)を生成する。生成された差分信号(又は、差分ブロック)は、変換部120に送信される。
【0043】
変換部120は、差分信号(又は、差分ブロック)に変換技法(例えば、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、GBT(Graph-Based Transform)、KLT(Karhunen-Loeve transform)等)を適用して変換係数(transform coefficient)を生成する。このとき、変換部120は、差分ブロックに適用された予測モード及び差分ブロックのサイズに応じて決定された変換技法を利用して変換を行うことにより、変換係数を生成することができる。
【0044】
量子化部130は、変換係数を量子化してエントロピエンコード部190に送信し、エントロピエンコード部190は、量子化された信号(quantized signal)をエントロピエンコードしてビットストリームに出力する。
【0045】
一方、量子化部130から出力された量子化された信号(quantized signal)は、予測信号を生成するために用いられることができる。例えば、量子化された信号(quantized signal)は、ループ内の逆量子化部140及び逆変換部150を介して逆量子化及び逆変換を適用することによって、差分信号を復元することができる。復元された差分信号をインター予測部181又はイントラ予測部182から出力された予測信号(prediction signal)に足すことにより、復元信号(reconstructed signal)(又は、復元ブロック)が生成され得る。
【0046】
一方、上記のような圧縮過程で隣接するブロックが互いに異なる量子化パラメータにより量子化されることで、ブロック境界が見える劣化が発生し得る。このような現象をブロックアーチファクト(blocking artifacts)といい、これは、画質を評価する重要な要素のうちの1つである。このような劣化を減らすために、フィルタリング過程を行うことができる。このようなフィルタリング過程を介してブロックアーチファクトを除去するとともに、現在ピクチャに対する誤差を減らすことにより、画質を向上させることができる。
【0047】
フィルタリング部160は、復元信号にフィルタリングを適用して、これを再生装置に出力するか、復号ピクチャバッファ170に送信する。復号ピクチャバッファ170に送信されたフィルタリングされた信号は、インター予測部181で参照ピクチャとして使用されることができる。このように、フィルタリングされたピクチャを画面間予測モードで参照ピクチャとして用いることにより、画質だけでなく、符号化効率も向上させることができる。
【0048】
復号ピクチャバッファ170は、フィルタリングされたピクチャをインター予測部181における参照ピクチャとして使用するために記憶することができる。
【0049】
インター予測部181は、復元ピクチャ(reconstructed picture)を参照して時間的冗長性及び/又は空間的冗長性を除去するために、時間的予測及び/又は空間的予測を行う。
【0050】
ここで、予測を行うために用いられる参照ピクチャは、以前の時間にブロック単位で符号化/復号された信号であるため、ブロックアーチファクト(blocking artifact)やリングアーチファクト(ringing artifact)が存在し得る。
【0051】
したがって、インター予測部181は、このような信号の不連続や量子化による性能低下を解決するために又は動き予測の精密度の向上のために、ローパスフィルタ(lowpass filter)を適用することによりピクセル間の信号をサブピクセル単位で補間することができる。ここで、サブピクセルは、補間フィルタを適用して生成された仮想の画素を意味し、整数ピクセルは、復元されたピクチャに存在する実際の画素を意味する。補間方法としては、線形補間、双線形補間(bi-linear interpolation)、ウィナーフィルタ(wiener filter)などが適用され得る。
【0052】
補間フィルタは、復元ピクチャ(reconstructed picture)に適用されて、予測の精密度を向上させることができる。例えば、インター予測部181は、整数ピクセルに補間フィルタを適用して補間ピクセルを生成し、補間ピクセル(interpolated pixels)で構成された補間ブロック(interpolated block)を使用して予測を行うことができる。
【0053】
イントラ予測部182は、現在符号化を進行しようとするブロックの周辺にあるサンプルを参照して現在ブロックを予測する。イントラ予測部182は、イントラ予測を行うために、次のような過程を行うことができる。まず、予測信号を生成するために必要な参照サンプルを用意することができる。そして、用意された参照サンプルを用いて予測された信号(予測されたブロック)を生成できる。その後、予測モードを符号化する。このとき、参照サンプルは、参照サンプルパディング及び/又は参照サンプルフィルタリングを介して用意されることができる。参照サンプルは、予測及び復元過程を経ているので、量子化エラーが存在し得る。したがって、このようなエラーを減らすために、イントラ予測に用いられる各予測モードに対して参照サンプルフィルタリング過程が行われ得る。
【0054】
インター予測部181又は上記イントラ予測部182を介して生成された、予測された信号(predicted signal)(又は、予測されたブロック)は、復元信号(又は、復元ブロック)を生成するために用いられるか、差分信号(又は、差分ブロック)を生成するために用いられることができる。
【0055】
図2は、本発明が適用される実施形態であって、静止画又は動画信号のエンコード(デコード)が行われるデコーダの概略ブロック図を示す。
【0056】
図2に示すように、デコーダ200は、エントロピデコード部210、逆量子化部220、逆変換部230、加算器235、フィルタリング部240、復号ピクチャバッファ(DPB:Decoded Picture Buffer Unit)250、予測部260を備えて構成されることができる。そして、予測部260は、インター予測部261及びイントラ予測部262を備えて構成されることができる。
【0057】
そして、デコーダ200を介して出力された復元画像信号(reconstructed video signal)は、再生装置を介して再生されることができる。
【0058】
デコーダ200は、図1のエンコーダ100から出力された信号(すなわち、ビットストリーム)を受信し、受信した信号は、エントロピデコード部210を介してエントロピデコードされる。
【0059】
逆量子化部220では、量子化ステップサイズ情報を利用してエントロピデコードされた信号から変換係数(transform coefficient)を取得する。
【0060】
逆変換部230では、逆変換技法を適用して変換係数を逆変換して差分信号(residual signal)(又は、差分ブロック)を取得する。
【0061】
加算器235は、取得された差分信号(又は、差分ブロック)を、予測部260(すなわち、インター予測部261又はイントラ予測部262)から出力された、予測された信号(predicted signal)(又は、予測されたブロック)に足すことにより、復元信号(reconstructed signal)(又は、復元ブロック)を生成する。
【0062】
フィルタリング部240は、復元信号(reconstructed signal)(又は、復元ブロック)にフィルタリングを適用して、これを再生装置に出力するか、復号ピクチャバッファ部250に送信する。復号ピクチャバッファ部250に送信されたフィルタリングされた信号は、インター予測部261で参照ピクチャとして使用されることができる。
【0063】
本明細書において、エンコーダ100のフィルタリング部160、インター予測部181、及びイントラ予測部182で説明された実施形態は、各々デコーダのフィルタリング部240、インター予測部261、及びイントラ予測部262にも同様に適用されることができる。
【0064】
ブロック分割構造
【0065】
一般に、静止画又は動画圧縮技術(例えば、HEVC)では、ブロックベースの画像圧縮方法を利用する。ブロックベースの画像圧縮方法は、画像を特定ブロック単位に分けて処理する方法であって、メモリの使用及び演算量を減少させることができる。
【0066】
図3は、本発明に適用され得るコーディングユニットの分割構造を説明する図である。
【0067】
エンコーダは、1つの画像(又は、ピクチャ)を四角形の形態のコーディングツリーユニット(CTU:Coding Tree Unit)単位に分割する。そして、ラスタスキャン順序(raster scan order)に従って1つのCTUずつ順次エンコードする。
【0068】
HEVCにおけるCTUのサイズは、64×64、32×32、16×16のうち、いずれか1つに決められることができる。エンコーダは、入力された画像の解像度又は入力された画像の特性などによって、CTUのサイズを選択して使用することができる。CTUは、輝度(luma)成分に対するコーディングツリーブロック(CTB:Coding Tree Block)と、これに対応する2つの色差(chroma)成分に対するCTBと、を含む。
【0069】
1つのCTUは、クアッドツリー(Quad-tree)構造に分割されることができる。すなわち、1つのCTUは、正方形の形態を有しながら半分の水平サイズ(half horizontal size)及び半分の垂直サイズ(half vertical size)を有する4個のユニットに分割されて、コーディングユニット(CU:Coding Unit)が生成され得る。このようなクアッドツリー構造の分割は、再帰的に行われることができる。すなわち、CUは、1つのCTUからクアッドツリー構造で階層的に分割される。
【0070】
CUは、入力画像の処理過程、例えば、イントラ(intra)/インター(inter)予測が行われるコーディングの基本単位を意味する。CUは、輝度(luma)成分に対するコーディングブロック(CB:Coding Block)と、これに対応する2つの色差(chroma)成分に対するCBと、を含む。HEVCにおけるCUのサイズは、64×64、32×32、16×16、8×8のうち、いずれか1つに決められることができる。
【0071】
図3に示すように、クアッドツリーのルートノード(root node)は、CTUと関連する(関連付けられる)。クアッドツリーは、リーフノード(leaf node)に到達するまで分割され、リーフノードは、CUに該当(対応)する。
【0072】
より具体的に説明すれば、CTUは、ルートノード(root node)に該当し、最も小さい深さ(depth)(すなわち、depth=0)値を有する。入力画像の特性に応じてCTUが分割されないことがあり、この場合、CTUは、CUに該当する。
【0073】
CTUは、クアッドツリー形態に分割されることができ、その結果、深さ1(depth=1)である下位ノードが生成される。そして、1の深さを有する下位ノードでそれ以上分割されないノード(すなわち、リーフノード)は、CUに該当する。例えば、図3(b)においてノードa、b及びjに対応するCU(a)、CU(b)、CU(j)は、CTUで1回分割され、1の深さを有する。
【0074】
1の深さを有するノードのうち、少なくともいずれか1つは、再度クアッドツリー形態に分割されることができ、その結果、深さ2(すなわち、depth=2)である下位ノードが生成される。そして、2の深さを有する下位ノードでそれ以上分割されないノード(すなわち、リーフノード)は、CUに該当する。例えば、図3(b)においてノードc、h、及びiに対応するCU(c)、CU(h)、CU(i)は、CTUで2回分割され、2の深さを有する。
【0075】
また、2の深さを有するノードのうち、少なくともいずれか1つは、再度クアッドツリー形態に分割されることができ、その結果、深さ3(すなわち、depth=3)である下位ノードが生成される。そして、3の深さを有する下位ノードでそれ以上分割されないノード(すなわち、リーフノード)は、CUに該当する。例えば、図3(b)においてノードd、e、f、gに対応するCU(d)、CU(e)、CU(f)、CU(g)は、CTUで3回分割され、3の深さを有する。
【0076】
エンコーダでは、ビデオ画像の特性(例えば、解像度)に応じて、あるいは符号化の効率を考慮して、CUの最大サイズ又は最小サイズを決定できる。そして、これに関する情報又はこれを導くことができる情報がビットストリームに含まれ得る。最大サイズを有するCUを最大コーディングユニット(LCU:Largest Coding Unit)と呼び、最小サイズを有するCUを最小コーディングユニット(SCU:Smallest Coding Unit)と呼ぶことができる。
【0077】
また、ツリー構造を有するCUは、予め決められた最大深さ情報(又は、最大レベル情報)を有して階層的に分割されることができる。そして、それぞれの分割されたCUは、深さ情報を有することができる。深さ情報は、CUの分割された回数及び/又は程度を表すので、CUのサイズに関する情報を含むこともできる。
【0078】
LCUがクアッドツリーの形態に分割されるので、LCUのサイズ及び最大深さ情報を利用すれば、SCUのサイズを求めることができる。あるいは、逆に、SCUのサイズ及びツリーの最大深さ情報を利用すれば、LCUのサイズを求めることができる。
【0079】
1つのCUに対して、当該CUが分割されるか否かを表す情報(例えば、分割CUフラグ(split_cu_flag))がデコーダに伝達され得る。この分割モードは、SCUを除いた全てのCUに含まれている。例えば、分割が可能か否かを表すフラグの値が「1」であれば、当該CUはさらに4個のCUに分けられ、分割が可能か否かを表すフラグの値が「0」であれば、当該CUはそれ以上分けられず、当該CUに対する処理過程が行われ得る。
【0080】
前述のように、CUは、イントラ予測又はインター予測が行われるコーディングの基本単位である。HEVCは、入力画像をより効果的にコーディングするために、CUを予測ユニット(PU:Prediction Unit)単位に分割する。
【0081】
PUは、予測ブロックを生成する基本単位であって、1つのCU内でもPU単位に互いに異なるように予測ブロックを生成できる。ただし、1つのCU内に属するPUなどは、イントラ予測とインター予測とが混合されて使用されず、1つのCU内に属するPUなどは、同じ予測方法(すなわち、イントラ予測あるいはインター予測)によりコーディングされる。
【0082】
PUは、クアッドツリー構造に分割されず、1つのCUで予め決められた形態で1回分割される。これについて、下記で図面を参照して説明する。
【0083】
図4は、本発明に適用され得る予測ユニットを説明する図である。
【0084】
PUは、PUが属するCUのコーディングモードとしてイントラ予測モードが使用されるか、インター予測モードが使用されるかによって相違して分割される。
【0085】
図4(a)は、イントラ予測モードが使用される場合のPUを例示し、図4(b)は、インター予測モードが使用される場合のPUを例示する。
【0086】
図4(a)に示すように、1つのCUのサイズが2N×2N(N=4、8、16、32)である場合を仮定すれば、1つのCUは、2つのタイプ(すなわち、2N×2N又はN×N)に分割されることができる。
【0087】
ここで、2N×2N形態のPUに分割される場合、1つのCU内に1つのPUだけが存在することを意味する。
【0088】
それに対し、N×N形態のPUに分割される場合、1つのCUは、4個のPUに分割され、各PU単位別に互いに異なる予測ブロックが生成される。ただし、このようなPUの分割は、CUの輝度成分に対するCBのサイズが最小サイズである場合(すなわち、CUがSCUである場合)にのみ行われることができる。
【0089】
図4(b)に示すように、1つのCUのサイズが2N×2N(N=4、8、16、32)である場合を仮定すれば、1つのCUは、8つのPUタイプ(すなわち、2N×2N、N×N、2N×N、N×2N、nL×2N、nR×2N、2N×nU、2N×nD)に分割されることができる。
【0090】
イントラ予測と同様に、N×N形態のPU分割は、CUの輝度成分に対するCBのサイズが最小サイズである場合(すなわち、CUがSCUである場合)にのみ行われることができる。
【0091】
インター予測では、横方向に分割される2N×N形態及び縦方向に分割されるN×2N形態のPU分割をサポートする。
【0092】
また、非対称動き分割(AMP:Asymmetric Motion Partition)形態であるnL×2N、nR×2N、2N×nU、2N×nD形態のPU分割をサポートする。ここで、「n」は、2Nの1/4値を意味する。ただし、AMPは、PUが属するCUが最小サイズのCUである場合、使用されることができない。
【0093】
1つのCTU内の入力画像を効率的に符号化するために、コーディングユニットCU、予測ユニットPU、変換ユニットTUの最適な分割構造は、下記のような実行過程を経て最小レート歪み(Rate-Distortion)値に基づいて決定されることができる。例えば、64×64CTU内の最適なCU分割過程を説明すれば、64×64サイズのCUから8×8サイズのCUまでの分割過程を経ながら、レート歪みコストを計算できる。具体的な過程は、次のとおりである。
【0094】
1)64×64サイズのCUに対してインター/イントラ予測、変換/量子化、逆量子化/逆変換、及びエントロピエンコードの実行を介して最小のレート歪み値を発生させる最適なPU及びTUの分割構造を決定する。
【0095】
2)64×64CUを32×32サイズのCU4個に分割し、各32×32CUに対して最小のレート歪み値を発生させる最適なPU及びTUの分割構造を決定する。
【0096】
3)32×32CUを16×16サイズのCU4個に再度分割し、各16×16CUに対して最小のレート歪み値を発生させる最適なPU及びTUの分割構造を決定する。
【0097】
4)16×16CUを8×8サイズのCU4個に再度分割し、各8×8CUに対して最小のレート歪み値を発生させる最適なPU及びTUの分割構造を決定する。
【0098】
5)上記の3)の過程で算出した16×16CUのレート歪み値と、上記の4)の過程で算出した4個8×8CUのレート歪み値と、の合計を比較して、16×16ブロック内で最適なCUの分割構造を決定する。この過程を残りの3個の16×16CUなどに対しても同様に行う。
【0099】
6)上記の2)の過程で計算された32×32CUのレート歪み値と、上記の5)の過程で取得した4個の16×16CUのレート歪み値と、の合計を比較して、32×32ブロック内で最適なCUの分割構造を決定する。この過程を残りの3個の32×32CUなどに対しても同様に行う。
【0100】
7)最後に、上記の1)の過程で計算された64×64CUのレート歪み値と、上記の6)の過程で取得した4個の32×32CUのレート歪み値との合計を比較して、64×64ブロック内で最適なCUの分割構造を決定する。
【0101】
イントラ予測モードにおいて、PU単位で予測モードが選択され、選択された予測モードに対して実際のTU単位で予測及び再構成が行われる。
【0102】
TUは、実際の予測及び再構成が行われる基本単位を意味する。TUは、輝度(luma)成分に対する変換ブロック(TB:Transform Block)と、これに対応する2つの色差(chroma)成分に対するTBと、を含む。
【0103】
前述した図3の例において1つのCTUがクアッドツリー構造に分割されてCUが生成されるように、TUは、コーディングしようとする1つのCUからクアッドツリー構造に階層的に分割される。
【0104】
TUは、クアッドツリー構造に分割されるので、CUから分割されたTUは、再度より小さい下位TUに分割されることができる。HEVCでは、TUのサイズは、32×32、16×16、8×8、4×4のうち、いずれか1つに決められることができる。
【0105】
さらに、図3に示すように、クアッドツリーのルートノード(root node)は、CUと関連すると仮定する。クアッドツリーは、リーフノード(leaf node)に到達するまで分割され、リーフノードは、TUに該当する。
【0106】
より具体的に説明すれば、CUは、ルートノード(root node)に該当し、最も小さい深さ(depth)(すなわち、depth=0)値を有する。入力画像の特性に応じてCUが分割されないこともあり、この場合、CUは、TUに該当する。
【0107】
CUは、クアッドツリー形態に分割されることができ、その結果、深さ1(depth=1)である下位ノードが生成される。そして、1の深さを有する下位ノードでそれ以上分割されなかったノード(すなわち、リーフノード)は、TUに該当する。例えば、図3(b)において、ノードa、b、及びjに対応するTU(a)、TU(b)、TU(j)は、CUで1回分割され、1の深さを有する。
【0108】
1の深さを有するノードのうち、少なくともいずれか1つは、再度クアッドツリー形態に分割されることができ、その結果、深さ2(すなわち、depth=2)である下位ノードが生成される。そして、2の深さを有する下位ノードでそれ以上分割されなかったノード(すなわち、リーフノード)は、TUに該当する。例えば、図3(b)において、ノードc、h、及びiに対応するTU(c)、TU(h)、TU(i)は、CUで2回分割され、2の深さを有する。
【0109】
また、2の深さを有するノードのうち、少なくともいずれか1つは、再度クアッドツリー形態に分割されることができ、その結果、深さ3(すなわち、depth=3)である下位ノードが生成される。そして、3の深さを有する下位ノードでそれ以上分割されなかったノード(すなわち、リーフノード)は、CUに該当する。例えば、図3(b)において、ノードd、e、f、gに対応するTU(d)、TU(e)、TU(f)、TU(g)は、CUで3回分割され、3の深さを有する。
【0110】
ツリー構造を有するTUは、予め決められた最大深さ情報(又は、最大レベル情報)を有して階層的に分割されることができる。そして、それぞれの分割されたTUは、深さ情報を有することができる。深さ情報は、TUの分割された回数及び/又は程度を表すので、TUのサイズに関する情報を含むこともできる。
【0111】
1つのTUに対して、当該TUが分割されるか否かを表す情報(例えば、分割TUフラグ(split_transform_flag))がデコーダに伝達され得る。この分割情報は、最小サイズのTUを除いた全てのTUに含まれている。例えば、分割が可能か否かを表すフラグの値が「1」であれば、当該TUは、さらに4個のTUに分けられ、分割が可能か否かを表すフラグの値が「0」であれば、当該TUは、それ以上分けられない。
【0112】
残差信号の符号化/復号方法
【0113】
入力された画像は、イントラ予測部又はインター予測部で予測されたブロックにより差分され、予測に関連する情報及び差分に対する残差信号(residual signal)を送信することにより、デコーダにおいて画像を復元することができる。これに関して、以下の図面を参照してより詳細に説明する。
【0114】
図5は、本発明が適用されることができる実施形態であって、残差信号を符号化する方法を例示する。
【0115】
図5に示すように、エンコーダ(エンコード装置)は、残差信号(residual signal)(又は、残差ブロック)を変換(transform)する(S501)。残差信号は、入力された画像においてイントラ予測部又はインター予測部により予測された信号と差分された信号を意味する。残差信号は、空間領域の信号であり、これを周波数領域に変換することにより信号間の相関(correlation)を取り除いてエネルギを低周波領域に集中させることができる。このとき、エンコーダは、前述したように、DCT、DST、GBT、KLTなどの変換技法を適用して変換係数(transform coefficient)を生成することができる。
【0116】
エンコーダは、変換係数(transform coefficient)を量子化(quantization)する(S502)。変換された信号は、信号の大きさ(magnitude)を減らすためにスケーリング(scaling)及び/又は量子化される。
【0117】
エンコーダは、変換ブロックをサブブロック(subblock)に分割(divide)する(S503)。エンコーダは、変換ブロックを予め定められた一定サイズのサブブロック(例えば、4×4のサイズのサブブロック)に分割する。
【0118】
エンコーダは、量子化された変換係数をスキャン(scanning)し、スキャン順序(scan order)に従って係数を符号化する(S504)。すなわち、量子化された変換係数は、予め定められた順序に従ってエントロピ符号化されてデコーダに送信される。
【0119】
ここで、スキャン順序(scan order)は、右上対角線スキャン順序(up-right diagonal scan order)、水平スキャン順序(horizontal scan order)、垂直スキャン順序(vertical scan order)などに該当し得る。
【0120】
エンコーダは、最後の有効係数(last significant coefficient)(すなわち、最後の非ゼロ係数)から開始していわゆるDC係数と呼ばれる(0,0)座標の係数に到達するまで逆方向に変換係数をスキャンすることができる。このとき、各サブブロック内で量子化された変換係数は、右上対角線スキャン順序に従ってスキャンされ、また、各サブブロックも同様に右上対角線スキャン順序(up-right diagonal scan)に従ってスキャンされる。
【0121】
このとき、変換ブロック内で最後の有効係数(last significant coefficient)の位置(すなわち、列(column)の位置及び行(row)の位置)を識別するための情報が符号化されることができる。
【0122】
デコーダにおいては、エンコーダにおける過程を逆に行うことにより復元された画像を取得することができる。これについて、以下の図面を参照してより詳細に説明する。
【0123】
図6は、本発明が適用されることができる実施形態であって、残差信号を復号する方法を例示する。
【0124】
図6に示すように、デコーダ(デコード装置)は、係数を復号する(S601)。すなわち、デコーダは、エンコーダから出力された信号(すなわち、ビットストリーム)に対してエントロピデコーディングを行うことにより量子化された変換係数(transform coefficient)を取得することができる。
【0125】
デコーダは、量子化された変換係数をスキャン順序(scan order)通りに配置し、逆量子化(inverse-quantize)を行う(S602)。すなわち、デコーダは、エントロピ復号により復元された各量子化された変換係数を予め定められた順序に従って残差信号配列に配置することができる。
【0126】
前述したように、スキャン順序(scan order)は、右上対角線スキャン順序(up-right diagonal scan order)、水平スキャン順序(horizontal scan order)、垂直スキャン順序(vertical scan order)などに該当し得る。
【0127】
前述したように、変換ブロック内でスキャン順序(scan order)に従う最後の有効係数(last significant coefficient)(すなわち、最後の非ゼロ係数)の位置を示す情報がビットストリームを介してシグナリングされることができる。デコーダは、上記情報をパージングして変換ブロック内のスキャン順序(scan order)に従う最後の有効な係数(last significant coefficient)(すなわち、非ゼロ係数)の列(column)の位置及び行(row)の位置を導出することができる。
【0128】
デコーダは、最後の有効な係数(last significant coefficient)(すなわち、非ゼロ係数)の位置から開始していわゆるDC係数と呼ばれる(0,0)座標に到達するまで逆方向にスキャンすることができる。このとき、各サブブロック内で量子化された変換係数は、右上対角線スキャン順序に対する逆方向順序に従ってスキャンされ、また、各サブブロックも同様に右上対角線スキャン順序(up-right diagonal scan)に対する逆方向順序に従ってスキャンされることがある。
【0129】
デコーダは、前述したようにスキャン順序に従って量子化された変換係数を逆量子化することができる。
【0130】
デコーダは、逆量子化された変換係数を逆変換(inverse-transform)する(S603)。すなわち、デコーダは、逆変換技法を適用して変換係数を逆変換し、差分信号(residual signal)を取得することができる。
【0131】
前述したように、エントロピ復号により復元された各係数は、スキャン順序により残差信号配列に配置され、逆量子化と逆変換により空間領域の残差信号に復元される。そして、復元された残差信号は、予測信号と合わせられた後、フィルタリング過程を経て復元画像として出力される。
【0132】
実施形態1
【0133】
本発明の一実施形態において、エンコーダ/デコーダは、変換係数に対するスキャン順序(scan order)を階層的に構成することができる。言い換えると、エンコーダ/デコーダは、変換ブロック(又は、残差ブロック、スキャン処理ブロック)を係数グループ(coefficient group)に分割した後、分割された係数グループ単位でスキャンを行うことができる。上記係数グループは、サブブロック、サブグループ、サブ係数グループなどと称されることもある。
【0134】
エンコーダ/デコーダは、スキャン順序に従って変換ブロックから分割された係数グループ単位でスキャンしながら各係数グループ内の変換係数をスキャンすることができる。例えば、上記係数グループは、4×4のサイズのブロックであり得る。以下、図7を参照して説明する。
【0135】
図7は、本発明が適用される実施形態であって、係数グループ単位で変換係数をスキャンする方法を例示する図である。
【0136】
図7に示すように、現在ブロック(すなわち、変換ブロック)のサイズが8×8ブロックであり、係数グループは4×4ブロックに決定された場合を仮定する。この場合、例えば、エンコーダ/デコーダは、CG1(701)、CG3(703)、CG2(702)、CG4(704)の順で係数グループをスキャンすることができる。そして、エンコーダ/デコーダは、係数グループ間のスキャン順序と同一に、対角線スキャン順序(diagonal scan order)に従って各係数グループ内の係数をスキャンすることができる。
【0137】
図7の8×8サイズの現在ブロックを
と表現し、4×4サイズの係数のグループを
と表現(ここで、kはスキャン順序を示す)すると、図7の係数グループは、下記の数式1を満たす。
【0138】
<数式1>
【数1】
【0139】
図7及び数式1において、低周波に該当する係数(すなわち、DC係数)からスキャンを開始することを前提としているが、実際の符号化/復号過程では、最後にスキャンされる係数グループから符号化/復号が行われる可能性もある。また、この場合、当該係数グループ内において係数が同一のスキャン順序を利用してスキャンされることもあり、スキャン順序において最後に位置する係数から符号化/復号が行われることもある。
【0140】
すなわち、変換係数に対するエントロピコーディングが行われるとき、CG4(704)、CG2(702)、CG3(703)、CG1(701)の順で係数グループが符号化されることができ、このとき、左上端に位置するDC成分係数は、最後に符号化される。
【0141】
本明細書では、数式1のように左上端のDC成分からスキャンする方法を中心に実施形態を説明するが、本発明がこれに限定されることはなく、逆方向のスキャン順序が適用されることもできる。実際のコーディング過程で逆方向のスキャン順序が適用される場合にも、本発明で提案する方法が適用されることができる。このとき、逆方向スキャン順序は、順方向スキャン順序から後述する数式9を利用して導出される。
【0142】
図8は、本発明が適用される実施形態であって、係数グループ別の変換係数のスキャン順序を例示する図である。
【0143】
図8に示すように、現在ブロック801、係数グループ802、803、804、805及び各係数グループ内の係数の階層関係をツリー(tree)構造で表現することができる。この場合、エンコーダ/デコーダは、左側から右側への順序でスキャンを行うが、深さ優先(depth-first)探索方法によってスキャンを行うことができる。
【0144】
ツリー構造のリーフ(leaf)ノードは、現在ブロック801内の係数の位置を示す。各係数の位置は、図8に示すように、行(row)方向インデックス及び列(column)方向インデックスからなる1×2行ベクトルで表示されることができる。
【0145】
本明細書において、係数グループは、
で表記されることができる。ここで、
は、当該係数グループの深さk(depth)におけるスキャンインデックス(scan index)を示す。そして、dは、ツリー構造において当該係数グループの深さを示す。
【0146】
図9及び図10は、本発明が適用される実施形態であって、変換ブロックの分割構造及び変換係数のスキャン順序を決定する方法を説明する図である。
【0147】
図9に示すように、現在処理ブロックが16×16のサイズのブロックである場合を仮定する。このとき、エンコーダ/デコーダは、変換係数のスキャンを行うために現在処理ブロックを再帰的に(又は、階層的に)分割(すなわち、深さ2以上に分割)することができる。現在処理ブロックが図9(c)のように再帰的に分割される場合、現在処理ブロックの分割構造は、図14に示すようなツリー形態で表現することができる。
【0148】
図10に示すように、ツリー構造のリーフノードを左から右にスキャンすることにより全変換係数に対するスキャンが行われる。すなわち、スキャン順序は、ツリー構造のリーフノードの左から右に決定されることができる。
【0149】
本明細書において、リーフ係数グループは、図10のツリー構造のリーフノード(すなわち、係数グループ内の変換係数)を含む最下位の深さの係数グループ(すなわち、図10において深さ2の係数グループ)を示す。上記リーフ係数グループは、これ以上下位の深さの係数グループに分割されない。また、ツリー構造に分割されるブロック構造において、分割回数が増加するほど深さは増加する。下位の深さを有するノードは、ツリー構造において相対的に深さ値がより大きいノード、すなわち、上位の深さを有するノードから分割されたノードである。
【0150】
内におけるスキャン順序は、次の数式2のように表現することができる。
【0151】
<数式2>
【数2】
【0152】
数式2を参照すると、各行ベクトル(row vector)
は、h×wブロック内における変換係数の位置を示す。riは、行インデックス(row index)を示し、ciは、列インデックス(column index)を示す
【0153】
本明細書において、全ての2Dブロックの行インデックス及び列インデックスは、1から開始すると仮定する。上記数式2において
は、当該係数グループ内の係数のスキャン順序を示す。すなわち、[r11]から[rh×wh×w]までの順で該当位置の係数がスキャンされることができる。
【0154】
前述したように、上記数式2の
を構成する行ベクトルは、それぞれh×wサイズのブロック内の変換係数の位置を示すので、深さdの係数グループ
に対する変換ブロック
内における行インデックスオフセット(offset)及び列インデックスオフセットを、
を構成する全ての列ベクトルに加えることにより、変換ブロック内におけるスキャン順序を求めることができる。このとき、上記行インデックスオフセット及び上記列インデックスオフセットは、次の数式3を利用して計算される。
【0155】
<数式3>
【数3】
【0156】
数式3を参照すると、
は、現在変換ブロック
内で
の相対的な位置を示す列ベクトルを示す。例えば、上記図9において、
であり、
であり得る。
【0157】
ベクトル

と定義すると、以下の数式4を利用して
のスキャン順序を計算することができる。
【0158】
<数式4>
【数4】
【0159】
がリーフ係数グループである場合、上記数式4を利用して全体のブロック(すなわち、変換ブロック)内におけるスキャン順序が計算されることができる。すなわち、全体ブロック内におけるスキャン順序は、前述した数式2を利用して計算される係数グループ内におけるスキャン順序と前述した数式3を利用して計算される上記係数グループのオフセット
との合計と同じである。
【0160】
がリーフ係数グループではない場合、変換ブロック内におけるスキャン順序は、次の数式5を利用して計算されることができる。
【0161】
<数式5>
【数5】
【0162】
全体ブロック
に対するスキャン順序は、
で表現されることができる。このとき、上記
の行インデックスは、スキャンインデックスを示し、上記
の各行ベクトルは、当該スキャンインデックスに対する全体ブロック内における位置を示すことができる。
【0163】
図11は、本発明が適用される実施形態であって、ブロック内の係数の位置を表現した一例を示す図である。
【0164】
図11に示すように、ブロック内の係数の位置をラスタスキャン順序(raster scan order)(すなわち、行優先順序(row-first order)、辞書式順序(lexicographical order))を利用して示すことができる。スキャン順序に従って各係数の位置にインデックス値を図11に示すように割り当てることができる。そして、図11の係数の位置を示すインデックス値は、次の数式6のように表現することができる。
【0165】
<数式6>
【数6】
【0166】
ブロック内における変換係数の位置に、上記で説明したラスタスキャン順序を含んで任意のスキャン順序に従って係数の位置を示すインデックスを付与すると、スキャン順序は、次の数式7のように表現することができる。
【0167】
<数式7>
【数7】
【0168】
であるとき、数式7は、数式6のようにまとめることができる。
【0169】
本明細書で提案するスキャン順序は、前述の数式2ないし数式7で説明した方式で記述されることができる。このように、以上で説明した方式でスキャン順序が記述されるとしたとき、スキャン順序は、次のような構成要素により決定される。
【0170】
1)各深さ(すなわち、0以上の深さ)における係数グループの再帰的な分割
【0171】
2)分割された係数グループに対するスキャン順序の決定
【0172】
3)リーフ係数グループの変換係数に対するスキャン順序の決定
【0173】
上記構成要素が決定されると、数式2ないし数式7を利用してスキャン順序が決定される。したがって、本発明では、上記構成要素を決定することにより適合したスキャン順序を構成する方法を提案する。
【0174】
適用可能な全てのスキャン順序行列を含む集合は、次の数式8のように表現することができる。
【0175】
<数式8>
【数8】
【0176】
ここで、
は、ブロックに対して適用可能な全てのスキャン順序行列を集めた集合を示す。そして、上記ブロックは、様々なサイズ又は形状(例えば、4×4、4×8、16×4、16×16、32×8など)を有することができる。そして、前述した数式5により導出される
は、上記
の要素(元素)として含まれることができる。
【0177】
一実施形態において、エンコーダ/デコーダは、現在処理ブロックの周辺ブロックに関する情報を利用して上記
において特定スキャン順序を選択し、選択されたスキャン順序を利用してスキャンを行うことができる。上記周辺ブロックに関する情報は、例えば、左側ブロック又は上側ブロック内に存在する非ゼロ係数(non-zero coefficient)の個数又は最後の非ゼロ係数(last non-zero coefficient)の位置などであり得る。また、現在処理ブロックの直ぐ前にコード化したブロックに関する情報を利用して現在処理ブロックのスキャン順序を決定することもできる。
【0178】
一実施形態において、エンコーダ/デコーダは、現在処理ブロックのサイズ又は形状に応じて、スキャン順序を決定(又は、適用)することができる。例えば、エンコーダ/デコーダは、4×8サイズのブロックに対しては
を適用し、8×16サイズのブロックに対しては
を適用することができる。
【0179】
一実施形態において、エンコーダ/デコーダは、特定サイズ又は形状のブロックに対して適用可能なスキャン順序の集合
のうちの特定スキャン順序を選択して適用することができる。このとき、エンコーダは、シーケンス、ピクチャ、スライス、CTU、コーディングブロック(又は、コーディングユニット)又は変換ブロック(又は、変換ユニット)単位で選択されたスキャン順序に対するインデックスをデコーダにシグナリングすることができる。
【0180】
変換係数に対してエントロピコーディングを行うときは、前述した順方向のスキャン順序だけでなく、逆方向のスキャン順序を適用することもできる。上記逆方向スキャン順序は、次の数式9を利用して計算されることができる。
【0181】
<数式9>
【数9】
【0182】
ここで、Pは、反対角線(anti-diagonal)成分のみが1の値を有する順列行列(permutation matrix)を示す。上記順列行列を利用して前述した順方向のスキャン順序の逆方向スキャン順序を導出することができる。
【0183】
実施形態2
【0184】
本発明の一実施形態において、エンコーダ/デコーダは、係数グループのサイズ又は形態に基づいて、係数グループ内の各係数に対するスキャン順序を決定することができる。すなわち、エンコーダ/デコーダは、ブロックのサイズ又は形態によって、前述した数式2の係数グループ内の係数のスキャン順序を決定することができる。
【0185】
図12及び図13は、本発明の一実施形態によるブロック内の変換係数の位置によるスキャン順序を例示する図である。
【0186】
図12に示すように、エンコーダ/デコーダは、対角線スキャン順序(diagonal scan order)に従ってd値が増加する順で係数をスキャンすることができる。ここで、上記dは、左上端係数を基準とした当該係数の距離値を示す。エンコーダ/デコーダは、同一のd値を有する位置の係数に対して左下側から右上側にスキャンすることができる。
【0187】
ここで、d値は、d=dx+dyに決定されことができ、図12(b)に示すように、dx及びdyは、それぞれ水平方向の増分(又は、水平方向座標)及び垂直方向の増分(又は、垂直方向座標)を示す。
【0188】
前述したように、変換係数に対するエントロピコーディングを行うにおいて、エンコーダ/デコーダは、逆方向スキャン順序を適用することができる。この場合、d値が6である係数からd値が0である係数までスキャンが可能であり、図12(a)に示す矢印の方向とは反対に右上側から左下側にスキャンされることができる。本明細書では、順方向スキャン順序を中心に説明するが、エントロピコーディングを行うにおいて、エンコーダ/デコーダは、逆方向スキャン順序に従うこともでき、順方向スキャン順序に従うこともできる。
【0189】
同一のd値を有する位置は、周波数の観点で、同等の位相を有する係数の位置に該当し得る。したがって、エンコーダ/デコーダは、同一のd値を有する位置の係数に対しては、任意の順序を付与することができる。例えば、エンコーダ/デコーダは、図12(a)のd値が3であるライン(line)の位置に対しては、[4 1]、[3 2]、[2 3]、[1 4](各位置を行ベクトルで表現)の順でスキャンすることもでき、[1 4]、[2 3]、[3 2]、[4 1]又は[2 3]、[3 2]、[1 4]、[4 1]の順でスキャンすることもできる。
【0190】
また、エンコーダ/デコーダは、図13に示すように、各反対角線(anti-diagonal)ラインに対して図12(a)における例とは異なるように右側から左側にスキャンするように構成することもできる。
【0191】
以下の表1は、前述した対角線スキャン順序を決定するための疑似コードの一例を示す。
【0192】
<表1>
【表1】
【0193】
表1を参照すると、エンコーダ/デコーダは、d値を0から1ずつ増加させながら、最も左下側の位置から最も右上側の位置の係数までスキャンインデックスを割り当てることによりスキャン順序を決定することができる。ここで、sypos及びsxposは、それぞれブロック内の行インデックス及び列インデックスから1を引いた値を示すパラメータである。すなわち、sypos及びsxposは、0から開始すると仮定する。
【0194】
表1において、d値により特定される対角線ラインに対して左下側からスキャンすることを仮定するが、図13で説明したように、右上側からスキャンするようにコードを構成することも可能である。
【0195】
上記表1において、「whileループ(loop)」は、d値に特定される対角線のラインに対してスキャン順序に従ってスキャン情報を示すパラメータ(又は、行列)を決定する。上記パラメータは、スキャン順序を示すパラメータ(scan_order)又はスキャン位置を示すパラメータ(scan_pos)であり得る。上記scan_order行列には、ブロックの各位置(すなわち、上記scan_order行列の構成要素)に割り当てられるスキャンインデックスが記憶される。そして、上記scan_pos行列には、各行インデックスがスキャンインデックスに該当し、各行は、行ベクトルの形態でブロックにおける係数位置が記憶される。
【0196】
既存の方法(例えば、HEVC)で係数の位置にスキャン順序を割り当てると、現在処理ブロックが非正方形ブロックである場合、水平方向又は垂直方向の周波数増加率が効果的に反映されない可能性がある。
【0197】
具体的には、非正方形ブロックに対して可分離変換(separable transform)が適用される場合、垂直方向に対する変換基底ベクトル(transform basis vector)の長さと水平方向に対する変換基底ベクトルの長さとは、相異なる可能性がある。例えば、現在処理ブロックが2N×Nサイズのブロックである場合、垂直方向には2N×2NサイズのDCTが適用され、水平方向にはN×NサイズのDCTが適用される。この場合、縦方向では、係数の垂直方向座標が1増加するたびに1/(2N)*πの分だけ周波数が増加するのに対して、横方向では、係数の水平方向座標が1増加するたびに1/(N)*π分だけ増加する。
【0198】
本明細書で提案する方法の説明において、M×Nブロックは、高さ(height)がM、幅(width)がNであるブロックであることを中心に説明するが、本発明がこれに制限されるのではなく、M×Nブロックは、幅及び高さがそれぞれM、Nであるブロックを示すこともできることは言うまでもない。
【0199】
非正方形ブロックである場合にも、既存の方法で係数の位置に同一にスキャン順序を割り当てる場合、水平方向又は垂直方向に周波数増加率が効果的に反映されない可能性がある。これにより、高周波成分から低周波成分へのスキャンがきちんと行われない可能性があり、画像の圧縮性能が低下することがある。
【0200】
したがって、本発明では、前述したような問題点を解決し、水平方向又は垂直方向に周波数増加率を効果的に反映するために、非正方形ブロック内の各位置の係数にスキャン順序を割り当てる方法を提案する。
【0201】
非正方形ブロックに対しても、前述した図12及び表1で説明した方法を利用してスキャン順序を求めることができる。例えば、現在処理ブロックが4×8サイズのブロックである場合、関数の入力パラメータとしてheight=4、width=8に設定して表1の関数を行うと、該当スキャン順序を求めることができる。
【0202】
図14及び図15は、本発明が適用される実施形態であって、非正方形ブロックの係数に対するスキャン順序を決定する方法を説明する図である。
【0203】
前述したように、非正方形ブロックに対して可分離変換(分離可能な変換)が適用される場合、垂直方向(すなわち、行方向)に対する変換基底ベクトルの長さと水平方向(すなわち、列方向)に対する変換基底ベクトルの長さとは、異なり得る。
【0204】
図14に示すように、現在処理ブロックが4×8サイズのブロックである場合を仮定する。この場合、垂直方向に4×4サイズのDCTを適用し、水平方向には8×8サイズのDCTを適用することができる。変換係数が左上端に位置するほど低周波成分を示し、右下端に位置するほど高周波成分を示すと仮定する場合、図14(a)の4×8ブロックの場合、垂直方向(又は、縦方向)への周波数増分は、水平方向(又は、横方向)への周波数増分の2倍であり得る。
【0205】
したがって、変換係数の位置によるdx及びdyは、図14(b)に示すように設定される。そして、エンコーダ/デコーダは、同一のd(このとき、d=dx+dy)値を有する位置の係数を単位でd値が増加する順でスキャン順序を設定することができる。逆方向スキャン順序の場合、エンコーダ/デコーダは、d値が減少する順でスキャン順序を設定することができる。
【0206】
本発明において、スキャンライン(scan line)は、同一のd値を有する位置の係数を称する。すなわち、同一のd値を有する係数は、同一のスキャンラインに含まれる可能性がある。
【0207】
同一のスキャンラインに属する係数の間には、任意のスキャン順序が割り当てられることができる。左側から右側にスキャンする場合、図14(c)に示すように、各位置の係数にスキャンインデックスが割り当てられる。
【0208】
図15に示すように、現在処理ブロックが8×4サイズのブロックである場合を仮定する。水平方向の周波数増分及び垂直方向の周波数増分が図15(b)に示すように変わる点を除いて、エンコーダ/デコーダは、前述した方法と同一の方法でd値を設定してスキャン順序を決定することができる。
【0209】
以下の表2は、図14及び図15で説明した方法を適用してスキャン順序を求める疑似コードの一例である。
【0210】
<表2>
【表2】
【0211】
表2を参照すると、shは、垂直方向増分(すなわち、dy)を示すパラメータであり、swは、水平方向増分(すなわち、dx)を示すパラメータである。他のパラメータは、表1と同一である。そして、床(floor)関数は、因子(引数)として与えられた数字より小さいか等しい最大(サイズ)の整数値をリターン(return)し、ラウンド(round)関数は、因子として与えられた数字を四捨五入した整数値をリターンする。エンコーダ/デコーダは、現在処理ブロックの幅と高さとの比率を利用してsh値及びsw値を設定し、d値を0から1ずつ増加させながら、最も左下側位置から最も右上側位置の係数までスキャンインデックスを割り当てることによりスキャン順序を決定することができる。
【0212】
本発明の一実施形態において、エンコーダ/デコーダは、特定個数の係数単位でグループピング(grouping)した後、様々なスキャン順序を適用してスキャンすることができる。以下、図16を参照して説明する。
【0213】
図16及び図17は、本発明が適用される実施形態であって、スーパーピクセル(super-pixel)単位で非正方形ブロックの係数に対するスキャン順序を決定する方法を説明する図である。
【0214】
図16を参照すると、現在処理ブロックが4×8サイズのブロックである場合を仮定する。エンコーダ/デコーダは、スーパーピクセル(super‐pixel)単位で現在処理ブロックを分割することができる。ここで、スーパーピクセルは、特定個数の係数(又は、ピクセル)の集合を示し、上記特定個数は、現在ブロックの幅と高さとの比率によって決定されることができる。上記スーパーピクセルは、サブブロック、サブグループ、係数グループ、サブ係数グループなどと称されることがある。現在ブロックの幅と高さとの比率が2であるため、上記スーパーピクセルは、2つのピクセルで構成される。
【0215】
エンコーダ/デコーダは、スーパーピクセルで正方形ブロックを構成し、図7ないし図13で説明した方法を利用してスーパーピクセル単位でスキャン順序を決定し、スーパーピクセル内では、任意の順序で係数をスキャンすることができる。
【0216】
エンコーダ/デコーダは、図16に示すように、スーパーピクセル単位で対角線スキャン順序に従って4×4サイズの正方形ブロックに対するスキャン順序を適用し、各スーパーピクセル内では左側から右側にスキャン順序を適用することができる。
【0217】
図17に示すように、現在処理ブロックが8×4サイズのブロックである場合を仮定する。同様に、エンコーダ/デコーダは、スーパーピクセル単位で現在処理ブロックを分割することができる。高さが幅の2倍であるため、エンコーダ/デコーダは、垂直方向(又は、縦方向)に2つの係数をグループ化してスーパーピクセルを設定することができる。
【0218】
以下の表3は、図16及び図17で説明した方法を適用してスキャン順序を求める疑似コードの一例である。
【0219】
<表3>
【表3】
【0220】
表3を参照すると、splenは、スーパーピクセルの長さを示すパラメータである。上記splenは、現在処理ブロックの幅及び高さによって決定されることができる。例えば、高さが幅より大きい場合、垂直方向に長いスーパーピクセルに決定され、幅が高さより大きい場合は、水平方向に長いスーパーピクセルに決定される。そして、norm_lengthは、スーパーピクセル単位で構成されたブロック(すなわち、正方形(square)ブロックに対する一辺の長さを示すパラメータである。上記表3において、「whileループ(loop)」内部の「for-loop」は、スーパーピクセル内の各位置の係数に対してスキャンインデックスを割り当てる。
【0221】
エンコーダ/デコーダは、前述したスキャン順序以外にも様々なスキャン順序を適用することができる。例えば、エンコーダ/デコーダは、特定サイズ(例えば、4×8、16×8、32×32など)のブロック変換係数の統計などを利用して、各位置の係数に対して非ゼロ係数の個数情報を取得することができる。そして、エンコーダ/デコーダは、取得された非ゼロ係数の個数に基づいて当該個数の降順(又は、昇順)に係数のスキャン順序を決定することもできる。
【0222】
エンコーダ/デコーダは、上記数式2のように
の高さ及び幅がそれぞれh、wであるとするとき、h×wブロックに対して適用可能なスキャン順序の集合は、次の数式10のように表現することができる。
【0223】
<数式10>
【数10】
【0224】
ここで、
は、適用可能なスキャン順序の集合を示す。そして、
は、スキャン順序を示し、上記図7ないし図17で説明したスキャン順序がそれに該当し得る。数式2の
は、
を満たす。
【0225】
実施形態3
【0226】
本発明の実施形態では、係数グループのスキャン順序を決定する方法を提案する。例えば、エンコーダ/デコーダは、上記図9(c)において
を構成する4つの係数グループに対するスキャン順序を決定することができる。
【0227】
エンコーダ/デコーダは、上記図9(c)に示すように対角線スキャン順序で係数グループをスキャンすることができる。また、エンコーダ/デコーダは、係数グループ間のスキャン順序を決定するにおいて、上記実施形態1及び実施形態2で説明したスキャン方法を適用することもあり、任意の順序を有するスキャン順序を適用することもある。
【0228】
図18は、本発明が適用される実施形態であって、係数グループに対するスキャン順序を決定する方法を例示する図である。
【0229】
図18に示すように、エンコーダ/デコーダは、係数グループに対するスキャン順序及び係数グループ内の係数に対するスキャン順序を同一に利用するように構成することもあり、それぞれ別個のスキャン順序を利用するように構成することもある。
【0230】
一例として、図18(a)に示すように、エンコーダ/デコーダは、4×2サイズのブロックに係数グループを分割し、係数グループ間には、前述の表2を利用して生成されるスキャン順序を適用し、各係数グループ内では、前述の表1を利用して生成されるスキャン順序を適用することができる。
【0231】
他の一例として、図18(b)に示すように、エンコーダ/デコーダは、2×4サイズブロックに係数グループを分割し、係数グループ間のスキャン順序と係数グループ内の係数間のスキャン順序とに、同様に上記表2を利用して生成されるスキャン順序を適用することもできる。
【0232】
他の例として、図18(c)に示すように、エンコーダ/デコーダは、2×4サイズのブロックに係数グループを分割し、係数グループ間には、上記表2を利用して生成されるスキャン順序を適用し、各係数グループ内では、上記表3を利用して生成されるスキャン順序を適用することができる。
【0233】
図19は、本発明の一実施形態による画像の符号化方法を例示する。
【0234】
エンコーダは、現在処理ブロックの残差信号(residual signal)に対して変換(transform)及び量子化(quantization)を行うことにより、量子化された変換ブロックを生成する(S1901)。上記S1901においては、上記図5で説明したS501及びS502段階と同一に行われる。
【0235】
エンコーダは、上記量子化された変換ブロックを複数の係数グループ(coefficient group)に分割する(S1902)。
【0236】
上記図9及び図10で説明したように、エンコーダは、変換係数に対するスキャンのために現在処理ブロックを再帰的に(又は、階層的に)分割することができる。例えば、上記複数の係数グループに分割する段階は、上記量子化された変換ブロックを階層的に分割することにより下位の深さ(lower depth)を有する係数グループに分割する段階を含み、上記第2スキャン順序は、上記量子化された変換ブロックから分割された各深さの係数グループ間のスキャン順序を含んでもよい。
【0237】
また、上記図16及び図17で説明したように、エンコーダは、特定個数の係数単位でグループ化(grouping)した後、様々なスキャン順序を適用してスキャンすることができる。すなわち、上記量子化された変換ブロックが非正方形ブロックである場合、上記量子化された変換ブロックは、特定個数の係数で構成される係数グループに分割され、上記特定個数は、上記量子化された変換ブロックの幅(width)と高さ(height)との比率によって決定される。
【0238】
エンコーダは、上記係数グループの係数(coefficient)間のスキャン順序(scan order)を示す第1スキャン順序を決定する(S1903)。
【0239】
エンコーダは、上記図12ないし図18で説明した方法を適用して、上記第1スキャン順序を決定することができる。例えば、上記S1903段階は、上記係数グループの左上端係数を基準とする上記係数グループの各係数の距離値を決定する段階と、上記距離値を順次増加させながら同一の距離値を有する係数に予め定められた順序に従ってスキャンインデックス(scan index)を割り当てる段階と、を含んでもよい。
【0240】
また、上記図14及び図15で説明したように、エンコーダは、水平方向又は垂直方向に周波数の増加率を効果的に反映させるために、非正方形ブロック内の各位置の係数にスキャン順序を割り当てる。例えば、上記係数グループの各係数の距離値を決定する段階は、上記係数グループが非正方形ブロック(non-square block)である場合、上記係数グループの幅(width)と高さ(height)との比率に基づいて、各係数の水平方向における座標値の増加量を示す水平方向増分と垂直方向における座標値の増加量を示す垂直方向増分とを決定する段階を含み、上記各係数の距離値は、上記水平方向増分と垂直方向増分とを合わせた値を利用して決定されることができる。
【0241】
また、上記係数グループの幅が高さより大きい場合、上記水平方向増分は1に決定され、上記垂直方向増分は2に決定され、上記係数グループの高さが幅より大きい場合、上記水平方向増分は2に決定され、上記垂直方向増分は2に決定される。
【0242】
上記第1スキャン順序は、エンコーダにより予め定義(又は、設定)されることもあり、ピクチャ、スライス、CTU、符号化単位又は変換単位で、エンコーダがデコーダに送信することもある。
【0243】
また、エンコーダは、上記複数の係数グループ間のスキャン順序を示す第2スキャン順序を決定することもできる。この場合、上記S1903段階は、第2スキャン順序を決定する段階を含んでもよく、エンコーダは、上記図12ないし図18で説明した方法を適用して上記第2スキャン順序を決定することができる。上記第2スキャン順序は、エンコーダにより予め定義(又は、設定)されることもあり、ピクチャ、スライス、CTU、符号化単位又は変換単位で、エンコーダがデコーダに送信することもある。
【0244】
エンコーダは、上記第1スキャン順序と上記複数の係数グループ間のスキャン順序を示す第2スキャン順序とに従って、上記量子化された変換ブロックの係数をエントロピエンコードする(S1904)。
【0245】
図20は、本発明の一実施形態による画像の復号方法を例示する。
【0246】
デコーダは、現在処理ブロックを複数の係数グループ(coefficient group)に分割する(S2001)。
【0247】
上記図9及び図10で説明したように、デコーダは、変換係数に対するスキャンのために現在処理ブロックを再帰的に(又は、階層的に)分割することができる。例えば、上記複数の係数グループに分割する段階は、現在処理ブロックを階層的に分割することにより下位の深さ(lower depth)を有する係数グループに分割する段階を含み、上記第2スキャン順序は、上記現在処理ブロックから分割された各深さの係数グループ間のスキャン順序を含んでもよい。
【0248】
また、上記図16及び図17で説明したように、デコーダは、特定個数の係数単位でグループ化(grouping)した後、様々なスキャン順序を適用してスキャンすることができる。すなわち、上記現在処理ブロックが非正方形ブロックである場合、上記現在処理ブロックは、特定個数の係数で構成される係数グループに分割され、上記特定個数は、上記現在処理ブロックの幅(width)と高さ(height)との比率によって決定されることができる。
【0249】
デコーダは、上記係数グループの係数(coefficient)間のスキャン順序(scan order)を示す第1スキャン順序を決定する(S2002)
【0250】
デコーダは、上記図12ないし図18で説明した方法を適用して上記第1スキャン順序を決定することができる。例えば、上記S2002段階は、上記係数グループの左上端係数を基準とする上記係数グループの各係数の距離値を決定する段階と、上記距離値を順次増加させながら同一の距離値を有する係数に予め定められた順序に従ってスキャンインデックス(scan index)を割り当てる段階と、を含んでもよい。
【0251】
また、上記図14及び図15で説明したように、デコーダは、水平方向又は垂直方向に周波数増加率を効果的に反映するために非正方形ブロック内の各位置の係数にスキャン順序を割り当てることができる。例えば、上記係数グループの各係数の距離値を決定する段階は、上記係数グループが非正方形ブロック(non-square block)である場合、上記係数グループの幅(width)と高さ(height)との比率に基づいて、各係数の水平方向における座標値の増加量を示す水平方向増分と垂直方向における座標値の増加量を示す垂直方向増分とを決定する段階を含み、上記各係数の距離値は、上記水平方向増分と垂直方向増分とを合わせた値を利用して決定されることができる。
【0252】
また、上記係数グループの幅が高さより大きい場合、上記水平方向増分は1に決定され、上記垂直方向増分は2に決定され、上記係数グループの高さが幅より大きい場合、上記水平方向増分は2に決定され、上記垂直方向増分は2に決定される。
【0253】
上記第1スキャン順序は、デコーダにより予め定義(又は、設定)されることもあり、ピクチャ、スライス、CTU、符号化単位又は変換単位で、デコーダが(エンコーダから)デコーダに送信されることもある。
【0254】
また、デコーダは、上記複数の係数グループ間のスキャン順序を示す第2スキャン順序を決定することもできる。この場合、上記S2002段階は、第2スキャン順序を決定する段階を含んでもよく、デコーダは、上記図12ないし図18で説明した方法を適用して上記第2スキャン順序を決定することができる。上記第2スキャン順序は、デコーダにより予め定義(又は、設定)されることもあり、ピクチャ、スライス、CTU、符号化単位又は変換単位で、エンコーダからデコーダに送信されることもある。
【0255】
デコーダは、エンコーダから出力されたビットストリームをエントロピデコードすることにより量子化された変換係数を生成する(S2003)。上記S2003段階は、上記図6で説明したS601段階と同一に行われることがある。
【0256】
デコーダは、上記第1スキャン順序と、上記複数の係数グループ間のスキャン順序を示す第2スキャン順序と、に従って上記量子化された変換ブロックの係数を配置することにより、上記現在処理ブロックの量子化された変換ブロックを生成する(S2004)。
【0257】
そして、デコーダは、上記量子化された変換ブロックを逆量子化して変換ブロックを取得することができる。逆量子化する方法は、公知の技術を利用することができ、これに関する詳細な説明は省略する。前述した実施形態による画像の復号方法において一部の段階が省略又は追加されることもあり、説明した手順にも拘束されない。また、上記S2003段階と上記S2004段階とは、分離して行われることもあり、同時に行われることもある。
【0258】
図21は、本発明の一実施形態による画像の復号装置を例示する。
【0259】
図21では、説明の便宜のために、係数グループ分割部2101、スキャン順序決定部2102、変換係数生成部2103、変換ブロック生成部2104を別のブロックで図示しているが、上記係数グループ分割部2101、スキャン順序決定部2102、変換係数生成部2103、変換ブロック生成部2104は、エンコーダ及び/又はデコーダに含まれる構成として実現されることができる。
【0260】
図21に示すように、本実施形態による画像の復号装置は、上記図5ないし図20で提案された機能、過程及び/又は方法を実現し、また、後述するスケーリング及び変換プロセスを行う。具体的には、上記復号装置は、係数グループ分割部2101、スキャン順序決定部2102、変換係数生成部2103、変換ブロック生成部2104を含んで構成される。
【0261】
図21に例示された画像の復号装置の細部構成は、1つの例に過ぎず、例示された細部構成の一部が他の細部構成に含まれて共に実現されることもでき、例示されていない他の構成が追加されて共に実現されることもできる。
【0262】
係数グループ分割部2101は、現在処理ブロックを複数の係数グループ(coefficient group)に分割する。
【0263】
上記図9及び図10で説明したように、係数グループ分割部2101は、変換係数に対するスキャンのために現在処理ブロックを再帰的に(又は、階層的に)分割することができる。例えば、係数グループ分割部2101は、現在処理ブロックを階層的に分割することにより下位の深さ(lower depth)を有する係数グループに分割し、上記第2スキャン順序は、上記現在処理ブロックから分割された各深さの係数グループ間のスキャン順序を含むことがある。
【0264】
また、上記図16及び図17で説明したように、係数グループ分割部2101は、特定個数の係数単位でグループ化(grouping)した後、様々なスキャン順序を適用してスキャンすることができる。すなわち、上記現在処理ブロックが非正方形ブロックである場合、上記現在処理ブロックは、特定個数の係数で構成される係数グループに分割され、上記特定個数は、上記現在処理ブロックの幅(width)と高さ(height)との比率によって決定されることができる。
【0265】
スキャン順序決定部2102は、上記係数グループの係数(coefficient)間のスキャン順序(scan order)を示す第1スキャン順序を決定する。
【0266】
スキャン順序決定部2102は、上記図12ないし図18で説明した方法を適用して上記第1スキャン順序を決定することができる。例えば、スキャン順序決定部2102は、上記係数グループの左上端係数を基準とする上記係数グループの各係数の距離値を決定し、上記距離値を順次増加させながら同一の距離値を有する係数に予め定められた順序に従ってスキャンインデックス(scan index)を割り当てることができる。
【0267】
また、上記図14及び図15で説明したように、スキャン順序決定部2103は、水平方向又は垂直方向に周波数の増加率を効果的に反映するために、非正方形ブロック内の各位置の係数にスキャン順序を割り当てることができる。例えば、スキャン順序決定部2102は、上記係数グループが非正方形ブロック(non-square block)である場合、上記係数グループの幅(width)と高さ(height)との比率に基づいて、各係数の水平方向における座標値の増加量を示す水平方向増分及び垂直方向における座標値の増加量を示す垂直方向増分を決定することができ、上記各係数の距離値は、上記水平方向増分と垂直方向増分とを合算した値を利用して決定されることができる。
【0268】
また、上記係数グループの幅が高さより大きい場合、上記水平方向増分は1に決定され、上記垂直方向増分は2に決定され、上記係数グループの高さが幅より大きい場合、上記水平方向増分は2に決定され、上記垂直方向増分は2に決定されることができる。
【0269】
上記第1スキャン順序は、デコーダにより予め定義(又は、設定)されることもあり、ピクチャ、スライス、CTU、符号化単位又は変換単位で、デコーダが(エンコーダから)デコーダに送信されることもある。
【0270】
また、スキャン順序決定部2102は、上記複数の係数グループ間のスキャン順序を示す第2スキャン順序を決定することもできる。言い換えると、スキャン順序決定部2102は、第2スキャン順序を決定する段階を含んでもよく、スキャン順序決定部2102は、上記図12ないし図18で説明した方法を適用して上記第2スキャン順序を決定することができる。また、上記第2スキャン順序は、デコーダにより予め定義(又は、設定)されることもあり、ピクチャ、スライス、CTU、符号化単位又は変換単位で、エンコーダからデコーダに送信されることもある。
【0271】
変換係数生成部2103は、エンコーダから出力されたビットストリームをエントロピデコードすることにより量子化された変換係数を生成する。このとき、上記図6で説明したS601段階と同一の方法が適用されることができる。
【0272】
変換ブロック生成部2104は、上記第1スキャン順序と上記複数の係数グループ間のスキャン順序を示す第2スキャン順序とに従って、上記量子化された変換ブロックの係数を配置することにより、上記現在処理ブロックの量子化された変換ブロックを生成する。
【0273】
以上で説明された実施形態は、本発明の構成要素及び特徴が所定の形態で結合されたものである。各構成要素又は特徴は、別途の明示的な言及がない限り、選択的なものとして考慮されなければならない。各構成要素又は特徴は、他の構成要素や特徴と結合されない形態で実施できる。また、一部の構成要素及び/又は特徴を結合して本発明の実施形態を構成することも可能である。本発明の実施形態で説明される動作の順序は、変更可能である。ある実施形態の一部構成や特徴は、他の実施形態に含まれることができ、又は他の実施形態の対応する構成又は特徴と置き換えることができる。特許請求の範囲で明示的な引用関係がない請求項を結合して実施形態を構成するか、又は出願後の補正により新たな請求項に含めることができることは明らかである。
【0274】
本発明に従う実施形態は、多様な手段、例えば、ハードウェア、ファームウエア(firmware)、ソフトウェア、又はそれらの結合などにより実現できる。ハードウェアによる実現の場合、本発明の一実施形態は、1つ又は複数のASICs(application specific integrated circuits)、DSPs(digital signal processors)、DSPDs(digital signal processing devices)、PLDs(programmable logic devices)、FPGAs(field programmable gate arrays)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサなどにより実現できる。
【0275】
ファームウエアやソフトウェアによる具現の場合、本発明の一実施形態は、以上で説明された機能又は動作を行うモジュール、手続、関数などの形態で具現できる。ソフトウェアコードは、メモリに記憶されてプロセッサにより駆動できる。上記メモリは、上記プロセッサ内部又は外部に位置し、既に公知の多様な手段により上記プロセッサとデータをやり取りすることができる。
【0276】
本発明は、本発明の必須的特徴を逸脱しない範囲で他の特定の形態で具体化できることは、当業者にとって明らかである。したがって、前述した詳細な説明は、全ての面から制約的に解析されてはならず、例示的なものとして考慮されなければならない。本発明の範囲は、添付の請求項の合理的解析により決定されなければならず、本発明の等価的範囲内における全ての変更は、本発明の範囲に含まれる。
【産業上の利用可能性】
【0277】
以上、前述した本発明の好ましい実施形態は、例示の目的のために開示されたものであって、当業者であれば、以下に添付された特許請求の範囲に開示された本発明の技術的思想及びその技術的範囲内で、様々な他の実施形態の改良、変更、代替、又は付加などが可能であろう。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
【手続補正書】
【提出日】2021-10-15
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
非正方形ブロックを有する画像を復号する方法であって、
在ブロックが前記非正方形ブロックであることに基づいて、前記現在ブロックを複数の係数グループに分割する段階であって、前記複数の係数グループは、非正方形係数グループを有する段階と、
第1スキャン順序及び第2スキャン順序に基づいて、前記複数の係数グループに対応する係数を取得する段階であって、前記第1スキャン順序は、前記非正方形係数グループの係数間のスキャン順序を示し、前記第2スキャン順序は、前記複数の係数グループ間のスキャン順序を示す段階と、
前記係数に基づいて前記画像を復元する段階と、を有し、
前記第1スキャン順序は、前記非正方形係数グループ内の係数の距離値に基づいて決定され、
前記第2スキャン順序は、前記複数の係数グループ内の前記非正方形係数グループの距離に基づいて決定され、
前記係数の距離値は、水平座標及び垂直座標の総和によって算出される、方法。
【請求項2】
前記非正方形係数グループの係数は、対角線スキャン順序に従って前記係数の距離値が増加する順でスキャンされる、請求項1に記載の方法。
【請求項3】
前記非正方形係数グループ内の係数は、同じ距離値を有するスキャンライン上で左下側から右上側へスキャンされる、請求項2に記載の方法。
【請求項4】
前記第1スキャン順序又は前記第2スキャン順序は、前記非正方形係数グループのサイズ又は形状に基づいて決定される、請求項1に記載の方法。
【請求項5】
画像を符号化する方法であって、
現在ブロックに対して変換を行うことによって係数を生成する段階と、
前記現在ブロックが非正方形ブロックであることに基づいて、前記係数を複数の係数グループに分割する段階であって、前記複数の係数グループは、非正方形係数グループを有する段階と、
第1スキャン順序及び第2スキャン順序に基づいて、前記係数に量子化及びエントロピエンコーディングを行う段階であって、前記第1スキャン順序は、前記非正方形係数グループの係数間のスキャン順序を示し、前記第2スキャン順序は、前記複数の係数グループ間のスキャン順序を示す段階と、を有し、
前記第1スキャン順序は、前記非正方形係数グループ内の係数の距離値に基づいて決定され、
前記第2スキャン順序は、前記複数の係数グループ内の前記非正方形係数グループの距離に基づいて決定され、
前記係数の距離値は、水平座標及び垂直座標の総和によって算出される、方法。
【請求項6】
前記非正方形係数グループの係数は、対角線スキャン順序に従って前記係数の距離値が増加する順でスキャンされる、請求項5に記載の方法。
【請求項7】
前記非正方形係数グループ内の係数は、同じ距離値を有するスキャンライン上で左下側から右上側へスキャンされる、請求項6に記載の方法。
【請求項8】
前記第1スキャン順序又は前記第2スキャン順序は、前記非正方形係数グループのサイズ又は形状に基づいて決定される、請求項5に記載の方法。
【請求項9】
画像に関するビットストリームを有するデータを送信する方法であって、
前記画像に関する前記ビットストリームを取得する段階であって、前記ビットストリームは、
現在ブロックに対して変換を行うことによって係数を生成することと、
前記現在ブロックが非正方形ブロックであることに基づいて、前記係数を複数の係数グループに分割することと、
第1スキャン順序及び第2スキャン順序に基づいて、前記係数に量子化及びエントロピエンコーディングを行うことと、によって生成される段階と、
前記ビットストリームを有する前記データを送信する段階と、を有し、
前記複数の係数グループは、非正方形係数グループを有し、
前記第1スキャン順序は、前記非正方形係数グループの係数間のスキャン順序を示し、
前記第2スキャン順序は、前記複数の係数グループ間のスキャン順序を示し、
前記第1スキャン順序は、前記非正方形係数グループ内の係数の距離値に基づいて決定され、
前記第2スキャン順序は、前記複数の係数グループ内の前記非正方形係数グループの距離に基づいて決定され、
前記係数の距離値は、水平座標及び垂直座標の総和によって算出される、方法。