JP7250928B2 - デコーダが実行するビデオデコーディングのための方法、装置及びプログラム、並びにエンコーダが実行するビデオコーディングのための方法 - Google Patents

デコーダが実行するビデオデコーディングのための方法、装置及びプログラム、並びにエンコーダが実行するビデオコーディングのための方法 Download PDF

Info

Publication number
JP7250928B2
JP7250928B2 JP2021531759A JP2021531759A JP7250928B2 JP 7250928 B2 JP7250928 B2 JP 7250928B2 JP 2021531759 A JP2021531759 A JP 2021531759A JP 2021531759 A JP2021531759 A JP 2021531759A JP 7250928 B2 JP7250928 B2 JP 7250928B2
Authority
JP
Japan
Prior art keywords
block
vector predictor
block vector
current
current block
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
Application number
JP2021531759A
Other languages
English (en)
Other versions
JP2022511835A (ja
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 JP2022511835A publication Critical patent/JP2022511835A/ja
Application granted granted Critical
Publication of JP7250928B2 publication Critical patent/JP7250928B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/18Methods 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 a set of transform coefficients
    • 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
    • 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/513Processing of motion vectors
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本開示は、ビデオコーディングに概して関係がある実施形態について記載する。
本明細書中で与えられている背景の説明は、本開示の背景を一般的に提示することを目的とするものである。現在指名されている発明者の研究は、その研究がこの背景の項で説明されている範囲で、及び出願時に先行技術としてさもなければ適格でない可能性がある説明の側面は、本開示に対する先行技術として明示的にも暗黙的にも認められない。
ビデオコーディング及びデコーディングは、動き補償を伴ったインターピクチャ予測を用いて実行可能である。圧縮されていないデジタルビデオは、ピクチャの連続を含むことができ、各ピクチャは、例えば、1920×1080のルミナンスサンプル及び関連するクロミナンスサンプルの空間寸法を有する。ピクチャの連続は、例えば、毎秒60ピクチャ、つまり60Hzの固定又は可変のピクチャレート(俗にフレームレートとしても知られている。)を有することができる。圧縮されていないビデオは、有意なビットレート要件を有している。例えば、サンプル当たり8ビットでの1080p60 4:2:0ビデオ(60Hzのフレームレートでの1920×1080のルミナンスサンプル解像度)は、1.5Gビット/sに近いバンド幅を必要とする。そのようなビデオの1時間は、600Gバイト超の記憶空間を必要とする。
ビデオコーディング及びデコーディングの1つの目的は、圧縮による入力ビデオ信号の冗長性の低減であることができる。圧縮は、いくつかの場合に2桁以上、上記のバンド幅又は記憶空間要件を減らすことを助けることができる。可逆及び不可逆圧縮の両方並びにそれらの組み合わせが用いられ得る。可逆圧縮は、原信号の厳密なコピーが圧縮された原信号から再構成可能である技術を指す。不可逆圧縮を使用する場合に、再構成された信号は、原信号と同じでない場合があるが、原信号と再構成された信号との間のひずみは、再構成された信号を、意図された用途にとって有用なものとするほど十分に小さい。ビデオの場合には、不可逆圧縮が広く用いられている。許容されるひずみの量は用途に依存し、例えば、特定の消費者ストリーミング用途のユーザは、テレビジョン配信用途のユーザよりも高いひずみを許容し得る。達成可能な圧縮比は、より高い許容可能な/受け入れ可能なひずみがより高い圧縮比をもたらし得ることを反映することができる。
ビデオエンコーダ及びデコーダは、例えば、動き補償、変換、量子化、及びエントロピコーディングを含むいくつかの広いカテゴリからの技術を利用することができる。
ビデオコーデック技術は、イントラコーディングとして知られている技術を含むことができる。イントラコーディングでは、サンプル値は、前に再構成された参照ピクチャからのサンプル又は他のデータを参照せずに表現される。いくつかのビデオコーデックでは、ピクチャは、空間的にサンプルのブロックに細分される。サンプルの全てのブロックがイントラモードでコーディングされる場合に、そのピクチャはイントラピクチャであることができる。イントラピクチャ及びそれらの派生物、例えば、独立したデコーダリフレッシュピクチャは、デコーダ状態をリセットするために使用され得るので、コーディングされたビデオビットストリーム及びビデオセッションの最初のピクチャとして、又は静止画像として使用され得る。イントラブロックのサンプルは、変換を受けることができ、変換係数は、エントロピコーディング前に量子化され得る。イントラ予測は、変換前領域でサンプル値を最小限にする技術であることができる。いくつかの場合に、変換後のDC値が小さければ小さいほど、かつ、AC係数が小さければ小さいほど、エントロピコーディング後にブロックを表すために所与の量子化ステップサイズで必要とされるビットはますます少ない。
例えば、MPEG-2世代のコーディング技術から知られているような、従来のイントラコーディングは、イントラ予測を使用しない。しかし、いくつかのより新しいビデオ圧縮技術は、例えば、データの空間的に隣接しかつデコーディング順序において先行するブロックのエンコーディング/デコーディング中に得られた周囲サンプルデータ及び/又はメタデータから試みる技術を含む。かような技術は、以降「イントラ予測」技術と呼ばれる。少なくともいくつかの場合に、イントラ予測は、再構成中の現在のピクチャからのみ参照データを使用し、参照ピクチャからは使用しない点に留意されたい。
多種多様な形態のイントラ予測が存在し得る。かような技術の1つよりも多くが所与のビデオコーディング技術で使用され得る場合に、使用中の技術はイントラ予測モードでコーディングされ得る。特定の場合に、モードは、サブモード及び/又はパラメータを有することができ、それらは、独立してコーディングされ得るか、又はモードコードワードに含まれ得る。所与のモード/サブモード/パラメータ組み合わせのためにどのコードワードを使用すべきは、イントラ予測を通してコーディング効率利得に影響を及ぼし得るので、エントロピコーディング技術が、コードワードをビットストリームに変換するために使用され得る。
特定のモードのイントラ予測が、H.264により導入され、H.265で洗練され、Joint Exploration Model(JEM)、Versatile Video Coding(VVC)、及びBenchmark Set(BMS)などのより新しいコーディング技術で更に洗練された。予測子ブロックは、既に利用可能なサンプルに属する隣接サンプル値を用いて形成され得る。隣接サンプルのサンプル値は、方向に応じて予測子ブロック内にコピーされる。使用中の方向の参照は、ビットストリームでコーディングされ得るか、又はそれ自体予測されてもよい。
図1Aを参照すると、右下には、H.265の33個のとり得る予測子方向(35個のイントラモードのうちの33個の角度モードに対応)から知られている9つの予測子方向のサブセットが表されている。矢印が集まる点(101)は、予測中のサンプルに相当する。矢印は、サンプルが予測されている方向に相当する。例えば、矢印(102)は、サンプル(101)が、水平から45度の角度で右上にある1つ又は複数のサンプルから予測される、ことを示す。同様に、矢印(103)は、サンプル(101)が、水平から22.5度の角度でサンプル(101)の左下にある1つ又は複数のサンプルから予測される、ことを示す。
依然として図1Aを参照して、左上には、4×4個のサンプル(太破線によって示される。)の正方形ブロック(104)が表されている。正方形ブロック(104)は16個のサンプルを含み、各サンプルは、「S」、Y次元でのその位置(例えば、行インデックス)、及びX次元でのその位置(例えば、列インデックス)で標記される。例えば、サンプルS21は、Y次元で(上から)2番目のサンプルかつX次元で(左から)1番目のサンプルである。同様に、サンプルS44は、Y及びXの両方の次元でブロック(104)内の4番目のサンプルである。ブロックはサイズが4×4サンプルであるということで、S44は右下にある。更には、類似した番号付け方式に従う参照サンプルが示されている。参照サンプルは、ブロック(104)に対して、「R」、そのY位置(例えば行インデックス)及びX位置(列インデックス)で標記される。H.264及びH.265の両方で、予測サンプルは、再構成中のブロックに隣接し、従って、負値が使用される必要はない。
イントラピクチャ予測は、信号により伝えられた予測方向によって必要に応じて隣接サンプルから参照サンプル値をコピーすることによって、働くことができる。例えば、コーディングされたビデオビットストリームが、このブロックについて、矢印(102)と一致する予測方向を示す、すなわち、サンプルが水平から45度の角度で右上にある1つ以上の予測サンプルから予測される、とのシグナリングを含む、とする。その場合に、サンプルS41、S32、S23、及びS14は、同じ参照サンプルR05から予測される。それから、サンプルS44は、参照サンプルR08から予測される。
特定の場合に、複数の参照サンプルの値は、参照サンプルを計算するために、特に、方向が45度で等しく分割可能でない場合に、例えば、補間を通じて、組み合わされてよい。
とり得る方向の数は、ビデオコーディング技術が発展するとともに増えている。H.264(2003年)では、9つの異なる方向が表現可能であった。それは、H.265(2013年)では33個にまで増え、そして、JEM/VVC/BMSは、本開示の時点で、最大65個の方向をサポートすることができる。最もありそうな方向を識別するために実験が行われており、エントロピコーディングにおける特定の技術が、可能性が低い方向に対する若干のペナルティを受け入れながら、少数のビットでそれらのありそうな方向を表現するために使用されている。更に、方向それ自体は、時々、隣接する、既にデコーディングされたブロックで使用された隣接方向から予測され得る。
図1Bは、時間とともに増大する予測方向の数を説明するために、JEMによる65個のイントラ予測方向を表す概略図(180)を示す。
方向を表すコーディングされたビデオビットストリーム内のイントラ予測方向ビットのマッピングは、ビデオコーディング技術ごとに異なる可能性があり、例えば、予測方向の単純な直接マッピングから、イントラ予測モードまで、コードワードまで、最確モードを含む複雑な適応スキーム、及び同様の技術まで及び得る。全ての場合で、しかしながら、特定の他の方向よりも統計的にビデオコンテンツで起こる可能性が低い特定の方向が存在し得る。ビデオ圧縮の目標は冗長性の低減であるということで、それらの可能性が低い方向は、上手く働くビデオコーディング技術では、よりありそうな方向よりも多いビット数によって表現されることになる。
動き補償は、不可逆圧縮技術であることができ、前に再構成されたピクチャ又はその部分(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以降MV)によって示された方向において空間的にシフトされた後に、新たに再構成されるピクチャ又はピクチャ部分の予測のために使用される技術に関係があり得る。いくつかの場合に、参照ピクチャは、現在再構成中のピクチャと同じであることができる。MVは2つの次元X及びY、又は3つの次元を有することができ、3番目の次元は、使用中の参照ピクチャの指示である(後者は、間接的に、時間次元であることができる。)。
いくつかのビデオ圧縮技術では、サンプルデータの特定のエリアに適用可能なMVは、他のMVから、例えば、再構成中のエリアに空間的に隣接するサンプルデータの他のエリアに関係があり、デコーディング順序においてそのMVに先行するものから、予測され得る。そうすることで、MVをコーディングするために必要なデータの量を大幅に減らすことができ、それによって、冗長性を取り除きかつ圧縮を高める。例えば、カメラから得られた入力ビデオ信号(ナチュラルビデオとして知られる。)をコーディングする場合に、単一のMVが適用可能であるエリアよりも大きいエリアが同様の方向に移動するという統計的可能性があり、従って、いくつかの場合には、隣接するエリアのMVから導出された同様の動きベクトルを用いて予測可能であるということで、MV予測は有効に働くことができる。その結果、所与のエリアについて求められるMVは、周囲のMVから予測されたMVと類似又は同じであり、エントロピコーディング後に、MVを直接コーディングする場合に使用されることになるビット数よりも少ないビットで表され得る。いくつかの場合に、MV予測は、原信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の例であることができる。他の場合には、MV予測それ自体は、例えば、いくつかの周囲のMVから予測子を計算するときの丸め誤差のために、不可逆であり得る。
様々なMV予測メカニズムがH.265/HEVC(ITU-T Rec. H265,“High Efficiency Video Coding”,2016年12月)で説明されている。H.265が提案する多くのMV予測メカニズムの中から、本明細書では、以降「空間マージ」と呼ばれる技術が説明される。
現在のブロックは、空間的にシフトされた同じサイズの前のブロックから予測可能であると動き探索プロセス中にエンコーダによって認められたサンプルを含むことができる。そのMVを直接にコーディングする代わりに、MVは、1つ以上の参照ピクチャと関連付けられたメタデータから、例えば、(デコーディング順序において)最も最近の参照ピクチャから、A0、A1及びB0、B1、B2と表される5つの周囲サンプルのうちのいずれか1つと関連付けられたMVを用いて導出され得る。H.265では、MV予測は、隣接するブロックが使用している同じ参照ピクチャからの予測子を使用することができる。
開示の態様は、ビデオエンコーディング/デコーディングのための方法及び装置を提供する。いくつかの例で、ビデオデコーディングのための装置は、受信回路及び処理回路を含む。
処理回路は、コーディングされたビデオシーケンスの部分である現在のコーディングされたピクチャ内の現在のブロックについての予測情報をデコーディングするよう構成される。予測情報は、現在のブロックのために使用されているイントラブロックコピー(IBC)予測モードと、現在のブロックのためのブロックベクトル予測子候補リストからブロックベクトル予測子候補を選択するためのインデックスと、非ゼロ残差が現在のブロックについて存在しているかどうかとを示す。処理回路は、非ゼロ残差が現在のブロックについて存在しないとの指示に応答して、現在のブロックのための前記ブロックベクトル予測子候補リストを構成する。そのブロックベクトル予測子候補リストは、第1の数のブロックベクトル予測子候補を有し、候補のシーケンスに基づいて構成される。そうでない場合には、処理回路は、非ゼロ残差が現在のブロックについて存在するとの指示に応答して、現在のブロックのためのブロックベクトル予測子候補リストを構成する。そのブロックベクトル予測子候補リストは、第2の数のブロックベクトル予測子候補を有し、同じ候補のシーケンスに基づいて構成される。処理回路は更に、予測情報で示されているインデックスに基づいて、構成されたブロックベクトル予測子候補リストからブロックベクトル予測子候補を選択する。最後に、処理回路は、選択されたブロックベクトル予測子候補に従って現在のブロックを再構成する。
開示の態様に従って、処理回路は、現在のブロックの複数の空間隣接ブロックの中の第1空間隣接ブロックの第1ブロックベクトルが利用可能であるかどうかを決定する。処理回路は、現在のブロックの複数の空間隣接ブロックの中の第1空間隣接ブロックの第1ブロックベクトルが利用可能であるとの決定に応答して、第1ブロックベクトルをブロックベクトル予測子候補リストに挿入する。処理回路は、現在のブロックの複数の空間隣接ブロックの中の第2空間隣接ブロックの第2ブロックベクトルが利用可能であるかどうかと、第2空間隣接ブロックの前記第2ブロックベクトルが第1空間隣接ブロックの第1ブロックベクトルと同じであるかどうかとを決定する。処理回路は、現在のブロックの複数の空間隣接ブロックの中の第2空間隣接ブロックの第2ブロックベクトルが利用可能でありかつ第2空間隣接ブロックの第2ブロックベクトルが第1空間隣接ブロックの第1ブロックベクトルと同じでないとの決定に応答して、第2ブロックベクトルをブロックベクトル予測子候補リストに挿入する。
実施形態において、現在のブロックの第1空間隣接ブロックは、現在のブロックの左下角に隣接し、第1空間隣接ブロックの底辺は、現在のブロックの底辺に位置合わせされ、現在のブロックの第2空間隣接ブロックは、現在のブロックの右上角に隣接し、第2空間隣接ブロックの右辺は、現在のブロックの右辺に位置合わせされる。
他の実施形態において、現在のブロックの第1空間隣接ブロックは、現在のブロックの左下角に隣接し、第1空間隣接ブロックの上辺は、現在のブロックの底辺に位置合わせされ、現在のブロックの第2空間隣接ブロックは、現在のブロックの右上角に隣接し、第2空間隣接ブロックの左辺は、前記現在のブロックの右辺に位置合わせされる。
他の実施形態において、現在のブロックの第1空間隣接ブロックは、現在のブロックの左辺に隣接し、現在のブロックの第2空間隣接ブロックは、現在のブロックの上辺に隣接する。
実施形態において、ブロックベクトル予測子候補リストに含まれている複数の空間隣接ブロックのブロックベクトル総数が、非ゼロ残差が現在のブロックについて存在しているかどうかに基づく最大許容数に満たない場合に、処理回路は、前にコーディングされたブロックの複数のブロックベクトルから、前にコーディングされたブロックの第3ブロックベクトルを選択する。処理回路は、選択された第3ブロックベクトルが、ブロックベクトル予測子候補リストに含まれている複数の空間隣接ブロックとは異なるかどうかを決定する。処理回路は、選択された第3ブロックベクトルが、ブロックベクトル予測子候補リストに含まれている複数の空間隣接ブロックとは異なるとの決定に応答して、選択された第3ブロックベクトルをブロックベクトル予測子候補リストに挿入する。
実施形態において、ブロックベクトル予測子候補リストに含まれている前にコーディングされたブロック及び複数の空間隣接ブロックのブロックベクトル総数が最大許容数よりも少なく、1よりも多い場合に、処理回路は、ブロックベクトル予測子候補リストから複数のブロックベクトル予測子候補を選択する。処理回路は、少なくとも1つの平均ブロックベクトルを形成するよう、選択された複数のブロックベクトル予測子候補を平均化する。処理回路は、少なくとも1つの平均ブロックベクトルをブロックベクトル予測子候補リストに挿入する。
実施形態において、ブロックベクトル予測子候補リストに含まれている少なくとも1つの平均ブロックベクトル、前にコーディングされたブロックのブロックベクトル、及び複数の空間隣接ブロックのブロックベクトルの総数が最大許容数に満たない場合に、処理回路は、デフォルトのブロックベクトルをブロックベクトル予測子候補リストに挿入する。
実施形態において、デフォルトのブロックベクトルは(0,0)である。
実施形態において、選択されたブロックベクトル予測子候補は、前記非ゼロ残差が前記現在のブロックについて存在する場合に丸められない。
実施形態において、ブロックベクトル予測子候補リストに含まれているブロックベクトル予測子候補のうちの1つが妥当でない場合に、処理回路は、ブロックベクトル予測子候補のうちのその1つに対してプルーニングプロセス又はクリッピングプロセスを実行する。
実施形態において、ブロックベクトル予測子候補のうちの1つは、ブロックベクトル予測子候補のうちのその1つによって予測された参照ブロックがイントラブロックコピー(IBC)予測モードのための許容探索範囲外である場合に、妥当でないと決定される。
開示の態様は、ビデオデコーディングのためにコンピュータによって実行される場合に、コンピュータに、ビデオコーディングのための方法を実行させる命令を記憶している非一時的なコンピュータ可読媒体も適用する。
開示されている対象の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになる。
イントラ予測モードの例示的なサブセットの概略図である。 例示的なイントラ予測方向の説明図である。 実施形態に従う通信システムの略ブロック図の概略図である。 実施形態に従う通信システムの略ブロック図の概略図である。 実施形態に従うデコーダの略ブロック図の概略図である。 実施形態に従うエンコーダの略ブロック図の概略図である。 他の実施形態に従うエンコーダのブロック図を示す。 他の実施形態に従うデコーダのブロック図を示す。 開示の実施形態に従うイントラブロックコピー(IBC)予測モードの例を示す。 開示の実施形態に従う、IBC予測モードの探索範囲のための更新プロセスの例を示す。 開示の実施形態に従う、IBC予測モードの探索範囲のための更新プロセスの例を示す。 開示の実施形態に従う、IBC予測モードの探索範囲のための更新プロセスの例を示す。 開示の実施形態に従う、IBC予測モードの探索範囲のための更新プロセスの例を示す。 本開示の実施形態に従う、特定の制約に従う有効なブロックベクトルの例を示す。 開示の実施形態に従う、空間隣接に基づいたブロックベクトルの例を示す。 開示の実施形態に従う例示的なプロセスを説明するフローチャートを示す。 実施形態に従うコンピュータシステムの概略図である。
図2は、本開示の実施形態に従う通信システム(200)の略ブロック図を表す。通信システム(200)は、例えば、ネットワーク(250)を介して、互いと通信することができる複数の端末デバイスを含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続されている端末デバイス(210)及び(220)の第1対を含む。図2では、端末デバイス(210)及び(220)の第1対は、データの一方向伝送を実行する。例えば、端末デバイス(210)は、ネットワーク(250)を介した他の端末デバイス(220)への伝送のためにビデオデータ(例えば、端末デバイス(210)によって捕捉されるビデオデータのストリーム)をコーディングしてよい。エンコーディングされたビデオデータは、1つ以上のコーディングされたビデオビットストリームの形で伝送可能である。端末デバイス(220)は、コーディングされたビデオデータをネットワーク(250)から受信し、コーディングされたビデオデータをデコーディングしてビデオピクチャを回復し、回復されたビデオデータに従ってビデオピクチャを表示してよい。一方向データ伝送は、メディアサービングアプリケーションなどにおいて一般的であり得る。
他の例では、通信システム(200)は、例えば、ビデオ会議中に、現れ得るコーディングされたビデオデータの双方向伝送を実行する端末デバイス(230)及び(240)の第2対を含む。データの双方向伝送のために、例において、端末デバイス(230)及び(240)の各端末デバイスは、ネットワーク(250)を介した端末デバイス(230)及び(240)のうちの他方の端末デバイスへの伝送のためにビデオデータ(例えば、その端末デバイスによって捕捉されるビデオピクチャのストリーム)をコーディングしてよい。端末デバイス(230)及び(240)の各端末デバイスはまた、端末デバイス(230)及び(240)のうちの他方の端末デバイスによって送信されたコーディングされたビデオデータを受信してよく、コーディングされたビデオデータをデコーディングしてビデオピクチャを回復してよく、回復されたビデオデータに従って、アクセス可能な表示デバイスでビデオピクチャを表示してよい。
図2の例では、端末デバイス(210)、(220)、(230)及び(240)は、サーバ、パーソナルコンピュータ、及びスマートフォンとして表され得るが、本開示の原理はそのように限定され得ない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤー、及び/又は専用のビデオ会議装置により用途を見出す。ネットワーク(250)は、例えば、ワイヤライン(有線)及び/又はワイヤレス通信ネットワークを含む、端末デバイス(210)、(220)、(230)及び(240)の間でコーディングされたビデオデータを伝達する任意数のネットワークに相当する。通信ネットワーク(250)は、回路交換及び/又はパケット交換チャネルにおいてデータを交換し得る。代表的なネットワークには、電気通信網、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットがある。本議論のために、ネットワーク(250)のアーキテクチャ及びトポロジは、以降で説明されない限りは本開示の動作に無関係であり得る。
図3は、開示されている対象の応用例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を表す。開示されている対象は、例えば、ビデオ会議と、デジタルTVと、CD、DVD、メモリスティックなどを含むデジタル媒体上での圧縮されたビデオの記憶と、などを含む他のビデオ対応用途に同様に適用可能であることができる。
ストリーミングシステムは、例えば、圧縮されていないビデオピクチャのストリーム(302)を生成するビデオソース(301)、例えば、デジタルカメラ、を含むことができる捕捉サブシステム(313)を含んでよい。例において、ビデオピクチャのストリーム(302)は、デジタルカメラによって撮影されるサンプルを含む。ビデオピクチャのストリーム(302)は、エンコーディングされたビデオデータ(304)(又はコーディングされたビデオビットストリーム)と比較して高いデータボリュームを強調するために太線で表されており、ビデオソース(301)へ結合されたビデオエンコーダ(303)を含む電子デバイス(320)によって処理され得る。ビデオエンコーダ(303)は、以下で更に詳細に記載されるように、開示されている対象の態様を可能にする又は実装するためのハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができる。エンコーディングされたビデオデータ(304)(又はエンコーディングされたビデオビットストリーム(304))は、ビデオピクチャのストリーム(302)と比較してより低いデータボリュームを強調するために細線で表されており、将来の使用のためにストリーミングサーバ(305)に記憶され得る。図3のクライアントサブシステム(306)及び(308)などの1つ以上のストリーミングクライアントサブシステムは、エンコーディングされたビデオデータ(304)のコピー(307)及び(309)を読み出すためにストリーミングサーバ(305)にアクセスすることができる。クライアントサブシステム(306)は、例えば、電子デバイス(330)において、ビデオデコーダ(310)を含むことができる。ビデオデコーダ(310)は、エンコーディングされたビデオデータの入来するコピー(307)をデコーディングし、ディスプレイ(312)(例えば、表示スクリーン)又は他のレンダリングデバイス(図示せず。)でレンダリングされ得るビデオピクチャの送出ストリーム(311)を生成する。いくつかのストリーミングシステムにおいて、エンコーディングされたビデオデータ(304)、(307)、及び(309)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従ってエンコーディングされ得る。そのような規格の例には、ITU-T推奨H.265がある。例において、開発中のビデオコーディング規格は、Versatile Video Coding(VVC)として俗に知られている。開示されている対象は、VVCに関連して使用されてもよい。
なお、電子デバイス(320)及び(330)は、他のコンポーネント(図示せず。)を含むことができる。例えば、電子デバイス(320)は、ビデオデコーダ(図示せず。)を含むことができ、電子デバイス(330)は、ビデオエンコーダ(図示せず。)を同様に含むことができる。
図4は、本開示の実施形態に従うビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子デバイス(430)に含まれ得る。電子デバイス(430)は、受信器(431)(例えば、受信回路)を含むことができる。ビデオデコーダ(410)は、図3の例のビデオデコーダ(310)の代わりに使用され得る。
受信器(431)は、ビデオデコーダ(410)によってデコーディングされるべき1つ以上のコーディングされたビデオシーケンスを、同じ又は他の実施形態では、一度に1つのコーディングされたビデオシーケンスを、受信してよい。ここで、夫々のコーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(401)から受信されてよく、チャネルは、エンコーディングされたビデオデータを記憶している記憶デバイスへのハードウェア/ソフトウェアリンクであってよい。受信器(431)は、エンコーディングされたビデオデータを他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリームとともに受信してよく、それらは、それらの各々の使用エンティティ(図示せず。)へ転送されてよい。受信器(431)は、コーディングされたビデオシーケンスを他のデータから分離してよい。ネットワークジッタに対抗するために、バッファメモリ(415)が受信器(431)とエントロピデコーダ/パーサ(420)(以降「パーサ(420)」)との間に結合されてよい。特定の用途では、バッファメモリ(415)は、ビデオデコーダ(410)の部分である。他では、それは、ビデオデコーダ(410)の外にあることができる(図示せず。)。更に他では、例えば、ネットワークジッタに対抗するための、ビデオデコーダ(410)の外にあるバッファメモリ(図示せず。)と、加えて、例えば、再生タイミングを操作するための、ビデオデコーダ(410)内のもう1つのバッファメモリ(415)とが存在することができる。受信器(431)が十分なバンド幅及び可制御性の記憶/転送デバイスから、又はアイソシンクロナス(isosynchronous)ネットワークからデータを受信しているときに、バッファメモリ(415)は必要とされなくてもよく、あるいは、小さくてよい。インターネットなどのベストエフォートのパケットネットワークでの使用のために、バッファメモリ(415)は必要とされる場合があり、比較的に大きく、かつ、有利なことには、適応サイズであることができ、ビデオデコーダ(410)の外のオペレーティングシステム又は同様の要素(図示せず。)に少なくとも部分的に実装され得る。
ビデオデコーダ(410)は、コーディングされたビデオシーケンスからシンボル(421)を再構成するためのパーサ(420)を含んでよい。それらのシンボルのカテゴリは、ビデオデコーダ(410)の動作を管理するために使用される情報と、潜在的に、電子デバイス(430)の必須部分でないが、図4に示されたように、電子デバイス(430)へ結合され得るレンダーデバイス(412)(例えば、表示スクリーン)などのレンダリングデバイスを制御するための情報とを含む。レンダリングデバイスのための制御情報は、Supplementary Enhancement Information(SEI)メッセージ又はVideo Usability Information(VUI)パラメータセットフラグメント(図示せず。)の形をとってよい。パーサ(420)は、受信されるコーディングされたビデオシーケンスをパース/エントロピデコーディングしてよい。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存による又はよらない算術コーディング、などを含む様々な原理に従うことができる。パーサ(420)は、コーディングされたビデオシーケンスから、ビデオデコーダにおけるピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータの組を、そのグループに対応する少なくとも1つのパラメータに基づいて抽出し得る。サブグループは、グループ・オブ・ピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)、などを含むことができる。パーサ(420)はまた、変換係数などのコーディングされたビデオシーケンス情報から、量子化パラメータ値、動きベクトル、なども抽出し得る。
パーサ(420)は、シンボル(421)を生成するために、バッファメモリ(415)から受信されたビデオシーケンスに対してエントロピデコーディング/パーシング動作を実行してよい。
シンボル(421)の再構成は、コーディングされたビデオピクチャ又はその部分(例えば、インター及びイントラピクチャ、インター及びイントラブロック)のタイプ及び他の因子に応じて多数の異なるユニットを有することができる。どのユニットがどのように含まれるかは、コーディングされたビデオシーケンスからパーサ(420)によってパースされたサブグループ制御情報によって制御され得る。パーサ(420)と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明りょうさのために表されていない。
既に述べられた機能ブロックを超えて、ビデオデコーダ(410)は、概念的に、以下で説明される多数の機能ユニットに細分され得る。商業上の制約の下で動作する実際の実施では、それらのユニットの多くが互いに密に相互作用し、少なくとも部分的に互いに組み込まれ得る。しかし、開示されている対象を説明することを目的として、以下での機能ユニットへの概念的細分は適切である。
第1ユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、パーサ(420)からシンボル(421)として、量子化された変換係数とともに、使用するために変換するもの、ブロックサイズ、量子化係数、量子化スケーリングマトリクスなどを含む制御情報を受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)へ入力することができるサンプル値を含むブロックを出力することができる。
いくつかの場合に、スケーラ/逆変換器(451)の出力サンプルは、イントラコーディングされたブロック、すなわち、前に再構成されたピクチャからの予測情報を使用しておらず、現在のピクチャの前に再構成された部分からの予測情報を使用することができるブロック、に関係することができる。かような予測情報は、イントラピクチャ予測ユニット(452)によって供給され得る。いくつかの場合に、イントラピクチャ予測ユニット(452)は、現在ピクチャバッファ(458)からフェッチされた周囲の既に再構成された情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在ピクチャバッファ(458)は、例えば、部分的に再構成された現在のピクチャ及び/又は完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(455)は、いくつかの場合に、サンプルごとに、イントラ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって供給される出力サンプル情報に加える。
他の場合では、スケーラ/逆変換ユニット(451)の出力サンプルは、インターコーディングされた、そして潜在的に動き補償されたブロックに関係することができる。かような場合に、動き補償予測ユニット(453)は、予測のために使用されるサンプルをフェッチするよう参照ピクチャメモリ(457)にアクセスすることができる。ブロックに関係するシンボル(421)に従って、フェッチされたサンプルを動き補償した後に、それらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(455)によって、スケーラ/逆変換ユニット(451)の出力(この場合に、残差サンプル又は残差信号と呼ばれる。)に加えられ得る。動き補償予測ユニット(453)が予測サンプルをフェッチする参照ピクチャメモリ(457)内のアドレスは、例えば、X、Y及び参照ピクチャコンポーネントを有することができるシンボル(421)の形で動き補償予測ユニット(453)が利用することができる動きベクトルによって制御され得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(457)からフェッチされるサンプル値の補間や、動きベクトル予測メカニズムなどを含むことができる。
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、インループフィルタ技術を含むことができる。この技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる。)に含まれており、パーサ(420)からのシンボル(421)としてループフィルタユニット(456)に利用可能にされたパラメータによって制御されるが、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(デコーディング順序において)前の部分のデコーディング中に得られたメタ情報にも応答することができ、更には、前に構成されたループフィルタ処理されたサンプル値に応答することができる。
ループフィルタユニット(456)の出力は、レンダーデバイス(412)へ出力され、更には、将来のインターピクチャ予測における使用のために参照ピクチャメモリ(457)に記憶され得るサンプルストリームであることができる。
特定のコーディングされたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用され得る。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(420)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(458)は、参照ピクチャメモリ(457)の部分になることができ、未使用の現在ピクチャバッファが、後続のコーディングされたピクチャの再構成を開始する前に再割り当てされ得る。
ビデオデコーダ(410)は、ITU-T推奨H.265などの規格における所定のビデオ圧縮技術に従ってデコーディング動作を実行してよい。コーディングされたビデオシーケンスは、そのコーディングされたビデオシーケンスが、ビデオ圧縮技術又は規格のシンタックス及びビデオ圧縮技術又は規格において文書化されているプロファイルの両方に従うという意味で、使用中のビデオ圧縮技術又は規格によって規定されたシンタックスに従い得る。具体的には、プロファイルは、ビデオ圧縮技術又は規格で利用可能な全てのツールからそのプロファイルの下での使用のために利用可能な最適なツールとして特定のツールを選択することができる。また、コーディングされたビデオシーケンスの複雑さは、ビデオ圧縮技術又は規格のレベルによって定義された境界内にあることが、順守のために必要である。いくつかの場合に、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、メガサンプル/秒で測定される。)、最大参照ピクチャサイズ、などを制限する。レベルによって設定される制限は、いくつかの場合に、Hypothetical Reference Decoder(HRD)仕様と、コーディングされたビデオシーケンスにおいて通知されるHRDバッファ管理のためのメタデータとを通じて更に制限され得る。
実施形態において、受信器(431)は、エンコーディングされたビデオとともに、追加の(冗長な)データを受信してもよい。追加のデータは、コーディングされたビデオシーケンスの部分としても含まれてもよい。追加のデータは、ビデオデコーダ(410)によって、データを適切にデコーディングするために及び/又は原ビデオデータをより正確に再構成するために使用されてよい。追加のデータは、例えば、時間、空間、又は信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正符号、などの形をとることができる。
図5は、本開示の実施形態に従うビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子デバイス(520)に含まれている。電子デバイス(520)は、送信器(540)(例えば、送信回路)を含む。ビデオエンコーダ(503)は、図3の例のビデオエンコーダ(303)の代わりに使用され得る。
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によってコーディングされるべきビデオ画像を捕捉し得るビデオソース(501)(図5の例では電子デバイス(520)の部分ではない。)からビデオサンプルを受信してよい。他の例では、ビデオソース(501)は、電子デバイス(520)の部分である。
ビデオソース(501)は、任意の適切なビットデプス(例えば、8ビット、10ビット、12ビットなど)、任意の色空間(例えば、BT.601 YCrCB、RGBなど)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形で、ビデオエンコーダ(503)によってコーディングされるべきソースビデオシーケンスを供給してよい。メディアサービングシステムでは、ビデオソース(501)は、前に準備されたビデオを記憶している記憶デバイスであってよい。ビデオ会議システムでは、ビデオソース(501)は、ローカル画像情報をビデオシーケンスとして捕捉するカメラであってよい。ビデオデータは、順に見られる場合に動きを授ける複数の個別ピクチャとして供給されてもよい。ピクチャ自体は、ピクセルの空間アレイとして編成されてよく、各ピクセルは、使用中のサンプリング構造、色空間、などに依存する1つ以上のサンプルを有することができる。当業者であれば、ピクセルとサンプルとの間の関係を容易に理解することができる。本明細書は、以下、サンプルに焦点を当てる。
実施形態に従って、ビデオエンコーダ(503)は、実時間において又は用途によって必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャを、コーディングされたビデオシーケンス(543)へとコーディング及び圧縮してよい。適切なコーディング速度を強いることは、コントローラ(550)の一機能である。いくつかの実施形態において、コントローラ(550)は、以下で記載されるような他の機能ユニットを制御し、それらのユニットへ機能的に結合される。結合は明りょうさのために表されていない。コントローラ(550)によってセットされるパラメータには、レート制御に関連したパラメータ(ピクチャスキップ、量子化器、レートひずみ最適化技術のラムダ値、など)、ピクチャサイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲、などが含まれ得る。コントローラ(550)は、特定のシステム設計のために最適化されたビデオエンコーダ(503)に関係する他の適切な機能を有するよう構成され得る。
いくつかの実施形態において、ビデオエンコーダ(503)は、コーディングループで動作するよう構成される。過度に単純化された記載として、例において、コーディングループは、ソースコーダ(530)(例えば、コーディングされるべき入力ピクチャと、参照ピクチャとに基づいて、シンボルストリームなどのシンボルを生成することに関与する。)と、ビデオエンコーダ(503)に埋め込まれた(ローカル)デコーダ(533)とを含むことができる。デコーダ(533)は、(シンボルとコーディングされたビデオストリームとの間の如何なる圧縮も、開示されている対象で考えられているビデオ圧縮技術において可逆であるということで)(遠隔の)デコーダも生成することになるのと同様の方法でサンプルデータを生成するようにシンボルを再構成する。その再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(534)へ入力される。シンボルストリームのデコーディングは、デコーダの場所(ローカル又は遠隔)に依存しないビットパーフェクト(bit-exact)な結果をもたらすので、参照ピクチャメモリ(534)内のコンテンツも、ローカルのエンコーダと遠隔のエンコーダとの間でビットパーフェクトである。すなわち、エンコーダの予測部分は、デコーダがデコーディング中に予測を使用するときに“見る”ことになるのとまさに同じサンプル値を参照ピクチャサンプルとして“見る”。参照ピクチャのシンクロニシティ(及び、例えば、チャネルエラーのために、シンクロニシティが維持され得ない場合に、結果として生じるドリフト)のこの基本原理は、いくつかの関連技術でも使用されている。
“ローカル”のデコーダ(533)の動作は、図4とともに先に詳細に既に説明されている、ビデオデコーダ(410)などの“遠隔”のデコーダと同じであることができる。一時的に図4も参照すると、しかしながら、シンボルが利用可能であり、エントロピコーダ(545)及びパーサ(420)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングが可逆であることができるということで、バッファメモリ(415)及びパーサ(420)を含むビデオデコーダ(410)のエントロピデコーディング部分は、ローカルのデコーダ(533)において完全には実装されなくてもよい。
この時点で行われ得る観察は、デコーダに存在するパーシング/エントロピデコーディングを除く如何なるデコーダ技術も、対応するエンコーダにおいて、実質的に同じ機能形態で、必ずしも存在する必要がないことである。この理由により、開示されている対象は、デコーダの動作に焦点を当てる。エンコーダ技術の説明は、それらが、包括的に記載されるデコーダ技術の逆であるということで、省略され得る。特定の範囲においてのみ、より詳細な説明が必要とされ、以下で与えられている。
動作中、ソースコーダ(530)は、動き補償された予測コーディングを実行してよい。これは、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の前にコーディングされたピクチャを参照して予測的に入力ピクチャをコーディングする。このようにして、コーディングエンジン(532)は、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックと入力ピクチャのピクセルブロックとの間の差をコーディングする。
ローカルのビデオデコーダ(533)は、ソースコーダ(530)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコーディングしてよい。コーディングエンジン(532)の動作は、有利なことに、不可逆プロセスであってよい。コーディングされたビデオデータがビデオデコーダ(図5には図示せず。)でデコーディングされ得るとき、再構成されたビデオシーケンスは、通常は、いくらかのエラーを伴ったソースビデオシーケンスの複製であり得る。ローカルのビデオデコーダ(533)は、参照ピクチャに対してビデオデコーダによって実行され得るデコーディングプロセスを再現し、再構成された参照ピクチャを参照ピクチャキャッシュ(534)に格納されるようにしてよい。このように、ビデオエンコーダ(503)は、(伝送エラーなしで)遠端のビデオデコーダによって取得されることになる再構成された参照ピクチャと共通の内容を有している再構成された参照ピクチャのコピーをローカルで記憶し得る。
予測器(535)は、コーディングエンジン(532)のための予測探索を実行してよい。すなわち、新しいピクチャがコーディングされるために、予測器(535)は、その新しいピクチャのための適切な予測基準となり得る参照ピクチャ動きベクトル、ブロック形状、などの特定のメタデータ又は(候補参照ピクセルブロックとしての)サンプルデータを参照ピクチャメモリ(534)から探してよい。予測器(535)は、適切な予測基準を見つけるためにサンプルブロック・バイ・ピクセルブロックベース(sample block-by-pixel block basis)で動作してよい。いくつかの場合に、予測器(535)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(534)に記憶されている複数の参照ピクチャから引き出された予測基準を有してよい。
コントローラ(550)は、例えば、ビデオデータをエンコーディングするために使用されるパラメータ及びサブグループパラメータの設定を含め、ソースコーダ(530)のコーディング動作を管理してよい。
上記の全ての機能ユニットの出力は、エントロピコーダ(545)においてエントロピコーディングを受けてよい。エントロピコーダ(545)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを、コーディングされたビデオシーケンスへと変換する。
送信器(540)は、エントロピコーダ(545)によって生成されたコーディングされたビデオシーケンスを、通信チャネル(560)を介した伝送のために準備するようにバッファリングしてよい。通信チャネル(560)は、エンコーディングされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってよい。送信器(540)は、ビデオコーダ(503)からのコーディングされたビデオデータを、送信されるべき他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリーム(ソースは図示せず)とマージしてもよい。
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理してよい。コーディング中、コントローラ(550)は、各々のピクチャに適用され得るコーディング技術に影響を及ぼす可能性がある特定のコーディングされたピクチャタイプを夫々のコーディングされたピクチャに割り当ててよい。例えば、ピクチャはしばしば、次のピクチャタイプのうちの1つとして割り当てられてよい。
イントラピクチャ(Intra Picture)(Iピクチャ)は、予測のソースとしてシーケンス内の如何なる他のピクチャも使用せずにコーディング及びデコーディングされ得るピクチャであってよい。いくつかのビデオコーデックは、例えば、独立したデコーダリフレッシュ(Independent Decoder Refresh,IDR)ピクチャを含む種々のタイプのイントラピクチャを許容する。当業者であれば、Iピクチャのそのような変形並びにそれらの各々の応用及び特徴に気づく。
予測ピクチャ(Predictive Picture)(Pピクチャ)は、各ブロックのサンプル値を予測するために多くても1つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及びデコーディングされ得るピクチャであってよい。
双方向予測ピクチャ(Bi-directionally Predictive Picture)(Bピクチャ)は、各ブロックのサンプル値を予測するために多くても2つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及びデコーディングされ得るピクチャであってよい。同様に、多重予測ピクチャ(multiple-predictive picture(s))は、単一のブロックの再構成のために2つよりも多い参照ピクチャ及び関連するメタデータを使用することができる。
ソースピクチャは、一般に、複数のサンプルブロック(例えば、夫々、4×4、8×8、4×8、又は16×16のサンプルのブロック)に空間的に細分され、ブロックごとにコーディングされてよい。ブロックは、ブロックの各々のピクチャに適用されているコーディング割り当てによって決定される他の(既にコーディングされた)ブロックを参照して予測的にコーディングされてよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてよく、あるいは、それらは、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、1つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、予測的にコーディングされてよい。Bピクチャのブロックは、1つ又は2つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、予測的にコーディングされてよい。
ビデオエンコーダ(503)は、ITU-T推奨H.265のような所定のビデオコーディング技術又は規格に従ってコーディング動作を実行してよい。その動作中に、ビデオエンコーダ(503)は、入力ビデオシーケンスにおける時間及び空間冗長性を利用する予測コーディング動作を含む様々な圧縮動作を実行してよい。従って、コーディングされたビデオデータは、使用されているビデオコーディング技術又は規格によって定められているシンタックスに従い得る。
実施形態において、送信器(540)は、エンコーディングされたビデオとともに追加のデータを送信してもよい。ソースコーダ(530)は、コーディングされたビデオシーケンスの部分としてそのようなデータを含めてよい。追加のデータは、時間/空間/SNRエンハンスメントレイヤ、冗長ピクチャ及びスライスなどの他の形式の冗長データ、SEIメッセージ又はVUIパラメータセットフラグメント、などを有してよい。
ビデオは、時間シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)として捕捉されてよい。イントラピクチャ予測(しばしばイントラ予測と省略される。)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間又は他の)相関を利用する。例において、現在のピクチャと呼ばれる、エンコーディング/デコーディング中の特定のピクチャは、ブロックに分割される。現在のピクチャ内のあるブロックが、ビデオ内の前にコーディングされた依然としてバッファリングされている参照ピクチャ内の参照ブロックと類似している場合に、現在にピクチャ内のそのブロックは、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ内の参照ブロックを指し示し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する第3の次元を有することができる。
いくつかの実施形態において、双予測技術がインターピクチャ予測において使用され得る。双予測技術に従って、2つの参照ピクチャ、例えば、ビデオ内で現在のピクチャに対してデコーディング順序において両方とも先行する(しかし、表示順序では、夫々、過去及び将来にあってよい。)第1参照ピクチャ及び第2参照ピクチャが、使用される。現在のピクチャ内のあるブロックは、第1参照ピクチャ内の第1参照ブロックを指し示す第1動きベクトルと、第2参照ピクチャ内の第2参照ブロックを指し示す第2動きベクトルとによって、コーディングされ得る。そのブロックは、第1参照ブロック及び第2参照ブロックの組み合わせによって予測可能である。
更に、マージモード技術が、コーディング効率を改善するためにインターピクチャ予測において使用され得る。
本開示のいくつかの実施形態に従って、インターピクチャ予測及びイントラピクチャ予測などの予測は、ブロックのユニットにおいて実行される。例えば、HEVC規格に従って、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセルといった同じサイズを有する。一般に、CTUは、1つのルーマCTB及び2つのクロマCTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つ又は複数のコーディングユニット(CU)に再帰的に四分木分割され得る。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、又は32×32ピクセルの4つのCU、又は16×16ピクセルの16個のCUに分割可能である。例において、各CUは、インター予測タイプ又はイントラ予測タイプなどのCUのための予測タイプを決定するよう解析される。CUは、時間及び/又は空間予測可能性に応じて1つ以上の予測ユニット(PU)に分割される。一般に、各PUは、1つのルーマ予測ブロック(PB)及び2つのクロマPBを含む。実施形態において、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロックの単位で実行される。予測ブロックの例としてルーマ予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなどのような、ピクセルの値(例えば、ルーマ値)の行列を含む。
図6は、本開示の他の実施形態に従うビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、ビデオピクチャの連続に含まれる現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受け取り、コーディングされたビデオシーケンスの部分であるコーディングされたピクチャへと処理ブロックをエンコーディングするよう構成されてよい。例において、ビデオエンコーダ(603)は、図3の例のビデオエンコーダ(303)の代わりに使用される。
HEVCの例では、ビデオエンコーダ(603)は、8×8サンプルの予測ブロックなどのような処理ブロックのサンプル値の行列を受け取る。ビデオエンコーダ(603)は、例えば、レートひずみ最適化を用いて、処理ブロックがイントラモード、インターモード、又は双予測モードにより最も良くコーディングされるかどうかを決定する。処理ブロックがイントラモードでコーディングされるべきである場合には、ビデオエンコーダ(603)は、コーディングされたピクチャへと処理ブロックをエンコーディングするようイントラ予測技術を使用してよく、処理ブロックがインターモード又は双予測モードでコーディングされるべきである場合には、ビデオエンコーダ(603)は、コーディングされたピクチャへと処理ブロックをエンコーディングするようインター予測又は双予測技術を夫々使用してよい。特定のビデオコーディング技術において、マージモードは、予測子の外にあるコーディングされた動きベクトル成分の恩恵を受けずに1つ以上の動きベクトル予測子から動きベクトルが導出されるインターピクチャ予測サブモードであることができる。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在することがある。例において、ビデオエンコーダ(603)は、処理ブロックのモードを決定するモード決定モジュール(図示せず。)などの他のコンポーネントを含む。
図6の例では、ビデオエンコーダ(603)は、図6に示されるように結合されているインターエンコーダ(630)、イントラエンコーダ(622)、残差計算部(623)、スイッチ(626)、残差エンコーダ(624)、汎用コントローラ(621)、及びエントロピエンコーダ(625)を含む。
インターエンコーダ(630)は、現在のブロック(例えば、処理ブロック)のサンプルを受け取り、そのブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコーディング技術に従う残差情報の記述、動きベクトル、マージモード情報)を生成し、何らかの適切な技術を用いてインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するよう構成される。いくつかの例において、参照ピクチャは、エンコーディングされたビデオ情報に基づいてデコーディングされているデコーディングされた参照ピクチャである。
イントラエンコーダ(622)は、現在のブロック(例えば、処理ブロック)のサンプルを受け取り、いくつかの場合には、同じピクチャ内で既にコーディングされたブロックとそのブロックを比較し、変換後の量子化された係数を、更には、いくつかの場合には、イントラ予測情報(例えば、1つ以上のイントラエンコーディング技術に従うイントラ予測方向情報)も生成するよう構成される。例において、イントラエンコーダ(622)はまた、イントラ予測情報及び同じピクチャ内の参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)を計算する。
汎用コントローラ(621)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(603)の他のコンポーネントを制御するよう構成される。例において、汎用コントローラ(621)は、ブロックのモードを決定し、モードに基づいて制御信号をスイッチ(626)へ供給する。例えば、モードがイントラモードである場合には、汎用コントローラ(621)は、残差計算部(623)による使用のためにイントラモード結果を選択するようスイッチ(626)を制御し、そして、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含めるようエントロピエンコーダ(625)を制御する。モードがインターモードである場合には、汎用コントローラ(621)は、残差計算部(623)による使用のためにインター予測結果を選択するようスイッチ(626)を制御し、そして、インター予測情報を選択し、インター予測情報をビットストリームに含めるようエントロピエンコーダ(625)を制御する。
残差計算部(623)は、受け取られたブロックと、イントラエンコーダ(622)又はインターエンコーダ(630)から選択された予測結果との間の差(残差データ)を計算するよう構成される。残差エンコーダ(624)は、変換係数を生成するよう残差データをエンコーディングするように残差データに基づいて動作するよう構成される。例において、残差エンコーダ(624)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するよう構成される。次いで、変換係数は、量子化された変換係数を取得するよう量子化処理を受ける。様々な実施形態において、ビデオエンコーダ(603)はまた、残差デコーダ(628)も含む。残差デコーダ(628)は、逆変換を実行し、デコーディングされた残差データを生成するよう構成される。デコーディングされた残差データは、イントラエンコーダ(622)及びインターエンコーダ(630)によって適切に使用され得る。例えば、インターエンコーダ(630)は、デコーディングされた残差データ及びインター予測情報に基づいて、デコーディングされたブロックを生成することができ、イントラエンコーダ(622)は、デコーディングされた残差データ及びイントラ予測情報に基づいて、デコーディングされたブロックを生成することができる。デコーディングされたブロックは、デコーディングされたピクチャを生成するよう適切に処理され、デコーディングされたピクチャは、メモリ回路(図示せず。)にバッファリングされ、いくつかの例では参照ピクチャとして使用され得る。
エントロピエンコーダ(625)は、エンコーディングされたブロックを含めるようにビットストリームをフォーマット化するよう構成される。エントロピエンコーダ(625)は、HEVC規格などの適切な規格に従って様々な情報を含めるよう構成される。例において、エントロピエンコーダ(625)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の適切な情報をビットストリームに含めるよう構成される。開示されている対象に従って、インターモード又は双予測モードのどちらか一方のマージサブモードでブロックをコーディングする場合に、残差情報は存在しない点に留意されたい。
図7は、本開示の他の実施形態に従うビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、コーディングされたビデオシーケンスの部分であるコーディングされたピクチャを受け取り、コーディングされたピクチャをデコーディングして、再構成されたピクチャを生成するよう構成される。例において、ビデオデコーダ(710)は、図3の例のビデオデコーダ(310)の代わりに使用される。
図7の例では、ビデオデコーダ(710)は、図7に示されるように結合されているエントロピデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構成モジュール(774)、及びイントラデコーダ(772)を含む。
エントロピデコーダ(771)は、コーディングされたピクチャから、シンタックス要素を表す特定のシンボルを再構成するよう構成され得、それらから、コーディングされたピクチャは構成されている。かようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、又はマージサブモード若しくは他のサブモードにおけるインターモード若しくは双予測モード)、イントラデコーダ(772)又はインターデコーダ(780)による予測のために夫々使用される特定のサンプル又はメタデータを識別することができる予測情報(例えば、イントラ予測情報又はインター予測情報)、例えば、量子化された変換係数の形をとる残差情報、などを含むことができる。例において、予測モードがインター又は双予測モードである場合には、インター予測情報がインターデコーダ(780)へ供給され、予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラデコーダ(772)へ供給される。残差情報は、逆量子化を受けることができ、残差デコーダ(773)へ供給される。
インターデコーダ(780)は、インター予測情報を受け取り、インター予測情報に基づいてインター予測結果を生成するよう構成される。
イントラデコーダ(772)は、イントラ予測情報を受け取り、イントラ予測情報に基づいて予測結果を生成するよう構成される。
残差デコーダ(773)は、逆量子化された変換係数を取り出すように逆量子化を実行し、逆量子化された変換係数を処理して、残差を周波数領域から空間領域に変換するよう構成される。残差デコーダ(773)はまた、(量子化パラメータ(QP)を含めるための)特定の制御情報を要求してもよく、その情報は、エントロピデコーダ(771)によって供給されてよい(これは低容量の制御情報のみであるということで、データパスは示されない。)。
再構成モジュール(774)は、残差デコーダ(773)によって出力された残差と、(場合によっては、インター又はイントラ予測モジュールによって出力された)予測結果とを空間領域において組み合わせて、再構成されたブロックを形成するよう構成される。再構成されたブロックは、再構成されたピクチャの部分であってよく、次いで、再構成されたピクチャは、再構成されたビデオの部分であってよい。なお、デブロッキング動作などのような他の適切な動作が、視覚品質を改善するために実行されてもよい。
なお、ビデオエンコーダ(303)、(503)及び(603)並びにビデオデコーダ(310)、(410)及び(710)は、如何なる適切な技術によっても実装可能である。実施形態において、ビデオエンコーダ(303)、(503)及び(603)並びにビデオデコーダ(310)、(410)及び(710)は、1つ以上の集積回路を用いて実装可能である。他の実施形態では、ビデオエンコーダ(303)、(503)及び(603)並びにビデオデコーダ(310)、(410)及び(710)は、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実装可能である。
一般に、異なるピクチャに基づいたブロックベースの補償は、動き補償又はインター予測ブロック補償と呼ばれ得る。しかし、ブロック補償は、同じピクチャ内の前に再構成されたエリアから行われることがある。かようなブロック補償は、イントラピクチャブロック補償、現在ピクチャ参照(Current Picture Referencing,CPR)、又はイントラブロックコピー(Intra Block Copy,IBC)と呼ばれ得る。
開示の態様は、同じピクチャ内のブロックベースの補償のための技術(例えば、IBC予測モード)を提供する。
開示の態様に従って、IBC予測モードでは、同じピクチャ内の現在のブロックと参照ブロックとの間のオフセットを示す変位ベクトルは、ブロックベクトル(BV)と呼ばれる。なお、参照ブロックは、現在のブロックより前に既に再構成されている。その上、並列処理については、タイル/スライス境界又は波面ラダー形状境界にある参照エリアは、利用可能な参照ブロックとして使用されることから除かれ得る。これらの制約により、ブロックベクトルは、インター予測モードの動き補償において如何なる値(x又はyのどちらか一方の方向で正又は負)にあることもできる動きベクトルとは異なり得る。
IBC予測モードにおけるブロックベクトルのコーディングは、明示的又は暗黙的のどちらか一方であることができる。明示的なモードでは、ブロックベクトルとブロックベクトルの予測子との間のブロックベクトル差分が通知される。IBC予測モードの明示的なモードでブロックベクトルをコーディングする方法は、インター予測モードのadvanced motion vector prediction(AMVP)で動きベクトルをコーディングする方法と同様であり得る。暗黙的なモードでは、ブロックベクトルは、インター予測モードのマージモードでの動きベクトル予測と同様の方法で、ブロックベクトル差分を使用せずにブロックベクトルの予測子から回復される。その上、ブロックベクトルの分解能は、一実施形態では整数位置に制限され得るが、他の実施形態では分数位置を指し示すことが許され得る。
ブロックレベルでのIBC予測モードの使用は、例えば、ブロックレベルフラグ(IBCフラグと呼ばれる)又は参照インデックスを用いて、通知され得る。IBCフラグを使用する場合に、現在のブロックは暗黙的モードでコーディングされ得ない。参照インデックスを使用する場合に、現在のデコーディングされたピクチャは、参照ピクチャリストの最後の位置に入れられている参照ピクチャとして扱われ得る。この参照ピクチャはまた、デコーディングピクチャバッファ(Decoded Picture Buffer,DPB)内の他の時間参照ピクチャとともに管理されてもよい。
図8は、開示の実施形態に従う、イントラブロックコピー(IBC)予測モードの例を示す。図8の例では、現在のピクチャ(800)は再構成中であり、再構成されたエリア(801)(灰色のエリア)及びデコーディングされるべきエリア(802)(白色のエリア)を含む。再構成されたエリア(801)内のブロックは既にデコーディングされており、再構成されるべきエリア(802)内のブロックは、デコーディング中であるか又はデコーディングされることになっているかのどちらかである。現在のブロック(804)は、再構成されるべきエリア(802)内にあり、デコーディング中である。現在のブロック(804)は、再構成されたエリア(801)内にある参照ブロック(805)からデコーディングされ得る。現在のブロック(804)のデコーディングは、現在のブロック(804)と参照ブロック(805)との間のオフセットであるブロックベクトル(803)に基づく。
開示の態様に従って、現在のブロック(例えば、現在のブロック(804))についてブロックベクトル(例えば、ブロックベクトル(803))を導出するために使用された参照ピクチャ(例えば、参照ブロック(805))は、IBC予測モードの探索範囲内にある。
いくつかの実施形態に従って、IBC予測モードの探索範囲は、現在のブロックが存在する現在のCTU内にあるよう制約される。例において、IBC予測モードの探索範囲について参照サンプルを格納するためのメモリは、1CTUサイズ(例えば、128×128サンプル)である。1CTUサイズ(128×128サンプル)が、各領域が64×64サンプルを有する4つの領域を含む場合に、メモリはかような4つの領域を格納してよく、1つの領域は、現在再構成されている64×64サンプルであってよく、各領域が64×64サンプルを有する残り3つの領域は、参照サンプルであってよい。
いくつかの実施形態に従って、IBC予測モードの探索範囲は、探索範囲を格納するためのメモリを変更せずに(例えば、1CTUサイズ)、現在のCTUの左CTUのいくつかの部分まで広げられ得る。それにより、探索範囲は現在のCTU内にあるよう制約されなくてもよい。なお、探索範囲は、現在のCTU内の現在のブロックの位置に依存してよい。すなわち、探索範囲は、現在のCTU内の現在のブロックの位置に従って構成されてよい。
図9A~9Dは、開示の実施形態に従う、IBC予測モードの探索範囲についての更新プロセスの例を示す。上述されたように、有効な探索範囲は、現在のCTU(900)の左CTU(910)のいくつかの部分まで広げられる。
この更新プロセス中に、左CTUからの格納された参照サンプルは、現在のCTUからの再構成されたサンプルにより更新される。図9A~9Dでは、灰色の領域は、既に再構成された領域を示し、白色の領域は、再構成されるべき領域を示し、縦線及び文字“Curr”を有する領域は、現在のブロックがある現在のコーディング/デコーディング領域を示す。その上、各図において、左の4つの領域(911)~(914)は、左CTU(910)に属し、右の4つの領域(901)~(904)は、現在のCTU(900)に属する。
なお、左CTU(910)の4つの領域(911)~(914)の全ては既に再構成されている。よって、メモリは最初に、左CTU(910)からの参照サンプルのこれら4つの領域の全てを格納し、次いで、現在のCTU(900)からの現在再構成されているサンプルの同じ相対領域で左CTU(910)からの参照サンプルの領域を更新する。
例えば、図9Aでは、現在のCTU(900)内の現在の領域(901)が再構成中であり、現在の領域(901)の左CTU(910)内の同一位置の領域は、既に再構成された領域(911)である。同一位置の領域(911)は、現在のCTU(900)内の現在のブロック(901)と同じ相対領域により左CTU(910)の領域内にある。よって、同一位置の領域(911)の参照サンプルを格納するメモリ領域は、現在の領域(901)の再構成されたサンプルを格納するよう更新され、“X”は、同一位置の領域(911)の参照サンプルがもはやメモリに格納されていないことを示すよう図9Aの同一位置の領域(911)にマークされている。
同様に、図9Bでは、現在のCTU(900)内の現在の領域(901)が再構成中であり、現在の領域(902)の左CTU(910)内の同一位置の領域は領域(912)である。同一位置の領域(912)は、現在のCTU(900)内の現在の領域(902)と同じ相対領域により左CTU(910)の領域内にある。よって、同一位置の領域(912)の参照サンプルを格納するメモリ領域は、現在の領域(902)の再構成されたサンプルを格納するよう更新され、“X”は、同一位置の領域(912)の参照サンプルがもはやメモリに格納されていないことを示すよう図9Bの同一位置の領域(912)にマークされている。
図9Cでは、現在のCTU(900)内の現在の領域(903)が再構成中であり、現在の領域(903)の左CTU(910)内の同一位置の領域は領域(913)である。同一位置の領域(913)は、現在のCTU(900)内の現在の領域(903)と同じ相対領域により左CTU(910)の領域内にある。よって、同一位置の領域(913)の参照サンプルを格納するメモリ領域は、現在の領域(903)の再構成されたサンプルを格納するよう更新され、“X”は、同一位置の領域(913)の参照サンプルがもはやメモリに格納されていないことを示すよう図9Cの同一位置の領域(913)にマークされている。
図9Cでは、現在のCTU(900)内の現在の領域(904)が再構成中であり、現在の領域(904)の左CTU(910)内の同一位置の領域は領域(914)である。同一位置の領域(914)は、現在のCTU(900)内の現在の領域(904)と同じ相対領域により左CTU(910)の領域内にある。よって、同一位置の領域(914)の参照サンプルを格納するメモリ領域は、現在の領域(904)の再構成されたサンプルを格納するよう更新され、“X”は、同一位置の領域(914)の参照サンプルがもはやメモリに格納されていないことを示すよう図9Dの同一位置の領域(914)にマークされている。
開示の態様に従って、IBC予測モードの探索範囲内で導出される有効なブロックベクトルは、ビットストリーム適合性条件を満足するよういくつかの制約に従い得る。
図10は、開示の実施形態に従う、特定の制約に従う有効なブロックベクトル(1020)の例を示す。図10の例では、現在のCTB(1000)は、4つのルーマ領域(1006)~(1009)を含むルーマCTBである。参照ブロック利用可能性の導出プロセスが呼び出される場合に、現在のCTB(1000)内の現在のブロック(1003)の左上サンプルの位置(xCurr,yCurr)は、(xCb,yCb)であるようセットされ、有効なルーマブロックベクトル(1020)は特定の制約に従い得る。有効なルーマブロックベクトル(1020)は、現在のブロック(1003)から、現在のCTB(1000)の左CTB(1010)内の参照ブロック(1015)へ向いている。
いくつかの実施形態に従って、第1の制約は、現在のブロックのための参照ブロックが既に再構成されていることである。例において、三角参照ブロックについては、参照ブロックは、参照ブロックの左上サンプル及び右下サンプルの両方が既に再構成されている場合に、既に再構成されていると決定される。具体的に、1/16ペル分解能によるルーマブロックベクトルmvLについては、参照ブロックの左上サンプルの位置(xCb+(mvL[0]>>4),yCB+(mvL[1]>>4))が入力される場合に、真(TRUE)が出力され、これは、参照ブロックの左上サンプルが既に再構成されていることを示す。なお、mvL[0]及びmvL[1]は、2次元ルーマブロックベクトルmvLのx成分及びy成分である。同様に、参照ブロックの右下サンプルの位置(xCb+(mvL[0]>>4)+cbWidth-1,yCb+(mvL[1]>>4)+cbHeight-1)が入力される場合に、真(TRUE)が出力され、これは、参照ブロックの右下サンプルが既に再構成されていることを示す。なお、パラメータcbWidth及びcbHeightは、参照ブロックの幅及び高さを表す。従って、両方の位置(xCb+(mvL[0]>>4),yCB+(mvL[1]>>4))及び(xCb+(mvL[0]>>4)+cbWidth-1,yCb+(mvL[1]>>4)+cbHeight-1)が入力される場合に、真(TRUE)が出力され、これは、参照ブロックの左上サンプル及び右下サンプルの両方並びに参照ブロック自体が既に構成されていることを示し、よって、ブロックベクトルは、図10に示されるように、有効である。しかし、参照ブロックがまだ再構成されていない場合には、ルーマブロックベクトルmvLは妥当でない可能性がある。
いくつかの実施形態に従って、第2の制約は、参照ブロックが現在のブロックと重なり合わないことである。参照ブロックが既に構成されているという制約の下で、参照ブロックは、現在のブロックと重なり合うことを回避するために、現在のブロックの左側又は現在のブロックの上側のどちらかにあることができる。例において、1/16ペル分解能によるルーマブロックベクトルmvLについては、2つの値(mvL[0]>>4)+cbWidth及び(mvL[1]>>4)+cbHeightのうちの少なくとも一方は、0以下である。具体的に、値(mvL[0]>>4)+cbWidthが0以下であることは、参照ブロックが現在のブロックの左側にあり、現在のブロックと重なり合わないことを示す。同様に、値(mvL[1]>>4)+cbHeightが0以下であることは、参照ブロックが現在のブロックの上側にあり、現在のブロックと重なり合わないことを示す。従って、両方の値(mvL[0]>>4)+cbWidth及び(mvL[1]>>4)+cbHeightが0よりも大きい場合には、参照ブロックは現在のブロックと重なり合い、それにより、現在のブロックのルーマブロックベクトルmvLは妥当でない可能性がある。
いくつかの実施形態に従って、第3の制約は、参照ブロックが存在するCTBが現在のCTBの左隣接CTB又は現在のCTB自体のどちらかであることである。例において、1/16ペル分解能によるルーマブロックベクトルmvLについては、式(1)~(4)が、この制約を満足するよう満たされる:
Figure 0007250928000001
なお、パラメータCtbLog2SizeYは、Log2形式でCTB幅を表す。例えば、CTB幅が128個のサンプルである場合に、パラメータCtbLog2SizeYは7である。具体的に、式(1)及び(2)は、参照ブロックが存在するCTBが現在のCTBと同じCTB行にあることを示し、式(3)及び(4)は、参照ブロックが存在するCTBが現在のCTBの左のCTB列又は現在のCTBと同じCTB列のどちらかにあることを示す。従って、式(1)~(4)が満たされることは、参照ブロックが、現在のCTB(1000)の左隣接CTB(例えば、図10の例の左CTB(1010))又は現在のCTB(1000)自体のどちらかに存在することを示す。しかし、参照ブロックが現在のCTBの左隣接CTB又は現在のCTB自体のどちらにも存在しない場合には、ルーマブロックベクトルmvLは妥当でない可能性がある。
いくつかの実施形態に従って、第4の制約は、参照ブロックが現在のCTBの左隣接CTBに存在する場合に、現在のCTBにおける参照ブロックの同一位置の領域が再構成されていないことである。現在のCTBにおける参照ブロックの同一位置の領域は、左隣接CTB内の参照ブロックと同じ相対領域による現在のCTB内の領域である。図10を参照し直すと、参照ブロック(1015)は左隣接CTB(1010)の領域(1012)内に存在するので、現在のCTB(1000)における参照ブロック(1015)の同一位置の領域、すなわち、領域(1017)は、再構成されていない。例において、1/16ペル分解能によるルーマブロックベクトルmvLについては、式(5):
Figure 0007250928000002
が満足され、現在のCTB内の同一位置の領域の位置CTB(((xCb+(mvL[0]>>4)+CtbSizeY)>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1),((yCb+(mvL[1]>>4))>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1))が入力される場合に、偽(FALSE)が出力される。なお、パラメータCtbLog2SizeYはCTB幅を表す。具体的に、式(5)は、参照ブロックが現在のCTBの左隣接CTBにあることを示す。
更に図10を参照し直すと、コーディングブロック(1002)~(1003)の1つが現在のブロックである場合に、参照ブロックは領域(1011)にあることができないので、コーディングブロック(1002)~(1003)のその1つについての探索範囲は、図9Aと同様に”X”とマークされている領域(1011)を除く。理由は次の通りである:参照ブロックが領域(1011)にあるならば、その場合に、参照ブロックに対する同一位置の領域は領域(1006)であるが、コーディングブロック(1001)内の少なくともいくつかのサンプルは再構成されているから、第4の制約に違反する。他方で、現在の領域において最初に再構成されるべきコーディングブロック、例えば、現在のCTB(1000)の領域(1006)内のコーディングブロック(1001)については、参照ブロックに対する同一位置の領域(1006)がまだ再構成されておらず、例えば、それにより、領域(1011)の参照サンプルが上書き又は削除されていないので、第4の制約は、参照ブロックが領域(1011)にあることを妨げない。
開示の態様に従って、IBC予測モードは、イントラ予測モード及びインター予測モードに加えて別個のモード又は第3のモードと見なされる。すなわち、IBC予測モードは、イントラ予測モード又はインター予測モードのどちらとも異なる。これを行うことによって、(インター予測モードのマージモードに類似した)暗黙的モード及び(インター予測モードのAMVPモードに類似した)明示的モードでのブロックベクトル予測は、通常のインター予測モードから分離される。
IBC予測モードの暗黙的モードについて、別個の予測子候補リストが定義される。IBC予測モードの暗黙的モードの別個の予測子候補リストは、予測子候補リスト内の全てのエントリがブロックベクトルである点で、インター予測モードのマージモードにおけるマージ候補リストと相違する。別個の予測子候補リストの候補導出プロセスは、マージ候補リストの候補導出プロセスに基づいてよい。例として、HEVC又はVVC規格でのインター予測モードのマージモードにおける5つの空間隣接位置は、IBC予測モードが暗黙的モードのためのそれ自体の予測子候補リストを導出するためにアクセスされ得る。更には、リスト内の全てのエントリがやはりブロックベクトルである他の別個の予測子候補リストが、IBC予測モードの暗黙的モードについて定義されてもよい。暗黙的モードのための別個の予測子候補リストの候補導出プロセスは、インター予測モードのAMVPモードにおける予測子候補リストのそれに基づいてよい。
従って、インター予測モードとは別のモードとして、IBC予測モードは、暗黙的モード及び明示的モードの両方のための単純化された統一的ブロックベクトル導出プロセスを有することができる。
開示の態様に従って、IBC予測モードのブロックベクトル予測子候補リストは、複数のブロックベクトル予測子候補を含み、複数のブロックベクトル予測子候補の夫々は、次のブロックベクトル:空間隣接に基づくブロックベクトルのブロックベクトル、履歴に基づくブロックベクトルのブロックベクトル、平均ブロックベクトル、及びデフォルトブロックベクトルのブロックベクトル、のうちの1つからであることができる。
図11は、開示の実施形態に従う、空間隣接に基づいたブロックベクトルを示す。現在のブロック(1100)は、左下、右上、及び左上位置にある5つの空間隣接ブロック(1101)~(1105)を有する。
一実施形態では、5つの空間隣接ブロックからIBC予測モードのブロックベクトル予測子候補リストを形成する順序は、A0(1101)→B0(1102)→B1(1103)→A1(1104)→B2(1105)である。
一実施形態では、空間隣接に基づいたブロックベクトルからのA0及びB0しか、ブロックベクトル予測子候補リストに含まれなくてもよい。A0及びB0の両方が利用可能であるが、互いに等しい場合に、一方のみがブロックベクトル予測子候補リストに含まれればよい。
一実施形態では、空間隣接に基づいたブロックベクトルからのA1及びB1しか、ブロックベクトル予測子候補リストに含まれなくてもよい。A1及びB1の両方が利用可能であるが、互いに等しい場合に、一方のみがブロックベクトル予測子候補リストに含まれればよい。
一実施形態では、空間隣接に基づいたブロックベクトルからのAx及びByしか、ブロックベクトル予測子候補リストに含まれなくてもよく、このとき、Ax及びByは、夫々、左隣の1つ及び上隣の1つを表す。
いくつかの実施形態に従って、履歴に基づいたブロックベクトル予測子(History-based Block Vector Predictor,HBVP)候補が、ブロックベクトル予測子候補リストに含まれる。例において、HBVP候補は、空間隣接に基づいたブロックベクトルの後にブロックベクトル予測子候補リストに含まれてよい。HBVP候補は、前にコーディングされたブロックに基づいて導出され、HBVPテーブルに格納される。複数のHBVP候補を含むHBVPテーブルは、エンコーディング/デコーディングプロセス中に保持される。HBVPテーブルは、新しいCTU行が現れるとリセットされ得る(空にされ得る)。非サブブロックIBC CUが存在するときはいつでも、関連したブロックベクトルが、新しいHBVP候補としてHBVPテーブルの最後のエントリに加えられる。
いくつかの実施形態に従って、HBVPテーブルのサイズSは6にセットされ、これは、最大6つのHBVP候補がテーブルに加えられ得ることを示す。新しいHBVP候補をHBVPテーブルに挿入する場合に、制約付き先入れ先出し(Fist-In-First-Out,FIFO)規則が利用され、HBVPテーブル内で同じ又は類似したHBVP候補があるかどうかを見つけるために、最初に冗長性検査が適用される。例において、同じ又は類似したHBVP候補がHBVPテーブル内で見つけられる場合には、その同じ又は類似したHBVP候補はHBVPテーブルから除かれ、それにより、その後の全てのHBVP候補は繰り上げられ得る。
なお、HBVPテーブルのサイズは、いくつかの実施形態では可変であることができる。すなわち、サイズSは、いくつかの実施形態では6よりも小さくも又は大きくてもよい。サイズが6よりも大きい場合に、いくつかの実施形態では、新しいHBVP候補をHBVPテーブルに含めるときに、プルーニングは使用されない。
いくつかの実施形態に従って、ブロックベクトル予測子候補リストを構成する場合に、HBVPテーブル内の最新のいくつかのHBVP候補は順に検査され、空間隣接に基づいた候補の後に候補リストに含められる。冗長性検査は、空間隣接に基づいた候補に対するHBVP候補に関して適用される。冗長性検査の動作の回数を減らすよう、ブロックベクトル予測子候補リストを構成するために使用されるHBVP候補の数は、(N<=4)?M:(8-N)とセットされる。ここで、Nは、候補リスト内の既存の候補数を示し、Mは、HBVPテーブル内の利用可能なHBVP候補の数を示す。利用可能なブロックベクトル予測子候補の総数が最大許容数から1をマイナスした数に達すると、HBVPからのブロックベクトル予測子候補リスト構成プロセスは終了する。
いくつかの実施形態に従って、平均ブロックベクトルがブロックベクトル予測子候補リストに含められてもよい。平均ブロックベクトルは、候補リストから複数の予測子候補を選択し、次いで,選択された予測子候補を平均化することによって、導出され得る。
一例では、第1候補及び第2候補は、リスト内の新しい候補を形成するよう平均される。
他の例では、最初の3つの候補が、3つの新しい候補の組を形成するようペアで平均される。最初の3つの既存候補から導出された3つの新しい候補の順序は、(1番目,2番目)、(1番目,3番目)及び(2番目,3番目)であってよく、1番目、2番目及び3番目は、夫々、リスト内の最初の3つの既存候補に対応する。
他の例では、最初の4つの候補が、6つの新しい候補の組を形成するようペアで平均される。最初の4つの既存候補から導出された6つの新しい候補の順序は、(1番目,2番目)、(1番目,3番目)、(2番目,3番目)、(1番目,4番目)、(2番目,4番目)、(3番目,4番目)であってよく、1番目、2番目、3番目及び4番目は、夫々、リスト内の最初の4つの既存候補に対応する。
いくつかの実施形態に従って、デフォルトブロックベクトルが、ブロックベクトル予測子候補リストに含められ得る。デフォルトブロックベクトルは予め定義され得る。
一実施形態では、定数に基づくブロックベクトルが使用されてもよい。いくつかの例となるデフォルトブロックベクトルは、(0,0)、(-8,0)、(0,-8)、(-4,0)、(0,-4)、(-8,-8)、及び(-4,-4)を含むが、これらに限られない。これらのブロックベクトルは、全体的に又は部分的に、ブロックベクトル予測子候補リストに含まれるよう上記の順序で配置されてよく、あるいは、他の順序であってもよい。
一実施形態では、ブロックサイズに関連したブロックベクトルが使用されてもよい。いくつかの例となるデフォルトブロックベクトルは、(-2w,0)、(0,-2h)、(-w,0)、(0,-h)、(-2w,-2h)、及び(-w,-h)を含むが、これらに限られない。ここで、w及びhは、夫々、現在のブロックの幅及び高さを表す。これらのブロックベクトルは、全体的に又は部分的に、ブロックベクトル予測子候補リストに含まれるよう上記の順序で配置されてよく、あるいは、他の順序であってもよい。
一実施形態では、最大ブロックサイズに関連したブロックベクトルが使用されてもよい。いくつかの例となるデフォルトブロックベクトルは、(-2w_max,0)、(0,-2h_max)、(-w_max,0)、(0,-h_max)、(-2w_max,-2h_max)、及び(-w_max,-h_max)を含むが、これらに限られない。ここで、w_max及びh_maxは、夫々、現在のブロックの最大許容幅及び最大許容高さを表す。これらのブロックベクトルは、全体的に又は部分的に、ブロックベクトル予測子候補リストに含まれるよう上記の順序で配置されてよく、あるいは、他の順序であってもよい。
一実施形態では、最小ブロックサイズに関連したブロックベクトルが使用されてもよい。いくつかの例となるデフォルトブロックベクトルは、(-2w_min,0)、(0,-2h_min)、(-w_min,0)、(0,-h_min)、(-2w_min,-2h_min)、及び(-w_min,-h_min)を含むが、これらに限られない。ここで、w_min及びh_minは、夫々、現在のブロックの最小許容幅及び最小許容高さを表す。これらのブロックベクトルは、全体的に又は部分的に、ブロックベクトル予測子候補リストに含まれるよう上記の順序で配置されてよく、あるいは、他の順序であってもよい。
一実施形態では、ブロックベクトル予測子候補リスト内の候補の順序は、空間隣接に基づくブロックベクトル→履歴に基づくブロックベクトル→平均ブロックベクトル→デフォルトブロックベクトルである。
一実施形態では、ブロックベクトル予測子候補リスト内の候補の順序は、空間隣接に基づくブロックベクトル→履歴に基づくブロックベクトル→デフォルトブロックベクトルである。
開示の態様に従って、統一的ブロックベクトル予測子候補リストは、IBC予測モードの暗黙的モード及び明示的モードの両方で使用され得る。しかし、候補リストは、IBC予測モードの暗黙的モード及び明示的モードの一方のみにしか適用されなくてもよい。一実施形態では、この統一的リストから導出された候補が明示的モードに適用されることを選択される場合に、選択されたブロックベクトル分解能への選択されたブロックベクトル予測子候補の丸めは無効にされてもよい。すなわち、選択されたブロックベクトル予測子候補は、ブロックベクトル差分の分解能が異なる分解能にある場合でさえ、その元の分解能にある。
開示の態様に従って、ブロックベクトル予測子候補リストは、プルーニング又はクリッピングプロセスを受けてもよい。すなわち、リスト内のブロックベクトル予測子が、現在のブロックにとって妥当でない予測子と見なされる(すなわち、IBC予測モードでの現在のブロックの参照ブロックは、妥当でない予測子が最終的なブロックベクトルとして直接的に使用されるならば、許容された探索範囲の外であろう)場合に、追加の動作が実行される。
一実施形態では、プルーニングプロセスにおいて、候補リスト内の妥当でない候補の全てがリストから除かれ、それにより、後続の妥当な候補がリスト内で繰り上げられ得る。
一実施形態では、プルーニングプロセスにおいて、候補リスト内の1つ以上の妥当でない候補がリストから除かれる。妥当でない候補の例は、参照ブロックが現在のブロックと重なり合わないという制約に従わない候補、及び現在のブロックの参照ブロックが存在するCTBが現在のCTBの左隣接CTB又は現在のCTB自体のどちらかであるという制約に従わない候補を含むが、これらに限られない。
一実施形態では、クリッピングプロセスにおいて、妥当でない候補は、クリッピングされた候補の夫々がIBC予測モードの有効な探索範囲内の位置を指し示すように、クリッピングされる。かようなクリッピングプロセスは、変更後に、ブロックベクトル予測子がIBC予測モードの有効な探索範囲の境界を指し示すように、ブロックベクトル予測子の水平、垂直、又は両方の成分を変更することによって行われ得る。
図12は、開示の実施形態に従う例示的なプロセス(1200)を説明するフローチャートを示す。プロセス(1200)は、再構成中のブロックについての予測ブロックを生成するために、IBC予測モードでコーディングされたブロックの再構成において使用され得る。様々な実施形態において、プロセス(1200)は、端末デバイス(210)、(220)、(230)及び(240)内の処理回路、ビデオエンコーダ(303)の機能を実行する処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、イントラ予測モジュール(452)の機能を実行する処理回路、予測器(535)の機能を実行する処理回路、イントラエンコーダ(622)の機能を実行する処理回路、イントラデコーダ(722)の機能を実行する処理回路、などのような処理回路によって実行される。いくつかの実施形態では、プロセス(1200)は、ソフトウェア命令で実施されるので、処理回路がソフトウェア命令を実行するとき、処理回路はプロセス(1200)を実行する。
プロセス(1200)は、一般的に、プロセス(1200)が、コーディングされたビデオシーケンスの部分である現在のコーディングされたピクチャ内の現在のブロックについて予測情報をデコーディングするステップ(S1210)から開始し得る。予測情報は、現在のブロックのために使用されているイントラブロックコピー(IBC)予測モードを示す。予測情報はまた、現在のブロックのためのブロックベクトル予測子候補リストからブロックベクトル予測子候補を選択するためのインデックスと、非ゼロ残差が現在のブロックについて存在しているかどうかとを示すことができる。予測情報をデコーディングした後、プロセス(1200)はステップ(S1220)へ進む。
ステップ(S1220)で、プロセス(1200)は、予測情報に基づいて、非ゼロ残差が現在のブロックについて存在しているかどうかを決定する。プロセス(1200)が、非ゼロ残差が現在のブロックについて存在しないと決定する場合には、プロセス(1200)はステップ(S1230)へ進む。そうでない場合には、プロセス(1200)はステップ(S1240)へ進む。
ステップ(S1230)で、プロセス(1200)は、非ゼロ残差が現在のブロックについて存在しないとの指示に応答して、現在のブロックのためのブロックベクトル予測子候補リストを構成する。このブロックベクトル予測子候補リストは、第1の数のブロックベクトル予測子候補を有し、候補のシーケンスに基づいて構成される。
ステップ(S1240)で、プロセス(1200)は、非ゼロ残差が現在のブロックについて存在するとの指示に応答して、現在のブロックのためのブロックベクトル予測子候補リストを構成する。このブロックベクトル予測子候補リストは、第2の数のブロックベクトル予測子候補を有し、ステップ(S1230)で処理される同じ候補のシーケンスに基づいて構成される。
実施形態において、プロセス(1200)は、現在のブロックの複数の空間隣接ブロックの中の第1空間隣接ブロックの第1ブロックベクトルが利用可能であるかどうかを決定する。現在のブロックの複数の空間隣接ブロックの中の第1空間隣接ブロックの第1ブロックベクトルが利用可能であるとの決定に応答して、プロセス(1200)は、第1ブロックベクトルをブロックベクトル予測子候補リストに加える。そうでない場合には、プロセス(1200)は、現在のブロックの複数の空間隣接ブロックの中の第2空間隣接ブロックの第2ブロックベクトルが利用可能であるかどうかを、そして、いくつかの実施形態では、第2空間隣接ブロックの第2ブロックベクトルが第1空間隣接ブロックの第1ブロックベクトルと同じ又は類似しているかどうかを決定する。現在のブロックの複数の空間隣接ブロックの中の第2空間隣接ブロックの第2ブロックベクトルが利用可能であり、いくつかの実施形態では、第2空間隣接ブロックの第2ブロックベクトルが第1空間隣接ブロックの第1ブロックベクトルと同じでない、との決定に応答して、処理回路は、第2ブロックベクトルをブロックベクトル予測子候補リストに加える。
実施形態において、現在のブロックの第1空間隣接ブロックは、現在のブロックの左下角に隣接し、第1空間隣接ブロックの底辺は、現在のブロックの底辺に位置合わせされ、現在のブロックの第2空間隣接ブロックは、現在のブロックの右上角に隣接し、第2空間隣接ブロックの右辺は、現在のブロックの右辺に位置合わせされる。
一実施形態では、現在のブロックの第1空間隣接ブロックは、現在のブロックの左下角に隣接し、第1空間隣接ブロックの上辺は、現在のブロックの底辺に位置合わせされ、現在のブロックの第2空間隣接ブロックは、現在のブロックの右上角に隣接し、第2空間隣接ブロックの左辺は、現在のブロックの右辺に位置合わせされる。
一実施形態では、現在のブロックの第1空間隣接ブロックは、現在のブロックの左辺に隣接し、現在のブロックの第2空間隣接ブロックは、現在のブロックの上辺に隣接する。
一実施形態では、ブロックベクトル予測子候補リストに含まれている複数の空間隣接ブロックのブロックベクトル総数が、例えば、非ゼロ残差が現在のブロックについて存在しているかどうかに基づく最大許容数に満たない場合に、プロセス(1200)は、前にコーディングされたブロックの複数のブロックベクトルから、前にコーディングされたブロックの第3ブロックベクトルを選択する。プロセス(1200)は、選択された第3ブロックベクトルが、ブロックベクトル予測子候補リストに含まれている複数の空間隣接ブロックとは異なるかどうかを決定してよい。選択された第3ブロックベクトルが、ブロックベクトル予測子候補リストに含まれている複数の空間隣接ブロックとは異なるとの決定に応答して、プロセス(1200)は、選択された第3ブロックベクトルをブロックベクトル予測子候補リストに加える。
一実施形態では、ブロックベクトル予測子候補リストに含まれている複数の空間隣接ブロック及び前にコーディングされたブロックのブロックベクトル総数が最大許容数よりも少なく、1よりも多い場合に、プロセス(1200)は、ブロックベクトル予測子候補リストから複数のブロックベクトル予測子候補を選択する。プロセス(1200)は、少なくとも1つの平均ブロックベクトルを形成するよう、選択された複数のブロックベクトル予測子候補を平均化する。プロセス(1200)は、少なくとも1つの平均ブロックベクトルをブロックベクトル予測子候補リストに加える。
一実施形態では、ブロックベクトル予測子候補リストに含まれている複数の空間隣接ブロックのブロックベクトル、前にコーディングされたブロックのブロックベクトル、及び少なくとも1つの平均ブロックベクトルの総数が最大許容数に満たない場合に、プロセス(1200)は、1つ以上のデフォルトのブロックベクトルをブロックベクトル予測子候補リストに加える。
現在のブロックのためのブロックベクトル予測子候補リストを構成した後、プロセス(1200)はステップ(S1250)へ進む。
ステップ(S1250)で、プロセス(1200)は、例えば、予測情報で示されているインデックスに基づいて、構成されたブロックベクトル予測子候補リストからブロックベクトル予測子候補を選択する。インデックスは、明示的に又は暗黙的に通知されてよい。
ブロックベクトル予測子候補を選択した後、プロセス(1200)はステップ(S1260)へ進む。
ステップ(S1260)で、プロセス(1200)は、選択されたブロックベクトル予測子候補に従って現在のブロックを再構成する。
現在のブロックを再構成した後、プロセス(1200)は終了する。
上記の技術は、コンピュータ読み出し可能な命令を使用しかつ1つ以上のコンピュータ可読媒体に物理的に記憶されているコンピュータソフトウェアとして実装可能である。例えば、図13は、開示されている対象の特定の実施形態を実装することに適したコンピュータシステム(1300)を示す。
コンピュータソフトウェアは、1つ以上の中央演算処理装置(CPU)、グラフィクス処理ユニット(GPU)などによって直接に又は解釈、マイクロコード実行などを通じて実行され得る命令を含むコードを生成するようにアセンブリ、コンパイル、リンキングなどのメカニズムに従い得る如何なる適切な機械コード又はコンピュータ言語によってもコーディング可能である。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネット(Internet of Things)のためのデバイス、などを含む様々なタイプのコンピュータ又はその構成要素で実行可能である。
コンピュータシステム(1300)に関して図13に示される構成要素は、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関して如何なる限定も示唆することを意図しない。構成要素の構成は、コンピュータシステム(1300)の例示的な実施形態において説明される構成要素のうちのいずれか1つ又は組み合わせに関して何らかの依存又は要件を有するものとして解釈されるべきではない。
コンピュータシステム(1300)は、特定のヒューマンインターフェース入力デバイスを含んでよい。かようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーボード、スワイプ、データグロープ動作)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず。)を通じた一人以上のユーザによる入力に反応してよい。ヒューマンインターフェースデバイスはまた、音声(例えば、発話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画カメラから取得された写真画像)、映像(例えば、二次元映像、立体視映像を含む三次元映像)などの、人による意識的な入力に必ずしも直接には関係しない特定のメディアを捕捉するためにも使用され得る。
入力ヒューマンインターフェースデバイスは、キーボード(1301)、マウス(1302)、トラックパッド(1303)、タッチスクリーン(1310)、データグローブ(図示せず。)、ジョイスティック(1305)、マイク(1306)、スキャナ(1307)、カメラ(1308)(各1つしか表されていない。)のうちの1つ以上を含んでよい。
コンピュータシステム(1300)は、特定のヒューマンインターフェース出力デバイスも含んでよい。かようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音響、光、及び匂い/味を通じて一人以上のユーザの感覚を刺激し得る。かようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1310)、データグローブ(図示せず。)、又はジョイスティック(1305)による触覚フィードバック、しかし、入力デバイスとして機能しない触覚フィードバックデバイスも存在し得る。)、音声出力デバイス(例えば、スピーカ(1309)、ヘッドホン(図示せず。))、視覚出力デバイス(例えば、夫々タッチスクリーン入力機能の有無によらず、夫々触覚フィードバック機能の有無によらず、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、それらのうちのいくつかは、立体視出力、仮想現実メガネ(図示せず。)、ホログラフィックディスプレイ及びスモークタンク(図示せず。)などの手段により二次元視覚出力又は三次元よりも多い次元の出力を出力可能なスクリーン(1310))、及びプリンタ(図示せず。)を含んでよい。
コンピュータシステム(1300)は、人がアクセス可能な記憶デバイス及びそれらの関連する媒体、例えば、CD/DVD又は同様の媒体(1321)を伴ったCD/DVD ROM/RW(1320)、サムドライブ(1322)、リムーバブルハードディスク又はソリッドステートドライブ(1323)、レガシー磁気媒体、例えば、テープ及びフロッピー(登録商標)ディスク(図示せず。)、専用のROM/ASIC/PLDベースデバイス、例えば、セキュリティドングル(図示せず。)、なども含むことができる。
当業者であれば、目下開示されている対象に関連して使用されている「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を含まないことも理解するはずである。
コンピュータシステム(1300)は、1つ以上の通信ネットワークへのインターフェースも含むことができる。ネットワークは、例えば、ワイヤレス、ワイヤライン、光であることができる。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び工業、実時間、遅延耐性、などであることができる。ネットワークの例には、イーサネット(登録商標)などのローカルエリアネットワーク、ワイヤレスLAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TVを含むTVワイヤライン又はワイヤレス広域デジタルネットワーク、CANバスを含む車両及び工場ネットワーク、などがある。特定のネットワークは、一般に、特定の汎用デジタルポート又はペリフェラルバス(1349)(例えば、コンピュータシステム(1300)のUSBポートなど)に取り付けられた外付けネットワークインターフェースアダプタを必要とする。他は、一般に、後述されるようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネットネットワーク、又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)によってコンピュータシステム(1300)のコアに組み込まれる。これらのネットワークのいずれかを使用して、コンピュータシステム(1300)は他のエンティティと通信することができる。そのような通信は、単方向の受信専用(例えば、ブロードキャストTV)又は単方向の送信専用(例えば、特定のCANバスデバイスへのCANバス)であることができ、あるいは、例えば、ローカル若しくは広域デジタルネットワークを使用して他のコンピュータシステムに対して双方向であることができる。特定のプロトコル又はプロトコルスタックが、上述されたようなネットワーク及びネットワークインターフェースの夫々で使用可能である。
上記のヒューマンインターフェースデバイス、人がアクセス可能な記憶デバイス、及びネットワークインターフェースは、コンピュータシステム(1300)のコア(1340)へ取り付けられ得る。
コア(1340)は、1つ以上の中央演算処理装置(CPU)(1341)、グラフィクス処理ユニット(GPU)(1342)、フィールドプログラマブルゲートエリア(FPGA)(1343)の形をとる専用のプログラム可能処理ユニット、特定のタスクのためのハードウェアアクセラレータ(1344)、などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(1345)、ランダムアクセスメモリ(RAM)(1346)、内部のユーザアクセス不能ハードドライブなどの内蔵大容量記憶装置、SSD、など(1347)とともに、システムバス(1348)を通じて接続されてよい。いくつかのコンピュータシステムでは、システムバス(1348)は、追加のCPU、GPUなどによる拡張を可能にするように、1つ以上の物理プラグの形でアクセス可能であることができる。コアのシステムバス(1348)へ直接に又はペリフェラルバス(1349)を通じて、周辺機器が取り付けられ得る。ペリフェラルバスのためのアーキテクチャには、PCI、USBなどがある。
CPU(1341)、GPU(1342)、FPGA(1343)、及びアクセラレータ(1344)は、組み合わせて上記のコンピュータコードを構成することができる特定の命令を実行可能である。そのコンピュータコードは、ROM(1345)又はRAM(1346)に記憶され得る。一時データもRAM(1346)に記憶可能であり、一方、永続性データは、例えば、内蔵大容量記憶装置(1347)に記憶可能である。メモリデバイスのいずれかへの高速な格納及び読み出しは、キャッシュメモリの使用により可能にされ得る。キャッシュメモリは、1つ以上のCPU(1341)、GPU(1342)、大容量記憶装置(1347)、ROM(1345)、RAM(1346)などと密接に関連し得る。
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構成されたものであることができ、あるいは、それらは、コンピュータソフトウェア技術で通常の知識を有する者によく知られており利用可能である種類のものであることができる。
例として、限定としてではなく、アーキテクチャ(1300)、具体的にはコア(1340)を有するコンピュータシステムは、1つ以上の有形なコンピュータ可読媒体において具現されているソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ、などを含む。)の結果として機能を提供することができる。かようなコンピュータ可読媒体は、コア内蔵大容量記憶装置(1347)又はROM(1345)などの、非一時的な性質であるコア(1340)の特定の記憶装置に加えて、先に紹介されたユーザアクセス可能な大容量記憶装置に関連した媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(1340)によって実行可能である。コンピュータ可読媒体には、特定のニーズに応じて、1つ以上のメモリデバイス又はチップが含まれ得る。ソフトウェアは、コア(2840)、及び、具体的には、その中のプロセッサ(CPU、GPU、FPGAなどを含む。)に、RAM(1346)に記憶されているデータ構造を定義することと、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することとを含め、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。追加的に、又は代替案として、コンピュータシステムは、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに又はそれとともに動作することができる、回路内でハードウェアにより実現されるか又は別なふうに具現されるロジック(例えば、アクセラレータ(1344))の結果として、機能を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶している回路(例えば、集積回路(IC))、実行のためのロジックを具現する回路、又は両方を包含することができる。本開示は、ハードウェア及びソフトウェアの如何なる適切な組み合わせも包含する。
本開示は、いくつかの例示的な実施形態について記載してきたが、本開示の範囲内にある代替、交換、及び様々な置換均等物が存在する。よって、明らかなように、当業者であれば、たとえ本明細書で明示的に図示又は説明されていないとしても、本開示の原理を具現し、よって、その精神及び範囲の中にある多数のシステム及び方法に想到可能である。
付録A:頭字語
AMVP:Advanced Motion Vector Prediction
ASIC:Application-Specific Integrated Circuit
BMS:Benchmark Set
BV:Block Vector
CANBus:Controller Area Network Bus
CD:Compact Disc
CPR:Current Picture Referencing
CPU:Central Processing Unit(s)
CRT:Cathode Ray Tube
CTB:Coding Tree Block(s)
CTU:Coding Tree Unit(s)
CU:Coding Unit
DPB:Decoder Picture Buffer
DVD:Digital Video Disc
FPGA:Field Programmable Gate Area(s)
GOP:Group of Picture(s)
GPU:Graphics Processing Unit(s)
GSM:Global System for Mobile communications
HEVC:High Efficiency Video Coding
HRD:Hypothetical Reference Decoder
IBC:Intra Block Copy
IC:Integrated Circuit
JEM:Joint Exploration Model
LAN:Local Area Network
LCD:Liquid-Crystal Display
LTE:Long-Term Evolution
MV:Motion Vector
OLED:Organic Light-Emitting Diode
PB:Prediction Block(s)
PCI:Peripheral Component Interconnect
PLD:Programmable Logic Device
PU:Prediction Unit(s)
RAM:Random Access Memory
ROM:Read-Only Memory
SCC:Screen Content Coding
SEI:Supplementary Enhancement Information
SNR:Signal Noise Ratio
SSD:Solid-State Drive
TU:Transform Unit(s)
USB:Universal Serial Bus
VUI:Video Usability Information
VVC:Versatile Video Coding
[参照による援用]
本開示は、「UNIFIED BLOCK VECTOR PREDICTION FOR INTRA PICTURE BLOCK COMPENSATION」と題されて2019年3月8日付けで出願された米国特許仮出願第62/816051号の優先権の利益を主張して「UNIFIED BLOCK VECTOR PREDICTION FOR INTRA PICTURE BLOCK COMPENSATION」と題されて2019年8月5日付けで出願された米国特許出願第16/531827号の優先権の利益を主張するものである。これらの先願の全開示は、その全文を参照により本願に援用される。

