IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 華為技術有限公司の特許一覧

特許7448602ビデオコーディングのための、サブブロックマージ候補のための個別マージリストと、イントラ-インター技術との調和
<>
  • 特許-ビデオコーディングのための、サブブロックマージ候補のための個別マージリストと、イントラ-インター技術との調和 図1A
  • 特許-ビデオコーディングのための、サブブロックマージ候補のための個別マージリストと、イントラ-インター技術との調和 図1B
  • 特許-ビデオコーディングのための、サブブロックマージ候補のための個別マージリストと、イントラ-インター技術との調和 図2
  • 特許-ビデオコーディングのための、サブブロックマージ候補のための個別マージリストと、イントラ-インター技術との調和 図3
  • 特許-ビデオコーディングのための、サブブロックマージ候補のための個別マージリストと、イントラ-インター技術との調和 図4
  • 特許-ビデオコーディングのための、サブブロックマージ候補のための個別マージリストと、イントラ-インター技術との調和 図5
  • 特許-ビデオコーディングのための、サブブロックマージ候補のための個別マージリストと、イントラ-インター技術との調和 図6
  • 特許-ビデオコーディングのための、サブブロックマージ候補のための個別マージリストと、イントラ-インター技術との調和 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-04
(45)【発行日】2024-03-12
(54)【発明の名称】ビデオコーディングのための、サブブロックマージ候補のための個別マージリストと、イントラ-インター技術との調和
(51)【国際特許分類】
   H04N 19/103 20140101AFI20240305BHJP
   H04N 19/159 20140101ALI20240305BHJP
   H04N 19/176 20140101ALI20240305BHJP
   H04N 19/51 20140101ALI20240305BHJP
   H04N 19/593 20140101ALI20240305BHJP
   H04N 19/70 20140101ALI20240305BHJP
