JP7412443B2 - Method and apparatus for nonlinear loop filtering - Google Patents

Method and apparatus for nonlinear loop filtering Download PDF

Info

Publication number
JP7412443B2
JP7412443B2 JP2021561991A JP2021561991A JP7412443B2 JP 7412443 B2 JP7412443 B2 JP 7412443B2 JP 2021561991 A JP2021561991 A JP 2021561991A JP 2021561991 A JP2021561991 A JP 2021561991A JP 7412443 B2 JP7412443 B2 JP 7412443B2
Authority
JP
Japan
Prior art keywords
clipping
video
value
filter
index
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
JP2021561991A
Other languages
Japanese (ja)
Other versions
JP2022529354A (en
Inventor
イシン・ドゥ
シン・ジャオ
シアン・リ
シャン・リュウ
Original Assignee
テンセント・アメリカ・エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by テンセント・アメリカ・エルエルシー filed Critical テンセント・アメリカ・エルエルシー
Publication of JP2022529354A publication Critical patent/JP2022529354A/en
Application granted granted Critical
Publication of JP7412443B2 publication Critical patent/JP7412443B2/en
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/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/117Filters, e.g. for pre-processing or post-processing
    • 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/146Data rate or code amount at the encoder output
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Description

参照による援用
本出願は、2019年9月6日に出願された米国仮出願第62/896,997号の「改良された非線形ループフィルタリング」の優先権を主張した、2020年7月9日に出願された米国特許出願第16/924,845号の「非線形ループフィルタリングのための方法および装置」の優先権を主張する。その内容を全て参照により本明細書に組み込むものとする。
Incorporated by Reference This application claims priority to U.S. Provisional Application No. 62/896,997, “Improved Nonlinear Loop Filtering,” filed on September 6, 2019, filed on July 9, 2020. Claims priority to "Method and Apparatus for Nonlinear Loop Filtering," filed U.S. patent application Ser. No. 16/924,845. The entire contents of which are incorporated herein by reference.

本開示は、一般にビデオコーディングに関する実施形態を説明する。 This disclosure generally describes embodiments related to video coding.

本明細書中に提供される「背景技術」の記述は、開示の文脈を一般的に提供するのを目的としている。出願時に先行技術としての資格を有しない記述の態様は勿論のこと、現在指名されている発明者の成果は、本背景技術セクションにおいて記述されている程度において、本開示に対する先行技術として明示的にも黙示的にも認められてはいない。 The "background" description provided herein is for the purpose of generally providing a context for the disclosure. The work of the currently named inventors, as well as aspects of the description that do not qualify as prior art at the time of filing, are expressly cited as prior art to this disclosure to the extent described in this Background section. It is not even implicitly acknowledged.

ビデオコーディングおよび復号は、動き補償を伴うイントラピクチャ予測を使用して実行されることができる。非圧縮デジタルビデオは一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080ルマサンプルと関連するクロマサンプルの空間次元を持っている。該一連のピクチャは、例えば毎秒60ピクチャまたは60Hzの固定または可変ピクチャレート(非公式には「フレームレート」とも呼ばれる)を持つことができる。非圧縮ビデオには、顕著なビットレート要件がある。例えば、サンプルあたり8ビットでの1080p60 4:2:0ビデオ(60Hzフレームレートでの1920×1080ルマサンプル解像度)には、1.5Gbit/sに近い帯域幅が必要となる。このようなビデオを1時間使用するには、600GBytesを超えた記憶空間が必要である。 Video coding and decoding may be performed using intra picture prediction with motion compensation. Uncompressed digital video may include a series of pictures, each picture having a spatial dimension of, for example, 1920x1080 luma samples and associated chroma samples. The series of pictures may have a fixed or variable picture rate (also informally referred to as "frame rate"), for example 60 pictures per second or 60 Hz. Uncompressed video has significant bit rate requirements. For example, 1080p60 4:2:0 video at 8 bits per sample (1920x1080 luma sample resolution at 60Hz frame rate) requires a bandwidth close to 1.5 Gbit/s. One hour of such video requires over 600 GBytes of storage space.

ビデオコーディングおよび復号の1つの目的は、圧縮によって入力ビデオ信号の冗長性を減らすことであり得る。圧縮は、前述の帯域幅または記憶空間の要件を、場合によっては2桁以上削減するのに役立つ。可逆圧縮と非可逆圧縮の両方、およびそれらの組み合わせを使用することができる。可逆圧縮とは、圧縮された元の信号から元の信号の正確なコピーを再構築できる技法を指す。非可逆圧縮を使用する場合、再構築された信号は元の信号と同一ではない可能性があるが、元の信号と再構築された信号の間の歪みは、再構築された信号を意図されたアプリケーションに役立てる程度に小さい。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量はアプリケーションによって異なる。例えば、特定のコンシューマストリーミングアプリケーションのユーザは、テレビ発行アプリケーションのユーザよりも高い歪みを許容できる。達成可能な圧縮率は、受け入れ可能/許容可能な歪みが大きいほど、圧縮率が高くなることを反映することができる。 One purpose of video coding and decoding may be to reduce redundancy in the input video signal through compression. Compression helps reduce the aforementioned bandwidth or storage space requirements by more than two orders of magnitude in some cases. Both lossless and lossy compression, and combinations thereof, can be used. Lossless compression refers to a technique in which an exact copy of the original signal can be reconstructed from the compressed original signal. When using lossy compression, the reconstructed signal may not be identical to the original signal, but the distortion between the original signal and the reconstructed signal may cause the reconstructed signal to be less than the intended signal. small enough to be useful for applications. In the case of video, lossy compression is widely adopted. The amount of distortion allowed depends on the application. For example, users of certain consumer streaming applications can tolerate higher distortion than users of television publishing applications. The achievable compression ratio may reflect that the higher the acceptable/tolerable distortion, the higher the compression ratio.

ビデオエンコーダおよびデコーダは、例えば、動き補償、変換、量子化、およびエントロピーコーディングを含むいくつかの広範なカテゴリからの技術を利用することができる。 Video encoders and decoders may utilize techniques from several broad categories including, for example, motion compensation, transforms, quantization, and entropy coding.

ビデオコーデック技術は、イントラコーディングとして知られる技法を含み得る。イントラコーディングでは、サンプル値は、予め再構築された参照ピクチャからのサンプルまたは他のデータを参照せずに表される。一部のビデオコーデックでは、ピクチャは空間的にサンプルのブロックに細分される。サンプルのすべてのブロックがイントラモードでコード化されると、そのピクチャはイントラピクチャになる可能性がある。イントラピクチャとその独立したデコーダリフレッシュピクチャなどの派生物は、デコーダの状態をリセットするために使用できるため、コード化されたビデオビットストリームとビデオセッションの最初のピクチャとして、または静止画像として使用されることができる。イントラブロックのサンプルは変換にさらされることができ、変換係数はエントロピーコーディングの前に量子化されることができる。イントラ予測は、事前変換領域でサンプル値を最小化する技法であり得る。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピーコーディング後のブロックを表すために所定の量子化ステップサイズで必要なビットが少なくなる。 Video codec technology may include a technique known as intra-coding. In intra-coding, sample values are represented without reference to samples or other data from previously reconstructed reference pictures. In some video codecs, a picture is spatially subdivided into blocks of samples. If all blocks of samples are coded in intra mode, the picture may become an intra picture. Intra pictures and their independent derivatives, such as decoder refresh pictures, can be used to reset the decoder state, and thus are used in coded video bitstreams and as the first picture in a video session, or as still images. be able to. Intra-block samples can be subjected to a transform, and the transform coefficients can be quantized before entropy coding. Intra prediction may be a technique that minimizes sample values in the pre-transform domain. In some cases, the smaller the DC value and the smaller the AC coefficient after the transform, the fewer bits are needed for a given quantization step size to represent the block after entropy coding.

例えばMPEG-2世代コーディング技術から知られているような従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に隣接し、デコード順の先に位置する、エンコード/デコード中に得られたサンプルデータおよび/またはメタデータの周りのデータブロックのから試みる技法を含む。そのような技法は、以降、「イントラ予測」技法と呼ばれる。少なくともいくつかのケースでは、イントラ予測は、再構築中の現在ピクチャからの参照データのみを使用し、参照ピクチャからの参照データを使用しないことに注意されたい。 Conventional intra-coding, as known for example from MPEG-2 generation coding techniques, does not use intra-prediction. However, some newer video compression techniques e.g. Includes techniques to try. Such techniques are hereinafter referred to as "intra-prediction" techniques. Note that, at least in some cases, intra prediction only uses reference data from the current picture being reconstructed and not from reference pictures.

イントラ予測はさまざまな形態で存在し得る。そのような技法の2つまたは複数が所定のビデオコーディング技術に使用できる場合、使用中の技法はイントラ予測モードでコード化されることができる。場合によっては、モードはサブモードやパラメータを有することができ、それらを個別にコード化するか、もしくはモードコードワードに含めることができる。どのコードワードが所定のモード/サブモード/パラメータの組み合わせに使用されるかは、イントラ予測によるコーディング効率の向上に影響を与える可能性があるので、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術に影響を与える可能性がある。 Intra predictions can exist in various forms. If two or more of such techniques are available for a given video coding technique, the technique in use may be coded in intra-prediction mode. In some cases, a mode may have submodes or parameters, which may be individually coded or included in the mode codeword. Which codewords are used for a given mode/submode/parameter combination can affect the coding efficiency improvement due to intra-prediction, so it is important to consider which codewords are used to convert the codewords into a bitstream. may affect the entropy coding techniques used.

イントラ予測の特定のモードはH.264で提出され、H.265で改良され、さらに共同探索モデル(JEM)、多用途ビデオコーディング(VVC)、およびベンチマークセット(BMS)などのより新しいコーディング技術で改良された。予測器ブロックは、すでに利用可能なサンプルに属する隣接サンプル値を使用して形成されることができる。隣接サンプルのサンプル値は、方向に従って予測器ブロックにコピーされる。使用中の方向への参照は、ビットストリームでコード化されるか、もしくはそれ自体を予測され得る。 The specific mode of intra prediction is H. Filed under 264, H. H.265 and further improved with newer coding techniques such as Joint Search Model (JEM), Versatile Video Coding (VVC), and Benchmark Set (BMS). The predictor block can be formed using adjacent sample values belonging to already available samples. The sample values of neighboring samples are copied into the predictor block according to the direction. References to directions in use may be encoded in the bitstream or predicted themselves.

図1Aを参照し、右下に示されたのは、H.265の33通りの予測可能な予測器方向(35通りのイントラモードの33通りの角度モードに対応する)である。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、サンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が、1つまたは複数のサンプルから右上に向けて、水平軸から45度の角度で予測されることを示す。同様に、矢印(103)は、サンプル(101)が、1つまたは複数のサンプルからサンプル(101)の左下に向けて、水平軸から22.5度の角度で予測されることを示す。 Referring to FIG. 1A, shown at the bottom right is H. There are 265 33 predictable predictor directions (corresponding to 35 intra modes and 33 angular modes). The point where the arrows converge (101) represents the sample being predicted. The arrow represents the direction in which the samples are predicted. For example, arrow (102) indicates that sample (101) is predicted from one or more samples towards the top right and at an angle of 45 degrees from the horizontal axis. Similarly, arrow (103) indicates that sample (101) is predicted from one or more samples to the bottom left of sample (101) at an angle of 22.5 degrees from the horizontal axis.

引き続き図1Aを参照し、左上には、4×4サンプルの正方形ブロック(104)(太い破線で示される)が示されている。正方形ブロック(104)は、それぞれが、「S」、Y次元におけるその位置(例えば、行インデックス)、およびX次元におけるその位置(例えば、列インデックス)でラベル付けされた16個のサンプルを含む。例えば、サンプルS21は、Y次元(上から)における2番目のサンプルかつX次元(左から)における1番目のサンプルである。同様に、サンプルS44は、YおよびX次元の両方においてブロック(104)における4番目のサンプルである。ブロックがサイズで4×4サンプルなので、S44は、右下にある。さらに、同様な番号付け体系に従う参照サンプルが示されている。参照サンプルは、R、ブロック(104)に対するそのY位置(例えば、行インデックス)およびX位置(列インデックス)でラベル付けされる。H.264とH.265の両方で、予測サンプルは再構築中のブロックに隣接している。したがって、負の値を使用する必要はない。 Continuing to refer to FIG. 1A, at the top left is shown a square block (104) of 4×4 samples (indicated by a thick dashed line). Square blocks (104) each include 16 samples labeled with "S", its location in the Y dimension (eg, row index), and its location in the X dimension (eg, column index). For example, sample S21 is the second sample in the Y dimension (from the top) and the first sample in the X dimension (from the left). Similarly, sample S44 is the fourth sample in block (104) in both the Y and X dimensions. Since the block is 4×4 samples in size, S44 is at the bottom right. Additionally, a reference sample following a similar numbering scheme is shown. The reference sample is labeled with R, its Y position (eg, row index) and X position (column index) relative to block (104). H. 264 and H. In both H.265, the predicted samples are adjacent to the block being reconstructed. Therefore, there is no need to use negative values.

イントラピクチャ予測は、シグナリングされた予測方向で適切の隣接サンプルから参照サンプル値をコピーすることで機能することができる。例えば、仮に、コード化されたビデオビットストリームは、このブロックについて矢印(102)(すなわち、サンプルが、1つまたは複数の予測サンプルから右上に、水平から45度の角度で予測される)と一致する予測方向を示すシグナリングを含むとする。この場合、サンプルS41、S32、S23、およびS14は同一の参照サンプルR05から予測される。その後、サンプルS44は、参照サンプルR08から予測される。 Intra-picture prediction can work by copying reference sample values from appropriate neighboring samples in a signaled prediction direction. For example, if the encoded video bitstream matches the arrow (102) for this block (i.e., samples are predicted from one or more predicted samples to the top right and at an angle of 45 degrees from horizontal) It is assumed that the prediction direction includes signaling indicating the prediction direction. In this case, samples S41, S32, S23, and S14 are predicted from the same reference sample R05. Sample S44 is then predicted from reference sample R08.

特定の場合において、複数の参照サンプルの値は、参照サンプルを算出するために、特に方向が45度で均等に分割されていない場合に、例えば補間によって組み合わせられることができる。 In certain cases, the values of multiple reference samples can be combined, for example by interpolation, to calculate the reference sample, especially if the directions are not evenly divided by 45 degrees.

ビデオコーディング技術が発展するにつれて、予測可能な方向の数は増加した。H.264(2003年)では、9通りの異なる方向を表すことができた。H.265(2013年)で33通りに増加し、JEM/VVC/BMSは開示時に最大65通りの方向をサポートできる。最も見込みのある方向を識別するための実験が行われ、エントロピーコーディングにおける特定の技法は、数が少ないビットにおける見込みの高い方向を表すために使用され、見込みの低い方向に対する特定のペナルティを受け入れる。さらに、方向自体は、隣接する、すでにデコードされたブロックで使用される隣接方向から予測される場合がある。 As video coding technology has evolved, the number of predictable directions has increased. H. 264 (2003) could represent nine different directions. H. 265 (2013), JEM/VVC/BMS can support up to 65 directions at the time of disclosure. Experiments are performed to identify the most likely direction, and certain techniques in entropy coding are used to represent the likely direction in a small number of bits, accepting a certain penalty for the less likely direction. Additionally, the direction itself may be predicted from neighboring directions used in neighboring, already decoded blocks.

図1Bは、経時的な予測方向の増加数を示すために、JEMによる65通りのイントラ予測方向を示す概略図(180)を示す。 FIG. 1B shows a schematic diagram (180) showing 65 intra-prediction directions by JEM to illustrate the increasing number of prediction directions over time.

方向を表すコード化されたビデオビットストリームにおけるイントラ予測方向ビットのマッピングは、ビデオコーディング技術ごとに異なる可能性があり、また、例えば、イントラ予測モードへ乃至コードワードへの予測方向の単純な直接マッピングから、最も可能性の高いモードや類似した技法を含む複雑な適応方式までの範囲とすることができる。しかしながら、すべての場合において、他の特定の方向よりも統計的にビデオコンテンツで発生する可能性が低い特定の方向が存在する可能性がある。ビデオ圧縮の目的は冗長性の削減であるため、適切に機能するビデオコーディング技術では、これらの可能性の低い方向は、可能性の高い方向よりも多くのビット数で表される。 The mapping of intra-prediction direction bits in a coded video bitstream representing direction can be different for different video coding techniques, and can also be used, for example, by a simple direct mapping of prediction direction to intra-prediction mode to codeword. can range from complex adaptive schemes including most likely modes and similar techniques. However, in all cases, there may be certain directions that are statistically less likely to occur in video content than other certain directions. Since the purpose of video compression is redundancy reduction, in a properly functioning video coding technique these less likely directions are represented by a greater number of bits than more likely directions.

動き補償は、非可逆圧縮技術であり得、予め再構築されたピクチャまたはその一部(参照ピクチャ)からのサンプルデータのブロックを、動きベクトル(以降、「MV」)によって示される方向に空間的にシフトした後、新しく再構築されたピクチャまたはピクチャ部分の予測に使用する技術に関連し得る。場合によっては、参照ピクチャは現在再構築中のピクチャと同じになることがある。MVは、XとYの2次元、または、第3次元が、使用中の参照ピクチャを示す3次元を持つことができる(後者は間接的に時間次元になることができる)。 Motion compensation may be a lossy compression technique that spatially compresses blocks of sample data from a previously reconstructed picture or a portion thereof (the reference picture) in the direction indicated by a motion vector (hereinafter "MV"). may be related to the technique used to predict the newly reconstructed picture or picture portion after shifting to . In some cases, the reference picture may be the same as the picture currently being reconstructed. The MV can have two dimensions, X and Y, or three dimensions, with the third dimension indicating the reference picture in use (the latter can indirectly be the temporal dimension).

一部のビデオ圧縮技術では、サンプルデータの特定の領域に適用可能なMVは、他のMVから、例えば再構築中の領域に空間的に隣接し、デコード順でそのMVよりも前であるサンプルデータの別の領域に関連するMVから予測されることができる。そうすることで、MVのコード化に必要なデータの量を大幅に減らすことができ、これにより冗長性を取り除き、圧縮を強化する。例えば、カメラから導出される入力ビデオ信号(「ナチュラルビデオ」と呼ばれる)をコード化する際に、単一のMVが適用される領域より大きい領域が同様の方向に移動する統計的可能性があるため、MV予測は有効に働くことができる。したがって、場合によっては、隣接領域のMVから導出された類似の動きベクトルを使用して予測することができる。その結果、特定の領域に対して検出されたMVは、周囲のMVから予測されたMVと類似または同一であり、逆に、エントロピーコーディング後、MVを直接コード化する場合よりも少ないビット数で表されることができる。場合によっては、MV予測は、元の信号(つまり、「サンプルストリーム」)から導出される信号(つまり、「MV」)の可逆圧縮の例になってもよい。他の場合では、例えばいくつかの周囲のMVから予測子を計算するときの丸め誤差のために、MV予測自体は非可逆になる可能性がある。 In some video compression techniques, the MV applicable to a particular region of sample data is derived from other MVs, e.g. samples that are spatially adjacent to the region being reconstructed and earlier in the decoding order than that MV. It can be predicted from MVs related to different areas of data. Doing so can significantly reduce the amount of data required to encode the MV, thereby removing redundancy and enhancing compression. For example, when encoding an input video signal derived from a camera (referred to as "natural video"), there is a statistical chance that a region larger than the region to which a single MV is applied will move in a similar direction. Therefore, MV prediction can work effectively. Therefore, in some cases, similar motion vectors derived from the MVs of adjacent regions can be used for prediction. As a result, the detected MVs for a particular region are similar or identical to the MVs predicted from the surrounding MVs, and conversely, after entropy coding, fewer bits are required than when directly coding the MVs. can be expressed. In some cases, MV prediction may be an example of lossless compression of a signal (i.e., "MV") derived from the original signal (i.e., "sample stream"). In other cases, the MV prediction itself may be irreversible, for example due to rounding errors when computing the predictor from several surrounding MVs.

H.265/HEVC(ITU-T Rec.H.265、「高効率ビデオコーディング」、2016年12月)には、様々なMV予測メカニズムが記載されている。H.265が提供する多くのMV予測メカニズムのうち、ここで説明するのは、以降、「空間マージ」と呼ばれる技法である。 H. H.265/HEVC (ITU-T Rec. H.265, "High Efficiency Video Coding", December 2016) describes various MV prediction mechanisms. H. Among the many MV prediction mechanisms provided by H.265, the one described here is a technique hereinafter referred to as "spatial merging."

図2を参照し、現在ブロック(201)は、空間的にシフトされた同じサイズの以前のブロックから予測可能であるとエンコーダによって動き探索過程において発見されたサンプルを含むことができる。そのMVを直接コード化する代わりに、A0、A1、およびB0、B1、B2(それぞれ202から206)で示される5つの周囲のサンプルのいずれか1つに関連付けられるMVを使用して、1つ以上の参照ピクチャに関連付けられるメタデータから、例えば最新の(デコード順で)参照ピクチャから、MVを導出することができる。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。 Referring to FIG. 2, the current block (201) may include samples found in a motion search process by the encoder to be predictable from a spatially shifted previous block of the same size. Instead of directly encoding that MV, one The MV can be derived from the metadata associated with the above reference pictures, for example from the latest reference picture (in decoding order). H. In H.265, MV prediction can use predictors from the same reference pictures that neighboring blocks are using.

本開示の態様は、ビデオエンコード/デコードのための方法および装置を提供する。いくつかの例では、ビデオデコードのための装置は、処理回路を備える。前記処理回路は、コード化ビデオシーケンスのピクチャにおけるコーディングブロックのコード化情報をデコードすることができる。前記コード化情報は、クリッピングインデックスmを示すことができ、前記クリッピングインデックスmは、前記コーディングブロックに適用されるフィルタのクリッピング値を示す。前記処理回路は、前記クリッピングインデックスに関連付けられる前記クリッピング値を決定することができる。前記クリッピング値は、第1の関数と第2の関数との乗算に基づくことができる。前記第1の関数は、ビット深度Bに依存し、かつ前記クリッピングインデックスmから独立しており、前記第2の関数は、前記クリッピングインデックスmに依存し、かつ前記ビット深度Bから独立している。前記処理回路は、前記クリッピング値に対応する前記フィルタを前記コーディングブロックに適用することにより、フィルタリングされたコーディングブロックを生成することができる。一実施形態では、前記第1の関数は、2に比例する。 Aspects of the present disclosure provide methods and apparatus for video encoding/decoding. In some examples, an apparatus for video decoding includes processing circuitry. The processing circuit is capable of decoding coding information of coding blocks in pictures of a coded video sequence. The coding information may indicate a clipping index m, and the clipping index m indicates a clipping value of a filter applied to the coding block. The processing circuit may determine the clipping value associated with the clipping index. The clipping value may be based on a multiplication of a first function and a second function. The first function depends on the bit depth B and is independent of the clipping index m, and the second function depends on the clipping index m and is independent of the bit depth B. . The processing circuit may generate a filtered coding block by applying the filter corresponding to the clipping value to the coding block. In one embodiment, the first function is proportional to 2 B.

一実施形態では、前記クリッピング値は、整数である。前記処理回路は、2-αmに基づいて前記クリッピング値を決定することができる。前記第1の関数は2であり、前記第2の関数は2-αmであり、αは、前記フィルタの強度に関連付けられる定数値である。 In one embodiment, the clipping value is an integer. The processing circuit may determine the clipping value based on 2 B 2 −αm . The first function is 2 B and the second function is 2 - αm , where α is a constant value associated with the strength of the filter.

一実施形態では、前記フィルタは、前記クリッピング値に依存するクリッピング関数を含む非線形適応ループフィルタである。 In one embodiment, the filter is a non-linear adaptive loop filter that includes a clipping function that depends on the clipping value.

一例では、前記クリッピングインデックスmは、0、1、2、および3のうちの1つである。 In one example, the clipping index m is one of 0, 1, 2, and 3.

一実施形態では、前記定数値αは、前記コーディングブロックがルマコーディングブロックであることに基づく第1の定数値であり、前記定数値αは、前記コーディングブロックがクロマコーディングブロックであることに基づく第2の定数値である。一例では、前記第1の定数値は、第2の定数値とは異なる。一例では、前記第1の定数値は2.3であり、前記第2の定数値は2.6である。 In one embodiment, the constant value α is a first constant value based on the coding block being a luma coding block, and the constant value α is a first constant value based on the coding block being a chroma coding block. It is a constant value of 2. In one example, the first constant value is different than the second constant value. In one example, the first constant value is 2.3 and the second constant value is 2.6.

一実施形態では、前記クリッピングインデックスmを示す前記コード化情報は、前記ピクチャの適応パラメータセット(APS)でシグナリングされる。前記処理回路は、前記コーディングブロックに対するフィルタセットインデックスを受信し、前記フィルタセットインデックスに基づいて、複数のフィルタセットから前記フィルタを決定することができる。 In one embodiment, the coding information indicating the clipping index m is signaled in an adaptive parameter set (APS) of the picture. The processing circuit may receive a filter set index for the coding block and determine the filter from a plurality of filter sets based on the filter set index.

本開示の態様は、ビデオデコードのためにコンピュータによって実行されると、前記コンピュータにビデオデコードのための方法のいずれかを実行させる命令を記憶した非一時的なコンピュータ読取可能な媒体も提供する。 Aspects of the present disclosure also provide a non-transitory computer-readable medium having instructions stored thereon that, when executed by a computer for video decoding, cause the computer to perform any of the methods for video decoding.

開示された主題のさらなる特徴、本質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。 Further features, nature, and various advantages of the disclosed subject matter will become more apparent from the following detailed description and accompanying drawings.

イントラ予測モードの例示的なサブセットの概略図である。FIG. 2 is a schematic diagram of an exemplary subset of intra prediction modes; 例示的なイントラ予測方向の説明図である。It is an explanatory diagram of an example intra prediction direction. 一例における現在ブロックおよびその周辺の空間的マージ候補の概略図である。FIG. 2 is a schematic diagram of a current block and its surrounding spatial merging candidates in an example; 一実施形態による通信システム(300)の概略ブロック図である。1 is a schematic block diagram of a communication system (300) according to one embodiment. FIG. 一実施形態による通信システム(400)の概略ブロック図である。1 is a schematic block diagram of a communication system (400) according to one embodiment. FIG. 一実施形態によるデコーダの概略ブロック図である。1 is a schematic block diagram of a decoder according to one embodiment; FIG. 一実施形態によるエンコーダの概略ブロック図である。1 is a schematic block diagram of an encoder according to one embodiment; FIG. 別の実施形態によるエンコーダのブロック図を示す。FIG. 6 shows a block diagram of an encoder according to another embodiment. 別の実施形態によるデコーダのブロック図を示す。FIG. 3 shows a block diagram of a decoder according to another embodiment. 本開示の実施形態によるフィルタ形状の例を示す。4 illustrates examples of filter shapes according to embodiments of the present disclosure. 本開示の実施形態による、勾配を算出するために使用されるサブサンプリングされた位置の例を示す。5 illustrates an example of subsampled locations used to calculate a slope, according to embodiments of the present disclosure. 本開示の実施形態による、勾配を算出するために使用されるサブサンプリングされた位置の例を示す。5 illustrates an example of subsampled locations used to calculate a slope, according to embodiments of the present disclosure. 本開示の実施形態による、勾配を算出するために使用されるサブサンプリングされた位置の例を示す。5 illustrates an example of subsampled locations used to calculate a slope, according to embodiments of the present disclosure. 本開示の実施形態による、勾配を算出するために使用されるサブサンプリングされた位置の例を示す。5 illustrates an example of subsampled locations used to calculate a slope, according to embodiments of the present disclosure. 本開示の一実施形態による仮想境界フィルタリングプロセスの一例を示す。2 illustrates an example of a virtual boundary filtering process according to an embodiment of the present disclosure. 本開示の一実施形態による仮想境界フィルタリングプロセスの一例を示す。2 illustrates an example of a virtual boundary filtering process according to an embodiment of the present disclosure. 本開示の実施形態による仮想境界での対称パディング操作の例を示す。2 illustrates an example of symmetric padding operations at virtual boundaries according to embodiments of the present disclosure. 本開示の実施形態による仮想境界での対称パディング操作の例を示す。2 illustrates an example of symmetric padding operations at virtual boundaries according to embodiments of the present disclosure. 本開示の実施形態による仮想境界での対称パディング操作の例を示す。2 illustrates an example of symmetric padding operations at virtual boundaries according to embodiments of the present disclosure. 本開示の実施形態による仮想境界での対称パディング操作の例を示す。2 illustrates an example of symmetric padding operations at virtual boundaries according to embodiments of the present disclosure. 本開示の実施形態による仮想境界での対称パディング操作の例を示す。2 illustrates an example of symmetric padding operations at virtual boundaries according to embodiments of the present disclosure. 本開示の実施形態による仮想境界での対称パディング操作の例を示す。2 illustrates an example of symmetric padding operations at virtual boundaries according to embodiments of the present disclosure. 本開示の一実施形態によるクリッピング値とビット深度Bおよびクリッピングインデックスmとの間の関係を示すテーブルを示す。2 shows a table illustrating the relationship between clipping values and bit depth B and clipping index m according to an embodiment of the present disclosure. 本開示の一実施形態によるクリッピング値とビット深度Bおよびクリッピングインデックスmとの間の関係を示すテーブルを示す。2 shows a table illustrating the relationship between clipping values and bit depth B and clipping index m according to an embodiment of the present disclosure. 本開示の一実施形態によるプロセス(1500)を概説するフローチャートを示す。15 shows a flowchart outlining a process (1500) according to one embodiment of the present disclosure. 一実施形態によるコンピュータシステムの概略図である。1 is a schematic diagram of a computer system according to one embodiment. FIG.

図3は、本開示の一実施形態による通信システム(300)の概略ブロック図を示している。通信システム(300)は、例えばネットワーク(350)を介して互いに通信可能な複数の端末装置を含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末装置(310)および(320)を含む。図3の例では、第1の対の端末装置(310)および(320)は、データの単方向送信を実行する。例えば、端末装置(310)は、ネットワーク(350)を介して他方の端末装置(320)へ送信するためにビデオデータ(例えば、端末装置(310)によってキャプチャされたビデオピクチャのストリーム)をコード化し得る。エンコードされたビデオデータは、1つまたは複数のコード化されたビデオビットストリームの形で送信されることができる。端末装置(320)は、ネットワーク(350)からコード化ビデオデータを受信し、コード化ビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。単方向のデータ送信は、メディア供給アプリケーションなどで一般的である。 FIG. 3 shows a schematic block diagram of a communication system (300) according to one embodiment of the present disclosure. The communication system (300) includes a plurality of terminal devices that can communicate with each other via, for example, a network (350). For example, a communication system (300) includes a first pair of terminal devices (310) and (320) interconnected via a network (350). In the example of FIG. 3, the first pair of terminals (310) and (320) perform unidirectional transmission of data. For example, a terminal device (310) encodes video data (e.g., a stream of video pictures captured by the terminal device (310)) for transmission to another terminal device (320) over a network (350). obtain. Encoded video data may be transmitted in the form of one or more encoded video bitstreams. The terminal device (320) may receive coded video data from the network (350), decode the coded video data to recover video pictures, and display the video pictures according to the recovered video data. Unidirectional data transmission is common, such as in media serving applications.

他の例では、通信システム(300)は、例えば、ビデオ会議中に発生し得るコード化ビデオデータの双方向送信を実行する第2の対の端末装置(330)および(340)を含む。データの双方向送信の場合、一例では、端末装置(330)および(340)のそれぞれは、ネットワーク(350)を介して端末装置(330)および(340)のうちの他方の端末装置へ送信するためにビデオデータ(例えば、端末装置によってキャプチャされたビデオピクチャのストリーム)をコード化し得る。端末装置(330)および(340)のそれぞれは、端末装置(330)および(340)のうちの他方の端末装置で送信されたコード化ビデオデータを受信することができ、コード化ビデオデータをデコードしてビデオピクチャを復元することができ、復元されたビデオデータに従ってビデオピクチャをアクセス可能な表示装置に表示することができる。 In other examples, the communication system (300) includes a second pair of terminal devices (330) and (340) that perform bidirectional transmission of coded video data, which may occur, for example, during a video conference. In the case of bidirectional transmission of data, in one example, each of the terminal devices (330) and (340) transmits to the other terminal device of the terminal devices (330) and (340) via the network (350). Video data (eg, a stream of video pictures captured by a terminal device) may be encoded for purposes. Each of the terminal devices (330) and (340) can receive the coded video data transmitted by the other terminal device of the terminal devices (330) and (340), and can decode the coded video data. The video picture can be restored and the video picture can be displayed on an accessible display device according to the restored video data.

図3の例では、端末装置(310)、(320)、(330)および(340)は、サーバ、パーソナルコンピュータおよびスマートフォンとして示され得るが、しかし、本開示の原理はこれに制限されることはない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤー、および/または専用のビデオ会議機器における用途を見出す。ネットワーク(350)は、例えば有線および/または無線通信ネットワークを含む、端末装置(310)、(320)、(330)および(340)間でコード化ビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換および/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本議論の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジーは、以下で説明されない限り、本開示の動作にとって重要でないかもしれない。 In the example of FIG. 3, terminal devices (310), (320), (330), and (340) may be shown as a server, a personal computer, and a smartphone, but the principles of the present disclosure are not limited thereto. There isn't. Embodiments of the present disclosure find application in laptop computers, tablet computers, media players, and/or dedicated video conferencing equipment. Network (350) represents any number of networks that convey coded video data between terminal devices (310), (320), (330) and (340), including, for example, wired and/or wireless communication networks. . The communication network (350) may exchange data over circuit-switched and/or packet-switched channels. Representative networks include telecommunications networks, local area networks, wide area networks, and/or the Internet. For purposes of this discussion, the architecture and topology of network (350) may not be important to the operation of this disclosure, unless described below.

図4は、開示された主題の適用の例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示している。開示された主題は、例えば、ビデオ会議、デジタルTV、および、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶など、を含む他のビデオ対応アプリケーションに等しく適用可能である。 FIG. 4 illustrates the deployment of video encoders and video decoders in a streaming environment as an example of an application of the disclosed subject matter. The disclosed subject matter is equally applicable to other video-enabled applications, including, for example, video conferencing, digital TV, and storage of compressed video on digital media, including CDs, DVDs, memory sticks, and the like.

ストリーミングシステムは、例えば非圧縮のビデオピクチャ(402)のストリームを作成するデジタルカメラなどのビデオソース(401)を含むことができるキャプチャサブシステム(413)を含んでもよい。一例では、ビデオピクチャ(402)のストリームは、デジタルカメラによって取得されたサンプルを含む。エンコードされたビデオデータ(404)(又はコード化されたビデオビットストリーム)と比較して高データ量を強調するために太線で示されたビデオピクチャ(402)のストリームは、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理されることができる。ビデオエンコーダ(403)は、以下でより詳細に説明されるように、開示された主題の態様を可能にするか或いは実施するためのハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ビデオピクチャ(402)のストリームと比較してより低いデータ量を強調するために細い線で示された、エンコードされたビデオデータ(404)(またはエンコードされたビデオビットストリーム(404))は、将来使うためにストリーミングサーバ(405)に記憶されることができる。図4のクライアントサブシステム(406)および(408)のような1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、エンコードされたビデオデータ(404)のコピー(407)および(409)を検索することができる。クライアントサブシステム(406)は、例えば、電子デバイス(430)におけるビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコードされたビデオデータの入り方向コピー(407)をデコードし、ディスプレイ(412)(例えば、表示画面)または他のレンダリングデバイス(示されていない)でレンダリングできるビデオピクチャ(411)の出方向ストリームを作成する。一部のストリーミングシステムにおいて、エンコードされたビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従ってエンコードされることができる。これらの規格の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオコーディング規格は、非公式的に多用途ビデオコーディング(VVC)として知られている。開示された主題は、VVCの文脈に使用され得る。 The streaming system may include a capture subsystem (413) that may include a video source (401), such as a digital camera, that creates a stream of uncompressed video pictures (402). In one example, the stream of video pictures (402) includes samples captured by a digital camera. A stream of video pictures (402), shown in bold to emphasize the high amount of data compared to the encoded video data (404) (or encoded video bitstream), is connected to the video source (401). It may be processed by an electronic device (420) that includes an associated video encoder (403). Video encoder (403) may include hardware, software, or a combination thereof to enable or implement aspects of the disclosed subject matter, as described in more detail below. The encoded video data (404) (or encoded video bitstream (404)), shown with a thin line to emphasize the lower amount of data compared to the stream of video pictures (402), will in the future It can be stored on the streaming server (405) for use. One or more streaming client subsystems, such as client subsystems (406) and (408) of FIG. 4, access a streaming server (405) to obtain a copy (407) of encoded video data (404). and (409) can be searched. Client subsystem (406) may include, for example, a video decoder (410) in electronic device (430). A video decoder (410) decodes the incoming copy (407) of the encoded video data to produce a video picture (410) that can be rendered on a display (412) (e.g., a display screen) or other rendering device (not shown). 411). In some streaming systems, encoded video data (404), (407), and (409) (eg, video bitstreams) may be encoded according to a particular video coding/compression standard. Examples of these standards are ITU-T Recommendation H. 265 included. In one example, a video coding standard under development is informally known as Versatile Video Coding (VVC). The disclosed subject matter may be used in the context of VVC.

