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

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

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

特許7572576選択的変換に基づいた映像コーディング方法およびその装置
<>
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図1
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図2
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図3
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図4
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図5A
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図5B
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図5C
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図6
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図7
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図8
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図9
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図10
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図11
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図12
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図13
  • 特許-選択的変換に基づいた映像コーディング方法およびその装置 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-15
(45)【発行日】2024-10-23
(54)【発明の名称】選択的変換に基づいた映像コーディング方法およびその装置
(51)【国際特許分類】
   H04N 19/12 20140101AFI20241016BHJP
   H04N 19/157 20140101ALI20241016BHJP
   H04N 19/176 20140101ALI20241016BHJP
   H04N 19/61 20140101ALI20241016BHJP
【FI】
H04N19/12
H04N19/157
H04N19/176
H04N19/61
【請求項の数】 3
(21)【出願番号】P 2024002581
(22)【出願日】2024-01-11
(62)【分割の表示】P 2023005817の分割
【原出願日】2018-12-21
(65)【公開番号】P2024026721
(43)【公開日】2024-02-28
【審査請求日】2024-01-11
(31)【優先権主張番号】62/609,270
(32)【優先日】2017-12-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】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)【発明者】
【氏名】キム スンファン
(72)【発明者】
【氏名】ク ムンモ
(72)【発明者】
【氏名】イム ジェヒョン
(72)【発明者】
【氏名】シータル パルリ
【審査官】岩井 健二
(56)【参考文献】
【文献】特表2013-542664(JP,A)
【文献】国際公開第2017/058614(WO,A1)
【文献】米国特許出願公開第2017/0034530(US,A1)
【文献】Jianle Chen, et al.,Algorithm Description of Joint Exploration Test Model 7 (JEM 7),Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-G1001-v1,7th Meeting: Torino, IT,2017年08月,pp.28-32
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
デコード装置により行われる映像デコード方法であって、
ビットストリームから予測モード情報と対象ブロックの変換係数に関する情報と取得するステップと、
前記予測モード情報に基づいて前記対象ブロックの予測サンプルを導出するステップと、
記変換係数に関する前記情報に基づいて前記対象ブロック変換係数を導出するステップと、
記変換係数に対する分離変換に基づいて前記対象ブロックに対する残差サンプルを導出するステップと、
前記予測サンプルと前記残差サンプルとに基づいて復元サンプルを生成するステップと、を含み、
前記予測サンプルは、前記対象ブロックに対するイントラ予測に基づいて導出され、
前記非分離変換は、変換行列に基づいて行われ、
前記変換行列は、修正された基底ベクトルを含む行列であり
前記修正された基底ベクトルは、N個より少ない要素を含み
前記Nは、前記対象ブロックにおいて前記非分離変換が適用される領域に位置する変換係数の数に等しく、
前記非分離変換が適用される前記領域は、前記対象ブロックにおける8x8左上段領域であり、
前記Nは、64に等し、映像デコード方法。
【請求項2】
エンコード装置により行われる映像エンコード方法であって、
対象ブロックの予測サンプルを導出するステップと、
前記予測サンプルに基づいて前記対象ブロックの残差サンプルを導出するステップと、
前記残差サンプルに対する非分離変換に基づいて前記対象ブロック変換係数を導出するステップと、
前記予測サンプルを導出するために使用される予測モードに関連する予測モード情報を生成するステップと、
記変換係数に関する情報を生成するステップと、
前記予測モード情報と記変換係数に関する前記情報をエンコードするステップと、を含み
前記予測サンプルは、前記対象ブロックに対するイントラ予測に基づいて導出され、
前記非分離変換は、変換行列に基づいて行われ、
前記変換行列は、修正された基底ベクトルを含む行列であり
前記修正された基底ベクトルは、N個より少ない要素を含み
前記Nは、前記対象ブロックにおいて前記非分離変換が適用される領域に位置する変換係数の数に等しく、
前記非分離変換が適用される前記領域は、前記対象ブロックにおける8x8左上段領域であり、
前記Nは、64に等し、映像エンコード方法。
【請求項3】
映像に関するビットストリームを含むデータの送信方法であって、
前記映像に関する前記ビットストリームを取得するステップであって、前記ビットストリームは、
対象ブロックの予測サンプルを導出するステップと、
前記予測サンプルに基づいて前記対象ブロックの残差サンプルを導出するステップと、
前記残差サンプルに対する非分離変換に基づいて前記対象ブロック変換係数を導出するステップと、
前記予測サンプルを導出するために使用される予測モードに関連する予測モード情報を生成するステップと、
記変換係数に関する情報を生成するステップと、
前記予測モード情報と記変換係数に関する前記情報をエンコードするステップと、によって生成されるステップと、
前記ビットストリームを含む前記データを送信するステップと、を含み
前記予測サンプルは、前記対象ブロックに対するイントラ予測に基づいて導出され、
前記非分離変換は、変換行列に基づいて行われ、
前記変換行列は、修正された基底ベクトルを含む行列であり
前記修正された基底ベクトルは、N個より少ない要素を含み
前記Nは、前記対象ブロックにおいて前記非分離変換が適用される領域に位置する変換係数の数に等しく、
前記非分離変換が適用される前記領域は、前記対象ブロックにおける8x8左上段領域であり、
前記Nは、64に等し、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像コーディング技術に関し、より詳しくは、映像コーディングシステムにおける選択的変換に従う映像デコード方法および装置に関する。
【背景技術】
【0002】
最近、HD(High Definition)映像およびUHD(Ultra High Definition)映像のような高解像度、高品質の映像に対する需要が、多様な分野で増加している。映像データが高解像度、高品質になるほど、既存の映像データに比べて相対的に送信される情報量またはビット量が増加するため、既存の有無線広帯域回線のような媒体を利用して映像データを送信するか、または既存の記憶(格納)媒体を利用して映像データを記憶する場合、送信コスト(費用)および記憶コストが増加する。
【0003】
これによって、高解像度、高品質映像の情報を効果的に送信または記憶し、再生するために高効率の映像圧縮技術が要求される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の技術的課題は、映像コーディング効率を高める方法および装置を提供することにある。
【0005】
本発明の他の技術的課題は、変換効率を高める方法および装置を提供することにある。
【0006】
本発明のさらに他の技術的課題は、変換を通じて残差(レジデュアル)コーディングの効率を高める方法および装置を提供することにある。
【0007】
本発明のさらに他の技術的課題は、選択的変換(selective transform)に基づいた映像コーディング方法および装置を提供することにある。
【課題を解決するための手段】
【0008】
本発明の一実施例によれば、デコード装置により行われる映像デコード方法が提供される。上記方法は、ビットストリームから対象ブロックの変換係数を導出するステップと、変換係数に対する選択的変換に基づいて対象ブロックに対する残差サンプルを導出するステップと、対象ブロックに対する残差サンプルおよび対象ブロックに対する予測サンプルに基づいて復元ピクチュアを生成するステップと、を有し、選択的変換は、修正された変換行列(マトリックス)に基づいて行われ、修正された変換行列は、修正された基底ベクトルを有する行列であり、修正された基底ベクトルは、N個の要素のうち、選択された特定個数の要素を有することを特徴とする。
【0009】
本発明の他の一実施例によれば、映像デコーディングを行うデコード装置が提供される。上記デコード装置は、ビットストリームから対象ブロックの変換係数を導出するエントロピデコード部と、変換係数に対する選択的変換(selective transform)に基づいて対象ブロックに対する残差サンプルを導出する逆変換部と、対象ブロックに対する残差サンプルおよび対象ブロックに対する予測サンプルに基づいて復元ピクチュアを生成する加算部と、を有し、選択的変換は、修正された(modified)変換行列(transform matrix)に基づいて行われ、修正された変換行列は、修正された基底ベクトルを有する行列であり、修正された基底ベクトルは、N個の要素のうち、選択された特定個数の要素を有することを特徴とする。
【0010】
本発明のさらに他の一実施例によれば、エンコード装置により行われるビデオエンコード方法を提供する。上記方法は、対象ブロックの残差サンプルを導出するステップと、残差サンプルに対する選択的変換(selective transform)に基づいて対象ブロックの変換係数を導出するステップと、変換係数に関する情報をエンコードするステップと、を有し、選択的変換は、修正された(modified)変換行列(transform matrix)に基づいて行われ、修正された変換行列は、修正された基底ベクトルを有する行列であり、修正された基底ベクトルは、N個の要素のうち、選択された特定個数の要素を有することを特徴とする。
【0011】
本発明のさらに他の一実施例によれば、ビデオエンコード装置を提供する。上記エンコード装置は、対象ブロックの残差サンプルを導出する加算部と、残差サンプルに対する選択的変換(selective transform)に基づいて対象ブロックの変換係数を導出する変換部と、変換係数に関する情報をエンコードするエントロピエンコード部と、を有し、選択的変換は、修正された(modified)変換行列(transform matrix)に基づいて行われ、修正された変換行列は、修正された基底ベクトルを有する行列であり、修正された基底ベクトルは、N個の要素のうち、選択された特定個数の要素を有することを特徴とする。
【発明の効果】
【0012】
本発明によれば、効率の良い変換を通じて残差処理のために転送されなければならないデータ量を減らすことができ、残差コーディング効率を高めることができる。
【0013】
本発明によれば、選択された特定個数の要素を含む基底ベクトルで構成された変換行列に基づいて非分離変換を行うことができ、これを通じて非分離変換のためのメモリ負荷(ロード)および計算複雑度を減らすことができ、残差コーディング効率を高めることができる。
【0014】
本発明によれば、単純化された構造の変換行列に基づいて非分離変換を行うことができ、これを通じて残差処理のために転送(送信)されなければならないデータ量を減らすことができ、残差コーディング効率を高めることができる。
【図面の簡単な説明】
【0015】
図1】本発明が適用されることができるビデオエンコード装置の構成を概略的に説明する図である。
図2】本発明が適用されることができるビデオデコード装置の構成を概略的に説明する図である。
図3】本発明に従う多重変換(multiple transform)技法を概略的に示す図である。
図4】65個の予測方向のイントラ方向性モードを例示的に示す図である。
図5A】本発明の一実施例に従う選択的変換(selective transform)を説明する図である。
図5B】本発明の一実施例に従う選択的変換(selective transform)を説明する図である。
図5C】本発明の一実施例に従う選択的変換(selective transform)を説明する図である。
図6】上記選択的変換を2次変換に適用した多重変換技法を概略的に示す図である。
図7】本発明の実施例に従う対象ブロックに基づいて変換係数の配列を説明する図である。
図8】上記簡素化変換と上記選択的変換とが結合された変換を通じて変換係数を導出する一例を示す図である。
図9】上記選択的変換を通じて変換係数を導出する一例を示す図である。
図10】関連ベクトルに対する2つのファクタに基づいて、上記関連ベクトルを導出して選択的変換を行う一例を示す図である。
図11】本発明に従うエンコード装置による映像エンコード方法を概略的に示す図である。
図12】本発明に従う映像エンコード方法を行うエンコード装置を概略的に示す図である。
図13】本発明に従うデコード装置による映像デコード方法を概略的に示す図である。
図14】本発明に従う映像デコード方法を行うデコード装置を概略的に示す図である。
【発明を実施するための形態】
【0016】
本発明は、多様な変更を加えることができ、様々な実施例を有することができ、特定の実施例を図面に例示して詳細に説明する。しかしながら、これは、本発明を特定の実施例に限定するものではない。本明細書で使用する用語は、単に特定の実施例を説明するために使われたものであり、本発明の技術的思想を限定しようとする意図に使われるものではない。単数の表現は、文脈上明白に異なる意味でない限り、複数の表現を含む。本明細書において、“含む”または“有する”などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品またはそれらを組み合わせたものが存在することを指定するものであり、一つまたは複数の他の特徴や数字、ステップ、動作、構成要素、部品またはそれらを組み合わせたものの存在または付加の可能性を予め排除しないと理解しなければならない。
【0017】
一方、本発明で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の便宜のために独立して図示されたものであり、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されることを意味しない。例えば、各構成のうちの二つ以上の構成が合わせられて一つの構成をなすこともあり、一つの構成が複数の構成に分けられることもある。各構成が統合および/または分離された実施例も、本発明の本質から外れない限り、本発明の権利範囲に含まれる。
【0018】
以下、添付図面を参照し、本発明の好ましい実施例をより詳細に説明する。以下、図面上の同一の構成要素については同一の参照符号を使用し、同一の構成要素について重複する説明は省略する。
【0019】
一方、本発明は、ビデオ/映像コーディングに関する。例えば、本発明で開示された方法/実施例は、VVC(Versatile Video Coding)標準または次世代ビデオ/イメージコーディングに開示された方法に適用されることができる。
【0020】
本明細書において、ピクチャ(picture)は、一般的に特定の時間帯の一つの映像を示す単位を意味し、スライス(slice)は、コーディングにおいてピクチャの一部を構成する単位である。一つのピクチャは、複数のスライスで構成されてもよく、必要に応じて、ピクチャとスライスとは、互いに混用されてもよい。
【0021】
ピクセル(pixel)またはペル(pel)は、一つのピクチャ(または、映像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用されることができる。サンプルは、一般的にピクセルまたはピクセルの値を示し、輝度(ルマ)成分のピクセル/ピクセルの値のみを示してもよく、彩度(クロマ)成分のピクセル/ピクセルの値のみを示してもよい。
【0022】
ユニット(unit)は、映像処理の基本単位を示す。ユニットは、ピクチャの特定領域および該当領域に関する情報のうちの少なくとも一つを含むことができる。ユニットは、場合によってブロック(block)または領域(area)などの用語と混用されてもよい。一般的な場合、MxNのブロックは、M個の列およびN個の行からなるサンプルまたは変換係数(transform coefficient)の集合を示すことができる。
【0023】
図1は、本発明が適用されることができるビデオエンコード装置の構成を概略的に説明する図面である。
【0024】
図1を参照すると、ビデオエンコード装置100は、ピクチャ分割部105、予測部110、残差(レジデュアル)処理部120、エントロピエンコード部130、加算部140、フィルタ部150、およびメモリ160を含むことができる。残差処理部120は、減算部121、変換部122、量子化部123、再整列部124、逆量子化部125、および逆変換部126を含むことができる。
【0025】
ピクチャ分割部105は、入力されたピクチャを少なくとも一つの処理ユニット(processing unit)に分割できる。
【0026】
一例として、処理ユニットは、コーディングユニット(Coding Unit、CU)と呼ばれる。この場合、コーディングユニットは、最大コーディングユニット(Largest Coding Unit、LCU)からQTBT(Quad-Tree Binary-Tree)構造によって再帰的に(recursively)分割されることができる。例えば、一つのコーディングユニットは、四分木(クアッドツリー)構造および/または二分木(バイナリツリー)構造に基づいて下位デプスの(deeper)複数のコーディングユニットに分割されることができる。この場合、例えば、四分木構造が先に適用され、二分木構造が後に適用されることができる。あるいは、二分木構造が先に適用されることもできる。それ以上分割されない最終コーディングユニットに基づいて、本発明によるコーディング手順が実行されることができる。この場合、映像特性によるコーディング効率などに基づいて、最大コーディングユニットが最終コーディングユニットとして使われることができ、または、必要によって、コーディングユニットは、再帰的に(recursively)より下位デプスのコーディングユニットに分割されて最適なサイズのコーディングユニットが最終コーディングユニットとして使われることができる。ここで、コーディング手順とは、後述する予測、変換、および復元などの手順を含むことができる。
【0027】
他の例として、処理ユニットは、コーディングユニット(Coding Unit、CU)、予測ユニット(Prediction Unit、PU)または変換ユニット(Transform Unit、TU)を含むこともできる。コーディングユニットは、最大コーディングユニット(Largest Coding Unit、LCU)から四分木構造によって下位デプスの(deeper)コーディングユニットに分割(split)されることができる。この場合、映像特性によるコーディング効率などに基づいて、最大コーディングユニットが最終コーディングユニットとして使われることができ、または、必要によって、コーディングユニットは、再帰的に(recursively)より下位デプスのコーディングユニットに分割されて最適なサイズのコーディングユニットが最終コーディングユニットとして使われることができる。最小コーディングユニット(Smallest Coding Unit、SCU)が設定された場合、コーディングユニットは、最小コーディングユニットより小さいコーディングユニットに分割されることができない。ここで、最終コーディングユニットとは、予測ユニットまたは変換ユニットにパーティショニングまたは分割される基盤となるコーディングユニットを意味する。予測ユニットは、コーディングユニットからパーティショニング(partitioning)されるユニットであって、サンプル予測のユニットである。このとき、予測ユニットは、サブブロック(subblock)に分けられることもできる。変換ユニットは、コーディングユニットから四分木構造によって分割されることができ、変換係数を導出(誘導)するユニットおよび/または変換係数から残差信号(residual signal)を導出するユニットである。以下、コーディングユニットはコーディングブロック(Coding Block、CB)、予測ユニットは予測ブロック(Prediction Block、PB)、変換ユニットは変換ブロック(Transform Block、TB)とも呼ばれる。予測ブロックまたは予測ユニットは、ピクチャ内におけるブロック形態の特定領域を意味し、予測サンプルのアレイ(array)を含むことができる。また、変換ブロックまたは変換ユニットは、ピクチャ内におけるブロック形態の特定領域を意味し、変換係数または残差サンプルのアレイを含むことができる。
【0028】
予測部110は、処理対象ブロック(以下、現(現在)ブロックという)に対する予測を実行し、上記現ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部110で実行される予測の単位は、コーディングブロック、または変換ブロック、または予測ブロックである。
【0029】
予測部110は、現ブロックにイントラ予測が適用されるか、またはインター予測が適用されるかを決定することができる。一例として、予測部110は、CU単位でイントラ予測またはインター予測のいずれが適用されるかを決定することができる。
【0030】
イントラ予測の場合、予測部110は、現ブロックが属するピクチャ(以下、現ピクチャ)内の現ブロックの外部の参照サンプルに基づいて、現ブロックに対する予測サンプルを導出することができる。このとき、予測部110は、(i)現ブロックの隣接(neighboring)参照サンプルの平均(average)または補間(interpolation)に基づいて予測サンプルを導出することができ、(ii)現ブロックの隣接参照サンプルのうち、予測サンプルに対して特定(予測)方向に存在する参照サンプルに基づいて上記予測サンプルを導出することもできる。(i)の場合は、非方向性モードまたは非角度モードと呼ばれ、(ii)の場合は、方向性(directional)モードまたは角度(angular)モードと呼ばれる。イントラ予測における予測モードは、例えば、33個の方向性予測モードと少なくとも2個以上の非方向性モードとを有することができる。非方向性モードは、DC予測モードおよび平面(プラナー)モード(Planarモード)を含むことができる。予測部110は、隣接ブロックに適用された予測モードを利用し、現ブロックに適用される予測モードを決定することもできる。
【0031】
インター予測の場合、予測部110は、参照ピクチャ上で動きベクトルにより特定されるサンプルに基づいて、現ブロックに対する予測サンプルを導出することができる。予測部110は、スキップ(skip)モード、マージ(merge)モード、およびMVP(Motion Vector Prediction)モードのうちのいずれか一つを適用して、現ブロックに対する予測サンプルを導出することができる。スキップモードおよびマージモードの場合、予測部110は、隣接ブロックの動き情報を現ブロックの動き情報として利用できる。スキップモードの場合、マージモードと違って予測サンプルとオリジナル(原本)サンプルとの間の差(残差)が送信されない。MVPモードの場合、隣接ブロックの動きベクトルを、動きベクトル予測子(Motion Vector Predictor)として利用し、現ブロックの動きベクトル予測子として利用して現ブロックの動きベクトルを導出することができる。
【0032】
インター予測の場合、隣接ブロックは、現ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャ(reference picture)に存在する時間的隣接ブロック(temporal neighboring block)とを含むことができる。上記時間的隣接ブロックを含む参照ピクチャは、コロケート(同一位置)ピクチャ(collocated Picture、colPic)とも呼ばれる。動き情報(motion information)は、動きベクトルおよび参照ピクチャインデックスを含むことができる。予測モード情報および動き情報などの情報は、(エントロピ)エンコードされてビットストリーム形態で出力されることができる。
【0033】
スキップモードおよびマージモードで時間的隣接ブロックの動き情報が利用される場合、参照ピクチャリスト(reference picture list)上の最上位ピクチャが参照ピクチャとして利用されることもできる。参照ピクチャリスト(Picture Order Count)に含まれる参照ピクチャは、現ピクチャと該当参照ピクチャとの間のPOC(Picture Order Count)の差に基づいて整列されることができる。POCは、ピクチャの表示順序に対応し、コーディング順序と区分されることができる。
【0034】
減算部121は、オリジナルサンプルと予測サンプルとの間の差である残差サンプルを生成する。スキップモードが適用される場合には、前述したように残差サンプルを生成しない。
【0035】
変換部122は、変換ブロック単位で残差サンプルを変換して変換係数(transform coefficient)を生成する。変換部122は、該当変換ブロックのサイズと、該当変換ブロックと空間的に重なるコーディングブロックまたは予測ブロックに適用された予測モードと、によって変換を実行することができる。例えば、上記変換ブロックと重なる上記コーディングブロックまたは上記予測ブロックにイントラ予測が適用され、上記変換ブロックが4×4の残差アレイ(array)である場合、残差サンプルは、DST(Discrete Sine Transform)変換カーネルを利用して変換され、その他の場合、残差サンプルは、DCT(Discrete Cosine Transform)変換カーネルを利用して変換できる。
【0036】
量子化部123は、変換係数を量子化し、量子化された変換係数を生成することができる。
【0037】
再整列部124は、量子化された変換係数を再整列する。再整列部124は、係数スキャン(scanning)方法を介して、ブロック形態の量子化された変換係数を1次元ベクトル形態で再整列できる。ここで、再整列部124は、別途の構成で説明したが、量子化部123の一部であってもよい。
【0038】
エントロピエンコード部130は、量子化された変換係数に対するエントロピエンコーディングを実行することができる。エントロピエンコーディングは、例えば、指数ゴロム(exponential Golomb)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-Adaptive Binary Arithmetic Coding)などのエンコード方法を含むことができる。エントロピエンコード部130は、量子化された変換係数以外にビデオ復元に必要な情報(例えば、シンタックス要素(syntax element)の値など)を、共にまたは別途にエントロピエンコーディングまたは予め(既)設定された方法によってエンコードすることもできる。エンコードされた情報は、ビットストリーム形態でNAL(Network Abstraction Layer)ユニット単位で送信または記憶されることができる。
【0039】
逆量子化部125は、量子化部123で量子化された値(量子化された変換係数)を逆量子化し、逆変換部126は、逆量子化部125で逆量子化された値を逆変換して残差サンプルを生成する。
【0040】
加算部140は、残差サンプルと予測サンプルとを加算してピクチャを復元する。残差サンプルと予測サンプルとは、ブロック単位に加算されて、復元ブロックが生成されることができる。ここで、加算部140は、別途の構成で説明したが、予測部110の一部であってもよい。一方、加算部140は、復元部(reconstruction module)または復元ブロック生成部とも呼ばれる。
【0041】
復元されたピクチャ(reconstructed picture)に対してフィルタ部150は、デブロッキングフィルタおよび/またはサンプル適応オフセット(sample adaptive offset)を適用することができる。デブロックフィルタリングおよび/またはサンプル適応オフセットを介して、復元ピクチャ内のブロック境界のアーチファクトや量子化過程における歪曲が補正されることができる。サンプル適応オフセットは、サンプル単位に適用されることができ、デブロックフィルタリングの過程が完了した後に適用されることができる。フィルタ部150は、ALF(Adaptive Loop Filter)を復元されたピクチャに適用することもできる。ALFは、デブロッキングフィルタおよび/またはサンプル適応オフセットが適用された後の復元されたピクチャに対して適用されることができる。
【0042】
メモリ160は、復元ピクチャ(デコードされたピクチャ)またはエンコーディング/デコーディングに必要な情報を記憶することができる。ここで、復元ピクチャは、上記フィルタ部150によるフィルタリング手順が完了した復元ピクチャである。上記記憶された復元ピクチャは、他のピクチャの(インター)予測のための参照ピクチャとして活用されることができる。例えば、メモリ160は、インター予測に使われる(参照)ピクチャを記憶することができる。このとき、インター予測に使われるピクチャは、参照ピクチャセット(reference picture set)または参照ピクチャリスト(reference picture list)により指定されることができる。
【0043】
図2は、本発明が適用されることができるビデオデコード装置の構成を概略的に説明する図面である。
【0044】
図2を参照すると、ビデオデコード装置200は、エントロピデコード部210、残差処理部220、予測部230、加算部240、フィルタ部250、およびメモリ260を含むことができる。ここで、残差処理部220は、再整列部221、逆量子化部222、逆変換部223を含むことができる。
【0045】
ビデオ情報を含むビットストリームが入力されると、ビデオデコード装置200は、ビデオエンコード装置でビデオ情報が処理されたプロセスに対応してビデオを復元することができる。
【0046】
例えば、ビデオデコード装置200は、ビデオエンコード装置で適用された処理ユニットを利用してビデオデコーディングを実行することができる。したがって、ビデオデコーディングの処理ユニットブロックは、一例としてコーディングユニットであり、他の例としてコーディングユニット、予測ユニットまたは変換ユニットである。コーディングユニットは、最大コーディングユニットから四分木構造および/または二分木構造によって分割されることができる。
【0047】
予測ユニットおよび変換ユニットが場合によってさらに使用されることができ、この場合、予測ブロックは、コーディングユニットから導出またはパーティショニングされるブロックであって、サンプル予測のユニットである。このとき、予測ユニットは、サブブロックに分けられることもできる。変換ユニットは、コーディングユニットから四分木構造によって分割されることができ、変換係数を導出するユニットまたは変換係数から残差信号を導出するユニットである。
【0048】
エントロピデコード部210は、ビットストリームをパージングしてビデオ復元またはピクチャ復元に必要な情報を出力することができる。例えば、エントロピデコード部210は、指数ゴロム符号化、CAVLCまたはCABACなどのコーディング方法に基づいてビットストリーム内の情報をデコードし、ビデオ復元に必要なシンタックスエレメントの値、残差に対する変換係数の量子化された値を出力することができる。
【0049】
より詳細には、CABACエントロピデコード方法は、ビットストリームで各シンタックス要素に該当するBINを受信し、デコーディング対象シンタックス要素情報ならびに隣接およびデコーディング対象ブロックのデコーディング情報または以前のステップでデコードされたシンボル/BINの情報を利用してコンテキスト(context)モデルを決定し、決定されたコンテキストモデルによってBINの発生確率を予測してBINの算術復号(デコーディング)(arithmetic decoding)を実行することで、各シンタックス要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピデコード方法は、コンテキストモデルの決定後、次のシンボル/BINのコンテキストモデルのために、デコードされたシンボル/BINの情報を利用してコンテキストモデルをアップデートすることができる。
【0050】
エントロピデコード部210でデコードされた情報のうちの予測に関する情報は、予測部230に提供され、エントロピデコード部210でエントロピデコーディングが実行された残差値、すなわち、量子化された変換係数は、再整列部221に入力されることができる。
【0051】
再整列部221は、量子化されている変換係数を2次元のブロック形態で再整列できる。再整列部221は、エンコード装置で実行された係数スキャンに対応して再整列を実行することができる。ここで、再整列部221は、別途の構成で説明したが、逆量子化部222の一部であってもよい。
【0052】
逆量子化部222は、量子化されている変換係数を、(逆)量子化パラメータに基づいて逆量子化して変換係数を出力することができる。このとき、量子化パラメータを導出するための情報は、エンコード装置からシグナリングされることができる。
【0053】
逆変換部223は、変換係数を逆変換して残差サンプルを導出することができる。
【0054】
予測部230は、現ブロックに対する予測を実行し、上記現ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部230で実行される予測の単位は、コーディングブロック、または変換ブロック、または予測ブロックである。
【0055】
予測部230は、上記予測に関する情報に基づいて、イントラ予測を適用するか、またはインター予測を適用するかを決定することができる。このとき、イントラ予測およびインター予測のうちのいずれを適用するかを決定する単位と予測サンプルを生成する単位とは異なる。併せて、インター予測とイントラ予測とにおいて、予測サンプルを生成する単位も異なる。例えば、インター予測およびイントラ予測のうちのいずれを適用するかは、CU単位で決定されることができる。また、例えば、インター予測において、PU単位で予測モードを決定して予測サンプルを生成することができ、イントラ予測において、PU単位で予測モードを決定し、TU単位で予測サンプルを生成することもできる。
【0056】
イントラ予測の場合、予測部230は、現ピクチャ内の隣接参照サンプルに基づいて現ブロックに対する予測サンプルを導出することができる。予測部230は、現ブロックの隣接参照サンプルに基づいて方向性モードまたは非方向性モードを適用して、現ブロックに対する予測サンプルを導出することができる。このとき、隣接ブロックのイントラ予測モードを利用して、現ブロックに適用する予測モードが決定されることもできる。
【0057】
インター予測の場合、予測部230は、参照ピクチャ上で動きベクトルにより参照ピクチャ上で特定されるサンプルに基づいて、現ブロックに対する予測サンプルを導出することができる。予測部230は、スキップ(skip)モード、マージ(merge)モード、およびMVPモードのうちのいずれか一つを適用して、現ブロックに対する予測サンプルを導出することができる。このとき、ビデオエンコード装置で提供された現ブロックのインター予測に必要な動き情報、例えば、動きベクトル、参照ピクチャインデックスなどに関する情報は、上記予測に関する情報に基づいて取得または導出されることができる。
【0058】
スキップモードおよびマージモードの場合、隣接ブロックの動き情報が現ブロックの動き情報として利用されることができる。このとき、隣接ブロックは、空間的隣接ブロックおよび時間的隣接ブロックを含むことができる。
【0059】
予測部230は、使用可能(可用)な隣接ブロックの動き情報でマージ候補リストを構成し、マージインデックスがマージ候補リスト上で指示する情報を現ブロックの動きベクトルとして使用することができる。マージインデックスは、エンコード装置からシグナリングされることができる。動き情報は、動きベクトルおよび参照ピクチャを含むことができる。スキップモードおよびマージモードで時間的隣接ブロックの動き情報が利用される場合、参照ピクチャリスト上の最上位ピクチャが参照ピクチャとして利用されることができる。
【0060】
スキップモードの場合、マージモードと違って予測サンプルとオリジナルサンプルとの間の差(残差)が送信されない。
【0061】
MVPモードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として利用して、現ブロックの動きベクトルが導出されることができる。このとき、隣接ブロックは、空間的隣接ブロックおよび時間的隣接ブロックを含むことができる。
【0062】
一例として、マージモードが適用される場合、復元された空間的隣接ブロックの動きベクトルおよび/または時間的隣接ブロックであるColブロックに対応する動きベクトルを利用し、マージ候補リストが生成されることができる。マージモードでは、マージ候補リストから選択された候補ブロックの動きベクトルが現ブロックの動きベクトルとして使われる。上記予測に関する情報は、上記マージ候補リストに含まれている候補ブロックの中から選択された最適な動きベクトルを有する候補ブロックを指示するマージインデックスを含むことができる。このとき、予測部230は、上記マージインデックスを利用し、現ブロックの動きベクトルを導出することができる。
【0063】
他の例として、MVP(Motion Vector Prediction)モードが適用される場合、復元された空間的隣接ブロックの動きベクトルおよび/または時間的隣接ブロックであるColブロックに対応する動きベクトルを利用し、動きベクトル予測子候補リストが生成されることができる。すなわち、復元された空間的隣接ブロックの動きベクトルおよび/または時間的隣接ブロックであるColブロックに対応する動きベクトルは、動きベクトル候補として使われることができる。上記予測に関する情報は、上記リストに含まれている動きベクトル候補の中から選択された最適な動きベクトルを指示する予測動きベクトルインデックスを含むことができる。このとき、予測部230は、上記動きベクトルインデックスを利用し、動きベクトル候補リストに含まれている動きベクトル候補の中から、現ブロックの予測動きベクトルを選択することができる。エンコード装置の予測部は、現ブロックの動きベクトルと動きベクトル予測子との間の動きベクトルの差分(MVD)を求めることができ、これをエンコードしてビットストリーム形態で出力できる。すなわち、MVDは、現ブロックの動きベクトルから上記動きベクトル予測子を引いた値として求められる。このとき、予測部230は、上記予測に関する情報に含まれている動きベクトル差分を取得し、上記動きベクトル差分と上記動きベクトル予測子との加算を介して現ブロックの上記動きベクトルを導出することができる。また、予測部は、参照ピクチャを指示する参照ピクチャインデックスなどを上記予測に関する情報から取得または導出できる。
【0064】
加算部240は、残差サンプルと予測サンプルとを加算して現ブロックまたは現ピクチャを復元することができる。加算部240は、残差サンプルと予測サンプルとをブロック単位に加算して現ピクチャを復元することもできる。スキップモードが適用された場合には残差が送信されないため、予測サンプルが復元サンプルになることができる。ここで、加算部240は、別途の構成で説明したが、予測部230の一部であってもよい。一方、加算部240は、復元部(reconstruction module)または復元ブロック生成部とも呼ばれる。
【0065】
フィルタ部250は、復元されたピクチャにデブロックフィルタリングサンプル適応オフセット、および/またはALFなどを適用することができる。このとき、サンプル適応オフセットは、サンプル単位に適用されることができ、デブロックフィルタリング以後に適用されることもできる。ALFは、デブロックフィルタリングおよび/またはサンプル適応オフセット以後に適用されることもできる。
【0066】
メモリ260は、復元ピクチャ(デコードされたピクチャ)またはデコーディングに必要な情報を記憶することができる。ここで、復元ピクチャは、上記フィルタ部250によるフィルタリング手順が完了した復元ピクチャである。例えば、メモリ260は、インター予測に使われるピクチャを記憶することができる。このとき、インター予測に使われるピクチャは、参照ピクチャセットまたは参照ピクチャリストにより指定されることもできる。復元されたピクチャは、他のピクチャに対する参照ピクチャとして利用されることができる。また、メモリ260は、復元されたピクチャを出力順序によって出力することもできる。
【0067】
一方、前述した変換を通じて上記現ブロックの残差ブロックに対する低周波数(lower frequency)の変換係数が導出されることができ、上記残差ブロックの端にはゼロテール(zero tail)が導出されることができる。
【0068】
具体的には、上記変換は、2つの主要過程で構成されることができるところ、上記主要過程は、コア(変換)(core transform)および2次変換(secondary transform)を含むことができる。上記コア変換(core transform)および上記2次変換を含む変換は、多重変換技法と示されることができる。
【0069】
図3は、本発明に従う多重変換技法を概略的に示す。
【0070】
図3を参照すると、変換部は、前述した図1のエンコード装置内の変換部に対応することができ、逆変換部は、前述した図1のエンコード装置内の逆変換部または図2のデコード装置内の逆変換部に対応できる。
【0071】
変換部は、残差ブロック内の残差サンプル(残差サンプルアレイ)に基づいて1次変換を行って、(1次)変換係数を導出することができる(S310)。ここで、上記1次変換は、適応的マルチ(多重)コア変換(Adaptive Multiple core Transform、AMT)を含むことができる。上記適応的マルチコア変換は、MTS(Multiple Transform Set)と示されることができる。
【0072】
上記適応的マルチコア変換は、DCT(Discrete Cosine Transform)タイプ2およびDST(Discrete Sine Transform)タイプ7、DCTタイプ8、および/またはDSTタイプ1を追加的に使用して変換する方式を示すことができる。すなわち、上記適応的マルチコア変換は、上記DCTタイプ2、上記DSTタイプ7、上記DCTタイプ8、および上記DSTタイプ1のうち、選択された複数の変換カーネルに基づいて、空間領域(ドメイン)の残差信号(または、残差ブロック)を周波数領域の変換係数(または、1次変換係数)に変換する変換方法を示すことができる。ここで、上記1次変換係数は、変換部の立場で一時(臨時)変換係数と称されることもできる。
【0073】
言い換えると、既存の変換方法が適用される場合、DCTタイプ2に基づいて残差信号(または、残差ブロック)に対する空間領域から周波数領域への変換が適用されて、変換係数が生成されることができる。これとは異なり、上記適応的マルチコア変換が適用される場合、DCTタイプ2、DSTタイプ7、DCTタイプ8、および/またはDSTタイプ1などに基づいて残差信号(または、残差ブロック)に対する空間領域から周波数領域への変換が適用されて、変換係数(または、1次変換係数)が生成されることができる。ここで、DCTタイプ2、DSTタイプ7、DCTタイプ8、およびDSTタイプ1などは、変換タイプ、変換カーネル(kernel)、または変換コア(core)と称されることができる。
【0074】
参考に、上記DCT/DST変換タイプは、基底関数(basis functions)に基づいて定義されることができ、上記基底関数は、次の表の通り示すことができる。
【0075】
<表1>
【表1】
【0076】
上記適応的マルチコア変換が行われる場合、上記変換カーネルのうち、対象ブロックに対する垂直変換カーネルおよび水平変換カーネルが選択されることができ、上記垂直変換カーネルに基づいて上記対象ブロックに対する垂直変換が行われ、上記水平変換カーネルに基づいて上記対象ブロックに対する水平変換が行われることができる。ここで、上記水平変換は、上記対象ブロックの水平成分に対する変換を示すことができ、上記垂直変換は、上記対象ブロックの垂直成分に対する変換を示すことができる。上記垂直変換カーネル/水平変換カーネルは、残差ブロックを取り囲む(encompass)対象ブロック(CUまたはサブブロック)の予測モードおよび/または変換サブセットを指し示す変換インデックスに基づいて適応的に決定されることができる。
【0077】
例えば、上記適応的マルチコア変換は、対象ブロックの幅(width)および高さ(height)が全て64より小さいか等しい場合に適用されることができ、上記対象ブロックの上記適応的マルチコア変換が適用されるか否かは、CUレベルフラグに基づいて決定できる。具体的には、上記CUレベルフラグが0の場合、前述した既存の変換方法が適用されることができる。すなわち、上記CUレベルフラグが0の場合、上記DCTタイプ2に基づいて残差信号(または、残差ブロック)に対する空間領域から周波数領域への変換が適用されて変換係数が生成されることができ、上記変換係数がエンコードされることができる。一方、ここで上記対象ブロックは、CUでありえる。上記CUレベルフラグが0の場合、上記適応的マルチコア変換が上記対象ブロックに適用されることができる。
【0078】
また、上記適応的マルチコア変換が適用される対象ブロックのルマブロックの場合、2つの追加的なフラグがシグナリングされることができ、上記フラグに基づいて垂直変換カーネルおよび水平変換カーネルが選択されることができる。上記垂直変換カーネルに関するフラグは、AMT垂直フラグと示されることができ、AMT_TU_vertical_flag(またはEMT_TU_vertical_flag)は、上記AMT垂直フラグのシンタックス要素(syntax element)を示すことができる。上記水平変換カーネルに関するフラグは、AMT水平フラグと示されることができ、AMT_TU_horizontal_flag(または、EMT_TU_horizontal_flag)は、上記AMT水平フラグのシンタックス要素を示すことができる。上記AMT垂直フラグは、上記垂直変換カーネルに対する変換サブセットに含まれる変換カーネル候補のうちの1つの変換カーネル候補を指し示すことができ、上記AMT垂直フラグが指し示す変換カーネル候補は、上記対象ブロックに対する垂直変換カーネルとして導出されることができる。また、上記AMT水平フラグは、上記水平変換カーネルに対する変換サブセットに含まれる変換カーネル候補のうちの1つの変換カーネル候補を指し示すことができ、上記AMT水平フラグが指し示す変換カーネル候補は、上記対象ブロックに対する水平変換カーネルとして導出されることができる。一方、上記AMT垂直フラグは、MTS垂直フラグと示されることもでき、上記AMT水平フラグは、MTS水平フラグと示されることもできる。
【0079】
一方、3個の変換サブセットが予め設定されることができ、上記対象ブロックに適用されたイントラ予測モードに基づいて、上記変換サブセットのうちの1つが上記垂直変換カーネルに対する変換サブセットとして導出されることができる。また、上記対象ブロックに適用されたイントラ予測モードに基づいて、上記変換サブセットのうちの1つが上記水平変換カーネルに対する変換サブセットとして導出されることができる。例えば、上記予め設定された変換サブセットは、次の表の通り導出されることができる。
【0080】
<表2>
【表2】
【0081】
表2を参照すると、インデックス値が0である変換サブセットは、DSTタイプ7およびDCTタイプ8を変換カーネル候補として含む変換サブセットを示すことができ、インデックス値が1である変換サブセットは、DSTタイプ7およびDSTタイプ1を変換カーネル候補として含む変換サブセットを示すことができ、インデックス値が2である変換サブセットは、DSTタイプ7およびDCTタイプ8を変換カーネル候補として含む変換サブセットを示すことができる。
【0082】
上記対象ブロックに適用されたイントラ予測モードに基づいて導出される上記垂直変換カーネルに対する変換サブセットおよび上記水平変換カーネルに対する変換サブセットは、次の表の通り導出できる。
【0083】
<表3>
【表3】
【0084】
ここで、Vは、上記垂直変換カーネルに対する変換サブセットを示し、Hは、上記水平変換カーネルに対する変換サブセットを示す。
【0085】
上記対象ブロックに対するAMTフラグ(または、EMT_CU_flag)の値が1の場合、表3に図示したように、上記対象ブロックのイントラ予測モードに基づいて上記垂直変換カーネルに対する変換サブセットと上記水平変換カーネルに対する変換サブセットとが導出されることができる。この後、上記垂直変換カーネルに対する変換サブセットに含まれる変換カーネル候補のうち、上記対象ブロックのAMT垂直フラグが指し示す変換カーネル候補が上記対象ブロックの垂直変換カーネルとして導出されることができ、上記水平変換カーネルに対する変換サブセットに含まれる変換カーネル候補のうち、上記対象ブロックのAMT水平フラグが指し示す変換カーネル候補が上記対象ブロックの水平変換カーネルとして導出されることができる。一方、上記AMTフラグは、MTSフラグと示されることもできる。
【0086】
参考に、例えば、イントラ予測モードは、2つの非方向性(non-directional、または非角度性(non-angular))イントラ予測モードと65個の方向性(directional、または角度性(angular))イントラ予測モードとを含むことができる。上記非方向性イントラ予測モードは、0番である平面(プランナー)(planar)イントラ予測モードと1番であるDCイントラ予測モードとを含むことができ、上記方向性イントラ予測モードは、2番乃至66番の65個のイントラ予測モードを含むことができる。ただし、これは例であって、本発明は、イントラ予測モードの数が異なる場合にも適用されることができる。一方、場合によって67番イントラ予測モードがさらに使用されることができ、上記67番イントラ予測モードは、LM(Linear Model)モードを示すことができる。
【0087】
図4は、65個の予測方向のイントラ方向性モードを例示的に示す。
【0088】
図4を参照すると、左上向対角予測方向を有する34番イントラ予測モードを中心として、水平方向性(horizontal directionality)を有するイントラ予測モードと垂直方向性(vertical directionality)を有するイントラ予測モードとを区分することができる。図4のHおよびVは、各々水平方向性および垂直方向性を意味し、-32~32の数字は、サンプルグリッドポジション(sample grid position)上で1/32単位の変位を示す。2番乃至33番イントラ予測モードは水平方向性、34番乃至66番イントラ予測モードは垂直方向性を有する。18番イントラ予測モードおよび50番イントラ予測モードは、各々水平イントラ予測モード(horizontal intra prediction mode)、垂直イントラ予測モード(vertical intra prediction mode)を示し、2番イントラ予測モードは左下向対角イントラ予測モード、34番イントラ予測モードは左上向対角イントラ予測モード、66番イントラ予測モードは右上向対角イントラ予測モード、と称されることができる。
【0089】
変換部は、上記(1次)変換係数に基づいて2次変換を行って(2次)変換係数を導出することができる(S320)。上記1次変換が空間領域から周波数領域への変換であったとすれば、上記2次変換は、周波数領域から周波数領域への変換と見ることができる。上記2次変換は、非分離変換(non-separable transform)を含むことができる。この場合、上記2次変換は、非分離2次変換(Non-Separable Secondary Transform、NSST)またはMDNSST(Mode-Dependent Non-Separable Secondary Transform)と称されることができる。上記非分離2次変換は、上記1次変換を通じて導出された(1次)変換係数を非分離変換行列(non-separable transform matrix)に基づいて2次変換して残差信号に対する変換係数(または、2次変換係数)を生成する変換を示すことができる。ここで、上記非分離変換行列に基づいて上記(1次)変換係数に対して垂直変換および水平変換を分離して(または、水平垂直変換を独立して)適用せず、一度に変換を適用することができる。言い換えると、上記非分離2次変換は、上記非分離変換行列に基づいて上記(1次)変換係数の垂直成分および水平成分を分離せず、共に変換して変換係数(または、2次変換係数)を生成する変換方法を示すことができる。上記非分離2次変換は、(1次)変換係数で構成されたブロック(以下、変換係数ブロックまたは対象ブロックと称されることができる)の左上段(top-left)領域に対して適用されることができる。例えば、上記変換係数ブロックの幅(W)および高さ(H)が両方とも8以上である場合、8×8非分離2次変換が上記変換係数ブロックの左上段8×8領域(以下左上段対象領域)に対して適用できる。また、上記変換係数ブロックの幅(W)および高さ(H)が両方とも4以上で、かつ上記変換係数ブロックの幅(W)または高さ(H)が8より小さい場合、4×4非分離2次変換が上記変換係数ブロックの左上段min(8、W)×min(8、H)領域に対して適用されることができる。
【0090】
具体的には、例えば、4×4入力ブロックが使われる場合、非分離2次変換は、次の通り遂行できる。
【0091】
上記4×4入力ブロックXは、次の通り示されることができる。
【0092】
<数式1>
【数1】
【0093】
上記Xをベクトル形態で示す場合、ベクトル
は、次の通り示されることができる。
【0094】
<数式2>
【数2】
【0095】
この場合、上記2次非分離変換は、次の通り計算できる。
【0096】
<数式3>
【数3】
【0097】
ここで、
は、変換係数ベクトルを示し、Tは、16×16(非分離)変換行列を示す。
【0098】
上記数式3を通じて16×1変換係数ベクトル
が導出されることができ、上記
は、スキャン順序(水平、垂直、対角(diagonal)など)を通じて4×4ブロックに再構成される(re-organized)ことができる。ただし、前述した計算は例であって、非分離2次変換の計算複雑度を減らすためにHyGT(Hypercube-Givens Transform)などが非分離2次変換の計算のために使われることもできる。
【0099】
一方、上記非分離2次変換において、モードに依存する(mode dependent)ように変換カーネル(または、変換コア、変換タイプ)が選択されることができる。ここで、モードは、イントラ予測モードおよび/またはインター予測モードを含むことができる。
【0100】
前述したように、上記非分離2次変換は、上記変換係数ブロックの幅(W)および高さ(H)に基づいて決定された8×8変換または4×4変換に基づいて遂行できる。すなわち、上記非分離2次変換は、8×8サブブロックサイズまたは4×4サブブロックサイズに基づいて行われることができる。例えば、上記モード依存変換カーネル選択のために、8×8サブブロックサイズおよび4×4サブブロックサイズ両方に対して、非分離2次変換のための3個ずつ35セットの非分離2次変換カーネルが構成されることができる。すなわち、8×8サブブロックサイズに対して35個の変換セットが構成され、4×4サブブロックサイズに対して35個の変換セットが構成されることができる。この場合、8×8サブブロックサイズに対する35個の変換セットには、各々、8×8変換カーネルが3個ずつ含まれることができ、この場合、4×4サブブロックサイズに対する35個の変換セットには、各々、4×4変換カーネルが3個ずつ含まれることができる。ただし、上記変換サブブロックサイズ、上記セットの数、およびセット内の変換カーネルの数には、例として8×8もしくは4×4以外のサイズが使われることができ、またはn個のセットが構成され、各セット内にk個の変換カーネルが含まれることもできる。
【0101】
上記変換セットは、NSSTセットと称されることができ、上記NSSTセット内の変換カーネルは、NSSTカーネルと称されることができる。上記変換セットのうち、特定セットの選択は、例えば、対象ブロック(CUまたはサブブロック)のイントラ予測モードに基づいて遂行できる。
【0102】
この場合、上記35個の変換セットと上記イントラ予測モードとの間のマッピング(mapping)は、例えば次の表の通り示されることができる。参考として、対象ブロックにLMモードが適用される場合、上記対象ブロックに対しては、2次変換が適用されないことがある。
【0103】
<表4>
【表4】
【0104】
一方、特定セットが使われると決定されれば、非分離2次変換インデックスを通じて上記特定セット内のk個の変換カーネルのうちの1つが選択されることができる。エンコード装置は、RD(Rate-Distortion)チェックに基づいて特定変換カーネルを指し示す非分離2次変換インデックスを導出することができ、上記非分離2次変換インデックスをデコード装置にシグナリングすることができる。デコード装置は、上記非分離2次変換インデックスに基づいて特定セット内のk個の変換カーネルのうちの1つを選択することができる。例えば、NSSTインデックス値0は、最初の非分離2次変換カーネルを指し示すことができ、NSSTインデックス値1は、2番目の非分離2次変換カーネルを指し示すことができ、NSSTインデックス値2は、3番目の非分離2次変換カーネルを指し示すことができる。あるいは、NSSTインデックス値0は、対象ブロックに対して最初の非分離2次変換が適用されないことを指し示すことができ、NSSTインデックス値1乃至3は、上記3個の変換カーネルを指し示すことができる。
【0105】
また、図3を参照すると、変換部は、選択された変換カーネルに基づいて上記非分離2次変換を行い(2次)変換係数を獲得することができる。上記変換係数は、前述したように、量子化部を通じて量子化された変換係数として導出されることができ、エンコードされてデコード装置にシグナリングおよびエンコード装置内の逆量子化/逆変換部に伝達されることができる。
【0106】
一方、2次変換が省略される場合、上記1次(分離)変換の出力である(1次)変換係数は、前述したように、量子化部を通じて量子化された変換係数として導出されることができ、エンコードされてデコード装置にシグナリングおよびエンコード装置内の逆量子化/逆変換部に伝達されることができる。
【0107】
逆変換部は、前述した変換部で行われた手続きの逆順で一連の手続きを行うことができる。逆変換部は、(逆量子化された)変換係数を受信して、2次(逆)変換を行って、(1次)変換係数を導出し(S350)、上記(1次)変換係数に対して1次(逆)変換を行って残差ブロック(残差サンプル)を獲得することができる(S360)。ここで、上記1次変換係数は、逆変換部の立場で修正された(modified)変換係数と称されることができる。エンコード装置およびデコード装置は、上記残差ブロックおよび予測されたブロックに基づいて復元ブロックを生成し、これに基づいて復元ピクチュアが生成されることができることは、前述した通りである。
【0108】
一方、前述したように、2次(逆)変換が省略される場合、(逆量子化された)変換係数を受信して上記1次(分離)変換を行って残差ブロック(残差サンプル)を獲得することができる。エンコード装置およびデコード装置は、上記残差ブロックおよび予測されたブロックに基づいて復元ブロックを生成し、これに基づいて復元ピクチュアが生成されることができることは、前述した通りである。
【0109】
図5Aから図5Cは、本発明の一実施例に従う選択的変換(selective transform)を説明する図である。
【0110】
本明細書において、“対象ブロック”は、コーディングが行われる現ブロックまたは残差ブロックを意味することができる。
【0111】
図5Aは、変換を通じて変換係数を導出する一例を示す。
【0112】
ビデオコーディングにおける変換(transform)は、図5Aに図示したように、入力ベクトルRを変換行列(transform matrix)に基づいて変換して入力ベクトルRに対する変換係数ベクトルCを生成する過程を示すことができる。上記入力ベクトルRは、1次変換係数を示すこともできる。あるいは、上記入力ベクトルRは、残差ベクトル、すなわち、残差サンプルを示すこともできる。一方、上記変換係数ベクトルCは、出力ベクトルCと示されることもできる。
【0113】
図5Bは、変換を通じて変換係数を導出する具体的な例を示す。図5Bは、図5Aに図示した変換過程を具体的に示す。図3で前述したように、非分離2次変換(以下、‘NSST’という)において、1次変換を適用して獲得した変換係数のブロックデータをMxMブロックに分割した後、各MxMブロックに対してM2xM2 NSSTが行われることができる。Mは、例えば4または8でありえるが、これに限定されない。上記M2はNでありえる。この場合、図5Bに図示したように、上記入力ベクトルRは、(1次)変換係数r1乃至rNを含む(1xN)次元ベクトルでありえ、上記変換係数ベクトルCは、変換係数c1乃至cNを含む(Nx1)次元ベクトルでありえる。すなわち、上記入力ベクトルR、は、N個の(1次)変換係数r1乃至rNを含むことができ、上記入力ベクトルRのサイズは、1xNでありえる。また、上記変換係数ベクトルCは、N個の変換係数c1乃至cNを含むことができ、上記変換係数ベクトルCのサイズは、Nx1でありえる。
【0114】
上記変換係数ベクトルCを導出するために、上記入力ベクトルRは、上記変換行列を通過する(経る、go through)ことができる。すなわち、上記入力ベクトルRは、上記変換行列に基づいて上記変換係数ベクトルCとして導出されることができる。
【0115】
一方、上記変換行列は、N個の基底ベクトル(basis vectors)B1乃至BNを含むことができる。図5B図示したように、上記基底ベクトルB1乃至BNは、(1xN)次元ベクトルでありえる。すなわち、上記基底ベクトルB1乃至BNのサイズは、1xNでありえる。上記入力ベクトルRの(1次)変換係数と上記変換行列の上記基底ベクトルの各々とに基づいて変換係数ベクトルCが生成されることができる。例えば、上記入力ベクトルと各基底ベクトルとの内積(inner product)は、上記変換係数ベクトルCとして導出できる。
【0116】
一方、前述した変換には、2つの主要な(メイン)問題(イシュー)(main issues)が発生する。具体的には、出力ベクトルを生成するために必要な掛け算および足し算の回数と関連して、高い計算複雑度と生成された係数を記憶するためのメモリ要求(memory requirement)とが主要な問題として発生し得る。
【0117】
例えば、分離変換(separable transform)および非分離変換(non separable transform)に必要な計算複雑度およびメモリ要求は、次の表の通り導出されることができる。
【0118】
<表5>
【表5】
【0119】
表5を参照すると、上記分離変換を通じて生成された係数を記憶するためのメモリは、N2を要求されることができ、上記計算回数は、2N3でありえる。上記計算回数は、計算複雑度を示す。また、上記非分離変換を通じて生成された係数を記憶(貯蔵)するためのメモリはN4を要求されることができ、上記計算回数は、N4でありえる。上記計算回数は、計算複雑度を示す。すなわち、上記計算回数が多いほど計算複雑度が高いことがあり、上記計算回数が少ないほど上記計算複雑度が低いことがある。
【0120】
上記表5に図示したように、上記分離変換と比較して上記非分離変換のためのメモリ要求および計算回数は、格段に増加できる。また、上記非分離変換が行われる対象ブロックのサイズが増加するほど、すなわち、上記Nが大きくなるほど、上記分離変換のためのメモリ要求および計算回数と上記非分離変換のためのメモリ要求および計算回数との間の不一致は、増加できる。
【0121】
上記非分離変換は、分離変換と比較してより良いコーディング利得(coding gain)を提供するが、上記表5に図示したように、上記非分離変換の計算複雑度のため、既存のビデオコーディング標準では、上記非分離変換が使われておらず、また、分離変換の計算複雑度も対象ブロックのサイズが大きくなるほど増加するので、既存のHEVC標準では、上記分離変換がサイズが32x32サイズ以下である対象ブロックのみで使われるように制限された。
【0122】
ここで、本発明は、選択的変換を提案する。上記選択的変換は、計算複雑度およびメモリ要求を格段に減らすことができ、これを通じて計算集約的な変換ブロックの効率性を増加させ、コーディング効率を向上させる効果を発生させることができる。すなわち、上記選択的変換は、サイズの大きいブロックの変換または非分離変換時に発生する演算複雑度(complexity)の問題を解消するために利用されることができる。上記選択的変換は、1次変換(または、コア(核心)変換(core transform)と称されることができる)、2次変換など、いかなるタイプ(類型)の変換にも利用できる。例えば、上記選択的変換は、エンコード装置/デコード装置に対する上記コア変換に適用されることができ、エンコーディング時間/デコーディング時間を格段に減らす効果を発生させることができる。
【0123】
図5Cは、上記選択的変換を通じて変換係数を導出する一例を示す。上記選択的変換は、選択的な個数の要素を含む基底ベクトルを含む変換行列に基づいて対象ブロックに対して行われる変換を意味することができる。
【0124】
簡素化変換には、変換行列の基底ベクトルのN個の要素のうち、重複するか、または重要でない要素が含まれることがあり、上記要素を除外して計算複雑度およびメモリ要求を減らすことができるという動機(motivation)を通じて提案された方式である。例えば、図5Cを参照すると、基底ベクトルB1のN個の要素のうち、Z0個の要素は、重要でない要素であることがあり、この場合、N1個の要素のみを含むトランケートされた(truncated)基底ベクトルB1が導出されることができる。ここで、上記N1は、N-Z0でありえる。上記トランケートされた基底ベクトルB1は、修正された(modified)基底ベクトルB1と示されることができる。
【0125】
図5Cを参照すると、上記入力ベクトルRに上記修正された基底ベクトルB1が変換行列の一部として適用される場合、変換係数C1が導出されることができる。実験結果より、上記変換係数C1は、上記入力ベクトルRに既存の基底ベクトルB1が変換行列の一部として適用されて導出される変換係数C1と同一の値であることが観察される。すなわち、各基底ベクトルの微小な要素が0であると仮定して結果を導出することが、結果の大きい差無しで必要な掛け算の回数を格段に減らすことができることを意味する。また、次に、この演算のために記憶しなければならない要素(すなわち、変換行列の要素)の数を減らすことができる。
【0126】
基底ベクトルの要素のうち、重要(または、有意義)でない要素の位置を定義するために、関連ベクトル(association vector)が提案される。上記N1次元の修正された基底ベクトルB1を導出するために(1xN)次元の関連ベクトルA1が考慮されることができる。すなわち、1xN1サイズの修正された基底ベクトルB1(すなわち、N1個の要素を含む修正された基底ベクトルB1)を導出するために1xNサイズの関連ベクトルA1が考慮されることができる。
【0127】
図5Cを参照すると、上記入力ベクトルRに上記基底ベクトルB1乃至BNの各々に対する関連ベクトルが適用されて導出された値が、上記基底ベクトルに伝達されることができる。これを通じて、上記入力ベクトルRの一部の要素のみが、基底ベクトルの要素と計算されることができる。具体的には、上記関連ベクトルは、0および1を含むことができ、上記入力ベクトルRの要素のうち、選択された要素には1が掛けられ、選択されていない要素には0が掛けられるように演算されて、上記選択された要素のみが通過して上記基底ベクトルに伝達されることができる。
【0128】
例えば、上記入力ベクトルRに上記関連ベクトルA1が適用されることができ、上記入力ベクトルRの要素のうち、上記関連ベクトルA1により指定されたN1個の要素のみが、上記基底ベクトルB1との内積を計算するのに使われることができる。上記内積は、上記変換係数ベクトルCのC1を示すことができる。ここで、上記基底ベクトルB1は、N1個の要素を含むことができ、上記N1は、N以下でありえる。前述した上記入力ベクトルRと関連ベクトルA1および基底ベクトルB1との演算は、関連ベクトルA2乃至ANおよび基底ベクトルB2乃至BNに対しても行われることができる。
【0129】
上記関連ベクトルは、0および/または1、二進数値(binary values)のみを含むので、上記関連ベクトルを記憶するに当たって利点がありえる。上記関連ベクトルの0は、上記0に対する上記入力ベクトルRの要素が上記内積計算のための変換行列に伝達されないことを示すことができ、上記関連ベクトルの1は、上記1に対する上記入力ベクトルRの要素が上記内積計算のための上記変換行列に伝達されることを示すことができる。例えば、1xNサイズの関連ベクトルAkは、Ak1乃至AkNを含むことができる。上記関連ベクトルAkのAknが0の場合、上記入力ベクトルRのrnは、通過できないことがある。すなわち、上記入力ベクトルRのrnは、上記変換ベクトルBnに伝達されないことがある。また、上記Aknが1の場合、上記入力ベクトルRのrnは、通過できる。すなわち、上記入力ベクトルRのrnは、上記変換ベクトルBnに伝達されることができ、上記変換係数ベクトルCのcnを導出するための計算に使われることができる。
【0130】
図6は、上記選択的変換を2次変換に適用した多重変換技法を概略的に示す。
【0131】
図6を参照すると、変換部は、前述した図1のエンコード装置内の変換部に対応することができ、逆変換部は、前述した図1のエンコード装置内の逆変換部または図2のデコード装置内の逆変換部に対応できる。
【0132】
変換部は、残差ブロック内の残差サンプル(残差サンプルアレイ)に基づいて1次変換を行って、(1次)変換係数を導出することができる(S610)。ここで、上記1次変換は、前述したAMTを含むことができる。
【0133】
上記適応的マルチコア変換が適用される場合、DCTタイプ2、DSTタイプ7、DCTタイプ8、および/またはDSTタイプ1などに基づいて残差信号(または、残差ブロック)に対する空間領域から周波数領域への変換が適用されて、変換係数(または、1次変換係数)が生成されることができる。ここで、上記1次変換係数は、変換部の立場で一時変換係数と称されることができる。また、DCTタイプ2、DSTタイプ7、DCTタイプ8、およびDSTタイプ1などは、変換タイプ、変換カーネル(kernel)または変換コア(core)と称されることができる。参考までに、上記DCT/DST変換タイプは、基底関数(basis functions)に基づいて定義されることができ、上記基底関数は、前述した表1のように示すことができる。具体的には、上記適応的マルチコア変換を適用して上記1次変換係数を導出する過程は、前述した通りである。
【0134】
変換部は、上記(1次)変換係数に基づいて選択的変換を行って、(2次)変換係数を導出することができる(S620)。選択的変換は、修正された基底ベクトルを含む変換行列および上記基底ベクトルに対する関連ベクトルを含む関連行列(association matrix)に基づいて、対象ブロックに対する上記(1次)変換係数に対して行われる変換を意味することができる。上記修正された基底ベクトルは、N以下の要素を含む基底ベクトルを示すことができる。すなわち、上記修正された基底ベクトルは、N個の要素のうちの選択された特定個数の要素を含む基底ベクトルを示すことができる。例えば、修正された基底ベクトルBnは、(1xNn)次元ベクトルでありえ、上記Nnは上記Nより小さいか等しいことがある。すなわち、修正された基底ベクトルBnのサイズは、(1xNn)サイズでありえ、上記Nnは、上記Nより小さいか等しいことがある。ここで、上記Nは、上記選択された変換が適用される上記対象ブロックの左上段対象領域の高さと幅との積でありえる。あるいは、上記Nは、上記選択された変換が適用される上記対象ブロックの左上段対象領域の変換係数の総数でありえる。一方、上記修正された基底ベクトルを含む上記変換行列は、修正された(modified)変換行列として示されることができる。また、上記変換行列は、変換ベーシスブロック(Transform Bases Block、TBB)として示されることもでき、上記関連行列は、関連ベクトルブロック(Association Vectors Block、AVB)として示されることができる。
【0135】
変換部は、上記修正された変換行列および上記関連行列に基づいて上記選択的変換を行い、(2次)変換係数を獲得することができる。上記変換係数は、前述したように、量子化部を通じて量子化された変換係数として導出されることができ、エンコードされてデコード装置にシグナリングおよびエンコード装置内の逆量子化部/逆変換部に伝達されることができる。
【0136】
逆変換部は、前述した変換部で行われた手続きの逆順で一連の手続きを行うことができる。逆変換部は、(逆量子化された)変換係数を受信して、選択的(逆)変換を行って(1次)変換係数を導出し(S650)、上記(1次)変換係数に対して1次(逆)変換を行って残差ブロック(残差サンプル)を獲得することができる(S660)。ここで、上記1次変換係数は、逆変換部の立場で修正された(modified)変換係数と称されることができる。エンコード装置およびデコード装置は、上記残差ブロックおよび予測されたブロックに基づいて復元ブロックを生成し、これに基づいて復元ピクチュアが生成されることができることは、前述した通りである。
【0137】
一方、本発明は、上記選択的変換の一実施例において、簡素化変換と結合された選択的変換を提案する。
【0138】
本明細書において、“簡素化変換”は、簡素化ファクタ(factor)によってサイズが減少した変換行列(transform matrix)に基づいて対象ブロックに対する残差サンプルに対して行われる変換を意味することができる。
【0139】
一実施例に従う簡素化変換で、N次元ベクトル(N dimensional vector)が他の空間に位置するR次元ベクトル(R dimensional vector)にマッピングされて簡素化変換行列が決定されることができ、ここで、Rは、Nより小さい。すなわち、上記簡素化変換は、R個の基底ベクトルを含む簡素化変換行列(reduced transform matrix)に基づいて対象ブロックに対する残差サンプルに対して行われる変換を意味することができる。ここで、Nは、変換が適用されるブロック(または、対象領域)の一辺の長さ(length)の自乗または変換が適用されるブロック(または、対象領域)と対応する変換係数の総数を意味することができ、簡素化ファクタは、R/N値を意味することができる。簡素化ファクタは、減少したファクタ、減少ファクタ、reduced factor、reduction factor、simplified factor、simple factorなど、多様な用語で称されることができる。一方、Rは、簡素化係数(reduced coefficient)と称されることができるが、場合によっては、簡素化ファクタがRを意味することができる。また、場合によって、簡素化ファクタは、N/R値を意味することもできる。
【0140】
一実施例に従う上記簡素化変換行列のサイズは、通常の変換行列のサイズNxNより小さいRxNであり、以下の数式4の通り定義されることができる。
【0141】
<数式4>
【数4】
【0142】
対象ブロックの1次変換が適用された変換係数に対して簡素化変換行列TRxNが掛けられる場合、上記対象ブロックに対する(2次)変換係数が導出されることができる。
【0143】
上記RSTが適用される場合、2次変換にRxNサイズである簡素化変換行列が適用されるので、R+1からNまでの変換係数は、暗示的に(implicitly)0になることができる。言い換えると、対象ブロックの変換係数が上記RSTが適用されて導出された場合、上記R+1からNまでの変換係数の値は、0でありえる。ここで、上記R+1からNまでの変換係数は、変換係数のうち、R+1番目の変換係数からN番目の変換係数を示すことができる。具体的には、対象ブロックの変換係数の配列は、次のように説明できる。
【0144】
図7は、本発明の実施例に従う対象ブロックに基づいて変換係数の配列を説明する図である。以下、図7で後述する変換に関する説明は、逆変換にも同様に適用できる。対象ブロック(または、残差ブロック)700に対して、1次変換および簡素化変換を基盤とするNSSTが行われることができる。一例において、図7に図示された16x16ブロックは、対象ブロック700を示し、A乃至Pで表記された4x4ブロックは、対象ブロック700のサブグループを示すことができる。1次変換は、対象ブロック700の全体範囲で行われることができ、1次変換が行われた以後、NSSTは、サブグループA、B、E、およびFが構成する8x8ブロック(以下、左上段対象領域)に対して適用されることができる。この際、簡素化変換に基づくNSSTが行われれば、R個(ここで、Rは簡素化係数を意味し、RはNより小さい)のNSST変換係数のみ導出されるので、R+1番目からN番目の範囲のNSST変換係数は、各々0に決定できる。例えば、Rが16の場合、簡素化変換に基づくNSSTが行われて導出された16個の変換係数は、対象ブロック700の左上段対象領域に含まれる左上段4x4ブロックであるサブグループAに含まれる各ブロックに割り当てられることができ、サブグループB、E、およびFに含まれるN-R個、すなわち64-16=48個の各ブロックに対しては、変換係数0が割り当てられることができる。簡素化変換に基づくNSSTが行われない1次変換係数は、サブグループC、D、G、H、I、J、K、L、M、N、O、およびPに含まれる各ブロックに割り当てられることができる。
【0145】
図8は、上記簡素化変換と上記選択的変換とが結合された変換を通じて変換係数を導出する一例を示す。図8を参照すると、変換行列は、R個の基底ベクトルを含むことができ、上記関連行列は、R個の関連ベクトルを含むことができる。ここで、R個の基底ベクトルを含む上記変換行列は、簡素化変換行列(reduced transform matrix)として示されることができ、上記R個の関連ベクトルを含む関連行列は、簡素化関連行列(reduced association matrix)として示されることができる。
【0146】
また、上記基底ベクトルの各々は、N個の要素のうち、選択された要素のみを含むことができる。例えば、図8を参照すると、基底ベクトルB1は、N1個の要素を含む1xN1次元ベクトルでありえ、基底ベクトルB2は、N2個の要素を含む1xN2次元ベクトルでありえ、基底ベクトルBRは、NR個の要素を含む1xNR次元ベクトルでありえる。上記N1、N2、およびNRは、上記N以下の値でありえる。上記簡素化変換および上記選択的変換が結合された変換は、2次変換および1次変換など、いかなるタイプの変換にも利用できる。
【0147】
図8を参照すると、エンコード装置およびデコード装置は、上記簡素化変換と上記選択的変換とが結合された変換を2次変換に適用することができる。例えば、上記修正された基底ベクトルを含む簡素化変換行列および簡素化関連行列に基づいて上記選択的変換が行われることができ、(2次)変換係数が獲得されることができる。また、上記選択的変換の計算複雑度を減らすためにHyGT(Hypercube-Givens Transform)などが上記選択的変換の計算のために使われることもできる。
【0148】
図9は、上記選択的変換を通じて変換係数を導出する一例を示す。上記選択的変換に対する一実施例において、上記関連行列の関連ベクトルA1、A2、...ANに対するパターンは、存在しないことがあり、上記関連ベクトルは、互いに異なる形態として導出されることができる。あるいは、上記選択的変換に対する他の実施例において、上記関連行列の関連ベクトルA1、A2、...ANは、同一の形態として導出されることができる。
【0149】
具体的には、例えば、上記関連ベクトルは、同一の個数の1を含むことができる。例えば、1の個数がMの場合、上記関連ベクトルは、M個の1およびN-M個の0を含むことができる。この場合、上記入力ベクトルRの(1次)変換係数のうち、M個の変換係数が基底ベクトルに伝達できる。したがって、上記基底ベクトルの長さもMでありえる。すなわち、図9に図示したように、上記基底ベクトルは、M個の要素を含むことができ、(1xM)次元ベクトルでありえ、N1=N2=...=NN=Mとして導出されることができる。図9に図示した関連行列および修正された変換行列構造は、上記選択的変換に対する対称構造(symmetric architecture)と示されることができる。
【0150】
また、他の例において、値が1である要素の特定パターンが存在することができ、任意の方式により上記パターンが反復、回転、および/または変換(translate)されて上記関連ベクトルが導出されることができる。
【0151】
一方、前述した選択的変換は、上記簡素化変換および/または上記HyGTだけでなく、他の変換技術と共に適用されることもできる。
【0152】
また、本発明は、前述した選択的変換において、上記関連ベクトルを単純化(simplifying)する方式を提案する。上記関連ベクトルを単純化することによって、上記選択的変換を行うための情報の記憶(storing)および上記選択的変換のハンドリング(handling)がより向上できる。すなわち、上記選択的変換を行うためのメモリ負荷(memory load)が減ることができ、上記選択的変換のハンドリング能力がより向上できる。
【0153】
上記関連ベクトルの単純化による効果は、上記関連ベクトルが含む要素のうち、0でない要素が連続する分布を有する場合にさらに明白に表れることができる。例えば、関連ベクトルAkは、1の連続したストリング(continuous string)を含むことができる。この場合、上記Akは、2つのファクタ(factors)AksおよびAkLを通じて表現されることができる。すなわち、上記ファクタAksおよびAkLに基づいて上記関連ベクトルAkが導出されることができる。ここで、上記Aksは、0でない要素(例えば、1)の開始点を示すファクタでありえ、上記AkLは、0でない要素の長さを示すファクタでありえる。上記ファクタに基づいて示した上記関連ベクトルAkは、次の表の通り導出されることができる。
【0154】
<表6>
【表6】
【0155】
表6を参照すると、上記関連ベクトルAkは、16個の要素を含むことができる。すなわち、上記関連ベクトルAkは、1x16次元ベクトルでありえる。上記関連ベクトルAkの0でない要素の開始点を示すファクタAksの値は、0として導出されることができ、この場合、上記ファクタAksは、上記0でない要素の開始点を上記関連ベクトルAkの最初の要素として指し示すことができる。また、上記関連ベクトルAkの0でない要素の長さを示すファクタAkLの値は、8として導出されることができ、この場合、上記ファクタAkLは、上記0でない要素の長さを8個と指し示すことができる。したがって、上記Akは、上記ファクタに基づいて、表6に図示したように、最初の要素乃至8番目の要素は1であり、残りの要素は0であるベクトルとして導出されることができる。
【0156】
図10は、関連ベクトルに対する2つのファクタに基づいて上記関連ベクトルを導出して選択的変換を行う一例を示す。図10を参照すると、各関連ベクトルに対するファクタに基づいて関連行列が導出されることができ、上記関連行列および上記修正された変換行列に基づいて対象ブロックに対する変換係数が導出されることができる。
【0157】
一方、関連ベクトルの各々の0でない要素の開始点および0でない要素の数は、固定された(fixed)値として導出されることができ、または上記関連ベクトルの各々の0でない要素の開始点および0でない要素の数は、多様に導出されることもできる。
【0158】
また、例えば、関連ベクトルの0でない要素の開始点および0でない要素の数は、変換が行われる左上段対象領域のサイズに基づいて導出されることもできる。ここで、上記左上段対象領域のサイズは、上記左上段対象領域の変換係数の数を示すことができ、または、上記左上段対象領域の高さと幅との積を示すことができる。また、他の例において、関連ベクトルの0でない要素の開始点および0でない要素の数は、対象ブロックのイントラ予測モードに基づいて導出されることもできる。具体的には、例えば、上記対象ブロックの上記イントラ予測モードが非方向性イントラ予測モードか否かに基づいて上記関連ベクトルの0でない要素の開始点および0でない要素の数が導出されることができる。
【0159】
あるいは、例えば、関連ベクトルの0でない要素の開始点および0でない要素の数は、予め設定されることができる。あるいは、例えば、上記関連ベクトルの0でない要素の開始点を示す情報および0でない要素の数を示す情報は、シグナリングされることができ、上記0でない要素の開始点を示す情報および上記0でない要素の数を示す情報に基づいて、上記関連ベクトルが導出されることができる。あるいは、上記0でない要素の開始点を示す情報の代わりに、他の情報が使われることもできる。例えば、上記0でない要素の開始点を示す情報の代わりに、上記0でない要素の最後の位置(last position)を示す情報が使われることができ、上記0でない要素の最後の位置を示す情報に基づいて、上記関連ベクトルが導出されることができる。
【0160】
一方、上記ファクタに基づいて上記関連ベクトルを導出する方式は、分離変換と、簡素化変換HyGTなどの非分離変換と、に適用されることができる。
【0161】
図11は、本発明に従うエンコード装置による映像エンコード方法を概略的に示す。図11で開示された方法は、図1で開示されたエンコード装置により行われることができる。具体的には、例えば、図11のS1100は上記エンコード装置の減算部、S1110は上記エンコード装置の変換部、S1120は上記エンコード装置のエントロピエンコード部により遂行できる。また、図示してはいないが、予測サンプルを導出する過程は、上記エンコード装置の予測部により遂行できる。
【0162】
エンコード装置は、対象ブロックの残差サンプルを導出する(S1100)。例えば、エンコード装置は、対象ブロックに対してインター予測を行うか、またはイントラ予測を行うかを決定することができ、具体的なインター予測モードまたは具体的なイントラ予測モードをRDコストに基づいて決定することができる。決定されたモードによって、エンコード装置は、上記対象ブロックに対する予測サンプルを導出することができ、上記対象ブロックに対するオリジナルサンプルと上記予測サンプルとの加算を通じて上記残差サンプルを導出することができる。
【0163】
エンコード装置は、上記残差サンプルに対する選択的変換(selective transform)に基づいて上記対象ブロックの変換係数を導出する(S1110)。上記選択的変換は、修正された(modified)変換行列(transform matrix)に基づいて行われることができ、上記修正された変換行列は、修正された基底ベクトル(basis vector)を含む行列であり、上記修正された基底ベクトルは、N個の要素のうちの選択された特定個数の要素を含むことができる。また、上記選択的変換は、上記対象ブロックの左上段対象領域で行われることができ、上記Nは、上記左上段対象領域に位置する残差サンプルの数でありえる。あるいは、上記Nは、上記左上段対象領域の幅と高さとを掛けた値でありえる。例えば、上記Nは、16または64でありえる。
【0164】
エンコード装置は、上記残差サンプルに対するコア変換を行って修正された変換係数を導出することができ、上記修正された変換行列および上記修正された基底ベクトルに対する関連ベクトル(association vector)を含む関連行列(association matrix)に基づいて、上記対象ブロックの左上段対象領域に位置する修正された変換係数に対する上記選択的変換を行って、上記対象ブロックの変換係数を導出することができる。
【0165】
具体的には、上記残差サンプルに対するコア変換は、次のように行われることができる。エンコード装置は、上記対象ブロックに対する適応的マルチコア変換(Adaptive Multiple core Transform、AMT)を適用するか否かを決定することができる。この場合、上記対象ブロックの適応的マルチコア変換が適用されるか否かを示すAMTフラグを生成できる。上記対象ブロックに上記AMTが適用されない場合、エンコード装置は、DCTタイプ2を上記対象ブロックに対する変換カーネルとして導出することができ、上記DCTタイプ2に基づいて上記残差サンプルに対する変換を行って上記修正された変換係数を導出することができる。
【0166】
上記対象ブロックに上記AMTが適用される場合、エンコード装置は、水平変換カーネルに対する変換サブセットおよび垂直変換カーネルに対する変換サブセットを構成することができ、上記変換サブセットに基づいて水平変換カーネルおよび垂直変換カーネルを導出することができ、上記水平変換カーネルおよび上記垂直変換カーネルに基づいて上記残差サンプルに対する変換を行って修正された変換係数を導出することができる。ここで、上記水平変換カーネルに対する変換サブセットおよび上記垂直変換カーネルに対する変換サブセットは、DCTタイプ2、DSTタイプ7、DCTタイプ8、および/またはDSTタイプ1を候補として含むことができる。また、変換インデックス情報が生成されることができ、上記変換インデックス情報は、上記水平変換カーネルを指し示すAMT水平フラグおよび上記垂直変換カーネルを指し示すAMT垂直フラグを含むことができる。一方、上記変換カーネルは、変換タイプまたは変換コア(core)と称されることができる。
【0167】
上記修正された変換係数が導出された場合、エンコード装置は、上記修正された変換行列および上記修正された基底ベクトルに対する関連ベクトル(association vector)を含む関連行列(association matrix)に基づいて、上記対象ブロックの左上段対象領域に位置する修正された変換係数に対する上記選択的変換を行って、上記対象ブロックの上記変換係数を導出することができる。上記対象ブロックの上記左上段領域に位置する上記修正された変換係数以外の修正された変換係数は、そのまま上記対象ブロックの上記変換係数として導出されることができる。
【0168】
具体的には、上記左上段対象領域に位置する上記修正された変換係数のうち、上記関連ベクトルの1である要素(elements)に対する修正された変換係数が導出されることができ、上記導出された修正された変換係数および上記修正された基底ベクトルに基づいて上記対象ブロックの変換係数が導出されることができる。ここで、上記修正された基底ベクトルに対する上記関連ベクトルは、N個の要素を含むことができ、上記N個の要素は、1の要素および/または0の要素を含むことができ、上記1の要素の個数は、A個でありえる。また、上記修正された基底ベクトルは、上記A個の要素を含むことができる。
【0169】
一方、一例において、上記修正された変換行列は、N個の修正された基底ベクトルを含むことができ、上記関連行列は、N個の関連ベクトルを含むことができる。上記関連ベクトルは同一の個数の1の要素を含むことができ、上記修正された基底ベクトルは、全て同一の個数の要素を含むことができる。あるいは、上記関連ベクトルは、同一の個数の1の要素を含まないことがあり、上記修正された基底ベクトルは、全て同一の個数の要素を含まないことがある。
【0170】
あるいは、他の例において、上記修正された変換行列は、R個の修正された基底ベクトルを含むことができ、上記関連行列は、R個の関連ベクトルを含むことができる。上記Rは、簡素化係数(reduced coefficient)でありえ、上記Rは、Nより小さいことがある。上記関連ベクトルは、同一の個数の1の要素を含むことができ、上記修正された基底ベクトルは、全て同一の個数の要素を含むことができる。あるいは、上記関連ベクトルは、同一の個数の1の要素を含まないことがあり、上記修正された基底ベクトルは、全て同一の個数の要素を含まないことがある。
【0171】
一方、上記関連ベクトルは、1の要素が連続するように構成できる。この場合、一例において、上記関連ベクトルに関する情報がエントロピエンコードされることができる。例えば、上記関連ベクトルに関する情報は、1の要素の開始点を示す情報および1の要素の個数を示す情報を含むことができる。あるいは、例えば、上記関連ベクトルに関する情報は、1の要素の最後の位置を示す情報および1の要素の個数を示す情報を含むことができる。
【0172】
また、他の例において、上記左上段対象領域のサイズに基づいて、上記関連ベクトルが導出されることができる。例えば、上記左上段対象領域のサイズに基づいて、上記関連ベクトルの1の要素の開始点および上記1の要素の個数が導出されることができる。
【0173】
あるいは、他の例において、上記対象ブロックのイントラ予測モードに基づいて、上記関連ベクトルが導出されることができる。例えば、上記イントラ予測モードに基づいて、上記関連ベクトルの1の要素の開始点および上記1の要素の個数が導出されることができる。また、例えば、上記イントラ予測モードが非方向性(non-directional)イントラ予測モードか否かに基づいて、上記関連ベクトルの1の要素の開始点および上記1の要素の個数が導出されることができる。
【0174】
エンコード装置は、変換係数に関する情報をエンコードする(S1330)。上記変換係数に関する情報は、上記変換係数のサイズ、位置などに関する情報を含むことができる。また、前述したように、上記関連ベクトルに関する情報をエントロピエンコードできる。例えば、上記関連ベクトルに関する情報は、1の要素の開始点を示す情報および1の要素の個数を示す情報を含むことができる。あるいは、例えば、上記関連ベクトルに関する情報は、1の要素の最後の位置を示す情報および1の要素の個数を示す情報を含むことができる。
【0175】
上記変換係数に関する情報および/または上記関連ベクトルに関する情報を含む映像情報は、ビットストリーム形態で出力されることができる。また、上記映像情報は、予測情報をさらに含むことができる。上記予測情報は、上記予測手続きに関連する情報として予測モード情報および動き情報に関する情報(例えば、インター予測が適用される場合)などを含むことができる。
【0176】
出力されたビットストリームは、記憶媒体またはネットワークを介してデコード装置に伝達されることができる。
【0177】
図12は、本発明に従う映像エンコード方法を行うエンコード装置を概略的に示す。図11で開示した方法は、図12で開示したエンコード装置により遂行できる。具体的には、例えば、図12の上記エンコード装置の加算部は図11のS1100を行うことができ、上記エンコード装置の変換部はS1110を行うことができ、上記エンコード装置のエントロピエンコード部はS1120乃至S1130を行うことができる。また、図示してはいないが、予測サンプルを導出する過程は、上記エンコード装置の予測部により行われることができる。
【0178】
図13は、本発明に従うデコード装置による映像デコード方法を概略的に示す。図13で開示した方法は、図2で開示したデコード装置により行われることができる。具体的には、例えば、図13のS1300乃至S1310は上記デコード装置のエントロピデコード部、S1320は上記デコード装置の逆変換部、S1330は上記デコード装置の加算部により行われることができる。また、図示してはいないが、予測サンプルを導出する過程は、上記デコード装置の予測部により行われることができる。
【0179】
デコード装置は、上記ビットストリームから上記対象ブロックの変換係数を導出する(S1300)。デコード装置は、上記ビットストリームを通じて受信した上記対象ブロックの変換係数に関する情報をデコードして上記対象ブロックの変換係数を導出することができる。上記受信した上記対象ブロックの変換係数に関する情報は、残差(residual)情報として示されることができる。
【0180】
デコード装置は、上記変換係数に対する選択的変換(selective transform)に基づいて、上記対象ブロックに対する残差サンプルを導出する(S1310)。上記選択的変換は、修正された(modified)変換行列(transform matrix)に基づいて行われることができ、上記修正された変換行列は、修正された基底ベクトル(basis vector)を含む行列であり、上記修正された基底ベクトルは、N個の要素のうちの選択された特定個数の要素を含むことができる。また、上記選択的変換は、上記対象ブロックの左上段対象領域に位置する変換係数に対して行われることができ、上記Nは、上記左上段対象領域に位置する変換係数などの数でありえる。あるいは、上記Nは、上記左上段対象領域の幅と高さとを掛けた値でありえる。例えば、上記Nは、16または64でありえる。
【0181】
デコード装置は、上記修正された変換行列および上記修正された基底ベクトルに対する関連ベクトル(association vector)を含む関連行列(association matrix)に基づいて、上記対象ブロックの左上段対象領域に位置する変換係数に対する上記選択的変換を行って修正された変換係数を導出することができる。
【0182】
具体的には、上記左上段対象領域に位置する変換係数のうちの上記関連ベクトルの1の要素(elements)に対する変換係数が導出されることができ、上記導出された変換係数と上記修正された基底ベクトルとに基づいて、修正された変換係数が導出されることができる。ここで、上記修正された基底ベクトルに対する上記関連ベクトルは、N個の要素を含むことができ、上記N個の要素は、1の要素および/または0の要素を含むことができ、上記1の要素の個数は、A個でありえる。また、上記修正された基底ベクトルは、上記A個の要素を含むことができる。
【0183】
一方、一例において、上記修正された変換行列は、N個の修正された基底ベクトルを含むことができ、上記関連行列は、N個の関連ベクトルを含むことができる。上記関連ベクトルは、同一の個数の1の要素を含むことができ、上記修正された基底ベクトルは、全て同一の個数の要素を含むことができる。あるいは、上記関連ベクトルは、同一の個数の1の要素を含まないことがあり、上記修正された基底ベクトルは、全て同一の個数の要素を含まないことがある。
【0184】
あるいは、他の例において、上記修正された変換行列は、R個の修正された基底ベクトルを含むことができ、上記関連行列は、R個の関連ベクトルを含むことができる。上記Rは、簡素化係数(reduced coefficient)でありえ、上記Rは、Nより小さいことがある。上記関連ベクトルは、同一の個数の1の要素を含むことができ、上記修正された基底ベクトルは、全て同一の個数の要素を含むことができる。あるいは、上記関連ベクトルは、同一の個数の1の要素を含まないことがあり、上記修正された基底ベクトルは、全て同一の個数の要素を含まないことがある。
【0185】
一方、上記関連ベクトルは、1の要素が連続するように構成できる。この場合、一例において、上記関連ベクトルに関する情報がビットストリームから獲得されることができ、上記関連ベクトルに関する情報に基づいて、上記関連ベクトルが導出されることができる。例えば、上記関連ベクトルに関する情報は、1の要素の開始点を示す情報および1の要素の個数を示す情報を含むことができる。あるいは、例えば、上記関連ベクトルに関する情報は、1の要素の最後の位置を示す情報および1の要素の個数を示す情報を含むことができる。
【0186】
あるいは、他の例において、上記左上段対象領域のサイズに基づいて、上記関連ベクトルが導出されることができる。例えば、上記左上段対象領域のサイズに基づいて、上記関連ベクトルの1の要素の開始点および上記1の要素の個数が導出されることができる。
【0187】
あるいは、他の例において、上記対象ブロックのイントラ予測モードに基づいて、上記関連ベクトルが導出されることができる。例えば、上記イントラ予測モードに基づいて、上記関連ベクトルの1の要素の開始点および上記1の要素の個数が導出されることができる。また、例えば、上記イントラ予測モードが非方向性(non-directional)イントラ予測モードか否かに基づいて、上記関連ベクトルの1の要素の開始点および上記1の要素の個数が導出されることができる。
【0188】
上記修正された変換係数が導出された場合、デコード装置は、上記修正された変換係数を含む上記対象ブロックに対するコア変換を行って、上記残差サンプルを導出することができる。
【0189】
上記対象ブロックに対するコア変換は、次のように行われることができる。デコード装置は、ビットストリームから適応的マルチコア変換(Adaptive Multiple core Transform、AMT)が適用されるか否かを示すAMTフラグを獲得することができ、上記AMTフラグの値が0の場合、デコード装置は、DCTタイプ2を上記対象ブロックに対する変換カーネルとして導出することができ、上記DCTタイプ2に基づいて上記修正された変換係数を含む上記対象ブロックに対する逆変換を行って、上記残差サンプルを導出することができる。
【0190】
上記AMTフラグの値が1の場合、デコード装置は、水平変換カーネルに対する変換サブセットおよび垂直変換カーネルに対する変換サブセットを構成することができ、上記ビットストリームから獲得した変換インデックス情報、上記変換サブセットに基づいて、水平変換カーネル、および垂直変換カーネルを導出することができ、上記水平変換カーネルおよび上記垂直変換カーネルに基づいて、上記修正された変換係数を含む上記対象ブロックに対する逆変換を行って、上記残差サンプルを導出することができる。ここで、上記水平変換カーネルに対する変換サブセットおよび上記垂直変換カーネルに対する変換サブセットは、DCTタイプ2、DSTタイプ7、DCTタイプ8、および/またはDSTタイプ1を候補として含むことができる。また、上記変換インデックス情報は、上記水平変換カーネルに対する変換サブセットに含まれる候補のうちの1つを指し示すAMT水平フラグおよび上記垂直変換カーネルに対する変換サブセットに含まれる候補のうちの1つを指し示すAMT垂直フラグを含むことができる。一方、上記変換カーネルは、変換タイプまたは変換コア(core)と称されることができる。
【0191】
デコード装置は、上記残差サンプルに基づいて復元ピクチュアを生成する(S1320)。デコード装置は、上記残差サンプルに基づいて復元ピクチュアを生成することができる。例えば、デコード装置は、ビットストリームを通じて受信した予測情報に基づいて対象ブロックに対するインター予測またはイントラ予測を行い、予測サンプルを導出することができ、上記予測サンプルと上記残差サンプルとの加算を通じて上記復元ピクチュアを生成することができる。以後、必要によって、主観的/客観的画質を向上させるために、デブロックフィルタリング、SAOおよび/またはALF手続きなどのインループフィルタリング手続きを上記復元ピクチュアに適用できることは前述した通りである。
【0192】
図14は、本発明に従う映像デコード方法を行うデコード装置を概略的に示す。図13で開示した方法は、図14で開示したデコード装置により行われることができる。具体的には、例えば、図14の上記デコード装置のエントロピデコード部は図13のS1300を行うことができ、図14の上記デコード装置の逆変換部は図13のS1310を行うことができ、図16の上記デコード装置の加算部は図15のS1320を行うことができる。また、図示してはいないが、予測サンプルを導出する過程は、図14の上記デコード装置の予測部により行われることができる。
【0193】
前述した本発明によれば、効率の良い変換を通じて残差処理のために転送されなければならないデータ量を減らすことができ、残差コーディング効率を高めることができる。
【0194】
また、本発明によれば、選択された特定個数の要素を含む基底ベクトルで構成された変換行列に基づいて非分離変換を行うことができ、これを通じて非分離変換のためのメモリ負荷および計算複雑度を減らすことができ、残差コーディング効率を高めることができる。
【0195】
また、本発明によれば、単純化された構造の変換行列に基づいて非分離変換を行うことができ、これを通じて残差処理のために転送されなければならないデータ量を減らすことができ、残差コーディング効率を高めることができる。
【0196】
前述した実施例において、方法は、一連のステップまたはブロックにて順序度(フローチャート)に基づいて説明されているが、本発明は、ステップの順序に限定されるのではなく、あるステップは、前述したのと異なるステップおよび異なる順序で、または同時に発生することができる。また、当業者であれば、フローチャートに示されたステップが排他的でなく、他のステップが含まれるか、またはフローチャートの1つもしくは複数のステップが、本発明の範囲に影響を及ぼさずに削除できることを理解することができる。
【0197】
前述した本発明に従う方法は、ソフトウェア形態で具現されることができ、本発明に従うエンコード装置および/またはデコード装置は、例えばTV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置などの映像処理を行う装置に含まれることができる。
【0198】
本発明において、実施例がソフトウェアで具現されるとき、前述した方法は、前述した機能を行うモジュール(過程、機能など)で具現されることができる。モジュールは、メモリに記憶され、プロセッサにより実行されることができる。メモリは、プロセッサの内部または外部に在ってもよく、よく知られた多様な手段によりプロセッサと連結されることができる。プロセッサは、ASIC(Application-Specific Integrated Circuit)、他のチップセット、論理回路および/またはデータ処理装置を含むことができる。メモリは、ROM(Read-Only Memory)、RAM(Random Access Memory)、フラッシュメモリ、メモリカード、記憶媒体、および/または他の記憶装置を含むことができる。すなわち、本発明で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上で具現されて遂行できる。例えば、各図面で図示した機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上で具現されて遂行できる。
【0199】
また、本発明が適用されるデコード装置およびエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信などのリアルタイム通信装置、モバイルストリーミング装置、記憶媒体、カムコーダ、ビデオオンデマンド(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、および医療用ビデオ装置などに含まれることができ、ビデオ信号またはデータ信号を処理するために使われることができる。例えば、OTTビデオ(Over The Top video)装置は、ゲームコンソール、ブルーレイプレーヤ、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recorder)などを含むことができる。
【0200】
また、本発明が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータにより読み取りできる記録媒体に記憶されることができる。また、本発明に従うデータ構造を有するマルチメディアデータも、コンピュータにより読み取りできる記録媒体に記憶されることができる。上記コンピュータにより読み取りできる記録媒体は、コンピュータにより読み取りできるデータが記憶される全ての種類の記憶装置および分散記憶装置を含む。上記コンピュータにより読み取りできる記録媒体は、例えば、ブルーレイディスク(BD)、ユニバーサルシリアル(汎用直列)バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピ(登録商標)ディスク、および光学データ記憶装置を含むことができる。また、上記コンピュータにより読み取りできる記録媒体は、搬送波(例えば、インターネットを通じての転送)の形態に具現されたメディアを含む。また、エンコード方法により生成されたビットストリームがコンピュータにより読み取りできる記録媒体に記憶されるか、または有無線通信ネットワークを介して転送できる。また、本発明の実施例は、プログラムコードによるコンピュータプログラム製品で具現されることができ、上記プログラムコードは、本発明の実施例によりコンピュータで行われることができる。上記プログラムコードは、コンピュータにより読み取り可能なキャリア上に記憶されることができる。
【0201】
また、本発明が適用されるコンテンツストリーミングシステムは、大別してエンコードサーバ、ストリーミングサーバ、ウェブサーバ、メディア記憶所、ユーザ装置、およびマルチメディア入力装置を含むことができる。
【0202】
上記エンコードサーバは、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを上記ストリーミングサーバに転送する役割を担う。他の例において、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置がビットストリームを直接生成する場合、上記エンコードサーバは、省略されることができる。上記ビットストリームは、本発明が適用されるエンコード方法またはビットストリーム生成方法により生成されることができ、上記ストリーミングサーバは、上記ビットストリームを転送または受信する過程で一時的に上記ビットストリームを記憶することができる。
【0203】
上記ストリーミングサーバは、ウェブサーバを通じてのユーザ要求(要請)に基づいてマルチメディアデータをユーザ装置に転送し、上記ウェブサーバは、ユーザにいかなるサービスがあるかを知らせる媒介体の役割を担う。ユーザが上記ウェブサーバに所望のサービスを要求すれば、上記ウェブサーバは、これをストリーミングサーバに伝達し、上記ストリーミングサーバは、ユーザにマルチメディアデータを転送する。この際、上記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、上記制御サーバは、上記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割を担う。
【0204】
上記ストリーミングサーバは、メディア記憶所および/またはエンコードサーバからコンテンツを受信することができる。例えば、上記エンコードサーバからコンテンツを受信するようになる場合、上記コンテンツをリアルタイムに受信することができる。この場合、円滑なストリーミングサービスを提供するために、上記ストリーミングサーバは、上記ビットストリームを一定時間の間記憶することができる。
【0205】
上記ユーザ装置の例には、携帯電話、スマートフォン(smart phone)、ノートブックコンピュータ(laptop computer)、デジタル放送用端末機、PDA(Personal Digital Assistants)、PMP(Portable Multimedia Player)、ナビゲーション(ナビゲータ)、スレートPC(slate PC)、タブレットPC(tablet PC)、ウルトラブック(ULTRABOOK(登録商標))、ウェアラブルデバイス(wearable device、例えば、スマートウォッチ(smartwatch)、スマートグラス(smart glass)、HMD(Head Mounted Display))、デジタルTV、デスクトップコンピュータ、デジタルサイネージなどがありえる。上記コンテンツストリーミングシステム内の各サーバは、分散サーバで運用されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
図1
図2
図3
図4
図5A
図5B
図5C
図6
図7
図8
図9
図10
図11
図12
図13
図14