【FI】
H04N19/103
H04N19/159
H04N19/176
H04N19/51
H04N19/593
H04N19/70
【請求項の数】 16
【外国語出願】
(21)【出願番号】P 2022133707
(22)【出願日】2022-08-25
(62)【分割の表示】P 2021522977の分割
【原出願日】2019-10-25
(65)【公開番号】P2022164747
(43)【公開日】2022-10-27
【審査請求日】2022-09-02
(31)【優先権主張番号】62/751,552
(32)【優先日】2018-10-27
(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)【参考文献】
【文献】Man-Shu Chiang, et al.,"CE10.1.1: Multi-hypothesis prediction for improving AMVP mode, skip or merge mode, and intra mode",JVET-L0100 (version 5),[online], Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2018年10月12日,Pages 1-14,[令和4年7月11日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=4181> and <URL: https://jvet-experts.org/doc_end_user/documents/12_Macao/wg11/JVET-L0100-v5.zip>.
【文献】Huanbang Chen, et al.,"CE4: Separate list for sub-block merge candidates (Test 4.2.8)",JVET-L0369 (version 2),[online], Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2018年10月03日,Pages 1-5,[令和4年7月11日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=4466> and <URL: https://jvet-experts.org/doc_end_user/documents/12_Macao/wg11/JVET-L0369-v2.zip>.
【文献】Ting Fu, et al.,"Non-CE4: separate merge candidate list for sub-block modes",JVET-K0364 (version 3),[online], Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2018年07月16日,Pages 1-5,[令和4年7月11日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=3882> and <URL: https://jvet-experts.org/doc_end_user/documents/11_Ljubljana/wg11/JVET-K0364-v3.zip>.
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
コーディングブロックについて、ビットストリームで第1制御フラグの値を送信することであり、前記第1制御フラグの値が1に等しいことは、第1技術が使用されるべきであることを示し、前記第1技術は、サブブロックマージ候補のための個別マージリストを使用することを有する、ことと、
前記第1技術が前記コーディングブロックについて使用されないとの決定に応答して、前記ビットストリームで第2制御フラグの値を送信することであり、前記第2制御フラグの値が1に等しいことは、第2技術が使用されるべきであることを示し、前記第2技術は、イントラ及びインターモードのための多重仮説予測を有し、前記第2制御フラグの値は、前記第1技術が前記コーディングブロックについて使用されない場合かつその場合に限り送信される、ことと
を有する方法。
【請求項2】
前記コーディングブロックがマージモードでコーディングされる場合に、前記第2制御フラグを送信することを更に有する、
請求項1に記載の方法。
【請求項3】
前記コーディングブロックがマージモードでコーディングされない場合に、前記第2制御フラグは送信されるべきではないと決定することを更に有する、
請求項2に記載の方法。
【請求項4】
前記コーディングブロックがスキップモードでコーディングされる場合に、前記第2制御フラグを送信することを更に有する、
請求項1に記載の方法。
【請求項5】
前記コーディングブロックがスキップモードで又はマージモードでコーディングされない場合に、前記第2制御フラグは送信されるべきではないと決定することを更に有する、
請求項4に記載の方法。
【請求項6】
コーディングブロックについて、ビットストリームから第1制御フラグの値を受け取ることであり、前記第1制御フラグの値が1に等しいことは、第1技術が使用されるべきであることを示し、前記第1技術は、サブブロックマージ候補のための個別マージリストを使用することを有する、ことと、
前記第1制御フラグの値が0に等しいとの決定に応答して、前記ビットストリームから第2制御フラグの値を受け取ることであり、前記第2制御フラグの値が1に等しいことは、第2技術が使用されるべきであることを示し、前記第2技術は、イントラ及びインターモードのための多重仮説予測を有し、前記第2制御フラグの値は、前記第1制御フラグが0に等しい場合かつその場合に限り送信される、ことと
を有する方法。
【請求項7】
前記コーディングブロックがマージモードでコーディングされる場合に、前記第2制御フラグを受信することを更に有する、
請求項6に記載の方法。
【請求項8】
前記コーディングブロックがマージモードでコーディングされない場合に、前記第2制御フラグは受信されるべきではないと決定することを更に有する、
請求項7に記載の方法。
【請求項9】
前記コーディングブロックがスキップモードでコーディングされる場合に、前記第2制御フラグを受信することを更に有する、
請求項6に記載の方法。
【請求項10】
前記コーディングブロックがスキップモードで又はマージモードでコーディングされない場合に、前記第2制御フラグは受信されるべきではないと決定することを更に有する、
請求項9に記載の方法。
【請求項11】
デコーダであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサへ結合され、前記デコーダに、
コーディングブロックについて、ビットストリームから第1制御フラグの値を受け取ることであり、前記第1制御フラグの値が1に等しいことは、第1技術が使用されるべきであることを示し、前記第1技術は、サブブロックマージ候補のための個別マージリストを使用することを有する、ことと、
前記第1制御フラグの値が0に等しいとの決定に応答して、前記ビットストリームから第2制御フラグの値を受け取ることであり、前記第2制御フラグの値が1に等しいことは、第2技術が使用されるべきであることを示し、前記第2技術は、イントラ及びインターモードのための多重仮説予測を有し、前記第2制御フラグの値は、前記第1制御フラグが0に等しい場合かつその場合に限り送信される、ことと
を実行させるよう前記少なくとも1つのプロセッサによって実行されるプログラミング命令を記憶する1つ以上のメモリと
を有するデコーダ。
【請求項12】
前記プログラミング命令は、前記デコーダに更に、
前記コーディングブロックがマージモードでコーディングされる場合に、前記第2制御フラグを受信させる
よう前記少なくとも1つのプロセッサによって実行される、
請求項11に記載のデコーダ。
【請求項13】
前記プログラミング命令は、前記デコーダに更に、
前記コーディングブロックがマージモードでコーディングされない場合に、前記第2制御フラグは受信されるべきではないと決定させる
よう前記少なくとも1つのプロセッサによって実行される、
請求項12に記載のデコーダ。
【請求項14】
前記プログラミング命令は、前記デコーダに更に、
前記コーディングブロックがスキップモードでコーディングされる場合に、前記第2制御フラグを受信させる
よう前記少なくとも1つのプロセッサによって実行される、
請求項11に記載のデコーダ。
【請求項15】
前記プログラミング命令は、前記デコーダに更に、
前記コーディングブロックがスキップモードで又はマージモードでコーディングされない場合に、前記第2制御フラグは受信されるべきではないと決定させる
よう前記少なくとも1つのプロセッサによって実行される、
請求項14に記載のデコーダ。
【請求項16】
ビデオ信号のエンコーディングされたビットストリームを記憶する非一時的な記憶媒体であって、
前記エンコーディングされたビットストリームは複数のコーディングブロック及び複数のシンタックス要素を含み、該複数のシンタックス要素は第1制御フラグの値を含み、該第1制御フラグの値が1に等しいことは、第1技術が使用されるべきであることを示し、前記第1技術は、サブブロックマージ候補のための個別マージリストを使用することを有し、
前記第1制御フラグの値が0に等しい場合に、前記複数のシンタックス要素は第2制御フラグの値を含み、該第2制御フラグの値が1に等しいことは、第2技術が使用されるべきであることを示し、前記第2技術は、イントラ及びインターモードのための多重仮説予測を有し、前記第2制御フラグの値は、前記第1制御フラグが0に等しい場合かつその場合に限り前記複数のシンタックス要素に含まれ
前記複数のシンタックス要素は、
前記エンコーディングされたビットストリームを受信したデコーダが、
各コーディングブロックについて、前記エンコーディングされたビットストリームから前記第1制御フラグをデコーディングし、
前記第1制御フラグが1に等しい値を有する場合には、前記第1技術を使用して、当該コーディングブロックから前記ビデオ信号の対応するビデオブロックを再構成し
前記第1制御フラグが0に等しい値を有する場合には、前記エンコーディングされたビットストリームから前記第2制御フラグを更にデコーディングし、
前記第2制御フラグが1に等しい値を有する場合には、前記第2技術を使用して、当該コーディングブロックから前記ビデオ信号の対応するビデオブロックを再構成する
ために使用される
非一時的な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願(開示)の実施形態は、ピクチャ処理の分野に概して関係があり、より具体的には、2つの方法の互いとの調和に関係がある。より具体的には、実施形態は、サブブロックマージ候補のための個別マージリストと、イントラ及びインターモード技術のための多重仮説予測との共同利用及びシグナリングの方法を提案する。
【背景技術】
【0002】
ビデオコーディング(ビデオエンコーディング及びデコーディング)は、広範なデジタルビデオアプリケーション、例えば、放送デジタルTV、インターネット及びモバイルネットワーク上でのビデオ伝送、ビデオチャットなどのリアルタイムの会話アプリケーション、ビデオ会議、DVD及びブルーレイ・ディスク、ビデオコンテンツ取得及び編集システム、並びにセキュリティアプリケーションのカムコーダ、において使用されている。
【0003】
比較的に短いビデオでさえ表現するために必要なビデオデータの量は相当である可能性があり、これは、バンド幅容量が限られている通信ネットワークにわたってデータがストリーミング又は別なふうに通信されるべきである場合に、困難を引き起こすことがある。よって、ビデオデータは、一般的には、今日的な電気通信ネットワークにわたって通信される前に、圧縮される。メモリ資源は限られていることがあるので、ビデオが記憶デバイスで記憶される場合に、ビデオのサイズも問題であり得る。ビデオ圧縮デバイスは、伝送又は記憶の前にビデオデータをコーディングするために発信元でソフトウェア及び/又はハードウェアをしばしば使用し、それによって、デジタルビデオ画像を表現するために必要なデータの量を低減する。圧縮されたデータは、次いで、ビデオデータをデコーディングするビデオ圧縮解除デバイスによって送り先で受信される。限られたネットワーク資源と、より高いビデオ品質の更に高まる需要とにより、ピクチャ品質を全く又はほとんど犠牲にせずに圧縮比を改善する改善された圧縮及び圧縮解除技術が望ましい。
【発明の概要】
【0004】
本開示は、ビデオをエンコーディング及びデコーディングする装置及び方法を提供する。
【0005】
本発明は、サブブロックマージ候補のための個別マージリストとともにイントラ及びインターモードのための多重仮説予測の利用及びシグナリングを調和させることを目標としている。
【0006】
上記の及び他の目的は、独立請求項の対象によって達成される。更なる実施形態は、従属請求項、明細書、及び図から明らかである。
【0007】
本発明の第1の態様に従って、ビデオデータをビットストリームにエンコーディングする方法が提供される。方法は、第1技術及び/又は第2技術を使用することを有する。第1技術は、サブブロックマージ候補のための個別マージリストを使用することを有する。第2技術は、イントラ及びインターモードのための多重仮説予測を有する。方法は、コーディングブロックについて、第1制御フラグをビットストリームにおいて送信することと、第1技術がコーディングブロックについて使用されるかどうかに応じて、第2制御フラグをビットストリームにおいて送信するか又は送信しないこととを有する。第1制御フラグは、第1技術を使用すべきかどうかを示す。第2制御フラグは、第2技術を使用すべきかどうかを示す。
【0008】
本発明の第2の態様に従って、ビットストリームで受信されたビデオデータをデコーディングする方法が提供される。方法は、第1技術及び/又は第2技術を使用することを有する。第1技術は、サブブロックマージ候補のための個別マージリストを使用することを有する。第2技術は、イントラ及びインターモードのための多重仮説予測を有する。方法は、コーディングブロックについて、ビットストリームから第1制御フラグを受信することであり、第1制御フラグは、第1技術を使用すべきかどうかを示す、ことと、第1技術がコーディングブロックについて使用されるかどうかに応じて、ビットストリームから第2制御フラグを受信することとを有する。第2制御フラグは、第2技術を使用すべきかどうかを示す。
【0009】
サブブロックマージ候補のための個別マージリストの技術が使用されるか否かの決定があると、イントラ及びインターモードのための多重仮説予測を使用すべきか否かを示す第2制御フラグを条件付きでのみ生成及び送信することは、本発明の特定のアプローチである。他方で、デコーダは、たとえ第2制御フラグが条件付きでしか送信されないとしても、イントラ及びインターモードのための多重仮説予測と、サブブロックマージ候補のための個別マージリストの技術との利用に関して決定する能力がある。
【0010】
第1の態様それ自体に従う方法の可能な実施形態において、第2制御フラグは、第1技術が前記コーディングブロックについて使用されない場合及びその場合に限り、送信される。
【0011】
前述の実施又は第1の態様それ自体に従う方法の可能な実施形態において、第2制御フラグは、コーディングブロックがマージモードでコーディングされる場合に、送信される。第1の態様の前述の実施に従う方法の可能な実施形態において、第2制御フラグは、コーディングブロックがマージモードでコーディングされない場合に、送信されない。第1の態様の前述の実施又は第1の態様それ自体に従う方法の可能な実施形態において、第2制御フラグは、コーディングブロックがスキップモードでコーディングされる場合に、送信される。第1の態様の前述の実施に従う方法の可能な実施形態において、第2制御フラグは、コーディングブロックがスキップモードで又はマージモードでコーディングされない場合に、送信されない。
【0012】
従って、本発明の特定のアプローチに従うシグナリングは、マージモード若しくはスキップモードのどちらか一方で、又はマージ及びスキップの両方のモードで、適用可能である。
【0013】
第2の態様それ自体に従う方法の可能な実施形態において、第1技術が使用されない場合にのみ、第2制御フラグは受信される。
【0014】
従って、デコーダは、受信されたビットストリーム内の第2制御フラグの存在から、個別マージリストの技術が現在のコーディングブロックについて使用されないことを直接に推測し得る。よって、サブブロック候補のための個別マージリストの技術を使用すべきか否かを示す第1制御フラグの評価は、受信されたビットストリームに第2制御フラグが含まれていない場合にしか必要でない。
【0015】
第2の態様の前述の実施又は第2の態様それ自体に従う方法の可能な実施形態において、第2制御フラグは、コーディングブロックがマージモードでコーディングされる場合に、受信される。第2の態様の前述の実施の方法の可能な実施形態において、第2制御フラグは、コーディングブロックがマージモードでコーディングされない場合に、受信されない。第2の態様の前述の実施形態又は第2の態様それ自体に従う方法の可能な実施形態において、第2制御フラグは、コーディングブロックがスキップモードでコーディングされる場合に、受信される。第2の態様の前述の実施形態に従う方法の可能な実施形態に従って、第2制御フラグは、コーディングブロックがスキップモードでコーディングされない場合に、受信されない。
【0016】
特許請求の範囲、明細書及び図で定義されているエンコーディング及びデコーディング方法は夫々、エンコーディング装置及びデコーディング装置によって夫々実行され得る。
【0017】
第3の態様に従って、本発明は、第1の態様それ自体又はその実施形態のいずれかに従う方法を実行する処理回路を有するエンコーダに関する。
【0018】
第4の態様に従って、本発明は、第2の態様それ自体又はその実施形態のいずれかに従う方法を実行する処理回路を有するデコーダに関する。
【0019】
第5の態様に従って、本発明はエンコーダに関する。エンコーダは、1つ以上のプロセッサと、プロセッサへ結合され、プロセッサによる実行のためのプログラミングを記憶している非一時的なコンピュータ可読記憶媒体とを有する。プログラミングは、プロセッサによって実行される場合に、第1の態様それ自体又はその実施形態のいずれかに従う方法を実行するようエンコーダを構成する。
【0020】
第6の態様に従って、本発明はデコーダに関する。デコーダは、1つ以上のプロセッサと、プロセッサへ結合され、プロセッサによる実行のためのプログラミングを記憶している非一時的なコンピュータ可読記憶媒体とを有する。プログラミングは、プロセッサによって実行される場合に、第2の態様それ自体又はその実施形態のいずれかに方法を実行するようデコーダを構成する。
【0021】
第7の態様に従って、本発明は、ビットストリームへのビデオデータのビデオエンコーディングのためのエンコーダであって、第1技術及び/又は第2技術を実行する手段を有するエンコーダに関する。第1技術は、サブブロックマージ候補のための個別マージリストを使用することを有する。第2技術は、イントラ及びインターモードのための多重仮説予測を有する。エンコーダは、コーディングブロックについて、第1制御フラグをビットストリームで送信する手段と、第1技術がコーディングブロックについて使用されるかどうかに応じて、第2制御フラグをビットストリームで送信するか又は送信しない手段とを更に有する。第1制御フラグは、第1技術を使用すべきかどうかを示す。第2制御フラグは、第2技術を使用すべきかどうかを示す。
【0022】
第8の態様に従って、本発明は、ビットストリームで受信されたビデオデータのビデオデコーディングのためのデコーダに関する。デコーダは、第1技術及び/又は第2技術を実行する手段を有する。第1技術は、サブブロックマージ候補のための個別マージリストを使用することを有する。第2技術は、イントラ及びインターモードのための多重仮説予測を有する。デコーダは、コーディングブロックについて、ビットストリームから第1制御フラグを受信する手段であり、第1制御フラグは、第1技術を使用すべきかどうかを示す、手段と、第1技術がコーディングブロックについて使用されるかどうかに応じて、ビットストリームから第2制御フラグを受信する手段とを更に有する。第2制御フラグは、第2技術を使用すべきかどうかを示す。
【0023】
更なる態様に従って、本発明は、コンピュータデバイスによって実行される場合に、コンピュータデバイスに、第1又は第2の態様に従う方法を実行させるプログラムコードを運ぶ非一時的なコンピュータ可読媒体に関する。
【0024】
第7及び第8の態様に従うエンコーダ及びデコーダの可能な実施形態は、第1及び第2の態様に従う方法の可能な実施形態に対応する。
【0025】
ビデオストリームをエンコーディングするための又はデコーディングするための装置は、プロセッサ及びメモリを含んでよい。メモリは、プロセッサにエンコーディング又はデコーディング方法を実行させる命令を記憶している。
【0026】
ここで開示されているエンコーディング又はデコーディング方法の夫々について、コンピュータ可読記憶媒体が提案され、記憶媒体は、実行される場合に、1つ以上のプロセッサにビデオデータをエンコーディング又はデコーディングさせる命令を記憶している。命令は、1つ以上のプロセッサに、各々のエンコーディング又はデコーディング方法を実行させる。
【0027】
更に、ここで開示されているエンコーディング又はデコーディング方法の夫々について、コンピュータプログラム製品が提案される。コンピュータプログラム製品は、各々の方法を実行するためのプログラムコードを有する。
【0028】
1つ以上の実施形態の詳細は、添付の図面及び以下の記載において説明される。他の特徴、目的、及び利点は、明細書、図面、及び特許請求の範囲から明らかであろう。
【0029】
加えて、本発明は、次の実施形態を更に提供する。
ビデオデータのエンコーディングされたビットストリームは、第1制御フラグと、第1制御フラグに基づいて条件付きで通知される第2制御フラグとを含む複数のシンタックス要素を有し、第1制御フラグは、第1技術が使用されるかどうかを示し、第1技術(S101)は、サブブロックマージ候補のための個別マージリストを使用することを有し、第2制御フラグは、第2技術が使用されるかどうかを示し、第2技術(S103)は、イントラ及びインターモードのための多重仮説予測を有する。
ビデオデコーディングデバイスによってデコーディングされるビットストリームを記憶しているコンピューティング記憶媒体が提供され、ビットストリームは、画像又はビデオ信号の多数のコーディングブロックと、第1制御フラグ及び第1制御フラグに基づいて条件付きで通知される第2制御フラグを含む多数のシンタックス要素とを有し、第1制御フラグは、第1技術が使用されるかどうかを示し、第1技術(S101)は、サブブロックマージ候補のための個別マージリストを使用することを有し、第2制御フラグは、第2技術が使用されるかどうかを示し、第2技術(S103)は、イントラ及びインターモードのための多重仮説予測を有する。
係属中の特許請求の範囲の請求項1乃至6に記載のエンコーディング方法のいずれかを使用することによって生成されたビデオ情報を記憶している非一時的なコンピュータ可読記憶媒体が、提供される。
【0030】
以下では、本発明の実施形態が、添付の図及び図面を参照して更に詳細に記載される。
【図面の簡単な説明】
【0031】
図1A】本発明の実施形態を実装するよう構成されたビデオコーディングシステムの例を示すブロック図である。
図1B】本発明の実施形態を実装するよう構成されたビデオコーディングシステムの他の例を示すブロック図である。
図2】本発明の実施形態を実装するよう構成されたビデオエンコーダの例を示すブロック図である。
図3】本発明の実施形態を実装するよう構成されたビデオデコーダの例示的な構造を示すブロック図である。
図4】エンコーディング装置又はデコーディング装置の例を表すブロック図である。
図5】エンコーディング装置又はデコーディング装置の他の例を表すブロック図である。
図6】本発明の実施形態に従う例示的なエンコーディング方法を表すフローチャートである。
図7】本発明の実施形態に従う例示的なデコーディング方法を表すフローチャートである。
【発明を実施するための形態】
【0032】
以下では、同じ参照符号は、明示的に別段の定めがない場合には、同じ又は少なくとも機能的に同等の特徴を参照する。
【0033】
以下の記載では、本開示の部分を形成し、実例として、本発明の実施形態の具体的な態様、又は本発明の実施形態が使用される可能性がある具体的な態様を示す添付の図が、参照される。本発明の実施形態は、他の態様で使用され、図に表されていない構造的又は論理的な変化を含んでもよい、ことが理解される。従って、以下の詳細な説明は、限定の意味で捉えられるべきではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。
【0034】
例えば、記載されている方法に関連する開示は、方法を実行するよう構成された対応するデバイス又はシステムにも当てはまり、その逆も同様であり得る、ことが理解される。例えば、1つ又は複数の具体的な方法ステップが記載される場合に、対応するデバイスは、記載されている1つ又は複数の方法ステップを実行する1つ又は複数のユニット、例えば、機能ユニット(例えば、1つ又は複数のステップを実行する1つのユニット、あるいは、複数のステップのうちの1つ以上を夫々が実行する複数のユニット)を、たとえそのような1つ以上のユニットが明示的に記載又は図示されていないとしても、含んでよい。他方で、例えば、具体的な装置が1つ又は複数のユニット、例えば、機能ユニットに基づいて記載される場合に、対応する方法は、1つ又は複数のユニットの機能を実行する1つ又は複数のステップ(例えば、1つ又は複数のユニットの機能を実行する1つのステップ、あるいは、複数のユニットのうちの1つ以上の機能を夫々が実行する複数のステップ)を、たとえそのような1つ又は複数のステップが明示的に記載又は図示されていないとしても、含んでよい。更に、ここで記載されている様々な例示的な実施形態及び/又は態様の特徴は、特段の断りのない限りは、互いに組み合わされてよい、ことが理解される。
【0035】
ビデオコーディングは、通常は、ビデオ又はビデオシーケンスを形成するピクチャの連続を処理することを指す。「ピクチャ」との用語の代わりに、「フレーム」又は「画像」との用語が、ビデオコーディングの分野では同義的に使用されることがある。ビデオコーディング(又はコーディング全般)は、2つの部分、すなわち、ビデオエンコーディング及びビデオデコーディングを有する。ビデオエンコーディングは、発信元側で行われ、(より効率的な記憶及び/又は送信のために)ビデオピクチャを表すために必要なデータの量を減らすよう原ビデオピクチャを(例えば、圧縮によって)処理することを通常は有する。ビデオデコーディングは、送り先側で行われ、ビデオピクチャを再構成するようエンコーダと比較して逆の処理を通常は有する。ビデオピクチャ(又はピクチャ全般)の“コーディング”に言及している実施形態は、ビデオピクチャ又は各々のビデオシーケンスの“エンコーディング”又は“デコーディング”に関係があると理解されるべきである。エンコーディング部分及びデコーディング部分の組み合わせは、CODEC(Coding and Decoding)とも呼ばれる。
【0036】
可逆ビデオコーディングの場合に、原ビデオピクチャは再構成可能である。すなわち、再構成されたビデオピクチャは、(記憶又は伝送中に伝送損失又は他のデータ損失がないとして)原ビデオピクチャと同じ品質を有する。不可逆ビデオコーディングの場合に、例えば、量子化による、更なる圧縮が、ビデオピクチャを表すデータの量を低減するために実行され、ビデオピクチャは、デコーダで完全には再構成され得ない。すなわち、再構成されたビデオピクチャの品質は、原ビデオピクチャの品質と比較して低下又は悪化する。
【0037】
いくつかのビデオコーディング標準規格は、“不可逆ハイブリッドビデオコーデック”のグループに属する(すなわち、サンプル領域での空間及び時間予測と、変換領域で量子化を適用する2D変換コーディングとを組み合わせる)。ビデオシーケンスの各ピクチャは、通常、重なり合わないブロックの組に分割され、コーディングは、通常はブロックレベルで実行される。すなわち、エンコーダでは、ビデオは、例えば、空間(イントラピクチャ)予測及び/又は時間(インターピクチャ)予測を使用して予測ブロックを生成し、現在のブロック(現在処理中の/処理されるべきブロック)から予測ブロックを減じて残差ブロックを取得し、残差ブロックを変換し、変換領域で残差ブロックを量子化して、送信されるべきデータの量を低減すること(圧縮)によって、通常はブロック(ビデオブロック)レベルで処理、すなわち、エンコーディングされ、一方、デコーダでは、エンコーダと比較して逆の処理が、表示のために現在のブロックを再構成するよう、エンコーディング又は圧縮されたブロックに適用される。更に、エンコーダは、デコーダ処理ループを複製し、それにより、両方が、その後のブロックを処理、すなわち、コーディングするために、同じ予測(例えば、イントラ及びインター予測)及び/又は再構成を生成することになる。
【0038】
以下では、ビデオコーディングシステム10、ビデオエンコーダ20、及びビデオデコーダ30の実施形態が、図1から3に基づいて説明される。
【0039】
図1Aは、例となるコーディングシステム10、例えば、本願の技術を利用し得るビデオコーディングシステム10(略して、コーディングシステム10)を表す概略ブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(略して、エンコーダ20)及びビデオデコーダ30(略して、デコーダ30)は、本願で記載されている様々な例に従う技術を実行するよう構成され得るデバイスの例を表す。
【0040】
図1Aに示されるように、コーディングシステム10は、エンコーディングされたピクチャデータ21を、例えば、エンコーディングされたピクチャデータ21をデコーディングする送り先デバイス14へ供給するよう構成された発信元デバイス12を有する。
【0041】
発信元デバイス12は、エンコーダ20を有し、更には、すなわち、任意に、ピクチャソース16、プリプロセッサ(又は前処理ユニット)18、例えば、ピクチャプリプロセッサ18、及び通信インターフェース又は通信ユニット22を有してよい。
【0042】
ピクチャソース16は、あらゆる種類のピクチャ捕捉デバイス、例えば、現実世界のピクチャを捕捉するカメラ、及び/又はあらゆる種類のピクチャ生成デバイス、例えば、コンピュータアニメーション化されたピクチャを生成するコンピュータグラフィクスプロセッサ、あるいは、現実世界のピクチャ、コンピュータにより生成されたピクチャ(例えば、スクリーンコンテンツ、仮想現実(VR)ピクチャ)及び/又はそれらのあらゆる組み合わせ(例えば、拡張現実(AR)ピクチャ)を取得及び/又は供給するあらゆる種類の他のデバイスを有するか、又はそのようなものであってよい。ピクチャソースは、上記のピクチャのいずれかを記憶するあらゆる種類のメモリ又はストレージであってよい。
【0043】
プリプロセッサ18及び前処理ユニット18によって実行される処理と区別して、ピクチャ又はピクチャデータ17は、ローピクチャ又はローピクチャデータ17とも呼ばれ得る。
【0044】
プリプロセッサ18は、(ロー)ピクチャデータ17を受け取り、そして、前処理されたピクチャ19又は前処理されたピクチャデータ19を取得するようピクチャデータ17に対して前処理を実行するよう構成される。プリプロセッサ18によって実行される前処理は、例えば、トリミング、色フォーマット変換(例えば、RGBからYCbCrへ)、色補正、又はノイズ除去を有してよい。前処理ユニット18は任意のコンポーネントであってよい、ことが理解され得る。
【0045】
ビデオエンコーダ20は、前処理されたピクチャデータ19を受け取り、エンコーディングされたピクチャデータ21を供給するよう構成される(更なる詳細は、例えば、図2に基づいて、以下で説明される)。
【0046】
発信元デバイス12の通信インターフェース22は、エンコーディングされたピクチャデータ21を受け取り、エンコーディングされたピクチャデータ21(又はそのあらゆる更に処理されたバージョン)を他のデバイス、例えば、送り先デバイス14又は何らかの他のデバイスへ、記憶又は直接の再構成のために通信チャネル13を介して送信するよう構成されてよい。
【0047】
送り先デバイス14は、デコーダ30(例えば、ビデオデコーダ30)を有し、更には、すなわち、任意に、通信インターフェース又は通信ユニット28、ポストプロセッサ32(又は後処理ユニット32)、及び表示デバイス34を有してよい。
【0048】
送り先デバイス14の通信インターフェース28は、エンコーディングされたピクチャデータ21(又はそのあらゆる更に処理されたバージョン)を、例えば、発信元デバイス12から直接に、又は何らかの他のソース、例えば、記憶デバイス、例えば、エンコーディングピクチャデータ記憶デバイスから受信し、エンコーディングされたピクチャデータ21をデコーダ30へ供給するよう構成される。
【0049】
通信インターフェース22及び通信インターフェース28は、発信元デバイス12と送り先デバイス14との間の直接通信リンク、例えば、直接の有線又は無線接続を介して、あるいは、あらゆる種類のネットワーク、例えば、有線若しくは無線ネットワーク又はそれらの任意の組み合わせ、又はあらゆる種類のプライベート及びパブリックネットワーク、あるいは、あらゆる種類のそれらの組み合わせを介して、エンコーディングされたピクチャデータ21又はエンコーディングされたデータ13を送信又は受信するよう構成されてよい。
【0050】
通信インターフェース22は、例えば、エンコーディングされたピクチャデータ21を適切なフォーマット、例えば、パケット、にパッケージ化し、且つ/あるいは、通信リンク又は通信ネットワーク上での送信のためのあらゆる種類の伝送エンコーディング又は処理を用いて、エンコーディングされたピクチャデータを処理するよう構成されてよい。
【0051】
通信インターフェース22の対応物を形成する通信インターフェース28は、例えば、伝送されたデータを受信し、エンコーディングされたピクチャデータ21を取得するようあらゆる種類の対応する伝送デコーディング若しくは処理及び/又はアンパッケージ化を用いて伝送データを処理するよう構成されてよい。
【0052】
通信インターフェース22及び通信インターフェース28は両方とも、図1Aで発信元デバイス12から送り先デバイス14を指している通信チャネル13のための矢印によって示される一方向通信インターフェース、又は双方向通信インターフェースとして構成されてよく、例えば、メッセージを送信及び受信するよう、例えば、接続をセットアップするよう、通信リンク及び/又はデータ伝送、例えば、エンコーディングされたピクチャデータ伝送に関するあらゆる他の情報を確認応答及び交換するよう構成されてよい。
【0053】
デコーダ30は、エンコーディングされたピクチャデータ21を受信し、デコーディングされたピクチャデータ31又はデコーディングされたピクチャ31を供給するよう構成される(更なる詳細は、例えば、図3又は図5に基づいて、以下で説明される)。
【0054】
送り先デバイス14のポストプロセッサ32は、後処理されたピクチャデータ33、例えば、後処理されたピクチャ33を取得するために、デコーディングされたピクチャデータ31(再構成されたピクチャデータとも呼ばれる)、例えば、デコーディングされたピクチャ31を後処理するよう構成される。後処理ユニット32によって実行される後処理は、例えば、色フォーマット変換(例えば、YCbCrからRGBへ)、色補正、トリミング、若しくはリサンプリング、又は例えば、デコーディングされたピクチャデータ31を、例えば、表示デバイス34による、表示のために準備する、あらゆる他の処理を有してよい。
【0055】
送り先デバイス14の表示デバイス34は、ピクチャを、例えば、ユーザ又は見る者に表示するために、後処理されたピクチャデータ33を受信するよう構成される。表示デバイス34は、再構成されたピクチャを表現するあらゆる種類のディスプレイ、例えば、内蔵型又は外付けディスプレイ又はモニタであっても又はそれを有してもよい。ディスプレイは、例えば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、エルコス(LCoS)、デジタル・ライト・プロセッサ(DLP)、又はあらゆる種類の他のディスプレイを有してよい。
【0056】
図1Aは、発信元デバイス12及び送りデバイス14を別個のデバイスとして表すが、デバイスの実施形態は、両方又は両方の機能、すなわち、発信元デバイス12又は対応する機能及び送り先デバイス14又は対応する機能を有してもよい。そのような実施形態で、発信元デバイス12又は対応する機能及び送り先デバイス14又は対応する機能は、同じハードウェア及び/又はソフトウェアを用いて、あるいは、別個のハードウェア及び/又はソフトウェア、又はそれらのあらゆる組み合わせによって、実施されてもよい。
【0057】
記載に基づいて当業者に明らかなように、異なるユニットの機能、あるいは、図1Aに示されている発信元デバイス12及び/又は送り先デバイス14内の機能の存在及び(厳密な)分割は、実際のデバイス及び用途に応じて様々であり得る。
【0058】
エンコーダ20(例えば、ビデオエンコーダ20)若しくはデコーダ30(例えば、ビデオデコーダ)又はエンコーダ20及びデコーダ30の両方は、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリートロジック、ハードウェア、それらのビデオコーディング専用の又は任意の組み合わせなどの、図1Bに示される処理回路を用いて実施されてよい。エンコーダ20は、図2のエンコーダ20及び/又はここで記載されるあらゆる他のエンコーダシステム若しくはサブシステムに関して論じられている様々なモジュールを具現するために処理回路46を用いて実施されてよい。デコーダ30は、図3のデコーダ30及び/又はここで記載されるあらゆる他のデコーダシステム若しくはサブシステムに関して論じられている様々なモジュールを具現するために処理回路46を用いて実施されてよい。処理回路は、後に論じられる様々な動作を実行するよう構成されてよい。図5に示されるように、技術が部分的にソフトウェアで実施される場合に、デバイスは、適切な、非一時的なコンピュータ可読記憶媒体においてソフトウェアのための命令を記憶してよく、本開示の技術を実行するために1つ以上のプロセッサを用いてハードウェアで命令を実行してよい。ビデオエンコーダ20及びビデオデコーダ30のどちらかは、例えば、図1Bに示されるように、単一のデバイスにおいて複合エンコーダ/デコーダ(CODEC)の部分として組み込まれてもよい。
【0059】
発信元デバイス12及び送り先デバイス14は、あらゆる種類の携帯型又は固定型デバイス、例えば、ノートブック又はラップトップコンピュータ、携帯電話機、スマートフォン、タブレット又はタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ受像機、表示デバイス、デジタルメディアプレイヤー、ビデオゲーム機、ビデオストリーミングデバイス(例えば、コンテンツサービスサーバ若しくはコンテンツ配信サーバ)、放送受信器デバイス、放送送信器デバイス、などを含む広範囲のデバイスのいずれかを有してよく、任意の種類のオペレーティングシステムを使用してもしなくてもよい。いくつかの場合に、発信元デバイス12及び送り先デバイス14は、無線通信のために装備されてよい。よって、発信元デバイス12及び送り先デバイス14は、無線通信デバイスであってよい。
【0060】
いくつかの場合に、図1Aに表されているビデオコーディングシステム10は、一例にすぎず、本願の技術は、エンコーディング及びデコーディングデバイス間の如何なるデータ通信も必ずしも含まないビデオコーディング設定(例えば、ビデオエンコーディング又はビデオデコーディング)に適用されてよい。他の例では、データは、ローカルメモリから取り出され、又はネットワーク上でストリーミングされる、などする。ビデオエンコーディングデバイスは、データをエンコーディングしてメモリに格納してよく、かつ/あるいは、ビデオデコーディングデバイスは、メモリからデータを取り出してデコーディングしてよい。いくつかの例で、エンコーディング及びデコーディングは、互いと通信せず、単にデータをエンコーディングしてメモリに格納し及び/又はメモリからデータを読み出してデコーディングするデバイスによって実行される。
【0061】
記載の便宜上、本発明の実施形態は、例えば、High-Efficiency Video Coding(HEVC)を又はITU-TのVideo Coding Experts Group(VCEG)及びISO/IECのMotion Picture Experts Group(MPEG)のJoint Collaboration Team on Video Coding(JCT-VC)によって開発された次世代ビデオコーディング標準規格であるVersatile Video coding(VVC)の参照ソフトウェアを参照して、ここで説明される、当業者は、本発明の実施形態がHEVC又はVVCに限定されないと理解するだろう。
【0062】
エンコーダ及びエンコーディング方法
図2は、本願の技術を実装するよう構成される、例となるビデオエンコーダ20の概略ブロック図を示す。図2の例では、ビデオエンコーダ20は、入力部201(又は入力インターフェース201)、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタユニット220、デコーディングピクチャバッファ(DPB)230、モード選択ユニット260、エントロピエンコーディングユニット270、及び出力部272(又は出力インターフェース272)を有する。モード選択ユニット260は、インター予測ユニット244、イントラ予測ユニット254、及びパーティショニングユニット262を含んでよい。インター予測ユニット244は、動き推定ユニット及び動き補償ユニット(図示せず)を含んでよい。図2に示されているビデオエンコーダ20は、ハイブリッドビデオエンコーダ、又はハイブリッドビデオコーデックに従うビデオエンコーダとも呼ばれ得る。
【0063】
残差計算ユニット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の“ビルトインデコーダ”を形成するとも言われる。
【0064】
ピクチャ及びピクチャパーティショニング(ピクチャ及びブロック)
エンコーダ20は、例えば、入力部202を介して、ピクチャ17(又はピクチャデータ17)、例えば、ビデオ又はビデオシーケンスを形成するピクチャの連続の中のピクチャ、を受け取るよう構成されてよい。受け取られたピクチャ又はピクチャデータは、前処理されたピクチャ19(又は前処理されたピクチャデータ19)であってもよい。簡単のために、以下の説明はピクチャ17に言及する。ピクチャ17は、現在のピクチャ又はコーディングされるべきピクチャとも呼ばれ得る(特に、ビデオコーディングにおいて、現在のピクチャを他のピクチャ、例えば、同じビデオシーケンス、すなわち、現在のピクチャも含むビデオシーケンスの、前にエンコーディング及び/又はデコーディングされたピクチャと区別するため)。
【0065】
(デジタル)ピクチャは、強度値を有するサンプルの2次元アレイ又はマトリクスであるか、又はそのようなものと見なされ得る。アレイ内のサンプルは、ピクセル(ピクチャ素子の省略形)又はペルとも呼ばれ得る。アレイ又はピクチャの水平及び垂直方向(又は軸)におけるサンプルの数は、ピクチャのサイズ及び/又は解像度を定義する。色の表現のために、通常は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つの対応するアレイであってよい。
【0066】
ビデオエンコーダ20の実施形態は、ピクチャ17を複数の(通常は重なり合わない)ピクチャブロック203に分割するよう構成されたピクチャパーティショニングユニット(図2に図示せず)を有してよい。これらのブロックは、ルートブロック、マクロブロック(H.264/AVC)又はコーディングツリーブロック(CTB)若しくはコーディングツリーユニット(CTU)(H.265/HEVC及びVVC)とも呼ばれ得る。ピクチャパーティショニングユニットは、ビデオシーケンスの全てのピクチャのための同じブロックサイズ及びブロックサイズを定義する対応するグリッドを使用するよう、あるいは、ピクチャ又はピクチャのサブセット若しくはグループの間でブロックサイズを変更し、各ピクチャを対応するブロックに分割するよう構成されてよい。
【0067】
更なる実施形態では、ビデオエンコーダは、ピクチャ17のブロック203、例えば、ピクチャ17を形成する1つ、いくつか、又は全てのブロックを直接に受け取るよう構成されてもよい。ピクチャブロック203は、現在のピクチャブロック又はコーディングされるべきピクチャとも呼ばれ得る。
【0068】
ピクチャ17のように、ピクチャブロック203はやはり、ピクチャ17よりも小さい寸法ではあるが、強度値(サンプル値)を有するサンプルの2次元アレイ又はマトリクスであるか、又はそのようなものと見なされ得る。すなわち、ブロック203は、例えば、1つのサンプルアレイ(例えば、モノクロピクチャ17の場合には、ルーマアレイ、又はカラーピクチャの場合には、ルーマ若しくはクロマアレイ)、又は3つのサンプルアレイ(例えば、カラーピクチャ17の場合に、ルーマ及び2つのクロマアレイ)、あるいは、適用されるカラーフォーマットに応じたあらゆる他の数及び/又は種類のアレイを有してよい。ブロック203の水平及び垂直方向(又は軸)におけるサンプルの数は、ブロック203のサイズを定義する。従って、ブロックは、例えば、サンプルのM×N(N行M列)アレイ、又は変換係数のM×Nアレイであってよい。
【0069】
図2に示されるビデオエンコーダ20の実施形態は、ブロックごとにピクチャ17をエンコーディングするよう構成されてよく、例えば、エンコーディング及び予測は、ブロック203ごとに実行される。
【0070】
残差計算
残差計算ユニット204は、ピクチャブロック203及び予測ブロック265(予測ブロック265に関する更なる詳細は後述される)に基づいて、例えば、サンプル領域で残差ブロック205を取得するようサンプルごとに(ピクセルごとに)ピクチャブロック203のサンプル値から予測ブロック265のサンプル値を減じることによって、残差ブロック205(残差205とも呼ばれる)を計算するよう構成されてよい。
【0071】
変換
変換処理ユニット206は、変換領域で変換係数207を取得するために残差ブロック205のサンプル値に対して変換、例えば、離散コサイン変換(DCT)又は離散サイン変換(DST)を適用するよう構成されてよい。変換係数207は、変換残差係数とも呼ばれ、変換領域での残差ブロック205を表し得る。
【0072】
変換処理ユニット206は、H.265/HEVCについて定められた変換などのDCT/DSTの整数近似を適用するよう構成されてよい。直交DCT変換と比較して、このような整数近似は、通常は、特定の係数によってスケーリングされる。順方向及び逆方向の変換によって処理される残差ブロックのノルムを保つために、追加のスケーリング係数が変換プロセスの部分として適用される。スケーリング係数は、通常は、シフト演算のための2のべき乗、変換係数のビットデプス、精度と実施コストとの間のトレードオフ、などであるスケーリング係数のような特定の制約に基づいて、選択される。例えば、具体的なスケーリング係数は、例えば、逆変換処理ユニット212(及び、例えば、ビデオデコーダ30での逆変換処理ユニット312による、対応する逆変換)による、逆変換のために定められ、エンコーダ20での、例えば、変換処理ユニット206による、順方向の変換のための対応するスケーリング係数は、それに応じて定められ得る。
【0073】
ビデオエンコーダ20(個々に、変換処理ユニット206)の実施形態は、例えば、ビデオデコーダ30が変換パラメータを受け取ってデコーディングのために使用し得るように、例えば、直接に、又はエントロピエンコーディングユニット270によりエンコーディング若しくは圧縮された、変換パラメータ、例えば、変換又は複数の変換のタイプを出力するよう構成されてよい。
【0074】
量子化
量子化ユニット208は、例えば、スカラー量子化又はベクトル量子化を適用することによって、量子化された係数209を取得するように変換係数207を量子化するよう構成されてよい。量子化された係数209は、量子化された変換係数209又は量子化された残差係数209とも呼ばれ得る。
【0075】
量子化プロセスは、変換係数207の一部又は全てと関連付けられたビットデプスを低減し得る。例えば、nビット変換係数は、量子化中にmビット変換係数にラウンドダウンされてよく、このとき、nはmよりも大きい。量子化の程度は、量子化パラメータ(QP)を調整することによって変更されてよい。例えば、スカラー量子化については、より細かい又はより粗い量子化を達成するために、異なるスケーリングが適用されてよい。より小さい量子化ステップサイズは、より細かい量子化に対応し、一方、より大きい量子化ステップサイズは、より粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、例えば、適用可能な量子化ステップサイズの予め定義された組へのインデックスであってよい。例えば、小さい量子化パラメータは、細かい量子化(小さい量子化ステップサイズ)に対応してよく、大きい量子化パラメータは、粗い量子化(大きい量子化ステップサイズ)に対応してよく、あるいは、その逆も同様である。量子化は、量子化ステップサイズによる除算を含んでよく、例えば、逆量子化ユニット210による、対応する及び/又は逆の逆量子化は、量子化ステップサイズによる乗算を含んでよい。いくつかの標準規格、例えば、HEVC、に従う実施形態は、量子化ステップサイズを決定するために量子化パラメータを使用するよう構成されてよい。一般に、量子化ステップサイズは、除算を含む式の固定点近似を用いて量子化パラメータに基づき計算され得る。追加のスケーリング係数は、量子化ステップサイズ及び量子化パラメータについての式の固定点近似で使用されるスケーリングのために変更される可能性がある残差ブロックのノルムを回復させるよう量子化及び逆量子化のために導入されてよい。1つの例となる実施では、逆変換及び逆量子化のスケーリングは組み合わされてよい。代替的に、カスタマイズされた量子化テーブルが使用され、エンコーダからデコーダへ、例えば、ビットストリームにおいて、伝えられてもよい。量子化は、不可逆演算であり、損失は、量子化ステップサイズの増大とともに増大する。
【0076】
ビデオエンコーダ20の実施形態(個々に、量子化ユニット208)は、例えば、ビデオデコーダ30が量子化パラメータを受け取ってデコーディングのために適用し得るように、例えば、直接に、又はエントロピエンコーディングユニット270によりエンコーディングされた、量子化パラメータ(QP)を出力するよう構成されてよい。
【0077】
逆量子化
逆量子化ユニット210は、例えば、量子化ユニット208と同じ量子化ステップサイズに基づいて又はそれを用いて、量子化ユニット208によって適用された量子化スキームの逆を適用することによって、逆量子化された係数211を取得するために、量子化された係数に対して量子化ユニット208の逆の量子化を適用するよう構成される。逆量子化された係数211は、逆量子化された残差係数211とも呼ばれ、通常は量子化による損失により変換係数と同じでないが、変換係数207に対応し得る。
【0078】
逆変換
逆変換処理ユニット212は、再構成された残差ブロック213(又は対応する逆量子化された係数213)をサンプル領域で取得するために、変換処理ユニット206によって適用された変換の逆変換、例えば、逆離散コサイン変換(DCT)若しくは逆離散サイン変換(DST)又は他の逆変換を適用するよう構成されてよい。再構成された残差ブロック213は、変換ブロック213とも呼ばれ得る。
【0079】
再構成
再構成ユニット214(例えば、加算器又は合算器214)は、例えば、再構成された残差ブロック213のサンプル値と予測ブロック265のサンプル値とをサンプルごとに足すことによって、再構成されたブロック215をサンプル領域で取得するために変換ブロック213(すなわち、再構成された残差ブロック213)を予測ブロック265に加えるよう構成される。
【0080】
フィルタリング
ループフィルタユニット220(略して「ループフィルタ」220)は、再構成されたブロック215にフィルタをかけてフィルタ処理されたブロック221を取得するよう、又は一般的に、再構成されたサンプルにフィルタをかけてフィルタ処理されたサンプルを取得するよう構成される。ループフィルタユニットは、例えば、ピクセル遷移を滑らかにするよう、あるいは、別なふうにビデオ品質を改善するよう構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ又は1つ以上の他のフィルタ、例えば、バイラテラルフィルタ、適応ループフィルタ(ALF)、先鋭化、平滑化フィルタ若しくは協調フィルタ、又はそれらの任意の組み合わせなどの1つ以上のループフィルタを有してよい。ループフィルタユニット220はインループフィルタであるものとして図2では示されているが、他の構成では、ループフィルタユニット220はポストループフィルタとして実装されてもよい。フィルタ処理されたブロック221は、フィルタ処理された再構成されたブロック221とも呼ばれ得る。
【0081】
ビデオエンコーダ20(個々に、ループフィルタユニット220)の実施形態は、例えば、デコーダ30が同じループフィルタパラメータ又は各々のループフィルタを受け取ってデコーディングのために適用し得るように、例えば、直接に、又はエントロピエンコーディングユニット270によりエンコーディングされた、ループフィルタパラメータ(例えば、サンプル適応オフセット情報)を出力するよう構成されてよい。
【0082】
デコーディングピクチャバッファ
デコーディングピクチャバッファ(DPB)230は、ビデオエンコーダ20によってビデオデータをエンコーディングするための参照ピクチャ、又は一般的に、参照ピクチャデータを記憶するメモリであってよい。DPB230は、同期DRAM(SDRAM)を含む動的ランダム・アクセス・メモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、又は他のタイプのメモリデバイスなどの様々なメモリデバイスのいずれかによって形成されてよい。デコーディングピクチャバッファ(DPB)230は、1つ以上のフィルタ処理されたブロック221を記憶するよう構成されてよい。デコーディングピクチャバッファ230は、同じ現在のピクチャの、又は異なるピクチャ、例えば、前に再構成されたピクチャの他の前にフィルタ処理されたブロック、例えば、前に再構成されフィルタ処理されたブロック221を記憶するよう更に構成されてよく、例えば、インター予測のために、完全な、前に再構成された、すなわち、デコーディングされたピクチャ(並びに対応する参照ブロック及びサンプル)及び/又は部分的に再構成された現在のピクチャ(並びに対応する参照ブロック及びサンプル)を提供してよい。デコーディングピクチャバッファ(DPB)230はまた、例えば、再構成されたブロック215がループフィルタユニット220によってフィルタをかけられていない場合に、1つ以上のフィルタ処理されていない再構成されたブロック215、又は一般的に、フィルタ処理されていない再構成されたサンプルを、あるいは、再構成されたブロック又はサンプルのあらゆる他の更に処理されたバージョンを記憶するよう構成されてもよい。
【0083】
モード選択(パーティショニング及び予測)
モード選択ユニット260は、パーティショニングユニット262、インター予測ユニット244及びイントラ予測ユニット254を有し、原ピクチャデータ、例えば、元のブロック203(現在のピクチャ17の現在のブロック203)と、再構成されたピクチャデータ、例えば、同じ(現在の)ピクチャの及び/又は1つ若しくは複数の前にデコーディングされたピクチャからの、例えば、デコーディングピクチャバッファ230若しくは他のバッファ(例えば、ラインバッファ、図示せず)からのフィルタ処理された及び/又はフィルタ処理されていない再構成されたサンプル又はブロックを受信又は取得するよう構成される。再構成されたピクチャデータは、予測ブロック265又は予測子265を取得するために、予測、例えば、インター予測又はイントラ予測のための参照ピクチャデータとして使用される。
【0084】
モード選択ユニット260は、現在のブロック予測モード(パーティショニングを含まない)のためのパーティショニングと、予測モード(例えば、イントラ又はインター予測モード)とを決定又は選択し、残差ブロック205の計算のために及び再構成されたブロック215の再構成のために使用される対応する予測ブロック265を生成するよう構成されてよい。
【0085】
モード選択ユニット260の実施形態は、最良の一致、すなわち、言い換えれば、最小限の残差(最小限の残差は、伝送又は記憶のためのより良い圧縮を意味する)、又は最小限のシグナリングオーバーヘッド(最小限のシグナリングオーバーヘッドは、伝送又は記憶のためのより良い圧縮を意味する)をもたらすか、あるいは、両方を考慮し若しくはバランスをとるパーティショニング及び予測モードを(例えば、モード選択ユニット260によってサポートされているか、又はそれのために利用可能なものから)選択するよう構成されてよい。モード選択ユニット260は、レート歪み最適化(RDO)に基づいてパーティショニング及び予測モードを決定するよう、すなわち、最低レート歪みをもたらす予測モードを選択するよう構成されてよい。本文脈中の「最良」、「最小限」、「最適化」などの用語は、必ずしも全面的な「最良」、「最小限」、「最適化」などを指さず、閾値を上回る又は下回る値のような終了又は選択基準の達成、あるいは、「次善の選択」につながる可能性はあるが複雑性及び処理時間を低減する他の制約を指してもよい。
【0086】
すなわち、パーティショニングユニット262は、例えば、四分木パーティショニング(QT)、二分木パーティショニング(BT)若しくはトリプル木パーティショニング(TT)、又はそれらの任意の組み合わせを繰り返し用いて、ブロック203をより小さいブロックパーティション又はサブブロック(再びブロックを形成する)に分割し、例えば、ブロックパーティション又はサブブロックの夫々についての予測を実行するよう構成されてよく、モード選択は、分割されたブロック203の木構造の選択を有し、予測モードは、ブロックパーティション又はサブブロックの夫々に適用される。
【0087】
以下では、例となるビデオエンコーダ20によって実行されるパーティショニング(例えば、パーティショニングユニット262による)及び予測処理(インター予測ユニット244及びイントラ予測ユニット254による)が、より詳細に説明される。
【0088】
パーティショニング
パーティショニングユニット262は、現在のブロック203をより小さいパーティション、例えば、正方形又は長方形サイズのより小さいブロックに分割(又は区分化)してよい。これらのより小さいブロック(サブブロックとも呼ばれる)は、より一層小さいパーティションに更に分割されてもよい。これは、ツリーパーティショニング又は階層ツリーパーティショニングとも呼ばれ、例えば、ルートツリーレベル0(階層レベル0、デプス0)での、ルートブロックは、再帰的に分割されてよく、例えば、次に下のツリーレベルの2つ以上のブロック、例えば、ツリーレベル1(階層レベル1、デプス1)でのノードに分割され、これらのブロックは、例えば、終了基準が満足されること、例えば、最大ツリーデプス又は最小ブロックサイズに達することで、パーティショニングが終了するまで、次に下のレベル、例えば、ツリーレベル2(階層レベル2、デプス2)など、の2つ以上のブロックに再び分割されてよい。これ以上分割されないブロックは、ツリーのリーフブロック又はリーフノードとも呼ばれる。2つのパーティションに分割することによるツリーは、二分木(BT)と呼ばれ、3つのパーティションに分割することによるツリーは、三分木(TT)と呼ばれ、4つのパーティションに分割することによるツリーは、四分木(QT)と呼ばれる。
【0089】
上述されたように、ここで使用される「ブロック」との用語は、ピクチャの部分、特に、正方形又は長方形部分であってよい。例えば、HEVC及びVVCを参照して、ブロックは、コーディングツリーユニット(CTU)、コーディングユニット(CU)、予測ユニット(PU)、及び変換ユニット(TU)、並びに/又は対応するブロック、例えば、コーディングツリーブロック(CTB)、コーディングブロック(CB)、変換ブロック(TB)若しくは予測ブロック(PB)であるか、又はこれらに対応してよい。
【0090】
例えば、コーディングツリーユニット(CTU)は、3つのサンプルアレイを有するピクチャのルーマサンプルのCTB、クロマサンプルの2つの対応するCTB、あるいは、モノクロピクチャ又は、3つの別々の色平面と、サンプルをコーディングするために使用されたシンタックス構造とを用いてコーディングされるピクチャのサンプルのCTBであるか、又はこれらを有してよい。相応して、コーディングツリーブロック(CTB)は、CTBへのコンポーネントの分割がパーティショニングであるように、Nの何らかの値について、サンプルのN×Nブロックであってよい。コーディングユニット(CU)は、3つのサンプルアレイを有するピクチャのルーマサンプルのコーディングブロック、クロマサンプルの2つの対応するコーディングブロック、あるいは、モノクロピクチャ又は、3つの別々の色平面と、サンプルをコーディングするために使用されたシンタックス構造を用いてコーディングされるピクチャのサンプルのコーディングブロックであるか、又はこれらを有してよい。相応して、コーディングブロック(CB)は、コーディングブロックへのCTBの分割がパーティショニングであるように、M及びNの何らかの値についてサンプルのM×Nブロックであってよい。
【0091】
実施形態において、例えば、HEVCに従って、コーディングツリーユニット(CTU)は、コーディングツリーとして表される四分木構造を用いてCUに分割されてよい。インターピクチャ(時間)又はイントラピクチャ(空間)予測を用いてピクチャエリアをコーディングすべきかどうかの決定は、CUレベルで行われる。各CUは、PU分割タイプに従って1つ、2つ又は4つのPUに更に分割され得る。1つのPU内では、同じ予測プロセスが適用され、関連情報は、PUベースでデコーダへ送られる。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CUは、CUのためのコーディングツリーに類似した他の四分木構造に従って変換ユニット(TU)に分割され得る。
【0092】
実施形態において、例えば、Versatile Video Coding(VVC)と呼ばれる、現在開発中の最新のビデオコーディング標準規格に従って、四分木及び二分木(QTBT)パーティショニングは、コーディングブロックを分割するために使用される。QTBTブロック構造では、CUは、正方形又は長方形のどちらかの形状を有することができる。例えば、コーディングツリーユニット(CTU)は、最初に四分木構造によって分割される。四分木リーフノードは、二分木又は三分(又はトリプル)木構造によって更に分割される。パーティショニングツリーリーフノードはコーディングユニット(CU)と呼ばれ、そのセグメンテーションは、これ以上のパーティショニングなしで予測及び変換処理のために使用される。これは、CU、PU及びTUがQTBTコーディングブロック構造では同じブロックサイズを有していることを意味する。同時に、多重パーティション、例えば、トリプル木パーティションも、QTBTブロック構造とともに使用されることが提案された。
【0093】
一例において、ビデオエンコーダ20のモード選択ユニット260は、ここで記載されるパーティショニング技術の任意の組み合わせを実行するよう構成されてよい。
【0094】
上述されたように、ビデオエンコーダ20は、(前もって決定された)予測モードの組から最良の又は最適な予測モードを決定又は選択するよう構成される。予測モードの組は、例えば、イントラ予測モード及び/又はインター予測モードを有してよい。
【0095】
イントラ予測
イントラ予測モードの組は、35個の異なるイントラ予測モード、例えば、DC(又は平均)モード及びプレーナーモードのような無指向性モード、又は例えば、HEVCで定義されるような、指向性モードを有してよく、あるいは、67個の異なるイントラ予測モード、例えば、DC(又は平均)モード及びプレーナーモードのような無指向性モード、又は例えば、VVCで定義されるような、指向性モードを有してよい。
【0096】
イントラ予測ユニット254は、イントラ予測モードの組の中のあるイントラ予測モードに従ってイントラ予測ブロック265を生成するために、同じ現在のピクチャの隣接ブロックの再構成されたサンプルを使用するよう構成される。
【0097】
イントラ予測ユニット254(又は一般に、モード選択ユニット260)は、例えば、ビデオデコーダ30が予測パラメータを受け取ってデコーディングのために使用し得るように、エンコーディングされたピクチャデータ21に含めるためにシンタックス要素266の形でイントラ予測パラメータ(又は一般に、ブロックのための選択されたイントラ予測モードを示す情報)をエントロピエンコーディングユニット270へ出力するよう更に構成される。
【0098】
インター予測
(とり得る)インター予測モードの組は、利用可能な参照ピクチャ(すなわち、例えば、DPB230に記憶されている、前の、少なくとも部分的にデコーディングされたピクチャ)及び他のインター予測パラメータ、例えば、参照ピクチャ全体又は参照ピクチャの一部分のみ、例えば、現在のブロックのエリアの周りの探索窓エリア、が最良の一致を示す参照ブロックを探すために使用されるかどうか、及び/又は例えば、ピクセル補間、例えば、ハーフ/セミペル及び/又は4分の1ペル補間、が適用されるか否か、に依存する。
【0099】
上記の予測モードに加えて、スキップモード及び/又はダイレクトモードが適用されてもよい。
【0100】
インター予測ユニット244は、動き推定(ME)ユニット及び動き補償(MC)ユニット(どちらも図2に図示せず)を含んでよい。動き推定ユニットは、ピクチャブロック203(現在のピクチャ17の現在のピクチャブロック203)及びデコーディングされたピクチャ231、あるいは、少なくとも1つ又は複数の前に再構成されたブロック、例えば、1つ又は複数の他の/異なる前にデコーディングされたピクチャ231の再構成されたブロックを、動き推定のために受信又は取得するよう構成されてよい。例えば、ビデオシーケンスは、現在のピクチャ及び前にデコーディングされたピクチャ231を有してよく、すなわち、言い換えると、現在のピクチャ及び前にデコーディングされたピクチャ231は、ビデオシーケンスを形成するピクチャの連続の部分であるか、又はそれを形成してよい。
【0101】
エンコーダ20は、例えば、複数の他のピクチャの中の同じ又は異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(又は参照ピクチャインデックス)及び/又は参照ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間オフセット)を動き推定ユニットへインター予測パラメータとして供給するよう構成されてよい。このオフセットは、動きベクトル(MV)とも呼ばれる。
【0102】
動き補償ユニットは、インター予測パラメータを取得、例えば、受信し、インター予測パラメータに基づいて又はそれを用いてインター予測を実行してインター予測ブロック265を取得するよう構成される。動き補償ユニットによって実行される動き補償は、動き推定によって決定された動き/ブロックベクトルに基づいて予測ブロックをフェッチ又は生成することを有してよく、場合により、サブピクセル精度への補間を実行する。補間フィルタリングは、既知のピクセルサンプルから追加のピクセルサンプルを生成してよく、よって、場合により、ピクチャブロックをコーディングするために使用され得る候補予測ブロックの数を増大させる。現在のピクチャブロックのPUについての動きベクトルを受け取ると、動き補償ユニットは、参照ピクチャリストの1つにおいて動きベクトルが指し示す予測ブロックを見つけ得る。
【0103】
動き補償ユニットはまた、ビデオスライスのピクチャブロックをデコーディングする際にビデオデコーダ30によって使用されるブロック及びビデオスライスと関連付けられたシンタックス要素を生成してもよい。
【0104】
エントロピコーディング
エントロピエンコーディングユニット270は、出力部272を介して、例えば、エンコーディングされたビットストリーム21の形で出力され得るエンコーディングされたピクチャデータ21を取得するために、量子化された係数209、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ及び/又は他のシンタックス要素に対して、例えば、エントロピエンコーディングアルゴリズム又はスキーム(例えば、可変長コーディング(VLC)スキーム、コンテキスト適応VLCスキーム(CAVLC)、算術コーディングスキーム、二値化、コンテキスト適応二値算術コーディング(CABAC)、シンタックスに基づくコンテキスト適応二値算術コーディング(SBAC)、確率区間パーティショニングエントロピ(PIPE)コーディング、又は他のエントロピエンコーディングメソッドロジ若しくは技術)を適用するか、あるいは、バイパスする(無圧縮)よう構成され、それにより、例えば、ビデオデコーダ30は、パラメータを受け取ってデコーディングのために使用し得る。エンコーディングされたビットストリーム21は、ビデオデコーダ30へ送られるか、あるいは、ビデオデコーダ30による後の伝送又は読み出しのためにメモリに記憶されてもよい。
【0105】
ビデオエンコーダ20の他の構造的変形は、ビデオストリームをエンコーディングするために使用され得る。例えば、非変換に基づくエンコーダ20は、特定のブロック又はフレームについて変換処理ユニット206によらずに直接に残差信号を量子化することができる。他の実施では、エンコーダ20は、単一のユニットにまとめられた量子化ユニット208及び逆量子化ユニット210を有することができる。
【0106】
デコーダ及びデコーディング方法
図3は、本願の技術を実装するよう構成されるビデオデコーダ30の例を示す。ビデオデコーダ30は、デコーディングされたピクチャ331を取得するために、例えば、エンコーダ20によってエンコーディングされた、エンコーディングされたピクチャデータ21(例えば、エンコーディングされたビットストリーム21)を受信するよう構成される。エンコーディングされたピクチャデータ又はビットストリームは、エンコーディングされたピクチャデータをデコーディングするための情報、例えば、エンコーディングされたビデオスライスのピクチャブロック及び関連するシンタックス要素を表すデータ、を含む。
【0107】
図3の例では、デコーダ30は、エントロピデコーディングユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(例えば、合算器314)、ループフィルタ320、デコーディングピクチャバッファ(DPB)330、インター予測ユニット344、及びイントラ予測ユニット354を有する。インター予測ユニット344は、動き補償ユニットであるか、又はそれを含んでよい。ビデオデコーダ30は、いくつかの例では、図2のビデオエンコーダ20に関して記載されたエンコーディングパスとは概して逆のデコーディングパスを実行してよい。
【0108】
エンコーダ20に関して説明されたように、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、デコーディングピクチャバッファ(DPB)230、インター予測ユニット244及びイントラ予測ユニット254は、ビデオエンコーダ20の“ビルトインデコーダ”を形成するとも言われる。従って、逆量子化ユニット310は、機能において逆量子化ユニット210と同じであってよく、逆変換処理ユニット312は、機能において逆変換処理ユニット212と同じであってよく、再構成ユニット314は、機能において再構成ユニット214と同じであってよく、ループフィルタ320は、機能においてループフィルタ220と同じであってよく、デコーディングピクチャバッファ330は、機能においてデコーディングピクチャバッファ230と同じであってよい。従って、ビデオエンコーダ20の各々のユニット及び機能について与えられている説明は、ビデオデコーダ30の各々のユニット及び機能にも相応して当てはまる。
【0109】
エントロピデコーディング
エントロピデコーディングユニット304は、ビットストリーム21(又は一般に、エンコーディングされたピクチャデータ21)をパースし、エンコーディングされたピクチャデータ21に対して、例えば、エントロピデコーディングを実行して、例えば、量子化された係数309及び/又はデコーディングされたコーディングパラメータ(図3に図示せず)、例えば、インター予測パラメータ(例えば、参照ピクチャインデックス及び動きベクトル)、イントラ予測パラメータ(例えば、イントラ予測モード又はインデックス)、変換パラメータ、量子化パラメータ、ループフィルタパラメータ、及び/又は他のシンタックス要素のいずれか又は全てを取得するよう構成される。エントロピデコーディングユニット304は、エンコーダ20のエントロピエンコーディングユニット270に関して説明されたエンコーディングスキームに対応するデコーディングアルゴリズム又はスキームを適用するよう構成されてよい。エントロピデコーディングユニット304は、インター予測パラメータ、イントラ予測パラメータ、及び/又は他のシンタックス要素をモード選択ユニット360へ、及び他のパラメータをデコーダ30の他のユニットへ供給するよう更に構成されてよい。ビデオデコーダ30は、ビデオスライスレベル及び/又はビデオブロックレベルでシンタックス要素を受け取ってよい。
【0110】
逆量子化
逆量子化ユニット310は、(例えば、エントロピデコーディングユニット304によって、例えば、パース及び/又はデコーディングすることによって)エンコーディングされたピクチャデータ21から量子化パラメータ(QP)(又は一般に、逆量子化に関する情報)及び量子化された係数を受け取り、量子化パラメータに基づいて、デコーディングされた量子化された係数309に対して逆量子化を適用して、変換係数311とも呼ばれ得る逆量子化された係数311を取得するよう構成されてよい。逆量子化プロセスは、量子化の程度及び、同様に、適用されるべき逆量子化の程度、を決定するために、ビデオスライス内の各ビデオブロックについてビデオエンコーダ20によって決定された量子化パラメータの使用を含んでよい。
【0111】
逆変換
逆変換処理ユニット312は、変換係数311とも呼ばれる逆量子化された係数311を受け取り、そして、再構成された残差ブロック313をサンプル領域で取得するために、逆量子化された係数311に対して変換を適用するよう構成されてよい。再構成された残差ブロック313は、変換ブロック313とも呼ばれ得る。変換は、逆変換、例えば、逆DCT、逆DST、逆整数変換、又は概念的に類似した逆変換プロセスであってよい。逆変換処理ユニット312は、逆量子化された係数311に適用されるべき変換を決定するために(例えば、エントロピデコーディングユニット304によって、例えば、パース及び/又はデコーディングすることによって)エンコーディングされたピクチャデータ21から変換パラメータ又は対応する情報を受け取るよう更に構成されてもよい。
【0112】
再構成
再構成ユニット314(例えば、加算器又は合算器314)は、例えば、再構成された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを足すことによって、再構成されたブロック315をサンプル領域で取得するように、再構成された残差ブロック313を予測ブロック365に加えるよう構成されてよい。
【0113】
フィルタリング
ループフィルタユニット320(コーディングループ内にあるか又はコーディングループの後にあるかのどちらか)は、フィルタ処理されたブロック321を取得するために、例えば、ピクセル遷移を滑らかにするか又は別なふうにビデオ品質を改善するために、再構成されたブロック315にフィルタをかけるよう構成される。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ又は1つ以上の他のフィルタ、例えば、バイラテラルフィルタ、適応ループフィルタ(ALF)、先鋭化、平滑化フィルタ若しくは協調フィルタ、又はそれらの任意の組み合わせなどの1つ以上のループフィルタを有してよい。ループフィルタユニット320はインループフィルタであるものとして図3では示されているが、他の構成では、ループフィルタユニット320はポストループフィルタとして実装されてもよい。
【0114】
デコーディングピクチャバッファ
ピクチャのデコーディングされたビデオブロック321は、次いで、デコーディングピクチャバッファ330に記憶される。デコーディングピクチャバッファ330は、他のピクチャのその後の動き補償のために、及び/又は夫々表示を出力するために、デコーディングされたピクチャ331を参照ピクチャとして記憶する。
【0115】
デコーダ30は、デコーディングされたピクチャ331を、例えば、出力部332を介して、提示又は視聴のためにユーザへ出力するよう構成される。
【0116】
予測
インター予測ユニット344は、インター予測ユニット244と(特に、動き補償ユニットと)同じであってよく、イントラ予測ユニット354は、機能においてイントラ予測ユニット254と同じであってよく、エンコーディングされたピクチャデータ21から(例えば、エントロピデコーディングユニット304によって、例えば、パース及び/又はデコーディングすることによって)受け取られたパーティショニング及び/又は予測パラメータ、あるいは、各々の情報に基づいて、分割又はパーティショニング決定及び予測を実行する。モード選択ユニット360は、再構成されたピクチャ、ブロック又は各々のサンプル(フィルタ処理された又はフィルタ処理されていない)に基づいてブロックごとに予測(イントラ又はインター予測)を実行して予測ブロック365を取得するよう構成されてよい。
【0117】
ビデオスライスが、イントラコーディングされた(I)スライスとしてコーディングされている場合に、モード選択ユニット360のイントラ予測ユニット354は、通知されたイントラ予測モードと、現在のピクチャの前にデコーディングされたブロックからのデータとに基づいて、現在のビデオスライスのピクチャブロックについての予測ブロック365を生成するよう構成される。ビデオピクチャが、インターコーディングされた(すなわち、B又はP)スライスとしてコーディングされている場合に、モード選択ユニット360のインター予測ユニット344(例えば、動き補償ユニット)は、エントロピデコーディングユニット304から受け取られた動きベクトル及び他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックについての予測ブロック365を生成するよう構成される。インター予測の場合に、予測ブロックは、参照ピクチャリストの1つの中の参照ピクチャの1つから生成されてよい。ビデオデコーダ30は、DPB330に記憶されている参照ピクチャに基づいてデフォルトの構成技術を用いて参照フレームリストList 0及びList 1を構成してよい。
【0118】
モード選択ユニット360は、動きベクトル及び他のシンタックス要素をパースすることによって現在のビデオスライスのビデオブロックについての予測情報を決定するよう構成され、そして、予測情報を用いて、デコーディング中の現在のビデオブロックについての予測ブロックを生成する。例えば、モード選択ユニット360は、現在のビデオスライス内のビデオフロックをデコーディングするために、受信されたシンタックス要素のいくつかを使用して、ビデオスライスのビデオブロックをコーディングするために使用された予測モード(例えば、イントラ又はインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスの参照ピクチャリストの1つ以上についての構成情報、スライスの各インターエンコーディングされたビデオブロックについての動きベクトル、スライスの各インターコーディングされたビデオブロックについてのインター予測ステータス、及び他の情報を決定する。
【0119】
ビデオデコーダ30の他の変形は、エンコーディングされたピクチャデータ21をデコーディングするために使用され得る。例えば、デコーダ30は、ループフィルタリングユニット320なしで出力ビデオストリームを生成することができる。例えば、非変換に基づくデコーダ30は、特定のブロック又はフレームについて逆変換処理ユニット312なしで直接に残差信号を逆量子化することができる。他の実施では、ビデオデコーダ30は、単一のユニットにまとめられた逆量子化ユニット310及び逆変換処理ユニット312を有することができる。
【0120】
エンコーダ20及びデコーダ30において、現在のステップの処理結果は更に処理され、それから次のステップへ出力されてよい、ことが理解されるべきである。例えば、補間フィルタリング、動きベクトル導出、又はループフィルタリングの後に、クリップ又はシフトなどの更なる操作が、補間フィルタリング、動きベクトル導出、又はループフィルタリングの処理結果に対して実行されてもよい。
【0121】
留意されるべきは、更なる操作が、現在のブロックの導出された動きベクトル(アフィンモードの制御点動きベクトル、アフィン、プレーナー、ATMVP(advanced temporal motion vector prediction)モードでのサブブロック動きベクトル、時間動きベクトル、などを含むが、これらに限られない)に適用されてよい点である。例えば、動きベクトルの値は、その表現ビットに従って、予め定義された範囲に制約される。動きベクトルの表現ビットがbitDepthである場合に、範囲は、-2^(bitDepth-1)~2^(bitDepth-1)-1であり、ここで、「^」は指数計算を意味する。例えば、bitDepthが16に等しくセットされる場合に、範囲は、-32768~32767であり、bitDepthが18に等しくセットされる場合に、範囲は、-131072~131071である。ここでは、動きベクトルを制約する2つの方法を提供する。
【0122】
方法1:次の演算によってオーバーフローMSB(最上位ビット)を除く

ux=(mvx+2bitDepth)%2bitDepth (1)

mvx=(ux>=2bitDepth-1)?(ux-2bitDepth):ux (2)

uy=(mvy+2bitDepth)%2bitDepth (3)

mvy=(uy>=2bitDepth-1)?(uy-2bitDepth):uy (4)

例えば、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)を適用することによる出力と同じである。

ux=(mvpx+mvdx+2bitDepth)%2bitDepth (5)

mvx=(ux>=2bitDepth-1)?(ux-2bitDepth):ux (6)

uy=(mvpy+mvdy+2bitDepth)%2bitDepth (7)

mvy=(uy>=2bitDepth-1)?(uy-2bitDepth):uy (8)

式(5)から(8)に示されるように、演算は、mvp(動きベクトル予測子)及びmvd(動きベクトル差)の合算中に適用されてよい。
【0123】
方法2:値をクリップすることによってオーバーフローMSBを除く

vx=Clip3(-2bitDepth-1,2bitDepth-1-1,vx)

vy=Clip3(-2bitDepth-1,2bitDepth-1-1,vy)

ここで、関数Clip3の定義は、次の通りである:
【数1】
【0124】
図4は、本開示の実施形態に従うビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、ここで記載されている開示実施形態を実装するのに適している。実施形態において、ビデオコーディングデバイス400は、図1Aのビデオデコーダ30などのデコーダ、又は図1Aのビデオエンコーダ20などのエンコーダであってよい。
【0125】
ビデオコーディングデバイス400は、データを受信するための入口ポート410(又は入力ポート410)及び受信器ユニット(Rx)420と、データを処理するためのプロセッサ、論理ユニット、又は中央演算処理装置(CPU)430と、データを送信するための送信器ユニット(Tx)440及び出口ポート450(又は出力ポート450)と、データを記憶するためのメモリ460とを有する。ビデオコーディングデバイス400はまた、光又は電気信号の出又は入りのために入口ポート410、受信器ユニット420、送信器ユニット440、及び出口ポート450へ結合された光電気(OE)コンポーネント及び電気光(EO)コンポーネントを有してもよい。
【0126】
プロセッサ430は、ハードウェア及びソフトウェアによって実装される。プロセッサ430は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサとして)、FPGA、ASIC、及びDSPとして実装されてよい。プロセッサ430は、入口ポート410、受信器ユニット420、送信器ユニット440、出口ポート450、及びメモリ460と通信する。プロセッサ430は、コーディングモジュール470を有する。コーディングモジュール470は、上述された開示実施形態を実装する。例えば、コーディングモジュール470は、様々なコーディング動作を実装、処理、準備、又は提供する。コーディングモジュール470の包含は、従って、ビデオコーディングデバイス400の機能性に実質的な改善をもたらし、異なる状態へのビデオコーディングデバイス400の変形を達成する。代替的に、コーディングモジュール470は、メモリ460に記憶されておりプロセッサ430によって実行される命令として実装される。
【0127】
メモリ460は、1つ以上のディスク、テープドライブ、及びソリッドステートドライブを有し、プログラムを、そのようなプログラムが実行のために選択される場合に、記憶するよう、かつ、プログラム実行中に読み出される命令及びデータを記憶するよう、オーバーフローデータ記憶デバイスとして使用されてよい。メモリ460は、例えば、揮発性及び/又は不揮発性であってよく、リード・オンリー・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、三値連想メモリ(TCAM)、及び/又は静的ランダム・アクセス・メモリ(SRAM)であってよい。
【0128】
図5は、例となる実施形態に従って図1の発信元デバイス12及び送り先デバイス14のどちらか一方又は両方として使用され得る装置500の略ブロック図である。
【0129】
装置500内のプロセッサ502は、中央演算処理装置であることができる。あるいは、プロセッサ502は、現在存在しているか又は今後開発される、情報を操作又は処理する能力があるあらゆる他のタイプのデバイス又は複数のデバイスであることができる。開示されている実施は、示されるように単一のプロセッサ、例えば、プロセッサ502により実施され得るが、速度及び効率の優位性は、1つよりも多いプロセッサを用いて達成され得る。
【0130】
装置500内のメモリ504は、実施においてリード・オンリー・メモリ(ROM)デバイス又はランダム・アクセス・メモリ(RAM)デバイスであることができる。あらゆる他の適切なタイプの記憶デバイスが、メモリ504として使用され得る。メモリ504は、バス512を用いてプロセッサ502によってアクセスされるコード及びデータ506を含むことができる。メモリ504は、オペレーティングシステム508及びアプリケーションプログラム510を更に含むことができ、アプリケーションプログラム510は、プロセッサ502がここで記載されている方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510は、ここで記載されている方法を実行するビデオコーディングアプリケーションを更に含むアプリケーション1からNを含むことができる。
【0131】
装置500はまた、ディスプレイ518などの1つ以上の出力デバイスも含むことができる。ディスプレイ518は、一例において、タッチ入力を検知するよう動作可能であるタッチ検知素子とディスプレイを組み合わせるタッチ検知ディスプレイであってよい。ディスプレイ518は、バス512を介してプロセッサ502へ結合され得る。
【0132】
ここでは単一のバスとして表されているが、装置500のバス512は、複数のバスから構成され得る。更に、二次記憶装置514は、装置500の他のコンポーネントへ直接に結合され得るか、あるいは、ネットワークを介してアクセス可能であり、メモリカードのような単一の集積ユニット又は複数のメモリカードのような複数のユニットを有することができる。装置500は、このようにして多種多様な構成において実装され得る。
【0133】
ビデオコーディングの近年の開発では、予測のためのより高度な技術及びスキームが出現している。
【0134】
1つのそのような技術は、多重仮説予測である。当初、「多重仮説予測」との用語は、1つの予測信号による動き補償を、いくつかの動き補償された予測信号の線形重ね合わせに拡張するために導入された。より最近では、このアプローチは、既存の予測モードを余分のマージインデキシング予測と組み合わせることに一般化されている。これは、特に、イントラ及びインターモード(すなわち、言い換えると、イントラ及びインター複合モード、例えば、Joint Video Experts Team(JVET),文書JVET-L0100-v3,タイトル“CE10.1.1: Multi-hypothesis prediction for improving AMVP mode, skip or merge mode, and intra mode”,第12回ミーティング,中国マカオ,2018年10月3~12日を参照)のための多重仮説予測を含む。このアプローチは、1つのイントラ予測及び1つのマージインデキシング予測を組み合わせることによって、イントラモードを改善するよう多重仮説予測を適用する。すなわち、イントラ及びインター両方の予測ブロックの線形結合が使用される。
【0135】
他の技術は、サブブロックマージ候補のための個別の、すなわち、レギュラーマージモードのためのマージ候補リストとは別のマージリストをブロックレベルで導入及び使用することである(例えば、Joint Video Experts Team(JVET),文書JVET-L0369-v2,タイトル“CE4: Separate list for sub-block merge candidates (Test 4.2.8))”,第12回ミーティング,中国マカオ,2018年10月3~12日を参照)。この技術は、特に、上記のATMVP及びアフィンモードに適用可能である。
【0136】
イントラ及びインターモード利用のための多重仮説予測は、イントラ及びインターモードのための多重仮説予測が現在のブロックに対して有効にされているか否かを指定するmh_intra_flagによって制御される。先行技術では、フラグmh_intra_flagは、次のシンタックステーブルに従って、merge_affine_flagに応じて条件付きで伝送される:
【表1】


