(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-27
(45)【発行日】2024-10-07
(54)【発明の名称】イントラ予測方法及び装置
(51)【国際特許分類】
H04N 19/105 20140101AFI20240930BHJP
H04N 19/136 20140101ALI20240930BHJP
H04N 19/186 20140101ALI20240930BHJP
H04N 19/593 20140101ALI20240930BHJP
【FI】
H04N19/105
H04N19/136
H04N19/186
H04N19/593
【外国語出願】
(21)【出願番号】P 2023026003
(22)【出願日】2023-02-22
(62)【分割の表示】P 2021528413の分割
【原出願日】2019-11-21
【審査請求日】2023-03-20
(32)【優先日】2018-11-21
(33)【優先権主張国・地域又は機関】US
(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)【発明者】
【氏名】チェン,ジエンローァ
【審査官】岩井 健二
(56)【参考文献】
【文献】特開2018-152850(JP,A)
【文献】特表2015-502098(JP,A)
【文献】B. Bross, et al.,CE3: Multiple reference line intra prediction (Test 1.1.1, 1.1.2, 1.1.3 and 1.1.4),JVET-L0283-DraftText.docx,JVET-L0283 (vetrsion 2),2018年10月03日,pp.52-60,https://jvet-experts.org/doc_end_user/documents/12_Macao/wg11/JVET-L0283-v2.zip
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
画像イントラ予測のための機器であって、
命令を含むメモリ
と、
前記メモリと通信する1つ以上のプロセッサとを含み、前記1つ以上のプロセッサは前記命令を実行して、
現在ブロックのイントラ予測モードを取得し、
近隣ブロックの利用可能性の導出処理の間にクロマサンプルの利用可能性を調べることにより前記現在ブロックの成分の参照サンプルの利用可能性を導出し、前記成分は
クロマ成分であり、
利用可能な参照サンプルを用いて、利用不可能な参照サンプルを置き換え、
前記イントラ予測モード及び前記置き換えられた参照サンプルに基づき、前記現在ブロックの予測を導出し、
前記予測に基づき前記現在ブロックを再構成する、機器。
【請求項2】
前記クロマ成分の前記参照サンプルrefUnfilt[x][y]は、x=-1-refIdx、y=-1-refIdx..refH-1、及びx=-refIdx..refW-1、y=-1-refIdxを有し、変数refIdxはイントラ予測参照ラインインデックスを指定し、変数refWは参照サンプル幅を指定し、変数refHは参照サンプル高さを指定する、請求項1に記載の機器。
【請求項3】
前記クロマ成分はCb成分又はCr成分を含み、
前記1つ以上のプロセッサは、前記命令を実行して、
近隣Cbブロック内のCbサンプルの利用可能性を調べることにより、前記参照サンプルの前記利用可能性を導出し、前記近隣Cbブロックは前記参照サンプルを含む、又は、
近隣Crブロック内のCrサンプルの利用可能性を調べることにより、前記参照サンプルの前記利用可能性を導出し、前記近隣Crブロックは前記参照サンプルを含む、
請求項1
又は2に記載の機器。
【請求項4】
前記再構成されたブロックの中の全部のCbサンプルは、利用可能であるとマークされる、又は、
前記再構成されたブロックの中の全部のCrサンプルは、利用可能であるとマークされる、
請求項
3に記載の機器。
【請求項5】
前記1つ以上のプロセッサは、前記命令を実行して、
前記イントラ予測モードに基づき、前記置き換えられた参照サンプルを前記現在ブロックにマッピングすることにより、前記現在ブロックの前記予測を導出し、
前記現在ブロックの前記予測に残差を加算することにより、前記現在ブロックを再構成し、
前記現在ブロックを再構成した後に、前記再構成されたブロックの中の全部のサンプルを利用可能であるとマークする、
請求項1に記載の機器。
【請求項6】
ブロック領域は多数のユニットを含み、各ユニットはユニット領域を有し、前記ユニット領域内の全部のサンプルは利用可能であるとマークされる、請求項
1に記載の機器。
【請求項7】
現在ユニットがCbユニットであるとき、前記ユニット領域によりカバーされる位置にある全部のCbサンプルは利用可能であるとマークされる、又は、
現在ユニットがCrユニットであるとき、前記ユニット領域によりカバーされる位置にある全部のCrサンプルは利用可能であるとマークされる、
請求項
6に記載の機器。
【請求項8】
参照サンプルの利用可能性は、成分毎に保存される、請求項1~
7のいずれか一項に記載の機器。
【請求項9】
エンコーダ又はデコーダにより実行される画像イントラ予測のための方法であって、
現在ブロックのイントラ予測モードを取得するステップと、
近隣ブロックの利用可能性の導出処理の間にクロマサンプルの利用可能性を調べることにより前記現在ブロックの成分の参照サンプルの利用可能性を導出するステップであって、前記成分は
クロマ成分である、ステップと、
利用可能な参照サンプルを用いて、利用不可能な参照サンプルを置き換えるステップと、
前記イントラ予測モード及び前記置き換えられた参照サンプルに基づき、前記現在ブロックの予測を導出するステップと、
前記予測に基づき前記現在ブロックを再構成するステップと、
を含む方法。
【請求項10】
前記クロマ成分の前記参照サンプルrefUnfilt[x][y]は、x=-1-refIdx、y=-1-refIdx..refH-1、及びx=-refIdx..refW-1、y=-1-refIdxを有し、変数refIdxはイントラ予測参照ラインインデックスを指定し、変数refWは参照サンプル幅を指定し、変数refHは参照サンプル高さを指定する、請求項9に記載の方法。
【請求項11】
前記クロマ成分はCb成分とCr成分を含み、
近隣Cbブロック内のCbサンプルの利用可能性を調べることにより、前記参照サンプルの前記利用可能性を導出し、前記近隣Cbブロックは前記参照サンプルを含む、又は、
近隣Crブロック内のCrサンプルの利用可能性を調べることにより、前記参照サンプルの前記利用可能性を導出し、前記近隣Crブロックは前記参照サンプルを含む、
請求項
9又は10に記載の方法。
【請求項12】
前記再構成されたブロックの中の全部のCbサンプルは、利用可能であるとマークされる、又は、
前記再構成されたブロックの中の全部のCrサンプルは、利用可能であるとマークされる、
請求項
11に記載の方法。
【請求項13】
前記方法は、
前記イントラ予測モードに基づき、前記置き換えられた参照サンプルを前記現在ブロックにマッピングすることにより、前記現在ブロックの前記予測を導出するステップと、
前記現在ブロックの前記予測に残差を加算することにより、前記現在ブロックを再構成するステップと、
前記現在ブロックを再構成した後に、前記再構成されたブロックの中の全部のサンプルを利用可能であるとマークするステップと、
を更に含む請求項
9に記載の方法。
【請求項14】
ブロック領域は多数のユニットを含み、各ユニットはユニット領域を有し、前記ユニット領域内の全部のサンプルは利用可能であるとマークされる、請求項
9に記載の方法。
【請求項15】
現在ユニットがCbユニットであるとき、前記ユニット領域によりカバーされる位置にある全部のCbサンプルは利用可能であるとマークされる、又は、
現在ユニットがCrユニットであるとき、前記ユニット領域によりカバーされる位置にある全部のCrサンプルは利用可能であるとマークされる、
請求項
14に記載の方法。
【請求項16】
前記再構成されたブロックの右境界及び下境界にあるサンプルは、利用可能であるとマークされる、請求項
9に記載の方法。
【請求項17】
右境界のサンプル及び下境界のサンプルのみが、ユニットN*1又は1*Nの中で利用可能であるとマークされる、請求項
9に記載の方法。
【請求項18】
右境界のサンプル及び下境界のサンプルのみが、ユニットN*Nの中で利用可能であるとマークされる、請求項
9に記載の方法。
【請求項19】
参照サンプルの利用可能性は、成分毎に保存される、請求項
9~18のいずれか一項に記載の方法。
【請求項20】
参照サンプル
の利用可能性は、前記参照サンプルが属するユニットの位置又はインデックスを取得することにより、決定され、
ユニットが利用可能であると決定されると、該ユニットに関連付けられた参照サンプルは利用可能であると決定される、請求項
9に記載の方法。
【請求項21】
請求項
9~20のいずれか一項に記載の方法を実行するためのプログラムコードを含むコンピュータプログラム
。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願]
本願は、米国仮特許出願番号第62/770,736号、2018年11月21日出願、名称「Intra Prediction Method and Device」の優先権を主張し、その開示はあらゆる目的のために参照によりその全体がここに組み込まれる。
【0002】
[技術分野]
本発明の実施形態は、概して、ビデオ符号化の分野に関し、特に、イントラ予測方法及び装置の分野に関する。
【背景技術】
【0003】
比較的短いビデオでも描写するために必要なビデオデータの量は相当なものになり得る。これは、データが限られた帯域幅能力を有する通信ネットワークに渡りストリーミングされる又はその他の場合に通信されるとき、困難をもたらすことがある。従って、ビデオデータは、通常、今日の電気通信ネットワークに渡り通信される前に、圧縮される。ビデオが記憶装置に格納されるとき、メモリリソースが限られていることがあるので、ビデオのサイズも問題になり得る。ビデオ圧縮装置は、送信又は記憶の前に、ソースにおいてビデオデータを符号化するためにソフトウェア及び/又はハードウェアを度々使用し、それによりデジタルビデオ画像を表現するために必要なデータの量を削減する。圧縮されたデータは、次に、ビデオデータを復号するビデオ復元装置により宛先において受信される。限られたネットワークリソース及びより高いビデオ品質の増え続ける要求に伴い、画像品質を僅かしか乃至全く犠牲にせずに圧縮率を向上する改良された圧縮及び復元技術が望ましい。
【発明の概要】
【0004】
本開示の実施形態は、画像を符号化する及び復号するためのイントラ予測機器及び方法を提供する。本開示の実施形態は、ここに詳述された例に限定されると解釈されるべきではない。
【0005】
本開示の第1の態様によると、方法は、現在ブロックのイントラ予測モードを取得するステップと、前記現在ブロックの成分の参照サンプルの利用可能性を導出するステップと、利用可能な参照サンプルを用いて、利用不可能な参照サンプルを置き換えるステップと、前記イントラ予測モード及び前記置き換えられた参照サンプルに基づき、前記現在ブロックの予測を導出するステップと、前記予測に基づき前記現在ブロックを再構成するステップと、を含む。実施形態では、前記成分は、Y成分、Cb成分又はCr成分を含む。別の実施形態では、前記成分は、ルマ成分、又はクロマ成分を含む。
【0006】
本開示の第1の態様は、各成分の中の前記参照サンプルの利用可能性を導出するので、前記利用可能性情報をより正確に提供できる。
【0007】
第1の態様の実装によると、前記再構成されたブロックの中の全部のCbサンプルは、利用可能であるとマークされる、又は、前記再構成されたブロックの中の全部のCrサンプルは、利用可能であるとマークされる。
【0008】
第1の態様の実装は、各成分の中のサンプル毎に前記利用可能性情報を格納するので、イントラ予測処理において前記利用可能性情報をより正確に提供できる。
【0009】
本開示の第2の態様によると、デコーダは、上述の方法のステップを実行するよう構成される処理回路を含む。
【0010】
本開示の第3の態様によると、エンコーダは、上述の方法のステップを実行するよう構成される処理回路を含む。
【0011】
本開示の第4の態様によると、コンピュータプログラムプロダクトは、プロセッサにより実行されると上述の方法を実行するプログラムコードを含む。
【0012】
本開示の第5の態様によると、イントラ予測のためのデコーダは、1つ以上の処理ユニットと、前記1つ以上の処理ユニットに接続される非一時的コンピュータ可読記憶媒体であって、上述の方法を実行するために前記1つ以上の処理ユニットにより実行されるプログラム命令を格納する非一時的コンピュータ可読記憶媒体と、を含む。
【0013】
本開示の第6の態様によると、イントラ予測のためのエンコーダは、1つ以上の処理ユニットと、前記1つ以上の処理ユニットに接続される非一時的コンピュータ可読記憶媒体であって、上述の方法を実行するために前記1つ以上の処理ユニットにより実行されるプログラム命令を格納する非一時的コンピュータ可読記憶媒体と、を含む。
【0014】
本開示の実施形態は、上述の方法を実行するための復号装置及び符号化装置を更に提供する。
【0015】
明確さを目的として、前述の実施形態のうちのいずれか1つは、他の前述の実施形態のうちの任意の1つ以上と結合されて、本開示の範囲内にある新しい実施形態を生成してよい。
【0016】
これら及び他の特徴は、添付の図面及び請求の範囲と関連して取り入れられる以下の詳細な説明から一層明確に理解されるだろう。
【図面の簡単な説明】
【0017】
本開示のより完全な理解のために、ここで、添付の図面及び詳細な説明と関連して取り入れられる以下の簡単な説明を参照する。ここで同様の参照符号は同様の部分を表す。
【0018】
【
図1A】本開示の実施形態を実施し得る例示的な符号化システムを示すブロック図である。
【0019】
【
図1B】本開示の実施形態を実施し得る別の例示的な符号化システムを示すブロック図である。
【0020】
【
図2】本開示の実施形態を実施し得る例示的なビデオエンコーダを示すブロック図である。
【0021】
【
図3】本開示の実施形態を実施し得るビデオデコーダの例を示すブロック図である。
【0022】
【
図4】本開示の例示的な実施形態によるネットワーク装置の概略図である。
【0023】
【
図5】本開示の例示的な実施形態による
図1Aのソース装置及び宛先装置の一方又は両方として使用されて得る機器の簡略ブロック図である。
【0024】
【
図6】本開示の説明で利用され得るH.265/HEVCのイントラ予測アルゴリズムの記述である。
【0025】
【
図7】本開示の例示的な実施形態による参照サンプルを示すグラフィック図である。
【0026】
【
図8】本開示の例示的な実施形態による利用可能な及び利用不可能な参照サンプルを示すグラフィック図である。
【0027】
【
図9】本開示の例示的な実施形態による再構成された信号を導出する簡略フローチャートである。
【0028】
【
図10】本開示の例示的な実施形態による予測信号を導出する簡略フローチャートである。
【0029】
【
図11】本開示の例示的な実施形態による利用可能であるとマークされた、現在ブロックの中のサンプルを示すグラフィック図である。
【0030】
【
図12】本開示の例示的な実施形態によるユニットN×Nの中の利用可能であるとマークされた、現在ブロックの中のサンプルを示すグラフィック図である。
【0031】
【
図13】本開示の例示的な実施形態による利用可能であるとマークされた、現在ブロックの右境界及び下境界にあるサンプルを示すグラフィック図である。
【0032】
【
図14】本開示の例示的な実施形態によるユニットNの中の利用可能であるとマークされた、現在ブロックの右境界及び下境界にあるサンプルを示すグラフィック図である。
【0033】
【
図15】本開示の例示的な実施形態によるユニットN×Nの中の利用可能であるとマークされた、現在ブロックの右境界及び下境界にあるサンプルを示すグラフィック図である。
【0034】
【
図16】本開示の例示的な実施形態によるクロマ成分のサンプルのマーキング方法を示すグラフィック図である。
【0035】
【
図17】コンテンツ配信サービスを実現するコンテンツ供給システム3100の例示的な構造を示すブロック図である。
【0036】
【
図18】端末装置の例の構造を示すブロック図である。
【発明を実施するための形態】
【0037】
始めに理解されるべきことに、1つ以上の実施形態の説明的実装が以下に提供されるが、開示のシステム及び/又は方法は、現在知られているか又は既存かに関わらず、種々の技術を用いて実装されてよい。本開示は、ここに図示され説明される例示的な設計及び実装を含む以下に説明する説明的実装、図面、及び技術に決して限定されるべきではないが、添付の請求の範囲の範囲内で、それらの均等物の全範囲と共に、変更されてよい。
【0038】
図1Aは、双方向予測技術を利用し得る例示的な符号化システム10を示す概略ブロック図である。
図1Aに示すように、符号化システム10は、宛先装置14により後の時間に復号されるべき符号化ビデオデータを提供するソース装置12を含む。特に、ソース装置12は、コンピュータ可読媒体16を介して宛先装置14にビデオデータを提供してよい。ソース装置12及び宛先装置14は、デスクトップコンピュータ、ノートブック(つまり、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォン、所謂「スマート」パッドのような電話機ハンドセット、テレビジョン、カメラ、ディスプレイ装置、デジタルメディアプレイヤ、ビデオゲームコンソール、ビデオストリーミング装置、等を含む広範な装置のうちのいずれかを含んでよい。幾つかの場合には、ソース装置12及び宛先装置14は、無線通信のために装備されてよい。
【0039】
宛先装置14は、コンピュータ可読媒体16を介して、復号されるべき符号化ビデオデータを受信してよい。コンピュータ可読媒体16は、ソース装置12から宛先装置14へと符号化ビデオデータを移動することができる任意のタイプの媒体又は装置を含んでよい。一例では、コンピュータ可読媒体16は、ソース装置12が宛先装置14へ符号化ビデオデータをリアルタイムに直接に送信することを可能にする通信媒体を含んでよい。符号化ビデオデータは、無線通信プロトコルのような通信標準に従い変調され、宛先装置14へと送信されてよい。通信媒体は、無線周波数(radio frequency (RF))スペクトル又は1つ以上の物理伝送線のような任意の無線又は有線通信媒体を含んでよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットのようなグローバルネットワークのような、パケットに基づくネットワークの部分を形成してよい。通信媒体は、ルータ、スイッチ、基地局、又はソース装置12から宛先装置14への通信を実現するために有用であり得る任意の他の設備を含んでよい。
【0040】
幾つかの例では、符号化データは、出力インタフェース22から記憶装置へと出力されてよい。同様に、符号化データは、記憶装置から入力インタフェースによりアクセスされてよい。記憶装置は、ハードドライブ、ブルーレイディスク、デジタルビデオディスク(digital video disk (DVD))、コンパクトディスク読み出し専用メモリ(Compact Disc Read-Only Memory (CD-ROM))、フラッシュメモリ、揮発性若しくは不揮発性メモリ、又は符号化ビデオデータを格納するための任意の他の適切なデジタル記憶媒体のような種々の分散型又はローカルにアクセスされるデータ記憶媒体のうちのいずれかを含んでよい。更なる例では、記憶装置は、ファイルサーバ、又はソース装置12により生成された符号化ビデオを格納し得る別の中間記憶装置に対応してよい。宛先装置14は、ストリーミング又はダウンロードを介して記憶装置から格納されたビデオデータにアクセスしてよい。ファイルサーバは、符号化ビデオデータを格納し及び該符号化ビデオデータを宛先装置14へ送信できる任意のタイプのサーバであってよい。例示的なファイルサーバは、(例えば、ウェブサイトのための)ウェブサーバ、ファイル転送プロトコル(file transfer protocol (FTP))サーバ、ネットワークアタッチドストレージ(network attached storage (NAS))装置、又はローカルディスクドライブを含む。宛先装置14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化ビデオデータにアクセスしてよい。これは、無線チャネル(例えば、Wi-Fi接続)、有線接続(例えば、デジタル加入者線(digital subscriber line (DSL))、ケーブルモデム、等)、又はファイルサーバに格納された符号化ビデオデータにアクセスするのに適する両者の組合せを含んでよい。記憶装置からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はそれらの組合せであってよい。
【0041】
本開示の技術は、必ずしも無線アプリケーション又は設定に限定されない。技術は、無線テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、HTTPを介した動的適応型ストリーミング(dynamic adaptive streaming over HTTP (DASH))のようなインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されるデジタルビデオ、データ記憶媒体上に格納されたデジタルビデオの復号、又は他のアプリケーショのような種々のマルチメディアアプリケーションのうちのいずれかの支援によりビデオ符号化に適用されてよい。幾つかの例では、符号化システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、及び/又はビデオ電話のようなアプリケーションをサポートするために、1方向又は2方向ビデオ送信をサポートするよう構成されてよい。
【0042】
図1Aの例では、ソース装置12は、ビデオソース18、ビデオエンコーダ20、及び出力インタフェース22を含む。宛先装置14は、入力インタフェース28、ビデオデコーダ30、及びディスプレイ装置32を含む。本開示によると、ソース装置12のビデオエンコーダ200、及び/又は宛先装置14のビデオデコーダ300は、双方向予測のための技術を適用するよう構成されてよい。他の例では、ソース装置及び宛先装置は、他のコンポーネント又は構成を含んでよい。例えば、ソース装置12は、外部カメラのような外部ビデオソースからビデオデータを受信してよい。同様に、宛先装置14は、統合されたディスプレイ装置を含むのではなく、外部ディスプレイ装置とインタフェースしてよい。
【0043】
図1Aの図示された符号化システム10は、単なる一例である。双方向予測のための技術は、任意のデジタルビデオ符号化及び/又は復号装置により実行されてよい。本開示の技術は概してビデオ符号化装置により実行されるが、技術は、標準的に「CODEC」と呼ばれるビデオエンコーダ/デコーダにより実行されてもよい。更に、本開示の技術は、ビデオプリプロセッサにより実行されてもよい。ビデオエンコーダ及び/又はデコーダは、グラフィック処理ユニット(graphics processing unit (GPU))又は同様の装置であってよい。
【0044】
ソース装置12及び宛先装置14は、このような符号化装置の単なる例であり、ソース装置12は宛先装置14への送信のために符号化ビデオデータを生成する。幾つかの例では、ソース装置12及び宛先装置14は、実質的に対称的に動作してよく、従って、ソース及び宛先装置12、14の各々がビデオ符号化及び復号コンポーネントを含む。従って、符号化システム10は、例えばビデオストリーミング、ビデオ再生、ビデオブロードキャスト、又はビデオ電話のために、ビデオ装置12、14の間の1方向又は2方向ビデオ送信をサポートしてよい。
【0045】
ソース装置12のビデオソース18は、ビデオカメラのようなビデオキャプチャ装置、前にキャプチャされたビデオを含むビデオアーカイブ、及び/又はビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインタフェースを含んでよい。更なる代替として、ビデオソース18は、ソースビデオとしてコンピュータグラフィックに基づくデータ、又はライブビデオ、アーカイブされたビデオ、及びコンピュータの生成したビデオの組合せを生成してよい。
【0046】
幾つかの例では、ビデオソース18がビデオカメラであるとき、ソース装置12及び宛先装置14は、所謂カメラ付き電話機又はビデオ電話機を形成してよい。上述のように、しかしながら、本開示に記載される技術は、概してビデオ符号化に適用可能であってよく、無線及び/又は有線アプリケーションに適用されてよい。各々の場合に、キャプチャされた、予めキャプチャされた、又はコンピュータの生成したビデオは、ビデオエンコーダ20により符号化されてよい。符号化ビデオ情報は、次に、出力インタフェース22により、コンピュータ可読媒体16へと出力されてよい。
【0047】
コンピュータ可読媒体16は、無線ブロードキャスト又は有線ネットワーク送信のような伝送媒体、又はハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、又は他のコンピュータ可読媒体のような記憶媒体(つまり、非一時的記憶媒体)を含んでよい。幾つかの例では、ネットワークサーバ(図示しない)は、ソース装置12から符号化ビデオデータを受信し、例えばネットワーク送信により符号化ビデオデータを宛先装置14に提供してよい。同様に、ディスクスタンピング設備のような媒体製造設備のコンピューティング装置は、ソース装置12から符号化ビデオデータを受信し、符号化ビデオデータを含むディスクを製造してよい。従って、コンピュータ可読媒体16は、種々の例において、種々の形式の1つ以上のコンピュータ可読媒体を含むと理解され得る。
【0048】
宛先装置14の入力インタフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオデコーダ30によっても使用される、ブロック及び他の符号化単位、例えばピクチャのグループ(group of pictures (GOP))の特性及び/又は処理を記述するシンタックス要素を含む、ビデオエンコーダ20により定義されたシンタックス情報を含んでよい。ディスプレイ装置32は、復号ビデオデータをユーザに表示し、陰極線管(cathode ray tube (CRT))、液晶ディスプレイ(liquid crystal display (LCD))、プラズマディスプレイ、有機発光ダイオード(organic light emitting diode (OLED))ディスプレイ、又は別のタイプのディスプレイ装置のような種々のディスプレイ装置のうちのいずれかを含んでよい。
【0049】
ビデオエンコーダ200及びビデオデコーダ300は、現在策定中の高効率ビデオ符号化(High Efficiency Video Coding (HEVC))標準のようなビデオ符号化標準に従い動作してよく、HEVCテストモデル(HEVC Test Model (HM))に準拠してよい。代替として、ビデオエンコーダ200及びビデオデコーダ300は、独自、又は代替として動画専門家グループ(Motion Picture Expert Group (MPEG))-4、Part10、高度ビデオ符号化(Advanced Video Coding (AVC))と呼ばれる国際電気通信連合電気通信標準化部門(International Telecommunications Union Telecommunication Standardization Sector (ITU-T))H.264標準、H.265/HEVC、又はこのような標準の拡張のような工業標準に従い動作してよい。本開示の技術は、しかしながら、任意の特定の符号化標準に限定されない。ビデオ符号化標準の他の例は、MPEG-2及びITU-T H.263を含む。
図1Aに示されないが、幾つかの態様では、ビデオエンコーダ200及びビデオデコーダ300は、それぞれオーディオエンコーダ及びデコーダと統合されてよく、共通データストリームの中のオーディオ及びビデオの両方の符号化を処理し又はデータストリームを分離するために適切なマルチプレクサ-デマルチプレクサ(multiplexer-demultiplexer (MUX-DEMUX))ユニット、又は他のハードウェア及びソフトウェアを含んでよい。適切な場合には、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(user datagram protocol (UDP))のような他のプロトコルに準拠してよい。
【0050】
ビデオエンコーダ200及びビデオデコーダ300はそれぞれ、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processor (DSP))、特定用途向け集積回路(application specific integrated circuit (ASIC))、フィールドプログラマブルゲートアレイ(field programmable gate array (FPGA))、個別ロジック、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせのような、様々な適切なエンコーダ回路のうちのいずれかとして実装されてよい。技術が部分的にソフトウェアで実装されるとき、装置は、適切な非一時的コンピュータ可読媒体内のソフトウェアのための命令を格納し、1つ以上のプロセッサを用いてハードウェアで命令を実行して、本開示の技術を実行してよい。ビデオエンコーダ200及びビデオデコーダ300の各々は、1つ以上のエンコーダ又はデコーダに含まれてよく、いずれも、結合されたエンコーダ/デコーダ(encoder/decoder (CODEC))の部分としてそれぞれの装置内に統合されてよい。ビデオエンコーダ200及び/又はビデオデコーダ300を含む装置は、集積回路、マイクロプロセッサ、及び/又は携帯電話機のような無線通信装置を含んでよい。
【0051】
図1Bは、例示的な実施形態による、
図2のエンコーダ200及び/又は
図3のデコーダ300を含む例示的なビデオ符号化システム40を示す概略ブロック図である。システム40は、本開示の技術、例えばインター予測におけるマージ推定を実装できる。図示の実装では、ビデオ符号化システム40は、画像装置41、ビデオエンコーダ20、ビデオデコーダ300(及び/又は処理ユニット46の論理回路47により実装されるビデオコーダ)、アンテナ42、1つ以上のプロセッサ43、1つ以上のメモリストア44、及び/又はディスプレイ装置45を含んでよい。
【0052】
図示のように、画像装置41、アンテナ42、処理ユニット46、論理回路47、ビデオエンコーダ20、ビデオデコーダ30、プロセッサ43、メモリストア44、及び/又はディスプレイ装置45は、互いに通信可能であってよい。議論されるように、ビデオエンコーダ20及びビデオデコーダ30の両方と共に示されるが、ビデオ符号化システム40は、種々の現実的なシナリオにおいてビデオエンコーダ20のみ又はビデオデコーダ30のみを含んでよい。
【0053】
示されるように、幾つかの例では、ビデオ符号化システム40はアンテナ42を含んでよい。アンテナ42は、例えばビデオデータの符号化ビットストリームを送信又は受信するよう構成されてよい。更に、幾つかの例では、ビデオ符号化システム40はディスプレイ装置45を含んでよい。ディスプレイ装置45は、ビデオデータを提示するよう構成されてよい。示されるように、幾つかの例では、論理回路47は処理ユニット46により実装されてよい。処理ユニット46は、特定用途向け集積回路(application-specific integrated circuit (ASIC))ロジック、グラフィックプロセッサ、汎用プロセッサ、等を含んでよい。ビデオ符号化システム40も、同様に特定用途向け集積回路(application-specific integrated circuit, ASIC)ロジック、グラフィックプロセッサ、汎用プロセッサ、等を含んでよい任意的なプロセッサ43を含んでよい。幾つかの例では、論理回路54は、ハードウェア、ビデオ符号化専用ハードウェア、等により実装されてよく、プロセッサ43は、汎用ソフトウェア、オペレーティングシステム、等を実装してよい。更に、メモリストア44は、揮発性メモリ(例えば、静的ランダムアクセスメモリ(Static Random Access Memory (SRAM))、動的ランダムアクセスメモリ(Dynamic Random Access Memory (DRAM)、等)又は不揮発性メモリ(例えば、フラッシュメモリ、等)、等のような任意の種類のメモリであってよい。非限定的な例では、メモリストア44はキャッシュメモリにより実装されてよい。幾つかの例では、論理回路47は、(例えば画像バッファの実装のために)メモリストア44にアクセスしてよい。他の例では、論理回路47及び/又は処理ユニット46は、画像バッファ等の実装のためにメモリストア(例えばキャッシュ等)を含んでよい。
【0054】
幾つかの例では、論理回路により実装されるビデオエンコーダ200は、(例えば、処理ユニット46又はメモリストア44のいずれかによる)画像バッファ、及び(例えば、処理ユニット46による)グラフィック処理ユニットを含んでよい。グラフィック処理ユニットは、画像バッファに通信可能に接続されてよい。グラフィック処理ユニットは、
図2に関して議論したような種々のモジュール及び/又はここで説明される任意の他のエンコーダシステム若しくはサブシステムを実現するために、論理回路47により実装されるようなビデオエンコーダ200を含んでよい。論理回路は、ここで議論されるような種々の動作を実行するよう構成されてよい。
【0055】
ビデオデコーダ30は、
図3のデコーダ300に関して議論されるような種々のモジュール及び/又はここで説明される任意の他のデコーダシステム若しくはサブシステムを実現するために、論理回路47により実装されるのと同様の方法で実装されてよい。幾つかの例では、ビデオデコーダ300は、論理回路により実装されてよく、(例えば、処理ユニット46又はメモリストア44のいずれかによる)画像バッファ、及び(例えば、処理ユニット46による)グラフィック処理ユニットを含んでよい。グラフィック処理ユニットは、画像バッファに通信可能に接続されてよい。グラフィック処理ユニットは、
図3に関して議論されるような種々のモジュール及び/又はここで説明される任意の他のデコーダシステム若しくはサブシステムを実現するために、論理回路47により実装されるようなビデオデコーダ300を含んでよい。
【0056】
幾つかの例では、ビデオ符号化システム40のアンテナ42は、ビデオデータの符号化ビットストリームを受信するよう構成されてよい。議論されるように、符号化ビットストリームは、符号化パーティションに関連するデータ(例えば、変換係数又は量子化変換係数、(議論されるような)任意的な指示子、及び/又は符号化パーティションを定めるデータ)のような、ここで議論されるビデオフレームの符号化に関連するデータ、指示子、インデックス値、モード選択データ、等を含んでよい。ビデオ符号化システム40は、アンテナ42に接続され符号化ビットストリームを復号するよう構成されるビデオデコーダ300も含んでよい。ディスプレイ装置45は、ビデオフレームを提示するよう構成される。
【0057】
図2は、本願の技術を実装し得るビデオエンコーダ200の例を示すブロック図である。ビデオエンコーダ200は、ビデオスライスの中のビデオブロックのイントラ及びインター符号化を実行してよい。イントラ符号化は、所与のビデオフレーム又はピクチャの中のビデオ内の空間的冗長性を低減し又は除去するために、空間予測に依存する。インター符号化は、ビデオシーケンスの隣接フレーム又はピクチャの中のビデオ内の時間的冗長性を低減し又は除去するために、時間予測に依存する。イントラモード(Iモード)は、幾つかの空間に基づく符号化モードのうちのいずれかを表してよい。単方向予測(Pモード)又は双予測(Bモード)のようなインターモードは、幾つかの時間に基づく符号化モードのうちのいずれかを表してよい。
【0058】
図2は、本開示の技術を実施するよう構成される例示的なビデオエンコーダ200の概略的/概念的ブロック図を示す。
図2の例では、ビデオエンコーダ200は、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210及び逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタユニット220、復号ピクチャバッファ(decoded picture buffer (DPB))230、予測処理ユニット260、及びエントロピー符号化ユニット270を含む。予測処理ユニット260は、インター推定242、インター予測ユニット244、イントラ推定252、イントラ予測ユニット254、及びモード選択ユニット262を含んでよい。インター予測ユニット244は、動き推定ユニット(図示しない)を更に含んでよい。
図2に示すようなビデオエンコーダ200は、ハイブリッドビデオエンコーダ又はハイブリッドビデオコーデックに従うビデオエンコーダと呼ばれてもよい。
【0059】
例えば、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、予測処理ユニット260、及びエントロピー符号化ユニット270は、エンコーダ200の順方向信号経路を形成する。一方で、例えば、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(decoded picture buffer (DPB))230、予測処理ユニット260は、エンコーダの逆方向信号経路を形成し、エンコーダの逆方向信号経路はデコーダの信号経路に対応する(
図3のデコーダ300を参照)。
【0060】
エンコーダ200は、例えば入力202により、ピクチャ201又はピクチャ201のブロック203、例えばビデオ又はビデオシーケンスを形成するピクチャのシーケンスのピクチャを受信するよう構成される。ピクチャブロック203は、(特に、ビデオ符号化では、現在ピクチャを他のピクチャ、例えば同じビデオシーケンス、つまり現在ピクチャも含むビデオシーケンスの前に符号化及び/又は復号されたピクチャと区別するために)現在ピクチャブロック又は被符号化ピクチャブロック、及び現在ピクチャ又は被符号化ピクチャとしてのピクチャ201とも呼ばれてよい。
【0061】
パーティショニング
【0062】
エンコーダ200の実施形態は、ピクチャ201を複数のブロック、例えばブロック203のような複数のブロックに、標準的には複数の重なり合わないブロックにパーティションするよう構成されるパーティションユニット(
図2に示されない)を含んでよい。パーティションユニットは、同じブロックサイズをビデオシーケンスの全部のピクチャ、及びブロックサイズを定める対応するグリッドに対して使用し、又はピクチャ又はピクチャのサブセット若しくはグループ間のブロックサイズを変更し、各ピクチャを対応するブロックにパーティションするよう構成されてよい。
【0063】
HEVC及び他のビデオ符号化仕様では、ピクチャの符号化表現を生成するために、符号化木単位(coding tree unit (CTU))のセットが生成されてよい。CTUの各々は、ルマサンプルの符号化木ブロック、クロマサンプルの2個の対応する符号化木ブロック、及び符号化木ブロックのサンプルを符号化するために使用されるシンタックス構造を含んでよい。単色のピクチャ又は3つの別個の色平面を有するピクチャでは、CTUは、単一の符号化木ブロック、及び符号化木ブロックのサンプルを符号化するために使用されるシンタックス構造を含んでよい。符号化木ブロックは、サンプルのN×Nブロックであってよい。CTUは、「木ブロック」又は「最大符号化単位」(largest coding unit (LCU))と呼ばれてもよい。HEVCのCTUは、H.264/AVCのような他の標準のマクロブロックと広義的に同様であってよい。しかしながら、CTUは、必ずしも特定のサイズに限定されず、1つ以上の符号化単位(coding unit (CU))を含んでよい。スライスは、ラスタスキャン順序で連続して順序付けられた整数個のCTUを含んでよい。
【0064】
HEVCでは、CTUは、種々の局所的特性に適合するために、符号化木として示される4分木構造を用いてCUに分割される。ピクチャ領域をインターピクチャ(時間)又はイントラピクチャ(空間)予測を用いて符号化するかの決定は、CUレベルで行われる。CUは、ルマサンプル配列、Cbサンプル配列、及びCrサンプル配列を有するピクチャのルマサンプルの符号化ブロック及びクロマサンプルの2つの対応する符号化ブロック、並びに符号化ブロックのサンプルを符号化するために使用されるシンタックス構造を含んでよい。単色のピクチャ又は3つの別個の色平面を有するピクチャでは、CUは、単一の符号化ブロック、及び符号化ブロックのサンプルを符号化するために使用されるシンタックス構造を含んでよい。符号化ブロックは、サンプルのN×Nブロックである。幾つかの例では、CUは、同じサイズのCTUであってよい。各CUは、例えばイントラ符号化モード又はインター符号化モードであり得る1つの符号化モードにより符号化される。他の符号化モードも可能である。エンコーダ200は、ビデオデータを受信する。エンコーダ200は、ビデオデータのピクチャのスライスの中の各CTUを符号化してよい。CTUの符号化の部分として、予測処理ユニット260又はエンコーダ200の別の処理ユニット(
図2に示されたエンコーダ200のユニットを含むがそれに限定されない)は、CTUのCTBを次第に小さなブロック203に分割するためにパーティションを実行してよい。より小さなブロックは、CUの符号化ブロックであってよい。
【0065】
ビットストリーム内のシンタックスデータは、CTUのサイズも定義してよい。スライスは、符号化順序の中の多数の連続するCTUを含む。ビデオフレーム又は画像又はピクチャは、1つ以上のスライスにパーティションされてよい。上述のように、各々の木ブロックは、4分木に従い符号化単位(coding unit (CU))に分割されてよい。通常、4分木データ構造は、木ブロック(例えば、CTU)に対応するルートノードと共に、CU当たり1個のノードを含む。CUが4個のサブCUに分割される場合、CUに対応するノードは、4個の子ノードを含み、子ノードの各々はサブCUのうちの1個に対応する。4分木構造の中の複数のノードは、リーフノード及び非リーフノードを含む。リーフノードは、木構造の中の子ノードを有しない(つまり、リーフノードは更に分割されない)。非リーフノードは、木構造のルートノードを含む。複数のノードのうちのそれぞれの非ルートノード毎に、それぞれの非ルートノードは、それぞれ非ルートノードの木構造の中の親ノードに対応するCUのサブCUに対応する。それぞれ非リーフノードの各々は、木構造の中の1つ以上の子ノードを有する。
【0066】
4分木データ構造の各ノードは、対応するCUのシンタックスデータを提供してよい。例えば、4分木の中のノードは、ノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含んでよい。CUのシンタックス要素は、再帰的に定義されてよく、CUがサブCUに分割されるかどうかに依存してよい。CUが更に分割されない場合、それはリーフCUと呼ばれる。CUのブロックが更に分割される場合、それは、通常、非リーフCUと呼ばれてよい。パーティションの各レベルは、4個のサブCUへの4分木分割である。黒CUは、リーフノード(つまり、更に分割されないブロック)の例である。
【0067】
CUは、CUがサイズの違いを有しないことを除き、H.264標準のマクロブロックと同様の目的を有する。例えば、木ブロックは、4個の子ノード(サブCUとも呼ばれる)に分割されてよく、各子ノードは、一方で親ノードであり、別の4個の子ノードに分割されてよい。最終的な分割されない子ノードは、4分木のリーフノードと呼ばれ、リーフCUとも呼ばれる符号化ノードを含む。符号化ビットストリームに関連付けられたシンタックスデータは、最大CU深さと呼ばれる、木ブロックが分割され得る最大回数を定義してよく、符号化ノードの最小サイズも定義してよい。従って、ビットストリームは、最小符号化単位(smallest coding unit (SCU))も定義してよい。用語「ブロック」は、HEVCの文脈でCU、PU、又はTUのうちのいずれか、又は他の標準の文脈で同様のデータ構造(例えば、H.264/AVCにおけるマクロブロック及びそのサブブロック)を表すために使用される。
【0068】
HEVCでは、各CUは、PU分割タイプに従い、1、2、又は4個のPUに更に分割できる。1個のPU内で、同じ予測処理が適用され、関連情報がPU毎にデコーダへ送信される。PU分割タイプに基づき予測処理を適用することにより、残差ブロックを取得した後に、CUは、CUの符号化木と同様の別の4分木構造に従い、変換ユニット(transform unit (TU))にパーティションすることができる。HEVC構造の主要な特徴のうちの1つは、それがCU、PU、及びTUを含む複数のパーティション概念を有することである。PUは、非正方形の形状になるようパーティションされてよい。CUに関連付けられたシンタックスデータは、例えば、CUの1つ以上のPUへのパーティションを記述してもよい。TUは、正方形又は非正方形(例えば、長方形)の形状になることができ、CUに関連付けられたシンタックスデータは、例えば、4分木に従いCUの1つ以上のTUへのパーティションを記述してよい。パーティションモードは、CUがスキップ又は直接モードで符号化されるか、イントラ予測モードで符号化されるか、又はインター予測モードで符号化されるかで異なってよい。
【0069】
VVC(Versatile Video Coding)は、PU及びTU概念の分離を除去し、CUパーティション形状の更なる柔軟性をサポートする。CUのサイズは、符号化ノードのサイズに対応し、正方形又は非正方形(例えば、長方形)の形状であってよい。CUのサイズは、4×4ピクセル(又は8×8ピクセル)から、最大で128×128ピクセル又はそれ以上(例えば、256×256ピクセル)を有する木ブロックのサイズにまで及んでよい。
【0070】
エンコーダ200がCUについて予測ブロック(例えば、ルマ、Cb、及びCr予測ブロック)を生成した後に、エンコーダ200は、CUについて残差ブロックを生成してよい。例えば、エンコーダ100は、CUについてルマ残差ブロックを生成してよい。CUのルマ残差ブロックの中の各サンプルは、CUの予測ルマブロックの中のルマサンプルと、CUの元のルマ符号化ブロックの中の対応するサンプルとの間の差を示す。更に、エンコーダ200は、CUについてCb残差ブロックを生成してよい。CUのCb残差ブロックの中の各サンプルは、CUの予測Cbブロックの中のCbサンプルと、CUの元のCb符号化ブロックの中の対応するサンプルとの間の差を示してよい。エンコーダ200は、CUについてCr残差ブロックを生成してもよい。CUのCr残差ブロックの中の各サンプルは、CUの予測Crブロックの中のCrサンプルと、CUの元のCr符号化ブロックの中の対応するサンプルとの間の差を示してよい。
【0071】
幾つかの例では、エンコーダ200は、変換ブロックへの変換の適用をスキップする。このような例では、エンコーダ200は、変換係数と同じ方法で残差サンプル値を扱ってよい。従って、エンコーダ200が変換の適用をスキップする例では、変換係数及び係数ブロックの以下の議論は、残差サンプルの変換ブロックに適用可能であってよい。
【0072】
係数ブロック(例えば、ルマ係数ブロック、Cb係数ブロック、又はCr係数ブロック)を生成した後に、エンコーダ200は、係数ブロックを量子化して、係数ブロックを表すために使用されるデータの量をできる限り削減し、更なる圧縮を提供する可能性があってよい。量子化は、通常、値の範囲が単一の値に圧縮される処理を表す。エンコーダ200が係数ブロックを量子化した後に、エンコーダ200は、量子化済み変換係数を示すシンタックス要素をエントロピー符号化してよい。例えば、エンコーダ200は、量子化済み変換係数を示すシンタックス要素に対して、コンテキスト適応型二値算術符号化(Context-Adaptive Binary Arithmetic Coding (CABAC))又は他のエントロピー符号化技術を実行してよい。
【0073】
エンコーダ200は、符号化ピクチャ及び関連データの表現を形成するビットのシーケンスを含む符号化ピクチャデータ271のビットストリームを出力してよい。従って、ビットストリームは、ビデオデータの符号化表現を含む。
【0074】
J. An et al., “Block partitioning structure for next generation video coding”, International Telecommunication Union, COM16-C966, September 2015(以後、“VCEG proposal COM16-C966”)では、HEVC以後の将来のビデオ符号化標準のために4分木2分木(quad-tree-binary-tree (QTBT))パーティション技術が提案された。シミュレーションは、提案されたQTBT構造がHEVCで使用される4分木構造よりも効率的であることを示している。HEVCでは、小さいブロックのインター予測は、動き補償のメモリアクセスを低減するために制約されるので、4×8及び8×4ブロックについて双予測がサポートされず、4×4ブロックについてインター予測がサポートされない。JEMのQTBTでは、これらの制約は除去される。
【0075】
QTBTでは、CUは正方形又は長方形形状のいずれかを有し得る。例えば、符号化木単位(coding tree unit, CTU)は、先ず、4分木構造によりパーティションされる。4分木のリーフノードは、2分木構造により更にパーティションできる。2分木分割には、対称水平分割及び対称垂直分割の2つの分割タイプがある。各々の場合に、ノードは、水平又は垂直のいずれかに、ノードを中央で分割することにより分割される。2分木のリーフノードは、符号化単位(coding unit (CU))と呼ばれ、更なるパーティションを伴わず、予測及び変換処理のためにセグメント化が使用される。これは、CU、PU、及びTUが、QTBT符号化ブロック構造において同じブロックサイズを有することを意味する。CUは、時には異なる色成分の符号化ブロック(coding block (CB))で構成され、例えば4:2:0クロマ形式のP及びBスライスの場合には、1個のCUが1個のルマCBと2個のクロマCBとを含み、時には単一の成分のCBで構成され、例えばIスライスの場合には、1個のCUが1個のルマCBのみ又はたった2個のクロマCBを含む。
【0076】
以下のパラメータは、QTBTパーティション方式のために定義される。
【0077】
-CTU size:4分木のルートノードサイズ、HEVCと同じ概念。
【0078】
-MinQTSize:最小許容4分木リーフノードサイズ。
【0079】
-MaxBTSize:最大許容2分木ルートノードサイズ。
【0080】
-MaxBTDepth:最大許容2分木深さ。
【0081】
-MinBTSize:最小許容2分木リーフノードサイズ。
【0082】
QTBTパーティション構造の一例では、CTUサイズは、クロマサンプルの2個の対応する64×64ブロックを有する128×128ルマサンプルとして設定され、MinQTSizeは16×16に設定され、MaxBTSizeは64×64として設定され、MinBTSize(幅及び高さの両方について)は、4×4として設定され、MaxBTDepthは4として設定される。4分木パーティションは、先ず、4分木リーフノードを生成するためにCTUに適用される。4分木リーフノードは、16×16(つまり、MinQTSize)から128×128(つまり、CTU size)までのサイズを有してよい。4分木リーフノードがMinQTSizeと等しいサイズを有するとき、更なる4分木は考慮されない。リーフ4分木ノードが128×128である場合、それは、サイズがMaxBTSize(つまり64×64)を超えるので、2分木により更に分割されない。その他の場合、リーフ4分木ノードは、2分木により更にパーティションされ得る。従って、4分木リーフノードは2分木のルートノードでもあり、それは0のような2分木深さを有する。2分木深さがMaxBTDepth(つまり4)に達すると、更なる分割は考慮されない。2分木ノードがMinBTSize(つまり4)に等しい幅を有するとき、更なる水平分割は考慮されない。同様に、2分木ノードがMinBTSizeに等しい高さを有するとき、更なる垂直分割は考慮されない。2分木のリーフノードは、任意の更なるパーティションを伴わず、予測及び変換処理により更に処理される。JEMでは、最大CTUサイズは256×256ルマサンプルである。2分木のリーフノード(CU)は、任意の更なるパーティションを伴わず、(例えば、予測処理及び変換処理を実行することにより)更に処理されてよい。
【0083】
更に、QTBT方式は、ルマ及びクロマが別個のQTBT構造を有する能力をサポートする。現在、P及びBスライスでは、1個のCTUの中のルマ及びクロマCTBは、同じQTBT構造を共有してよい。しかしながら、Iスライスでは、ルマCTBは、QTBT構造によりCUへとパーティションされ、クロマCTBは、別のQTBT構造によりクロマCUへとパーティションされてよい。これは、Iスライス内のCUが、ルマ成分の符号化ブロック又は2個のクロマ成分の符号化ブロックで構成され、P又はBスライス内のCUが、3個の色成分全部の符号化ブロックで構成されることを意味する。
【0084】
エンコーダ200は、QTBT構造に対してレート歪み最適化(rate-distortion optimization (RDO))処理を適用して、ブロックパーティションを決定する。
【0085】
更に、マルチタイプ木(multi-type-tree (MTT))という名称のブロックパーティション構造が、QT、BT、及び/又はQTBTに基づくCU構造を置き換えるために、米国特許出願公開番号第20170208336号において提案されている。MTTパーティション構造は、なお、再帰的木構造である。MTTでは、複数の異なるパーティション構造(例えば、3つ以上)が使用される。例えば、MTT技術によると、3つ以上の異なるパーティション構造が、木構造の各深さにおいて該木構造のそれぞれの非リーフノード毎に使用されてよい。木構造の中のノードの深さは、該ノードから木構造のルートへのパスの長さ(例えば、分割の数)を表してよい。パーティション構造は、通常、何個の異なるブロックにブロックが分割され得るかを表してよい。パーティション構造は、ブロックを4個のブロックに分割し得る4分木パーティション構造、ブロックを2個のブロックに分割し得る2分木パーティション構造、又はブロックを3個のブロックに分割し得る3分木パーティション構造、更に、ブロックを中央で分割しないことのある3分木パーティション構造であってよい。パーティション構造は、複数の異なるパーティションタイプを有してよい。パーティションタイプは、更に、対称又は非対称パーティション、均等又は不均等パーティション、及び/又は水平又は垂直パーティションを含む、どのようにブロックが分割されるかを定義してよい。
【0086】
MTTでは、木構造の各深さにおいて、エンコーダ200は、3つより多くのパーティション構造のうちの1つの中から特定のパーティションタイプを用いてサブ木を更に分割するよう構成されてよい。例えば、エンコーダ100は、QT、BT、3分木(triple-tree (TT))及び他のパーティション構造から、特定のパーティションタイプを決定するよう構成されてよい。一例では、QTパーティション構造は、正方形4分木又は長方形4分木パーティションタイプを含んでよい。エンコーダ200は、水平方向及び垂直方向の両方に中心に沿って4個の等しいサイズの正方形ブロックにブロックを分割することにより、正方形4分木パーティションを用いて正方形ブロックをパーティションしてよい。同様に、エンコーダ200は、水平方向及び垂直方向の両方に中心に沿って4個の等しいサイズの長方形ブロックに長方形ブロックを分割することにより、長方形4分木パーティションを用いて長方形(例えば、非正方形)ブロックをパーティションしてよい。
【0087】
BTパーティション構造は、水平対称2分木、垂直対称2分木、水平非対称2分木、又は垂直非対称2分木パーティションタイプのうちの少なくとも1つを含んでよい。水平対称2分木パーティションタイプでは、エンコーダ200は、水平方向にブロックの中心に沿って、同じサイズの2個の対称的ブロックに、ブロックを分割するよう構成されてよい。垂直対称2分木パーティションタイプでは、エンコーダ200は、垂直方向にブロックの中心に沿って、同じサイズの2個の対称的ブロックに、ブロックを分割するよう構成されてよい。水平非対称2分木パーティションタイプでは、エンコーダ200は、水平方向に、異なるサイズの2個のブロックに、ブロックを分割するよう構成されてよい。例えば、PART_2N×nU又はPART_2N×nDパーティションタイプと同様に、1個のブロックは親ブロックのサイズの1/4であってよく、他のブロックは親ブロックのサイズの3/4であってよい。垂直非対称2分木パーティションタイプでは、エンコーダ200は、垂直方向に、異なるサイズの2個のブロックに、ブロックを分割するよう構成されてよい。例えば、PART_nL×2N又はPART_nR×2Nパーティションタイプと同様に、1個のブロックは親ブロックのサイズの1/4であってよく、他のブロックは親ブロックのサイズの3/4であってよい。他の例では、非対称2分木パーティションタイプは、親ブロックを異なるサイズの小部分に分割してよい。例えば、1個のサブブロックは親ブロックの3/8であってよく、他のサブブロックは親ブロックの5/8であってよい。勿論、このようなパーティションタイプは垂直又は水平のいずれであってよい。
【0088】
TTパーティション構造は、TTパーティション構造がブロックを中央で分割しない点で、QT又はBT構造のものと異なる。ブロックの中央領域は、同じサブブロックの中に一緒に残る。4個のブロックを生じるQT、又は2個のブロックを生じる2分木と異なり、TTパーティション構造による分割は3個のブロックを生じる。TTパーティション構造による例示的なパーティションタイプは、対称パーティションタイプ(水平及び垂直の両方)、並びに非対称パーティションタイプ(水平及び垂直の両方)を含む。更に、TTパーティション構造による対称パーティションタイプは、不均等/非同形又は均等/同形であってよい。TTパーティション構造による非対称パーティションタイプは、不均等/非同形である。一例では、TTパーティション構造は、以下のパーティションタイプ:水平均等/同形対称3分木、垂直均等/同形対称3分木、水平不均等/非同形対称3分木、垂直不均等/非同形対称3分木、水平不均等/非同形非対称3分木、又は垂直不均等/非同形非対称3分木パーティションタイプのうちの少なくとも1つを含んでよい。
【0089】
一般的に、不均等/非同形対称3分木パーティションタイプは、ブロックの中央線に関して対称なパーティションタイプであるが、結果として生じる3個のブロックのうちの少なくとも1つは、他の2個と同じサイズではない。1つの好適な例は、端のブロックがブロックの4分の1のサイズであり、中央ブロックがブロックの2分の1のサイズである場合である。均等/同形対称3分木パーティションタイプは、ブロックの中央線に関して対称なパーティションタイプであるが、結果として生じるブロックは全部同じサイズである。このようなパーティションは、ブロック高さ又は幅が、垂直又は水平分割に依存して、3の倍数である場合に可能である。不均等/非同形非対称3分木パーティションタイプは、ブロックの中央線に関して対称ではないパーティションタイプであるが、結果として生じるブロックのうちの少なくとも1つは、他の2個と同じサイズではない。
【0090】
(例えば、サブ木ノードにおいて)ブロックが非対称3分木パーティションタイプに分割される例では、エンコーダ200及び/又はデコーダ300は、3個のパーティションのうちの2個が同じサイズを有するよう制約を適用してよい。このような制約は、エンコーダ200がビデオデータを符号化するときに従わなければならない制限に対応してよい。更に、幾つかの例では、エンコーダ200及びデコーダ300は、制約を適用してよく、それにより、非対称3分木パーティションタイプに従い分割するとき、2個のパーティションの面積の和が、残りのパーティションの面積に等しくなる。
【0091】
幾つかの例では、エンコーダ200は、QT、BT、及びTTパーティション構造の各々について、前述のパーティションタイプのうちの全部の中から選択するよう構成されてよい。他の例では、エンコーダ200は、前述のパーティションタイプのうちの部分集合の中からパーティションタイプを単に決定するよう構成されてよい。例えば、上述のパーティションタイプ(又は他のパーティションタイプ)の部分集合は、特定のブロックサイズのために又は4分木構造の特定の深さのために使用されてよい。サポートされるパーティションタイプの部分集合は、デコーダ200による使用のためにビットストリーム内でシグナリングされてよく、又は予め定められて、エンコーダ200及びデコーダ300が任意のシグナリングを有しないで部分集合を決定し得るようにしてよい。
【0092】
他の例では、サポートされるパーティションタイプの数は、全部のCTUにおける全部の深さについて固定されてよい。つまり、エンコーダ200及びデコーダ300は、CTUの任意の深さについて同じ数のパーティションタイプを使用するよう予め構成されてよい。他の例では、サポートされるパーティションタイプの数は、変化してよく、深さ、スライスタイプ、又は他の予め符号化された情報に依存してよい。一例では、木構造の深さ0又は深さ1において、QTパーティション構造のみが使用される。1より大きい深さでは、QT、BT、及びTTパーティション構造の各々が使用されてよい。
【0093】
幾つかの例では、エンコーダ200及び/又はデコーダ300は、CTUのビデオピクチャ又は領域の特定の領域について重複したパーティションを回避するために、予め構成された制約をサポートされるパーティションタイプに適用してよい。一例では、ブロックが非対称パーティションタイプにより分割されるとき、エンコーダ200及び/又はデコーダ300は、現在ブロックから分割された最大のサブブロックを更に分割しないよう構成されてよい。例えば、正方形ブロックが(PART_2N×nUパーティションタイプと同様に)非対称パーティションタイプに従い分割されるとき、全部のサブブロックの中で最大のサブブロックは、(PART_2N×nUパーティションタイプの最大のサブブロックと同様に)指定されたリーフノードであり、更に分割できない。しかしながら、(PART_2N×nUパーティションタイプのより小さなサブブロックと同様に)より小さなサブブロックは、更に分割できる。
【0094】
特定領域について重複したパーティションを回避するために、サポートされるパーティションタイプに対する制約が適用され得る別の例として、ブロックが非対称パーティションタイプにより分割されるとき、現在ブロックから分割された最大のサブブロックは、同じ方向に更に分割できない。例えば、正方形ブロックが(PART_2N×nUパーティションタイプと同様に)非対称パーティションタイプにより分割されるとき、エンコーダ200及び/又はデコーダ300は、(PART_2N×nUパーティションタイプの最大のサブブロックと同様に)全部のサブブロックの中で大きなサブブロックを水平方向に分割しないよう構成されてよい。
【0095】
更なる分割における困難を回避するために、サポートされるパーティションタイプに対する制約が適用され得る別の例として、エンコーダ200及び/又はデコーダ300は、ブロックの幅/高さが2のべき乗ではないとき(例えば、幅高さが2、4、8、16等ではないとき)、水平方向又は垂直方向のいずれかにブロックを分割しないよう構成されてよい。
【0096】
上述の例は、どのようにエンコーダ200がMTTパーティションを実行するよう構成されてよいかを説明した。デコーダ300も、従って、エンコーダ200により実行されたのと同じMTTパーティションを適用してよい。幾つかの例では、ビデオデータのピクチャがエンコーダ200によりどのようにパーティションされたかは、デコーダ300において、所定のルールの同じセットを適用することにより決定されてよい。しかしながら、多くの状況では、エンコーダ200は、符号化中のビデオデータの特定のピクチャについてのレート歪み基準に基づき、使用すべき特定のパーティション構造及びパーティションタイプを決定してよい。このように、デコーダ300が特定のピクチャについてパーティションを決定するために、エンコーダ200は、ピクチャ、及びピクチャのCTUがどのようにパーティションされるべきかを示すシンタックス要素を符号化ビットストリーム内でシグナリングしてよい。デコーダ200は、このようなシンタックス要素をパースし、それに従いピクチャ及びCTUをパーティションしてよい。
【0097】
一例では、ビデオエンコーダ200の予測処理ユニット260は、特に動き補償のために上述のパーティション技術の任意の組み合わせを実行するよう構成されてよい。詳細は後述する。
【0098】
ピクチャ201と同様に、ブロック203は、ここでも、強度値(サンプル値)を有するサンプルの2次元配列又は行列であり又はそのように考えられるが、ピクチャ201より小さい次元である。言い換えると、ブロック203は、例えば1つのサンプル配列(例えば、単色ピクチャ201の場合には、ルマ配列)、又は3つのサンプル配列(例えば、カラーピクチャ201の場合には、ルマ及び2つのクロマ配列)、又は適用される色形式に依存して任意の他の数の及び/又は種類の配列を含んでよい。ブロック203の水平及び垂直方向(又は軸)にあるサンプルの数は、ブロック203のサイズを定める。
【0099】
図2に示されるようなエンコーダ200は、ブロック毎にピクチャ201を符号化するよう構成される。例えば、符号化及び予測がブロック203毎に実行される。
【0100】
残差計算
【0101】
残差計算ユニット204は、残差ブロック205を、ピクチャブロック203及び予測ブロック265(予測ブロック265に関する更なる詳細は後に提供される)に基づき、例えば予測ブロック265のサンプル値をピクチャブロック203のサンプル値からサンプル毎に(ピクセル毎に)減算してサンプルドメインにおける残差ブロック205を取得することにより、計算するよう構成される。
【0102】
変換
【0103】
変換処理ユニット206は、変換、例えば離散コサイン変換(discrete cosine transform (DCT))又は離散サイン変換(discrete sine transform (DST))を残差ブロック205のサンプル値に対して適用して、変換ドメインにおける変換係数207を取得するよう構成される。変換係数207は、変換残差係数とも呼ばれ、変換ドメインにおける残差ブロック205を表してよい。
【0104】
変換処理ユニット206は、HEVC/H.265のために指定された変換のようなDCT/DSTの整数近似を適用するよう構成されてよい。直交DCT変換と比べて、このような整数近似は、標準的に、特定の因子によりスケーリングされる。順方向及び逆変換により処理される残差ブロックのノルムを維持するために、追加スケーリング因子が変換処理の部分として適用される。スケーリング因子は、標準的に、スケーリング因子がシフト演算について2のべき乗である、変換係数のビット深さ、精度と実装コストとの間のトレードオフ、のような特定の制約に基づき選択される。特定のスケーリング因子は、例えば、例えばデコーダ300における逆変換処理ユニット212による逆変換(及び例えばエンコーダ200における逆変換処理ユニット212による対応する逆変換)のために指定され、例えばエンコーダ200における変換処理ユニット206による順方向変換のための対応するスケーリング因子が相応して指定されてよい。
【0105】
量子化
【0106】
量子化ユニット208は、変換係数207を量子化して、例えばスカラー量子化又はベクトル量子化を適用することにより、量子化済み変換係数209を取得するよう構成される。量子化変換係数209は、量子化済み残差係数209とも呼ばれてよい。量子化処理は、変換係数207の一部又は全部に関連するビット深さを低減してよい。例えば、nビットの変換係数は、量子化の間、mビットの変換係数に切り捨てられてよい。ここで、nはmより大きい。量子化の程度は、量子化パラメータ(quantization parameter, QP)を調整することにより、変更されてよい。例えば、スカラー量子化では、より精細な又は粗い量子化を達成するために異なるスケーリングが適用されてよい。量子化ステップサイズが小さいほど、精細な量子化に対応する。一方で、量子化ステップサイズが大きいほど、粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(quantization parameter, QP)により示されてよい。量子化パラメータは、例えば、適用可能な量子化ステップサイズの所定のセットに対するインデックスであってよい。例えば、小さい量子化パラメータは、精細な量子化(小さい量子化ステップサイズ)に対応してよく、大きな量子化パラメータは粗い量子化(大きな量子化ステップサイズ)に対応してよい。逆も同様である。量子化は、量子化ステップサイズによる除算を含んでよい。例えば逆量子化210による対応する又は逆の逆量子化は、量子化ステップサイズによる乗算を含んでよい。幾つかの標準、例えばHEVCに従う実施形態は、量子化ステップサイズを決定するために量子化パラメータを使用するよう構成されてよい。通常、量子化ステップサイズは、除算を含む式の不動点近似を用いて、量子化パラメータに基づき計算されてよい。量子化ステップサイズ及び量子化パラメータの式の不動点近似において使用されるスケーリングのために変更され得る残差ブロックのノルムを復元するために、量子化及び逆量子化のための追加のスケーリング因子が導入されてよい。1つの例示的な実装では、逆変換及び逆量子化のスケーリングは結合されてよい。代替として、カスタマイズされた量子化テーブルが使用され、エンコーダからデコーダへ、例えばビットストリームの中でシグナリングされてよい。量子化は、損失動作であり、損失は量子化ステップサイズの増大に伴い増大する。
【0107】
逆量子化ユニット210は、例えば、量子化ユニット208と同じ量子化ステップサイズに基づき又はそれを用いて、量子化ユニット208により適用された量子化方式の逆を適用することにより、量子化済み係数に対して量子化ユニット208の逆量子化を適用して、逆量子化済み係数211を取得するよう構成される。逆量子化済み係数211は、逆量子化済み残差係数211とも呼ばれ、標準的には量子化による損失のために変換係数と同じではないが、変換係数207に対応してよい。
【0108】
逆変換処理ユニット212は、変換処理ユニット206により適用された変換の逆変換、例えば逆離散コサイン変換(inverse discrete cosine transform (DCT))又は逆離散サイン変換(inverse discrete sine transform (DST))を適用して、サンプルドメインにおける逆変換ブロック213を取得するよう構成される。逆変換ブロック213は、逆変換逆量子化済みブロック213又は逆変換残差ブロック213とも呼ばれてよい。
【0109】
再構成ユニット214(例えば、加算器214)は、逆変換ブロック213(つまり再構成残差ブロック213)を予測ブロック265に加算して、例えば再構成残差ブロック213のサンプル値と予測ブロック265のサンプル値とを加算することにより、サンプルドメインにおける再構成ブロック215を取得するよう構成される。
【0110】
任意で、バッファユニット216(又は「バッファ」216)、例えばラインバッファ216は、再構成ブロック215及びそれぞれのサンプル値を、例えばイントラ予測のためにバッファリングし又は格納するよう構成される。更なる実施形態では、エンコーダは、フィルタリングされていない再構成ブロック及び/又はバッファユニット216に格納されたそれぞれのサンプル値を、任意の種類の推定及び/又は予測、例えばイントラ予測のために使用するよう構成されてよい。
【0111】
エンコーダ200の実施形態は、例えば、バッファユニット216がイントラ予測254のためだけでなく、ループフィルタユニット220(
図2に示されない)のためにも再構成ブロック215を格納するために使用されるように、及び/又はバッファユニット216及び復号ピクチャバッファユニット230が1つのバッファを形成するように、構成されてよい。更なる実施形態は、フィルタリング済みブロック221及び/又は復号ピクチャバッファ230からのブロック若しくはサンプル(両方とも
図2に示されない)をイントラ予測254のための入力又は基礎として使用するよう構成されてよい。
【0112】
ループフィルタユニット220(又は「ループフィルタ」220)は、再構成ブロック215をフィルタリングして、フィルタリング済みブロック221を取得するよう、例えばピクセル遷移を円滑化するよう或いはその他の場合にビデオ品質を向上するよう構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset (SAO))フィルタ又は他のフィルタ、例えばバイラテラルフィルタ又は適応ループフィルタ(adaptive loop filter (ALF))又は先鋭化若しくは円滑化フィルタ又は共同フィルタのような1つ以上のループフィルタを表すことを意図する。ループフィルタユニット220はインループフィルタであるとして
図2に示されるが、他の構成では、ループフィルタユニット220は後置きループフィルタとして実装されてよい。フィルタリング済みブロック221は、フィルタリング済み再構成ブロック221と呼ばれてもよい。復号ピクチャバッファ230は、ループフィルタユニット220がフィルタリング動作を再構成符号化ブロックに対して実行した後に、再構成符号化ブロックを格納してよい。
【0113】
エンコーダ200(それぞれループフィルタユニット220)の実施形態は、例えば直接に又はエントロピー符号化ユニット270若しくは任意の他のエントロピー符号化ユニットによりエントロピー符号化された(サンプル適応オフセット情報のような)ループフィルタパラメータを出力するよう構成されてよい。その結果、例えば、デコーダ300は、同じループフィルタパラメータを受信し、復号のために適用してよい。
【0114】
復号ピクチャバッファ(decoded picture buffer (DPB))230は、ビデオエンコーダ20によるビデオデータの符号化において使用するために、参照ピクチャデータを格納する参照ピクチャメモリであってよい。DPB230は、同期DRAM(synchronous DRAM (SDRAM))を含む動的ランダムアクセスメモリ(dynamic random access memory (DRAM))、磁気抵抗RAM(magneto resistive RAM (MRAM))、抵抗RAM(resistive RAM (RRAM))、又は他の種類のメモリ装置のような、種々のメモリ装置のうちのいずれかにより形成されてよい。DPB230及びバッファ216は、同じメモリ装置又は別個のメモリ装置により提供されてよい。幾つかの例では、復号ピクチャバッファ(decoded picture buffer, DPB)230は、フィルタリング済みブロック221を格納するよう構成される。復号ピクチャバッファ230は、同じ現在ピクチャの又は異なるピクチャ、例えば前に再構成されたピクチャの他の前にフィルタリングされたブロック、例えば前に再構成された及びフィルタリングされたブロック221を格納するよう更に構成されてよく、完全な前に再構成された、つまり復号されたピクチャ(及び対応する参照ブロック及びサンプル)、及び/又は部分的に再構成された現在ピクチャ(及び対応する参照ブロック及びサンプル)を、例えばインター予測のために提供してよい。幾つかの例では、再構成ブロック215が再構成されたがインループフィルタリングを伴わない場合、復号ピクチャバッファ(decoded picture buffer, DPB)230は再構成ブロック215を格納するよう構成される。
【0115】
予測処理ユニット260は、ブロック予測処理ユニット260とも呼ばれ、ブロック203(現在ピクチャ201の現在ブロック203)及び再構成ピクチャデータ、例えば同じ(現在)ピクチャの参照サンプルをバッファ216から、及び/又は1又は複数の前に復号したピクチャからの参照ピクチャデータ231を復号ピクチャバッファ230から受信し又は取得し、このようなデータを予測のために処理し、つまりインター予測ブロック245又はイントラ予測ブロック255であってよい予測ブロック265を提供するよう構成される。
【0116】
モード選択ユニット262は、予測モード(例えば、イントラ又はインター予測モード)及び/又は残差ブロック205の計算のために及び再構成ブロック215の再構成のために予測ブロック265として使用されるべき対応する予測ブロック245又は255を選択するよう構成されてよい。
【0117】
モード選択ユニット262の実施形態は、最も適する又は言い換えると最小残差(最小残差は伝送又は記憶のためのより良い圧縮を意味する)又は最小シグナリングオーバヘッド(最小シグナリングオーバヘッドは伝送又は記憶のためのより良い圧縮を意味する)を提供する又は両者を考慮する若しくはバランスを取る予測モードを(例えば、予測処理ユニット260によりサポートされるものから)選択するよう構成されてよい。モード選択ユニット262は、レート歪み最適化(rate distortion optimization (RDO))に基づき、予測モードを決定するよう、つまり、最小のレート歪み最適化を提供する若しくは予測モード選択基準を少なくとも満たすレート歪みに関連する予測モードを選択するよう構成されてよい。
【0118】
以下では、例示的なエンコーダ200により実行される(例えば、予測処理ユニット260による)予測処理及び(例えばモード選択ユニット262による)モード選択が更に詳細に説明される。
【0119】
上述のように、エンコーダ200は、最良の又は最適な予測モードを決定し又は(予め決定された)予測モードのセットから選択するよう構成される。予測モードのセットは、例えばイントラ予測モード及び/又はインター予測モードを含んでよい。
【0120】
イントラ予測モードのセットは、35個の異なるイントラ予測モード、例えばDC(又は平均)モード及び平面モードのような無指向性モード、又は例えばH.265で定められたような指向性モードを含んでよく、又は67個の異なるイントラ予測モード、例えばDC(又は平均)モード及び平面モードのような無指向性モード、又は例えば策定中のH.266で定められたような指向性モードを含んでよい。
【0121】
インター予測モード(又は可能な)のセットは、利用可能な参照ピクチャ(つまり、例えばDBP230に格納された、前の少なくとも部分的に復号されたピクチャ)及び他のインター予測パラメータに、例えば、参照ピクチャの全体又は部分のみが、例えば参照ピクチャの現在ブロックの領域周辺の検索ウインドウ領域が最良の適合する参照ブロックを検索するために使用されるか、及び/又は、例えば、ピクセル補間、例えばハーフ/セミペル及び/又は4分の1ペル補間が適用されるか否かに依存する。
【0122】
上述の予測モードに加えて、スキップモード及び/又は直接モードが適用されてよい。
【0123】
予測処理ユニット260は、例えば4分木パーティション(quad-tree-partitioning (QT))、2分木パーティション(binary-tree-partitioning (BT))、3分木パーティション(triple-tree-partitioning (TT))、又はそれらの任意の組み合わせを繰り返し使用して、ブロック203を更に小さいブロックパーティション又はサブブロックにパーティションし、例えば各ブロックパーティション又はサブブロックに対して予測を実行するよう更に構成されてよい。ここで、モード選択は、パーティション済みブロック203の木構造及びブロックパーティション又はサブブロックの各々に適用される予測モードの選択を含む。
【0124】
インター予測ユニット244は、動き推定(motion estimation (ME))ユニット及び動き補償(motion compensation (MC))ユニット(
図2に示されない)を含んでよい。動き推定ユニットは、ピクチャブロック203(現在ピクチャ201の現在ピクチャブロック203)、及び復号ピクチャ331、又は前に再構成されたブロックのうちの少なくとも1つ又は複数、例えば1又は複数の他の/異なる前に復号されたピクチャ331のうちの再構成ブロックを、動き推定のために受信し又は取得するよう構成される。例えば、ビデオシーケンスは、現在ピクチャ及び前の復号ピクチャ331を含んでよい。言い換えると、現在ピクチャ及び前の復号ピクチャ331は、ビデオシーケンスを形成するピクチャのシーケンスの一部であり又はそれを形成してよい。エンコーダ200は、例えば、複数の他のピクチャの同じ又は異なるピクチャの複数の参照ブロックから、参照ブロックを選択し、参照ピクチャ(又は参照ピクチャインデックス、...)及び/又は参照ブロックの位置(x,y座標)と現在ブロックの位置との間のオフセット(空間オフセット)を、インター予測パラメータとして動き推定ユニット(
図2に示されない)に提供するよう構成されてよい。このオフセットは、動きベクトル(motion vector (MV))とも呼ばれる。マージは、HEVCで使用され及びVVCへと継承される重要な動き推定ツールである。マージ推定を実行するために、最初に行われるべきことは、マージ候補リストを構成することである。ここで、候補の各々は、各リストについて、1又は2個の参照ピクチャリストが参照インデックス及び動きベクトルと同様に使用されるかどうかの情報を含む全部の動きデータを含む。マージ候補リストは、以下の候補:a.5個の空間的近隣(つまり近隣)ブロックから導出される最大で4個の空間マージ候補、b.2個の時間的同一位置にあるブロックから導出された1個の時間マージ候補、c.結合された双予測候補及びゼロ動きベクトル候補を含む追加マージ候補、に基づき構成される。
【0125】
イントラ予測ユニット254は、イントラ予測パラメータ、例えば選択されたイントラ予測モードに基づき、イントラ予測ブロック255を決定するよう更に構成される。いずれの場合にも、ブロックのイントラ予測モードを選択した後に、イントラ予測ユニット254は、また、イントラ予測パラメータ、つまり、ブロックについて選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット270に提供するよう構成される。一例では、イントラ予測ユニット254は、後述するイントラ予測技術の任意の組み合わせを実行するよう構成されてよい。
【0126】
エントロピー符号化ユニット270は、エントロピー符号化アルゴリズム又は方式(例えば、可変長符号化(variable length coding (VLC))方式、コンテキスト適応型VLC方式(context adaptive VLC (CALVC))、算術符号化方式、コンテキスト適応型二値算術符号化(context adaptive binary arithmetic coding (CABAC))、シンタックスに基づくコンテキスト適応型二値算術符号化(syntax-based context-adaptive binary arithmetic coding (SBAC))、確率区間区分エントロピー(probability interval partitioning entropy (PIPE))符号化又は別のエントロピー符号化方法若しくは技術)を量子化済み残差係数209、インター予測パラメータ、イントラ予測パラメータ、及び/又はループフィルタパラメータに、個々に又は一緒に適用して(又は全く適用せず)、出力272により例えば符号化ビットストリーム21の形式で出力され得る符号化ピクチャデータ21を取得するよう構成される。符号化ビットストリーム21は、ビデオデコーダ30へと伝送され、又はビデオデコーダ30による後の伝送又は読み出しのためにアーカイブされてよい。エントロピー符号化ユニット270は、符号化中の現在ビデオスライスの他のシンタックス要素をエントロピー符号化するよう更に構成され得る。
【0127】
ビデオエンコーダ200の他の構造的変形は、ビデオストリームを符号化するために使用され得る。例えば、非変換に基づくエンコーダ200は、変換処理ユニット206を有しないで、特定のブロック又はフレームについて、残差信号を直接量子化できる。別の実装では、エンコーダ200は、単一のユニットに結合された、量子化ユニット208及び逆量子化ユニット210を有し得る。
【0128】
図3は、本開示の技術を実施するよう構成される例示的なビデオデコーダ300を示す。ビデオデコーダ300は、復号ピクチャ331を取得するために、例えばエンコーダ200により符号化された符号化ピクチャデータ(例えば、符号化ビットストリーム)271を受信するよう構成される。復号処理の間、ビデオデコーダ300は、ビデオデータ、例えば符号化ビデオスライスのピクチャブロック及び関連するシンタックス要素を表す符号化ビデオストリームを、ビデオエンコーダ200から受信する。
【0129】
図3の例では、デコーダ300は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(例えば、加算器314)、バッファ316、ループフィルタ320、復号ピクチャバッファ330、及び予測処理ユニット360を含む。予測処理ユニット360は、インター予測ユニット344、イントラ予測ユニット354、及びモード選択ユニット362を含んでよい。ビデオデコーダ300は、幾つかの例では、
図2からビデオエンコーダ200に関して説明した符号化経路に対して通常相互的な復号経路を実行してよい。
【0130】
エントロピー復号ユニット304は、エントロピー復号を、符号化ピクチャデータ271に対して実行して、例えば量子化済み係数309、及び/又は復号された符号化パラメータ(
図3に示されない)、例えばインター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、及び/又は他のシンタックス要素のうちの(復号された)いずれか又は全部を取得するよう構成される。エントロピー復号ユニット304は、インター予測パラメータ、イントラ予測パラメータ、及び/又は他のシンタックス要素を、予測処理ユニット360に転送するよう更に構成される。ビデオデコーダ300は、ビデオスライスレベル及び/又はビデオブロックレベルのシンタックス要素を受信してよい。
【0131】
逆量子化ユニット310は逆量子化ユニット110と機能的に同一であってよく、逆変換処理ユニット312は逆変換処理ユニット112と機能的に同一であってよく、再構成ユニット314は再構成ユニット114と機能的に同一であってよく、バッファ316はバッファ116と機能的に同一であってよく、ループフィルタ320はループフィルタ120と機能的に同一であってよく、復号ピクチャバッファ330は復号ピクチャバッファ130と機能的に同一であってよい。
【0132】
予測処理ユニット360は、インター予測ユニット344及びイントラ予測ユニット354を含んでよい。ここで、インター予測ユニット344はインター予測ユニット144と機能的に似ていてよく、イントラ予測ユニット354はイントラ予測ユニット154と機能的に似ていてよい。予測処理ユニット360は、標準的に、ブロック予測を実行し、及び/又は予測ブロック365を符号化データ21から取得し、及び予測関連パラメータ及び/又は選択された予測モードに関する情報を、例えばエントロピー復号ユニット304から(明示的に又は暗示的に)受信し又は取得するよう構成される。
【0133】
ビデオスライスがイントラ符号化(intra coded(I))スライスとして符号化されるとき、予測処理ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モード及び現在フレーム又はピクチャの前に復号されたブロックからのデータに基づき、現在ビデオスライスのピクチャブロックについて予測ブロック365を生成するよう構成される。ビデオフレームがインター符号化(つまり、B又はP)スライスとして符号化されるとき、予測処理ユニット360のインター予測ユニット344(例えば動き補償ユニット)は、動きベクトル及びエントロピー復号ユニット304から受信した他のシンタックス要素に基づき、現在ビデオスライスのビデオブロックについて予測ブロック365を生成するよう構成される。インター予測では、予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成されてよい。ビデオデコーダ300は、DPB330に格納された参照ピクチャに基づき、規定の構成技術を用いて、参照フレームリスト:リスト0及びリスト1を構成してよい。
【0134】
予測処理ユニット360は、動きベクトル及び他のシンタックス要素をパースすることにより、現在ビデオスライスのビデオブロックについて予測情報を決定し、予測情報を使用して、復号中の現在ビデオブロックについて予測ブロックを生成するよう構成される。例えば、予測処理ユニット360は、受信したシンタックス要素のうちの幾つかを使用して、ビデオスライスのビデオブロックを符号化するために使用される予測モード(例えば、イントラ又はインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスの参照ピクチャリストのうちの1つ以上の構成情報、スライスの各インター符号化ビデオブロックの動きベクトル、スライスの各インター符号化ビデオブロックのインター予測状態、及び現在ビデオスライス内のビデオブロックを復号するための他の情報を決定する。
【0135】
逆量子化ユニット310は、ビットストリーム内で提供され、エントロピー復号ユニット304により復号された量子化済み変換係数を逆量子化、つまり量子化解除するよう構成される。逆量子化処理は、ビデオスライス内の各ビデオブロックに対して、ビデオエンコーダ100により計算された量子化パラメータを使用して、量子化の程度、及び同様に適用されるべき逆量子化の程度を決定することを含んでよい。
【0136】
逆変換処理ユニット312は、ピクセルドメインにおいて残差ブロックを生成するために、逆変換、例えば、逆DCT、逆整数変換、又は概念的に類似する逆変換処理を、変換係数に適用するよう構成される。
【0137】
再構成ユニット314(例えば、加算器314)は、逆変換ブロック313(つまり再構成残差ブロック313)を予測ブロック365に加算して、例えば再構成残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することにより、サンプルドメインにおける再構成ブロック315を取得するよう構成される。
【0138】
ループフィルタユニット320(符号化ループ内にある又は符号化ループの後にある)は、再構成ブロック315をフィルタリングして、フィルタリング済みブロック321を取得するよう、例えばピクセル遷移を円滑化するよう或いはその他の場合にビデオ品質を向上するよう構成される。一例では、ループフィルタユニット320は、後述するフィルタリング技術の任意の組み合わせを実行するよう構成されてよい。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset (SAO))フィルタ又は他のフィルタ、例えばバイラテラルフィルタ又は適応ループフィルタ(adaptive loop filter (ALF))又は先鋭化若しくは円滑化フィルタ又は共同フィルタのような1つ以上のフィルタを表すことを意図する。ループフィルタユニット320はインループフィルタであるとして
図3に示されるが、他の構成では、ループフィルタユニット320は後置きループフィルタとして実装されてよい。
【0139】
所与のフレーム又はピクチャ内の復号ビデオブロック321は、次に、後の動き補償のために使用される参照ピクチャを格納する復号ピクチャバッファ330に格納される。
【0140】
デコーダ300は、ユーザへの提示又は閲覧のために、復号ピクチャ311を、例えば出力312を介して出力するよう構成される。
【0141】
ビデオデコーダ300の他の変形は、圧縮ビットストリームを復号するために使用され得る。例えば、デコーダ300は、ループフィルタユニット320を有しないで、出力ビデオストリームを生成できる。例えば、非変換に基づくデコーダ300は、逆変換処理ユニット312を有しないで、特定のブロック又はフレームについて、残差信号を直接逆量子化できる。別の実装では、ビデオデコーダ300は、単一のユニットに結合された、逆量子化ユニット310及び逆変換処理ユニット312を有し得る。
【0142】
図4は、本開示の実施形態によるネットワーク装置400(例えば、符号化装置)の概略図である。ネットワーク装置400は、ここに説明したような開示の実施形態を実施するのに適する。実施形態では、ネットワーク装置400は、
図1Aのビデオデコーダ30のようなデコーダ、又は
図1Aのビデオエンコーダ20のようなエンコーダであってよい。実施形態では、ネットワーク装置400は、上述のような
図1Aのビデオデコーダ30又は
図1Aのビデオエンコーダ20の1つ以上のコンポーネントであってよい。
【0143】
ネットワーク装置400は、データを受信するためのイングレスポート410及び受信機ユニット(receiver unit (Rx))420と、データを処理するためのプロセッサ、論理ユニット、又は中央処理ユニット(central processing unit (CPU))430と、データを送信するための送信機ユニット(transmitter unit (Tx))440及びイグレスポート450と、データを格納するためのメモリ460と、を含む。ネットワーク装置400は、イングレスポート410、受信機ユニット420、送信機ユニット440及びイグレスポート450に接続された、光若しくは電気信号のイグレス若しくはイングレスのための光-電気(optical-to-electrical (OE))コンポーネント及び電気-光(electrical-to-optical (EO))コンポーネントも含んでよい。
【0144】
プロセッサ430は、ハードウェア及びソフトウェアにより実装される。プロセッサ430は、1つ以上のCPUチップ、(例えば、マルチコアプロセッサのような)コア、FPGA、ASIC、及びDSPとして実装されてよい。プロセッサ430は、イングレスポート410、受信機ユニット420、送信機ユニット440、イグレスポート450、及びメモリ460と通信する。プロセッサ430は、符号化モジュール470を含む。符号化モジュール470は、上述の開示の実施形態を実装する。例えば、符号化モジュール470は、種々の符号化動作を実装し、処理し、準備し、又は提供する。符号化モジュール470の中に含まれるものは、従って、ネットワーク装置400の機能に実質的な改良を提供し、ネットワーク装置400の異なる状態への変換をもたらす。代替として、符号化モジュール470は、メモリ460に格納されプロセッサ430により実行される命令として実装される。
【0145】
メモリ460は、1つ以上のディスク、テープドライブ、及び固体ドライブを含み、プログラムが実行のために選択されるとき該プログラムを格納するため及びプログラムの実行中に読み出される命令及びデータを格納するためのオーバフローデータ記憶装置として使用されてよい。メモリ460は、揮発性及び/又は不揮発性メモリであってよく、読み出し専用メモリ(read-only memory (ROM))、ランダムアクセスメモリ(random access memory(RAM))、三値連想メモリ(ternary content-addressable memory(TCAM))、及び/又は静的ランダムアクセスメモリ(static random-access memory(SRAM))であってよい。
【0146】
図5は、例示的な実施形態による
図1Aからのソース装置12及び宛先装置14の一方又は両方として使用されてよい機器500の簡略ブロック図である。機器500は、本開示の技術を実装できる。機器500は、複数のコンピューティング装置を含むコンピューティングシステムの形式、又は単一コンピューティング装置、例えば移動電話機、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ、等の形式であり得る。
【0147】
機器500内のプロセッサ502は、中央処理ユニットであり得る。代替として、プロセッサ502は、現在存在する又は将来開発される情報を操作し又は処理できる任意の他の種類の装置又は複数の装置であり得る。開示の実装は図示のように単一のプロセッサ、例えばプロセッサ502により実施できるが、速度及び効率における利益は、1つより多くのプロセッサを用いて達成できる。
【0148】
機器500内のメモリ504は、実装では、読み出し専用メモリ(read only memory(ROM))装置又はランダムアクセスメモリ(random access memory(RAM))装置であり得る。任意の他の適切な種類の記憶装置が、メモリ504として使用できる。メモリ504は、バス512を用いてプロセッサ502によりアクセスされるコード及びデータ506を含み得る。メモリ504は、オペレーティングシステム508及びアプリケーションプログラム510を更に含み得る。アプリケーションプログラム510は、プロセッサ502がここに記載の方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510は、ここに記載の方法を実行するビデオ符号化アプリケーションを更に含むアプリケーション1~Nを含むことができる。機器500は、例えばモバイルコンピューティング装置と共に使用されるメモリカードであり得る2次記憶514の形式の追加メモリも含み得る。ビデオ通信セッションは有意な量の情報を含み得るので、それらは、全体又は部分的に2次記憶514に格納され、処理のために必要に応じてメモリ504にロードされ得る。
【0149】
機器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))ディスプレイを含む種々の方法で実装できる。
【0150】
機器500は、また、画像感知装置520、例えばカメラ、又は機器500を操作しているユーザの画像のような画像を感知できる現存の若しくは将来開発される任意の他の画像感知装置520を含み又はそれと通信できる。画像感知装置520は、機器500を操作するユーザに向けられるように位置決めされ得る。一例では、画像感知装置520の位置及び光軸は、視野がディスプレイ518に直接隣接する領域を含み及びそれからディスプレイ518が見えるよう構成され得る。
【0151】
機器500は、また、音声感知装置522、例えばマイクロフォン、又は機器500の近くの音声を感知できる現存の若しくは将来開発される任意の他の音声感知装置を含み又はそれと通信できる。音声感知装置522は、機器500を操作しているユーザに向けられるよう位置決めでき、ユーザが機器500を操作している間にユーザにより生成される音声、例えば会話又は他の発言を受信するよう構成できる。
【0152】
図5は機器500のプロセッサ502及びメモリ504を単一のユニットに統合されているように示すが、他の構成が利用できる。プロセッサ502の動作は、ローカルエリア又は他のネットワークに渡り又は直接接続され得る複数の機械(各機械は1つ以上のプロセッサを有する)に渡り分散できる。メモリ504は、ネットワークに基づくメモリ又は機器500の動作を実行する複数の機械の中のメモリのように、複数の機械に渡り分散できる。ここでは単一のバスとして示されるが、機器500のバス512は複数のバスで構成できる。更に、2次記憶514は、機器500の他のコンポーネントに直接接続でき、又はネットワークを介してアクセスでき、メモリカードのような単一の統合ユニット又は複数のメモリカードのような複数のユニットを含むことができる。機器500は、従って、様々な構成で実装できる。
【0153】
1つ以上の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせにより実装されてよい。ソフトウェアで実装される場合、機能は、1つ以上の命令又はコードとしてコンピュータ可読媒体に格納され又はそれを介して送信され、ハードウェアに基づく処理ユニットにより実行されてよい。コンピュータ可読媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ可読記憶媒体、又は例えば通信プロトコルに従いある場所から別の場所へのコンピュータプログラムの転送を実現する任意の媒体を含む通信媒体、を含んでよい。このように、コンピュータ可読媒体は、一般的に、(1)非一時的である有形コンピュータ可読記憶媒体、又は(2)信号若しくは搬送波のような通信媒体、に対応してよい。データ記憶媒体は、本開示で説明された技術の実装のために命令、コード、及び/又はデータ構造を読み出すために、1つ以上のコンピュータ又は1つ以上のプロセッサによりアクセス可能な任意の利用可能な媒体であってよい。コンピュータプログラムプロダクトは、コンピュータ可読媒体を含んでよい。
【0154】
動き補償、イントラ予測、及びループフィルタのようなビデオ圧縮技術は、効率的であることが分かっており、従って、H.264/AVC及びH.265/HEVCのような種々のビデオ符号化標準に採用されている。イントラ予測は、利用可能な参照ピクチャがないとき、又はインター予測符号化が現在ブロック若しくはピクチャ、例えばIフレーム若しくはIスライスについて使用されないときに使用できる。イントラ予測の参照サンプルは、通常、同じピクチャ内の前に符号化された(又は再構成された)近隣ブロックから導出される。例えば、H.264/AVC及びH.265/HEVCの両方では、隣接ブロックの境界サンプルは、イントラ予測のための参照として使用される。異なるテクスチャ又は構造的特徴をカバーするために、多くの異なるイントラ予測モードがある。各モードでは、異なる予測信号導出方法が使用される。例えば、H.265/HEVCは、
図6に示すような、全部で35個のイントラ予測モードをサポートする。
【0155】
H.265/HEVCのイントラ予測アルゴリズムの説明
【0156】
イントラ予測では、隣接ブロックの復号境界サンプルが参照として使用される。エンコーダは、35個のオプション:33個の指向性予測モード、DCモード、及び平面モードから、各ブロックの最良のルマイントラ予測モードを選択する。イントラ予測方向とイントラ予測モード番号との間のマッピングは、
図6において指定される。留意すべきことに、65個又は更に多くのイントラ予測モードが、最新のビデオ符号化技術、例えば、未処理ビデオに現れた任意のエッジ方向をキャプチャできるVVC(versatile video coding)において開発されている。
【0157】
図7に示すように、ブロック「CUR」は、予測されるべき現在ブロックであり、隣接する構成済みブロック(現在ブロックの左及び上)の境界に沿うグレイのサンプルが、参照サンプルとして使用される。予測信号は、イントラ予測モードにより示された特定の方法に従い、参照サンプルをマッピングすることにより、導出できる。
【0158】
図7を参照すると、Wは現在ブロックの幅であり、Hは現在ブロックの高さである。W1は、上の参照サンプルの数である。H1は、左の参照サンプルの数である。通常、W1>W及びH1>Hであり、これは、上の参照サンプルが右上の参照(近隣)サンプルも含み、左の参照サンプルが左下の参照(近隣)サンプルも含むことを意味する。例えば、H1=2*H、W1=2*W、又はH1=H+W、W1=W+Hである。
【0159】
参照サンプルは、常に利用可能なのではない。
図8に示すように、例えば、利用可能性チェック処理の後、現在ブロックの上又は上方にあるW2個のサンプルが利用可能であり、現在ブロックの左にあるH2個のサンプルが利用可能である。上にあるW3個のサンプルが利用不可能であり、左にあるH3個のサンプルが利用不可能である。
【0160】
それらの利用不可能なサンプルは、予測信号を得る前に、利用可能なサンプルを用いて置き換えられる(又はパディングされる)必要がある。例えば、利用不可能なサンプルは、時計回り方向に参照サンプルをスキャンし、利用不可能なもののために最新の利用可能なサンプル値を使用することにより、置き換えられる。左の参照サンプルの下側部分については、それらが利用不可能な場合、それらは、最も近くの利用可能な参照サンプルの値により置き換えられる。
【0161】
参照サンプル利用可能性チェック
参照サンプル利用可能性チェックは、参照サンプルが利用可能かどうかを調べることを意味する。例えば、参照サンプルが再構成された場合、参照サンプルは利用可能である。
【0162】
既存の方法では、通常、利用可能性チェック処理は、ルマサンプルをチェックすることにより行われる。これは、クロマ成分のブロックについても、対応するルマサンプルの利用可能性を調べることにより、参照サンプル利用可能性が導出されることを意味する。
【0163】
本開示の提案される方法では、ブロックについて、それ自体の成分のサンプルを調べることにより、参照サンプル利用可能性チェック処理が実行される。ここで、成分は、Y成分、Cb成分又はCr成分であり得る。提案される方法によると、ブロックについて、その対応する成分のサンプルを調べることにより、参照サンプル利用可能性チェック処理が実行される。ここで、成分は、ルマ成分、又はCb成分及びCr成分の両方を含んでよいクロマ成分であり得る。ここで、Cb成分及びCr成分は、クロマ成分と呼ばれ、利用可能性チェック処理において区別されない。
【0164】
本発明において方法のセットが提示され、以下の2つの側面が強調される。
【0165】
本開示の第1の態様によると、ブロックについて、それ自体の成分のサンプルを調べることにより、参照サンプル利用可能性チェック処理が行われる。ここで、成分は、Y成分、Cb成分又はCr成分であり得る。
【0166】
Yブロックについて、Yブロックの参照サンプルの利用可能性は、参照サンプルが利用可能かどうかを調べることにより、例えば、参照サンプルが再構成されたかどうかを調べることにより、導出される。
【0167】
Cbブロックについて、Cbブロックの参照サンプルの利用可能性は、参照サンプルが利用可能かどうかを調べることにより、例えば、参照サンプルが再構成されたかどうかを調べることにより、導出される。
【0168】
Crブロックについて、Crブロックの参照サンプルの利用可能性は、参照サンプルが利用可能かどうかを調べることにより、例えば、参照サンプルが再構成されたかどうかを調べることにより、導出される。
【0169】
本開示の第2の態様によると、ブロックについて、その対応する成分のサンプルを調べることにより、参照サンプル利用可能性チェック処理が実行される。ここで、成分は、ルマ成分又はクロマ成分であり得る。Y成分は、ルマ成分と呼ばれる。Cb成分及びCr成分の両方は、クロマ成分と呼ばれる。ここで、Cb成分及びCr成分は、利用可能性チェック処理において区別されない。
【0170】
ルマブロックについて、ルマブロックの参照サンプルの利用可能性は、参照サンプルが利用可能かどうかを調べることにより、例えば、参照サンプルが再構成されたかどうかを調べることにより、導出される。
【0171】
クロマブロックについて、クロマブロックの参照サンプルの利用可能性は、参照サンプルが利用可能かどうかを調べることにより、例えば、参照サンプルが再構成されたかどうかを調べることにより、導出される。
【0172】
既存のソリューションでは、ブロックについて、参照サンプル利用可能性チェック処理は、ブロックがどの成分に属するかに関係なく、常にルマサンプルを調べることにより行われる。これに対し、本開示の提案される方法では、異なる成分に属するブロックについて、それらの参照サンプル利用可能性チェック処理は、異なる成分サンプルを調べることにより実行される。
【0173】
ここで、本開示で提案される方法は、イントラ予測モードとして符号化されたブロックの参照サンプルの利用可能性を導出するために使用されることに留意する。方法は、それぞれ
図2及び3に示されるイントラ予測モジュール254又は354により実行できる。従って、方法は、デコーダ側及びエンコーダ側の両方に存在する。そして、ブロックの参照サンプルの利用可能性チェック処理は、エンコーダ及びデコーダにおいて同じである。
【0174】
図9は、本開示の例示的な実施形態による再構成された信号を導出する方法を説明する簡略フローチャートである。
図9を参照すると、イントラ予測モードとして符号化されたブロックについて、再構成ブロック(又は信号、又はサンプル)を取得するために、方法は、先ず、ブロックの予測(又は予測信号若しくはサンプル)を取得するステップ(901)を含む。その後、方法は、ブロックの残差(又は残差信号)を取得するステップ(902)を含む。次に、方法は、現在ブロックの予測に残差を加算することにより、再構成ブロックを導出するステップ(903)を含む。
【0175】
図10は、本開示の例示的な実施形態による予測(又は予測信号)を導出する簡略フローチャートである。
図10を参照すると、予測信号を取得するために、方法は、先ず、平面モード又はDCモード、...のような現在ブロックのイントラ予測モードを取得するステップ(1001)を含む。その後、方法は、現在ブロックの成分の参照サンプルの利用可能性を導出するステップ(1002)を含む。実施形態では、成分は、Y成分、Cb成分又はCr成分を含む。別の実施形態では、成分は、ルマ成分、又はクロマ成分を含む。方法は、近隣Yブロックの中のYサンプルの利用可能性を調べることにより、参照サンプルの利用可能性を導出してよく、近隣Yブロックは参照サンプルを含み、或いは、近隣Cbブロック内のCbサンプルの利用可能性を調べることにより、参照サンプルの利用可能性を導出してよく、近隣Cbブロックは参照サンプルを含み、或いは、近隣Crブロック内のCrサンプルの利用可能性を調べることにより、参照サンプルの利用可能性を導出してよく、近隣Crブロックは参照サンプルを含む。
【0176】
方法が利用不可能な参照サンプルが存在すると決定すると(1003で、はい)、方法は、利用可能な参照サンプルを用いて利用不可能な参照サンプルを置き換え又はパディングするステップ(1004)を含む。その後、方法は、イントラ予測モード及び置き換えられた参照サンプルに基づき、ブロックの予測を導出するステップ(1005)を含む。1003で、方法が利用不可能な参照サンプルが存在しないと決定すると(1003で、いいえ)、方法は、イントラ予測モード及び利用可能な参照サンプルに基づき、現在ブロックの予測を導出するステップを含む1005へ進む。1006で、方法は、予測に基づき現在ブロックを再構成するステップを含む。
【0177】
ここで、以下に説明される本開示の実施形態は、予測信号を導出し、参照サンプル利用可能性チェック処理を改良する処理を対象とすることに留意する。
【0178】
実施形態1
本実施形態では、利用可能性チェック処理は、それ自体の成分のサンプルを調べることにより、実行される。
【0179】
図10を参照すると、イントラ予測モードとして符号化されたブロックについて、予測信号を取得するために、方法は以下を含む。
【0180】
ステップ1:イントラ予測モードを取得する(1001)
【0181】
イントラ予測モードは、ビットストリームの中のイントラ予測モードに関連するシンタックスをパースすることにより取得される。例えば、Yブロックについて、intra_luma_mpm_flag、intra_luma_mpm_idx、又はintra_luma_mpm_remainderがパースされる。Cb又はCrブロックについて、intra_chroma_pred_mode信号がパースされる。その後、現在ブロックのイントラ予測モードが、パースされたシンタックスを用いて導出できる。
【0182】
ステップ2:参照サンプル利用可能性チェック処理を実行する(1002)
【0183】
このステップは、現在ブロックの参照サンプルの利用可能性を調べるステップを含む。
【0184】
実施形態では、ブロックがYブロックであるとき、参照サンプル利用可能性は、Y成分の参照サンプルを調べることにより導出される。代替として、参照サンプル利用可能性は、近隣Yサンプルを調べることにより、例えば、近隣Yブロックの境界サンプルを調べることにより、導出される。
【0185】
実施形態では、ブロックがCbブロックであるとき、参照サンプル利用可能性は、Cb成分の参照サンプルを調べることにより導出される。代替として、参照サンプル利用可能性は、近隣Cbサンプルを調べることにより、例えば、近隣Cbブロックの境界サンプルを調べることにより、導出される。
【0186】
実施形態では、ブロックがCrブロックであるとき、参照サンプル利用可能性は、Cr成分の参照サンプルを調べることにより導出される。代替として、参照サンプル利用可能性は、近隣Crサンプルを調べることにより、例えば、近隣Crブロックの境界サンプルを調べることにより、導出される。
【0187】
ステップ3:利用不可能な参照サンプルが存在するかどうかを決定する(1003)
【0188】
1003で、方法は、利用不可能な参照サンプルが存在するかどうかを決定するステップを含む。方法が利用不可能な参照サンプルが存在すると決定すると、方法はステップ4(1004)に進み、その他の場合、方法はステップ5(1005)に進む。
【0189】
ステップ4:参照サンプル置き換え(1004)
【0190】
参照サンプル置き換えは、利用可能な参照サンプルの値を用いて、利用不可能な参照サンプルのサンプル値を導出することを意味する。実施形態では、利用不可能なサンプルは、時計回り方向に参照サンプルをスキャンし、利用不可能なもののために最新の利用可能なサンプル値を使用することにより、置き換えられる。左の参照サンプルの下側部分については、それらが利用不可能な場合、それらは、最も近くの利用可能な参照サンプルの値により置き換えられる。
【0191】
ステップ5:予測信号を導出する(1005)
【0192】
参照サンプル及びイントラ予測モードを取得するステップの後に、予測信号は、参照サンプルを現在ブロックにマッピングすることにより導出でき、マッピング方法は、イントラ予測モードにより示される。
【0193】
現在ブロックの予測信号を導出するステップの後に、導出された予測信号に残差信号を加算することにより、現在ブロックの再構成信号が導出できる(
図9の903)。
【0194】
ここで、現在ブロックが再構成された後に、
図11に示すように、ブロック領域内のサンプルは、「利用可能」としてマークされ得ることに留意する。つまり、現在ブロックがYブロックであるとき、ブロック領域によりカバーされる位置にある全部のYサンプルは利用可能であり、現在ブロックがCbブロックであるとき、ブロック領域によりカバーされる位置にある全部のCbサンプルは利用可能であり、現在ブロックがCrブロックであるとき、ブロック領域によりカバーされる位置にある全部のCrサンプルは利用可能である。
【0195】
これらのセクションの仕様の例は、以下のように提示できる。
参照サンプル利用可能性マーキング処理
この処理への入力は:
・現在ピクチャの左上サンプルに対し、現在変換ブロックの左上サンプルを指定するサンプル位置(xTbCmp,yTbCmp)
・イントラ予測参照ラインインデックスを指定する変数refIdx
・参照サンプル幅を指定する変数refW
・参照サンプル高さを指定する変数refH
・現在ブロックの色成分を指定する変数cIdx
この処理の出力は、参照サンプルrefUnfilt[x][y]、イントラサンプル予測の場合、x=-1-refIdx、y=-1-refIdx..refH-1、及びx=-refIdx..refW-1、y=-1-refIdxである。
refW+refH+1+(2*refIdx)個の、インループフィルタ処理の前に構成されたサンプルである近隣サンプルrefUnfilt[x][y]、ここでx=-1-refIdx、y=-1-refIdx..refH-1、及びx=-refIdx..refW-1、y=-1-refIdxは、以下のように導出される。
・近隣位置(xNbCmp,yNbCmp)は、以下により指定される:
(xNbCmp,yNbCmp)
=(xTbCmp+x,yTbCmp+y) (310)
・6.4.4節で指定されている近隣ブロック利用可能性の導出処理は、(xTbCmp,yTbCmp)に等しく設定された現在サンプル位置(xCurr,yCurr)、近隣サンプル位置(xNbCmp,yNbCmp)、FALSEに等しく設定されたcheckPredModeY、及びcIdxを入力として呼び出され、出力はavailableNに割り当てられる。
・各サンプルrefUnfilt[x][y]は以下のように導出される。
・availableNがFALSEに等しい場合、サンプルrefUnfilt[x][y]は、「イントラ予測のために利用不可能である」とマークされる。
・その他の場合、サンプルrefUnfilt[x][y]は、「イントラ予測のために利用可能である」とマークされ、位置(xNbCmp,yNbCmp)にあるサンプルはrefUnfilt[x][y]に割り当てられる。
近隣ブロック利用可能性の導出処理
この処理への入力は:
・現在ピクチャの左上サンプルに対する、現在ブロックの左上サンプルのサンプル位置(xCurr,yCurr)
・現在ピクチャの左上ルマサンプルに対し、近隣ブロックによりカバーされるサンプル位置(xNbCmp,yNbCmp)、
・利用可能性が予測モードに依存するかどうかを指定する変数checkPredModeY
・現在ブロックの色成分を指定する変数cIdx
この処理の出力は、位置(xNbCmp,yNbCmp)をカバーする近隣ブロックの利用可能性であり、availableNと示される。
現在ルマ位置(xTbY,yTbY)及び近隣ルマ位置(xNbY,yNbY)は、以下のように導出される。
(xTbY,yTbY)=(cIdx==0)?(xCurr,yCurr):
(xCurr*SubWidthC,yCurr*SubHeightC)
(xNbY,yNbY)=(cIdx==0)?(xNbCmp,yNbCmp):
(xNbCmp*SubWidthC,yNbCmp*SubHeightC)
近隣ブロック利用可能性availableNは、以下のように導出される。
・以下の条件のうちの1つ以上がTUREである場合、availableNはFALSEに等しく設定される。
・xNbCmpが0未満である。
・yNbCmpが0未満である。
・xNbYがpic_width_in_luma_samples以上である。
・yNbYがpic_hight_in_luma_samples以上である。
・IsAvailable[cIdx][xNbCmp]「yNbCmp]がFALSEに等しい。
・近隣ブロックが、現在ブロックと異なるスライスに含まれる。
・近隣ブロックが、現在ブロックと異なるタイルに含まれる。
・entropy_coding_sync_enabled_flagが1に等しく、(xNbY>>CtbLog2SizeY)が(xTbY>>CtbLog2SizeY)+1以上である。
・その他の場合、availableNがTUREに等しく設定される。
以下の条件のうちの全部がTUREである場合、availableNはFALSEに等しく設定される。
・checkPredModeYがTRUEに等しい。
・availableNがTUREに等しく設定される。
・CuPredMode[0][xNbY][yNbY]が、CuPredMode[0][xTbY][yTbY]と等しくない。
サンプル位置(x,y)にある各成分cIdxのサンプルの利用可能情報を格納するために使用されるIsAvailable[cIdx][x][y]
cIdx=0のとき、0<=x<=pic_width_in_luma_samples、0<=y<=pic_height_in_luma_samples、
cIdx=1又は2のとき、0<=x<=pic_width_in_chroma_samples、0<=y<=pic_height_in_chroma_samples。
この処理への入力は:
・現在ピクチャ成分の左上サンプルに対する、現在ブロックの左上サンプルを指定する位置(xCurr,yCurr)
・現在ブロックの幅及び高さをそれぞれ指定する変数nCurrSw及びnCurrSh
・現在ブロックの色成分を指定する変数cIdx
・現在ブロックの予測サンプルを指定する(nCurrSw)×(nCurrSh)アレイpredSamples
・現在ブロックの残差サンプルを指定する(nCurrSw)×(nCurrSh)アレイresSamples
この処理の出力は、再構成ピクチャサンプルアレイrecSamplesである。
色成分cIdxの値に依存して、以下の割り当てが行われる。
・cIdxが0に等しい場合、recSamplesは、再構成ピクチャサンプルアレイSLに対応する。
・その他の場合、cIdxが1に等しい場合、tuCbfChromaはtu_cbf_cb[xCurr][yCurr]に等しく設定され、recSamplesは再構成クロマサンプルアレイSCbに対応する。
・その他の場合(cIdxが2に等しい)、tuCbfChromaはtu_cbf_cr[xCurr][yCurr]に等しく設定され、recSamplesは再構成クロマサンプルアレイSCrに対応する。
pic_lmcs_enabled_flagの値に依存して、以下が適用される。
・pic_lmcs_enabled_flagが0に等しい場合、位置(xCurr,yCurr)にある再構成サンプルrecSamplesの(nCurrSw)×(nCurrSh)ブロックは、i=0..nCurrSw-1、j=0..nCurrSh-1について以下のように導出される。
recSamples[xCurr+i][yCurr+j]
=Clip1(predSamples[i][j]+recSamples[i][j]) (1195)
・その他の場合(pic_lmcs_enabled_flagが1に等しい)、以下が適用される。
・cIdxが0に等しい場合、以下が適用される。
・8.7.5.2節で指定されるようなルマサンプルのマッピング処理を伴うピクチャ再構成はルマ位置(xCurr,yCurr)、ブロック幅nCurrSw及び高さnCurrSh、予測ルマサンプルアレイpredSamples、及び残差ルマサンプルアレイresSamplesを入力として呼び出され、出力は再構成ルマサンプルアレイrecSamplesである。
・その他の場合(cIdxが0より大きい)、8.7.5.3節で指定されるようなクロマサンプルのルマに依存するクロマ残差スケーリング処理を伴うピクチャ再構成は、クロマ位置(xCurr,yCurr)、変換ブロック幅nCurrSw及び高さnCurrSh、現在クロマ変換ブロックの符号化ブロックフラグtuCbfChroma、予測クロマサンプルアレイpredSamples、及び残差クロマサンプルアレイresSamplesを入力として呼び出され、出力は再構成クロマサンプルアレイrecSamplesである。
以下の割り当ては、i=0..nCurrSw-1、j=0..nCurrSh-1について行われる。
xVb=(xCurr+i)%((cIdx==0)?IbcBufWidthY:IbcBufWidthC) (1196)
yVb=(yCurr+j)%((cIdx==0)?CtbSizeY:(CtbSizeY/subHeightC)) (1197)
IbcVirBuf[cIdx][xVb][yVb]=recSamples[xCurr+i][yCurr+j] (1198)
IsAvailable[cIdx][xCurr+i][yCurr+j]=TRUE (1199)
【0196】
これらのセクションの仕様の別の例は、以下のように提示できる。
参照サンプル利用可能性マーキング処理
この処理への入力は:
・現在ピクチャの左上サンプルに対し、現在変換ブロックの左上サンプルを指定するサンプル位置(xTbCmp,yTbCmp)
・イントラ予測参照ラインインデックスを指定する変数refIdx
・参照サンプル幅を指定する変数refW
・参照サンプル高さを指定する変数refH
・現在ブロックの色成分を指定する変数cIdx
この処理の出力は、参照サンプルrefUnfilt[x][y]、イントラサンプル予測の場合、x=-1-refIdx、y=-1-refIdx..refH-1、及びx=-refIdx..refW-1、y=-1-refIdxである。
インループフィルタ処理の前に構成されたサンプルである、refW+refH+1+(2*refIdx)個の近隣サンプルrefUnfilt[x][y]、x=-1-refIdx、y=-1-refIdx..refH-1、及びx=-refIdx..refW-1、y=-1-refIdxは、以下のように導出される。
・近隣位置(xNbCmp,yNbCmp)は、以下により指定される:
(xNbCmp,yNbCmp)
=(xTbCmp+x,yTbCmp+y) (310)
・6.4.4節で指定されている近隣ブロック利用可能性の導出処理は、(xTbCmp,yTbCmp)に等しく設定された現在サンプル位置(xCurr,yCurr)、近隣サンプル位置(xNbCmp,yNbCmp)、FALSEに等しく設定されたcheckPredModeY、及びcIdxを入力として呼び出され、出力はavailableNに割り当てられる。
・refUnfilt[x][y]の各サンプルは以下のように導出される。
・availableNがFALSEに等しい場合、サンプルrefUnfilt[x][y]は、「イントラ予測のために利用不可能である」とマークされる。
・その他の場合、サンプルrefUnfilt[x][y]は、「イントラ予測のために利用可能である」とマークされ、位置(xNbCmp,yNbCmp)にあるサンプルはrefUnfilt[x][y]に割り当てられる。
近隣ブロック利用可能性の導出処理
この処理への入力は:
・現在ピクチャの左上サンプルに対する、現在ブロックの左上サンプルのサンプル位置(xCurr,yCurr)
・現在ピクチャの左上ルマサンプルに対する、近隣ブロックによりカバーされるサンプル位置(xNbCmp,yNbCmp)
・利用可能性が予測モードに依存するかどうかを指定する変数checkPredModeY
・現在ブロックの色成分を指定する変数cIdx
この処理の出力は、位置(xNbCmp,yNbCmp)をカバーする近隣ブロックの利用可能性であり、availableNと示される。
現在ルマ位置(xTbY,yTbY)及び近隣ルマ位置(xNbY,yNbY)は、以下のように導出される。
(xTbY,yTbY)=(cIdx==0)?(xCurr,yCurr):
(xCurr*SubWidthC,yCurr*SubHeightC) (XXX)
(xNbY,yNbY)=(cIdx==0)?(xNbCmp,yNbCmp):
(XXX)
(xNbCmp*SubWidthC,yNbCmp*SubHeightC)
近隣ブロック利用可能性availableNは、以下のように導出される。
・以下の条件のうちの1つ以上がTUREである場合、availableNはFALSEに等しく設定される。
・xNbCmpが0未満である。
・yNbCmpが0未満である。
・xNbYがpic_width_in_luma_samples以上である。
・yNbYがpic_hight_in_luma_samples以上である。
・IsAvailable[cIdx][xNbCmp]「yNbCmp]がFALSEに等しい。
・近隣ブロックが、現在ブロックと異なるスライスに含まれる。
・近隣ブロックが、現在ブロックと異なるタイルに含まれる。
・entropy_coding_sync_enabled_flagが1に等しく、(xNbY>>CtbLog2SizeY)が(xTbY>>CtbLog2SizeY)+1以上である。
・その他の場合、availableNがTUREに等しく設定される。
以下の条件のうちの全部がTUREである場合、availableNはFALSEに等しく設定される。
・checkPredModeYがTRUEに等しい。
・availableNがTUREに等しく設定される。
・CuPredMode[0][xNbY][yNbY]が、CuPredMode[0][xTbY][yTbY]と等しくない。
この処理への入力は:
・現在ピクチャ成分の左上サンプルに対する、現在ブロックの左上サンプルを指定する位置(xCurr,yCurr)
・現在ブロックの幅及び高さをそれぞれ指定する変数nCurrSw及びnCurrSh、
・現在ブロックの色成分を指定する変数cIdx
・現在ブロックの予測サンプルを指定する(nCurrSw)×(nCurrSh)アレイpredSamples
・現在ブロックの残差サンプルを指定する(nCurrSw)×(nCurrSh)アレイresSamples
この処理の出力は、再構成ピクチャサンプルアレイrecSamplesである。
色成分cIdxの値に依存して、以下の割り当てが行われる。
・cIdxが0に等しい場合、recSamplesは、再構成ピクチャサンプルアレイSLに対応する。
・その他の場合、cIdxが1に等しい場合、tuCbfChromaはtu_cbf_cb[xCurr][yCurr]に等しく設定され、recSamplesは再構成クロマサンプルアレイSCbに対応する。
・その他の場合(cIdxが2に等しい)、tuCbfChromaはtu_cbf_cr[xCurr][yCurr]に等しく設定され、recSamplesは再構成クロマサンプルアレイSCrに対応する。
pic_lmcs_enabled_flagの値に依存して、以下が適用される。
・pic_lmcs_enabled_flagが0に等しい場合、位置(xCurr,yCurr)にある再構成サンプルrecSamplesの(nCurrSw)×(nCurrSh)ブロックは、i=0..nCurrSw-1、j=0..nCurrSh-1について以下のように導出される。
recSamples[xCurr+i][yCurr+j]
=Clip1(predSamples[i][j]+recSamples[i][j]) (1195)
・その他の場合(pic_lmcs_enabled_flagが1に等しい)、以下が適用される。
・cIdxが0に等しい場合、以下が適用される。
・8.7.5.2節で指定されるようなルマサンプルのマッピング処理を伴うピクチャ再構成はルマ位置(xCurr,yCurr)、ブロック幅nCurrSw及び高さnCurrSh、予測ルマサンプルアレイpredSamples、及び残差ルマサンプルアレイresSamplesを入力として呼び出され、出力は再構成ルマサンプルアレイrecSamplesである。
・その他の場合(cIdxが0より大きい)、8.7.5.3節で指定されるようなクロマサンプルのルマに依存するクロマ残差スケーリング処理を伴うピクチャ再構成は、クロマ位置(xCurr,yCurr)、変換ブロック幅nCurrSw及び高さnCurrSh、現在クロマ変換ブロックの符号化ブロックフラグtuCbfChroma、予測クロマサンプルアレイPredSamples、及び残差クロマサンプルアレイresSamplesを入力として呼び出され、出力は再構成クロマサンプルアレイrecSamplesである。
以下の割り当ては、i=0..nCurrSw-1、j=0..nCurrSh-1について行われる。
xVb=(xCurr+i)%((cIdx==0)?IbcBufWidthY:IbcBufWidthC) (1196)
yVb=(yCurr+j)%((cIdx==0)?CtbSizeY:(CtbSizeY/subHeightC)) (1197)
IbcVirBuf[cIdx][xVb][yVb]=recSamples[xCurr+i][yCurr+j] (1198)
IsAvailable[cIdx][(xCurr+i)*((cIdx==0)?1:SubWidthC)][(yCurr+j)*((cIdx==0)?1:SubHeightC)]=TRUE (1199)
【0197】
図12は、本開示の例示的な実施形態によるユニットN×Nの中の利用可能であるとマークされた、現在ブロックの中のサンプルを示すグラフィック図である。実施形態では、
図12を参照すると、現在ブロックが再構成された後に、サンプルは、N=4又はN=2のようなサイズN*Nを有するユニットの中で「利用可能である」とマークされる。代替として、Y成分ブロックではN=4、及びCb/Cr成分ブロックではN=2である。「利用可能な」ユニットの中の任意のサンプルは、「利用可能である」と考えられる。これは、ユニットが「利用可能である」とマークされた場合、該ユニット領域の中の任意のサンプルは「利用可能である」とマークされ得ることを意味する。つまり、現在ユニットがYユニットであるとき、ユニット領域によりカバーされる位置にある全部のYサンプルは利用可能であり、現在ユニットがCbユニットであるとき、ユニット領域によりカバーされる位置にある全部のCbサンプルは利用可能であり、現在ブロックがCrユニットであるとき、ユニット領域によりカバーされる位置にある全部のCrサンプルは利用可能である。
【0198】
実施形態では、参照サンプルが利用可能であるかどうかを調べるために、処理は、先ず、サンプルの属するユニットの位置又はインデックスを取得し、ユニットが「利用可能である」と決定されると、参照サンプルは利用可能であると考えられ又はマークされる。
【0199】
図13は、本開示の例示的な実施形態による利用可能であるとマークされた、現在ブロックの右境界及び下境界にあるサンプルを示すグラフィック図である。実施形態では、
図13を参照すると、現在ブロックが再構成された後に、右境界サンプル及び下境界サンプル(これらは他のブロックの参照サンプルとして使用される)のみが、「利用可能である」とマークされる。
【0200】
図14は、本開示の例示的な実施形態によるユニットNの中の利用可能であるとマークされた、現在ブロックの右境界及び下境界にあるサンプルを示すグラフィック図である。実施形態では、
図14を参照すると、現在ブロックが再構成された後に、右境界サンプル及び下境界サンプル(これらは他のブロックの参照サンプルとして使用される)のみが、N=4又はN=2のようなNを有するユニットサイズの中で、「利用可能である」とマークされる。代替として、Y成分ブロックではN=4、及びCb/Cr成分ブロックではN=2である。「利用可能な」ユニットの中の任意のサンプルは、「利用可能である」と考えられる。これは、ユニットが「利用可能である」とマークされた場合、該ユニット領域の中の任意のサンプルは「利用可能である」とマークされ得ることを意味する。言い換えると、現在ユニットがYユニットであるとき、ユニット領域によりカバーされる位置にある全部のYサンプルは利用可能であり、現在ユニットがCbユニットであるとき、ユニット領域によりカバーされる位置にある全部のCbサンプルは利用可能であり、現在ブロックがCrユニットであるとき、ユニット領域によりカバーされる位置にある全部のCrサンプルは利用可能である。
【0201】
参照サンプルが利用可能であるかどうかを調べるために、実施形態では、処理は、先ず、サンプルの属するユニットの位置又はインデックスを取得し、ユニットが「利用可能である」と決定されると、参照サンプルは利用可能であるとマークされる。
【0202】
図15は、本開示の例示的な実施形態によるユニットN×Nの中の利用可能であるとマークされた、現在ブロックの右境界及び下境界にあるサンプルを示すグラフィック図である。実施形態では、
図15を参照すると、現在ブロックが再構成された後に、右境界サンプル及び下境界サンプル(これらは他のブロックの参照サンプルとして使用される)のみが、N=4又はN=2のようなサイズN*Nを有するユニットの中で、「利用可能である」とマークされる。代替として、Y成分ブロックではN=4、及びCb/Cr成分ブロックではN=2である。「利用可能な」ユニットの中の任意のサンプルは、「利用可能である」と考えられる。これは、ユニットが「利用可能である」とマークされると、該ユニット領域の中の任意のサンプルは「利用可能である」とマークされ得ることを意味する。つまり、現在ユニットがYユニットであるとき、ユニット領域によりカバーされる位置にある全部のYサンプルは利用可能であり、現在ユニットがCbユニットであるとき、ユニット領域によりカバーされる位置にある全部のCbサンプルは利用可能であり、現在ブロックがCrユニットであるとき、ユニット領域によりカバーされる位置にある全部のCrサンプルは利用可能である。
【0203】
参照サンプルが利用可能であるかどうかを調べるために、実施形態では、処理又は方法は、先ず、サンプルの属するユニットの位置又はインデックスを取得し、処理又は方法がユニットが「利用可能である」と決定すると、処理は参照サンプルを利用可能であるとマークする。
【0204】
ここで、本開示の実施形態によると、サンプル又はユニットの「利用可能」情報は、Y成分について、Cb成分について、及びCr成分についてのように、各成分(全部で3つの成分)についてメモリに保存されることに留意する。
【0205】
ここで、ブロックがインター予測モードとして符号化されるときでも、ブロックが再構成された後に、「利用可能」マーキング方法が適用されることもできることに留意する。
【0206】
実施形態2
本実施形態では、利用可能性チェック処理は、その対応する成分のサンプルを調べることにより、実行される。
【0207】
実施形態2と実施形態1との間の差は、Cb成分とCr成分が、利用可能性チェック処理において区別されないことである。ブロックについて、その対応する成分のサンプルを調べることにより、参照サンプル利用可能性チェック処理が行われる。ここで、成分は、ルマ成分又はクロマ成分であり得る。Y成分は、ルマ成分と呼ばれる。Cb成分及びCr成分の両方は、クロマ成分と呼ばれる。
【0208】
実施形態2と実施形態1との間の差は、ステップ2においてのみ生じ、他のステップでは、それらは実施形態1におけるものと同じである。実施形態2のステップ2は、以下に詳細に説明される。
【0209】
ステップ2:現在ブロックの参照サンプルの利用可能性を調べるステップ(
図10の1002)を含む参照サンプル利用可能性チェック処理を実行する。
【0210】
実施形態では、ブロックがルマブロックであるとき、参照サンプル利用可能性は、参照ルマサンプルを調べることにより導出される。
【0211】
実施形態では、ブロックがクロマブロックであるとき、参照サンプル利用可能性は、参照クロマサンプルを調べることにより導出される。
【0212】
図10を参照すると、1002で参照サンプルの利用可能性を調べるステップの後に、方法は、1003で、利用不可能な参照サンプルがあるかどうかを決定するステップを含む。方法が利用不可能な参照サンプルが存在すると決定すると(1003で、はい)、方法は1004に進み、その他の場合、方法は1005に進む。
【0213】
ここで、実施形態1で議論したマーキング方法は、実施形態2へと直接拡張でき、唯一の差は、クロマ成分について、Cb成分ブロック及びCr成分ブロックが再構成された後にのみ、ブロック領域内のクロマサンプルが「利用可能である」とマークできることであることに留意する。
【0214】
例えば、ルマブロックについて、ブロックが再構成されると、ブロック領域内のサンプルは「利用可能である」とマークできる。クロマブロックについて、Cb及びCrブロックの両方が再構成された後に、ブロック領域内のサンプルは「利用可能である」とマークできる。これは、現在ブロックがルマブロックであるとき、ブロック領域によりカバーされる位置にある全部のルマブロックが利用可能であるとマークされることを意味する。現在ブロックがクロマブロックであるとき、Cb及びCrブロックの両方が再構成された後に、ブロック領域によりカバーされる位置にある全部のクロマサンプルが利用可能であるとマークされる。
【0215】
実施形態1における他のマーキング方法も同様に拡張できる。
【0216】
ここで、本開示の実施形態では、サンプル又はユニットの「利用可能」情報は、ルマ成分について及びクロマ成分についてのように、各成分(全部で2つの成分)についてメモリに保存されることに留意する。これは、Cb成分及びCr成分が、同じ「利用可能性」又は「利用可能である」情報を共有することを意味する。
【0217】
ここで、ブロックがインター予測モードとして符号化されても、ブロックが再構成された後に、「利用可能」マーキング方法が適用されることもできることに留意する。
【0218】
以下は、上述の実施形態に示されたような符号化方法及び復号方法の適用、及びそれらを使用するシステムの説明である。
【0219】
図17は、コンテンツ配信サービスを実現するコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、キャプチャ装置3102、端末装置3106を含み、及び任意的にディスプレイ3126を含む。キャプチャ装置3102は、通信リンク3104を介して端末装置3106と通信する。通信リンクは、上述の通信チャネル13を含んでよい。通信リンク3104は、限定ではないが、WIFI、イーサネット、ケーブル、無線(3G/4G/5G)、USB、又はそれらの任意の種類の組み合わせ、等を含む。
【0220】
キャプチャ装置3102は、データを生成し、上述の実施形態で示されたような符号化方法によりデータを符号化してよい。或いは、キャプチャ装置3102は、データをストリーミングサーバ(図に示されない)へ配信してよく、サーバは、データを符号化し、符号化データを端末装置3106へ送信する。キャプチャ装置3102は、限定ではないが、カメラ、スマートフォン又はPad、コンピュータ又はラップトップ、ビデオ会議システム、PDA、車載装置、又はそれらのいずれかの組み合わせ、等を含む。例えば、キャプチャ装置3102は、上述のようなソース装置102を含んでよい。データがビデオを含むとき、キャプチャ装置3102に含まれるビデオエンコーダ20は、実際に、ビデオ符号化処理を実行してよい。データがオーディオ(つまり、音声)を含むとき、キャプチャ装置3102に含まれるオーディオエンコーダは、実際に、オーディオ符号化処理を実行してよい。幾つかの実用的なシナリオでは、キャプチャ装置3102は、符号化ビデオ及びオーディオデータを、それらを一緒に多重化することにより、配信する。他の実用的なシナリオでは、例えば、ビデオ会議システムで、符号化オーディオデータ及び符号化ビデオデータは、多重化されない。キャプチャ装置3102は、符号化オーディオデータ及び符号化ビデオデータを端末装置3106へ別個に配信する。
【0221】
コンテンツ供給システム3100では、端末装置3106は、符号化データを受信し再生する。端末装置3106は、上述の符号化データを復号できるスマートフォン又はPad3108、コンピュータ又はラップトップ3110、ネットワークビデオレコーダ(network video recorder (NVR))/デジタルビデオレコーダ(digital video recorder (DVR))3112、TV3114、セットトップボックス(set top box (STB))3116、ビデオ会議システム3118、ビデオ監視システム3120、パーソナルデジタルアシスタント(personal digital assistant (PDA))3122、車載装置3124、又はそれらのうちのいずれかの組合せ等のような、データ受信及び復元能力を備えた装置であり得る。例えば、端末装置3106は、上述のような宛先装置14を含んでよい。符号化データがビデオを含むとき、端末装置に含まれるビデオデコーダ30は、ビデオ復号を実行するよう優先される。符号化データがオーディオを含むとき、端末装置に含まれるオーディオデコーダは、オーディオ復号処理を実行するよう優先される。
【0222】
ディスプレイを備える端末装置、例えば、スマートフォン、又はPad3108、コンピュータ又はラップトップ3110、ネットワークビデオレコーダ(network video recorder (NVR))/デジタルビデオデコーダ(digital video recorder (DVR))3112、TV3114、パーソナルデジタルアシスタント(personal digital assistant (PDA))3122、又は車載装置3124では、端末装置は復号データを自身のディスプレイに供給できる。ディスプレイを備えない端末装置、例えばSTB3116、ビデオ会議システム3118、又はビデオ監視システム3120では、外部ディスプレイ3126は、復号データを受信し表示するために接続される。
【0223】
このシステム内の各装置が符号化又は復号を実行するとき、上述の実施形態において示されたように、ピクチャ符号化装置又はピクチャ復号装置が使用できる。
【0224】
図18は、端末装置3106の例の構造を示す図である。端末装置3106がキャプチャ装置3102からストリームを受信した後に、プロトコル進行ユニット3202は、ストリームの送信プロトコルを分析する。プロトコルは、限定ではないが、リアルタイムストリーミングプロトコル(Real Time Streaming Protocol (RTSP))、ハイパーテキスト転送プロトコル(Hyper Text Transfer Protocol (HTTP))、HTTPライブストリーミングプロトコル(HTTP Live streaming protocol (HLS))、MPEG-DASH、リアルタイムトランスポートプロトコル(Real-time Transport protocol (RTP))、リアルタイムメッセージングプロトコル(Real Time Messaging Protocol (RTMP))、又は任意の種類のそれらの組み合わせ、等を含む。
【0225】
プロトコル進行ユニット3202がストリームを処理した後に、ストリームファイルが生成される。ファイルは、逆多重化ユニット3204へと出力される。逆多重化ユニット3204は、多重化データを符号化オーディオデータ及び符号化ビデオデータに分離できる。上述のように、幾つかの実用的なシナリオでは、例えば、ビデオ会議システムで、符号化オーディオデータ及び符号化ビデオデータは、多重化されない。この状況では、符号化データは、逆多重化ユニット3204を通らずに、ビデオデコーダ3206及びオーディオデコーダ3208へと送信される。
【0226】
逆多重化処理により、ビデオエレメンタリストリーム(elementary stream (ES))、オーディオES、及び任意の字幕が生成される。上述の実施形態において説明したようなビデオデコーダ30を含むビデオデコーダ3206は、上述の実施形態において示したような復号方法によりビデオESを復号して、ビデオフレームを生成し、このデータを同期ユニット3212に供給する。オーディオデコーダ3208は、オーディオESを復号してオーディオフレームを生成し、このデータを同期ユニット3212に供給する。或いは、ビデオフレームは、同期ユニット3212に供給する前に、バッファ(
図18に示されない)に格納されてよい。同様に、オーディオフレームは、同期ユニット3212に供給する前に、バッファ(
図18に示されない)に格納されてよい。
【0227】
同期ユニット3212は、ビデオフレーム及びオーディオフレームを同期化し、ビデオ/オーディオをビデオ/オーディオディスプレイ3214に供給する。例えば、同期ユニット3212は、ビデオ及びオーディオ情報の提示を同期化する。情報は、符号化オーディオ及び視覚データの提示に関するタイムスタンプ、及びデータストリーム自体の配信に関するタイムスタンプを用いてシンタックス内に符号化してよい。
【0228】
字幕がストリームに含まれる場合、字幕デコーダ3210は、字幕を復号し、それをビデオフレーム及びオーディオフレームと同期化させ、ビデオ/オーディオ/字幕をビデオ/オーディオ/字幕ディスプレイ3216に供給する。
【0229】
本発明は、上述のシステムに限定されず、上述の実施形態におけるピクチャ符号化装置又はピクチャ復号装置のいずれも、他のシステム、例えば車両システムに組み込むことができる。
【0230】
本開示によると、説明された方法及び処理は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実装されてよい。ソフトウェアで実装されるとき、方法又は処理は、コンピュータ可読媒体に格納されハードウェア処理ユニットにより実行される命令又はプログラムコードにより実行されてよい。
【0231】
提案された方法は、各成分の中のサンプル毎に利用可能性情報を格納するので、イントラ予測処理において利用可能性情報をより正確に提供できる。
【0232】
例により、限定ではなく、コンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM、又は他の光ディスク記憶、磁気ディスク記憶、又は他の磁気記憶装置、フラッシュメモリ、又は所望のプログラムコードを命令又はデータ構造の形式で格納するために使用できコンピュータによりアクセスできる任意の他の媒体を含み得る。また、任意の接続は、適正にコンピュータ可読媒体と呼ばれる。例えば命令がウェブサイト、サーバ、又は他のリモートソースから、同軸ケーブル、光ファイバケーブル、より対線、デジタル加入者線(digital subscriber line (DSL))、又は赤外線、無線、及びマイクロ波のような無線技術を用いて送信される場合、同軸ケーブル、光ファイバケーブル、より対線、DSL、又は赤外線、無線、及びマイクロ波のような無線技術は、媒体の定義に含まれる。しかしながら、理解されるべきことに、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とする。ディスク(disk)及びディクス(disc)は、ここで使用されるとき、コンパクトディスク(compact disc (CD))、レーザディスク、光ディスク、デジタルバーサタイルディスク(digital versatile disc (DVD))、フロッピーディスク、及びブルーレイディスクを含み、ディスク(disk)は通常データを磁気的に再生し、ディスク(disc)はデータをレーザにより光学的に再生する。前述の結合も、コンピュータ可読媒体の範囲に含まれるべきである。
【0233】
命令又はプログラムコードは、1つ以上のデジタル信号プロセッサ(digital signal processor (DSP))、汎用マイクロプロセッサ、特定用途向け集積回路(application specific integrated circuit (ASIC))、フィールドプログラマブルロジックアレイ(field programmable logic array (FPGA))、又は他の等価な集積又は個別論理回路、のような1つ以上のプロセッサにより実行されてよい。従って、用語「プロセッサ」は、ここで使用されるとき、前述の構造のうちのいずれか、又はここに記載される技術の実装に適する任意の他の構造を表してよい。更に、幾つかの態様では、ここに説明された機能は、符号化及び復号又は結合されたコーデックに組み込まれるために構成される専用ハードウェア及び/又はソフトウェアモジュール内で提供されてよい。更に、技術は、全部、1つ以上の回路又は論理素子で実装され得る。
【0234】
本開示の技術は、無線ハンドセット、集積回路(integrated circuit (IC))、又はICのセット(例えば、チップセット)を含む広範な種類の装置又は機器の中で実装されてよい。種々のコンポーネント、モジュール、又はユニットは、開示の技術を実行するよう構成される装置の機能的側面を強調するために、本開示で説明されたが、異なるハードウェアユニットによる達成を必ずしも要求しない。むしろ、上述のように、種々のユニットは、適切なソフトウェア及び/又はファームウェアと組み合わせて、コーデックハードウェアユニット内で結合され、又は上述のような1つ以上のプロセッサを含む相互運用ハードウェアユニットの集合により提供されてよい。
【0235】
幾つかの実施形態が本開示において提供されたが、開示のシステム及び方法は、本開示の精神又は範囲から逸脱することなく、多くの他の特定の形式で実施され得ることが理解されるべきである。本発明の例は、説明のためであり限定的ではないと考えられるべきであり、ここに与えられた詳細事項に限定されることを意図しない。例えば、種々の要素又はコンポーネントは、結合され、又は別のシステムに統合されてよく、或いは、特定の機能は、省略され又は実施されなくてよい。
【0236】
更に、個別又は別個の種々の実施形態において説明され示された技術、システム、サブシステム、及び方法は、本開示の範囲から逸脱することなく、他のシステム、モジュール、技術、又は方法と結合され又は統合されてよい。互いに接続され又は直接接続され又は通信するとして示され又は議論された他のアイテムは、電気的、機械的、又はその他にかかわらず、間接的に接続され又は何らかのインタフェース、装置、又は中間コンポーネントを通じて通信してよい。変更、代用、及び改造の他の例は、当業者により確認され、ここに開示した精神及び範囲から逸脱することなく行われ得る。
【符号の説明】
【0237】
12 ソース装置
14 宛先装置
18 ビデオソース
20 ビデオエンコーダ
22 出力インタフェース
28 入力インタフェース
30 ビデオデコーダ
32 ディスプレイ装置