(57)【要約】【課題】知覚されるぶれを事前補正するための改善された技術を提供すること。【解決手段】デジタルビデオシーケンスを表示するためのシステムはグラフィック処理装置（ＧＰＵ）およびディスプレイ装置を含む。ＧＰＵは、デジタルビデオシーケンスを受信し、デジタルビデオシーケンスのフレーム間の動きに基づいて知覚されるぶれを補正するための修正を加える。ディスプレイ装置は修正されたデジタルビデオシーケンスを表示する。さらに方法およびコンピュータ読み取り可能コードを含むコンピュータ読み取り可能媒体も提供される。【選択図】図１
2009065656.tif 000002
【特許請求の範囲】
【請求項１】
デジタルビデオシーケンスを表示するための表示システムであって、
前記デジタルビデオシーケンスを受信し、前記デジタルビデオシーケンスのフレーム間
の動きに基づいて知覚されるぶれを補正するための修正を加えるグラフィック処理装置と
、
前記修正されたデジタルビデオシーケンスを表示するディスプレイ装置とを有すること
を特徴とする表示システム。
【請求項２】
前記グラフィック処理装置は、プログラム可能フラグメントプロセッサと、前記デジタ
ルビデオシーケンスのフレームを格納するテクスチャメモリと、前記プログラム可能フラ
グメントプロセッサにより実行可能なコンピュータプログラムを格納するプログラムメモ
リとを有し、前記コンピュータプログラムは、現在のフレームおよび以前のフレームにお
ける画素間の動きを予測するプログラムコードと、知覚されるぶれを補正するために前記
予測された動きに基づいて前記現在のフレーム中の画素をフィルタリングするプログラム
コードとを有することを特徴とする請求項１に記載の表示システム。
【請求項３】
前記グラフィック処理装置は、ベクトルマップルックアップテーブルおよびオーバード
ライブルックアップテーブルを格納するテクスチャメモリをさらに有することを特徴とす
る請求項２に記載の表示システム。
【請求項４】
前記グラフィック処理装置は、前記コンピュータプログラムによる予測およびフィルタ
リングの中間フレーム処理結果を格納するフレームバッファオブジェクトメモリをさらに
有することを特徴とする請求項３に記載の表示システム。
【請求項５】
前記フレームバッファオブジェクトメモリは、ベースレベルおよびブロックレベルを持
つポインタアレイをさらに格納したことを特徴とする請求項４に記載の表示システム。
【請求項６】
前記ベースレベルが、各々が前記現在のフレームと同サイズである４つのテクスチャア
タッチメントを含むことを特徴とする請求項５に記載の表示システム。
【請求項７】
前記ブロックレベルが、各々が前記現在のフレームの何分の１かのサイズである３つの
テクスチャアタッチメントを含むことを特徴とする請求項６に記載の表示システム。
【請求項８】
前記ブロックレベルのテクスチャアタッチメントのサイズが、前記現在のフレームの１
／８であることを特徴とする請求項７に記載の表示システム。
【請求項９】
前記動きを予測するプログラムコードおよび前記画素をフィルタリングするプログラム
コードが、
フラグメントシェーダープログラムコードと、
バーテックスシェーダープログラムコードとを含むことを特徴とする請求項２に記載の
表示システム。
【請求項１０】
前記グラフィック処理装置が、前記ディスプレイ装置による表示のために、フィルタリ
ングされたフレームを受ける複数のオフスクリーンフレームバッファを有することを特徴
とする請求項１に記載の表示システム。
【請求項１１】
デジタルビデオストリームをデジタルビデオシーケンスへと復号化し、前記デジタルビ
デオシーケンスのフレームを前記グラフィック処理装置へと供給する中央処理装置をさら
に有することを特徴とする請求項１に記載の表示システム。
【請求項１２】
デジタルビデオを表示するための表示方法であって、
フレーム間の動きに基づいて知覚されるぶれを補正するために、グラフィック処理装置
を使って入力デジタルビデオシーケンスを修正するステップと、
前記修正されたデジタルビデオシーケンスをディスプレイ装置へと供給するステップと
を含むことを特徴とする表示方法。
【請求項１３】
前記修正するステップが、前記デジタルビデオシーケンス中のフレーム間の画素の動き
を予測するステップと、
前記予測された動きに基づいてフレームをフィルタリングするステップとを含むことを
特徴とする請求項１２に記載の表示方法。
【請求項１４】
前記予測するステップが、
現在のフレームの複数の画素ブロックの各々について、前記現在のフレームと以前のフ
レームとの間の動きベクトルを予測することにより、ブロック動きベクトルフィールドを
取得するステップであって、前記ブロック動きベクトルとは、それぞれの予測されたぶれ
の方向とぶれの範囲を表すものであることを特徴とする前記ステップと、
前記ブロック動きベクトルフィールドをスムージングするステップと、
前記現在のフレーム中の各画素に、前記スムージングされたブロック動きベクトルフィ
ールドにおいて対応するブロックのブロック動きベクトルを割り当てるステップとを含む
ことを特徴とする請求項１３に記載の表示方法。
【請求項１５】
前記フィルタリングするステップが、
前記現在のフレームに基づいて最初の推量フレームを生成するステップと、
前記推量フレーム中の画素を、それぞれに予測されたぶれ方向およびぶれ範囲の関数と
してぶれ付けするステップと、
それぞれの画素の各々について誤差画素を生成するために、各ぶれ付けした画素を前記
現在のフレーム中のそれぞれの画素と比較するステップと、
各誤差画素をぶれ付けし、重み付けするステップと、
前記推量フレームの更新およびぶれ補正を行うために、各誤差画素と、前記最初の推量
フレーム中のそれに対応する画素とを組み合わせるステップとを含むことを特徴とする請
求項１４に記載の表示方法。
【請求項１６】
前記重み付けが、前記それぞれの画素の動きの関数であることを特徴とする請求項１５
に記載の表示方法。
【請求項１７】
前記重み付けが、前記画素の動く方向における前記推量フレーム中の前記それぞれの画
素のエッジ強度の予測値であることを特徴とする請求項１６に記載の表示方法。
【請求項１８】
前記エッジ強度が、高域フィルタを使って予測されたものであることを特徴とする請求
項１７に記載の表示方法。
【請求項１９】
前記最初の推量フレームが、前記現在のフレームであることを特徴とする請求項１５に
記載の表示方法。
【請求項２０】
前記重み付けが、前記画素の動く方向における前記推量フレーム中の前記それぞれの画
素のエッジ強度の予測値であることを特徴とする請求項１９に記載の表示方法。
【請求項２１】
前記画素にぶれ付けするステップと、前記比較するステップと、前記誤差画素にぶれ付
けし重み付けするステップと、前記組み合わせるステップと、が繰り返し実施されること
を特徴とする請求項１６に記載の表示方法。
【請求項２２】
前記画素にぶれ付けするステップと、前記比較するステップと、前記誤差画素にぶれ付
けし重み付けするステップと、前記組み合わせるステップが、誤差の和が閾値レベル未満
に低下するまで繰り返し実施されることを特徴とする請求項２１に記載の表示方法。
【請求項２３】
前記画素にぶれ付けするステップと、前記比較するステップと、前記誤差画素にぶれ付
けし重み付けするステップと、前記組み合わせるステップとが、所定回数にわたり繰り返
し実施されることを特徴とする請求項２１に記載の表示方法。
【請求項２４】
前記画素にぶれ付けするステップと、前記比較するステップと、前記誤差画素にぶれ付
けし重み付けするステップと、前記組み合わせるステップとが、連続する繰り返し間にお
ける誤差の和が閾値よりも大きい量分変化しなくなるまで繰り返し実施されることを特徴
とする請求項２１に記載の表示方法。
【請求項２５】
デジタルビデオを表示するためにグラフィック処理装置による実行が可能なコンピュー
タプログラムをその上に有するコンピュータ読み取り可能媒体であって、
フレーム間の動きに基づいて知覚されるぶれを補正するために、前記デジタルビデオシ
ーケンスを修正するコンピュータプログラムコードと、
前記修正されたデジタルビデオシーケンスをディスプレイ装置へと供給するコンピュー
タプログラムコードとを有することを特徴とするコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に画像処理に関するものであり、より具体的には知覚されるぶれを補正す
るための修正が加えられたデジタルビデオシーケンスを表示するための方法およびシステ
ムに関する。
【背景技術】
【０００２】
液晶ディスプレイ（ＬＣＤ）装置などの手持ち型ディスプレイ装置上に表示されたデジ
タルビデオ中で動くオブジェクトは、見る人にはぶれて見えることがある。この知覚され
るぶれは、液晶セルの相対的に遅いＬＣ応答に一部起因することが知られている。たとえ
ば陰極線管（ＣＲＴ）装置などのインパルス型装置と比較した場合、ＬＣＤ装置ははるか
に遅い輝度遷移応答時間を持っている。知覚されるぶれはさらに、ＬＣＤ装置に一般に採
用されているサンプルホールド駆動技術に固有の持続的発光にも一部起因しており、これ
は人の網膜に残像を形成することになる。これらの残像は、そのビデオシーケンスを鑑賞
する際にぶれた視覚認知を生じさせるのである。
【０００３】
知覚されるぶれを補正するために様々な方法が提案されている。これらの中には、手持
ち型装置自体に修正を加える方法（ブラックフレームを挿入する、またはバックライトを
ブリンキングさせるなど）、および手持ち型装置上での表示前に、デジタルビデオシーケ
ンスのフレーム群に動きぶれを補正するための前処理（低域フィルタリングまたは逆フィ
ルタリングなど）を施す方法が含まれる。
【０００４】
ムスクリシュナン（Ｍｕｔｈｕｋｒｉｓｈｎａｎ）等による特許文献１は、デジタルビ
デオストリームの予測符号化用の動き推定アルゴリズムを開示している。現在のフレーム
中の所定ブロックのベストマッチは、隣接するすでに符号化されたマクロブロックのメデ
ィアンベクトル、ゼロ動きベクトル、一時的に同一場所に配置されたマクロブロック、周
囲のマクロブロック動きベクトル、および全体的な動きベクトルに基づいて参照フレーム
中の予測材料サーチポイント（predictor search points）群を識別することにより、見
出される。次に所定ブロックと、参照フレーム中のそれぞれの予測ポイントを中心とする
各参照ブロックとの間の絶対差分和（ＳＡＤ）が計算される。そして最も低いＳＡＤに対
応する予測ポイントが、所定の画素範囲におけるさらなるダイヤモンドサーチの中心とし
て使われ、ベターマッチ（たとえば最低ＳＡＤを提示するもの）が識別される。ベターマ
ッチが見つかった場合、そのベターマッチを中心として画素範囲をより小さくしたダイヤ
モンドサーチが実施される。この処理は、画素範囲を徐々に小さくしながら所定回数繰り
返し続けられる、または最低ＳＡＤが現在のダイヤモンドサーチの中心から動かなくなる
まで続けられる。そして所定ブロックの動きベクトルは、その最後のダイヤモンドサーチ
の中心に対応しているものとみなされる。
【０００５】
シェン（Ｓｈｅｎ）等による特許文献２および特許文献３は、ビデオを符号化するため
の中央処理装置（ＣＰＵ）と、符号化において用いる動き予測を実施するためのグラフィ
ック処理装置（ＧＰＵ）の両方を利用してビデオ符号化を加速するための方法を開示して
いる。特定のビデオフレームがＣＰＵにより識別され、処理のためにＧＰＵへと供給され
る。ＧＰＵはブロックマッチングにより動き予測を実施するもので、この間、最低ＳＡＤ
を呈する参照画素ブロックを見つけるためにサーチウィンドウ中の参照画素ブロックが現
在のフレーム中の現在の画素ブロックと比較される。現在のフレームをデジタルビデオデ
ータストリームへと符号化するために、画素ブロックの動き予測を表す動きベクトルがＧ
ＰＵからＣＰＵへと供給される。ＧＰＵには動き予測を加速するためのデプスバッファが
採用されている。
【０００６】
ニッカーソン（Ｎｉｃｋｅｒｓｏｎ）による特許文献４は、ビデオフレームからビデオ
ストリームへの符号化において連続するビデオフレーム間の動きを予測する方法を開示し
ている。この方法においては、現在のフレーム中の現在の画素ブロックが、参照フレーム
におけるサーチウィンドウ中の複数の参照画素ブロックと、ＳＡＤまたは差分の平方和（
ＳＳＤ）を用いて比較され、ベストマッチが決定される。現在の画素ブロックにおいて、
市松模様状パターンに分布する半分の画素のみが比較されることにより、計算負荷が低減
されている。
【０００７】
ドリスデール（Ｄｒｙｓｄａｌｅ）による特許文献５は、ビデオフレームセットの符号
化中にビデオフレーム間の動きを予測するための方法および装置を開示している。この方
法においては、ビデオフレームの１つからの第１マクロブロックが、参照ビデオフレーム
中の第２マクロブロックと比較され、差分値が決定される。次にこの差分値が比較値と比
較される。差分値が比較値以上であった場合、差分値は最低差分値と比較される。差分値
がその最低差分値以下である場合、その差分値が新たな最低差分値として記憶されること
により、より良好なマクロブロックマッチが確立される。
【０００８】
モリヨシ（Ｍｏｒｉｙｏｓｈｉ）による特許文献６は、デジタルビデオシーケンスの圧
縮符号化用にフレーム中の画素ブロック間の動きベクトルを検出するための方法を開示し
ている。本方法においては、現在の画像が画素ブロックへと分割され、現在の画像中の各
画素ブロックと、参照画像の探索範囲におけるそのベストマッチとの間の位置の違いが判
定される。参照フレーム中の同じ位置にある画素ブロックの動きベクトルは予測ベクトル
として設定され、予測ベクトルの終点位置が走査開始位置として設定される。探索の早い
時点で可能性の高い合致を見つけることができるように、探索中の走査は走査開始位置か
ら探索範囲外側に向けて渦巻き状に実施される。
【０００９】
クック（Ｃｏｏｋ）等による特許文献７はビデオシーケンスをデジタル符号化する目的
で、デジタルビデオシーケンス中のフレーム間の動きを補正するための方法を開示してい
る。この方法においては、画素マクロブロック中の画素の色を、そのシーケンスにおける
順方向および／または逆方向参照ピクチャについて先に取得されている動きベクトルを使
って予測することにより、シーケンス中のピクチャが再構成される。
【００１０】
ザッカリン（Ｚａｃｃａｒｉｎ）等による特許文献８は、ビデオシーケンスのマルチレ
ート符号化のための方法を開示している。この方法においては、あるフレームを以前に符
号化されたフレームへと関連付ける動き情報が、そのフレームと以前のフレームの空間領
域および周波数領域の両方の表現を用いることにより計算される。符号化前の動き補正は
周波数領域において実施される。
【００１１】
オー（Ａｕ）等による特許文献９は、デジタルビデオシーケンス中の連続する画像間の
動きを、ブロックマッチング法を使って予測するための方法を開示している。この方法に
おいては、現在のフレームの現在の画素ブロックに類似する以前のフレームの画素ブロッ
クの探索が実施される。以前のフレーム中のポイントに基づく探索領域が、連続的により
大きなダイヤモンド形状のゾーンとして配置される。ダイヤモンド形状のゾーンは、以前
のフレームにおける画素ブロックの対応位置を中心とすること、または以前の動き予測に
基づくポイントを中心とすることができる。前のフレーム中のベストマッチの画素ブロッ
クを探すための連続ゾーンにおける探索は、閾値数のダイヤモンド形状ゾーンが探索され
るまで続けられる。
【００１２】
ウィックマン（Ｗｉｃｈｍａｎ）等による特許文献１０は、デジタルビデオストリーム
を符号化または復号化するためにフレーム間の動き予測を実施するためのコプロセッサを
開示している。動き予測の間、１フレームにおいて、１つの１６×１６画素マクロブロッ
ク上の１つの動きベクトルと、４つの８×８画素ブロック上の４つの動きベクトルが計算
される。コプロセッサおよびプロセッサは協調して、マクロブロック全体用の一度の動き
ベクトル探索と４つの８×８ブロック用の複数の動きベクトル探索の両方を実施する。
【００１３】
ゾン（Ｚｈｏｎｇ）等による特許文献１１は、デジタルビデオシーケンス中のフレーム
間の動きを予測するための方法を開示している。この方法においては、複数の予測された
開始動きベクトルが選択される。その複数の予測開始動きベクトルを使った粗ブロック動
き探索が実施され、ＳＡＤ値と関連ベクトルとが取得される。次に微細ブロック動き探索
が、開始位置として粗探査から得られたベストマッチ動きベクトルを使用して実施される
。予測開始動きベクトルは、現在のマクロブロックの上方かつ左側のマクロブロックに対
応するベクトルが望ましい。粗探索は１６×１６ダイヤモンドサーチであり、微細探索は
８×８探索と２分の１画素探索の両方を含むものであることが望ましい。
【００１４】
コンドウ（Ｋｏｎｄｏ）等による特許文献１２は、一連の動画中の画像を符号化および
復号化するための方法を開示している。予測符号化に使われる動きベクトルの記憶手段は
、参照ピクチャ数よりも少ない動きベクトル数を記憶するように制御される。必要とされ
る動きベクトルが記憶されると、その必要される動きベクトルを使って符号化が実施され
る。さもなければ、符号化は近隣ブロックに対応する動きベクトルを使って実施される。
【００１５】
パウ（Ｐａｕ）等による特許文献１３は、ＰＡＬ（Ｐｈａｓｅ−Ａｌｔｅｒｎａｔｅ−
Ｌｉｎｅ）表示システムに基づいてフォーマットされたデジタル画像を非ＰＡＬ装置上で
表示するために、そのインターレースを解除するための方法を開示している。
【００１６】
カドノ（Ｋａｄｏｎｏ）等による特許文献１４は、デジタルビデオシーケンスの圧縮符
号化を実施するために、そのビデオシーケンスにおけるフレーム間の動きを予測するため
の方法を開示している。この方法においては、参照ピクチャ中の参照ブロックが探索中心
として定義される。次に現在のピクチャ中の現在のブロックと参照ブロックとの間の誤差
、および現在のブロックとその参照ブロックの近傍にある各参照ブロックとの間の誤差と
が計算される。最小誤差を持つ参照ブロックが特定される。最小誤差に基づき、動き予測
を終了するべきかどうかが決定される。最小誤差を持つ参照ブロックの位置に基づいて、
探索中心から２画素以上移動した参照ブロックが次の探索中心に設定され、この、次の探
索中心に基づいて計算が繰り返される。方法は繰り返され、最も新しい最小値が閾値に至
った時点で終了する。
【００１７】
オー（Ａｕ）等による特許文献１５は、デジタルビデオの圧縮時に複数フレームの動き
を予測するための方法を開示している。この方法においては、マクロブロックと、現在の
フレームにおけるそれらそれぞれの位置とが定義される。参照フレーム中の各マクロブロ
ックの探索領域と、探索領域内におけるマクロブロックの相対的なずれの各々を探す探索
ポイントとの両方が定義される。各マクロブロックをより小さく、重ならない領域へと細
分化する可能性のあるモード、すなわちレベル階層が構築される。各マクロブロックの「
緻密な」探索（たとえば画素精度の探索）が、最も高レベルに細分化されたマクロブロッ
クの各々に実施されることで、マクロブロックの整合が見つけられる。その後、最も高レ
ベルの緻密な探索から取得された動きベクトルの周囲で細かいダイヤモンド探索が実施さ
れる。そのマクロブロックの最良の動きベクトルは、最も不整合の小さい計測値（たとえ
ばＳＡＤ）を持つ参照フレームのマクロブロックの細分化部に対応する動きベクトルであ
る。
【００１８】
キタダ（Ｋｉｔａｄａ）等による特許文献１６は、圧縮符号化された動画像ストリーム
を復号化するための装置を開示している。装置は、以前に復号化されたピクチャを用いて
復号化されていないピクチャに対応するフレーム間予測信号を生成する動き補正処理を実
現している。フレーム間予測信号を生成するための動きベクトル情報は、エントロピー復
号部により動きのビデオストリームから分離される。
【００１９】
ナガラジャン（Ｎａｇａｒａｊａｎ）等による特許文献１７は、デジタルビデオの圧縮
符号化中にサブピクセル精度で動きベクトルを補間するための方法を開示している。各ブ
ロックについて全画素動きベクトルを計算するためのブロックマッチング処理は、現在の
フレーム中の画素ブロックを参照フレーム中の探索範囲にある参照画素ブロックと比較す
ることを含む。動きベクトルを補間する方法は、計算された全画素の動きの配向（水平、
垂直または斜めなど）に基づくものである。
【００２０】
マンジュナス（Ｍａｎｊｕｎａｔｈ）等による特許文献１８は、ビデオシーケンスの符
号化中に個々のビデオシーケンスにおけるフレーム間の動きを予測するための方法を開示
している。この方法においては、フレームの現在のビデオブロックの近傍にあるビデオブ
ロックについて、先に計算された動きベクトルに基づいて、動きベクトル予測が計算され
る。動きベクトル予測は、現在のビデオブロックの符号化のために予測ビデオブロックを
探索する上での基盤として用いられる。次に現在のビデオブロックと予測ビデオブロック
との間の差分を示す差分ブロックが計算され、現在のビデオブロックの符号化に用いられ
る。
【００２１】
ストナー（Ｓｔｏｎｅｒ）等による特許文献１９は、デジタルビデオシーケンスの符号
化において動き予測を最適化するための方法を開示している。この方法においては、現在
のフレーム中の現在のマクロブロックと、参照フレーム中の探索範囲にある複数の参照マ
クロブロックの各々との間でＳＡＤ値が計算される。次にそのマクロブロック中でブロッ
クサイズが最も小さいミクロブロックの全てについてＳＡＤ値が計算される。最も小さい
ミクロブロックのＳＡＤ値は、そのマクロブロック中における他のサイズを持つミクロブ
ロックのＳＡＤ値を計算する（たとえばミクロブロックのＳＡＤ値を異なる組み合わせで
合計する）ために用いられる。各マクロブロック中の様々なサイズのミクロブロックから
の最も低いＳＡＤ値に対応する動きベクトルが、そのマクロブロックの動きベクトルとみ
なされる。
【００２２】
【特許文献１】米国特許出願公開第２００５／０２６５４５４号明細書
【特許文献２】米国特許出願公開第２００６／００５６５１３号明細書
【特許文献３】米国特許出願公開第２００６／００５６７０８号明細書
【特許文献４】米国特許第５７６４７８７号明細書
【特許文献５】米国特許第６４９６５３８号明細書
【特許文献６】米国特許第６５４９５７６号明細書
【特許文献７】米国特許第６７０７８５３号明細書
【特許文献８】米国特許第６７７８６０７号明細書
【特許文献９】米国特許第６８４２４８３号明細書
【特許文献１０】米国特許出願公開第２００４／０２２７７６３号明細書
【特許文献１１】米国特許出願公開第２００４／０２４７０２９号明細書
【特許文献１２】米国特許出願公開第２００４／０２６４５７０号明細書
【特許文献１３】米国特許出願公開第２００５／０１７９８１４号明細書
【特許文献１４】米国特許出願公開第２００５／０１９０８４４号明細書
【特許文献１５】米国特許出願公開第２００６／０００２４７４号明細書
【特許文献１６】米国特許出願公開第２００６／００６７４０６号明細書
【特許文献１７】米国特許出願公開第２００６／０１０９９１０号明細書
【特許文献１８】米国特許出願公開第２００６／０１２０６１２号明細書
【特許文献１９】米国特許出願公開第２００６／０１２６７３９号明細書
【発明の開示】
【発明が解決しようとする課題】
【００２３】
デジタルビデオを符号化するためにデジタルビデオシーケンスにおけるフレーム間の動
きを予測することは周知ではあるが、手持ち型の装置上に表示されるデジタルビデオシー
ケンスにおいて知覚されるぶれを事前補正するための改善された技術が望まれている。
【００２４】
よって目的は、知覚されるぶれを補正するための修正が加えられたデジタルビデオシー
ケンスを表示する新規なシステムおよび方法を提供することにある。
【課題を解決するための手段】
【００２５】
上記の目的は下記の本発明により達成される。
【００２６】
デジタルビデオシーケンスを表示するための表示システムであって、前記デジタルビデ
オシーケンスを受信し、前記デジタルビデオシーケンスのフレーム間の動きに基づいて知
覚されるぶれを補正するための修正を加えるグラフィック処理装置（ＧＰＵ）と、前記修
正されたデジタルビデオシーケンスを表示するディスプレイ装置とを有する表示システム
。
【００２７】
本発明の表示システムにおいて、前記グラフィック処理装置は、プログラム可能フラグ
メントプロセッサと、前記デジタルビデオシーケンスのフレームを格納するテクスチャメ
モリと、前記プログラム可能フラグメントプロセッサにより実行可能なコンピュータプロ
グラムを格納するプログラムメモリとを有し、前記コンピュータプログラムは、現在のフ
レームおよび以前のフレームにおける画素間の動きを予測するプログラムコードと、知覚
されるぶれを補正するために前記予測された動きに基づいて前記現在のフレーム中の画素
をフィルタリングするプログラムコードとを有することが好ましい。
【００２８】
本発明の表示システムにおいて、前記グラフィック処理装置は、ベクトルマップルック
アップテーブルおよびオーバードライブルックアップテーブルを格納するテクスチャメモ
リをさらに有することが好ましい。
【００２９】
本発明の表示システムにおいて、前記グラフィック処理装置は、前記コンピュータプロ
グラムによる予測およびフィルタリングの中間フレーム処理結果を格納するフレームバッ
ファオブジェクトメモリをさらに有することが好ましい。
【００３０】
本発明の表示システムにおいて、前記フレームバッファオブジェクトメモリは、ベース
レベルおよびブロックレベルを持つポインタアレイをさらに格納していることが好ましい
。
【００３１】
本発明の表示システムにおいて、前記ベースレベルが、各々が前記現在のフレームと同
サイズである４つのテクスチャアタッチメントを含むことが好ましい。
【００３２】
本発明の表示システムにおいて、前記ブロックレベルが、各々が前記現在のフレームの
何分の１かのサイズである３つのテクスチャアタッチメントを含むことが好ましい。
【００３３】
本発明の表示システムにおいて、前記ブロックレベルのテクスチャアタッチメントのサ
イズが、前記現在のフレームの１／８であることが好ましい。
【００３４】
本発明の表示システムにおいて、前記動きを予測するプログラムコードおよび前記画素
をフィルタリングするプログラムコードが、フラグメントシェーダープログラムコードと
、バーテックスシェーダープログラムコードとを含むことが好ましい。
【００３５】
本発明の表示システムにおいて、前記グラフィック処理装置が、前記ディスプレイ装置
による表示のために、フィルタリングされたフレームを受ける複数のオフスクリーンフレ
ームバッファを有することが好ましい。
【００３６】
また本発明の表示システムにおいて、デジタルビデオストリームをデジタルビデオシー
ケンスへと復号化し、前記デジタルビデオシーケンスのフレームを前記グラフィック処理
装置へと供給する中央処理装置をさらに有することが好ましい。
【００３７】
一方、本発明のデジタルビデオを表示するための表示方法は、フレーム間の動きに基づ
いて知覚されるぶれを補正するために、グラフィック処理装置を使って入力デジタルビデ
オシーケンスを修正するステップと、前記修正されたデジタルビデオシーケンスをディス
プレイ装置へと供給するステップとを含む。
【００３８】
本発明の表示方法において、前記修正するステップが、前記デジタルビデオシーケンス
中のフレーム間の画素の動きを予測するステップと、前記予測された動きに基づいてフレ
ームをフィルタリングするステップとを含むことを特徴とする。
【００３９】
本発明の表示方法において、前記予測するステップが、現在のフレームの複数の画素ブ
ロックの各々について、前記現在のフレームと以前のフレームとの間の動きベクトルを予
測することにより、ブロック動きベクトルフィールドを取得するステップであって、前記
ブロック動きベクトルとは、それぞれの予測されたぶれの方向とぶれの範囲を表すもので
あることを特徴とする前記ステップと、前記ブロック動きベクトルフィールドをスムージ
ングするステップと、前記現在のフレーム中の各画素に、前記スムージングされたブロッ
ク動きベクトルフィールドにおいて対応するブロックのブロック動きベクトルを割り当て
るステップとを含むことが好ましい。
【００４０】
本発明の表示方法において、前記フィルタリングするステップが、前記現在のフレーム
に基づいて最初の推量フレームを生成するステップと、前記推量フレーム中の画素を、そ
れぞれに予測されたぶれ方向およびぶれ範囲の関数としてぶれ付けするステップと、それ
ぞれの画素の各々について誤差画素を生成するために、各ぶれ付けした画素を前記現在の
フレーム中のそれぞれの画素と比較するステップと、各誤差画素をぶれ付けし、重み付け
するステップと、前記推量フレームの更新およびぶれ補正を行うために、各誤差画素と、
前記最初の推量フレーム中のそれに対応する画素とを組み合わせるステップとを含むこと
が好ましい。
【００４１】
本発明の表示方法において、前記重み付けが、前記それぞれの画素の動きの関数である
ことが好ましい。
【００４２】
本発明の表示方法において、前記重み付けが、前記画素の動く方向における前記推量フ
レーム中の前記それぞれの画素のエッジ強度の予測値であることが好ましい。
【００４３】
本発明の表示方法において、前記エッジ強度が、高域フィルタを使って予測されたもの
であることが好ましい。
【００４４】
本発明の表示方法において、前記最初の推量フレームが、前記現在のフレームであるこ
とが好ましい。
【００４５】
本発明の表示方法において、前記重み付けが、前記画素の動く方向における前記推量フ
レーム中の前記それぞれの画素のエッジ強度の予測値であることが好ましい。
【００４６】
本発明の表示方法において、前記画素にぶれ付けするステップと、前記比較するステッ
プと、前記誤差画素にぶれ付けし重み付けするステップと、前記組み合わせるステップと
、が繰り返し実施されることが好ましい。
【００４７】
本発明の表示方法において、前記画素にぶれ付けするステップと、前記比較するステッ
プと、前記誤差画素にぶれ付けし重み付けするステップと、前記組み合わせるステップが
、誤差の和が閾値レベル未満に低下するまで繰り返し実施されることが好ましい。
【００４８】
本発明の表示方法において、前記画素にぶれ付けするステップと、前記比較するステッ
プと、前記誤差画素にぶれ付けし重み付けするステップと、前記組み合わせるステップと
が、所定回数にわたり繰り返し実施されることが好ましい。
【００４９】
本発明の表示方法において、前記画素にぶれ付けするステップと、前記比較するステッ
プと、前記誤差画素にぶれ付けし重み付けするステップと、前記組み合わせるステップと
が、連続する繰り返し間における誤差の和が閾値よりも大きい量分変化しなくなるまで繰
り返し実施されることが好ましい。
【００５０】
また、本発明のコンピュータ読み取り可能媒体は、デジタルビデオを表示するためにグ
ラフィック処理装置による実行が可能なコンピュータプログラムをその上に有するコンピ
ュータ読み取り可能媒体であって、フレーム間の動きに基づいて知覚されるぶれを補正す
るために、前記デジタルビデオシーケンスを修正するコンピュータプログラムコードと、
前記修正されたデジタルビデオシーケンスをディスプレイ装置へと供給するコンピュータ
プログラムコードとを有することを特徴とする。
【００５１】
本願に説明する方法およびシステムは、手持ち型ディスプレイ上に表示されるデジタル
ビデオの知覚される鮮明度を向上させつつも、多くの既知の逆フィルタリング法において
は一般的である過剰な雑音増幅を生じないものである。さらに動き予測および補正のため
にＧＰＵを利用したことにより、中央処理装置（ＣＰＵ）のみを用いた方法に比べて著し
い性能の向上が得られることになる。
【発明を実施するための最良の形態】
【００５２】
以下に添付図を参照しつつ、実施例をより具体的に説明する。
【００５３】
理解を容易にするために、まず、サンプルホールド式表示フォーマットを用いたＬＣＤ
装置などの手持ち型ディスプレイに起因してデジタルビデオ画像中で知覚されるぶれにつ
いて説明する。デジタルビデオシーケンスがＬＣＤ装置に入力されると、各デジタルビデ
オ画像、すなわちデジタルビデオシーケンスのフレームが、ＬＣＤ装置上に表示され、１
フレーム間隔にわたり持続する。Ｍ．Ｊ．ホーケン（Ｍ．Ｊ．Ｈａｗｋｅｎ）およびＫ．
Ｒ．ジェイゲンファートナー（Ｇｅｇｅｎｆｕｒｔｎｅｒ）著の「パースート・アイ・ム
ーブメント・トゥ・セカンド・オーダー・モーション・ターゲッツ（Pursuit Eye Moveme
nts to Second Order Motion Targets）」（ジャーナル・オブ・ザ・オプティカル・ソサ
エティ・オブ・アメリカ（Journal of the Optical Society of America）Ａ１８（９）
，ｐｐ２２９２−２２９６，２００１年）と題された出版物に説明されているように、人
の目は動くシーンを見ている間、なめらかな眼の動きにより活発にそのシーンを追い、人
の網膜上においては安定した画像を生成するようになっている。その時、人の視覚システ
ムはフリッカの無い画像を知覚するために、視覚的、一時的に低域通過フィルタの作用を
担うのである。
【００５４】
人の眼の追従反応は、少なくとも１フレーム間隔にわたるフレームデータを統合してし
まい、知覚されるぶれとなる。従ってＬＣＤ装置と人の視覚システムの追従反応の組み合
わせにより、空間的低域通過フィルタ効果がもたらされるのである。デジタルカメラで撮
像したデジタル画像における動きぶれを、画像の動きの方向および範囲の予測値を用いて
事前補正するための方法は、この参照により本願に組み込まれる米国特許出願公開第２０
０５／０２３１６０３号明細書に記載されている。デジタルビデオシーケンスにおいて知
覚される動きぶれを事前補正するための方法は、この参照により本願に組み込まれる米国
特許出願公開第２００６／０２８０２４９号明細書に記載されている。
【００５５】
以下の説明においては、知覚されるぶれを補正するための修正を加えられたデジタルビ
デオシーケンスを表示するためのシステムおよび方法を提供する。システムは、入力デジ
タルビデオシーケンスを受信し、そのデジタルビデオシーケンスのフレーム間の動きに基
づいて知覚されるぶれを補正するための修正を加えるグラフィック処理装置（ＧＰＵ）と
、修正されたデジタルビデオシーケンスを表示するディスプレイ装置とを具備している。
【００５６】
図１は、知覚されるぶれを補正するための修正を加えられたデジタルビデオシーケンス
を表示するためのシステム５０のブロック図である。システム５０は、デジタルビデオス
トリーム１５０を記憶したメモリ１００を含む。デジタルビデオストリーム１５０は、Ｍ
ＰＥＧ（Moving Pictures Expert Group）規格に基づき符号化されたものとすることがで
きる。中央処理装置（以降、ＣＰＵという）２００はデジタルビデオストリーム１５０を
受信し、そしてフレームのデジタルビデオシーケンス２５０へと復号化する。ＣＰＵ２０
０はこのデジタルビデオシーケンス２５０をグラフィック処理装置（以降、ＧＰＵという
）３００へと供給し、ここでデジタルビデオシーケンス２５０が処理され、フレーム間の
動きに基づいて知覚されるぶれが補正され、これにより修正された処理済みデジタルビデ
オシーケンス３５０が作られる。ＧＰＵ３００は修正された処理済みデジタルビデオシー
ケンス３５０を表示するためにディスプレイ装置４００へと送る。
【００５７】
本実施例においては、ＣＰＵ２００はＰｅｎｔｉｕｍ（登録商標）４、２．２６ＧＨｚ
システムであり、Ｗｉｎｄｏｗｓ（登録商標）２０００Ｐｒｏｆｅｓｓｉｏｎａｌ英語版
ＯＳと共に使われる。ＧＰＵ３００はＮＶＩＤＩＡ  ＧｅＦｏｒｃｅ６０００シリーズ以
上のもので、ＦｏｒｃｅＷａｒｅグラフィックドライバ、バージョン８１以上と共に使わ
れる。
【００５８】
図２は、ＧＰＵ３００のブロック図である。ＧＰＵ３００は、プログラム可能フラグメ
ントプロセッサ３１０、メモリ３１２を含んでいる。メモリ３１２は、デジタルビデオシ
ーケンス２５０の現在のフレーム、ベクトルマップルックアップテーブル、およびオーバ
ードライブルックアップテーブルを格納するための３テクスチャのデータメモリを含んで
いる。これらのテクスチャの可変定義を下記の表１に示す。
【００５９】
【表１】
2009065656.tif 000003
【００６０】
メモリ３１２はさらに、処理中に中間フレーム結果を保持するためのフレームバッファ
オブジェクトも格納している。フレームバッファオブジェクトの可変定義を下記の表２に
示す。
【００６１】
【表２】
2009065656.tif 000004
【００６２】
明らかなように、フレームバッファオブジェクトの利用により、テクスチャへの直接レ
ンダリングが可能である。これによりデフォルトのフレームバッファからデータをコピー
する必要がなくなるため、高性能化が可能である。フレームバッファオブジェクト自体は
それぞれのテクスチャアタッチメントを持つベースレベルおよびブロックレベルのポイン
タアレイを記憶している。テクスチャアタッチメントは１６ビットフロート型精度とＲＧ
ＢＡカラーフォーマットを持つ。テクスチャアタッチメントのＲＧＢＡカラーフォーマッ
トは各テクスチャから４つの単一チャネル輝度画像へのアクセスを提供しており、効率的
なメモリアクセスを可能としている。
【００６３】
ベースレベルは、以前のフレームデータ、事前処理済みフレーム結果、レンダリングバ
ッファおよびフレーム動きベクトルマップを格納するために４つのテクスチャアタッチメ
ントを含んでいる。これらベースレベルのテクスチャアタッチメントの各々は、現在のフ
レームと同じサイズである。フレームバッファオブジェクトテクスチャアタッチメントの
可変定義を下記の表３に示す。
【００６４】
【表３】
2009065656.tif 000005
【００６５】
ポインタアレイのブロックレベルはブロック動き予測用に３つのテクスチャアタッチメ
ントを含み、その各々が現在のフレームの１／８のサイズを持っている。
【００６６】
メモリ３１２はさらに、２つのオフスクリーンフレームバッファを含む。オフスクリー
ンフレームバッファは後に説明するように、フレームバッファオブジェクトにおけるテク
スチャのマルチパスレンダリングに用いられる。２つのオフスクリーンフレームバッファ
が必要とされる理由は、フレームバッファオブジェクトからの／へのテクスチャの読み出
し／書き込みを同時に実施することができないためである。
【００６７】
メモリ３１２はさらに、ＧＬＵＴ（ＯｐｅｎＧＬユティリティツールキット）を使って
書き込まれるＯｐｅｎＧＬ（オープングラフィックライブラリ）アプリケーションを格納
するためのプログラムメモリも含んでいる。ＯｐｅｎＧＬは、２Ｄおよび３Ｄグラフィッ
クアプリケーション用の業界標準グラフィックアプリケーションプログラミングインター
フェース（ＡＰＩ）である。一般に、ＯｐｅｎＧＬ  ＡＰＩは、ホストアプリケーション
から受けた、レンダリングするオブジェクトを表すグラフィックデータを処理し、そして
ユーザーが見ることができるようにディスプレイ装置上にグラフィック化したオブジェク
トを表示するものである。
【００６８】
ＯｐｅｎＧＬアプリケーションは、バーテックスシェーダーおよびフラグメントシェー
ダープログラムを含む。バーテックスシェーダープログラムの概要を下記の表４に示す。
【００６９】
【表４】
2009065656.tif 000006
【００７０】
フラグメントシェーダープログラムの概要を下記の表５に示す。
【００７１】
【表５】
2009065656.tif 000007
【００７２】
バーテックスシェーダープログラムは、畳み込みカーネルのテクスチャ座標を事前計算
することによりフラグメントシェーダープログラムの作業負荷を緩和する働きを持つ。フ
ラグメントシェーダープログラムは、既知のＮＶ_ｆｒａｇｍｅｎｔ_ｐｒｏｇｒａｍ  ｆ
ｐ４０  ｐｒｏｆｉｌｅを用いてランタイム時にコンパイルされる。
【００７３】
バーテックスシェーダーおよびフラグメントシェーダープログラムはＣ＋＋およびＣｇ
で書かれたもので、Ｃ＋＋コンパイラはＭｉｃｒｓｏｆｔ  Ｖｉｓｕａｌ  Ｓｔｕｄｉｏ
Ｃ＋＋６．０である。ＣｇコンパイラはＣｇコンパイラ１．４  ＯｐｅｎＧＬバージョ
ン２．０であり、ＯｐｅｎＧＬ  Ｆｒａｍｅｂｕｆｆｅｒ  Ｏｂｊｅｃｔ  Ｅｘｔｅｎｔ
ｉｏｎが使われている。
【００７４】
図３は、デジタルビデオシーケンスの処理中および表示中にシステム５０が採用するス
テップの概要を示している。最初に、ヘッダファイル群ｇｌ．ｈ、ｇｌｕ．ｈ、ｇｌｕｔ
．ｈおよびｇｌｔｅｘｔ．ｈ、ライブラリ群ｏｐｅｎｇｌ３２．ｌｉｂ、ｇｌｕ３２．ｌ
ｉｂおよびｇｌｕｔ３２．ｌｉｂ、そしてＤＬＬ群ｏｐｅｎｇｌ３２．ｄｌｌ、ｇｌｕ３
２．ｄｌｌおよびｇｌｕｔ３２．ｄｌｌを使ってＷｉｎｄｏｗｓ（登録商標）  Ｏｐｅｎ
ＧＬ開発環境を設定することによりバーテックスシェーダーおよびフラグメントシェーダ
ープログラムコードがコンパイルされる。
【００７５】
Ｃｇ開発環境は、ヘッダファイル群ｃｇ．ｈおよびｃｇＧＬ．ｈ、ライブラリ群ｃｇ．
ｌｉｂおよびｃｇＧＬ．ｌｉｂ、そしてＤＬＬ群ｃｇ．ｄｌｌおよびｃｇＧＬ．ｄｌｌを
使って設定される。標準型ＧＬＵＴディスプレイおよびコールバック機能がビデオプレイ
バックウィンドウの生成に使われる。ビデオ同期オプションの有効時にはビデオプレイバ
ックはディスプレイ装置４００のＶＳＹＮＣ信号と同期し、無効時には可能な限りすぐに
進められる。
【００７６】
デジタルビデオシーケンスをディスプレイ装置４００上で表示することが望まれる場合
、ＣＰＵ２００がメモリ１００からデジタルビデオストリームを読み出す。読み出すと、
ＣＰＵ２００はそのデジタルビデオストリームを復号化し、結果得られたデジタルビデオ
シーケンス２５０の各フレームＦnをＧＰＵ２００へと出力する（ステップＳ５００）。
ＧＰＵ２００は、デジタルビデオシーケンス２５０のフレームを処理し、最終的に知覚さ
れる動きぶれを補正するための修正が施された出力フレームＯnを出力する（ステップＳ
６００）。修正された出力フレームＯnは処理済みデジタルビデオシーケンス３５０を構
成し、これがディスプレイ装置４００上で表示される（ステップＳ７００）。
【００７７】
図４は、プログラムのフロー図であり、デジタルビデオシーケンス２５０の現在のフレ
ームに実施される処理演算の流れを説明している。図５は、動きの事前補正中に用いられ
るフラグメントシェーダープログラムのデータ入力とデータ出力を相互に関連付けた表で
ある。
【００７８】
最初に、メモリ１００から読み出されたＭＰＥＧ方式のデジタルビデオストリーム１５
０をデジタルビデオシーケンス２５０へと復号化するために、ＣＰＵ２００上でＭＰＥＧ
復号化スレッドが起動する。各フレームの復号化後、ＣＰＵ２００は、デジタルビデオシ
ーケンスの次のフレームの復号化を続ける前に、ｍ_ＦｒａｍｅＩｓＲｅａｄｙＥｖｅｎ
ｔイベントフラグを設定し、ＧＰＵ３００からのｍ_ＦｒａｍｅＷａｎｔｅｄＥｖｅｎｔ
イベントフラグを待つ。
【００７９】
ＧＰＵ３００は現在のフレームを受信すると、現在のフレームをテクスチャｍｐｅｇＴ
ｅｘＩＤにバインドし、次にＣＰＵ２００に他のフレームをＧＰＵ３００へと供給しても
よいことを知らせるためにｍ_ＦｒａｍｅＷａｎｔｅｄＥｖｅｎｔフラグを設定する。フ
ラグメントシェーダープログラムｆｒａｇｍｅｎｔ_０１_ｒｇｂ２ｇｒａｙを用い、ＧＰ
Ｕ３００は現在のフレームを単純な線形変換を利用してＲＧＢ色空間からＹＩＱ色空間へ
と変換する。すると現在のフレームの輝度チャネルが抽出され、ｍ_ｎＤｅｓｔＴｅｘＩ
Ｄに格納される（表３および図５を参照）。現在のフレーム中の画素間の動きはｍ_ｎＤ
ｅｓｔＴｅｘＩＤに格納され、そしてｍ_ｎＳｒｃＴｅｘＩＤに格納されていた以前のフ
レームの画素間の動きが予測される。
【００８０】
現在のフレームおよび以前のフレームの画素間の動きの予測においては、高さｈおよび
幅ｗを持つ現在のフレームがｂ×ｂの画素ブロックへと分割されるもので、ここではｂ＝
８であり、６４画素ブロックが存在している。次に［ｈ／８］×［ｗ／８］の寸法を持つ
動きベクトルフィールドＶnが初期化される。その後、以前のフレームとのベストマッチ
を探すために、現在のフレームの各画素ブロックについてサーチが実施される。
【００８１】
サーチにおいては、半径ｒ＝１６画素を持ち、その画素ブロックに対応する以前のフレ
ーム中の位置に中心を持つサーチウィンドウが画定される。次に１２個の動きベクトル候
補（ゼロベクトルを含む）がサーチウィンドウ上でその中心から様々な方向および距離に
識別される。具体的には、サーチウィンドウ中心から「＋」形状に延びる５個の動きベク
トル候補は距離ｄ＝ｒ／４に画定され、サーチウィンドウ中心から「ｘ」形状に延びる４
個の動きベクトル候補は距離２ｄに画定され、そしてサーチウィンドウ中心から「＋」形
状に延びる４個の動きベクトル候補は距離３ｄに画定される。
【００８２】
図６は、画素ブロックのフレーム間動き予測において用いられる動きベクトル候補の終
点を示す図である。
【００８３】
フラグメントシェーダープログラムｆｒａｇｍｅｎｔ_０２_ａｂｓｄｉｆｆ_０，ｆｒ
ａｇｍｅｎｔ_０３_ｓｕｍｄｉｆｆ_０，ｆｒａｇｍｅｎｔ_０４_ａｂｓｄｉｆｆ_１，ｆ
ｒａｇｍｅｎｔ_０４_ｓｕｍｄｉｆｆ_１を用いてゼロベクトルおよび第１レベルブロッ
ク動きサーチの絶対差分和（ＳＡＤ）が計算された後、それぞれの動きベクトル候補によ
り中心を画定されたマッチング画素ブロック候補群が、現在のフレーム中の現在の画素ブ
ロックと比較される。ＳＡＤは、下記式（１）により計算される。
【００８４】
【数１】
2009065656.tif 000008
【００８５】
その後、最低ＳＡＤが得られたマッチング画素ブロック候補としてベストマッチが識別
される。ベストマッチがゼロベクトルに対応するマッチング画素ブロック候補であった場
合、サーチは終了し、その画素ブロックにおける画素の動きはゼロであるとみなされる。
そうでない場合、サーチはさらに細分化される。サーチの細分化においては、ベストマッ
チの中心から、それぞれの方向に距離ｄ分延びた８個のさらなる動きベクトル候補が画定
される。次にフラグメントシェーダープログラムｆｒａｇｍｅｎｔ_０６_ａｂｓｄｉｆｆ
_２，ｆｒａｇｍｅｎｔ_０７_ｓｕｍｄｉｆｆ_２を用い、さらなる動きベクトル候補のそ
れぞれによって画定された中心を持つさらなるマッチング画素ブロック候補群が、現在の
フレーム中の画素ブロックと比較される。さらなるマッチング画素ブロック候補群のいず
れも、現在のベストマッチよりも低いＳＡＤを生じない場合、現在のベストマッチが最終
マッチであるとみなされ、そのブロックの動きはその最終マッチの動きベクトル候補に対
応するとみなされる。そうでない場合、より低いＳＡＤを生じたさらなるマッチング画素
ブロック候補が新たなベストマッチとみなされる。その後、サーチはフラグメントシェー
ダープログラムｆｒａｇｍｅｎｔ_０６_ａｂｓｄｉｆｆ_２，ｆｒａｇｍｅｎｔ_０７_ｓ
ｕｍｄｉｆｆ_２を用いて新たなベストマッチの中心から、それぞれの方向に距離ｄ／２
分延びた８個のさらなる動きベクトル候補に基づいてさらに細分化される。
【００８６】
上述した処理は、フラグメントシェーダープログラムｆｒａｇｍｅｎｔ_０６_ａｂｓｄ
ｉｆｆ_２，ｆｒａｇｍｅｎｔ_０７_ｓｕｍｄｉｆｆ_２を使って漸次細分化を続け、さら
なる動きベクトルが以前のベストマッチ中心から伸びる距離が漸次小さくなっていく。サ
ーチは、さらなる動きベクトル候補の長さが１画素未満となった場合、またはさらなる細
分化で、現在のベストマッチよりも低いＳＡＤを持つさらなるマッチング画素ブロック候
補が得られない場合のいずれかで終了する。
【００８７】
次に、以前のフレーム中のベストマッチに対応する動きベクトルにより、現在のフレー
ム中のブロック位置に対応するベクトルフィールドの位置が更新される。上述した処理は
、現在のフレームの各ブロックについて実施される。
【００８８】
図７（ａ）は、２フレーム間の画素ブロックの動きベクトルを示すベクトルフィールド
例である。現在のフレーム中の画素ブロックに対するベストマッチに相当するモーション
ベクトルがベクトルフィールドへと投入されると、ベクトルフィールドはフラグメントシ
ェーダープログラムｆｒａｇｍｅｎｔ_０８_ｖｅｃｍｅｄｉａｎによりベクトルメディア
ンフィルタを使ってスムージングされる。図７（ａ）のベクトルフィールドにベクトルメ
ディアンフィルタを適用した結果を、図７（ｂ）のベクトルフィールドに示す。
【００８９】
各画素ブロックについて動きベクトルが取得されると、動きベクトルマップが完成する
。次にフラグメントシェーダープログラムｆｒａｇｍｅｎｔ_０９_ｖｅｃｍａｐが、動き
ベクトルの双線補間法を使って動きベクトルマップを現在のフレームの１／８サイズから
現在のフレームのサイズへと変換する。これにより現在のフレーム中の各画素に方向と範
囲を持つそれぞれの動きベクトルが割り当てられる。
【００９０】
動きベクトルが存在しない場合、動きの事前補正は必要とされない。この場合、出力フ
レームＯnは、現在のフレームＦnと等しくなる。
【００９１】
しかしながら、現在のフレームＦnと以前のフレームＦn-1との間に予測される動きがあ
った場合、現在のフレームＦnに対する出力フレームＯnを生成するために、動きぶれの事
前補正が実施される。システム５０が使用する事前補正とは、以下にも説明するように、
上述した米国特許出願公開第２００５／０２３１６０３号明細書に開示された技術の一変
更形態である。
【００９２】
現在のフレームＦnおよび以前のフレームＦn-1が与えられると、フラグメントシェーダ
ープログラムｆｒａｇｍｅｎｔ_１０_ｉｍｇｇｒａｄは、各画素位置におけるフレーム内
差分およびフレーム間差分の両方を、そのそれぞれの動きベクトルに基づいて計算する。
差分は重みとして格納され、各画素に実施すべき修正量を設定するフラグメントシェーダ
ープログラムｆｒａｇｍｅｎｔ_１１_ｓｅｔｗｅｉｇｈｔによって利用される。
【００９３】
フィルタバンクが構築され、そして各動きベクタ用に線形ぶれフィルタｆkが、サイズ
ｓkおよびそれぞれの動きベクトルに対応する方向Θkで作成されてフィルタバンクに加え
られる。たとえば、Ｋ＝２の場合、２個の線形ぶれフィルタのうち、方向Θ1＝０°、範
囲ｓ1＝５画素の動きベクトルに基づく第１のフィルタｆ1は以下の通りになる。
【００９４】
【数２】
2009065656.tif 000009
【００９５】
２個のぶれフィルタのうち、方向Θ2＝９０°、範囲ｓ2＝３画素の動きベクトルに基づ
く第２のフィルタｆ2は以下の通りになる。
【００９６】
【数３】
2009065656.tif 000010
【００９７】
現在のフレームＦnを出力フレームＯnの最初の推量画像として設定することにより、最
初の推量フレームが構成される。推量画像から１つの推量画素が選択され、その推量画素
に対応するぶれフィルタがフィルタバンクから読み出される。ぶれフィルタが少なくとも
１画素の範囲を持っていない場合、次の画素が選択される。逆に持っている場合、推量画
素のエッジ強度がソーベルエッジフィルタを使ってぶれフィルタの動きの方向において推
定され、重み係数Ｗn（ｘ，ｙ）として保存される。ソーベルエッジフィルタ演算および
重み付けは、下記方程式（２）、方程式（３）および方程式（４）に準じて実施される。
【００９８】
【数４】
2009065656.tif 000011
【００９９】
【数５】
2009065656.tif 000012
【０１００】
【数６】
2009065656.tif 000013
【０１０１】
次に出力フレーム画素Ｏn（ｘ，ｙ）をフィルタｆkで畳み込むことにより、ぶれフィル
タを使って推量画素をぶれ付けし、ぶれ付けした画素Ｂn（ｘ，ｙ）を取得する。フレー
ムＦn中の画素とぶれ付けした推量画素間の誤差は、現在のフレーム画素Ｆn（ｘ，ｙ）か
らぶれ付けした画素Ｂn（ｘ，ｙ）を減算して誤差Ｅn（ｘ，ｙ）を取得することにより決
定される。次に誤差Ｅn（ｘ，ｙ）がぶれフィルタｆkを使ってぶれ付けされ、重み係数と
して取得したエッジ強度を用いて重み付けが行われる。その後、推量画素は下記方程式（
５）に基づいて重みを付けられ、ぶれ付けされた誤差で更新される。
【０１０２】
【数７】
2009065656.tif 000014
ここでβは一定のステップサイズである。
【０１０３】
推量画像において選択すべき画素がさらにある場合、上述した前処理のために次の画素
が選択される。そうでない場合、全画素にわたり出力フレームＯnに対する総合調整値が
計算され、下記方程式（６）に基づいて全画素にわたり計算された推量画像と現在のフレ
ームＦn間の全体的な差分ΔＥが決定される。
【０１０４】
【数８】
2009065656.tif 000015
【０１０５】
全体的な差分ΔＥが所定の誤差閾値未満であれば、現在のフレームＦnの事前補正が完
了する。この結果得られた出力フレームＯnはフラグメントシェーダープログラムｆｒａ
ｇｍｅｎｔ_１４_ｓｈａｒｐｅｎにより、各画素位置における動きの方向に調節された方
向性シャープニングフィルタを用いてシャープニングされ、レンダリングバッファｍ_ｎ
ＢｕｆｆｅｒＴｅｘＩＤ中に格納される。そうでない場合、更新された推量画像における
１画素が選択され、完了するまで上述した処理が再度繰り返される。
【０１０６】
出力フレームＯnへのシャープニング処理が完了すると、フラグメントシェーダープロ
グラムｆｒａｇｍｅｎｔ_１５_ｏｖｅｒｄｒｉｖｅを使ってオーバードライブ演算が実施
される。オーバードライブ演算の結果は事前処理済みフレーム結果としてｍ_ｎＤｅｓｔ
ＴｅｘＩＤ中に格納される。オーバードライブは、手持ち型装置の相対的に遅い応答時間
についてさらなる補正を提供する。オーバードライブの間、各デバイス画素に印加される
駆動電圧は、階調遷移に比例する量だけ調節される。この技術はＨ．Ｏｋｕｒａｍａ、Ｍ
．Ａｋｉｙａｍａ、Ｋ．ＴａｋｏｔｏｈおよびＹ．Ｕｅｍａｔｓｕ著の「ア・ニュー・ロ
ー・イメージ‐ラグ・ドライブ・メソッド・フォア・ラージサイズＬＣＴＶ（A New Low 
Image-Lag Drive Method For Large-Size LCTV）」（ＳＩＤ’０２Ｄｉｇｅｓｔ，ｐｐ．
１２８４−１２８７，２００２）に記載されている。
【０１０７】
オーバードライブが出力フレームＯn上で完了すると、フラグメントシェーダープログ
ラムｆｒａｇｍｅｎｔ_１６_ｇｒａｙ２ｒｇｂは、出力フレームＯnをｍｐｅｇＴｅｘＩ
Ｄにて格納されたＹＩＱフレームの輝度チャネルＹへと挿入し、そのフレームをＲＧＢ色
空間へと変換し、修正したＲＧＢフレームデータをディスプレイ装置４００へと提供する
。
【０１０８】
ソースおよびターゲットテクスチャＩＤを各レンダリングパスの末端にてスワップする
ことによりマルチパスレンダリングが実現されるように、２つのオフスクリーンフレーム
バッファが使用される。こうして第１パスからのターゲットテクスチャは第２パスのソー
スとして使用されるのである。
【０１０９】
システム５０の性能は、動きの事前補正にＣＰＵのみを採用したシステムよりも優秀で
あることがわかっている。システム５０の性能を評価するために用いたテスト環境は、Ｗ
ｉｎｄｏｗｓ（登録商標）２０００Ｐｒｏｆｅｓｓｉｏｎａｌ英語版ＯＳを使ったＰｅｎ
ｔｉｕｍ（登録商標）４  ２．２６ＧＨｚ  ＣＰＵ、２５６ＭＢのＲＡＭおよび２６６Ｍ
Ｈｚのバス速度を含む。ＧＰＵは、ＮＶＩＤＩＡ  ＧｅＦｏｒｃｅ６６００シリーズのＧ
ＰＵを２５６ＭＢ  ＤＤＲ  ＲＡＭと共に使用した。kernel32.libライブラリの提供する
性能カウンタ機能を使用して評価指標を取得し、その結果をｇＤＥＢｕｇｇｅｒ  Ｏｐｅ
ｎＧＬプロファイラ、バージョン２．３を用いて検証した。評価された実装オプションの
各々について、試験ビデオシーケンス１００フレーム分の処理にかかった時間が計測され
た。各ビデオシーケンスは５回にわたって計測され、平均フレーム処理時間を得た。
【０１１０】
性能評価においては、５つのビデオシーケンスが使用された。これらの内容は以下の通
りである。
１．「フォアマン」：実写ビデオシーケンスであり、静止したバックグラウンドの前景
で被写体が動くもので、１７６×１４４画素の解像度を持つ。
２．「ヴィジョンチャート」：様々なフォントサイズを持つ視力検査表のアニメビデオ
シーケンスであり、一定の動きで左から右へとスクロールするもので、２５６×１９２画
素の解像度を持つ。
３．「ロード」：左から右へとパンするカメラで高速で動く車両を実写したビデオシー
ケンスであり、３２０×２４０画素の解像度を持つ。
４．「フットボール」：前景にいる高速移動する複数の被写体を実写したビデオシーケ
ンスであり、３５２×２４０画素の解像度を持つ。
５．「トゥードッグズ」：異なる方向に動きまわる２匹の犬を実写したビデオシーケン
スであり、６４０×４８０画素の解像度を持つ。
【０１１１】
実写のビデオシーケンスは全てＭＰＥＧフォーマットで保存されたものである一方、ア
ニメのシーケンスはＤｉｒｅｃｔＸを使ってＢＭＰ画像を動かすことにより作成し、その
結果をＭＰＥＧファイルに保存したものである。すべてのテストビデオシーケンスにおい
ては３０ｆｐｓのフレームレート（フレーム／秒）を使った。
【０１１２】
アルゴリズム中の全ての演算を完了するまでにＧＰＵおよびＣＰＵが使った個々の処理
時間の合計が比較された。これらの演算には：色空間変換、動き予測、動きぶれ補正、動
きのシャープニングおよびオーバードライブが含まれる。図８は、いくつかのフレームサ
イズについて、知覚されるぶれを補正するためのフレーム修正にかかったＧＰＵおよびＣ
ＰＵの全体的な処理時間の差を説明するグラフである。図９は、図８のＧＰＵおよびＣＰ
Ｕの全体的な処理時間を相関させた表であり、フレームあたりの処理時間とフレームレー
トが示されている。全体としては、ＧＰＵ実装例がＣＰＵ実装例の約２．５倍の性能高速
化係数を出した。性能高速化は、フレームサイズの増大に伴い重要度が増しているもので
ある。
【０１１３】
図１０は、知覚されるぶれを補正するためのフレーム修正において、様々な処理演算を
行った個々のＧＰＵおよびＣＰＵ処理時間の違いを含む表である。図１１は、図１０の様
々な処理演算の個々のＧＰＵおよびＣＰＵ処理時間の違いを説明する一群のグラフである
。上述した比較グラフおよび表から、最も重要な性能上の利益が動き予測において生じた
平均５倍の増加であることがわかる。加えて、オーバードライブのように全画素を通じて
高度に均一な演算は、ＧＰＵ並列処理アーキテクチャからの恩恵を明確に受けるものであ
る。
【０１１４】
多くの場合において、実際の動きぶれ補正を完了すると、ＣＰＵよりもＧＰＵのほうが
時間がかかっていたことが観測されている。これは、読み出しオンリー、または書き込み
オンリーのいずれかであるオフスクリーンレンダリングターゲットを用いる場合の、ＧＰ
Ｕ実装例におけるさらなるデータコピー時間に起因していると考えられる。他の理由とし
ては、異なるフレームバッファ間でのスワップにより繰り返しのレンダリング処理に課せ
られるオーバーヘッドも考えられる。さらには、ＧＰＵ実装例においては動きベクトルが
各画素について別個に格納されるのであるが、これはより滑らかな結果を生み出すことに
もなる一方で本質的にテクスチャフェッチに必要な時間を増大させてしまう。
【０１１５】
図を参照しながら特定の実施例について上記に説明してきたが、他の実施例も可能であ
ることは明らかである。たとえば、動き予測用に８×８画素ブロックサイズを説明してき
たが、対応する処理時間−対−性能トレードオフを持つ、より大きい、またはより小さい
ブロックサイズを選択することも可能である。
【０１１６】
繰り返しの事前補正が完了したかどうかを判定するための上記に記載した基準に代えて
、画素誤差の和が閾値量を超えて変化したかどうかで判定する方法を採用することもでき
る。たとえば、画素ぶれ付け、比較、誤差画素ぶれ付けおよび重み付け、そして組み合わ
せ処理を、特定の実施例に合わせる上で必要とされる所定回数にわたり繰り返し実施する
こともできる。
【０１１７】
実施例を説明してきたが、当業者には明らかなように、本願請求項に定義される本発明
の精神および範囲から離れることなく変更および改変を加えることは可能である。
【図面の簡単な説明】
【０１１８】
【図１】デジタルビデオストリームをデジタルビデオシーケンスへと復号化し、ディスプレイ装置を使ってそのデジタルビデオシーケンスを表示するためのシステムのブロック図。
【図２】図１のシステムにおけるグラフィック処理装置（ＧＰＵ）のブロック図。
【図３】デジタルビデオシーケンスを処理および表示するための方法のブロック図。
【図４】図３の方法の間にデジタルビデオシーケンスフレームに実施される処理フローを示すプログラムフロー図。
【図５】図２のグラフィック処理装置が利用するいくつかのフラグメントシェーダープログラムのデータ入力および出力の相互関係を示す表。
【図６】デジタルビデオシーケンスフレーム間の画素ブロックの動き予測において使用される動きベクトル候補の終点を示す図。
【図７】（ａ）は、２つのフレーム間における画素ブロックの動きベクトルを示すベクトルフィールド例を描いた図、（ｂ）は、（ａ）のベクトルフィールドをベクトルスムージング処理した後の図。
【図８】動きぶれの事前補正における全体的処理時間について、中央処理装置（ＣＰＵ）とＧＰＵの違いを説明するグラフ。
【図９】図８の全体的処理時間を、フレーム毎の処理時間およびフレームレートに相関させた表。
【図１０】動きぶれの事前補正における様々な処理演算の個々の処理時間について、ＧＰＵとＣＰＵの違いを示す表。
【図１１】図１０の様々な処理演算の個々の処理時間の違いを示すグラフ群。
【符号の説明】
【０１１９】
５０…システム、１００…メモリ、１５０…デジタルビデオストリーム、２００…中央
処理装置（ＣＰＵ）、２５０…デジタルビデオシーケンス、３００…グラフィック処理装
置（ＧＰＵ）、３１０…プログラム可能フラグメントプロセッサ、３１２…メモリ、３５
０…処理済みデジタルビデオシーケンス、４００…ディスプレイ装置。
【図１】
2009065656.tif 000016
【図２】
2009065656.tif 000017
【図３】
2009065656.tif 000018
【図４】
2009065656.tif 000019
【図５】
2009065656.tif 000020
【図６】
2009065656.tif 000021
【図８】
2009065656.tif 000022
【図９】
2009065656.tif 000023
【図１０】
2009065656.tif 000024
【図１１】
2009065656.tif 000025
【図７】
2009065656.tif 000026