なお、電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができる。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)を含むこともできる。 Note that electronic devices (420) and (430) may include other components (not shown). For example, electronic device (420) can include a video decoder (not shown), and electronic device (430) can also include a video encoder (not shown).

図5は、本開示の一実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれることができる。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例におけるビデオデコーダ(410)の代わりに使用されることができる。 FIG. 5 shows a block diagram of a video decoder (510) according to one embodiment of the present disclosure. A video decoder (510) may be included in an electronic device (530). Electronic device (530) can include a receiver (531) (eg, receiving circuitry). Video decoder (510) can be used instead of video decoder (410) in the example of FIG.

受信機(531)は、ビデオデコーダ(510)によってデコードされる1つまたは複数のコード化ビデオシーケンスを受信することができ、同一または別の実施形態では、一度に1つのコード化ビデオシーケンスを受信してもよく、各コード化ビデオシーケンスのデコードは、他のコード化ビデオシーケンスから独立している。コード化ビデオシーケンスは、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得るチャネル(501)から受信されることができる。受信機(531)は、それぞれの使用エンティティ(示されていない)に転送され得る他のデータ、例えば、コード化オーディオデータおよび/または補助データストリームとともに、エンコードされたビデオデータを受信し得る。受信機(531)は、コード化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、バッファメモリ(515)は、受信機(531)とエントロピーデコーダ/パーサ(520)(以降、「パーサ(520)」)の間に結合されてもよい。特定のアプリケーションでは、バッファメモリ(515)は、ビデオデコーダ(510)の一部である。他の場合、ビデオデコーダ(510)(示されていない)の外部に存在し得る。さらに他の場合、例えば、ネットワークジッタを防止するためにビデオデコーダ(510)の外部にバッファメモリ(示されていない)が存在し、さらに、例えば、再生タイミングを取り扱うためにビデオデコーダ(510)の内部に別のバッファメモリ(515)が存在し得る。受信機(531)が十分な帯域幅および可制御性を有する記憶/転送装置から、または等同期ネットワークからデータを受信する際に、バッファメモリ(515)は必要とされないことがあり、または小さくされることがある。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(515)が必要になる場合があり、バッファメモリ(515)は、比較的大きいことがあり、有利には適応サイズであることができ、オペレーティングシステムまたはビデオデコーダ(510)の外部の類似の要素(示されていない)に少なくとも部分的に実施され得る。 The receiver (531) may receive one or more coded video sequences to be decoded by the video decoder (510), and in the same or another embodiment, one coded video sequence at a time. The decoding of each coded video sequence may be independent of other coded video sequences. A coded video sequence may be received from a channel (501), which may be a hardware/software link to a storage device that stores encoded video data. The receiver (531) may receive the encoded video data along with other data, such as encoded audio data and/or auxiliary data streams, which may be transferred to the respective usage entity (not shown). A receiver (531) can separate the coded video sequence from other data. To prevent network jitter, a buffer memory (515) may be coupled between the receiver (531) and the entropy decoder/parser (520) (hereinafter "parser (520)"). In certain applications, the buffer memory (515) is part of the video decoder (510). In other cases, it may be external to the video decoder (510) (not shown). In still other cases, there is a buffer memory (not shown) external to the video decoder (510), e.g. to prevent network jitter, and also in the video decoder (510), e.g. to handle playback timing. There may be another buffer memory (515) inside. The buffer memory (515) may not be required or may be small when the receiver (531) receives data from a storage/transfer device with sufficient bandwidth and controllability or from an isosynchronous network. Sometimes. For use in best effort packet networks such as the Internet, a buffer memory (515) may be required, and the buffer memory (515) may be relatively large and advantageously may be of adaptive size. , may be at least partially implemented in an operating system or similar element (not shown) external to the video decoder (510).

ビデオデコーダ(510)は、コード化ビデオシーケンスからシンボル(521)を再構築するパーサ(520)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(510)の操作を管理するために使用される情報、および、電子デバイス(530)の不可欠な部分ではないが、図5に示されるように電子デバイス(530)に結合され得るレンダリングデバイス(512)(例えば、表示画面)のようなレンダリングデバイスを制御する潜在的情報を含む。レンダリングデバイスのための制御情報は、補助強化情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(示されていない)の形態であってよい。パーサ(520)は、受信されたコード化ビデオシーケンスを構文解析/エントロピーデコードすることができる。コード化ビデオシーケンスのコーディングは、ビデオコーディング技術または規格に合わせることができ、可変長コーディング、ハフマンコーディング、文脈感受性を有するもしくは有さない算術コーディングなどを含む様々な原理に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、コード化ビデオシーケンスからビデオデコーダ内の画素の少なくとも1つのサブグループのためのサブグループパラメータのセットを抽出することができる。サブグループは、ピクチャ群(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(520)は、コード化ビデオシーケンスから変換係数、量子化パラメータ値、動きベクトルなどのような情報をも抽出することができる。 The video decoder (510) may include a parser (520) that reconstructs symbols (521) from the coded video sequence. These categories of symbols represent information used to manage the operation of the video decoder (510) and, although not an integral part of the electronic device (530), as shown in FIG. ) that may be coupled to a rendering device (512) (eg, a display screen). Control information for the rendering device may be in the form of Supplemental Enhancement Information (SEI messages) or Video Usability Information (VUI) parameter set fragments (not shown). A parser (520) may parse/entropy decode the received coded video sequence. Coding of the coded video sequence may be tailored to a video coding technique or standard and may follow various principles including variable length coding, Huffman coding, arithmetic coding with or without context sensitivity, and the like. A parser (520) may extract a set of subgroup parameters for at least one subgroup of pixels in a video decoder from the coded video sequence based on at least one parameter corresponding to the group. A subgroup may include a group of pictures (GOP), a picture, a tile, a slice, a macroblock, a coding unit (CU), a block, a transform unit (TU), a prediction unit (PU), etc. The parser (520) may also extract information such as transform coefficients, quantization parameter values, motion vectors, etc. from the coded video sequence.

パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピーデコード/構文解析操作を実行することができる。 A parser (520) may perform entropy decoding/parsing operations on the video sequence received from the buffer memory (515) to create symbols (521).

シンボル(521)の再構築は、コード化ビデオピクチャまたはその一部(例えば、インターおよびイントラピクチャ、インターおよびイントラブロック)のタイプ、および他の要因に応じて、複数の異なるユニットが関与することができる。どのユニットが、どのように関与するかは、パーサ(520)によってコード化ビデオシーケンスから構文解析されたサブグループ制御情報によって制御されることができる。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために示されていない。 Reconstruction of symbols (521) may involve several different units, depending on the type of coded video picture or portion thereof (e.g., inter and intra pictures, inter and intra blocks), and other factors. can. Which units participate and how can be controlled by subgroup control information parsed from the coded video sequence by the parser (520). The flow of such subgroup control information between the parser (520) and the following units is not shown for clarity.

