JP2020522200A - 映像コーディングにおける動き補償予測のオプティカルフロー推定 - Google Patents

映像コーディングにおける動き補償予測のオプティカルフロー推定 Download PDF

Info

Publication number
JP2020522200A
JP2020522200A JP2019566280A JP2019566280A JP2020522200A JP 2020522200 A JP2020522200 A JP 2020522200A JP 2019566280 A JP2019566280 A JP 2019566280A JP 2019566280 A JP2019566280 A JP 2019566280A JP 2020522200 A JP2020522200 A JP 2020522200A
Authority
JP
Japan
Prior art keywords
reference frame
frame portion
frame
optical flow
warped
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
JP2019566280A
Other languages
English (en)
Other versions
JP6905093B2 (ja
Inventor
シュー、ヤオウー
リー、ボーハン
ハン、ジンニン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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
Priority claimed from US15/683,684 external-priority patent/US11284107B2/en
Priority claimed from US15/817,369 external-priority patent/US10659788B2/en
Application filed by Google LLC filed Critical Google LLC
Publication of JP2020522200A publication Critical patent/JP2020522200A/ja
Application granted granted Critical
Publication of JP6905093B2 publication Critical patent/JP6905093B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/19Methods 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 using optimisation based on Lagrange multipliers
    • 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
    • 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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Landscapes

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

Abstract

ビデオシーケンスにおける現在のフレームの複数のブロックのインター予測に使用できるオプティカルフロー参照フレーム部分(例えば、ブロックまたはフレーム全体)を生成する。前方参照フレームおよび後方参照フレームは、現在のフレームの複数の画素のそれぞれの動きフィールドを生成するオプティカルフロー推定において使用される。複数の動きフィールドを用いて複数の参照フレームの一部分またはすべての画素を現在のフレームの複数の画素にワーピングする。複数のワーピングされた参照フレーム画素をブレンディングして、オプティカルフロー参照フレーム部分を形成する。インター予測は、現在のフレームの複数の符号化または復号化部分の一部分として実行されてもよい。

Description

デジタルビデオストリームは、一連のフレームまたは静止画像を使用して映像を表現する。デジタルビデオは、例えば、ビデオ会議、高精細度ビデオエンターテイメント、ビデオ広告、またはユーザ生成ビデオの共有を含む様々なアプリケーションに使用される。デジタルビデオストリームは、大量のデータを含み、ビデオデータの処理、送信、または記憶のために、コンピューティングデバイスの大量のコンピューティングリソースまたは通信リソースを消費する。圧縮および他の符号化技術を含むビデオストリームにおけるデータ量を低減するための様々なアプローチが提案されている。
圧縮のある技術は、参照フレームを使用して、符号化されるべき現在のブロックに対応する予測ブロックを生成する。現在のブロック自体の値の代わりに、予測ブロックと現在のブロックとの間の差分が符号化されて、符号化されるデータ量を低減することができる。
本開示は、概して、ビデオデータの符号化および復号化に関し、より詳細には、ビデオ圧縮における動き補償予測のためのブロックに基づくオプティカルフロー推定の使用に関する。またビデオ圧縮における動き補償予測のための並置参照フレームを補間できるフレームレベルに基づくオプティカルフロー推定が説明される。
本開示は、符号化および復号化の方法および装置を説明する。本開示の実施形態に従った方法は、ビデオシーケンス内にある予測されるべき第1のフレームの第1のフレーム部分を決定すること、第1のフレームの前方インター予測のためにビデオシーケンスから第1の参照フレームを決定すること、第1のフレームの後方インター予測のためにビデオシーケンスから第2の参照フレームを決定すること、第1の参照フレームおよび第2の参照フレームを用いてオプティカルフロー推定を実行することによって、第1のフレーム部分のインター予測のためのオプティカルフロー参照フレーム部分を生成すること、オプティカルフロー参照フレームを使用して、第1のフレーム部分に対して予測プロセスを実行すること、を行う。第1のフレームおよびオプティカルフロー参照フレーム部分は、例えば、ブロックであるかまたはフレーム全体であり得る。
本開示の実施形態に従った装置は、非一時的な記憶媒体またはメモリと、プロセッサと、を備える。前記媒体は、プロセッサが実行して方法を実行可能な命令を含む非一時的な記憶媒体と、を含み、前記方法は、ビデオシーケンス内の予測されるべき第1のフレームを決定すること、前記第1のフレームの前方インター予測のための第1の参照フレームおよび第1のフレームの後方インター予測のための第2の参照フレームが利用できるかどうかを判定すること、を含む。前記方法は、第1の参照フレームおよび第2の参照フレームの両方が利用できると判定したことに応答して、オプティカルフロー推定プロセスへの入力として、第1の参照フレームおよび第2の参照フレームを使用して、第1のフレーム部分の複数の画素の対応する動きフィールドを生成すること、複数の動きフィールドを使用して第1の参照フレーム部分を第1のフレーム部分にワーピングして第1のワーピングされた参照フレーム部分を形成することであって、第1の参照フレーム部分は、第1のフレーム部分の複数の画素と並置された第1の参照フレームの複数の画素を含む、形成すること、複数の動きフィールドを使用して第2の参照フレーム部分を第1のフレーム部分にワーピングして第2のワーピングされた参照フレーム部分を形成することであって、第2の参照フレーム部分は、第1のフレーム部分の複数の画素と並置された第2の参照フレームの複数の画素を含む、形成すること、第1のワーピングされた参照フレーム部分および第2のワーピングされた参照フレーム部分をブレンディングして、第1のフレームのブロックのインター予測のためにオプティカルフロー参照フレーム部分を形成することを、含む。
本開示の実施形態に従った他の装置は、非一時的な記憶媒体またはメモリと、プロセッサと、を備える。前記媒体は、プロセッサが実行して方法を実行可能な命令を含み、前記方法は、ビデオシーケンスからの第1の参照フレームおよびビデオシーケンスからの第2の参照フレームを使用して、ビデオシーケンスの第1のフレームのブロックのインター予測のためにオプティカルフロー参照フレーム部分を生成すること、オプティカルフロー推定の第1の処理レベルで第1のフレーム部分の複数の画素の動きフィールドを初期化することであって、第1の処理レベルは、第1のフレーム部分内のダウンスケーリングされた動きを示し、複数レベルのうちの特定のレベルを含む、初期化すること、複数レベルの各レベルに対して、複数の動きフィールドを使用して第1の参照フレーム部分を第1のフレーム部分にワーピングして、第1のワーピングされた参照フレーム部分を形成すること、複数の動きフィールドを使用して第2の参照フレーム部分を第1のフレーム部分にワーピングして、第2のワーピングされた参照フレーム部分を形成すること、オプティカルフロー推定を使用して、第1のワーピングされた参照フレーム部分と第2のワーピングされた参照フレーム部分との間の複数の動きフィールドを推定すること、第1のワーピングされた参照フレーム部分と第2のワーピングされた参照フレーム部分との間の複数の動きフィールドを使用して、第1のフレーム部分の複数の画素の複数の動きフィールドを更新すること、を含む。前記方法は、複数レベルのうちの最後のレベルに対して、更新された複数の動きフィールドを使用して第1の参照フレーム部分を第1のフレーム部分にワーピングして、最後の第1のワーピングされた参照フレーム部分を形成すること、更新された複数の動きフィールドを使用して第2の参照フレーム部分を第1のフレーム部分にワーピングして、最後の第2のワーピングされた参照フレーム部分を形成すること、最後の第1のワーピングされた参照フレーム部分および第2のワーピングされた参照フレーム部分をブレンディングして、オプティカルフロー参照フレーム部分を形成すること、を含む。
本開示の実施形態に従った他の装置は、非一時的な記憶媒体またはメモリと、プロセッサと、を備える。前記媒体は、プロセッサが実行して方法を実行可能な命令を含み、前記方法は、ビデオシーケンス内にある予測されるべき第1のフレームの第1のフレーム部分を決定すること、第1のフレームの前方インター予測のためにビデオシーケンスから第1の参照フレームを決定すること、第1のフレームの後方インター予測のためにビデオシーケンスから第2の参照フレームを決定すること、第1の参照フレームおよび第2の参照フレームを用いてオプティカルフロー推定を実行することによって、第1のフレーム部分のインター予測のためにオプティカルフロー参照フレーム部分を生成すること、オプティカルフロー参照フレームを使用して、第1のフレーム部分に対して予測プロセスを実行すること、を含む。
本開示のこれらおよび他の態様は、以下の実施形態の詳細な説明、添付の特許請求の範囲および添付の図面において開示される。
本明細書の記載は、特に明記しない限り、以下に記載される添付の図面を参照し、いくつかの図面に亘って同様の参照番号が同様の構成を参照している。
ビデオ符号化および復号化システムの概略図である。 送信局または受信局を具体化することができるコンピューティングデバイスの一例のブロック図である。 符号化され、続いて復号化される典型的なビデオストリームの図である。 本開示の実施形態に従った符号化器のブロック図である。 本開示の実施形態に従った復号化器のブロック図である。 参照フレームバッファの一例のブロック図である。 ビデオシーケンスの表示順序における一群のフレームを示す図である。 図7の一群のフレームのコーディング順序の一例を示す図である。 本明細書の開示に従った動きフィールドの線形投影を説明するために使用される図である。 オプティカルフロー推定を使用して生成された参照フレームの少なくとも一部分を使用したビデオフレームの動き補償予測のプロセスのフローチャート図である。 オプティカルフロー参照フレーム部分を生成するプロセスのフローチャート図である。 オプティカルフロー参照フレーム部分を生成する別のプロセスのフローチャート図である。 図11,12のプロセスを示す図である。 オブジェクトのオクルージョンを示す図である。 復号化器を最適化する技術を示す図である。
ビデオストリームは、ビデオストリームを送信または格納するのに必要な帯域幅を低減するために、様々な技術によって圧縮され得る。ビデオストリームは、圧縮を含むビットストリームに符号化され、その後、復号化器に送信され、復号化器はビデオストリームを復号化または圧縮解除して、視聴または後処理するために準備する。ビデオストリームの圧縮は、空間的補償予測および/または動き補償予測によってビデオ信号の空間的および時間的相関をよく利用する。インター予測は、例えば、1つまたは複数の動きベクトルを使用して、以前に符号化され復号化された画素を使用して符号化されるべき現在のブロックに類似するブロック(予測ブロックとも呼称される)を生成する。1つまたは複数の動きベクトルおよび2つのブロック間の差を符号化することによって、符号化された信号を受信する復号化器は、現在のブロックを再作成することができる。インター予測は、動き補償予測とも呼称され得る。
インター予測プロセスで予測ブロックを生成するために使用される各動きベクトルは、現在のフレーム以外のフレーム、すなわち、参照フレームを指す。複数の参照フレームは、ビデオストリームのシーケンスにおける現在のフレームの前または後に位置され、参照フレームとして使用される前に再構成されるフレームであり得る。場合によっては、ビデオシーケンスの現在のフレームの複数のブロックを符号化または復号化するために使用される3つの参照フレームがあってもよい。あるフレームは、ゴールデンフレーム(golden frame)と呼称され得るフレームである。他のフレームは、直近の符号化または復号化されたフレームである。最終フレームは、シーケンス内の1つまたは複数のフレームの前に符号化または復号化されるが、出力表示順序ではそれらのフレームの後に表示される代替参照フレームである。このように、代替参照フレームは、後方予測に使用可能な参照フレームである。1つまたは複数の前方および/または後方参照フレームが使用されて、ブロックを符号化または復号化することができる。現在のフレーム内のブロックを符号化または復号化するために使用されるときの参照フレームの有効性は、結果として得られる信号対雑音比またはレート歪み(rate-distortion)の他の測定値に基づいて測定され得る。
この技術では、複数の予測ブロックを形成する複数の画素は、1つまたは複数の利用可能な参照フレームから直接取得される。複数の参照画素ブロックまたはそれらの線形結合は、現在のフレーム内の任意のコーディングブロックの予測に使用される。この直接的なブロックに基づく予測は、複数の参照フレームから利用可能な実際の動きアクティビティを取得しない。このため、動き補償予測の精度が低下する可能性がある。
利用可能な双方向の参照フレーム(例えば、1つまたは複数の前方参照フレームおよび1つまたは複数の後方参照フレーム)からの動き情報をより十分に利用するために、本明細書の実施形態は、オプティカルフロー(optical flow)によって計算された画素毎の動きフィールドを使用して映像信号における真の動きアクティビティを推定する、現在のコーディングフレーム部分と並置された(collocated)複数の参照フレーム部分を説明する。複数の参照フレームから直接的に決定される従来のブロックに基づく動き補償予測の能力を超える複雑な非並進運動アクティビティ(complicated non-translational motion activity)の追跡を可能にする複数の参照フレーム部分が補間される。このような複数の参照フレーム部分の使用によって、予測品質が向上され得る。本明細書で使用する場合、フレーム部分は、ブロック、スライス(slice)、またはフレーム全体など、フレーム全体の一部分を指す。あるフレームのフレーム部分は、別のフレームのフレーム部分と、それらが同じ寸法を有しかつ各フレームの複数の寸法の同じ画素位置にある場合に並置される。
映像圧縮および再構成で使用するための複数の参照フレーム部分を補間するオプティカルフロー推定の使用のさらなる詳細は、本明細書の教示が具体化されるシステムを最初に参照して本明細書で説明される。
図1は、ビデオ符号化及び復号化システム100の概略図である。送信局102は、例えば、図2に記載されているようなハードウェアの内部構成を有するコンピュータとすることができる。しかしながら、送信局102の他の適切な実施形態も可能である。例えば、送信局102の処理を複数の装置に分散させることができる。
ネットワーク104は、ビデオストリームの符号化および復号化のために、送信局102および受信局106を接続することができる。具体的には、ビデオストリームを送信局102で符号化することができ、符号化されたビデオストリームを受信局106で復号化することができる。ネットワーク104は、例えばインターネットであってもよい。ネットワーク104は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、仮想プライベートネットワーク(VPN)、携帯電話ネットワーク、または送信局102から、この例では、受信局106にビデオストリームを転送する任意の他の手段とすることができる。
受信局106は、一例では、図2に記載されたようなハードウェアの内部構成を有するコンピュータとすることができる。しかしながら、受信局106の他の適切な実施形態も可能である。例えば、受信局106の処理を複数の装置に分散させることができる。
ビデオ符号化および復号化システム100の他の実施形態も可能である。例えば、実施形態はネットワーク104を省略することができる。別の実施形態では、ビデオストリームを符号化し、後で受信局106並びに非一時な的記憶媒体またはメモリを有する任意の他の装置に送信するために格納することができる。一実施形態では、受信局106は、符号化されたビデオストリームを(例えば、ネットワーク104、コンピュータバス、および/または何らかの通信経路を介して)受信し、後の復号化のためにビデオストリームを記憶する。一実施形態では、ネットワーク104を介して符号化されたビデオを伝送するためにリアルタイム転送プロトコル(RTP:real-time transport protocol)が使用される。別の実施形態では、ビデオストリーミングプロトコルに基づくハイパーテキスト転送プロトコル(HTTP:Hypertext Transfer Protocol)などのRTP以外の転送プロトコルが使用されてもよい。
ビデオ会議システムで使用される場合、例えば、送信局102および/または受信局106は、以下に説明するように、ビデオストリームを符号化および復号化する能力を含むことができる。例えば、受信局106は、ビデオ会議サーバ(例えば、送信局102)から符号化されたビデオビットストリームを受信して復号化および視聴し、さらにそのビデオビットストリームを他の参加者による復号化および視聴のために符号化してビデオ会議サーバに送信するビデオ会議参加者とし得る。
図2は、送信局または受信局を実施することができるコンピューティングデバイス200の一例のブロック図である。例えば、コンピューティングデバイス200は、図1の送信局102および受信局106の一方または両方を実施することができる。コンピューティングデバイス200は、複数のコンピューティングデバイスを含むコンピューティングシステムの形態、または例えば、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータなどの単一のコンピューティングデバイスの形態とすることができる。
コンピューティングデバイス200内のCPU202は、中央処理装置とすることができる。代替的に、CPU202は、現在存在するか、または今後開発される情報を操作または処理することができる任意の他のタイプのデバイスまたは複数のデバイスであってもよい。開示された実施態様は、図示のような特定のプロセッサ、例えばCPU202で実施することができるが、複数のプロセッサを使用して速度と効率の利点を達成することができる。
コンピューティングデバイス200内のメモリ204は、実施形態では読み出し専用メモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスであってもよい。任意の他の適切なタイプの記憶装置または非一時的な記憶媒体をメモリ204として使用することができる。メモリ204は、CPU202がバス212を使用してアクセスするコードおよびデータ206を含むことができる。メモリ204は、オペレーティングシステム208およびアプリケーションプログラム210をさらに含むことができ、アプリケーションプログラム210は、本明細書に記載された方法をCPU202が実行するのを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム210は、アプリケーション1〜Nを含むことができ、アプリケーション1〜Nは、本明細書で説明する方法を実行するビデオ符号化アプリケーションをさらに含む。コンピューティングデバイス200はまた、例えば、モバイルコンピューティングデバイスと共に使用されるメモリカードとすることができる二次ストレージ214を含むことができる。ビデオ通信セッションは、かなりの量の情報を含み得るので、それらは、二次ストレージ214に全体的または部分的に記憶され、処理のために必要に応じてメモリ204にロードされる。
コンピューティングデバイス200は、ディスプレイ218などの1つまたは複数の出力デバイスを含むこともできる。ディスプレイ218は、一例では、ディスプレイを、タッチ入力を感知するように動作可能なタッチセンシティブエレメントと組み合わせたタッチセンシティブディスプレイであってもよい。ディスプレイ218は、バス212を介してCPU202に接続することができる。ユーザがコンピューティングデバイス200をプログラムするかまたは他の方法で使用することを可能にする他の出力デバイスが、ディスプレイ218に加えて、またはディスプレイ218に代えて設けられてもよい。出力デバイスがディスプレイであるか、またはディスプレイを含む場合、ディスプレイは、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイ、または有機LED(OLED)などの発光ダイオード(LED)ディスプレイを含む様々な方法で実施することができる。
コンピューティングデバイス200は、コンピューティングデバイス200を操作するユーザの画像等の画像を検出することができる、例えば、カメラなどの撮像デバイス220、または現在または将来開発される任意の他の撮像デバイス220を含むか、または撮像デバイス220と通信することができる。撮像デバイス220は、コンピューティングデバイス200を操作するユーザの方に向けられるように配置することができる。一例では、撮像デバイス220の位置および光軸は、視野が、ディスプレイ218に直接隣接する領域であって、その領域からディスプレイ218が視認可能な領域を含むように構成することができる。
コンピューティングデバイス200は、コンピューティングデバイス200の近くの音を感知することができる、例えば、マイクロホンなどの音声感知デバイス222、または現在または今後開発される任意の他の音声感知デバイスを含むか、または音声感知デバイス222と通信することができる。音声感知デバイス222は、コンピューティングデバイス200を操作するユーザの方に向けられ、かつユーザがコンピューティングデバイス200を操作している間にユーザによって発せられた例えば音声、他の発話を受信するように構成することができる。
図2は、コンピューティングデバイス200のCPU202およびメモリ204が特定のユニットに統合されていることを示しているが、他の構成を利用することもできる。CPU202の動作は、直接的にまたはローカルエリアネットワークまたは他のネットワークを介して接続することができる複数のマシン(個別のマシンは1つまたは複数のプロセッサを有することができる)にわたって分散させることができる。メモリ204は、ネットワークベースのメモリのような複数のマシンに分散するか、またはコンピューティングデバイス200の動作を実行する複数のマシンにおけるメモリとすることができる。本明細書では特定のバスとして示されているが、コンピューティングデバイス200のバス212は、複数のバスから構成することができる。さらに、二次ストレージ214は、コンピューティングデバイス200の他の構成要素に直接接続されるか、またはネットワークを介してアクセスされ、かつメモリカードなどの統合されたユニットまたは複数のメモリカードなどの複数のユニットを含むことができる。従って、コンピューティングデバイス200は、多種多様な構成で実施することができる。
図3は、符号化され、続いて復号化されるビデオストリーム300の一例の図である。ビデオストリーム300は、ビデオシーケンス302を含む。次のステージでは、ビデオシーケンス302はいくつかの隣接フレーム304を含む。3つのフレームが隣接フレーム304として示されているが、ビデオシーケンス302は任意の数の隣接フレーム304を含むことができる。隣接フレーム304はさらに、個々のフレーム、例えばフレーム306に細分化することができる。次のステージでは、フレーム306は、一連のプレーンまたはセグメント308に分割することができる。セグメント308は、例えば、並列処理を可能にするフレームのサブセットとすることができる。セグメント308は、ビデオデータを別々の色に分離することができるフレームのサブセットとすることができる。例えば、カラービデオデータのフレーム306は、輝度プレーン(luminance plane)および2つの色度プレーン(chrominance plane)を含むことができる。セグメント308は、異なる解像度でサンプリングすることができる。
フレーム306がセグメント308に分割されているか否かにかかわらず、フレーム306は、さらに、フレーム306内の例えば16×16画素に対応するデータを含むことができるブロック310に細分化されてもよい。ブロック310は、1つまたは複数のセグメント308の画素データからのデータを含むように構成される。ブロック310は、4x4画素、8x8画素、16x8画素、8x16画素、16x16画素、またはそれ以上等の任意の他の適切なサイズであってもよい。特に明記しない限り、ブロックおよびマクロブロックという用語は、本明細書では交換可能に使用される。
図4は、本開示の実施形態による符号化器400のブロック図である。符号化器400は、例えばメモリ204などのメモリに格納されたコンピュータソフトウェアプログラムを提供するなどして、上述のように送信局102内で実施することができる。コンピュータソフトウェアプログラムは、CPU202等のプロセッサによる実行時に、送信局102に図4で説明した方法でビデオデータを符号化させる機械命令を含むことができる。符号化器400は、例えば、送信局102に含まれる専用のハードウェアとして実施することもできる。特に望ましい一実施形態では、符号化器400は、ハードウェア符号化器である。
符号化器400は、ビデオストリーム300を入力として使用してフォワードパス(実線の接続線で示す)において様々な機能を実行して、符号化または圧縮されたビットストリーム420を生成するイントラ予測/インター予測ステージ402、変換ステージ404、量子化ステージ406、およびエントロピー符号化ステージ408を有する。符号化器400は、将来のブロックの符号化のためのフレームを再構成する再構成パス(点線の接続線で示す)をも含む。図4において、符号化器400は、再構成パスにおいて様々な機能を実行する以下のステージ、逆量子化ステージ410、逆変換ステージ412、再構成ステージ414、およびループフィルタリングステージ416を有する。符号化器400の他の構成的な変形例を使用してビデオストリーム300を符号化することができる。
ビデオストリーム300が符号化のために提示される場合、フレーム306の各フレーム304は、ブロック単位で処理され得る。イントラ予測/インター予測ステージ402において、各ブロックは、イントラフレーム予測(イントラ予測とも称する)またはインターフレーム予測(ここではインター予測とも呼ばれる)を用いて符号化することができる。いずれの場合でも、予測ブロックを形成することができる。イントラ予測の場合、予測ブロックが、以前に符号化され、かつ再構成された現在のフレーム内のサンプルから形成され得る。インター予測の場合、予測ブロックは、1つまたは複数の以前に構築された参照フレーム内のサンプルから形成され得る。1群のブロックに対する複数の参照フレームの指定は、以下でさらに詳細に説明される。
次に、引き続き図4を参照して、イントラ予測/インター予測ステージ402において予測ブロックが現在のブロックから減算され、残差ブロック(残差とも呼ばれる)が生成される。変換ステージ404は、ブロックベースの変換を使用して、残差を、例えば周波数領域の変換係数に変換する。量子化ステージ406は、変換係数を量子化値または量子化レベルを使用して量子化変換係数と呼ばれる離散量子値に変換する。例えば、変換係数は、量子化値で除算され、切り捨てられてもよい。次に、量子化された変換係数は、エントロピー符号化ステージ408によってエントロピー符号化される。例えば、使用される予測のタイプ、変換タイプ、動きベクトルおよび量子化値を含み得る、ブロックを復号化するために使用される他の情報とともに、エントロピー符号化された係数は、圧縮されたビットストリーム420に出力される。圧縮されたビットストリーム420は、可変長符号化(variable length coding : VLC)または算術符号化などの様々な技術を使用してフォーマットされ得る。圧縮されたビットストリーム420は、符号化されたビデオストリームまたは符号化されたビデオビットストリームとも称され、これらの用語は本明細書では互換的に使用される。
符号化器400および復号化器500(以下に説明する)が、圧縮されたビットストリーム420を復号化するために同じ参照フレームを使用することを確実にするために、図4における再構成パス(点線の接続線で示す)が使用される。再構成パスは、逆量子化ステージ410で量子化された変換係数を逆量子化すること、および逆変換ステージ412で逆量子化された変換係数を逆変換して微分残差ブロック(微分残差とも称される)を生成することを含む以下により詳細に説明される復号化プロセス中に行われる機能と同様の機能を実行する。再構成ステージ414において、イントラ予測/インター予測ステージ402で予測された予測ブロックを微分残差に加えて、再構成されたブロックが作成される。ブロック化アーチファクトなどの歪みを低減するために、ループフィルタリングステージ416が再構成されたブロックに適用される。
符号化器400の他の変形例を使用して圧縮されたビットストリーム420を符号化することができる。例えば、非変換ベースの符号化器は、あるブロックまたはフレームに関して変換ステージ404を使用せずに残差信号を直接量子化することができる。他の実装形態では、符号化器は、共通のステージに組み合わせられた量子化ステージ406および逆量子化ステージ410を有し得る。
図5は、本開示の実施形態によるデコーダ500のブロック図である。復号化器500は、例えば、メモリ204に格納されたコンピュータソフトウェアプログラムを提供することによって、受信局106で実施することができる。コンピュータソフトウェアプログラムは、CPU202などのプロセッサによる実行時に、受信局106に、図5において説明した方法でビデオデータを復号化させる機械命令を含む。復号化器500は、例えば、送信局102または受信局106に含まれるハードウェアで実施することもできる。
復号化器500は、上述の符号化器400の再構成パスと同様に、一例では、様々な機能を実行して圧縮されたビットストリーム420から出力ビデオストリーム516を生成するための以下のステージ、エントロピー復号化ステージ502、逆量子化ステージ504、逆変換ステージ506、イントラ予測/インター予測ステージ508、再構成ステージ510、ループフィルタリングステージ512、およびデブロッキングフィルタリングステージ514を含む。圧縮されたビットストリーム420を復号化するために復号化器500の他の構造的な変形例を使用することができる。
圧縮されたビットストリーム420が復号化のために提示されると、圧縮されたビットストリーム420内のデータ要素が、エントロピー復号化ステージ502によって復号化されて、一組の量子化変換係数が生成される。逆量子化ステージ504は、(例えば、量子化された変換係数に量子化値を乗算することにより)量子化された変換係数を逆量子化し、逆変換ステージ506は、逆量子化された変換係数を逆変換して、符号化器400における逆変換ステージ412によって生成されたものと同一である微分残差を生成する。圧縮されたビットストリーム420から復号化されたヘッダ情報を使用して、復号化器500は、イントラ予測/インター予測ステージ508を用いて、例えば、イントラ予測/インター予測ステージ402において、符号化器400で生成されたのと同じ予測ブロックを作成する。再構成ステージ510において、予測ブロックを微分残差に加えて再構成ブロックが作成される。ループフィルタリングステージ512は、ブロッキングアーチファクトを低減するために再構成されたブロックに適用される。
再構成されたブロックには他のフィルタリングが適用され得る。この例では、ブロッキング歪を低減するためにデブロッキングフィルタリングステージ514が再構成ブロックに適用され、その結果が出力ビデオストリーム516として出力される。出力ビデオストリーム516は、復号化されたビデオストリームとも呼ばれ、用語は本明細書では互換的に使用される。復号化器500の他の変形例を使用して、圧縮されたビットストリーム420を復号化することができる。例えば、復号化器500は、デブロッキングフィルタリングステージ514を用いずに出力ビデオストリーム516を生成することができる。
図6は、参照フレームバッファの一例のブロック図である。参照フレームバッファ600は、ビデオシーケンスの複数のフレームの複数のブロックを符号化または復号化するために使用される複数の参照フレームを格納する。この例では、参照フレームバッファ600は、最終フレームLAST_FRAME602、ゴールデンフレームGOLDEN_FRAME604、および代替参照フレームALTREF_FRAME606として識別される複数の参照フレームを含む。参照フレームのフレームヘッダは、参照フレームが格納されている参照フレームバッファ内の位置への仮想インデックスを含み得る。参照フレームのマッピングは、参照フレームの仮想インデックスを、参照フレームが格納されているメモリの物理インデックスにマッピングし得る。2つの参照フレームが同じフレームである場合、それらの参照フレームは、仮想インデックスが異なっていても同じ物理インデックスを有する。なお、参照フレームバッファ600内の参照位置の数、使用される種類、および名称は一例に過ぎない。
参照フレームバッファ600に格納された複数の参照フレームが使用されて、符号化または復号されるべき複数のフレームの複数のブロックを予測するための複数の動きベクトルを識別することができる。異なる参照フレームが、現在のフレームの現在のブロックを予測するために使用される予測のタイプに応じて使用されてもよい。たとえば、双方向予測では、現在のフレームの複数のブロックは、LAST_FRAME602またはGOLDEN_FRAME604として格納されたフレームを使用して前方予測でき、ALTREF_FRAME606として格納されたフレームを使用して後方予測できる。
参照フレームバッファ600内に格納できる参照フレームの数は有限であってもよい。図6に示されるように、参照フレームバッファ600は、最大8つの参照フレームを記憶することができ、記憶された各参照フレームは、参照フレームバッファの異なる仮想インデックスに関連付けられ得る。参照フレームバッファ600の8つの空間のうち3つは、LAST_FRAME602、GOLDEN_FRAME604、およびALTREF_FRAME606として指定された複数のフレームによって使用されるが、他の参照フレームを格納するために5つの空間が利用可能である。例えば、参照フレームバッファ600内の1つまたは複数の利用可能な空間が使用されて、さらなる参照フレーム、特に本明細書で説明する補間参照フレーム(interpolated reference frame)の一部分またはすべてを格納することができる。参照フレームバッファ600は、最大8つの参照フレームを格納できるように示されているが、参照フレームバッファ600の他の実施形態は、追加のまたはより少ない参照フレームを格納できてもよい。
いくつかの実施形態では、ALTREF_FRAME606として指定される代替参照フレームは、表示順序において現在のフレームから離れているが、表示されるよりも早く符号化または復号化されるビデオシーケンスのフレームであり得る。例えば、代替参照フレームは、表示順序で現在のフレームの後の10個、12個、またはそれ以上(またはそれ以下)のフレームであってもよい。さらなる複数の代替参照フレームは、表示順序で現在のフレームにより近い位置にあるフレームであり得る。
代替参照フレームは、シーケンス内のフレームに直接対応しなくてもよい。代わりに、代替参照フレームは、フィルタリングが適用されるか、一緒に結合されるか、または一緒に結合され且つフィルタリングされた1つまたは複数のフレームを使用して生成され得る。代替参照フレームが表示されなくてもよい。代わりに、予測プロセスでのみ使用するために生成および送信されるフレームまたはフレームの一部分とすることができる(つまり、復号化されたシーケンスが表示されるときは省略される)。
図7は、ビデオシーケンスの表示順序における1群のフレームを示す図である。この例では、8つのフレーム702〜716を含む1群のフレームの前には、場合によってはキーフレーム(key frame)またはオーバーレイフレーム(overlay frame)と呼称されるフレーム700がある。フレーム700内のブロックは、1群のフレームの複数の参照フレームを使用してインター予測されない。フレーム700は、この例ではキー(イントラ予測フレームとも呼称される)であり、フレーム内の複数の予測ブロックがイントラ予測を使用して予測されるだけというステータスを指す。しかしながら、フレーム700は、以前の1群のフレームの再構成されたフレームであり得るインター予測フレームであるオーバーレイフレームであってもよい。インター予測フレームでは、複数の予測ブロックの少なくとも一部分が、インター予測を使用して予測される。各群のフレームを形成するフレームの数は、たとえば、ランダムアクセスまたはエラー耐性のために選択されたキーフレーム間隔等の映像の空間的/時間的特性、および他の符号化された構成によって変化する。
各群のフレームのコーディング順序は、表示順序と異なる場合がある。これにより、ビデオシーケンスの現在のフレームの後にあるフレームを、現在のフレームを符号化するための参照フレームとして使用することができる。復号化器500などの復号化器は、符号化器400などの符号化器と共通グループコーディング構造(ommon group coding structure)を共有してもよい。グループコーディング構造は、グループ内の各フレームが参照バッファ(例えば、最終フレーム、代替参照フレームなど)として異なる役割を割り当て、グループ内の複数のフレームのコーディング順序を定義または示す。
図8は、図7の1群のフレームのコーディング順序の一例を示す図である。図8のコーディング順序は、第1のグループコーディング構造と関連付けられ、これにより、単一の後方参照フレームは、グループの各フレームに対して利用可能である。符号化および復号化の順序は同じであるため、図8に示す順序は、本明細書では概してコーディング順序と呼称される。キーまたはオーバーレイフレーム700は、参照フレームバッファ600内のGOLDEN_FRAME604などの参照フレームバッファ内のゴールデンフレームと指定される。この例では、フレーム700はイントラ予測されるため、参照フレームを必要としないが、前のグループから再構成されたフレームであるフレーム700としてのオーバーレイフレームも、現在のグループのフレームの参照フレームを使用しない。グループ内の最終フレーム716は、参照フレームバッファ600内のALTREF_FRAME606などの参照フレームバッファ内の代替参照フレームとして指定される。このコーディング順序では、フレーム716は、残りのフレーム702〜714のそれぞれに後方参照フレームを提供するために、フレーム700の後の表示順序で符号化される。フレーム716の複数のブロックのコーディングにおいて、フレーム700は、フレーム716の複数のブロックに利用可能な参照フレームとして機能する。図8は、1群のフレームのコーディング順序の一例に過ぎない。他のグループコーディング構造は、前方および/または後方予測のために1つまたは複数の異なるまたは追加のフレームを指定してもよい。
上記で簡単に述べたように、利用可能な参照フレーム部分は、オプティカルフロー推定を使用して補間される参照フレーム部分であり得る。参照フレーム部分は、例えば、ブロック、スライス、またはフレーム全体であり得る。本明細書で説明するようにフレームレベル(frame-level)のオプティカルフロー推定が実行される場合、結果として得られる参照フレームは、複数の寸法(dimensions)が現在のフレームと同じであるため、本明細書では並置参照フレーム(co-located reference frame)と呼称される。この補間された参照フレームは、本明細書ではオプティカルフロー参照フレームとも呼称され得る。
図9は、本明細書の開示に従った動きフィールドの線形投影(linear projection)を説明するために使用される図である。階層コーディングフレームワーク(hierarchical coding framework)内で、現在のフレームのオプティカルフロー(動きフィールドとも呼称される)は、現在のフレームの前後で最も近い利用可能な再構成(たとえば、参照)フレームを使用して推定され得る。図9では、参照フレーム1は、現在のフレーム900の前方予測に使用できる参照フレームであり、参照フレーム2は、現在のフレーム900の後方予測に使用できる参照フレームである。図6〜図8の例を用いて説明すると、現在のフレーム900がフレーム706である場合、直前または最後のフレーム704(例えば、参照フレームバッファ600にLAST_FRAME602として格納された再構成フレーム)を参照フレーム1として使用し、フレーム716(例えば、参照フレームバッファ600にALTREF_FRAME606として格納された再構成フレーム)を参照フレーム2として使用することができる。
現在のフレームおよび参照フレームの表示インデックスを認識することによって、動きフィールドが時間的に線形であると仮定して、複数の動きベクトルは、参照フレーム1,2の複数の画素の間で現在のフレーム900の複数の画素に投影され得る(projected)。図6〜8に関して説明した簡単な例では、現在のフレーム900のインデックスは「3」であり、参照フレーム1のインデックスは「0」であり、参照フレーム2のインデックスは「716」である。図9では、現在のフレーム900の画素902の投影された動きベクトル(projected motion vector)904が示されている。説明において前の例を使用して、図7の1群のフレームの複数の表示インデックスは、フレーム704がフレーム716よりも時間的にフレーム706により近いことを示している。したがって、図9に示す単一の動きベクトル904は、参照フレーム1と現在のフレーム900との間の動きの量が、参照フレーム2と現在のフレーム900との間の動きの量とは異なることを示す。それにもかかわらず、投影された動きフィールド906は、参照フレーム1、現在のフレーム900、および参照フレーム2の間で線形である。
最も近い利用可能な再構成された前方および後方参照フレームを選択し、時間的に線形である現在のフレームの各画素の動きフィールドを仮定することによって、追加情報を送信することなく、符号化器および復号化器(例えば、イントラ/インター予測ステージ402およびイントラ/インター予測ステージ508)の両方で実行されるべきオプティカルフロー推定を用いて補間された参照フレームの生成が可能になる。最も近い利用可能な再構成された参照フレームの代わりに、符号化器と復号化器との間でアプリオリ(a priori)に指定された異なるフレームが使用される可能性がある。いくつかの実施形態では、オプティカルフロー推定に使用される複数のフレームの識別が送信され得る。補間されたフレームの生成は、以下で詳しく説明される。
図10は、オプティカルフロー推定を使用して生成された参照フレームの少なくとも一部分を使用した一連のビデオシーケンスの動き補償予測の方法またはプロセス1000のフローチャート図である。参照フレーム部分は、例えば、ブロック、スライス、または参照フレーム全体であり得る。またオプティカルフロー参照フレーム部分は、本明細書では並置参照フレーム部分(co-located reference frame portion)と呼称され得る。プロセス1000は、例えば、送信局102または受信局106などのコンピューティングデバイスによって実行されるソフトウェアプログラムとして実施することができる。例えば、ソフトウェアプログラムは、メモリ204または2次ストレージ214などのメモリに格納され、CPU202のようなプロセッサによる実行時に、コンピューティングデバイスにプロセス1000を実行させる機械可読命令を含むことができる。プロセス1000は、特殊なハードウェアまたはファームウェアを使用して具体化され得る。いくつかのコンピューティングデバイスは、複数のメモリまたはプロセッサを有してもよく、プロセス1000において説明される複数の動作は、複数のプロセッサ、メモリ、またはその両方を使用して分散されてもよい。
1002において、予測されるべき現在のフレームが決定される。複数のフレームは、図8に示されるコーディング順序のような任意の順序で符号化されて予測され得る。また予測されるべき複数のフレームは、例えば、第1、第2、第3のフレームと呼称され得る。第1、第2などのラベルは、必ずしもフレームの順序を示すとは限らない。代わりに、ラベルは、特に明記しない限り、現在のフレームを別のフレームと区別するために使用される。符号化器では、フレームは、ラスタスキャン(raster scan)の順序などのブロックコーディングの順序でブロック単位で処理され得る。また復号化器では、フレームは、符号化されたビットストリーム内の符号化された残差(residual)の受信に応じてブロック単位で処理され得る。
1004において、前方および後方参照フレームが決定される。本明細書で説明する例では、前方および後方参照フレームは、現在のフレーム900などの現在のフレームの(たとえば、表示順序の)前後の最も近い再構成されたフレームである。図10には明示的に示されていないが、前方参照フレームまたは後方参照フレームが存在しない場合、プロセス1000は終了する。その後、オプティカルフローを考慮せずに現在のフレームが処理される。
1004において前方参照フレームおよび後方参照フレームが存在することによって、1006においてオプティカルフロー参照フレーム部分が当該参照フレームを使用して生成され得る。オプティカルフロー参照フレーム部分の生成は、図11〜14を参照してより詳細に説明される。オプティカルフロー参照フレーム部分は、いくつかの実施形態では、参照フレームバッファ600の定義された位置に格納され得る。最初に、本明細書の開示に従ったオプティカルフロー推定が説明される。
オプティカルフロー推定は、以下のラグランジュ関数(Lagrangian function)(1)を最小化することによって現在のフレーム部分の各画素に対して実行され得る。
関数(1)において、Jdataは輝度不変仮定(brightness constancy assumption)(すなわち、画像の小さな部分の強度値が、位置変化にかかわらず、時間が経過しても変化しないという仮定)に基づくデータペナルティ(data penalty)である。Jspatialは、動きフィールドの滑らかさに基づく空間ペナルティ(すなわち、隣接する複数の画素が画像内の同じオブジェクト項目に属している可能性があり、実質的に同じ画像動作をもたらす特性)である。ラグランジュパラメータλは、動きフィールドの滑らかさの重要度(importance)を制御する。パラメータλの値を大きくすると、動きフィールドがより滑らかになり、より大きなスケールでの動きをより適切に考慮することができる。対照的に、パラメータλの値を小さくすると、オブジェクトのエッジやオブジェクトの小さい動きに効果的に適応され得る。
本明細書の教示の実施形態によれば、データペナルティは、データペナルティ関数
によって表され得る。
現在の画素の動きフィールドの水平成分はuで表され、動きフィールドの垂直成分はvで表される。大まかに言うと、E,E,およびEは、(たとえば、フレームインデックスで表される)水平軸x、垂直軸y、および時刻tに対する複数の参照フレーム部分の複数の画素値の微分係数(derivative)である。水平軸および垂直軸は、現在のフレーム900などの現在のフレーム、および参照フレーム1,2などの参照フレームを形成する複数の画素の配列に対して定義される。
データペナルティ関数では、微分係数E,E,およびEは、以下の関数(3)、(4)、および(5)に従って計算され得る。
変数E(r1)は、符号化されるべき現在のフレーム内の現在の画素位置の動きフィールドに基づいた参照フレーム1内の投影された位置の画素値である。同様に、変数E(r2)は、符号化されるべき現在のフレーム内の現在の画素位置の動きフィールドに基づいた参照フレーム2内の投影された位置の画素値である。
変数indexr1は、参照フレーム1のディスプレイインデックスであり、フレームのディスプレイインデックスは、ビデオシーケンスの表示順序のインデックスである。同様に、変数indexr2は、参照フレーム2のディスプレイインデックスであり、変数indexcurは、現在のフレーム900のディスプレイインデックスである。
変数E (r1)は、線形フィルタを使用して参照フレーム1で計算された水平微分(horizontal derivative)である。変数E (r2)は、線形フィルタを使用して参照フレーム2で計算された水平微分である。変数E (r1)は、線形フィルタを使用して参照フレーム1で計算された垂直微分(vertical derivative)である。変数E (r2)は、線形フィルタを使用して参照フレーム2で計算された垂直微分である。
本明細書の開示の実施形態において、水平微分を計算するために使用される線形フィルタは、複数のフィルタ係数[−1/60,9/60,−45/60,0,45/60,−9/60,1/60]を有する7タップフィルタ(7-tap filter)である。フィルタは、異なる周波数プロファイル、異なるタップ数、またはその両方を有することができる。垂直微分の計算に使用される線形フィルタは、水平微分の計算に使用される線形フィルタと同じであってもよく、または異なっていてもよい。
空間ペナルティは、空間ペナルティ関数
で表され得る。
空間ペナルティ関数(6)において、Δuは、動きフィールドの水平成分uのラプラシアン(Laplacian)であり、Δvは動きフィールドの垂直成分vのラプラシアンである。
図11は、オプティカルフロー参照フレーム部分を生成する方法またはプロセス1100のフローチャート図である。この例では、オプティカルフロー参照フレーム部分は、参照フレーム全体である。プロセス1100は、プロセス1000のステップ1006を実施することができる。プロセス1100は、例えば、送信局102または受信局106などのコンピューティングデバイスによって実行されるソフトウェアプログラムとして実施することができる。例えば、ソフトウェアプログラムは、メモリ204または第2の記憶装置214などのメモリに格納され、CPU202のようなプロセッサによる実行時に、コンピューティングデバイスにプロセス1100を実行させる機械可読命令を含むことができる。プロセス1100は、特殊なハードウェアまたはファームウェアを使用して具体化され得る。上述したように、複数のプロセッサ、複数のメモリ、またはその両方が使用され得る。
前方参照フレームおよび後方参照フレームは互いに比較的離れている可能性があるため、それらの間に大きな動きがあり、輝度不変仮定の精度が低下する可能性がある。この問題に起因する画素の動きにおける潜在的な誤差を低減するために、現在のフレームから参照フレームまでの推定された複数の動きベクトルが使用されて、現在のフレームに対するオプティカルフロー推定を初期化することができる。1102において、現在のフレーム内のすべての画素は、初期化された動きベクトルに割り当てられる。これらは複数の初期動きフィールドを定義し、複数の初期動きフィールドは、第1の処理レベルのために複数の参照フレームを現在のフレームにワーピングして(warp)複数の参照フレーム間の動きの長さを短縮するために利用できる複数の初期動きフィールドを定義する。
現在の画素の動きフィールドmvcurは、
に従って、現在の画素から後方参照フレーム、この例では参照フレーム2を指す推定動きベクトルmvr2と、現在の画素から前方参照フレーム、この例では参照フレーム1を指す推定動きベクトルmvr2との差分を示す動きベクトルを使用して初期化され得る。
複数の動きベクトルの1つが利用できない場合、関数
に従って、利用可能な動きベクトルを使用して初期の動きを推定できる。
現在の画素が利用可能な動きベクトル参照(motion vector reference)をいずれも有していない場合、初期化された動きベクトルを有する1つまたは複数の空間的近傍(spatial neighbor)が使用されてもよい。例えば、利用可能な隣接する初期化された動きベクトルの平均が使用され得る。
1102において第1の処理レベルの動きフィールドを初期化する一例では、参照フレーム2は、参照フレーム1の画素を予測するために用いられ、参照フレーム1は、現在のフレームが符号化される前の最終フレームである。図9に示すものと同様の方法で線形投影を使用して現在のフレームに投影されたその動きベクトルは、画素位置902の動きフィールド906のように、交差する画素位置において動きフィールドmvcurとなる。
図11は、プロセス1100には複数の処理レベルが存在することが望ましいため、動きフィールドを第1の処理レベルに初期化することを示す。これは、図11のプロセス1100(および以下で説明される図12のプロセス1200)を示す図である図13を参照することによって理解される。以下の説明では、動きフィールドという用語が使用される。この用語は、文脈から明らかでない限り、各画素の動きフィールドを集合的に参照することを意図している。したがって、「複数の動きフィールド」および「動きフィールド」という用語は、複数の動きフィールドを指す場合に交換可能に使用されてもよい。さらに、オプティカルフローという用語は、複数の画素の動きを指すときに動きフィールドという用語と交換可能に使用されてもよい。
フレームの複数の画素の動きフィールド/オプティカルフローを推定するには、ピラミッド(pyramid)または多層構造が使用されてもよい。たとえば、特定のピラミッド構造では、参照フレームは、1つまたは複数の異なるスケールに縮小される。次に、オプティカルフローを最初に推定して、ピラミッドの最高レベル(第1の処理レベル)で、つまり、最大でスケーリングされた(scaled)参照フレームを使用して、動きフィールドを取得する。その後、動きフィールドはアップスケーリングされ、次のレベルでオプティカルフロー推定を初期化するために使用される。動きフィールドをアップスケーリングし、それを使用して次のレベルのオプティカルフロー推定を初期化し、かつ動きフィールドを取得するこのプロセスは、ピラミッドの最低レベルに到達するまで(つまり、参照フレーム部分のオプティカルフロー推定をフルスケールで完了するまで)継続する。
このプロセスのため、画像がダウンスケーリングされたときに大きな動きを簡単に取得することができる。ただし、参照フレーム自体のスケーリングに単純な再スケーリングフィルタ(rescale filter)を使用すると、参照フレームの品質が低下する可能性がある。再スケーリングによって詳細な情報の損失を防止するために、複数の参照フレームの画素の代わりに複数の微分係数をスケーリングしてオプティカルフローを推定するピラミッド構造がある。このピラミッドスキームは、オプティカルフロー推定の回帰分析を表す。このスキームは、図13に示され、図11のプロセス1100および図12のプロセス1200によって実施される。
初期化後、ラグランジュパラメータλが、ラグランジュ関数(1)を解くために1104において設定される。望ましくは、プロセス1100は、ラグランジュパラメータλに複数の値を用いる。ラグランジュパラメータλが1104において設定された第1の値は、100などの比較的大きな値であり得る。プロセス1100がラグランジュ関数(1)のラグランジュパラメータλに複数の値を使用することが望ましいが、以下に説明するプロセス1200で説明されるように特定の値のみが使用される可能性がある。
1106において、現在の処理レベルの動きフィールドに従って、参照フレームが現在のフレームにワーピングされる。現在のフレームを参照フレームにワーピングすることは、サブ画素位置の丸め処理(rounding)を使用して実行され得る。第1の処理レベルで使用される動きフィールドmvcurは、ワーピングを実行する前に、その最大解像度値から第1の処理レベルの解像度にダウンスケーリングされることに留意されたい。動きフィールドのダウンスケーリングは、以下で詳しく説明される。
オプティカルフローmvcurを認識している場合、参照フレーム1をワーピングする動きフィールドは、
のように線形投影仮定(たとえば、動きが時間とともに線形に投影されるという仮定)によって推定される。
ワーピングを実行するために、動きフィールドmvr1の水平成分ur1と垂直成分ur1には、Y成分の場合では1/8画素の精度に、UおよびV成分の場合は1/16画素の精度に丸め処理が実行され得る。サブ画素位置の丸め処理には他の値が使用されてもよい。丸め処理後、ワーピング画像Ewarped (r1)の各画素は、動きベクトルmvr1によって付与される参照画素として計算される。サブ画素補間は、従来のサブ画素補間フィルタを使用して実行され得る。
参照フレーム2に対しても同じワーピングアプローチが実行されてワーピング画像Ewarped (r2)を取得し、動きフィールドは、
によって計算される。
1106での計算が終了すると、2つのワーピングされた参照フレームが存在する。2つのワーピングされた参照フレームは、1108においてそれらの間の動きフィールドを推定するために使用される。1108での動きフィールドの推定は、複数のステップを含み得る。
まず、微分係数E,E,Eは、関数(3)、(4)、および(5)を使用して計算される。微分係数を計算するとき、ワーピングされた参照フレームの複数のフレーム境界(frame boundaries)は、最も近い利用可能な画素をコピーすることによって拡張され得る。このようにして、複数の投影位置が、ワーピングされた参照フレームの外側にあるときに、複数の画素値(つまり、E(r1)および/またはE(r2)が取得され得る。次に、複数のレイヤーがある場合、複数の微分係数は、現在のレベルにダウンスケーリングされる。図13に示すように、複数の参照フレームは、元のスケールで微分係数を計算して詳細を取得するために使用される。各レベル「l」での微分係数のダウンスケーリングは、2x2ブロック内で平均化することで計算され得る。注意すべきことであるが、微分係数の計算およびそれらの平均化によるダウンスケーリングは両方とも線形演算であるため、2つの演算は、単一の線形フィルタに結合されて各レベル「l」で微分係数を計算し得る。これにより、計算の複雑さが軽減される。
複数の微分係数が現在の処理レベルにダウンスケーリングされると、必要に応じて、ラグランジュ関数(1)に従ってオプティカルフロー推定が実行され得る。より具体的には、動きフィールドの水平成分uおよび動きフィールドの垂直成分vに対するラグランジュ関数(1)の複数の微分係数を「0」(すなわち、∂J/∂u=0 and ∂J/∂v=0)に設定することによって、2×N個の線形方程式を有するフレームの全N個の画素について、成分uおよびvを解くことができる。このことは、複数のラプラシアンが2次元(2D)フィルタによって近似されるという事実に起因する。正確ではあるが非常に複雑な複数の線形方程式を直接解く代わりに、反復アプローチを使用して、ラグランジュ関数(1)を最小化して、より高速で精度の低い結果を得てもよい。
1108において、現在のフレームの複数の画素の動きフィールドは、ワーピングされた複数の参照フレーム間の推定動きフィールドを使用して更新または再調整される。例えば、画素の現在の動きフィールドは、画素の推定動きフィールドを画素ごとに追加することによって更新され得る。
1108において動きフィールドが推定されると、1110において、利用可能なラグランジュパラメータλに追加の値があるかどうかを判定するためにクエリ(query)が実行される。ラグランジュパラメータλの値を小さくすると、より小さいスケールの動きに対応することができる。追加の値がある場合、プロセス1100は1104に戻って、ラグランジュパラメータλの次の値を設定し得る。たとえば、プロセス1100は、反復するごとにラグランジュパラメータλを半分に下げながら繰り返すことができる。1108において更新された動きフィールドは、この次の反復の1106において参照フレームをワーピングする現在の動きフィールドである。次に、1108において動きフィールドが再び推定される。1104、1106、および1108での処理は、1110において可能なすべてのラグランジュパラメータが処理されるまで継続される。一例では、図13に示すように、ピラミッドには3つのレベルがあり、したがって、ラグランジュパラメータλの最小値は「25」である。ラグランジュパラメータを変更しながらこの処理を繰り返すことを、ラグランジュパラメータのアニーリング(annealing)と呼称され得る。
1110においてラグランジュパラメータλの残りの値がなくなると、プロセス1100は1112に進んで、処理する処理レベルがさらにあるかどうかを判定する。1112において追加の処理レベルがある場合、プロセス1100は1114に進んで、1104から開始するラグランジュパラメータλの利用可能な複数の値のそれぞれを使用して、次のレイヤーを処理する前に動きフィールドがアップスケーリングされる(up-scaled)。動きフィールドのアップスケーリングは、前述のダウンスケーリングの計算の逆を含むがこれに限定されない任意の既知の技術を使用して実行されてもよい。
概して、オプティカルフローは、ピラミッドの最高レベルで動きフィールドを取得するために最初に推定される。その後、動きフィールドはアップスケーリングされ、次のレベルでオプティカルフロー推定を初期化するために使用される。動きフィールドをアップスケーリングし、それを使用して次のレベルのオプティカルフロー推定を初期化し、かつ動きフィールドを取得するこのプロセスは、1112においてピラミッドの最低レベルに到達するまで(つまり、フルスケールで計算された複数の微分係数のオプティカルフロー推定を完了するまで)継続する。
そのレベルが参照フレームがダウンスケーリングレベルにある(つまり、元の解像度にある)と、プロセス1100は1116に進む。例えば、レベルの数は、図13の例のように「3」であり得る。1116において、ワーピングされた複数の参照フレームはブレンディングされて(blended)オプティカルフロー参照フレームE(cur)を形成する。1116においてブレンディングされた複数のワーピングされた参照フレームは、1108で推定された動きフィールドを使用して1106で説明されたプロセスに従って再びワーピングされるフルスケールの複数の参照フレームであり得ることに留意されたい。換言すると、フルスケールの複数の参照フレームは、前の処理レイヤーからの最初のアップスケーリングされた動きフィールドを使用して、動きフィールドがフルスケールレベルで再調整された後に、1,2回(twice - once)ワーピングされ得る。ブレンディング(blending)は、
のように時間線形性仮定(たとえば、複数のフレームが等しい時間間隔で配置されているという仮定)を使用して実行され得る。
幾つかの実施形態では、ブレンディングされた値ではなく、複数のワーピングされた参照フレームのうちの1つのみの画素を優先することが望ましい場合がある。たとえば、(mvr1で表される)参照フレーム1の参照画素が境界(bound)の外側(たとえば、フレームの寸法の外側)にあり、参照フレーム2の参照画素がそうでない場合、参照フレーム2から取得されたワーピングされた画像の画素のみが、
に従って使用される。
ブレンディングの一部として、任意のオクルージョン検出(occlusion detection)が実行され得る。複数のオブジェクトおよび背景のオクルージョンは通常、ビデオシーケンスで生じ、ビデオシーケンスでは、オブジェクトの複数の部分が一方の参照フレームに現れ、他方の参照フレームでは隠れる。概して、上記のオプティカルフロー推定方法は、輝度不変仮定に違反しているため、この状況ではオブジェクトの動きを推定できない。オクルージョンのサイズが比較的小さい場合、平滑化ペナルティ関数(smoothness penalty function)は、動きを非常に正確に推定できる。つまり、隠れた部分の未定義の動きフィールドが隣接する複数の動きベクトルによって平滑化されると、オブジェクト全体の動きの精度が向上する。
ただし、この場合でも、上記の単純なブレンディング方法では満足な補間結果が得られない場合がある。このことは、オブジェクトのオクルージョンを示す図である図14を参照することによって実証され得る。この例では、オブジェクトAのオクルージョンされた部分が参照フレーム1において表され、参照フレーム2のオブジェクトBによって隠されている。オブジェクトAの隠れた部分は参照フレーム2において表されていないため、参照フレーム2からの参照される画素はオブジェクトBからのものである。この場合、参照フレーム1からのワーピングされた画素のみを使用することが望ましい。したがって、上記のブレンディングの代わりに、またはそれに加えて、オクルージョンを検出する技術を使用すると、より良いブレンディング結果、つまり、より良い参照フレームが提供される。
オクルージョンの検出に関して、オクルージョンが生じ、動きフィールドが極めて正確である場合、オブジェクトAのオクルージョン部分の動きベクトルが、参照フレーム2のオブジェクトBを指すことが図14から分かる。これにより、以下の複数の状況が生じる可能性がある。第1の状況では、ワーピングされた画素値Ewarped (r1),Ewarped (r2)が、2つの異なるオブジェクトからのものであるために極めて異なる。第2の状況では、オブジェクトBの複数の画素が、現在のフレーム内のオブジェクトBと、現在のフレームのオブジェクトAのオクルージョンされた(occluded)部分とに対する複数の動きベクトルによって参照される。
これらの考察により、複数の条件
は、EcurのEwarped (r1)のみのオクルージョンおよび使用を決定するために設定され、ここでは、同様の条件がEcurのEwarped (r2)のみの使用に適用される。
ref (r2)は、参照フレーム1の参照画素が現在の並置フレームの画素によって参照される合計回数である。上述のサブ画素補間の存在を仮定すると、Nref (r2)は、参照サブ画素位置が注目される画素位置の特定の画素の長さ内にある場合にカウントされる。また、mvr2がサブ画素位置を指している場合、隣接する4つの画素のNref (r2)の加重平均が、現在のサブ画素位置の参照の総数として表される。Nref (r1)も同様に定義され得る。
したがって、第1のワーピングされた参照フレームおよび第2のワーピングされた参照フレームを使用して、オクルージョンが第1の参照フレームにおいて検出され得る。そして、ワーピングされた参照フレームのブレンディングは、オクルージョンに対応するオプティカルフローの参照フレームの複数の画素位置に第2のワーピングされた参照フレームからの複数の画素値を提供すること(populating)を含み得る。同様に、第1のワーピングされた参照フレームおよび第2のワーピングされた参照フレームを使用して、オクルージョンが第2の参照フレームにおいて検出され得る。そして、ワーピングされた参照フレームのブレンディングは、オクルージョンに対応するオプティカルフロー参照フレームの複数の画素位置に第1のワーピングされた参照フレームからの複数の画素値を提供することを含み得る。
プロセス1100が実質的な圧縮性能の向上を提供することが実験的に示されている。これらの性能の向上は、低解像度のフレームセットではPSNRで2.5%、SSIMで3.3%、中解像度のフレームセットではPSNRで3.1%、SSIMで4.0%の向上を含む。しかしながら、上述したように、ラグランジュ関数(1)により実行されるオプティカルフロー推定によって、2×Nの線形方程式を用いて、フレームの全N個の画素について動きフィールドの水平成分u及び垂直成分vが取得される。換言すれば、オプティカルフロー推定の計算の複雑さはフレームサイズの多項式関数であり、これは復号化器の複雑さに負担を課す。従って、次に、図11に関して説明したフレームに基づくオプティカルフロー推定よりも復号化器の複雑さを低減できる、サブフレームに基づく(例えば、ブロックに基づく)オプティカルフロー推定について説明する。
図12は、オプティカルフロー参照フレーム部分を生成する方法またはプロセス1200のフローチャート図である。この例では、オプティカルフロー参照フレーム部分は、参照フレーム全体よりも小さい。この例では、複数の並置フレーム部分は、ブロックを参照して説明されるが、他のフレーム部分は図12に従って処理してもよい。プロセス1200は、プロセス1000のステップ1006を実施することができる。プロセス1200は、例えば、送信局102または受信局106などのコンピューティングデバイスによって実行されるソフトウェアプログラムとして実施することができる。例えば、ソフトウェアプログラムは、メモリ204または2次ストレージ214などのメモリに格納され、CPU202のようなプロセッサによる実行時に、コンピューティングデバイスにプロセス1200を実行させる機械可読命令を含むことができる。プロセス1200は、特殊なハードウェアまたはファームウェアを使用して具体化され得る。上述したように、複数のプロセッサ、複数のメモリ、またはその両方が使用され得る。
1202において、現在のフレーム内のすべての画素は、初期化された動きベクトルに割り当てられる。これらは、第1の処理レベルのために複数の参照フレームを現在のフレームにワーピングして複数の参照フレーム間の動きの長さを短縮するために利用できる複数の初期動きフィールドを定義する。なお、1202における初期化は、1102における初期化と同様の処理で行うことができるので、ここでは説明を省略する。
1204において、1202において初期化された動きフィールドに従って、参照フレーム1,2等の参照フレームが現在のフレームにワーピングされる。1204におけるワーピングは、1106におけるワーピングに関して説明したのと同じ処理を使用して実行できるが、望ましくは、1202で初期化された動きフィールドmvcurが、複数の参照フレームをワーピングする前にその最大解像度値からダウンスケールされない。
1204での計算が終了すると、2つのワーピングされた参照フレームが最大解像度で存在する。プロセス1100と同様に、プロセス1200は、図13に関して説明したのと同様の複数のレベルプロセスを使用して、2つの参照フレーム間の動きフィールドを推定することができる。概略的に述べると、プロセス1200は、あるレベルに対する複数の微分係数を計算し、複数の微分係数を使用してオプティカルフロー推定を実行し、すべてのレベルが考慮されるまで、結果として得られる動きフィールドを次のレベルに対してアップスケーリングする。
より具体的には、現在の(または第1の)処理レベルでのブロックの動きフィールドmvcurは1206において初期化される。ブロックは、現在のフレームのスキャン順序(例えば、ラスタスキャン順序)で選択された現在のフレームのブロックであり得る。ブロックの動きフィールドmvcurは、ブロックの各画素の動きフィールドを含む。言い換えると、1206において、現在のブロックを有するすべての画素には、初期化された動きベクトルが割り当てられる。初期化された複数の動きベクトルを使用して、複数の参照ブロックを現在のブロックにワーピングして、複数の参照フレームの複数の参照ブロック間の長さを短くする。
1206において、動きフィールドmvcurは、自身の最大解像度値からそのレベルの解像度にダウンスケーリングされる。換言すれば、1206での初期化は、1202で初期化された最大解像度値から、ブロックの各画素の動きフィールドをダウンスケーリングすることを含み得る。ダウンスケーリングは、上記したダウンスケーリングなどの任意の技術を使用して実行され得る。
1208において、各ワーピングされた参照フレームの動きフィールドに対応する複数の並置参照ブロックは、現在のブロックに対してワーピングされる。参照ブロックのワーピングは、1106におけるプロセス1100と同様に実行される。参照フレーム1の参照ブロックの複数の画素のオプティカルフローmvcurを認識している場合、ワーピングする動きフィールドは、
のように線形投影仮定(たとえば、動きが時間とともに線形に投影されるという仮定)によって推定される。
ワーピングを実行するために、動きフィールドmvr1の水平成分ur1と垂直成分ur1には、Y成分の場合では1/8画素の精度に、UおよびV成分の場合は1/16画素の精度に丸め処理が実行され得る。他の値が使用されてもよい。丸め処理後、ワーピングされたブロック、例えば、Ewarped (r1)の各画素は、動きベクトルmvr1によって付与される参照画素として計算される。サブ画素補間は、従来のサブ画素補間フィルタを使用して実行されてもよい。
参照フレーム2の参照ブロックに対しても同じワーピングアプローチが実行されてワーピングされたブロックEwarped (r2)を取得し、動きフィールドは、
によって計算される。
1208での計算が終了すると、2つのワーピングされた参照ブロックが存在する。2つのワーピングされた参照ブロックを使用して、1210においてそれらの間の動きフィールドを推定する。1210における処理は、図11における1108における処理に関して説明したものと同様であり得る。
より具体的には、2つのワーピングされた参照ブロックは、最大解像度であり得る。図13のピラミッド構造によれば、関数(3)、(4)、(5)を用いて微分係数E,E,Eが算出される。フレームレベル推定のための複数の微分係数を計算する場合、複数のフレーム境界は、プロセス1100に関して説明したように、境界の外側の複数の画素値を取得するために最も近い利用可能な画素をコピーすることによって拡張され得る。ただし、他の複数のフレーム部分については、1204においてワーピングされた複数の参照フレームにおいて隣接する複数の画素はしばしば利用可能である。たとえば、ブロックに基づく推定では、ブロック自体がフレーム境界にない限り、隣接する複数のブロックの複数の画素は、複数のワーピングされた参照フレームにおいて利用できる。従って、ワーピングされた参照フレーム部分に対する境界の外側の複数の画素については、該当する場合には、ワーピングされた参照フレームの隣接する複数の部分の複数の画素は、画素値E(r1),E(r2)として使用され得る。複数の投影された画素がフレーム境界の外側にある場合、最も近い利用可能な(つまり、境界内の)画素がコピーされてもよい。複数の微分係数が計算された後、それらは現在のレベルにダウンスケーリングされてもよい。前述のように、各レベル「l」のダウンスケーリングされた複数の微分係数は、2x2ブロック内で平均化することによって計算され得る。計算の複雑さは、単一の線形フィルタで複数の微分係数を計算および平均化する2つの線形操作(linear operation)を組み合わせることによって軽減されるが、これは必須ではない。
1210の処理を続けると、ダウンスケーリングされた複数の微分係数は、ラグランジュ関数(1)への入力として使用されて、オプティカルフロー推定を実行し、ワーピングされた複数の参照部分間の動きフィールドを推定できる。一部分、ここではブロックの全N画素の動きフィールドの水平成分uおよび垂直成分vは、水平成分uおよび垂直成分vに対するラグランジュ関数(1)の複数の微分係数を「0」(すなわち、∂J/∂u=0および∂J/∂v=0)に設定し、2×Nの線形方程式を解くことによって求められる。このため、境界の外側の複数の動きベクトルを処理する2つの任意選択的な方法がある。特定の方法では、隣接する複数のブロックとの相関が「0」であると仮定し、境界の外側の動きベクトルが、境界の外側の画素位置に最も近い境界位置における動きベクトルと同じであると仮定する。別の方法では、現在の画素に対応する境界の外側の画素位置の動きベクトルとして、現在の画素の初期化された動きベクトル(すなわち、1206で初期化された動きフィールド)を使用する。
動きフィールドが推定された後、そのレベルの現在の動きフィールドは、1210での処理を完了するために、複数のワーピングされた参照ブロック間の推定動きフィールドを使用して更新または再調整される。例えば、画素の現在の動きフィールドは、画素の推定動きフィールドを画素ごとに追加することによって更新され得る。
プロセス1100では、ラグランジュパラメータλの減少した値を設定するための追加のループが含まれ、各レベルで、ラグランジュパラメータλの順次小さくなる値を使用して動きフィールドが推定および再調整される。プロセス1200では、このループは省略される。すなわち、示されているプロセス1200では、現在の処理レベルで動きフィールドを推定するためにラグランジュパラメータλの1つの値のみが使用される。この値は、「25」などの比較的小さな値にすることができる。たとえば、動きの滑らかさ、画像の解像度、または他の変数に応じて、ラグランジュパラメータλの他の値が可能である。
他の実施形態では、プロセス1200は、ラグランジュパラメータλを変化させるための追加のループを含み得る。このようなループが含まれる実施形態では、ラグランジュパラメータλは、1208で複数の参照ブロックをワーピングさせ、1210で動きフィールドを推定および更新することが、プロセス1100における1104,1110での処理に関して説明したようにラグランジュパラメータλのすべての値が使用されるまで繰り返されるように、1210において動きフィールドを推定する前に設定され得る。
プロセス1200は、1210において動きフィールドを推定および更新した後、1212のクエリに進む。これは、ラグランジュパラメータλの単一の値が使用される場合、1210におけるレベルでの最初で唯一の動きフィールド推定および更新の後に行われる。ラグランジュパラメータλの複数の値が処理レベルで変更される場合、プロセス1200は、ラグランジュパラメータλの最後の値を使用して1210において動きフィールドを推定および更新した後に、1212のクエリに進む。
1212におけるクエリに応答した追加の複数の処理レベルがある場合、プロセス1200は1214に進んで、1206から開始する次のレイヤーを処理する前に動きフィールドがアップスケーリングされる。アップスケーリングは、任意の既知の技術に従って実行され得る。
概して、オプティカルフローは、ピラミッドの最高レベルで動きフィールドを取得するために最初に推定される。その後、動きフィールドはアップスケーリングされ、次のレベルでオプティカルフロー推定を初期化するために使用される。動きフィールドをアップスケーリングし、それを使用して次のレベルのオプティカルフロー推定を初期化し、かつ動きフィールドを取得するこのプロセスは、1212においてピラミッドの最低レベルに到達するまで(つまり、フルスケールで計算された複数の微分係数のオプティカルフロー推定を完了するまで)継続する。
そのレベルが複数の参照フレームがダウンスケーリングされるレベルにある(つまり、元の解像度にある)と、プロセス1200は1216に進む。例えば、レベルの数は、図13の例のように「3」であり得る。1216において、複数のワーピングされた参照ブロックがブレンディングされて、オプティカルフロー参照ブロック(例えば、前述されたE(cur))を形成する。1216においてブレンディングされた複数のワーピングされた参照ブロックは、1208で推定された動きフィールドを使用して1208で説明されたプロセスに従って再びワーピングされる複数のフルスケールの参照ブロックであり得ることに留意されたい。換言すると、複数のフルスケールの参照ブロックは、前の処理レイヤーからの最初のアップスケーリングされた動きフィールドを使用して、動きフィールドがフルスケールレベルで再調整された後に、1,2回ワーピングされ得る。ブレンディングは、1116において説明された処理と同様に、時間線形性仮定を使用して実行され得る。1116において説明され、図14において例として示される任意選択的なオクルージョン検出は、1216でのブレンディングの一部として組み込まれる。
1216において、複数の並置参照ブロックが生成された後、プロセス1200は1218に進んで、予測のためにさらに(複数のブロックの)複数のフレーム部分があるかどうかを判定する。複数のフレーム部分がある場合、プロセス1200は、次のブロックについて1206から繰り返される。複数のブロックはスキャン順序に処理され得る。1218でのクエリに応答して考慮するさらなるブロックがなくなると、プロセス1200は終了する。
再び図10を参照すると、プロセス1200は、プロセス1000において1006を実施することができる。1006での処理が終了すると、プロセス1100、プロセス1200、または本明細書に記載されるような変形のいずれによって実行されても、1つまたは複数のワーピングされた参照フレーム部分が存在する。
1008において、1006において生成されたオプティカルフローの参照フレーム部分を使用して予測プロセスが実行される。復号化器で予測プロセスを実行することには、フレームの現在のブロックに対するオプティカルフロー参照フレームから予測ブロックを生成することを含み得る。オプティカルフロー参照フレームは、プロセス1100によって出力され、参照フレームバッファ600などの参照フレームバッファに格納されるオプティカルフロー参照フレームであり得る。オプティカルフロー参照フレームは、プロセス1200により出力される複数のオプティカルフロー参照部分を組み合わせることによって生成されるオプティカルフロー参照フレームであり得る。また、複数のオプティカルフロー参照部分を組み合わせることは、複数のオプティカルフロー参照部分の各々の生成に用いる対応する現在のフレーム部分の複数の画素位置に応じて複数のオプティカルフロー参照部分(例えば、複数の並置参照ブロック)を配置することを含み得る。結果として得られるオプティカルフロー参照フレームは、符号化器400の参照フレームバッファ600などの符号化器の参照フレームバッファで使用するために格納され得る。
符号化器で予測ブロックを生成することは、オプティカルフロー参照フレームの並置ブロックを予測ブロックとして選択することを含み得る。符号化器で予測ブロックを生成することは、代替的には、オプティカルフロー参照フレーム内で動き検索を実行して現在のブロックに最適な予測ブロックを選択することを含み得る。しかし、予測ブロックは符号化器で生成され、結果として得られる残差は、図4の符号化器400に関して説明された非可逆符号化処理(lossy encoding process)を使用するなどして、さらに処理され得る。
符号化器において、プロセス1000は、現在のフレームに利用可能な複数の予測フレームを使用して、1つまたは複数のイントラ予測モードおよび単一および複合のインター予測モードの両方を含む、様々な予測モードを使用する現在のブロックに対するレート歪みループ(rate distortion loop)の一部分を形成し得る。単一のインター予測モードは、インター予測に対して単一の前方または後方参照フレームのみを使用する。複合のインター予測モードは、インター予測に対して前方参照フレームと後方参照フレームの両方を使用する。レート歪みループでは、各予測モードを使用して現在のブロックを符号化するために使用されるレート(例えば、ビット数)が、符号化から得られる歪み(distortion)と比較される。歪みは、符号化前と復号化後のブロックの画素の差として計算され得る。差は、絶対差の合計、またはフレームのブロックについて累積された誤差を取得する幾つかの他の測定値であり得る。
いくつかの実施形態では、オプティカルフロー参照フレームの使用を単一のインター予測モードに制限することが望ましい場合がある。すなわち、オプティカルフローの参照フレームは、任意の複合の参照モードの参照フレームとして除外されてもよい。このことは、レート歪みループを単純化することができ、オプティカルフロー参照フレームが既に前方参照フレームと後方参照フレームの両方を考慮しているので、ブロックの符号化に対する付加的な影響はほとんど予想されない。本明細書で説明する実施形態によれば、現在のフレームを符号化する際にオプティカルフロー参照フレームを使用できるかどうかを示すために、フラグをビットストリームに符号化されてもよい。一例では、オプティカルフロー参照フレームブロックを使用して、現在のフレームの任意の単一ブロックが符号化されるときに、フラグが符号化されてもよい。オプティカルフロー参照フレームが現在のフレームで利用できる場合、オプティカルフロー参照フレームを使用したインター予測によって現在のブロックが符号化されたかどうかを示す追加のフラグまたは他のインジケータ(ブロックレベルなど)を含めることができる。
1008での予測プロセスは、現在のフレームが符号化されるまで、現在のフレームのすべてのブロックに対して繰り返されてもよい。
復号化器において、1008でオプティカルフロー参照フレーム部分を使用して予測プロセスを実行することは、オプティカルフロー参照フレームが現在のフレームを復号化するために利用可能であるという判定に起因する。いくつかの実施形態では、現在のフレームの少なくとも1つのブロックがオプティカルフロー参照フレーム部分を使用して符号化されたことを示すフラグを検査することによって判定が行われる。復号化器で1008において予測プロセスを実行することは、予測ブロックを生成することを含み得る。予測ブロックを生成することは、ブロックヘッダーなど、符号化されたビットストリームから復号化されたインター予測モードを使用することを含み得る。フラグまたはインジケータは、インター予測モードを決定するために復号化され得る。インター予測モードがオプティカルフロー参照フレームモードである(すなわち、ブロックが、オプティカルフロー参照フレーム部分を用いてインター予測された)場合、復号化されるべき現在のブロックの予測ブロックは、オプティカルフロー参照フレーム部分の複数の画素と、動きベクトルモードおよび/または動きベクトルを用いて生成される。
復号化の一部として予測プロセスで使用するためにオプティカルフロー参照フレームを生成する同じ処理は、復号化器で実行されたように、復号化器500などの復号化器で実行され得る。例えば、フラグが現在のフレームの少なくとも1つのブロックがオプティカルフロー参照フレーム部分を用いて符号化されたことを示す場合、オプティカルフロー参照フレーム全体が生成され、予測プロセスで使用するために格納され得る。しかしながら、複数のコーディングブロックがインター予測の参照フレームとして並置される/複数のオプティカルフローの参照フレームを使用するものとして識別されるプロセス1200の性能を制限するようにプロセス1200を修正することによって、復号化器での計算能力がさらに節約される。このことは、復号化器を最適化するための特定の技術を示す図15を参照することによって説明される。
図15では、グリッド1500に従って複数の画素が示されており、wはグリッド1500の第1の軸に沿った画素位置を示し、yはグリッド1500の第2の軸に沿った画素位置を示している。グリッド1500は、現在のフレームの一部分の複数の画素位置を示す。1008において復号化器で予測プロセスを実行するために、1006,1008での処理を組み合わせることができる。例えば、1006のプロセスを実行する前に、1008の予測プロセスは、(例えば、動きベクトルのようなヘッダ情報から)現在のブロックを符号化するために使用される参照ブロックを検出することを含み得る。図15では、現在のコーディングブロック1502の動きベクトルは、内側の破線1504によって示される参照ブロックを指す。現在のコーディングブロック1502は、4×4の画素を含む。参照ブロックは現在のフレームではなく参照フレームにあるため、参照ブロックの位置は、破線1504で示されている。
参照ブロックが位置付けられると、参照ブロックにわたる(つまり、オーバーラップする)すべての参照ブロックが識別される。このことは、複数のサブ画素補間フィルタを考慮するために、各境界でのフィルタ長の半分だけ参照ブロックサイズを拡張することを含み得る。図15では、サブ画素補間フィルタ長Lは、外側の破線1506によって示される複数の境界まで参照ブロックを拡張するために使用される。比較的一般的であるように、動きベクトルは、複数のフル画素位置(full-pel locations)と完全には整列しない参照ブロックとなる。図15の暗くなっている領域は、複数のフル画素位置を示す。フル画素位置と重複するすべての参照ブロックが識別される。ブロックサイズが現在のコーディングブロック1502と同じであると仮定すると、現在のブロックと並置された第1の参照ブロックと、第1の参照ブロックの上にある第2の参照ブロックと、第1の参照ブロックの左から延びる2つの参照ブロックと、第2の参照ブロックの左から延びる2つの参照ブロックとが識別される。
参照ブロックが識別されると、プロセス1200は、1006において、識別された参照ブロックと並置された現在のフレーム内の複数のブロックについてのみ実行されて、並置された/オプティカルフローの推定された複数の参照ブロックを生成する。図15の例では、結果として、6つのオプティカルフロー参照フレーム部分が得られる。
この修正されたプロセスによれば、符号化器と復号化器が同じ予測子を有することが保証され、復号化器は、同じ位置に配置された参照フレームの全体を計算する必要がない。任意の拡張された複数の境界を含む後続のブロックの1つまたは複数の参照ブロックは、現在のブロックの復号化プロセスで識別された1つまたは複数の参照ブロックと重複する可能性があることは注目に値する。この場合、オプティカルフロー推定は、復号化器における複数の計算要件をさらに低減するために、識別された複数のブロックのいずれかに対して1回だけ実行される必要がある。換言すると、1216において生成された参照ブロックは、現在のフレームの他のブロックを復号化する際に使用するために格納されてもよい。
しかし、複数の予測ブロックは復号化器で生成されるが、符号化されたビットストリームからの現在のブロックのための復号化された残差は、図5の復号化器500に関して例として説明されるように、再構成されたブロックを形成するために予測ブロックと組み合わせることができる。
1008における予測プロセスは、プロセス1200の後に行われるか、またはプロセス1200と併せて行われるかにかかわらず、現在のフレームが復号化されるまで、オプティカルフロー参照フレーム部分を用いて符号化された現在のフレームのすべてのブロックについて反復され得る。ブロックを復号順序で処理する際に、オプティカルフロー参照フレーム部分を用いて符号化されていないブロックは、従来、符号化されたビットストリームからそのブロックについて復号された予測モードに従って復号化され得る。
フレームまたはブロック内のN個の画素について、オプティカルフローの計算式を解く複雑さは、O(N*M)によって表され、ここで、Mは、線形方程式を解くための反復数である。Mは、レベルの数またはラグランジュパラメータλの値の数とは関係ない。代わりに、Mは線形方程式を解く際の計算精度に関連している。Mの値を大きくすると、精度が向上する。この複雑さを前提として、フレームレベルからサブフレームレベル(例えば、ブロックに基づく)推定への移行は、復号器の複雑さを低減するためのいくつかの任意選択を提供する。第1に、動きフィールドの平滑性の制約がブロックの複数の境界で緩和されるため、ブロックの線形方程式を解くときに解に収束しやすくなり、同様の精度でより小さいMが得られる。第2に、動きベクトルに対する解法は、平滑度ペナルティ係数のためにその隣接する複数の動きベクトルを含む。ブロックの複数の境界の動きベクトルは、隣接するより少ない動きベクトルを有して、計算が高速になる。第3に、上述したように、オプティカルフローは、インター予測のために、並置参照フレームを使用してこれらの符号化ブロックによって識別される並置参照フレームの複数のブロックの一部分についてのみ計算される必要があり、フレーム全体については計算する必要がない。
説明を簡単にするために、プロセス1000,1100,1200の各々は、一連のステップまたは動作として示され説明されている。しかしながら、本開示による複数のステップまたは複数の動作は、様々な順序でおよび/または同時に進行することができる。加えて、本明細書で提示および説明されていない他の複数のステップまたは複数の動作が使用されてもよい。さらに、開示された主題に従って方法を実施するために、図示された全てのステップまたは動作が必要とされるわけではない。
上述の符号化および復号化の態様は、符号化および復号化技術のいくつかの例を示す。しかしながら、符号化および復号化は、特許請求の範囲で使用されるそれらの用語として圧縮、圧縮解除、変換、または任意の他の処理またはデータの変更を意味し得ることを理解されたい。
「例」という語は、本明細書では、例、事例、または実例としての役割を意味するものとして使用される。本明細書において「例」と記載された任意の態様または設計は、必ずしも他の態様または設計に対して好ましいまたは有利であるとして解釈されるべきではない。むしろ、「例」という言葉の使用は、具体的な方法で概念を提示することを意図している。本出願で使用される場合、用語「または」は、排他的な「または」ではなく、包括的な「または」を意味することが意図される。即ち、他に明記されていない限り、または文脈から明らかでない限り、「XはAまたはBを含む」とは、任意の自然な包含的置換(natural inclusive permutations)を意味することを意図する。即ち、「XはAまたはBを含む」は、以下の場合、XがAを含む場合、XがBを含む場合、またはXがAおよびBの両方を含む場合のいずれにおいても満足される。さらに、本出願および添付の特許請求の範囲で使用される冠詞「a」および「an」は、他に明記されない限り、または単数形に向けられる文脈から明らかでない限り、「1つまたは複数」を意味すると一般に解釈されるべきである。さらに、「実施形態」または「一実施形態」という用語の使用は、そのように記載されない限り、同じ実施形態または実施を意味することを意図するものではない。
送信局102および/または受信局106(ならびに、符号化器400および復号化器500が含む、それに記憶され、かつ/またはそれによって実行されるアルゴリズム、方法、命令など)の実施形態は、ハードウェア、ソフトウェア、またはそれらの任意の組み合わせにおいて実現することができる。ハードウェアは、例えば、コンピュータ、知的財産(IP)コア、特定用途向け集積回路(ASIC:application-specific integrated circuits)、プログラマブル論理アレイ、光プロセッサ、プログラマブル論理コントローラ、マイクロコード、マイクロコントローラ、サーバ、マイクロプロセッサ、デジタル信号プロセッサ、または他の適切な回路を含むことができる。特許請求の範囲において、「プロセッサ」という用語は、前述のハードウェアのいずれかを単独でまたは組み合わせて含むものとして理解されるべきである。用語「信号」および「データ」は互換的に使用される。さらに、送信局102および受信局106の一部は、必ずしも同じ方法で実施される必要はない。
さらに、一態様では、例えば、送信局102または受信局106は、実行時に、本明細書に記載された個々の方法、アルゴリズム、および/または命令をのうちのいずれかを実行するコンピュータプログラムを備えた汎用コンピュータまたは汎用プロセッサを使用して実施することができる。加えて、または代替的に、例えば、本明細書に記載された方法、アルゴリズム、または命令のいずれかを実行するための他のハードウェアを含むことができる専用コンピュータ/プロセッサを利用することができる。
送信局102および受信局106は、例えば、ビデオ会議システム内のコンピュータ上で実施することができる。あるいは、送信局102はサーバ上で実施することができ、受信局106はサーバとは別のハンドヘルド通信デバイスのようなデバイス上で実施することができる。この場合、送信局102は、符号化器400を使用してコンテンツを符号化されたビデオ信号に符号化し、符号化されたビデオ信号を通信デバイスに送信することができる。通信デバイスは、復号化器500を使用して符号化されたビデオ信号を復号化することができる。あるいは、通信デバイスは、通信デバイス上に局所的に格納されたコンテンツ、例えば、送信局102によって送信されなかったコンテンツを復号化することができる。他の適切な送信および受信の実施方式が利用可能である。例えば、受信局106は、ポータブル通信デバイスではなく、一般に固定のパーソナルコンピュータであってもよく、かつ/または符号化器400を含むデバイスは、復号化器500を含んでもよい。
さらに、本開示の実施形態の全部または一部は、例えばコンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態を取ることができる。コンピュータ使用可能またはコンピュータ可読媒体は、例えば、任意のプロセッサによって使用されるプログラムを有形に包含、格納、通信、または輸送することができる任意のデバイスであり得る。媒体は、例えば、電子、磁気、光学、電磁気、または半導体デバイスであり得る。他の適切な媒体も利用可能である。
さらなる実施形態については、以下の複数の例において要約される。
例1:方法であって、ビデオシーケンス内にある予測されるべき第1のフレームを決定すること、前記第1のフレームの前方インター予測のために前記ビデオシーケンスから第1の参照フレームを決定すること、前記第1のフレームの後方インター予測のために前記ビデオシーケンスから第2の参照フレームを決定すること、前記第1の参照フレームおよび前記第2の参照フレームを用いてオプティカルフロー推定を実行することによって、前記第1のフレームのインター予測のためのオプティカルフロー参照フレームを生成すること、前記オプティカルフロー参照フレームを使用して、前記第1のフレームに対して予測プロセスを実行すること、を備える方法。
例2:前記オプティカルフロー参照フレームを生成することは、前記第1のフレームの各画素についてラグランジュ関数を最小化することによってオプティカルフロー推定を実行すること、を含む例1に記載の方法。
例3:前記オプティカルフロー推定は、前記第1のフレームの複数の画素の対応する動きフィールドを生成し、 前記オプティカルフロー参照フレームを生成することは、前記複数の動きフィールドを使用して前記第1の参照フレームを前記第1のフレームにワーピングして、第1のワーピングされた参照フレームを形成すること、前記複数の動きフィールドを使用して前記第2の参照フレームを前記第1のフレームにワーピングして、第2のワーピングされた参照フレームを形成すること、前記第1のワーピングされた参照フレームおよび前記第2のワーピングされた参照フレームをブレンディングして、前記オプティカルフロー参照フレームを形成すること、を含む、例1または2に記載の方法。
例4:前記第1のワーピングされた参照フレームおよび前記第2のワーピングされた参照フレームをブレンディングすることは、前記第1の参照フレームと前記第2の参照フレームとの間の距離、並びに前記現在のフレームと前記第1の参照フレームおよび前記第2の参照フレームの各々との間の距離を使用して、並置された複数の画素の値をスケーリングすることによって、前記第1のワーピングされた参照フレームおよび前記第2のワーピングされた参照フレームの並置された複数の画素の値を組み合わせることを含む、例3に記載の方法。
例5:前記第1のワーピングされた参照フレームおよび前記第2のワーピングされた参照フレームをブレンディングすることは、前記第1のワーピングされた参照フレームおよび前記第2のワーピングされた参照フレームの並置された複数の画素の値を組み合わせること、並びに前記第1のワーピングされた参照フレームおよび前記第2のワーピングされた参照フレームのうちの1つの単一画素の値を使用することの一方によって、前記オプティカルフロー参照フレームの複数の画素の位置を提供すること、を含む、例3または4に記載の方法。
例6:前記第1のワーピングされた参照フレームおよび前記第2のワーピングされた参照フレームを用いて前記第1の参照フレーム内のオクルージョンを検出することをさらに備え、前記第1のワーピングされた参照フレームおよび前記第2のワーピングされた参照フレームをブレンディングすることは、前記オクルージョンに対応する前記オプティカルフロー参照フレームの画素位置に前記第2のワーピングされた参照フレームからの画素値を提供することを含む、例1〜6のいずれか1つに記載の方法。
例7:前記予測プロセスを実行することは、前記第1のフレームの複数のブロックの単一参照インター予測だけのために前記オプティカルフロー参照フレームを使用することを含む、例1〜6のいずれか1つに記載の方法。
例8:前記第1の参照フレームは、前記第1のフレームの前方インター予測に利用可能な前記第1のフレームに対する前記ビデオシーケンスの表示順序において最も近い再構成フレームであり、前記第2の参照フレームは、前記第1のフレームの後方インター予測に利用可能な前記第1のフレームに対する前記表示順序において最も近い再構成フレームである、例1〜7のいずれか1つに記載の方法。
例9:前記予測プロセスを実行することは、第1フレームの第1のブロックと並置されたオプティカルフロー参照フレーム内の参照ブロックを決定すること、前記参照ブロックと前記第1のブロックの残差を符号化すること、を含む例1〜8のいずれか1つに記載の方法。
例10:装置であって、プロセッサと、前記プロセッサが実行して方法を実行可能な命令を含む非一時的な記憶媒体と、を備え、前記方法は、ビデオシーケンス内の予測されるべき第1のフレームを決定すること、前記第1のフレームの前方インター予測のための第1の参照フレームおよび前記第1のフレームの後方インター予測のための第2の参照フレームが利用できるかどうかを判定すること、前記第1の参照フレームおよび前記第2の参照フレームの両方が利用できると判定したことに応答して、オプティカルフロー推定を用いて、前記第1の参照フレームおよび前記第2の参照フレームを使用して、第1のフレームの複数の画素の対応する動きフィールドを生成すること、
複数の動きフィールドを使用して第1の参照フレームを前記第1のフレームにワーピングして第1のワーピングされた参照フレームを形成すること、前記複数の動きフィールドを使用して第2の参照フレームを前記第1のフレームにワーピングして第2のワーピングされた参照フレームを形成すること、前記第1のワーピングされた参照フレームおよび前記第2のワーピングされた参照フレームをブレンディングして、前記第1のフレームのブロックのインター予測のためにオプティカルフロー参照フレームを形成することを、含む、装置。
例11:前記オプティカルフロー参照フレームを使用して、前記第1のフレームに対して予測プロセスを実行すること、をさらに備える例10に記載の装置。
例12:前記第1のフレームの複数のブロックの単一参照インター予測にのみ前記オプティカルフロー参照フレームを用いることをさらに備える例10または11に記載の装置。
例13:対応する動きフィールドを生成することは、前記第1の参照フレームおよび前記第2の参照フレームを使用して、前記第1のフレームの各画素についてラグランジュ関数の出力を計算することを含む、例10〜12に記載のいずれか一つに記載の装置。
例14:ラグランジュ関数の出力を計算することは、ラグランジュパラメータの第1の値を使用して、前記現在のフレームの複数の画素の第1の組の動きフィールドを計算すること、前記ラグランジュパラメータの第2の値を使用する前記ラグランジュ関数への入力として前記第1の組の動きフィールドを使用して、前記現在のフレームの複数の画素の向上された1組の動きフィールドを計算すること、を含み、前記ラグランジュパラメータの第2の値は、前記ラグランジュパラメータの第1の値よりも小さく、前記第1のワーピングされた参照フレームおよび前記第2のワーピングされた参照フレームは、前記向上された1組の動きフィールドを用いてワーピングされる、例13に記載の装置。
例15:装置であって、プロセッサと、前記プロセッサが実行して方法を実行可能な命令を含む非一時的な記憶媒体と、を備え、前記方法は、ビデオシーケンスからの第1の参照フレームおよび前記ビデオシーケンスからの第2の参照フレームを使用して、前記ビデオシーケンスの第1のフレームのインター予測のためにオプティカルフロー参照フレームを生成すること、オプティカルフロー推定の第1の処理レベルで第1のフレームの複数の画素の動きフィールドを初期化することであって、前記第1の処理レベルは、前記第1のフレーム内のダウンスケーリングされた動きを示し、複数レベルのうちの特定のレベルを含む、前記初期化すること、前記複数レベルの各レベルに対して、前記複数の動きフィールドを使用して前記第1の参照フレームを前記第1のフレームにワーピングして、第1のワーピングされた参照フレームを形成すること、前記複数の動きフィールドを使用して前記第2の参照フレームを前記第1のフレームにワーピングして、第2のワーピングされた参照フレームを形成すること、前記オプティカルフロー推定を使用して、前記第1のワーピングされた参照フレームと前記第2のワーピングされた参照フレームとの間の複数の動きフィールドを推定すること、前記第1のワーピングされた参照フレームと前記第2のワーピングされた参照フレームとの間の複数の動きフィールドを使用して、前記第1のフレームの複数の画素の複数の動きフィールドを更新すること、前記複数レベルのうちの最後のレベルに対して、更新された複数の動きフィールドを使用して前記第1の参照フレームを前記第1のフレームにワーピングして、最後の第1のワーピングされた参照フレームを形成すること、前記更新された複数の動きフィールドを使用して前記第2の参照フレームを前記第1のフレームにワーピングして、最後の第2のワーピングされた参照フレームを形成すること、前記最後の第1のワーピングされた参照フレームおよび前記第2のワーピングされた参照フレームをブレンディングして、前記オプティカルフロー参照フレームを形成すること、を備える装置。
例16:前記オプティカルフロー推定では、のフレームの各画素に対するラグランジュ関数が用いられる、例15に記載の装置。
例17:前記複数のレベルの各レベルについて、前記ラグランジュ関数のラグランジュパラメータを、第1の参照フレームのワーピング、第2の参照フレームのワーピング、複数の動きフィールドの推定、および動きフィールドの更新の第1の反復に対して最大値に初期化すること、前記第1の参照フレームのワーピング、前記第2の参照フレームのワーピング、前記複数の動きフィールドの推定、前記ラグランジュパラメータの1組の可能な値の順次小さくなる値を用いた複数の動きフィールドの推定の追加の反復を実行すること、をさらに備える例16に記載の装置。
例18:前記複数の動きフィールドを推定することは、水平軸、垂直軸、および時刻に関して、前記第1のワーピングされた参照フレームおよび前記第2のワーピングされた参照フレームの複数の画素の複数の微分係数を計算すること、前記最後のレベルとは異なるレベルに応じて前記複数の微分係数をダウンスケーリングすること、前記複数の微分係数を使用して前記ラグランジュ関数を表す線形方程式を解くこと、を含む、例16または17に記載の装置。
例19:前記オプティカルフロー参照フレームを使用して、前記第1のフレームをインター予測すること、をさらに備える例15〜18のいずれか1つに記載の装置。
例20:前記プロセッサおよび前記一時的記憶媒体は復号化器を形成する、例15〜19のいずれか一つに記載の装置。
上述した実施形態、実施例及び態様は、本発明の理解を容易にするために記載されており、本発明を限定するものではない。本発明は、添付の特許請求の範囲内に含まれる様々な改変および均等の構成を包含することを意図しており、その範囲は、法律で許容されるようなすべての改変および均等の構造を包含するように最も広い解釈が与えられる。

Claims (21)

  1. 方法であって、
    ビデオシーケンス内にある予測されるべき第1のフレームの第1のフレーム部分を決定すること、
    前記第1のフレームの前方インター予測のために前記ビデオシーケンスから第1の参照フレームを決定すること、
    前記第1のフレームの後方インター予測のために前記ビデオシーケンスから第2の参照フレームを決定すること、
    前記第1の参照フレームおよび前記第2の参照フレームを用いてオプティカルフロー推定を実行することによって、前記第1のフレーム部分のインター予測のためにオプティカルフロー参照フレーム部分を生成すること、
    前記オプティカルフロー参照フレーム部分を使用して、前記第1のフレーム部分に対して予測プロセスを実行すること、を備える方法。
  2. 前記オプティカルフロー参照フレーム部分を生成することは、
    前記第1のフレーム部分の各画素についてラグランジュ関数を最小化することによってオプティカルフロー推定を実行すること、を含む、請求項1に記載の方法。
  3. 前記オプティカルフロー推定によって、前記第1のフレーム部分の複数の画素の対応する動きフィールドが生成され、
    前記オプティカルフロー参照フレーム部分を生成することは、
    前記複数の動きフィールドを使用して前記第1のフレーム部分と並置された前記第1の参照フレームの複数の画素を前記第1のフレーム部分にワーピングして、第1のワーピングされた参照フレーム部分を形成すること、
    前記複数の動きフィールドを使用して前記第1のフレーム部分と並置された前記第2の参照フレームの複数の画素を前記第1のフレーム部分にワーピングして、第2のワーピングされた参照フレーム部分を形成すること、
    前記第1のワーピングされた参照フレーム部分および前記第2のワーピングされた参照フレーム部分をブレンディングして、前記オプティカルフロー参照フレーム部分を形成すること、を含む、請求項1または2に記載の方法。
  4. 前記第1のワーピングされた参照フレーム部分および前記第2のワーピングされた参照フレーム部分をブレンディングすることは、
    前記第1の参照フレームと前記第2の参照フレームとの間の距離、並びに前記現在のフレームと前記第1の参照フレームおよび前記第2の参照フレームの各々との間の距離を使用して、並置された複数の画素の値をスケーリングすることによって、前記第1のワーピングされた参照フレーム部分および前記第2のワーピングされた参照フレーム部分の並置された複数の画素の値を組み合わせることを含む、請求項3に記載の方法。
  5. 前記第1のワーピングされた参照フレーム部分および前記第2のワーピングされた参照フレーム部分をブレンディングすることは、
    前記第1のワーピングされた参照フレーム部分および前記第2のワーピングされた参照フレーム部分の並置された複数の画素の値を組み合わせること、並びに前記第1のワーピングされた参照フレーム部分および前記第2のワーピングされた参照フレーム部分のうちの1つの単一画素の値を使用することの一方によって、前記オプティカルフロー参照フレーム部分の複数の画素の位置に提供すること、を含む、請求項3または4に記載の方法。
  6. 前記第1のフレーム部分は、前記第1のフレームまたは前記第1のフレームの現在のブロックのうちの1つを含み、
    前記オプティカルフロー参照フレーム部分は、前記第1のフレーム部分が前記現在のブロックを含む場合にブロックであり、前記第1のフレーム部分が前記第1のフレームを含む場合にフレーム全体である、請求項1〜5のいずれか1項に記載の方法。
  7. 前記第1の参照フレームは、前記第1のフレームの前方インター予測に利用可能な前記第1のフレームに対する前記ビデオシーケンスの表示順序において最も近い再構成フレームであり、前記第2の参照フレームは、前記第1のフレームの後方インター予測に利用可能な前記第1のフレームに対する前記表示順序において最も近い再構成フレームである、請求項1〜6のいずれか1項に記載の方法。
  8. 前記第1のフレーム部分は、復号化されるべき現在のブロックであり、
    前記予測プロセスを実行することは、
    前記現在のブロックを符号化するために使用される動きベクトルを使用して、参照ブロックの位置を特定すること、
    サブ画素補間フィルタの長さによって前記参照ブロックの複数の境界を調整すること、
    前記参照ブロックの調整された複数の境界内の複数の画素を含む複数のブロックを特定すること、
    前記第1のフレームの残りのブロックについてオプティカルフロー推定を行うことなく、特定された複数のブロックと並置された第1フレームの複数のブロックについて前記オプティカルフロー推定を行うことを含む前記オプティカルフロー参照フレーム部分を生成すること、を含む、請求項1〜7のいずれか1項に記載の方法。
  9. 前記第1のフレーム部分は、符号化されるべき現在のブロックであり、
    前記オプティカルフロー参照フレーム部分を生成することは、
    前記現在のブロックとしての前記第1のフレームの各ブロックに対してオプティカルフロー推定を実行してオプティカルフロー参照フレームの対応する並置参照ブロックを生成することを含み、
    前記予測プロセスを実行することは、
    複数の並置参照ブロックを自身の各画素の位置において組み合わせることによって、前記オプティカルフロー参照フレームを形成すること、
    前記オプティカルフロー参照フレームを参照フレームバッファに格納すること、
    前記現在のブロックの動き検索のために前記オプティカルフロー参照フレームを用いること、を含む、請求項1〜8のいずれか1項に記載の方法。
  10. 装置であって、
    プロセッサと、
    前記プロセッサが実行して方法を実行可能な命令を含む非一時的な記憶媒体と、を備え、
    前記方法は、
    ビデオシーケンス内の予測されるべき第1のフレームを決定すること、
    前記第1のフレームの前方インター予測のための第1の参照フレームおよび前記第1のフレームの後方インター予測のための第2の参照フレームが利用できるかどうかを判定すること、
    前記第1の参照フレームおよび前記第2の参照フレームの両方が利用できると判定したことに応答して、
    オプティカルフロー推定プロセスへの入力として、前記第1の参照フレームおよび前記第2の参照フレームを使用して、第1のフレーム部分の複数の画素の対応する動きフィールドを生成すること、
    複数の動きフィールドを使用して第1の参照フレーム部分を前記第1のフレーム部分にワーピングして第1のワーピングされた参照フレーム部分を形成することであって、前記第1の参照フレーム部分は、前記第1のフレーム部分の複数の画素と並置された前記第1の参照フレームの複数の画素を含む、前記形成すること、
    前記複数の動きフィールドを使用して第2の参照フレーム部分を前記第1のフレーム部分にワーピングして第2のワーピングされた参照フレーム部分を形成することであって、前記第2の参照フレーム部分は、前記第1のフレーム部分の複数の画素と並置された前記第2の参照フレームの複数の画素を含む、前記形成すること、
    前記第1のワーピングされた参照フレーム部分および前記第2のワーピングされた参照フレーム部分をブレンディングして、前記第1のフレームのブロックのインター予測のためにオプティカルフロー参照フレーム部分を形成することを、含む、装置。
  11. 前記オプティカルフロー参照フレーム部分を使用して、前記第1のフレームの前記ブロックに対して予測プロセスを実行すること、をさらに備える請求項10に記載の装置。
  12. 前記第1のフレームの複数のブロックの単一参照インター予測にのみ前記オプティカルフロー参照フレーム部分を用いることをさらに備える請求項10または11に記載の装置。
  13. 対応する動きフィールドを生成することは、
    前記第1の参照フレーム部分および前記第2の参照フレーム部分を使用して、前記第1のフレーム部分の各画素についてラグランジュ関数の出力を計算することを含む、請求項10〜12に記載のいずれか一項に記載の装置。
  14. 前記ラグランジュ関数の出力を計算することは、
    ラグランジュパラメータの第1の値を使用して、前記第1のフレーム部分の複数の画素の第1の組の動きフィールドを計算すること、
    前記ラグランジュパラメータの第2の値を使用する前記ラグランジュ関数への入力として前記第1の組の動きフィールドを使用して、前記第1のフレーム部分の複数の画素の再調整された1組の動きフィールドを計算すること、を含み、
    前記ラグランジュパラメータの第2の値は、前記ラグランジュパラメータの第1の値よりも小さく、前記第1のワーピングされた参照フレームおよび前記第2のワーピングされた参照フレームは、前記再調整された1組の動きフィールドを用いてワーピングされる、請求項13に記載の装置。
  15. 装置であって、
    プロセッサと、
    前記プロセッサが実行して方法を実行可能な命令を含む非一時的な記憶媒体と、を備え、
    前記方法は、
    ビデオシーケンスからの第1の参照フレームおよび前記ビデオシーケンスからの第2の参照フレームを使用して、前記ビデオシーケンスの第1のフレームのブロックのインター予測のためにオプティカルフロー参照フレーム部分を生成すること、
    オプティカルフロー推定の第1の処理レベルで第1のフレーム部分の複数の画素の動きフィールドを初期化することであって、前記第1の処理レベルは、前記第1のフレーム部分内のダウンスケーリングされた動きを示し、複数レベルのうちの特定のレベルを含む、前記初期化すること、
    前記複数レベルの各レベルに対して、
    前記複数の動きフィールドを使用して第1の参照フレーム部分を前記第1のフレーム部分にワーピングして、第1のワーピングされた参照フレーム部分を形成すること、
    前記複数の動きフィールドを使用して第2の参照フレーム部分を前記第1のフレーム部分にワーピングして、第2のワーピングされた参照フレーム部分を形成すること、
    前記オプティカルフロー推定を使用して、前記第1のワーピングされた参照フレーム部分と前記第2のワーピングされた参照フレーム部分との間の複数の動きフィールドを推定すること、
    前記第1のワーピングされた参照フレーム部分と前記第2のワーピングされた参照フレーム部分との間の複数の動きフィールドを使用して、前記第1のフレーム部分の複数の画素の複数の動きフィールドを更新すること、
    前記複数レベルのうちの最後のレベルに対して、
    更新された複数の動きフィールドを使用して前記第1の参照フレーム部分を前記第1のフレーム部分にワーピングして、最後の第1のワーピングされた参照フレーム部分を形成すること、
    前記更新された複数の動きフィールドを使用して前記第2の参照フレーム部分を前記第1のフレーム部分にワーピングして、最後の第2のワーピングされた参照フレーム部分を形成すること、
    前記最後の第1のワーピングされた参照フレーム部分および前記第2のワーピングされた参照フレーム部分をブレンディングして、前記オプティカルフロー参照フレーム部分を形成すること、を備える、装置。
  16. 前記オプティカルフロー推定では、前記第1のフレーム部分の各画素に対するラグランジュ関数が用いられる、請求項15に記載の装置。
  17. 前記複数のレベルの各レベルについて、
    前記ラグランジュ関数のラグランジュパラメータを、第1の参照フレーム部分のワーピング、第2の参照フレーム部分のワーピング、複数の動きフィールドの推定、および動きフィールドの更新の第1の反復に対して最大値に初期化すること、
    前記第1の参照フレーム部分のワーピング、前記第2の参照フレーム部分のワーピング、前記複数の動きフィールドの推定、前記ラグランジュパラメータの1組の可能な値の順次小さくなる値を用いた複数の動きフィールドの推定の追加の反復を実行すること、をさらに備える請求項16に記載の装置。
  18. 前記複数の動きフィールドを推定することは、
    水平軸、垂直軸、および時刻に関して、前記第1のワーピングされた参照フレーム部分および前記第2のワーピングされた参照フレーム部分の複数の画素の複数の微分係数を計算すること、
    前記最後のレベルとは異なるレベルに応じて前記複数の微分係数をダウンスケーリングすること、
    前記複数の微分係数を使用して前記ラグランジュ関数を表す線形方程式を解くこと、を含む、請求項16または17に記載の装置。
  19. 前記オプティカルフロー参照フレーム部分を使用して、前記第1のフレームの現在のブロックをインター予測すること、をさらに備える請求項15〜18のいずれか1項に記載の装置。
  20. 前記プロセッサおよび前記一時的記憶媒体は復号化器を形成する、請求項15〜19のいずれか一項に記載の装置。
  21. 装置であって、
    プロセッサと、
    前記プロセッサが実行して方法を実行可能な命令を含む非一時的な記憶媒体と、を備え、
    前記方法は、
    ビデオシーケンス内にある予測されるべき第1のフレームの第1のフレーム部分を決定すること、
    前記第1のフレームの前方インター予測のために前記ビデオシーケンスから第1の参照フレームを決定すること、
    前記第1のフレームの後方インター予測のために前記ビデオシーケンスから第2の参照フレームを決定すること、
    前記第1の参照フレームおよび前記第2の参照フレームを用いてオプティカルフロー推定を実行することによって、前記第1のフレーム部分のインター予測のためにオプティカルフロー参照フレーム部分を生成すること、
    前記オプティカルフロー参照フレーム部分を使用して、前記第1のフレーム部分に対して予測プロセスを実行すること、を備える方法。
JP2019566280A 2017-08-22 2018-05-10 映像コーディングにおける動き補償予測のオプティカルフロー推定 Active JP6905093B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/683,684 US11284107B2 (en) 2017-08-22 2017-08-22 Co-located reference frame interpolation using optical flow estimation
US15/683,684 2017-08-22
US15/817,369 US10659788B2 (en) 2017-11-20 2017-11-20 Block-based optical flow estimation for motion compensated prediction in video coding
US15/817,369 2017-11-20
PCT/US2018/032054 WO2019040134A1 (en) 2017-08-22 2018-05-10 OPTICAL FLOW ESTIMATING FOR MOTION COMPENSATION PREDICTION IN VIDEO CODING

Publications (2)

Publication Number Publication Date
JP2020522200A true JP2020522200A (ja) 2020-07-27
JP6905093B2 JP6905093B2 (ja) 2021-07-21

Family

ID=62567747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019566280A Active JP6905093B2 (ja) 2017-08-22 2018-05-10 映像コーディングにおける動き補償予測のオプティカルフロー推定

Country Status (5)

Country Link
EP (1) EP3673655A1 (ja)
JP (1) JP6905093B2 (ja)
KR (2) KR102295520B1 (ja)
CN (2) CN118055253A (ja)
WO (1) WO2019040134A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2024509881A (ja) * 2021-03-11 2024-03-05 クアルコム,インコーポレイテッド Pフレームコーディングシステムを使用する学習型bフレームコーディング
US12100169B2 (en) * 2020-09-30 2024-09-24 Qualcomm Incorporated Sparse optical flow estimation
JP2025535463A (ja) * 2023-02-01 2025-10-24 テンセント・アメリカ・エルエルシー 複合インター予測モードのためのシグナリングのための方法、装置及びコンピュータプログラム

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111886864A (zh) * 2019-03-01 2020-11-03 阿里巴巴集团控股有限公司 分辨率自适应视频编码
WO2021060834A1 (ko) * 2019-09-24 2021-04-01 엘지전자 주식회사 서브픽처 기반 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
CN110572677B (zh) * 2019-09-27 2023-10-24 腾讯科技(深圳)有限公司 视频编解码方法和装置、存储介质及电子装置
CN113473145B (zh) * 2020-03-31 2024-05-31 武汉Tcl集团工业研究院有限公司 一种视频压缩方法、视频解压方法、智能终端及存储介质
CN111526370B (zh) * 2020-04-17 2023-06-02 Oppo广东移动通信有限公司 视频编码、解码方法及装置和电子设备
CN111935425B (zh) * 2020-08-14 2023-03-24 字节跳动有限公司 视频降噪方法、装置、电子设备及计算机可读介质
CN112533026A (zh) * 2020-11-27 2021-03-19 西安蓝极医疗电子科技有限公司 基于卷积神经网络的视频插帧方法
US11494881B2 (en) * 2020-12-29 2022-11-08 Hb Innovations, Inc. Global movement image stabilization systems and methods
US12192673B2 (en) 2021-03-16 2025-01-07 Samsung Electronics Co., Ltd. Accurate optical flow interpolation optimizing bi-directional consistency and temporal smoothness
US11638025B2 (en) * 2021-03-19 2023-04-25 Qualcomm Incorporated Multi-scale optical flow for learned video compression
CN113613003B (zh) * 2021-08-30 2024-03-22 北京市商汤科技开发有限公司 视频压缩、解压缩方法及装置、电子设备和存储介质
KR20230142375A (ko) * 2022-04-01 2023-10-11 주식회사 케이티 비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체
WO2023200249A1 (ko) * 2022-04-12 2023-10-19 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2024254037A1 (en) * 2023-06-05 2024-12-12 Google Llc Limiting signaled motion vector syntax for temporally interpolated picture video coding
CN121264037A (zh) * 2023-06-06 2026-01-02 谷歌有限责任公司 使用帧级别运动向量的经时间插值的图片预测
WO2026007010A1 (en) * 2024-07-02 2026-01-08 Guangdong Oppo Mobile Telecommunications Corp., Ltd. System and method for unified reference picture synthesis
CN119854521B (zh) * 2024-12-30 2025-10-28 上海富瀚微电子股份有限公司 运动矢量估计方法、系统及可读存储介质
CN121284252B (zh) * 2025-12-10 2026-02-24 瀚博半导体(上海)股份有限公司 一种解码图像的方法、装置和介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014511054A (ja) * 2011-02-18 2014-05-01 シーメンス アクチエンゲゼルシヤフト 画像シーケンスを圧縮するためのコーディング方法及び画像コーディング装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8144778B2 (en) * 2007-02-22 2012-03-27 Sigma Designs, Inc. Motion compensated frame rate conversion system and method
WO2012012582A1 (en) * 2010-07-21 2012-01-26 Dolby Laboratories Licensing Corporation Reference processing using advanced motion models for video coding
US9230303B2 (en) * 2013-04-16 2016-01-05 The United States Of America, As Represented By The Secretary Of The Navy Multi-frame super-resolution of image sequence with arbitrary motion patterns
CN103327327B (zh) * 2013-06-03 2016-03-30 电子科技大学 用于高性能视频编码hevc的帧间预测编码单元选择方法
CN107925775A (zh) * 2015-09-02 2018-04-17 联发科技股份有限公司 基于双向预测光流技术的视频编解码的运动补偿方法及装置
US10375413B2 (en) * 2015-09-28 2019-08-06 Qualcomm Incorporated Bi-directional optical flow for video coding
US10469841B2 (en) * 2016-01-29 2019-11-05 Google Llc Motion vector prediction using prior frame residual
WO2017133661A1 (en) * 2016-02-05 2017-08-10 Mediatek Inc. Method and apparatus of motion compensation based on bi-directional optical flow techniques for video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014511054A (ja) * 2011-02-18 2014-05-01 シーメンス アクチエンゲゼルシヤフト 画像シーケンスを圧縮するためのコーディング方法及び画像コーディング装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JIANLE CHEN ET AL., ALGORITHM DESCRIPTION OF JOINT EXPLORATION TEST MODEL 7 (JEM 7), JPN6021000984, 19 August 2017 (2017-08-19), pages 23 - 27, ISSN: 0004426514 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12100169B2 (en) * 2020-09-30 2024-09-24 Qualcomm Incorporated Sparse optical flow estimation
JP2024509881A (ja) * 2021-03-11 2024-03-05 クアルコム,インコーポレイテッド Pフレームコーディングシステムを使用する学習型bフレームコーディング
JP2025535463A (ja) * 2023-02-01 2025-10-24 テンセント・アメリカ・エルエルシー 複合インター予測モードのためのシグナリングのための方法、装置及びコンピュータプログラム

Also Published As

Publication number Publication date
KR20200002036A (ko) 2020-01-07
WO2019040134A1 (en) 2019-02-28
EP3673655A1 (en) 2020-07-01
KR102295520B1 (ko) 2021-08-27
JP6905093B2 (ja) 2021-07-21
CN118055253A (zh) 2024-05-17
KR102400078B1 (ko) 2022-05-18
CN110741640B (zh) 2024-03-29
CN110741640A (zh) 2020-01-31
KR20210109049A (ko) 2021-09-03

Similar Documents

Publication Publication Date Title
JP6905093B2 (ja) 映像コーディングにおける動き補償予測のオプティカルフロー推定
US12244818B2 (en) Selective reference block generation without full reference frame generation
JP7558352B2 (ja) 画像予測方法および関連装置
JP7313816B2 (ja) 画像予測方法および関連装置
US11284107B2 (en) Co-located reference frame interpolation using optical flow estimation
US9241160B2 (en) Reference processing using advanced motion models for video coding
CN110741641B (zh) 用于视频压缩的方法和装置
EP3714601B1 (en) Motion field-based reference frame rendering for motion compensated prediction in video coding
US8170110B2 (en) Method and apparatus for zoom motion estimation
US12206842B2 (en) Motion field estimation based on motion trajectory derivation
WO2025073280A1 (en) Subblock-based temporal motion vector prediction
US20240422309A1 (en) Selection of projected motion vectors
US20250287032A1 (en) Motion Refinement For A Co-Located Reference Frame
CN118975230A (zh) 共位参考帧的运动细化

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191129

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20200115

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210419

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210624

R150 Certificate of patent or registration of utility model

Ref document number: 6905093

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250