JP2023510858A - 重み付き予測を非矩形マージモードと調和させる方法および装置 - Google Patents

重み付き予測を非矩形マージモードと調和させる方法および装置 Download PDF

Info

Publication number
JP2023510858A
JP2023510858A JP2022542748A JP2022542748A JP2023510858A JP 2023510858 A JP2023510858 A JP 2023510858A JP 2022542748 A JP2022542748 A JP 2022542748A JP 2022542748 A JP2022542748 A JP 2022542748A JP 2023510858 A JP2023510858 A JP 2023510858A
Authority
JP
Japan
Prior art keywords
value
slice
picture
indicator
bitstream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022542748A
Other languages
English (en)
Inventor
アレクセイ・コンスタンチノヴィチ・フィリッポフ
フアンバン・チェン
ヴァシリー・アレクセーヴィチ・ルフィツキー
ハイタオ・ヤン
エレナ・アレクサンドロブナ・アルシナ
Original Assignee
ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ホアウェイ・テクノロジーズ・カンパニー・リミテッド filed Critical ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Publication of JP2023510858A publication Critical patent/JP2023510858A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Measuring Volume Flow (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Figure 2023510858000001
現在のピクチャのためのビットストリームを取得することと、スライスタイプを示すビットストリームに従って現在のピクチャに対する第1のインジケータの値を取得することと、重み付き予測パラメータがビットストリームのピクチャヘッダの中に存在するのかそれともスライスヘッダの中に存在するのかを示すビットストリームに従って現在のピクチャに対する第2のインジケータの値を取得することと、第1のインジケータの値が第1のプリセット値に等しく、かつ第2のインジケータの値が第2のプリセット値に等しいとき、ビットストリームから現在のピクチャの現在のスライスの現在のブロックに対する重み付き予測パラメータの値を構文解析することであって、第1のプリセット値が整数値であり、第2のプリセット値が整数値である、構文解析することと、重み付き予測パラメータの値に従って現在のブロックを予測することとを含む、コーディングの方法が提供される。

Description

関連出願の相互参照
本特許出願は、2020年1月12日に出願されたUS62/960,134の優先権を主張する。上述の特許出願の開示は、その全体が参照により本明細書に組み込まれる。
本出願の実施形態は、一般に、動画処理の分野に関し、より詳細には、コーディングフェードに対する重み付き予測との組合せで使用されるときの、非矩形区分モードに関する。
ビデオコーディング(ビデオ符号化およびビデオ復号)は、幅広いデジタルビデオ適用例、たとえば、ブロードキャストデジタルTV、インターネットおよびモバイルネットワークを介したビデオ送信、ビデオチャット、ビデオ会議などの、リアルタイム会話型適用例、DVDおよびBlu-rayディスク、ビデオコンテンツ収集および編集システム、ならびにセキュリティ適用例のカムコーダにおいて使用される。
比較的短いビデオを描写するのに必要とされるビデオデータの量でさえ相当であり得、そのことは、帯域幅容量が限定された通信ネットワークを越えてデータがストリーミングされるかまたは別の方法で通信されることになるときに、困難をもたらすことがある。したがって、ビデオデータは、一般に、現代の電気通信ネットワークを越えて通信される前に圧縮される。メモリリソースが限定されることがあるので、ビデオが記憶デバイス上に記憶されるときにビデオのサイズも問題となり得る。ビデオ圧縮デバイスは、しばしば、送信または記憶の前に、ソースにおいてソフトウェアおよび/またはハードウェアを使用してビデオデータをコーディングし、それによって、デジタルビデオ画像を表現するのに必要とされるデータの数量を減らす。圧縮されたデータは、次いで、ビデオデータを復号するビデオ復元デバイスによって宛先において受信される。ネットワークリソースが限定され、かつより高いビデオ品質の需要が絶えず増大すると、ピクチャ品質における犠牲をほとんど伴わずに圧縮率を改善する、改善された圧縮および復元技法が望ましい。
詳細には、照明変化を示す画像のコーディングに関して、インター予測のコンテキストでは動き補償のために重み付き予測が有利に使用され得る。三角形区分/マージモード(TPM)および幾何学的動き/マージ区分(GEO)としての非矩形区分は、矩形区分に制約されるインター予測よりも優れている場合がある方法で、様々な種類の動きに対処するために採用され得る。しかしながら、重み付き予測と非矩形区分の両方を許容するコーデックに対して、いくらかの調和が必要とされる。
実施形態は、フェード重み付けパラメータおよびブレンディング重み付けパラメータから組み合わせられている、重み付き予測パラメータを用いてビデオシーケンスをコーディングするための方法を提供する。フェード重み付けパラメータの値は、参照インデックス値および参照ピクチャリストによって決定されるが、ブレンディング重み付けパラメータは、予測ブロックの中での予測サンプルの位置によって決定される。
上記および他の目的は、独立請求項の主題によって達成される。互いに組み合わせられる場合がある、さらなる実装形態が、従属請求項、説明、および図面から明らかである。
第1の態様によれば、コーディングの方法が提供され、方法は、復号デバイスによって実施され、
(たとえば、符号化されたビデオシーケンスの)現在のピクチャのためのビットストリームを取得するステップと、
ビットストリームに従って現在のピクチャに対する第1のインジケータの値を(たとえば、ビットストリームの中に備えられたそれぞれのシンタックス要素を構文解析することによって)取得するステップであって、第1のインジケータが(現在のピクチャのスライスの)スライスタイプを示す、ステップと、
ビットストリームに従って現在のピクチャに対する第2のインジケータの値を(たとえば、ビットストリームの中に備えられたそれぞれのシンタックス要素を構文解析することによって)取得するステップであって、第2のインジケータが、重み付き予測パラメータがビットストリームのピクチャヘッダの中に存在するのかそれともビットストリームのスライスヘッダの中に存在するのかを示す、ステップと、
第1のインジケータの値が第1のプリセット値(たとえば、1)に等しく、かつ第2のインジケータの値が第2のプリセット値(たとえば、2)に等しいとき、ビットストリームから現在のブロックに対する重み付き予測パラメータの値を構文解析するステップであって、現在のブロックが現在のピクチャの現在のスライスの中に備えられ、第1のプリセット値が整数値であり、第2のプリセット値が整数値である、ステップと、
重み付き予測パラメータの値に従って現在のブロックを予測する(現在のブロックに対する予測ブロックを生成する)ステップとを備える。
したがって、現在のピクチャ全体にとって有効な第2のインジケータの値に基づいて、第1のインジケータの値によって示される特定のスライスタイプに対して(のみ)構文解析される重み付き予測パラメータの値による重み付き予測を使用して、かつ重み付き予測パラメータがピクチャヘッダの中に存在することを第2のインジケータが示すとき、現在のスライスの現在のブロックに対してインター予測が実行されることになるか否かが決定され得る。比較的高いレベル、すなわち、ピクチャヘッダレベルでのシグナリングは、現在のピクチャのスライス(詳細には、すべてのスライス)のブロック(詳細には、すべてのブロック)に対して重み付き予測が使用されることになるか否かについて、明確な決定を可能にする。重み付き予測が使用されることになる場合、いかなる非矩形区分も許容され得ない。
一実装形態によれば、第1のインジケータの値は、ビットストリームの中に備えられたピクチャヘッダに従って取得(たとえば、ピクチャヘッダから構文解析)される。別の実装形態によれば、第2のインジケータの値は、ビットストリームの中に備えられたピクチャパラメータセットに従って取得(たとえば、ピクチャパラメータセットから構文解析)され、また別の実装形態によれば、重み付き予測パラメータの値は、ビットストリームの中に備えられたピクチャヘッダから構文解析される。したがって、検討中の関連する値(または、これらの値を有するシンタックス要素)のすべては、比較的高いレベルのシグナリングに基づいて(すなわち、ピクチャヘッダまたはピクチャパラメータセットの中で)取得され得る。それによって、重み付きインター予測の採用に関係する効率的なシグナリングがもたらされる。
一実装形態によれば、第1のインジケータの値が第1のプリセット値に等しいことは、現在のピクチャの中に備えられた少なくとも1つのスライスのスライスタイプがインタースライスであること、たとえば、BスライスもしくはPスライスを備えるかまたはBスライスもしくはPスライスであることを表す。
第2の態様によれば、コーディングの方法が提供され、方法は、復号デバイスによって実施され、
(たとえば、符号化されたビデオシーケンスの)現在のピクチャのためのビットストリームを取得するステップと、
ビットストリームに従って現在のピクチャに対する第1のインジケータの値を(たとえば、ビットストリームの中に備えられたそれぞれのシンタックス要素を構文解析することによって)取得するステップであって、第1のインジケータが(現在のピクチャのスライスの)スライスタイプを示す、ステップと、
ビットストリームに従って現在のピクチャに対する第2のインジケータの値を(たとえば、ビットストリームの中に備えられたそれぞれのシンタックス要素を構文解析することによって)取得するステップであって、第2のインジケータが、重み付き予測パラメータがビットストリームのピクチャヘッダの中に存在するのかそれともビットストリームのスライスヘッダの中に存在するのかを示す、ステップと、
ビットストリームに従って現在のピクチャに対する第3のインジケータの値を(たとえば、ビットストリームの中に備えられたそれぞれのシンタックス要素を構文解析することによって)取得するステップであって、第3のインジケータが、インタースライスに重み付き予測が適用可能であるかどうかを示し、インタースライスのスライスタイプがBスライスまたはPスライスである、ステップと、
第1のインジケータの値が第1のプリセット値(たとえば、1)に等しく、第2のインジケータの値が第2のプリセット値(たとえば、1)に等しく、かつ第3のインジケータの値が、インタースライスに重み付き予測が適用可能であることを示すとき、ビットストリームから現在のブロックに対する重み付き予測パラメータの値を構文解析するステップであって、現在のブロックが現在のピクチャの現在のスライスの中に備えられ、第1のプリセット値が整数値であり、第2のプリセット値が整数値である、ステップと、
重み付き予測パラメータの値に従って現在のブロックを予測する(現在のブロックに対する予測ブロックを生成する)ステップとを備える。
第2の態様に係る方法の(互いに組み合わせられる場合がある)代替実装形態によれば、第1のインジケータの値が、ビットストリームの中に備えられたピクチャヘッダに従って取得(たとえば、ピクチャヘッダから構文解析)されるか、または第2のインジケータの値が、ビットストリームの中に備えられたピクチャパラメータセットに従って取得(たとえば、ピクチャパラメータセットから構文解析)されるか、または重み付き予測パラメータの値が、ビットストリームの中に備えられたピクチャヘッダに従って取得されるか、または第3のインジケータの値が、ビットストリームの中に備えられたピクチャパラメータセットに従って取得(たとえば、ピクチャパラメータセットから構文解析)される。
第2の態様に係る方法の一実装形態によれば、第1のプリセット値に等しい第1のインジケータの値は、現在のピクチャの中に備えられた少なくとも1つのスライスのスライスタイプがインタースライスであること、たとえば、BスライスもしくはPスライスを備えるかまたはBスライスもしくはPスライスであることを表す。
第2の態様に係る方法の一実装形態によれば、第3のインジケータの値が1であることは、インタースライスに重み付き予測が適用可能であることを示す。
第2の態様およびそれらの実装形態に係る方法は、第1の態様およびそれらの実装形態に係る方法と類似のまたは同じ利点をもたらした。
さらに、上記で説明した実施形態のうちのいずれか1つに係る方法を実行するための処理回路構成を備えるデコーダ、およびコンピュータ上またはプロセッサ上で実行されたとき、上記で説明した実施形態のうちのいずれか1つに係る方法を実行するためのプログラムコードを備えるコンピュータプログラム製品が提供される。
さらに、1つまたは複数のプロセッサと、プロセッサに結合されプロセッサが実行するためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体とを備える、デコーダが提供され、プログラミングは、プロセッサによって実行されたとき、上記で説明した実施形態のうちのいずれか1つに係る方法を実行するようにデコーダを構成し、また非一時的コンピュータ可読媒体は、コンピュータデバイスによって実行されたとき、上記で説明した実施形態のうちのいずれか1つの方法をコンピュータデバイスに実行させるプログラムコードを搬送する。
さらに、別の態様によれば、上記で説明した実施形態のうちのいずれか1つの方法によってコーディングされたビットストリームを備える非一時的記憶媒体が提供される。
さらなる態様によれば、ビデオ信号のための符号化されたビットストリームが提供され、ビットストリームは、(現在のピクチャのスライスの)スライスタイプを示す、現在のピクチャに対する第1のインジケータ、および重み付き予測パラメータがビットストリームのピクチャヘッダの中に存在するのかそれともビットストリームのスライスヘッダの中に存在するのかを示す、現在のピクチャに対する第2のインジケータを備える。ビットストリームは、特に、第2のインジケータの値が第2のプリセット値(たとえば、2)に等しいとき、現在のブロックのための重み付き予測パラメータをさらに備え、現在のブロックは、現在のピクチャの現在のスライスの中に備えられ、第2のプリセット値は整数値である。
一実装形態によれば、第1のインジケータは、ピクチャヘッダの中に備えられ、かつ/または第2のインジケータは、ピクチャパラメータセットの中に備えられ、かつ/または重み付き予測パラメータは、ビットストリームの中に備えられたピクチャヘッダの中に備えられる。
一実装形態によれば、第1のインジケータの値が第1のプリセット値に等しいことは、現在のピクチャの中に備えられた少なくとも1つのスライスのスライスタイプがインタースライスであること、たとえば、BスライスもしくはPスライスを備えるかまたはBスライスもしくはPスライスであることを表す。
さらなる態様によれば、ビデオ信号のための符号化されたビットストリームが提供され、ビットストリームは、(現在のピクチャのスライスの)スライスタイプを示す、現在のピクチャに対する第1のインジケータ、重み付き予測パラメータがビットストリームのピクチャヘッダの中に存在するのかそれともビットストリームのスライスヘッダの中に存在するのかを示す、現在のピクチャに対する第2のインジケータ、およびインタースライスに重み付き予測が適用可能であるかどうかを示す、現在のピクチャに対する第3のインジケータを備え、インタースライスのスライスタイプはBスライスまたはPスライスである。ビットストリームは、特に、第2のインジケータの値が第2のプリセット値(たとえば、1)に等しいとき、重み付き予測パラメータをさらに備え、現在のブロックは、現在のピクチャの現在のスライスの中に備えられ、第2のプリセット値は整数値である。
代替実装形態によれば、第1のインジケータは、ピクチャヘッダの中に備えられ、かつ/または第2のインジケータは、ピクチャパラメータセットの中に備えられ、かつ/または重み付き予測パラメータは、ピクチャヘッダの中に備えられ、かつ/または第3のインジケータは、ビットストリームの中に備えられたピクチャパラメータセットの中に備えられる。
一実装形態によれば、第1のプリセット値に等しい第1のインジケータの値は、現在のピクチャの中に備えられた少なくとも1つのスライスのスライスタイプがインタースライスであること、たとえば、BスライスもしくはPスライスを備えるかまたはBスライスもしくはPスライスであることを表し、かつ/あるいは第3のインジケータの値が1であることは、インタースライスに重み付き予測が適用可能であることを示す。
さらに、別の態様によれば、画像復号デバイスによって復号される(または、復号されるべき)符号化されたビットストリームを含む非一時的記憶媒体が提供され、ビットストリームは、ビデオ信号または画像信号のフレームを複数のブロックに分割することによって生成され、(現在のピクチャのスライスの)スライスタイプを示す、現在のピクチャに対する第1のインジケータ、および重み付き予測パラメータがビットストリームのピクチャヘッダの中に存在するのかそれともビットストリームのスライスヘッダの中に存在するのかを示す、現在のピクチャに対する第2のインジケータを含む。ビットストリームは、特に、第2のインジケータの値が第2のプリセット値(たとえば、2)に等しいとき、現在のブロックのための重み付き予測パラメータをさらに備え、現在のブロックは、現在のピクチャの現在のスライスの中に備えられ、第2のプリセット値は整数値である。
一実装形態によれば、第1のインジケータは、ピクチャヘッダの中に備えられ、かつ/または第2のインジケータは、ピクチャパラメータセットの中に備えられ、かつ/または重み付き予測パラメータは、ビットストリームの中に備えられたピクチャヘッダの中に備えられる。
一実装形態によれば、第1のインジケータの値が第1のプリセット値に等しいことは、現在のピクチャの中に備えられた少なくとも1つのスライスのスライスタイプがインタースライスであること、たとえば、BスライスもしくはPスライスを備えるかまたはBスライスもしくはPスライスであることを表す。
さらに、別の態様によれば、画像復号デバイスによって復号される(または、復号されるべき)符号化されたビットストリームを含む非一時的記憶媒体が提供され、ビットストリームは、ビデオ信号または画像信号のフレームを複数のブロックに分割することによって生成され、(現在のピクチャのスライスの)スライスタイプを示す、現在のピクチャに対する第1のインジケータ、重み付き予測パラメータがビットストリームのピクチャヘッダの中に存在するのかそれともビットストリームのスライスヘッダの中に存在するのかを示す、現在のピクチャに対する第2のインジケータ、およびインタースライスに重み付き予測が適用可能であるかどうかを示す、現在のピクチャに対する第3のインジケータを含み、インタースライスのスライスタイプはBスライスまたはPスライスである。ビットストリームは、特に、第2のインジケータの値が第2のプリセット値(たとえば、1)に等しいとき、重み付き予測パラメータをさらに備え、現在のブロックは、現在のピクチャの現在のスライスの中に備えられ、第2のプリセット値は整数値である。
代替実装形態によれば、第1のインジケータは、ピクチャヘッダの中に備えられ、かつ/または第2のインジケータは、ピクチャパラメータセットの中に備えられ、かつ/または重み付き予測パラメータは、ピクチャヘッダの中に備えられ、かつ/または第3のインジケータは、ビットストリームの中に備えられたピクチャパラメータセットの中に備えられる。
一実装形態によれば、第1のプリセット値に等しい第1のインジケータの値は、現在のピクチャの中に備えられた少なくとも1つのスライスのスライスタイプがインタースライスであること、たとえば、BスライスもしくはPスライスを備えるかまたはBスライスもしくはPスライスであることを表し、かつ/あるいは第3のインジケータの値が1であることは、インタースライスに重み付き予測が適用可能であることを示す。
上記で説明した方法のすべては、以下で説明する復号デバイスの中で実施され得、これらのデバイスは、上記で説明したのと同じ利点を伴ってそれぞれの方法の手順ステップを実行するように構成され得る。以下のデバイスが提供される。
(符号化されたビデオシーケンスを復号するように構成された)復号デバイスであって、
現在のピクチャのためのビットストリームを取得するように構成された、ビットストリーム取得ユニットと、
a)ビットストリームに従って現在のピクチャに対する第1のインジケータの値を取得することであって、第1のインジケータがスライスタイプを示す、第1のインジケータの値を取得すること、および
b)ビットストリームに従って現在のピクチャに対する第2のインジケータの値を取得することであって、第2のインジケータが、重み付き予測パラメータがビットストリームのピクチャヘッダの中に存在するのかそれともビットストリームのスライスヘッダの中に存在するのかを示す、第2のインジケータの値を取得することを行うように構成された、
インジケータ値取得ユニットと、
第1のインジケータの値が第1のプリセット値(たとえば、1)に等しく、かつ第2のインジケータの値が第2のプリセット値(たとえば、1)に等しいとき、ビットストリームから現在のブロックに対する重み付き予測パラメータの値を構文解析するように構成された、構文解析ユニットであって、現在のブロックが現在のピクチャの現在のスライスの中に備えられ、第1のプリセット値が整数値であり、第2のプリセット値が整数値である、構文解析ユニットと、
重み付き予測パラメータの値に従って現在のブロックを予測するように構成された、予測ユニットとを備える。
この復号デバイスでは、インジケータ値取得ユニットが、ビットストリームの中に備えられたピクチャヘッダに従って第1のインジケータの値を、もしくはビットストリームの中に備えられたピクチャパラメータセットに従って第2のインジケータの値を取得するように構成され得るか、または構文解析ユニットが、ビットストリームの中に備えられたピクチャヘッダから重み付き予測パラメータの値を構文解析するように構成され得る。
第1のインジケータの値が第1のプリセット値に等しいことは、現在のピクチャの中に備えられた少なくとも1つのスライスのスライスタイプがインタースライスであること、たとえば、BスライスもしくはPスライスを備えるかまたはBスライスもしくはPスライスであることを表し得る。
さらに、(符号化されたビデオシーケンスを復号するように構成された)復号デバイスが提供され、復号デバイスは、
現在のピクチャのためのビットストリームを取得するように構成された、ビットストリーム取得ユニットと、
a)ビットストリームに従って現在のピクチャに対する第1のインジケータの値を取得することであって、第1のインジケータがスライスタイプを示す、第1のインジケータの値を取得すること、
b)ビットストリームに従って現在のピクチャに対する第2のインジケータの値を取得することであって、第2のインジケータが、重み付き予測パラメータがビットストリームのピクチャヘッダの中に存在するのかそれともビットストリームのスライスヘッダの中に存在するのかを示す、第2のインジケータの値を取得すること、および
c)ビットストリームに従って現在のピクチャに対する第3のインジケータの値を取得することであって、第3のインジケータが、インタースライスに重み付き予測が適用可能であるかどうかを示し、インタースライスのスライスタイプがBスライスまたはPスライスである、第3のインジケータの値を取得することを行うように構成された、
インジケータ値取得ユニットと、
第1のインジケータの値が第1のプリセット値(たとえば、1)に等しく、第2のインジケータの値が第2のプリセット値(たとえば、1)に等しく、かつインタースライスに重み付き予測が適用可能であることを第3のインジケータの値が示すとき、ビットストリームから現在のブロックに対する重み付き予測パラメータの値を構文解析するように構成された、構文解析ユニットであって、現在のブロックが現在のピクチャの現在のスライスの中に備えられ、第1のプリセット値が整数値であり、第2のプリセット値が整数値である、構文解析ユニットと、
重み付き予測パラメータの値に従って現在のブロックを予測するように構成された、予測ユニットとを備える。
この復号デバイスでは、インジケータ値取得ユニットは、ビットストリームの中に備えられたピクチャヘッダに従って第1のインジケータの値を、もしくはビットストリームの中に備えられたピクチャパラメータセットに従って第2のインジケータの値を、もしくはビットストリームの中に備えられたピクチャパラメータセットに従って第3のインジケータの値を取得するように構成され得るか、または構文解析ユニットは、ビットストリームの中に備えられたピクチャヘッダから重み付き予測パラメータを構文解析するように構成され得る。
再び、第1のプリセット値に等しい第1のインジケータの値は、現在のピクチャの中に備えられた少なくとも1つのスライスのスライスタイプがインタースライスであること、たとえば、BスライスもしくはPスライスを備えるかまたはBスライスもしくはPスライスであることを表し得る。
第3のインジケータの値が1であることは、インタースライスに重み付き予測が適用可能であることを示し得る。
1つまたは複数の実施形態の詳細が、添付図面および以下の説明において記載される。他の特徴、目的、および利点は、説明、図面、および請求項から明らかとなろう。
以下では、本発明の実施形態が、添付の図面(figure)および図面(drawing)を参照しながらより詳細に説明される。
本発明の実施形態を実施するように構成されたビデオコーディングシステムの一例を示すブロック図である。 本発明の実施形態を実施するように構成されたビデオコーディングシステムの別の例を示すブロック図である。 本発明の実施形態を実施するように構成されたビデオエンコーダの一例を示すブロック図である。 本発明の実施形態を実施するように構成されたビデオデコーダの例示的な構造を示すブロック図である。 符号化装置または復号装置の一例を示すブロック図である。 符号化装置または復号装置の別の例を示すブロック図である。 重み付き予測エンコーダ側の意思決定およびパラメータ推定のためのフローチャートである。 三角形予測モードの一例を示す図である。 幾何学的予測モードの一例を示す図である。 幾何学的予測モードの別の例を示す図である。 コンテンツ配信サービスを実現するコンテンツ供給システム3100の例示的な構造を示すブロック図である。 端末デバイスの一例の構造を示すブロック図である。 本出願に係るインター予測方法の一例を示すブロック図である。 本出願に係るインター予測のための装置の一例を示すブロック図である。 本出願に係るインター予測のための装置の別の例を示すブロック図である。 一実施形態に係るコーディングの方法を示すフローチャートである。 別の実施形態に係るコーディングの方法を示すフローチャートである。 別の実施形態に係るコーディングの方法を示すフローチャートである。 一実施形態に係る復号デバイスを示す図である。
以下では、同一の参照符号は、別段に明示的に指定されない場合、同一のまたは少なくとも機能的に均等な特徴を指す。
以下の説明では、本開示の一部を形成し、かつ本発明の実施形態の特定の態様または本発明の実施形態が使用され得る特定の態様を例として示す、添付の図への参照が行われる。本発明の実施形態が、他の態様において使用されてよく、図の中に示されない構造的または論理的な変更を備えてよいことが理解される。したがって、以下の発明を実施するための形態は限定的な意味で理解されるべきでなく、本発明の範囲は添付の請求項によって定義される。
たとえば、説明する方法に関する開示が、本方法を実行するように構成された対応するデバイスまたはシステムに対しても当てはまり得ることが理解され、逆も同様である。たとえば、1つまたは複数の特定の方法ステップが説明される場合、そのような1つまたは複数のユニットが明示的に説明されないかまたは図に示されないとしても、対応するデバイスは、説明する1つまたは複数の方法ステップを実行するための1つまたは複数のユニット(たとえば、1つもしくは複数のステップを実行する1つのユニット、または複数のステップのうちの1つもしくは複数を各々が実行する複数のユニット)、たとえば、機能ユニットを含んでよい。一方、たとえば、1つまたは複数のユニット、たとえば、機能ユニットに基づいて、特定の装置が説明される場合、そのような1つまたは複数のステップが明示的に説明されないかまたは図に示されないとしても、対応する方法は、1つまたは複数のユニットの機能を実行するための1つのステップ(たとえば、1つもしくは複数のユニットの機能を実行する1つのステップ、または複数のユニットのうちの1つもしくは複数の機能を各々が実行する複数のステップ)を含んでよい。さらに、別段に特に記載されていない限り、本明細書で説明する様々な例示的な実施形態および/または態様の特徴が互いに組み合わせられてよいことが理解される。
ビデオコーディングとは、通常、ビデオまたはビデオシーケンスを形成する、ピクチャのシーケンスの処理を指す。「ピクチャ」という用語の代わりに、ビデオコーディングの分野では「フレーム」または「画像」という用語が同義語として使用され得る。ビデオコーディング(または、一般にコーディング)は、2つの部分、ビデオ符号化およびビデオ復号を備える。ビデオ符号化は、ソース側において実行され、通常、ビデオピクチャを表現するのに必要とされるデータの量を(より効率的な記憶および/または送信のために)低減するために、(たとえば、圧縮によって)元のビデオピクチャを処理することを備える。ビデオ復号は、宛先側において実行され、通常、ビデオピクチャを再構成するための、エンコーダと比較して逆の処理を備える。ビデオピクチャ(または、一般にピクチャ)の「コーディング」に言及する実施形態は、ビデオピクチャまたはそれぞれのビデオシーケンスの「符号化」または「復号」に関係すると理解されるものとする。符号化部分と復号部分との組合せは、コーデック(コーディングおよび復号)とも呼ばれる。
可逆的ビデオコーディングの場合には、元のビデオピクチャは再構成され得、すなわち、(記憶または送信の間に伝送損失または他のデータ損失がないと想定すると)再構成されたビデオピクチャは元のビデオピクチャと同じ品質を有する。不可逆的ビデオコーディングの場合には、ビデオピクチャを表現するデータの量を低減するために、たとえば、量子化によって、さらなる圧縮が実行され、ビデオピクチャは、デコーダにおいて完全に再構成され得るとは限らず、すなわち、再構成されたビデオピクチャの品質は元のビデオピクチャの品質と比較して低く、すなわち悪い。
いくつかのビデオコーディング規格は、「不可逆的ハイブリッドビデオコーデック」のグループに属する(すなわち、サンプル領域における空間予測および時間予測と、変換領域において量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各ピクチャは、通常、重複しないブロックのセットに区分され、コーディングは、通常、ブロックレベルにおいて実行される。言い換えれば、エンコーダにおいて、ビデオは、通常、たとえば、予測ブロックを生成するために空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を使用すること、現在のブロック(現在処理される/処理されるべきブロック)から予測ブロックを減算して残差ブロックを取得すること、残差ブロックを変換すること、ならびに送信されるべきデータの量を低減(圧縮)するために変換領域において残差ブロックを量子化することによって、ブロック(ビデオブロック)レベルにおいて処理すなわち符号化され、その一方で、デコーダにおいて、表現のために現在のブロックを再構成するために、エンコーダと比較して逆の処理が符号化または圧縮されたブロックに適用される。さらに、エンコーダは、後続のブロックを処理すなわちコーディングするために、その両方が同一の予測(たとえば、イントラ予測およびインター予測)および/または再構成を生成するように、デコーダ処理ループを複製する。
以下では、ビデオコーディングシステム10、ビデオエンコーダ20、およびビデオデコーダ30の実施形態が、図1~図3に基づいて説明される。
図1Aは、この本出願の技法を利用し得る例示的なコーディングシステム10、たとえば、ビデオコーディングシステム10(または、ショートコーディングシステム10)を示す概略ブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(または、ショートエンコーダ20)およびビデオデコーダ30(または、ショートデコーダ30)は、本出願で説明する様々な例に係る技法を実行するように構成され得るデバイスの例を表す。
図1Aに示すように、コーディングシステム10は、たとえば、符号化されたピクチャデータ13を復号するための宛先デバイス14に、符号化されたピクチャデータ21を提供するように構成された、ソースデバイス12を備える。
ソースデバイス12は、エンコーダ20を備え、追加として、すなわち任意選択で、ピクチャソース16、プリプロセッサ(または、前処理ユニット)18、たとえば、ピクチャプリプロセッサ18、および通信インターフェースまたは通信ユニット22を備えてよい。
ピクチャソース16は、任意の種類のピクチャキャプチャデバイス、たとえば、実世界ピクチャをキャプチャするためのカメラ、ならびに/あるいは任意の種類のピクチャ生成デバイス、たとえば、コンピュータアニメーション化されたピクチャを生成するためのコンピュータグラフィックスプロセッサ、または実世界ピクチャ、コンピュータ生成されたピクチャ(たとえば、スクリーンコンテンツ、仮想現実(VR)ピクチャ)、および/もしくはそれらの任意の組合せ(たとえば、拡張現実(AR)ピクチャ)を取得および/もしくは提供するための任意の種類の他のデバイスを備えてよく、またはそれらであってもよい。ピクチャソースは、上述のピクチャのうちのいずれかを記憶する任意の種類のメモリまたはストレージであってよい。
プリプロセッサ18、および前処理ユニット18によって実行される処理と対比して、ピクチャまたはピクチャデータ17は、未加工ピクチャまたは未加工ピクチャデータ17と呼ばれることもある。
プリプロセッサ18は、(未加工)ピクチャデータ17を受信し、ピクチャデータ17に対して前処理を実行して、前処理済みのピクチャ19または前処理済みのピクチャデータ19を取得するように構成される。プリプロセッサ18によって実行される前処理は、たとえば、トリミング、(たとえば、RGBからYCbCrへの)カラーフォーマット変換、色補正、またはノイズ除去を備えてよい。前処理ユニット18が任意選択の構成要素であってよいことが理解され得る。
ビデオエンコーダ20は、前処理済みのピクチャデータ19を受信し、符号化されたピクチャデータ21を提供するように構成される(さらなる詳細が、たとえば図2に基づいて、以下で説明される)。
ソースデバイス12の通信インターフェース22は、符号化されたピクチャデータ21を受信し、記憶または直接の再構成のために、通信チャネル13を介して別のデバイス、たとえば、宛先デバイス14または任意の他のデバイスへ、符号化されたピクチャデータ21(または、それらのさらに処理された任意のバージョン)を送信するように構成され得る。
宛先デバイス14は、デコーダ30(たとえば、ビデオデコーダ30)を備え、追加として、すなわち任意選択で、通信インターフェースまたは通信ユニット28、ポストプロセッサ32(または、後処理ユニット32)、およびディスプレイデバイス34を備えてよい。
宛先デバイス14の通信インターフェース28は、たとえば、ソースデバイス12から直接、または任意の他のソース、たとえば、記憶デバイス、たとえば、符号化されたピクチャデータ記憶デバイスから、符号化されたピクチャデータ21(または、それらのさらに処理された任意のバージョン)を受信し、符号化されたピクチャデータ21をデコーダ30に提供するように構成される。
通信インターフェース22および通信インターフェース28は、ソースデバイス12と宛先デバイス14との間の直接通信リンク、たとえば、直接有線接続または直接ワイヤレス接続を介して、あるいは任意の種類のネットワーク、たとえば、有線ネットワークもしくはワイヤレスネットワークもしくはそれらの任意の組合せ、または任意の種類のプライベートネットワークおよびパブリックネットワーク、またはそれらの任意の種類の組合せを介して、符号化されたピクチャデータ21または符号化されたデータ13を送信または受信するように構成され得る。
通信インターフェース22は、たとえば、適切なフォーマット、たとえば、パケットの中に、符号化されたピクチャデータ21をパッケージ化し、かつ/または通信リンクもしくは通信ネットワークを介した送信のために任意の種類の送信符号化もしくは送信処理を使用して符号化されたピクチャデータを処理するように構成され得る。
通信インターフェース22の相対物を形成する通信インターフェース28は、たとえば、送信されたデータを受信し、任意の種類の対応する送信復号もしくは送信処理および/またはデパッケージングを使用して送信データを処理して符号化されたピクチャデータ21を取得するように構成され得る。
通信インターフェース22と通信インターフェース28の両方が、ソースデバイス12から宛先デバイス14を指し示す、図1Aの中の通信チャネル13に対する矢印によって示されるような単方向の通信インターフェース、または双方向の通信インターフェースとして構成されてよく、たとえば、通信リンクおよび/またはデータ送信、たとえば、符号化されたピクチャデータ送信に関係する、任意の他の情報を認識応答および交換するために、たとえば、接続をセットアップするためのメッセージを送るとともに受信するように構成されてよい。
デコーダ30は、符号化されたピクチャデータ21を受信し、復号されたピクチャデータ31または復号されたピクチャ31を提供するように構成される(さらなる詳細は、たとえば、図3または図5に基づいて、以下で説明される)。
宛先デバイス14のポストプロセッサ32は、復号されたピクチャデータ31(再構成されたピクチャデータとも呼ばれる)、たとえば、復号されたピクチャ31を後処理して、後処理されたピクチャデータ33、たとえば、後処理されたピクチャ33を取得するように構成される。後処理ユニット32によって実行される後処理は、たとえば、ディスプレイデバイス34による、たとえば、表示用の復号されたピクチャデータ31を準備するための、たとえば、(たとえば、YCbCrからRGBへの)カラーフォーマット変換、色補正、トリミング、もしくは再サンプリング、または任意の他の処理を備えてよい。
宛先デバイス14のディスプレイデバイス34は、たとえば、ユーザまたは見ている人に、ピクチャを表示するための、後処理されたピクチャデータ33を受信するように構成される。ディスプレイデバイス34は、再構成されたピクチャを表現するための任意の種類のディスプレイ、たとえば、統合型または外部のディスプレイまたはモニタであってよく、またはそれを備えてもよい。ディスプレイは、たとえば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オンシリコン(LCoS)、デジタル光プロセッサ(DLP)、または任意の種類の他のディスプレイを備えてよい。
図1Aはソースデバイス12および宛先デバイス14を別個のデバイスとして示すが、デバイスの実施形態はまた、ソースデバイス12または対応する機能と宛先デバイス14または対応する機能の、両方または両方の機能を備えてよい。そのような実施形態では、ソースデバイス12または対応する機能および宛先デバイス14または対応する機能は、同じハードウェアおよび/またはソフトウェアを使用して、あるいは別個のハードウェアおよび/もしくはソフトウェアまたはそれらの任意の組合せによって、実施され得る。
説明に基づいて当業者にとって明らかとなるように、異なるユニットの機能または図1Aに示すようなソースデバイス12内および/もしくは宛先デバイス14内の機能の存在および(正確な)分割は、実際のデバイスおよび適用例に応じて変わることがある。
エンコーダ20(たとえば、ビデオエンコーダ20)もしくはデコーダ30(たとえば、ビデオデコーダ30)、またはエンコーダ20とデコーダ30の両方は、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ハードウェア、ビデオコーディング専用、またはそれらの任意の組合せなどの、図1Bに示すような処理回路構成を介して実装され得る。エンコーダ20は、図2のエンコーダ20に関して説明するような様々なモジュールおよび/または本明細書で説明する任意の他のエンコーダシステムもしくはサブシステムを具現するために、処理回路構成46を介して実装され得る。デコーダ30は、図3のデコーダ30に関して説明するような様々なモジュールおよび/または本明細書で説明する任意の他のデコーダシステムもしくはサブシステムを具現するために、処理回路構成46を介して実装され得る。処理回路構成は、後で説明するような様々な動作を実行するように構成され得る。図5に示すように、技法が部分的にソフトウェアで実施される場合、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読記憶媒体の中に記憶してよく、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアで命令を実行してよい。ビデオエンコーダ20およびビデオデコーダ30のいずれも、たとえば、図1Bに示すように、組み合わせられたエンコーダ/デコーダ(コーデック)の一部として単一のデバイスの中に統合され得る。
ソースデバイス12および宛先デバイス14は、任意の種類のハンドヘルドまたは固定のデバイス、たとえば、ノートブックまたはラップトップコンピュータ、モバイルフォン、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビジョン、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、(コンテンツサービスサーバまたはコンテンツ配信サーバなどの)ビデオストリーミングデバイス、ブロードキャスト受信機デバイス、ブロードキャスト送信機デバイスなどを含む、幅広いデバイスのうちのいずれかを備えてよく、オペレーティングシステムを使用しなくてよく、または任意の種類のオペレーティングシステムを使用してもよい。場合によっては、ソースデバイス12および宛先デバイス14はワイヤレス通信のために装備されてよい。したがって、ソースデバイス12および宛先デバイス14はワイヤレス通信デバイスであってよい。
場合によっては、図1Aに示すビデオコーディングシステム10は一例にすぎず、本出願の技法は、必ずしも符号化デバイスと復号デバイスとの間の任意のデータ通信を含むとは限らない、ビデオコーディング設定(たとえば、ビデオ符号化またはビデオ復号)に適用されてよい。他の例では、データは、ローカルメモリから取り出される、ネットワークを介してストリーミングされるなどである。ビデオ符号化デバイスは、データを符号化するとともにメモリに記憶してよく、かつ/またはビデオ復号デバイスは、データをメモリから取り出すとともに復号してよい。いくつかの例では、互いに通信しないが、単にデータをメモリに符号化し、かつ/またはデータをメモリから取り出すとともに復号するデバイスによって、符号化および復号が実行される。
説明の便宜上、たとえば、高効率ビデオコーディング(HEVC:High-Efficiency Video Coding)への、または多用途ビデオコーディング(VVC:Versatile Video Coding)、すなわち、ITU-Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG:Motion Picture Experts Group)とのビデオコーディング共同研究部会(JCT-VC:Joint Collaboration Team on Video Coding)によって策定された次世代ビデオコーディング規格の参照ソフトウェアへの参照によって、本発明の実施形態が本明細書で説明される。本発明の実施形態がHEVCまたはVVCに限定されないことを、当業者は理解されよう。
エンコーダおよび符号化方法
図2は、本出願の技法を実施するように構成される例示的なビデオエンコーダ20の概略ブロック図を示す。図2の例では、ビデオエンコーダ20は、入力部201(または、入力インターフェース201)、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210および逆変換処理ユニット212、再構成ユニット214、ループフィルタユニット220、復号されたピクチャバッファ(DPB:Decoded Picture Buffer)230、モード選択ユニット260、エントロピー符号化ユニット270、ならびに出力部272(または、出力インターフェース272)を備える。モード選択ユニット260は、インター予測ユニット244、イントラ予測ユニット254、および区分ユニット262を含んでよい。インター予測ユニット244は、動き推定ユニットおよび動き補償ユニット(図示せず)を含んでよい。図2に示すようなビデオエンコーダ20は、ハイブリッドビデオエンコーダ、すなわちハイブリッドビデオコーデックによるビデオエンコーダと呼ばれることもある。
残差計算ユニット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の「ビルトインデコーダ」を形成することが参照される。
ピクチャおよびピクチャ区分(ピクチャおよびブロック)
エンコーダ20は、ピクチャ17(または、ピクチャデータ17)、たとえば、ビデオまたはビデオシーケンスを形成するピクチャのシーケンスのピクチャを、たとえば、入力部201を介して受信するように構成され得る。受信されるピクチャまたはピクチャデータはまた、前処理済みのピクチャ19(または、前処理済みのピクチャデータ19)であってよい。簡単のために、以下の説明はピクチャ17を参照する。ピクチャ17は、現在のピクチャ、または(同じビデオシーケンス、すなわち、やはり現在のピクチャを備えるビデオシーケンスの、他のピクチャ、たとえば、前に符号化および/または復号されたピクチャから、現在のピクチャを区別するために、ビデオコーディングでは特に)コーディングされるべきピクチャと呼ばれることもある。
(デジタル)ピクチャは、強度値を有するサンプルの2次元のアレイまたは行列であるか、またはそのように見なされることがある。アレイの中のサンプルは、ピクセル(短い形式のピクチャ要素)またはペルと呼ばれることもある。アレイまたはピクチャの水平および垂直の方向(または、軸)におけるサンプルの個数は、ピクチャのサイズおよび/または解像度を規定する。色の表現のために、通常、3つの色成分が採用され、すなわち、ピクチャは、3つのサンプルアレイが表されてよく、またはそれらを含んでよい。RBGフォーマットまたは色空間の中で、ピクチャは、対応する赤色、緑色、および青色のサンプルアレイを備える。しかしながら、ビデオコーディングでは、各ピクセルは、通常、ルミナンスおよびクロミナンスのフォーマットまたは色空間、たとえば、YCbCrで表され、YCbCrは、Y(時々、代わりにLも使用される)によって示されるルミナンス成分、ならびにCbおよびCrによって示される2つのクロミナンス成分を備える。ルミナンス(または、ショートルーマ)成分Yは、輝度または(たとえば、グレースケールピクチャにおけるような)グレーレベル強度を表し、2つのクロミナンス(または、ショートクロマ)成分CbおよびCrは、色度または色情報成分を表す。したがって、YCbCrフォーマットをなすピクチャは、ルミナンスサンプル値(Y)のルミナンスサンプルアレイ、およびクロミナンス値(CbおよびCr)の2つのクロミナンスサンプルアレイを備える。RGBフォーマットをなすピクチャは、YCbCrフォーマットに変換(convert)または変換(transform)されてよく、逆も同様であり、そのプロセスは色変換(color transformation)または色変換(color conversion)とも呼ばれる。ピクチャがモノクロである場合、ピクチャはルミナンスサンプルアレイのみを備えてよい。したがって、ピクチャは、たとえば、モノクロフォーマットでのルーマサンプルのアレイ、または4:2:0、4:2:2、および4:4:4カラーフォーマットでの、ルーマサンプルのアレイおよびクロマサンプルの2つの対応するアレイであってよい。
ビデオエンコーダ20の実施形態は、ピクチャ17を複数の(通常は重複しない)ピクチャブロック203に区分するように構成されたピクチャ区分ユニット(図2に示さず)を備えてよい。これらのブロックは、ルートブロック、マクロブロック(H.264/AVC)、またはコーディングツリーブロック(CTB:Coding Tree Block)もしくはコーディングツリーユニット(CTU:Coding Tree Unit)(H.265/HEVCおよびVVC)と呼ばれることもある。ピクチャ区分ユニットは、ビデオシーケンスのすべてのピクチャに対して同じブロックサイズを、かつブロックサイズを規定する対応するグリッドを使用するか、あるいはピクチャまたはピクチャのサブセットもしくはグループの間でブロックサイズを変更し、各ピクチャを対応するブロックに区分するように構成され得る。
さらなる実施形態では、ビデオエンコーダは、ピクチャ17のブロック203、たとえば、ピクチャ17を形成する1つの、複数の、または全部のブロックを、直接受信するように構成され得る。ピクチャブロック203は、現在のピクチャブロック、またはコーディングされるべきピクチャブロックと呼ばれることもある。
ピクチャ17のように、ピクチャブロック203は再び、強度値(サンプル値)を有するサンプルの、ただしピクチャ17よりも寸法が小さい、2次元のアレイまたは行列であるか、またはそのように見なされることがある。言い換えれば、ブロック203は、たとえば、1つのサンプルアレイ(たとえば、モノクロピクチャ17の場合にはルーマアレイ、またはカラーピクチャの場合にはルーマアレイもしくはクロマアレイ)、または3つのサンプルアレイ(たとえば、カラーピクチャ17の場合にはルーマアレイおよび2つのクロマアレイ)、あるいは適用されるカラーフォーマットに応じて任意の他の個数および/または種類のアレイを備えてよい。ブロック203の水平および垂直の方向(または、軸)におけるサンプルの個数は、ブロック203のサイズを規定する。したがって、ブロックは、たとえば、サンプルのM×N(M列×N行)アレイ、または変換係数のM×Nアレイであってよい。
図2に示すようなビデオエンコーダ20の実施形態は、ピクチャ17をブロックごとに符号化するように構成されてよく、たとえば、符号化および予測がブロック203単位で実行される。
図2に示すようなビデオエンコーダ20の実施形態は、スライス(ビデオスライスとも呼ばれる)を使用することによってピクチャを区分および/または符号化するようにさらに構成されてよく、ピクチャは、(通常は重複しない)1つまたは複数のスライスに区分され得るか、またはそうしたスライスを使用して符号化され得、各スライスは、1つまたは複数のブロック(たとえば、CTU)を備えてよい。
図2に示すようなビデオエンコーダ20の実施形態は、タイルグループ(ビデオタイルグループとも呼ばれる)および/またはタイル(ビデオタイルとも呼ばれる)を使用することによってピクチャを区分および/または符号化するようにさらに構成されてよく、ピクチャは、(通常は重複しない)1つまたは複数のタイルグループに区分され得るか、またはそうしたタイルグループを使用して符号化され得、各タイルグループは、たとえば、1つもしくは複数のブロック(たとえば、CTU)または1つもしくは複数のタイルを備えてよく、各タイルは、たとえば、長方形形状であってよく、1つまたは複数のブロック(たとえば、CTU)、たとえば、全体的または断片的なブロックを備えてよい。
残差計算
残差計算ユニット204は、たとえば、サンプルごとに(ピクセルごとに)ピクチャブロック203のサンプル値から予測ブロック265のサンプル値を減算することによって、ピクチャブロック203および予測ブロック265(予測ブロック265についてのさらなる詳細は後で提供される)に基づいて残差ブロック205(残差205とも呼ばれる)を計算して、サンプル領域における残差ブロック205を取得するように構成され得る。
変換
変換処理ユニット206は、残差ブロック205のサンプル値に対して変換、たとえば、離散コサイン変換(DCT)または離散サイン変換(DST)を適用して、変換領域における変換係数207を取得するように構成され得る。変換係数207は、変換残差係数と呼ばれることもあり、変換領域における残差ブロック205を表してよい。
変換処理ユニット206は、H.265/HEVCに対して指定された変換などのDCT/DSTの整数近似を適用するように構成され得る。直交DCT変換と比較して、そのような整数近似は、通常、いくつかの係数によってスケーリングされる。順変換および逆変換によって処理される残差ブロックのノルムを保存するために、変換プロセスの一部として追加のスケーリング係数が適用される。スケーリング係数は、通常、シフト演算のためにスケーリング係数が2のべき乗であること、変換係数のビット深度、確度と実装コストとの間のトレードオフなどのような、いくつかの制約に基づいて選ばれる。たとえば、逆変換処理ユニット212による、たとえば、逆変換(および、たとえば、ビデオデコーダ30における逆変換処理ユニット312による、対応する逆変換)に対して、特定のスケーリング係数が指定され、エンコーダ20における、たとえば、変換処理ユニット206による、順変換のための対応するスケーリング係数が、それに応じて指定され得る。
ビデオエンコーダ20の実施形態(それぞれ、変換処理ユニット206)は、たとえば、直接、またはエントロピー符号化ユニット270を介して符号化もしくは圧縮された、変換パラメータ、たとえば、1つまたは複数の変換のタイプを出力するように構成されてよく、その結果、たとえば、ビデオデコーダ30は、復号のために変換パラメータを受信および使用し得る。
量子化
量子化ユニット208は、たとえば、スカラー量子化またはベクトル量子化を適用することによって、変換係数207を量子化して量子化された係数209を取得するように構成され得る。量子化された係数209は、量子化変換係数209または量子化残差係数209と呼ばれることもある。
量子化プロセスは、変換係数207の一部または全部に関連するビット深度を低減し得る。たとえば、nビットの変換係数は、量子化の間にmビットの変換係数に切り捨てられてよく、ただし、nはmよりも大きい。量子化の程度は、量子化パラメータ(QP:Quantization Parameter)を調整することによって修正され得る。たとえば、スカラー量子化の場合、より細かいかまたはより粗い量子化を達成するために、様々なスケーリングが適用され得る。より小さい量子化ステップサイズは、より細かい量子化に対応し、その一方で、より大きい量子化ステップサイズは、より粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、たとえば、適用可能な量子化ステップサイズの既定のセットへのインデックスであってよい。たとえば、小さい量子化パラメータは、細かい量子化(小さい量子化ステップサイズ)に対応してよく、大きい量子化パラメータは、粗い量子化(大きい量子化ステップサイズ)に対応してよく、またはその逆も同様である。量子化は、量子化ステップサイズによる除算を含んでよく、たとえば、逆量子化ユニット210による、対応するおよび/または逆量子化解除は、量子化ステップサイズによる乗算を含んでよい。いくつかの規格、たとえば、HEVCによる実施形態は、量子化ステップサイズを決定するために量子化パラメータを使用するように構成され得る。概して、量子化ステップサイズは、除算を含む式の固定小数点近似を使用して、量子化パラメータに基づいて計算され得る。量子化ステップサイズおよび量子化パラメータに対する式の固定小数点近似において使用されるスケーリングのために修正されることがある、残差ブロックのノルムを復元するために、量子化および量子化解除に対して追加のスケーリング係数が導入されてよい。1つの例示的な実装形態では、逆変換および量子化解除のスケーリングが組み合わせられることがある。代替として、カスタマイズされた量子化テーブルが使用されてよく、たとえば、ビットストリームの中で、エンコーダからデコーダにシグナリングされてよい。量子化は不可逆的演算であり、増大する量子化ステップサイズとともに損失が増大する。
ビデオエンコーダ20の実施形態(それぞれ、量子化ユニット208)は、たとえば、直接、またはエントロピー符号化ユニット270を介して符号化された、量子化パラメータ(QP)を出力するように構成されてよく、その結果、たとえば、ビデオデコーダ30は、復号のために量子化パラメータを受信および適用し得る。
逆量子化
逆量子化ユニット210は、たとえば、量子化ユニット208と同じ量子化ステップサイズに基づいて、またはそれを使用して、量子化ユニット208によって適用される量子化方式の逆を適用することによって、量子化された係数に対して量子化ユニット208の逆量子化を適用して量子化解除された係数211を取得するように構成される。量子化解除された係数211は、量子化解除された残差係数211と呼ばれることもあり、- 量子化による損失に起因して通常は変換係数と同一でないが、- 変換係数207に対応し得る。
逆変換
逆変換処理ユニット212は、変換処理ユニット206によって適用される変換の逆変換、たとえば、逆離散コサイン変換(DCT)もしくは逆離散サイン変換(DST)、または他の逆変換を適用して、サンプル領域における再構成された残差ブロック213(または、対応する量子化解除された係数213)を取得するように構成される。再構成された残差ブロック213は、変換ブロック213と呼ばれることもある。
再構成
再構成ユニット214(たとえば、加算器(adder)または加算器(summer)214)は、たとえば、再構成された残差ブロック213のサンプル値と予測ブロック265のサンプル値とを- サンプルごとに- 加算することによって、変換ブロック213(すなわち、再構成された残差ブロック213)を予測ブロック265に加算してサンプル領域における再構成されたブロック215を取得するように構成される。
フィルタ処理
ループフィルタユニット220(または、ショート「ループフィルタ」220)は、再構成されたブロック215をフィルタ処理してフィルタ処理済みのブロック221を取得するように、または概して、再構成されたサンプルをフィルタ処理してフィルタ処理済みのサンプルを取得するように構成される。ループフィルタユニットは、たとえば、ピクセル遷移を平滑化するか、またはビデオ品質を別の方法で改善するように構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応型オフセット(SAO:Sample-Adaptive Offset)フィルタ、または1つもしくは複数の他のフィルタ、たとえば、双方向フィルタ、適応型ループフィルタ(ALF:Adaptive Loop Filter)、シャープ化フィルタ、平滑化フィルタ、または協調フィルタ、あるいはそれらの任意の組合せなどの、1つまたは複数のループフィルタを備えてよい。ループフィルタユニット220はループ内フィルタであるものとして図2に示されるが、他の構成では、ループフィルタユニット220は、ループ後フィルタとして実装されてよい。フィルタ処理済みのブロック221は、フィルタ処理済みの再構成されたブロック221と呼ばれることもある。
ビデオエンコーダ20の実施形態(それぞれ、ループフィルタユニット220)は、たとえば、直接、またはエントロピー符号化ユニット270を介して符号化された、(サンプル適応型オフセット情報などの)ループフィルタパラメータを出力するように構成されてよく、その結果、たとえば、デコーダ30は、復号のために同じループフィルタパラメータまたはそれぞれのループフィルタを受信および適用し得る。
復号されたピクチャバッファ
復号されたピクチャバッファ(DPB)230は、ビデオエンコーダ20によってビデオデータを符号化するための、参照ピクチャまたは概して参照ピクチャデータを記憶するメモリであってよい。DPB230は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM)、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのうちのいずれかによって形成され得る。復号されたピクチャバッファ(DPB)230は、1つまたは複数のフィルタ処理済みのブロック221を記憶するように構成され得る。復号されたピクチャバッファ230は、以前にフィルタ処理された他のブロック、たとえば、同じ現在のピクチャの、または異なるピクチャの、以前に再構成およびフィルタ処理されたブロック221、たとえば、以前に再構成されたピクチャを記憶するようにさらに構成されてよく、たとえば、インター予測のために、以前に再構成すなわち復号された全体的なピクチャ(ならびに、対応する参照ブロックおよびサンプル)、および/または部分的に再構成された現在のピクチャ(ならびに、対応する参照ブロックおよびサンプル)を提供し得る。たとえば、再構成されたブロック215が、ループフィルタユニット220によってフィルタ処理されていないか、または再構成されたブロックもしくはサンプルのさらに処理された任意の他のバージョンである場合、復号されたピクチャバッファ(DPB)230はまた、1つまたは複数のフィルタ処理されていない再構成されたブロック215、または概して、フィルタ処理されていない再構成済みのサンプルを、記憶するように構成されてもよい。
モード選択(区分および予測)
モード選択ユニット260は、区分ユニット262、インター予測ユニット244、およびイントラ予測ユニット254を備え、元のピクチャデータ、たとえば、元のブロック203(現在のピクチャ17の現在のブロック203)、ならびに同じ(現在の)ピクチャの、かつ/あるいは1つまたは複数の以前に復号されたピクチャからの、たとえば、復号されたピクチャバッファ230または他のバッファ(たとえば、図示しないラインバッファ)からの、再構成されたピクチャデータ、たとえば、フィルタ処理された再構成済みのサンプルもしくはブロック、および/またはフィルタ処理されていない再構成済みのサンプルもしくはブロックを、受信または取得するように構成される。再構成されたピクチャデータは、予測ブロック265または予測子265を取得するために、予測、たとえば、インター予測またはイントラ予測のための、参照ピクチャデータとして使用される。
モード選択ユニット260は、(区分を含まない)現在のブロック予測モードに対する区分、および予測モード(たとえば、イントラまたはインター予測モード)を決定または選択し、残差ブロック205の計算のために、かつ再構成されたブロック215の再構成のために使用される、対応する予測ブロック265を生成するように構成され得る。
モード選択ユニット260の実施形態は、最良の整合すなわち言い換えれば最小残差(最小残差とは、送信または記憶のためのより良好な圧縮を意味する)、または最小シグナリングオーバーヘッド(最小シグナリングオーバーヘッドとは、送信または記憶のためのより良好な圧縮を意味する)を与えるか、あるいはその両方を考慮するかまたはその両方のバランスをとる、区分および予測モードを(たとえば、モード選択ユニット260によってサポートされるか、またはモード選択ユニット260にとって利用可能なものから)選択するように構成され得る。モード選択ユニット260は、レートひずみ最適化(RDO:Rate Distortion Optimization)に基づいて区分および予測モードを決定するように、すなわち、最小のレートひずみをもたらす予測モードを選択するように構成され得る。このコンテキストにおける「最良の」、「最小の」、「最適な」などのような用語は、必ずしも全体的な「最良の」、「最小の」、「最適な」などを指すとは限らず、しきい値または他の制約を上回るかまたは下回る値のような、終結基準または選択基準の充足を指してもよく、潜在的に「準最適な選択」につながるが、計算量および処理時間を低減する。
言い換えれば、区分ユニット262は、たとえば、4分木区分(QT)、バイナリ区分(BT)、もしくはトリプルツリー区分(TT)、またはそれらの任意の組合せを反復的に使用して、ブロック203をより小さいブロック区分または(再びブロックを形成する)サブブロックに区分し、たとえば、ブロック区分またはサブブロックの各々に対して予測を実行するように構成されてよく、モード選択は、区分されるブロック203のツリー構造の選択を備え、予測モードは、ブロック区分またはサブブロックの各々に適用される。
以下では、例示的なビデオエンコーダ20によって実行される(たとえば、区分ユニット260による)区分および(インター予測ユニット244およびイントラ予測ユニット254による)予測処理が、より詳細に説明される。
区分
区分ユニット262は、現在のブロック203をより小さい区分、たとえば、正方形または長方形のサイズのより小さいブロックに、区分(すなわち分割)し得る。これらのより小さいブロック(サブブロックと呼ばれることもある)は、一層小さい区分にさらに区分され得る。このことはまた、ツリー区分または階層的ツリー区分と呼ばれ、たとえば、ルートツリーレベル0(階層レベル0、深度0)における、ルートブロックは、再帰的に区分されてよく、たとえば、次に低いツリーレベルの2つ以上のブロック、たとえば、ツリーレベル1(階層レベル1、深度1)におけるノードに区分されてよく、これらのブロックは再び、たとえば、終結基準が充足されており、たとえば、最大ツリー深度または最小ブロックサイズに到達したので、区分が終結されるまで、次に低いレベルの2つ以上のブロック、たとえば、ツリーレベル2(階層レベル2、深度2)などに区分されてよい。それ以上区分されないブロックは、ツリーのリーフブロックまたはリーフノードとも呼ばれる。2つの区分への区分を使用するツリーは2分木(BT:Binary-Tree)と呼ばれ、3つの区分への区分を使用するツリーは3分木(TT:Ternary-Tree)と呼ばれ、4つの区分への区分を使用するツリーは4分木(QT:Quad-Tree)と呼ばれる。
前に述べたように、本明細書で使用する「ブロック」という用語は、ピクチャの一部分、具体的には正方形または長方形の部分であってよい。たとえば、HEVCおよびVVCを参照すると、ブロックとは、コーディングツリーユニット(CTU)、コーディングユニット(CU:Coding Unit)、予測ユニット(PU:Prediction Unit)、および変換ユニット(TU:Transform Unit)、ならびに/または対応するブロック、たとえば、コーディングツリーブロック(CTB)、コーディングブロック(CB:Coding Block)、変換ブロック(TB:Transform Block)、もしくは予測ブロック(PB:Prediction Block)であってよく、またはそれらに相当し得る。
たとえば、コーディングツリーユニット(CTU)は、3つのサンプルアレイを有するピクチャのルーマサンプルのCTB、クロマサンプルの2つの対応するCTB、またはモノクロピクチャもしくは3つの別個の色平面を使用してコーディングされるピクチャのサンプルのCTB、およびサンプルをコーディングするために使用されるシンタックス構造であってよく、またはそれらを備えてもよい。それに対応して、コーディングツリーブロック(CTB)は、CTBへの成分の分割が区分であるような、Nのいくつかの値に対する、サンプルのN×Nブロックであってよい。コーディングユニット(CU)は、3つのサンプルアレイを有するピクチャのルーマサンプルのコーディングブロック、クロマサンプルの2つの対応するコーディングブロック、またはモノクロピクチャもしくは3つの別個の色平面を使用してコーディングされるピクチャのサンプルのコーディングブロック、およびサンプルをコーディングするために使用されるシンタックス構造であってよく、またはそれらを備えてもよい。それに対応して、コーディングブロック(CB)は、コーディングブロックへのCTBの分割が区分であるような、MおよびNのいくつかの値に対する、サンプルのM×Nブロックであってよい。
たとえば、HEVCに係る実施形態では、コーディングツリーユニット(CTU)は、コーディングツリーとして示される4分木構造を使用することによってCUに分割され得る。ピクチャエリアを、(時間的な)インターピクチャ予測を使用してコーディングすべきか、それとも(空間的な)イントラピクチャ予測を使用してコーディングすべきかという決定は、CUレベルにおいて行われる。各CUは、PU分割タイプに従って1つ、2つ、または4つのPUにさらに分割され得る。1つのPUの内側では、同じ予測プロセスが適用され、関連する情報がPU単位でデコーダへ送信される。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CUは、CU用のコーディングツリーと類似の別の4分木構造に従って変換ユニット(TU)に区分され得る。
たとえば、多用途ビデオコーディング(VVC)と呼ばれる、現在策定中の最新のビデオコーディング規格に係る実施形態では、組み合わせられた4分木および2分木(QTBT:Quad-Tree and Binary Tree)区分が、たとえば、コーディングブロックを区分するために使用される。QTBTブロック構造の中で、CUは、正方形または長方形のいずれかの形状を有することができる。たとえば、コーディングツリーユニット(CTU)は、4分木構造によって最初に区分される。4分木リーフノードは、2分木構造または3分木(すなわち、トリプルツリー)構造によってさらに区分される。区分するツリーリーフノードは、コーディングユニット(CU)と呼ばれ、そのセグメント化は、それ以上の区分を伴わずに予測処理および変換処理のために使用される。このことは、CU、PU、およびTUがQTBTコーディングブロック構造の中で同じブロックサイズを有することを意味する。並行して、複数の区分、たとえば、トリプルツリー区分が、QTBTブロック構造と一緒に使用され得る。
一例では、ビデオエンコーダ20のモード選択ユニット260は、本明細書で説明する区分技法の任意の組合せを実行するように構成され得る。
上記で説明したように、ビデオエンコーダ20は、(たとえば、事前決定された)予測モードのセットから、最良のまたは最適な予測モードを決定または選択するように構成される。予測モードのセットは、たとえば、イントラ予測モードおよび/またはインター予測モードを備えてよい。
イントラ予測
イントラ予測モードのセットは、たとえば、HEVCにおいて規定されるように、35個の異なるイントラ予測モード、たとえば、DC(または、平均)モードおよび平面モードのような全方向性モード、もしくは方向性モードを備えてよく、または、たとえば、VVCのために規定されるように、67個の異なるイントラ予測モード、たとえば、DC(または、平均)モードおよび平面モードのような全方向性モード、もしくは方向性モードを備えてよい。
イントラ予測ユニット254は、イントラ予測モードのセットのイントラ予測モードに従ってイントラ予測ブロック265を生成するために、同じ現在のピクチャの隣接ブロックの再構成されたサンプルを使用するように構成される。
イントラ予測ユニット254(または概して、モード選択ユニット260)は、符号化されたピクチャデータ21の中に含めるためのシンタックス要素266の形式でイントラ予測パラメータ(または概して、ブロック用の選択されたイントラ予測モードを示す情報)をエントロピー符号化ユニット270に出力するようにさらに構成され、その結果、たとえば、ビデオデコーダ30は、復号のために予測パラメータを受信および使用し得る。
インター予測
インター予測モードのセット(または、可能なインター予測モード)は、利用可能な参照ピクチャ(すなわち、たとえば、DBP230の中に記憶されている、少なくとも部分的に復号された、以前のピクチャ)、ならびに他のインター予測パラメータ、たとえば、最良に整合する参照ブロックを求めて探索するために参照ピクチャ全体が使用されるのか、それとも一部のみ、たとえば、参照ピクチャの現在のブロックのエリアの周囲の探索ウィンドウエリアが使用されるのか、ならびに/または、たとえば、ピクセル補間、たとえば、ハーフペル補間/セミペル補間および/もしくはクォーターペル補間が適用されるか否かに依存する。
上記の予測モードに加えて、スキップモードおよび/またはダイレクトモードが適用されてよい。
インター予測ユニット244は、動き推定(ME:Motion Estimation)ユニットおよび動き補償(MC:Motion Compensation)ユニット(両方とも図2に示さず)を含んでよい。動き推定ユニットは、動き推定のために、ピクチャブロック203(現在のピクチャ17の現在のピクチャブロック203)および復号されたピクチャ231、または少なくとも1つもしくは複数の以前に再構成されたブロック、たとえば、他の/異なる1つもしくは複数の以前に復号されたピクチャ231の再構成されたブロックを、受信または取得するように構成され得る。たとえば、ビデオシーケンスは、現在のピクチャおよび以前に復号されたピクチャ231を備えてよく、すなわち言い換えれば、現在のピクチャおよび以前に復号されたピクチャ231は、ビデオシーケンスを形成するピクチャのシーケンスの一部であってよく、またはそれらを形成し得る。
エンコーダ20は、たとえば、複数の他のピクチャのうちの同じかまたは異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(または、参照ピクチャインデックス)、および/または参照ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間オフセット)を、インター予測パラメータとして動き推定ユニットに提供するように構成され得る。このオフセットは動きベクトル(MV:Motion Vector)とも呼ばれる。
動き補償ユニットは、インター予測パラメータを取得、たとえば受信し、インター予測パラメータに基づいて、またはインター予測パラメータを使用して、インター予測を実行してインター予測ブロック265を取得するように構成される。動き補償ユニットによって実行される動き補償は、動き推定によって決定された動き/ブロックベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実行することを伴ってよい。補間フィルタ処理は、知られているピクセルサンプルから追加のピクセルサンプルを生成してよく、したがって、ピクチャブロックをコーディングするために使用され得る候補予測ブロックの個数を潜在的に増大させる。現在のピクチャブロックのPUに対する動きベクトルを受信すると、動き補償ユニットは、参照ピクチャリストのうちの1つの中で動きベクトルが指し示す先の予測ブロックの位置を特定し得る。
動き補償ユニットはまた、ビデオスライスのピクチャブロックを復号する際のビデオデコーダ30による使用のために、ブロックおよびビデオスライスに関連するシンタックス要素を生成し得る。スライスおよびそれぞれのシンタックス要素に加えて、またはそれらの代替として、タイルグループおよび/またはタイルならびにそれぞれのシンタックス要素が生成または使用されてよい。
エントロピーコーディング
エントロピー符号化ユニット270は、量子化された係数209、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、および/または他のシンタックス要素に対して、たとえば、エントロピー符号化アルゴリズムまたは方式(たとえば、可変長コーディング(VLC)方式、コンテキスト適応型VLC方式(CAVLC)、算術コーディング方式、2値化方式、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率区間区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法または技法)、あるいはバイパス(圧縮なし)を適用して、たとえば、符号化されたビットストリーム21の形式で、出力部272を介して出力され得る符号化されたピクチャデータ21を取得するように構成され、その結果、たとえば、ビデオデコーダ30は、復号のためにパラメータを受信および使用し得る。符号化されたビットストリーム21は、ビデオデコーダ30へ送信されてよく、または後でビデオデコーダ30によって送信するかまたは取り出すためにメモリの中に記憶されてもよい。
ビデオエンコーダ20の他の構造的変形が、ビデオストリームを符号化するために使用され得る。たとえば、非変換ベースのエンコーダ20が、いくつかのブロックまたはフレームに対して変換処理ユニット206を用いずに残差信号を直接量子化することができる。別の実装形態では、エンコーダ20は、単一のユニットの中に組み合わせられた量子化ユニット208および逆量子化ユニット210を有することができる。
デコーダおよび復号方法
図3は、この本出願の技法を実施するように構成されるビデオデコーダ30の一例を示す。ビデオデコーダ30は、たとえば、エンコーダ20によって符号化された、符号化されたピクチャデータ21(たとえば、符号化されたビットストリーム21)を受信して、復号されたピクチャ331を取得するように構成される。符号化されたピクチャデータまたはビットストリームは、符号化されたピクチャデータを復号するための情報、たとえば、符号化されたビデオスライス(および/または、タイルグループもしくはタイル)のピクチャブロックを表すデータ、および関連するシンタックス要素を備える。
図3の例では、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(たとえば、加算器314)、ループフィルタ320、復号されたピクチャバッファ(DBP)330、モード適用ユニット360、インター予測ユニット344、およびイントラ予測ユニット354を備える。インター予測ユニット344は、動き補償ユニットであってよく、または動き補償ユニットを含んでもよい。ビデオデコーダ30は、いくつかの例では、図2からのビデオエンコーダ100に関して説明した符号化パスとは概して相反の復号パスを実行し得る。
エンコーダ20に関して説明したように、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、復号されたピクチャバッファ(DPB)230、インター予測ユニット344、およびイントラ予測ユニット354はまた、ビデオエンコーダ20の「ビルトインデコーダ」を形成するものとして参照される。したがって、逆量子化ユニット310は逆量子化ユニット110と機能が同一であってよく、逆変換処理ユニット312は逆変換処理ユニット212と機能が同一であってよく、再構成ユニット314は再構成ユニット214と機能が同一であってよく、ループフィルタ320はループフィルタ220と機能が同一であってよく、復号されたピクチャバッファ330は復号されたピクチャバッファ230と機能が同一であってよい。したがって、ビデオ20エンコーダのそれぞれのユニットおよび機能に対して提供された説明は、それに対応してビデオデコーダ30のそれぞれのユニットおよび機能に適用される。
エントロピー復号
エントロピー復号ユニット304は、ビットストリーム21(または概して、符号化されたピクチャデータ21)を構文解析し、たとえば、符号化されたピクチャデータ21へのエントロピー復号を実行して、たとえば、量子化された係数309および/または復号されたコーディングパラメータ(図3に示さず)、たとえば、インター予測パラメータ(たとえば、参照ピクチャインデックスおよび動きベクトル)、イントラ予測パラメータ(たとえば、イントラ予測モードまたはインデックス)、変換パラメータ、量子化パラメータ、ループフィルタパラメータ、および/または他のシンタックス要素のうちのいずれかまたはすべてを取得するように構成される。エントロピー復号ユニット304は、エンコーダ20のエントロピー符号化ユニット270に関して説明したような符号化方式に対応する復号アルゴリズムまたは復号方式を適用するように構成され得る。エントロピー復号ユニット304は、モード適用ユニット360にインター予測パラメータ、イントラ予測パラメータ、および/または他のシンタックス要素を、またデコーダ30の他のユニットに他のパラメータを提供するように、さらに構成され得る。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信し得る。スライスおよびそれぞれのシンタックス要素に加えて、またはそれらの代替として、タイルグループおよび/またはタイルならびにそれぞれのシンタックス要素が受信および/または使用され得る。
逆量子化
逆量子化ユニット310は、(たとえば、エントロピー復号ユニット304によって、たとえば、構文解析および/または復号することによって)符号化されたピクチャデータ21から量子化パラメータ(QP)(または概して、逆量子化に関係する情報)および量子化された係数を受信し、量子化パラメータに基づいて、復号された量子化された係数309に対して逆量子化を適用して、変換係数311と呼ばれることもある量子化解除された係数311を取得するように構成され得る。逆量子化プロセスは、量子化の程度、および同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライス(または、タイルもしくはタイルグループ)の中のビデオブロックごとの、ビデオエンコーダ20によって決定された量子化パラメータの使用を含んでよい。
逆変換
逆変換処理ユニット312は、変換係数311とも呼ばれる量子化解除された係数311を受信し、サンプル領域における再構成された残差ブロック213を取得するために量子化解除された係数311に変換を適用するように構成され得る。再構成された残差ブロック213は、変換ブロック313と呼ばれることもある。変換は、逆変換、たとえば、逆DCT変換、逆DST変換、逆整数変換、または概念的に類似の逆変換プロセスであってよい。逆変換処理ユニット312は、量子化解除された係数311に適用されるべき変換を決定するために、(たとえば、エントロピー復号ユニット304によって、たとえば、構文解析および/または復号することによって)符号化されたピクチャデータ21から変換パラメータまたは対応する情報を受信するようにさらに構成され得る。
再構成
再構成ユニット314(たとえば、加算器(adder)または加算器(summer)314)は、たとえば、再構成された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することによって、予測ブロック365に再構成された残差ブロック313を加算して、サンプル領域における再構成されたブロック315を取得するように構成され得る。
フィルタ処理
(コーディングループの中またはコーディングループの後のいずれかの)ループフィルタユニット320は、たとえば、ピクセル遷移を平滑化するか、またはビデオ品質を別の方法で改善するために、再構成されたブロック315をフィルタ処理してフィルタ処理済みのブロック321を取得するように構成される。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応型オフセット(SAO)フィルタ、または1つもしくは複数の他のフィルタ、たとえば、双方向フィルタ、適応型ループフィルタ(ALF)、シャープ化フィルタ、平滑化フィルタ、または協調フィルタ、あるいはそれらの任意の組合せなどの、1つまたは複数のループフィルタを備えてよい。ループフィルタユニット320はループ内フィルタであるものとして図3に示されるが、他の構成では、ループフィルタユニット320はループ後フィルタとして実装されてもよい。
復号されたピクチャバッファ
ピクチャの復号されたビデオブロック321は、次いで、他のピクチャに対する後続の動き補償のための、かつ/または出力されるそれぞれ表示用の、参照ピクチャとして復号されたピクチャ331を記憶する、復号されたピクチャバッファ330の中に記憶される。
デコーダ30は、ユーザへの提示または鑑賞のために、たとえば、出力部312を介して復号されたピクチャ311を出力するように構成される。
予測
インター予測ユニット344は、インター予測ユニット244と(詳細には、動き補償ユニットと)同一であってよく、イントラ予測ユニット354は、機能がインター予測ユニット254と同一であってよく、区分および/もしくは予測パラメータ、または符号化されたピクチャデータ21から(たとえば、エントロピー復号ユニット304によって、たとえば、構文解析および/または復号することによって)受信されたそれぞれの情報に基づいて、分割または区分決定および予測を実行する。モード適用ユニット360は、(フィルタ処理されているかまたはフィルタ処理されていない)再構成されたピクチャ、ブロック、またはそれぞれのサンプルに基づいて、ブロックごとに予測(イントラ予測またはインター予測)を実行して、予測ブロック365を取得するように構成され得る。
イントラコーディングされた(I)スライスとしてビデオスライスがコーディングされるとき、モード適用ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モード、および現在のピクチャの以前に復号されたブロックからのデータに基づいて、現在のビデオスライスのピクチャブロックに対する予測ブロック365を生成するように構成される。インターコーディングされた(すなわち、BまたはP)スライスとしてビデオピクチャがコーディングされるとき、モード適用ユニット360のインター予測ユニット344(たとえば、動き補償ユニット)は、動きベクトル、およびエントロピー復号ユニット304から受信された他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックに対する予測ブロック365を作り出すように構成される。インター予測の場合、予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから作り出されてよい。ビデオデコーダ30は、DPB330の中に記憶された参照ピクチャに基づいてプリセットの構成技法を使用して、参照フレームリスト、すなわち、リスト0およびリスト1を構築し得る。スライス(たとえば、ビデオスライス)に加えて、またはその代替として、タイルグループ(たとえば、ビデオタイルグループ)および/またはタイル(たとえば、ビデオタイル)を使用する実施形態に対して、またはそうした実施形態によって、同じかまたは類似のことが適用されてよく、たとえば、ビデオは、I、P、またはBタイルグループおよび/またはタイルを使用してコーディングされてよい。
モード適用ユニット360は、動きベクトルまたは関連する情報および他のシンタックス要素を構文解析することによって、現在のビデオスライスのビデオブロックに対する予測情報を決定し、予測情報を使用して、復号されている現在のビデオブロックに対する予測ブロックを作り出すように構成される。たとえば、モード適用ユニット360は、受信されたシンタックス要素のうちのいくつかを使用して、ビデオスライスのビデオブロックをコーディングするために使用された予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライス用の参照ピクチャリストのうちの1つまたは複数に対する構成情報、スライスのインター符号化されたビデオブロックごとの動きベクトル、スライスのインターコーディングされたビデオブロックごとのインター予測ステータス、および現在のビデオスライスの中のビデオブロックを復号するための他の情報を決定する。スライス(たとえば、ビデオスライス)に加えて、またはその代替として、タイルグループ(たとえば、ビデオタイルグループ)および/またはタイル(たとえば、ビデオタイル)を使用する実施形態に対して、またはそうした実施形態によって、同じかまたは類似のことが適用されてよく、たとえば、ビデオは、I、P、またはBタイルグループおよび/またはタイルを使用してコーディングされてよい。
図3に示すようなビデオデコーダ30の実施形態は、スライス(ビデオスライスとも呼ばれる)を使用することによってピクチャを区分および/または復号するように構成されてよく、ピクチャは、(通常は重複しない)1つまたは複数のスライスに区分され得るか、またはそうしたスライスを使用して復号され得、各スライスは、1つまたは複数のブロック(たとえば、CTU)を備えてよい。
図3に示すようなビデオデコーダ30の実施形態は、タイルグループ(ビデオタイルグループとも呼ばれる)および/またはタイル(ビデオタイルとも呼ばれる)を使用することによってピクチャを区分および/または復号するように構成されてよく、ピクチャは、(通常は重複しない)1つまたは複数のタイルグループに区分され得るか、またはそうしたタイルグループを使用して復号され得、各タイルグループは、たとえば、1つもしくは複数のブロック(たとえば、CTU)または1つもしくは複数のタイルを備えてよく、各タイルは、たとえば、長方形形状であってよく、1つまたは複数のブロック(たとえば、CTU)、たとえば、全体的または断片的なブロックを備えてよい。
ビデオデコーダ30の他の変形が、符号化されたピクチャデータ21を復号するために使用され得る。たとえば、デコーダ30は、ループフィルタ処理ユニット320を用いずに出力ビデオストリームを作り出すことができる。たとえば、非変換ベースのデコーダ30が、いくつかのブロックまたはフレームに対して逆変換処理ユニット312を用いずに残差信号を直接逆量子化することができる。別の実装形態では、ビデオデコーダ30は、単一のユニットの中に組み合わせられた逆量子化ユニット310および逆変換処理ユニット312を有することができる。
エンコーダ20およびデコーダ30において、現在のステップの処理結果がさらに処理されてよく、次いで、次のステップに出力されてよいことを理解されたい。たとえば、補間フィルタ処理、動きベクトル導出、またはループフィルタ処理の後、補間フィルタ処理、動きベクトル導出、またはループフィルタ処理の処理結果に対して、クリップまたはシフトなどのさらなる演算が実行されてよい。
現在のブロックの導出された動きベクトル(限定はしないが、アフィンモードの制御点動きベクトル、アフィンモード、平面モード、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の整数部分の間の最大差分が、1ピクセル以下などの、Nピクセル以下となるように制約される。ここで、bitDepthに従って動きベクトルを制約するための2つの方法を提供する。
方法1:フローイング演算(flowing operation)によってオーバーフロー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は画像ブロックまたはサブブロックの動きベクトルの水平成分であり、mvyは画像ブロックまたはサブブロックの動きベクトルの垂直成分であり、uxおよびuyは中間値を示す。
たとえば、mvxの値が-32769である場合、式(1)および式(2)を適用した後、得られる値は32767である。コンピュータシステムでは、10進数は2の補数として記憶される。-32769の2の補数は1,0111,1111,1111,1111(17ビット)であり、次いで、MSBが廃棄され、そのため、得られる2の補数は、式(1)および式(2)を適用することによる出力と同じである0111,1111,1111,1111である(10進数は32767である)。
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との加算の間に適用され得る。
方法2:値をクリッピングすることによってオーバーフローMSBを除去する。
vx = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vx)
vy = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vy)
ただし、vxは画像ブロックまたはサブブロックの動きベクトルの水平成分であり、vyは画像ブロックまたはサブブロックの動きベクトルの垂直成分であり、x、y、およびzはそれぞれ、MVクリッピングプロセスの3つの入力値に対応し、関数Clip3の定義は以下の通りである。
Figure 2023510858000002
図4は、本開示の一実施形態に係るビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、本明細書で説明するような開示する実施形態を実施するのに適している。一実施形態では、ビデオコーディングデバイス400は、図1Aのビデオデコーダ30などのデコーダ、または図1Aのビデオエンコーダ20などのエンコーダであってよい。
ビデオコーディングデバイス400は、データを受信するための入口ポート410(または、入力ポート410)および受信機ユニット(Rx)420、データを処理するためのプロセッサ、論理ユニット、または中央処理ユニット(CPU)430、データを送信するための送信機ユニット(Tx)440および出口ポート450(または、出力ポート450)、ならびにデータを記憶するためのメモリ460を備える。ビデオコーディングデバイス400はまた、光信号または電気信号の出口または入口のために入口ポート410、受信機ユニット420、送信機ユニット440、および出口ポート450に結合された、光電気(OE:optical-to-electrical)構成要素および電気光(EO:electrical-to-optical)構成要素を備えてよい。
プロセッサ430は、ハードウェアおよびソフトウェアによって実装される。プロセッサ430は、1つまたは複数のCPUチップ、コア(たとえば、マルチコアプロセッサ)、FPGA、ASIC、およびDSPとして実装され得る。プロセッサ430は、入口ポート410、受信機ユニット420、送信機ユニット440、出口ポート450、およびメモリ460と通信している。プロセッサ430は、コーディングモジュール470を備える。コーディングモジュール470は、上記で説明した開示する実施形態を実施する。たとえば、コーディングモジュール470は、様々なコーディング動作を実施、処理、準備、または提供する。したがって、コーディングモジュール470を含むことは、ビデオコーディングデバイス400の機能性に大幅な改善をもたらし、異なる状態へのビデオコーディングデバイス400の変形をもたらす。代替として、コーディングモジュール470は、メモリ460の中に記憶されプロセッサ430によって実行される命令として実装される。
メモリ460は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを備えてよく、実行のためにそのようなプログラムが選択されるときにプログラムを記憶するための、かつプログラム実行中に読み取られる命令およびデータを記憶するための、オーバーフローデータ記憶デバイスとして使用されてよい。メモリ460は、たとえば、揮発性および/または不揮発性であってよく、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、3値連想メモリ(TCAM:Ternary Content-Addressable Memory)、および/またはスタティックランダムアクセスメモリ(SRAM)であってよい。
図5は、例示的な実施形態に係る図1からのソースデバイス12および宛先デバイス14のうちのどちらか一方または両方として使用され得る装置500の簡略化されたブロック図である。
装置500の中のプロセッサ502は中央処理ユニットであり得る。代替として、プロセッサ502は、現存するかまたは今後開発される、情報を操作または処理することが可能な任意の他のタイプのデバイスまたは複数のデバイスであり得る。開示する実装形態は図示のように単一のプロセッサ、たとえば、プロセッサ502を用いて実践され得るが、速度および効率における利点は、2つ以上のプロセッサを使用して達成され得る。
装置500の中のメモリ504は、一実装形態では読取り専用メモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスであり得る。任意の他の好適なタイプの記憶デバイスが、メモリ504として使用され得る。メモリ504は、バス512を使用してプロセッサ502によってアクセスされるコードおよびデータ506を含むことができる。メモリ504は、オペレーティングシステム508およびアプリケーションプログラム510をさらに含むことができ、アプリケーションプログラム510は、ここで説明する方法をプロセッサ502が実行することを可能にする少なくとも1つのプログラムを含む。たとえば、アプリケーションプログラム510は、アプリケーション1~Nを含むことができ、アプリケーション1~Nは、ここで説明する方法を実行するビデオコーディングアプリケーションをさらに含む。
装置500はまた、ディスプレイ518などの1つまたは複数の出力デバイスを含むことができる。ディスプレイ518は、一例では、ディスプレイを、タッチ入力を感知するように動作可能なタッチ感応性要素と組み合わせる、タッチ感応性ディスプレイであってよい。ディスプレイ518は、バス512を介してプロセッサ502に結合され得る。
ここでは単一のバスとして示されるが、装置500のバス512は複数のバスからなり得る。さらに、2次ストレージ514が、装置500の他の構成要素に直接結合され得るか、またはネットワークを介してアクセスされ得、メモリカードなどの単一の統合ユニット、または複数のメモリカードなどの複数のユニットを備えることができる。したがって、装置500は多種多様な構成で実装され得る。
文書J.M.Boyce「Weighted prediction in the H.264/MPEG AVC video coding standard」、IEEE International Symposium on Circuits and Systems、2004年5月、カナダ、789~792頁において述べられるように、重み付き予測(WP)は、特にコーディングフェードにとって有用なツールである。動き補償予測に乗法的な重み付け係数および加法的なオフセットを適用して重み付き予測を形成することによってコーディング効率を改善するために、H.264ビデオコーディング規格の主要プロファイルおよび拡張プロファイルにおいて重み付き予測(WP)ツールが採用されている。明示的モードでは、重み付け係数およびオフセットは、許容可能な参照ピクチャインデックスごとにスライスヘッダの中でコーディングされてよい。暗黙的モードでは、重み付け係数はコーディングされないが、2つの参照ピクチャの相対的なピクチャ順序カウント(POC)距離に基づいて導出される。WPを使用してコーディング効率改善を測る、実験結果が提供される。フェードツーブラックシーケンス(fade-to-black sequence)をコーディングするとき、最高67%のビットレート低減が達成された。
Pピクチャにおけるような単一の予測に適用されるとき、WPはエラーレジリエンシーのために以前に提案されているリーキー予測(leaky prediction)と類似である。リーキー予測は、スケーリング係数が範囲0≦α≦1に限定された、WPの特別な事例になる。H.264 WPは、負のスケーリング係数、および1よりも大きいスケーリング係数を許容する。カバーされた領域およびカバーされない領域の効率的な圧縮のために、重み付け係数は、コーディングされたラベルフィールドを使用してピクセル単位で適用される。圧縮効率のための重み付き予測を伴う以前の提案からの、H.264のWPツールの主要な差異は、重み付け係数パラメータとの参照ピクチャインデックスの関連付けであり、そのことは、複数参照ピクチャ環境においてこれらのパラメータの効率的なシグナリングを可能にする。文書R.ZhangおよびG.Cote「accurate parameter estimation and efficient fade detection for weighted prediction in H.264 video compression」、第15回IEEE International Conference on Image Processing、2008年10月、サンディエゴ、カリフォルニア、米国、2836~2839頁に書かれているように、リアルタイム符号化システムにおいてWPを適用する手順は、図6に示すステップのシーケンスとして形式化され得る。最初に、いくつかの統計値611がビデオ分析610を通じて生成される。いくつかの以前のピクチャから現在のピクチャまでの、小さいウィンドウ内の統計値611が、次いで、フェードを検出するために使用される。各ピクチャは、ピクチャがNORMALの状態またはFADEの状態にあるかどうかを示す状態値631が割り当てられる。そのような状態値がピクチャごとにセーブされる。ピクチャを符号化するとき、現在のピクチャ、またはその参照ピクチャのうちの1つのいずれかの中に、FADE状態がある場合、この現在の参照ペアに対してWPが使用され、現在のピクチャおよび対応する参照ピクチャの統計値がステップ650において処理されてWPパラメータを推定する。これらのパラメータは、次いで、符号化エンジン660に渡される。そうでない場合、通常の符号化が行われる。
文書A.LeontarisおよびA.M.Tourapis「Weighted prediction methods for improved motion compensation」、第16回IEEE International Conference on Image Processing (ICIP)、2009年11月、カイロ、エジプト、1029~1032頁において述べられるように、H.264におけるマクロブロックはマクロブロック区分に分割される。マクロブロック区分ごとに、(しばしば、仕様ではRefPicListとして示される)利用可能な参照リスト、すなわち、PもしくはBコーディングされたスライスのためのリスト0、またはBコーディングされたスライスのための参照リスト1の各々から、参照が選択される。使用される参照は区分ごとに異なってよい。これらの参照を使用して、リストごとに予測ブロック、すなわち、単一リスト予測のためのPならびに双予測のためのPOおよびP1が、任意選択でサブピクセル精度を有する、動き情報を使用して生成される。予測ブロックは、現在のスライスに対する重み付き予測の利用可能性に応じてさらに処理されてよい。Pスライスの場合、WPパラメータはスライスヘッダにおいて送信される。Bスライスの場合、2つのオプションがある。明示的WPでは、パラメータはスライスヘッダの中で送信され、暗黙的WPでは、パラメータは、スライスヘッダの中でシグナリングされるピクチャ順序カウント(POC)数に基づいて導出される。この文書では、明示的WP、および動き補償性能を改善するためにこの方法がどのように使用され得るのかのみに、焦点を当てる。HEVCおよびVVCでは、AVCにおけるマクロブロック区分と同様にPBが使用されることに留意されたい。
Pスライス、またはBスライスにおける単一リスト明示的WPの場合、予測ブロックは単一の参照から引き出される。予測ブロックPの中のサンプル値をpと示すものとする。重み付き予測が使用されない場合、最終のインター予測サンプルはf=pである。そうでない場合、予測サンプルは、
Figure 2023510858000003
である。項wxおよびoxは、参照リストxに対するWP利得およびオフセットパラメータである。項logWDは、ビットストリームの中で送信され、重み付き予測プロセスの数理精度を制御する。logWD≧1の場合、上の表現は小数点以下が切り上げられる。同様に、双予測の場合、2つの予測ブロック、すなわち、参照リストごとに1つが考慮される。2つの予測ブロックP0およびP1の各々の中のサンプルをp0およびp1と示すものとする。重み付き予測が使用されない場合、次のように予測が実行される。
f=(p0+p1+1)>>1
重み付き双予測の場合、次のように予測が実行される。
f=((p0×w0+p1×w1+2logWD)>>(logWD+1))+((o0+o1+1)>>1)
重み付き予測が、フェードイン、フェードアウト、またはクロスフェードなどの、照明変化を補償できることに留意する価値がある。
VVCにおける高レベルでは、重み付き予測は、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、およびスライスヘッダの中でシグナリングされる。SPSでは、そのことのために以下のシンタックス要素が使用される。
- 1に等しいsps_weighted_pred_flagは、SPSを参照するPスライスに重み付き予測が適用されてよいことを指定する。0に等しいsps_weighted_pred_flagは、SPSを参照するPスライスに重み付き予測が適用されないことを指定する。
- 1に等しいsps_weighted_bipred_flagは、SPSを参照するBスライスに明示的な重み付き予測が適用されてよいことを指定する。0に等しいsps_weighted_bipred_flagは、SPSを参照するBスライスに明示的な重み付き予測が適用されないことを指定する。
PPSでは、そのことのために以下のシンタックス要素が使用される。
- 0に等しいpps_weighted_pred_flagは、PPSを参照するPスライスに重み付き予測が適用されないことを指定する。1に等しいpps_weighted_pred_flagは、PPSを参照するPスライスに重み付き予測が適用されることを指定する。sps_weighted_pred_flagが0に等しいとき、pps_weighted_pred_flagの値は0に等しいものとする。
- 0に等しいpps_weighted_bipred_flagは、PPSを参照するBスライスに明示的な重み付き予測が適用されないことを指定する。1に等しいpps_weighted_bipred_flagは、PPSを参照するBスライスに明示的な重み付き予測が適用されることを指定する。sps_weighted_bipred_flagが0に等しいとき、pps_weighted_bipred_flagの値は0に等しいものとする。
スライスヘッダの中で、重み付き予測パラメータは、表1におけるように構造化され以下の要素を含むpred_weight_table( )としてシグナリングされる。
luma_log2_weight_denomは、すべてのルーマ重み付け係数にとっての分母の、2を底とする対数である。luma_log2_weight_denomの値は、両端値を含む0~7という範囲中にあるものとする。
delta_chroma_log2_weight_denomは、すべてのクロマ重み付け係数にとっての分母の、2を底とする対数の差分である。delta_chroma_log2_weight_denomが存在しないとき、それは0に等しいものと推測される。
変数ChromaLog2WeightDenomは、luma_log2_weight_denom + delta_chroma_log2_weight_denomに等しくなるように導出され、その値は両端値を含む0~7という範囲中にあるものとする。
1に等しいluma_weight_l0_flag[ i ]は、RefPicList[ 0 ][ i ]を使用するリスト0予測のルーマ成分に対する重み付け係数が存在することを指定する。0に等しいluma_weight_l0_flag[ i ]は、これらの重み付け係数が存在しないことを指定する。
1に等しいchroma_weight_l0_flag[ i ]は、RefPicList[ 0 ][ i ]を使用するリスト0予測のクロマ予測値に対する重み付け係数が存在することを指定する。0に等しいchroma_weight_l0_flag[ i ]は、これらの重み付け係数が存在しないことを指定する。chroma_weight_l0_flag[ i ]が存在しないとき、それは0に等しいものと推測される。
delta_luma_weight_l0[ i ]は、RefPicList[ 0 ][ i ]を使用するリスト0予測に対してルーマ予測値に適用される重み付け係数の差分である。
変数LumaWeightL0[ i ]は、( 1 << luma_log2_weight_denom ) + delta_luma_weight_l0[ i ]に等しくなるように導出される。luma_weight_l0_flag[ i ]が1に等しいとき、delta_luma_weight_l0[ i ]の値は、両端値を含む-128~127という範囲中にあるものとする。luma_weight_l0_flag[ i ]が0に等しいとき、LumaWeightL0[ i ]は2luma_log2_weight_denomに等しいものと推測される。
luma_offset_l0[ i ]は、RefPicList[ 0 ][ i ]を使用するリスト0予測に対してルーマ予測値に適用される加法的なオフセットである。luma_offset_l0[ i ]の値は、両端値を含む-128~127という範囲中にあるものとする。luma_weight_l0_flag[ i ]が0に等しいとき、luma_offset_l0[ i ]は0に等しいものと推測される。
delta_chroma_weight_l0[ i ][ j ]は、RefPicList[ 0 ][ i ]を使用するリスト0予測に対してクロマ予測値に適用される重み付け係数の差分であり、Cbに対してjが0に等しく、Crに対してjが1に等しい。
変数ChromaWeightL0[ i ][ j ]は、( 1 << ChromaLog2WeightDenom ) + delta_chroma_weight_l0[ i ][ j ]に等しくなるように導出される。chroma_weight_l0_flag[ i ]が1に等しいとき、delta_chroma_weight_l0[ i ][ j ]の値は、両端値を含む-128~127という範囲中にあるものとする。chroma_weight_l0_flag[ i ]が0に等しいとき、ChromaWeightL0[ i ][ j ]は2ChromaLog2WeightDenomに等しいものと推測される。
delta_chroma_offset_l0[ i ][ j ]は、RefPicList[ 0 ][ i ]を使用するリスト0予測に対してクロマ予測値に適用される加法的なオフセットの差分であり、Cbに対してjが0に等しく、Crに対してjが1に等しい。
変数ChromaOffsetL0[ i ][ j ]は次のように導出される。
ChromaOffsetL0[ i ][ j ] = Clip3( -128, 127, ( 128 + delta_chroma_offset_l0[ i ][ j ] - ( ( 128 * ChromaWeightL0[ i ][ j ] ) >> ChromaLog2WeightDenom ) ) )
delta_chroma_offset_l0[ i ][ j ]の値は、両端値を含む-4 * 128~4 * 127という範囲中にあるものとする。chroma_weight_l0_flag[ i ]が0に等しいとき、ChromaOffsetL0[ i ][ j ]は0に等しいものと推測される。
luma_weight_l1_flag[ i ]、chroma_weight_l1_flag[ i ]、delta_luma_weight_l1[ i ]、luma_offset_l1[ i ]、delta_chroma_weight_l1[ i ][ j ]、およびdelta_chroma_offset_l1[ i ][ j ]は、l0、L0、リスト0、およびList0が、それぞれ、l1、L1、リスト1、およびList1によって置き換えられて、それぞれ、luma_weight_l0_flag[ i ]、chroma_weight_l0_flag[ i ]、delta_luma_weight_l0[ i ]、luma_offset_l0[ i ]、delta_chroma_weight_l0[ i ][ j ]、およびdelta_chroma_offset_l0[ i ][ j ]と同じセマンティックを有する。
変数sumWeightL0Flagsは、i = 0..NumRefIdxActive[ 0 ] - 1に対するluma_weight_l0_flag[ i ] + 2 * chroma_weight_l0_flag[ i ]の合計に等しくなるように導出される。
slice_typeがBに等しいとき、変数sumWeightL1Flagsは、i = 0..NumRefIdxActive[ 1 ] - 1に対するluma_weight_l1_flag[ i ] + 2 * chroma_weight_l1_flag[ i ]の合計に等しくなるように導出される。
slice_typeがPに等しいときにsumWeightL0Flagsが24以下でなければならず、またslice_typeがBに等しいときにsumWeightL0FlagsとsumWeightL1Flagsとの合計が24以下でなければならないことが、ビットストリーム適合の要件である。
Figure 2023510858000004
Figure 2023510858000005
寄稿JVET-O0244(V.Sereginら、「AHG17: On zero delta POC in reference picture structure」、第15回JVET会合、ヨーテボリ、スウェーデン)において、現在のVVC仕様ドラフトでは、参照ピクチャが参照ピクチャ構造(RPS:reference picture structure)の中でシグナリングされ、ここで、abs_delta_poc_stが、0に等しくなり得るデルタPOC値を表すことが指摘された。RPSは、SPSおよびスライスヘッダの中でシグナリングされ得る。この機能は、同じ参照ピクチャに対して異なる重みをシグナリングするために必要とされ、アクセスユニットの中でレイヤを横断して同じPOC値が使用される階層化されたスケーラビリティがサポートされる場合、潜在的に必要とされる。重み付き予測が有効化されていないときに参照ピクチャを反復することが必要とされないことが、その中で述べられている。特に、この寄稿では、重み付き予測が有効化されていないときに0デルタPOC値を許容しないことが提案される。
Figure 2023510858000006
Figure 2023510858000007
Figure 2023510858000008
Figure 2023510858000009
Figure 2023510858000010
Figure 2023510858000011
ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造は、SPSの中またはスライスヘッダの中に存在し得る。シンタックス構造がスライスヘッダの中に含まれるのかそれともSPSの中に含まれるのかに応じて、以下が適用される。
- スライスヘッダの中に存在する場合、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造は、現在のピクチャ(そのスライスを含むピクチャ)の参照ピクチャリストlistIdxを指定する。
- そうでない(SPSの中に存在する)場合、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造は、参照ピクチャリストlistIdxのための候補を指定し、この節の残部の中で指定されるセマンティックにおける「現在のピクチャ」という用語は、(1)SPSの中に含まれるref_pic_list_struct( listIdx, rplsIdx )シンタックス構造のリストの中へのインデックスに等しいref_pic_list_idx[ listIdx ]を含む1つまたは複数のスライスを有し、かつ(2)SPSを参照するCVSの中にある、各ピクチャを指す。
num_ref_entries[ listIdx ][ rplsIdx ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中のエントリの数を指定する。num_ref_entries[ listIdx ][ rplsIdx ]の値は、両端値を含む0~sps_max_dec_pic_buffering_minus1 + 14という範囲中にあるものとする。
0に等しいltrp_in_slice_header_flag[ listIdx ][ rplsIdx ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中のLTRPエントリのPOC LSBがref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中に存在することを指定する。1に等しいltrp_in_slice_header_flag[ listIdx ][ rplsIdx ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中のLTRPエントリのPOC LSBがref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中に存在しないことを指定する。
1に等しいinter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中の第iのエントリがILRPエントリであることを指定する。0に等しいinter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中の第iのエントリがILRPエントリでないことを指定する。存在しないとき、inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]の値は0に等しいものと推測される。
1に等しいst_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中の第iのエントリがSTRPエントリであることを指定する。0に等しいst_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中の第iのエントリがLTRPエントリであることを指定する。inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]が0に等しく、かつst_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]が存在しないとき、st_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]の値は1に等しいものと推測される。
変数NumLtrpEntries[ listIdx ][ rplsIdx ]は次のように導出される。
for( i = 0, NumLtrpEntries[ listIdx ][ rplsIdx ] = 0; i < num_ref_entries[ listIdx ][ rplsIdx ]; i++ )
if(!inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] && !st_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] )
NumLtrpEntries[ listIdx ][ rplsIdx ]++
abs_delta_poc_st[ listIdx ][ rplsIdx ][ i ]は、次のように変数AbsDeltaPocSt[ listIdx ][ rplsIdx ][ i ]の値を指定する。
if( sps_weighted_pred_flag || sps_weighted_bipred_flag )
AbsDeltaPocSt[ listIdx ][ rplsIdx ][ i ] = abs_delta_poc_st[ listIdx ][ rplsIdx ][ i ]
else
AbsDeltaPocSt[ listIdx ][ rplsIdx ][ i ] = abs_delta_poc_st[ listIdx ][ rplsIdx ][ i ] + 1
abs_delta_poc_st[ listIdx ][ rplsIdx ][ i ]の値は、両端値を含む0~215 - 1という範囲中にあるものとする。
1に等しいstrp_entry_sign_flag[ listIdx ][ rplsIdx ][ i ]は、シンタックス構造ref_pic_list_struct( listIdx, rplsIdx )の中の第iのエントリが0以上の値を有することを指定する。0に等しいstrp_entry_sign_flag[ listIdx ][ rplsIdx ][ i ]は、シンタックス構造ref_pic_list_struct( listIdx, rplsIdx )の中の第iのエントリが0よりも小さい値を有することを指定する。存在しないとき、strp_entry_sign_flag[ listIdx ][ rplsIdx ][ i ]の値は1に等しいものと推測される。
リストDeltaPocValSt[ listIdx ][ rplsIdx ]は次のように導出される。
for( i = 0; i < num_ref_entries[ listIdx ][ rplsIdx ]; i++ )
if( !inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] && st_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] )
DeltaPocValSt[ listIdx ][ rplsIdx ][ i ] = ( strp_entry_sign_flag[ listIdx ][ rplsIdx ][ i ] ) ? AbsDeltaPocSt[ listIdx ][ rplsIdx ][ i ] : 0 - AbsDeltaPocSt[ listIdx ][ rplsIdx ][ i ]
rpls_poc_lsb_lt[ listIdx ][ rplsIdx ][ i ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中の第iのエントリによって参照されるピクチャの、MaxPicOrderCntLsbを法としたピクチャ順序カウントの値を指定する。rpls_poc_lsb_lt[ listIdx ][ rplsIdx ][ i ]シンタックス要素の長さは、log2_max_pic_order_cnt_lsb_minus4 + 4ビットである。
ilrp_idc[ listIdx ][ rplsIdx ][ i ]は、直接依存するレイヤのリストへのref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中の第iのエントリのILRPの、直接依存するレイヤのリストへのインデックスを指定する。ilrp_idc[ listIdx ][ rplsIdx ][ i ]の値は、両端値を含む0~GeneralLayerIdx[ nuh_layer_id ] - 1という範囲中にあるものとする。
表2では、重み付き予測パラメータは参照ピクチャリストシグナリングの後にシグナリングされる。表4では、これらのシンタックス要素は、重み付き予測フラグの値に基づいてデルタPOCシンタックス要素の2値化を制約するように並び替えられる。
Figure 2023510858000012
Figure 2023510858000013
そして、デルタPOCの値(変数AbsDeltaPocSt)は、次のようにデコーダ側において条件付きで復元される。
abs_delta_poc_st[ listIdx ][ rplsIdx ][ i ]は、次のように変数AbsDeltaPocSt[ listIdx ][ rplsIdx ][ i ]の値を指定する。
if( sps_weighted_pred_flag || sps_weighted_bipred_flag )
AbsDeltaPocSt[ listIdx ][ rplsIdx ][ i ] = abs_delta_poc_st[ listIdx ][ rplsIdx ][ i ]
else
AbsDeltaPocSt[ listIdx ][ rplsIdx ][ i ] = abs_delta_poc_st[ listIdx ][ rplsIdx ][ i ] + 1
それぞれ、三角形マージモードおよび幾何学的マージモードとも呼ばれる、三角形区分モード(TPM)および幾何学的動き区分(GEO)は、予測区分の間で水平でない境界および垂直でない境界を可能にする区分技法であり、ここで、予測ユニットPU1および予測ユニットPU1は、異なる色成分に関係するそれらのサンプルのサブセットの重み付き平均化プロシージャを使用して、領域の中で組み合わせられる。TMPは、長方形ブロック対角線に沿った予測区分の間の境界のみを可能にするが、GEOによる境界は、任意の位置に配置されてよい。重み付き平均化プロシージャが適用される領域の中で、正方形内の整数が、予測ユニットPU1のルーマ成分に適用される重みWPU1を示す。一例では、予測ユニットPU2のルーマ成分に適用される重みWPU2は、次のように計算される。
WPU2 = 8 - WPU1
対応する予測ユニットのクロマ成分に適用される重みは、対応する予測ユニットのルーマ成分に適用される重みとは異なってよい。
TPMのためのシンタックスについての詳細が表5の中に提示され、ここで、TPMについての情報をシグナリングするために4つのシンタックス要素が使用される。
MergeTriangleFlagは、TPMが選択されるか否かを識別するフラグである(「0」はTPMが選択されないことを意味し、そうでない場合、TPMが選ばれる)。
merge_triangle_split_dirは、TPMのための分割方向フラグである(「0」は左上コーナーから右下コーナーへの分割方向を意味し、そうでない場合、分割方向は右上コーナーから左下コーナーである)。
merge_triangle_idx0およびmerge_triangle_idx1は、TPMのために使用されるマージ候補0および1のインデックスである。
Figure 2023510858000014
Figure 2023510858000015
より詳細には、TPMは、以下の提案、すなわち、R-L.LiaoおよびC.S.Lim、「CE10.3.1.b: Triangular prediction unit mode」、第12回JVET会合、マカオ、中国、2018年10月への寄稿JVET-L0124に記載されている。GEOは、以下の文書、すなわち、S.Esenlik、H.Gao、A.Filippov、V.Rufitskiy、A.M.Kotra、B.Wang、E.Alshina、M.Blaser、およびJ.Sauer、「Non-CE4: Geometrical partitioning for inter blocks」、第15回JVET会合、ヨーテボリ、スウェーデン、2019年7月への寄稿JVET-O0489の中で説明されている。
TPMおよび/またはGEOをWPと調和させるための開示する方法とは、WPが適用されるときにTPMおよび/またはGEOを無効化することである。第1の実施形態が、表6の中に示され、コーディングユニットに対してweightedPredFlag変数の値が0に等しいかどうかを検査することによって行われ得る。
変数weightedPredFlagは次のように導出される。
- slice_typeがPに等しい場合、weightedPredFlagはpps_weighted_pred_flagに等しく設定される。
- そうでない(slice_typeがBに等しい)場合、weightedPredFlagはpps_weighted_bipred_flagに等しく設定される。
それぞれ、pps_weighted_pred_flagおよびsps_weighted_pred_flagシンタックス要素を使用して、ピクチャレベルおよびスライスレベルにおいてスライスレベルの重み付き予測プロセスが切り替えられ得る。
上記で開示したように、変数weightedPredFlagは、スライスのインター予測サンプルを取得するときにスライスレベルの重み付き予測が使用されるべきかどうかを示す。
Figure 2023510858000016
Figure 2023510858000017
ciip_flag[ x0 ][ y0 ]は、組み合わせられたインターピクチャマージおよびイントラピクチャ予測が現在のコーディングユニットに対して適用されるかどうかを指定する。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対して、検討されるコーディングブロックの左上ルーマサンプルのロケーション( x0, y0 )を指定する。
ciip_flag[ x0 ][ y0 ]が存在しないとき、それは次のように推測される。
- すべての次の条件が真である場合、ciip_flag[ x0 ][ y0 ]は1に等しいものと推測される。
- sps_ciip_enabled_flagが1に等しい。
- general_merge_flag[ x0 ][ y0 ]が1に等しい。
- merge_subblock_flag[ x0 ][ y0 ]が0に等しい。
- regular_merge_flag[ x0 ][ y0 ]が0に等しい。
- cbWidthが128よりも小さい。
- cbHeightが128よりも小さい。
- cbWidth * cbHeightが64以上である。
- そうでない場合、ciip_flag[ x0 ][ y0 ]は0に等しいものと推測される。
ciip_flag[ x0 ][ y0 ]が1に等しいとき、x = x0..x0 + cbWidth - 1およびy = y0..y0 + cbHeight - 1を伴う変数IntraPredModeY[ x ][ y ]は、INTRA_PLANARに等しくなるように設定される。
Bスライスを復号するとき、現在のコーディングユニットの予測サンプルを生成するために三角形形状ベースの動き補償が使用されるかどうかを指定する、変数MergeTriangleFlag[ x0 ][ y0 ]は、次のように導出される。
- すべての次の条件が真である場合、MergeTriangleFlag[ x0 ][ y0 ]は1に等しく設定される。
- sps_triangle_enabled_flagが1に等しい。
- slice_typeがBに等しい。
- general_merge_flag[ x0 ][ y0 ]が1に等しい。
- MaxNumTriangleMergeCandが2以上である。
- cbWidth * cbHeightが64以上である。
- regular_merge_flag[ x0 ][ y0 ]が0に等しい。
- merge_subblock_flag[ x0 ][ y0 ]が0に等しい。
- ciip_flag[ x0 ][ y0 ]が0に等しい。
- weightedPredFlagが0に等しい。
- そうでない場合、MergeTriangleFlag[ x0 ][ y0 ]は0に等しく設定される。
第2の実施形態が表7の中に提示される。weightedPredFlagが1に等しい場合、シンタックス要素max_num_merge_cand_minus_max_num_triangle_candは存在せず、MaxNumTriangleMergeCandが2よりも小さくなるような値を用いて推測される。
Figure 2023510858000018
Figure 2023510858000019
Figure 2023510858000020
Figure 2023510858000021
Figure 2023510858000022
詳細には、第2の実施形態のために以下のセマンティックが使用され得る。
max_num_merge_cand_minus_max_num_triangle_candは、MaxNumMergeCandから減じる、スライスの中でサポートされる三角形マージモード候補の最大数を指定する。
max_num_merge_cand_minus_max_num_triangle_candが存在せず、かつsps_triangle_enabled_flagが1に等しく、slice_typeがBに等しく、weightedPredFlagが0に等しく、かつMaxNumMergeCandが2以上であるとき、max_num_merge_cand_minus_max_num_triangle_candは、pps_max_num_merge_cand_minus_max_num_triangle_cand_minus1 + 1に等しいものと推測される。
max_num_merge_cand_minus_max_num_triangle_candが存在せず、かつsps_triangle_enabled_flagが1に等しく、slice_typeがBに等しく、weightedPredFlagが1に等しく、かつMaxNumMergeCandが2以上であるとき、max_num_merge_cand_minus_max_num_triangle_candは、MaxNumMergeCandまたはMaxNumMergeCand-1に等しいものと推測される。
三角形マージモード候補の最大数MaxNumTriangleMergeCandは、次のように導出される。
MaxNumTriangleMergeCand = MaxNumMergeCand - max_num_merge_cand_minus_max_num_triangle_cand
max_num_merge_cand_minus_max_num_triangle_candが存在するとき、MaxNumTriangleMergeCandの値は、両端値を含む2~MaxNumMergeCandという範囲中にあるものとする。
max_num_merge_cand_minus_max_num_triangle_candが存在せず、かつ(sps_triangle_enabled_flagが0に等しいか、またはMaxNumMergeCandが2よりも小さい)とき、MaxNumTriangleMergeCandは0に等しく設定される。
MaxNumTriangleMergeCandが0に等しいとき、現在のスライスに対して三角形マージモードは許容されない。
開示するメカニズムは、TPMおよびGEOだけでなく、三角形区分との組み合わせられたイントラインター予測などの、他の非矩形予測および区分モードにも適用可能である。
TPMおよびGEOがBスライスの中でのみ適用されるので、上述の実施形態における変数weightedPredFlagは、変数pps_weighted_bipred_flagによって直接置き換えられ得る。
第3の実施形態が、表6の中に示され、コーディングユニットに対してweightedPredFlag変数の値が0に等しいかどうかを検査することによって行われ得る。
変数weightedPredFlagは次のように導出される。
- 次の条件のすべてが真である場合、weightedPredFlagは0に設定される。
0からNumRefIdxActive[ 0 ]までのiに対してluma_weight_l0_flag[i]が0に等しい。
0からNumRefIdxActive[ 1 ]までのiに対してluma_weight_l1_flag[i]が0に等しい。
0からNumRefIdxActive[ 0 ]までのiに対してchroma_weight_l0_flag[i]が0に等しい。
0からNumRefIdxActive[ 1 ]までのiに対してchroma_weight_l0_flag[i]が0に等しい。
- そうでない場合、weightedPredFlagは1に設定される。
weightedPredFlagの導出プロセスは、ルーマ成分およびクロマ成分に対する、かつ現在のスライスのすべての参照インデックスに対する、すべての重み付きフラグが0である場合、現在のスライスの中で重み付き予測が無効化され、そうでない場合、重み付き予測が現在のスライスのために使用され得ることを意味する
上記で開示したように、変数weightedPredFlagは、スライスのインター予測サンプルを取得するときにスライスレベルの重み付き予測が使用されるべきかどうかを示す。
表8の中に示すようにスライスヘッダの中でシグナリングされるslice_weighted_pred_flagによってweightedPredFlagが置き換えられて、第4の実施形態が表6の中に示される。
上記で開示したように、シンタックスslice_weighted_pred_flagは、スライスのインター予測サンプルを取得するときにスライスレベルの重み付き予測が使用されるべきかどうかを示す。
Figure 2023510858000023
Figure 2023510858000024
Figure 2023510858000025
Figure 2023510858000026
Figure 2023510858000027
詳細には、第4の実施形態のために以下のセマンティックが使用され得る。
0に等しいslice_weighted_pred_flagは、現在のスライスに重み付き予測が適用されないことを指定する。1に等しいslice_weighted_pred_flagは、現在のスライスに重み付き予測が適用されることを指定する。存在しないとき、slice_weighted_pred_flagの値は0と推測される。
第5の実施形態は、適合制約によってブロックレベルにおいてTPMを無効化することである。TPMコーディングされたブロックの場合には、(図7に示すような)インター予測子P0 710およびP1 720に対する参照ピクチャのルーマ成分およびクロマ成分に対する重み付け係数は、存在すべきでない。
より詳細には、refIdxAおよびpredListFlagAは、インター予測子P0の参照インデックスおよび参照ピクチャリストを指定し、refIdxBおよびpredListFlagBは、インター予測子P1の参照インデックスおよび参照ピクチャリストを指定する。
変数lumaWeightedFlagおよびchromaWeightedFlagは次のように導出される。
lumaWeightedFlagA = predListFlagA ? luma_weight_l1_flag[ refIdxA ] : luma_weight_l0_flag[ refIdxA ]
lumaWeightedFlagB = predListFlagB ? luma_weight_l1_flag[ refIdxB ] : luma_weight_l0_flag[ refIdxB ]
chromaWeightedFlagA = predListFlagA ? chroma_weight_l1_flag[ refIdxA ] : chroma_weight_l0_flag[ refIdxA ]
chromaWeightedFlagB = predListFlagB ? chroma_weight_l1_flag[ refIdxB ] : chroma_weight_l0_flag[ refIdxB ]
lumaWeightedFlag = lumaWeightedFlagA || lumaWeightedFlagB
chromaWeightedFlag = chromaWeightedFlagA || chromaWeightedFlagB.
lumaWeightedFlagおよびchromaWeightedFlagが0に等しくなるべきであることが、ビットストリーム適合の要件である。
第6の実施形態は、明示的な重み付き予測が使用されるとき、TPMコーディングされたブロックのためのブレンディング重み付きサンプル予測プロセスを無効化することである。
図7および図8は、それぞれ、TPMおよびGEOにとって、所与の発明の背後の基本概念を示す。TPMのための実施形態がGEOモードのために実施される場合もあることに留意されたい。
TPMコーディングされたブロックの場合には、インター予測子P0 710またはP1 720に対する参照ピクチャのルーマ成分またはクロマ成分に対する重み付け係数が存在する場合、インター予測子ブロックを生成するためにWPパラメータ(それぞれ、P0およびP1に対して、WPパラメータ730{w0, O0}およびWPパラメータ740{w1, O1})による重み付きプロセスが使用され、そうでない場合、ブロック750に対するインター予測子を生成するために、ブレンディング重み付きパラメータによる重み付きプロセスが使用される。図9に示すように、インター予測子901は、重複したエリア921を有する2つの予測ブロックP0 911およびP1 912を必要とし、ここで、予測子P0 911およびP1 912を部分的にブレンドするために、ブロック911と912の両方に非0の重みが適用される。ブロック901に隣接するブロックが、図9の中で931、932、933、934、935、および936として示される。図8は、TPMマージモードとGEOマージモードとの間の差異を示す。GEOマージモードの場合には、予測子851と852との間の重複したエリアは、インター予測ブロック850の対角線に沿って配置され得るだけではない。予測子P0 851およびP1 852は、それぞれ、重みおよびオフセット{w0, O0}830ならびに{w1, O1}840をブロック810および820に適用することを伴うかまたは伴わずに、他のピクチャの中からブロック810および820をコピーすることによって受け取られ得る。
より詳細には、refIdxAおよびpredListFlagAは、インター予測子P0の参照インデックスおよび参照ピクチャリストを指定し、refIdxBおよびpredListFlagBは、インター予測子P1の参照インデックスおよび参照ピクチャリストを指定する。
変数lumaWeightedFlagおよびchromaWeightedFlagは次のように導出される。
lumaWeightedFlagA = predListFlagA ? luma_weight_l1_flag[ refIdxA ] : luma_weight_l0_flag[ refIdxA ]
lumaWeightedFlagB = predListFlagB ? luma_weight_l1_flag[ refIdxB ] : luma_weight_l0_flag[ refIdxB ]
chromaWeightedFlagA = predListFlagA ? chroma_weight_l1_flag[ refIdxA ] : chroma_weight_l0_flag[ refIdxA ]
chromaWeightedFlagB = predListFlagB ? chroma_weight_l1_flag[ refIdxB ] : chroma_weight_l0_flag[ refIdxB ]
lumaWeightedFlag = lumaWeightedFlagA || lumaWeightedFlagB
chromaWeightedFlag = chromaWeightedFlagA || chromaWeightedFlagB
次いで、lumaWeightedFlagが真である場合、明示的な重み付きプロセスが呼び出され、lumaWeightedFlagが偽である場合、ブレンディング重み付きプロセスが呼び出される。同様に、クロマ成分がchromaWeightedFlagによって決定される。
代替実施形態の場合、すべての成分に対する重み付きフラグは一緒に検討される。lumaWeightedFlagまたはchromaWeightedFlagのうちの一方が真である場合、明示的な重み付きプロセスが呼び出され、lumaWeightedFlagとchromaWeightedFalgの両方が偽である場合、ブレンディング重み付きプロセスが呼び出される。
双予測メカニズムを使用して予測される長方形ブロックのための明示的な重み付きプロセスは、以下で説明するように実行される。
このプロセスへの入力は次の通りである。
- 現在のコーディングブロックの幅および高さを指定する2つの変数nCbWおよびnCbH、
- 2つの(nCbW)×(nCbH)アレイpredSamplesAおよびpredSamplesB、
- 予測リストフラグpredListFlagAおよびpredListFlagB、
- 参照インデックスrefIdxAおよびrefIdxB、
- 色成分インデックスを指定する変数cIdx、
- サンプルビット深度bitDepth。
このプロセスの出力は、予測サンプル値の(nCbW)×(nCbH)アレイpbSamplesである。
変数shift1は、Max( 2, 14 - bitDepth )に等しく設定される。
変数log2Wd、o0、o1、w0、およびw1は、次のように導出される。
- ルーマサンプルに対してcIdxが0に等しい場合、以下が適用される。
log2Wd = luma_log2_weight_denom + shift1
w0 = predListFlagA ? LumaWeightL1[ refIdxA ] : LumaWeightL0[ refIdxA ]
w1 = predListFlagB ? LumaWeightL1[ refIdxB ] : LumaWeightL0[ refIdxB ]
o0 = ( predListFlagA ? luma_offset_l1[ refIdxA ] : luma_offset_l0[ refIdxA ] ) << ( BitDepthY - 8 )
o1 = ( predListFlagB ? luma_offset_l1[ refIdxB ] : luma_offset_l0[ refIdxB ] ) << ( BitDepthY - 8 )
- そうでない(クロマサンプルに対してcIdxが0に等しくない)場合、以下が適用される。
log2Wd = ChromaLog2WeightDenom + shift1
w0 = predListFlagA ? ChromaWeightL1[ refIdxA ][ cIdx - 1 ] : ChromaWeightL0[ refIdxA ][ cIdx - 1 ]
w1 = predListFlagA ? ChromaWeightL1[ refIdxB ][ cIdx - 1 ] : ChromaWeightL0[ refIdxB ][ cIdx - 1 ]
o0 = ( predListFlagA ? ChromaOffsetL1[ refIdxA ][ cIdx - 1 ] : ChromaOffsetL0[ refIdxA ][ cIdx - 1 ] ) << ( BitDepthC - 8 )
o1 = ( predListFlagB ? ChromaOffsetL1[ refIdxB ][ cIdx - 1 ] : ChromaOffsetL0[ refIdxB ][ cIdx - 1 ] ) << ( BitDepthC - 8 )
x = 0..nCbW - 1およびy = 0..nCbH - 1を伴う予測サンプルpbSamples[ x ][ y ]は、次のように導出される。
pbSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, ( predSamplesA[ x ][ y ] * w0 + predSamplesB[ x ][ y ] * w1 + ( ( o0 + o1 + 1 ) << log2Wd ) ) >> ( log2Wd + 1 ) )
スライスレベルの重み付き予測のパラメータは、参照ピクチャリストの要素ごとに割り当てられる、変数のセットとして表され得る。要素のインデックスは、さらに「i」として示される。これらのパラメータは、以下を備えてよい。
- LumaWeightL0[i]
- luma_offset_l0[ i ]は、RefPicList[ 0 ][ i ]を使用するリスト0予測に対してルーマ予測値に適用される加法的なオフセットである。luma_offset_l0[ i ]の値は、両端値を含む-128~127という範囲中にあるものとする。luma_weight_l0_flag[ i ]が0に等しいとき、luma_offset_l0[ i ]は0に等しいものと推測される。
変数LumaWeightL0[ i ]は、( 1 << luma_log2_weight_denom ) + delta_luma_weight_l0[ i ]に等しくなるように導出される。luma_weight_l0_flag[ i ]が1に等しいとき、delta_luma_weight_l0[ i ]の値は、両端値を含む-128~127という範囲中にあるものとする。luma_weight_l0_flag[ i ]が0に等しいとき、LumaWeightL0[ i ]は2luma_log2_weight_denomに等しいものと推測される。
双予測メカニズムを使用して予測される長方形ブロックのためのブレンディング重み付きプロセス、すなわち、以下のプロセスは、以下で説明するように実行される。
このプロセスへの入力は次の通りである。
- 現在のコーディングブロックの幅および高さを指定する2つの変数nCbWおよびnCbH、
- 2つの(nCbW)×(nCbH)アレイpredSamplesLAおよびpredSamplesLB、
- 区分方向を指定する変数triangleDir、
- 色成分インデックスを指定する変数cIdx。
このプロセスの出力は、予測サンプル値の(nCbW)×(nCbH)アレイpbSamplesである。
変数nCbRは次のように導出される。
nCbR = ( nCbW > nCbH ) ? ( nCbW / nCbH ) : ( nCbH / nCbW )
変数bitDepthは次のように導出される。
- cIdxが0に等しい場合、bitDepthはBitDepthYに等しく設定される。
- そうでない場合、bitDepthはBitDepthCに等しく設定される。
変数shift1およびoffset1は次のように導出される。
- 変数shift1はMax( 5, 17 - bitDepth)に等しく設定される。
- 変数offset1は1 << ( shift1 - 1 )に等しく設定される。
triangleDir、wS、およびcIdxの値に応じて、x = 0..nCbW - 1およびy = 0..nCbH - 1を伴う予測サンプルpbSamples[ x ][ y ]は、次のように導出される。
- 変数wIdxは次のように導出される。
- cIdxが0に等しく、かつtriangleDirが0に等しい場合、以下が適用される。
wIdx = ( nCbW > nCbH ) ? ( Clip3( 0, 8, ( x / nCbR - y ) + 4 ) ) : ( Clip3( 0, 8, ( x - y / nCbR ) + 4 ) )
- そうではなく、cIdxが0に等しく、かつtriangleDirが1に等しい場合、以下が適用される。
wIdx = ( nCbW > nCbH ) ? ( Clip3( 0, 8, ( nCbH - 1 - x / nCbR - y ) + 4 ) ) ( Clip3( 0, 8, ( nCbW - 1 - x - y / nCbR ) + 4 ) )
そうではなく、cIdxが0よりも大きく、かつtriangleDirが0に等しい場合、以下が適用される。
wIdx = ( nCbW > nCbH ) ? ( Clip3( 0, 4, ( x / nCbR - y ) + 2 ) ) : ( Clip3( 0, 4, ( x - y / nCbR ) + 2 ) )
そうでない場合(cIdxが0よりも大きく、かつtriangleDirが1に等しい場合)、以下が適用される。
wIdx = ( nCbW > nCbH ) ? ( Clip3( 0, 4, ( nCbH - 1 - x / nCbR - y ) + 2 ) ) ( Clip3( 0, 4, ( nCbW - 1 - x - y / nCbR ) + 2 ) )
- 予測サンプルの重みを指定する変数wValueは、次のようにwIdxおよびcIdxを使用して導出される。
wValue = ( cIdx = = 0 ) ? Clip3( 0, 8, wIdx ) : Clip3( 0, 8, wIdx * 2 )
- 予測サンプル値は次のように導出される。
pbSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, ( predSamplesLA[ x ][ y ] * wValue + predSamplesLB[ x ][ y ] * ( 8 - wValue ) + offset1 ) >> shift1 )
幾何学的モードに対して、双予測メカニズムを使用して予測される長方形ブロックのためのブレンディング重み付きプロセス、すなわち、以下のプロセスが、以下で説明するように実行される。
このプロセスへの入力は次の通りである。
- 現在のコーディングブロックの幅および高さを指定する2つの変数nCbWおよびnCbH、
- 2つの(nCbW)×(nCbH)アレイpredSamplesLAおよびpredSamplesLB、
- 幾何学的区分の角度インデックスを指定する変数angleIdx、
- 幾何学的区分の距離idxを指定する変数distanceIdx、
- 色成分インデックスを指定する変数cIdx。
このプロセスの出力は、予測サンプル値の(nCbW)×(nCbH)アレイpbSamples、および変数partIdxである。
変数bitDepthは次のように導出される。
- cIdxが0に等しい場合、bitDepthはBitDepthYに等しく設定される。
- そうでない場合、bitDepthはBitDepthCに等しく設定される。
変数shift1およびoffset1は次のように導出される。
- 変数shift1はMax( 5, 17 - bitDepth)に等しく設定される。
- 変数offset1は1 << ( shift1 - 1 )に等しく設定される。
x = 0..nCbW - 1およびy = 0..nCbH - 1を伴う、ルーマのための重みアレイsampleWeightL[ x ][ y ]およびクロマのためのsampleWeightC[ x ][ y ]は、次のように導出される。
以下の変数の値が設定される。
- hwRatioはnCbH / nCbWに設定される。
- displacementXはangleIdxに設定される。
- displacementYは(displacementX + 8)%32に設定される。
- partIdxはangleIdx >=13 && angleIdx <=27 ? 1 : 0に設定される。
- rhoは、表8~表12の中で指定される、Disとして示されるルックアップテーブルを使用して、以下の値に設定される。
rho = (Dis[displacementX]<< 8) + (Dis[displacementY] << 8)
以下の条件のうちの1つが真である場合、変数shiftHorは0に等しく設定される。
angleIdx %16が8に等しい。
angleIdx %16が0に等しくなく、かつhwRatio≧1である。
そうでない場合、shiftHorは1に等しく設定される。
shiftHorが0に等しい場合、offsetXおよびoffsetYは次のように導出される。
offsetX = ( 256 - nCbW ) >> 1
offsetY = ( 256 - nCbH ) >> 1 + angleIdx < 16 ? (distanceIdx * nCbH) >> 3 : -((distanceIdx * nCbH) >> 3)
そうではなく、shiftHorが1に等しい場合、offsetXおよびoffsetYは次のように導出される。
offsetX = ( 256 - nCbW ) >> 1 + angleIdx < 16 ? (distanceIdx * nCbW) >> 3 : -((distanceIdx * nCbW) >> 3)
offsetY = (256 - nCbH ) >> 1
変数weightIdxおよびweightIdxAbsは、x = 0..nCbW - 1およびy = 0..nCbH - 1を伴うルックアップテーブル表9を使用して以下のように計算される。
weightIdx = (((x + offsetX)<<1) + 1)*Dis[displacementX] + (((y + offsetY )<<1) + 1))*Dis[displacementY] - rho
weightIdxAbs = Clip3(0, 26, abs(weightIdx))
x = 0..nCbW - 1およびy = 0..nCbH - 1を伴うsampleWeightL[ x ][ y ]の値は、GeoFilterとして示される表10に従って設定される。
sampleWeightL[ x ][ y ] = weightIdx <= 0 ? GeoFilter[weightIdxAbs] : 8 - GeoFilter[weightIdxAbs]
x = 0..nCbW - 1およびy = 0..nCbH - 1を伴う値sampleWeightC[ x ][ y ]は次のように設定される。
sampleWeightC[ x ][ y ] = sampleWeightL[ (x<< (SubWidthC - 1) ) ][ (y<< (SubHeightC - 1) ) ]
注- サンプルsampleWeightL[ x ][ y ]の値もsampleWeightL[ x -shiftX][ y-shiftY ]から導出され得る。angleIdxが4よりも大きく12よりも小さいか、またはangleIdxが20よりも大きく24よりも小さい場合、shiftXは分割角度の正接であり、shiftYは1であり、そうでない場合、shiftXは分割角度の1であり、shiftYは分割角度の余接である。正接値が無限大である場合、shiftXが1であるかまたはshiftYが0であり、余接値が無限大である場合、shiftXが0であるかまたはshiftYが1である。
予測サンプル値は、cIdxが0に等しいかまたは0に等しくなくて、LまたはCとして示されるXを用いて次のように導出される。
pbSamples[ x ][ y ] = partIdx ? Clip3( 0, ( 1 << bitDepth ) - 1, ( predSamplesLA[ x ][ y ] * ( 8 - sampleWeightX[ x ][ y ]) + predSamplesLB[ x ][ y ] * sampleWeightX [ x ][ y ] + offset1 ) >> shift1 ) : Clip3( 0, ( 1 << bitDepth ) - 1, ( predSamplesLA[ x ][ y ] * sampleWeightX[ x ][ y ] + predSamplesLB[ x ][ y ] * ( 8 - sampleWeightX[ x ][ y ]) + offset1 ) >> shift1 )
Figure 2023510858000028
Figure 2023510858000029
VVC仕様ドラフト7(文書JVET-P2001-vE、B.Bross、J.Chen、S.Liu、Y.- K.Wang、「Versatile Video Coding (Draft 7)」、第16回JVET会合、ジュネーブ、スイスの出力文書JVET-P2001(この文書はファイルJVET-P2001-v14: http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/16_Geneva/wg11/JVET-P2001-v14.zipの中に含まれる)では、ピクチャヘッダ(PH:picture header)に関連する各スライスヘッダ(SH:slice header)の中の同じシンタックス要素と同じかまたは類似の値を割り当てることによって引き起こされるシグナリングオーバーヘッドを低減するために、SHのうちのシンタックス要素の一部をPHに移動させることによって、PHの概念が導入された。表11の中に提示されるように、TPMマージモードに対するマージ候補の最大数を制御するためのシンタックス要素がPHの中でシグナリングされるが、重み付き予測パラメータは、表12および表14の中で示すように依然としてSHの中にある。表12および表13の中で使用されるシンタックス要素のセマンティックが、以下で説明される。
Figure 2023510858000030
ピクチャヘッダRBSPセマンティック
PHは、PHに関連するコーディングされたピクチャのすべてのスライスにとって共通である情報を含む。
1に等しいnon_reference_picture_flagは、PHに関連するピクチャが参照ピクチャとしてまったく使用されないことを指定する。0に等しいnon_reference_picture_flagは、PHに関連するピクチャが参照ピクチャとして使用されてもされなくてもよいことを指定する。
1に等しいgdr_pic_flagは、PHに関連するピクチャが漸進的復号リフレッシュ(GDR)ピクチャであることを指定する。0に等しいgdr_pic_flagは、PHに関連するピクチャがGDRピクチャでないことを指定する。
no_output_of_prior_pics_flagは、ビットストリームの中の最初のピクチャでないコーディングされたレイヤビデオシーケンス開始(CLVSS)ピクチャの復号の後、復号されたピクチャバッファ(DPB)の中の以前に復号されたピクチャの出力に影響を及ぼす。
recovery_poc_cntは、出力順序における復号されたピクチャの回復点を指定する。現在のピクチャが、PHに関連するGDRピクチャであり、かつコーディングされたレイヤビデオシーケンス(CLVS)の中で現在のGDRピクチャに復号順序で後続し現在のGDRピクチャのPicOrderCntVal+recovery_poc_cntの値に等しいPicOrderCntValを有するピクチャpicAがある場合、ピクチャpicAは回復点ピクチャと呼ばれる。そうでない場合、現在のピクチャのPicOrderCntVal+recovery_poc_cntの値よりも大きいPicOrderCntValを有する、出力順序で最初のピクチャが、回復点ピクチャと呼ばれる。回復点ピクチャは、現在のGDRピクチャに復号順序で先行してはならない。recovery_poc_cntの値は、両端値を含む0~MaxPicOrderCntLsb - 1という範囲中にあるものとする。
注1- gdr_enabled_flagが1に等しく、かつ現在のピクチャのPicOrderCntValが、関連するGDRピクチャのRpPicOrderCntVal以上であるとき、出力順序における現在および後続の復号されたピクチャは、存在するとき、関連するGDRピクチャに復号順序で先行する、以前のイントラランダムアクセスポイント(IRAP)ピクチャから復号プロセスを開始することによって生み出された対応するピクチャとの完全な一致である。
ph_pic_parameter_set_idは、使用中のPPSに対するpps_pic_parameter_set_idの値を指定する。ph_pic_parameter_set_idの値は、両端値を含む0~63という範囲中にあるものとする。
PHのTemporalIdの値が、ph_pic_parameter_set_idに等しいpps_pic_parameter_set_idを有するピクチャパラメータセット(PPS)のTemporalIdの値以上でなければならないことが、ビットストリーム適合の要件である。
1に等しいsps_poc_msb_flagは、ph_poc_msb_cycle_present_flagシンタックス要素が、シーケンスパラメータセット(SPS)を参照するPHの中に存在することを指定する。0に等しいsps_poc_msb_flagは、ph_poc_msb_cycle_present_flagシンタックス要素が、SPSを参照するPHの中に存在しないことを指定する。
1に等しいph_poc_msb_present_flagは、シンタックス要素poc_msb_valがPHの中に存在することを指定する。0に等しいph_poc_msb_present_flagは、シンタックス要素poc_msb_valがPHの中に存在しないことを指定する。vps_independent_layer_flag[ GeneralLayerIdx[ nuh_layer_id ] ]が0に等しく、かつ現在のレイヤの参照レイヤの中の現在のアクセスユニット(AU)の中にピクチャがあるとき、ph_poc_msb_present_flagの値は0に等しいものとする。
poc_msb_valは、現在のピクチャのピクチャ順序カウント(POC)最上位ビット(MSB)値を指定する。シンタックス要素poc_msb_valの長さはpoc_msb_len_minus1 + 1ビットである。
sps_triangle_enabled_flagは、インター予測のために三角形形状ベースの動き補償が使用され得るかどうかを指定する。0に等しいsps_triangle_enabled_flagは、コーディングされたレイヤビデオシーケンス(CLVS)の中で三角形形状ベースの動き補償が使用されず、かつmerge_triangle_split_dir、merge_triangle_idx0、およびmerge_triangle_idx1が、CLVSのコーディングユニットシンタックスの中に存在しないように、シンタックスが制約されなければならないことを指定する。1に等しいsps_triangle_enabled_flagは、CLVSの中で三角形形状ベースの動き補償が使用され得ることを指定する。
0に等しいpps_max_num_merge_cand_minus_max_num_triangle_cand_plus1は、pic_max_num_merge_cand_minus_max_num_triangle_candが、ピクチャパラメータセット(PPS)を参照するスライスのPHの中に存在することを指定する。0よりも大きいpps_max_num_merge_cand_minus_max_num_triangle_cand_plus1は、pic_max_num_merge_cand_minus_max_num_triangle_candが、PPSを参照するPHの中に存在しないことを指定する。pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1の値は、0~MaxNumMergeCand - 1という範囲中にあるものとする。
0に等しいpps_max_num_merge_cand_minus_max_num_triangle_cand_plus1は、pic_max_num_merge_cand_minus_max_num_triangle_candが、PPSを参照するスライスのPHの中に存在することを指定する。0よりも大きいpps_max_num_merge_cand_minus_max_num_triangle_cand_plus1は、pic_max_num_merge_cand_minus_max_num_triangle_candが、PPSを参照するPHの中に存在しないことを指定する。pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1の値は、0~MaxNumMergeCand - 1という範囲中にあるものとする。
pic_six_minus_max_num_merge_candは、6から減じる、PHに関連するスライスの中でサポートされるマージング動きベクトル予測(MVP)候補の最大数を指定する。マージングMVP候補の最大数MaxNumMergeCandは、次のように導出される。
MaxNumMergeCand = 6 - picsix_minus_max_num_merge_cand
MaxNumMergeCandの値は、両端値を含む1~6という範囲中にあるものとする。存在しないとき、pic_six_minus_max_num_merge_candの値はpps_six_minus_max_num_merge_cand_plus1 - 1に等しいものと推測される。
Figure 2023510858000031
Figure 2023510858000032
汎用スライスヘッダセマンティック
存在するとき、スライスヘッダシンタックス要素slice_pic_order_cnt_lsbの値は、コーディングされたピクチャのすべてのスライスヘッダの中で同じであるものとする。
cu_qp_delta_absを含むコーディングユニットに対するルーマ量子化パラメータとその予測との間の差分を指定する変数CuQpDeltaValは、0に等しく設定される。cu_chroma_qp_offset_flagを含むコーディングユニットに対するQp'Cb、Qp'Cr、およびQp'CbCr量子化パラメータのそれぞれの値を決定するときに使用されるべき値を指定する、変数CuQpOffsetCb、CuQpOffsetCr、およびCuQpOffsetCbCrは、すべて0に等しく設定される。
slice_pic_order_cnt_lsbは、現在のピクチャに対してMaxPicOrderCntLsbを法としたピクチャ順序カウントを指定する。slice_pic_order_cnt_lsbシンタックス要素の長さは、log2_max_pic_order_cnt_lsb_minus4 + 4ビットである。slice_pic_order_cnt_lsbの値は、両端値を含む0~MaxPicOrderCntLsb - 1という範囲中にあるものとする。
現在のピクチャがGDRピクチャであるとき、変数RpPicOrderCntValは次のように導出される。
RpPicOrderCntVal = PicOrderCntVal + recovery_poc_cnt
slice_subpic_idは、スライスを含むサブピクチャのサブピクチャ識別子を指定する。slice_subpic_idが存在する場合、変数SubPicIdxの値は、SubpicIdList[ SubPicIdx ]がslice_subpic_idに等しくなるように導出される。そうでない(slice_subpic_idが存在しない)場合、変数SubPicIdxは0に等しくなるように導出される。ビット単位でのslice_subpic_idの長さは次のように導出される。
- sps_subpic_id_signalling_present_flagが1に等しい場合、slice_subpic_idの長さはsps_subpic_id_len_minus1 + 1に等しい。
- そうではなく、ph_subpic_id_signalling_present_flagが1に等しい場合、slice_subpic_idの長さはph_subpic_id_len_minus1 + 1に等しい。
- そうではなく、pps_subpic_id_signalling_present_flagが1に等しい場合、slice_subpic_idの長さはpps_subpic_id_len_minus1 + 1に等しい。
- そうでない場合、slice_subpic_idの長さはCeil( Log2 ( sps_num_subpics_minus1 + 1 ) )に等しい。
slice_addressは、スライスのスライスアドレスを指定する。存在しないとき、slice_addressの値は0に等しいものと推測される。
rect_slice_flagが0に等しい場合、以下が適用される。
- スライスアドレスはラスタ走査タイルインデックスである。
- slice_addressの長さはCeil( Log2 ( NumTilesInPic ) )ビットである。
- slice_addressの値は、両端値を含む0~NumTilesInPic - 1という範囲中にあるものとする。
そうでない(rect_slice_flagが1に等しい)場合、以下が適用される。
- スライスアドレスは、第SubPicIdxのサブピクチャ内のスライスのスライスインデックスである。
- slice_addressの長さはCeil( Log2( NumSlicesInSubpic[ SubPicIdx ] ) )ビットである。
- slice_addressの値は、両端値を含む0~NumSlicesInSubpic[ SubPicIdx ] - 1という範囲中にあるものとする。
以下の制約が適用されることが、ビットストリーム適合の要件である。
- rect_slice_flagが0に等しいか、またはsubpics_present_flagが0に等しい場合、slice_addressの値は、同じコーディングされたピクチャのいかなる他のコーディングされたスライスネットワークアブストラクションレイヤ(NAL)ユニットのslice_addressの値にも等しくてはならない。
- そうでない場合、slice_subpic_id値とslice_address値とのペアは、同じコーディングされたピクチャのいかなる他のコーディングされたスライスNALユニットのslice_subpic_id値とslice_address値とのペアにも等しくてはならない。
- rect_slice_flagが0に等しいとき、ピクチャのスライスは、それらのslice_address値の昇順をなすものとする。
- ピクチャのスライスの形状は、各コーディングツリーユニット(CTU)が、復号されたとき、ピクチャ境界からなるか、または以前に復号されたCTUの境界からなる、その左の境界全体および上の境界全体を有しなければならないようなものとする。
num_tiles_in_slice_minus1+1は、存在するとき、スライスの中のタイルの個数を指定する。num_tiles_in_slice_minus1の値は、両端値を含む0~NumTilesInPic - 1という範囲中にあるものとする。
現在のスライスの中のCTUの個数を指定する変数NumCtuInCurrSlice、およびスライス内での第iのコーディングツリーブロック(CTB)のピクチャラスタ走査アドレスを指定する、両端値を含む0からNumCtuInCurrSlice - 1までにわたるiに対するリストCtbAddrInCurrSlice[ i ]は、次のように導出される。
if( rect_slice_flag ) {
picLevelSliceIdx = SliceSubpicToPicIdx[ SubPicIdx ][ slice_address ]
NumCtuInCurrSlice = NumCtuInSlice[ picLevelSliceIdx ]
for( i = 0; i < NumCtuInCurrSlice; i++ )
CtbAddrInCurrSlice[ i ] = CtbAddrInSlice[ picLevelSliceIdx ][ i ]
} else {
NumCtuInCurrSlice = 0
for( tileIdx = slice_address; tileIdx <= slice_address + num_tiles_in_slice_minus1[ i ]; tileIdx++ ) {
tileX = tileIdx % NumTileColumns
tileY = tileIdx / NumTileColumns
for( ctbY = tileRowBd[ tileY ]; ctbY < tileRowBd[ tileY + 1 ]; ctbY++ ) {
for( ctbX = tileColBd[ tileX ]; ctbX < tileColBd[ tileX + 1 ]; ctbX++ ) {
CtbAddrInCurrSlice[ NumCtuInCurrSlice ] = ctbY * PicWidthInCtb + ctbX
NumCtuInCurrSlice++
}
}
}
}
変数SubPicLeftBoundaryPos、SubPicTopBoundaryPos、SubPicRightBoundaryPos、およびSubPicBotBoundaryPosは、次のように導出される。
if( subpic_treated_as_pic_flag[ SubPicIdx ] ) {
SubPicLeftBoundaryPos = subpic_ctu_top_left_x[ SubPicIdx ] * CtbSizeY
SubPicRightBoundaryPos = Min( pic_width_max_in_luma_samples - 1, ( subpic_ctu_top_left_x[ SubPicIdx ] + subpic_width_minus1[ SubPicIdx ] + 1 ) * CtbSizeY - 1)
SubPicTopBoundaryPos = subpic_ctu_top_left_y[ SubPicIdx ] *CtbSizeY
SubPicBotBoundaryPos = Min( pic_height_max_in_luma_samples - 1, ( subpic_ctu_top_left_y[ SubPicIdx ] + subpic_height_minus1[ SubPicIdx ] + 1 ) * CtbSizeY - 1)
}
slice_typeは、表13に従ってスライスのコーディングタイプを指定する。
Figure 2023510858000033
1に等しいslice_rpl_sps_flag[ i ]は、現在のスライスの参照ピクチャリストiが、SPSの中のiに等しいlistIdxを伴うref_pic_list_struct( listIdx, rplsIdx )シンタックス構造のうちの1つに基づいて導出されることを指定する。0に等しいslice_rpl_sps_flag[ i ]は、現在のスライスの参照ピクチャリストiが、現在のピクチャのスライスヘッダの中に直接含まれる、iに等しいlistIdxを伴うref_pic_list_struct( listIdx, rplsIdx )シンタックス構造に基づいて導出されることを指定する。
slice_rpl_sps_flag[ i ]が存在しないとき、以下が適用される。
- pic_rpl_present_flagが1に等しい場合、slice_rpl_sps_flag[ i ]の値はpic_rpl_sps_flag[ i ]に等しいものと推測される。
- そうではなく、num_ref_pic_lists_in_sps[ i ]が0に等しい場合、ref_pic_list_sps_flag[ i ]の値は0に等しいものと推測される。
- そうではなく、num_ref_pic_lists_in_sps[ i ]が0よりも大きい場合、かつrpl1_idx_present_flagが0に等しい場合、slice_rpl_sps_flag[ 1 ]の値はslice_rpl_sps_flag[ 0 ]に等しいものと推測される。
slice_rpl_idx[ i ]は、現在のピクチャの参照ピクチャリストiの導出のために使用される、iに等しいlistIdxを伴うref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の、SPSの中に含まれるiに等しいlistIdxを伴うref_pic_list_struct( listIdx, rplsIdx )シンタックス構造のリストへのインデックスを指定する。シンタックス要素slice_rpl_idx[ i ]は、Ceil( Log2( num_ref_pic_lists_in_sps[ i ] ) )ビットによって表される。存在しないとき、slice_rpl_idx[ i ]の値は0に等しいものと推測される。slice_rpl_idx[ i ]の値は、両端値を含む0~num_ref_pic_lists_in_sps[ i ] - 1という範囲中にあるものとする。slice_rpl_sps_flag[ i ]が1に等しく、かつnum_ref_pic_lists_in_sps[ i ]が1に等しいとき、slice_rpl_idx[ i ]の値は0に等しいものと推測される。slice_rpl_sps_flag[ i ]が1に等しく、かつrpl1_idx_present_flagが0に等しいとき、slice_rpl_idx[ 1 ]の値はslice_rpl_idx[ 0 ]に等しいものと推測される。
変数RplsIdx[ i ]は次のように導出される。
if( pic_rpl_present_flag )
RplsIdx[ i ] = PicRplsIdx[ i ]
else
RplsIdx[ i ] = slice_rpl_sps_flag[ i ] ? slice_rpl_idx[ i ] : num_ref_pic_lists_in_sps[ i ]
slice_poc_lsb_lt[ i ][ j ]は、第iの参照ピクチャリストの中の第jのLTRPエントリの、MaxPicOrderCntLsbを法としたピクチャ順序カウントの値を指定する。slice_poc_lsb_lt[ i ][ j ]シンタックス要素の長さはlog2_max_pic_order_cnt_lsb_minus4 + 4ビットである。
変数PocLsbLt[ i ][ j ]は次のように導出される。
if( pic_rpl_present_flag )
PocLsbLt[ i ][ j ] = PicPocLsbLt[ i ][ j ] (142)
else
PocLsbLt[ i ][ j ] = ltrp_in_slice_header_flag[ i ][ RplsIdx[ i ] ] ? slice_poc_lsb_lt[ i ][ j ] : rpls_poc_lsb_lt[ listIdx ][ RplsIdx[ i ] ][ j ] (143)
1に等しいslice_delta_poc_msb_present_flag[ i ][ j ]は、slice_delta_poc_msb_cycle_lt[ i ][ j ]が存在することを指定する。0に等しいslice_delta_poc_msb_present_flag[ i ][ j ]は、slice_delta_poc_msb_cycle_lt[ i ][ j ]が存在しないことを指定する。
現在のピクチャと同じnuh_layer_idを有し、0に等しいTemporalIdを有し、かつランダムアクセススキップドリーディング(RASL)ピクチャまたはランダムアクセス復号可能リーディング(RADL)ピクチャでない、復号順序で前のピクチャを、prevTid0Picとする。以下のものからなるセットをsetOfPrevPocValsとする。
- prevTid0PicのPicOrderCntVal、
- prevTid0PicのRefPicList[ 0 ]またはRefPicList[ 1 ]の中のエントリによって参照され現在のピクチャと同じnuh_layer_idを有する各ピクチャのPicOrderCntVal、
- prevTid0Picに復号順序で後続し、現在のピクチャと同じnuh_layer_idを有し、かつ現在のピクチャに復号順序で先行する、各ピクチャのPicOrderCntVal。
pic_rpl_present_flagが0に等しく、かつMaxPicOrderCntLsbを法とした値がそれに対してPocLsbLt[ i ][ j ]に等しい2つ以上の値がsetOfPrevPocValsの中にあるとき、slice_delta_poc_msb_present_flag[ i ][ j ]の値は1に等しいものとする。
slice_delta_poc_msb_cycle_lt[ i ][ j ]は、次のように変数FullPocLt[ i ][ j ]の値を指定する。
if( pic_rpl_present_flag )
FullPocLt[ i ][ j ] = PicFullPocLt[ i ][ j ]
else {
if( j = = 0 )
DeltaPocMsbCycleLt[ i ][ j ] = delta_poc_msb_cycle_lt[ i ][ j ]
else
DeltaPocMsbCycleLt[ i ][ j ] = delta_poc_msb_cycle_lt[ i ][ j ] + DeltaPocMsbCycleLt[ i ][ j - 1 ]
FullPocLt[ i ][ j ] = PicOrderCntVal - DeltaPocMsbCycleLt[ i ][ j ] * MaxPicOrderCntLsb - ( PicOrderCntVal & ( MaxPicOrderCntLsb - 1 ) ) + PocLsbLt[ i ][ j ]
}
slice_delta_poc_msb_cycle_lt[ i ][ j ]の値は、両端値を含む0~2(32 - log2_max_pic_order_cnt_lsb_minus4 - 4 )という範囲中にあるものとする。存在しないとき、slice_delta_poc_msb_cycle_lt[ i ][ j ]の値は0に等しいものと推測される。
1に等しいnum_ref_idx_active_override_flagは、PスライスおよびBスライスに対してシンタックス要素num_ref_idx_active_minus1[ 0 ]が存在すること、ならびにBスライスに対してシンタックス要素num_ref_idx_active_minus1[ 1 ]が存在することを指定する。0に等しいnum_ref_idx_active_override_flagは、シンタックス要素num_ref_idx_active_minus1[ 0 ]およびnum_ref_idx_active_minus1[ 1 ]が存在しないことを指定する。存在しないとき、num_ref_idx_active_override_flagの値は1に等しいものと推測される。
num_ref_idx_active_minus1[ i ]は、式145によって指定されるように変数NumRefIdxActive[ i ]の導出のために使用される。num_ref_idx_active_minus1[ i ]の値は、両端値を含む0~14という範囲中にあるものとする。
0または1に等しいiに対して、現在のスライスがBスライスであり、num_ref_idx_active_override_flagが1に等しく、かつnum_ref_idx_active_minus1[ i ]が存在しないとき、num_ref_idx_active_minus1[ i ]は0に等しいものと推測される。
現在のスライスがPスライスであり、num_ref_idx_active_override_flagが1に等しく、かつnum_ref_idx_active_minus1[ 0 ]が存在しないとき、num_ref_idx_active_minus1[ 0 ]は0に等しいものと推測される。
変数NumRefIdxActive[ i ]は次のように導出される。
for( i = 0; i < 2; i++ ) {
if( slice_type = = B || ( slice_type = = P && i = = 0 ) ) {
if( num_ref_idx_active_override_flag )
NumRefIdxActive[ i ] = num_ref_idx_active_minus1[ i ] + 1 (145)
else {
if( num_ref_entries[ i ][ RplsIdx[ i ] ] >= num_ref_idx_preset_active_minus1[ i ] + 1 )
NumRefIdxActive[ i ] = num_ref_idx_preset_active_minus1[ i ] + 1
else
NumRefIdxActive[ i ] = num_ref_entries[ i ][ RplsIdx[ i ] ]
}
} else /* slice_type = = I || ( slice_type = = P && i = = 1 ) */
NumRefIdxActive[ i ] = 0
}
NumRefIdxActive[ i ]の値-1は、スライスを復号するために使用され得る参照ピクチャリストiに対する最大参照インデックスを指定する。NumRefIdxActive[ i ]の値が0に等しいとき、参照ピクチャリストiに対する参照インデックスは、スライスを復号するために使用され得ない。
現在のスライスがPスライスであるとき、NumRefIdxActive[ 0 ]の値は0よりも大きいものとする。
現在のスライスがBスライスであるとき、NumRefIdxActive[ 0 ]とNumRefIdxActive[ 1 ]の両方は0よりも大きいものとする。
Figure 2023510858000034
Figure 2023510858000035
重み付き予測パラメータセマンティック
luma_log2_weight_denomは、すべてのルーマ重み付け係数にとっての分母の、2を底とする対数である。luma_log2_weight_denomの値は、両端値を含む0~7という範囲中にあるものとする。
delta_chroma_log2_weight_denomは、すべてのクロマ重み付け係数にとっての分母の、2を底とする対数の差分である。delta_chroma_log2_weight_denomが存在しないとき、それは0に等しいものと推測される。
変数ChromaLog2WeightDenomはluma_log2_weight_denom + delta_chroma_log2_weight_denomに等しくなるように導出され、その値は、両端値を含む0~7という範囲中にあるものとする。
1に等しいluma_weight_l0_flag[ i ]は、RefPicList[ 0 ][ i ]を使用するリスト0予測のルーマ成分に対する重み付け係数が存在することを指定する。0に等しいluma_weight_l0_flag[ i ]は、これらの重み付け係数が存在しないことを指定する。
1に等しいchroma_weight_l0_flag[ i ]は、RefPicList[ 0 ][ i ]を使用するリスト0予測のクロマ予測値に対する重み付け係数が存在することを指定する。0に等しいchroma_weight_l0_flag[ i ]は、これらの重み付け係数が存在しないことを指定する。chroma_weight_l0_flag[ i ]が存在しないとき、それは0に等しいものと推測される。
delta_luma_weight_l0[ i ]は、RefPicList[ 0 ][ i ]を使用するリスト0予測に対してルーマ予測値に適用される重み付け係数の差分である。
変数LumaWeightL0[ i ]は、( 1 << luma_log2_weight_denom ) + delta_luma_weight_l0[ i ]に等しくなるように導出される。luma_weight_l0_flag[ i ]が1に等しいとき、delta_luma_weight_l0[ i ]の値は、両端値を含む-128~127という範囲中にあるものとする。luma_weight_l0_flag[ i ]が0に等しいとき、LumaWeightL0[ i ]は2luma_log2_weight_denomに等しいものと推測される。
luma_offset_l0[ i ]は、RefPicList[ 0 ][ i ]を使用するリスト0予測に対してルーマ予測値に適用される加法的なオフセットである。luma_offset_l0[ i ]の値は、両端値を含む-128~127という範囲中にあるものとする。luma_weight_l0_flag[ i ]が0に等しいとき、luma_offset_l0[ i ]は0に等しいものと推測される。
delta_chroma_weight_l0[ i ][ j ]は、RefPicList[ 0 ][ i ]を使用するリスト0予測に対してクロマ予測値に適用される重み付け係数の差分であり、Cbに対してjが0に等しく、Crに対してjが1に等しい。
変数ChromaWeightL0[ i ][ j ]は、( 1 << ChromaLog2WeightDenom ) + delta_chroma_weight_l0[ i ][ j ]に等しくなるように導出される。chroma_weight_l0_flag[ i ]が1に等しいとき、delta_chroma_weight_l0[ i ][ j ]の値は、両端値を含む-128~127という範囲中にあるものとする。chroma_weight_l0_flag[ i ]が0に等しいとき、ChromaWeightL0[ i ][ j ]は2ChromaLog2WeightDenomに等しいものと推測される。
delta_chroma_offset_l0[ i ][ j ]は、RefPicList[ 0 ][ i ]を使用するリスト0予測に対してクロマ予測値に適用される加法的なオフセットの差分であり、Cbに対してjが0に等しく、Crに対してjが1に等しい。
変数ChromaOffsetL0[ i ][ j ]は次のように導出される。
ChromaOffsetL0[ i ][ j ] = Clip3( -128, 127, (128 + delta_chroma_offset_l0[ i ][ j ] - ( (128 * ChromaWeightL0[ i ][ j ] ) >> ChromaLog2WeightDenom ) ) )
delta_chroma_offset_l0[ i ][ j ]の値は、両端値を含む-4 * 128~4 * 127という範囲中にあるものとする。chroma_weight_l0_flag[ i ]が0に等しいとき、ChromaOffsetL0[ i ][ j ]は0に等しいものと推測される。
luma_weight_l1_flag[ i ]、chroma_weight_l1_flag[ i ]、delta_luma_weight_l1[ i ]、luma_offset_l1[ i ]、delta_chroma_weight_l1[ i ][ j ]、およびdelta_chroma_offset_l1[ i ][ j ]は、l0、L0、リスト0、およびList0が、それぞれ、l1、L1、リスト1、およびList1によって置き換えられて、それぞれ、luma_weight_l0_flag[ i ]、chroma_weight_l0_flag[ i ]、delta_luma_weight_l0[ i ]、luma_offset_l0[ i ]、delta_chroma_weight_l0[ i ][ j ]、およびdelta_chroma_offset_l0[ i ][ j ]と同じセマンティックを有する。
変数sumWeightL0Flagsは、i = 0..NumRefIdxActive[ 0 ] - 1に対して、luma_weight_l0_flag[ i ] + 2 * chroma_weight_l0_flag[ i ]の合計に等しくなるように導出される。
slice_typeがBに等しいとき、変数sumWeightL1Flagsは、i = 0..NumRefIdxActive[ 1 ] - 1に対して、luma_weight_l1_flag[ i ] + 2 * chroma_weight_l1_flag[ i ]の合計に等しくなるように導出される。
slice_typeがPに等しいとき、sumWeightL0Flagsが24以下でなければならず、slice_typeがBに等しいとき、sumWeightL0FlagsおよびsumWeightL1Flagsの合計が24以下でなければならないことが、ビットストリーム適合の要件である。
参照ピクチャリスト構造セマンティック
ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造は、SPSの中またはスライスヘッダの中に存在し得る。シンタックス構造がスライスヘッダの中に含まれるのかそれともSPSの中に含まれるのかに応じて、以下が適用される。
- スライスヘッダの中に存在する場合、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造は、現在のピクチャ(スライスを含むピクチャ)の参照ピクチャリストlistIdxを指定する。
- そうでない(SPSの中に存在する)場合、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造は、参照ピクチャリストlistIdxのための候補を指定し、この節の残部の中で指定されるセマンティックにおける「現在のピクチャ」という用語は、1)SPSの中に含まれるref_pic_list_struct( listIdx, rplsIdx )シンタックス構造のリストの中へのインデックスに等しいref_pic_list_idx[ listIdx ]を含む1つまたは複数のスライスを有し、かつ2)SPSを参照するコーディングされたビデオシーケンス(CVS)である、各ピクチャを指す。
num_ref_entries[ listIdx ][ rplsIdx ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中のエントリの個数を指定する。num_ref_entries[ listIdx ][ rplsIdx ]の値は、両端値を含む0~MaxDecPicBuffMinus1 + 14という範囲中にあるものとする。
0に等しいltrp_in_slice_header_flag[ listIdx ][ rplsIdx ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中のLTRPエントリのPOC LSBがref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中に存在することを指定する。1に等しいltrp_in_slice_header_flag[ listIdx ][ rplsIdx ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中の長期参照ピクチャ(LTRP)エントリのPOC LSBがref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中に存在しないことを指定する。
1に等しいinter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中の第iのエントリがレイヤ間参照ピクチャ(ILRP)エントリであることを指定する。0に等しいinter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中の第iのエントリがILRPエントリでないことを指定する。存在しないとき、inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]の値は0に等しいものと推測される。
1に等しいst_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中の第iのエントリがSTRPエントリであることを指定する。0に等しいst_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中の第iのエントリがLTRPエントリであることを指定する。inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]が0に等しく、かつst_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]が存在しないとき、st_ref_pic_flag[ listIdx ][ rplsIdx ][ i ]の値は1に等しいものと推測される。
変数NumLtrpEntries[ listIdx ][ rplsIdx ]は次のように導出される。
for( i = 0, NumLtrpEntries[ listIdx ][ rplsIdx ] = 0; i < num_ref_entries[ listIdx ][ rplsIdx ]; i++ )
if( !inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] && !st_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] ) (151)
NumLtrpEntries[ listIdx ][ rplsIdx ]++
abs_delta_poc_st[ listIdx ][ rplsIdx ][ i ]は、次のように変数AbsDeltaPocSt[ listIdx ][ rplsIdx ][ i ]の値を指定する。
if( sps_weighted_pred_flag || sps_weighted_bipred_flag )
AbsDeltaPocSt[ listIdx ][ rplsIdx ][ i ] = abs_delta_poc_st[ listIdx ][ rplsIdx ][ i ]
else
AbsDeltaPocSt[ listIdx ][ rplsIdx ][ i ] = abs_delta_poc_st[ listIdx ][ rplsIdx ][ i ] + 1
abs_delta_poc_st[ listIdx ][ rplsIdx ][ i ]の値は、両端値を含む0~215 - 1という範囲中にあるものとする。
1に等しいstrp_entry_sign_flag[ listIdx ][ rplsIdx ][ i ]は、シンタックス構造ref_pic_list_struct( listIdx, rplsIdx )の中の第iのエントリが0以上の値を有することを指定する。0に等しいstrp_entry_sign_flag[ listIdx ][ rplsIdx ][ i ]は、シンタックス構造ref_pic_list_struct( listIdx, rplsIdx )の中の第iのエントリが0よりも小さい値を有することを指定する。存在しないとき、strp_entry_sign_flag[ listIdx ][ rplsIdx ][ i ]の値は1に等しいものと推測される。
リストDeltaPocValSt[ listIdx ][ rplsIdx ]は次のように導出される。
for( i = 0; i < num_ref_entries[ listIdx ][ rplsIdx ]; i++ )
if( !inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] && st_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] )
DeltaPocValSt[ listIdx ][ rplsIdx ][ i ] = ( strp_entry_sign_flag[ listIdx ][ rplsIdx ][ i ] ) ? AbsDeltaPocSt[ listIdx ][ rplsIdx ][ i ] : 0 - AbsDeltaPocSt[ listIdx ][ rplsIdx ][ i ]
rpls_poc_lsb_lt[ listIdx ][ rplsIdx ][ i ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中の第iのエントリによって参照されるピクチャの、MaxPicOrderCntLsbを法としたピクチャ順序カウントの値を指定する。rpls_poc_lsb_lt[ listIdx ][ rplsIdx ][ i ]シンタックス要素の長さはlog2_max_pic_order_cnt_lsb_minus4 + 4ビットである。
ilrp_idx[ listIdx ][ rplsIdx ][ i ]は、ref_pic_list_struct( listIdx, rplsIdx )シンタックス構造の中の第iのエントリのILRPの、直接の参照レイヤのリストへのインデックスを指定する。ilrp_idx[ listIdx ][ rplsIdx ][ i ]の値は、両端値を含む0~NumDirectRefLayers[ GeneralLayerIdx[ nuh_layer_id ] ] - 1という範囲中にあるものとする。
したがって、WPが参照ピクチャに適用されるかどうかを条件としてGEO/TPMマージモードを制御することを可能にするために、異なるメカニズムが使用され得、ここで、すなわち、
- 表14に記載されたWPパラメータをSHからPHに移動させること、
- GEO/TPMパラメータをPHからSHに逆戻りして移動させること、
- すなわち、WPを伴う参照ピクチャが使用され得るとき(たとえば、フラグlumaWeightedFlagまたはのうちの少なくとも1つが真に等しい場合)、そのようなスライスに対してMaxNumTriangleMergeCandを0または1に等しく設定することによって、MaxNumTriangleMergeCandのセマンティックを変更することから、
参照ブロックP0およびP1が取り上げられる。
TPMマージモードに対して、例示的な参照ブロックP0およびP1は、それぞれ、図7の中の710および720によって示される。GEOマージモードに対して、例示的な参照ブロックP0およびP1は、それぞれ、図8の中の810および820によって示される。
一実施形態では、WPパラメータ、および非矩形モード(たとえば、GEOおよびTPM)の有効化が、ピクチャヘッダの中でシグナリングされるとき、下の表の中に示すように以下のシンタックスが使用され得る。
Figure 2023510858000036
Figure 2023510858000037
luma_weight_l0_flag[ i ]、chroma_weight_l0_flag[ i ]、luma_weight_l1_flag[ j ]、およびchroma_weight_l1_flag[ j ]のすべての値が0に設定されるとき(iの値=0..NumRefIdxActive[ 0 ]、jの値=0..NumRefIdxActive[ 1 ])、変数WPDisabledは1に等しく設定され、そうでない場合、WPDisabledの値は0に等しく設定される。
変数WPDisabledが0に等しく設定されるとき、pic_max_num_merge_cand_minus_max_num_triangle_candの値はMaxNumMergeCandに等しく設定される。
第2の実施形態では、WPパラメータ、および非矩形モード(たとえば、GEOおよびTPM)の有効化の、シグナリングは、スライスヘッダの中で実行される。例示的なシンタックスが下の表の中に与えられる。
Figure 2023510858000038
Figure 2023510858000039
Figure 2023510858000040
Figure 2023510858000041
Figure 2023510858000042
luma_weight_l0_flag[ i ]、chroma_weight_l0_flag[ i ]、luma_weight_l1_flag[ j ]、およびchroma_weight_l1_flag[ j ]のすべての値が、0、i =0..NumRefIdxActive[ 0 ]という値、およびj=0..NumRefIdxActive[ 1 ]という値に設定されるとき、変数WPDisabledは1に等しく設定され、そうでない場合、WPDisabledの値は0に等しく設定される。
変数WPDisabledが0に等しく設定されるとき、max_num_merge_cand_minus_max_num_triangle_candの値はMaxNumMergeCandに等しく設定される。
上記で開示した実施形態では、重み付き予測パラメータは、ピクチャヘッダの中またはスライスヘッダの中のいずれかでシグナリングされ得る。
第3の実施形態では、TPMが有効化されているのかそれともGEOが有効化されているのかの決定は、非矩形重み付き予測のためにブロックが使用し得る参照ピクチャリストの検討を伴って実行される。ブロックのためのマージリストが1つの参照ピクチャリストkからの要素しか含まないとき、変数WPDisabled[k]の値は、このマージモードが有効化されているか否かを決定する。
第4の実施形態では、非矩形インター予測モードのためのマージリストは、重み付き予測がそれに対して有効化されていない要素しか含まないような方法で構成される。
仕様の以下の部分は、第4の実施形態を例示する。
このプロセスへの入力は次の通りである。
- 現在のピクチャの左上ルーマサンプルに対する現在のルーマコーディングブロックの左上サンプルのルーマロケーション( xCb, yCb )、
- ルーマサンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth、
- ルーマサンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight。
このプロセスの出力は、Xが0または1であって、以下の通りである。
- 隣接コーディングユニットの利用可能性フラグavailableFlagA0、availableFlagA1、availableFlagB0、availableFlagB1、およびavailableFlagB2
- 隣接コーディングユニットの参照インデックスrefIdxLXA0、refIdxLXA1、refIdxLXB0、refIdxLXB1、およびrefIdxLXB2
- 隣接コーディングユニットの予測リスト利用フラグpredFlagLXA0、predFlagLXA1、predFlagLXB0、predFlagLXB1、およびpredFlagLXB2
- 隣接コーディングユニットの1/16分数サンプル確度での動きベクトルmvLXA0、mvLXA1、mvLXB0、mvLXB1、およびmvLXB2
- ハーフサンプル補間フィルタインデックスhpelIfIdxA0、hpelIfIdxA1、hpelIfIdxB0、hpelIfIdxB1、およびhpelIfIdxB2
- 双予測重みインデックスbcwIdxA0、bcwIdxA1、bcwIdxB0、bcwIdxB1、およびbcwIdxB2
availableFlagB1、refIdxLXB1、predFlagLXB1、mvLXB1、hpelIfIdxB1、およびbcwIdxB1の導出のために、以下が適用される。
- 隣接ルーマコーディングブロックの内側のルーマロケーション( xNbB1, yNbB1 )は、( xCb + cbWidth - 1, yCb - 1 )に等しく設定される。
- 節6.4.4の中で指定されるような隣接ブロック利用可能性を求める導出プロセスが、( xCb, yCb )に等しく設定された現在のルーマロケーション( xCurr, yCurr )、隣接ルーマロケーション( xNbB1, yNbB1 )、TRUEに等しく設定されたcheckPredModeY、および0に等しく設定されたcIdxを入力として用いて呼び出され、出力はブロック利用可能性フラグavailableB1に割り当てられる。
- 変数availableFlagB1、refIdxLXB1、predFlagLXB1、mvLXB1、hpelIfIdxB1、およびbcwIdxB1は、次のように導出される。
- availableB1がFALSEに等しい場合、availableFlagB1は0に等しく設定され、Xが0または1であって、mvLXB1の両方の成分は0に等しく設定され、refIdxLXB1は-1に等しく設定され、predFlagLXB1は0に等しく設定され、hpelIfIdxB1は0に等しく設定され、bcwIdxB1は0に等しく設定される。
- そうでない場合、availableFlagB1は1に等しく設定され、以下の割当てが行われる。
mvLXB1 = MvLX[ xNbB1 ][ yNbB1 ] (501)
refIdxLXB1 = RefIdxLX[ xNbB1 ][ yNbB1 ] (502)
predFlagLXB1 = PredFlagLX[ xNbB1 ][ yNbB1 ] (503)
hpelIfIdxB1 = HpelIfIdx[ xNbB1 ][ yNbB1 ] (504)
bcwIdxB1 = BcwIdx[ xNbB1 ][ yNbB1 ] (505)
availableFlagA1、refIdxLXA1、predFlagLXA1、mvLXA1、hpelIfIdxA1、およびbcwIdxA1の導出のために、以下が適用される。
- 隣接ルーマコーディングブロックの内側のルーマロケーション( xNbA1, yNbA1 )は、( xCb - 1, yCb + cbHeight - 1 )に等しく設定される。
- 節6.4.4の中で指定されるような隣接ブロック利用可能性を求める導出プロセスが、( xCb, yCb )に等しく設定された現在のルーマロケーション( xCurr, yCurr )、隣接ルーマロケーション( xNbA1, yNbA1 )、TRUEに等しく設定されたcheckPredModeY、および0に等しく設定されたcIdxを入力として用いて呼び出され、出力はブロック利用可能性フラグavailableA1に割り当てられる。
- 変数availableFlagA1、refIdxLXA1、predFlagLXA1、mvLXA1、hpelIfIdxA1、およびbcwIdxA1は、次のように導出される。
- 以下の条件のうちの1つまたは複数が真である場合、availableFlagA1は0に等しく設定され、Xが0または1であって、mvLXA1の両方の成分は0に等しく設定され、refIdxLXA1は-1に等しく設定され、predFlagLXA1は0に等しく設定され、hpelIfIdxA1は0に等しく設定され、bcwIdxA1は0に等しく設定される。
- availableA1がFALSEに等しい。
- availableB1がTRUEに等しく、かつルーマロケーション( xNbA1, yNbA1 )および( xNbB1, yNbB1 )が、同じ動きベクトルおよび同じ参照インデックスを有する。
- WPDisabledX[ RefIdxLX[ xNbA1 ][ yNbA1 ] ]が0に設定され、かつマージモードが非矩形である(たとえば、現在のルーマロケーション( xCurr, yCurr )の中のブロックに対して三角形フラグが1に等しく設定される)。
- WPDisabledX[ RefIdxLX[ xNbB1 ][ yNbB1 ] ]が0に設定され、かつマージモードが非矩形である(たとえば、現在のルーマロケーション( xCurr, yCurr )の中のブロックに対して三角形フラグが1に等しく設定される)。
- そうでない場合、availableFlagA1は1に等しく設定され、以下の割当てが行われる。
mvLXA1 = MvLX[ xNbA1 ][ yNbA1 ] (506)
refIdxLXA1 = RefIdxLX[ xNbA1 ][ yNbA1 ] (507)
predFlagLXA1 = PredFlagLX[ xNbA1 ][ yNbA1 ] (508)
hpelIfIdxA1 = HpelIfIdx[ xNbA1 ][ yNbA1 ] (509)
bcwIdxA1 = BcwIdx[ xNbA1 ][ yNbA1 ] (510)
availableFlagB0、refIdxLXB0、predFlagLXB0、mvLXB0、hpelIfIdxB0、およびbcwIdxB0の導出のために、以下が適用される。
- 隣接ルーマコーディングブロックの内側のルーマロケーション( xNbB0, yNbB0 )は、( xCb + cbWidth, yCb - 1 )に等しく設定される。
- 節6.4.4の中で指定されるような隣接ブロック利用可能性を求める導出プロセスが、( xCb, yCb )に等しく設定された現在のルーマロケーション( xCurr, yCurr )、隣接ルーマロケーション( xNbB0, yNbB0 )、TRUEに等しく設定されたcheckPredModeY、および0に等しく設定されたcIdxを入力として用いて呼び出され、出力はブロック利用可能性フラグavailableB0に割り当てられる。
- 変数availableFlagB0、refIdxLXB0、predFlagLXB0、mvLXB0、hpelIfIdxB0、およびbcwIdxB0は、次のように導出される。
- 以下の条件のうちの1つまたは複数が真である場合、availableFlagB0は0に等しく設定され、Xが0または1であって、mvLXB0の両方の成分は0に等しく設定され、refIdxLXB0は-1に等しく設定され、predFlagLXB0は0に等しく設定され、hpelIfIdxB0は0に等しく設定され、bcwIdxB0は0に等しく設定される。
- availableB0がFALSEに等しい。
- availableB1がTRUEに等しく、かつルーマロケーション( xNbB1, yNbB1 )および( xNbB0, yNbB0 )が、同じ動きベクトルおよび同じ参照インデックスを有する。
- WPDisabledX[ RefIdxLX[ xNbB0 ][ yNbB0 ] ]が0に設定され、かつマージモードが非矩形である(たとえば、現在のルーマロケーション( xCurr, yCurr )の中のブロックに対して三角形フラグが1に等しく設定される)。
- WPDisabledX[ RefIdxLX[ xNbB1 ][ yNbB1 ] ]が0に設定され、かつマージモードが非矩形である(たとえば、現在のルーマロケーション( xCurr, yCurr )の中のブロックに対して三角形フラグが1に等しく設定される)。
-
- そうでない場合、availableFlagB0は1に等しく設定され、以下の割当てが行われる。
mvLXB0 = MvLX[ xNbB0 ][ yNbB0 ] (511)
refIdxLXB0 = RefIdxLX[ xNbB0 ][ yNbB0 ] (512)
predFlagLXB0 = PredFlagLX[ xNbB0 ][ yNbB0 ] (513)
hpelIfIdxB0 = HpelIfIdx[ xNbB0 ][ yNbB0 ] (514)
bcwIdxB0 = BcwIdx[ xNbB0 ][ yNbB0 ] (515)
availableFlagA0、refIdxLXA0、predFlagLXA0、mvLXA0、hpelIfIdxA0、およびbcwIdxA0の導出のために、以下が適用される。
- 隣接ルーマコーディングブロックの内側のルーマロケーション( xNbA0, yNbA0 )は、( xCb - 1, yCb + cbWidth )に等しく設定される。
- 節6.4.4の中で指定されるような隣接ブロック利用可能性を求める導出プロセスが、( xCb, yCb )に等しく設定された現在のルーマロケーション( xCurr, yCurr )、隣接ルーマロケーション( xNbA0, yNbA0 )、TRUEに等しく設定されたcheckPredModeY、および0に等しく設定されたcIdxを入力として用いて呼び出され、出力はブロック利用可能性フラグavailableA0に割り当てられる。
- 変数availableFlagA0、refIdxLXA0、predFlagLXA0、mvLXA0、hpelIfIdxA0、およびbcwIdxA0は、次のように導出される。
- 以下の条件のうちの1つまたは複数が真である場合、availableFlagA0は0に等しく設定され、Xが0または1であって、mvLXA0の両方の成分は0に等しく設定され、refIdxLXA0は-1に等しく設定され、predFlagLXA0は0に等しく設定され、hpelIfIdxA0は0に等しく設定され、bcwIdxA0は0に等しく設定される。
- availableA0がFALSEに等しい。
- availableA1がTRUEに等しく、かつルーマロケーション( xNbA1, yNbA1 )および( xNbA0, yNbA0 )が、同じ動きベクトルおよび同じ参照インデックスを有する。
- WPDisabledX[ RefIdxLX[ xNbA0 ][ yNbA0 ] ]が0に設定され、かつマージモードが非矩形である(たとえば、現在のルーマロケーション( xCurr, yCurr )の中のブロックに対して三角形フラグが1に等しく設定される)。
- WPDisabledX[ RefIdxLX[ xNbA1 ][ yNbA1 ] ]が0に設定され、かつマージモードが非矩形である(たとえば、現在のルーマロケーション( xCurr, yCurr )の中のブロックに対して三角形フラグが1に等しく設定される)。
- そうでない場合、availableFlagA0は1に等しく設定され、以下の割当てが行われる。
mvLXA0 = MvLX[ xNbA0 ][ yNbA0 ] (516)
refIdxLXA0 = RefIdxLX[ xNbA0 ][ yNbA0 ] (517)
predFlagLXA0 = PredFlagLX[ xNbA0 ][ yNbA0 ] (518)
hpelIfIdxA0 = HpelIfIdx[ xNbA0 ][ yNbA0 ] (519)
bcwIdxA0 = BcwIdx[ xNbA0 ][ yNbA0 ] (520)
availableFlagB2、refIdxLXB2、predFlagLXB2、mvLXB2、hpelIfIdxB2、およびbcwIdxB2の導出のために、以下が適用される。
- 隣接ルーマコーディングブロックの内側のルーマロケーション( xNbB2, yNbB2 )は、( xCb - 1, yCb - 1 )に等しく設定される。
- 節6.4.4の中で指定されるような隣接ブロック利用可能性を求める導出プロセスが、( xCb, yCb )に等しく設定された現在のルーマロケーション( xCurr, yCurr )、隣接ルーマロケーション( xNbB2, yNbB2 )、TRUEに等しく設定されたcheckPredModeY、および0に等しく設定されたcIdxを入力として用いて呼び出され、出力はブロック利用可能性フラグavailableB2に割り当てられる。
- 変数availableFlagB2、refIdxLXB2、predFlagLXB2、mvLXB2、hpelIfIdxB2、およびbcwIdxB2は、次のように導出される。
- 以下の条件のうちの1つまたは複数が真である場合、availableFlagB2は0に等しく設定され、Xが0または1であって、mvLXB2の両方の成分は0に等しく設定され、refIdxLXB2は-1に等しく設定され、predFlagLXB2は0に等しく設定され、hpelIfIdxB2は0に等しく設定され、bcwIdxB2は0に等しく設定される。
- availableB2がFALSEに等しい。
- availableA1がTRUEに等しく、かつルーマロケーション( xNbA1, yNbA1 )および( xNbB2, yNbB2 )が、同じ動きベクトルおよび同じ参照インデックスを有する。
- availableB1がTRUEに等しく、かつルーマロケーション( xNbB1, yNbB1 )および( xNbB2, yNbB2 )が、同じ動きベクトルおよび同じ参照インデックスを有する。
- availableFlagA0 + availableFlagA1 + availableFlagB0 + availableFlagB1が、4に等しい。
- WPDisabledX[ RefIdxLX[ xNbB1 ][ yNbB1 ] ]が0に設定され、かつマージモードが非矩形である(たとえば、現在のルーマロケーション( xCurr, yCurr )の中のブロックに対して三角形フラグが1に等しく設定される)。
- WPDisabledX[ RefIdxLX[ xNbB2 ][ yNbB2 ] ]が0に設定され、かつマージモードが非矩形である(たとえば、現在のルーマロケーション( xCurr, yCurr )の中のブロックに対して三角形フラグが1に等しく設定される)。
-
- そうでない場合、availableFlagB2は1に等しく設定され、以下の割当てが行われる。
mvLXB2 = MvLX[ xNbB2 ][ yNbB2 ] (521)
refIdxLXB2 = RefIdxLX[ xNbB2 ][ yNbB2 ] (522)
predFlagLXB2 = PredFlagLX[ xNbB2 ][ yNbB2 ] (523)
hpelIfIdxB2 = HpelIfIdx[ xNbB2 ][ yNbB2 ] (524)
bcwIdxB2 = BcwIdx[ xNbB2 ][ yNbB2 ] (525)
上記で開示した実施形態では、以下の変数定義が使用される。
luma_weight_l0_flag[ i ]およびchroma_weight_l0_flag[ i ]のすべての値が、0、i =0..NumRefIdxActive[ 0]という値に設定されるとき、変数WPDisabled0[i]は1に等しく設定される。そうでない場合、WPDisabled0[i]の値は0に等しく設定される。
luma_weight_l1_flag[ i ]およびchroma_weight_l1_flag[ i ]のすべての値が、0、i =0..NumRefIdxActive[ 1]という値に設定されるとき、変数WPDisabled1[i]は1に等しく設定される。そうでない場合、WPDisabled1 [1]の値は0に等しく設定される。
別の実施形態では、変数SliceMaxNumTriangleMergeCandは、以下のうちの1つに従ってスライスヘッダにおいて規定される。
- SliceMaxNumTriangleMergeCand = (lumaWeightedFlag || chromaWeightedFlag) ? 0 : MaxNumTriangleMergeCand
- SliceMaxNumTriangleMergeCand = (lumaWeightedFlag || chromaWeightedFlag) ? 1 : MaxNumTriangleMergeCand
- SliceMaxNumTriangleMergeCand = slice_weighted_pred_flag ? 0 : MaxNumTriangleMergeCand
または
- SliceMaxNumTriangleMergeCand = slice_weighted_pred_flag ? 1 : MaxNumTriangleMergeCand
様々な実施形態が、上記に記載した異なる事例を使用する。
この変数の値は、ブロックレベルにおけるマージ情報の構文解析の際にさらに使用される。例示的なシンタックスが下の表の中に与えられる。
Figure 2023510858000043
Figure 2023510858000044
非矩形インター予測モードがGEOモードである事例に対して、以下の実施形態がさらに説明される。
したがって、WPが参照ピクチャに適用されるかどうかを条件としてGEO/TPMマージモードを制御することを可能にするために、異なるメカニズムが使用され得、ここで、すなわち、
- 表14に記載されたWPパラメータをSHからPHに移動させること、
- GEOパラメータをPHからSHに逆戻りして移動させること、
- すなわち、WPを伴う参照ピクチャが使用され得るとき(たとえば、フラグlumaWeightedFlagまたはのうちの少なくとも1つが真に等しい場合)、そのようなスライスに対してMaxNumGeoMergeCandを0または1に等しく設定することによって、MaxNumGeoMergeCandのセマンティックを変更することから、
参照ブロックP0およびP1が取り上げられる。
GEOマージモードに対して、例示的な参照ブロックP0およびP1は、それぞれ、図8の中の810および820によって示される。
一実施形態では、WPパラメータ、および非矩形モード(たとえば、GEOおよびTPM)の有効化が、ピクチャヘッダの中でシグナリングされるとき、下の表の中に示すように以下のシンタックスが使用され得る。
Figure 2023510858000045
Figure 2023510858000046
luma_weight_l0_flag[ i ]、chroma_weight_l0_flag[ i ]、luma_weight_l1_flag[ j ]、およびchroma_weight_l1_flag[ j ]のすべての値が、0、i =0..NumRefIdxActive[ 0 ]という値、およびj=0..NumRefIdxActive[ 1 ]という値に設定されるとき、変数WPDisabledは1に等しく設定され、そうでない場合、WPDisabledの値は0に等しく設定される。
変数WPDisabledが0に等しく設定されるとき、pic_max_num_merge_cand_minus_max_num_geo_candの値はMaxNumMergeCandに等しく設定される。
別の実施形態では、pic_max_num_merge_cand_minus_max_num_geo_candはMaxNumMergeCand - 1に等しく設定される。
第2の実施形態では、WPパラメータ、および非矩形モード(たとえば、GEOおよびTPM)の有効化の、シグナリングは、スライスヘッダの中で実行される。例示的なシンタックスが下の表の中に与えられる。
Figure 2023510858000047
Figure 2023510858000048
Figure 2023510858000049
Figure 2023510858000050
luma_weight_l0_flag[ i ]、chroma_weight_l0_flag[ i ]、luma_weight_l1_flag[ j ]、およびchroma_weight_l1_flag[ j ]のすべての値が、0、i =0..NumRefIdxActive[ 0 ]という値、およびj=0..NumRefIdxActive[ 1 ]という値に設定されるとき、変数WPDisabledは1に等しく設定され、そうでない場合、WPDisabledの値は0に等しく設定される。
変数WPDisabledが0に等しく設定されるとき、max_num_merge_cand_minus_max_num_geo_candの値はMaxNumMergeCandに等しく設定される。
別の実施形態では、変数WPDisabledが0に等しく設定されるとき、max_num_merge_cand_minus_max_num_geo_candの値はMaxNumMergeCand - 1に等しく設定される。
上記で開示した実施形態では、重み付き予測パラメータは、ピクチャヘッダの中またはスライスヘッダの中のいずれかでシグナリングされ得る。
別の実施形態では、変数SliceMaxNumGeoMergeCandは、以下のうちの1つに従ってスライスヘッダにおいて規定される。
- SliceMaxNumGeoMergeCand = (lumaWeightedFlag || chromaWeightedFlag) ? 0 : MaxNumGeoMergeCand
- SliceMaxNumGeoMergeCand = (lumaWeightedFlag || chromaWeightedFlag) ? 1 : MaxNumGeoMergeCand
- SliceMaxNumGeoMergeCand = slice_weighted_pred_flag ? 0 : MaxNumGeoMergeCand
または
- SliceMaxNumGeoMergeCand = slice_weighted_pred_flag ? 1 : MaxNumGeoMergeCand
様々な実施形態が、上記に記載した異なる事例を使用する。
この変数の値は、ブロックレベルにおけるマージ情報の構文解析の際にさらに使用される。例示的なシンタックスが下の表の中に与えられる。
7.3.9.7 マージデータシンタックス
Figure 2023510858000051
Figure 2023510858000052
関係するピクチャヘッダセマンティックは、以下の通りである。
pic_max_num_merge_cand_minus_max_num_geo_candは、MaxNumMergeCandから減じる、ピクチャヘッダに関連するスライスの中でサポートされるgeoマージモード候補の最大数を指定する。
pic_max_num_merge_cand_minus_max_num_geo_candが存在せず、かつsps_geo_enabled_flagが1に等しく、かつMaxNumMergeCandが2以上であるとき、pic_max_num_merge_cand_minus_max_num_geo_candはpps_max_num_merge_cand_minus_max_num_geo_cand_plus1 - 1に等しいものと推測される。
geoマージモード候補の最大数MaxNumGeoMergeCandは、次のように導出される。
MaxNumGeoMergeCand = MaxNumMergeCand - pic_max_num_merge_cand_minus_max_num_geo_cand (87)
pic_max_num_merge_cand_minus_max_num_geo_candが存在するとき、MaxNumGeoMergeCandの値は、両端値を含む2~MaxNumMergeCandという範囲中にあるものとする。
pic_max_num_merge_cand_minus_max_num_geo_candが存在せず、かつ(sps_geo_enabled_flagが0に等しいか、またはMaxNumMergeCandが2よりも小さい)とき、MaxNumGeoMergeCandは0に等しく設定される。
MaxNumGeoMergeCandが0に等しいとき、PHに関連するスライスに対してgeoマージモードは許容されない。
以下の実施形態では、いくつかのシグナリング関連の態様が検討される。すなわち、これらの態様は以下の通りである。
- 特定の実装形態がシーケンスパラメータセット(SPS)レベルにおいて非矩形モードマージ候補の個数(MaxNumGeoMergeCand)を導出することを可能にする、マージモード()のための候補の個数に関係するシンタックス要素が、SPSの中でシグナリングされる。
- ピクチャがちょうど1つのスライスを備えるとき、PHはSHの中でシグナリングされ得る。
- 次のように以下のものを伴うPH/SHパラメータオーバーライドメカニズムを規定する。
・関連するコーディングツールのシンタックス要素がPHまたはSHのいずれか(ただし、両方でない)の中に存在するかどうかを指定するPPSフラグ。
・詳細には、参照ピクチャリストおよび重み付き予測テーブルがこのメカニズムを使用し得る。
- (ALF、デブロッキング、RPL、およびSAOのように)PHまたはSHのいずれかの中でシグナリングされ得る予測重みテーブル、すなわち、第5のタイプのデータ。
- ピクチャに対して重み付き予測が有効化されているとき、ピクチャのすべてのスライスは、同じ参照ピクチャリストを有することを必要とされることになる。
- PHに関連するピクチャの中でいくつかのスライスタイプだけが使用される場合、インターおよびイントラ関連のシンタックス要素が条件付きでシグナリングされる。
・詳細には、2つのフラグpic_inter_slice_present_flagおよびpic_intra_slice_present_flagが導入される。
実施形態1では、特定の実装形態がシーケンスパラメータセット(SPS)レベルにおいて非矩形モードマージ候補の個数(MaxNumGeoMergeCand)を導出することを可能にする、マージモード()のための候補の個数に関係するシンタックス要素が、SPSの中でシグナリングされる。この態様は、以下のシンタックスに基づいて符号化プロセスまたは復号プロセスによって実施され得る。
7.3.2.3 シーケンスパラメータセットRBSPシンタックス
Figure 2023510858000053
Figure 2023510858000054
上記で説明したシンタックスは以下のセマンティックを有する。
0に等しいsps_six_minus_max_num_merge_cand_plus1は、pic_six_minus_max_num_merge_candが、PPSを参照するPHの中に存在することを指定する。0よりも大きいsps_six_minus_max_num_merge_cand_plus1は、pic_six_minus_max_num_merge_candが、PPSを参照するPHの中に存在しないことを指定する。sps_six_minus_max_num_merge_cand_plus1の値は、両端値を含む0~6という範囲中にあるものとする。
0に等しいsps_max_num_merge_cand_minus_max_num_geo_cand_plus1は、pic_max_num_merge_cand_minus_max_num_geo_candが、PPSを参照するスライスのPHの中に存在することを指定する。0よりも大きいsps_max_num_merge_cand_minus_max_num_geo_cand_plus1は、pic_max_num_merge_cand_minus_max_num_geo_candが、PPSを参照するPHの中に存在しないことを指定する。sps_max_num_merge_cand_minus_max_num_geo_cand_plus1の値は、0~MaxNumMergeCand - 1という範囲中にあるものとする。
PHの対応する要素のセマンティックは、以下の通りである。
pic_six_minus_max_num_merge_candは、6から減じる、PHに関連するスライスの中でサポートされるマージング動きベクトル予測(MVP)候補の最大数を指定する。マージングMVP候補の最大数MaxNumMergeCandは、次のように導出される。
MaxNumMergeCand = 6 - pic_six_minus_max_num_merge_cand (85)
MaxNumMergeCandの値は、両端値を含む1~6という範囲中にあるものとする。存在しないとき、pic_six_minus_max_num_merge_candの値はsps_six_minus_max_num_merge_cand_plus1 - 1に等しいものと推測される。
pic_max_num_merge_cand_minus_max_num_geo_candは、MaxNumMergeCandから減じる、ピクチャヘッダに関連するスライスの中でサポートされるgeoマージモード候補の最大数を指定する。
sps_max_num_merge_cand_minus_max_num_geo_candが存在せず、かつsps_geo_enabled_flagが1に等しく、かつMaxNumMergeCandが2以上であるとき、pic_max_num_merge_cand_minus_max_num_geo_candはsps_max_num_merge_cand_minus_max_num_geo_cand_plus1 - 1に等しいものと推測される。
geoマージモード候補の最大数MaxNumGeoMergeCandは、次のように導出される。
MaxNumGeoMergeCand = MaxNumMergeCand - pic_max_num_merge_cand_minus_max_num_geo_cand (87)
pic_max_num_merge_cand_minus_max_num_geo_candが存在するとき、MaxNumGeoMergeCandの値は、両端値を含む2~MaxNumMergeCandという範囲中にあるものとする。
pic_max_num_merge_cand_minus_max_num_geo_candが存在せず、かつ(sps_geo_enabled_flagが0に等しいか、またはMaxNumMergeCandが2よりも小さい)とき、MaxNumGeoMergeCandは0に等しく設定される。
MaxNumGeoMergeCandが0に等しいとき、PHに関連するスライスに対してgeoマージモードは許容されない。
この実施形態のための代替のシンタックスおよびセマンティックは以下の通りである。
Figure 2023510858000055
sps_six_minus_max_num_merge_candは、6から減じる、PHに関連するスライスの中でサポートされるマージング動きベクトル予測(MVP)候補の最大数を指定する。マージングMVP候補の最大数MaxNumMergeCandは、次のように導出される。
MaxNumMergeCand = 6 - sps_six_minus_max_num_merge_cand (85)
MaxNumMergeCandの値は、両端値を含む1~6という範囲中にあるものとする。
sps_max_num_merge_cand_minus_max_num_geo_candは、MaxNumMergeCandから減じる、ピクチャヘッダに関連するスライスの中でサポートされるgeoマージモード候補の最大数を指定する。
geoマージモード候補の最大数MaxNumGeoMergeCandは、次のように導出される。
MaxNumGeoMergeCand = MaxNumMergeCand - sps_max_num_merge_cand_minus_max_num_geo_cand (87)
sps_max_num_merge_cand_minus_max_num_geo_candが存在するとき、MaxNumGeoMergeCandの値は、両端値を含む2~MaxNumMergeCandという範囲中にあるものとする。
sps_max_num_merge_cand_minus_max_num_geo_candが存在せず、かつ(sps_geo_enabled_flagが0に等しいか、またはMaxNumMergeCandが2よりも小さい)とき、MaxNumGeoMergeCandは0に等しく設定される。
MaxNumGeoMergeCandが0に等しいとき、geoマージモードは許容されない。
上記で説明した実施形態に対して、かつ両方の代替シンタックス定義に対して、重み付き予測が有効化されているかどうかについて検査が実行される。この検査はMaxNumGeoMergeCand変数の導出に影響を及ぼし、MaxNumGeoMergeCandの値は、以下の事例のうちの1つでは0に設定される。
- i = 0..NumRefIdxActive[ 0 ]という値およびj = 0..NumRefIdxActive[ 1 ]という値に対して、luma_weight_l0_flag[ i ]、chroma_weight_l0_flag[ i ]、luma_weight_l1_flag[ j ]、およびchroma_weight_l1_flag[ j ]のすべての値が、0に設定されるかまたは存在しないかのいずれかであるとき。
- SPSまたはPPSの中のフラグが双方向重み付き予測の存在を示すとき(pps_weighted_bipred_flag)。
- 双方向重み付き予測の存在がピクチャヘッダ(PH)またはスライスヘッダ(SH)のいずれかの中で示されるとき。
重み付き予測パラメータの存在を示すSPSレベルのフラグは、次のようにシグナリングされ得る。
Figure 2023510858000056
シンタックス要素「sps_wp_enabled_flag」は、より低いレベル(PPS、PH、またはSH)において重み付き予測が有効化され得るかどうかを決定する。例示的な実装形態が以下に与えられる。
Figure 2023510858000057
上の表の中で、pps_weighted_pred_flagおよびpps_weighted_bipred_flagは、単予測ブロックおよび双予測ブロックに対して重み付き予測が有効化されているかどうかを示す、ビットストリームの中のフラグである。
一実施形態では、たとえば、pic_weighted_pred_flagおよびpic_weighted_bipred_flagのような、重み付き予測フラグがピクチャヘッダの中で指定される場合、sps_wp_enabled_flagについての以下の依存関係が、ビットストリームシンタックスの中で指定されてよい。
Figure 2023510858000058
一実施形態では、たとえば、weighted_pred_flagおよびweighted_bipred_flagのような、重み付き予測フラグがスライスヘッダの中で指定される場合、sps_wp_enabled_flagについての以下の依存関係が、ビットストリームシンタックスの中で指定されてよい。
Figure 2023510858000059
実施形態2では、参照ピクチャリストは、PPSの中またはPHもしくはSHのいずれか(ただし、両方でない)の中のいずれかで示されてよい。現況技術から知られているように、参照ピクチャリストのシグナリングは、重み付き予測の存在を示すシンタックス要素(たとえば、pps_weighted_pred_flagおよびpps_weighted_bipred_flag)に依存する。したがって、参照ピクチャリストがPPSの中で示されるのか、PHの中で示されるのか、それともSHの中で示されるのかに応じて、重み付き予測パラメータは、それに対応してPPS、PH、またはSHの中で参照ピクチャリストの前にシグナリングされる。
この実施形態のために以下のシンタックスが指定され得る。
ピクチャパラメータセットシンタックス
Figure 2023510858000060
1に等しいrpl_present_in_ph_flagは、参照ピクチャリストシグナリングが、PPSを参照するスライスヘッダの中に存在しないが、PPSを参照するPHの中に存在し得ることを指定する。0に等しいrpl_present_in_ph_flagは、参照ピクチャリストシグナリングが、PPSを参照するPHの中に存在しないが、PPSを参照するスライスヘッダの中に存在し得ることを指定する。
1に等しいsao_present_in_ph_flagは、SAO使用を有効化するためのシンタックス要素が、PPSを参照するスライスヘッダの中に存在しないが、PPSを参照するPHの中に存在し得ることを指定する。0に等しいsao_present_in_ph_flagは、SAO使用を有効化するためのシンタックス要素が、PPSを参照するPHの中に存在しないが、PPSを参照するスライスヘッダの中に存在し得ることを指定する。
1に等しいalf_present_in_ph_flagは、ALF使用を有効化するためのシンタックス要素が、PPSを参照するスライスヘッダの中に存在しないが、PPSを参照するPHの中に存在し得ることを指定する。0に等しいalf_present_in_ph_flagは、ALF使用を有効化するためのシンタックス要素が、PPSを参照するPHの中に存在しないが、PPSを参照するスライスヘッダの中に存在し得ることを指定する。
1に等しいweighted_pred_table_present_in_ph_flagは、重み付き予測テーブルが、PPSを参照するスライスヘッダの中に存在しないが、PPSを参照するPHの中に存在し得ることを指定する。0に等しいweighted_pred_table_present_in_ph_flagは、重み付き予測テーブルが、PPSを参照するPHの中に存在しないが、PPSを参照するスライスヘッダの中に存在し得ることを指定する。存在しないとき、weighted_pred_table_present_in_ph_flagの値は0に等しいものと推測される。
1に等しいdeblocking_filter_override_enabled_flagは、デブロッキングフィルタオーバーライドが、PPSを参照するPHの中またはスライスヘッダの中に存在し得ることを指定する。0に等しいdeblocking_filter_override_enabled_flagは、そのデブロッキングフィルタオーバーライドが、PPSを参照するPHの中にもスライスヘッダの中にも存在しないことを指定する。存在しないとき、deblocking_filter_override_enabled_flagの値は0に等しいものと推測される。
1に等しいdeblocking_filter_override_present_in_ph_flagは、デブロッキングフィルタオーバーライドが、PPSを参照するスライスヘッダの中に存在しないが、PPSを参照するPHの中に存在し得ることを指定する。0に等しいdeblocking_filter_override_present_in_ph_flagは、デブロッキングフィルタオーバーライドが、PPSを参照するPHの中に存在しないが、PPSを参照するスライスヘッダの中に存在し得ることを指定する。
Figure 2023510858000061
Figure 2023510858000062
Figure 2023510858000063
Figure 2023510858000064
Figure 2023510858000065
ピクチャヘッダのための代替のシンタックスは、以下の通りである。
Figure 2023510858000066
Figure 2023510858000067
実施形態3では、ピクチャヘッダおよびスライスヘッダ要素のシグナリングが、単一のプロセスの中で組み合わせられ得る。
この実施形態は、ピクチャおよびスライスヘッダが組み合わせられているかどうかを示すフラグ(「picture_header_in_slice_header_flag」)を導入する。この実施形態に係るビットストリームのためのシンタックスは、以下の通りである。
ピクチャヘッダRBSPシンタックス
Figure 2023510858000068
ピクチャヘッダ構造シンタックス
Figure 2023510858000069
汎用スライスヘッダシンタックス
Figure 2023510858000070
picture_header_in_slice_header_flagおよび関連するビットストリーム制約のためのセマンティックは、以下の通りである。
1に等しいpicture_header_in_slice_header_flagは、ピクチャヘッダシンタックス構造がスライスヘッダの中に存在することを指定する。0に等しいpicture_header_in_slice_header_flagは、ピクチャヘッダシンタックス構造がスライスヘッダの中に存在しないことを指定する。
picture_header_in_slice_header_flagの値がCLVSのすべてのスライスの中で同じであることが、ビットストリーム適合の要件である。
picture_header_in_slice_header_flagが1に等しいとき、PH_NUTに等しいNALユニットタイプを有するNALユニットがCLVSの中に存在しないことが、ビットストリーム適合の要件である。
picture_header_in_slice_header_flagが0に等しいとき、PH_NUTに等しいNALユニットタイプを有するNALユニットが、PUの最初のVCL NALユニットに先行するPUの中に存在することが、ビットストリーム適合の要件である。
実施形態2と実施形態3との組合せは、実施形態の両方がPHおよびSHシグナリングの主題に関係するので重要である。
これらの実施形態の態様の組合せは、以下の通りである。
picture_header_in_slice_header_flagが0に等しいとき(実施形態4)、関連するコーディングツールのシンタックス要素がPHまたはSHのいずれか(ただし、両方でない)の中に存在するかどうかを指定するフラグ。
そうでない場合(picture_header_in_slice_header_flagが1に等しいとき)、これらのフラグは、スライスレベルでのツールパラメータシグナリングを示す0と推測される。
代替の組合せは、以下の通りである。
picture_header_in_slice_header_flagが0に等しいとき(実施形態4)、関連するコーディングツールのシンタックス要素がPHまたはSHのいずれか(ただし、両方でない)の中に存在するかどうかを指定するフラグ。
そうでない場合(picture_header_in_slice_header_flagが1に等しいとき)、これらのフラグは、ピクチャヘッダレベルでのツールパラメータシグナリングを示す0と推測される。
この組合せは以下のシンタックスを有する。
ピクチャパラメータセットシンタックス
Figure 2023510858000071
実施形態4では、重み付き予測が有効化されているかどうかの検査は、重み付き予測を用いて参照される参照ピクチャリストの中のエントリの個数を示すことによって実行される。
この実施形態におけるシンタックスおよびセマンティックは、次のように規定される。
Figure 2023510858000072
Figure 2023510858000073
num_l0_weighted_ref_picsは、重み付きである参照ピクチャリスト0の中の参照ピクチャの個数を指定する。num_l0_weighted_ref_picsの値は、両端値を含む0からMaxDecPicBuffMinus1 + 14までにわたるものとする。
存在するとき、num_l0_weighted_ref_picsの値が、ピクチャヘッダに関連するピクチャの中の任意のスライスのL0に対するアクティブな参照ピクチャの個数よりも小さくてはならないことが、ビットストリーム適合の要件である。
num_l1_weighted_ref_picsは、重み付きである参照ピクチャリスト1の中の参照ピクチャの個数を指定する。num_l1_weighted_ref_picsの値は、両端値を含む0からMaxDecPicBuffMinus1 + 14までにわたるものとする。
存在するとき、num_l1_weighted_ref_picsの値が、ピクチャヘッダに関連するピクチャの中の任意のスライスのL1に対するアクティブな参照ピクチャの個数よりも小さくてはならないことが、ビットストリーム適合の要件である。
num_l0_weighted_ref_picsまたはnum_l1_weighted_ref_picsのいずれかが非0であるとき、MaxNumGeoMergeCandは0に設定される。以下のシンタックスは、この依存関係がどのように利用され得るのかの一例である。
Figure 2023510858000074
この実施形態におけるpic_max_num_merge_cand_minus_max_num_geo_candのセマンティックは、前の実施形態の場合と同じである。
実施形態5では、PHに関連するピクチャの中でいくつかのスライスタイプだけが使用される場合、インターおよびイントラ関連のシンタックス要素が条件付きでシグナリングされる。
この実施形態のためのシンタックスが以下に与えられる。
Figure 2023510858000075
Figure 2023510858000076
Figure 2023510858000077
Figure 2023510858000078
7.3.7.1 汎用スライスヘッダシンタックス
Figure 2023510858000079
7.4.3.6 ピクチャヘッダRBSPセマンティック
1に等しいpic_inter_slice_present_flagは、0(B)または1(P)に等しいslice_typeを伴う1つまたは複数のスライスが、PHに関連するピクチャの中に存在し得ることを指定する。0に等しいpic_inter_slice_present_flagは、0(B)または1(P)に等しいslice_typeを伴うスライスが、PHに関連するピクチャの中に存在し得ないことを指定する。
1に等しいpic_intra_slice_present_flagは、2(I)に等しいslice_typeを伴う1つまたは複数のスライスが、PHに関連するピクチャの中に存在し得ることを指定する。0に等しいpic_intra_slice_present_flagは、2(I)に等しいslice_typeを伴うスライスが、PHに関連するピクチャの中に存在し得ないことを指定する。存在しないとき、pic_intra_slice_only_flagの値は1に等しいものと推測される。
注- pic_inter_slice_present_flagとpic_intra_slice_present_flagの両方の値は、インターコーディングされたスライスを含む1つまたは複数のサブピクチャとマージされてよい、イントラコーディングされたスライスを含む1つまたは複数のサブピクチャを含む、ピクチャに関連するピクチャヘッダの中で1に等しく設定される。
7.4.8.1 汎用スライスヘッダセマンティック
slice_typeは、表7-5に従ってスライスのコーディングタイプを指定する。
表7-5 - slice_typeへの名称関連付け
Figure 2023510858000080
nal_unit_typeが、両端値を含むIDR_W_RADL~CRA_NUTという範囲中のnal_unit_typeの値であり、かつ現在のピクチャがアクセスユニットの中の最初のピクチャであるとき、slice_typeは2に等しいものとする。
存在しないとき、slice_typeの値は2に等しいものと推測される。
pic_intra_slice_present_flagが0に等しいとき、slice_typeの値は、両端値を含む0から1までの範囲中にあるものとする。
実施形態4は、ピクチャヘッダの中でのpred_weight_table()のシグナリングと組み合わせられ得る。ピクチャヘッダの中でのpred_weight_table()のシグナリングは、前の実施形態において開示される。
例示的なシンタックスは、以下の通りである。
Figure 2023510858000081
ピクチャヘッダの中のpred_weight_table( )の存在を示すとき、実施形態3との以下のシンタックス組合せが使用され得る。
Figure 2023510858000082
代替実施形態は以下のシンタックスを使用し得る。
Figure 2023510858000083
代替実施形態は以下のシンタックスを使用し得る。
Figure 2023510858000084
上記のシンタックスにおいて、pic_inter_bipred_slice_present_flagは、ピクチャヘッダを参照するすべてのスライスタイプ、すなわち、Iスライス、Bスライス、およびPスライスの存在を示す。
pic_inter_bipred_slice_present_flagが0であるとき、ピクチャは、IタイプまたはBタイプのいずれかのスライスのみを備える。
この場合、非矩形モードが無効化される。
実施形態5は、上記で開示した特徴の組合せである。例示的なシンタックスが次のように説明される。
Figure 2023510858000085
Figure 2023510858000086
実施形態6は、重み付き予測係数を有しないピクチャを参照する非矩形(たとえば、GEO)モードをエンコーダが選択することを可能にする。
この実施形態では、セマンティックは次のように規定される。
7.4.10.7 マージデータセマンティック
Bスライスを復号するとき、現在のコーディングユニットの予測サンプルを生成するためにgeo形状ベースの動き補償が使用されるかどうかを指定する、変数MergeGeoFlag[ x0 ][ y0 ]が、次のように導出される。
- すべての次の条件が真である場合、MergeGeoFlag[ x0 ][ y0 ]は1に等しく設定される。
- sps_geo_enabled_flagが1に等しい。
- slice_typeがBに等しい。
- general_merge_flag[ x0 ][ y0 ]が1に等しい。
- MaxNumGeoMergeCandが2以上である。
- cbWidthが8以上である。
- cbHeightが8以上である。
- cbWidthが8*cbHeightよりも小さい。
- cbHeightが8*cbWidthよりも小さい。
- regular_merge_flag[ x0 ][ y0 ]が0に等しい。
- merge_subblock_flag[ x0 ][ y0 ]が0に等しい。
- ciip_flag[ x0 ][ y0 ]が0に等しい。
- そうでない場合、MergeGeoFlag[ x0 ][ y0 ]は0に等しく設定される。
CUのルーマまたはクロマの明示的な重み付きフラグのうちの1つが真である場合、MergeGeoFlag[ x0][ y0 ]が0に等しくなければならないことが、ビットストリーム適合の要件である。
実施形態7は、次のようにVVC仕様の一部として説明され得る。
8.5.7 geoインターブロックのための復号プロセス
8.5.7.1 概要
このプロセスは、1に等しいMergeGeoFlag[ xCb ][ yCb ]を用いてコーディングユニットを復号するときに呼び出される。
このプロセスへの入力は次の通りである。
- 現在のピクチャの左上ルーマサンプルに対して現在のコーディングブロックの左上サンプルを指定するルーマロケーション( xCb, yCb )、
- ルーマサンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth、
- ルーマサンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight、
- 1/16分数サンプル確度でのルーマ動きベクトルmvAおよびmvB、
- クロマ動きベクトルmvCAおよびmvCB、
- 参照インデックスrefIdxAおよびrefIdxB、
- 予測リストフラグpredListFlagAおよびpredListFlagB。
予測ルーマサンプル値の(cbWidth)×(cbHeight)アレイをpredSamplesLALおよびpredSamplesLBLとし、予測クロマサンプル値の(cbWidth / SubWidthC)×(cbHeight / SubHeightC)アレイをpredSamplesLACb、predSamplesLBCb、predSamplesLACr、およびpredSamplesLBCrとする。
predSamplesL、predSamplesCb、およびpredSamplesCrは、以下の順序付きステップによって導出される。
1. AおよびBの各々であるNに対して、以下が適用される。
2. マージgeoモードの区分角度および距離、すなわち、変数angleIdxおよびdistanceIdxは、表36の中で指定されるようなmerge_geo_partition_idx[ xCb ][ yCb ]の値に従って設定される。
3. 変数explictWeightedFlagは次のように導出される。
lumaWeightedFlagA = predListFlagA ? luma_weight_l1_flag[ refIdxA ] : luma_weight_l0_flag[ refIdxA ]
lumaWeightedFlagB = predListFlagB ? luma_weight_l1_flag[ refIdxB ] : luma_weight_l0_flag[ refIdxB ]
chromaWeightedFlagA = predListFlagA ? chroma_weight_l1_flag[ refIdxA ] : chroma_weight_l0_flag[ refIdxA ]
chromaWeightedFlagB = predListFlagB ? chroma_weight_l1_flag[ refIdxB ] : chroma_weight_l0_flag[ refIdxB ]
weightedFlag = lumaWeightedFlagA || lumaWeightedFlagB || chromaWeightedFlagA || chromaWeightedFlagB
4. xL = 0..cbWidth - 1およびyL = 0..cbHeight - 1を伴う、現在のルーマコーディングブロックの内側の予測サンプルpredSamplesL[ xL ][ yL ]は、cbWidthに等しく設定されたコーディングブロック幅nCbW、cbHeightに等しく設定されたコーディングブロック高さnCbH、サンプルアレイpredSamplesLALおよびpredSamplesLBL、ならびに変数angleIdxおよびdistanceIdx、ならびに0に等しいcIdxを入力として用いて、weightedFlagが0に等しい場合には、節8.5.7.2の中で指定されるgeoマージモードのための重み付きサンプル予測プロセスを、またweightedFlagが1に等しい場合には、節8.5.6.6.3の中の明示的な重み付きサンプル予測プロセスを呼び出すことによって導出される。
5. xC = 0..cbWidth / SubWidthC - 1およびyC = 0..cbHeight / SubHeightC - 1を伴う、現在のクロマ成分Cbコーディングブロックの内側の予測サンプルpredSamplesCb[ xC ][ yC ]は、cbWidth / SubWidthCに等しく設定されたコーディングブロック幅nCbW、cbHeight / SubHeightCに等しく設定されたコーディングブロック高さnCbH、サンプルアレイpredSamplesLACbおよびpredSamplesLBCb、ならびに変数angleIdxおよびdistanceIdx、ならびに1に等しいcIdxを入力として用いて、weightedFlagが0に等しい場合には、節8.5.7.2の中で指定されるgeoマージモードのための重み付きサンプル予測プロセスを、またweightedFlagが1に等しい場合には、節8.5.6.6.3の中の明示的な重み付きサンプル予測プロセスを呼び出すことによって導出される。
6. xC = 0..cbWidth / SubWidthC - 1およびyC = 0..cbHeight / SubHeightC - 1を伴う、現在のクロマ成分Crコーディングブロックの内側の予測サンプルpredSamplesCr[ xC ][ yC ]は、cbWidth / SubWidthCに等しく設定されたコーディングブロック幅nCbW、cbHeight / SubHeightCに等しく設定されたコーディングブロック高さnCbH、サンプルアレイpredSamplesLACrおよびpredSamplesLBCr、ならびに変数angleIdxおよびdistanceIdx、ならびに2に等しいcIdxを入力として用いて、weightedFlagが0に等しい場合には、節8.5.7.2の中で指定されるgeoマージモードのための重み付きサンプル予測プロセスを、またweightedFlagが1に等しい場合には、節8.5.6.6.3の中の明示的な重み付きサンプル予測プロセスを呼び出すことによって導出される。
7. 節8.5.7.3の中で指定されるマージgeoモードのための動きベクトル記憶プロセスは、ルーマコーディングブロックロケーション( xCb, yCb )、ルーマコーディングブロック幅cbWidth、ルーマコーディングブロック高さcbHeight、区分方向angleIdxおよびdistanceIdx、ルーマ動きベクトルmvAおよびmvB、参照インデックスrefIdxAおよびrefIdxB、ならびに予測リストフラグpredListFlagAおよびpredListFlagBを入力として用いて呼び出される。
Figure 2023510858000087
8.5.6.6.3 明示的な重み付きサンプル予測プロセス
このプロセスへの入力は次の通りである。
- 現在のコーディングブロックの幅および高さを指定する2つの変数nCbWおよびnCbH、
- 2つの(nCbW)×(nCbH)アレイpredSamplesL0およびpredSamplesL1、
- 予測リスト利用フラグpredFlagL0およびpredFlagL1、
- 参照インデックスrefIdxL0およびrefIdxL1、
- 色成分インデックスを指定する変数cIdx、
- サンプルビット深度bitDepth。
このプロセスの出力は、予測サンプル値の(nCbW)×(nCbH)アレイpbSamplesである。
変数shift1は、Max( 2, 14 - bitDepth )に等しく設定される。
変数log2Wd、o0、o1、w0、およびw1は、次のように導出される。
- ルーマサンプルに対してcIdxが0に等しい場合、以下が適用される。
log2Wd = luma_log2_weight_denom + shift1 (1010)
w0 = LumaWeightL0[ refIdxL0 ] (1011)
w1 = LumaWeightL1[ refIdxL1 ] (1012)
o0 = luma_offset_l0[ refIdxL0 ] << ( bitDepth - 8 ) (1013)
o1 = luma_offset_l1[ refIdxL1 ] << ( bitDepth - 8 ) (1014)
- そうでない(クロマサンプルに対してcIdxが0に等しくない)場合、以下が適用される。
log2Wd = ChromaLog2WeightDenom + shift1 (1015)
w0 = ChromaWeightL0[ refIdxL0 ][ cIdx - 1 ] (1016)
w1 = ChromaWeightL1[ refIdxL1 ][ cIdx - 1 ] (1017)
o0 = ChromaOffsetL0[ refIdxL0 ][ cIdx - 1 ] << ( bitDepth - 8 ) (1018)
o1 = ChromaOffsetL1[ refIdxL1 ][ cIdx - 1 ] << ( bitDepth - 8 ) (1019)
x = 0..nCbW - 1およびy = 0..nCbH - 1を伴う予測サンプルpbSamples[ x ][ y ]は、次のように導出される。
- predFlagL0が1に等しく、かつpredFlagL1が0に等しい場合、予測サンプル値は次のように導出される。
if( log2Wd >= 1 )
pbSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, ( ( predSamplesL0[ x ][ y ] * w0 + 2log2Wd - 1 ) >> log2Wd ) + o0 ) (1020)
else
pbSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, predSamplesL0[ x ][ y ] * w0 + o0 )
- そうではなく、predFlagL0が0に等しく、かつpredFlagL1が1に等しい場合、予測サンプル値は次のように導出される。
if( log2Wd >= 1 )
pbSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, ( ( predSamplesL1[ x ][ y ] * w1 + 2log2Wd - 1 ) >> log2Wd ) + o1 ) (1021)
else
pbSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, predSamplesL1[ x ][ y ] * w1 + o1 )
- そうでない(predFlagL0が1に等しく、かつpredFlagL1が1に等しい)場合、予測サンプル値は次のように導出される。
pbSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, ( predSamplesL0[ x ][ y ] * w0 + predSamplesL1[ x ][ y ] * w1 + ( ( o0 + o1 + 1 ) << log2Wd ) ) >> ( log2Wd + 1 ) ) (1022)
実施形態8は、非矩形マージモード(たとえば、GEOモード)の存在を示す変数の検査を備える、マージデータパラメータのシンタックスを開示する。シンタックス例が以下に与えられる。
Figure 2023510858000088
Figure 2023510858000089
変数MaxNumGeoMergeCandは、前の実施形態のうちのいずれかに従って導出される。
実施形態9は、MaxNumGeoMergeCand変数から導出される代替の変数SliceMaxNumGeoMergeCandを使用する。MaxNumGeoMergeCandの値は、より高いシグナリングレベル(すなわち、PH、PPS、またはSPS)において取得される。
この実施形態では、SliceMaxNumGeoMergeCandは、MaxNumGeoMergeCandの値およびスライスに対して実行される追加の検査に基づいて導出される。
- たとえば、SliceMaxNumGeoMergeCand = (num_l0_weighted_ref_pics>0 || num_l1_weighted_ref_pics>0) ? 0 : MaxNumGeoMergeCand。
実施形態10は、MaxNumGeoMergeCand値を決定するために以下の式を使用する、実施形態9の変形形態である。
SliceMaxNumGeoMergeCand = (!pic_inter_slice_present_flag) ? 0 : MaxNumGeoMergeCand
実施形態11は、実施形態4との組合せである。
以下のシンタックス表が規定される。
Figure 2023510858000090
変数MaxNumGeoMergeCandは次のように導出される。
SliceMaxNumGeoMergeCand = (!pic_inter_bipred_slice_present_flag) ? 0 : MaxNumGeoMergeCand
上記の説明に従って、以下の実施形態が詳細に本明細書で提供される。
図15は、一実施形態に係るコーディングの方法を示すフローチャートである。
図15に示す方法は、(たとえば、符号化されたビデオシーケンスの)現在のピクチャのためのビットストリームを取得するステップ(1510)を備える。現在のピクチャに対する第1のインジケータの値は、ビットストリームに従って(たとえば、ビットストリームの中に備えられたそれぞれのシンタックス要素を構文解析することによって)取得される(1520)。第1のインジケータは、(現在のピクチャのスライスの)スライスタイプを示す。さらに、方法は、ビットストリームに従って現在のピクチャに対する第2のインジケータの値を(たとえば、ビットストリームの中に備えられたそれぞれのシンタックス要素を構文解析することによって)取得するステップ(1530)を備え、第2のインジケータは、重み付き予測パラメータがビットストリームのピクチャヘッダの中に存在するのかそれともビットストリームのスライスヘッダの中に存在するのかを示す。
次いで、第1のインジケータの値が第1のプリセット値(たとえば、1)に等しく、かつ第2のインジケータの値が、重み付き予測パラメータがビットストリームのピクチャヘッダの中に存在するのかそれともビットストリームのスライスヘッダの中に存在するのかを示す第2のプリセット値(たとえば、2)に等しいとき、ビットストリームから現在のブロックに対して重み付き予測パラメータの値が構文解析され(1540)、現在のブロックは、現在のピクチャの現在のスライスの中に備えられる。第1のプリセット値は整数値であり、第2のプリセット値は整数値である。次いで、構文解析された重み付き予測パラメータの値に従って現在のブロックが予測される(1550)(現在のブロックに対して予測ブロックが生成される)。
別の実施形態に係るコーディングの方法が図16aおよび図16bに示される。
この方法は、(たとえば、符号化されたビデオシーケンスの)現在のピクチャのためのビットストリームを取得するステップ(1610)を備える。いくつかのインジケータ値が取得される。したがって、この方法は、ビットストリームに従って現在のピクチャに対する第1のインジケータの値を(たとえば、ビットストリームの中に備えられたそれぞれのシンタックス要素を構文解析することによって)取得すること(1620)であって、第1のインジケータが(現在のピクチャのスライスの)スライスタイプを示す、第1のインジケータの値を取得すること(1620)と、ビットストリームに従って現在のピクチャに対する第2のインジケータの値を(たとえば、ビットストリームの中に備えられたそれぞれのシンタックス要素を構文解析することによって)取得すること(1630)であって、第2のインジケータが、重み付き予測パラメータがビットストリームのピクチャヘッダの中に存在するのかそれともビットストリームのスライスヘッダの中に存在するのかを示す、第2のインジケータの値を取得すること(1630)と、ビットストリームに従って現在のピクチャに対する第3のインジケータの値を(たとえば、ビットストリームの中に備えられたそれぞれのシンタックス要素を構文解析することによって)取得すること(1640)であって、第3のインジケータが、インタースライスに重み付き予測が適用可能であるかどうかを示し、インタースライスのスライスタイプがBスライスまたはPスライスである、第3のインジケータの値を取得すること(1640)とを含む。
次いで、a)第1のインジケータの値が第1のプリセット値(たとえば、1)に等しく、b)第2のインジケータの値が第2のプリセット値(たとえば、1)に等しく、かつc)第3のインジケータの値が、インタースライスに重み付き予測が適用可能であることを示すとき、ビットストリームから現在のブロックに対して重み付き予測パラメータの値が構文解析され(1650)、現在のブロックは、現在のピクチャの現在のスライスの中に備えられ、第1のプリセット値は整数値であり、第2のプリセット値は整数値である。重み付き予測パラメータの構文解析された値に従って現在のブロックが予測される(1660)(現在のブロックに対して予測ブロックが生成される)。
上記で説明した方法は、以下で説明するように復号デバイスの中に埋め込まれてよい。
図17に示すように復号デバイス1700が提供される。復号デバイス1700は、ビットストリーム取得ユニット1710、インジケータ値取得ユニット1720、構文解析ユニット1730、および予測ユニット1740を備える。
ビットストリーム取得ユニット1710は、現在のピクチャのためのビットストリームを取得するように構成される。
一実施形態によれば、インジケータ値取得ユニット1720は、
a)ビットストリームに従って現在のピクチャに対する第1のインジケータの値を取得することであって、第1のインジケータがスライスタイプを示す、第1のインジケータの値を取得することと、
b)ビットストリームに従って現在のピクチャに対する第2のインジケータの値を取得することであって、第2のインジケータが、重み付き予測パラメータがビットストリームのピクチャヘッダの中に存在するのかそれともビットストリームのスライスヘッダの中に存在するのかを示す、第2のインジケータの値を取得することと
を行うように構成される。
この場合、構文解析ユニット1730は、第1のインジケータの値が第1のプリセット値(たとえば、1)に等しく、かつ第2のインジケータの値が第2のプリセット値(たとえば、1)に等しいとき、ビットストリームから現在のブロックに対する重み付き予測パラメータの値を構文解析するように構成され、現在のブロックは、現在のピクチャの現在のスライスの中に備えられ、第1のプリセット値は整数値であり、第2のプリセット値は整数値であり、予測ユニットは、重み付き予測パラメータの値に従って現在のブロックを予測するように構成される。
別の実施形態によれば、インジケータ値取得ユニット1720は、
a)ビットストリームに従って現在のピクチャに対する第1のインジケータの値を取得することであって、第1のインジケータがスライスタイプを示す、第1のインジケータの値を取得することと、
b)ビットストリームに従って現在のピクチャに対する第2のインジケータの値を取得することであって、第2のインジケータが、重み付き予測パラメータがビットストリームのピクチャヘッダの中に存在するのかそれともビットストリームのスライスヘッダの中に存在するのかを示す、第2のインジケータの値を取得することと、
c)ビットストリームに従って現在のピクチャに対する第3のインジケータの値を取得することであって、第3のインジケータが、インタースライスに重み付き予測が適用可能であるかどうかを示し、インタースライスのスライスタイプがBスライスまたはPスライスである、第3のインジケータの値を取得することと
を行うように構成される。
この場合、構文解析ユニット1730は、第1のインジケータの値が第1のプリセット値(たとえば、1)に等しく、第2のインジケータの値が第2のプリセット値(たとえば、1)に等しく、かつ第3のインジケータの値が、インタースライスに重み付き予測が適用可能であることを示すとき、ビットストリームから現在のブロックに対する重み付き予測パラメータの値を構文解析するように構成され、現在のブロックは、現在のピクチャの現在のスライスの中に備えられ、第1のプリセット値は整数値であり、第2のプリセット値は整数値であり、予測ユニット1740は、重み付き予測パラメータの値に従って現在のブロックを予測するように構成される。
図17に示す復号デバイス1700は、図1A、図1B、および図3に示すデコーダ30、ならびに図11に示すビデオデコーダ3206であってよく、またはそれらによって備えられてもよい。図17に示す復号デバイス1700は、図4に示すビデオコーディングデバイス400、図5に示す装置500、図10に示す端末デバイス3106、図13に示す装置1300、および図14に示す装置1400によって備えられてよい。
以下のことは、符号化方法、ならびに上述の実施形態に示すような復号方法、およびそれらを使用するシステムの、適用例の説明である。
図10は、コンテンツ配信サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、キャプチャデバイス3102、端末デバイス3106を含み、ディスプレイ3126を任意選択で含む。キャプチャデバイス3102は、通信リンク3104を介して端末デバイス3106と通信する。通信リンクは、上記で説明した通信チャネル13を含んでよい。通信リンク3104は、限定はしないが、WIFI、Ethernet、ケーブル、ワイヤレス(3G/4G/5G)、USB、またはそれらの任意の種類の組合せなどを含む。
キャプチャデバイス3102は、データを生成し、上記の実施形態で示すような符号化方法によってデータを符号化し得る。代替として、キャプチャデバイス3102は、ストリーミングサーバ(図に示さず)にデータを配信してよく、サーバは、データを符号化し、符号化されたデータを端末デバイス3106へ送信する。キャプチャデバイス3102は、限定はしないが、カメラ、スマートフォンもしくはパッド、コンピュータもしくはラップトップ、ビデオ会議システム、PDA、車両搭載型デバイス、またはそれらのうちのいずれかの組合せなどを含む。たとえば、キャプチャデバイス3102は、上記で説明したようなソースデバイス12を含んでよい。データがビデオを含むとき、キャプチャデバイス3102の中に含まれるビデオエンコーダ20が、実際にビデオ符号化処理を実行し得る。データがオーディオ(すなわち、音声)を含むとき、キャプチャデバイス3102の中に含まれるオーディオエンコーダが、実際にオーディオ符号化処理を実行し得る。いくつかの実際的なシナリオに対して、キャプチャデバイス3102は、符号化されたビデオおよびオーディオデータを、それらを一緒に多重化することによって配信する。他の実際的なシナリオに対して、たとえば、ビデオ会議システムでは、符号化されたオーディオデータおよび符号化されたビデオデータは多重化されない。キャプチャデバイス3102は、符号化されたオーディオデータおよび符号化されたビデオデータを端末デバイス3106に別々に配信する。
コンテンツ供給システム3100において、端末デバイス310は、符号化されたデータを受信および再生する。端末デバイス3106は、上述の符号化されたデータを復号することが可能な、スマートフォンもしくはパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、セットトップボックス(STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、携帯情報端末(PDA)3122、車両搭載型デバイス3124、またはそれらのうちのいずれかの組合せなどの、データ受信および復元能力を有するデバイスであり得る。たとえば、端末デバイス3106は、上記で説明したような宛先デバイス14を含んでよい。符号化されたデータがビデオを含むとき、端末デバイスの中に含まれるビデオデコーダ30は、ビデオ復号を実行するように優先させられる。符号化されたデータがオーディオを含むとき、端末デバイスの中に含まれるオーディオデコーダは、オーディオ復号処理を実行するように優先させられる。
そのディスプレイを有する端末デバイス、たとえば、スマートフォンもしくはパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、携帯情報端末(PDA)3122、または車両搭載型デバイス3124の場合、端末デバイスは、そのディスプレイに復号データを供給することができる。ディスプレイが装備されない端末デバイス、たとえば、STB3116、ビデオ会議システム3118、またはビデオ監視システム3120の場合、復号データを受信および表示するために外部ディスプレイ3126がそこに接触される。
このシステムの中の各デバイスが符号化または復号を実行するとき、上述の実施形態に示すようにピクチャ符号化デバイスまたはピクチャ復号デバイスが使用され得る。
図11は、端末デバイス3106の一例の構造を示す図である。端末デバイス3106がキャプチャデバイス3102からストリームを受信した後、プロトコル進行ユニット3202がストリームの伝送プロトコルを分析する。プロトコルは、限定はしないが、リアルタイムストリーミングプロトコル(RTSP)、ハイパーテキスト転送プロトコル(HTTP)、HTTPライブストリーミングプロトコル(HLS)、MPEG-DASH、リアルタイムトランスポートプロトコル(RTP)、リアルタイムメッセージングプロトコル(RTMP)、またはそれらの任意の種類の組合せなどを含む。
プロトコル進行ユニット3202がストリームを処理した後、ストリームファイルが生成される。ファイルは多重化解除ユニット3204に出力される。多重化解除ユニット3204は、多重化されたデータを符号化されたオーディオデータおよび符号化されたビデオデータに分離することができる。上記で説明したように、いくつかの実際的なシナリオに対して、たとえば、ビデオ会議システムでは、符号化されたオーディオデータおよび符号化されたビデオデータは多重化されない。この状況では、符号化されたデータは、多重化解除ユニット3204を通すことなくビデオデコーダ3206およびオーディオデコーダ3208へ送信される。
多重化解除処理を介して、ビデオエレメンタリストリーム(ES:Elementary Stream)、オーディオES、および任意選択でサブタイトルが生成される。上述の実施形態で説明したようなビデオデコーダ30を含むビデオデコーダ3206は、上述の実施形態で示すような復号方法によってビデオESを復号してビデオフレームを生成し、このデータを同期ユニット3212に供給する。オーディオデコーダ3208は、オーディオESを復号してオーディオフレームを生成し、このデータを同期ユニット3212に供給する。代替として、ビデオフレームは、それを同期ユニット3212に供給する前にバッファ(図11に示さず)の中に記憶し得る。同様に、オーディオフレームは、それを同期ユニット3212に供給する前にバッファ(図11に示さず)の中に記憶し得る。
同期ユニット3212は、ビデオフレームとオーディオフレームとを同期させ、ビデオ/オーディオをビデオ/オーディオディスプレイ3214に供給する。たとえば、同期ユニット3212は、ビデオの提示とオーディオ情報とを同期させる。情報は、コーディングされたオーディオおよびビジュアルデータの提示に関係するタイムスタンプ、ならびにデータストリーム自体の配信に関係するタイムスタンプを使用して、シンタックスの中でコーディングし得る。
ストリームの中にサブタイトルが含まれる場合、サブタイトルデコーダ3210が、サブタイトルを復号し、それをビデオフレームおよびオーディオフレームと同期させ、ビデオ/オーディオ/サブタイトルをビデオ/オーディオ/サブタイトルディスプレイ3216に供給する。
本発明は上述のシステムに限定されず、上述の実施形態におけるピクチャ符号化デバイスまたはピクチャ復号デバイスのいずれかは、他のシステム、たとえば、自動車システムの中に組み込まれ得る。
数学演算子
本出願において使用される数学演算子は、Cプログラミング言語において使用されるものと類似である。しかしながら、整数除算および算術シフト演算の結果がより精密に定義され、累乗および実数値除算などの追加の演算が定義される。番号付け規約および計数規約は、概して、0から始まり、たとえば、「第1」が0番目と等価であり「第2」が1番目と等価などである。
算術演算子
以下の算術演算子は以下のように定義される。
+ 加算。
- 減算(引数が2つの演算子として)または符号反転(単項前置演算子として)。
* 乗算、行列乗算を含む。
xy 累乗。xのy乗を指定する。他のコンテキストでは、そのような表記法は、累乗としての解釈を対象とはしない上付き文字にするために使用される。
/ 結果の0への切り捨てを伴う整数除算。たとえば、7/4および-7/-4は1に切り捨てられ、-7/4および7/-4は-1に切り捨てられる。
÷ 切り捨てまたは丸めを対象としない、数式における除算を示すために使用される。
Figure 2023510858000091
切り捨てまたは丸めを対象としない、数式における除算を示すために使用される。
Figure 2023510858000092
iがxから(それを含む)yまでのすべての整数値をとる、f(i)の合計。
x % y 法。x>=0かつy>0となる整数xおよびyのみに対して定義される、xをyで除算した剰余。
論理演算子
以下の論理演算子は以下のように定義される。
x && y xとyとの、ブール論理の「論理積」。
x || y xとyとの、ブール論理の「論理和」。
! ブール論理の「否定」。
x ? y : z xがTRUE、すなわち0に等しくない場合、yの値を求め、そうでない場合、zの値を求める。
関係演算子
以下の関係演算子は以下のように定義される。
> よりも大きい。
>= 以上。
< よりも小さい。
<= 以下。
== 等しい。
!= 等しくない。
値「na」(適用不可)が割り当てられているシンタックス要素または変数に関係演算子が適用されるとき、値「na」は、そのシンタックス要素または変数に対する特異な値として扱われる。値「na」は、いかなる他の値にも等しくないものと見なされる。
ビット単位演算子
以下のビット単位演算子は以下のように定義される。
& ビット単位の「論理積」。整数の引数に対して演算するとき、整数値の2の補数表現に対して演算する。別の引数よりも少ないビットを含む2進数の引数に対して演算するとき、短い方の引数は、0に等しいさらなる有効ビットを追加することによって拡張される。
| ビット単位の「論理和」。整数の引数に対して演算するとき、整数値の2の補数表現に対して演算する。別の引数よりも少ないビットを含む2進数の引数に対して演算するとき、短い方の引数は、0に等しいさらなる有効ビットを追加することによって拡張される。
^ ビット単位の「排他的論理和」。整数の引数に対して演算するとき、整数値の2の補数表現に対して演算する。別の引数よりも少ないビットを含む2進数の引数に対して演算するとき、短い方の引数は、0に等しいさらなる有効ビットを追加することによって拡張される。
x >> y xの2の補数整数表現の、2進数のy桁だけの算術右シフト。この関数は、yの非負の整数値のみに対して定義される。右シフトの結果として最上位ビット(MSB)の中にシフトされるビットは、そのシフト演算の前のxのMSBに等しい値を有する。
x << y xの2の補数整数表現の、2進数のy桁だけの算術左シフト。この関数は、yの非負の整数値のみに対して定義される。左シフトの結果として最下位ビット(LSB)の中にシフトされるビットは、0に等しい値を有する。
割当て演算子
以下の算術演算子は以下のように定義される。
= 割当て演算子。
++ インクリメント、すなわち、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)と等価である。
範囲表記法
値の範囲を指定するために以下の表記法が使用される。
x=y..z xは、yから始まりzまでの(両端値を含む)整数値をとり、x、y、およびzは整数であり、zはyよりも大きい。
数学関数
以下の数学関数が定義される。
Figure 2023510858000093
Asin(x) -1.0~1.0(両端値を含む)という範囲の中にある引数xに対して演算し、ラジアンの単位での-π÷2~π÷2(両端値を含む)という範囲の中の出力値を有する、三角法の逆正弦関数。
Atan(x) 引数xに対して演算し、ラジアンの単位での-π÷2~π÷2(両端値を含む)という範囲の中の出力値を有する、三角法の逆正接関数。
Figure 2023510858000094
Ceil(x) x以上の最小の整数。
Figure 2023510858000095
Cos(x) ラジアンの単位での引数xに対して演算する、三角法の余弦関数。
Floor(x) x以下の最大の整数。
Figure 2023510858000096
Ln(x) xの自然対数(eを底とする対数、ただし、eは自然対数の底定数、2.718 281 828...である)。
Log2(x) 2を底とするxの対数。
Log10(x) 10を底とするxの対数。
Figure 2023510858000097
Round( x ) = Sign( x ) * Floor( Abs( x ) + 0.5 )
Figure 2023510858000098
Sin(x) ラジアンの単位での引数xに対して演算する、三角法の正弦関数。
Figure 2023510858000099
Swap( x, y ) = ( y, x )
Tan(x) ラジアンの単位での引数xに対して演算する、三角法の正接関数。
演算順位の順序
式における順位の順序が丸括弧の使用によって明示的には示されないとき、以下の規則が適用される。
- より高い順位の演算は、より低い順位の任意の演算の前に評価される。
- 同じ順位の演算は、左から右へ連続的に評価される。
以下の表は、最高から最低までの演算の順位を指定し、表の中のより高い位置がより高い順位を示す。
Cプログラミング言語においても使用される演算子に対して、本明細書において使用される順位の順序は、Cプログラミング言語において使用されるのと同じである。
Figure 2023510858000100
論理演算のテキスト記述
テキストの中で、以下の形式で数学的に記述されることになるような論理演算のステートメント、すなわち、
if(条件0)
ステートメント0
else if(条件1)
ステートメント1
...
else /* 残りの条件における報知的な言及 */
ステートメントn
は、以下のようにして説明され得る。
...以下のように/...以下が適用される
- 条件0の場合、ステートメント0
- そうではなく、条件1の場合、ステートメント1
- ...
- 他の場合(残りの条件における報知的な言及)、ステートメントn。
テキストの中の各「...の場合、そうではなく...の場合、他の場合...」というステートメントは、「...以下のように」または「...以下が適用される」およびその直後に来る「...の場合」とともに始められる。「...の場合、そうではなく...の場合、他の場合...」の最後の条件は、常に「他の場合...」である。交互に配置された「...の場合、そうではなく...の場合、他の場合...」というステートメントは、「...以下のように」または「...以下が適用される」を、終わりに来る「他の場合...」に整合させることによって識別され得る。
テキストの中で、以下の形式で数学的に記述されることになるような論理演算のステートメント、すなわち、
if(条件0a && 条件0b)
ステートメント0
else if(条件1a || 条件1b)
ステートメント1
...
else
ステートメントn
は、以下のようにして説明され得る。
...以下のように/...以下が適用される
- 次の条件のすべてが真である場合、ステートメント0:
- 条件0a
- 条件0b
- そうではなく、以下の条件のうちの1つまたは複数が真である場合、ステートメント1:
- 条件1a
- 条件1b
- ...
- 他の場合、ステートメントn
テキストの中で、以下の形式で数学的に記述されることになるような論理演算のステートメント、すなわち、
if(条件0)
ステートメント0
if(条件1)
ステートメント1
は、以下のようにして説明され得る。
条件0のとき、ステートメント0
条件1のとき、ステートメント1。
たとえば、エンコーダ20およびデコーダ30の実施形態、ならびに、たとえば、エンコーダ20およびデコーダ30を参照しながら本明細書で説明する関数は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されてよく、または通信媒体を介して送信されてもよく、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に相当するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含んでよい。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に相当し得る。データ記憶媒体は、本開示で説明する技法の実施のための命令、コード、および/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であってよい。コンピュータプログラム製品がコンピュータ可読媒体を含んでよい。
例として、かつ非限定的に、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、フラッシュメモリ、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され得るとともに、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義の中に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびBlu-rayディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の物の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の均等な集積論理回路構成もしくは個別論理回路構成などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造または本明細書で説明する技法を実施するのに適している任意の他の構造のうちのいずれかを指してよい。加えて、いくつかの態様では、本明細書で説明する機能は、符号化および復号するために構成された専用のハードウェアおよび/もしくはソフトウェアモジュール内で提供され得るか、または組み合わせられたコーデックの中に組み込まれ得る。また、技法は、1つまたは複数の回路または論理要素の中で完全に実施され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置の中で実施され得る。様々な構成要素、モジュール、またはユニットは、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために本開示で説明されるが、異なるハードウェアユニットによる実現を必ずしも必要とするとは限らない。むしろ、上記で説明したように、様々なユニットが、コーデックハードウェアユニットの中で組み合わせられてよく、あるいは上記で説明したような1つまたは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって、好適なソフトウェアおよび/またはファームウェアとともに提供されてよい。
本発明のさらなる実施形態が以下で提供される。以下のセクションの中で使用される番号付けが、前のセクションの中で使用された番号付けに必ずしも従う必要がないことに留意されたい。
実施形態1: ピクチャのブロックのインター予測の方法であって、重み付き予測パラメータ、および非矩形インター予測の有効化の、シグナリングが、予測ブロックのグループに対して実行され、方法は、ブロックのためのインター予測モードパラメータを取得することであって、取得することが、予測ブロックを備えるブロックのグループに対して非矩形インター予測モードが有効化されているかどうかの検査を備える、インター予測モードパラメータを取得することと、ブロックに対して示されている参照ピクチャおよびブロックのグループに対して指定された重み付き予測パラメータに関して、ブロックに関連する重み付き予測パラメータおよびブロックのためのインター予測モードパラメータを取得することとを含む。
実施形態2: 実施形態1の方法であって、非矩形インター予測の有効化は、1よりも大きい三角形マージ候補の最大数(MaxNumTriangleMergeCand)を示すことによって実行される。
実施形態3: 実施形態1または2の方法であって、重み付き予測パラメータが、少なくとも1つの参照インデックスに対して、有効化された重み付き予測を指定するとき、非矩形インター予測は無効化されるものと推測される。
実施形態4: 任意の実施形態1~3の方法であって、ブロックのグループはピクチャであり、重み付き予測パラメータとインター予測非矩形モードパラメータの有効化の両方が、ピクチャヘッダの中で示される。
実施形態5: 任意の実施形態1~4の方法であって、ブロックのグループはスライスであり、重み付き予測パラメータとインター予測非矩形モードパラメータの有効化の両方が、スライスヘッダにおいて示される。
実施形態6: 任意の実施形態1~5の方法であって、インター予測モードパラメータは、参照ピクチャ、および参照ピクチャの中の参照ブロックの位置を決定するために使用される動きベクトル情報を決定するために使用される、参照インデックスを備える。
実施形態7: 任意の実施形態1~6の方法であって、非矩形マージモードは三角形区分モードである。
実施形態8: 任意の実施形態1~7の方法であって、非矩形マージモードはGEOモードである。
実施形態9: 任意の実施形態1~8の方法であって、重み付き予測は、(大域重み付き予測などの)スライスレベルのルミナンス補償メカニズムである。
実施形態10: 任意の実施形態1~9の方法であって、重み付き予測は、局所照明補償(LIC:local illumination compensation)などのブロックレベルのルミナンス補償メカニズムである。
実施形態11: 任意の実施形態1~10の方法であって、重み付き予測パラメータは、予測ブロックのルーマ成分およびクロマ成分に重み付き予測が適用されるかどうかを示すフラグのセット、予測ブロックの値の線形変換を指定する線形モデルパラメータ\alphaおよび\bettaを備える。
本出願の第1の態様では、図12に示すように、S1201:ブロックのグループに対して非矩形インター予測モードが許容されるかどうかを決定することと、S1202:ブロックのグループのための1つまたは複数のインター予測モードパラメータおよび重み付き予測パラメータを取得することと、S1203:1つまたは複数のインター予測モードパラメータおよび重み付き予測パラメータに基づいて現在のブロックの予測値を取得することとを含む、インター予測方法1200が開示され、インター予測モードパラメータのうちの1つは、現在のブロックのための参照ピクチャ情報を示し、ブロックのグループは、現在のブロックを備える。
実現可能な一実装形態では、参照ピクチャ情報は、参照ピクチャインデックスに対して重み付き予測が有効化されているかどうかを備え、重み付き予測が有効化されている場合、非矩形インター予測モードは無効化される。
実現可能な一実装形態では、重み付き予測が無効化されている場合、非矩形インター予測モードは有効化される。
実現可能な一実装形態では、非矩形インター予測モードが許容されることを決定することは、三角形マージ候補の最大数(MaxNumTriangleMergeCand)が1よりも大きいことを示すことを含む。
実現可能な一実装形態では、ブロックのグループはピクチャからなり、重み付き予測パラメータ、および非矩形インター予測モードが許容されることを決定するための表示情報は、ピクチャのピクチャヘッダの中にある。
実現可能な一実装形態では、ブロックのグループはスライスからなり、重み付き予測パラメータ、および非矩形インター予測モードが許容されることを決定するための表示情報は、スライスのスライスヘッダの中にある。
実現可能な一実装形態では、非矩形インター予測モードは三角形区分モードである。
実現可能な一実装形態では、非矩形インター予測モードは幾何学的(GEO)区分モードである。
実現可能な一実装形態では、重み付き予測パラメータはスライスレベルのルミナンス補償のために使用される。
実現可能な一実装形態では、重み付き予測パラメータはブロックレベルのルミナンス補償のために使用される。
実現可能な一実装形態では、重み付き予測パラメータは、予測ブロックのルーマ成分および/またはクロマ成分に重み付き予測が適用されるかどうかを示すフラグ、ならびに予測ブロックの値の線形変換を指定する線形モデルパラメータを備える。
本出願の第2の態様では、図13に示すように、その上に記憶されたプロセッサ実行可能命令を有する非一時的メモリ1301と、本出願の第1の態様における実現可能な実装形態のうちのいずれか1つを容易にするためのプロセッサ実行可能命令を実行するように構成される、メモリ1301に結合されたプロセッサ1302とを備える、インター予測のための装置1300。
本出願の第3の態様では、インター予測のためのビットストリームは、ブロックのグループに対して非矩形インター予測モードが許容されるかどうかを決定するための表示情報、ならびにブロックのグループのための1つまたは複数のインター予測モードパラメータおよび重み付き予測パラメータを備え、現在のブロックの予測値は、1つまたは複数のインター予測モードパラメータおよび重み付き予測パラメータに基づいて取得され、インター予測モードパラメータのうちの1つは、現在のブロックのための参照ピクチャ情報を示し、ブロックのグループは、現在のブロックを備える。
実現可能な一実装形態では、参照ピクチャ情報は、参照ピクチャインデックスに対して重み付き予測が有効化されているかどうかを備え、重み付き予測が有効化されている場合、非矩形インター予測モードは無効化される。
実現可能な一実装形態では、重み付き予測が無効化されている場合、非矩形インター予測モードは有効化される。
実現可能な一実装形態では、表示情報は、三角形マージ候補の最大数(MaxNumTriangleMergeCand)が1よりも大きいことを含む。
実現可能な一実装形態では、ブロックのグループはピクチャからなり、重み付き予測パラメータおよび表示情報は、ピクチャのピクチャヘッダの中にある。
実現可能な一実装形態では、ブロックのグループはスライスからなり、重み付き予測パラメータおよび表示情報は、スライスのスライスヘッダの中にある。
実現可能な一実装形態では、非矩形インター予測モードは三角形区分モードである。
実現可能な一実装形態では、非矩形インター予測モードは幾何学的(GEO)区分モードである。
実現可能な一実装形態では、重み付き予測パラメータはスライスレベルのルミナンス補償のために使用される。
実現可能な一実装形態では、重み付き予測パラメータはブロックレベルのルミナンス補償のために使用される。
実現可能な一実装形態では、重み付き予測パラメータは、予測ブロックのルーマ成分および/またはクロマ成分に重み付き予測が適用されるかどうかを示すフラグ、ならびに予測ブロックの値の線形変換を指定する線形モデルパラメータを備える。
本出願の第4の態様では、図14に示すように、ブロックのグループに対して非矩形インター予測モードが許容されるかどうかを決定するように構成された、決定モジュール1401と、ブロックのグループのための1つまたは複数のインター予測モードパラメータおよび重み付き予測パラメータを取得するように構成された、取得モジュール1402と、1つまたは複数のインター予測モードパラメータおよび重み付き予測パラメータに基づいて現在のブロックの予測値を取得するように構成された、予測モジュール1403とを備える、インター予測装置1400が開示され、インター予測モードパラメータのうちの1つは、現在のブロックのための参照ピクチャ情報を示し、ブロックのグループは、現在のブロックを備える。
実現可能な一実装形態では、参照ピクチャ情報は、参照ピクチャインデックスに対して重み付き予測が有効化されているかどうかを備え、重み付き予測が有効化されている場合、非矩形インター予測モードは無効化される。
実現可能な一実装形態では、重み付き予測が無効化されている場合、非矩形インター予測モードは有効化される。
実現可能な一実装形態では、決定モジュール1401は、三角形マージ候補の最大数(MaxNumTriangleMergeCand)が1よりも大きいことを示すように特に構成される。
実現可能な一実装形態では、ブロックのグループはピクチャからなり、重み付き予測パラメータ、および非矩形インター予測モードが許容されることを決定するための表示情報は、ピクチャのピクチャヘッダの中にある。
実現可能な一実装形態では、ブロックのグループはスライスからなり、重み付き予測パラメータ、および非矩形インター予測モードが許容されることを決定するための表示情報は、スライスのスライスヘッダの中にある。
実現可能な一実装形態では、非矩形インター予測モードは三角形区分モードである。
実現可能な一実装形態では、非矩形インター予測モードは幾何学的(GEO)区分モードである。
実現可能な一実装形態では、重み付き予測パラメータはスライスレベルのルミナンス補償のために使用される。
実現可能な一実装形態では、重み付き予測パラメータはブロックレベルのルミナンス補償のために使用される。
実現可能な一実装形態では、重み付き予測パラメータは、予測ブロックのルーマ成分および/またはクロマ成分に重み付き予測が適用されるかどうかを示すフラグ、ならびに予測ブロックの値の線形変換を指定する線形モデルパラメータを備える。
さらに、実際の適用例に適するものと見なされるときに互いに任意に組み合わせられる場合がある、以下の実施形態/態様が、本明細書で提供される。それらは、次のように新たに列挙および記載される。
本出願の第1の態様では、インター予測方法は、ブロックのグループに対して非矩形インター予測モードが許容されるかどうかを決定することと、ブロックのグループのための1つまたは複数のインター予測モードパラメータおよび重み付き予測パラメータを取得することと、1つまたは複数のインター予測モードパラメータおよび重み付き予測パラメータに基づいて現在のブロックの予測値を取得することとを含み、インター予測モードパラメータのうちの1つは、現在のブロックのための参照ピクチャ情報を示し、ブロックのグループは、現在のブロックを備える。
実現可能な一実装形態では、参照ピクチャ情報は、参照ピクチャインデックスに対して重み付き予測が有効化されているかどうかを備え、重み付き予測が有効化されている場合、非矩形インター予測モードは無効化される。
実現可能な一実装形態では、重み付き予測が無効化されている場合、非矩形インター予測モードは有効化される。
実現可能な一実装形態では、非矩形インター予測モードが許容されることを決定することは、三角形マージ候補の最大数(MaxNumTriangleMergeCand)が1よりも大きいことを示すことを含む。
実現可能な一実装形態では、ブロックのグループはピクチャからなり、重み付き予測パラメータ、および非矩形インター予測モードが許容されることを決定するための表示情報は、ピクチャのピクチャヘッダの中にある。
実現可能な一実装形態では、ブロックのグループはスライスからなり、重み付き予測パラメータ、および非矩形インター予測モードが許容されることを決定するための表示情報は、スライスのスライスヘッダの中にある。
実現可能な一実装形態では、非矩形インター予測モードは三角形区分モードである。
実現可能な一実装形態では、非矩形インター予測モードは幾何学的(GEO)区分モードである。
実現可能な一実装形態では、マージモードに対する候補の個数に関係するシンタックス要素(非矩形インター予測を決定するための表示情報)が、シーケンスパラメータセット(SPS)の中でシグナリングされる。ここで、ピクチャがちょうど1つのスライスを備えるとき、ピクチャヘッダはスライスヘッダの中でシグナリングされ得る。
実現可能な一実装形態では、ピクチャがちょうど1つのスライスを備えるとき、ピクチャヘッダはスライスヘッダの中でシグナリングされる。
実現可能な一実装形態では、ピクチャパラメータセットはフラグを備え、フラグの値は、重み付き予測パラメータがピクチャヘッダの中に存在するのかそれともスライスヘッダの中に存在するのかを規定する。
実現可能な一実装形態では、ピクチャヘッダの中のフラグは、非イントラタイプのスライスが存在するかどうか、およびこのスライスのためにインター予測モードパラメータがシグナリングされるかどうかを示す。
実現可能な一実装形態では、重み付き予測パラメータはスライスレベルのルミナンス補償のために使用される。
実現可能な一実装形態では、重み付き予測パラメータはブロックレベルのルミナンス補償のために使用される。
実現可能な一実装形態では、重み付き予測パラメータは、予測ブロックのルーマ成分および/またはクロマ成分に重み付き予測が適用されるかどうかを示すフラグ、ならびに予測ブロックの値の線形変換を指定する線形モデルパラメータを備える。
本出願の第2の態様では、インター予測のための装置は、その上に記憶されたプロセッサ実行可能命令を有する非一時的メモリと、本出願の第1の態様における実現可能な実装形態のうちのいずれか1つを容易にするためのプロセッサ実行可能命令を実行するように構成される、メモリに結合されたプロセッサとを備える。
本出願の第3の態様では、インター予測のためのビットストリームは、ブロックのグループに対して非矩形インター予測モードが許容されるかどうかを決定するための表示情報、ならびにブロックのグループのための1つまたは複数のインター予測モードパラメータおよび重み付き予測パラメータを備え、現在のブロックの予測値は、1つまたは複数のインター予測モードパラメータおよび重み付き予測パラメータに基づいて取得され、インター予測モードパラメータのうちの1つは、現在のブロックのための参照ピクチャ情報を示し、ブロックのグループは、現在のブロックを備える。
実現可能な一実装形態では、参照ピクチャ情報は、参照ピクチャインデックスに対して重み付き予測が有効化されているかどうかを備え、重み付き予測が有効化されている場合、非矩形インター予測モードは無効化される。
実現可能な一実装形態では、重み付き予測が無効化されている場合、非矩形インター予測モードは有効化される。
実現可能な一実装形態では、表示情報は、三角形マージ候補の最大数(MaxNumTriangleMergeCand)が1よりも大きいことを含む。
実現可能な一実装形態では、ブロックのグループはピクチャからなり、重み付き予測パラメータおよび表示情報は、ピクチャのピクチャヘッダの中にある。
実現可能な一実装形態では、ブロックのグループはスライスからなり、重み付き予測パラメータおよび表示情報は、スライスのスライスヘッダの中にある。
実現可能な一実装形態では、非矩形インター予測モードは三角形区分モードである。
実現可能な一実装形態では、非矩形インター予測モードは幾何学的(GEO)区分モードである。
実現可能な一実装形態では、重み付き予測パラメータはスライスレベルのルミナンス補償のために使用される。
実現可能な一実装形態では、重み付き予測パラメータはブロックレベルのルミナンス補償のために使用される。
実現可能な一実装形態では、重み付き予測パラメータは、予測ブロックのルーマ成分および/またはクロマ成分に重み付き予測が適用されるかどうかを示すフラグ、ならびに予測ブロックの値の線形変換を指定する線形モデルパラメータを備える。
本出願の第4の態様では、インター予測装置は、ブロックのグループに対して非矩形インター予測モードが許容されるかどうかを決定するように構成された、決定モジュールと、ブロックのグループのための1つまたは複数のインター予測モードパラメータおよび重み付き予測パラメータを取得するように構成された、取得モジュールと、1つまたは複数のインター予測モードパラメータおよび重み付き予測パラメータに基づいて現在のブロックの予測値を取得するように構成された、予測モジュールとを備え、インター予測モードパラメータのうちの1つは、現在のブロックのための参照ピクチャ情報を示し、ブロックのグループは、現在のブロックを備える。
実現可能な一実装形態では、参照ピクチャ情報は、参照ピクチャインデックスに対して重み付き予測が有効化されているかどうかを備え、重み付き予測が有効化されている場合、非矩形インター予測モードは無効化される。
実現可能な一実装形態では、重み付き予測が無効化されている場合、非矩形インター予測モードは有効化される。
実現可能な一実装形態では、決定モジュールは、三角形マージ候補の最大数(MaxNumTriangleMergeCand)が1よりも大きいことを示すように特に構成される。
実現可能な一実装形態では、ブロックのグループはピクチャからなり、重み付き予測パラメータ、および非矩形インター予測モードが許容されることを決定するための表示情報は、ピクチャのピクチャヘッダの中にある。
実現可能な一実装形態では、ブロックのグループはスライスからなり、重み付き予測パラメータ、および非矩形インター予測モードが許容されることを決定するための表示情報は、スライスのスライスヘッダの中にある。
実現可能な一実装形態では、非矩形インター予測モードは三角形区分モードである。
実現可能な一実装形態では、非矩形インター予測モードは幾何学的(GEO)区分モードである。
実現可能な一実装形態では、重み付き予測パラメータはスライスレベルのルミナンス補償のために使用される。
実現可能な一実装形態では、重み付き予測パラメータはブロックレベルのルミナンス補償のために使用される。
実現可能な一実装形態では、重み付き予測パラメータは、予測ブロックのルーマ成分および/またはクロマ成分に重み付き予測が適用されるかどうかを示すフラグ、ならびに予測ブロックの値の線形変換を指定する線形モデルパラメータを備える。
さらに、以下の実施形態が本明細書で提供される。
1. ビデオシーケンスを符号化する方法であって、決定結果を取得するために、重み付き予測パラメータがピクチャヘッダの中に存在し得るのかそれともスライスヘッダの中に存在し得るのかを決定することと、
決定結果に応じて、重み付き予測パラメータがピクチャヘッダの中またはスライスヘッダの中に存在し得ることを、ピクチャパラメータセットの中のフラグによってシグナリングすることとを含む。
2. 実施形態1の方法であって、ピクチャパラメータセットの中のフラグが
1に等しいことは、重み付き予測パラメータが、ピクチャパラメータセットを参照するスライスヘッダの中に存在しないが、PPSを参照するピクチャヘッダの中に存在し得ることを指定し、ピクチャパラメータセットの中のフラグが0に等しいことは、重み付き予測パラメータが、ピクチャパラメータセットを参照するピクチャヘッダの中に存在しないが、ピクチャパラメータセットを参照するスライスヘッダの中に存在し得ることを指定する。
3. 実施形態1または2の方法であって、ピクチャヘッダの中で重み付き予測パラメータをシグナリングすることをさらに備える。
4. 先行する実施形態のうちのいずれかの方法であって、インタースライスが有効化されていることをピクチャヘッダの中の別のフラグが指定するときのみ、ピクチャヘッダの中で重み付き予測パラメータをシグナリングすることをさらに備える。
5. 符号化されたビデオシーケンスを復号し、ピクチャパラメータセットの中に備えられたフラグの値を取得するために符号化されたビデオシーケンスのビットストリームのピクチャパラメータセットを構文解析し、重み付き予測パラメータが符号化されたビデオシーケンスのピクチャヘッダの中または符号化されたビデオシーケンスのスライスヘッダの中に存在し得ることをフラグの取得された値に基づいて決定する方法。
6. 実施形態5の方法であって、ピクチャパラメータセットの中のフラグが
1に等しいことは、重み付き予測パラメータが、ピクチャパラメータセットを参照するスライスヘッダの中に存在しないが、PPSを参照するピクチャヘッダの中に存在し得ることを指定し、ピクチャパラメータセットの中のフラグが0に等しいことは、重み付き予測パラメータが、ピクチャパラメータセットを参照するピクチャヘッダの中に存在しないが、ピクチャパラメータセットを参照するスライスヘッダの中に存在し得ることを指定する。
7. 実施形態5または6の方法であって、構文解析されたピクチャヘッダから重み付き予測パラメータを取得するために、ビデオシーケンスのビットストリームのピクチャヘッダを構文解析することをさらに備える。
8. 実施形態5~7のうちのいずれかの方法であって、ビデオシーケンスのビットストリームのピクチャヘッダを構文解析し、ピクチャヘッダが別のフラグを備え、インタースライスが有効化されていることを他のフラグが指定するときのみ、構文解析されたピクチャヘッダから重み付き予測パラメータ重み付き予測パラメータを取得する、方法。
9. ビデオシーケンスのブロックのグループの現在のブロックのインター予測の方法であって、実施形態1~8のうちのいずれかのステップを備え、
ブロックのグループのための1つまたは複数のインター予測モードパラメータおよび重み付き予測パラメータを取得することと、
1つまたは複数のインター予測モードパラメータおよび重み付き予測パラメータに基づいて現在のブロックに対する予測値を取得することとをさらに備え、インター予測モードパラメータのうちの1つは、現在のブロックのための参照ピクチャ情報を示す。
10. 実施形態9の方法であって、参照ピクチャ情報は、参照ピクチャインデックスに対して重み付き予測が有効化されているかどうかについての情報を備え、重み付き予測が有効化されているとき、少なくとも1つの非矩形インター予測モードが無効化される。
11. 実施形態9または10の方法であって、重み付き予測が無効化されているとき、非矩形インター予測モードが有効化される。
12. 実施形態9~11のうちのいずれか1つの方法であって、ブロックのグループはピクチャからなり、非矩形インター予測モードが許容されるかどうかを決定するための情報は、ピクチャのピクチャヘッダの中にある。
13. 実施形態9~11のうちのいずれか1つの方法であって、ブロックのグループはスライスからなり、非矩形インター予測モードが許容されるかどうかを決定するための情報は、スライスのスライスヘッダの中にある。
14. 実施形態9~13のうちのいずれか1つの方法であって、非矩形インター予測モードは三角形区分モードである。
15. 実施形態9~13のうちのいずれか1つの方法であって、非矩形インター予測モードは幾何学的区分モードである。
16. 実施形態1~15のうちのいずれか1つの方法であって、ピクチャがちょうど1つのスライスを備えるとき、ピクチャヘッダはスライスヘッダの中でシグナリングされる。
17. 実施形態1~16のうちのいずれか1つの方法であって、重み付き予測パラメータはスライスレベルのルミナンス補償のために使用される。
18. 実施形態1~16のうちのいずれか1つの方法であって、重み付き予測パラメータはブロックレベルのルミナンス補償のために使用される。
19. 実施形態1~18のうちのいずれか1つの方法であって、重み付き予測パラメータは、
予測ブロックのルーマ成分および/またはクロマ成分に重み付き予測が適用されるかどうかを示すフラグ、ならびに
予測ブロックの値の線形変換を指定する線形モデルパラメータを備える。
20. その上に記憶されたプロセッサ実行可能命令を有する非一時的メモリと、実施形態1~19のうちのいずれか1つを容易にするためのプロセッサ実行可能命令を実行するように構成される、メモリに結合されたプロセッサとを備える
インター予測のための装置。
10 ビデオコーディングシステム
12 ソースデバイス
13 通信チャネル
14 宛先デバイス
16 ピクチャソース
17 ピクチャ、ピクチャデータ、未加工ピクチャ、未加工ピクチャデータ
18 プリプロセッサ、前処理ユニット
19 前処理済みのピクチャ、前処理済みのピクチャデータ
20 ビデオエンコーダ
21 符号化されたピクチャデータ
22 通信インターフェース、通信ユニット
28 通信インターフェース、通信ユニット
30 ビデオデコーダ、ショートデコーダ、デコーダ
31 復号されたピクチャ、復号されたピクチャデータ
32 ポストプロセッサ、後処理ユニット
33 後処理されたピクチャ、後処理されたピクチャデータ
34 ディスプレイデバイス
46 処理回路構成
201 入力部、入力インターフェース
203 ピクチャブロック
204 残差計算ユニット
205 残差ブロック、残差
206 変換処理ユニット
207 変換係数
208 量子化ユニット
209 量子化された係数、量子化変換係数、量子化残差係数
210 逆量子化ユニット
211 量子化解除された係数、逆量子化残差係数
212 逆変換処理ユニット
213 再構成された残差ブロック、対応する量子化解除された係数、変換ブロック
214 再構成ユニット
215 再構成されたブロック
216 バッファ
220 ループフィルタユニット
221 フィルタ処理済みのブロック、フィルタ処理済みの再構成されたブロック
230 復号されたピクチャバッファ
231 復号されたピクチャ
244 インター予測ユニット
254 イントラ予測ユニット
260 モード選択ユニット
262 区分ユニット
265 予測ブロック、予測子
266 シンタックス要素
270 エントロピー符号化ユニット
272 出力部、出力インターフェース
304 エントロピー復号ユニット
309 量子化された係数
310 逆量子化ユニット
311 変換係数、量子化解除された係数
312 逆変換処理ユニット
313 再構成された残差ブロック、変換ブロック
314 再構成ユニット、加算器
315 再構成されたブロック
320 ループフィルタユニット
321 フィルタ処理済みのブロック、ピクチャの復号されたビデオブロック
330 復号されたピクチャバッファ(DPB)
331 復号されたピクチャ
344 インター予測ユニット
354 イントラ予測ユニット
360 モード適用ユニット
365 予測ブロック
400 ビデオコーディングデバイス
410 入口ポート、入力ポート
420 受信機ユニット
430 プロセッサ、論理ユニット、中央処理ユニット
440 送信機ユニット
450 出口ポート、出力ポート
460 メモリ
470 コーディングモジュール
500 装置
502 プロセッサ
504 メモリ
506 コードおよびデータ
508 オペレーティングシステム
510 アプリケーションプログラム
512 バス
514 2次ストレージ
518 ディスプレイ
610 ビデオ分析
611 統計値
631 状態値
660 符号化エンジン
710、720 インター予測子
730、740 WPパラメータ
750 ブロック
810、820 ブロック
830、840 重みおよびオフセット
850 インター予測ブロック
851、852 予測子
901 インター予測子、ブロック
911、912 予測ブロック、予測子、ブロック
921 重複したエリア
931、932、933、934、935、936 ブロック
1300 装置
1301 非一時的メモリ
1302 プロセッサ
1400 インター予測装置
1401 決定モジュール
1402 取得モジュール
1403 予測モジュール
1700 復号デバイス
1710 ビットストリーム取得ユニット
1720 インジケータ値取得ユニット
1730 構文解析ユニット
1740 予測ユニット
3100 コンテンツ供給システム
3102 キャプチャデバイス
3104 通信リンク
3106 端末デバイス
3108 スマートフォン/パッド
3110 コンピュータ/ラップトップ
3112 ネットワークビデオレコーダ/デジタルビデオレコーダ
3114 TV
3116 セットトップボックス
3118 ビデオ会議システム
3120 ビデオ監視システム
3122 携帯情報端末
3124 車両搭載型デバイス
3126 ディスプレイ
3202 プロトコル進行ユニット
3204 多重化解除ユニット
3206 ビデオデコーダ
3208 オーディオデコーダ
3210 サブタイトルデコーダ
3212 同期ユニット
3214 ビデオ/オーディオディスプレイ
3216 ビデオ/オーディオ/サブタイトルディスプレイ
図1Aに示すように、コーディングシステム10は、たとえば、符号化されたピクチャデータ21を復号するための宛先デバイス14に、符号化されたピクチャデータ21を提供するように構成された、ソースデバイス12を備える。
通信インターフェース22および通信インターフェース28は、ソースデバイス12と宛先デバイス14との間の直接通信リンク、たとえば、直接有線接続または直接ワイヤレス接続を介して、あるいは任意の種類のネットワーク、たとえば、有線ネットワークもしくはワイヤレスネットワークもしくはそれらの任意の組合せ、または任意の種類のプライベートネットワークおよびパブリックネットワーク、またはそれらの任意の種類の組合せを介して、符号化されたピクチャデータ21または符号化されたデータ21を送信または受信するように構成され得る。
(デジタル)ピクチャは、強度値を有するサンプルの2次元のアレイまたは行列であるか、またはそのように見なされることがある。アレイの中のサンプルは、ピクセル(短い形式のピクチャ要素)またはペルと呼ばれることもある。アレイまたはピクチャの水平および垂直の方向(または、軸)におけるサンプルの個数は、ピクチャのサイズおよび/または解像度を規定する。色の表現のために、通常、3つの色成分が採用され、すなわち、ピクチャは、3つのサンプルアレイが表されてよく、またはそれらを含んでよい。RGBフォーマットまたは色空間の中で、ピクチャは、対応する赤色、緑色、および青色のサンプルアレイを備える。しかしながら、ビデオコーディングでは、各ピクセルは、通常、ルミナンスおよびクロミナンスのフォーマットまたは色空間、たとえば、YCbCrで表され、YCbCrは、Y(時々、代わりにLも使用される)によって示されるルミナンス成分、ならびにCbおよびCrによって示される2つのクロミナンス成分を備える。ルミナンス(または、ショートルーマ)成分Yは、輝度または(たとえば、グレースケールピクチャにおけるような)グレーレベル強度を表し、2つのクロミナンス(または、ショートクロマ)成分CbおよびCrは、色度または色情報成分を表す。したがって、YCbCrフォーマットをなすピクチャは、ルミナンスサンプル値(Y)のルミナンスサンプルアレイ、およびクロミナンス値(CbおよびCr)の2つのクロミナンスサンプルアレイを備える。RGBフォーマットをなすピクチャは、YCbCrフォーマットに変換(convert)または変換(transform)されてよく、逆も同様であり、そのプロセスは色変換(color transformation)または色変換(color conversion)とも呼ばれる。ピクチャがモノクロである場合、ピクチャはルミナンスサンプルアレイのみを備えてよい。したがって、ピクチャは、たとえば、モノクロフォーマットでのルーマサンプルのアレイ、または4:2:0、4:2:2、および4:4:4カラーフォーマットでの、ルーマサンプルのアレイおよびクロマサンプルの2つの対応するアレイであってよい。
逆変換
逆変換処理ユニット212は、変換処理ユニット206によって適用される変換の逆変換、たとえば、逆離散コサイン変換(DCT)もしくは逆離散サイン変換(DST)、または他の逆変換を適用して、サンプル領域における再構成された残差ブロック213(または、対応する量子化解除された係数211)を取得するように構成される。再構成された残差ブロック213は、変換ブロック213と呼ばれることもある。
インター予測
インター予測モードのセット(または、可能なインター予測モード)は、利用可能な参照ピクチャ(すなわち、たとえば、DPB230の中に記憶されている、少なくとも部分的に復号された、以前のピクチャ)、ならびに他のインター予測パラメータ、たとえば、最良に整合する参照ブロックを求めて探索するために参照ピクチャ全体が使用されるのか、それとも一部のみ、たとえば、参照ピクチャの現在のブロックのエリアの周囲の探索ウィンドウエリアが使用されるのか、ならびに/または、たとえば、ピクセル補間、たとえば、ハーフペル補間/セミペル補間および/もしくはクォーターペル補間が適用されるか否かに依存する。
図3の例では、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(たとえば、加算器314)、ループフィルタ320、復号されたピクチャバッファ(DBP)330、モード適用ユニット360、インター予測ユニット344、およびイントラ予測ユニット354を備える。インター予測ユニット344は、動き補償ユニットであってよく、または動き補償ユニットを含んでもよい。ビデオデコーダ30は、いくつかの例では、図2からのビデオエンコーダ20に関して説明した符号化パスとは概して相反の復号パスを実行し得る。
エンコーダ20に関して説明したように、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、復号されたピクチャバッファ(DPB)230、インター予測ユニット344、およびイントラ予測ユニット354はまた、ビデオエンコーダ20の「ビルトインデコーダ」を形成するものとして参照される。したがって、逆量子化ユニット310は逆量子化ユニット210と機能が同一であってよく、逆変換処理ユニット312は逆変換処理ユニット212と機能が同一であってよく、再構成ユニット314は再構成ユニット214と機能が同一であってよく、ループフィルタ320はループフィルタ220と機能が同一であってよく、復号されたピクチャバッファ330は復号されたピクチャバッファ230と機能が同一であってよい。したがって、ビデオ20エンコーダのそれぞれのユニットおよび機能に対して提供された説明は、それに対応してビデオデコーダ30のそれぞれのユニットおよび機能に適用される。
逆変換
逆変換処理ユニット312は、変換係数311とも呼ばれる量子化解除された係数311を受信し、サンプル領域における再構成された残差ブロック313を取得するために量子化解除された係数311に変換を適用するように構成され得る。再構成された残差ブロック313は、変換ブロック313と呼ばれることもある。変換は、逆変換、たとえば、逆DCT変換、逆DST変換、逆整数変換、または概念的に類似の逆変換プロセスであってよい。逆変換処理ユニット312は、量子化解除された係数311に適用されるべき変換を決定するために、(たとえば、エントロピー復号ユニット304によって、たとえば、構文解析および/または復号することによって)符号化されたピクチャデータ21から変換パラメータまたは対応する情報を受信するようにさらに構成され得る。
予測
インター予測ユニット344は、インター予測ユニット244と(詳細には、動き補償ユニットと)同一であってよく、イントラ予測ユニット354は、機能がイントラ予測ユニット254と同一であってよく、区分および/もしくは予測パラメータ、または符号化されたピクチャデータ21から(たとえば、エントロピー復号ユニット304によって、たとえば、構文解析および/または復号することによって)受信されたそれぞれの情報に基づいて、分割または区分決定および予測を実行する。モード適用ユニット360は、(フィルタ処理されているかまたはフィルタ処理されていない)再構成されたピクチャ、ブロック、またはそれぞれのサンプルに基づいて、ブロックごとに予測(イントラ予測またはインター予測)を実行して、予測ブロック365を取得するように構成され得る。
それぞれ、三角形マージモードおよび幾何学的マージモードとも呼ばれる、三角形区分モード(TPM)および幾何学的動き区分(GEO)は、予測区分の間で水平でない境界および垂直でない境界を可能にする区分技法であり、ここで、予測ユニットPU1および予測ユニットPU2は、異なる色成分に関係するそれらのサンプルのサブセットの重み付き平均化プロシージャを使用して、領域の中で組み合わせられる。TMPは、長方形ブロック対角線に沿った予測区分の間の境界のみを可能にするが、GEOによる境界は、任意の位置に配置されてよい。重み付き平均化プロシージャが適用される領域の中で、正方形内の整数が、予測ユニットPU1のルーマ成分に適用される重みWPU1を示す。一例では、予測ユニットPU2のルーマ成分に適用される重みWPU2は、次のように計算される。
WPU2 = 8 - WPU1
変数weightedPredFlagは次のように導出される。
- 次の条件のすべてが真である場合、weightedPredFlagは0に設定される。
0からNumRefIdxActive[ 0 ]までのiに対してluma_weight_l0_flag[i]が0に等しい。
0からNumRefIdxActive[ 1 ]までのiに対してluma_weight_l1_flag[i]が0に等しい。
0からNumRefIdxActive[ 0 ]までのiに対してchroma_weight_l0_flag[i]が0に等しい。
0からNumRefIdxActive[ 1 ]までのiに対してchroma_weight_l1_flag[i]が0に等しい。
- そうでない場合、weightedPredFlagは1に設定される。
luma_weight_l1_flag[ i ]およびchroma_weight_l1_flag[ i ]のすべての値が、0、i =0..NumRefIdxActive[ 1]という値に設定されるとき、変数WPDisabled1[i]は1に等しく設定される。そうでない場合、WPDisabled1 [i]の値は0に等しく設定される。
コンテンツ供給システム3100において、端末デバイス3106は、符号化されたデータを受信および再生する。端末デバイス3106は、上述の符号化されたデータを復号することが可能な、スマートフォンもしくはパッド3108、コンピュータもしくはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、セットトップボックス(STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、携帯情報端末(PDA)3122、車両搭載型デバイス3124、またはそれらのうちのいずれかの組合せなどの、データ受信および復元能力を有するデバイスであり得る。たとえば、端末デバイス3106は、上記で説明したような宛先デバイス14を含んでよい。符号化されたデータがビデオを含むとき、端末デバイスの中に含まれるビデオデコーダ30は、ビデオ復号を実行するように優先させられる。符号化されたデータがオーディオを含むとき、端末デバイスの中に含まれるオーディオデコーダは、オーディオ復号処理を実行するように優先させられる。
割当て演算子
以下の割当て演算子は以下のように定義される。
= 割当て演算子。
++ インクリメント、すなわち、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)と等価である。