すでに述べた機能ブロックに加え、ビデオデコーダ(510)は、以下で説明されるようにいくつかの機能ユニットに概念的に細分されることができる。商業的な制約の下で実際の実施操作にあたっては、これらのユニットの多くは互いに密接に相互作用し、少なくとも一部は互いに統合することができる。しかしながら、開示された主題の説明の目的で、以下の機能ユニットへの概念的な細分は、適切に行われる。 In addition to the functional blocks already mentioned, the video decoder (510) can be conceptually subdivided into several functional units as explained below. In actual implementation under commercial constraints, many of these units interact closely with each other and may be at least partially integrated with each other. However, for purposes of explanation of the disclosed subject matter, the following conceptual subdivision into functional units is appropriate.

第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、使用する変換、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報と、量子化された変換係数をシンボル(521)としてパーサ(520)から受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力可能なサンプル値を含むブロックを出力することができる。 The first unit is a scaler/inverse transform unit (551). The scaler/inverse transform unit (551) receives control information including the transform to use, block size, quantization factor, quantization scaling matrix, etc., and quantized transform coefficients as symbols (521) from the parser (520). do. The scaler/inverse transform unit (551) can output blocks containing sample values that can be input to the aggregator (555).

場合によっては、スケーラ/逆変換ユニット(551)の出力サンプルは、イントラコーディングブロック、すなわち、予め再構築されたピクチャからの予測情報を使用していないが、現在ピクチャの予め再構築された部分からの予測情報を使用できるブロックに関係することがある。このような予測情報は、イントラピクチャ予測ユニット(552)によって提供されることができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)から取り出された周囲の既に再構築された情報を用いて、再構築中のブロックの同じサイズおよび形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、一部再構築された現在ピクチャおよび/または完全に再構築された現在ピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。 In some cases, the output samples of the scaler/inverse transform unit (551) are intra-coding blocks, i.e., not using prediction information from a previously reconstructed picture, but from a previously reconstructed part of the current picture. may be related to blocks for which predictive information is available. Such prediction information may be provided by an intra picture prediction unit (552). In some cases, the intra picture prediction unit (552) generates a block of the same size and shape of the block being reconstructed using surrounding already reconstructed information retrieved from the current picture buffer (558). . The current picture buffer (558) buffers, for example, a partially reconstructed current picture and/or a fully reconstructed current picture. The aggregator (555) adds the prediction information generated by the intra prediction unit (552) to the output sample information provided by the scaler/inverse transform unit (551), possibly on a sample by sample basis.

他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコード化された、潜在的に動き補償されたブロックに関係することがある。このような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルを取り出すことができる。取り出されたサンプルをブロックに関係するシンボル(521)に従って動き補償した後、出力サンプル情報を生成するように、これらのサンプルは、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加されることができる(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償予測ユニット(553)が予測サンプルを取り出す参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y、および参照ピクチャ成分を有し得るシンボル(521)の形態で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御されることができる。動き補償は、サブサンプル正確な動きベクトルが使用中であるときに参照ピクチャメモリ(557)から取り出されたサンプル値の補間、動きベクトル予測メカニズムなどを含むこともできる。 In other cases, the output samples of the scaler/inverse transform unit (551) may relate to inter-coded, potentially motion-compensated blocks. In such cases, the motion compensated prediction unit (553) may access the reference picture memory (557) to retrieve samples used for prediction. After motion compensating the retrieved samples according to the symbols (521) associated with the block, these samples are added to the output of the scaler/inverse transform unit (551) by an aggregator (555) to generate output sample information. (in this case called residual samples or residual signals). The address in the reference picture memory (557) from which the motion compensated prediction unit (553) retrieves the predicted samples is, for example, the address in the reference picture memory (557) from which the motion compensated prediction unit (553) ) can be controlled by the motion vectors available. Motion compensation may also include interpolation of sample values retrieved from reference picture memory (557) when sub-sample accurate motion vectors are in use, motion vector prediction mechanisms, etc.

アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技法を受けられる。ビデオ圧縮技術は、コード化ビデオシーケンス(コード化されたビデオビットストリームとも呼ばれる)に含まれる、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能とされたパラメータによって制御されることができ、それに、コード化ピクチャまたはコード化ビデオシーケンスの(デコード順で)前の部分のデコード中に取得されたメタ情報に応じるとともに、予め再構築されループフィルタリングされたサンプル値に応じることもできるループ内フィルタ技術を含むことができる。 The output samples of the aggregator (555) are subjected to various loop filtering techniques in a loop filter unit (556). The video compression technique is controlled by parameters made available to the loop filter unit (556) as symbols (521) from the parser (520), contained in the coded video sequence (also referred to as the coded video bitstream). and depending on the meta-information obtained during decoding of the previous part (in decoding order) of the coded picture or coded video sequence, as well as depending on the pre-reconstructed and loop-filtered sample values. In-loop filter techniques may also be included.

ループフィルタユニット(556)の出力は、レンダリングデバイス(512)へ出力されることができるとともに、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶されることができるサンプルストリームであり得る。 The output of the loop filter unit (556) is a sample stream that can be output to a rendering device (512) and stored in a reference picture memory (557) for use in future inter-picture predictions. could be.

特定のコード化ピクチャは、完全に再構築されると、将来の予測のために参照ピクチャとして使用されることができる。例えば、現在ピクチャに対応するコード化ピクチャが完全に再構築され、コード化ピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、次のコード化ピクチャの再構築を開始する前に新しい現在ピクチャバッファを再割当てすることができる。 Once a particular coded picture is completely reconstructed, it can be used as a reference picture for future predictions. For example, once the coded picture corresponding to the current picture has been completely reconstructed and the coded picture is identified as a reference picture (e.g., by the parser (520)), the current picture buffer (558) 557) and reallocate a new current picture buffer before starting reconstruction of the next coded picture.

ビデオデコーダ(510)は、ITU-T Rec.H.265のような規格での所定のビデオ圧縮技術に従ってデコード操作を実行することができる。コード化ビデオシーケンスが、ビデオ圧縮技術または規格のシンタックスと、ビデオ圧縮技術または規格で文書化されたプロファイルとの両方に準拠しているという意味で、コード化ビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定されるシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格で使用可能なすべてのツールから、特定のツールをそのプロファイルで使用できる唯一のツールとして選択することができる。コード化ビデオシーケンスの複雑さがビデオ圧縮技術または規格のレベルで定義される範囲内にあることも、コンプライアンスに必要である。場合によっては、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば、1秒あたりのメガサンプルで測定される)、最大参照ピクチャサイズなどがレベルによって制限される。レベルによって設定された制限は、場合によっては、コード化ビデオシーケンスでシグナリングされたHRDバッファ管理のための仮想参照デコーダ(HRD)仕様およびメタデータによってさらに制限され得る。 The video decoder (510) is an ITU-T Rec. H. The decoding operation may be performed according to a predetermined video compression technique in a standard such as H.265. A coded video sequence is a coded video sequence that conforms to both the syntax of the video compression technology or standard and the profile documented in the video compression technology or standard. It may conform to the syntax specified by the compression technology or standard. Specifically, a profile may select a particular tool from all available tools for a video compression technology or standard as the only tool that can be used with that profile. Compliance also requires that the complexity of the coded video sequence be within the range defined at the level of the video compression technology or standard. In some cases, the maximum picture size, maximum frame rate, maximum reconstruction sample rate (eg, measured in megasamples per second), maximum reference picture size, etc. are limited by the level. The limits set by the levels may in some cases be further limited by virtual reference decoder (HRD) specifications and metadata for HRD buffer management signaled in the coded video sequence.

一実施形態では、受信機(531)は、エンコードされたビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、コード化ビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコードし、および/または、元のビデオデータをより正確に再構築するためにビデオデコーダ(510)によって使用され得る。追加のデータは、例えば、時間的、空間的、または信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方向誤り訂正コードなどの形態にされることができる。 In one embodiment, the receiver (531) may receive additional (redundant) data along with the encoded video. Additional data may be included as part of the encoded video sequence. The additional data may be used by the video decoder (510) to properly decode the data and/or more accurately reconstruct the original video data. The additional data may be in the form of, for example, temporal, spatial, or signal-to-noise ratio (SNR) enhancement layers, redundant slices, redundant pictures, forward error correction codes, and the like.

図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含む。図4の例におけるビデオエンコーダ(403)の代わりにビデオエンコーダ(603)を使用することができる。 FIG. 6 shows a block diagram of a video encoder (603) according to an embodiment of the present disclosure. A video encoder (603) is included in the electronic device (620). Electronic device (620) includes a transmitter (640) (eg, transmitting circuitry). A video encoder (603) can be used instead of the video encoder (403) in the example of FIG.

ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコード化されるビデオ画像をキャプチャし得るビデオソース(60l)(図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信することができる。他の例では、ビデオソース(601)は、電子デバイス(620)の一部である。 A video encoder (603) receives video samples from a video source (60l) (not part of the electronic device (620) in the example of Figure 6) that may capture video images to be encoded by the video encoder (603). can do. In other examples, the video source (601) is part of the electronic device (620).

ビデオソース(601)は、ビデオエンコーダ(603)によってコード化されるソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、・・・)、任意の色空間(例えば、BT.601 Y CrCB、RGB、・・・)および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形態で提供し得る。メディア供給システムでは、ビデオソース(601)は、予め準備されたビデオを記憶する記憶装置であり得る。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであり得る。ビデオデータは、順番に見られるときに動きが与えられる複数の個別のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間アレイとして編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて1つまたは複数のサンプルを含むことができる。当業者は、画素とサンプルとの関係を容易に理解することができる。以下の説明ではサンプルを中心に説明する。 A video source (601) encodes a source video sequence encoded by a video encoder (603) in any suitable bit depth (e.g. 8 bits, 10 bits, 12 bits,...), in any color space ( e.g. BT.601 Y CrCB, RGB,...) and any suitable sampling structure (e.g. Y CrCb 4:2:0, Y CrCb 4:4:4) in the form of a digital video sample stream. can be provided. In a media provisioning system, the video source (601) may be a storage device that stores pre-prepared videos. In a video conferencing system, the video source (601) may be a camera that captures local image information as a video sequence. Video data may be provided as multiple individual pictures that are imparted with motion when viewed in sequence. The picture itself may be organized as a spatial array of pixels, and each pixel may contain one or more samples depending on the sampling structure, color space, etc. in use. Those skilled in the art can easily understand the relationship between pixels and samples. The following explanation will focus on samples.

一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムでまたはアプリケーションが要求する任意の他の時間制約の下でソースビデオシーケンスのピクチャをコード化し、コード化ビデオシーケンス(643)に圧縮することができる。適切なコーディング速度を実施することは、コントローラ(650)の機能の1つである。一部の実施形態では、コントローラ(650)は、以下で説明される他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。分かりやすくするために、カップリングは示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化技法のラムダ値、・・・)、ピクチャサイズ、ピクチャ群(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計に対して最適化されたビデオエンコーダ(603)に関する他の適切な機能を有するように構成されることができる。 According to one embodiment, the video encoder (603) encodes and compresses the pictures of the source video sequence into a coded video sequence (643) in real time or under any other time constraints required by the application. Can be done. Enforcing the appropriate coding speed is one of the functions of the controller (650). In some embodiments, controller (650) controls and is operably coupled to other functional units described below. Couplings are not shown for clarity. The parameters set by the controller (650) include rate control related parameters (picture skipping, quantization, lambda values for rate distortion optimization techniques, etc.), picture size, group of pictures (GOP) layout, maximum motion vector search. It can include ranges, etc. Controller (650) may be configured with other suitable functionality for video encoder (603) optimized for a particular system design.

一部の実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。過度に簡略化した説明として、一例では、コーディングループは、ソースコーダ(630)(例えば、コード化対象となる入力ピクチャおよび参照ピクチャに基づくシンボルストリームなどのシンボルの作成を担当する)、およびビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)を含むことができる。デコーダ(633)は、シンボルを再構築して、(リモート)デコーダが作成するのと同様な方法でサンプルデータを作成する(シンボルとコード化されたビデオビットストリーム間の如何なる圧縮は、開示された主題で考慮されるビデオ圧縮技術では可逆であるためである)。再構築されたサンプルストリーム(サンプルデータ)は参照ピクチャメモリ(634)に入力される。シンボルストリームのデコードにより、デコーダの位置(ローカルまたはリモート)に関係なくビット正確な結果が得られるため、参照ピクチャメモリ(634)のコンテンツもローカルエンコーダとリモートエンコーダの間でビット正確である。言い換えれば、エンコーダの予測部分は、参照ピクチャサンプルとして、デコード中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を「見る」。参照ピクチャの同期性の該基本原理(および例えばチャネルエラーに起因して同期性を維持できない場合に生じるドリフト)は、いくつかの関連分野にも使用されている。 In some embodiments, the video encoder (603) is configured to operate in a coding loop. As an oversimplified explanation, in one example, the coding loop includes a source coder (630) (e.g., responsible for creating symbols, such as a symbol stream based on input pictures and reference pictures to be coded), and a video encoder (630); It may include a (local) decoder (633) embedded in (603). The decoder (633) reconstructs the symbols to create sample data in a manner similar to that created by the (remote) decoder (any compression between the symbols and the coded video bitstream is disclosed). (This is because the video compression techniques considered in the subject matter are lossless). The reconstructed sample stream (sample data) is input to a reference picture memory (634). Since decoding of the symbol stream yields bit-accurate results regardless of the location of the decoder (local or remote), the contents of the reference picture memory (634) are also bit-accurate between the local and remote encoders. In other words, the prediction part of the encoder "sees" exactly the same sample values as reference picture samples that the decoder "sees" when using prediction during decoding. The basic principle of reference picture synchrony (and the drift that occurs when synchrony cannot be maintained, for example due to channel errors) is also used in several related fields.

「ローカル」デコーダ(633)の動作は、前文で図5に関連して既に詳細に説明された、ビデオデコーダ(510)などの「リモート」デコーダの動作と同様であり得る。しかしながら、図5も簡単に参照すると、シンボルが使用可能であり、エントロピーコーダ(645)およびパーサ(520)によるコード化ビデオシーケンスへのシンボルのエンコード/デコードは可逆であり得るので、バッファメモリ(515)、およびパーサ(520)を含むビデオデコーダ(510)のエントロピーデコード部分は、ローカルデコーダ(633)では完全に実装されない場合がある。 The operation of the "local" decoder (633) may be similar to the operation of a "remote" decoder, such as the video decoder (510), already described in detail in connection with FIG. 5 in the preamble. However, referring also briefly to FIG. 5, since the symbols are available and the encoding/decoding of the symbols into the coded video sequence by the entropy coder (645) and parser (520) can be reversible, the buffer memory (515) ), and the entropy decoding portion of the video decoder (510), including the parser (520), may not be fully implemented in the local decoder (633).

これで分かるように、デコーダに存在する構文解析/エントロピーデコード以外の如何なるデコーダ技術も、対応するエンコーダに実質的に同一の機能的形態で必ず存在する必要がある。このため、開示された主題は、デコーダ操作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるため、省略できる。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。 As can be seen, any decoder technology other than parsing/entropy decoding that is present in a decoder must necessarily be present in substantially the same functional form in the corresponding encoder. Therefore, the disclosed subject matter focuses on decoder operation. A description of the encoder technology can be omitted since it is the reverse of the comprehensively described decoder technology. Only in certain areas more detailed explanation is required and is provided below.

操作中、一部の例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の予めコード化されたピクチャを参照して入力ピクチャを予測的にコード化する動き補償予測コーディングを実行してもよい。このようにして、コーディングエンジン(632)は、入力ピクチャの画素ブロックと、入力ピクチャへの予測基準として選択され得る参照ピクチャの画素ブロックとの差異をコード化する。 During operation, in some examples, the source coder (630) predictively codes the input picture with reference to one or more previously coded pictures from the video sequence designated as "reference pictures." Motion compensated predictive coding may be performed to reduce the In this way, the coding engine (632) codes the differences between the pixel blocks of the input picture and the pixel blocks of the reference picture that may be selected as a prediction basis for the input picture.

ローカルビデオデコーダ(633)は、ソースコーダ(630)で作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコード化ビデオデータをデコードすることができる。コーディングエンジン(632)の操作は、有利にはロッシープロセスであり得る。コード化ビデオデータがビデオデコーダ(図6に示されていない)でデコードされ得るとき、再構築されたビデオシーケンスは、通常、いくつかのエラーを伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(633)は、ビデオデコーダによって参照ピクチャに対して実行され得るデコードプロセスを再現し、再構築された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させることができる。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダによって取得される再構築された参照ピクチャと共通するコンテンツ(送信エラー無し)を有する再構築された参照ピクチャのコピーをローカルに記憶し得る。 A local video decoder (633) may decode coded video data of a picture that may be designated as a reference picture based on the symbols created in the source coder (630). The operation of the coding engine (632) may advantageously be a lossy process. When the coded video data may be decoded with a video decoder (not shown in FIG. 6), the reconstructed video sequence may be a replica of the source video sequence, usually with some errors. The local video decoder (633) may reproduce the decoding process that may be performed on the reference pictures by the video decoder and store the reconstructed reference pictures in the reference picture cache (634). In this way, the video encoder (603) locally stores a copy of the reconstructed reference picture that has common content (without transmission errors) with the reconstructed reference picture obtained by the far-end video decoder. obtain.

予測器(635)は、コーディングエンジン(632)の予測検索を実行することができる。つまり、コード化対象となる新しいピクチャについて、予測器(635)は、(候補の参照画素ブロックとしての)サンプルデータ、または、参照ピクチャの動きベクトル、ブロック形状など、新しいピクチャの適切な予測基準として機能し得る特定のメタデータを参照ピクチャメモリ(634)で検索することができる。予測器(635)は、適切な予測基準を見つけるために、サンプルブロック/画素ブロックごとに操作することができる。場合によっては、予測器(635)で取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測基準を有してもよい。 The predictor (635) may perform a predictive search of the coding engine (632). That is, for a new picture to be coded, the predictor (635) uses the sample data (as a candidate reference pixel block) or the reference picture's motion vector, block shape, etc. as a suitable prediction criterion for the new picture. The reference picture memory (634) may be searched for specific metadata that may function. The predictor (635) can operate on a sample block/pixel block basis to find suitable prediction criteria. In some cases, the input picture has prediction criteria derived from multiple reference pictures stored in a reference picture memory (634), as determined by the search results obtained in the predictor (635). Good too.

コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング操作を管理することができる。 Controller (650) may manage coding operations of source coder (630), including, for example, setting parameters and subgroup parameters used to encode video data.

前述のすべての機能ユニットの出力は、エントロピーコーダ(645)においてエントロピーコーディングを受けられる。エントロピーコーダ(645)は、例えば、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルをコード化ビデオシーケンスに変換する。 The outputs of all the aforementioned functional units are subjected to entropy coding in an entropy coder (645). The entropy coder (645) converts the symbols generated by the various functional units into a coded video sequence by losslessly compressing the symbols according to techniques such as Huffman coding, variable length coding, arithmetic coding, and the like.

送信機(640)は、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る通信チャネル(660)を介した送信の準備のために、エントロピーコーダ(645)によって作成されたコード化ビデオシーケンスをバッファリングすることができる。送信機(640)は、ビデオコーダ(603)からのコード化ビデオデータを、送信されるべき他のデータ、例えば、コード化オーディオデータおよび/または補助データストリーム(ソースは示されていない)とマージすることができる。 A transmitter (640) is created by an entropy coder (645) in preparation for transmission via a communication channel (660), which may be a hardware/software link to a storage device that stores encoded video data. The coded video sequence can be buffered. The transmitter (640) merges the coded video data from the video coder (603) with other data to be transmitted, such as coded audio data and/or an auxiliary data stream (source not shown). can do.

コントローラ(650)は、ビデオエンコーダ(603)の操作を管理し得る。コーディング中、コントローラ(650)は、各コード化ピクチャに特定のコード化ピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼし得る。例えば、ピクチャは、多くの場合、次のピクチャタイプのいずれかとして割り当てられ得る。 A controller (650) may manage the operation of the video encoder (603). During coding, the controller (650) may assign a particular coded picture type to each coded picture, which may affect the coding technique that may be applied to the respective picture. For example, pictures can often be assigned as any of the following picture types:

イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のいかなるピクチャを使用せずにコード化および復号され得るものであり得る。一部のビデオコーデックは、例えば、インディペンデントデコーダリフレッシュ(Independent Decoder Refresh、「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャの変形およびそれらのそれぞれの用途および特徴を知っている。 Intra pictures (I pictures) may be those that can be coded and decoded without using any other pictures in the sequence as a source of prediction. Some video codecs allow different types of intra pictures, including, for example, Independent Decoder Refresh ("IDR") pictures. Those skilled in the art are aware of the I-picture variants and their respective uses and characteristics.

予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大1つの動きベクトルおよび参照インデックスを使用したイントラ予測またはインター予測によりコード化および復号され得るものであり得る。 A predicted picture (P-picture) may be one that can be coded and decoded by intra-prediction or inter-prediction using at most one motion vector and reference index to predict the sample values of each block.

双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大2つの動きベクトルおよび参照インデックスを使用したイントラ予測またはインター予測によりコード化および復号され得るものであり得る。同様に、多重予測ピクチャは、単数のブロックの再構築のために2つを超えた参照ピクチャおよび関連メタデータを使用することができる。 Bidirectionally predicted pictures (B pictures) may be those that can be coded and decoded by intra-prediction or inter-prediction using up to two motion vectors and reference indices to predict the sample values of each block. Similarly, multi-predicted pictures can use more than two reference pictures and associated metadata for reconstruction of a single block.

ソースピクチャは、一般に、複数のサンプルブロック(例えば、それぞれ、4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分され、ブロック単位でコード化され得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定された他の(既にコード化された)ブロックを参照して予測的にコード化され得る。例えば、Iピクチャのブロックは、非予測的にコード化されてもよく、或いは、同一のピクチャの既にコード化されたブロック(空間予測またはイントラ予測)を参照して予測的にコード化されてもよい。Pピクチャの画素ブロックは、1つの予めコード化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコード化され得る。Bピクチャのブロックは、1つまたは2つの予めコード化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコード化され得る。 A source picture is typically spatially subdivided into multiple sample blocks (eg, blocks of 4x4, 8x8, 4x8, or 16x16 samples, respectively) and may be coded on a block-by-block basis. A block may be predictively coded with reference to other (already coded) blocks determined by a coding assignment applied to each picture of the block. For example, blocks of an I-picture may be coded non-predictively or predictively with reference to previously coded blocks (spatial or intra-prediction) of the same picture. good. P-picture pixel blocks may be predictively coded via spatial prediction or via temporal prediction with reference to one pre-coded reference picture. A block of B pictures may be predictively coded via spatial prediction or via temporal prediction with reference to one or two previously coded reference pictures.

ビデオエンコーダ(603)は、ITU-T Rec.H.265などの予め設定されたビデオコーディング技術または規格に従って、コーディング操作を実行することができる。操作中、ビデオエンコーダ(603)は、入力ビデオシーケンスの時間的および空間的冗長性を利用する予測コーディング操作を含む、様々な圧縮操作を実行することができる。したがって、コード化ビデオデータは、使用されるビデオコーディング技術または規格によって指定されたシンタックスに準拠する場合がある。 The video encoder (603) is an ITU-T Rec. H. The coding operation may be performed according to a predefined video coding technique or standard, such as H.265. During operation, the video encoder (603) may perform various compression operations, including predictive coding operations that exploit temporal and spatial redundancies in the input video sequence. Thus, the coded video data may conform to the syntax specified by the video coding technology or standard used.

一実施形態では、送信機(640)は、エンコードされたビデオとともに追加のデータを送信することができる。ソースコーダ(630)は、このようなデータをコード化ビデオシーケンスの一部として含み得る。追加のデータは、時間的/空間的/SNRエンハンスメントレイヤ、冗長なピクチャやスライスなどの他の形態での冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含み得る。 In one embodiment, the transmitter (640) may transmit additional data along with the encoded video. The source coder (630) may include such data as part of the coded video sequence. Additional data may include temporal/spatial/SNR enhancement layers, redundant data in other forms such as redundant pictures or slices, SEI messages, VUI parameter set fragments, etc.

ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(「イントラ予測」と略されることが多い)は、所定のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的または他の)相関を利用する。一例では、現在ピクチャと呼ばれるエンコード/デコード中の特定のピクチャは、ブロックに分割される。現在ピクチャにおけるブロックが、ビデオにおける予めコード化され、まだバッファリングされている参照ピクチャの参照ブロックに類似している場合、現在ピクチャにおけるブロックは、動きベクトルと呼ばれるベクトルによってコード化されることができる。動きベクトルは、参照ピクチャの参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3次元を有することができる。 Video may be captured as multiple source pictures (video pictures) in chronological order. Intra-picture prediction (often abbreviated as "intra-prediction") exploits spatial correlations in a given picture, while inter-picture prediction exploits correlations (temporal or otherwise) between pictures. In one example, a particular picture being encoded/decoded, called the current picture, is divided into blocks. A block in the current picture can be coded by a vector called a motion vector if the block in the current picture is similar to a reference block in a previously coded and still buffered reference picture in the video. . A motion vector points to a reference block of a reference picture and can have a third dimension that identifies the reference picture if multiple reference pictures are used.

一部の実施形態では、インターピクチャ予測において双予測法を使用することができる。双予測法によれば、ビデオにおける現在ピクチャよりもデコード順序がそれぞれ前である(ただし、表示順序でそれぞれ過去および未来にあり得る)第1の参照ピクチャおよび第2の参照ピクチャのような2つの参照ピクチャを使用する。現在ピクチャにおけるブロックは、第1の参照ピクチャにおける第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャにおける第2の参照ブロックを指す第2の動きベクトルによってコード化されることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測されることができる。 In some embodiments, bi-prediction methods may be used in inter-picture prediction. According to the bi-prediction method, two reference pictures, such as a first reference picture and a second reference picture, which are each earlier in decoding order than the current picture in the video (but can be in the past and future, respectively, in the display order) Use reference pictures. The block in the current picture is coded by a first motion vector pointing to a first reference block in a first reference picture and a second motion vector pointing to a second reference block in a second reference picture. Can be done. A block can be predicted by a combination of a first reference block and a second reference block.

さらに、マージモード技法をインターピクチャ予測に適用して、コーディング効率を向上させることができる。 Additionally, merge mode techniques can be applied to inter-picture prediction to improve coding efficiency.

本開示の一部の実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、HEVC規格によれば、一連のビデオピクチャにおけるピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャにおけるCTUは、64×64画素、32×32画素、または16×16画素など、同一のサイズを有する。一般に、CTUは、1つの輝度CTBと2つの彩度CTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割されることができる。例えば、64×64画素のCTUは、1つの64×64画素のCU、4つの32×32画素のCU、または16つの16×16画素のCUに分割されることができる。一例では、各CUを解析して、インター予測タイプまたはイントラ予測タイプなど、CUの予測タイプを決定する。CUは、時間的および/または空間的予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割される。通常、各PUは、1つの輝度予測ブロック(PB)と2つの彩度PBを含む。一実施形態では、コーディング(エンコード/デコード)における予測操作は、予測ブロックの単位で実行される。輝度予測ブロックを予測ブロックの例として用いて、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などの画素の値(例えば、輝度値)の行列を含む。 According to some embodiments of the present disclosure, predictions, such as inter-picture prediction and intra-picture prediction, are performed on a block-by-block basis. For example, according to the HEVC standard, pictures in a series of video pictures are divided into coding tree units (CTUs) for compression, and a CTU in a picture can be 64x64 pixels, 32x32 pixels, or 16x16 pixels. etc., have the same size. Generally, a CTU includes three coding tree blocks (CTBs): one luma CTB and two chroma CTBs. Each CTU may be recursively quadtree partitioned into one or more coding units (CUs). For example, a 64x64 pixel CTU can be divided into one 64x64 pixel CU, four 32x32 pixel CUs, or sixteen 16x16 pixel CUs. In one example, each CU is analyzed to determine the CU's prediction type, such as an inter-prediction type or an intra-prediction type. A CU is divided into one or more prediction units (PUs) depending on temporal and/or spatial predictability. Typically, each PU includes one luma prediction block (PB) and two chroma PBs. In one embodiment, prediction operations in coding (encoding/decoding) are performed in units of prediction blocks. Using the luminance prediction block as an example of a prediction block, the prediction block includes a matrix of pixel values (e.g., luminance values) such as 8x8 pixels, 16x16 pixels, 8x16 pixels, 16x8 pixels, etc. .

図7は、本開示の他の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、一連のビデオピクチャにおける現在ビデオピクチャにおけるサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コード化ビデオシーケンスの一部であるコード化ピクチャにエンコードするように構成される。一例では、図4の例におけるビデオエンコーダ(403)の代わりにビデオエンコーダ(703)を使用する。 FIG. 7 shows a diagram of a video encoder (703) according to another embodiment of the present disclosure. A video encoder (703) receives a processing block (e.g., a prediction block) of sample values in a current video picture in a series of video pictures and encodes the processing block into a coded picture that is part of a coded video sequence. It is configured as follows. In one example, a video encoder (703) is used in place of the video encoder (403) in the example of FIG.

HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルのような予測ブロックなどの処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(703)は、例えばレート歪み最適化を用いて、処理ブロックをイントラモード、インターモード、または双予測モードにより最も良くコード化するか否かを決定する。処理ブロックがイントラモードでコード化されようとする場合、ビデオエンコーダ(703)は、イントラ予測法を用いて処理ブロックをコード化ピクチャにエンコードすることができる。また、処理ブロックがインターモードまたは双予測モードでコード化されようとする場合、ビデオエンコーダ(703)は、それぞれインター予測または双予測法を用いて、処理ブロックをコード化ピクチャにエンコードすることができる。特定のビデオコーディング技術では、マージモードは、予測器外のコード化動きベクトル成分の利便を介することなく、1つまたは複数の動きベクトル予測器から動きベクトルを導出するインターピクチャ予測サブモードであり得る。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。 In the HEVC example, the video encoder (703) receives a matrix of sample values for a processing block, such as a prediction block, such as an 8x8 sample. The video encoder (703) determines whether the processing block is best coded in intra mode, inter mode, or bi-predictive mode, for example using rate-distortion optimization. If the processing block is to be coded in intra mode, the video encoder (703) may encode the processing block into a coded picture using an intra prediction method. Additionally, if the processing block is to be coded in inter-prediction or bi-prediction mode, the video encoder (703) may encode the processing block into a coded picture using inter-prediction or bi-prediction methods, respectively. . In certain video coding techniques, the merge mode may be an inter-picture prediction submode that derives motion vectors from one or more motion vector predictors without the benefit of coded motion vector components outside the predictor. . In certain other video coding techniques, there may be motion vector components applicable to the current block. In one example, the video encoder (703) includes other components such as a mode determination module (not shown) for determining the mode of the processing block.

図7の例では、ビデオエンコーダ(703)は、図7に示すように互いに結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差算出部(723)、スイッチ(726)、残差エンコーダ(724)、統括制御部(721)およびエントロピーエンコーダ(725)を含む。 In the example of FIG. 7, the video encoder (703) includes an inter encoder (730), an intra encoder (722), a residual calculation unit (723), a switch (726), and a residual It includes an encoder (724), a general control unit (721), and an entropy encoder (725).

インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、該ブロックを参照ピクチャにおける1つまたは複数の参照ブロック(例えば、前のピクチャおよび後のピクチャにおけるブロック)と比較し、インター予測情報(例えば、インターエンコード法による冗長情報の記述、動きベクトル、マージモード情報)を生成し、インター予測情報に基づいて任意の適切な技法を用いてインター予測結果(例えば、予測ブロック)を算出するように構成される。一部の例では、参照ピクチャは、エンコードされたビデオ情報に基づいてデコードされたデコード参照ピクチャである。 An inter-encoder (730) receives samples of a current block (e.g., a processing block) and compares the block to one or more reference blocks in a reference picture (e.g., blocks in a previous picture and a later picture). , generate inter-prediction information (e.g. redundant information description by inter-encoding method, motion vector, merge mode information) and use any suitable technique based on the inter-prediction information to generate inter-prediction results (e.g. prediction blocks). is configured to calculate. In some examples, the reference picture is a decoded reference picture that is decoded based on encoded video information.

イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては該ブロックを同一のピクチャで既にコード化されたブロックと比較し、変換後に、量子化された係数を生成し、場合によってはイントラ予測情報(例えば、1つまたは複数のイントラエンコード法によるイントラ予測方向情報)をも生成するように構成される。一例では、イントラエンコーダ(722)は、イントラ予測情報および同一のピクチャにおける参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)も算出する。 The intra-encoder (722) receives samples of the current block (e.g., a processing block), optionally compares the block with previously coded blocks in the same picture, and after transformation, calculates the quantized coefficients. and possibly also generate intra-prediction information (eg, intra-prediction direction information according to one or more intra-encoding methods). In one example, the intra encoder (722) also calculates intra prediction results (eg, predicted blocks) based on the intra prediction information and reference blocks in the same picture.

統括制御部(721)は、統括制御データを決定し、統括制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、統括制御部(721)は、ブロックのモードを決定し、モードに基づいて制御信号をスイッチ(726)に提供する。例えば、モードがイントラモードである場合、統括制御部(721)は、残差算出部(723)が使用するためのイントラモード結果を選択するようにスイッチ(726)を制御するとともに、イントラ予測情報を選択してイントラ予測情報をビットストリームに含ませるようにエントロピーエンコーダ(725)を制御する。また、モードがインターモードである場合、統括制御部(721)は、残差算出部(723)が使用するためのインター予測結果を選択するようにスイッチ(726)を制御するとともに、インター予測情報を選択してインター予測情報をビットストリームに含ませるようにエントロピーエンコーダ(725)を制御する。 The overall control unit (721) is configured to determine overall control data and control other components of the video encoder (703) based on the overall control data. In one example, the overall control unit (721) determines the mode of the block and provides a control signal to the switch (726) based on the mode. For example, when the mode is intra mode, the overall control unit (721) controls the switch (726) to select the intra mode result for use by the residual calculation unit (723), and also controls the intra prediction information. The entropy encoder (725) is controlled to select and include intra prediction information in the bitstream. Further, when the mode is inter mode, the overall control unit (721) controls the switch (726) to select the inter prediction result for use by the residual calculation unit (723), and also controls the inter prediction information The entropy encoder (725) is controlled to select and include inter prediction information in the bitstream.

残差算出部(723)は、受信されたブロックとイントラエンコーダ(722)またはインターエンコーダ(730)から選択された予測結果との差(残差データ)を算出するように構成される。残差エンコーダ(724)は、残差データに基づいて動作し、残差データをエンコードして変換係数を生成するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域へと変換し、変換係数を生成するように構成される。その後、変換係数は量子化処理を受けて、量子化された変換係数が得られる。様々な実施形態では、ビデオエンコーダ(703)は、残差デコーダ(728)をも含む。残差デコーダ(728)は、逆変換を実行し、デコード残差データを生成するように構成される。デコード残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用されることができる。例えば、インターエンコーダ(730)は、デコード残差データよびインター予測情報に基づいて、デコードブロックを生成することができ、イントラエンコーダ(722)は、デコード残差データおよびイントラ予測情報に基づいて、デコードブロックを生成することができる。一部の例では、デコードブロックは、デコードピクチャを生成するように適切に処理され、デコードピクチャは、メモリ回路(図示せず)にバッファリングされ、参照ピクチャとして使用されることができる。 The residual calculation unit (723) is configured to calculate the difference (residual data) between the received block and the prediction result selected from the intra encoder (722) or the inter encoder (730). The residual encoder (724) operates on the residual data and is configured to encode the residual data to generate transform coefficients. In one example, the residual encoder (724) is configured to transform the residual data from the spatial domain to the frequency domain and generate transform coefficients. The transform coefficients are then subjected to a quantization process to obtain quantized transform coefficients. In various embodiments, the video encoder (703) also includes a residual decoder (728). A residual decoder (728) is configured to perform an inverse transform and generate decoded residual data. The decoded residual data may be suitably used by the intra-encoder (722) and the inter-encoder (730). For example, the inter encoder (730) can generate decoded blocks based on decoded residual data and inter prediction information, and the intra encoder (722) can generate decoded blocks based on decoded residual data and intra prediction information. Blocks can be generated. In some examples, the decode block is suitably processed to generate a decode picture, which can be buffered in memory circuitry (not shown) and used as a reference picture.

エントロピーエンコーダ(725)は、ビットストリームをフォーマットしてエンコードブロックを生成するように構成される。エントロピーエンコーダ(725)は、HEVC規格などの適切な規格に従う様々な情報をビットストリームに含ませるように構成される。一例では、エントロピーエンコーダ(725)は、統括制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含ませるように構成される。開示された主題によれば、インターモードまたは双予測モードのマージサブモードでブロックをコード化する場合、残差情報はないことに留意されたい。 The entropy encoder (725) is configured to format the bitstream to generate encoded blocks. The entropy encoder (725) is configured to include various information in the bitstream according to a suitable standard, such as the HEVC standard. In one example, the entropy encoder (725) is configured to include integrated control data, selected prediction information (e.g., intra-prediction information or inter-prediction information), residual information, and other suitable information in the bitstream. be done. Note that according to the disclosed subject matter, there is no residual information when coding a block in the merge submode of inter mode or bi-predictive mode.

図8は、本開示の他の実施形態によるビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コード化ビデオシーケンスの一部であるコード化ピクチャを受信し、コード化ピクチャをデコードして、再構築ピクチャを生成するように構成される。一例では、図4の例におけるビデオデコーダ(410)の代わりにビデオデコーダ(810)を使用する。 FIG. 8 shows a diagram of a video decoder (810) according to another embodiment of the present disclosure. A video decoder (810) is configured to receive coded pictures that are part of a coded video sequence, decode the coded pictures, and generate reconstructed pictures. In one example, a video decoder (810) is used in place of the video decoder (410) in the example of FIG.

図8の例では、ビデオデコーダ(810)は、図8に示されるように互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構築モジュール(874)、およびイントラデコーダ(872)を含む。 In the example of FIG. 8, the video decoder (810) includes an entropy decoder (871), an inter decoder (880), a residual decoder (873), a reconstruction module (874), coupled to each other as shown in FIG. and an intra decoder (872).

エントロピーデコーダ(871)は、コード化ピクチャから、コード化ピクチャを構成するシンタックス要素を表す特定のシンボルを再構築するように構成されることができる。このようなシンボルは、例えば、ブロックがコード化されるモード(例えば、イントラモード、インターモード、双予測モード、後の2つのマージサブモードまたは他のサブモード)、それぞれイントラデコーダ(872)またはインターデコーダ(880)による予測に使用される特定のサンプルまたはメタデータを識別できる予測情報(例えば、イントラ予測情報またはインター予測情報)、例えば、量子化された変換係数の形態での残差情報などを含むことができる。一例では、予測モードがインターまたは双予測モードであれば、インター予測情報は、インターデコーダ(880)に提供される。また、予測タイプがイントラ予測タイプであれば、イントラ予測情報は、イントラデコーダ(872)に提供される。残差情報は、逆量子化を施されることができ、残差デコーダ(873)に提供される。 The entropy decoder (871) may be configured to reconstruct from the coded picture certain symbols representing syntactic elements that make up the coded picture. Such symbols are e.g. determined by the mode in which the block is coded (e.g., intra mode, inter mode, bi-predictive mode, later two merge submodes or other submodes), the intra decoder (872) or the inter decoder (872), respectively. Prediction information (e.g., intra-prediction information or inter-prediction information) that can identify the particular samples or metadata used for prediction by the decoder (880), such as residual information in the form of quantized transform coefficients. can be included. In one example, if the prediction mode is inter or bi-prediction mode, inter prediction information is provided to the inter decoder (880). Moreover, if the prediction type is an intra prediction type, intra prediction information is provided to the intra decoder (872). The residual information may be subjected to dequantization and provided to a residual decoder (873).

インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。 The inter-decoder (880) is configured to receive inter-prediction information and generate inter-prediction results based on the inter-prediction information.

イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。 The intra decoder (872) is configured to receive intra prediction information and generate prediction results based on the intra prediction information.

残差デコーダ(873)は、逆量子化を実行して、逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)は、(量子化器パラメータ(QP)を含めるように)特定の制御情報をも必要とする場合があり、この情報は、エントロピーデコーダ(871)によって提供されてもよい(データパスは、低ボリューム制御情報のみであり得るため、示されていない)。 The residual decoder (873) performs inverse quantization, extracts inverse quantized transform coefficients, and processes the inverse quantized transform coefficients to transform the residual from the frequency domain to the spatial domain. It is composed of The residual decoder (873) may also require certain control information (such as including the quantizer parameter (QP)), and this information may be provided by the entropy decoder (871) ( The data path is not shown as it may only be low volume control information).

再構築モジュール(874)は、空間領域において、残差デコーダ(873)によって出力された残差と、(場合によってはインターまたはイントラ予測モジュールによって出力される)予測結果とを組み合わせて、再構築ビデオの一部となり得る再構築ピクチャの一部であり得る再構築ブロックを形成するように構成される。なお、視覚的品質を改善するために、デブロッキング操作などの他の適切な操作を実行することができる。 A reconstruction module (874) combines the residual output by the residual decoder (873) and the prediction result (possibly output by an inter or intra prediction module) in the spatial domain to generate a reconstructed video. is configured to form a reconstruction block that may be part of a reconstructed picture that may be part of a reconstructed picture. Note that other suitable operations, such as deblocking operations, may be performed to improve the visual quality.

なお、ビデオエンコーダ(403)、(603)および(703)とビデオデコーダ(410)、(510)および(810)は、任意の適切な技法を用いて実施されることができる。一実施形態では、ビデオエンコーダ(403)、(603)および(703)とビデオデコーダ(410)、(510)および(810)は、1つまたは複数の集積回路を用いて実施されることができる。他の実施形態では、ビデオエンコーダ(403)、(603)および(703)とビデオデコーダ(410)、(510)および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを用いて実施されることができる。 It should be noted that video encoders (403), (603) and (703) and video decoders (410), (510) and (810) may be implemented using any suitable technique. In one embodiment, video encoders (403), (603) and (703) and video decoders (410), (510) and (810) may be implemented using one or more integrated circuits. . In other embodiments, video encoders (403), (603) and ( 703 ) and video decoders (410), (510) and (810) are implemented using one or more processors executing software instructions. can be done.

ブロックベースのフィルタ適応を有する適応ループフィルタ(Adaptive Loop Filter、ALF)は、アーチファクトを減らすためにエンコーダ/デコーダによって適用されることができる。ルマ成分の場合、例えば局所的な勾配の方向および活性度に基づいて、複数のフィルタ(例えば、25個のフィルタ)のうちの1つが4×4のルマブロックに対して選択されることができる。 An Adaptive Loop Filter (ALF) with block-based filter adaptation can be applied by the encoder/decoder to reduce artifacts. For the luma component, one of multiple filters (e.g., 25 filters) can be selected for a 4x4 luma block, e.g., based on local gradient direction and activity. .