よって、mh_intra_flagは、merge_affine_flagがゼロであるという条件の下で、条件付きで通知された。これは、アフィンマージとmh_intra_flag、すなわち、イントラ及びインターモードのための多重仮説予測との共同利用が使用不可能であることを意味する。しかし、それは、ATMVPをmh_intra_flagとともに使用することはできる。
【0137】
サブブロックマージ候補のための個別マージリストが最近採用された後、アフィンマージ候補は、atmvpマージ候補と結合され、これらのサブブロック候補の利用は、merge_subblock_flagと呼ばれる新たに導入されたパラメータによって制御される。個別のmerge_affine_flagはこれ以上使用されない。よって、シンタックスは、マージアフィンモードは使用されないがatmvpは使用される場合をこれ以上判別することを可能にしない。サブブロックマージ候補のための個別マージリストの存在下でイントラ及びインターモードを組み合わせる多重仮説予測を通知する新しい方法は、本発明の枠組みの中で開発されている。
【0138】
本発明は、コーデック内のサブブロックマージ候補のための個別マージリストの存在を想定して、イントラ及びインターモードのための多重仮説予測の利用及び通知の複数の方法を提案する。複数の調和の方法が可能であり、現在の開示に含まれている。また、スキップモードの場合におけるイントラ及びインターモードのための多重仮説予測の利用も開示される。
【0139】
本開示の1つの一般的な態様に従って、ビットストリームへのビデオデータのビデオエンコーディングの方法及びビットストリームで受信されたビデオデータのビデオデコーディングの方法が提供される。
【0140】
ビデオエンコーディングの方法は、第1技術及び/又は第2技術を適用することを有する。第1技術は、サブブロックマージ候補のための個別マージリストを使用することを有する。第2技術は、イントラ及びインターモードのための多重仮説予測を有する。方法は、第1制御フラグをビットストリームにおいて送信することであり、第1制御フラグは、第1技術を使用すべきかどうかを示す、ことと、第2制御フラグをビットストリームにおいて送信することであり、第2制御フラグは、第2技術を使用すべきかどうかを示す、こととを有する。
【0141】
ビデオデコーディングの方法は、第1技術及び/又は第2技術を適用することを有する。第1技術は、サブブロックマージ候補のための個別マージリストを使用することを有する。第2技術は、イントラ及びインターモードのための多重仮説予測を有する。方法は、ビットストリームから第1制御フラグを受信することであり、第1制御フラグは、第1技術を使用すべきかどうかを示す、ことと、ビットストリームから第2制御フラグを受信することであり、第2制御フラグは、第2技術を使用すべきかどうかを示す、こととを有する。
【0142】
実施形態に従って、イントラ及びインターモードのための多重仮説予測の技術の利用は、サブブロックマージ候補のための個別マージリストの技術の利用とは無関係に制御される。すなわち、かような実施形態では、第1制御フラグ(merge_subblock_flag)のシグナリングは、第2制御フラグ(mh_intra_flag)のシグナリングとは無関係に行われる。
【0143】
一実施形態において、イントラ及びインターモードのための多重仮説予測は、merge_subblock_flagの依存せずに通知されるmh_intra_flagによって制御される。この場合に、イントラ及びインターモードのための多重仮説予測は、両方のサブブロックモード、すなわち、アフィン及びatmvpについて、かつ、通常のマージについて、可能である。以下のシンタックステーブルは、この実施形態におけるmh_intra_flagの可能な通知方法を示す。
【表2】

