JP2023549182A - 参照フレームの適応的な並べ替えのための方法および装置 - Google Patents

参照フレームの適応的な並べ替えのための方法および装置 Download PDF

Info

Publication number
JP2023549182A
JP2023549182A JP2023528027A JP2023528027A JP2023549182A JP 2023549182 A JP2023549182 A JP 2023549182A JP 2023528027 A JP2023528027 A JP 2023528027A JP 2023528027 A JP2023528027 A JP 2023528027A JP 2023549182 A JP2023549182 A JP 2023549182A
Authority
JP
Japan
Prior art keywords
block
coding
video
prediction
partitioning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023528027A
Other languages
English (en)
Inventor
ジャオ,リアン
ジャオ,シン
リウ,シャン
Original Assignee
テンセント・アメリカ・エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by テンセント・アメリカ・エルエルシー filed Critical テンセント・アメリカ・エルエルシー
Publication of JP2023549182A publication Critical patent/JP2023549182A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Abstract

本開示は、ビデオコーディング技術のための参照フレームを適応的に並べ替えることに関する。テンプレートマッチング(TM)は、空間参照動き情報(または空間動きベクトル)および/または時間参照動き情報(または時間動きベクトル)の動き情報を参照して、現在ブロックのテンプレートと参照ブロックのテンプレートとの間の差分を比較することによって、各ブロックについて参照フレームまたは参照フレームペアを並べ替えるために使用され得る。現在ブロックのテンプレートと参照ブロックのテンプレートとの間の差分は、空間参照動き情報および/または時間参照動き情報ごとに計算され、関連付けられた参照フレームまたは参照フレームペアのスコア値としてマークされ得る。利用可能な参照フレームまたは参照フレームペアは、スコア値に基づいてランク付けされる。

Description

[参照による援用]
本出願は、2021年9月22日に出願された「METHOD AND APPARATUS FOR ADAPTIVE REORDERING FOR REFERENCE FRAMES」と題する米国仮出願第63/247,088号の優先権を主張する、2022年9月15日に出願された「METHOD AND APPARATUS FOR ADAPTIVE REORDERING FOR REFERENCE FRAMES」と題する米国非仮出願第17/932,333号に基づき、その優先権の利益を主張するものであり、その各々は、参照によりその全体において本明細書に組み込まれる。
[技術分野]
本開示は、高度ビデオコーディング技術のセットについて説明する。より具体的には、開示される技術は、参照フレームを適応的に並べ替えることを含む。
本明細書で提供されるこの背景技術の説明は、本開示の文脈を一般的に提示するためのものである。現在名前が挙げられている発明者の研究は、その研究がこの背景技術のセクションに記載されている限りにおいて、本出願の出願時に従来技術として認定されていない説明の態様と同様に、本開示に対する従来技術として明示的にも暗示的にも認められない。
ビデオコーディングおよび復号は、動き補償を用いたインターピクチャ予測を使用して実行することができる。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプルおよび関連する完全なまたはサブサンプリングされたクロミナンスサンプルの空間次元を有する。一連のピクチャは、例えば、60ピクチャ/秒または60フレーム/秒の固定または可変ピクチャレート(代替的に、フレームレートと呼ばれる)を有することができる。非圧縮ビデオは、ストリーミングまたはデータ処理のための特定のビットレート要件を有する。例えば、ピクセル解像度が1920×1080で、フレームレートが60フレーム/秒で、クロマサブサンプリングが色チャネルあたり8ビット/ピクセルで4:2:0であるビデオは、1.5Gbit/秒に近い帯域幅を必要とする。このようなビデオの1時間には、600ギガバイト超の記憶空間が必要である。
ビデオコーディングおよび復号の1つの目的は、圧縮をより、非圧縮入力ビデオ信号の冗長性を低減することであり得る。圧縮は、前述の帯域幅および/または記憶空間要件を、場合によっては2桁以上低減するのに役立つことができる。ロスレス圧縮とロッシー圧縮の両方およびこれらの組合せを採用することができる。ロスレス圧縮は、元の信号の正確なコピーを、圧縮された元の信号から復号プロセスを介して再構成することができる技法を指す。ロッシー圧縮は、元のビデオ情報がコーディング中に完全には保持されず、復号中に完全には復元可能でないコーディング/復号プロセスを指す。ロッシー圧縮を使用するとき、再構成された信号は元の信号と同一ではないことがあるが、元の信号と再構成された信号との間の歪みは、いくらかの情報損失があるものの、再構成された信号を意図されたアプリケーションに有用にするのに十分に小さくされる。ビデオの場合、ロッシー圧縮は、多くのアプリケーションで広く採用されている。許容可能な歪みの量は、アプリケーションによって決まる。例えば、特定の消費者向けビデオストリーミングアプリケーションのユーザは、映画またはテレビ放送アプリケーションのユーザよりも高い歪みを許容し得る。特定のコーディングアルゴリズムによって達成可能な圧縮率は、様々な歪み許容度を反映するように選択または調整することができる。許容可能な歪みがより大きいと、一般に、より高い損失とより高い圧縮率とをもたらすコーディングアルゴリズムが可能になる。
ビデオエンコーダおよびデコーダは、例えば、動き補償、フーリエ変換、量子化、およびエントロピーコーディングを含む、いくつかの広いカテゴリおよびステップからの技法を利用することができる。
ビデオコーデック技術は、イントラコーディングとして知られる技法を含むことができる。イントラコーディングでは、サンプル値は、以前に再構成された参照ピクチャからのサンプルまたは他のデータを参照せずに表される。いくつかのビデオコーデックでは、ピクチャは、サンプルのブロックに空間的に細分される。サンプルのすべてのブロックがイントラモードでコーディングされるとき、そのピクチャは、イントラピクチャと呼ばれ得る。イントラピクチャおよび独立デコーダリフレッシュピクチャなどのそれらの派生物は、デコーダ状態をリセットするために使用することができ、したがって、コード化ビデオビットストリーム(coded video bitstream)およびビデオセッション中の第1のピクチャとして、または静止画像として使用することができる。次いで、イントラ予測後のブロックのサンプルは、周波数領域への変換を受けることができ、そのように生成された変換係数は、エントロピーコーディングの前に量子化することができる。イントラ予測は、変換前領域におけるサンプル値を最小化する技法を表す。場合によっては、変換後のDC値が小さいほど、またAC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップサイズにおいて必要とされるビット数が少なくなる。
例えば、MPEG-2世代コーディング技術から知られているような従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に隣接するものの符号化および/または復号中に取得され、かつ、イントラコーディングまたは復号されているデータのブロックに復号順序で先行する周囲のサンプルデータおよび/またはメタデータに基づいて、ブロックのコーディング/復号を試みる技法を含む。そのような技法は、以下、「イントラ予測」技法と呼ばれる。少なくともいくつかの場合には、イントラ予測は、再構成中の現在ピクチャからの参照データのみを使用し、他の参照ピクチャからの参照データは使用しないことに留意されたい。
イントラ予測には多くの異なる形態が存在し得る。所与のビデオコーディング技術においてそのような技法のうちの2つ以上が利用可能であるとき、使用中の技法は、イントラ予測モードと呼ばれ得る。特定のコーデックでは、1つまたは複数のイントラ予測モードが提供され得る。特定の場合、モードは、サブモードを有することができ、および/または様々なパラメータに関連付けられ得、ビデオのブロックのためのモード/サブモード情報およびイントラコーディングパラメータは、個々にコーディングされるか、または集合的にモードコードワードに含まれ得る。所与のモード、サブモード、および/またはパラメータの組合せにどのコードワードを使用すべきかについては、イントラ予測によるコーディング効率利得に影響を与える可能性があるので、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術にも影響を与える可能性がある。
イントラ予測の特定のモードは、H.264で紹介され、H.265で改良され、ジョイント探索モデル(JEM:joint exploration model)、多用途ビデオコーディング(VVC:versatile video coding)、およびベンチマークセット(BMS:benchmark set)などのより新しいコーディング技術においてさらに改良された。一般に、イントラ予測の場合、予測子ブロックは、利用可能になった隣接サンプル値を使用して形成され得る。例えば、特定の方向および/または線に沿った隣接サンプルの特定のセットの利用可能な値が予測子ブロックにコピーされ得る。使用中の方向への参照は、ビットストリーム中でコーディング可能であるか、またはそれ自体が予測され得る。
図1Aを参照すると、右下に示されているのは、H.265の33個の可能なイントラ予測子方向(H.265において定められている35個のイントラモードのうちの33個の角度モードに対応する)において定められている9つの予測子方向のサブセットである。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、101においてサンプルを予測するために隣接サンプルが使用される方向を表す。例えば、矢印(102)は、サンプル(101)が、水平方向から45度の角度で、1つまたは複数の隣接サンプルから右上に予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平方向から22.5度の角度で、1つまたは複数の隣接サンプルからサンプル(101)の左下に予測されることを示す。
引き続き図1Aを参すると、その左上には、4×4サンプルの正方形ブロック(104)(太い破線で示される)が示されている。正方形ブロック(104)は16個のサンプルを含み、その各々が、「S」と、Y次元におけるその位置(例えば、行インデックス)と、X次元におけるその位置(例えば、列インデックス)とでラベル付けされている。例えば、サンプルS21は、Y次元において(上から)2番目のサンプルであり、X次元において(左から)1番目のサンプルである。同様に、サンプルS44は、Y次元とX次元の両方においてブロック(104)中の4番目のサンプルである。ブロックはサイズが4×4サンプルであるので、S44は右下にある。同様の番号付け方式に従う例示的な参照サンプルがさらに示される。参照サンプルは、Rと、ブロック(104)に対するそのY位置(例えば、行インデックス)と、X位置(列インデックス)とでラベル付けされている。H.264およびH.265の両方において、再構成中のブロックに隣接する予測サンプルが使用される。
ブロック104のイントラピクチャ予測は、シグナリングされた予測方向にしたがって隣接サンプルから参照サンプル値をコピーすることによって開始し得る。例えば、コード化ビデオビットストリームが、このブロック104について、矢印(102)の予測方向を示すシグナリングを含む、すなわち、サンプルが、水平方向から45度の角度で、1つまたは複数の予測サンプルから右上に予測されると仮定する。そのような場合、サンプルS41、S32、S23、およびS14は、同じ参照サンプルR05から予測される。そして、サンプルS44が参照サンプルR08から予測される。
特定の場合、特に方向が45度によって均等に割り切れないとき、参照サンプルを計算するために、例えば、補間により、複数の参照サンプルの値が組み合わせられ得る。
ビデオコーディング技術が発展し続けるにつれて、可能な方向の数が増加している。例えば、H.264(2003年)では、イントラ予測のために9つの異なる方向が利用可能である。それが、H.265(2013年)では33に増加し、本開示の時点のJEM/VVC/BMSでは、最大65個の方向をサポートすることができる。最も適切なイントラ予測方向を識別するのを助けるために実験研究が行われており、エントロピーコーディングにおける特定の技法が、方向についての特定のビットペナルティを受け入れつつ、少ないビット数でそれらの最も適切な方向を符号化するために使用され得る。さらに、方向自体は、復号された隣接ブロックのイントラ予測で使用される隣接方向から予測されることもあり得る。
図1Bは、長い期間をかけて開発された様々な符号化技術における予測方向の数の増加を示すために、JEMによる65個のイントラ予測方向を示す概略図(180)を示す。
イントラ予測方向を表すビットをコード化ビデオビットストリーム中の予測方向にマッピングするための方法は、ビデオコーディング技術ごとに異なり得、例えば、予測方向のからイントラ予測モードへの単純な直接マッピングから、コードワード、最確モードを伴う複雑な適応方式、および同様の技法に及ぶことができる。しかしながら、すべての場合において、特定の他の方向よりもビデオコンテンツ内で発生する可能性が統計的に低いイントロ予測のための特定の方向が存在し得る。ビデオ圧縮の目標は冗長性の低減であるので、それらの可能性の低い方向は、よく設計されたビデオコーディング技術では、可能性の高い方向よりも多くのビット数によって表され得る。
インターピクチャ予測またはインター予測は、動き補償に基づき得る。動き補償では、以前に再構成されたピクチャまたはその一部(参照ピクチャ)からのサンプルデータは、動きベクトル(以下、MV)によって示される方向に空間的にシフトされた後、新たに再構成されたピクチャまたはピクチャ部分(例えば、ブロック)の予測に使用され得る。場合によっては、参照ピクチャは、現在再構成中のピクチャと同じであってもよい。MVは、2つの次元XおよびY、または3つの次元を有し得、第3の次元は、使用中の参照ピクチャの指示である(時間次元に類似する)。
いくつかのビデオ圧縮技法では、サンプルデータの特定のエリアに適用可能な現在のMVは、他のMVから、例えば、再構成中のエリアに空間的に隣接し、復号順序で現在のMVに先行するサンプルデータの他のエリアに関係するそれらの他のMVから予測可能である。そうすることで、相関されたMV中の冗長性を除去することに依拠することによって、MVをコーディングするために必要とされるデータの全体的な量を実質的に低減し、それによって、圧縮効率を高めることができる。MV予測は、効果的に機能することができる。というのも、例えば、カメラから導出された入力ビデオ信号(自然ビデオとして知られる)をコーディングするとき、単一のMVが適用可能であるエリアよりも大きいエリアがビデオシーケンスにおいて同様の方向に移動する統計的な可能性があるので、場合によっては、隣接エリアのMVから導出された同様の動きベクトルを使用して予測され得るからである。その結果、所与のエリアの実際のMVは、周囲のMVから予測されたMVと同様または同一になる。そのようなMVは、エントロピーコーディングの後に、MVが隣接MV(複数可)から予測されるのではなく直接コーディングされる場合に使用されたであろうビット数よりも少ないビット数で表され得る。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出される信号(すなわち、MV)のロスレス圧縮の例であり得る。他の場合、例えば、いくつかの周囲MVから予測子を計算するときの丸め誤差のために、MV予測自体が不可逆であり得る。
H.265/HEVC(ITU-T Rec. H.265,「High Efficiency Video Coding」,December 2016)には、様々なMV予測メカニズムが記載されている。H.265が規定する多くのMV予測メカニズムのうち、以下に説明するのは、以下「空間マージ」と呼ばれる技法である。
具体的には、図2を参照すると、現在ブロック(201)は、空間的にシフトされた同じサイズの前のブロックから予測可能であることが動き探索プロセス中にエンコーダによって発見されたサンプルを含む。そのMVを直接コーディングする代わりに、MVは、A0、A1、およびB0、B1、B2(それぞれ202~206)と示される5つの周囲サンプルのいずれか1つに関連付けられたMVを使用して、1つまたは複数の参照ピクチャに関連付けられたメタデータから、例えば(復号順序で)直近の参照ピクチャから導出され得る。H.265では、MV予測は、隣接ブロックが使用するのと同じ参照ピクチャからの予測子を使用することができる。
AOMedia Video 1(AV1)は、インターネットでのビデオ送信のために設計されたオープンビデオコーディングフォーマットである。これは、VP9のコードベース上に構築し、追加の技法を組み込むことによって、VP9の後継として開発された。AV1ビットストリーム仕様は、H.265または高効率ビデオコーディング(HEVC)規格または多用途ビデオコーディング(VVC)などの参照ビデオコーデックを含む。
本開示の実施形態は、ビデオコーディング技術のための参照フレームを適応的に並べ替えるための方法および装置を提供する。テンプレートマッチング(TM)は、空間参照動き情報(または空間動きベクトル)および/または時間参照動き情報(または時間動きベクトル)の動き情報を参照して、現在ブロックのテンプレートと参照ブロックのテンプレートとの間の差分を比較することによって、各ブロックについて参照フレームまたは参照フレームペアを並べ替えるために使用され得る。現在ブロックのテンプレートと参照ブロックのテンプレートとの間の差分は、空間参照動き情報および/または時間参照動き情報ごとに計算され、関連付けられた参照フレームまたは参照フレームペアのスコア値としてマークされ得る。利用可能な参照フレームまたは参照フレームペアは、スコア値に基づいてランク付けされる。
一実施形態では、テンプレートマッチング(TM)によって各ブロックについて参照フレームを並べ替えるための方法が提供され、本方法は、動き情報について、現在ブロックのテンプレートと参照ブロックのテンプレートとを比較するステップであって、動き情報は、空間参照動き情報または時間参照動き情報を含む、ステップと、現在ブロックのテンプレートと参照ブロックのテンプレートとの間の差分を計算するステップと、計算された差分に基づいて、関連付けられた参照フレームのスコア値を決定するステップと、決定されたスコアに基づいて参照フレームを並べ替えるステップとを含む。参照フレームは、参照フレームペアをさらに含む。TMは、現在ブロックの動き情報を精緻化するためのデコーダ側動きベクトル導出を含む。並べ替えるステップは、参照フレームの各々についてのスコア値に基づいて利用可能な参照フレームをランク付けするステップをさらに含む。複数の参照フレームのスコア値が同等であるとき、ランク付けするステップは、空間参照動き情報または時間参照動き情報の走査順序に対応する。複数の参照フレームのスコア値が同等であるとき、ランク付けするステップは、空間参照動き情報または時間参照動き情報において使用されるこれらの参照フレームの出現頻度に基づく。計算するステップは、差分絶対値和(SAD)、差分二乗和(SSD)、平均二乗誤差(MSE)、または差分変換絶対値和(SATD)のうちの少なくとも1つを含む。テンプレートは、上または左の隣接ブロックを含む。空間参照動き情報は、1つまたは複数の空間動きベクトルを含む。時間参照動き情報は、1つまたは複数の時間動きベクトルを含む。複数の動きベクトルが参照フレームのうちの1つを指しているとき、最小の差分を有する動きベクトルのうちの1つが、スコア値を決定するために使用される。参照フレームのうちの1つを指す動きベクトルがないとき、スコア値は、最大許容値であると決定される。許容された単方向および双方向の複合参照フレームは、TMを使用することによって一緒にランク付けされ、現在ブロックのための参照フレームのインデックスは、ビットストリーム中でシグナリングされる。許容された単一の参照フレームは、TMを使用することによって一緒にランク付けされ、現在ブロックのための参照フレームのインデックスは、ビットストリーム中でシグナリングされる。
いくつかの他の実施形態では、ビデオ情報を処理するためのデバイスが開示される。デバイスは、上記の方法実装形態のうちのいずれか1つを実行するように構成された回路を含み得る。
本開示の実施形態はまた、ビデオ復号および/または符号化のためにコンピュータによって実行されたとき、コンピュータに、ビデオ復号および/または符号化のための方法を実行させる命令を記憶した非一時的コンピュータ可読媒体を提供する。
開示される主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
イントラ予測方向モードの例示的なサブセットの概略図を示す。 例示的なイントラ予測方向の図を示す。 一例における動きベクトル予測のための現在ブロックおよびそれの周囲の空間マージ候補の概略図を示す。 例示的な実施形態による通信システム(300)の簡略化されたブロック図の概略図を示す。 例示的な実施形態による通信システム(400)の簡略化されたブロック図の概略図を示す。 例示的な実施形態によるビデオデコーダの簡略化されたブロック図の概略図を示す。 例示的な実施形態によるビデオエンコーダの簡略化されたブロック図の概略図を示す。 別の例示的な実施形態によるビデオエンコーダのブロック図を示す。 別の例示的な実施形態によるビデオデコーダのブロック図を示す。 本開示の例示的な実施形態によるコーディングブロックパーティショニングの方式を示す。 本開示の例示的な実施形態によるコーディングブロックパーティショニングの別の方式を示す。 本開示の例示的な実施形態によるコーディングブロックパーティショニングの別の方式を示す。 例示的なパーティショニング方式による、ベースブロックのコーディングブロックへの例示的なパーティショニングを示す。 例示的なターナリパーティショニング方式を示す。 例示的な四分木二分木コーディングブロックパーティショニング方式を示す。 本開示の例示的な実施形態による、コーディングブロックを複数の変換ブロックにパーティショニングするための方式と、変換ブロックのコーディング順序とを示す。 本開示の例示的な実施形態による、コーディングブロックを複数の変換ブロックにパーティショニングするための別の方式と、変換ブロックのコーディング順序とを示す。 本開示の例示的な実施形態による、コーディングブロックを複数の変換ブロックにパーティショニングするための別の方式を示す。 ブロックパーティショニングのための例示的なパーティションツリーを示す。 四分木プラス二分木(QTBT)構造のための例示的なパーティションおよびツリーを示す。 例示的な三分木パーティショニングを示す。 初期動きベクトル(MV)の周囲の探索エリア上の例示的なテンプレートマッチング(TM)を示す。 デコーダ側動きベクトル精緻化の例を示す。 例示的な空間動きベクトル探索パターンの例を示す。 本開示の例示的な実施形態による方法のフローチャートを示す。 本開示の例示的な実施形態によるコンピュータシステムの概略図を示す。
本明細書および特許請求の範囲全体を通して、用語は、明示的に述べられた意味を超えて文脈において示唆または暗示される微妙な意味を有し得る。本明細書で使用される「一実施形態では」または「いくつかの実施形態では」という表現は、必ずしも同じ実施形態を指すとは限らず、本明細書で使用される「別の実施形態では」または「他の実施形態では」という表現は、必ずしも異なる実施形態を指すとは限らない。同様に、本明細書で使用される「一実装形態では」または「いくつかの実装形態では」という表現は、必ずしも同じ実装形態を指すとは限らず、本明細書で使用される「別の実装形態では」または「他の実装形態では」という表現は、必ずしも異なる実装形態を指すとは限らない。例えば、特許請求される主題は、例示的な実施形態/実装形態の組合せを全体的にまたは部分的に含むことが意図される。
一般に、用語は、文脈における用法から少なくとも部分的に理解され得る。例えば、本明細書で使用される「および(and)」、「または(or)」、または「および/または(and/or)」などの用語は、そのような用語が使用される文脈に少なくとも部分的に依存し得る様々な意味を含み得る。典型的には、「または」は、A、B、またはCなどのリストを関連付けるために使用される場合、A、B、およびC(ここでは、包括的な意味で使用される)ならびにA、B、またはC(ここでは排他的な意味で使用される)を意味することが意図される。加えて、本明細書で使用される「1つまたは複数の」または「少なくとも1つの」という用語は、少なくとも部分的に文脈に応じて、任意の特徴、構造、または特性を単数の意味で説明するために使用されてもよいし、特徴、構造、または特性の組合せを複数の意味で説明するために使用されてもよい。同様に、「a」、「an」、または「the」などの用語も、この場合も同様に、少なくとも部分的に文脈に応じて、単数の用法を伝えるように、または複数の用法を伝えるように理解され得る。加えて、「~に基づいて(based on)」または「~によって決定される(determined by)」という用語は、必ずしも排他的な要因のセットを伝えることを意図するものではなく、代わりに、この場合も同様に、少なくとも部分的に文脈に応じて、必ずしも明示的に説明されていない追加の要因の存在を許容し得ることが理解され得る。
図3は、本開示の一実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信可能な複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末デバイス(310)および(320)の第1のペアを含む。図3の例では、端末デバイス(310)および(320)の第1のペアは、データの単方向送信を実行し得る。例えば、端末デバイス(310)は、ネットワーク(350)を介して他方の端末デバイス(320)に送信するために、(例えば、端末デバイス(310)によってキャプチャされたビデオピクチャのストリームの)ビデオデータをコーディングし得る。符号化ビデオデータ(encoded video data)は、1つまたは複数のコード化ビデオビットストリームの形態で送信され得る。端末デバイス(320)は、ネットワーク(350)からコード化ビデオデータ(coded video data)を受信し、コード化ビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータにしたがってビデオピクチャを表示し得る。単方向データ送信は、メディアサービングアプリケーションなどにおいて実装され得る。
別の例では、通信システム(300)は、例えばテレビ会議アプリケーション中に実装され得るコード化ビデオデータの双方向送信を実行する端末デバイス(330)および(340)の第2のペアを含む。データの双方向送信のために、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介した端末デバイス(330)および(340)のうちの他方の端末デバイスへの送信のために、(例えば、端末デバイスによってキャプチャされたビデオピクチャのストリームの)ビデオデータをコーディングし得る。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)のうちの他方の端末デバイスによって送信されたコード化ビデオデータを受信し得、コード化ビデオデータを復号してビデオピクチャを復元し得、復元されたビデオデータにしたがってアクセス可能なディスプレイデバイスにおいてビデオピクチャを表示し得る。
図3の例では、端末デバイス(310)、(320)、(330)、および(340)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして実装され得るが、本開示の基本原理の適用可能性は、そのように限定されなくてもよい。本開示の実施形態は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、ウェアラブルコンピュータ、専用ビデオ会議機器、および/または同様のものにおいて実装され得る。ネットワーク(350)は、端末デバイス(310)、(320)、(330)、および(340)の間でコード化ビデオデータを伝達する任意の数またはタイプのネットワークを表し、例えば、ワイヤライン(ワイヤード)通信ネットワークおよび/またはワイヤレス通信ネットワークを含む。通信ネットワーク(350)は、回線交換、パケット交換、および/または他のタイプのチャネルでデータを交換し得る。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットを含む。本説明の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジは、本明細書で明示的に説明されない限り、本開示の動作にとって重要でない場合がある。
図4に、開示される主題のアプリケーションの一例として、ビデオストリーミング環境におけるビデオエンコーダとビデオデコーダとの配置を示す。開示される主題は、例えば、ビデオ会議、デジタルTV放送、ゲーム、仮想現実、CD、DVD、メモリスティックなどを含むデジタル媒体上の圧縮ビデオの記憶などを含む、他のビデオアプリケーションなどにも等しく適用可能であり得る。
ビデオストリーミングシステムは、圧縮されていないビデオピクチャまたは画像のストリーム(402)を作成するためのビデオソース(401)、例えばデジタルカメラを含むことができるビデオキャプチャサブシステム(413)を含み得る。一例では、ビデオピクチャのストリーム(402)は、ビデオソース401のデジタルカメラによって記録されたサンプルを含む。符号化ビデオデータ(404)(またはコード化ビデオビットストリーム)と比較して高データ量であることを強調するために太線で示されるビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理することができる。ビデオエンコーダ(403)は、以下でより詳細に説明されるように、開示される主題の態様を可能にするかまたは実装するためのハードウェア、ソフトウェア、またはそれらの組合せを含むことができる。非圧縮ビデオピクチャのストリーム(402)と比較して低データ量であることを強調するために細線で示される符号化ビデオデータ(404)(または符号化ビデオビットストリーム(encoded video bitstream)(404))は、将来の使用のためにストリーミングサーバ(405)上に記憶されるか、または下流のビデオデバイス(図示せず)に直接記憶され得る。図4のクライアントサブシステム(406)および(408)などの1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、符号化ビデオデータ(404)のコピー(407)および(409)を取り出すことができる。クライアントサブシステム(406)は、例えば、電子デバイス(430)内にビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、符号化ビデオデータの到来コピー(407)を復号し、圧縮されておらず、ディスプレイ(412)(例えば、表示画面)または他のレンダリングデバイス(図示せず)上にレンダリングすることができるビデオピクチャの発信ストリーム(411)を作成する。ビデオデコーダ410は、本開示で説明する様々な機能の一部または全部を実行するように構成され得る。いくつかのストリーミングシステムでは、符号化ビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格にしたがって符号化され得る。それらの規格の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオコーディング規格は、非公式に多用途ビデオコーディング(VVC)として知られている。開示される主題は、VVCおよび他のビデオコーディング規格の文脈において使用され得る。
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)も含むことができる。
図5は、以下の本開示の任意の実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれ得る。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例におけるビデオデコーダ(410)の代わりに使用することができる。
受信機(531)は、ビデオデコーダ(510)によって復号されるべき1つまたは複数のコード化ビデオシーケンスを受信し得る。同じまたは別の実施形態では、1つのコード化ビデオシーケンスが一度に復号され得、ここで、各コード化ビデオシーケンスの復号は、他のコード化ビデオシーケンスから独立している。各ビデオシーケンスは、複数のビデオフレームまたは画像に関連付けられ得る。コード化ビデオシーケンスは、符号化ビデオデータを記憶する記憶デバイスまたは符号化ビデオデータを送信するストリーミングソースへのハードウェア/ソフトウェアリンクであり得るチャネル(501)から受信され得る。受信機(531)は、符号化ビデオデータを、それらのそれぞれの処理回路(図示せず)に転送され得る、コード化オーディオデータおよび/または補助データストリームなどの他のデータとともに受信し得る。受信機(531)は、コード化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(515)が、受信機(531)とエントロピーデコーダ/パーサ520)(以下、「パーサ(520)」)との間に配置され得る。特定のアプリケーションでは、バッファメモリ(515)は、ビデオデコーダ(510)の一部として実装され得る。他のアプリケーションでは、それは、ビデオデコーダ(510)の外部にあり、それとは別個であり得る(図示せず)。さらに他のアプリケーションでは、例えば、ネットワークジッタに対抗する目的で、ビデオデコーダ(510)の外部にバッファメモリ(図示せず)が存在することができ、例えば、再生タイミングを処理するために、ビデオデコーダ(510)の内部に別の追加のバッファメモリ(515)が存在し得る。受信機(531)が、十分な帯域幅および可制御性の記憶/転送デバイスから、またはアイソクロナスネットワーク(isosynchronous network)からデータを受信しているとき、バッファメモリ(515)は、必要とされない場合があるか、または小さくあり得る。インターネットなどのベストエフォート型パケットネットワーク上で使用するためには、十分なサイズのバッファメモリ(515)が必要とされ得、そのサイズは比較的大きくなり得る。そのようなバッファメモリは、適応サイズで実装され得、ビデオデコーダ(510)の外部のオペレーティングシステムまたは同様の要素(図示せず)において少なくとも部分的に実装され得る。
ビデオデコーダ(510)は、コード化ビデオシーケンスからシンボル(521)を再構成するためのパーサ(520)を含み得る。それらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、場合によっては、図5に示されるように、電子デバイス(530)の一体部分であってもなくてもよいが、電子デバイス(530)に結合され得るディスプレイ(512)(例えば、ディスプレイスクリーン)などのレンダリングデバイスを制御するための情報とを含む。レンダリングデバイス(複数可)のための制御情報は、補足エンハンスメント情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形態であり得る。パーサ(520)は、パーサ(520)によって受信されたコード化ビデオシーケンスを構文解析/エントロピー復号し得る。コード化ビデオシーケンスのエントロピーコーディングは、ビデオコーディング技術または規格に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト感度を伴うまたは伴わない算術コーディングなどを含む、様々な原理に従うことができる。パーサ(520)は、コード化ビデオシーケンスから、サブグループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダにおけるピクセルのサブグループのうちの少なくとも1つに関するサブグループパラメータのセットを抽出し得る。サブグループは、グループオブピクチャ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(520)はまた、コード化ビデオシーケンスから、変換係数(例えば、フーリエ変換係数)、量子化器パラメータ値、動きベクトルなどの情報を抽出し得る。
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピー復号/構文解析動作を実行し得る。
シンボルの再構成(521)は、コード化ビデオピクチャまたはその一部のタイプ(インターピクチャおよびイントラピクチャ、インターブロック、およびイントラブロックなど)、および他の要因に応じて、複数の異なる処理または機能ユニットを含むことができる。含まれるユニットおよびそれらがどのように含まれるかは、パーサ(520)によってコード化ビデオシーケンスから構文解析されるサブグループ制御情報によって制御され得る。パーサ(520)と以下の複数の処理または機能ユニットとの間のそのようなサブグループ制御情報の流れは、簡単にするために示されていない。
すでに述べた機能ブロックを超えて、ビデオデコーダ(510)は、以下で説明するように、いくつかの機能ユニットに概念的に細分され得る。商業的な制約の下で動作する実際の実装形態では、これらの機能ユニットの多くは、互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示される主題の様々な機能を明確に説明する目的で、機能ユニットへの概念的な細分が、以下の開示において採用される。
第1のユニットは、スケーラ/逆変換ユニット(551)を含み得る。スケーラ/逆変換ユニット(551)は、量子化された変換係数と制御情報とを受信し得、制御情報は、どのタイプの逆変換を使用すべきかを示す情報、ブロックサイズ、量子化因子/パラメータ、量子化スケーリング行列、およびパーサ(520)からのシンボル(複数可)(521)としてのライを含む。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力され得るサンプル値を含むブロックを出力することができる。
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構成されたピクチャからの予測情報は使用しないが、現在ピクチャの以前に再構成された部分からの予測情報は使用することができるブロックに関連し得る。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、すでに再構成され、現在ピクチャバッファ(558)に記憶されている周囲ブロック情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成し得る。現在ピクチャバッファ(558)は、例えば、部分的に再構成された現在ピクチャおよび/または完全に再構成された現在ピクチャをバッファリングする。アグリゲータ(555)は、いくつかの実装形態では、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供された出力サンプル情報に追加することができる。
他の場合、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、場合によっては動き補償されたブロックに関連し得る。そのような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、インターピクチャ予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(521)にしたがって、フェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力(ユニット551の出力は、残差サンプルまたは残差信号と呼ばれ得る)に追加され得る。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y成分(シフト)、および参照ピクチャ成分(時間)を有し得るシンボル(521)の形態で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御することができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているとき、参照ピクチャメモリ(557)からフェッチされるサンプル値の補間を含み得、また、動きベクトル予測機構などに関連付けられ得る。
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技法を受けることができる。ビデオ圧縮技術は、コード化ビデオシーケンス(コード化ビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるループ内フィルタ技術を含むことができるが、コード化ピクチャまたはコード化ビデオシーケンスの(復号順序で)前の部分の復号中に取得されたメタ情報に応答することもでき、前に再構成されループフィルタリングされたサンプル値に応答することもできる。いくつかのタイプのループフィルタが、以下でさらに詳細に説明するように、様々な順序でループフィルタユニット556の一部として含まれ得る。
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力されるとともに、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶されることができるサンプルストリームであり得る。
特定のコード化ピクチャは、完全に再構成されると、将来のインターピクチャ予測のための参照ピクチャとして使用することができる。例えば、現在ピクチャに対応するコード化ピクチャが完全に再構成され、コード化ピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部となることができ、次のコード化ピクチャの再構成を開始する前に、新たな現在ピクチャバッファを再割り当てすることができる。
ビデオデコーダ(510)は、ITU-T勧告H.265などの規格で採用されている所定のビデオ圧縮技術にしたがって復号動作を実行し得る。コード化ビデオシーケンスは、コード化ビデオシーケンスがビデオ圧縮技術または規格のシンタックスとビデオ圧縮技術または規格において文書化されたプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術または規格によって指定されたシンタックスに準拠し得る。具体的には、プロファイルは、そのプロファイルの下で使用するために利用可能な唯一のツールとして、ビデオ圧縮技術または規格において利用可能なすべてのツールから特定のツールを選択することができる。規格に準拠するために、コード化ビデオシーケンスの複雑さは、ビデオ圧縮技術または規格のレベルによって定義された範囲内であり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、メガサンプル/秒で測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD:Hypothetical Reference Decoder)仕様と、コード化ビデオシーケンス中でシグナリングされるHRDバッファ管理のためのメタデータとを通してさらに制限され得る。
いくつかの例示的な実施形態では、受信機(531)は、符号化ビデオ(encoded video)とともに追加の(冗長)データを受信し得る。追加のデータは、コード化ビデオシーケンス(複数可)の一部として含まれ得る。追加のデータは、データを適切に復号するために、および/または元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用され得る。追加データは、例えば、時間的、空間的、または信号雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、順方向誤り訂正符号などの形態であり得る。
図6は、本開示の例示的な実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれ得る。電子デバイス(620)は、送信機(640)(例えば、送信回路)をさらに含み得る。ビデオエンコーダ(603)は、図4の例におけるビデオエンコーダ(403)の代わりに使用することができる。
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるべきビデオ画像(複数可)をキャプチャし得る(図6の例では電子デバイス(620)の一部ではない)ビデオソース(601)からビデオサンプルを受信し得る。別の例では、ビデオソース(601)は、電子デバイス(620)の一部として実装され得る。
ビデオソース(601)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 YCrCb、RGB、XYZ…)、および任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形態で、ビデオエンコーダ(603)によってコーディングされるべきソースビデオシーケンスを提供し得る。メディアサービングシステムでは、ビデオソース(601)は、以前に準備されたビデオを記憶することができる記憶装置であり得る。テレビ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであり得る。ビデオデータは、連続して見たときに動きを与える複数の個々のピクチャまたは画像として提供され得る。ピクチャ自体は、ピクセルの空間アレイとして編成され得、ここで、各ピクセルは、使用されているサンプリング構造、色空間などに応じて1つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
いくつかの例示的な実施形態によれば、ビデオエンコーダ(603)は、リアルタイムでまたはアプリケーションによって要求される任意の他の時間制約の下で、ソースビデオシーケンスのピクチャをコーディングし、コード化ビデオシーケンス(643)に圧縮し得る。適切なコーディング速度を実施することは、コントローラ(650)の1つの機能を構成する。いくつかの実施形態では、コントローラ(650)は、以下に説明されるように、他の機能ユニットに機能的に結合され、それを制御し得る。結合は、簡単にするために示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技法のラムダ値、…)、ピクチャサイズグループオブピクチャ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成され得る。
いくつかの例示的な実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成され得る。単純化し過ぎた説明として、一例では、コーディングループは、(例えば、コーディングされるべき入力ピクチャと参照ピクチャ(複数可)とに基づいて、シンボルストリームなどのシンボルを作成することを担う)ソースコーダ(630)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(エントロピーコーディングにおけるシンボルとコード化ビデオビットストリームとの間の任意の圧縮は、開示される主題において考慮されるビデオ圧縮技術においてロスレスであり得るので)埋め込みデコーダ633がエントロピーコーディングなしにソースコーダ630によるコード化ビデオストリームを処理したとしても、(リモート)デコーダが作成するのと同様の方法でサンプルデータを作成するためにシンボルを再構成する。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダの位置(ローカルまたはリモート)とは無関係にビット精度(bit-exact)の結果をもたらすので、参照ピクチャメモリ(634)内のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット精度である。言い換えると、エンコーダの予測部分は、復号中に予測を使用するときにデコーダが「見る」であろうものと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、例えばチャネルエラーのために同期性が維持できない場合には、結果として得られるドリフト)のこの基本原理は、コーディング品質を改善するために使用される。
「ローカル」デコーダ(633)の動作は、図5に関連して上記ですでに詳細に説明したビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得る。しかしながら、図5も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)によるコード化ビデオシーケンスへのシンボルの符号化/復号がロスレスであり得るので、バッファメモリ(515)およびパーサ(520)を含むビデオデコーダ(510)のエントロピー復号部分は、エンコーダ内のローカルデコーダ(633)内に完全には実装されないことがある。
この時点で行うことができる観察は、デコーダ内にのみ存在し得る構文解析/エントロピー復号を除く任意のデコーダ技術もまた必然的に、対応するエンコーダ内に、実質的に同一の機能的形態で存在する必要があり得ることである。この理由のために、開示される主題は、時には、エンコーダの復号部分に関連するデコーダ動作に焦点を当て得る。したがって、エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるので、省略することができる。特定の領域または態様においてのみ、エンコーダのより詳細な説明が以下に提供される。
いくつかの例示的な実装形態における動作中に、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする動き補償予測コーディングを実行し得る。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャへの予測参照(複数可)として選択され得る参照ピクチャ(複数可)のピクセルブロックとの間の色チャネルにおける差分(または残差)をコーディングする。「残差(residue)」という用語およびその形容詞形態「残差の(residual)」は、互換的に使用され得る。
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコード化ビデオデータを復号し得る。コーディングエンジン(632)の動作は、有利には、ロッシープロセスであり得る。コード化ビデオデータがビデオデコーダ(図6に図示せず)において復号され得るとき、再構成されたビデオシーケンスは、典型的に、いくつかのエラーを有するソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得る復号プロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させ得る。このようにして、ビデオエンコーダ(603)は、遠端(リモート)ビデオデコーダによって取得される再構成された参照ピクチャと共通のコンテンツを有する再構成された参照ピクチャのコピーをローカルに記憶し得る(送信エラーなし)。
予測器(635)は、コーディングエンジン(632)の予測検索を実行し得る。すなわち、コーディングされるべき新しいピクチャに対して、予測器(635)は、新しいピクチャに対する適切な予測参照として機能し得る、(候補参照ピクセルブロックとしての)サンプルデータ、または参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを求めて参照ピクチャメモリ(634)を検索し得る。予測器(635)は、適切な予測参照を見つけるために、予測器(635)は、適切な予測参照を見つけるために、サンプルブロックごとにピクセルブック単位で(on a sample block-by-pixel block basis)動作し得る。場合によっては、予測器(635)によって取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有し得る。
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理し得る。
前述したすべての機能ユニットの出力は、エントロピーコーダ645におけるエントロピーコーディングを受け得る。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術にしたがってシンボルをロスレス圧縮することによって、様々な機能ユニットによって生成されたシンボルをコード化ビデオシーケンスに変換する。
送信機(640)は、符号化ビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る通信チャネル(660)を介した送信に備えるために、エントロピーコーダ(645)によって作成されたコード化ビデオシーケンス(複数可)をバッファし得る。送信機(640)は、ビデオコーダ(603)からのコード化ビデオデータを、送信されるべき他のデータ、例えば、コード化オーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージし得る。
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理し得る。コーディングの間、コントローラ(650)は、各コード化ピクチャに特定のコード化ピクチャタイプを割り当て得、これは、それぞれのピクチャに適用され得るコーディング技法に影響を与え得る。例えば、ピクチャは、しばしば、以下のピクチャタイプのうちの1つとして割り当てられ得る。
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス中の他のピクチャを使用することなくコーディングおよび復号され得るものであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを可能にする。当業者は、Iピクチャのそれらの変形例、ならびにそれらのそれぞれの用途および特徴を知っている。
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために多くとも1つの動きベクトルと参照インデックスとを使用するイントラ予測またはインター予測を使用してコーディングおよび復号され得るものであり得る。
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために多くとも2つの動きベクトルと参照インデックスとを使用するイントラ予測またはインター予測を使用してコーディングおよび復号され得るものであり得る。同様に、多重予測ピクチャは、単一のブロックの再構成のために2つよりも多い参照ピクチャおよび関連するメタデータを使用することができる。
ソースピクチャは、一般に、複数のサンプルコーディングブロック(例えば、各々4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分され、ブロック単位でコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(すでにコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされ得るか、または、同じピクチャのすでにコーディングされたブロックを参照して予測的にコーディングされ得る(空間予測またはイントラ予測)。Pピクチャのピクセルブロックは、1つの以前にコーディングされた参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコーディングされ得る。Bピクチャのブロックは、1つまたは2つの以前にコーディングされた参照ピクチャを参照して、空間予測を介してまたは時間予測を介して、予測的にコーディングされ得る。ソースピクチャまたは中間処理されたピクチャは、他の目的のために他のタイプのブロックに細分され得る。コーディングブロックおよび他のタイプのブロックの分割は、以下でさらに詳細に説明するように、同じ方法に従うことも従わないこともある。
ビデオエンコーダ(603)は、ITU-T勧告H.265などの所定のビデオコーディング技術または規格にしたがってコーディング動作を実行し得る。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的冗長性および空間的冗長性を利用する予測コーディング動作を含む様々な圧縮動作を実行し得る。したがって、コード化ビデオデータは、使用されているビデオコーディング技術または規格によって指定されたシンタックスに準拠し得る。
いくつかの例示的な実施形態では、送信機(640)は、符号化ビデオとともに追加のデータを送信し得る。ソースコーダ(630)は、そのようなデータをコード化ビデオシーケンスの一部として含み得る。追加のデータは、時間/空間/SNRエンハンスメントレイヤ、冗長ピクチャおよびスライスなどの他の形態の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含み得る。
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(多くの場合、イントラ予測と略される)は、所与のピクチャにおける空間的相関を利用し、インターピクチャ予測は、ピクチャ間の時間的または他の相関を利用する。例えば、現在ピクチャと呼ばれる、符号化/復号中の特定のピクチャは、ブロックにパーティショニングされ得る。現在ピクチャ中のブロックは、ビデオ中の、以前にコーディングされ、依然としてバッファされている参照ピクチャ中の参照ブロックと同様であるとき、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ中の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
いくつかの例示的な実施形態では、インターピクチャ予測のために双予測技法を使用することができる。そのような双予測技法によれば、両方とも復号順序でビデオ中の現在ピクチャに先行する(ただし、表示順序ではそれぞれ過去または未来でもよい)第1の参照ピクチャおよび第2の参照ピクチャなど、2つの参照ピクチャが使用される。現在ピクチャ中のブロックは、第1の参照ピクチャ中の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ中の第2の参照ブロックを指す第2の動きベクトルとによってコーディングされ得る。ブロックは、第1の参照ブロックおよび第2の参照ブロックの組合せによって共同で予測され得る。
また、コーディング効率を高めるためにインターピクチャ予測でマージモード(merge mode)技法が使用され得る。
本開示のいくつかの例示的な実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、ビデオピクチャのシーケンス中のピクチャは、圧縮のためにコーディングツリーユニット(CTU)にパーティショニングされ、ピクチャ中のCTUは、64×64ピクセル、32×32ピクセル、または16×16ピクセルなど、同じサイズを有し得る。一般に、CTUは、3つの並列コーディングツリーブロック(CTB)、すなわち、1つのルーマCTBと2つのクロマCTBとを含み得る。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割され得る。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、または32×32ピクセルの4つのCUに分割され得る。32×32ブロックのうちの1つまたは複数の各々は、16×16ピクセルの4つのCUにさらに分割され得る。いくつかの例示的な実施形態では、各CUは、インター予測タイプまたはイントラ予測タイプなどの様々な予測タイプの中からそのCUの予測タイプを決定するために、符号化中に分析され得る。CUは、時間的および/または空間的予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割され得る。一般に、各PUは、1つのルーマ予測ブロック(PB)と、2つのクロマPBとを含む。一実施形態では、コーディング(符号化/復号)時の予測動作は、予測ブロック単位で行われる。CUのPU(または異なる色チャネルのPB)への分割は、様々な空間パターンで実行され得る。例えば、ルーマまたはクロマPBは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8サンプルなど、サンプルの値(例えば、ルーマ値)の行列を含み得る。
図7は、本開示の別の例示的な実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンスにおける現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コード化ビデオシーケンスの一部であるコード化ピクチャに符号化するように構成される。例示的なビデオエンコーダ(703)は、図4の例におけるビデオエンコーダ(403)の代わりに使用され得る。
例えば、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどの処理ブロックのサンプル値の行列を受信する。次いで、ビデオエンコーダ(703)は、イントラモード、インターモード、または双予測モードのどれを使用することで処理ブロックが最良にコーディングされるかを、例えば、レート歪み最適化(RDO)を使用して、決定する。処理ブロックがイントラモードでコーディングされると決定されたとき、ビデオエンコーダ(703)は、イントラ予測技法を使用して、処理ブロックをコード化ピクチャに符号化し得、処理ブロックがインターモードまたは双予測モードでコーディングされると決定されたとき、ビデオエンコーダ(703)は、それぞれインター予測技法または双予測技法を使用して、処理ブロックをコード化ピクチャに符号化し得る。いくつかの例示的な実施形態では、マージモードは、インターピクチャ予測のサブモードとして使用され得、ここで、動きベクトルは、1つまたは複数の動きベクトル予測子から、その予測子の外側のコード化動きベクトル成分の利益なしに、導出される。いくつかの他の例示的な実施形態では、対象ブロックに適用可能な動きベクトル成分が存在し得る。したがって、ビデオエンコーダ(703)は、処理ブロックの予測モードを決定するために、モード決定モジュールなどの、図7に明示的に示されていない構成要素を含み得る。
図7の例では、ビデオエンコーダ(703)は、図7の例示的な構成に示すように互いに結合された、インターエンコーダ(730)と、イントラエンコーダ(722)と、残差計算器(723)と、スイッチ(726)と、残差エンコーダ(724)と、統括コントローラ(721)と、エントロピーエンコーダ(725)とを含む。
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを参照ピクチャ内の1つまたは複数の参照ブロック(例えば、表示順序で前のピクチャおよび後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技法による冗長情報の記述、動きベクトル、マージモード情報)を生成し、任意の適切な技法を使用してインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、(以下でさらに詳細に説明するように、図7の残差デコーダ728として示される)図6の例示的なエンコーダ620に埋め込まれた復号ユニット633を使用して、符号化ビデオ情報に基づいて復号された復号参照ピクチャである。
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを同じピクチャ内のすでにコーディングされたブロックと比較し、変換後に量子化係数を生成し、また、場合によっては、イントラ予測情報(例えば、1つまたは複数のイントラ符号化技法によるイントラ予測方向情報)を生成するように構成される。イントラエンコーダ(722)は、イントラ予測情報および同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算し得る。
統括コントローラ(721)は、統括制御データ(general control data)を決定し、統括制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成され得る。一例では、統括コントローラ(721)は、ブロックの予測モードを決定し、予測モードに基づいてスイッチ(726)に制御信号を提供する。例えば、予測モードがイントラモードである場合、統括コントローラ(721)は、残差計算器(723)による使用のためにイントラモード結果を選択するようにスイッチ(726)を制御し、イントラ予測情報を選択してイントラ予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御し、ブロックの予測モードがインターモードである場合、統括コントローラ(721)は、残差計算器(723)による使用のためにインター予測結果を選択するようにスイッチ(726)を制御し、インター予測情報を選択してインター予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御する。
残差計算器(723)は、受信されたブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択されたブロックについての予測結果との間の差分(残差データ)を計算するように構成され得る。残差エンコーダ(724)は、残差データを符号化して変換係数を生成するように構成され得る。例えば、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換して変換係数を生成するように構成され得る。次いで、変換係数は、量子化された変換係数を取得するために量子化処理を受ける。様々な例示的な実施形態では、ビデオエンコーダ(703)は、残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、復号された残差データを生成するように構成される。復号された残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用することができる。例えば、インターエンコーダ(730)は、復号された残差データおよびインター予測情報に基づいて、復号されたブロックを生成することができ、イントラエンコーダ(722)は、復号された残差データおよびイントラ予測情報に基づいて、復号されたブロックを生成することができる。復号されたブロックは、復号されたピクチャを生成するために適切に処理され、復号されたピクチャは、メモリ回路(図示せず)にバッファされ、参照ピクチャとして使用され得る。
エントロピーエンコーダ(725)は、符号化ブロックを含むようにビットストリームをフォーマットし、エントロピーコーディングを実行するように構成され得る。エントロピーエンコーダ(725)は、様々な情報をビットストリームに含めるように構成される。例えば、エントロピーエンコーダ(725)は、統括制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含めるように構成され得る。インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコーディングするとき、残差情報がないことがある。
図8は、本開示の別の実施形態による例示的なビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コード化ビデオシーケンスの一部であるコード化ピクチャを受信し、コード化ピクチャを復号して、再構成されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例におけるビデオデコーダ(410)の代わりに使用され得る。
図8の例では、ビデオデコーダ(810)は、図8の例示的な構成に示すように互いに結合された、エントロピーデコーダ(871)と、インターデコーダ(880)と、残差デコーダ(873)と、再構成モジュール(874)と、イントラデコーダ(872)とを含む。
エントロピーデコーダ(871)は、コード化ピクチャから、コード化ピクチャを構成するシンタックス要素を表す特定のシンボルを再構成するように構成され得る。そのようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモード、または別のサブモード)、イントラデコーダ(872)またはインターデコーダ(880)によって予測に使用される特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報またはインター予測情報)、例えば、量子化された変換係数の形態の残差情報などを含むことができる。一例では、予測モードがインターモードまたは双予測モードである場合、インター予測情報がインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成され得る。
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成され得る。
残差デコーダ(873)は、逆量子化を実行して逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成され得る。残差デコーダ(873)はまた、(量子化器パラメータ(QP)を含むために)特定の制御情報を利用し得、これは、エントロピーデコーダ(871)によって提供され得る(これは低データ量制御情報のみであり得るため、データ経路は図示されていない)。
再構成モジュール(874)は、空間領域において、残差デコーダ(873)によって出力された残差と(場合に応じてインター予測モジュールまたはイントラ予測モジュールによって出力された)予測結果とを組み合わせて、再構成されたビデオの一部として再構成されたピクチャの一部を形成する再構成されたブロックを形成するように構成され得る。視覚品質を改善するために、デブロッキング動作などの他の適切な動作も実行され得ることに留意されたい。
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技法を使用して実装され得ることに留意されたい。いくつかの例示的な実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、1つまたは複数の集積回路を使用して実装され得る。別の実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装され得る。
コーディングおよび復号のためのブロックパーティショニングに目を向けると、一般的なパーティショニングは、ベースブロックから開始し得、予め定義されたルールセット、特定のパターン、パーティションツリー、または任意のパーティション構造または方式に従い得る。パーティショニングは、階層的かつ再帰的であり得る。例示的なパーティショニングプロシージャもしくは以下で説明する他のプロシージャのいずれか、またはそれらの組合せに従ってベースブロックを分割またはパーティショニングした後、パーティションまたはコーディングブロックの最終セットが取得され得る。これらのパーティションの各々は、パーティショニング階層における様々なパーティショニングレベルのうちの1つにあり得、様々な形状であり得る。パーティションの各々は、コーディングブロック(CB)と呼ばれ得る。以下でさらに説明される様々な例示的なパーティショニング実装形態について、結果として得られる各CBは、許可されたサイズおよびパーティショニングレベルのいずれかであり得る。そのようなパーティションは、いくつかの基本的なコーディング/復号決定が行われ得、コーディング/復号パラメータが最適化され、決定され、符号化ビデオビットストリーム中でシグナリングされ得る単位を形成し得るので、コーディングブロックと呼ばれる。最終パーティションにおける最高または最深レベルは、ツリーのコーディングブロックパーティショニング構造の深度を表す。コーディングブロックは、ルーマコーディングブロックまたはクロマコーディングブロックであり得る。各色のCBツリー構造は、コーディングブロックツリー(CBT:coding block tree)と呼ばれ得る。
すべての色チャネルのコーディングブロックは、総称して、コーディングユニット(CU)と呼ばれ得る。すべての色チャネルの階層構造は、総称して、コーディングツリーユニット(CTU)と呼ばれ得る。CTU中の様々な色チャネルのためのパーティショニングパターンまたは構造は、同じであっても同じでなくてもよい。
いくつかの実装形態では、ルーマチャネルおよびクロマチャネルに使用されるパーティションツリー方式または構造は、同じである必要がないであろう。言い換えると、ルーマチャネルおよびクロマチャネルは、別個のコーディングツリー構造またはパターンを有し得る。さらに、ルーマチャネルとクロマチャネルとが同じコーディングパーティションツリー構造を使用するのか異なるコーディングパーティションツリー構造を使用するのかと、使用されるべき実際のコーディングパーティションツリー構造とは、コーディングされているスライスがPスライスであるか、Bスライスであるか、Iスライスであるかに依存し得る。例えば、Iスライスの場合、クロマチャネルおよびルーマチャネルは、別個のコーディングパーティションツリー構造またはコーディングパーティションツリー構造モードを有し得るが、PまたはBスライスの場合、ルーマチャネルおよびクロマチャネルは、同じコーディングパーティションツリー方式を共有し得る。別個のコーディングパーティションツリー構造またはモードが適用されるとき、ルーマチャネルは、1つのコーディングパーティションツリー構造によってCBにパーティショニングされ得、クロマチャネルは、別のコーディングパーティションツリー構造によってクロマCBにパーティショニングされ得る。
いくつかの例示的な実装形態では、所定のパーティショニングパターンがベースブロックに適用され得る。図9に示すように、例示的な4ウェイパーティションツリーは、第1の予め定義されたレベル(例えば、ベースブロックサイズとして、64×64ブロックレベルまたは他のサイズ)から開始し得、ベースブロックは、予め定義された最下位レベル(例えば、4×4レベル)まで階層的にパーティショニングされ得る。例えば、ベースブロックは、902、904、906、および908によって示される4つの予め定義されたパーティショニングオプションまたはパターンを受け得、Rとして指定されたパーティションは、図9に示されるのと同じパーティションオプションが最下位レベル(例えば、4×4レベル)までより低いスケールで繰り返され得るという点で、再帰的パーティショニングが可能である。いくつかの実装形態では、追加の制限が図9のパーティショニング方式に適用され得る。図9の実装形態では、長方形パーティション(例えば、1:2/2:1長方形パーティション)が許容され得るが、正方形パーティションが再帰的であることが許容されるのに対して、それらは再帰的であることが許容されないことがある。再帰を伴う図9に従ったパーティショニングは、必要に応じて、コーディングブロックの最終セットを生成する。ルートノードまたはルートブロックからの分割深度を示すために、コーディングツリー深度がさらに定義され得る。例えば、ルートノードまたはルートブロック、例えば64×64ブロックのためのコーディングツリー深度は0に設定され得、ルートブロックが図9に従ってさらに1回分割された後、コーディングツリー深度は1だけ増加される。64×64ベースブロックから4×4の最小パーティションまでの最大または最深レベルは、上記の方式では(レベル0から開始して)4である。そのようなパーティショニング方式は、色チャネルのうちの1つまたは複数に適用され得る。各色チャネルは、図9の方式に従って独立してパーティショニングされ得る(例えば、予め定義されたパターンの間のパーティショニングパターンまたはオプションは、各階層レベルにおいて色チャネルの各々について独立して決定され得る)。代替的に、色チャネルのうちの2つ以上が、図9と同じ階層パターンツリーを共有してもよい(例えば、予め定義されたパターンの間の同じパーティショニングパターンまたはオプションが、各階層レベルにおいて2つ以上の色チャネルのために選定され得る)。
図10は、再帰的パーティショニングがパーティショニングツリーを形成することを可能にする別の例示的な予め定義されたパーティショニングパターンを示す。図10に示すように、例示的な10ウェイパーティショニング構造またはパターンが予め定義され得る。ルートブロックは、予め定義されたレベルで(例えば、128×128レベルまたは64×64レベルのベースブロックから)開始し得る。図10の例示的なパーティショニング構造は、様々な2:1/1:2および4:1/1:4長方形パーティションを含む。図10の第2の行中の1002、1004、1006、および1008で示される3つのサブパーティションを有するパーティションタイプは、「T型」パーティションと呼ばれることがある。「T型」パーティション1002、1004、1006、および1008は、左T型、上T型、右T型、および下T型と呼ばれ得る。いくつかの例示的な実装形態では、図10の長方形パーティションのいずれも、さらなる細分が許容されない。ルートノードまたはルートブロックからの分割深度を示すために、コーディングツリー深度がさらに定義され得る。例えば、ルートノードまたはルートブロック、例えば、128×128ブロックのためのコーディングツリー深度は0に設定され得、ルートブロックが図10にしたがってさらに1回分割された後、コーディングツリー深度は1だけ増加される。いくつかの実装形態では、1010における全正方形パーティションのみ、図10のパターンに従ったパーティショニングツリーの次のレベルへの再帰的パーティショニングが可能である。言い換えると、T型パターン1002、1004、1006、および1008内の正方形パーティションに対しては再帰的パーティショニングが可能でない場合がある。再帰を伴う図10に従ったパーティショニングプロシージャは、必要に応じて、コーディングブロックの最終セットを生成する。そのような方式は、色チャネルのうちの1つまたは複数に適用され得る。いくつかの実装形態では、8×8レベル未満のパーティションの使用に、より多くのフレキシビリティが追加され得る。例えば、特定の場合に2×2クロマインター予測が使用され得る。
コーディングブロックパーティショニングのためのいくつかの他の例示的な実装形態では、ベースブロックまたは中間ブロックを四分木パーティションに分割するために四分木構造が使用され得る。このような四分木分割は、任意の正方形のパーティションに階層的かつ再帰的に適用され得る。ベースブロックまたは中間ブロックもしくはパーティションがさらに四分木分割されるかどうかは、ベースブロックまたは中間ブロック/パーティションの様々なローカル特性に適合され得る。ピクチャ境界における四分木パーティショニングがさらに適合され得る。例えば、サイズがピクチャ境界に適合するまでブロックが四分木分割を維持するように、ピクチャ境界において暗黙的四分木分割が実行され得る。
いくつかの他の例示的な実装形態では、ベースブロックからの階層バイナリパーティショニングが使用され得る。そのような方式の場合、ベースブロックまたは中間レベルブロックは、2つのパーティションにパーティショニングされ得る。バイナリパーティショニングは、水平または垂直のいずれかであり得る。例えば、水平バイナリパーティショニングは、ベースブロックまたは中間ブロックを等しい右パーティションおよび左パーティションに分割し得る。同様に、垂直バイナリパーティショニングは、ベースブロックまたは中間ブロックを等しい上パーティションおよび下パーティションに分割し得る。そのようなバイナリパーティショニングは、階層的かつ再帰的であり得る。ベースブロックまたは中間ブロックの各々において、バイナリパーティショニング方式が継続すべきかどうか、および方式がさらに継続する場合、水平バイナリパーティショニングが使用されるべきか垂直バイナリパーティショニングが使用されるべきかについて決定が行われ得る。いくつかの実装形態では、さらなるパーティショニングは、(一方または両方の次元における)予め定義された最低パーティションサイズで停止し得る。代替的に、さらなるパーティショニングは、ベースブロックからの予め定義されたパーティショニングレベルまたは深度に達すると、停止してもよい。いくつかの実装形態では、パーティションのアスペクト比が制限され得る。例えば、パーティションのアスペクト比は、1:4よりも小さく(または4:1よりも大きく)ならないであろう。そのため、4:1の垂直対水平アスペクト比を有する垂直ストリップパーティションは、各々が2:1の垂直対水平アスペクト比を有する上パーティションおよび下パーティションへと垂直にのみさらにバイナリパーティショニングされ得る。
さらにいくつかの他の例では、図13に示すように、ベースブロックまたは任意の中間ブロックをパーティショニングするためにターナリパーティショニング方式が使用され得る。ターナリパターンは、図13の1302に示されるように垂直に、または図13の1304に示されるように水平に実装され得る。図13の例示的な分割比は、垂直にまたは水平に、1:2:1として示されているが、他の比が予め定義されてもよい。いくつかの実装形態では、2つ以上の異なる比が予め定義され得る。そのようなターナリパーティショニング方式は、四分木および二分木では常にブロック中心に沿って分割するので、オブジェクトを別個のパーティションに分割することになるが、そのような三分木パーティショニングは1つの連続するパーティション内のブロック中心に位置するオブジェクトをキャプチャすることが可能であるという点で、四分木または二分木パーティショニング構造を補完するために使用され得る。いくつかの実装形態では、例示的な三分木のパーティションの幅および高さは、追加の変換を回避するために常に2のべき乗である。
上記のパーティショニング方式は、異なるパーティショニングレベルにおいて任意の方法で組み合わせられ得る。一例として、上記で説明した四分木およびバイナリパーティショニング方式は、ベースブロックを四分木-二分木(QTBT)構造にパーティショニングするために組み合わせられ得る。そのような方式では、ベースブロックまたは中間ブロック/パーティションは、指定された場合、予め定義された条件のセットにしたがって、四分木分割またはバイナリ分割のいずれかであり得る。特定の例を図14に示す。図14の例では、ベースブロックは、最初に、1402、1404、1406、および1408によって示されるように、4つのパーティションに四分木分割される。その後、結果として得られるパーティションの各々は、4つのさらなるパーティションに四分木パーティショニングされる(1408など)か、次のレベルにおいて2つのさらなるパーティションにバイナリ分割される(例えば、両方とも対称である1402または1406など、水平にまたは垂直に)か、分割されない(1404)かのいずれかである。バイナリ分割または四分木分割は、1410の全体的な例示的パーティションパターンおよび1420における対応するツリー構造/表現によって示されるように、正方形のパーティションに対して再帰的に可能にされ得、ここで、実線は四分木分割を表し、破線はバイナリ分割を表す。バイナリ分割が水平であるか垂直であるかを示すために、各バイナリ分割ノード(非リーフバイナリパーティション)についてフラグが使用され得る。例えば、1420に示すように、1410のパーティショニング構造と一致して、フラグ「0」は、水平バイナリ分割を表し得、フラグ「l」は、垂直バイナリ分割を表し得る。四分木分割されたパーティションの場合、四分木分割は常に、ブロックまたはパーティションを水平と垂直の両方に分割して、等しいサイズを有する4つのサブブロック/パーティションを生成するので、分割タイプを示す必要はない。いくつかの実装形態では、フラグ「l」は水平バイナリ分割を表し得、フラグ「0」は、垂直バイナリ分割を表し得る。
QTBTのいくつかの例示的な実装形態では、四分木およびバイナリ分割ルールセットは、以下の予め定義されたパラメータおよびそれに関連する対応する関数によって表され得る。
- CTUサイズ:四分木のルートノードサイズ(ベースブロックのサイズ)
- MinQTSize:最小許容四分木リーフノードサイズ
- MaxBTSize:最大許容二分木ルートノードサイズ
- MaxBTDepth:最大許容二分木深度
- MinBTSize:最小許容二分木リーフノードサイズ
QTBTパーティショニング構造のいくつかの例示的な実装形態では、CTUサイズは、(例示的なクロマサブサンプリングを考慮し使用する場合)クロマサンプルの2つの対応する64×64ブロックを有する128×128ルーマサンプルとして設定され得、MinQTSizeは、16×16として設定され得、MaxBTSizeは、64×64として設定され得、MinBTSize(幅および高さの両方)は、4×4として設定され得、MaxBTDepthは、4として設定され得る。四分木パーティショニングは、四分木リーフノードを生成するために、最初、CTUに適用され得る。四分木リーフノードは、その最小許容サイズ16×16(すなわちMinQTSize)から128×128(すなわち、CTUサイズ)のサイズを有し得る。ノードが128×128である場合、サイズがMaxBTSize(すなわち64×64)を超えるので、最初、二分木によって分割されない。そうでない場合、MaxBTSizeを超えないノードは、二分木によってパーティショニングされる可能性がある。図14の例では、ベースブロックは128×128である。ベースブロックは、予め定義されたルールセットにしたがって、四分木分割のみが可能である。ベースブロックは、0のパーティショニング深度を有する。結果として得られる4つのパーティションの各々は、64×64であり、MaxBTSizeを超えず、ベル1でさらに四分木または二分木分割され得る。プロセスは継続する。二分木深度がMaxBTDepth(すなわち、4)に達すると、それ以上の分割は考慮されないであろう。二分木ノードがMinBTSize(すなわち、4)に等しい幅を有するとき、それ以上の水平分割は考慮されないであろう。同様に、二分木ノードの高さがMinBTSizeに等しいとき、それ以上の垂直分割は考慮されない。
いくつかの例示的な実装形態では、上記のQTBT方式は、ルーマおよびクロマが同じQTBT構造または別個のQTBT構造を有するためのフレキシビリティをサポートするように構成され得る。例えば、PスライスおよびBスライスの場合、1つのCTU中のルーマCTBおよびクロマCTBは、同じQTBT構造を共有し得る。しかしながら、Iスライスの場合、ルーマCTBは、QTBT構造によってCBにパーティショニングされ得、クロマCTBは、別のQTBT構造によってクロマCBにパーティショニングされ得る。これは、CUがIスライス中の異なる色チャネルを指すために使用され得ることを意味し、例えば、Iスライスは、1つのルーマ成分のコーディングブロックまたは2つのクロマ成分のコーディングブロックから構成され得、PスライスまたはBスライス中のCUは、すべての3つの色成分のコーディングブロックから構成され得る。
いくつかの他の実装形態では、QTBT方式は、上記で説明したターナリ方式で補足され得る。そのような実装形態は、マルチタイプツリー(MTT)構造と呼ばれ得る。例えば、ノードのバイナリ分割に加えて、図13のターナリパーティションパターンのうちの1つが選定され得る。いくつかの実装形態では、正方形ノードのみがターナリ分割の対象となり得る。ターナリパーティショニングが水平であるか垂直であるかを示すために、追加のフラグが使用され得る。
QTBT実装形態およびターナリ分割によって補足されるQTBT実装形態など、2レベルツリーまたはマルチレベルツリーの設計は、主に複雑さ低減によって動機付けられ得る。理論的には、ツリーをトラバースする複雑さは、TDであり、ここで、Tは、分割タイプの数を示し、Dは、ツリーの深度である。深度(D)を低減しながら、複数のタイプ(T)を使用することによって、トレードオフが行われ得る。
いくつかの実装形態では、CBは、さらにパーティショニングされ得る。例えば、CBは、コーディングおよび復号プロセス中のイントラまたはインターフレーム予測の目的で、複数の予測ブロック(PB)にさらにパーティショニングされ得る。言い換えると、CBは、個々の予測決定/構成が行われ得る異なるサブパーティションにさらに分割され得る。並行して、CBは、ビデオデータの変換または逆変換が実行されるレベルを線引きする目的で、複数の変換ブロック(TB)にさらにパーティショニングされ得る。CBのPBおよびTBへのパーティショニング方式は、同じであっても、同じでなくてもよい。例えば、各パーティショニング方式は、例えば、ビデオデータの様々な特性に基づいて、それ自体のプロシージャを使用して実行され得る。PBおよびTBパーティショニング方式は、いくつかの例示的な実装形態では独立しているであろう。PBおよびTBパーティショニング方式および境界は、いくつかの他の例示的な実装形態では相関され得る。いくつかの実装形態では、例えば、TBは、PBパーティションにパーティショニングされ得、特に、PBは、コーディングブロックのパーティショニングに従って決定された後、1つまたは複数のTBにさらにパーティショニングされ得る。例えば、いくつかの実装形態では、PBは、1つ、2つ、4つ、または他の数のTBに分割され得る。
いくつかの実装形態では、ベースブロックをコーディングブロックにパーティショニングし、さらに予測ブロックおよび/または変換ブロックにパーティショニングするために、ルーマチャネルとクロマチャネルとは別様に扱われ得る。例えば、いくつかの実装形態では、コーディングブロックの予測ブロックおよび/または変換ブロックへのパーティショニングは、ルーマチャネルに対して許可され得るが、コーディングブロックの予測ブロックおよび/または変換ブロックへのそのようなパーティショニングは、クロマチャネル(複数可)に対しては許可されないことがある。そのような実装形態では、ルーマブロックの変換および/または予測は、このように、コーディングブロックレベルにおいてのみ実行され得る。別の例では、ルーマチャネルおよびクロマチャネル(複数可)のための最小変換ブロックサイズは異なり得、例えば、ルーマチャネルのためのコーディングブロックは、クロマチャネルよりも小さい変換および/または予測ブロックにパーティショニングされることが許可され得る。さらに別の例として、コーディングブロックの変換ブロックおよび/または予測ブロックへのパーティショニングの最大深度は、ルーマチャネルとクロマチャネルとの間で異なり得、例えば、ルーマチャネルのためのコーディングブロックは、クロマチャネル(複数可)よりも深い変換および/または予測ブロックにパーティショニングされることが許可され得る。具体的な例では、ルーマコーディングブロックは、最大2レベル下がる再帰的パーティションで表現することができる複数サイズの変換ブロックにパーティショニングされ、正方形、2:1/1:2、および4:1/1:4などの変換ブロック形状はならびに4×4から64×64までの変換ブロックサイズが許容され得る。しかしながら、クロマブロックの場合、ルーマブロックのために指定された最大の可能な変換ブロックのみが許容され得る。
コーディングブロックをPBに分割するためのいくつかの例示的な実装形態では、PBパーティショニングの深度、形状、および/または他の特性は、PBがイントラコーディングされるかインターコーディングされるかに依存し得る。
コーディングブロック(または予測ブロック)の変換ブロックへのパーティショニングは、限定はしないが、再帰的または非再帰的な四分木分割および予め定義されたパターン分割を含む様々な例示的な方式で、コーディングブロックまたは予測ブロックの境界における変換ブロックについての追加の考慮とともに、実装され得る。一般に、結果として得られる変換ブロックは、異なる分割レベルにあり得、同じサイズでなくてもよく、形状が正方形である必要はないであろう(例えば、それらは、何らかの許容サイズおよびアスペクト比を有する長方形であり得る)。さらなる例が、図15、図16、および図17に関して以下でさらに詳細に説明される。
しかしながら、いくつかの他の実装形態では、上記のパーティショニング方式のいずれかを介して取得されたCBは、予測および/または変換のための基本または最小コーディングブロックとして使用され得る。言い換えると、インター予測/イントラ予測目的および/または変換目的で、それ以上の分割は実行されない。例えば、上記のQTBT方式から取得されたCBは、予測を実行するためのユニットとして直接使用され得る。具体的には、そのようなQTBT構造は、複数のパーティションタイプの概念を除去し、すなわち、それは、CU、PUおよびTUの分離を除去し、上記で説明したようなCU/CBパーティション形状のためのより多くのフレキシビリティをサポートする。そのようなQTBTブロック構造では、CU/CBは、正方形形状または長方形の形状いずれかを有することができる。そのようなQTBTのリーフノードは、それ以上のパーティショニングなしに、予測および変換処理のためのユニットとして使用される。これは、CU、PU、およびTUが、そのような例示的なQTBTコーディングブロック構造において同じブロックサイズを有することを意味する。
上記の様々なCBパーティショニング方式ならびに(PB/TBパーティショニングなしを含む)CBのPBおよび/またはTBへのさらなるパーティショニングは、任意の方法で組み合わせられ得る。以下の特定の実装形態は、非限定的な例として提供される。
コーディングブロックおよび変換ブロックパーティショニングの特定の例示的な実装形態について以下で説明する。そのような例示的な実装形態では、ベースブロックは、再帰的四分木分割、または(図9および図10のものなどの)上記で説明した予め定義された分割パターンを使用してコーディングブロックに分割され得る。各レベルにおいて、特定のパーティションのさらなる四分木分割を継続すべきかどうかは、ローカルビデオデータ特性によって決定され得る。結果として得られるCBは、様々な四分木分割レベルであり、様々なサイズであり得る。インターピクチャ(時間)予測またはイントラピクチャ(空間)予測を使用してピクチャエリアをコーディングすべきかどうかに関する決定は、CBレベル(または、すべての3色チャネルについてCUレベル)において行われ得る。各CBは、予め定義されたPB分割タイプにしたがって、1つ、2つ、4つ、または他の数のPBにさらに分割され得る。1つのPBの内部では、同じ予測プロセスが適用され得、関連情報は、PBごとにデコーダに送信され得る。PB分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CBは、CBのためのコーディングツリーと同様の別の四分木構造にしたがってTBにパーティショニングされ得る。この特定の実装形態では、CBまたはTBは、正方形に限定され得るが、それに限定される必要はない。さらに、この特定の例では、PBは、インター予測の場合は正方形または長方形であり得、イントラ予測の場合は正方形のみであり得る。コーディングブロックは、例えば、4つの正方形のTBに分割され得る。各TBは、残差四分木(RQT:Residual Quadtree)と呼ばれる、より小さいTBに(四分木分割を使用して)再帰的にさらに分割され得る。
ベースブロックをCB、PB、および/またはTBにパーティショニングするための別の例示的な実装形態について以下でさらに説明する。例えば、図9または図10に示すものなどの複数のパーティションユニットタイプを使用するのではなく、バイナリおよびターナリ分割セグメンテーション構造(例えば、上記で説明したQTBTまたはターナリ分割を有するQTBT)を使用するネスト型マルチタイプツリーを有する四分木が使用され得る。CB、PB、およびTBの分離(すなわち、CBのPBおよび/またはTBへのパーティショニングならびにPBのTBへのパーティショニング)は、最大変換長に対して大きすぎるサイズを有するCBのために必要とされるときを除いて、放棄され得、そのようなCBは、さらなる分割を必要とし得る。この例示的なパーティショニング方式は、予測と変換の両方がそれ以上のパーティショニングなしにCBレベルで実行され得るように、CBパーティション形状のためのより多くのフレキシビリティをサポートするように設計され得る。そのようなコーディングツリー構造では、CBは、正方形または長方形の形状のいずれかを有し得る。具体的には、コーディングツリーブロック(CTB)は、最初に四分木構造によってパーティショニングされ得る。次いで、四分木リーフノードは、ネスト型マルチタイプツリー構造によってさらにパーティショニングされ得る。バイナリ分割またはターナリ分割を使用するネスト型マルチタイプツリー構造の例を図11に示す。具体的には、図11の例示的なマルチタイプツリー構造は、垂直バイナリ分割(SPLIT_BT_VER)(1102)、水平バイナリ分割(SPLIT_BT_HOR)(1104)、垂直ターナリ分割(SPLIT_TT_VER)(1106)、および水平ターナリ分割(SPLIT_TT_HOR)(1108)と呼ばれる4つの分割タイプを含む。そして、CBは、マルチタイプツリーのリーフに対応する。この例示的な実装形態では、CBが最大変換長に対して大きすぎない限り、このセグメンテーションは、それ以上のパーティショニングなしに、予測処理と変換処理の両方に使用される。これは、ほとんどの場合、CB、PB、およびTBが、ネスト型マルチタイプツリーコーディングブロック構造を有する四分木において同じブロックサイズを有することを意味する。例外は、サポートされる最大変換長がCBの色成分の幅または高さよりも小さいときに発生する。いくつかの実装形態では、バイナリ分割またはターナリ分割に加えて、図11のネスト型パターンが、四分木分割をさらに含み得る。
1つのベースブロックのための(四分木、バイナリ、およびターナリ分割オプションを含む)ブロックパーティションのネスト型マルチタイプツリーコーディングブロック構造を有する四分木のための1つの具体的な例が図12に示されている。より詳細には、図12は、ベースブロック1200が4つの正方形パーティション1202、1204、1206、および1208に四分木分割されることを示す。さらなる分割のために図11のマルチタイプツリー構造および四分木をさらに使用する決定は、四分木分割されたパーティションの各々に対して行われる。図12の例では、パーティション1204は、それ以上分割されない。パーティション1202および1208はそれぞれ、別の四分木分割を採用する。パーティション1202の場合、第2レベルの四分木分割された左上、右上、左下、および右下のパーティションは、それぞれ、四分木、図11の水平バイナリ分割1104、非分割、および図11の水平ターナリ分割1108の第3レベルの分割を採用する。パーティション1208は、別の四分木分割を採用し、第2レベルの四分木分割された左上、右上、左下、および右下のパーティションは、それぞれ、図11の垂直ターナリ分割1106、非分割、非分割、および図11の水平バイナリ分割1104の第3レベルの分割を採用する。1208の第3レベルの左上パーティションのサブパーティションのうちの2つは、それぞれ、図11の水平バイナリ分割1104および水平ターナリ分割1108にしたがってさらに分割される。パーティション1206は、図11の垂直バイナリ分割1102に従った第2レベルの分割パターンを採用して2つのパーティションにし、これらのパーティションは、図11の水平ターナリ分割1108および垂直バイナリ分割1102にしたがって第3レベルでさらに分割される。第4レベルの分割が、図11の水平バイナリ分割1104にしたがって、それらのうちの1つにさらに適用される。
上記の具体的な例では、最大ルーマ変換サイズは64×64であり得、サポートされる最大クロマ変換サイズは、例えば、32×32におけるルーマとは異なり得る。図12における上記の例示的なCBは、一般に、より小さいPBおよび/またはTBにさらに分割されないが、ルーマコーディングブロックまたはクロマコーディングブロックの幅または高さが最大変換幅または高さよりも大きいとき、ルーマコーディングブロックまたはクロマコーディングブロックは、当該方向における変換サイズ制限を満たすために、水平方向および/または垂直方向に自動的に分割され得る。
上記のベースブロックをCBにパーティショニングするための具体的な例では、上記で説明したように、コーディングツリー方式は、ルーマとクロマとが別個のブロックツリー構造を有する能力をサポートし得る。例えば、PスライスおよびBスライスの場合、1つのCTU中のルーマCTBおよびクロマCTBは同じコーディングツリー構造を共有し得る。Iスライスの場合、例えば、ルーマおよびクロマは別個のコーディングブロックツリー構造を有し得る。別個のブロックツリー構造が適用されるとき、ルーマCTBは、1つのコーディングツリー構造によってルーマCBにパーティショニングされ得、クロマCTBは、別のコーディングツリー構造によってクロマCBにパーティショニングされる。これは、Iスライス中のCUが1つのルーマ成分のコーディングブロックまたは2つのクロマ成分のコーディングブロックから構成され得、ビデオがモノクロームでない限り、PまたはBスライス中のCUが常にすべての3つの色成分のコーディングブロックから構成されることを意味する。
コーディングブロックが複数の変換ブロックにさらにパーティショニングされるとき、その中の変換ブロックは、様々な順序または走査方法にしたがってビットストリーム中で順序付けられ得る。コーディングブロックまたは予測ブロックを変換ブロックにパーティショニングするための例示的な実装形態、および変換ブロックのコーディング順序が、以下でさらに詳細に説明される。いくつかの例示的な実装形態では、上記で説明したように、変換パーティショニングは、複数の形状、例えば、1:1(正方形)、1:2/2:1、および1:4/4:1の変換ブロックをサポートし得、変換ブロックサイズは、例えば、4×4から64×64に及ぶ。いくつかの実装形態では、コーディングブロックが64×64よりも小さいかまたはそれに等しい場合、変換ブロックパーティショニングは、ルーマ成分のみに適用され得、したがって、クロマブロックについては、変換ブロックサイズはコーディングブロックサイズと同一である。そうではなく、コーディングブロック幅または高さが64よりも大きい場合、ルーマコーディングブロックとクロマコーディングブロックの両方は、それぞれmin(W,64)×min(H,64)およびmin(W,32)×min(H,32)の倍数の変換ブロックに暗黙的に分割され得る。
変換ブロックパーティショニングのいくつかの例示的な実装形態では、イントラコーディングされたブロックとインターコーディングされたブロックの両方について、コーディングブロックは、予め定義されたレベル数(例えば、2つのレベル)までのパーティショニング深度で複数の変換ブロックにさらにパーティショニングされ得る。変換ブロックパーティショニング深度およびサイズは、関連し得る。いくつかの例示的な実装形態について、現在の深度の変換サイズから次の深度の変換サイズへのマッピングが、以下の表1に示される。
表1の例示的なマッピングに基づいて、1:1正方形ブロックの場合、次のレベルの変換分割は、4つの1:1正方形サブ変換ブロックを作成し得る。変換パーティションは、例えば、4×4で停止し得る。そのため、現在の深度の変換サイズ4×4は、次の深度でも同じサイズ4×4に対応する。表1の例では、1:2/2:1非正方形ブロックの場合、次のレベルの変換分割は、2つの1:1正方形サブ変換ブロックを作成し得るが、1:4/4:1非正方形ブロックの場合、次のレベルの変換分割は、2つの1:2/2:1サブ変換ブロックを作成し得る。
いくつかの例示的な実装形態では、イントラコーディングされたブロックのルーマ成分について、変換ブロックパーティショニングに関して追加の制限が適用され得る。例えば、変換パーティショニングの各レベルについて、すべてのサブ変換ブロックは、等しいサイズを有するように制限され得る。例えば、32×16コーディングブロックの場合、レベル1変換分割は、2つの16×16サブ変換ブロックを作成し、レベル2変換分割は、8つの8×8サブ変換ブロックを作成する。言い換えると、第2レベルの分割は、変換ユニットを等しいサイズに保つために、すべての第1レベルのサブブロックに適用されなければならない。表1に従うイントラコーディングされた正方形ブロックのための変換ブロックパーティショニングの一例が、矢印によって示されるコーディング順序とともに図15に示されている。具体的には、1502は、正方形のコーディングブロックを示す。表1による4つの等しいサイズの変換ブロックへの第1レベルの分割が、矢印によって示されるコーディング順序とともに1504に示されている。表1による、第1レベルの等しいサイズのブロックのすべての16個の等しいサイズの変換ブロックへの第2レベルの分割が、矢印によって示されるコーディング順序とともに1506に示されている。
いくつかの例示的な実装形態では、インターコーディングされたブロックのルーマ成分について、イントラコーディングのための上記の制限は適用されないことがある。例えば、変換分割の第1レベルの後に、サブ変換ブロックのうちのいずれか1つが、さらにもう1つのレベルで独立して分割され得る。したがって、結果として得られる変換ブロックは、同じサイズであってもなくてもよい。インターコーディングされたブロックの変換ブロックへの例示的な分割が、それらのコーディング順序とともに図16に示されている。図16の例では、インターコーディングされたブロック1602は、表1にしたがって2つのレベルで変換ブロックに分割される。第1レベルでは、インターコーディングされたブロックは、等しいサイズの4つの変換ブロックに分割される。次いで、1604によって示されるように、4つの変換ブロックのうちの1つのみ(それらのすべてではない)が4つのサブ変換ブロックにさらに分割され、2つの異なるサイズを有する合計7つの変換ブロックとなる。これらの7つの変換ブロックの例示的なコーディング順序は、図16の1604において矢印によって示されている。
いくつかの例示的な実装形態では、クロマ成分(複数可)について、変換ブロックのためのいくつかの追加の制限が適用され得る。例えば、クロマ成分(複数可)について、変換ブロックサイズは、コーディングブロックサイズと同じ大きさであることができるが、予め定義されたサイズ、例えば、8×8よりも小さくはできない。
いくつかの他の例示的な実装形態では、幅(W)または高さ(H)のいずれかが64よりも大きいコーディングブロックについて、ルーマコーディングブロックおよびクロマコーディングブロックの両方は、それぞれmin(W,64)×min(H,64)およびmin(W,32)×min(H,32)の倍数の変換ユニットに暗黙的に分割され得る。を含む。ここで、本開示では、「min(a,b)」は、aとbとの間のより小さい値を返し得る。
図17は、コーディングブロックまたは予測ブロックを変換ブロックにパーティショニングするための別の代替の例示的な方式をさらに示す。図17に示すように、再帰的変換パーティショニングを使用する代わりに、コーディングブロックの変換タイプにしたがって、パーティショニングタイプの予め定義されたセットがコーディングブロックに適用され得る。図17に示される特定の例では、コーディングブロックを様々な数の変換ブロックに分割するために、6つの例示的なパーティショニングタイプのうちの1つが適用され得る。変換ブロックパーティショニングを生成するそのような方式は、コーディングブロックまたは予測ブロックのいずれかに適用され得る。
より詳細には、図17のパーティショニング方式は、任意の所与の変換タイプについて最大6つの例示的なパーティションタイプを与える(変換タイプは、例えば、ADSTなどの1次変換のタイプを指す)。この方式では、すべてのコーディングブロックまたは予測ブロックは、例えば、レート歪みコストに基づいて変換パーティションタイプを割り当てられ得る。一例では、コーディングブロックまたは予測ブロックに割り当てられた変換パーティションタイプは、コーディングブロックまたは予測ブロックの変換タイプに基づいて決定され得る。特定の変換パーティションタイプは、図17に示す6つの変換パーティションタイプによって示されるように、変換ブロック分割サイズおよびパターンに対応し得る。様々な変換タイプと様々な変換パーティションタイプとの間の対応関係が予め定義され得る。レート歪みコストに基づいてコーディングブロックまたは予測ブロックに割り当てられ得る変換パーティションタイプを示す大文字のラベルを用いて、一例を以下に示す:
・ PARTITION_NONE:ブロックサイズに等しい変換サイズを割り当てる。
・ PARTITION_SPLIT:ブロックサイズの幅の1/2およびブロックサイズの高さの1/2である変換サイズを割り当てる。
・ PARTITION_HORZ:ブロックサイズと同じ幅およびブロックサイズの1/2の高さを有する変換サイズを割り当てる。
・ PARTITION_VERT:ブロックサイズの1/2の幅およびブロックサイズと同じ高さを有する変換サイズを割り当てる。
・ PARTITION_HORZ4:ブロックサイズと同じ幅およびブロックサイズの1/4の高さを有する変換サイズを割り当てる。
・ PARTITION_VERT4:ブロックサイズの1/4の幅およびブロックサイズと同じ高さを有する変換サイズを割り当てる。
上記の例では、図17に示すように、変換パーティションタイプはすべて、パーティショニングされた変換ブロックに対して一様な変換サイズを含んでいる。これは、限定ではなく単なる例である。いくつかの他の実装形態では、混合変換ブロックサイズが、特定のパーティションタイプ(またはパターン)中のパーティショニングされた変換ブロックに使用され得る。
上記のパーティショニング方式のいずれかから取得されたPB(または予測ブロックにさらにパーティショニングされないときはPBとも呼ばれるCB)は、次いで、イントラ予測またはインター予測のいずれかを介したコーディングのための個々のブロックになり得る。現在PBに対するインター予測の場合、現在ブロックと予測ブロックとの間の残差が生成され、コーディングされ、コーディングされたビットストリーム中に含まれ得る。
インター予測は、例えば、単一参照モードまたは複合参照モードで実装され得る。いくつかの実装形態では、現在ブロックがインターコーディングされ、スキップされるべきでないかどうかを示すために、スキップフラグが最初に、現在ブロックのための(またはより高いレベルの)ビットストリーム中に含まれ得る。現在ブロックがインターコーディングされる場合、現在ブロックの予測に単一参照モードが使用されるのか複合参照モードが使用されるのかを示すために、別のフラグが信号としてビットストリーム中にさらに含まれ得る。単一参照モードの場合、現在ブロックのための予測ブロックを生成するために、1つの参照ブロックが使用され得る。複合参照モードの場合、例えば、加重平均によって予測ブロックを生成するために、2つ以上の参照ブロックが使用され得る。複合参照モードは、複数参照モード(more-than-one-reference mode)、2参照モード、または多重参照モード(multiple-reference mode)と呼ばれることがある。1つまたは複数の参照ブロックは、1つまたは複数の参照フレームインデックスを使用して、追加的に、ロケーションにおける、例えば、水平ピクセルおよび垂直ピクセルにおける参照ブロック(複数可)と現在ブロックとの間のシフト(複数可)を示す1つまたは複数の対応する動きベクトルを使用して識別され得る。例えば、現在ブロックのためのインター予測ブロックは、単一参照モードでは、参照フレーム中の1つの動きベクトルによって予測ブロックとして識別される単一参照ブロックから生成され得るが、複合参照モードでは、予測ブロックは、2つの参照フレームインデックスと2つの対応する動きベクトルとによって示される2つの参照フレーム中の2つの参照ブロックの加重平均によって生成され得る。動きベクトル(複数可)は、様々な方法でコーディングされ、ビットストリーム中に含まれ得る。
いくつかの実装形態では、符号化または復号システムは、復号ピクチャバッファ(DPB)を維持し得る。いくつかの画像/ピクチャは、(復号システムにおいて)表示されるのを待つDPBにおいて維持され、DPB中のいくつかの画像/ピクチャは、(復号システムまたは符号化システムにおいて)インター予測を可能にするために参照フレームとして使用され得る。いくつかの実装形態では、DPB中の参照フレームは、符号化または復号されている現在の画像のための短期参照または長期参照のいずれかとしてタグ付けされ得る。例えば、短期参照フレームは、現在フレーム中の、または復号順序で現在フレームに最も近い予め定義された数(例えば、2つ)の後続のビデオフレーム中のブロックに対するインター予測に使用されるフレームを含み得る。長期参照フレームは、DPB中に、復号順序で現在フレームから予め定義された数よりも多くの数離れたフレームの画像ブロックを予測するために使用することができるフレームを含み得る。短期参照フレームおよび長期参照フレームのためのそのようなタグに関する情報は、参照ピクチャセット(RPS)と呼ばれ得、符号化されたビットストリーム中の各フレームのヘッダに追加され得る。符号化されたビットストリーム中の各フレームは、ピクチャ順序カウンタ(POC)によって識別され得、これは、絶対的な方法で、または、例えばIフレームから開始するピクチャグループに関連して、再生シーケンスにしたがって番号付けされる。
いくつかの例示的な実装形態では、インター予測のための短期参照フレームおよび長期参照フレームの識別を含む1つまたは複数の参照ピクチャリストが、RPS中の情報に基づいて形成され得る。例えば、単方向インター予測のために、L0参照(または参照リスト0)として示される単一のピクチャ参照リストが形成され得、双方向インター予測のために、2つの予測方向の各々についてL0(または参照リスト0)およびL1(または参照リスト1)として示される2つのピクチャ参照リストが形成され得る。L0リストおよびL1リストに含まれる参照フレームは、様々な所定の方法で順序付けられ得る。L0リストおよびL1リストの長さは、ビデオビットストリーム中でシグナリングされ得る。単方向インター予測は、単一参照モード、または複合予測モードにおける加重平均による予測ブロックの生成のための複数の参照が予測されるべきブロックの同じ側にあるときの複合参照モードのいずれかであり得る。双方向インター予測は、双方向インター予測が少なくとも2つの参照ブロックを伴うという点でのみ複合モードであり得る。
ブロックパーティショニング
図18は、ブロックパーティショニングのための例示的なパーティションツリーを示す。VP9は、64×64レベルから開始して4×4レベルまでの4ウェイパーティションツリーを使用し、8×8以下のブロックに対しては追加の制限を有する。これは図18に示されている。Rとして指定されたパーティションは、最も低い4×4レベルに達するまで同じパーティションツリーがより低いスケールで繰り返されるという点で再帰的であり得る。AV1は、図に示すように、パーティションツリーを10ウェイ構造に拡張するが、最大サイズ(VP9/AV1ではスーパーブロックと呼ばれる)も増加させて、128×128から開始する。これは、VP9には存在しなかった4:1/1:4の長方形パーティションを含む。長方形パーティションのいずれも、さらに細分することはできない。加えて、AV1は、8×8レベルより下のパーティションの使用にさらなるフレキシビリティを追加する。例えば、特定の場合には2×2クロマインター予測が可能になる。
HEVCでは、様々なローカル特性に適合するために、コーディングツリーとして示される四分木構造を使用することによって、コーディングツリーユニット(CTU)がコーディングユニット(CU)に分割される。CUはまた、予測ブロックまたはコーディングブロックを含むブロックであると見なされ得る。インターピクチャ(時間)予測またはイントラピクチャ(空間)予測を使用してピクチャエリアをコーディングすべきかどうかに関する決定は、CUレベルにおいて行われる。各CUは、PU分割タイプにしたがって、1つ、2つ、または4つの予測ユニット(PU)にさらに分割され得る。1つのPUの内部では、同じ予測プロセスが適用され、関連情報がPUごとにデコーダに送信される。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CUは、CUのためのコーディングツリーのような別の四分木構造にしたがって変換ユニット(TU)にパーティショニングされ得る。HEVC構造は、CU、PU、およびTUを含む複数のパーティション概念を有する。HEVCでは、CUまたはTUは、正方形のみであり得るが、PUは、インター予測ブロックに対して正方形または長方形であり得る。HEVCでは、1つのコーディングブロックは、4つの正方形サブブロックにさらに分割され得、変換は、各サブブロック(すなわち、TU)に対して実行される。各TUは、残差四分木(RQT)と呼ばれる、より小さいTUに(四分木分割を使用して)さらに再帰的に分割され得る。ピクチャ境界において、HEVCは、サイズがピクチャ境界に適合するまでブロックが四分木分割を維持するように、暗黙的な四分木分割を採用する。
四分木(QT)プラス二分木(BT)を使用するブロック位置決め構造が存在し得る。HEVCでは、様々なローカル特性に適合するために、コーディングツリーとして示される四分木構造を使用することによって、CTUがCUに分割され得る。インターピクチャ(時間)予測またはイントラピクチャ(空間)予測を使用してピクチャエリアをコーディングすべきかどうかに関する決定は、CUレベルにおいて行われる。いくつかの実施形態では、各CUは、PU分割タイプにしたがって1つ、2つ、または4つのPUにさらに分割され得る。1つのPUの内部では、同じ予測プロセスが適用され得、関連情報がPUごとにデコーダに送信される。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CUは、CUのためのコーディングツリーのような別の四分木構造にしたがって変換ユニット(TU)にパーティショニングされ得る。HEVC構造は、CU、PU、およびTUを含む複数のパーティション概念を有し得る。
図19は、四分木プラス二分木(QTBT)構造のための例示的なパーティションおよびツリーを示す。QTBT構造は、複数のパーティションタイプと同様の概念を有しないことがあり、CU、PU、およびTUの概念の分離を除去し得る。QTBT構造は、CUパーティション形状のためのフレキシビリティの増加をサポートし得る。QTBTブロック構造のいくつかの実施形態では、CUは、正方形または長方形の形状を有することができる。
図19に示すように、コーディングツリーユニット(CTU)は、最初、四分木構造によって分割される。四分木リーフノードは、二分木構造によってさらにパーティショニングされる。二分木分割には、対称水平分割および対称垂直分割という2つの分割タイプがあり得る。二分木リーフノードは、コーディングユニット(CU)と呼ばれ、そのセグメンテーションは、それ以上のパーティショニングなしに、予測および変換処理に使用され得る。CU、PU、およびTUは、QTBTコーディングブロック構造では同じブロックサイズを有し得る。JEMでは、CUは、異なる色成分のコーディングブロック(CB)を含み得る(例えば、4:2:0クロマフォーマットのPスライスおよびBスライスの場合、1つのCUは1つのルーマCBと2つのクロマCBとを含む)。他の実施形態では、それは、単一の成分のCBを含み得る(例えば、1つのCUは、Iスライスの場合、1つのルーマCBまたは2つのクロマCBを含む)。
以下のパラメータが、QTBTパーティショニング方式のために定義され得る:
・ CTUサイズ:HEVCと同じ概念である、四分木のルートノードサイズ
・ MinQTSize:最小許容四分木リーフノードサイズ
・ MaxBTSize:最大許容二分木ルートノードサイズ
・ MaxBTDepth:最大許容二分木深度
・ MinBTSize:最小許容二分木リーフノードサイズ
QTBTパーティショニング構造の一実施形態では、CTUサイズは、クロマサンプルの2つの対応する64×64ブロックを有する128×128ルーマサンプルとして設定され得る。一実施形態では、MinQTSizeは、16×16として設定され得、MaxBTSizeは、64×64として設定され得、MinBTSize(幅および高さの両方)は、4×4として設定され得、MaxBTDepthは、4として設定され得る。四分木パーティショニングは、四分木リーフノードを生成するために、最初、CTUに適用され得る。四分木リーフノードは、16×16(すなわちMinQTSize)から128×128(すなわち、CTUサイズ)のサイズを有し得る。リーフ四分木ノードが128×128サイズである場合、MaxBTSize(すなわち64×64)を超えるので、二分木によってさらに分割されないであろう。そうでない場合、リーフ四分木ノードは、二分木によってさらにパーティショニングされ得る。四分木リーフノードはまた、二分木のルートノードであってもよく、二分木深度を0として有する。二分木深度がMaxBTDepth(すなわち、4)に達すると、それ以上の分割は考慮されないであろう。二分木ノードがMinBTSize(すなわち、4)に等しい幅を有するとき、それ以上の水平分割は考慮されないであろう。同様に、二分木ノードの高さがMinBTSizeに等しいとき、それ以上の垂直分割は考慮されないであろう。二分木のリーフノードは、それ以上のパーティショニングなしに、予測および変換処理によってさらに処理され得る。JEMでは、最大CTUサイズは、256×256ルーマサンプルであり得る。
図19は、QTBTを使用することによるブロックパーティショニングの一例を示し(図19の左側)、対応するツリー表現を示す(図19の右側)。実線は、四分木分割を示し、破線は、二分木分割を示す。二分木の各分割(すなわち、非リーフ)ノードでは、どの分割タイプ(すなわち、水平または垂直)が使用されるかを示すために1つのフラグがシグナリングされ、0は、水平分割を示し、1は垂直分割を示す。四分木分割の場合、四分木分割は、ブロックを水平と垂直の両方に分割して、等しいサイズを有する4つのサブブロックを生成するので、分割タイプを示す必要はない。
加えて、QTBT方式は、ルーマおよびクロマが別個のQTBT構造を有するためのフレキシビリティをサポートする。例えば、PスライスおよびBスライスの場合、1つのCTU中のルーマCTBおよびクロマCTBは、同じQTBT構造を共有する。しかしながら、Iスライスの場合、ルーマCTBは、QTBT構造によってCUにパーティショニングされ得、クロマCTBは、別のQTBT構造によってクロマCUにパーティショニングされる。この例では、Iスライス中のCUは、1つのルーマ成分のコーディングブロックまたは2つのクロマ成分のコーディングブロックを含み、PまたはBスライス中のCUは、すべての3つの色成分のコーディングブロックを含む。HEVCでは、動き補償のメモリアクセスを低減するために、小さいブロックに対するインター予測が制限され得、その結果、双予測は、4×8および8×4ブロックに対してサポートされず、インター予測は、4×4ブロックに対してサポートされない。JEM-7.0で実施されるようなQTBTでは、これらの制限を除去することができる。
ブロックパーティショニングは、三分木(TT)構造によるものであり得る。図20は、例示的な三分木パーティショニングを示す。VVCでは、マルチタイプツリー(MTT)構造は、図20に示すように、QTBTの上に水平および垂直の中心側三分木を追加し得る(それぞれaおよびb)。三分木パーティショニングは、四分木および二分木パーティショニングを補完し得る。四分木および二分木は、ブロック中心に沿って分割するのに対して、三分木パーティショニングは、ブロック中心に位置するオブジェクトをキャプチャすることが可能であり得る。三分木パーティショニングにより、提案された三分木のパーティションの幅および高さは、追加の変換が必要とされないように、2のべき乗であり得る。2レベルツリーの設計は、複雑さ低減によって動機付けられ得、ツリーをトラバースする複雑さは、TDであり、ここで、Tは、分割タイプの数を示し、Dは、ツリーの深度である。
テンプレートマッチング(TM)
図21は、初期動きベクトル(MV)の周囲の探索エリア上のテンプレートマッチング(TM)の例を示す。テンプレートマッチングは、現在ピクチャ中のテンプレート(すなわち、現在のCUの上および/または左の隣接ブロック)と参照中のブロック(すなわち、テンプレートと同じサイズ)との間の最も近い一致を見つけることによって、現在のコーディングユニット(CU)またはブロックの動き情報を精緻化するためのデコーダ側MV導出方法であり得る。動き情報は、空間参照動き情報(または空間動きベクトル)および/または時間参照動き情報(または時間動きベクトル)を含み得る。図21に示すように、より良いMVは、[-8,+8]-pel探索範囲内の現在のCUの初期動きの周りで探索されるべきである。
AMVPモードでは、現在ブロックのテンプレートと参照ブロックのテンプレートとの間のTM誤差が最小であるMVP候補が、エンコーダ側およびデコーダ側において選定される。MV精緻化のために、このMVP候補に対してTMが実行される。マージモードでは、同様の探索方法が、マージインデックスによって示されるマージ候補に適用され得る。
デコーダ側動きベクトル精緻化(DMVR)
図22は、デコーダ側動きベクトル精緻化の例を示す。マージモードのMVの精度を高めるために、VVCにおいてバイラテラルマッチング(BM)ベースのデコーダ側動きベクトル精緻化が適用され得る。双予測動作では、参照ピクチャリストL0および参照リストLl中の初期MVの周りで、精緻化されたMVが探索される。BM方法は、参照リストL0およびリストLl中の2つの候補ブロック間の歪みを計算する。図22に示すように、初期MVの周囲の各MV候補に基づく2つのブロック間のSAD(MV1’)が計算される。最も低いSADを有するMV候補が、精緻化されたMVになり、双予測信号を生成するために使用される。
DMVRプロセスによって導出される精緻化されたMVは、現在ブロックのためのインター予測サンプルを生成するために使用され、将来のピクチャコーディングのための時間動きベクトル予測でも使用される。一方、元のMVは、現在フレーム内の将来のCUコーディングのためのデブロッキングおよび空間動きベクトル予測プロセスで使用される。DMVRでは、探索点は、初期MVを取り囲んでおり、MVオフセットは、MV差分ミラーリングルールに従い得る。言い換えると、候補MVペア(MV0,MV1)によって示される、DMVRによってチェックされる任意の点は、以下の2つの方程式に従い得る:
MV0’=MV0+MV_offset 式(1)
MV1’=MV1-MV_offset 式(2)
ここで、MV_offsetは、参照ピクチャのうちの1つにおける初期MV(MV0,MV1)と精緻化されたMV(MV0’,MV1’)との間の精緻化オフセットを表す。精緻化探索範囲は、初期MVから2つの整数ルーマサンプルである。探索は、整数サンプルオフセット探索段階と分数サンプル精緻化段階とを含む。
一実施形態では、25点全探索が整数サンプルオフセット探索に適用される。最初に、初期MVペアのSADが計算される。初期MVペアのSADがしきい値よりも小さい場合、DMVRの整数サンプル段階は終了する。そうでなければ、残りの24点のSADが計算され、ラスタ走査順にチェックされる。最小のSADを有する点が、整数サンプルオフセット探索段階の出力として選択される。DMVR精緻化の不確実性のペナルティを低減するために、DMVRプロセス中の元のMVが優先され得る(favor)。初期動きベクトルによって参照される参照ブロック間のSADは、SAD値の1/4だけ減少する。
整数サンプル探索の後に分数サンプル精緻化が続き得る。計算の複雑さを削減するために、SAD比較による追加の探索の代わりに、パラメトリック誤差表面方程式を使用することによって、分数サンプル精緻化が導出される。パラメトリック誤差表面ベースのサブピクセルオフセット推定では、中心位置におけるコストと、中心からの4つの隣接する整数位置におけるコストとを使用して、以下の形式の2D放物表面方程式を当てはめる:
E(x,y)=A(x-xmin2+B(y-ymin2+C 式(3)
ここで、(xmin,ymin)は、最小コストを有する分数位置の座標に対応し、Cは、最小コスト値に対応する。5つの探索点のコスト値を用いて上記の方程式を解くことによって、(xmin,ymin)は次のように計算される:
min=(E(-1,0)-E(1,0))/(2(E(-1,0)+E(1,0)-2E(0,0))) 式(4)
min=(E(0,-1)-E(0,1))/(2((E(0,-1)+E(0,1)-2E(0,0))) 式(5)
minおよびyminの値は、すべてのコスト値が正であり、最小値がE(0,0)であるので、-8と8との間でクリッピングされる。これは、VVCにおいて1/16-pel MV精度を有する半ピクセルオフセットに対応する。計算された(xmin,ymin)が整数距離精緻化MVに加算されて、サブピクセル精度を有する最終的な精緻化されたデルタMVが得られる。
AV1における参照フレームコーディング
AV1では、インターフレーム中の各コード化ブロックについて、現在ブロックのモードがスキップモードではなくインターコード化モードである場合、現在ブロックに単一参照モードが使用されるのか複合参照モードが使用されるのかを示すために1つのフラグがシグナリングされ得る。単一参照モードでは、1つの動きベクトルによって予測ブロックが生成され、複合参照モードでは、2つの動きベクトルから導出される2つの予測ブロックを加重平均することによって予測ブロックが生成される。単一参照の場合、どの参照フレームが現在ブロックに使用されるかを示すために、1から7までの値を有する参照フレームインデックスがビットストリーム中でシグナリングされる。参照フレームインデックス1~4は、表示順序で現在フレームに先行する参照フレームに対して指定され得、インデックス5~7は、表示順序で現在フレームよりも後の参照フレームである。
複合参照の場合、それが単方向複合参照モードであるか、も双方向複合参照モードであるかを示すために、別のフラグがシグナリングされ得る。単方向複合参照モードの場合、両方の参照フレームが、表示順序で現在フレームよりも前または後のいずれかである。双方向複合参照モードの場合、表示順序で、1つの参照フレームは現在フレームよりも前であり、もう1つの参照フレームは現在フレームよりも後である。加えて、許容される単方向参照フレームの組合せは、4つの可能なペア、すなわち、(1,2)、(1,3)、(1,4)、および(5,7)のみに限定されるが、双方向の場合、12個すべての組合せがサポートされる。その背後にある理論的根拠は、表示順序で現在フレームの両側にある参照フレームの数が均衡していれば、双方向参照予測は、より良好な予測を提供する可能性が高いということにある。ほとんどの参照フレームが現在フレームの片側にあるとき、最も近いものを含む外挿が現在フレームにより関連し得る。
AV1およびCWG-B049における動きベクトル参照方式
動きベクトルをシグナリングするためのビットは、ビットレート全体のかなりの部分を占める。現代のビデオコーデックは、動きベクトルのための予測コーディングを採用し、エントロピーコーディングを用いて差分をコーディングし得る。予測精度は、コーディング効率に大きな影響を与える。AV1は、空間的および時間的な隣接から候補動きベクトルを取得し、効率的なエントロピーコーディングのためにそれらをランク付けする動的な動きベクトル参照方式を採用する。一実施形態では、空間動きベクトル参照により、コーディングブロックは、8×8ルーマサンプルの単位でそれの空間的な隣接を探索して、現在ブロックと同じ参照フレームインデックスを有するものを見つける。複合インター予測モードの場合、それは同じ参照フレームペアを含み得る。図23は、例示的な空間動きベクトル探索パターンを示す。図23に示すように、探索領域は、現在ブロックの上の3つの8×8ブロック行と、現在ブロックの左の3つの8×8ブロック列とを含み、探索順序は、インデックスによって示される。CWG-B049では、上の8×8ブロック行の数は3から1に低減され得るが、左の列の数は3のままである。
別の実施形態では、時間動きベクトル参照は、最初に、線形補間または外挿のいずれかを通して、以前にコーディングされたフレームからの動きベクトルを利用することによって構築される、現在フレームと以前にコーディングされたフレームとの間の動き軌道を含み得る。次に、現在フレームから参照フレームに向かって動き軌跡を延長することによって、現在フレームと所与の参照フレームとの間の動きフィールドを形成することができる。
参照フレームのためのシグナリング方法の現在の設計では、参照フレームリスト0および参照フレームリスト1中の参照フレームの順序は、隣接ブロック中の参照フレームにかかわらず、1つのフレーム内のすべてのブロックについて固定される。したがって、参照フレーム選択の空間的および/または時間的相関は利用されない。
複合参照モードの場合、1つの動きベクトルペアのための2つの参照フレームのPOCの両方が現在フレームのPOCよりも大きい場合または両方が現在フレームのPOCよりも小さい場合、2つの参照フレームの方向は同じである。そうではなく、一方の参照フレームのPOCが現在フレームのPOCよりも大きく、他方の参照フレームのPOCが現在フレームのPOCよりも小さい場合、2つの参照フレームの方向は異なる。
提案される実施形態は、別々に使用されてもよいし、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装され得る。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。以下では、ブロックという用語は、予測ブロック、コーディングブロック、またはコーディングユニット、すなわちCUとして解釈され得る。参照フレームの方向は、参照フレームが表示順序で現在フレームよりも前であるか、または表示順序で現在フレームよりも後であるかによって決定され得る。
図24は、本開示の例示的な実施形態による方法のフローチャートを示す。単一または複合参照モードについて、このテンプレートマッチング(TM)方法は、各ブロックについて参照フレームまたは参照フレームペアを並べ替えるために採用され得る。ブロック2402において、現在ブロックのテンプレートと参照ブロックのテンプレートとが比較される。比較は、現在ブロックのテンプレート(すなわち、上および/または左の隣接ブロック)と、空間参照動き情報(または空間動きベクトル)および/または時間参照動き情報(または時間動きベクトル)の動き情報によって参照される参照ブロックのテンプレートとの間の差分についてのものであり得る。この比較に基づいて、ブロック2404においてテンプレート間の差分が計算される。計算は、差分絶対値和(SAD)、差分二乗和(SSD)、平均二乗誤差(MSE)、または差分変換絶対値和(SATD)に基づき得る。一実施形態では、空間参照動き情報および/または時間参照動き情報ごとに、現在ブロックのテンプレートと参照ブロックのテンプレートとの間の差分が計算され、ブロック2406にあるように、関連付けられた参照フレームまたは参照フレームペアのスコア値としてマークされる。計算された差分に基づいて、各参照フレームに対してスコアが決定される。次いで、ブロック2408において、すべての利用可能な参照フレームがスコア値に基づいてランク付けされる。ランキングは、ブロック2410におけるフレームの並べ替えに使用され得る。
参照フレームとして説明されるが、それはまた、参照フレームペアを含み得る。一実施形態では、複数の動きベクトルが1つの参照フレームまたは1つの参照フレームペアを指している場合、これらの動きベクトルによって参照される最小の異なる値は、1つの参照フレームまたは1つの参照フレームペアのスコア値としてマークされ得る。別の実施形態では、1つの参照フレームまたは1つの参照フレームペアを指す動きベクトルがない場合、その参照フレームまたは参照フレームペアのスコア値は、最大許容値としてマークされる。別の実施形態では、複数の参照フレームまたは複数の参照フレームペアのスコア値が同じである場合、これらの参照フレームまたは参照フレームペアについてのランキング順序は、空間参照動き情報および/または時間参照動き情報の走査順序と同じである。別の実施形態では、複数の参照フレームまたは複数の参照フレームペアのスコア値が同じである場合、これらの参照フレームまたは参照フレームペアのランキング順序は、空間参照動き情報および/または時間参照動き情報において使用されるこれらの参照フレームまたは参照フレームペアの出現頻度に依存する。
一実施形態では、すべての許容された単方向および双方向の複合参照フレームペアは、TM方法を使用することによって一緒にランク付けされ、このランキング順序での現在ブロックのための参照フレームペアのインデックスは、ビットストリーム中でシグナリングされる。一実施形態では、すべての許容された単一参照フレームは、TM方法を使用することによって一緒にランク付けされ、このランキング順序での現在ブロックの参照フレームのインデックスは、ビットストリーム中でシグナリングされる。
一実施形態では、テンプレートマッチング(TM)によって各ブロックについて参照フレームを並べ替えるための方法が提供され、本方法は、動き情報について、現在ブロックのテンプレートと参照ブロックのテンプレートとを比較するステップであって、動き情報は、空間参照動き情報または時間参照動き情報を含む、ステップと、現在ブロックのテンプレートと参照ブロックのテンプレートとの間の差分を計算するステップと、計算された差分に基づいて、関連付けられた参照フレームのスコア値を決定するステップと、決定されたスコアに基づいて参照フレームを並べ替えるステップとを含む。参照フレームは、参照フレームペアをさらに含む。TMは、現在ブロックの動き情報を精緻化するためのデコーダ側動きベクトル導出を含む。並べ替えるステップは、参照フレームの各々についてのスコア値に基づいて利用可能な参照フレームをランク付けするステップをさらに含む。複数の参照フレームのスコア値が同等であるとき、ランク付けするステップは、空間参照動き情報または時間参照動き情報の走査順序に対応する。複数の参照フレームのスコア値が同等であるとき、ランク付けするステップは、空間参照動き情報または時間参照動き情報において使用されるこれらの参照フレームの出現頻度に基づく。計算するステップは、差分絶対値和(SAD)、差分二乗和(SSD)、平均二乗誤差(MSE)、または差分変換絶対値和(SATD)のうちの少なくとも1つを含む。テンプレートは、上または左の隣接ブロックを含む。空間参照動き情報は、1つまたは複数の空間動きベクトルを含む。時間参照動き情報は、1つまたは複数の時間動きベクトルを含む。複数の動きベクトルが参照フレームのうちの1つを指しているとき、最小の差分を有する動きベクトルのうちの1つが、スコア値を決定するために使用される。参照フレームのうちの1つを指す動きベクトルがないとき、スコア値は、最大許容値であると決定される。許容された単方向および双方向の複合参照フレームは、TMを使用することによって一緒にランク付けされ、現在ブロックのための参照フレームのインデックスは、ビットストリーム中でシグナリングされる。許容された単一の参照フレームは、TMを使用することによって一緒にランク付けされ、現在ブロックのための参照フレームのインデックスは、ビットストリーム中でシグナリングされる。
本開示における実施形態は、別々に使用されてもよく、または任意の順序で組み合わされてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装され得る。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。ブロックという用語は、予測ブロック、コーディングブロック、またはコーディングユニット、すなわちCUを含み得る。本開示における実施形態は、ルーマブロックまたはクロマブロックに適用され得る。
上記で説明した技法は、コンピュータ可読命令を使用してコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶され得る。例えば、図25は、開示される主題の特定の実施形態を実装するのに適したコンピュータシステム(2500)を示す。
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって、直接実行するか、または解釈、マイクロコード実行などを通して実行することができる命令を含むコードを作成するために、アセンブリ、コンパイル、リンキング、または同様の機構に従い得る(subject to)任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ得る。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行され得る。
コンピュータシステム(2500)について図25に示される構成要素は、本質的に例示的であり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能性の範囲に関していかなる限定を示唆することも意図されない。また、構成要素の構成は、コンピュータシステム(2500)の例示的な実施形態に示される構成要素のいずれか1つまたは組合せに関して、いかなる依存性または要件も有するものと解釈されるべきではない。
コンピュータシステム(2500)は、特定のヒューマンインターフェース入力デバイスを含み得る。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を通して、1人または複数の人間ユーザによる入力に反応するものであり得る。ヒューマンインターフェースデバイスはまた、オーディオ(スピーチ、音楽、周囲音など)、画像(走査画像、静止画像カメラから取得された写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関連しない特定の媒体をキャプチャするために使用され得る。
入力ヒューマンインターフェースデバイスは、キーボード(2501)、マウス(2502)、トラックパッド(2503)、タッチスクリーン(2510)、データグローブ(図示せず)、ジョイスティック(2505)、マイクロフォン(2506)、スキャナ(2507)、カメラ(2508)のうちの1つまたは複数(各々1つのみが示されている)を含み得る。
コンピュータシステム(2500)はまた、特定のヒューマンインターフェース出力デバイスを含み得る。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味を通して、1人または複数の人間ユーザの感覚を刺激している可能性がある。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2510)、データグローブ(図示せず)、またはジョイスティック(2505)による触覚フィードバックであるが、入力デバイスとしての役割を果たさない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(スピーカ(2509)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2510)などであり、それぞれタッチスクリーン入力機能を有しても有さなくてもよく、それぞれ触覚フィードバック機能を有しても有さなくてもよく、そのうちのいくつかは、ステレオグラフィック出力などの手段を介して2次元視覚出力または3次元を上回る出力を出力することが可能であり得る)、仮想現実メガネ(図示せず)、ホログラフィックディスプレイ、および煙タンク(図示せず))、ならびにプリンタ(図示せず)を含み得る。
コンピュータシステム(2500)はまた、CD/DVDなどの媒体(2521)を有するCD/DVD ROM/RW(2520)を含む光媒体、サムドライブ(2522)、リムーバルハードドライブまたはソリッドステートドライブ(2523)、テープおよびフロッピー(登録商標)ディスクなどのレガシー磁気媒体(図示せず)、セキュリティドングルなどの専用ROM/ASIC/PLDベースのデバイス(図示せず)など、人間がアクセス可能な記憶デバイスおよびそれらの関連媒体を含むことができる。
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
コンピュータシステム(2500)はまた、1つまたは複数の通信ネットワーク(2555)へのインターフェース(2554)を含むことができる。ネットワークは、例えば、ワイヤレス、ワイヤライン、光であり得る。ネットワークはさらに、ローカル、ワイドエリア、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例としては、イーサネット(登録商標)などのローカルエリアネットワーク、ワイヤレスLAN、GSM(登録商標)、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波放送TVを含むTVワイヤラインまたはワイヤレスワイドエリアデジタルネットワーク、CANバスを含む車両および産業用などが挙げられる。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(2549)(例えば、コンピュータシステム(2500)のUSBポートなど)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、一般に、以下で説明するようにシステムバスへの取り付けによってコンピュータシステム(2500)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2500)は、他のエンティティと通信することができる。そのような通信は、単方向受信専用(例えば、放送TV)、単方向送信専用(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えば、ローカルもしくはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへのものであり得る。特定のプロトコルおよびプロトコルスタックは、上述したように、それらのネットワークおよびネットワークインターフェースのそれぞれで使用され得る。
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム(2500)のコア(2540)に取り付けることができる。
コア(2540)は、1つまたは複数の中央処理装置(CPU)(2541)、グラフィックス処理装置(GPU)(2542)、フィールドプログラマブルゲートエリア(FPGA)(2543)の形態の専用プログラマブル処理ユニット、特定のタスクのためのハードウェアアクセラレータ(2544)、グラフィックスアダプタ(2550)などを含むことができる。これらのデバイスは、読取り専用メモリ(ROM)(2545)、ランダムアクセスメモリ(2546)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量記憶装置(2547)とともに、システムバス(2548)を通して接続され得る。いくつかのコンピュータシステムでは、システムバス(2548)は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺デバイスは、コアのシステムバス(2548)に直接、または周辺バス(2549)を介して接続することができる。一例では、画面(2510)は、グラフィックスアダプタ(2550)に接続することができる。周辺バスのアーキテクチャには、PCI、USBなどが含まれる。
CPU(2541)、GPU(2542)、FPGA(2543)、およびアクセラレータ(2544)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(2545)またはRAM(2546)に記憶することができる。一時的なデータは、RAM(2546)に記憶することもでき、永続的なデータは、例えば、内部大容量記憶装置(2547)に記憶することができる。メモリデバイスのいずれかへの高速記憶および取り出しは、1つまたは複数のCPU(2541)、GPU(2542)、大容量記憶装置(2547)、ROM(2545)、RAM(2546)などと密接に関連付けられ得る、キャッシュメモリの使用を通して可能にされ得る。
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計され構築されたものであってもよく、またはコンピュータソフトウェア分野の当業者に周知であり利用可能な種類のものであってもよい。
非限定的な例として、アーキテクチャ(2500)、具体的にはコア(2540)を有するコンピュータシステムは、プロセッサ(複数可)(CPU、GPU、FPGA、アクセラレータなどを含む)が、1つまたは複数の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行した結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介したようなユーザがアクセス可能な大容量記憶装置に関連付けられた媒体だけでなく、コア内部の大容量記憶装置(2547)またはROM(2545)などの非一時的な性質であるコア(2540)の特定の記憶装置であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(2540)によって実行され得る。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(2540)および具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(2546)に記憶されたデータ構造を定義すること、および、ソフトウェアによって定義されたプロセスにしたがってそのようなデータ構造を修正することを含む、本明細書で説明した特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、本明細書で説明した特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、またはそれとともに動作することができる、回路(例えば、アクセラレータ(2544))においてハードワイヤードまたは別様に具現化された論理の結果として、機能性を提供することができる。ソフトウェアへの言及は、必要に応じて、論理を包含することができ、逆もまた同様である。コンピュータ可読媒体への言及は、適切な場合、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具現化する回路、または両方を包含することができる。本開示は、ハードウェアおよびソフトウェアの任意の適切な組合せを包含する。
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内に入る変更、置換、および様々な代替同等物がある。したがって、当業者であれば、本明細書で明示的に示されていないまたは説明されてないが、本開示の原理を具現化し、したがって本開示の精神および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
付記A:頭字語
ALF:Adaptive Loop Filter(適応ループフィルタ)
AMVP:Advanced Motion Vector Prediction(高度動きベクトル予測)
APS:Adaptation Parameter Set(適応パラメータセット)
ASIC:Application-Specific Integrated Circuit(特定用途向け集積回路)
AV1:AOMedia Video 1
AV2:AOMedia Video 2
BCW:Bi-prediction with CU-level Weights(CUレベルの重みによる双予測)
BM:Bilateral Matching(バイラテラルマッチング)
BMS:benchmark set(ベンチマークセット)
CANBus:Controller Area Network Bus(コントローラエリアネットワークバス)
CC-ALF:Cross-Component Adaptive Loop Filter(クロスコンポーネント適応ループフィルタ)
CCSO:Cross-Component Sample Offset(クロスコンポーネントサンプルオフセット)
CD:Compact Disc(コンパクトディスク)
CDEF:Constrained Directional Enhancement Filter(制約付き指向性強調フィルタ)
CDF:Cumulative Density Function(累積密度関数)
CfL:Chroma from Luma(ルーマからのクロマ)
CIIP:Combined intra-inter prediction(複合イントラ-インター予測)
CPUs:Central Processing Units(中央処理装置)
CRT:Cathode Ray Tube(ブラウン管)
CTBs:Coding Tree Blocks(コーディングツリーブロック)
CTU:Coding Tree Unit(コーディングツリーユニット)
CTUs:Coding Tree Units(コーディングツリーユニット)
CU:Coding Unit(コーディングユニット)
DMVR:Decoder-side Motion Vector Refinement(デコーダ側動きベクトル精緻化)
DPB:Decoded Picture Buffer(復号ピクチャバッファ)
DPS:Decoding Parameter Set(復号パラメータセット)
DVD:Digital Video Disc(デジタルビデオディスク)
FPGA:Field Programmable Gate Areas(フィールドプログラマブルゲート領域)
GBI:Generalized Bi-prediction(一般化双予測)
GOPs:Groups of Pictures(ピクチャのグループ)
GPUs:Graphics Processing Units(グラフィックス処理装置)
GSM:Global System for Mobile communications
HDR:high dynamic range(高ダイナミックレンジ)
HEVC:High Efficiency Video Coding(高効率ビデオコーディング)
HRD:Hypothetical Reference Decoder(仮想参照デコーダ)
IBC(またはIntraBC):Intra Block Copy(イントラブロックコピー)
IC:Integrated Circuit(集積回路)
ISP:Intra Sub-Partitions(イントラサブパーティション)
JEM:joint exploration model(共同探索モデル)
JVET:Joint Video Exploration Team(共同ビデオ探索チーム)
LAN:Local Area Network(ローカルエリアネットワーク)
LCD:Liquid-Crystal Display(液晶ディスプレイ)
LR:Loop Restoration Filter(ループ復元フィルタ)
LSO:Local Sample Offset(ローカルサンプルオフセット)
LTE:Long-Term Evolution(ロングタームエボリューション)
MMVD:Merge Mode with Motion Vector Difference(動きベクトル差分を有するマージモード)
MPM:most probable mode(最確モード)
MV:Motion Vector(動きベクトル)
MV:Motion Vector(動きベクトル)
MVD:Motion Vector difference(動きベクトル差分)
MVD:Motion vector difference(動きベクトル差分)
MVP:Motion Vector Predictor(動きベクトル予測子)
OLED:Organic Light-Emitting Diode有機発光ダイオード)
PBs:Prediction Blocks(予測ブロック)
PCI:Peripheral Component Interconnect(周辺構成要素相互接続)
PDPC:Position Dependent Prediction Combination(位置依存予測組合せ)
PLD:Programmable Logic Device(プログラマブルロジックデバイス)
POC:Picture Order Count(ピクチャオーダカウント)
PPS:Picture Parameter Set(ピクチャパラメータセット)
PU:Prediction Unit(予測ユニット)
PUs:Prediction Units(予測ユニット)
RAM:Random Access Memory(ランダムアクセスメモリ)
ROM:Read-Only Memory(読取り専用メモリ)
RPS:Reference Picture Set(参照ピクチャセット)
SAD:Sum of Absolute Difference(差分絶対値和)
SAO:Sample Adaptive Offset(サンプル適応オフセット)
SB:Super Block(スーパーブロック)
SCC:Screen Content Coding(画面コンテンツコーディング)
SDP:Semi Decoupled Partitioning(半分離パーティショニング)
SDR:standard dynamic range(標準ダイナミックレンジ)
SDT:Semi Decoupled Tree(半分離ツリー)
SEI:Supplementary Enhancement Information(補足強化情報)
SNR:Signal Noise Ratio(信号対雑音比)
SPS:Sequence Parameter Setting(シーケンスパラメータ設定)
SSD:solid-state drive(ソリッドステートドライブ)
SST:Semi Separate Tree(半分離ツリー)
TM:Template Matching(テンプレートマッチング)
TU:Transform Unit(変換ユニット)
TUs:Transform Units(変換ユニット)
USB:Universal Serial Bus(ユニバーサルシリアルバス)
VPS:Video Parameter Set(ビデオパラメータセット)
VUI:Video Usability Information(ビデオユーザビリティ情報)
VVC:versatile video coding(多用途ビデオコーディング)
WAIP:Wide-Angle Intra Prediction(広角イントラ予測)

Claims (16)

  1. テンプレートマッチング(TM)によって各ブロックについて参照フレームを並べ替えるための方法であって、
    動き情報について、現在ブロックのテンプレートと参照ブロックのテンプレートとを比較するステップであって、前記動き情報は、空間参照動き情報または時間参照動き情報を含む、ステップと、
    前記現在ブロックの前記テンプレートと前記参照ブロックの前記テンプレートとの間の差分を計算するステップと、
    前記計算された差分に基づいて、関連付けられた参照フレームのスコア値を決定するステップと、
    前記決定されたスコアに基づいて前記参照フレームを並べ替えるステップと
    を含む方法。
  2. 前記参照フレームは、参照フレームペアをさらに含む、請求項1に記載の方法。
  3. 前記TMは、前記現在ブロックの前記動き情報を精緻化するためのデコーダ側動きベクトル導出を含む、請求項1に記載の方法。
  4. 前記並べ替えるステップは、
    前記参照フレームの各々についての前記スコア値に基づいて利用可能な参照フレームをランク付けするステップ
    をさらに含む、請求項1に記載の方法。
  5. 複数の参照フレームの前記スコア値が同等であるとき、前記ランク付けするステップは、前記空間参照動き情報または時間参照動き情報の走査順序に対応する、請求項4に記載の方法。
  6. 複数の参照フレームの前記スコア値が同等であるとき、前記ランク付けするステップは、前記空間参照動き情報または時間参照動き情報において使用されるこれらの参照フレームの出現頻度に基づく、請求項4に記載の方法。
  7. 前記計算するステップは、差分絶対値和(SAD)、差分二乗和(SSD)、平均二乗誤差(MSE)、または差分変換絶対値和(SATD)のうちの少なくとも1つを含む、請求項1に記載の方法。
  8. 前記テンプレートは、上または左の隣接ブロックを含む、請求項1に記載の方法。
  9. 前記空間参照動き情報は、1つまたは複数の空間動きベクトルを含む、請求項1に記載の方法。
  10. 前記時間参照動き情報は、1つまたは複数の時間動きベクトルを含む、請求項1に記載の方法。
  11. 複数の動きベクトルが前記参照フレームのうちの1つを指しているとき、最小の差分を有する前記動きベクトルのうちの1つが、前記スコア値を決定するために使用される、請求項1に記載の方法。
  12. 前記参照フレームのうちの1つを指す動きベクトルがないとき、前記スコア値は、最大許容値であると決定される、請求項1に記載の方法。
  13. 許容された単方向および双方向の複合参照フレームは、前記TMを使用することによって一緒にランク付けされ、前記現在ブロックのための前記参照フレームのインデックスは、ビットストリーム中でシグナリングされる、請求項1に記載の方法。
  14. 許容された単一の参照フレームは、前記TMを使用することによって一緒にランク付けされ、前記現在ブロックのための前記参照フレームのインデックスは、ビットストリーム中でシグナリングされる、請求項1に記載の方法。
  15. ビデオビットストリームを復号するための装置であって、
    命令を記憶するメモリと、
    前記メモリと通信するプロセッサと
    を備え、前記プロセッサが前記命令を実行するとき、前記プロセッサは、前記装置に、請求項1から14のいずれか一項に記載の方法を実行させる、装置。
  16. コンピュータに、請求項1から14のいずれか一項に記載の方法を実行させるコンピュータプログラム。