ALFは、任意の適切な形状およびサイズを持つことができる。図9を参照すると、ALF(910)~(911)は、ALF(910)の場合は5×5の菱形、ALF(911)の場合は7×7の菱形といったように、菱形形状を持っている。ALF(910)では、要素(920)~(932)は、フィルタリングプロセスに使用されて菱形形状を形成することができる。要素(920)~(932)には7つの値(例えば、C0~C6)が使用可能である。ALF(911)では、要素(940)~(964)は、フィルタリングプロセスに使用されて菱形形状を形成することができる。要素(940)~(964)には13個の値(例えば、C0~C12)が使用可能である。 The ALF can have any suitable shape and size. Referring to FIG. 9, ALF(910) to (911) have a rhombic shape, such as a 5x5 rhombus for ALF(910) and a 7x7 rhombus for ALF(911). There is. In ALF (910), elements (920)-(932) may be used in a filtering process to form a diamond shape. Seven values (eg, C0 to C6) are available for elements (920) to (932). In ALF (911), elements (940)-(964) may be used in the filtering process to form a diamond shape. Thirteen values (eg, C0 to C12) are available for elements (940) to (964).

図9を参照すると、いくつかの例では、菱形形状を有する2つのALF(910)~(911)が使用される。5×5の菱形のフィルタ(910)がクロマ成分(例えば、クロマブロック、クロマCB)に適用されることができ、7×7の菱形のフィルタ(911)がルマ成分(例えば、ルマブロック、ルマCB)に適用されることができる。ALFでは、他の適切な形状およびサイズが使用されることができる。例えば、9×9の菱形のフィルタが使用されることができる。 Referring to FIG. 9, in some examples two ALFs (910)-(911) having a diamond shape are used. A 5×5 diamond-shaped filter (910) can be applied to the chroma component (e.g., chroma block, chroma CB), and a 7×7 diamond-shaped filter (911) can be applied to the luma component (e.g., luma block, luma CB). CB). Other suitable shapes and sizes of ALFs can be used. For example, a 9x9 diamond shaped filter can be used.

値(例えば、(910)のC0~C6、または(920)のC0~C12)によって示される位置におけるフィルタ係数は、非ゼロであってもよい。さらに、ALFがクリッピング関数を含む場合、その位置におけるクリッピング値は、非ゼロであってもよい。 The filter coefficients at the positions indicated by the values (eg, C0-C6 of (910) or C0-C12 of (920)) may be non-zero. Furthermore, if the ALF includes a clipping function, the clipping value at that location may be non-zero.

ルマ成分のブロック分類の場合、4×4ブロック(またはルマブロック、ルマCB)は、複数(例えば、25)のクラスのうちの1つと類別または分類されることができる。また、方向性パラメータDおよび活性度値Aの量子化値

Figure 0007412443000001
に基づいて、式(1)を用いて分類インデックスCを導出することができる。 For block classification of luma components, a 4x4 block (or luma block, luma CB) can be categorized or classified into one of multiple (eg, 25) classes. In addition, the directional parameter D and the quantized value of the activity value A

Figure 0007412443000001
Based on , the classification index C can be derived using equation (1).


Figure 0007412443000002
Figure 0007412443000002

方向性パラメータDおよび量子化値

Figure 0007412443000003
を算出するために、1次元ラプラシアンを用いて、垂直方向、水平方向、2つの対角方向(例えば、d1、d2)の勾配g、g、gd1、よびgd2をそれぞれ以下のように算出することができる。 Directionality parameter D and quantization value

Figure 0007412443000003
To calculate the gradients g v , g h , g d1 , and g d2 in the vertical direction, horizontal direction , and two diagonal directions (for example, d1, d2 ) using the one-dimensional Laplacian, respectively, as follows. It can be calculated as follows.


Figure 0007412443000004
Figure 0007412443000004


Figure 0007412443000005
Figure 0007412443000005


Figure 0007412443000006
Figure 0007412443000006


Figure 0007412443000007
Figure 0007412443000007

ここで、インデックスiおよびjは、4×4ブロック内の左上サンプルの座標を指し、R(k,l)は、座標(k,l)における再構築サンプルを示す。方向(例えば、d1およびd2)は、2つの対角方向を指すことができる。 Here, indices i and j refer to the coordinates of the top left sample within the 4x4 block, and R(k,l) indicates the reconstructed sample at coordinates (k,l). The directions (eg, d1 and d2) can refer to two diagonal directions.

上述したブロック分類の複雑さを低減するために、サブサンプリングされた1次元ラプラシアン計算を適用することができる。図10A~10Dは、垂直方向(図10A)、水平方向(図10B)、および2つの対角方向d1(図10C)、d2(図10D)の勾配g、g、gd1、およびgd2をそれぞれ算出するために使用されるサブサンプリング位置の例を示す。同じサブサンプリング位置が、異なる方向の勾配計算に使用されることができる。図10Aでは、ラベル「V」は、垂直勾配gを算出するためのサブサンプリング位置を示している。図10Bでは、ラベル「H」は、水平勾配gを算出するためのサブサンプリング位置を示している。図10ACでは、ラベル「D1」は、d1斜め勾配gd1を算出するためのサブサンプリング位置を示している。図10Dでは、ラベル「D2」は、d2斜め勾配g を算出するためのサブサンプリング位置を示している。 To reduce the complexity of the block classification described above, a subsampled one-dimensional Laplacian computation can be applied. 10A-10D show the gradients g v , g h , g d1 , and g Examples of sub-sampling positions used to calculate d2 are shown. The same sub-sampling location can be used for gradient calculations in different directions. In FIG. 10A, the label "V" indicates the sub-sampling position for calculating the vertical gradient gv . In FIG. 10B, the label "H" indicates the sub-sampling position for calculating the horizontal gradient g h . In FIG. 10AC, the label "D1" indicates the sub-sampling position for calculating the d1 diagonal gradient g d1 . In FIG. 10D, the label "D2" indicates the sub-sampling position for calculating the d2 diagonal gradient g d 2 .

水平方向および垂直方向の勾配g、gの最大値

Figure 0007412443000008
と最小値

Figure 0007412443000009
は、以下のように設定されることができる。 Maximum values of horizontal and vertical gradients g v , g h

Figure 0007412443000008
and the minimum value

Figure 0007412443000009
can be set as follows.


Figure 0007412443000010
Figure 0007412443000010

2つの対角方向の勾配gd1、gd2の最大値

Figure 0007412443000011
と最小値

Figure 0007412443000012
は、以下のように設定されることができる。 Maximum value of two diagonal gradients g d1 and g d2

Figure 0007412443000011
and the minimum value

Figure 0007412443000012
can be set as follows.


Figure 0007412443000013
Figure 0007412443000013

方向性パラメータDは、上記の値と2つの閾値tおよびtに基づいて、以下のように導出されることができる。 The directional parameter D can be derived as follows based on the above values and the two thresholds t 1 and t 2 .

ステップ1では、

Figure 0007412443000014
および

Figure 0007412443000015
が真の場合、Dは0に設定される。 In step 1,

Figure 0007412443000014
and

Figure 0007412443000015
is true, D is set to 0.

ステップ2では、

Figure 0007412443000016
の場合、ステップ3に進み、そうでない場合、ステップ4に進む。 In step 2,

Figure 0007412443000016
If so, proceed to step 3, otherwise proceed to step 4.

ステップ3では、

Figure 0007412443000017
の場合、Dは2に設定され、そうでない場合、Dは1に設定される。 In step 3,

Figure 0007412443000017
, then D is set to 2; otherwise, D is set to 1.

ステップ4では、

Figure 0007412443000018
の場合、Dは4に設定され、そうでない場合、Dは3に設定される。 In step 4,

Figure 0007412443000018
, then D is set to 4; otherwise, D is set to 3.

活性度値Aは、次のように算出されることができる。 The activity value A can be calculated as follows.


Figure 0007412443000019
Figure 0007412443000019

Aは、さらに、0以上4以下の範囲に量子化されることができ、量子化値は、

Figure 0007412443000020
で表される。 A can be further quantized to a range of 0 to 4, and the quantization value is

Figure 0007412443000020
It is expressed as

ピクチャのクロマ成分の場合、ブロック分類が適用されないため、クロマ成分ごとに単一セットのALF係数を適用することができる。 For the chroma components of a picture, no block classification is applied, so a single set of ALF coefficients can be applied for each chroma component.

幾何学的変換がフィルタ係数および対応するフィルタクリッピング値(クリッピング値とも呼ばれる)に適用されることができる。ブロック(例えば、4×4ルマブロック)をフィルタリングする前に、例えば、該ブロックに対して算出された勾配値(例えば、g、g、gd1、および/または、gd2)に応じて、回転または斜めおよび垂直反転などの幾何学的変換をフィルタ係数f(k,l)および対応するフィルタクリッピング値c(k,l)に適用することができる。フィルタ係数f(k,l)および対応するフィルタクリッピング値c(k,l)に適用される幾何学的変換は、フィルタによってサポートされる領域におけるサンプルに幾何学的変換を適用することと等価であり得る。幾何学的変換は、それぞれの方向性を揃えることで、ALFが適用される異なるブロックをより似たものにすることができる。 Geometric transformations can be applied to the filter coefficients and corresponding filter clipping values (also referred to as clipping values). Before filtering a block ( e.g. a 4x4 luma block), e.g. , rotation or diagonal and vertical flips can be applied to the filter coefficients f(k,l) and the corresponding filter clipping values c(k,l). The geometric transformation applied to the filter coefficients f(k,l) and the corresponding filter clipping values c(k,l) is equivalent to applying a geometric transformation to the samples in the region supported by the filter. could be. Geometric transformation can make different blocks to which ALF is applied more similar by aligning their orientations.

斜め反転、垂直反転、および回転を含む3つの幾何学的変換は、それぞれ、式(9)~(11)で説明されるように実行されることができる。 Three geometric transformations, including diagonal flip, vertical flip, and rotation, can be performed as described in equations (9)-(11), respectively.


Figure 0007412443000021
Figure 0007412443000021


Figure 0007412443000022
Figure 0007412443000022


Figure 0007412443000023
Figure 0007412443000023

ここで、KはALFまたはフィルタのサイズであり、0≦k,l≦K-1は係数の座標である。例えば、位置(0,0)は、フィルタfまたはクリッピング値行列(またはクリッピング行列)cの左上隅にあり、位置(K-1,K-1)は、フィルタfまたはクリッピング値行列(またはクリッピング行列)cの右下隅にある。ブロックに対して算出された勾配値に応じて、変換をフィルタ係数f(k,l)およびクリッピング値c(k,l)に適用することができる。変換と4つの勾配との間の関係の一例を表1にまとめる。 Here, K is the size of the ALF or filter, 0≦k, and l≦K−1 are the coordinates of the coefficients. For example, position (0,0) is in the upper left corner of filter f or clipping value matrix (or clipping matrix) c, and position (K-1,K-1) is in the upper left corner of filter f or clipping value matrix (or clipping matrix ) in the lower right corner of c. Depending on the gradient values calculated for the block, a transformation can be applied to the filter coefficients f(k,l) and the clipping values c(k,l). An example of the relationship between the transformation and the four slopes is summarized in Table 1.


Figure 0007412443000024
Figure 0007412443000024

いくつかの実施形態では、ALFフィルタパラメータは、ピクチャの適応パラメータセット(APS)でシグナリングされる。APSでは、1つまたは複数のセット(例えば、25セットまで)のルマフィルタ係数およびクリッピング値インデックスがシグナリングされ得る。一例では、1つまたは複数のセットのうちの1セットは、ルマフィルタ係数および1つまたは複数のクリッピング値インデックスを含み得る。1つまたは複数のセット(例えば、8セットまで)のクロマフィルタ係数およびクリッピング値インデックスがシグナリングされ得る。シグナリングオーバーヘッドを低減するために、ルマ成分の異なる分類の(例えば、異なる分類インデックスを有する)フィルタ係数をマージすることができる。スライスヘッダでは、現在のスライスに使用されるAPSのインデックスがシグナリングされ得る。 In some embodiments, the ALF filter parameters are signaled in a picture's adaptive parameter set (APS). In the APS, one or more sets (eg, up to 25 sets) of luma filter coefficients and clipping value indices may be signaled. In one example, one of the one or more sets may include luma filter coefficients and one or more clipping value indices. One or more sets (eg, up to eight sets) of chroma filter coefficients and clipping value indices may be signaled. To reduce signaling overhead, filter coefficients of different classifications (eg, with different classification indices) of the luma component can be merged. In the slice header, the index of the APS used for the current slice may be signaled.

一実施形態では、クリッピング値インデックス(クリッピングインデックスとも呼ばれる)は、APSからデコードされることができる。クリッピング値インデックスは、例えば、クリッピング値インデックスと対応するクリッピング値との間の関係に基づいて、対応するクリッピング値を決定するために使用されることができる。この関係は、事前定義され、デコーダに記憶されることができる。一例では、この関係は、クリッピング値インデックスと対応するクリッピング値のルマテーブル(例えば、ルマCBに使用される)、クリッピング値インデックスと対応するクリッピング値のクロマテーブル(例えば、クロマCBに使用される)などのテーブルによって記述される。クリッピング値は、ビット深度Bに依存することができる。ビット深度Bは、内部ビット深度、フィルタリングされるCB内の再構築サンプルのビット深度などを指すことができる。いくつかの例では、テーブル(例えば、ルマテーブル、クロマテーブル)は、式(12)を用いて得られる。 In one embodiment, a clipping value index (also referred to as a clipping index) can be decoded from the APS. The clipping value index can be used to determine the corresponding clipping value, for example, based on the relationship between the clipping value index and the corresponding clipping value. This relationship can be predefined and stored in the decoder. In one example, this relationship includes a luma table of clipping value indexes and corresponding clipping values (e.g. used for luma CB), a chroma table of clipping value indexes and corresponding clipping values (e.g. used for chroma CB) It is described by a table such as The clipping value may depend on the bit depth B. The bit depth B may refer to the internal bit depth, the bit depth of the reconstructed samples within the CB to be filtered, etc. In some examples, tables (eg, luma tables, chroma tables) are obtained using equation (12).


Figure 0007412443000025
Figure 0007412443000025

ここで、AlfClipはクリッピング値、Bはビット深度(例えば、bitDepth)、N(例えば、N=4)は許容されるクリッピング値の数、(n-1)はクリッピング値インデックス(クリッピングインデックスまたはclipIdxとも呼ばれる)である。表2は、N=4の場合の式(12)を用いて得られるテーブルの一例である。クリッピングインデックス(n-1)は、表2では0、1、2、および3であることができ、nはそれぞれ1、2、3、および4であり得る。表2は、ルマブロックまたはクロマブロックに使用されることができる。 Here, AlfClip is the clipping value, B is the bit depth (e.g., bitDepth), N (e.g., N=4) is the number of allowed clipping values, and (n-1) is the clipping value index (also known as clipping index or clipIdx). called). Table 2 is an example of a table obtained using equation (12) when N=4. The clipping index (n-1) can be 0, 1, 2, and 3 in Table 2, and n can be 1, 2, 3, and 4, respectively. Table 2 can be used for luma blocks or chroma blocks.


Figure 0007412443000026
Figure 0007412443000026

現在のスライスのスライスヘッダでは、1つまたは複数のAPSインデックス(例えば、7つのAPSインデックスまで)が、現在のスライスに使用できるルマフィルタセットを指定するためにシグナリングされ得る。フィルタリングプロセスは、ピクチャレベル、スライスレベル、CTBレベルなど、1つまたは複数の適切なレベルで制御され得る。一実施形態では、フィルタリングプロセスは、さらにCTBレベルで制御されることができる。フラグは、ALFがルマCTBに適用されるか否かを示すためにシグナリングされ得る。ルマCTBは、複数の固定フィルタセット(例えば、16個の固定フィルタセット)、およびAPSでシグナリングされたフィルタセット(シグナリングされたフィルタセットとも呼ばれる)の中から、フィルタセットを選択することができる。フィルタセットインデックスは、適用されるフィルタセット(例えば、複数の固定フィルタセットおよびシグナリングされたフィルタセットのうちのフィルタセット)を示すために、ルマCTBに対してシグナリングされることができる。複数の固定フィルタセットは、エンコーダおよびデコーダで事前定義され、ハードコードされることができ、事前定義されたフィルタセットと呼ばれることができる。 In the slice header of the current slice, one or more APS indices (eg, up to seven APS indices) may be signaled to specify the luma filter set that can be used for the current slice. The filtering process may be controlled at one or more suitable levels, such as picture level, slice level, CTB level, etc. In one embodiment, the filtering process can be further controlled at the CTB level. A flag may be signaled to indicate whether ALF applies to luma CTB. The luma CTB can select a filter set from among multiple fixed filter sets (eg, 16 fixed filter sets) and APS-signaled filter sets (also referred to as signaled filter sets). A filter set index may be signaled to the luma CTB to indicate the filter set to be applied (eg, a filter set of a plurality of fixed filter sets and signaled filter sets). Multiple fixed filter sets can be predefined and hard-coded in the encoder and decoder and can be referred to as predefined filter sets.

クロマ成分の場合、現在のスライスに使用されるクロマフィルタセットを示すために、APSインデックスをスライスヘッダでシグナリングすることができる。CTBレベルでは、APSに1つを超えたクロマフィルタセットがある場合、クロマCTBごとにフィルタセットインデックスをシグナリングすることができる。 For chroma components, an APS index can be signaled in the slice header to indicate the chroma filter set used for the current slice. At the CTB level, if there is more than one chroma filter set in the APS, a filter set index may be signaled for each chroma CTB.

フィルタ係数は、128に等しいノルムで量子化されることができる。乗算の複雑さを低減するために、ビットストリーム適合性を適用して、非中央位置の係数値が-2 以上2 -1以下の範囲になるようにすることができる。一例では、中心位置係数はビットストリームでシグナリングされず、128に等しいと見なすことができる。 The filter coefficients can be quantized with a norm equal to 128. To reduce the multiplication complexity, bitstream conformance may be applied such that the coefficient values at non-center positions range from −2 7 to 2 7 −1 . In one example, the center position factor is not signaled in the bitstream and can be considered equal to 128.

いくつかの実施形態では、クリッピングインデックスおよびクリッピング値のシンタックスおよびセマンティクスは、以下のように定義される。 In some embodiments, the syntax and semantics of clipping index and clipping value are defined as follows.

alf_luma_clip_idx[sfIdx][j]は、sfIdxで示されるシグナリングされたルマフィルタのj番目の係数を乗算する前に使用するクリッピング値のクリッピングインデックスを指定するために使用されることができる。ビットストリーム適合性の要件は、alf_luma_clip_idx[sfIdx][j](sfIdx=0からalf_luma_num_filters_signalled_minus1およびj=0から11)の値が、0以上3以下の範囲内であるべきことを含み得る。 alf_luma_clip_idx[sfIdx][j] can be used to specify the clipping index of the clipping value to use before multiplying by the jth coefficient of the signaled luma filter denoted by sfIdx. Bitstream conformance requirements may include that the value of alf_luma_clip_idx[sfIdx][j] (sfIdx=0 to alf_luma_num_filters_signaled_minus1 and j=0 to 11) should be in the range from 0 to 3.

