(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-24
(45)【発行日】2024-10-02
(54)【発明の名称】サブブロック単位の時間動きベクトル予測子候補に基づく映像またはビデオコーディング
(51)【国際特許分類】
H04N 19/52 20140101AFI20240925BHJP
H04N 19/105 20140101ALI20240925BHJP
H04N 19/176 20140101ALI20240925BHJP
H04N 19/136 20140101ALI20240925BHJP
【FI】
H04N19/52
H04N19/105
H04N19/176
H04N19/136
(21)【出願番号】P 2023061277
(22)【出願日】2023-04-05
(62)【分割の表示】P 2021573466の分割
【原出願日】2020-06-15
【審査請求日】2023-04-05
(32)【優先日】2019-06-13
(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)【発明者】
【氏名】ナム チョンハク
【審査官】田部井 和彦
(56)【参考文献】
【文献】国際公開第2017/195608(WO,A1)
【文献】特表2019-535202(JP,A)
【文献】国際公開第2020/142448(WO,A1)
【文献】Benjamin Bross et al.,Versatile Video Coding (Draft 5) [online],JVET-N1001-v8(JVET-N1001-v8.docx), [2024年3月4日検索],インターネット <URL: https://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N1001-v8.zip>,2019年06月11日,pp.121-123,160-164,180-182,189-198
【文献】Jianle Chen et al.,Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5) [online],JVET-N1002-v2(JVET-N1002-v2.docx), [2024年3月4日検索],インターネット <URL: https://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N1002-v2.zip>,2019年06月11日,pp.1,4-9,38-40
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/52
H04N 19/105
H04N 19/176
H04N 19/136
(57)【特許請求の範囲】
【請求項1】
デコード装置により実行される映像デコード方法であって、
ビットストリームから残差情報を取得するステップと、
現ブロック内のサブブロックに対するコロケー
トピクチ
ャ内の
コロケートサブブロックを導出するステップと、
前記
コロケートサブブロックに基づいて、サブブロックに基づく時間動き情報候補を導出するステップと、
前記サブブロックに基づく時間動き情報候補に基づいて、前記現ブロック内の
前記サブブロックに対する動き情報を導出するステップと、
前記現ブロック内の
前記サブブロックに対する
前記動き情報に基づいて、前記現ブロックの予測サンプルを生成するステップと、
前記残差情報に基づいて前記現ブロックの残差サンプルを生成するステップと、
前記予測サンプル
及び前記残差サンプルに基づいて、復元サンプルを生成するステップと、を
含み、
前記
コロケートサブブロック
のそれぞれの位置は、前記現ブロック内の
前記サブブロックのそれぞれの右側下端センタサンプル位置に動きシフトを適用
することによって前記コロケー
トピクチャから導出され、
前記動きシフトは、前記現ブロックの空間隣接ブロックから導出された動きベクトルに基づいて実行され、
前記空間隣接ブロックは、左側隣接ブロックであ
り、
前記サブブロックに基づく時間動き情報候補は、サブブロック単位動きベクトルを含み、
前記コロケートサブブロックの中で使用不可能なコロケートサブブロックに対するサブブロック単位動きベクトルとして、ベース動きベクトルが用いられる、方法。
【請求項2】
エンコード装置により実行される映像エンコード方法であって、
現ブロック内のサブブロックに対するコロケー
トピクチ
ャ内の
コロケートサブブロックを導出するステップと、
前記
コロケートサブブロックに基づいて、サブブロックに基づく時間動き情報候補を導出するステップと、
前記サブブロックに基づく時間動き情報候補に基づいて、前記現ブロック内の
前記サブブロックに対する動き情報を導出するステップと、
前記現ブロック内の
前記サブブロックに対する
前記動き情報に基づいて、前記現ブロックの予測サンプルを生成するステップと、
前記予測サンプルに基づいて、残差サンプルを導出するステップと、
前記残差サンプルに関する情報を
含む映像情報をエンコードするステップと、を
含み、
前記
コロケートサブブロック
のそれぞれの位置は、前記現ブロック内の
前記サブブロックのそれぞれの右側下端センタサンプル位置に動きシフトを適用
することによって前記コロケー
トピクチャから導出され、
前記動きシフトは、前記現ブロックの空間隣接ブロックから導出された動きベクトルに基づいて実行され、
前記空間隣接ブロックは、左側隣接ブロックであ
り、
前記サブブロックに基づく時間動き情報候補は、サブブロック単位動きベクトルを含み、
前記コロケートサブブロックの中で使用不可能なコロケートサブブロックに対するサブブロック単位動きベクトルとして、ベース動きベクトルが用いられる、方法。
【請求項3】
映像に関するデータの送信方法であって、
前記映像に関するビットストリームを取得するステップであって、前記ビットストリームは、
現ブロック内のサブブロックに対するコロケー
トピクチ
ャ内の
コロケートサブブロックを導出するステップと、
前記
コロケートサブブロックに基づいて、サブブロックに基づく時間動き情報候補を導出するステップと、
前記サブブロックに基づく時間動き情報候補に基づいて、前記現ブロック内の
前記サブブロックに対する動き情報を導出するステップと、
前記現ブロック内の
前記サブブロックに対する
前記動き情報に基づいて、前記現ブロックの予測サンプルを生成するステップと、
前記予測サンプルに基づいて、残差サンプルを導出するステップと、
前記残差サンプルに関する情報を
含む映像情報をエンコードして前記ビットストリームを出力するステップと、に基づいて生成される
、ステップと、
前記ビットストリームを
含む前記データを送信するステップと、を
含み、
前記
コロケートサブブロック
のそれぞれの位置は、前記現ブロック内の
前記サブブロックのそれぞれの右側下端センタサンプル位置に動きシフトを適用
することによって前記コロケー
トピクチャから導出され、
前記動きシフトは、前記現ブロックの空間隣接ブロックから導出された動きベクトルに基づいて実行され、
前記空間隣接ブロックは、左側隣接ブロックであ
り、
前記サブブロックに基づく時間動き情報候補は、サブブロック単位動きベクトルを含み、
前記コロケートサブブロックの中で使用不可能なコロケートサブブロックに対するサブブロック単位動きベクトルとして、ベース動きベクトルが用いられる、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、ビデオまたは映像コーディングに関し、例えば、サブブロック単位の時間動きベクトル予測子候補に基づく映像またはビデオコーディング技術に関する。
【背景技術】
【0002】
最近、4Kまたは8K以上のUHD(Ultra High Definition)映像/ビデオなどの高解像度、高品質の映像/ビデオに対する需要が、多様な分野で増加している。映像/ビデオデータが高解像度、高品質になるほど、既存の映像/ビデオデータに比べて相対的に送信される情報量またはビット量が増加するため、既存の有無線広帯域回線などの媒体を利用して映像データを送信し、または既存の記憶(保存)媒体を利用して映像/ビデオデータを記憶(格納)する場合、送信コスト(費用)および記憶コストが増加する。
【0003】
また、最近、VR(Virtual Reality)、AR(Artificial Reality)コンテンツやホログラムなどの没入型(実感)メディア(Immersive Media)に対する関心および需要が増加しており、ゲーム映像のように、現実映像と異なる映像特性を有する映像/ビデオに関する放送が増加している。
【0004】
これにより、上記のような多様な特性を有する高解像度、高品質の映像/ビデオの情報を効果的に圧縮して送信または記憶し、再生するために、高効率の映像/ビデオ圧縮技術が要求される。
【0005】
また、映像/ビデオコーディング効率を向上させるために、サブブロック単位の時間動きベクトル予測技術に関する議論がある。このために、サブブロック単位の時間動きベクトル予測でサブブロック単位の動きベクトルをパッチ(patch)する過程(処理、process)を効率的に行う方式(方案、方法)が必要である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本文書の技術的課題は、ビデオ/映像コーディングの効率を高める方法および装置を提供することにある。
【0007】
本文書の別の技術的課題は、効率的なインター予測方法および装置を提供することにある。
【0008】
本発明のさらに他の技術的課題は、サブブロックに基づく時間動きベクトルを導出して予測性能を向上させる方法および装置を提供することにある。
【0009】
本発明のさらに他の技術的課題は、サブブロックに基づく時間動きベクトルを導出(誘導)するためのサブブロックの対応位置を効率的に導出する方法および装置を提供することにある。
【0010】
本発明のさらに他の技術的課題は、サブブロックに基づく時間動きベクトルを導出するためのサブコーディングブロックレベルの対応位置とコーディングブロックレベルの対応位置とを統合する方法および装置を提供することにある。
【課題を解決するための手段】
【0011】
本文書の一実施形態によると、サブブロックに基づく時間動きベクトル予測(sbTMVP;subblock-based Temporal Motion Vector Prediction)で、現(現在)ブロックに対するサブブロック単位動きベクトルが、コロケート(同一位置)参照ピクチャ(collocated reference picture)上の(内の)参照サブブロックに基づいて導出されることができる。
【0012】
本文書の一実施形態によると、現ブロック内の複数のサブブロックに対するコロケート参照ピクチャ上の参照サブブロックは、現ブロック内のサブブロックそれぞれのセンタサンプル位置に基づいて導出されることができる。
【0013】
本文書の一実施形態によると、参照サブブロックにおける使用不可能な参照サブブロックに対するサブブロック単位動きベクトルに対して、ベース動きベクトルが用いられることができる。
【0014】
本文書の一実施形態によると、ベース動きベクトルは、現ブロックのセンタサンプル位置に基づいてコロケート参照ピクチャ上で(から)導出されることができる。
【0015】
本文書の一実施形態によると、デコード(デコーディング、復号)装置により実行されるビデオ/映像デコード方法を提供する。上記ビデオ/映像デコード方法は、本文書の実施形態で開示された方法を有することができる。
【0016】
本文書の一実施形態によると、ビデオ/映像デコーディングを実行するデコード装置を提供する。上記デコード装置は、本文書の実施形態で開示された方法を実行することができる。
【0017】
本文書の一実施形態によると、エンコード(エンコーディング、符号化)装置により実行されるビデオ/映像エンコード方法を提供する。上記ビデオ/映像エンコード方法は、本文書の実施形態で開示された方法を有することができる。
【0018】
本文書の一実施形態によると、ビデオ/映像エンコーディングを実行するエンコード装置を提供する。上記エンコード装置は、本文書の実施形態で開示された方法を実行することができる。
【0019】
本文書の一実施形態によると、本文書の実施形態の少なくとも一つに開示されたビデオ/映像エンコード方法に従って生成されたエンコードされたビデオ/映像情報が記憶されたコンピュータ読み取り可能なデジタル記憶媒体を提供する。
【0020】
本文書の一実施形態によると、デコード装置により本文書の実施形態の少なくとも一つで開示されたビデオ/映像デコード方法を実行するように引き起こすエンコードされた情報、またはエンコードされたビデオ/映像情報が記憶されたコンピュータ読み取り可能なデジタル記憶媒体を提供する。
【発明の効果】
【0021】
本文書は、多様な効果を奏することができる。例えば、全般的な映像/ビデオ圧縮効率を高めることができる。また、効率的なインター予測を通じて計算の複雑度を減少させることができ、全般的なコーディング効率を向上させることができる。また、サブブロックに基づく時間動きベクトル予測(sbTMVP;subblock-based Temporal Motion Vector Prediction)でサブブロックに基づく時間動きベクトルを導出するためのサブブロックの対応位置を効率的に計算することにより、複雑度および予測性能の面における効率性を向上させることができる。また、サブブロックに基づく時間動きベクトルを導出するためのサブコーディングブロックレベルの対応位置とコーディングブロックレベルの対応位置とを計算する方法を統合することにより、ハードウェアの具現の面で簡素化効果を奏することができる。
【0022】
本文書の具体的な実施形態を通じて得られる効果は、以上で羅列された効果に制限されない。例えば、関連する技術分野における通常の知識を有する者(a person having ordinary skill in the related art)が、本文書から理解または誘導できる多様な技術的効果が存在し得る。これによって、本文書の具体的な効果は、本文書に明示的に記載されているものに制限されず、本文書の技術的特徴から理解または誘導できる多様な効果を含み得る。
【図面の簡単な説明】
【0023】
【
図1】本文書の実施形態に適用できるビデオ/映像コーディングシステムの例を概略的に示す図である。
【
図2】本文書の実施形態が適用されることができるビデオ/映像エンコード装置の構成を概略的に説明する図である。
【
図3】本文書の実施形態が適用されることができるビデオ/映像デコード装置の構成を概略的に説明する図である。
【
図4】本文書の実施形態が適用可能な概略的なビデオ/映像エンコード方法の一例を示す図である。
【
図5】本文書の実施形態が適用可能な概略的なビデオ/映像デコード方法の一例を示す図である。
【
図6】本文書の実施形態が適用可能な概略的なインター予測に基づくビデオ/映像エンコード方法の一例を示す図である。
【
図7】本文書の実施形態が適用可能な概略的なインター予測に基づくビデオ/映像デコード方法の一例を示す図である。
【
図9】現ブロックの空間隣接ブロックおよび時間隣接ブロックを例示的に示す図である。
【
図10】サブブロックに基づく時間動き情報候補(sbTMVP候補)を導出するために用いられることができる空間隣接ブロックを例示的に示す図である。
【
図11】サブブロックに基づく時間動き情報候補(sbTMVP候補)を導出する過程を概略的に説明する図である。
【
図12】sbTMVP導出過程でブロックサイズによってデフォルトMVおよびサブブロックMVを導出するための対応位置(corresponding position)を計算する方法を概略的に説明する図である。
【
図13】sbTMVP導出過程でブロックサイズによってデフォルトMVおよびサブブロックMVを導出するための対応位置(corresponding position)を計算する方法を概略的に説明する図である。
【
図14】sbTMVP導出過程でブロックサイズによってデフォルトMVおよびサブブロックMVを導出するための対応位置(corresponding position)を計算する方法を概略的に説明する図である。
【
図15】sbTMVP導出過程でブロックサイズによってデフォルトMVおよびサブブロックMVを導出するための対応位置(corresponding position)を計算する方法を概略的に説明する図である。
【
図16】sbTMVP導出過程でブロックサイズによってデフォルトMVおよびサブブロックMVを導出するための対応位置(corresponding position)を統合する方法を概略的に説明する例示図である。
【
図17】sbTMVP導出過程でブロックサイズによってデフォルトMVおよびサブブロックMVを導出するための対応位置(corresponding position)を統合する方法を概略的に説明する例示図である。
【
図18】sbTMVP導出過程でブロックサイズによってデフォルトMVおよびサブブロックMVを導出するための対応位置(corresponding position)を統合する方法を概略的に説明する例示図である。
【
図19】sbTMVP導出過程でブロックサイズによってデフォルトMVおよびサブブロックMVを導出するための対応位置(corresponding position)を統合する方法を概略的に説明する例示図である。
【
図20】sbTMVP導出過程でデフォルトMVおよびサブブロックMVを導出するための対応位置(corresponding position)を統合して計算できるパイプラインの構成を概略的に示した例示図である。
【
図21】sbTMVP導出過程でデフォルトMVおよびサブブロックMVを導出するための対応位置(corresponding position)を統合して計算できるパイプラインの構成を概略的に示した例示図である。
【
図22】本文書の実施形態に係るビデオ/映像エンコード方法の一例を概略的に示す図である。
【
図23】本文書の実施形態に係るビデオ/映像デコード方法の一例を概略的に示す図である。
【
図24】本文書で開示された実施形態が適用されることができるコンテンツストリーミングシステムの例を示す図である。
【発明を実施するための形態】
【0024】
本文書は、多様な変更を加えることができ、種々な実施例を有することができ、特定実施例を図面に例示し、詳細に説明しようとする。しかしながら、これは、本文書を特定実施例に限定しようとするものではない。本文書で常用する用語は、単に特定の実施例を説明するために使用されたものであって、本文書の技術的思想を限定しようとする意図で使用されるものではない。単数の表現は、文脈上明白に異なるように意味しない限り、複数の表現を含む。本文書において「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、一つもしくは複数の他の特徴や数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものなどの存在もしくは付加可能性を予め排除しないものと理解されるべきである。
【0025】
一方、本文書で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の都合上、独立して図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されることを意味するものではない。例えば、各構成のうち、二つ以上の構成が結合されて一つの構成をなすこともでき、一つの構成を複数の構成に分けることもできる。各構成が統合および/または分離された実施例も本文書の本質から外れない限り、本文書の権利範囲に含まれる。
【0026】
本文書において“AまたはB(A or B)”は、“ただA(のみ)”、“ただB”または“AとBとの両方とも”を意味することができる。また、本文書において“AまたはB(A or B)”は、“Aおよび/またはB(A and/or B)”と解釈されることができる。例えば、本文書において“A、BまたはC(A, B or C)”は、“ただA”、“ただB”、“ただC”、または“A、BおよびCの任意の全ての組み合わせ(any combination of A, B and C)”を意味することができる。
【0027】
本文書で使われるスラッシュ(/)や読点(comma)は、“および/または(and/or)”を意味することができる。例えば、“A/B”は、“Aおよび/またはB”を意味することができる。それによって、“A/B”は、“ただA”、“ただB”、または“AとBとの両方とも”を意味することができる。例えば、“A、B、C”は、“A、BまたはC”を意味することができる。
【0028】
本文書において“少なくとも一つのAおよびB(AおよびBの(うちの)少なくとも一つ)(at least one of A and B)”は、“ただA”、“ただB”または“AとBとの両方とも”を意味することができる。また、本文書において“少なくとも一つのAまたはB(at least one of A or B)”や“少なくとも一つのAおよび/またはB(at least one of A and/or B)”という表現は、“少なくとも一つのAおよびB(at least one of A and B)”と同じように解釈されることができる。
【0029】
また、本文書において“少なくとも一つのA、BおよびC(at least one of A, B and C)”は、“ただA”、“ただB”、“ただC”、または“A、BおよびCの任意の全ての組み合わせ(any combination of A, B and C)”を意味することができる。また、“少なくとも一つのA、BまたはC(at least one of A, B or C)”や“少なくとも一つのA、Bおよび/またはC(at least one of A, B and/or C)”は、“少なくとも一つのA、BおよびC(at least one of A, B and C)”を意味することができる。
【0030】
また、本文書で使われる括弧は、“例えば(for example)”を意味することができる。具体的には、“予測(イントラ予測)”で表示された場合、“予測”の一例として“イントラ予測”が提案されたものである。他の表現としては、本文書の“予測”は、“イントラ予測”に制限(limit)されるものではなく、“イントラ予測”が“予測”の一例として提案されたものである。また、“予測(すなわち、イントラ予測)”で表示された場合も、“予測”の一例として“イントラ予測”が提案されたものである。
【0031】
本文書は、ビデオ/映像コーディングに関する。例えば、本文書に開示された方法/実施例は、VVC(Versatile Video Coding)標準に開示される方法に適用されることができる。また、本文書に開示された方法/実施例は、EVC(Essential Video Coding)標準、AV1(AOMedia Video 1)標準、AVS2(2nd Generation Of Audio Video Coding Standard)または次世代ビデオ/映像コーディング標準(例えば、H.267またはH.267)に開示される方法に適用されることができる。
【0032】
本文書では、ビデオ/映像コーディングに関する多様な実施例を提示し、他の言及がない限り、上記実施例は、互いに組み合わせて実行されることもできる。
【0033】
本文書において、ビデオ(video)は、時間の流れによる一連の映像(image)の集合を意味することができる。ピクチャ(picture)は、一般的に特定時間帯の一つの映像を示す単位を意味し、スライス(slice)/タイル(tile)は、コーディングにおいてピクチャの一部を構成する単位である。スライス/タイルは、一つまたは複数のCTU(Coding Tree Unit)を含むことができる。一つのピクチャは、一つまたは複数のスライス/タイルで構成されることができる。タイルは、ピクチャ内の特定タイル列および特定タイル列以内のCTUの四角領域である(A tile is a rectangular region of CTUs within a particular tile column and particular tile row in a picture)。上記タイル列は、CTUの四角領域であり、上記四角領域は、上記ピクチャの高さと同じ高さを有し、幅は、ピクチャパラメータセット内のシンタックス要素により明示されることができる(The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set)。上記タイル行は、CTUの四角領域であり、上記四角領域は、ピクチャパラメータセット内のシンタックス要素により明示される幅を有し、高さは、上記ピクチャの高さと同じである(The tile row is a rectangular region of CTUs having a height specified by syntax elements in the picture parameter set and a width equal to the width of the picture)。タイルスキャンは、ピクチャをパーティショニングするCTUの特定のシーケンシャル(順次的)オーダリングを示すことができ、上記CTUは、タイル内のCTUラスタスキャンで連続して整列されることができ、ピクチャ内のタイルは、上記ピクチャの上記タイルのラスタスキャンで連続して整列されることができる(A tile scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture)。スライスは、単一NALユニットに排他的に含まれることができる、整数個の完全なタイルまたはピクチャのタイル内の整数個の連続する完全なCTU行を含むことができる(A slice includes an integer number of complete tiles or an integer number of consecutive complete CTU rows within a tile of a picture that may be exclusively contained in a single NAL unit)。
【0034】
一方、一つのピクチャは、二つ以上のサブピクチャに区分されることができる。サブピクチャは、ピクチャ内の一つまたは複数のスライスの四角領域である(an rectangular region of one or more slices within a picture)。
【0035】
ピクセル(pixel)またはペル(pel)は、一つのピクチャ(または、映像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用されることができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。あるいは、サンプルは、空間領域(ドメイン)におけるピクセル値を意味することもでき、このようなピクセル値が周波数領域(ドメイン)に変換されると、周波数領域における変換係数を意味することもできる。
【0036】
ユニット(unit)は、映像処理の基本単位を示すことができる。ユニットは、ピクチャの特定領域および当該領域に関連する情報のうちの少なくとも一つを含むことができる。一つのユニットは、一つのルマブロックおよび二つのクロマ(例えば、cb、cr)ブロックを含むことができる。ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用されることができる。一般的な場合、M×Nブロックは、M個の列およびN個の行からなるサンプル(または、サンプルアレイ)、または変換係数(transform coefficient)の集合(または、アレイ)を含むことができる。
【0037】
また、本文書において、量子化/逆量子化および/または変換/逆変換のうちの少なくとも一つは、省略されることができる。量子化/逆量子化が省略される場合、量子化された変換係数は、変換係数と呼ばれることができる。変換/逆変換が省略される場合、変換係数は、係数もしくは残差(レジデュアル)係数と呼ばれることもでき、または、表現の統一性のために、依然として変換係数と呼ばれることもできる。
【0038】
本文書において、量子化された変換係数および変換係数は、各々、変換係数およびスケーリングされた(scaled)変換係数と呼ばれることができる。この場合、残差情報は、変換係数(1つまたは複数(ら))に関する情報を含むことができ、変換係数(1つまたは複数)に関する情報は、残差コーディングシンタックスを介してシグナリングされることができる。残差情報(または、変換係数(1つまたは複数)に関する情報)に基づいて変換係数が導出されることができ、変換係数に対する逆変換(スケーリング)を介してスケーリングされた変換係数が導出されることができる。スケーリングされた変換係数に対する逆変換(変換)に基づいて、残差サンプルが導出されることができる。これは、本文書の他の部分でも同様に適用/表現されることができる。
【0039】
本文書において、一つの図面内で個別に説明される技術的特徴は、個別に具現されることもでき、同時に具現されることもできる。
【0040】
以下、添付図面を参照して、本文書の好ましい実施例をより詳細に説明する。以下、図面上の同じ構成要素に対しては、同じ参照符号を使用し、同じ構成要素に対して重複する説明は、省略されることができる。
【0041】
図1は、本文書の実施例に適用されることができるビデオ/映像コーディングシステムの例を概略的に示す。
【0042】
図1を参照すると、ビデオ/映像コーディングシステムは、第1の装置(ソースデバイス)および第2の装置(受信デバイス)を含むことができる。ソースデバイスは、エンコードされたビデオ(video)/映像(image)情報またはデータをファイルまたはストリーミング形態でデジタル記憶媒体またはネットワークを介して受信デバイスに伝達できる。
【0043】
上記ソースデバイスは、ビデオソース、エンコード装置、送信部を含むことができる。上記受信デバイスは、受信部、デコード装置、およびレンダラを含むことができる。上記エンコード装置は、ビデオ/映像エンコード装置と呼ばれることができ、上記デコード装置は、ビデオ/映像デコード装置と呼ばれることができる。送信器は、エンコード装置に含まれることができる。受信器は、デコード装置に含まれることができる。レンダラは、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
【0044】
ビデオソースは、ビデオ/映像のキャプチャ、合成または生成過程などを介してビデオ/映像を取得することができる。ビデオソースは、ビデオ/映像キャプチャデバイスおよび/またはビデオ/映像生成デバイスを含むことができる。ビデオ/映像キャプチャデバイスは、例えば、一つまたは複数のカメラ、以前にキャプチャされたビデオ/映像を含むビデオ/映像アーカイブなどを含むことができる。ビデオ/映像生成デバイスは、例えば、コンピュータ、タブレット、およびスマートフォンなどを含むことができ、(電子的に)ビデオ/映像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/映像が生成されることができ、この場合、関連データが生成される過程にビデオ/映像キャプチャ過程が代替されることができる。
【0045】
エンコード装置は、入力ビデオ/映像をエンコードすることができる。エンコード装置は、圧縮およびコーディング効率のために、予測、変換、量子化など、一連の手順を実行することができる。エンコードされたデータ(エンコードされたビデオ/映像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
【0046】
送信部は、ビットストリーム形態で出力されたエンコードされたビデオ/映像情報またはデータをファイルまたはストリーミング形態でデジタル記憶媒体またはネットワークを介して受信デバイスの受信部に伝達できる。デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、多様な記憶媒体を含むことができる。送信部は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介した送信のためのエレメントを含むことができる。受信部は、上記ビットストリームを受信/抽出してデコード装置に伝達できる。
【0047】
デコード装置は、エンコード装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を実行してビデオ/映像をデコードすることができる。
【0048】
レンダラは、デコードされたビデオ/映像をレンダリングすることができる。レンダリングされたビデオ/映像は、ディスプレイ部を介して表示(ディスプレイ)されることができる。
【0049】
図2は、本文書の実施例が適用されることができるビデオ/映像エンコード装置の構成を概略的に説明する図である。以下、エンコード装置とは、映像エンコード装置および/またはビデオエンコード装置を含むことができる。
【0050】
図2を参照すると、エンコード装置200は、映像分割部(image partitioner)210、予測部(predictor)220、残差処理部(residual processor)230、エントロピ符号化(エントロピーエンコーディング)部(entropy encoder)240、加算部(adder)250、フィルタリング部(filter)260、およびメモリ(memory)270を含んで構成されることができる。予測部220は、インター予測部221およびイントラ予測部222を含むことができる。残差処理部230は、変換部(transformer)232、量子化部(quantizer)233、逆量子化部(dequantizer)234、逆変換部(inverse transformer)235を含むことができる。残差処理部230は、減算部(subtractor)231をさらに含むことができる。加算部250は、復元部(reconstructer)または復元ブロック生成部(reconstructed block generator)と呼ばれることができる。前述した映像分割部210、予測部220、残差処理部230、エントロピ符号化部240、加算部250、およびフィルタリング部260は、実施例によって一つまたは複数のハードウェアコンポーネント(例えば、エンコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ270は、DPB(Decoded Picture Buffer)を含むことができ、デジタル記憶媒体により構成されることもできる。上記ハードウェアコンポーネントは、メモリ270を内/外部コンポーネントとしてさらに含むこともできる。
【0051】
映像分割部210は、エンコード装置200に入力された入力映像(または、ピクチャ、フレーム)を一つまたは複数の処理ユニット(processing unit)に分割することができる。一例として、上記処理ユニットは、コーディングユニット(Coding Unit、CU)と呼ばれることができる。この場合、コーディングユニットは、コーディングツリーユニット(Coding Tree Unit、CTU)または最大コーディングユニット(Largest Coding Unit、LCU)からQTBTTT(Quad-Tree Binary-Tree Ternary-Tree)構造によって再帰的に(recursively)分割されることができる。例えば、一つのコーディングユニットは、四分木(クアッドツリー)構造、二分木(バイナリツリー)構造、および/または三分木(ターナリ)構造に基づいて下位(deeper)デプスの複数のコーディングユニットに分割されることができる。この場合、例えば、四分木構造が先に適用され、二分木構造および/または三分木構造がその後に適用されることができる。あるいは、二分木構造が先に適用されることもできる。それ以上分割されない最終コーディングユニットに基づいて本文書によるコーディング手順が実行されることができる。この場合、映像特性によるコーディング効率などに基づいて、最大コーディングユニットが最終コーディングユニットとして使用されることができ、または、必要に応じてコーディングユニットは、再帰的に(recursively)より下位デプスのコーディングユニットに分割されて最適なサイズのコーディングユニットが最終コーディングユニットとして使用されることができる。ここで、コーディング手順とは、後述する予測、変換、および復元などの手順を含むことができる。他の例として、上記処理ユニットは、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)をさらに含むことができる。この場合、上記予測ユニットおよび上記変換ユニットは、各々前述した最終コーディングユニットから分割またはパーティショニングされることができる。上記予測ユニットは、サンプル予測の単位であり、上記変換ユニットは、変換係数を導出する単位および/または変換係数から残差信号(residual signal)を導出する単位である。
【0052】
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用されることができる。一般的な場合、M×Nブロックは、M個の列およびN個の行からなるサンプルまたは変換係数(transform coefficient)の集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すこともでき、輝度(luma)成分のピクセル/ピクセル値のみを示すこともでき、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、一つのピクチャ(または、映像)をピクセル(pixel)またはペル(pel)に対応する用語として使用することができる。
【0053】
エンコード装置200は、入力映像信号(オリジナル(原本)ブロック、オリジナルサンプルアレイ)からインター予測部221またはイントラ予測部222から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算して残差信号(residual signal、残差(残余)ブロック、残差サンプルアレイ)を生成することができ、生成された残差信号は、変換部232に送信される。この場合、図示されたように、エンコーダ200内において入力映像信号(オリジナルブロック、オリジナルサンプルアレイ)から予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは、減算部231と呼ばれることができる。予測部は、処理対象ブロック(以下、現ブロックという)に対する予測を実行し、上記現ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、現ブロックもしくはCU単位でイントラ予測が適用されるか、または、インター予測が適用されるかを決定することができる。予測部は、各予測モードについての説明で後述するように、予測モード情報など、予測に関する多様な情報を生成してエントロピ符号化部240に伝達することができる。予測に関する情報は、エントロピ符号化部240でエンコードされてビットストリーム形態で出力されることができる。
【0054】
イントラ予測部222は、現ピクチャ内のサンプルを参照して現ブロックを予測することができる。上記参照されるサンプルは、予測モードによって上記現ブロックの隣接(neighbor)に位置することもでき、または、離れて位置することもできる。イントラ予測における予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。非方向性モードは、例えば、DCモードおよび平面(プラナー)モード(Planarモード)を含むことができる。方向性モードは、予測方向の細かさの程度によって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは例示に過ぎず、設定によってそれ以上またはそれ以下の個数の方向性予測モードが使用されることができる。イントラ予測部222は、隣接ブロックに適用された予測モードを利用して、現ブロックに適用される予測モードを決定することもできる。
【0055】
インター予測部221は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現ブロックに対する予測されたブロックを導出することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロック、またはサンプル単位で予測できる。上記動き情報は、動きベクトルおよび参照ピクチャインデックスを含むことができる。上記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測の場合、隣接ブロックは、現ピクチャ内に存在する空間隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間隣接ブロック(temporal neighboring block)とを含むことができる。上記参照ブロックを含む参照ピクチャと上記時間隣接ブロックを含む参照ピクチャとは、同じであってもよく、異なってもよい。上記時間隣接ブロックは、コロケート参照ブロック(collocated reference block)、コロケートCU(colCU)などの名称で呼ばれることができ、上記時間隣接ブロックを含む参照ピクチャは、コロケートピクチャ(collocated picture、colPic)と呼ばれることもできる。例えば、インター予測部221は、隣接ブロックに基づいて動き情報候補リストを構成し、上記現ブロックの動きベクトルおよび/または参照ピクチャインデックスを導出するために、どの候補が使用されるかを指示する情報を生成することができる。多様な予測モードに基づいてインター予測が実行されることができ、例えば、スキップモードおよびマージモードの場合、インター予測部221は、隣接ブロックの動き情報を現ブロックの動き情報として利用することができる。スキップモードの場合、マージモードとは異なり残差信号が送信されない場合がある。動き情報予測(Motion Vector Prediction、MVP)モードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として利用し、動きベクトル差分(motion vector difference)をシグナリングすることによって、現ブロックの動きベクトルを指示することができる。
【0056】
予測部220は、後述する多様な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、一つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することもできる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(Intra Block Copy、IBC)予測モードに基づくこともでき、または、パレットモード(palette mode)に基づくこともできる。上記IBC予測モードまたはパレットモードは、例えば、SCC(Screen Content Coding)などのように、ゲームなどのコンテンツ映像/動映像コーディングのために使用されることができる。IBCは、基本的に現ピクチャ内で予測を実行するが、現ピクチャ内で参照ブロックを導出する点においてインター予測と類似するように実行されることができる。すなわち、IBCは、本文書において説明されるインター予測技法のうちの少なくとも一つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブルおよびパレットインデックスに関する情報に基づいてピクチャ内のサンプル値をシグナリングすることができる。
【0057】
上記予測部(インター予測部221および/もしくは上記イントラ予測部222を含む)を介して生成された予測信号は、復元信号を生成するために用いられ、または残差信号を生成するために用いられることができる。変換部232は、残差信号に変換技法を適用して変換係数(transform coefficients)を生成することができる。例えば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、KLT(Karhunen-Loeve Transform)、GBT(Graph-Based Transform)、またはCNT(Conditionally Non-linear Transform)のうちの少なくとも一つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとき、このグラフから得られた変換を意味する。CNTは、以前に復元された全てのピクセル(all previously reconstructed pixel)を利用して予測信号を生成し、それに基づいて取得される変換を意味する。また、変換過程は、正方形の同じ大きさを有するピクセルブロックに適用されることもでき、正方形でない多様(可変)な大きさのブロックに適用されることもできる。
【0058】
量子化部233は、変換係数を量子化してエントロピ符号化部240に送信し、エントロピ符号化部240は、量子化された信号(量子化された変換係数に関する情報)をエンコードしてビットストリームに出力することができる。上記量子化された変換係数に関する情報は、残差情報と呼ばれることができる。量子化部233は、係数スキャン順序(scan order)に基づいてブロック形態の量子化された変換係数を1次元ベクトル形態で再整列することができ、上記1次元ベクトル形態の量子化された変換係数に基づいて上記量子化された変換係数に関する情報を生成することもできる。エントロピ符号化部240は、例えば、指数ゴロム(exponential Golomb)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-Adaptive Binary Arithmetic Coding)などの多様なエンコード方法を実行することができる。エントロピ符号化部240は、量子化された変換係数以外に、ビデオ/イメージ復元に必要な情報(例えば、シンタックス要素(syntax elements)の値など)を共にまたは別にエンコードすることもできる。エンコードされた情報(例えば、エンコードされたビデオ/映像情報)は、ビットストリーム形態でNAL(Network Abstraction Layer)ユニット単位で送信または記憶されることができる。上記ビデオ/映像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)など、多様なパラメータセットに関する情報をさらに含むことができる。また、上記ビデオ/映像情報は、一般制限情報(general constraint information)をさらに含むことができる。本文書において、エンコード装置からデコード装置に伝達/シグナリングされる情報および/またはシンタックス要素は、ビデオ/映像情報に含まれることができる。上記ビデオ/映像情報は、前述したエンコーディング手順を介してエンコードされて上記ビットストリームに含まれることができる。上記ビットストリームは、ネットワークを介して送信されることができ、または、デジタル記憶媒体に記憶されることができる。ここで、ネットワークは、放送網および/または通信網などを含むことができ、デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、多様な記憶媒体を含むことができる。エントロピ符号化部240から出力された信号を送信する送信部(図示せず)および/もしくは記憶する記憶部(図示せず)が、エンコード装置200の内/外部エレメントとして構成されることができ、または、送信部は、エントロピ符号化部240に含まれることもできる。
【0059】
量子化部233から出力された量子化された変換係数は、予測信号を生成するために用いられることができる。例えば、量子化された変換係数に逆量子化部234および逆変換部235を介して逆量子化および逆変換を適用することによって、残差信号(残差ブロックまたは残差サンプル)を復元することができる。加算部155は、復元された残差信号をインター予測部221またはイントラ予測部222から出力された予測信号に加えることによって、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように、処理対象ブロックに対する残差がない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部250は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
【0060】
一方、ピクチャエンコーディングおよび/または復元過程でLMCS(Luma Mapping with Chroma Scaling)が適用されることもできる。
【0061】
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに多様なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、上記修正された復元ピクチャをメモリ270、具体的には、メモリ270のDPBに記憶することができる。上記多様なフィルタリング方法は、例えば、デブロックフィルタリング、サンプル適応オフセット(sample adaptive offset)、適応ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法に関する説明で後述するように、フィルタリングに関する多様な情報を生成してエントロピ符号化部240に伝達することができる。フィルタリングに関する情報は、エントロピ符号化部240でエンコードされてビットストリーム形態で出力されることができる。
【0062】
メモリ270に送信された修正された復元ピクチャは、インター予測部221で参照ピクチャとして使用されることができる。エンコード装置は、これを介してインター予測が適用される場合、エンコード装置100とデコード装置とにおける予測ミスマッチを避けることができ、符号化効率も向上させることができる。
【0063】
メモリ270のDPBは、修正された復元ピクチャをインター予測部221における参照ピクチャとして使用するために記憶することができる。メモリ270は、現ピクチャ内の動き情報が導出された(または、エンコードされた)ブロックの動き情報および/または既に復元されたピクチャ内のブロックの動き情報を記憶することができる。上記記憶された動き情報は、空間隣接ブロックの動き情報または時間隣接ブロックの動き情報として活用するために、インター予測部221に伝達することができる。メモリ270は、現ピクチャ内の復元されたブロックの復元サンプルを記憶することができ、イントラ予測部222に伝達することができる。
【0064】
図3は、本文書の実施例が適用されることができるビデオ/映像デコード装置の構成を概略的に説明する図である。以下、デコード装置とは、映像デコード装置および/またはビデオデコード装置を含むことができる。
【0065】
図3を参照すると、デコード装置300は、エントロピ復号(エントロピーデコーディング)部(entropy decoder)310、残差処理部(residual processor)320、予測部(predictor)330、加算部(adder)340、フィルタリング部(filter)350、およびメモリ(memory)360を含んで構成されることができる。予測部330は、インター予測部331およびイントラ予測部332を含むことができる。残差処理部320は、逆量子化部(dequantizer)321および逆変換部(inverse transformer)321を含むことができる。前述したエントロピ復号部310、残差処理部320、予測部330、加算部340、およびフィルタリング部350は、実施例によって一つのハードウェアコンポーネント(例えば、デコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ360は、DPB(Decoded Picture Buffer)を含むことができ、デジタル記憶媒体により構成されることもできる。上記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに含むこともできる。
【0066】
ビデオ/映像情報を含むビットストリームが入力されると、デコード装置300は、
図2のエンコード装置でビデオ/映像情報が処理されたプロセスに対応して映像を復元することができる。例えば、デコード装置300は、上記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出することができる。デコード装置300は、エンコード装置で適用された処理ユニットを利用してデコーディングを実行することができる。したがって、デコーディングの処理ユニットは、例えば、コーディングユニットであり、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットから四分木構造、二分木構造、および/または三分木ツリー構造に従って分割されることができる。コーディングユニットから一つまたは複数の変換ユニットが導出されることができる。そして、デコード装置300を介してデコーディングおよび出力された復元映像信号は、再生装置を介して再生されることができる。
【0067】
デコード装置300は、
図2のエンコード装置から出力された信号をビットストリーム形態で受信することができ、受信した信号は、エントロピ復号部310を介してデコードされることができる。例えば、エントロピ復号部310は、上記ビットストリームをパージングして映像復元(または、ピクチャ復元)に必要な情報(例えば、ビデオ/映像情報)を導出することができる。上記ビデオ/映像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)など、多様なパラメータセットに関する情報をさらに含むことができる。また、上記ビデオ/映像情報は、一般制限情報(general constraint information)をさらに含むことができる。デコード装置は、上記パラメータセットに関する情報および/または上記一般制限情報にも基づいてピクチャをデコードすることができる。本文書で後述されるシグナリング/受信される情報および/またはシンタックス要素は、上記デコーディング手順を介してデコードされ、上記ビットストリームから取得されることができる。例えば、エントロピ復号部310は、指数ゴロム符号化、CAVLC、またはCABACなどのコーディング方法に基づいてビットストリーム内の情報をデコードし、映像復元に必要なシンタックスエレメントの値、残差に関する変換係数の量子化された値を出力することができる。より詳しくは、CABACエントロピ復号方法は、ビットストリームで各シンタックス要素に該当するbinを受信し、デコーディング対象のシンタックス要素情報(と隣接および)、デコーディング対象ブロックのデコーディング情報または以前のステップでデコードされたシンボル/binの情報を利用してコンテキスト(文脈)(context)モデルを決定し、決定されたコンテキストモデルによってbinの発生確率を予測してbinの算術復号(arithmetic decoding)を実行することで、各シンタックス要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピ復号方法は、コンテキストモデルの決定後、次のシンボル/binのコンテキストモデルのためにデコードされたシンボル/binの情報を利用してコンテキストモデルをアップデートすることができる。エントロピ復号部310でデコードされた情報のうち、予測に関する情報は、予測部(インター予測部332およびイントラ予測部331)に提供され、エントロピ復号部310でエントロピ復号が実行された残差値、すなわち、量子化された変換係数および関連パラメータ情報は、残差処理部320に入力されることができる。残差処理部320は、残差信号(残差ブロック、残差サンプル、残差サンプルアレイ)を導出することができる。また、エントロピ復号部310でデコードされた情報のうち、フィルタリングに関する情報は、フィルタリング部350に提供されることができる。一方、エンコード装置から出力された信号を受信する受信部(図示せず)がデコード装置300の内/外部エレメントとしてさらに構成されることができ、または、受信部は、エントロピ復号部310の構成要素であることもある。一方、本文書によるデコード装置は、ビデオ/映像/ピクチャデコード装置と呼ばれることができ、上記デコード装置は、情報デコーダ(ビデオ/映像/ピクチャ情報デコーダ)およびサンプルデコーダ(ビデオ/映像/ピクチャサンプルデコーダ)に区分(分類)されることもできる。上記情報デコーダは、上記エントロピ復号部310を含むことができ、上記サンプルデコーダは、上記逆量子化部321、逆変換部322、加算部340、フィルタリング部350、メモリ360、インター予測部332、およびイントラ予測部331のうちの少なくとも一つを含むことができる。
【0068】
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列することができる。この場合、上記再整列は、エンコード装置で実行された係数スキャン順序に基づいて再整列を実行することができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を利用して量子化された変換係数に対する逆量子化を実行し、変換係数(transform coefficient)を取得することができる。
【0069】
逆変換部322では、変換係数を逆変換して残差信号(残差ブロック、残差サンプルアレイ)を取得する。
【0070】
予測部は、現ブロックに対する予測を実行し、上記現ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピ復号部310から出力された上記予測に関する情報に基づいて、上記現ブロックにイントラ予測が適用されるか、または、インター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定することができる。
【0071】
予測部320は、後述する多様な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、一つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(Intra Block Copy、IBC)予測モードに基づくこともでき、または、パレットモード(palette mode)に基づくこともできる。上記IBC予測モードまたはパレットモードは、例えば、SCC(Screen Content Coding)などのように、ゲームなどのコンテンツ映像/動映像コーディングのために使用されることができる。IBCは、基本的には現ピクチャ内で予測を実行するが、現ピクチャ内で参照ブロックを導出する点でインター予測と類似するように実行されることができる。すなわち、IBCは、本文書で説明されるインター予測技法のうちの少なくとも一つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブルおよびパレットインデックスに関する情報が上記ビデオ/映像情報に含まれてシグナリングされることができる。
【0072】
イントラ予測部331は、現ピクチャ内のサンプルを参照して現ブロックを予測することができる。上記参照されるサンプルは、予測モードによって上記現ブロックの隣接(neighbor)に位置することもでき、または離れて位置することもできる。イントラ予測における予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部331は、隣接ブロックに適用された予測モードを利用して、現ブロックに適用される予測モードを決定することもできる。
【0073】
インター予測部332は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現ブロックに対する予測されたブロックを導出することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現ブロックとの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。上記動き情報は、動きベクトルおよび参照ピクチャインデックスを含むことができる。上記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測の場合、隣接ブロックは、現ピクチャ内に存在する空間隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間隣接ブロック(temporal neighboring block)とを含むことができる。例えば、インター予測部332は、隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて上記現ブロックの動きベクトルおよび/または参照ピクチャインデックスを導出することができる。多様な予測モードに基づいてインター予測が実行されることができ、上記予測に関する情報は、上記現ブロックに対するインター予測のモードを指示する情報を含むことができる。
【0074】
加算部340は、取得された残差信号を予測部(インター予測部332および/またはイントラ予測部331を含む)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることにより、復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように、処理対象ブロックに対する残差がない場合、予測されたブロックが復元ブロックとして使用されることができる。
【0075】
加算部340は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て出力されることもでき、または、次のピクチャのインター予測のために使用されることもできる。
【0076】
一方、ピクチャデコーディング過程でLMCS(Luma Mapping with Chroma Scaling)が適用されることもできる。
【0077】
フィルタリング部350は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャに多様なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、上記修正された復元ピクチャをメモリ360、具体的には、メモリ360のDPBに送信することができる。上記多様なフィルタリング方法は、例えば、デブロックフィルタリング、サンプル適応オフセット(sample adaptive offset)、適応ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
【0078】
メモリ360のDPBに記憶された(修正された)復元ピクチャは、インター予測部332で参照ピクチャとして使用されることができる。メモリ360は、現ピクチャ内の動き情報が導出された(または、デコードされた)ブロックの動き情報および/または既に復元されたピクチャ内のブロックの動き情報を記憶することができる。上記記憶された動き情報は、空間隣接ブロックの動き情報または時間隣接ブロックの動き情報として活用されるために、インター予測部260に伝達されることができる。メモリ360は、現ピクチャ内の復元されたブロックの復元サンプルを記憶することができ、イントラ予測部331に伝達することができる。
【0079】
本文書において、エンコード装置200のフィルタリング部260、インター予測部221、およびイントラ予測部222で説明された実施例は、各々、デコード装置300のフィルタリング部350、インター予測部332、およびイントラ予測部331にも同一または対応するように適用されることができる。
【0080】
前述したように、ビデオコーディングを実行するにあたって、圧縮効率を上げるために予測を実行する。これを介してコーディング対象ブロックである現ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、予測されたブロックは、空間領域(または、ピクセル領域)における予測サンプルを含む。予測されたブロックは、エンコード装置およびデコード装置で同じく導出され、エンコード装置は、オリジナルブロックのオリジナルサンプル値自体でないオリジナルブロックと予測されたブロックとの間の残差に関する情報(残差情報)をデコード装置にシグナリングすることで映像コーディング効率を上げることができる。デコード装置は、残差情報に基づいて残差サンプルを含む残差ブロックを導出し、残差ブロックと予測されたブロックとを合わせて復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
【0081】
上記残差情報は、変換および量子化手順を介して生成されることができる。例えば、エンコード装置は、オリジナルブロックと予測されたブロックとの間の残差ブロックを導出し、残差ブロックに含まれている残差サンプル(残差サンプルアレイ)に変換手順を実行して変換係数を導出し、変換係数に量子化手順を実行して量子化された変換係数を導出することで、関連する残差情報を(ビットストリームを介して)デコード装置にシグナリングできる。ここで、残差情報は、量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコード装置は、残差情報に基づいて逆量子化/逆変換過程を実行して残差サンプル(または、残差ブロック)を導出することができる。デコード装置は、予測されたブロックおよび残差ブロックに基づいて復元ピクチャを生成することができる。また、エンコード装置は、以後の(subsequent)ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換して残差ブロックを導出し、これに基づいて復元ピクチャを生成することができる。
【0082】
図4は、本文書の実施例が適用可能な概略的なビデオ/映像エンコード方法の一例を示す。
【0083】
図4に開示された方法は、前述した
図2のエンコード装置200により実行されることができる。具体的には、S400は、エンコード装置200のインター予測部221またはイントラ予測部222により実行されることができ、S410、S420、S430、S440は、各々、エンコード装置200の減算部231、変換部232、量子化部233、エントロピ符号化部240により実行されることができる。
【0084】
図4を参照すると、エンコード装置は、現ブロックに対する予測を介して予測サンプルを導出することができる(S400)。エンコード装置は、現ブロックにインター予測を実行するか、または、イントラ予測を実行するかを決定することができ、具体的なインター予測モードまたは具体的なイントラ予測モードをRDコストに基づいて決定できる。決定されたモードによって、エンコード装置は、現ブロックに対する予測サンプルを導出することができる。
【0085】
エンコード装置は、現ブロックに対するオリジナルサンプルと予測サンプルとを比較して残差(レジデュアル)サンプルを導出することができる(S410)。
【0086】
エンコード装置は、残差サンプルに対する変換手順を介して変換係数を導出し(S420)、導出された変換係数を量子化し、量子化された変換係数を導出することができる(S430)。
【0087】
エンコード装置は、予測情報および残差情報を含む映像情報をエンコードし、エンコードされた映像情報をビットストリーム形態で出力できる(S440)。予測情報は、予測手順に関連する情報であって、予測モード情報および動き情報に関する情報(例えば、インター予測が適用される場合)などを含むことができる。残差情報は、量子化された変換係数に関する情報を含むことができる。残差情報は、エントロピコーディングされることができる。
【0088】
出力されたビットストリームは、記憶媒体またはネットワークを介してデコード装置に伝達されることができる。
【0089】
図5は、本文書の実施例が適用可能な概略的なビデオ/映像デコード方法の一例を示す。
【0090】
図5に開示された方法は、前述した
図3のデコード装置300により実行されることができる。具体的には、S500は、デコード装置300のインター予測部332またはイントラ予測部331により実行されることができる。S500において、ビットストリームに含まれている予測情報をデコードして関連シンタックス要素の値を導出する手順は、デコード装置300のエントロピ復号部310により実行されることができる。S510、S520、S530、S540は、各々、デコード装置300のエントロピ復号部310、逆量子化部321、逆変換部322、加算部340により実行されることができる。
【0091】
図5を参照すると、デコード装置は、エンコード装置で実行された動作と対応する動作を実行することができる。デコード装置は、受信した予測情報に基づいて現ブロックに対するインター予測またはイントラ予測を実行して予測サンプルを導出することができる(S500)。
【0092】
デコード装置は、受信した残差情報に基づいて現ブロックに対する量子化された変換係数を導出することができる(S510)。デコード装置は、エントロピ復号を介して残差情報から量子化された変換係数を導出することができる。
【0093】
デコード装置は、量子化された変換係数を逆量子化して変換係数を導出することができる(S520)。
【0094】
デコード装置は、変換係数に対する逆変換過程を介して残差サンプルを導出する(S530)。
【0095】
デコード装置は、予測サンプルおよび残差サンプルに基づいて現ブロックに対する復元サンプルを生成し、これに基づいて復元ピクチャを生成することができる。(S540)。以後、復元ピクチャにインループフィルタリング手順がさらに適用されることができることは、前述の通りである。
【0096】
一方、前述のように、現ブロックに対する予測を実行するにあたって、イントラ予測またはインター予測を適用することができる。以下では、現ブロックにインター予測を適用する場合について説明する。
【0097】
エンコード/デコード装置の予測部(より具体的には、インター予測部)は、ブロック単位でインター予測を実行して予測サンプルを導出することができる。インター予測は、現ピクチャ以外のピクチャのデータ要素(例えば、サンプル値、または動き情報など)に依存する方法で導出される予測を示すことができる。現ブロックにインター予測が適用される場合、参照ピクチャインデックスが指す参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現ブロックに対する予測されたブロック(予測サンプルアレイ)を導出することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現ブロックとの間の動き情報の相関性に基づいて、現ブロックの動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。動き情報は、動きベクトルおよび参照ピクチャインデックスを含むことができる。動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測が適用される場合、隣接ブロックは、現ピクチャ内に存在する空間隣接ブロック(spatial neighboring block)と、参照ピクチャに存在する時間隣接ブロック(temporal neighboring block)と、を含むことができる。上記参照ブロックを含む参照ピクチャと上記時間隣接ブロックを含む参照ピクチャとは同じであってもよく、異なってもよい。上記時間隣接ブロックは、コロケート参照ブロック(collocated reference block)、コロケートCU(colCU)などの名称で呼ばれ得、上記時間隣接ブロックを含む参照ピクチャは、コロケートピクチャ(collocated Picture、colPic)とも呼ばれ得る。例えば、現ブロックの隣接ブロックに基づいて動き情報候補リストが構成されることができ、現ブロックの動きベクトルおよび/または参照ピクチャインデックスを導出するために、どの候補が選択(使用)されるかを指示するフラグ、またはインデックス情報がシグナリングされることができる。様々な予測モードに基づいてインター予測が実行されることができ、例えば、スキップモードおよびマージモードの場合に、現ブロックの動き情報は、選択された隣接ブロックの動き情報と同じであり得る。スキップモードの場合、マージモードと異なり、残差信号が送信されないことがある。動き情報予測(Motion Vector Prediction、MVP)モードの場合、選択された隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として利用し、動きベクトル差分(motion vector difference)が、シグナリングされることができる。この場合、上記動きベクトル予測子と動きベクトル差分との和を利用して現ブロックの動きベクトルを導出することができる。
【0098】
上記動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測など)によって、L0動き情報および/またはL1動き情報を含むことができる。L0方向の動きベクトルは、L0動きベクトルまたはMVL0と呼ばれ得、L1方向の動きベクトルは、L1動きベクトルまたはMVL1と呼ばれ得る。L0動きベクトルに基づいた予測は、L0予測と呼ばれ得、L1動きベクトルに基づいた予測は、L1予測と呼ばれ得、L0動きベクトルおよびL1動きベクトルの両方に基づいた予測は、双(bi)予測と呼ばれ得る。ここで、L0動きベクトルは、参照ピクチャリストL0(L0)に関連する動きベクトルを示すことができ、L1動きベクトルは、参照ピクチャリストL1(L1)に関連する動きベクトルを示すことができる。参照ピクチャリストL0は、現ピクチャよりも出力順序において以前の(prior)ピクチャを参照ピクチャとして含むことができ、参照ピクチャリストL1は、現ピクチャよりも出力順序において以後のピクチャを含むことができる。以前のピクチャは、順方向(参照)ピクチャと呼ばれ得、以後のピクチャは、逆方向(参照)ピクチャと呼ばれ得る。参照ピクチャリストL0は、現ピクチャよりも出力順序において以後のピクチャを参照ピクチャとしてさらに含むことができる。この場合、参照ピクチャリストL0内で以前のピクチャが先にインデキシングされ、以後のピクチャは、その次にインデキシングされることができる。参照ピクチャリストL1は、現ピクチャよりも出力順序において以前のピクチャを参照ピクチャとしてさらに含むことができる。この場合、参照ピクチャリストL1内で以後のピクチャが先にインデキシングされ、以前のピクチャは、その次にインデキシングされることができる。ここで、出力順序は、POC(Picture Order Count)順序(order)に対応し得る。
【0099】
また、ピクチャ内の現ブロックの予測のために、多様なインター予測モードが用いられることができる。例えば、マージモード、スキップモード、MVP(Motion Vector Prediction)モード、アフィン(Affine)モード、サブブロックマージモード、MMVD(Merge with MVD)モード、HMVP(Historical Motion Vector Prediction)モードなど、多様なモードが用いられることができる。DMVR(Decoder side Motion Vector Refinement)モード、AMVR(Adaptive Motion Vector Resolution)モード、Bi-prediction with CU-level Weight(BCW)、Bi-Directional Optical Flow(BDOF)などが付随的なモードとしてさらに用いられることができる。アフィンモードは、アフィン動き予測(affine motion prediction)モードとも呼ばれ得る。MVPモードは、AMVP(Advanced Motion Vector Prediction)モードとも呼ばれ得る。本文書において、一部のモードおよび/または一部のモードにより導出された動き情報候補は、他のモードの動き情報関連候補の一つとして含まれることもできる。例えば、HMVP候補は、マージ/スキップモードのマージ候補として追加され得、または、MVPモードのmvp候補としても追加され得る。HMVP候補がマージモードまたはスキップモードの動き情報候補として用いられる場合、HMVP候補は、HMVPマージ候補と呼ばれ得る。
【0100】
現ブロックのインター予測モードを示す予測モード情報がエンコード装置からデコード装置にシグナリングされることができる。このとき、予測モード情報は、ビットストリームに含まれてデコード装置に受信されることができる。予測モード情報は、多数(複数)の候補モードの一つを指示するインデックス情報を含むことができる。あるいは、フラグ情報の階層的シグナリングを通じてインター予測モードを指示することもできる。この場合、予測モード情報は、一つまたは複数のフラグを含むことができる。例えば、スキップフラグをシグナリングしてスキップモードの適用が可能か否かを指示し、スキップモードが適用されない場合に、マージフラグをシグナリングしてマージモードの適用が可能か否かを指示し、マージモードが適用されない場合に、MVPモードが適用されることと指示するか、追加的に区分(区別)するフラグをさらにシグナリングすることもできる。アフィンモードは、独立したモードとしてシグナリングされることもでき、またはマージモードもしくはMVPモードなどに従属するモードとしてシグナリングされることもできる。例えば、アフィンモードは、アフィンマージモードおよびアフィンMVPモードを含むことができる。
【0101】
また、現ブロックにインター予測を適用するにあたって、現ブロックの動き情報を利用することができる。エンコード装置は、動き推定(motion estimation)手順を通じて現ブロックに対する最適な動き情報を導出することができる。例えば、エンコード装置は、現ブロックに対するオリジナルピクチャ内のオリジナルブロックを利用して、相関性の高い類似する参照ブロックを参照ピクチャ内の所定の探索(サーチ)範囲内で端数の(分数、fractional)ピクセル単位で探索することができ、これを通じて動き情報を導出することができる。ブロックの類似性は、位相(phase)に基づくサンプル値の差に基づいて導出することができる。例えば、ブロックの類似性は、現ブロック(または、現ブロックのテンプレート)と参照ブロック(または、参照ブロックのテンプレート)との間のSAD(Sum of Absolute Differences)に基づいて計算されることができる。この場合、サーチスペース(探索領域)内のSADが最も小さい参照ブロックに基づいて動き情報を導出することができる。導出された動き情報は、インター予測モードに基づいて、様々な方法に従ってデコード装置にシグナリングされることができる。
【0102】
上記のように、インター予測モードによって導出された動き情報に基づいて、現ブロックに対する予測されたブロックを導出することができる。予測されたブロックは、現ブロックの予測サンプル(予測サンプルアレイ)を含むことができる。現ブロックの動きベクトル(MV)が端数のサンプル単位を示す場合、補間(interpolation)手順が実行されることができ、これを通じて、参照ピクチャ内で端数のサンプル単位の参照サンプルに基づいて現ブロックの予測サンプルが導出されることができる。現ブロックにアフィン(Affine)インター予測が適用される場合、サンプル/サブブロック単位MVに基づいて予測サンプルを生成することができる。双予測が適用される場合、L0予測(すなわち、参照ピクチャリストL0内の参照ピクチャおよびMVL0を利用した予測)に基づいて導出された予測サンプルと、L1予測(すなわち、参照ピクチャリストL1内の参照ピクチャおよびMVL1を利用した予測)に基づいて導出された予測サンプルと、の(位相による)加重和または加重平均を通じて導出された予測サンプルが、現ブロックの予測サンプルとして利用されることができる。双予測が適用される場合、L0予測に利用された参照ピクチャとL1予測に利用された参照ピクチャとが現ピクチャを基準として互いに異なる時間方向に位置する場合、(すなわち、双予測であると同時に、両方向予測に対応する場合)これを真の(true)双予測と呼ぶことができる。
【0103】
上記のように導出された予測サンプルに基づいて復元サンプルおよび復元ピクチャが生成されることができ、その後にインループフィルタリングなどの手順が実行され得ることは前述の通りである。
【0104】
図6は、本文書の実施形態が適用可能な概略的なインター予測に基づくビデオ/映像エンコード方法の一例を示す。
【0105】
図6に開示された方法は、前述の
図2のエンコード装置200により実行されることができる。具体的には、S600は、エンコード装置200のインター予測部221により実行されることができ、S610は、エンコード装置200の減算部231により実行されることができ、S620は、エンコード装置200のエントロピ符号化部240により実行されることができる。
【0106】
図6を参照すると、エンコード装置は、現ブロックに対するインター予測を実行することができる(S600)。エンコード装置は、現ブロックのインター予測モードおよび動き情報を導出し、現ブロックの予測サンプルを生成することができる。ここで、インター予測モードの決定、動き情報の導出ならびに予測サンプルの生成過程は、同時に実行されてもよく、ある一過程が他の過程よりも先に実行されてもよい。例えば、エンコード装置のインター予測部は、予測モード決定部、動き情報導出部、および予測サンプル導出部を含むことができ、予測モード決定部で現ブロックに対する予測モードを決め、動き情報導出部で現ブロックの動き情報を導出し、予測サンプル導出部で現ブロックの予測サンプルを導出することができる。例えば、エンコード装置のインター予測部は、動き推定(motion estimation)を通じて参照ピクチャの所定領域(サーチ領域)内で現ブロックと類似するブロックをサーチし、現ブロックとの差が最小または所定基準以下の参照ブロックを導出することができる。これに基づいて、参照ブロックが位置する参照ピクチャを示す参照ピクチャインデックスを導出し、参照ブロックと現ブロックとの位置差に基づいて動きベクトルを導出することができる。エンコード装置は、多様な予測モードの中で現ブロックに対して適用されるモードを決めることができる。エンコード装置は、多様な予測モードに対するRDコスト(cost)を比較して現ブロックに対する最適な予測モードを決めることができる。
【0107】
例えば、エンコード装置は、現ブロックにスキップモードまたはマージモードが適用される場合、マージ候補リストを構成し、マージ候補リストに含まれるマージ候補が示す参照ブロックの中で現ブロックとの差が最小または所定基準以下の参照ブロックを導出することができる。この場合、導出された参照ブロックと関連するマージ候補が選択され、上記選択されたマージ候補を示すマージインデックス情報が生成されてデコード装置にシグナリングされることができる。上記選択されたマージ候補の動き情報を利用して現ブロックの動き情報が導出されることができる。
【0108】
他の例として、エンコード装置は、現ブロックに(A)MVPモードが適用される場合、(A)MVP候補リストを構成し、(A)MVP候補リストに含まれるmvp(motion vector predictor)候補の中で選択されたmvp候補の動きベクトルを現ブロックのmvpとして利用することができる。この場合、例えば、前述した動き推定によって導出された参照ブロックを示す動きベクトルが現ブロックの動きベクトルとして利用され得、mvp候補の中で現ブロックの動きベクトルとの差が最も小さい動きベクトルを有するmvp候補が上記選択されたmvp候補になり得る。現ブロックの動きベクトルでmvpを引いた差分であるMVD(Motion Vector Difference)が導出されることができる。この場合、上記MVDに関する情報がデコード装置にシグナリングされることができる。また、(A)MVPモードが適用される場合、参照ピクチャインデックスの値は、参照ピクチャインデックス情報で構成されて、別途にデコード装置にシグナリングされることができる。
【0109】
エンコード装置は、予測サンプルに基づいて残差サンプルを導出することができる(S610)。エンコード装置は、現ブロックのオリジナルサンプルと予測サンプルとの比較を通じて残差サンプルを導出することができる。
【0110】
エンコード装置は、予測情報および残差情報を含む映像情報をエンコードすることができる(S620)。エンコード装置は、エンコードされた映像情報をビットストリーム形態で出力することができる。ここで、予測情報は、予測手順に関する情報として、予測モード情報(例えば、skip flag、merge flag、またはmode indexなど)および動き情報に関する情報を含むことができる。動き情報に関する情報は、動きベクトルを導出するための情報である候補選択情報(例えば、merge index、mvp flag、またはmvp index)を含むことができる。また、動き情報に関する情報は、前述のMVDに関する情報および/または参照ピクチャインデックス情報を含むことができる。また、動き情報に関する情報は、L0予測、L1予測、または双(bi)予測が適用される否かを示す情報を含むことができる。残差情報は、残差サンプルに関する情報である。残差情報は、残差サンプルに対する量子化された変換係数に関する情報を含むことができる。
【0111】
出力されたビットストリームは、(デジタル)記憶媒体に記憶されて、デコード装置に伝達されることができ、または、ネットワークを介してデコード装置に伝達されることもできる。
【0112】
一方、前述のように、エンコード装置は、参照サンプルおよび残差サンプルに基づいて復元ピクチャ(復元サンプルおよび復元ブロックを含む)を生成することができる。これは、デコード装置で実行されるのと同じ予測結果をエンコード装置で導出するためであり、これを通じてコーディング効率を高めることができるからである。したがって、エンコード装置は、復元ピクチャ(または復元サンプル、復元ブロック)をメモリに記憶し、インター予測のための参照ピクチャとして活用することができる。復元ピクチャにインループフィルタリング手順などがさらに適用されることができることは、前述の通りである。
【0113】
図7は、本文書の実施形態が適用可能な概略的なインター予測に基づくビデオ/映像デコード方法の一例を示す。
【0114】
図7に開示された方法は、前述の
図3のデコード装置300により実行されることができる。具体的には、S700は、デコード装置300のインター予測部332により実行されることができる。S700で、ビットストリームに含まれる予測情報をデコードして関連シンタックス要素の値を導出する手順は、デコード装置300のエントロピ復号部310により実行されることができる。S710、S720は、デコード装置300のインター予測部332により実行されることができ、S730は、デコード装置300の残差処理部320により実行されることができ、S740は、デコード装置300の加算部340により実行されることができる。
【0115】
図7を参照すると、デコード装置は、エンコード装置で実行された動作と対応する動作を実行することができる。デコード装置は、受信した予測情報に基づいて現ブロックに対して予測を実行し、予測サンプルを導出することができる。
【0116】
具体的には、デコード装置は、受信した予測情報に基づいて現ブロックに対する予測モードを決めることができる(S700)。デコード装置は、予測情報内の予測モード情報に基づいて、現ブロックにどのインター予測モードが適用されるか決めることができる。
【0117】
例えば、マージフラグ(merge flag)に基づいて、現ブロックにマージモードが適用されるか否か、または(A)MVPモードが決められるか否かを決めることができる。あるいは、モードインデックス(mode index)に基づいて、多様なインター予測モード候補の一つを選択することができる。インター予測モード候補は、スキップモード、マージモードおよび/もしくは(A)MVPモードを含むことができ、または、多様なインター予測モードを含むことができる。
【0118】
デコード装置は、決められたインター予測モードに基づいて現ブロックの動き情報を導出することができる(S710)。例えば、デコード装置は、現ブロックにスキップモードまたはマージモードが適用される場合、マージ候補リストを構成し、マージ候補リストに含まれるマージ候補の一つのマージ候補を選択することができる。上記選択は、前述の選択情報(merge index)に基づいて実行されることができる。上記選択されたマージ候補の動き情報を利用して、現ブロックの動き情報が導出されることができる。上記選択されたマージ候補の動き情報が現ブロックの動き情報として利用されることができる。
【0119】
他の例として、デコード装置は、現ブロックに(A)MVPモードが適用される場合、(A)MVP候補リストを構成し、(A)MVP候補リストに含まれるmvp(motion vector predictor)候補の中で選択されたmvp候補の動きベクトルを現ブロックのmvpとして利用することができる。上記選択は、前述の選択情報(mvp flag or mvp index)に基づいて実行されることができる。この場合、MVDに関する情報に基づいて現ブロックのMVDを導出することができ、現ブロックのmvpおよびMVDに基づいて現ブロックの動きベクトルを導出することができる。また、参照ピクチャインデックス情報に基づいて現ブロックの参照ピクチャインデックスを導出することができる。現ブロックに関する参照ピクチャリスト内で参照ピクチャインデックスが示すピクチャが現ブロックのインター予測のために参照される参照ピクチャとして導出されることができる。
【0120】
一方、候補リストを構成することなく、現ブロックの動き情報が導出されることができ、この場合、後述する予測モードで開示された手順に従って現ブロックの動き情報が導出されることができる。この場合、前述のような候補リストの構成は、省略され得る。
【0121】
デコード装置は、現ブロックの動き情報に基づいて現ブロックに対する予測サンプルを生成することができる(S720)。この場合、現ブロックの参照ピクチャインデックスに基づいて参照ピクチャを導出し、現ブロックの動きベクトルが参照ピクチャ上で示す参照ブロックのサンプルを利用して現ブロックの予測サンプルを導出することができる。この場合、後述のように、場合によって、現ブロックの予測サンプルの全部または一部に対する予測サンプルフィルタリング手順がさらに実行されることができる。
【0122】
例えば、デコード装置のインター予測部は、予測モード決定部、動き情報導出部、予測サンプル導出部を含むことができ、予測モード決定部で受信された予測モード情報に基づいて現ブロックに対する予測モードを決め、動き情報導出部で受信された動き情報に関する情報に基づいて現ブロックの動き情報(動きベクトルおよび/または参照ピクチャインデックスなど)を導出し、予測サンプル導出部で現ブロックの予測サンプルを導出することができる。
【0123】
デコード装置は、受信した残差情報に基づいて現ブロックに対する残差サンプルを生成することができる(S730)。デコード装置は、予測サンプルおよび残差サンプルに基づいて現ブロックに対する復元サンプルを生成し、これに基づいて復元ピクチャを生成することができる(S740)。その後、復元ピクチャにインループフィルタリング手順などがさらに適用されることができることは、前述の通りである。
【0124】
図8は、インター予測手順を例示的に示す。
図8に開示されたインター予測手順は、前述の
図6および
図7に開示されたインター予測過程(インター予測モードが適用される場合)に適用されることができる。
【0125】
図8を参照すると、前述のように、インター予測手順は、インター予測モード決定ステップ、決定された予測モードによる動き情報導出ステップ、導出された動き情報に基づいた予測実行(予測サンプル生成)ステップを含むことができる。インター予測手順は、前述のように、エンコード装置およびデコード装置で実行されることができる。本文書において、コーディング装置とは、エンコード装置および/またはデコード装置を含むことができる。
【0126】
コーディング装置は、現ブロックに対するインター予測モードを決めることができる(S800)。ピクチャ内の現ブロックの予測のために、多様なインター予測モードが用いられることができる。例えば、マージモード、スキップモード、MVP(Motion Vector Prediction)モード、アフィン(Affine)モード、サブブロックマージモード、MMVD(Merge with MVD)モードなど、多様なモードが用いられることができる。DMVR(Decoder side Motion Vector Refinement)モード、AMVR(Adaptive Motion Vector Resolution)モード、Bi-prediction with CU-level Weight(BCW)、Bi-Directional Optical Flow(BDOF)などが付随的なモードとしてさらにまたは代わりに用いられることができる。アフィンモードは、アフィン動き予測(affine motion prediction)モードとも呼ばれ得る。MVPモードは、AMVP(Advanced Motion Vector Prediction)モードとも呼ばれ得る。本文書において、一部のモードおよび/または一部のモードによって導出された動き情報候補は、他のモードの動き情報関連候補の一つとして含まれることもできる。例えば、HMVP候補は、マージ/スキップモードのマージ候補として追加され得、またはMVPモードのMVP候補としても追加され得る。HMVP候補がマージモードまたはスキップモードの動き情報候補として用いられる場合、HMVP候補は、HMVPマージ候補と呼ばれ得る。
【0127】
現ブロックのインター予測モードを示す予測モード情報がエンコード装置からデコード装置にシグナリングされることができる。予測モード情報は、ビットストリームに含まれてデコード装置に受信されることができる。予測モード情報は、多数の候補モードの一つを指示するインデックス情報を含むことができる。あるいは、フラグ情報の階層的シグナリングを通じてインター予測モードを指示することもできる。この場合、予測モード情報は、一つまたは複数のフラグを含むことができる。例えば、スキップフラグをシグナリングしてスキップモードの適用が可能か否かを指示し、スキップモードが適用されない場合、マージフラグをシグナリングしてマージモード適用が可能か否かを指示し、マージモードが適用されない場合、MVPモードが適用されたことを指示するか、または追加的に区分するためのフラグをさらにシグナリングすることもできる。アフィンモードは、独立したモードとしてシグナリングされることもでき、または、マージモードもしくはMVPモードなどに従属するモードとしてシグナリングされることもできる。例えば、アフィンモードは、アフィンマージモードおよびアフィンMVPモードを含むことができる。
【0128】
コーディング装置は、現ブロックに対する動き情報を導出することができる(S810)。動き情報導出は、インター予測モードに基づいて導出されることができる。
【0129】
コーディング装置は、現ブロックの動き情報を利用してインター予測を実行することができる。エンコード装置は、動き推定(motion estimation)手順を通じて現ブロックに対する最適な動き情報を導出することができる。例えば、エンコード装置は、現ブロックに対するオリジナルピクチャ内のオリジナルブロックを利用して、相関性の高い類似する参照ブロックを参照ピクチャ内の所定の探索範囲内で端数のピクセル単位で探索することができ、これを通じて動き情報を導出することができる。ブロックの類似性は、位相(phase)に基づくサンプル値の差に基づいて導出することができる。例えば、ブロックの類似性は、現ブロック(または現ブロックのテンプレート)と参照ブロック(または参照ブロックのテンプレート)との間のSADに基づいて計算されることができる。この場合、サーチスペース内のSADが最も小さい参照ブロックに基づいて動き情報を導出することができる。導出された動き情報は、インター予測モードに基づいて多様な方法によってデコード装置にシグナリングされることができる。
【0130】
コーディング装置は、現ブロックに対する動き情報に基づいてインター予測を実行することができる(S820)。コーディング装置は、動き情報に基づいて現ブロックに対する予測サンプルを導出することができる。予測サンプルを含む現ブロックは、予測されたブロックと呼ばれ得る。
【0131】
一方、現ブロックの動き情報を導出するにあたって、空間隣接ブロックおよび時間隣接ブロックに基づいて動き情報候補を導出し、導出された動き情報候補に基づいて現ブロックのための動き情報候補を選択することができる。このとき、選択された動き情報候補を現ブロックの動き情報として用いることができる。
【0132】
図9は、現ブロックの空間隣接ブロックおよび時間隣接ブロックを例示的に示す。
【0133】
図9を参照すると、空間隣接ブロックは、現在インター予測を実行する対象である現ブロック900の周辺に位置する隣接ブロックを指し(言い)、現ブロック900の左側周辺に位置する隣接ブロック、または現ブロック900の上側周辺に位置する隣接ブロックを含むことができる。例えば、空間隣接ブロックは、現ブロック900の左下側コーナ隣接ブロック、左側隣接ブロック、右上側コーナ隣接ブロック、上側隣接ブロック、左上側コーナ隣接ブロックを含むことができる。
図9において、空間隣接ブロックを「S」で示した。
【0134】
一実施形態において、エンコード装置/デコード装置は、現ブロックの空間隣接ブロック(例えば、左下側コーナ隣接ブロック、左側隣接ブロック、右上側コーナ隣接ブロック、上側隣接ブロック、左上側コーナ隣接ブロック)を指定の順序に従って探索して使用可能な隣接ブロックを検出し、検出された隣接ブロックの動き情報を空間動き情報候補として導出することができる。
【0135】
時間隣接ブロックは、現ブロック900を含む現ピクチャと異なるピクチャ(すなわち、参照ピクチャ)上に位置するブロックで、参照ピクチャ内で現ブロック900と同位置のブロック(collocated block;col block)を指す。ここで、参照ピクチャは、POC(Picture Order Count)上で現ピクチャよりも以前または以後であり得る。また、時間隣接ブロックを導出する際に用いられる参照ピクチャは、同位置の参照ピクチャまたはcolピクチャ(collocated picture;col picture)と呼称(指称)され得る。また、同位置のブロック(collocated block)は、現ブロック900のポジションに対応するcolピクチャ内に位置するブロックを示すことができ、colブロックと呼称され得る。例えば、時間隣接ブロックは、
図9に示したように、参照ピクチャ(すなわち、colピクチャ)内で現ブロック900の右下側コーナサンプル位置に対応して位置するcolブロック(すなわち、右下側コーナサンプルを含むcolブロック)および/または参照ピクチャ(すなわち、colピクチャ)内で現ブロック900のセンタ右下側サンプル位置に対応して位置するcolブロック(すなわち、センタ右下側サンプルを含むcolブロック)を含むことができる。
図9において、時間隣接ブロックを「T」で示した。
【0136】
一実施形態において、エンコード装置/デコード装置は、現ブロックの時間隣接ブロック(例えば、右下側コーナサンプルを含むcolブロック、センタ右下側サンプルを含むcolブロック)を指定の順序に従って探索して使用可能なブロックを検出し、検出されたブロックの動き情報を時間動き情報候補として導出することができる。このように、時間隣接ブロックを利用する技法は、TMVP(Temporal Motion Vector Prediction)と呼称され得る。また、時間動き情報候補は、TMVP候補と呼称され得る。
【0137】
一方、インター予測モードによっては、サブブロック単位で動き情報を導出して予測を実行することもできる。例えば、アフィンモードやTMVPモードの場合、サブブロック単位で動き情報を導出することができる。特に、サブブロック単位の時間動き情報候補を導出する方法は、サブブロックに基づくTMVP(sbTMVP;subblock-based Temporal Motion Vector Prediction)と呼称され得る。
【0138】
sbTMVPは、現ピクチャ内でコーディングユニットの動きベクトル予測(MVP)およびマージモードを向上させるために、colピクチャ内の動きフィールドを利用する方法で、sbTMVPのcolピクチャは、TMVPによって用いられるcolピクチャと同じであり得る。ただし、TMVPは、コーディングユニット(CU)レベルで動き予測を実行するが、sbTMVPは、サブブロックレベルまたはサブコーディングユニット(sub-CU)レベルで動き予測を実行することができる。また、TMVPは、colピクチャ内のcolブロックから時間動き情報を導出するが(ここで、colブロックは、現ブロックの右下側コーナサンプル位置または現ブロックのセンタ右下側サンプル位置に対応するcolブロックである)、sbTMVPは、colピクチャから動きシフト(motion shift)を適用した後、時間動き情報を導出する。ここで、動きシフトは、現ブロックの空間隣接ブロックの一つのブロックから動きベクトルを獲得し、上記動きベクトルによってシフトされる過程を含むことができる。
【0139】
図10は、サブブロックに基づく時間動き情報候補(sbTMVP候補)を導出するために用いられることができる空間隣接ブロックを例示的に示す。
【0140】
図10を参照すると、空間隣接ブロックは、現ブロックの左下側コーナ隣接ブロックA0、左側隣接ブロックA1、右上側コーナ隣接ブロックB0、上側隣接ブロックB1の少なくとも一つを含むことができる。場合によって、空間隣接ブロックは、
図10に示した隣接ブロック以外の他の隣接ブロックをさらに含んでもよく、または、
図10に示された隣接ブロックの中の特定隣接ブロックを含まなくてもよい。また、空間隣接ブロックは、特定の隣接ブロックのみを含んでもよく、例えば、現ブロックの左側隣接ブロックA1のみを含んでもよい。
【0141】
例えば、エンコード装置/デコード装置は、空間隣接ブロックを所定の探索順序に従って探索しながら最も先に使用可能な空間隣接ブロックの動きベクトルを検出し、参照ピクチャで上記空間隣接ブロックの動きベクトルが示す位置にあるブロックをcolブロック(すなわち、コロケート参照ブロック)として決めることができる。ここで、空間隣接ブロックの動きベクトルは、時間動きベクトル(temporal MV)と呼称され得る。
【0142】
このとき、空間隣接ブロックの使用可能性は、空間隣接ブロックの参照ピクチャ情報、予測モード情報、位置情報などによって判断されることができる。例えば、空間隣接ブロックの参照ピクチャと現ブロックの参照ピクチャとが同一である場合、当該空間隣接ブロックは使用可能であると判断されることができる。あるいは、空間隣接ブロックがイントラ予測モードでコーディングされ、または空間隣接ブロックが現ピクチャ/タイル外部に位置する場合、当該空間隣接ブロックは使用不可能であると判断されることができる。
【0143】
また、空間隣接ブロックの探索順序は、多様に定義されることができ、例えば、A1、B1、B0、A0順であってもよい。あるいは、A1のみを探索してA1が使用可能であるか否かを判断することができる。
【0144】
図11は、サブブロックに基づく時間動き情報候補(sbTMVP候補)を導出する過程を概略的に説明する図である。
【0145】
図11を参照すると、まず、エンコード/デコード装置は、現ブロックの空間隣接ブロック(例えば、A1ブロック)が使用可能であるか否かを判断することができる。例えば、空間隣接ブロック(例えば、A1ブロック)の参照ピクチャがcolピクチャを用いる場合、空間隣接ブロック(例えば、A1ブロック)は使用可能であると判断されることができ、空間隣接ブロック(例えば、A1ブロック)の動きベクトルが導出されることができる。このとき、空間隣接ブロック(例えば、A1ブロック)の動きベクトルは、時間MV(tempMV)として呼称され得、この動きベクトルは、動きシフトに用いられることができる。あるいは、空間隣接ブロック(例えば、A1ブロック)が使用不可能であると判断された場合、時間MV(すなわち、空間隣接ブロックの動きベクトル)は、ゼロベクトルに設定されることができる。言い換えれば、この場合、動きシフトは、(0、0)に設定された動きベクトルが適用されることができる。
【0146】
次に、エンコード/デコード装置は、空間隣接ブロック(例えば、A1ブロック)の動きベクトルに基づいて動きシフトを適用することができる。例えば、動きシフトは、空間隣接ブロック(例えば、A1ブロック)の動きベクトルが示す位置にシフト(例えば、A1`)されることができる。すなわち、動きシフトを適用することにより、現ブロックの座標に空間隣接ブロック(例えば、A1ブロック)の動きベクトルが加えられることができる。
【0147】
次に、エンコード/デコード装置は、colピクチャ上で動きシフトされたcolサブブロック(collocated subblock)を導出し、各colサブブロックの動き情報(動きベクトル、参照インデックスなど)を獲得することができる。例えば、エンコード/デコード装置は、現ブロック内の各サブブロック位置で動きシフトされた位置(すなわち、空間隣接ブロック(例えば、A1)の動きベクトルが示す位置)に対応するcolピクチャ上の各colサブブロックを導出することができる。そして、各colサブブロックの動き情報を現ブロックに対する各サブブロックの動き情報(すなわち、sbTMVP候補)として用いることができる。
【0148】
また、colサブブロックの動きベクトルにスケーリングが適用されることができる。上記スケーリングは、colブロックの参照ピクチャと現ブロックの参照ピクチャとの間の時間的距離の差に基づいて実行されることができる。したがって、上記スケーリングは、時間動きスケーリングと呼称され得、これを通じて、現ブロックの参照ピクチャと時間動きベクトルの参照ピクチャとを整列することができる。この場合、エンコード/デコード装置は、スケーリングされたcolサブブロックの動きベクトルを現ブロックに対する各サブブロックの動き情報として獲得することができる。
【0149】
また、sbTMVP候補を導出するにあたって、colサブブロックに動き情報が存在しない場合もある。この場合、動き情報が存在しないcolサブブロックに対してはベース動き情報(またはデフォルト動き情報)が導出されることができ、このベース動き情報が現ブロックに対するサブブロックの動き情報として用いられることができる。ベース動き情報は、colブロック(すなわち、colサブブロックを含むcol CU)のセンタに位置するブロックから導出されることができる。例えば、colブロックのセンタに位置する4つのサンプルの中で右側下端に位置するサンプルを含むブロックから動き情報(例えば、動きベクトル)を導出し、これをベース動き情報として用いることができる。
【0150】
前述のように、サブブロック単位で動き情報を導出するアフィンモードやsbTMVPモードの場合、アフィンマージ候補およびsbTMVP候補を導出し、このような候補に基づいてサブブロックに基づくマージ候補リストを構成することができる。このとき、アフィンモードやsbTMVPモードは、利用可能(enabled)または利用不可能(disabled)であるか否かを指示するフラグ情報がシグナリングされることができる。上記フラグ情報に基づいてsbTMVPモードが利用可能である場合、前述のように導出されるsbTMVP候補は、サブブロックに基づくマージ候補リストの第一エントリ(firstly-ordered)に追加されることができる。そして、アフィンマージ候補がサブブロックに基づくマージ候補リストの次のエントリに追加されることができる。ここで、サブブロックに基づくマージ候補リストの最大候補数は、5つであってもよい。
【0151】
また、sbTMVPモードの場合、サブブロックの大きさが固定され得、例えば、8×8の大きさに固定され得る。また、sbTMVPモードでは、幅および高さが何れも8以上のブロックのみに適用されることができる。
【0152】
一方、現在のVVC標準では、次の表1のようにサブブロックに基づく時間動き情報候補(sbTMVP候補)を導出することができる。
【0153】
【0154】
【0155】
【0156】
上記表1に示したような方法に従ってsbTMVP候補を導出するにあたって、デフォルトMVおよびサブブロックMV(s)が考慮され得る。ここで、デフォルトMVは、サブブロックに基づく時間マージベース動きデータ(subblock-based temporal merging base motion data)またはベース動きデータ(ベース動き情報)と呼ばれ得る。上記表1を参照すると、デフォルトMVは、表1におけるctrMV(またはctrMVLX)に対応することができる。サブブロックMVは、表1におけるmvSbCol(またはmvLXSbcol)に対応することができる。
【0157】
例えば、sbTMVPの導出過程によってサブブロックもしくはサブブロックMVが使用可能である場合、当該サブブロックに対しては上記サブブロックMVが割り当てられ、または、サブブロックもしくはサブブロックMVが使用不可能である場合、当該サブブロックに対しては上記デフォルトMVが当該サブブロックMVとして利用されることができる。ここで、デフォルトMVは、colピクチャ上で対応するブロック(すなわち、col CU)のセンタピクセル位置に対応する位置から動き情報を導出し、各サブブロックMVは、colピクチャ上で対応するサブブロック(すなわち、colサブブロック)の左側上端(top-left)位置から動き情報を導出することができる。このとき、対応するブロック(すなわち、col CU)は、
図11のように、空間隣接ブロックA1の動きベクトル(すなわち、temporal MV)に基づいて動きシフトされた位置から導出されることができる。
【0158】
図12ないし
図15は、sbTMVP導出過程でブロックサイズによってデフォルトMVおよびサブブロックMVを導出するための対応位置(corresponding position)を計算する方法を概略的に説明する図である。
【0159】
図12ないし
図15において、点線で斜線を引いたピクセル(サンプル)は、各サブブロックMVを導出するための各サブブロック内の対応位置を示し、実線で斜線を引いたピクセル(サンプル)は、デフォルトMVを導出するためのCU内の対応位置を示したのである。
【0160】
例えば、
図12を参照すると、現ブロック(すなわち、現CU)が8×8サイズの場合、サブブロックの動き情報は、8×8サイズのサブブロック内の左側上端サンプル位置に基づいて導出されることができ、サブブロックのデフォルト動き情報は、8×8サイズの現ブロック(すなわち、現CU)内のセンタサンプル位置に基づいて導出されることができる。
【0161】
あるいは、例えば、
図13を参照すると、現ブロック(すなわち、現CU)が16×8サイズの場合、各サブブロックの動き情報は、各8×8サイズのサブブロック内の左側上端サンプル位置に基づいて導出されることができ、各サブブロックのデフォルト動き情報は、16×8サイズの現ブロック(すなわち、現CU)内のセンタサンプル位置に基づいて導出されることができる。
【0162】
あるいは、例えば、
図14を参照すると、現ブロック(すなわち、現CU)が8×16サイズの場合、各サブブロックの動き情報は、各8×8サイズのサブブロック内の左側上端サンプル位置に基づいて導出されることができ、各サブブロックのデフォルト動き情報は、8×16サイズの現ブロック(すなわち、現CU)内のセンタサンプル位置に基づいて導出されることができる。
【0163】
あるいは、例えば、
図15を参照すると、現ブロック(すなわち、現CU)が16×16サイズの場合、各サブブロックの動き情報は、各8×8サイズのサブブロック内の左側上端サンプル位置に基づいて導出されることができ、各サブブロックのデフォルト動き情報は、16×16サイズの現ブロック(すなわち、現CU)内のセンタサンプル位置に基づいて導出されることができる。
【0164】
前述の
図12ないし
図15から分かるように、サブブロックの動き情報が左側上端ピクセル位置に偏っているため、現CUの代表動き情報を示すデフォルトMVを導出する位置とかけ離れた位置でサブブロックMVが誘導されるという問題がある。端的な例として、
図12で示した8×8ブロックのような場合、一つのCUが一つのサブブロックを含んでいるが、サブブロックMVとデフォルトMVとが互いに異なる動き情報に代表されるという矛盾が存在する。また、サブブロックと現CUブロックとの対応位置を計算する方法が異なるので(すなわち、サブブロックのMVを導出する対応位置は左側上端サンプル位置で、デフォルトMVを導出する対応位置はセンタサンプル位置であるので)、ハードウェア(H/W)の具現時に追加的なモジュールが必要な場合がある。
【0165】
そこで、上記のような問題点を改善するために、本文書においては、sbTMVP候補を導出する過程でデフォルトMVのためのCUの対応位置を導出する方法と、各サブブロックMVのためのサブブロックの対応位置を導出する方法と、を統合(unification)する方式を提案する。本文書における一実施形態によると、ハードウェア(H/W)の観点でブロックサイズによって各対応位置を導出するモジュールを一つのみ用いることにより統合する効果を有する。例えば、ブロックサイズが16×16ブロックの場合に対応位置を計算する方法と、ブロックサイズが8×8ブロックの場合に対応位置を計算する方法と、が同一に具現されることができるので、ハードウェアの具現の面で簡素化効果を奏することができる。ここで、16×16ブロックはCUを、8×8ブロックは各サブブロックを示すことができる。
【0166】
一実施形態において、sbTMVP候補を導出するにあたって、サブブロックの動き情報を導出する対応位置としておよびデフォルト動き情報を導出する対応位置としてセンタサンプル位置を用いることができ、以下の表2のように具現されることができる。
【0167】
以下の表2は、本文書における一実施形態によってサブブロックの動き情報およびデフォルト動き情報を導出する方法の一例を示すスペック(spec)である。
【0168】
【0169】
【0170】
【0171】
上記表2を参照すると、sbTMVP候補を導出するにあたって、サブブロックを含む現ブロック(すなわち、現CU)の位置が導出されることができる。現ブロックを含むコーディングツリーブロック(またはコーディングツリーユニット)の左側上端サンプル位置(xCtb、yCtb)と現ブロックの右側下端センタサンプル位置(xCtr、yCtr)とが、上記表2の数式(8-514)~(8-517)のように導出されることができる。このとき、位置(xCtb、yCtb)および(xCtr、yCtr)は、現ピクチャの左側上端サンプルを基準として現ブロックの左側上端サンプル位置(xCb、yCb)に基づいて計算されることができる。
【0172】
また、サブブロックを含む現ブロック(すなわち、現CU)に対応して位置するcolピクチャ上のcolブロック(すなわち、col CU)が導出されることができる。このとき、colブロックの位置は、(xColCtrCb、yColCtrCb)に設定されることができ、この位置は、colピクチャの左側上端サンプルを基準としてcolピクチャ内(xCtr、yCtr)の位置を含むcolブロックの位置を示すことができる。
【0173】
また、sbTMVPに対するベース動きデータ(すなわち、デフォルト動き情報)が導出されることができる。ベース動きデータは、デフォルトMV(例えば、ctrMvLX)を含むことができる。例えば、colピクチャ上のcolブロックが導出されることができる。このとき、colブロックの位置は、(xColCb、yColCb)として導出されることができ、この位置は、上記導出されたcolブロック位置(xColCtrCb、yColCtrCb)に動きシフト(例えば、tempMv)が適用された位置であり得る。動きシフトは、前述のように、現ブロックの空間隣接ブロック(例えば、A1ブロック)から導出された動きベクトル(例えば、tempMv)を現在colブロック位置(xColCtrCb、yColCtrCb)に加えることにより実行されることができる。次に、動きシフトされたcolブロックの位置(xColCb、yColCb)に基づいてデフォルトMV(例えば、ctrMvLX)が導出されることができる。ここで、デフォルトMV(例えば、ctrMvLX)は、colブロックの右側下端センタサンプルに対応する位置から導出される動きベクトルを示すことができる。
【0174】
また、現ブロック内のサブブロック(現サブブロックと呼称)に対応するcolピクチャ上のcolサブブロックが導出されることができる。まず、現サブブロックそれぞれの位置が導出されることができる。各サブブロックの位置は、(xSb、ySb)で示すことができ、この位置(xSb、ySb)は、現ピクチャの左側上端サンプルを基準として現サブブロックの位置を示すことができる。例えば、現サブブロックの位置(xSb、ySb)は、上記表2の数式(8-523)~(8-524)のように計算されることができ、これは、サブブロックの右側下端センタサンプル位置を示すことができる。次に、colピクチャ上のcolサブブロックそれぞれの位置が導出されることができる。各colサブブロックの位置は、(xColSb、yColSb)で示すことができ、この位置(xColSb、yColSb)は、現サブブロックの位置(xSb、ySb)に動きシフト(例えば、tempMv)が適用された位置であり得る。動きシフトは、前述のように、現ブロックの空間隣接ブロック(例えば、A1ブロック)から導出された動きベクトル(例えば、tempMv)を現サブブロックの位置(xSb、ySb)に加えることにより実行されることができる。次に、動きシフトされたcolサブブロックそれぞれの位置(xColSb、yColSb)に基づいてcolサブブロックの動き情報(例えば、動きベクトルmvLXSbCol、使用可能か否かを示すフラグavailableFlagLXSbCol)が導出されることができる。
【0175】
このとき、colサブブロックにおいて使用不可能なcolサブブロックが存在する場合(例えば、availableFlagLXSbColが0の場合)、使用不可能なcolサブブロックに対してはベース動きデータ(すなわち、デフォルト動き情報)を用いることができる。例えば、使用不可能なcolサブブロックに対する動きベクトル(例えば、mvLXSbCol)は、デフォルトMV(例えば、ctrMvLX)を用いることができる。
【0176】
図16ないし
図19は、sbTMVPの導出過程でブロックサイズによってデフォルトMVおよびサブブロックMVを導出するための対応位置(corresponding position)を統合する方法を概略的に説明する例示図である。
【0177】
図16ないし
図19において、点線で斜線を引いたピクセル(サンプル)は、各サブブロックMVを導出するための各サブブロック内の対応位置を示し、実践で斜線を引いたピクセル(サンプル)は、デフォルトMVを導出するためのCU内の対応位置を示したものである。
【0178】
例えば、
図16を参照すると、現ブロック(すなわち、現CU)が8×8サイズの場合、現サブブロックの動き情報は、8×8サイズのサブブロック内の右側下端センタサンプル位置に基づいてcolピクチャ上で対応する位置のcolサブブロックから動き情報を導出して用いることができる。現サブブロックのデフォルト動き情報は、8×8サイズの現ブロック(すなわち、現CU)内の右側下端センタサンプル位置に基づいてcolピクチャ上で対応する位置のcolブロック(すなわち、col CU)から動き情報を導出して用いることができる。この場合、
図16に示したように、現サブブロックの動き情報とデフォルト動き情報とは、同一サンプル位置(同一対応位置)から導出されることができる。
【0179】
あるいは、例えば、
図17を参照すると、現ブロック(すなわち、現CU)が16×8サイズの場合、現サブブロックの動き情報は、8×8サイズのサブブロック内の右側下端センタサンプル位置に基づいてcolピクチャ上で対応する位置のcolサブブロックから動き情報を導出して用いることができる。現サブブロックのデフォルト動き情報は、16×8サイズの現ブロック(すなわち、現CU)内の右側下端センタサンプル位置に基づいてcolピクチャ上で対応する位置のcolブロック(すなわち、col CU)から動き情報を導出して用いることができる。
【0180】
あるいは、例えば、
図18を参照すると、現ブロック(すなわち、現CU)が8×16サイズの場合、現サブブロックの動き情報は、8×8サイズのサブブロック内の右側下端センタサンプル位置に基づいてcolピクチャ上で対応する位置のcolサブブロックから動き情報を導出して用いることができる。現サブブロックのデフォルト動き情報は、8×16サイズの現ブロック(すなわち、現CU)内の右側下端センタサンプル位置に基づいてcolピクチャ上で対応する位置のcolブロック(すなわち、col CU)から動き情報を導出して用いることができる。
【0181】
あるいは、例えば、
図19を参照すると、現ブロック(すなわち、現CU)が16×16サイズまたはそれ以上のサイズの場合、現サブブロックの動き情報は、8×8サイズのサブブロック内の右側下端センタサンプル位置に基づいてcolピクチャ上で対応する位置のcolサブブロックから動き情報を導出して用いることができる。現サブブロックのデフォルト動き情報は、16×16サイズ(または16×16サイズ以上)の現ブロック(すなわち、現CU)内の右側下端センタサンプル位置に基づいてcolピクチャ上で対応する位置のcolブロック(すなわち、col CU)から動き情報を導出して用いることができる。
【0182】
ただし、前述した本文書における実施形態は一つの例示に過ぎず、デフォルト動き情報および現サブブロックの動き情報は、センタ位置(すなわち、右側下端サンプル位置)だけでなく、他のサンプル位置に基づいて導出されることができる。例えば、デフォルト動き情報は、現CUの左側上端サンプル位置に基づいて導出され、現サブブロックの動き情報は、サブブロックの左側上端サンプル位置に基づいて導出されることもできる。
【0183】
前述のような本文書における実施形態をハードウェアで具現する場合、同じH/Wモジュールを用いて動き情報(temporal motion)を導出することができるので、
図20および
図21のようなパイプラインを構成することができる。
【0184】
図20および
図21は、sbTMVP導出過程でデフォルトMVとサブブロックMVとを導出するための対応位置(corresponding position)を統合して計算することができるパイプラインの構成を概略的に示した例示図である。
【0185】
図20および
図21を参照すると、対応位置計算モジュール(corresponding position calculation module)は、デフォルトMVとサブブロックMVとを導出するための対応位置を計算することができる。例えば、
図20および
図21で示したように、対応位置計算モジュールにブロックの位置(posX、posY)およびブロックサイズ(blkszX、blkszY)を入力すると、入力されたブロックのセンタ位置(すなわち、右側下端サンプル位置)が出力されることができる。対応位置計算モジュールに現CUの位置およびブロックサイズを入力する場合、デフォルトMVを導出するための対応位置であるcolピクチャ上のcolブロックのセンタ位置(すなわち、右側下端サンプル位置)が出力されることができる。あるいは、対応位置計算モジュールに現サブブロックの位置およびブロックサイズを入力する場合、現サブブロックMVを導出するための対応位置である、colピクチャ上のcolサブブロックのセンタ位置(すなわち、右側下端サンプル位置)が出力されることができる。
【0186】
このように、対応位置計算モジュールからデフォルトMVとサブブロックMVとを導出するための対応位置が出力されると、上記対応位置から導出された動きベクトル(すなわち、temporal mv)がパッチ(patch)されることができる。そして、パッチされた動きベクトル(すなわち、temporal mv)に基づいてサブブロックに基づく時間動き情報(すなわち、sbTMVP候補)が誘導されることができる。例えば、
図20および
図21のように、H/Wの具現により、クロックサイクル(clock cycle)を基準として並列的にsbTMVP候補を導出することもでき、順次sbTMVP候補を導出することもできる。
【0187】
以下の図面は、本文書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な用語や名称(例えば、シンタックス/シンタックス要素の名称など)は例示的に提示されたものであるため、本文書の技術的特徴は、以下の図面に使用された具体的な名称に制限されない。
【0188】
図22は、本文書における実施形態に係るビデオ/映像エンコード方法の一例を概略的に示す。
【0189】
図22に開示された方法は、
図2で開示されたエンコード装置200により実行されることができる。具体的には、
図22のステップ(S2200)~(S2230)は、
図2に開示された予測部220(より具体的には、インター予測部221)により実行されることができ、
図22のステップ(S2240)は、
図2に開示された残差処理部230により実行されることができ、
図22のステップ(S2250)は、
図2に開示されたエントロピ符号化部240により実行されることができる。また、
図22で開示された方法は、本文書で前述した実施形態を含んで実行されることができる。したがって、
図22では前述した実施形態と重複する内容について、具体的な説明を省略するか簡単にすることとする。
【0190】
図22を参照すると、エンコード装置は、現ブロック内のサブブロックに対するコロケート参照ピクチャ(collocated reference picture)上の参照サブブロックを導出することができる(S2200)。
【0191】
ここで、コロケート参照ピクチャは、前述のように、時間動き情報(すなわち、sbTMVP)を導出するために用いられる参照ピクチャを指し、前述のcolピクチャを示すことができる。参照サブブロックは、前述のcolサブブロックを示すことができる。
【0192】
一実施形態において、エンコード装置は、現ブロック内のサブブロックの位置に基づいてコロケート参照ピクチャ上で参照サブブロックを導出することができる。ここで、現ブロックは、現コーディングユニット(CU)または現コーディングブロック(CB)と呼称され得、現ブロック内に含まれるサブブロックは、現コーディングサブブロックとも呼称され得る。
【0193】
例えば、エンコード装置は、まず、現ブロックの位置を特定し、次に、現ブロック内のサブブロックの位置を特定することができる。上記表2を参照して説明したように、現ブロックの位置は、コーディングツリーブロックの左側上端サンプル位置(xCtb、yCtb)と現ブロックの右側下端センタサンプル位置(xCtr、yCtr)とに基づいて示すことができる。現ブロック内のサブブロックの位置は、それぞれ(xSb、ySb)で示すことができ、この位置(xSb、ySb)は、サブブロックの右側下端センタサンプル位置を示すことができる。ここで、サブブロックの右側下端センタサンプル位置(xSb、ySb)は、サブブロックの左側上端サンプル位置およびサブブロックサイズに基づいて計算されることができ、上記表2の数式(8-523)~(8-524)のように計算されることができる。
【0194】
そして、エンコード装置は、現ブロック内のサブブロックそれぞれの右側下端センタサンプル位置に基づいてコロケート参照ピクチャ上で参照サブブロックを導出することができる。上記表2を参照して説明したように、参照サブブロックは、コロケート参照ピクチャ上で位置(xColSb、yColSb)で示すことができ、位置(xColSb、yColSb)は、現ブロック内のサブブロックそれぞれの右側下端センタサンプル位置(xSb、ySb)に基づいてコロケート参照ピクチャ上で導出されることができる。
【0195】
一方、本文書で用いる左側上端サンプル位置は、左上端サンプル位置、上端左側サンプル位置などと呼称されることもあり、右側下端センタサンプル位置は、右下端センタサンプル位置、センタ右下端サンプル位置、下右側センタサンプル位置、センタ下右側サンプル位置などと呼称されることもある。
【0196】
また、参照サブブロックを導出するにあたって、動きシフトを適用することができる。エンコード装置は、現ブロックの空間隣接ブロックから導出された動きベクトルに基づいて動きシフトを実行することができる。現ブロックの空間隣接ブロックは、現ブロックの左側に位置する左側隣接ブロックであり得、例えば、
図10および
図11に示したA1ブロックを呼称し得る。この場合、左側隣接ブロック(例えば、A1ブロック)が使用可能である場合、左側隣接ブロックから動きベクトルを導出することができ、または、左側隣接ブロックが使用不可能である場合、ゼロベクトルを導出することができる。ここで、空間隣接ブロックが使用可能であるか否かは、空間隣接ブロックの参照ピクチャ情報、予測モード情報、位置情報などによって判断されることができる。例えば、空間隣接ブロックの参照ピクチャと現ブロックの参照ピクチャとが同一である場合、当該空間隣接ブロックは、使用可能であると判断されることができる。あるいは、空間隣接ブロックがイントラ予測モードでコーディング、または空間隣接ブロックが現ピクチャ/タイル外部に位置する場合、当該空間隣接ブロックは、使用不可能であると判断されることができる。
【0197】
すなわち、エンコード装置は、現ブロック内のサブブロックそれぞれの右側下端センタサンプル位置(xSb、ySb)に動きシフト(すなわち、空間隣接ブロック(例えば、A1ブロック)の動きベクトル)を適用し、上記動きシフトされた位置に基づいてコロケート参照ピクチャ上で参照サブブロックを導出することができる。このとき、参照サブブロックの位置(xColSb、yColSb)は、現ブロック内のサブブロックそれぞれの右側下端センタサンプル位置(xSb、ySb)で空間隣接ブロック(例えば、A1ブロック)の動きベクトルが示す位置に動きシフトされた位置で示すことができ、上記表2の数式(8-525)~(8-526)のように計算されることができる。
【0198】
エンコード装置は、参照サブブロックに基づいてサブブロックに基づく時間動き情報候補を導出することができる(S2210)。
【0199】
一方、本文書でサブブロックに基づく時間動き情報候補は、前述のsbTMVp(subblock-based Temporal Motion Vector Prediction)候補を呼称するもので、サブブロックに基づく時間動きベクトル予測子候補で代替または混用されることができる。すなわち、前述のように、サブブロック単位で動き情報を導出して予測を実行する場合、sbTMVP候補を導出することができ、上記sbTMVP候補に基づいてサブブロックレベル(またはサブコーディングユニット(sub-CU)レベル)で動き予測が実行されることができる。
【0200】
エンコード装置は、サブブロックに基づく時間動き情報候補に基づいて現ブロック内のサブブロックに対する動き情報を導出することができる(S2220)。
【0201】
サブブロックに基づく時間動き情報候補は、サブブロック単位動きベクトルを含むことができる。このとき、サブブロック単位動きベクトルは、参照サブブロックに基づいて導出された動きベクトルを含むことができる。
【0202】
一実施形態において、エンコード装置は、参照サブブロックに対するサブブロック単位動きベクトルを現ブロック内のサブブロックに対する動き情報として導出することができる。例えば、エンコード装置は、参照サブブロックが使用可能か否かに基づいてサブブロック単位動きベクトルを導出することができる。参照サブブロックにおける使用可能な参照サブブロックに対して、エンコード装置は、使用可能な参照サブブロックの動きベクトルに基づいて上記使用可能な参照サブブロックに対するサブブロック単位動きベクトルを導出することができる。参照サブブロックにおける使用不可能な参照サブブロックに対して、エンコード装置は、上記使用不可能な参照サブブロックに対するサブブロック単位動きベクトルとして、ベース動きベクトルを用いることができる。
【0203】
ベース動きベクトルは、前述のデフォルト動きベクトルに対応することができ、現ブロックの位置に基づいてコロケート参照ピクチャ上で導出されることができる。
【0204】
一実施形態において、エンコード装置は、現ブロックの右側下端センタサンプル位置に基づいて、コロケート参照ピクチャ上で参照コーディングブロックの位置を特定し、上記参照コーディングブロックの位置に基づいてベース動きベクトルを導出することができる。参照コーディングブロックは、サブブロックを含む現ブロックに対応するコロケート参照ピクチャ上に位置するcolブロックを呼称することができる。上記表2を参照して説明したように、参照コーディングブロックの位置は、(xColCtrCb、yColCtrCb)で示すことができ、位置(xColCtrCb、yColCtrCb)は、コロケート参照ピクチャの左側上端サンプルを基準としてコロケート参照ピクチャ内の位置(xCtr、yCtr)をカバーする参照コーディングブロックの位置を示すことができる。位置(xCtr、yCtr)は、現ブロックの右側下端センタサンプル位置を示すことができる。
【0205】
また、ベース動きベクトルを導出するにあたって、参照コーディングブロックの位置(xColCtrCb、yColCtrCb)に動きシフトを適用することができる。動きシフトは、前述のように、現ブロックの空間隣接ブロック(例えば、A1ブロック)から導出された動きベクトルを右側下端センタサンプルをカバーする参照コーディングブロック位置(xColCtrCb、yColCtrCb)に加えることにより実行されることができる。エンコード装置は、動きシフトされた参照コーディングブロックの位置(xColCb、yColCb)に基づいてベース動きベクトルを導出することができる。すなわち、ベース動きベクトルは、現ブロックの右側下端センタサンプル位置に基づいてコロケート参照ピクチャ上で動きシフトされた位置から導出される動きベクトルであり得る。
【0206】
一方、上記参照サブブロックが使用可能であるか否かは、コロケート参照ピクチャ外部に位置するか否か、または動きベクトルに基づいて判断されることができる。例えば、使用不可能な参照サブブロックは、コロケート参照ピクチャの外部に位置(を逸脱)する参照サブブロックまたは動きベクトルが使用不可能な参照サブブロックを含むことができる。例えば、参照サブブロックがイントラモード、IBC(Intra Block Copy)モード、またはパレット(palette)モードに基づく場合、上記参照サブブロックは、動きベクトルが使用不可能なサブブロックであり得る。あるいは、参照サブブロックの位置に基づいて導出された修正された位置をカバーする参照コーディングブロックがイントラモード、IBCモード、またはパレットモードに基づく場合、上記参照サブブロックは、動きベクトルが使用不可能なサブブロックであり得る。
【0207】
このとき、一実施形態において、使用可能な参照サブブロックの動きベクトルは、参照サブブロックの左上端サンプル位置に基づいて導出される修正された位置(modified location)をカバーするブロックの動きベクトルに基づいて導出されることができる。例えば、上記表2に示したように、修正された位置は、((xColSb>>3)<<3、(yColSb>>3)<<3)のような数式に基づいて導出されることができる。ここで、xColSbおよびyColSbは、それぞれ参照サブブロックの左上端サンプル位置のx座標およびy座標を示し、>>は算術右シフト、<<は算術左シフトを示すことができる。
【0208】
一方、前述のように、サブブロックに基づく時間動き情報候補を導出するにあたって、参照サブブロックに対する動きベクトルは、現ブロック内のサブブロックの位置に基づいて導出され、ベース動きベクトルは、現ブロックの位置に基づいて導出されることが分かる。例えば、
図16ないし
図19で説明したように、8×8サイズの現ブロックに対して、参照サブブロックに対する動きベクトルおよびベース動きベクトルは、現ブロックの右側下端センタサンプル位置に基づいて導出されることができる。8×8サイズよりも大きいサイズを有する現ブロックに対して、参照サブブロックに対する動きベクトルは、現ブロック内のサブブロックそれぞれの右側下端センタサンプル位置に基づいて導出され、ベース動きベクトルは、現ブロックの右側下端センタサンプル位置に基づいて導出されることができる。
【0209】
エンコード装置は、現ブロック内のサブブロックに対する動き情報に基づいて現ブロックの予測サンプルを生成することができる(S2230)。
【0210】
エンコード装置は、RD(Rate-Distortion)コスト(cost)に基づいて最適な動き情報を選択し、これに基づいて予測サンプルを生成することができる。例えば、現ブロックに対してサブブロック単位で導出された動き情報(すなわち、sbTMVP)が最適な動き情報として選択された場合、エンコード装置は、上記のように導出された現ブロックのサブブロックに対する動き情報に基づいて現ブロックの予測サンプルを生成することができる。
【0211】
エンコード装置は、予測サンプルに基づいて残差サンプルを導出し(S2240)、残差サンプルに関する情報を含む映像情報をエンコードすることができる(S2250)。
【0212】
すなわち、エンコード装置は、現ブロックに対するオリジナルサンプルと現ブロックの予測サンプルとに基づいて残差サンプルを導出することができる。そして、エンコード装置は、残差サンプルに関する情報を生成することができる。ここで、残差サンプルに関する情報は、残差サンプルに変換および量子化を実行して導出された量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。
【0213】
エンコード装置は、残差サンプルに関する情報をエンコードしてビットストリームで出力し、これをネットワークまたは記憶媒体を介してデコード装置に送信ことができる。
【0214】
図23は、本文書における実施形態に係るビデオ/映像デコード方法の一例を概略的に示す。
【0215】
図23で開示された方法は、
図3で開示されたデコード装置300により実行されることができる。具体的には、
図23のステップ(S2300)~(S2330)は、
図3に開示された予測部330(より具体的には、インター予測部332)により実行されることができ、
図23のステップ(S2340)は、
図3に開示された加算部340により実行されることができる。また、
図23で開示された方法は、本文書で前述した実施形態を含んで実行されることができる。したがって、
図23では、前述した実施形態と重複する内容について、具体的な説明を省略するか簡単にすることとする。
【0216】
図23を参照すると、デコード装置は、現ブロック内のサブブロックに対するコロケート参照ピクチャ(collocated reference picture)上の参照サブブロックを導出することができる(S2300)。
【0217】
ここで、コロケート参照ピクチャは、前述のように、時間動き情報(すなわち、sbTMVP)を導出するために用いられる参照ピクチャを指し、前述のcolピクチャを示すことができる。参照サブブロックは、前述のcolサブブロックを示すことができる。
【0218】
一実施形態において、デコード装置は、現ブロック内のサブブロックの位置に基づいてコロケート参照ピクチャ上で参照サブブロックを導出することができる。ここで、現ブロックは、現コーディングユニット(CU)または現コーディングブロック(CB)と呼称され得、現ブロック内に含まれるサブブロックは、現コーディングサブブロックとも呼称され得る。
【0219】
例えば、デコード装置は、まず、現ブロックの位置を特定し、次に、現ブロック内のサブブロックの位置を特定することができる。上記表2を参照して説明したように、現ブロックの位置は、コーディングツリーブロックの左側上端サンプル位置(xCtb、yCtb)と現ブロックの右側下端センタサンプル位置(xCtr、yCtr)とに基づいて示すことができる。現ブロック内のサブブロックの位置は、それぞれ(xSb、ySb)で示すことができ、この位置(xSb、ySb)は、サブブロックの右側下端センタサンプル位置を示すことができる。ここで、サブブロックの右側下端センタサンプル位置(xSb、ySb)は、サブブロックの左側上端サンプル位置およびサブブロックサイズに基づいて計算されることができ、上記表2の数式(8-523)~(8-524)のように計算されることができる。
【0220】
そして、デコード装置は、現ブロック内のサブブロックそれぞれの右側下端センタサンプル位置に基づいて、コロケート参照ピクチャ上で参照サブブロックを導出することができる。上記表2を参照して説明したように、参照サブブロックは、コロケート参照ピクチャ上で位置(xColSb、yColSb)で示すことができ、位置(xColSb、yColSb)は、現ブロック内のサブブロックそれぞれの右側下端センタサンプル位置(xSb、ySb)に基づいてコロケート参照ピクチャ上で導出されることができる。
【0221】
一方、本文書で用いる左側上端サンプル位置は、左上端サンプル位置、上端左側サンプル位置などと呼称されることもあり、右側下端センタサンプル位置は、右下端センタサンプル位置、センタ右下端サンプル位置、下右側センタサンプル位置、センタ下右側サンプル位置などと呼称されることもある。
【0222】
また、参照サブブロックを導出するにあたって、動きシフトを適用することができる。デコード装置は、現ブロックの空間隣接ブロックから導出された動きベクトルに基づいて動きシフトを実行することができる。現ブロックの空間隣接ブロックは、現ブロックの左側に位置する左側隣接ブロックであり得、例えば、
図10および
図11に示したA1ブロックを呼称し得る。この場合、左側隣接ブロック(例えば、A1ブロック)が使用可能である場合、左側隣接ブロックから動きベクトルを導出することができ、または、左側隣接ブロックが使用不可能である場合、ゼロベクトルを導出することができる。ここで、空間隣接ブロックが使用可能であるか否かは、空間隣接ブロックの参照ピクチャ情報、予測モード情報、位置情報などによって判断されることができる。例えば、空間隣接ブロックの参照ピクチャと現ブロックの参照ピクチャとが同一である場合、当該空間隣接ブロックは、使用可能であると判断されることができる。あるいは、空間隣接ブロックがイントラ予測モードでコーディング、または空間隣接ブロックが現ピクチャ/タイル外部に位置する場合、当該空間隣接ブロックは、使用不可能であると判断されることができる。
【0223】
すなわち、デコード装置は、現ブロック内のサブブロックそれぞれの右側下端センタサンプル位置(xSb、ySb)に動きシフト(すなわち、空間隣接ブロック(例えば、A1ブロック)の動きベクトル)を適用し、上記動きシフトされた位置に基づいて、コロケート参照ピクチャ上で参照サブブロックを導出することができる。このとき、参照サブブロックの位置(xColSb、yColSb)は、現ブロック内のサブブロックそれぞれの右側下端センタサンプル位置(xSb、ySb)で空間隣接ブロック(例えば、A1ブロック)の動きベクトルが示す位置に動きシフトされた位置で示すことができ、上記表2の数式(8-525)~(8-526)のように計算されることができる。
【0224】
デコード装置は、参照サブブロックに基づいてサブブロックに基づく時間動き情報候補を導出することができる(S2310)。
【0225】
一方、本文書において、サブブロックに基づく時間動き情報候補は、前述のsbTMVp(Subblock-Based Temporal Motion Vector Prediction)候補を呼称するもので、サブブロックに基づく時間動きベクトル予測子候補で代替または混用されることができる。すなわち、前述のように、サブブロック単位で動き情報を導出して予測を実行する場合、sbTMVP候補を導出することができ、上記sbTMVP候補に基づいてサブブロックレベル(またはサブコーディングユニット(sub-CU)レベル)で動き予測が実行されることができる。
【0226】
デコード装置は、サブブロックに基づく時間動き情報候補に基づいて、現ブロック内のサブブロックに対する動き情報を導出することができる(S2320)。
【0227】
サブブロックに基づく時間動き情報候補は、サブブロック単位動きベクトルを含むことができる。このとき、サブブロック単位動きベクトルは、参照サブブロックに基づいて導出された動きベクトルを含むことができる。
【0228】
一実施形態において、デコード装置は、参照サブブロックに対するサブブロック単位動きベクトルを現ブロック内のサブブロックに対する動き情報として導出することができる。例えば、デコード装置は、参照サブブロックが使用可能か否かに基づいてサブブロック単位動きベクトルを導出することができる。参照サブブロックにおける使用可能な参照サブブロックに対して、デコード装置は、使用可能な参照サブブロックの動きベクトルに基づいて上記使用可能な参照サブブロックに対するサブブロック単位動きベクトルを導出することができる。参照サブブロックにおける使用不可能な参照サブブロックに対して、デコード装置は、上記使用不可能な参照サブブロックに対するサブブロック単位動きベクトルとして、ベース動きベクトルを用いることができる。
【0229】
ベース動きベクトルは、前述のデフォルト動きベクトルに対応することができ、現ブロックの位置に基づいてコロケート参照ピクチャ上で導出されることができる。
【0230】
一実施形態において、デコード装置は、現ブロックの右側下端センタサンプル位置に基づいてコロケート参照ピクチャ上で参照コーディングブロックの位置を特定し、上記参照コーディングブロックの位置に基づいてベース動きベクトルを導出することができる。参照コーディングブロックは、サブブロックを含む現ブロックに対応するコロケート参照ピクチャ上に位置するcolブロックを呼称し得る。上記表2を参照して説明したように、参照コーディングブロックの位置は、(xColCtrCb、yColCtrCb)で示すことができ、位置(xColCtrCb、yColCtrCb)は、コロケート参照ピクチャの左側上端サンプルを基準としてコロケート参照ピクチャ内の位置(xCtr、yCtr)をカバーする参照コーディングブロックの位置を示すことができる。位置(xCtr、yCtr)は、現ブロックの右側下端センタサンプル位置を示すことができる。
【0231】
また、ベース動きベクトルを導出するにあたって、参照コーディングブロックの位置(xColCtrCb、yColCtrCb)に動きシフトを適用することができる。動きシフトは、前述のように、現ブロックの空間隣接ブロック(例えば、A1ブロック)から導出された動きベクトルを右側下端センタサンプルをカバーする参照コーディングブロック位置(xColCtrCb、yColCtrCb)に加えることにより実行されることができる。デコード装置は、動きシフトされた参照コーディングブロックの位置(xColCb、yColCb)に基づいてベース動きベクトルを導出することができる。すなわち、ベース動きベクトルは、現ブロックの右側下端センタサンプル位置に基づいてコロケート参照ピクチャ上で動きシフトされた位置から導出される動きベクトルであり得る。
【0232】
一方、上記参照サブブロックが使用可能であるか否かは、コロケート参照ピクチャ外部に位置するか否か、または動きベクトルに基づいて判断されることができる。例えば、使用不可能な参照サブブロックは、コロケート参照ピクチャ外部を逸脱する参照サブブロック、または動きベクトルが使用不可能な参照サブブロックを含むことができる。例えば、参照サブブロックがイントラモード、IBC(Intra Block Copy)モード、またはパレット(palette)モードに基づく場合、上記参照サブブロックは、動きベクトルが使用不可能なサブブロックであり得る。あるいは、参照サブブロックの位置に基づいて導出された修正された位置をカバーする参照コーディングブロックがイントラモード、IBCモード、またはパレットモードに基づく場合、上記参照サブブロックは、動きベクトルが使用不可能なサブブロックであり得る。
【0233】
このとき、一実施形態において、使用可能な参照サブブロックの動きベクトルは、参照サブブロックの左上端サンプル位置に基づいて導出される修正された位置(modified location)をカバーするブロックの動きベクトルに基づいて導出されることができる。例えば、上記表2に示すように、修正された位置は、((xColSb>>3)<<3、(yColSb>>3)<<3)のような数式に基づいて導出されることができる。ここで、xColSbおよびyColSbは、それぞれ参照サブブロックの左上端サンプル位置のx座標およびy座標を示し、>>は算術右シフト、<<は算術左シフトを示すことができる。
【0234】
一方、前述のように、サブブロックに基づく時間動き情報候補を導出するにあたって、参照サブブロックに対する動きベクトルは、現ブロック内のサブブロックの位置に基づいて導出され、ベース動きベクトルは、現ブロックの位置に基づいて導出されることが分かる。例えば、
図16ないし
図19で説明したように、8×8サイズの現ブロックに対して、参照サブブロックに対する動きベクトルおよびベース動きベクトルは、現ブロックの右側下端センタサンプル位置に基づいて導出されることができる。8×8サイズよりも大きいサイズを有する現ブロックに対して、参照サブブロックに対する動きベクトルは、現ブロック内のサブブロックそれぞれの右側下端センタサンプル位置に基づいて導出され、ベース動きベクトルは、現ブロックの右側下端センタサンプル位置に基づいて導出されることができる。
【0235】
デコード装置は、現ブロック内のサブブロックに対する動き情報に基づいて現ブロックの予測サンプルを生成することができる(S2330)。
【0236】
一実施形態において、デコード装置は、現ブロックに対してサブブロック単位動き情報(すなわち、sbTMVPモード)に基づいて予測を実行する予測モードの場合に対して、上記のように導出された現ブロックのサブブロックに対する動き情報に基づいて現ブロックの予測サンプルを生成することができる。
【0237】
デコード装置は、予測サンプルに基づいて復元サンプルを生成することができる(S2340)。
【0238】
一実施形態において、デコード装置は、予測モードによって予測サンプルを即時に復元サンプルとして利用することもでき、または上記予測サンプルに残差サンプルを加えて復元サンプルを生成することもできる。
【0239】
デコード装置は、現ブロックに対する残差サンプルが存在する場合、現ブロックに対する残差に関する情報を受信することができる。残差に関する情報は、残差サンプルに関する変換係数を含むことができる。デコード装置は、残差情報に基づいて現ブロックに対する残差サンプル(または、残差サンプルアレイ)を導出することができる。デコード装置は、予測サンプルと残差サンプルとに基づいて復元サンプルを生成することができ、上記復元サンプルに基づいて復元ブロックまたは復元ピクチャを導出することができる。その後、デコード装置は、必要によって、主観的/客観的画質を向上させるために、デブロックフィルタリングおよび/またはSAO手順などのインループフィルタリング手順を上記復元ピクチャに適用することができることは、前述の通りである。
【0240】
前述した実施例において、方法は、一連のステップまたはブロックで流れ図に基づいて説明されているが、本文書の実施例は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップで、異なる順序または同時で発生し得る。また、当業者であれば、流れ図に示すステップが排他的でなく、他のステップが含まれ、または流れ図の一つもしくは複数のステップが本文書の範囲に影響を及ぼさずに削除可能であることを理解することができる。
【0241】
前述した本文書による方法は、ソフトウェア形態で具現されることができ、本文書によるエンコード装置および/またはデコード装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置などの映像処理を実行する装置に含まれることができる。
【0242】
本文書で実施例がソフトウェアで具現されるとき、前述した方法は、前述した機能を行うモジュール(過程、機能など)で具現されることができる。モジュールは、メモリに記憶され、プロセッサにより実行されることができる。メモリは、プロセッサの内部または外部にあり、よく知られた多様な手段でプロセッサと連結(接続)されることができる。プロセッサは、ASIC(Application-Specific Integrated Circuit)、他のチップセット、論理回路および/またはデータ処理装置を含むことができる。メモリは、ROM(Read-Only Memory)、RAM(Random Access Memory)、フラッシュメモリ、メモリカード、記憶媒体および/または他の記憶装置を含むことができる。すなわち、本文書で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。例えば、各図面で示す機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。この場合、具現のための情報(例えば、information on instructions)またはアルゴリズムがデジタル記憶媒体に記憶されることができる。
【0243】
また、本文書が適用されるデコード装置およびエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信などのリアルタイム通信装置、モバイルストリーミング装置、記憶媒体、カムコーダ、ビデオオンデマンド(注文型ビデオ)(VoD)サービス提供装置、OTTビデオ(Over The Top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、VR(Virtual Reality)装置、AR(Augmented Reality)装置、画像電話ビデオ装置、運送手段端末(例えば、車両(自律走行車両を含む)、飛行機端末、船舶端末など)、および医療用ビデオ装置などに含まれることができ、ビデオ信号またはデータ信号を処理するために使われることができる。例えば、OTTビデオ(Over The Top video)装置では、ゲームコンソール、ブルーレイプレーヤ、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recorder)などを含むことができる。
【0244】
また、本文書が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取り可能な記憶(記録)媒体に記憶されることができる。また、本文書によるデータ構造を有するマルチメディアデータもコンピュータが読み取り可能な記憶媒体に記憶されることができる。上記コンピュータが読み取り可能な記憶媒体は、コンピュータで読み込むことができるデータが記憶される全ての種類の記憶装置および分散記憶装置を含む。上記コンピュータが読み取り可能な記憶媒体は、例えば、ブルーレイディスク(BD)、ユニバーサルシリアル(汎用直列)バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、および光学データ記憶装置を含むことができる。また、上記コンピュータが読み取り可能な記憶媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコード方法で生成されたビットストリームが、コンピュータが読み取り可能な記憶媒体に記憶され、または有無線通信ネットワークを介して送信されることができる。
【0245】
また、本文書の実施例は、プログラムコードによるコンピュータプログラム製品で具現されることができ、上記プログラムコードは、本文書の実施例によりコンピュータで実行されることができる。上記プログラムコードは、コンピュータにより読み取り可能なキャリア上に記憶されることができる。
【0246】
図24は、本文書に開示された実施例が適用されることができるコンテンツストリーミングシステムの例を示す。
【0247】
図24を参照すると、本文書の実施例に適用されるコンテンツストリーミングシステムは、大別して、エンコードサーバ、ストリーミングサーバ、ウェブサーバ、メディア記憶装置(格納所)、ユーザ装置、およびマルチメディア入力装置を含むことができる。
【0248】
上記エンコードサーバは、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータで圧縮してビットストリームを生成し、これを上記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置がビットストリームを直接生成する場合、上記エンコードサーバは省略されることができる。
【0249】
上記ビットストリームは、本文書の実施例に適用されるエンコード方法またはビットストリーム生成方法により生成されることができ、上記ストリーミングサーバは、上記ビットストリームを送信または受信する過程で一時的に上記ビットストリームを記憶することができる。
【0250】
上記ストリーミングサーバは、ウェブサーバを介したユーザ要求(要請)に基づいてマルチメディアデータをユーザ装置に送信し、上記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体の役割をする。ユーザが上記ウェブサーバに所望のサービスを要求すると、上記ウェブサーバは、これをストリーミングサーバに伝達し、上記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、上記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、上記制御サーバは、上記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
【0251】
上記ストリーミングサーバは、メディア記憶装置および/またはエンコードサーバからコンテンツを受信することができる。例えば、上記エンコードサーバからコンテンツを受信する場合、上記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、上記ストリーミングサーバは、上記ビットストリームを一定時間記憶することができる。
【0252】
上記ユーザ装置の例として、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタル署名(サイニジ)がある。
【0253】
上記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運用されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
【0254】
本文書に記載された請求項は、多様な方式で組み合わせることができる。例えば、本文書の方法請求項の技術的特徴が組み合わせられて装置で具現されることができ、本文書の装置請求項の技術的特徴が組み合わせられて方法で具現されることができる。また、本文書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて装置で具現されることができ、本文書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて方法で具現されることができる。