JP2020523954A - 動きベクトル(mv)精度の選択およびシグナリング - Google Patents

動きベクトル(mv)精度の選択およびシグナリング Download PDF

Info

Publication number
JP2020523954A
JP2020523954A JP2020518116A JP2020518116A JP2020523954A JP 2020523954 A JP2020523954 A JP 2020523954A JP 2020518116 A JP2020518116 A JP 2020518116A JP 2020518116 A JP2020518116 A JP 2020518116A JP 2020523954 A JP2020523954 A JP 2020523954A
Authority
JP
Japan
Prior art keywords
precision
candidate
rounding
encoder
target
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.)
Granted
Application number
JP2020518116A
Other languages
English (en)
Other versions
JP6915159B2 (ja
Inventor
シャン・リュウ
ウェイ・ワン
Original Assignee
ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ホアウェイ・テクノロジーズ・カンパニー・リミテッド filed Critical ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Publication of JP2020523954A publication Critical patent/JP2020523954A/ja
Application granted granted Critical
Publication of JP6915159B2 publication Critical patent/JP6915159B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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
    • 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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

装置は、メモリと、メモリに結合され、ビデオフレームの現在のブロックを取得し、ビデオフレームの隣接ブロックに対応する候補MVを取得し、隣接ブロックが現在のブロックに隣接しており、候補MVの精度を取得し、丸めスキームに基づいて精度の第1の丸めを実行し、第1の丸めに基づいて候補MVの第2の丸めを実行し、候補MVのプルーニングを実行し、第2の丸めおよびプルーニングに基づいて候補リストを生成する、ように構成されるプロセッサとを備える。

Description

関連出願への相互参照
この出願は、2018年5月17日に出願された「動きベクトル(MV)精度の選択および信号」と題された米国非仮特許出願シリアル番号第15/982,865号、同様に、Futurewei Technologies、Inc.によって2017年6月12日に出願された「動きベクトル予測およびマージ候補の選択」と題された米国仮特許出願第62/518,402号の優先権を主張し、参照により本明細書に組み入れられる。
連邦政府による資金提供に関する声明
研究または開発
適用できない。
マイクロフィッシュ付録への参照
適用できない。
ビデオは比較的大量のデータを使用するため、ビデオの通信は比較的大量の帯域幅を使用する。しかしながら、多くのネットワークは、帯域幅容量またはその付近で動作する。さらに、顧客は高いビデオ品質を要求し、さらに多くのデータを使用する必要がある。したがって、ビデオの使用データ量を削減し、ビデオ品質を向上させることが望まれている。1つの解決策は、エンコードプロセス中にビデオを圧縮し、デコードプロセス中にビデオを解凍することである。圧縮および解凍技術の向上は、研究開発の焦点である。
本開示の一態様によれば、メモリと、メモリに結合され、ビデオフレームの現在のブロックを取得し、ビデオフレームの隣接ブロックに対応する候補MVを取得し、隣接ブロックが現在のブロックに隣接し、候補MVの精度を取得し、丸めスキームに基づいて精度の第1の丸めを実行し、第1の丸めに基づいて候補MVの第2の丸めを実行し、候補MVのプルーニングを実行し、第2の丸めおよびプルーニングに基づいて候補リストを生成する、ように構成されたプロセッサとを備える装置が提供される。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、隣接ブロックが第1の隣接ブロックおよび第2の隣接ブロックを備えることを提供し、精度が第1の隣接ブロックの第1の精度および第2の隣接ブロックの第2の精度を含む。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、丸めスキームが、第1の精度を現在のブロックの目標精度に丸めることと、第2の精度を目標精度に丸めることとを含むことを提供する。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、丸めスキームが、現在のブロックの第1の精度、第2の精度、および目標精度の任意の組み合わせの中から最低精度を決定することと、第1の精度、第2の精度、または目標精度の少なくとも1つを最低精度に丸めることとを含むことを提供する。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、丸めスキームが、現在のブロックの第1の精度、第2の精度、および目標精度の任意の組み合わせの中から中央値精度を決定することと、第1の精度、第2の精度、または目標精度の少なくとも1つを中央値精度に丸めることとを含むことを提供する。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、丸めスキームが、現在のブロックの第1の精度、第2の精度、および目標精度の任意の組み合わせの中から最高精度を決定することと、第1の精度、第2の精度、または目標精度の少なくとも1つを最高精度に丸めることとを含むことを提供する。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、丸めスキームが、デフォルト精度を決定することと、現在のブロックの第1の精度、第2の精度、または目標精度の少なくとも1つをデフォルト精度に丸めることとを含むことを提供する。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、プルーニングが同一の候補MVまたは準同一の候補MVを破棄することを含むことを提供する。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、プルーニングが候補を満たすためにゼロMVを追加することをさらに含むことを提供する。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、プルーニングの前に第1の丸めおよび第2の丸めをさらに実行するようにプロセッサがさらに構成されることを提供する。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、プルーニングの後に第1の丸めおよび第2の丸めをさらに実行するようにプロセッサがさらに構成されることを提供する。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、候補リストがAMVP候補リストであることを提供する。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、候補リストがマージ候補リストであることを提供する。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、プロセッサが、候補リストから最終候補MVを選択し、エンコードされたビデオで最終候補MVをシグナリングするようにさらに構成されることを提供する。
本開示の別の態様によれば、ビデオフレームの現在のブロックを取得するステップと、ビデオフレームの隣接ブロックに対応する候補MVを取得するステップであって、隣接ブロックが現在のブロックに隣接する、ステップと、候補MVの精度を取得するステップと、丸めスキームに基づいて精度の第1の丸めを実行するステップと、第1の丸めに基づいて候補MVの第2の丸めを実行するステップと、候補MVのプルーニングを実行するステップと、第2の丸めおよびプルーニングに基づいて候補リストを生成するステップとを含む方法が提供される。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、隣接ブロックが、第1の隣接ブロックおよび第2の隣接ブロックを備えることを提供し、精度が、第1の隣接ブロックの第1の精度および第2の隣接ブロックの第2の精度を含み、丸めスキームが、第1の精度を現在のブロックの目標精度に丸めることと、第2の精度を目標精度に丸めることとを含む。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、本方法が、候補リストから最終候補MVを選択するステップと、エンコードされたビデオで最終候補MVをシグナリングするステップと、エンコードされたビデオを送信するステップとをさらに含むことを提供する。
本開示の別の態様によれば、エンコードされたビデオの一部分のヘッダを含むエンコードされたビデオを受信するように構成された受信機であって、ヘッダがその部分のコーディングモードのすべてのMVの精度を含む、受信機と、受信機に結合され、精度に基づいてデコードされたビデオを取得するためにエンコードされたビデオをデコードするように構成されたプロセッサと、プロセッサに結合され、デコードされたビデオを表示するように構成されたディスプレイとを備える装置が提供される。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、当該部分がスライス、領域、CTU、またはタイルであることを提供する。
任意選択で、前述の態様のいずれかにおいて、態様の別の実装は、精度がクォーターペル精度、ハーフペル精度、整数ペル精度、または4ペル精度の1つであることを提供する。
上記の実施形態のいずれかは、新しい実施形態を作成するために、他の上記の実施形態のいずれかと組み合わせられ得る。これらおよび他の特徴は、添付の図面および特許請求の範囲と併せて以下の詳細な説明からより明確に理解されるであろう。
本開示のより十分な理解のために、ここで、添付の図面および詳細な説明に関連してなされる以下の簡単な説明が参照されており、同様の参照番号は同様の部分を表す。
コーディングシステムの概略図である。 ビデオフレームの一部分の図である。 本開示の一実施形態による候補リスト生成の方法を示すフローチャートである。 本開示の一実施形態による装置の概略図である。
最初に、1つ以上の実施形態の例示的な実装が以下に提供されるが、開示されるシステムおよび/または方法は、現在知られているか存在するかにかかわらず、任意の数の技術を使用して実装され得ることを理解していただきたい。本開示は、本明細書に例示および説明される例示的な設計および実装を含む、以下に例示される例示的な実装、図面、および技術に決して限定されるべきではなく、同等物の全範囲とともに添付の特許請求の範囲内で修正されてもよい。
次の略語と頭字語が適用される。
AMVP:高度な動きベクトル予測
ASIC:特定用途向け集積回路
CPU:中央処理装置
CTU:コーディングツリーユニット
DSP:デジタル信号プロセッサ
EO:電気から光へ
FPGA:フィールドプログラマブルゲートアレイ
ITU:国際電気通信連合
ITU−T:ITU電気通信標準化セクタ
LCD:液晶ディスプレイ
MV:動きベクトル
OE:光から電気へ
PPS:画像パラメータセット
RAM:ランダムアクセスメモリ
RF:無線周波数
ROM:読み取り専用メモリ
RX:受信機ユニット
SPS:シーケンスパラメータセット
SRAM:スタティックRAM
TCAM:三値連想メモリ
TX:送信機ユニット。
図1は、コーディングシステム100の概略図である。コーディングシステム100は、ソースデバイス110、媒体150、および宛先デバイス160を含む。ソースデバイス110および宛先デバイス160は、携帯電話、タブレットコンピュータ、デスクトップコンピュータ、ノートブックコンピュータ、または他の適切なデバイスである。媒体150は、ローカルネットワーク、無線ネットワーク、インターネット、または別の適切な媒体である。
ソースデバイス110は、ビデオジェネレータ120、エンコーダ130、および出力インタフェース140を備える。ビデオジェネレータ120は、ビデオを生成するのに適したカメラまたは別のデバイスである。エンコーダ130はコーデックと呼ばれることがある。エンコーダ130は、例えば、参照により組み込まれる「High Efficiency Video Coding」ITU−T H.265、2016年12月(「H.265」)で説明される、ルールのセットに従ってエンコードを実行する。出力インタフェース140は、データを宛先デバイス160に送信するのに適したアンテナまたは別のコンポーネントである。代替として、ビデオジェネレータ120、エンコーダ130、および出力インタフェース140は、デバイスの任意の適切な組み合わせである。
宛先デバイス160は、入力インタフェース170、デコーダ180、およびディスプレイ190を含む。入力インタフェース170は、ソースデバイス110からデータを受信するのに適したアンテナまたは別のコンポーネントである。デコーダ180はコーデックとも呼ばれることがある。デコーダ180は、例えば、H.265に説明されているようなルールのセットに従ってデコードを実行する。ディスプレイ190は、LCDスクリーンまたはビデオを表示するのに適した別のコンポーネントである。代替として、入力インタフェース170、デコーダ180、およびディスプレイ190は、デバイスの任意の適切な組み合わせである。
動作中、ソースデバイス110では、ビデオジェネレータ120がビデオをキャプチャし、エンコーダ130がエンコードされたビデオを作成するためにビデオをエンコードし、出力インタフェース140がエンコードされたビデオを媒体150により宛先デバイス160に向けて送信する。ソースデバイス110は、ビデオまたはエンコードされたビデオをローカルに格納してもよく、またはソースデバイス110は、ビデオまたはエンコードされたビデオの別のデバイスへの格納を指示してもよい。エンコードされたビデオは、スライスやブロックなど、様々なレベルで定義されたデータを構成する。スライスとは、エンコーダ130がビデオフレームの任意の他の領域とは別にエンコードするビデオフレームの空間的に異なる領域である。ブロックとは、長方形、例えば、8ピクセルx 8ピクセルの正方形に配置されたピクセルのグループである。ブロックは、ユニットまたはコーディングユニットと呼ばれることもある。他のレベルは、領域、CTU、およびタイルを含む。宛先デバイス160では、入力インタフェース170がソースデバイス110からエンコードされたビデオを受信し、デコーダ180がデコードされたビデオを取得するためにエンコードされたビデオをデコードして、ディスプレイ190がデコードされたビデオを表示する。デコーダ180は、エンコーダ130がビデオをエンコードする方法と比較して逆の方法でエンコードされたビデオをデコードすることができる。宛先デバイス160は、エンコードされたビデオまたはデコードされたビデオをローカルに格納するか、または宛先デバイス160が、エンコードされたビデオまたはデコードされたビデオの別のデバイスへの格納を指示する。
エンコードとデコードを合わせてコーディングと呼ぶ。コーディングは、それぞれイントラ予測およびインター予測と呼ばれることのあるイントラコーディングおよびインターコーディングを含む。イントラ予測は、ビデオフレーム内の空間的な冗長性を低減するために空間予測を実装する。インター予測は、連続するビデオフレーム間の時間的な冗長性を低減するために時間予測を実装する。
図2は、ビデオフレームの一部分200の図である。部分200は、現在のブロック210と、隣接ブロックA0 220、A1 230、B2 240、B1 250、およびB0 260を含む。現在のブロック210は、エンコーダ130が現在それをエンコードしているため、現在のブロックと呼ばれる。隣接ブロック220〜260は、現在のブロック210に隣接するため、隣接ブロックと呼ばれる。隣接ブロックA0 220は左下隅の位置にあり、隣接ブロックA1 230は左下側の位置にあり、隣接ブロックB2 240は左上隅の位置にあり、隣接ブロックB1 250は右上側の位置にあり、隣接ブロックB0 260は右上隅の位置にある。インター予測では、エンコーダ130は、隣接ブロック220〜260のMVに基づいて現在のブロック210のMVを決定する。エンコーダ130が現在のブロック210をエンコードしているとき、隣接ブロック220〜260のMVは既に知られている。
AMVPおよびマージは、エンコーダ130が現在のブロック210のMVを決定するために使用され得る2つのコーディングモードである。AMVPでは、エンコーダ130は、次のように隣接ブロック220〜260を順次スキャンすることによりMV候補リストを決定する、すなわち、A0 220、A1 230、A0 220のスケーリングされたバージョン、A1 230のスケーリングされたバージョン、B0 260、B1 250、B2 240、B0 260のスケーリングされたバージョン、B1 250のスケーリングされたバージョン、B2 240のスケーリングされたバージョン、時間的右下コロケーテッド候補、時間的中央コロケーテッド候補、およびゼロMVである。その候補リストから、エンコーダ130は最良の候補を選択し、信号で最良の候補を宛先デバイス160に示す。マージにおいて、エンコーダ130は、次のように隣接ブロックを順次スキャンすることにより、MVの候補リストを決定する、すなわち、A1 230、B1 250、B0 260、A0 220、B2 240、時間的右下コロケーテッド候補、時間的中央コロケーテッド候補、およびゼロMVである。その候補リストから、エンコーダ130は最良の候補を選択し、信号で最良の候補を宛先デバイス160に示す。AMVPおよびマージは隣接ブロック220〜260をスキャンするが、他のコーディングモードは、示されていない異なる隣接ブロックをスキャンしてもよい。
AMVPとマージの両方が、MVの精度を定義する。精度は、MVを定義する乗数として機能するピクセル間の距離を示す。精度のコンテキストでは、ピクセルはペルと呼ばれる場合がある。したがって、精度は、クォーターペル精度、ハーフペル精度、整数ペル精度、および4ペル精度を含む。クォーターペル精度は、MVが0.25、0.5、0.75、1.0、1.25などになり得るように、ピクセル間の距離の1/4を単位としてMVを定義する。エンコーダ130は、スライスヘッダのフラグとして精度をエンコードする。スライスヘッダは、スライス全体に適用可能なデータを示すスライス信号の先頭にあるヘッダである。代替として、エンコーダ130は、ブロックヘッダのフラグまたは他のデータとして精度をエンコードする。
AMVPとマージの両方が、候補リストの適格な候補を決定するためのルールを定義する。例えば、2つの候補MVが同じである場合には、エンコーダ130はそれらの候補MVの1つを除去する。エンコーダ130は、候補リストを許可された候補の最大数で満たすまで、それらのルールを適用し続ける。候補MVの精度が同じ場合、それらのルールは適切に定義される。しかしながら、異なる精度の候補MVに対しては、コーディング効率の良いルールを提供することが望ましい。
本明細書では、MV精度の選択およびシグナリングの実施形態が開示されている。実施形態は、異なる精度のMVを取得し、それらの精度を均一に丸め、MVを丸め、候補リストを生成することを提供する。実施形態は、スライス、領域、CTU、またはタイルレベルでの信号精度をさらに提供する。実施形態は、AMVP、マージ、および他の適切なコーディングモードに適用される。
AMVP候補リストの生成
AMVP候補リスト生成の第1の実施形態では、エンコーダ130は3つの精度を考慮する、すなわち、第1の隣接ブロック220〜260の第1の精度、第2の隣接ブロック220〜260の第2の精度、および現在のブロック210の第3の精度である。例えば、エンコーダ130は、隣接ブロック220、隣接ブロック230、および現在のブロック210の精度を考慮する。第3の精度は、エンコードの目標である現在のブロック210に関連付けられているため、目標精度と呼ばれる場合がある。3つの精度を使用して、エンコーダ130は以下の擬似コードを実行する。
i=0
if(availableFlagLXA){
mvpListLX[i++]=mvLXA
if(availableFlagLXB&&(
RoundMvPrecisionToTarget(mvLXA)
RoundMvPrecisionToTarget(mvLXB)
mvLXA!=mvLXB)))
mvpListLX[i++]=mvLXB
}else if(availableFlagLXB)
mvpListLX[i++]=mvLXB
if(i<2&&availableFlagLXCol)
mvpListLX[i++]=mvLXCol
while(i<2){
mvpListLX[i][0]=0
mvpListLX[i][1]=0
i++
擬似コードは以下のルールを実施する、すなわち、目標精度が最高精度を使用する場合には、エンコーダ130は第1の精度と第2の精度を目標精度に切り上げる。目標精度が最低精度を使用する場合には、エンコーダ130は第1の精度と第2の精度を目標精度に切り下げる。そうでない場合、エンコーダ130は、第1の精度または第2の精度のいずれか低い方を目標精度に切り上げ、エンコーダ130は、第1の精度または第2の精度のいずれか高い方を目標精度に切り下げる。低い方は数値的に低く、高い方は数値的に高いことを意味する。したがって、0.25のクォーターペル精度は、1.0の整数ペル精度よりも低くなる。
精度を丸めた後、エンコーダ130は、それらの精度に基づいて候補MVを切り上げるか切り下げる。例えば、候補MVが1.25であり、0.25の固有精度を有し、目標精度が0.5である場合には、エンコーダ130は候補MVを1.5に切り上げる。固有精度は、エンコーダ130が上記の擬似コードごとにその精度を切り上げるか切り下げる前のMVの精度である。最後に、各候補MVに対して、エンコーダ130は、同一の候補MVまたは準同一の候補MVが既に候補リストにあるかどうかを決定する。そうでない場合には、エンコーダ130は、候補MVを候補リストに追加する。そうである場合には、エンコーダ130は候補MVを破棄する。準同一とは、事前定義されたしきい値内で同一であることを意味する。
第1の代替形態では、RoundMvPrecisionToLow()が、擬似コードのRoundMvPrecisionToTarget()を置き換え、その結果、エンコーダ130は第1の精度、第2の精度、および目標精度の中から最低精度を決定し、次に第1の精度、第2の精度、または第1の精度と第2の精度の両方のいずれかをその精度まで切り下げる。第2の代替形態では、RoundMvPrecisionToLow()が、擬似コードのRoundMvPrecisionToTarget()を置き換え、その結果、エンコーダ130は第1の精度と第2の精度の中から最低精度を決定し、次に第1の精度または第2の精度のいずれか残っている方をその精度まで切り下げる。第3の代替形態では、RoundMvPrecisionToHigh()が、擬似コードのRoundMvPrecisionToTarget()を置き換え、その結果、エンコーダ130は第1の精度、第2の精度、および目標精度の中から最高精度を決定し、次に第1の精度、第2の精度、または第1の精度と第2の精度の両方をその精度まで切り上げる。第4の代替形態では、RoundMvPrecisionToHigh()が、擬似コードのRoundMvPrecisionToTarget()を置き換え、その結果、エンコーダ130は第1の精度と第2の精度の中から最高精度を決定し、次に第1の精度または第2の精度のいずれか残っている方をその精度まで切り上げる。
第5の代替形態では、RoundMvPrecisionToDefault()が、擬似コードのRoundMvPrecisionToTarget()を置き換え、その結果、エンコーダ130は第1の精度および第2の精度をデフォルト精度に切り上げるかまたは切り下げるようにする。エンコーダ130は、最初に、別のデバイスからの信号のデフォルト精度を受信してもよい。第6の代替形態では、RoundMvPrecisionToMedian()が、擬似コードのRoundMvPrecisionToTarget()を置き換え、その結果、エンコーダ130は第1の精度、第2の精度、および目標精度の中から中央値精度を決定し、次に第1の精度、第2の精度、または第1の精度と第2の精度の両方をその精度まで切り上げるかまたは切り下げるようにする。エンコーダ130が偶数の精度を考慮する場合には、中央値精度は2つの中央値精度の平均であり得る。
AMVP候補リスト生成の第2の実施形態では、エンコーダ130は現在のブロック210の目標精度を考慮する。目標精度を使用して、エンコーダ130は次の擬似コードを実行する。
i=0
if(availableFlagLXA){
mvpListLX[i++]=mvLXA
if(availableFlagLXB&&(mvLXA!=mvLXB))
mvpListLX[i++]=mvLXB
}else if(availableFlagLXB)
mvpListLX[i++]=mvLXB
if(i<2&&availableFlagLXCol)
mvpListLX[i++]=mvLXCol
if(i==2)
if(diffMotion(mvLXM,mvLXN))
i−−
while(i<2){
mvpListLX[i][0]=0
mvpListLX i][1]=0
i++

擬似コードでは、diffMotion()のmvLXMおよびmvLXNは、mvLXA、mvLXB、またはmvLXColの場合がある。
擬似コードは、diffMotion()に対して次のルールを実施する。各候補MVに対して、エンコーダ130は、同一の候補MVまたは準同一の候補MVが既に候補リストにあるかどうかを決定する。そうでない場合には、エンコーダは、候補MVを候補リストに追加する。そうである場合には、エンコーダ130は候補MVを破棄する。したがって、エンコーダ130は、最初に、固有精度で候補MVを考慮する。
同一の候補MVまたは準同一の候補MVを除去した後、目標精度が最高精度を使用する場合には、エンコーダ130は、候補精度を目標精度に切り上げる。候補精度は、隣接ブロック220〜260の精度である。目標精度が最低精度を使用する場合には、エンコーダ130は候補精度を目標精度に切り下げる。そうでない場合、エンコーダ130は、より低い候補精度を目標精度に切り上げ、エンコーダ130は、より高い候補精度を目標精度に切り下げる。
精度を丸めた後、エンコーダ130は、それらの精度に基づいて候補MVを切り上げるか切り下げる。各候補MVに対して、エンコーダ130は、同一の候補MVまたは準同一の候補MVが既に候補リストにあるかどうかを決定する。そうでない場合には、エンコーダ130は、候補MVを候補リストに保持する。そうである場合には、エンコーダ130は、候補リストから候補MVを破棄する。diffMotion()が1を返す場合には、2つの候補MVは同一または準同一ではない。diffMotion()が0を返す場合には、2つの候補MVは同一または準同一である。最後に、候補リストが一杯でない場合には、エンコーダ130は、欠落したスポットを埋めるために0値の候補MVを挿入する。例えば、候補リストが10個のMVを有しているが、候補リストに8個のMVしか残されていない場合には、エンコーダは0値の2個のMVを挿入する。
第1の代替形態では、diffMotion()は、エンコーダ130が、第1の隣接ブロック220〜260の第1の精度、第2の隣接ブロック220〜260の第2の精度、および目標精度の中から最低精度を決定し、次に残りのすべての候補精度をその精度に切り下げるように動作する。第2の代替形態では、diffMotion()は、エンコーダ130が、第1の精度、第2の精度、および目標精度の中から最高精度を決定し、次に残りのすべての候補精度をその精度に切り上げるように動作する。第3の代替形態では、diffMotion()は、エンコーダ130が、候補精度をデフォルト精度に切り上げるかまたは切り下げるように動作する。エンコーダ130は、最初に、別のデバイスからの信号のデフォルト精度を受信してもよい。第4の代替形態では、diffMotion()は、エンコーダ130が第1の精度、第2の精度、および目標精度の中から中央値精度を決定し、次に第1の精度、第2の精度、または第1の精度と第2の精度の両方をその精度まで切り上げるかまたは切り下げるように動作する。エンコーダ130が偶数の精度を考慮する場合には、中央値精度は2つの中央値精度の平均であり得る。
上記の実施形態では、エンコーダ130はAMVP候補リストを生成した後、最終候補MVを選択してもよい。エンコーダ130は、既知の様々な基準に基づいてそうすることができる。エンコーダ130がそのようにすると、エンコーダ130は、エンコードされたビデオの最終候補MVをシグナリングすることができる。エンコーダ130は、第1の精度と第2の精度を比較する代わりに、すべての候補精度を比較してもよい。
マージ候補リストの生成
マージ候補リスト生成の第1の実施形態では、エンコーダ130は3つの精度を考慮する、すなわち、第1の隣接ブロック220〜260の第1の精度、第2の隣接ブロック220〜260の第2の精度、および現在のブロック210の目標精度である。マージ候補リスト生成の第1の実施形態は、AMVP候補リスト生成の第1の実施形態と同様である。3つの精度を使用して、エンコーダ130は以下の擬似コードを実行する。
i=0
if(availableFlagA1)
mergeCandList[i++]=RoundMvPrecisionToTarget(A1)
if(availableFlagB1&&diffMotions(RoundMvPrecisionToTarget(B1)))
mergeCandList[i++]=B1
if(availableFlagB0&&diffMotions(RoundMvPrecisionToTarget(B0)))
mergeCandList[i++]=B0
if(availableFlagA0&&diffMotions(RoundMvPrecisionToTarget(A0)))
mergeCandList[i++]=A0
if(availableFlagB2&&diffMotions(RoundMvPrecisionToTarget(B2)))
mergeCandList[i++]=B2
if(availableFlagCol)
mergeCandList[i++]=diffMotions(RoundMvPrecisionToTarget(Col)))
擬似コードは、diffMotions()に対して以下のルールを実施する、すなわち、目標精度が最高精度を使用する場合には、エンコーダ130は第1の精度と第2の精度を目標精度に切り上げる。目標精度が最低精度を使用する場合には、エンコーダ130は第1の精度と第2の精度を目標精度に切り下げる。そうでない場合、エンコーダ130は、第1の精度または第2の精度のいずれか低い方を目標精度に切り上げ、エンコーダ130は、第1の精度または第2の精度のいずれか高い方を目標精度に切り下げる。
精度を丸めた後、エンコーダ130は、それらの精度に基づいて候補MVを切り上げるか切り下げる。最後に、各候補MVに対して、エンコーダ130は、同一の候補MVまたは準同一の候補MVが既に候補リストにあるかどうかを決定する。そうでない場合には、エンコーダ130は、候補MVを候補リストに追加する。そうである場合には、エンコーダ130は、候補MVを破棄する。diffMotion()が1を返す場合には、2つの候補MVは同一または準同一ではない。diffMotion()が0を返す場合には、2つの候補MVは同一または準同一である。
第1の代替形態では、RoundMvPrecisionToLow()が、擬似コードのRoundMvPrecisionToTarget()を置き換え、その結果、エンコーダ130は第1の精度、第2の精度、および目標精度の中から最低精度を決定し、次に第1の精度、第2の精度、または第1の精度と第2の精度の両方のいずれかをその精度まで切り下げる。第2の代替形態では、RoundMvPrecisionToLow()が、擬似コードのRoundMvPrecisionToTarget()を置き換え、その結果、エンコーダ130は第1の精度と第2の精度の中から最低精度を決定し、次に第1の精度または第2の精度のいずれか残っている方をその精度まで切り下げる。第3の代替形態では、RoundMvPrecisionToHigh()が、擬似コードのRoundMvPrecisionToTarget()を置き換え、その結果、エンコーダ130は第1の精度、第2の精度、および目標精度の中から最高精度を決定し、次に第1の精度、第2の精度、または第1の精度と第2の精度の両方をその精度まで切り上げる。第4の代替形態では、RoundMvPrecisionToHigh()が、擬似コードのRoundMvPrecisionToTarget()を置き換え、その結果、エンコーダ130は第1の精度と第2の精度の中から最高精度を決定し、次に第1の精度または第2の精度のいずれか残っている方をその精度まで切り上げる。
第5の代替形態では、RoundMvPrecisionToDefault()が、擬似コードのRoundMvPrecisionToTarget()を置き換え、その結果、エンコーダ130は第1の精度および第2の精度をデフォルト精度に切り上げるかまたは切り下げるようにする。エンコーダ130は、最初に、別のデバイスからの信号のデフォルト精度を受信してもよい。第6の代替形態では、RoundMvPrecisionToMedian()が、擬似コードのRoundMvPrecisionToTarget()を置き換え、その結果、エンコーダ130は第1の精度、第2の精度、および目標精度の中から中央値精度を決定し、次に第1の精度、第2の精度、または第1の精度と第2の精度の両方をその精度まで切り上げるかまたは切り下げるようにする。エンコーダ130が偶数の精度を考慮する場合には、中央値精度は2つの中央値精度の平均であり得る。
マージ候補リスト生成の第2の実施形態では、エンコーダ130は現在のブロック210の目標精度を考慮する。マージ候補リスト生成の第2の実施形態は、AMVP候補リスト生成の第2の実施形態と同様である。目標精度を使用して、エンコーダ130は次の擬似コードを実行する。
i=0
if(availableFlagA1)
mergeCandList[i++]=A1
if(availableFlagB1)
mergeCandList[i++]=B1
if(availableFlagB0)
mergeCandList[i++]=B0
if(availableFlagA0)
mergeCandList[i++]=A0
if(availableFlagB2)
mergeCandList[i++]=B2
PruneList();
if(availableFlagCol&&i<max_num_candidates)
mergeCandList[i++]=Col
擬似コードはPruneList()に対して以下のルールを実施する、すなわち、目標精度が最高精度を使用する場合には、エンコーダ130は候補精度を目標精度に切り上げる。候補精度は、隣接ブロック220〜260の精度である。目標精度が最低精度を使用する場合には、エンコーダ130は候補精度を目標精度に切り下げる。そうでない場合、エンコーダ130は、より低い候補精度を目標精度に切り上げ、エンコーダ130は、より高い候補精度を目標精度に切り下げる。
精度を丸めた後、エンコーダ130は、それらの精度に基づいて候補MVを切り上げるか切り下げる。各候補MVに対して、エンコーダ130は、同一の候補MVまたは準同一の候補MVが既に候補リストにあるかどうかを決定する。そうでない場合には、エンコーダ130は、候補MVを候補リストに追加する。そうである場合には、エンコーダ130は候補MVを破棄し、iを1だけデクリメントする。最後に、候補リストが一杯でない場合には、エンコーダ130は、欠落したスポットを埋めるために0値の候補MVを挿入する。例えば、候補リストが10個のMVを有しているが、候補リストに8個のMVしか残されていない場合には、エンコーダ130は0値の2個のMVを挿入する。
第1の代替形態では、PruneList()は、エンコーダ130が、第1の隣接ブロック220〜260の第1の精度、第2の隣接ブロック220〜260の第2の精度、および目標精度の中から最低精度を決定し、次に残りのすべての候補精度をその精度に切り下げるように動作する。第2の代替形態では、PruneList()は、エンコーダ130が、第1の精度、第2の精度、および目標精度の中から最高精度を決定し、次に残りのすべての候補精度をその精度に切り上げるように動作する。第3の代替形態では、PruneList()は、エンコーダ130が、候補精度をデフォルト精度に切り上げるかまたは切り下げるように動作する。エンコーダ130は、最初に、別のデバイスからの信号のデフォルト精度を受信してもよい。第4の代替形態では、PruneList()は、エンコーダ130が第1の精度、第2の精度、および目標精度の中から中央値精度を決定し、次に第1の精度、第2の精度、または第1の精度と第2の精度の両方をその精度まで切り上げるかまたは切り下げるように動作する。エンコーダ130が偶数の精度を考慮する場合には、中央値精度は2つの中央値精度の平均であり得る。
マージ候補リスト生成の第3の実施形態では、エンコーダ130は現在のブロック210の目標精度を考慮する。マージ候補リスト生成の第3の実施形態は、マージ候補リスト生成の第2の実施形態と同様である。しかしながら、同一の候補MVまたは準同一の候補MVの候補リストをチェックする前にPruneList()を実行する、マージ候補リスト生成の第2の実施形態とは異なり、マージ候補リスト生成の第3の実施形態は、候補リストをチェックした後にPruneList()を実行する。目標精度を使用して、エンコーダ130は次の擬似コードを実行する。
i=0
if(availableFlagA1)
mergeCandList[i++]=A1
if(availableFlagB1)
mergeCandList[i++]=B1
if(availableFlagB0)
mergeCandList[i++]=B0
if(availableFlagA0)
mergeCandList[i++]=A0
if(availableFlagB2)
mergeCandList[i++]=B2
if(availableFlagCol)
mergeCandList[i++]=Col
PruneList()
上記の実施形態では、エンコーダ130はマージ候補リストを生成した後、最終候補MVを選択してもよい。エンコーダ130は、既知の様々な基準に基づいてそうすることができる。エンコーダ130がそのようにすると、エンコーダ130は、エンコードされたビデオの最終候補MVをシグナリングすることができる。
精度シグナリング
精度シグナリングの第1の実施形態では、エンコーダ130は、以下のようにスライスヘッダのMVの精度をエンコードする。
slice_segment_header(){
coding_mode_idx
mv_precision[coding_mode_idx]

示されているように、スライスヘッダは、AMVPまたはマージのいずれかであり得る、単一コーディングモードのすべてのMVの精度を示す。
精度シグナリングの第2の実施形態では、エンコーダ130は、以下のようにスライスヘッダのMVの精度をエンコードする。
slice_segment_header(){
num_coding_mode
for(i=0;i<num_coding_mode;i++){
coding_mode_idx
mv_precision_used_by_coding_mode[coding_mode_idx]


示されているように、スライスヘッダは、AMVPおよびマージを含み得る、複数のコーディングモードのすべてのMVの精度を示す。
精度シグナリングの第3の実施形態では、エンコーダ130は、以下のようにスライスヘッダのMVの精度をエンコードする。
slice_segment_header(){
if(motion_vector_resolution_control_idc==3){
num_mv_precision
for(i=0;i<num_mv_precision;i++){
mv_precision_idx[i]



示されているように、スライスヘッダは、AMVPおよびマージを含み得る、複数のコーディングモードのすべてのMVの精度を示す。シグナリングの第3の実施形態は、シグナリングの第2の実施形態と同様であるが、異なる構文を使用する。
精度シグナリングの第4の実施形態では、エンコーダ130は、以下のようにコーディングユニットヘッダのMVの精度をエンコードする。
coding_unit(x0,y0,log2CbSize){
if(motion_vector_resolution_control_idc==3){
mv_precision_idx_used_by_coding_mode


示されているように、コーディングユニットヘッダは、AMVPまたはマージのいずれかであり得る、単一コーディングモードのすべてのMVの精度を示す。
精度シグナリングの第5の実施形態では、エンコーダ130は、以下のようにコーディングユニットヘッダのMVの精度をエンコードする。
coding_unit(x0,y0,log2CbSize){
if(motion_vector_resolution_control_idc==3){
num_coding_mode
for(i=0;i<num_coding_mode;i++){
coding_mode_idx
mv_precision_idx_used_by_coding_mode[coding_mode_idx]



示されているように、コーディングユニットヘッダは、AMVPおよびマージを含み得る、複数のコーディングモードのすべてのMVの精度を示す。
精度シグナリングの第6の実施形態では、エンコーダ130は、{mvr1,mvr2,...,mvrN}などの形のSPSの許可されたすべての精度をエンコードする。各スライスヘッダに対して、エンコーダ130は、対応するスライスのすべてのブロックに適用することになるそれらの精度の1つを示すスライスヘッダインデックスもエンコードする。例えば、SPSは{quarter−pel、integer−pel、four−pel}であり、スライスヘッダインデックスは、クォーターペルを示す00、整数ペルを示す01、または4ペルを示す11のいずれかである。
精度シグナリングの第7の実施形態では、エンコーダ130は、{mvr1,mvr2,...,mvrN}などの形のSPSの許可されたすべての精度をエンコードする。各スライスヘッダに対して、エンコーダ130は、対応するスライスのブロックに適用することになるそれらの精度のどれかを示す複数のスライスヘッダインデックスもエンコードする。例えば、SPSは{quarter−pel、integer−pel、four−pel}であり、スライスヘッダインデックスは、クォーターペルを示す00、整数ペルを示す01、および4ペルを示す11の任意の組み合わせである。
精度シグナリングの第8の実施形態では、エンコーダ130は、{mvr1,mvr2,...,mvrN}などの形のSPSの許可されたすべての精度をエンコードする。各スライスヘッダに対して、エンコーダ130は、対応するスライスのブロックに適用することになるそれらの精度のサブセットを示すスライスヘッダインデックスもエンコードする。例えば、SPSは{quarter−pel、integer−pel、four−pel}であり、スライスヘッダインデックスは、{quarter−pel、integer−pel}を示す00、{quarter−pel、four−pel}を示す01、または{integer−pel、four−pel}を示す10である。
精度シグナリングの第9の実施形態では、エンコーダ130は、{mvr1,mvr2,...,mvrN}などの形のSPSの許可されたすべての精度をエンコードする。各スライスヘッダに対して、エンコーダ130は、対応するスライス内のブロックに適用することになる、その直ぐより細かいまたはより粗い精度に加えて、それらの精度の1つを示すスライスヘッダインデックスもエンコードする。例えば、SPSは{quarter−pel、integer−pel、four−pel}であり、スライスヘッダがより細かい精度を示す場合、スライスヘッダインデックスは{quarter−pel}を示す00、{quarter−pel、integer−pel}を示す01、または{integer−pel、four−pel}を示す10であるか、あるいはスライスヘッダがより粗い精度を示す場合、スライスヘッダインデックスは{quarter−pel、integer−pel}を示す00、{integer−pel、four−pel}を示す01、または{four−pel}を示す10である。
精度シグナリングの第10の実施形態では、エンコーダ130は、{mvr1,mvr2,...,mvrN}などの形のSPSの許可されたすべての精度をエンコードする。各スライスヘッダに対して、エンコーダ130は、対応するスライスのブロックに適用することになるそれらの精度のどれかを示すスライスヘッダインデックスもエンコードする。各ブロックヘッダに対して、エンコーダ130は、対応するブロックに適用することになるそれらの精度の1つを示すブロックヘッダインデックスもエンコードする。例えば、SPSは{quarter−pel、integer−pel、four−pel}であり、0の第1のスライスヘッダインデックスは{quarter−pel、integer−pel}を示し、第1のスライスヘッダの0の第1のブロックヘッダインデックスはクォーターペルを示し、第1のスライスヘッダの1の第2のブロックヘッダインデックスは整数ペルを示し、1の第2のスライスヘッダインデックスは{integer−pel,four−pel}を示し、第2のスライスヘッダの0の第3のブロックヘッダインデックスは整数ペルを示し、および第2のスライスヘッダの1の第4のブロックヘッダインデックスは4ペルを示す。
上記の実施形態では、スライスレベルでヘッダインデックスをエンコードする代わりに、エンコーダ130は、領域レベル、CTUレベル、またはタイルレベルでヘッダインデックスをエンコードしてもよい。インデックスは特定の2進数として表現されるが、任意の2進数または他の数字が使用され得る。エンコーダ130は、SPSのすべての精度を示す代わりに、PPSのすべての精度を示してもよい。エンコーダ130は、第1の精度と第2の精度を比較する代わりに、すべての候補精度を比較してもよい。
図3は、本開示の一実施形態による候補リスト生成の方法300を示すフローチャートである。エンコーダ130は本方法300を実行する。ステップ310では、ビデオの現在のブロックが取得される。例えば、エンコーダ130は現在のブロック210を取得する。ステップ320では、ビデオの隣接ブロックに対応する候補MVが取得される。隣接ブロックは現在のブロックに隣接する。例えば、エンコーダ130は、隣接ブロック220〜260に対応する候補MVを取得する。ステップ330では、候補MVの精度が取得される。
ステップ340では、精度の第1の丸めが丸めスキームに基づいて実行される。例えば、丸めスキームは上記の丸めスキームの1つである。したがって、丸めスキームは、目標精度への丸め、隣接ブロック220〜260の精度の中からの最低精度、中央値精度、または最高精度への丸め、隣接ブロック220〜260およびターゲットブロックの精度の中からの最低精度、中央値精度、または最高精度への丸め、あるいはデフォルト精度への丸めを含み得る。ステップ350では、候補MVの第2の丸めが第1の丸めに基づいて実行される。例えば、エンコーダ130はステップ340から精度を決定し、その精度に基づいて候補MVを切り上げるか切り下げる。
ステップ360では、候補MVのプルーニングが実行される。例えば、上記のようにプルーニングが完了される。したがって、プルーニングは、同一の候補MVを破棄すること、準同一の候補MVを破棄すること、または候補リストを満たすためにゼロMVを追加することを含んでもよい。最後に、ステップ370では、第2の丸めおよびプルーニングに基づいて候補リストが生成される。候補リストは、上記のAMVP候補リストまたはマージ候補リストであり得る。
図4は、本開示の一実施形態による装置400の概略図である。装置400は、開示された実施形態を実装することができる。装置400は、データを受信するための入口ポート410およびRX 420、データを処理するためのプロセッサ、論理ユニット、ベースバンドユニット、またはCPU 430、データを送信するためのTX 440および出口ポート450、ならびにデータを格納するためのメモリ460を備える。装置400は、光、電気信号、またはRF信号の入口または出口のために、入口ポート410、RX 420、TX 440、および出口ポート450に結合されたOEコンポーネント、EOコンポーネント、またはRFコンポーネントも備え得る。
プロセッサ430は、ハードウェア、ミドルウェア、ファームウェア、またはソフトウェアの任意の組み合わせである。プロセッサ430は、1つ以上のCPUチップ、コア、FPGA、ASIC、またはDSPの任意の組み合わせを含む。プロセッサ430は、入口ポート410、RX 420、TX 440、出口ポート450、およびメモリ460と通信する。プロセッサ430は、開示された実施形態を実装する、コーディングコンポーネント470を含む。したがって、コーディングコンポーネント470を含めることにより、装置400の機能性に実質的な改善を提供し、装置400の異なる状態への変換をもたらす。代替として、メモリ460は、命令としてコーディングコンポーネント470を格納し、プロセッサ430はそれらの命令を実行する。
メモリ460は、ディスク、テープドライブ、またはソリッドステートドライブの任意の組み合わせを含む。装置400は、装置400が実行するそれらのプログラムを選択するときにプログラムを格納し、それらのプログラムの実行中に装置400が読み取る命令およびデータを格納するために、メモリ460をオーバーフローデータ格納デバイスとして使用し得る。メモリ460は、揮発性または不揮発性であってもよく、ROM、RAM、TCAM、またはSRAMの任意の組み合わせであってもよい。
例示的な一実施形態では、装置は、メモリ要素およびメモリ要素に結合されたプロセッサ要素を備え、ビデオフレームの現在のブロックを取得し、ビデオフレームの隣接ブロックに対応する候補MVを取得し、隣接ブロックが現在のブロックに隣接し、候補MVの精度を取得し、丸めスキームに基づいて精度の第1の丸めを実行し、第1の丸めに基づいて候補MVの第2の丸めを実行し、候補MVのプルーニングを実行し、ならびに第2の丸めおよびプルーニングに基づいて候補リストを生成するように構成される。
いくつかの実施形態が本開示で提供されたが、開示されたシステムおよび方法は、本開示の趣旨または範囲から逸脱することなく他の多くの特定の形態で具現化され得ることが理解され得る。本実施例は例示的であり、限定的ではないと見なされるべきであり、その意図は本明細書で提供される詳細に限定されるべきではない。例えば、様々な要素またはコンポーネントは別のシステムに結合または統合されてもよく、特定の機能は、省略されてもよく、実装されなくてもよい。
加えて、本開示の範囲から逸脱することなく、別々または別個の様々な実施形態で説明および図示される技術、システム、サブシステム、および方法は、他のシステム、コンポーネント、技術、または方法と組み合わせまたは統合されてもよい。結合されるように示されるまたは論述される他のアイテムは、直接結合されても、電気的、機械的、またはその他の何らかのインタフェース、デバイス、または中間コンポーネントを介して間接的に結合されても、または通信してもよい。変更、置換、および改変の他の例は、当業者によって確認可能であり、本明細書で開示される趣旨および範囲から逸脱することなく行われ得る。
100 コーディングシステム
110 ソースデバイス
120 ビデオジェネレータ
130 エンコーダ
140 出力インタフェース
150 媒体
160 宛先デバイス
170 入力インタフェース
180 デコーダ
190 ディスプレイ
200 ビデオフレームの一部分
210 現在のブロック
220 隣接ブロックA0
230 隣接ブロックA1
240 隣接ブロックB2
250 隣接ブロックB1
260 隣接ブロックB0
400 装置
410 入口ポート
420 RX
430 プロセッサ
440 TX
450 出口ポート
460 メモリ
470 コーディングコンポーネント

Claims (20)

  1. メモリと、
    前記メモリに結合され、
    ビデオフレームの現在のブロックを取得し、
    前記ビデオフレームの隣接ブロックに対応する候補動きベクトル(MV)を取得し、前記隣接ブロックが前記現在のブロックに隣接しており、
    前記候補MVの精度を取得し、
    丸めスキームに基づいて前記精度の第1の丸めを実行し、
    前記第1の丸めに基づいて前記候補MVの第2の丸めを実行し、
    前記候補MVのプルーニングを実行し、
    前記第2の丸めおよび前記プルーニングに基づいて候補リストを生成する、
    ように構成されたプロセッサと
    を備える、装置。
  2. 前記隣接ブロックが、第1の隣接ブロックおよび第2の隣接ブロックを備え、前記精度が、前記第1の隣接ブロックの第1の精度および前記第2の隣接ブロックの第2の精度を含む、請求項1に記載の装置。
  3. 前記丸めスキームが、
    前記第1の精度を前記現在のブロックの目標精度に丸めることと、
    前記第2の精度を前記目標精度に丸めることと
    を含む、請求項2に記載の装置。
  4. 前記丸めスキームが、
    前記現在のブロックの前記第1の精度、前記第2の精度、および目標精度の任意の組み合わせの中から最低精度を決定することと、
    前記第1の精度、前記第2の精度、または前記目標精度の少なくとも1つを前記最低精度に丸めることと
    を含む、請求項2に記載の装置。
  5. 前記丸めスキームが、
    前記現在のブロックの前記第1の精度、前記第2の精度、および目標精度の任意の組み合わせの中から中央値精度を決定することと、
    前記第1の精度、前記第2の精度、または前記目標精度の少なくとも1つを前記中央値精度に丸めることと
    を含む、請求項2に記載の装置。
  6. 前記丸めスキームが、
    前記現在のブロックの前記第1の精度、前記第2の精度、および目標精度の任意の組み合わせの中から最高精度を決定することと、
    前記第1の精度、前記第2の精度、または前記目標精度の少なくとも1つを前記最高精度に丸めることと
    を含む、請求項2に記載の装置。
  7. 前記丸めスキームが、
    デフォルト精度を決定することと、
    前記現在のブロックの前記第1の精度、前記第2の精度、または目標精度の少なくとも1つを前記デフォルト精度に丸めることと
    を含む、請求項2に記載の装置。
  8. 前記プルーニングが、同一の候補MVまたは準同一の候補MVを破棄することを含む、請求項1に記載の装置。
  9. 前記プルーニングが、前記候補リストを満たすためにゼロMVを追加することをさらに含む、請求項8に記載の装置。
  10. 前記プロセッサが、前記プルーニングの前に、前記第1の丸めおよび前記第2の丸めをさらに実行するようにさらに構成される、請求項1に記載の装置。
  11. 前記プロセッサが、前記プルーニングの後に、前記第1の丸めおよび前記第2の丸めをさらに実行するようにさらに構成される、請求項1に記載の装置。
  12. 前記候補リストが、高度な動きベクトル予測(AMVP)候補リストである、請求項1に記載の装置。
  13. 前記候補リストがマージ候補リストである、請求項1に記載の装置。
  14. 前記プロセッサが、
    前記候補リストから最終候補MVを選択し、
    エンコードされたビデオで前記最終候補MVをシグナリングする
    ようにさらに構成される、請求項1に記載の装置。
  15. ビデオフレームの現在のブロックを取得するステップと、
    前記ビデオフレームの隣接ブロックに対応する候補動きベクトル(MV)を取得するステップであって、前記隣接ブロックが前記現在のブロックに隣接する、ステップと、
    前記候補MVの精度を取得するステップと、
    丸めスキームに基づいて前記精度の第1の丸めを実行するステップと、
    前記第1の丸めに基づいて前記候補MVの第2の丸めを実行するステップと、
    前記候補MVのプルーニングを実行するステップと、
    前記第2の丸めおよび前記プルーニングに基づいて候補リストを生成するステップと
    を含む、方法。
  16. 前記隣接ブロックが、第1の隣接ブロックおよび第2の隣接ブロックを備え、前記精度が、前記第1の隣接ブロックの第1の精度および前記第2の隣接ブロックの第2の精度を含み、前記丸めスキームが、
    前記第1の精度を前記現在のブロックの目標精度に丸めることと、
    前記第2の精度を前記目標精度に丸めることと
    を含む、請求項15に記載の方法。
  17. 前記候補リストから最終候補MVを選択するステップと、
    エンコードされたビデオで前記最終候補MVをシグナリングするステップと、
    前記エンコードされたビデオを送信するステップと
    をさらに含む、請求項15に記載の方法。
  18. エンコードされたビデオの一部分のヘッダを含む前記エンコードされたビデオを受信するように構成された受信機であって、前記ヘッダが前記部分のコーディングモードのすべての動きベクトル(MV)の精度を含む、受信機と、
    前記受信機に結合され、前記精度に基づいてデコードされたビデオを取得するために前記エンコードされたビデオをデコードするように構成されたプロセッサと、
    前記プロセッサに結合され、前記デコードされたビデオを表示するように構成されたディスプレイと
    を備える装置。
  19. 前記部分が、スライス、領域、コーディングツリーユニット(CTU)、またはタイルである、請求項18に記載の装置。
  20. 前記精度が、クォーターペル精度、ハーフペル精度、整数ペル精度、または4ペル精度の1つである、請求項18に記載の装置。
JP2020518116A 2017-06-12 2018-06-07 動きベクトル(mv)精度の選択およびシグナリング Active JP6915159B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762518402P 2017-06-12 2017-06-12
US62/518,402 2017-06-12
US15/982,865 US11272207B2 (en) 2017-06-12 2018-05-17 Selection and signaling of motion vector (MV) precisions
US15/982,865 2018-05-17
PCT/CN2018/090181 WO2018228260A1 (en) 2017-06-12 2018-06-07 Selection and Signaling of Motion Vector (MV) Precisions

Publications (2)

Publication Number Publication Date
JP2020523954A true JP2020523954A (ja) 2020-08-06
JP6915159B2 JP6915159B2 (ja) 2021-08-04

Family

ID=64563841

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020518116A Active JP6915159B2 (ja) 2017-06-12 2018-06-07 動きベクトル(mv)精度の選択およびシグナリング

Country Status (13)

Country Link
US (3) US11272207B2 (ja)
EP (1) EP3639520B1 (ja)
JP (1) JP6915159B2 (ja)
KR (1) KR102331529B1 (ja)
CN (1) CN110710211B (ja)
AU (1) AU2018284733B2 (ja)
BR (1) BR112019026266A2 (ja)
CA (1) CA3066961C (ja)
IL (1) IL271382B2 (ja)
MX (1) MX2019014930A (ja)
SG (1) SG11201911975YA (ja)
WO (1) WO2018228260A1 (ja)
ZA (1) ZA201908548B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11272207B2 (en) 2017-06-12 2022-03-08 Futurewei Technologies, Inc. Selection and signaling of motion vector (MV) precisions
CN110620933B (zh) 2018-06-19 2022-05-31 北京字节跳动网络技术有限公司 不同参考列表的不同精度
TWI815967B (zh) 2018-09-19 2023-09-21 大陸商北京字節跳動網絡技術有限公司 仿射模式編解碼的模式相關自適應調整運動矢量分辨率
EP3895429A4 (en) * 2019-01-31 2022-08-10 Beijing Bytedance Network Technology Co., Ltd. CONTEXT FOR CODE AN ADAPTIVE MOTION VECTOR RESOLUTION IN AFFINE MODE
US11025948B2 (en) * 2019-02-28 2021-06-01 Tencent America LLC Method and apparatus for motion prediction in video coding
US20230132329A1 (en) * 2021-10-21 2023-04-27 Tencent America LLC Interdependence Between Adaptive Resolution of Motion Vector Difference and Signaling/Derivation of Motion Vector-Related Parameters

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003063503A1 (en) * 2002-01-24 2003-07-31 Hitachi, Ltd. Moving picture signal coding method, decoding method, coding apparatus, and decoding apparatus
US20130272410A1 (en) * 2012-04-11 2013-10-17 Qualcomm Incorporated Motion vector rounding
JP2017508346A (ja) * 2014-01-09 2017-03-23 クゥアルコム・インコーポレイテッドQualcomm Incorporated ビデオコーディングのための適応的な動きベクトル分解シグナリング
JP2017533669A (ja) * 2014-10-31 2017-11-09 サムスン エレクトロニクス カンパニー リミテッド 動きベクトル符号化方法、動きベクトル復号方法、及びその装置

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7116831B2 (en) 2002-04-10 2006-10-03 Microsoft Corporation Chrominance motion vector rounding
JP4130783B2 (ja) * 2002-04-23 2008-08-06 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
DE10236694A1 (de) 2002-08-09 2004-02-26 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum skalierbaren Codieren und Vorrichtung und Verfahren zum skalierbaren Decodieren
US7620106B2 (en) 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US8098732B2 (en) * 2007-10-10 2012-01-17 Sony Corporation System for and method of transcoding video sequences from a first format to a second format
TW201041404A (en) 2009-03-06 2010-11-16 Sony Corp Image processing device and method
WO2011096770A2 (ko) * 2010-02-02 2011-08-11 (주)휴맥스 영상 부호화/복호화 장치 및 방법
EP2625858A4 (en) 2010-10-06 2015-01-14 Intel Corp SYSTEM AND METHOD FOR MOVING VECTOR REMOVAL WITH LOW COMPLEXITY
US8526495B2 (en) 2010-11-22 2013-09-03 Mediatek Singapore Pte. Ltd. Apparatus and method of constrained partition size for high efficiency video coding
CN102611887B (zh) 2011-01-21 2015-08-05 华为技术有限公司 非整像素位置运动矢量的坐标值取整方法和装置
US9049452B2 (en) 2011-01-25 2015-06-02 Mediatek Singapore Pte. Ltd. Method and apparatus for compressing coding unit in high efficiency video coding
US9788019B2 (en) 2011-03-09 2017-10-10 Hfi Innovation Inc. Method and apparatus of transform unit partition with reduced complexity
JP5786478B2 (ja) * 2011-06-15 2015-09-30 富士通株式会社 動画像復号装置、動画像復号方法、及び動画像復号プログラム
US10123008B2 (en) 2011-06-17 2018-11-06 Hfi Innovation Inc. Method and apparatus for coding of intra prediction mode
CN103748877B (zh) 2011-08-17 2017-05-10 联发科技(新加坡)私人有限公司 帧内预测方法和装置
EP3139596B1 (en) 2011-09-13 2019-09-25 HFI Innovation Inc. Method and apparatus for intra mode coding in hevc
EP2727366B1 (en) 2011-10-11 2018-10-03 MediaTek Inc. Method and apparatus of motion and disparity vector derivation for 3d video coding and hevc
CA2841058C (en) * 2011-12-16 2021-03-23 Panasonic Corporation Video image coding method, video image coding device, video image decoding method, video image decoding device and video image coding/decoding device
WO2013106986A1 (en) 2012-01-16 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of intra mode coding
US10085039B2 (en) * 2012-09-21 2018-09-25 Hfi Innovation Inc. Method and apparatus of virtual depth values in 3D video coding
US9819965B2 (en) * 2012-11-13 2017-11-14 Intel Corporation Content adaptive transform coding for next generation video
EP2936816B1 (en) 2013-04-09 2020-04-29 MediaTek Singapore Pte Ltd. Method and apparatus for non-square intra mode coding
US9749642B2 (en) * 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
CN105874789B (zh) 2014-01-29 2019-10-29 联发科技股份有限公司 利用自适应运动向量精度的方法
US9918105B2 (en) 2014-10-07 2018-03-13 Qualcomm Incorporated Intra BC and inter unification
WO2016078599A1 (en) * 2014-11-20 2016-05-26 Mediatek Inc. Method of motion vector and block vector resolution control
US10856001B2 (en) 2015-02-24 2020-12-01 Lg Electronics Inc. Polygon unit-based image processing method, and device for same
US10200713B2 (en) * 2015-05-11 2019-02-05 Qualcomm Incorporated Search region determination for inter coding within a particular picture of video data
CN106331703B (zh) 2015-07-03 2020-09-08 华为技术有限公司 视频编码和解码方法、视频编码和解码装置
US10812822B2 (en) 2015-10-02 2020-10-20 Qualcomm Incorporated Intra block copy merge mode and padding of unavailable IBC reference region
US10368083B2 (en) * 2016-02-15 2019-07-30 Qualcomm Incorporated Picture order count based motion vector pruning
US10448011B2 (en) 2016-03-18 2019-10-15 Mediatek Inc. Method and apparatus of intra prediction in image and video processing
US10560718B2 (en) 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
CN109196864B (zh) * 2016-05-24 2023-07-11 韩国电子通信研究院 图像编码/解码方法和用于所述方法的记录介质
US10230961B2 (en) 2016-06-03 2019-03-12 Mediatek Inc. Method and apparatus for template-based intra prediction in image and video coding
US20170374369A1 (en) 2016-06-24 2017-12-28 Mediatek Inc. Methods and Apparatuses of Decoder Side Intra Mode Derivation
US11356693B2 (en) * 2016-09-29 2022-06-07 Qualcomm Incorporated Motion vector coding for video coding
US10778999B2 (en) * 2016-09-30 2020-09-15 Qualcomm Incorporated Frame rate up-conversion coding mode with affine motion model
US10979732B2 (en) * 2016-10-04 2021-04-13 Qualcomm Incorporated Adaptive motion vector precision for video coding
US20200036967A1 (en) 2017-02-24 2020-01-30 Realnetworks, Inc. Motion vector selection and prediction in video coding systems and methods
US11272207B2 (en) 2017-06-12 2022-03-08 Futurewei Technologies, Inc. Selection and signaling of motion vector (MV) precisions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003063503A1 (en) * 2002-01-24 2003-07-31 Hitachi, Ltd. Moving picture signal coding method, decoding method, coding apparatus, and decoding apparatus
US20130272410A1 (en) * 2012-04-11 2013-10-17 Qualcomm Incorporated Motion vector rounding
JP2017508346A (ja) * 2014-01-09 2017-03-23 クゥアルコム・インコーポレイテッドQualcomm Incorporated ビデオコーディングのための適応的な動きベクトル分解シグナリング
JP2017533669A (ja) * 2014-10-31 2017-11-09 サムスン エレクトロニクス カンパニー リミテッド 動きベクトル符号化方法、動きベクトル復号方法、及びその装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JIANLE CHEN ET AL., ALGORITHM DESCRIPTION OF JOINT EXPLORATION TEST MODEL 6 (JEM 6), JPN6021004335, 31 May 2017 (2017-05-31), pages 16 - 17, ISSN: 0004442563 *

Also Published As

Publication number Publication date
EP3639520A1 (en) 2020-04-22
SG11201911975YA (en) 2020-01-30
IL271382A (en) 2020-01-30
IL271382B2 (en) 2024-02-01
AU2018284733A1 (en) 2020-01-23
ZA201908548B (en) 2021-06-30
EP3639520A4 (en) 2020-05-27
CA3066961A1 (en) 2018-12-20
IL271382B1 (en) 2023-10-01
WO2018228260A1 (en) 2018-12-20
CA3066961C (en) 2023-10-03
MX2019014930A (es) 2020-08-06
CN110710211A (zh) 2020-01-17
US11272207B2 (en) 2022-03-08
EP3639520B1 (en) 2024-02-14
CN110710211B (zh) 2022-06-10
US20220021901A9 (en) 2022-01-20
US11843800B2 (en) 2023-12-12
KR20200015737A (ko) 2020-02-12
US11223847B2 (en) 2022-01-11
KR102331529B1 (ko) 2021-12-01
AU2018284733B2 (en) 2022-07-28
US20220103861A1 (en) 2022-03-31
BR112019026266A2 (pt) 2020-06-30
US20200120356A1 (en) 2020-04-16
JP6915159B2 (ja) 2021-08-04
US20180359485A1 (en) 2018-12-13

Similar Documents

Publication Publication Date Title
US10652571B2 (en) Advanced motion vector prediction speedups for video coding
JP6915159B2 (ja) 動きベクトル(mv)精度の選択およびシグナリング
CN110291790B (zh) 视频编码中的运动矢量(mv)约束和变换约束
US11528503B2 (en) Picture prediction method and apparatus, and codec
US20210227243A1 (en) Interpolation filter training method and apparatus, video picture encoding and decoding method, and encoder and decoder
US20210258570A1 (en) Video picture prediction method and apparatus
US20220191548A1 (en) Picture prediction method, encoder, decoder and storage medium
US20220094947A1 (en) Method for constructing mpm list, method for obtaining intra prediction mode of chroma block, and apparatus
US20210321101A1 (en) Prediction mode determining method and apparatus, encoding device, and decoding device
US11496754B2 (en) Video encoder, video decoder, and corresponding method of predicting random access pictures
KR20220003037A (ko) 인터 예측 방법 및 장치
US11516470B2 (en) Video coder and corresponding method
KR102407912B1 (ko) 양방향 인트라 예측 시그널링
KR20210096282A (ko) 인터 예측 방법 및 장치
EP3893505A1 (en) Method and device for determining prediction mode, coding device, and decoding device
WO2020181476A1 (zh) 视频图像预测方法及装置
US11770522B2 (en) Picture display order determining method and apparatus, and video coding device
RU2772639C2 (ru) Кодек, устройство и способ предсказания изображения

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200122

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210517

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210714

R150 Certificate of patent or registration of utility model

Ref document number: 6915159

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150