上記のテーブルでは、イントラ及びインターモードを組み合わせる多重仮説予測の使用は、マージモードでブロックをコーディングすることに制限される。
【0144】
【表3】

上記のテーブルでは、イントラ及びインターモードを組み合わせる多重仮説予測の使用は、マージモードでブロックをコーディングすること及びスキップモードでブロックをコーディングすることの両方に適用可能である。
【0145】
本発明の実施形態において、イントラ及びインターモードのための多重仮説予測は、merge_subblock_flagに基づいて通知されるmh_intra_flagによって制御される。この場合に、イントラ及びインターモードのための多重仮説予測は、両方のサブブロックモード、すなわち、アフィン及びatmvpが使用不可能である場合にのみ可能である。すなわち、イントラ及びインターモードのための多重仮説予測は、通常のマージモードで可能であるが、イントラ及びインターモードのための多重仮説予測とサブブロックマージ候補のための個別マージリストとの組み合わせは、使用不可能である。以下のシンタックステーブルは、この実施形態におけるmh_intra_flagの可能な通知方法を示す。
【表4】

上記のテーブルでは、イントラ及びインターモードを組み合わせる多重仮説予測の使用は、マージモードでブロックをコーディングすることに制限される。
【0146】
【表5】

上記のテーブルでは、イントラ及びインターモードを組み合わせる多重仮説予測の使用は、マージモードでブロックをコーディングすること及びスキップモードでブロックをコーディングすることの両方に適用可能である。
【0147】
上記の実施形態の枠組み内で、エンコーダは、サブブロック候補のための個別マージリストが使用不可能である場合、すなわち、merge_subblock_flag(「第1フラグ」)がゼロである場合にのみ、mh_intra_flag(ciip_flagとも呼ばれる「第2フラグ」)を通知する。他方で、mh_intra_flagが含まれているビットストリームを受信するデコーダは、サブブロック候補のための個別マージリストが使用不可能であることをデフォルトで決定する。
【0148】
以下では、上記の実施形態に従う処理が、図6及び7のフローチャートを参照して説明される。
【0149】
図6は、本発明の実施形態に従うエンコーダ側プロセスを説明するフローチャートである。
【0150】
プロセスは、ステップS101で、サブブロック候補のための個別マージリストを使用すべきか否かの決定から始まる。これが該当しない場合(S101:いいえ)、処理はステップS103へ進む。ステップS103で、イントラ及びインターモードを組み合わせる多重仮説予測が使用されるか否かが決定される。その決定の結果と無関係に、処理はその後にステップS105へ進む。ステップS105で、mh_intra_flagが、ビットストリームで通知されるべきパラメータとして生成される。より具体的には、イントラ及びインターモードのための多重仮説予測が使用される場合(S103:はい)、値“1”がmh_intra_flagにセットされ、イントラ及びインターモードのための多重仮説予測が使用されない場合(S103:いいえ)、値“0”がmh_intra_flagにセットされる(図示せず)。
【0151】
その後に、処理はステップS107へ進む。サブブロック候補のための個別マージリストを使用することがステップS101で決定される場合(S101:はい)、処理は、ステップS101から直接にステップS107へ進む。
【0152】
ステップS107で、merge_subblock_flagは、ビットストリームで通知されるべきパラメータとして生成される。より具体的には、個別マージリストの利用の場合、すなわち、フローがS101:はいから進む場合、値“1”がmerge_subblock_flagにセットされ、フローがS101:いいえからS103及びS105を通ってくる場合、すなわち、個別マージリストが使用されない場合、merge_subblock_flagは値“0”にセットされる(図示せず)。
【0153】
従って、イントラ及びインターモードのための多重仮説予測は、サブブロック候補のための個別マージリストが使用されないという条件の下で、条件付きでのみ使用される。そのため、merge_subblock_flagはいつでも生成されるが、mh_intra_flagは、サブブロック候補のための個別マージリストが使用されない場合にのみ生成される。その後に、merge_subblock_flagを含み、条件付きで(merge_subblock_flagが0である場合に)mh_intra_flagも含むビットストリームがステップS109で生成され、処理は終了する。
【0154】
図7は、本発明の実施形態に従うデコーダ側処理を説明するフローチャートである。
【0155】
処理は、受信されたビットストリームがパースされるステップS201から始まる。続くステップS203で、ビットストリームにmh_intra_flagがあるかどうかが確認される。これが該当する場合(S203:はい)、処理はステップS207へ進む。ステップS207で、mh_intra_flagは、パースされたmh_intra_flagの値に応じて、イントラ及びインターモードのための多重仮説予測がデコーディングで使用されるべきかどうかを決定するために評価される。mh_intra_flagが1の値を有している場合に、デコーディングは、ステップ(S207:はい→S211)でイントラ及びインターモードのための多重仮説予測を使用して実行され、処理は終了する。そうではない場合、すなわち、mh_intra_flagが0の値を有している場合(S207:いいえ)、多重仮説予測は使用されない(また、サブブロック候補のための個別マージリストも使用されない)。
【0156】
他方で、mh_intra_flagがないとステップS203で決定される場合(S203:いいえ)、処理はステップS204へ進む。ステップS204で、ビットストリームから受け取られたmerge_subblock_flagが、サブブロック候補のための個別マージリストを使用すべきか否を次のステップ(S205)で決定するために評価される。
【0157】
ステップS205で、merge_subblock_flagが1の値を有している場合、個別マージリストは使用されるべきであると決定され(S205:はい)、処理は、個別マージリストを用いてデコーディングが行われるステップS209へ進む。そうではない場合、すなわち、merge_subblock_flagが0の値を有している場合(S205:いいえ)、個別マージリストを用いずに(また、イントラ及びインターモードのための多重仮説予測を用いずに)デコーディングは実行されると決定され、処理フローは終了する。
【0158】
従って、実施形態に従って、パースされたビットストリーム内のmh_intra_flagの存在(S203:はい)から、サブブロック候補のための個別マージリストが使用されないことが直接に推測される。
【0159】
すなわち、いつでもビットストリームに含まれて受信されるmerge_subblock_flagは、mh_intra_flagがビットストリームに含まれていない場合にのみ解析される。よって、如何なる場合にも、単一のフラグしかデコーダ側では評価される必要がない。
【0160】
より一般的に言えば、本発明に従って、イントラ及びインターモードのための多重仮説予測の技術の利用は、サブブロックマージ候補のための個別マージリストの技術の利用に基づいて制御される。より具体的には、図7の実施形態に従って、イントラ及びインターモードのための多重仮説予測の技術は、サブブロックマージ候補のための個別マージリストの技術が使用不可能である場合及びその場合に限り使用され得る。
【0161】
上記の実施形態は、イントラ及びインターモードのための多重仮説予測をサブブロックマージ候補のための個別マージリストと調和させることを可能にする。ブロックスキップモードでのイントラ及びインターモードのための多重仮説予測の利用も可能にする実施形態は、基本設計に関してコーディングゲインを達成することを更に可能にする。サブブロックマージ候補のための個別マージリストの利用に基づくmh_intra_flagの条件付きシグナリングを含む実施形態は、mh_intra_flagが夫々の場合に通知される必要がないので、シグナリングオーバーヘッドを低減するという付加的な利点がある。
【0162】
数学演算子
本願で使用される数学演算子は、Cプログラミング言語で使用されているものと類似している。しかし、整数除算及び算術シフト演算の結果は、より厳密に定義され、べき乗及び実数値除算などの追加の演算が定義される。ナンバリング及びカウントの規則は、一般的に0から始まり、例えば、「最初」は0番目に相当し、「2番目」は1番目に相当する、などである。
【0163】
算術演算子
以下の算術演算が、次のように定義される:
【表6】
【0164】
論理演算子
以下の算術演算子が、次のように定義される:
x&&y x及びyのブール論理“AND”
x||y x及びyのブール論理“OR”
! ブール論理“NOT”
x?y:z xが真であるか又は0に等しくない場合には、yの値として評価し、そうでない場合には、zの値として評価する。
【0165】
関係演算子
以下の関係演算子が、次のように定義される:
> ~よりも大きい
>= ~以上
< ~よりも小さい
<= ~以下
== ~に等しい
!= ~に等しくない
【0166】
関係演算子が、値“NA”(not applicable)を割り当てられているシンタックス要素又は変数に適用される場合に、値“NA”は、そのシンタックス要素又は変数のディスティンクト値として扱われる。値“NA”は、如何なる他の値にも等しくないと見なされる。
【0167】
ビット演算子
以下のビット演算子が、次のように定義される:
& ビット単位“AND”。整数引数に作用する場合に、整数値の2の補数表現に作用する。他の引数よりも少ないビットを含む2進引数に作用する場合に、より短い方の引数は、0に等しい更なる有効ビットを加えることによって拡張される。
| ビット単位“OR”。整数引数に作用する場合に、整数値の2の補数表現に作用する。他の引数よりも少ないビットを含む2進引数に作用する場合に、より短い方の引数は、0に等しい更なる有効ビットを加えることによって拡張される。
^ ビット単位“XOR”。整数引数に作用する場合に、整数値の2の補数表現に作用する。他の引数よりも少ないビットを含む2進引数に作用する場合に、より短い方の引数は、0に等しい更なる有効ビットを加えることによって拡張される。
x>>y y個の2進桁によるxの2の補数整数表現の算術右シフト。この関数は、yの非負整数値についてのみ定義される。右シフトの結果として最上位ビット(MSB)へシフトされたビットは、シフト演算の前のxのMSBに等しい値を有する。
x<<y y個の2進桁によるxの2の補数整数表現の算術左シフト。この関数は、yの非負整数値についてのみ定義される。左シフトの結果として最下位ビット(LSB)へシフトされたビットは、0に等しい値を有する。
【0168】
代入演算子
以下の代入演算子が、次のように定義される:
= 代入演算子
++ インクリメント、すなわち、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)と等価である。
【0169】
範囲表記
以下の表記は、値の範囲を指定するために使用される:
x=y..z x、y及びzは整数であり、zはyよりも大きいとして、xは、y以上z以下の整数値を呈する。
【0170】
数学関数
以下の数学関数が定義される:
【数2】

