JP5053275B2 - 階層的キャッシュを使うビデオ動き処理最適化のための方法および装置 - Google Patents

階層的キャッシュを使うビデオ動き処理最適化のための方法および装置 Download PDF

Info

Publication number
JP5053275B2
JP5053275B2 JP2008524256A JP2008524256A JP5053275B2 JP 5053275 B2 JP5053275 B2 JP 5053275B2 JP 2008524256 A JP2008524256 A JP 2008524256A JP 2008524256 A JP2008524256 A JP 2008524256A JP 5053275 B2 JP5053275 B2 JP 5053275B2
Authority
JP
Japan
Prior art keywords
value
hierarchical cache
cache
levels
sample value
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.)
Expired - Fee Related
Application number
JP2008524256A
Other languages
English (en)
Other versions
JP2009504035A (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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of JP2009504035A publication Critical patent/JP2009504035A/ja
Application granted granted Critical
Publication of JP5053275B2 publication Critical patent/JP5053275B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Description

関連出願への相互参照
本出願は、2005年7月28に出願された、“Method and Apparatus for Video Motion Compensation”という名称の米国仮出願第60/703,204号の恩恵を主張するものである。該文献はここにその全体において参照によって組み込まれる。
発明の分野
本発明は、概括的にはビデオのエンコードおよびデコードに、より詳細には、階層的な標本値キャッシュを使うビデオ動き処理最適化のための方法および装置に関する。
多くのビデオ・エンコーダ/デコーダ用途について、動き推定および動き補償は主要なパフォーマンス上のボトルネックである。統計的に、結果的な輝度(luma)または色度(chroma)標本値を生成するために使われる計算は、結果的な標本値を選択するために使われる動き補償/推定アルゴリズムにおける空間‐時間的な相関のため、冗長であることがある。十分なメモリ資源をもつビデオ・システムでは、これらの標本値はキャッシュでき、それにより冗長な計算を回避し、実行時間を節約することができる。
動き補償/推定を最適化する努力の多くは、必要な標本値を計算するコードの最適化に焦点を当ててきた。この実践は、プログラム・フローから冗長な計算を取り除きはしない。
輝度標本値補間プロセスにおける冗長性のいくらかを解説するためにこれから与える記述の輝度標本値補間プロセスは、国際標準化機構/国際電気標準会議(ISO/IEC)動画像専門家グループ4(MPEG-4)パート10先進ビデオ符号化(AVC)規格/国際電気通信連合、電気通信部門(ITU-T)H.264規格(以下、「MPEG-4/H.264規格」または単に「H.264規格」)についてのものである。
H.264規格は、四分の一ピクセル(四分の一画素)補間方式を利用する。図1は、これらの標本値がどのように配置されているかを示している。図1に目を向けると、H.264規格に基づく四分の一標本値輝度補間のための整数標本値位置および端数標本値位置を示す図が、概括的に参照符号100によって示されている。整数標本値位置は、空であるか、大文字を含むブロックによって示され、端数標本値位置は小文字を含むブロックによって示される。
サブピクセル(サブ画素)標本値を整数座標点にある標本値から計算するには次のようにする(H.264規格のセクション8.4.2.2.1より)。
輝度標本値AないしU…が与えられたとき、端数標本値位置にある輝度標本値aないしsは次の規則によって導出される。半分の標本値位置における輝度予測値は、タップ値(1,−5,20,20−5,1)をもつ6タップ・フィルタを適用することによって導出される。四分の一標本値位置における輝度予測値は、整数標本値位置および半分の標本値位置にある標本値を平均することによって導出される。各端数位置についてのプロセスを以下に述べる。
・bとラベルされた半分の標本値位置における標本値の導出には、まず6タップ・フィルタを水平方向で直近の整数位置の標本値に適用することによってb1と記される中間値を計算する。hとラベルされた半分の標本値位置における標本値の導出には、まず6タップ・フィルタを垂直方向で直近の整数位置の標本値に適用することによってh1と記される中間値を計算する:
b1=(E−5×F+20×G+20×H−5×I+J)
h1=(A−5×C+20×G+20×M−5×R+T)
最終的な予測値bおよびhは:
b=Clip1Y((b1+16)>>5)
h=Clip1Y((h1+16)>>5)
を使って導出される。
・jとラベルされた半分の標本値位置における標本値の導出には、まず6タップ・フィルタを水平方向または垂直方向いずれかで(どちらも同じ結果を生じるので)直近の半分の標本値位置の中間値に適用することによってj1と記される中間値を計算する。
j1=cc−5×dd+20×h1+20×m1−5×ee+ff)または
j1=aa−5×bb+20×b1+20×s1−5×gg+hh)
ここで、aa、bb、gg、s1およびhhと記される中間値は、b1の導出と同様にして6タップ・フィルタを水平方向に適用することによって導出され、cc、dd、ee、m1およびffと記される中間値は、h1の導出と同様にして6タップ・フィルタを垂直方向に適用することによって導出される。最終的な予測値jは:
j=Clip1Y((j1+512)>>10)
を使って導出される。
・最終的な予測値sおよびmは、bおよびhの導出と同様にして、
s=Clip1Y((s1+16)>>5)
m=Clip1Y((m1+16)>>5)
で与えられるように、s1およびm1から導出される。
・a、c、d、n、f、i、kおよびqとラベルされる四分の一標本値位置における標本値は:
a=(G+b+1)>>1
c=(H+b+1)>>1
d=(G+h+1)>>1
n=(M+h+1)>>1
f=(b+j+1)>>1
i=(h+j+1)>>1
k=(j+m+1)>>1
q=(j+s+1)>>1
を使って、整数標本値位置および半分の標本値位置における二つの直近の標本値を平均して切り上げることによって導出される。
・e、g、pおよびrとラベルされる四分の一標本値位置における標本値は:
e=(b+h+1)>>1
g=(b+m+1)>>1
p=(h+s+1)>>1
r=(m+s+1)>>1
を使って、対角線方向における半分の標本値位置にある二つの直近の標本値を平均して切り上げることによって導出される。
Clip1Yは、数が0より小さければ0に、255より大きければ255にクランプし、それ以外の場合にはその数は変更なしに通過させる演算であることを注意しておく。
従来技術の上記したことを含むさまざまな欠点および不都合な点が、本発明によって対処される。本発明は、階層的な標本値キャッシュを使うビデオ動き処理最適化のための方法および装置に向けられる。
本発明のある側面によれば、ビデオ動き処理のための記憶方法が提供される。本方法は、一つまたは複数のレベルを有するよう階層的キャッシュを構成することを含む。該階層的キャッシュのレベルのそれぞれは、ビデオ動き処理のための標本値を計算することに関連する計算階層構造の複数のレベルのうちのそれぞれに対応する。本方法はまた、ビデオ動き処理に関係するある標本値についての特定の値が階層的キャッシュ内に存在していないとき、その特定の値を階層的キャッシュの対応するレベルに記憶することを含む。該対応は、計算階層の前記複数のレベルのうちのどのレベルにその特定の値が対応しているかに基づく。
本発明のもう一つの側面によれば、ビデオ動き処理をサポートするための装置が提供される。本装置は、一つまたは複数のレベルを有するよう構成された階層的キャッシュを含む。該階層的キャッシュのレベルのそれぞれは、ビデオ動き処理のための標本値を計算することに関連する計算階層構造の複数のレベルのうちのそれぞれに対応する。階層的キャッシュは、ビデオ動き処理に関係するある標本値についての特定の値が該階層的キャッシュ内に存在していないとき、その特定の値を該階層的キャッシュの対応するレベルに記憶する。該対応は、計算階層の前記複数のレベルのうちのどのレベルにその特定の値が対応しているかに基づく。
これらのことを含む本発明のさまざまな側面、特徴および利点が、付属の図面との関連で読むべき例示的な実施形態の以下の詳細な記述から明らかとなるであろう。
本発明は、例示的な図面に基づくことでよりよく理解されうる。
本発明は、階層的標本値キャッシュを使うビデオ動き処理のための方法および装置に向けられる。有利なことに、本願の原理に基づく方法および装置は、たとえばブロック・ベースの動き補償および/またはブロック・ベースの動き推定プロセスのようなビデオ動き処理の間に実行される冗長な計算を解消する。
本発明がいかなる特定のビデオ・エンコード/デコード規格/技術にも限定されず、よって、本技術分野および関連技術分野の当業者がすぐ認識できるいかなるビデオ・エンコード/デコード規格/技術が本願の原理に基づいて利用されてもよいことは理解されるものとする。さらに、本願の原理に基づく階層的キャッシュはハードウェアおよび/またはソフトウェアにおいて実装されうることは理解されるものとする。さらに、本願の原理に基づく階層的キャッシュの実装は、一つまたは複数の階層的キャッシュに関わりうる。
本記載は、本発明の原理を例解するものである。よって、ここに明示的に記載や図示はされていなくても、本発明を具現し、本発明の精神および範囲内に含まれるさまざまな構成を当業者が考案できるであろうことは理解されるであろう。
ここで述べられる例および条件的な言辞は、本発明の原理および当技術を進めるために発明者によって貢献される概念を理解する際に読者を助けるという教育的な目的のために意図されており、そのような個別的に述べられている例および条件に限定することなく解釈されるべきものである。
さらに、本発明の原理、側面および実施形態を述べる本稿におけるあらゆる陳述ならびにその個別的な例は、その構造的および機能的な等価物両方を包含することが意図されている。さらに、そのような等価物が、現在知られている等価物および将来開発される等価物すなわち構造にかかわらず同じ機能を実行する任意の開発される要素の両方を含むことが意図されている。
よって、たとえば、当業者は、ここに呈示されるブロック図が本発明の原理を具現する例示的な回路の概念図を表していることを理解するであろう。同様に、いかなるフローチャート、流れ図、状態遷移図、擬似コードその他も、コンピュータ可読媒体において実質的に表現され、よってコンピュータまたはプロセッサによって実行されうるさまざまなプロセスを表していることも理解されるであろう。これはそのようなコンピュータまたはプロセッサが明示的に示されているか否かにかかわりない。
図面に示されるさまざまな要素の機能は、専用ハードウェアの使用を通じて提供されてもよいし、ソフトウェアを実行できるハードウェアの適切なソフトウェアに関連しての使用によって提供されてもよい。プロセッサによって提供されるとき、前記機能は単一の専用プロセッサによって、単一の共用プロセッサによって、あるいは一部が共有されていてもよい複数の個別プロセッサによって提供されてもよい。さらに、用語「プロセッサ」または「コントローラ」の明示的な使用は、ソフトウェアを実行する機能をもつハードウェアのみを指すものと解釈すべきではなく、暗黙的に、限定なしに、デジタル信号プロセッサ(DSP)ハードウェア、ソフトウェアを記憶するための読み出し専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)および不揮発性記憶装置を含みうる。
通常型および/またはカスタム型のその他のハードウェアも含まれていてもよい。同様に、図面に示されるスイッチがあったとしても、それは単に概念的なものである。その機能は、プログラム論理の動作を通じて、専用論理を通じて、プログラム制御と専用論理の相互作用を通じて、あるいは手動ででも実行されうる。その個別の技法は、文脈からより特定的に理解されるところにより、実装者によって選択可能である。
本願の請求項では、特定の機能を実行する手段として表現されたいかなる要素も、その機能を実行するいかなる方法をも包含することが意図されている。それには、たとえば、a)その機能を実行する回路要素の組み合わせまたはb)ファームウェア、マイクロコードなどを含む任意の形のソフトウェアを、そのソフトウェアを実行する適切な回路と組み合わせて前記機能を実行するようにしたものが含まれる。そうした請求項によって定義される本発明は、さまざまな挙げられている手段によって提供される機能性が、該請求項が要求する仕方で組み合わされ、一緒にされるという事実に存している。よって、それらの機能性を実行できるいかなる手段もここに示される手段と等価であると見なされる。
図2に目を転じると、例示的なビデオ・エンコーダが参照符号200によって概括的に示されている。ビデオ・エンコーダ200への入力は、信号通信において、加算合流点210の非反転入力と接続される。加算合流点210の出力は、信号通信において、変換器/量子化器220と接続される。変換器/量子化器220の出力は、信号通信において、エントロピー符号化器240と接続される。エントロピー符号化器240の出力が、エンコーダ200の出力として得られる。
変換器/量子化器220の出力はさらに、信号通信において、逆変換器/量子化器250と接続される。逆変換器/量子化器250の出力は、信号通信において、ブロック解除フィルタ260の入力と接続される。ブロック解除フィルタ260の出力は、信号通信において、基準画像記憶270と接続される。基準画像記憶270の第一の出力は、信号通信において、動き推定器280の第一の入力と接続される。エンコーダ200への入力がさらに、信号通信において、動き推定器280の第二の入力と接続される。動き推定器280の出力は、信号通信において、動き補償器290の第一の入力と接続される。基準画像記憶270の第二の出力が、信号通信において、動き補償器290の第二の入力と接続される。動き補償器290の出力は、信号通信において、加算合流点210の反転入力と接続される。
今の実施形態に関連する原理によれば、階層的キャッシュ277Aが動き補償器290内に設けられ、階層的キャッシュ277Bが動き推定器280内に設けられる。動き補償器290および動き推定器280に別個のキャッシュが含まれるように示されているが、他の実施形態では、単一のキャッシュが動き補償器290および動き推定器280の両方によって利用されてもよいし、あるいは二つ以上のキャッシュが動き補償器290および/または動き推定器280において使用されてもよいことは理解されるものとする。すなわち、ここに提供される本発明の教示を与えられれば、本技術および関連技術の当業者は、本発明の範囲を維持しながら、ブロック・ベースの動き推定および/または動き補償プロセスのために使うための階層的キャッシュ・システムのこれらおよび他のさまざまな構成を考えるであろう。
図3に目を転じると、例示的なビデオ・デコーダが、概括的に参照符号300によって示されている。ビデオ・デコーダ300は、ビデオ・シーケンスを受信するエントロピー復号器310を含んでいる。エントロピー復号器310の第一の出力は、信号通信において、逆量子化器/変換器320の入力と接続される。逆量子化器/変換器320の出力は、信号通信において、加算合流点340の第一の入力と接続される。
加算合流点340の出力は、信号通信において、ブロック解除フィルタ390と接続されている。ブロック解除フィルタ390の出力は、信号通信において、基準画像記憶350と接続されている。基準画像記憶350は、信号通信において、動き補償器360の第一の入力と接続されている。動き補償器360の出力は、信号通信において、加算合流点340の第二の入力と接続されている。エントロピー復号器310の第二の出力は、信号通信において、動き補償器360の第二の入力と接続されている。ブロック解除フィルタ390の出力が、ビデオ・デコーダ300の出力として得られる。
今の実施形態に関連する原理によれば、階層的キャッシュ377Aが動き補償器360内に設けられる。動き補償器360に単一のキャッシュが含まれるように示されているが、他の実施形態では、二つ以上のキャッシュが動き補償器360に含まれていてもよいことは理解されるものとする。すなわち、ここに提供される本発明の教示を与えられれば、本技術および関連技術の当業者は、本発明の範囲を維持しながら、ブロック・ベースの動き推定および/または動き補償プロセスのために使うための階層的キャッシュ・システムのこれらおよび他のさまざまな構成を考えるであろう。
上記したように、階層的標本値キャッシュを使うブロック・ベースのビデオ動き推定/補償の最適化のための方法および装置が提供される。有利なことに、ブロック・ベースの動き補償および/または動き推定プロセスにおけるランタイムでの冗長な計算の数は、本願の原理の教示に基づいて減少しうる。
上記したように、ブロック・ベースの動き補償/推定において、ある補間された標本値の計算は他の源標本値に依存する。これらの源標本値は中間的な性質であってもよく、もしそうであれば、それらの中間的標本値が計算されてはじめて最終的な結果的標本値が計算できることになる。よって、結果的な標本値の間には階層的な関係がある。
たとえば、H.264ビデオ規格では、結果的な輝度標本値は、6タップの有限インパルス応答(FIR)フィルタを、基準フレームにおいて水平方向または垂直方向に隣接する輝度標本値に適用することによって計算されうる。1,−5,20,20−5,1の係数なので、このFIRフィルタは、4回の乗算と5回の加算を使う。丸めおよびシフト動作は、FIRフィルタ本体の一部ではないため、この記述では説明しないことを注意しておくべきであろう。よって、FIRフィルタは、比較的複雑(高価)な補間機構である。したがって、このFIRフィルタの冗長な使用の解消がパフォーマンスを改善するであろう。さらに、このFIRフィルタへの入力がそれ自身、中間的な標本値であり、このFIRフィルタへの入力のそれぞれがそのFIRフィルタまたは別のFIRフィルタの出力である場合がある。これは、標本値への(可能性としては)6つの異なるフィルタ適用の出力をフィルタ処理することになり、計算量を1桁増す。この最終的なFIRフィルタに供給される6つの標本値のそれぞれが計算されなければなかったら、全部で28回の乗算および35回の加算があることになる。よって、この二重のフィルタ処理に関わる冗長な計算を取り除くことによって、一層大きなパフォーマンス上の利得が実現されることになる。
よって、再び図1を参照すると、補間された輝度標本値の間に階層的な関係があることが見て取れる。bおよびhによって代表される標本値(これはそれぞれsおよびmを含む)は、基準フレームからくる整数位置における輝度標本値に依存する。jによって代表される標本値は、bまたはhによって代表される型の(6つの)標本値に依存する。aおよびcによって代表される標本値は、bによって代表される標本値および整数位置の標本値に依存する。dおよびnによって代表される標本値は、hによって代表される標本値および整数位置の標本値に依存する。f、i、kおよびqによって代表される標本値は、それぞれb、h、m、sによって代表される標本値とjによって代表される標本値に依存する。最後に、e、g、pおよびrによって代表される標本値は、jによって代表される標本値と、それぞれG、H、MおよびNによって代表される整数位置の標本値に依存する。
これらの関係は、階層構造の諸層(tiers)である。参照の都合上、これらの層に名前を与えることにする。図4に目を転じると、四分の一画素輝度標本値の種々の型の位置が示された、1×1ブロックが、概括的に参照符号400によって示されている。αとマークされた位置は、基準フレームに見出される整数位置の標本値である。位置座標の小数部分が括弧内にある。(基準フレームからくる)整数位置の標本値はここではα標本値と称される。bおよびhによって代表される標本値はβ標本値と称される。a、c、dおよびnによって代表される標本値はγ標本値と称される。e、g、pおよびrによって代表される標本値はδ標本値と称される。jによって代表される標本値はε標本値と称される。最後に、f、i、kおよびqによって代表される標本値は、ζ標本値と称される。キャッシュの下位レベルは、該レベルが保持している標本値の型によって名付けられてもよい。すなわち、β下位キャッシュはβ標本値を保持する。各レベルの相対的な計算コストは、β標本値からζ標本値に向けて増加する。用語「下位キャッシュ(sub-cache)」および「レベル(level)」(階層的キャッシュ中のレベルという時のような)はここでは交換可能に使われることは理解されるものとする。
上記から推論できるように、β標本値は二つのα標本値から導出され、γ標本値は一つのα標本値および一つのβ標本値から導出され、δ標本値は二つのβ標本値から導出され、ε標本値は6つのβ標本値から導出され、ζ標本値は一つのε標本値と一つのβ標本値から導出される。図5に目を転じると、図4に示された1×1ブロックの種々の標本値型の間の依存関係が、概括的に参照符号500によって示されている。
今の実施形態に関連する方式内であるさらなる内訳が使われる。β下位キャッシュ(またはβレベル)は、異なる小数座標をもつ二つの構成員を有する。同様に、γ、δおよびζレベルは、それぞれ4つの標本値を有する。同じ型の標本値の間で区別するために、小数座標が動員される。たとえば、β標本値はβ(.50,.00)およびβ(.00,.50)と称されうる。
階層的キャッシュは、特定の標本値についての補間プロセスからの中間結果を保存し、必要に応じてそれらの結果を返すことによって、これらの関係を利用することにより、その標本値を計算するための必要な計算のいくらかを実行し直さなければならない費用を節約できる。たとえば、(再び上記の図1を参照して)γ(.25,.00)標本値である標本値aは、(基準フレームからのピクセルのほかに)β(.50,.00)標本値である標本値bが利用可能であることに依存する。標本値aが必要とされているが、キャッシュのγ(.25,.00)レベルにない場合、標本値aは計算され、キャッシュに追加される必要がある。aを計算する一環として、bが要求される。bがβ(.50,.00)キャッシュにあれば、β(.50,.00)キャッシュがbを転送し、それによりaの計算を高速化する。bがβ(.50,.00)キャッシュになければ、bが計算されてそのキャッシュに入れられ、次いでaが計算できるよう転送される。aが計算されると、それはγ(.25,.00)レベルにキャッシュされる。
これから、本願の原理のさまざまな例示的な実施形態に基づく静的キャッシュおよび動的キャッシュに関する記述をする。
H.264規格に関わる本発明の原理のある実施形態では、当該キャッシュ内で可能な全部で15個のレベル(下位キャッシュ)がある:2つのβ、4つのδ、4つのγ、1つのεおよび4つのζレベルである。階層的標本値キャッシュは、15個のレベルすべてを含んでいても、いなくてもよい。たとえば、あるキャッシュでは、β下位キャッシュとε下位キャッシュだけが実装されていることがありうる。同様に、キャッシュは、所与の層(tier)のすべてのレベル(level)を含んでいなくてもよい:すなわち、あるキャッシュはζ(.25,.50)およびζ(.50,.25)下位キャッシュを有するだけで、4つのζ下位型すべてを有していなくてもよい。標本値キャッシュを用いるにはメモリおよび計算上のオーバーヘッドがあるので、これは、メモリおよび計算資源が特定の復号環境のために最も効率的に利用されることを許容する。大量の利用可能なメモリがあれば、より多くの下位キャッシュの使用に耐えられる。メモリが貴重であれば、おそらく一つか二つの下位キャッシュが使われる。さらに、15個のレベルのうちの一つまたは複数は、下位キャッシュではなく、スタンドアローン・キャッシュとして実装されてもよい。本願の原理のこれらのおよび他のさまざまな実装および構成は、ここに提供される本願の原理の教示が与えられれば、本技術および関連技術の当業者によって、容易に考えられる。
本願の原理に基づく静的キャッシュは、階層構造の諸レベルが固定されているキャッシュである。特定のエンコードおよび/またはデコード環境において標本値キャッシングに利用可能な資源がそこそこ固定したままであれば、静的キャッシュは、システムに対して下位キャッシュ管理のための追加的なオーバーヘッドを加えない。本願の原理に基づく動的キャッシュは、下位キャッシュが追加されたり除去されたりしうるキャッシュである。下位キャッシュの追加および/または除去は、キャッシュ外で評価される基準によって決定されうる。動的キャッシュは、資源の変動する可用性を利用し、これに適応することができる。より多くのメモリおよび/または計算パワーが利用可能になると、下位キャッシュが追加されうる。逆に、こうした資源が乏しくなると、下位キャッシュが除去され、それによりキャッシュ全体の需要を減らしうる。下位キャッシュ管理上の決定がなされる基準は資源だけではない。たとえば、十分な複雑さのエンコーダおよび/またはデコーダは、すべての補間が二分の一画素座標上で実行されることを見出す(または通知される)ことがありうる。これは、β標本値とε標本値だけが使用されることを意味するであろう。それにより、β下位キャッシュとε下位キャッシュが、使用のために役立つ唯一のレベルとなる(図4のβ標本値およびε標本値の位置を参照)。
ここで、本発明の例示的な実施形態に基づく、キャッシュ内容に関する記述を与える。
キャッシュは、特定のビデオ・デコーダ仕様のためのブロック・ベースの動き補償プロセスによって規定される機構を介して、基準内容から補間される輝度標本値の配列である。これらの演算は通例、比較的高価である。キャッシュは、これらの値を、その冗長な計算を避けるために保持しておく。キャッシュ内で標本値が保存される精度は、最終結果の精度でなくてもよい。たとえば、H.264デコードにおいて、標本値キャッシュは、一組の入力標本値に6タップのフィルタを適用することによって計算された輝度値を保持する。H.264での輝度標本値はしばしば8ビットである。ε標本値の計算においては、7回の6タップ・フィルタ適用がなされる。最初の6回は、基準フレームからの6つのα標本値の6つの行(または列)に対して実行され、β標本値の列(または行)を生じる。これら6つの入力β標本値は8ビット精度になるよう丸められ、クリッピングされることはなく、むしろ元の精度で保持され、そこで7回目の6タップ適用が実行される。次いでこの最終的なフィルタ適用の結果が丸められ、クリッピングされてε標本値を与える。(このプロセスは、上記のH.264規格の抜粋に示されている。)この、より高い中間精度で標本値を保持したβ下位キャッシュは、丸めおよびクリッピングにより最終的な精度にした標本値はε標本値を計算するのに使えないので、必要であろう。しかしながら、デコーダが、ε標本値が決して生成されない(よってζ標本値も)ことを知ることができる場合には、β下位キャッシュは中間精度の標本値を保持する必要はないであろう。β下位キャッシュは、最終的な(より小さな)精度で標本値を保持でき、おそらくは必要メモリを減らすことになる。
ここで、本発明の例示的な実施形態に基づく、キャッシュ・アクセスに関する記述をする。
ブロック・ベースの動き補償では、デコードされるブロックの現在位置に対する該ブロックの以前の位置を、動きベクトルが記述する。動きベクトルが現在ブロックの位置に加えられ、所望の標本値についての基準位置が与えられる。キャッシュ・アクセスは、その位置によってなされる。(X.y,Y.y)にある標本値(ここで、XおよびYは座標の整数部分、xおよびyは小数部分を表す)は、標本値キャッシュ内で明確な位置を有している。座標の小数部分xおよびyは、どの下位キャッシュがその標本値を保持するかを決定する(図4参照)。基準位置(10.50,8.00)における標本値は、β(.50,.00)型の標本値であり、利用可能であればその下位キャッシュ内にあるであろう。座標の整数部分XおよびYは、下位キャッシュ内でのその標本値の位置を与える。標本値が要求されるときはいつでも、その基準位置がキャッシュに与えられ、キャッシュは、結果を返すか、その標本値がキャッシュ内にないことを示すかする。
本願の原理に基づくキャッシュの使用によって影響されうる可能なパラメータとして含まれる/関わってくるものには:メモリ資源(メイン・メモリ帯域幅使用、メイン・メモリ・サイズ使用、コード・サイズおよびプロセッサ・キャッシュがもしあればそれに対する効果の面で)およびキャッシュを実装するコードによって消費される計算帯域幅(CPU時間)がある。パフォーマンス利得を見るために階層構造のすべてのレベルが実装される必要はなく、よってそのようなキャッシュを用いるアプリケーションによって要求されるメモリ使用はランタイムで(動的)または構築時に(静的)絞られることができることは理解されるものとする。さらに、さらにパフォーマンスを上げるために、資源使用増を代償として、複数のキャッシュがアプリケーションによって使用されてもよい。ここに提供される本発明の教示を与えられれば、本技術および関連技術における当業者は、本発明の範囲を維持しながら、ブロック・ベースの動き補償/推定のための階層的キャッシュのこれらおよび他のさまざまな構成を考えるであろう。
図6に目を転じると、ビデオ動き処理のための標本値をキャッシュするための方法が、概括的に参照符号600によって示されている。ビデオ動き処理とは、たとえば、ブロック・ベースの動き補償プロセスおよび/またはブロック・ベースの動き推定プロセスでありうる。
方法600は開始ブロック605を含む。該開始ブロック605は、制御を判断ブロック610に渡す。判断ブロック610は、動的階層レベル選択が実装されているかどうかを判定する。実装されていれば、制御は機能ブロック615に渡される。実装されていなければ、制御は機能ブロック625に渡される。
機能ブロック615は、キャッシュ階層構造のどのレベルを有効にするかを選択する一つまたは複数の入力を受け取り、制御を機能ブロック620に渡す。機能ブロック620は、機能ブロック615が受け取った前記一つまたは複数の入力によって動的に定義されるレベルを有する階層的キャッシュを生成し、制御を機能ブロック622に渡す。
機能ブロック625は、静的に定義された階層的キャッシュを生成し、制御を機能ブロック622に渡す。
機能ブロック622は、一つまたは複数のレベルを有するよう階層的キャッシュを構成する。各レベルは、ビデオ動き処理のために標本値を計算することに関連する計算の階層構造の複数のレベルのうちの一つに対応する。そして、機能ブロック622は制御を機能ブロック630に渡す。すなわち、階層的キャッシュの生成は、当該キャッシュの諸レベルが、ビデオ動き処理の結果的な標本値の間の階層関係における諸レベルに関係するか他の形で相関するように行われる。機能ブロック622によって実行される構成機能は、機能ブロック620および625の生成機能とは別個に示されているが、構成機能は生成機能の一部と考えてもよいことは理解されるものとする。
機能ブロック630は、キャッシュを、標本値が記憶されていない空の状態に初期化し、制御を判断ブロック635に渡す。
判断ブロック635は、ビデオ動き処理においてある特定の標本値が必要とされているかどうかを判定する。必要とされていれば、制御は判断ブロック640に渡される。そうでなければ、制御は機能ブロック635に返される。
判断ブロック640は、その特定の標本値が以前に計算されキャッシュされたかどうかを判定するために、キャッシュの適切なレベルを検査する。もしそうであれば、制御は機能ブロック645に渡される。そうでなければ、制御は機能ブロック650に渡される。
機能ブロック645は、その特定の標本値をキャッシュから取得し、判断ブロック660に制御を渡す。その特定の標本値が、基準フレームに対応する位置の整数部分および小数部分に基づいてそのキャッシュから取得されうることは理解されるものとする。
機能ブロック650は、その特定の標本値を計算し(それは一つまたは複数の中間的な標本値を計算し、キャッシュすることを要求することがありうる)、制御を機能ブロック655に渡す。機能ブロック650が、対応する最終的な標本値よりも高い精度で中間的な標本値をキャッシュしてもよいことは理解されるものとする。たとえば、中間的な標本値は、最終的な標本値よりも高い解像度、高いフレームレート、および/または高いビットレートで保存されてもよい。機能ブロック655は、機能ブロック650によって計算された特定の標本値をキャッシュに追加し、制御を判断ブロック660に渡す。
判断ブロック660は、そのキャッシュが(まだ)必要とされるかどうかを判定する。必要とされていれば、制御は機能ブロック635に戻される。必要とされていなければ、制御は機能ブロック665に渡される。機能ブロック665は、キャッシュを破棄し(たとえば、そのキャッシュによって消費/利用されていたメモリ資源が解放されるなど)、制御を終了ブロック670に渡す。
さらに、階層的キャッシュの諸レベルと、ブロック・ベースの動き補償/推定プロセスの結果的な標本値の間の階層的関係との相関に関し、解説の目的のためにここで例を述べる。たとえば、H.264規格では、小数座標0.5を有する要求される標本値は、小数座標0.0を有する標本値から補間される必要がある。小数座標0.25または0.75を有する要求される標本値は、少なくとも小数座標0.5を有する一つの標本値から補間される必要がある。H.264規格の節8.4.2.2.1が記述しているのは規範的な関係である。ここに提供される本発明の教示を与えられれば、本技術および関連技術の当業者は、本発明の範囲を維持しながら、階層的キャッシュの諸レベルが、ブロック・ベースの動き補償/推定プロセスの結果的な標本値と関係するまたは他の仕方で相関するこのおよび他のさまざまな構成を考えるであろう。
さらに、キャッシュを構成することに関し、そのような構成は、キャッシュの階層的構造を構成すること、ブロック・ベースの動き補償および/または推定プロセス自身を構成すること、動き補償および/または推定プロセスの少なくともいくつかの動作のためにキャッシュを使うために本願の原理が実装されるシステムのメモリ階層構造を構成することなどに関わりうる。そのような詳細は、本技術および関連技術における当業者によって容易に認識されるものであり、ここでは簡潔のため省略する。
本発明の多くの付随的な利点/特徴のいくつかについて、ここで記述する。そのいくつかは上述してある。たとえば、一つの利点/特徴は、ビデオ動き処理のための記憶方法である。該記憶方法は、一つまたは複数のレベルを有するように階層的キャッシュを構成することを含む。該階層的キャッシュのレベルのそれぞれは、ビデオ動き処理のための標本値を計算することに関連する計算階層構造の複数のレベルのうちのそれぞれに対応する。本記憶方法はさらに、ビデオ動き処理に関係するある標本値についての特定の値が階層的キャッシュ内に存在していないとき、その特定の値を階層的キャッシュの対応するレベルに記憶することを含む。該対応は、計算階層の前記複数のレベルのうちのどのレベルにその特定の値が対応しているかに基づく。もう一つの利点/特徴は、上記した記憶方法であって、ビデオ動き処理が、ブロック・ベースの動き補償プロセスを含むものである。さらに、もう一つの利点/特徴は、上記した記憶方法であって、さらに、その特定の値が階層的キャッシュ内に存在するときに、階層的キャッシュの対応するレベルからその標本値について特定の値を取得することを含む方法である。さらに、もう一つの利点/特徴は、上記した記憶方法であって、さらに、前記標本値についての特定の値を計算する際にその後使用するために、前記標本値のための中間的な値を、該中間的な値が階層的キャッシュ内に存在していないとき、その中間的な値が計算階層の前記複数のレベルのうちのどのレベルに対応するかに基づいて、階層的キャッシュの対応するレベルに記憶することを含む、方法である。また、もう一つの利点/特徴は、標本値についての中間的な値を記憶する上記した記憶方法であって、前記特定の値が前記標本値についての最終的な値であり、前記中間的な値が該特定の値より高い精度で記憶される、方法である。さらに、もう一つの利点/特徴は、標本値についての中間的な値を記憶する上記した記憶方法であって、前記特定の値が前記標本値についての最終的な値であり、前記のより高い精度が、前記最終的な標本値よりも、より高い解像度、より高いフレームレートおよびより高いビットレートのうちの少なくとも一つに関係する、方法である。さらに、もう一つの利点/特徴は、上記した記憶方法であって、前記構成する段階が、前記階層的キャッシュを、該階層的キャッシュの前記一つまたは複数のレベルが固定であるように静的に定義された階層を有するように構成する、方法である。さらに、もう一つの利点/特徴は、上記した記憶方法であって、前記構成する段階が、前記階層的キャッシュを、既存の前記一つまたは複数のレベルが除去されることができ、一つまたは複数の新しいレベルが追加されることができるように動的に定義された階層を有するように構成する、方法である。また、もう一つの利点/特徴は、上記したような動的に定義された階層を有するように階層的キャッシュを構成する記憶方法であって、前記動的に定義された階層の個々のレベルが、ユーザー入力に応じて動的に有効にされる、方法である。さらに、もう一つの利点/特徴は、上記した記憶方法であって、ビデオ動き処理の現在の実行のために、階層的キャッシュの前記一つまたは複数のレベルのうちのどれが有効にされるべきかに関係する一つまたは複数のユーザー入力を受け取る段階をさらに有する、方法である。さらに、もう一つの利点/特徴は、上記した記憶方法であって、ビデオ動き処理のために使われる基準フレームに対応するある位置の整数部分および小数部分に基づいて階層的キャッシュにアクセスする段階をさらに有する、方法である。さらに、もう一つの利点/特徴は、上記した記憶方法であって、階層的キャッシュがソフトウェアで実装される、方法である。
本発明のこれらのおよびその他の特徴および利点は、本稿の教示に基づいて当業者は容易に認識しうる。本発明の教示は、ハードウェア、ソフトウェア、ファームウェア、特殊目的プロセッサまたはそれらの組み合わせのさまざまな形において実装されうる。
最も好ましくは、本発明の教示は、ハードウェアおよびソフトウェアの組み合わせとして実装されうる。さらに、ソフトウェアは、プログラム記憶ユニット上に可触的に具現されたアプリケーション・プログラムとして実装されてもよい。アプリケーション・プログラムは、任意の好適なアーキテクチャを有する機械にアップロードされ、該機械によって実行されてもよい。好ましくは、該機械は、一つまたは複数の中央処理ユニット(CPU)、ランダム・アクセス・メモリ(RAM)および入出力(I/O)インターフェースのようなハードウェアを有するコンピュータ・プラットフォーム上で実装される。該コンピュータ・プラットフォームはまた、オペレーティング・システムおよびマイクロ命令コードをも含んでいてもよい。ここに記載されたさまざまなプロセスおよび機能は、マイクロ命令コードの一部であっても、あるいはアプリケーション・プログラムの一部であっても、あるいはCPUによって実行されうるそれらの任意の組み合わせであってもよい。さらに、追加的なデータ記憶ユニットおよび印刷ユニットのような他のさまざまな周辺ユニットがコンピュータ・プラットフォームに接続されていてもよい。
さらに、付属の図面に描かれている構成成分となるシステム・コンポーネントおよび方法の一部は好ましくはソフトウェアによって実装されるので、システム・コンポーネントやプロセス機能ブロックの間の実際の接続は、本発明がプログラムされる仕方に依存して異なることがありうることは理解されるものとする。本稿の教示を与えられれば、当業者は本発明のこれらおよび同様の実装または構成を考えることができるであろう。
ここでは付属の図面を参照して例示的な実施形態について記載してきたが、本発明はそれらの厳密な実施形態に限定されないこと、および本発明の範囲または精神から外れることなくさまざまな変更および修正が当業者によって実施されうることは理解されるものとする。そのようなすべての変更および修正は、付属の請求項に記載される本発明の範囲内に含まれることが意図されている。
H.264規格に基づく、四分の一標本値輝度補間のための整数標本値位置および端数標本値位置を示す図である。 本発明のある実施形態に基づく、本願の原理が適用されうる例示的なビデオ・エンコーダのブロック図である。 本発明のある実施形態に基づく、本願の原理が適用されうる例示的なビデオ・デコーダのブロック図である。 本願の原理のある実施形態に基づく、四分の一画素輝度標本値の種々の型の位置が示された、1×1ブロックの図である。 図4に示された1×1ブロックの種々の標本値型の間の依存関係を示すブロック図である。 本願の原理のある実施形態に基づく、ビデオ動き処理のために標本値をキャッシュする例示的な方法の流れ図である。

