JP2017526268A - ビデオ符号化のための適応検索ウィンドウの配置 - Google Patents

ビデオ符号化のための適応検索ウィンドウの配置 Download PDF

Info

Publication number
JP2017526268A
JP2017526268A JP2017505490A JP2017505490A JP2017526268A JP 2017526268 A JP2017526268 A JP 2017526268A JP 2017505490 A JP2017505490 A JP 2017505490A JP 2017505490 A JP2017505490 A JP 2017505490A JP 2017526268 A JP2017526268 A JP 2017526268A
Authority
JP
Japan
Prior art keywords
video frame
motion
search window
dimensional point
region
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
JP2017505490A
Other languages
English (en)
Other versions
JP6605581B2 (ja
JP2017526268A5 (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.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
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 ATI Technologies ULC filed Critical ATI Technologies ULC
Publication of JP2017526268A publication Critical patent/JP2017526268A/ja
Publication of JP2017526268A5 publication Critical patent/JP2017526268A5/ja
Application granted granted Critical
Publication of JP6605581B2 publication Critical patent/JP6605581B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/179Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scene or a shot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/567Motion estimation based on rate distortion criteria
    • 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/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

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

Abstract

レンダリングされたビデオフレームに関連付けられた動きヒントを利用する方法、システム及びコンピュータプログラム製品を提供する。動きヒントは、ビデオエンコーダによって実行される動き補償予測処理を進めるために、ビデオエンコーダに提供される。具体的には、動きヒントを用いて、参照ビデオフレーム内で検索ウィンドウをより良く配置することによって、参照ビデオフレーム内の画素ブロックの動きをより良く捕らえる。検索ウィンドウが参照ビデオフレーム内でより良く配置されるために、符号化処理を実行するのに必要なメモリを、符号化した画像の品質のレベルを犠牲にすることなく減らすことができる。【選択図】図3

Description

(関連出願の相互参照)
本願は、2014年8月1日に出願された米国特許出願第14/450,094号の利益を主張し、当該特許出願の内容は、参照することにより、本明細書に完全に記載されているように組み込まれる。
本願は、概してビデオ符号化に関し、より具体的には、動き補償予測に関する。
ビデオエンコーダは、符号化されるデータの量を、連続するビデオフレーム間の時間的相関を利用することによって減らすために、動き補償予測をよく適用する。動き補償予測は、カレントビデオフレームを、参照ビデオフレームの変化という観点から表現するプロセスである。動き補償予測は、1つのビデオフレームと他のビデオフレームとの間の唯一の違いがカメラの移動結果又はフレーム内を移動する物体であることが多い、という事実に基づいている。このことは、1つのフレームを表す情報の殆どが、次のフレーム内で使用される情報と同じである、ということを意味している。
動き補償予測は、カレントフレーム内のブロックごとに、「最も可能性のある」一致を参照フレーム内で検出することから構成されている。しかしながら、参照フレーム全体を検索することは、計算の複雑性及びメモリ帯域幅の観点において非常に高コストとなる。したがって、ソフトウェアビデオエンコーダ及びハードウェアビデオエンコーダの実際の実装形態では、選択されたエリア(つまり、検索範囲)を検索する。検索範囲は、先に符号化されたブロックに基づいて計算される予測動きベクトルの周りの参照フレーム内に存在する。
さらに、多くの場合では、エンコーダは、参照フレーム全体を記憶するのに十分なメモリを備えていない。したがって、実際には、ビデオエンコーダは、通常、参照フレームのサブセット(つまり、検索ウィンドウ)のみを記憶している。この検索ウィンドウは、通常、参照フレーム内に対応して配置されたブロック(つまり、配置ブロック)上に中心が置かれる。その後、予測動きベクトルは、この検索ウィンドウ内に留まるように制限される。検索エリアは、検索ウィンドウと検索範囲との間の重複領域である。
ビデオ符号化処理は、検索ウィンドウが大きいほど、計算の複雑性及びメモリ帯域幅の観点においてより高コストになる。特に、検索ウィンドウが大きいほど、要求されるメモリ設置面積が大きくなり、ビデオエンコーダのハードウェア実装コストがより高くなる。
一方、速い動きのあるフレームでは、より小さな検索ウィンドウは、動きを効果的に捕らえるための動き補償予測処理の失敗につながることがある。これは、物体が検索ウィンドウの外側に移動してしまう可能性が非常に高いからである。このことは、実際には、カレントブロックを、イントラ予測ブロック、又は、高エネルギー残差を有するインター予測ブロックとして符号化するという結果になる。それぞれの場合、エンコーダのレート歪み(R−D)性能は別々に影響を受ける。結果として、ビデオフレームを符号化するために、より高いビットレートが必要とされる。
したがって、速い動きのあるビデオを、限られたメモリを有するビデオエンコーダを用いて効果的に符号化することの可能なシステム及び方法が必要とされている。
実施形態は、特定の状況下で、動きヒントを、参照ビデオフレーム及びカレントビデオフレームを生成するアプリケーションが受信した動き情報に基づいて生成することと、ビデオエンコーダによって実行される動き補償予測処理をガイドしてカレントビデオフレームを符号化するために、動きヒントをビデオに提供することと、を行う方法を含む。この動きヒントを用いて、参照ビデオフレーム内の検索ウィンドウを改善し、参照ビデオフレーム内の画素ブロックの動きをよりよく捕らえることができる。検索ウィンドウが参照ビデオフレーム内でよりよく配置されるために、符号化処理を実行するのに必要なメモリを、符号化画像の品質のレベルを犠牲にすることなく減らすことができる。
実施形態のさらなる特徴及び利点と、実施形態の構造及び動作とを、添付の図面を参照して以下に詳細に説明する。実施形態は、本明細書において説明する特定の実施形態に限定されない、ということに留意されたい。かかる実施形態は、本明細書において、例示の目的のためだけに提示されている。追加的な実施形態は、本明細書に含まれる教示に基づいて、当業者において明白である。
本明細書に組み込まれ、且つ、本明細書の一部を形成する添付の図面は、本開示の実施形態を例示するものであって、発明を実施するための形態と共に、実施形態の原理を説明し、当業者が実施形態を製造、使用することを可能にする役目をさらに果たす。
本開示の実施形態が実装され得るシステムの機能ブロック図である。 参照ビデオフレームを用いて現在のビデオフレームを符号化するために、ビデオエンコーダによって通常用いられる動き補償予測処理を示す図である。 本開示の実施形態による、レンダリングされたビデオフレームに関連付けられた動きヒントを用いて、当該レンダリングされたビデオフレームをより効果的に符号化するためのシステムの機能ブロック図である。 本開示の実施形態による、レンダリングされたビデオフレームを、動きヒントを用いてより効果的に符号化するために、当該レンダリングされたビデオフレームを、領域とサブ領域とに分割することを示す図である。 本開示の実施形態による、レンダリングされたビデオフレームを、動きヒントを用いてより効果的に符号化するために、検索ウィンドウ位置を特定することを示す図である。 本開示の実施形態による、レンダリングされたビデオフレームを、動きヒントを用いてより効果的に符号化するために、追加的な検索ウィンドウ位置を特定することを示す図である。 本開示の実施形態による、動きヒントを用いて、ビデオエンコーダによって実行される動き補償予測処理を進める方法のフローチャートである。 本開示の実施形態による、ビデオエンコーダによって実行される動き補償予測処理を進めるために動きベクトルを生成するシステムの機能ブロック図である。 本開示の実施形態による、ビデオエンコーダによって実行される動き補償予測処理を進めるために動きヒントを決定する方法のフローチャートである。 本開示の態様を実装するのに用いられ得る例示的なコンピュータシステムのブロック図である。
添付の図面を参照して本開示の実施形態を説明する。要素が最初に現れる図面は、通常、対応する参照番号の左端の数字によって示されている。
以下の説明では、本開示の実施形態の完全な理解を提供するために、多数の具体的な詳細が明記されている。しかしながら、構造、システム及び方法を含む実施形態をこれらの具体的な詳細なしに実施可能である、ということは当業者において明白である。本明細書内の説明及び表現は、当業者の作業の本質を他の当業者に最も効果的に伝えるために、当業者によって用いられる共通手段である。他の例では、周知の方法、手順、構成要素及び回路は、本開示の態様を不必要に曖昧にすることを避けるために、詳細に説明されない。
本明細書における、「一実施形態」、「実施形態」、「例示的な実施形態」等の言及は、説明される実施形態が、特定の特性、構造又は特徴を含み得るが、全ての実施形態が、必ずしも当該特定の特性、構造又は特徴を含まなくてもよい、ということを示している。さらに、かかる表現は、必ずしも同じ実施形態を指していない。さらに、特定の特性、構造又は特徴を有する実施形態に関連して説明される場合、当該特定の特性、構造又は特徴は、明示的に説明されていようとなかろうと、他の実施形態に関連するかかる特性、構造又は特徴に影響を与えるように当業者の知識内に含まれるものとして提示される。
(1.概要)
本開示は、レンダリングされたビデオフレームをより効果的に符号化するために、当該レンダリングされたビデオフレームを生成するアプリケーションが受信した情報に基づいて、動きヒントを利用するためのシステム及び方法に関連する実施形態を対象としている。システム及び方法のさらなる詳細を説明する前に、ビデオ符号化の簡単な概要を説明する。
一般的に、ビデオ符号化は、レンダリングされたビデオフレームのシーケンスを符号化するのに必要なビットの量を、冗長な画像情報を削除することによって減らす処理である。例えば、ビデオフレームのシーケンス内で近接するビデオフレームは、通常、非常に類似しており、大抵、これらのビデオフレームが描写するシーン内の1つ以上のオブジェクトが、連続するフレーム間でわずかに移動する点でのみ異なっている。ビデオ符号化は、少なくとも1つのケースにおいては、符号化される現在のビデオフレーム内の画素ブロックと密接に一致する画素ブロックを参照ビデオフレームで検索することによって、ビデオフレーム間の時間的冗長性を利用するように構成されている。
ビデオエンコーダは、参照ビデオフレーム内の密接に一致する画素ブロックを用いて冗長化した現在のビデオフレーム内の画素ブロックを記憶又は送信する必要が一般的にない、という事実を利用する。代わりに、ビデオエンコーダは、参照ビデオフレーム内の密接に一致する画素ブロックに基づいて画素ブロックの予測を現在のビデオフレーム内で形成して、冗長情報を決定する。そして、この予測を、現在のビデオフレーム内の画素ブロックから減算して、残差のみを残す。この処理は、動き補償予測とよく呼ばれる。そして、残差(又は、残差に基づいて決定される情報)を冗長情報無しで受信デバイスに送信して、現在のビデオフレームを送信するのに必要なビットの量を減らすことができる。
ビデオデコーダは、現在のビデオフレーム内の画素ブロックを、残差に基づいて再構築することができる。冗長情報を、参照ビデオフレーム内の密接に一致する画素ブロックに基づいて、例えばビデオエンコーダによって実行される予測方法と同じ予測方法を用いて予測することができる。
一実施形態では、本開示のシステム及び方法は、レンダリングされたビデオフレームのシーケンスに関連付けられたグローバル動きヒント(global motion hints)を用いて、レンダリングされたビデオフレームのシーケンスを符号化するためにビデオエンコーダによって実行される動き補償予測処理を改善する。動き補償予測は、上述したように、符号化される現在のビデオフレーム内の画素ブロックに密接に一致する画素ブロックを参照ビデオフレーム内で検索することを含む。この検索処理を改善することによって、現在のビデオフレーム内の画素ブロックを符号化するのに用いられる時間及び/又はビットの量を減らすことができる。
他の実施形態では、本開示のシステム及び方法は、レンダリングされたビデオフレームのシーケンスに関連付けられたセミグローバル動きヒント(semi-global motion hints)を用いて、レンダリングされたビデオフレームのシーケンスを符号化するためにビデオエンコーダによって実行される動き補償予測処理を改善する。
上述した本開示のシステム及び方法の実施形態を、当業者が本明細書の教示に基づいて理解するように、動きヒントを利用可能なアプリケーション内で使用することができる。例えば、本開示の方法及びシステムを、動きヒントを生成するために、動き情報に関連付けられたユーザ入力コマンドを受信するビデオゲーム内で使用することができる。
本開示のこれらの特性及び他の特性と、様々な実施形態の構造及び動作とを、添付図面を参照して、より詳細に以下に説明する。
(2.例示的な動作環境)
図1は、本開示の実施形態を実装することの可能な例示的な動作環境の機能ブロック図100である。ブロック図100は、アプリケーション101と、レンダリングされたビデオフレーム102と、ビデオエンコーダ103と、動き予測104と、を含む。
アプリケーション101は、例えば、ビデオゲーム、ビデオ編集アプリケーション、コンピュータ支援設計(CAD)アプリケーション、コンピュータ支援製造アプリケーション等のように、レンダリング及び表示用のビデオフレームを生成するエンドユーザアプリケーションであってよい。
レンダリングされると、レンダリングされたビデオフレーム102のシーケンスを、ネットワークを介して受信デバイスに記憶又は送信するのに必要なビットの量を減らすように符号化するために、レンダリングされたビデオフレーム102のシーケンスがビデオエンコーダ103に提供され得る。例えば、ビデオエンコーダ103は、レンダリングされたビデオフレーム102のシーケンスを記憶又は送信するのに必要なビットの量を、冗長な画像情報を除去することによって減らす。一実施例では、レンダリングされたビデオフレーム102のシーケンス内で近接したビデオフレームは、通常、非常に類似しており、各ビデオフレームが描写するシーン内の1つ以上の物体が、ビデオフレーム間でわずかに移動する点でのみ異なることが多い。
動き予測104は、少なくとも一実施例では、符号化される現在のビデオフレーム内の画素ブロックに密接に一致する画素ブロックについて、レンダリングされたビデオフレーム102のシーケンス内の参照ビデオフレームを検索することによって、ビデオフレーム間の時間冗長性を利用するように構成され得る。現在のビデオフレーム及び参照ビデオフレームは、レンダリングされたビデオフレーム102のシーケンス内で連続するビデオフレームであってもよいし、時間的にさらに間隔が開いていてもよい。参照ビデオフレーム内の密接に一致する画素ブロックが既に受信デバイスに送信されていると仮定すると、動き予測104は、参照ビデオフレーム内の密接に一致する画素ブロックを用いて冗長化した現在のビデオフレーム内の画素ブロックの内容を受信デバイスに送信する必要が一般的にない、という事実を利用する。代わりに、動き予測104は、参照ビデオフレーム内の密接に一致する画素ブロックに基づいて画素ブロックの予測を形成して、冗長情報を決定する。そして、この予測を画素ブロックから減算して、残差のみを残す。この処理は、動き補償予測と呼ばれる。そして、残差(又は、残差に基づいて決定される情報)を冗長情報無しで受信デバイスに送信して、現在のビデオフレームを送信するのに必要なビットの量を減らすことができる。
図2は、本開示の実施形態による、画素ブロックを符号化するためにビデオエンコーダ103によって用いられる従来の動き補償予測処理200のさらなる詳細を示す図である。上述したように、動き補償予測処理は、符号化される現在のビデオフレーム206内の画素ブロック207に密接に一致する画素ブロックを参照ビデオフレーム201内で検索することを含み得る。参照ビデオフレーム201全体を検索することは、メモリ及び計算複雑性の観点において非常に高くつくことがあるため、ソフトウェアビデオエンコーダ及びハードウェアビデオエンコーダの実際の実装形態では、参照ビデオフレーム201の選択されたエリア(検索範囲202と呼ばれる)を検索することができる。検索範囲202は、参照ビデオフレーム201内であって、先に符号化された画素ブロックに基づいて計算された予測動きベクトル205の周囲に存在し得る。
多くの場合、特にハードウェアエンコーダ実装形態においては、ビデオエンコーダは、参照ビデオフレーム201全体を記憶するのに十分なメモリを備えていないことがある。このため、参照ビデオフレーム201のサブセット(検索ウィンドウ203と呼ばれる)を記憶することができ、予測動きベクトル205は、検索ウィンドウ203内に留まるように制限され得る。検索ウィンドウ203は、通常、参照ビデオフレーム201内の画素ブロック204上に中心が置かれ、現在のビデオフレーム206内の画素ブロック207と同じ相対位置に位置している。この画素ブロック204は、配置ブロックとよく呼ばれ得る。図2に示すように、検索範囲202の一部は、検索ウィンドウ203の外側にあってもよい。かかる場合、実際の検索エリア208は、検索ウィンドウ203と検索範囲202との間の重複領域となる。
一般に、検索ウィンドウ203を小さくするほど、必要とされるメモリ設置面積が小さくなり、図1に示したビデオエンコーダ103を実装する費用が安くなる。しかし、比較的速い動きのあるシーンを表現するビデオフレームでは、又は、符号化されるフレームから大きな時間的距離を有するフレームを参照フレームとして使用する場合には、検索ウィンドウ203の大きさをあまりにも制限することは、ビデオフレーム間の動きを効果的に捕らえるための動き補償予測処理の失敗につながることがある。この失敗は、画素ブロック207によって描画された物体が、検索ウィンドウ203の外に移動してしまった可能性が高いことから発生する。現実には、このことは、画素ブロック207を、イントラ予測ブロック、又は、高エネルギー残差を有するインター予測ブロックとして符号化する結果となり得る。何れの場合においても、画素ブロック207を符号化するのに用いられるビットの数は、通常、検索ウィンドウ203がビデオフレーム間の動きをより良く捕らえるのに十分に大きい場合と同じレベルの符号化画像品質を維持するために、増やす必要がある。以下に説明するように、本開示のシステム及び方法の実施形態は、検索ウィンドウ203の大きさと、画素ブロック207を符号化するのに必要なビットの数との間のトレードオフを、参照ビデオフレーム201と、現在のビデオフレーム206とに関連付けられた動きヒントを利用することによって軽減するのに役立つことができる。
(3.ビデオ符号化のための検索ウィンドウを適応的に配置するためのシステム及び方法)
図3は、本開示の実施形態による機能ブロック図300である。機能ブロック図300では、適応検索ウィンドウポジショナー304が追加され、既存のブロックに対していくつかの変更が行われたこと以外は、図1の機能ブロック図100と実質的に類似している。特に、アプリケーション301は、少なくとも一実施形態において、レンダリングされたビデオフレーム302のシーケンスに関連付けられた動きヒント308を出力として提供するように変更されている。
適応検索ウィンドウポジショナー304は、アプリケーション301と動き予測305との間の中間段階であり、アプリケーション301によって生成されたシーンを、適応検索ウィンドウポジショナー304上で補償予測を用いて符号化する。適応検索ウィンドウポジショナー304は、一致する画素ブロックを、動きヒント308を用いて知的に検索することによって、動き予測をより効果的に行うことができる。一実施形態では、適応検索ウィンドウポジショナー304は、ビデオエンコーダ303に含まれている。
一実施例では、適応検索ウィンドウポジショナー304は、動き予測305によって実行される動き補償予測処理を進めるために、動きヒント308を処理するように構成されている。一実施形態では、動き予測305は、ビデオエンコーダ303に含まれている。一実施形態では、動きヒント308は、1つの動きベクトルを含むことができる。当業者が理解するように、動きヒント308を用いて、1つの動きベクトルを生成することができる。この動きベクトルは、現在のビデオフレーム206全体に関連付けられてもよく、参照ビデオフレーム201に関連付けられた全ブロックの動きを予測する。言い換えれば、この1つの動きベクトルは、グローバル動きヒントを構成する。
他の実施形態では、動きヒント308は、多数の異なる動きベクトルを含むことができる。代替的に、他の実施形態では、動きヒント308を用いて、多数の異なる動きベクトルを生成することができる。異なる動きベクトルの各々は、現在のビデオフレーム206内の異なる画像領域に関連付けられており、各動きベクトルを用いて、参照ビデオフレーム201内の対応する領域に関連付けられたブロックの動きを予測する。言い換えれば、これらの2つの実施形態では、動きヒント308は、セミグローバル動きヒントを提供する。
動きヒント308が1つの動きベクトル又は多数の動きベクトルに関連付けられているかどうかに関わらず、動きヒント308がビデオエンコーダ303によって用いられることで、現在のビデオフレーム206内の画素ブロック207をより効果的に符号化することができる。特に、アプリケーション301によって提供される動きヒント308を用いて、画素ブロック207が存在する現在のビデオフレーム206の画像領域に関連付けられた動きベクトルを検出することができる。そして、この動きベクトルを用いて、画素ブロック207の動きを参照ビデオフレーム201からより良く捕らえるために、検索ウィンドウ203を、参照ビデオフレーム201内でより良く配置することができる。検索ウィンドウ203は、画素ブロック207の動きを参照ビデオフレーム201から捕らえるようにより良く配置されているため、画素ブロック207を符号化するのに必要なビットの数を増やさない一方で、符号化した画像の品質のレベルを維持しながら検索ウィンドウ203を小さくすることができる。
上記の結果として、いくつかの利点が様々な状況で得られ又は現れ得る。例えば、上述した動きヒントの結果として、本明細書で説明する実施形態の態様を用いるクラウドサーバ又は他のリモートサーバは、フレームを、より迅速に、並びに/又は、より少ない処理要件及び/若しくは電力要件で符号化することができる。また、このようにレンダリングされたフレームは、エンドユーザデバイスのユーザにおいて、より高い知覚品質、又は、代替的に、短縮された遅延で先行技術の手法と等しい品質を有した状態で、見られ得る。したがって、かかるクラウドサーバ又はリモートサーバと、エンドユーザデバイスとを包含するシステムは、より良い効率で動作することができる。
図4を参照すると、本開示の実施形態による、適応検索ウィンドウポジショナー304の動作のさらなる詳細が示されている。特に、図4は、現在のビデオフレーム206内の1つ以上の異なる画像領域を参照ビデオフレーム201から符号化するのを補助するために、動きヒント308に関連付けられた1つ以上の動きベクトルを用いることを詳述している。
一実施例では、アプリケーション301は、1つ以上のアプリケーション領域を現在のビデオフレーム206内に生成する。各アプリケーション領域の大きさ及び位置は、アプリケーション301によって決定され得る。例えば、図4では、現在のビデオフレーム206は、3つのアプリケーション領域から構成されている。アプリケーション領域401は、例えば、現在のビデオフレーム206の右下に位置している。当業者が理解するように、様々な戦略を用いて、アプリケーション領域の大きさ及び位置を選択することができる。
適応検索ウィンドウポジショナー304は、異なる動きベクトルを各アプリケーション領域に関連付けることができる。各動きベクトルは、アプリケーション301によって生成された動きヒント308に基づくことができる。一実施形態では、各動きベクトルは、動きヒント308に直接含まれている。他の実施形態では、各動きベクトルは、動きヒント308から生成される。当業者が理解するように、動きベクトルを、アプリケーション301又は適応検索ウィンドウポジショナー304の何れかによって生成することができる。さらに、当業者が理解するように、動きヒント308は、ユーザ入力型の動き情報と、非ユーザ入力型の動き情報とに基づくことができる。例えば、動きヒント308は、ビデオゲームアプリケーションが実行されているときにユーザによって入力されるコマンドに基づくことができる。
次に、適応検索ウィンドウポジショナー304によって、1つ以上のアプリケーション領域を1つ以上のサブ領域に分割することができる。例えば、アプリケーション領域401は、サブ領域402と、サブ領域404と、サブ領域406と、サブ領域408と、サブ領域410と、に分割される。各サブ領域の大きさ及び位置は、適応検索ウィンドウポジショナー304によって決定され得る。
サブ領域の粒度によって、動き予測の精度と、メモリトラフィック要件と、計算複雑性との間のバランスを制御することができる。当業者が理解するように、様々な戦略を活用して、このバランスを達成することができる。例えば、1つの戦略は、現在のビデオフレームを、それぞれ等しい大きさのサブ領域のセットに分割することから構成されている。潜在的には、より最適な戦略である他の戦略は、サブ領域の大きさ及び位置を、前のビデオフレーム内での動きベクトルの分布と、現在のビデオフレームと参照ビデオフレームとの間の時間差と、アプリケーションによって提供されるシーン変化ヒントと、に基づいて選択することから構成されている。
各サブ領域内の画素ブロックを、対応するアプリケーション領域に関連付けられた動きベクトルに基づいて符号化することができる。例えば、サブ領域402、サブ領域404、サブ領域406、サブ領域408及びサブ領域410は、アプリケーション領域401に関連付けられた動きベクトルに基づいて符号化される。
一実施例では、1つ以上のアプリケーション領域を1つ以上のサブ領域に分割した後に、サブ領域毎にアンカーブロックが定められる。一実施形態では、アンカーブロックは、現在のビデオフレーム206のサブ領域の第1のブロックとして定義される。例えば、図4では、アンカーブロック412は、アプリケーション領域401内のサブ領域402の第1のブロックである。
ここで、図5を参照すると、本開示の実施形態による、適応検索ウィンドウポジショナー304の動作のさらなる詳細が示されている。具体的には、アンカーブロックを定めた後に、適応検索ウィンドウポジショナー304は、現在のビデオフレーム内のブロックを符号化するための検索ウィンドウを何処に配置するのかを決定する。検索ウィンドウを何処に配置するのかは、サブ領域毎に決定される。
一実施例では、サブ領域内の画素ブロックを符号化するために、最初に、検索ウィンドウの中心が、関連する動きベクトルによって移動された、関連するアンカーブロックの配置ブロック位置上に置かれてもよい。例えば、図5では、現在のビデオフレーム505内の画素ブロック506は、サブ領域402内のアンカーブロック412に対応している。そして、画素ブロック506は、参照ビデオフレーム501内の配置ブロック503に対応している。したがって、検索ウィンドウ502の位置は、動きベクトル504によって移動された配置ブロック503の位置となる。
代替的に、動きヒントがアプリケーションによって提供されなかった場合には、検索ウィンドウは、移動することなく、参照ビデオフレーム内のアンカーブロックの配置ブロック位置上に中心が置かれる。例えば、図5では、検索ウィンドウ502の中心は、参照ビデオフレーム501内の配置ブロック503上に置かれる。
動きヒントが提供される場合には、アンカーブロックは、最初に、関連する動きベクトルによって移動されたアンカーブロックの配置ブロック位置上に中心が置かれた検索ウィンドウ502を用いて、符号化される。この検索ウィンドウを用いてアンカーブロックを符号化したときに動き予測305によって報告されるR−Dコストが閾値よりも大きい場合には、適応検索ウィンドウポジショナー304は、検索ウィンドウを他の位置に配置したときのレート歪み(R−D)コストを評価する。当業者が理解するように、閾値は、画素ブロックを符号化するのに必要なビット数が、符号化することの計算複雑性に対してバランスを取るような値に設定され得る。さらに、一実施形態では、閾値は、符号化戦略によって適応的に変化し得る。
図6は、本開示の実施形態による、検索ウィンドウを他の位置に配置したときのR−Dコストを評価するプロセスを示す図である。一実施例では、検索ウィンドウ603は、最初に、動きベクトル602によって移動された画素ブロック601に置かれている。この最初の位置は、図5の検索ウィンドウ502の位置に対応している。次に、追加検索ウィンドウの位置が特定される。例えば、図6では、7個の追加検索ウィンドウの位置604が特定されている。当業者が理解するように、追加検索ウィンドウの位置604の数は、計算複雑性及びビデオ符号化効率の間のバランスに基づくことができる。
様々な戦略を用いて、追加検索ウィンドウの位置604を選択することができる。これらの戦略は、先に符号化されたビデオフレーム、又は、同じビデオフレーム内で先に符号化されたブロックに基づくことができる。当業者が理解するように、1つの戦略は、最初の検索ウィンドウ(つまり、関連する動きベクトルによって移動された配置ブロックに位置する検索ウィンドウ)の位置603の周りで均一にサンプリングされたN個の位置を選択することである。
追加検索ウィンドウの位置604の数及び位置を特定した後に、適応検索ウィンドウポジショナー304は、検索ウィンドウを追加検索ウィンドウの各位置604に配置したときのR−Dコストを評価する。追加検索ウィンドウの各位置604のうち最小のR−Dコストが設定した閾値よりも高い場合、又は、当該閾値に等しい場合には、検索ウィンドウの位置は、検索ウィンドウの位置603に留まる。言い換えれば、検索ウィンドウは、関連する動きベクトルによって移動されたアンカーブロックの配置ブロック位置、例えば、図6の検索ウィンドウ603上に中心が置かれている。その一方で、追加検索ウィンドウの各位置604のうち最小のR−Dコストが閾値よりも低い場合には、検索ウィンドウは、最小のR−Dコストを有する追加検索ウィンドウの位置604に配置される。
最終的な検索ウィンドウの位置が選択されると、現在のサブ領域内の非アンカーブロックは、最終的な検索ウィンドウの位置を用いて符号化される。しかしながら、最終的な検索ウィンドウの位置は、非アンカーブロックとアンカーブロックとの間の位置の違いに基づいてシフトされる。次に、1つのサブ領域内のブロックを符号化した後に、対応するアプリケーション領域内の他のサブ領域が符号化される。これらの他のサブ領域は、同一の最終的な検索ウィンドウの位置を継承する。しかしながら、最終的な検索ウィンドウの位置は、同様に、その領域での非アンカーブロックとアンカーブロックとの間の位置の違いに基づいてシフトされる。
ここで、図7を参照すると、本開示の実施形態による、ビデオ符号化のために、検索ウィンドウを、動きヒントに基づいて適応的に配置する方法700のフローチャートが示されている。一実施例では、方法700は、図3〜図6を参照して上述したように、適応検索ウィンドウポジショナー304によって実装され得る。しかしながら、方法を、他のシステム及び構成要素によって実装することもできる、ということに留意すべきである。フローチャート700の一部のステップを実行する必要がなく、及び/又は、図7に示す順に実行する必要がない、ということも留意すべきである。
ステップ702では、符号化される現在のビデオフレームと参照ビデオフレームとに関連付けられた動きヒント308を、アプリケーション301から受信する。当業者が理解するように、受信した動きヒント308は、ユーザ入力型の動き情報と、非ユーザ入力型の動き情報と、に基づくことができる。
ステップ704では、現在のビデオフレームが1つ以上のアプリケーション領域に分割される。一実施形態では、現在のビデオフレーム全体がアプリケーション領域を構成する。他の実施形態では、現在のビデオフレームが複数のアプリケーション領域に分割される。当業者が理解するように、様々な戦略を用いて、これらのアプリケーション領域の大きさ及び位置を選択することができる。一実施形態では、アプリケーション301は、ビデオフレームの分割戦略を定める。
また、1つ以上のアプリケーション領域は、1つ以上のサブ領域に分割される。一実施形態では、この分割は、適応検索ウィンドウポジショナー304によって実行される。サブ領域の粒度は、動き予測の精度と、メモリトラフィック要件と、計算複雑性との間のバランスを制御する。一実施形態では、1つのアプリケーション領域において1つのサブ領域のみが生成される。他の実施形態では、アプリケーション領域は、等しい大きさのサブ領域のセットに分割される。他の実施形態では、アプリケーション領域は、先のビデオフレーム内の動きベクトルの分布と、現在のビデオフレームと参照ビデオフレームとの間の時間差と、アプリケーション301によって提供されるシーン変化ヒントと、に基づいてサブ領域に分割される。
ステップ706では、ステップ702で受信した動きヒント308を用いて、1つ以上の動きベクトルを、1つ以上のアプリケーション領域に関連付ける。一実施形態では、各動きベクトルは、受信した動きヒント308に含まれている。他の実施形態では、各動きベクトルは、動きヒント308から生成される。当業者が理解するように、動きベクトルを、アプリケーション301又は適応検索ウィンドウポジショナー304によって生成することができる。一実施形態では、1つ以上の動きベクトルの各々は、1つ以上のアプリケーション領域の何れかのアプリケーション領域に関連付けられる。当業者が理解するように、動きベクトルをアプリケーション領域に関連付けることは、アプリケーション301又は適応検索ウィンドウポジショナー304によって実行され得る。
ステップ708では、1つ以上のアプリケーション領域がサブ領域に分割される。一実施形態では、各サブ領域の大きさ及び位置は、適応検索ウィンドウポジショナー304によって決定される。1つ以上のサブ領域の粒度は、動き予測の精度と、メモリトラフィック要件と、計算複雑性との間のバランスを制御する。当業者が理解するように、様々な戦略を用いて、このバランスを達成することができる。
1つ以上のアプリケーション領域をサブ領域に分割した後に、アンカーブロックがサブ領域毎に定められる。一実施形態では、アンカーブロックは、サブ領域の第1のブロックとして定義される。
ステップ710では、検索ウィンドウの位置をサブ領域毎に決定する。検索ウィンドウの位置は、対応するアプリケーション領域に関連付けられた動きベクトルに基づいている。検索ウィンドウの中心は、最初に、関連する動きベクトルによって移動された、関連するアンカーブロックの配置ブロック位置上に置かれている。そして、アンカーブロックは、この位置の検索ウィンドウを用いて符号化される。アンカーブロックを検索ウィンドウの位置で符号化したときのR−Dコストが閾値よりも大きい場合には、追加検索ウィンドウの位置が試される。様々な戦略を用いて、追加検索ウィンドウの位置を選択することができる。
追加検索ウィンドウの位置を特定した後に、検索ウィンドウを追加検索ウィンドウの位置の各々に配置したときのR−Dコストが計算される。追加検索ウィンドウの位置間で最小のR−Dコストが上記で設定した閾値よりも高い又は等しい場合には、検索ウィンドウの位置は、最初の検索ウィンドウの位置に留まる。一方、追加検索ウィンドウの位置のうち最小のR−Dコストが閾値よりも小さい場合には、検索ウィンドウは、最小のR−Dコストを有する追加検索ウィンドウの位置に配置される。
ステップ712では、アンカーブロックが、最終的な検索ウィンドウの位置を用いて符号化される。また、サブ領域内の全ての非アンカーブロックが、最終的な検索ウィンドウの位置を用いて符号化される。しかしながら、非アンカーブロックについては、最終的な検索ウィンドウの位置は、各非アンカーブロックとアンカーブロックとの間の位置の違いに基づいてシフトされる。
1つのサブ領域を符号化した後に、対応するアプリケーション領域内の他のサブ領域が符号化される。他のサブ領域の各々は、同一の最終的な検索ウィンドウの位置を継承する。しかしながら、検索ウィンドウの位置は、各サブ領域の対応するアンカーブロックに対して調整される。さらに、非アンカーブロックについては、検索ウィンドウの位置が、同様に、各非アンカーブロックとアンカーブロックとの間の位置の違いに基づいてシフトされる。
一実施形態では、図3の例示的なシステムを例示のために用いて、参照ビデオフレームと現在のビデオフレームとを生成するアプリケーション301によって受信された動き情報に基づいて、動きヒント308を生成することができる。そして、アプリケーション301は、レンダリングされたビデオフレームのシーケンスに関連付けられた動きヒント308を、ビデオエンコーダ303に提供することができる。
レンダリングは、三次元シーンを仮想カメラによって観察される視界に対応する二次元平面に投影することによって、ビデオフレームを取得するプロセスを含むことができる。仮想カメラからの三次元シーン内の物体の距離に関連する立体情報をレンダリング処理中に計算して、三次元シーン内の何れの物体が、レンダリングされたビデオフレーム内でユーザから見えるべきか又は見えないべきか、を決定することができる。例えば、三次元シーン内の特定の物体は、三次元シーン内の不透明な他の物体の後ろに存在するので、ユーザから見えなくすべきである。
図8を参照すると、本開示の実施形態による、動きヒントを生成する場合のカメラの動作と、アプリケーション301によって解析される立体情報と、のさらなる詳細が示されている。
例示的な動作では、アプリケーション301は、画像領域804を参照ビデオフレーム201内で選択する。そして、アプリケーション301は、深度値と、画像領域804内の二次元ポイント802(つまり、画素)とを関連付けることができる。一実施形態では、二次元ポイント802は、画像領域804の重心として選択され、深度値は、画像領域804内の二次元ポイント(つまり、画素)の平均深度値として設定される。一実施形態では、画像領域804内の二次元ポイントの深度値は、当該二次元ポイントが描写する三次元シーン808内の物質の仮想カメラ810からの距離に対応する。
そして、アプリケーション301は、二次元ポイント802を三次元シーン808内の三次元ポイント806にマッピングし直すことができる。当業者が理解するように、三次元ポイント806への二次元ポイント802のマッピングは、逆レンダリング処理であってもよく、参照ビデオフレーム201内の二次元ポイント802の位置と、関連する深度値と、参照ビデオフレーム201をレンダリングするために使用された仮想カメラ814の位置及び向きと、を用いて実行され得る。仮想カメラ810の位置及び向きは、アプリケーション301が利用可能である。
アプリケーション301は、現在のビデオフレーム206をレンダリングするのに用いられた仮想カメラ814の位置及び向きに基づいて三次元ポイント806をレンダリングすることによって、三次元ポイント806を現在のビデオフレーム206内の二次元ポイント812(つまり、画素)にマッピングすることができる。仮想カメラ814の位置及び向きは、同様に、アプリケーション301に提供され得る。
アプリケーション301は、二次元ポイント802と二次元ポイント812との位置の違いに基づいて、動きベクトル816を決定することができる。
アプリケーション301は、動きベクトル816(又は、動きベクトル816に基づいて決定されるいくつかの情報)を用いて、動きヒント308を決定することができる。アプリケーション301は、動きヒント308をビデオエンコーダ303に提供する。上述したように、ビデオエンコーダ303は、動きヒント308を用いて、検索ウィンドウを参照ビデオフレーム201内に配置しながら動き補償予測を実行して、現在のビデオフレーム206の画像領域818内の画素ブロックをより効果的に符号化することができる。
ここで、図9を参照すると、本開示の実施形態による、ビデオエンコーダによって実行される動き補償予測処理を進めるために動きベクトルを生成する方法のフローチャート900が示されている。フローチャート900の方法を、上述したアプリケーション301によって実装することができる。しかしながら、方法を、他のシステム及び構成要素によって実装することができる、ということに留意すべきである。フローチャート900のステップのいくつかは、実行される必要がなく、又は、図9に示す順で実行される必要がない、ということにさらに留意すべきである。
ステップ902では、符号化される現在のビデオフレームと参照ビデオフレームとに関連付けられたカメラ情報及び立体情報が受信される。
ステップ904では、仮想カメラから見た参照ビデオフレームの領域内の二次元ポイント(つまり、画素)を、二次元ポイントに関連付けられた深度値に基づいて、及び、参照フレームのレンダリング中の仮想カメラの位置及び向きに基づいて、三次元ポイントにマッピングすることができる。一実施形態では、二次元ポイントを、参照ビデオフレームの重心として選択することができ、深度値は、参照ビデオフレームの画像領域内の二次元ポイント(つまり、画素)の平均深度値として設定される。一実施形態では、参照ビデオの画像領域内の二次元ポイントの深度値は、当該二次元ポイントが描写する物体の、当該二次元ポイントをレンダリングするのに用いられる仮想カメラからの距離に対応する。
ステップ906では、現在のフレームのレンダリング中の仮想カメラの位置及び向きに基づいて、三次元ポイントを、仮想カメラから見た現在のビデオフレーム内の二次元ポイントにマッピングすることができる。
ステップ908では、参照ビデオフレーム内の二次元ポイントと現在のビデオフレーム内の二次元ポイントとの位置の違いに基づいて、動きベクトルを決定することができる。
ステップ910では、動きベクトルに基づいて動きヒントを決定することができる。そして、現在のビデオフレームを符号化するためにビデオエンコーダによって実行される動き補償予測処理を進めるために、動きヒントをビデオエンコーダに提供することができる。例えば、ビデオエンコーダは、動きヒントを用いて検索ウィンドウを参照ビデオフレームに配置する一方で、現在のビデオフレーム内の画素ブロックをより効果的に符号化するために動き補償予測を実行することができる。
図3〜図9を参照して上述した本開示のシステム及び方法の実施形態を、クラウドゲームサービス内で動作しているサーバで用いて、例えば、当該サービス上でビデオゲームを行うことに関連する遅延量、ダウンストリーム帯域幅及び/又は計算処理能力を改善することができる。さらに、本開示の方法及びシステムを、当業者が本明細書の教示に基づいて理解するように、レンダリングされたビデオフレーム又は捕らえられたビデオフレームに関連する動きヒント情報を利用可能な他のアプリケーション内で使用することができる。例えば、本開示の方法及びシステムを、動き情報に関連するユーザコマンドを受信するビデオゲームアプリケーション内で使用することができる。
(4.例示的なコンピュータシステム実装形態)
本明細書で説明する本開示の様々な要素及び特性を、アナログ回路及び/又はデジタル回路を使用するハードウェアで実装してもよく、1つ以上の汎用プロセッサ又は専用プロセッサによる命令の実行を介してソフトウェアで実装してもよく、ハードウェア及びソフトウェアの組み合わせで実装してもよいことは、当業者において明らかである。
完全性のために、汎用コンピュータシステムの説明を以下に提供する。本開示の実施形態を、ハードウェアで、又は、ハードウェア及びソフトウェアの組み合わせで実装することができる。結果として、本開示の実施形態を、コンピュータシステム又は他の処理システムの環境で実装することができる。かかるコンピュータシステム1000の一実施例を図10に示す。図1及び図3に示したモジュールの全てを、1つ以上の個別のコンピュータシステム1000上で実行することができる。さらに、図7に示したフローチャートのステップの各々を、1つ以上の個別のコンピュータシステム1000上に実装することができる。
コンピュータシステム1000は、例えばプロセッサ1004等のように1つ以上のプロセッサを含む。プロセッサ1004は、専用又は汎用のデジタル信号プロセッサであってもよい。プロセッサ1004は、通信インフラストラクチャ1002(例えば、バス又はネットワーク)に接続されている。様々なソフトウェア実装形態を、この例示的なコンピュータシステムの観点から説明する。本説明を読んだ後に、開示の実施形態を他のコンピュータシステム及び/又はコンピュータアーキテクチャを用いて実装する方法が当業者において明らかになる。
また、コンピュータシステム1000は、メインメモリ1006、好ましくはランダムアクセスメモリ(RAM)を含んでもよいし、二次メモリ1008を含んでもよい。二次メモリ1008は、例えば、ハードディスクドライブ1010及び/又は取り外し可能ストレージドライブ1012(例えば、フロッピー(登録商標)ディスクドライブ、磁気テープドライブ、光ディスクドライブ等に代表される)を含んでもよい。取り外し可能ストレージドライブ1012は、周知の方法で、取り外し可能ストレージユニット1016からの読み出し、及び/又は、取り外し可能ストレージユニット1016への書き込みを行ってもよい。取り外し可能ストレージユニット1016は、例えば、フロッピー(登録商標)ディスク、磁気テープ、光ディスク等に代表され、取り外し可能ストレージドライブ1012によって読み出され、書き込まれる。当業者が理解するように、取り外し可能ストレージユニット1016は、コンピュータソフトウェア及び/又はデータを内部に記憶したコンピュータ可用ストレージ媒体を含む。
代替的な実装形態では、二次メモリ1008は、コンピュータプログラム又は他の命令をコンピュータシステム1000にロードすることを可能にするための他の同様の手段を含んでもよい。かかる手段は、例えば、取り外し可能ストレージユニット1018と、インターフェース1014とを含むことができる。かかる手段の例は、(例えば、ビデオゲームデバイスで見つかるもの等の)プログラムカートリッジ及びカートリッジインターフェースと、(例えば、EPROM又はPROM等の)取り外し可能メモリチップ及び関連ソケットと、サムドライブ及びUSBポートと、取り外し可能ストレージユニット1018からコンピュータシステム1000にソフトウェア及びデータを伝達することを可能にする他の取り外し可能ストレージユニット1018及びインターフェース1014と、を含んでもよい。
また、コンピュータシステム1000は、通信インターフェース1020を含んでもよい。通信インターフェース1020は、コンピュータシステム1000と外部デバイスとの間でソフトウェア及びデータを伝達することを可能にする。通信インターフェース1020の例は、モデムと、(イーサネット(登録商標)カード等の)ネットワークインターフェースと、通信ポートと、PCMCIAスロット及びカード等と、を含んでもよい。通信インターフェース1020を介して伝達されるソフトウェア及びデータは、信号の形態であってもよいし、電子信号、電磁信号、光信号、又は、通信インターフェース1020が受信可能な他の信号であってもよい。これらの信号は、通信経路1022を介して通信インターフェース1020に提供される。通信経路1022は、信号を運ぶものであって、ワイヤ又はケーブルと、光ファイバと、電話線と、携帯電話リンクと、RFリンクと、他の通信チャネルと、を用いて実装され得る。
本明細書で用いられるように、「コンピュータプログラム媒体」及び「コンピュータ可読媒体」という用語は、一般的に、取り外し可能ストレージユニット1016及び取り外し可能ストレージユニット1018等の有形ストレージ媒体、又は、ハードディスクドライブ1010にインストールされたハードディスクを指すのに用いられる。これらのコンピュータプログラム製品は、ソフトウェアをコンピュータシステム1000に提供するための手段である。
(コンピュータ制御論理とも呼ばれる)コンピュータプログラムは、メインメモリ1006及び/又は二次メモリ1008に記憶されている。また、コンピュータプログラムを、通信インターフェース1020を介して受信することができる。かかるコンピュータプログラムは、実行されると、コンピュータシステム1000が、本明細書で説明した本開示の内容を実装することを可能にする。特に、コンピュータプログラムは、実行されると、プロセッサ1004が、本明細書で説明した方法のうち任意の方法等のように、本開示のプロセスを実行することを可能にする。したがって、かかるコンピュータプログラムは、コンピュータシステム1000のコントローラを表している。開示した実施形態がソフトウェアを用いて実装されている場合には、ソフトウェアを、コンピュータプログラム製品に記憶することができ、取り外し可能ストレージドライブ1012、インターフェース1014又は通信インターフェース1020を用いて、コンピュータシステム1000にロードすることができる。
他の実施形態では、本開示の特性を、主に、例えば特定用途向け集積回路(ASIC)及びゲートアレイ等のハードウェア構成要素を使用するハードウェアで実装することができる。本明細書で説明した機能を実行するためのハードウェア状態機械の実装形態は、当業者において明らかである。
発明の概要及び要約は、発明者によって考慮された1つ以上であるが全てとは限らない例示的な実施形態を示すことができる。したがって、これらは、実施形態及び添付の特許請求の範囲において、どのようにも限定されることを意図していない。
本明細書の実施形態を、機能ビルディングブロックの助けを用いて上述し、機能ビルディングブロックは、その特定の機能の実装形態と関係とを示している。これらの機能ビルディングブロックの境界は、本明細書では、説明の利便性のために任意に定義されている。代替的な境界を定めてもよく、境界は、特定の機能及びその関係が適切に実行される限りにおいて定められてもよい。
特定の実施形態の上記の説明は、実施形態の一般的な性質を完全に明らかにし、他者が当該技術分野における知識を応用することによって、様々なアプリケーションのために、過度の実験なしに、実施形態の一般的概念から逸脱することなしに、かかる実施形態を容易に変更及び/又は適応させることを可能にする。したがって、かかる適応物及び変更物は、本明細書に提示された教示及び助言に基づいて、開示の実施形態の均等物の意味及び範囲に含まれることが意図されている。本明細書の表現及び用語は、限定ではなく説明の目的のためであり、本明細書の用語及び表現は、本教示と助言とを踏まえて、熟練の技術者によって解釈されるものである、ということが理解される。

Claims (25)

  1. 参照ビデオフレーム及び現在のビデオフレームを生成するアプリケーションが受信した動き情報に基づいて、動きヒントを生成することと、
    前記現在のビデオフレームを符号化するビデオエンコーダによって実行される動き補償予測処理を進めるために、前記動きヒントを前記ビデオエンコーダに提供することと、
    を備える、方法。
  2. 前記参照ビデオフレーム及び前記現在のビデオフレームは、ビデオフレームのシーケンス内で連続するビデオフレームである、請求項1に記載の方法。
  3. 前記動きヒントを前記ビデオエンコーダに提供することは、動きベクトルを前記ビデオエンコーダに提供することを含む、請求項1に記載の方法。
  4. 前記ビデオエンコーダは、
    前記参照ビデオフレーム内の検索ウィンドウの位置に基づいて、アンカーブロックの符号化に対するレート歪み(R−D)コストを計算することであって、前記アンカーブロックは、前記現在のビデオフレームのサブ領域の第1のブロックである、ことと、
    前記R−DコストをR−D閾値と比較することと、
    前記比較に基づいて、追加検索ウィンドウの位置を前記参照ビデオフレーム内で特定することと、
    前記比較に基づいて、前記検索ウィンドウの位置を、前記追加検索ウィンドウの位置のうち何れかの位置に更新することと、
    を行う、請求項1に記載の方法。
  5. 前記動きヒントを生成することは、
    前記現在のビデオフレームを領域に分割することと、
    前記動き情報に基づいて、前記領域のうち何れかの領域の動きベクトルを決定することと、
    を備える、請求項1に記載の方法。
  6. 前記ビデオエンコーダは前記現在のビデオフレームの領域をサブ領域に分割し、各サブ領域はアンカーブロックを有する、請求項5に記載の方法。
  7. 前記ビデオエンコーダは、動きベクトルの分布と、前記参照ビデオフレームと前記現在のビデオフレームとの間の時間差と、シーン変化ヒントと、のうち少なくとも1つに基づいて、前記現在のビデオフレームの領域をサブ領域に分割する、請求項6に記載の方法。
  8. 前記ビデオエンコーダは、前記動きベクトルを用いて、前記現在のビデオフレームの領域のサブ領域内の画素ブロックを符号化するのに用いられる検索ウィンドウの位置を前記参照ビデオフレーム内で決定する、請求項5に記載の方法。
  9. 前記ビデオエンコーダは、前記動きベクトルによって移動された前記サブ領域内のアンカーブロックを用いて、前記現在のビデオフレームのサブ領域内の画素ブロックを符号化するのに用いられる前記検索ウィンドウの位置を前記参照ビデオフレーム内で決定する、請求項8に記載の方法。
  10. 前記ビデオエンコーダは、前記現在のビデオフレームのサブ領域内の画素ブロックを符号化するために、前記参照ビデオフレームの前記検索ウィンドウ内の検索範囲内で画素ブロックを検索する、請求項9に記載の方法。
  11. 参照ビデオフレームと現在のビデオフレームとを生成するアプリケーションから動きヒントを受信することと、
    前記現在のビデオフレームを1つ以上の領域に分割することと、
    前記現在のビデオフレームの前記1つ以上の領域のうち何れかの領域内の画素ブロックを符号化するのに用いられる検索ウィンドウの位置を、前記動きヒントに基づいて前記参照ビデオフレーム内で決定することと、
    を行うように構成された適応検索ウィンドウポジショナーと、
    前記検索ウィンドウの位置に基づいて前記画素ブロックを符号化するように構成された動き予測デバイスと、
    を備える、システム。
  12. 第1のビデオフレーム及び第2のビデオフレームは、ビデオフレームのシーケンス内で連続するビデオフレームである、請求項11に記載のシステム。
  13. 前記動きヒントは動きベクトルである、請求項11に記載のシステム。
  14. 前記適応検索ウィンドウポジショナーは、
    前記参照ビデオフレーム内の検索ウィンドウの位置に基づいて、アンカーブロックの符号化に対するレート歪み(R−D)コストを計算することであって、前記アンカーブロックは、前記現在のビデオフレームのサブ領域の第1のブロックである、ことと、
    前記R−DコストをR−D閾値と比較することと、
    前記比較に基づいて、追加検索ウィンドウの位置を前記参照ビデオフレーム内で特定することと、
    前記比較に基づいて、前記検索ウィンドウの位置を、前記追加検索ウィンドウの位置のうち何れかの位置に更新することと、
    をさらに行うように構成されている、請求項11に記載のシステム。
  15. 第1のビデオフレームを領域に分割することであって、前記領域のうち第1の領域は第1の二次元ポイントを含む、ことと、
    第2のビデオフレームを領域に分割することであって、前記領域のうち第1の領域は第2の二次元ポイントを含む、ことと、
    前記第1の二次元ポイントと前記第2の二次元ポイントとの間の動き情報に基づいて、動きベクトルを決定することと、
    前記動きベクトルを用いて動きヒントを生成することと、
    を備える、方法。
  16. 前記動き情報は、前記第1の二次元ポイントと前記第2の二次元ポイントとの間の位置の違いに基づいている、請求項15に記載の方法。
  17. カメラを用いて前記第1のビデオフレームを見ることと、
    前記カメラの位置及び向きと、深度値と、に基づいて、前記第1の二次元ポイントを三次元ポイントにマッピングすることと、
    をさらに備える、請求項16に記載の方法。
  18. 前記カメラの前記位置及び向きに基づいて、前記三次元ポイントを前記第2の二次元ポイントにマッピングすること、
    をさらに備える、請求項17に記載の方法。
  19. 前記深度値は、三次元シーン内の物体の前記カメラからの距離である、請求項17に記載の方法。
  20. 第1のビデオフレームと第2のビデオフレームとを生成することと、
    前記第1のビデオフレームの第1の領域内の第1の二次元ポイントと、前記第2のビデオフレームの第2の領域内の第2の二次元ポイントと、の間の動き情報に基づいて、動きベクトルを決定することと、
    前記動きベクトルを用いて動きヒントを生成することと、
    を行うように構成されたアプリケーションモジュールと、
    前記アプリケーションモジュールから前記動きヒントを受信することと、
    前記動きヒントに基づいて、前記第2のビデオフレーム内の前記第2の領域内の画素ブロックを符号化するのに用いられる検索ウィンドウの位置を、前記第1のビデオフレーム内で決定することと、
    を行うように構成された適応検索ウィンドウポジショナーと、
    を備える、システム。
  21. 前記画素ブロックを前記検索ウィンドウの位置に基づいて符号化するように構成された動き予測デバイス、
    をさらに備える、請求項20に記載のシステム。
  22. 前記アプリケーションモジュールは、前記第1の二次元ポイントと前記第2の二次元ポイントとの間の位置の違いに基づいて、前記動き情報を決定するようにさらに構成されている、請求項20に記載のシステム。
  23. 前記アプリケーションモジュールは、
    カメラを用いて、前記第1のビデオフレームを見ることと、
    前記カメラの位置及び向きと、深度値と、に基づいて、前記第1の二次元ポイントを三次元ポイントにマッピングすることと、
    を行うようにさらに構成されている、請求項22に記載のシステム。
  24. 前記アプリケーションモジュールは、前記カメラの位置及び向きに基づいて、前記三次元ポイントを前記第2の二次元ポイントにマッピングするようにさらに構成されている、請求項23に記載のシステム。
  25. 前記深度値は、三次元シーン内の物体の前記カメラからの距離である、請求項23に記載のシステム。
JP2017505490A 2014-08-01 2015-07-30 ビデオ符号化のための適応検索ウィンドウの配置 Active JP6605581B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/450,094 US9769494B2 (en) 2014-08-01 2014-08-01 Adaptive search window positioning for video encoding
US14/450,094 2014-08-01
PCT/CA2015/050719 WO2016015155A1 (en) 2014-08-01 2015-07-30 Adaptive search window positioning for video encoding

Publications (3)

Publication Number Publication Date
JP2017526268A true JP2017526268A (ja) 2017-09-07
JP2017526268A5 JP2017526268A5 (ja) 2018-09-06
JP6605581B2 JP6605581B2 (ja) 2019-11-13

Family

ID=55181444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017505490A Active JP6605581B2 (ja) 2014-08-01 2015-07-30 ビデオ符号化のための適応検索ウィンドウの配置

Country Status (6)

Country Link
US (1) US9769494B2 (ja)
EP (1) EP3175620A4 (ja)
JP (1) JP6605581B2 (ja)
KR (1) KR102449759B1 (ja)
CN (1) CN106576170B (ja)
WO (1) WO2016015155A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9769494B2 (en) * 2014-08-01 2017-09-19 Ati Technologies Ulc Adaptive search window positioning for video encoding
WO2018068264A1 (zh) * 2016-10-13 2018-04-19 富士通株式会社 图像编码/解码方法、装置以及图像处理设备
EP3565259A1 (en) * 2016-12-28 2019-11-06 Panasonic Intellectual Property Corporation of America Three-dimensional model distribution method, three-dimensional model receiving method, three-dimensional model distribution device, and three-dimensional model receiving device
CN110832863B (zh) * 2017-06-30 2023-01-06 华为技术有限公司 用于处理视频序列帧的编码器、解码器、计算机程序和计算机程序产品
CN109429065A (zh) * 2017-09-05 2019-03-05 联咏科技股份有限公司 视频编码装置及视频编码方法
CN112514392A (zh) * 2020-02-18 2021-03-16 深圳市大疆创新科技有限公司 视频编码的方法与装置
CN111447444A (zh) * 2020-03-13 2020-07-24 西安万像电子科技有限公司 图像处理方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06189291A (ja) * 1992-12-21 1994-07-08 Sharp Corp 画像の動き検出装置
JPH0937269A (ja) * 1995-07-25 1997-02-07 Hitachi Ltd 画像圧縮装置
JP2003219428A (ja) * 2002-01-25 2003-07-31 Mitsubishi Electric Corp 動画像符号化装置
JP2004328633A (ja) * 2003-04-28 2004-11-18 Sony Corp 動き予測補償装置及びその方法
JP2007166050A (ja) * 2005-12-12 2007-06-28 Seiko Epson Corp 画像処理方法、画像処理装置、表示装置およびプログラム
JP2010183180A (ja) * 2009-02-03 2010-08-19 Sanyo Electric Co Ltd 画像処理装置、およびそれを搭載した撮像装置
JP2013102313A (ja) * 2011-11-08 2013-05-23 Canon Inc 画像符号化方法、画像符号化装置及びプログラム、画像復号方法、画像復号装置及びプログラム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5473379A (en) * 1993-11-04 1995-12-05 At&T Corp. Method and apparatus for improving motion compensation in digital video coding
US6049362A (en) * 1996-02-14 2000-04-11 International Business Machines Corporation Dual prime motion estimation system and method
JP2003514234A (ja) 1999-11-12 2003-04-15 ゴー・センサーズ・エルエルシー 画像測定方法および装置
JP3753578B2 (ja) * 1999-12-07 2006-03-08 Necエレクトロニクス株式会社 動きベクトル探索装置および方法
US6795068B1 (en) 2000-07-21 2004-09-21 Sony Computer Entertainment Inc. Prop input device and method for mapping an object from a two-dimensional camera image to a three-dimensional space for controlling action in a game program
US20040104935A1 (en) * 2001-01-26 2004-06-03 Todd Williamson Virtual reality immersion system
US7038676B2 (en) * 2002-06-11 2006-05-02 Sony Computer Entertainmant Inc. System and method for data compression
US20050286777A1 (en) 2004-06-27 2005-12-29 Roger Kumar Encoding and decoding images
JP5103379B2 (ja) 2005-04-28 2012-12-19 アップル インコーポレイテッド 多人数参加型テレビ会議における映像処理
US8494052B2 (en) * 2006-04-07 2013-07-23 Microsoft Corporation Dynamic selection of motion estimation search ranges and extended motion vector ranges
CN100584006C (zh) * 2006-06-20 2010-01-20 中兴通讯股份有限公司 一种基于时间分辨率变换的视频转换处理方法
US8121423B2 (en) * 2007-10-12 2012-02-21 Microsoft Corporation Remote user interface raster segment motion detection and encoding
KR20110061468A (ko) * 2009-12-01 2011-06-09 (주)휴맥스 고해상도 영상의 부호화/복호화 방법 및 이를 수행하는 장치
CN102263947B (zh) * 2010-05-27 2016-07-06 香港科技大学 图像运动估计的方法及系统
CN101945284B (zh) * 2010-09-29 2013-01-02 无锡中星微电子有限公司 一种运动估计的装置和方法
US20120147961A1 (en) * 2010-12-09 2012-06-14 Qualcomm Incorporated Use of motion vectors in evaluating geometric partitioning modes
US8913664B2 (en) * 2011-09-16 2014-12-16 Sony Computer Entertainment Inc. Three-dimensional motion mapping for cloud gaming
EP2645713A1 (en) * 2012-03-30 2013-10-02 Alcatel Lucent Method and apparatus for encoding a selected spatial portion of a video stream
US10602175B2 (en) * 2012-12-21 2020-03-24 Nvidia Corporation Using an average motion vector for a motion search
US9483845B2 (en) * 2013-04-26 2016-11-01 Nvidia Corporation Extending prediction modes and performance of video codecs
US10491916B2 (en) * 2013-10-01 2019-11-26 Advanced Micro Devices, Inc. Exploiting camera depth information for video encoding
US9769494B2 (en) * 2014-08-01 2017-09-19 Ati Technologies Ulc Adaptive search window positioning for video encoding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06189291A (ja) * 1992-12-21 1994-07-08 Sharp Corp 画像の動き検出装置
JPH0937269A (ja) * 1995-07-25 1997-02-07 Hitachi Ltd 画像圧縮装置
JP2003219428A (ja) * 2002-01-25 2003-07-31 Mitsubishi Electric Corp 動画像符号化装置
JP2004328633A (ja) * 2003-04-28 2004-11-18 Sony Corp 動き予測補償装置及びその方法
JP2007166050A (ja) * 2005-12-12 2007-06-28 Seiko Epson Corp 画像処理方法、画像処理装置、表示装置およびプログラム
JP2010183180A (ja) * 2009-02-03 2010-08-19 Sanyo Electric Co Ltd 画像処理装置、およびそれを搭載した撮像装置
JP2013102313A (ja) * 2011-11-08 2013-05-23 Canon Inc 画像符号化方法、画像符号化装置及びプログラム、画像復号方法、画像復号装置及びプログラム

Also Published As

Publication number Publication date
JP6605581B2 (ja) 2019-11-13
KR102449759B1 (ko) 2022-09-30
US20160037166A1 (en) 2016-02-04
US9769494B2 (en) 2017-09-19
CN106576170A (zh) 2017-04-19
EP3175620A4 (en) 2018-02-28
EP3175620A1 (en) 2017-06-07
CN106576170B (zh) 2019-06-21
KR20170040276A (ko) 2017-04-12
WO2016015155A1 (en) 2016-02-04

Similar Documents

Publication Publication Date Title
US11252430B2 (en) Exploiting camera depth information for video encoding
JP6605581B2 (ja) ビデオ符号化のための適応検索ウィンドウの配置
US10390040B2 (en) Method, apparatus, and system for deep feature coding and decoding
US9542750B2 (en) Method, apparatus and computer program product for depth estimation of stereo images
KR102350235B1 (ko) 영상 처리 방법 및 장치
WO2020003037A1 (en) Motion compensation of geometry information
JP6154075B2 (ja) オブジェクト検出及び分割の方法,装置,コンピュータプログラム製品
CN112203095B (zh) 视频运动估计方法、装置、设备及计算机可读存储介质
US20160295213A1 (en) Image Processing Method and Apparatus
US10158864B2 (en) Method, apparatus and coder for selecting optimal reference frame in HEVC coding
JP2019530350A (ja) 適応イントラ予測による全方位映像符号化および復号のための方法および装置
US20150043826A1 (en) Image processing apparatus, image processing method, and program
KR102074555B1 (ko) 비디오 처리를 위한 블록 기반 정적 영역 검출
US10742989B2 (en) Variable frame rate encoding method and device based on a still area or a motion area
US10244259B2 (en) Method and apparatus of disparity vector derivation for three-dimensional video coding
US20150264356A1 (en) Method of Simplified Depth Based Block Partitioning
CN106534850B (zh) 图像处理装置、图像插值方法和图像编码方法
Jubran et al. Sequence-level reference frames in video coding
CN104980621A (zh) 一种帧率调整方法及电子设备
CN103533361A (zh) 多视点视差矢量的确定方法、编码设备及解码设备
CN110958457B (zh) 模式依赖的仿射继承
Chen et al. A shape-adaptive low-complexity technique for 3D free-viewpoint visual applications
CN112235576A (zh) 编码方法、装置、电子设备及存储介质
Heng et al. Implementation and Optimization of software 2Dto3D conversion for ARM
CN103763557A (zh) 一种Do-NBDV获取方法及视频解码装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180727

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180727

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180727

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20181120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190311

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190821

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191016

R150 Certificate of patent or registration of utility model

Ref document number: 6605581

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