Claims (24)

  1. 復号デバイスによって実施されるコーディングの方法であって、
    現在のピクチャのためのビットストリームを取得するステップと、
    前記ビットストリームに従って前記現在のピクチャに対する第1のインジケータの値を取得するステップであって、前記第1のインジケータがスライスタイプを示す、ステップと、
    前記ビットストリームに従って前記現在のピクチャに対する第2のインジケータの値を取得するステップであって、前記第2のインジケータが、重み付き予測パラメータがピクチャヘッダの中に存在するのかそれともスライスヘッダの中に存在するのかを示す、ステップと、
    前記第1のインジケータの前記値が第1のプリセット値に等しく、かつ前記第2のインジケータの前記値が第2のプリセット値に等しいとき、前記ビットストリームから現在のブロックに対する前記重み付き予測パラメータの値を構文解析するステップであって、前記現在のブロックが前記現在のピクチャの現在のスライスの中に備えられ、前記第1のプリセット値が整数値であり、前記第2のプリセット値が整数値である、ステップと、
    前記重み付き予測パラメータの前記値に従って前記現在のブロックを予測するステップと
    を備える、方法。
  2. 前記第1のインジケータの前記値が、前記ビットストリームの中に備えられたピクチャヘッダに従って取得されるか、または前記第2のインジケータの前記値が、前記ビットストリームの中に備えられたピクチャパラメータセットに従って取得されるか、または前記重み付き予測パラメータの前記値が、前記ビットストリームの中に備えられたピクチャヘッダから構文解析される、請求項1に記載の方法。
  3. 前記第1のプリセット値が1であり、前記第2のプリセット値が1である、請求項1または2に記載の方法。
  4. 前記第1のインジケータの前記値が前記第1のプリセット値に等しいことが、前記現在のピクチャの中に備えられた少なくとも1つのスライスのスライスタイプがインタースライスであることを表す、請求項1から3のいずれか一項に記載の方法。
  5. 前記インタースライスがBスライスまたはPスライスを備える、請求項4に記載の方法。
  6. 復号デバイスによって実施されるコーディングの方法であって、
    現在のピクチャのためのビットストリームを取得するステップと、
    前記ビットストリームに従って前記現在のピクチャに対する第1のインジケータの値を取得するステップであって、前記第1のインジケータがスライスタイプを示す、ステップと、
    前記ビットストリームに従って前記現在のピクチャに対する第2のインジケータの値を取得するステップであって、前記第2のインジケータが、重み付き予測パラメータがピクチャヘッダの中に存在するのかそれともスライスヘッダの中に存在するのかを示す、ステップと、
    前記ビットストリームに従って前記現在のピクチャに対する第3のインジケータの値を取得するステップであって、前記第3のインジケータが、インタースライスに重み付き予測が適用可能であるかどうかを示し、前記インタースライスの前記スライスタイプがBスライスまたはPスライスである、ステップと、
    前記第1のインジケータの前記値が第1のプリセット値に等しく、前記第2のインジケータの前記値が第2のプリセット値に等しく、かつ前記第3のインジケータの前記値が、前記インタースライスに重み付き予測が適用可能であることを示すとき、前記ビットストリームから現在のブロックに対する前記重み付き予測パラメータの値を構文解析するステップであって、前記現在のブロックが前記現在のピクチャの現在のスライスの中に備えられ、前記第1のプリセット値が整数値であり、前記第2のプリセット値が整数値である、ステップと、
    前記重み付き予測パラメータの前記値に従って前記現在のブロックを予測するステップと
    を備える、方法。
  7. 前記第1のインジケータの前記値が、前記ビットストリームの中に備えられたピクチャヘッダに従って取得されるか、または前記第2のインジケータの前記値が、前記ビットストリームの中に備えられたピクチャパラメータセットに従って取得されるか、または前記重み付き予測パラメータの前記値が、前記ビットストリームの中に備えられたピクチャヘッダに従って取得されるか、または前記第3のインジケータの前記値が、前記ビットストリームの中に備えられたピクチャパラメータセットに従って取得される、請求項6に記載の方法。
  8. 前記第1のプリセット値が1であり、前記第2のプリセット値が1である、請求項6または7に記載の方法。
  9. 前記第1のプリセット値に等しい前記第1のインジケータの前記値が、前記現在のピクチャの中に備えられた少なくとも1つのスライスのスライスタイプがインタースライスであることを表す、請求項6から8のいずれか一項に記載の方法。
  10. 前記第3のインジケータの前記値が1であることが、前記インタースライスに重み付き予測が適用可能であることを示す、請求項6から9のいずれか一項に記載の方法。
  11. 請求項1から10のいずれか一項に記載の方法を実行するための処理回路構成を備えるデコーダ(30)。
  12. コンピュータ上またはプロセッサ上で実行されたとき、請求項1から10のいずれか一項に記載の方法を実行するためのプログラムコードを備えるコンピュータプログラム製品。
  13. デコーダ(30)であって、
    1つまたは複数のプロセッサと、
    前記プロセッサに結合され前記プロセッサが実行するためのプログラミングを記憶する非一時的コンピュータ可読記憶媒体とを備え、前記プログラミングが、前記プロセッサによって実行されたとき、請求項1から10のいずれか一項に記載の方法を実行するように前記デコーダを構成する、
    デコーダ(30)。
  14. コンピュータデバイスによって実行されたとき、請求項1から10のいずれか一項に記載の方法を前記コンピュータデバイスに実行させるプログラムコードを搬送する非一時的コンピュータ可読媒体。
  15. 復号デバイス(1700)であって、
    現在のピクチャのためのビットストリームを取得するように構成された、ビットストリーム取得ユニット(1710)と、
    前記ビットストリームに従って前記現在のピクチャに対する第1のインジケータの値を取得することであって、前記第1のインジケータがスライスタイプを示す、第1のインジケータの値を取得すること、および
    前記ビットストリームに従って前記現在のピクチャに対する第2のインジケータの値を取得することであって、前記第2のインジケータが、重み付き予測パラメータが前記ビットストリームのピクチャヘッダの中に存在するのかそれとも前記ビットストリームのスライスヘッダの中に存在するのかを示す、第2のインジケータの値を取得することを行うように構成された、
    インジケータ値取得ユニット(1720)と、
    前記第1のインジケータの前記値が第1のプリセット値に等しく、かつ前記第2のインジケータの前記値が第2のプリセット値に等しいとき、前記ビットストリームから現在のブロックに対する前記重み付き予測パラメータの値を構文解析するように構成された、構文解析ユニット(1730)であって、前記現在のブロックが前記現在のピクチャの現在のスライスの中に備えられ、前記第1のプリセット値が整数値であり、前記第2のプリセット値が整数値である、構文解析ユニット(1730)と、
    前記重み付き予測パラメータの前記値に従って前記現在のブロックを予測するように構成された、予測ユニット(1740)と
    を備える、復号デバイス(1700)。
  16. 前記インジケータ値取得ユニット(1720)が、前記ビットストリームの中に備えられたピクチャヘッダに従って前記第1のインジケータの前記値を、もしくは前記ビットストリームの中に備えられたピクチャパラメータセットに従って前記第2のインジケータの前記値を取得するように構成されるか、または
    前記構文解析ユニット(1730)が、前記ビットストリームの中に備えられたピクチャヘッダから前記重み付き予測パラメータの前記値を構文解析するように構成される、
    請求項15に記載の復号デバイス(1700)。
  17. 前記第1のプリセット値が1であり、前記第2のプリセット値が1である、請求項15または16に記載の復号デバイス(1700)。
  18. 前記第1のインジケータの前記値が前記第1のプリセット値に等しいことが、前記現在のピクチャの中に備えられた少なくとも1つのスライスのスライスタイプがインタースライスであることを表す、請求項15から17のいずれか一項に記載の復号デバイス(1700)。
  19. 前記インタースライスがBスライスまたはPスライスを備える、請求項18に記載の復号デバイス(1700)。
  20. 復号デバイス(1700)であって、
    現在のピクチャのためのビットストリームを取得するように構成された、ビットストリーム取得ユニット(1710)と、
    前記ビットストリームに従って前記現在のピクチャに対する第1のインジケータの値を取得することであって、前記第1のインジケータがスライスタイプを示す、第1のインジケータの値を取得すること、
    前記ビットストリームに従って前記現在のピクチャに対する第2のインジケータの値を取得することであって、前記第2のインジケータが、重み付き予測パラメータが前記ビットストリームのピクチャヘッダの中に存在するのかそれとも前記ビットストリームのスライスヘッダの中に存在するのかを示す、第2のインジケータの値を取得すること、および
    前記ビットストリームに従って前記現在のピクチャに対する第3のインジケータの値を取得することであって、前記第3のインジケータが、インタースライスに重み付き予測が適用可能であるかどうかを示し、前記インタースライスの前記スライスタイプがBスライスまたはPスライスである、第3のインジケータの値を取得することを行うように構成された、
    インジケータ値取得ユニット(1720)と、
    前記第1のインジケータの前記値が第1のプリセット値に等しく、前記第2のインジケータの前記値が第2のプリセット値に等しく、かつ前記第3のインジケータの前記値が、前記インタースライスに重み付き予測が適用可能であることを示すとき、前記ビットストリームから現在のブロックに対する前記重み付き予測パラメータの値を構文解析するように構成された、構文解析ユニット(1730)であって、前記現在のブロックが前記現在のピクチャの現在のスライスの中に備えられ、前記第1のプリセット値が整数値であり、前記第2のプリセット値が整数値である、構文解析ユニット(1730)と、
    前記重み付き予測パラメータの前記値に従って前記現在のブロックを予測するように構成された、予測ユニット(1740)と
    を備える、復号デバイス(1700)。
  21. 前記インジケータ値取得ユニット(1720)が、前記ビットストリームの中に備えられたピクチャヘッダに従って前記第1のインジケータの前記値を、もしくは前記ビットストリームの中に備えられたピクチャパラメータセットに従って前記第2のインジケータの前記値を、もしくは前記ビットストリームの中に備えられたピクチャパラメータセットに従って前記第3のインジケータの前記値を取得するように構成されるか、または
    前記構文解析ユニット(1730)が、前記ビットストリームの中に備えられたピクチャヘッダから前記重み付き予測パラメータを構文解析するように構成される、
    請求項20に記載の復号デバイス(1700)。
  22. 前記第1のプリセット値が1であり、前記第2のプリセット値が1である、請求項20または21に記載の復号デバイス(1700)。
  23. 前記第1のプリセット値に等しい前記第1のインジケータの前記値が、前記現在のピクチャの中に備えられた少なくとも1つのスライスのスライスタイプがインタースライスであることを表す、請求項20から22のいずれか一項に記載の復号デバイス(1700)。
  24. 前記第3のインジケータの前記値が1であることが、前記インタースライスに重み付き予測が適用可能であることを示す、請求項20から23のいずれか一項に記載の復号デバイス(1700)。
