(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-26
(45)【発行日】2024-12-04
(54)【発明の名称】オーバースムージングプログレッシブ画像
(51)【国際特許分類】
H04N 19/187 20140101AFI20241127BHJP
H04N 19/117 20140101ALI20241127BHJP
H04N 19/33 20140101ALI20241127BHJP
【FI】
H04N19/187
H04N19/117
H04N19/33
(21)【出願番号】P 2022569240
(86)(22)【出願日】2021-04-27
(86)【国際出願番号】 US2021070464
(87)【国際公開番号】W WO2022026966
(87)【国際公開日】2022-02-03
【審査請求日】2023-04-04
(32)【優先日】2020-07-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】アラクイジャラ,ジュルキ・アンテロ
(72)【発明者】
【氏名】フィルシング,モーリッツ
【審査官】田部井 和彦
(56)【参考文献】
【文献】特表2002-528969(JP,A)
【文献】特表2008-517540(JP,A)
【文献】米国特許第07127453(US,B1)
【文献】米国特許出願公開第2020/0302664(US,A1)
【文献】米国特許出願公開第2015/0213632(US,A1)
【文献】Jiankun Li et al.,Layered DCT Still Image Compression [online],Published in: IEEE Transactions on Circuits and Systems for Video Technology ( Volume: 7 , Issue: 2, April 1997), [2024年1月4日検索],1997年04月,pp.440-443,インターネット <URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=564125>,DOI: 10.1109/76.564125
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/187
H04N 19/117
H04N 19/33
(57)【特許請求の範囲】
【請求項1】
画像を表す画像データにアクセスするための要求を、クライアントから送信することと、
特徴の第1セットを含む第1レイヤを表す前記画像データの第1部分を、前記要求を送信した後に受信することと、
前記クライアントに関連するディスプレイに、前記画像のオーバースムージングされたバージョンを前記第1レイヤとしてレンダリングすることとを備え、前記画像のオーバースムージングされたバージョンは複数の色を含み、
前記画像は当該画像のプログレッシブ位相に適用されるスムージングの量を指定するパラメータに基づきオーバースムージングされ、
追加の画像レイヤのセットを表す前記画像データの第2部分を、前記クライアントに前記画像データの前記第1部分を受信した後に受信することと、
前記第1レイヤの特徴の前記第1セットを前記ディスプレイに表示している間に、前記ディスプレイの追加の画像レイヤの前記セットをレンダリングすることとを備える、方法。
【請求項2】
前記第1レイヤは、前記画像の画像ピクセルのセット上でレンダリングされ、
前記画像データの前記第2部分によって表される前記追加の画像レイヤの前記セットは、第2レイヤと第3レイヤとを含み、
前記方法は、さらに、
画像ピクセルの前記セットの第1サブセット上に画像特徴の第2セットを前記第2レイヤとしてレンダリングすることと、
画像ピクセルの前記セットの第2サブセット上に画像特徴の第3セットを前記第3レイヤとしてレンダリングすることとを備える、請求項1に記載の方法。
【請求項3】
前記第1レイヤは、前記画像の画像ピクセルのセット上でレンダリングされ、
前記画像データの前記第2部分によって表される前記追加の画像レイヤのセットは、第2レイヤを含み、
前記方法は、さらに、前記第1レイヤ上に画像特徴の第2セットを前記第2レイヤとしてレンダリングすることを備える、請求項1に記載の方法。
【請求項4】
特徴の前記第2セットをレンダリングすることは、画像ピクセルの前記セットのサブセット上でクロスフェード演算を実行することを含む、請求項3に記載の方法。
【請求項5】
前記クロスフェード演算は、特定のぼかしカーネルを用いた畳み込み演算を含む、請求項4に記載の方法。
【請求項6】
前記クロスフェード演算は、ピクセルのブロックのサブブロックに適用され、
前記サブブロックはブロックの角に位置する、請求項4または5に記載の方法。
【請求項7】
前記ディスプレイに前記画像の前記オーバースムージングされたバージョンをレンダリングすることは、オーバースムージング
のパラメータのユーザに指定された値に従って、前記画像の前記オーバースムージングされたバージョンを生成するためにオーバースムージング動作を実行することを含む、請求項1から6のいずれか1項に記載の方法。
【請求項8】
前記第1レイヤの特徴の前記第1セットを前記ディスプレイに表示している間に、前記ディスプレイの追加の画像レイヤの前記セットをレンダリングすることは、
前記画像データの第2部分の前記クライアントへのダウンロード時間が特定時間間隔を超えるとき、前記第1レイヤの特徴の前記第1セットを前記ディスプレイに表示している間に、前記ディスプレイの追加の画像レイヤの前記セットをレンダリングすることを含む、請求項1から7のいずれか1項に記載の方法。
【請求項9】
コンピューティングデバイスの処理回路に請求項1から
8のいずれか1項に記載の方法を実行させるプログラム。
【請求項10】
メモリと、
前記メモリに結合された制御回路とを備え、
前記制御回路は、請求項1から
8のいずれか1項に記載の方法を実施する、電子機器。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の参照
本出願は、2020年7月29日付けで出願された「オーバースムージングプログレッシブ画像」という名称の米国仮特許出願第62/706,055号に対する優先権を主張し、その開示は、参照によりその全体が本明細書に組み込まれる。
【0002】
本説明は、プログレッシブ画像がクライアントコンピュータによって受信されるときにプログレッシブ符号化画像(例えば、プログレッシブJPEG)を表示することに関する。
【背景技術】
【0003】
背景
非プログレッシブJPEGでは、画像データは、結果として生じる画像がディスプレイ上で上から下に行ごとにレンダリングされるように編成される。プログレッシブJPEGでは、その画像データは、結果として生じる画像が複数の走査でレンダリングされるように編成され、各走査は、画像に関するますます多くの情報を提供する。
【発明の概要】
【課題を解決するための手段】
【0004】
実施形態は、オーバースムージングを使用してプログレッシブ符号化画像を表示するための方式を提供する。従来、プログレッシブ符号化画像はスムージングされずに表示される。それにもかかわらず、ディスプレイ上にオーバースムージングされた画像をレンダリングし、次いで、オーバースムージングされた画像上に後続の画像レイヤをレンダリングすることは、例えば、白色背景上の最終画像の表示よりも、ユーザがあまり混乱しない場合がある。オーバースムージングされた画像は、スムージングカーネル、例えば、畳み込みカーネル(ガウシアン)に従ってスムージングされ得る。オーバースムージングされた画像は、他の画像レイヤが表示される第1レイヤである。オーバースムージングされた画像は、様々な画像特徴(例えば、人、物体)の認識可能なバージョンを含む、画像の認識可能なバージョンをユーザに提示し得ることに留意されたい。他のレイヤがディスプレイ上にレンダリングされるとき、これらの画像特徴は、ユーザに可視のままである。すなわち、画像特徴は、最終的な画像レイヤのレンダリングで消え得るアーチファクトではない。これは、従来のプログレッシブ符号化画像で生じ得、ユーザ体験を妨害する。
【0005】
1の一般的な態様では、方法は、画像を表す画像データにアクセスするための要求を、クライアントから送信することを含み得る。また、方法は、特徴の第1セットを含む第1画像レイヤを表す画像データの第1部分を、要求を送信した後に受信することを含み得る。方法は、クライアントに関連するディスプレイに、画像のオーバースムージングされたバージョンを第1レイヤとしてレンダリングすることを含むことができ、画像のオーバースムージングされたバージョンは、複数の色を含む。方法は、追加の画像レイヤのセットを表す画像データの第2部分を、クライアントに画像データの第1部分を受信した後に、受信することを含み得る。方法は、第1レイヤの特徴の第1セットをディスプレイに表示している間に、ディスプレイの追加の画像レイヤのセットをレンダリングすることを含み得る。
【0006】
別の一般的な態様では、コンピュータプログラム製品は、非一時的記憶媒体を備え、コンピュータプログラム製品は、コンピューティングデバイスの処理回路によって実行されると、処理回路に方法を実行させるコードを含む。また、方法は、画像を表す画像データにアクセスするための要求を、クライアントから送信することを含み得る。方法は、特徴の第1セットを含む第1画像レイヤを表す画像データの第1部分を、要求を送信した後に受信することを含み得る。方法は、クライアントに関連するディスプレイに、画像のオーバースムージングされたバージョンを第1レイヤとしてレンダリングすることを含むことができ、画像のオーバースムージングされたバージョンは、複数の色を含む。方法は、追加の画像レイヤのセットを表す画像データの第2部分を、クライアントに画像データの第1部分を受信した後に、受信することを含み得る。方法は、第1レイヤの特徴の第1セットをディスプレイに表示している間に、ディスプレイの追加の画像レイヤのセットをレンダリングすることを含み得る。
【0007】
別の一般的な態様では、リクローリング(recrawling)ポリシーを生成するように構成された電子装置は、メモリと、メモリに結合された制御回路とを備える。また、制御回路は、画像を表す画像データにアクセスするための要求を、クライアントから送信するように構成され得る。制御回路は、特徴の第1セットを含む第1画像レイヤを表す画像データの第1部分を、要求を送信した後に受信するように構成され得る。制御回路は、クライアントに関連するディスプレイに、画像のオーバースムージングされたバージョンを第1レイヤとしてレンダリングするように構成され、画像のオーバースムージングされたバージョンは、複数の色を含む。制御回路は、追加の画像レイヤのセットを表す画像データの第2部分を、クライアントに画像データの第1部分を受信した後に、受信するように構成され得る。制御回路は、第1レイヤの特徴の第1セットをディスプレイに表示している間に、ディスプレイの追加の画像レイヤのセットをレンダリングするように構成され得る。
【0008】
1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。他の特徴は、説明及び図面、並びに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0009】
【
図1】本明細書で説明する改善された技法が実装され得る例示的な電子環境を示す図である。
【
図2】本開示の実装に従って、拡張現実システムを動作させる例示的方法を図示するフローチャートである。
【
図3】説明される技法を実装するために使用され得るコンピュータデバイスおよびモバイルコンピュータデバイスの一例を示す図である。
【発明を実施するための形態】
【0010】
詳細な説明
(例えばJPEGフォーマットにおける)プログレッシブ符号化画像は、インターレースGIFグラフィックス交換フォーマットと等価であると見なすことができる。例えば、プログレッシブ符号化JPEGは、画像全体が完全に到着するまでラインの連続波でフェードインする圧縮アルゴリズムのJPEGスイートを使用して作成される画像であってもよい。
【0011】
プログレッシブ符号化JPEGに関する技術的問題は、以前のバージョンが将来のレイヤにおいて補正されるアーチファクトを含むとき、いくつかの画像特徴がプレビューにのみ存在することである。これは、従来のプログレッシブ符号化JPEGでは、いくつかの新しい詳細が現れる一方で、場合によっては視聴者の目を捉えた他の特徴が消えることを意味する。特に、ブロック構造は、単純な進行において消失する特徴である。そのような消滅するアーチファクトは、消滅する特徴がユーザの期待に適合しないので、ユーザ経験に干渉し得る。
【0012】
さらに、JPEG画像フォーマットでは、プログレッシブ画像は、約10%小さく、そうでなければより高速にロードされる傾向があり、その理由は、プログレッションが、異なる離散コサイン変換(DCT)係数のために異なるエントロピー符号化が使用されることを可能にするからである。しかしながら、いくつかのプログレッシブ符号化JPEG画像は、増加した処理装置およびメモリ帯域幅を使用する。
【0013】
本明細書で説明する実施形態によれば、上述の技術的問題に対する技術的解決策は、画像データが受信されているときに画像のオーバースムージングされたバージョンを表示することを含む。例えば、ディスプレイ上にオーバースムージングされた画像をレンダリングし、次いで、オーバースムージングされた画像上に後続の画像レイヤをレンダリングすることは、例えば、白色背景上の最終画像の表示よりも、ユーザがあまり混乱しない場合がある。オーバースムージングされた画像は、スムージングカーネル、例えば、畳み込みカーネル(ガウスカーネルなど)に従ってスムージングされ得る。オーバースムージングされた画像は、他の画像レイヤが表示される第1レイヤである。オーバースムージングされた画像は、様々な画像特徴(例えば、人、物体)の認識可能なバージョンを含む、画像の認識可能なバージョンをユーザに提示し得ることに留意されたい。他のレイヤがディスプレイ上にレンダリングされるとき、これらの画像特徴は、ユーザに可視のままである。すなわち、画像特徴は、最終的な画像レイヤのレンダリングで消え得るアーチファクトではない。これは、従来のプログレッシブ符号化画像で生じ得、ユーザ体験を妨害する。
【0014】
開示される実施形態の技術的利点は、上述のプログレッシブ符号化画像が非常に迅速にロードされ、それがあまり混乱しないロードプロセスの基礎を形成することである。また、上述したプログレッシブ符号化画像は、従来のプログレッシブ符号化画像よりも高速にロードされる場合がある。
【0015】
いくつかの実施形態では、ブラウザを実行するクライアントは、画像のプログレッシブ位相に適用されるスムージングの量を指定するパラメータを有する制御パラメータを有する。このパラメータの値は、大部分のウェブサイトがオーバースムージングされたレンダリングを提供することを可能にするために高いスムージングレベルにデフォルト設定されてよく、通常の進行を使用してより速いウェブサイトを実装することができる。
【0016】
画像がオーバースムージングのために構成されたプログレッションを有するとき、例えば、DCグループが第1のフェーズにおいて送信されるとき、受信クライアントは、その画像のために残された残りのメモリに対するユーザの観察された帯域幅を計算する。残りのダウンロード時間が特定時間間隔(例えば、1秒)を超える場合、クライアントは、画像の残りがロードされている間にDC画像のオーバースムージングされたバージョンをレンダリングする。
【0017】
クライアントコンピュータは、AC部分がロードされている間、オーバースムージングされたバージョンを表示する。私たちがオーバースムージングされた画像を示した後に最終画像をロードすることは、白色背景上に最終画像を表示するよりも混乱しにくく、オーバースムージングされた画像をより迅速にロードすることができる。
【0018】
クライアントコンピュータは、第1のプレビューを描画するのに充分なデータを有するとき、ブラウザコンテンツ符号化レイヤの異なるレイヤを通して信号を送る。そのようにして、クライアントコンピュータは、データの特定のパーセンテージがロードされたときに第1の分析が行われるであろう使用時よりも早く第1の画像をレンダリングすることができる。
【0019】
ロード中、クライアントコンピュータは、通常のシーケンシャルJPEGがバックグラウンド上に描かれるように上から下への順序でオーバースムージングされたバージョンを置き換えることができ、またはACをオーバースムージングされたバージョンにフェードすることができる。これは、クライアントコンピュータが高いグラフィックス能力を有するが、画像ダウンロードサイズと比較して帯域幅が比較的低い場合に有利である。最終画像におけるフェードは、(比較的迅速に)フラッシュ/フリッカを生じさせず、すなわち、オーバースムージングから最終画像に直接移行するよりも観察者の気を散らすことがさらに少ない。
【0020】
最大のスムージングパラメータ値は、使用される背景色に等しい。大きなスムージングは、例えば、200バイトのプレビュー画像をもたらす。しかしながら、スムージングがはるかに少ない代替の解決策が依然として可能であり、より詳細かつより応答性の感覚を与えることが可能である。しばしば、高品質の画像では、画像の約6%が、この第1の画像を示すことができるために必要とされる。典型的な画像が約50kBであるとすると、DCは実際には3000バイトに平均化され、大きなスムージングパラメータ値で達成される200バイトの手法よりもはるかに細かい解像度を与える。さらに、この余分なデータは、全く送信される必要はなく、追加のジャバスクリプトおよび/またはサーバサイドインフラストラクチャは、データを維持するために必要とされない。既存のデータを使用することに加えて、JPEGの総送信サイズの節約が、この特徴を追加しながら達成され得る。さらに、このモードは、JPEG XL規格のプログレッションモードにも対応している。
【0021】
上記の技術的解決策の実施形態では、DC画像は、8×8ブロック当たり1ピクセルに維持され得る。これは、メモリ帯域幅要件をほぼ倍にするプログレッションに伴う共通の問題を解決する。さらに、これは、GPUが最終的なオーバースムージングのために使用される場合、より少ないデータがCPUとGPUとの間で転送されることを可能にする。
【0022】
図1は、上述の技術的解決策が実装され得る例示的な電子環境100を示す図である。電子環境100は、画像圧縮及び解凍を実行するように構成されたクライアントコンピュータ120を含む。
【0023】
コンピュータ120は、ネットワークインターフェース122、1つ以上の処理ユニット124、メモリ126、およびディスプレイインターフェース128を含む。ネットワークインターフェース122は、例えば、ネットワーク150から受信した電子および/または光信号をコンピュータ120による使用のための電子形式に変換するためのイーサネットアダプタ、トークンリングアダプタなどを含む。処理ユニット124のセットは、1つまたは複数の処理チップおよび/またはアセンブリを含む。メモリ126は、揮発性メモリ(例えば、RAM)と、1つ以上のROM、ディスクドライブ、ソリッドステートドライブ等の不揮発性メモリとの両方を含む。処理ユニット124のセットおよびメモリ126は共に、本明細書で説明されるような様々な方法および機能を実行するように構成および配置される制御回路を形成する。
【0024】
いくつかの実施形態では、コンピュータ120の構成要素のうちの1つまたは複数は、メモリ126に記憶された命令を処理するように構成されたプロセッサ(例えば、処理ユニット124)であり得るか、またはそれを含み得る。
図1に示されるようなそのような命令の例は、画像マネージャ130、オーバースムージングマネージャ140、およびレンダリングマネージャ150を含む。また、メモリ126は、
図1に示すように、そのようなデータを使用する各マネージャについて説明した各種データを記憶する。いくつかの実施形態では、エンティティページは、製品を販売するためのオファーを含むオファーページに対応することに留意されたい。
【0025】
画像マネージャ130は、画像データ132を受信または取得するように構成される。いくつかの実施形態では、画像マネージャ130は、ネットワークインターフェース122を介して、すなわち、ディスプレイデバイス170からネットワーク(ネットワーク190など)を介して画像データ132を受信または取得するように構成される。いくつかの実施形態では、画像マネージャ130は、ローカルストレージ(例えば、ディスクドライブ、フラッシュドライブ、SSDなど)から画像データ132を受信または取得するように構成される。
【0026】
画像データ132はカラー画像を表す。画像データ132は、ピクセルのセットを含み、ピクセルのセットの各々は、画像内の座標と、数値のセットとを含み、数値のセットの各々は、カラーチャネル内の値を表す。いくつかの実施形態では、画像データ132において使用される色チャネルは、RBG、例えばRGBデータ133である。
【0027】
また、画像マネージャ130は、部分における画像データ132、すなわち、第1部分134(1)、第2部分134(2)、第Mの部分134(M)までの部分を受信するように構成される。画像データ132がオーバースムージングのために構成されるとき、例えば、DCグループが第1部分134(1)において送信されるとき、画像マネージャ130は、その画像のために残された残りのメモリに対する観察された帯域幅を計算するように構成される。いくつかの実施形態では、残りのダウンロード時間が特定時間間隔(例えば、1秒)を超える場合、クライアントコンピュータ120(例えば、レンダリングマネージャ150)は、画像の残りがロードされている間、第1部分134(1)のオーバースムージングされたバージョンをレンダリングする。
【0028】
オーバースムージングマネージャ140は、画像データ132の第1部分134(1)に対してオーバースムージング動作を実行し、オーバースムージング画像データ142を生成するように構成される。いくつかの実施形態では、オーバースムージング演算は、ぼかしカーネル(例えば、ぼかしカーネルデータ154)による第1部分134(1)の畳み込みを伴う。いくつかの実施形態では、オーバースムージング動作は、どれだけオーバースムージングが起こるべきかを示す実数値の形態をとる、オーバースムージングパラメータデータ144を使用して制御される。いくつかの実施形態では、畳み込みカーネルがガウス関数であるとき、オーバースムージングパラメータは、ガウス幅の形態をとる;この場合、値が小さいほどスムージングが小さいことを示す。
【0029】
オーバースムージングされた画像データ142は、画像の第1部分134(1)に対して実行されるオーバースムージング動作から生じるDC画像を表す。オーバースムージングされた画像データ142は、いくつかの実施形態では、全画像データ132のわずか(<10%)のみを使用して構築される。少量のデータにもかかわらず、オーバースムージングされた画像データ142は、オーバースムージングパラメータデータ144の値に応じて、多くの場合、人間の特徴、物体等の特徴を含む、ユーザに認識可能な画像の複写である。
【0030】
レンダリングマネージャ150は、例えば、部分134(1)、134(2)、... 、134(M)を表す各画像レイヤに対してレンダリング動作を実行するように構成される。レンダリングマネージャ150は、オーバースムージングされた(第1の)画像レイヤからの画像特徴を維持するような方法で画像レイヤをレンダリングするように構成される。すなわち、第1の画像レイヤは、さらなるレンダリング時に除去され得るアーチファクトを含まない。このようにして、画像レンダリングプロセスは、心理視覚的観点から改善されたユーザ経験を提供する。
図1に示されるように、レンダリングマネージャ150は、いくつかの実施形態では、クロスフェーディングマネージャ152を含む。
【0031】
クロスフェードマネージャ152は、後続の画像レイヤ(すなわち、第2部分134(2)およびそれに続く画像部分に対応する部分である)に対してクロスフェード動作を実行するように構成される。例えば、画像は、DCT係数を計算する際に行われるように、例えば8×8ピクセルのブロックに分割され得る。クロスフェードは、高周波画像部分を低周波背景または第1レイヤに統合することに適用される。いくつかの実施形態では、8×8ブロックのコーナー2×2サブブロックは、バックグラウンドにクロスフェードされる。いくつかの実施形態では、画像がタイルのアレイ、例えば256×256タイルに配置されるとき、クロスフェードマネージャ152は、単一のタイルに対してクロスフェード動作を実行し、そのタイルをぼやけた背景/レイヤに統合するように構成される。しかしながら、クロスフェードマネージャ152は、また、2つのタイルに対して連続してクロスフェード動作を実行しないように構成される。
【0032】
クロスフェーディングマネージャ152は、いくつかの実施形態では、ぼかされた画像と最終画像との間の線形補間を実行するように構成される。線形補間のための重み付け係数は、時間的および空間的位置に依存し得る。例えば、より細かい解像度のタイルが表示の準備ができているとき、タイルの境界は、鮮明な境界が画像内に現れないように、タイルのぼやけたバージョンとより細かい解像度のバージョンとの間でクロスフェードされたままであり得る。クロスフェードマネージャ152は、より細かい解像度の画像の重みを、それが急速なフラッシュとしてではなく漸進的な効果として現れるように、時間において徐々に増加させることができる。
【0033】
いくつかの実施形態では、例えば、8×8ブロックのコーナー(例えば、2×2コーナー)は、メディアンフィルタなどの次数依存フィルタを使用してフィルタ処理され得る。ブロックのコーナーの別の可能性は、値が平均値からどれだけ離れているかを計算し、最も遠いピクセルに最小の重みを付けることであり、例えば、ピクセルを平均値に対するそれらの逆距離によって重み付けするか、または反転の前に小さいイプシロンをその距離に加える。
【0034】
クロスフェードは、任意の選択されたスムージングアルゴリズムで機能することができる。クロスフェード演算は、いくつかの実施形態では、ぼかしカーネル154を使用する畳み込み演算である。ここで、ぼかしカーネル154は、ガウシアンであってもよいが、その幅は、オーバースムージング演算に使用されるものよりも小さくてもよい。
【0035】
クロスフェーディングは、上述のように、画像の鮮明な表現と滑らかな表現との間の空間的および時間的に可変の線形補間であり得る。いくつかの実施形態では、クロスフェードがアニメーション化されるとき、アニメーションのキーフレーム間で異なる畳み込み、すなわち、シャープニングの次のレイヤに移動する前のよりシャープな補間が実行され得る。
【0036】
いくつかの実施形態では、スムージングは周波数空間において実行される。すなわち、DCT係数に対してスムージングが行われる。他の実施形態では、スムージングはピクセルにわたって行われる。
【0037】
いくつかの実施形態では、スムージングはGPUを使用して実行され、アニメーションはGPUを使用して実行される。他の実施形態では、スムージングはCPUによって行われる。DCT空間によってスムージングが行われるとき、いくつかの実施形態では、新しい係数がロードされるとき、より平滑な係数を維持し、送信されたそれらの係数のみを置き換える。いくつかの実施形態では、すべてのスムージングされた係数はゼロに設定される。いくつかの実施形態では、未転送係数のためのDCT値のより良好なセットを取得するために、別のスムージング演算が実行される。
【0038】
ユーザデバイス120の構成要素(例えば、モジュール、処理ユニット124)は、1つまたは複数のタイプのハードウェア、ソフトウェア、ファームウェア、オペレーティングシステム、ランタイムライブラリなどを含み得る1つまたは複数のプラットフォーム(例えば、1つ以上の類似または異なるプラットフォーム)に基づいて動作するように構成され得る。いくつかの実施形態では、コンピュータ120の構成要素は、デバイスのクラスタ(例えば、サーバファーム)内で動作するように構成され得る。そのような実施形態では、コンピュータ120の構成要素の機能および処理は、デバイスのクラスタのいくつかのデバイスに分散され得る。
【0039】
コンピュータ120の構成要素は、属性を処理するように構成された任意のタイプのハードウェアおよび/またはソフトウェアであり得るか、またはそれらを含み得る。いくつかの実施形態では、
図1のコンピュータ120の構成要素に示される構成要素の1つまたは複数の部分は、ハードウェアベースのモジュール(例えば、DSP(digital signal processor)、FPGA(field programmable gate array)、メモリ)、ファームウェアモジュール、および/またはソフトウェアベースのモジュール(例えば、コンピュータコードのモジュール、コンピュータで実行することができるコンピュータ可読命令のセット)であり得るか、またはそれらを含み得る。例えば、いくつかの実施形態では、コンピュータ120の構成要素の1つまたは複数の部分は、少なくとも1つのプロセッサ(図示せず)による実行のために構成されたソフトウェアモジュールであり得るか、またはそれを含み得る。いくつかの実施形態では、構成要素の機能は、2つの構成要素として示される機能を単一の構成要素に組み合わせることを含む、
図1に示すものとは異なるモジュールおよび/または異なる構成要素に含まれ得る。
【0040】
図示されていないが、いくつかの実施形態では、コンピュータ120(またはその部分)の構成要素は、例えば、データセンタ(例えば、クラウドコンピューティング環境)、コンピュータシステム、1つまたは複数のサーバ/ホストデバイスなど内で動作するように構成され得る。いくつかの実施形態では、コンピュータ120(またはその部分)の構成要素は、ネットワーク内で動作するように構成され得る。したがって、コンピュータ120(またはその部分)の構成要素は、1つ以上のデバイスおよび/または1つ以上のサーバデバイスを含むことができる、種々のタイプのネットワーク環境内で機能するように構成することができる。例えば、ネットワークは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)などであり得るか、またはそれらを含み得る。ネットワークは、ワイヤレスネットワークおよび/または、例えば、ゲートウェイデバイス、ブリッジ、スイッチなどを使用して実装されるワイヤレスネットワークであり得るか、またはそれを含み得る。ネットワークは、1つまたは複数のセグメントを含むことができ、および/またはインターネットプロトコル(IP)および/またはプロプライエタリプロトコルなどの様々なプロトコルに基づく部分を有することができる。ネットワークは、インターネットの少なくとも一部を含むことができる。
【0041】
いくつかの実施形態では、コンピュータ120の構成要素のうちの1つまたは複数は、メモリに記憶された命令を処理するように構成されたプロセッサであり得るか、またはそれを含み得る。例えば、画像マネージャ130(および/またはその部分)、オーバースムージングマネージャ140(および/またはその部分)、およびレンダリングマネージャ150(および/またはその部分)は、1つまたは複数の機能を実装するためのプロセスに関連する命令を実行するように構成されたプロセッサとメモリとの組合せであり得る。
【0042】
いくつかの実施形態では、メモリ126は、ランダムアクセスメモリ、ディスクドライブメモリ、フラッシュメモリなどの任意のタイプのメモリであり得る。いくつかの実施形態では、メモリ126は、VRサーバコンピュータ120の構成要素に関連する複数のメモリ構成要素(例えば、複数のRAMコンポーネントまたはディスクドライブメモリ)として実装され得る。いくつかの実施形態では、メモリ126はデータベースメモリであり得る。いくつかの実施形態では、メモリ126は、非ローカルメモリであり得るか、または非ローカルメモリを含み得る。例えば、メモリ126は、複数のデバイス(図示せず)によって共有されるメモリであり得るか、またはそれを含み得る。いくつかの実施形態では、メモリ126は、ネットワーク内のサーバデバイス(図示せず)に関連付けられ、コンピュータ120の構成要素にサービスを提供するように構成され得る。
図1に示すように、メモリ126は、画像データ132、オーバースムージング画像データ142、およびぼかしカーネルデータ154を含む様々なデータを記憶するように構成される。
【0043】
図2は、上述の改善された技法による例示的な方法200を示すフローチャートである。方法200は、
図1に関連して説明されるソフトウェア構成によって実行され、ソフトウェア構成は、コンピュータ120のメモリ126内に常駐し、処理ユニット124のセットによって実行される。
【0044】
202において、画像マネージャ130は、画像を表す画像データにアクセスする要求を送信する。
【0045】
204において、画像マネージャ130は、要求を送信した後、画像データの第1部分を受信し、画像データの第1部分は第1の画像レイヤを表し、第1レイヤは特徴の第1セットを含む。
【0046】
206において、オーバースムージングマネージャ140およびレンダリングマネージャ150は、第1レイヤとして、クライアントに関連付けられたディスプレイ上に画像のオーバースムージングされたバージョンをレンダリングし、画像のオーバースムージングされたバージョンは複数の色を含む。
【0047】
208において、画像マネージャ130は、クライアントに画像データの第1部分を受信した後、画像データの第2部分を受信し、画像データの第2部分は、追加の画像レイヤのセットを表す。
【0048】
210において、レンダリングマネージャ150は、第1レイヤの特徴の第1セットをディスプレイ上に表示しながら、追加の画像レイヤのセットをディスプレイ上にレンダリングする。
【0049】
図3は、本明細書で説明される技法とともに使用され得る、汎用コンピュータデバイス300および汎用モバイルコンピュータデバイス350の例を示す。コンピュータ装置300は、
図1のコンピュータ120の一構成例である。
【0050】
図3に示すように、コンピューティングデバイス300は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなど、様々な形態のデジタルコンピュータを表すことが意図されている。コンピューティングデバイス350は、携帯情報端末、セルラー電話、スマートフォン、および他の同様のコンピューティングデバイスなど、様々な形態のモバイルデバイスを表すものとする。本明細書に示される構成要素、それらの接続および関係、ならびにそれらの機能は、例示的なものにすぎず、本明細書で説明および/または特許請求される本発明の実施形態を限定するものではない。
【0051】
コンピューティングデバイス300は、プロセッサ302と、メモリ304と、記憶デバイス306と、メモリ304および高速拡張ポート310に接続する高速インターフェース308と、低速バス314および記憶デバイス306に接続する低速インターフェース312とを含む。構成要素302,304,306,308,310,および312の各々は、様々なバスを使用して相互接続され、共通のマザーボード上に、または必要に応じて他の方法で実装され得る。プロセッサ302は、高速インターフェース308に結合されたディスプレイ316などの外部入力/出力デバイス上にGUIのためのグラフィカル情報を表示するために、メモリ304または記憶デバイス306に記憶された命令を含む、コンピューティングデバイス300内で実行するための命令を処理することができる。他の実施形態では、複数のプロセッサおよび/または複数のバスが、必要に応じて、複数のメモリおよびメモリのタイプとともに使用され得る。また、複数のコンピューティングデバイス300が接続されてもよく、各デバイスは、必要な動作(例えば、サーババンク、ブレードサーバのグループ、又はマルチプロセッサシステムとして)の部分を提供する。
【0052】
メモリ304は、コンピューティングデバイス300内に情報を記憶する。一実施形態では、メモリ304は、1つまたは複数の揮発性メモリユニットである。別の実施形態では、メモリ304は、1つまたは複数の不揮発性メモリユニットである。メモリ304はまた、磁気ディスクまたは光ディスクなどの別の形態のコンピュータ可読媒体であってもよい。
【0053】
ストレージデバイス306は、コンピューティングデバイス300のための大容量ストレージを提供することができる。一実施形態では、ストレージデバイス306は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイスなどのコンピュータ可読媒体、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他の構成中のデバイスを含むデバイスのアレイであるか、またはそれらを含み得る。コンピュータプログラム製品は、情報キャリアにおいて有形に具現化することができる。コンピュータプログラム製品はまた、実行されると、上記で説明したものなどの1つまたは複数の方法を実行する命令を含み得る。情報キャリアは、メモリ304、記憶装置306、またはプロセッサ302上のメモリなどのコンピュータ可読媒体または機械可読媒体である。
【0054】
高速コントローラ308は、コンピューティングデバイス300のための帯域幅集約型動作を管理し、低速コントローラ312は、より低い帯域幅集約型動作を管理する。このような機能の割り当ては例示に過ぎない。一実施形態では、高速コントローラ308は、メモリ304、ディスプレイ316(例えば、グラフィックスプロセッサまたはアクセラレータを介する)、および様々な拡張カード(図示せず)を受け入れることができる高速拡張ポート310に結合される。この実施形態では、低速コントローラ312は、ストレージデバイス306および低速拡張ポート914に結合される。様々な通信ポート(例えば、USB、Bluetooth(登録商標)、イーサネット(登録商標)、無線イーサネット(登録商標))を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータなどのネットワーキングデバイスなどの1つまたは複数の入力/出力デバイスに、例えばネットワークアダプタを介して結合され得る。
【0055】
コンピューティングデバイス300は、図に示されるように、いくつかの異なる形態で実装され得る。例えば、標準サーバ320として、またはそのようなサーバのグループにおいて複数回実装されてもよい。また、ラックサーバシステム324の一部として実装されてもよい。加えて、それは、ラップトップコンピュータ322などのパーソナルコンピュータにおいて実装され得る。代替的に、コンピューティングデバイス300からの構成要素は、デバイス350などのモバイルデバイス(図示せず)内の他の構成要素と組み合わされ得る。そのようなデバイスの各々は、コンピューティングデバイス300、350のうちの1つまたは複数を含み得、システム全体は、互いに通信する複数のコンピューティングデバイス300、350から構成され得る。
【0056】
本明細書で説明されるシステムおよび技法の種々の実装は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせで実現することができる。これらの様々な実施形態は、記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスにデータおよび命令を送信するように結合された、専用または汎用であり得る少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能である1つまたは複数のコンピュータプログラムにおける実施形態を含むことができる。
【0057】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)は、プログラマブルプロセッサのための機械命令を含み、高水準手続き型および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ/機械言語で実装され得る。本明細書で使用されるように、「機械可読媒体」、「コンピュータ可読媒体」という用語は、機械可読信号として機械命令を受信する機械可読媒体を含む、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置、および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブル論理デバイス(PLD))を指す。「機械可読信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0058】
ユーザとの対話を提供するために、本明細書で説明されるシステムおよび技法は、情報をユーザに表示するためのディスプレイデバイス(例えば、CRT(cathode Ray tube)やLCD(liquid crystal Display)モニタである)と、ユーザが入力をコンピュータに提供することができるキーボードおよびポインティングデバイス(例えば、マウスまたはトラックボール)とを有するコンピュータ上で実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもできる;例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であり得る;また、ユーザからの入力は、音響、音声、または触覚入力を含む、任意の形態で受信することができる。
【0059】
本明細書で説明されるシステムおよび技法は、バックエンド構成要素(例えば、データサーバとして)を含む、またはミドルウェア構成要素(例えば、アプリケーションサーバ)を含む、またはフロントエンド構成要素(例えば、グラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータであって、それを通してユーザが本明細書で説明されるシステムおよび技法の実装と対話することができる、クライアントコンピュータ)を含む、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組み合わせを含む、コンピューティングシステムにおいて実装されることができる。システムの構成要素は、デジタルデータ通信(例えば、通信ネットワーク)の任意の形態または媒体によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットを含む。
【0060】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、概して、相互から遠隔にあり、典型的には、通信ネットワークを通して相互作用する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【0061】
いくつかの実施形態について説明した。それにもかかわらず、本明細書の精神および範囲から逸脱することなく、種々の修正が行われ得ることが理解されるであろう。
【0062】
また、要素が別の要素上にある、別の要素に接続される、別の要素に電気的に接続される、別の要素に結合される、または別の要素に電気的に結合されるものとして言及されるとき、要素は直接に、別の要素上にあり、別の要素に接続または結合されてもよく、または1つ以上の介在要素が存在し得ることも理解されるであろう。対照的に、要素が別の要素上に直接存在する、直接接続される、または直接結合されると言及されるとき、介在要素は存在しない。直接上にある、直接接続される、または直接結合されるという用語は、詳細な説明全体を通して使用されない場合があるが、直接上にある、直接接続される、または直接結合されるものとして示される要素は、そのようなものとして呼ばれ得る。本出願の特許請求の範囲は、本明細書に記載されるかまたは図面に示される例示的な関係を列挙するように修正され得る。
【0063】
説明した実施形態のいくつかの特徴を本明細書で説明するように示したが、当業者には、多くの修正形態、置換形態、変更形態、および均等物が思い浮かぶであろう。したがって、添付の特許請求の範囲は、実施形態の範囲内に入るすべてのそのような修正形態および変更形態を包含することが意図されていることを理解されたい。これらは、限定ではなく例としてのみ提示されており、形態および詳細の様々な変更が行われ得ることを理解されたい。本明細書で説明される装置および/または方法の任意の部分は、相互排他的組み合わせを除いて、任意の組み合わせで組み合わせられてもよい。本明細書で説明される実施形態は、説明される異なる実施形態の機能、構成要素および/または特徴の様々な組合せおよび/または部分的組合せを含むことができる。
【0064】
加えて、図に示される論理フローは、所望の結果を達成するために、示される特定の順序または連続順序を必要としない。加えて、他のステップが提供されてもよく、またはステップが、説明されるフローから排除されてもよく、他の構成要素が、説明されるシステムに追加されてもよく、またはそこから除去されてもよい。したがって、他の実施形態は以下の特許請求の範囲内にある。