JP2023518990A - ラップアラウンド動き補償に基づく画像符号化/復号化方法及び装置、並びにビットストリームを保存した記録媒体 - Google Patents

ラップアラウンド動き補償に基づく画像符号化/復号化方法及び装置、並びにビットストリームを保存した記録媒体 Download PDF

Info

Publication number
JP2023518990A
JP2023518990A JP2022558310A JP2022558310A JP2023518990A JP 2023518990 A JP2023518990 A JP 2023518990A JP 2022558310 A JP2022558310 A JP 2022558310A JP 2022558310 A JP2022558310 A JP 2022558310A JP 2023518990 A JP2023518990 A JP 2023518990A
Authority
JP
Japan
Prior art keywords
picture
wraparound
current
current block
motion compensation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022558310A
Other languages
English (en)
Inventor
ヘンドリー ヘンドリー
パルリ シータル
スンファン キム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Publication of JP2023518990A publication Critical patent/JP2023518990A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

画像符号化/復号化方法及び装置が提供される。本開示による画像復号化方法は、ビットストリームから、現在ブロックのインター予測情報及びラップアラウンド情報を取得するステップと、インター予測情報及びラップアラウンド情報に基づいて、現在ブロックの予測ブロックを生成するステップと、を含み、ラップアラウンド情報は、現在ブロックを含む現在ピクチャに対してラップアラウンド動き補償が利用可能であるか否かを示す第1フラグを含み、現在ブロックの予測ブロックは、第1フラグが、ラップアラウンド動き補償が利用可能であることを示す第1値を有することに基づいて、ラップアラウンド動き補償によって生成され、ラップアラウンド動き補償は、現在ブロックを含む現在サブピクチャが独立してコーディングされるか否かに基づいて、現在サブピクチャの境界及び現在ブロックの参照ピクチャの境界のうちのいずれか一つに基づいて行われることができる。【選択図】図20

Description

