(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-26
(45)【発行日】2024-08-05
(54)【発明の名称】ピクチャパーティショニング方法及び機器
(51)【国際特許分類】
H04N 19/107 20140101AFI20240729BHJP
H04N 19/119 20140101ALI20240729BHJP
H04N 19/176 20140101ALI20240729BHJP
【FI】
H04N19/107
H04N19/119
H04N19/176
【外国語出願】
(21)【出願番号】P 2022212121
(22)【出願日】2022-12-28
(62)【分割の表示】P 2021510741の分割
【原出願日】2019-08-28
【審査請求日】2023-01-27
(31)【優先権主張番号】201810990466.9
(32)【優先日】2018-08-28
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】201811116761.8
(32)【優先日】2018-09-25
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】201910183731.7
(32)【優先日】2019-03-11
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】201910191131.5
(32)【優先日】2019-03-13
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】201910173454.1
(32)【優先日】2019-03-07
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】201910696741.0
(32)【優先日】2019-07-30
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】201910219440.9
(32)【優先日】2019-03-21
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャオ,イン
(72)【発明者】
【氏名】ヤン,ハイタオ
(72)【発明者】
【氏名】チェン,ジェンレェ
(72)【発明者】
【氏名】ジャン,リエン
【審査官】久保 光宏
(56)【参考文献】
【文献】Chih-Wei Hsu, et al.,"Description of SDR video coding technology proposal by MediaTek",Document: JVET-J0018, [online],JVET-J0018 (version 2),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2018年04月11日,Pages 1-4,[令和4年5月7日検索], インターネット, <URL: http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=3449> and <URL: http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/10_San%20Diego/wg11/JVET-J0018-v2.zip>.,(See document file "JVET-J0018.docx" in the zip file "JVET-J0018-v2.zip".)
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
ピクチャパーティショニング方法であって、
ルマブロック及びクロマブロックを含む現在ノードの分割モードを決定するステップと、
前記現在ノードの前記分割モード及び前記現在ノードのサイズに基づき、前記現在ノードの
カバレッジ領域内の全ての符号化単位にイントラ予測が実行されることを決定するステップと、
前記現在ノードの前記分割モードに基づき、前記現在ノードの前記ルマ
ブロックを分割するステップと、
を含み、
前記イントラ予測は、以下:
前記現在ノードの幅と高さとの積が64に等しく、前記現在ノードの前記分割モードが4分木分割又は3分木分割である、又は、
前記現在ノードの幅と高さとの積が32に等しく、前記現在ノードの前記分割モードが2分木分割である、
のいずれかの決定に従い
、前記現在ノードの前記カバレッジ領域内の全ての符号化単位に実行される、方法。
【請求項2】
前記現在ノードの前記クロマブロックは、前記現在ノードの前記分割モード及び前記現在ノードの前記サイズに基づき、前記現在ノードを分割することにより生成された子ノードが、辺の長さが閾値より短い子クロマブロックを含むと決定することに従い、更に分割されず、前記閾値は4である、請求項1に記載の方法。
【請求項3】
前記現在ノードの前記クロマブロックは、以下の決定:
前記現在ノードの幅が閾値の2倍に等しく、前記現在ノードの前記分割モードが垂直2分割である、
前記現在ノードの高さが閾値の2倍に等しく、前記現在ノードの前記分割モードが水平2分割である、
前記現在ノードの幅が閾値の4倍に等しく、前記現在ノードの前記分割モードが垂直3分割である、
前記現在ノードの高さが閾値の4倍に等しく、前記現在ノードの前記分割モードが水平3分割である、又は、
前記現在ノードの幅が閾値の2倍に等しく、前記現在ノードの前記分割モードが4分割である、
のいずれかに従い更に分割されず、前記閾値は4である、請求項1に記載の方法。
【請求項4】
前記現在ノードの子ノードを取得するために、前記現在ノードの前記ルマブロックは、前記現在ノードの前記分割モードに基づき分割され、各子ノードは子ルマブロックのみを含む、請求項1に記載の方法。
【請求項5】
前記現在ノードの前記分割モード及び前記現在ノードの前記サイズに基づき、前記現在ノードを分割することにより生成された子ノードが、幅が閾値より短い子クロマブロックを含むと決定することに従い、前記現在ノードの前記クロマブロックは更に分割されず、前記閾値は4である、請求項1に記載の方法。
【請求項6】
前記現在ノードの前記分割モード及び前記現在ノードの前記サイズに基づき、前記現在ノードを分割することにより生成された子ノードが、クロマサンプル数が16より少ない子クロマブロックを含むと決定することに従い、前記現在ノードの前記クロマブロックは更に分割されない、請求項1に記載の方法。
【請求項7】
前記現在ノードの前記分割モードは、4分割(QT)、水平2分割(horizontal BT)、水平3分割(horizontal TT)、垂直2分割(Vertical BT)、及び垂直3分割(Vertical TT)、を含むグループのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項8】
前記現在ノードの前記クロマブロックが分割される必要があるかどうかは、前記現在ノードの前記分割モード、前記現在ノードの前記サイズ、及び
前記現在ノードに対応する分割フラグ(split_cu_flag)に基づき決定される、請求項1に記載の方法。
【請求項9】
前記現在ノードのデータ形式はYUV4:2:0又はYUV4:2:2である、請求項1に記載の方法。
【請求項10】
プロセッサとメモリとを含み、前記メモリは命令を格納し、前記命令は、前記プロセッサが請求項1~
9のいずれか一項に記載の方法を実行できるようにする、ビデオストリーム復号機器。
【請求項11】
プロセッサとメモリとを含み、前記メモリは命令を格納し、前記命令は、前記プロセッサが請求項1~
9のいずれか一項に記載の方法を実行できるようにする、ビデオストリーム符号化機器。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、ビデオ符号化の分野に、より正確には、ピクチャパーティショニング(picture partition)方法及び機器に関する。
【背景技術】
【0002】
インターネット技術が急速に発展し、人々の物質的及び精神的文化が益々豊かになるにつれ、インターネット上のビデオ、特に高解像度ビデオのアプリケーションに対する要求が増大している。しかしながら、高解像度ビデオは、非常に大量のデータを有する。限られた帯域幅を有するインターネット上で高解像度ビデオを送信するために、先ず解決される必要のある問題は、ビデオの符号化及び復号である。ビデオ符号化は、広範囲のデジタルビデオアプリケーション、例えば、放送用デジタルテレビ、インターネット及び移動体ネットワークを介するビデオ送信、ビデオチャット及びビデオ会議のようなリアルタイム会話アプリケーション、DVD及びBlue-rayディスク、ビデオコンテンツ取得及び編集システム、及びカムコーダのセキュリティアプリケーションで使用される。
【0003】
ビデオシーケンスの各ピクチャは、通常、重なり合わないブロックのセットにパーティショニングされ、符号化は、通常、ブロックレベルで実行される。例えば、予測ブロックは、空間(イントラピクチャ)予測及び/又は時間(インターピクチャ)予測を通じて生成される。相応して、予測モードは、イントラ予測モード(空間予測)及びインター予測モード(時間予測)を含んでよい。イントラ予測モードセットは、35個の異なるイントラ予測モード、例えばDC(又は平均)モード及び平面モードのような無指向性モード、又はH.265で定義される指向性モードを含んでよく、又は67個の異なるイントラ予測モード、例えばDC(又は平均)モード及び平面モードのような無指向性モード、又は策定中のH.266で定義される指向性モードを含んでよい。インター予測モードのセットは、利用可能な参照ピクチャ、及び、例えば参照ピクチャ全体が使用されるか又は参照ピクチャの一部のみが使用されるかに依存する別のインター予測パラメータに依存する。
【0004】
既存のビデオは、概して、カラービデオであり、ルマ成分に加えてクロマ成分を含む。従って、ルマ成分を符号化及び復号することに加えて、クロマ成分も符号化及び復号される必要がある。しかしながら、符号化及び復号効率は、従来の技術では比較的低い。
【発明の概要】
【0005】
本願(又は本開示)の実施形態は、ピクチャパーティショニング機器及び方法を提供する。
【0006】
第1の態様によると、本発明の実施形態は、ピクチャパーティショニング方法に関する。当該方法は、ビデオストリーム復号又は符号化機器により実行される。当該方法は、現在ノードの分割モードを決定するステップであって、前記現在ノードはルマブロック及びクロマブロックを含む、ステップと、前記現在ノードの前記分割モード及び前記現在ノードのサイズに基づき、前記現在ノードの前記クロマブロックが更に分割されないことを決定するステップと、前記現在ノードの前記クロマブロックが更に分割されないとき、前記現在ノードの前記分割モードに基づき、前記現在ノードの前記ルマブロックを分割するステップと、を含む。
【0007】
第1の態様における方法によると、前記現在ノードの前記クロマブロックが更に分割されないとき、前記現在ノードの前記ルマブロックのみが分割でき、それにより、符号化及び復号効率を向上し、コーデックの最大スループットを低減し、前記コーデックの実装を容易にする。
【0008】
第2の態様によると、本発明の実施形態は、プロセッサとメモリとを含むビデオストリーム復号機器に関する。前記メモリは命令を格納し、前記命令は、前記プロセッサに第1の態様による方法を実行できるようにさせる。
【0009】
第3の態様によると、本発明の実施形態は、プロセッサとメモリとを含むビデオストリーム符号化機器に関する。前記メモリは命令を格納し、前記命令は、前記プロセッサに第1の態様による方法を実行できるようにさせる。
【0010】
第4の態様によると、コンピュータ可読記憶媒体が提案される。前記コンピュータ可読記憶媒体は、命令を格納し、前記命令が実行されると、1つ以上のプロセッサがビデオデータを符号化できるようにさせられる。前記命令は、前記1つ以上のプロセッサに、第1の態様の任意の可能な実施形態による方法を実行できるようにさせる。
【0011】
第5の態様によると、本発明の実施形態は、プログラムコードを含むコンピュータプログラムに関する。前記プログラムコードがコンピュータ上で実行されると、第1の態様の任意の可能な実施形態による方法が実行される。
【0012】
1つ以上の実施形態の詳細は、添付の図面及び以下の説明において説明される。他の特徴、目的、及び利点は、説明、図面、及び請求項から明らかになるだろう。
【図面の簡単な説明】
【0013】
本願の実施形態における又は背景における技術的ソリューションを更に明確に説明するために、以下は、本願の実施形態又は背景を説明するための添付の図面を説明する。
【0014】
【
図1A】本発明の実施形態を実施するビデオ符号化システムの例のブロック図である。
【0015】
【
図1B】
図2のエンコーダ20及び
図3のデコーダ30のうちの一方又は両方を含むビデオ符号化システムの例のブロック図である。
【0016】
【
図2】本発明の実施形態を実施するビデオエンコーダの例示的な構造を示すブロック図である。
【0017】
【
図3】本発明の実施形態を実施するビデオデコーダの例示的な構造を示すブロック図である。
【0018】
【
図4】符号化機器又は復号機器の例を示すブロック図である。
【0019】
【
図5】別の符号化機器又は別の復号機器の例を示すブロック図である。
【0020】
【0021】
【0022】
【0023】
【
図9】本発明の実施形態1による方法のフローチャートである。
【0024】
【
図10】本発明の実施形態1のステップ906のフローチャートである。
【0025】
【
図11】本発明の実施形態3による方法のフローチャートを示す。
【0026】
以下では、特に断りのない限り、同一の参照符号は同一の又は少なくとも機能的に等価な特徴を表す。
【発明を実施するための形態】
【0027】
ビデオ符号化は、通常、ビデオ又はビデオシーケンスを形成する、ピクチャのシーケンスの処理を表す。用語「ピクチャ(picture)」、「フレーム(frame)」及び「画像(image)」は、ビデオ符号化の分野では同義語として使用され得る。本願(又は本開示)で使用されるビデオ符号化は、ビデオ符号化又はビデオ復号を示す。ビデオ符号化は、ソース側で実行され、例えば、生ビデオピクチャを処理することにより(例えば、圧縮により)、より効率的な記憶及び/又は送信のために、ビデオピクチャを表現するために必要なデータ量を削減する。ビデオ復号は、宛先側で実行され、通常、エンコーダと比べたとき逆の処理を含み、ビデオピクチャを再構成する。実施形態におけるビデオピクチャの「符号化」は、ビデオシーケンスの「符号化」又は「復号」として理解されるべきである。符号化コンポーネント及び復号コンポーネントの結合は、コーデック(符号化及び復号)とも呼ばれる。
【0028】
ビデオシーケンスの各ピクチャは、通常、重なり合わないブロックのセットにパーティショニングされ、符号化は、通常、ブロックレベルで実行される。言い換えると、エンコーダ側で、ビデオは、通常、ブロック(ピクチャブロック又はビデオブロックとも呼ばれる)レベルで、例えば空間(イントラピクチャ)予測及び/又は時間(インターピクチャ)予測を使用して予測ブロックを生成し、予測ブロックを現在ブロック(現在処理されている/処理されるべきブロック)から減算して残差ブロックを取得し、残差ブロックを変換し及び残差ブロックを変換ドメインにおいて量子化して送信されるべきデータ量を削減することにより、処理され、つまり符号化される(圧縮される)。デコーダ側では、エンコーダと比べて逆の処理が、符号化又は圧縮されたブロックに適用されて、提示のために現在ブロックを再構成する。更に、エンコーダは、デコーダ処理ループを複製し、その結果、エンコーダ及びデコーダは、後続ブロックを処理する、つまり符号化するために、同一の予測(例えば、イントラ予測及びインター予測)及び/又は再構成を生成する。
【0029】
用語「ブロック」はピクチャ又はフレームの一部であってよい。主要な用語は、本願において以下の通り定義される。
【0030】
現在ブロックは、処理中のブロックである。例えば、符号化では、現在ブロックは、現在符号化中のブロックであり、復号では、現在ブロックは、復号中のブロックである。現在処理されているブロックがクロマ成分ブロックである場合、現在処理されているブロックは現在クロマブロックと呼ばれる。現在クロマブロックに対応するルマブロックは、現在ルマブロックと呼ばれてよい。
【0031】
CTUは、符号化木単位(coding tree unit)の略語である。ピクチャは複数のCTUを含み、1つのCTUは、通常、1つの正方形ピクチャ領域に対応し、ピクチャ領域内にルマサンプル及びクロマサンプルを含む(又はルマサンプルのみを含んでよく、又はクロマサンプルのみを含んでよい)。CTUは、シンタックス要素を更に含む。これらのシンタックス要素は、どのように、CTUを少なくとも1つの符号化単位(coding unit, CU)に分割するか、及び各符号化単位を復号して再構成ピクチャを取得するかについての方法を示す。
【0032】
CUは、符号化単位の略語である。CUは、通常、A×B長方形領域に対応し、A×B個のルマサンプル及びルマサンプルに対応するクロマサンプルを含む。ここで、Aは長方形の幅であり、Bは長方形の高さであり、AはBと同じ又は異なってよい。A及びBの値は、通常、2の整数乗、例えば、256、128、64、32、16、8、及び4である。符号化単位は、A×B長方形領域の再構成ピクチャを取得するために、復号処理を通じて復号されてよい。復号処理は、通常、予測、逆量子化、及び逆変換のような処理を実行することを含み、予測ピクチャ及び残差を生成する。再構成ピクチャは、予測ピクチャ及び残差を重畳することにより取得される。
【0033】
以下はエンコーダ20、デコーダ30及び符号化システム10の実施形態を、
図1A~
図3に基づき説明する。
【0034】
図1Aは、本願(本開示)の技術を利用し得る符号化システム10、例えばビデオ符号化システム10の例を示す概念的又は概略的ブロック図である。ビデオ符号化システム10のエンコーダ20(例えば、ビデオエンコーダ20)及びデコーダ30(例えば、ビデオデコーダ30)は、本願で説明される種々の例に従うイントラ予測を実行するよう構成され得る装置の例を表す。
図1Aに示すように、符号化システム10は、符号化データ13、例えば符号化ピクチャ13を、符号化データ13を復号する宛先装置14に提供するよう構成されるソース装置12を含む。
【0035】
ソース装置12は、エンコーダ20を含み、追加で又は任意的に、ピクチャソース16、前処理ユニット18、例えばピクチャ前処理ユニット18、及び通信インタフェース又は通信ユニット22を含んでよい。
【0036】
ピクチャソース16は、例えば現実のピクチャをキャプチャする任意のタイプのピクチャキャプチャ装置、及び/又はピクチャピクチャ若しくはコメント(スクリーンコンテンツ符号化では、スクリーン上の何らかのテキストも符号化されるべきピクチャ又は画像の一部と考えられる)を生成する任意のタイプの装置、例えばコンピュータアニメーションピクチャを生成するコンプータグラフィックプロセッサ、又は、現実のピクチャ、コンピュータアニメーションピクチャ(例えば、スクリーンコンテンツ、又は仮想現実(virtual reality, VR)ピクチャ)及び/又はそれらの任意の組み合わせ(例えば、拡張現実(augmented reality, AR)ピクチャ)を取得し及び/又は提供する任意のタイプの他の装置、を含んでよく又はそれであってよい。
【0037】
ピクチャは、ルマ値を有するサンプルの2次元配列又は行列と考えることができる。配列の中のサンプルは、ピクセル(pixel)(ピクチャ要素(picture element)の短縮形)又はペル(pel)とも呼ばれてよい。配列又はピクチャの水平及び垂直方向(又は軸)にあるサンプルの数は、ピクチャのサイズ及び/又は解像度を定める。色の表現のために、通常、3つの色成分が利用される。具体的に言うと、ピクチャは、3つのサンプル配列として表現され又はそれを含んでよい。RBG形式又は色空間では、ピクチャは、対応する赤、緑、及び青色サンプル配列を含む。しかしながら、ビデオ符号化では、各ピクセルは、通常、ルマ/クロマ形式又は色空間で表現される。例えば、YCbCrは、Y(時に、Lが代わりに使用される)により示されるルマ成分、及びCb及びCrにより示される2つのクロマ成分、を含む。輝度(略してluma)成分Yは、明るさ又はグレーレベル強度(例えば、グレイスケールピクチャにおけるような)を表現する。一方で、2つの色度(略してchroma)成分Cb及びCrは、色度又は色情報成分を表現する。したがって、YCbCr形式のピクチャは、ルマサンプル値(Y)のルマサンプル配列と、クロマ値(Cb及びCr)の2つのクロマサンプル配列とを含む。RGB形式のピクチャは、YCbCr形式に転換され又は変換されてよく、逆も同様であり、処理は色転換又は変換としても知られる。ピクチャが単色である場合、ピクチャは、ルマサンプル配列のみを含んでよい。
【0038】
ピクチャソース16(例えば、ビデオソース16)は、例えばピクチャをキャプチャするカメラ、前にキャプチャした若しくは生成したピクチャを含む若しくは格納するピクチャメモリのようなメモリ、及び/又はピクチャを取得し若しくは受信するための任意の種類の(内部又は外部)インタフェースであってよい。カメラは、例えば、ソース装置に統合されたローカルカメラ又は内蔵カメラであってよい。メモリは、例えばソース装置に統合されたローカルメモリ又は内蔵メモリであってよい。インタフェースは、例えば、外部ビデオソースからピクチャを受信する外部インタフェースであってよい。外部ビデオソースは、例えば、カメラ、外部メモリ、又は外部ピクチャ生成装置のような、外部ピクチャキャプチャ装置である。外部ピクチャ生成装置は、例えば、外部コンピュータグラフィックプロセッサ、コンピュータ又はサーバである。インタフェースは、任意の独自又は標準化インタフェースプロトコルに従い、任意のタイプのインタフェース、例えば有線若しくは無線インタフェース、又は光インタフェースであってよい。ピクチャデータ17を取得するインタフェースは、通信インタフェース22と同じインタフェースであってよく、又は通信インタフェース22の一部であってよい。
【0039】
前処理ユニット18及び前処理ユニット18により実行される処理と対照的に、ピクチャ又はピクチャデータ17(例えばビデオデータ16)は、生ピクチャ又は生ピクチャデータ17とも呼ばれてよい。
【0040】
前処理ユニット18は、(生)ピクチャデータ17を受信し、ピクチャデータ17を前処理して、前処理済みピクチャ19又は前処理済みピクチャデータ19を取得するよう構成される。例えば、前処理ユニット18により実行される前処理は、トリミング、色形式変換(例えば、RGBからYCbCrへの変換)、色調整、及びノイズ除去を含んでよい。前処理ユニット18は光コンポーネントであってよいことが理解され得る。
【0041】
エンコーダ20(例えばビデオエンコーダ20)は、前処理済みピクチャデータ19を受信し、符号化ピクチャデータ21を提供するよう構成される(詳細は、例えば
図2又は
図4に基づき更に後述される)。一例では、エンコーダ20は、実施形態1~3を実施するよう構成されてよい。
【0042】
ソース装置12の通信インタフェース22は、符号化ピクチャデータ21を受信し、符号化ピクチャデータ21を別の装置、例えば宛先装置14若しくは任意の他の装置へと、記憶又は直接再構成のために送信するよう構成されてよく、又は、相応して符号化データ13を格納する及び/又は符号化データ13を別の装置へ送信する前に、符号化ピクチャデータ21を処理するよう構成されてよい。ここで、別の装置は、例えば、宛先装置14又は復号又は記憶のための任意の他の装置である。
【0043】
宛先装置14は、デコーダ30(例えば、ビデオデコーダ30)を含み、追加で、つまり任意的に、通信インタフェース又は通信ユニット28、後処理ユニット32、及びディスプレイ装置34を含んでよい。
【0044】
宛先装置14の通信インタフェース28は、符号化ピクチャデータ21又は符号化データ13を、例えばソース装置12から又は任意の他のソースから直接受信するよう構成される。任意の他のソースは、例えば、符号化ピクチャデータ記憶装置のような記憶装置である。
【0045】
通信インタフェース22及び通信インタフェース28は、符号化ピクチャデータ21又は符号化データ13を、ソース装置12と宛先装置14との間の直接通信リンクを介して、又は任意のタイプのネットワークを介して、送信又は受信するよう構成されてよい。直接通信リンクは、例えば、直接有線又は無線接続であり、任意のタイプのネットワークは、例えば、有線又は無線ネットワーク又はそれらの任意の組合せ、又は任意のタイプの私設若しくは公衆ネットワーク又はそれらの任意の組合せである。
【0046】
通信インタフェース22は、通信リンク又は通信ネットワークを介して送信するために、例えば、符号化ピクチャデータ21を適切な形式、例えばパケットにパッケージするよう構成されてよい。
【0047】
通信インタフェース22の相手方を形成する通信インタフェース28は、例えば、符号化データ13をパッケージ解除して符号化ピクチャデータ21を取得するよう構成されてよい。
【0048】
通信インタフェース22及び通信インタフェース28の両者は、
図1Aのソース装置12から宛先装置14への符号化データ13の矢印により示されるように、単方向通信インタフェースとして構成されてよく、又は、双方向通信インタフェースとして構成されてよく、例えば接続を確立するため、肯定応答し及び通信リンク及び/又は符号化ピクチャデータ伝送のようなデータ送信に関連する任意の他の情報を交換するために、メッセージを送信し及び受信するよう構成されてよい。
【0049】
デコーダ30は、符号化ピクチャデータ21を受信し、復号ピクチャデータ31又は復号ピクチャ31を提供するよう構成される(詳細は、例えば
図3又は
図5に基づき更に後述される)。一例では、デコーダ30は、実施形態1~3を実施するよう構成されてよい。
【0050】
宛先装置14の後プロセッサ32は、復号ピクチャデータ31(再構成ピクチャデータとも呼ばれる)、例えば復号ピクチャ131を後処理して、後処理ピクチャ33のような後処理ピクチャデータ33を取得するよう構成される。後処理ユニット32により実行される後処理は、例えば色形式変換(例えば、YCbCrからRGBへの変換)、色補正、トリミング、又は再サンプリング、又は、例えば復号ピクチャデータ31をディスプレイ装置34による表示のために準備するための任意の他の処理、を含んでよい。
【0051】
宛先装置14のディスプレイ装置34は、ユーザ、ビューア、等にピクチャを表示するために、後処理ピクチャデータ33を受信するよう構成される。ディスプレイ装置34は、再構成ピクチャを提示する任意のタイプのディスプレイ、例えば内蔵又は外部ディスプレイ又はモニタであり又はそれを含んでよい。例えば、ディスプレイは、液晶ディスプレイ(liquid crystal display, LCD)、有機発光ダイオード(organic light emitting diode, OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、シリコン上の液晶(liquid crystal on silicon, LCoS)、デジタル光プロセッサ(digital light processor, DLP)、又は任意のタイプの他のディスプレイ、を含んでよい。
【0052】
図1Aは、ソース装置12及び宛先装置14を別個の装置として示すが、装置の実施形態は、代替として、ソース装置12及び宛先装置14の両方、又はソース装置12及び宛先装置14の両方の機能、つまりソース装置12又は対応する機能及び宛先装置14又は対応する機能を含んでよい。このような実施形態では、ソース装置12又は対応する機能及び宛先装置14又は対応する機能は、同じハードウェア及び/又はソフトウェア、別個のハードウェア及び/又はソフトウェア又はそれらの任意の組み合わせを用いて実装されてよい。
【0053】
説明に基づき当業者に明らかなように、
図1Aに示されるソース装置12及び/又は宛先装置14内の異なるユニットの機能又は機能の(正確な)分割は、実際の装置及び用途に依存して変化してよい。
【0054】
エンコーダ20(例えば、ビデオエンコーダ20)及びデコーダ30(例えば、ビデオデコーダ30)は、種々の適正な回路、例えば、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processor, DSP)、特定用途向け集積回路(application-specific integrated circuit, ASIC)、フィールドプログラマブルゲートアレイ(field-programmable gate array, FPGA)、個別ロジック、ハードウェア、又はそれらの任意の組合せ、のうちの任意の1つとして実装されてよい。技術が部分的にソフトウェアを使用して実装される場合、装置は、適正な非一時的コンピュータ可読記憶媒体にソフトウェア命令を格納してよく、該命令を1つ以上のプロセッサのようなハードウェアを用いて実行して、本開示の技術を実行してよい。前述の内容のいずれか(ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組み合わせ、等を含む)は、1つ以上のプロセッサとして考えられてよい。ビデオエンコーダ20及びビデオデコーダ30は、それぞれ、1つ以上のエンコーダ又はデコーダに含まれてよく、エンコーダ又はデコーダのいずれかは、対応する機器の中の結合されたエンコーダ/デコーダ(codec)の部分に統合されてよい。
【0055】
ソース装置12は、ビデオ符号化装置又はビデオ符号化機器と呼ばれてよい。宛先装置14は、ビデオ復号装置又はビデオ復号機器と呼ばれてよい。ソース装置12及び宛先装置14は、ビデオ符号化装置又はビデオ符号化機器の例であってよい。
【0056】
ソース装置12及び宛先装置14は、任意のタイプのハンドヘルド又は固定装置、例えばノートブック又はラップトップコンピュータ、移動電話機、スマートフォン、タブレット又はタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビジョン、ディスプレイ装置、デジタルメディアプレイヤ、ビデオゲーム端末、(コンテンツサービスサーバ、又はコンテンツ配信サーバのような)ビデオストリーミング装置、ブロードキャスト受信装置、又はブロードキャスト送信装置、を含む、広範な装置のうちのいずれかを含んでよく、任意のタイプのオペレーティングシステムを使用してよく又は使用しなくてよい。
【0057】
幾つかの場合には、ソース装置12及び宛先装置14は、無線通信のために装備されてよい。従って、ソース装置12及び宛先装置14は、無線通信装置であってよい。
【0058】
幾つかの場合には、
図1Aに示されるビデオ符号化システム10は単に例であり、本願の技術は、必ずしも符号化装置と復号装置との間の任意のデータ通信を含まないビデオ符号化設定(例えば、ビデオ符号化又はビデオ復号)に適用可能である。別の例では、データはローカルメモリから読み出される、ネットワークを介してストリーミングされる、等であってよい。ビデオ符号化装置は、データを符号化し、データをメモリに格納してよく、及び/又はビデオ復号装置は、メモリからデータを読み出し、データを復号してよい。幾つかの例では、符号化及び復号は、互いに通信しないが単にデータをメモリへと符号化し及び/又はメモリからデータを読み出しデータを復号する装置により実行される。
【0059】
理解されるべきことに、ビデオエンコーダ20を参照して説明した上述の例の各々について、ビデオデコーダ30は、逆の処理を実行するよう構成されてよい。シグナリングシンタックス要素に関して、ビデオデコーダ30は、これらのシンタックス要素を受信しパースし、相応して関連するビデオデータを復号するよう構成できる。幾つかの例では、ビデオエンコーダ20は、シンタックス要素を符号化ビデオビットストリームへとエントロピー符号化してよい。これらの例では、ビデオデコーダ30は、これらのシンタックス要素をパースし、相応して関連付けられたビデオデータを復号してよい。
【0060】
図1Bは、例示的な実施形態による、
図2のエンコーダ20及び/又は
図3のデコーダ30を含むビデオ符号化システム40の例の説明図である。システム40は、本願の種々の技術の組合せを実施できる。図示の実装では、ビデオ符号化システム40は、画像装置41、ビデオエンコーダ20、ビデオデコーダ30(及び/又は処理ユニット46の論理回路47により実装されるビデオエンコーダ/デコーダ)、アンテナ42、1つ以上のプロセッサ43、1つ以上のメモリ44、及び/又はディスプレイ装置45を含んでよい。
【0061】
図に示されるように、画像装置41、アンテナ42、処理ユニット46、論理回路47、ビデオエンコーダ20、ビデオデコーダ30、プロセッサ43、メモリ44、及び/又はディスプレイ装置45は、互いに通信できる。説明したように、ビデオ符号化システム40はビデオエンコーダ20及びビデオデコーダ30を用いて図示されたが、別の異なる例では、ビデオ符号化システム40は、ビデオエンコーダ20のみ又はビデオデコーダ30のみを含んでよい。
【0062】
幾つかの例では、図に示されるように、ビデオ符号化システム40は、アンテナ42を含んでよい。例えば、アンテナ42は、ビデオデータの符号化ビットストリームを送信又は受信するよう構成されてよい。更に、幾つかの例では、ビデオ符号化システム40はディスプレイ装置45を含んでよい。ディスプレイ装置45は、ビデオデータを提示するよう構成されてよい。幾つかの例では、図に示されるように、論理回路47は、処理ユニット46により実装されてよい。処理ユニット46は、特定用途向け集積回路(application-specific integrated circuit, ASIC)ロジック、グラフィックプロセッサ、汎用プロセッサ、等を含んでよい。ビデオ符号化システム40は、任意的なプロセッサ43も含んでよい。任意的なプロセッサ43は、同様に、特定用途向け集積回路(application-specific integrated circuit, ASIC)ロジック、グラフィックプロセッサ、汎用プロセッサ、等を含んでよい。幾つかの例では、論理回路47は、ハードウェア、例えばビデオ符号化専用ハードウェアにより実装されてよく、プロセッサ43は、汎用ソフトウェア、オペレーティングシステム、等により実装されてよい。更に、メモリ44は、任意のタイプのメモリ、例えば、揮発性メモリ(例えば、静的ランダムアクセスメモリ(Static Random Access Memory, SRAM)又は動的ランダムアクセスメモリ(Dynamic Random Access Memory, DRAM))又は不揮発性メモリ(例えば、フラッシュメモリ)であってよい。非限定的な例では、メモリ44はキャッシュメモリにより実装されてよい。幾つかの例では、論理回路47は、(例えば、ピクチャバッファの実装のために)メモリ44にアクセスしてよい。他の例では、論理回路47及び/又は処理ユニット46は、ピクチャバッファ等の実装のためにメモリ(例えばキャッシュ)を含んでよい。
【0063】
幾つかの例では、論理回路により実装されるビデオエンコーダ20は、(例えば、処理ユニット46又はメモリ44により実装される)ピクチャバッファ、及び(例えば、処理ユニット46により実装される)グラフィック処理ユニットを含んでよい。グラフィック処理ユニットは、ピクチャバッファに通信可能に接続されてよい。グラフィック処理ユニットは、
図2を参照して説明された種々のモジュール及び/又は本明細書で説明される任意の他のエンコーダシステム若しくはサブシステムを実装するために、論理回路47により実装されるビデオエンコーダ20を含んでよい。論理回路は、本明細書で説明される種々の動作を実行するよう構成されてよい。
【0064】
ビデオデコーダ30は、
図3のデコーダ30に関して議論されるような種々のモジュール及び/又は本明細書で説明される任意の他のデコーダシステム若しくはサブシステムを実現するために、論理回路47により実装されるのと同様の方法で実装されてよい。幾つかの例では、論理回路により実装されるビデオデコーダ30は、(例えば、処理ユニット2820又はメモリ44により実装される)ピクチャバッファ、及び(例えば、処理ユニット46により実装される)グラフィック処理ユニットを含んでよい。グラフィック処理ユニットは、ピクチャバッファに通信可能に接続されてよい。グラフィック処理ユニットは、
図3を参照して説明される種々のモジュール及び/又は本明細書で説明される任意の他のデコーダシステム若しくはサブシステムを実装するために、論理回路47により実装されるビデオデコーダ30を含んでよい。
【0065】
幾つかの例では、ビデオ符号化システム40のアンテナ42は、ビデオデータの符号化ビットストリームを受信するよう構成されてよい。説明したように、符号化ビットストリームは、本明細書で説明されるビデオフレーム符号化に関連する、データ、指示子、インデックス値、モード選択データ、等、例えば、符号化パーティショニングに関連するデータ(例えば、変換係数又は量子化済み変換係数、(説明するような)任意的な指示子、及び/又は符号化パーティショニングを定めるデータ)を含んでよい。ビデオ符号化システム40は、アンテナ42に接続され符号化ビットストリームを復号するよう構成されるビデオデコーダ30を更に含んでよい。ディスプレイ装置45は、ビデオフレームを提示するよう構成される。
【0066】
エンコーダ及び符号化方法
【0067】
図2は、本願の(開示された)技術を実装するよう構成されるビデオエンコーダ20の例の概略的/概念的ブロック図である。
図2の例では、ビデオエンコーダ20は、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタユニット220、復号ピクチャバッファ(decoded picture buffer, DPB)230、予測処理ユニット260、及びエントロピー符号化ユニット270を含む。予測処理ユニット260は、インター予測ユニット244、イントラ予測処理ユニット254、及びモード選択ユニット262を含んでよい。インター予測ユニット244は、動き推定ユニット及び動き補償ユニット(図示しない)を含んでよい。
図2に示されるビデオエンコーダ20は、ハイブリッドビデオエンコーダ又はハイブリッドビデオコーデックに基づくビデオエンコーダとも呼ばれてよい。
【0068】
例えば、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、予測処理ユニット260、及びエントロピー符号化ユニット270は、エンコーダ20の順方向信号経路を形成する。一方で、例えば、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(decoded picture buffer, DPB)230、予測処理ユニット260は、エンコーダの逆方向信号経路を形成し、ビデオエンコーダの逆方向信号経路はデコーダの信号経路に対応する(
図3のデコーダ30を参照)。
【0069】
エンコーダ20は、例えば入力202を介して、ピクチャ201又はピクチャ201のブロック203、例えばビデオ又はビデオシーケンスを形成するピクチャのシーケンスの中のピクチャを受信する。(特に、ビデオ符号化では、現在ピクチャを他のピクチャ、例えば同じビデオシーケンス、つまり現在ピクチャも含むビデオシーケンスの中の前の符号化及び/又は復号ピクチャと区別するために、)ピクチャブロック203は、現在ピクチャブロック又は被符号化ピクチャブロックと呼ばれてもよく、及びピクチャ201は、現在ピクチャ又は被符号化ピクチャと呼ばれてよい。
【0070】
パーティショニング
【0071】
実施形態では、エンコーダ20は、ピクチャ201をブロック203のような複数のブロックにパーティショニングするよう構成されるパーティショニングユニット(
図2に示されない)を含んでよい。ピクチャ201は、通常、複数の重なり合わないブロックにパーティショニングされる。パーティショニング単位は、同じブロックサイズをビデオシーケンスの全部のピクチャ、及びブロックサイズを定める対応するグリッドに対して使用し、又はピクチャ又はピクチャのサブセット若しくはグループ間のブロックサイズを変更し、各ピクチャを対応するブロックにパーティショニングするよう構成されてよい。
【0072】
一例では、ビデオエンコーダ20の予測処理ユニット260は、上述のパーティショニング技術の任意の組み合わせを実行するよう構成されてよい。
【0073】
ピクチャ201と同様に、ブロック203も、ルマ値(サンプル値)を有するサンプルの2次元配列又は行列と考えられ又は考えられてよいが、ブロック203のサイズはピクチャ201のサイズより小さい。言い換えると、ブロック203は、例えば1つのサンプル配列(例えば、単色ピクチャ201の場合には、ルマ配列)、3つのサンプル配列(例えば、カラーピクチャの場合には、1つのルマ配列及び2つのクロマ配列)、又は適用される色形式に依存して任意の他の数の及び/又はタイプの配列を含んでよい。ブロック203の水平及び垂直方向(又は軸)にあるサンプルの数は、ブロック203のサイズを定める。
【0074】
図2に示すエンコーダ20は、ブロック毎にピクチャ201を符号化するよう、例えば各ブロック203を符号化し及び予測するよう構成される。
【0075】
残差計算
【0076】
残差計算ユニット204は、残差ブロック205を、ピクチャブロック203及び予測ブロック265(予測ブロック265に関する詳細は以下に更に提供される)に基づき、例えば予測ブロック265のサンプル値をピクチャブロック203のサンプル値からサンプル毎に(ピクセル毎に)減算してサンプルドメインにおける残差ブロック205を取得することにより、計算するよう構成される。
【0077】
変換
【0078】
変換処理ユニット206は、変換、例えば離散コサイン変換(discrete cosine transform, DCT)又は離散サイン変換(discrete sine transform, DST)を残差ブロック205のサンプル値に対して適用して、変換ドメインにおける変換係数207を取得するよう構成される。変換係数207は、変換残差係数とも呼ばれ、変換ドメインにおける残差ブロック205を表してよい。
【0079】
変換処理ユニット206は、HEVC/H.265で指定された変換のようなDCT/DSTの整数近似を適用するよう構成されてよい。直交DCT変換と比べて、このような整数近似は、通常、特定の因子によりスケーリングされる。順方向及び逆変換を用いて処理される残差ブロックの水準を維持するために、追加スケーリング因子が変換処理の部分として適用される。スケーリング因子は、通常、幾つかの制約、例えば、スケーリング因子がシフト操作の2乗であること、変換係数のビット深さ、精度と実装コストとの間のトレードオフ、に基づき選択される。例えば、特定のスケーリング因子は、逆変換、例えばデコーダ30の側にある逆変換処理ユニット212による逆変換(及び例えばエンコーダ20の側にある逆変換処理ユニット212による対応する逆変換)のために指定され、相応して、対応するスケーリング因子は、エンコーダ20の側にある変換処理ユニット206による順方向変換のために指定されてよい。
【0080】
量子化
【0081】
量子化ユニット208は、変換係数207を量子化して、例えばスカラー量子化又はベクトル量子化を適用することにより、量子化済み変換係数209を取得するよう構成される。量子化変換係数209は、量子化済み残差係数209とも呼ばれてよい。量子化処理は、変換係数207の一部又は全部に関連するビット深さを低減できる。例えば、nビットの変換係数は、量子化の間、mビットの変換係数に切り捨てられてよい。ここで、nはmより大きい。量子化の程度は、量子化パラメータ(quantization parameter, QP)を調整することにより、変更されてよい。例えば、スカラー量子化では、より精細な又はより粗い量子化を達成するために異なるスケーリングが適用されてよい。量子化ステップサイズが小さいほど、精細な量子化に対応し、量子化ステップサイズが大きいほど、粗い量子化に対応する。適切な量子化ステップサイズは、量子化パラメータ(quantization parameter, QP)により示されてよい。例えば、量子化パラメータは、適切な量子化ステップサイズの所定のセットに対するインデックスであってよい。例えば、量子化パラメータが小さいほど、精細な量子化(小さな量子化ステップサイズ)に対応してよく、量子化パラメータが大きいほど、粗い量子化(大きな量子化ステップサイズ)に対応してよく、逆も同様である。量子化は、量子化ステップサイズによる除算、例えば逆量子化ユニット210により実行される対応する量子化又は逆量子化を含んでよく、又は、量子化ステップサイズによる乗算を含んでよい。HEVCのような幾つかの標準に従う実施形態は、量子化ステップサイズを決定するために量子化パラメータを使用し得る。概して、量子化ステップサイズは、除算を含む式の不動点近似を用いて、量子化パラメータに基づき計算されてよい。量子化ステップサイズ及び量子化パラメータの式の不動点近似において使用されるスケーリングのために変更され得る残差ブロックの水準を復元するために、量子化及び逆量子化のための追加のスケーリング因子が導入されてよい。1つの例示的な実装では、逆変換及び逆量子化のスケーリングは結合されてよい。代替として、カスタマイズされた量子化テーブルが使用され、エンコーダからデコーダへ、例えばビットストリームの中でシグナリングされてよい。量子化は、損失動作であり、損失は量子化ステップサイズの増大に伴い増大する。
【0082】
逆量子化ユニット210は、量子化ユニット208の逆量子化を量子化済み係数に適用して、逆量子化済み係数211を取得するよう、例えば、量子化ユニット208と同じ量子化ステップサイズに基づき又はそれを用いて、量子化ユニット208により適用された量子化方式の逆を適用するよう構成される。逆量子化済み係数211は、逆量子化残差係数211とも呼ばれ、変換係数207に対応してよいが、通常、量子化により引き起こされる損失のために変換係数と同一ではない。
【0083】
逆変換処理ユニット212は、変換処理ユニット206により適用された変換の逆変換、例えば逆離散コサイン変換(discrete cosine transform, DCT)又は逆離散サイン変換(discrete sine transform, DST)を適用して、サンプルドメインにおける逆変換ブロック213を取得するよう構成される。逆変換ブロック213は、逆変換逆量子化済みブロック213又は逆変換残差ブロック213とも呼ばれてよい。
【0084】
再構成ユニット214(例えば、加算器214)は、例えば再構成残差ブロック213のサンプル値と予測ブロック265のサンプル値とを加算することにより、逆変換ブロック213(つまり、再構成残差ブロック213)を予測ブロック265に加算して、サンプルドメインにおける再構成ブロック215を取得するよう構成される。
【0085】
任意的に、例えばラインバッファ216のバッファユニット216(又は略して「バッファ」216)は、再構成ブロック215及び対応するサンプル値を、例えばイントラ予測のためにバッファリングし又は格納するよう構成される。他の実施形態では、エンコーダは、フィルタリングされていない再構成ブロック及び/又はバッファユニット216に格納された対応するサンプル値を、任意のタイプの推定及び/又は予測、例えばイントラ予測のために使用するよう構成されてよい。
【0086】
例えば、実施形態では、エンコーダ20は、バッファユニット216がイントラ予測254のために再構成ブロック215を格納するために使用されるだけでなく、ループフィルタユニット220(
図2に示されない)のためにも使用されるように、及び/又は、例えば、バッファユニット216及び復号ピクチャバッファユニット230が1つのバッファを形成するように、構成されてよい。他の実施形態では、フィルタリング済みブロック221及び/又は復号ピクチャバッファ230からのブロック若しくはサンプル(ブロック若しくはサンプルは
図2に示されない)は、イントラ予測254のための入力又は基礎として使用される。
【0087】
ループフィルタユニット220(又は略して「ループフィルタ」220)は、再構成ブロック215をフィルタリングし、フィルタリング済みブロック221を取得して、ピクセル遷移を円滑化するよう或いはビデオ品質を向上するよう構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset, SAO)フィルタ、又はバイラテラルフィルタ、適応ループフィルタ(adaptive loop filter, ALF)、先鋭化若しくは円滑化フィルタのような別のフィルタ、又は共同フィルタ、のような1つ以上のループフィルタを表すことを意図する。ループフィルタユニット220はインループフィルタとして
図2に示されるが、別の構成では、ループフィルタユニット220はポストループフィルタとして実装されてよい。フィルタリング済みブロック221は、フィルタリング済み再構成ブロック221と呼ばれてもよい。復号ピクチャバッファ230は、ループフィルタユニット220がフィルタリング動作を再構成符号化ブロックに対して実行した後に、再構成符号化ブロックを格納してよい。
【0088】
実施形態では、エンコーダ20(相応して、ループフィルタユニット220)は、(サンプル適応オフセット情報のような)ループフィルタパラメータを、例えば直接に又はエントロピー符号化ユニット270若しくは任意の他のエントロピー符号化ユニットにより実行されたエントロピー符号化の後に、出力するよう構成されてよい。その結果、例えば、デコーダ30は、同じループフィルタパラメータを受信し、同じループフィルタパラメータを復号のために適用できる。
【0089】
復号ピクチャバッファ(decoded picture buffer, DPB)230は、ビデオエンコーダ20によるビデオデータ符号化において使用するために、参照ピクチャデータを格納する参照ピクチャメモリであってよい。DPB230は、(同期DRAM(synchronous DRAM, SDRAM)、磁気抵抗RAM(magnetoresistive RAM, MRAM)、抵抗RAM(resistive RAM, RRAM)を含む)動的ランダムアクセスメモリ(dynamic random access memory, DRAM)、又は他のタイプのメモリ装置のような、種々のメモリ装置のうちのいずれか1つにより形成されてよい。DPB230及びバッファ216は、同じメモリ装置又は別個のメモリ装置により提供されてよい。例では、復号ピクチャバッファ(decoded picture buffer, DPB)230は、フィルタリング済みブロック221を格納するよう構成される。復号ピクチャバッファ230は、同じ現在ピクチャの又は異なるピクチャ、例えば前の再構成ピクチャの、他の前のフィルタリング済みブロック、例えば前の再構成フィルタリング済みブロック221を格納するよう更に構成されてよく、完全な前の再構成、つまり復号ピクチャ(及び対応する参照ブロック及びサンプル)、及び/又は部分的な再構成現在ピクチャ(及び対応する参照ブロック及びサンプル)を、例えばインター予測のために提供してよい。例では、再構成ブロック215がインループフィルタリングを伴わずに再構成された場合、復号ピクチャバッファ(decoded picture buffer, DPB)230は再構成ブロック215を格納するよう構成される。
【0090】
予測処理ユニット260は、ブロック予測処理ユニット260とも呼ばれ、ピクチャブロック203(現在ピクチャ201の現在ブロック203)及び再構成ピクチャデータ、例えば同じ(現在)ピクチャの参照サンプルをバッファ216から、及び/又は1つ以上の前の復号ピクチャの参照ピクチャデータ231を復号ピクチャバッファ230から受信し又は取得し、このようなデータを予測のために処理し、具体的には、インター予測ブロック245又はイントラ予測ブロック255であってよい予測ブロック265を提供するよう構成される。
【0091】
モード選択ユニット262は、予測モード(例えば、イントラ又はインター予測モード)及び/又は残差ブロック205の計算のために及び再構成ブロック215の再構成のために予測ブロック265として使用されるべき対応する予測ブロック245又は255を選択するよう構成されてよい。
【0092】
実施形態では、モード選択ユニット262は、(例えば、予測処理ユニット260によりサポートされる予測モードから)予測モードを選択するよう構成されてよい。予測モードは、最適一致、又は言い換えると最小残差(最小残差は送信又は記憶のための良好な圧縮を意味する)を提供し、又は、最小シグナリングオーバヘッド(最小シグナリングオーバヘッドは、送信又は記憶のための良好な圧縮を意味する)を提供し、又は両者を考慮し若しくはバランスを取る。モード選択ユニット262は、レート歪み最適化(rate-distortion optimization, RDO)に基づき、予測モードを決定するよう、つまり、最小レート歪み最適化を提供する予測モードを選択する若しくは関連するレート歪みが予測モード選択基準を少なくとも満たす予測モードを選択するよう構成されてよい。
【0093】
以下では、エンコーダ20の例により(例えば、予測処理ユニット260を用いて)実行される予測処理、及び(例えば、モード選択ユニット262を用いて)実行されるモード選択が更に詳細に説明される。
【0094】
上述のように、エンコーダ20は、最良予測モード又は最適予測モードを決定し又は(予め決定された)予測モードのセットから選択するよう構成される。予測モードのセットは、例えばイントラ予測モード及び/又はインター予測モードを含んでよい。
【0095】
イントラ予測モードセットは、35個の異なるイントラ予測モードを含んでよく、又は67個の異なるイントラ予測モードを含んでよく、又は策定中のH.266で定義されるイントラ予測モードを含んでよい。
【0096】
インター予測モードのセットは、利用可能な参照ピクチャ(つまり、DBP230に格納された復号ピクチャの少なくとも一部)、及び、例えば最適一致参照ブロックを検索するために参照ピクチャ全体が使用されるか又は参照ピクチャの一部のみ、例えば現在ブロックの領域の周囲にある検索ウインドウ領域が使用されるかどうかに依存する、及び/又は例えば2分の1ピクセル及び/又は4分の1ピクセル補間のようなピクセル補間が適用されるかどうかに依存する、別のインター予測パラメータに依存する。
【0097】
上述の予測モードに加えて、スキップモード及び/又は直接モードが適用されてよい。
【0098】
予測処理ユニット260は、例えば、4分木(quad-tree, QT)パーティショニング、2分木(binary-tree, BT)パーティショニング、3分木(triple-tree, TT)パーティショニング、又はそれらの任意の組合せを繰り返し用いて、ブロック203をより小さなブロックパーティション又はサブブロックに分割し、例えばブロックパーティション又はサブブロックの各々について予測を実行するよう更に構成されてよい。モード選択は、予測ブロック203の木構造の選択、及びブロックパーティション又はサブブロックの各々に適用される予測モードの選択を含む。
【0099】
インター予測ユニット244は、動き推定(motion estimation, ME)ユニット(
図2に示されない)及び動き補償(motion compensation, MC)ユニット(
図2に示されない)を含んでよい。動き推定ユニットは、ピクチャブロック203(現在ピクチャ201の現在ピクチャブロック203)、及び復号ピクチャ231、又は少なくとも1つ以上の前の再構成ブロック、例えば他の/異なる前の復号ピクチャ231の1つ以上の再構成ブロックを、動き推定のために受信し又は取得するよう構成される。例えば、ビデオシーケンスは、現在ピクチャ及び前の復号ピクチャ31を含んでよい。言い換えると、現在ピクチャ及び前の復号ピクチャ31は、ビデオシーケンスを形成するピクチャのシーケンスの一部であり又はそれを形成してよい。
【0100】
例えば、エンコーダ20は、複数の他のピクチャのうちの同じピクチャ又は異なるピクチャの複数の参照ブロックから参照ブロックを選択し、動き推定ユニット(
図2に示されない)に、参照ピクチャ及び/又は参照ブロックの位置(座標X及びY)と現在ブロックの位置との間のオフセット(空間オフセット)を、インター予測パラメータとして提供するよう構成されてよい。このオフセットは、動きベクトル(motion vector, MV)とも呼ばれる。
【0101】
動き補償ユニットは、インター予測パラメータを取得し、例えば受信し、インター予測パラメータに基づき又はそれを用いてインター予測を実行して、インター予測ブロック245を取得するよう構成される。動き補償ユニット(
図2に示されない)により実行される動き補償は、動き推定を通じて決定された動き/ブロックベクトルに基づき、(場合によってはサブピクセル精度への補間を実行することにより)予測ブロックをフェッチすること又は生成することを含んでよい。補間フィルタリングは、知られているピクセルサンプルから追加ピクセルサンプルを生成してよく、それによりピクチャブロックを符号化するために使用され得る候補予測ブロックの数を増大させる可能性がある。現在ピクチャブロックのPUの動きベクトルを受信すると、動き補償ユニット246は、参照ピクチャリストのうちの1つの中で動きベクトルの指す予測ブロックの位置を特定してよい。動き補償ユニット246は、ビデオスライスのピクチャブロックを復号する際にビデオデコーダ30による使用のために、ブロック及びビデオスライスに関連付けられたシンタックス要素も生成してよい。
【0102】
イントラ予測ユニット254は、ピクチャブロック203(現在ピクチャブロック)及び同じピクチャの1つ以上の前の再構成ブロック、例えば再構成近隣ブロックを、イントラ推定のために、取得し、例えば受信するよう構成される。エンコーダ20は、例えば、複数の(所定の)イントラ予測モードから、イントラ予測モードを選択するよう構成されてよい。
【0103】
実施形態では、エンコーダ20は、最適化基準に基づき、例えば最小残差(例えば、現在ピクチャブロック203に最も類似する予測ブロック255を提供するイントラ予測モード)又は最小レート歪みに基づき、イントラ予測モードを選択するよう構成されてよい。
【0104】
イントラ予測ユニット254は、例えば、選択されたイントラ予測モードにおけるイントラ予測パラメータに基づき、イントラ予測ブロック255を決定するよう更に構成される。いずれの場合にも、ブロックのイントラ予測モードを選択した後に、イントラ予測ユニット254は、イントラ予測パラメータ、つまり、ブロックの選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット270に提供するよう更に構成される。例では、イントラ予測ユニット254は、後述するイントラ予測技術の任意の組み合わせを実行するよう構成されてよい。
【0105】
エントロピー符号化ユニット270は、エントロピー符号化アルゴリズム又は方式(例えば、可変長符号化(variable length coding, VLC)方式、コンテキスト適応VLC(context adaptive VLC, CAVLC)方式、算術符号化方式、コンテキスト適応バイナリ算術符号化(context adaptive binary arithmetic coding, CABAC)、シンタックスに基づくコンテキスト適応バイナリ算術符号化(syntax-based context-adaptive binary arithmetic coding, SBAC)、確率間隔パーティショニングエントロピー(probability interval partitioning entropy, PIPE)符号化、又は別のエントロピー符号化方法若しくは技術)を、量子化済み残差係数209、インター予測パラメータ、イントラ予測パラメータ、及び/又はループフィルタパラメータのうちの1つ又は全部に適用して(又は適用せず)、例えば符号化ビットストリーム21の形式で出力272を介して出力され得る符号化ピクチャデータ21を取得するよう構成される。符号化ビットストリームは、ビデオデコーダ30へと送信され、又はビデオデコーダ30による後の送信又は読み出しのためにアーカイブされてよい。エントロピー符号化ユニット270は、符号化中の現在ビデオスライスの他のシンタックス要素をエントロピー符号化するよう更に構成されてよい。
【0106】
ビデオエンコーダ20の他の構造的変形は、ビデオストリームを符号化するために使用できる。例えば、非変換に基づくエンコーダ20は、変換処理ユニット206を有しないで、幾つかのブロック又はフレームについて、残差信号を直接量子化してよい。別の実装では、エンコーダ20は、単一のユニットに結合された、量子化ユニット208及び逆量子化ユニット210を有してよい。
【0107】
図3は、本願の技術を実装するよう構成されるビデオデコーダ30の例を示す。ビデオデコーダ30は、復号ピクチャ231を取得するために、例えばエンコーダ20により符号化された符号化ピクチャデータ(例えば、符号化ビットストリーム)21を受信するよう構成される。復号処理において、ビデオデコーダ30は、ビデオデータ、例えば符号化ビデオスライスのピクチャブロック及び関連付けられたシンタックス要素を表す符号化ビデオビットストリームを、ビデオエンコーダ20から受信する。
【0108】
図3の例では、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(例えば、加算器314)、バッファ316、ループフィルタ320、復号ピクチャバッファ330、及び予測処理ユニット360を含む。予測処理ユニット360は、インター予測ユニット344、イントラ予測ユニット354、及びモード選択ユニット362を含んでよい。幾つかの例では、ビデオデコーダ30は、
図2のビデオエンコーダ20を参照して説明した符号化経路に対して通常逆の復号経路を実行してよい。
【0109】
エントロピー復号ユニット304は、エントロピー復号を、符号化ピクチャデータ21に対して実行して、例えば量子化済み係数309、及び/又は復号符号化パラメータ(
図3に示されない)、例えば(復号された)インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、及び/又は他のシンタックス要素のうちのいずれか1つ又は全部を取得するよう構成される。エントロピー復号ユニット304は、インター予測パラメータ、イントラ予測パラメータ、及び/又は他のシンタックス要素を、予測処理ユニット360に転送するよう更に構成される。ビデオデコーダ30は、ビデオスライスレベル及び/又はビデオブロックレベルのシンタックス要素を受信してよい。
【0110】
逆量子化ユニット310は逆量子化ユニット110と同じ機能を有してよく、逆変換処理ユニット312は逆変換処理ユニット212と同じ機能を有してよく、再構成ユニット314は再構成ユニット214と同じ機能を有してよく、バッファ316はバッファ216と同じ機能を有してよく、ループフィルタ320はループフィルタ220と同じ機能を有してよく、復号ピクチャバッファ330は復号ピクチャバッファ230と同じ機能を有してよい。
【0111】
予測処理ユニット360は、インター予測ユニット344及びイントラ予測ユニット354を含んでよい。インター予測ユニット344はインター予測ユニット244と機能的に同様であってよく、イントラ予測ユニット354はイントラ予測ユニット254と機能的に同様であってよい。予測処理ユニット360は、通常、ブロック予測を実行し、及び/又は予測ブロック365を符号化データ21から取得し、及び予測関連パラメータ及び/又は選択された予測モードに関する情報を、例えばエントロピー復号ユニット304から(明示的に又は暗示的に)受信し又は取得するよう構成される。
【0112】
ビデオスライスがイントラ符号化(I)スライスとして符号化されるとき、予測処理ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モード及び現在フレーム又はピクチャの前の復号ブロックからのデータに基づき、現在ビデオスライスのピクチャブロックについて予測ブロック365を生成するよう構成される。ビデオフレームがインター符号化(つまり、B又はP)スライスとして符号化されるとき、予測処理ユニット360のインター予測ユニット344(例えば動き補償ユニット)は、動きベクトル及びエントロピー復号ユニット304から受信した他のシンタックス要素に基づき、現在ビデオスライスのビデオブロックについて予測ブロック365を生成するよう構成される。インター予測では、予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成されてよい。ビデオデコーダ30は、DPB330に格納された参照ピクチャに基づき、規定の構成技術を用いて、参照フレームリスト、リスト0及びリスト1を構成してよい。
【0113】
予測処理ユニット360は、動きベクトル及び他のシンタックス要素をパースすることにより、現在ビデオスライスのビデオブロックについて予測情報を決定し、予測情報を使用して、復号中の現在ビデオブロックについて予測ブロックを生成するよう構成される。例えば、予測処理ユニット360は、受信したシンタックス要素のうちの幾つかを使用して、ビデオスライスのビデオブロックを符号化するために使用される予測モード(例えば、イントラ又はインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスの参照ピクチャリストのうちの1つ以上の構成情報、スライスの各インター符号化ビデオブロックの動きベクトル、スライスの各インター符号化ビデオブロックのインター予測状態、及び現在ビデオスライス内のビデオブロックを復号するための他の情報を決定する。
【0114】
逆量子化ユニット310は、ビットストリーム内で提供され、エントロピー復号ユニット304により復号された量子化済み変換係数を逆量子化(つまり量子化解除)するよう構成されてよい。逆量子化処理は、ビデオスライス内の各ビデオブロックに対して、ビデオエンコーダ20により計算された量子化パラメータを使用して、適用されるべき量子化の程度、及び同様に適用されるべき逆量子化の程度を決定することを含んでよい。
【0115】
逆変換処理ユニット312は、ピクセルドメインにおいて残差ブロックを生成するために、逆変換(例えば、逆DCT、逆整数変換、又は概念的に類似する逆変換処理)を、変換係数に適用するよう構成される。
【0116】
再構成ユニット314(例えば、加算器314)は、例えば再構成残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することにより、逆変換ブロック313(つまり、再構成残差ブロック313)を予測ブロック365に加算して、サンプルドメインにおいて再構成ブロック315を取得するよう構成される。
【0117】
ループフィルタユニット320(符号化ループ内にある又は符号化ループの後にある)は、再構成ブロック315をフィルタリングし、フィルタリング済みブロック321を取得して、ピクセル遷移を円滑化するよう又はビデオ品質を向上するよう構成される。例では、ループフィルタユニット320は、後述するフィルタリング技術の任意の組み合わせを実行するよう構成されてよい。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset, SAO)フィルタ、又はバイラテラルフィルタ、適応ループフィルタ(adaptive loop filter, ALF)、先鋭化若しくは円滑化フィルタのような別のフィルタ、又は共同フィルタ、のような1つ以上のループフィルタを表すことを意図する。ループフィルタユニット320はインループフィルタとして
図3に示されるが、別の構成では、ループフィルタユニット320はポストループフィルタとして実装されてよい。
【0118】
所与のフレーム又はピクチャ内の復号ビデオブロック321は、次に、後の動き補償のために使用される参照ピクチャを格納する復号ピクチャバッファ330に格納される。
【0119】
デコーダ30は、例えば、ユーザへの提示又はユーザによる閲覧のために、復号ピクチャ31を、出力332を介して出力するよう構成される。
【0120】
ビデオデコーダ30の他の変形は、圧縮ビットストリームを復号するよう構成されてよい。例えば、デコーダ30は、ループフィルタユニット320を有しないで、出力ビデオストリームを生成してよい。例えば、非変換に基づくデコーダ30は、逆変換処理ユニット312を有しないで、幾つかのブロック又はフレームについて、残差信号を直接逆量子化してよい。別の実装では、ビデオデコーダ30は、単一のユニットに結合された、逆量子化ユニット310及び逆変換処理ユニット312を有してよい。
【0121】
図4は、本発明の実施形態による、ビデオ符号化装置400(例えば、ビデオ符号化装置400又はビデオ復号装置400)の概略構造図である。ビデオ符号化装置400は、本明細書で説明した実施形態を実施するのに適する。実施形態では、ビデオ符号化装置400は、ビデオデコーダ(例えば、
図1Aのビデオデコーダ30)、又はビデオエンコーダ(例えば、
図1Aのビデオエンコーダ20)であってよい。別の実施形態では、ビデオ符号化装置400は、
図1Aのビデオデコーダ30又は
図1Aのビデオエンコーダ20の中の1つ以上のコンポーネントであってよい。
【0122】
ビデオ符号化装置400は、データを受信するためのイングレスポート410及び受信機ユニット(Rx)420と、データを処理するためのプロセッサ、論理ユニット、又は中央処理ユニット(CPU)430と、データを送信するための送信機ユニット(Tx)440及びイグレスポート450と、データを格納するためのメモリ460と、を含む。ビデオ符号化装置400は、イングレスポート410、受信機ユニット420、送信機ユニット440、及びイグレスポート450に接続された、光若しくは電気信号のイグレス若しくはイングレスのための光-電気コンポーネント及び電気-光(EO)コンポーネントも含んでよい。
【0123】
プロセッサ430は、ハードウェア及びソフトウェアにより実装される。プロセッサ430は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサ)、FPGA、ASIC、及びDSPとして実装されてよい。プロセッサ430は、イングレスポート410、受信機ユニット420、送信機ユニット440、イグレスポート450、及びメモリ460と通信する。プロセッサ430は、符号化モジュール470(例えば、符号化モジュール470又は復号モジュール470)を含む。符号化/復号モジュール470は、以上に開示した実施形態を実施する。例えば、符号化/復号モジュール470は、種々の符号化動作を実行し、処理し、又は提供する。従って、符号化/復号モジュール470は、ビデオ符号化装置400の機能に実質的な改良を提供し、ビデオ符号化装置400の異なる状態への変換に影響を与える。代替として、符号化/復号モジュール470は、メモリ460に格納されプロセッサ430により実行される命令として実装される。
【0124】
メモリ460は、1つ以上のディスク、テープドライブ、及び固体ドライブを含み、プログラムが実行のために選択されるときこれらのプログラムを格納するため及びプログラムの実行中に読み出される命令及びデータを格納するためのオーバフローデータ記憶装置として使用されてよい。メモリ460は、揮発性及び/又は不揮発性であってよく、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(ternary content-addressable memory, TCAM)、及び/又は静的ランダムアクセスメモリ(SRAM)であってよい。
【0125】
図5は、例示的な実施形態による
図1Aのソース装置12及び宛先装置14の一方又は両方として使用されてよい機器500の簡略ブロック図である。機器500は、本願の技術を実施してよい。ピクチャパーティショニングを実施する機器500は、複数のコンピューティング装置を含むコンピューティングシステムの形式で、又は移動電話機、タブレットコンピュータ、ラップトップコンピュータ、若しくはデスクトップコンピュータのような単一コンピューティング装置の形式であってよい。
【0126】
機器500のプロセッサ502は、中央処理ユニットであってよい。代替として、プロセッサ502は、情報を制御又は処理できる、既存の又は将来開発される任意の他のタイプの装置又は複数の装置であってよい。図に示されるように、開示の実装はプロセッサ502のような単一のプロセッサにより実施できるが、速度及び効率における利益は、1つより多くのプロセッサを用いて達成できる。
【0127】
実装では、機器500のメモリ504は、読み出し専用メモリ(read only memory, ROM)装置又はランダムアクセスメモリ(random access memory, RAM)装置であり得る。任意の他の適切なタイプの記憶装置が、メモリ504として使用できる。メモリ504は、バス512を用いてプロセッサ502によりアクセスされるコード及びデータ506を含み得る。メモリ504は、オペレーティングシステム508及びアプリケーションプログラム510を更に含み得る。アプリケーションプログラム510は、プロセッサ502が本明細書に記載の方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510は、アプリケーション1~Nを含んでよく、アプリケーション1~Nは、本明細書に記載の方法を実行するビデオ符号化アプリケーションを更に含む。機器500は、2次記憶514の形式の追加メモリも含んでよい。2次記憶514は、例えば、モバイルコンピューティング装置と共に使用されるメモリカードであってよい。ビデオ通信セッションは大量の情報を含み得るので、これらの情報は、全体又は部分的に2次記憶514に格納され、処理のために必要に応じてメモリ504にロードされ得る。
【0128】
機器500は、ディスプレイ518のような1つ以上の出力装置も含み得る。例では、ディスプレイ518は、タッチ入力を感知するよう動作するタッチ感応要素とディスプレイを結合するタッチ感応ディスプレイであってよい。ディスプレイ518は、バス512を用いてプロセッサ502に接続され得る。ユーザが機器500をプログラミングし又はその他の場合に使用することを可能にする他の出力装置は、ディスプレイ518に加えて又はその代替として提供され得る。出力装置がディスプレイである又はそれを含むとき、ディスプレイは、液晶ディスプレイ(liquid crystal display, LCD)、陰極線管(cathode-ray tube, CRT)ディスプレイ、プラズマディスプレイ、又は有機LED(organic LED, OLED)ディスプレイのような発光ダイオード(light emitting diode, LED)ディスプレイを含む異なる方法で実装できる。
【0129】
機器500は、ピクチャ感知装置520も含み又はそれに接続されてよい。ピクチャ感知装置520は、例えば、カメラ、又はピクチャを感知できる既存の又は将来開発される任意の他のピクチャ感知装置520である。ピクチャは、例えば、機器500を実行するユーザのピクチャである。ピクチャ感知装置520は、機器500を実行するユーザに直接向かい合って配置されてよい。例では、ピクチャ感知装置520の位置及び光軸は、ピクチャ感知装置520の視野がディスプレイ518に近接する領域を含み、ディスプレイ518が該領域から見えるように、構成されてよい。
【0130】
機器500は、また、音声感知装置522、例えばマイクロフォン、又は機器500の近くの音声を感知できる既存の若しくは将来開発される任意の他の音声感知装置を含み又はそれと通信してよい。音声感知装置522は、機器500を実行するユーザに直接向かい合って配置されてよく、機器500を実行しているユーザにより生成された音声、例えば声若しくは別の音声を受信するよう構成されてよい。
【0131】
図5は機器500のプロセッサ502及びメモリ504を単一のユニットに統合されているように示すが、他の構成が利用されてよい。プロセッサ502の実行は、直接接続され、又はローカル領域又は別のネットワークに分散され得る複数の機械(各機械は1つ以上のプロセッサを有する)の中で分散されてよい。メモリ504は、ネットワークに基づくメモリ又は機器500の実行される複数の機械の中のメモリのように、複数の機械に渡り分散できる。ここでは単一のバスとして示されるが、機器500のバス512は複数のバスを含み得る。更に、2次記憶514は、機器500の他のコンポーネントに直接接続でき、又はネットワークを介してアクセスでき、メモリカードのような単一の統合ユニット又は複数のメモリカードのような複数のユニットを含むことができる。機器500は、従って、広範な構成で実装できる。
【0132】
本願で上述したように、ルマ(Y)成分を含むことに加えて、カラービデオは、クロマ成分(U,V)を更に含む。従って、ルマ成分の符号化に加えて、クロマ成分も符号化される必要がある。カラービデオにおいてルマ成分及びクロマ成分をサンプリングする異なる方法に従い、通常、YUV4:4:4、YUV4:2:2、及びYUV4:2:0がある。
図6に示すように、×はルマ成分のサンプルを表し、○はクロマ成分のサンプルを表す。
4:4:4形式は、クロマ成分がダウンサンプリングされないことを示す。
4:2:2形式は、ルマ成分と比べて、2:1水平ダウンサンプリングがクロマ成分に実行され、クロマ成分に垂直ダウンサンプリングが実行されないことを示す。2個のUサンプル又はVサンプル毎に、各行は4個のYサンプルを含む。
4:2:0形式は、ルマ成分と比べて、2:1水平ダウンサンプリングがクロマ成分に実行され、クロマ成分に2:1垂直ダウンサンプリングが実行されることを示す。
【0133】
ビデオデコーダは、3つの異なる分割構造(QT、BT、及びTT)に従い、各深さで許容される5個の異なる分割タイプを用いて、ビデオブロックを分割するよう構成されてよい。
図7A~
図7Eに示すように、分割タイプは、4分木分割(QT分割構造)、水平2分木分割(BT分割構造)、垂直2分木分割(BT分割構造)、及び水平中央-端3分木分割(TT分割構造)、及び垂直中央-端3分木分割(TT分割構造)を含む。
【0134】
5個の分割タイプは、以下のように定義される。留意すべきことに、正方形は、長方形の特別な場合として考えられる。
【0135】
4分木(Quad-tree, QT)分割:ブロックは、同じサイズの4個の長方形ブロックに更に分割される。
図7Aは、4分木分割の例を示す。4分木QTに基づくCTU分割方法によると、CTUは、4分木のルートノード(root)として使用される。CTUは、4分木分割モードに基づき、幾つかのリーフノード(leaf node)に再帰的に分割される。1つのノードは1つのピクチャ領域に対応する。ノードが分割されない場合、該ノードは、リーフノードと呼ばれ、該ノードに対応するピクチャ領域はCUになる。ノードが分割される場合、該ノードに対応するピクチャ領域は、同じサイズの4個のピクチャ領域に分割され(4個の領域の長さ及び幅はそれぞれ分割される領域の長さ及び幅の半分である)、各領域は1つのノードに対応する。これらのノードが更に分割されるかどうかは、別個に決定される必要がある。ノードが分割されるべきであるかどうかは、ビットストリーム内にあり該ノードに対応する分割フラグsplit_cu_flagにより示される。ルートノードの4分木深さ(qtDepth)は0であり、子ノードの4分木深さは親ノードの4分木深さ+1である。説明を簡単にするために、本願ではノードのサイズ及び形状は、該ノードに対応するピクチャ領域のサイズ及び形状である。つまり、該ノードは、ピクチャ内の長方形領域である。符号化木の中でノード(node)を分割することにより取得されるノードは、ノードの子ノード(child node)と呼ばれてよく、略して子ノードである。
【0136】
より具体的には、64×64CTUノード(0の4分木深さを有する)は、CTUノードに対応するsplit_cu_flagに基づき分割されず、64×64CUになってよく、或いは、4個の32×32ノード(1の4分木深さを有する)に分割されてよい。4個の32×32ノードの各々はノードに対応するsplit_cu_flagに基づき、更に分割されて又は更に分割されなくてよい。32×32ノードが分割され続ける場合、4個の16×16ノード(2の4分木深さを有する)が生成される。残りは、ノードが更に分割されなくなるまで、同様に推定され得る。このように、1つのCTUはCUの1つのグループに分割される。最小CUサイズ(size)はSPSで指定される。例えば、8×8は最小CUサイズである。前述の再帰的パーティショニング処理では、ノードのサイズが最小CUサイズ(minimum CU size)に等しい場合、ノードは規定により更に分割されず、ノードの分割フラグはビットストリームに含まれる必要がない。
【0137】
パースを通じて、ノードがリーフノードであり、リーフノードがCUであることが分かった後に、CUに対応する符号化情報(予測モード及びCUの変換係数のような情報、例えばH.266におけるシンタックス構造coding_unit()を含む)が更にパースされる。次に、予測、逆量子化、逆変換、及びループフィルタリングのような復号処理が、符号化情報に基づきCUに対して実行されて、CUに対応する再構成画像を生成する。4分木(Quadtree, QT)構造では、CTUは、ローカルピクチャ特徴に基づき、適切なサイズのCUのグループに分割され得る。例えば、平坦な領域はより大きなCUに分割され、一方で、テクスチャの豊かな領域はより小さなCUに分割される。
【0138】
CTUをCUのグループに分割するモードは、符号化木(coding tree)に対応する。CTUにより使用されるべき特定の符号化木は、通常、エンコーダのレート歪み最適化(rate distortion optimization, RDO)技術を用いて決定される。エンコーダは、複数のCTU分割モードを試し、各分割モードは1つのレート歪みコスト(RD cost)に対応する。エンコーダは、試みられた分割モードのRDコストを比較して、CTUの実際の符号化のためにCTUの最適分割モードとして、最小RDコストを有する分割モードを見付ける。CTU分割モードがデコーダにより正しく識別できるように、エンコーダにより試されるCTU分割モードは、全部、デコーダにより指定された分割ルールに従う必要がある。
【0139】
垂直2分木(binary tree, BT)分割:ブロックは、同じサイズの2個の長方形ブロックに垂直に分割される。
図7Bは、垂直2分木分割の例である。
【0140】
水平2分木分割:ブロックは、同じサイズの2個の長方形ブロックに水平に分割される。
図7Cは、水平2分木分割の例である。
【0141】
垂直中央-端3分木(TT)分割:ブロックは、3個の長方形ブロックに垂直に分割され、2個の端のブロックが同じサイズになり、中央ブロックのサイズが2個の端のブロックのサイズの和になるようにする。
図7Dは、垂直中央-端3分木分割の例である。
【0142】
水平中央-端3分木分割:ブロックは、3個の長方形ブロックに水平に分割され、2個の端のブロックが同じサイズになり、中央ブロックのサイズが2個の端のブロックのサイズの和になるようにする。
図7Eは、水平中央-端3分木分割の例である。
【0143】
図7B~
図7Eの特定の分割方法は、
図7Aの説明と同様であり、詳細はここで再び説明されない。更に、QT及びBT/TTをカスケードする分割モードが使用されてよく、これは略してQT-BTTである。つまり、レベル1符号化木のノードは、QTを通じてのみ子ノードに分割でき、レベル1符号化木のリーフノードは、レベル2符号化木のルートノードである。レベル2符号化木のノードは、以下の4つの分割モード:水平2分割、垂直2分割、水平3分割、及び垂直3分割、のうちの1つを用いて子ノードに分割されてよい。レベル2符号化木のリーフノードは、符号化単位である。具体的に、2分木分割及び4分木分割は、カスケード方法で実行され、これは、略してQTBT分割モードであってよい。例えば、
図8に示されるように、CTUは、先ずQTを通じて分割され、QTリーフノードは、BTを通じて分割され続けることが可能である。
図8の右側部分で、各端点は1つのノードを表す。4本の実線に繋がる1つのノードは4分木分割を表し、2本の破線に繋がる1つのノードは2分木分割を表す。分割後に取得されるノードは、ノードの子ノードと呼ばれてよく、略して子ノードである。子ノードの間で、a~mは13個のリーフノードであり、各リーフノードは1つのCUを表す。2分木ノードでは、1は垂直分割を表し、0は水平分割を表す。
図8の左側部分に示されるように、CTUは13個のCU:a~mに分割される。QTBT分割モードでは、各CUはQT深さ(Quad-tree depth, QT depth)及びBT深さ(Binary tree depth, BT depth)を有する。QT深さは、CUの属するQTリーフノードのQT深さを表し、BT深さは、CUの属するBTリーフノードのBT深さを表す。例えば、
図8で、a及びbのQT深さは1であり、a及びbのBT深さは2であり、c、d、及びeのQT深さは1であり、c、d、及びeのBT深さは1であり、f、k、及びlのQT深さは2であり、f、k、及びlのBT深さは1であり、i及びjのQT深さは2であり、i及びjのBT深さは0であり、g及びhのQT深さは2であり、g及びhのBT深さは2であり、mのQT深さは1であり、mのBT深さは0である。CTUが1つのCUにのみ分割される場合、CUのQT深さは0であり、CUのBT深さは0である。
【0144】
特定の深さに関連付けられるブロックについて、エンコーダ20は、どの分割タイプ(更に分割されないことを含む)が使用されるかを決定し、デコーダ30に決定した分割タイプを明示的又は暗示的に(例えば、分割タイプは所定のルールから導出されてよい)シグナリングする。エンコーダ20は、ブロックについて異なる分割タイプを調べるためにレート歪みコストに基づき、使用されるべき分割タイプを決定してよい。
【0145】
2×Mクロマブロック、特に2×2、2×4、又は2×8クロマブロックが、ノードを分割することにより生成された場合、クロマ符号化及び復号効率は比較的低く、ハードウェアデコーダの処理コストは比較的高い。これは、ハードウェアデコーダの実装には望ましくない。現在ノードのクロマブロックが更に分割されないとき、本願の本実施形態では、現在ノードのルマブロックのみが分割されてよく、それにより、符号化及び復号効率を向上し、コーデックの最大スループットを低減し、コーデックの実装を容易にする。具体的に、本願の本実施形態では、分割モードを用いてノードを分割することにより生成された子ノードが、辺の長さが第1閾値であるクロマブロックを含む(又は、辺の長さが第2閾値より短いクロマブロックを含む)とき、ノードに含まれるルマブロックは、この分割モードを用いて分割され、ノードに含まれるクロマブロックは更に分割されない。このモードは、辺の長さが第1閾値である(又は辺の長さが第2閾値より短い)クロマブロックの生成を回避できる。特定の実装では、第1閾値は2であってよく、第2閾値は4であってよい。以下は、実施形態1~3を参照して詳細な説明を提供する。本願の本実施形態では、YUV4:2:0のビデオデータ形式を用いて説明が提供され、同様の方法がYUV4:2:2データについて使用されてよい。
【0146】
イントラブロックコピー(Intra Block Copy, IBC)符号化ツールは、HEVCの拡張標準SCCにおいて採用され、主にスクリーンコンテンツビデオの符号化効率を向上するために使用される。IBCモードは、ブロックレベル符号化モードである。エンコーダ側では、CU毎に最適ブロックベクトル(block vector)又は動きベクトル(motion vector)を見付けるために、ブロックマッチング(block matching, BM)方法が使用される。動きベクトルは、ここでは、主に、現在ブロックから参照ブロックへの変位を表すために使用され、変位ベクトル(displacement vector)とも呼ばれる。参照ブロックは、現在ピクチャ内の再構成ブロックである。IBCモードは、イントラ予測モード又はインター予測モード以外の第3の予測モードと考えられてよい。記憶空間を節約し、デコーダの複雑さを低減するために、VTM4におけるIBCモードは、現在CTUの所定領域の再構成部分のみが予測のために使用されることを可能にする。
【0147】
VTMでは、CUレベルで、現在CUのためにIBCモードが使用されるかどうかを示すためにフラグが使用される。IBCモードは、IBC AMVPモード、IBCスキップモード、又はIBCマージモードに分類される。
【0148】
実施形態1
図9は、本発明の実施形態1による方法900のフローチャートである。
【0149】
ステップ901:現在ノードが分割される必要があるかどうかを決定する。ここで、現在ノードはルマブロック及びクロマブロックを含む。
【0150】
現在ノードが子ノードに更に分割されない場合、現在ノードは符号化単位(coding unit, CU)であり、ステップ910が実行されて、パースを通じて符号化単位に関する情報を取得する。或いは、現在ノードが分割される必要がある場合、ステップ902が実行される。
【0151】
本発明の実施形態1は、ビデオ復号機器、具体的には
図3~
図5のうちのいずれか1つで説明された機器により実施されてよい。
【0152】
本発明の実施形態1は、代替として、ビデオ符号化機器、具体的には
図2、
図4、及び
図5のうちのいずれか1つで説明された機器により実施されてよい。
【0153】
実施形態1がビデオ復号機器により実施されるとき、ステップ902は:ビデオ復号機器が、ビットストリームをパースして、現在ノードの分割モードを決定する、である。現在ノードの分割モードは、4分割(QT)、水平2分割(horizontal BT)、水平3分割(horizontal TT)、垂直2分割(Vertical BT)、及び垂直3分割(Vertical TT)、のうちの少なくとも1つであってよく、又は別の分割モードであってよい。これは、本発明の本実施形態において限定されない。現在ノードの分割モードに関する情報は、通常、ビットストリーム内で送信され、現在ノードの分割モードは、ビットストリーム内の対応するシンタックス要素をパースすることにより取得できる。
【0154】
実施形態1がビデオ符号化機器により実施されるとき、ステップ902は:現在ノードを分割する方法を決定する、である。
【0155】
ステップ904:現在ノードの分割モード及び現在ノードのサイズに基づき、現在ノードのクロマブロックが分割される必要があるかどうかを決定する。現在ノードのクロマブロックが更に分割されないとき、ステップ906を実行する。或いは、現在ノードのクロマブロックが分割される必要があるとき、ステップ908を実行する。
【0156】
具体的に、実装では、辺の長さが第1閾値であるクロマブロック(又は、辺の長さが第2閾値より短いクロマブロック)が、現在ノードの分割モードに基づき現在ノードを分割することにより生成されるかどうかが決定されてよい。現在ノードを分割することにより生成された子ノードが、辺の長さが第1閾値であるクロマブロックを含む(又は、辺の長さが第2閾値より短いクロマブロックを含む)と決定された場合、現在ノードのクロマブロックは更に分割されない。例えば、第1閾値は2であってよく、第2閾値は4であってよい。
【0157】
本発明の本実施形態では、辺の長さが第1閾値であるクロマブロックは、幅又は高さが第1閾値であるクロマブロックである。
【0158】
別の実装では、例えば、条件1~条件5のいずれか1つが真であるとき、現在ノードのクロマブロックは更に分割されないと決定されてよく、その他の場合、現在ノードのクロマブロックは分割される必要があると決定される。
条件1:現在ノードの幅が第2閾値の2倍に等しく、現在ノードの分割モードが垂直2分割である。
条件2:現在ノードの高さが第2閾値の2倍に等しく、現在ノードの分割モードが水平2分割である。
条件3:現在ノードの幅が第2閾値の4倍に等しく、現在ノードの分割モードが垂直3分割である。
条件4:現在ノードの高さが第2閾値の4倍に等しく、現在ノードの分割モードが水平3分割である。又は、
条件5:現在ノードの幅が第2閾値の2倍に等しく、現在ノードの分割モードが4分割である。
【0159】
通常、現在ノードの幅は、現在ノードに対応するルマブロックの幅であり、現在ノードの高さは、現在ノードに対応するルマブロックの高さである。特定の実装では、例えば、第2閾値は4であってよい。
【0160】
第3の実装では、幅が第1閾値であるクロマブロック(又は、幅が第2閾値より狭いクロマブロック)が、現在ノードの分割モードに基づき現在ノードを分割することにより生成されるかどうかが決定されてよい。現在ノードを分割することにより生成された子ノードが、幅が第1閾値であるクロマブロックを含む(又は、幅が第2閾値より狭いクロマブロックを含む)と決定された場合、現在ノードのクロマブロックは更に分割されない。例えば、第1閾値は2であってよく、第2閾値は4であってよい。
【0161】
第4の実装では、クロマサンプル数が第3閾値より少ないクロマブロックが、現在ノードの分割モードに基づき現在ノードを分割することにより生成されるかどうかが決定されてよい。現在ノードを分割することにより生成された子ノードが、クロマサンプル数が第3閾値より少ないクロマブロックを含むと決定された場合、現在ノードのクロマブロックは更に分割されない。例えば、第3閾値は16であってよい。この場合、クロマサンプル数が16より少ないクロマブロックは、限定ではないが、2×2クロマブロック、2×4クロマブロック、及び4×2クロマブロックを含む。第3閾値は8であってよい。この場合、クロマサンプル数が8より少ないクロマブロックは、限定ではないが、2×2クロマブロックを含む。
【0162】
具体的に、条件1又は条件2のいずれかが真である場合、クロマサンプル数が第3閾値より少ないクロマブロックが、現在ノードの分割モードに基づき現在ノードを分割することにより生成されると決定されてよい。その他の場合、現在ノードの分割モードに基づき現在ノードを分割することにより、クロマサンプル数が第3閾値より少ないクロマブロックが生成されないと決定されてよい。
条件1:現在ノードの幅と高さとの積は、128より小さく、現在ノードの分割モードは、垂直2分割又は水平2分割である。又は、
条件2:現在ノードの幅と高さとの積は、256より小さく、現在ノードの分割モードは、垂直3分割、水平3分割、又は4分割である。
【0163】
具体的に、別の実装では、条件3又は条件4のいずれかが真である場合、クロマサンプル数が第3閾値より少ないクロマブロックが、現在ノードの分割モードに基づき現在ノードを分割することにより生成されると決定されてよい。その他の場合、現在ノードの分割モードに基づき現在ノードを分割することにより、クロマサンプル数が第3閾値より少ないクロマブロックが生成されないと決定されてよい。
条件3:現在ノードの幅と高さとの積は、64に等しく、現在ノードの分割モードは、垂直2分割、水平2分割、4分割、水平3分割、又は垂直3分割である。又は、
条件4:現在ノードの幅と高さとの積は、128に等しく、現在ノードの分割モードは、垂直3分割又は水平3分割である。
【0164】
第5の実装では、高さが第1閾値であるクロマブロック(又は、高さが第2閾値より低いクロマブロック)が、現在ノードの分割モードに基づき現在ノードを分割することにより生成されるかどうかが決定されてよい。現在ノードを分割することにより生成された子ノードが、高さが第1閾値であるクロマブロック(又は、高さが第2閾値より低いクロマブロック)を含むと決定された場合、現在ノードのクロマブロックは更に分割されない。例えば、第1閾値は2であってよく、第2閾値は4であってよい。
【0165】
ステップ906:現在ノードの分割モードに基づき、現在ノードのルマブロック(luma block)を分割して、現在ノードの子ノード(ルマブロックの子ノードとも呼ばれてよく、略してルマノード)を取得する。各子ノードは、ルマブロックのみを含む。現在ノードのクロマブロック(chroma block)は更に分割されず、クロマブロックのみを含む符号化単位になる。
【0166】
任意的に、
図10に示すように、ステップ906はステップ9062を更に含んでよい:現在ノードのルマブロックをパースして、現在ノードのルマブロック内のサブ領域の各々の予測情報及び残差情報を取得する。ここで、各サブ領域は1つの子ノードに対応する。
【0167】
具体的に、ステップ9062は、以下の方法のうちのいずれか1つを用いて実施されてよい。
【0168】
方法1:規定によりルマブロックの各子ノードを更に分割しない(つまり、各ルマノードは符号化単位であり、ルマブロックの1つの子ノードは、ルマブロックのみを含む1つの符号化単位に対応する)。ルマブロックの子ノードについて符号化単位データを順にパースして、各ルマブロックの予測情報及び残差情報を取得する。ルマノードのルマブロックは、現在ノードのルマブロック内のサブ領域であり、ルマノードのルマブロックは現在ノードのルマブロックを構成する。
【0169】
方法2:ルマブロックの子ノードが、順に更に分割され続ける必要があるかどうかを決定する。子ノードが更に分割される必要があるとき、子ノードの分割モード及び対応する符号化単位データをパースする。より具体的に、ルマノードが更に分割されない場合、ルマノードに対応する符号化単位データがパースされて、ルマノードのルマブロックに対応する予測情報及び残差情報を取得する。或いは、ルマノードが分割され続ける場合、現在ノードのルマブロックのサブ領域の各々の予測情報及び残差情報が決定されるまで、ルマノードの子ノード(留意すべきことに、子ノードは依然としてルマブロックのみを含む)が分割される必要があるかどうかが決定され続ける。
【0170】
予測情報は、限定ではないが、予測モード(イントラ予測モード又はインター予測モードを示す)、イントラ予測モード、動き情報、等を含む。ルマブロックのイントラ予測モードは、平面モード(Planar Mode)、直流モード(DC Mode)、角度モード(angular Mode)、及びクロマ導出モード(chroma derived mode, DM)のうちの1つであってよい。動き情報は、予測方向(前方、後方、又は両方向)、参照インデックス(reference index)、及び/又は動きベクトル(motion vector)のような情報を含んでよい。
【0171】
残差情報は、符号化ブロックフラグ(coded block flag, CBF)、変換係数、及び/又は変換タイプ(例えば、DCT-2、DST-7、又はDCT-8)、等を含む。
【0172】
任意的に、
図10に示すように、ステップ906はステップ9064を更に含んでよい:クロマブロックの予測情報及び/又は残差情報を取得する。
【0173】
具体的に、ステップ9064は、ステップ90642及びステップ90644を含んでよい。ステップ90642は、ステップ90642A又はステップ90642Bであってよい。
【0174】
ステップ90642Aは、具体的に以下を含む:
【0175】
現在ノードのルマブロックのプリセット位置の予測モードを、現在ノードのクロマブロックの予測モードとして取得する。現在ノードのルマブロックの左上角の位置は、(x0,y0)として表されてよく、サイズはW×Hである。この場合、プリセット位置は、限定ではないが、ルマブロックの左上角、右下角(x0+W-1,y0+H-1)、中心(x0+W/2,y0+H/2)、(x0+W/2,0)、又は(0,y0+H/2)、等を含んでよい。予測モードは、プリセット位置にあるピクセルにイントラ予測又はインター予測が実行されるかどうか、例えばHEVCにおいてシンタックス要素pred_mode_flagにより示される情報を示す。例えば、VTMでは、プリセット位置の予測モードがIBCモードかどうかは、シンタックス要素pred_mode_ibc_flagにより示される情報に基づき決定されてよい。
【0176】
プリセット位置の予測モードがインター予測である場合、クロマブロックの予測モードを決定するために、以下の方法のうちの1つが使用される。
【0177】
方法1:クロマブロックにインター予測を実行して、クロマブロックの動き情報として、プリセット位置の動き情報を取得する。
【0178】
方法2:クロマブロックにインター予測を実行し、クロマブロックをクロマ予測サブブロックに分割し(ここで、クロマ予測サブブロックのサイズは、例えば幅が2クロマサンプルであり高さが2クロマサンプルである)、以下の方法でクロマ予測サブブロックの動き情報を取得する。
【0179】
クロマ予測サブブロックに対応するルマピクチャ位置にあるルマブロックに対してインター予測が実行される場合、クロマ予測サブブロックに対応するルマピクチャ位置の動き情報は、クロマ予測サブブロックの動き情報として使用される。その他の場合、プリセット位置の動き情報が、クロマ予測サブブロックの動き情報として取得される。
【0180】
YUV4:2:0ピクチャでは、クロマピクチャ内のクロマ予測サブブロックの座標は(xC,yC)と示される。この場合、クロマ予測サブブロックに対応するルマピクチャ位置の座標は、(xC<<1,yC<<1)である。
【0181】
方法3:フラグpred_mode_flagをパースして、クロマブロックに対してイントラ予測又はインター予測が実行されるかどうかを決定する。クロマブロックに対してイントラ予測が実行される場合、クロマブロックのイントラ予測モードとして、ビットストリームからイントラ予測モードをパースする。或いは、クロマブロックに対してインター予測が実行される場合、クロマブロックの動き情報として、プリセット位置の動き情報を取得する。
【0182】
方法4:フラグpred_mode_flagをパースして、クロマブロックに対してイントラ予測又はインター予測が実行されるかどうかを決定する。クロマブロックに対してイントラ予測が実行される場合、クロマブロックのイントラ予測モードとしてビットストリームからイントラ予測モードをパースする。ここで、イントラ予測モードは、クロスコンポーネント線形モデルモード及びDMモードのうちの1つであってよく、DMモードに対応するルマイントラ予測モードは平面モードに設定される。或いは、クロマブロックに対してインター予測が実行される場合、クロマブロックをクロマ予測サブブロックに分割する。ここで、クロマ予測サブブロックの動き情報は、以下の方法で取得される。
【0183】
クロマ予測サブブロックに対応するルマピクチャ位置にあるルマブロックに対してインター予測が実行される場合、クロマ予測サブブロックに対応するルマピクチャ位置の動き情報は、クロマ予測サブブロックの動き情報として使用される。その他の場合、プリセット位置の動き情報が、クロマ予測サブブロックの動き情報として取得される。
【0184】
フラグpred_mode_flagをパースするために使用されるコンテキストモデルは、例えばモデル番号2を有するプリセットモデルである。
【0185】
プリセット位置の予測モードがイントラ予測である場合、クロマブロックに対してイントラ予測が実行され、イントラ予測モードは、クロマブロックのイントラ予測モードとして、ビットストリームからパースされる。代替として、クロマブロックのイントラ予測モードは、直流モード、平面モード、角度モード、クロスコンポーネント線形モデルモード、又はDMモードのうちの1つであることが直接決定される。
【0186】
プリセット位置の予測モードがIBCモードである場合、クロマブロックはIBCモードで予測されて、クロマブロックの変位ベクトル情報として、プリセット位置の変位ベクトル(displacement vector)情報を取得する。或いは、プリセット位置の予測モードがIBCモードである場合、クロマブロックの予測モードは、フラグpred_mode_ibc_flagに基づき決定される:
1)pred_mode_ibc_flagが1である場合、クロマブロックのためにIBCモードが使用される。より具体的には、クロマブロックのIBCを予測する方法は、VTM4.0における方法であってよい。つまり、クロマブロックは2×2サブブロックに分割され、各サブブロックの変位ベクトルは、サブブロックに対応するルマ領域の変位ベクトルに等しい。或いは、
2)pred_mode_ibc_flagが0である場合、クロマブロックのためにイントラ予測モード又はインター予測モードが使用される。
【0187】
イントラ予測モードが使用されるとき、シンタックス要素がビットストリームからパースされて、クロマイントラ予測モードを決定する。代替として、クロマブロックのイントラ予測モードがクロマイントラ予測モードセットに属することが直接決定される。クロマイントラ予測モードセットは、直流モード、平面モード、角度モード、クロスコンポーネント線形モデル、及びDMモードを含む。
【0188】
インター予測モードが使用されるとき、プリセット位置の動き情報は、クロマブロックの動き情報として取得されてよい。
【0189】
留意すべきことに、ビットストリーム内にpred_mode_ibc_flagが存在しないとき、現在ノードの位置するピクチャのタイプがIフレーム/Iスライスであり、IBCモードが使用を許可される場合、pred_mode_ibc_flagは規定により1である。つまり、クロマブロックには、規定によりIBCモードが使用される。或いは、現在ノードの位置するピクチャのタイプがP/Bフレーム/スライスである場合、pred_mode_ibc_flagが規定により0である。
【0190】
VTMでは、プリセット位置の予測モードがIBCモードかどうかは、シンタックス要素pred_mode_ibc_flagにより示される情報に基づき決定されてよい。例えば、pred_mode_ibc_flagが1である場合、それは、IBC予測モードが使用されることを示す。或いは、pred_mode_ibc_flagが0である場合、それは、IBCモードが使用されないことを示す。ビットストリーム内にpred_mode_ibc_flagが存在しないとき、Iフレーム/Iスライス内ならば、pred_mode_ibc_flagの値はsps_ibc_enabled_flagの値と等しく、Pフレーム/スライス又はBフレーム/スライス内ならば、pred_mode_ibc_flagは0である。sps_ibc_enabled_flagが1のとき、それは、現在ピクチャを復号する処理において現在ピクチャが参照ピクチャとして使用されることが許可されることを示す。或いは、sps_ibc_enabled_flagが0のとき、それは、現在ピクチャを復号する処理において現在ピクチャが参照ピクチャとして使用されることが許可されないことを示す。
【0191】
クロマブロックのイントラ予測モードは、直流モード、平面モード、角度モード、クロスコンポーネント線形モデル(cross-component linear model, CCLM)モード、及びクロマ導出モード(chroma derived mode, DM)、例えば、VTMにおけるDCモード、平面モード、角度モード、クロスコンポーネント線形モデルモード、及びクロマ導出モード、のうちの1つであってよい。
【0192】
ステップ90642Bは、具体的に以下を含む:
【0193】
現在ノードの複数のルマブロックの予測モードを取得し、以下の方法を用いて、現在ノードに対応するクロマブロックの予測モードを決定する。
【0194】
複数のルマブロックの全部に対してイントラ予測が実行される場合、クロマブロックに対してイントラ予測が実行され、イントラ予測モードは、クロマブロックのイントラ予測モードとして、ビットストリームからパースされる。
【0195】
複数のルマブロックの全部に対してインター予測が実行される場合、クロマ予測モードを決定するために、以下の方法のうちの1つが使用される。
【0196】
方法1:クロマブロックにインター予測を実行して、クロマブロックの動き情報として、プリセット位置の動き情報を取得する。プリセット位置は、実施形態1におけるものと同じ意味を有する。
【0197】
方法2:フラグpred_mode_flagをパースして、クロマブロックに対してイントラ予測又はインター予測が実行されるかどうかを決定する。クロマブロックに対してイントラ予測が実行される場合、クロマブロックのイントラ予測モードとして、ビットストリームからイントラ予測モードをパースする。或いは、クロマブロックに対してインター予測が実行される場合、クロマブロックの動き情報として、プリセット位置の動き情報を取得する。
【0198】
複数のルマブロックについて、インター予測及びイントラ予測が含まれる場合、クロマブロックのモード情報は、以下の方法のうちの1つで決定されてよい。
(1)プリセット位置の予測モードがインター予測である場合、クロマブロックに対してインター予測が実行され、クロマブロックの動き情報として、プリセット位置の動き情報を取得する。
(2)プリセット位置の予測モードがイントラ予測である場合、クロマブロックに対してイントラ予測が実行され、クロマブロックのイントラ予測モードとして、ビットストリームからイントラ予測モードがパースされる。或いは、クロマブロックのイントラ予測モードが、直流モード、平面モード、角度モード、クロスコンポーネント線形モデルモード、又はDMモードのうちの1つであることが直接決定される。
(3)プリセット位置の予測モードがIBCモードである場合、クロマブロックはIBCモードで予測され、クロマブロックの変位ベクトル情報として、プリセット位置の変位ベクトル情報を取得する。及び、
(4)クロマ予測モードが、モードセットの中の1つのモードとして直接指定される。ここで、モードセットは、AMVPモード、IBCモード、スキップモード、直流モード、平面モード、角度モード、クロスコンポーネント線形モデルモード、及びDMモードを含む。
【0199】
ステップ90644:クロマブロックの残差情報をパースする。クロマブロックの残差情報は、変換単位に含まれる。変換タイプは規定によりDCT-2であってよい。
【0200】
ステップ908:現在ノードを子ノードに分割する。ここで、各子ノードはルマブロック及びクロマブロックを含む。ステップ901は、各子ノードに対して実行され、子ノードの分割モードに対してパースが実行され続け、子ノード(ノードとも呼ばれる)が更に分割される必要があるかどうかを決定する。
【0201】
ルマブロックのサブ領域分割モード及びサブ領域の各々の予測情報及び残差情報が取得された後に、インター予測処理又はイントラ予測処理が、サブ領域の対応する予測モードに基づき各サブ領域に対して実行されて、サブ領域のインター予測ピクチャ又はイントラ予測ピクチャを取得してよい。次に、逆量子化及び逆変換処理が、サブ領域の各々の残差情報に基づき、変換係数に対して実行され、残差ピクチャを取得する。残差ピクチャは、対応するサブ領域において予測ピクチャに重畳され、ルマブロックの再構成ピクチャを生成する。
【0202】
クロマブロックの予測情報及び残差情報が取得された後に、インター予測処理又はイントラ予測処理が、クロマブロックの予測モードに基づきクロマブロックに対して実行されて、クロマブロックのインター予測ピクチャ又はイントラ予測ピクチャを取得してよい。次に、逆量子化及び逆変換処理が、クロマブロックの残差情報に基づき、変換係数に対して実行され、残差ピクチャを取得する。残差ピクチャは、クロマブロックの予測ピクチャに重畳され、クロマブロックの再構成ピクチャを生成する。
【0203】
本発明の実施形態1では、現在ノードのクロマブロックが更に分割されないとき、当該方法は、現在ノードのルマブロックのみを分割するために使用されてよく、それにより、符号化及び復号効率を向上し、コーデックの最大スループットを低減し、コーデックの実装を容易にする。
【0204】
実施形態2
実施形態1と比べて、ステップ9062に以下の制約が追加される。ルマノード(つまり、ルマブロックの子ノード)に対して同じ予測モードが使用される。つまり、各ルマノードに対して、イントラ予測又はインター予測が実行される。他のステップは実施形態1におけるものと同様であり、詳細は再び説明されない。
【0205】
以下の方法のうちのいずれか1つが、ルマノードに対して同じ予測モードを使用するために使用されてよい。
【0206】
方法1:現在フレームがIフレームである場合、規定により、現在ノードの全部の子ノードに対して、イントラ予測が実行される。或いは、現在フレームがPフレーム又はBフレームである場合、パース処理が実行される第1ノード(略して第1子ノードであってよい)がパースされて、第1ノードの予測モードを取得する。残りの子ノード(略してルマノードである)の予測モードは、規定により、パース処理の実行される第1ノードの予測モードである。或いは、
方法2:現在フレームがIフレームである場合、規定により、現在ノードの全部の子ノードに対してイントラ予測が実行される。或いは、現在フレームがPフレーム又はBフレームである場合、規定により、現在ノードの全部の子ノードに対してインター予測が実行される。
【0207】
実施形態3
図11は、本発明の実施形態3による方法のフローチャート1100である。実施形態3は、ステップ1104を除き、実施形態1と同様である。
【0208】
ステップ1104:現在ノードの分割モードに基づき、現在ノードのサイズ、及び現在ノードの中でパース処理の実行される第1ノード(略して第1子ノードであってよい)の予測モード、現在ノードのクロマブロックが分割されるかどうか、を決定する。ここで、第1子ノードはルマブロックのみを含む。同じ予測モードが、現在ノードの複数の子ノードに対して実行される。各子ノードは、ルマブロックのみを含む。
【0209】
現在ノードの分割モード及び現在ノードのサイズが先ず決定されるか、又は第1子ノードの予測モードが先ず決定されるかどうかは、本発明の本施形態で限定されない。
【0210】
実施形態1又は2に基づき、実施形態3では、現在ノードのクロマブロックの分割モード、対応する予測情報パースモード、及び対応する残差情報パースモードは、現在ノードの第1子ノードの予測モードを参照して決定される。
【0211】
実装では、現在ノードの分割モード及び現在ノードのサイズに基づき、現在ノードを分割することにより生成された子ノードが、辺の長さが第1閾値と等しい又は辺の長さが第2閾値より短いマクロブロックを含むこと、及び第1子ノードの予測モードがイントラ予測であることが決定される。この場合、現在ノードのクロマブロックは更に分割されない。実施形態1と同様に、例えば、第1閾値は2であってよく、第2閾値は4であってよい。
【0212】
本発明の本実施形態では、辺の長さが第1閾値であるクロマブロックは、幅又は高さが第1閾値であるクロマブロックである。
【0213】
別の実装では、第1子ノードの予測モードは、イントラ予測であり、条件1~条件5のいずれか1つが真である。
条件1:現在ノードの幅が第2閾値の2倍に等しく、現在ノードの分割モードが垂直2分割である。
条件2:現在ノードの高さが第2閾値の2倍に等しく、現在ノードの分割モードが水平2分割である。
条件3:現在ノードの幅が第2閾値の4倍に等しく、現在ノードの分割モードが垂直3分割である。
条件4:現在ノードの高さが第2閾値の4倍に等しく、現在ノードの分割モードが水平3分割である。又は、
条件5:現在ノードの幅が第2閾値の2倍に等しく、現在ノードの分割モードが4分割であり、現在ノードのクロマブロックは更に分割されない。
【0214】
通常、現在ノードの幅は、現在ノードに対応するルマブロックの幅であり、現在ノードの高さは、現在ノードに対応するルマブロックの高さである。特定の実装では、例えば、第2閾値は4であってよい。
【0215】
第1子ノードの予測モードがイントラ予測であるとき、第1実施形態と同様に、第3の実装では、幅が第1閾値であるクロマブロック(又は、幅が第2閾値より狭いクロマブロック)が、現在ノードの分割モードに基づき現在ノードを分割することにより生成されるかどうかが決定されてよい。現在ノードを分割することにより生成された子ノードが、幅が第1閾値であるクロマブロック(又は、幅が第2閾値より狭いクロマブロック)を含むと決定され、第1子ノードの予測モードがイントラ予測である場合、現在ノードのクロマブロックは更に分割されない。例えば、第1閾値は2であってよく、第2閾値は4であってよい。
【0216】
第1子ノードの予測モードがイントラ予測であるとき、第1実施形態と同様に、第4の実装では、クロマサンプル数が第3閾値より少ないクロマブロックが、現在ノードの分割モードに基づき現在ノードを分割することにより生成されるかどうかが決定されてよい。現在ノードを分割することにより生成された子ノードが、クロマサンプル数が第3閾値より少ないクロマブロックを含むと決定され、第1子ノードの予測モードがイントラ予測である場合、現在ノードのクロマブロックは更に分割されない。例えば、第3閾値は16であってよい。この場合、クロマサンプル数が16より少ないクロマブロックは、限定ではないが、2×2クロマブロック、2×4クロマブロック、及び4×2クロマブロックを含む。第3閾値は8であってよい。この場合、クロマサンプル数が8より少ないクロマブロックは、限定ではないが、2×2クロマブロックを含む。
【0217】
具体的に、条件1又は条件2のいずれかが真である場合、クロマサンプル数が第3閾値より少ないクロマブロックが、現在ノードの分割モードに基づき現在ノードを分割することにより生成されると決定されてよい。その他の場合、現在ノードの分割モードに基づき現在ノードを分割することにより、クロマサンプル数が第3閾値より少ないクロマブロックが生成されないと決定されてよい。
条件1:現在ノードの幅と高さとの積は、128より小さく、現在ノードの分割モードは、垂直2分割又は水平2分割である。又は、
条件2:現在ノードの幅と高さとの積は、256より小さく、現在ノードの分割モードは、垂直3分割、水平3分割、又は4分割である。
【0218】
具体的に、別の実装では、条件3又は条件4のいずれかが真である場合、クロマサンプル数が第3閾値より少ないクロマブロックが、現在ノードの分割モードに基づき現在ノードを分割することにより生成されると決定されてよい。その他の場合、現在ノードの分割モードに基づき現在ノードを分割することにより、クロマサンプル数が第3閾値より少ないクロマブロックが生成されないと決定されてよい。
条件3:現在ノードの幅と高さとの積は、64に等しく、現在ノードの分割モードは、垂直2分割、水平2分割、4分割、水平3分割、又は垂直3分割である。又は、
条件4:現在ノードの幅と高さとの積は、128に等しく、現在ノードの分割モードは、垂直3分割又は水平3分割である。
【0219】
第1子ノードの予測モードがイントラ予測であるとき、第1実施形態と同様に、第5の実装では、高さが第1閾値であるクロマブロック(又は、高さが第2閾値より低いクロマブロック)が、現在ノードの分割モードに基づき現在ノードを分割することにより生成されるかどうかが決定されてよい。現在ノードを分割することにより生成された子ノードが、高さが第1閾値であるクロマブロック(又は、高さが第2閾値より低いクロマブロック)を含むと決定され、第1子ノードの予測モードがイントラ予測である場合、現在ノードのクロマブロックは更に分割されない。例えば、第1閾値は2であってよく、第2閾値は4であってよい。
【0220】
現在ノードのクロマブロックが更に分割されない場合、現在ノードのクロマブロックは、クロマブロックのみを含む符号化単位になる。方法1100は、クロマブロックの予測情報及び/又は残差情報を取得するステップを更に含んでよい。
【0221】
別の実装では、現在ノードの分割モード及び現在ノードのサイズに基づき、現在ノードを分割することにより生成された子ノードが、辺の長さが閾値より短いクロマブロックを含むと決定される。第1子ノードの予測モードがインター予測である場合、現在ノードのクロマブロックは、現在ノードの分割モードに基づき分割される。任意的に、クロマブロックの対応する子ノードの動き情報は、現在ノードの子ノードの動き情報に基づき決定される。例えば、現在ノードのクロマブロックの子ノードの動き情報は、対応するルマノードの動き情報として設定されてよい(つまり、クロマブロックの各子ノードの動き情報は、ビットストリームからパースされる必要がない)。クロマブロックの子ノードは、クロマブロックの子ノードの残差情報を取得するためにパースされる。
【0222】
第1子ノードの予測モードがインター予測であるとき、以下の条件のいずれか1つが真である。
条件1:現在ノードの幅が第2閾値の2倍に等しく、現在ノードの分割モードが垂直2分割である。
条件2:現在ノードの高さが第2閾値の2倍に等しく、現在ノードの分割モードが水平2分割である。
条件3:現在ノードの幅が第2閾値の4倍に等しく、現在ノードの分割モードが垂直3分割である。
条件4:現在ノードの高さが第2閾値の4倍に等しく、現在ノードの分割モードが水平3分割である。又は、
条件5:現在ノードの幅が第2閾値の2倍に等しく、現在ノードの分割モードが4分割である場合、現在ノードのクロマブロックは依然として分割される必要がある。
【0223】
通常、現在ノードの幅は、現在ノードに対応するルマブロックの幅であり、現在ノードの高さは、現在ノードに対応するルマブロックの高さである。特定の実装では、例えば、第2閾値は4であってよい。
【0224】
実施形態3では、クロマブロック分割モード、対応する予測情報パースモード、及び対応する残差情報パースモードは、ルマノードの予測モードに基づき決定されてもよい。このように、より高い柔軟性が達成される。更に、ルマノードの予測モードがイントラ予測であるとき、現在ノードのクロマブロックは更に分割されない。それにより、クロマ符号化及び復号効率を向上し、コーデックの最大スループットを低減し、コーデックの実装を容易にする。
【0225】
CUレベルの幾つかのシンタックス構造は、表1に示され得る。現在ノードが子ノードに更に分割されない場合、現在ノードは符号化単位であり、符号化単位の予測ブロックは以下のシンタックス構造に従いパースされる。
【0226】
skip_flagはスキップモードを表すフラグである。skip_flagの値が1であるとき、それは、スキップモードが現在CUに使用されることを示す。或いは、skip_flagの値が0であるとき、それは、スキップモードが現在CUに使用されないことを示す。
【0227】
merge_flagは直接モードを表すフラグである。merge_flagの値が1であるとき、それは、マージモードが現在CUに使用されることを示す。或いは、merge_flagの値が0であるとき、それは、マージモードが使用されないことを示す。
【0228】
cu_pred_modeは、符号化単位の予測モードを表すフラグである。cu_pred_modeの値が1であるとき、それは、イントラ予測モードが現在符号化単位に使用されることを示す。或いは、cu_pred_modeの値が0であるとき、それは、共通インター予測モードが現在符号化単位に使用されることを示す。
表1
【表1】
【0229】
CUレベルの幾つかのシンタックスパースは、表2に示され得る。表2は単なる例である。表2で、skip_flagの意味は、表1のskip_flagのものと同じであり、pred_mode_flagの意味は、表1のcu_pred_modeのものと同じである。
【0230】
cu_skip_flagはスキップモードを表すフラグである。cu_skip_flagの値が1であるとき、それは、スキップモードが現在CUに使用されることを示す。或いは、cu_skip_flagの値が0であるとき、それは、スキップモードが現在CUに使用されないことを示す。
【0231】
merge_flagは直接モードを表すフラグである。merge_flagの値が1であるとき、それは、マージモードが現在CUに使用されることを示す。或いは、merge_flagの値が0であるとき、それは、マージモードが使用されないことを示す。
【0232】
pred_mode_flagは、符号化単位の予測モードを表すフラグである。pred_mode_flagの値が1であるとき、それは、イントラ予測モードが現在予測単位に使用されることを示す。或いは、pred_mode_flagの値が0であるとき、それは、共通インター予測モードが現在予測単位に使用されることを示す。pred_mode_flagの値が1である場合、CuPredMode[x0][y0]の値はMODE_INTRAである。或いは、pred_mode_flagの値が0である場合、CuPredMode[x0][y0]の値はMODE_INTERである。
表2
【表2】
【0233】
8×M(又はM×8)のサイズを有するノードは、垂直2分割(又は水平2分割)モードで、4×M(又はM×4)のサイズを有する2個の子ノードに分割される。同様に、16×M(又はM×16)のサイズを有するノードは、垂直拡張4分割(又は水平拡張4分割)モードで、4×M(又はM×4)のサイズを有する4個の子ノード、及び8×N(又はN×8)のサイズを有する1個の子ノードに分割される。同様に、16×M(又はM×16)のサイズを有するノードは、垂直3分割(又は水平3分割)モードで分割されて、2個の4×M(又はM×4)のサイズを有する子ノード、及び8×M(又はM×8)のサイズを有する1個の子ノードを生成する。YUV4:2:0のデータ形式では、クロマ成分の解像度はルマ成分の1/2である。つまり、4×Mノードは、1個の4×Mルマブロック及び2個の2×(M/2)クロマブロックを含む。ハードウェアデコーダでは、小さなブロック(具体的には2×2、2×4、及び2×8のサイズを有する)の処理コストは、比較的高い。しかしながら、この分割モードでは、2×2、2×4、等のサイズを有する小さなブロックが生成され、これは、ハードウェアデコーダの実装にとって望ましくない。ハードウェアデコーダでは、小さなブロックの処理の複雑さが比較的高く、これは、具体的に以下の3つの態様で実現される。
【0234】
(1)イントラ予測における問題:ハードウェア設計では、処理速度を向上するために、16個のピクセルが、通常、イントラ予測では同時に1回処理され、2×2、2×4、4×2等のサイズを有する小さなブロックは16個より少ないピクセルを含み、イントラ予測処理性能を低下させる。
【0235】
(2)係数符号化における問題:HEVCでは、変換係数符号化は、16個の係数を含む係数グループ(coefficient group, CG)に基づくが、2×2、2×4、4×2等のサイズを有する小さなブロックは、4又は8個の変換係数を含む。結果として、4個の係数及び8個の係数を含む係数グループが、これらの小さなブロックの係数符号化をサポートするために追加される必要がある。その結果、実装の複雑さが増大する。
【0236】
(3)インター予測における問題:小さなブロックに対するインター予測は、データ帯域幅に対する比較的高い要件を生じ、復号処理速度にも影響する。
【0237】
ノードが分割モードに基づき更に分割され、生成された子ノードのうちの1つが、辺の長さが2であるクロマブロックを含むとき、子ノードに含まれるルマブロックは、この分割モードで更に分割され続け、子ノードに含まれるクロマブロックは更に分割されない。このモードは、辺の長さが2であるクロマブロックの生成を回避し、デコーダの最大スループットを低減し、デコーダの実装を容易にできる。更に、ルマブロック予測モードに基づきクロマブロック予測モードを決定する方法が提案され、符号化効率を効果的に向上する。
【0238】
本発明で提供される方法は、前述の実施形態におけるビデオコーデックに適用されてよい。
【0239】
実施形態4
本実施形態は、ビデオ復号におけるブロック分割モードに関する。本実施形態におけるビデオデータ形式はYUV4:2:0形式である。同様のモードは、YUV4:2:2データに使用されてよい。
【0240】
ステップ1:ノードAの分割モードSをパースする。ここで、ノードAが分割され続ける場合、ステップ2が実行される。或いは、現在ノードが子ノードに更に分割されない場合、現在ノードは1つの符号化単位に対応し、符号化単位に関する情報は、パースを通じて取得される。
【0241】
ノードAの分割モードは、4分割、垂直2分割、水平2分割、垂直3分割、及び水平3分割、のうちの少なくとも1つであってよく、又は別の分割モードであってよい。ノードAの分割モードは、本発明で限定されない。現在ノードの分割モード情報は、ビットストリーム内で送信されてよく、現在ノードの分割モードは、ビットストリーム内の対応するシンタックス要素をパースすることにより取得されてよい。現在ノードの分割モードは、代替として、プリセットルールに従い決定されてよく、本発明で限定されない。
【0242】
ステップ2:分割モードSに基づきノードAを分割することにより取得された子ノードの中の少なくとも1つの子ノードBのクロマブロックが小さなブロックであるかどうか(又は、ノードAの幅、高さ、及び/又は分割モード、及び/又はノードBの幅及び高さが、条件のうちの少なくとも1つを満たすかどうか)を決定する。ノードAを分割することにより取得された子ノードの中の少なくとも1つの子ノードBのクロマブロックが小さなブロックである場合、ステップ3~ステップ6が実行される。
【0243】
具体的に、ノードAの少なくとも1つの子ノードBのクロマブロックがサブブロックであるかどうかを決定するために、以下の方法のうちの1つが使用されてよい。
(1)ノードAの少なくとも1つの子ノードBのクロマブロックが、2×2、2×4、又は4×2のサイズを有する場合、ノードAの少なくとも1つの子ノードBのクロマブロックは、小さなブロックである。
(2)ノードAの少なくとも1つの子ノードBのクロマブロックの幅又は高さが2である場合、ノードAの少なくとも1つの子ノードBのクロマブロックは小さなブロックである。
(3)ノードAが128個のルマサンプルを含み、ノードAに対して3分木分割が実行された、又は、ノードAが64個のルマサンプルを含み、ノードAに対して2分木分割が実行され、4分木分割モード又は3分木分割モードの場合、ノードAの少なくとも1つの子ノードBのクロマブロックは小さなブロックである。
(4)ノードAが256個のルマサンプルを含み、ノードが3分木分割モード又は4分木分割モードで分割された、又は、ノードAが128個のルマサンプルを含み、ノードが2分木分割モードで分割された場合、ノードAの少なくとも1つの子ノードBのクロマブロックは小さなブロックである。
(5)ノードAがN1個のルマサンプルを含み、ノードAに対して3分木分割が実行された場合、ここでN1は64、128、又は256である。
(6)ノードAがN2個のルマサンプルを含み、ノードAに対して4分木分割が実行された場合、ここでN2は64、又は256である。或いは、
(7)ノードAがN3個のルマサンプルを含み、ノードAが2分木分割モードで分割された場合、ここでN3は64、128、又は256である。
【0244】
留意すべきことに、ノードAが128個のルマサンプルを含むことは、現在ノードの面積が128である、又はノードAの幅と高さとの積が128である、として記載されることもある。詳細はここに説明されない。
【0245】
ステップ3:イントラ予測又はインター予測がノードAのカバレッジ領域内の全部の符号化単位に対して実行される、と制限する。全部の符号化単位に対するイントラ予測及びインター予測では、小さなブロックに対する並列処理がハードウェアにより実施されてよく、それにより、符号化及び復号性能を向上する。
【0246】
ノードAのカバレッジ領域内の全部の符号化単位に対してイントラ予測又はインター予測を実行することを決定するために、以下の方法のうちの1つが使用されてよい。
【0247】
方法1:シンタックステーブル内のフラグに基づき、決定が行われる。
【0248】
分割モードSに基づきノードAを分割することにより取得された少なくとも1つの子ノードBのクロマブロックが、小さなブロックである(及びノードAのクロマブロックが小さなブロックではない)場合、フラグcons_pred_mode_flagがビットストリームからパースされる。cons_pred_mode_flagの値が0であるとき、それは、ノードAのカバレッジ領域内の全部の符号化単位に対してインター予測が実行されることを示す。或いは、cons_pred_mode_flagの値が1であるとき、それは、ノードAのカバレッジ領域内の全部の符号化単位に対してイントラ予測が実行されることを示す。cons_pred_mode_flagは、ブロック分割処理の中でパースされる必要のあるシンタックス要素であってよい。シンタックス要素がパースされるとき、ノードAのカバレッジ領域内の符号化単位のcu_pred_modeは、もはやパースされなくてよく、cu_pred_modeの値は、cons_pred_mode_flagの値に対応する規定値である。
【0249】
留意すべきことに、イントラ予測モードのみが、ノードAの子ノードのために使用できる、例えば、ノードAがイントラピクチャ内にある(つまり、ノードAの位置するピクチャのタイプがイントラタイプ又はIタイプである)、又はノードAがイントラピクチャ内にあり、シーケンスのためにIBC技術が使用されない場合、cons_pred_mode_flagの値は規定により1であり、cons_pred_mode_flagはビットストリーム内に存在しない。IBC技術は、インター予測に属してよく、又はイントラ予測に属してよい。
【0250】
方法2:ノードAの領域内の第1ノードの予測モードに基づき、決定が行われる。
【0251】
ノードAの領域内の第1符号化単位B0の予測モード(ここで、第1符号化単位B0の予測モードは限定されない)がパースされる。B0の予測モードがイントラ予測である場合、ノードAのカバレッジ領域内の全部の符号化単位に対してイントラ予測が実行される。或いは、B0の予測モードがインター予測である場合、ノードAのカバレッジ領域内の全部の符号化単位に対してインター予測が実行される。
【0252】
ステップ4:ノードAのカバレッジ領域内の符号化単位に使用される予測モードに基づき、ノードAのクロマブロック分割モード及びルマブロック分割モードを決定する。
【0253】
ノードAのカバレッジ領域内の全部の符号化単位に対してイントラ予測モードが使用される場合、ノードAのルマブロックは分割モードSに基づき分割されて、N個のルマ符号化木ノードを取得する。ノードAのクロマブロックは分割されず、1つのクロマ符号化ブロック(略してクロマCBである)に対応する。N個のルマ符号化木ノードは、更に分割されないことに限定されてよく、又は限定されなくてよい。ルマ子ノードが分割され続ける場合、再帰的分割を実行するために、ルマ子ノードの分割モードがパースされる。ルマ符号化木ノードが更に分割されない場合、ルマ符号化木ノードは、ルマ符号化ブロック(略してルマCBである)に対応する。クロマCBに対応するクロマ変換ブロック及びクロマ符号化ブロックは、同じサイズを有し、クロマ予測ブロック及びクロマ符号化ブロックは同じサイズを有する。
【0254】
ノードAのカバレッジ領域内の全部の符号化単位に対してインター予測モードが使用される場合、ノードAのルマブロック及びクロマブロックは、分割モードSに基づき、ルマブロック及びクロマブロックを含むN個の符号化木ノードに更に分割され、N個の符号化木ノードは、分割され続けてよく又は分割されなくてよく、ルマブロック及びクロマブロックを含む符号化単位に対応してよい。
【0255】
ステップ5:ノードAを分割することにより取得されたCUの予測情報及び残差情報をパースする。
【0256】
予測情報は、予測モード(イントラ予測モード又は非イントラ予測モードを示す)、イントラ予測モード、インター予測モード、動き情報、等を含む。動き情報は、予測方向(前方、後方、又は両方向)、参照インデックス(reference index)、及び動きベクトル(motion vector)のような情報を含んでよい。
【0257】
残差情報は、符号化ブロックフラグ(coded block flag, CBF)、変換係数、変換タイプ(例えば、DCT-2、DST-7、DCT-8)、等を含む。変換タイプは規定によりDCT-2であってよい。
【0258】
イントラ予測のみが、ノードAを分割することにより取得された各CUに対して実行できることが限定される場合、ノードAを分割することにより取得されたルマCBの予測ブロックのパースは、skip_flag、merge_flag、及びcu_pred_modeがそれぞれ0、0、及び1に設定されること(つまり、skip_flag、merge_flag、及びcu_pred_modeのいずれもビットストリーム内に存在しない)、又は、skip_flag及びcu_pred_modeがそれぞれ規定により0及び1に設定されること(つまり、skip_flag及びcu_pred_modeのいずれもビットストリーム内に存在しない)、及びルマCBのイントラ予測モード情報がパースされることを含み、ノードAを分割することにより取得されたクロマCBの予測ブロックのパースは、クロマCBのイントラ予測モードのパースを含む。クロマCBのイントラ予測モードをパースする方法は、以下であってよい。(1)ビットストリームからシンタックス要素をパースして、クロマCBのイントラ予測モードを取得する。及び(2)クロマCBのイントラ予測モードを、クロマイントラ予測モードセットの中の1つの予測モード、例えば、クロスコンポーネント線形モデルモード、DMモード(chroma derived mode, DM)、又はIBCモード、のうちの1つに直接設定する。
【0259】
ノードAを分割することにより取得される各CUに対してインター予測のみが実行できることが限定される場合、ノードAを分割することにより取得されるCUの予測モードのパースは、skip_flag又は/及びmerge_flagをパースすること、cu_pred_modeを規定により0に設定すること、及びパースを通じて、マージインデックス(merge index)、インター予測方向(inter dir)、参照インデックス(reference index)、動きベクトル予測インデックス(motion vector predictor index)、及び動きベクトル差(motion vector difference)のようなインター予測ブロックを取得することを含む。
【0260】
skip_flagはスキップモードを表すフラグである。skip_flagの値が1であるとき、それは、スキップモードが現在CUに使用されることを示す。或いは、skip_flagの値が0であるとき、それは、スキップモードが現在CUに使用されないことを示す。merge_flagはマージモードを表すフラグである。merge_flagの値が1であるとき、それは、マージモードが現在CUに使用されることを示す。或いは、merge_flagの値が0であるとき、それは、マージモードが使用されないことを示す。cu_pred_modeは、符号化単位の予測モードを表すフラグである。cu_pred_modeの値が1であるとき、それは、現在予測単位に対してイントラ予測が実行されることを示す。或いは、cu_pred_modeの値が0であるとき、それは、現在予測単位に対して共通インター予測が実行されることを示す(インター予測方向、参照インデックス、動きベクトル予測インデックス、及び動きベクトル差成分のような情報はビットストリーム内で識別される)。
【0261】
留意すべきことに、本実施形態では、イントラ予測モードは、符号化ブロックの位置するピクチャの空間参照ピクセルを用いて符号化ブロックの予測を生成するための予測モード、例えば直流モード(direct current mode, DC mode)、平面モード(Planar mode)、又は角度モード(angular mode)であり、又は、テンプレートマッチングモード(template matching mode)及びIBCモードである。
【0262】
インター予測モードは、符号化ブロックの参照ピクチャ内の時間的参照ピクセルを用いて符号化ブロックの予測を生成する予測モード、例えば、スキップモード(Skip mode)、マージモード(Merge mode)、AMVP(advanced motion vector prediction)モード、又は共通インターモード若しくはIBCモードである。
【0263】
ステップ6:各CUを復号して、ノードAに対応するピクチャブロックの再構成信号を取得する。
【0264】
例えば、各CUの予測ブロックは、CUに対してインター予測処理又はイントラ予測処理を実行して、CUのインター予測ピクチャ又はイントラ予測ピクチャを取得する。次に、逆量子化及び逆変換処理が、各CUの残差情報に基づき、変換係数に対して実行され、残差ピクチャを取得する。残差ピクチャは、対応する領域において予測ピクチャに重畳され、再構成ピクチャを生成する。
【0265】
実施形態4における分割モードによると、イントラ予測の実行される小さなクロマブロックが生成されない。それにより、小さなブロックのイントラ予測における問題を解消する。
【0266】
実施形態5
本実施形態のステップ1、ステップ2、ステップ3、及びステップ6は、実施形態4のものと同じである。
【0267】
ステップ4:ノードAのクロマブロック分割モード及びルマブロック分割モードを決定する。
【0268】
ノードAのルマブロックは、分割モードSに基づき分割され続けて、N個のルマ符号化木ノードを生成する。ノードAのクロマブロックは、更に分割されず、1つのクロマ符号化ブロック(クロマCB)に対応する。クロマCBに対応するクロマ変換ブロック及びクロマ符号化ブロックは同じサイズを有する。[注:実施形態4と比べて、本実施形態では、インター予測モード又はイントラ予測モードが使用されるかが限定されるかどうかに拘わらず、クロマブロックは常に分割されず、ルマブロックは、ノードAのカバレッジ領域の予測モードに拘わらず分割モードSに基づき常に分割される。]
【0269】
ステップ5:ノードAを分割することにより取得されたCUの予測ブロック及び残差情報をパースする。
【0270】
ノードAを分割することにより取得された各CUに対してイントラ予測のみが実行できることが限定される場合、処理は実施形態4におけるものと同じである。
【0271】
ノードAを分割することにより取得される各CUに対してインター予測のみが実行できることが限定される場合、ノードAを分割することにより取得されるルマCBの予測モードのパースは、skip_flag又は/及びmerge_flagをパースすること、cu_pred_modeを規定により0に設定すること、及びパースを通じて、マージインデックス(merge index)、インター予測方向(inter dir)、参照インデックス(reference index)、動きベクトル予測インデックス(motion vector predictor index)、及び動きベクトル差(motion vector difference)のようなインター予測ブロックを取得することを含む。ルマCB内の各4×4サブブロックの動き情報は、パースを通じて取得されるインター予測ブロックから導出される。
【0272】
ノードAを分割することにより取得された各CUに対してインター予測のみが実行できることが限定される場合、ノードAを分割することにより取得されたクロマCBの予測ブロックはパースされる必要がなく、クロマCBは、2×2クロマサブブロックに分割される(ここで、分割モードは分割モードSであってよい)。各2×2クロマサブブロックの動き情報は、2×2クロマサブブロックに対応する4×4ルマ領域の動き情報である。
【0273】
実施形態5における分割モードによると、イントラ予測の実行される小さなクロマブロックも、16ピクセルより少ない変換ブロックも、生成されない。従って、イントラ予測及び係数符号化における上述の問題は、実施形態5において解消される。
【0274】
実施形態6
本実施形態のステップ1、ステップ2、ステップ3、ステップ4、及びステップ6は、実施形態5のものと同じである。
【0275】
ステップ5:ノードAを分割することにより取得されたCUの予測ブロック及び残差情報をパースする。
【0276】
ノードAを分割することにより取得された各CUに対してイントラ予測のみが実行できることが限定される場合、処理は実施形態5におけるものと同じである。
【0277】
ノードAを分割することにより取得された各CUに対してインター予測のみが実行できることが限定される場合、ノードAを分割することにより取得されるルマCBの予測ブロックのパースは実施形態5におけるものと同じである。
【0278】
ノードAを分割することにより取得された各CUに対してインター予測のみが実行できることが限定される場合、ノードAを分割することにより取得されたクロマCBの予測ブロックは、パースされる必要がなく、クロマ予測ブロック及びクロマ符号化ブロックは同じサイズを有し、クロマCBの動き情報は、クロマCBに対応するルマ領域内の特定のプリセット位置(例えば、ルマ領域の中央、右下角、又は左上角)の動き情報である。
【0279】
実施形態6における分割モードによると、イントラ予測の実行される小さなクロマブロック、小さなブロックの変換ブロック、及びインター予測の生成される小さなクロマブロックのいずれも、生成されない。
【0280】
実施形態7
ステップ1:ステップ1は、実施形態4のステップ1と同じである。
【0281】
ステップ2:分割モードSに基づきノードAを分割することにより取得された子ノードの中の少なくとも1つの子ブロックBのルマブロックが4×4ルマブロックであるかどうか(ノードAの幅、高さ、及び/又は分割モード、及び/又はノードBの幅及び高さが、ケース1の条件のうちの少なくとも1つを満たすかどうか)を決定する。
【0282】
ノードAのサイズ(つまり、幅及び高さ)、及び/又は分割モードSが、ケース1の条件のうちの少なくとも1つを満たす場合、ノードAのカバレッジ領域内の全部の符号化単位に対してイントラ予測が実行されることが限定される。その他の場合、分割モードSに基づきノードAを分割することにより取得された子ノードの中の少なくとも1つの子ノードBのクロマブロックが小さなブロックであるかどうか(ノードAのサイズ及び/又は分割モードS、及び/又はノードBの幅及び高さが、ケース2の条件のうちの少なくとも1つを満たすかどうか)が決定され、「はい」の場合、ステップ3~ステップ6が実行される。
【0283】
具体的に、ノードAの少なくとも1つの子ノードBのクロマブロックが小さなブロックであることを決定する方法には以下の2つのケースがある。
【0284】
ケース1:
【0285】
以下のプリセット条件のうちの1つ以上が真である場合、ノードAは、分割モードSに基づき分割されて、4×4ルマブロックを取得する。
(1)ノードAがM1個のピクセルを含み、ノードAの分割モードが4分木分割である。例えば、M1は64である。
(2)ノードAがM2個のピクセルを含み、ノードAの分割モードが3分木分割である。例えば、M2は64である。
(3)ノードAがM3個のピクセルを含み、ノードAの分割モードが2分木分割である。例えば、M3は32である。
(4)ノードAの幅が第2閾値の4倍に等しく、ノードAの高さが第2閾値に等しく、ノードAの分割モードが垂直3分木分割である。
(5)ノードAの幅が第2閾値に等しく、ノードAの高さが第2閾値の4倍に等しく、ノードAの分割モードが水平3分木分割である。
(6)ノードAの幅が第2閾値の2倍に等しく、ノードAの高さが第2閾値に等しく、現在ノードの分割モードが垂直2分木分割である。
(7)ノードAの高さが第2閾値の2倍に等しく、ノードAの幅が第2閾値に等しく、現在ノードの分割モードが水平2分木分割である。又は、
(8)ノードAの幅又は/及び高さが第2閾値の2倍であり、ノードAの分割モードが4分木分割である。
【0286】
サイズは、ノードAに対応するピクチャ領域の幅及び高さ、又は、ノードAに対応するピクチャ領域に含まれるルマサンプルの数、又はノードAに対応するピクチャ領域の面積であってよい。
【0287】
通常、現在ノードの幅は、現在ノードに対応するルマブロックの幅であり、現在ノードの高さは、現在ノードに対応するルマブロックの高さである。特定の実装では、例えば、第2閾値は4であってよい。
【0288】
ケース2:
(1)ノードAの少なくとも1つの子ノードBのクロマブロックは、2×4又は4×2のサイズを有する。
(2)ノードAの少なくとも1つの子ノードBのクロマブロックの幅又は高さは、2である。
(3)ノードAが128個のルマサンプルを含み、ノードAに対して3分木分割が実行される、又は、ノードAが64個のルマサンプルを含み、ノードAに対して2分木分割、4分木分割、又は3分木分割が実行される。
(4)ノードAが256個のルマサンプルを含み、ノードに対して3分木分割又は4分木分割が実行される、又は、ノードAが128個のルマサンプルを含み、ノードに対して2分木分割が実行される。
(5)ノードAがN1個のルマサンプルを含み、ノードAに対して3分木分割が実行され、ここでN1は64、128、又は256である。
(6)ノードAがN2個のルマサンプルを含み、ノードAに対して4分木分割が実行され、ここでN2は64、又は256である。或いは、
(7)ノードAがN3個のルマサンプルを含み、ノードAに対して2分木分割が実行され、ここでN3は64、128、又は256である。
【0289】
留意すべきことに、ノードAが128個のルマサンプルを含むことは、現在ノードの面積が128である、又はノードAの幅と高さとの積が128である、として記載されることもある。詳細はここに説明されない。
【0290】
ステップ3:ステップ3は、実施形態4のステップ3と同じである。
【0291】
ステップ4:ノードAのカバレッジ領域内の符号化単位に使用される予測モードに基づき、ノードAのクロマブロック分割モード及びルマブロック分割モードを決定する。
【0292】
ノードAのカバレッジ領域内の全部の符号化単位に対してインター予測モードが使用される場合、ノードAのルマブロック及びクロマブロックは、分割モードSに基づき分割されて、ノードAの子ノード及び/又はノードAのカバレッジ領域内の子ノードを取得する。ノードAの子ノード及び/又はノードAのカバレッジ領域内の子ノードの分割モードに基づき、4×4ルマブロックが生成された場合、子ノードの分割モードは許可されず、又は子ノードは分割され続けることができない。例えば、ノードAが8×8のサイズを有し、水平2分木分割(又は垂直2分木分割)モードでノードAを分割することにより2個の8×4(又は2個の4×8)ノードが生成された場合、8×4(又は4×8)ノードは4×4ブロックへと分割され続ける。この場合、8×4(又は4×8)ノードは分割され続けることができない。
【0293】
ノードAのカバレッジ領域内の全部の符号化単位に対してイントラ予測モードが使用される場合、実施形態4、5、及び6における方法は、実装方法として使用されてよく、詳細はここで再び説明されない。例えば、ノードAのルマブロックが分割され、ノードAのクロマブロックは分割されない。
【0294】
ステップ5:ノードAを分割することにより取得されたCUの予測ブロック及び残差情報をパースする。
【0295】
このステップは、実施形態4におけるステップ5と同じであり、詳細はここで再び説明されない。
【0296】
ステップ6:各CUを復号して、ノードAに対応するピクチャブロックの再構成信号を取得する。
【0297】
ステップ6は、実施形態4におけるステップ6の方法で実施されてよく、ここで更に説明されない。
【0298】
実施形態8
ステップ1:ステップ1は、実施形態4のステップ1と同じである。
【0299】
ステップ2:分割モードSに基づきノードAを分割することにより取得された子ノードの中の少なくとも1つの子ブロックBのルマブロックが4×4ルマブロックであるかどうか(ノードAの幅、高さ、及び/又は分割モード、及び/又はノードBの幅及び高さが、ケース1の条件のうちの少なくとも1つを満たすかどうか)を決定する。ノードAのサイズ(つまり、幅及び高さ)及び/又は分割モードSが、ケース1の条件のうちの少なくとも1つを満たす場合、ノードAのカバレッジ領域内の全部の符号化単位に対してイントラ予測が実行されることが限定される。又は、
分割モードSに基づきノードAを分割することにより取得された子ノードの中の少なくとも1つの子ノードBのクロマブロックが小さなブロックであるかどうか(又は、ノードAのサイズ及び/又は分割モードS、及び/又はノードBの幅及び高さが、ケース2の条件のうちの少なくとも1つを満たすかどうかが決定され、ステップ3~ステップ6が実行される。
【0300】
具体的に、ノードAの少なくとも1つの子ノードBのクロマブロックが小さなブロックであることを決定する方法には以下の2つのケースがある。
【0301】
ケース1:
【0302】
以下のプリセット条件のうちの1つ以上が真である場合、ノードAは、分割モードSに基づき分割されて、4×4ルマブロックを取得する。
(1)ノードAがM1個のピクセルを含み、ノードAの分割モードが4分木分割である。例えば、M1は64である。
(2)ノードAがM2個のピクセルを含み、ノードAの分割モードが3分木分割である。例えば、M2は128である。
(3)ノードAがM3個のピクセルを含み、ノードAの分割モードが2分木分割である。例えば、M3は32である。
(4)ノードAの幅が第2閾値の4倍に等しく、ノードAの高さが第2閾値に等しく、ノードAの分割モードが垂直3分木分割である。
(5)ノードAの幅が第2閾値に等しく、ノードAの高さが第2閾値の4倍に等しく、ノードAの分割モードが水平3分木分割である。
(6)ノードAの幅が第2閾値の2倍に等しく、ノードAの高さが第2閾値に等しく、現在ノードの分割モードが垂直2分木分割である。
(7)ノードAの高さが第2閾値の2倍に等しく、ノードAの幅が第2閾値に等しく、現在ノードの分割モードが水平2分木分割である。又は、
(8)ノードAの幅又は/及び高さが第2閾値の2倍であり、ノードAの分割モードが4分木分割である。
【0303】
サイズは、ノードAに対応するピクチャ領域の幅及び高さ、又は、ノードAに対応するピクチャ領域に含まれるルマサンプルの数、又はノードAに対応するピクチャ領域の面積であってよい。
【0304】
通常、現在ノードの幅は、現在ノードに対応するルマブロックの幅であり、現在ノードの高さは、現在ノードに対応するルマブロックの高さである。特定の実装では、例えば、第2閾値は4であってよい。
【0305】
ケース2:
(1)ノードAの少なくとも1つの子ノードBのクロマブロックは、2×4又は4×2のサイズを有する。
(2)ノードAの少なくとも1つの子ノードBのクロマブロックの幅又は高さは、2である。
(3)ノードAが128個のルマサンプルを含み、ノードAに対して3分木分割が実行される、又は、ノードAが64個のルマサンプルを含み、ノードAに対して2分木分割、4分木分割、又は3分木分割が実行される。
(4)ノードAが256個のルマサンプルを含み、ノードに対して3分木分割又は4分木分割が実行される、又は、ノードAが128個のルマサンプルを含み、ノードに対して2分木分割が実行される。
(5)ノードAがN1個のルマサンプルを含み、ノードAに対して3分木分割が実行され、ここでN1は64、128、又は256である。
(6)ノードAがN2個のルマサンプルを含み、ノードAに対して4分木分割が実行され、ここでN2は64、又は256である。或いは、
(7)ノードAがN3個のルマサンプルを含み、ノードAに対して2分木分割が実行され、ここでN3は64、128、又は256である。
【0306】
留意すべきことに、ノードAが128個のルマサンプルを含むことは、現在ノードの面積が128である、又はノードAの幅と高さとの積が128である、として記載されることもある。詳細はここに記載されない。
【0307】
ステップ3。ステップ3は、実施形態4のステップ3と同じである。
【0308】
ステップ4。ノードAのカバレッジ領域内の符号化単位に使用される予測モードに基づき、ノードAのクロマブロック分割モード及びルマブロック分割モードを決定する。
【0309】
ノードAのカバレッジ領域内の全部の符号化単位にインター予測モードが使用される場合、ノードAの子ノード及び/又はノードAのカバレッジ領域内の子ノードを取得するために、ノードAのルマブロック及びクロマブロックは、分割モードSに基づき分割される。ノードAの子ノード及び/又はノードAのカバレッジ領域内の子ノードの分割モードに基づき、4×4ルマブロックが生成された場合、子ノードの分割モードは許可されず、又は子ノードは分割され続けることができない。例えば、ノードAが8×8のサイズを有し、水平2分木分割(又は垂直2分木分割)モードでノードAを分割することにより2個の8×4(又は2個の4×8)ノードが生成された場合、8×4(又は4×8)ノードは4×4ブロックへと分割され続ける。この場合、8×4(又は4×8)ノードは分割され続けることができない。
【0310】
ノードAのカバレッジ領域内の全部の符号化単位に対してイントラ予測モードが使用される場合、実施形態4、5、及び6における方法は、実装方法として使用されてよく、詳細はここで再び説明されない。例えば、ノードAのルマブロックが分割され、ノードAのクロマブロックは分割されない。
【0311】
ステップ5。ノードAを分割することにより取得されたCUの予測ブロック及び残差情報をパースする。
【0312】
このステップは、実施形態4におけるステップ5と同じであり、詳細はここで再び説明されない。
【0313】
ステップ6。各CUを復号して、ノードAに対応するピクチャブロックの再構成信号を取得する。
【0314】
ステップ6は、実施形態4におけるステップ6の方法で実施されてよく、ここで更に説明されない。
【0315】
実施形態9
現在領域が1回分割されて、4×4ルマブロックを生成する場合(例えば、64個のルマサンプルがQTモードで分割される、又は128個のルマサンプルがTTモードで分割される)、イントラモードのみが規定により現在領域に対して使用できることが限定される。
【0316】
その他の場合、インターモードのみ又はイントラモードのみが現在領域に対して使用できることを示すために、フラグが転送される。
【0317】
インターモードのみが現在領域に対して使用できることが限定される場合、ルマ及びクロマは一緒に分割される。現在領域内のノードが分割されて、4×4ルマブロックを生成する場合、この分割は許可されない。例えば、現在ノードが8×8であり、HBT(又はVBT)モードで分割され、2個の8×4ノードを生成する場合。これらのノードが分割され続けて、4×4CUを生成する場合、これらの8×4ノードは分割され続けることができない。
【0318】
イントラモードのみが領域に対して使用できることが限定される場合、この実装は、元の実装と同じである(ルマが分割されるが、クロマは分割されない)。
【0319】
本発明の本実施形態は、イントラ予測モードが比較的小さな面積を有するクロマブロックに対して使用されることを回避し、及びデコーダのハードウェアのパイプライン処理及び実装を容易にするために、ブロック分割方法を提供する。更に、インター予測では、幾つかの予測モードのシンタックス要素をパースする処理は、スキップされてよく、それにより符号化の複雑さを低減する。
【0320】
この方法で、係数符号化における問題が解消され、符号化の複雑さが低減される。
【0321】
ブロック分割方法は、以下の通りであってよい。
【0322】
ノードAの分割モードがパースされる。
【0323】
分割モードSに基づきノードAが分割された後に、少なくとも1つの子ノードBのクロマブロックが小さなブロックとして取得されるかどうかが決定される。(ノードAの幅、高さ、及び/又は分割モード、及び/又はノードBの幅及び高さが前述の条件のうちの少なくとも1つを満たすかどうかが決定される。)
ノードAが分割モードSに基づき分割された後に、少なくとも1つの子ノードBのクロマブロックが小さなブロックとして取得されると決定された場合、イントラ予測モードまたはインター予測モードが、ノードAのカバレッジ領域内の全部の符号化単位に対して使用される。
【0324】
ノードAのクロマブロック及びルマブロックを分割し続けるかどうかが決定される。
【0325】
ノードAのカバレッジ領域内の全部の符号化単位に対してイントラ予測が実行される場合、ノードAのルマブロックは、分割モードSに基づき分割され続け、ノードAのクロマブロックは更に分割されない。ノードAのカバレッジ領域内の全部の符号化単位に対してインター予測が実行される場合、ノードAのルマブロック及びクロマブロックは、分割モードSに基づき、ルマブロック及びクロマブロックを含むN個の符号化木ノードに分割され続ける。
【0326】
ノードAのルマブロックは、分割モードSに基づき分割され続け、ノードAのクロマブロックは更に分割されない。クロマ変換ブロック及びクロマ符号化ブロックは同じサイズを有する。
【0327】
ノードAのカバレッジ領域内の全部の符号化単位に対してイントラ予測が実行されるとき、クロマ予測ブロック及びクロマ符号化ブロックは同じサイズを有する。或いは、ノードAのカバレッジ領域内の全部の符号化単位に対してインター予測が実行されるとき、クロマ予測ブロックはサブブロックに分割され(ここで、サブブロックはクロマ符号化ブロックより小さい)、各サブブロックの動きベクトルは、サブブロックに対応するルマ領域内の動きベクトルである。
【0328】
ノードAのルマブロックは、分割モードSに基づき更に分割される。ノードAのクロマブロックは、更に分割されない。クロマブロックに対応するクロマ変換ブロック及びクロマ符号化ブロックは同じサイズを有し、クロマ予測ブロック及びクロマ符号化ブロックは同じサイズを有し、クロマCBの動き情報はクロマCBに対応するルマ領域内の特定のプリセット位置の動き情報である。
【0329】
例えば、理解されるべきことに、記載の方法を参照して開示された内容は、当該方法を実行するよう構成される対応する装置又はシステムについても当てはまり得る、逆も同様である。例えば、1つ以上の特定の方法のステップが説明される場合、添付の図面にそのような1つ以上のユニットが明示的に説明され又は図示されない場合でも、対応する装置は、説明される1つ以上の方法のステップを実行するために、機能ユニットのような1つ以上のユニットを含んでよい(例えば、1つ以上のステップを実行する1つのユニット、又はそれぞれが複数のステップのうちの1つ以上を実行する複数のユニット)。更に、例えば、特定の機器が機能ユニットのような1つ以上のユニットに基づき説明される場合、添付の図面にそのような1つ以上のステップが明示的に説明され又は図示されない場合でも、対応する方法は、1つ以上のユニットの機能を実行するための1つのステップを含んでよい(例えば、1つ以上のユニットの機能を実行するための1つのステップ、又はそれぞれが複数のユニットのうちの1つ以上の機能を実行するために使用される複数のステップ)。更に、理解されるべきことに、本明細書で説明される例示的な実施形態及び/又は態様の特徴は、特に断りのない限り、互いに結合されてよい。
【0330】
1つ以上の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせにより実装されてよい。ソフトウェアで実装される場合、機能は、1つ以上の命令又はコードとしてコンピュータ可読媒体に格納され又はそれを介して送信され、ハードウェアに基づく処理ユニットにより実行されてよい。コンピュータ可読媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ可読記憶媒体、又は例えば通信プロトコルに従いある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体、を含んでよい。この方法では、コンピュータ可読媒体は、通常、(1)非一時的有形コンピュータ可読記憶媒体、又は(2)信号若しくは搬送波のような通信媒体、に対応してよい。データ記憶媒体は、本発明で説明された技術の実装のために命令、コード、及び/又はデータ構造を読み出すために、1つ以上のコンピュータ又は1つ以上のプロセッサによりアクセス可能な任意の利用可能な媒体であってよい。コンピュータプログラムプロダクトは、コンピュータ可読媒体を含んでよい。
【0331】
例により、限定ではなく、このようなタイプのコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM、又は別の光ディスク記憶、磁気ディスク記憶、又は別の磁気記憶装置、フラッシュメモリ、又は所要のプログラムコードを命令又はデータ構造の形式で格納するために使用可能な、コンピュータによりアクセス可能な任意の他の媒体、を含み得る。更に、任意の接続は、コンピュータ可読媒体として適切に参照される。例えば、命令がウェブサイト、サーバ、又は別のリモートソースから、同軸ケーブル、光ファイバケーブル、より対線、デジタル加入者線(digital subscriber line, DSL)、又は赤外線、無線、及びマイクロ波のような無線技術を用いて送信される場合、同軸ケーブル、光ファイバケーブル、より対線、DSL、又は赤外線、無線、及びマイクロ波のような無線技術は、媒体の定義に含まれる。しかしながら、理解されるべきことに、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は別の一時的媒体を含まないが、実際には非一時的有形記憶媒体を対象とする。本明細書で使用されるように、ディスク及び光ディスクは、コンパクトディスク(compact disc, CD)、レーザディスク、光ディスク、デジタルバーサタイルディスク(digital versatile disc, DVD)、ソフトディスク、及びブルーレイディスクを含む。ディスクは、通常、データを磁気的に再生し、一方、光ディスクは、データを光学的にレーザによりデータを再生する。前述の結合も、コンピュータ可読媒体の範囲に含まれるべきである。
【0332】
命令は、1つ以上のデジタル信号プロセッサ(digital signal processor, DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(application specific integrated circuit, ASIC)、フィールドプログラマブルロジックアレイ(field programmable logic array, FPGA)、又は他の等価な集積又は個別論理回路、のような1つ以上のプロセッサにより実行されてよい。従って、本明細書で使用される用語「プロセッサ」は、前述の構造又は本明細書で説明された技術を実施するために適用可能な別の構造のうちの任意の1つを表してよい。更に、幾つかの態様では、本明細書で説明された機能は、符号化及び復号又は結合されたコーデックに組み込まれるために構成される専用ハードウェア及び/又はソフトウェアモジュール内で提供されてよい。更に、技術は、全部、1つ以上の回路又は論理素子で実装されてよい。
【0333】
本開示の技術は、無線、ハンドセット、集積回路(integrated circuit, IC)、又はICのセット(例えば、チップセット)を含む広範な装置又は機器の中で実装されてよい。種々のコンポーネント、モジュール、又はユニットは、開示の技術を実行するよう構成される装置の機能的側面を強調するために、本開示で説明されたが、異なるハードウェアユニットによる達成を必ずしも要求しない。正確には、上述のように、ユニットは、適切なソフトウェア及び/又はファームウェアと組み合わせて、コーデックハードウェアユニット内で結合され、又は1つ以上のプロセッサを含む相互運用ハードウェアユニットの集合により提供されてよい。
【符号の説明】
【0334】
12 ソース装置
14 宛先装置
16 ピクチャソース
18 プロセッサ
20 エンコーダ
22 、28通信インタフェース
30 デコーダ
32 後プロセッサ
34 ディスプレイ装置