Claims (23)

  1. ビデオ動き処理のための記憶方法であって:
    当該方法は、複数のレベルを有するように階層的キャッシュを構成する段階を含み、該階層的キャッシュのレベルのそれぞれは、ビデオ動き処理のための標本値を計算することに関連する計算階層の複数のレベルのそれぞれに対応し、あるレベルに関連する標本値の計算はそれより下のレベルの標本値のみに依存し、
    当該方法は、ビデオ動き処理に関係するある標本値についての特定の値が階層的キャッシュ内に存在していないとき、その特定の値が計算階層の前記複数のレベルのうちのどのレベルに対応するかに基づいて、その特定の値を階層的キャッシュの対応するレベルに記憶することを含む、方法。
  2. 前記ビデオ動き処理が、ブロック・ベースの動き補償プロセスを含む、請求項1記載の方法。
  3. 前記特定の値が階層的キャッシュ内に存在するときに、階層的キャッシュの対応するレベルからその標本値についての該特定の値を取得することをさらに含む、請求項1記載の方法。
  4. 前記標本値についての特定の値を計算する際にその後使用するために、前記標本値のための中間的な値を、該中間的な値が階層的キャッシュ内に存在していないとき、その中間的な値が計算階層の前記複数のレベルのうちのどのレベルに対応するかに基づいて、階層的キャッシュの対応するレベルに記憶することを含む、請求項1記載の方法。
  5. 前記特定の値が前記標本値についての最終的な値であり、前記中間的な値が該特定の値より高い精度で記憶される、請求項4記載の方法。
  6. 前記のより高い精度が、前記標本値についての最終的な値よりも、より高い解像度、より高いフレームレートおよびより高いビットレートのうちの少なくとも一つに関係する、請求項5記載の方法。
  7. 前記構成する段階が、前記階層的キャッシュを、該階層的キャッシュの前記一つまたは複数のレベルが固定であるように静的に定義された階層を有するように構成する、請求項1記載の方法。
  8. 前記構成する段階が、前記階層的キャッシュを、既存の前記一つまたは複数のレベルが除去されることができ、一つまたは複数の新しいレベルが追加されることができるように動的に定義された階層を有するように構成する、請求項1記載の方法。
  9. 前記動的に定義された階層の個々のレベルが、ユーザー入力に応じて動的に有効にされる、請求項8記載の方法。
  10. ビデオ動き処理の現在の実行のために、階層的キャッシュの前記一つまたは複数のレベルのうちのどれが有効にされるべきかに関係する一つまたは複数のユーザー入力を受け取る段階をさらに有する、請求項1記載の方法。
  11. ビデオ動き処理のために使われる基準フレームに対応するある位置の整数部分および小数部分に基づいて階層的キャッシュにアクセスする段階をさらに有する、請求項1記載の方法。
  12. 階層的キャッシュがソフトウェアで実装される、請求項1記載の方法。
  13. ビデオ動き処理をサポートするための装置であって:
    数のレベルを有するよう構成された階層的キャッシュを有しており、該階層的キャッシュのレベルのそれぞれは、ビデオ動き処理のための標本値を計算することに関連する計算階層構造の複数のレベルのそれぞれに対応し、あるレベルに関連する標本値の計算はそれより下のレベルの標本値のみに依存し、該階層的キャッシュは、ビデオ動き処理に関係するある標本値についての特定の値が該階層的キャッシュ内に存在していないとき、その特定の値を、計算階層の前記複数のレベルのうちのどのレベルにその特定の値が対応しているかに基づいて、該階層的キャッシュの対応するレベルに記憶する、装置。
  14. 前記ビデオ動き処理が、ブロック・ベースの動き補償プロセスを含む、請求項13記載の装置。
  15. 前記階層的キャッシュが、前記特定の標本値が該階層的キャッシュ内に存在するときに、階層的キャッシュの対応するレベルからその標本値についての該特定の値を取り出すことを許容する、請求項13記載の装置。
  16. 前記階層的キャッシュが、前記標本値についての特定の値を計算する際にその後使用するために、前記標本値のための中間的な値を、該中間的な値が階層的キャッシュ内に存在していないとき、その中間的な値が計算階層の前記複数のレベルのうちのどのレベルに対応するかに基づいて、階層的キャッシュの対応するレベルに記憶する、請求項13記載の装置。
  17. 前記特定の値が前記標本値についての最終的な値であり、前記中間的な値が該特定の値より高い精度で記憶される、請求項16記載の装置。
  18. 前記のより高い精度が、前記最終的な標本値よりも、より高い解像度、より高いフレームレートおよびより高いビットレートのうちの少なくとも一つに関係する、請求項17記載の装置。
  19. 前記階層的キャッシュが、該階層的キャッシュの前記一つまたは複数のレベルが固定であるように静的に定義された階層を有するように構成されている、請求項13記載の装置。
  20. 前記階層的キャッシュが、既存の前記一つまたは複数のレベルが除去されることができ、一つまたは複数の新しいレベルが追加されることができるように動的に定義された階層を有するように構成されている、請求項13記載の装置。
  21. 前記動的に定義された階層の個々のレベルが、ユーザー入力に応じて動的に有効にされる、請求項20記載の装置。
  22. 前記階層的キャッシュが、ビデオ動き処理の現在の実行のために、該階層的キャッシュの前記一つまたは複数のレベルのうちのどれが有効にされるべきかに関係する一つまたは複数のユーザー入力に基づいて構成される、請求項13記載の装置。
  23. 前記階層的キャッシュが、ビデオ動き処理のために使われる基準フレームに対応するある位置の整数部分および小数部分に基づいてアクセスされる、請求項13記載の装置。
