(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-13
(45)【発行日】2023-10-23
(54)【発明の名称】映像コーディングシステムにおけるインター予測による映像デコーディング方法及び装置
(51)【国際特許分類】
H04N 19/513 20140101AFI20231016BHJP
H04N 19/109 20140101ALI20231016BHJP
H04N 19/14 20140101ALI20231016BHJP
H04N 19/176 20140101ALI20231016BHJP
【FI】
H04N19/513
H04N19/109
H04N19/14
H04N19/176
(21)【出願番号】P 2020532599
(86)(22)【出願日】2018-12-13
(86)【国際出願番号】 KR2018015818
(87)【国際公開番号】W WO2019117640
(87)【国際公開日】2019-06-20
【審査請求日】2020-06-29
【審判番号】
【審判請求日】2022-10-13
(32)【優先日】2017-12-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502032105
【氏名又は名称】エルジー エレクトロニクス インコーポレイティド
【氏名又は名称原語表記】LG ELECTRONICS INC.
【住所又は居所原語表記】128, Yeoui-daero, Yeongdeungpo-gu, 07336 Seoul,Republic of Korea
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100114018
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100117019
【氏名又は名称】渡辺 陽一
(74)【代理人】
【識別番号】100108903
【氏名又は名称】中村 和広
(74)【代理人】
【識別番号】100165191
【氏名又は名称】河合 章
(72)【発明者】
【氏名】イ ジェホ
(72)【発明者】
【氏名】キム ソンファン
【合議体】
【審判長】畑中 高行
【審判官】川崎 優
【審判官】高橋 宣博
(56)【参考文献】
【文献】国際公開第2013/047805(WO,A1)
【文献】LEE,Jaeho et al.,BIO improvement to reduce the encoder and decoder complexities,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 3rd Meeting:Geneva,CH,26-31 May 2016,Document:JVET-C0031(version 3)、スイス、2016年5月27日、JVET-C0031-v3.doc:pp.1-4
【文献】XIU,Xiaoyu et al.,InterDigital’s Response to the SDR Category in Joint Call for Evidence on Video Compression with Capability beyond HEVC,Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino,IT,July 13-21,2017,Document:JVET-G0028(version 2)、イタリア、2017年7月13日、JVET-G0028.DOCX:pp.1-5
【文献】CHEN,Jianle 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 7th Meeting: Torino, IT, 13-21 July 2017,Document:JVET-G1001(version 1)、イタリア、2017年8月19日、JVET-G1001-v1.docx:pp.20-21
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
デコーディング装置により実行される映像デコーディング方法において、
現在ピクチャの分割に基づいて現在ブロックを導出するステップであって、前記現在ブロックがノンスクエア(非方形)ブロックである、ステップと、
参照ピクチャリスト0(L0)及び参照ピクチャリスト1(L1)を導出するステップと、
前記現在ブロックに対する二つの動きベクトル(motion vector、MV)を導出するステップであって、前記二つのMVは、前記L0に対するMVL0及び前記L1に対するMVL1を含む、ステップと、
サブブロック単位でリファイン動きベクトルを導出するBIO(bi-directional optical-flow)予測が前記現在ブロックに適用されるかどうかを判断するステップと、
前記MVL0、前記MVL1及び、前記現在ブロックに前記BIO予測を適用することを決定するとの結果に基づいて、前記現在ブロックのサブブロックに対する前記リファイン動きベクトルを導出するステップと、
前記リファイン動きベクトルに基づいて予測サンプルを導出するステップとを含み、
前記サブブロック単位で前記リファイン動きベクトルを導出する前記BIO予測が前記現在ブロックに適用されるかどうかを決定することは、
前記現在ブロック内のサンプルの数に基づいて、前記BIO予測が前記現在ブロックに適用されるかどうかを決定するステップであって、前記現在ブロック内のサンプルの数が前記現在ブロックの幅と高さを掛け合わせて導出される値である、ステップと、
第1閾値と前記現在ブロックの幅と比較し、第2閾値と前記現在ブロックの高さと比較することにより前記BIO予測を前記現在ブロックに適用するかを決定するステップと、
前記現在ブロック内のサンプルの数が第3閾値と等しいかより大きいことに基づいて、前記BIO予測が前記現在ブロックに適用されると決定され、
前記現在ブロック内のサンプルの数が前記第3閾値より小さいことに基づいて、前記BIO予測が前記現在ブロックに適用されないことを決定し、
前記現在ブロックの幅が前記第1閾値より大きいか等しく、前記現在ブロックの高さが前記第2閾値より大きいか等しいことに基づいて、前記BIO予測は前記現在ブロックに適用され
ると決定され、
前記現在ブロックの幅が前記第
1閾値より小さく、前記現在ブロックの高さが前記第
2閾値より小さいことに基づいて、前記BIO予測は前記現在ブロックに適用されないと決定されることを含む、映像デコーディング方法。
【請求項2】
前記BIO予測を前記現在ブロックに適用するかは、前記MVL0及び前記MVL1が反対方向で同じ大きさを持つかを決定することなく、決定される、請求項1に記載の映像デコーディング方法。
【請求項3】
映像デコーディングを実行する映像デコーディング装置において、
ビットストリームを介して現在ブロックのインター予測についての情報を取得するエントロピーデコーディング部と、
ノンスクエア(非方形)ブロックである現在ピクチャの分割に基づいて現在ブロックを導出し、参照ピクチャリスト0(L0)及び参照ピクチャリスト1(L1)を導出し、前記現在ブロックに対する二つの動きベクトル(motion vector、MV)を導出し、前記二つのMVは、前記L0に対するMVL0及び前記L1に対するMVL1を含み、サブブロック単位でリファイン動きベクトルを導出するBIO(bi-directional optical-flow)予測が前記現在ブロックに適用されるかどうかを判断し、前記MVL0、前記MVL1及び、前記現在ブロックに前記BIO予測が適用されることを決定するとの結果に基づいて、前記現在ブロックのサブブロックに対する前記リファイン動きベクトルを導出し、前記リファイン動きベクトルに基づいて予測サンプルを導出する予測部とを含み、
前記現在ブロック内のサンプルの数に基づいて、前記BIO予測が前記現在ブロックに適用されるかどうかが決定され、前記現在ブロック内のサンプルの数が前記現在ブロックの幅と高さを掛け合わせて導出される値であり、
第1閾値と前記現在ブロックの幅と比較し、第2閾値と前記現在ブロックの高さと比較することにより前記BIO予測を前記現在ブロックに適用するかが決定され、
前記現在ブロック内のサンプルの数が第3閾値と等しいかより大きいことに基づいて、前記BIO予測が前記現在ブロックに適用されると決定され、
前記現在ブロック内のサンプルの数が前記第3閾値より小さいことに基づいて、前記BIO予測が前記現在ブロックに適用されないことを決定し、
前記現在ブロックの幅が前記第1閾値より大きいか等しく、前記現在ブロックの高さが前記第2閾値より大きいか等しいことに基づいて、前記BIO予測は前記現在ブロックに適用され
ると決定され、
前記現在ブロックの幅が前記第
1閾値より小さく、前記現在ブロックの高さが前記第
2閾値より小さいことに基づいて、前記BIO予測は前記現在ブロックに適用されないと決定される、映像デコーディング装置。
【請求項4】
エンコーディング装置により実行される映像エンコーディング方法において、
現在ピクチャの分割に基づいて現在ブロックを導出するステップであって、前記現在ブロックがノンスクエア(非方形)ブロックである、ステップと、
参照ピクチャリスト0(L0)及び参照ピクチャリスト1(L1)を導出するステップと、
前記現在ブロックに対する二つの動きベクトル(motion vector、MV)を導出するステップであって、前記二つのMVは、前記L0に対するMVL0及び前記L1に対するMVL1を含む、ステップと、
サブブロック単位でリファイン動きベクトルを導出するBIO(bi-directional optical-flow)予測が前記現在ブロックに適用されるかどうかを決定するステップと、
前記MVL0、前記MVL1及び前記現在ブロックに前記BIO予測が適用されることを決定するとの結果に基づいて前記現在ブロックのサブブロックに対する前記リファイン動きベクトルを導出するステップと、
前記リファイン動きベクトルに基づいて予測サンプルを導出するステップと、
前記現在ブロックのインター予測に対する情報をエントロピーエンコーディングするステップとを含み、
前記サブブロック単位で前記リファイン動きベクトルを導出する前記BIO予測が前記現在ブロックに適用されるかどうかを決定することは、
前記現在ブロック内のサンプルの数に基づいて、前記BIO予測が前記現在ブロックに適用されるかどうかを決定ステップであって、前記現在ブロック内のサンプルの数が前記現在ブロックの幅と高さを掛け合わせて導出される値である、ステップと、
第1閾値と前記現在ブロックの幅と比較し、第2閾値と前記現在ブロックの高さと比較することにより前記BIO予測を前記現在ブロックに適用するかを決定するステップと、 前記現在ブロック内のサンプルの数が第3閾値と等しいかより大きいことに基づいて、前記BIO予測が前記現在ブロックに適用されると決定され、
前記現在ブロック内のサンプルの数が前記第3閾値より小さいことに基づいて、前記BIO予測が前記現在ブロックに適用されないことを決定し、
前記現在ブロックの幅が前記第1閾値より大きいか等しく、前記現在ブロックの高さが前記第2閾値より大きいか等しいことに基づいて、前記BIO予測は前記現在ブロックに適用され
ると決定され、
前記現在ブロックの幅が前記第
1閾値より小さく、前記現在ブロックの高さが前記第
2閾値より小さいことに基づいて、前記BIO予測は前記現在ブロックに適用されないと決定されることを含む、映像エンコーディング方法。
【請求項5】
前記BIO予測を前記現在ブロックに適用するかは、前記MVL0及び前記MVL1が反対方向で同じ大きさを持つかを決定することなく、決定される、請求項4に記載の映像エンコーディング方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像コーディング技術に関し、より詳しくは、映像コーディングシステムにおけるインター予測による映像デコーディング方法及び装置に関する。
【背景技術】
【0002】
最近、HD(High Definition)映像及びUHD(Ultra High Definition)映像のような高解像度、高品質の映像に対する需要が多様な分野で増加している。映像データが高解像度、高品質になるほど、既存の映像データに比べて相対的に送信される情報量またはビット量が増加するため、既存の有無線広帯域回線のような媒体を利用して映像データを送信するか、または既存の格納媒体を利用して映像データを格納する場合、送信費用と格納費用が増加する。
【0003】
これによって、高解像度、高品質映像の情報を効果的に送信または格納し、再生するために高効率の映像圧縮技術が要求される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の技術的課題は、映像コーディング効率を上げる方法及び装置を提供することにある。
【0005】
本発明の技術的課題は、インター予測効率を上げる方法及び装置を提供することにある。
【0006】
本発明の他の技術的課題は、BIO予測を適用することでサブブロック単位のリファイン動きベクトルを導出する方法及び装置を提供することにある。
【0007】
本発明の他の技術的課題は、BIO予測適用可否を判断することでリファイン動きベクトルを導出する計算の計算複雑度を低くする方法及び装置を提供することにある。
【課題を解決するための手段】
【0008】
本発明の一実施例によると、デコーディング装置により実行される映像デコーディング方法が提供される。前記方法は、参照ピクチャリスト0(L0)及び参照ピクチャリスト1(L1)を導出するステップ、現在ブロックに対する二つの動きベクトル(motion vector、MV)を導出し、前記二つのMVは、前記L0に対するMVL0及び前記L1に対するMVL1を含むステップ、サブブロック単位でリファイン動きベクトルを導出するBIO(bi-directional optical-flow)予測が前記現在ブロックに適用されるかどうかを判断するステップ、前記現在ブロックに前記BIO予測が適用される場合、前記MVL0及び前記MVL1に基づいて前記現在ブロックのサブブロックに対する前記リファイン動きベクトルを導出するステップ、及び前記リファイン動きベクトルに基づいて予測サンプルを導出するステップを含むことを特徴とする。
【0009】
本発明の他の実施例によると、映像デコーディングを実行するデコーディング装置が提供される。前記デコーディング装置は、ビットストリームを介して現在ブロックのインター予測に対する情報を取得するエントロピーデコーディング部、及び参照ピクチャリスト0(L0)及び参照ピクチャリスト1(L1)を導出し、前記現在ブロックに対する二つの動きベクトル(motion vector、MV)を導出し、前記二つのMVは、前記L0に対するMVL0及び前記L1に対するMVL1を含み、サブブロック単位でリファイン動きベクトルを導出するBIO(bi-directional optical-flow)予測が前記現在ブロックに適用されるかどうかを判断し、前記現在ブロックに前記BIO予測が適用される場合、前記MVL0及び前記MVL1に基づいて前記現在ブロックのサブブロックに対する前記リファイン動きベクトルを導出し、前記リファイン動きベクトルに基づいて予測サンプルを導出する予測部を含むことを特徴とする。
【0010】
本発明の他の実施例によると、エンコーディング装置により実行されるビデオエンコーディング方法を提供する。前記方法は、参照ピクチャリスト0(L0)及び参照ピクチャリスト1(L1)を導出するステップ、現在ブロックに対する二つの動きベクトル(motion vector、MV)を導出し、前記二つのMVは、前記L0に対するMVL0及び前記L1に対するMVL1を含むステップ、サブブロック単位でリファイン動きベクトルを導出するBIO(bi-directional optical-flow)予測が前記現在ブロックに適用されるかどうかを決定するステップ、前記現在ブロックに前記BIO予測が適用される場合、前記MVL0及び前記MVL1に基づいて前記現在ブロックのサブブロックに対する前記リファイン動きベクトルを導出するステップ、前記リファイン動きベクトルに基づいて予測サンプルを導出するステップ、及び前記現在ブロックのインター予測に対する情報をエントロピーエンコーディングするステップを含むことを特徴とする。
【0011】
本発明の他の実施例によると、ビデオエンコーディング装置を提供する。前記エンコーディング装置は、参照ピクチャリスト0(L0)及び参照ピクチャリスト1(L1)を導出し、現在ブロックに対する二つの動きベクトル(motion vector、MV)を導出し、前記二つのMVは、前記L0に対するMVL0及び前記L1に対するMVL1を含み、サブブロック単位でリファイン動きベクトルを導出するBIO(bi-directional optical-flow)予測が前記現在ブロックに適用されるかどうかを決定し、前記現在ブロックに前記BIO予測が適用される場合、前記MVL0及び前記MVL1に基づいて前記現在ブロックのサブブロックに対する前記リファイン動きベクトルを導出し、前記リファイン動きベクトルに基づいて予測サンプルを導出する予測部、及び前記現在ブロックのインター予測に対する情報をエントロピーエンコーディングするエントロピーエンコーディング部を含むことを特徴とする。
【発明の効果】
【0012】
本発明によると、現在ブロックのBIO予測適用可否を判断することで、サブブロック単位で導出されるリファイン動きベクトルを使用するインター予測の計算複雑度を低くすることができ、それによって、全体的なコーディング効率を向上させることができる。
【0013】
本発明によると、FRUCのモードに基づいてBIO予測適用可否を判断することで、サブブロック単位で導出されるリファイン動きベクトルを使用するインター予測の計算複雑度を低くすることができ、それによって、全体的なコーディング効率を向上させることができる。
【図面の簡単な説明】
【0014】
【
図1】本発明が適用されることができるビデオエンコーディング装置の構成を概略的に説明する図面である。
【
図2】本発明が適用されることができるビデオデコーディング装置の構成を概略的に説明する図面である。
【
図3】BCC及び物体が短い時間の間に一定の速度で動くと仮定する時の双予測動きベクトルを例示的に示す。
【
図4】サンプルベースのBIO予測とブロックベースのBIO予測が実行される一例を示す。
【
図5】現在ブロックのサイズに基づいて前記BIO予測の適用可否を決定する一例を示す。
【
図6】前記BM方法を介した動き情報を導出する一例を例示的に示す。
【
図7】前記TM方法を介した動き情報を導出する一例を例示的に示す。
【
図8a】FRUCに基づいて実行されるエンコーディング過程及びデコーディング過程の一例を示す。
【
図8b】FRUCに基づいて実行されるエンコーディング過程及びデコーディング過程の一例を示す。
【
図9a】FRUC及び/またはBIOが適用された現在ブロックをエンコーディング/デコーディングする一例を示す。
【
図9b】FRUC及び/またはBIOが適用された現在ブロックをエンコーディング/デコーディングする一例を示す。
【
図10】本発明によるエンコーディング装置による映像エンコーディング方法を概略的に示す。
【
図11】本発明による映像エンコーディング方法を実行するエンコーディング装置を概略的に示す。
【
図12】本発明によるデコーディング装置による映像デコーディング方法を概略的に示す。
【
図13】本発明による映像デコーディング方法を実行するデコーディング装置を概略的に示す。
【発明を実施するための形態】
【0015】
本発明は、多様な変更を加えることができ、様々な実施例を有することができ、特定の実施例を図面に例示して詳細に説明する。しかし、これは本発明を特定の実施例に限定するものではない。本明細書で使用する用語は、単に特定の実施例を説明するために使われたものであり、本発明の技術的思想を限定しようとする意図に使われるものではない。単数の表現は、文脈上明白に異なる意味ではない限り、複数の表現を含む。本明細書において、“含む”または“有する”などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品またはそれらを組み合わせたものが存在することを指定するものであり、一つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品またはそれらを組み合わせたものの存在または付加の可能性を予め排除しないと理解しなければならない。
【0016】
一方、本発明で説明される図面上の各構成は、互いに異なる特徴的な機能に対する説明の便宜のために独立して図示されたものであり、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味しない。例えば、各構成のうち二つ以上の構成が合わせて一つの構成をなすこともあり、一つの構成が複数の構成に分けられることもある。各構成が統合及び/または分離された実施例も、本発明の本質から外れない限り、本発明の権利範囲に含まれる。
【0017】
以下、添付図面を参照し、本発明の好ましい実施例をより詳細に説明する。以下、図面上の同一の構成要素については同一の参照符号を使用し、同一の構成要素について重複説明は省略する。
【0018】
一方、本発明は、ビデオ/映像コーディングに関する、例えば、本発明で開示された方法/実施例は、VVC(versatile video coding)標準または次世代ビデオ/イメージコーディングに開示された方法に適用されることができる。
【0019】
本明細書で、ピクチャ(picture)は、一般的に特定時間帯の一つの映像を示す単位を意味し、スライス(slice)は、コーディングにおいてピクチャの一部を構成する単位である。一つのピクチャは複数のスライスで構成されてもよく、必要に応じて、ピクチャ及びスライスは互いに混用して用いられてもよい。
【0020】
ピクセル(pixel)またはペル(pel)は、一つのピクチャ(または、映像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用されることができる。サンプルは、一般的にピクセルまたはピクセルの値を示し、輝度(ルマ)成分のピクセル/ピクセルの値のみを示してもよく、彩度(クロマ)成分のピクセル/ピクセルの値のみを示してもよい。
【0021】
ユニット(unit)は、映像処理の基本単位を示す。ユニットは、ピクチャの特定領域及び該当領域に対する情報のうち少なくとも一つを含むことができる。ユニットは、場合によってブロック(block)または領域(area)などの用語と混用して用いられてもよい。一般的な場合、MxNのブロックは、M個の列とN個の行からなるサンプルまたは変換係数(transform coefficient)の集合を示すことができる。
【0022】
図1は、本発明が適用されることができるビデオエンコーディング装置の構成を概略的に説明する図面である。
【0023】
図1を参照すると、ビデオエンコーディング装置100は、ピクチャ分割部105、予測部110、レジデュアル処理部120、エントロピーエンコーディング部130、加算部140、フィルタ部150、及びメモリ160を含むことができる。レジデュアル処理部120は、減算部121、変換部122、量子化部123、再整列部124、逆量子化部125、及び逆変換部126を含むことができる。
【0024】
ピクチャ分割部105は、入力されたピクチャを少なくとも一つの処理ユニット(processing unit)に分割できる。
【0025】
一例として、処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれる。この場合、コーディングユニットは、最大コーディングユニット(largest coding unit、LCU)からQTBT(Quad-tree binary-tree)構造によって再帰的に(recursively)分割されることができる。例えば、一つのコーディングユニットは、クアッドツリー構造及び/またはバイナリツリー構造に基づいて下位(deeper)デプスの複数のコーディングユニットに分割されることができる。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造が後に適用されることができる。または、バイナリツリー構造が先に適用されることもできる。それ以上分割されない最終コーディングユニットに基づいて、本発明によるコーディング手順が実行されることができる。この場合、映像特性によるコーディング効率などに基づいて、最大コーディングユニットが最終コーディングユニットとして使われることができ、または、必要によって、コーディングユニットは、再帰的に(recursively)もっと下位デプスのコーディングユニットに分割されて最適のサイズのコーディングユニットが最終コーディングユニットとして使われることができる。ここで、コーディング手順とは、後述する予測、変換、及び復元などの手順を含むことができる。
【0026】
他の例として、処理ユニットは、コーディングユニット(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)を含むことができる。また、変換ブロックまたは変換ユニットは、ピクチャ内でブロック形態の特定領域を意味し、変換係数またはレジデュアルサンプルのアレイを含むことができる。
【0027】
予測部110は、処理対象ブロック(以下、現在ブロックという)に対する予測を実行し、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部110で実行される予測の単位は、コーディングブロック、または変換ブロック、または予測ブロックである。
【0028】
予測部110は、現在ブロックにイントラ予測が適用されるか、またはインター予測が適用されるかを決定することができる。一例として、予測部110は、CU単位にイントラ予測またはインター予測が適用されるかを決定することができる。
【0029】
イントラ予測の場合、予測部110は、現在ブロックが属するピクチャ(以下、現在ピクチャ)内の現在ブロック外部の参照サンプルに基づいて現在ブロックに対する予測サンプルを誘導することができる。このとき、予測部110は、(i)現在ブロックの隣接(neighboring)参照サンプルの平均(average)または補間(interpolation)に基づいて予測サンプルを誘導することができ、(ii)現在ブロックの隣接参照サンプルのうち、予測サンプルに対して特定(予測)方向に存在する参照サンプルに基づいて前記予測サンプルを誘導することもできる。(i)の場合は非方向性モードまたは非角度モードと呼ばれ、(ii)の場合は方向性(directional)モードまたは角度(angular)モードと呼ばれる。イントラ予測における予測モードは、例えば、33個の方向性予測モードと少なくとも2個以上の非方向性モードを有することができる。非方向性モードは、DC予測モード及びプラナーモード(Planarモード)を含むことができる。予測部110は、隣接ブロックに適用された予測モードを利用し、現在ブロックに適用される予測モードを決定することもできる。
【0030】
インター予測の場合、予測部110は、参照ピクチャ上で動きベクトルにより特定されるサンプルに基づいて、現在ブロックに対する予測サンプルを誘導することができる。予測部110は、スキップ(skip)モード、マージ(merge)モード、及びMVP(motion vector prediction)モードのうちいずれか一つを適用して現在ブロックに対する予測サンプルを誘導することができる。スキップモードとマージモードの場合、予測部110は、隣接ブロックの動き情報を現在ブロックの動き情報として利用できる。スキップモードの場合、マージモードと違って予測サンプルと原本サンプルとの間の差(レジデュアル)が送信されない。MVPモードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(Motion Vector Predictor)として利用して現在ブロックの動きベクトル予測子として利用して現在ブロックの動きベクトルを誘導することができる。
【0031】
インター予測の場合、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャ(reference picture)に存在する時間的隣接ブロック(temporal neighboring block)を含むことができる。前記時間的隣接ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture、colPic)とも呼ばれる。動き情報(motion information)は、動きベクトルと参照ピクチャインデックスを含むことができる。予測モード情報と動き情報などの情報は、(エントロピー)エンコーディングされてビットストリーム形態で出力されることができる。
【0032】
スキップモードとマージモードで時間的隣接ブロックの動き情報が利用される場合、参照ピクチャリスト(reference picture list)上の最上位ピクチャが参照ピクチャとして利用されることもできる。参照ピクチャリスト(Picture Order Count)に含まれる参照ピクチャは、現在ピクチャと該当参照ピクチャとの間のPOC(Picture order count)差に基づいて整列されることができる。POCは、ピクチャのディスプレイ順序に対応し、コーディング順序と区分されることができる。
【0033】
減算部121は、原本サンプルと予測サンプルとの間の差であるレジデュアルサンプルを生成する。スキップモードが適用される場合には、前述したようにレジデュアルサンプルを生成しない。
【0034】
変換部122は、変換ブロック単位にレジデュアルサンプルを変換して変換係数(transform coefficient)を生成する。変換部122は、該当変換ブロックのサイズと、該当変換ブロックと空間的に重なるコーディングブロックまたは予測ブロックに適用された予測モードによって変換を実行することができる。例えば、前記変換ブロックと重なる前記コーディングブロックまたは前記予測ブロックにイントラ予測が適用され、前記変換ブロックが4×4のレジデュアルアレイ(array)である場合、レジデュアルサンプルは、DST(Discrete Sine Transform)変換カーネルを利用して変換され、その他の場合、レジデュアルサンプルは、DCT(Discrete Cosine Transform)変換カーネルを利用して変換できる。
【0035】
量子化部123は、変換係数を量子化し、量子化された変換係数を生成することができる。
【0036】
再整列部124は、量子化された変換係数を再整列する。再整列部124は、係数スキャニング(scanning)方法を介してブロック形態の量子化された変換係数を1次元ベクトル形態で再整列できる。ここで、再整列部124は、別途の構成で説明したが、量子化部123の一部であってもよい。
【0037】
エントロピーエンコーディング部130は、量子化された変換係数に対するエントロピーエンコーディングを実行することができる。エントロピーエンコーディングは、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのようなエンコーディング方法を含むことができる。エントロピーエンコーディング部130は、量子化された変換係数外にビデオ復元に必要な情報(例えば、シンタックス要素(syntax element)の値等)を共にまたは別途にエントロピーエンコーディングまたは既設定された方法によってエンコーディングすることもできる。エンコーディングされた情報は、ビットストリーム形態でNAL(network abstraction layer)ユニット単位に送信または格納されることができる。
【0038】
逆量子化部125は、量子化部123で量子化された値(量子化された変換係数)を逆量子化し、逆変換部126は、逆量子化部125で逆量子化された値を逆変換してレジデュアルサンプルを生成する。
【0039】
加算部140は、レジデュアルサンプルと予測サンプルを加算してピクチャを復元する。レジデュアルサンプルと予測サンプルは、ブロック単位に加算されて復元ブロックが生成されることができる。ここで、加算部140は、別途の構成で説明したが、予測部110の一部であってもよい。一方、加算部140は、復元部(reconstruction module)または復元ブロック生成部とも呼ばれる。
【0040】
復元されたピクチャ(reconstructed picture)に対してフィルタ部150は、デブロッキングフィルタ及び/またはサンプル適応的オフセット(sample adaptive offset)を適用することができる。デブロッキングフィルタリング及び/またはサンプル適応的オフセットを介して、復元ピクチャ内のブロック境界のアーチファクトや量子化過程での歪曲が補正されることができる。サンプル適応的オフセットは、サンプル単位に適用されることができ、デブロッキングフィルタリングの過程が完了した後に適用されることができる。フィルタ部150は、ALF(Adaptive Loop Filter)を復元されたピクチャに適用することもできる。ALFは、デブロッキングフィルタ及び/またはサンプル適応的オフセットが適用された後の復元されたピクチャに対して適用されることができる。
【0041】
メモリ160は、復元ピクチャ(デコーディングされたピクチャ)またはエンコーディング/デコーディングに必要な情報を格納することができる。ここで、復元ピクチャは、前記フィルタ部150によりフィルタリング手順が完了した復元ピクチャである。前記格納された復元ピクチャは、他のピクチャの(インター)予測のための参照ピクチャとして活用されることができる。例えば、メモリ160は、インター予測に使われる(参照)ピクチャを格納することができる。このとき、インター予測に使われるピクチャは、参照ピクチャセット(reference picture set)または参照ピクチャリスト(reference picture list)により指定されることができる。
【0042】
図2は、本発明が適用されることができるビデオデコーディング装置の構成を概略的に説明する図面である。
【0043】
図2を参照すると、ビデオデコーディング装置200は、エントロピーデコーディング部210、レジデュアル処理部220、予測部230、加算部240、フィルタ部250、及びメモリ260を含むことができる。ここで、レジデュアル処理部220は、再整列部221、逆量子化部222、逆変換部223を含むことができる。
【0044】
ビデオ情報を含むビットストリームが入力されると、ビデオデコーディング装置200は、ビデオエンコーディング装置でビデオ情報が処理されたプロセスに対応してビデオを復元することができる。
【0045】
例えば、ビデオデコーディング装置200は、ビデオエンコーディング装置で適用された処理ユニットを利用してビデオデコーディングを実行することができる。したがって、ビデオデコーディングの処理ユニットブロックは、一例としてコーディングユニットであり、他の例としてコーディングユニット、予測ユニットまたは変換ユニットである。コーディングユニットは、最大コーディングユニットからクアッドツリー構造及び/またはバイナリツリー構造によって分割されることができる。
【0046】
予測ユニット及び変換ユニットが場合によってさらに使用されることができ、この場合、予測ブロックは、コーディングユニットから導出またはパーティショニングされるブロックであって、サンプル予測のユニットである。このとき、予測ユニットは、サブブロックに分けられることもできる。変換ユニットは、コーディングユニットからクアッドツリー構造によって分割されることができ、変換係数を誘導するユニットまたは変換係数からレジデュアル信号を誘導するユニットである。
【0047】
エントロピーデコーディング部210は、ビットストリームをパーシングしてビデオ復元またはピクチャ復元に必要な情報を出力することができる。例えば、エントロピーデコーディング部210は、指数ゴロム符号化、CAVLCまたはCABACなどのコーディング方法に基づいてビットストリーム内の情報をデコーディングし、ビデオ復元に必要なシンタックスエレメントの値、レジデュアルに対する変換係数の量子化された値を出力することができる。
【0048】
より詳細に、CABACエントロピーデコーディング方法は、ビットストリームで各シンタックス要素に該当するBINを受信し、デコーディング対象シンタックス要素情報と隣接及びデコーディング対象ブロックのデコーディング情報または以前ステップでデコーディングされたシンボル/BINの情報を利用してコンテキスト(context)モデルを決定し、決定されたコンテキストモデルによってBINの発生確率を予測してBINの算術デコーディング(arithmetic decoding)を実行することで、各シンタックス要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピーデコーディング方法は、コンテキストモデル決定後、次のシンボル/BINのコンテキストモデルのためにデコーディングされたシンボル/BINの情報を利用してコンテキストモデルをアップデートすることができる。
【0049】
エントロピーデコーディング部210でデコーディングされた情報のうち予測に対する情報は、予測部230に提供され、エントロピーデコーディング部210でエントロピーデコーディングが実行されたレジデュアル値、即ち、量子化された変換係数は、再整列部221に入力されることができる。
【0050】
再整列部221は、量子化されている変換係数を2次元のブロック形態で再整列できる。再整列部221は、エンコーディング装置で実行された係数スキャニングに対応して再整列を実行することができる。ここで、再整列部221は、別途の構成で説明したが、逆量子化部222の一部であってもよい。
【0051】
逆量子化部222は、量子化されている変換係数を(逆)量子化パラメータに基づいて逆量子化して変換係数を出力することができる。このとき、量子化パラメータを誘導するための情報は、エンコーディング装置からシグナリングされることができる。
【0052】
逆変換部223は、変換係数を逆変換してレジデュアルサンプルを誘導することができる。
【0053】
予測部230は、現在ブロックに対する予測を実行し、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部230で実行される予測の単位は、コーディングブロック、または変換ブロック、または予測ブロックである。
【0054】
予測部230は、前記予測に対する情報に基づいて、イントラ予測を適用するか、またはインター予測を適用するかを決定することができる。このとき、イントラ予測とインター予測のうちいずれかを適用するかを決定する単位と予測サンプルを生成する単位は異なる。併せて、インター予測とイントラ予測において、予測サンプルを生成する単位も異なる。例えば、インター予測とイントラ予測のうちいずれかを適用するかは、CU単位に決定できる。また、例えば、インター予測において、PU単位に予測モードを決定して予測サンプルを生成することができ、イントラ予測において、PU単位に予測モードを決定し、TU単位に予測サンプルを生成することもできる。
【0055】
イントラ予測の場合、予測部230は、現在ピクチャ内の隣接参照サンプルに基づいて現在ブロックに対する予測サンプルを誘導することができる。予測部230は、現在ブロックの隣接参照サンプルに基づいて方向性モードまたは非方向性モードを適用して現在ブロックに対する予測サンプルを誘導することができる。このとき、隣接ブロックのイントラ予測モードを利用して現在ブロックに適用する予測モードが決定されることもできる。
【0056】
インター予測の場合、予測部230は、参照ピクチャ上で動きベクトルにより参照ピクチャ上で特定されるサンプルに基づいて現在ブロックに対する予測サンプルを誘導することができる。予測部230は、スキップ(skip)モード、マージ(merge)モード、及びMVPモードのうちいずれか一つを適用して現在ブロックに対する予測サンプルを誘導することができる。このとき、ビデオエンコーディング装置で提供された現在ブロックのインター予測に必要な動き情報、例えば、動きベクトル、参照ピクチャインデックスなどに対する情報は、前記予測に対する情報に基づいて取得または誘導されることができる。
【0057】
スキップモードとマージモードの場合、隣接ブロックの動き情報が現在ブロックの動き情報として利用されることができる。このとき、隣接ブロックは、空間的隣接ブロックと時間的隣接ブロックを含むことができる。
【0058】
予測部230は、可用な隣接ブロックの動き情報でマージ候補リストを構成し、マージインデックスがマージ候補リスト上で指示する情報を現在ブロックの動きベクトルとして使用することができる。マージインデックスは、エンコーディング装置からシグナリングされることができる。動き情報は、動きベクトルと参照ピクチャを含むことができる。スキップモードとマージモードで時間的隣接ブロックの動き情報が利用される場合、参照ピクチャリスト上の最上位ピクチャが参照ピクチャとして利用されることができる。
【0059】
スキップモードの場合、マージモードと違って予測サンプルと原本サンプルとの間の差(レジデュアル)が送信されない。
【0060】
MVPモードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として利用して現在ブロックの動きベクトルが誘導されることができる。このとき、隣接ブロックは、空間的隣接ブロックと時間的隣接ブロックを含むことができる。
【0061】
一例として、マージモードが適用される場合、復元された空間的隣接ブロックの動きベクトル及び/または時間的隣接ブロックであるColブロックに対応する動きベクトルを利用し、マージ候補リストが生成されることができる。マージモードではマージ候補リストから選択された候補ブロックの動きベクトルが現在ブロックの動きベクトルとして使われる。前記予測に対する情報は、前記マージ候補リストに含まれている候補ブロックの中から選択された最適の動きベクトルを有する候補ブロックを指示するマージインデックスを含むことができる。このとき、予測部230は、前記マージインデックスを利用し、現在ブロックの動きベクトルを導出することができる。
【0062】
他の例として、MVP(Motion Vector Prediction)モードが適用される場合、復元された空間的隣接ブロックの動きベクトル及び/または時間的隣接ブロックであるColブロックに対応する動きベクトルを利用し、動きベクトル予測子候補リストが生成されることができる。即ち、復元された空間的隣接ブロックの動きベクトル及び/または時間的隣接ブロックであるColブロックに対応する動きベクトルは、動きベクトル候補として使われることができる。前記予測に対する情報は、前記リストに含まれている動きベクトル候補の中から選択された最適の動きベクトルを指示する予測動きベクトルインデックスを含むことができる。このとき、予測部230は、前記動きベクトルインデックスを利用し、動きベクトル候補リストに含まれている動きベクトル候補の中から、現在ブロックの予測動きベクトルを選択することができる。エンコーディング装置の予測部は、現在ブロックの動きベクトルと動きベクトル予測子との間の動きベクトル差分(MVD)を求めることができ、これをエンコーディングしてビットストリーム形態で出力できる。即ち、MVDは、現在ブロックの動きベクトルから前記動きベクトル予測子を引いた値として求められる。このとき、予測部230は、前記予測に対する情報に含まれている動きベクトル差分を取得し、前記動きベクトル差分と前記動きベクトル予測子の加算を介して現在ブロックの前記動きベクトルを導出することができる。また、予測部は、参照ピクチャを指示する参照ピクチャインデックスなどを前記予測に対する情報から取得または誘導できる。
【0063】
加算部240は、レジデュアルサンプルと予測サンプルを加算して現在ブロックまたは現在ピクチャを復元することができる。加算部240は、レジデュアルサンプルと予測サンプルをブロック単位に加算して現在ピクチャを復元することもできる。スキップモードが適用された場合にはレジデュアルが送信されないため、予測サンプルが復元サンプルになることができる。ここで、加算部240は、別途の構成で説明したが、予測部230の一部であってもよい。一方、加算部240は、復元部(reconstruction module)または復元ブロック生成部とも呼ばれる。
【0064】
フィルタ部250は、復元されたピクチャにデブロッキングフィルタリングサンプル適応的オフセット、及び/またはALFなどを適用することができる。このとき、サンプル適応的オフセットは、サンプル単位に適用されることができ、デブロッキングフィルタリング以後に適用されることもできる。ALFは、デブロッキングフィルタリング及び/またはサンプル適応的オフセット以後に適用されることもできる。
【0065】
メモリ260は、復元ピクチャ(デコーディングされたピクチャ)またはデコーディングに必要な情報を格納することができる。ここで、復元ピクチャは、前記フィルタ部250によりフィルタリング手順が完了した復元ピクチャである。例えば、メモリ260は、インター予測に使われるピクチャを格納することができる。このとき、インター予測に使われるピクチャは、参照ピクチャセットまたは参照ピクチャリストにより指定されることもできる。復元されたピクチャは、他のピクチャに対する参照ピクチャとして利用されることができる。また、メモリ260は、復元されたピクチャを出力順序によって出力することもできる。
【0066】
前述した内容のように現在ブロックに対するインター予測のために、一つまたは二つの参照ピクチャリストが使われることができる。即ち、現在ブロックに対するインター予測のために、参照ピクチャリスト0または参照ピクチャリスト1が使われることができ、または参照ピクチャリスト0または参照ピクチャリスト1の両方ともが構成されることができる。例えば、現在ブロックが含まれているスライスのスライスタイプがB(B slice)である場合、前記二つの参照ピクチャリストのうち少なくとも一つが使われることができ、前記現在ブロックが含まれている前記スライスのスライスタイプがP(P slice)である場合、前記参照ピクチャリスト0のみが使われることもできる。前記参照ピクチャリスト0は、L0(List0)と呼ばれ、前記参照ピクチャリスト1は、L1(List1)と呼ばれる。現在ブロックに対する予測を実行するにあたって、インター予測に対する動き情報は、双予測動き情報または単予測動き情報である。現在ブロックに対する動き情報は、前記現在ブロックの隣接ブロックに基づいて導出されることができる。ここで、前記双予測動き情報は、L0参照ピクチャインデックス及びL0動きベクトル(L0動き情報)、L1参照ピクチャインデックス及びL1動きベクトル(L1動き情報)を含むことができ、前記単予測動き情報は、L0参照ピクチャインデックス及びL0動きベクトル(L0動き情報)を含むことができ、またはL1参照ピクチャインデックス及びL1動きベクトル(L1動き情報)を含むことができる。前記L0は、参照ピクチャリストL0(List0)を示し、前記L1は、参照ピクチャリストL1(List1)を示す。前記L0動き情報に基づいて実行されるインター予測は、LO予測と呼ばれ、前記L1動き情報に基づいて実行されるインター予測は、L1予測と呼ばれ、前記L0動き情報及びL1動き情報、即ち、双予測動き情報に基づいて実行されるインター予測は、双予測(bi-prediction)と呼ばれる。一方、L0予測及びL1予測の各々に対して別途の動きベクトルが使われることができる。即ち、例えば、現在ブロックに対するL0予測のための前記L0動きベクトル(Motion Vector L0、MVL0)とL1予測のための前記L1動きベクトル(motion Vector L1、MVL1)が別途に導出されることができる。この場合、例えば、前記MVL0がL0内のL0参照ピクチャ内の第1の参照領域を指し、前記MVL1がL1内のL1参照ピクチャ内の第2の参照領域を指す場合、前記第1の参照領域の復元サンプルから取得した第1のプレディクタ(predictor)と前記第2の参照領域の復元サンプルから取得した第2のプレディクタの加重和(weighted sum)を介して前記現在ブロックの予測サンプルを導出することができる。ここで、前記加重和は、前記現在ピクチャと前記第1の参照ピクチャとの間の第1の時間距離及び前記現在ピクチャと前記第2の参照ピクチャとの間の第2の時間距離に基づいて実行されることができる。ここで、時間距離とは、POC(Picture order count)差を示すことができる。即ち、前記現在ピクチャのPOC値と前記L0参照ピクチャのPOC値との差が前記第1の時間距離になり、前記現在ピクチャのPOC値と前記L1参照ピクチャのPOC値との差が前記第2の時間距離になる。
【0067】
一方、本発明によると、前記のような双予測が適用される場合、前記現在ブロックに対するMVL0及びMVL1と、第1のプレディクタ及び第2のプレディクタとに基づいてサンプル単位動きベクトルまたはブロック単位動きベクトルを求めることができ、それによって、より向上した予測性能の予測サンプルを導出することもできる。これはBIO(Bi-directional Optical flow)予測と呼ばれ、前記予測サンプルを既存の予測サンプルと区分してリファイン(refine)予測サンプルまたはBIO予測サンプルと呼ばれる。また、前記サンプル単位動きベクトルまたは前記ブロック単位動きベクトルは、リファイン動きベクトルまたはBIO動きベクトルと呼ばれる。前記ブロック単位動きベクトルが導出される場合、前記ブロック単位動きベクトルが導出される対象ブロックのサイズは、Bw×Bhに既設定されることができる。例えば、前記対象ブロックのサイズは、4×4に既設定されることができる。この場合、前記現在ブロックに含まれている4×4サイズの対象ブロックに対する前記リファイン動きベクトルが導出されることができる。一方、前記現在ブロックの前記対象ブロックは、前記現在ブロックのサブブロックと示すこともできる。
【0068】
前記リファイン動きベクトル及びリファイン予測サンプルを挙げて下記のような方法を介して導出されることができる。
【0069】
BCC(Brightness Constancy Constraint)、即ち、連続されたフレームで物体(object)のサンプル(ピクセル)値変化がないと仮定すると、OF(optical flow)による物体の動きは、以下の数式のように表現されることができる。
【0070】
【0071】
ここで、I(x,y,t)は(x,y)サンプルポジションとt時間でのサンプル値を示し、Δは変化量を示す。小さい動きを仮定する場合、前記数式1の右側項はテイラー級数(taylor series)の1次数式であり、以下のように示される。
【0072】
【0073】
ここで、数式2をtに分けて整理すると、以下のように示される。
【0074】
【0075】
ここで、Vx=Δx/Δtであり、VyはΔy/Δtである。
【0076】
前記数式は、二つの未知数(動き及び信号の空間的導関数(spatial derivative))を含んでいる。したがって、動き分析のために空間的導関数が必要である。
【0077】
本発明によると、OF(optical flow)特性を利用して、追加的な動きベクトルの送信無しでサンプル(ピクセル)単位または特定ブロック単位でリファインされた動きベクトルと参照サンプル値を取得することができる。例えば、BCCに追加で物体が短い時間の間に一定の速度で動くと仮定すると、MVL0及びMVL1は、同じ大きさの対称値で表現されることができる。即ち、MVL0とMVL1のx成分の大きさは同じであり、符号は互いに異なり、前記MVL0と前記MVL1のy成分の大きさは同じであり、符号は互いに異なる。例えば、前記MVL0のx成分、及びy成分が各々Vx、及びVyである場合、前記MVL1のx成分、及びy成分は、各々、-Vx、及び-Vyである。
【0078】
図3は、BCC及び物体が短い時間の間に一定の速度で動くと仮定する時の双予測動きベクトルを例示的に示す。
【0079】
図3を参照すると、BCC及び物体が短い時間の間に一定の速度で動くと仮定する場合、現在ピクチャ300内の現在ブロックに対する双予測において、MVL0は、前記現在ブロックと対応する第1の参照ピクチャ(Reference0)310内の第1の参照ブロックを指す動きベクトルを示し、MVL1は、前記現在ブロックと対応する第2の参照ピクチャ(Reference1)320内の第2の参照ブロックを指す動きベクトルを示す。前記第1の参照ピクチャは、前記L0に含まれている参照ピクチャのうち一つであり、前記第2の参照ピクチャは、前記L1に含まれている参照ピクチャのうち一つである。この場合、各ブロックの代表位置は、各ブロックの左上段サンプルポジション(top-left sample position)になることができる。この場合、前記MVL0と前記MVL1は、互いに対称値で表現されることができる。
【0080】
図3において、現在ブロック内の対象サンプル301を基準にして、MVL0による位置311の第1の参照サンプル値及びMVL1による位置321の第2の参照サンプル値を導出することができる。ここで、前記第1の参照サンプル値は、第1のプレディクタ(predictor)またはL0プレディクタと呼ばれ、前記第2の参照サンプル値は、第2のプレディクタまたはL1プレディクタと呼ばれる。前記第1の参照サンプル値及び前記第2の参照サンプル値の差は、以下の数式のように整理されることができる。
【0081】
【0082】
ここで、
は、第1の参照ピクチャ(Reference0)310のサンプルポジション311でのサンプル値(即ち、第1の参照サンプル値)を示し、
は、第2の参照ピクチャ(Reference1)320のサンプルポジション321でのサンプル値(即ち、第2の参照サンプル値)を示す。前記サンプル値は、以下の数式により示される。
【0083】
【0084】
そして、前記数式5を前記数式4に代入して整理すると、以下の数式6のように示すことができる。
【0085】
【0086】
ここで、I
(0)[i,j]はL0参照サンプル値を示し、I
(1)[i,j]はL1参照サンプル値を示し、I
x
(k)[i,j]、I
y
(k)[i,j]は各々x軸、y軸変化量、即ち、グラジエント(gradient)を示す。具体的に、
及び
は、各々、L0内の第1の参照ピクチャ(Reference0)310の[i,j]位置でのx軸、y軸偏微分値であり、
及び
は、各々、L1内の第2の参照ピクチャ(Reference1)320の[i,j]位置でのx軸、y軸偏微分値である。前記偏微分値は、グラジエントと呼ばれる。
【0087】
一方、正確度及び予測効率を上げるために、前記グラジエントは、補間フィルタ(interpolation filter)に基づいて以下の数式7のように示すことができる。一方、前記補間フィルタのフィルタ係数が割り当てられる位置及び/または単位はフィルタタップということができる。前記補間フィルタのフィルタ係数は、1/4分数(fractional)サンプル単位で割り当てられることができる。
【0088】
【0089】
ここで、2Mは前記補間フィルタのフィルタタップ(filter tap)の数を示し、
、
は各々動きベクトルのx成分、y成分の小数部を示し、
、
は各々
、
に対するn番目のフィルタタップのフィルタ係数を示し、
は双予測以後の[i+n,j]位置での復元サンプル値、即ち、参照ピクチャの[i+n,j]位置での参照サンプル値を示す。前記動きベクトルのx成分及び/またはy成分の小数部の値は、0、1/4、2/4、及び3/4のうち一つである。
【0090】
具体的に、
、
は各々MVL0のx成分、y成分の小数部を示し、
、
は各々
、
でのn番目のフィルタタップのフィルタ係数を示し、
は第1の参照ピクチャ(Reference0)310の[i+n,j]位置での参照サンプル値を示す。また、
、
は各々MVL1のx成分、y成分の小数部を示し、
、
は各々
、
でのn番目のフィルタタップのフィルタ係数を示し、
は第2の参照ピクチャ(Reference1)320の[i+n,j]位置での参照サンプル値を示す。
【0091】
一例として、前記フィルタタップの数が6である場合(即ち、2Mは6である場合)、前記動きベクトルのx成分、y成分の小数部に対する補間フィルタのフィルタタップ係数は、以下の表のように定義されることができる。
【0092】
【0093】
前記数式6に基づいて
が最小値を有するようにするサンプル単位動きベクトルv
x[i,j]、v
y[i,j]を計算することができる。例えば、[i,j]を中心とする特定領域、ウィンドウΩ(windowΩ)内のサンプルが局地的に変わりない動き(locally steady motion)を有すると仮定することができる。ここで、ウィンドウΩは(2M+1)×(2M+1)サンプルを含むことができる。この場合、ウィンドウΩ内のサンプル位置は
で表すことができる。このとき、
でi-M≦i′≦i+M、j-M≦j′≦j+Mを満たす。これに基づいて
を最小化する動きベクトルを計算することができる。この場合、ウィンドウΩ内のサンプルが局地的に変更がない動きを有するという仮定を考慮すると、前記
は、以下の数式のように示される。
【0094】
【0095】
ここで、
、
、
である。ここで、P
(0)[i′,j′]及びP
(1)[i′,j′]は、各々、L0プレディクタ及びL1プレディクタを示す。前記P
(0)[i′,j′]及び前記P
(1)[i′,j′]は、各々、I
0[i′,j′]及びI
1[i′,j′]に対応する。
【0096】
前記数式7をVx、Vyの各々に偏微分して整理すると、以下の通りである。
【0097】
【0098】
ここで、
、
、
、
、
とし、前記s1、s2、s3、及びs4を前記数式9に代入して整理すると、以下の数式10及び数式11のように示すことができる。
【0099】
【0100】
【0101】
前記数式10及び数式11に基づいてVx、Vyを整理すると、各々、以下の通りである。
【0102】
【0103】
即ち、Vx、Vyは、各々、以下のように整理されることができる。
【0104】
【0105】
したがって、前記Vx及びVyを利用して対象サンプルに対するリファインされたプレディクタ、即ち、リファイン予測サンプルを以下のように計算できる。
【0106】
【0107】
前記のような方法に基づいてサンプル単位のリファイン動きベクトル及びリファイン予測サンプルを求めることができる。ここで、Pは、前記対象サンプルに対するリファイン予測サンプルを示し、Vx、Vyは、前記対象サンプルに対するリファイン動きベクトルのx成分、y成分を各々示す。
【0108】
一方、前述した方法は、同じ大きさを有して対称される二つの動きベクトル(即ち、MVL0及びMVL1)を一定の動き(constant motion)と仮定した方法である。即ち、前述したリファイン予測サンプル導出方法は、現在ピクチャと前記MVL0と関連した第1の参照ピクチャとの間の第1の時間距離と、前記現在ピクチャと前記MVL1と関連した第2の参照ピクチャとの間の第2の時間距離が同じ場合を仮定した方法である。前記現在ピクチャのPOC値と前記第1の参照ピクチャのPOC値との差が前記第1の時間距離になり、前記第2の参照ピクチャのPOC値と前記第2の参照ピクチャのPOC値との差が前記第2の時間距離になる。
【0109】
前記第1の時間距離と前記第2の時間距離が同じでない場合の一定の動きを有する前記二つの動きベクトルを考慮して前記リファイン予測サンプルを導出する方法は、後述の通りである。
【0110】
例えば、前記第1の時間距離と前記第2の時間距離が異なる値を有することを反映して前述した数式14を再び計算すると、以下のように示すことができる。
【0111】
【0112】
ここで、Pは前記対象サンプルのためのリファインされたプレディクタを示し、P(0)、P(1)は各々前記現在サンプルに対する第1のプレディクタ、第2のプレディクタを示し、Ix
(0)、Iy
(0)は各々前記第1のプレディクタでのx軸、y軸グラジエントを示し、Ix
(1)、Iy
(1)は各々前記第2のプレディクタでのx軸、y軸グラジエントを示し、Vx、Vyは各々前記対象サンプルに対するリファイン動きベクトルのx成分、y成分を示し、τ0は前記第1の時間距離を示し、τ1は前記第2の時間距離を示す。前記第1の時間距離及び前記第2の時間距離は、前記現在ピクチャ(または、現在フレーム)と参照ピクチャ(または参照フレーム)との距離を示すことができる。
【0113】
前記第1の時間距離及び前記第2の時間距離は、以下のような数式に基づいて導出されることができる。
【0114】
【0115】
ここで、POC(current)は前記現在ピクチャのPOC(picture order count)値を示し、POC(Ref0)は前記第1の参照ピクチャのPOC値を示し、POC(Ref1)は前記第2の参照ピクチャのPOC値を示す。
【0116】
一方、前記リファイン予測サンプルを導出する方法で演算複雑度を減らすために前記数式13を近似化して使用することができる。前記数式13を近似化した式は、以下のように誘導されることができる。
【0117】
前記数式13のVxの分子及び分母をs5に分けて以下の数式を導出することができる。
【0118】
【0119】
前記数式17のs5の値が十分に大きい値である場合、前記数式17の分母のs2*s6/s5及び分子のs2*s4/s5は、0に近似化されることができる。したがって、前記数式17は、以下のような数式で表すことができる。
【0120】
【0121】
前記数式18を介して導出されたVxを前記数式11のVyに代入する場合、Vyは、以下のような数式に基づいて導出されることができる。
【0122】
【0123】
前記数式19に基づいてVyを整理すると、以下の通りである。
【0124】
【0125】
前記数式18及び数式20に基づいて前記Vx及びVyを導出するための演算複雑度を低くすることができ、それによって、リファイン予測サンプルを導出する方法の全体的な演算複雑度を低くすることができる。
【0126】
一方、前述した内容のように、サンプル単位のリファイン動きベクトルを導出するBIO予測が適用されることもできるが、ブロック単位のリファイン動きベクトルを導出するBIO予測が提案されることができる。ブロック単位でリファインメントを実行するBIO予測は、サンプル単位でリファインメントを実行するBIO予測に比べて計算複雑度を減らすことができる。
【0127】
例えば、前記リファインメントが実行される対象ブロックの幅Bwと高さBhが各々4に同じく既設定された場合、4×4サイズのブロック単位でプレディクタがリファインメントされることができる。サンプル単位でリファインメントを実行するBIO予測では前述した内容のように各サンプル別にグラジエントマップ(gradient map)が生成されることができ、各サンプルに対するオフセット(offset)が導出され、前記数式14に基づいて各サンプルに対するプレディクタに前記オフセットを加えて前記リファイン予測サンプルが導出されることができる。しかし、ブロック単位でリファインメントを実行するBIO予測(ブロックベースのBIO(block based BIO)予測と示すこともできる)では4×4サイズである対象ブロックでのオフセットが導出されることができ、前記対象ブロックに含まれている対象サンプルのプレディクタに同じオフセットが加算されることができる。即ち、前記対象ブロックに同じリファイン動きベクトルが適用されることができる。
【0128】
図4は、サンプルベースのBIO予測とブロックベースのBIO予測が実行される一例を示す。
図4を参照すると、前記リファインメントが実行される対象ブロックのサイズがBw×Bh(例えば、4×4)に既設定された場合、エンコーディング/デコーディング過程を介して導出されたMVL0及びMVL1を基準にしてw×h大きさの対象ブロックの参照サンプル値のx軸、y軸、時間軸グラジエントマップ(gradient map)が導出されることができる。以後、前記対象ブロックに対するグラジエントマップに基づいて前記対象ブロックに含まれている対象サンプルに対するオフセットが導出されることができる。Bw×Bhカーネル(kernel)に基づいて前記対象ブロック単位のオフセットが導出されることができ、対象サンプルに対するプレディクタに前記オフセットを加えて前記対象サンプルに対するリファイン予測サンプルが導出されることができる。
【0129】
具体的に、現在ブロックの対象ブロックに含まれている対象サンプルのグラジエント(即ち、対象ブロックのグラジエントマップ)に基づいて前記ブロック単位リファイン動きベクトルが導出されることができる。前記ブロック単位リファイン動きベクトルは、前記現在ブロックの対象ブロック単位で導出されることができ、前記ブロック単位リファイン動きベクトルは、前記現在ブロックの対象ブロックに対するリファイン動きベクトルと示すことができる。例えば、前記現在ブロックの対象ブロックに含まれている対象サンプルのsnの和が前記対象ブロックのsnとして導出されることができる。前記対象ブロックに対するsnは、sn、bkと示すことができる。例えば、前記対象ブロックに対するs1、bks2、bks3、bk、s4、bks5、bks6、bkは、以下の数式のように導出されることができる。
【0130】
【0131】
【0132】
以後、前述した数式13または数式18及び数式20にsnの代わりに(sn、bk>>n)を挿入した数式に基づいて、前記対象ブロックに対するリファイン動きベクトルが導出されることができる。例えば、前記ブロック単位動きベクトルが導出される対象ブロックのサイズが4×4である場合、前述した数式13にsnの代わりに(sn、bk>>16)を挿入した数式に基づいて、前記対象ブロックに対するリファイン動きベクトルが導出されることができる。前記対象ブロックのサイズが4×4である場合、前記ブロック単位リファイン動きベクトルは、以下の数式に基づいて導出されることができる。
【0133】
【0134】
または、近似化された数式に基づいて、前記ブロック単位リファイン動きベクトルが導出されることもできる。即ち、前述した数式18及び数式20にsnの代わりに(sn、bk>>n)を挿入した数式に基づいて、前記対象ブロックに対するリファイン動きベクトルが導出されることができる。前記対象ブロックのサイズが4×4である場合、前記ブロック単位リファイン動きベクトルは、以下の数式に基づいて導出されることができる。
【0135】
【0136】
以後、前述した数式14のVxをVx、bkに変え、VyをVy、bkに変えて前記対象サンプルに対するリファイン予測サンプルが導出されることができる。
【0137】
一方、本発明では現在ブロックに対する特定条件に基づいて前記BIO予測を適応的に適用する方案を提案する。それによって、前記BIO予測、特に、ブロックベースのBIO予測を適用するインター予測を最適化してコーディング効率を向上させることができる。
【0138】
一例として、現在ブロックのサイズに基づいて前述したBIO予測の適用可否が決定されることができる。例えば、前記現在ブロックのサイズがW×Hである場合、前記現在ブロックのサイズと既設定された閾値に基づいて前記予測の適用可否が決定されることができる。
【0139】
例えば、前記現在ブロックの幅と幅に対する閾値が同じであり、前記現在ブロックの高さと高さに対する閾値が同じ場合は、前記現在ブロックに対して前記BIO予測が適用されないと決定されることができる。または、前記現在ブロックのサイズW×Hが既設定された最小サイズN×Mより小さい場合、前記現在ブロックに対して前記BIO予測が適用されないと決定されることができる。または、前記現在ブロックのサンプル数が既設定された閾値より小さい場合、前記現在ブロックに対して前記BIO予測が適用されないと決定されることができる。
【0140】
具体的に、例えば、前記現在ブロックのサイズが4×4である場合、前記BIO予測は、前記現在ブロックに対して適用されない。
【0141】
図5は、現在ブロックのサイズに基づいて前記BIO予測の適用可否を決定する一例を示す。
【0142】
エンコーディング装置/デコーディング装置は、前記現在ブロックに対する動きベクトルを導出することができる(S500)。前記動きベクトルは、MVL0及びMVL1を含むことができる。
【0143】
エンコーディング装置/デコーディング装置は、前記現在ブロックのサイズが4×4であるかどうかを判断することができる(S510)。前記現在ブロックのサイズが4×4である場合、前記現在ブロックに対する前記BIO予測は実行されない。この場合、前記導出された前記動きベクトルに基づいて、前記現在ブロックに対するインター予測が実行されることができる。
【0144】
前記現在ブロックのサイズが4×4でない場合、エンコーディング装置/デコーディング装置は、前記現在ブロックに対するブロックベースのBIO予測を実行することができる(S520)。この場合、前記ブロック単位動きベクトルが導出される対象ブロックのサイズは4×4である。即ち、前記エンコーディング装置/デコーディング装置は、前記現在ブロックに含まれている4×4サイズの対象ブロックに対するリファイン動きベクトルを導出することができ、前記リファイン動きベクトルに基づいて前記現在ブロックの前記対象ブロックに含まれている対象サンプルに対するリファイン予測サンプルを導出することができる。
【0145】
一方、前記現在ブロックの動き情報を導出する過程でFRUC(Frame Rate Up-Conversion)が適用されることができ、前記FRUCを介して導出された動き情報に基づいて前述したBIO予測が実行されることもできる。前記FRUCは、PMMVD(Pattern Matched Motion Vector Derivation)とも呼ばれる。前記FRUCは、映像内で客体が一定の速度で動き、このとき、ピクセル値(サンプル値)に変化が無いことを仮定し、TM(template matching)方法またはBM(bilateral matching)方法を介して動き情報を導出する方案を示すことができる。具体的に、下記のように説明されることができる。
【0146】
図6は、前記BM方法を介した動き情報を導出する一例を例示的に示す。前記現在ブロックに前記FRUCが適用された場合、前記現在ブロックに対するMVL0及びMVL1を順次に一つずつ選択した後、前記現在ブロックが属するピクチャを中心に補間(interpolation)して前記L0方向及びL1方向のうち前記動きベクトルと関連した方向と異なる方向の前記動きベクトルに対応される動きベクトルを導出することができる。
【0147】
具体的に、エンコーディング装置/デコーディング装置は、前記現在ブロックの隣接ブロックに基づいて前記現在ブロックの動き情報候補リストを導出することができる。前記隣接ブロックの動きベクトル候補は、双予測動きベクトル候補または単予測動きベクトル候補である。エンコーディング装置/デコーディング装置は、前記動きベクトル候補に含まれている動きベクトルをL0方向とL1方向に分けて区分できる。即ち、エンコーディング装置/デコーディング装置は、前記動きベクトル候補に含まれている動きベクトルをMVL0とMVL1に区分できる。
【0148】
以後、前記区分された動きベクトルを順次に一つずつ選択した後、前記現在ブロックが属するピクチャを中心に補間(interpolation)して前記L0方向及びL1方向のうち前記動きベクトルと関連した方向と異なる方向の前記動きベクトルに対応される動きベクトルを導出することができる。
【0149】
例えば、前記現在ブロックの動きベクトル候補がMVL0である場合、前記MVL0に対するL0参照ピクチャと前記現在ブロックを含む現在ピクチャとの間の時間的距離(Temporal distance)及びL1参照ピクチャと前記現在ピクチャとの間の時間的距離に基づいてスケーリングして前記MVL0と対応されるMVL1を導出することができる。即ち、前記MVL0に対するL0参照ピクチャと前記現在ピクチャとの第1の時間的距離及び前記L1参照ピクチャと前記現在ピクチャとの第2の時間的距離に基づいて前記MVL0をスケーリングして前記MVL1を導出することができる。ここで、前記第1の時間的距離は、前記L0参照ピクチャのPOCと前記現在ピクチャのPOCとの差値であり、前記第2の時間的距離は、前記L1参照ピクチャのPOCと前記現在ピクチャのPOCとの差値である。また、前記L1参照ピクチャは、前記L1に含まれているL1参照ピクチャの中から導出されることができる。例えば、前記L1参照ピクチャは、前記L1に含まれているL1参照ピクチャのうち前記MVL0が指す参照領域と導出されたMVL1が指す参照領域との差分値、即ち、レジデュアルが最も小さい参照領域を含む参照ピクチャとして導出されることができる。前記MVL0が指す参照領域と導出されたMVL1が指す参照領域との差分値は、前記動きベクトル候補に対するコスト(cost)と示すことができる。
【0150】
また、例えば、前記現在ブロックの動きベクトル候補がMVL1である場合、前記MVL1に対するL1参照ピクチャと前記現在ブロックを含む現在ピクチャとの間の時間的距離(Temporal distance)及びL0参照ピクチャと前記現在ピクチャとの間の時間的距離に基づいてスケーリングして前記MVL1と対応されるMVL0を導出することができる。即ち、前記MVL1に対するL1参照ピクチャと前記現在ピクチャとの第1の時間的距離及び前記L0参照ピクチャと前記現在ピクチャとの第2の時間的距離に基づいて前記MVL1をスケーリングして前記MVL1を導出することができる。ここで、前記第1の時間的距離は、前記L1参照ピクチャのPOCと前記現在ピクチャのPOCとの差値であり、前記第2の時間的距離は、前記L0参照ピクチャのPOCと前記現在ピクチャのPOCとの差値である。
図6に示すTD0は、前記第1の時間的距離を示し、TD1は、前記第2の時間的距離を示す。また、前記L0参照ピクチャは、前記L0に含まれているL0参照ピクチャの中から導出されることができる。例えば、前記L0参照ピクチャは、前記L0に含まれているL0参照ピクチャのうち前記MVL1が指す参照領域と導出されたMVL0が指す参照領域との差分値、即ち、レジデュアルが最も小さい参照領域を含む参照ピクチャとして導出されることができる。前記MVL1が指す参照領域と導出されたMVL0が指す参照領域との差分値は、コスト(cost)と示すことができる。
【0151】
エンコーディング装置/デコーディング装置は、前記動きベクトル候補に対するコストを導出することができ、前記コストが最も小さい動きベクトル候補(MVL0及びMVL1を含む双予測動き情報)を前記現在ブロックの動き情報として導出することができる。
【0152】
一方、前記現在ブロックに前記FRUCが適用された場合、前記TM方法を介して前記現在ブロックの動き情報が導出されることもできる。
【0153】
図7は、前記TM方法を介した動き情報を導出する一例を例示的に示す。
図7を参照すると、L0参照ピクチャに含まれているL0参照ブロックのうち前記現在ブロックのテンプレート(template)と最も類似したテンプレートに対する参照ブロックが前記現在ブロックに対するL0参照ブロックとして導出されることができ、前記L0参照ブロックを指す動きベクトルが前記現在ブロックに対するMVL0として導出されることができる。即ち、L0参照ピクチャに含まれている参照ブロックのうち前記現在ブロックのテンプレートとのコストが最も小さいテンプレートに対する参照ブロックが前記現在ブロックに対するL0参照ブロックとして導出されることができ、前記L0参照ブロックを指す動きベクトルが前記現在ブロックに対するMVL0として導出されることができる。
【0154】
前記現在ブロックの前記テンプレートは、前記現在ブロックの左側隣接領域及び/または上側隣接領域を含むことができ、前記L0参照ブロックの前記テンプレートは、前記現在ブロックのテンプレートと対応する領域であり、前記参照ブロックの前記テンプレートは、前記参照ブロックの左側隣接領域及び/または上側隣接領域を含むことができる。前記参照ブロックに対するコストは、前記現在ブロックのテンプレートと前記参照ブロックのテンプレートとのSAD(Sum of Absolute Difference)として導出されることができる。
【0155】
前記コストは、以下のような数式に基づいて導出されることができる。
【0156】
【0157】
ここで、i,jはブロックのテンプレート内のサンプルの位置(i,j)を示し、Costdistortionは前記コストを示し、Temprefは参照ブロックのテンプレートのサンプル値を示し、Tempcurは前記現在ブロックのテンプレートのサンプル値を示す。参照ブロックのテンプレートと前記現在ブロックのテンプレートとの間の対応するサンプル間の差を累積することができ、前記差の累積は、前記参照ブロックに対するコストとして使われることができる。L0参照ピクチャに含まれているL0参照ブロックのうち最も小さいコストを有するL0参照ブロックが前記現在ブロックに対するL0参照ブロックとして導出されることができ、前記L0参照ブロックを指す動きベクトルが前記現在ブロックに対するMVL0として導出されることができる。前記コストは、前述した内容のように現在ブロックのテンプレート及びL0参照ブロックのテンプレートに基づいて導出されることができる。
【0158】
また、
図7を参照すると、L1参照ピクチャに含まれているL1参照ブロックのうち前記現在ブロックのテンプレート(template)と最も類似したテンプレートに対する参照ブロックが前記現在ブロックに対するL1参照ブロックとして導出されることができ、前記L1参照ブロックを指す動きベクトルが前記現在ブロックに対するMVL1として導出されることができる。即ち、L1参照ピクチャに含まれている参照ブロックのうち前記現在ブロックのテンプレートとのコストが最も小さいテンプレートに対する参照ブロックが前記現在ブロックに対するL1参照ブロックとして導出されることができ、前記L1参照ブロックを指す動きベクトルが前記現在ブロックに対するMVL1として導出されることができる。
【0159】
前記現在ブロックの前記テンプレートは、前記現在ブロックの左側隣接領域及び/または上側隣接領域を含むことができ、前記L1参照ブロックの前記テンプレートは、前記現在ブロックのテンプレートと対応する領域であり、前記参照ブロックの前記テンプレートは、前記参照ブロックの左側隣接領域及び/または上側隣接領域を含むことができる。前記参照ブロックに対するコストは、前記現在ブロックのテンプレートと前記参照ブロックのテンプレートとのSAD(Sum of Absolute Difference)として導出されることができる。L1参照ピクチャに含まれているL1参照ブロックのうち最も小さいコストを有するL1参照ブロックが前記現在ブロックに対するL1参照ブロックとして導出されることができ、前記L1参照ブロックを指す動きベクトルが前記現在ブロックに対するMVL1として導出されることができる。前記コストは、前述した内容のように現在ブロックのテンプレート及びL1参照ブロックのテンプレートに基づいて導出されることができる。
【0160】
一方、デコーディング装置は、エンコーディング装置から最適の動きベクトルを導出するためのマッチング方法に対する情報を取得することもでき、この場合、前記マッチング方法によって最適の動きベクトルを導出することができる。例えば、デコーディング装置は、前記BM方法またはTM方法の選択に対するフラグをビットストリームを介して取得できる。前記フラグは、BM/TM選択フラグということもできる。デコーディング装置は、前記フラグの値に基づいてマッチング方法を選択することができる。例えば、前記フラグの値が1である場合、デコーディング装置は、前記BM方法を実行して前記現在ブロックの動き情報を導出することができ、または前記フラグの値が0である場合、デコーディング装置は、前記TM方法を実行して前記現在ブロックの動き情報を導出することができる。または、前記フラグの値が0である場合、デコーディング装置は、前記BM方法を実行して前記現在ブロックの動き情報を導出することができ、または前記フラグの値が1である場合、デコーディング装置は、前記TM方法を実行して前記現在ブロックの動き情報を導出することができる。
【0161】
図8a乃至
図8bは、FRUCに基づいて実行されるエンコーディング過程及びデコーディング過程の一例を示す。
【0162】
図8aは、FRUCに基づいて実行されるエンコーディング過程の一例を示す。
【0163】
図8aを参照すると、エンコーディング装置は、BMモードを適用して現在ブロックに対する動き情報を導出する(S800)。一方、前述したBM方法に基づいて動き情報を導出する方案は、BMモードと示すことができる。
【0164】
例えば、エンコーディング装置は、前記現在ブロックの隣接ブロックに基づいて前記現在ブロックの動き情報候補リストを導出することができる。前記動き情報候補リストに含まれている候補は、L0動き情報またはL1動き情報を含むことができる。
【0165】
以後、エンコーディング装置は、BM方法を介して前記動き情報候補リストに含まれている候補に対するコストを導出することができ、最も小さいコストを有する候補に基づいて前記現在ブロックに対する動き情報を導出することができる。
【0166】
前記動き情報候補リストに含まれている候補に対するコストは、以下のように導出されることができる。エンコーディング装置は、現在ピクチャを中心にして前記候補の動きベクトルを補間(interpolation)して前記L0方向及びL1方向のうち前記動きベクトルと関連した方向と異なる方向の前記動きベクトルに対応される動きベクトルを導出することができ、前記候補の動きベクトルが指す参照ブロックと前記導出された動きベクトルが指す参照ブロックとのSADを前記候補のコストとして導出することができる。
【0167】
例えば、前記動き候補がL0動き情報を含む場合、エンコーディング装置は、第1の時間的距離及び第2の時間的距離に基づいて前記動き候補に対するMVL0をスケーリングしてMVL1を導出することができる。エンコーディング装置は、前記MVL0が指すL0参照ブロックと前記MVL1が指すL1参照ブロックとのSADを前記動き候補のコストとして導出することができる。ここで、前記第1の時間的距離は、前記動き候補に対するL0参照ピクチャのPOCと現在ピクチャのPOCとの差値であり、前記第2の時間的距離は前記MVL1に対するL1参照ピクチャのPOCと前記現在ピクチャのPOCとの差値である。
【0168】
また、例えば、前記動き候補がL1動き情報を含む場合、エンコーディング装置は、第1の時間的距離及び第2の時間的距離に基づいて前記動き候補に対するMVL1をスケーリングしてMVL0を導出することができる。エンコーディング装置は、前記MVL1が指すL1参照ブロックと前記MVL0が指すL0参照ブロックとのSADを前記動き候補のコストとして導出することができる。ここで、前記第1の時間的距離は、前記動き候補に対するL1参照ピクチャのPOCと現在ピクチャのPOCとの差値であり、前記第2の時間的距離は、前記MVL0に対するL0参照ピクチャのPOCと前記現在ピクチャのPOCとの差値である。
【0169】
エンコーディング装置は、前記候補のコストを比較することができ、最も小さいコストを有する候補の動き情報(L0動き情報またはL1動き情報)及び前記候補に基づいて導出された動き情報(L1動き情報またはL0動き情報)を前記現在ブロックの動き情報として導出することができる。前記導出された動き情報は、前記BMモードに基づいて導出された動き情報を示すことができる。
【0170】
エンコーディング装置は、TMモードを適用して現在ブロックに対する動き情報を導出する(S810)。一方、前述したTM方法に基づいて動き情報を導出する方案は、TMモードと示すことができる。
【0171】
エンコーディング装置は、L0参照ピクチャに含まれているL0参照ブロックのうち前記現在ブロックのテンプレートとのコストが最も小さいテンプレートに対するL0参照ブロックを指す動きベクトルが前記現在ブロックに対するMVL0として導出されることができる。ここで、前記現在ブロックの前記テンプレートは、前記現在ブロックの左側隣接領域及び/または上側隣接領域を含むことができ、前記L0参照ブロックの前記テンプレートは、前記現在ブロックのテンプレートと対応する領域であり、前記L0参照ブロックの前記テンプレートは、前記L0参照ブロックの左側隣接領域及び/または上側隣接領域を含むことができる。前記L0参照ブロックに対するコストは、前記現在ブロックのテンプレートと前記L0参照ブロックのテンプレートとのSAD(Sum of Absolute Difference)として導出されることができる。
【0172】
また、エンコーディング装置は、L1参照ピクチャに含まれているL1参照ブロックのうち前記現在ブロックのテンプレートとのコストが最も小さいテンプレートに対するL1参照ブロックを指す動きベクトルを前記現在ブロックに対するMVL1として導出することができる。ここで、前記現在ブロックの前記テンプレートは、前記現在ブロックの左側隣接領域及び/または上側隣接領域を含むことができ、前記L1参照ブロックの前記テンプレートは、前記現在ブロックのテンプレートと対応する領域であり、前記L1参照ブロックの前記テンプレートは、前記L1参照ブロックの左側隣接領域及び/または上側隣接領域を含むことができる。前記L1参照ブロックに対するコストは、前記現在ブロックのテンプレートと前記L1参照ブロックのテンプレートとのSAD(Sum of Absolute Difference)として導出されることができる。
【0173】
エンコーディング装置は、L0動き情報とL1動き情報を含む動き情報を前記現在ブロックの動き情報として導出することができる。前記L0動き情報は、前記MVL0及び前記L0参照ピクチャを指す参照ピクチャインデックスを含むことができ、前記L1動き情報は、前記MVL1及び前記L1参照ピクチャを指す参照ピクチャインデックスを含むことができる。
【0174】
エンコーディング装置は、BMモードに基づいて導出された動き情報及びTMモードに基づいて導出された動き情報に対するRD(rate distortion)チェックを実行することができ、前記BMモード及び前記TMモードの中から前記現在ブロックに対する最適のモードを選択することができる(S820)。エンコーディング装置は、BMモードに基づいて導出された動き情報及びTMモードに基づいて導出された動き情報に対するRDコストに基づいて、前記BMモード及び前記TMモードの中から前記現在ブロックに適用されるモードを選択することができる。一方、エンコーディング装置は、前記選択されたモードを示す情報を生成することができる。例えば、エンコーディング装置は、前記BMモード及び前記TMモードのうち一つを示すフラグを生成することができ、ビットストリームを介して前記フラグをシグナリングすることができる。
【0175】
図8bは、FRUCに基づいて実行されるデコーディング過程の一例を示す。
【0176】
図8bを参照すると、デコーディング装置は、前記現在ブロックにBMモードが適用されるかどうかを判断することができる(S830)。デコーディング装置は、前記現在ブロックにBMモードまたはTMモードが適用されるかどうかを判断することができる。例えば、デコーディング装置は、ビットストリームを介して前記BMモード及び前記TMモードのうち一つを示すフラグを取得することができる。デコーディング装置は、前記BMモード及び前記TMモードのうち前記フラグが指すモードを前記現在ブロックに適用されるモードとして導出することができる。
【0177】
前記現在ブロックに前記BMモードが適用される場合、デコーディング装置は、前記BMモードに基づいて前記現在ブロックに対する動き情報を導出する(S840)。
【0178】
例えば、デコーディング装置は、前記現在ブロックの隣接ブロックに基づいて前記現在ブロックの動き情報候補リストを導出することができる。前記動き情報候補リストに含まれている候補は、L0動き情報またはL1動き情報を含むことができる。
【0179】
以後、デコーディング装置は、BM方法を介して前記動き情報候補リストに含まれている候補に対するコストを導出することができ、最も小さいコストを有する候補に基づいて前記現在ブロックに対する動き情報を導出することができる。
【0180】
前記動き情報候補リストに含まれている候補に対するコストは、以下のように導出されることができる。デコーディング装置は、現在ピクチャを中心にして前記候補の動きベクトルを補間(interpolation)して前記L0方向及びL1方向のうち前記動きベクトルと関連した方向と異なる方向の前記動きベクトルに対応される動きベクトルを導出することができ、前記候補の動きベクトルが指す参照ブロックと前記導出された動きベクトルが指す参照ブロックとのSADを前記候補のコストとして導出することができる。
【0181】
例えば、前記動き候補がL0動き情報を含む場合、デコーディング装置は、第1の時間的距離及び第2の時間的距離に基づいて前記動き候補に対するMVL0をスケーリングしてMVL1を導出することができる。デコーディング装置は、前記MVL0が指すL0参照ブロックと前記MVL1が指すL1参照ブロックとのSADを前記動き候補のコストとして導出することができる。ここで、前記第1の時間的距離は、前記動き候補に対するL0参照ピクチャのPOCと現在ピクチャのPOCとの差値であり、前記第2の時間的距離は、前記MVL1に対するL1参照ピクチャのPOCと前記現在ピクチャのPOCとの差値である。
【0182】
また、例えば、前記動き候補がL1動き情報を含む場合、デコーディング装置は、第1の時間的距離及び第2の時間的距離に基づいて前記動き候補に対するMVL1をスケーリングしてMVL0を導出することができる。デコーディング装置は、前記MVL1が指すL1参照ブロックと前記MVL0が指すL0参照ブロックとのSADを前記動き候補のコストとして導出することができる。ここで、前記第1の時間的距離は、前記動き候補に対するL1参照ピクチャのPOCと現在ピクチャのPOCとの差値であり、前記第2の時間的距離は、前記MVL0に対するL0参照ピクチャのPOCと前記現在ピクチャのPOCとの差値である。
【0183】
デコーディング装置は、前記候補のコストを比較することができ、最も小さいコストを有する候補の動き情報(L0動き情報またはL1動き情報)及び前記候補に基づいて導出された動き情報(L1動き情報またはL0動き情報)を前記現在ブロックの動き情報として導出することができる。
【0184】
一方、前記現在ブロックに前記TMモードが適用される場合、デコーディング装置は、前記TMモードに基づいて前記現在ブロックに対する動き情報を導出する(S850)。
【0185】
デコーディング装置は、L0参照ピクチャに含まれているL0参照ブロックのうち前記現在ブロックのテンプレートとのコストが最も小さいテンプレートに対するL0参照ブロックを指す動きベクトルが前記現在ブロックに対するMVL0として導出されることができる。ここで、前記現在ブロックの前記テンプレートは、前記現在ブロックの左側隣接領域及び/または上側隣接領域を含むことができ、前記L0参照ブロックの前記テンプレートは、前記現在ブロックのテンプレートと対応する領域であり、前記L0参照ブロックの前記テンプレートは、前記L0参照ブロックの左側隣接領域及び/または上側隣接領域を含むことができる。前記L0参照ブロックに対するコストは、前記現在ブロックのテンプレートと前記L0参照ブロックのテンプレートとのSAD(Sum of Absolute Difference)として導出されることができる。
【0186】
また、デコーディング装置は、L1参照ピクチャに含まれているL1参照ブロックのうち前記現在ブロックのテンプレートとのコストが最も小さいテンプレートに対するL1参照ブロックを指す動きベクトルを前記現在ブロックに対するMVL1として導出することができる。ここで、前記現在ブロックの前記テンプレートは、前記現在ブロックの左側隣接領域及び/または上側隣接領域を含むことができ、前記L1参照ブロックの前記テンプレートは、前記現在ブロックのテンプレートと対応する領域であり、前記L1参照ブロックの前記テンプレートは、前記L1参照ブロックの左側隣接領域及び/または上側隣接領域を含むことができる。前記L1参照ブロックに対するコストは、前記現在ブロックのテンプレートと前記L1参照ブロックのテンプレートとのSAD(Sum of Absolute Difference)として導出されることができる。
【0187】
デコーディング装置は、L0動き情報とL1動き情報を含む動き情報を前記現在ブロックの動き情報として導出することができる。前記L0動き情報は、前記MVL0及び前記L0参照ピクチャを指す参照ピクチャインデックスを含むことができ、前記L1動き情報は、前記MVL1及び前記L1参照ピクチャを指す参照ピクチャインデックスを含むことができる。
【0188】
一方、前述した内容のようにFRUCを介して前記現在ブロックの動き情報が導出される場合、前記現在ブロックに適用されたモード(BMモードまたはTMモード)に基づいて前記BIOを適応的に適用することがコーディング効率をより向上させることができる。具体的に、FRUCのBMモードと前記BIOは、後述する仮定1及び仮定2を考慮した予測方案である。
【0189】
-仮定1.短い時間の間に対象物体(object)が同じ速度で移動する。
【0190】
-仮定2.連続されたフレーム(frame)で対象物体に対するサンプル値は変わらない。
【0191】
前記BMモードが適用される場合、前記仮定を考慮して各(サブ)ブロックの動きベクトルが導出されることができ、前記BIOが適用される場合も、前記仮定を考慮して各(サブ)ブロックのオフセット(各(サブ)ブロックの動きベクトルに基づいて導出される値)が導出されることができる。したがって、同じ仮定に基づいて実行される方法を重複適用しないことがコーディング効率をより向上させることができる。それによって、前記現在ブロックにFRUCが適用される場合、TMモードに基づいて動き情報が導出されると、前記BIOを適用し、BMモードに基づいて動き情報が導出されると、前記BIOを適用しない方案が提案されることができる。
【0192】
図9a乃至
図9bは、FRUC及び/またはBIOが適用された現在ブロックをエンコーディング/デコーディングする一例を示す。
【0193】
図9aは、FRUC及び/またはBIOが適用された現在ブロックをエンコーディングする一例を示す。
【0194】
図9aを参照すると、エンコーディング装置は、現在ブロックにFRUCを適用して前記現在ブロックの動き情報を導出することができる(S900)。エンコーディング装置は、前記現在ブロックに対してBMモード及びTMモードに基づいて前記現在ブロックに対する動き情報を導出することができる。前記BMモードに基づいて前記現在ブロックに対する動き情報を導出する具体的な方案は、前述の通りである。また、前記TMモードに基づいて前記現在ブロックに対する動き情報を導出する具体的な方案は、前述の通りである。
【0195】
エンコーディング装置は、現在ブロックに対してTMモードが適用されるかどうかを判断することができる(S910)。エンコーディング装置は、前記BMモードに基づいて導出された動き情報と前記TMモードに基づいて導出された動き情報とを比較して前記現在ブロックに適用されるモードを選択することができる。
【0196】
前記現在ブロックにTMモードが適用された場合、エンコーディング装置は、前記現在ブロックに対する動き情報に基づいてBIO予測を実行することができる(S920)。エンコーディング装置は、前記TMモードに基づいて導出された動き情報に基づいてBIO予測を実行することができる。例えば、前記動き情報は、前記現在ブロックに対するMVL0及びMVL1を含むことができ、エンコーディング装置は、前記現在ブロックに対するMVL0及びMVL1と、第1のプレディクタ及び第2のプレディクタとに基づいて前記現在ブロックに対するブロック単位リファイン動きベクトルを求めることができる。例えば、前記現在ブロックに含まれている4×4サイズのブロックに対するリファイン動きベクトルが導出されることができる。エンコーディング装置は、前記現在ブロックに対する前記MVL0及び前記MVL1と、前記第1のプレディクタ及び前記第2のプレディクタとに基づいて前記現在ブロックの対象ブロックに対するリファイン動きベクトルを導出することができ、前記リファイン動きベクトルに基づいてリファイン予測サンプルを導出することができる。
【0197】
具体的に、エンコーディング装置は、前記対象ブロックのサンプルの各々を基準にして前記MVL0による位置の第1のプレディクタ及びMVL1による位置の第2のプレディクタを導出することができ、前記第1のプレディクタ及び前記第2のプレディクタに基づいて前記対象サンプルに対するグラジエントを導出することができる。以後、エンコーディング装置は、前記サンプルに対するグラジエントに基づいて前記対象ブロックのリファイン動きベクトルが導出されることができる。例えば、前記対象ブロックに対する前記リファイン動きベクトルは、前述した数式16に基づいて導出されることができる。エンコーディング装置は、前記リファイン動きベクトルに基づいて前記対象ブロックに対するリファイン予測サンプルを導出することができる。
【0198】
一方、前記現在ブロックにBMモードが適用された場合、エンコーディング装置は、前記現在ブロックに対するBIO予測を実行せずに、導出された動き情報に基づいて予測を実行することができる。
【0199】
図9bは、FRUC及び/またはBIOが適用された現在ブロックをデコーディングする一例を示す。
【0200】
図9bを参照すると、デコーディング装置は、前記現在ブロックにTMモードが適用されるかどうかを判断することができる(S930)。デコーディング装置は、前記現在ブロックにBMモードまたはTMモードが適用されるかどうかを判断することができる。例えば、デコーディング装置は、ビットストリームを介して前記BMモード及び前記TMモードのうち一つを示すフラグを取得することができる。デコーディング装置は、前記BMモード及び前記TMモードのうち前記フラグが指すモードを前記現在ブロックに適用されるモードとして導出することができる。
【0201】
一方、前記現在ブロックに前記TMモードが適用される場合、デコーディング装置は、前記TMモードに基づいて前記現在ブロックに対する動き情報を導出する(S940)。
【0202】
デコーディング装置は、L0参照ピクチャに含まれているL0参照ブロックのうち前記現在ブロックのテンプレートとのコストが最も小さいテンプレートに対するL0参照ブロックを指す動きベクトルが前記現在ブロックに対するMVL0として導出されることができる。ここで、前記現在ブロックの前記テンプレートは、前記現在ブロックの左側隣接領域及び/または上側隣接領域を含むことができ、前記L0参照ブロックの前記テンプレートは、前記現在ブロックのテンプレートと対応する領域であり、前記L0参照ブロックの前記テンプレートは、前記L0参照ブロックの左側隣接領域及び/または上側隣接領域を含むことができる。前記L0参照ブロックに対するコストは、前記現在ブロックのテンプレートと前記L0参照ブロックのテンプレートとのSAD(Sum of Absolute Difference)として導出されることができる。
【0203】
また、デコーディング装置は、L1参照ピクチャに含まれているL1参照ブロックのうち前記現在ブロックのテンプレートとのコストが最も小さいテンプレートに対するL1参照ブロックを指す動きベクトルを前記現在ブロックに対するMVL1として導出することができる。ここで、前記現在ブロックの前記テンプレートは、前記現在ブロックの左側隣接領域及び/または上側隣接領域を含むことができ、前記L1参照ブロックの前記テンプレートは、前記現在ブロックのテンプレートと対応する領域であり、前記L1参照ブロックの前記テンプレートは、前記L1参照ブロックの左側隣接領域及び/または上側隣接領域を含むことができる。前記L1参照ブロックに対するコストは、前記現在ブロックのテンプレートと前記L1参照ブロックのテンプレートとのSAD(Sum of Absolute Difference)として導出されることができる。
【0204】
デコーディング装置は、L0動き情報とL1動き情報を含む動き情報を前記現在ブロックの動き情報として導出することができる。前記L0動き情報は、前記MVL0及び前記L0参照ピクチャを指す参照ピクチャインデックスを含むことができ、前記L1動き情報は、前記MVL1及び前記L1参照ピクチャを指す参照ピクチャインデックスを含むことができる。
【0205】
前記現在ブロックにTMモードが適用された場合、デコーディング装置は、前記現在ブロックに対する動き情報に基づいてBIO予測を実行することができる(S950)。デコーディング装置は、前記TMモードに基づいて導出された動き情報に基づいてBIO予測を実行することができる。例えば、前記動き情報は、前記現在ブロックに対するMVL0及びMVL1を含むことができ、デコーディング装置は、前記現在ブロックに対するMVL0及びMVL1と、第1のプレディクタ及び第2のプレディクタとに基づいて前記現在ブロックに対するブロック単位リファイン動きベクトルを求めることができる。例えば、前記現在ブロックに含まれている4×4サイズのブロックに対するリファイン動きベクトルが導出されることができる。デコーディング装置は、前記現在ブロックに対する前記MVL0及び前記MVL1と、前記第1のプレディクタ及び前記第2のプレディクタとに基づいて前記現在ブロックの対象ブロックに対するリファイン動きベクトルを導出することができ、前記リファイン動きベクトルに基づいてリファイン予測サンプルを導出することができる。
【0206】
具体的に、デコーディング装置は、前記対象ブロックのサンプルの各々を基準にして前記MVL0による位置の第1のプレディクタ及びMVL1による位置の第2のプレディクタを導出することができ、前記第1のプレディクタ及び前記第2のプレディクタに基づいて前記対象サンプルに対するグラジエントを導出することができる。以後、デコーディング装置は、前記サンプルに対するグラジエントに基づいて前記対象ブロックのリファイン動きベクトルが導出されることができる。例えば、前記対象ブロックに対する前記リファイン動きベクトルは、前述した数式16に基づいて導出されることができる。デコーディング装置は、前記リファイン動きベクトルに基づいて前記対象ブロックに対するリファイン予測サンプルを導出することができる。
【0207】
一方、前記現在ブロックに前記BMモードが適用される場合、デコーディング装置は、前記BMモードに基づいて前記現在ブロックに対する動き情報を導出する(S960)。
【0208】
例えば、デコーディング装置は、前記現在ブロックの隣接ブロックに基づいて前記現在ブロックの動き情報候補リストを導出することができる。前記動き情報候補リストに含まれている候補は、L0動き情報またはL1動き情報を含むことができる。
【0209】
以後、デコーディング装置は、BM方法を介して前記動き情報候補リストに含まれている候補に対するコストを導出することができ、最も小さいコストを有する候補に基づいて前記現在ブロックに対する動き情報を導出することができる。
【0210】
前記動き情報候補リストに含まれている候補に対するコストは、以下のように導出されることができる。デコーディング装置は、現在ピクチャを中心にして前記候補の動きベクトルを補間(interpolation)して前記L0方向及びL1方向のうち前記動きベクトルと関連した方向と異なる方向の前記動きベクトルに対応される動きベクトルを導出することができ、前記候補の動きベクトルが指す参照ブロックと前記導出された動きベクトルが指す参照ブロックとのSADを前記候補のコストとして導出することができる。
【0211】
例えば、前記動き候補がL0動き情報を含む場合、デコーディング装置は、第1の時間的距離及び第2の時間的距離に基づいて前記動き候補に対するMVL0をスケーリングしてMVL1を導出することができる。デコーディング装置は、前記MVL0が指すL0参照ブロックと前記MVL1が指すL1参照ブロックとのSADを前記動き候補のコストとして導出することができる。ここで、前記第1の時間的距離は、前記動き候補に対するL0参照ピクチャのPOCと現在ピクチャのPOCとの差値であり、前記第2の時間的距離は、前記MVL1に対するL1参照ピクチャのPOCと前記現在ピクチャのPOCとの差値である。
【0212】
また、例えば、前記動き候補がL1動き情報を含む場合、デコーディング装置は、第1の時間的距離及び第2の時間的距離に基づいて前記動き候補に対するMVL1をスケーリングしてMVL0を導出することができる。デコーディング装置は、前記MVL1が指すL1参照ブロックと前記MVL0が指すL0参照ブロックとのSADを前記動き候補のコストとして導出することができる。ここで、前記第1の時間的距離は、前記動き候補に対するL1参照ピクチャのPOCと現在ピクチャのPOCとの差値であり、前記第2の時間的距離は、前記MVL0に対するL0参照ピクチャのPOCと前記現在ピクチャのPOCとの差値である。
【0213】
デコーディング装置は、前記候補のコストを比較することができ、最も小さいコストを有する候補の動き情報(L0動き情報またはL1動き情報)及び前記候補に基づいて導出された動き情報(L1動き情報またはL0動き情報)を前記現在ブロックの動き情報として導出することができる。デコーディング装置は、前記動き情報に基づいて前記現在ブロックに対する予測を実行することができる。
【0214】
図10は、本発明によるエンコーディング装置による映像エンコーディング方法を概略的に示す。
図10に開示された方法は、
図1に開示されたエンコーディング装置により実行されることができる。具体的に、例えば、
図10のS1000乃至S1040は、前記エンコーディング装置の予測部により実行されることができ、S1050は、前記エンコーディング装置のエントロピーエンコーディング部により実行されることができる。
【0215】
エンコーディング装置は、参照ピクチャリスト0(L0)及び参照ピクチャリスト1(L1)を導出する(S1000)。エンコーディング装置は、前記参照ピクチャリスト0(L0)及び前記参照ピクチャリスト1(L1)を導出することができ、前記参照ピクチャリスト0は、L0(List0)と呼ばれ、前記参照ピクチャリスト1は、L1(List1)と呼ばれる。
【0216】
エンコーディング装置は、現在ブロックに対する二つの動きベクトル(motion vector、MV)を導出し、前記二つのMVは、前記L0に対するMVL0及び前記L1に対するMVL1を含む(S1010)。エンコーディング装置は、現在ブロックがBスライスに含まれ、前記現在ブロックに双予測が適用される場合、前記二つのMVを導出することができる。前記二つのMVは、前記L0に対するMVL0及び前記L1に対するMVL1である。
【0217】
エンコーディング装置は、前記現在ブロックの隣接ブロックに基づいて前記現在ブロックに対する前記二つのMVを導出することができる。
【0218】
例えば、エンコーディング装置は、前記隣接ブロックの動き情報に基づいて動き情報候補リストを生成することができ、RDコストに基づいて前記動き情報候補リストに含まれている候補の中から特定候補を選択することができる。エンコーディング装置は、前記特定候補を指すインデックスを生成することができる。前記インデックスは、前述したインター予測に対する情報に含まれることができる。エンコーディング装置は、前記特定候補のMVL0及びMVL1を前記現在ブロックの前記二つのMVとして導出することができる。
【0219】
または、エンコーディング装置は、前記現在ブロックにFRUCを適用して前記二つのMVを導出することができる。
【0220】
具体的に、例えば、エンコーディング装置は、前記現在ブロックにTM(Template Matching)モードまたはBM(Bi-lateral Matching)モードが適用されるかを決定することができる。また、エンコーディング装置は、前記TMモード及び前記BMモードのうち一つを指すフラグを生成することができる。前記インター予測に対する情報は、前記フラグを含むことができる。
【0221】
前記現在ブロックに前記BMモードが適用された場合、エンコーディング装置は、前記現在ブロックの隣接ブロックに基づいて前記現在ブロックの動き情報候補リストを導出することができ、前記動き情報候補リストに含まれている候補の中から特定候補を選択することができる。エンコーディング装置は、第1の時間的距離及び第2の時間的距離に基づいて前記特定候補の第1の動きベクトルをスケーリングして前記L0及び前記L1のうち前記動きベクトルと関連したリストと異なるリストに関連した第2の動きベクトルを導出することができ、前記第1の動きベクトル及び前記第2の動きベクトルを前記現在ブロックのMVとして導出することができる。ここで、前記第1の時間的距離は、前記第1の動きベクトルに対する参照ピクチャのPOC(Picture Order Count)と前記現在ブロックが含まれている現在ピクチャのPOCとの差値であり、前記第2の時間的距離は、前記第2の動きベクトルに対する参照ピクチャのPOCと前記現在ピクチャのPOCとの差値である。一方、前記動き情報候補リストに含まれている候補の中から最も小さいコストを有する候補が前記特定候補として選択されることができ、前記特定候補に対するコストは、前記第1の動きベクトルが指す参照ブロックと前記第2の動きベクトルが指す参照ブロックとのSAD(Sum of Absolute Difference)として導出されることができる。即ち、エンコーディング装置は、前記動き情報候補リストに対する候補の第2の動きベクトルを導出し、前記候補に対するコストを導出することができ、前記コストを比較して前記特定候補を選択することができる。
【0222】
また、前記現在ブロックに前記TMモードが適用された場合、エンコーディング装置は、前記現在ブロックのL0参照ピクチャ及びL1参照ピクチャを導出することができ、前記L0参照ピクチャのL0参照ブロックのうち最も小さいコストを有するL0参照ブロックを指す動きベクトルを前記MVL0として導出することができ、前記L1参照ピクチャのL1参照ブロックのうち最も小さいコストを有するL1参照ブロックを指す動きベクトルを前記MVL1として導出することができる。ここで、前記L0参照ブロックのコストは、前記現在ブロックのテンプレート(template)と前記L0参照ブロックのテンプレートとのSAD(Sum of Absolute Difference)として導出されることができ、前記L1参照ブロックのコストは、前記現在ブロックのテンプレートと前記L1参照ブロックのテンプレートとのSADとして導出されることができる。また、前記現在ブロックのテンプレートは、前記現在ブロックの隣接サンプルを含む特定領域を示し、前記L0参照ブロックのテンプレートは、前記現在ブロックの隣接サンプルに対応する前記L0参照ブロックの隣接サンプルを含む特定領域を示し、前記L1参照ブロックのテンプレートは、前記現在ブロックの隣接サンプルに対応する前記L1参照ブロックの隣接サンプルを含む特定領域を示すことができる。一方、前記L0参照ブロックまたは前記L1参照ブロックのコストは、前述した数式24に基づいて導出されることができる。また、前記L0参照ピクチャは、前記L0に含まれているL0参照ピクチャのうち一つとして導出されることができ、前記L1参照ピクチャは、前記L1に含まれているL1参照ピクチャのうち一つとして導出されることができる。また、前記L0参照ピクチャ及び前記L1参照ピクチャは、前記現在ブロックの隣接ブロックの動き情報に基づいて導出されることができる。
【0223】
一方、エンコーディング装置は、前記現在ブロックに対してFRUCが適用されるかどうかを示すFRUCフラグを生成することができる。前記インター予測に対する情報は、前記現在ブロックに対するFRUCフラグを含むことができる。
【0224】
エンコーディング装置は、サブブロック単位でリファイン動きベクトルを導出するBIO(bi-directional optical-flow)予測が前記現在ブロックに適用されるかどうかを決定する(S1020)。例えば、エンコーディング装置は、前記現在ブロックのサイズに基づいて前記BIO予測が前記現在ブロックに適用されるかどうかを決定することができる。一例として、前記現在ブロックのサイズが4×4サイズより小さいまたは同じ場合は、前記現在ブロックに前記BIO予測が適用されなく、前記現在ブロックのサイズが4×4サイズより大きい場合は、前記現在ブロックに前記BIO予測が適用されることができる。
【0225】
また、他の例として、エンコーディング装置は、前記TMモードの適用可否に基づいて前記BIO予測が前記現在ブロックに適用されるかどうかを決定することができる。一例として、前記現在ブロックに前記BMモードが適用される場合、前記現在ブロックに前記BIO予測が適用されなく、前記現在ブロックに前記TMモードが適用される場合、前記現在ブロックに前記BIO予測が適用されることができる。
【0226】
前記現在ブロックに前記BIO予測が適用される場合、エンコーディング装置は、前記MVL0及び前記MVL1に基づいて前記現在ブロックのサブブロックに対する前記リファイン動きベクトルを導出する(S1030)。ここで、前記サブブロックのサイズは、既設定されることができる。例えば、前記サブブロックのサイズは、4×4サイズである。前記リファイン動きベクトルは、前記現在ブロックのサブブロック単位として導出されることができる。
【0227】
前記MVL0及び前記MVL1を基準にして前記サブブロックの参照サンプル値のx軸、y軸、時間軸グラジエントマップ(gradient map)が導出されることができ、前記サブブロックに対するグラジエントマップに基づいて前記サブブロックに対する前記リファイン動きベクトルが導出されることができる。前記サブブロックに対する前記リファイン動きベクトルは、前述した数式21または数式23に基づいて導出されることができる。
【0228】
エンコーディング装置は、前記リファイン動きベクトルに基づいて予測サンプルを導出する(S1040)。エンコーディング装置は、前記リファイン動きベクトルに基づいて予測サンプルを導出することができる。前記現在ブロックの前記サブブロックに対する予測サンプルは、前述した数式14におけるVxをVx、bkに変え、VyをVy、bkに変えた数式に基づいて導出されることができる。また、前記第1の時間距離と前記第2の時間距離の大きさが異なる場合、前記現在ブロックの前記サブブロックに対する予測サンプルは、前述した数式15におけるVxをVx、bkに変え、VyをVy、bkに変えた数式に基づいて導出されることができる。
【0229】
一方、たとえ、
図10に示されていないとしても、前記BIO予測が適用されないと判断された場合、エンコーディング装置は、前記MVL0及び前記MVL1に基づいて前記対象サンプルに対する予測サンプルを導出することができる。
【0230】
エンコーディング装置は、前記現在ブロックのインター予測に対する情報をエントロピーエンコーディングする(S1050)。エンコーディング装置は、前記インター予測に対する情報をエントロピーエンコーディングすることができ、ビットストリーム形態で出力できる。前記ビットストリームは、ネットワークまたは格納媒体を介してデコーディング装置に送信されることができる。
【0231】
前記インター予測に対する情報は、前記現在ブロックの予測モード情報を含むことができる。前記予測モード情報は、前記現在ブロックに適用されるインター予測モードを示すことができる。また、前記インター予測に対する情報は、前記TMモード及び前記BMモードのうち一つを指すフラグを含むことができる。また、前記インター予測に対する情報は、前記現在ブロックに対するFRUCフラグを含むことができる。
【0232】
一方、エンコーディング装置は、原本ピクチャの原本サンプル及び前記生成された予測サンプルに基づいてレジデュアル(residual)サンプルを生成することができる。エンコーディング装置は、前記レジデュアルサンプルに基づいて前記レジデュアルに対する情報を生成することができる。前記レジデュアルに対する情報は、前記レジデュアルサンプルに対する変換係数を含むことができる。エンコーディング装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて前記復元サンプルを導出することができる。即ち、エンコーディング装置は、前記予測サンプルと前記レジデュアルサンプルを加えて前記復元サンプルを導出することができる。また、エンコーディング装置は、前記レジデュアルに対する情報をエンコーディングしてビットストリーム形態で出力できる。前記ビットストリームは、ネットワークまたは格納媒体を介してデコーディング装置に送信されることができる。
【0233】
図11は、本発明による映像エンコーディング方法を実行するエンコーディング装置を概略的に示す。
図10に開示された方法は、
図11に開示されたエンコーディング装置により実行されることができる。具体的に、例えば、
図11の前記エンコーディング装置の予測部は、
図10のS1000乃至S1040を実行することができ、前記エンコーディング装置のエントロピーエンコーディング部は、
図10のS1050を実行することができる。
【0234】
図12は、本発明によるデコーディング装置による映像デコーディング方法を概略的に示す。
図12に開示された方法は、
図2に開示されたデコーディング装置により実行されることができる。具体的に、例えば、
図12のS1200乃至S1240は、前記デコーディング装置の予測部により実行されることができる。
【0235】
デコーディング装置は、参照ピクチャリスト0(L0)及び参照ピクチャリスト1(L1)を導出する(S1200)。デコーディング装置は、前記参照ピクチャリスト0(L0)及び前記参照ピクチャリスト1(L1)を導出することができ、前記参照ピクチャリスト0は、L0(List0)と呼ばれ、前記参照ピクチャリスト1は、L1(List1)と呼ばれる。
【0236】
デコーディング装置は、現在ブロックに対する二つの動きベクトル(motion vector、MV)を導出し、前記二つのMVは、前記L0に対するMVL0及び前記L1に対するMVL1を含む(S1210)。デコーディング装置は、インター予測に対する情報をビットストリームを介して取得でき、前記インター予測に対する情報に基づいて前記現在ブロックに適用されるインター予測モードを導出することができる。
【0237】
デコーディング装置は、現在ブロックがBスライスに含まれ、前記現在ブロックに双予測が適用される場合、前記二つのMVを導出することができる。前記二つのMVは、前記L0に対するMVL0及び前記L1に対するMVL1である。
【0238】
デコーディング装置は、前記現在ブロックの隣接ブロックに基づいて前記現在ブロックに対する前記二つのMVを導出することができる。
【0239】
例えば、デコーディング装置は、前記隣接ブロックの動き情報に基づいて動き情報候補リストを生成することができ、前記動き情報候補リストに含まれている候補の中から特定候補を指すインデックスに基づいて前記特定候補を選択することができる。前記インデックスは、前述したインター予測に対する情報に含まれることができる。デコーディング装置は、前記特定候補のMVL0及びMVL1を前記現在ブロックの前記二つのMVとして導出することができる。
【0240】
または、デコーディング装置は、前記現在ブロックにFRUCを適用して前記二つのMVを導出することができる。
【0241】
具体的に、例えば、デコーディング装置は、前記現在ブロックにTM(Template Matching)モードまたはBM(Bi-lateral Matching)モードが適用されるかを判断することができる。一例として、デコーディング装置は、前記TMモード及び前記BMモードのうち一つを指すフラグを取得することができ、前記フラグが指すモードを前記現在ブロックに適用されると判断できる。前記インター予測に対する情報は、前記フラグを含むことができる。
【0242】
前記現在ブロックに前記BMモードが適用された場合、デコーディング装置は、前記現在ブロックの隣接ブロックに基づいて前記現在ブロックの動き情報候補リストを導出することができ、前記動き情報候補リストに含まれている候補の中から特定候補を選択することができる。デコーディング装置は、第1の時間的距離及び第2の時間的距離に基づいて前記特定候補の第1の動きベクトルをスケーリングして前記L0及び前記L1のうち前記動きベクトルと関連したリストと異なるリストに関連した第2の動きベクトルを導出することができ、前記第1の動きベクトル及び前記第2の動きベクトルを前記現在ブロックのMVとして導出することができる。ここで、前記第1の時間的距離は、前記第1の動きベクトルに対する参照ピクチャのPOC(Picture Order Count)と前記現在ブロックが含まれている現在ピクチャのPOCとの差値であり、前記第2の時間的距離は、前記第2の動きベクトルに対する参照ピクチャのPOCと前記現在ピクチャのPOCとの差値である。一方、前記動き情報候補リストに含まれている候補の中から最も小さいコストを有する候補が前記特定候補として選択されることができ、前記特定候補に対するコストは、前記第1の動きベクトルが指す参照ブロックと前記第2の動きベクトルが指す参照ブロックとのSAD(Sum of Absolute Difference)として導出されることができる。即ち、デコーディング装置は、前記動き情報候補リストに対する候補の第2の動きベクトルを導出し、前記候補に対するコストを導出することができ、前記コストを比較して前記特定候補を選択することができる。
【0243】
また、前記現在ブロックに前記TMモードが適用された場合、デコーディング装置は、前記現在ブロックのL0参照ピクチャ及びL1参照ピクチャを導出することができ、前記L0参照ピクチャのL0参照ブロックのうち最も小さいコストを有するL0参照ブロックを指す動きベクトルを前記MVL0として導出することができ、前記L1参照ピクチャのL1参照ブロックのうち最も小さいコストを有するL1参照ブロックを指す動きベクトルを前記MVL1として導出することができる。ここで、前記L0参照ブロックのコストは、前記現在ブロックのテンプレート(template)と前記L0参照ブロックのテンプレートとのSAD(Sum of Absolute Difference)として導出されることができ、前記L1参照ブロックのコストは、前記現在ブロックのテンプレートと前記L1参照ブロックのテンプレートとのSADとして導出されることができる。また、前記現在ブロックのテンプレートは、前記現在ブロックの隣接サンプルを含む特定領域を示し、前記L0参照ブロックのテンプレートは、前記現在ブロックの隣接サンプルに対応する前記L0参照ブロックの隣接サンプルを含む特定領域を示し、前記L1参照ブロックのテンプレートは、前記現在ブロックの隣接サンプルに対応する前記L1参照ブロックの隣接サンプルを含む特定領域を示すことができる。一方、前記L0参照ブロックまたは前記L1参照ブロックのコストは、前述した数式24に基づいて導出されることができる。また、前記L0参照ピクチャは、前記L0に含まれているL0参照ピクチャのうち一つとして導出されることができ、前記L1参照ピクチャは、前記L1に含まれているL1参照ピクチャのうち一つとして導出されることができる。また、前記L0参照ピクチャ及び前記L1参照ピクチャは、前記現在ブロックの隣接ブロックの動き情報に基づいて導出されることができる。
【0244】
一方、前記インター予測に対する情報は、前記現在ブロックに対するFRUCフラグを含むことができ、前記FRUCフラグは、前記現在ブロックに対してFRUCが適用されるかどうかを示すことができる。
【0245】
デコーディング装置は、サブブロック単位でリファイン動きベクトルを導出するBIO(bi-directional optical-flow)予測が前記現在ブロックに適用されるかどうかを判断する(S1220)。例えば、デコーディング装置は、前記現在ブロックのサイズに基づいて前記BIO予測が前記現在ブロックに適用されるかどうかを判断することができる。一例として、前記現在ブロックのサイズが4×4サイズより小さいまたは同じ場合は、前記現在ブロックに前記BIO予測が適用されなく、前記現在ブロックのサイズが4×4サイズより大きい場合は、前記現在ブロックに前記BIO予測が適用されることができる。
【0246】
また、他の例として、デコーディング装置は、前記TMモードの適用可否に基づいて前記BIO予測が前記現在ブロックに適用されるかどうかを判断することができる。一例として、前記現在ブロックに前記BMモードが適用される場合、前記現在ブロックに前記BIO予測が適用されなく、前記現在ブロックに前記TMモードが適用される場合、前記現在ブロックに前記BIO予測が適用されることができる。
【0247】
前記現在ブロックに前記BIO予測が適用される場合、デコーディング装置は、前記MVL0及び前記MVL1に基づいて前記現在ブロックのサブブロックに対する前記リファイン動きベクトルを導出する(S1230)。ここで、前記サブブロックのサイズは、既設定されることができる。例えば、前記サブブロックのサイズは、4×4サイズである。前記リファイン動きベクトルは、前記現在ブロックのサブブロック単位として導出されることができる。
【0248】
前記MVL0及び前記MVL1を基準にして前記サブブロックの参照サンプル値のx軸、y軸、時間軸グラジエントマップ(gradient map)が導出されることができ、前記サブブロックに対するグラジエントマップに基づいて前記サブブロックに対する前記リファイン動きベクトルが導出されることができる。前記サブブロックに対する前記リファイン動きベクトルは、前述した数式21または数式23に基づいて導出されることができる。
【0249】
デコーディング装置は、前記リファイン動きベクトルに基づいて予測サンプルを導出する(S1240)。デコーディング装置は、前記リファイン動きベクトルに基づいて予測サンプルを導出することができる。前記現在ブロックの前記サブブロックに対する予測サンプルは、前述した数式14におけるVxをVx、bkに変え、VyをVy、bkに変えた数式に基づいて導出されることができる。また、前記第1の時間距離と前記第2の時間距離の大きさが異なる場合、前記現在ブロックの前記サブブロックに対する予測サンプルは、前述した数式15におけるVxをVx、bkに変え、VyをVy、bkに変えた数式に基づいて導出されることができる。
【0250】
デコーディング装置は、予測モードによって前記予測サンプルを復元サンプルとして利用することもでき、または前記予測サンプルにレジデュアルサンプルを加えて復元サンプルを生成することもできる。
【0251】
デコーディング装置は、前記現在ブロックに対するレジデュアルサンプルが存在する場合、前記ビットストリームから前記現在ブロックに対するレジデュアルに対する情報を取得することができる。前記レジデュアルに対する情報は、前記レジデュアルサンプルに対する変換係数を含むことができる。デコーディング装置は、前記レジデュアル情報に基づいて前記現在ブロックに対する前記レジデュアルサンプル(または、レジデュアルサンプルアレイ)を導出することができる。デコーディング装置は、前記予測サンプルと前記レジデュアルサンプルに基づいて復元サンプルを生成することができ、前記復元サンプルに基づいて復元ブロックまたは復元ピクチャを導出することができる。以後、デコーディング装置は、必要によって主観的/客観的画質を向上させるために、デブロッキングフィルタリング及び/またはSAO手順のようなインループフィルタリング手順を前記復元ピクチャに適用できることは前述の通りである。
【0252】
一方、たとえ、
図12に示されていないとしても、前記BIO予測が適用されないと判断された場合、デコーディング装置は、前記MVL0及び前記MVL1に基づいて前記対象サンプルに対する予測サンプルを導出することができる。デコーディング装置は、予測モードによって前記予測サンプルを復元サンプルとして利用することもでき、または前記予測サンプルにレジデュアルサンプルを加えて復元サンプルを生成することもできる。
【0253】
図13は、本発明による映像デコーディング方法を実行するデコーディング装置を概略的に示す。
図12に開示された方法は、
図13に開示されたデコーディング装置により実行されることができる。具体的に、例えば、
図13の前記デコーディング装置の予測部は、
図12のS1200乃至S1240を実行することができる。一方、前記インター予測に対する情報及び/またはレジデュアルに対する情報は、
図13に開示されたデコーディング装置のエントロピーデコーディング部により取得されることができる。
【0254】
前述した本発明によると、現在ブロックのBIO予測適用可否を判断してサブブロック単位で導出されるリファイン動きベクトルを使用するインター予測の計算複雑度を低くすることができ、それによって、全体的なコーディング効率を向上させることができる。
【0255】
また、本発明によると、FRUCのモードに基づいてBIO予測適用可否を判断してサブブロック単位で導出されるリファイン動きベクトルを使用するインター予測の計算複雑度を低くすることができ、それによって、全体的なコーディング効率を向上させることができる。
【0256】
前述した実施例において、方法は、一連のステップまたはブロックで流れ図に基づいて説明されているが、本発明は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと、異なる順序にまたは同時に発生できる。また、当業者であれば、流れ図に示すステップが排他的でなく、他のステップが含まれ、または流れ図の一つまたはそれ以上のステップが本発明の範囲に影響を及ぼさずに削除可能であることを理解することができる。
【0257】
前述した本発明による方法は、ソフトウェア形態で具現されることができ、本発明によるエンコーディング装置及び/またはデコーディング装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置などの映像処理を実行する装置に含まれることができる。
【0258】
本発明で実施例がソフトウェアで具現される時、前述した方法は、前述した機能を遂行するモジュール(過程、機能など)で具現されることができる。モジュールは、メモリに格納され、プロセッサにより実行されることができる。メモリは、プロセッサの内部または外部にあり、よく知られた多様な手段でプロセッサと連結されることができる。プロセッサは、ASIC(application-specific integrated circuit)、他のチップセット、論理回路及び/またはデータ処理装置を含むことができる。メモリは、ROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/または他の格納装置を含むことができる。即ち、本発明で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。例えば、各図面に示す機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。
【0259】
また、本発明が適用されるデコーディング装置及びエンコーディング装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイム通信装置、モバイルストリーミング装置、格納媒体、キャムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、及び医療用ビデオ装置などに含まれることができ、ビデオ信号またはデータ信号を処理するために使われることができる。例えば、OTTビデオ(Over the top video)装置では、ゲームコンソール、ブルーレイプレーヤー、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などを含むことができる。
【0260】
また、本発明が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取り可能な記録媒体に格納されることができる。また、本発明によるデータ構造を有するマルチメディアデータもコンピュータが読み取り可能な記録媒体に格納されることができる。前記コンピュータが読み取り可能な記録媒体は、コンピュータで読み取ることができるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータが読み取り可能な記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、及び光学的データ格納装置を含むことができる。また、前記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコーディング方法で生成されたビットストリームがコンピュータが読み取り可能な記録媒体に格納され、または有無線通信ネットワークを介して送信されることができる。また、本発明の実施例は、プログラムコードによるコンピュータプログラム製品で具現されることができ、前記プログラムコードは、本発明の実施例によりコンピュータで実行されることができる。前記プログラムコードは、コンピュータにより読み取り可能なキャリア上に格納されることができる。
【0261】
また、本発明が適用されるコンテンツストリーミングシステムは、大いに、エンコーディングサーバ、ストリーミングサーバ、ウェブサーバ、メディア格納所、ユーザ装置、及びマルチメディア入力装置を含むことができる。
【0262】
前記エンコーディングサーバは、スマートフォン、カメラ、キャムコーダなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータで圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、キャムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコーディングサーバは省略されることができる。前記ビットストリームは、本発明が適用されるエンコーディング方法またはビットストリーム生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信または受信する過程で一時的に前記ビットストリームを格納することができる。
【0263】
前記ストリーミングサーバは、ウェブサーバを介したユーザ要求に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体役割をする。ユーザが前記ウェブサーバに所望のサービスを要求すると、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
【0264】
前記ストリーミングサーバは、メディア格納所及び/またはエンコーディングサーバからコンテンツを受信することができる。例えば、前記エンコーディングサーバからコンテンツを受信する場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間に格納することができる。
【0265】
前記ユーザ装置の例として、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイニジなどがある。前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。