JP2022542748A 2020-01-12 2021-01-12 重み付き予測を非矩形マージモードと調和させる方法および装置 Pending JP2023510858A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202062960134P 2020-01-12 2020-01-12
US62/960,134 2020-01-12
PCT/RU2021/050003 WO2021045658A2 (en) 2020-01-12 2021-01-12 Method and apparatus of harmonizing weighted prediction with non-rectangular merge modes

Publications (1)

Publication Number Publication Date
JP2023510858A true JP2023510858A (ja) 2023-03-15

Family

ID=74853461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022542748A Pending JP2023510858A (ja) 2020-01-12 2021-01-12 重み付き予測を非矩形マージモードと調和させる方法および装置

Country Status (10)

Country Link
US (1) US12075045B2 (ja)
EP (1) EP4078965A4 (ja)
JP (1) JP2023510858A (ja)
KR (1) KR20220123717A (ja)
CN (2) CN115988219B (ja)
AU (1) AU2021201607A1 (ja)
BR (1) BR112022013803A2 (ja)
CA (1) CA3167535A1 (ja)
MX (1) MX2022008593A (ja)
WO (1) WO2021045658A2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112022012154A2 (pt) * 2019-12-20 2022-08-30 Lg Electronics Inc Método e dispositivo de codificação de imagem/vídeo baseados em predição ponderada
CA3167876A1 (en) * 2020-01-13 2021-07-22 Lg Electronics Inc. Method and device for weighted prediction for image/video coding
EP4093029A4 (en) * 2020-01-13 2023-12-27 Lg Electronics Inc. METHOD AND APPARATUS FOR CODING IMAGES/VIDEOS BASED ON A PREDICTION WEIGHTED TABLE
WO2021145687A1 (ko) * 2020-01-14 2021-07-22 엘지전자 주식회사 서브 픽처 및 픽처 헤더에 관한 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
CN118524226A (zh) * 2020-01-14 2024-08-20 华为技术有限公司 指示融合模式候选数量的方法和装置
MX2022009920A (es) * 2020-02-19 2022-09-09 Bytedance Inc Se?alizacion de pesos de una lista de imagenes de referencia.
AR121127A1 (es) * 2020-02-29 2022-04-20 Beijing Bytedance Network Tech Co Ltd Señalización de información de imagen de referencia en un flujo de bits de video
US11563963B2 (en) 2020-05-19 2023-01-24 Qualcomm Incorporated Determining whether to code picture header data of pictures of video data in slice headers
WO2022198144A1 (en) * 2021-03-30 2022-09-22 Innopeak Technology, Inc. Weighted prediction for video coding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021125700A1 (ko) * 2019-12-20 2021-06-24 엘지전자 주식회사 예측 가중 테이블 기반 영상/비디오 코딩 방법 및 장치

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009500941A (ja) * 2005-07-08 2009-01-08 エルジー エレクトロニクス インコーポレイティド 情報を圧縮/圧縮解除するためにビデオ信号のコーディング情報をモデリングする方法
KR100934674B1 (ko) * 2006-03-30 2009-12-31 엘지전자 주식회사 비디오 신호를 디코딩/인코딩하기 위한 방법 및 장치
US8767824B2 (en) * 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles
US9451284B2 (en) * 2011-10-10 2016-09-20 Qualcomm Incorporated Efficient signaling of reference picture sets
EP3675497B1 (en) * 2011-10-17 2021-12-29 Kabushiki Kaisha Toshiba Encoding method and decoding method
US9516308B2 (en) * 2012-04-27 2016-12-06 Qualcomm Incorporated Parameter set updates in video coding
US9473769B2 (en) * 2012-06-08 2016-10-18 Texas Instruments Incorporated Method and system for reducing slice header parsing overhead in video coding
US9648318B2 (en) * 2012-09-30 2017-05-09 Qualcomm Incorporated Performing residual prediction in video coding
US9497473B2 (en) * 2013-10-03 2016-11-15 Qualcomm Incorporated High precision explicit weighted prediction for video coding
WO2015085575A1 (en) 2013-12-13 2015-06-18 Mediatek Singapore Pte. Ltd. Methods for background residual prediction
US20150312573A1 (en) 2014-03-17 2015-10-29 Nokia Technologies Oy Method and technical equipment for video encoding and decoding
US20150264404A1 (en) * 2014-03-17 2015-09-17 Nokia Technologies Oy Method and apparatus for video coding and decoding
GB2547052B (en) * 2016-02-08 2020-09-16 Canon Kk Methods, devices and computer programs for encoding and/or decoding images in video bit-streams using weighted predictions
WO2018198179A1 (ja) * 2017-04-25 2018-11-01 オリンパス株式会社 画像表示端末、画像送信端末、画像表示システム、画像表示方法、画像送信方法、およびプログラム
WO2019152283A1 (en) * 2018-02-02 2019-08-08 Apple Inc. Techniques of multi-hypothesis motion compensation
US11206396B2 (en) * 2019-01-16 2021-12-21 Qualcomm Incorporated Local illumination compensation in video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021125700A1 (ko) * 2019-12-20 2021-06-24 엘지전자 주식회사 예측 가중 테이블 기반 영상/비디오 코딩 방법 및 장치