要素AlfClipL[adaptation_parameter_set_id][filtIdx][j](filtIdx=0からNumAlfFilters-1およびj=0から11)を持つルマフィルタクリッピング値AlfClipL[adaptation_parameter_set_id]は、bitDepthがBitDepthYに等しく設定され、clipIdxがalf_luma_clip_idx[alf_luma_coeff_delta_idx[filtIdx][j]に等しく設定されることに応じて、表2で指定されるように導出されることができる。 Luma filter clipping value AlfClipL[adaptation_parameter r_set_id], bitDepth is set equal to BitDepthY and clipIdx is set equal to alf_luma_clip_idx[ In response to being set equal to alf_luma_coeff_delta_idx[filtIdx][j], it can be derived as specified in Table 2.

alf_chroma_clip_idx[altIdx][j]は、インデックスaltIdxを持つ代替クロマフィルタのj番目の係数を乗算する前に使用するクリッピング値のクリッピングインデックスを指定するために使用されることができる。ビットストリーム適合性の要件は、alf_chroma_clip_idx[altIdx][j](altIdx=0からalf_chroma_num_alt_filters_minus1、j=0から5)の値が、0以上3以下の範囲内であるべきことを含み得る。 alf_chroma_clip_idx[altIdx][j] can be used to specify the clipping index of the clipping value to use before multiplying by the jth coefficient of the alternative chroma filter with index altIdx. Bitstream conformance requirements may include that the value of alf_chroma_clip_idx[altIdx][j] (altIdx=0 to alf_chroma_num_alt_filters_minus1, j=0 to 5) should be in the range from 0 to 3.

要素AlfClipC[adaptation_parameter_set_id][altIdx][j](altIdx=0からalf_chroma_num_alt_filters_minus1、j=0から5)を持つクロマフィルタクリッピング値AlfClipC[adaptation_parameter_set_id][altIdx]は、bitDepthがBitDepthCに等しく設定され、clipIdxがalf_chroma_clip_idx[altIdx][j]に等しく設定されることに応じて、表2で指定されるように導出されることができる。 chroma filter clipping value AlfClipC[adap tation_parameter_set_id][altIdx] has bitDepth set equal to BitDepthC and clipIdx set equal to alf_chroma_clip_idx Depending on being set equal to [altIdx][j], it can be derived as specified in Table 2.

一実施形態では、フィルタリングプロセスは以下のように説明されることができる。デコーダ側では、CTBに対してALFが有効である場合、CU(またはCB)内のサンプルR(i,j)がフィルタリングされることができ、その結果、以下で式(13)を用いて示されるように、フィルタリングされたサンプル値R’(i,j)が得られる。一例では、CUの各サンプルがフィルタリングされる。 In one embodiment, the filtering process can be described as follows. On the decoder side, if ALF is enabled for the CTB, the samples R(i,j) in the CU (or CB) can be filtered, so that the results are shown below using equation (13). A filtered sample value R'(i,j) is obtained as follows. In one example, each sample of the CU is filtered.


Figure 0007412443000027
Figure 0007412443000027

ここで、f(k,l)はデコードされたフィルタ係数を示し、K(x,y)はクリッピング関数であり、c(k,l)はデコードされたクリッピングパラメータ(またはクリッピング値)を示す。変数kおよびlは、-L/2とL/2の間で変化することができ、ここで、Lはフィルタ長を示す。クリッピング関数K(x,y)=min(y,max(-y,x))は、クリッピング関数Clip3(-y,y,x)に対応する。クリッピング関数K(x,y)を組み込むことで、ループフィルタリング法(例えばALF)は非線形プロセスとなり、非線形ALFと呼ばれることができる。 Here, f(k,l) indicates the decoded filter coefficient, K(x,y) is the clipping function, and c(k,l) indicates the decoded clipping parameter (or clipping value). The variables k and l can vary between -L/2 and L/2, where L indicates the filter length. Clipping function K(x,y)=min(y,max(-y,x)) corresponds to clipping function Clip3(-y,y,x). By incorporating the clipping function K(x,y), the loop filtering method (eg ALF) becomes a nonlinear process and can be called nonlinear ALF.

非線形ALFでは、複数セットのクリッピング値が表3に提供されることができる。一例では、ルマセットは、4つのクリッピング値{1024,181,32,6}を含み、クロマセットは、4つのクリッピング値{1024,161,25,4}を含む。ルマセットの4つのクリッピング値は、ルマブロックのサンプル値(10ビットでコード化されたもの)の全範囲(例えば、1024)を対数領域でほぼ均等に分割することで選択されることができる。クロマセットの場合、その範囲が4~1024となり得る。 For non-linear ALF, multiple sets of clipping values can be provided in Table 3. In one example, the luma set includes four clipping values {1024, 181, 32, 6}, and the chroma set includes four clipping values {1024, 161, 25, 4}. The four clipping values of the luma set can be selected by approximately evenly dividing the entire range (eg, 1024) of the luma block's sample values (encoded with 10 bits) in the logarithmic domain. For chroma sets, the range can be 4 to 1024.


Figure 0007412443000028
Figure 0007412443000028

選択されたクリッピング値は、次のように「alf_data」シンタックス要素でコード化されることができ、即ち、適切なエンコードスキーム(例えば、Golombエンコードスキーム)を使用して、表3に示すような選択されたクリッピング値に対応するクリッピングインデックスをエンコードすることができる。エンコードスキームは、フィルタセットインデックスをエンコードするために使用されるものと同じエンコードスキームであり得る。 The selected clipping value can be encoded in the "alf_data" syntax element as follows: A clipping index corresponding to the selected clipping value may be encoded. The encoding scheme may be the same encoding scheme used to encode the filter set index.

一実施形態では、仮想境界フィルタリングプロセスを使用して、ALFのラインバッファ要件を低減することができる。したがって、修正されたブロック分類およびフィルタリングが、CTU境界(例えば、水平CTU境界)付近のサンプルに対して採用され得る。仮想境界(1130)は、図11Aに示すように、水平CTU境界(1120)を「Nsamples」サンプルだけシフトすることにより、ラインとして定義されることができ、ここで、Nsamplesは正の整数であり得る。一例では、Nsamplesは、ルマ成分の場合は4に等しく、また、Nsamplesは、クロマ成分の場合は2に等しい。 In one embodiment, a virtual boundary filtering process may be used to reduce the ALF's line buffer requirements. Accordingly, modified block classification and filtering may be employed for samples near CTU boundaries (eg, horizontal CTU boundaries). The virtual boundary (1130) can be defined as a line by shifting the horizontal CTU boundary (1120) by “N samples ” samples, where N samples is a positive integer, as shown in FIG. 11A. It can be. In one example, N samples is equal to 4 for the luma component and N samples is equal to 2 for the chroma component.

図11Aを参照すると、修正されたブロック分類が、ルマ成分に対して適用され得る。一例では、仮想境界(1130)より上にある4×4ブロック(1110)の1次元ラプラシアン勾配計算のために、仮想境界(1130)より上のサンプルのみが使用される。同様に、図11Bを参照すると、CTU境界(1121)からシフトされた、仮想境界(1131)より下にある4×4ブロック(1111)の1次元ラプラシアン勾配計算のために、仮想境界(1131)より下のサンプルのみが使用される。活性度値Aの量子化は、1次元ラプラシアン勾配計算に使用されるサンプル数の減少を考慮に入れることで、適宜スケーリングされることができる。 Referring to FIG. 11A, a modified block classification may be applied to the luma component. In one example, only samples above the virtual boundary (1130) are used for the one-dimensional Laplacian gradient computation of the 4x4 block (1110) that is above the virtual boundary (1130). Similarly, referring to FIG. 11B, for the one-dimensional Laplacian gradient computation of the 4x4 block (1111) below the virtual boundary (1131), shifted from the CTU boundary (1121), the virtual boundary (1131) Only the lower samples are used. The quantization of the activity value A can be scaled appropriately by taking into account the reduction in the number of samples used for the one-dimensional Laplacian gradient calculation.

フィルタリングプロセスの場合、仮想境界での対称パディング操作を、ルマ成分とクロマ成分の両方に使用することができる。図12A~12Fは、仮想境界におけるルマ成分のこのように修正されたALFフィルタリングの例を示している。フィルタリングされるサンプルが仮想境界より下に位置する場合、仮想境界より上に位置する隣接サンプルをパディングすることができる。フィルタリングされるサンプルが仮想境界より上に位置する場合、仮想境界より下に位置する隣接サンプルをパディングすることができる。図12Aを参照すると、隣接サンプルC0は、仮想境界(1210)より下に位置するサンプルC2でパディングされることができる。図12Bを参照すると、隣接サンプルC0は、仮想境界(1220)より上に位置するサンプルC2でパディングされることができる。図12Cを参照すると、隣接サンプルC1~C3は、それぞれ、仮想境界(1230)より下に位置するサンプルC5~C7でパディングされることができる。図12Dを参照すると、隣接サンプルC1~C3は、それぞれ、仮想境界(1240)より上に位置するサンプルC5~C7でパディングされることができる。図12Eを参照すると、隣接サンプルC4~C8は、それぞれ、仮想境界(1250)より下に位置するサンプルC10、C11、C12、C11、およびC10でパディングされることができる。図12Fを参照すると、隣接サンプルC4~C8は、それぞれ、仮想境界(1260)より上に位置するサンプルC10、C11、C12、C11、およびC10でパディングされることができる。 For the filtering process, symmetric padding operations at virtual boundaries can be used for both luma and chroma components. 12A-12F illustrate examples of such modified ALF filtering of luma components at virtual boundaries. If the sample to be filtered is located below the virtual boundary, adjacent samples located above the virtual boundary may be padded. If the sample to be filtered is located above the virtual boundary, adjacent samples located below the virtual boundary may be padded. Referring to FIG. 12A, adjacent sample C0 may be padded with sample C2 located below the virtual boundary (1210). Referring to FIG. 12B, adjacent sample C0 may be padded with sample C2 located above the virtual boundary (1220). Referring to FIG. 12C, adjacent samples C1-C3 may be padded with samples C5-C7 located below the virtual boundary (1230), respectively. Referring to FIG. 12D, adjacent samples C1-C3 may be padded with samples C5-C7 located above the virtual boundary (1240), respectively. Referring to FIG. 12E, adjacent samples C4-C8 may be padded with samples C10, C11, C12, C11, and C10, respectively, located below the virtual boundary (1250). Referring to FIG. 12F, adjacent samples C4-C8 may be padded with samples C10, C11, C12, C11, and C10, respectively, located above the virtual boundary (1260).

いくつかの例では、サンプルおよび隣接サンプルが、仮想境界の左側(または右側)および右側(または左側)に位置する場合に、上記の説明を適切に適応させることができる。 In some examples, the above description may be suitably adapted when the sample and neighboring samples are located to the left (or right) and to the right (or left) of the virtual boundary.

ルマ成分またはクロマ成分に適用される式(12)は、式(12’)のように書き換えることができる。 Equation (12) applied to the luma component or chroma component can be rewritten as equation (12').


Figure 0007412443000029
Figure 0007412443000029

式(12’)から分かるように、ALFにおけるクリッピング値(例えば、AlfClip)は、ビット深度Bに依存する。さらに、クリッピング値は、2(B(1-n)/N)に依存している。一実施形態では、Nが指定された場合(例えば、N=4)、2(B(1-n)/N)は、ビット深度Bおよびクリッピングインデックス(n-1)に依存している。したがって、丸め前の2(B(1-n)/N)は2に比例せず、そして、式(12)または(12’)を使用してクリッピング値を決定することは、いくつかの実施形態では効率的ではない可能性がある。 As can be seen from equation (12'), the clipping value (eg, AlfClip) in ALF depends on the bit depth B. Furthermore, the clipping value depends on 2 B 2 (B(1-n)/N) . In one embodiment, if N is specified (eg, N=4), 2 (B(1-n)/N) depends on the bit depth B and the clipping index (n-1). Therefore, 2 B 2 (B(1-n)/N) before rounding is not proportional to 2 B , and determining the clipping value using equation (12) or (12') That embodiment may not be efficient.

本開示の態様は、フィルタリング(例えば、非線形ループフィルタリング)で使用されるクリッピング値を導出することを含む。ALFで使用されるクリッピング値(例えば、AlfClip)は、ビット深度Bおよびクリッピングインデックスに基づいて決定されることができる。本開示の態様によれば、クリッピング値のビット深度Bおよびクリッピングインデックスへの依存性は、コーディング効率を向上させるために分離されることができる。 Aspects of the present disclosure include deriving clipping values used in filtering (eg, nonlinear loop filtering). A clipping value (eg, AlfClip) used in ALF may be determined based on the bit depth B and the clipping index. According to aspects of the present disclosure, the dependence of clipping values on bit depth B and clipping index can be separated to improve coding efficiency.

クリッピング値は、クリッピングインデックスと関連付けることができる。クリッピング値は、第1の関数と第2の関数との乗算に基づくことができる。一実施形態では、クリッピング値は、第1の関数と第2の関数との乗算である複合関数によって決定されることができる。第1の関数は、ビット深度Bに依存することができ、クリッピングインデックスから独立しているため、クリッピングインデックスに依存しない。一例では、第1の関数は2に比例するため、コーディング効率を向上させる。第2の関数は、クリッピングインデックスに依存し、ビット深度Bから独立することができるため、ビット深度Bに依存しない。 A clipping value can be associated with a clipping index. The clipping value can be based on a multiplication of the first function and the second function. In one embodiment, the clipping value may be determined by a composite function that is a multiplication of a first function and a second function. The first function can depend on the bit depth B, which is independent of the clipping index, and therefore does not depend on the clipping index. In one example, the first function is proportional to 2 B , thus improving coding efficiency. The second function is independent of bit depth B because it depends on the clipping index and can be independent of bit depth B.

一実施形態では、式(14)を用いて、ルマCBおよびクロマCBのALFで使用されるクリッピング値(例えば、AlfClip)を導出することができる。 In one embodiment, equation (14) may be used to derive the clipping value (eg, AlfClip) used in the ALF of luma CB and chroma CB.


Figure 0007412443000030
Figure 0007412443000030

ここで、AlfClipはクリッピング値であり、BはALFの内部ビット深度または入力サンプルのビット深度を意味し、定数値αは非線形ALFフィルタの強度を制御する係数を意味し、mはクリッピングインデックスであり、Nは許容されるクリッピング値の数(例えば4)を示す。クリッピングインデックスmは、0、・・・およびN-1であり得る。定数値αは、2.1、2.2、2.3、2.4、2.5、2.6、2.7および2.8を含むことができるが、これらに限定されない。 Here, AlfClip is the clipping value, B means the internal bit depth of the ALF or the bit depth of the input sample, the constant value α means the coefficient that controls the strength of the nonlinear ALF filter, and m is the clipping index. , N indicates the number of allowed clipping values (for example, 4). Clipping index m may be 0, . . . and N-1. The constant value α can include, but is not limited to, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, and 2.8.

式(14)に示す一例では、第1の関数は2であり、第2の関数は2-α*mである。第1の関数は、ビット深度Bに依存しており、クリッピングインデックスmから独立している。したがって、第1の関数は、クリッピングインデックスmに依存しない。第2の関数は、クリッピングインデックスmに依存しており、ビット深度Bから独立している。したがって、第2の関数は、ビット深度Bに依存しない。値2B-α*mを丸めて(例えば、整数値に切り上げたり切り捨てたりして)、クリッピング値を生成することができる。 In the example shown in equation (14), the first function is 2 B and the second function is 2 −α*m . The first function depends on the bit depth B and is independent of the clipping index m. Therefore, the first function does not depend on the clipping index m. The second function depends on the clipping index m and is independent of the bit depth B. Therefore, the second function is independent of bit depth B. The value 2 B-α*m can be rounded (eg, rounded up or down to an integer value) to generate a clipping value.

ルマ成分(またはCB)とクロマ成分(またはCB)は、式(14)に示すような同じ関係を用いることができる。ルマCBの場合、定数値αは、第1の定数値であり得る。クロマCBの場合、定数値αは、第2の定数値であり得る。いくつかの例では、第1の定数値は、第2の定数値と同一である。いくつかの例では、第1の定数値は、第2の定数値とは異なる。 The same relationship as shown in equation (14) can be used for the luma component (or CB) and the chroma component (or CB). For luma CB, the constant value α may be the first constant value. For chroma CB, the constant value α may be a second constant value. In some examples, the first constant value is the same as the second constant value. In some examples, the first constant value is different than the second constant value.

クリッピング値とクリッピングインデックスとの関係は、上に示した式(14)のような方程式を用いて指定されることができる。また、この関係は、ルックアップテーブル(例えば、図13~14に示されるようなもの)などの他の適切な方法を用いて指定されることもできる。図13は、本開示の一実施形態による、クリッピング値とビット深度Bおよびクリッピングインデックスmとの関係を示す例示的なテーブルである。テーブル中のクリッピング値は、定数値αが2.3、Nが4である場合の式(14)に基づいて決定されることができる。一例では、このテーブルは、ルマCBに適用されることができ、クリッピング値は、ルマクリッピング値(例えば、AlfClip)と称することができる。 The relationship between clipping value and clipping index can be specified using an equation such as equation (14) shown above. This relationship may also be specified using other suitable methods, such as look-up tables (eg, as shown in FIGS. 13-14). FIG. 13 is an exemplary table illustrating the relationship between clipping values and bit depth B and clipping index m, according to one embodiment of the present disclosure. The clipping values in the table can be determined based on equation (14) where the constant value α is 2.3 and N is 4. In one example, this table can be applied to a luma CB and the clipping value can be referred to as a luma clipping value (eg, AlfClip L ).

図13を参照すると、クリッピングインデックス(例えば、clipIdx)が0である場合、式(14)を用いて決定されたクリッピング値は、式(13)を用いて決定されたクリッピング値と同一である。クリッピングインデックス(例えば、clipIdx)が1、2、または3である場合、式(14)を用いて決定されたクリッピング値(イタリック体で強調表示されている)は、式(13)を用いて決定されたクリッピング値(クロスアウトされている)とは異なる。例えば、bitDepthが8、clipIdxが1である場合、式(14)を用いて決定されたクリッピング値は52であり、式(13)を用いて決定されたクリッピング値は64である。 Referring to FIG. 13, if the clipping index (eg, clipIdx) is 0, the clipping value determined using equation (14) is the same as the clipping value determined using equation (13). If the clipping index (e.g., clipIdx) is 1, 2, or 3, the clipping value determined using equation (14) (highlighted in italics) is determined using equation (13). clipping value (crossed out). For example, when bitDepth is 8 and clipIdx is 1, the clipping value determined using equation (14) is 52, and the clipping value determined using equation (13) is 64.

図14は、本開示の一実施形態による、クリッピング値とビット深度Bおよびクリッピングインデックスmとの関係を示す例示的なテーブルである。テーブル中のクリッピング値は、定数値αが2.6、Nが4である場合の式(14)に基づいて決定される。一例では、図14のテーブルは、クロマCBに適用されることができ、クリッピング値は、クロマクリッピング値(例えば、AlfClip)と称することができる。 FIG. 14 is an example table illustrating the relationship between clipping values and bit depth B and clipping index m, according to one embodiment of the present disclosure. The clipping values in the table are determined based on equation (14) where the constant value α is 2.6 and N is 4. In one example, the table of FIG. 14 can be applied to chroma CB, and the clipping value can be referred to as a chroma clipping value (eg, AlfClip C ).

図14を参照すると、クリッピングインデックス(例えば、clipIdx)が0である場合、式(14)を用いて決定されたクリッピング値は、式(13)を用いて決定されたクリッピング値と同一である。クリッピングインデックス(例えば、clipIdx)が1、2、または3である場合、式(14)を用いて決定されたクリッピング値(イタリック体で強調表示されている)は、式(13)を用いて決定されたクリッピング値(クロスアウトされている)とは異なる。例えば、bitDepthが8、clipIdxが1である場合、式(14)を用いて決定されたクリッピング値は42であり、式(13)を用いて決定されたクリッピング値は64である。 Referring to FIG. 14, if the clipping index (eg, clipIdx) is 0, the clipping value determined using equation (14) is the same as the clipping value determined using equation (13). If the clipping index (e.g., clipIdx) is 1, 2, or 3, the clipping value determined using equation (14) (highlighted in italics) is determined using equation (13). clipping value (crossed out). For example, when bitDepth is 8 and clipIdx is 1, the clipping value determined using equation (14) is 42, and the clipping value determined using equation (13) is 64.

上述したように、ルマ成分(例えば、ルマCB)およびクロマ成分(例えば、クロマCB)は、式(14)によって導出される異なるクリッピング値を使用することができる。例えば、式(14)を用いてクリッピング値を導出する際に、図13に示すルマ成分の場合には定数値αは2.3となり、図14に示すクロマ成分の場合には定数値αは2.6となる。いくつかの例では、定数値αが2.3であると、ルマ成分について最適なコーディング効率が得られ、定数値αが2.6であると、クロマ成分について最適なコーディング効率が得られる。 As mentioned above, the luma component (eg, luma CB) and chroma component (eg, chroma CB) can use different clipping values derived by equation (14). For example, when deriving the clipping value using equation (14), the constant value α is 2.3 in the case of the luma component shown in FIG. 13, and the constant value α is 2.3 in the case of the chroma component shown in FIG. It becomes 2.6. In some examples, a constant value α of 2.3 provides optimal coding efficiency for the luma component, and a constant value α of 2.6 provides optimal coding efficiency for the chroma component.

上述したように、クリッピングインデックスは、例えば、クリッピングインデックスと対応するクリッピング値との関係に基づいて、対応するクリッピング値を決定するために使用されることができる。この関係は、事前定義され、デコーダに記憶されることができる。この関係は、事前定義されてデコーダに記憶され得るテーブル(例えば、図13~14に示されるようなもの)、方程式などによって記述されることができる。いくつかの例では、テーブル、および/または、方程式で使用されるパラメータ(例えば、ビット深度B、定数値α、N)がシグナリングされる。 As mentioned above, the clipping index can be used to determine the corresponding clipping value, for example, based on the relationship between the clipping index and the corresponding clipping value. This relationship can be predefined and stored in the decoder. This relationship can be described by a table (eg, as shown in FIGS. 13-14), an equation, etc. that can be predefined and stored in the decoder. In some examples, parameters used in the table and/or equations (eg, bit depth B, constant values α, N) are signaled.

式(14)を用いたALFクリッピング値の決定は、式(12)を用いた場合とは異なることがある。いくつかの違いを以下に示しており(イタリック体で強調表示されている)、また、取り消し線を付けたテキストが削除されたテキストを示す図13~14に示されたテーブルに示している。 Determining the ALF clipping value using equation (14) may be different than using equation (12). Some of the differences are illustrated below (highlighted in italics) and in the tables shown in Figures 13-14, where strikethrough text indicates deleted text.

alf_luma_clip_idx[sfIdx][j]は、sfIdxで示されるシグナリングされたルマフィルタのj番目の係数を乗算する前に使用する対応するクリッピング値のクリッピングインデックスを指定することができる。一例では、alf_luma_clip_idx[sfIdx][j](sfIdx=0..alf_luma_num_filters_signalled_minus1およびj=0..11)の値が、0以上3以下の範囲内であることが、ビットストリーム適合性の要件となる。 alf_luma_clip_idx[sfIdx][j] may specify the clipping index of the corresponding clipping value to use before multiplying by the jth coefficient of the signaled luma filter indicated by sfIdx. In one example, a requirement for bitstream compatibility is that the value of alf_luma_clip_idx[sfIdx][j] (sfIdx=0..alf_luma_num_filters_signaled_minus1 and j=0..11) is within the range of 0 to 3.

要素AlfClip[adaptation_parameter_set_id][filtIdx][j](filtIdx=0..NumAlfFilters-1およびj=0..11)を持つルマフィルタクリッピング値AlfClip[adaptation_parameter_set_id]は、例えば、bitDepthがBitDepthに等しく設定され、clipIdxがalf_luma_clip_idx[alf_luma_coeff_delta_idx[filtIdx]][j]に等しく設定されることに応じて、図13に示されるテーブルで指定されるように導出されることができる。 Luma filter clipping value with element AlfClip L [adaptation_parameter_set_id] [filtIdx] [j] (filtIdx=0..NumAlfFilters-1 and j=0..11) ramet_set_id], for example, if bitDepth is equal to BitDepth Y and clipIdx is set equal to alf_luma_clip_idx[alf_luma_coeff_delta_idx[filtIdx]][j], which can be derived as specified in the table shown in FIG.

alf_chroma_num_alt_filters_minus1+1は、クロマ成分の代替フィルタの数を指定することができる。 alf_chroma_num_alt_filters_minus1+1 can specify the number of alternative filters for the chroma component.

0に等しいalf_chroma_clip_flag[altIdx]は、インデックスaltIdxを持つクロマフィルタを使用する際に、クロマ成分に線形適応ループフィルタリングを適用することを指定でき、1に等しいalf_chroma_clip_flag[altIdx]は、インデックスaltIdxを持つクロマフィルタを使用する際に、クロマ成分に非線形適応ループフィルタリングを適用することを指定できる。存在しない場合、alf_chroma_clip_flag[altIdx]は0に等しいと推測されることができる。 alf_chroma_clip_flag[altIdx] equal to 0 can specify to apply linear adaptive loop filtering to the chroma component when using the chroma filter with index altIdx, and alf_chroma_clip_flag[altIdx] equal to 1 can specify that linear adaptive loop filtering is applied to the chroma component when using the chroma filter with index altIdx; When using a filter, you can specify that nonlinear adaptive loop filtering be applied to the chroma components. If not present, alf_chroma_clip_flag[altIdx] can be inferred to be equal to 0.

alf_chroma_coeff_abs[altIdx][j]は、インデックスaltIdxを持つ代替クロマフィルタのj番目のクロマフィルタ係数の絶対値を指定することができる。alf_chroma_coeff_abs[altIdx][j]が存在しない場合、0に等しいと推測されることができる。一例では、alf_chroma_coeff_abs[altIdx][j]の値が、0以上2-1以下の範囲内であることが、ビットストリーム適合性の要件となる。 alf_chroma_coeff_abs[altIdx][j] can specify the absolute value of the j-th chroma filter coefficient of the alternative chroma filter with index altIdx. If alf_chroma_coeff_abs[altIdx][j] is not present, it can be inferred to be equal to 0. In one example, a requirement for bitstream compatibility is that the value of alf_chroma_coeff_abs[altIdx][j] is within the range of 0 to 2 7 −1.

指数ゴロム二値化uek(v)の次数kは3に等しく設定されることができる。 The order k of the exponential Golomb binarization uek(v) can be set equal to three.

alf_chroma_coeff_sign[altIdx][j]は、インデックスaltIdxを持つ代替クロマフィルタのj番目のクロマフィルタ係数の符号を以下のように指定することができる。
alf_chroma_coeff_sign[altIdx][j]が0に等しい場合、対応するクロマフィルタ係数は正の値を持つことができる。
それ以外の場合(alf_chroma_coeff_sign[altIdx][j]が1に等しい場合)、対応するクロマフィルタ係数は負の値を持つことができる。
alf_chroma_coeff_sign[altIdx][j] can specify the sign of the j-th chroma filter coefficient of the alternative chroma filter with index altIdx as follows.
If alf_chroma_coeff_sign[altIdx][j] is equal to 0, the corresponding chroma filter coefficient can have a positive value.
Otherwise (if alf_chroma_coeff_sign[altIdx][j] is equal to 1), the corresponding chroma filter coefficient can have a negative value.

alf_chroma_coeff_sign[altIdx][j]が存在しない場合は、0に等しいと推測されることができる。 If alf_chroma_coeff_sign[altIdx][j] is not present, it can be inferred to be equal to 0.

要素AlfCoeff[adaptation_parameter_set_id][altIdx][j](altIdx=0..alf_chroma_num_alt_filters_minus1、j=0..5)を持つクロマフィルタ係数AlfCoeff[adaptation_parameter_set_id][altIdx]は、以下のように導出されることができる。 Chroma filter coefficient AlfCoeff C with element AlfCoeff C [adaptation_parameter_set_id] [altIdx] [j] (altIdx=0..alf_chroma_num_alt_filters_minus1, j=0..5) [adaptation_parameter_set_id][altIdx] shall be derived as follows: Can be done.

AlfCoeff[adaptation_parameter_set_id][altIdx][j]=alf_chroma_coeff_abs[altIdx][j]*(1-2*alf_chroma_coeff_sign[altIdx][j]) 式(15) AlfCoeff C [adaptation_parameter_set_id][altIdx][j]=alf_chroma_coeff_abs[altIdx][j]*(1-2*alf_chroma_coeff_sign[altIdx][ j]) Formula (15)

一例では、AlfCoeff[adaptation_parameter_set_id][altIdx][j](altIdx=0..alf_chroma_num_alt_filters_minus1、j=0..5)の値が、-2-1以上2-1以下の範囲内であることが、ビットストリーム適合性の要件となる。 In one example, the value of AlfCoeff C [adaptation_parameter_set_id] [altIdx] [j] (altIdx=0..alf_chroma_num_alt_filters_minus1, j=0..5) is -2 7 -1 or more 2 7 Must be within the range of -1 or less is a requirement for bitstream conformance.

alf_chroma_clip_idx[altIdx][j]は、インデックスaltIdxを持つ代替クロマフィルタのj番目の係数を乗算する前に使用するクリッピング値のクリッピングインデックスを指定することができる。一例では、alf_chroma_clip_idx[altIdx][j](altIdx=0..alf_chroma_num_alt_filters_minus1、j=0..5)の値が、0以上3以下の範囲内であることが、ビットストリーム適合性の要件となる。 alf_chroma_clip_idx[altIdx][j] can specify the clipping index of the clipping value to be used before multiplying by the j-th coefficient of the alternative chroma filter with index altIdx. In one example, a requirement for bitstream compatibility is that the value of alf_chroma_clip_idx[altIdx][j] (altIdx=0..alf_chroma_num_alt_filters_minus1, j=0..5) is within the range of 0 to 3.

要素AlfClip[adaptation_parameter_set_id][altIdx][j](altIdx=0..alf_chroma_num_alt_filters_minus1、j=0..5)を持つクロマフィルタのクリッピング値AlfClip[adaptation_parameter_set_id][altIdx]は、例えば、bitDepthがBitDepthに等しく設定され、clipIdxがalf_chroma_clip_idx[altIdx][j]に等しく設定されることに応じて、図13に示されるテーブルで指定されるように導出されることができる。 Clipping value AlfClip of the chroma filter with element AlfClip C [adaptation_parameter_set_id] [altIdx] [j] (altIdx=0..alf_chroma_num_alt_filters_minus1, j=0..5) C [adaptation_parameter_set_id] [altIdx], for example, if bitDepth is BitDepth C and clipIdx is set equal to alf_chroma_clip_idx[altIdx][j], which can be derived as specified in the table shown in FIG.

図15は、本開示の一実施形態によるプロセス(1500)を概説するフローチャートである。プロセス(1500)は、コード化ビデオシーケンスのピクチャにおけるCBを再構築するために使用されることができる。様々な実施形態において、プロセス(1500)は、端末装置(310)、(320)、(330)および(340)における処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1500)はソフトウェア命令で実装されるため、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1500)を実行する。このプロセスは、(S1501)で開始し、(S1510)に進む。 FIG. 15 is a flowchart outlining a process (1500) according to one embodiment of the present disclosure. Process (1500) may be used to reconstruct CBs in pictures of a coded video sequence. In various embodiments, the process (1500) includes processing circuitry in the terminal devices (310), (320), (330) and (340), processing circuitry that performs the functions of a video encoder (403), a video decoder (410). ), a processing circuit that performs the function of a video decoder (510), a processing circuit that performs the function of the video encoder (603), etc. In some embodiments, the process (1500) is implemented with software instructions, such that when the processing circuitry executes the software instructions, the processing circuitry executes the process (1500). This process starts at (S1501) and proceeds to (S1510).

