(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-11
(45)【発行日】2024-10-22
(54)【発明の名称】行列ベースのイントラ予測と二次変換コア選択を調和させるエンコーダ、デコーダ、および対応する方法
(51)【国際特許分類】
H04N 19/12 20140101AFI20241015BHJP
H04N 19/159 20140101ALI20241015BHJP
H04N 19/176 20140101ALI20241015BHJP
【FI】
H04N19/12
H04N19/159
H04N19/176
【外国語出願】
(21)【出願番号】P 2023133101
(22)【出願日】2023-08-17
(62)【分割の表示】P 2021561739の分割
【原出願日】2020-04-15
【審査請求日】2023-09-11
(32)【優先日】2019-04-17
(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)【発明者】
【氏名】ワン,ビァオ
(72)【発明者】
【氏名】コトラ,アナンド メヘル
(72)【発明者】
【氏名】チェン,ジェンレェ
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2020/211807(WO,A1)
【文献】国際公開第2020/213946(WO,A1)
【文献】国際公開第2020/213945(WO,A1)
【文献】国際公開第2020/213944(WO,A1)
【文献】国際公開第2020/213677(WO,A1)
【文献】国際公開第2020/207493(WO,A1)
【文献】Moonmo Koo, et al.,CE6: Reduced Secondary Transform (RST) (CE6-3.1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0193,14th Meeting: Geneva, CH,2019年03月,pp.1-19
【文献】Moonmo Koo, et al.,CE6: Reduced Secondary Transform (RST) (CE6-3.1),Spec_text_CE6-3.1d.docx,JVET-N0193 (version 5),2019年03月,pp.1-21,https://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N0193-v5.zip
【文献】Jonathan Pfaff, et al.,CE3: Affine linear weighted intra prediction (CE3-4.1, CE3-4.2),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0217,14th Meeting: Geneva, CH,2019年03月,pp.1-17
【文献】Benjamin Bross, Jianle Chen, Shan Liu, and Ye-Kui Wang,Versatile Video Coding (Draft 8),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-Q2001 (version 15),17th Meeting: Brussels, BE,2020年03月12日,pp.70-75,157-163
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
デコード装置
またはエンコード装置によって実装されるコーディング方法であって:
現在ブロックのイントラ予測モードを決定する段階であって、現在ブロックのサイズは16×48である、段階と;
現在ブロックについて決定された前記イントラ予測モードに基づいて、現在ブロックの非分離型の二次変換NSSTの選択を決定するステップを含み、
前記イントラ予測モードが0未満であるときは、非分離型の二次変換コア・セットが1に設定され、
前記イントラ予測モードが0または1であるときは、非分離型の二次変換コア・セットが0に設定され、
前記イントラ予測モードが2以上12以下であるときは、非分離型の二次変換コア・セットが1に設定され、
前記イントラ予測モードが13以上23以下であるときは、非分離型の二次変換コア・セットが2に設定され、
前記イントラ予測モードが24以上44以下であるときは、非分離型の二次変換コア・セットが3に設定され、
前記イントラ予測モードが45以上55以下であるときは、非分離型の二次変換コア・セットが2に設定され、または
前記イントラ予測モードが56以上であるときは、非分離型の二次変換コア・セットが1に設定され、
前記非分離型の二次変換コア・セットが0であるとき、前記非分離型の二次変換コアは
【数1】
であり;
前記非分離型の二次変換コア・セットが1であるとき、前記非分離型の二次変換コアは
【数2】
であり;
前記非分離型の二次変換コア・セットが2であるとき、前記非分離型の二次変換コアは
【数3】
であり;
前記非分離型の二次変換コア・セットが3であるとき、前記非分離型の二次変換コアは
【数4】
である、
方法。
【請求項2】
現在ブロックがMIP(行列ベースのイントラ予測)モードを使って予測されない場合、現在ブロックの前記非分離型の二次変換のための前記非分離型の二次変換コアを選択し、前記MIPは平均、行列ベクトル乗算および線形補間の段階を含む、請求項1に記載の方法。
【請求項3】
当該方法がさらに:
現在ブロックがMIPモードを使って予測される場合、現在ブロックの非分離型の二次変換を無効にすることを含む、
請求項1または2に記載の方法。
【請求項4】
現在ブロックの非分離型の二次変換を無効にすることが:
現在ブロックについての非分離型の二次変換指示情報の値をデフォルト値に設定することを含む、
請求項3に記載の方法。
【請求項5】
現在ブロックがMIPモードを使って予測されるか否かがMIP指示情報の値によって指示される、請求項
2ないし4のうちいずれか一項に記載の方法。
【請求項6】
現在ブロックの行列ベースのイントラ予測(MIP)モード・インデックスおよび現在ブロックのサイズに従って、現在ブロックのイントラ予測モード・インデックスを取得する段階と;
現在ブロックの前記イントラ予測モード・インデックスに基づいて現在ブロックの非分離型の二次変換についての非分離型の二次変換コアを選択する段階とを含む、
請求項1に記載の方法。
【請求項7】
現在ブロックの前記イントラ予測モード・インデックスが、前記MIPモード・インデックス、現在ブロックのサイズの間のマッピング関係に従って得られ、前記マッピング関係はあらかじめ定義されたテーブルに従って示される、請求項6に記載の方法。
【請求項8】
コンピュータに請求項1ないし7のうちいずれか一項に記載の方法を実行させるためのコンピュータ・プログラム。
【請求項9】
デコーダであって、
現在ブロックのイントラ予測モードを決定するように構成された決定ユニットであって、現在ブロックのサイズは16×48である、決定ユニットと;
現在ブロックについて決定された前記イントラ予測モードに基づいて、現在ブロックの非分離型の二次変換NSSTの選択を決定するように構成された選択ユニットとを含み、
前記イントラ予測モードが0未満であるときは、非分離型の二次変換コア・セットが1に設定され、
前記イントラ予測モードが0または1であるときは、非分離型の二次変換コア・セットが0に設定され、
前記イントラ予測モードが2以上12以下であるときは、非分離型の二次変換コア・セットが1に設定され、
前記イントラ予測モードが13以上23以下であるときは、非分離型の二次変換コア・セットが2に設定され、
前記イントラ予測モードが24以上44以下であるときは、非分離型の二次変換コア・セットが3に設定され、
前記イントラ予測モードが45以上55以下であるときは、非分離型の二次変換コア・セットが2に設定され、または
前記イントラ予測モードが56以上であるときは、非分離型の二次変換コア・セットが1に設定され、
前記非分離型の二次変換コア・セットが0であるとき、前記非分離型の二次変換コアは
【数5】
であり;
前記非分離型の二次変換コア・セットが1であるとき、前記非分離型の二次変換コアは
【数6】
であり;
前記非分離型の二次変換コア・セットが2であるとき、前記非分離型の二次変換コアは
【数7】
であり;
前記非分離型の二次変換コア・セットが3であるとき、前記非分離型の二次変換コアは
【数8】
である、
デコーダ。
【請求項10】
現在ブロックがMIP(行列ベースのイントラ予測)モードを使って予測されない場合、現在ブロックの前記非分離型の二次変換のための前記非分離型の二次変換コアを選択し、前記MIPは平均、行列・ベクトル乗算および線形補間の段階を含む、請求項9に記載のデコーダ。
【請求項11】
当該デコーダがさらに:
現在ブロックがMIPモードを使って予測される場合、現在ブロックの非分離型の二次変換を無効にするように構成されている、
請求項9または10に記載のデコーダ。
【請求項12】
現在ブロックの非分離型の二次変換を無効にすることが:
現在ブロックについての非分離型の二次変換指示情報の値をデフォルト値に設定することを含む、
請求項11に記載のデコーダ。
【請求項13】
現在ブロックがMIPモードを使って予測されるか否かがMIP指示情報の値によって指示される、請求項10ないし12のうちいずれか一項に記載のデコーダ。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本特許出願は、2019年4月17日に出願された米国仮特許出願第62/835,487号の優先権を主張する。前述の特許出願の開示は、その全体が参照により本明細書に組み込まれる。
【0002】
技術分野
本出願(開示)の実施形態は、概して、ピクチャー処理の分野に関し、より具体的には、イントラ予測に関する。
【背景技術】
【0003】
ビデオコーディング(ビデオ・エンコードおよびデコード)は、広範囲のデジタルビデオアプリケーション、たとえば、放送デジタルTV、インターネットおよびモバイルネットワークを通じたビデオ伝送、ビデオチャット、ビデオ会議のようなリアルタイムの会話アプリケーション、DVDおよびブルーレイディスク、ビデオコンテンツの収集および編集システム、ならびにセキュリティアプリケーションのビデオカメラに使用される。
【0004】
比較的短いビデオを描写するために必要とされるビデオ・データの量でさえ、かなりになることがあり、そのことは、データがストリーミングされるか、または限られた帯域幅容量をもつ通信ネットワークを通じて他の仕方で通信される場合に、困難を生じる可能性がある。よって、ビデオ・データは、一般に、現代の遠隔通信ネットワークを通じて通信される前に圧縮される。メモリ資源が制限される可能性があるため、ビデオが記憶装置に記憶される場合には、ビデオのサイズも問題となる可能性がある。ビデオ圧縮装置は、しばしば、伝送または記憶の前にビデオ・データをコーディングするために源においてソフトウェアおよび/またはハードウェアを使用し、それによりデジタルビデオ画像を表わすのに必要とされるデータの量を減少させる。次いで、圧縮されたデータは、ビデオ・データをデコードするビデオ圧縮解除装置によって宛先で受領される。限られたネットワーク資源およびますます増大する、より高いビデオ品質の要求のため、ピクチャー品質の犠牲がほとんどまたは全くない、圧縮比を改善する改良された圧縮および圧縮解除技術が望ましい。
【発明の概要】
【0005】
本開示は、上述の問題を緩和または解決しようと試みる。
【0006】
本願の実施形態は、独立請求項に従ってエンコードおよびデコードするための装置および方法を提供する。
【0007】
本開示は、現在ブロックのイントラ予測モードを決定するステップと;現在ブロックについて決定されたイントラ予測モードに基づいて、現在ブロックの二次変換の選択を決定するステップとを含む、デコード装置またはエンコード装置によって実装されるコーディング方法を開示する。
【0008】
このように、本開示の方法は、現在ブロックのイントラ予測モードを決定し、決定されたイントラ予測モードに基づいて、現在ブロックの二次変換を実行するかどうか、およびどのように実行するかを決定する。
【0009】
上述の方法では、現在ブロックの二次変換のための二次変換コアの選択を決定することは、現在ブロックのイントラ予測モード・インデックスに基づいてもよい。
【0010】
上述の方法では、現在ブロックがMIP、行列ベースのイントラ予測(Matrix-based Intra Prediction)、モードを使用して予測されない場合、現在ブロックの二次変換のために二次変換コアが選択されてもよい。
【0011】
このように、MIPモードを使用してイントラ予測ブロックが予測される場合、たとえば、MIPフラグの値が、ブロックがMIPモードを使用して予測されるか否かを示すために使用されてもよく、二次変換は、このイントラ予測ブロックについては無効にされる、換言すれば、二次変換インデックスの値が0に設定されるか、または二次変換インデックスがビットストリームからデコードされる必要がない。
【0012】
このように、二次変換コア選択の意味で、MIPツールとRSTツールの調和が達成される。
【0013】
上述の方法は、さらに:現在ブロックがMIPモードを使用して予測されるときに、現在ブロックの二次変換を無効にすることを含んでいてもよい。
【0014】
上述の方法において、現在ブロックの二次変換を無効にすることは、現在ブロックについての二次変換指示情報の値をデフォルト値に設定することを含んでいてもよい。
【0015】
上述の方法において、現在ブロックがMIPモードを使用して予測されるか否かは、MIP指示情報の値に従って示されてもよい。
【0016】
上述の方法において、現在ブロックがMIPモードを使用して予測されない場合、二次変換は、次の表に従って選択されてもよい。
【表1】
ここで:
sps_lfnst_enabled_flagが1に等しいことは、lfnst_idxがイントラコーディング単位シンタックスにおいて存在しうることを指定し、sps_lfnst_enabled_fagが0に等しいことは、lfnst_idxがイントラコーディング単位シンタックスにおいて存在しないことを指定する;
intra_mip_flag[x0][y0]が1に等しいことは、ルーマ・サンプルについてのイントラ予測タイプが行列ベースのイントラ予測であることを指定する。intra_mip_flag[x0][y0]が0に等しいことは、ルーマ・サンプルについてのイントラ予測タイプが行列ベースのイントラ予測ではないことを指定する;intra_mip_flag[x0][y0]が存在しない場合は、0に等しいと推定される;
lfnst_idxは、選択された変換セット内の2つの低周波非分離型変換カーネルのうちの1つが使用されるかどうか、どちらが使用されるかを指定する。lfnst_idxが0に等しいことは、低周波非分離型変換が現在コーディング単位において使用されないことを指定する。lfnst_idxが存在しない場合は、0に等しいと推定される;
transform_skip_flag[x0][y0][cIdx]は、関連する変換ブロックに変換が適用されるかどうかを指定する。
【0017】
上述の方法は、さらに:現在ブロックの行列ベースのイントラ予測、MIP、モード・インデックスおよび現在ブロックのサイズに従って現在ブロックのイントラ予測モード・インデックスを取得するステップと;現在ブロックのイントラ予測モード・インデックスに基づいて現在ブロックの二次変換のための二次変換コアを選択するステップとを含んでいてもよい。
【0018】
このように、二次変換の変換コア選択のプロセスの間に、ブロックがMIPモードを使用して予測される場合、二次変換コア・セットの一つがこのブロックのために使用されると考えられる。
【0019】
上述の方法において、現在ブロックのイントラ予測モード・インデックスは、MIPモード・インデックス、現在ブロックのサイズの間のマッピング関係に従って得られてもよく、マッピング関係は、あらかじめ定義されたテーブルに従って示されてもよい。
【0020】
上述の方法は、さらに、現在ブロックが行列ベースのイントラ予測、MIP、モードを使用して予測される場合、現在ブロックの二次変換のために二次変換コアを使用することを含んでいてもよい。
【0021】
上述の方法において、二次変換コアは、非MIPモードのために使用される二次変換コアの1つであってもよい。
【0022】
上述の方法において、二次変換コアは、非MIPモードのために使用される二次変換コアのいずれとも異なっていてもよい。
【0023】
上述の方法において、現在ブロックがMIPモードを使用して予測される場合、ルックアップテーブルが、MIPモード・インデックスを通常のイントラモード・インデックスにマッピングするために使用されてもよく、前記二次変換コア・セットは、この通常のイントラモード・インデックスに基づいて選択されてもよい。
【0024】
上述の方法では、MIPモード・インデックスは、次の表に基づいて通常のイントラモード・インデックスにマッピングされてもよい:
【表2】
ここで、前記二次変換セットの選択は、次の表に従って実行されてもよい:
【表3】
【0025】
上記の方法は、さらに:それぞれ変換コア・セット・インデックス0、1、2、3を有する4つの変換コア・セットを提供するステップであって、前記4つの変換コア・セットの各変換コア・セットは、2つの変換を含むことができる、ステップと;変換コア・セット・インデックス4を有する第5の変換コア・セットを提供するステップであって、前記第5の変換コア・セットは、コア・セット・インデックス0~3を有する変換コア・セットと同じ次元をもち、前記第5の変換コア・セットは、MIPモードについての同じ機械学習方法および入力トレーニング・セットに基づいて新たにトレーニングされる、ステップと;現在ブロックのイントラ予測モードに従って、現在ブロックに適用される前記5つの変換コア・セットの前記変換コア・セットを決定することによって、RST、縮小二次変換(reduced secondary transform)、行列を次のようにして選択するステップとを含んでいてもよい:現在イントラブロックが、CCLM、成分横断線形モデル(Cross-Component Linear Model)、モードを使って予測される場合は、変換コア・セット・インデックス0を有する変換コア・セットを選択し;現在イントラブロックが、MIPモードを使って予測される場合は、変換コア・セット・インデックス4を有する変換コア・セットを選択し;それ以外の場合は、現在ブロックのイントラ予測モード・インデックスの値および次の表を使用して、前記変換コア・セットを選択する:
【表4】
【0026】
記載される方法は、さらに:それぞれ変換コア・セット・インデックス0、1、2、3を有する4つの変換コア・セットを提供するステップであって、前記4つの変換コア・セットの各変換コア・セットは、2つの変換を含むことができる、ステップと;変換コア・セット・インデックス4を有する第5の変換コア・セットを提供するステップであって、前記第5の変換コア・セットは、コア・セット・インデックス0~3を有する変換コア・セットと同じ次元をもち、前記第5の変換コア・セットは、MIPモードについての同じ機械学習方法および入力トレーニング・セットに基づいて新たにトレーニングされる、ステップと;現在ブロックのイントラ予測モードに従って、現在ブロックに適用される前記5つの変換コア・セットの前記変換コア・セットを決定することによって、RST、縮小二次変換(reduced secondary transform)、行列を次のようにして選択するステップとを含んでいてもよい:現在イントラブロックが、CCLM、成分横断線形モデル(Cross-Component Linear Model)、モードを使って予測される場合は、変換コア・セット・インデックス0を有する変換コア・セットを選択し;現在イントラブロックが、MIPモードを使って予測される場合は、変換コア・セット・インデックス4を有する変換コア・セットを選択し;それ以外の場合は、現在ブロックのイントラ予測モード・インデックスの値および次の表を使用して、前記変換コア・セットを選択する:
【表5】
【0027】
このように、二次変換の変換コア選択のプロセスの間に、ブロックがMIPモードを使用して予測される場合、トレーニングされた二次変換コア・セットがこのブロックのために使用されると考えられる。トレーニングされた二次変換コア・セットは、上記の例における変換コア・セットとは異なっていてもよい。
【0028】
本開示は、さらに、エンコード装置によって実装された場合に、上記の方法を実行するための処理回路を備えるエンコーダを提供する。
【0029】
本開示は、さらに、デコード装置によって実装された場合に、上記の方法を実行するための処理回路を備えるデコーダを提供する。
【0030】
本開示は、さらに、上記の方法を実行するためのプログラム・コードを含むコンピュータ・プログラム・プロダクトを提供する。
【0031】
本開示は、さらに、一つまたは複数のプロセッサと、前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを記憶している非一時的なコンピュータ読み取り可能な記憶媒体とを備えるデコーダを提供する。ここで、前記プログラミングは、前記プロセッサによって実行されると、前記デコーダを、デコード装置によって実装されるときに上記の方法を実行するように構成する。
【0032】
本開示は、さらに、一つまたは複数のプロセッサと、前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを記憶している非一時的なコンピュータ読み取り可能な記憶媒体とを備えるエンコーダを提供する。ここで、前記プログラミングは、前記プロセッサによって実行されると、前記エンコーダを、エンコード装置によって実装されるときに上記の方法を実行するように構成する。
【0033】
本開示は、さらに、現在ブロックのイントラ予測モードを決定するように構成された決定ユニットと;現在ブロックについて決定されたイントラ予測モードに基づいて、現在ブロックの二次変換の選択を決定するように構成された選択ユニットとを有するデコーダを提供する。
【0034】
本開示は、さらに、現在ブロックのイントラ予測モードを決定するように構成された決定ユニットと;現在ブロックについて決定されたイントラ予測モードに基づいて、現在ブロックの二次変換の選択を決定するように構成された選択ユニットとを有するエンコーダを提供する。
【0035】
上記および他の目的は、独立請求項の主題事項によって達成される。さらなる実装は、従属請求項、明細書および図面から明白である。
【0036】
本発明の第1の側面による方法は、本発明の第3の側面による装置によって実行できる。本発明の第3の側面による方法のさらなる特徴および実装形態は、本発明の第1の側面による装置の特徴および実装形態に対応する。
【0037】
本発明の第2の側面による方法は、本発明の第4の側面による装置によって実行できる。本発明の第4の側面による方法のさらなる特徴および実装形態は、本発明の第2の側面による装置の特徴および実装形態に対応する。
【0038】
第5の側面によれば、本発明は、ビデオ・ストリームをデコードする装置に関し、プロセッサおよびメモリを含む。メモリは、プロセッサに第1の側面による方法を実行させる命令を記憶している。
【0039】
第6の側面によれば、本発明は、ビデオ・ストリームをエンコードする装置に関し、プロセッサおよびメモリを含む。メモリは、プロセッサに第2の側面による方法を実行させる命令を記憶している。
【0040】
第7の側面によれば、実行されたときに、構成された一つまたは複数のプロセッサにビデオ・データをコーディングさせる命令を記憶しているコンピュータ読み取り可能な記憶媒体が提案される。命令は、前記一つまたは複数のプロセッサに、第1の側面もしくは第2の側面または第1の側面もしくは第2の側面の任意の可能な実施形態による方法を実行させる。
【0041】
第8の側面によれば、本発明は、コンピュータ上で実行されたときに、第1の側面もしくは第2の側面、または第1の側面もしくは第2の側面の任意の可能な実施形態に従って方法を実行するためのプログラム・コードを含むコンピュータ・プログラムに関する。
【0042】
一つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、明細書、図面、および特許請求の範囲から明白であろう。
【図面の簡単な説明】
【0043】
下記では、本発明の実施形態が、添付の図面および図を参照して、より詳細に説明される。
【
図1A】本発明の実施形態を実装するように構成されたビデオコーディングシステムの例を示すブロック図である。
【
図1B】本発明の実施形態を実装するように構成されたビデオコーディングシステムの別の例を示すブロック図である。
【
図2】本発明の実施形態を実装するように構成されたビデオ・エンコーダの例を示すブロック図である。
【
図3】本発明の実施形態を実装するように構成されたビデオ・デコーダの例示的な構造を示すブロック図である;
【
図4】エンコード装置またはデコード装置の例を示すブロック図である。
【
図5】エンコード装置またはデコード装置の別の例を示すブロック図である。
【
図6】4×4ブロックについてのMIPモード行列乗算の例を示すブロック図である。
【
図7】8×8ブロックについてのMIPモード行列乗算の例を示すブロック図である。
【
図8】8×4ブロックについてのMIPモード行列乗算の例を示すブロック図である。
【
図9】16×16ブロックについてのMIPモード行列乗算の例を示すブロック図である。
【
図10】例示的な二次変換プロセスを示すブロック図である。
【
図11】エンコードおよびデコード装置の例示的な二次変換コア乗算プロセスを示すブロック図である。
【
図12】16×64から16×48への例示的な二次変換コア次元の低減を示すブロック図である。
【
図13】近傍ブロックの位置に基づく例示的なMIP MPM再構成を示すブロック図である。
【
図14】近傍ブロックの位置に基づく別の例示的なMIP MPM再構成を示すブロック図である。
【
図15】本開示による、デコード装置またはエンコード装置によって実装される方法を示す。
【
図18】コンテンツ配信サービスを実現するコンテンツ供給システム3100の例示的な構造を示すブロック図である。
【
図19】端末装置の一例の構造を示すブロック図である。
【0044】
下記では、同一の参照符号は、そうでないことが明示的に指定されていない場合は、同一のまたは少なくとも機能的に等価な特徴を指す。
【発明を実施するための形態】
【0045】
以下の説明では、本開示の一部をなし、本発明の実施形態の具体的な側面または本発明の実施形態が使用されうる具体的な側面を例として示す添付の図面が参照される。本発明の実施形態は、他の側面で使用されてもよく、図に示されていない構造的または論理的変更を含みうることが理解される。よって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。
【0046】
たとえば、記載された方法に関連する開示は、当該方法を実行するように構成された対応する装置またはシステムについても真であることがあり、その逆もありうることが理解される。たとえば、一つまたは複数の特定の方法ステップが記載されている場合、対応する装置は、記載された一つまたは複数の方法ステップ(たとえば、一つまたは複数のステップを実行する1つのユニット、または複数のステップの一つ以上をそれぞれが実行する複数のユニット)を実行するための一つまたは複数のユニット、たとえば機能ユニットを、たとえそのような一つまたは複数のユニットが明示的に記載または図示されていなくても、含んでいてもよい。他方、たとえば、一つまたは複数のユニット、たとえば、機能ユニットに基づいて特定の装置が記載される場合、対応する方法は、一つまたは複数のユニットの機能を実行するための1つのステップ(たとえば、前記一つまたは複数のユニットの機能を実行する1つのステップ、または複数のユニットのうちの一つまたは複数の機能をそれぞれ実行する複数のステップ)を、たとえそのような一つまたは複数のステップが明示的に記載または図示されていなくても、含んでいてもよい。さらに、本明細書に記載されるさまざまな例示的な実施形態および/または側面の特徴は、特に断りのない限り、互いに組み合わされてもよいことができることが理解される。
【0047】
ビデオコーディングは、典型的には、ビデオまたはビデオ・シーケンスを形成するピクチャーのシーケンスの処理をいう。「ピクチャー」という用語の代わりに、「フレーム」または「画像」という用語が、ビデオコーディングの分野では同義語として使用されることがある。ビデオコーディング(または、コーディング全般)は、ビデオ・エンコードおよびビデオ・デコードという2つの部分を有する。ビデオ・エンコードは、源側で実行され、典型的には、(より効率的な記憶および/または伝送のために)ビデオ・ピクチャーを表現するのに必要なデータ量を減らすために、もとのビデオ・ピクチャーを(たとえば、圧縮によって)処理することを含む。ビデオ・デコードは、宛先側で実行され、典型的には、ビデオ・ピクチャーを再構成するために、エンコーダと比較して逆の処理を含む。ビデオ・ピクチャー(または、ピクチャー全般)の「コーディング」に言及する実施形態は、ビデオ・ピクチャーまたはそれぞれのビデオ・シーケンスの「エンコード」または「デコード」に関連するものと理解される。エンコード部分とデコード部分の組み合わせは、コーデック(コーディングおよびデコーディング)とも呼ばれる。
【0048】
損失のないビデオコーディングの場合、もとのビデオ・ピクチャーが再構成できる。すなわち、再構成されたビデオ・ピクチャーは、もとのビデオ・ピクチャーと同じ品質をもつ(記憶または伝送の間に伝送損失またはその他のデータ損失がないとする)。損失のあるビデオコーディングの場合、ビデオ・ピクチャーを表わすデータの量を減らすために、たとえば量子化によるさらなる圧縮が実行され、これはデコーダにおいて完全に再構成されることができない。すなわち、再構成されたビデオ・ピクチャーの品質は、もとのビデオ・ピクチャーの品質に比べ低いまたは悪い。
【0049】
いくつかのビデオコーディング標準は、「損失のあるハイブリッド・ビデオ・コーデック」のグループに属する(すなわち、サンプル領域における空間的および時間的予測と、変換領域における量子化を適用するための2D変換コーディングを組み合わせる)。ビデオ・シーケンスの各ピクチャーは、典型的には、重複しないブロックの集合に分割され、コーディングは典型的にはブロック・レベルで実行される。換言すれば、エンコーダでは、ビデオは、典型的には、ブロック(ビデオ・ブロック)レベルで処理、すなわち、エンコードされる。これはたとえば、空間的(ピクチャー内)予測および/または時間的(ピクチャー間)予測を使用して予測ブロックを生成し、現在のブロック(現在処理されている/処理されるべきブロック)から予測ブロックを減算して残差ブロックを取得し、残差ブロックを変換し、変換領域において残差ブロックを量子化して、送信されるべきデータ量を低減すること(圧縮)による。一方、デコーダでは、エンコーダに比べ逆の処理が、エンコードされたまたは圧縮されたブロックに適用されて、表現のために現在のブロックを再構成する。さらに、エンコーダはデコーダ処理ループを複製し、両者が同一の予測(たとえばイントラ予測およびインター予測)および/または再構成を、処理、すなわち、その後のブロックのコーディングのために、生成する。
【0050】
ビデオコーディングシステム10の以下の実施形態では、
図1~
図3に基づいて、ビデオ・エンコーダ20およびビデオ・デコーダ30が記述される。
【0051】
図1Aは、本願の技術を利用することができる例示的なコーディングシステム10、たとえばビデオコーディングシステム10(または略してコーディングシステム10)を示す概略ブロック図である。ビデオコーディングシステム10のビデオ・エンコーダ20(または略してエンコーダ20)およびビデオ・デコーダ30(または略してデコーダ30)は、本願に記載されるさまざまな例による技術を実行するように構成されうる装置の例を表わす。
【0052】
図1Aに示されるように、コーディングシステム10は、エンコードされたピクチャー・データ21を、たとえば該エンコードされたピクチャー・データ13をデコードする宛先装置14に提供するように構成された源装置12を有する。源装置12は、エンコーダ20を有し、追加的すなわち任意的に、ピクチャー源16、プリプロセッサ(または前処理ユニット)18、たとえばピクチャー・プリプロセッサ18、および通信インターフェースもしくは通信ユニット22を有していてもよい。
【0053】
ピクチャー源16は、任意の種類のピクチャー捕捉装置、たとえば、実世界ピクチャーを捕捉するためのカメラ、および/または任意の種類のピクチャー生成装置、たとえば、コンピュータ・アニメーション化されたピクチャーを生成するためのコンピュータ・グラフィックス・プロセッサ、または、実世界ピクチャー、コンピュータ生成されたピクチャー(たとえば、スクリーン・コンテンツ、仮想現実(VR)ピクチャー)、および/またはそれらの任意の組み合わせ(たとえば、拡張現実(AR)ピクチャー)を取得および/または提供するための任意の種類の他の装置を有するか、またはそのようなものであってよい。ピクチャー源は、上記のピクチャーのいずれかを記憶する任意の種類のメモリまたは記憶であってもよい。
【0054】
プリプロセッサ18および前処理ユニット18によって実行される処理と区別して、ピクチャーまたはピクチャー・データ17は、生ピクチャーまたは生ピクチャー・データ17と称されてもよい。
【0055】
プリプロセッサ18は、(生)ピクチャー・データ17を受け取り、ピクチャー・データ17に対して前処理を実行し、前処理されたピクチャー19または前処理されたピクチャー・データ19を得るように構成される。プリプロセッサ18によって実行される前処理は、たとえば、トリミング、色フォーマット変換(たとえば、RGBからYCbCrへ)、色補正、またはノイズ除去を含んでいてもよい。前処理ユニット18は、任意的な構成要素であってもよいことが理解できる。
【0056】
ビデオ・エンコーダ20は、前処理されたピクチャー・データ19を受領し、エンコードされたピクチャー・データ21を提供するように構成される(さらなる詳細は、たとえば
図2に基づいて後述する)。
【0057】
源装置12の通信インターフェース22は、エンコードされたピクチャー・データ21を受領し、エンコードされたピクチャー・データ21(またはその任意のさらなる処理バージョン)を、通信チャネル13を通じて、別の装置、たとえば宛先装置14または任意の他の装置に、記憶または直接再構成のために送信するように構成されてもよい。
【0058】
宛先装置14は、デコーダ30(たとえば、ビデオ・デコーダ30)を有しており、追加的すなわち任意的に、通信インターフェースまたは通信ユニット28、ポストプロセッサ32(または後処理ユニット32)、および表示装置34を有していてもよい。
【0059】
宛先装置14の通信インターフェース28は、エンコードされたピクチャー・データ21(またはそのさらなる処理されたバージョン)を、たとえば源装置12から直接、または他の任意の源、たとえば記憶装置、たとえばエンコード・ピクチャー・データ記憶装置から受領し、エンコードされたピクチャー・データ21をデコーダ30に提供するように構成される。
【0060】
通信インターフェース22および通信インターフェース28は、源装置12と宛先装置14との間の直接通信リンク、たとえば直接的な有線もしくは無線接続を介して、または任意の種類のネットワーク、たとえば有線もしくは無線ネットワークもしくはそれらの任意の組み合わせ、または任意の種類の私的および公的ネットワーク、またはそれらの任意の種類の組み合わせを介して、エンコードされたピクチャー・データ21またはエンコードされたデータ13を送信または受信するように構成されてもよい。
【0061】
通信インターフェース22は、たとえば、エンコードされたピクチャー・データ21を適切なフォーマット、たとえば、パケットにパッケージ化し、および/またはエンコードされたピクチャー・データを通信リンクもしくは通信ネットワークを通じた伝送のための任意の種類の伝送エンコードもしくは処理を用いて処理するように構成されてもよい。
【0062】
通信インターフェース22の相手をなす通信インターフェース28は、たとえば、送信されたデータを受信し、任意の種類の対応する伝送デコードもしくは処理および/またはパッケージ化解除を用いて伝送データを処理して、エンコードされたピクチャー・データ21を得るように構成されてもよい。
【0063】
通信インターフェース22および通信インターフェース28の両方は、
図1Aにおいて源装置12から宛先装置14を指す通信チャネル13についての矢印によって示されるような一方向通信インターフェース、または双方向通信インターフェースとして構成されることができ、たとえば、メッセージを送信および受信するように構成されてもよい。たとえば接続をセットアップするため、通信リンクおよび/またはデータ伝送、たとえばエンコードされたピクチャー・データ伝送に関連する任意の他の情報を受け取り確認および交換するためである。
【0064】
デコーダ30は、エンコードされたピクチャー・データ21を受信し、デコードされたピクチャー・データ31またはデコードされたピクチャー31を提供するように構成される(さらなる詳細は、たとえば
図3または
図5に基づいて後述する)。
【0065】
宛先装置14のポストプロセッサ32は、デコードされたピクチャー・データ31(再構成されたピクチャー・データとも呼ばれる)、たとえばデコードされたピクチャー31を後処理して、後処理されたピクチャー・データ33、たとえば後処理されたピクチャー33を得るように構成される。後処理ユニット32によって実行される後処理は、たとえば、色フォーマット変換(たとえば、YCbCrからRGBへ)、色補正、トリミング、または再サンプリング、または、たとえばデコードされたピクチャー・データ31を、たとえば表示装置34による、表示のために準備するための任意の他の処理を含むことができる。
【0066】
宛先装置14の表示装置34は、ピクチャーを、たとえばユーザーまたは閲覧者に対して表示するために、後処理されたピクチャー・データ33を受領するように構成される。表示装置34は、再構成されたピクチャーを表現するための任意の種類のディスプレイ、たとえば、統合されたまたは外部のディスプレイまたはモニターであってもよく、またはそれを含んでいてもよい。ディスプレイは、たとえば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクター、マイクロLEDディスプレイ、液晶オン・シリコン(LCoS)、デジタル光プロセッサ(DLP)、または任意の他の種類のディスプレイを含みうる。
【0067】
図1Aは、源装置12および宛先装置14を別個の装置として描いているが、装置の実施形態は、両方もしくは両方の機能、源装置12もしくは対応する機能および宛先装置14もしくは対応する機能を含んでいてもよい。そのような実施形態では、源装置12または対応する機能と宛先装置14または対応する機能は、同じハードウェアおよび/またはソフトウェアを使用して、または別個のハードウェアおよび/またはソフトウェアまたはそれらの任意の組み合わせによって実装されることができる。
【0068】
前記記述に基づいて当業者には明白であろうように、異なるユニットの機能または
図1Aに示されるような源装置12および/または宛先装置14内の機能の存在および(厳密な)分割は、実際の装置および用途に依存して変わりうる。
【0069】
エンコーダ20(たとえば、ビデオ・エンコーダ20)、またはデコーダ30(たとえば、ビデオ・デコーダ30)、またはエンコーダ20とデコーダ30の両方は、
図1Bに示されるような処理回路、たとえば、一つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディクリート論理、ハードウェア、専用のビデオコーディング、またはそれらの任意の組み合わせを介して実装されうる。エンコーダ20は、
図2のエンコーダ20および/または本明細書に記載される任意の他のエンコーダ・システムまたはサブシステムに関して論じられるさまざまなモジュールを具現するために、処理回路46を介して実装されてもよい。デコーダ30は、
図3のデコーダ30および/または本明細書に記載される任意の他のデコーダ・システムまたはサブシステムに関して論じられるさまざまなモジュールを具現するために、処理回路46を介して実装されてもよい。処理回路は、後述するように、さまざまな動作を実行するように構成されうる。
図5に示されるように。技術が部分的にソフトウェアで実装される場合、装置が、好適な非一時的なコンピュータ読み取り可能な記憶媒体に該ソフトウェアのための命令を記憶してもよく、一つまたは複数のプロセッサを使用してハードウェアにおいて該命令を実行して、本開示の技術を実行してもよい。ビデオ・エンコーダ20とビデオ・デコーダ30のいずれかも、たとえば
図1Bに示されるように、組み合わされたエンコーダ/デコーダ(コーデック)の一部として単一の装置内に統合されてもよい。
【0070】
源装置12および宛先装置14は、任意の種類のハンドヘルドもしくは固定装置、たとえばノートブックまたはラップトップコンピュータ、携帯電話、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ、表示装置、デジタルメディアプレーヤー、ビデオゲーム機、ビデオストリーミング装置(コンテンツサービスサーバーまたはコンテンツ送達サーバーなど)、放送受信機装置、放送送信機装置などを含む、広範囲の装置の任意のものを含むことができ、オペレーティング・システムを使用しなくてもよく、あるいは任意の種類のオペレーティング・システムを使用してもよい。
【0071】
場合によっては、源装置12および宛先装置14は、無線通信用のために装備されてもよい。よって、源装置12および宛先装置14は、無線通信装置であってもよい。場合によっては、
図1Aに示されるビデオコーディングシステム10は、単に例であり、本願の技術は、必ずしもエンコード装置とデコード装置との間のデータ通信を含まないビデオコーディング場面(たとえば、ビデオ・エンコードまたはビデオ・デコード)に適用されうる。他の例では、データはローカルメモリから取り出される、ネットワークを通じてストリーミングされる、などされる。ビデオ・エンコード装置は、データをエンコードし、メモリに格納することができ、および/またはビデオ・デコード装置は、メモリからデータを取り出し、デコードすることができる。いくつかの例では、エンコードおよびデコードは、互いに通信せず、単にデータをメモリにエンコードする、および/またはデータをメモリから取り出してデコードする装置によって実行される。
【0072】
記述の便宜上、本発明の実施形態は、本明細書では、たとえば、高効率ビデオコーディング(HEVC)または多用途ビデオコーディング(VVC)の参照ソフトウェア、ITU-Tビデオコーディングエキスパートグループ(VCEG)およびISO/IEC動画像エキスパートグループ(MPEG)のビデオコーディングに関する統合協働チーム(Joint Collaboration Team on Video Coding、JCT-VC)によって開発された次世代ビデオコーディング規格を参照して記載される。当業者は、本発明の実施形態がHEVCまたはVVCに限定されないことを理解するであろう。
【0073】
エンコーダおよびエンコード方法
図2は、本願の技術を実装するように構成された例示的なビデオ・エンコーダ20の概略ブロック図を示す。
図2の例では、ビデオ・エンコーダ20は、入力201(または入力インターフェース201)、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループ・フィルタ・ユニット220、デコードピクチャーバッファ(decoded picture buffer、DPB)230、モード選択ユニット260、エントロピー・エンコード・ユニット270、および出力272(または出力インターフェース272)を有する。モード選択ユニット260は、インター予測ユニット244と、イントラ予測ユニット254と、分割ユニット262とを含んでいてもよい。インター予測ユニット244は、動き推定ユニットおよび動き補償ユニット(図示せず)を含んでいてもよい。
図2に示されるビデオ・エンコーダ20は、ハイブリッド・ビデオ・エンコーダまたはハイブリッド・ビデオ・コーデックによるビデオ・エンコーダと称されてもよい。
【0074】
残差計算ユニット204、変換処理ユニット206、量子化ユニット208、モード選択ユニット260はエンコーダ20の順方向信号経路を形成すると称されてもよく、一方、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループ・フィルタ220、デコードピクチャーバッファ(DPB)230、インター予測ユニット244、およびイントラ予測ユニット254は、ビデオ・エンコーダ20の逆方向信号経路を形成すると称されてもよい。ビデオ・エンコーダ20の逆方向信号経路はデコーダ(
図3のビデオ・デコーダ30参照)の信号経路に対応する。逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループ・フィルタ220、デコードピクチャーバッファ(DPB)230、インター予測ユニット244、およびイントラ予測ユニット254は、ビデオ・エンコーダ20の「組み込みデコーダ」をなすとも称される。
【0075】
ピクチャーおよびピクチャー分割(ピクチャーとブロック)
エンコーダ20は、たとえば入力201を介してピクチャー17(またはピクチャー・データ17)、たとえばビデオまたはビデオ・シーケンスを形成するピクチャーのシーケンスのピクチャーを受領するように構成されてもよい。受領されたピクチャーまたはピクチャー・データは、前処理されたピクチャー19(または前処理されたピクチャー・データ19)であってもよい。簡単のために、以下の記述は、ピクチャー17を参照する。ピクチャー17はまた、現在ピクチャーまたはコーディングされるべきピクチャーと称されてもよい(特に、ビデオコーディングにおいては、現在ピクチャーを他のピクチャー、たとえば、同じビデオ・シーケンス、すなわち現在ピクチャーをも含むビデオ・シーケンスの、以前にエンコードおよび/またはデコードされたピクチャーから区別するために)。
【0076】
(デジタル)ピクチャーは、強度値をもつサンプルの二次元アレイまたはマトリクスとみなされるか、またはみなされることができる。アレイ中のサンプルは、ピクセル(ピクチャー・エレメントの短縮形)または画素と称されてもよい。アレイまたはピクチャーの水平および垂直方向(または軸)のサンプル数は、ピクチャーのサイズおよび/または解像度を定義する。色の表現のためには、典型的には、3つの色成分が使用される。すなわち、ピクチャーは、3つのサンプル・アレイで表現される、または3つのサンプル・アレイを含むことができる。RBGフォーマットまたは色空間においては、ピクチャーは、対応する赤、緑および青のサンプル・アレイを含む。しかしながら、ビデオコーディングにおいては、各ピクセルは、典型的には、ルミナンスおよびクロミナンス・フォーマットまたは色空間、たとえば、Yで示されるルミナンス成分(時に代わりにLが使用される)、とCbおよびCrで示される2つのクロミナンス成分を含むYCbCrで表現される。ルミナンス(または略してルーマ)成分Yは輝度またはグレーレベル強度(例えば、グレースケール・ピクチャーにおけるような)を表わし、その一方、2つのクロミナンス(または略してクロマ)成分CbおよびCrは色度または色情報成分を表わす。よって、YCbCrフォーマットのピクチャーは、ルミナンス・サンプル値(Y)のルミナンス・サンプル・アレイと、クロミナンス値(CbおよびCr)の2つのクロミナンス・サンプル・アレイとを含む。RGBフォーマットのピクチャーは、YCbCrフォーマットに変換または転換されることができ、その逆も可能である。このプロセスは色変換または転換としても知られる。ピクチャーがモノクロである場合、ピクチャーはルミナンス・サンプル・アレイのみを含んでいてもよい。したがって、ピクチャーは、たとえば、4:2:0、4:2:2、および4:4:4色フォーマットにおける、モノクロ・フォーマットのルーマ・サンプルのアレイまたはルーマ・サンプルのアレイと、クロマ・サンプルの2つの対応するアレイとでありうる。
【0077】
ビデオ・エンコーダ20の実施形態は、ピクチャー17を複数の(典型的には重複しない)ピクチャー・ブロック203に分割するように構成されたピクチャー分割ユニット(
図2には示されていない)を含んでいてもよい。これらのブロックは、ルートブロック、マクロブロック(H.264/AVC)またはコーディングツリー・ブロック(CTB)またはコーディングツリー単位(CTU)(H.265/HEVCおよびVVC)と称されることもある。ピクチャー分割ユニットは、ビデオ・シーケンスのすべてのピクチャーについて同じブロック・サイズおよび該ブロック・サイズを定義する対応するグリッドを使用するように、あるいは、ピクチャー間、またはピクチャーのサブセットもしくはグループ間でブロック・サイズを変更し、各ピクチャーを対応するブロックに分割するように構成されてもよい。
【0078】
さらなる実施形態では、ビデオ・エンコーダは、ピクチャー17のブロック203、たとえば、ピクチャー17を形成する1つの、いくつかの、またはすべてのブロックを直接受領するように構成されてもよい。ピクチャー・ブロック203は、現在のピクチャー・ブロックまたはコーディングされるべきピクチャー・ブロックと称されることもある。
【0079】
ピクチャー17と同様に、ピクチャー・ブロック203もまた、ピクチャー17よりも小さい寸法ではあるが、強度値(サンプル値)をもつサンプルの二次元アレイまたはマトリクスとしてみなされる、またはみなされることができる。言い換えると、ブロック203は、たとえば、1つのサンプル・アレイ(たとえば、モノクロ・ピクチャー17の場合のルーマ・アレイ、またはカラー・ピクチャーの場合のルーマもしくはクロマ・アレイ)、または3つのサンプル・アレイ(たとえば、カラー・ピクチャー17の場合のルーマ・アレイおよび2つのクロマ・アレイ)、または適用される色フォーマットに依存して任意の他の数および/または種類のアレイを含むことができる。ブロック203の水平および垂直方向(または軸)のサンプル数は、ブロック203のサイズを定義する。よって、ブロックは、たとえば、サンプルのM×N(M列×N行)アレイ、または変換係数のM×Nアレイであってもよい。
【0080】
図2に示されるようなビデオ・エンコーダ20の実施形態は、ブロック毎にピクチャー17をエンコードするように構成されてもよく、たとえば、エンコードおよび予測はブロック203毎に実行される。
【0081】
図2に示されるようなビデオ・エンコーダ20の実施形態はさらに、スライス(ビデオ・スライスとも称される)を使うことによってピクチャーを分割および/またはエンコードするように構成されてもよい。ここで、ピクチャーは、一つまたは複数のスライス(典型的には重ならない)に分割される、またはかかるスライスを使ってエンコードされることができ、各スライスは一つまたは複数のブロック(たとえばCTU)を含んでいてもよい。
【0082】
図2に示されるようなビデオ・エンコーダ20の実施形態はさらに、タイル・グループ(ビデオ・タイル・グループとも称される)および/またはタイル(ビデオ・タイルとも称される)を使うことによってピクチャーを分割および/またはエンコードするように構成されてもよい。ここで、ピクチャーは、一つまたは複数のタイル・グループ(典型的には重ならない)に分割される、またはかかるタイル・グループを使ってエンコードされることができ、各タイル・グループはたとえば一つまたは複数のブロック(たとえばCTU)または一つまたは複数のタイルを含んでいてもよい。各タイルはたとえば長方形状であってもよく、一つまたは複数のブロック(たとえばCTU)、たとえば完全なもしくは半端なブロックを含んでいてもよい。
【0083】
残差計算
残差計算ユニット204は、ピクチャー・ブロック203および予測ブロック265に基づいて残差ブロック205(残差205とも称される)を計算するように構成されてもよい(予測ブロック265についてのさらなる詳細は後述する)。これはたとえば、ピクチャー・ブロック203のサンプル値から予測ブロック265のサンプル値をサンプル毎に(ピクセル毎に)減算してサンプル領域における残差ブロック205を得ることによる。
【0084】
変換
変換処理ユニット206は、残差ブロック205のサンプル値に対して変換、たとえば離散コサイン変換(DCT)または離散サイン変換(DST)を適用して、変換領域における変換係数207を得るように構成されてもよい。変換係数207は、変換残差係数と称されてもよく、変換領域における残差ブロック205を表わす。
【0085】
変換処理ユニット206は、H.265/HEVCのために指定された変換など、DCT/DSTの整数近似を適用するように構成されてもよい。直交DCT変換と比較して、そのような整数近似は、典型的には、ある因子によってスケーリングされる。順変換と逆変換によって処理される残差ブロックのノルムを保存するために、変換プロセスの一部として追加的なスケーリング因子が適用される。スケーリング因子は、典型的には、スケーリング因子がシフト演算のための2の冪乗であること、変換係数のビット深さ、精度と実装コストの間のトレードオフなどのような、ある種の制約条件に基づいて選択される。具体的なスケーリング因子は、たとえば逆変換処理ユニット212による逆変換(および例えば、ビデオ・デコーダ30における逆変換処理ユニット312による対応する逆変換)のためにたとえば指定され、エンコーダ20におけるたとえば変換処理ユニット206による順変換のための対応するスケーリング因子が、それに応じて指定されてもよい。
【0086】
ビデオ・エンコーダ20(個別的には変換処理ユニット206)の実施形態は、変換パラメータ、たとえば単数または複数の変換のタイプを、たとえば直接、またはエントロピー・エンコード・ユニット270を介してエンコードまたは圧縮されて、出力するように構成されてもよく、それにより、たとえば、ビデオ・デコーダ30は、該変換パラメータを受領し、デコードのために使用してもよい。
【0087】
量子化
量子化ユニット208は、たとえばスカラー量子化またはベクトル量子化を適用することによって、変換係数207を量子化して、量子化された係数209を得るように構成されてもよい。量子化された係数209は、量子化された変換係数209または量子化された残差係数209と称されることもある。
【0088】
量子化プロセスは、変換係数207の一部または全部に関連するビット深さを低減することができる。たとえば、nビット変換係数は、量子化の間に、mビット変換係数に丸められてもよい。ここで、nはmより大きい。量子化の程度は、量子化パラメータ(QP)を調整することによって修正されてもよい。たとえば、スカラー量子化については、より細かいまたはより粗い量子化を達成するために異なるスケーリングが適用されてもよい。より小さな量子化ステップ・サイズはより細かい量子化に対応し、一方、より大きな量子化ステップ・サイズはより粗い量子化に対応する。適用可能な量子化ステップ・サイズは、量子化パラメータ(QP)によって示されてもよい。量子化パラメータは、たとえば、適用可能な量子化ステップ・サイズのあらかじめ定義された集合に対するインデックスであってもよい。たとえば、小さな量子化パラメータは、細かい量子化(小さな量子化ステップ・サイズ)に対応してもよく、大きな量子化パラメータは、粗い量子化(大きな量子化ステップ・サイズ)に対応してもよく、あるいはその逆でもよい。量子化は、量子化ステップ・サイズによる除算を含んでいてもよく、たとえば逆量子化ユニット210による対応するおよび/または逆の脱量子化は、量子化ステップ・サイズによる乗算を含んでいてもよい。いくつかの標準、たとえばHEVCによる実施形態は、量子化ステップ・サイズを決定するために量子化パラメータを使用するように構成されてもよい。一般に、量子化ステップ・サイズは、除算を含む式の固定小数点近似を使用して、量子化パラメータに基づいて計算されてもよい。量子化パラメータおよび量子化ステップ・サイズについての式の固定小数点近似において使用されるスケーリングのために修正されることがある残差ブロックのノルムを復元するために、量子化および脱量子化のために追加的なスケーリング因子が導入されてもよい。一つの例となる実装では、逆変換および脱量子化のスケーリングが組み合わされてもよい。あるいはまた、カスタマイズされた量子化テーブルが使用されて、たとえばビットストリームにおいて、エンコーダからデコーダへ信号伝達されてもよい。量子化は、損失のある演算であり、損失は量子化ステップ・サイズの増加とともに増加する。
【0089】
ビデオ・エンコーダ20(個別的には量子化ユニット208)の実施形態は、量子化パラメータ(QP)を、たとえば直接、またはエントロピー・エンコード・ユニット270を介してエンコードされて、出力するように構成されてもよく、それにより、たとえばビデオ・デコーダ30は、量子化パラメータを受領し、デコードのために適用することができる。
【0090】
逆量子化
逆量子化ユニット210は、たとえば、量子化ユニット208と同じ量子化ステップ・サイズに基づいて、または量子化ユニット208と同じ量子化ステップ・サイズを使用して、量子化ユニット208によって適用された量子化方式の逆数を適用することによって、量子化された係数に対して量子化ユニット208の逆の量子化を適用して、脱量子化された係数211を得るように構成される。脱量子化された係数211は、脱量子化された残差係数211と称されてもよく、典型的には量子化による損失のため変換係数と同一ではないが、変換係数207に対応する。
【0091】
逆変換
逆変換処理ユニット212は、変換処理ユニット206によって適用された変換の逆変換、たとえば逆離散コサイン変換(DCT)または逆離散サイン変換(DST)または他の逆変換を適用して、サンプル領域における再構成された残差ブロック213(または対応する脱量子化された係数213)を得るように構成される。再構成された残差ブロック213は、変換ブロック213と称されることもある。
【0092】
再構成
再構成ユニット214(たとえば、加算器または総和器214)は、変換ブロック213(すなわち、再構成された残差ブロック213)を予測ブロック265に加算して、サンプル領域における再構成されたブロック215を得るように構成される。これはたとえば、再構成された残差ブロック213のサンプル値と、予測ブロック265のサンプル値とをサンプル毎に加算することによる。
【0093】
フィルタリング
ループ・フィルタ・ユニット220(または略して「ループ・フィルタ」220)は、再構成されたブロック215をフィルタリングして、フィルタリングされたブロック221を得るように、または一般には、再構成されたサンプルをフィルタリングして、フィルタリングされたサンプルを得るように構成される。ループ・フィルタ・ユニットは、たとえば、ピクセル遷移をなめらかにする、または、他の仕方でビデオ品質を改善するように構成される。ループ・フィルタ・ユニット220は、ブロッキング解除フィルタ、サンプル適応オフセット(SAO)・フィルタ、または一つまたは複数の他のフィルタ、たとえばバイラテラル・フィルタ、適応ループ・フィルタ(ALF)、鮮鋭化フィルタ、平滑化フィルタ、または協働フィルタ、またはそれらの任意の組み合わせなどの一つまたは複数のループ・フィルタを含んでいてもよい。ループ・フィルタ・ユニット220は、
図2ではループ内フィルタとして示されているが、他の構成では、ループ・フィルタ・ユニット220は、ループ後フィルタとして実装されてもよい。フィルタリングされたブロック221は、フィルタリングされた再構成されたブロック221と称されることもある。
【0094】
ビデオ・エンコーダ20(個別的にはループ・フィルタ・ユニット220)の実施形態は、ループ・フィルタ・パラメータ(サンプル適応オフセット情報など)をたとえば直接、またはエントロピー・エンコード・ユニット270を介してエンコードされて、出力するように構成されてもよく、それにより、たとえば、デコーダ30は、同じループ・フィルタ・パラメータまたはそれぞれのループ・フィルタを受領し、デコードのために適用することができる。
【0095】
デコードピクチャーバッファ
デコードピクチャーバッファ(DPB)230は、ビデオ・エンコーダ20によってビデオ・データをエンコードするために、参照ピクチャーまたは一般には参照ピクチャー・データを記憶するメモリであってもよい。DPB 230は、同期DRAM(SDRAM)を含む動的ランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリ・デバイスといった多様なメモリ・デバイスのいずれかによって形成されうる。デコードピクチャーバッファ(DPB)230は、一つまたは複数のフィルタリングされたブロック221を格納するように構成されてもよい。デコードピクチャーバッファ230は、さらに、同じ現在ピクチャーのまたは異なるピクチャー、たとえば以前に再構成されたピクチャーの、他の以前にフィルタリングされたブロック、たとえば、以前に再構成され、フィルタリングされたブロック221を記憶するように構成されてもよく、完全な以前に再構成された、すなわちデコードされたピクチャー(およょび対応する参照ブロックおよびサンプル)および/または部分的に再構成された現在ピクチャー(および対応する参照ブロックおよびサンプル)を、たとえばインター予測のために提供してもよい。デコードピクチャーバッファ(DPB)230は、たとえば再構成されたブロック215がループ・フィルタ・ユニット220によってフィルタリングされない場合には一つまたは複数のフィルタリングされていない再構成されたブロック215、または一般にはフィルタリングされていない再構成されたサンプルを、あるいは再構成されたブロックまたはサンプルの任意の他のさらに処理されたバージョンを、記憶するように構成されてもよい。
【0096】
モード選択(分割および予測)
モード選択ユニット260は、分割ユニット262と、インター予測ユニット244と、イントラ予測ユニット254とを有し、もとのピクチャー・データ、たとえばもとのブロック203(現在ピクチャー17の現在ブロック203)と、たとえばデコードピクチャーバッファ230または他のバッファ(たとえば、ラインバッファ、図示せず)からの、同じ(現在)ピクチャーのおよび/または、一つもしくは複数の以前にデコードされたピクチャーからの再構成されたピクチャー・データ、たとえばフィルタリングされたおよび/またはフィルタリングされていない再構成されたサンプルまたはブロックとを受領または取得するよう構成される。再構成されたピクチャー・データは、予測ブロック265または予測子265を得るために、予測、たとえばインター予測またはイントラ予測のための参照ピクチャー・データとして使用される。
【0097】
モード選択ユニット260は、現在のブロック予測モードについての分割(分割なしを含む)および予測モード(たとえば、イントラまたはインター予測モード)を決定または選択し、残差ブロック205の計算および再構成ブロック215の再構成のために使用される対応する予測ブロック265を生成するように構成されてもよい。
【0098】
モード選択ユニット260の実施形態は、分割および予測モードを(たとえば、モード選択ユニット260にサポートされる、またはモード選択ユニット260に利用可能なものから)を選択するように構成されてもよく、選択されるのは、最良のマッチ、すなわち、最小の残差(最小の残差は、伝送または記憶のためのよりよい圧縮を意味する)または最小の信号伝達オーバーヘッド(最小の信号伝達オーバーヘッドは、伝送または記憶のためのよりよい圧縮を意味する)を提供する、または両方を考慮またはバランスさせるものである。モード選択ユニット260は、レート歪み最適化(RDO)に基づいて分割および予測モードを決定する、つまり、最小レート歪みを提供する予測モードを選択するように構成されてもよい。この文脈における「最良」、「最小」、「最適」などのような用語は、必ずしも全体的な「最良」、「最小」、「最適」などを指すのではなく、終了、または値が閾値を超えるまたは下回るのような選択基準、または他の制約条件の達成を指すこともあり、潜在的には「最適ではない選択」につながるが、複雑さと処理時間を低減する。
【0099】
換言すれば、分割ユニット262は、ブロック203を、たとえば四分木分割(QT)、二分分割(BT)もしくは三分木分割(TT)またはそれらの任意の組み合わせを反復的に使用して、より小さなブロック・パーティションまたはサブブロック(これもやはりブロックをなす)に分割し、たとえば、ブロック・パーティションまたはサブブロックのそれぞれについて予測を実行するように構成されてもよい。ここで、モード選択は、分割されたブロック203の木構造の選択を含み、予測モードは、ブロック・パーティションまたはサブブロックのそれぞれに適用される。
【0100】
以下では、例示的なビデオ・エンコーダ20によって実行される分割(たとえば分割ユニット260による)および予測処理(インター予測ユニット244およびイントラ予測ユニット254による)について、より詳細に説明する。
【0101】
パーティション分割
分割ユニット262は、現在ブロック203を、より小さなパーティション、たとえば正方形または長方形のサイズのより小さなブロックにパーティション分割(または分割)することができる。これらのより小さなブロック(サブブロックとも呼ばれ得る)は、さらに、より一層小さなパーティションに分割されてもよい。これは、ツリー分割または階層ツリー分割とも呼ばれ、たとえばルートツリーレベル0(階層レベル0、深さ0)におけるルートブロックが再帰的に分割されてもよく、たとえば次の、より低いツリーレベルの2つ以上のブロック、たとえばツリーレベル1(階層レベル1、深さ1)におけるノードに分割されてもよく、これらのブロックは再び次の、より低いレベル、たとえばツリーレベル2(階層レベル2、深さ2)の2つ以上のブロックに分割されてもよい、などと、たとえば最大ツリー深さまたは最小ブロック・サイズに達するなど終了基準が満たされために分割が打ち切られるまで続く。それ以上分割されないブロックは、ツリーのリーフブロックまたはリーフノードとも呼ばれる。2つのパーティションへの分割を使用するツリーは二分木(BT)、3つのパーティションへの分割を使用するツリーは三分木(TT)、4つのパーティションへの分割を使用するツリーは四分木(QT)と呼ばれる。
【0102】
前述のように、本明細書で使用される「ブロック」という用語は、ピクチャーの一部、特に正方形または長方形の一部であってもよい。たとえばHEVCおよびVVCを参照するに、ブロックは、コーディングツリー単位(CTU)、コーディング単位(CU)、予測単位(PU)、および変換単位(TU)、および/または対応するブロック、たとえば、コーディングツリー・ブロック(CTB)、コーディングブロック(CB)、変換ブロック(TB)、または予測ブロック(PB)であってもよく、またはこれらに対応してもよい。
【0103】
たとえば、コーディングツリー単位(CTU)は、3つのサンプル・アレイを有するピクチャーのルーマ・サンプルのCTB、クロマ・サンプルの2つの対応するCTB、または、モノクロ・ピクチャーまたはサンプルをコーディングするために使用される3つの別個の色平面およびシンタックス構造を使用してコーディングされるピクチャーのサンプルのCTBであってもよく、または、これらを含んでいてもよい。対応して、コーディングツリーブロック(CTB)は、ある成分のCTBへの分割がパーティション分割であるように、Nの何らかの値についてのサンプルのN×Nブロックであってもよい。コーディング単位(CU)は、3つのサンプル・アレイを有するピクチャーのルーマ・サンプルのコーディングブロック、クロマ・サンプルの2つの対応するコーディングブロック、または、モノクロ・ピクチャーまたはサンプルをコーディングするために使用される3つの別個の色平面およびシンタックス構造を使用してコーディングされるピクチャーのサンプルのコーディングブロックであってもよく、または、これらを含んでいてもよい。対応して、コーディングブロック(CB)は、CTBのコーディングブロックへの分割がパーティション分割であるように、MおよびNの何らかの値についてのサンプルのM×Nブロックであってもよい。
【0104】
実施形態において、たとえばHEVCによれば、コーディングツリー単位(CTU)は、コーディングツリーと記される四分木構造を使用することによって、CUに分割されてもよい。ピクチャー間(時間的)またはピクチャー内(空間的)予測を使用してピクチャー領域をコーディングするかどうかの決定は、CUレベルで行なわれる。各CUはさらに、PU分割タイプに応じて、1つ、2つ、または4つのPUに分割できる。1つのPU内では、同じ予測プロセスが適用され、関連情報はPUごとにデコーダに伝送される。PU分割タイプに基づく予測プロセスを適用することによって残差ブロックを得た後、CUは、該CUについてのコーディングツリーと同様の別の四分木構造に従って変換単位(TU)に分割できる。
【0105】
実施形態において、たとえば多用途ビデオコーディング(VVC)と称される現在開発中の最新のビデオコーディング標準によれば、組み合わされた四分木および二分木(QTBT)分割が、たとえばコーディングブロックを分割するために使用される。QTBTブロック構造では、CUは正方形または長方形のいずれかの形状を有することができる。たとえば、コーディングツリー単位(CTU)は、まず四分木構造によって分割される。四分木リーフノードは、二分木または三分木(または三叉木)構造によってさらに分割される。分割木リーフノードは、コーディング単位(CU)と呼ばれ、そのセグメント分割は、それ以上の分割なしに予測および変換処理に使用される。これは、QTBTコーディングブロック構造においてCU、PU、およびTUが同じブロック・サイズをもつことを意味する。並列に、多分割、たとえば三分木分割もQTBTブロック構造と一緒に使用されてもよい。
【0106】
一例では、ビデオ・エンコーダ20のモード選択ユニット260は、本明細書に記載される分割技術の任意の組み合わせを実行するように構成されうる。
【0107】
上述のように、ビデオ・エンコーダ20は、(たとえばあらかじめ決定された)予測モードの集合から最良または最適な予測モードを決定または選択するように構成される。予測モードの集合は、たとえば、イントラ予測モードおよび/またはインター予測モードを含んでいてもよい。
【0108】
イントラ予測
イントラ予測モードの集合は、たとえばHEVCで定義されているように、35の異なるイントラ予測モード、たとえばDC(または平均)モードおよび平面モードのような非方向性モード、または、方向性モードを含んでいてもよく、または、たとえばVVCで定義されているように、67の異なるイントラ予測モード、たとえばDC(または平均)モードおよび平面モードのような非方向性モード、または、方向性モードを含んでいてもよい。
【0109】
イントラ予測ユニット254は、イントラ予測モードの集合のうちのあるイントラ予測モードに従ってイントラ予測ブロック265を生成するために、同じ現在のピクチャーの近傍ブロックの再構成されたサンプルを使用するように構成される。
【0110】
イントラ予測ユニット254(または、一般に、モード選択ユニット260)は、イントラ予測パラメータ(または、一般に、そのブロックについての選択されたイントラ予測モードを示す情報)を、エンコードされたピクチャー・データ21に含めるために、シンタックス要素266の形でエントロピー・エンコード・ユニット270に対して出力するようにさらに構成される。それにより、たとえば、ビデオ・デコーダ30は、予測パラメータを受領し、デコードのために使用することができる。
【0111】
インター予測
前記集合の(または可能な)インター予測モードは、利用可能な参照ピクチャー(すなわち、たとえばDBP 230に記憶されている、以前の少なくとも部分的にデコードされたピクチャー)および他のインター予測パラメータに依存する。該他のインター予測パラメータは、たとえば、最良マッチの参照ブロックを探すために参照ピクチャーの全体が使用されるか、または参照ピクチャーの一部のみ、たとえば、現在ブロックの当該領域のまわりの探索窓領域が、使用されるか、および/または、たとえば、ピクセル補間、たとえば、半分/セミ画素および/または1/4画素補間が適用されるか否かである。
【0112】
上記の予測モードに加えて、スキップモードおよび/または直接モードが適用されてもよい。
【0113】
インター予測ユニット244は、動き推定(ME)ユニットおよび動き補償(MC)ユニットを含んでいてもよい(いずれも
図2には示されていない)。動き推定ユニットは、ピクチャー・ブロック203(現在ピクチャー17の現在ピクチャー・ブロック203)およびデコードされたピクチャー231、または少なくとも一つまたは複数の以前に再構成されたブロック、たとえば、一つまたは複数の他の/異なる以前にデコードされたピクチャー231の再構成されたブロックを動き推定のために受領または取得するように構成されてもよい。たとえば、ビデオ・シーケンスは、現在ピクチャーと以前にデコードされたピクチャー231とを含んでいてもよく、あるいは、換言すれば、現在ピクチャーと以前にデコードされたピクチャー231は、ビデオ・シーケンスを形成するピクチャーのシーケンスの一部であってもよく、または該シーケンスを形成してもよい。
【0114】
エンコーダ20は、たとえば、複数の他のピクチャーのうちの同じまたは異なるピクチャーの複数の参照ブロックから参照ブロックを選択し、参照ピクチャー(または参照ピクチャー・インデックス)および/または参照ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間オフセット)を、動き推定ユニットへのインター予測パラメータとして提供するように構成されてもよい。このオフセットは動きベクトル(MV)とも呼ばれる。
【0115】
動き補償ユニットは、たとえば、インター予測パラメータを取得、たとえば受領して、該インター予測パラメータに基づいて、または、該インター予測パラメータを用いて、インター予測を実行して、インター予測ブロック265を得るように構成される。動き補償ユニットによって実行される動き補償は、動き推定によって決定された動き/ブロック・ベクトルに基づいて、可能性としてはサブピクセル精度への補間を実行して、予測ブロックを取ってくるまたは生成することを含んでもよい。補間フィルタリングが、既知のピクセル・サンプルから追加的なピクセル・サンプルを生成してもよく、よって、潜在的には、ピクチャー・ブロックをコーディングするために使用されうる候補予測ブロックの数を増加させる。現在ピクチャー・ブロックのPUについての動きベクトルを受領すると、動き補償ユニットは、参照ピクチャー・リストのうちの1つのリストにおいて動きベクトルがポイントする予測ブロックを位置特定することができる。
【0116】
動き補償ユニットはまた、ビデオ・スライスのピクチャー・ブロックをデコードする際にビデオ・デコーダ30が使用するために、ブロックおよびビデオ・スライスに関連するシンタックス要素を生成してもよい。スライスおよびそれぞれのシンタックス要素への追加または代替として、タイル・グループおよび/またはタイルおよびそれぞれのシンタックス要素が生成され、または使用されてもよい。
【0117】
エントロピーコーディング
エントロピー・エンコード・ユニット270は、たとえば、エントロピー・エンコード・アルゴリズムまたは方式(たとえば、可変長コーディング(VLC)方式、コンテキスト適応VLC方式(CAVLC)、演算コーディング方式、バイナリー化、コンテキスト適応バイナリー算術コーディング(CABAC)、シンタックスベースのコンテキスト適応バイナリー算術コーディング(SBAC)、確率区間分割エントロピー(PIPE)コーディング、または他のエントロピー・エンコード方法または技術)またはバイパス(非圧縮)を、量子化された係数209、インター予測パラメータ、イントラ予測パラメータ、ループ・フィルタ・パラメータおよび/または他のシンタックス要素に対して適用して、エンコードされたピクチャー・データ21を得るように構成される。エンコードされたピクチャー・データ21はたとえばエンコードされたビットストリーム21の形で、出力272を介して出力でき、それにより、たとえば、ビデオ・デコーダ30はそれらのパラメータを受領し、デコードのために使用することができる。エンコードされたビットストリーム21は、ビデオ・デコーダ30に送信されてもよいし、または後の送信またはビデオ・デコーダ30による取得のためにメモリに記憶されてもよい。
【0118】
ビデオ・ストリームをエンコードするために、ビデオ・エンコーダ20の他の構造的変形が使用できる。たとえば、非変換ベースのエンコーダ20は、ある種のブロックまたはフレームについて、変換処理ユニット206なしで直接、残差信号を量子化することができる。別の実装では、エンコーダ20は、量子化ユニット208と逆量子化ユニット210とを単一のユニットに組み合わせたものを有することができる。
【0119】
デコーダおよびデコード方法
図3は、本願の技術を実装するように構成されたビデオ・デコーダ30の例を示す。ビデオ・デコーダ30は、デコードされたピクチャー331を得るために、たとえばエンコーダ20によってエンコードされた、エンコードされたピクチャー・データ21(たとえばエンコードされたビットストリーム21)を受領するように構成される。エンコードされたピクチャー・データまたはビットストリームは、エンコードされたピクチャー・データをデコードするための情報、たとえば、エンコードされたビデオ・スライス(および/またはタイル・グループまたはタイル)のピクチャー・ブロックおよび関連するシンタックス要素を表わすデータを含む。
【0120】
図3の例では、デコーダ30は、エントロピー・デコード・ユニット304と、逆量子化ユニット310と、逆変換処理ユニット312と、再構成ユニット314(たとえば、加算器314)と、ループ・フィルタ320と、デコードピクチャーバッファ(DBP)330と、モード適用ユニット360と、インター予測ユニット344と、イントラ予測ユニット354とを含む。インター予測ユニット344は、動き補償ユニットであってもよいし、またはこれを含んでいてもよい。ビデオ・デコーダ30は、いくつかの例では、
図2からのビデオ・エンコーダ100に関して記述されたエンコード・パスと概して逆のデコード・パスを実行することができる。
【0121】
エンコーダ20に関して説明したように、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループ・フィルタ220、デコードピクチャーバッファ(DPB)230、インター予測ユニット344、およびイントラ予測ユニット354は、ビデオ・エンコーダ20の「組み込みデコーダ」を形成するとも称される。よって、逆量子化ユニット310は、逆量子化ユニット110と機能的に同一であってもよく、逆変換処理ユニット312は、逆変換処理ユニット212と機能的に同一であってもよく、再構成ユニット314は、再構成ユニット214と機能的に同一であってもよく、ループ・フィルタ320は、ループ・フィルタ220と機能的に同一であってもよく、デコードピクチャーバッファ330は、デコードピクチャーバッファ230と機能的に同一であってもよい。したがって、ビデオ20エンコーダのそれぞれのユニットおよび機能について与えた説明は、ビデオ・デコーダ30のそれぞれのユニットおよび機能に、対応して当てはまる。
【0122】
エントロピー・デコード
エントロピー・デコード・ユニット304は、ビットストリーム21(または一般に、エンコードされたピクチャー・データ21)をパースし、たとえば、エンコードされたピクチャー・データ21に対してエントロピー・デコードを実行し、たとえば、量子化された係数309および/またはデコードされたコーディングパラメータ(
図3には示されていない)、たとえば、インター予測パラメータ(たとえば、参照ピクチャー・インデックスおよび動きベクトル)、イントラ予測パラメータ(たとえば、イントラ予測モードまたはインデックス)、変換パラメータ、量子化パラメータ、ループ・フィルタ・パラメータ、および/または他のシンタックス要素のいずれかまたは全部を得るように構成される。エントロピー・デコード・ユニット304は、エンコーダ20のエントロピー・エンコード・ユニット270に関して述べたエンコード方式に対応するデコード・アルゴリズムまたは方式を適用するように構成されてもよい。エントロピー・デコード・ユニット304は、インター予測パラメータ、イントラ予測パラメータおよび/または他のシンタックス要素をモード適用ユニット360に、他のパラメータをデコーダ30の他のユニットに提供するようにさらに構成されてもよい。ビデオ・デコーダ30は、ビデオ・スライス・レベルおよび/またはビデオ・ブロック・レベルでシンタックス要素を受領してもよい。スライスおよびそれぞれのシンタックス要素への追加または代替として、タイル・グループおよび/またはタイルおよびそれぞれのシンタックス要素が受領され、および/または使用されてもよい。
【0123】
逆量子化
逆量子化ユニット310は、エンコードされたピクチャー・データ21から量子化パラメータ(QP)(または一般に、逆量子化に関する情報)および量子化された係数を受領し(たとえばエントロピー・デコード・ユニット304によるたとえばパースおよび/またはデコードによって)、デコードされた量子化された係数309に対して該量子化パラメータに基づいて逆量子化を適用して、脱量子化された係数311を得るように構成されてもよい。脱量子化された係数311は変換係数311と称されることもある。逆量子化プロセスは、ビデオ・スライス(またはタイルまたはタイル・グループ)内の各ビデオ・ブロックについてビデオ・エンコーダ20によって決定された量子化パラメータを使用して、量子化の程度、および、同様に、適用されるべき逆量子化の程度を決定してもよい。
【0124】
逆変換
逆変換処理ユニット312は、変換係数311とも呼ばれる脱量子化された係数311を受領し、サンプル領域における再構成された残差ブロック213を得るために、脱量子化された係数311に変換を適用するように構成されてもよい。再構成された残差ブロック213は、変換ブロック313と称されることもある。変換は、逆変換、たとえば、逆DCT、逆DST、逆整数変換、または概念的に同様の逆変換プロセスであってもよい。逆変換処理ユニット312は、さらに、変換パラメータまたは対応する情報をエンコードされたピクチャー・データ21から受領して(たとえばエントロピー・デコード・ユニット304によるたとえばパースおよび/またはデコードによって)、脱量子化された係数311に適用される変換を決定するように構成されてもよい。
【0125】
再構成
再構成ユニット314(たとえば、加算器または総和器314)は、再構成された残差ブロック313を予測ブロック365に加算して、サンプル領域における再構成されたブロック315を得るように構成されてもよい。これはたとえば、再構成された残差ブロック313のサンプル値および予測ブロック365のサンプル値を加算することによる。
【0126】
フィルタリング
ループ・フィルタ・ユニット320(コーディングループ内またはコーディングループ後)は、たとえばピクセル遷移をなめらかにする、または、他の仕方でビデオ品質を改善するために、再構成されたブロック315をフィルタリングして、フィルタリングされたブロック321を得るように構成される。ループ・フィルタ・ユニット320は、ブロッキング解除フィルタ、サンプル適応オフセット(SAO)・フィルタ、または一つまたは複数の他のフィルタ、たとえばバイラテラル・フィルタ、適応ループ・フィルタ(ALF)、鮮鋭化、平滑化フィルタ、または協働フィルタ、またはそれらの任意の組み合わせなどの一つまたは複数のループ・フィルタを含んでいてもよい。ループ・フィルタ・ユニット320は、
図3ではループ内フィルタとして示されているが、他の構成では、ループ・フィルタ・ユニット320は、ループ後フィルタとして実装されてもよい。
【0127】
デコードピクチャーバッファ
次いで、ピクチャーのデコードされたビデオ・ブロック321は、デコードピクチャーバッファ330に記憶される。デコードピクチャーバッファ330は、デコードされたピクチャー331を、他のピクチャーについてのその後の動き補償のための参照ピクチャーとして、および/またはそれぞれの出力もしくは表示のために記憶する。
【0128】
デコーダ30は、デコードされたピクチャー311を、ユーザーへの提示または閲覧のために、たとえば出力312を介して出力するように構成される。
【0129】
予測
インター予測ユニット344は、インター予測ユニット244(特に、動き補償ユニット)と同一であってもよく、イントラ予測ユニット354は、機能において、インター予測ユニット254と同一であってもよく、エンコードされたピクチャー・データ21から(たとえばエントロピー・デコード・ユニット304による、たとえばパースおよび/またはデコードによって)受領される分割および/または予測パラメータまたはそれぞれの情報に基づいて、分割もしくはパーティション分割決定および予測を実行する。モード適用ユニット360は、再構成されたピクチャー、ブロック、またはそれぞれのサンプル(フィルタリングされた、またはフィルタリングされていない)に基づいて、ブロックごとの予測(イントラ予測またはインター予測)を実行して、予測ブロック365を得るように構成されてもよい。
【0130】
ビデオ・スライスがイントラコーディングされる(I)スライスとしてコーディングされるとき、モード適用ユニット360のイントラ予測ユニット354は、信号伝達されたイントラ予測モードと、現在ピクチャーの以前にデコードされたブロックからのデータとに基づいて、現在ビデオ・スライスのピクチャー・ブロックについての予測ブロック365を生成するように構成される。ビデオ・ピクチャーがインターコーディングされる(すなわちBまたはP)スライスとしてコーディングされるとき、モード適用ユニット360のインター予測ユニット344(たとえば、動き補償ユニット)は、エントロピー・デコード・ユニット304から受領される動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオ・スライスのビデオ・ブロックについての予測ブロック365を生成するように構成される。インター予測のために、予測ブロックは、参照ピクチャー・リストのうちの1つのリスト内の参照ピクチャーの1つから生成されてもよい。ビデオ・デコーダ30は、DPB 330に記憶された参照ピクチャーに基づくデフォルト構築技術を使用して、参照フレームリスト、リスト0およびリスト1を構築することができる。同じまたは同様のことは、スライス(たとえばビデオ・スライス)への追加または代替としてタイル・グループ(たとえばビデオ・タイル・グループ)および/またはタイル(たとえばビデオ・タイル)を使用する実施形態のために、またはかかる実施形態によって適用されてもよい。たとえば、ビデオは、I、PまたはBのタイル・グループおよび/またはタイルを使ってコーディングされてもよい。
【0131】
モード適用ユニット360は、動きベクトルまたは関係した情報および他のシンタックス要素をパースすることによって、現在のビデオ・スライスのビデオ・ブロックについての予測情報を決定するように構成され、該予測情報を使用して、デコードされる現在のビデオ・ブロックについての予測ブロックを生成する。たとえば、モード適用ユニット360は、受領されたシンタックス要素のいくつかを用いて、ビデオ・スライスのビデオ・ブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライス・タイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスについての参照ピクチャー・リストのうちの一つまたは複数のリストについての構築情報、スライスのそれぞれのインター・エンコードされたビデオ・ブロックについての動きベクトル、スライスのそれぞれのインターコーディングされたビデオ・ブロックについてのインター予測ステータス、および現在のビデオ・スライス内のビデオ・ブロックをデコードするための他の情報を決定する。同じまたは同様のことは、スライス(たとえばビデオ・スライス)への追加または代替としてタイル・グループ(たとえばビデオ・タイル・グループ)および/またはタイル(たとえばビデオ・タイル)を使用する実施形態のために、またはかかる実施形態によって適用されてもよい。たとえば、ビデオは、I、PまたはBのタイル・グループおよび/またはタイルを使ってコーディングされてもよい。
【0132】
図3に示されるようなビデオ・デコーダ30の実施形態は、スライス(ビデオ・スライスとも称される)を使うことによってピクチャーを分割および/またはデコードするように構成されてもよい。ここで、ピクチャーは、一つまたは複数のスライス(典型的には重ならない)に分割される、またはかかるスライスを使ってデコードされることができ、各スライスは一つまたは複数のブロック(たとえばCTU)を含んでいてもよい。
【0133】
図3に示されるようなビデオ・デコーダ30の実施形態は、タイル・グループ(ビデオ・タイル・グループとも称される)および/またはタイル(ビデオ・タイルとも称される)を使うことによってピクチャーを分割および/またはデコードするように構成されてもよい。ここで、ピクチャーは、一つまたは複数のタイル・グループ(典型的には重ならない)に分割される、またはかかるタイル・グループを使ってデコードされることができ、各タイルはたとえば長方形状であってもよく、一つまたは複数のブロック(たとえばCTU)、たとえば完全なもしくは半端なブロックを含んでいてもよい。
【0134】
エンコードされたピクチャー・データ21をデコードするために、ビデオ・デコーダ30の他の変形が使用できる。たとえば、デコーダ30は、ループ・フィルタリング・ユニット320なしで出力ビデオ・ストリームを生成することができる。たとえば、非変換ベースのデコーダ30は、ある種のブロックまたはフレームについて、逆変換処理ユニット312なしに直接、残差信号を逆量子化することができる。別の実施形態では、ビデオ・デコーダ30は、逆量子化ユニット310および逆変換処理ユニット312を単一のユニットに組み合わせたものを有することができる。
【0135】
エンコーダ20およびデコーダ30では、現在のステップの処理結果がさらに処理されて、次いで次のステップに出力されてもよいことを理解しておくべきである。たとえば、補間フィルタリング、動きベクトル導出、またはループ・フィルタリングの後に、クリップまたはシフトなどのさらなる操作が、補間フィルタリング、動きベクトル導出、またはループ・フィルタリングの処理結果に対して実行されてもよい。
【0136】
現在ブロックの導出された動きベクトル(アフィンモードの制御点動きベクトル、アフィン、平面、ATMVPモードのサブブロック動きベクトル、時間的動きベクトルなどを含むが、それらに限定されない)に対してさらなる操作が適用されうることに留意されたい。たとえば、動きベクトルの値は、その表現ビットに従ってあらかじめ定義された範囲に制約される。動きベクトルの表現ビットがbitDepth〔ビット深さ〕であれば、範囲は-2^(bitDepth-1)~2^(bitDepth-1)-1である。たとえば、bitDepthが16に等しく設定されている場合、範囲は-32768~32767であり、bitDepthが18に等しく設定されている場合、範囲は-131072~131071である。たとえば、導出された動きベクトル(たとえば、1つの8×8ブロック内の4つの4×4サブブロックのMV)の値は、4つの4×4サブブロックMVの整数部の間の最大差が、Nピクセル以下、たとえば1ピクセル以下になるように制約される。ここでは、bitDepthに従って動きベクトルを制約するための2つの方法を提供する。
【0137】
方法1:フロー動作によりオーバーフローMSB(最上位ビット)を除去する
【数1】
ここで、mvxは画像ブロックまたはサブブロックの動きベクトルの水平成分であり、mvyは画像ブロックまたはサブブロックの動きベクトルの垂直成分であり、uxおよびuyは中間的な値を示す;
たとえば、mvxの値が-32769であれば、式(1)および(2)を適用した後、結果として得られる値は32767になる。コンピュータシステムでは、10進数は2の補数として格納される。-32769の2の補数は1,0111,1111,1111,1111(17ビット)であり、MSBが破棄されるため、結果として得られる2の補数は0111,1111,1111,1111(10進数は32767)となり、これは、式(1)と(2)を適用することによる出力と同じである。
【数2】
これらの操作は、式(5)~(8)に示されるように、mvpとmvdの和の間に適用されてもよい。
【0138】
方法2:値をクリッピングすることによりオーバーフローMSBを除去する。
【数3】
ここで、vxは画像ブロックまたはサブブロックの動きベクトルの水平成分であり、vyは画像ブロックまたはサブブロックの動きベクトルの垂直成分であり、x、yおよびzはそれぞれMVクリッピング・プロセスの3つの入力値に対応し、関数Clip3の定義は次の通りである:
【数4】
【0139】
図4は、本開示のある実施形態によるビデオコーディング装置400の概略図である。ビデオコーディング装置400は、本明細書に記載される開示される実施形態を実装するのに好適である。ある実施形態では、ビデオコーディング装置400は、
図1Aのビデオ・デコーダ30のようなデコーダ、または
図1Aのビデオ・エンコーダ20のようなエンコーダであってもよい。
【0140】
ビデオコーディング装置400は、データを受領するための入口ポート410(または入力ポート410)および受領器ユニット(Rx)420;データを処理するためのプロセッサ、論理ユニット、または中央処理ユニット(CPU)430;データを送信するための送信器ユニット(Tx)440および出口ポート450(または出力ポート450);およびデータを記憶するためのメモリ460を含む。ビデオコーディング装置400は、光信号または電気信号の出入りのために、入口ポート410、受領器ユニット420、送信器ユニット440、および出口ポート450に結合された光対電気(OE)コンポーネントおよび電気対光(EO)コンポーネントをも有していてもよい。
【0141】
プロセッサ430は、ハードウェアおよびソフトウェアによって実装される。プロセッサ430は、一つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサとして)、FPGA、ASIC、およびDSPとして実装されてもよい。プロセッサ430は、入口ポート410、受領器ユニット420、送信器ユニット440、出口ポート450、およびメモリ460と通信する。プロセッサ430は、コーディングモジュール470を有する。コーディングモジュール470は、上記の開示された諸実施形態を実装する。たとえば、コーディングモジュール470は、さまざまなコーディング動作を実装、処理、準備、または提供する。よって、コーディングモジュール470を含めることにより、ビデオコーディング装置400の機能が実質的に改善され、ビデオコーディング装置400の異なる状態への変換が実現される。あるいはまた、コーディングモジュール470は、メモリ460に記憶された命令として実装され、プロセッサ430によって実行される。
【0142】
メモリ460は、一つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを含んでいてもよく、オーバーフロー・データ記憶装置として使用され、プログラムを、該プログラムが実行のために選択されるときに記憶し、そしてプログラム実行中に読み出される命令およびデータを記憶してもよい。メモリ460は、たとえば、揮発性および/または不揮発性であってもよく、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想記憶メモリ(TCAM)、および/またはスタティックランダムアクセスメモリ(SRAM)であってもよい。
【0143】
図5は、ある例示的実施形態による、
図1からの源装置12および宛先装置14のいずれかまたは両方として使用されうる装置500の簡略化されたブロック図である。
【0144】
装置500内のプロセッサ502は、中央処理ユニットであってもよい。あるいはまた、プロセッサ502は、現在存在する、または今後開発される情報を操作または処理することができる、任意の他のタイプの装置または複数の装置であってもよい。開示された実装は、図示のような単一のプロセッサ、たとえばプロセッサ502を用いて実施できるが、複数のプロセッサを用いて、速度および効率における利点が達成できる。
【0145】
装置500内のメモリ504は、ある実装では、リードオンリーメモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスであることができる。メモリ504として、任意の他の好適なタイプの記憶デバイスが使用できる。メモリ504は、バス512を使用してプロセッサ502によってアクセスされるコードおよびデータ506を含むことができる。メモリ504は、さらに、オペレーティング・システム508およびアプリケーション・プログラム510を含むことができ、該アプリケーション・プログラム510は、プロセッサ502がここに記載される方法を実行することを許容する少なくとも1つのプログラムを含む。たとえば、アプリケーション・プログラム510は、アプリケーション1~Nを含むことができ、これは、ここに記載される方法を実行するビデオコーディングアプリケーションをさらに含む。
【0146】
装置500は、ディスプレイ518などの一つまたは複数の出力装置をも含むことができる。ディスプレイ518は、一例では、ディスプレイを、タッチ入力を感知するように動作可能なタッチ感応性要素と組み合わせるタッチ感応性ディスプレイであってもよい。ディスプレイ518は、バス512を介してプロセッサ502に結合されることができる。
【0147】
ここでは単一のバスとして示されているが、装置500のバス512は、複数のバスから構成されることができる。さらに、二次記憶514は、装置500の他のコンポーネントに直接結合されることができるか、またはネットワークを介してアクセスされることができ、メモリカードのような単一の集積ユニットまたは複数のメモリカードのような複数のユニットを含むことができる。よって、装置500は、幅広い多様な構成で実装されることができる。
【0148】
ジュネーブで開催された第14回JVET会議では、JVET-N0217の寄与:アフィン線形重み付けイントラ予測(Affine Linear Weighted Intra Prediction、ALWIP)が採用された。
【0149】
ALWIPでは、イントラモードの3つの新しいセットが導入される。それらは以下の通りである:
・4×4ブロックのための35個のモード。
・8×4、4×8、8×8ブロックのための19個のモード。
・幅と高さが両方とも64サンプル以下である他の場合のための11個のモード。
【0150】
対応して、ALWIPではブロック・サイズ・タイプについての変数(sizeId)が以下のように定義される:
・ブロック・サイズが4×4であれば、ブロック・サイズ・タイプsizeIdは0である。
・それ以外で、ブロック・サイズが8×4、4×8、または8×8であれば、ブロック・サイズ・タイプsizeIdは1である。
・それ以外で、ブロックのサイズが上記でなく、ブロックの幅と高さが両方とも64より小さい場合、ブロック・サイズ・タイプsizeIdは2である。
【0151】
これらのモードは、現在ブロックの左および上の1ラインの参照サンプルから、行列ベクトル乗算とオフセットの加算によって、ルーマ・イントラ予測信号を生成する。この理由から、アフィン線形重み付けイントラ予測は行列ベースのイントラ予測(MIP)とも呼ばれる。以下のテキストについては、MIPとALWIPという用語は交換可能であり、両方ともJVET-N0217のツールを記述する。
【0152】
幅W、高さHの長方形ブロックのサンプルを予測するために、アフィン線形重み付けイントラ予測(ALWIP)は、ブロックの左のH個の再構成された近傍境界サンプルの1ラインと、ブロックの上のW個の再構成された近傍境界サンプルの1ラインとを入力としてとる。再構成されたサンプルが利用できない場合は、通常のイントラ予測と同様に生成される。
予測信号の生成は、次の3つのステップに基づく:
1.境界サンプルのうち、W=H=4の場合は4つのサンプル、他のすべての場合は8つのサンプルが、平均によって抽出される。
2.平均されたサンプルを入力として用いて、行列ベクトル乗算とその後のオフセットの加算が実行される。結果は、もとのブロック中のサンプルのサブサンプリングされたセット上の削減された(reduced)予測信号である。
3.残りの位置での予測信号は、各方向の単一ステップ線形補間である線形補間によって、前記サブサンプリングされたセット上の予測信号から生成される。
【0153】
平均、行列ベクトル乗算、および線形補間のプロセス全体が、
図6~
図9において異なる形状について例解される。残りの形状は、図示された場合の1つと同様に扱われることに注意されたい。
【0154】
図6は、4×4ブロックについて前記プロセスを示している。4×4ブロックが与えられると、ALWIPは境界の各軸に沿って2つの平均をとる。結果として得られる4つの入力サンプルは、行列ベクトル乗算に入る。行列は、セットS
0からとられる。オフセットを加えた後、これは、16個の最終的な予測サンプルを与える。予測信号を生成するために線形補間は必要ない。このように、サンプル当たり合計(4・16)/(4・4)=4回の乗算が行われる。
【0155】
図7は、8×8ブロックについて前記プロセスを示している。8×8ブロックが与えられると、ALWIPは境界の各軸に沿って4つの平均をとる。結果として得られる8つの入力サンプルは、行列ベクトル乗算に入る。行列は、セットS
1からとられる。これは、予測ブロックの奇数位置上に16個のサンプルを与える。このように、サンプル当たり合計(8・16)/(8・8)=2回の乗算が行われる。オフセットを加えた後、これらのサンプルは、削減された上の境界を使って垂直方向に補間される。もとの左の境界を使って水平方向の補間が続く。このように、ALWIP予測を計算するために、サンプル当たり合計2回の乗算が必要とされる。
【0156】
図8は、8×4ブロックについて前記プロセスを示している。8×4ブロックが与えられると、ALWIPは境界の水平軸に沿って4つの平均と、左の境界上の4つのもとの境界値をとる。結果として得られる8つの入力サンプルは、行列ベクトル乗算に入る。行列は、セットS
1からとられる。これは、予測ブロックの奇数の水平位置、各垂直位置上に16個のサンプルを与える。このように、サンプル当たり合計(8・16)/(8・4)=4回の乗算が行われる。オフセットを加えた後、これらのサンプルは、もとの左の境界を使って水平方向に補間される。このように、ALWIP予測を計算するために、サンプル当たり合計4回の乗算が必要とされる。
【0157】
転置された場合は、それに応じて扱われる。
【0158】
図9は、16×16ブロックについて前記プロセスを示している。16×16ブロックが与えられると、ALWIPは境界の各軸に沿って4つの平均をとる。結果として得られる8つの入力サンプルは、行列ベクトル乗算に入る。行列は、セットS
2からとられる。これは、予測ブロックの奇数位置上に64個のサンプルを与える。このように、サンプル当たり合計(8・64)/(16・16)=2回の乗算が行われる。オフセットを加えた後、これらのサンプルは、上の境界の8つの平均を使って垂直方向に補間される。もとの左の境界を使って水平方向の補間が続く。よって、ALWIP予測を計算するために、サンプル当たり合計2回の乗算が必要とされる。
【0159】
より大きな形状については、手順は本質的に同じであり、サンプル当たりの乗算回数が4未満であることをチェックすることは容易である。
【0160】
W>8であるW×8ブロックについては、サンプルは奇数の水平位置および各垂直位置で与えられるので、水平補間のみが必要である。この場合、削減された予測を計算するために、サンプルあたり(8・64)/(W・8)=64/W回の乗算が実行される。W>16については、線形補間のために必要なサンプル当たりの追加的な乗算回数は、2未満である。このように、サンプルあたりの乗算の総数は4以下である。
【0161】
最後に、W>8であるW×4ブロックについては、Akが、ダウンサンプリングされたブロックの水平軸に沿った奇数番目の項目に対応する各行を除去することによって得られる行列であるとする。よって、出力サイズは32であり、ここでもまた、水平補間だけが、実行されるべく残っている。削減された予測を計算するために、サンプルあたり(8・32)/(W・4)=64/W回の乗算が実行される。線形補間のために、W=16については追加的な乗算は必要とされないが、W>16については、サンプル当たり2回未満の乗算が必要とされる。このように、乗算の総数は4以下である。
【0162】
転置された場合は、それに応じて扱われる。
【0163】
JVET‐N0217の寄与においては、最確モード(Most Probable Mode、MPM)リストを用いた手法もMIPイントラモードコーディングのために適用される。現在ブロックのために使われる2つのMPMリストがある:
1.現在ブロックが通常のイントラモード(すなわち、MIPイントラモードではなく)を使用する場合、6-MPMリストが使用される。
2.現在ブロックがMIPイントラモードを使用する場合、3-MPMリストが使用される。
【0164】
上記の2つのMPMリストはいずれも、近傍ブロックのイントラ予測モードに基づいて構築されており、よって、次のような場合が起こりうる:
1.現在ブロックが通常イントラ予測されている一方で、その近傍ブロック(単数または複数)の一つまたは複数がMIPイントラ予測を適用されている、または
2.現在ブロックがMIPイントラ予測を適用される一方で、その近傍ブロック(単数または複数)の一つまたは複数が通常イントラ予測を適用される。
【0165】
そのような状況下で、近傍イントラ予測モードは、ルックアップテーブルを用いて間接的に導出される。
【0166】
一例では、現在ブロックが通常イントラ予測されるが、
図13に示されるようなその上(A)のブロックがMIPイントラ予測を適用される場合、
次のルックアップテーブル1が使用される。上のブロックのブロック・サイズ・タイプおよび上のブロックのMIPイントラ予測モードに基づいて、通常イントラ予測モードが導出される。同様に、
図13に示されるような左(L)のブロックがMIPイントラ予測を適用される場合、左ブロックのブロック・サイズ・タイプおよび左ブロックのMIPイントラ予測モードに基づいて、通常イントラ予測モードが導出される。
【表6】
【0167】
一例では、現在ブロックがMIPイントラ予測を適用され、
図14に示されるようなその上(A)のブロックが通常イントラモードを使用して予測される場合、次のルックアップテーブル2が使用される。上のブロックのブロック・サイズ・タイプおよび上のブロックの通常イントラ予測モードに基づいて、MIPイントラ予測モードが導出される。同様に、
図14に示されるような左(L)のブロックが、左のブロックのブロック・サイズ・タイプおよび左のブロックの通常イントラ予測モードに基づいて、通常イントラ予測を適用される場合に、MIPイントラ予測モードが導出される。
【表7】
【0168】
JEMでは、(エンコーダでの)順方向の一次変換(primary transform)と量子化の間、および(デコーダ側での)脱量子化と逆一次変換の間において、二次変換(secondary transform)が適用される。
図10に示されるように、実行される4×4(または8×8)の二次変換は、ブロック・サイズに依存する。たとえば、小さなブロック(すなわち、min(幅,高さ)<8)については4×4二次変換が適用され、8×8ブロックあたり(per 8x8 block)より大きなブロック(すなわち、min(幅,高さ)>4)については8×8二次変換が適用される。
【0169】
非可分の変換の適用について、入力を例に用いて、以下のように説明する。
非分離型の変換を適用するには、4×4入力ブロックX
【数5】
がまず、ベクトル
【数6】
として表される:
【数7】
【0170】
非可分の変換は、
【数8】
として計算される。ここで、
【数9】
は変換係数ベクトルを示し、Tは16×16の変換行列である。その後、16×1の係数ベクトル
【数10】
は、そのブロックのための走査順序(水平、垂直、または対角)を使用して、4×4ブロックとして再編成される。より小さなインデックスをもつ係数は、4×4係数ブロックにおいて、該より小さな走査インデックスを用いて配置される。合計35個の変換セットがあり、変換セットあたり3個の非可分変換行列(カーネル)が使用される。イントラ予測モードから変換セットへのマッピングは、あらかじめ定義されている。各変換セットについて、選択された非可分の二次変換候補は、明示的に信号伝達された二次変換インデックスによってさらに指定される。インデックスは、ビットストリームにおいて、イントラCU毎に1回、変換係数の後に、信号伝達される。
【0171】
VVC5.0では、次の特徴をもつ新しいコーディングツールとして、提案JVET-N0193による縮小二次変換(reduced secondary transform、RST)が採用された。
【0172】
縮小変換(Reduced Transform、RT)の主な発想は、N次元ベクトルを異なる空間におけるR次元ベクトルにマッピングすることである。ここで、R/N(R<N)が縮小因子である。RT行列は次のようなR×N行列である:
【数11】
ここで、変換のR行はN次元空間のR個の基底である。RTの逆変換行列はその順変換の転置である。順方向および逆方向RTが
図11に示されている。
【0173】
縮小因子4(1/4サイズ)のRST8x8が適用される。よって、従来の8×8非可分変換行列サイズである64×64の代わりに、16×64の直接行列(direct matrix)が使用される。換言すれば、64×16の逆RST行列がデコーダ側で使用されて、8×8の左上領域(8x8 top-left regions)におけるコア(一次)変換係数を生成する。順方向RST8x8は16×64(または8×8ブロックについては8×64)行列を用い、所与の8×8領域内の左上の4×4領域(top-left 4x4 region)においてのみ0でない係数を生成する。換言すれば、RSTを適用される場合、左上の4×4領域を除く8×8領域は0の係数のみをもつ。RST4×4については、16×16(または4×4ブロックについては8×16)の直接行列乗算が適用される。
【0174】
逆RSTは、次の2つの条件が満たされるときに条件付きで適用される:
・ブロック・サイズが所与の閾値以上(W>=4 && H>=4)
・変換スキップモード・フラグが0に等しい
変換係数ブロックの幅(W)と高さ(H)の両方が4より大きい場合、RST8x8は変換係数ブロックの左上の8×8領域に適用される。そうでない場合、RST4x4が変換係数ブロックの左上のmin(8,W)×min(8,H)領域で適用される。
【0175】
RSTインデックスが0に等しい場合、RSTは適用されない。そうでない場合、RSTが適用され、そのカーネルはRSTインデックスを用いて選ばれる。
さらに、RSTは、イントラおよびインタースライスの両方におけるイントラCUについて、ルーマおよびクロマの両方について適用される。デュアルツリーが有効にされている場合、ルーマおよびクロマについてのRSTインデックスは別々に信号伝達される。インタースライス(デュアルツリーが無効)については、単一のRSTインデックスが信号伝達され、ルーマおよびクロマの両方について使用される。
【0176】
イントラサブパーティション(Intra Sub-Partitions、ISP)は、VVC4.0におけるイントラ予測モードである。ISPモードが選択されるとき、RSTは無効にされ、RSTインデックスは信号伝達されない。たとえすべての実現可能なパーティションブロックにRSTが適用されたとしても、パフォーマンスの改善はわずかであったためである。さらに、ISPで予測された残差についてRSTを無効にすることは、エンコードの複雑さを減らす可能性がある。
【0177】
RST行列は4つの変換セットから選ばれ、各変換セットは2つの変換を含む。どの変換セットが適用されるかは、イントラ予測モードから以下のように決定される。
【0178】
3つのCCLM(Cross-component linear model[成分横断線形モデル];このモードではルーマ成分からクロマ成分が予測される)モードのうちの1つが示される場合、変換セット0が選択される。それ以外の場合は、次の表に従って変換セット選択が実行される:
【表8】
テーブル3にアクセスするためのインデックスIntraPredModeは、[-14,83]の範囲をもつ。これは、広角イントラ予測のために使用される変換モード・インデックスである。
【0179】
変換セットの一例が次に示される。
【数12】
【数13】
【数14】
【数15】
【数16】
【数17】
【数18】
【数19】
【0180】
RST8×8またはRST4×4の場合、乗算回数の点で、すべてのTUが4×4TUまたは8×8TUのサイズをもつ時が発生することがある。よって、上部の8×64行列および8×16行列(すなわち、各行列における上からの最初の8個の変換基底ベクトル)が、それぞれ8×8TUおよび4×4TUに適用される。
【0181】
8×8TUより大きいブロック(幅と高さの両方が8より大きい)の場合、RST8×8(すなわち16×64行列)が左上の8×8領域に適用される。8×4TUまたは4×8TUについては、RST4×4(すなわち、16×16行列)が左上の4×4領域に適用される(一例では、RST4×4は他の4×4領域には適用されない)。4×NまたはN×4TU(N≧16)の場合、RST4×4は2つの隣接する左上の4×4ブロックに適用される。
【0182】
前述の単純化により、場合によっては、1サンプルあたりの乗算回数は8回である。
【0183】
二次変換行列サイズを小さくするために、
図12に示されるように、16×48行列が同じ変換セット構成で適用され、各16×48行列は、左上の8×8ブロックにおける3つの4×4ブロック(一例では、右下の諸4×4ブロックが除外される)から48個の入力サンプルを取る。
【0184】
VVC5.0では、MIPツールおよびRSTツールが開示されており、両方のツールがイントラブロックのために適用される。しかしながら、両方のツールは、二次変換コア選択の意味では調和されていない。言い換えれば、MIPは通常のイントラモードではなく、つまりMIPモードを使用して1つのイントラブロックが予測される場合、RST変換コア選択方法は、採用された提案JVET-N0217およびJVET-N0193の両方で定義されていない。以下の解決策は、上記の問題を解決する。
【0185】
図15は、本開示による方法を示す。
図15では、デコード装置またはエンコード装置によって実装されるコーディングの方法が示されている。デコード装置は、上述のようなデコーダ30であってもよい。同様に、エンコード装置は、上述のようなエンコーダ20であってもよい。
図15において、ステップ1601では、本方法は、現在ブロックのイントラ予測モードを決定することを含む。次のステップ1603では、本方法は、現在ブロックについて決定されたイントラ予測モードに基づいて、現在ブロックの二次変換の選択を決定することを含む。これについては、以下でさらに詳述する。
【0186】
図16は、本開示によるエンコーダ20を示す。
図16において、エンコーダ20は、現在ブロックのイントラ予測モードを決定するように構成された決定ユニット2001を有する。
図17のエンコーダ20は、さらに、現在ブロックについて決定されたイントラ予測モードに基づいて現在ブロックの二次変換の選択を決定するように構成された選択ユニット2003を示す。
【0187】
図17は、本開示によるデコーダ30を示す。
図17において、デコーダ30は、現在ブロックのイントラ予測モードを決定するように構成された決定ユニット3001を有する。
図17のデコーダ30は、さらに、現在ブロックについて決定されたイントラ予測モードに基づいて現在ブロックの二次変換の選択を決定するように構成された選択ユニット3003を示す。
【0188】
以下では、それぞれ
図17および
図16のデコード装置またはエンコード装置によって実装される
図15のコーディング方法が、さらに詳述される。
【0189】
解決策1.
解決策1によれば、行列ベースのイントラ予測と縮小二次変換は、同じイントラ予測ブロックについては除外される。
【0190】
一例では、イントラ予測されるブロックがMIPモードを使用して予測される場合(一例では、MIPモードを使用してブロックが予測されるか否かを示すためにMIPフラグの値が使用されてもよい)、二次変換は、このイントラ予測ブロックについては無効にされる。言い換えると、二次変換インデックスの値が0に設定されるか、または二次変換インデックスがビットストリームからデコードされる必要がない。
【0191】
イントラ予測されるブロックがMIPモードを用いて予測されるのでない場合、JVET-N0193の記述方法に基づいて二次変換の変換コアが選択される。JVET-N0193と比較した仕様テキスト変更はグレーでハイライト表示される。
【表9】
7.4.3.1 シーケンスパラメータセットRBSPの意味
……
sps_st_enabled_flagが1に等しいことは、イントラコーディング単位についての残差コーディングシンタックスにおいてst_idxが存在しうることを指定する。sps_st_enabled_flagが0に等しいことは、イントラコーディング単位についての残差コーディングシンタックスにおいてst_idxが存在しないことを指定する。
……
7.4.7.5 コーディング単位の意味
……
st_idx[x0][y0]は、選択された変換セットにおける2つの候補カーネル間でどちらの二次変換カーネルが適用されるかを指定する。st_idx[x0][y0]が0に等しいことは、二次変換が適用されないことを指定する。配列インデックスx0、y0は、ピクチャーの左上のサンプルに対する、考えられている変換ブロックの左上のサンプルの位置(x0,y0)を指定する。
intra_mip_flag[x0][y0]が1に等しいことは、ルーマ・サンプルについてのイントラ予測タイプがアフィン線形重み付けイントラ予測であることを指定する。intra_lwip_flag[x0][y0]が0に等しいことは、ルーマ・サンプルについてのイントラ予測タイプがアフィン線形重み付けイントラ予測ではないことを指定する。
【0192】
解決策2
解決策2によれば、二次変換の変換コア選択のプロセスの間、ブロックがMIPモードを用いて予測される場合、二次変換コア・セットの1つがこのブロックのために使用されると考えられる。
【0193】
ある実施形態では、
現在ブロックがMIPモードで予測されるとき、変換セット0が選択された二次変換コア・セットとして使用される。
【0194】
RST行列は4つの変換セットから選ばれ、各変換セットは2つの変換を含む。ブロックに適用される変換セットは、以下のように、イントラ予測モードに従って決定される:
現在イントラブロックがCCLMモードを使用して予測される場合は、変換セット0が選択される;
そうでない場合、現在イントラブロックがMIPモードを使用して予測される場合、変換セット0が選択される;
そうでない場合(現在イントラブロックがCCLMまたはMIPモードを使用して予測されない場合)、変換セットの選択は次の表に従って行われる:
【表10】
IntraPredModeのインデックス範囲は-14から83までの間(-14および83を含む)であり、これは、広角イントラ予測のために使用される変換されたモード・インデックスである。
【0195】
この解決策では、現在ブロックがMIPモードを使用して予測される場合に1つの変換セットが使用され、一例では変換セット0が使用され、他の変換セットもこの解決策において使用できる。
【0196】
解決策3
解決策3によれば、二次変換の変換コア選択のプロセスの間、ブロックがMIPモードを使用して予測される場合、トレーニングされた二次変換コア・セットがこのブロックのために使用されると考えられる。トレーニングされた二次変換コア・セットは、上記の例における変換コア・セットとは異なっていてもよい。
【0197】
ある実施形態では:
現在ブロックがMIPモードで予測されるとき、変換セット4(新しいトレーニングされたもの)が、選択された二次変換コア・セットとして使用される。
変換セット4は、特にMIPモードのための同じ機械学習方法および入力トレーニング・セットに基づいて新たにトレーニングされた変換セット0~3の同じ次元(すなわち、16×16および16×48)をもつ。
【0198】
RST行列は4つの変換セットから選ばれ、各変換セットは2つの変換を含む。
ブロックに適用される変換セットは、イントラ予測モードに従って、以下のように決定される:
現在イントラブロックがCCLMモードを使用して予測される場合、変換セット0が選択される;
そうでない場合、現在イントラブロックがMIPモードを使用して予測される場合、変換セット4が選択される;
そうでない場合(現在イントラブロックがCCLMまたはMIPモードを使用して予測されない場合)、変換セットの選択は次の表に従って行われる:
【表11】
IntraPredModeのインデックス範囲は-14から83までの間(-14および83を含む)であり、これは広角イントラ予測のために使用される変換されたモード・インデックスである。
【0199】
この解決策では、現在ブロックがMIPモードを使用して予測される場合、新しいトレーニングされた変換セット(たとえば、変換セット4)が使用される。
【0200】
解決策4
解決策4によれば、二次変換の変換コア選択のプロセスの間、ブロックがMIPモードを使用して予測される場合、ルックアップテーブルを用いてMIPモード・インデックスを通常のイントラモード・インデックスにマッピングし、次いで、この通常のイントラモード・インデックスに基づいて二次変換コア・セットが選択される。
【0201】
ある実施形態では:
現在ブロックがMIPモードを使用して予測される場合、MIPモード・インデックスは、テーブル6に基づいて通常のイントラモード・インデックスにマッピングされる。この例では、テーブル6はMIP MPMルックアップテーブルと同じである。
【表12】
【0202】
次いで、次のテーブルに従って、二次変換セットの選択が実行される:
【表13】
【0203】
たとえば、現在ブロックがMIPモード・インデックス10を使用して予測され、現在ブロックについてのブロック・サイズ・タイプsizeIDの値が0である場合、マップされた通常のイントラモード・インデックスは、テーブル6に基づいて18であり、テーブル7に基づいて二次変換セット2が選択される。
【0204】
この解決策では、ブロックがMIPモードを使用して予測される場合、MIPモード・インデックスから通常のイントラモード・インデックスへのマッピング方法が使用され、二次変換コア選択はマッピングされた通常のイントラモード・インデックスに基づく。
【0205】
図18は、コンテンツ配送サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、捕捉装置3102、端末装置3106を含み、任意的にディスプレイ3126を含む。捕捉装置3102は、通信リンク3104を通じて端末装置3106と通信する。通信リンクは、上述の通信チャネル13を含んでいてもよい。通信リンク3104は、WIFI、イーサネット、ケーブル、無線(3G/4G/5G)、USB、またはそれらの任意の種類の組み合わせなどを含むが、これらに限定されない。
【0206】
捕捉装置3102は、データを生成し、上記の諸実施形態に示されるようなエンコード方法によって該データをエンコードしてもよい。あるいはまた、捕捉装置3102は、ストリーミングサーバー(図には示されていない)にデータを配送することができ、サーバーは、データをエンコードし、エンコードされたデータを端末装置3106に送信する。捕捉装置3102は、カメラ、スマートフォンもしくはパッド、コンピュータもしくはラップトップ、ビデオ会議システム、PDA、車載装置、またはそれらの任意のものの組み合わせなどを含むが、これらに限定されない。たとえば、捕捉装置3102は、上述のように源装置12を含んでいてもよい。データがビデオを含む場合、捕捉装置3102に含まれるビデオ・エンコーダ20が、実際にビデオ・エンコード処理を実行してもよい。データがオーディオ(すなわち、音声)を含む場合、捕捉装置3102に含まれるオーディオ・エンコーダが、実際にオーディオ・エンコード処理を実行してもよい。いくつかの実際的なシナリオについては、捕捉装置3102は、エンコードされたビデオおよびオーディオ・データを、それらを一緒に多重化することによって配送する。たとえばビデオ会議システムにおける、他の実際的なシナリオについては、エンコードされたオーディオ・データおよびエンコードされたビデオ・データは多重化されない。捕捉装置3102は、エンコードされたオーディオ・データおよびエンコードされたビデオ・データを、端末装置3106に別個に配送する。
【0207】
コンテンツ供給システム3100では、端末装置310は、エンコードされたデータを受信および再生する。端末装置3106は、スマートフォンもしくはパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダー(NVR)/デジタルビデオレコーダー(DVR)3112、TV 3114、セットトップボックス(STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、パーソナルデジタルアシスタント(PDA)3122、車両搭載装置3124、またはこれらの任意のものの組み合わせなどであって上述したエンコードされたデータをデコードすることができるものといった、データ受信および復元能力を有する装置であってもよい。たとえば、端末装置3106は、上記のような宛先装置14を含んでいてもよい。エンコードされたデータがビデオを含む場合、端末装置に含まれるビデオ・デコーダ30は、ビデオ・デコードを実行するために優先される。エンコードされたデータがオーディオを含む場合、端末装置に含まれるオーディオ・デコーダは、オーディオ・デコード処理を実行するために優先される。
【0208】
ディスプレイを有する端末装置、たとえばスマートフォンもしくはパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダー(NVR)/デジタルビデオレコーダー(DVR)3112、TV 3114、パーソナルデジタルアシスタント(PDA)3122、または車両搭載装置3124の場合、端末装置は、デコードされたデータをそのディスプレイに与えることができる。ディスプレイを備えていない端末装置、たとえばSTB 3116、ビデオ会議システム3118、またはビデオ監視システム3120については、デコードされたデータを受信し、表示するために外部ディスプレイ3126がそこに接触される。
【0209】
このシステムにおける各装置がエンコードまたはデコードを実行するとき、上述した実施形態に示されるようなピクチャー・エンコード装置またはピクチャー・デコード装置が使用できる。
【0210】
図19は、端末装置3106の一例の構造を示す図である。端末装置3106が捕捉装置3102からストリームを受信した後、プロトコル進行ユニット3202が、ストリームの送信プロトコルを解析する。このプロトコルは、リアルタイムストリーミングプロトコル(RTSP)、ハイパーテキスト転送プロトコル(HTTP)、HTTPライブストリーミングプロトコル(HLS)、MPEG-DASH、リアルタイムトランスポートプロトコル(RTP)、リアルタイムメッセージングプロトコル(RTMP)、またはそれらの任意の種類の組み合わせなどを含むが、これらに限定されない。
プロトコル進行ユニット3202がストリームを処理した後、ストリームファイルが生成される。ファイルは、多重分離ユニット3204に出力される。多重分離ユニット3204は、多重化されたデータをエンコードされたオーディオ・データとエンコードされたビデオ・データとに分離することができる。上述したように、たとえばビデオ会議システムにおけるいくつかの実際的なシナリオについては、エンコードされたオーディオ・データおよびエンコードされたビデオ・データは多重化されない。この状況では、エンコードされたデータは、多重分離ユニット3204を介することなく、ビデオ・デコーダ3206およびオーディオ・デコーダ3208に送信される。
【0211】
多重分離処理を介して、ビデオ・エレメンタリーストリーム(ES)、オーディオES、および任意的に字幕が生成される。上述した諸実施形態で説明されたようなビデオ・デコーダ30を含むビデオ・デコーダ3206は、上述した諸実施形態に示されるようなデコード方法によってビデオESをデコードして、ビデオ・フレームを生成し、このデータを同期ユニット3212に与える。オーディオ・デコーダ3208は、オーディオESをデコードしてオーディオ・フレームを生成し、このデータを同期ユニット3212に与える。あるいはまた、ビデオ・フレームは、同期ユニット3212に与える前に、バッファ(
図19には示さず)に格納されてもよい。同様に、オーディオ・フレームは、同期ユニット3212に与える前に、バッファ(
図19には示さず)に格納されてもよい。
【0212】
同期ユニット3212は、ビデオ・フレームとオーディオ・フレームを同期させ、ビデオ/オーディオをビデオ/オーディオ・ディスプレイ3214に供給する。たとえば、同期ユニット3212は、ビデオおよびオーディオ情報の提示を同期させる。コーディングされたオーディオおよびビジュアルデータの提示に関するタイムスタンプおよびデータストリーム自体の送達に関するタイムスタンプを使用して、情報がシンタックスにおいてコーディングされてもよい。
【0213】
字幕がストリームに含まれる場合、字幕デコーダ3210は、字幕をデコードし、それをビデオ・フレームおよびオーディオ・フレームと同期させ、ビデオ/オーディオ/字幕をビデオ/オーディオ/字幕ディスプレイ3216に供給する。
【0214】
数学演算子
本願で使用される数学演算子は、Cプログラミング言語で使用されるものに似ている。しかしながら、整数除算演算および算術シフト演算の結果は、より精密に定義され、累乗および実数値除算などの追加的な演算が定義される。番号付けおよび計数の慣例は一般に0から始まる。たとえば、"1番目の"は0番目と等価であり、"第2の"は1番目と等価、などとなる。
【0215】
算術演算子
次の演算子は、次のように定義される:
+ 加算
- 減算(2引数演算子として)または符号を変えること(単項プレフィックス演算子として)
* 行列乗算を含む乗算
x
y 累乗。xのy乗を指定する。他の文脈では、そのような表記は、累乗としての解釈が意図されない上付きのために使用される。
/ 整数除算。結果は結果がゼロに向かって切り捨てられる。たとえば、7/4および-7/-4は切り捨てられて1となり、-7/4および7/-4は切り捨てられて-1となる。
÷ 切り捨てや丸めが意図されていない数式における除算を示すために使用される。
【数20】
切り捨てや丸めが意図されていない数式における除算を示すために使用される。
【数21】
iがxからyまで(yも含む)のすべての整数値をとるときのf(i)の総和
x%y モジュラス。xの残りをyで割った余り。x≧0かつy>0である整数xおよびyについてのみ定義される。
【0216】
論理演算子
次の論理演算子は次のように定義される:
x && y xとyのブール論理「and」
x||y xとyのブール論理「or」
! ブール論理「not」
x?y:z xが真であるまたは0に等しくない場合、yの値に評価され、そうでない場合はzの値に評価される。
【0217】
関係演算子
次の関係演算子は、次のように定義される:
> より大きい
>= より大きいまたは等しい
< より小さい
<= より小さいまたは等しい
== 等しい
!= 等しくない
値"na"(該当せず)が割り当てられたシンタックス要素または変数に関係演算子が適用される場合、値"na"はそのシンタックス要素または変数についての独特の値として扱われる。値"na"は他のどの値とも等しくないとみなされる。
【0218】
ビット単位の演算子
次のビット単位の演算子は次のように定義される:
& ビット単位の「かつ」。整数引数に対して作用する場合、整数値の2の補数表現に対して作用する。他の引数よりも少ないビットを含むバイナリー引数に対して作用するとき、短いほうの引数は、さらなる、0に等しい有効ビットを加えることによって延長される。
| ビット単位の「または」。整数引数に対して作用する場合、整数値の2の補数表現に対して作用する。他の引数よりも少ないビットを含むバイナリー引数に対して作用するとき、短いほうの引数は、さらなる、0に等しい有効ビットを加えることによって延長される。
^ ビット単位の「排他的なまたは」。整数引数に対して作用する場合、整数値の2の補数表現に対して作用する。他の引数よりも少ないビットを含むバイナリー引数に対して作用するとき、短いほうの引数は、さらなる、0に等しい有効ビットを加えることによって延長される。
x>>y xの2の補数整数表現の、y個の2進数字ぶんの算術右シフト。この関数は、yの負でない整数値についてのみ定義される。右シフトの結果として諸最上位ビット(MSB)にシフトされた諸ビットは、シフト演算の前のxのMSBに等しい値をもつ。
x<<y xの2の補数整数表現の、y個の2進数字ぶんの算術左シフト。この関数は、yの負でない整数値についてのみ定義される。左シフトの結果として諸最下位ビット(LSB)にシフトされた諸ビットは、0に等しい値をもつ。
【0219】
代入演算子
以下の算術演算子は、下記のように定義される:
= 代入演算子
++ インクリメント、すなわちx++はx=x+1と等価;配列〔アレイ〕インデックスにおいて使用される場合は、インクリメント演算の前の変数の値に評価される。
-- デクリメント、すなわちx--はx=x-1と等価;配列インデックスにおいて使用される場合は、デクリメント演算の前の変数の値に評価される。
+= 指定された量だけインクリメント。すなわちx+=3はx=x+3と等価であり、x+=(-3)はx=x+(-3)と等価である。
-= 指定された量だけデクリメント。すなわちx-=3はx=x-3と等価であり、x-=(-3)はx=x-(-3)と等価である。
【0220】
範囲記法
次の記法が、値の範囲を指定するために使用される:
x=y…z xは、yから始まってzまで(両端含む)の整数値をとる。ここで、x、y、zは整数であり、zはyより大きい。
【0221】
数学的関数
次の数学的関数が定義される:
【数22】
Asin(x) 三角法の逆正弦関数。-1.0から1.0の範囲(両端含む)にある引数xに対して作用する。出力値はラジアン単位で-π÷2からπ÷2の範囲(両端含む)。
Atan(x) 三角法の逆正接関数。引数xに対して作用する。出力値はラジアン単位で-π÷2からπ÷2の範囲(両端含む)。
【数23】
Ceil(x) x以上の最小の整数。
Clip1
Y(x)=Clip3(0,(1 << BitDepth
Y)-1,x)
Clip1
C(x)=Clip3(0,(1 << BitDepth
C)-1,x)
【数24】
Cos(x) ラジアン単位の引数xに対して作用する三角法の余弦関数。
Floor(x) x以下の最大の整数。
【数25】
Ln(x) xの自然対数(eを底とする対数。ここで、eは自然対数の底の定数2.718281828…)。
Log2(x) 2を底とするxの対数。
Log10(x) 10を底とするxの対数。
【数26】
Sin(x) ラジアン単位の引数xに作用する三角法の正弦関数
Sqrt(x)=√x
Swap(x,y)=(y,x)
Tan(x) ラジアン単位の引数xに作用する三角法の正接関数
演算優先順
式における優先順が括弧を使用して明示的に示されない場合、次の規則が適用される:
-より高い優先順位の演算が、より低い優先順位の演算の前に評価される。
-同じ優先順位の演算は、左から右へ逐次的に評価される。
【0222】
下記の表は、最高から最低までの演算の優先順位を指定する;表中の、より高い位置は、より高い優先順位を示す。
【0223】
Cプログラミング言語でも使用される演算子については、本明細書で使用される優先順は、Cプログラミング言語で使用されるものと同じである。
【0224】
表:最高(表のいちばん上)から最低(表のいちばん下)への演算優先順位
【表14】
論理演算のテキスト記述
テキストでは、数学的に次の形:
if(条件0)
陳述0
else if(条件1)
陳述1
…
else /* 残りの条件に関する参考用のコメント */
陳述n
で記述される論理演算の陳述は、次のように記述されてもよい:
…次のとおりである/…下記が適用される:
-もし条件0であれば、陳述0
-そうでない場合、条件1であれば、陳述1
-…
-そうでない場合(残りの条件に関する参考用のコメント)陳述n。
【0225】
テキストにおける「もし…であれば…、そうでない場合、…であれば…、そうでない場合…」という各陳述は、「…次のとおりである」または「…下記が適用される」によって導入されてそのすぐ後に「もし…」が続く。「もし…であれば…、そうでない場合、…であれば…、そうでない場合…」の最後の条件は、常に「そうでない場合…」であってもよい。間にはさまれる「もし…であれば…、そうでない場合、…であれば…、そうでない場合…」という陳述は、「…次のとおりである」または「…下記が適用される」を最後の「そうでない場合…」と対応させることによって識別できる。
【0226】
テキストでは、数学的に次の形:
if(条件0a & 条件0b)
陳述0
else if(条件1a || 条件1b)
陳述1
…
else
陳述n
で記述される論理演算の陳述は、次のように記述されてもよい:
…次のとおりである/…下記が適用される:
-もし次の条件のすべてが真であれば、陳述0:
-条件0a
-条件0b
-そうでない場合、次の条件のうち一つまたは複数が真であれば、陳述1
-条件1a
-条件1b
-…
-そうでない場合、陳述n。
【0227】
テキストでは、数学的に次の形:
if(条件0)
陳述0
if(条件1)
陳述1
で記述される論理演算の陳述は、次のように記述されてもよい:
条件0の場合、陳述0
条件1の場合、陳述1。
【0228】
本開示の実施形態は、主にビデオコーディングに基づいて説明されてきたが、コーディングシステム10、エンコーダ20およびデコーダ30(および対応してシステム10)の実施形態、ならびに本明細書に記載される他の実施形態は、静止ピクチャーの処理またはコーディング、すなわち、ビデオコーディングにおけるような何らかの先行または連続するピクチャーから独立した個々のピクチャーの処理またはコーディングのために構成されてもよいことに注意しておくべきである。一般に、ピクチャー処理コーディングが単一のピクチャー17に限定される場合、インター予測ユニット244(エンコーダ)および344(デコーダ)だけは利用可能でないことがある。ビデオ・エンコーダ20およびビデオ・デコーダ30の他のすべての機能(ツールまたは技術とも称される)は、静止ピクチャー処理についても等しく使用されうる。他の機能とは、たとえば、残差計算204/304、変換206、量子化208、逆量子化210/310、(逆)変換212/312、分割262/362、イントラ予測254/354、および/またはループ・フィルタリング220、320、およびエントロピーコーディング270、およびエントロピー復号304である。
【0229】
たとえばエンコーダ20およびデコーダ30の実施形態、ならびに、たとえばエンコーダ20およびデコーダ30を参照して本明細書に記載される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装されうる。ソフトウェアで実装される場合、機能は、一つまたは複数の命令またはコードとして、コンピュータ読み取り可能媒体に記憶されるかまたは通信媒体を通じて伝送され、ハードウェア・ベースの処理ユニットによって実行されてもよい。コンピュータ読み取り可能媒体は、データ記憶媒体のような有形の媒体に対応するコンピュータ読み取り可能記憶媒体、または、たとえば通信プロトコルに従って、ある場所から他の場所へのコンピュータ・プログラムの転送を容易にする任意の媒体を含む通信媒体を含んでいてもよい。このようにして、コンピュータ読み取り可能媒体は、一般に、(1)非一時的である有形のコンピュータ読み取り可能記憶媒体、または(2)信号または搬送波のような通信媒体に対応しうる。データ記憶媒体は、本開示に記載される技術の実装のための命令、コードおよび/またはデータ構造を取り出すために、一つまたは複数のコンピュータまたは一つまたは複数のプロセッサによってアクセスできる任意の利用可能な媒体でありうる。コンピュータ・プログラム製品は、コンピュータ読み取り可能媒体を含みうる。
【0230】
例として、そして限定するものではないが、そのようなコンピュータ読み取り可能記憶媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスク記憶、磁気ディスク記憶、または他の磁気記憶デバイス、フラッシュメモリ、または命令またはデータ構造の形で所望のプログラム・コードを記憶するために使用でき、コンピュータによってアクセスされることができる他の任意の媒体を含むことができる。また、任意の接続は、適切にコンピュータ読み取り可能媒体と称される。たとえば、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、電波、およびマイクロ波のような無線技術を用いて、ウェブサイト、サーバー、または他のリモートソースから命令が送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、電波、およびマイクロ波のような無線技術は、媒体の定義に含まれる。しかしながら、コンピュータ読み取り可能記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まず、代わりに非一時的で有形の記憶媒体に向けられることが理解されるべきである。本明細書で使用されるところのディスク(diskおよびdisc)は、コンパクトディスク(CD)、レーザーディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスクおよびブルーレイディスクを含み、ディスク(disk)は通例、磁気的にデータを再生し、一方、ディスク(disc)はレーザーを用いて光学的にデータを再生する。上記の組み合わせも、コンピュータ読み取り可能媒体の範囲内に含まれるべきである。
【0231】
命令は、一つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の同等の集積されたもしくは離散的な論理回路などの一つまたは複数のプロセッサによって実行されうる。よって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書に記載される技術の実装のために好適な任意の他の構造のいずれかを指しうる。さらに、いくつかの側面では、本明細書に記載される機能は、エンコードおよびデコードのために構成される専用ハードウェアおよび/またはソフトウェア・モジュール内で提供されてもよく、または組み合わされたコーデックに組み込まれてもよい。また、これらの技術は、一つまたは複数の回路または論理素子で完全に実装されることができる。
【0232】
本開示の技術は、ワイヤレスハンドセット、集積回路(IC)、または一組のIC(たとえば、チップセット)を含む、幅広い多様なデバイスまたは装置で実装されうる。本開示では、開示された技術を実行するように構成された装置の機能的側面を強調するために、さまざまなコンポーネント、モジュール、またはユニットが記載されるが、これらは必ずしも異なるハードウェア・ユニットによる実現を要求するものではない。むしろ、上述のように、さまざまなユニットは、コーデック・ハードウェア・ユニット内で組み合わされてもよく、または、上述のような一つまたは複数のプロセッサを好適なソフトウェアおよび/またはファームウェアとの関連で含む、相互運用されるハードウェア・ユニットの集まりによって提供されてもよい。
【0233】
本開示は、以下のさらなる側面を開示する。
【0234】
デコード装置またはエンコード装置によって実装されるコーディング方法の第1の側面であって:現在ブロックが行列ベースのイントラ予測、MIP、モードを使用して予測されない場合、現在ブロックのイントラ予測モード・インデックスに基づいて、現在ブロックの二次変換のための二次変換コアを選択するステップを含む、もの。
【0235】
第1の側面に記載の方法の第2の側面であって、前記方法は、現在ブロックがMIP、モードを使用して予測される場合、現在ブロックの二次変換を無効にするステップをさらに含む、もの。
【0236】
第2の側面による方法の第3の側面であって、現在ブロックの二次変換を無効にするステップは、現在ブロックについての二次変換指示情報の値をデフォルト値に設定することを含む、もの。
【0237】
第1の側面ないし第3の側面のいずれか1つに記載の方法の第4の側面であって、現在ブロックがMIPモードを使用して予測されるか否かは、MIP指示情報の値に従って示される、もの。
【0238】
デコード装置またはエンコード装置によって実装されるコーディング方法の第5の側面であって:現在ブロックの行列ベースのイントラ予測、MIP、モード・インデックスおよび現在ブロックのサイズに従って、現在ブロックのイントラ予測モード・インデックスを取得するステップと;
現在ブロックのイントラ予測モード・インデックスに基づいて現在ブロックの二次変換のための二次変換コアを選択するステップとを含む、もの。
【0239】
第5の側面に記載の方法の第6の側面であって、現在ブロックのイントラ予測モード・インデックスは、MIPモード・インデックス、現在ブロックのサイズの間のマッピング関係に従って得られ、前記マッピング関係は、あらかじめ定義されたテーブルに従って示される、もの。
【0240】
デコード装置またはエンコード装置によって実装されるコーディング方法の第7の側面であって:現在ブロックが行列ベースのイントラ予測、MIP、モードを使用して予測される場合、現在ブロックの二次変換についての二次変換コアを使用することを含む、もの。
【0241】
第7の側面に記載の方法の第8の側面であって、前記二次変換コアは、非MIPモードのために使用される前記二次変換コアの1つである、もの。
【0242】
第7の側面に記載の方法の第9の側面であって、前記二次変換コアは、非MIPモードのために使用される前記二次変換コアのどの1つとも異なる、もの。
【0243】
エンコーダ(20)の第10の側面であって、第1の側面ないし第9の側面のいずれか1つに記載の方法を実行するための処理回路を有するもの。
【0244】
デコーダ(30)の第11の側面であって、第1の側面ないし第9の側面のいずれか1つに記載の方法を実行するための処理回路を有するもの。
【0245】
第1の側面ないし第9の側面のいずれか1つに記載の方法を実行するためのプログラム・コードを含む、コンピュータ・プログラム・プロダクトの第12の側面。
【0246】
デコーダの第13の側面であって:
一または複数のプロセッサと;
前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ読み取り可能記憶媒体とを有しており、前記プログラミングは、前記プロセッサによって実行されると、第1の側面ないし第9の側面のいずれか1つに記載の方法を実行するように前記デコーダを構成する、もの。
【0247】
エンコーダの第13の側面であって:
一または複数のプロセッサと;
前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを記憶する非一時的コンピュータ読み取り可能記憶媒体とを有しており、前記プログラミングは、前記プロセッサによって実行されると、第1の側面ないし第9の側面のいずれか1つに記載の方法を実行するように前記エンコーダを構成する、もの。