Asin(x) -1.0以上1.0以下の範囲内にある引数xに作用して、出力値がラジアン単位で-π÷2以上π÷2以下の範囲内にある三角関数の逆正弦関数
Atan(x) 引数xに作用して、出力値がラジアン単位で-π÷2以上π÷2以下の範囲内にある三角関数の逆正接関数
【数3】

Ceil(x) x以上の最小の整数
Clip1(x)=Clip3(0,(1<<BitDepth)-1,x)
Clip1(x)=Clip3(0,(1<<BitDepth)-1,x)
【数4】

Cos(x) ラジアン単位で引数xに作用する三角関数の余弦関数
Floor(x) x以下の最大の整数
【数5】

Ln(x) xの自然対数(底eの対数、ここで、eは、自然対数の底定数2.718281828・・・である)。
Log2(x) xの底2の対数
Log10(x) xの底10の対数
【数6】

Sin(x) ラジアン単位で引数xに作用する三角関数の正弦関数
Sqrt(x)=√x
Swap(x,y)=(y,x)
Tan(x) ラジアン単位で引数xに作用する三角関数の正接関数
【0171】
演算の優先順位
式中の優先順位がパラメータの使用によって明示的に示されていない場合に、以下の規則が適用される:
・優先度のより高い演算は、優先度のより低い演算の前に評価される。
・同じ優先度の演算は、左から右に順番に評価される。
【0172】
以下の表は、最高から最低までの演算の優先度を定め、表中のより高い位置は、より高い優先度を示す。
【0173】
Cプログラミング言語でも使用される演算については、本明細書で使用されている優先順位は、Cプログラミング言語で使用されているものと同じである。
【0174】
表:最高(表の上部)から最低(表の下部)までの演算の優先度
【表7】
【0175】
論理演算のテキスト記述
テキスト中で、次の形式で数学的に記述されることになる論理演算のステートメント:

