JP2018050308A - ビデオコーディングのための動きベクトル予測の実行 - Google Patents

ビデオコーディングのための動きベクトル予測の実行 Download PDF

Info

Publication number
JP2018050308A
JP2018050308A JP2017204423A JP2017204423A JP2018050308A JP 2018050308 A JP2018050308 A JP 2018050308A JP 2017204423 A JP2017204423 A JP 2017204423A JP 2017204423 A JP2017204423 A JP 2017204423A JP 2018050308 A JP2018050308 A JP 2018050308A
Authority
JP
Japan
Prior art keywords
motion vector
candidate motion
video data
current block
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017204423A
Other languages
English (en)
Inventor
ジャンレ・チェン
Jianle Chen
ムハンメド・ゼイド・コバン
Zeyd Coban Muhammed
イェ−クイ・ワン
Ye-Kui Wang
シャンリン・ワン
Xianglin Wang
マルタ・カークゼウィックズ
Karczewicz Marta
ウェイ−ジュン・チェン
Wei-Jung Chien
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 JP2018050308A publication Critical patent/JP2018050308A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • 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/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)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】動きベクトル予測候補のスケーリングにおいてベクトル成分の範囲を制限することによりメモリ帯域幅の効率的な利用を促進する。
【解決手段】ビデオエンコーダの動き推定ユニット42は、スケーリングされた候補動きベクトルを動きベクトルの範囲内に留まるようにスケーリングする。またはスケーリングされた候補動きベクトルの垂直成分を垂直指定範囲内になるようクリッピングし、スケーリングされた候補動きベクトルの水平成分を水平指定範囲内になるようクリッピングする。
【選択図】図2

Description