JP2008524256A 2005-07-28 2006-07-27 階層的キャッシュを使うビデオ動き処理最適化のための方法および装置 Expired - Fee Related JP5053275B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US70320405P 2005-07-28 2005-07-28
US60/703,204 2005-07-28
PCT/US2006/029719 WO2007014378A2 (en) 2005-07-28 2006-07-27 Motion estimation and compensation using a hierarchical cache

Publications (2)

Publication Number Publication Date
JP2009504035A JP2009504035A (ja) 2009-01-29
JP5053275B2 true JP5053275B2 (ja) 2012-10-17

Family

ID=37605745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008524256A Expired - Fee Related JP5053275B2 (ja) 2005-07-28 2006-07-27 階層的キャッシュを使うビデオ動き処理最適化のための方法および装置

Country Status (8)

Country Link
US (1) US20090119454A1 (ja)
EP (1) EP1908295A2 (ja)
JP (1) JP5053275B2 (ja)
KR (1) KR101293078B1 (ja)
CN (1) CN101233758A (ja)
BR (1) BRPI0614662A2 (ja)
MX (1) MX2008001286A (ja)
WO (1) WO2007014378A2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4917709B2 (ja) 2000-03-06 2012-04-18 ローム株式会社 半導体装置
US7272609B1 (en) * 2004-01-12 2007-09-18 Hyperion Solutions Corporation In a distributed hierarchical cache, using a dependency to determine if a version of the first member stored in a database matches the version of the first member returned
US8225043B1 (en) * 2010-01-15 2012-07-17 Ambarella, Inc. High performance caching for motion compensated video decoder
CN102663096B (zh) * 2012-04-11 2015-12-16 北京像素软件科技股份有限公司 一种基于数据缓存技术读取数据的方法
JP6232828B2 (ja) * 2013-08-13 2017-11-22 日本電気株式会社 静止画像提供装置
US10296458B2 (en) * 2017-05-31 2019-05-21 Dell Products L.P. Multi-level cache system in a software application

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5444489A (en) * 1993-02-11 1995-08-22 Georgia Tech Research Corporation Vector quantization video encoder using hierarchical cache memory scheme
JP3846642B2 (ja) * 1994-01-31 2006-11-15 ソニー株式会社 動き量検出方法及び動き量検出装置
US6549575B1 (en) * 1996-11-07 2003-04-15 International Business Machines Corporation. Efficient, flexible motion estimation architecture for real time MPEG2 compliant encoding
JP4131026B2 (ja) * 1998-01-07 2008-08-13 ソニー株式会社 画像処理装置および画像処理方法
US6434196B1 (en) * 1998-04-03 2002-08-13 Sarnoff Corporation Method and apparatus for encoding video information
US6757330B1 (en) * 2000-06-01 2004-06-29 Hewlett-Packard Development Company, L.P. Efficient implementation of half-pixel motion prediction
CA2390954C (en) * 2001-06-19 2010-05-18 Foedero Technologies, Inc. Dynamic multi-level cache manager
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
US7620109B2 (en) * 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US7305034B2 (en) * 2002-04-10 2007-12-04 Microsoft Corporation Rounding control for multi-stage interpolation
JP4709143B2 (ja) * 2004-04-21 2011-06-22 パナソニック株式会社 動き補償装置、画面間予測符号化装置、画面間予測復号化装置、動き補償方法、および集積回路
US20050286777A1 (en) * 2004-06-27 2005-12-29 Roger Kumar Encoding and decoding images
US7873776B2 (en) * 2004-06-30 2011-01-18 Oracle America, Inc. Multiple-core processor with support for multiple virtual processors
US20060050976A1 (en) * 2004-09-09 2006-03-09 Stephen Molloy Caching method and apparatus for video motion compensation
US20060088104A1 (en) * 2004-10-27 2006-04-27 Stephen Molloy Non-integer pixel sharing for video encoding
US20070121728A1 (en) * 2005-05-12 2007-05-31 Kylintv, Inc. Codec for IPTV
US20060285597A1 (en) * 2005-06-20 2006-12-21 Flextronics International Usa, Inc. Reusing interpolated values in advanced video encoders
KR100842557B1 (ko) * 2006-10-20 2008-07-01 삼성전자주식회사 동영상 처리 장치에서 메모리 액세스 방법

