JP7378631B2 - ビデオ符号化のための方法および装置 - Google Patents

ビデオ符号化のための方法および装置 Download PDF

Info

Publication number
JP7378631B2
JP7378631B2 JP2022551369A JP2022551369A JP7378631B2 JP 7378631 B2 JP7378631 B2 JP 7378631B2 JP 2022551369 A JP2022551369 A JP 2022551369A JP 2022551369 A JP2022551369 A JP 2022551369A JP 7378631 B2 JP7378631 B2 JP 7378631B2
Authority
JP
Japan
Prior art keywords
string
current
block
video
region
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
JP2022551369A
Other languages
English (en)
Other versions
JP2023516177A (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 JP2023516177A publication Critical patent/JP2023516177A/ja
Application granted granted Critical
Publication of JP7378631B2 publication Critical patent/JP7378631B2/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/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • 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
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects

Landscapes

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

Description

関連出願の相互参照
本出願は、2020年12月07日に出願された米国仮出願第63/122,342号「STRING MATCHING WITH REFERENCE LOCATION CONSTRAINTS」に対する優先権の利益を主張する、2021年6月6日に出願された米国特許出願第17/368,616号「METHOD AND APPARATUS FOR VIDEO CODING」に対する優先権の利益を主張する。先の出願の開示全体が余さずこの参照によって援用される。
本開示は、全体としてビデオ符号化に関連する実施形態を説明する。
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。本発明者らの研究は、この研究がこの背景技術の項で説明されている限りにおいて、および出願時に従来技術と見なされ得ない説明の態様は、本開示に対する従来技術として明示的にも暗示的にも認められない。
ビデオ符号化およびデコーディングは、動き補償を伴うインターピクチャ予測を使用して実行され得る。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば1920×1080の輝度サンプルおよび関連する色差サンプルの空間次元を有する。一連のピクチャは、例えば毎秒60枚のピクチャまたは60Hzの固定もしくは可変のピクチャレート(非公式にはフレームレートとしても知られている)を有することができる。非圧縮ビデオは、特定のビットレート要件を有する。例えば、サンプルあたり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートで1920×1080の輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。1時間のこのようなビデオは、600GByteを超える記憶空間を必要とする。
ビデオ符号化およびデコーディングの目的の1つは、圧縮による入力ビデオ信号の冗長性の低減であり得る。圧縮は、前述の帯域幅および/または記憶空間の要件を、場合によっては2桁以上低減するのに役立つ。可逆圧縮および非可逆圧縮の両方、ならびにそれらの組み合わせを使用することができる。可逆圧縮とは、元信号の正確なコピーを圧縮された元信号から再構築することができる技術を指す。非可逆圧縮を使用する場合、再構築された信号は元の信号と同一ではあり得ないが、元の信号と再構築された信号との間の歪みは、再構築された信号を意図された用途に利用するのに十分小さい。ビデオの場合、非可逆圧縮が広く用いられている。許容される歪みの量は用途に依存し、例えば、特定の消費者ストリーミング用途のユーザは、テレビ配信用途のユーザよりも高い歪みを許容し得る。達成可能な圧縮比は、より高い容認可能/許容可能な歪みがより高い圧縮比をもたらし得ることを反映し得る。
ビデオエンコーダおよびデコーダは、例えば動き補償、変換、量子化、およびエントロピー符号化を含む、いくつかの広範なカテゴリからの技術を利用し得る。
ビデオコーデック技術は、イントラ符号化として知られる技術を含み得る。イントラ符号化では、以前に再構築された参照ピクチャからのサンプルまたは他のデータを参照することなく、サンプル値が表される。一部のビデオコーデックでは、ピクチャは、空間的にサンプルのブロックに細分される。サンプルのすべてのブロックがイントラモードで符号化される場合、そのピクチャは、イントラピクチャであり得る。イントラピクチャ、および独立デコーダリフレッシュピクチャなどのそれらの派生は、デコーダ状態をリセットするために使用され得、したがって、符号化されたビデオビットストリームおよびビデオセッション内の1番目のピクチャとして、または静止画像として使用され得る。イントラブロックのサンプルは、変換を受け得、変換係数は、エントロピー符号化前に量子化され得る。イントラ予測は、変換前領域におけるサンプル値を最小化する技術であり得る。場合によっては、変換後のDC値が小さいほど、およびAC係数が小さいほど、エントロピー符号化後のブロックを表すために所与の量子化ステップのサイズで必要とされるビットは少なくなる。
例えばMPEG-2生成符号化技術から知られているような従来のイントラ符号化は、イントラ予測を使用しない。しかしながら、一部のより新しいビデオ圧縮技術は、例えば、空間的に隣接し、かつデコーディング順序で先行するデータブロックのエンコーディングおよび/またはデコーディング中に取得された周囲のサンプルデータおよび/またはメタデータから試行する技術を含む。そのような技術は、これ以降は「イントラ予測」技術と呼ばれる。少なくともいくつかの場合において、イントラ予測は、再構築中の現在のピクチャからの参照データのみを使用し、参照ピクチャからの参照データは使用しないことに留意されたい。
イントラ予測には多くの異なる形式があり得る。このような技術のうちの1つより多くが、所与のビデオ符号化技術において使用され得る場合、使用中の技術はイントラ予測モードで符号化され得る。ある場合には、モードはサブモードおよび/またはパラメータを有し得、それらは個別に符号化され得るかまたはモードコードワードに含まれ得る。所与のモード、サブモード、および/またはパラメータの組み合わせにどのコードワードを使用するかは、イントラ予測による符号化効率/利得に影響を及ぼし得、したがって、コードワードをビットストリームに変換するために使用されるエントロピー符号化技術にも影響を及ぼし得る。
イントラ予測の特定のモードは、H.264で導入され、H.265で改良され、共同探索モデル(JEM:joint exploration model)、多用途ビデオ符号化(VVC:versatile video coding)、およびベンチマークセット(BMS:benchmark set)などのより新しい符号化技術でさらに改良された。予測子ブロックは、すでに利用可能なサンプルに属する隣接サンプル値を使用して形成され得る。隣接サンプルのサンプル値は、方向に従って予測子ブロックにコピーされる。使用中の方向への参照は、ビットストリーム内で符号化され得るか、またはそれ自体が予測され得る。
図1Aを参照すると、右下に示されているのは、H.265の33個の可能な予測子方向(35個のイントラモードのうちの33個の角度モードに対応する)から知られる9つの予測子方向のサブセットである。矢印が収束している点(101)は、予測されているサンプルを表す。矢印は、サンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が水平から45度の角度で右上にあるサンプルまたは複数のサンプルから予測されることを示す。同様に、矢印(103)は、サンプル(101)が水平から22.5度の角度でサンプル(101)の左下にあるサンプルまたは複数のサンプルから予測されることを示す。
さらに図1Aを参照すると、左上には、4×4サンプルの正方形ブロック(104)(太い破線で示されている)が示されている。正方形ブロック(104)は、16個のサンプルを含み、これら16個のサンプルはそれぞれ、「S」、Y次元におけるその位置(例えば、行インデックス)、およびX次元におけるその位置(例えば、列インデックス)でラベル付けされている。例えば、サンプルS21は、Y次元において(上から)2番目のサンプルであり、X次元において(左から)1番目のサンプルである。同様に、サンプルS44は、Y次元およびX次元の両方において4番目の、ブロック(104)内のサンプルである。ブロックのサイズが4×4サンプルであるため、S44は右下にある。同様の番号付けスキームに従う参照サンプルがさらに示されている。参照サンプルは、ブロック(104)に対してR、そのY位置(例えば、行インデックス)、およびX位置(列インデックス)でラベル付けされている。H.264およびH.265の両方において、予測サンプルは、再構築中のブロックに隣接し、したがって、負の値が使用される必要はない。
イントラピクチャ予測は、シグナリングされた予測方向によって割り当てられるように、隣接サンプルからの参照サンプル値をコピーすることによって機能し得る。例えば、符号化されたビデオビットストリームが、このブロックに関して、矢印(102)と一致する予測方向を示すシグナリングを含む、すなわち、サンプルが水平から45度の角度で右上にある予測サンプルまたは複数の予測サンプルから予測されると仮定する。その場合、同じ参照サンプルR05からサンプルS41、S32、S23、およびS14が予測される。次に、参照サンプルR08からサンプルS44が予測される。
特定の場合には、特に、方向が45度で均等に割り切れない場合、参照サンプルを計算するために、例えば補間によって、複数の参照サンプルの値が組み合わされ得る。
可能な方向の数は、ビデオ符号化技術が発展するにつれて増加している。H.264(2003年)では、9つの異なる方向が表され得る。これは、H.265(2013年)では33に増加しており、本開示の時点では、JEM/VVC/BMSが、最大で65の方向をサポートし得る。最も可能性の高い方向を特定するために実験が行われており、エントロピー符号化の特定の技術は、それらの可能性の高い方向を少数のビットで表すために使用され、可能性の低い方向に関しては一定のペナルティを受け入れている。さらに、方向自体が、隣接するすでにデコーディングされたブロックで使用された隣接する方向から予測され得る場合がある。
図1Bは、経時的に増加する予測方向の数を示すためにJEMによる65のイントラ予測方向を示す概略図(180)を示す。
方向を表す、符号化されたビデオビットストリーム内のイントラ予測方向ビットのマッピングは、ビデオ符号化技術ごとに異なり得、例えば、予測方向からイントラ予測モードへの単純な直接マッピング、コードワード、最も可能性の高いモードを含む複雑な適応方式、および同様の技術に及び得る。しかしながら、すべての場合において、ビデオコンテンツで特定の他の方向よりも統計的に可能性の低い特定の方向が存在し得る。ビデオ圧縮の目的は冗長性の低減であるため、それらの可能性の低い方向は、うまく機能するビデオ符号化技術では、可能性の高い方向よりも多くのビット数で表される。
動き補償は、非可逆圧縮技術であり得、以前に再構築されたピクチャまたはその部分(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以下MV(motion vector))によって示される方向に空間的にシフトされた後に、新たに再構築されるピクチャまたはピクチャ部分の予測に使用される技術に関し得る。場合によっては、参照ピクチャは、現在再構築中のピクチャと同じであり得る。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.H.265、「High Efficiency Video Coding」、2016年12月)に様々なMV予測機構が記載されている。ここでは、H.265が提供する多くのMV予測機構のうち、「空間マージ」と呼ばれる技術について説明する。
図2を参照すると、現在のブロック(201)は、空間的にシフトされた同じサイズの前のブロックから予測可能であるように動き検索プロセス中にエンコーダによって見つけられたサンプルを含む。そのMVを直接符号化する代わりに、MVは、A0、A1、およびB0、B1、B2(それぞれ202~206)で示される5つの周囲サンプルのいずれか1つに関連付けられたMVを使用して、1つまたは複数の参照ピクチャに関連付けられたメタデータから、例えば最新の(デコーディング順序の)参照ピクチャから導出することができる。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
本開示の態様は、ビデオエンコーディング/デコーディングのための方法および装置を提供する。いくつかの例では、ビデオデコーディングのための装置は処理回路を備える。処理回路は、現在の符号化ツリーユニット(CTU)内の現在の文字列のための文字列ベクトルを決定する。文字列ベクトルは、現在の文字列のための参照文字列を指す。処理回路は、文字列ベクトルが現在の文字列と参照文字列との部分的なオーバーラップの許容のための要件を満たしていることを判断し、その後、参照文字列に基づいて現在の文字列を再構築する。
いくつかの実施形態では、処理回路は、部分によって現在の文字列を再構築することができる。例えば、処理回路は、現在の文字列の第2の部分を再構築する前に、現在の文字列の第1の部分を再構築し、現在の文字列の第1の部分に基づいて、現在の文字列の第2の部分を再構築する。
いくつかの例では、処理回路は、文字列ベクトルが、文字列ベクトルの垂直成分および水平成分のうちの少なくとも1つが負であることに応答して、現在の文字列と参照文字列との部分的なオーバーラップの許容のための要件を満たしていることを判断することができる。
一例では、処理回路は、現在の文字列と参照文字列との部分的なオーバーラップの許容のための要件を満たすことに応答して、オーバーラップ制約をスキップし、現在の文字列と参照文字列との部分的なオーバーラップの許容のための要件を満たさないことに応答して、文字列ベクトルにオーバーラップ制約を適用することができる。
一例では、文字列の水平走査順序が使用される。処理回路は、文字列ベクトルの垂直成分が負であることを判断する。次に、処理回路は、行ごとに現在の文字列を再構築する。例えば、処理回路は、現在の文字列の第1のサンプル行を再構築し、現在の文字列の第1のサンプル行に基づいて、現在の文字列の第2のサンプル行を再構築する。
別の一例では、文字列の垂直走査順序が使用される。処理回路は、文字列ベクトルの水平成分が負であることを判断する。次に、処理回路は、列ごとに現在の文字列を再構築する。例えば、処理回路は、現在の文字列の第1のサンプル列を再構築し、現在の文字列の第1のサンプル列に基づいて現在の文字列の第2のサンプル列を再構築する。
いくつかの実施形態では、参照文字列は、現在のCTUの上方のサンプル行とオーバーラップし得る。次に、処理回路は、参照文字列が現在のCTUの上方のサンプル行とオーバーラップすることに応答して、現在の文字列の再構築のためにサンプル行内のサンプルを格納するバッファにアクセスすることができる。
本開示の態様では、ビデオエンコーディング/デコーディングのためにコンピュータによって実行されると、ビデオエンコーディング/デコーディングのための方法のいずれかをコンピュータに実行させる命令を格納する非一時的なコンピュータ可読媒体も提供する。
開示内容のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
イントラ予測モードの例示的なサブセットの概略図である。 例示的なイントラ予測方向の図である。 一例における現在のブロックおよびその周囲の空間マージ候補の概略図である。 一実施形態による通信システム(300)の簡略化された概略ブロック図である。 一実施形態による通信システム(400)の簡略化された概略ブロック図である。 一実施形態によるデコーダの簡略ブロック図の概略図である。 一実施形態によるエンコーダの簡略ブロック図の概略図である。 別の実施形態によるエンコーダのブロック図を示す。 別の実施形態によるデコーダのブロック図を示す。 本開示の実施形態によるイントラブロックコピーの例を示す。 本開示の実施形態によるイントラブロックコピーの例を示す。 本開示の実施形態によるイントラブロックコピーの例を示す。 本開示の実施形態によるイントラブロックコピーの例を示す。 本開示の実施形態によるイントラブロックコピーの例を示す。 本開示の実施形態によるイントラブロックコピーの例を示す。 本開示の実施形態によるイントラブロックコピーの例を示す。 本開示の一実施形態による、現在のブロックのイントラブロックコピーブロックベクトル予測のための空間クラスの一例を示す図である。 本開示の一実施形態による文字列コピーモードの一例を示す。 本開示のいくつかの実施形態による、符号化プロセス中のピクチャの図である。 いくつかの実施形態による文字列の再構築プロセスの一例を示す。 領域境界を交差する参照文字列の一例を示す。 領域境界を交差する参照文字列の別の一例を示す。 現在のCTUの上方のサンプルを含む参照文字列の一例を示す。 本開示の一実施形態による、プロセスを概説するフローチャートを示す。 一実施形態によるコンピュータシステムの概略図である。
図3は、本開示の一実施形態による通信システム(300)の簡略ブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信可能な複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末デバイス(310)および(320)の第1の対を含む。図3の例では、第1のペアの端末デバイス(310)および(320)は、データの単方向送信を実行する。例えば、端末デバイス(310)は、ネットワーク(350)を介して他の端末デバイス(320)に送信するためのビデオデータ(例えば、端末デバイス(310)によってキャプチャされたビデオピクチャのストリーム)を符号化し得る。エンコーディングされたビデオデータは、1つまたは複数の符号化されたビデオビットストリームの形態で送信され得る。端末デバイス(320)は、ネットワーク(350)から符号化されたビデオデータを受信し、符号化されたビデオデータをデコーディングしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。単方向データ送信は、メディアサービング用途などで一般的であり得る。
別の例では、通信システム(300)は、例えばビデオ会議中に発生することがある符号化されたビデオデータの双方向送信を実行する端末デバイス(330)および(340)の第2の対を含む。データの双方向送信のために、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)および(340)の他方の端末デバイスに送信するためのビデオデータ(例えば、端末デバイスによってキャプチャされたビデオピクチャのストリーム)を符号化し得る。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)の他方の端末デバイスによって送信された符号化されたビデオデータを受信し得、符号化されたビデオデータをデコーディングしてビデオピクチャを復元し得、復元されたビデオデータに従ってアクセス可能な表示デバイスにビデオピクチャを表示し得る。
図3の例では、端末デバイス(310)、(320)、(330)、および(340)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示され得るが、本開示の原理はそのように限定され得ない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用ビデオ会議機器に適用される。ネットワーク(350)は、例えば、有線および/または無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)および(340)間で符号化されたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換および/またはパケット交換チャネルでデータを交換し得る。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットが含まれる。本議論の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではないことがある。
図4は、開示されている主題の用途の例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTV、ならびにCD、DVD、およびメモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶などを含む他のビデオ対応用途に等しく適用可能であり得る。
ストリーミングシステムは、ビデオソース(401)、例えば、圧縮されていないビデオピクチャのストリーム(402)を作成する、例えば、デジタルカメラを含むことができるキャプチャサブシステム(413)を含み得る。一例では、ビデオピクチャのストリーム(402)は、デジタルカメラによって撮影されたサンプルを含む。エンコーディングされたビデオデータ(404)(または符号化されたビデオビットストリーム)と比較して高いデータ量を強調するために太線として示されているビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理され得る。ビデオエンコーダ(403)は、ハードウェア、ソフトウェア、またはそれらの組み合わせを含み、以下により詳細に説明されるように、開示された主題の態様を可能にするかまたは実施することができる。エンコーディングされたビデオデータ(404)(またはエンコーディングされたビデオビットストリーム(404))は、ビデオピクチャのストリーム(402)と比較してより少ないデータ量を強調するために細い線として描かれ、将来の使用のためにストリーミングサーバ(405)に格納することができる。図4のクライアントサブシステム(406)および(408)などの1つ以上のストリーミングクライアントサブシステムは、エンコーディングされたビデオデータ(404)のコピー(407)および(409)を検索するためにストリーミングサーバ(405)にアクセスし得る。クライアントサブシステム(406)は、例えば電子デバイス(430)内のビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコーディングされたビデオデータの入力コピー(407)をデコーディングし、ディスプレイ(412)(例えば、表示画面)または他のレンダリングデバイス(図示せず)上にレンダリングすることができるビデオピクチャの出力ストリーム(411)を作成する。いくつかのストリーミングシステムでは、エンコーディングされたビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)を、特定のビデオ符号化/圧縮規格に従ってエンコーディングすることができる。例えば、ITU-T勧告H.265などが挙げられる。一例では、開発
中のビデオ符号化規格は、多用途ビデオ符号化(VVC)として非公式に知られている。開示されている主題は、VVCの文脈で使用され得る。
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)はビデオエンコーダ(図示せず)も含むことができる。
図5は、本開示の一実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれ得る。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例のビデオデコーダ(410)の代わりに使用され得る。
受信機(531)は、ビデオデコーダ(510)によってデコーディングされる1つまたは複数の符号化されたビデオシーケンスを受信し得、同じまたは別の実施形態では、一度に1つの符号化されたビデオシーケンスを受信し、各符号化されたビデオシーケンスのデコーディングは、他の符号化されたビデオシーケンスから独立している。符号化されたビデオシーケンスは、チャネル(501)から受信され得、チャネル(501)は、エンコーディングされたビデオデータを格納する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る。受信機(531)は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリームと共にエンコーディングされたビデオデータを受信し得る。受信機(531)は、符号化されたビデオシーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、バッファメモリ(515)を、受信機(531)とエントロピーデコーダ/パーサ(520)(以下、「パーサ(520)」)との間に結合し得る。特定の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の一部である。他の場合には、ビデオデコーダ(510)の外部にあってもよい(図示せず)。さらに他のものでは、例えばネットワークジッタに対抗するためにビデオデコーダ(510)の外部にバッファメモリ(図示せず)があり、さらに例えば再生タイミングを処理するためにビデオデコーダ(510)の内部に別のバッファメモリ(515)があり得る。受信機(531)が十分な帯域幅および制御可能性の格納/転送デバイスから、またはアイソシンクロナスネットワークからデータを受信しているとき、バッファメモリ(515)は必要ないか、または小さくてよい。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(515)が必要とされることがあり、比較的大きくてもよく、好適には適応サイズであってもよく、ビデオデコーダ(510)の外部のオペレーティングシステムまたは同様の要素(図示せず)に少なくとも部分的に実装され得る。
ビデオデコーダ(510)は、符号化されたビデオシーケンスからシンボル(521)を再構築するためのパーサ(520)を含み得る。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、場合によっては、図5に示されているように、電子デバイス(530)の不可欠な部分ではないが、電子デバイス(530)に結合され得るレンダデバイス(512)などのレンダリングデバイス(例えば、表示スクリーン)を制御するための情報を含む。レンダリングデバイスの制御情報は、補足拡張情報(SEI(Supplemental Enhancement Information)メッセージ)またはビデオユーザビリティ情報(VUI:Video Usability Information)パラメータセットフラグメント(図示せず)の形式であり得る。パーサ(520)は、受信した符号化されたビデオシーケンスを解析/エントロピーデコーディングし得る。符号化されたビデオシーケンスの符号化は、ビデオ符号化技術または規格に従うことができ、可変長符号化、ハフマン符号化、文脈依存の有無にかかわらず算術符号化などを含む様々な原則に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化されたビデオシーケンスから、ビデオデコーダ内の画素のサブグループの少なくとも1つのサブグループパラメータのセットを抽出し得る。サブグループには、ピクチャグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含めることができる。パーサ(520)はまた、変換係数、量子化器パラメータ値、動きベクトルなどの符号化されたビデオシーケンス情報から抽出し得る。
パーサ(520)は、バッファメモリ(515)から受信したビデオシーケンスに対してエントロピーデコーディング/解析動作を実行して、シンボル(521)を作成し得る。
シンボル(521)の再構築は、符号化されたビデオピクチャまたはその一部(ピクチャ間およびイントラピクチャ、ブロック間およびイントラブロックなど)のタイプ、および他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットがどのように関与するかは、パーサ(520)によって符号化されたビデオシーケンスから解析されたサブグループ制御情報によって制御することができる。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、分かりやすくするために描かれていない。
すでに述べた機能ブロックを超えて、ビデオデコーダ(510)は、以下に説明するように、いくつかの機能ユニットに概念的に細分され得る。商業的制約の下で動作する実際の実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的には互いに統合することができる。しかしながら、開示されている主題を説明する目的のために、以下の機能ユニットに概念的に細分するのが適切である。
第1のユニットはスケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化された変換係数、ならびに使用する変換、ブロックサイズ、量子化因子、量子化スケーリングマトリクスなどを含む制御情報を、パーサ(520)からシンボル(複数可)(521)として受け取る。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力され得るサンプル値を備えるブロックを出力することができる。
場合によっては、スケーラ/逆変換ユニット(551)の出力サンプルは、イントラ符号化されたブロックに関係することができ、つまり、以前に再構築されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構築された部分からの予測情報を使用できるブロックである。そのような予測情報を、イントラピクチャ予測ユニット(552)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在のピクチャバッファ(558)からフェッチされた周囲のすでに再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。現在のピクチャバッファ(558)は、例えば、部分的に再構築された現在のピクチャおよび/または完全に再構築された現在のピクチャをバッファに入れる。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラピクチャ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、インター符号化され、潜在的に動き補償されたブロックに関係し得る。このような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加できる(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、動きベクトルによって制御され得、例えば、X、Y、および参照ピクチャコンポーネントを有することができるシンボル(521)の形式で動き補償予測ユニット(553)に利用可能である。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間、動きベクトル予測機構などを含むことができる。
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術の対象となり得る。ビデオ圧縮技術は、符号化されたビデオシーケンス(符号化されたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能になるインループフィルタ技術を含むことができるが、符号化されたピクチャまたは符号化されたビデオシーケンスの前の(デコーディング順序で)部分のデコーディング中に取得されたメタ情報に応答することができ、以前に再構築およびループフィルタリングされたサンプル値に応答することもできる。
ループフィルタユニット(556)の出力は、レンダデバイス(512)に出力され得るだけでなく、将来のピクチャ間予測で使用するために参照ピクチャメモリ(557)に格納され得るサンプルストリームであり得る。
特定の符号化されたピクチャは、完全に再構築されると、将来の予測のための参照ピクチャとして使用され得る。例えば、現在のピクチャに対応する符号化されたピクチャが完全に再構築され、符号化されたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、次の符号化されたピクチャの再構築を開始する前に、新しい現在のピクチャバッファを再割り当てすることができる。
ビデオデコーダ(510)は、ITU-T Rec.H.265などの規格の所定のビデオ圧縮技術に従ってデコーディング動作を実行し得る。符号化されたビデオシーケンスは、符号化されたビデオシーケンスがビデオ圧縮技術または規格の構文と、ビデオ圧縮技術または規格に文書化されたプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術または規格によって指定された構文に準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格で利用可能なすべてのツールの中から、そのプロファイルの下での使用に利用可能な唯一のツールとして特定のツールを選択し得る。また、コンプライアンスのために必要なのは、符号化されたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義された範囲内にあることであり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば毎秒メガサンプルで測定される)、および最大参照ピクチャサイズなどを制限する。レベルによって設定された限界は、場合によっては、仮想参照デコーダ(HRD:Hypothetical Reference Decoder)の仕様、および符号化されたビデオシーケンスでシグナリングされるHRDバッファ管理のメタデータによってさらに制限され得る。
一実施形態では、受信機(531)は、エンコーディングされたビデオと共に追加の(冗長な)データを受信し得る。追加のデータは、符号化されたビデオシーケンス(複数可)の一部として含まれることがある。追加のデータは、データを適切にデコーディングするため、および/または元のビデオデータをより正確に再構築するために、ビデオデコーダ(510)によって使用され得る。追加のデータは、例えば、時間、空間、または信号ノイズ比(SNR:signal noise ratio)拡張層、冗長スライス、冗長ピクチャ、および前方誤り訂正コードなどの形式であり得る。
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)は、図4の例のビデオエンコーダ(403)の代わりに使用され得る。
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によって符号化されるべきビデオ画像を取り込み得るビデオソース(601)(図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信し得る。別の例では、ビデオソース(601)は電子デバイス(620)の一部である。
ビデオソース(601)は、ビデオエンコーダ(603)によって符号化されるべきソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)のものとすることができるデジタルビデオサンプルストリームの形態で提供し得る。メディアサービングシステムにおいて、ビデオソース(601)は、予め用意されたビデオを格納する記憶デバイスであってもよい。ビデオ会議システムにおいて、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであってもよい。ビデオデータは、順番に見たときに動きを与える複数の個別の画像として提供し得る。画像自体は、画素の空間配列として編成することができ、各画素は、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、画素とサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を合わせている。
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、または用途によって要求される他の任意の時間制約の下で、ソースビデオシーケンスのピクチャを符号化されたビデオシーケンス(643)に符号化および圧縮し得る。適切な符号化速度を強制することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下に説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。分かりやすくするために、結合は描かれていない。コントローラ(650)によって設定されるパラメータには、レート制御関連のパラメータ(ピクチャスキップ、量子化器、レート歪み最適化手法のラムダ値など)、ピクチャサイズ、ピクチャグループ(GOP)レイアウト、最大動きベクトル検索範囲などが含まれ得る。コントローラ(650)は、特定のシステム設計に最適化されたビデオエンコーダ(603)に関する他の適切な機能を有するように構成されうる。
いくつかの実施形態では、ビデオエンコーダ(603)は、符号化ループで動作するように構成される。過度に簡略化された説明として、一例では、符号化ループは、ソースコーダ(630)(例えば、符号化される入力ピクチャと、参照ピクチャ(複数可)とに基づいて、シンボルストリームのようなシンボルを生成することを担当する)と、ビデオエンコーダ(603)に組み込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(リモート)デコーダも作成するのと同様の方法でサンプルデータを作成するためにシンボルを再構築する(開示された主題で考慮されるビデオ圧縮技術では、シンボルと符号化されたビデオビットストリームとの間の任意の圧縮が可逆的であるため)。その再構築されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコーディングにより、デコーダ位置(ローカルまたはリモート)に関係なくビットイグザクト(bit-exact)結果が得られるため、参照ピクチャメモリ(634)内のコンテンツもまたローカルエンコーダとリモートエンコーダとの間でビットイグザクトになる。言い換えると、エンコーダの予測部分は、デコーディング中に予測を使用するときにデコーダが「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、例えばチャネルエラーのために同期性を維持できない場合に生じるドリフト)のこの基本原理は、いくつかの関連技術でも同様に使用されている。
「ローカル」デコーダ(633)の動作は、図5に関連して上記ですでに詳細に説明された、ビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得る。しかしながら、図5も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)による符号化されたビデオシーケンスへのシンボルのエンコーディング/デコーディングは可逆であり得、バッファメモリ(515)およびパーサ(520)を含むビデオデコーダ(510)のエントロピーデコーディング部分は、ローカルデコーダ(633)に完全に実装されていないことがある。
現時点で行うことができる観察は、デコーダに存在する解析/エントロピーデコーディング化以外のデコーダ技術も、対応するエンコーダに実質的に同一の機能形式で必ず存在する必要があるということである。このため、開示されている主題はデコーダ動作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されているデコーダ技術の逆であるため、省略され得る。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
動作中、いくつかの例では、ソースコーダ(630)は、動き補償予測符号化を実行することがあり、これは、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前に符号化されたピクチャを参照して入力ピクチャを予測的に符号化する。このようにして、符号化エンジン(632)は、入力ピクチャの画素ブロックと、入力ピクチャへの予測参照(複数可)として選択され得る参照ピクチャ(複数可)の画素ブロックとの間の差異を符号化する。
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定されうるピクチャの符号化されたビデオデータをデコーディングすることができる。符号化エンジン(632)の動作は、好適には、非可逆プロセスであり得る。符号化されたビデオデータがビデオデコーダ(図6には示されていない)でデコーディングされ得るとき、再構築されたビデオシーケンスは通常、いくらかの誤差を有するソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照ピクチャ上でビデオデコーダによって実行され得るデコーディングプロセスを複製し、再構築された参照ピクチャを参照ピクチャキャッシュ(634)に格納させ得る。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダによって取得される(伝送エラーがない)再構築された参照ピクチャとして共通のコンテンツを有する再構築された参照ピクチャのコピーをローカルに格納することができる。
予測子(635)は、符号化エンジン(632)の予測検索を実行することができる。すなわち、符号化される新しいピクチャに対して、予測子(635)は、サンプルデータ(候補参照画素ブロックとして)または新しいピクチャの適切な予測参照として役立ち得る参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータについて、参照ピクチャメモリ(634)を検索し得る。予測子(635)は、適切な予測参照を見つけるために、画素ブロックごとに1つのサンプルブロックで動作し得る。場合によっては、予測子(635)によって取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に格納された複数の参照ピクチャから引き出された予測参照を有することができる。
コントローラ(650)は、例えば、ビデオデータをエンコーディングするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)の符号化動作を管理することができる。
前述のすべての機能ユニットの出力は、エントロピーコーダ(645)でエントロピー符号化を受けさせうる。エントロピーコーダ(645)は、ハフマン符号化、可変長符号化、算術符号化などのテクノロジによりシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化されたビデオシーケンスに変換する。
送信機(640)は、エントロピーコーダ(645)によって作成された符号化されたビデオシーケンス(複数可)をバッファに入れて、通信チャネル(660)を介した送信のために準備し得、通信チャネル(660)は、エンコーディングされたビデオデータを格納する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る。送信機(640)は、ビデオエンコーダ(603)からの符号化されたビデオデータを、送信される他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージし得る。
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理し得る。符号化中に、コントローラ(650)は、それぞれの符号化されたピクチャに特定の符号化されたピクチャタイプを割り当てることがあり、これは、それぞれのピクチャに適用され得る符号化技術に影響を及ぼし得る。例えば、ピクチャは、多くの場合、以下のピクチャタイプのうちの1つとして割り当てられ得る。
イントラピクチャ(Iピクチャ)は、シーケンス内の他のピクチャを予測のソースとして使用せずに符号化およびデコーディングされ得るものであり得る。一部のビデオコーデックは、例えば独立デコーダリフレッシュ(「IDR:Independent Decoder Refresh」)ピクチャを含む様々なタイプのイントラピクチャに対応する。当業者は、Iピクチャのそれらの変種ならびにそれらのそれぞれの用途および特徴を認識している。
予測ピクチャ(Pピクチャ)は、イントラ予測またはインター予測を用い、各ブロックのサンプル値を予測するのに最大1つの動きベクトルと参照インデックスとを用いて符号化およびデコーディングを行うことができるピクチャであるといえる。
双方向予測ピクチャ(Bピクチャ)は、イントラ予測またはインター予測を用い、各ブロックのサンプル値を予測するのに最大2つの動きベクトルと参照インデックスとを用いて符号化およびデコーディングを行うことができるピクチャであるといえる。同様に、複数の予測ピクチャは、単一のブロックの再構築のために2つより多くの参照ピクチャおよび関連メタデータを使用し得る。
ソースピクチャは、一般的には、複数のサンプルブロック(例えば、4×4、8×8、4×8、または16×16のサンプルそれぞれのブロック)に空間的に細分され、ブロックごとに符号化され得る。ブロックは、ブロックのそれぞれのピクチャに適用された符号化割り当てによって決定されるように他の(すでに符号化された)ブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは、非予測的に符号化され得るか、または同じピクチャのすでに符号化されたブロックを参照して予測的に符号化され得る(空間予測またはイントラ予測)。Pピクチャの画素ブロックは、空間予測によってまたは時間予測によって、以前に符号化された1つの参照ピクチャを参照して予測的に符号化され得る。Bピクチャのブロックは、空間予測によってまたは時間予測によって、以前に符号化された1つまたは2つの参照ピクチャを参照して予測的に符号化され得る。
ビデオエンコーダ(603)は、例えばITU-T Rec.H.265などの所定のビデオ符号化技術または規格に従って符号化動作を実行し得る。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的および空間的冗長性を利用する予測符号化動作を含む、様々な圧縮動作を実行し得る。したがって、符号化されたビデオデータは、使用されているビデオ符号化技術または規格によって指定されたシンタックスに準拠し得る。
一実施形態では、送信機(640)は、エンコーディングされたビデオと共に追加のデータを送信し得る。ソースコーダ(630)は、符号化されたビデオシーケンスの一部としてそのようなデータを含み得る。追加のデータは、時間/空間/SNR拡張層、冗長ピクチャおよびスライスなどの他の形式の冗長データ、SEIメッセージ、およびVUIパラメータセットフラグメントなどを含み得る。
ビデオは、時系列の複数のソースピクチャ(ビデオピクチャ)として取り込まれ得る。イントラピクチャ予測(しばしばイントラ予測と略される)は、所与のピクチャにおける空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的または他の)相関を利用する。一例では、現在のピクチャと呼ばれる、エンコーディング/デコーディング中の特定のピクチャがブロックに分割される。対象のピクチャ中のブロックがビデオ中の、以前に符号化されて依然としてバッファリングされている参照ピクチャ中の参照ブロックに類似する場合、対象のピクチャ中のブロックを、動きベクトルと称されているベクトルによって符号化することができる。動きベクトルは、参照ピクチャ中で参照ブロックの方に向いており、複数の参照ピクチャが用いられる場合、第3の次元を持って参照ピクチャを特定することができる。
一部の実施形態では、インターピクチャ予測に双予測技術が使用され得る。双予測技術によれば、第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用され、これらは両方ともビデオ内の現在のピクチャのデコーディング順序より前にある(しかし、表示順序は、それぞれ過去および未来のものであってもよい)。第1の参照ピクチャ中で第1の参照ブロックの方に向いている第1の動きベクトルと、第2の参照ピクチャ中で第2の参照ブロックの方に向いている第2の動きベクトルとによって対象のピクチャ中のブロックを符号化することができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測され得る。
さらに、符号化効率を改善するために、インターピクチャ予測にマージモード技術が使用され得る。
本開示の一部の実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、HEVC規格によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のために符号化ツリーユニット(CTU:coding tree unit)に分割され、ピクチャ内のCTUは、64×64画素、32×32画素、または16×16画素などの同じサイズを有する。一般に、CTUは、1つの輝度符号化ツリーブロック(CTB)および2つの彩度CTBである3つのCTBを含む。各CTUは、1つまたは複数の符号化ユニット(CU)に再帰的にクワッドツリー分割され得る。例えば、64x64画素のCTUは、64x64画素の1つのCU、または32x32画素の4つのCU、または16x16画素の16個のCUに分割され得る。一例では、各CUは、インター予測タイプまたはイントラ予測タイプなどのCUの予測タイプを決定するために分析される。CUは、時間的および/または空間的な予測可能性に応じて、1つ以上の予測ユニット(PU:prediction unit)に分割される。一般に、各PUは、ルマ予測ブロック(PB:prediction block)と、2つのクロマPBとを含む。一実施形態では、符号化(エンコーディング/デコーディング)における予測動作は、予測ブロックの単位で実行される。予測ブロックの例としてルマ予測ブロックを使用すると、予測ブロックは、8×8画素、16×16画素、8×16画素、および16×8画素などの画素の値(例えば、ルマ値)の行列を含む。
図7は、本開示の別の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、符号化されたビデオシーケンスの一部である符号化されたピクチャにエンコーディングするように構成される。一例では、ビデオエンコーダ(703)は、図4の例のビデオエンコーダ(403)の代わりに使用される。
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどの処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(703)は、処理ブロックが、例えばレート歪み最適化を使用して、イントラモード、インターモード、または双予測モードを使用して最良に符号化されるかどうかを決定する。処理ブロックがイントラモードで符号化されるとき、ビデオエンコーダ(703)は、処理ブロックを符号化されたピクチャへエンコーディングするために、イントラ予測技術を使用し得、処理ブロックがインターモードまたは双予測モードで符号化されるとき、ビデオエンコーダ(703)は、処理ブロックを符号化されたピクチャにエンコーディングするために、それぞれインター予測技術または双予測技術を使用し得る。特定のビデオ符号化技術では、マージモードは、予測子の外側の符号化された動きベクトル成分の恩恵を受けずに動きベクトルが1つまたは複数の動きベクトル予測子から導出されるピクチャ間予測サブモードであり得る。特定の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
図7の例では、ビデオエンコーダ(703)は、図7に示されているように互いに結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差算出部(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、およびエントロピーエンコーダ(725)を含む。
インターエンコーダ(730)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを参照ピクチャ(例えば、前のピクチャおよび後のピクチャ内のブロック)内の1つまたは複数の参照ブロックと比較し、インター予測情報(例えば、インターエンコーディング技術、動きベクトル、マージモード情報による冗長情報の記述)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を算出するように構成される。一部の例では、参照ピクチャは、エンコーディングされたビデオ情報に基づいてデコーディングされたデコーディングされた参照ピクチャである。
イントラエンコーダ(722)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、ブロックを同じピクチャ内ですでに符号化されているブロックと比較し、変換後に量子化係数を生成し、場合によってはイントラ予測情報(例えば、1つまたは複数のイントラエンコーディング技術によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(722)は、イントラ予測情報と、同一ピクチャ内の参照ブロックとに基づいて、イントラ予測結果(例えば、予測ブロック)も算出する。
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、汎用コントローラ(721)は、ブロックのモードを決定し、モードに基づいてスイッチ(726)に制御信号を提供する。例えば、モードがイントラモードである場合、汎用コントローラ(721)は、残差算出部(723)が用いるイントラモード結果を選択するためにスイッチ(726)を制御し、イントラ予測情報を選択してビットストリームに含めるためにエントロピーエンコーダ(725)を制御し、モードがインターモードである場合、汎用コントローラ(721)は、残差算出部(723)が用いるインター予測結果を選択するためにスイッチ(726)を制御し、インター予測情報を選択してビットストリームに含めるためにエントロピーエンコーダ(725)を制御する。
残差算出部(723)は、受信されたブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択された予測結果との差分(残差データ)を算出するように構成される。残差エンコーダ(724)は、残差データに基づいて動作して、変換係数を生成するために残差データをエンコーディングするように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。変換係数はその後、量子化された変換係数を得るために量子化処理を受ける。様々な実施形態において、ビデオエンコーダ(703)はまた、残差デコーダ(728)を含む。残差デコーダ(728)は、逆変換を実行し、デコーディングされた残差データを生成するように構成される。デコーディングされた残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって好適に使用され得る。例えば、インターエンコーダ(730)は、デコーディングされた残差データとインター予測情報とに基づいてデコーディングされたブロックを生成することができ、イントラエンコーダ(722)は、デコーディング残差データとイントラ予測情報とに基づいてデコーディングされたブロックを生成することができる。一部の例では、デコーディングされたブロックは、デコーディングされたピクチャを生成するために適切に処理され、デコーディングされたピクチャは、メモリ回路(図示せず)にバッファリングされ、参照ピクチャとして使用され得る。
エントロピーエンコーダ(725)は、エンコーディングされたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格などの適切な規格に従って様々な情報を含むように構成される。一例では、エントロピーエンコーダ(725)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含めるように構成される。開示されている主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックを符号化する場合、残差情報は存在しないことに留意されたい。
図8は、本開示の別の実施形態によるビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、符号化されたビデオシーケンスの一部である符号化されたピクチャを受信し、符号化されたピクチャをデコーディングして再構築されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例のビデオデコーダ(410)の代わりに使用される。
図8の例では、ビデオデコーダ(810)は、図8に示されているように互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構築モジュール(874)、およびイントラデコーダ(872)を含む。
エントロピーデコーダ(871)は、符号化されたピクチャから、符号化されたピクチャを構成する構文要素を表す特定のシンボルを再構築するように構成され得る。そのようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双方向予測モード、後者の2つは、マージサブモードまたは別のサブモード)、イントラデコーダ(872)またはインターデコーダ(880)によってそれぞれ予測に使用される特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報やインター予測情報など)、例えば量子化変換係数の形態の残差情報などを含むことができる。一例では、予測モードがインター予測モードまたは双方向予測モードである場合、インター予測情報はインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は逆量子化を受けることができ、残差デコーダ(873)に提供される。
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
残差デコーダ(873)は、逆量子化を実行して逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)はまた、(量子化器パラメータ(QP)を含むために)特定の制御情報を必要とする場合があり、その情報はエントロピーデコーダ(871)によって提供される場合がある(これとして示されていないデータ経路は、低量制御情報のみであり得る)。
再構築モジュール(874)は、空間領域において、残差デコーダ(873)による出力としての残差と、(場合によってはインターまたはイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構築されたピクチャの一部であり得る再構築されたブロックを形成するように構成され、再構築されたブロックは再構築されたビデオの一部であり得る。視覚的品質を改善するために、デブロッキング動作などの他の適切な動作が実行され得ることに留意されたい。
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技術を使用して実施され得ることに留意されたい。一実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、1つまたは複数の集積回路を使用して実施され得る。別の実施形態では、ビデオエンコーダ(403)、(603)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実施され得る。
ブロックベースの補償は、インター予測およびイントラ予測に使用できる。インター予測の場合、異なるピクチャからのブロックに基づく補償は、動き補償として知られている。ブロックに基づく補償は、イントラ予測など、同じピクチャ内の以前に再構築された領域からも行うことができる。同じピクチャ内の再構築された領域からのブロックに基づく補償は、イントラピクチャブロック補償、現在のピクチャ参照(CPR)、またはイントラブロックコピー(IBC)と呼ばれる。現在のブロックと、同じピクチャ内の参照ブロック(予測ブロックとも呼ばれる)との間のオフセットを示す変位ベクトルはブロックベクトル(BV)と呼ばれ、現在のブロックは、参照ブロックに基づいてエンコーディング/デコーディングされ得る。任意の値(正または負、x方向でもy方向でも)をとることができる動き補償の動きベクトルとは異なり、BVには、参照ブロックが利用可能ですでに再構築されていることを保証するためのいくつかの制約がある。また、いくつかの例では、並列処理を考慮するために、タイル境界、スライス境界、またはウェーブフロントラダー(wavefront ladder)形状の境界である、いくつかの参照領域が除外される。
ブロックベクトルの符号化は、明示的または暗黙的に行われる場合がある。明示的モードでは、ブロックベクトルとその予測子との間のBV差がシグナリングされる。暗黙的モードでは、ブロックベクトルは、マージモードの動きベクトルと同様の方法で、BV差を使用せずに予測子(ブロックベクトル予測子と呼ばれる)から回復される。明示的モードを、非マージBV予測モードと呼ぶことができる。暗黙的モードを、マージBV予測モードと呼ぶことができる。
ブロックベクトルの分解能は、いくつかの実施では、整数位置に限定される。他のシステムでは、ブロックベクトルは分数位置を指すことができる。
いくつかの例では、ブロックレベルでのイントラブロックコピーの使用は、IBCフラグなどのブロックレベルフラグを使用してシグナリングされ得る。一実施形態では、現在のブロックが明示的に符号化されるとき、ブロックレベルフラグがシグナリングされる。いくつかの例では、ブロックレベルでのイントラブロックコピーの使用は、参照インデックスの手法を使用してシグナリングされ得る。デコーディング中の現在のピクチャは、その後、参照ピクチャまたは特殊な参照ピクチャとして扱われる。一例では、このような参照ピクチャは、参照ピクチャのリストの最後の位置に置かれる。特殊な参照ピクチャは、他の時間的な参照ピクチャと一緒に、デコーディングピクチャバッファ(DPB)などのバッファで管理される。
IBCモードにはバリエーションがあり得る。一例では、IBCモードは、イントラ予測モードおよびインター予測モードとは異なる第3のモードとして扱われる。したがって、暗黙的モード(またはマージモード)および明示的モードのBV予測は、通常のインターモードから分離される。IBCモードには別個のマージ候補リストを定義することができ、別個のマージ候補リスト内のエントリはBVである。同様に、一例では、IBC明示的モードのBV予測候補リストはBVのみを含む。これら2つのリスト(すなわち、別個のマージ候補リストおよびBV予測候補リスト)に適用される一般的な規則は、これら2つのリストが、候補導出プロセスに関して、通常のマージモードで使用されるマージ候補リストまたは通常のAMVPモードで使用されるAMVP予測子リストと同じ論理に従い得るということである。例えば、IBCモードの別個のマージ候補リストを導出するために、5つの空間的に隣接する位置(例えば、図2のA0、A1、およびB0、B1、B2)、例えば、HEVCまたはVVC相互マージモードがIBCモードのためにアクセスされる。
前述したように、ピクチャ内で再構築中の現在のブロックのBVは、いくつかの制約がある可能性があり、したがって、現在のブロックの参照ブロックは検索範囲内にある。検索範囲とは、参照ブロックを選択できるピクチャの一部のことを指す。例えば、検索範囲は、ピクチャ内の再構築された領域のいくつかの部分の中にあってもよい。検索範囲のサイズ、位置、形状などを制約することができる。あるいは、BVを制約することができる。一例では、BVはxおよびy成分を含む二次元ベクトルであり、xおよびy成分の少なくとも一方を制約することができる。制約は、BV、検索範囲、またはBVと検索範囲との組み合わせに対して指定することができる。様々な例において、BVに対していくつかの制約が指定されると、これに従って検索範囲が制約される。同様に、検索範囲に対していくつかの制約が指定されると、これに従ってBVが制約される。
図9は、本開示の実施形態によるイントラブロックコピーの例を示す。現在のピクチャ(900)は、デコーディング中に再構築される。現在のピクチャ(900)は、再構築された領域(910)(灰色の領域)と、デコーディング対象領域(920)(白色の領域)とを含む。現在のブロック(930)は、デコーダによって再構築中である。現在のブロック(930)は、再構築された領域(910)にある参照ブロック(940)から再構築され得る。参照ブロック(940)と現在のブロック(930)との間の位置オフセットは、ブロックベクトル(950)(またはBV(950))と呼ばれる。図9の例では、検索範囲(960)は、再構築された領域(910)内にあり、参照ブロック(940)は、検索範囲(960)内にあり、ブロックベクトル(950)は、検索範囲(960)内にある参照ブロック(940)を指すように制約される。
BVおよび/または検索範囲には、様々な制約を適用することができる。一実施形態では、現在のCTBにおける再構築中の現在のブロックに対する検索範囲は、現在のCTB内になるように制約される。
一実施形態において、イントラブロックコピーに使用される参照サンプルを格納するのに効率的なメモリ要件は、1CTBサイズである。一例では、CTBサイズは128x128サンプルである。現在のCTBは、再構築中の現在の領域を含む。現在の領域は、64x64サンプルのサイズを有する。参照メモリは、再構築されたサンプルを現在の領域にさらに格納できるので、参照メモリは、参照メモリサイズが、128x128サンプルのCTBサイズと等しいときは、64x64のサンプルをさらに3領域格納することができる。したがって、検索範囲は、以前に再構築されたCTBのいくつかの部分を含むことができ、参照サンプルを格納するための総メモリ要件は変化しない(128x128サンプルの1CTBサイズ、または64x64の合計4つの参照サンプルなど)。一例では、図10に示すように、以前に再構築されたCTBが現在のCTBの左隣にある。
図10は、本開示の実施形態によるイントラブロックコピーの例を示す。現在のピクチャ(1001)は、再構築中の現在のCTB(1015)と、現在のCTB(1015)の左隣にある、以前に再構築されたCTB(1010)とを含む。現在のピクチャ(1001)内のCTBは、128x128サンプルなどのCTBサイズ、および128サンプルなどのCTB幅を有する。現在のCTB(1015)は、4つの領域(1016)~(1019)を含み、現在の領域(1016)は再構築中である。現在の領域(1016)は、複数の符号化ブロック(1021)~(1029)を含む。同様に、以前に再構築されたCTB(1010)も4つの領域(1011)~(1014)を含む。符号化ブロック(1021)~(1025)は再構築されており、現在のブロック(1026)は再構築中であり、符号化ブロック(1026)~(1027)、および領域(1017)~(1019)はこれから再構築される。
現在の領域(1016)は、並置領域(すなわち以前に再構築されたCTB(1010)内の領域(1011))を有する。以前に再構築されたCTB(1010)に対する並置領域(1011)の相対位置は、現在のCTB(1015)に対する現在の領域(1016)の相対位置と同一であってもよい。図10に示す例では、現在の領域(1016)は、現在のCTB(1015)の左上領域であり、したがって並置領域(1011)もまた、以前に再構築されたCTB(1010)の左上領域である。以前に再構築されたCTB(1010)の位置は、現在のCTB(1015)の位置からCTB幅だけオフセットされているので、並置領域(1011)の位置は、現在の領域(1016)の位置からCTB幅だけオフセットされる。
一実施形態では、現在の領域(1016)の並置領域は、以前に再構築されたCTBにあり、以前に再構築されたCTBの位置は、現在のCTB(1015)の位置からCTB幅1つ分、または倍数分オフセットされており、したがって、並置領域の位置もまた、現在の領域(1016)の位置から対応するCTB幅1つ分、または倍数分オフセットされている。並置領域の位置は、現在の領域(1016)から、左シフトさせたり、上シフトさせたりすることができる。
前述したように、現在のブロック(1026)に対する検索範囲のサイズは、CTBサイズによって制約される。図10の例では、検索範囲は、以前に再構築されたCTB(1010)内の領域(1012)~(1014)、および符号化ブロック(1021)~(1025)などの、すでに再構築された現在の領域(1016)の一部を含むことができる。検索範囲から並置領域(1011)をさらに除外するので、検索範囲のサイズはCTBサイズ内に収まる。図10を参照すると、参照ブロック(1091)は、以前に再構築されたCTB(1010)の領域(1014)に配置される。ブロックベクトル(1020)は、現在のブロック(1026)と、それぞれの参照ブロック(1091)との間のオフセットを示す。参照ブロック(1091)は検索範囲内にある。
図10に示す例は、現在の領域が現在のCTB(1015)内の別の位置に置かれる、他の状況に適切に合わせることができる。一例では、現在のブロックが領域(1017)にあるとき、現在のブロックの並置領域は領域(1012)である。したがって、検索範囲は領域(1013)~(1014)、領域(1016)、およびすでに再構築された領域(1017)の一部を含むことができる。検索範囲から領域(1011)および並置領域(1012)をさらに除外するので、検索範囲のサイズはCTBサイズ内に収まる。一例では、現在のブロックが領域(1018)にあるとき、現在のブロックの並置領域は領域(1013)である。したがって、検索範囲は領域(1014)、領域(1016)~(1017)、およびすでに再構築された領域(1018)の一部を含むことができる。検索範囲から領域(1011)~(1012)および並置領域(1013)をさらに除外するので、検索範囲のサイズはCTBサイズ内に収まる。一例では、現在のブロックが領域(1019)にあるとき、現在のブロックの並置領域は領域(1014)である。したがって、検索範囲は領域(1016)~(1018)、およびすでに再構築された領域(1019)の一部を含むことができる。検索範囲から以前に再構築されたCTB(1010)をさらに除外するので、検索範囲のサイズはCTBサイズ内に収まる。
前述の説明では、参照ブロックは、以前に再構築されたCTB(1010)または現在のCTB(1015)にあってもよい。
一実施形態では、検索範囲は以下の通りに指定され得る。一例では、現在のピクチャは輝度ピクチャであり、かつ現在のCTBは複数の輝度サンプルを含む輝度CTBであり、BV(mvL)は、以下のビットストリーム適合性の制約を満たす。一例では、BV(mvL)は、分数解像度(例えば、1/16pelの解像度)を有する。
制約は、現在のブロックの参照ブロックがすでに再構築されているという第1の条件を含む。参照ブロックの形状が長方形の場合、隣接ブロック可用性確認プロセス(または参照ブロック可用性確認プロセス)を実施して、参照ブロックの左上サンプルと右下サンプルとが再構築されているかどうかを確認することができる。参照ブロックの左上のサンプルと右下のサンプルとが両方とも再構築されていれば、参照ブロックは再構築されていると判定される。
例えば、参照ブロック可用性の導出プロセスが、入力として(xCb,yCb)に設定された現在のブロックの左上サンプルの位置(xCurr,yCurr)、および参照ブロックの左上サンプルの位置(xCb+(mvL[0]>>4),yCb+(mvL[1]>>4))によって呼び出される場合、参照ブロックの左上サンプルが再構築されており、ブロックベクトルmvLがx成分mvL[0]とy成分mvL[1]を有する二次元ベクトルであるときの出力はTRUEになる。BV(mvL)が1/16pel解像度などの分数解像度を有する場合、x成分mvL[0]およびy成分mvL[1]は、それぞれ、mvL[0]>>4およびmvL[1]>>4によって示されるように、整数解像度を有するようにシフトされる。
同様に、ブロック可用性の導出プロセスが、入力として(xCb,yCb)に設定された現在のブロックの左上サンプルの位置(xCurr,yCurr)、および参照ブロックの右下サンプルの位置(xCb+(mvL[0]>>4+cbWidth-1,yCb+(mvL[1]>>4+cbHeight-1)によって呼び出される場合、参照ブロックの右下サンプルが再構築されているときの出力はTRUEになる。パラメータcbWidthおよびcbHeightは、参照ブロックの幅および高さを表す。
制約はまた、以下の第2の条件の少なくとも1つを含むことができる:1)値(mvL[0]>>4)+cbWidthが0以下であり、これは、参照ブロックが現在のブロックの左にあって現在のブロックと重ならないことを示す;2)値(mvL[1]>>4)+cbHeightが0以下であり、これは、参照ブロックが現在のブロックの上方にあって、現在のブロックと重ならないことを示す。
制約はまた、以下の第3の条件がブロックベクトルmvLによって満たされることを含むことができる。
(yCb+(mvL[1]>>4))>>CtbLog2SizeY=yCb>>CtbLog2SizeY (1)
(yCb+(mvL[1]>>4+cbHeight-1)>>CtbLog2SizeY=yCb>>CtbLog2Size (2)
(xCb+(mvL[0]>>4))>>CtbLog2SizeY>=(xCb>>CtbLog2SizeY)-1 (3)
(xCb+(mvL[0]>>4)+cbWidth-1)>>CtbLog2SizeY<=(xCb>>CtbLog2SizeY) (4)
式中、パラメータCtbLog2SizeYは、log2形式のCTB幅を表す。例えば、CTB幅が128サンプルのときは、CtbLog2SizeYは7である。式(1)~(2)は、参照ブロックを含むCTBが現在のCTBと同じCTB行にあることを示す(例えば、参照ブロックが以前に再構築されたCTB(1010)にあるとき、以前に再構築されたCTB(1010)が、現在のCTB(1015)と同じ行にある)。式(3)~(4)は、参照ブロックを含むCTBが現在のCTBの左CTB列、または現在のCTBと同じCTB列のいずれかにあることを示す。式(1)~(4)によって記述される第3の条件は、図10を参照して説明したのと同様に、参照ブロックを含むCTBが、現在のCTB(1015)などの現在のCTB、または以前に再構築されたCTB(1010)などの、現在のCTBの左隣のどちらかであることを示す。
制約は、第4の条件をさらに含むことができ、参照ブロックが現在のCTBの左隣にあるときは、参照ブロックの並置領域は再構築されていない(すなわち、並置領域内に再構築されたサンプルがない)。また、参照ブロックの並置領域は、現在のCTB内にある。図10の例では、参照ブロック(1091)の並置領域は、参照ブロック(1091)が位置する領域(1014)からCTB幅だけオフセットされた領域(1019)であり、領域(1019)は再構築されていない。したがって、ブロックベクトル(1020)および参照ブロック(1091)は、前述した第4の条件を満たす。
一例では、第4の条件を以下のように指定できる:(xCb+(mvL[0]>>4))>> CtbLog2SizeYが(xCb>>CtbLog2SizeY)-1と等しいとき、参照ブロック可用性の導出プロセスは、入力として(xCb,yCb)に設定された現在のブロックの位置(xCurr,yCurr)、および位置(((xCb+(mvL[0]>>4)+CtbSizeY)>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1),((yCb+(mvL[1]>>4))>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1))で呼び出され、図10に示すように、出力は、並置領域が再構築されていないことを示すFALSEになる。
検索範囲および/またはブロックベクトルに対する制約は、前述した第1、第2、第3、および第4の条件の適切な組み合わせを含むことができる。一例では、制約は、図10に示すような第1、第2、第3、および第4の条件を含む。一例では、第1、第2、第3、および/または第4の条件は変更でき、制約は変更された第1、第2、第3、および/または第4の条件を含む。
第4の条件によれば、符号化ブロック(1022)~(1029)のうちの1つが現在のブロックのときは、参照ブロックが領域(1011)になることはなく、したがって符号化ブロック(1022)~(1029)のうちの1つに対する検索範囲から領域(1011)は除外される。領域(1011)が除外される理由は以下のように特定され、参照ブロックが領域(1011)にあるとすれば、参照ブロックに対する並置領域は領域(1016)になるが、少なくとも符号化ブロック(1021)内のサンプルは再構築されており、したがって第4の条件に反する。その一方で、図11の領域(1116)内の符号化ブロック(1121)のように、現在の領域で最初に再構築される符号化ブロックについては、第4の条件は、参照ブロックに対する並置領域(1116)がまだ再構築されていないために、参照ブロックが領域(1111)に置かれることの妨げにはならない。
図11は、本開示の実施形態によるイントラブロックコピーの例を示す。現在のピクチャ(1101)は、再構築中の現在のCTB(1115)と、現在のCTB(1115)の左隣にある、以前に再構築されたCTB(1110)とを含む。現在のピクチャ(1101)内のCTBは、CTBサイズおよびCTB幅を有する。現在のCTB(1115)は4つの領域(1116)~(1119)を含み、現在の領域(1116)は再構築中である。現在の領域(1116)は、複数の符号化ブロック(1121)~(1129)を含む。同様に、以前に再構築されたCTB(1110)も4つの領域(1111)~(1114)を含む。再構築中の現在のブロック(1121)は、現在の領域(1116)で最初に再構築され、それから符号化ブロック(1122)~(1129)が再構築される。一例では、CTBサイズは128x128サンプルで、領域(1111)~(1114)および(1116)~(1119)はそれぞれ64x64サンプルである。参照メモリサイズはCTBサイズと等しい128x128サンプルであり、したがって検索範囲は、参照メモリサイズによって境界を定められるときは、3つの領域と、追加領域の一部とを含む。
同様に、図10を参照して説明したように、現在の領域(1116)は、並置領域(すなわち以前に再構築されたCTB(1110)内の領域(1111))を有する。前述した第4の条件によれば、現在のブロックの参照ブロック(1121)は領域(1111)にあってもよく、したがって検索範囲は領域(1111)~(1114)を含んでもよい。例えば、参照ブロックが領域(1111)にあるときは、参照ブロックの並置領域は領域(1116)であり、領域(1116)内に、現在のブロック(1121)が再構築される前に再構築されているサンプルはない。しかしながら、図10および第4の条件を参照して説明したように、例えば、符号化ブロック(1121)が再構築された後は、符号化ブロック(1122)を再構築するために領域(1111)を検索範囲に含めることができなくなる。したがって、参照メモリバッファの厳密な同期およびタイミング制御が使用され、これは困難な場合がある。
いくつかの実施形態によれば、現在のブロックが、現在のCTBの現在の領域で最初に再構築されるときは、以前に再構築されたCTB内にある現在の領域の並置領域を検索範囲から除外でき、現在のCTBおよび以前に再構築されたCTBは、同じ現在のピクチャ内にある。ブロックベクトルは、参照ブロックが、以前に再構築されたCTB内の並置領域を除外した検索範囲内にあるように決定され得る。一実施形態では、検索範囲は、並置領域の後、かつ現在のブロックの前にデコーディング順序で再構築された符号化ブロックを含む。
以下の説明では、CTBサイズは変更でき、最大CTBサイズは参照メモリサイズと同一に設定される。一例では、参照メモリサイズまたは最大CTBサイズは、128x128サンプルである。説明は、他の参照メモリサイズまたは最大CTBサイズに適切に合わせることができる。
一実施形態では、CTBサイズは参照メモリサイズと等しい。以前に再構築されたCTBは現在のCTBの左隣にあり、並置領域の位置は現在の領域の位置からCTB幅だけオフセットされ、検索範囲内の符号化ブロックは、現在のCTBおよび以前に再構築されたCTBのうちの少なくとも一方にある。
図12A~図12Dは、本開示の実施形態によるイントラブロックコピーの例を示す。図12A~図12Dを参照すると、現在のピクチャ(1201)は、再構築中の現在のCTB(1215)と、現在のCTB(1215)の左隣にある、以前に再構築されたCTB(1210)とを含む。現在のピクチャ(1201)内のCTBは、CTBサイズおよびCTB幅を有する。現在のCTB(1215)は、4つの領域(1216)~(1219)を含む。同様に、以前に再構築されたCTB(1210)も4つの領域(1211)~(1214)を含む。一実施形態では、CTBサイズは最大CTBサイズであり、参照メモリサイズと等しい。一例では、CTBサイズおよび参照メモリサイズは128x128サンプルであり、したがって各領域(1211)~(1214)および(1216)~(1219)は、64×64サンプルのサイズを有する。
図12A~図12Dに示す例では、現在のCTB(1215)は、領域(1216)~(1219)にそれぞれ対応する、左上領域と、右上領域と、左下領域と、右下領域とを含む。以前に再構築されたCTB(1210)は、領域(1211)~(1214)にそれぞれ対応する、左上領域と、右上領域と、左下領域と、右下領域とを含む。
図12Aを参照すると、現在の領域(1216)が再構築中である。現在の領域(1216)は、複数の符号化ブロック(1221)~(1229)を含むことができる。現在の領域(1216)は、並置領域、すなわち以前に再構築されたCTB(1210)内の領域(1211)を有する。再構築されるべき符号化ブロック(1221)~(1229)のうちの1つの検索範囲から、並置領域(1211)を除外することができる。検索範囲は、並置領域(1211)の後、かつ現在の領域(1216)の前にデコーディング順序で再構築された、以前に再構築されたCTB(1210)の領域(1212)~(1214)を含むことができる。
図12Aを参照すると、並置領域(1211)の位置は、現在の領域(1216)の位置から、128サンプルなどCTB幅だけオフセットされている。例えば、並置領域(1211)の位置は、現在の領域(1216)の位置から128サンプル分左シフトされる。
図12Aを再度参照すると、現在の領域(1216)が現在のCTB(1215)の左上領域にあるとき、並置領域(1211)は、以前に再構築されたCTB(1210)の左上領域にあり、検索領域は、以前に再構築されたCTBの左上領域を除外する。
図12Bを参照すると、現在の領域(1217)が再構築中である。現在の領域(1217)は、複数の符号化ブロック(1241)~(1249)を含むことができる。現在の領域(1217)は、並置領域(すなわち以前に再構築されたCTB(1210)内の領域(1212))を有する。複数の符号化ブロック(1241)~(1249)のうちの1つの検索範囲から、並置領域(1212)を除外することができる。検索範囲は、以前に再構築されたCTB(1210)の領域(1213)~(1214)と、並置領域(1212)の後、かつ現在の領域(1217)の前に再構築された、現在のCTB(1215)内の領域(1216)とを含む。参照メモリサイズ(すなわち1CTBサイズ)の制約により、検索範囲から領域(1211)をさらに除外する。同様に、並置領域(1212)の位置は、現在の領域(1217)の位置から、128サンプルなどCTB幅だけオフセットされている。
図12Bの例では、現在の領域(1217)が現在のCTB(1215)の右上領域にあり、並置領域(1212)もまた、以前に再構築されたCTB(1210)の右上領域にあり、検索領域から、以前に再構築されたCTB(1210)の右上領域を除外する。
図12Cを参照すると、現在の領域(1218)が再構築中である。現在の領域(1218)は、複数の符号化ブロック(1261)~(1269)を含むことができる。現在の領域(1218)は、以前に再構築されたCTB(1210)内の並置領域(すなわち、領域(1213))を有する。複数の符号化ブロック(1261)~(1269)のうちの1つの検索範囲から、並置領域(1213)を除外することができる。検索範囲は、以前に再構築されたCTB(1210)の領域(1214)と、並置領域(1213)の後、かつ現在の領域(1218)の前に再構築された、現在のCTB(1215)内の領域(1216)~(1217)とを含む。同様に、参照メモリサイズの制約により、検索範囲から領域(1211)~(1212)をさらに除外する。並置領域(1213)の位置は、現在の領域(1218)の位置から、128サンプルなどCTB幅だけオフセットされている。図12Cの例では、現在の領域(1218)が現在のCTB(1215)の左下領域にあるときは、並置領域(1213)もまた、以前に再構築されたCTB(1210)の左下領域にあり、検索領域は、以前に再構築されたCTB(1210)の左下領域を除外する。
図12Dを参照すると、現在の領域(1219)が再構築中である。現在の領域(1219)は、複数の符号化ブロック(1281)~(1289)を含むことができる。現在の領域(1219)は、以前に再構築されたCTB(1210)内の並置領域(すなわち、領域(1214))を有する。複数の符号化ブロック(1281)~(1289)のうちの1つの検索範囲から、並置領域(1214)を除外することができる。検索範囲は、デコーディング順序で並置領域(1214)の後、かつ現在の領域(1219)の前に再構築された、現在のCTB(1215)内の領域(1216)~(1218)を含む。参照メモリサイズの制約により、検索範囲から領域(1211)~(1213)を除外し、したがって検索範囲から、以前に再構築されたCTB(1210)を除外する。同様に、並置領域(1214)の位置は、現在の領域(1219)の位置から、128サンプルなどCTB幅だけオフセットされている。図12Dの例では、現在の領域(1219)が現在のCTB(1215)の右下領域にあるときは、並置領域(1214)もまた、以前に再構築されたCTB(1210)の右下領域にあり、検索領域は、以前に再構築されたCTB(1210)の右下領域を除外する。
図2に戻って参照すると、A0、A1、およびB0、B1、B2(それぞれ202~206)で表された5つの周囲サンプル(または位置)と関連付けられたMVを、空間マージ候補と呼ぶことができる。空間マージ候補に基づいて候補リスト(例えば、マージ候補リスト)を形成することができる。任意の適切な順序を使用して、位置から候補リストを形成することができる。一例では、この順序はA0、B0、B1、A1、B2とすることができ、A0が最初であり、B2が最後である。一例では、この順序はA1、B1、B0、A0、B2とすることができ、A1が最初であり、B2が最後である。
いくつかの実施形態によれば、現在のブロックの動きベクトル予測(MVP)候補(HMVP候補とも呼ばれる)を提供するために、現在のブロックの以前に符号化されたブロック(例えば、符号化ブロック(CB)または現在のCU)の動き情報を履歴ベース動きベクトル予測(HMVP)バッファ(例えば、テーブル)に格納することができる。HMVPバッファは、1つまたは複数のHMVP候補を含んでいてもよく、エンコーディング/デコーディングプロセス中に維持することができる。一例では、HMVPバッファ内のHMVP候補は、以前に符号化されたブロックの動き情報に対応する。HMVPバッファは、任意の適切なエンコーダおよび/またはデコーダで使用され得る。HMVP候補(複数可)を、空間MVP(複数可)およびTMVP(複数可)の後にマージ候補リストに追加することができる。
HMVPバッファを、新しいCTU(または新しいCTB)行が発生したときにリセットする(例えば、空にする)ことができる。非サブブロックのインター符号化されたブロックが存在するとき、関連付けられた動き情報を、新しいHMVP候補としてHMVPバッファの最後のエントリに追加することができる。
VTM3などの一例では、HMVPバッファのバッファサイズ(Sで表す)は6に設定され、これは最大6つのHMVP候補がHMVPバッファに追加され得ることを示す。いくつかの実施形態では、HMVPバッファは先入れ先出し(FIFO)規則で動作することができ、よって、HMVPバッファに最初に格納される動き情報(またはHMVP候補)は、例えば、HMVPバッファが一杯になったときに、HMVPバッファから最初に削除されるものである。HMVPバッファに新しいHMVP候補を挿入するとき、制約付きFIFO規則を利用することができ、同一または類似のHMVP候補がHMVPバッファ内にあるかどうかを判定するために冗長検査がまず適用される。同一または類似のHMVP候補がHMVPバッファ内にあると判定された場合、同一または類似のHMVP候補をHMVPバッファから削除することができ、残りのHMVP候補をHMVPバッファ内で前進させることができる。
HMVP候補は、マージ候補リスト構成プロセスで、例えば、マージモードで使用され得る。HMVPバッファ内の最後に格納されたHMVP候補(複数可)を順番に検査し、TMVP候補(複数可)の後にマージ候補リストに挿入することができる。冗長検査は、マージ候補リスト内にある空間マージ候補または時間マージ候補に関してHMVP候補に適用され得る。説明は、AMVP候補リストを構成するためにAMVPモードに適切に合わせることができる。
冗長検査動作の数を減らすために、以下の簡略化を使用することができる。
(i)マージ候補リストの生成に使用されるHMVP候補の数は、(N<=4)?M:(8-N)として設定され得る。Nは、マージ候補リスト内の既存の候補の数を示し、Mは、HMVPバッファ内の利用可能なHMVP候補(複数可)の数を示す。マージ候補リスト内の既存の候補の数(N)が4以下である場合、マージ候補リストの生成に使用されるHMVP候補の数はMに等しい。そうでない場合、マージ候補リストの生成に使用されるHMVP候補の数は(8-N)に等しい。
(ii)利用可能なマージ候補の総数が最大許容マージ候補から1を引いた数に達すると、HMVPバッファからのマージ候補リスト構成プロセスは終了する。
IBCモードがインター予測モードとは別のモードとして動作する場合、IBCモードのための簡略化されたBV導出プロセスを使用することができる。履歴ベースのブロックベクトル予測バッファ(HBVPバッファと呼ばれる)を使用して、BV予測を実行することができる。HBVPバッファは、現在のピクチャ内の現在のブロック(例えば、CBまたはCU)の以前に符号化されたブロックのBV情報(例えば、BV)を格納するために使用され得る。一例では、HBVPバッファは、HMVPバッファなどの他のバッファ(複数可)とは別個の履歴バッファである。HBVPバッファは、テーブルであり得る。
HBVPバッファは、現在のブロックのBV予測子(BVP)候補(HBVP候補とも呼ばれる)を提供することができる。HBVPバッファ(例えばテーブル)は、1つまたは複数のHBVP候補を含んでいてもよく、エンコーディング/デコーディングプロセス中に維持され得る。一例では、HBVPバッファ内のHBVP候補は、現在のピクチャ内の以前に符号化されたブロックのBV情報に対応する。HBVPバッファは、任意の適切なエンコーダおよび/またはデコーダで使用され得る。HBVP候補(複数可)を、現在のブロックの空間的に隣接するブロック(複数可)のBV(複数可)後のBV予測のために構成されたマージ候補リストに追加することができる。BV予測のために構成されたマージ候補リストは、マージBV予測モードおよび/または非マージBV予測モードに使用され得る。
HBVPバッファを、新しいCTU(または新しいCTB)行が発生したときにリセットする(例えば、空にする)ことができる。
VVCなどの一例では、HBVPバッファのバッファサイズは6に設定され、これは、最大6つのHBVP候補がHBVPバッファに追加され得ることを示す。いくつかの実施形態では、HBVPバッファはFIFO規則で動作することができ、よって、HBVPバッファに最初に格納されるBV情報(またはHBVP候補)は、例えば、HBVPバッファが一杯になったときに、HBVPバッファから最初に削除されるものである。HBVPバッファに新しいHBVP候補を挿入するとき、制約付きFIFO規則を利用することができ、同一または類似のHBVP候補がHBVPバッファ内にあるかどうかを判定するために冗長検査がまず適用される。同一または類似のHBVP候補がHBVPバッファ内にあると判定された場合、同一または類似のHBVP候補をHBVPバッファから削除することができ、残りのHBVP候補をHBVPバッファ内で前進させることができる。
HBVP候補は、マージ候補リスト構成プロセスで、例えば、マージBV予測モードで使用され得る。HBVPバッファ内の最後に格納されたHBVP候補(複数可)を順番に検査し、空間候補(複数可)の後にマージ候補リストに挿入することができる。冗長検査は、マージ候補リスト内にある空間マージ候補に関してHBVP候補に適用され得る。
一実施形態では、IBCモードで符号化された1つまたは複数の以前に符号化されたブロックの1つまたは複数のBV情報を格納するために、HBVPバッファが確立される。1つまたは複数のBV情報は、IBCモードで符号化された1つまたは複数の以前に符号化されたブロックの1つまたは複数のBVを含むことができる。さらに、1つまたは複数のBV情報の各々は、IBCモードで符号化されたそれぞれの以前に符号化されたブロックのブロックサイズ、ブロック位置などのサイド情報(または追加情報)を含むことができる。
クラスベースの履歴ベースのブロックベクトル予測(CBVPとも呼ばれる)では、現在のブロックについて、特定の条件を満たすHBVPバッファ内の1つまたは複数のBV情報を対応するカテゴリ(クラスとも呼ばれる)に分類することができ、よって、CBVPバッファを形成することができる。一例では、HBVPバッファ内の各BV情報は、例えば、IBCモードで符号化された、それぞれの以前に符号化されたブロックについてのものである。以前に符号化されたブロックのBV情報は、BV、ブロックサイズ、ブロック位置などを含むことができる。以前に符号化されたブロックは、ブロック幅、ブロック高さ、およびブロック面積を有する。ブロック面積は、ブロック幅とブロック高さとの乗算とすることができる。一例では、ブロックサイズはブロック面積で表される。以前に符号化されたブロックのブロック位置は、以前に符号化されたブロックの左上隅(例えば、4×4領域の左上隅)または左上サンプルによって表すことができる。
図13は、本開示の一実施形態による、現在のブロック(例えば、CB、CU)(1310)のIBC BV予測のための空間クラスの一例を示している。左領域(1302)は、現在のブロック(1310)の左にあり得る。左領域(1302)内のそれぞれのブロック位置(複数可)を有する以前に符号化されたブロック(複数可)のBV情報を、左候補または左BV候補と呼ぶことができる。上領域(1303)は、現在のブロック(1310)の上にあり得る。上領域(1303)内のそれぞれのブロック位置(複数可)を有する以前に符号化されたブロック(複数可)のBV情報を、上候補または上BV候補と呼ぶことができる。左上領域(1304)は、現在のブロック(1310)の左上にあり得る。左上領域(1304)内のそれぞれのブロック位置(複数可)を有する以前に符号化されたブロック(複数可)のBV情報を、左上候補または左上BV候補と呼ぶことができる。右上領域(1305)は、現在のブロック(1310)の右上にあり得る。右上領域(1305)内のそれぞれのブロック位置(複数可)を有する以前に符号化されたブロック(複数可)のBV情報を、右上候補または右上BV候補と呼ぶことができる。左下領域(1306)は、現在のブロック(1310)の左下にあり得る。左下領域(1306)内のそれぞれのブロック位置(複数可)を有する以前に符号化されたブロック(複数可)のBV情報を、左下候補または左下BV候補と呼ぶことができる。他の種類の空間クラスも定義し、CBVPバッファで使用することができる。
以前に符号化されたブロックのBV情報が以下の条件を満たす場合、BV情報を対応するカテゴリ(またはクラス)に分類することができる。
(i)クラス0:ブロックサイズ(例えば、ブロック面積)が閾値(例えば、64画素)以上である。
(ii)クラス1:BVの発生(または頻度)が2以上である。BVの発生は、BVが以前に符号化されたブロック(複数可)を予測するために使用される回数を指すことができる。CBVPバッファを形成するためにプルーニングプロセスが使用される場合、BVが以前に符号化されたブロックを予測する際に複数回使用されるとき、BVを(同じBVを有する複数のエントリにではなく)1つのエントリに格納することができる。BVの発生を記録することができる。
(iii)クラス2:ブロック位置は左領域(1302)内にあり、以前に符号化されたブロックの一部(例えば、4×4領域の左上隅)が現在のブロック(1310)の左にある。以前に符号化されたブロックは、左領域(1302)内にあり得る。あるいは、以前に符号化されたブロックは左領域(1302)を含む複数の領域にまたがることができ、ブロック位置は左領域(1302)内にある。
(iv)クラス3:ブロック位置は上領域(1303)内にあり、以前に符号化されたブロックの一部(例えば、4×4領域の左上隅)が現在のブロック(1310)の上にある。以前に符号化されたブロックは、上領域(1303)内にあり得る。あるいは、以前に符号化されたブロックは上領域(1303)を含む複数の領域にまたがることができ、ブロック位置は上領域(1303)内にある。
(v)クラス4:ブロック位置は左上領域(1304)内にあり、以前に符号化されたブロックの一部(例えば、4×4領域の左上隅)が現在のブロック(1310)の左上側にある。以前に符号化されたブロックは、左上領域(1304)内にあり得る。あるいは、以前に符号化されたブロックは左上領域(1304)を含む複数の領域にまたがることができ、ブロック位置は左上領域(1304)内にある。
(vi)クラス5:ブロック位置は右上領域(1305)内にあり、以前に符号化されたブロックの一部(例えば、4×4領域の左上隅)が現在のブロック(1310)の右上側にある。以前に符号化されたブロックは、右上領域(1305)内にあり得る。あるいは、以前に符号化されたブロックは右上領域(1305)を含む複数の領域にまたがることができ、ブロック位置は右上領域(1305)内にある。
(vii)クラス6:ブロック位置は左下領域(1306)内にあり、符号化されたブロックの一部(例えば、4×4領域の左上隅)が現在のブロック(1310)の左下側にある。以前に符号化されたブロックは、左下領域(1306)内にあり得る。あるいは、以前に符号化されたブロックは左下領域(1306)を含む複数の領域にまたがることができ、ブロック位置は左下領域(1306)内にある。
カテゴリ(またはクラス)ごとに、最後に符号化されたブロックのBVをBVP候補として導出することができる。CBVPバッファは、クラス0からクラス6の順に各カテゴリのBV予測子(複数可)を付加することによって構成され得る。CBVPについての前述の説明は、上記で説明されていないより少ないクラスまたは追加のクラスを含むように適切に合わせることができる。クラス0~6のうちの1つまたは複数を変更することができる。一例では、HBVPバッファ内の各エントリは、7つのクラス0~6のうちの1つに分類される。クラス0~6のうちのどれが選択されるかを示すためにインデックスをシグナリングすることができる。デコーダ側では、選択されたクラスの最初のエントリを使用して、現在のブロックのBVを予測することができる。
本開示の態様は、文字列コピーモードにおける参照位置制約のための技術を提供する。文字列コピーモードは、文字列照合(モード)または文字列予測(モード)とも呼ばれる。文字列照合モードは、イントラブロックコピー(IBC)と同様であり、同じピクチャ内の再構築された領域に基づいてサンプルの文字列を再構築することができる。さらに、文字列照合モードは、サンプルの文字列の形状に関してより多くの柔軟性を提供する。例えば、ブロックは長方形の形状を有し、文字列は非長方形の形状を形成することができる。
図14は、本開示の一実施形態による文字列コピーモードの一例を示す。現在のピクチャ(1410)は、再構築された領域(灰色の領域)(1420)と、再構築中の領域(1421)とを含む。領域(1421)内の現在のブロック(1435)が再構築中である。現在のブロック(1435)は、CB、CUなどであり得る。現在のブロック(1435)は、図14の例の文字列(1430)や文字列(1431)などの複数の文字列を含むことができる。一例では、現在のブロック(1435)は複数の連続した文字列に分割され、走査順序に沿ってある文字列の後に次の文字列が続く。走査順序は、ラスタ走査順序、トラバース走査順序などの任意の適切な走査順序とすることができる。
再構築された領域(1420)を、文字列(1430)および文字列(1431)を再構築するための参照領域として使用することができる。
複数の文字列の各々について、文字列オフセットベクトル(文字列ベクトル(SV)とも呼ばれる)および文字列の長さ(文字列長とも呼ばれる)をシグナリングすることができる。SVは、再構築されるべき文字列と、参照領域(1420)内に位置する、再構築された参照文字列との間の変位オフセットを示す変位ベクトルとすることができる。参照文字列は、再構築されるべき文字列を再構築するために使用され得る。例えば、SV0は、文字列(1430)と参照文字列(1400)との間の変位オフセットを示す変位ベクトルであり、SV1は、文字列(1431)と参照文字列(1401)との間の変位オフセットを示す変位ベクトルである。よって、SVは、対応する参照文字列が参照領域(1420)内のどこに位置するかを示すことができる。文字列の文字列長は、文字列内のサンプル数を示す。一般に、再構築される文字列は、参照文字列と同じ長さを有する。
図14を参照すると、現在のブロック(1435)は、64個のサンプルを含む8×8CBである。現在のブロック(1435)は、ラスタ走査順序を使用して文字列(1430)と文字列(1431)とに分割されている。文字列(1430)は現在のブロック(1435)の最初の29個のサンプルを含み、文字列(1431)は現在のブロック(1435)の残りの35個のサンプルを含む。文字列(1430)を再構築するために使用される参照文字列(1400)を、対応する文字列オフセットベクトルSV0によって示すことができ、文字列(1431)を再構築するために使用される参照文字列(1401)を、対応する文字列オフセットベクトルSV1によって示すことができる。
一般に、文字列サイズは、文字列の長さまたは文字列内のサンプル数を指すことができる。図14を参照すると、文字列(1430)は29個のサンプルを含み、よって文字列(1430)の文字列サイズは29である。文字列(1431)は35個のサンプルを含み、よって文字列(1431)の文字列サイズは35である。文字列位置(string location)(または文字列位置(string position))を、列内のサンプル(例えば、デコーディング順序で最初のサンプル)のサンプル位置によって表すことができる。
前述の説明は、任意の適切な数の文字列を含む現在のブロックを再構築するように適切に合わせることができる。あるいは、一例では、現在のブロック内のサンプルが参照領域内に一致するサンプルを有していない場合、エスケープサンプルがシグナリングされ、参照領域内の再構築されたサンプルを参照せずにエスケープサンプルの値を直接符号化することができる。
いくつかの例では、文字列照合で使用される利用可能な参照サンプルは、IBCモードの参照領域に揃えることができる。さらに、現在のCTUの再構築された部分とIBCモードの左CTUの一部の領域の組み合わせで適用できる参照サンプル可用性論理は、文字列照合にも同様に適用できる。
いくつかの例では、参照メモリを使用して最近再構築されたサンプルを格納し、参照メモリにアクセスして、IBCモードの現在のブロックまたは文字列照合モードの現在の文字列を再構築できる。次に、文字列ベクトルを参照メモリに基づいて制約し、現在のブロックまたは現在の文字列を再構築するための参照サンプルが参照メモリに格納されていることを確認できる。一例では、参照メモリのサイズは、CTUサイズ(例えば、128×128サンプル)と同じであると仮定される。いくつかの例では、参照メモリは、高速アクセス速度で実施される。
図15に、いくつかの例におけるIBCモードのための参照メモリ更新のプロセスを示し、参照メモリ更新プロセスは、文字列照合モードについても同様に使用することができる。
図15の例では、各CTUは128×128サンプルのサイズを有し、よって、参照メモリは128×128サンプルを格納するためのサイズを有する。図15では、参照メモリは、各々が64×64サンプルのサイズを有する4つのサブ部分に分割されている。現在のCTUを符号化する動作中に、参照メモリは、いくつかの例では、1つのサブ部分ごとに更新される。図15は、現在のCTUの符号化中の参照メモリの状態(参照メモリビュー)、およびCTUに基づく対応するエンコーディング/デコーディングプロセス(CTUビュー)を示している。図15では、符号化された部分は灰色で示されており、符号化されていない部分は白色で示されており、現在の符号化ブロックは縞模様で示されており、現在の符号化ブロックの参照ブロックは破線で示されている。
例えば、最初に、参照メモリは、(1510)で示すように、状態(0)にあり、現在のCTUの左CTUに再構築されたサンプルを格納する。例えば、左CTUは、0、1、2、および3とラベル付けされた4つのサブブロックに分割することができ、参照メモリは、(1510)で示されるように、左CTUのサブブロック0~3の再構築されたサンプルを格納する。現在のCTUは、4、5、6、および7とラベル付けされた4つのサブブロックに分割することができる。
現在のCTU内のサブブロック4をエンコーディング/デコーディングするために、参照メモリは、(1520)で示すように、状態(1)になる。参照メモリは、左CTUのサブブロック1、2、および3の再構築されたサンプルを依然として格納することができる。左CTUのサブブロック0の再構築されたサンプルを格納するために使用された参照メモリのサブ部分は、現在のCTUのサブブロック4の再構築されたサンプルを格納するために使用される。一例では、現在のCTUのサブブロック4を符号化する前に、サブブロック0の再構築されたサンプルを格納するために使用された参照メモリのサブ部分をクリアすることができる。
CTUビューから、(1525)で示すように、左CTUのサブブロック0は参照メモリで利用できず、「×」でマークされている。左CTU内のサブブロック1~3は依然として参照メモリ内にある。
現在のCTU内のサブブロック5をエンコーディング/デコーディングするために、参照メモリは、(1530)で示すように、状態(2)になる。参照メモリは、左CTUのサブブロック2および3、ならびに現在のCTUのサブブロック4の再構築されたサンプルを依然として格納することができる。左CTUのサブブロック1の再構築されたサンプルを格納するために使用された参照メモリのサブ部分は、現在のCTUのサブブロック5の再構築されたサンプルを格納するために使用される。
CTUビューから、(1535)で示すように、左CTUのサブブロック0および1は参照メモリで利用できず、「×」でマークされている。左CTU内のサブブロック2および3は依然として参照メモリ内にある。
現在のCTU内のサブブロック6をエンコーディング/デコーディングするために、参照メモリは、(1540)で示すように、状態(3)になる。参照メモリは、左CTUのサブブロック3、ならびに現在のCTUのサブブロック4および5の再構築されたサンプルを依然として格納することができる。左CTUのサブブロック2の再構築されたサンプルを格納するために使用された参照メモリのサブ部分は、現在のCTUのサブブロック6の再構築されたサンプルを格納するために使用される。
CTUビューから、(1545)で示すように、左CTUのサブブロック0、1および2は参照メモリで利用できず、「×」でマークされている。左CTU内のサブブロック3は依然として参照メモリ内にある。
現在のCTU内のサブブロック7をエンコーディング/デコーディングするために、参照メモリは、(1550)で示すように、状態(4)になる。参照メモリは、現在のCTUのサブブロック4、5、および6の再構築されたサンプルを依然として格納することができる。左CTUのサブブロック3の再構築されたサンプルを格納するために使用された参照メモリのサブ部分は、現在のCTUのサブブロック7の再構築されたサンプルを格納するために使用される。
CTUビューから、(1555)で示すように、左CTUのサブブロック0、1、2および3は参照メモリで利用できず、「×」でマークされている。
図15の例では、各状態において(現在のCTUの各64×64サブブロックの符号化の開始時に)、参照メモリ内で利用可能な対応するサンプルを有する利用可能な参照エリアは、「×」マークなしの灰色で示されている。
本開示のいくつかの態様によれば、文字列照合モードに対して参照サンプルの制約を緩めることができ、したがって、より多くの潜在的な参照サンプルを使用することができ、符号化効率が改善することができる。
一例では、IBCモードには、参照ブロックと現在のブロックとのオーバーラップを必要としない非オーバーラップ制約がある。非オーバーラップ制約は、文字列照合モードでも同様に適用できる。例えば、文字列照合モードの非オーバーラップ制約では、参照文字列のサンプルが現在の文字列内のサンプルとオーバーラップしないようにする必要がある。非オーバーラップ制約は、参照サンプルをコピーして現在の文字列を埋めるときに、参照文字列内のまだ再構築されていないサンプルにアクセスすることを回避するために使用される。関連する一例では、現在の文字列の再構築は、参照文字列に対応する第1のメモリ空間に格納された値を現在の文字列に対応する第2のメモリ空間にコピーするメモリコピー操作によって実行することができる。メモリコピー操作を実行するには、参照文字列のサンプルを再構築して第1のメモリスペースに格納する必要があるため、現在の文字列が参照文字列とオーバーラップしないようにする必要がある。非オーバーラップ制約は、文字列ベクトルを制限し、符号化効率を限定することができる。
以下では、ブロックという用語は、予測ブロック、符号化ブロック、または符号化ユニット、すなわちCUとして解釈され得る。
本開示のいくつかの態様は、現在の文字列と参照文字列との間でオーバーラップするサンプルを用いて文字列照合モードを可能にする技術を提供する。現在の文字列に対する文字列ベクトルは、SV(svx、svy)で表され、svxは水平成分であり、svyは垂直成分である。いくつかの例では、ピクチャの左上隅がピクチャの二次元平面の原点と見なされ、二次元平面の水平値(例えば、x値)は、左から右の方向に増加し、二次元平面の垂直値(例えば、y値)は上から下の方向に増加する。
本開示のいくつかの態様によれば、現在の文字列内のサンプルは、部分ごとのプロセスなどで、部分によって再構築することができる。部分ごとのプロセスでは、現在の文字列の第2の部分を再構築する前に、現在の文字列の第1の部分を再構築する。現在の文字列の第1の部分の再構築後、現在の文字列の第2の部分は、現在の文字列の第1の部分に基づいて再構築できる。いくつかの例では、現在の文字列の再構築は、複数のメモリコピー操作によって実行できる。例えば、現在の文字列の第1の部分の再構築は、現在の文字列の第1の部分に対応する第1のメモリ空間にサンプル値を格納する第1のメモリコピー操作によって実行され、現在の文字列の第2の部分の再構築は、現在の文字列の第2の部分に対応する第2のメモリ空間にサンプル値を格納する第2のメモリコピー操作によって実行される。第2のメモリコピー操作は、第1のメモリ空間に少なくともサンプル値をコピーして、第2のメモリ空間に格納する。
上記の説明において、現在の文字列の部分は、それぞれ、任意の適切な数のサンプルを有することができ、任意の適切な形状を有することができることに留意されたい。一例では、文字列の一部は、文字列内のサンプルの行を含むサンプル行である。別の一例では、文字列の一部は、文字列内のサンプルの列を含むサンプル列である。別の一例では、文字列の一部が文字列内のサンプルである。
説明を簡単にするために、文字列照合モードでの参照位置制約の手法の以下の説明では、水平走査順序が仮定される。垂直走査順序の文字列照合モードでの参照位置制約の対応する手法は、同様の方法で適切に導出できる。
本開示の一態様によれば、現在の文字列が複数のラインを含む場合(例えば、水平方向のサンプル行、垂直方向のサンプル列)、現在の文字列の再構築は、ラインごとの方法(例えば、行ごとの方法、列ごとの方法)で実行できる。
一例では、現在の文字列には、それぞれが水平走査順序で走査できる複数のサンプル行が含まれ、現在の文字列の再構築は行ごとに実行できる。具体的には、現在の文字列の(走査順序に従う)前の行内のサンプルが再構築されたときに、現在の文字列の行内のサンプルの再構築を実行できる。
図16は、いくつかの例による文字列の再構築プロセスの一例を示す。図16は、ブロック(1610)内の現在の文字列(1615)の再構築プロセスを示す。文字列ベクトルSVは、現在の文字列(1615)に対して決定される。文字列ベクトルSVは、現在の文字列(1615)とオーバーラップする参照文字列を指す。図16の例では、現在の文字列(1615)は、水平走査順序に従って走査することができる、第1のサンプル行(1611)、第2のサンプル行(1612)、および第3のサンプル行(1613)などの3つの行のサンプルを含む。
現在の文字列(1615)は、行ごとに再構築される。例えば、第1のステップ(ステップ1)では、現在の文字列(1615)の第1のサンプル行(1611)が、参照文字列の画素(1621)に基づいて再構築される。一例では、メモリコピー操作を実行して、画素(1621)に対応するメモリ空間に格納されたサンプル値を、第1のサンプル行(1611)に対応するメモリ空間にコピーすることができる。
さらに、第2のステップ(ステップ2)では、現在の文字列(1615)の第2のサンプル行(1612)が、参照文字列の画素(1622)に基づいて再構築される。一例では、メモリコピー操作を実行して、画素(1622)に対応するメモリ空間に格納されたサンプル値を、第2のサンプル行(1612)に対応するメモリ空間にコピーすることができる。
さらに、第3のステップ(ステップ3)では、現在の文字列(1615)の第3のサンプル行(1613)が、参照文字列の画素(1623)に基づいて再構築される。一例では、メモリコピー操作を実行して、画素(1623)に対応するメモリ空間に格納されたサンプル値を、第3のサンプル行(1613)に対応するメモリ空間にコピーすることができる。
本開示の一態様によれば、非オーバーラップ制約は、適用することなく緩めることができる。いくつかの例では、文字列ベクトルの垂直成分と水平成分の少なくとも1つが負である場合、文字列ベクトルは、現在の文字列と参照文字列の部分的なオーバーラップを許容する要件を満たし、非オーバーラップ制約は適用されない。
水平走査順序を使用する一例では、文字列ベクトルSVの垂直成分svyが負(svy<0)の場合、参照文字列は現在の文字列の上方にある。次に、文字列ベクトルSVの水平成分svxの値に関係なく、現在の文字列と参照文字列との間のオーバーラップが許容されるため、オーバーラップ制約は適用されない。
ただし、文字列ベクトルSVの垂直成分svyが負でない場合(svy>=0)、参照文字列は現在の文字列と同じ行にあるか、現在の文字列の下方にある。次に、水平成分svxの値に関係なく、オーバーラップ制約を適用する必要がありので、現在の文字列とその参照文字列との間でオーバーラップが許容されなくなる。
上記の例では、参照文字列全体が許容参照領域内部にある必要があることに留意されたい。
一般に、参照メモリは、例えば、複数のページなどの複数の部分によって形成される。いくつかの例では、同じ部分(例えば、同じページ)のメモリ空間へのアクセスは、例えば、大きなオフセット値を計算することなく、容易に実行することができる。いくつかの例では、参照文字列のサンプルは、メモリ空間のページに対応する領域に制約される。
本開示の一態様によれば、参照文字列のサンプルは、2ページのメモリ空間に対応する2つの領域の境界を交差することを許容される。
図17は、領域境界を交差する参照文字列の一例を示す。図17の例では、ブロック(1700)は、CTUなどの128×128(サンプル)ブロックとすることができる。ブロック(1700)は、4つの64×64サブブロックA~Dに分割される。サブブロックA、B、およびCは再構築されており、再構築のための現在の文字列はサブブロックDにある。図17の例では、再構築される現在の文字列(1710)はサブブロックDにあり、参照文字列(1720)はサブブロックAとサブブロックCの境界を交差する。
図18は、領域境界を横切る参照文字列の別の一例を示す。図18の例では、ブロック(1800)は、CTUなどの128×128(サンプル)ブロックとすることができる。ブロック(1800)は、4つの64×64サブブロックA~Dに分割される。サブブロックA、B、およびCは再構築され、再構築のための現在の文字列がサブブロックDにある。図18の例では、再構築される現在の文字列(1810)はサブブロックDにあり、参照文字列(1820)はサブブロックAとサブブロックCの境界を交差する。
いくつかの例では、メモリの再利用のために、参照メモリは同じサイズの複数の領域に分割される。サブブロックのサンプルを格納するために、複数の領域を割り当てることができる。例えば、サブブロックDを再構築するときに、参照メモリの第1の領域は、サブブロックAの再構築されたサンプルを格納することができ、参照メモリの第2の領域は、サブブロックBの再構築されたサンプルを格納することができ、参照メモリの第3の領域は、サブブロックCの再構築されたサンプルを格納することができ、参照メモリの第4の領域は、サブブロックDの再構築されたサンプルを格納するために割り当てることができる。
いくつかの実施形態では、交差境界制約を使用することができる。一実施形態では、参照文字列全体が許容参照領域内部にある間、垂直交差境界制約が適用される。垂直交差境界制約では、現在の文字列の参照文字列が2つのサブブロックの境界を垂直に交差することは許容されないが、参照文字列が2つのサブブロックの境界を水平に交差することは許容される。例えば、参照文字列(1720)は許容され、参照文字列(1820)は許容されない。一例では、参照文字列の開始位置は(px0、py0)である。参照文字列内のサンプル(pxi、pyi)に対して、垂直交差境界制約では、(floor(py0/64))は、(floor(pyi/64))と等しい必要がある。
別の一実施形態では、参照文字列全体が許容参照領域内部にある間、水平方向の交差境界制約が適用される。水平交差境界制約では、現在の文字列の参照文字列が2つのサブブロックの境界を水平方向に交差することを許容しないが、参照文字列が2つのサブブロックの境界を垂直方向に交差することを許容する。例えば、参照文字列(1820)は許容され、参照文字列(1720)は許容されない。一例では、参照文字列の開始位置は(px0、py0)であり、参照文字列の任意のサンプル(pxi、pyi)に対して、水平交差境界制約では、(floor(px0/64))が(floor(pxi/64))と等しい必要がある。
本開示の一態様によれば、参照文字列を現在のCTU内にあるように限定する制約を緩めることができる。例えば、現在のCTUの上方のサンプル行は、参照文字列の参照サンプルとしても使用できる。
図19は、現在のCTUの上方のサンプルを含む参照文字列の一例を示す。図19の例では、現在のCTU(1901)は128×128(サンプル)ブロックである。現在のCTU(1901)は、4つの64×64サブブロックA~Dに分割されている。サブブロックA、B、およびCが再構築され、再構築のための現在の文字列がサブブロックDにある。図19の例では、再構築される現在の文字列(1910)はサブブロックDにあり、参照文字列(1920)は、現在のCTU(1901)の上方のサンプル行(1930)に少なくとも1つのサンプルを有する。現在のCTU(1901)の上方の参照文字列(1920)とサンプル行(1930)との間のオーバーラップは許容される。一例では、デコーダは、現在のCTU(1901)の上方のサンプル行(1930)などのサンプル行にサンプルを格納するための特定のバッファ(一例ではラインバッファと呼ばれる)を含み、特定のバッファは、文字列照合モード中にアクセスされ得る。したがって、参照文字列(1920)にサンプル行(1930)とオーバーラップするサンプルが含まれている場合、特定のバッファにアクセスして、オーバーラップしたサンプルをコピーし、現在の文字列(1910)を再構築できる。
図20は、本開示の一実施形態によるプロセス(2000)の概要を示すフローチャートを示している。プロセス(2000)は、符号化されたビデオシーケンスのピクチャにおけるブロックまたは文字列を再構築するために使用され得る。プロセス(2000)は、再構築中のブロックの予測ブロックを生成するために、ブロックの再構築に使用され得る。本開示におけるブロックという用語は、予測ブロック、CB、CUなどとして解釈され得る。様々な実施形態では、プロセス(2000)は、端末デバイス(310)、(320)、(330)、および(340)の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(2000)はソフトウェア命令内に実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(2000)を実行する。プロセスは(S2001)から始まり、(S2010)に進む。
(S2010)で、CTU内の現在の文字列に対する(潜在的な)文字列ベクトルが決定される。(潜在的な)文字列ベクトルは、現在の文字列の参照文字列を指す。
(S2020)で、(潜在的な)文字列ベクトルは、現在の文字列と参照文字列の部分的なオーバーラップを許容するための要件を満たすように決定される。
いくつかの例では、(潜在的な)文字列ベクトルの垂直成分および水平成分の少なくとも1つが負であることに応答して、(潜在的な)文字列ベクトルは、現在の文字列と参照文字列の部分的なオーバーラップを許容するための要件を満たすように決定される。
一例では、現在の文字列と参照文字列の部分的なオーバーラップを許容するための要件を満たすことに応答して、オーバーラップ制約をスキップすることができる。別の一例では、現在の文字列と参照文字列の部分的なオーバーラップを許容するための要件を満たさないことに応答して、オーバーラップ制約が(潜在的な)文字列ベクトルに適用される。
(S2030)では、現在の文字列が参照文字列に基づいて再構築される。
いくつかの例では、現在の文字列は部分によって再構築される。例えば、現在の文字列の第1の部分は、現在の文字列の第2の部分の再構築の前に再構築される。次に、現在の文字列の第1の部分に基づいて、現在の文字列の第2の部分を再構築できる。
一例では、文字列の水平走査順序が使用される。次に、文字列ベクトルの垂直成分が負であることに応答して、現在の文字列が行ごとに再構築される。例えば、現在の文字列の第1のサンプル行が再構築され、次に現在の文字列の第2のサンプル行が現在の文字列の第1のサンプル行に基づいて再構築される。
別の一例では、文字列の垂直走査順序が使用される。次に、文字列ベクトルの水平成分が負であることに応答して、現在の文字列が列ごとに再構築される。例えば、現在の文字列の第1のサンプル列が再構築され、現在の文字列の第2のサンプル列が現在の文字列の第1のサンプル列に基づいて再構築される。
いくつかの実施形態では、参照文字列は、現在のCTUの上方のサンプル行とオーバーラップし、次に、サンプル行にサンプルを格納するバッファにアクセスして、現在の文字列を再構築することができる。
次いで、プロセスは(S2099)に進み、終了する。
プロセス(2000)は適切に適合させることができる。プロセス(2000)のステップは、修正および/または省略することができる。さらなるステップを追加することができる。任意の適切な実施順序を使用することができる。例えば、現在のベクトル情報が一意であると判定された場合、前述したように、現在のベクトル情報を履歴バッファに格納することができる。いくつかの例では、プルーニングプロセスが使用され、現在のベクトル情報が履歴バッファに格納されるときに履歴バッファ内のベクトル情報の1つが削除される。
上記で説明された技術は、1つ以上のコンピュータ可読媒体に物理的に記憶された、コンピュータ可読命令を使用するコンピュータソフトウェアとして実施され得る。例えば、図21は、開示されている主題の特定の実施形態を実施するのに適したコンピュータシステム(2100)を示す。
コンピュータソフトウェアは、1つ以上のコンピュータ中央処理装置(CPU:central processing unit)およびグラフィック処理装置(GPU:Graphics Processing Unit)などによって直接的に、または解釈およびマイクロコードの実行などを通して実行され得る命令を含むコードを作成するために、アセンブリ、コンパイル、リンキング、または同様のメカニズムを受け得る任意の適切な機械コードまたはコンピュータ言語を使用して符号化され得る。
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーミングデバイス、およびモノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはその構成要素上で実行され得る。
コンピュータシステム(2100)に関して図21に示されている構成要素は、本質的に例示であり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図されていない。また、構成要素の構成は、コンピュータシステム(2100)の例示的な実施形態に示される構成要素のいずれか1つまたは組み合わせに関連する依存性または要件を有すると解釈されるべきではない。
コンピュータシステム(2100)は、特定のヒューマンインタフェース入力デバイスを含み得る。そのようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、音声入力(声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を介した、1人または複数の人間のユーザによる入力に応答し得る。ヒューマンインタフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像は静止画像カメラから取得など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むためにも使用され得る。
入力ヒューマンインタフェースデバイスは、キーボード(2101)、マウス(2102)、トラックパッド(2103)、タッチスクリーン(2110)、データグローブ(図示せず)、ジョイスティック(2105)、マイクロフォン(2106)、スキャナ(2107)、カメラ(2108)のうちの1つまたは複数(各々のうちのただ1つ)を含んでもよい。
コンピュータシステム(2100)はまた、特定のヒューマンインタフェース出力デバイスを含み得る。そのようなヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味によって1人または複数の人間のユーザの感覚を刺激し得る。このようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2110)、データグローブ(図示せず)、またはジョイスティック(2105)による触覚フィードバックが含まれることがあるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(スピーカ(2109)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2110)などであり、それぞれにタッチスクリーン入力機能が有っても無くてもよく、それぞれに触覚フィードバック機能が有っても無くてもよく、それらの一部は、ステレオグラフィック出力、仮想現実ガラス(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)などの手段を通じて2次元視覚出力または3次元以上の出力が可能であり得る)およびプリンタ(図示せず)を含み得る。
コンピュータシステム(2100)はまた、CD/DVDなどの媒体(2121)を有するCD/DVD ROM/RW(2120)を含む光学媒体、サムドライブ(2122)、リムーバブルハードドライブまたはソリッドステートドライブ(2123)、テープおよびフロッピーディスクなどのレガシー磁気媒体(図示せず)、セキュリティドングルなどの専用ROM/ASIC/PLDベースのデバイス(図示せず)など、人間がアクセス可能な記憶デバイスおよびそれらの関連媒体を含むことができる。
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が伝送媒体、搬送波、または他の一時的信号を包含しないことを理解すべきである。
コンピュータシステム(2100)はまた、1つまたは複数の通信ネットワーク(2155)へのインタフェース(2154)を含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業、リアルタイム、遅延耐性などであり得る。ネットワークの例には、Ethernetなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルテレビ、衛星テレビおよび地上波テレビを含むテレビの有線または無線広域デジタルネットワーク、CANBusを含む車両用および産業用などが含まれる。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(2149)に取り付けられた外部ネットワークインタフェースアダプタ(例えば、コンピュータシステム(2100)のUSBポートなど)を必要とし、他のものは、一般に、後述するようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネットインタフェースまたはスマートフォンコンピュータシステムへのセルラネットワークインタフェース)によってコンピュータシステム(2100)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(2100)は、他のエンティティと通信することができる。そのような通信は、例えば、ローカルまたは広域デジタルネットワークを使用する他のコンピュータシステムに対して、単方向で受信のみ(例えば、放送TV)、単方向で送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向であり得る。特定のプロトコルおよびプロトコルスタックは、上記で説明されたように、それらのネットワークおよびネットワークインタフェースの各々で使用され得る。
前述のヒューマンインタフェースデバイス、ヒューマンアクセス可能な記憶デバイス、およびネットワークインタフェースを、コンピュータシステム(2100)のコア(2140)に取り付けることができる。
コア(2140)は、1つまたは複数の中央処理装置(CPU)(2141)、グラフィック処理装置(GPU)(2142)、フィールドプログラマブルゲートエリア(FPGA)(2143)の形態の専用プログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(2144)、グラフィックスアダプタ(2150)などを含むことができる。これらのデバイスは、読み取り専用メモリ(ROM)(2145)、ランダムアクセスメモリ(2146)、ユーザがアクセスすることができない内部ハードドライブ、SSDなどの内部大容量ストレージ(2147)と共に、システムバス(2148)を介して接続されてもよい。一部のコンピュータシステムでは、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形式でシステムバス(2148)にアクセスすることができる。周辺デバイスを、コアのシステムバス(2148)に直接取り付けることも、周辺バス(2149)を介して取り付けることもできる。一例では、スクリーン(2110)をグラフィックスアダプタ(2150)に接続することができる。周辺バスのアーキテクチャは、PCIおよびUSBなどを含む。
CPU(2141)、GPU(2142)、FPGA(2143)、およびアクセラレータ(2144)は、組み合わせて前述のコンピュータコードを構成できる特定の命令を実行できる。そのコンピュータコードは、ROM(2145)またはRAM(2146)に格納され得る。移行データはまた、RAM(2146)に格納され得、一方、永続データは、例えば内部大容量ストレージ(2147)に格納され得る。メモリデバイスのいずれかへの高速記憶および取得は、1つまたは複数のCPU(2141)、GPU(2142)、大容量ストレージ(2147)、ROM(2145)、RAM(2146)などと密接に関連付けることができるキャッシュメモリの使用によって可能にすることができる。
コンピュータ可読媒体は、様々なコンピュータ実施動作を実行するためのコンピュータコードを有し得る。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであり得るし、またはそれらは、コンピュータソフトウェア技術の当業者に周知の利用可能な種類のものであり得る。
一例として、限定するものではないが、アーキテクチャ(2100)、具体的にはコア(2140)を有するコンピュータシステムは、1つまたは複数の有形のコンピュータ可読媒体に組み込まれたソフトウェアを実行するプロセッサ(複数可)(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上述のようなユーザアクセス可能な大容量ストレージ、ならびにコア内部大容量ストレージ(2147)またはROM(2145)などの非一時的な性質のコア(2140)の特定のストレージに関連付けられた媒体とすることができる。本開示の様々な実施形態を実施するソフトウェアは、そのようなデバイスに格納され、コア(2140)によって実行され得る。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(2140)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、本明細書に記載の特定プロセスまたは特定プロセスの特定部分を実行させることができ、プロセスには、RAM(2146)に格納されたデータ構造を定義すること、および、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することが含まれる。加えて、または代替として、コンピュータシステムは、ハードワイヤードまたは他の方法で回路(例えば、アクセラレータ(2144))に具現化された論理の結果として、機能を提供することができ、ソフトウェアの代わりに、またはソフトウェアと共に動作して、本明細書に記載の特定プロセスまたは特定プロセスの特定部分を実行することができる。ソフトウェアへの参照は、論理を包含することができ、適切な場合には逆もまた同様である。適切な場合には、コンピュータ可読媒体への言及は、実行のためのソフトウェアを記憶する回路(集積回路(IC:integrated circuit)など)、実行のための論理を具現化する回路、またはこれらの両方を包含し得る。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
付記A:頭字語
JEM:共同探索モデル
VVC:多用途ビデオ符号化
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオ符号化
MPM:最確モード
WAIP:広角イントラ予測
SEI:補足エンハンスメント情報
VUI:ビデオユーザビリティ情報
GOP:ピクチャグループ
TU:変換ユニット
PU:予測ユニット
CTU:符号化ツリーユニット
CTB:符号化ツリーブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SDR:スタンダートダイナミックレンジ
SNR:信号雑音比
CPU:中央処理装置
GPU:グラフィックス処理装置
CRT:ブラウン管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:デジタルビデオディスク
ROM:読み出し専用メモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブル論理デバイス
LAN:ローカルエリアネットワーク
GSM:グローバル移動体通信システム
LTE:ロングタームエボリューション
CANBus:コントローラエリアネットワークバス
USB:ユニバーサルシリアルバス
PCI:周辺構成要素相互接続
FPGA:フィールドプログラマブルゲートエリア
SSD:ソリッドステートドライブ
IC:集積回路
CU:符号化ユニット
PDPC:Position Dependent Prediction Combination
ISP:イントラサブパーティション
SPS:シーケンスパラメータ設定
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内にある修正例、置換例、および様々な代替均等例がある。したがって、当業者は、本明細書に明示的に示されていないまたは記載されていないが、本開示の原理を具体化し、したがってその趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
101 サンプル
102 矢印
103 矢印
104 ブロック
201 ブロック
300 通信システム
310 端末デバイス
320 端末デバイス
330 端末デバイス
350 ネットワーク
400 通信システム
401 ビデオソース
402 ストリーム
403 ビデオエンコーダ
404 ビデオデータ
405 ストリーミングサーバ
406 クライアントサブシステム
407 ビデオデータ
410 ビデオデコーダ
411 出力ストリーム
412 ディスプレイ
413 キャプチャサブシステム
420 電子デバイス
430 電子デバイス
501 チャネル
510 ビデオデコーダ
512 レンダデバイス
515 バッファメモリ
520 パーサ
521 シンボル
530 電子デバイス
531 受信機
551 逆変換ユニット
552 イントラピクチャ予測ユニット
553 動き補償予測ユニット
555 アグリゲータ
556 ループフィルタユニット
557 参照ピクチャメモリ
558 ピクチャバッファ
601 ビデオソース
603 ビデオエンコーダ
620 電子デバイス
630 ソースコーダ
632 符号化エンジン
633 デコーダ
634 参照ピクチャメモリ
635 予測子
640 送信機
643 ビデオシーケンス
645 エントロピーコーダ
650 コントローラ
660 通信チャネル
703 ビデオエンコーダ
721 汎用コントローラ
722 イントラエンコーダ
723 残差算出部
724 残差エンコーダ
725 エントロピーエンコーダ
726 スイッチ
728 残差デコーダ
730 インターエンコーダ
810 ビデオデコーダ
871 エントロピーデコーダ
872 イントラデコーダ
873 残差デコーダ
874 再構築モジュール
880 インターデコーダ
900 ピクチャ
910 領域
920 デコーディング対象領域
930 ブロック
940 参照ブロック
950 ブロックベクトル
960 検索範囲
1001 ピクチャ
1011 並置領域
1012 領域
1013 並置領域
1014 領域
1016 領域
1017 領域
1018 領域
1019 領域
1020 ブロックベクトル
1021 符号化ブロック
1022 符号化ブロック
1023 符号化ブロック
1024 符号化ブロック
1025 符号化ブロック
1026 符号化ブロック
1027 符号化ブロック
1028 符号化ブロック
1029 符号化ブロック
1091 参照ブロック
1101 ピクチャ
1111 領域
1112 領域
1113 領域
1114 領域
1116 領域
1117 領域
1118 領域
1119 領域
1121 符号化ブロック
1122 符号化ブロック
1123 符号化ブロック
1124 符号化ブロック
1125 符号化ブロック
1126 符号化ブロック
1127 符号化ブロック
1128 符号化ブロック
1129 符号化ブロック
1201 ピクチャ
1211 領域
1212 領域
1213 領域
1214 領域
1216 領域
1217 領域
1218 領域
1219 領域
1221 符号化ブロック
1222 符号化ブロック
1223 符号化ブロック
1224 符号化ブロック
1225 符号化ブロック
1226 符号化ブロック
1227 符号化ブロック
1228 符号化ブロック
1229 符号化ブロック
1241 符号化ブロック
1242 符号化ブロック
1243 符号化ブロック
1244 符号化ブロック
1245 符号化ブロック
1246 符号化ブロック
1247 符号化ブロック
1248 符号化ブロック
1249 符号化ブロック
1261 符号化ブロック
1262 符号化ブロック
1263 符号化ブロック
1264 符号化ブロック
1265 符号化ブロック
1266 符号化ブロック
1267 符号化ブロック
1268 符号化ブロック
1269 符号化ブロック
1281 符号化ブロック
1282 符号化ブロック
1283 符号化ブロック
1284 符号化ブロック
1285 符号化ブロック
1286 符号化ブロック
1287 符号化ブロック
1288 符号化ブロック
1289 符号化ブロック
1302 左領域
1303 上領域
1304 左上領域
1305 右上領域
1306 左下領域
1310 ブロック
1400 参照文字列
1401 参照文字列
1410 ピクチャ
1420 領域
1421 領域
1430 文字列
1431 文字列
1435 ブロック
1610 ブロック
1611 サンプル行
1612 サンプル行
1613 サンプル行
1615 文字列
1621 画素
1622 画素
1623 画素
1700 ブロック
1710 文字列
1720 参照文字列
1800 ブロック
1810 文字列
1820 参照文字列
1910 文字列
1920 参照文字列
1930 サンプル行
2000 プロセス
2100 コンピュータシステム
2101 キーボード
2102 マウス
2103 トラックパッド
2105 ジョイスティック
2106 マイクロフォン
2107 スキャナ
2108 カメラ
2109 オーディオ出力デバイススピーカ
2110 タッチスクリーン
2121 媒体
2122 サムドライブ
2123 ソリッドステートドライブ
2140 コア
2143 FPGA
2144 アクセラレータ
2145 ROM
2146 ランダムアクセスメモリ
2147 内部大容量ストレージ
2148 システムバス
2149 周辺バス
2150 グラフィックスアダプタ
2154 インタフェース
2155 通信ネットワーク

Claims (10)

  1. デコーダが実行するビデオデコーディングのための方法であって、
    プロセッサによって、現在の符号化ツリーユニット(CTU)における現在の文字列のための文字列ベクトルを決定するステップであって、前記文字列ベクトルは前記現在の文字列のための参照文字列を指す、ステップと、
    前記プロセッサによって、前記文字列ベクトルが前記現在の文字列と前記参照文字列との部分的なオーバーラップの許容のための要件を満たしていることを判断するステップと、
    前記プロセッサによって、前記参照文字列に基づいて前記現在の文字列を再構築するステップと
    を含む、方法。
  2. 前記現在の文字列の第2の部分を再構築する前に、前記現在の文字列の第1の部分を再構築するステップ
    をさらに含む、請求項1に記載の方法。
  3. 前記現在の文字列の前記第1の部分に基づいて、前記現在の文字列の前記第2の部分を再構築するステップ
    をさらに含む、請求項2に記載の方法。
  4. 前記文字列ベクトルが、前記文字列ベクトルの垂直成分および水平成分のうちの少なくとも1つが負であることに応答して、前記現在の文字列と前記参照文字列との前記部分的なオーバーラップの前記許容のための前記要件を満たしていることを判断するステップ
    をさらに含む、請求項1に記載の方法。
  5. 前記現在の文字列と前記参照文字列との前記部分的なオーバーラップの前記許容のための前記要件を満たすことに応答して、オーバーラップ制約をスキップするステップと、
    前記現在の文字列と前記参照文字列との前記部分的なオーバーラップの前記許容のための前記要件を満たさないことに応答して、前記文字列ベクトルに前記オーバーラップ制約を適用するステップと
    をさらに含む、請求項1に記載の方法。
  6. 文字列に対する水平走査順序が使用され、前記方法は、
    前記文字列ベクトルの垂直成分が負であることを判断するステップと、
    前記現在の文字列の第1のサンプル行を再構築するステップと、
    前記現在の文字列の前記第1のサンプル行に基づいて、前記現在の文字列の第2のサンプル行を再構築するステップと
    をさらに含む、請求項1に記載の方法。
  7. 文字列に対する垂直走査順序が使用され、前記方法は、
    前記文字列ベクトルの水平成分が負であることを判断するステップと、
    前記現在の文字列の第1のサンプル列を再構築するステップと、
    前記現在の文字列の前記第1のサンプル列に基づいて、前記現在の文字列の第2のサンプル列を再構築するステップと
    をさらに含む、請求項1に記載の方法。
  8. 前記参照文字列が前記現在のCTUの上方のサンプル行とオーバーラップすることに応答して、前記現在の文字列の再構築のために前記サンプル行におけるサンプルを格納するバッファにアクセスするステップ
    をさらに含む、請求項1に記載の方法。
  9. 請求項1~8のいずれか一項に記載の方法を行うように構成された装置。
  10. ビデオデコーディングのためにコンピュータによって実行されると、前記コンピュータに、請求項1~8のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
JP2022551369A 2020-12-07 2021-08-03 ビデオ符号化のための方法および装置 Active JP7378631B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063122342P 2020-12-07 2020-12-07
US63/122,342 2020-12-07
US17/368,616 2021-07-06
US17/368,616 US11949894B2 (en) 2020-12-07 2021-07-06 Method and apparatus for string matching with reference location constraints
PCT/US2021/044375 WO2022125152A1 (en) 2020-12-07 2021-08-03 Method and apparatus for video coding

Publications (2)

Publication Number Publication Date
JP2023516177A JP2023516177A (ja) 2023-04-18
JP7378631B2 true JP7378631B2 (ja) 2023-11-13

Family

ID=81848560

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022551369A Active JP7378631B2 (ja) 2020-12-07 2021-08-03 ビデオ符号化のための方法および装置

Country Status (6)

Country Link
US (1) US11949894B2 (ja)
EP (1) EP4070460A4 (ja)
JP (1) JP7378631B2 (ja)
KR (1) KR20220122749A (ja)
CN (1) CN115152149A (ja)
WO (1) WO2022125152A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016532377A (ja) 2013-08-16 2016-10-13 同済大学 固定幅可変長の画素サンプル値文字列のマッチングが強化された画像圧縮方法及び装置
JP2016534660A (ja) 2013-09-13 2016-11-04 キヤノン株式会社 ビデオデータを符号化および復号するための方法、装置およびシステム
JP2017511620A5 (ja) 2014-12-22 2018-01-11

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150071357A1 (en) * 2013-09-12 2015-03-12 Qualcomm Incorporated Partial intra block copying for video coding
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
US20150264348A1 (en) * 2014-03-17 2015-09-17 Qualcomm Incorporated Dictionary coding of video content
WO2016055001A1 (en) 2014-10-08 2016-04-14 Mediatek Inc. Method of block vector clipping and coding for screen content coding and video coding
JP2017535145A (ja) * 2014-09-30 2017-11-24 マイクロソフト テクノロジー ライセンシング,エルエルシー 波面並列処理が可能にされた場合のピクチャ内予測モードに関する規則
CN107071450B (zh) * 2016-02-10 2021-07-27 同济大学 数据压缩的编码、解码方法及装置
US10986349B2 (en) * 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016532377A (ja) 2013-08-16 2016-10-13 同済大学 固定幅可変長の画素サンプル値文字列のマッチングが強化された画像圧縮方法及び装置
JP2016534660A (ja) 2013-09-13 2016-11-04 キヤノン株式会社 ビデオデータを符号化および復号するための方法、装置およびシステム
JP2017511620A5 (ja) 2014-12-22 2018-01-11

Also Published As

Publication number Publication date
WO2022125152A1 (en) 2022-06-16
US11949894B2 (en) 2024-04-02
US20220182650A1 (en) 2022-06-09
EP4070460A1 (en) 2022-10-12
CN115152149A (zh) 2022-10-04
EP4070460A4 (en) 2023-05-31
JP2023516177A (ja) 2023-04-18
KR20220122749A (ko) 2022-09-02

Similar Documents

Publication Publication Date Title
JP7426465B2 (ja) 履歴ベースの動きベクトル予測のための方法並びにその装置及びコンピュータプログラム
KR102497697B1 (ko) 병렬 처리로 히스토리 기반 모션 벡터 예측을 위한 방법 및 장치
JP7391121B2 (ja) ビデオエンコーディング及びデコーディングのための方法、装置、コンピュータプログラム、及び非一時的なコンピュータ可読媒体
JP7358487B2 (ja) イントラ画像ブロック補償のためのデコードされたブロックベクトルの変換
KR102630792B1 (ko) 비디오 코딩에서 이웃 블록 가용성을 위한 방법 및 장치
KR20210049930A (ko) 비디오 디코딩을 위한 방법 및 장치
JP7476367B2 (ja) ビデオをデコードするための方法、装置及びプログラム
JP2023158110A (ja) ビデオ復号方法、ビデオ復号装置、コンピュータプログラム、およびビデオ符号化方法
JP7419506B2 (ja) 映像コーディングのための方法及び装置
KR20210124474A (ko) 비디오 코딩을 위한 방법 및 장치
JP7471722B2 (ja) ビデオ符号化のための方法および装置
JP2024508430A (ja) イントラ及びインター予測を伴うジオメトリックパーティションモードの改善
KR20230060535A (ko) 인터 및 인트라 예측을 갖는 기하학적 파티션 모드에 대한 인트라 모드의 제약
JP7378631B2 (ja) ビデオ符号化のための方法および装置
JP7342275B2 (ja) ビデオコーディングのための方法、装置およびコンピュータプログラム
JP7483025B2 (ja) ビデオコーディングのための方法及び装置
JP7493613B2 (ja) ビデオコーディングのための方法および装置
JP2023525668A (ja) 多重変換選択を用いた適応スキャン
KR20230125830A (ko) 아웃-오브-프레임 경계 조건에 대한 모션 벡터 한정
JP2023549155A (ja) ビデオコーディング方法、装置、およびコンピュータプログラム
KR20230051287A (ko) 기하학적 파티션 기반 인트라 예측
JP2023543590A (ja) 映像復号のための方法、装置、及びコンピュータプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220825

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220825

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: 20231002

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231031

R150 Certificate of patent or registration of utility model

Ref document number: 7378631

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150