本開示は、画像符号化/復号化方法及び装置に係り、より詳細には、ラップアラウンド動き補償に基づく画像符号化/復号化方法及び装置、並びに本開示の画像符号化方法/装置によって生成されたビットストリームを保存した記録媒体に関する。
最近、高解像度、高品質の画像、例えばHD(High Definition)画像及びUHD(Ultra High Definition)画像への需要が多様な分野で増加している。画像データが高解像度、高品質になるほど、従来の画像データに比べて、伝送される情報量又はビット量が相対的に増加する。伝送される情報量又はビット量の増加は、伝送費用と保存費用の増加をもたらす。
これにより、高解像度、高品質画像の情報を効果的に伝送又は保存し、再生するための高効率の画像圧縮技術が求められる。
本開示は、符号化/復号化の効率が向上した画像符号化/復号化方法及び装置を提供することを目的とする。
また、本開示は、ラップアラウンド動き補償に基づく画像符号化/復号化方法及び装置を提供することを目的とする。
また、本開示は、独立してコーディングされたサブピクチャに対するラップアラウンド動き補償に基づく画像符号化/復号化方法及び装置を提供することを目的とする。
また、本開示は、本開示による画像符号化方法又は装置によって生成されたビットストリームを伝送する方法を提供することを目的とする。
また、本開示は、本開示による画像符号化方法又は装置によって生成されたビットストリームを保存した記録媒体を提供することを目的とする。
また、本開示は、本開示による画像復号化装置によって受信され、復号化されて画像の復元に利用されるビットストリームを保存した記録媒体を提供することを目的とする。
本開示で解決しようとする技術的課題は上述した技術的課題に制限されず、上述していない別の技術的課題は以降の記載から本開示の属する技術分野における通常の知識を有する者に明確に理解できるだろう。
本開示の一態様による画像復号化方法は、ビットストリームから、現在ブロックのインター予測情報及びラップアラウンド(wrap-around)情報を取得するステップと、前記インター予測情報及び前記ラップアラウンド情報に基づいて、前記現在ブロックの予測ブロックを生成するステップと、を含み、前記ラップアラウンド情報は、前記現在ブロックを含む現在ピクチャに対してラップアラウンド動き補償が利用可能であるか否かを示す第1フラグを含み、前記現在ブロックの予測ブロックは、前記第1フラグが、ラップアラウンド動き補償が利用可能であることを示す第1値を有することに基づいて、前記ラップアラウンド動き補償によって生成され、前記ラップアラウンド動き補償は、前記現在ブロックを含む現在サブピクチャが独立してコーディングされるか否かに基づいて、前記現在サブピクチャの境界及び前記現在ブロックの参照ピクチャの境界のうちのいずれか一つに基づいて行われることができる。
本開示の他の態様による画像復号化装置は、メモリ及び少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、ビットストリームから現在ブロックのインター予測情報及びラップアラウンド(wrap-around)情報を取得し、前記インター予測情報及び前記ラップアラウンド情報に基づいて、前記現在ブロックの予測ブロックを生成し、前記ラップアラウンド情報は、前記現在ブロックを含む現在ピクチャに対してラップアラウンド動き補償が利用可能であるか否かを示す第1フラグを含み、前記現在ブロックの予測ブロックは、前記第1フラグが、前記ラップアラウンド動き補償が利用可能であることを示す第1値を有することに基づいて、前記ラップアラウンド動き補償によって生成され、前記ラップアラウンド動き補償は、前記現在ブロックを含む現在サブピクチャが独立してコーディングされるか否かに基づいて、前記現在サブピクチャの境界及び前記現在ブロックの参照ピクチャの境界のうちのいずれか一つに基づいて行われることができる。
本開示の別の態様による画像符号化方法は、現在ブロックに対してラップアラウンド(wrap-around)動き補償を適用するか否かを決定するステップと、前記決定に基づいてインター予測を行うことにより、前記現在ブロックの予測ブロックを生成するステップと、前記現在ブロックのインター予測情報及び前記ラップアラウンド動き補償に関するラップアラウンド情報を符号化するステップと、を含み、前記ラップアラウンド情報は、前記現在ブロックを含む現在ピクチャに対してラップアラウンド動き補償が利用可能であるか否かを示す第1フラグを含み、前記ラップアラウンド動き補償は、前記現在ブロックを含む現在サブピクチャが独立してコーディングされるか否かに基づいて、前記現在サブピクチャの境界及び前記現在ブロックの参照ピクチャの境界のうちのいずれか一つに基づいて行われることができる。
本開示の別の態様によるコンピュータ可読記録媒体は、本開示の画像符号化方法又は画像符号化装置によって生成されたビットストリームを保存することができる。
本開示の別の態様による伝送方法は、本開示の画像符号化装置又は画像符号化方法によって生成されたビットストリームを伝送することができる。
本開示について簡略に要約して上述した特徴は、後述する本開示の詳細な説明の例示的な態様に過ぎず、本開示の範囲を制限するものではない。
本開示によれば、符号化/復号化の効率が向上した画像符号化/復号化方法及び装置が提供されることができる。
また、本開示によれば、ラップアラウンド動き補償に基づく画像符号化/復号化方法及び装置が提供されることができる。
また、本開示によれば、独立してコーディングされたサブピクチャに対するラップアラウンド動き補償に基づく画像符号化/復号化方法及び装置が提供されることができる。
また、本開示によれば、本開示による画像符号化方法又は装置によって生成されたビットストリームを伝送する方法が提供されることができる。
また、本開示によれば、本開示による画像符号化方法又は装置によって生成されたビットストリームを保存した記録媒体が提供されることができる。
また、本開示は、本開示による画像復号化装置によって受信され、復号化されて画像の復元に利用されるビットストリームを保存した記録媒体が提供されることができる。
本開示で得られる効果は、上述した効果に限定されず、上述していない別の効果は、以降の記載から、本開示の属する技術分野における通常の知識を有する者に明確に理解できるだろう。
本開示による実施例が適用できるビデオコーディングシステムを概略的に示す図である。 本開示による実施例が適用できる画像符号化装置を概略的に示す図である。 本開示による実施例が適用できる画像復号化装置を概略的に示す図である。 本開示による実施例が適用できる画像復号化手順を概略的に示すフローチャートである。 本開示による実施例が適用できる画像符号化手順を概略的に示すフローチャートである。 インター予測ベースのビデオ/画像復号化方法を示すフローチャートである。 本開示によるインター予測部260の構成を例示的に示す図である。 サブピクチャの一例を示す図である。 サブピクチャに関する情報を含むSPSの一例を示す図である。 本開示の一実施例による画像符号化装置がサブピクチャを用いて画像を符号化する方法を示す図である。 本開示の一実施例による画像復号化装置がサブピクチャを用いて画像を復号化する方法を示す図である。 2次元ピクチャに変換された360度画像の一例を示す図である。 水平ラップアラウンド動き補償過程の一例を示す図である。 ラップアラウンド動き補償に関する情報を含むSPSの一例を示す図である。 ラップアラウンド動き補償に関する情報を含むPPSの一例を示す図である。 画像復号化装置がサブピクチャ属性に基づいてラップアラウンド動き補償を行う方法を示すフローチャートである。 本開示の一実施例による画像符号化装置がラップアラウンド動き補償の利用可否を決定する方法を示すフローチャートである。 本開示の一実施例による画像復号化装置がサブピクチャ属性に基づいてラップアラウンド動き補償を行う方法を示すフローチャートである。 本発明の一実施例によるSPSの一例を示す図である。 本開示の一実施例による画像符号化方法を示すフローチャートである。 本開示の一実施例による画像復号化方法を示すフローチャートである。 本開示による実施例が適用できるコンテンツストリーミングシステムを例示的に示す図である。 本開示の実施例が活用できる3次元画像/ビデオサービスの提供のためのアーキテクチャを概略的に示す図である。
以下、添付図面を参照して、本開示の実施例について、本開示の属する技術分野における通常の知識を有する者が容易に実施し得るように詳細に説明する。しかし、本開示は、様々な異なる形態で実現でき、ここで説明する実施例に限定されない。
本開示の実施例を説明するにあたり、公知の構成又は機能についての具体的な説明が本開示の要旨を不明確にするおそれがあると判断される場合には、それについての詳細な説明は省略する。そして、図面において、本開示についての説明と関係ない部分は省略し、同様の部分には同様の図面符号を付した。
本開示において、ある構成要素が他の構成要素と「連結」、「結合」又は「接続」されているとするとき、これは、直接的な連結関係だけでなく、それらの間に別の構成要素が存在する間接的な連結関係も含むことができる。また、ある構成要素が他の構成要素を「含む」又は「有する」とするとき、これは、特に反対される記載がない限り、別の構成要素を排除するのではなく、別の構成要素をさらに含むことができることを意味する。
本開示において、「第1」、「第2」などの用語は、一つの構成要素を他の構成要素から区別する目的のみで使用され、特に言及されない限り、構成要素間の順序又は重要度などを限定しない。したがって、本開示の範囲内において、一実施例の第1構成要素を他の実施例で第2構成要素と呼んでもよく、これと同様に、一実施例の第2構成要素を他の実施例で第1構成要素と呼んでもよい。
本開示において、互いに区別される構成要素は、それぞれの特徴を明確に説明するためのものであり、構成要素が必ずしも分離されることを意味するものではない。つまり、複数の構成要素が統合されて一つのハードウェア又はソフトウェア単位で構成されてもよく、一つの構成要素が分散されて複数のハードウェア又はソフトウェア単位で構成されてもよい。よって、別に言及しなくても、このように統合された又は分散された実施例も本開示の範囲に含まれる。
本開示において、さまざまな実施例で説明する構成要素が必ず必要不可欠な構成要素を意味するものではなく、一部は選択的な構成要素であり得る。したがって、一実施例で説明する構成要素の部分集合で構成される実施例も本開示の範囲に含まれる。また、様々な実施例で説明する構成要素にさらに他の構成要素を含む実施例も、本開示の範囲に含まれる。
本開示は、画像の符号化及び復号化に関するものであって、本開示で使用される用語は、本開示で新たに定義されない限り、本開示の属する技術分野における通常の意味を持つことができる。
本開示において、「ピクチャ(picture)」は、一般的に、特定の時間帯のいずれか一つの画像を示す単位を意味し、スライス(slice)/タイル(tile)は、ピクチャの一部を構成する符号化単位であって、一つのピクチャは、一つ以上のスライス/タイルで構成できる。また、スライス/タイルは、一つ以上のCTU(coding tree unit)を含むことができる。
本開示において、「ピクセル(pixel)」又は「ペル(pel)」は、一つのピクチャ(又は画像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用できる。サンプルは、一般的に、ピクセル又はピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。
本開示において、「ユニット(unit)」は、画像処理の基本単位を示すことができる。ユニットは、ピクチャの特定の領域及び当該領域に関連する情報のうちの少なくとも一つを含むことができる。ユニットは、場合に応じて、「サンプルアレイ」、「ブロック(block)」又は「領域(area)」などの用語と混用して使用できる。一般な場合、M×Nブロックは、M個の列とN個の行からなるサンプル(又はサンプルアレイ)又は変換係数(transform coefficient)のセット(又はアレイ)を含むことができる。
本開示において、「現在ブロック」は、「現在コーディングブロック」、「現在コーディングユニット」、「符号化対象ブロック」、「復号化対象ブロック」又は「処理対象ブロック」のうちのいずれか一つを意味することができる。予測が行われる場合、「現在ブロック」は、「現在予測ブロック」又は「予測対象ブロック」を意味することができる。変換(逆変換)/量子化(逆量子化)が行われる場合、「現在ブロック」は「現在変換ブロック」又は「変換対象ブロック」を意味することができる。フィルタリングが行われる場合、「現在ブロック」は「フィルタリング対象ブロック」を意味することができる。
また、本開示において、「現在ブロック」は、クロマブロックという明示的な記載がない限り、ルマ成分ブロックとクロマ成分ブロックを全て含むブロック又は「現在ブロックのルマブロック」を意味することができる。現在ブロックのルマ成分ブロックは、明示的に「ルマブロック」又は「現在ルマブロック」のようにルマ成分ブロックという明示的な記載を含んで表現できる。また、現在ブロックのクロマ成分ブロックは、明示的に「クロマブロック」又は「現在クロマブロック」のようにクロマ成分ブロックという明示的な記載を含んで表現できる。
本開示において、「/」と「、」は「及び/又は」と解釈されることができる。例えば、「A/B」と「A、B」は「A及び/又はB」と解釈されることができる。また、「A/B/C」と「A、B、C」は、「A、B及び/又はCのうちの少なくとも一つ」を意味することができる。
本開示において、「又は」は「及び/又は」と解釈されることができる。例えば、「A又はB」は、1)「A」のみを意味するか、2)「B」のみを意味するか、3)「A及びB」を意味することができる。又は、本開示において、「又は」は、「追加的に又は代替的に(additionally or alternatively)」を意味することができる。
ビデオコーディングシステムの概要
図1は、本開示による実施例が適用できるビデオコーディングシステムを概略的に示す図である。
一実施例によるビデオコーディングシステムは、符号化装置10及び復号化装置20を含むことができる。符号化装置10は、符号化されたビデオ(video)及び/又は画像(image)情報又はデータをファイル又はストリーミング形式でデジタル記憶媒体又はネットワークを介して復号化装置20へ伝達することができる。
一実施例による符号化装置10は、ビデオソース生成部11、符号化部12及び伝送部13を含むことができる。一実施例による復号化装置20は、受信部21、復号化部22及びレンダリング部23を含むことができる。前記符号化部12は、ビデオ/画像符号化部と呼ばれることができ、前記復号化部22は、ビデオ/画像復号化部と呼ばれることができる。伝送部13は、符号化部12に含まれることができる。受信部21は、復号化部22に含まれることができる。レンダリング部23は、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイス又は外部コンポーネントとして構成されることもできる。
ビデオソース生成部11は、ビデオ/画像のキャプチャ、合成又は生成過程などを介してビデオ/画像を取得することができる。ビデオソース生成部11は、ビデオ/画像キャプチャデバイス及び/又はビデオ/画像生成デバイスを含むことができる。ビデオ/画像キャプチャデバイスは、例えば、一つ以上のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを含むことができる。ビデオ/画像生成デバイスは、例えば、コンピュータ、タブレット及びスマートフォンなどを含むことができ、(電子的に)ビデオ/画像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/画像が生成されることができ、この場合、ビデオ/画像キャプチャ過程は、関連データが生成される過程に置き換えられることができる。
符号化部12は、入力ビデオ/画像を符号化することができる。符号化部12は、圧縮及び符号化効率のために、予測、変換、量子化などの一連の手順を行うことができる。符号化部12は、符号化されたデータ(符号化されたビデオ/画像情報)をビットストリーム(bitstream)形式で出力することができる。
伝送部13は、ビットストリーム形式で出力された、符号化されたビデオ/画像情報又はデータを、ファイル又はストリーミング形式でデジタル記憶媒体又はネットワークを介して復号化装置20の受信部21に伝達することができる。デジタル記憶媒体は、USB、SD、CD、DVD、Blu-ray(登録商標)、HDD、SSDなどのさまざまな記憶媒体を含むことができる。伝送部13は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介して伝送するためのエレメントを含むことができる。受信部21は、前記記憶媒体又はネットワークから前記ビットストリームを抽出/受信して復号化部22に伝達することができる。
復号化部22は、符号化部12の動作に対応する逆量子化、逆変換、予測などの一連の手順を行ってビデオ/画像を復号化することができる。
レンダリング部23は、復号化されたビデオ/画像をレンダリングすることができる。レンダリングされたビデオ/画像は、ディスプレイ部を介して表示されることができる。
画像符号化装置の概要
図2は、本開示による実施例が適用できる画像符号化装置を概略的に示す図である。
図2に示されているように、画像符号化装置100は、画像分割部110、減算部115、変換部120、量子化部130、逆量子化部140、逆変換部150、加算部155、フィルタリング部160、メモリ170、インター予測部180、イントラ予測部185及びエントロピー符号化部190を含むことができる。インター予測部180及びイントラ予測部185は、合わせて「予測部」と呼ばれることができる。変換部120、量子化部130、逆量子化部140及び逆変換部150は、レジデュアル(residual)処理部に含まれることができる。レジデュアル処理部は減算部115をさらに含むこともできる。
画像符号化装置100を構成する複数の構成部の全部又は少なくとも一部は、実施例によって一つのハードウェアコンポーネント(例えば、エンコーダ又はプロセッサ)で実現されることができる。また、メモリ170は、DPB(decoded picture buffer)を含むことができ、デジタル記憶媒体によって実現できる。
画像分割部110は、画像符号化装置100に入力された入力画像(又は、ピクチャ、フレーム)を一つ以上の処理ユニット(processing unit)に分割することができる。一例として、前記処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれることができる。コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)又は最大コーディングユニット(largest coding unit、LCU)をQT/BT/TT(Quad-tree/binary-tree/ternary-tree)構造によって再帰的に(recursively)分割することにより取得されることができる。例えば、一つのコーディングニットは、四分木構造、二分木構造及び/又は三分木構造に基づいて、下位(deeper)デプスの複数のコーディングユニットに分割されることができる。コーディングユニットの分割のために、四分木構造が先に適用され、二分木構造及び/又は三分木構造が後で適用されることができる。それ以上分割されない最終コーディングユニットを基に、本開示によるコーディング手順が行われることができる。最大コーディングユニットが最終コーディングユニットとして使用されることができ、最大コーディングユニットを分割して取得した下位デプスのコーディングユニットが最終コーディングユニットとして使用されることもできる。ここで、コーディング手順とは、後述する予測、変換及び/又は復元などの手順を含むことができる。他の例として、前記コーディング手順の処理ユニットは、予測ユニット(PU:Prediction Unit)又は変換ユニット(TU:Transform Unit)であることができる。前記予測ユニット及び前記変換ユニットは、それぞれ前記最終コーディングユニットから分割又はパーティショニングされることができる。前記予測ユニットは、サンプル予測の単位であることができ、前記変換ユニットは、変換係数を誘導する単位、及び/又は変換係数からレジデュアル信号(residual signal)を誘導する単位であることができる。
予測部(インター予測部180又はイントラ予測部185)は、処理対象ブロック(現在ブロック)に対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、現在ブロック又はCU単位でイントラ予測が適用されるか、或いはインター予測が適用されるかを決定することができる。予測部は、現在ブロックの予測に関するさまざまな情報を生成してエントロピー符号化部190に伝達することができる。予測に関する情報は、エントロピー符号化部190で符号化されてビットストリーム形式で出力されることができる。
イントラ予測部185は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。参照される前記サンプルは、イントラ予測モード及び/又はイントラ予測技法に従って、前記現在ブロックの周辺(neighbor)に位置することもでき、或いは離れて位置することもできる。イントラ予測モードは、複数の非方向性モードと複数の方向性モードを含むことができる。非方向性モードは、例えば、DCモード及びプランナーモード(Planarモード)を含むことができる。方向性モードは、予測方向の細かい程度に応じて、例えば33個の方向性予測モード又は65個の方向性予測モードを含むことができる。ただし、これは例示に過ぎず、設定に基づいてそれ以上又はそれ以下の個数の方向性予測モードが使用できる。イントラ予測部185は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
インター予測部180は、参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。この時、インター予測モードで伝送される動き情報の量を減らすために、周辺ブロックと現在ブロックとの動き情報の相関性に基づいて動き情報をブロック、サブブロック又はサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測の場合、周辺ブロックは、現在ピクチャ内に存在する空間周辺ブロック(spatial neighboring block)と、参照ピクチャに存在する時間周辺ブロック(temporal neighboring block)を含むことができる。前記参照ブロックを含む参照ピクチャと、前記時間周辺ブロックを含む参照ピクチャとは、同一でもよく、互いに異なってもよい。前記時間周辺ブロックは、コロケート参照ブロック(collocated reference block)、コロケートCU(colCU)などの名前で呼ばれることができる。前記時間周辺ブロックを含む参照ピクチャは、コロケートピクチャ(collocated picture、colPic)と呼ばれることができる。例えば、インター予測部180は、周辺ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出するために、どの候補が使用されるかを指示する情報を生成することができる。様々な予測モードに基づいてインター予測が行われることができ、例えばスキップモードとマージモードの場合に、インター予測部180は、周辺ブロックの動き情報を現在ブロックの動き情報として用いることができる。スキップモードの場合、マージモードとは異なり、レジデュアル信号が伝送されないことができる。動き情報予測(motion vector prediction、MVP)モードの場合、周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用い、動きベクトル差分(motion vector difference)及び動きベクトル予測子に対するインジケータ(indicator)を符号化することにより、現在ブロックの動きベクトルをシグナリングすることができる。動きベクトル差分は、現在ブロックの動きベクトルと動きベクトル予測子との差を意味することができる。
予測部は、後述する様々な予測方法及び/又は予測技法に基づいて予測信号を生成することができる。例えば、予測部は、現在ブロックの予測のために、イントラ予測又はインター予測を適用することができるだけでなく、イントラ予測とインター予測を同時に適用することができる。現在ブロックの予測のためにイントラ予測とインター予測を同時に適用する予測方法は、CIIP(combined inter and intra prediction)と呼ばれることができる。また、予測部は、現在ブロックの予測のためにイントラブロックコピー(intra block copy、IBC)を行うこともできる。イントラブロックコピーは、例えば、SCC(screen content coding)などのようにゲームなどのコンテンツ画像/動画コーディングのために使用できる。IBCは、現在ブロックから所定の距離だけ離れた位置の現在ピクチャ内の既に復元された参照ブロックを用いて現在ブロックを予測する方法である。IBCが適用される場合、現在ピクチャ内の参照ブロックの位置は、前記所定の距離に該当するベクトル(ブロックベクトル)として符号化されることができる。IBCは、基本的に現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出するという点で、インター予測と同様に行われることができる。すなわち、IBCは、本開示で説明されるインター予測技法のうちの少なくとも1つを用いることができる。
予測部によって生成された予測信号は、復元信号を生成するために用いられるか、或いはレジデュアル信号を生成するために用いられることができる。減算部115は、入力画像信号(原本ブロック、原本サンプルアレイ)から、予測部から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算して、レジデュアル信号(residual signal、残余ブロック、残余サンプルアレイ)を生成することができる。生成されたレジデュアル信号は、変換部120に伝送されることができる。
変換部120は、レジデュアル信号に変換技法を適用して変換係数(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)を用いて予測信号を生成し、それに基づいて取得される変換を意味する。変換過程は、正方形の同じサイズを有するピクセルブロックに適用されることもでき、正方形ではない、可変サイズのブロックに適用されることもできる。
量子化部130は、変換係数を量子化してエントロピー符号化部190に伝送することができる。エントロピー符号化部190は、量子化された信号(量子化された変換係数に関する情報)を符号化してビットストリーム形式で出力することができる。前記量子化された変換係数に関する情報は、レジデュアル情報と呼ばれることができる。量子化部130は、係数スキャン順序(scan order)に基づいて、ブロック形式の量子化された変換係数を1次元ベクトル形式で再整列することができ、前記1次元ベクトル形式の量子化された変換係数に基づいて、前記量子化された変換係数に関する情報を生成することもできる。
エントロピー符号化部190は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などの様々な符号化方法を行うことができる。エントロピー符号化部190は、量子化された変換係数の他に、ビデオ/画像復元に必要な情報(例えば、シンタックス要素(syntax elements)の値など)を一緒に又は別々に符号化することもできる。符号化された情報(例えば、符号化されたビデオ/画像情報)は、ビットストリーム形式でNAL(network abstraction layer)ユニット単位で伝送又は保存されることができる。前記ビデオ/画像情報は、適応パラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)又はビデオパラメータセット(VPS)などの様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。本開示で言及されたシグナリング情報、伝送される情報及び/又はシンタックス要素は、上述した符号化手順を介して符号化されて前記ビットストリームに含まれることができる。
前記ビットストリームは、ネットワークを介して伝送されることができ、又はデジタル記憶媒体に保存されることができる。ここで、ネットワークは、放送網及び/又は通信網などを含むことができ、デジタル記憶媒体は、USB、SD、CD、DVD、Blu-ray、HDD、SSDなどのさまざまな記憶媒体を含むことができる。エントロピー符号化部190から出力された信号を伝送する伝送部(図示せず)及び/又は保存する保存部(図示せず)が画像符号化装置100の内/外部要素として備えられることができ、又は伝送部はエントロピー符号化部190の構成要素として備えられることもできる。
量子化部130から出力された、量子化された変換係数は、レジデュアル信号を生成するために用いられることができる。例えば、量子化された変換係数に逆量子化部140及び逆変換部150を介して逆量子化及び逆変換を適用することにより、レジデュアル信号(レジデュアルブロック又はレジデュアルサンプル)を復元することができる。
加算部155は、復元されたレジデュアル信号をインター予測部180又はイントラ予測部185から出力された予測信号に加えることにより、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部155は、復元部又は復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するようにフィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
フィルタリング部160は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部160は、復元ピクチャに様々なフィルタリング方法を適用して、修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ170、具体的にはメモリ170のDPBに保存することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、双方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部160は、各フィルタリング方法についての説明で後述するようにフィルタリングに関する様々な情報を生成してエントロピー符号化部190に伝達することができる。フィルタリングに関する情報は、エントロピー符号化部190で符号化されてビットストリーム形式で出力されることができる。
メモリ170に伝送された、修正された復元ピクチャは、インター予測部180で参照ピクチャとして使用されることができる。画像符号化装置100は、これを介してインター予測が適用される場合、画像符号化装置100と画像復号化装置での予測ミスマッチを回避することができ、符号化効率も向上させることができる。
メモリ170内のDPBは、インター予測部180での参照ピクチャとして使用するために、修正された復元ピクチャを保存することができる。メモリ170は、現在ピクチャ内の動き情報が導出された(又は符号化された)ブロックの動き情報及び/又は既に復元されたピクチャ内ブロックの動き情報を保存することができる。前記保存された動き情報は、空間周辺ブロックの動き情報又は時間周辺ブロックの動き情報として活用するために、インター予測部180に伝達されることができる。メモリ170は、現在ピクチャ内の復元されたブロックの復元サンプルを保存することができ、イントラ予測部185に伝達することができる。
画像復号化装置の概要
図3は、本開示による実施例が適用できる画像復号化装置を概略的に示す図である。
図3に示されているように、画像復号化装置200は、エントロピー復号化部210、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、メモリ250、インター予測部260及びイントラ予測部265を含んで構成できる。インター予測部260及びイントラ予測部265を合わせて「予測部」と呼ばれることができる。逆量子化部220、逆変換部230はレジデュアル処理部に含まれることができる。
画像復号化装置200を構成する複数の構成部の全部又は少なくとも一部は、実施例によって一つのハードウェアコンポーネント(例えば、デコーダ又はプロセッサ)で実現されることができる。また、メモリ170は、DPBを含むことができ、デジタル記憶媒体によって実現できる。
ビデオ/画像情報を含むビットストリームを受信した画像復号化装置200は、図2の画像符号化装置100で行われたプロセスに対応するプロセスを実行して画像を復元することができる。例えば、画像復号化装置200は、画像符号化装置で適用された処理ユニットを用いて復号化を行うことができる。したがって、復号化の処理ユニットは、例えばコーディングユニットであることができる。コーディングユニットは、コーディングツリーユニット又は最大コーディングユニットを分割して取得できる。そして、画像復号化装置200を介して復号化及び出力された復元画像信号は、再生装置(図示せず)を介して再生できる。
画像復号化装置200は、図2の画像符号化装置から出力された信号をビットストリーム形式で受信することができる。受信された信号は、エントロピー復号化部210を介して復号化できる。例えば、エントロピー復号化部210は、前記ビットストリームをパーシングして画像復元(又はピクチャ復元)に必要な情報(例えば、ビデオ/画像情報)を導出することができる。前記ビデオ/画像情報は、適応パラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)又はビデオパラメータセット(VPS)などの様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。画像復号化装置は、画像を復号化するために、前記パラメータセットに関する情報及び/又は前記一般制限情報をさらに用いることができる。本開示で言及されたシグナリング情報、受信される情報及び/又はシンタックス要素は、前記復号化手順を介して復号化されることにより、前記ビットストリームから取得されることができる。例えば、エントロピー復号化部210は、指数ゴロム符号化、CAVLC又はCABACなどのコーディング方法に基づいてビットストリーム内の情報を復号化し、画像復元に必要なシンタックス要素の値、レジデュアルに関する変換係数の量子化された値を出力することができる。より詳細には、CABACエントロピー復号化方法は、ビットストリームから各シンタックス要素に該当するビン(bin)を受信し、復号化対象シンタックス要素情報と周辺ブロック及び復号化対象ブロックの復号化情報、或いは以前ステップで復号化されたシンボル/ビンの情報を用いてコンテキスト(context)モデルを決定し、決定されたコンテキストモデルに基づいてビン(bin)の発生確率を予測してビンの算術復号化(arithmetic decoding)を行うことにより、各シンタックス要素の値に該当するシンボルを生成することができる。この時、CABACエントロピー復号化方法は、コンテキストモデルの決定後、次のシンボル/ビンのコンテキストモデルのために、復号化されたシンボル/ビンの情報を用いてコンテキストモデルを更新することができる。エントロピー復号化部210で復号化された情報のうち、予測に関する情報は、予測部(インター予測部260及びイントラ予測部265)に提供され、エントロピー復号化部210でエントロピー復号化が行われたレジデュアル値、すなわち量子化された変換係数及び関連パラメータ情報は、逆量子化部220に入力されることができる。また、エントロピー復号化部210で復号化された情報のうち、フィルタリングに関する情報は、フィルタリング部240に提供されることができる。一方、画像符号化装置から出力された信号を受信する受信部(図示せず)が画像復号化装置200の内/外部要素としてさらに備えられることができ、又は受信部はエントロピー復号化部210の構成要素として備えられることもできる。
一方、本開示による画像復号化装置は、ビデオ/画像/ピクチャ復号化装置と呼ばれることができる。前記画像復号化装置は、情報デコーダ(ビデオ/画像/ピクチャ情報デコーダ)及び/又はサンプルデコーダ(ビデオ/画像/ピクチャサンプルデコーダ)を含むこともできる。前記情報デコーダは、エントロピー復号化部210を含むことができ、前記サンプルデコーダは、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、メモリ250、インター予測部260及びイントラ予測部265のうちの少なくとも一つを含むことができる。
逆量子化部220では、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部220は、量子化された変換係数を2次元のブロック形式で再整列することができる。この場合、前記再整列は、画像符号化装置で行われた係数スキャン順序に基づいて行われることができる。逆量子化部220は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて、量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得することができる。
逆変換部230では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得することができる。
予測部は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピー復号化部210から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか或いはインター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モード(予測技法)を決定することができる。
予測部が後述の様々な予測方法(技法)に基づいて予測信号を生成することができるのは、画像符号化装置100の予測部についての説明で述べたのと同様である。
イントラ予測部265は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。イントラ予測部185についての説明は、イントラ予測部265に対しても同様に適用されることができる。
インター予測部260は、参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。この時、インター予測モードで伝送される動き情報の量を減らすために、周辺ブロックと現在ブロックとの動き情報の相関性に基づいて動き情報をブロック、サブブロック又はサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測の場合に、周辺ブロックは、現在ピクチャ内に存在する空間周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間周辺ブロック(temporal neighboring block)を含むことができる。例えば、インター予測部260は、周辺ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出することができる。様々な予測モード(技法)に基づいてインター予測が行われることができ、前記予測に関する情報は、前記現在ブロックに対するインター予測のモード(技法)を指示する情報を含むことができる。
加算部235は、取得されたレジデュアル信号を予測部(インター予測部260及び/又はイントラ予測部265を含む)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることにより、復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用できる。加算部155についての説明は、加算部235に対しても同様に適用できる。加算部235は、復元部又は復元ブロック生成部と呼ばれることもある。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するようにフィルタリングを介して次のピクチャのインター予測のために使用されることもできる。
フィルタリング部240は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部240は、復元ピクチャに様々なフィルタリング方法を適用して、修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ250、具体的にはメモリ250のDPBに保存することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、双方向フィルタ(bilateral filter)などを含むことができる。
メモリ250のDPBに保存された(修正された)復元ピクチャは、インター予測部260で参照ピクチャとして使用されることができる。メモリ250は、現在ピクチャ内の動き情報が導出された(又は復号化された)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を保存することができる。前記保存された動き情報は、空間周辺ブロックの動き情報又は時間周辺ブロックの動き情報として活用するために、インター予測部260に伝達することができる。メモリ250は、現在ピクチャ内の復元されたブロックの復元サンプルを保存することができ、イントラ予測部265に伝達することができる。
本明細書において、画像符号化装置100のフィルタリング部160、インター予測部180及びイントラ予測部185で説明された実施例は、それぞれ画像復号化装置200のフィルタリング部240、インター予測部260及びイントラ予測部265にも、同様に又は対応するように適用されることができる。
インター予測の概要
以下、本開示によるインター予測について説明する。
本開示による画像符号化装置/画像復号化装置の予測部は、ブロック単位でインター予測を行って予測サンプルを導出することができる。インター予測は、現在ピクチャ以外のピクチャのデータ要素(例えば、サンプル値、又は動き情報など)に依存的な方法で導出される予測を示すことができる。現在ブロックにインター予測が適用される場合、参照ピクチャインデックスが指す参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)を基に、現在ブロックに対する予測されたブロック(予測ブロック又は予測サンプルアレイ)を誘導することができる。この時、インター予測モードで伝送される動き情報の量を減らすために、周辺ブロックと現在ブロックとの動き情報の相関性に基づいて現在ブロックの動き情報をブロック、サブブロック又はサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測が適用される場合、前記周辺ブロックは、現在ピクチャ内に存在する空間周辺ブロック(spatial neighboring block)と、参照ピクチャに存在する時間周辺ブロック(temporal neighboring block)を含むことができる。前記参照ブロックを含む参照ピクチャと、前記時間周辺ブロックを含む参照ピクチャとは、同一でもよく、異なってもよい。前記時間周辺ブロックは、コロケート参照ブロック(collocated reference block)、コロケートCU(colCU)、colブロック(colBlock)などの名前で呼ばれることができ、前記時間周辺ブロックを含む参照ピクチャは、コロケートピクチャ(collocated picture、colPic)、colピクチャ(col Picture)などの名前で呼ばれることができる。例えば、現在ブロックの周辺ブロックを基に動き情報候補リストが構成でき、前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出するために、どの候補が選択(使用)されるかを指すフラグ又はインデックス情報がシグナリングされることができる。
インター予測は、様々な予測モードに基づいて行われることができる。例えば、スキップモードとマージモードの場合、現在ブロックの動き情報は、選択された周辺ブロックの動き情報と同一であってもよい。スキップモードの場合、マージモードとは異なり、レジデュアル信号が伝送されないことができる。動き情報予測(motion vector prediction、MVP)モードの場合、選択された周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用い、動きベクトル差分(motion vector difference)はシグナリングされることができる。この場合、前記動きベクトル予測子及び動きベクトル差分の和を用いて前記現在ブロックの動きベクトルを導出することができる。本開示において、MVPモードは、AMVP(Advanced Motion Vector Prediction)と同じ意味で使用されることができる。
前記動き情報は、インター予測タイプ(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は、前記現在ピクチャよりも出力順序において以前のピクチャを参照ピクチャとして含むことができ、参照ピクチャリストL1は、前記現在ピクチャよりも出力順序において以後のピクチャを含むことができる。前記以前のピクチャは、順方向(参照)ピクチャと呼ばれることができ、前記以後のピクチャは、逆方向(参照ピクチャ)と呼ばれることができる。前記参照ピクチャリストL0は、前記現在ピクチャよりも出力順序において以後のピクチャを参照ピクチャとしてさらに含むことができる。この場合、前記参照ピクチャリストL0内で前記前ピクチャが先にインデックス化され、前記以後のピクチャは、その次にインデックス化されることができる。前記参照ピクチャリストL1は、前記現在ピクチャよりも出力順序において以前のピクチャを参照ピクチャとしてさらに含むことができる。この場合、前記参照ピクチャリストL1内で前記以後のピクチャが先にインデックス化され、前記以前のピクチャはその次にインデックス化されることができる。ここで、出力順序は、POC(picture order count)順序(order)に対応することができる。
図4は、インター予測ベースのビデオ/画像符号化方法を示すフローチャートである。
図5は、本開示によるインター予測部180の構成を例示的に示す図である。
図4の符号化方法は、図2の画像符号化装置によって行われることができる。具体的には、ステップS410は、インター予測部180によって行われることができ、ステップS420は、レジデュアル処理部によって行われることができる。具体的には、ステップS420は、減算部115によって行われることができる。ステップS430は、エントロピー符号化部190によって行われることができる。ステップS430の予測情報はインター予測部180によって導出され、ステップS430のレジデュアル情報はレジデュアル処理部によって導出されることができる。前記レジデュアル情報は前記レジデュアルサンプルに関する情報である。前記レジデュアル情報は、前記レジデュアルサンプルに対する量子化された変換係数に関する情報を含むことができる。前述したように、前記レジデュアルサンプルは、画像符号化装置の変換部120を介して変換係数として導出され、前記変換係数は、量子化部130を介して量子化された変換係数として導出されることができる。前記量子化された変換係数に関する情報がレジデュアルコーディング手順を介してエントロピー符号化部190で符号化されることができる。
図4及び図5を一緒に参照すると、画像符号化装置は、現在ブロックに対するインター予測を行うことができる(S410)。画像符号化装置は、現在ブロックのインター予測モード及び動き情報を導出し、前記現在ブロックの予測サンプルを生成することができる。ここで、インター予測モード決定、動き情報導出及び予測サンプル生成手順は、同時に行われてもよく、いずれか一つの手順が他の手順よりも先に行われてもよい。例えば、図5に示されているように、画像符号化装置のインター予測部180は、予測モード決定部181、動き情報導出部182、及び予測サンプル導出部183を含むことができる。予測モード決定部181で前記現在ブロックに対する予測モードを決定し、動き情報導出部182で前記現在ブロックの動き情報を導出し、予測サンプル導出部183で前記現在ブロックの予測サンプルを導出することができる。例えば、画像符号化装置のインター予測部180は、動き推定(motion estimation)を介して参照ピクチャの一定の領域(探索領域)内で前記現在ブロックと類似のブロックを探索し、前記現在ブロックとの差が最小又は一定の基準以下である参照ブロックを導出することができる。これに基づいて、前記参照ブロックが位置する参照ピクチャを指す参照ピクチャインデックスを導出し、前記参照ブロックと前記現在ブロックとの位置差に基づいて動きベクトルを導出することができる。画像符号化装置は、様々な予測モードのうち、前記現在ブロックに対して適用されるモードを決定することができる。画像符号化装置は、前記様々な予測モードに対するレート歪みコスト(Rate-Distortion(RD) cost)を比較し、前記現在ブロックに対する最適の予測モードを決定することができる。しかし、画像符号化装置が現在ブロックに対する予測モードを決定する方法は、上記の例に限定されず、様々な方法が利用できる。
例えば、現在ブロックにスキップモード又はマージモードが適用される場合、画像符号化装置は、前記現在ブロックの周辺ブロックからマージ候補を誘導し、誘導されたマージ候補を用いてマージ候補リストを構成することができる。また、画像符号化装置は、前記マージ候補リストに含まれているマージ候補が指す参照ブロックのうち、現在ブロックとの差が最小又は一定の基準以下である参照ブロックを導出することができる。この場合、前記導出された参照ブロックに関連するマージ候補が選択され、前記選択されたマージ候補を示すマージインデックス情報が生成されて画像復号化装置にシグナリングされることができる。前記選択されたマージ候補の動き情報を用いて前記現在ブロックの動き情報を導出することができる。
他の例として、前記現在ブロックにMVPモードが適用される場合、画像符号化装置は、前記現在ブロックの周辺ブロックからmvp(motion vector predictor)候補を誘導し、誘導されたmvp候補を用いてmvp候補リストを構成することができる。また、画像符号化装置は、前記mvp候補リストに含まれているmvp候補のうち、選択されたmvp候補の動きベクトルを前記現在ブロックのmvpとして用いることができる。この場合、例えば、前述した動き推定によって導出された参照ブロックを指す動きベクトルが前記現在ブロックの動きベクトルとして用いられることができ、前記mvp候補のうち、前記現在ブロックの動きベクトルとの差が最も小さい動きベクトルを持つmvp候補が、前記選択されたmvp候補になることができる。前記現在ブロックの動きベクトルから前記mvpを差し引いた差分であるMVD(motion vector difference)が導出されることができる。この場合、前記選択されたmvp候補を示すインデックス情報、及び前記MVDに関する情報が画像復号化装置にシグナリングされることができる。また、MVPモードが適用される場合、前記参照ピクチャインデックスの値は、参照ピクチャインデックス情報で構成されて別途に前記画像復号化装置にシグナリングされることができる。
画像符号化装置は、前記予測サンプルに基づいてレジデュアルサンプルを導出することができる(S420)。画像符号化装置は、前記現在ブロックの原本サンプルと前記予測サンプルとの比較によって前記レジデュアルサンプルを導出することができる。例えば、前記レジデュアルサンプルは、原本サンプルから対応する予測サンプルを減算することにより導出されることができる。
画像符号化装置は、予測情報及びレジデュアル情報を含む画像情報を符号化することができる(S430)。画像符号化装置は、符号化された画像情報をビットストリーム形式で出力することができる。前記予測情報は、前記予測手順に関連した情報であって、予測モード情報(例えば、skip flag、merge flag又はmode indexなど)及び動き情報に関する情報を含むことができる。前記予測モード情報のうち、skip flagは、現在ブロックに対してスキップモードが適用されるか否かを示す情報であり、merge flagは、現在ブロックに対してマージモードが適用されるか否かを示す情報である。又は、予測モード情報は、mode indexのように、複数の予測モードのうちのいずれか一つを指示する情報であってもよい。前記skip flagとmerge flagがそれぞれ0である場合、現在ブロックに対してMVPモードが適用されると決定されることができる。前記動き情報に関する情報は、動きベクトルを導出するための情報である候補選択情報(例えば、merge index、mvp flag又はmvp index)を含むことができる。前記候補選択情報のうち、merge indexは、現在ブロックに対してマージモードが適用される場合にシグナリングされることができ、マージ候補リストに含まれているマージ候補のうちのいずれか一つを選択するための情報であることができる。前記候補選択情報のうち、mvp flag又はmvp indexは、現在ブロックに対してMVPモードが適用される場合にシグナリングされることができ、mvp候補リストに含まれているmvp候補のうちのいずれか一つを選択するための情報であることができる。また、前記動き情報に関する情報は、上述したMVDに関する情報及び/又は参照ピクチャインデックス情報を含むことができる。また、前記動き情報に関する情報は、L0予測、L1予測、又は双(Bi)予測が適用されるか否かを示す情報を含むことができる。前記レジデュアル情報は、前記レジデュアルサンプルに関する情報である。前記レジデュアル情報は、前記レジデュアルサンプルに対する量子化された変換係数に関する情報を含むことができる。
出力されたビットストリームは、(デジタル)記憶媒体に保存されて画像復号化装置に伝達されることができ、又はネットワークを介して画像復号化装置に伝達されることもできる。
一方、前述したように、画像符号化装置は、前記参照サンプル及び前記レジデュアルサンプルに基づいて復元ピクチャ(復元サンプル及び復元ブロックを含むピクチャ)を生成することができる。これは、画像復号化装置で行われるのと同じ予測結果を画像符号化装置で導出するためであり、これによりコーディング効率を高めることができるためである。したがって、画像符号化装置は、復元ピクチャ(又は復元サンプル、復元ブロック)をメモリに保存し、インター予測のためのピクチャとして活用することができる。前記復元ピクチャにインループフィルタリング手順などがさらに適用できるのは、上述したとおりである。
図6は、インター予測ベースのビデオ/画像復号化方法を示すフローチャートであり、図7は、本開示によるインター予測部260の構成を例示的に示す図である。
画像復号化装置は、前記画像符号化装置で行われた動作と対応する動作を行うことができる。画像復号化装置は、受信された予測情報に基づいて現在ブロックに対する予測を行い、予測サンプルを導出することができる。
図6の復号化方法は、図3の画像復号化装置によって行われることができる。ステップS610乃至S630は、インター予測部260によって行われることができ、ステップS610の予測情報及びステップS640のレジデュアル情報は、エントロピー復号化部210によってビットストリームから取得されることができる。画像復号化装置のレジデュアル処理部は、前記レジデュアル情報に基づいて、現在ブロックに対するレジデュアルサンプルを導出することができる(S640)。具体的には、前記レジデュアル処理部の逆量子化部220は、前記レジデュアル情報に基づいて導出された、量子化された変換係数に基づいて、逆量子化を行って変換係数を導出し、前記レジデュアル処理部の逆変換部230は、前記変換係数に対する逆変換を行って前記現在ブロックに対するレジデュアルサンプルを導出することができる。ステップS650は、加算部235又は復元部によって行われることができる。
図6及び図7を一緒に参照すると、画像復号化装置は、受信された予測情報に基づいて、前記現在ブロックに対する予測モードを決定することができる(S610)。画像復号化装置は、前記予測情報内の予測モード情報に基づいて、前記現在ブロックにどのインター予測モードが適用されるかを決定することができる。
例えば、前記skip flagに基づいて、前記現在ブロックに前記スキップモードが適用されるか否かを決定することができる。また、前記merge flagに基づいて、前記現在ブロックに前記マージモードが適用されるか或いはMVPモードが決定されるかを決定することができる。又は、前記mode indexに基づいて、多様なインター予測モード候補のうちのいずれか一つを選択することができる。前記インター予測モード候補は、スキップモード、マージモード及び/又はMVPモードを含むことができ、又は後述する様々なインター予測モードを含むことができる。
画像復号化装置は、前記決定されたインター予測モードに基づいて前記現在ブロックの動き情報を導出することができる(S620)。例えば、画像復号化装置は、前記現在ブロックにスキップモード又はマージモードが適用される場合、後述するマージ候補リストを構成し、前記マージ候補リストに含まれているマージ候補のうちのいずれか一つを選択することができる。前記選択は、前述した候補選択情報(merge index)に基づいて行われることができる。前記選択されたマージ候補の動き情報を用いて前記現在ブロックの動き情報を導出することができる。例えば、前記選択されたマージ候補の動き情報が前記現在ブロックの動き情報として用いられることができる。
他の例として、画像復号化装置は、前記現在ブロックにMVPモードが適用される場合、mvp候補リストを構成し、前記mvp候補リストに含まれているmvp候補の中から選ばれたmvp候補の動きベクトルを前記現在ブロックのmvpとして用いることができる。前記選択は、前述した候補選択情報(mvp flag又はmvp index)に基づいて行われることができる。この場合、前記MVDに関する情報に基づいて、前記現在ブロックのMVDを導出することができ、前記現在ブロックのmvpと前記MVDに基づいて前記現在ブロックの動きベクトルを導出することができる。また、前記参照ピクチャインデックス情報に基づいて前記現在ブロックの参照ピクチャインデックスを導出することができる。前記現在ブロックに関する関連参照ピクチャリスト内で前記参照ピクチャインデックスが指すピクチャが、前記現在ブロックのインター予測のために参照される参照ピクチャとして導出されることができる。
画像復号化装置は、前記現在ブロックの動き情報に基づいて、前記現在ブロックに対する予測サンプルを生成することができる(S630)。この場合、前記現在ブロックの参照ピクチャインデックスに基づいて前記参照ピクチャを導出し、前記現在ブロックの動きベクトルが前記参照ピクチャ上で指す参照ブロックのサンプルを用いて前記現在ブロックの予測サンプルを導出することができる。場合に応じて、前記現在ブロックの予測サンプルのうち、全部又は一部に対する予測サンプルフィルタリング手順がさらに行われることができる。
例えば、図7に示されているように、画像復号化装置のインター予測部260は、予測モード決定部261、動き情報導出部262及び予測サンプル導出部263を含むことができる。画像復号化装置のインター予測部260は、予測モード決定部261から受信された予測モード情報に基づいて、前記現在ブロックに対する予測モードを決定し、動き情報導出部262から受信された動き情報に関する情報に基づいて前記現在ブロックの動き情報(動きベクトル及び/又は参照ピクチャインデックスなど)を導出し、予測サンプル導出部263で前記現在ブロックの予測サンプルを導出することができる。
画像復号化装置は、受信されたレジデュアル情報に基づいて、前記現在ブロックに対するレジデュアルサンプルを生成することができる(S640)。画像復号化装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて前記現在ブロックに対する復元サンプルを生成し、これに基づいて復元ピクチャを生成することができる(S650)。以後、前記復元ピクチャにインループフィルタ手順などがさらに適用できるのは、前述したとおりである。
前述したように、インター予測手順は、インター予測モード決定ステップ、決定された予測モードによる動き情報導出ステップ、導出された動き情報に基づく予測実行(予測サンプルの生成)ステップを含むことができる。前記インター予測手順は、前述したように画像符号化装置及び画像復号化装置で行われることができる。
サブピクチャの概要
以下、本開示によるサブピクチャについて説明する。
1つのピクチャはタイル単位に分割されることができ、それぞれのタイルはサブピクチャ単位にさらに分割されることができる。それぞれのサブピクチャは、1つ以上のスライスを含み、ピクチャ内で長方形領域を構成することができる。
図8はサブピクチャの一例を示す図である。
図8を参照すると、1つのピクチャは、18個のタイルに分割されることができる。前記ピクチャの左側には12個のタイルが配置されることができ、前記タイルのそれぞれは、16個のCTUからなる1つのサブピクチャ/スライスを含むことができる。また、前記ピクチャの右側には6つのタイルが配置されることができ、前記タイルのそれぞれは、4つのCTUからなる2つのサブピクチャ/スライスを含むことができる。その結果、前記ピクチャは24個のサブピクチャに分割され、前記サブピクチャのそれぞれは1つのスライスを含むことができる。
サブピクチャに関する情報(例えば、サブピクチャの個数やサイズなど)は、上位レベルシンタックス、例えばSPS、PPS及び/又はスライスヘッダーを介して符号化/シグナリングされることができる。
図9は、サブピクチャに関する情報を含むSPSの一例を示す図である。
図9を参照すると、SPSは、CLVS(coded layer video sequence)に対するサブピクチャ情報の存否を示すシンタックス要素subpic_info_present_flagを含むことができる。例えば、第1値(例えば、0)を有するsubpic_info_present_flagは、CLVSに対するサブピクチャ情報が存在せず、前記CLVSの各ピクチャ内に只1つのサブピクチャのみが存在することを示すことができる。これとは異なり、第2値(例えば、1)を有するsubpic_info_present_flagは、CLVSに対するサブピクチャ情報が存在し、前記CLVSの各ピクチャ内に1つ以上のサブピクチャが存在することを示すことができる。一例において、SPSを参照するCLVS内でピクチャ空間解像度(picture spatial resolution)が変更できる場合(例えば、res_change_in_clvs_allowed_flag==1)、subpic_info_present_flagの値は第1値(例えば、0)に制限されることができる。一方、ビットストリームがサブビットストリーム抽出プロセス(sub-bitstream extraction process)の結果として、前記サブビットストリーム抽出プロセスに対する入力ビットストリームのサブピクチャのサブセットのみを含む場合、subpic_info_present_flagの値は、第2値(例えば、1)に制限されることができる。
また、SPSは、サブピクチャの個数を示すシンタックス要素sps_num_subpics_minus1を含むことができる。例えば、sps_num_subpics_inus1に1を加えた値は、CLVS内の各ピクチャに含まれているサブピクチャの個数を示すことができる。一例において、sps_num_subpics_minus1の値は、0以上でCeil(pic_width_max_in_luma_samples/CtbSizeY)*Ceil(pic_height_max_in_luma_samples/CtbSizeY)以下の範囲を有するように制限されることができる。ここで、Ceil(x)は、xと同じかそれより大きい最も小さい整数値を出力するセーリング関数(ceiling function)であり得る。また、pic_width_max_in_luma_samplesは、各ピクチャのルマサンプル単位の最大幅を意味し、pic_height_max_in_luma_samplesは、各ピクチャのルマサンプル単位の最大高さを意味し、CtbSizeYは幅と高さの両方におけるそれぞれのルマ成分CTB(coding tree block)の配列サイズを意味することができる。一方、sps_num_subpics_minus1が存在しない場合、sps_num_subpics_minus1の値は第1値(例えば、0)と推論されることができる。
また、SPSは、サブピクチャ境界をピクチャ境界として扱うか否かを示すシンタックス要素sps_independent_subpics_flagを含むことができる。例えば、第2値(例えば、1)を有するsps_independent_subpics_flagは、CLVS内のすべてのサブピクチャ境界がピクチャ境界として扱われ、前記サブピクチャ境界を横切るループフィルタリングが行われないことを示すことができる。これとは異なり、第1値(例えば、0)を有するsps_independent_subpics_flagは、上述した制約事項が適用されないことを示すことができる。一方、sps_independent_subpics_flagが存在しない場合、sps_independent_subpics_flagの値は第1値(例えば、0)と推論されることができる。
また、SPSは、サブピクチャの位置及びサイズを示すシンタックス要素subpic_ctu_top_left_x[i]、subpic_ctu_top_left_y[i]、subpic_width_minus1[i]、及びsubpic_height_minus1[i]を含むことができる。
subpic_ctu_top_left_x[i]は、i番目のサブピクチャの左上側(top left)CTUの水平位置をCtbSizeY単位で表すことができる。一例において、subpic_ctu_top_left_x[i]の長さは、Ceil(Log2((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビット(bits)であり得る。一方、subpic_ctu_top_left_x[i]が存在しない場合、subpic_ctu_top_left_x[i]の値は第1値(例えば、0)と推論されることができる。
subpic_ctu_top_left_y[i]は、i番目のサブピクチャの左上側CTUの垂直位置をCtbSizeY単位で表すことができる。一例において、subpic_ctu_top_left_y[i]の長さは、Ceil(Log2((pic_height_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビット(bits)であり得る。一方、subpic_ctu_top_left_y[i]が存在しない場合、subpic_ctu_top_left_y[i]の値は第1値(例えば、0)と推論されることができる。
subpic_width_minus1[i]に1を加えた値は、i番目のサブピクチャの幅をCtbSizeY単位で表すことができる。一例において、subpic_width_minus1[i]の長さは、Ceil(Log2((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビット(bits)であり得る。一方、subpic_width_minus1[i]が存在しない場合、subpic_width_minus1[i]の値は((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-subpic_ctu_top_left_x[i]-1と推論されることができる。
subpic_height_minus1[i]に1を加えた値は、i番目のサブピクチャの高さをCtbSizeY単位で表すことができる。一例において、subpic_height_minus1[i]の長さは、Ceil(Log2((pic_height_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビット(bits)であり得る。一方、subpic_height_minus1[i]が存在しない場合、subpic_height_minus1[i]の値は((pic_height_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-subpic_ctu_top_left_y[i]-1と推論されることができる。
また、SPSは、サブピクチャが1つのピクチャとして扱われるか否かを示すsubpic_treated_as_pic_flag[i]を含むことができる。例えば、第1値(例えば、0)を有するsubpic_treated_as_pic_flag[i]は、CLVS内のそれぞれの符号化ピクチャ内のi番目のサブピクチャがインループフィルタリング動作を除く復号化プロセスで1つのピクチャとして扱われないことを示すことができる。これとは異なり、第2値(例えば、1)を有するsubpic_treated_as_pic_flag[i]は、CLVS内のそれぞれの符号化ピクチャのi番目のサブピクチャがインループフィルタリング動作を除く復号化プロセスにおいて1つのピクチャとして扱われることを示すことができる。subpic_treated_as_pic_flag[i]が存在しない場合、subpic_treated_as_pic_flag[i]の値は、前述したsps_independent_subpics_flagと同じ値と推論されることができる。一例において、subpic_treated_as_pic_flag[i]は、上述したsps_independent_subpics_flagが第1値(例えば、0)を有する場合(すなわち、サブピクチャ境界がピクチャ境界として扱われない場合)にのみ符号化/シグナリングされることができる。
一方、subpic_treated_as_pic_flag[i]が第2値(例えば、1)を有する場合、i番目のサブピクチャを含むレイヤーを出力レイヤーとして含む出力レイヤーセット(output layer set、OLS)内のそれぞれの出力レイヤー及びその参照レイヤーに対して、次の条件のすべてが真であることは、ビットストリーム適合性のための要求事項であり得る。
-(条件1)出力レイヤー及びその参照レイヤー内のすべてのピクチャは、同じ値のpic_width_in_luma_samples及び同じ値のpic_height_in_luma_samplesを有しなければならない。
-(条件2)出力レイヤー及びその参照レイヤーによって参照されるすべてのSPSは、同じ値のsps_num_subpics_minus1、及びそれぞれ同じ値のsubpic_ctu_top_left_x[j]、subpic_ctu_top_left_y[j]、subpic_width_minus1[j]、subpic_height_minus1[j]及びloop_filter_across_subpic_enabled_flag[j]を有しなければならない。ここで、jは、0以上でsps_num_subpics_minus1以下の範囲を有する。
また、SPSは、サブピクチャ境界を横切るインループフィルタリング動作が行われ得るか否かを示すシンタックス要素loop_filter_across_subpic_enabled_flag[i]を含むことができる。例えば、第1値(例えば、0)を有するloop_filter_across_subpic_enabled_flag[i]は、CLVS内のそれぞれの符号化ピクチャ内のi番目のサブピクチャの境界を横切るインループフィルタリング動作が行われないことを示すことができる。これとは異なり、第2値(例えば、1)を有するloop_filter_across_subpic_enabled_flag[i]は、CLVS内のそれぞれの符号化ピクチャ内のi番目のサブピクチャの境界を横切るインループフィルタリング動作が行われ得ることを示すことができる。loop_filter_across_subpic_enabled_flag[i]が存在しない場合、loop_filter_across_subpic_enabled_flag[i]の値は1-sps_independent_subpics_flagと同じ値と推論されることができる。一例において、loop_filter_across_subpic_enabled_flag[i]は、前述したsps_independent_subpics_flagが第1値(例えば、0)を有する場合(すなわち、サブピクチャ境界がピクチャ境界として扱われない場合)にのみ符号化/シグナリングされることができる。一方、ビットストリーム適合性のための要求事項として、サブピクチャの形態は、各サブピクチャが復号化されるときに、各サブピクチャの全体左境界及び全体上側境界がピクチャの境界、又は以前に復号化されたサブピクチャの境界で構成されるようにする形態でなければならない。
図10は、本開示の一実施例による画像符号化装置がサブピクチャを用いて画像を符号化する方法を示す図である。
画像符号化装置は、サブピクチャ構造に基づいて現在ピクチャを符号化することができる。又は、画像符号化装置は、現在ピクチャを構成する少なくとも1つのサブピクチャを符号化し、(符号化された)少なくとも1つのサブピクチャに関する(符号化された)情報を含む(サブ)ビットストリームを出力することができる。
図10を参照すると、画像符号化装置は、入力ピクチャを複数のサブピクチャに分割することができる(S1010)。そして、画像符号化装置は、サブピクチャに関する情報を生成することができる(S1020)。ここで、サブピクチャに関する情報は、例えば、サブピクチャの面積に関する情報及び/又はサブピクチャに使用するためのグリッドスペーシングに関する情報を含むことができる。また、サブピクチャに関する情報は、それぞれのサブピクチャが1つのピクチャとして扱われ得るか否かに関する情報及び/又はそれぞれのサブピクチャの境界を横切ってインループフィルタリングが行われ得るか否かに関する情報(boundary)を含むことができる。
画像符号化装置は、サブピクチャに関する情報に基づいて少なくとも1つのサブピクチャを符号化することができる。例えば、それぞれのサブピクチャは、サブピクチャに関する情報に基づいて独立して符号化されることができる。そして、画像符号化装置は、サブピクチャに関する情報を含む画像情報を符号化してビットストリームを出力することができる(S1030)。ここで、サブピクチャのためのビットストリームは、サブストリーム又はサブビットストリームと呼ばれることがある。
図11は、本開示の一実施例による画像復号化装置がサブピクチャを用いて画像を復号化する方法を示す図である。
画像復号化装置は、現在ピクチャに含まれている少なくとも1つのサブピクチャを(サブ)ビットストリームから取得される(符号化された)少なくとも1つのサブピクチャに関する(符号化された)情報を用いて復号化することができる。
図11を参照すると、画像復号化装置は、ビットストリームからサブピクチャに関する情報を取得することができる(S1110)。ここで、ビットストリームは、サブピクチャのためのサブストリーム又はサブビットストリームを含むことができる。サブピクチャに関する情報は、ビットストリームの上位レベルシンタックスに構成されることができる。そして、画像復号化装置は、サブピクチャに関する情報に基づいて少なくとも1つのサブピクチャを誘導することができる(S1120)。
画像復号化装置は、サブピクチャに関する情報に基づいて少なくとも1つのサブピクチャを復号化することができる(S1130)。例えば、現在ブロックを含む現在サブピクチャが一つのピクチャとして扱われる場合、現在サブピクチャは独立して復号化されることができる。また、現在サブピクチャの境界を横切ってインループフィルタリングが行われることができる場合、現在サブピクチャの境界及び前記境界に隣接した隣接サブピクチャの境界に対して、インループフィルタリング(例えば、デブロッキングフィルタリング)が行われ得る。また、現在サブピクチャの境界がピクチャ境界と一致する場合、現在サブピクチャの境界を横切るインループフィルタリングは行われないことができる。画像復号化装置は、CABAC方法、予測方法、レジデュアル処理方法(変換、量子化)、インループフィルタリング方式などに基づいてサブピクチャを復号化することができる。そして、画像復号化装置は、復号化された少なくとも1つのサブピクチャを出力するか、或いは少なくとも1つのサブピクチャを含む現在ピクチャを出力することができる。復号化されたサブピクチャは、OPS(output sub-picture set)の形態で出力されることができる。例えば、360度画像又は全方向画像に関連して、現在ピクチャの一部のみがレンダリングされる場合、現在ピクチャ内のすべてのサブピクチャのうちの一部のサブピクチャのみが復号化されることができ、復号化されたサブピクチャのうちの全部又は一部がユーザのビューポートに従ってレンダリングされることができる。
ラップアラウンドの概要
現在ブロックにインター予測が適用される場合、現在ブロックの動きベクトルによって特定される参照ブロックに基づいて現在ブロックの予測ブロックが誘導されることができる。このとき、前記参照ブロック内の少なくとも1つの参照サンプルが参照ピクチャの境界から外れる場合、前記参照サンプルのサンプル値は、前記参照ピクチャの境界又は最外郭に存在する隣接サンプルのサンプル値に置き換えられることができる。これをパディング(padding)と呼び、前記参照ピクチャの境界は前記パディングを介して拡張されることができる。
一方、参照ピクチャが360度画像から取得される場合、前記参照ピクチャの左境界と右境界との間には連続性が存在することができる。これにより、前記参照ピクチャの左境界(又は右境界)に隣接しているサンプルは、前記ピクチャの右境界(又は左境界)に隣接しているサンプルと同一/類似のサンプル値及び/又は動き情報を有することができる。このような特性に基づいて、参照ブロック内で参照ピクチャの境界から外れる少なくとも1つの参照サンプルは、前記参照サンプルに対応する前記参照ピクチャ内の隣接サンプルに置き換えられることができる。これを(水平)ラップアラウンド(wrap-around)動き補償と呼び、現在ブロックの動きベクトルは、前記ラップアラウンド動き補償を介して参照ピクチャの内部を指すように調整されることができる。
ラップアラウンド動き補償は、復元された画像/ビデオ、例えばERPフォーマットで投影された360度画像/ビデオの視覚的品質(visual quality)を向上させるためにデザインされたコーディングツールを意味する。既存の動き補償過程によれば、現在ブロックの動きベクトルが参照ピクチャの境界から外れるサンプルを指す場合、前記境界から外れたサンプルのサンプル値は、繰り返しパディングを介して前記境界に最も近い隣接サンプルのサンプル値を複写することにより誘導されることができる。しかし、360度画像/ビデオは、球形に取得され、本質的に画像境界を有しないため、投影されたドメイン(2次元ドメイン)上で参照ピクチャの境界から外れる参照サンプルは、常に旧ドメイン(3次元ドメイン)上で前記参照サンプルに隣接している隣接サンプルから取得されることができる。したがって、繰り返しパディングは、360度画像/ビデオに対しては不適合であり、復元されたビューポート画像/ビデオ内でシームアーティファクト(seam artifact)と呼ばれる視覚的アーティファクトを誘発する可能性がある。
一方、一般的な投影方法が適用される場合、2D-to-3D及び3D-to-2D座標変換が分数サンプル位置に対するサンプル補間と共に行われるので、旧ドメイン上でラップアラウンド動き補償のための隣接サンプルを取得することは困難であり得る。しかしながら、ERP投影方法が適用される場合、参照ピクチャの左境界(又は右境界)から外れる球形の隣接サンプルは、前記参照ピクチャの右境界(又は左境界)内のサンプルから比較的容易に取得されることができる。したがって、ERP投影方法の相対的な実現容易性及びその広範な使用を考慮するとき、ラップアラウンド動き補償は、ERPフォーマットで符号化された360度画像/ビデオに対してより効果的であり得る。
図12は、2次元ピクチャに変換された360度画像の一例を示す図である。
図12を参照すると、360度画像1210は、投影過程を介して2次元ピクチャ1230に変換されることができる。2次元ピクチャ1230は、360度画像1210に適用された投影方法に応じて、ERP(equi-rectangular projection)フォーマット又はPERP(Padded ERP)フォーマットなどの様々な投影フォーマットを有することができる。
360度画像1210は、全方位から取得される画像特性上、画像境界を有さない。しかし、360度画像1210から取得される2次元ピクチャ1230は、投影過程により画像境界を有する。このとき、2次元ピクチャ1230の左境界LBd及び右境界RBdは、360度画像1210内で一つのラインRLを構成して互いに当接していてもよい。したがって、2次元ピクチャ1230内で前記左境界LBd及び前記右境界RBdに隣接しているサンプル間の類似度は相対的に高くてもよい。
一方、360度画像1210内の所定の領域は、基準となる画像境界に応じて2次元ピクチャ1230の内部領域又は外部領域に対応することができる。例えば、2次元ピクチャ1230の左境界LBdを基準とするとき、360度画像1210内のA領域は、2次元ピクチャ1230の外部に存在するA1領域に対応することができる。逆に、2次元ピクチャ1230の右境界RBdを基準とするとき、360度画像1210内のA領域は、2次元ピクチャ1230の内部に存在するA2領域に対応することができる。A1領域及びA2領域は、360度画像1210を基準として同じA領域に対応するという点で、互いに同一/類似のサンプル属性を有することができる。
このような特性に基づいて、2次元ピクチャ1230の左境界LBdから外れた外部サンプルは、ラップアラウンド動き補償を介して第1方向DIR1に所定の距離だけ離隔した位置に存在する2次元ピクチャ1230の内部サンプルに置き換えられることができる。例えば、A1領域に含まれる2次元ピクチャ1230の外部サンプルは、A2領域に含まれる2次元ピクチャ1230の内部サンプルに置き換えられることができる。同様に、2次元ピクチャ1230の右境界RBdから外れた外部サンプルは、ラップアラウンド動き補償を介して第2方向DIR2に所定の距離だけ離隔した位置に存在する2次元ピクチャ1230の内部サンプルに置き換えられることができる。
図13は、ラップアラウンド動き補償過程の一例を示す図である。
図13を参照すると、現在ブロック1310にインター予測が適用される場合、参照ブロック1330に基づいて現在ブロック1310の予測ブロックが誘導されることができる。
参照ブロック1330は、現在ブロック1310の動きベクトル1320によって特定されることができる。一例において、動きベクトル1320は、参照ピクチャ内で現在ブロック1310と同じ位置に存在する同一位置ブロック1315の左上側位置を基準に参照ブロック1330の左上側位置を指し示すことができる。
参照ブロック1330は、図13に示すように、参照ピクチャの左境界から外れる第1領域1335を含むことができる。第1領域1335は、現在ブロック1310のインター予測に利用できないので、ラップアラウンド動き補償を介して参照ピクチャ内の第2領域1340に置き換えられることができる。第2領域1340は、旧ドメイン(3次元ドメイン)上で第1領域1335と共に同じ領域に対応することができ、第2領域1340の位置は、第1領域1335の所定の位置(例えば、左上側位置)にラップアラウンドオフセットを加算することにより特定されることができる。
ラップアラウンドオフセットは、現在ピクチャのパディング前のERP幅(ERP width)に設定できる。ここで、ERP幅(ERP width)とは、360度画像から取得されるERPフォーマットの原本ピクチャ(すなわち、ERPピクチャ)の幅を意味することができる。ERPピクチャの左境界及び右境界に対して水平方向のパディング過程が行われることができる。これにより、現在ピクチャの幅(PicWidth)は、ERP幅(ERP width)、ERPピクチャの左境界に対するパディング量(left padding)、及びERPピクチャの右境界に対するパディング量(right padding)を全て合わせた値に決定できる。一方、ラップアラウンドオフセットは、上位レベルシンタックス内の所定のシンタックス要素(例えば、pps_ref_wraparound_offset)を用いて符号化/シグナリングされることができる。前記シンタックス要素は、ERPピクチャの左境界及び右境界に対するパディング量によって影響を受けず、その結果、原本ピクチャに対する非対称的パディング(asymmetric padding)が支援されることができる。すなわち、ERPピクチャの左境界に対するパディング量(left padding)と右境界に対するパディング量(right padding)とは互いに異なり得る。
前述したラップアラウンド動き補償に関する情報(例えば、活性化の有無、ラップアラウンドオフセットなど)は、上位レベルシンタックス、例えばSPS及び/又はPPSを介して符号化/シグナリングされることができる。
図14aは、ラップアラウンド動き補償に関する情報を含むSPSの一例を示す図である。
図14aを参照すると、SPSは、シーケンスレベルでラップアラウンド動き補償を適用するか否かを示すシンタックス要素sps_ref_wraparound_enabled_flagを含むことができる。例えば、第1値(例えば、0)を有するsps_ref_wraparound_enabled_flagは、現在ブロックを含む現在ビデオシーケンスに対してラップアラウンド動き補償が適用されないことを示すことができる。これとは異なり、第2値(例えば、1)を有するsps_ref_wraparound_enabled_flagは、現在ブロックを含む現在ビデオシーケンスに対してラップアラウンド動き補償が適用されることを示すことができる。一例において、現在ビデオシーケンスに対するラップアラウンド動き補償は、ピクチャ幅(例えば、pic_width_in_luma_samples)及びCTB幅(CtbSizeY)が下記の条件を満たす場合にのみ適用されることができる。
-(条件)(CtbSizeY/MinCbSizeY+1)≧(pic_width_in_luma_samples/MinCbSizeY-1)
上記の条件を満たさない場合、例えば、(CtbSizeY/MinCbSizeY+1)の値が(pic_width_in_luma_samples/MinCbSizeY-1)の値より大きい場合、sps_ref_wraparound_enabled_flagは、第1値(例えば、0)に制限されることができる。ここで、CtbSizeYはルマ成分CTBの幅又は高さを意味し、MinCbSizeYはルマ成分CB(coding block)の最小幅又は最小高さを意味することができる。また、pic_width_max_in_luma_samplesは、各ピクチャのルマサンプル単位の最大幅を意味することができる。
図14bは、ラップアラウンド動き補償に関する情報を含むPPSの一例を示す図である。
図14bを参照すると、PPSは、ピクチャレベルでラップアラウンド動き補償を適用するか否かを示すシンタックス要素pps_ref_wraparound_enabled_flagを含むことができる。
図14bを参照すると、PPSは、シーケンスレベルでラップアラウンド動き補償を適用するか否かを示すシンタックス要素pps_ref_wraparound_enabled_flagを含むことができる。例えば、第1値(例えば、0)を有するpps_ref_wraparound_enabled_flagは、現在ブロックを含む現在ピクチャに対してラップアラウンド動き補償が適用されないことを示すことができる。これとは異なり、第2値(例えば、1)を有するpps_ref_wraparound_enabled_flagは、現在ブロックを含む現在ピクチャに対してラップアラウンド動き補償が適用されることを示すことができる。一例において、現在ピクチャに対するラップアラウンド動き補償は、ピクチャ幅(例えば、pic_width_in_luma_samples)がCTB幅(CtbSizeY)より大きい場合にのみ適用されることができる。例えば、(CtbSizeY/MinCbSizeY+1)の値が(pic_width_in_luma_samples/MinCbSizeY-1)の値より大きい場合、pps_ref_wraparound_enabled_flagは、第1値(例えば、0)に制限されることができる。他の例において、sps_ref_wraparoud_enabled_flagが第1値(例えば、0)を有する場合、pps_ref_wraparound_enabled_flagの値は第1値(例えば、0)に制限されることができる。
また、PPSは、ラップアラウンド動き補償のオフセットを示すシンタックス要素pps_ref_wraparound_offsetを含むことができる。例えば、pps_ref_wraparound_offsetに((CtbSizeY/MinCbSizeY)+2)を加えた値は、ルマサンプル単位でラップアラウンドの位置を算出するためのラップアラウンドオフセットを示すことができる。pps_ref_wraparound_offsetの値は、0以上で((pic_width_in_luma_samples/MinCbSizeY)-(CtbSizeY/MinCbSizeY)-2)以下の値を有することができる。一方、変数PpsRefWraparoundOffsetは、(pps_ref_wraparound_offset+(CtbSizeY/MinCbSizeY)+2)と同じ値に設定されることができる。前記変数PpsRefWraparoundOffsetは、参照ピクチャの境界から外れる参照サンプルをクリッピングする過程に用いられることができる。
一方、現在ピクチャが複数のサブピクチャに分割されている場合、ラップアラウンド動き補償は、各サブピクチャの属性に基づいて選択的に行われることができる。
図15は、画像復号化装置がサブピクチャ属性に基づいてラップアラウンド動き補償を行う方法を示すフローチャートである。
図15を参照すると、画像復号化装置は、現在サブピクチャが独立してコーディングされるか否かを判断することができる(S1510)。
現在サブピクチャが独立してコーディングされる場合(S1510の「YES」)、画像復号化装置は、現在ブロックに対する動き補償のために、参照サンプルの位置をサブピクチャ境界を基準にクリッピングすることができる(S1520)。前記動作は、ルマサンプルバイリニア補間手順(Luma sample bilinear interpolation process)、ルマサンプル補間フィルタリング手順(Luma sample interpolation process)、ルマ整数サンプルフェッチング手順(Luma integer sample fetching process)、及びクロマサンプル補間手順(Chroma sample interpolation process)のうちのいずれか一つを用いて行われることができる。
現在サブピクチャが独立してコーディングされない場合(S1510の「NO」)、画像符号化装置は、現在ブロックに対してラップアラウンド動き補償が利用可能であるか否かを判断することができる(S1530)。
現在ブロックに対してラップアラウンド動き補償が利用可能であるか否かは、所定の変数(例えば、refWraparoundEnabledFlag)に基づいて決定されることができる。例えば、refWraparoundEnabledFlagが第1値(例えば、0)を有する場合、現在ブロックに対してラップアラウンド動き補償は利用可能でなくてもよい。これとは異なり、refWraparoundEnabledFlagが第2値(例えば、1)を有する場合、現在ブロックに対してラップアラウンド動き補償は利用可能であり得る。一例において、refWraparoundEnabledFlagの値は、上位レベルシンタックス、例えばピクチャパラメータセットから取得される所定のフラグ(例えば、pps_ref_wraparound_enabled_flag)に基づいて導出されることができる。
現在ブロックに対してラップアラウンド動き補償が利用可能である場合(S1530の「YES」)、画像復号化装置は、ラップアラウンドオフセットを用いて参照サンプルの位置を修正することができる(S1540)。例えば、画像復号化装置は、参照サンプルのx座標をラップアラウンドオフセット(例えば、PpsRefWraparoundOffset*MinCbSizeY)だけ正方向又は負方向にシフトすることにより、参照サンプルの位置を修正することができる。そして、画像復号化装置は、現在ブロックに対する動き補償のために、前記修正された参照サンプルの位置を参照ピクチャの境界を基準にクリッピングすることができる(S1550)。
これとは異なり、現在ブロックに対してラップアラウンド動き補償が利用可能でない場合(S1530の「NO」)、画像復号化装置は、現在ブロックに対する動き補償のために参照ピクチャの境界を基準に参照サンプルの位置をクリッピングすることができる(S1560)。
一方、上述したクリッピング動作は、ルマサンプルバイリニア補間手順を用いて行われることができる。その具体的な一例は、下記表1の通りである。
Figure 2023518990000002
表1を参照すると、整数サンプル単位における参照サンプルのルマ位置(xInti,yInti)は、所定のクリッピング関数(Clip3,ClipH)を用いて参照ピクチャ境界又はサブピクチャ境界内に調整されることができる。ここで、Clip3(x,y,z)は、zがxより小さい場合にはxを出力し、zがyより大きい場合にはyを出力し、その他の場合にはzを出力する関数を意味する。また、ClipH(x,y,z)は、zが0より小さい場合にはz+xを出力し、zがy-1より大きい場合にはz-xを出力し、その他の場合にはzを出力する関数を意味する。
現在サブピクチャが独立してコーディングされる場合、プロセス1が行われることができる。具体的には、参照サンプルのx座標及びy座標に対してサブピクチャ境界を基準としたクリッピング動作が行われることができる(A110,A120)。プロセス1において、SubpicLeftBoundaryPosはサブピクチャ左境界を示し、SubpicRightBoundaryPosはサブピクチャ右境界を示し、SubpicTopBoundaryPosはサブピクチャ上側境界を示し、SubpicBotBoundaryPosはサブピクチャ下側境界を示すことができる。
現在サブピクチャが独立してコーディングされない場合、プロセス2が行われることができる。具体的には、参照サンプルのx座標に対しては、現在ブロックに対してラップアラウンド動き補償が利用可能であるか否か(例えば、refWraparoundEnabledFlag==1)に応じて、ラップアラウンドオフセット(例えば、PpsRefWraparoundOffset)が選択的に適用でき、選択的に適用されたx座標に対して参照ピクチャ境界を基準としたクリッピング動作が行われることができる(A130)。これとは異なり、参照サンプルのy座標に対しては、前記ラップアラウンド動き補償が利用可能であるか否かに関係なく、参照ピクチャ境界を基準としたクリッピング動作が行われることができる(A140)。プロセス2において、picWは参照ピクチャの幅を示し、picHは参照ピクチャの高さを示すことができる。
又は、上述したクリッピング動作は、ルマサンプル補間フィルタリング手順を用いて行われることができる。その具体的な一例は、下記表2の通りである。
Figure 2023518990000003
表2を参照すると、整数サンプル単位における参照サンプルのルマ位置(xInti,yInti)は、所定のクリッピング関数(Clip3,ClipH)を用いて参照ピクチャ境界又はサブピクチャ境界内に調整されることができる。表1との重複説明は省略する。
現在サブピクチャが独立してコーディングされるか否かに応じて、プロセス1又はプロセス2が選択的に行われることができる。また、ラップアラウンド動き補償は、現在サブピクチャが独立してコーディングされていない場合(プロセス2)、参照サンプルのx座標に対してのみ行われることができる(A230)。
又は、上述したクリッピング動作は、ルマ整数サンプルフェッチング手順を用いて行われることができる。その具体的な一例は、下記表3の通りである。
Figure 2023518990000004
表3を参照すると、整数サンプル単位における参照サンプルのルマ位置(xInt,yInt)は、所定のクリッピング関数(Clip3,ClipH)を用いて参照ピクチャ境界又はサブピクチャ境界内に調整されることができる。表1との重複説明は省略する。
現在サブピクチャが独立してコーディングされるか否かに応じて、プロセス1又はプロセス2が選択的に行われることができる。また、ラップアラウンド動き補償は、現在サブピクチャが独立してコーディングされていない場合(プロセス2)、参照サンプルのx座標に対してのみ行われることができる(A330)。
また、上述したクリッピング動作は、クロマサンプル補間手順を用いて行われることができる。その具体的な一例は、下記表4の通りである。
Figure 2023518990000005
表4を参照すると、整数サンプル単位における参照サンプルのルマ位置(xInt,yInt)は、所定のクリッピング関数(Clip3,ClipH)を用いて参照ピクチャ境界又はサブピクチャ境界内に調整されることができる。このとき、参照ピクチャ境界又はサブピクチャ境界は、表1乃至表3を参照して前述した方法とは異なり、クロマサンプルを基準に決定されることができる。例えば、SubWidthC及びSubHeightCは、それぞれルマサンプルとクロマサンプルとの幅比及び高さ比を示すことができる。そして、クロマサンプルを基準に、サブピクチャ左境界は(SubpicLeftBoundaryPos/SubWidthC)、サブピクチャ右境界は(SubpicRightBoundaryPos/SubWidthC)、サブピクチャ上側境界は(SubpicTopBoundaryPos/SubWidthC)、及びサブピクチャ下側境界は(SubpicBotBoundaryPos/SubWidthC)と決定されることができる。
現在サブピクチャが独立してコーディングされるか否かに応じて、プロセス1又はプロセス2が選択的に行われることができる。また、ラップアラウンド動き補償は、現在サブピクチャが独立してコーディングされていない場合(プロセス2)、参照サンプルのx座標に対してのみ行われることができる(A430)。
一方、図15の方法は画像符号化装置によって行われることもでき、これは通常の技術者にとって自明である。
以上、図15の方法によれば、現在ブロックに対するラップアラウンド動き補償は、現在サブピクチャが独立してコーディングされていない場合にのみ行われることができる。その結果、ラップアラウンド関連コーディングツールを、サブピクチャの独立的コーディングを前提とする様々なサブピクチャ関連コーディングツールと一緒に利用することができなくなるという問題が生じる。これは、ERPピクチャ又はPERPピクチャなどのように境界間連続性が存在するピクチャに対して、符号化/復号化性能を低下させる要因として作用することができる。
このような問題を解決するために、本開示の実施例によれば、現在サブピクチャが独立してコーディングされる場合にも、所定の条件に応じてラップアラウンド動き補償が行われることができる。以下、本開示の実施例を詳細に説明する。
本開示の一実施例によれば、現在ビデオシーケンス内の独立してコーディングされた全てのサブピクチャがピクチャ幅と同じ幅を有する場合、現在ビデオシーケンス内の全てのサブピクチャに対してラップアラウンド動き補償が利用可能であり得る。
図16は、本開示の一実施例による画像符号化装置がラップアラウンド動き補償の利用可否を決定する方法を示すフローチャートである。
図16を参照すると、画像符号化装置は、現在ビデオシーケンス内に独立してコーディングされる1つ以上のサブピクチャが存在するか否かを判断することができる(S1610)。
判断の結果、現在ビデオシーケンス内に独立してコーディングされる1つ以上のサブピクチャが存在しない場合(S1610の「NO」)、画像符号化装置は、所定のラップアラウンド制約条件に基づいて現在ビデオシーケンスに対してラップアラウンド動き補償が利用可能であるか否かを決定することができる(S1640)。この場合、画像符号化装置は、前記決定に基づいて、現在ビデオシーケンスに対してラップアラウンド動き補償が利用可能であるか否かを示すフラグ情報(例えば、sps_wraparound_enabled_flag)を第1値(例えば、0)又は第2値(例えば、1)に符号化することができる。
前記ラップアラウンド制約条件の一例として、ビデオパラメータセット(VPS)によって特定される1つ以上の出力レイヤーセット(OLSs)に対してラップアラウンド動き補償が制限される場合、現在ビデオシーケンスに対してラップアラウンド動き補償は利用可能でないように制限されることができる。前記ラップアラウンド制約条件の他の例として、現在ビデオシーケンス内のすべてのサブピクチャが不連続なサブピクチャ境界を有する場合、現在ビデオシーケンスに対してラップアラウンド動き補償は利用可能でないように制限されることができる。
これとは異なり、現在ビデオシーケンス内に独立してコーディングされる1つ以上のサブピクチャが存在する場合(S1610の「YES」)、画像符号化装置は、独立してコーディングされるサブピクチャのうち、ピクチャ幅とは異なる幅を有するサブピクチャが存在するか否かを判断することができる(S1620)。
一実施例において、前記ピクチャ幅は、現在ビデオシーケンス内でピクチャが有することができる最大幅に基づいて、数式1のように誘導されることができる。
Figure 2023518990000006
ここで、pic_width_max_in_luma_samplesは、ピクチャの最大幅をルマサンプル単位で表し、CtbSizeYは、ピクチャ内のCTB(coding tree block)幅をルマサンプル単位で表し、CtbLog2SizeYは、CtbSizeYのログスケール値を表すことができる。
判断の結果、独立してコーディングされるサブピクチャのうちの少なくとも1つがピクチャ幅とは異なる幅を有する場合(S1620の「YES」)、画像符号化装置は、現在ビデオシーケンスに対してラップアラウンド動き補償が利用可能でないと決定することができる(S1630)。この場合、画像符号化装置は、前記決定に基づいて、sps_ref_wraparound_enabled_flagを第1値(例えば、0)に符号化することができる。
これとは異なり、独立してコーディングされる全てのサブピクチャがピクチャ幅と同じ幅を有する場合(S1620の「NO」)、画像符号化装置は、前述したラップアラウンド制約条件に基づいて現在ビデオシーケンスに対してラップアラウンド動き補償が利用可能であるか否かを決定することができる(S1640)。この場合、画像符号化装置は、前記決定に基づいて、sps_ref_wraparound_enabled_flagを第1値(例えば、0)又は第2値(例えば、1)に符号化することができる。
以上、図16では、ステップS1610及びステップS1620が順次行われると図示されているが、これは、例示的なものに過ぎず、本開示の実施例を限定するものではない。例えば、ステップS1620は、ステップS1610と同時に行われてもよく、ステップS1610よりも先に行われてもよい。
一方、画像符号化装置によって符号化されたsps_ref_wraparound_enabled_flagは、ビットストリームに保存されて画像復号化装置へシグナリングされることができる。この場合、画像復号化装置は、ビットストリームから取得されるsps_ref_wraparound_enabled_flagに基づいて、現在ビデオシーケンスに対してラップアラウンド動き補償が利用可能であるか否かを決定することができる。
例えば、sps_ref_wraparound_enabled_flagが第1値(例えば、0)を有する場合、画像復号化装置は、現在ビデオシーケンスに対してラップアラウンド動き補償が利用可能でないと決定し、現在ブロックに対してラップアラウンド動き補償を行わないことができる。この場合、現在ブロックの参照サンプル位置は、参照ピクチャ境界又はサブピクチャ境界を基準にクリッピングされることができ、クリッピングされた位置の参照サンプルを用いて動き補償が行われることができる。
すなわち、画像復号化装置は、現在ビデオシーケンス内に独立してコーディングされ、ピクチャ幅とは異なる幅を有する1つ以上のサブピクチャが存在するか否かを別途判断しなくても、本開示による正しい動き補償を行うことができる。しかし、画像復号化装置の動作は、これに限定されず、例えば、画像復号化装置は、現在ビデオシーケンス内に独立してコーディングされ、ピクチャ幅とは異なる幅を有する1つ以上のサブピクチャが存在するか否かを判断した後、その判断の結果に基づいて動き補償を行うこともできる。より具体的には、画像復号化装置は、現在ビデオシーケンス内に独立して復号化され、ピクチャ幅とは異なる幅を有する1つ以上のサブピクチャが存在するか否かを判断し、そのようなサブピクチャが存在する場合、sps_ref_wraparound_enabled_flagを第1値(例えば、0)と見なして、ラップアラウンド動き補償を行わないことができる。
これとは異なり、sps_ref_wraparound_enabled_flagが第2値(例えば、1)を有する場合、画像復号化装置は、現在ビデオシーケンスに対してラップアラウンド動き補償が利用可能であると決定することができる。この場合、画像復号化装置は、現在ピクチャに対してラップアラウンド動き補償が利用可能であるか否かを示すラップアラウンドフラグ(例えば、pps_ref_wraparound_enabled_flag)をビットストリームから追加取得し、前記取得されたラップアラウンドフラグ情報に基づいて現在ブロックに対してラップアラウンド動き補償を行うか否かを決定することができる。
例えば、pps_ref_wraparound_enabled_flagが第1値(例えば、0)を有する場合、画像復号化装置は、現在ブロックに対してラップアラウンド動き補償を行わないことができる。この場合、現在ブロックの参照サンプル位置は、参照ピクチャ境界又はサブピクチャ境界を基準にクリッピングされることができ、クリッピングされた位置の参照サンプルを用いて動き補償が行われることができる。これとは異なり、pps_ref_wraparound_enabled_flagが第2値(例えば、1)を有する場合、画像復号化装置は、現在ブロックに対してラップアラウンド動き補償を行うことができる。
以上、前述したように、現在ビデオシーケンス内の独立してコーディングされたすべてのサブピクチャがピクチャ幅と同じ幅を有する場合、現在ビデオシーケンス内の全てのサブピクチャに対してラップアラウンド動き補償が適用されることができる。これにより、サブピクチャ関連コーディングツール及びラップアラウンド動き補償関連コーディングツールを一緒に利用することができるので、符号化/復号化の効率はより向上することができる。
図17は、本開示の一実施例による画像復号化装置がサブピクチャ属性に基づいてラップアラウンド動き補償を行う方法を示すフローチャートである。
図17を参照すると、画像復号化装置は、現在サブピクチャが独立してコーディングされるか否かを判断することができる(S1710)。一例において、現在サブピクチャが独立してコーディングされるか否かは、上位レベルシンタックス、例えばSPS内の所定のフラグ(例えば、subpic_treated_as_pic_flag)に基づいて決定されることができる。例えば、subpic_treated_as_pic_flagが第1値(例えば、0)を有する場合、現在サブピクチャは独立してコーディングされないことができる。これとは異なり、subpic_treated_as_pic_flagが第2値(例えば、1)を有する場合、現在サブピクチャは独立してコーディングされることができる。
現在サブピクチャが独立してコーディングされる場合(S1710の「YES」)、画像復号化装置は、現在ブロックに対してラップアラウンド動き補償が利用可能であるか否かを判断することができる(S1720)。
現在ブロックに対してラップアラウンド動き補償が利用可能であるか否かは、所定の変数(例えば、refWraparoundEnabledFlag)に基づいて決定されることができる。例えば、refWraparoundEnabledFlagが第1値(例えば、0)を有する場合、現在ブロックに対してラップアラウンド動き補償は利用不可であり得る。これとは異なり、refWraparoundEnabledFlagが第2値(例えば、1)を有する場合、現在ブロックに対してラップアラウンド動き補償は利用可能であり得る。一例において、refWraparoundEnabledFlagは、下記数式2のように設定できる。
Figure 2023518990000007
ここで、pps_ref_wraparound_enabled_flagは、現在ブロックを含む現在ピクチャに対してラップアラウンド動き補償が利用可能であるか否かを示すことができる(1であれば利用可能、0であれば利用不可)。pps_ref_wraparound_enabled_flagは、上位レベルシンタックス、例えばピクチャパラメータセット(PPS)を介して取得されることができる。また、変数refPicIsScaledは、参照ピクチャスケーリングが行われるか否か(又は、参照ピクチャスケーリングが必要であるか否か)を示すことができる。例えば、参照ピクチャスケーリングが行われる場合には、refPicIsScaledは第1値(例えば、0)を有し、参照ピクチャスケーリングが行われない場合には、refPicIsScaleは第2値(例えば、1)を有することができる。
数式2を参照すると、現在ピクチャに対してラップアラウンド動き補償が利用可能でないか(例えば、pps_ref_wraparound_enabled_flag==0)、或いは参照ピクチャスケーリングが行われる場合(例えば、refPicIsScaled==1)、refWraparoundEnabledFlagは、現在ブロックに対してラップアラウンド動き補償が利用可能でないことを示す第1値(例えば、0)を有することができる。これとは異なり、現在ピクチャに対してラップアラウンド動き補償が利用可能であり(例えば、pps_ref_wraparound_enabled_flag==1)、参照ピクチャスケーリングが行われない場合(例えば、refPicIsScaled==0)、refWraparoundEnabledFlagは、現在ブロックに対してラップアラウンド動き補償が利用可能であることを示す第2値(例えば、1)を有することができる。このように、参照ピクチャに対するラップアラウンド動き補償及び参照ピクチャスケーリングは、選択的に行われることができる。
一実施例において、ラップアラウンド動き補償が利用可能であるか否かに関連して変数SliceRefWraparoundEnabledFlagが定義され、次のとおりに導出されることができる。
-SliceRefWraparoundEnabledFlagは、前述したpps_ref_wrap_around_enabled_flagと同一に設定されることができる。
-SliceRefWraparoundEnabledFlagが第2値(例えば、1)を有し、現在サブピクチャ(すなわち、現在スライスの属するサブピクチャ)に対してsubpic_treated_as_pic_flag[i]が第2値(例えば、1)を有し(すなわち、現在サブピクチャが独立してコーディングされる場合)、現在サブピクチャの幅がピクチャの幅と異なる場合、SliceRefWraparoundEnabledFlagの値は第1値(例えば、0)に設定されることができる。
-SliceRefWraparoundEnabledFlagが第2値(例えば、1)を有し、参照ピクチャがスケーリングされない場合、SliceRefWraparoundEnabledFlagは、前述したrefWraparoundEnabledFlagを活性化することに(すなわち、refWraparoundEnabledFlag=1)利用可能である。
上述したSliceRefWraparoundEnabledFlagの導出過程は、スライスヘッダー内のセマンティクスとして定義されることができる。その具体的な一例は、表5の通りである。
Figure 2023518990000008
表5を参照すると、SliceRefWraparoundEnabledFlagは、pps_ref_wraparound_enabled_flagと同じ値に設定されることができる。そして、SliceRefWraparoundEnabledFlagが第2値(例えば、1)を有し、subpic_treated_as_pic_flag[CurrSubpicIdx]が第2値(例えば、1)を有し、subpic_width_minus1[CurrSubpicIdx]+1がCeil(pic_width_in_luma_samples÷CtbSizeY)より小さい場合、SliceRefWraparoundEnabledFlagの値は第1値(例えば、0)に再設定されることができる。
現在ブロックに対してラップアラウンド動き補償が利用可能である場合(S1720の「YES」)、画像復号化装置は、ラップアラウンドオフセットを用いて参照サンプルの位置を修正することができる(S1730)。
ラップアラウンドオフセットは、現在ピクチャのパディング前のERP幅(ERP width)に設定されることができる。ここで、ERP幅(ERP width)とは、360度画像から取得されるERPフォーマットの原本ピクチャ(すなわち、ERPピクチャ)の幅を意味することができる。ラップアラウンドオフセットは、上位レベルシンタックス、例えばピクチャパラメータセット(PPS)を介して取得される所定のシンタックス要素(例えば、pps_ref_wraparound_offset)に基づいて決定されることができる。そして、参照サンプルのx座標は、ラップアラウンドオフセットを用いて正方向又は負方向にシフトされることができる。
画像復号化装置は、修正された参照サンプルの位置をサブピクチャ境界を基準にクリッピングすることができる(S1740)。これにより、参照サンプルの位置は、サブピクチャ境界内に含まれることができる。
これとは異なり、現在ブロックに対してラップアラウンド動き補償が利用可能でない場合(S1720の「NO」)、画像復号化装置は、サブピクチャ境界を基準に参照サンプルの位置をクリッピングすることができる(S1750)。これにより、参照サンプルの位置はサブピクチャ境界内に含まれることができる。
上述したように、現在サブピクチャが独立してコーディングされる場合、参照サンプルの位置に対するクリッピング動作は、現在ブロックに対してラップアラウンド動き補償が利用可能であるか否かに関係なく、サブピクチャの境界を基準に行われることができる(S1740、S1750)。これは、独立してコーディングされたサブピクチャは参照ピクチャの境界ではないサブピクチャの境界を基準に連続性を有するということに起因したものであり得る。
再びステップS1710に戻り、現在サブピクチャが独立してコーディングされない場合(S1710の「NO」)、画像復号化装置は、現在ブロックに対してラップアラウンド動き補償が利用可能であるか否かを判断することができる(S1760)。前述したように、現在ブロックに対してラップアラウンド動き補償が利用可能であるか否かは、所定の変数(例えば、refWraparoundEnabledFlag)に基づいて決定されることができる。
現在ブロックに対してラップアラウンド動き補償が利用可能である場合(S1760の「YES」)、画像復号化装置は、ラップアラウンドオフセットを用いて参照サンプルの位置を修正することができる(S1770)。そして、画像復号化装置は、修正された参照サンプルの位置を参照ピクチャ境界を基準にクリッピングすることができる(S1780)。これにより、参照サンプルの位置は、参照ピクチャ境界内に含まれることができる。
これとは異なり、現在ブロックに対してラップアラウンド動き補償が利用可能でない場合(S1760の「NO」)、画像復号化装置は、参照サンプルの位置を参照ピクチャ境界を基準にクリッピングすることができる(S1790)。
上述したように、現在サブピクチャが独立してコーディングされない場合、参照サンプルの位置に対するクリッピング動作は、現在ブロックに対してラップアラウンド動き補償が利用可能であるか否かに関係なく、参照ピクチャ境界を基準に行われることができる(S1780、S1790)。これは、独立してコーディングされていないサブピクチャはサブピクチャ境界ではない参照ピクチャ境界を基準に連続性を有するということに起因したものであり得る。
一方、上述したクリッピング動作は、ルマサンプルバイリニア補間手順、ルマサンプル補間フィルタリング手順、ルマ整数サンプルフェッチング手順、及びクロマサンプル補間手順のうちのいずれか一つを用いて行われることができる。そして、本開示の実施例によれば、現在サブピクチャが独立してコーディングされた場合にも、ラップアラウンド動き補償が行われることができる。したがって、前述した表1~表4のプロセス1は、下記表6~表9のように修正されることができる。
Figure 2023518990000009
Figure 2023518990000010
Figure 2023518990000011
Figure 2023518990000012
表6~表9を参照すると、既存のクリッピング動作とは異なり、現在サブピクチャが独立してコーディングされた場合にも、ラップアラウンド動き補償が利用可能である場合、参照サンプルの位置は、サブピクチャ境界を基準にクリッピングされることができる(A610~A910)。
具体的には、現在サブピクチャが独立してコーディングされた場合、プロセス1が行われることができる。参照サンプルのx座標に対して、現在ブロックに対するラップアラウンド動き補償が利用可能であるか否か(例えば、refWraparoundEnabledFlag==1)に応じて、ラップアラウンドオフセット(例えば、PpsRefWraparoundOffset)が選択的に適用でき、選択適用されたx座標に対してサブピクチャ境界を基準としたクリッピング動作が行われることができる。ただし、参照サンプルのy座標に対しては、表1~表4を参照して前述したように、サブピクチャ境界を基準とした一般的なクリッピング動作(又はパディング動作)が行われることができる。これは、ラップアラウンド動き補償が参照ピクチャの左境界及び右境界に対してのみ適用されるということ(すなわち、水平ラップアラウンド動き補償)を意味することができる。
表9において、クロマサンプル補間手順を用いたラップアラウンド動き補償(表8参照)に用いられるラップアラウンドオフセットであるxOffsetは、下記数式3のように導出されることができる。
Figure 2023518990000013
数式3を参照すると、ラップアラウンドオフセット(xOffset)は、上位レベルシンタックス、例えばピクチャパラメータセット(PPS)から取得されたオフセット情報(PpsRefWraparoundOffset)にCB(coding block)の最小幅(MinCbSizeY)を掛けた後、ルマ-クロマサンプルの幅比(SubWidthC)で割ることにより算出できる。
一実施例において、上述したように変数SliceRefWraparoundEnabledFlagが新たに定義される場合、表6~表9のrefWraparoundEnabledFlagは、PPSから取得されるpps_ref_wraparound_enabled_flagを使用せずに、下記数式4のように導出されることができる。
Figure 2023518990000014
数式4を参照すると、SliceRefWraparoundEnabledFlagが第1値(例えば、0)を有するか、或いはrefPicIsScaledが第2値(例えば、1)を有する場合、refWraparoundEnabledFlagsは第1値(例えば、0)に設定されることができる。これとは異なり、SliceRefWraparoundEnabledFlagが第2値(例えば、1)を有し、refPicIsScaledが第1値(例えば、0)を有する場合、refWraparoundEnabledFlagsは第2値(例えば、1)に設定されることができる。
一実施例において、サブピクチャの境界を示す変数LeftBoundaryPos、RightBoundaryPos、TopBoundaryPos、及び/又はBottomBoundaryPosが新たに定義されることができる。前記新しい変数は、subpic_treated_as_flagが第1値(例えば、0)又は第2値(例えば、1)を有する場合、サブピクチャの境界の位置を示すことができる。前記新しい変数を導出する方法の具体的な一例は、表10の通りである。
Figure 2023518990000015
表10を参照すると、変数LeftBoundaryPosの初期値は0に設定されることができる。また、変数RightBoundaryPosの初期値は、pic_width_in_luma_samples-1に設定されることができる。また、変数TopBoundaryPosの初期値は、0に設定されることができる。また、BottomBoundaryPosの初期値は、pic_height_in_luma_samples-1に設定されることができる。
現在サブピクチャが独立してコーディングされる場合(すなわち、subpic_treated_as_pic_flag[CurrSubpicIdx]==1)、LeftBoundaryPos、RightBoundaryPos、TopBoundaryPos、及びBottomBoundaryPosの値は更新できる。具体的には、LeftBoundaryPosの値は、subpic_ctu_top_left_x[CurrSubpicIdx]*CtbSizeYに更新できる。また、RightBoundaryPosの値は、Min(pic_width_max_in_luma_samples-1、(subpic_ctu_top_left_x[CurrSubpicIdx]+subpic_width_minus1[CurrSubpicIdx]+1)*CtbSizeY-1)に更新できる。ここで、Min(x,y)は、x及びyのうちの小さい方の値を出力する関数を意味する。また、TopBoundaryPosの値は、subpic_ctu_top_left_y[CurrSubpicIdx]*CtbSizeYに更新できる。また、BottomBoundaryPosの値は、Min(pic_height_max_in_luma_samples-1、(subpic_ctu_top_left_y[CurrSubpicIdx]+subpic_height_minus1[CurrSubpicIdx]+1)*CtbSizeY-1)に更新できる。
前述した表6~表9の手順は、サブピクチャ境界に関する新しい変数を用いて下記表11~表14のように修正できる。
Figure 2023518990000016
Figure 2023518990000017
Figure 2023518990000018
Figure 2023518990000019
表11~表14の各手順は、サブピクチャ境界に関する新しい変数を用いるという点を除いては、表6~表9の各手順と同様であるので、重複説明は省略する。一方、TMVP(temporal motion vector prediction)導出手順、サブブロックベースの時間マージ候補導出手順、及び復元されたアフィン制御点動きベクトルマージ候補導出手順なども、サブピクチャ境界に関する前記新しい変数を用いて行われることができる。
図18は、本発明の一実施例によるSPSの一例を示す図である。図9及び図14aを参照して前述したSPSと重複する説明は省略する。
図18を参照すると、SPSは、シーケンスレベルでラップアラウンド動き補償が利用可能である否かを示すフラグsps_ref_wraparound_enabled_flagを含むことができる。例えば、第1値(例えば、0)のsps_ref_wraparound_enabled_flagは、(水平)ラップアラウンド動き補償がインター予測に適用されることを示すことができる。これとは異なり、第2値(例えば、1)のsps_ref_wraparound_enabled_flagは、(水平)ラップアラウンド動き補償が適用されないことを示すことができる。
i番目のサブピクチャの幅を示すシンタックス要素subpic_width_minus1[i]に1を加えた値が、ピクチャ内のすべてのサブピクチャに対して(pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)とは異なる場合、sps_ref_wraparound_enabled_flagの値が第1値(例えば、0)に強制されることは、ビットストリーム適合性のための要求事項であり得る。ここで、iは、0以上であり、ピクチャ内のサブピクチャの個数を示すシンタックス要素sps_num_subpics_minus1の値以下であり得る。
一実施例において、sps_ref_wraparound_enabled_flagは、サブピクチャに関するシンタックス要素(例えば、subpic_info_present_flag、sps_num_subpics_minus1など)より先にシグナリングされることができる。そして、sps_ref_wraparound_enabled_flagが第2値(例えば、1)を有する場合、サブピクチャの位置及び幅に関するシンタックス要素(例えば、subpic_ctu_top_left_x[i]、subpic_ctu_top_left_y[i]、及びsubpic_width_minus1[i])は、シグナリングされないことができる。
この場合、i番目のサブピクチャの左上側(top left)CTUの水平位置をCtbSizeY単位で表すシンタックス要素であるsubpic_ctu_top_left_x[i]の値は、第1値(例えば、0)と推論されることができる。また、i番目のサブピクチャの左上側(top left)CTUの垂直位置をCtbSizeY単位で表すシンタックス要素であるsubpic_ctu_top_left_y[i]は、subpic_ctu_top_left_y[i-1]+subpic_height_minus1[i-1]と推論されることができる。ここで、subpic_height_minus1[i-1]は、i-1番目のサブピクチャの高さから1を差し引いた値を示すことができる。また、サブピクチャの幅を示すシンタックス要素subpic_width_minus1[i]は、((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-1と推論されることができる。ここで、pic_width_max_in_luma_samplesは、ルマサンプル単位におけるピクチャの最大幅を示し、CtbSizeYはCTB(coding tree block)幅を示し、CtbLog2SizeYはCTB幅のログスケール値を示すことができる。
他の実施例において、上述したサブピクチャの位置及び幅に関するシンタックス要素は、sps_ref_wraparound_enabled_flagが第2値(例えば、1)を有する場合、上述した値と推論されるように制限されることができる。
図18を続けて参照すると、subpic_ctu_top_left_x[i]、subpic_ctu_top_left_y[i]、及びsubpic_width_minus1[i]は、sps_ref_wraparound_enabled_flagが第1値(例えば、0)を有する場合にのみシグナリングされることができる(1810)。
subpic_ctu_top_left_x[i]は、i番目のサブピクチャの左上側CTUの水平位置をCtbSizeY単位で表すことができる。subpic_ctu_top_left_x[i]の長さは、Ceil(Log2((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットであり得る。subpic_ctu_top_left_x[i]がビットストリーム内に存在しない場合(すなわち、シグナリングされない場合)、subpic_ctu_top_left_x[i]の値は0と推論されることができる。
また、subpic_ctu_top_left_y[i]は、i番目のサブピクチャの左上側CTUの垂直位置をCtbSizeY単位で表すことができる。subpic_ctu_top_left_y[i]の長さは、Ceil(Log2((pic_height_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットであり得る。subpic_ctu_top_left_y[i]がビットストリーム内に存在しない場合(すなわち、シグナリングされない場合)、以下が適用できる。
-i値が0より大きく、sps_ref_wraparound_enabled_flagが第2値(例えば、1)を有する場合、subpic_ctu_top_left_y[i]の値は、(subpic_ctu_top_left_y[i-1]+subpic_height_minus1[i-1]+1)と同じ値と推論されることができる。
-それ以外の場合、subpic_ctu_top_left_y[i]の値は、(((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-subpic_ctu_top_left_x[i]-1)と同じ値と推論されることができる。
また、subpic_width_minus1[i]に1を加えた値は、i番目のサブピクチャの幅をCtbSizeY単位で表すことができる。subpic_width_minus1[i]の長さは、Ceil(Log2((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY))ビットであり得る。subpic_width_minus1[i]がビットストリーム内に存在しない場合(すなわち、シグナリングされない場合)、以下が適用できる。
-sps_ref_wraparound_enabled_flagが第2値(例えば、1)を有する場合、subpic_width_minus1[i]の値は、(((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-1)と同じ値と推論されることができる。
-それ以外の場合、subpic_width_minus1[i]の値は、(((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-subpic_ctu_top_left_x[i]-1)と同じ値と推論されることができる。
一方、他の実施例によれば、subpic_ctu_top_left_x[i]、subpic_ctu_top_left_y[i]、及びsubpic_width_minus1[i]の上述した推論条件は強制されることができる。例えば、sps_ref_wraparound_enabled_flagが第2値(例えば、1)を有する場合、subpic_ctu_top_left_x[i]の値が第1値(例えば、0)と推論されることは、ビットストリーム適合性のための制約条件であり得る。また、sps_ref_wraparound_enabled_flagが第2値(例えば、1)を有する場合、subpic_ctu_top_left_y[i]がsubpic_ctu_top_left_y[i-1]+subpic_height_minus1[i-1]と推論されることは、ビットストリーム適合性のための制約条件であり得る。また、sps_ref_wraparound_enabled_flagが第2値(例えば、1)を有する場合、subpic_width_minus1[i]が((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-1と推論されることは、ビットストリーム適合性のための制約条件であり得る。
以上、本開示の実施例によれば、現在サブピクチャが独立してコーディングされるか否かに関係なく、前記現在サブピクチャに対してラップアラウンド動き補償が適用されることができる。このとき、現在サブピクチャが独立してコーディングされる場合、前記ラップアラウンド動き補償は、サブピクチャ境界を基準に行われることができる。これとは異なり、現在サブピクチャが独立してコーディングされない場合、前記ラップアラウンド動き補償は、参照ピクチャ境界を基準に行われることができる。これにより、サブピクチャ関連コーディングツール及びラップアラウンド動き補償関連コーディングツールを一緒に利用することができるので、符号化/復号化の効率はより向上することができる。
以下、図19及び図20を参照して、本開示の一実施例による画像符号化/復号化方法を詳細に説明する。
図19は、本開示の一実施例による画像符号化方法を示すフローチャートである。
図19の画像符号化方法は、図2の画像符号化装置によって行われることができる。例えば、ステップS1910及びステップS1920はインター予測部180によって行われ、ステップS1930はエントロピー符号化部190によって行われることができる。
図19を参照すると、画像符号化装置は、現在ブロックに対してラップアラウンド動き補償を適用するか否かを決定することができる(S1910)。
一実施例において、画像符号化装置は、現在ブロックを含む現在ビデオシーケンス内に独立してコーディングされ、ピクチャ幅とは異なる幅を有する1つ以上のサブピクチャが存在するか否かに基づいて、ラップアラウンド動き補償が利用可能であるか否かを決定することができる。例えば、現在ビデオシーケンス内に独立してコーディングされ、ピクチャ幅とは異なる幅を有する1つ以上のサブピクチャが存在する場合、画像符号化装置は、ラップアラウンド動き補償が利用可能でないと決定することができる。これとは異なり、現在ビデオシーケンス内の独立してコーディングされるすべてのサブピクチャがピクチャ幅と同じ幅を有する場合、画像符号化装置は、所定のラップアラウンド制約条件に基づいてラップアラウンド動き補償が利用可能であると決定することができる。ここで、前記ラップアラウンド制約条件の一例は、図16~図18を参照して前述した通りである。
そして、画像符号化装置は、前記決定に基づいて、現在ブロックに対してラップアラウンド動き補償を適用するか否かを決定することができる。例えば、現在ピクチャに対してラップアラウンド動き補償が利用可能でない場合、画像符号化装置は、現在ブロックに対してラップアラウンド動き補償を行わないことを決定することができる。これとは異なり、現在ピクチャに対してラップアラウンド動き補償が利用可能である場合、画像符号化装置は、現在ブロックに対してラップアラウンド動き補償を行うことを決定することができる。
一実施例において、現在サブピクチャが独立してコーディングされ、現在サブピクチャの幅が現在ピクチャの幅と異なることに基づいて、現在ブロックに対するラップアラウンド動き補償はスキップできる。
画像符号化装置は、ステップS1910の決定結果に基づいてインター予測を行うことにより、現在ブロックの予測ブロックを生成することができる(S1920)。
一実施例において、現在ブロックに対するラップアラウンド動き補償は、現在ブロックを含む現在サブピクチャが独立してコーディングされるか否かに基づいて、現在ブロックを含む現在サブピクチャの境界及び現在ブロックの参照ピクチャの境界のうちのいずれか一つに基づいて行われることができる。例えば、現在サブピクチャが独立してコーディングされる場合(例えば、subpic_treated_as_pic_flag==1)、現在ブロックに対するラップアラウンド動き補償は、現在サブピクチャの境界に基づいて行われることができる。これとは異なり、現在サブピクチャが独立してコーディングされない場合(例えば、subpic_treated_as_pic_flag==0)、現在ブロックに対するラップアラウンド動き補償は、参照ピクチャの境界に基づいて行われることができる。
一実施例において、現在ブロックに対するラップアラウンド動き補償は、現在ブロックの参照ピクチャ内で現在ブロックの動きベクトルによって特定される参照ブロックのx座標を所定のラップアラウンドオフセットに基づいて変更することにより行われることができる。一例において、ラップアラウンドオフセットは、現在ピクチャのパディング前のERP幅(ERP width)に設定されることができる。ここで、ERP幅(ERP width)とは、360度画像から取得されるERPフォーマットの原本ピクチャ(すなわち、ERPピクチャ)の幅を意味することができる。そして、前記ラップアラウンド動き補償は、前記変更された参照ブロックのx座標を現在サブピクチャの境界位置及び参照ピクチャの境界位置のうちのいずれか一つの範囲内にクリッピングすることにより行われることができる。
一実施例において、現在ブロックに対するラップアラウンド動き補償は、現在サブピクチャが独立してコーディングされるか否かに基づいて設定される、左境界位置及び右境界位置に基づいて行われることができる。例えば、現在サブピクチャが独立してコーディングされる場合、前記左境界位置及び前記右境界位置は、現在サブピクチャの左境界位置及び右境界位置に設定されることができる。これとは異なり、現在サブピクチャが独立してコーディングされない場合、前記左境界位置及び前記右境界位置は、参照ピクチャの左境界位置及び右境界位置に設定されることができる。そして、現在ブロックに対するラップアラウンド動き補償は、前記設定された左境界位置及び右境界位置に基づいて行われることができる。このように、現在サブピクチャが独立してコーディングされるか否かが参照ブロックの位置をクリッピングすることに用いられる境界位置に反映されることにより、現在サブピクチャが独立してコーディングされるか否かを別途判断する必要がなくなる。これにより、現在ブロックの予測ブロックを生成するための動き補償過程がより単純化できる。画像符号化装置は、現在ブロックのインター予測情報及びラップアラウンド動き補償に関するラップアラウンド情報を符号化してビットストリームを生成することができる(S1930)。
一実施例において、ラップアラウンド情報は、現在ピクチャに対してラップアラウンド動き補償が利用可能であるか否かを示す第1フラグ(例えば、pps_ref_wraparound_enabled_flag)を含むことができる。前記第1フラグは、現在ブロックを含む現在ビデオシーケンスに対してラップアラウンド動き補償が利用可能でないこと(例えば、sps_ref_waraparound_enabled_flag==0)に基づいて、現在ピクチャに対してラップアラウンド動き補償が利用可能でないことを示す第1値(例えば、0)を有することができる。また、前記第1フラグは、現在ピクチャ内のCTB(coding tree block)の幅及び現在ピクチャの幅に関する所定の条件に基づいて、現在ピクチャに対するラップアラウンド動き補償が利用可能でないことを示す第1値(例えば、0)を有することができる。例えば、現在ピクチャ内のCTBの幅(例えば、CtbSizeY)がピクチャの幅(例えば、pic_width_in_luma_samples)より大きい場合、pps_ref_wraparound_enabled_flagは、第1値(例えば、0)に制限されることができる。
一実施例において、ラップアラウンド情報は、現在ピクチャに対して前記ラップアラウンド動き補償が利用可能であることに基づいてラップアラウンドオフセット(例えば、pps_ref_wraparound_offset)をさらに含むことができる。画像符号化装置は、前記ラップアラウンドオフセットに基づいてラップアラウンド動き補償を行うことができる。
図20は、本開示の一実施例による画像復号化方法を示すフローチャートである。
図20の画像復号化方法は、図3の画像復号化装置によって行われることができる。例えば、ステップS2010及びステップS2020は、インター予測部260によって行われることができる。
図20を参照すると、画像復号化装置は、ビットストリームから現在ブロックのインター予測情報及びラップアラウンド(wrap-around)情報を取得することができる(S2010)。ここで、現在ブロックのインター予測情報は、現在ブロックの動き情報、例えば参照ピクチャインデックス、差分動きベクトル情報などを含むことができる。ラップアラウンド情報は、現在ブロックを含む現在ピクチャに対してラップアラウンド動き補償が利用可能であるか否かを示す第1フラグ(例えば、pps_ref_wraparound_enabled_flag)を含むことができる。前記第1フラグは、現在ブロックを含む現在ビデオシーケンスに対してラップアラウンド動き補償が利用可能でないこと(例えば、sps_ref_wraparound_enabled_flag==0)に基づいて、現在ピクチャに対してラップアラウンド動き補償が利用可能でないことを示す第1値(例えば、0)を有することができる。また、前記第1フラグは、現在ピクチャ内のCTB(coding tree block)の幅及び現在ピクチャの幅に関する所定の条件に基づいて、現在ピクチャに対してラップアラウンド動き補償が利用可能でないことを示す第1値(例えば、0)を有することができる。例えば、現在ピクチャ内のCTBの幅(例えば、CtbSizeY)がピクチャの幅(例えば、pic_width_in_luma_samples)より大きい場合、pps_ref_wraparound_enabled_flagは第1値(例えば、0)に制限されることができる。
一実施例において、現在ブロックを含む現在ビデオシーケンスに対してラップアラウンド動き補償が利用可能である(例えば、sps_wraparound_enabled_flag==1)に基づいて、現在サブピクチャの左上側位置及び幅は、所定の値に設定(又は、推論)されることができる。例えば、前記現在サブピクチャの左上側位置のx座標(例えば、subpic_ctu_top_left_x[i])は、0に設定され、前記現在サブピクチャの左上側位置のy座標(例えば、subpic_ctu_top_left_y[i])は、現在サブピクチャの前に復号化された第1サブピクチャ(例えば、サブピクチャインデックス=i-1)のy座標(例えば、subpic_ctu_top_left_y[i-1])に前記第1サブピクチャの高さ(例えば、subpic_height_minus1[i-1])を加算した値に設定されることができる。また、前記現在サブピクチャの幅(例えば、subpic_width_minus[i])は、現在ピクチャの幅(例えば、((pic_width_max_in_luma_samples+CtbSizeY-1)>>CtbLog2SizeY)-1)と同じ値に設定されることができる。
画像復号化装置は、ビットストリームから取得されたインター予測情報及びラップアラウンド情報に基づいて現在ブロックの予測ブロックを生成することができる(S2020)。
一実施例において、上述した第1フラグが現在ピクチャに対してラップアラウンド動き補償が利用可能であることを示す所定の値(例えば、1)を有することに基づいて、現在ブロックの予測ブロックはラップアラウンド動き補償によって生成できる。
一実施例において、現在ブロックに対するラップアラウンド動き補償は、現在ブロックの参照ピクチャ内で現在ブロックの動きベクトルによって特定される参照ブロックのx座標を前記ラップアラウンドオフセットに基づいて変更することにより行われることができる。そして、ラップアラウンド動き補償は、前記変更された参照ブロックのx座標を現在サブピクチャの境界位置及び参照ピクチャの境界位置のうちのいずれか一つの範囲内にクリッピングすることにより行われることができる。このとき、前記クリッピングの基準となる境界位置は、現在ブロックを含む現在サブピクチャが独立してコーディングされるか否か(例えば、subpic_treatead_as_pic_flag)に基づいて決定されることができる。例えば、現在サブピクチャが独立してコーディングされる場合(例えば、subpic_treated_as_pic_flag==1)、参照ブロックのx座標は、現在サブピクチャの境界を基準にクリッピングされることができる。これとは異なり、現在サブピクチャが独立してコーディングされない場合(例えば、subpic_treated_as_pic_flag==0)、参照ブロックのx座標は、参照ピクチャの境界を基準にクリッピングされることができる。
一方、一実施例において、現在ブロックの参照ピクチャがスケーリングされることに基づいて、現在ブロックに対するラップアラウンド動き補償はスキップされることができる。また、現在サブピクチャが独立してコーディングされ、現在サブピクチャの幅が現在ピクチャの幅と異なることに基づいて、現在ブロックに対するラップアラウンド動き補償はスキップされることができる。
一実施例において、現在ブロックに対するラップアラウンド動き補償は、現在サブピクチャが独立してコーディングされるか否かに基づいて設定される、左境界位置及び右境界位置に基づいて行われることができる。例えば、現在サブピクチャが独立してコーディングされる場合、前記左境界位置及び前記右境界位置は、現在サブピクチャの左境界位置及び右境界位置に設定されることができる。これとは異なり、現在サブピクチャが独立してコーディングされない場合、前記左境界位置及び前記右境界位置は、参照ピクチャの左境界位置及び右境界位置に設定されることができる。そして、現在ブロックに対するラップアラウンド動き補償は、前記設定された左境界位置及び右境界位置に基づいて行われることができる。このように、現在サブピクチャが独立してコーディングされるか否かが参照ブロックをクリッピングすることに用いられる境界位置に反映されることにより、現在サブピクチャが独立してコーディングされるか否かを別途判断する必要がなくなる。これにより、現在ブロックの予測ブロックを生成するための動き補償過程がより単純化できる。
以上、本開示の一実施例による画像符号化/復号化方法によれば、現在サブピクチャが独立してコーディングされた場合にも、所定の条件に応じてラップアラウンド動き補償が利用可能である。これにより、サブピクチャ関連コーディングツール及びラップアラウンド動き補償関連コーディングツールを一緒に利用することができるので、符号化/復号化の効率はより向上することができる。
本開示で説明されたシンタックス要素の名称は、当該シンタックス要素がシグナリングされる位置に関する情報を含むことができる。例えば、「sps_」で始まるシンタックス要素は、当該シンタックス要素がシーケンスパラメータセット(SPS)でシグナリングされることを意味することができる。さらに、「pps_」、「ph_」、「sh_」などで始まるシンタックス要素は、当該シンタックス要素がピクチャパラメータセット(PPS)、ピクチャヘッダー、スライスヘッダーなどでそれぞれシグナリングされることを意味することができる。
本開示の例示的な方法は、説明の明確性のために動作のシリーズで表現されているが、これは、ステップが行われる順序を制限するためのものではなく、必要な場合には、それぞれのステップが同時に又は異なる順序で行われることもできる。本開示による方法を実現するために、例示するステップにさらに他のステップを含むか、一部のステップを除いて残りのステップを含むか、或いは一部のステップを除いて追加の他のステップを含むこともできる。
本開示において、所定の動作(ステップ)を行う画像符号化装置又は画像復号化装置は、当該動作(ステップ)の実行条件や状況を確認する動作(ステップ)を行うことができる。例えば、所定の条件が満足される場合、所定の動作を行うと記載された場合、画像符号化装置又は画像復号化装置は、前記所定の条件が満足されるか否かを確認する動作を行った後、前記所定の動作を行うことができる。
本開示の様々な実施例は、全ての可能な組み合わせを羅列したものではなく、本開示の代表的な態様を説明するためのものであり、様々な実施例で説明する事項は、独立して適用されてもよく、2つ以上の組み合わせで適用されてもよい。
また、本開示の様々な実施例は、ハードウェア、ファームウェア(firmware)、ソフトウェア、又はそれらの組み合わせなどによって実現できる。ハードウェアによる実現の場合、1つ又はそれ以上のASICs(Application Specific Integrated Circuits)、DSPs(Digital Signal Processors)、DSPDs(Digital Signal Processing Devices)、PLDs(Programmable Logic Devices)、FPGAs(Field Programmable Gate Arrays)、汎用プロセッサ(general processor)、コントローラ、マイクロコントローラ、マイクロプロセッサなどによって実現できる。
また、本開示の実施例が適用された画像復号化装置及び画像符号化装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ会話装置、ビデオ通信などのリアルタイム通信装置、モバイルストリーミング装置、記憶媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、及び医療用ビデオ装置などに含まれることができ、ビデオ信号又はデータ信号を処理するために使用できる。例えば、OTTビデオ(Over the top video)装置としては、ゲームコンソール、ブルーレイプレーヤー、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などを含むことができる。
図21は、本開示の実施例が適用できるコンテンツストリーミングシステムを例示する図である。
図21に示すように、本開示の実施例が適用されたコンテンツストリーミングシステムは、大きく、符号化サーバ、ストリーミングサーバ、Webサーバ、メディアストレージ、ユーザ装置及びマルチメディア入力装置を含むことができる。
前記符号化サーバは、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを前記ストリーミングサーバに伝送する役割を果たす。他の例として、スマートフォン、カメラ、ビデオカメラなどのマルチメディア入力装置がビットストリームを直接生成する場合、前記符号化サーバは省略できる。
前記ビットストリームは、本開示の実施例が適用された画像符号化方法及び/又は画像符号化装置によって生成でき、前記ストリーミングサーバは、前記ビットストリームを伝送又は受信する過程で一時的に前記ビットストリームを保存することができる。
前記ストリーミングサーバは、Webサーバを介してユーザの要求に基づいてマルチメディアデータをユーザ装置に伝送し、前記Webサーバは、ユーザにどんなサービスがあるかを知らせる媒介体の役割を果たすことができる。ユーザが前記Webサーバに所望のサービスを要求すると、前記Webサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを伝送することができる。この時、前記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割を果たすことができる。
前記ストリーミングサーバは、メディアストレージ及び/又は符号化サーバからコンテンツを受信することができる。例えば、前記符号化サーバからコンテンツを受信する場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間保存することができる。
前記ユーザ装置の例としては、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイネージなどがあり得る。
前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバから受信するデータは、分散処理されることができる。
図22は、本開示の実施例が活用できる3次元画像/ビデオサービスの提供のためのアーキテクチャを概略的に示す図である。
図22は、360度又は全方向(omnidirectional)ビデオ/画像処理システムを示すことができる。また、図22のシステムは、例えばエクステンデッド・リアルリティ(XR、eXtended Reality)支援機器で実現されることができる。すなわち、前記システムは、ユーザに仮想現実を提供する方案を提供することができる。
エクステンデッド・リアルリティとは、仮想現実(VR:Virtual Reality)、拡張現実(AR:Augmented Reality)、混合現実(MR:Mixed Reality)を総称する。VR技術は、現実世界のオブジェクトや背景などをCG画像としてのみ提供し、AR技術は、実際事物画像の上に仮想で作られたCG画像を一緒に提供し、MR技術は、現実世界に仮想オブジェクトを混ぜ、結合させて提供するコンピューターグラフィックス技術である。
MR技術は、現実オブジェクトと仮想オブジェクトを一緒に示すという点でAR技術と類似する。しかし、AR技術では、仮想オブジェクトが現実オブジェクトを補完する形で使用されるのに対し、MR技術では、仮想オブジェクトと現実オブジェクトが同等の性格で使用されるという点において、相違点がある。
XR技術は、HMD(Head-Mount Display)、HUD(Head-Up Display)、携帯電話、タブレットPC、ラップトップパソコン、デスクトップ、TV、デジタルサイネージなどに適用でき、XR技術が適用された装置をXR装置(XR Device)と呼ぶことができる。XR装置は、後述する第1デジタル装置及び/又は第2デジタル装置を含むことができる。
360度コンテンツは、VRを実現及び提供するためのコンテンツ全般を意味し、360度ビデオ及び/又は360度オーディオを含むことができる。360度ビデオは、VRを提供するために必要な、同時にすべての方向(360度又はそれ以下)にキャプチャ又は再生されるビデオないし画像コンテンツを意味することができる。以下、360度ビデオとは、360度ビデオを意味することができる。360度オーディオも、VRを提供するためのオーディオコンテンツであって、音響発生地が3次元の特定の空間上に位置すると認知できる、空間的(Spatial)オーディオコンテンツを意味することができる。360度コンテンツは、生成、処理されてユーザに伝送されることができ、ユーザは、360度コンテンツを用いてVR経験を消費することができる。360度ビデオは、全方向(omnidirectional)ビデオと呼ばれることがあり、360度画像は、全方向画像と呼ばれることがある。また、以下、360度ビデオに基づいて説明し、本文書の実施例は、VRに限定されず、AR、MRなどのビデオ/画像コンテンツに対する処理を含むことができる。360度ビデオは、3Dモデルに応じて様々な形態の3D空間上に表示されるビデオないし画像を意味することができ、例えば、360度ビデオは、球面(Sphercial surface)上に表示されることができる。
本方法は、特に360度ビデオを効果的に提供する方法を提案する。360度ビデオを提供するために、まず、1つ以上のカメラを介して360度ビデオがキャプチャできる。キャプチャされた360度ビデオは、一連の過程を経て伝送され、受信側では、受信されたデータを再び元の360度ビデオに加工してレンダリングすることができる。これにより、360度ビデオがユーザに提供されることができる。
具体的には、360度ビデオの提供のための全体過程は、キャプチャ過程(process)、準備過程、伝送過程、プロセッシング過程、レンダリング過程及び/又はフィードバック過程を含むことができる。
キャプチャ過程は、1つ以上のカメラを介して複数の視点のそれぞれに対する画像又はビデオをキャプチャする過程を意味することができる。キャプチャ過程によって示された図22の2210のような画像/ビデオデータが生成されることができる。図示された図22の2210の各平面は、各視点に対する画像/ビデオを意味することができる。このキャプチャされた複数の画像/ビデオを生(raw)データと呼ぶこともできる。キャプチャ過程でキャプチャに関連するメタデータが生成されることができる。
このキャプチャのために、VRのための特殊なカメラが使用できる。実施例によって、コンピュータで生成された仮想の空間に対する360度ビデオを提供しようとする場合、実際カメラを介したキャプチャが行われないことができる。この場合、当該キャプチャ過程が、単に関連データが生成される過程に置き換えられることができる。
準備過程は、キャプチャされた画像/ビデオ及びキャプチャ過程で発生したメタデータを処理する過程であり得る。キャプチャされた画像/ビデオは、その準備過程で、ステッチング過程、投影(projection)過程、リージョンごとのパッキング過程(Region-wise Packing)及び/又は符号化過程などを経ることができる。
まず、それぞれの画像/ビデオがステッチング(Stitching)過程を経ることができる。ステッチング過程は、それぞれのキャプチャされた画像/ビデオを連結して一つのパノラマ画像/ビデオ又は球形の画像/ビデオを作る過程であり得る。
その後、ステッチングされた画像/ビデオは、投影(Projection)過程を経ることができる。投影過程で、ステッチングされた画像/ビデオは、2D画像上に投影されることができる。この2D画像は、コンテキストに応じて2D画像フレームと呼ばれることもある。2D画像として投影することを、2D画像にマッピングすると表現することもできる。投影された画像/ビデオデータは、図22の2220のような2D画像の形態になることができる。
2D画像上に投影されたビデオデータは、ビデオコーディング効率などを高めるために、リージョンごとのパッキング過程(Region-wise Packing)を経ることができる。リージョンごとのパッキングとは、2D画像上に投影されたビデオデータをリージョン(Region)ごとに分けて処理を施す過程を意味することができる。ここで、リージョン(Region)とは、360度ビデオデータが投影された2D画像が分けられた領域を意味することができる。これらのリージョンは、実施例によって、2D画像を均等に分けて区分されるか、或いは任意に分けて区分されることができる。また、実施例によって、これらのリージョンは、投影スキームによって区別されることもできる。リージョンごとのパッキング過程は、選択的(optional)過程であって、準備過程で省略可能である。
実施例によって、この処理過程は、ビデオコーディング効率を向上させるために、各リージョンを回転させたり2D画像上で再配列したりする過程を含むことができる。例えば、これらのリージョンを回転させてリージョンの特定の辺が互いに近接して位置するようにすることにより、コーディング時の効率が高まるようにすることができる。
実施例によって、この処理過程は、360度ビデオ上の領域ごとにレゾリューション(resolution)を差等化するために、特定のリージョンに対するレゾリューションを上げる或いは下げる過程を含むことができる。例えば、360度ビデオ上で相対的にさらに重要な領域に該当するリージョンは、他のリージョンよりもレゾリューションを高めることができる。2D画像上に投影されたビデオデータ又はリージョンごとにパッキングされたビデオデータは、ビデオコーデックを介した符号化過程を経ることができる。
実施例によって、準備過程は、さらにエディティング(editing)過程などをさらに含むことができる。このエディティング過程で投影前後の画像/ビデオデータに対する編集などがさらに行われることができる。準備過程においても同様に、ステッチング/投影/符号化/エディティングなどに対するメタデータが生成されることができる。また、2D画像上に投影されたビデオデータの初期視点、或いはROI(Region of Interest)などに関するメタデータが生成されることができる。
伝送過程は、準備過程を経た画像/ビデオデータ及びメタデータを処理して伝送する過程であり得る。伝送のために任意の伝送プロトコルによる処理が行われることができる。伝送のための処理を済ませたデータは、放送網及び/又はブロードバンドを介して伝達されることができる。これらのデータは、オンデマンド(On Demand)方式で受信側に伝達されることもできる。受信側では、様々な経路を介して該当データを受信することができる。
プロセッシング過程は、受信したデータを復号化し、投影されている画像/ビデオデータを3Dモデル上に再投影(Re-projection)する過程を意味することができる。この過程で2D画像上に投影されている画像/ビデオデータが3D空間上に再投影されることができる。この過程を文脈に応じてマッピング、投影と呼ぶこともある。このとき、マッピングされる3D空間は、3Dモデルによって異なる形態を有することができる。例えば、3Dモデルには、球形(Sphere)、キューブ(Cube)、シリンダー(Cylinder)、又はピラミッド(Pyramid)などがあり得る。
実施例によって、プロセッシング過程は、さらに、エディティング(editing)過程、アップスケーリング(up scaling)過程などをさらに含むことができる。このエディティング過程で再投影前後の画像/ビデオデータに対する編集などがさらに行われることができる。画像/ビデオデータが縮小されている場合は、アップスケーリング過程でサンプルのアップスケーリングを介してそのサイズを拡大することができる。必要に応じて、ダウンスケーリングによってサイズを縮小する作業が行われることもできる。
レンダリング過程は、3D空間上に再投影された画像/ビデオデータをレンダリングし、表示する過程を意味することができる。表現によっては、再投影とレンダリングを組み合わせて3Dモデルにレンダリングすると表現することもできる。3Dモデル上に再投影された(又は3Dモデル上にレンダリングされた)画像/ビデオは、図示された図22の2230のような形態を有することができる。図示された図22の2230は、球形の3Dモデルに再投影された場合である。ユーザは、VRディスプレイなどを介してレンダリングされた画像/ビデオの一部の領域を見ることができる。このとき、ユーザが見る領域は、図示された図22の2240のような形態であり得る。
フィードバック過程は、ディスプレイ過程で取得できる様々なフィードバック情報を送信側へ伝達する過程を意味することができる。フィードバック過程を介して360度ビデオ消費においてインタラクティビティ(Interactivity)が提供されることができる。実施例によって、フィードバック過程でヘッドオリエンテーション(Head Orientation)情報、ユーザが現在見ている領域を示すビューポート(Viewport)情報などが送信側へ伝達されることができる。実施例によって、ユーザは、VR環境上に実現されたのと相互作用することもできるが、この場合、その相互作用に関連する情報がフィードバック過程で送信側ないしサービスプロバイダ側へ伝達されることもできる。実施例によって、フィードバック過程は行われないこともできる。
ヘッドオリエンテーション情報は、ユーザの頭の位置、角度、動きなどに対する情報を意味することができる。この情報に基づいて、ユーザが現在360度ビデオ内で見ている領域に対する情報、すなわちビューポート情報が計算されることができる。
ビューポート情報は、現在ユーザが360度ビデオで見ている領域に対する情報であり得る。これによりゲイズ分析(Gaze Analysis)が行われることにより、ユーザがどの方式で360度ビデオを消費するか、360度ビデオのどの領域をどれほど見つめるかなどを確認することもできる。ゲイズ分析は、受信側で行われることにより、送信側へフィードバックチャネルを介して伝達されることもできる。VRディスプレイなどの装置は、ユーザの頭の位置/方向、装置が支援する垂直(vertical)或いは水平(horizontal)FOV(Field Of View)情報などに基づいてビューポート領域を抽出することができる。
一方、サブピクチャに基づいて360度ビデオ/画像が処理されることができる。2D画像を含むプロジェクテッドピクチャ又はパックドピクチャは、サブピクチャに区分されることができ、サブピクチャ単位で処理が行われることができる。例えば、ユーザビューポートなどによって特定のサブピクチャに対して高い解像度を与えることもでき、或いは特定のサブピクチャのみを符号化して受信装置(復号化装置側)へシグナリングすることもできる。この場合、復号化装置はサブピクチャビットストリームを受信して前記特定のサブピクチャを復元/復号化し、ユーザビューポートに応じてレンダリングすることができる。
実施例によって、前述したフィードバック情報は、送信側へ伝達されるだけでなく、受信側で消費されることもできる。すなわち、前述したフィードバック情報を用いて受信側の復号化、再投影、レンダリング過程などが行われることができる。例えば、ヘッドオリエンテーション情報及び/又はビューポート情報を用いて、現在ユーザが見ている領域に対する360度ビデオのみ優先的に復号化及びレンダリングされることもできる。
ここで、ビューポート(viewport)ないしビューポート領域とは、ユーザが36度ビデオで見ている領域を意味することができる。視点(viewpoint)は、ユーザが360度ビデオで見ている地点であって、ビューポート領域の正中央地点を意味することができる。すなわち、ビューポートは、視点を中心とした領域であるが、その領域が占めるサイズや形態などは、FOV(Field Of View)によって決定されることができる。
前述した360度ビデオの提供のための全体アーキテクチャ内で、キャプチャ/投影/符号化/伝送/復号化/再投影/レンダリングの一連の過程を経る画像/ビデオデータを360度ビデオデータと呼ぶことができる。また、360度ビデオデータという用語は、このような画像/ビデオデータに関連するメタデータないしシグナリング情報を含む概念として使われることもある。
上述したオーディオ又はビデオなどのメディアデータを保存し、伝送するために、定型化されたメディアファイルフォーマットが定義されることができる。実施例によって、メディアファイルは、ISO BMFF(ISO base media file format)をベースとしたファイルフォーマットを有することができる。
本開示の範囲は、様々な実施例の方法による動作が装置又はコンピュータ上で実行されるようにするソフトウェア又はマシン-実行可能なコマンド(例えば、オペレーティングシステム、アプリケーション、ファームウェア(firmware)、プログラムなど)、及びこのようなソフトウェア又はコマンドなどが保存されて装置又はコンピュータ上で実行できる非一時的なコンピュータ可読媒体(non-transitory computer-readable medium)を含む。
本開示による実施例は、画像を符号化/復号化することに利用可能である。

Claims (15)

  1. 画像復号化装置によって行われる画像復号化方法であって、前記画像復号化方法は、
    ビットストリームから、現在ブロックのインター予測情報及びラップアラウンド(wrap-around)情報を取得するステップと、
    前記インター予測情報及び前記ラップアラウンド情報に基づいて、前記現在ブロックの予測ブロックを生成するステップと、を含み、
    前記ラップアラウンド情報は、前記現在ブロックを含む現在ピクチャに対してラップアラウンド動き補償が利用可能であるか否かを示す第1フラグを含み、
    前記現在ブロックの予測ブロックは、前記第1フラグが、前記ラップアラウンド動き補償が利用可能であることを示す所定の値を有することに基づいて、前記ラップアラウンド動き補償によって生成され、
    前記ラップアラウンド動き補償は、前記現在ブロックを含む現在サブピクチャが独立してコーディングされるか否かに基づいて、前記現在サブピクチャの境界及び前記現在ブロックの参照ピクチャの境界のうちのいずれか一つに基づいて行われる、画像復号化方法。
  2. 前記現在ブロックに対するラップアラウンド動き補償は、前記第1フラグが前記第1値を有することに基づいて前記ビットストリームから取得されるラップアラウンドオフセットに基づいて行われる、請求項1に記載の画像復号化方法。
  3. 前記現在ブロックに対するラップアラウンド動き補償は、前記参照ピクチャ内で前記現在ブロックの動きベクトルによって特定される参照ブロックのx座標を前記ラップアラウンドオフセットに基づいて変更することにより行われる、請求項2に記載の画像復号化方法。
  4. 前記現在ブロックに対するラップアラウンド動き補償は、前記変更された参照ブロックのx座標を前記現在サブピクチャの境界位置及び前記参照ピクチャの境界位置のうちのいずれか一つの範囲内にクリッピングすることにより行われる、請求項3に記載の画像復号化方法。
  5. 前記参照ピクチャがスケーリングされることに基づいて、前記現在ブロックに対するラップアラウンド動き補償はスキップされる、請求項1に記載の画像復号化方法。
  6. 前記現在サブピクチャが独立してコーディングされ、前記現在サブピクチャの幅が前記現在ピクチャの幅とは異なることに基づいて、前記現在ブロックに対するラップアラウンド動き補償はスキップされる、請求項1に記載の画像復号化方法。
  7. 前記現在ブロックに対するラップアラウンド動き補償は、前記現在サブピクチャが独立してコーディングされるか否かに基づいて設定される左境界位置及び右境界位置に基づいて行われる、請求項1に記載の画像復号化方法。
  8. 前記現在ブロックを含む現在ビデオシーケンスに対して前記ラップアラウンド動き補償が利用可能であることに基づいて、前記現在サブピクチャの左上側位置及び幅は所定の値に設定される、請求項1に記載の画像復号化方法。
  9. メモリ及び少なくとも1つのプロセッサを含む画像復号化装置であって、
    前記少なくとも1つのプロセッサは、
    ビットストリームから、現在ブロックのインター予測情報及びラップアラウンド(wrap-around)情報を取得し、
    前記インター予測情報及び前記ラップアラウンド情報に基づいて、前記現在ブロックの予測ブロックを生成し、
    前記ラップアラウンド情報は、前記現在ブロックを含む現在ピクチャに対してラップアラウンド動き補償が利用可能であるか否かを示す第1フラグを含み、
    前記現在ブロックの予測ブロックは、前記第1フラグが、前記ラップアラウンド動き補償が利用可能であることを示す第1値を有することに基づいて、前記ラップアラウンド動き補償によって生成され、
    前記ラップアラウンド動き補償は、前記現在ブロックを含む現在サブピクチャが独立してコーディングされるか否かに基づいて、前記現在サブピクチャの境界及び前記現在ブロックの参照ピクチャの境界のうちのいずれか一つに基づいて行われる、画像復号化装置。
  10. 画像符号化装置によって行われる画像符号化方法であって、前記画像符号化方法は、
    現在ブロックに対してラップアラウンド動き(wrap-around)補償を適用するか否かを決定するステップと、
    前記決定に基づいてインター予測を行うことにより、前記現在ブロックの予測ブロックを生成するステップと、
    前記現在ブロックのインター予測情報及び前記ラップアラウンド動き補償に関するラップアラウンド情報を符号化するステップと、を含み、
    前記ラップアラウンド情報は、前記現在ブロックを含む現在ピクチャに対してラップアラウンド動き補償が利用可能であるか否かを示す第1フラグを含み、
    前記ラップアラウンド動き補償は、前記現在ブロックを含む現在サブピクチャが独立してコーディングされるか否かに基づいて、前記現在サブピクチャの境界及び前記現在ブロックの参照ピクチャの境界のうちのいずれか一つに基づいて行われる、画像符号化方法。
  11. 前記ラップアラウンド動き補償は、前記参照ピクチャ内で前記現在ブロックの動きベクトルによって特定される参照ブロックのx座標を所定のラップアラウンドオフセットに基づいて変更することにより行われる、請求項10に記載の画像符号化方法。
  12. 前記ラップアラウンド動き補償は、前記変更された参照ブロックのx座標を前記現在サブピクチャの境界位置及び前記参照ピクチャの境界位置のうちのいずれか一つの範囲内にクリッピングすることにより行われる、請求項11に記載の画像符号化方法。
  13. 前記現在サブピクチャが独立してコーディングされ、前記現在サブピクチャの幅が前記現在ピクチャの幅とは異なることに基づいて、前記現在ブロックに対するラップアラウンド動き補償はスキップされる、請求項10に記載の画像符号化方法。
  14. 前記ラップアラウンド動き補償は、前記現在サブピクチャが独立してコーディングされるか否かに基づいて設定される、左境界位置及び右境界位置に基づいて行われる、請求項10に記載の画像符号化方法。
  15. 請求項10に記載の画像符号化方法によって生成されたビットストリームを保存するコンピュータ可読記録媒体。
JP2022558310A 2020-03-26 2021-03-26 ラップアラウンド動き補償に基づく画像符号化/復号化方法及び装置、並びにビットストリームを保存した記録媒体 Pending JP2023518990A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063000474P 2020-03-26 2020-03-26
US63/000,474 2020-03-26
US202063009980P 2020-04-14 2020-04-14
US63/009,980 2020-04-14
PCT/KR2021/003791 WO2021194308A1 (ko) 2020-03-26 2021-03-26 랩-어라운드 움직임 보상에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Publications (1)

Publication Number Publication Date
JP2023518990A true JP2023518990A (ja) 2023-05-09

Family

ID=77892044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022558310A Pending JP2023518990A (ja) 2020-03-26 2021-03-26 ラップアラウンド動き補償に基づく画像符号化/復号化方法及び装置、並びにビットストリームを保存した記録媒体

Country Status (4)

Country Link
US (2) US11785245B2 (ja)
JP (1) JP2023518990A (ja)
CN (1) CN115699755A (ja)
WO (1) WO2021194308A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115668935A (zh) * 2020-03-26 2023-01-31 Lg电子株式会社 基于卷绕运动补偿的图像编码/解码方法和设备及存储比特流的记录介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3354029A4 (en) * 2015-09-23 2019-08-21 Nokia Technologies Oy METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR ENCODING 360-DEGREE PANORAMIC VIDEO
CN117376586A (zh) * 2018-09-07 2024-01-09 华为技术有限公司 用于视频译码中帧内预测和帧间预测的插值滤波方法和装置
CN114097222A (zh) * 2019-06-23 2022-02-25 夏普株式会社 用于在视频编码中执行自适应分辨率变化的系统和方法
US11539939B2 (en) * 2019-11-27 2022-12-27 Hfi Innovation Inc. Video processing methods and apparatuses for horizontal wraparound motion compensation in video coding systems
US11711537B2 (en) * 2019-12-17 2023-07-25 Alibaba Group Holding Limited Methods for performing wrap-around motion compensation
US11589037B2 (en) * 2019-12-20 2023-02-21 Qualcomm Incorporated Motion compensation using size of reference picture
WO2021138143A1 (en) * 2019-12-30 2021-07-08 Alibaba Group Holding Limited Methods for signaling virtual boundaries and wrap-around motion compensation
US11418804B2 (en) * 2019-12-31 2022-08-16 Tencent America LLC Method for wrap around motion compensation with reference picture resampling
US11368708B2 (en) * 2020-01-08 2022-06-21 Tencent America LLC Method for combination of wrap-around offset and reference picture resampling
US20210297704A1 (en) * 2020-03-20 2021-09-23 Qualcomm Incorporated Independent subpicture signaling in video coding

Also Published As

Publication number Publication date
US20230021409A1 (en) 2023-01-26
US20230336765A1 (en) 2023-10-19
CN115699755A (zh) 2023-02-03
US11785245B2 (en) 2023-10-10
WO2021194308A1 (ko) 2021-09-30

Similar Documents

Publication Publication Date Title
JP7157152B2 (ja) 画像コーディングシステムにおけるサブブロック単位の動き予測に基づく画像デコーディング方法及び装置
CN114586344B (zh) 参考亮度样本位置确定色度块的预测模式的图像编码/解码方法和设备及发送比特流的方法
US11917194B2 (en) Image encoding/decoding method and apparatus based on wrap-around motion compensation, and recording medium storing bitstream
KR20220162739A (ko) Hls를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체
US20230336765A1 (en) Image encoding/decoding method and device on basis of wrap-around motion compensation, and recording medium storing bitstream
CN115104318A (zh) 基于子画面的图像编码设备和方法
KR20220041898A (ko) 적응적 루프 필터링 기반 영상 코딩 장치 및 방법
US11533476B2 (en) Image encoding/decoding method and apparatus using IBC, and method for transmitting bitstream
JP7318024B2 (ja) クロマ変換ブロックの最大サイズ制限を用いた画像符号化/復号化方法、装置、及びビットストリームを伝送する方法
JP7309929B2 (ja) クロマ成分符号化ブロックの最大変換サイズ制限を用いた画像符号化/復号化方法、装置、及びビットストリームを伝送する方法
JP2022538065A (ja) クロマブロックの分割条件を制限する画像符号化/復号化方法、装置、及びビットストリームを伝送する方法
KR20220002688A (ko) 크로마 블록의 크기를 제한하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
KR20210114065A (ko) 크로마 블록에 대한 분할 제한을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
CN114375573A (zh) 使用合并候选推导预测样本的图像解码方法及其装置
US20240163473A1 (en) Image encoding/decoding method and apparatus based on wrap-around motion compensation, and recording medium storing bitstream
JP7309928B2 (ja) クロマブロックの最大変換サイズ設定を用いた画像符号化/復号化方法、装置、及びビットストリームを伝送する方法
JP2024045744A (ja) リーフノードの再設定された予測モードタイプに基づいて予測を行う画像符号化/復号化方法、装置、及びビットストリームを伝送する方法
CN115136608A (zh) 基于虚拟边界的图像编码装置和方法
CN115152237A (zh) 图像编码装置和方法
CN115152214A (zh) 基于画面划分的图像编码装置和方法
CN115699762A (zh) 通过用信号通知gci对图像进行编码/解码的方法和设备及存储比特流的计算机可读记录介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240112

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240409