(S1510)では、コード化ビデオシーケンスのピクチャにおけるCBのコード化情報をデコードすることができる。該コード化情報は、クリッピングインデックスmを示すことができる。クリッピングインデックスmは、CBに適用されるフィルタのクリッピング値を示すことができる。CB内の再構築サンプルは、フィルタによってフィルタリングされ得る。いくつかの例では、フィルタは、式(13)に対応する非線形ALFである。フィルタは、式(13)を参照して以上で説明したように、フィルタ係数(例えば、f(k,l))および対応するクリッピング値(例えば、c(k,l))によって特徴付けられることができる。例えば、フィルタは、(例えば、式(13)に示すように)クリッピング値に依存しているクリッピング関数(例えば、Clip3(-y,y,x))を含む。CBは、ルマCBまたはクロマCBであり得る。 In (S1510), coding information of CBs in pictures of the coded video sequence may be decoded. The encoded information may indicate a clipping index m. The clipping index m can indicate the clipping value of a filter applied to the CB. The reconstructed samples within the CB may be filtered by a filter. In some examples, the filter is a nonlinear ALF corresponding to equation (13). The filter may be characterized by a filter coefficient (e.g., f(k,l)) and a corresponding clipping value (e.g., c(k,l)), as described above with reference to equation (13). Can be done. For example, the filter includes a clipping function (eg, Clip3(-y, y, x)) that is dependent on the clipping value (eg, as shown in equation (13)). The CB can be a luma CB or a chroma CB.

フィルタリングプロセスは、ピクチャレベル、スライスレベル、CTBレベルなど、1つまたは複数の適切なレベルで制御され得る。いくつかの例では、クリッピングインデックスを示すコード化情報は、ピクチャのAPSにおいてピクチャレベルでシグナリングされる。APSでシグナリングされるコード化情報は、フィルタ係数とクリッピングインデックスとを含む少なくとも1つのシグナリングされたフィルタセットを含むことができる。また、フィルタセットインデックスは、例えば、CBにどのALFを使用するかを示すために、CTBに対してシグナリングされることができる。フィルタセットインデックスは、例えば、デコーダによって受信されることができる。フィルタセットインデックスに基づいて、フィルタは複数のフィルタセットから決定され、その後、CBに適用されることができる。いくつかの実施形態では、複数のフィルタセットは、少なくとも1つのシグナリングされたフィルタセットおよび複数の事前定義されたフィルタセットによって形成され得る。 The filtering process may be controlled at one or more suitable levels, such as picture level, slice level, CTB level, etc. In some examples, coded information indicating the clipping index is signaled at the picture level in the APS of the picture. The coded information signaled in the APS may include at least one signaled filter set including filter coefficients and clipping indices. Also, a filter set index can be signaled to the CTB, for example to indicate which ALF to use for the CB. The filter set index can be received by a decoder, for example. Based on the filter set index, a filter can be determined from multiple filter sets and then applied to the CB. In some embodiments, multiple filter sets may be formed by at least one signaled filter set and multiple predefined filter sets.

(S1520)では、クリッピングインデックスに関連付けられたクリッピング値(例えば、AlfClip、AlfClipL、またはAlfClipC)を決定することができる。クリッピング値は、第1の関数と第2の関数との乗算に基づくことができる。第1の関数は、ビット深度Bに依存することができ、クリッピングインデックスmから独立することができ、また、第2の関数は、クリッピングインデックスmに依存することができ、ビット深度Bから独立することができる。第1の関数は、2に比例することができるため、コーディング効率を向上させる。一実施形態では、クリッピング値は整数であり、第1の関数は2であり、第2の関数は2-αmであり、ここで、αはフィルタの強度に関連付けられる定数値である。一例では、クリッピング値(例えば、整数)は、2-αmに基づいて決められる。 At (S1520), a clipping value (eg, AlfClip, AlfClipL, or AlfClipC) associated with the clipping index may be determined. The clipping value can be based on a multiplication of the first function and the second function. The first function may depend on the bit depth B and may be independent of the clipping index m, and the second function may depend on the clipping index m and be independent of the bit depth B. be able to. The first function can be proportional to 2 B , thus improving coding efficiency. In one embodiment, the clipping values are integers, the first function is 2 B and the second function is 2 - αm , where α is a constant value associated with the strength of the filter. In one example, the clipping value (eg, an integer) is determined based on 2 B 2 −αm .

上述したように、一例では、クリッピング値は、2-αmの値を整数に丸めることに等しい。値2-αmを、整数(例えば、最も近い整数)に切り上げたり切り捨てたりして、クリッピング値を生成することができる。一例では、クリッピング値は2-αmを最も近い整数に丸めたものである。 As mentioned above, in one example, the clipping value is equal to rounding the value of 2 B 2 -αm to an integer. The value 2 B 2 −αm can be rounded up or down to an integer (eg, to the nearest integer) to generate a clipping value. In one example, the clipping value is 2 B 2 -αm rounded to the nearest integer.

ビット深度Bは、内部ビット深度、CB内の再構築サンプルのビット深度などであり得る。また、クリッピングインデックスmは、非負の整数であり得る。一例では、クリッピングインデックスは、0からクリッピングインデックスの許容されるクリッピング値の数N(例えば、4)までの範囲のうちの1つである。クリッピングインデックスは、0、...、(N-1)のうちの1つであり得る。一例では、Nは4であり、従って、クリッピングインデックスは、0、1、2、および3のうちの1つである。ビット深度Bおよび許容されるクリッピング値の数Nは、事前定義され、エンコーダおよび/またはデコーダに記憶されることができる。あるいは、ビット深度Bおよび/またはNは、デコーダにシグナリングされることができる。 The bit depth B may be the internal bit depth, the bit depth of the reconstructed samples within the CB, etc. Additionally, the clipping index m may be a non-negative integer. In one example, the clipping index is one of a range from 0 to the number of allowed clipping values of the clipping index N (eg, 4). The clipping index is 0, . .. .. , (N-1). In one example, N is 4, so the clipping index is one of 0, 1, 2, and 3. The bit depth B and the number N of allowed clipping values can be predefined and stored in the encoder and/or decoder. Alternatively, bit depth B and/or N can be signaled to the decoder.

定数値αは、CBがルマCBであることに基づく第1の定数値とすることができ、また、定数値αは、CBがクロマCBであることに基づく第2の定数値とすることができる。第1の定数値と第2の定数値は同一であっても異なっていてもよい。コーディング効率を向上させるために、第1の定数値および第2の定数値に最適値を使用することができる。一例では、第1の定数は、ルマCBについては2.3であり、第2の定数は、クロマCBについては2.6である。第1の定数値および/または第2の定数値は、事前定義され、エンコーダおよび/またはデコーダに記憶されることができる。あるいは、第1の定数値および/または第2の定数値は、デコーダにシグナリングされることができる。 The constant value α may be a first constant value based on the fact that the CB is a luma CB, and the constant value α may be a second constant value based on the fact that the CB is a chroma CB. can. The first constant value and the second constant value may be the same or different. Optimal values can be used for the first constant value and the second constant value to improve coding efficiency. In one example, the first constant value is 2.3 for luma CB and the second constant value is 2.6 for chroma CB. The first constant value and/or the second constant value may be predefined and stored in the encoder and/or decoder. Alternatively, the first constant value and/or the second constant value can be signaled to the decoder.

一実施形態では、クリッピング値は、クリッピング値とクリッピングインデックスとの間の関係に基づいて、クリッピングインデックスから決定されることができる。この関係は、クリッピング値が、第1の関数(例えば、2に比例する)と第2の関数との乗算によって決定されることを示すことができる。一例では、クリッピングインデックスmおよびビット深度Bに基づいてクリッピング値を決定するために、ルックアップテーブル(例えば、図13のルマCB用のテーブル、図14のクロマCB用のテーブル)を使用することができる。 In one embodiment, the clipping value can be determined from the clipping index based on a relationship between the clipping value and the clipping index. This relationship can indicate that the clipping value is determined by the multiplication of a first function (eg, proportional to 2 B ) and a second function. In one example, a lookup table (e.g., the table for luma CB in FIG. 13, the table for chroma CB in FIG. 14) may be used to determine the clipping value based on clipping index m and bit depth B. can.

(S1530)では、CBにフィルタを適用することにより、フィルタリングされたCBを生成することができる。 In (S1530), a filtered CB can be generated by applying a filter to the CB.

プロセス(1500)は、適切に適応されることができる。プロセス(1500)のステップは、変更および/または省略され得る。また、追加のステップを加えることができる。任意の適切な実装の順序を使用することができる。 Process (1500) can be adapted as appropriate. Steps of process (1500) may be modified and/or omitted. Also, additional steps can be added. Any suitable implementation order may be used.

以上で説明された技法は、コンピュータ読取可能な命令を使用するコンピュータソフトウェアとして実行され、1つまたは複数のコンピュータ読取可能な媒体に物理的に記憶されることができる。例えば、図16は、開示された主題の特定の実施形態を実行することに適したコンピュータシステム(1600)を示す。 The techniques described above can be implemented as computer software using computer-readable instructions and physically stored on one or more computer-readable media. For example, FIG. 16 depicts a computer system (1600) suitable for implementing certain embodiments of the disclosed subject matter.

コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、またはそのようなメカニズムを施されて、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)などによって直接、または解釈、マイクロコード実行などによって実行されることができる命令を含むコードを作成する任意の適切な機械コードまたはコンピュータ言語を用いてコード化されることができる。 Computer software may be assembled, compiled, linked, or subjected to such mechanisms to be directly or interpretably executed by one or more computer central processing units (CPUs), graphics processing units (GPUs), etc. can be encoded using any suitable machine code or computer language to create code that includes instructions that can be executed by, etc.

命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはそのコンポーネント上で実行されることができる。 The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, Internet of Things devices, and the like.

コンピュータシステム(1600)について、図16に示される例示的なコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関していかなる限定を示唆することも意図しない。コンポーネントの構成は、コンピュータシステム(1600)の例示的な実施形態で示されるコンポーネントのうちのいずれか1つ又は組み合わせに関する任意の依存性又は必要性を有するとして解釈されるべきではない。 The example components shown in FIG. 16 for computer system (1600) are exemplary in nature and do not suggest any limitations as to the scope of use or functionality of the computer software implementing embodiments of the present disclosure. That's not my intention either. The configuration of components should not be construed as having any dependency or requirement regarding any one or combination of components illustrated in the exemplary embodiment of computer system (1600).

コンピュータシステム(1600)は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(示されていない)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、静止画像カメラから取得される写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、人間による意識的な入力に必ずしも直接関係しない特定のメディアをキャプチャすることにも使用できる。 Computer system (1600) may include certain human interface input devices. Such human interface input devices include, for example, tactile input (keystrokes, swipes, data glove movements, etc.), audio input (voice, clap, etc.), visual input (gestures, etc.), olfactory input (not shown) can respond to input by one or more users. Human interface devices include audio (voices, music, environmental sounds, etc.), images (scanned images, photographic images obtained from still image cameras, etc.), video (2D video, 3D video including stereoscopic video, etc.), etc. It can also be used to capture specific media that is not necessarily directly related to conscious human input.

入力ヒューマンインターフェースデバイスは、キーボード(1601)、マウス(1602)、トラックパッド(1603)、タッチスクリーン(1610)、データグローブ(図示せず)、ジョイスティック(1605)、マイクフォン(1606)、スキャナ(1607)、カメラ(1608)(それぞれ1つのみ示されている)のうちの1つまたは複数を含み得る。 Input human interface devices include a keyboard (1601), mouse (1602), trackpad (1603), touch screen (1610), data glove (not shown), joystick (1605), microphone (1606), and scanner (1607). ), cameras (1608) (only one of each shown).

コンピュータシステム(1600)は、特定のヒューマンインターフェース出力デバイスをも含み得る。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音声、光、および嗅覚/味覚を介して1人以上のユーザの感覚を刺激し得る。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1610)、データグローブ(図示せず)、またはジョイスティック(1605)による触覚フィードバックがあるが、入力デバイスとして機能しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(スピーカ(1609)、ヘッドホン(示されていない)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1610)(それぞれタッチスクリーン入力能力を有するかもしくは有せず、それぞれ触覚フィードバック能力を有するかもしくは有しない。それらの一部は、ステレオグラフィック出力などの手段を介して、2次元の視覚出力または3次元以上の出力を出力することができる)、仮想現実眼鏡(示されていない)、ホログラフィックディスプレおよびスモークタンク(示されていない)など)、およびプリンタ(示されていない)を含み得る。 Computer system (1600) may also include certain human interface output devices. Such human interface output devices may stimulate one or more user's senses through, for example, tactile output, sound, light, and smell/taste. Such a human interface output device may include a tactile output device (e.g., a touch screen (1610), a data glove (not shown), or a tactile feedback device that has tactile feedback through a joystick (1605) but does not function as an input device). ), audio output devices (speakers (1609), headphones (not shown), etc.), visual output devices (screens (1610) including CRT screens, LCD screens, plasma screens, OLED screens (each including a touch screen) with or without input capability, with or without haptic feedback capability, respectively; some of them output two-dimensional visual output or output in three or more dimensions through means such as stereographic output; virtual reality glasses (not shown), holographic displays and smoke tanks (not shown), and printers (not shown).

コンピュータシステム(1600)は、人間がアクセス可能な記憶装置およびそれらの関連する媒体、例えば、CD/DVDなどの媒体(1621)付きのCD/DVD ROM/RW(1620)を含む光学媒体、サムドライブ(1622)、リムーバブルハードドライブまたはソリッドステートドライブ(1623)、テープやフロッピーディスクなどの従来の磁気媒体(示されていない)、セキュリティドングルなどの専用のROM/ASIC/PLDベースのデバイス(示されていない)などをも含むことができる。 The computer system (1600) includes human accessible storage devices and their associated media, e.g. optical media including CD/DVD ROM/RW (1620) with media (1621) such as CD/DVD, thumb drive, etc. (1622), removable hard drives or solid state drives (1623), traditional magnetic media such as tapes and floppy disks (not shown), and specialized ROM/ASIC/PLD-based devices such as security dongles (not shown). It can also include things such as "no".

ここで開示された主題に関連して使用される「コンピュータ読取可能な媒体」という用語は、送信媒体、搬送波、または他の一時的な信号を包含しないことをも当業者が理解するべきである。 Those skilled in the art should also understand that the term "computer-readable medium" as used in connection with the subject matter disclosed herein does not encompass transmission media, carrier waves, or other transitory signals. .

コンピュータシステム(1600)は、1つまたは複数の通信ネットワーク(1655)へのインターフェース(1654)をさらに含むことができる。ネットワークは、例えば、無線、有線、光学的であり得る。ネットワークは、さらに、ローカル、広域、大都市圏、車両用および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例は、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上放送TVを含むTV有線または無線広域デジタルネットワーク、CANBusを含む車両用や産業用などを含む。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(1649)(例えば、コンピューターシステム(1600)のUSBポートなど)に接続された外部ネットワークインターフェースアダプターを必要とする。他のものは一般に、以下で説明するようにシステムバスに接続することにより、コンピューターシステム(1600)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピューターシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを用いて、コンピュータシステム(1600)は、他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えばローカルまたはワイドエリアデジタルネットワークを用いる他のコンピュータシステムへの送信であり得る。特定のプロトコルおよびプロトコルスタックを上述したこれらのネットワークおよびネットワークインターフェースのそれぞれで使用することができる。 Computer system (1600) can further include an interface (1654) to one or more communication networks (1655). The network may be wireless, wired, optical, for example. Networks can also be local, wide-area, metropolitan, vehicular and industrial, real-time, delay-tolerant, etc. Examples of networks include local area networks such as Ethernet, wireless LAN, cellular networks including GSM, 3G, 4G, 5G, LTE, etc., TV wired or wireless wide area digital networks including cable TV, satellite TV, and terrestrial TV; Including vehicle use including CANBus, industrial use, etc. A particular network typically requires an external network interface adapter connected to a particular general purpose data port or peripheral bus (1649), such as a USB port on a computer system (1600). Others are typically integrated into the core of the computer system (1600) by connecting to the system bus as described below (e.g., an Ethernet interface to a PC computer system or a cellular network interface to a smartphone computer system). ). Using any of these networks, computer system (1600) can communicate with other entities. Such communications may be unidirectional, receive only (e.g. broadcast TV), unidirectional transmit only (e.g. CANbus to certain CANbus devices), or bidirectional, e.g. other networks using local or wide area digital networks. It may be a transmission to a computer system. Specific protocols and protocol stacks can be used with each of these networks and network interfaces mentioned above.