Claims (22)

  1. デコーダが実行するビデオデコーディングのための方法であって、
    コーディングされたビデオシーケンスの部分である現在のコーディングされたピクチャ内の現在のブロックについての予測情報をデコーディングするステップであり、該予測情報は、前記現在のブロックのために使用されているイントラブロックコピー(IBC)予測モードと、前記現在のブロックのためのブロックベクトル予測子候補リストからブロックベクトル予測子候補を選択するためのインデックスとを示す、ステップと、
    前記IBC予測モードにおける前記現在のブロックのコーディングが明示的なモード又は暗黙的なモードで実行されるかどうかを、ブロックベクトルと対応するブロックベクトル予測子との間に差が存在することを前記予測情報が示すかどうかに基づき決定するステップであり、前記現在のブロックの前記コーディングは、前記差が存在しないと前記予測情報が示す場合には、前記暗黙的なモードにあると決定され、前記差が存在する場合には、明示的なモードにあると決定される、ステップと、
    前記暗黙的なモード及び前記明示的なモードの夫々について同じ一連の候補に基づき、前記現在のブロックのための前記ブロックベクトル予測子候補リストを構成するステップであり、該ブロックベクトル予測子候補リストは、前記暗黙的なモードでは第1の数のブロックベクトル予測子候補を有し、前記明示的なモードでは第2の数のブロックベクトル予測子候補を有する、ステップと、
    前記予測情報で示されている前記インデックスに基づいて、前記構成されたブロックベクトル予測子候補リストからブロックベクトル予測子候補を選択するステップと、
    前記選択されたブロックベクトル予測子候補に従って前記現在のブロックを再構成するステップと
    を有する方法。
  2. 前記現在のブロックの複数の空間隣接ブロックの中の第1空間隣接ブロックの第1ブロックベクトルが利用可能であるかどうかを決定するステップと、
    前記現在のブロックの前記複数の空間隣接ブロックの中の前記第1空間隣接ブロックの前記第1ブロックベクトルが利用可能であるとの決定に応答して、前記第1ブロックベクトルを前記ブロックベクトル予測子候補リストに挿入するステップと、
    前記現在のブロックの前記複数の空間隣接ブロックの中の第2空間隣接ブロックの第2ブロックベクトルが利用可能であるかどうかと、前記第2空間隣接ブロックの前記第2ブロックベクトルが前記第1空間隣接ブロックの前記第1ブロックベクトルと同じであるかどうかとを決定するステップと、
    前記現在のブロックの前記複数の空間隣接ブロックの中の前記第2空間隣接ブロックの前記第2ブロックベクトルが利用可能でありかつ前記第2空間隣接ブロックの前記第2ブロックベクトルが前記第1空間隣接ブロックの前記第1ブロックベクトルと同じでないとの決定に応答して、前記第2ブロックベクトルを前記ブロックベクトル予測子候補リストに挿入するステップと
    を更に有する、請求項1に記載の方法。
  3. 前記現在のブロックの前記第1空間隣接ブロックは、前記現在のブロックの左下角に隣接し、前記第1空間隣接ブロックの底辺は、前記現在のブロックの底辺に位置合わせされ、前記現在のブロックの前記第2空間隣接ブロックは、前記現在のブロックの右上角に隣接し、前記第2空間隣接ブロックの右辺は、前記現在のブロックの右辺に位置合わせされる、
    請求項2に記載の方法。
  4. 前記現在のブロックの前記第1空間隣接ブロックは、前記現在のブロックの左下角に隣接し、前記第1空間隣接ブロックの上辺は、前記現在のブロックの底辺に位置合わせされ、前記現在のブロックの前記第2空間隣接ブロックは、前記現在のブロックの右上角に隣接し、前記第2空間隣接ブロックの左辺は、前記現在のブロックの右辺に位置合わせされる、
    請求項2に記載の方法。
  5. 前記現在のブロックの前記第1空間隣接ブロックは、前記現在のブロックの左辺に隣接し、前記現在のブロックの前記第2空間隣接ブロックは、前記現在のブロックの上辺に隣接する、
    請求項2に記載の方法。
  6. 前記ブロックベクトル予測子候補リストに含まれている前記複数の空間隣接ブロックのブロックベクトル総数が、前記現在のブロックについて前記ブロックベクトルと前記対応するブロックベクトル予測子との間に前記差が存在しているかどうかに基づく最大許容数に満たない場合に、
    前にコーディングされたブロックの複数のブロックベクトルから、前にコーディングされたブロックの第3ブロックベクトルを選択するステップと、
    前記選択された第3ブロックベクトルが、前記ブロックベクトル予測子候補リストに含まれている前記複数の空間隣接ブロックとは異なるかどうかを決定するステップと、
    前記選択された第3ブロックベクトルが、前記ブロックベクトル予測子候補リストに含まれている前記複数の空間隣接ブロックとは異なるとの決定に応答して、前記選択された第3ブロックベクトルを前記ブロックベクトル予測子候補リストに挿入するステップと
    を更に有する、請求項2に記載の方法。
  7. 前記ブロックベクトル予測子候補リストに含まれている前記前にコーディングされたブロック及び前記複数の空間隣接ブロックのブロックベクトル総数が前記最大許容数よりも少なく、1よりも多い場合に、
    前記ブロックベクトル予測子候補リストから複数のブロックベクトル予測子候補を選択するステップと、
    少なくとも1つの平均ブロックベクトルを形成するよう前記選択された複数のブロックベクトル予測子候補を平均化するステップと、
    前記少なくとも1つの平均ブロックベクトルを前記ブロックベクトル予測子候補リストに挿入するステップと
    を更に有する、請求項6に記載の方法。
  8. 前記ブロックベクトル予測子候補リストに含まれている前記少なくとも1つの平均ブロックベクトル、前記前にコーディングされたブロックのブロックベクトル、及び前記複数の空間隣接ブロックのブロックベクトルの総数が前記最大許容数に満たない場合に、
    デフォルトのブロックベクトルを前記ブロックベクトル予測子候補リストに挿入するステップを更に有する、
    請求項7に記載の方法。
  9. 前記デフォルトのブロックベクトルは(0,0)である、
    請求項8に記載の方法。
  10. 前記選択されたブロックベクトル予測子候補は、前記現在のブロックについて前記ブロックベクトルと前記対応するブロックベクトル予測子との間に前記差が存在する場合に、該差の分解能にかかわらず元のブロックベクトル分解能のままである
    請求項1乃至9のうちいずれか一項に記載の方法。
  11. 前記ブロックベクトル予測子候補リストに含まれているブロックベクトル予測子候補のうちの1つが妥当でない場合に、
    前記ブロックベクトル予測子候補のうちの前記1つに対してプルーニングプロセス又はクリッピングプロセスを実行するステップを更に有する、
    請求項1乃至10のうちいずれか一項に記載の方法。
  12. 前記ブロックベクトル予測子候補のうちの前記1つは、前記ブロックベクトル予測子候補のうちの前記1つによって予測された参照ブロックがイントラブロックコピー(IBC)予測モードのための許容探索範囲外である場合に、妥当でないと決定される、
    請求項11に記載の方法。
  13. コーディングされたビデオシーケンスの部分である現在のコーディングされたピクチャ内の現在のブロックについての予測情報をデコーディングし、該予測情報は、前記現在のブロックのために使用されているイントラブロックコピー(IBC)予測モードと、前記現在のブロックのためのブロックベクトル予測子候補リストからブロックベクトル予測子候補を選択するためのインデックスを示し、
    前記IBC予測モードにおける前記現在のブロックのコーディングが明示的なモード又は暗黙的なモードで実行されるかどうかを、ブロックベクトルと対応するブロックベクトル予測子との間に差が存在することを前記予測情報が示すかどうかに基づき決定し、前記現在のブロックの前記コーディングは、前記差が存在しないと前記予測情報が示す場合には、前記暗黙的なモードにあると決定され、前記差が存在する場合には、明示的なモードにあると決定され、
    前記暗黙的なモード及び前記明示的なモードの夫々について同じ一連の候補に基づき、前記現在のブロックのための前記ブロックベクトル予測子候補リストを構成し、該ブロックベクトル予測子候補リストは、前記暗黙的なモードでは第1の数のブロックベクトル予測子候補を有し、前記明示的なモードでは第2の数のブロックベクトル予測子候補を有し、
    前記予測情報で示されている前記インデックスに基づいて、前記構成されたブロックベクトル予測子候補リストからブロックベクトル予測子候補を選択し、
    前記選択されたブロックベクトル予測子候補に従って前記現在のブロックを再構成する
    よう構成される処理回路を有する装置。
  14. 前記処理回路は、
    前記現在のブロックの複数の空間隣接ブロックの中の第1空間隣接ブロックの第1ブロックベクトルが利用可能であるかどうかを決定し、
    前記現在のブロックの前記複数の空間隣接ブロックの中の前記第1空間隣接ブロックの前記第1ブロックベクトルが利用可能であるとの決定に応答して、前記第1ブロックベクトルを前記ブロックベクトル予測子候補リストに挿入し、
    前記現在のブロックの前記複数の空間隣接ブロックの中の第2空間隣接ブロックの第2ブロックベクトルが利用可能であるかどうかと、前記第2空間隣接ブロックの前記第2ブロックベクトルが前記第1空間隣接ブロックの前記第1ブロックベクトルと同じであるかどうかとを決定し、
    前記現在のブロックの前記複数の空間隣接ブロックの中の前記第2空間隣接ブロックの前記第2ブロックベクトルが利用可能でありかつ前記第2空間隣接ブロックの前記第2ブロックベクトルが前記第1空間隣接ブロックの前記第1ブロックベクトルと同じでないとの決定に応答して、前記第2ブロックベクトルを前記ブロックベクトル予測子候補リストに挿入する
    よう更に構成される、
    請求項13に記載の装置。
  15. 前記現在のブロックの前記第1空間隣接ブロックは、前記現在のブロックの左下角に隣接し、前記第1空間隣接ブロックの底辺は、前記現在のブロックの底辺に位置合わせされ、前記現在のブロックの前記第2空間隣接ブロックは、前記現在のブロックの右上角に隣接し、前記第2空間隣接ブロックの右辺は、前記現在のブロックの右辺に位置合わせされる、
    請求項14に記載の装置。
  16. 前記現在のブロックの前記第1空間隣接ブロックは、前記現在のブロックの左下角に隣接し、前記第1空間隣接ブロックの上辺は、前記現在のブロックの底辺に位置合わせされ、前記現在のブロックの前記第2空間隣接ブロックは、前記現在のブロックの右上角に隣接し、前記第2空間隣接ブロックの左辺は、前記現在のブロックの右辺に位置合わせされる、
    請求項14に記載の装置。
  17. 前記現在のブロックの前記第1空間隣接ブロックは、前記現在のブロックの左辺に隣接し、前記現在のブロックの前記第2空間隣接ブロックは、前記現在のブロックの上辺に隣接する、
    請求項14に記載の装置。
  18. 前記処理回路は、
    前記ブロックベクトル予測子候補リストに含まれている前記複数の空間隣接ブロックのブロックベクトル総数が、前記現在のブロックについて前記ブロックベクトルと前記対応するブロックベクトル予測子との間に前記差が存在しているかどうかに基づく最大許容数に満たない場合に、
    前にコーディングされたブロックの複数のブロックベクトルから、前にコーディングされたブロックの第3ブロックベクトルを選択し、
    前記選択された第3ブロックベクトルが、前記ブロックベクトル予測子候補リストに含まれている前記複数の空間隣接ブロックとは異なるかどうかを決定し、
    前記選択された第3ブロックベクトルが、前記ブロックベクトル予測子候補リストに含まれている前記複数の空間隣接ブロックとは異なるとの決定に応答して、前記選択された第3ブロックベクトルを前記ブロックベクトル予測子候補リストに挿入する
    よう更に構成される、
    請求項14に記載の装置。
  19. 前記処理回路は、
    前記ブロックベクトル予測子候補リストに含まれている前記前にコーディングされたブロック及び前記複数の空間隣接ブロックのブロックベクトル総数が前記最大許容数よりも少なく、1よりも多い場合に、
    前記ブロックベクトル予測子候補リストから複数のブロックベクトル予測子候補を選択し、
    少なくとも1つの平均ブロックベクトルを形成するよう前記選択された複数のブロックベクトル予測子候補を平均化し、
    前記少なくとも1つの平均ブロックベクトルを前記ブロックベクトル予測子候補リストに挿入する
    更に構成される、
    請求項18に記載の装置。
  20. プロセッサによって実行される場合に、該プロセッサに、
    コーディングされたビデオシーケンスの部分である現在のコーディングされたピクチャ内の現在のブロックについての予測情報をデコーディングするステップであり、該予測情報は、前記現在のブロックのために使用されているイントラブロックコピー(IBC)予測モードと、前記現在のブロックのためのブロックベクトル予測子候補リストからブロックベクトル予測子候補を選択するためのインデックスとを示す、ステップと、
    前記IBC予測モードにおける前記現在のブロックのコーディングが明示的なモード又は暗黙的なモードで実行されるかどうかを、ブロックベクトルと対応するブロックベクトル予測子との間に差が存在することを前記予測情報が示すかどうかに基づき決定するステップであり、前記現在のブロックの前記コーディングは、前記差が存在しないと前記予測情報が示す場合には、前記暗黙的なモードにあると決定され、前記差が存在する場合には、明示的なモードにあると決定される、ステップと、
    前記暗黙的なモード及び前記明示的なモードの夫々について同じ一連の候補に基づき、前記現在のブロックのための前記ブロックベクトル予測子候補リストを構成するステップであり、該ブロックベクトル予測子候補リストは、前記暗黙的なモードでは第1の数のブロックベクトル予測子候補を有し、前記明示的なモードでは第2の数のブロックベクトル予測子候補を有する、ステップと、
    前記予測情報で示されている前記インデックスに基づいて、前記構成されたブロックベクトル予測子候補リストからブロックベクトル予測子候補を選択するステップと、
    前記選択されたブロックベクトル予測子候補に従って前記現在のブロックを再構成するステップと
    を実行させるプログラム。
  21. 前記予測情報は、前記現在のブロックが暗黙的なモードでコーディングされていないことを示すフラグに基づき、前記ブロックベクトルと前記対応するブロックベクトル予測子との間に前記差が存在するかどうかを示す、
    請求項1に記載の方法。
  22. エンコーダが実行するビデオコーディングのための方法であって、
    ビデオシーケンスをコーディングするステップと、
    前記コーディングされたビデオシーケンスの部分である現在のコーディングされたピクチャ内の現在のブロックについての予測情報をデコーディングするステップであり、該予測情報は、前記現在のブロックのために使用されているイントラブロックコピー(IBC)予測モードと、前記現在のブロックのためのブロックベクトル予測子候補リストからブロックベクトル予測子候補を選択するためのインデックスとを示す、ステップと、
    前記IBC予測モードにおける前記現在のブロックのコーディングが明示的なモード又は暗黙的なモードで実行されるかどうかを、ブロックベクトルと対応するブロックベクトル予測子との間に差が存在することを前記予測情報が示すかどうかに基づき決定するステップであり、前記現在のブロックの前記コーディングは、前記差が存在しないと前記予測情報が示す場合には、前記暗黙的なモードにあると決定され、前記差が存在する場合には、明示的なモードにあると決定される、ステップと、
    前記暗黙的なモード及び前記明示的なモードの夫々について同じ一連の候補に基づき、前記現在のブロックのための前記ブロックベクトル予測子候補リストを構成するステップであり、該ブロックベクトル予測子候補リストは、前記暗黙的なモードでは第1の数のブロックベクトル予測子候補を有し、前記明示的なモードでは、第2の数のブロックベクトル予測子候補を有する、ステップと、
    前記予測情報で示されている前記インデックスに基づいて、前記構成されたブロックベクトル予測子候補リストからブロックベクトル予測子候補を選択するステップと、
    前記選択されたブロックベクトル予測子候補に従って前記現在のブロックを再構成するステップと
    を有する方法。