Also Published As

Publication number Publication date
JP2009504035A (ja) 2009-01-29
EP1908295A2 (en) 2008-04-09
BRPI0614662A2 (pt) 2011-04-12
KR101293078B1 (ko) 2013-08-16
WO2007014378A3 (en) 2007-05-24
US20090119454A1 (en) 2009-05-07
MX2008001286A (es) 2008-03-25
KR20080030624A (ko) 2008-04-04
CN101233758A (zh) 2008-07-30
WO2007014378A2 (en) 2007-02-01

Similar Documents

Publication Publication Date Title
JP7448563B2 (ja) 画像コーデック方法、エンコーダ、デコーダおよび記憶媒体
JP5053275B2 (ja) 階層的キャッシュを使うビデオ動き処理最適化のための方法および装置
JP4797009B2 (ja) 予測モード情報符号化方法,予測モード情報復号方法,これらの装置,およびこれらのプログラム並びにコンピュータ読み取り可能な記録媒体
KR102502614B1 (ko) 광학 흐름을 사용한 예측 미세조정을 위한 방법 및 장치
JP5059058B2 (ja) 高速動き探索装置及びその方法
WO2006109205A1 (en) Region- based 3drs motion estimation using dynamic asoect ratio of region
WO2006109209A1 (en) Video processing with region-based multiple-pass motion estimation and update of temporal motion vector candidates
WO2013069095A1 (ja) 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置
KR20230011479A (ko) 광학 흐름을 사용한 예측 미세조정을 위한 방법 및 장치
US20240037700A1 (en) Apparatus and method for efficient motion estimation
KR20220030918A (ko) 색 성분 예측 방법, 인코더, 디코더 및 저장 매체
KR102533731B1 (ko) 광 흐름에 의한 예측 개선, 양방향 광 흐름 및 디코더 측 움직임 벡터 개선을 위한 방법들 및 장치들
CN112261413B (zh) 视频编码方法、编码装置、电子设备和存储介质
US20050047502A1 (en) Method and apparatus for the efficient representation of interpolated video frames for motion-compensated coding
US20130064298A1 (en) Concurrent access shared buffer in a video encoder
CN111343465A (zh) 电子电路和电子设备
US20150049801A1 (en) Intra refresh method for video encoding and a video encoder for performing the same
JP2013042385A (ja) 画像符号化装置及び画像復号装置
WO2021056224A1 (zh) 预测值的确定方法、编码器、解码器以及存储介质
CN118158406A (zh) 帧间编码方法、硬件装置、虚拟装置、设备及存储介质
JP2018023121A (ja) 復号方法および復号装置
JP2018078465A (ja) 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
JP2015111961A (ja) 画像復号方法および画像復号装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090724

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110726

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111025

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111101

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120605

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120725

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150803

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees