JP2021534627A - 分類を有する履歴ベース候補リスト - Google Patents

分類を有する履歴ベース候補リスト Download PDF

Info

Publication number
JP2021534627A
JP2021534627A JP2021506696A JP2021506696A JP2021534627A JP 2021534627 A JP2021534627 A JP 2021534627A JP 2021506696 A JP2021506696 A JP 2021506696A JP 2021506696 A JP2021506696 A JP 2021506696A JP 2021534627 A JP2021534627 A JP 2021534627A
Authority
JP
Japan
Prior art keywords
candidate list
history
subset
candidates
based candidate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
JP2021506696A
Other languages
English (en)
Other versions
JPWO2020037144A5 (ja
Inventor
チェン、ウェイ−ジュン
チェン、チュン−チ
カルチェビチ、マルタ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2021534627A publication Critical patent/JP2021534627A/ja
Publication of JPWO2020037144A5 publication Critical patent/JPWO2020037144A5/ja
Ceased 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

現在ブロックに対する動き情報を決定するためのビデオコーディングにおける履歴ベースの候補リスト動作のための技術を説明する。一例では、ビデオデータをデコードするデバイスは、履歴ベースの候補リストを記憶するように構成されているメモリと、ビデオデコーダとを含んでいる。ビデオデコーダは、メモリ中で、履歴ベース候補リストの候補として、再構築されたブロックの動き情報を履歴ベース候補リスト中に記憶させることにより、履歴ベース候補リストを構築し、履歴ベース候補リストの候補のサブセットを識別し、履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リストを発生させ、発生させた候補リストに基づいて、現在ブロックを再構築するように構成されている。【選択図】図10

Description

優先権の主張
[0001]
本出願は、2018年8月16日に出願された米国仮特許出願番号第62/764,851号の利益を主張する、2019年8月14日に出願された米国出願番号第16/540,893号の優先権を主張するものであり、その両方の全内容が参照によりここに組み込まれている。
[0002]
本開示は、ビデオエンコーディングおよびビデオデコーディングに関連する。
背景
[0003]
デジタルビデオ能力は、デジタルテレビ、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、パーソナルデジタルアシスタント(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、e−ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラまたは衛星無線電話機、いわゆる「スマートフォン」、ビデオテレビ会議デバイス、ビデオストリーミングデバイス、および、これらに類するものを含む、幅広い範囲のデバイスに組み込むことができる。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、Part 10、高度ビデオコーディング(AVC)、高効率ビデオコーディング(HEVC)標準規格、ITU−T H.265/高効率ビデオコーディング(HEVC)、および、このような標準規格の拡張によって規定される標準規格に記述されているもののような、ビデオコーディング技術を実現する。ビデオデバイスは、このようなビデオコーディング技術を実現することによって、より効率的にデジタルビデオ情報を送信、受信、エンコード、デコード、および/または、記憶してもよい。
[0004]
ビデオコーディング技術は、ビデオシーケンスに内在する冗長を低減または取り除くために、空間的(イントラピクチャー)予測、および/または、時間的(インターピクチャー)予測を含んでいる。ブロックベースのビデオコーディングに対して、ビデオスライス(例えば、ビデオピクチャーまたはビデオピクチャーの一部分)は、コーディングツリーユニット(CTU)、コーディングユニット(CU)および/またはコーディングノードとして呼ばれることもあるかもしれないビデオブロックに区分してもよい。ピクチャーのイントラコード化された(I)スライスにおけるビデオブロックは、同じピクチャーにおける隣接するブロック中の参照サンプルに関する空間的予測を使用してエンコードされる。ピクチャーのインターコード化された(PまたはB)スライスにおけるビデオブロックは、同じピクチャーにおける隣接するブロック中の参照サンプルに関する空間的予測、または、他の参照ピクチャーにおける参照サンプルに関する時間的予測を使用してもよい。ピクチャーは、フレームとして呼ばれることがあり、参照ピクチャーは参照フレームとして呼ばれることがある。
概要
[0005]
一般的に、本開示は、候補リスト(例えば、マージリストまたは高度動きベクトル予測(AMVP)リスト)を発生させる際の、履歴ベース候補リストの使用に関連する技術を説明する。履歴ベース候補リスト構築において、ビデオコーダ(例えば、ビデオエンコーダまたはビデオデコーダ)は、再構築されたブロック(例えば、ビデオデコーダにより再構築されたブロック、または、ビデオエンコーダにおけるデコーディングループの一部として再構築された、再構築されたブロック)の動き情報を記憶する。再構築されたブロックは、必ずしも空間的または時間的に隣接するブロックである必要はない。ビデオコーダはその後、履歴ベース候補リストを使用して、候補リストを発生させる。
[0006]
本開示は、履歴ベース候補リストからの候補のサブセットを、最終候補リスト(例えば、最終のマージまたはAMVPの候補リスト)中に選択的に含めるための例示的な技術を説明し、これは、候補リスト中の冗長な候補の可能性を低減させる。この手法では、現在ブロックの動きベクトルを決定するために使用することができる動き情報において多様性があり、これは帯域幅効率を促進し、ビデオコーディングプロセス全体を改善する。例示的な技術は、HEVC(高効率ビデオコーディング)、VVC(汎用ビデオコーディング)のような、既存のおよび開発中のビデオコーデックのいずれに適用してもよく、または、他の何らかのビデオコーディング標準規格に対応するコーディングツールであってもよい。
[0007]
一例では、本開示は、ビデオデータをデコードする方法を説明し、方法は、履歴ベース候補リストの候補として、再構築されたブロックの動き情報を履歴ベース候補リスト中に記憶させることにより、履歴ベース候補リストを構築することと、履歴ベース候補リストの候補のサブセットを識別することと、履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リストを発生させることと、発生させた候補リストに基づいて、現在ブロックを再構築することとを含んでいる。
[0008]
一例では、本開示は、ビデオデータをデコードするデバイスを説明し、デバイスは、履歴ベース候補リストを記憶するように構成されているメモリと、プロセッサとを具備する。プロセッサは、メモリ中で、履歴ベース候補リストの候補として、再構築されたブロックの動き情報を履歴ベース候補リスト中に記憶させることにより、履歴ベース候補リストを構築するようにと、履歴ベース候補リストの候補のサブセットを識別するようにと、履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リストを発生させるようにと、発生させた候補リストに基づいて、現在ブロックを再構築するように構成されている。
[0009]
一例では、本開示は、ビデオデータをエンコードする方法を説明し、方法は、履歴ベース候補リストの候補として、再構築されたブロックの動き情報を履歴ベース候補リスト中に記憶させることにより、履歴ベース候補リストを構築することと、履歴ベース候補リストの候補のサブセットを識別することと、履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リストを発生させることと、現在ブロックを再構築するのに使用される動き情報を識別するための、発生させた候補リストに対するインデックスを示す情報をシグナリングすることとを含んでいる。
[0010]
一例では、本開示は、ビデオデータをエンコードするデバイスを説明し、デバイスは、履歴ベース候補リストを記憶するように構成されているメモリと、メモリ中で、履歴ベース候補リストの候補として、再構築されたブロックの動き情報を履歴ベース候補リスト中に記憶させることにより、履歴ベース候補リストを構築するようにと、履歴ベース候補リストの候補のサブセットを識別するようにと、履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リストを発生させるようにと、現在ブロックを再構築するのに使用される動き情報を識別するための、発生させた候補リストに対するインデックスを示す情報をシグナリングするように構成されているプロセッサとを具備する。
[0011]
1つ以上の例の詳細を、添付図面および以下の説明において述べる。他の特徴、目的、および、利点は、説明および図面から明らかになるだろう。
[0012] 図1は、本開示の技術を実行してもよい、例示的なビデオエンコーディングおよびデコーディングシステムを図示するブロック図である。 [0013] 図2Aは、マージモードに対する空間的に隣接する動きベクトル候補の例を図示する概念図である。 図2Bは、高度動きベクトル予測(AMVP)モードに対する空間的に隣接する動きベクトル候補の例を図示する概念図である。 [0014] 図3Aは、時間動きベクトル予測子(TMVP)候補の例を図示する概念図である。 図3Bは、TMVPに対する動きベクトルスケーリングの例を図示する概念図である。 [0015] 図4は、非近接空間マージ候補をフェッチする例を図示する概念図である。 [0016] 図5は、コーディング順序がA→B→C→Dである、コーディングツリーユニット(CTU)におけるコーディングユニット(CU)区分の例を図示する概念図である。 [0017] 図6は、リストを、独立した先入れ先出し(FIFO)リストに分ける例を図示する概念図である。 [0018] 図7は、本開示の技術を実現してもよい例示的なビデオエンコーダを図示するブロック図である。 [0019] 図8は、本開示の技術を実行してもよい例示的なビデオデコーダを図示するブロック図である。 [0020] 図9は、ビデオデータをエンコードする例示的な方法を図示するフローチャートである。 [0021] 図10は、ビデオデータをデコードする例示的な方法を図示するフローチャートである。
詳細な説明
[0022]
ビデオコーディング標準規格は、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262またはISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visualおよび(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264を含み、そのスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張を含んでいる。
[0023]
さらに、ビデオコーディング標準規格、すなわち、その範囲拡張、マルチビュー拡張(MV−HEVC)、および、スケーラブル拡張(SHVC)を含む、高効率ビデオコーディング(HEVC)またはITU−T H.265は、ビデオコーディングに関する共同研究チーム(JCT−VC)とともに、ITU−Tビデオコーディングエキスパートグループ(VCEG)およびISO/IECモーションピクチャーエキスパートグループ(MPEG)の3Dビデオコーディング拡張開発に関する共同研究チーム(JCT−3V)によって開発されている。
[0024]
以下でHEVC WDとして呼ばれるHEVCドラフト仕様は、http://phenix.int−evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC−N1003−v1.zipから入手可能である。HEVC標準規格に対する引用は以下の通りである:TU−TH.265、シリーズH:オーディオビジュアルおよびマルチメディアシステム、オーディオビジュアルサービスのインフラストラクチャ−動画ビデオのコーディング、一般的オーディオビジュアルサービスに対する高度ビデオコーディング、国際電気通信連合、2015年4月、634pp.。
[0025]
ITU−T VCEG(Q6/16)およびISO/IEC MPEG(JTC 1/SC 29/WG 11)は、現在のHEVC標準規格(スクリーンコンテンツコーディングおよび高ダイナミックレンジコーディングのためのその現在の拡張および短期拡張を含む)の圧縮能力を著しく超える圧縮能力を持つ将来のビデオコーディングテクノロジーの標準化に対する潜在的必要性を現在研究している。グループは、この分野のエキスパートによって提案された圧縮テクノロジー設計を評価するために、ジョイントビデオエキスパートチーム(JVET)として知られている共同作業の取り組みにおいて、この調査活動に関して共に取り組んでいる。JVETは、2015年10月19〜21日の間に最初に会い、基準ソフトウェアの最新版、すなわち、共同調査モデル7(JEM7)は、アクセスが必要とされるが、以下から入手可能である:https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM−16.6−JEM−7.0/。JEM7のアルゴリズム解説は、JVET−G1001として呼ばれることがある。
[0026]
JEM7は、ITU−T H.266または汎用ビデオコーディング(VVC)とも呼ばれる。VVC標準規格の最近のドラフトは、Bross他、「汎用ビデオコーディング(ドラフト5)」、ITU−T SG16WP3およびISO/IEC JTC1/SC29/WG11のジョイントビデオエキスパートチーム(JVET)、第14回会議:2019年3月19〜27日スイス、ジュネーブ、JVET−N1001−v5(以下、「VVCドラフト5」)において説明されている。しかしながら、本開示の技術は、何らかの特定のコーディング標準規格には限定されない。
[0027]
以下でより詳細に説明するように、ビデオコーディング(例えば、エンコーディングまたはデコーディング)では、現在ブロックは、予測ブロックに基づいてインター予測される。例えば、ビデオエンコーダは、現在ブロックと予測ブロックとの間の残差(例えば、差分)を決定し、差分をシグナリングする。ビデオデコーダは、残差を受け取り、残差を予測ブロックに追加して、現在ブロックを再構築する。
[0028]
ビデオコーダ(例えば、ビデオエンコーダまたはビデオデコーダ)は、動きベクトルで予測ブロックを識別する。いくつかの例では、ビデオエンコーダは、動きベクトルの情報(例えば、x値およびy値)をビデオデコーダにシグナリングしてもよい。しかしながら、シグナリングされる情報の量を低減させるために、ビデオデコーダが、再構築されたブロックの動き情報に基づいて、現在ブロックに対する動きベクトルを決定することが可能であってもよい。例えば、マージモードまたは高度動きベクトル予測(AMVP)モードでは、ビデオコーダは、現在ブロックに空間的および/または時間的に隣接するブロックの動き情報に基づいて、動き情報の候補リストを構築してもよい。ビデオエンコーダは、候補リストに対するインデックスを示す情報をシグナリングし、ビデオデコーダは、インデックスに基づいて、候補リストから動き情報を取り出し、取り出された動き情報に基づいて、現在ブロックに対する動きベクトルを決定する。
[0029]
本開示で説明する1つ以上の例によれば、ビデオコーダは、履歴ベース候補リストを構築することができる。履歴ベース候補リストは、再構築されたブロックの動き情報を含むが、現在ブロックの空間的および時間的に隣接するブロックに限定されない。いくつかの例では、最終候補リスト(例えば、最終のマージまたはAMVPの候補リスト)を構築するために、ビデオコーダは、履歴ベース候補リストを初期のマージまたはAMVPの候補リストに追加する。
[0030]
しかしながら、履歴ベース候補リストを初期のマージまたはAMVPの候補リストに単に追加しないことによって、より良好なビデオコーディング性能を達成することが可能であるかもしれない。例えば、候補リスト(例えば、マージまたはAMVPの候補リスト)のサイズは固定されているかもしれない。したがって、これらの候補の追加が候補リストのサイズをその固定サイズよりも大きくさせる場合、履歴ベースのリストからのある候補が、ドロップされるかもしれない。
[0031]
しかしながら、ドロップされる候補のうちのいくつかは、現在ブロックに対する動きベクトルを決定するためのよりロバストな候補選択を実際に提供する可能性がある。例えば、空間的に近いブロックの動き情報は類似しているかもしれない(非限定的な例として、例えば、隣接するような、空間的に近い第1のブロックおよび第2のブロックは、20%未満の差異がある動きベクトルを有しているかもしれず、または、同じ参照ピクチャーを識別するかもしれない)。履歴ベースのリストが2つの空間的に近いブロックからの動き情報を含んでいた場合、2つの空間的に近いブロックに対する動き情報が類似している可能性がより高い。これらの空間的に近いブロックの両方からの動き情報が最終候補リストに含まれる場合、特に履歴ベース候補リストから他の候補のうちのいくつかがドロップされる場合、最適な候補が確実に選択されるようにするには、動き情報に十分な多様性がないかもしれない。言い換えれば、特に履歴ベース候補リストからの他の候補が最終候補リストからドロップされる場合、これらの空間的に近いブロックのうちの1つのみからの動き情報を含むことと比較して、最終候補リスト中のこれらの空間的に近いブロックの両方からの動き情報を含むことによるビデオコーディング利得は、もしあるならば、あまり大きくないかもしれない。
[0032]
別の例として、最も最近再構築されたブロックの動き情報が初期候補リスト中に(例えば、履歴ベース候補リストを含める前の初期のマージまたはAMVPの候補リスト中に)既に存在する確率が高い。したがって、最も最近再構築されたブロックのうちの1つ以上から動き情報を追加して、候補リストを発生させる(例えば、最終候補リストを発生させる)ことは、いかなる追加のビデオコーディング利得も提供しないかもしれず、他のおそらくより良好な候補が最終候補リストからドロップされることから、ビデオコーディング利得に悪影響を及ぼすかもしれない。
[0033]
本開示は、履歴ベース候補リスト中に候補のサブセットを含めることによって、候補リスト(例えば、最終のマージまたはAMVPの候補リスト)を発生させるための1つ以上の例示的な技術を説明する。いくつかの例では、履歴ベース候補リスト中の候補のサブセットは、最近再構築されたブロックに対応する1つ以上の候補を除く、1つ以上の候補を含んでいる。最近再構築されたブロックは、現在ブロックがエンコードまたはデコードされる直前に再構築された1つ以上のブロックを指している。いくつかの例では、最近再構築されたブロックは、現在ブロックの直前に再構築された2つのブロックである。最も最近に再構築されたブロックは、現在ブロックの直前に再構築されたブロックである。このようにして、本技術は、初期候補リスト中に既にある可能性が高い1つ以上の候補を除外できる。
[0034]
いくつかの例では、履歴ベース候補リスト中の候補のサブセットは、履歴ベース候補リストをサブサンプリングすることから結果として生じる1つ以上の候補を含んでいる。例えば、履歴ベース候補リストから4番目毎の候補が選択される。履歴ベース候補リストをサブサンプリングすることによって、空間的に近い再構築されたブロック(例えば、4番目毎の候補が選択される例では、それぞれ3つのブロック内の再構築されたブロック)の動き情報は、最終候補リストに含まれないかもしれない。例として、この順序で再構築される、5つの再構築されたブロック(例えば、第1、第2、第3、第4、および、第5の再構築ブロック)がある。ブロックコーディングはラスター走査順序で実行されるので、第1および第2の再構築されたブロックは、第1および第5の再構築されたブロックよりも互いにより近接しているかもしれない。第1および第2の再構築されたブロックが近接しているので、第1および第2の再構築されたブロックに対する動き情報は、近接していない第1および第5の再構築されたブロックに対する動き情報よりも類似している可能性がより高い。
[0035]
1つ以上の例では、ビデオコーダは、候補リストに含めるために、第1および第2の再構築されたブロックよりもむしろ、第1および第5の再構築されたブロックに対する動き情報を選択(例えば、履歴ベース候補リストから4番目毎の候補を選択)するかもしれない。これは、動き情報が類似しないかもしれないことから、第1および第5の再構築されたブロックに対する動き情報が確実に存在することと比較して、動き情報が類似することから、第1および第2の再構築されたブロックの両方に対する動き情報を有することによって、ビデオコーディング利得がほとんどないためであるかもしれない。このようにして、予測ブロックを識別するのに使用することができる動き情報の多様性が存在する。
[0036]
図1は、本開示の技術を実行してもよい、例示的なビデオエンコーディングおよびデコーディングシステム100を図示するブロック図である。本開示の技術は、一般的に、ビデオデータをコーディング(エンコーディングおよび/またはデコーディング)することに向けられている。一般的に、ビデオデータは、ビデオを処理するための任意のデータを含んでいる。したがって、ビデオデータは、生の、エンコードされていないビデオ、エンコードされたビデオ、デコードされた(例えば、再構築された)ビデオ、および、シグナリングデータのようなビデオメタデータを含んでいてもよい。
[0037]
図1に示すように、システム100は、この例では、宛先デバイス116によってデコードされ、表示されるべきエンコードされたビデオデータを提供する、発信元デバイス102を含んでいる。特に、発信元デバイス102は、コンピュータ読取可能媒体110を介してビデオデータを宛先デバイス116に提供する。発信元デバイス102および宛先デバイス116は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、スマートフォンのような電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、ヘッドマウントディスプレイ(HMD)デバイス、XRデバイス(例えば、仮想現実デバイス、拡張現実デバイス、および、混合現実デバイス)、または、これらに類するものを含む、広範囲のデバイスのうちのいずれであってもよい。いくつかのケースでは、発信元デバイス102および宛先デバイス116は、ワイヤレス通信のために備えられてもよく、したがって、ワイヤレス通信デバイスとして呼ばれることがある。
[0038]
図1の例では、発信元デバイス102は、ビデオソース104と、メモリ106と、ビデオエンコーダ200と、出力インターフェース108とを含んでいる。宛先デバイス116は、入力インターフェース122と、ビデオデコーダ300と、メモリ120と、ディスプレイデバイス118とを含んでいる。本開示によれば、発信元デバイス102のビデオエンコーダ200および宛先デバイス116のビデオデコーダ300は、履歴ベースのマージまたは高度動きベクトル予測(AMVP)リストを構築するための技術を適用するように構成されていてもよい。したがって、発信元デバイス102はビデオエンコーディングデバイスの例を表す一方で、宛先デバイス116はビデオデコーディングデバイスの例を表している。他の例では、発信元デバイスおよび宛先デバイスは、他のコンポーネントまたは構成を含んでいてもよい。例えば、発信元デバイス102は、外部カメラのような外部ビデオソースからビデオデータを受け取ってもよい。同様に、宛先デバイス116は、統合されたディスプレイデバイスを含むよりもむしろ、外部ディスプレイデバイスとインターフェースしていてもよい。
[0039]
図1に示されるシステム100は一例にすぎない。一般的に、任意のデジタルビデオエンコーディングおよび/またはデコーディングデバイスが、履歴ベースのマージリストまたはAMVPリストを構築するための技術を実行してもよい。発信元デバイス102および宛先デバイス116は、発信元デバイス102が宛先デバイス116への送信のためにコード化されたビデオデータを発生させる、このようなコーディングデバイスの例にすぎない。本開示は、データのコーディング(エンコーディングおよび/またはデコーディング)を実行するデバイスとして「コーディング」デバイスに言及する。したがって、ビデオエンコーダ200およびビデオデコーダ300は、コーディングデバイスの例を、特に、それぞれビデオエンコーダおよびビデオデコーダを表している。いくつかの例では、デバイス102、116は、デバイス102、116のそれぞれがビデオエンコーディングコンポーネントとビデオデコーディングコンポーネントとを含むように、実質的に対称的に動作してもよい。したがって、システム100は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、または、ビデオ電話のための、デバイス102とデバイス116との間の一方向または双方向ビデオ送信をサポートしてもよい。
[0040]
一般的に、ビデオソース104は、ビデオデータ(すなわち、生の、エンコードされていないビデオデータ)のソースを表し、ビデオデータのシーケンシャルな一連のピクチャー(「フレーム」としても呼ばれる)を、ピクチャーに対するデータをエンコードするビデオエンコーダ200に提供する。発信元デバイス102のビデオソース104は、ビデオカメラのようなビデオキャプチャデバイス、以前にキャプチャされた生のビデオを含んでいるビデオアーカイブ、および/または、ビデオコンテンツプロバイダからビデオを受け取るためのビデオフィードインターフェースを含んでいてもよい。さらなる代替として、ビデオソース104は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、または、ライブビデオとアーカイブビデオとコンピュータ発生ビデオとの組み合わせを発生させてもよい。各ケースにおいて、ビデオエンコーダ200は、キャプチャされた、事前キャプチャされた、または、コンピュータが発生させたビデオデータをエンコードする。ビデオエンコーダ200は、(ときには「表示順序」として呼ばれる)受け取った順序から、コーディングのためのコーディング順序にピクチャーを再構成してもよい。ビデオエンコーダ200は、エンコードされたビデオデータを含むビットストリームを発生させてもよい。発信元デバイス102は、その後、例えば、宛先デバイス116の入力インターフェース122による受け取りおよび/または取り出しのために、出力インターフェース108を介して、コンピュータ読取可能媒体110上にエンコードされたビデオデータを出力してもよい。
[0041]
発信元デバイス102のメモリ106および宛先デバイス116のメモリ120は、汎用メモリを表している。いくつかの例では、メモリ106、120は、生のビデオデータ、例えば、ビデオソース104からの生ビデオと、ビデオデコーダ300からの生の、デコードされたビデオデータとを記憶してもよい。追加的にまたは代替的に、メモリ106、120は、例えば、ビデオエンコーダ200およびビデオデコーダ300それぞれによって実行可能なソフトウェア命令を記憶していてもよい。この例では、ビデオエンコーダ200およびビデオデコーダ300とは別個に示されているが、ビデオエンコーダ200およびビデオデコーダ300はまた、機能的に同様または同等の目的のために内部メモリを含んでいてもよいことを理解すべきである。さらに、メモリ106、120は、例えば、ビデオエンコーダ200から出力され、ビデオデコーダ300に入力される、エンコードされたビデオデータを記憶してもよい。いくつかの例では、メモリ106、120の一部分は、1つ以上のビデオバッファとして割り振られ、例えば、生の、デコードされた、および/または、エンコードされたビデオデータを記憶してもよい。
[0042]
コンピュータ読取可能媒体110は、発信元デバイス102から宛先デバイス116へとエンコードされたビデオデータを転送することが可能な任意のタイプの媒体またはデバイスを表していてもよい。一例では、コンピュータ読取可能媒体110は、発信元デバイス102が、例えば、無線周波数ネットワークまたはコンピュータベースのネットワークを介して、エンコードされたビデオデータをリアルタイムで宛先デバイス116に直接送信することを可能にする通信媒体を表している。ワイヤレス通信プロトコルのような通信標準規格にしたがって、出力インターフェース108は、エンコードされたビデオデータを含む送信信号を変調してもよく、入力インターフェース122は、受け取った送信信号を変調してもよい。通信媒体は、無線周波数(RF)スペクトルまたは1つ以上の物理送信ラインのような、ワイヤレスおよび/またはワイヤード通信媒体のうちの1つまたは両方を含んでいてもよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、または、インターネットのようなグローバルネットワーク等の、パケットベースのネットワークの一部を形成していてもよい。通信媒体は、ルータ、スイッチ、基地局、または、発信元デバイス102から宛先デバイス116への通信を容易にするのに役立つかもしれない他の何らかの機器を含んでいてもよい。
[0043]
いくつかの例では、発信元デバイス102は、出力インターフェース108から記憶デバイス112にエンコードされたデータを出力してもよい。同様に、宛先デバイス116は、入力インターフェース122を介して、記憶デバイス112からのエンコードされたデータにアクセスしてもよい。記憶デバイス112は、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、または、エンコードされたビデオデータを記憶するための他の何らかの適切なデジタル記憶媒体のような、さまざまな分散またはローカルにアクセスされるデータ記憶媒体のいずれかを含んでいてもよい。
[0044]
いくつかの例では、発信元デバイス102は、エンコードされたビデオデータを、ファイルサーバ114に、または、発信元デバイス102によって発生させたエンコードされたビデオを記憶してもよい別の中間記憶デバイスに出力してもよい。宛先デバイス116は、ストリーミングまたはダウンロードを介して、ファイルサーバ114からの記憶されているビデオデータにアクセスしてもよい。ファイルサーバ114は、エンコードされたビデオを記憶すること、宛先デバイス116にエンコードされたビデオを送信することとができる、任意のタイプのサーバデバイスであってもよい。ファイルサーバ114は、(例えば、ウェブサイトのための)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、コンテンツ配信ネットワークデバイス、または、ネットワーク接続記憶(NAS)デバイスを表していてもよい。宛先デバイス116は、インターネット接続を含む任意の標準的なデータ接続を通して、ファイルサーバ114からのエンコードされたビデオデータにアクセスしてもよい。これは、ファイルサーバ114に記憶されている、エンコードされたビデオデータにアクセスするのに適している、ワイヤレスチャネル(例えば、Wi−Fi接続)、ワイヤード接続(例えば、DSL、ケーブルモデム等)、または、その両方の組み合わせを含んでいてもよい。ファイルサーバ114および入力インターフェース122は、ストリーミング送信プロトコル、ダウンロード送信プロトコル、または、これらの組み合わせにしたがって動作するように構成されていてもよい。
[0045]
出力インターフェース108および入力インターフェース122は、ワイヤレス送信機/受信機、モデム、ワイヤードネットワーキングコンポーネント(例えば、イーサネット(登録商標)カード)、さまざまなIEEE802.11標準規格のいずれかにしたがって動作するワイヤレス通信コンポーネント、または、他の物理コンポーネントを表していてもよい。出力インターフェース108および入力インターフェース122がワイヤレスコンポーネントを含む例では、出力インターフェース108および入力インターフェース122は、4G、4G−LTE(登録商標)(ロングタームエボリューション)、LTEアドバンスト、5G、または、これらに類するもののようなセルラ通信標準規格にしたがって、エンコードされたビデオデータのようなデータを転送するように構成されていてもよい。出力インターフェース108がワイヤレス送信機を含むいくつかの例では、出力インターフェース108および入力インターフェース122は、IEEE802.11仕様、IEEE802.15仕様(例えば、ZigBee(商標))、Bluetooth(登録商標)(商標)標準規格、または、これらに類するもののような他のワイヤレス標準規格にしたがって、エンコードされたビデオデータのようなデータを転送するように構成されていてもよい。いくつかの例では、発信元デバイス102および/または宛先デバイス116は、それぞれのシステムオンチップ(SoC)デバイスを含んでいてもよい。例えば、発信元デバイス102は、ビデオエンコーダ200および/または出力インターフェース108に備わる機能性を実行するためのSoCデバイスを含んでいてもよく、宛先デバイス116は、ビデオデコーダ300および/または入力インターフェース122に備わる機能性を実行するためのSoCデバイスを含んでいてもよい。
[0046]
本開示の技術は、無線テレビ放送、ケーブルテレビ送信、衛星テレビ送信、HTTPを通した動的アダプティブストリーミング(DASH)のようなインターネットストリーミングビデオ送信、データ記憶媒体上にエンコードされたデジタルビデオ、データ記憶媒体上に記憶されているビデオデータのデコーディング、または、他のアプリケーションのような、さまざまなマルチメディアアプリケーションのうちのいずれかをサポートするビデオコーディングに適用してもよい。
[0047]
宛先デバイス116の入力インターフェース122は、コンピュータ読取可能媒体110(例えば、記憶デバイス112、ファイルサーバ114、または、これらに類するもの)からエンコードされたビデオビットストリームを受け取る。コンピュータ読取可能媒体110からのエンコードされたビデオビットストリームは、ビデオブロックまたは他のコード化されたユニット(例えば、スライス、ピクチャー、ピクチャーのグループ、シーケンス、または、これらに類するもの)の特性および/または処理を記述する値を有するシンタックス要素のような、ビデオエンコーダ200によって規定され、ビデオデコーダ300によっても使用されるシグナリング情報を含んでいてもよい。ディスプレイデバイス118は、デコードされたビデオデータのデコードされたピクチャーをユーザに表示する。ディスプレイデバイス118は、ブラウン管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または、別のタイプのディスプレイデバイスのような、さまざまなディスプレイデバイスのうちのいずれかを表していてもよい。
[0048]
図1には示されていないが、いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、それぞれオーディオエンコーダおよび/またはオーディオデコーダと統合されていてもよく、適切なMUX−DEMUXユニットあるいは他のハードウェアおよび/またはソフトウェアを含んでいて、共通のデータストリームにおけるオーディオおよびビデオの両方を含む多重化されたストリームを取り扱ってもよい。適用可能である場合、MUX−DEMUXユニットは、ITU.H.223マルチプレクサプロトコル、または、ユーザデータグラムプロトコル(UDP)のような他のプロトコルにしたがっていてもよい。
[0049]
ビデオエンコーダ200およびビデオデコーダ300はそれぞれ、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、または、これらの組み合わせのような、さまざまな適したエンコーダおよび/またはデコーダ回路のいずれかとして実現してもよい。技術が部分的にソフトウェアで実現されるとき、デバイスは、適切な、非一時的コンピュータ読取可能媒体においてソフトウェアのための命令を記憶していてもよく、1つ以上のプロセッサを使用して、ハードウェアにおいて命令を実行して、本開示の技術を実行してもよい。ビデオエンコーダ200およびビデオデコーダ300のそれぞれは、1つ以上のエンコーダまたはデコーダに含まれてもよく、エンコーダまたはデコーダのどちらかは、それぞれのデバイスにおいて、組み合わされたエンコーダ/デコーダ(CODEC)の一部として統合されていてもよい。ビデオエンコーダ200および/またはビデオデコーダ300を含むデバイスは、集積回路、マイクロプロセッサ、および/または、セルラ電話機のようなワイヤレス通信デバイスを含んでいてもよい。
[0050]
ビデオエンコーダ200およびビデオデコーダ300は、高効率ビデオコーディング(HEVC)としても呼ばれるITU−T H.265のようなビデオコーディング標準規格に、または、マルチビューおよび/またはスケーラブルビデオコーディング拡張のような、高効率ビデオコーディング(HEVC)に対する拡張にしたがって動作してもよい。代替的に、ビデオエンコーダ200およびビデオデコーダ300は、共同調査テストモデル(JEM)のような、他のプロプライエタリまたは業界標準規格にしたがって動作してもよい。しかしながら、本開示の技術は、何らかの特定のコーディング標準規格に限定されない。
[0051]
一般的に、ビデオエンコーダ200およびビデオデコーダ300は、ピクチャーのブロックベースコーディングを実行してもよい。「ブロック」という用語は、一般的に、処理される(例えば、エンコードされる、デコードされる、または、そうでなければ、エンコーディングおよび/またはデコーディングプロセスにおいて使用される)データを含む構造を指している。例えば、ブロックは、ルミナンスデータおよび/またはクロミナンスデータのサンプルの2次元行列を含んでいてもよい。一般的に、ビデオエンコーダ200およびビデオデコーダ300は、YUV(例えば、Y、Cb、Cr)フォーマットで表されるビデオデータをコード化してもよい。すなわち、ピクチャーのサンプルに対する赤、緑、および、青(RGB)データをコーディングするよりもむしろ、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分とクロミナンス成分とをコード化してもよく、ここで、クロミナンス成分は、赤の色相と青の色相の両方のクロミナンス成分を含んでいてもよい。いくつかの例では、ビデオエンコーダ200は、エンコーディングの前に、受け取ったRGBフォーマットされたRGBフォーマットデータをYUV表現に変換し、ビデオデコーダ300は、YUV表現をRGBフォーマットに変換する。代替的に、前処理ユニットおよび後処理ユニット(図示せず)がこれらの変換を実行してもよい。
[0052]
本開示は、一般的に、ピクチャーのデータをエンコードまたはデコードするプロセスを含むように、ピクチャーのコーディング(例えば、エンコーディングおよびデコーディング)に関連しているかもしれない。同様に、本開示は、ブロックに対するデータをエンコーディングまたはデコーディングするプロセス、例えば、予測および/または残差コーディングを含むように、ピクチャーのブロックのコーディングに関連しているかもしれない。エンコードされたビデオビットストリームは、一般的に、コーディング決定(例えば、コーディングモード)とブロックへのピクチャーの区分とを表すシンタックス要素に対する一連の値を含んでいる。したがって、ピクチャーまたはブロックをコーディングすることへの言及は、一般的に、ピクチャーまたはブロックを形成するシンタックス要素に対するコーディング値として理解すべきである。
[0053]
例として、ビデオエンコーダ200およびビデオデコーダ300は、HEVCにしたがって動作するように構成されていてもよい。HEVCは、コーディングユニット(CU)、予測ユニット(PU)、および、変換ユニット(TU)を含む、さまざまなブロックを規定する。HEVCにしたがうと、(ビデオエンコーダ200のような)ビデオコーダは、4分ツリー構造にしたがって、コーディングツリーユニット(CTU)をCUに区分する。すなわち、ビデオコーダは、CTUおよびCUを4つの等しい、オーバーラップしない正方形に区分し、4分ツリーの各ノードは、ゼロまたは4つの子ノードのいずれかを有する。子ノードのないノードは、「リーフノード」として呼ばれることがあり、このようなリーフノードのCUは、1つ以上のPUおよび/または1つ以上のTUを含んでいてもよい。ビデオコーダは、PUとTUとをさらに区分してもよい。例えば、HEVCでは、残差4分ツリー(RQT)はTUの区分を表している。HEVCでは、PUはインター予測データを表す一方で、TUは残差データを表している。イントラ予測されるCUは、イントラモード表示のようなイントラ予測情報を含んでいる。
[0054]
別の例として、ビデオエンコーダ200およびビデオデコーダ300は、JEMにしたがって動作するように構成されていてもよい。JEMによれば、(ビデオエンコーダ200のような)ビデオコーダは、ピクチャーを複数のCTUに区分する。ビデオエンコーダ200は、4分ツリー−2分ツリー(QTBT)構造のようなツリー構造にしたがって、CTUを区分してもよい。JEMのQTBT構造は、HEVCのCUとPUとTUとの間の分離のような、複数の区分タイプの概念を除去する。JEMのQTBT構造は、4分ツリー区分にしたがって区分される第1のレベルと、2分ツリー区分にしたがって区分される第2のレベルと、の2つのレベルを含んでいる。QTBT構造のルートノードはCTUに対応する。バイナリツリーのリーフノードは、コーディングユニット(CU)に対応する。さらなる例では、ビデオエンコーダ200およびビデオデコーダ300は、ここで説明する例と一致する、他の何らかのコーディング標準規格にしたがって動作するように構成されていてもよい。
[0055]
いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、単一のQTBT構造を使用して、ルミナンス成分とクロミナンス成分のそれぞれを表してもよい一方で、他の例では、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分のために1つのQTBT構造と、両方のクロミナンス成分のために別のQTBT構造(または、それぞれのクロミナンス成分のために2つのQTBT構造)のように、2つ以上のQTBT構造を使用してもよい。
[0056]
ビデオエンコーダ200およびビデオデコーダ300は、HEVC毎の4分ツリー区分、JEMにしたがうQTBT区分、または、他の区分構造を使用するように構成されていてもよい。説明のために、本開示の技術の説明は、QTBT区分に関して提示する。しかしながら、本開示の技術はまた、4分ツリー区分、または、他のタイプの区分も同様に使用するように構成されているビデオコーダに適用してもよいことを理解されたい。
[0057]
本開示は、「N×N」および「NバイN」を交換可能に使用して、垂直寸法および水平寸法に関する(CUまたは他のビデオブロックのような)ブロックのサンプル寸法、例えば、16×16サンプルまたは16バイ16サンプルを指すかもしれない。一般的に、16×16のCUは、垂直方向に16個のサンプルを有し(y=16)、水平方向に16個のサンプルを有する(x=16)。同様に、N×NのCUは、一般的に、垂直方向にN個のサンプルを有し、水平方向にN個のサンプルを有し、ここで、Nは非負整数値を表している。CU中のサンプルは、行および列に配置されていてもよい。さらに、CUは、必ずしも水平方向に垂直方向と同じ数のサンプルを有する必要はない。例えば、CUはN×Mのサンプルを含んでいてもよく、ここで、Mは必ずしもNに等しいとは限らない。
[0058]
ビデオエンコーダ200は、予測および/または残差情報を、ならびに、他の情報を表す、CUに対するビデオデータをエンコードする。予測情報は、CUに対する予測ブロックを形成するために、CUがどのように予測されるべきかを示している。残差情報は、一般的に、エンコーディング前のCUのサンプルと予測ブロックとの間のサンプル毎の差分を表している。
[0059]
CUを予測するために、ビデオエンコーダ200は、一般的に、インター予測またはイントラ予測を通して、CUに対する予測ブロックを形成してもよい。インター予測は、一般的に、以前にコード化されたピクチャーのデータからCUを予測することを指す一方で、イントラ予測は、一般的に、同じピクチャーの以前にコード化されたデータからCUを予測することを指している。インター予測を実行するために、ビデオエンコーダ200は、1つ以上の動きベクトルを使用して、予測ブロックを発生させてもよい。ビデオエンコーダ200は、一般的に、動きサーチを実行して、例えば、CUと参照ブロックとの間の差分に関して、CUに密接に一致する参照ブロックを識別してもよい。ビデオエンコーダ200は、絶対差分の和(SAD)、二乗差分の和(SSD)、平均絶対差分(MAD)、平均二乗差分(MSD)、または、他のこのような差分計算を使用して、差分メトリックを計算し、参照ブロックが現在CUに密接に一致するか否かを決定してもよい。いくつかの例では、ビデオエンコーダ200は、単方向予測または双方向予測を使用して、現在CUを予測してもよい。
[0060]
JEMはまた、インター予測モードと見なしてもよいアフィン動き補償モードを提供する。アフィン動き補償モードでは、ビデオエンコーダ200は、ズームインまたはズームアウト、回転、透視動き、または、他の不規則な動きタイプのような、並進しない動きを表す2つ以上の動きベクトルを決定してもよい。
[0061]
イントラ予測を実行するために、ビデオエンコーダ200は、イントラ予測モードを選択して、予測ブロックを発生させてもよい。JEMは、さまざまな方向性モードとともに、平面モードおよびDCモードを含む、67個のイントラ予測モードを提供する。一般的に、ビデオエンコーダ200は、現在ブロックのサンプルを予測する、現在ブロック(例えば、CUのブロック)に隣接するサンプルを記述するイントラ予測モードを選択する。ビデオエンコーダ200がラスター走査順序(左から右、上から下)でCTUおよびCUをコード化すると仮定すると、このようなサンプルは、一般的に、現在ブロックと同じピクチャー中で、現在ブロックの上、左上、または、左にあってもよい。
[0062]
ビデオエンコーダ200は、現在ブロックに対する予測モードを表すデータをエンコードする。例えば、インター予測モードに対して、ビデオエンコーダ200は、さまざまな利用可能なインター予測モードのうちのどれが使用されるかを表すデータとともに、対応するモードに対する動き情報をエンコードしてもよい。単方向または双方向インター予測に対して、例えば、ビデオエンコーダ200は、高度動きベクトル予測(AMVP)またはマージモードを使用して、動きベクトルをエンコードしてもよい。ビデオエンコーダ200は、類似するモードを使用して、アフィン動き補償モードに対する動きベクトルをエンコードしてもよい。
[0063]
ブロックのイントラ予測またはインター予測のような予測に続いて、ビデオエンコーダ200は、ブロックに対する残差データを計算してもよい。残差ブロックのような残差データは、ブロックと、対応する予測モードを使用して形成された、ブロックに対する予測ブロックとの間の、サンプル毎の差分を表している。ビデオエンコーダ200は、1つ以上の変換を残差ブロックに適用して、サンプルドメインの代わりに変換ドメインにおいて、変換されたデータを生成させてもよい。例えば、ビデオエンコーダ200は、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または、概念的に類似する変換を残差ビデオデータに適用してもよい。さらに、ビデオエンコーダ200は、モード依存分離不可能2次変換(MDNSST)、信号依存変換、カルーネンレーベ変換(KLT)、または、これらに類するもののような、第1の変換に続く2次変換を適用してもよい。ビデオエンコーダ200は、1つ以上の変換の適用に続いて、変換係数を生成させる。
[0064]
上述のように、変換係数を生成させるための任意の変換に続いて、ビデオエンコーダ200は、変換係数の量子化を実行してもよい。量子化は、一般的に、変換係数が量子化されて、係数を表すために使用されるデータの量を場合によっては低減させ、さらなる圧縮を提供するプロセスを指している。量子化プロセスを実行することによって、ビデオエンコーダ200は、係数のいくつか、または、すべてに関係するビット深度を低減させてもよい。例えば、ビデオエンコーダ200は、量子化の間にn−ビット値をm−ビット値に切り捨ててもよく、ここで、nはmよりも大きい。いくつかの例では、量子化を実行するために、ビデオエンコーダ200は、量子化されるべき値のビット単位の右シフトを実行してもよい。
[0065]
量子化に続いて、ビデオエンコーダ200は、変換係数を走査し、量子化された変換係数を含む2次元行列から1次元ベクトルを生成させてもよい。走査は、より高いエネルギー(したがって、より低い周波数)の係数をベクトルの前部に配置し、より低いエネルギー(したがって、より高い周波数)の変換係数をベクトルの後部に配置するように設計されていてもよい。いくつかの例では、ビデオエンコーダ200は、予め規定された走査順序を利用して、量子化変換係数を走査し、シリアル化ベクトルを生成させ、その後、ベクトルの量子化変換係数をエントロピーエンコードしてもよい。他の例では、ビデオエンコーダ200は、適応走査を実行してもよい。量子化変換係数を走査して1次元ベクトルを形成した後、ビデオエンコーダ200は、例えば、コンテキスト適応2値算術コーディング(CABAC)にしたがって、1次元ベクトルをエントロピーエンコードしてもよい。ビデオエンコーダ200はまた、ビデオデータをデコードする際に、ビデオデコーダ300によって使用するために、エンコードされたビデオデータに関係するメタデータを記述するシンタックス要素に対する値をエントロピーエンコードしてもよい。
[0066]
CABACを実行するために、ビデオエンコーダ200は、コンテキストモデル内のコンテキストを送信されるべきシンボルに割り当ててもよい。コンテキストは、例えば、シンボルの隣接する値がゼロ値にされているか否かに関連していてもよい。確率決定は、シンボルに割り当てられているコンテキストに基づいていてもよい。
[0067]
ビデオエンコーダ200はさらに、例えば、ピクチャーヘッダ中で、ブロックヘッダ中で、スライスヘッダ中で、あるいは、シーケンスパラメータセット(SPS)、ピクチャーパラメータセット(PPS)、または、ビデオパラメータセット(VPS)のような他のシンタックスデータ中で、ビデオデコーダ300への、ブロックベースのシンタックスデータ、ピクチャーベースのシンタックスデータ、および、シーケンスベースのシンタックスデータのようなシンタックスデータを発生させてもよい。ビデオデコーダ300は、同様に、このようなシンタックスデータをデコードして、対応するビデオデータをどのようにデコードするかを決定してもよい。
[0068]
このようにして、ビデオエンコーダ200は、エンコードされたビデオデータを含む、例えば、ブロック(例えば、CU)へのピクチャーの区分と、ブロックに対する予測および/または残差情報とを記述するシンタックス要素を含むビットストリームを発生させてもよい。ビデオデコーダ300は、ビットストリームを受け取り、エンコードされたビデオデータをデコードしてもよい。
[0069]
一般的に、ビデオデコーダ300は、ビデオエンコーダ200によって実行されたプロセスとは逆のプロセスを実行して、ビットストリームのエンコードされたビデオデータをデコードする。例えば、ビデオデコーダ300は、ビデオエンコーダ200のCABACエンコーディングプロセスと、逆ではあるが、実質的に類似する方法で、CABACを使用して、ビットストリームのシンタックス要素に対する値をデコードしてもよい。シンタックス要素は、CTUへのピクチャーの区分情報と、QTBT構造のような、対応する区分構造にしたがって、各CTUを区分することとを規定して、CTUのCUを規定していてもよい。シンタックス要素は、ビデオデータのブロック(例えば、CU)に対する予測および残差情報をさらに規定していてもよい。
[0070]
残差情報は、例えば、量子化変換係数によって表されていてもよい。ビデオデコーダ300は、ブロックの量子化された変換係数を逆量子化および逆変換して、ブロックに対する残差ブロックを再生させてもよい。ビデオデコーダ300は、シグナリングされた予測モード(イントラ予測またはインター予測)と、関連する予測情報(例えば、インター予測に対する動き情報)とを使用して、ブロックに対する予測ブロックを形成する。ビデオデコーダ300は、その後、(サンプル毎のベースで)予測ブロックと残差ブロックとを組み合わせて、元のブロックを再生させてもよい。ビデオデコーダ300は、デブロッキングプロセスを実行することのような、追加の処理を実行して、ブロックの境界に沿った視覚的アーティファクトを低減させてもよい。
[0071]
本開示は、一般的に、シンタックス要素のような、ある情報を「シグナリングすること」に関連しているかもしれない。「シグナリング」という用語は、一般的に、シンタックス要素に対する値のおよび/またはエンコードされたビデオデータをデコードするのに使用される他のデータの通信に関連しているかもしれない。すなわち、ビデオエンコーダ200は、ビットストリーム中でシンタックス要素に対する値をシグナリングしてもよい。一般的に、シグナリングは、ビットストリーム中で値を発生させることを指している。上述のように、発信元デバイス102は、実質的にリアルタイムで、または、宛先デバイス116による後の取り出しのために、シンタックス要素を記憶デバイス112に記憶させるときに起こるかもしれないような、リアルタイムではなく、ビットストリームを宛先デバイス116に転送してもよい。
[0072]
上記で説明したように、ビデオエンコーダ200およびビデオデコーダ300がそれぞれエンコードまたはデコードするかもしれない1つの例示的な方法は、マージモードまたはAMVPモードを使用している。マージモードとAMVPモードの両方において、ビデオエンコーダ200およびビデオデコーダ300は、候補リスト(例えば、マージリストまたはAMVPリストは、候補リストのうちの2つの例である)を構築する動作を実行する。候補リストは、空間的または時間的に隣接するブロックの動き情報を含んでいる。例えば、マージリストは、隣接するブロックに対する、動きベクトルおよび参照ピクチャーリスト情報(例えば、RefPicList0が使用されるかRefPicList1が使用されるか)を含んでいる。AMVPリストは、動きベクトルおよび参照ピクチャーリスト情報を含み、動きベクトル差分(MVD)がシグナリングされる。
[0073]
ビデオエンコーダ200およびビデオデコーダ300は同じ動作を実行するので、候補リストは、ビデオエンコーダ200およびビデオデコーダ300に対して同じである。ビデオエンコーダ200は、候補リストから候補を識別し、候補リストに対するインデックスを示す情報をシグナリングしてもよい。ビデオデコーダ300は、候補リストに対するインデックスを決定し、インデックスによって識別された候補に基づいて、現在ブロックに対する動き情報を決定してもよい。動き情報は、動きベクトル予測子を含んでいる。マージモードに対して、現在ブロックに対する動きベクトルは、動きベクトル予測子に等しく設定される。AMVPモードに対して、ビデオエンコーダ200は、現在ブロックに対する動きベクトルと動きベクトル予測子との間のMVDをシグナリングすることができる。ビデオデコーダ300は、MVDを動きベクトル予測子に追加して、現在ブロックに対する動きベクトルを決定する。
[0074]
以下でより詳細に説明するように、履歴ベースの動きベクトル予測(HMVP)は、ここではVVCの一部である。HMVPでは、ビデオエンコーダ200およびビデオデコーダ300は、再構築されたブロックの動き情報を含む履歴ベース候補リストを維持する。再構築されたブロックの一例は、ビデオデコーダ300によって再構築されたブロックである。ビデオエンコーダ200は、ビデオエンコーダ200がエンコードされたブロックを再構築する再構築ループを含んでいる。再構築されたブロックの別の例は、再構築(デコーディングとも呼ばれる)ループの一部として、ビデオエンコーダ200によって再構築されたブロックである。最近再構築されたブロックは、現在ブロックに空間的または時間的に隣接するブロックに限定される必要はない。
[0075]
HMVPの一部として、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストを追加して、候補リストを発生させてもよい。例えば、ビデオエンコーダ200およびビデオデコーダ300は、初期候補リスト(例えば、マージまたはAMVPのリスト)を発生させてもよい。その後、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストを初期候補リストに追加して、2つの例として、マージモードまたはAMVPモードのために使用される最終候補リストを発生させてもよい。
[0076]
しかしながら、履歴ベース候補リストが初期候補リストに単に追加される場合には、技術的な問題があるかもしれない。候補リストの最大サイズが設定されているかもしれない。したがって、いくつかのケースでは、履歴ベース候補リストを初期候補リストに追加することは、最終候補リストを最大サイズよりも大きくさせることになる。このようなケースでは、ビデオエンコーダ200およびビデオデコーダ300は、最終候補リストを最大サイズよりも大きくさせる候補を、履歴ベース候補リストからドロップするかもしれない。
[0077]
履歴ベース候補リストから候補をドロップすることは望ましくないかもしれない。例えば、空間的に隣接するブロックは類似する動き情報を有するので、履歴ベース候補リスト中の2つのブロックが空間的に隣接している場合には、最終候補リスト中に両方のブロックに対する動き情報を含めることは、動き情報の多様性を提供しないことになる。しかしながら、最終候補リスト中に両方のブロックに対する動き情報を含めることは、動き情報の多様性を提供する、履歴ベース候補リストのいくつかの候補をドロップさせるかもしれない。
[0078]
また、いくつかの例では、履歴ベース候補リスト中の最も最近の候補のうちのいくつかは、初期候補リスト中に既に存在しているかもしれない。したがって、履歴ベース候補リスト中にこれらの最も最近の候補を追加することは、いかなる追加の利益も提供しないかもしれない。
[0079]
本開示で説明する1つ以上の例によると、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストの候補として、再構築されたブロックの動き情報を履歴ベース候補リスト中に記憶させることにより、履歴ベース候補リストを構築するようにと、履歴ベース候補リストの候補のサブセットを識別するようにと、履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リストを発生させるように構成されていてもよい。ビデオエンコーダ200は、現在ブロックを再構築するのに使用される動き情報を識別するための、発生させた候補リストに対するインデックスを示す情報をシグナリングするようにさらに構成されていてもよい。ビデオデコーダ300は、発生させた候補リストに基づいて、現在ブロックを再構築するように構成されていてもよい。
[0080]
このようにして、履歴ベース候補リストの全体を含めるよりもむしろ、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストのサブセットを含めてもよい。いくつかの例では、履歴ベース候補リスト中の空間的に隣接するブロックの動き情報が、発生させた候補リストに含まれないように、サブセットは、履歴ベース候補リストをサブサンプリングした結果であってもよい。いくつかの例では、サブセットは、N個の最も最近再構築されたブロックの動き情報を除外した結果であってもよい。ビデオエンコーダ200およびビデオデコーダ300は、N個の最も最近再構築されたブロックの動き情報をサブサンプリングするおよび除外することのうちの1つ以上を使用して、候補のサブセットを識別するように構成されていてもよい。
[0081]
上記の例では、ビデオエンコーダ200およびビデオデコーダ300が発生させる候補リストは、最終のマージリストまたはAMVPリストであってもよい(例えば、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストの候補の識別されたサブセットを初期のマージリストまたはAMVPリストに追加する)。いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300が発生させる候補リストは、候補の識別されたサブセットであってもよい(例えば、候補の識別されたサブセットは、初期のマージリストまたはAMVPリストに追加されないが、それ自体がスタンドアローンリストである)。いくつかの例では、本開示で説明する技術は、他のタイプの候補リストに拡張され、マージリストおよびAMVPリストに限定されない。
[0082]
以下で、HEVCにおけるCU構造および動きベクトル予測をレビューする。HEVCでは、スライス中の最大コーディングユニットが、コーディングツリーブロック(CTB)またはコーディングツリーユニット(CTU)と呼ばれる。CTBは、ノードがコーディングユニットである、4分ツリーを含んでいる。
[0083]
CTBのサイズは、(技術的には8×8CTBサイズをサポートすることができるが)HEVCメインプロファイルにおいて16×16から64×64の範囲とすることができる。コーディングユニット(CU)は、CTBと同じサイズから8×8までの小ささであってもよい。各コーディングユニットは、1つのモード、すなわち、インターモードまたはイントラモードでコード化される。CUがインターコード化されるとき、それは、2つまたは4つの予測ユニット(PU)にさらに区分されてもよく、または、さらなる区分が適用されないときには、ただ1つのPUとなってもよい。2つのPUが1つのCU中に存在するときには、それらは、半分のサイズの長方形、あるいは、CUの1/4または3/4のサイズを有する2つの長方形サイズとすることができる。CUがインターコード化されるとき、各PUは、一意的なインター予測モードで導出される、1つのセットの動き情報を有する。
[0084]
以下で、動きベクトル予測をレビューする。HEVC標準規格では、予測ユニット(PU)に対して、それぞれマージ(スキップはマージの特別なケースと見なされる)モードおよび高度動きベクトル予測(AMVP)モードという名の、2つのインター予測モードがある。AMVPモードまたはマージモードのいずれかにおいて、複数の動きベクトル予測子に対して、動きベクトル(MV)候補リストが維持される。MV候補リストから1つの候補を取り出すことによって、現在PUの、動きベクトルとともに、マージモードにおける参照インデックスが発生される。MV候補リストは、マージモードに対する5つまでの候補と、AMVPモードに対する2つだけの候補とを含んでいる。マージ候補は、動き情報のセット、例えば、両参照ピクチャーリスト(リスト0およびリスト1)に対応する動きベクトルと参照インデックスとを含んでいてもよい。マージ候補がマージインデックスによって識別される場合には、現在ブロックの予測のために使用される参照ピクチャーとともに、関係する動きベクトルが決定される。一方、リスト0またはリスト1のいずれかからの各潜在的予測方向に対するAMVPモード下では、AMVP候補が動きベクトルのみを含むことから、MV候補リストへのMV予測子(MVP)インデックスとともに、参照インデックスが、明示的にシグナリングされる必要がある。AMVPモードでは、予測された動きベクトルはさらに改良することができる。両方のモードの候補は、同じ空間的および時間的に隣接するブロックから同様に導出される。
[0085]
以下で、空間的に隣接する候補をレビューする。いくつかの例では、空間MV候補は、特定のPU(PU)134に対して、図2Aおよび図2Bに示されている隣接するブロックから導出されるが、ブロックから候補を発生させるための方法は、マージモードとAMVPモードとで異なる。マージモードでは、いくつかの例では、4つまでの空間MV候補が、数字とともに図2Aに示されている順序で導出でき、順序は図2Aに示すように、以下の通りである:左(0、A1)、上(1、B1)、右上(2、B0)、左下(3、A0)、および、左上(4、B2)。例えば、PU0 134に対して、ブロックA1は0として識別され、PU0 134の左にあり、ブロックB1は1として識別され、PU0 134の上にあり、ブロックB0は2として識別され、PU0 134の右上にあり、PU1 136の上にあり、ブロックA0は3として識別され、PU0 134の左下にあり、ブロックB2は4として識別され、PU0 134の左上にある。
[0086]
AMVPモードでは、いくつかの例では、隣接するブロックは、図2Bに示されるように、それぞれPU0 138の左下および左にあるブロック0および1を含む左グループと、PU0 138の右上、上、および、左上にあるブロック2、3、および、4を含む上グループとの、2つのグループに分割される。ブロック2は、PU1 140の上にある。各グループに対して、シグナリングされた参照インデックスによって示されるものと同じ参照ピクチャーを参照する隣接するブロック中の潜在的候補は、グループの最終候補を形成するために選択されるべき最高の優先度を有する。すべての隣接するブロックが、同じ参照ピクチャーを指す動きベクトルを含まないかもしれない。したがって、このような候補を見つけることができない場合には、最初の利用可能な候補は、最終候補を形成するためにスケーリングされ、したがって、時間的距離差を補償できる。
[0087]
以下で、時間動きベクトル予測をレビューする。いくつかの例では、時間動きベクトル予測子(TMVP)候補は、有効にされて利用可能である場合、空間動きベクトル候補の後にMV候補リストに追加される。TMVP候補に対する動きベクトル導出のプロセスは、マージモードとAMVPモードの両方に対して同じであるが、マージモードにおけるTMVP候補に対するターゲット参照インデックスは常に0に設定される。
[0088]
いくつかの例では、TMVP候補導出のための1次ブロックロケーションは、空間的に隣接する候補を発生させるのに使用される上および左のブロックへのバイアスを補償するために、ブロックT140として図3Aに示されるように、コロケートされたPUの外側の右下のブロックである。しかしながら、そのブロックが現在CTB行の外側に位置付けられる、または、動き情報が利用可能でない場合には、ブロックはPUの中央ブロックで置換される。
[0089]
現在ピクチャー150中のTMVP候補に対する動きベクトル148は、スライスレベルにおいて示される、コロケートされたピクチャー146のコロケートされたPUから導出される。コロケートされたPUに対する動きベクトルは、コロケートされたMV142と呼ばれる。AVCにおける時間ダイレクトモードと同様に、TMVP候補動きベクトルを導出するために、コロケートされたMV142は、図3Bに示されるように、時間距離差を補償するようにスケーリングされてもよい。例えば、コロケートされたピクチャー146とコロケートされた参照ピクチャー144との間の時間差、および、現在ピクチャー150と現在参照ピクチャー152との間の時間差を使用して、コロケートされたMV142をスケーリングして、動きベクトル148を発生させる。
[0090]
以下で、HEVCにおける動き予測のいくつかの他の態様をレビューする。マージモードおよびAMVPモードのいくつかの態様は、以下のように言及する価値がある。
[0091]
動きベクトルスケーリング:動きベクトルの値は、プレゼンテーション時間におけるピクチャーの距離に比例すると仮定する。動きベクトルは、2つのピクチャー、参照ピクチャーと、動きベクトルを含むピクチャー(すなわち、包含ピクチャー)とを関係付ける。動きベクトルを利用して、他の動きベクトルを予測するとき、ピクチャー順序カウント(POC)値に基づいて、包含ピクチャーと参照ピクチャーとの距離が計算される。
[0092]
予測されるべき動きベクトルに対して、その関係付けられた包含ピクチャーと参照ピクチャーの両方が異なるかもしれない。したがって、(POCに基づく)新しい距離が計算される。そして、動きベクトルは、これら2つのPOC距離に基づいてスケーリングされる。空間的に隣接する候補に対して、2つの動きベクトルに対する包含ピクチャーは同じである一方で、参照ピクチャーは異なる。HEVCにおいて、動きベクトルスケーリングは、空間的におよび時間的に隣接する候補に対して、TMVPとAMVPの両方に適用される。
[0093]
人工動きベクトル候補発生:動きベクトル候補リストが完全でない(例えば、予め定められた数よりも少ない候補)場合、人工的な動きベクトル候補を発生させ、すべての候補を有するまで、リストの最後に挿入される。マージモードでは、2つのタイプの人工MV候補:Bスライスのみに対して導出される組み合わされた候補と、Bスライスのみに対して導出される組み合わされた候補が十分な人工候補を提供しない場合には、AMVPのみに対して使用されるゼロ候補とがある。
[0094]
候補リスト中に既にあり、必要な動き情報を有する候補の各ペアに対して、リスト0中のピクチャーを参照する第1の候補の動きベクトルと、リスト1中のピクチャーを参照する第2の候補の動きベクトルとの組み合わせによって、双方向に組み合わされた動きベクトル候補が導出される。
[0095]
候補挿入のための、余分な部分を取り除くプロセス:異なるブロックからの候補が、たまたま同じであるかもしれず、これはマージ/AMVPの候補リストの効率を低下させる。この問題に対処するために、余分な部分を取り除くプロセスを適用する。これは、同一の候補を挿入することを回避するために、現在の候補リスト中の1つの候補を他の候補と比較する。複雑さを低減させるために、各潜在的候補をリスト中の他のすべての既存の候補と比較する代わりに、限られた回数だけ、余分な部分を取り除くプロセスを適用する。
[0096]
以下では、履歴ベースの動きベクトル予測を説明する。JVET−K0104として呼ばれる、「CE−4関連:履歴ベースの動きベクトル予測」ITU−T SG16WP3およびISO/IEC JTC1/SC29/WG11のJVET、第11回会議:2018年7月10〜18日スロベニア、リュブリャナにおいて説明されている履歴ベースの動きベクトル予測(HMVP)は、直近の原因となる隣接する動きフィールド中のものに加えて、過去からのデコードされたMVのリストから、そのMV予測子を各ブロックが見つけることを可能にする履歴ベースの方法である。複数のHMVP候補を有するテーブルが、エンコーディング/デコーディングプロセス中に維持される。新しいスライスに遭遇するとき、テーブルは空にされる。インターコード化されたブロックがあるときにはいつでも、関係する動き情報は、新たなHMVP候補として、先入れ先出し(FIFO)方式でテーブルに挿入される。次に、制約FIFO規則を適用することができる。HMVPをテーブルに挿入するとき、冗長検査を適用して、テーブル中に同一のHMVPがあるか否かを見つける。見つかった場合、その特定のHMVPがテーブルから除去され、その後、すべてのHMVP候補が移動される。より詳細に説明すると、いくつかの例では、冗長検査は実行されないかもしれない。
[0097]
マージリスト構築プロセスにおいて、HMVP候補を使用することができる。TMVP候補の後に、テーブル中の最後のエントリから最初のエントリまでのすべてのHMVP候補が挿入されるかもしれない。余分な部分を取り除くことは、HMVP候補に適用される。いったん利用可能なマージ候補の総数が、シグナリングされた最大許容マージ候補に達すると、マージリスト構築プロセスが終了する。
[0098]
同様に、AMVP候補リスト構築プロセスにおいても、HMVP候補を使用することができる。TMVP候補の後に、テーブル中の最後のK個のHMVP候補の動きベクトルが挿入される。いくつかの例では、AMVPターゲット参照ピクチャーと同じ参照ピクチャーを持つHMVP候補のみを使用して、AMVP候補リストを構築する。余分な部分を取り除くことは、HMVP候補に適用される。
[0099]
以下では、非近接空間マージ候補を説明する。「CE4−2.1:非近接空間マージ候補の追加」ITU−T SG16WP3およびISO/IEC JTC1/SC29/WG11のJVET、第11回会議:2018年7月10〜18日スロベニア、リュブリャナにおいて説明されている非近接空間マージ候補の構築は、2つの非近接隣接位置からの(すなわち、図4に示すように、最も近い非近接ブロックから左/上に)新たな空間候補の導出を含んでいる。例えば、図4は、隣接するブロックA0、A1、B2、B1、および、B0を有する現在ブロック154を図示している。いくつかの例では、非近接空間マージ候補は、現在ブロック154に空間的に隣接しない、図4のブロックHNおよびブロックVNの動き情報を含んでいる。
[0100]
ブロックは、現在ブロックまで1CTUの最大距離内にあるように制限できる。非近接候補(例えば、ブロックHNおよびVN)のフェッチプロセスは、垂直方向に、以前にデコードされたブロックをトレースすることで開始する。垂直逆トレースは、インターブロックに遭遇したときに、または、トレースバック距離が1CTUサイズに達したときに停止する。その後、フェッチプロセスは、水平方向に、以前にデコードされたブロックをトレースする。水平フェッチプロセスを停止するための基準は、垂直非近接候補のフェッチに成功したか否かに依存する。垂直非近接候補がフェッチされない場合には、水平フェッチプロセスは、インターコード化されたブロックに遭遇したときに、または、トレースバック距離が1CTUサイズしきい値を超えるときに停止する。フェッチされた垂直非近接候補がある場合には、水平フェッチプロセスは、垂直非近接候補とは異なるMVを含むインターコード化されたブロックに遭遇したときに、または、トレースバック距離がCTUサイズしきい値を超えるときに停止する。フェッチされた非近接隣接候補は、マージ候補中のTMVP候補の前に追加される。
[0101]
いくつかの技術は、以下の問題を有するかもしれず、1つ以上の例示的な技術は、その問題に対処し、克服するかもしれない。しかしながら、すべての例示的な技術が、この開示で説明する利点のすべてを必ずしも常に提供する必要はない。
[0102]
非近接マージ候補にアクセスするために、デコーダ(例えば、ビデオデコーダ300)は、ラインバッファサイズを増加させて、近接する動き候補に加えて、これらの余分の動き候補を記憶させるかもしれない。他のアプローチは、過去からデコードされたMVを記憶する履歴ベースのルックアップテーブルを使用することによって、バッファ問題を軽減する。より短いシンタックスを最も可能性の高い候補に割り当てる、以前のマージ候補アプローチとは異なり、これらの履歴ベースのアプローチは、適切な分類なしに、すべてをルックアップテーブルに混合するだけである。したがって、本開示は、上記の問題を克服するかもしれない、履歴ベースのマージリストまたはAMVPリストのための例示的な構築方法を説明する。エンコーダ/デコーダ(例えば、ビデオエンコーダ200またはビデオデコーダ300)は、(分類方法に基づいて構築された)ある候補リストを使用すべきか否かを選ぶ自由を有する。
[0103]
以下では、履歴ベースのリストの構築プロセス、余分な部分を取り除くプロセス、および、合成候補の構築のような、本開示の例示的な技術を説明する。例示的な技術は、一緒にまたは別々に使用してもよい。
[0104]
履歴ベース候補リストの構築のために、短期(および、長期)メモリを有する履歴ベース候補リストを一例として説明する。短期メモリおよび長期メモリの使用は、一例にすぎない。例示的な技術は、短期メモリまたは長期メモリの使用を必要とせず、1つのタイプのメモリを利用してもよい。
[0105]
初期リストは、CTU行、スライス、タイル、ピクチャー等がエンコード/デコードされる開始時に構築され、ゼロ動き(例えば、デフォルト値)で埋められる。CTU行、スライス、タイルまたはピクチャーのうちのどれが選ばれるかは、ビデオエンコーダ200およびビデオデコーダ300のコンフィギュレーションに依存してもよい。エンコーディング/デコーディングプロセスにおいて、ブロックが再構築を終了した後、再構築されたブロック動き情報(もしあれば)が、先入れ先出し(FIFO)方式で、短期候補リスト(すなわち、短期リストとして呼ばれる)に挿入される。短期リストが一杯になり、新しい候補が来ると、最も古い候補が引き出され、最新の候補が短期リストに押し込まれる。そして、短期リストから引き出されたものが、FIFOベースの長期候補リスト(すなわち、長期リストとして呼ばれる)に挿入される。
[0106]
上記の例では、短期リストおよび長期リストを説明した。しかしながら、いくつかの例では、単一の候補リスト(例えば、単一の履歴ベース候補リスト)があってもよく、再構築されたブロックの動き情報が、FIFO方式で、履歴ベース候補リストに追加される。
[0107]
両方のリストのサイズは構成可能であり、短期リストおよび長期リストに対してそれぞれNおよびNである。いくつかの例では、単一の履歴ベース候補リストのサイズは構成可能である。コーデック(例えば、ビデオエンコーダ200および/またはビデオデコーダ300)は、元のマージリストに追加して、または、元のマージリストの代わりに、最終のマージリストを形成するために、2つのリストのうちのいずれか1つ(または、これらの組み合わせ)を選ぶ柔軟性を有する。例えば、短期リストおよび長期リストのいずれか1つまたは両方における候補を最終のマージリストに挿入することができる。短期リストと長期リストの両方が使用されるが、一方のみが格納されるいくつかの例では、格納されるリストは、単一の履歴ベース候補リストと見なしてもよい。言い換えれば、いくつかの例では、短期リストが履歴ベース候補リストの一例と見なされるかもしれず、長期リストが履歴ベース候補リストの一例と見なされるかもしれない。いくつかの例では、短期リストと長期リストの両方がある必要はないかもしれず、そのケースでは、短期リストまたは長期リストのうちの1つが、単一の履歴ベース候補リストになる。
[0108]
以下は、4つの挿入順序の例である:
・短期候補のみが最終のマージリストに挿入される(例えば、短期候補が履歴ベース候補リストである);
・長期候補のみが最終のマージリストに挿入される(例えば、短期候補が履歴ベース候補リストである);
・長期候補がシーケンシャルに挿入される前に、短期候補が、最終のマージリストに最初に挿入される;
・短期候補および長期候補が、インターリーブ方式で、最終のマージリストに挿入され、挿入順序は、1番目の短期候補、1番目の長期候補、2番目の短期候補、2番目の長期候補等である。
[0109]
以下では、時間遅延される短期リスト技術を説明する。例示的な技術は、一般的に、履歴ベース候補リスト(例えば、短期リスト、長期リスト、あるいは、短期リストまたは長期リストのうちの1つのみがある場合のような、短期と長期とに分離されない単一のリスト)がある場合に適用してもよい。可変履歴ベース候補リスト(例えば、短期リスト)を時間遅延機能とともに提案する。上記の例では、インターブロックがエンコーディング/デコーディングを終了するたびに、履歴ベース候補リストが更新される。一例では、本開示は、(例えば、短期リスト、単一履歴ベース候補リスト、または、長期リストであってもよい)履歴ベース候補リスト中の第1のT候補が一時的に利用不可に設定される、時間遅延係数T(ここで、T<N)を導入する例示的な技術を説明する。遅延は、すぐ隣接する動きフィールドからの動き情報をマージ候補とする、空間MV予測(もしあれば)との競合を回避するかもしれない。例えば、図5中のブロックD162をエンコード/デコードするとき、短期リスト中のブロックC160の動き情報が一時的に利用不可としてマークされるように、Tは1とすることができ、したがって、それ(例えば、ブロックC160)は最終のマージリストに挿入されない。同様に、T=2(または、T=3)のような他の例では、短期リスト中のブロックB158とブロックC160の両方の動き情報(または、ブロックA156、ブロックB158、および、ブロックC160のすべての動き情報)は、最終のマージリストに挿入されない。
[0110]
例えば、ビデオエンコーダ200およびビデオデコーダ300は、最近再構築されたブロックの動き情報に対応する、履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別するように構成されていてもよい。例として、履歴ベース候補リストは、ブロックA156、B158、および、C160に対する動き情報を含んでいてもよい。図5の例では、ブロックC160は、最も最近再構築されたブロック(例えば、ブロックD162の直前に再構築されたブロック)であり、ブロックB158はブロックC160の前に再構築されたブロックであり、ブロックA156はブロックB158の前に再構築されたブロックである。この例では、ビデオエンコーダ200およびビデオデコーダ300は、ブロックA156、B158、および、C160のうちの1つ以上を含む第1のサブセットを識別してもよい。ブロックD162が、コード化されているブロックであってもよい。
[0111]
一例として、ビデオエンコーダ200およびビデオデコーダ300は、2つの最も最近再構築されたブロックの動き情報に対応する、履歴ベース候補リストの2つの候補を識別してもよい。例えば、履歴ベース候補リストは、ブロックA156、B158、および、C160の動き情報を含み、そのうちのブロックB158およびC160は、2つの最も最近再構築されたブロックである。この例では、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストの1つ以上の候補の第1のサブセットとして、ブロックB158およびC160を識別してもよい。
[0112]
ビデオエンコーダ200およびビデオデコーダ300は、第1のサブセットを除外する、履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別してもよい。一例として、履歴ベース候補リストの1つ以上の候補の第2のサブセットは、ブロックB158およびC160を含む第1のサブセットが除外されるので、ブロックA156を含んでいる。
[0113]
上記で説明したように、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストの候補のサブセットを識別してもよい。上記の例では、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別してもよい。例えば、ビデオエンコーダ200およびビデオデコーダ300は、ブロックA156の動き情報を識別してもよい。ビデオエンコーダ200およびビデオデコーダ300は、ブロックA156の動き情報に基づいて、候補リストを発生させてもよい(例えば、ブロックA156の動き情報を初期のマージまたはAMVPのリストに追加する)。
[0114]
最近再構築されたブロックの動き情報に対応する、履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別することの潜在的な利益の一例は、最近再構築されたブロックの動き情報が、既に初期のマージまたはAMVPのリストの一部であるかもしれないことである。したがって、履歴ベース候補リストの1つ以上の候補の第1のサブセットを第2のサブセットから除外することによって、第2のサブセット中の候補が、マージまたはAMVPのリスト中に既にある候補の複製ではない可能性がより高くなる。
[0115]
以下では、サブサンプリングされた候補リストを説明する。履歴ベース候補リストは、原因となる動きフィールドに対して、より低いサンプリングレートで形成することができる。3つの例示的な技術:リストサブサンプリングアプローチ、ブロックサブサンプリングアプローチ、および、領域サブサンプリングアプローチを説明する。空間的に互いに近いMVは類似しているかもしれない(または、同一でさえあるかもしれない)ので、エンコーダ/デコーダが、ビットストリームからのすべてのコード化/デコードされた動き情報をサンプリングして最終候補リスト(例えば、最終のマージまたはAMVPのリスト)を形成するのを防ぐために、両方またはすべてが、共通グランドを共有してもよい。サブサンプリングレートRは、例のうちの1つ以上に対して指定されていてもよい。
[0116]
上記と同様に、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストの候補として、再構築されたブロックの動き情報を履歴ベース候補リストに記憶させることによって、履歴ベース候補リストを構築し、履歴ベース候補リストの候補のサブセットを識別してもよい。1つ以上の例では、履歴ベース候補リストの候補のサブセットを識別するために、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストをサブサンプリングして、候補のサブセットを識別してもよい。
[0117]
一例として、ビデオエンコーダ200およびビデオデコーダ300は、リストサブサンプリングアプローチを実行してもよい。ビデオエンコーダ200およびビデオデコーダ300は、それぞれ新たにデコード/エンコードされた動き情報を履歴ベース候補リストに挿入することによって、履歴ベース候補リスト(例えば、短期リスト、長期リスト、または、単一履歴ベース候補リスト)を更新してもよい。しかしながら、いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リスト中のR個毎の候補から最初または最後の1つのみを周期的にサブサンプリングし、サブサンプリングされた候補を、候補リスト(例えば、最終のマージまたはAMVPのリスト)に挿入させるために利用可能であるとしてマークしてもよい。
[0118]
これらの利用可能な候補は、履歴ベース候補リスト中のこれらのインデックス位置{0,R,2R,...}({1,R+1,2R+1,...}{2,R+2,2R+3,...}または{R−1,2R−1,3R−1...})から識別できる。例えば、N=16およびR=4のとき、これらのインデックス位置は、{0、4、8、12}(または、{3、7、11、15})であってもよい。
[0119]
例えば、履歴ベース候補リストは、16個の候補を含んでいてもよい。16個の候補のそれぞれは、16個の最も最近再構築されたブロックを表し、16個の最も最近再構築されたブロックに対するそれぞれの動き情報(もしあれば)を含んでいる。履歴ベース候補リスト中の候補は、インデックス値によって識別してもよい(例えば、インデックス0は、履歴ベース候補リスト中の最初のエントリに対するものであり、インデックス15は、履歴ベース候補リスト中の最後のエントリに対するものである)。いくつかの例では、インデックス0は、最も最近再構築されたブロックに対するものであり、インデックス15は、最も早くに再構築されたブロック(例えば、最も以前に再構築されたブロック)に対するものである。言い換えれば、インデックス0は、履歴ベース候補リスト中の最も最近追加された候補に対するものであり、インデックス15は、履歴ベース候補リスト中の最も早くに追加された候補に対するものである。
[0120]
いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストをサブサンプリングして、候補のサブセットを識別する方法として、履歴ベース候補リスト中のN番目毎の候補を識別してもよい。一例として、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リスト中の4番目毎の候補を識別してもよい。
[0121]
また、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストの始めから開始して、または、履歴ベース候補リストの終わりから開始して、N番目毎の候補を識別してもよい。例えば、Nが4に等しいと仮定すると、履歴ベース候補リストの始めから開始する場合、ビデオエンコーダ200およびビデオデコーダ300は、インデックス値0、4、8、12によってインデックス付けされている履歴ベース候補リスト中の候補を識別してもよい。例えば、Nが4に等しいとき、履歴ベース候補リストの終わりから開始する場合、ビデオエンコーダ200およびビデオデコーダ300は、インデックス値15、11、7、3によってインデックス付けされている履歴ベース候補リスト中の候補を識別してもよい。
[0122]
ビデオエンコーダ200およびビデオデコーダ300が履歴ベース候補リストの終わりで開始する例では、インデックス値15は、履歴ベース候補リスト中の最も早く追加された候補を指している。したがって、いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リスト中の最も早く追加された候補から開始して、履歴ベース候補リストをサブサンプリングしてもよい。しかしながら、例示的な技術はこのように限定されない。いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リスト中の最新に追加された候補から開始して、履歴ベース候補リストをサブサンプリングしてもよい。
[0123]
上記で説明したようなリストサブサンプルアプローチは、履歴ベース候補リストをサブサンプルするための1つの例示的な方法である。別の例として、ビデオエンコーダ200およびビデオデコーダ300は、ブロックサブサンプリングアプローチを利用してもよい。ブロックサブサンプリングアプローチでは、新たにデコード/エンコードされた動き情報のR個毎に、最初(または、最後)の動き情報を履歴ベース候補リストに挿入することによって、履歴ベース候補リスト(例えば、短期リスト)が1回更新される。別の例として、ビデオエンコーダ200およびビデオデコーダ300は、領域サブサンプリングアプローチを利用してもよい。領域サブサンプリングアプローチでは、履歴ベース候補リストの以前の更新後に、エンコード/デコードされたピクセルの累積数がRを超えた後にのみ、履歴ベース候補リスト(例えば、短期リスト)が1回更新される。更新プロセスが呼び出されると、累積ピクセル数はRだけ引かれる。
[0124]
上記で説明したように、ビデオエンコーダ200およびビデオデコーダ300は、少なくとも2つの技術を用いて、履歴ベース候補リストの候補のサブセットを識別してもよい。第1の技術では、ビデオエンコーダ200およびビデオデコーダ300は、最近再構築されたブロックの動き情報に対応する候補を除外してもよい。第2の技術では、ビデオエンコーダ200およびビデオデコーダ300は、(例えば、リストベースのアプローチ、ブロックベースのアプローチ、または、領域ベースのアプローチを使用して)履歴ベース候補リストをサブサンプリングしてもよい。
[0125]
いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、第1の技術と第2の技術とを組み合わせてもよい。例えば、ビデオエンコーダ200およびビデオデコーダ300は、最近再構築されたブロックの動き情報に対応する、履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別してもよい。一例として、第1のサブセットを識別するために、ビデオエンコーダ200およびビデオデコーダ300は、2つの最も最近再構築されたブロックの動き情報に対応する、履歴ベース候補リストの2つの候補(例えば、インデックス値0および1によって識別される候補)を識別してもよい。
[0126]
ビデオエンコーダ200およびビデオデコーダ300は、その後、第1のサブセットを除外する、履歴ベース候補リストの1つ以上の候補の第2のサブセット(例えば、インデックス値2〜15によって識別される候補)を識別してもよい。ビデオエンコーダ200およびビデオデコーダ300は、第2のサブセットをサブサンプリングすることによって、履歴ベース候補リストから候補のサブセットを識別してもよい。一例として、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストをサブサンプリングする(例えば、履歴ベース候補リスト中の4番目毎の候補を識別する)が、第1のサブセットからの候補(例えば、インデックス値0および1によって識別される候補)を含めなくてもよい。
[0127]
上記の例示的な技術(例えば、最近再構築されたブロックの動き情報に対応する候補を除外する第1の技術、サブサンプリングの第2の技術、または、これらの組み合わせ)を使用して、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストの候補のサブセットを識別してもよい。ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リスト(例えば、最終のマージリストまたはAMVPのリスト)を発生させてもよい。例えば、ビデオエンコーダ200およびビデオデコーダ300は、候補の識別されたサブセットからの1つ以上の候補を初期のマージまたはAMVPのリストに追加して、最終のマージまたはAMVPのリストを発生させてもよい。
[0128]
このようにして、候補リスト(例えば、最終のマージまたはAMVPのリスト)は、動き情報の多様な選択(例えば、候補リスト中の他の動き情報と類似しない動き情報)を提供する候補を含んでいる。再度説明すると、上述したように、空間的に隣接するブロックは、類似する動き情報を有する傾向がある。あるブロックに対する動き情報をサブサンプリングし、除外することによって、履歴ベース候補リストの候補のサブセットは、空間的に隣接しないブロックからの動き情報を含むかもしれず、これは、動き情報における多様性(例えば、別のブロックに対する動き情報と同じでない、1つのブロックに対する動き情報)を増加させる。
[0129]
動き情報に多様性を有することは、ビデオエンコーダ200が、候補リスト中の動き情報にあまり多様性がない状況に対して、シグナリング帯域幅を低減させる可能性がある、候補リスト中のインデックスを選択することを可能にする。例えば、マージモードに対して、ビデオエンコーダ200は、動き情報によって識別される予測ブロックが、確実に予測ブロックと現在ブロックとの間の残差を最小化する、現在ブロックに対する動き情報を選択することができるかもしれない。動き情報にこのような多様性がないと、候補リストは、残差を最小化する動き情報を含まないかもしれない。
[0130]
以下では、制約付き候補リストを説明する。制約セット中で予め限定された予測モードによってコード化されたブロックからの動き情報を使用することによって、履歴ベース候補リストを更新することができる。ビデオシーケンスにおける動き特性が原因で、動きフィールドを表すには、あるインター予測モードは、ときには、他のインター予測モードよりも効率的である。例えば、オブジェクト遮蔽が発生するとき、空間MV候補は、時間MV候補よりも信頼性が低いであろう。したがって、挿入された動き情報が、予め規定された予測モードのうちの1つを使用することによってコード化されたブロックからのものであるとき、エンコーダ/デコーダが履歴ベース候補リスト(例えば、短期リストまたは長期リスト)を更新するための柔軟性を提供するかもしれない技術を、本開示は説明する。例えば、制約セットが空間−時間動きベクトル予測(STMVP)モードおよびTMVPモードで指定される場合、STMVPおよびTMVPから導出された動き情報のみを使用して、履歴ベース候補リスト(例えば、短期リストまたは長期リスト)を更新してもよい。
[0131]
以下では、インターリーブされた候補の記憶を説明する。それぞれの到来する新しい候補は、インターリーブ方式で、履歴ベース候補リストに押し込むことができる。3つの例示的な技術を以下で説明する。エンコーダ(例えば、ビデオエンコーダ200)は、以下の方法のうちのどれを適用すべきかを選ぶ自由を有し、デコーダ(例えば、ビデオデコーダ300)は、エンコーダが行うのと同じ方法にしたがうだけでよい。
[0132]
A.)マージモードベースのアプローチ:コーデックにおけるマージモードのサポートされるタイプの最大数に依存して、上述の履歴ベース候補リストを、複数のサブリストに分けることができる。例えば、JEMソフトウェアは、空間AMVP、時間AMVP、代替時間動きベクトル予測(ATMVP)、および、STMVPをサポートする。したがって、短期リストおよび長期リストは両方とも、図6に図示すように4つのグループに分けることができる。例えば、先入れ先出し(FIFO)1は、参照番号164によって表される[0、NS1)のインデックス範囲を含んでいる。FIFO2は、参照番号166によって表される[NS1、NS2)のインデックス範囲を含んでいる。FIFO3は、参照番号168によって表される[NS2、NS3)のインデックス範囲を含んでいる。FIFO4は、参照番号170によって表される[NS3、N)のインデックス範囲を含んでいる。インデックス範囲164〜170を含むFIFO1〜FIFO4は、短期リストを形成し、それぞれ4つのモードに割り当てられる。同様に、長期リスト中の[0、NL1)、[NL1、NL2)、[NL2、NL3)、[NL3、N)は、それぞれ4つのモードに割り当てられる。図示するように、各サブリストは独立したFIFOリストである(例えば、第1のサブリストがインデックス範囲164を含み、第2のサブリストがインデックス範囲166を含み、第3のサブリストがインデックス範囲168を含み、第4のサブリストがインデックス範囲170を含む、短期リストに対するFIFO1からFIFO4)。いずれのサブリストが更新されても、他のリストに影響を及ぼさない。インターブロックがエンコード/デコードされた後、その動き情報は、その動き予測モード(例えば、空間AMVP、時間AMVP、ATMVP、および、STMVP)に依存して、FIFOリストのうちの1つに押し込まれる。
[0133]
短期リストのサブリスト中の候補が引き出されると、その候補は、長期リストの対応するサブリストに押し込まれる。例えば、候補が短期リスト中のFIFO1から引き出される場合、それはFIFO1で長期リストに押し込まれる。
[0134]
B.)ブロックサイズベースのアプローチ:方法Aの代わりに、または、方法Aに加えて:マージモードベースのアプローチでは、この例は、ブロック中のピクセル数Nに基づいて、履歴ベース候補リストをいくつかのFIFOサブリストに分けることを可能にする。この例は、昇順で一連のNを予め規定して、各ブロックがどのようにFIFOサブリストに関係するかを決定する。例えば、この例は、履歴ベース候補リストを4つのFIFOサブリスト(図6)に分割することができ、Nシリーズの値は、{64、128、256}のように予め規定することができ、{NS1、NS2、NS3}および{NL1、NL2、NL3}も予め規定する必要があることがある。この例では、ブロック中のピクセルの数が64、128、または、256ピクセルを超えない場合には、デコード/エンコードされたブロックの動き情報がFIFO1、2または3に押し込まれ、残りがFIFO4に挿入される。
[0135]
C.)MVベースのアプローチ:方法Bと同様に:ブロックサイズベースのアプローチでは、サブリストマッピングは、ブロックピクセルカウントの代わりに、ブロックMVに基づくことができる。例えば、この例は、ブロック動き情報をFIFOサブリストにマッピングするための参照として、エンコード/デコードされたブロックMVのxおよびy成分の符号ビットをとることができる。図6と同様に、この例は、履歴ベース候補リストを4つのサブリストに分けることができ、マッピング関数は、単予測に対しては(MVx<0?1:2)*(MVy<0?1:2)であり、または、双予測に対しては(MVx(L0)*MVx(L1)<0?1:2)*(MVy(L0)*MVy(L1)<0?1:2)である。関数出力が1、2、3、または、4のとき、FIFO1、2、3、または、4が、ブロックに割り当てられる。
[0136]
このマッピング関数は、サブリストの数と同じ数の出力を生成させることができる任意のものによって予め規定できる。例えば、履歴ベース候補リスト(例えば、短期リストおよび長期リスト、または、単一の履歴ベース候補リスト)は、2つのサブリスト(例えば、0からNS1−1までの範囲のFIFO1、および、NS1からNまでの範囲のFIFO2)に分けることができ、マッピング関数は、単予測に対しては(MVx+MVy<0?1:2)または双予測に対しては(MVx(L0)+MVx(L1)+MVy(L0)+MVy(L1)<0?1:2)として規定することができる。
[0137]
以下では、応答する余分な部分を取り除くプロセスで開始する、候補の余分な部分を取り除くプロセスを説明する。新たな動き情報が短期リストに挿入される前に、余分な部分を取り除くプロセスが始まり、短期リスト中に記憶されている何らかの動き情報が、新たな動き情報と同一であるか否かをチェックする。同一ではない場合、この新しい動き情報は、上述したのと同じ先入れ先出し方式で、短期リストに挿入される。そうでなければ、短期リスト中の繰り返される動き情報が最初に除去され、その後、新しい動き情報を短期リストに追加できる。例示的な技術はまた、同じ余分な部分を取り除くプロセスを長期リストに適用してもよいことに留意されたい。
[0138]
以下では、時間遅延される余分な部分を取り除くプロセスを説明する。履歴ベース候補リスト(例えば、短期リスト、長期リスト、または、単一の履歴ベース候補リスト)に対する低複雑度の余分な部分を取り除くプロセスを、時間遅延機能とともに説明する。時間遅延機能により、新たな動き情報が履歴ベース候補リストに追加されるたびに、余分な部分を取り除くプロセスが呼び出されることはない。代わりに、余分な部分を取り除くプロセスは、履歴ベース候補リストに挿入される、新たにデコード/エンコードされた動き情報のR個毎に1回呼び出され、ここで、Rは正の整数である。したがって、このアプローチは、履歴ベース候補リストのコンパクトさを失うことを犠牲にして、余分な部分を取り除くプロセスの複雑さをある程度まで効果的に低減させるかもしれない。極端なケースは、Rが無限大に近づくとき、エンコーディングおよびデコーディングプロセスの間に余分な部分を取り除くプロセスは決して呼び出されないことである。エンコーダ/デコーダは、この時間遅延アプローチを履歴ベース候補リストに適用することができるか否かを選ぶ柔軟性を有することに留意されたい。
[0139]
例えば、ビデオエンコーダ200およびビデオデコーダ300が履歴ベース候補リストを構築しているとき、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リスト中の候補のいずれかの動き情報が重複するか否かを決定しないかもしれず、重複する候補を除去しないかもしれない。言い換えれば、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストの余分な部分を取り除くことなく、履歴ベース候補リストを構築してもよい。
[0140]
ビデオエンコーダ200およびビデオデコーダ300が、履歴ベース候補リストの余分な部分を取り除かないかもしれない1つの例示的な理由は、ある候補(例えば、2つの最も最近に再構築されたブロック)のサブサンプリングおよび除外が理由である。上述したように、ある候補のサブサンプリングおよび除外は、重複または類似する動き情報が履歴ベース候補リストから除去される比較的高い可能性を提供する。したがって、特に、ある候補のサブサンプリングおよび除外がなされれば、履歴ベース候補リストに対して余分な部分を取り除く動作を実行することは、多くの利益を提供しないかもしれないが、処理時間がかかるかもしれない。
[0141]
いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストに対して余分な部分を取り除くことを実行しないかもしれないが、ビデオエンコーダ200およびビデオデコーダ300は、最終候補リストに対して余分な部分を取り除く動作を実行してもよい。例えば、ビデオエンコーダ200およびビデオデコーダ300は、履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リストを発生させてもよい。その後、ビデオエンコーダ200およびビデオデコーダ300は、候補リストの余分な部分を取り除いてもよい。
[0142]
以下に合成候補の構築を説明する。CTU行、スライス、タイル、または、ピクチャーがエンコード/デコードされているとき、履歴ベース候補リストは、始めのサイクルにおいて、実際の動きフィールドからサンプリングされる動きで常に満たされているとは限らない。上述したように、すべての空の候補位置は、デフォルト値、すなわちゼロの動きを使用することによって満たされる。代わりに、Bスライスに対して、双予測動きペアの合成セットが導入される。各動きペアは、履歴ベース候補リスト中の2つの利用可能な候補からの参照をとることによって形成され、それぞれ、動きペア中のL0およびL1動きベクトルは、第1の利用可能な候補のL0動きベクトルからのものであり、L1動きベクトルは、第2の利用可能な候補のL1動きベクトルからのものである。履歴ベース候補リスト中の利用可能な候補の数がMであると仮定すると、履歴ベース候補リストからの候補インデックスの順序付けられたシーケンスは、動きペアを形成するために以下のように規定される。
0<m<M{(0,m),(m,0),(1,m),(m,1),(2,m),(m,2), ...(m−1,m),(m,m−1)}
[0143]
例えば、M=4のとき、順序付けられたインデックスシーケンスは、{(0,1),(1,0)}∪{(0,2),(2,0),(1,2),(2,1)}∪{(0,3),(3,0)(1,3),(3,1),(2,3),(3,2)}である。これらの動きペアは、最終マージリストが満たされるまで、履歴ベース候補リスト中の満たされたゼロ動きに対する置換として、最終マージリストにシーケンシャルに挿入される。次に、最終マージリスト中の残りの空の候補位置が、ゼロ動きと、各参照リスト中の第1の参照ピクチャーとを使用することによって満たされる。
[0144]
図7は、本開示の技術を実行してもよい例示的なビデオエンコーダ200を図示するブロック図である。図7は、説明の目的のために提供されており、本開示において広く例示および説明されているような技術の限定と見なすべきではない。説明の目的のために、本開示は、開発中のHEVCビデオコーディング標準規格およびH.266ビデオコーディング標準規格(例えば、VVC)のような、ビデオコーディング標準規格のコンテキストで、ビデオエンコーダ200を説明する。しかしながら、本開示の技術は、これらのビデオコーディング標準規格に限定されず、一般的に、ビデオエンコーディングおよびデコーディングに適用可能である。
[0145]
図7の例では、ビデオエンコーダ200は、ビデオデータメモリ230と、モード選択ユニット202と、残差発生ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、フィルタユニット216と、デコードされたピクチャーバッファ(DBP)218と、エントロピーエンコーディングユニット220とを含んでいる。
[0146]
ビデオデータメモリ230は、ビデオエンコーダ200のコンポーネントによってエンコードされるべきビデオデータを記憶していてもよい。ビデオエンコーダ200は、例えば、ビデオソース104(図1)からのビデオデータメモリ230に記憶されているビデオデータを受け取ってもよい。DPB218は、ビデオエンコーダ200による後続のビデオデータの予測において使用するための参照ビデオデータを記憶する参照ピクチャーメモリとして機能してもよい。ビデオデータメモリ230およびDPB218は、同期ダイナミックランダムアクセスメモリ(DRAM)(SDRAM)を含むDRAM、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または、他のタイプのメモリデバイスのような、さまざまなメモリデバイスのうちのいずれかによって形成されていてもよい。ビデオデータメモリ230およびDPB218は、同じメモリデバイスまたは別個のメモリデバイスによって提供されてもよい。さまざまな例では、ビデオデータメモリ230は、図示するようにビデオエンコーダ200の他のコンポーネントとともにオンチップであってもよく、または、これらのコンポーネントに対してオフチップであってもよい。
[0147]
本開示では、ビデオデータメモリ230への参照は、そのように具体的に説明されない限り、ビデオエンコーダ200の内部のメモリ、または、そのように具体的に説明されない限り、ビデオエンコーダ200の外部のメモリに限定されるものとして解釈すべきではない。むしろ、ビデオデータメモリ230への参照は、ビデオエンコーダ200がエンコードするために受け取るビデオデータ(例えば、エンコードされるべき現在ブロックに対するビデオデータ)を記憶する参照メモリとして理解すべきである。図1のメモリ106はまた、ビデオエンコーダ200のさまざまなユニットからの出力の一時記憶装置を提供してもよい。
[0148]
図7のさまざまなユニットは、ビデオエンコーダ200によって実行される動作の理解を助けるために示されている。ユニットは、固定機能回路、プログラマブル回路、または、これらの組み合わせとして実現してもよい。固定機能回路は、特定の機能性を提供する回路を指し、実行できる動作に対して予め設定される。プログラマブル回路は、さまざまなタスクを実行するようにプログラムでき、実行できる動作において柔軟な機能性を提供できる回路を指している。例えば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって規定される方法でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行してもよい。固定機能回路は、(例えば、パラメータを受け取るまたはパラメータを出力するために)ソフトウェア命令を実行するかもしれないが、固定機能回路が実行する動作のタイプは一般的に不変である。いくつかの例では、ユニットのうちの1つ以上は、別個の回路ブロック(固定機能またはプログラマブル)であってよく、いくつかの例では、1つ以上のユニットは集積回路であってよい。
[0149]
ビデオエンコーダ200は、プログラマブル回路から形成される、算術論理ユニット(ALU)、基本機能ユニット(EFU)、デジタル回路、アナログ回路、および/または、プログラマブルコアを含んでいてもよい。ビデオエンコーダ200の動作がプログラマブル回路によって実行されるソフトウェアを使用して実施される例では、メモリ106(図1)は、ビデオエンコーダ200が受け取って実行するソフトウェアのオブジェクトコードを記憶していてもよく、または、ビデオエンコーダ200内の別のメモリ(図示せず)がこのような命令を記憶していてもよい。
[0150]
ビデオデータメモリ230は、受け取ったビデオデータを記憶するように構成されている。ビデオエンコーダ200は、ビデオデータメモリ230からビデオデータのピクチャーを取り出し、ビデオデータを残差発生ユニット204およびモード選択ユニット202に提供してもよい。ビデオデータメモリ230中のビデオデータは、エンコードされるべき生のビデオデータであってもよい。
[0151]
モード選択ユニット202は、動き推定ユニット222と、動き補償ユニット224と、イントラ予測ユニット226とを含んでいる。モード選択ユニット202は、他の予測モードにしたがってビデオ予測を実行するための追加の機能ユニットを含んでいてもよい。例として、モード選択ユニット202は、パレットユニット、(動き推定ユニット222および/または動き補償ユニット224の一部であってもよい)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニット、または、これらに類するものを含んでいてもよい。
[0152]
モード選択ユニット202は、一般的に、複数のエンコーディングパスを調整して、エンコーディングパラメータの組み合わせをテストし、結果として、このような組み合わせに対するレートひずみ値を得る。エンコーディングパラメータは、CTUのCUへの区分、CUに対する予測モード、CUの残差データに対する変換タイプ、CUの残差データに対する量子化パラメータ等を含んでいてもよい。モード選択ユニット202は、最終的に、他のテストされた組み合わせよりも良好なレートひずみ値を有するエンコーディングパラメータの組み合わせを選択してもよい。
[0153]
ビデオエンコーダ200は、ビデオデータメモリ230から取り出されたピクチャーを一連のCTUに区分し、スライス内に1つ以上のCTUをカプセル化してもよい。モード選択ユニット202は、上記で説明したQTBT構造またはHEVCの4分ツリー構造のようなツリー構造にしたがって、ピクチャーのCTUを区分してもよい。上記で説明したように、ビデオエンコーダ200は、ツリー構造にしたがってCTUを区分することから1つ以上のCUを形成してもよい。このようなCUは、一般的に、「ビデオブロック」または「ブロック」として呼ばれることもある。
[0154]
一般的に、モード選択ユニット202はまた、そのコンポーネント(例えば、動き推定ユニット222、動き補償ユニット224、および、イントラ予測ユニット226)を制御して、現在ブロック(例えば、現在CU、または、HEVCでは、PUとTUとのオーバーラップする部分)に対する予測ブロックを発生させる。現在ブロックのインター予測のために、動き推定ユニット222は、動きサーチを実行して、1つ以上の参照ピクチャー(例えば、DPB218に記憶されている1つ以上の以前にコード化されたピクチャー)中の1つ以上の密接に一致する参照ブロックを識別してもよい。特に、動き推定ユニット222は、例えば、絶対差分の和(SAD)、二乗差分の和(SSD)、平均絶対差分(MAD)、平均二乗差分(MSD)、または、これらに類するものにしたがって、潜在的参照ブロックが現在ブロックにどれだけ類似しているかを表す値を計算してもよい。動き推定ユニット222は、一般的に、現在ブロックと考慮されている参照ブロックとの間のサンプル毎の差分を使用して、これらの計算を実行してもよい。動き推定ユニット222は、現在ブロックに最も密接に一致する参照ブロックを示す、これらの計算から結果的に生じる最低値を有する参照ブロックを識別してもよい。
[0155]
動き推定ユニット222は、現在ピクチャー中の現在ブロックの位置に対する、参照ピクチャー中の参照ブロックの位置を規定する、1つ以上の動きベクトル(MV)を形成してもよい。動き推定ユニット222は、その後、動きベクトルを動き補償ユニット224に提供してもよい。例えば、単方向インター予測に対して、動き推定ユニット222は単一の動きベクトルを提供するかもしれない一方で、双方向インター予測に対して、動き推定ユニット222は2つの動きベクトルを提供するかもしれない。動き補償ユニット224は、その後、動きベクトルを使用して、予測ブロックを発生させてもよい。例えば、動き補償ユニット224は、動きベクトルを使用して、参照ブロックのデータを取り出してもよい。別の例として、動きベクトルがわずかなサンプル精度を有する場合、動き補償ユニット224は、1つ以上の補間フィルタにしたがって、予測ブロックに対する値を補間してもよい。さらに、双方向インター予測に対して、動き補償ユニット224は、それぞれの動きベクトルによって識別された2つの参照ブロックに対するデータを取り出し、例えば、サンプル毎の平均化または重み付き平均化を通して、取り出されたデータを組み合わせてもよい。
[0156]
別の例として、イントラ予測、または、イントラ予測コーディングに対して、イントラ予測ユニット226は、現在ブロックに隣接するサンプルから予測ブロックを発生させてもよい。例えば、方向性モードに対して、イントラ予測ユニット226は、一般的に、現在ブロックに渡る規定された方向で、隣接するサンプルの値を数学的に組み合わせ、これらの計算された値を格納して、予測ブロックを生成させてもよい。別の例として、DCモードに対して、イントラ予測ユニット226は、現在ブロックに対する隣接するサンプルの平均を計算し、予測ブロックの各サンプルに対して、この結果として生じた平均を含むように予測ブロックを発生させてもよい。
[0157]
モード選択ユニット202は、予測ブロックを残差発生ユニット204に提供する。残差発生ユニット204は、ビデオデータメモリ230から現在ブロックの生のエンコードされていないバージョンを受け取り、モード選択ユニット202から予測ブロックを受け取る。残差発生ユニット204は、現在ブロックと予測ブロックとの間のサンプル毎の差分を計算する。結果として生じるサンプル毎の差分は、現在ブロックに対する残差ブロックを規定する。いくつかの例では、残差発生ユニット204はまた、残差ブロック中のサンプル値間の差分を決定し、残差差分パルスコード変調(RDPCM)を使用して、残差ブロックを発生させてもよい。いくつかの例では、残差発生ユニット204は、バイナリ減算を実行する1つ以上の減算器回路を使用して形成されていてもよい。
[0158]
モード選択ユニット202がCUをPUに区分する例では、各PUは、ルーマ予測ユニットおよび対応するクロマ予測ユニットに関係していてもよい。ビデオエンコーダ200およびビデオデコーダ300は、さまざまなサイズを有するPUをサポートしていてもよい。上で示されているように、CUのサイズは、CUのルーマコーディングブロックのサイズを指してもよく、PUのサイズは、PUのルーマ予測ユニットのサイズを指していてもよい。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ200は、イントラ予測のための2N×2NまたはN×NのPUサイズと、インター予測のための2N×2N、2N×N、N×2N、N×N、または、これらに類する対称PUサイズとをサポートしていてもよい。ビデオエンコーダ200およびビデオデコーダ300はまた、インター予測のための2N×nU、2N×nD、nL×2N、および、nR×2NのPUサイズに対する非対称区分をサポートしていてもよい。
[0159]
モード選択ユニット202がCUをPUにさらに区分しない例では、各CUは、ルーマコーディングブロックおよび対応するクロマコーディングブロックに関係しているかもしれない。上記のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指していてもよい。ビデオエンコーダ200およびビデオデコーダ300は、2N×2N、2N×N、または、N×2NのCUサイズをサポートしていてもよい。
[0160]
イントラブロックコピーモードコーディング、アフィンモードコーディング、および、線形モデル(LM)モードコーディングのような、他のビデオコーディング技術に対して、いくつかの例として、モード選択ユニット202は、コーディング技術に関係するそれぞれのユニットを介して、エンコードされている現在ブロックに対する予測ブロックを発生させる。パレットモードコーディングのようないくつかの例では、モード選択ユニット202は、予測ブロックを発生させず、代わりに、選択されたパレットに基づいてブロックを再構築する方法を示すシンタックス要素を発生させてもよい。このようなモードでは、モード選択ユニット202は、これらのシンタックス要素を、エンコードされるようにエントロピーエンコーディングユニット220に提供してもよい。
[0161]
上記で説明したように、残差発生ユニット204は、現在ブロックと対応する予測ブロックとに対するビデオデータを受け取る。残差発生ユニット204は、その後、現在ブロックに対する残差ブロックを発生させる。残差ブロックを発生させるために、残差発生ユニット204は、予測ブロックと現在ブロックとの間のサンプル毎の差分を計算する。
[0162]
変換処理ユニット206は、残差ブロックに1つ以上の変換を適用して、変換係数のブロック(ここでは「変換係数ブロック」として呼ばれる)を発生させる。変換処理ユニット206は、残差ブロックにさまざまな変換を適用して、変換係数ブロックを形成してもよい。例えば、変換処理ユニット206は、離散コサイン変換(DCT)、方向変換、カルーネンレーベ変換(KLT)、または、概念的に類似する変換を、残差ブロックに適用してもよい。いくつかの例では、変換処理ユニット206は、残差ブロックに対して複数の変換、例えば、回転変換のような、1次変換と2次変換とを実行してもよい。いくつかの例では、変換処理ユニット206は、残差ブロックに変換を適用しない。
[0163]
量子化ユニット208は、変換係数ブロック中の変換係数を量子化して、量子化された変換係数ブロックを生成させてもよい。量子化ユニット208は、現在ブロックに関係する量子化パラメータ(QP)値にしたがって、変換係数ブロックの変換係数を量子化してもよい。ビデオエンコーダ200は(例えば、モード選択ユニット202を介して)、CUに関係するQP値を調節することによって、現在ブロックに関係する係数ブロックに適用される量子化の程度を調節してもよい。量子化は、情報の損失をもたらすかもしれず、したがって、量子化された変換係数は、変換処理ユニット206によって生成された元の変換係数よりも低い精度を有するかもしれない。
[0164]
逆量子化ユニット210および逆変換処理ユニット212は、逆量子化および逆変換をそれぞれ量子化された変換係数ブロックに適用して、変換係数ブロックから残差ブロックを再構築してもよい。再構築ユニット214は、再構築された残差ブロックと、モード選択ユニット202によって発生させた予測ブロックとに基づいて、(潜在的なある程度のひずみを有するが)現在ブロックに対応する再構築されたブロックを生成させてもよい。例えば、再構築ユニット214は、再構築された残差ブロックのサンプルを、モード選択ユニット202によって発生させた予測ブロックからの対応するサンプルに追加して、再構築されたブロックを生成させてもよい。
[0165]
フィルタユニット216は、再構築されたブロックに対して1つ以上のフィルタ動作を実行してもよい。例えば、フィルタユニット216は、デブロッキング動作を実行して、CUのエッジに沿ったブロッキネスアーティファクトを低減させてもよい。いくつかの例では、フィルタユニット216の動作はスキップしてもよい。
[0166]
ビデオエンコーダ200は、再構築されたブロックをDPB218に記憶させる。例えば、フィルタユニット216の動作が必要とされない例では、再構築ユニット214は、再構築されたブロックをDPB218に記憶させてもよい。フィルタユニット216の動作が必要とされる例では、フィルタユニット216は、再構築されフィルタされたブロックをDPB218に記憶させてもよい。動き推定ユニット222および動き補償ユニット224は、再構築された(および、潜在的にフィルタ処理された)ブロックから形成された参照ピクチャーをDPB218から取り出して、後にエンコードされるピクチャーのブロックをインター予測してもよい。加えて、イントラ予測ユニット226は、現在ピクチャーのDPB218中の再構築されたブロックを使用して、現在ピクチャー中の他のブロックをイントラ予測してもよい。
[0167]
一般的に、エントロピーエンコーディングユニット220は、ビデオエンコーダ200の他の機能的なコンポーネントから受け取ったシンタックス要素をエントロピーエンコードしてもよい。例えば、エントロピーエンコーディングユニット220は、量子化ユニット208からの量子化された変換係数ブロックをエントロピーエンコードしてもよい。別の例として、エントロピーエンコーディングユニット220は、モード選択ユニット202からの予測シンタックス要素(例えば、インター予測に対する動き情報またはイントラ予測に対するイントラモード情報)をエントロピーエンコードしてもよい。エントロピーエンコーディングユニット220は、ビデオデータの別の例であるシンタックス要素に関して、1つ以上のエントロピーエンコーディング動作を実行して、エントロピーエンコードされたデータを発生させてもよい。例えば、エントロピーエンコーディングユニット220は、データに、コンテキスト適応可変長コーディング(CAVLC)動作、CABAC動作、可変対可変(V2V)長コーディング動作、シンタックスベースのコンテキスト適応2値算術コードディング(SBAC)動作、確率区間区分化エントロピー(PIPE)コーディング動作、指数ゴロムエンコーディング動作、または、別のタイプのエントロピーエンコーディング動作を実行してもよい。いくつかの例では、エントロピーエンコーディングユニット220は、シンタックス要素がエントロピーエンコードされないバイパスモードで動作してもよい。
[0168]
ビデオエンコーダ200は、スライスまたはピクチャーのブロックを再構築するために必要とされるエントロピーエンコードされたシンタックス要素を含むビットストリームを出力してもよい。特に、エントロピーエンコーディングユニット220は、ビットストリームを出力してもよい。
[0169]
上記で説明した動作は、ブロックに関して説明した。このような説明は、ルーマコーディングブロックおよび/またはクロマコーディングブロックに対する動作として理解すべきである。上記で説明したように、いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、CUのルーマ成分およびクロマ成分である。いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、PUのルーマ成分およびクロマ成分である。
[0170]
いくつかの例では、ルーマコーディングブロックに関して実行される動作は、クロマコーディングブロックに対して繰り返す必要はない。一例として、ルーマコーディングブロックに対する動きベクトル(MV)および参照ピクチャーを識別する動作は、クロマブロックに対するMVおよび参照ピクチャーを識別するために繰り返す必要はない。むしろ、ルーマコーディングブロックに対するMVをスケーリングして、クロマブロックに対するMVを決定してもよく、参照ピクチャーは同じであってもよい。別の例として、イントラ予測プロセスは、ルーマコーディングブロックおよびクロマコーディングブロックに対して同じであってもよい。
[0171]
ビデオエンコーダ200は、ビデオデータを記憶するように構成されているメモリと、固定機能および/またはプログラマブル回路中で実現され、本開示で説明する例示的な技術を実行するように構成されている1つ以上の処理ユニットとを含む、ビデオデータをエンコードするように構成されているデバイスの例を表している。例えば、モード選択ユニット202は、履歴ベース候補リストの候補として、再構築されたブロックの動き情報(例えば、AMVPに対する動きベクトル情報、ならびに、マージモードに対する、動きベクトル情報および動きベクトルが指す参照ピクチャー)を履歴ベース候補リストに記憶させることによって、履歴ベース候補リストを構築してもよい。ビデオデータメモリ230は、履歴ベース候補リストを記憶してもよく、モード選択ユニット202は、DPB218中に記憶されている再構築されたブロックの動き情報を履歴ベース候補リスト中に追加してもよい。いくつかの例では、モード選択ユニット202は、履歴ベース候補リストの余分な部分を取り除くことなく、履歴ベース候補リストを構築してもよい。
[0172]
モード選択ユニット202は、履歴ベース候補リストの候補のサブセットを識別するように構成されていてもよい。モード選択ユニット202が履歴ベース候補リストの候補のサブセットを識別するさまざまな方法があってもよい。履歴ベース候補リストの候補のサブセットを識別するための第1の例示的な技術として、モード選択ユニット202は、最近再構築されたブロック(例えば、2つの最も最近再構築されたブロック)の動き情報に対応する、履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別する。モード選択ユニット202は、第1のサブセットを除外する、履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別する。例えば、第2のサブセットは、2つの最も最近再構築されたブロックの動き情報を除く、履歴ベース候補リスト中の残りの再構築されたブロックの動き情報を含んでいる。この例では、モード選択ユニット202は、履歴ベース候補リストのサブセットとして、履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別する。
[0173]
履歴ベース候補リストの候補のサブセットを識別するための第2の例示的な技術として、モード選択ユニット202は、履歴ベース候補リストをサブサンプリングして、候補のサブセットを識別する。一例として、モード選択ユニット202は、履歴ベース候補リスト中の4番目毎の候補を識別する。一例として、モード選択ユニット202は、履歴ベース候補リスト中の最も早く追加された候補から開始して、サブサンプリングする。
[0174]
履歴ベース候補リストの候補のサブセットを識別するための第3の例示的な技術として、モード選択ユニット202は、第1の例示的な技術と第2の例示的な技術との組み合わせを実行してもよい。例えば、モード選択ユニット202は、最近再構築されたブロックの動き情報に対応する、履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別し、第1のサブセットを除外する、履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別する。履歴ベース候補リストの候補のサブセットを識別するために、モード選択ユニット202は、第2のサブセットをサブサンプリングする。一例として、モード選択ユニット202は、履歴候補リストをサブサンプリングするが、第1のサブセットを除外する。別の例として、モード選択ユニット202は、第2のサブセットのみをサブサンプリングする。
[0175]
モード選択ユニット202は、履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リストを発生させてもよい。例えば、モード選択ユニット202は、候補の識別されたサブセットを初期のマージリストまたはAMVPリストに追加して、最終のマージまたはAMVPのリストを発生させてもよい。別の例として、候補の識別されたサブセットは、それ自体の独立したインデックス可能リストとして形成してもよい(例えば、マージまたはAMVPのリストに追加される必要がない)。
[0176]
モード選択ユニット202は、現在ブロックを再構築するために動き情報を識別するための、発生させた候補リストに対するインデックスを示す情報をシグナリングしてもよい。例えば、ビデオデコーダ300は、類似する動作を実行して、候補リストを発生させてもよい。ビデオデコーダ300は、シグナリングされた情報からインデックスを決定し、インデックスによって識別される動き情報を決定してもよい。ビデオデコーダ300は、動き情報を利用して、現在ブロックに対する動きベクトルを決定し、決定された動きベクトルを使用して、現在ブロックを再構築してもよい。例えば、ビデオデコーダ300は、決定された動きベクトルに基づいて、予測ブロックを決定してもよい。
[0177]
ビデオエンコーダ200はまた、現在ブロックを再構築するのに使用される動き情報に基づいて識別される予測ブロックとの間の残差を示す情報をシグナリングしてもよい。ビデオデコーダ300は、残差を予測ブロックに追加して、現在ブロックを再構築してもよい。
[0178]
図8は、本開示の技術を利用してもよい例示的なビデオデコーダ300を図示するブロック図である。図8は、説明の目的のために提供されており、本開示で広く実証され、説明されているような技術に限定されない。説明の目的で、ビデオデコーダ300が、VVCおよびHEVCを含むJEMの技術にしたがって説明されることを、本開示は説明する。しかしながら、本開示の技術は、他のビデオコーディング標準規格に構成されているビデオコーディングデバイスによって実行してもよい。
[0179]
図8の例では、ビデオデコーダ300は、コード化されたピクチャーバッファ(CPB)メモリ320と、エントロピーデコーディングユニット302と、予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312と、デコードされたピクチャーバッファ(DPB)314とを含んでいる。予測処理ユニット304は、動き補償ユニット316とイントラ予測処理ユニット318とを含んでいる。予測処理ユニット304は、他の予測モードにしたがって予測を実行するための追加ユニットを含んでいてもよい。例として、予測処理ユニット304は、パレットユニット、(動き補償ユニット316の一部を形成していてもよい)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニット、または、これらに類するものを含んでいてもよい。他の例では、ビデオデコーダ300は、より多い、より少ない、または、異なる機能的コンポーネントを含んでいてもよい。
[0180]
CPBメモリ320は、ビデオデコーダ300のコンポーネントによってデコードされるべき、エンコードされたビデオビットストリームのようなビデオデータを記憶してもよい。CPBメモリ320に記憶されているビデオデータは、例えば、コンピュータ読取可能媒体110(図1)から取得されてもよい。CPBメモリ320は、エンコードされたビデオビットストリームからのエンコードされたビデオデータ(例えば、シンタックス要素)を記憶するCPBを含んでいてもよい。また、CPBメモリ320は、ビデオデコーダ300のさまざまなユニットからの出力を表す一時データのような、コード化されたピクチャーのシンタックス要素以外のビデオデータを記憶してもよい。DPB314は、一般的に、デコードされたピクチャーを記憶し、エンコードされたビデオビットストリームの後続のデータまたはピクチャーをデコードするときに、ビデオデコーダ300が、このデコードされたピクチャーを、参照ビデオデータとして出力および/または使用してもよい。CPBメモリ320およびDPB314は、同期ダイナミックランダムアクセスメモリ(DRAM)(SDRAM)を含むDRAM、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または、他のタイプのメモリデバイスのような、さまざまなメモリデバイスのいずれかによって形成されていてもよい。CPBメモリ320およびDPB314は、同じメモリデバイスまたは別個のメモリデバイスによって提供されてもよい。さまざまな例では、CPBメモリ320は、ビデオデコーダ300の他のコンポーネントとともにオンチップであるか、または、これらのコンポーネントに対してオフチップであってもよい。
[0181]
追加的にまたは代替的に、いくつかの例では、ビデオデコーダ300は、メモリ120(図1)からコード化されたビデオデータを取り出してもよい。すなわち、メモリ120は、CPBメモリ320を用いて上記で説明したようにデータを記憶していてもよい。同様に、ビデオデコーダ300の機能の一部またはすべてが、ビデオデコーダ300の処理回路によって実行されるソフトウェアで実現されるとき、メモリ120は、ビデオデコーダ300によって実行されるべき命令を記憶していてもよい。
[0182]
図8に示されているさまざまなユニットは、ビデオデコーダ300によって実行される動作の理解を助けるために図示されている。ユニットは、固定機能回路、プログラマブル回路、または、これらの組み合わせとして実現してもよい。図7と同様に、固定機能回路は、特定の機能性を提供する回路を指し、実行できる動作に対して予め設定される。プログラマブル回路は、さまざまなタスクを実行するようにプログラムでき、実行できる動作において柔軟な機能性を提供できる回路を指している。例えば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって規定される方法でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行してもよい。固定機能回路は、(例えば、パラメータを受け取るまたはパラメータを出力するために)ソフトウェア命令を実行してもよいが、固定機能回路が実行する動作のタイプは一般的に不変である。いくつかの例では、ユニットのうちの1つ以上は、別個の回路ブロック(固定機能またはプログラマブル)であってもよく、いくつかの例では、1つ以上のユニットは集積回路であってもよい。
[0183]
ビデオデコーダ300は、ALU、EFU、デジタル回路、アナログ回路、および/または、プログラマブル回路から形成されているプログラマブルコアを含んでいてもよい。ビデオデコーダ300の動作がプログラマブル回路上で実行するソフトウェアによって実行される例では、オンチップまたはオフチップメモリは、ビデオデコーダ300が受け取って実行するソフトウェアの命令(例えば、オブジェクトコード)を記憶していてもよい。
[0184]
エントロピーデコーディングユニット302は、CPBからエンコードされたビデオデータを受け取り、ビデオデータをエントロピーデコードして、シンタックス要素を再生させてもよい。予測処理ユニット304、逆量子化ユニット306、逆変換処理ユニット308、再構築ユニット310、および、フィルタユニット312は、ビットストリームから抽出されたシンタックス要素に基づいて、デコードされたビデオデータを発生させてもよい。
[0185]
一般的に、ビデオデコーダ300は、ブロック毎のベースでピクチャーを再構築する。ビデオデコーダ300は、各ブロックに対して個別に再構築動作を実行してもよい(現在再構築されている、すなわち、デコードされているブロックは、「現在ブロック」として呼ばれることがある)。
[0186]
エントロピーデコーディングユニット302は、量子化された変換係数ブロックの量子化された変換係数を規定するシンタックス要素とともに、量子化パラメータ(QP)および/または変換モード表示のような変換情報をエントロピーデコードしてもよい。逆量子化ユニット306は、量子化変換係数ブロックに関係するQPを使用して、量子化の程度を、そして、同様に逆量子化ユニット306が適用する逆量子化の程度を決定してもよい。逆量子化ユニット306は、例えば、ビット単位の左シフト演算を実行して、量子化変換係数を逆量子化してもよい。それによって、逆量子化ユニット306は、変換係数を含む変換係数ブロックを形成してもよい。
[0187]
逆量子化ユニット306が係数ブロックを形成した後、逆変換処理ユニット308は、変換係数ブロックに1つ以上の逆変換を適用して、現在ブロックに関係する残差サンプルブロックを発生させてもよい。例えば、逆変換処理ユニット308は、係数ブロックに、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、または、別の逆変換を適用してもよい。
[0188]
さらに、予測処理ユニット304は、エントロピーデコーディングユニット302によってエントロピーデコードされた予測情報シンタックス要素にしたがって、予測ブロックを発生させる。例えば、現在ブロックがインター予測されることを予測情報シンタックス要素が示す場合、動き補償ユニット316は予測ブロックを発生させてもよい。このケースでは、予測情報シンタックス要素は、参照ブロックを取り出すべきDPB314中の参照ピクチャーとともに、現在ピクチャー中の現在ブロックのロケーションに対する、参照ピクチャー中の参照ブロックのロケーションを識別する動きベクトルを示してもよい。動き補償ユニット316は、一般的に、動き補償ユニット224(図7)に関して説明した方法と実質的に類似する方法で、インター予測プロセスを実行してもよい。
[0189]
別の例として、現在ブロックがイントラ予測されることを予測情報シンタックス要素が示している場合、イントラ予測ユニット318は、予測情報シンタックス要素によって示されるイントラ予測モードにしたがって、予測ブロックを発生させてもよい。再度説明すると、イントラ予測ユニット318は、一般的に、イントラ予測ユニット226(図7)に関して説明した方法と実質的に類似する方法で、イントラ予測プロセスを実行してもよい。イントラ予測ユニット318は、現在ブロックに対する隣接するサンプルのデータをDPB314から取り出してもよい。
[0190]
再構築ユニット310は、予測ブロックと残差ブロックとを使用して、現在ブロックを再構築してもよい。例えば、再構築ユニット310は、残差ブロックのサンプルを予測ブロックの対応するサンプルに追加して、現在ブロックを再構築してもよい。
[0191]
フィルタユニット312は、再構築されたブロックに対して1つ以上のフィルタ動作を実行してもよい。例えば、フィルタユニット312は、デブロッキング動作を実行して、再構築されたブロックのエッジに沿ってブロッキネスアーティファクトを低減させてもよい。フィルタユニット312の動作は、必ずしもすべての例において実行される必要はない。
[0192]
ビデオデコーダ300は、再構築されたブロックをDPB314中に記憶させてもよい。上記で説明したように、DPB314は、イントラ予測のための現在のピクチャーと、後続の動き補償のための以前にデコードされたピクチャーとのサンプルのような参照情報を、予測処理ユニット304に提供してもよい。さらに、ビデオデコーダ300は、図1のディスプレイデバイス118のようなディスプレイデバイス上での後続の提示のために、DPBからデコードされたピクチャーを出力してもよい。
[0193]
このようにして、ビデオデコーダ300は、ビデオデータを記憶するように構成されているメモリと、固定機能および/またはプログラマブル回路中で実現され、本開示で説明する例示的な技術を実行するように構成されている1つ以上の処理ユニットとを含むビデオデコーディングデバイスの例を表している。例えば、予測処理ユニット304は、履歴ベース候補リストの候補として、再構築されたブロックの動き情報(例えば、AMVPに対する動きベクトル情報、ならびに、マージモードに対する、動きベクトル情報および動きベクトルが指す参照ピクチャー)を履歴ベース候補リストに記憶させることによって、履歴ベース候補リストを構築してもよい。DPB314(または、場合によっては他の何らかのメモリ)は、履歴ベース候補リストを記憶してもよく、予測処理ユニット304は、DPB314中に記憶されている再構築されたブロックの動き情報を履歴ベース候補リスト中に追加してもよい。いくつかの例では、予測処理ユニット304は、履歴ベース候補リストの余分な部分を取り除くことなく、履歴ベース候補リストを構築してもよい。
[0194]
予測処理ユニット304は、履歴ベース候補リストの候補のサブセットを識別するように構成されていてもよい。予測処理ユニット304が履歴ベース候補リストの候補のサブセットを識別するさまざまな方法があってもよい。履歴ベース候補リストの候補のサブセットを識別するための第1の例示的な技術として、予測処理ユニット304は、最近再構築されたブロック(例えば、2つの最も最近再構築されたブロック)の動き情報に対応する、履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別する。予測処理ユニット304は、第1のサブセットを除外する、履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別する。例えば、第2のサブセットは、2つの最も最近再構築されたブロックの動き情報を除く、履歴ベース候補リスト中の残りの再構築されたブロックの動き情報を含んでいる。この例では、予測処理ユニット304は、履歴ベース候補リストのサブセットとして、履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別する。
[0195]
履歴ベース候補リストの候補のサブセットを識別するための第2の例示的な技術として、予測処理ユニット304は、履歴ベース候補リストをサブサンプリングして、候補のサブセットを識別する。一例として、予測処理ユニット304は、履歴ベース候補リスト中の4番目毎の候補を識別する。一例として、予測処理ユニット304は、履歴ベース候補リスト中の最も早く追加された候補から開始して、サブサンプリングする。
[0196]
履歴ベース候補リストの候補のサブセットを識別するための第3の例示的な技術として、予測処理ユニット304は、第1の例示的な技術と第2の例示的な技術との組み合わせを実行してもよい。例えば、予測処理ユニット304は、最近再構築されたブロックの動き情報に対応する、履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別し、第1のサブセットを除外する、履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別する。履歴ベース候補リストの候補のサブセットを識別するために、予測処理ユニット304は、第2のサブセットをサブサンプリングする。一例として、予測処理ユニット304は、履歴候補リストをサブサンプリングするが、第1のサブセットを除外する。別の例として、予測処理ユニット304は、第2のサブセットのみをサブサンプリングする。
[0197]
予測処理ユニット304は、履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リストを発生させてもよい。例えば、予測処理ユニット304は、候補の識別されたサブセットを初期のマージリストまたはAMVPリストに追加して、最終のマージまたはAMVPのリストを発生させてもよい。別の例として、候補の識別されたサブセットは、それ自体の独立したインデックス可能リストとして形成してもよい(例えば、マージまたはAMVPのリストに追加される必要がない)。
[0198]
予測処理ユニット304は、発生させた候補リストに基づいて、現在ブロックを再構築してもよい。例えば、予測処理ユニット304は、発生させた候補リストに対するインデックスを示す情報を受け取り、発生させた候補リストに対するインデックスによって識別される、発生させた候補リスト中に記憶されている動き情報に基づいて、現在ブロックに対する動き情報を決定してもよい。例えば、マージモードでは、予測処理ユニット304は、現在ブロックに対する動きベクトルとして、発生させた候補リスト中に記憶されている動き情報の動きベクトルを設定してもよい。AMVPモードでは、予測処理ユニット304は、動きベクトル差分(MVD)を受け取り、発生させた候補リスト中に記憶されている動き情報の動きベクトルにMVDを追加して、現在ブロックに対する動きベクトルを決定してもよい。予測処理ユニット304は、決定された動き情報に基づいて、予測ブロックを決定してもよい。
[0199]
さらに、予測処理ユニット304は、予測ブロックと現在ブロックとの間の残差を示す情報を受け取ってもよい。再構築ユニット310は、残差と予測ブロックとに基づいて、現在ブロックを再構築してもよい(例えば、残差を予測ブロックに追加する)。
[0200]
図9は、ビデオデータをエンコードする例示的な方法を図示したフローチャートである。例示的な技術は、ビデオエンコーダ200のようなプロセッサに関して説明する。例えば、メモリ(例えば、ビデオデータメモリ230またはDPB218)が、履歴ベース候補リストを記憶してもよい。
[0201]
プロセッサ(例えば、ビデオエンコーダ200)は、履歴ベース候補リストの候補として、再構築されたブロックの動き情報を履歴ベース候補リスト中に記憶させることにより、履歴ベース候補リストを構築するように構成されていてもよい(400)。いくつかの例では、プロセッサは、履歴ベース候補リストの余分な部分を取り除くことなく、履歴ベース候補リストを構築してもよい。
[0202]
プロセッサは、履歴ベース候補リストの候補のサブセットを識別してもよい(402)。一例として、プロセッサは、最近再構築されたブロックの動き情報に対応する、履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別し、第1のサブセットを除外する、履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別してもよい。この例では、履歴ベース候補リストの候補のサブセットを識別するために、プロセッサは、履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別するように構成されていてもよい。いくつかの例では、1つ以上の候補の第1のサブセットを識別するために、プロセッサは、2つの最も最近再構築されたブロックの動き情報に対応する、履歴ベース候補リストの2つの候補を識別するように構成されていてもよい。
[0203]
別の例として、候補のサブセットを識別するために、プロセッサは、履歴ベース候補リストをサブサンプリングして、候補のサブセットを識別するように構成されていてもよい。例えば、履歴ベース候補リストをサブサンプリングするために、プロセッサは、履歴ベース候補リスト中で4番目毎の候補を識別するように構成されていてもよい。また、履歴ベース候補リストをサブサンプリングするために、プロセッサは、履歴ベース候補リスト中で最も早く追加された候補から開始して、サブサンプリングするように構成されていてもよい。
[0204]
別の例として、プロセッサは、最近再構築されたブロックの動き情報に対応する、履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別し、第1のサブセットを除外する、履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別してもよい。この例では、履歴ベース候補リストの候補のサブセットを識別するために、プロセッサは、第2のサブセットをサブサンプリングしてもよい。
[0205]
プロセッサは、履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リストを発生させてもよい(404)。候補リストは、マージリストまたは高度動きベクトル予測(AMVP)リストのうちの1つであってもよい。例えば、プロセッサは、候補のサブセットを初期のマージまたはAMVPのリストに追加して、最終のマージまたはAMVPのリストを発生させてもよい。
[0206]
プロセッサは、現在ブロックを再構築するのに使用される動き情報を識別するための、発生させた候補リストに対するインデックスを示す情報をシグナリングしてもよい(406)。例えば、発生させた候補リストに対するインデックスを用いて、ビデオデコーダ300は、現在ブロックに対する動き情報を決定してもよい。現在ブロックに対する動き情報に基づいて、ビデオデコーダ300は予測ブロックを決定してもよい。プロセッサはまた、現在ブロックを再構築するのに使用される動き情報に基づいて識別される予測ブロックとの間の残差を示す情報をシグナリングしてもよい。ビデオデコーダ300は、残差を予測ブロックに追加して、現在ブロックを再構築してもよい。
[0207]
図10は、ビデオデータをデコードする例示的な方法を図示するフローチャートである。例示的な技術は、プロセッサ(例えば、ビデオデコーダ300)に関して説明する。例えば、メモリ(例えば、DPB314または他の何らかのメモリ)が、履歴ベース候補リストを記憶していてもよい。
[0208]
プロセッサ(例えば、ビデオデコーダ300)は、履歴ベース候補リストの候補として、再構築されたブロックの動き情報を履歴ベース候補リスト中に記憶させることにより、履歴ベース候補リストを構築するように構成されていてもよい(500)。いくつかの例では、プロセッサは、履歴ベース候補リストの余分な部分を取り除くことなく、履歴ベース候補リストを構築してもよい。
[0209]
プロセッサは、履歴ベース候補リストの候補のサブセットを識別してもよい(502)。一例として、プロセッサは、最近再構築されたブロックの動き情報に対応する、履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別し、第1のサブセットを除外する、履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別してもよい。この例では、履歴ベース候補リストの候補のサブセットを識別するために、プロセッサは、履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別するように構成されていてもよい。いくつかの例では、1つ以上の候補の第1のサブセットを識別するために、プロセッサは、2つの最も最近再構築されたブロックの動き情報に対応する、履歴ベース候補リストの2つの候補を識別するように構成されていてもよい。
[0210]
別の例として、候補のサブセットを識別するために、プロセッサは、履歴ベース候補リストをサブサンプリングして、候補のサブセットを識別するように構成されていてもよい。例えば、履歴ベース候補リストをサブサンプリングするために、プロセッサは、履歴ベース候補リスト中で4番目毎の候補を識別するように構成されていてもよい。また、履歴ベース候補リストをサブサンプリングするために、プロセッサは、履歴ベース候補リスト中で最も早く追加された候補から開始して、サブサンプリングするように構成されていてもよい。
[0211]
別の例として、プロセッサは、最近再構築されたブロックの動き情報に対応する、履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別し、第1のサブセットを除外する、履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別してもよい。この例では、履歴ベース候補リストの候補のサブセットを識別するために、プロセッサは、第2のサブセットをサブサンプリングしてもよい。
[0212]
プロセッサは、履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リストを発生させてもよい(504)。候補リストは、マージリストまたは高度動きベクトル予測(AMVP)リストのうちの1つであってもよい。例えば、プロセッサは、候補のサブセットを初期のマージまたはAMVPのリストに追加して、最終のマージまたはAMVPのリストを発生させてもよい。
[0213]
プロセッサは、発生させた候補リストに基づいて、現在ブロックを再構築してもよい(506)。例えば、プロセッサは、発生させた候補リストに対するインデックスを示す情報を受け取り、発生させた候補リストに対するインデックスによって識別される、発生させた候補リストに記憶されている動き情報に基づいて、現在ブロックに対する動き情報を決定してもよい。プロセッサは、決定された動き情報に基づいて、予測ブロックを決定し、予測ブロックと現在ブロックとの間の残差を示す情報を受け取り、残差と予測ブロックとに基づいて、現在ブロックを再構築してもよい。
[0214]
例に依存して、ここで説明した技術のうちのいずれかのある動作またはイベントは、異なるシーケンスで実行でき、追加してもよく、マージしてもよく、または、完全に省略してもよい(例えば、説明した動作またはイベントのすべてが本技術の実施のために必要であるとは限らない)ことを認識されたい。さらに、ある例では、行為またはイベントは、シーケンシャルによりもむしろ、例えば、マルチスレッド処理、割り込み処理、または、複数のプロセッサを通して、同時に実行してもよい。
[0215]
1つ以上の例において、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、または、これらの任意の組み合わせで実現してもよい。ソフトウェアで実現される場合には、機能は、1つ以上の命令またはコードとしてコンピュータ読取可能媒体上に記憶されていてもよく、あるいは、1つ以上の命令またはコードとしてコンピュータ読取可能媒体上で送信されてもよく、ハードウェアベースの処理ユニットによって実行してもよい。コンピュータ読取可能媒体はまた、例えば、通信プロトコルにしたがって、コンピュータプログラムの1つの場所から別の場所への転送を容易にする何らかの媒体を含む通信媒体、または、データ記憶媒体のような有形の媒体に対応するコンピュータ読取可能記憶媒体を含んでいてもよい。このように、コンピュータ読取可能媒体は、一般的に、(1)有形コンピュータ読取可能記憶媒体、または、(2)信号または搬送波のような通信媒体に対応していてもよい。データ記憶媒体は、本開示で説明した技術を実現するための命令、コード、および/または、データ構造を取り出すために、1つ以上のコンピュータまたは1つ以上のプロセッサによってアクセスすることができる任意の利用可能な媒体であってもよい。コンピュータプログラム製品は、コンピュータ読取可能媒体を含んでいてもよい。
[0216]
限定ではなく例として、このようなコンピュータ読取可能記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光学ディスク記憶媒体、磁気ディスク記憶媒体または他の磁気記憶デバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態で望ましいプログラムコードを記憶するために使用され、コンピュータによってアクセスすることができる他の何らかの媒体を含むことができる。また、任意の接続は、コンピュータ読取可能媒体と適切に呼ばれる。例えば、命令が、ウェブサイトから、サーバから、あるいは、同軸ケーブル、光ファイバケーブル、撚り対、デジタル加入者線(DSL)、または、赤外線、無線、マイクロ波のようなワイヤレステクノロジーを使用している他の遠隔ソースから送信される場合、同軸ケーブル、光ファイバケーブル、撚り対、DSL、または、赤外線、無線およびマイクロ波のようなワイヤレステクノロジーは、媒体の定義に含まれる。しかしながら、コンピュータ読取可能記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または、他の一時的な媒体を含まないが、代わりに、非一時的な、有形の記憶媒体に向けられていることを理解すべきである。ここで使用するようなディスク(diskおよびdisc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル汎用ディスク(DVD)、フロッピー(登録商標)ディスク、および、ブルーレイ(登録商標)ディスクを含むが、通常、ディスク(disk)はデータを磁気的に再生する一方で、ディスク(disc)はデータをレーザにより光学的に再生する。上記の組み合わせも、コンピュータ読取可能媒体の範囲内に含むべきである。
[0217]
複数の命令は、1つ以上のDSP、汎用マイクロプロセッサ、ASIC、FPGA、または、他の同等な集積またはディスクリート論理回路のような1つ以上のプロセッサによって実行してもよい。したがって、ここで使用されるように、用語「プロセッサ」は、前述の構造、または、ここで説明した技術のインプリメンテーションに適した他の何らかの構造のいずれかを指していてもよい。加えて、いくつかの態様では、ここで説明した機能性は、エンコードおよびデコードするように構成されている専用のハードウェアおよび/またはソフトウェアモジュール内に提供してもよく、あるいは、組み合わされたコーデック中に組み込んでもよい。また、技術は、1つ以上の回路または論理エレメントにおいて、完全に実現することができる。
[0218]
本開示の技術は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(例えば、チップセット)を含む、幅広い種類のデバイスまたは装置において実施してもよい。さまざまなコンポーネント、モジュール、または、ユニットは、開示した技術を実行するように構成されているデバイスの機能的な態様を強調するためにここ説明されているが、それらは、異なるハードウェアユニットによる実現を必ずしも要求するわけではない。むしろ、上記で説明したように、さまざまなユニットは、コーデックハードウェアユニットにおいて組み合わされるか、または、適切なソフトウェアおよび/またはファームウェアとともに、上記で説明したような1つ以上のプロセッサを含む、相互動作可能ハードウェアユニットの集合によって提供されてもよい。
[0219]
さまざまな例を説明してきた。これらおよび他の例は、以下の特許請求の範囲の範囲内にある。

Claims (34)

  1. ビデオデータをデコードする方法において、
    前記方法は、
    履歴ベース候補リストの候補として、再構築されたブロックの動き情報を前記履歴ベース候補リスト中に記憶させることにより、前記履歴ベース候補リストを構築することと、
    前記履歴ベース候補リストの候補のサブセットを識別することと、
    前記履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リストを発生させることと、
    前記発生させた候補リストに基づいて、現在ブロックを再構築することとを含む方法。
  2. 最近再構築されたブロックの動き情報に対応する、前記履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別することと、
    前記第1のサブセットを除外する、前記履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別することとをさらに含み、
    前記履歴ベース候補リストの候補のサブセットを識別することは、前記履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別することを含む請求項1記載の方法。
  3. 前記1つ以上の候補の第1のサブセットを識別することは、2つの最も最近再構築されたブロックの動き情報に対応する、前記履歴ベース候補リストの2つの候補を識別することを含む請求項2記載の方法。
  4. 前記候補のサブセットを識別することは、前記履歴ベース候補リストをサブサンプリングして、前記候補のサブセットを識別することを含む請求項1記載の方法。
  5. 前記履歴ベース候補リストをサブサンプリングすることは、前記履歴ベース候補リスト中の4番目毎の候補を識別することを含む請求項4記載の方法。
  6. 前記履歴ベース候補リストをサブサンプリングすることは、前記履歴ベース候補リスト中で最も早く追加された候補から開始して、サブサンプリングすることを含む請求項4記載の方法。
  7. 前記履歴ベース候補リストを構築することは、前記履歴ベース候補リストの余分な部分を取り除くことなく、前記履歴ベース候補リストを構築することを含む請求項1記載の方法。
  8. 前記候補リストは、マージリストまたは高度動きベクトル予測(AMVP)リストのうちの1つを含む請求項1記載の方法。
  9. 最近再構築されたブロックの動き情報に対応する、前記履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別することと、
    前記第1のサブセットを除外する、前記履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別することとをさらに含み、
    前記履歴ベース候補リストの候補のサブセットを識別することは、前記第2のサブセットをサブサンプリングすることを含む請求項1記載の方法。
  10. 前記発生させた候補リストに基づいて、現在ブロックを再構築することは、
    前記発生させた候補リストに対するインデックスを示す情報を受け取ることと、
    前記発生させた候補リストに対するインデックスにより識別される、前記発生させた候補リスト中に記憶されている動き情報に基づいて、前記現在ブロックに対する動き情報を決定することと、
    前記決定された動き情報に基づいて、予測ブロックを決定することと、
    前記予測ブロックと前記現在ブロックとの間の残差を示す情報を受け取ることと、
    前記残差と前記予測ブロックとに基づいて、前記現在ブロックを再構築することとを含む請求項1記載の方法。
  11. ビデオデータをデコードするデバイスにおいて、
    前記デバイスは、
    履歴ベース候補リストを記憶するように構成されているメモリと、
    前記メモリ中で、前記履歴ベース候補リストの候補として、再構築されたブロックの動き情報を前記履歴ベース候補リスト中に記憶させることにより、前記履歴ベース候補リストを構築するようにと、
    前記履歴ベース候補リストの候補のサブセットを識別するようにと、
    前記履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リストを発生させるようにと、
    前記発生させた候補リストに基づいて、現在ブロックを再構築するように構成されているプロセッサとを具備するデバイス。
  12. 前記プロセッサは、
    最近再構築されたブロックの動き情報に対応する、前記履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別するようにと、
    前記第1のサブセットを除外する、前記履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別するように構成され、
    前記履歴ベース候補リストの候補のサブセットを識別するために、前記プロセッサは、前記履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別するように構成されている請求項11記載のデバイス。
  13. 前記1つ以上の候補の第1のサブセットを識別するために、前記プロセッサは、2つの最も最近再構築されたブロックの動き情報に対応する、前記履歴ベース候補リストの2つの候補を識別するように構成されている請求項12記載のデバイス。
  14. 前記候補のサブセットを識別するために、前記プロセッサは、前記履歴ベース候補リストをサブサンプリングして、前記候補のサブセットを識別するように構成されている請求項12記載のデバイス。
  15. 前記履歴ベース候補リストをサブサンプリングするために、前記プロセッサは、前記履歴ベース候補リスト中の4番目毎の候補を識別するように構成されている請求項14記載のデバイス。
  16. 前記履歴ベース候補リストをサブサンプリングするために、前記プロセッサは、前記履歴ベース候補リスト中で最も早く追加された候補から開始して、サブサンプリングするように構成されている請求項14記載のデバイス。
  17. 前記履歴ベース候補リストを構築するために、前記プロセッサは、前記履歴ベース候補リストの余分な部分を取り除くことなく、前記履歴ベース候補リストを構築するように構成されている請求項14記載のデバイス。
  18. 前記候補リストは、マージリストまたは高度動きベクトル予測(AMVP)リストのうちの1つを含む請求項14記載のデバイス。
  19. 前記プロセッサは、
    最近再構築されたブロックの動き情報に対応する、前記履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別するようにと、
    前記第1のサブセットを除外する、前記履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別するように構成され、
    前記履歴ベース候補リストの候補のサブセットを識別するために、前記プロセッサは、前記第2のサブセットをサブサンプリングするように構成されている請求項11記載のデバイス。
  20. 前記発生させた候補リストに基づいて、現在ブロックを再構築するために、前記プロセッサは、
    前記発生させた候補リストに対するインデックスを示す情報を受け取るようにと、
    前記発生させた候補リストに対するインデックスにより識別される、前記発生させた候補リスト中に記憶されている動き情報に基づいて、前記現在ブロックに対する動き情報を決定するようにと、
    前記決定された動き情報に基づいて、予測ブロックを決定するようにと、
    前記予測ブロックと前記現在ブロックとの間の残差を示す情報を受け取るようにと、
    前記残差と前記予測ブロックとに基づいて、前記現在ブロックを再構築するように構成されている請求項11記載のデバイス。
  21. 前記プロセッサは、固定された機能のまたはプログラム可能な回路のうちの少なくとも1つを含むビデオデコーダを備える請求項11記載のデバイス。
  22. ビデオデータをエンコードする方法において、
    前記方法は、
    履歴ベース候補リストの候補として、再構築されたブロックの動き情報を前記履歴ベース候補リスト中に記憶させることにより、前記履歴ベース候補リストを構築することと、
    前記履歴ベース候補リストの候補のサブセットを識別することと、
    前記履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リストを発生させることと、
    現在ブロックを再構築するのに使用される動き情報を識別するための、前記発生させた候補リストに対するインデックスを示す情報をシグナリングすることとを含む方法。
  23. 最近再構築されたブロックの動き情報に対応する、前記履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別することと、
    前記第1のサブセットを除外する、前記履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別することとをさらに含み、
    前記履歴ベース候補リストの候補のサブセットを識別することは、前記履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別することを含む請求項22記載の方法。
  24. 前記候補のサブセットを識別することは、前記履歴ベース候補リストをサブサンプリングして、前記候補のサブセットを識別することを含む請求項22記載の方法。
  25. 前記履歴ベース候補リストを構築することは、前記履歴ベース候補リストの余分な部分を取り除くことなく、前記履歴ベース候補リストを構築することを含む請求項22記載の方法。
  26. 最近再構築されたブロックの動き情報に対応する、前記履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別することと、
    前記第1のサブセットを除外する、前記履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別することとをさらに含み、
    前記履歴ベース候補リストの候補のサブセットを識別することは、前記第2のサブセットをサブサンプリングすることを含む請求項22記載の方法。
  27. 前記現在ブロックを再構築するのに使用される動き情報に基づいて識別される予測ブロックとの間の残差を示す情報をシグナリングすることをさらに含む請求項22記載の方法。
  28. ビデオデータをエンコードするデバイスにおいて、
    前記デバイスは、
    履歴ベース候補リストを記憶するように構成されているメモリと、
    前記メモリ中で、前記履歴ベース候補リストの候補として、再構築されたブロックの動き情報を前記履歴ベース候補リスト中に記憶させることにより、前記履歴ベース候補リストを構築するようにと、
    前記履歴ベース候補リストの候補のサブセットを識別するようにと、
    前記履歴ベース候補リストの候補の識別されたサブセットに基づいて、候補リストを発生させるようにと、
    現在ブロックを再構築するのに使用される動き情報を識別するための、前記発生させた候補リストに対するインデックスを示す情報をシグナリングするように構成されているプロセッサとを具備するデバイス。
  29. 前記プロセッサは、
    最近再構築されたブロックの動き情報に対応する、前記履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別するようにと、
    前記第1のサブセットを除外する、前記履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別するように構成され、
    前記履歴ベース候補リストの候補のサブセットを識別するために、前記プロセッサは、前記履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別するように構成されている請求項28記載のデバイス。
  30. 前記候補のサブセットを識別するために、前記プロセッサは、前記履歴ベース候補リストをサブサンプリングして、前記候補のサブセットを識別するように構成されている請求項28記載のデバイス。
  31. 前記履歴ベース候補リストを構築するために、前記プロセッサは、前記履歴ベース候補リストの余分な部分を取り除くことなく、前記履歴ベース候補リストを構築するように構成されている請求項28記載のデバイス。
  32. 前記プロセッサは、
    最近再構築されたブロックの動き情報に対応する、前記履歴ベース候補リストの1つ以上の候補の第1のサブセットを識別するようにと、
    前記第1のサブセットを除外する、前記履歴ベース候補リストの1つ以上の候補の第2のサブセットを識別するように構成され、
    前記履歴ベース候補リストの候補のサブセットを識別するために、前記プロセッサは、前記第2のサブセットをサブサンプリングするように構成されている請求項28記載のデバイス。
  33. 前記プロセッサは、前記現在ブロックを再構築するのに使用される動き情報に基づいて識別される予測ブロックとの間の残差を示す情報をシグナリングするように構成されている請求項28記載のデバイス。
  34. 前記プロセッサは、固定された機能のまたはプログラム可能な回路のうちの少なくとも1つを含むビデオエンコーダを備える請求項28記載のデバイス。
JP2021506696A 2018-08-16 2019-08-15 分類を有する履歴ベース候補リスト Ceased JP2021534627A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862764851P 2018-08-16 2018-08-16
US62/764,851 2018-08-16
US16/540,893 2019-08-14
US16/540,893 US11336914B2 (en) 2018-08-16 2019-08-14 History-based candidate list with classification
PCT/US2019/046693 WO2020037144A1 (en) 2018-08-16 2019-08-15 History-based candidate list with classification

Publications (2)

Publication Number Publication Date
JP2021534627A true JP2021534627A (ja) 2021-12-09
JPWO2020037144A5 JPWO2020037144A5 (ja) 2022-07-26

Family

ID=69523673

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021506696A Ceased JP2021534627A (ja) 2018-08-16 2019-08-15 分類を有する履歴ベース候補リスト

Country Status (17)

Country Link
US (1) US11336914B2 (ja)
EP (1) EP3837840A1 (ja)
JP (1) JP2021534627A (ja)
KR (1) KR20210042103A (ja)
CN (1) CN112567748A (ja)
AR (1) AR115962A1 (ja)
AU (1) AU2019321565B2 (ja)
BR (1) BR112021002219A2 (ja)
CA (1) CA3106327A1 (ja)
CL (1) CL2021000390A1 (ja)
CO (1) CO2021001740A2 (ja)
IL (1) IL280040A (ja)
MX (1) MX2021001784A (ja)
PH (1) PH12021550079A1 (ja)
SG (1) SG11202100151QA (ja)
WO (1) WO2020037144A1 (ja)
ZA (1) ZA202101016B (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020065520A2 (en) * 2018-09-24 2020-04-02 Beijing Bytedance Network Technology Co., Ltd. Extended merge prediction
WO2019234598A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Interaction between ibc and stmvp
KR20210022617A (ko) 2018-06-21 2021-03-03 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 칼라 컴포넌트 간의 서브 블록 mv 상속
CN110636298B (zh) 2018-06-21 2022-09-13 北京字节跳动网络技术有限公司 对于Merge仿射模式和非Merge仿射模式的统一约束
TWI703861B (zh) * 2018-07-06 2020-09-01 聯發科技股份有限公司 解碼器的視訊解碼方法及裝置
US11381833B2 (en) * 2018-07-19 2022-07-05 Tencent America LLC Method and apparatus for video coding
US10924731B2 (en) * 2018-08-28 2021-02-16 Tencent America LLC Complexity constraints on merge candidates list construction
US11089297B2 (en) * 2018-08-31 2021-08-10 Hulu, LLC Historical motion vector prediction with reset list
CN118055251A (zh) * 2018-09-22 2024-05-17 Lg 电子株式会社 使用间预测处理视频信号的方法和装置
CN112840653B (zh) * 2018-10-06 2023-12-26 寰发股份有限公司 视频编解码中共享合并候选列表区域的方法和装置
BR112021006892A2 (pt) * 2018-10-10 2021-07-13 Huawei Technologies Co., Ltd. método e aparelho de predição inter
WO2020094149A1 (en) 2018-11-10 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Rounding in triangular prediction mode
JP7231729B2 (ja) 2018-11-13 2023-03-01 北京字節跳動網絡技術有限公司 イントラブロックコピーのための履歴ベース動き候補リスト構築
CN117880495A (zh) 2018-12-03 2024-04-12 北京字节跳动网络技术有限公司 候选的最大数量的指示方法
CN116668685A (zh) * 2018-12-12 2023-08-29 Lg电子株式会社 图像编解码设备执行的处理视频信号的方法和发送方法
CN112715031B (zh) * 2018-12-21 2022-05-24 华为技术有限公司 一种基于历史的运动矢量预测的编码器、解码器及方法
BR112021012418A2 (pt) 2018-12-28 2021-09-08 Jvckenwood Corporation Dispositivo de codificação de imagem, método de codificação de imagem, dispositivo de decodificação de imagem e método de decodificação de imagem
KR20210094082A (ko) * 2018-12-29 2021-07-28 에스지 디제이아이 테크놀러지 코., 엘티디 비디오 처리 방법 및 기기
CN112042191B (zh) * 2019-01-01 2024-03-19 Lg电子株式会社 以基于历史的运动矢量为基础预测处理视频信号的方法和设备
US20220116588A1 (en) * 2019-01-04 2022-04-14 Industry Academy Cooperation Foundation Of Sejong University Method and apparatus for image encoding/decoding
US11166015B2 (en) * 2019-03-06 2021-11-02 Tencent America LLC Method and apparatus for video coding
WO2020200236A1 (en) 2019-04-01 2020-10-08 Beijing Bytedance Network Technology Co., Ltd. Using interpolation filters for history based motion vector prediction
CN113853787B (zh) * 2019-05-22 2023-12-22 北京字节跳动网络技术有限公司 基于子块使用变换跳过模式
EP3997881A4 (en) 2019-08-20 2022-09-14 Beijing Bytedance Network Technology Co., Ltd. SELECTIVE USE OF ALTERNATIVE INTERPOLATION FILTERS IN VIDEO PROCESSING
US11451809B2 (en) * 2019-08-28 2022-09-20 Tencent America LLC Method and apparatus for video coding
JP2023005871A (ja) * 2021-06-29 2023-01-18 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
WO2023113209A1 (ko) * 2021-12-15 2023-06-22 현대자동차주식회사 움직임벡터 예측자들의 후보 리스트를 이용하는 비디오 코딩을 위한 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021530183A (ja) * 2018-06-29 2021-11-04 北京字節跳動網絡技術有限公司Beijing Bytedance Network Technology Co., Ltd. Lutにおける動き候補のチェック順序
JP2022008369A (ja) * 2018-12-28 2022-01-13 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010173B2 (en) * 2000-01-13 2006-03-07 At&T Corp. Video coder employing pixel transposition
KR101377527B1 (ko) * 2008-10-14 2014-03-25 에스케이 텔레콤주식회사 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
CN102860006B (zh) * 2010-02-05 2016-11-23 瑞典爱立信有限公司 管理预测运动向量候选
US10171813B2 (en) 2011-02-24 2019-01-01 Qualcomm Incorporated Hierarchy of motion prediction video blocks
US20130114717A1 (en) * 2011-11-07 2013-05-09 Qualcomm Incorporated Generating additional merge candidates
CN102883163B (zh) * 2012-10-08 2014-05-28 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
US20140192881A1 (en) * 2013-01-07 2014-07-10 Sony Corporation Video processing system with temporal prediction mechanism and method of operation thereof
US9756354B2 (en) * 2014-03-17 2017-09-05 Qualcomm Incorporated Block vector predictor for intra block copying
CN107005701A (zh) * 2014-09-23 2017-08-01 英特尔公司 使用减少数量的角模式来降低帧内预测复杂度及其后续改进
US10230980B2 (en) * 2015-01-26 2019-03-12 Qualcomm Incorporated Overlapped motion compensation for video coding
US11330284B2 (en) * 2015-03-27 2022-05-10 Qualcomm Incorporated Deriving motion information for sub-blocks in video coding
EP3453180A4 (en) * 2016-05-04 2020-04-01 Microsoft Technology Licensing, LLC INTRA-IMAGE PREDICTION USING NON-ADJACENT REFERENCE LINES OF SAMPLE VALUES
US11606575B2 (en) 2018-07-10 2023-03-14 Qualcomm Incorporated Multiple history based non-adjacent MVPs for wavefront processing of video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021530183A (ja) * 2018-06-29 2021-11-04 北京字節跳動網絡技術有限公司Beijing Bytedance Network Technology Co., Ltd. Lutにおける動き候補のチェック順序
JP2022008369A (ja) * 2018-12-28 2022-01-13 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHIEN, WEI-JUNG ET AL.: "CE4-related: Modification on History-based Mode Vector Prediction", JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 12TH MEETING:, vol. JVET-L0401 (version 4), JPN6023034205, 5 October 2018 (2018-10-05), ISSN: 0005133299 *
ZHANG, LI ET AL.: "CE4-related: History-based Motion Vector Prediction", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 11TH MEETING: LJUB, vol. JVET-K0104 (version 5), JPN6023034204, 18 July 2018 (2018-07-18), ISSN: 0005133300 *

Also Published As

Publication number Publication date
AU2019321565A1 (en) 2021-02-11
CL2021000390A1 (es) 2021-08-27
KR20210042103A (ko) 2021-04-16
AU2019321565B2 (en) 2022-12-01
CN112567748A (zh) 2021-03-26
CA3106327A1 (en) 2020-02-20
CO2021001740A2 (es) 2021-04-08
AR115962A1 (es) 2021-03-17
MX2021001784A (es) 2021-07-15
ZA202101016B (en) 2022-07-27
US20200059658A1 (en) 2020-02-20
US11336914B2 (en) 2022-05-17
PH12021550079A1 (en) 2021-10-25
SG11202100151QA (en) 2021-02-25
WO2020037144A1 (en) 2020-02-20
EP3837840A1 (en) 2021-06-23
BR112021002219A2 (pt) 2021-05-04
IL280040A (en) 2021-03-01

Similar Documents

Publication Publication Date Title
US11336914B2 (en) History-based candidate list with classification
US11616974B2 (en) Simplification of history-based motion vector prediction
AU2019356483B2 (en) Improvements on history-based motion vector predictor
CN113196749B (zh) 用于译码视频数据的方法和设备
US20200112715A1 (en) History-based motion vector prediction for inter prediction coding
JP2022507683A (ja) デコーダ側動きベクトル改良
JP2020536443A (ja) ビデオコーディングのためのアフィン予測動き情報をコーディングすること
JP2022533664A (ja) ビデオコーディングのためのマージモードコーディング
JP7474774B2 (ja) ビデオコーディングにおけるイントラブロックコピーモードのための動きベクトル予測子リスト生成
JP2022521979A (ja) デコーダ側動きベクトル改良に対する制約
JP2022510297A (ja) ビデオコーディングのための三角形動き情報
CN112534820B (zh) 信令通知子预测单元运动矢量预测器
CN113170185B (zh) 用于视频译码的空间-时间运动向量预测模式
CN112740672A (zh) 具有自适应方向信息集合的最终运动矢量表达
US11064192B2 (en) Simplification of spatial-temporal motion vector prediction
JP2022539005A (ja) ビデオコーディングにおける時間動きベクトル予測候補の導出

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220715

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220715

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20230104

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230808

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230822

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20231219