if(条件0)
ステートメント0
else if(条件1)
ステートメント1
・・・
else/残りの条件に関する説明的所見
ステートメントn

は、次の様態で記述されてもよい:

・・・次のように/・・・次が適用される:
- 条件0の場合に、ステートメント0
- そうではなく、条件1の場合に、ステートメント1
- ・・・
- 上記以外の場合に(残りの条件に関する説明的所見)、ステートメントn
【0176】
テキスト中の夫々の「・・・の場合に、・・・そうではなく、・・・の場合に、・・・上記外の場合に、・・・」のステートメントは、「・・・の場合に」が直ぐ後に続く「・・・次のように」又は・・・次が適用される」により導入される。「・・・の場合に、・・・そうではなく、・・・の場合に、・・・上記以外の場合に、・・・」の最後の条件は常に「上記以外の場合に、・・・」である。交互配置された「・・・の場合に、・・・そうではなく、・・・の場合に、・・・上記外の場合に、・・・」のステートメントは、「・・・次のように」又は「・・・次が適用される」を終わりの「上記以外の場合に、・・・」と適合させることによって識別され得る。
【0177】
テキスト中で、次の形式で数学的に記述されることになる論理演算のステートメント:

if(条件0a&&条件0b)
ステートメント0
else if(条件1a||条件1b)
ステートメント1
・・・
else
ステートメントn