前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム(1600)のコア(1640)に接続されることができる。 The aforementioned human interface devices, human accessible storage, and network interfaces may be connected to the core (1640) of the computer system (1600).

コア(1640)は、1つまたは複数の中央処理装置(CPU)(1641)、グラフィックスプロセッシングユニット(GPU)(1642)、フィールドプログラマブルゲートエリア(FPGA)(1643)の形態での専用プログラマブル処理ユニット、特定のタスクのためのハードウェアアクセラレータ(1644)、グラフィックアダプタ(1650)などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(1645)、ランダムアクセスメモリ(1646)、非ユーザアクセス可能な内部ハードドライブ、SSDなどの内部大容量記憶装置(1647)とともに、システムバス(1648)を介して接続されてもよい。一部のコンピュータシステムでは、システムバス(1648)は、1つまたは複数の物理プラグの形態でアクセスでき、追加のCPU、GPUなどによる拡張を可能にする。周辺機器は、コアのシステムバス(1648)に直接、または周辺バス(1649)を介して接続されることができる。一例では、ディスプレイ(1610)は、グラフィックアダプタ(1650)に接続されることができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。 The core (1640) includes dedicated programmable processing units in the form of one or more central processing units (CPUs) (1641), graphics processing units (GPUs) (1642), and field programmable gate areas (FPGAs) (1643). , hardware accelerators (1644) for specific tasks, graphics adapters (1650), and the like. These devices connect the system bus (1648) along with internal mass storage (1647) such as read-only memory (ROM) (1645), random access memory (1646), non-user accessible internal hard drives, and SSDs. It may be connected via. In some computer systems, the system bus (1648) is accessible in the form of one or more physical plugs, allowing expansion with additional CPUs, GPUs, etc. Peripherals can be connected directly to the core's system bus (1648) or via a peripheral bus (1649). In one example, a display (1610) can be connected to a graphics adapter (1650). Peripheral bus architectures include PCI, USB, and the like.

CPU(1641)、GPU(1642)、FPGA(1643)、およびアクセラレータ(1644)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1645)またはRAM(1646)に記憶されることができる。推移データはRAM(1646)にも記憶できるが、永続データは、例えば、内部大容量ストレージ(1647)に記憶されることができる。1つまたは複数のCPU(1641)、GPU(1642)、大容量ストレージ(1647)、ROM(1645)、RAM(1646)などと密接に関連付けることができるキャッシュメモリを使用することにより、任意のメモリデバイスへの高速保存および検索が可能になる。 The CPU (1641), GPU (1642), FPGA (1643), and accelerator (1644) may combine to execute specific instructions that may constitute the aforementioned computer code. The computer code can be stored in ROM (1645) or RAM (1646). Transitional data may also be stored in RAM (1646), while persistent data may be stored, for example, in internal mass storage (1647). Any memory by using cache memory that can be closely associated with one or more CPUs (1641), GPUs (1642), mass storage (1647), ROM (1645), RAM (1646), etc. Allows for fast storage and retrieval on your device.

コンピュータ読取可能な媒体は、様々なコンピュータ実施操作を実行するためのコンピュータコードを備えることができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、もしくは、それらは、コンピュータソフトウェア技術の当業者に周知であって利用可能な種類のものであり得る。 The computer-readable medium can include computer code for performing various computer-implemented operations. The media and computer code may be specially designed and constructed for the purposes of this disclosure, or they may be of the type well known and available to those skilled in the computer software arts. obtain.

限定ではなく、一例として、アーキテクチャを有するコンピュータシステム(1600)、特にコア(1640)は、1つまたは複数の有形のコンピュータ読取可能な媒体に組み込まれたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果としての機能性を提供することができる。このようなコンピュータ読取可能な媒体は、以上で紹介したようにユーザがアクセス可能な大容量ストレージ、および、コア内部大容量ストレージ(1647)またはROM(1645)などの非一時的な性質を持つコア(1640)の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実行するソフトウェアは、このようなデバイスに記憶され、コア(1640)によって実行されることができる。コンピュータ読取可能な媒体は、特定の必要に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1640)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1646)に記憶されたデータ構造を定義すること、および、ソフトウェアで定義されたプロセスに従ってこのようなデータ構造を変更する言を含む、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または、代替として、コンピュータシステムは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するためにソフトウェアの代わりにまたは一緒に動作することができる回路(例えば、アクセラレータ(1644))に有線接続されたまたは組み込まれたロジックの結果としての機能性を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを含むことができ、その逆も同様である。コンピュータ読取可能な媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、またはその両方を含むことができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを含む。 By way of example and not limitation, a computer system (1600) having an architecture, and in particular a core (1640), may include a processor (CPU, GPU, FPGA) executing software embodied in one or more tangible computer-readable media. , accelerators, etc.). Such computer-readable media includes user-accessible mass storage as introduced above, and core internal mass storage (1647) or core memory of a non-transitory nature, such as ROM (1645). (1640) may be media associated with specific storage. Software implementing various embodiments of the present disclosure can be stored on such devices and executed by the core (1640). The computer-readable medium can include one or more memory devices or chips, depending on particular needs. The software defines the data structures stored in the RAM (1646) in the core (1640), specifically the processors therein (including CPUs, GPUs, FPGAs, etc.), and A particular process or a particular portion of a particular process described herein may be executed, including language that modifies such data structures in accordance with the process. In addition, or in the alternative, the computer system may include circuitry that can operate in place of or in conjunction with software to perform certain processes or certain portions of certain processes described herein, such as , accelerator (1644)) as a result of hard-wired or embedded logic. References to software can optionally include logic, and vice versa. Reference to a computer-readable medium includes, as appropriate, circuitry (such as an integrated circuit (IC)) that stores software for execution, circuitry that embodies logic for execution, or both. Can be done. This disclosure includes any suitable combination of hardware and software.

付録A:頭字語
JEM:Joint Exploration Model(共同探索モデル)
VVC:Versatile Video Coding(多用途ビデオコーディング)
BMS:Benchmark Set(ベンチマークセット)
MV:Motion Vector(動きベクトル)
HEVC:High Efficiency Video Coding(高効率ビデオコーディング)
MPM:most probable mode(最確モード)
WAIP:Wide-Angle Intra Prediction(広角イントラ予測)
SEI:Supplementary Enhancement Information(補助強化情報)
VUI:Video Usability Information(ビデオユーザビリティ情報)
GOP:Groups of Pictures(ピクチャ群)
TU:Transform Units(変換ユニット)
PU:Prediction Units(予測ユニット)
CTU:Coding Tree Units(コーディングツリーユニット)
CTB:Coding Tree Blocks(コーディングツリーブロック)
PB:Prediction Blocks(予測ブロック)
HRD:Hypothetical Reference Decoder(仮想参照デコーダ)
SDR:standard dynamic range(標準ダイナミックレンジ)
SNR:Signal Noise Ratio(信号対雑音比)
CPU:Central Processing Units(中央処理装置)
GPU:Graphics Processing Units(グラフィックスプロセッシングユニット)
CRT:Cathode Ray Tube(陰極線管)
LCD:Liquid-Crystal Display(液晶ディスプレイ)
OLED:Organic Light-Emitting Diode(有機発光ダイオード)
CD:Compact Disc(コンパクトディスク)
DVD:Digital Video Disc(デジタルビデオディスク)
ROM:Read-Only Memory(リードオンリーメモリ)
RAM:Random Access Memory(ランダムアクセスメモリ)
ASIC:Application-Specific Integrated Circuit(特定用途向け集積回路)
PLD:Programmable Logic Device(プログラマブルロジックデバイス)
LAN:Local Area Network(ローカルエリアネットワーク)
GSM:Global System for Mobile Communications(グローバルモバイル通信システム)
LTE:Long-Term Evolution(長期的な進化)
CANBus:Controller Area Network Bus(コントローラエリアネットワークバス)
USB:Universal Serial Bus(ユニバーサルシリアルバス)
PCI:Peripheral Component Interconnect(ペリフェラルコンポーネントインターコネクト)
FPGA:Field Programmable Gate Areas(フィールドプログラマブルゲートエリア)
SSD:Solid-State Drive(ソリッドステートドライブ)
IC:Integrated Circuit(集積回路)
CU:Coding Unit(コーディングユニット)
PDPC:Position Dependent Prediction Combination(位置依存イントラ予測組み合わせ)
ISP:Intra Sub-Partitions(イントラサブパーティション)
SPS:Sequence Parameter Setting(シーケンスパラメータセット)
Appendix A: Acronyms JEM: Joint Exploration Model
VVC: Versatile Video Coding
BMS: Benchmark Set
MV: Motion Vector
HEVC: High Efficiency Video Coding
MPM: most probable mode
WAIP: Wide-Angle Intra Prediction
SEI: Supplementary Enhancement Information
VUI: Video Usability Information
GOP: Groups of Pictures
TU: Transform Units
PU: Prediction Units
CTU: Coding Tree Units
CTB: Coding Tree Blocks
PB: Prediction Blocks
HRD: Hypothetical Reference Decoder
SDR: standard dynamic range
SNR: Signal Noise Ratio
CPU: Central Processing Units
GPU: Graphics Processing Units
CRT: Cathode Ray Tube
LCD: Liquid-Crystal Display
OLED: Organic Light-Emitting Diode
CD: Compact Disc
DVD: Digital Video Disc
ROM: Read-Only Memory
RAM: Random Access Memory
ASIC: Application-Specific Integrated Circuit
PLD: Programmable Logic Device
LAN: Local Area Network
GSM: Global System for Mobile Communications
LTE: Long-Term Evolution
CANBus: Controller Area Network Bus
USB: Universal Serial Bus
PCI: Peripheral Component Interconnect
FPGA: Field Programmable Gate Areas
SSD: Solid-State Drive
IC: Integrated Circuit
CU: Coding Unit
PDPC: Position Dependent Prediction Combination
ISP: Intra Sub-Partitions
SPS: Sequence Parameter Setting

本開示は一部の例示的な実施形態を説明してきたが、本開示の範囲内に含まれる変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書では明示的に示されていないか、または記載されていないが、本開示の原理を具現化し、その思想および範囲内に含まれる様々なシステムおよび方法を考案できることが理解されるであろう。 Although this disclosure has described some exemplary embodiments, there are alterations, permutations, and various alternative equivalents that fall within the scope of this disclosure. Accordingly, those skilled in the art will be able to devise various systems and methods not expressly shown or described herein, but which embody the principles of, and are within the spirit and scope of, the present disclosure. will be understood.

1648 システムバス
1650 グラフィックアダプタ
1654 ネットワークインターフェース
1648 system bus
1650 graphics adapter
1654 network interface

Claims (8)

デコーダにおけるビデオデコードのための方法であって、
コード化ビデオシーケンスのピクチャにおけるコーディングブロックのコード化情報をデコードするステップであって、前記コード化情報は、クリッピングインデックスmを示し、前記クリッピングインデックスmは、前記コーディングブロックに適用されるフィルタのクリッピング値を示す、ステップと、
前記クリッピングインデックスmに関連付けられる前記クリッピング値を決定するステップであって、前記クリッピング値は、第1の関数と第2の関数との乗算に基づくものであり、前記第1の関数は、ビット深度Bに依存し、かつ前記クリッピングインデックスmから独立しており、前記第2の関数は、前記クリッピングインデックスmに依存し、かつ前記ビット深度Bから独立しており、各前記クリッピングインデックスmに対する前記第2の関数は、Nから独立しており、前記Nは、前記クリッピング値を含む許容されるクリッピング値の総数である、ステップと、
前記クリッピング値に対応する前記フィルタを前記コーディングブロックに適用することにより、フィルタリングされたコーディングブロックを生成するステップと、
含み、
前記クリッピング値は、整数であり、
前記クリッピング値を決定する前記ステップは、2 -αm に基づいて前記クリッピング値を決定するステップを含み、前記第1の関数は2 であり、前記第2の関数は2 -αm であり、αは前記フィルタの強度に関連付けられる定数値であり、
前記定数値αは、前記コーディングブロックがルマコーディングブロックである場合、第1の定数値であり、前記定数値αは、前記コーディングブロックがクロマコーディングブロックである場合、前記第1の定数値と異なる第2の定数値である、ビデオデコードのための方法。
A method for video decoding in a decoder, the method comprising:
decoding coding information of a coding block in a picture of a coded video sequence, the coding information indicating a clipping index m, the clipping index m being a clipping value of a filter applied to the coding block; showing the steps and
determining the clipping value associated with the clipping index m, the clipping value being based on a multiplication of a first function and a second function, wherein the first function is based on a bit depth; B and independent of said clipping index m, said second function being dependent on said clipping index m and independent of said bit depth B, and said second function for each said clipping index m. 2 is independent of N, where N is the total number of allowed clipping values including the clipping value;
generating a filtered coding block by applying the filter corresponding to the clipping value to the coding block;
including;
the clipping value is an integer;
The step of determining the clipping value includes determining the clipping value based on 2 B 2 −αm , the first function is 2 B and the second function is 2 −αm . , α is a constant value associated with the strength of the filter,
The constant value α is a first constant value when the coding block is a luma coding block, and the constant value α is different from the first constant value when the coding block is a chroma coding block. The second constant value, the method for video decoding.
前記フィルタは、前記クリッピング値に依存するクリッピング関数を含む非線形適応ループフィルタである、請求項1に記載の方法。 2. The method of claim 1, wherein the filter is a nonlinear adaptive loop filter that includes a clipping function that depends on the clipping value. 前記クリッピングインデックスmは、0、1、2、および3のうちの1つである、請求項に記載の方法。 The method of claim 1 , wherein the clipping index m is one of 0, 1, 2, and 3. 前記第1の定数値は2.3であり、前記第2の定数値は2.6である、請求項に記載の方法。 2. The method of claim 1 , wherein the first constant value is 2.3 and the second constant value is 2.6. 前記クリッピングインデックスmを示す前記コード化情報は、前記ピクチャの適応パラメータセット(APS)でシグナリングされる、請求項1に記載の方法。 2. The method of claim 1, wherein the coding information indicating the clipping index m is signaled in an adaptive parameter set (APS) of the picture. 前記コーディングブロックに対するフィルタセットインデックスを受信するステップと、
前記フィルタセットインデックスに基づいて、複数のフィルタセットから前記フィルタを決定するステップと、をさらに含む、請求項に記載の方法。
receiving a filter set index for the coding block;
6. The method of claim 5 , further comprising determining the filter from a plurality of filter sets based on the filter set index.
ビデオデコードのための装置であって、
請求項1~のいずれか1項に記載の方法を実行するように構成される処理回路、
を備える装置。
A device for video decoding,
a processing circuit configured to carry out the method according to any one of claims 1 to 6 ;
A device comprising:
コンピュータに、請求項1~のいずれか1項に記載の方法を実行させるように構成されるプログラム。 A program configured to cause a computer to execute the method according to any one of claims 1 to 6 .
JP2021561991A 2019-09-06 2020-07-21 Method and apparatus for nonlinear loop filtering Active JP7412443B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962896997P 2019-09-06 2019-09-06
US62/896,997 2019-09-06
US16/924,845 2020-07-09
US16/924,845 US11140388B2 (en) 2019-09-06 2020-07-09 Method and apparatus for non-linear loop filtering
PCT/US2020/042884 WO2021045847A1 (en) 2019-09-06 2020-07-21 Method and apparatus for non-linear loop filtering

Publications (2)

Publication Number Publication Date
JP2022529354A JP2022529354A (en) 2022-06-21
JP7412443B2 true JP7412443B2 (en) 2024-01-12

Family

ID=74851330

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021561991A Active JP7412443B2 (en) 2019-09-06 2020-07-21 Method and apparatus for nonlinear loop filtering

Country Status (5)

Country Link
US (2) US11140388B2 (en)
EP (1) EP4026323A4 (en)
JP (1) JP7412443B2 (en)
CN (1) CN113748678B (en)
WO (1) WO2021045847A1 (en)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6546557B1 (en) * 1998-10-13 2003-04-08 General Instrument Corporation Method and system for enhancing digital video transmission to a set-top box
EP3220641B1 (en) * 2011-04-21 2019-01-02 HFI Innovation Inc. Method and apparatus for improved in-loop filtering
CN106851318B (en) * 2011-06-23 2019-01-08 华为技术有限公司 Deviate decoding apparatus, offset code device, image filtering device
US9083983B2 (en) * 2011-10-04 2015-07-14 Qualcomm Incorporated Motion vector predictor candidate clipping removal for video coding
US9282344B2 (en) * 2011-11-04 2016-03-08 Qualcomm Incorporated Secondary boundary filtering for video coding
US20130114688A1 (en) * 2011-11-07 2013-05-09 Louis Joseph Kerofsky Video Decoder with Constrained Dynamic Range
US10057574B2 (en) * 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
US20180091812A1 (en) * 2016-09-23 2018-03-29 Apple Inc. Video compression system providing selection of deblocking filters parameters based on bit-depth of video data
US11290715B2 (en) * 2017-11-29 2022-03-29 Electronics And Telecommunications Research Institute Image encoding/decoding method and device employing in-loop filtering
KR102435014B1 (en) * 2018-02-14 2022-08-23 돌비 레버러토리즈 라이쎈싱 코오포레이션 Image reshaping in video coding using rate distortion optimization

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Jianle Chen, et al.,"Algorithm description for Versatile Video Coding and Test Model 6 (VTM 6)",Document: JVET-O2002-v1, [online],JVET-O2002 (version 1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年08月15日,Pages 1-6 and 62-70,[令和4年11月21日検索], インターネット,<URL: https://jvet-experts.org/doc_end_user/current_document.php?id=7826> and <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O2002-v1.zip>.,(See document file "JVET-O2002-v1.docx" in the zip file "JVET-O2002-v1.zip".)
Sergey Ikonin, et al.,"Non-CE5: Non-linear ALF simplifications",Document: JVET-O0188-v2, [online],JVET-O0188 (version 2),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年07月06日,Pages 1-9,[令和4年11月21日検索], インターネット,<URL: https://jvet-experts.org/doc_end_user/current_document.php?id=6792> and <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0188-v2.zip>.,(See document file "JVET-O0188-v2.docx" in the zip file "JVET-O0188-v2.zip".)
Xuewei Meng, et al.,"Non-CE5: Unification of non-linear ALF luma/chroma clipping parameter",Document: JVET-O0437-v1, [online],JVET-O0437 (version 1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年06月26日,Pages 1-4,[令和4年11月21日検索], インターネット,<URL: https://jvet-experts.org/doc_end_user/current_document.php?id=7042> and <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0437-v1.zip>.,(See document file "JVET-O00437.docx" in the zip file "JVET-O0437-v1.zip".)

Also Published As

Publication number Publication date
CN113748678B (en) 2024-03-08
US20210385448A1 (en) 2021-12-09
JP2022529354A (en) 2022-06-21
WO2021045847A1 (en) 2021-03-11
US11140388B2 (en) 2021-10-05
EP4026323A4 (en) 2022-11-09
EP4026323A1 (en) 2022-07-13
US20210076031A1 (en) 2021-03-11
CN113748678A (en) 2021-12-03

Similar Documents

Publication Publication Date Title
JP7443455B2 (en) Method, apparatus and computer program for video decoding
JP7046220B2 (en) Methods, devices, and programs for predicting and transforming small blocks
JP7413577B2 (en) Video encoding/decoding method and apparatus
JP7405926B2 (en) Video encoding and decoding method, device, and computer program
KR20210114055A (en) Method and apparatus for cross-component filtering
JP7257516B2 (en) Method, apparatus and computer program for video coding
JP7343669B2 (en) Method and apparatus for color conversion in VVC
JP7502190B2 (en) Method and apparatus for video encoding and computer program product thereof
JP7297918B2 (en) Color conversion for video coding
JP2022515126A6 (en) Method, apparatus and computer program for video coding
JP7288078B2 (en) Method, Apparatus and Computer Program for Conveying Skip Mode Flag
JP7271675B2 (en) Video decoding method, apparatus, and program
JP7378608B2 (en) Video decoding methods, devices, and computer programs
JP2022510354A (en) Methods and equipment for the availability of adjacent blocks in video coding
JP2023138753A (en) Method and apparatus for decoding using unified position dependent prediction combination process, and computer program
JP7443559B2 (en) Method and apparatus for video coating
KR20220085836A (en) Video coding method and device
JP2024107165A (en) Improved MMVD signaling
JP7354273B2 (en) Video encoding method, device and computer program
JP7514325B2 (en) METHOD, APPARATUS, NON-TRANSITORY COMPUTER-READABLE STORAGE MEDIUM AND COMPUTER PROGRAM FOR VIDEO CODING - Patent application
JP7524347B2 (en) METHOD AND APPARATUS FOR VIDEO CODING AND COMPUTER PROGRAM - Patent application
JP2024516763A (en) Adaptive multiple transform set selection
JP2023510690A (en) Method and apparatus for video coding
JP7412443B2 (en) Method and apparatus for nonlinear loop filtering
JPWO2021207026A5 (en)

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211018

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230303

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231002

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20231012

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231226

R150 Certificate of patent or registration of utility model

Ref document number: 7412443

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150