JP2021531759A 2019-03-08 2020-03-06 デコーダが実行するビデオデコーディングのための方法、装置及びプログラム、並びにエンコーダが実行するビデオコーディングのための方法 Active JP7250928B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962816051P 2019-03-08 2019-03-08
US62/816,051 2019-03-08
US16/531,827 US11012686B2 (en) 2019-03-08 2019-08-05 Unified block vector prediction for intra picture block compensation
US16/531,827 2019-08-05
PCT/US2020/021505 WO2020185602A1 (en) 2019-03-08 2020-03-06 Unified block vector prediction for intra picture block compensation

Publications (2)

Publication Number Publication Date
JP2022511835A JP2022511835A (ja) 2022-02-01
JP7250928B2 true JP7250928B2 (ja) 2023-04-03

Family

ID=72334728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021531759A Active JP7250928B2 (ja) 2019-03-08 2020-03-06 デコーダが実行するビデオデコーディングのための方法、装置及びプログラム、並びにエンコーダが実行するビデオコーディングのための方法

Country Status (9)

Country Link
US (3) US11012686B2 (ja)
EP (1) EP3861748A4 (ja)
JP (1) JP7250928B2 (ja)
KR (1) KR20210091316A (ja)
CN (2) CN118042155A (ja)
AU (2) AU2020238853B2 (ja)
CA (1) CA3132479A1 (ja)
SG (1) SG11202109023PA (ja)
WO (1) WO2020185602A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020117018A1 (ko) * 2018-12-06 2020-06-11 엘지전자 주식회사 인터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치
US10986353B2 (en) 2019-03-15 2021-04-20 Tencent America LLC Decoded picture buffer management for video coding
US11146808B2 (en) * 2019-06-27 2021-10-12 Tencent America LLC Method and apparatus for video coding
US20230217037A1 (en) * 2022-01-05 2023-07-06 Ofinno, Llc Adaptive Reordering of Adjusted Block Vector Predictor Candidates
US20230224457A1 (en) * 2022-01-10 2023-07-13 Comcast Cable Communications, Llc Determination of Block Vector Predictor Candidate List
CN114666593A (zh) * 2022-03-29 2022-06-24 中山大学 基于编码缓存信息的起始点确定方法、装置、设备及介质
WO2023236988A1 (en) * 2022-06-07 2023-12-14 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
WO2024155106A1 (ko) * 2023-01-17 2024-07-25 주식회사 윌러스표준기술연구소 비디오 신호 처리 방법 및 이를 위한 장치
WO2024197744A1 (zh) * 2023-03-30 2024-10-03 Oppo广东移动通信有限公司 解码方法、编码方法、解码器和编码器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017130938A (ja) 2014-07-07 2017-07-27 寰發股▲ふん▼有限公司HFI Innovation Inc. イントラブロックコピー検索と補償範囲の方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101201930B1 (ko) * 2004-09-16 2012-11-19 톰슨 라이센싱 국부적 밝기 변동을 이용한 가중화된 예측을 가진 비디오 코덱
US8218640B2 (en) * 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture decoding using same-picture reference for pixel reconstruction
US8787459B2 (en) * 2010-11-09 2014-07-22 Sony Computer Entertainment Inc. Video coding methods and apparatus
US10321130B2 (en) * 2013-01-07 2019-06-11 Vid Scale, Inc. Enhanced deblocking filters for video coding
TWI536811B (zh) * 2013-12-27 2016-06-01 財團法人工業技術研究院 影像處理方法與系統、解碼方法、編碼器與解碼器
US10469863B2 (en) * 2014-01-03 2019-11-05 Microsoft Technology Licensing, Llc Block vector prediction in video and image coding/decoding
US9883197B2 (en) * 2014-01-09 2018-01-30 Qualcomm Incorporated Intra prediction of chroma blocks using the same vector
WO2015169200A1 (en) * 2014-05-06 2015-11-12 Mediatek Singapore Pte. Ltd. Method of block vector prediction for intra block copy mode coding
AU2014202682A1 (en) * 2014-05-16 2015-12-03 Canon Kabushiki Kaisha Method, apparatus and system for copying a block of video samples
WO2015180014A1 (en) * 2014-05-26 2015-12-03 Mediatek Singapore Pte. Ltd. An improved merge candidate list construction method for intra block copy
JP6482191B2 (ja) * 2014-06-12 2019-03-13 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US9948949B2 (en) * 2014-06-20 2018-04-17 Qualcomm Incorporated Intra block copy block vector signaling for video coding
KR101748620B1 (ko) * 2014-06-20 2017-07-04 성균관대학교산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
WO2016034058A1 (en) 2014-09-01 2016-03-10 Mediatek Inc. Method of intra picture block copy for screen content and video coding
US10743034B2 (en) * 2014-09-15 2020-08-11 Hfi Innovation Inc. Method of deblocking for intra block copy in video coding
KR20170066457A (ko) * 2014-09-26 2017-06-14 브이아이디 스케일, 인크. 시간적 블록 벡터 예측을 갖는 인트라 블록 카피 코딩
WO2016051362A1 (en) * 2014-10-03 2016-04-07 Nokia Technologies Oy Method and equipment for encoding and decoding an intra block copy vector
US9918105B2 (en) * 2014-10-07 2018-03-13 Qualcomm Incorporated Intra BC and inter unification
US10070130B2 (en) * 2015-01-30 2018-09-04 Qualcomm Incorporated Flexible partitioning of prediction units
EP3876541A1 (en) * 2015-09-02 2021-09-08 Mediatek Inc. Fast sum of absolute differences calculation for motion vector derivation in video coding
US10812822B2 (en) 2015-10-02 2020-10-20 Qualcomm Incorporated Intra block copy merge mode and padding of unavailable IBC reference region
EP3357245A4 (en) 2015-11-05 2019-03-13 MediaTek Inc. METHOD AND DEVICE OF INTERPRESSATION USING AN AVERAGE MOTION VECTOR FOR VIDEO CODING
US10575000B2 (en) * 2016-04-20 2020-02-25 Mediatek Inc. Method and apparatus for image compression using block prediction mode

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017130938A (ja) 2014-07-07 2017-07-27 寰發股▲ふん▼有限公司HFI Innovation Inc. イントラブロックコピー検索と補償範囲の方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BROSS, Benjamin et al.,Versatile Video Coding (Draft 4),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan. 2019, [JVET-M1001-v5],JVET-M1001 (version 5),ITU-T,2019年02月27日,<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M1001-v5.zip>: JVET-M1001-v5.docx: pp.43-48,147,213-221
CHEN, Jianle et al.,Algorithm description for Versatile Video Coding and Test Model 4 (VTM 4),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan. 2019, [JVET-M1002-v2],JVET-M1002 (version 2),ITU-T,2019年03月19日,<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M1002-v2.zip>: JVET-M1002-v2.docx: pp.61-63
XU, Xiaozhong et al.,CE8-related: Unified intra block copy block vector prediction,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 March 2019, [JVET-N0382-v2],JVET-N0382 (version 2),ITU-T,2019年03月21日,<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/14_Geneva/wg11/JVET-N0382-v2.zip>: JVET-N0382-v2.doc: pp.1-10