JP2023528027A 2021-09-22 2022-09-16 参照フレームの適応的な並べ替えのための方法および装置 Pending JP2023549182A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163247088P 2021-09-22 2021-09-22
US63/247,088 2021-09-22
US17/932,333 2022-09-15
US17/932,333 US20230093043A1 (en) 2021-09-22 2022-09-15 Method and apparatus for adaptive reordering for reference frames
PCT/US2022/043805 WO2023049043A1 (en) 2021-09-22 2022-09-16 Methods and apparatus for adaptive reordering for reference frames

Publications (1)

Publication Number Publication Date
JP2023549182A true JP2023549182A (ja) 2023-11-22

Family

ID=85572774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023528027A Pending JP2023549182A (ja) 2021-09-22 2022-09-16 参照フレームの適応的な並べ替えのための方法および装置

Country Status (5)

Country Link
US (1) US20230093043A1 (ja)
JP (1) JP2023549182A (ja)
KR (1) KR20230088482A (ja)
CN (1) CN116325735A (ja)
WO (1) WO2023049043A1 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557514B (zh) * 2008-04-11 2011-02-09 华为技术有限公司 一种帧间预测编解码方法、装置及系统
US20190007699A1 (en) * 2017-06-28 2019-01-03 Futurewei Technologies, Inc. Decoder Side Motion Vector Derivation in Video Coding
CN111630859B (zh) * 2017-12-14 2024-04-16 Lg电子株式会社 根据图像编码系统中的帧间预测进行图像解码的方法和装置
US10469869B1 (en) * 2018-06-01 2019-11-05 Tencent America LLC Method and apparatus for video coding