Also Published As

Publication number Publication date
CN115988219A (zh) 2023-04-18
US20220400260A1 (en) 2022-12-15
CN114930836B (zh) 2023-12-15
EP4078965A4 (en) 2023-04-05
MX2022008593A (es) 2022-10-20
WO2021045658A2 (en) 2021-03-11
WO2021045658A3 (en) 2021-07-15
EP4078965A2 (en) 2022-10-26
AU2021201607A1 (en) 2022-08-11
CN114930836A (zh) 2022-08-19
US12075045B2 (en) 2024-08-27
CN115988219B (zh) 2024-01-16
WO2021045658A9 (en) 2021-06-10
BR112022013803A2 (pt) 2022-09-13
CA3167535A1 (en) 2021-03-11
KR20220123717A (ko) 2022-09-08

Similar Documents

Publication Publication Date Title
US12075045B2 (en) Method and apparatus of harmonizing weighted prediction with non-rectangular merge modes
US20220345748A1 (en) Encoder, decoder and corresponding methods and apparatus
US20220248044A1 (en) Method and apparatus of harmonizing triangular merge mode with weighted prediction
US20220368930A1 (en) Method and apparatus of signaling the number of candidates for merge mode
US20220217332A1 (en) Harmonizing triangular merge mode with weighted prediction
US11412215B2 (en) Apparatuses and methods for encoding and decoding based on syntax element values
US20220201336A1 (en) Method and apparatus of high-level signaling for weighted prediction
US20220247999A1 (en) Method and Apparatus of Harmonizing Weighted Prediction with Non-Rectangular Merge Modes
RU2821011C1 (ru) Способ и устройство согласования взвешенного предсказания с непрямоугольными режимами слияния
RU2823267C1 (ru) Способ и аппаратный компонент сигнализации числа кандидатов для режима слияния
WO2021134393A1 (en) Method and apparatus of deblocking filtering between boundaries of blocks predicted using weighted prediction and non-rectangular merge modes

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220906

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220906

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240513

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240813