JP7477066B2 - Ibcマージリストを使用するエンコーダ、デコーダ、及び対応する方法 - Google Patents
Ibcマージリストを使用するエンコーダ、デコーダ、及び対応する方法 Download PDFInfo
- Publication number
- JP7477066B2 JP7477066B2 JP2021525623A JP2021525623A JP7477066B2 JP 7477066 B2 JP7477066 B2 JP 7477066B2 JP 2021525623 A JP2021525623 A JP 2021525623A JP 2021525623 A JP2021525623 A JP 2021525623A JP 7477066 B2 JP7477066 B2 JP 7477066B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- list
- vector
- block vector
- candidate
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 214
- 239000013598 vector Substances 0.000 claims description 712
- 230000008569 process Effects 0.000 claims description 93
- 238000012545 processing Methods 0.000 claims description 60
- 238000004590 computer program Methods 0.000 claims description 6
- 230000005055 memory storage Effects 0.000 claims 1
- 238000013138 pruning Methods 0.000 description 152
- 241000023320 Luma <angiosperm> Species 0.000 description 84
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 84
- 238000013139 quantization Methods 0.000 description 78
- 238000000638 solvent extraction Methods 0.000 description 35
- 238000010276 construction Methods 0.000 description 31
- 230000006854 communication Effects 0.000 description 29
- 238000004891 communication Methods 0.000 description 29
- 230000000875 corresponding effect Effects 0.000 description 26
- 230000002123 temporal effect Effects 0.000 description 25
- 230000006870 function Effects 0.000 description 24
- 238000009795 derivation Methods 0.000 description 23
- 238000005192 partition Methods 0.000 description 23
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 19
- 239000000872 buffer Substances 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 230000002829 reductive effect Effects 0.000 description 14
- 238000001914 filtration Methods 0.000 description 13
- 238000003491 array Methods 0.000 description 11
- 230000000295 complement effect Effects 0.000 description 8
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000011664 signaling Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 101150039623 Clip1 gene Proteins 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000002146 bilateral effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000007620 mathematical function Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000012952 Resampling Methods 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
Description
左側隣接ブロックが利用可能で左側隣接ブロックがIBCモードを使用している場合、現在のブロックの初期のマージリストに現在のブロックの左側隣接ブロックのブロックベクトルを挿入する段階(一例において、初期のマージリストは、この挿入段階の前の空リストである)と、
上側隣接ブロックが利用可能で、上側隣接ブロックがIBCモードを使用しており、上側隣接ブロックのブロックベクトルは左側隣接ブロックのブロックベクトルと同じでない場合、現在のブロックの上側隣接ブロックのブロックベクトルを初期のマージリストに挿入する段階(一例において、初期のマージリストはこの段階の前の空リストであるか、又は、初期のマージリストは、現在のブロックの左側隣接ブロックのブロックベクトルを備える)と、
上側隣接ブロックのブロックベクトルが、履歴ベースの動きベクトル予測子(HMVP)における最後の候補のブロックベクトルと同じでない場合、且つ左側隣接ブロックのブロックベクトルが、HMVPにおける最後の候補のブロックベクトルと同じでない場合、HMVPにおける最後の候補のブロックベクトルを初期のマージリストに挿入する段階と
を備える、方法を開示する。
隣接ブロックが利用可能で、当該隣接ブロックがIBCモードを使用している場合、現在のブロックの隣接ブロックのブロックベクトルを現在のブロックの初期のマージリストに挿入する段階と、
隣接ブロックのブロックベクトルが履歴ベースの動きベクトル予測子(HMVP)における最後の候補のブロックベクトルと同じでない場合、HMVPにおける最後の候補のブロックベクトルを初期のマージリストに挿入する段階と、
HMVPにおける別の候補のブロックベクトルを初期のマージリストに挿入する段階であって、当該HMVPにおける別の候補のブロックベクトルのプルーニングが除去されている、段階と
を備える、方法を開示する。
左側隣接ブロックが利用可能で左側隣接ブロックがIBCモードを使用している場合、現在のブロックの初期のマージリストに現在のブロックの左側隣接ブロックのブロックベクトルを挿入する段階(一例において、初期のマージリストは、この挿入段階の前の空リストである)と、
上側隣接ブロックが利用可能で、上側隣接ブロックがIBCモードを使用しており、上側隣接ブロックのブロックベクトルは左側隣接ブロックのブロックベクトルと同じでない場合、現在のブロックの上側隣接ブロックのブロックベクトルを初期のマージリストに挿入する段階(一例において、初期のマージリストはこの段階の前の空リストであるか、又は、初期のマージリストは、現在のブロックの左側隣接ブロックのブロックベクトルを備える)と、
上側隣接ブロックのブロックベクトルが、履歴ベースの動きベクトル予測子(HMVP)における最後の候補のブロックベクトルと同じでない場合、且つ左側隣接ブロックのブロックベクトルが、HMVPにおける最後の候補のブロックベクトルと同じでない場合、HMVPにおける最後の候補のブロックベクトルを初期のマージリストに挿入する段階と、
HMVPにおける別の候補のブロックベクトルを初期のマージリストに挿入する段階であって、当該HMVPにおける別の候補のブロックベクトルのプルーニングが除去されている、段階と
を備える、方法を開示する。
隣接ブロックが利用可能で、当該隣接ブロックがIBCモードを使用している場合、現在のブロックの隣接ブロックのブロックベクトルを現在のブロックの初期のマージリストに挿入する段階と、
隣接ブロックのブロックベクトルが履歴ベースの動きベクトル予測子(HMVP)における最後の候補のブロックベクトルと同じでない場合、HMVPにおける候補のブロックベクトルを初期のマージリストに挿入する段階と
を備え、
現在のブロックの初期のマージリストにおける最後のブロックベクトルは、HMVPにおける1つの候補の1つのブロックベクトルである、
方法を開示する。
左側隣接ブロックが利用可能で左側隣接ブロックがIBCモードを使用している場合、現在のブロックの初期のマージリストに現在のブロックの左側隣接ブロックのブロックベクトルを挿入する段階(一例において、初期のマージリストは、この挿入段階の前の空リストである)と、
上側隣接ブロックが利用可能で、上側隣接ブロックがIBCモードを使用しており、上側隣接ブロックのブロックベクトルは左側隣接ブロックのブロックベクトルと同じでない場合、現在のブロックの上側隣接ブロックのブロックベクトルを初期のマージリストに挿入する段階(一例において、初期のマージリストはこの段階の前の空リストであるか、又は、初期のマージリストは、現在のブロックの左側隣接ブロックのブロックベクトルを備える)と、
上側隣接ブロックのブロックベクトルが、履歴ベースの動きベクトル予測子(HMVP)における最後の候補のブロックベクトルと同じでない場合、且つ左側隣接ブロックのブロックベクトルが、HMVPにおける最後の候補のブロックベクトルと同じでない場合、HMVPにおける最後の候補のブロックベクトルを初期のマージリストに挿入する段階と、
HMVPにおける別の候補のブロックベクトルを初期のマージリストに挿入する段階であって、当該HMVPにおける別の候補のブロックベクトルのプルーニングが除去されている、段階と
を備え、
現在のブロックの初期のマージリストにおける最後のブロックベクトルは、HMVPにおける別の候補のブロックベクトルである、方法を開示する。
プロセッサに連結され、プロセッサによる実行のためのプログラミングを保存する非一時的コンピュータ可読記憶媒体であって、プログラミングは、プロセッサにより実行される場合、前述の方法の実施形態のうちいずれか1つを実行するようにデコーダを構成する、非一時的コンピュータ可読記憶媒体と
を備えるデコーダ又はエンコーダを開示する。
図2は、本願の技術を実装するように構成されている例示的なビデオエンコーダ20の概略ブロック図を示す。図2の例において、ビデオエンコーダ20は、入力201(又は入力インタフェース201)と、残差計算ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、ループフィルタユニット220と、デコードされた画像バッファ(DPB)230と、モード選択ユニット260と、エントロピーエンコーディングユニット270と、出力272(又は出力インタフェース272)とを備える。モード選択ユニット260は、インター予測ユニット244と、イントラ予測ユニット254と、区分化ユニット262とを含んでよい。インター予測ユニット244は、動き推定ユニット及び動き補償ユニット(図示せず)を含んでよい。図2に示されるビデオエンコーダ20は、ハイブリッドビデオエンコーダ、又は、ハイブリッドビデオコーデックによるビデオエンコーダとも称され得る。
エンコーダ20は、例えば、入力201を介して、画像17(又は画像データ17)、例えば、ビデオ又はビデオシーケンスを形成する一連の画像のうちの画像を受信するように構成されてよい。受信された画像又は画像データは、前処理された画像19(又は前処理された画像データ19)であってもよい。簡潔さのために、以下の説明では画像17を参照する。画像17は、現在の画像又はコードされる画像とも称され得る(特に、ビデオコーディングにおいて、現在の画像を他の画像、例えば、同じビデオシーケンス、すなわち、現在の画像も含むビデオシーケンスの、以前にエンコードされた及び/又はデコードされた画像から区別するために)。
残差計算ユニット204は、例えば、サンプルごと(ピクセルごと)に画像ブロック203のサンプル値から予測ブロック265のサンプル値を減算し、サンプル領域における残差ブロック205を取得することによって、画像ブロック203及び予測ブロック265に基づいて(予測ブロック265に関する更なる詳細は後で提供される)、残差ブロック205(残差205とも称される)を計算するように構成されてよい。
変換処理ユニット206は、残差ブロック205のサンプル値に対して変換、例えば、離散コサイン変換(DCT)又は離散サイン変換(DST)を適用し、変換領域における変換係数207を取得するように構成されてよい。変換係数207は、変換残差係数とも称され得、変換領域における残差ブロック205を表す。
量子化ユニット208は、例えば、スカラ量子化又はベクトル量子化を適用することによって、変換係数207を量子化して、量子化係数209を取得するように構成されてよい。量子化係数209は、量子化変換係数209又は量子化残差係数209とも称され得る。
逆量子化ユニット210は、例えば、量子化ユニット208と同じ量子化段階サイズに基づいて又はそれを使用して量子化ユニット208によって適用される量子化スキームの逆を適用することによって、量子化係数に対して量子化ユニット208の逆量子化を適用し、量子化解除係数211を取得するように構成されている。量子化解除係数211は、量子化解除残差係数211とも称され得、典型的には量子化による損失に起因して変換係数とは同一でないが、変換係数207に対応する。
逆変換処理ユニット212は、変換処理ユニット206により適用される変換の逆変換、例えば、逆離散コサイン変換(DCT)又は逆離散サイン変換(DST)又は他の逆変換を適用し、サンプル領域における再構築された残差ブロック213(又は対応する量子化解除係数213)を取得するように構成されている。再構築された残差ブロック213は、変換ブロック213とも称され得る。
再構築ユニット214(例えば、加算器又は合算器214)は、例えば、サンプルごとに、再構築された残差ブロック213のサンプル値と予測ブロック265のサンプル値とを加算することによって、変換ブロック213(すなわち、再構築された残差ブロック213)を予測ブロック265に加算し、サンプル領域における再構築されたブロック215を取得するように構成されている。
ループフィルタユニット220(又は、略して「ループフィルタ」220)は、再構築されたブロック215をフィルタして、フィルタリング済みのブロック221を取得するように、又は、一般に、再構築されたサンプルをフィルタして、フィルタリング済みのサンプルを取得するように構成されている。ループフィルタユニットは、例えば、ピクセル遷移を円滑にする、又は、別様にビデオ品質を改善するように構成されている。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ、又は、1又は複数の他のフィルタ、例えば、バイラテラルフィルタ、適応ループフィルタ(ALF)、鮮明化、平滑化フィルタ若しくは協調フィルタ、又は、それらの任意の組み合わせなどの、1又は複数のループフィルタを備えてよい。ループフィルタユニット220が、ループフィルタ内にあるものとして図2に示されているが、他の構成では、ループフィルタユニット220は、ポストループフィルタとして実装されてもよい。フィルタリング済みのブロック221は、フィルタリング済みの再構築されたブロック221とも称され得る。ビデオエンコーダ20の実施形態(それぞれループフィルタユニット220)は、ループフィルタパラメータ(サンプル適応オフセット情報など)を、例えば、直接又はエントロピーエンコーディングユニット270を介してエンコードしてから出力するように構成されてよく、その結果、例えば、デコーダ30は、デコーディングのために同じループフィルタパラメータ又はそれぞれのループフィルタを受信して適用してよい。
デコードされた画像バッファ(DPB)230は、ビデオエンコーダ20によってビデオデータをエンコーディングするための参照画像、又は一般に参照画像データを保存するメモリであってよい。DPB230は、シンクロナスDRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、又は他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)などの様々なメモリデバイスのうち任意のものによって形成されてよい。デコードされた画像バッファ(DPB)230は、1又は複数のフィルタリング済みのブロック221を保存するように構成されてよい。デコードされた画像バッファ230はさらに、同じ現在の画像又は異なる画像、例えば、以前に再構築された画像の、他に以前にフィルタリング済みのブロック、例えば、以前に再構築された且つフィルタリング済みのブロック221を保存するように構成されてよく、例えば、インター予測のために、以前に再構築された、すなわち、デコードされた、完全な画像(並びに、対応する参照ブロック及びサンプル)、及び/又は、部分的に再構築された現在の画像(並びに、対応する参照ブロック及びサンプル)を提供してよい。デコードされた画像バッファ(DPB)230は、例えば、再構築されたブロック215がループフィルタユニット220によってフィルタリングされていない場合、1又は複数のフィルタリングされていない再構築されたブロック215、又は一般に、フィルタリングされていない再構築されたサンプル、又は、再構築されたブロック若しくはサンプルの任意の他のさらに処理されたバージョンを保存するように構成されてもよい。
モード選択ユニット260は、区分化ユニット262と、インター予測ユニット244と、イントラ予測ユニット254とを備え、元の画像データ、例えば、元のブロック203(現在の画像17の現在のブロック203)、及び再構築された画像データ、例えば、同じ(現在の)画像の、及び/又は、1又は複数の以前にデコードされた画像からの、デコードされた画像バッファ230又は他のバッファ(例えば、図示しないラインバッファ)からの、例えば、フィルタリングされた及び/又はフィルタリングされていない再構築されたサンプル又はブロックを受信又は取得するように構成されている。再構築された画像データは、予測ブロック265又は予測子265を取得するために、予測、例えば、インター予測又はイントラ予測のための参照画像データとして使用される。
区分化ユニット262は、現在のブロック203をより小さい区分、例えば、正方形又は長方形サイズのより小さいブロックに区分化(又は分割)してよい。これらのより小さいブロック(サブブロックとも称され得る)は、さらにより小さい区分にさらに区分化されてよい。これは、ツリー区分化若しくは階層的ツリー区分化とも称され、ここで、例えば根ツリーレベル0(階層レベル0、深度0)にある根ブロックは、再帰的に区分化、例えば、次に低いツリーレベル、例えばツリーレベル1(階層レベル1、深度1)にある節点の2又はそれより多くのブロックに区分化されてよく、これらのブロックは、例えば終了基準が達成されたことで、例えば最大ツリー深度又は最小ブロックサイズに達したことで、区分化が終了するまで、次に低いレベル、例えばツリーレベル2(階層レベル2、深度2)の2又はそれより多くのブロックに再区分化されるなどしてよい。さらに区分化されないブロックは、ツリーの葉ブロック又は葉節点とも称される。2つの区分への区分化を用いるツリーは、二分木(BT)と称され、3つの区分への区分化を用いるツリーは、三分木(TT)と称され、4つの区分への区分化を用いるツリーは、四分木(QT)と称される。
イントラ予測モードのセットは、35個の異なるイントラ予測モード、例えば、DC(又はミーン)モード及び平面モードのような無方向性モード、若しくは、例えばHEVCにおいて定義されるような方向性モードを含んでもよく、又は、67個の異なるイントラ予測モード、例えば、DC(又はミーン)モード及び平面モードのような無方向性モード、若しくは、例えばVVCにおいて定義されるような方向性モードを含んでもよい。
インター予測モードのセット(又は可能なインター予測モード)は、利用可能な参照画像(すなわち、例えばDBP230に保存された、以前の少なくとも部分的にデコードされた画像)及び他のインター予測パラメータ、例えば、最良にマッチングする参照ブロックの検索に使用されたのは、参照画像の全体なのか若しくは参照画像の一部のみ、例えば、現在のブロックのエリアの周りの検索窓エリアなのか、及び/又は、例えば、画素補間、例えばハーフ/セミペル及び/又はクオータペル補間が適用されたか否かに依拠する。
エントロピーエンコーディングユニット270は、例えば、エントロピーエンコーディングアルゴリズム又はスキーム(例えば、可変長コーディング(VLC)スキーム、コンテキスト適応VLCスキーム(CAVLC)、算術コーディングスキーム、バイナリゼーション、コンテキスト適応バイナリ算術コーディング(CABAC)、シンタックスベースのコンテキスト適応バイナリ算術コーディング(SBAC)、確率インターバル区分化エントロピー(PIPE)コーディング、又は、別のエントロピーエンコーディング方法若しくは技術)、又はバイパス(無圧縮)を、量子化係数209、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、及び/又は他のシンタックス要素に適用し、例えばエンコードされたビットストリーム21の形態で出力272を介して出力できるエンコードされた画像データ21を取得するように構成され、それにより、例えば、ビデオデコーダ30は、デコーディングのためのパラメータを受信して使用してよい。エンコードされたビットストリーム21は、ビデオデコーダ30に送信されてもよく、又は、後でビデオデコーダ30によって送信又は取得するためにメモリに保存されてもよい。
図3は、本願の技術を実装するように構成されているビデオデコーダ30の例を示す。ビデオデコーダ30は、例えば、エンコーダ20によりエンコードされた、エンコードされた画像データ21(例えば、エンコードされたビットストリーム21)を受信して、デコードされた画像331を取得するように構成されている。エンコードされた画像データ又はビットストリームは、エンコードされた画像データをデコーディングするための情報、例えば、エンコードされたビデオスライスの画像ブロック(及び/又はタイルグループ若しくはタイル)及び関連付けられたシンタックス要素を表すデータを含む。
エントロピーデコ―ディングユニット304は、ビットストリーム21(又は一般にエンコードされた画像データ21)をパースし、例えば、エンコードされた画像データ21にエントロピーデコーディングを実行して、例えば量子化係数309及び/又はデコードされたコーディングパラメータ(図3には図示せず)、例えば、インター予測パラメータ(例えば、参照画像インデックス及び動きベクトル)、イントラ予測パラメータ(例えば、イントラ予測モード又はインデックス)、変換パラメータ、量子化パラメータ、ループフィルタパラメータ、及び/又は他のシンタックス要素のいずれか又はすべてを取得するように構成されている。エントロピーデコ―ディングユニット304は、エンコーダ20のエントロピーエンコーディングユニット270に関して記載されたエンコーディングスキームに対応するデコーディングアルゴリズム又はスキームを適用するように構成されてよい。エントロピーデコ―ディングユニット304はさらに、インター予測パラメータ、イントラ予測パラメータ、及び/又は他のシンタックス要素をモード適用ユニット360に、また他のパラメータをデコーダ30の他のユニットに提供するように構成されてよい。ビデオデコーダ30は、ビデオスライスレベル及び/又はビデオブロックレベルで、シンタックス要素を受信してよい。スライス及びそれぞれのシンタックス要素に加えて又は代替的に、タイルグループ及び/又はタイル、およびそれぞれのシンタックス要素が受信及び/又は使用され得る。
逆量子化ユニット310は、エンコードされた画像データ21から量子化パラメータ(QP)(又は一般に逆量子化に関連する情報)及び量子化係数を受信する(例えばエントロピーデコ―ディングユニット304によって、例えばパース及び/又はデコーディングすることによって)とともに、量子化パラメータに基づいて、デコードされた量子化係数309に逆量子化を適用し、変換係数311とも称され得る量子化解除係数311を取得するように構成されてよい。逆量子化プロセスは、量子化の程度、また同様に適用されるべき逆量子化の程度を決定するために、ビデオスライス(又はタイル若しくはタイルグループ)内のビデオブロックごとにビデオエンコーダ20によって決定される量子化パラメータの使用を含んでよい。
逆変換処理ユニット312は、変換係数311とも称される量子化解除係数311を受信するとともに、サンプル領域における再構築された残差ブロック213を取得するべく、量子化解除係数311に変換を適用するように構成されてよい。再構築された残差ブロック213は、変換ブロック313とも称され得る。変換は、逆変換、例えば、逆DCT、逆DST、逆整数変換、又は概念的に同様の逆変換プロセスであってよい。逆変換処理ユニット312はさらに、エンコードされた画像データ21から変換パラメータ又は対応する情報を受信し(例えば、エントロピーデコ―ディングユニット304によって、例えばパース及び/又はデコーディングすることによって)、量子化解除係数311に適用されるべき変換を決定するように構成されてよい。
再構築ユニット314(例えば、加算器又は合算器314)は、再構築された残差ブロック313を予測ブロック365に加算し、例えば、再構築された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することによって、サンプル領域における再構築されたブロック315を取得するように構成されてよい。
ループフィルタユニット320(コーディングループ内又はコーディングループの後のいずれかにある)は、例えば、ピクセル遷移を円滑にするように又はビデオ品質を別様に改善するように、再構築されたブロック315をフィルタして、フィルタリング済みのブロック321を取得するように構成されている。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ、又は、1又は複数の他のフィルタ、例えば、バイラテラルフィルタ、適応ループフィルタ(ALF)、鮮明化、平滑化フィルタ若しくは協調フィルタ、又は、それらの任意の組み合わせなどの、1又は複数のループフィルタを備えてよい。ループフィルタユニット320が、ループフィルタ内にあるものとして図3に示されているが、他の構成では、ループフィルタユニット320は、ポストループフィルタとして実装されてもよい。
画像のデコードされたビデオブロック321は、その後、デコードされた画像バッファ330に保存され、デコードされた画像バッファ330は、デコードされた画像331を、他の画像の後続の動き補償のための及び/又はそれぞれ表示を出力するための参照画像として保存する。デコーダ30は、例えば、出力312を介して、ユーザに提示又は閲覧させるために、デコードされた画像311を出力するように構成されている。
インター予測ユニット344は、インター予測ユニット244(特に、動き補償ユニット)と同一であってよく、イントラ予測ユニット354は、インター予測ユニット254と機能的に同一であってよく、エンコードされた画像データ21から受信(例えば、エントロピーデコ―ディングユニット304によって、例えば、パース及び/又はデコーディングすることによって)された区分化及び/又は予測パラメータ又はそれぞれの情報に基づいて分割又は区分化の決定及び予測を実行する。モード適用ユニット360は、再構築された画像、ブロック、又はそれぞれのサンプル(フィルタリングされた又はフィルタリングされていない)に基づいて、ブロックごとに予測(イントラ予測又はインター予測)を実行して、予測ブロック365を取得するように構成されてよい。
-32769の2の補数は、1,0111,1111,1111,1111(17ビット)であり、その後、MSBは破棄されるので、結果として得られる2の補数は、0111,1111,1111,1111(十進数は32767)である。これは、式(1)及び(2)を適用することによる出力と同じである。
a.5個の空間隣接ブロックから導出される4個までの空間マージ候補
b.2つの時間的且つコロケートされたブロックから導出される1つの時間的マージ候補
c.組み合わされた双予測候補及びゼロ動きベクトル候補を含む追加のマージ候補
a.リストにおける冗長な動きデータを回避する
b.冗長シンタックスを作成するであろう他の手段によって表現できる2つの区分をマージすることを防止する
a.組み合わされた双予測候補
b.ゼロ動きベクトル候補
[テーブル1]
a.CUは1のPU(2N×2N区分タイプ)のみを包含する。
b.マージモードは、動きデータ(1に等しいmerge_flag)を導出するのに使用される。
c.残差データはビットストリームに存在しない。
・5つの空間隣接ブロックから導出される2つまでの空間候補MVP
・両方の空間候補MVPが利用可能でない又はそれらが同一である場合、2つの時間的且つコロケートされたブロックから導出される1つの時間的候補MVP
・空間的候補、時間的候補又は両方の候補が利用可能でない場合のゼロ動きベクトル
・A1とB1との間のプルーニング
・A0とA1との間のプルーニング
・B0とB1との間のプルーニング
・B2とA1との間のプルーニング
・B2とB1との間のプルーニング
・最後のHMVP候補HkとA1との間のプルーニング
・最後のHMVP候補HkとB1との間のプルーニング
・最後から2番目のHMVP候補Hk-1とA1との間のプルーニング
・最後から2番目のHMVP候補Hk-1とB1との間のプルーニング
左の(A1)及び上の(B1)の空間隣接ブロックは、IBCモードを使用して現在のブロックを予測するのに重要であるので、解決手段1では、A1とB1との間の空間隣接ブロックプルーニングは維持され、残りの空間隣接ブロックプルーニングは除去される。HMVP候補プルーニングは維持される。一実施形態において、以下のプルーニングがIBCマージリスト構築中に実行されることが可能である。
・A1とB1との間のプルーニング
・最後のHMVP候補HkとA1との間のプルーニング
・最後のHMVP候補HkとB1との間のプルーニング
・最後から2番目のHMVP候補Hk-1とA1との間のプルーニング
・最後から2番目のHMVP候補Hk-1とB1との間のプルーニング
左の(A1)及び上の(B1)の空間隣接ブロックは、IBCモードを使用して現在のブロックを予測するのに重要であるので、解決手段2では、空間隣接ブロックA1及びB1はIBCマージ候補に挿入されるために維持され、残りの空間隣接ブロック候補は除去される。HMVP候補プルーニングはそのまま維持される。一実施形態において、以下のプルーニングがIBCマージリスト構築中に実行されることが可能である。
・A1とB1との間のプルーニング
・最後のHMVP候補HkとA1との間のプルーニング
・最後のHMVP候補HkとB1との間のプルーニング
・最後から2番目のHMVP候補Hk-1とA1との間のプルーニング
・最後から2番目のHMVP候補Hk-1とB1との間のプルーニング
解決手段3によると、空間隣接ブロックのブロックベクトルプルーニングは同じく維持される。HMVP候補プルーニングの場合、最後のHMVP候補Hkのブロックベクトルは、ブロックベクトル空間隣接ブロックA1及びB1でプルーニングされる。残りのHMVP候補プルーニングは除去される。一実施形態において、以下のプルーニングがIBCマージリスト構築中に実行されることが可能である。
・A1とB1との間のプルーニング
・A0とA1との間のプルーニング
・B0とB1との間のプルーニング
・B2とA1との間のプルーニング
・B2とB1との間のプルーニング
・最後のHMVP候補HkとA1との間のプルーニング
・最後のHMVP候補HkとB1との間のプルーニング
解決手段4によると、空間隣接ブロックのブロックベクトルプルーニングは同じく維持される。HMVP候補プルーニングの場合、最後のHMVP候補Hk及び最後から2番目のHMVP候補Hk-1のブロックベクトルは、ブロックベクトル空間隣接ブロックA1でプルーニングされる。残りのHMVP候補プルーニングは除去される。一実施形態において、以下のプルーニングがIBCマージリスト構築中に実行されることが可能である。
・A1とB1との間のプルーニング
・A0とA1との間のプルーニング
・B0とB1との間のプルーニング
・B2とA1との間のプルーニング
・B2とB1との間のプルーニング
・最後のHMVP候補HkとA1との間のプルーニング
・最後から2番目のHMVP候補Hk-1とA1との間のプルーニング
解決手段5によると、空間隣接ブロックのブロックベクトルプルーニングは同じく維持される。HMVP候補プルーニングの場合、最後のHMVP候補Hk及び最後から2番目のHMVP候補Hk-1のブロックベクトルは、ブロックベクトル空間隣接ブロックB1でプルーニングされる。残りのHMVP候補プルーニングは除去される。一実施形態において、以下のプルーニングがIBCマージリスト構築中に実行されることが可能である。
・A1とB1との間のプルーニング
・A0とA1との間のプルーニング
・B0とB1との間のプルーニング
・B2とA1との間のプルーニング
・B2とB1との間のプルーニング
・最後のHMVP候補HkとB1との間のプルーニング
・最後から2番目のHMVP候補Hk-1とB1との間のプルーニング
解決手段6によると、この解決手段において、IBCマージ候補リストの最後の候補は、HMVPモードを使用して許容され、この解決手段におけるIBCマージリスト構築のプルーニングプロセスは変更されないが、この方法はより効率的なマージリスト構築方法を導入する。
解決手段7によると、空間隣接ブロックのブロックベクトルプルーニングは同じく維持される。HMVP候補プルーニングの場合、最後のHMVP候補Hk及び最後から2番目のHMVP候補Hk-1のブロックベクトルは、A1及びB1の第1空間隣接ブロックのブロックベクトルでプルーニングされる。A1又はB1のいずれもIBCマージリスト内に既に存在しない場合、その後、空間候補で証明されるHMVP候補は存在しない。
・A1とB1との間のプルーニング
・A0とA1との間のプルーニング
・B0とB1との間のプルーニング
・B2とA1との間のプルーニング
・B2とB1との間のプルーニング
・最後のHMVP候補HkとA1との間、又はHkとB1との間のプルーニング
・最後から2番目のHMVP候補Hk-1とA1との間、又はHk-1とB1との間のプルーニング
解決手段8によると、空間隣接ブロックのブロックベクトルプルーニングは同じく維持される。
HMVP候補プルーニングでは、
A1がIBCマージリストに既に存在し、B1がIBCマージリストに存在しない場合、最後のHMVP候補Hk及び最後から2番目のHMVP候補Hk-1のブロックベクトルは、A1の空間隣接ブロックのブロックベクトルでプルーニングされる。
B1がIBCマージリストに既に存在し、A1がIBCマージリストに存在しない場合、最後のHMVP候補Hk及び最後から2番目のHMVP候補Hk-1のブロックベクトルは、B1の空間隣接ブロックのブロックベクトルでプルーニングされる。
A1及びB1の両方がIBCマージリストに既に存在する場合、最後のHMVP候補Hkのブロックベクトルは、B1の空間隣接ブロックのブロックベクトルでプルーニングされる。
A1又はB1のいずれもIBCマージリスト内に既に存在しない場合、その後、空間候補で証明されるHMVP候補は存在しない。
解決手段9によると、解決手段1に加えて、空間ネイバーB0はB0及びB1の利用可能性に基づいており、空間ネイバーA0はA0及びA1の利用可能性に基づいており、空間ネイバーB2はB2、B1及びA1の利用可能性に基づいている。
B0隣接ブロックが利用可能でIBCモードを使用しており、B1が利用可能でない場合、B0ブロックのブロックベクトルは、現在のブロックのIBCマージ候補リストに挿入される。そうでなければ(B0が利用可能でない、又はB0がIBCモードを使用していない、又はB1が利用可能である場合)、B0ブロックのブロックベクトルは現在のブロックのIBCマージ候補リストに挿入されない(プルーニングなし)。
解決手段10によると、解決手段1から9の任意のものを組み合わせて、IBCマージリスト構築の複雑性を低減することができる。
左の(A1)及び上の(B1)の空間隣接ブロックは、IBCモードを使用して現在のブロックを予測するのに重要であるので、この例において、A1とB1との間の空間隣接ブロックプルーニングは維持され、残りの空間隣接ブロックのブロックベクトルはIBCマージリストに挿入されない。HMVP候補プルーニングの場合、最後のHMVP候補Hkのブロックベクトルは、ブロックベクトル空間隣接ブロックA1及びB1でプルーニングされる。一実施形態において、以下のプルーニングがIBCマージリスト構築中に実行されることが可能である。
・A1とB1との間のプルーニング
・最後のHMVP候補HkとA1との間のプルーニング
・最後のHMVP候補HkとB1との間のプルーニング
現在の画像の左上のルマサンプルに対して、現在のコーディングブロックの左上サンプルを指定するルマ位置(xCb、yCb)
ルマサンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth
ルマサンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight
シングルツリー又はデュアルツリーが使用されているかどうかを指定し、デュアルツリーが使用されている場合には、現在のツリーがルマ又はクロマコンポーネントに対応するかどうかを指定する、変数treeType
IsGt4by4=(cbWidth*cbHeight)>16 (1111)
ブロックベクトル成分の導出プロセスは、ルマコーディングブロックの位置(xCb、yCb)、ルマコーディングブロックの幅cbWidth、及びルマコーディングブロックの高さcbHeightを入力として、ルマブロックベクトルbvLを出力として呼び出される。
treeTypeがSINGLE_TREEに等しい場合、クロマブロックの導出プロセスは、ルマブロックベクトルbvLを入力として、クロマブロックベクトルbvCを出力として呼び出される。
項目8.6.3.1で指定されるようなIBCブロックに対するデコーディングプロセスは、ルマコーディングブロックの位置(xCb、yCb)、ルマコーディングブロックの幅cbWidth並びにルマコーディングブロックの高さcbHeight、ルマブロックベクトルbvL、0に等しく設定された変数cIdxを入力として、予測ルマサンプルの(cbWidth)×(cbHeight)アレイpredSamplesLであるIBC予測サンプル(predSamples)を出力として呼び出される。
treeTypeがSINGLE_TREEに等しい場合、現在のコーディングユニットの予測サンプルは以下のように導出される。
-項目8.6.3.1で指定されるようなIBCブロックに対するデコーディングプロセスは、ルマコーディングブロックの位置(xCb、yCb)、ルマコーディングブロックの幅cbWidth並びにルマコーディングブロックの高さcbHeight、クロマブロックベクトルbvC、及び1に等しく設定された変数cIdxを入力として、クロマコンポーネントCbの予測クロマサンプルの(cbWidth/SubWidthC)×(cbHeight/SubHeightC)アレイpredSamplesCbであるIBC予測サンプル(predSamples)を出力として呼び出される。
-項目8.6.3.1で指定されるようなIBCブロックのデコーディングプロセスは、ルマコーディングブロックの位置(xCb、yCb)、ルマコーディングブロックの幅cbWidth並びにルマコーディングブロックの高さcbHeight、クロマブロックベクトルbvC、及び2に等しく設定された変数cIdxを入力として、クロマコンポーネントCrの予測クロマサンプルの(cbWidth/SubWidthC)×(cbHeight/SubHeightC)アレイpredSamplesCrであるIBC予測サンプル(predSamples)を出力として呼び出される。
-インター予測モードでコードされたコーディングブロックの残差信号に対するデコーディングプロセスは、ルマ位置(xCb、yCb)に等しく設定された位置(xTb0、yTb0)、ルマコーディングブロックの幅cbWidthに等しく設定された幅nTbW、ルマコーディングブロックの高さcbHeightに等しく設定された高さnTbH、及び0に等しく設定された変数cIdxを入力として、アレイresSamplesLを出力として呼び出される。
-treeTypeがSINGLE_TREEに等しい場合、インター予測モードでコードされたコーディングブロックの残差信号に対するデコーディングプロセスは、クロマ位置(xCb/SubWidthC、yCb/SubHeightC)に等しく設定された位置(xTb0、yTb0)、クロマコーディングブロックの幅cbWidth/SubWidthCに等しく設定された幅nTbW、クロマコーディングブロックの高さcbHeight/SubHeightCに等しく設定された高さnTbH、1に等しく設定された変数cIdxを入力として、アレイresSamplesCbを出力として呼び出される。
-treeTypeがSINGLE_TREEに等しい場合、インター予測モードでコードされたコーディングブロックの残差信号に対するデコーディングプロセスは、クロマ位置(xCb/SubWidthC、yCb/SubHeightC)に等しく設定された位置(xTb0、yTb0)、クロマコーディングブロックの幅cbWidth/SubWidthCに等しく設定された幅nTbW、クロマコーディングブロックの高さcbHeight/SubHeightCに等しく設定された高さnTbH、2に等しく設定された変数cIdxを入力として、アレイresSamplesCrを出力として呼び出される。
-色成分に対する画像再構築プロセスは、(xCb、yCb)に等しく設定されたブロック位置(xCurr、yCurr)、cbWidthに等しく設定されたブロックの幅nCurrSw、cbHeightに等しく設定されたブロックの高さnCurrSh、0に等しく設定された変数cIdx、predSamplesLに等しく設定された(cbWidth)×(cbHeight)アレイpredSamples、及びresSamplesLに等しく設定された(cbWidth)×(cbHeight)アレイresSamplesを入力として呼び出され、出力は、インループフィルタリングの前の変更された再構築画像である。
-treeTypeがSINGLE_TREEに等しい場合、色成分に対する画像再構築プロセスは、(xCb/SubWidthC、yCb/SubHeightC)に等しく設定されたブロック位置(xCurr、yCurr)、cbWidth/SubWidthCに等しく設定されたブロックの幅nCurrSw、cbHeight/SubHeightCに等しく設定されたブロックの高さnCurrSh、1に等しく設定された変数cIdx、predSamplesCbに等しく設定された(cbWidth/SubWidthC)×(cbHeight/SubHeightC)アレイpredSamples、及びresSamplesCbに等しく設定された(cbWidth/SubWidthC)×(cbHeight/SubHeightC)アレイresSamplesを入力として呼び出され、出力は、インループフィルタリングの前の変更された再構築画像である。
-treeTypeがSINGLE_TREEに等しい場合、色成分に対する画像再構築プロセスは、(xCb/SubWidthC、yCb/SubHeightC)に等しく設定されたブロック位置(xCurr、yCurr)、cbWidth/SubWidthCに等しく設定されたブロックの幅nCurrSw、cbHeight/SubHeightCに等しく設定されたブロックの高さnCurrSh、2に等しく設定された変数cIdx、predSamplesCrに等しく設定された(cbWidth/SubWidthC)×(cbHeight/SubHeightC)アレイpredSamples、及びresSamplesCrに等しく設定された(cbWidth/SubWidthC)×(cbHeight/SubHeightC)アレイresSamplesを入力として呼び出され、出力は、インループフィルタリングの前の変更された再構築画像である。
[8.6.2.1 一般]
現在の画像の左上ルマサンプルに対する現在のルマコーディングブロックの左上サンプルのルマ位置(xCb、yCb)
ルマサンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth
ルマサンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight
1/16の分数サンプル精度のルマブロックベクトルbvL
-項目8.6.2.2で指定されるようなIBCルマブロックベクトル予測に対する導出プロセスは、ルマ位置(xCb、yCb)、変数cbWidth及びcbHeightの入力で呼び出され、出力はルマブロックベクトルbvLである。
bvd[0]=MvdL0[xCb][yCb][0] (1112)
bvd[1]=MvdL0[xCb][yCb][1] (1113)
u[0]=(bvL[0]+bvd[0]+218)%218 (1114)
bvL[0]=(u[0]>=217)?(u[0]-218):u[0] (1115)
u[1]=(bvL[1]+bvd[1]+218)%218 (1116)
bvL[1]=(u[1]>=217)?(u[1]-218):u[1] (1117)
ルマブロックベクトルbvLを以下の制約に従うものとすることは、ビットストリーム適合性の要件である。
このプロセスは、CuPredMode[0][xCb][yCb]がMODE_IBCに等しい場合にのみ呼び出される。ここで(xCb、yCb)は、現在の画像の左上ルマサンプルに対して現在のルマコーディングブロックの左上サンプルを指定する。
現在の画像の左上ルマサンプルに対する現在のルマコーディングブロックの左上サンプルのルマ位置(xCb、yCb)
ルマサンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth
ルマサンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight
1/16の分数サンプル精度のルマブロックベクトルbvL
IsGt4by4はTRUEに等しく、numCurrCandはbvCandListにおけるマージ候補の数に等しく設定される。
bvCandList[numCurrCand][0]は0に等しく設定される。
bvCandList[numCurrCand][1]は0に等しく設定される。
numCurrCandは1だけ増加する。
bvIdx=general_merge_flag[xCb][yCb]?merge_idx[xCb][yCb]:mvp_l0_flag[xCb][yCb] (1119)
bvL[0]=bvCandList[mvIdx][0] (1120)
bvL[1]=bvCandList[mvIdx][1] (1121)
現在の画像の左上ルマサンプルに対する現在のルマコーディングブロックの左上サンプルのルマ位置(xCb、yCb)
ルマサンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth
ルマサンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight
隣接コーディングユニットの利用可能性フラグavailableFlagA1及びavailableFlagB1
隣接コーディングユニットの1/16の分数サンプル精度のブロックベクトルbvA1及びbvB1
隣接ルマコーディングブロック内のルマ位置(xNbA1、yNbA1)は、(xCb-1,yCb+cbHeight-1)に等しく設定される。
availableA1がFALSEに等しい場合、availableFlagA1は0に等しく設定され、bvA1の両方のコンポーネントは0に等しく設定される。
bvA1=MvL0[xNbA1][yNbA1] (1122)
隣接ルマコーディングブロック内のルマ位置(xNbB1、yNbB1)は、(xCb+cbWidth-1,yCb-1)に等しく設定される。
以下の条件のうち1又は複数が真である場合、availableFlagB1は0に等しく設定され、bvB1の両方のコンポーネントは0に等しく設定される。
availableB1はFALSEに等しい。
availableA1はTRUEに等しく、ルマ位置(xNbA1、yNbA1)及び(xNbB1、yNbB1)は同じブロックベクトルを有する。
bvB1=MvL0[xNbB1][yNbB1] (1123)
ブロックベクトル候補リストbvCandList
リストnumCurrCandにおける利用可能なブロックベクトル候補の数
変更されたブロックベクトル候補リストbvCandList
リストnumCurrCandにおける動きベクトル候補の変更された数
以下の条件のすべてが、NがA1又はB1である任意のブロックベクトル候補Nに対して真である場合、sameMotion及びisPrunedNは、両方ともTRUEに等しく設定される。
IsGt4by4はTRUEに等しい。
hMvpIdxは1に等しい。
候補HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]は、ブロックベクトル候補Nに等しい。
isPrunedNはFALSEに等しい。
bvCandList[numCurrCand++]=HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx] (1124)
1/16の分数サンプル精度におけるルマブロックベクトルbvL
このプロセスの出力は、1/32分数サンプル精度のクロマブロックベクトルbvCである。クロマブロックベクトルは、対応するルマブロックベクトルから導出される。
クロマブロックベクトルbvCは以下のように導出される。
bvC[0]=((bvL[0]>>(3+SubWidthC))*32 (1125)
bvC[1]=((bvL[1]>>(3+SubHeightC))*32 (1126)
1/16の分数サンプル精度のルマブロックベクトルbvL
bvLがHmvpIbcCandList[hMvpIdx]に等しい場合、identicalCandExistはTRUEに等しく設定され、removeIdxはhMvpIdxに等しく設定される。
identicalCandExistがTRUEに等しい又はNumHmvpIbcCandが5に等しい場合、以下が適用される。
i=(removeIdx+1)..(NumHmvpIbcCand-1)であるインデックスiごとに、HmvpIbcCandList[i-1]はHmvpIbcCandList[i]に等しく設定される。
HmvpIbcCandList[NumHmvpIbcCand-1]はbvLに等しく設定される。
そうでなければ(identicalCandExistがFALSEに等しく、NumHmvpIbcCandが5より小さい場合)、以下が適用される。
HmvpIbcCandList[NumHmvpIbcCand++]はbvLに等しく設定される。
[8.6.3.1 一般]
現在の画像の左上のルマサンプルに対して、現在のコーディングブロックの左上サンプルを指定するルマ位置(xCb、yCb)
ルマサンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth
ルマサンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight
ブロックベクトルbv
現在のブロックの色成分インデックスを指定する変数cIdx
予測サンプルのアレイpredSamples
xVb=(x+(bv[0]>>4))&(IbcBufWidthY-1) (1127)
yVb=(y+(bv[1]>>4))&(CtbSizeY-1) (1128)
predSamples[x][y]=ibcVirBuf[0][xVb][yVb] (1129)
xVb=(x+(bv[0]>>5))&(IbcBufWidthC-1) (1130)
yVb=(y+(bv[1]>>5))&((CtbSizeY/subHeightC)-1) (1131)
predSamples[x][y]=ibcVirBuf[cIdx][xVb][yVb] (1132)
MvL0[xCb+x][yCb+y]=bv (1133)
MvL1[xCb+x][yCb+y]=0 (1134)
RefIdxL0[xCb+x][yCb+y]=-1 (1135)
RefIdxL1[xCb+x][yCb+y]=-1 (1136)
PredFlagL0[xCb+x][yCb+y]=0 (1137)
PredFlagL1[xCb+x][yCb+y]=0 (1138)
BcwIdx[xCb+x][yCb+y]=0 (1139)
イントラブロックコピー(IBC)モードのための候補マージリストを構築する方法であって、当該方法は、
左側隣接ブロックが利用可能で左側隣接ブロックがIBCモードを使用している場合、現在のブロックの初期のマージリストに現在のブロックの左側隣接ブロックのブロックベクトルを挿入する段階(一例において、初期のマージリストは、この挿入段階の前の空リストである)と、
上側隣接ブロックが利用可能で、上側隣接ブロックがIBCモードを使用しており、上側隣接ブロックのブロックベクトルは左側隣接ブロックのブロックベクトルと同じでない場合、現在のブロックの上側隣接ブロックのブロックベクトルを初期のマージリストに挿入する段階(一例において、初期のマージリストはこの段階の前の空リストであるか、又は、初期のマージリストは、現在のブロックの左側隣接ブロックのブロックベクトルを備える)と、
右上隣接ブロックが利用可能で、右上隣接ブロックがIBCモードを使用している場合、現在のブロックの右上隣接ブロックのブロックベクトルを初期のマージリストに挿入する段階(一例において、初期のマージリストは、この段階の前の空リストである、又は、初期のマージリストは現在のブロックの上側隣接ブロックのブロックベクトルを含む、又は、初期のマージリストは現在のブロックの左側隣接ブロックのブロックベクトルを含む、又は、初期のマージリストは現在のブロックの上側隣接ブロックのブロックベクトル及び現在のブロックの左側隣接ブロックのブロックベクトルを含む)と
を備える、方法。
例1の方法であって、当該方法はさらに、
左下隣接ブロックが利用可能であり、左下隣接ブロックがIBCモードを使用している場合、現在のブロックの左下隣接ブロックのブロックベクトルを初期のマージリストに挿入する段階(一例において、初期のマージリストは、この段階の前の空リストである、又は、初期のマージリストは現在のブロックの上側隣接ブロックのブロックベクトルを含む、又は、初期のマージリストは現在のブロックの左側隣接ブロックのブロックベクトルを含む、又は、初期のマージリストは現在のブロックの上側隣接ブロックのブロックベクトル、及び現在のブロックの左側隣接ブロックのブロックベクトルを含む、又は、初期のマージリストは現在のブロックの上側隣接ブロックのブロックベクトル、現在のブロックの左側隣接ブロックのブロックベクトル、及び右上隣接ブロックのブロックベクトルを含む)
を備える、方法。
例1又は2の方法であって、当該方法はさらに、
左上隣接ブロックが利用可能で、左上隣接ブロックがIBCモードを使用しており、初期のマージリストにおけるブロックベクトルの数が閾値(例えば、閾値は4である)より小さい場合、現在のブロックの左上隣接ブロックのブロックベクトルを初期のマージリストに挿入する段階(一例において、初期のマージリストは、この段階の前の空リストである、又は、初期のマージリストは現在のブロックの上側隣接ブロックのブロックベクトルを含む、又は、初期のマージリストは現在のブロックの左側隣接ブロックのブロックベクトルを含む、又は、初期のマージリストは現在のブロックの上側隣接ブロックのブロックベクトル、及び現在のブロックの左側隣接ブロックのブロックベクトルを含む、又は、初期のマージリストは現在のブロックの上側隣接ブロックのブロックベクトル、現在のブロックの左側隣接ブロックのブロックベクトル、右上隣接ブロックのブロックベクトルを含む、又は、初期のマージリストは現在のブロックの上側隣接ブロックのブロックベクトル、現在のブロックの左側隣接ブロックのブロックベクトル、右上隣接ブロックのブロックベクトル、及び左下隣接ブロックのブロックベクトルを含む)
を備える、方法。
例1から3のうちいずれか1つによる方法を実行するための処理回路を備えるエンコーダ(20)。
例1から3のうちいずれか1つによる方法を実行するための処理回路を備えるデコーダ(30)。
例1から3のうちいずれか1つによる方法を実行するためのプログラムコードを備えるコンピュータプログラム製品。
1又は複数のプロセッサと、
プロセッサに連結され、プロセッサによる実行のためのプログラミングを保存する非一時的コンピュータ可読記憶媒体であって、当該プログラミングは、プロセッサにより実行される場合、例1から3のうちいずれか1つによる方法を実行するようにデコーダを構成する、非一時的コンピュータ可読記憶媒体と
を備えるデコーダ又はエンコーダ。
本願で使用される数学演算子は、Cプログラミング言語で使用されるそれらと同様である。しかしながら、整数除算及び算術シフト演算の結果はより正確に定義され、べき乗及び実数値除算などの追加の演算が定義される。番号付け及びカウントの規定は一般に、例えば、「第1」は0番目に相当し、「第2」は1番目に相当するなど、0から始まる。
以下の論理演算子は、以下のように定義される。
x&&y x及びyのブール論理上の「and」
x||y x及びyのブール論理上の「or」
! ブール論理上の「not」
x?y:z xがTRUEであるか又は0に等しくない場合、yの値になり、そうでない場合、zの値になる。
以下の関係演算子は、以下のように定義される。
> より大きい
>= 以上
< より小さい
<= 以下
= = に等しい
!= に等しくない
関係演算子が、値「na」(非該当)をアサインされているシンタックス要素又は変数に適用される場合、値「na」は、そのシンタックス要素又は変数の区別的な値として扱われる。値「na」は、任意の他の値に等しくないとみなされる。
以下のビット単位演算子は、以下のように定義される。
& ビット単位の「and」。整数項に対して演算を行う場合、整数値の2の補数表現に対して演算を行う。別の項より少ないビットを含む二進項に対して演算を行う場合、そのより短い項は、0に等しいより上位のビットを追加することによって拡張される。
| ビット単位の「or」。整数項に対して演算を行う場合、整数値の2の補数表現に対して演算を行う。別の項より少ないビットを含む二進項に対して演算を行う場合、そのより短い項は、0に等しいより上位のビットを追加することによって拡張される。
^ ビット単位の「排他的or」。整数項に対して演算を行う場合、整数値の2の補数表現に対して演算を行う。別の項より少ないビットを含む二進項に対して演算を行う場合、そのより短い項は、0に等しいより上位のビットを追加することによって拡張される。
x>>y yの二進数だけの、xの2の補数整数表現の算術右シフト。この関数は、yの非負の整数値に関してのみ定義される。右シフトの結果として最上位ビット(MSB)にシフトされたビットは、シフト操作前のxのMSBに等しい値を有する。
x<<y yの二進数だけの、xの2の補数整数表現の算術左シフト。この関数は、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より大きい。
以下の数学的機能が定義される。
-1.0から1.0までの範囲内にある独立変数xに対して演算を行い、
出力値は、ラジアンの単位で、-π÷2からπ÷2までの範囲内にある。
Atan(x) 逆三角タンジェント関数であり、
独立変数xに対して演算を行い、出力値は、ラジアンの単位で、-π÷2からπ÷2までの範囲内にある。
Clip1Y(x)=Clip3(0,(1<<BitDepthY)-1,x)
Clip1C(x)=Clip3(0,(1<<BitDepthC)-1,x)
Floor(x) xより小さい又はそれに等しい最も大きい整数
Log2(x) 2を底とするxの対数
Log10(x) 10を底とするxの対数
Tan(x) ラジアンの単位で独立変数xに対する演算を行う三角タンジェント関数である。
式の優先順位の順序が括弧を使用して明示的に指示されていない場合、以下のルールが適用される。
-より高い優先順位の演算は、より低い優先順位の任意の演算の前に評価される。
-同じ優先順位の演算は、左から右に順次評価される。
テキストにおいて、論理演算のステートメントが以下の形式で数学的に説明される。
...以下の通りである/...以下が適用される:(...as follows/...the following applies:)
-条件0の場合、ステートメント0(If condition0,statement0)
-そうでなければ、条件1の場合、ステートメント1(Otherwise,if condition1,statement1)
...
そうでなければ(残りの条件に対する有益な備考)、ステートメントn(Otherwise(informative remark on remaining condition),statement n)
インターリーブされた「If...Otherwise,if...Otherwise,...」ステートメントは、「Otherwise,...」で終わる「...as follows」又は「...the following applies」をマッチングすることによって識別され得る。
...以下の通りである/...以下が適用される:(...as follows/...the following applies:)
-以下の条件のすべてが真である場合、ステートメント0:(If all of the following conditions are true,statement0:)
-条件0a(condition 0a)
-条件0b(condition 0b)
-そうでなければ、以下の条件の1又は複数が真である場合、ステートメント1:(Otherwise,if one or more of the following conditions are true,statement1:)
-条件1a(condition 1a)
-条件1b(condition 1b)
...
そうでなければ、ステートメントn(Otherwise,statement n)
条件0の場合、ステートメント0(When condition0,statement0)
条件1の場合、ステートメント1(When condition1,statement1)
[考えられる他の項目]
[項目1]
イントラブロックコピー、IBC、モードのための候補マージリストを構築する方法であって、上記方法は、
左側隣接ブロックが利用可能で上記左側隣接ブロックがIBCモードを使用している場合、現在のブロックの上記左側隣接ブロックのブロックベクトルを上記現在のブロックの初期のマージリストに挿入する段階と、
上側隣接ブロックが利用可能で上記上側隣接ブロックがIBCモードを使用しており、上記上側隣接ブロックのブロックベクトルが上記左側隣接ブロックの上記ブロックベクトルと同じでない場合、上記現在のブロックの上記上側隣接ブロックの上記ブロックベクトルを上記初期のマージリストに挿入する段階と、
上記上側隣接ブロックの上記ブロックベクトルが、履歴ベースの動きベクトル予測子、HMVPにおける最後の候補のブロックベクトルと同じでない場合、且つ上記左側隣接ブロックの上記ブロックベクトルが、上記HMVPにおける上記最後の候補の上記ブロックベクトルと同じでない場合、上記HMVPにおける上記最後の候補の上記ブロックベクトルを上記初期のマージリストに挿入する段階と
を備える、方法。
[項目2]
上記方法はさらに、
上述した上記挿入するプロセスの後の上記初期のマージリストに従って上記現在のブロックのブロックベクトルを取得し、上記現在のブロックのマージ候補インデックスを取得する段階
を備える、項目1に記載の方法。
[項目3]
イントラブロックコピー、IBC、モードのための候補マージリストを構築する方法であって、上記方法は、
隣接ブロックが利用可能で、上記隣接ブロックがIBCモードを使用している場合、現在のブロックの上記隣接ブロックのブロックベクトルを上記現在のブロックの初期のマージリストに挿入する段階と、
上記隣接ブロックの上記ブロックベクトルが履歴ベースの動きベクトル予測子、HMVPにおける最後の候補のブロックベクトルと同じでない場合、上記HMVPにおける上記最後の候補の上記ブロックベクトルを上記初期のマージリストに挿入する段階と、
上記HMVPにおける別の候補のブロックベクトルを上記初期のマージリストに挿入する段階であって、上記HMVPにおける別の候補の上記ブロックベクトルのプルーニングが除去されている、段階と
を備える、方法。
[項目4]
上記方法はさらに、
上述した上記挿入するプロセスの後の上記初期のマージリストに従って上記現在のブロックのブロックベクトルを取得し、上記現在のブロックのマージ候補インデックスを取得する段階
を備える、項目3に記載の方法。
[項目5]
イントラブロックコピー、IBC、モードのための候補マージリストを構築する方法であって、上記方法は、
左側隣接ブロックが利用可能で上記左側隣接ブロックがIBCモードを使用している場合、現在のブロックの上記左側隣接ブロックのブロックベクトルを上記現在のブロックの初期のマージリストに挿入する段階と、
上側隣接ブロックが利用可能で上記上側隣接ブロックがIBCモードを使用しており、上記上側隣接ブロックのブロックベクトルが上記左側隣接ブロックの上記ブロックベクトルと同じでない場合、上記現在のブロックの上記上側隣接ブロックの上記ブロックベクトルを上記初期のマージリストに挿入する段階と、
上記上側隣接ブロックの上記ブロックベクトルが、履歴ベースの動きベクトル予測子、HMVPにおける最後の候補のブロックベクトルと同じでない場合、且つ上記左側隣接ブロックの上記ブロックベクトルが、上記HMVPにおける上記最後の候補の上記ブロックベクトルと同じでない場合、上記HMVPにおける上記最後の候補の上記ブロックベクトルを上記初期のマージリストに挿入する段階と、
上記HMVPにおける別の候補のブロックベクトルを上記初期のマージリストに挿入する段階であって、上記HMVPにおける別の候補の上記ブロックベクトルのプルーニングが除去されている、段階と
を備える、方法。
[項目6]
上記方法はさらに、
上述した上記挿入するプロセスの後の上記初期のマージリストに従って上記現在のブロックのブロックベクトルを取得し、上記現在のブロックのマージ候補インデックスを取得する段階
を備える、項目5に記載の方法。
[項目7]
上記初期のマージリストは、最初の上記挿入するプロセスの前の空リストである、項目5又は6に記載の方法。
[項目8]
上述した上記挿入するプロセスが順番に実行される、項目5から7のいずれか一項に記載の方法。
[項目9]
イントラブロックコピー、IBC、モードのための候補マージリストを構築する方法であって、上記方法は、
隣接ブロックが利用可能で、上記隣接ブロックがIBCモードを使用している場合、現在のブロックの上記隣接ブロックのブロックベクトルを上記現在のブロックの初期のマージリストに挿入する段階と、
上記隣接ブロックの上記ブロックベクトルが履歴ベースの動きベクトル予測子、HMVPにおける最後の候補のブロックベクトルと同じでない場合、上記HMVPにおける候補のブロックベクトルを上記初期のマージリストに挿入する段階と、
を備え、
上記現在のブロックの上記初期のマージリストにおける上記最後のブロックベクトルは、上記HMVPにおける1つの候補の1つのブロックベクトルである、
方法。
[項目10]
上記方法はさらに、
上述した上記挿入するプロセスの後の上記初期のマージリストに従って上記現在のブロックのブロックベクトルを取得し、上記現在のブロックのマージ候補インデックスを取得する段階
を備える、項目9に記載の方法。
[項目11]
イントラブロックコピー、IBC、モードのための候補マージリストを構築する方法であって、上記方法は、
左側隣接ブロックが利用可能で上記左側隣接ブロックがIBCモードを使用している場合、現在のブロックの上記左側隣接ブロックのブロックベクトルを上記現在のブロックの初期のマージリストに挿入する段階と、
上側隣接ブロックが利用可能で上記上側隣接ブロックがIBCモードを使用しており、上記上側隣接ブロックのブロックベクトルが上記左側隣接ブロックの上記ブロックベクトルと同じでない場合、上記現在のブロックの上記上側隣接ブロックの上記ブロックベクトルを上記初期のマージリストに挿入する段階と、
上記上側隣接ブロックの上記ブロックベクトルが、履歴ベースの動きベクトル予測子、HMVPにおける最後の候補のブロックベクトルと同じでない場合、且つ上記左側隣接ブロックの上記ブロックベクトルが、上記HMVPにおける上記最後の候補の上記ブロックベクトルと同じでない場合、上記HMVPにおける上記最後の候補の上記ブロックベクトルを上記初期のマージリストに挿入する段階と、
上記HMVPにおける別の候補のブロックベクトルを上記初期のマージリストに挿入する段階であって、上記HMVPにおける別の候補の上記ブロックベクトルのプルーニングが除去されている、段階と
を備え、
上記現在のブロックの上記初期のマージリストにおける上記最後のブロックベクトルは、上記HMVPにおける上記別の候補の上記ブロックベクトルである、
方法。
[項目12]
項目1から11のいずれか一項に記載の方法を実行するための処理回路を備える、エンコーダ(20)。
[項目13]
項目1から11のいずれか一項に記載の方法を実行するための処理回路を備える、デコーダ(30)。
[項目14]
項目1から11のいずれか一項に記載の方法を実行するためのプログラムコードを備える、コンピュータプログラム製品。
[項目15]
デコーダであって、
1又は複数のプロセッサと、
上記1又は複数のプロセッサに連結され、上記1又は複数のプロセッサによる実行のためのプログラミングを保存する非一時的コンピュータ可読記憶媒体であって、上記プログラミングは、上記1又は複数のプロセッサにより実行される場合、項目1から11のいずれか一項に記載の方法を実行するように上記デコーダを構成する、非一時的コンピュータ可読記憶媒体と
を備えるデコーダ。
Claims (16)
- イントラブロックコピー(IBC)モードのための候補マージリストを構築する方法であって、前記方法は、
左側隣接ブロックが利用可能で前記左側隣接ブロックがIBCモードを使用している場合、現在のブロックの前記左側隣接ブロックのブロックベクトルを前記現在のブロックの初期のマージリストに挿入する段階と、
上側隣接ブロックが利用可能で前記上側隣接ブロックがIBCモードを使用しており、前記上側隣接ブロックのブロックベクトルが前記左側隣接ブロックの前記ブロックベクトルと同じでない場合、前記現在のブロックの前記上側隣接ブロックの前記ブロックベクトルを前記初期のマージリストに挿入する段階と、
前記上側隣接ブロックの前記ブロックベクトルが、履歴ベースの動きベクトル予測子(HMVP)リストにおける最後の候補のブロックベクトルと同じでない場合、且つ前記左側隣接ブロックの前記ブロックベクトルが、前記HMVPリストにおける前記最後の候補の前記ブロックベクトルと同じでない場合、前記HMVPリストにおける前記最後の候補の前記ブロックベクトルを前記初期のマージリストに挿入する段階と
を備え、
前記HMVPリストにおける前記最後の候補の前記ブロックベクトルを前記初期のマージリストに挿入する段階において、
hMvpIdxが1に等しいかどうかを調べ、hMvpIdxが1に等しい場合に、HmvpIbcCandList[NumHmvpIbcCand-1]が前記HMVPリストにおける前記最後の候補であり、
hMvpIdxが1に等しくない場合、前記HMVPリストにおける別の候補の前記ブロックベクトルが、以下に従って前記初期のマージリストへ加えられ、
bvCandList[numCurrCand++]=HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]
ここで、bvCandList[numCurrCand++]は前記初期のマージリストであり、hMvpIdxが1に等しくない場合に、HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]が、前記HMVPリストにおける前記別の候補に対応する、方法。 - 前記方法はさらに、
上述した前記挿入するプロセスの後の前記初期のマージリストに従って前記現在のブロックのブロックベクトルを取得し、前記現在のブロックのマージ候補インデックスを取得する段階
を備える、請求項1に記載の方法。 - イントラブロックコピー(IBC)モードのための候補マージリストを構築する方法であって、前記方法は、
隣接ブロックが利用可能で、前記隣接ブロックがIBCモードを使用している場合、現在のブロックの前記隣接ブロックのブロックベクトルを前記現在のブロックの初期のマージリストに挿入する段階と、
前記隣接ブロックの前記ブロックベクトルが履歴ベースの動きベクトル予測子(HMVP)リストにおける最後の候補のブロックベクトルと同じでない場合、前記HMVPリストにおける前記最後の候補の前記ブロックベクトルを前記初期のマージリストに挿入する段階と、
前記HMVPリストにおける別の候補のブロックベクトルを前記初期のマージリストに挿入する段階であって、前記HMVPリストにおける別の候補の前記ブロックベクトルのプルーニングが除去されている、段階と
を備え、
前記HMVPリストにおける前記最後の候補の前記ブロックベクトルを前記初期のマージリストに挿入する段階および前記HMVPリストにおける前記別の候補の前記ブロックベクトルを前記初期のマージリストに挿入する段階において、
hMvpIdxが1に等しいかどうかを調べ、hMvpIdxが1に等しい場合にHmvpIbcCandList[NumHmvpIbcCand-1]が前記HMVPリストにおける前記最後の候補であって、かつ、前記初期のマージリストにおけるブロックベクトルの候補Nに等しく、
hMvpIdxが1に等しくない場合、前記HMVPリストにおける前記別の候補の前記ブロックベクトルが、以下に従って前記初期のマージリストへ加えられ、
bvCandList[numCurrCand++]=HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]
ここで、bvCandList[numCurrCand++]は前記初期のマージリストであり、hMvpIdxが1に等しくない場合に、HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]が、前記HMVPリストにおける前記別の候補に対応する、方法。 - 前記方法はさらに、
上述した前記挿入するプロセスの後の前記初期のマージリストに従って前記現在のブロックのブロックベクトルを取得し、前記現在のブロックのマージ候補インデックスを取得する段階
を備える、請求項3に記載の方法。 - イントラブロックコピー(IBC)モードのための候補マージリストを構築する方法であって、前記方法は、
左側隣接ブロックが利用可能で前記左側隣接ブロックがIBCモードを使用している場合、現在のブロックの前記左側隣接ブロックのブロックベクトルを前記現在のブロックの初期のマージリストに挿入する段階と、
上側隣接ブロックが利用可能で前記上側隣接ブロックがIBCモードを使用しており、前記上側隣接ブロックのブロックベクトルが前記左側隣接ブロックの前記ブロックベクトルと同じでない場合、前記現在のブロックの前記上側隣接ブロックの前記ブロックベクトルを前記初期のマージリストに挿入する段階と、
前記上側隣接ブロックの前記ブロックベクトルが、履歴ベースの動きベクトル予測子(HMVP)リストにおける最後の候補のブロックベクトルと同じでない場合、且つ前記左側隣接ブロックの前記ブロックベクトルが、前記HMVPリストにおける前記最後の候補の前記ブロックベクトルと同じでない場合、前記HMVPリストにおける前記最後の候補の前記ブロックベクトルを前記初期のマージリストに挿入する段階と、
前記HMVPリストにおける別の候補のブロックベクトルを前記初期のマージリストに挿入する段階であって、前記HMVPリストにおける別の候補の前記ブロックベクトルのプルーニングが除去されている、段階と
を備え、
前記HMVPリストにおける前記最後の候補の前記ブロックベクトルを前記初期のマージリストに挿入する段階および前記HMVPリストにおける前記別の候補の前記ブロックベクトルを前記初期のマージリストに挿入する段階において、
hMvpIdxが1に等しいかどうかを調べ、hMvpIdxが1に等しい場合にHmvpIbcCandList[NumHmvpIbcCand-1]が前記HMVPリストにおける前記最後の候補であって、かつ、前記初期のマージリストにおけるブロックベクトルの候補Nに等しく、
hMvpIdxが1に等しくない場合、前記HMVPリストにおける前記別の候補の前記ブロックベクトルが、以下に従って前記初期のマージリストへ加えられ、
bvCandList[numCurrCand++]=HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]
ここで、bvCandList[numCurrCand++]は前記初期のマージリストであり、hMvpIdxが1に等しくない場合に、HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]が、前記HMVPリストにおける前記別の候補に対応する、方法。 - 前記方法はさらに、
上述した前記挿入するプロセスの後の前記初期のマージリストに従って前記現在のブロックのブロックベクトルを取得し、前記現在のブロックのマージ候補インデックスを取得する段階
を備える、請求項5に記載の方法。 - 前記初期のマージリストは、最初の前記挿入するプロセスの前の空リストである、請求項5又は6に記載の方法。
- 上述した前記挿入するプロセスが順番に実行される、請求項5から7のいずれか一項に記載の方法。
- イントラブロックコピー(IBC)モードのための候補マージリストを構築する方法であって、前記方法は、
隣接ブロックが利用可能で、前記隣接ブロックがIBCモードを使用している場合、現在のブロックの前記隣接ブロックのブロックベクトルを前記現在のブロックの初期のマージリストに挿入する段階と、
前記隣接ブロックの前記ブロックベクトルが履歴ベースの動きベクトル予測子(HMVP)リストにおける最後の候補のブロックベクトルと同じでない場合、前記HMVPリストにおける前記最後の候補の前記ブロックベクトルを前記初期のマージリストに挿入する段階と、
を備え、
前記HMVPリストにおける前記最後の候補の前記ブロックベクトルを前記初期のマージリストに挿入する段階において、
hMvpIdxが1に等しいかどうかを調べ、hMvpIdxが1に等しい場合に、HmvpIbcCandList[NumHmvpIbcCand-1]が前記HMVPリストにおける前記最後の候補であり、
hMvpIdxが1に等しくない場合、前記HMVPリストにおける別の候補の前記ブロックベクトルが、以下に従って前記初期のマージリストへ加えられ、
bvCandList[numCurrCand++]=HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]
ここで、bvCandList[numCurrCand++]は前記初期のマージリストであり、hMvpIdxが1に等しくない場合に、HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]が、前記HMVPリストにおける前記別の候補に対応し、
前記現在のブロックの前記初期のマージリストにおける最後のブロックベクトルは、前記HMVPリストにおける1つの候補の1つのブロックベクトルである、
方法。 - 前記方法はさらに、
上述した前記挿入するプロセスの後の前記初期のマージリストに従って前記現在のブロックのブロックベクトルを取得し、前記現在のブロックのマージ候補インデックスを取得する段階
を備える、請求項9に記載の方法。 - イントラブロックコピー(IBC)モードのための候補マージリストを構築する方法であって、前記方法は、
左側隣接ブロックが利用可能で前記左側隣接ブロックがIBCモードを使用している場合、現在のブロックの前記左側隣接ブロックのブロックベクトルを前記現在のブロックの初期のマージリストに挿入する段階と、
上側隣接ブロックが利用可能で前記上側隣接ブロックがIBCモードを使用しており、前記上側隣接ブロックのブロックベクトルが前記左側隣接ブロックの前記ブロックベクトルと同じでない場合、前記現在のブロックの前記上側隣接ブロックの前記ブロックベクトルを前記初期のマージリストに挿入する段階と、
前記上側隣接ブロックの前記ブロックベクトルが、履歴ベースの動きベクトル予測子(HMVP)リストにおける最後の候補のブロックベクトルと同じでない場合、且つ前記左側隣接ブロックの前記ブロックベクトルが、前記HMVPリストにおける前記最後の候補の前記ブロックベクトルと同じでない場合、前記HMVPリストにおける前記最後の候補の前記ブロックベクトルを前記初期のマージリストに挿入する段階と、
前記HMVPリストにおける別の候補のブロックベクトルを前記初期のマージリストに挿入する段階であって、前記HMVPリストにおける別の候補の前記ブロックベクトルのプルーニングが除去されている、段階と
を備え、
前記HMVPリストにおける前記最後の候補の前記ブロックベクトルを前記初期のマージリストに挿入する段階および前記HMVPリストにおける前記別の候補の前記ブロックベクトルを前記初期のマージリストに挿入する段階において、
hMvpIdxが1に等しいかどうかを調べ、hMvpIdxが1に等しい場合にHmvpIbcCandList[NumHmvpIbcCand-1]が前記HMVPリストにおける前記最後の候補であって、かつ、前記初期のマージリストにおけるブロックベクトルの候補Nに等しく、
hMvpIdxが1に等しくない場合、前記HMVPリストにおける前記別の候補の前記ブロックベクトルが、以下に従って前記初期のマージリストへ加えられ、
bvCandList[numCurrCand++]=HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]
ここで、bvCandList[numCurrCand++]は前記初期のマージリストであり、hMvpIdxが1に等しくない場合に、HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]が、前記HMVPリストにおける前記別の候補に対応し、
前記現在のブロックの前記初期のマージリストにおける最後のブロックベクトルは、前記HMVPリストにおける前記別の候補の前記ブロックベクトルである、
方法。 - 請求項1から11のいずれか一項に記載の方法を実行するための処理回路を備える、エンコーダ。
- 請求項1から11のいずれか一項に記載の方法を実行するための処理回路を備える、デコーダ。
- プロセッサに、請求項1から11のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
- デコーダであって、
1又は複数のプロセッサと、
前記1又は複数のプロセッサに連結され、前記1又は複数のプロセッサによる実行のためのプログラミングを保存する非一時的コンピュータ可読記憶媒体であって、前記プログラミングは、前記1又は複数のプロセッサにより実行される場合、請求項1から11のいずれか一項に記載の方法を実行するように前記デコーダを構成する、非一時的コンピュータ可読記憶媒体と
を備えるデコーダ。 - ビデオデータをビットストリームの形で保存するように構成されている非一時的メモリストレージと、
請求項1から11のいずれか一項に記載の方法を実行するように構成されているビデオデコーダと
を備える、ビデオデータデコーディングデバイス。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962813690P | 2019-03-04 | 2019-03-04 | |
US62/813,690 | 2019-03-04 | ||
US201962815311P | 2019-03-07 | 2019-03-07 | |
US62/815,311 | 2019-03-07 | ||
PCT/CN2020/074575 WO2020177505A1 (en) | 2019-03-04 | 2020-02-10 | An encoder, a decoder and corresponding methods using ibc merge list |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022522570A JP2022522570A (ja) | 2022-04-20 |
JP7477066B2 true JP7477066B2 (ja) | 2024-05-01 |
Family
ID=72337440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021525623A Active JP7477066B2 (ja) | 2019-03-04 | 2020-02-10 | Ibcマージリストを使用するエンコーダ、デコーダ、及び対応する方法 |
Country Status (10)
Country | Link |
---|---|
US (2) | US11546626B2 (ja) |
EP (1) | EP3878181A4 (ja) |
JP (1) | JP7477066B2 (ja) |
KR (1) | KR20210088688A (ja) |
CN (2) | CN112889290A (ja) |
AU (2) | AU2020233003B2 (ja) |
BR (1) | BR112021009922A2 (ja) |
CA (1) | CA3120795A1 (ja) |
MX (1) | MX2021008402A (ja) |
WO (1) | WO2020177505A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11153563B2 (en) * | 2019-03-12 | 2021-10-19 | Qualcomm Incorporated | Combined in-loop filters for video coding |
WO2020256528A1 (ko) * | 2019-06-20 | 2020-12-24 | 한국전자통신연구원 | 비디오 부호화/복호화 방법, 장치 및 비트스트림 저장 매체 |
CN113423004B (zh) * | 2021-08-23 | 2021-11-30 | 杭州一知智能科技有限公司 | 基于解耦译码的视频字幕生成方法和系统 |
US20230075788A1 (en) * | 2021-09-01 | 2023-03-09 | Tencent America LLC | Template matching on ibc merge candidates |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9756354B2 (en) * | 2014-03-17 | 2017-09-05 | Qualcomm Incorporated | Block vector predictor for intra block copying |
CN108632629B9 (zh) * | 2014-03-19 | 2021-06-15 | 株式会社Kt | 针对多视图视频信号生成合并候选列表的方法及解码装置 |
WO2015180014A1 (en) * | 2014-05-26 | 2015-12-03 | Mediatek Singapore Pte. Ltd. | An improved merge candidate list construction method for intra block copy |
US10027981B2 (en) * | 2014-09-01 | 2018-07-17 | Hfi Innovation Inc. | Method of intra picture block copy for screen content and video coding |
WO2016048834A1 (en) | 2014-09-26 | 2016-03-31 | Vid Scale, Inc. | Intra block copy coding with temporal block vector prediction |
JP6527949B2 (ja) * | 2015-01-29 | 2019-06-12 | ヴィド スケール インコーポレイテッド | イントラブロックコピー探索 |
US10887597B2 (en) * | 2015-06-09 | 2021-01-05 | Qualcomm Incorporated | Systems and methods of determining illumination compensation parameters for video coding |
US10812822B2 (en) * | 2015-10-02 | 2020-10-20 | Qualcomm Incorporated | Intra block copy merge mode and padding of unavailable IBC reference region |
US11070796B2 (en) * | 2018-09-28 | 2021-07-20 | Qualcomm Incorporated | Ultimate motion vector expression based pruning for video coding |
US20200112715A1 (en) * | 2018-10-05 | 2020-04-09 | Qualcomm Incorporated | History-based motion vector prediction for inter prediction coding |
US11184633B2 (en) * | 2018-11-27 | 2021-11-23 | Qualcomm Incorporated | Simplification of history-based motion vector prediction |
WO2020114407A1 (en) * | 2018-12-03 | 2020-06-11 | Beijing Bytedance Network Technology Co., Ltd. | Partial pruning method for hmvp mode |
US11025936B2 (en) * | 2019-01-25 | 2021-06-01 | Tencent America LLC | Method and apparatus for video coding |
US11190800B2 (en) * | 2019-02-07 | 2021-11-30 | Qualcomm Incorporated | Motion vector predictor list generation for intra block copy mode in video coding |
-
2020
- 2020-02-10 MX MX2021008402A patent/MX2021008402A/es unknown
- 2020-02-10 BR BR112021009922-0A patent/BR112021009922A2/pt unknown
- 2020-02-10 CN CN202080005826.0A patent/CN112889290A/zh active Pending
- 2020-02-10 CA CA3120795A patent/CA3120795A1/en active Pending
- 2020-02-10 CN CN202110811707.0A patent/CN113660497B/zh active Active
- 2020-02-10 JP JP2021525623A patent/JP7477066B2/ja active Active
- 2020-02-10 EP EP20766336.0A patent/EP3878181A4/en active Pending
- 2020-02-10 WO PCT/CN2020/074575 patent/WO2020177505A1/en unknown
- 2020-02-10 AU AU2020233003A patent/AU2020233003B2/en active Active
- 2020-02-10 KR KR1020217017727A patent/KR20210088688A/ko not_active Application Discontinuation
- 2020-08-14 US US16/993,597 patent/US11546626B2/en active Active
-
2022
- 2022-12-14 US US18/080,903 patent/US20230130158A1/en active Pending
-
2024
- 2024-02-21 AU AU2024201140A patent/AU2024201140A1/en active Pending
Non-Patent Citations (2)
Title |
---|
Benjamin Bross et al., Versatile Video Coding (Draft 4), Joint Video Experts Team (JVET), 2019-02-27, [JVET-M1001-v5] (version 5), pp.212-216 |
Xiaozhong Xu et al., CE8-related: Combination test of JVET-N0176/JVET-N0317/JVET-N0382 on simplification of IBC vector prediction, Joint Video Experts Team (JVET), 2019-03-25, [JVET-N0843-v1] (version 1) |
Also Published As
Publication number | Publication date |
---|---|
US20230130158A1 (en) | 2023-04-27 |
BR112021009922A2 (pt) | 2021-09-28 |
EP3878181A1 (en) | 2021-09-15 |
MX2021008402A (es) | 2021-08-18 |
US11546626B2 (en) | 2023-01-03 |
AU2020233003A1 (en) | 2021-06-10 |
AU2024201140A1 (en) | 2024-03-14 |
CN113660497B (zh) | 2022-06-28 |
KR20210088688A (ko) | 2021-07-14 |
EP3878181A4 (en) | 2022-03-09 |
US20200374541A1 (en) | 2020-11-26 |
CN113660497A (zh) | 2021-11-16 |
JP2022522570A (ja) | 2022-04-20 |
CA3120795A1 (en) | 2020-09-10 |
AU2020233003B2 (en) | 2023-11-23 |
CN112889290A (zh) | 2021-06-01 |
WO2020177505A1 (en) | 2020-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113727101B (zh) | 编码器、解码器及对应帧间预测方法 | |
KR102596735B1 (ko) | 루마 및 크로마 성분에 대한 ibc 전용 버퍼 및 디폴트 값 리프레싱을 사용하는 인코더, 디코더 및 대응하는 방법들 | |
JP7457010B2 (ja) | マージモードのためのエンコーダ、デコーダ、および対応する方法 | |
JP7477066B2 (ja) | Ibcマージリストを使用するエンコーダ、デコーダ、及び対応する方法 | |
CN113924780A (zh) | 用于色度子块的仿射帧间预测的方法及装置 | |
JP7448602B2 (ja) | ビデオコーディングのための、サブブロックマージ候補のための個別マージリストと、イントラ-インター技術との調和 | |
CN113597761A (zh) | 帧内预测方法和装置 | |
CN115023953A (zh) | 指示高级语法的编码器、解码器以及对应方法 | |
KR102616714B1 (ko) | 광학 흐름 정제를 위한 조기 종료 | |
JP2024023666A (ja) | Ibcマージ・リストのために使用する符号化器、復号器、及び対応する方法 | |
CN113302929A (zh) | 几何分割模式的样本距离计算 | |
US11985305B2 (en) | Encoder, a decoder and corresponding methods using for IBC merge list | |
RU2817030C2 (ru) | Кодер, декодер и соответствующие способы использования для списка объединения ibc | |
RU2797574C2 (ru) | Кодер, декодер и соответствующие способы, использующие список на слияние внутрикадрового копирования блоков | |
US20220132150A1 (en) | Motion field storage optimization for a line buffer | |
US20240137499A1 (en) | Encoder, a decoder and corresponding methods for merge mode |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210628 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220531 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220808 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20221115 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230314 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20230314 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20230323 |
|
C21 | Notice of transfer of a case for reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C21 Effective date: 20230328 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20230512 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240402 |