Also Published As

Publication number Publication date
WO2023049043A1 (en) 2023-03-30
KR20230088482A (ko) 2023-06-19
US20230093043A1 (en) 2023-03-23
CN116325735A (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
AU2023200251B2 (en) Method and apparatus for video coding
US20240015281A1 (en) Joint signaling method for motion vector difference
US20230283796A1 (en) Determining applicability of intra block copy in semi-decoupled partitioning
US20230156218A1 (en) Derived motion vector with single reference signaling
US20230089594A1 (en) Joint motion vector difference coding
JP2023553922A (ja) 動きベクトル差の改善されたシグナリングのための方法および装置
WO2023055548A1 (en) Deriving offsets in cross-component transform coefficient level reconstruction
KR20230135641A (ko) 적응형 모션 벡터 차이 해상도를 위한 공동 코딩
KR20230133351A (ko) 모션 벡터 차이의 적응형 해상도와 모션 벡터-관련파라미터들의 시그널링/도출 사이의 상호의존
KR20220165279A (ko) 다중 참조 라인 인트라 예측과 변환 파티셔닝 사이의 조화된 설계
JP2023546962A (ja) 成分間のブロック終了フラグの符号化
JP2023508303A (ja) ビデオコーディングのための方法、装置およびコンピュータプログラム
US20230093043A1 (en) Method and apparatus for adaptive reordering for reference frames
JP7439344B2 (ja) ビデオデコーディングのための方法、デバイス、およびコンピュータプログラム
US20230126552A1 (en) Context derivation for motion vector difference coding
US20220400275A1 (en) Zero Residual Flag Coding
US20230093129A1 (en) Method and apparatus for intra block copy mode coding with search range switching
JP2024509606A (ja) 単一参照動きベクトル差分のための適応解像度
JP2024512662A (ja) 算術符号化のためのブロック・レベルのウィンドウ・サイズ更新のための方法および装置
JP2023543586A (ja) スキップ変換フラグ符号化
JP2023522704A (ja) ビデオコーディングのための方法および装置、およびコンピュータプログラム
KR20230129067A (ko) 결합 mvd 코딩을 위한 mvd 스케일링
KR20230159603A (ko) 다중 예측 모드에 기반한 교차 채널 예측
KR20230105346A (ko) 비디오 데이터를 프로세싱하는 방법 및 디바이스
WO2023091263A1 (en) Methods and devices for refining motion vector candidates

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240424