関連出願
本出願は2011年12月22日に出願された米国仮出願第61/579,465号、および2012年1月6日に出願された米国仮出願第61/584,096号の利益を主張するもので、これらの各々が参照により全て本明細書に組み込まれる。
本開示は、ビデオコーディングに関し、より詳細には、ビデオコーディングの動き補償の態様に関する。
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するために、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、Part 10、Advanced Video
Coding(AVC)によって定義された規格、およびそのような規格の拡張版に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実施する。MPEGとITU−Tとのコラボレーションである「Joint Collaborative Team−Video Coding」(JCT−VC)によって開発されているHigh Efficiency Video Coding(HEVC)規格など、新しいビデオコーディング規格が開発されつつある。新生HEVC規格は、H.265と呼ばれることもあるが、そのような名称は公式になされたものでない。
概して、本開示は、動きベクトル予測プロセスにおいて使用される動きベクトル候補の範囲を、指定範囲内になるように限定するための技法を説明する。動きベクトル予測は通常、動き推定が行われる際の効率を高める方法としてビデオコーディングにおいて採用される。一般に「動き推定」と呼ばれるものを行うことで現在のブロックに一致する参照フレーム中のブロックの探索を行うのでなく、ビデオコーダは、ビデオデータの現在のブロックに対する空間的または時間的近傍ブロックであるブロックから、これらの候補動きベクトルを特定し、ビデオデータの現在のブロックに関する動きベクトル予測子として、これらの候補動きベクトルのうちの1つを選択し得る。場合によって、これらの候補動きベクトルがスケーリングされ得る。スケーリングされた候補動きベクトルが動きベクトル予測子として選択されるとき、本技法は、ビデオコーダが、このスケーリングされた候補動きベクトルの水平成分および垂直成分のうちの1つまたは複数の範囲を限定することを可能にし得る。
一例では、ビデオデータをコーディングする方法は、動きベクトル予測プロセスを行うために、ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの1つまたは複数をスケーリングして、1つまたは複数のスケーリングされた候補動きベクトルを生成することと、スケーリングされた候補動きベクトルを、指定範囲内になるように修正することとを備える。本方法は、ビデオデータの現在のブロックに関する動きベクトル予測子として、複数の候補動きベクトルのうちの1つを選択することと、動きベクトル予測子に基づいて、ビデオデータの現在のブロックをコーディングすることとをさらに備える。
別の例では、動きベクトル予測プロセスを行って、ビデオデータをコーディングするように構成されたビデオコーディングデバイスは、動きベクトル予測プロセスを行うために、ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの1つまたは複数をスケーリングして、1つまたは複数のスケーリングされた候補動きベクトルを生成することと、スケーリングされた候補動きベクトルを、指定範囲内になるように修正することと、ビデオデータの現在のブロックに関する動きベクトル予測子として、複数の候補動きベクトルのうちの1つを選択することと、動きベクトル予測子に基づいて、ビデオデータの現在のブロックをコーディングすることとを行うように構成された、プロセッサを備える。
別の例では、動きベクトル予測プロセスを行って、ビデオデータをコーディングするように構成されたビデオコーディングデバイスは、動きベクトル予測プロセスを行うために、ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定するための手段と、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの1つまたは複数をスケーリングして、1つまたは複数のスケーリングされた候補動きベクトルを生成するための手段とを備える。ビデオコーディングデバイスは、スケーリングされた候補動きベクトルを、指定範囲内になるように修正するための手段と、ビデオデータの現在のブロックに関する動きベクトル予測子として、複数の候補動きベクトルのうちの1つを選択するための手段と、動きベクトル予測子に基づいて、ビデオデータの現在のブロックをコーディングするための手段とをさらに備える。
別の例では、非一時的コンピュータ可読記憶媒体は、実行されたときに、1つまたは複数のプロセッサに、動きベクトル予測プロセスを行うために、ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの1つまたは複数をスケーリングして、1つまたは複数のスケーリングされた候補動きベクトルを生成することと、スケーリングされた候補動きベクトルを、指定範囲内になるように修正することと、ビデオデータの現在のブロックに関する動きベクトル予測子として、複数の候補動きベクトルのうちの1つを選択することと、動きベクトル予測子に基づいて、ビデオデータの現在のブロックをコーディングすることとを行わせる命令を記憶している。
1つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
動きベクトル予測プロセスを行うとき、候補動きベクトルの範囲を限定するための、本開示で説明する技法を利用するように構成され得る例示的なビデオ符号化および復号システムを示すブロック図。 MVPの範囲を限定するための本開示で説明する技法を実施し得るビデオエンコーダの一例を示すブロック図。 本開示で説明する動きベクトル予測技法を実施するビデオデコーダの一例を示すブロック図。 本開示で説明する動きベクトル予測技法の態様を行う際のビデオコーダの例示的な動作を示すフローチャート。 本開示で説明する動きベクトル予測技法の他の態様を実施する際のビデオコーダの例示的な動作を示すフローチャート。 現在の予測ユニット(PU)に対する隣接する近傍PUおよび時間的コロケートPUの例示的配置を示す図。
詳細な説明
本開示で説明する技法の実施形態は、ビデオコーダ(ビデオエンコーダおよびビデオデコーダの一方または両方を指すために、本明細書で使用される用語を表し得る)が、動きベクトル予測プロセスを行うとき、被選択候補動きベクトル(selected candidate motion vectors)の範囲を指定範囲(specified range)内になるように限定することを可能にする。言い換えれば、本技法は、ビデオコーダが、ビデオデータの現在のブロックに関する候補動きベクトルのリスト(但し、これらの候補動きベクトルはまた「動きベクトル予測子候補」と呼ばれることもあり、このリストは「候補リスト」と呼ばれることがある)を特定することと、ビデオデータの現在のブロックに関する動きベクトル予測子(MVP)を表すために、このリスト中の候補動きベクトルのうちの1つを選択することとを可能にする。次いで、ビデオコーダは、被選択候補動きベクトルがスケーリングされたかどうかを判断し得る。この被選択候補動きベクトルがスケーリングされたと判断すると、次いで、ビデオコーダは、被選択候補動きベクトルの水平成分および/または垂直成分が、それぞれ水平成分値の指定範囲および/または垂直成分値の指定範囲内に含まれるかどうかを判断し得る。これらの指定範囲は、事実上、水平変位制限および/または垂直変位制限と呼ばれることがあるものを表し得る。水平成分値の指定範囲および/または垂直成分値の指定範囲内に含まれない場合、ビデオコーダは、水平および/または垂直成分値が水平成分値の指定範囲および/または垂直成分値の指定範囲内に含まれるように、これらの値をクリッピングし得る。
このようにして、本技法は、動きベクトル予測子候補クリッピングプロセスと呼ばれ得るものの候補リスト生成プロセスを修正し得る。例えば、ビデオコーダは、候補動きベクトルの垂直成分を、動きベクトル範囲の境界内にとどまるようにクリッピングし得る。同様に、ビデオコーダは、候補動きベクトルの水平成分を、動きベクトル範囲の境界内にとどまるようにクリッピングし得る。加えて、ビデオコーダは、動きベクトルを、動きベクトル範囲の境界内にとどまるようにスケーリングし得る。これらの技法は、中間候補動きベクトルの一部もしくは全部に適用されてもよく、または、現在のビデオブロックに関する最終の被選択動きベクトル予測子のみに適用されてもよい。
言い換えれば、候補リストの候補動きベクトルが、動きベクトル変位制限を超えて位置する予測ブロックをポイントするとき、ビデオコーダ(「ビデオコーディングデバイス」と呼ばれることもある)は、候補動きベクトルの値をクリッピングするか、または他の方法で切り捨てることができる。次いで、ビデオコーダは、候補リストの選択およびクリッピングされた候補動きベクトルに基づいて、現在のビデオブロックをコーディングし得る。
場合によって(この被選択候補動きベクトルがスケーリングされるときなど)、被選択候補動きベクトルの水平および/または垂直成分値の範囲を制限、または他の方法で限定することによって、本技法は、水平および/または垂直動きベクトルが、それらの符号付き整数値を表現するために一定数よりも多いビットを必要としないことを保証し得る。言い換えれば、符号付き整数値である、動きベクトルの成分値は、一般に16ビットを使用して表現される。ビデオデコーダは、従って、動きベクトルを定義するとき、1つの動きベクトル成分につき16ビットを割り振る。動きベクトルが16ビットを超えることを可能にすることは、表現するために16ビットよりも多くを必要とするそれらの動きベクトル成分を記憶するために、追加の物理メモリが与えられる必要があるので、ハードウェアで実施されるとき、ビデオデコーダ設計を著しく複雑にすることがある。
加えて、場合によって、動きベクトル成分の範囲を、指定範囲内になるように限定することによって、本技法は、メモリ帯域幅のより効率的な利用を促進し得る。説明するため、ビデオデータのフレームのビデオコーディングが、典型的には(一般に、上から下、左から右への読取り順序である)ラスタ走査順序で進むとすれば、動きベクトルの垂直成分を制限することは、動きベクトルが参照する参照フレームのどれだけのビデオデータが、オンチップメモリにロードされることが必要とされるかを限定し得る。より小さい動きベクトル垂直成分は、ラスタ走査ビデオコーディングでは、ビデオコーダのハードウェア実装形態において必要とされるオンチップメモリの量を限定するための有効な方法と見なされ得る。過度に大きい動きベクトル垂直成分は、複数のブロックが同じ参照フレームのまったく異なる部分をそれぞれ参照し、次いで、それらの部分が、ビデオデコーダがオフチップメモリとオンチップメモリとの間で参照フレームのこれらの異なる部分を頻繁に交換することを必要とするという場合になり得る。場合によって、動きベクトル成分の範囲を限定することによって、本技法は、メモリ帯域幅のより効率的な利用を促進し得る。
図1は、動きベクトル予測プロセスを行うとき、候補動きベクトルの範囲を限定するための、本開示で説明する技法を利用するように構成され得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1の例に示すように、システム10は、宛先デバイス14によって復号される符号化ビデオを生成するソースデバイス12を含む。ソースデバイス12は、通信チャネル16を介して宛先デバイス14に符号化ビデオを送信することができ、または記憶媒体34もしくはファイルサーバ36に符号化ビデオを記憶して、符号化ビデオが必要に応じて宛先デバイス14によってアクセスされ得るようにできる。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、(セルラー電話またはハンドセットおよびいわゆるスマートフォンを含む)電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、広範囲にわたるデバイスのいずれかを備え得る。
多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。従って、通信チャネル16はワイヤレスチャネルを備え得る。代替的に、通信チャネル16は、ワイヤードチャネル、ワイヤレスチャネルとワイヤードチャネルの組合せ、または符号化ビデオデータの送信に好適な任意の他のタイプの通信チャネルもしくは通信チャネルの組合せ、例えば、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路を備え得る。いくつかの例では、通信チャネル16は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。従って、通信チャネル16は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス12から宛先デバイス14に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル16は、ソースデバイス12から宛先デバイス14への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
図1の例にさらに示すように、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器22(「モデム22」)と、送信機24とを含む。ソースデバイス12において、ビデオソース18はビデオキャプチャデバイスなどのソースを含み得る。ビデオキャプチャデバイスは、例として、ビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムのうちの1つまたは複数を含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ電話を形成し得る。但し、本開示で説明する技法は、ワイヤレスアプリケーションまたは設定に限定されず、ビデオ符号化および/または復号機能を含む非ワイヤレスデバイスに適用され得る。従って、ソースデバイス12および宛先デバイス14は、本明細書で説明する技法をサポートできるコーディングデバイスの例にすぎない。
ビデオエンコーダ20は、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオを符号化できる。符号化されると、ビデオエンコーダ20は、この符号化ビデオをモデム22に出力できる。次いでモデム22は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオを変調することができ、その後、送信機24は、変調された符号化ビデオデータを宛先デバイス14に送信できる。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含むことができる。
ビデオエンコーダ20によって符号化された、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオはまた、後の取出し、復号および消費のために記憶媒体34またはファイルサーバ36に記憶され得る。記憶媒体34は、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、または符号化ビデオを記憶するための任意の他の好適なデジタル記憶媒体を含み得る。宛先デバイス14は、記憶媒体34またはファイルサーバ36に記憶された符号化ビデオにアクセスし、この符号化ビデオを復号して復号ビデオを生成し、この復号ビデオを再生できる。
ファイルサーバ36は、符号化ビデオを記憶することと、その符号化ビデオを宛先デバイス14に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(例えば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイスに送信することとが可能な任意の他のタイプのデバイスを含む。ファイルサーバ36からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続によりファイルサーバ36にアクセスできる。この接続は、ワイヤレスチャネル(例えば、Wi−Fi接続またはワイヤレスセルラーデータ接続)、ワイヤード接続(例えば、DSL、ケーブルモデムなど)、ワイヤードチャネルとワイヤレスチャネルの両方の組合せ、またはファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適な任意の他のタイプの通信チャネルを含むことができる。
図1の例では、宛先デバイス14は、受信機26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。宛先デバイス14の受信機26はチャネル16を介して情報を受信し、モデム28はその情報を復調して、ビデオデコーダ30のための復調されたビットストリームを生成する。チャネル16を介して通信される情報は、関連する符号化ビデオデータを復号する際にビデオデコーダ30が使用する、ビデオエンコーダ20によって生成された様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体34またはファイルサーバ36に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ(コーデック)の一部を形成し得る。
宛先デバイス14のディスプレイデバイス32は、閲覧者が消費するビデオデータを提示することが可能な任意のタイプのディスプレイを表す。ディスプレイデバイス32は宛先デバイス14に統合されているものとして示されているが、宛先デバイス14に統合されても、宛先デバイス14の外部にあってもよい。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
本開示は全般的に、ビデオデコーダ30などの別のデバイスにシンタックス情報を「シグナリングする」ビデオエンコーダ20に言及することがある。但し、ビデオエンコーダ20は、ビデオデータの様々な符号化部分にシンタックス要素を関連付けることによって、情報をシグナリングし得ることを理解されたい。すなわち、ビデオエンコーダ20は、ビデオデータの様々な符号化部分のヘッダにいくつかのシンタックス要素を記憶することによって、データを「シグナリングする」ことができる。場合によって、そのようなシンタックス要素は、ビデオデコーダ30によって受信され、復号される前に符号化され、記憶され(例えば、記憶媒体34またはファイルサーバ36に記憶され)得る。従って、「シグナリング」という用語は全般的に、圧縮されたビデオデータを復号するために使用されるシンタックスまたは他のデータの通信を指すことがあり、そのような通信がリアルタイムまたはほぼリアルタイムで生じるか、それともある時間スパンで生じるか、例えば符号化時に媒体にシンタックス要素を記憶する(シンタックス要素は、この媒体に記憶された後、任意の時間に復号デバイスによって取り出され得る)ときに生じるかを問わない。
ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part 10、Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格、またはそのような規格の拡張版など、他のプロプライエタリまたは業界標準に従って動作し得る。但し、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例にはMPEG−2およびITU−T H.263がある。
HMでは、ビデオデータのブロックをコーディングユニット(CU)と呼ぶ。概して、CUは、CUがH.264のマクロブロックに関連するサイズ差異を有しないことを除いて、H.264に従ってコーディングされたマクロブロックと同様の目的を有する。従って、CUはサブCUに分割され得る。概して、本開示におけるCUへの言及は、ピクチャの最大コーディングユニット(LCU)またはLCUのサブCUを指すことがある。例えば、ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大のコーディングユニットであるLCUを定義し得る。LCUはサブCUに分割され得、各サブCUはサブCUに分割され得る。ビットストリームのシンタックスデータは、最大CU深さと呼ばれる、LCUが分割され得る最大回数を定義し得る。従って、ビットストリームは最小コーディングユニット(SCU)をも定義し得る。
LCUは階層型4分木データ構造に関連付けられ得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはLCUに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは、サブCUに対応する4つのノードの各々に関する参照を含む。4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。例えば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。
分割されないCUは、1つまたは複数の予測ユニットを含み得る。概して、PUは、対応するCUの全部または一部分を表し、そのPUの参照サンプルを取り出すためのデータを含む。例えば、PUがイントラモード符号化されるとき、PUは、そのPUのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUの1つまたは複数の動きベクトルを定義するデータを含み得る。動きベクトルは全般的に、1つまたは複数の参照フレーム内のコロケートCU(co-located CU)を識別し、「参照フレーム」という用語は、時間的に、PUが位置するフレームの前または後に生じるフレームを指す。また、(1つまたは複数の)PUを定義するCUについてのデータは、例えば、1つまたは複数のPUへのCUの区分について記述し得る。区分モードは、CUがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかとの間で異なり得る。
動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(例えば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルがポイントする参照フレーム、識別された参照フレームが現在のフレームの前にあるか後にあるかを識別する予測方向、および/または動きベクトルの参照リスト(例えば、リスト0もしくはリスト1)を記述し得る。代替的に、動きベクトルを定義するデータは、動きベクトル予測子(MVP)と呼ばれるものに関して動きベクトルを記述し得る。動きベクトル予測子は、近傍PU(neighboring PU)または時間的コロケートPU(temporally co-located PU)の動きベクトルを含み得る。一般に、5つの候補動きベクトルを有するリストが、規定された方法で(例えば、最大振幅を有する候補動きベクトルから最小振幅を有する候補動きベクトルまでの候補動きベクトル、すなわち、コーディングされる現在のPUと参照PUとの間の最大変位もしくは最小変位を有する候補動きベクトルを含む候補動きベクトルを記載する、またはロケーション、すなわち上ブロック、左ブロック、隅ブロック、時間ブロックに基づいて候補動きベクトルを記載する、など)形成され、この場合、5つの候補動きベクトルのうちの4つは、4つの近傍PUから選択された空間動きベクトルであり、5番目の候補動きベクトルは、参照フレーム内の時間的コロケートPUから選択された時間的コロケート動きベクトルである。
一般に、時間的候補動きベクトルは参照フレームにおいて、現在のフレーム内の現在の部分と同じ部分にコロケートされるが、本技法は、コロケートされる時間的候補動きベクトルに厳密に限定されるものではない。代わりに、本技法は、コロケートされるかどうかにかかわらず、任意の時間的候補動きベクトルに関して実施され得る。場合によって、ビデオエンコーダは、動きベクトル予測プロセスを行うとき、現在のフレームの現在のブロックまたは部分とコロケートされていない時間的候補動きベクトルを識別し、この時間的候補動きベクトルを使用できる。通常、ビデオエンコーダは、コロケートされていない時間的候補動きベクトルが使用されていることをシグナリングすることがあり、または場合によって、所与の文脈が、コロケートされていない時間的候補動きベクトルが使用されていることを示す(この場合、ビデオエンコーダは、コロケートされていない時間的候補動きベクトルがMVPとして選択されたかどうかをシグナリングしなくてよい)ことがある。
5つの候補動きベクトルを有するリストを作成した後、ビデオエンコーダ20は、候補動きベクトルの各々を評価して、ビデオを符号化するために選択された所与のレートおよびひずみのプロファイルに最も良く合致する最良のレートおよびひずみの特性をもたらすのはどれかを判断できる。ビデオエンコーダ20は、5つの候補動きベクトルの各々に関してレートひずみ最適化(rate-distortion optimization)(RDO) 手順を行い、最良のRDO結果を有する候補動きベクトルのうちの1つをMVPとして選択できる。代替的に、ビデオエンコーダ20は、現在のPUに関して特定された動きベクトルに最も近似する、リストに記憶された5つの候補動きベクトルのうちの1つをMVPとして選択できる。
いずれの場合も、ビデオエンコーダ20は、5つの候補動きベクトルを有するリスト内の候補動きベクトルのうちの選択された1つを識別するインデックス、(リスト形式であることが多い)動きベクトルがポイントする1つまたは複数の参照フレーム、および予測が単方向であるか双方向であるかを識別する予測方向を備えるデータを使用して、動きベクトルを指定できる。代替的に、動きベクトルを定義するデータは、参照フレームと予測方向とを指定することなく、5つの候補動きベクトルを有するリスト内の選択された候補動きベクトルのインデックスを指定するだけでもよく、この場合、候補動きベクトルのうちの選択された1つが現在のPUに全体的に使用されることが、ビデオデコーダにシグナリングされる。
1つまたは複数の動きベクトルを定義する1つまたは複数のPUを有することに加えて、CUは1つまたは複数の変換ユニット(TU)を含むことができる。PUを使用した予測の後に、ビデオエンコーダは、PUに対応するCUの部分の残差値(residual value)を計算することができ、この残差値は残差データと呼ばれることもある。残差値は変換され、量子化され、走査され得る。TUは、必ずしもPUのサイズに制限されるとは限らない。従って、各TUは、同じCUについての対応するPUよりも大きくても小さくてもよい。いくつかの例では、TUの最大サイズは、対応するCUのサイズであり得る。本開示ではまた、CU、PU、および/またはTUの任意の1つまたは組合せを指すために「ブロック」という用語を使用する。
概して、符号化ビデオデータは予測データと残差データとを含み得る。ビデオエンコーダ20は、イントラ予測モードまたはインター予測モード中に予測データを生成し得る。イントラ予測は、概して、あるピクチャのブロック中のピクセル値を、同じピクチャの近傍にある、前にコーディングされたブロック中の参照サンプルに対して予測することを伴う。インター予測は、概して、あるピクチャのブロック中のピクセル値を、前にコーディングされたピクチャのデータに対して予測することを伴う。
イントラ予測またはインター予測の後に、ビデオエンコーダ20はブロックの残差ピクセル値を計算し得る。その残差値は、概して、ブロックの予測ピクセル値データとブロックの真のピクセル値データとの間の差分に対応する。例えば、残差値は、コード化ピクセルと予測ピクセルとの間の差分を示すピクセル差分値を含み得る。いくつかの例では、コード化ピクセルは、コーディングされるべきピクセルのブロックに関連し得、予測ピクセルは、コード化ブロックを予測するために使用されるピクセルの1つまたは複数のブロックに関連し得る。
ブロックの残差値をさらに圧縮するために、残差値は、(「エネルギー」とも呼ばれる)できるだけ多くのデータをできるだけ少数の係数に構成する変換係数のセットに変換され得る。変換技法は、離散コサイン変換(DCT)プロセスまたは概念的に同様のプロセス、整数変換、ウェーブレット変換、または他のタイプの変換を備え得る。その変換は、ピクセルの残差値を空間領域から変換領域に変換する。変換係数は、元のブロックと通常同じサイズである係数の2次元行列に対応する。言い換えれば、元のブロック中のピクセルとちょうど同数の変換係数がある。但し、変換により、変換係数の多くは、0に等しい値を有し得る。
ビデオエンコーダ20は、次いで、ビデオデータをさらに圧縮するために変換係数を量子化し得る。量子化は、概して、相対的に大きい範囲内の値を相対的に小さい範囲中の値にマッピングし、それによって、量子化変換係数を表すために必要とされるデータの量を低減することを伴う。より詳細には、量子化は、LCUレベルにおいて定義され得る量子化パラメータ(QP)に従って適用され得る。従って、LCU内のCUの様々なPUに関連するTUにおけるすべての変換係数に、同じレベルの量子化が適用され得る。但し、QP自体をシグナリングするのではなく、QPの変化(すなわち、差分)がLCUとともにシグナリングされ得る。差分QPは、前に通信されたLCUのQPのような何らかの参照QPに対するLCUの量子化パラメータの変化を定義する。
量子化の後に、ビデオエンコーダ20は、変換係数を走査して、量子化変換係数を含む2次元行列から1次元ベクトルを生成し得る。次いでビデオエンコーダ20は、(誤称によって「エントロピー符号化」と一般に呼ばれる)統計的可逆符号化を行ない、得られたアレイを符号化することで、データをなお一層圧縮できる。概して、エントロピーコーディングは、一連の量子化変換係数および/または他のシンタックス情報をまとめて圧縮する1つまたは複数のプロセスを備える。例えば、差分QP、予測ベクトル、コーディングモード、フィルタ、オフセット、または他の情報などのシンタックス要素も、エントロピーコード化ビットストリームに含まれ得る。走査された係数は次いで、例えば、コンテンツ適応型可変長コーディング(CAVLC:content adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC:context adaptive binary arithmetic coding)、または任意の他の統計的可逆コーディングプロセスによって、任意のシンタックス情報とともにエントロピーコーディングされる。
上述のように、PUに関する動きベクトルを定義するデータはいくつかの形態をとり得る。ビデオエンコーダ20は、動きベクトルデータを圧縮するように動きベクトルが表現され得る様々な方法を実施できる。ビデオエンコーダ20は、規定された方法で構成された候補動きベクトルのリストに記憶された候補動きベクトルを識別するインデックスとして動きベクトルを表現する、「マージモード」と呼ばれるものを実施できる。ビデオデコーダ30は、このマージモードの逆を実施する中で、このインデックスを受信し、規定された方法に従って5つの候補動きベクトルからなるリストを再構成し、インデックスによって示されるリスト内の5つの候補動きベクトルのうちの1つを復号されるビデオデータの現在のブロックのMVPとして選択する。次いでビデオデコーダ30は、候補動きベクトルのうちの選択された1つの同じ解像度による、候補動きベクトルのうちの選択された1つがポイントするのと同じ参照フレームをポイントする関連PUに関するMVPとして、候補動きベクトルのうちの選択された1つをインスタンス化できる。マージモードを実施する際、ビデオエンコーダ20は、動きベクトルを導出するのに必要な全範囲で動き推定を行わなくてよく、動きベクトルの水平成分および垂直成分、動きベクトルの解像度、(動きベクトルが時間的に現在のフレームの前にあるフレームをポイントするか、それとも後にあるフレームをポイントするかを意味する)動きベクトル方向、または参照フレームインデックスを指定しなくてよく、それにより潜在的に、動きベクトルを特定するのに必要なプロセッササイクルを減らし、動きベクトルデータを圧縮する。
ビデオエンコーダ20は、マージモードに類似する、候補動きベクトルのうちの1つをMVPとして識別するインデックスとして動きベクトルを表現することを含む適応型動きベクトル予測(AMVP)モードを実施することもできる。但し、マージモードとは異なり、ビデオエンコーダ20は予測方向と参照フレームとを指定して、候補動きベクトルのうちの選択された1つのこれらの部分を効果的に無効にすることもできる。AMVPモードを実施する際、ビデオエンコーダ20は、動きベクトルを導出するのに必要な全範囲で動き推定を行わなくてよく、動きベクトルの水平成分および垂直成分と動きベクトルの解像度とを指定しなくてよく、それにより潜在的に、動きベクトルを特定するのに必要なプロセッササイクルを減らし、動きベクトルデータを圧縮する。
一般に、現在提案されている規格であるHEVCの前身のビデオコーディング規格は、動きベクトル垂直成分および水平成分のサイズを制約するために、様々な制限を定義した。これらの制限は、上述のように、垂直および/または水平変位を最大値および最小値に限定する範囲として定義され得る。HEVCでは、これらの動きベクトル成分範囲(一般に「mvrange」と示す)が、最初に、H.264など、前身のビデオコーディング規格におけるこれらの範囲の使用に基づいて提案および採用された。しかしながら、より最近では、動きベクトルが一般に参照フレームのいかなる部分を参照することも可能にするために、水平および/または垂直変位におけるこれらの範囲が、HEVCから削除された。動きベクトルはまた、HEVCにおいて、それぞれ長さが16ビットである成分値を有するようにも定義され、このことは、典型的には、参照フレームのほぼいかなる部分をも対象とする大きい動きベクトル成分値を表現するために十分なビットをもたらした。動きベクトルが参照フレームの概していかなる部分を参照することも可能にすることによって、ビデオエンコーダは、(ビデオデータの現在のブロックのより効率的な圧縮の別の言い方である)最小量の残差データを生じる参照フレームの部分のより網羅的な探索を行い得る。
さらに、いくつかの状況では、動きベクトルの範囲を制限することは有利であり得る。例えば、上記の動きベクトル予測プロセスのうちの1つ(例えば、マージモードまたはAMVPモード)を行うとき、動きベクトル候補のうちの1つまたは複数が、候補リストに追加されるより前に、スケーリングされ得る。次いで、このスケーリングされた動きベクトル成分は、動きベクトル成分ごとに通常定義された16ビット長を超え得る。そのようなスケーリングされた動きベクトルが16ビット長よりも大きいとき、ビデオエンコーダ20は、マージモードが利用不可能である、または、言い換えれば、マージモードが行われ得ないと判断し得る。AMVPを行うとき、動きベクトルのうちの1つまたは複数がスケーリングされ得るので、この同じ問題が、AMVPモードを行うときに発生することがある。マージモードとAMVPモードのいずれかまたは両方の使用を制限することは、圧縮の非効率を生じ得る。
本開示で説明する技法によれば、ビデオエンコーダ20は、動きベクトル予測プロセスを行うために、ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定し得る。すなわち、ビデオエンコーダ20は、ビデオデータの現在のブロックの1つまたは複数の近傍ブロックを識別し得る(但し、これらの近傍ブロックは「ビデオデータの候補ブロック」または「候補ビデオブロック」と呼ばれることもある)。ビデオエンコーダ20は、1つまたは複数の(および、一般に4つの)空間的近傍ブロックと、1つまたは複数の(および、一般に単一の)時間的近傍ブロックとを識別し得る。現在のブロックに対するこれらの空間的および時間的近傍ブロックのロケーションが、図6に関して以下で詳細に示される。これらの近傍ブロックを識別した後、次いで、ビデオエンコーダ20は、これらの近傍ブロックの各々に関連する動きベクトルを特定し得、但し、これらの動きベクトルは、動きベクトル予測プロセスに関する候補動きベクトルを表し得る。
これらの動きベクトルを特定すると、ビデオエンコーダ20は、場合によって、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの1つまたは複数をスケーリングして、1つまたは複数のスケーリングされた候補動きベクトルを生成し得る。説明するために、動きベクトル予測プロセスのマージモードを行うとき、ビデオエンコーダ20は、時間的近傍ブロックに関連する動きベクトルを特定し得、但し、この時間的近傍ブロックは、ビデオデータの現在のブロックと同じ、参照フレームの位置にコロケートされた、ビデオデータのブロックを指す。この参照フレームは、フレームが他のフレームに対して表示されるべきである順序を識別する、ビデオデータの各フレームに割り当てられた番号を指す、ピクチャ順序カウントに関連付けられ得る。一般に、ビデオエンコーダ20は、ビデオデータのコロケートブロックが存在する参照フレームと、ビデオデータの現在のブロックが存在する現在のフレームとの間の、ピクチャ順序カウントの差に基づいて、時間的候補動きベクトルをスケーリングし得る。
別の例として、動きベクトル予測プロセスの高度動きベクトル予測(AMVP:advanced motion vector prediction)モードを行うとき、ビデオエンコーダ20は、同様に、ビデオデータのコロケートブロックが存在する参照フレームと、ビデオデータの現在のブロックが存在する現在のフレームとの間の、ピクチャ順序カウントの差に基づいて、時間的候補動きベクトルをスケーリングし得る。但し、上述のように、動きベクトル予測プロセスのAMVPモードは、候補動きベクトルの様々な態様が有効にオーバーライドされることを可能にする。結果として、動きベクトル予測プロセスのAMVPモードでは、ビデオエンコーダ20は、空間的候補動きベクトルに関連する参照フレームをオーバーライドし得、そのことが、指定された(または、オーバーライド)参照フレームと、ビデオデータの現在のブロックが存在する現在のフレームとの間の、ピクチャ順序カウントの差に基づいて、空間的候補動きベクトルをスケーリングする結果になり得る。従って、ビデオエンコーダ20は、動きベクトル予測プロセスのAMVPモードを行うとき、時間的候補動きベクトルと空間的候補動きベクトルの両方をスケーリングし得る。
次いで、ビデオエンコーダ20は、現在のブロックに関するMVPとして、複数の候補動きベクトルのうちの1つを選択するより前に、スケーリングされた候補動きベクトルのうちの1つまたは複数の範囲を、指定範囲内になるように限定し得る。言い換えれば、ビデオエンコーダ20は、現在のブロックに関するMVPとして、候補動きベクトルのうちの1つを選択するより前に、スケーリングされた候補動きベクトルを、指定範囲内になるように修正し得る。現在のブロックに関するMVPとして、候補動きベクトルのうちの1つを選択するより前に、スケーリングされた候補動きベクトルのうちの1つまたは複数を修正するとき、ビデオエンコーダ20は、スケーリングされた候補動きベクトルが指定範囲(「変位制限」と呼ばれることもある)に限定されることを保証するために、これらのスケーリングされた候補動きベクトルの各々を修正し得る。指定範囲は、一例として、1/4ピクセル単位で[−32768,32767]として指定される。
現在のブロックに関するMVPとして、候補動きベクトルのうちの1つを選択(および、候補動きベクトルのうちの選択された1つを潜在的に修正)した後、次いで、ビデオエンコーダ20は、MVPを使用して、ビデオデータの現在のブロックを符号化し得る。すなわち、ビデオエンコーダ20は、MVPを使用して、参照フレーム中の参照ブロックを識別し、現在のブロックと参照ブロックとの間の差として、ビデオデータの残差ブロックを生成し得る。次いで、ビデオエンコーダ20は、上記の変換動作を行って、ビデオデータのこの残差ブロックを空間領域から周波数領域に変換し、変換係数のブロックを生成し得る。ビデオエンコーダ20は、次に、変換係数を量子化し、量子化された変換係数をランレングス符号化し、ランレングス符号化され量子化された変換係数を(統計的可逆コーディングの別の言及方法である)エントロピー符号化し得る。ビデオエンコーダ20は、関連するシンタックス要素とともにビットストリームにおいてこのコード化ビデオデータを出力し得る。
ビデオデコーダ30は、このビットストリームを受信し、シンタックス要素に従ってビットストリームを復号し得る。ビデオデコーダ30は、概して、ビデオエンコーダ20に関して上記で説明した動作と相反する動作を行い得る。すなわち、ビデオデコーダ30は、符号化ビデオデータの各ブロックをエントロピー復号し、逆量子化を行って、符号化ビデオデータのブロックを逆量子化(de-quantize)し、逆変換を適用して、符号化ビデオデータの逆量子化(de-quantized)ブロックを周波数領域から空間領域に変換し得る。符号化ビデオデータのこの変換ブロックは、残差データの再構成バージョンを表し得る。ビデオデコーダ30は、この場合には残差データの再構成バージョンを指し得る、符号化ビデオデータの現在のブロックに関連するシンタックス要素から、この現在のブロックに関する動きベクトルが、動きベクトル予測プロセスを使用して導出されるべきであると判断し得る。
この現在のブロックに関する動きベクトルが、動きベクトル予測プロセスを使用して導出されるべきであると、ビデオデコーダ30が判断すると仮定すると、次いで、ビデオデコーダ30は、符号化ビデオデータの現在のブロックに関する動きベクトル予測子を導出するために、概して、ビデオエンコーダ20に関して上記で説明した動作と同じ動作を行い得る。従って、ビデオデコーダ30は、動きベクトル予測プロセスを行うために、ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定し得る。すなわち、ビデオデコーダ30は、ビデオデータの現在のブロックの1つまたは複数の近傍ブロックを識別し得る。ビデオデコーダ30は、1つまたは複数の空間的近傍ブロックと、1つまたは複数の時間的近傍ブロックとを識別し得る。また、現在のブロックに対するこれらの空間的および時間的近傍ブロックのロケーションが、図6に関して以下で詳細に示される。これらの近傍ブロックを識別した後、次いで、ビデオデコーダ30は、これらの近傍ブロックの各々に関連する動きベクトルを特定し得、但し、これらの動きベクトルは、動きベクトル予測プロセスに関する候補動きベクトルを表し得る。
これらの動きベクトルを特定すると、ビデオデコーダ30は、ビデオエンコーダ20に関して上記で説明した場合では、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの1つまたは複数をスケーリングして、1つまたは複数のスケーリングされた候補動きベクトルを生成し得る。次いで、ビデオデコーダ30は、現在のブロックに関するMVPとして、複数の候補動きベクトルのうちの1つを選択するより前に、スケーリングされた候補動きベクトルのうちの1つまたは複数の範囲を、指定範囲内になるように限定し得る。言い換えれば、ビデオデコーダ30は、現在のブロックに関するMVPとして、候補動きベクトルのうちの1つを選択するより前に、スケーリングされた候補動きベクトルを、指定範囲内になるように修正し得る。現在のブロックに関するMVPとして、候補動きベクトルのうちの1つを選択するより前に、スケーリングされた候補動きベクトルのうちの1つまたは複数を修正するとき、ビデオデコーダ30は、スケーリングされた候補動きベクトルが指定範囲(「変位制限」と呼ばれることもある)に限定されることを保証するために、これらのスケーリングされた候補動きベクトルの各々を修正し得る。このようにして、ビデオデコーダ30は、スケーリングされた候補動きベクトルを、指定範囲内になるように修正し得る。
ビデオデコーダ30は、(ビットストリームにおいてビデオエンコーダ20によって以前に指定された)ビデオデータの現在のブロックに関連する(動きベクトル予測子インデックス(「mvp_idx」)シンタックス要素などの)1つまたは複数のシンタックス要素に基づいて、候補動きベクトルのうちのどれを選択するべきかを判断し得る。ビデオデコーダ30は、例えば、このmvp_idxシンタックス要素を使用して、候補動きベクトルのうちの1つを選択し得る。次いで、ビデオデコーダ30は、ビデオデータの参照ブロックを識別するために、候補動きベクトルを使用して、ビデオデータの現在のブロックを再構成し、次いで、ビデオデータの参照ブロックを、ビデオデコーダ30が残差データに追加して、ビデオデータの現在のブロックを再構成し得る。次いで、ビデオデコーダ30は、ビデオデータのこの再構成ブロックを記憶する。
このようにして、本開示で説明する技法は、概して、ビデオコーダ(例えば、ビデオエンコーダ20とビデオデコーダ30のいずれかまたは両方)が、スケーリングされたそれらの候補動きベクトルを修正することを可能にし得る。すなわち、本技法は、そのようなビデオコーダが、候補動きベクトルのうちのスケーリングされていないものを修正すること、または場合によってなお一層検討することなしに、動きベクトル予測プロセスのそれらの候補動きベクトルのみがスケーリングされるように修正することを可能にし得る。この点において、本技法は、スケーリングされたそれらの候補動きベクトルのみが修正について検討されるように、候補動きベクトルのすべてを修正することと、候補動きベクトルのうちのいずれも修正しないこととの間の折衷案を提供し得る。
本開示の例に関して説明する動きベクトル成分変位を限定するための技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/またはビデオテレフォニーなどの適用例のために、一方向または双方向のビデオ送信をサポートするように構成され得る。
図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合でき、適切なMUX−DEMUXユニットまたは他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理できる。適用可能な場合、いくつかの例では、MUX−DEMUXユニットはITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法がソフトウェアで部分的に実施されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を行い得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
図2は、動きベクトル予測子を指定するための技法を実施し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、マクロブロックあるいはマクロブロックのパーティションまたはサブパーティションを含むビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを行い得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指し、単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。図2にはインターモード符号化のための構成要素が示されているが、ビデオエンコーダ20はイントラモード符号化のための構成要素をさらに含み得ることを理解されたい。但し、簡潔および明快のために、そのような構成要素は示されていない。
図2に示すように、ビデオエンコーダ20は、符号化されるビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、動き補償ユニット44と、動き推定ユニット42と、メモリ64と、加算器50と、変換ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成ビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図2に図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。全般的にランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、スタティックRAM(SRAM)、フラッシュメモリまたは他の持続的もしくは非持続的なチップベースの記憶媒体を指し得るメモリ64を含むものとして記述しているが、ハードドライブ、オプティカルドライブ、ディスクドライブなどを含む任意のタイプの非一時的コンピュータ可読媒体を利用してよい。
符号化プロセス中に、ビデオエンコーダ20はコーディングされるビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対する受信したビデオブロックのインター予測コーディングを行う。また、イントラ予測ユニット46は、空間圧縮を行うために、コーディングされるブロックと同じフレームまたはスライス中の1つまたは複数の近傍ブロックに対する受信したビデオブロックのイントラ予測コーディングを行い得る。
図2の例にさらに示すように、ビデオエンコーダ20はモード選択ユニット40も含む。モード選択ユニット40は、例えば、誤差結果に基づいてコーディングモード、すなわち、イントラまたはインターのうちの1つを選択し、残差ブロックデータを生成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器50に与え、参照フレームとして使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器62に与え得る。
動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のフレーム(または、他のコード化ユニット)内のコーディングされている現在のブロックに対する予測参照フレーム(または、他のコード化ユニット)内の予測ブロックの変位を示し得る。予測ブロックは、絶対値差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングされるブロックにぴったり一致することがわかるブロックである。動きベクトルはまた、マクロブロックのパーティションの変位を示し得る。動き補償は、動き推定によって特定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット42と動き補償ユニット44とは機能的に統合され得る。
動き推定ユニット42は、ビデオブロックをメモリ64中の参照フレームのビデオブロックと比較することによってインターコード化フレームのビデオブロックの動きベクトルを計算する。動き補償ユニット44はまた、参照フレーム、例えば、IフレームまたはPフレームのサブ整数ピクセルを補間し得る。新生HEVC規格(およびITU H.264規格)は、一般に「リスト」と呼ばれる1つまたは複数のリストデータ構造によって参照フレームを記憶する。従って、メモリ64に記憶されたデータをリストと見なすこともできる。動き推定ユニット42は、メモリ64からの1つまたは複数の参照フレーム(またはリスト)のブロックを現在のフレーム、例えば、PフレームまたはBフレームの符号化されるべきブロックと比較する。メモリ64中の参照フレームがサブ整数ピクセルの値を含むとき、動き推定ユニット42によって計算される動きベクトルは参照フレームのサブ整数ピクセルロケーションを参照し得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。動きベクトルによって識別される(CUを備え得る)参照フレームブロックは予測ブロックと呼ばれることがある。動き補償ユニット44は参照フレームの予測ブロックの誤差値を計算する。
動き補償ユニット44は、予測ブロックに基づいて予測データを計算し得る。ビデオエンコーダ20は、コーディングされている元のビデオブロックから、動き補償ユニット44からの予測データを減算することによって残差ビデオブロックを形成する。加算器50は、この減算演算を行う1つまたは複数の構成要素を表す。変換ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換ユニット52は、概念的にDCTと同様である、H.264規格によって定義される変換などの他の変換を行い得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換をも使用できる。いずれの場合も、変換ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。量子化ユニット54は、ビットレートをさらに低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減させることができる。量子化の程度は、量子化パラメータを調整することによって変更され得る。
量子化の後、エントロピー符号化ユニット56が量子化変換係数をエントロピーコーディングする。例えば、エントロピー符号化ユニット56は、コンテンツ適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、または別のエントロピーコーディング技法を行い得る。エントロピー符号化ユニット56によるエントロピーコーディングの後、符号化ビデオは、別のデバイスに送信されるか、あるいは後の送信または取出しのためにアーカイブされ得る。コンテキスト適応型バイナリ算術コーディングの場合、コンテキストは近傍マクロブロックに基づき得る。
場合によって、エントロピー符号化ユニット56またはビデオエンコーダ20の別のユニットは、エントロピーコーディングに加えて他のコーディング機能を行うように構成され得る。例えば、エントロピー符号化ユニット56はマクロブロックおよびパーティションのCBP値を判断するように構成され得る。また、場合によって、エントロピー符号化ユニット56は、マクロブロックまたはそれのパーティション中の係数のランレングスコーディングを行い得る。特に、エントロピー符号化ユニット56は、マクロブロックまたはパーティション中の変換係数を走査するためにジグザグ走査または他の走査パターンを適用し、さらなる圧縮のためにゼロのランを符号化し得る。エントロピー符号化ユニット56はまた、符号化ビデオビットストリーム中での送信のために適切なシンタックス要素とともにヘッダ情報を構成し得る。
逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化および逆変換を適用して、例えば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。動き補償ユニット44は、メモリ64内の参照フレームストアのフレームのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算し得る。動き補償ユニット44はまた、再構成残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、メモリ64の参照フレームストアに記憶するための再構成ビデオブロックを生成する。再構成ビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
上述のように、動き推定ユニット42は、場合によって、動きベクトルを計算せず、代わりに、4つが空間的候補動きベクトル、1つが時間的候補動きベクトルである候補動きベクトル(例えば、いわゆる「候補リスト」)のリストを特定することがある。一般に、動き推定ユニット42は、動き推定の計算の複雑さを低減し、それによってビデオデータの符号化速度を改善する一方で電力消費も減らすために、動きベクトルの計算を控える。
本開示で説明する技法によれば、動き推定ユニット42は、動きベクトル予測プロセスを行うために、ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定し、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの1つまたは複数をスケーリングして、1つまたは複数のスケーリングされた候補動きベクトルを生成し得る。上述のように、このスケーリングプロセスは、参照フレームに関するピクチャ順序カウントと現在のフレームに関するピクチャ順序カウントとの間の差に基づき得る。より詳細には、動き推定ユニット42は、動きベクトル予測子が、異なる参照ピクチャまたはフレームをポイントする候補動きベクトルから導出されるとき、(HEVCでは「DistScaleFactor」変数として表され得る)いわゆる距離スケール係数を判断し得る。
この動きベクトルスケーリングプロセスでは、動き推定ユニット42は、次式(1)によって定義され得るDistScaleFactorを計算し得る。
DistScaleFactor = (POCcurr - POCref) / (POCmvp_blk - POCmvp_blk_ref) = tb / td. (1)
式(1)では、POCはピクチャ順序カウントを指し、但し、POCcurrは、現在のピクチャまたはフレームに関するピクチャ順序カウントを示し、POCrefは、参照フレームまたはピクチャのピクチャ順序カウントを指し、POCmvp_blkは、候補動きベクトルのうちの選択された1つ(または、言い換えれば、MVP)を有する候補または近傍ブロックが存在するフレームまたはピクチャのピクチャ順序カウントを示し、POCmvp_blk_refは、MVPがポイントする先の参照ブロックが存在するピクチャまたはフレームのピクチャ順序カウントを示す。式(1)における変数「td」は、従って、ブロックMVP_BLKとその参照ブロックとの間のピクチャ順序カウント差(または、言い換えれば、距離)を表すが、式(1)における変数「tb」は、現在のブロックとその参照ブロックとの間のPOC距離を表す。
動き推定ユニット42は、次式(2)に従って、「tx」と示されるスケーリング係数をさらに計算し得る。
tx = (16384 + Abs(td/2))/td (2)
次いで、動き推定ユニット42は、次式(3)に従って、DistScaleFactorを計算し得る。
DistScaleFactor = Clip3(-4096,4095,(tb * tx + 32) >> 6 ) (3)
従って、DistanceScaleFactorは、tbおよびtxに応じて計算され得るが、−4096と4095の指定範囲内になるようにクリッピングされ得る。このDistScaleFactorを使用して、動き推定ユニット42は、次式(4)に従って、候補動きベクトルのうちの1つまたは複数をスケーリングし得る。
ScaledMV = sign(DistScaleFactor×MV)×((abs(DistScaeFactor×MV) + 127)) >> 8) (4)
式(4)では、ScaledMVは、スケーリングされた候補動きベクトルを示し、「sign」は、符号を保つ関数を指し、「abs」は、値の絶対値を計算する関数を指し、「>>」は、ビット右シフト(bit-wise right shift)を示す。
上述のように、POC距離に基づくScaledMVは、ビデオ符号化プロファイルまたはレベルに従って定義され得る、指定範囲(「動きベクトル範囲」、または代替的に「範囲」と呼ばれることがある)を超え得る。結果として、動き推定ユニット42は、本開示で説明する技法を行って、スケーリングされた候補動きベクトルを、指定範囲内になるように修正し得る。その上、動き推定ユニット42は、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、スケーリングされた候補動きベクトルを修正し得る。
動き推定ユニット42は、いくつかの方法で、スケーリングされた候補動きベクトルを修正し得る。例えば、動き推定ユニット42は、スケーリングされた候補動きベクトルの垂直成分を、動きベクトル範囲の境界内にとどまるようにクリッピングし得る。言い換えれば、動き推定ユニット42は、垂直動きベクトル値を最大/最小垂直動きベクトル成分範囲に有効に制限し得る。
別の例として、動き推定ユニット42は、スケーリングされた候補動きベクトルを、動きベクトル範囲の境界内にとどまるようにスケーリングし得る。説明するために、垂直動きベクトル制限の指定範囲を超える、水平成分(mv_x)と垂直成分(mv_y)とを有する所与のスケーリングされた動きベクトルについて、動き推定ユニット42は、y成分を、垂直MV制限に対応するmv_y’に制限し得る。動き推定ユニット42はまた、次式(5)に従って、水平成分mv_xをスケーリングし得る。
mv_x’ = mv_x * mv_y’ / mv_y (5)
式(5)では、mv_x’は、スケーリングされた候補動きベクトルのスケーリングされた水平成分を示す。動き推定ユニット42は、修正された水平成分mv_x’と修正された垂直成分mv_y’の両方を潜在的に有する、修正された、スケーリングされた動きベクトルを出すために、除算演算の近似値を使用して、様々な精度レベルで、式(5)として表現されたこのスケーリング演算を行い得る。
スケーリングされた動きベクトルのうちの1つまたは複数を修正するためのいくつかの異なる方法に関して上記で説明したが、本技法は、動きベクトル予測プロセスを行うとき、候補動きベクトルを修正するための任意の数の方法において行われ得る。例えば、動き推定ユニット42は、ビデオデータの現在のブロックに関する動きベクトル予測子として、複数の候補動きベクトルのうちの1つを選択するより前に、スケーリングされた候補動きベクトルをクリッピングし得る。
また別の例として、動き推定ユニット42は、スケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングし、スケーリングされた候補動きベクトルの水平成分を、水平指定範囲内になるようにクリッピングし得る。これらの場合には、クリッピング演算は、次式(6)に従い得る。
mvLXA = Clip3(-32768, 32767, Sign2(distScaleFactor * mvLXA) *
((Abs(distScaleFactor * mvLXA) + 127) >> 8)) (6)
式(6)では、クリッピング式は、式(4)として上記で示したスケーリング式を含み、スケーリングされた動きベクトルの水平成分および垂直成分の一方または両方を、−32768〜32767の指定範囲にクリッピングする。スケーリングされた動きベクトルは、式(6)では「mvLXA」として示される。言い換えれば、指定範囲は、1/4ピクセル単位で[−32768,32767]として指定され得、但し、この指定範囲は、場合によって、ビデオデコーダおよびビデオエンコーダのうちの1つまたは複数において固定およびハードコーディングされ(fixed and hard-coded)得る。
場合によって、指定範囲は、上述のように、垂直変位制限を含む動きベクトル変位制限を指定し得、但し、動き推定ユニット42は、スケーリングされた候補動きベクトルの垂直成分が垂直変位制限内であるように、スケーリングされた候補動きベクトルの垂直成分をクリッピングし得る。
場合によって、水平成分と垂直成分の両方をクリッピングするのではなく、動き推定ユニット42は、スケーリングされた候補動きベクトルの水平成分のみをクリッピングし得る。この場合も、指定範囲は、水平変位制限を含む動きベクトル変位制限を指定し得、動き推定ユニット42は、スケーリングされた候補動きベクトルの水平成分が水平変位制限内であるように、スケーリングされた候補動きベクトルの水平成分をクリッピングし得る。上述のように、動き推定ユニット42は、水平成分または垂直成分の一方をクリッピングし、次いで、スケーリングされた候補動きベクトルが1つまたは複数の動きベクトル変位制限によって画定されるように、(垂直成分であってもよく、上記の例に限定されるべきではない)他方のクリッピングされていない成分をスケーリングし得る。従って、本技法は、上記で説明した例示的な修正のいずれか1つに限定されるべきではない。
動きベクトル予測子として、候補動きベクトルのうちの1つを選択するために、次いで、動き補償ユニット44は、リストに含まれる候補動きベクトルごとに(この場合も、予測ブロックと呼ばれることがある)参照フレームブロックを識別し得る。次いで動き補償ユニット44は、候補動きベクトルごとに特定された予測ブロックに基づいて、予測データを計算できる。次いでビデオエンコーダ20は、候補動きベクトルの対応する1つについて計算された予測データごとに残差データを特定し、残差データを変換し、トランスコードされた残差データを量子化し、次いで上記で説明した方法で量子化残差データをエントロピー符号化できる。次いでビデオエンコーダ20は逆演算を行って、プルーニング後に残存する候補動きベクトルの各々に関して生成されたこのエントロピー符号化残差データを復号して、再構成ビデオブロックの形態で参照データを再生できる。モード選択ユニット40は、候補動きベクトルの各々に関して生成された再構成ビデオブロックの各々を分析して、候補動きベクトルのうちの1つを選択できる。モード選択ユニット40は、一般にレートひずみ最適化と呼ばれ、通常「RDO」と略されるプロセスを通じて最良のレート対ひずみ比をもたらす候補動きベクトルのうちの1つを選択できる。
RDOは一般に、あるレート(一般に、圧縮されたフレーム、スライスまたはブロックを含む圧縮されたビデオデータが送られる場合のビットレートを指す)を達成するために圧縮された再構成されたフレーム、スライスまたはブロックを、元のフレーム、スライスまたはブロックと比較し、元のフレーム、スライスまたはブロックと所与のレートによる再構成されたフレーム、スライスまたはブロックとの間のひずみの程度を判断することを伴う。モード選択ユニット40は、所与のレートを達成するか、達成することを試みる複数の異なるメトリクスを使用して同じビデオデータを符号化し、これらの様々なメトリクスに関してひずみ最適化プロセスを行い得る。この場合、モード選択ユニット40は、各再構成ビデオブロックのRD出力を比較し、目標レートにおいてひずみが最も小さいものを選択できる。
次いでモード選択ユニット40は、この選択を動き推定ユニット42に示すことができ、続いて動き推定ユニット42は、エントロピー符号化ユニット56とインターフェースして、この選択をエントロピー符号化ユニット56に知らせる。一般に、動き推定ユニット42は、エントロピー符号化ユニット56とインターフェースして、被選択候補動きベクトルを識別するインデックスとともに動きベクトル予測が行われたことを示す。上述のように、動き推定ユニット42は、候補動きベクトルを規定された方法で、例えば、最高振幅から最低振幅へ、もしくは最低振幅から最高振幅へ、または任意の他の規定された方法で配置できる。代替的に、動き推定ユニット42はエントロピー符号化ユニット56に対し、この候補リスト内で候補動きベクトルがどのように配置されたかをシグナリングしてもよい。次いでエントロピー符号化ユニット56は、動きデータを符号化するように動きベクトル予測プロセスが行われたことを示すのに必要であり得る任意の他の情報とともに、このインデックスを符号化できる。エントロピー符号化ユニット56は、ビットストリームにおいて(「mvp_idx」と示され得る)シンタックス要素として符号化インデックスを出力することができ、これは図1に関連して上述した方法で記憶または送信され得る。このようにして、ビデオエンコーダ20は、ビデオデータの現在のブロックに関する動きベクトル予測子として、複数の候補動きベクトルのうちの1つを選択し、動きベクトル予測子に基づいて、ビデオデータの現在のブロックをコーディングし得る。
場合によって、エントロピー符号化ユニット56は、コンテキスト適応型バイナリ算術コーディング(CABAC)と呼ばれる形式のエントロピーコーディングを行う。CABACを行うことにおいて、エントロピー符号化ユニット56は、(対応するコンテキストに関連するビデオデータをより効率的に圧縮するために様々なコンテキストについて指定された様々なコードテーブルである)複数のいわゆるコンテキストのうちの1つを選択することができ、選択されたコンテキストについて定義されたコードテーブルに従って、圧縮された残差データを符号化する。エントロピー符号化ユニット56は、コンテキスト情報に基づいてコンテキストのうちの1つを選択することができ、このコンテキスト情報は、動きベクトル予測を行うときに特定される参照インデックスと、一意の動きベクトル候補の数と、動きベクトル予測を行うときに特定される予測方向とを含み得る。
図3は、符号化ビデオシーケンスを復号するビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、メモリ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、図1および図2の例に示すビデオエンコーダ20のようなビデオエンコーダに関して説明した符号化パスとは概して逆の復号パスを行い得る。概して逆であるが、ビデオデコーダ30は、場合によって、ビデオエンコーダ20によって行われる技法と同様の技法を行うことがある。言い換えれば、ビデオデコーダ30は、ビデオエンコーダ20によって行われるプロセスと実質的に同様のプロセスを行ない得る。さらに、上記のように、ビデオエンコーダ20は、ビデオ符号化を行うプロセスにおいてビデオ復号を行い得る。説明すると、ビデオエンコーダ20の逆量子化ユニット58、逆変換ユニット60、および加算器62は、ビデオデコーダ30の逆量子化ユニット76、逆変換ユニット78、および加算器80と実質的に同様の動作を行い得る。
図3の例に示すように、エントロピー復号ユニット70は符号化ビットストリームを受信し、符号化ビットストリームは説明のために、被選択候補動きベクトル(この場合も、これらの候補動きベクトルは候補動きベクトルまたは候補動きベクトル予測子(「候補MVP」)と呼ばれることがある)を識別する単項コード化インデックスまたは短縮単項コード化インデックスを含むと仮定される。エントロピー復号ユニット70は、ビデオエンコーダ20のエントロピー符号化ユニット56と概して逆のプロセスを行うことにおいて、現在のPUに関する動きベクトルを特定するように動きベクトル予測プロセスが行われたことを示す、現在のPUに関するシンタックス要素または他のコーディングデータを受信できる。このシンタックス要素または他のコーディングデータに応答して、エントロピー復号ユニット70は、ビットストリームから動きベクトル予測子インデックス(mvp_idx)をパースし、この動きベクトル予測子インデックスを動き補償ユニット72に与える。エントロピー復号ユニット70はまた、この動きベクトル予測子インデックスが関連付けられるビデオデータの符号化ブロックを復号し、このビデオデータの符号化ブロックを逆量子化ユニット76に与える。
動き補償ユニット72は、現在のPUに隣接するPUに関する空間的候補動きベクトルと参照フレーム内のコロケートPUに関する時間的候補動きベクトルとを取り出す。エントロピー復号ユニット70はまた、動き補償ユニット72に対し、(一般に、ビットストリームにおいて別のシンタックス要素として)現在のPUに関して識別される参照フレームを提供できる。代替的に、動き補償ユニット72は、AMVPまたはマージモードのいずれかに関して、所定の方法で(例えば、現在のPUが位置する現在のフレームから1つ、2つまたは任意の他の数だけ後退または前進して、など)識別される参照フレームから時間的候補動きベクトルを取り出すように構成され得る。
次いで、動き補償ユニット72は、4つの空間的候補動きベクトルと時間的候補動きベクトルとを含む、候補リストを構成し得る。この候補リストの生成において、動き補償ユニット72は、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの1つまたは複数をスケーリングして、1つまたは複数のスケーリングされた候補動きベクトルを生成し得る。上述のように、このスケーリングプロセスは、参照フレームに関するピクチャ順序カウントと現在のフレームに関するピクチャ順序カウントとの間の差に基づき得る。その上、POC距離に基づく、スケーリングされた動きベクトルは、ビデオ符号化プロファイルまたはレベルに従って定義され得る、指定範囲(「動きベクトル範囲」と呼ばれることがある)を超え得る。結果として、動き補償ユニット72は、本開示で説明する技法を行って、スケーリングされた候補動きベクトルを、指定範囲内になるように修正し得る。その上、動き補償ユニット72は、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、スケーリングされた候補動きベクトルを修正し得る。
動き補償ユニット72は、図1、図2の例において示すビデオエンコーダ20の動き推定ユニット42に関して上記で説明した任意の数の方法において、スケーリングされた候補動きベクトルを修正し得る。例えば、動き補償ユニット72は、スケーリングされた候補動きベクトルの垂直成分を、動きベクトル範囲の境界内にとどまるようにクリッピングし得る。言い換えれば、動き補償ユニット72は、垂直動きベクトル値を最大/最小垂直動きベクトル成分範囲に有効に制限し得る。動き補償ユニット72はまた、スケーリングされた候補動きベクトルの水平成分を、動きベクトル範囲の境界内にとどまるようにクリッピングし得る。言い換えれば、動き補償ユニット72は、水平動きベクトル値を最大/最小水平動きベクトル成分範囲に有効に制限し得る。
別の例として、動き補償ユニット72は、スケーリングされた候補動きベクトルを、動きベクトル範囲の境界内にとどまるようにスケーリングし得る。説明するために、垂直動きベクトル制限の指定範囲を超える、水平成分(mv_x)と垂直成分(mv_y)とを有する所与のスケーリングされた動きベクトルについて、動き補償ユニット72は、y成分を、垂直MV制限に対応するmv_y’に制限し得る。
いずれの場合も、この候補リストを作成した後、次いで、動き補償ユニット72は、動きベクトル予測子インデックスによって識別された、候補リストからの候補動きベクトルのうちの1つを選択する。インターコード化ブロックの場合、動き補償ユニット72は、識別された動きベクトルに基づいて、インター予測データを生成できる。動き補償ユニット72は、この動きベクトルを使用して、メモリ82に記憶された参照フレーム中の予測ブロックを識別し得る。イントラコード化ブロックの場合、イントラ予測ユニット74は、ビットストリーム中で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。逆量子化ユニット76は、ビットストリーム中で供給され、エントロピー復号ユニット70によって復号された量子化ブロック係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、例えば、H.264復号規格によって定義された従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を判断し、同様に、適用すべき逆量子化の程度を判断するための、各マクロブロックについて加算器50によって計算される量子化パラメータQPYの使用を含み得る。
逆変換ユニット60は、逆変換、例えば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域において残差ブロックを生成する。動き補償ユニット72は動き補償ブロックを生成し、場合によって、補間フィルタに基づいて補間を行う。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット72は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
動き補償ユニット72は、シンタックス情報のいくつかを使用して、符号化ビデオシーケンスの(1つまたは複数の)フレームを符号化するために使用されるCUのサイズと、符号化ビデオシーケンスのフレームの各CUがどのように区分されるのかを記述するパーティション情報と、各CUがどのように符号化されるのかを示すモードと、各インター符号化CUのための1つまたは複数の参照フレーム(またはリスト)と、符号化ビデオシーケンスを復号するための他の情報とを判断する。
加算器80は、残差ブロックを、動き補償ユニット72またはイントラ予測ユニットによって生成される対応する予測ブロックと加算して、復号ブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号ビデオブロックは、次いで、HEVC規格において復号ピクチャバッファと呼ばれることがあるメモリ82内の参照フレームストアに記憶され、参照フレームストアは、参照ブロックをその後の動き補償に供給し、また、ディスプレイデバイス(図1のディスプレイデバイス32など)上での提示のために復号ビデオを生成する。
場合によって、一例として、時間的候補動きベクトルを指定するスライスが消失したとき、すなわち、符号化ビットストリームにおいて回復または受信されないときのように、時間的候補動きベクトルは利用できないことがある。この時間的候補動きベクトルが利用不可能であるとき、動き補償ユニット72は、この時間的候補動きベクトルをデフォルト値にセットするか、あるいはこの時間的候補動きベクトルに関するデフォルト動きベクトル情報を特定できる。場合によって、時間的候補動きベクトルに関するこのデフォルト動きベクトル情報は、参照フレームがイントラコーディングされたかどうかに応じて再構成され得る。参照フレームがイントラコーディングされていると判断されたとき、動き補償ユニット72は、現在のフレームに現在の部分があるように、参照フレームの同じロケーションにコロケートされる参照フレームの部分に関して特定された空間的動きベクトルに基づいて、デフォルト候補動きベクトルに関するデフォルト動きベクトル情報を導出できる。同様に、時間的に予測される空間的候補動きベクトルのうちの1つまたは複数は、利用不可能であるか消失していることがあり、現在のフレームに現在の部分があるように、参照フレームの同じロケーションにコロケートされる参照フレームの部分に関して特定された空間的動きベクトルに基づいて、デフォルト候補動きベクトルに関するデフォルト動きベクトル情報を導出できる。
上述のように、マージモードとAMVPという、2つのタイプの動きベクトル予測がある。マージモードの場合、動き補償ユニット72は、デフォルト動き情報を特定するときに、動きベクトル振幅と、予測方向と、参照インデックスとを特定する。AMVPの場合、動き補償ユニット72は、動きベクトル振幅を特定するが、予測方向と参照インデックスとを特定する必要はなく、その理由は、これらが現在のPUに関してビットストリームにおいて別個にシグナリングされることにある。従って、動き補償ユニット72は、デフォルト動き情報の特定を、動きベクトル予測を行うためにシグナリングされたモード、すなわち現在のPUに関して、シグナリングされた動きベクトル予測のタイプがマージモードであるか、それともAMVPであるかに依拠し得る。
図4は、本開示で説明する動きベクトル予測技法の態様を行う際の、図2の例に示すビデオエンコーダ20、および/または図3の例に示すビデオデコーダ30などのビデオコーダの例示的な動作を示すフローチャートである。初めに、ビデオエンコーダ20を最初に参照すると、動き推定ユニット42は、上記のように、現在のCUに対応する現在のPUに関する空間的候補動きベクトルを特定できる(90)。動き推定ユニット42は、次に、この場合も上記のように、参照フレーム内のコロケートPUからの、現在のPUに関する時間的候補動きベクトルを特定できる(92)。空間的候補動きベクトルと時間的候補動きベクトルのいずれかまたは両方を特定する際に、動き推定ユニット42は、上記で説明した方法で、候補動きベクトルのうちの1つまたは複数をスケーリングできる(94)。加えて、動き推定ユニット42は、上記で説明したように、スケーリングされた動きベクトルのうちの1つまたは複数を修正できる(95)。
1つまたは複数のスケーリングされた動きベクトルを修正した後、動き推定ユニット42は、空間的および時間的候補動きベクトルの候補リストを作成し、現在のPUに関するMVPとして、候補動きベクトルのうちの1つを選択できる(96、98)。この選択は、上述のように、ビデオエンコーダ20がRDO解析を行うことを伴うことがあり、そこで、次いで、候補動きベクトルのうちの選択された1つが、上記で説明した方法でビデオデータのブロックをコーディングするために使用される。エントロピー符号化ユニット56は、候補動きベクトルのうちの選択された1つを、ビットストリームにおける動きベクトル予測子インデックス(mvp_idx)として指定し、それによって、ビデオデコーダが候補動きベクトルのうちの選択された1つを識別することを可能にし得る。
ビデオデコーダ30に関して、動き補償ユニット72は、動き推定ユニット42に関して上記で説明した動作と同様の動作を行い得る。すなわち、動き補償ユニット72は、上記のように、現在のCUに対応する現在のPUに関する空間的候補動きベクトルを特定できる(90)。動き補償ユニット72は、次に、この場合も上記のように、参照フレーム内のコロケートPUからの、現在のPUに関する時間的候補動きベクトルを特定できる(92)。空間的候補動きベクトルと時間的候補動きベクトルのいずれかまたは両方を特定する際に、動き補償ユニット72は、上記で説明した方法で、候補動きベクトルのうちの1つまたは複数をスケーリングできる(94)。加えて、動き補償ユニット72は、上記で説明したように、スケーリングされた動きベクトルのうちの1つまたは複数を、指定範囲内になるように修正できる(95)。
1つまたは複数のスケーリングされた動きベクトルを修正した後、動き補償ユニット72は、空間的および時間的候補動きベクトルの候補リストを作成し、現在のPUに関するMVPとして、候補動きベクトルのうちの1つを選択できる(96、98)。エントロピー復号ユニット70は、ビットストリームから動きベクトル予測子インデックス(mvp_idx)をパースし、この動きベクトル予測子インデックスを、現在のPUに関するMVPとして候補動きベクトルのうちの1つを選択する際に使用するために、動き補償ユニット72に与えることができる。
図5は、本開示で説明する動きベクトル予測技法の他の態様を行う際の、図2の例に示すビデオエンコーダ20および/または図3の例に示すビデオデコーダ30などのビデオコーダの例示的な動作を示すフローチャートである。初めに、ビデオエンコーダ20を最初に参照すると、動き推定ユニット42は、上記のように、現在のCUに対応する現在のPUに関する空間的候補動きベクトルを特定できる(100)。動き推定ユニット42は、次に、この場合も上記のように、参照フレーム内のコロケートPUからの、現在のPUに関する時間的候補動きベクトルを特定できる(102)。空間的候補動きベクトルと時間的候補動きベクトルのいずれかまたは両方を特定する際に、動き推定ユニット42は、上記で説明した方法で、候補動きベクトルのうちの1つまたは複数をスケーリングできる(104)。
次に、動き推定ユニット42は、空間的および時間的候補動きベクトルの候補リストを作成し、現在のPUに関するMVPとして、候補動きベクトルのうちの1つを選択できる(106、108)。この選択は、上述のように、ビデオエンコーダ20がRDO解析を行うことを伴うことがあり、そこで、次いで、候補動きベクトルのうちの選択された1つが、上記で説明した方法でビデオデータのブロックをコーディングするために使用される。このRDO解析を行うより前に、動き推定ユニット42は、最初に、候補動きベクトルのうちの選択された1つがスケーリングされたかどうかを判断できる(109)。スケーリングされていない場合(「いいえ」109)、動き推定ユニット42は、候補動きベクトルのうちの現在の1つを検討する際に、いかなる追加の動作も行わなくてよい。但し、スケーリングされた場合(「はい」109)、動き推定ユニット42は、候補動きベクトルのうちの選択された1つを、上記で説明した方法で、指定範囲内になるように修正できる(110)。上述のように、エントロピー符号化ユニット56は、候補動きベクトルのうちの選択された1つを、ビットストリームにおける動きベクトル予測子インデックス(mvp_idx)として指定し、それによって、ビデオデコーダが候補動きベクトルのうちの選択された1つを識別することを可能にし得る。
ビデオデコーダ30に関して、動き補償ユニット72は、上記のように、現在のCUに対応する現在のPUに関する空間的候補動きベクトルを特定できる(100)。動き補償ユニット72は、次に、この場合も上記のように、参照フレーム内のコロケートPUからの、現在のPUに関する時間的候補動きベクトルを特定できる(102)。空間的候補動きベクトルと時間的候補動きベクトルのいずれかまたは両方を特定する際に、動き補償ユニット72は、上記で説明した方法で、候補動きベクトルのうちの1つまたは複数をスケーリングできる(104)。
次に、動き補償ユニット72は、空間的および時間的候補動きベクトルの候補リストを作成し、現在のPUに関するMVPとして、候補動きベクトルのうちの1つを選択できる(106、108)。候補動きベクトルのうちの1つを選択するために、エントロピー復号ユニット70は、ビットストリームから動きベクトル予測子インデックス(mvp_idx)をパースし、この動きベクトル予測子インデックスを、現在のPUに関するMVPとして候補動きベクトルのうちの1つを選択する際に使用するために、動き補償ユニット72に与えることができる。次いで、動き補償ユニット72は、候補動きベクトルのうちの選択された1つがスケーリングされたかどうかを判断できる(109)。スケーリングされていない場合(「いいえ」109)、動き補償ユニット72は、候補動きベクトルのうちの現在の1つを検討する際に、いかなる追加の動作も行わなくてよい。但し、スケーリングされた場合(「はい」109)、動き補償ユニット72は、候補動きベクトルのうちの選択された1つを、上記で説明した方法で修正できる(110)。
図6は、そこから動きベクトル予測子候補が動きベクトル予測モードに関して生成される、空間的近傍ブロックと時間的近傍ブロックとを示す概念図である。現在のHEVCテストモデル(HM)では、2つの動きベクトル予測モード、すなわち、マージモードと、適応型動きベクトル予測(AMVP)モードとがサポートされている。いずれのモードにおいても、ビデオエンコーダ20およびビデオデコーダ30の各々は、現在のビデオブロックまたはPU112に関する動きベクトルをそこから特定するべき、同じ動きベクトル予測子候補リストを生成する。マージモードおよびAMVPモードにおける動きベクトル予測子候補は、例えば、図6に示す近傍ブロックA、B、C、DおよびEなど、現在のPU112の空間的近傍ブロックに関する動きベクトルを含み得る。動きベクトル予測子候補はまた、例えば、図4に示す近傍ブロックT1およびT2など、現在のPU112のコロケートブロック114の時間的近傍ブロックに関する動きベクトルを含み得る。場合によって、動きベクトル予測子候補は、近傍ブロックのうちの2つ以上に関する動きベクトルの組合せ、例えば、2つ以上の動きベクトルの平均値、中央値、または重み付き平均値を含み得る。
AMVPモードの場合、動きベクトル予測子候補リストは、空間的近傍ブロックまたは時間的近傍ブロックに関する動きベクトルを含むように生成され得る。次いで、ビデオエンコーダ20は、候補リストから、現在のPU112に関する最も正確な動きベクトル予測子候補を選択する。一例では、ビデオエンコーダ20は、現在のPU112に関する動きベクトル予測子として、近傍ブロックのうちの1つの動きベクトルから生成された動きベクトル予測子候補を選択し得る。別の例では、ビデオエンコーダ20は、現在のPU112に関する動きベクトル予測子として、近傍ブロックのうちの2つ以上の動きベクトルから生成された動きベクトル予測子候補を選択し得る。この場合、動きベクトル予測子は、2つ以上の動きベクトルの平均値、中央値、または重み付き平均値として計算され得る。次いで、ビデオエンコーダ20は、動きベクトル予測子と、現在のPU112に関する動きベクトルとの間の動きベクトル差分を判断する。次いで、ビデオエンコーダ20は、動きベクトル差分と、現在のPU112に関する動きベクトル予測子インデックスとをビデオデコーダ30にシグナリングする。
ビデオデコーダ30は、ビデオブロックに関する動きベクトル差分と動きベクトル予測子インデックスとを含む符号化ビデオブロックを表すビットストリームを受信する。ビデオブロックを復号するために、ビデオデコーダ30は、ビデオエンコーダ20と同じ方法で動きベクトル予測子候補リストを生成する。ビデオデコーダ30は、シグナリングされた現在のPU112に関する動きベクトル予測子インデックスを候補リストに適用することによって、現在のPU112に関する動きベクトル予測子を選択する。次いで、ビデオデコーダ30は、シグナリングされた動きベクトル差分を選択された動きベクトル予測子と組み合わせて、現在のPU112に関する動きベクトルを再構成する。ビデオデコーダ30は、現在のPU112に関する動きベクトルを使用して、参照ピクチャ中の予測ブロックの位置を特定し、符号化ビデオブロックを再構成する。
マージモードの場合、動きベクトル予測子候補リストは、空間的近傍ブロックまたは時間的近傍ブロックの各々に関して、動きベクトルと、参照ピクチャインデックスと、予測方向とを含むすべての動き情報を含むように生成され得る。次いで、ビデオエンコーダ20は、候補リスト中の近傍ブロックから、現在のPU112に関する最も正確な動き情報を選択する。現在のPU112に関する動きベクトル差分と、参照ピクチャインデックスと、予測方向とをビデオデコーダ30にシグナリングする代わりに、ビデオエンコーダ20は、近傍ブロックに関して選択された動き情報を現在のPU112に関する最終動き情報として直接使用する。このようにして、ビデオエンコーダ20は、現在のPU112に関してすべての動き情報がそこから導出されるべきである隣接ブロックを示すためのインデックスのみを、ビデオデコーダ30にシグナリングする。
ビデオデコーダ30は、ビデオブロックに関するインデックス値を含む符号化ビデオブロックを表すビットストリームを受信する。ビデオブロックを復号するために、ビデオデコーダ30は、ビデオエンコーダ20と同じ方法で動きベクトル予測子候補リストを生成する。ビデオデコーダ30は、近傍ブロックの動き情報を選択するために、シグナリングされたインデックスを候補リストに適用することによって、現在のPU112に関する動きベクトルと、参照ピクチャインデックスと、予測方向とを含むすべての動き情報を判断する。次いで、ビデオデコーダ30は、現在のPU112に関する動きベクトルを使用して、予測ブロックの位置を特定し、符号化ビデオブロックを再構成する。
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装する場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータデータ記憶媒体または通信媒体を含み得る。データ記憶媒体は、本開示で説明した技法を実施するための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく、例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。同様に、いかなる接続も適切にコンピュータ可読媒体と称される。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
符号は、1つもしくは複数のデジタル信号プロセッサ(DSP)など1つもしくは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価な集積もしくは個別論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実施に好適な任意の他の構造のいずれかを指す。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に提供され得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素において十分に実施され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(例えば、チップセット)を含む、多種多様なデバイスまたは装置において実施され得る。本開示では、開示する技法を行うように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットは、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明したように1つまたは複数のプロセッサを含む、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって実現され得る。
様々な例が説明された。これらおよび他の例は以下の特許請求の範囲の範疇にある。
DistScaleFactor = Clip3(-4096,4095,(tb * tx + 32) >> 6 ) (3)
従って、DistScaleFactorは、tbおよびtxに応じて計算され得るが、−4096と4095の指定範囲内になるようにクリッピングされ得る。このDistScaleFactorを使用して、動き推定ユニット42は、次式(4)に従って、候補動きベクトルのうちの1つまたは複数をスケーリングし得る。
逆変換ユニット78は、逆変換、例えば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域において残差ブロックを生成する。動き補償ユニット72は動き補償ブロックを生成し、場合によって、補間フィルタに基づいて補間を行う。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット72は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
図4は、本開示で説明する動きベクトル予測技法の態様を行う際の、図2の例に示すビデオエンコーダ20、および/または図3の例に示すビデオデコーダ30などのビデオコーダの例示的な動作を示すフローチャートである。初めに、ビデオエンコーダ20を最初に参照すると、動き推定ユニット42は、上記のように、現在のCUに対応する現在のPUに関する空間的候補動きベクトルを特定できる(90)。動き推定ユニット42は、次に、この場合も上記のように、参照フレーム内のコロケートPUからの、現在のPUに関する時間的候補動きベクトルを特定できる(92)。空間的候補動きベクトルと時間的候補動きベクトルのいずれかまたは両方を特定する際に、動き推定ユニット42は、上記で説明した方法で、候補動きベクトルのうちの1つまたは複数をスケーリングできる(94)。加えて、動き推定ユニット42は、上記で説明したように、スケーリングされた候補動きベクトルのうちの1つまたは複数を修正できる(95)。
1つまたは複数のスケーリングされた候補動きベクトルを修正した後、動き推定ユニット42は、空間的および時間的候補動きベクトルの候補リストを作成し、現在のPUに関するMVPとして、候補動きベクトルのうちの1つを選択できる(96、98)。この選択は、上述のように、ビデオエンコーダ20がRDO解析を行うことを伴うことがあり、そこで、次いで、候補動きベクトルのうちの選択された1つが、上記で説明した方法でビデオデータのブロックをコーディングするために使用される。エントロピー符号化ユニット56は、候補動きベクトルのうちの選択された1つを、ビットストリームにおける動きベクトル予測子インデックス(mvp_idx)として指定し、それによって、ビデオデコーダが候補動きベクトルのうちの選択された1つを識別することを可能にし得る。
1つまたは複数のスケーリングされた候補動きベクトルを修正した後、動き補償ユニット72は、空間的および時間的候補動きベクトルの候補リストを作成し、現在のPUに関するMVPとして、候補動きベクトルのうちの1つを選択できる(96、98)。エントロピー復号ユニット70は、ビットストリームから動きベクトル予測子インデックス(mvp_idx)をパースし、この動きベクトル予測子インデックスを、現在のPUに関するMVPとして候補動きベクトルのうちの1つを選択する際に使用するために、動き補償ユニット72に与えることができる。
図6は、そこから動きベクトル予測子候補が動きベクトル予測モードに関して生成される、空間的近傍ブロックと時間的近傍ブロックとを示す概念図である。現在のHEVCテストモデル(HM)では、2つの動きベクトル予測モード、すなわち、マージモードと、適応型動きベクトル予測(AMVP)モードとがサポートされている。いずれのモードにおいても、ビデオエンコーダ20およびビデオデコーダ30の各々は、現在のビデオブロックまたはPU112に関する動きベクトルをそこから特定するべき、同じ動きベクトル予測子候補リストを生成する。マージモードおよびAMVPモードにおける動きベクトル予測子候補は、例えば、図6に示す近傍ブロックA、B、C、DおよびEなど、現在のPU112の空間的近傍ブロックに関する動きベクトルを含み得る。動きベクトル予測子候補はまた、例えば、図6に示す近傍ブロックT1およびT2など、現在のPU112のコロケートブロック114の時間的近傍ブロックに関する動きベクトルを含み得る。場合によって、動きベクトル予測子候補は、近傍ブロックのうちの2つ以上に関する動きベクトルの組合せ、例えば、2つ以上の動きベクトルの平均値、中央値、または重み付き平均値を含み得る。
様々な例が説明された。これらおよび他の例は以下の特許請求の範囲の範疇にある。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータをコーディングする方法であって、
動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、
前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの1つまたは複数をスケーリングして1つまたは複数のスケーリングされた候補動きベクトルを生成することと、
前記スケーリングされた候補動きベクトルを指定範囲内になるように修正することと、
前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの1つを選択することと、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることと
を備える方法。
[C2]
前記スケーリングされた候補動きベクトルを修正することは、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、前記スケーリングされた候補動きベクトルを修正することを備える、C1に記載の方法。
[C3]
前記スケーリングされた候補動きベクトルを修正することは、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの1つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングすることを備える、C1に記載の方法。
[C4]
前記動きベクトル予測プロセスはマージモードおよび高度動きベクトル予測モードのうちの1つである、C1に記載の方法。
[C5]
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、C1に記載の方法。
[C6]
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの1つまたは複数において固定およびハードコーディングされる、C1に記載の方法。
[C7]
前記指定範囲は1/4ピクセル単位で[−32768,32767]として指定される、C1に記載の方法。
[C8]
前記スケーリングされた動きベクトルを修正することは、
前記スケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングすることと、
前記スケーリングされた候補動きベクトルの水平成分を、水平指定範囲内になるようにクリッピングすることと
を含む、C1に記載の方法。
[C9]
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記スケーリングされた候補動きベクトルを修正することは、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように、前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングすることをさらに備える、C1に記載の方法。
[C10]
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記スケーリングされた候補動きベクトルを修正することは、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように、前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングすることをさらに備える、C1に記載の方法。
[C11]
前記スケーリングされた候補動きベクトルを修正することは、前記スケーリングされた候補動きベクトルが前記1つまたは複数の動きベクトル変位制限によって画定されるように、前記スケーリングされた候補動きベクトルをスケーリングすることを備える、C1に記載の方法。
[C12]
前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つに基づいて、前記ビデオデータの現在のブロックに関する動きベクトルを特定することをさらに備え、前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記ビデオデータの現在のブロックをコーディングすることは前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを復号することを備える、C1に記載の方法。
[C13]
前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つに基づいて、前記ビデオデータの現在のブロックに関する動きベクトルを特定することをさらに備え、前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記ビデオデータの現在のブロックをコーディングすることは前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを符号化することを備える、C1に記載の方法。
[C14]
前記動きベクトル予測プロセスの高度動きベクトル予測モードを行うために動きベクトル予測子インデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つを識別することと、
前記複数の候補動きベクトルのうちの前記選択された1つと前記ビデオデータの現在のブロックに関する動きベクトルとの間の動きベクトル差分を復号して前記ビデオデータの現在のブロックに関する動きベクトルを特定することと
をさらに備え、
前記ビデオデータの現在のブロックをコーディングすることは、前記ビデオデータの現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することを備える、C1に記載の方法。
[C15]
前記動きベクトル予測プロセスのマージモードを行うためにインデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つを識別することと、
前記複数の候補動きベクトルのうちの前記選択された1つに等しくなるように前記ビデオデータの現在のブロックに関する動きベクトルを特定することと
をさらに備え、
前記ビデオデータの現在のブロックをコーディングすることは、前記ビデオデータの前記現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することを備える、C1に記載の方法。
[C16]
動きベクトル予測プロセスを行ってビデオデータをコーディングするように構成されたビデオコーディングデバイスであって、
前記動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの1つまたは複数をスケーリングして1つまたは複数のスケーリングされた候補動きベクトルを生成することと、前記スケーリングされた候補動きベクトルを指定範囲内になるように修正することと、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの1つを選択することと、動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることとを行うように構成されたプロセッサを備えるビデオコーディングデバイス。
[C17]
前記スケーリングされた候補動きベクトルを修正するとき、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、前記スケーリングされた候補動きベクトルを修正することを行うように、前記プロセッサがさらに構成される、C16に記載のビデオコーディングデバイス。
[C18]
前記プロセッサは、
前記スケーリングされた候補動きベクトルを修正するとき、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの1つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングすることを行うようにさらに構成される、C16に記載のビデオコーディングデバイス。
[C19]
前記動きベクトル予測プロセスはマージモードおよび高度動きベクトル予測モードのうちの1つである、C16に記載のビデオコーディングデバイス。
[C20]
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、C16に記載のビデオコーディングデバイス。
[C21]
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの1つまたは複数において固定およびハードコーディングされる、C16に記載のビデオコーディングデバイス。
[C22]
前記指定範囲は1/4ピクセル単位で[−32768,32767]として指定される、C16に記載のビデオコーディングデバイス。
[C23]
前記プロセッサは、
前記スケーリングされた動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングすることと、前記スケーリングされた候補動きベクトルの水平成分を水平指定範囲内になるようにクリッピングすることとを行うようにさらに構成される、C16に記載のビデオコーディングデバイス。
[C24]
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記プロセッサは、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように、前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングすることを行うようにさらに構成される、C16に記載のビデオコーディングデバイス。
[C25]
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記プロセッサは、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように、前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングすることを行うようにさらに構成される、C16に記載のビデオコーディングデバイス。
[C26]
前記プロセッサは、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルが前記1つまたは複数の動きベクトル変位制限によって画定されるように前記スケーリングされた候補動きベクトルをスケーリングすることを行うようにさらに構成される、C16に記載のビデオコーディングデバイス。
[C27]
前記プロセッサは、前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つに基づいて前記ビデオデータの現在のブロックに関する動きベクトルを特定することを行うようにさらに構成され、
前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記プロセッサは、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを復号することを行うようにさらに構成される、C16に記載のビデオコーディングデバイス。
[C28]
前記プロセッサは、前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つに基づいて前記ビデオデータの現在のブロックに関する動きベクトルを特定することを行うようにさらに構成され、
前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記プロセッサは、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを符号化することを行うようにさらに構成される、C16に記載のビデオコーディングデバイス。
[C29]
前記プロセッサは、
前記動きベクトル予測プロセスの高度動きベクトル予測モードを行うために動きベクトル予測子インデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つを識別することと、前記複数の候補動きベクトルのうちの前記選択された1つと前記ビデオデータの現在のブロックに関する動きベクトルとの間の動きベクトル差分を復号して前記ビデオデータの現在のブロックに関する動きベクトルを特定することと、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することとを行うようにさらに構成される、C16に記載のビデオコーディングデバイス。
[C30]
前記プロセッサは、
前記動きベクトル予測プロセスのマージモードを行うためにインデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つを識別することと、前記複数の候補動きベクトルのうちの前記選択された1つに等しくなるように前記ビデオデータの現在のブロックに関する動きベクトルを特定することと、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの前記現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することとを行うようにさらに構成される、C16に記載のビデオコーディングデバイス。
[C31]
動きベクトル予測プロセスを行ってビデオデータをコーディングするように構成されたビデオコーディングデバイスであって、
前記動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定するための手段と、
前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの1つまたは複数をスケーリングして1つまたは複数のスケーリングされた候補動きベクトルを生成するための手段と、
前記スケーリングされた候補動きベクトルを指定範囲内になるように修正するための手段と、
前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの1つを選択するための手段と、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングするための手段と
を備えるビデオコーディングデバイス。
[C32]
前記スケーリングされた候補動きベクトルを修正するための前記手段は、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに前記スケーリングされた候補動きベクトルを修正するための手段を備える、C31に記載のビデオコーディングデバイス。
[C33]
前記スケーリングされた候補動きベクトルを修正するための前記手段は、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの1つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングするための手段を備える、C31に記載のビデオコーディングデバイス。
[C34]
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、C31に記載のビデオコーディングデバイス。
[C35]
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの1つまたは複数において固定およびハードコーディングされる、C31に記載のビデオコーディングデバイス。
[C36]
前記指定範囲は1/4ピクセル単位で[−32768,32767]として指定される、C31に記載のビデオコーディングデバイス。
[C37]
前記スケーリングされた動きベクトルを修正するための前記手段は、
前記スケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングするための手段と、
前記スケーリングされた候補動きベクトルの水平成分を水平指定範囲内になるようにクリッピングするための手段と
を含む、C31に記載のビデオコーディングデバイス。
[C38]
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記スケーリングされた候補動きベクトルを修正するための前記手段は、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングするための手段をさらに備える、C31に記載のビデオコーディングデバイス。
[C39]
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記スケーリングされた候補動きベクトルを修正するための前記手段は、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングするための手段をさらに備える、C31に記載のビデオコーディングデバイス。
[C40]
実行されたとき、1つまたは複数のプロセッサに、
動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、
前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの1つまたは複数をスケーリングして1つまたは複数のスケーリングされた候補動きベクトルを生成することと、
前記スケーリングされた候補動きベクトルを指定範囲内になるように修正することと、
前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの1つを選択することと、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることと
を行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
[C41]
前記命令は、実行されたとき、前記1つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、前記スケーリングされた候補動きベクトルを修正することを行わせる、C40に記載の非一時的コンピュータ可読記憶媒体。
[C42]
前記命令は、実行されたとき、前記1つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの1つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングすることを行わせる、C40に記載の非一時的コンピュータ可読記憶媒体。
[C43]
実行されたとき、前記1つまたは複数のプロセッサに、
前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの1つを選択することと、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることと
を行わせる命令をさらに記憶した、C40に記載の非一時的コンピュータ可読記憶媒体。
[C44]
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、C40に記載の非一時的コンピュータ可読記憶媒体。
[C45]
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの1つまたは複数において固定およびハードコーディングされる、C40に記載の非一時的コンピュータ可読記憶媒体。
[C46]
前記指定範囲は1/4ピクセル単位で[−32768,32767]として指定される、C40に記載の非一時的コンピュータ可読記憶媒体。
[C47]
前記命令は、実行されたとき、前記1つまたは複数のプロセッサに、前記スケーリングされた動きベクトルを修正するとき、
前記スケーリングされた候補動きベクトルの垂直成分を垂直指定範囲内になるようにクリッピングすることと、
前記スケーリングされた候補動きベクトルの水平成分を、水平指定範囲内になるようにクリッピングすることと
を行わせる、C40に記載の非一時的コンピュータ可読記憶媒体。
[C48]
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記命令は、実行されたとき、前記1つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように、前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングすることを行わせる、C40に記載の非一時的コンピュータ可読記憶媒体。
[C49]
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記命令は、実行されたとき、前記1つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように、前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングすることを行わせる、C40に記載の非一時的コンピュータ可読記憶媒体。

Claims (49)

  1. ビデオデータをコーディングする方法であって、
    動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、
    前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの1つまたは複数をスケーリングして1つまたは複数のスケーリングされた候補動きベクトルを生成することと、
    前記スケーリングされた候補動きベクトルを指定範囲内になるように修正することと、
    前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの1つを選択することと、
    動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることとを備える方法。
  2. 前記スケーリングされた候補動きベクトルを修正することは、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、前記スケーリングされた候補動きベクトルを修正することを備える、請求項1に記載の方法。
  3. 前記スケーリングされた候補動きベクトルを修正することは、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの1つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングすることを備える、請求項1に記載の方法。
  4. 前記動きベクトル予測プロセスはマージモードおよび高度動きベクトル予測モードのうちの1つである、請求項1に記載の方法。
  5. 前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、請求項1に記載の方法。
  6. 前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの1つまたは複数において固定およびハードコーディングされる、請求項1に記載の方法。
  7. 前記指定範囲は1/4ピクセル単位で[−32768,32767]として指定される、請求項1に記載の方法。
  8. 前記スケーリングされた動きベクトルを修正することは、
    前記スケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングすることと、
    前記スケーリングされた候補動きベクトルの水平成分を、水平指定範囲内になるようにクリッピングすることとを含む、請求項1に記載の方法。
  9. 前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
    前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
    前記スケーリングされた候補動きベクトルを修正することは、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように、前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングすることをさらに備える、請求項1に記載の方法。
  10. 前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
    前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
    前記スケーリングされた候補動きベクトルを修正することは、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように、前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングすることをさらに備える、請求項1に記載の方法。
  11. 前記スケーリングされた候補動きベクトルを修正することは、前記スケーリングされた候補動きベクトルが前記1つまたは複数の動きベクトル変位制限によって画定されるように、前記スケーリングされた候補動きベクトルをスケーリングすることを備える、請求項1に記載の方法。
  12. 前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つに基づいて、前記ビデオデータの現在のブロックに関する動きベクトルを特定することをさらに備え、前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
    前記ビデオデータの現在のブロックをコーディングすることは前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを復号することを備える、請求項1に記載の方法。
  13. 前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つに基づいて、前記ビデオデータの現在のブロックに関する動きベクトルを特定することをさらに備え、前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
    前記ビデオデータの現在のブロックをコーディングすることは前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを符号化することを備える、請求項1に記載の方法。
  14. 前記動きベクトル予測プロセスの高度動きベクトル予測モードを行うために動きベクトル予測子インデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つを識別することと、
    前記複数の候補動きベクトルのうちの前記選択された1つと前記ビデオデータの現在のブロックに関する動きベクトルとの間の動きベクトル差分を復号して前記ビデオデータの現在のブロックに関する動きベクトルを特定することとをさらに備え、
    前記ビデオデータの現在のブロックをコーディングすることは、前記ビデオデータの現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することを備える、請求項1に記載の方法。
  15. 前記動きベクトル予測プロセスのマージモードを行うためにインデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つを識別することと、
    前記複数の候補動きベクトルのうちの前記選択された1つに等しくなるように前記ビデオデータの現在のブロックに関する動きベクトルを特定することとをさらに備え、
    前記ビデオデータの現在のブロックをコーディングすることは、前記ビデオデータの前記現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することを備える、請求項1に記載の方法。
  16. 動きベクトル予測プロセスを行ってビデオデータをコーディングするように構成されたビデオコーディングデバイスであって、
    前記動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの1つまたは複数をスケーリングして1つまたは複数のスケーリングされた候補動きベクトルを生成することと、前記スケーリングされた候補動きベクトルを指定範囲内になるように修正することと、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの1つを選択することと、動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることとを行うように構成されたプロセッサを備えるビデオコーディングデバイス。
  17. 前記スケーリングされた候補動きベクトルを修正するとき、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、前記スケーリングされた候補動きベクトルを修正することを行うように、前記プロセッサがさらに構成される、請求項16に記載のビデオコーディングデバイス。
  18. 前記プロセッサは、
    前記スケーリングされた候補動きベクトルを修正するとき、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの1つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングすることを行うようにさらに構成される、請求項16に記載のビデオコーディングデバイス。
  19. 前記動きベクトル予測プロセスはマージモードおよび高度動きベクトル予測モードのうちの1つである、請求項16に記載のビデオコーディングデバイス。
  20. 前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、請求項16に記載のビデオコーディングデバイス。
  21. 前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの1つまたは複数において固定およびハードコーディングされる、請求項16に記載のビデオコーディングデバイス。
  22. 前記指定範囲は1/4ピクセル単位で[−32768,32767]として指定される、請求項16に記載のビデオコーディングデバイス。
  23. 前記プロセッサは、
    前記スケーリングされた動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングすることと、前記スケーリングされた候補動きベクトルの水平成分を水平指定範囲内になるようにクリッピングすることとを行うようにさらに構成される、請求項16に記載のビデオコーディングデバイス。
  24. 前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
    前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
    前記プロセッサは、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように、前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングすることを行うようにさらに構成される、請求項16に記載のビデオコーディングデバイス。
  25. 前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
    前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
    前記プロセッサは、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように、前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングすることを行うようにさらに構成される、請求項16に記載のビデオコーディングデバイス。
  26. 前記プロセッサは、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルが前記1つまたは複数の動きベクトル変位制限によって画定されるように前記スケーリングされた候補動きベクトルをスケーリングすることを行うようにさらに構成される、請求項16に記載のビデオコーディングデバイス。
  27. 前記プロセッサは、前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つに基づいて前記ビデオデータの現在のブロックに関する動きベクトルを特定することを行うようにさらに構成され、
    前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
    前記プロセッサは、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを復号することを行うようにさらに構成される、請求項16に記載のビデオコーディングデバイス。
  28. 前記プロセッサは、前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つに基づいて前記ビデオデータの現在のブロックに関する動きベクトルを特定することを行うようにさらに構成され、
    前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
    前記プロセッサは、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを符号化することを行うようにさらに構成される、請求項16に記載のビデオコーディングデバイス。
  29. 前記プロセッサは、
    前記動きベクトル予測プロセスの高度動きベクトル予測モードを行うために動きベクトル予測子インデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つを識別することと、前記複数の候補動きベクトルのうちの前記選択された1つと前記ビデオデータの現在のブロックに関する動きベクトルとの間の動きベクトル差分を復号して前記ビデオデータの現在のブロックに関する動きベクトルを特定することと、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することとを行うようにさらに構成される、請求項16に記載のビデオコーディングデバイス。
  30. 前記プロセッサは、
    前記動きベクトル予測プロセスのマージモードを行うためにインデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された1つを識別することと、前記複数の候補動きベクトルのうちの前記選択された1つに等しくなるように前記ビデオデータの現在のブロックに関する動きベクトルを特定することと、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの前記現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することとを行うようにさらに構成される、請求項16に記載のビデオコーディングデバイス。
  31. 動きベクトル予測プロセスを行ってビデオデータをコーディングするように構成されたビデオコーディングデバイスであって、
    前記動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定するための手段と、
    前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの1つまたは複数をスケーリングして1つまたは複数のスケーリングされた候補動きベクトルを生成するための手段と、
    前記スケーリングされた候補動きベクトルを指定範囲内になるように修正するための手段と、
    前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの1つを選択するための手段と、
    動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングするための手段とを備えるビデオコーディングデバイス。
  32. 前記スケーリングされた候補動きベクトルを修正するための前記手段は、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに前記スケーリングされた候補動きベクトルを修正するための手段を備える、請求項31に記載のビデオコーディングデバイス。
  33. 前記スケーリングされた候補動きベクトルを修正するための前記手段は、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの1つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングするための手段を備える、請求項31に記載のビデオコーディングデバイス。
  34. 前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、請求項31に記載のビデオコーディングデバイス。
  35. 前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの1つまたは複数において固定およびハードコーディングされる、請求項31に記載のビデオコーディングデバイス。
  36. 前記指定範囲は1/4ピクセル単位で[−32768,32767]として指定される、請求項31に記載のビデオコーディングデバイス。
  37. 前記スケーリングされた動きベクトルを修正するための前記手段は、
    前記スケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングするための手段と、
    前記スケーリングされた候補動きベクトルの水平成分を水平指定範囲内になるようにクリッピングするための手段とを含む、請求項31に記載のビデオコーディングデバイス。
  38. 前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
    前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
    前記スケーリングされた候補動きベクトルを修正するための前記手段は、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングするための手段をさらに備える、請求項31に記載のビデオコーディングデバイス。
  39. 前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
    前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
    前記スケーリングされた候補動きベクトルを修正するための前記手段は、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングするための手段をさらに備える、請求項31に記載のビデオコーディングデバイス。
  40. 実行されたとき、1つまたは複数のプロセッサに、
    動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、
    前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの1つまたは複数をスケーリングして1つまたは複数のスケーリングされた候補動きベクトルを生成することと、
    前記スケーリングされた候補動きベクトルを指定範囲内になるように修正することと、
    前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの1つを選択することと、
    動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることとを行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
  41. 前記命令は、実行されたとき、前記1つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、前記スケーリングされた候補動きベクトルを修正することを行わせる、請求項40に記載の非一時的コンピュータ可読記憶媒体。
  42. 前記命令は、実行されたとき、前記1つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの1つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングすることを行わせる、請求項40に記載の非一時的コンピュータ可読記憶媒体。
  43. 実行されたとき、前記1つまたは複数のプロセッサに、
    前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの1つを選択することと、
    動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることとを行わせる命令をさらに記憶した、請求項40に記載の非一時的コンピュータ可読記憶媒体。
  44. 前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、請求項40に記載の非一時的コンピュータ可読記憶媒体。
  45. 前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの1つまたは複数において固定およびハードコーディングされる、請求項40に記載の非一時的コンピュータ可読記憶媒体。
  46. 前記指定範囲は1/4ピクセル単位で[−32768,32767]として指定される、請求項40に記載の非一時的コンピュータ可読記憶媒体。
  47. 前記命令は、実行されたとき、前記1つまたは複数のプロセッサに、前記スケーリングされた動きベクトルを修正するとき、
    前記スケーリングされた候補動きベクトルの垂直成分を垂直指定範囲内になるようにクリッピングすることと、
    前記スケーリングされた候補動きベクトルの水平成分を、水平指定範囲内になるようにクリッピングすることとを行わせる、請求項40に記載の非一時的コンピュータ可読記憶媒体。
  48. 前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
    前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
    前記命令は、実行されたとき、前記1つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように、前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングすることを行わせる、請求項40に記載の非一時的コンピュータ可読記憶媒体。
  49. 前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
    前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
    前記命令は、実行されたとき、前記1つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように、前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングすることを行わせる、請求項40に記載の非一時的コンピュータ可読記憶媒体。
JP2017204423A 2011-12-22 2017-10-23 ビデオコーディングのための動きベクトル予測の実行 Pending JP2018050308A (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201161579465P 2011-12-22 2011-12-22
US61/579,465 2011-12-22
US201261584096P 2012-01-06 2012-01-06
US61/584,096 2012-01-06
US13/709,555 US9762904B2 (en) 2011-12-22 2012-12-10 Performing motion vector prediction for video coding
US13/709,555 2012-12-10

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014549122A Division JP2015506606A (ja) 2011-12-22 2012-12-11 ビデオコーディングのための動きベクトル予測の実行

Publications (1)

Publication Number Publication Date
JP2018050308A true JP2018050308A (ja) 2018-03-29

Family

ID=48654534

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014549122A Pending JP2015506606A (ja) 2011-12-22 2012-12-11 ビデオコーディングのための動きベクトル予測の実行
JP2017204423A Pending JP2018050308A (ja) 2011-12-22 2017-10-23 ビデオコーディングのための動きベクトル予測の実行

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014549122A Pending JP2015506606A (ja) 2011-12-22 2012-12-11 ビデオコーディングのための動きベクトル予測の実行

Country Status (18)

Country Link
US (1) US9762904B2 (ja)
EP (1) EP2795900A1 (ja)
JP (2) JP2015506606A (ja)
KR (1) KR102057350B1 (ja)
CN (1) CN104012096A (ja)
AU (1) AU2012355669B2 (ja)
BR (1) BR112014015056B1 (ja)
CA (1) CA2858979C (ja)
HK (1) HK1197330A1 (ja)
IL (1) IL232776A (ja)
IN (1) IN2014CN04420A (ja)
MY (1) MY167467A (ja)
PH (1) PH12014501244B1 (ja)
RU (1) RU2573227C1 (ja)
SG (2) SG10201605087YA (ja)
TW (1) TWI535269B (ja)
UA (1) UA114617C2 (ja)
WO (1) WO2013096018A1 (ja)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9510009B2 (en) * 2010-05-20 2016-11-29 Thomson Licensing Methods and apparatus for adaptive motion vector candidate ordering for video encoding and decoding
CN103765886B (zh) 2011-08-29 2017-06-13 苗太平洋控股有限公司 以amvp模式产生预测区块的方法
MX340433B (es) * 2011-12-16 2016-07-08 Panasonic Ip Corp America Metodo de codificacion de imagenes de video, dispositivo de codificacion de imagenes de video, metodo de decodificacion de imagenes de video, dispositivo de decodificacion de imagenes de video y dispositivo de codificacion/decodificacion de imagenes de video.
WO2013109092A1 (ko) * 2012-01-18 2013-07-25 한국전자통신연구원 영상 부호화 및 복호화 방법 및 장치
US20130235926A1 (en) * 2012-03-07 2013-09-12 Broadcom Corporation Memory efficient video parameter processing
WO2013156678A1 (en) * 2012-04-16 2013-10-24 Nokia Corporation An apparatus, a method and a computer program for video coding and decoding
US9313021B2 (en) * 2013-08-29 2016-04-12 National Chiao Tung University Secret communication method with self-authentication capability
AU2013403224B2 (en) 2013-10-14 2018-10-18 Microsoft Technology Licensing, Llc Features of intra block copy prediction mode for video and image coding and decoding
CN105659606B (zh) 2013-10-14 2019-06-18 微软技术许可有限责任公司 用于视频和图像编码和解码的方法、系统和介质
US11109036B2 (en) 2013-10-14 2021-08-31 Microsoft Technology Licensing, Llc Encoder-side options for intra block copy prediction mode for video and image coding
WO2015056566A1 (ja) * 2013-10-15 2015-04-23 ソニー株式会社 画像処理装置および方法
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
KR102353787B1 (ko) 2014-01-03 2022-01-19 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩/디코딩에서의 블록 벡터 예측
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
KR102401946B1 (ko) 2014-03-04 2022-05-24 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 인트라 블록 카피 예측에서의 스킵 모드 및 블록 플립핑
KR102311815B1 (ko) 2014-06-19 2021-10-13 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 통합된 인트라 블록 카피 및 인터 예측 모드
WO2016055001A1 (en) * 2014-10-08 2016-04-14 Mediatek Inc. Method of block vector clipping and coding for screen content coding and video coding
US10856009B2 (en) 2014-09-04 2020-12-01 Mediatek Inc. Method of block vector clipping and coding for screen content coding and video coding
JP2017535145A (ja) 2014-09-30 2017-11-24 マイクロソフト テクノロジー ライセンシング,エルエルシー 波面並列処理が可能にされた場合のピクチャ内予測モードに関する規則
US9992512B2 (en) * 2014-10-06 2018-06-05 Mediatek Inc. Method and apparatus for motion vector predictor derivation
US9591325B2 (en) 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
WO2016197314A1 (en) 2015-06-09 2016-12-15 Microsoft Technology Licensing, Llc Robust encoding/decoding of escape-coded pixels in palette mode
CN106331722B (zh) 2015-07-03 2019-04-26 华为技术有限公司 图像预测方法和相关设备
US10873760B2 (en) * 2017-04-07 2020-12-22 Futurewei Technologies, Inc. Motion vector (MV) constraints and transformation constraints in video coding
CN110651474B (zh) * 2017-05-18 2022-02-18 联发科技股份有限公司 用于视频编解码的运动向量限制方法和装置
EP3410717A1 (en) * 2017-05-31 2018-12-05 Thomson Licensing Methods and apparatus for candidate list pruning
US10785494B2 (en) * 2017-10-11 2020-09-22 Qualcomm Incorporated Low-complexity design for FRUC
WO2019077197A1 (en) * 2017-10-16 2019-04-25 Nokia Technologies Oy METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR VIDEO ENCODING AND DECODING
CN117354538A (zh) * 2017-10-27 2024-01-05 松下电器(美国)知识产权公司 编码装置、解码装置、生成装置、发送装置和存储介质
SG11202003925XA (en) * 2017-11-01 2020-05-28 Vid Scale Inc Sub-block motion derivation and decoder-side motion vector refinement for merge mode
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
WO2019194513A1 (ko) * 2018-04-01 2019-10-10 엘지전자 주식회사 어파인 예측을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2019199141A1 (ko) * 2018-04-13 2019-10-17 엘지전자 주식회사 비디오 코딩 시스템에서 인터 예측 방법 및 장치
CN108401115A (zh) * 2018-04-28 2018-08-14 北京心领神绘科技有限公司 一种便携图像采集终端的自动修正采集装置及方法
US10873748B2 (en) * 2018-05-12 2020-12-22 Qualcomm Incorporated Storage of high precision motion vectors in video coding
KR20210025537A (ko) 2018-06-29 2021-03-09 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 하나 또는 다수의 룩업 테이블들을 사용하여 이전에 코딩된 모션 정보를 순서대로 저장하고 이를 사용하여 후속 블록들을 코딩하는 개념
CN110662043B (zh) 2018-06-29 2021-12-21 北京字节跳动网络技术有限公司 一种用于处理视频数据的方法、装置和计算机可读介质
CN110662056B (zh) 2018-06-29 2022-06-07 北京字节跳动网络技术有限公司 哪个查找表需要更新或不更新
JP7328330B2 (ja) 2018-06-29 2023-08-16 北京字節跳動網絡技術有限公司 Lutにおける動き候補のチェック順序
BR112020024142A2 (pt) 2018-06-29 2021-03-02 Beijing Bytedance Network Technology Co., Ltd. método para processamento de vídeo, aparelho para codificação de dados de vídeo, meio de armazenamento e meio de gravação legíveis por computador não transitório
WO2020003283A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Conditions for updating luts
AU2019293670B2 (en) 2018-06-29 2023-06-08 Beijing Bytedance Network Technology Co., Ltd. Update of look up table: FIFO, constrained FIFO
WO2020003270A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Number of motion candidates in a look up table to be checked according to mode
CA3238058A1 (en) * 2018-06-30 2020-01-02 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Merge mode-based inter-prediction method and apparatus
WO2020008348A1 (en) 2018-07-02 2020-01-09 Beijing Bytedance Network Technology Co., Ltd. Order of rounding and pruning in lamvr
WO2020055169A1 (ko) * 2018-09-11 2020-03-19 김기백 인터 예측을 이용한 영상 부호화/복호화 방법 및 장치
GB2590310B (en) 2018-09-12 2023-03-22 Beijing Bytedance Network Tech Co Ltd Conditions for starting checking HMVP candidates depend on total number minus K
CN113170172A (zh) 2018-11-21 2021-07-23 瑞典爱立信有限公司 具有子块合并简化的视频图片编码方法及相关装置
CN113196771B (zh) * 2018-12-21 2023-12-22 北京字节跳动网络技术有限公司 基于运动矢量精度的运动矢量范围
KR102648159B1 (ko) 2019-01-10 2024-03-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut 업데이트의 호출
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
JP7201906B2 (ja) * 2019-01-15 2023-01-11 日本電信電話株式会社 参照領域決定装置及びプログラム
CN113330739A (zh) 2019-01-16 2021-08-31 北京字节跳动网络技术有限公司 Lut中的运动候选的插入顺序
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
CN112333450B (zh) * 2019-08-05 2023-07-14 腾讯美国有限责任公司 一种视频编解码的方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013088697A1 (ja) * 2011-12-16 2013-06-20 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号方法、動画像復号装置、および動画像符号化復号装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151784A (en) 1991-04-30 1992-09-29 At&T Bell Laboratories Multiple frame motion estimation
TW321748B (ja) 1994-02-23 1997-12-01 Rca Thomson Licensing Corp
EP1819173B1 (en) 1997-06-25 2009-07-29 Nippon Telegraph and Telephone Corporation Motion vector predictive encoding apparatus and decoding apparatus
US6862372B2 (en) 2001-12-27 2005-03-01 Koninklijke Philips Electronics N.V. System for and method of sharpness enhancement using coding information and local spatial features
US7177356B2 (en) 2002-01-11 2007-02-13 Webtv Networks, Inc. Spatially transcoding a video stream
HUP0301368A3 (en) 2003-05-20 2005-09-28 Amt Advanced Multimedia Techno Method and equipment for compressing motion picture data
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
MXPA06003925A (es) 2003-10-09 2006-07-05 Thomson Licensing Proceso de derivacion de modo directo para el ocultamiento de error.
US20060120612A1 (en) 2004-12-08 2006-06-08 Sharath Manjunath Motion estimation techniques for video encoding
GB2431798A (en) 2005-10-31 2007-05-02 Sony Uk Ltd Motion vector selection based on integrity
KR100934674B1 (ko) 2006-03-30 2009-12-31 엘지전자 주식회사 비디오 신호를 디코딩/인코딩하기 위한 방법 및 장치
RU2395174C1 (ru) 2006-03-30 2010-07-20 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ и устройство для декодирования/кодирования сигнала видео
JP2008067194A (ja) * 2006-09-08 2008-03-21 Toshiba Corp フレーム補間回路、フレーム補間方法、表示装置
US8213509B2 (en) 2006-10-06 2012-07-03 Calos Fund Limited Liability Company Video coding on parallel processing systems
US9883202B2 (en) 2006-10-06 2018-01-30 Nxp Usa, Inc. Scaling video processing complexity based on power savings factor
CA2665781C (en) 2006-10-30 2014-02-18 Nippon Telegraph And Telephone Corporation Predicted reference information generating method, video encoding and decoding methods, apparatuses therefor, programs therefor, and storage media which store the programs
US8265157B2 (en) 2007-02-07 2012-09-11 Lsi Corporation Motion vector refinement for MPEG-2 to H.264 video transcoding
US8160150B2 (en) * 2007-04-10 2012-04-17 Texas Instruments Incorporated Method and system for rate distortion optimization
US8660176B2 (en) 2008-09-26 2014-02-25 Qualcomm Incorporated Resolving geometric relationships among video data units
JP5401071B2 (ja) 2008-10-09 2014-01-29 株式会社Nttドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、動画像処理システムおよび動画像処理方法
US8411750B2 (en) 2009-10-30 2013-04-02 Qualcomm Incorporated Global motion parameter estimation using block-based motion vectors
US8879632B2 (en) 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
US9124898B2 (en) 2010-07-12 2015-09-01 Mediatek Inc. Method and apparatus of temporal motion vector prediction

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013088697A1 (ja) * 2011-12-16 2013-06-20 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号方法、動画像復号装置、および動画像符号化復号装置

Also Published As

Publication number Publication date
IN2014CN04420A (ja) 2015-09-04
RU2573227C1 (ru) 2016-01-20
UA114617C2 (uk) 2017-07-10
BR112014015056A2 (pt) 2017-06-13
BR112014015056B1 (pt) 2022-07-12
PH12014501244A1 (en) 2014-09-15
CA2858979A1 (en) 2013-06-27
JP2015506606A (ja) 2015-03-02
CA2858979C (en) 2020-04-14
AU2012355669B2 (en) 2017-04-06
AU2012355669A1 (en) 2014-07-24
US20130163668A1 (en) 2013-06-27
KR102057350B1 (ko) 2019-12-18
HK1197330A1 (en) 2015-01-09
CN104012096A (zh) 2014-08-27
IL232776A0 (en) 2014-07-31
MY167467A (en) 2018-08-29
SG11201402601SA (en) 2014-08-28
EP2795900A1 (en) 2014-10-29
TWI535269B (zh) 2016-05-21
IL232776A (en) 2017-09-28
PH12014501244B1 (en) 2014-09-15
SG10201605087YA (en) 2016-08-30
KR20140110957A (ko) 2014-09-17
US9762904B2 (en) 2017-09-12
WO2013096018A1 (en) 2013-06-27
TW201334552A (zh) 2013-08-16

Similar Documents

Publication Publication Date Title
JP2018050308A (ja) ビデオコーディングのための動きベクトル予測の実行
JP7233218B2 (ja) ビデオコーディングのためにブロックの複数のクラスのためのフィルタをマージすること
JP6254136B2 (ja) 統合されたマージモードおよび適応動きベクトル予測モード候補選択
US9319716B2 (en) Performing motion vector prediction for video coding
JP2019533363A (ja) ビデオコーディングのための動きベクトルコーディング
JP2018530246A (ja) ビデオコーディングのために位置依存の予測組合せを使用する改善されたビデオイントラ予測
JP2016184936A (ja) 適応型重複ブロック動き補償
JP2017508346A (ja) ビデオコーディングのための適応的な動きベクトル分解シグナリング
JP2014531873A (ja) ビデオコーディングのための動きベクトル予測子候補クリッピング削除
JP2014525198A (ja) ビデオコーディングにおける予測データのバッファリング
US20210185323A1 (en) Inter prediction method and apparatus, video encoder, and video decoder

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190122

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190709