Also Published As

Publication number Publication date
US20230007242A1 (en) 2023-01-05
AU2023233091A1 (en) 2023-10-05
KR20210091316A (ko) 2021-07-21
SG11202109023PA (en) 2021-09-29
US11930164B2 (en) 2024-03-12
CN118042155A (zh) 2024-05-14
JP2022511835A (ja) 2022-02-01
WO2020185602A1 (en) 2020-09-17
CN113545084B (zh) 2024-03-08
EP3861748A1 (en) 2021-08-11
US20210235076A1 (en) 2021-07-29
US11503276B2 (en) 2022-11-15
CN113545084A (zh) 2021-10-22
US11012686B2 (en) 2021-05-18
EP3861748A4 (en) 2021-12-08
AU2020238853B2 (en) 2023-06-22
CA3132479A1 (en) 2020-09-17
US20200288120A1 (en) 2020-09-10
AU2020238853A1 (en) 2021-09-09

Similar Documents

Publication Publication Date Title
JP7250928B2 (ja) デコーダが実行するビデオデコーディングのための方法、装置及びプログラム、並びにエンコーダが実行するビデオコーディングのための方法
JP7257516B2 (ja) ビデオ・コーディングのための方法、装置及びコンピュータ・プログラム
JP7238150B2 (ja) イントラピクチャブロック補償のための予測候補リストサイズシグナリングのための方法および装置
JP2023078388A (ja) ビデオ・コーディングのための方法、装置、及びコンピュータ・プログラム
JP7177179B2 (ja) 簡略化された最確モードリスト生成スキーム
JP7132352B2 (ja) 予測モードおよび符号化ブロックフラグ(cbf)のコンテキスト設計を更に向上する方法および機器
JP2022059032A (ja) ビデオエンコーディング及びデコーディングのための方法、装置、コンピュータプログラム、及び非一時的なコンピュータ可読媒体
JP7244670B2 (ja) デコーダが実行するビデオデコーディングのための方法、装置及び非一時的なコンピュータ可読媒体、並びにエンコーダが実行するビデオエンコーディングのための方法
JP2022521516A (ja) ビデオコーディングのための方法およびコンピュータプログラム
JP7265288B2 (ja) ビデオ復号のための方法、ビデオデコーダ、およびコンピュータプログラム、ならびにビデオ符号化のための方法
JP2022515126A6 (ja) ビデオ・コーディングのための方法、装置及びコンピュータ・プログラム
JP7359951B2 (ja) ビデオ符号化のための方法、装置、媒体およびコンピュータ・プログラム
JP7419506B2 (ja) 映像コーディングのための方法及び装置
JP7236558B2 (ja) ビデオコーディングのための方法および装置
KR20220035255A (ko) 비디오 코딩 방법 및 장치
JP7346566B2 (ja) ビデオ復号方法、ビデオ復号装置、コンピュータプログラム、およびビデオ符号化方法
JP2024137976A (ja) ビデオコーディングのための方法および装置
JP7203996B2 (ja) 映像を復号する方法、装置、およびコンピュータプログラム
JP7267404B2 (ja) ビデオを符号化及び復号する方法、並びにその装置及びコンピュータプログラム
JP7514325B2 (ja) ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム
JP2023552141A (ja) 適応的ローカル参照範囲によるイントラブロックコピー
JP2023527657A (ja) Cuレベル重みをシグナリングしない双予測
JP2023521045A (ja) ビデオコーディングのための方法および装置
JP2023513718A (ja) ビデオ符号化のための方法および装置
JP7483025B2 (ja) ビデオコーディングのための方法及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221018

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230322

R150 Certificate of patent or registration of utility model

Ref document number: 7250928

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150