は、次の様態で記述されてもよい:

・・・次のように/・・・次が適用される:
- 次の全ての条件が真である場合に、ステートメント0:
- 条件0a
- 条件0b
- そうではない場合に、次の条件の1つ以上が真である場合に、ステートメント1:
- 条件1a
- 条件1b
- ・・・
- 上記以外の場合に、ステートメントn
【0178】
テキスト中で、次の形式で数学的に記述されることになる論理演算のステートメント:

if(条件0)
ステートメント0
if(条件1)
ステートメント1

は、次の様態で記述されてもよい:

条件0の場合に、ステートメント0
条件1の場合に、ステートメント1
【0179】
例えば、エンコーダ20及びデコーダ30の実施形態と、例えば、エンコーダ20及びデコーダ30を参照して本願で記載される機能とは、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせにおいて実装されてよい。ソフトウェアで実装される場合に、機能は、1つ以上の命令又はコードとして、コンピュータ可読媒体上で記憶されるか、又は通信媒体上で伝送され、そして、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形な媒体に対応するコンピュータ可読記憶媒体、又は例えば、通信プロトコルに従って、1つの場所から他へのコンピュータプログラムの転送を助ける何らかの媒体を含む通信媒体を含んでよい。このように、コンピュータ可読媒体は、一般に、(1)非一時的である有形なコンピュータ可読記憶媒体、又は(2)信号若しくは搬送波などの通信媒体、に対応してよい。データ記憶媒体は、本開示で記載されている技術の実装のための命令、コード及び/又はデータ構造を読み出すよう1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされ得る如何なる利用可能な媒体であってもよい。コンピュータプログラム製品は、コンピュータ可読媒体を含んでよい。
【0180】
例として、限定としてではなく、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリ、又は命令若しくはデータ構造の形で所望のプログラムコードを記憶するために使用可能であって、コンピュータによってアクセスされ得るあらゆる他の媒体を有することができる。また、如何なる接続も、コンピュータ可読媒体と適切に称される。例えば、命令が同軸ケーブル、光ファイバケーブル、ツイステッドペア、デジタル加入者回線(DSL)、又は赤外線、電波、及びマイクロ波などの無線技術を用いてウェブサイト、サーバ、又は他の遠隔ソースから伝送される場合に、同軸ケーブル、光ファイバケーブル、ツイステッドペア、DSL、又は赤外線、電波、及びマイクロ波などの無線技術は、媒体の定義に含まれる。しかし、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的な媒体を含まず、代わりに、非一時的な、有形な記憶媒体を対象とする、ことが理解されるべきである。ここで使用されるdisk及びdiscは、コンパクト・ディスク(CD)、レーザー・ディスク、光ディスク、デジタル・バーサタイル・ディスク(DVD)、フロッピー・ディスク、及びブルーレイ・ディスクを含み、diskは、通常は、磁気的にデータを再生し、一方、discは、レーザーで光学的にデータを再生する。上記のものの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0181】
命令は、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又は他の同等の集積若しくはディスクリート論理回路などの1つ以上のプロセッサによって実行されてよい。従って、ここで使用される「プロセッサ」という用語は、上記の構造のいずれか、又はここで記載されている技術の実装に適したあらゆる他の構造を指し得る。更には、いくつかの態様において、ここで記載されている機能性は、エンコーディング及びデコーディングのために構成された専用のハードウェア及び/又はソフトウェアモジュール内に設けられても、あるいは、複合型コーデックに組み込まれてもよい。また、技術は、1つ以上の回路又は論理要素において完全に実装されてもよい。
【0182】
本開示の技術は、無線ハンドセット、集積回路(IC)又はICの組(例えば、チップセット)を含む多種多様なデバイス又は装置において実装されてよい。様々なコンポーネント、モジュール、又はユニットが、開示されている技術を実行するよう構成されたデバイスの機能的態様を強調するよう本開示で説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上述されたように、様々なユニットがコーデックハードウェアユニットにまとめられても、あるいは、適切なソフトウェア及び/又はファームウェアとともに、上述されたような1つ以上のプロセッサを含む相互運用ハードウェアユニットの集合によって提供されてもよい。
図1A
図1B
図2
図3
図4
図5
図6
図7