(57)【特許請求の範囲】
【請求項１】
１以上のコンピュータ装置で実行する方法であって、
特定の画像の複数のバージョンの個々のバージョンの各々が異なる画像解像度を有し、該個々のバージョンの各々に対して、個々のタイルの各々が前記特定の画像の前記個々のバージョンの有界領域で構成されたタイルの複数を、揮発性または不揮発性の記憶装置に記憶するステップと、
特定のモデルのために前記特定の画像をレンダリングする要求に応答して、
前記特定の画像の一部分が表示される場所での表示解像度に基づいて、第一の画像解像度を決定するステップ、
前記第一の画像解像度にスケーリングファクタを適用して、前記第一の画像解像度よりも高い第二の画像解像度を算出するステップ、
前記第一の画像解像度にスケーリングファクタを適用して、前記第一の画像解像度よりも高い前記第二の画像解像度を算出した後、前記第二の画像解像度を、前記特定の画像の前記複数のバージョンから利用可能であり、かつ前記第二の画像解像度よりも高い第三の画像解像度に繰り上げるステップ、および
前記第二の画像解像度を前記第三の画像解像度に繰り上げた後、前記揮発性または不揮発性の記憶装置に記憶された前記複数のタイルから、表示される前記特定の画像の前記一部分を含み、かつ前記第三の画像解像度にマッチする前記特定の画像の前記個々のバージョンの１以上の有界領域で構成された１つ以上のタイルを取り出すステップと、
前記特定のモデルに前記１つ以上のタイルを適用するステップと、
前記特定のモデルに適用された１以上のタイルから最終画像をレンダリングするステップと、
を備えたことを特徴とする方法。
【請求項２】
前記特定の画像の前記第一の画像解像度を有する第一のバージョンを受信するステップと、
前記特定の画像の前記第一のバージョンから、前記特定の画像の複数の派生バージョンを生成するステップと、
をさらに備え、
各派生画像の画像解像度が前記第一の画像解像度より低く、前記特定の画像の前記複数のバージョンが、前記特定の画像の前記派生バージョンを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記有界領域が矩形であることを特徴とする請求項１に記載の方法。
【請求項４】
前記特定の画像の座標系において、前記特定の画像のうち表示される前記一部分を全て含む可視矩形を特定するステップと、
前記可視矩形を、前記可視矩形と重なるとともに、前記特定の画像の前記第三の画像解像度を持った前記タイルを有する前記個々のバージョンに対する全てのタイルを含めるように拡張するステップをと、
をさらに備え、
前記取り出された１つ以上のタイルが、前記可視矩形と重なるタイルであることを特徴とする請求項３に記載の方法。
【請求項５】
前記複数のタイルが圧縮フォーマットで記憶され、
前記方法が前記１つ以上のタイルを展開するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項６】
前記特定の画像の前記一部分が表示される場所での表示解像度に基づいて前記第一の画像解像度を決定するステップが、前記特定の画像の前記一部分を表示することに関連する画素数を判断するステップを有し、
前記第一の画像解像度にスケーリングファクタを適用するステップが、前記画素数にスケーリングファクタを適用して、最低画像解像度を特定するステップを有し、
前記第二の画像解像度を前記第三の画像解像度に繰り上げるステップが、前記最低画像解像度を、前記特定の画像の前記複数のバージョンから利用可能な、次に高い画像解像度に繰り上げるステップを有し、
前記１つ以上のタイルが、前記次に高い画像解像度を有する前記特定の画像のバージョンから選択されることを特徴とする請求項１に記載の方法。
【請求項７】
前記スケーリングファクタが略ナイキスト限界であることを特徴とする請求項６に記載の方法。
【請求項８】
前記特定のモデルが特定の形状を有する三次元（３Ｄ）モデルであり、
前記特定のモデルに前記１つ以上のタイルを適用するステップが、
前記１つ以上のタイルに基づいて、前記特定の形状に変換された形状を生成するために３Ｄ変換の計算をするステップと、
前記１つ以上のタイルを前記変換された形状にマッピングするステップと、
を有することを特徴とする請求項１に記載の方法。
【請求項９】
前記変換された形状が、前記複数のタイルから取り出されていないタイルにマッピングされる部分を含まず、
前記最終画像をレンダリングするステップが、前記変換された形状にしたがって前記最終画像をレンダリングするステップを有することを特徴とする請求項８に記載の方法。
【請求項１０】
前記特定のモデルがカスタマイズ可能な製品の３Ｄモデルであることを特徴とする請求項８に記載の方法。
【請求項１１】
１つ以上のプロセッサにより実行されたときに、１つ以上のコンピュータ装置に動作を実行させる命令を記憶する１つ以上の非一時的コンピュータ読み取り可能な媒体において、
前記動作が、
特定の画像の複数のバージョンの個々のバージョンの各々が異なる画像解像度を有し、該個々のバージョンの各々に対して、個々のタイルの各々が前記特定の画像の前記個々のバージョンの有界領域で構成されたタイルの複数を、揮発性または不揮発性の記憶装置に記憶するステップと、
特定のモデルのために前記特定の画像をレンダリングする要求に応答して、
前記特定の画像の一部分が表示される場所での表示解像度に基づいて、第一の画像解像度を決定するステップ、
前記第一の画像解像度にスケーリングファクタを適用して、前記第一の画像解像度よりも高い第二の画像解像度を算出するステップ、
前記第一の画像解像度にスケーリングファクタを適用して、前記第一の画像解像度よりも高い前記第二の画像解像度を算出した後、前記第二の画像解像度を、前記特定の画像の前記複数のバージョンから利用可能であり、かつ前記第二の画像解像度よりも高い第三の画像解像度に繰り上げるステップ、および
前記第二の画像解像度を前記第三の画像解像度に繰り上げた後、前記揮発性または不揮発性の記憶装置に記憶された前記複数のタイルから、表示される前記特定の画像の前記一部分を含み、かつ前記第三の画像解像度にマッチする前記特定の画像の前記個々のバージョンの１以上の有界領域で構成された１つ以上のタイルを取り出すステップと、
前記特定のモデルに前記１つ以上のタイルを適用するステップと、
前記特定のモデルに適用された１以上のタイルから最終画像をレンダリングするステップと、
を備えることを特徴とする非一時的なコンピュータ読み取り可能な媒体。
【請求項１２】
前記特定の画像の、前記第一の画像解像度を有する第一のバージョンを受け取るステップと、
前記特定の画像の前記第一のバージョンから、前記特定の画像の複数の派生バージョンを生成するステップとをさらに備えた動作を、前記１つ以上のコンピュータ装置に実行させる命令をさらに記憶し、
各派生画像の画像解像度が前記第一の画像解像度より低く、前記特定の画像の前記複数のバージョンが、前記特定の画像の前記派生バージョンを含むことを特徴とする請求項１１に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項１３】
前記有界領域が矩形であることを特徴とする請求項１１に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項１４】
前記特定の画像の座標系において、前記特定の画像のうち表示される前記一部分を全て含む可視矩形を特定するステップと、
前記可視矩形を、前記可視矩形と重なるとともに、前記特定の画像の前記第三の画像解像度を持った前記タイルを有する前記個々のバージョンに対する全てのタイルを含めるように拡張するステップとをさらに備えた動作を、前記１つ以上のコンピュータ装置に実行させる命令をさらに記憶し、、
前記取り出された１つ以上のタイルが、前記可視矩形と重なるタイルであることを特徴とする請求項１３に記載の非一時的コンピュータ読み取り可能な媒体。
【請求項１５】
前記複数のタイルが圧縮フォーマットで記憶され、
前記命令が、前記１つ以上のタイルを展開させる命令をさらに備えることを特徴とする請求項１１に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項１６】
前記特定の画像の前記一部分が表示される場所での表示解像度に基づいて前記第一の画像解像度を決定するステップが、前記特定の画像の前記一部分を表示することに関連する画素数を判断するステップを有し、
前記第一の画像解像度にスケーリングファクタを適用するステップが、前記画素数にスケーリングファクタを適用して、最低画像解像度を特定するステップを有し、
前記第二の画像解像度を前記第三の画像解像度に繰り上げるステップが、前記最低画像解像度を、前記特定の画像の前記複数のバージョンから利用可能な、次に高い画像解像度に繰り上げるステップを有し、
前記１つ以上のタイルが、前記次に高い画像解像度を有する前記特定の画像のバージョンから選択されることを特徴とする請求項１１に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項１７】
前記スケーリングファクタが略ナイキスト限界であることを特徴とする請求項１６に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項１８】
前記特定のモデルが特定の形状を有する三次元（３Ｄ）モデルであり、
前記１つ以上のタイルを前記特定のモデルに適用するステップが、
前記１つ以上のタイルに基づいて、前記特定の形状に変換された形状を生成するために３Ｄ変換の計算をし、
前記１つ以上のタイルを前記変換された形状にマッピングするステップを含むことを特徴とする請求項１１に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項１９】
前記変換された形状が、前記複数のタイルから取り出されていないタイルにマッピングされる部分を含まず、
前記最終画像をレンダリングするステップが、前記変換された形状にしたがって前記最終画像をレンダリングするステップを有することを特徴とする請求項１８に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項２０】
前記特定のモデルが、カスタマイズ可能な製品の３Ｄモデルであることを特徴とする請求項１８に記載の非一時的なコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル画像検索のためのタイリング工程に関する。
【背景技術】
【０００２】
本明細書中の特定の部分に記載され、「背景」または「先行技術による手法」と明記された特定の手法は、追求でき得る手法ではあるが、必ずしも以前に考案または追求された手法とは限らない。そのため、別段の記載がない限り、「背景」または「先行技術による手法」と明記されるという理由だけで、そのように記載された手法が実際に先行技術と認められるとみなすべきではない。
【０００３】
オーダーメイドの額入り製品のプレビュー画像の特定、注文、表示に対応できるコンピュータベースシステムにおいては、製造されるべき製品の角を示す、シミュレーションによるクローズアップシーンを表示して、額のマイタコーナ、１つ以上のマットの詳細、およびその１つ以上のマットを使ってその額内に入れられる画像の詳細を示すことが有益であり得る。実際に、ユーザが製造前の額入りの印刷物やその他の視覚的加工物を注文できる方式では、ユーザに対して製品の１つ以上の角の表示を提供し、ユーザが額、マット、画像の詳細を確認できるようにすることが慣例的に行われている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特定のシステムでは、ユーザが１つ以上のデジタル画像をアップロードして、それらの画像を位置の配列し直すことも、複数のソース画像が複合された合成画像を、例えばオーバーラッピング方式を用いて作成したりすることも可能となり得る。ユーザとは、エンドユーザである消費者や、ストックフォト業者、アーティスト、アーティストの代理人、およびその他といったデジタルアセットの制作者を含んでいてもよい。デジタル画像は、どのようなサイズでも、どのような内容でもよい。このようなシステムでは、画像の角を正確に表すシーンを表示することが困難となる。こうした角のシーンを表示するには、イメージアセットにリアルタイムでアクセスし、特定の角と等しいデータセットを正確なサイズまたは縮尺で取得し、オーバーラッピング、クロッピング、変換、またはその他の効果を加えながらそのデータをレンダリングして、画像の角を示すことが必要である。
【図面の簡単な説明】
【０００５】
【図１】本発明による技術を用いた、ユーザコンピュータ画像ディスプレイの一部に関するオーダーメイドの額入り製品の図を示す。
【図２】本明細書に記載された工程を実行するために使用できるコンピュータシステムを示す。
【図３】ある実施形態による事前計算工程を示す。
【図４】ある実施形態によるレンダリング工程を示す。
【図５】本明細書の技法が実装され得るコンピュータシステムを表すブロック図である。
【発明を実施するための形態】
【０００６】
以降の説明には、本発明に対する理解を徹底するために、説明目的で数々の具体的な詳細が記載されている。ただし本発明は、これら具体的な詳細がなくても実施され得ることが明らかであろう。他の事例では、本発明を無用にわかりにくくすることを避けるために、公知の構造および装置がブロック図形式で明示されている。
【０００７】
本明細書では、以下の大要に沿って実施形態を説明する。
１．０  概要
２．０  構造的および機能的概要
３．０  タイルの事前計算
４．０  レンダリング工程
５．０  実現機構−ハードウェアの概観
６．０  拡張および代替的応用
【０００８】
１．０ 概要
デジタル画像の検索とレンダリングを最適化する技術が記載される。ある実施形態において、特定の画像の複数のバージョンのために複数のタイルが記憶される。複数のバージョンの個々の画像は各々、解像度が異なる。複数のタイルの個々のタイルは、特定の画像の個々のバージョンの有界領域を含む。特定の画像のある部分が可視化されると表示解像度に基づいて、その特定の画像に関する最終的画像解像度が決定される。その特定の画像の、最終解像度を有する個々のバージョンのための１つ以上のタイルが取り出される。この１つ以上のタイルは、表示されることになるその特定の画像のうち、表示されることになる一部分を含む。１つ以上のタイルがあるモデルに当てはめられ、これがその後レンダリングされる。
【０００９】
ある実施形態において、その特定の画像の、第一の解像度を有する第一のバージョンが受け取られる。この第一のバージョンから、その特定の画像の複数の派生バージョンが生成される。各派生画像の解像度は第一の解像度より低い。画像の複数のバージョンは、その特定の画像の派生バージョンを含む。
【００１０】
有界領域の形状は実装ごとに異なっていてもよい。ある実施形態において、有界領域は矩形である。それに加えて、またはその代わりに、タイルはその他の形状または複合的な領域を使って実現されてもよい。
【００１１】
ある実施形態において、可視矩形（ｖｉｓｉｂｌｅ  ｒｅｃｔａｎｇｌｅ）がその特定の画像の座標空間内で特定される。可視矩形とは、画像のうちの、可視となる部分を完全に包含する矩形である。可視矩形は、いったん特定されると、その可視矩形と重なる、最終画像解像度を有するその特定の画像の個々のバージョンのためのすべてのタイルを包含するように拡張される。取り出される１つ以上のタイルは、可視矩形と重なるタイルである。
【００１２】
ある実施形態において、最終画像解像度を決定するステップは、その特定の画像の部分の表示に関連する画素数を決定するステップと、その画像数にスケーリングファクタを適用して最低解像度を特定するステップと、この最低解像度を、その特定の画像の複数のバージョンから利用可能な、その次に高い解像度に繰り上げるステップと、を含む。最終解像度は、その特定の画像の複数のバージョンから利用可能な、その次に高い解像度である。使用されるスケーリングファクタは実装ごとに異なっていてもよい。ある実施形態において、スケーリングファクタはナイキスト限界と略同じである。
【００１３】
ある実施形態において、モデルは、ある特定の形状の三次元（３Ｄ）である。３Ｄモデルの形状は実装ごとに異なっていてもよい。ある実施形態において、３Ｄモデルはカスタム製品のものである。他の実施形態において、１つ以上のタイルをモデルに当てはめるステップは、その１つ以上のタイルに基づいて、その特定の形状に関する３Ｄ変換を計算し、変換された形状を生成するステップと、その１つ以上のタイルを変換された形状にマッピングするステップと、を含む。
【００１４】
ある実施形態において、変換された形状は、その特定の形状のうち、その特定の画像の最終画像解像度を有する個々のバージョンのために取り出されていないタイルがマッピングされた部分を含まない。モデルをレンダリングするステップは、変換された形状にしたがってモデルをレンダリングするステップを含む。
【００１５】
２．０  構造的および機能的概要
ある実施形態において、ユーザはある原画像をアップロードし、これは一般に高解像度画像であり、サイズは３０００画素×３０００画素程度である。最初のアップロードに応答して、システムは、例えば１０００×１０００画素等の、より小さいマスタ派生画像を、プレビュー、サムネイルの生成、またはその他の補助的機能に使用するために生成し、記憶してもよい。しかしながら、額の角、マット、画像を示す場合、マスタ派生画像を使用すると角の表現がぼやけるのが一般的であり、これは角が選択され、拡大されるときに発生する損失による。さらに、柔軟性のない（ｒｉｇｉｄ）画像処理方式を適用することは、ソース画像がユーザから取得されたものであり、そのサイズ、解像度、およびその他の属性が均一でないか、または予想不能であるため、問題である。このシステムは基本的に、ある画像の任意の領域を見つけ、仮想の額とマットの表示の中で角セグメントをレンダリングすることを可能にすると予想される。
【００１６】
ある実施形態において、コンピュータシステムは高解像度の原画像を受け取り、この原画像を大容量画像データストア内に記憶する。ある実施形態において、画像データストアは、百万枚単位の画像を記憶できる。ある実施形態において、データストアからの画像は、ユーザコンピュータのディスプレイ上にモデルのレンダリング画像をレンダリングするための、三次元（３Ｄ）モデルの中のテクスチャとして使用される。あるモデルの特定のレンダリング画像は、データストアから任意で選択された１つ以上の画像を使用してもよい。
【００１７】
ある実施形態において、システムは、各画像のための最適画像解像度を使ってモデルをレンダリングする。この文脈において、最適化とは２つの主要な意味を有する。第一に、システムが、そのモデルをスクリーン上でレンダリングするときに最大限の画像忠実度を使用しようとすることである。第二に、システムが、そのモデルを特定のプロセッサ、サーバコンピュータ、またはクライアントコンピュータでレンダリングするときに最小限の時間を使用しようとすることである。
【００１８】
このようなトレードオフへの対処においては、レンダリング時間が無視できるのであれば、システムは常に原画像の最も高い解像度を使用でき、それは原画像の高解像度が必然的に最善の画像忠実度を提供するからである。しかしながら、最も高い解像度を使用するには、原画像の、より低解像度のバージョンを使用する場合と比較して、各画像のテクスチャのレンダリングに必要な時間も最大となる。ある実施形態において、最大レンダリング時間の目標は１００ｍｓである。本発明による手法では、表示されるべき各画像のための適当な画像解像度を知的に選択することにより、原画像を使った表示と基本的に区別できないスクリーン上の表示を生成しながら、その表示の生成に使用される時間を最小限にすることが可能である。
【００１９】
最小レンダリング時間の目標には、データストアから各画像を検索する時間、画像を展開してメモリに入れる時間、および画像を含むモデルのスクリーン上のレンダリング画像を生成する時間が含まれる。一般に、画像解像度が高いほど、先行する個々のレンダリングステップの各々に使われる時間が長くなる。データストアから高解像度画像を検索するには、大量のデータを転送する必要がある。さらに、より低解像度の画像に比べて、高解像度画像は、シーンへと展開、レンダリングするために、より多くのコンピュータメモリを使用し、より多くのプロセッサ時間を必要とする。
【００２０】
多くの一般的なシーンでは、いくつかの画像は完全に見えるわけではない。画像全体を転送、展開することは、その中の小さな部分しか見えないのであれば、時間と処理資源の浪費につながる。ある実施形態において、画像の中の可視部分だけを取り出して、展開する方法が提供される。したがって、ある実施形態において、可視部分の、より高解像度のバージョンを使用することができ、画像全体の、より高解像度のバージョンを使用する場合のように時間と記憶スペースを犠牲にしない。したがって、ある実施形態において、工程は、より低解像度の画像全体を使用する場合と比較して、より高解像度の画像を部分的にのみ使用することにより、ある時間内に高い忠実度のモデルレンダリング画像を表示できる。
【００２１】
図１は、本発明による技術を使用するユーザコンピュータ画像ディスプレイの一部に関するオーダーメイドの額入り製品の図を示す。ある実施形態において、このオーダーメイドの額入り製品は、額１０２と、マット１０４と、画像１０６と、を含んでいてもよい。このオーダーメイドの額入り製品のある角のクローズアップ画像を表示するステップは、額１０２と、マット１０４と、画像１０６の合成画像を回転させ、スケーリングして、画像領域１１０で表されるユーザスクリーンディスプレイ内に切断された角が表示されるようにするステップを含んでいてもよい。クローズアップ画像を表示するステップには、部分的には、画像１０６のうち、画像領域１１０の中にある部分の１つ以上の画像タイル１０８を検索するステップが関わる。
【００２２】
図１からわかるように、画像１０６が大きなデジタルファイルであるとすると、ユーザディスプレイ画像領域１１０の中に入る角の中で見えるのが、画像のうちの、タイル１０８Ａ、１０８Ｂの中にある部分だけである場合、画像全体をストレージから検索するのは時間と処理資源の無駄につながることがわかるであろう。タイル１０８Ａ、１０８Ｂは画像１０６の矩形の小区画を含んでいるが、他の実施形態では、多角形や、矩形以外の形状で形成してもよい。ある実施形態において、額１０２とマット１０４と画像１０６の組み合わせが３Ｄモデルを構成する。わかりやすい例を説明するために、図１は２つのタイル１０８Ａ、１０８Ｂを示しているが、実際には、各画像１０６は一般に４つまたはそれ以上のタイルに分割され、いくつのタイルでも記憶できる。
【００２３】
当然のことながら、画像領域１１０の中に正しく表示するには、画像１０６を３Ｄモデル内で回転させ、変換させることが関わる。画像領域１１０の座標空間から画像１０６の第二の画像空間への点座標の逆変換を利用することによって、ユーザ画像領域内にフィットさせるためには三角形の領域１１２の中のどの画素座標が必要かを判断する。一例として、画像１０６の座標系の対向角の実数の座標が、原点で（０，０）、はす向かいの角で（１，１）であると仮定する。三角形の領域１１２の角の座標は、（１，０）、（０．７，０）、（１，０．７）となるであろう。三角形の領域１１２を完全に取り囲む第一の矩形タイル１０８Ａが検索されることになる。
【００２４】
ある実施形態において、上記の問題に対処するためのデータ処理工程は一般に、特定の画像データを事前計算するオフライン工程と、ライブまたはオンライン工程として見られるレンダリング工程を含む。
【００２５】
図２は、本明細書に記載の工程を実行するために使用できるコンピュータシステムを示す。ユーザエージェント２０２は直接または、１つ以上のネットワーク２０４を通じて間接的に１つ以上のレンダリングクライアント２０６に接続され、これは画像ストア２１０にアクセス可能なサーバコンピュータ２０８に接続されている。ユーザエージェント２０２は、パーソナルコンピュータ、タブレットコンピュータ、ワークステーション、スマートフォン、携帯機器、またはその他の演算装置でホストされるブラウザを含んでいてもよい。ネットワーク２０４は、ＬＡＮ、ＷＡＮ、パブリックインターネットワーク、またはそれらのうちのいずれかの１つ以上を組み合わせたものを含んでいてもよい。一般に、レンダリングクライアント２０６、サーバコンピュータ２０８、および画像ストア２１０は、高速通信のために１つのローカルネットワークの中に共通に配置される。
【００２６】
ある実施形態において、ユーザエージェント２０２は画像レンダリングを要求するように構成またはプログラムされ、サーバコンピュータ２０８は画像ストア２１０から画像１０６またはタイル１０８Ａ、１０８Ｂを検索して、その画像またはタイルをレンダリングクライアント２０６に転送するように構成され、これが本発明による工程のその他の態様を実装する。次に、レンダリングクライアント２０６は、完成されたレンダリング画像をユーザエージェント２０２に転送して、ユーザに向けて表示されるようにする。しかしながら、本明細書に具体的に記載されているレンダリングクライアント２０６とサーバコンピュータ２０８との間の処理責任の分担は必須ではなく、本明細書でレンダリングクライアントに関して記載された機能の１つまたは全部がサーバコンピュータで実現されてもよい。
【００２７】
いくつかの実施形態において、図１に示される画像１０６は複数の別々の画像を含んでいてもよく、これらは合成画像として関係または関連付けられ、これはその合成画像の成分画像を参照するメタデータにより説明される。例えば、複数の別々の画像を積層するか、その他の方法で複合させて、合成画像を生成してもよい。このような実施形態では、画像１０６、タイル１０８Ａ、１０８Ｂまたは、画像の中の、拡張された可視矩形または三角形の領域１１２に対応するその他の部分を検索することには、まず、その合成画像のどの部分が必要かを判断し、どのタイルがその部分に関連付けられるかを判断することが関わってもよい。ユーザが合成画像を作って使用できるようにすると、額、マット、およびユーザ画像の３Ｄモデルのレンダリングに使用される各ユーザ画像の角部分を事前計算し、記憶することができなくなる。
【００２８】
ある実施形態において、１つ以上のタイルのサイズ、アスペクト比、および／または解像度は、特定の画像の特徴に基づいて、それが１つ以上のモデルの特定の集合のためにレンダリングされるときに選択される。このようにして属性を選択することによって、タイルの転送とレンダリングが、その特定の画像が当てはめられるモデル集合のために最適化され得る。
【００２９】
３．０  タイルの事前計算
図３は、ある実施形態による、タイルの事前計算工程を説明するフローチャートである。事前計算工程は、オフライン工程として実行されてもよい。ステップ３０２で、工程は、複数の異なる解像度で、各原画像のより低解像度の複数のバージョンを生成し、その際、各解像度での画像品質を最高にするために高品質画像スケーリング工程を用いる。ある実施形態において、派生画像は、１０２４×１０２４画素、２０４８×２０４８画素、３０７２×３０７２画素、４０９６×４０９６画素、６１４４×６１４４画素、８１９２×８１９２画素、約１２２８８×１２２８８画素、１６３８４×１６３８４画素のサイズから、そのコンテンツクリエータがアップロードした原画像のサイズより小さいか、またはそれと等しい最大のサイズで生成され、記憶される。これに加えて、またはその代わりに、原画像のコンテンツクリエータまたは所有者が派生画像を生成し、アップロードしてもよい。
【００３０】
最も高解像度の原画像は、オーダーメイドの額入り製品の実際の製造または生産において使用するために保持される。ある実施形態において、ユーザまたはコンテンツクリエータが高解像度の原画像をアップロードしたことに応答して、工程は直ちに、または速やかに、画像の確認用コピーをユーザに向けて表示するために、例えば１辺１０２４画素の１つの派生画像を生成する。その後、他の派生画像がオフライン工程で作成されてもよい。
【００３１】
ステップ３０４で、工程は、より低解像度の派生画像の各々の部分からコピーすることによって複数のタイルを作成して、記憶し、各タイルは関連する派生画像の隣接する別々の画素範囲を含む。ある実施形態において、各タイルは矩形であり、その矩形の中のすべての画素を含む。これに加えて、またはその代わりに、他のタイル形状を使用してもよい。例えば、タイルは三角形または、その境界内にすべての画素を含む任意の有界形状であってもよい。
【００３２】
ある実施形態において、上記のサイズの派生画像の各々について、複数の画像タイルが作成され、記憶される。ある実施形態において、各タイルは１辺５１２画素で構成され、他の実施形態では、その他のタイルのサイズとアスペクト比が使用されてもよい。例えば、派生画像が２０４８×２０４８画素である場合、その派生画像に基づいて、１辺５１２画素のタイル１６枚がコピーされ、記憶されてもよい。他の例では、特定のモデル集合へのタイルの当てはめを最適化するために、あるタイルの幅は１０２４画素であってもよく、そのタイルの高さは５１２画素であってもよい。
【００３３】
ある実施形態において、ステップ３０４で作成され、記憶されるタイルのサイズ、アスペクト比、解像度はその特定の画像の１つ以上の特徴に基づいて、それが特定のモデル集合のためにレンダリングされるときに選択される。例えば、タイルのサイズとアスペクト比の選択には、画像の圧縮に関連付けられる処理時間と資源の使用に関する特定の目標に見合う最小のタイルのサイズを求めることが関わっていてもよい。タイルのサイズとアスペクト比の選択ではまた、あるいはその代わりに、関心対象領域を捕捉するために複数のタイルを転送することが必要となる可能性、または画像コンテンツ、または使用シナリオのタイルを考慮してもよい。例えば、選択されるタイルの属性は、原画像のアスペクト比と、レンダリングのためにそれが当てはめられるモデル集合の形状に依存していてもよい。ある実施形態において、タイルのサイズは一定であり、大きな画像サイズにはより多くのタイルの作成が関わる。あるいは、様々なタイルサイズを使用してもよい。モデル集合について、異なる属性を有するタイルを使って処理試験を行い、その画像モデルに合わせた特定の画像のレンダリングに関わる処理時間と資源利用の特定の目標には、どのサイズ、アスペクト比、解像度が最も密接に適合するかを判断してもよい。
【００３４】
ステップ３０６で、工程は各タイルを個々に圧縮する。画像圧縮アルゴリズムは実装ごとに異なっていてもよい。例示的な圧縮アルゴリズムには、ランレングス符号化、クロマサブサンプリング、予測符号化、デフレーション、色空間削減、エントロピー符号化、変換符号化が含まれ、これらに限定されない。
【００３５】
ステップ３０８で、工程は各圧縮タイルを画像データストアの中に、そのタイルを個別に取り出すことができように記憶する。例えば、派生画像は、タイルの番号と各々の画像データストア内のタイルの位置を説明するメタデータに関連付けて記憶されてもよい。
【００３６】
４．０  レンダリング工程
図４は、ある実施形態によるレンダリング工程のフローチャートである。ある実施形態において、オンラインレンダリング工程は以下のサブステップを含み、これはシーン内に画像が出現するたびに実行される。
【００３７】
ステップ４０２では、工程は画像の中の、その外観で可視化される部分を完全に含む矩形を画像の座標空間内で決定し、このような矩形を可視矩形と呼ぶ。例えば、図１において、可視画像部分は三角形の領域１１２と、その部分を完全に含む可視矩形１１４である。他の実施形態では、このステップでその他の有界領域が決定されてもよい。例えば、このステップではより複雑な領域が特定されてもよく、これについては後で詳しく説明する。
【００３８】
ステップ４０４では、工程は、画像の可視部分によりカバーされるスクリーン画素の数が同じと仮定すると、画像の高忠実度レンダリングを生成するための最適な画像解像度を決定する。ある実施形態において、ステップ４０４には、最終的にレンダリングされるシーンの中で最終消費者のディスプレイのいくつの画素がカバーされ、または使用されるか、すなわち図１の矩形領域１１２等の部分を判断することが関わる。派生画像を検索するために、判断された数そのものを使用すると、実際には、品質がより低下することがわかっており、これはレンダリング後のスケーリングアーチファクトの存在による。したがって、ある実施形態において、判断された数にスケーリングファクタ、例えば１．５を乗じる。あるいは、２．０のナイキスト限界をスケーリングファクタとして使用してもよいが、経験的結果は、ステップ４０６でさらに繰上げが行われるため、このような値が不必要に高いことを示している。この結果が、完全な画像の画素としてのサイズに変換される。例えば、三角形の領域１１２が４００×４００画素を占める場合、スケーリングファクタ１．５を適用すると６００×６００画素となる。すると、三角形の領域１１２が完全な原画像の約１／３を占める場合、スケーリングされた完全な原画像は約１８００×１８００画素となる。
【００３９】
ステップ４０６では、工程は最適な画像解像度を、画像データストアの中で利用可能な、次に高い解像度に繰り上げ、この解像度を最終解像度と呼ぶ。例えば、スケーリング後の完全な画像サイズが１８００×１８００の場合、最終解像度は２０４８×２０４８画素となり、それは、これが利用可能な派生画像の、次に大きいサイズであるからである。その後のステップでは、この派生画像からのタイルが使用される。
【００４０】
ステップ４０４と４０６は、最終的にレンダリングされた関心対象領域の寸法と解像度がそれより低いため、非常に大きな、高い解像度の画像を使用する必要がないという認識に基づく。例えば、再び図１を参照すると、三角形の領域１１２の辺の長さは、斜辺を除き、４００×４００画素であってもよい。三角形の領域１１２のスクリーン空間内の寸法は原画像をスクリーン空間に変換することによって得てもよい。この解像度で、１６３８４×１６３８４画素の解像度を有する派生画像からのタイルは、４０９６×４０９６画素を有する派生画像を使用した場合と比較して、追加画像情報または解像度ほとんど貢献せず、すべてのスケーリングの後で、他の変換およびレンダリングが適用される。したがって、このステップと次のステップでは、高解像度の原画像を常に使用することと、たとえより低解像度のタイルが検索されたとしても、最終的にレンダリングされるシーンが確実に依然として良好な忠実度を有するようにすることとの間の折り合いが付けられる。目標は、より小さく、低解像度の派生画像を検索し、処理しながら、高解像度の原画像と区別できないシーンが最終的にレンダリングされることである。上記の例では、解像度が２０４８×２０４８画素より高い画像を使用すると、外観上の改善は識別できない。逆に言えば、工程は、最高解像度の派生画像または原画像と均等のスクリーン上の外観が得られる、最低の解像度の派生画像を選択する方法を提供する。
【００４１】
ステップ４０８では、工程は、可視矩形と重なる、繰り上げられた解像度のタイル全体のすべてを含めるように可視矩形またはその他の領域を拡張し、この結果を最終矩形と呼ぶ。図１の場合、可視矩形１１４はタイル１０８Ａの境界まで拡張される。他の場合では、可視矩形１１４は複数のタイルの１０８Ａ、１０８Ｂまたはその他を含めるように拡張されてもよい。例えば、可視矩形１１４が１つのタイルより若干大きい場合は４つのタイルだけが検索され、これは、画像ストアからはタイル全体しか検索できないからである。このようにして４つのタイルを検索することは、実際において比較的一般的であることがわかっており、上記のオフライン工程での準備のために個々のタイルのサイズを決定する際の要素である。
【００４２】
ステップ４１０では、工程は最終解像度の最終矩形に含まれる画像タイルを取り出し、展開してメモリ内画像とし、これは最終矩形を正確に表す。各種の実施形態において、ステップ５はまた、具体的な所望の関心対象領域のみ、例えば図１の可視矩形１１４のみ、または図１の三角形の領域１１２のみを検索して、レンダリングすることを含んでいてもよい。
【００４３】
ステップ４１２では、工程は、その画像を含む形状に関する新たな３Ｄ変換を計算して、モデルのテクスチャ座標が最終矩形より画像全体を指すという事実を補償する。再び図１を参照すると、ユーザディスプレイの画像領域１１０は一般に、画素位置で表される１つの座標系を有するが、原画像１０６の座標系は異なり、画素サイズを参照しても、しなくてもよい。例えば、画像１０６の座標系は（０，０）〜（１，１）であってもよい。画像１０６の座標系は画像領域１１０の座標系に変換されてもよいが、一般的な変換方式では、画像１０６の全体が利用可能と仮定されるが、この手法では特定のタイル１０８Ａだけを使用する。したがって、ある実施形態において、タイル１０８Ａの形状が、画像全体のうち、そのタイル内で表される部分とマッチするようにスケーリングされ、変換される。このステップによって、画像１０６のうち、画像領域１１０の中に表されるシーンの外にある部分をレンダリングしようとする誤った試行が防止される。その結果、タイル１０８Ａが、画像領域１１０のシーンの中の正しい場所に現れる。
【００４４】
ステップ４１４では、モデルがレンダリングされ、そのシーンの最終画像が生成される。ある実施形態において、画像領域１１０の外にあるタイルは、ステップ４１２で計算された変換のために、レンダリングされない。この最終画像がユーザに対して表示される。
【００４５】
５．０  実現機構−ハードウェアの概要
一実施形態によると、本明細書に記載されている技法は、１つ以上の特殊用途の演算装置によって実施される。特殊用途の演算装置は、それらの技法を実行するために有線接続され得るか、あるいは、それらの技法を実行するように永続的にされている１つ以上の特定用途向け集積回路（ＡＳＩＣ）またはフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）などのデジタル電子装置を含み得るか、ファームウェア、メモリ、他の記憶領域、またはそれらの組み合わせに記憶されているプログラム命令に従ってそれらの技法を実行するようにプログラムされた１つ以上の汎用ハードウェアプロセッサを含み得る。かかる特殊用途の演算装置はまた、それらの技法を達成するために、カスタム配線されたロジック、ＡＳＩＣ、またはＦＰＧＡをカスタムプログラミングと結合し得る。特殊用途の演算装置は、それらの技法を実装するために、有線接続された、かつ／またはプログラムロジックを包含しているデスクトップコンピュータシステム、可搬型コンピュータシステム、ハンドヘルド装置、ネットワーキング装置、またはその他任意の装置であり得る。
【００４６】
例えば、図５は、コンピュータシステム５００を表すブロック図である。コンピュータシステム５００は、情報を通信するためのバス５０２または他の通信メカニズムと、情報を処理するための、バス５０２と連結されたハードウェアプロセッサ５０４と、を備える。ハードウェアプロセッサ５０４は、例えば汎用マイクロプロセッサであり得る。
【００４７】
コンピュータシステム５００は、プロセッサ５０４によって実行される情報と命令とを記憶するための、バス５０２に連結された、ランダム・アクセス・メモリ（ＲＡＭ）や他の動的な記憶装置などのメインメモリ５０６も備える。メインメモリ５０６は、プロセッサ５０４によって実行される命令の実行中に一時的な変数または他の中間情報を記憶する目的でも使用され得る。かかる命令は、プロセッサ５０４にアクセス可能な非一時記憶媒体に記憶されると、コンピュータシステム５００を、命令で指定された処理を実行するようにカスタマイズされている特殊用途マシンに変換する。
【００４８】
コンピュータシステム５００は、プロセッサ５０４のための静的な情報と命令とを記憶するための、バス５０２に連結された読み出し専用メモリ（ＲＯＭ）５０８または他の静的な記憶装置をさらに備える。そして、情報と命令を記憶するための磁気ディスクや光学ディスクなどの記憶装置５１０がバス５０２に提供または連結されている。
【００４９】
コンピュータシステム５００は、陰極線管（ＣＲＴ）など、情報をコンピュータユーザに表示するためのディスプレイ５１２に、バス５０２を介して連結され得る。そして、プロセッサ５０４に情報およびコマンド群を伝達するための、英数字および他のキーを備える入力装置５１４がバス５０２に連結されている。別のタイプのユーザ入力装置は、方向情報およびコマンド群をプロセッサ５０４に伝達するため、およびディスプレイ５１２上のカーソル移動を制御するための、マウス、トラックボール、あるいはカーソル方向キーなどのカーソルコントロール５１６である。入力装置は、第１の軸（例えばｘ）と第２の軸（例えばｙ）という２本の軸による２自由度を有するのが典型的で、これらの軸により、平面における位置を指定することができる。
【００５０】
コンピュータシステム５００は、カスタマイズされた有線接続ロジック、１つ以上のＡＳＩＣまたはＦＰＧＡ、そして、（コンピュータシステムとの組み合わせにより、コンピュータシステム５００を特殊用途マシンにするか、あるいはコンピュータシステム５００が特殊用途マシンとなるようにプログラムするファームウェアおよび／またはプログラムロジックを使用して、本明細書に記載された技法を実装し得る。一実施形態によると、本明細書の技法は、メインメモリ５０６に格納されている１つ以上の命令の１つ以上のシーケンスをプロセッサ５０４が実行したのを受けて、コンピュータシステム５００によって実行される。かかる命令は、記憶装置５１０など別の記憶媒体からメインメモリ５０６に読み込まれ得る。メインメモリ５０６に格納されている命令のシーケンスが実行されると、プロセッサ５０４が、本明細書に記載された処理ステップを実行する。代替実施形態では、有線接続回路が、ソフトウェア命令の代わりに、あるいはソフトウェア命令と組み合わせて使用され得る。
【００５１】
本明細書で使用されている「記憶媒体」という用語は、マシンをある具体的な方法で動作させるデータおよび／または命令を記憶する任意の非一時媒体を表す。かかる記憶媒体は、不揮発性媒体および／または揮発性媒体を含み得る。不揮発性媒体は、例えば、記憶装置５１０などの光学または磁気ディスクを含む。揮発性媒体は、メインメモリ５０６などの動的なメモリを含む。記憶媒体の一般的な形態として、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、ソリッド・ステート・ドライブ、磁気テープ、またはその他任意の磁気データ記憶媒体、ＣＤ−ＲＯＭ、その他任意の光学データ記憶媒体、穿孔のパターンを有する任意の物理媒体、ＲＡＭ、ＰＲＯＭとＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、ＮＶＲＡＭ、その他任意のメモリチップまたはカートリッジなどがある。
【００５２】
記憶媒体は、伝送媒体とは別になっているが、併用され得る。伝送媒体は、記憶媒体間での情報伝送に関与する。例えば、伝送媒体として、バス５０２を構成する同軸ケーブル、銅線、光ファイバなどがある。伝送媒体は、無線または赤外線によるデータ通信中に生成される音波または光波などの形態をとることもできる。
【００５３】
媒体の各種形態は、１つ以上の命令の１つ以上のシーケンスをプロセッサ５０４に伝えて実行させることに関与し得る。例えば、これらの命令はまず、リモートコンピュータの磁気ディスクまたはソリッド・ステート・ドライブで搬送され得る。リモートコンピュータは、これらの命令を自身の動的なメモリにロードし、モデムを使用して電話回線経由で送ることができる。コンピュータシステム５００のローカルモデムは、電話回線でデータを受信し、赤外線送信機を使用してデータを赤外線信号に変換する。赤外線検出器が赤外線信号で搬送されたデータを受信することができ、適切な回路がデータをバス５０２に配置することができる。バス５０２がそのデータをメインメモリ５０６に搬送し、そこからプロセッサ５０４が命令を取得して実行する。メインメモリ５０６によって受信された命令は、任意で、プロセッサ５０４による実行の前または後に記憶装置５１０に記憶され得る。
【００５４】
コンピュータシステム５００は、バス５０２に連結された通信インターフェイス５１８も備える。通信インターフェイス５１８は、ローカルネットワーク５２２に接続されているネットワークリンク５２０に連結して双方向データ通信を提供する。例えば、通信インターフェイス５１８は、サービス総合デジタルネットワーク（ＩＳＤＮ）カード、ケーブルモデム、衛星モデム、または対応するタイプの電話回線とのデータ通信接続を提供するためのモデムであり得る。別例として、通信インターフェイス５１８は、互換ＬＡＮにデータ通信接続を提供するためのローカル・エリア・ネットワーク（ＬＡＮ）カードであり得る。無線リンクも実装され得る。かかる実装形態では、通信インターフェイス５１８が、各種情報を表すデジタル・データ・ストリームを搬送する電気、電磁、あるいは光信号を送受信する。
【００５５】
ネットワークリンク５２０は、１つ以上のネットワークを経由して他のデータ装置へのデータ通信を提供するのが典型的である。例えば、ネットワークリンク５２０は、ローカルネットワーク５２２を経由して、ホストコンピュータ５２４との接続、あるいはインターネット・サービス・プロバイダ（ＩＳＰ）５２６によって運用されるデータ装置との接続を提供し得る。ＩＳＰ  ５２６は、現在「インターネット」５２８と一般に称される世界的なパケットデータ通信網を通じてデータ通信サービスを提供する。ローカルネットワーク５２２およびインターネット５２８はともに、デジタル・データ・ストリームを搬送する電気、電磁、あるいは光信号を使用する。各種ネットワークを流れる信号、そして通信インターフェイス５１８を介し、ネットワークリンク５２０を経由しコンピュータシステム５００との間でデジタルデータを搬送する信号が、伝送媒体の形態例である。
【００５６】
コンピュータシステム５００は、ネットワーク、ネットワークリンク５２０、および通信インターフェイス５１８を通じて、メッセージの送信とプログラムコードなどのデータの受信とを行うことができる。インターネットを例に挙げると、サーバ５３０が、インターネット５２８、ＩＳＰ  ５２６、ローカルネットワーク５２２、通信インターフェイス５１８を通じて、リクエストされたアプリケーションプログラム用コードを送信し得る。
【００５７】
受信されたコードは、プロセッサ５０４によって実行され、かつ／または記憶装置５１０または他の不揮発性記憶領域に記憶されて後で実行され得る。
【００５８】
６．０  拡張および代替選択肢
上記明細書では、本発明の実施形態について、実装形態によって異なり得る数々の具体的な詳細に言及しながら説明してきた。そのため、本発明の範囲、および出願人が意図する本発明の範囲に関する唯一かつ排他的な指標は、本特許請求の範囲に記載される特定の形態の、本出願に由来する一組の請求項であり、後続の補正も含む。かかる特許請求の範囲に含まれる用語について本明細書で明示的に規定された定義が、特許請求の範囲で使用されているそのような用語の意味を司るものとする。したがって、請求項で明示的に引用されていない限定、要素、性質、特徴、利点または属性は、かかる請求項の範囲を一切限定することはないものとする。そのため、明細書および図面は、限定的な意味ではなく、例示的な意味であるとみなされるべきである。
【００５９】
ある実施形態において、工程は可視矩形ではなく、より複雑な画像領域に対応し、その領域をカバーするタイルのみを取り出すようにすることができる。例えば、本発明による手法は、マグ、スケートボードデッキ、またはその他のカスタム製品などの立体に適用される画像の可視領域を決定するために応用できる。特定の例として、ユーザは、ある画像を可視化したものをマグの周囲に巻き付けて、後方から、または画像の一部が見えず、画像の非連続的部分が見えるようなその他の角度から見えるようにしたいと考えるかもしれない。巻き付けられた画像の可視部分は、本発明が提供するものと同じ全体的技術を使って決定でき、工程は、その画像のうち、最終レンダリングにおいて見える部分のみについてのタイルを検索するように構成されてもよい。
【００６０】
ある実施形態において、工程は、レンダリング時に、画像ストアに取り付けられたサーバ上の具体的な可視領域をカバーする、より低解像度の画像を生成し、その後、これらの具体的な領域だけをレンダリングクライアントシステムに転送することに対応する。例えば、本発明による工程の多くは、レンダリングクライアント２０６ではなく、サーバコンピュータ２０８の中の１つ以上のコンピュータプログラム、その他のソフトウェア要素、またはその他のロジックで実行されてもよい。さらに、この技術がサーバコンピュータ２０８の中で実行される場合、必要な派生画像を、原画像が画像ストア２１０から検索されるときに、必要な、複数の解像度の派生画像のスケーリングと生成をオンザフライで実行する等、その他の最適化を適用してもよい。例えば、前述の例と同様に、１８００×１８００画素の画像が必要度あると工程が判断した場合、サーバコンピュータ２０８は、複数の派生画像を事前に記憶してから、次の利用可能な解像度に繰り上げるのではなく、まさに所望の１８００×１８００画素の解像度で派生画像をオンザフライで生成するように構成できる。
【００６１】
これに加えて、またはその代わりに、レンダリングクライアント２０６は、タイル全体ではなく最小の矩形を要求するように構成されてもよく、サーバコンピュータ２０８は、このような要求に応答して、要求された最小矩形をオンザフライで作成するように構成されてもよい。例えば、画像ストア２１０の中のタイルのストレージの有無を問わず、レンダリングクライアント２０６は、サーバコンピュータ２０８に対し、可視矩形を含むタイル１０８Ａではなく、可視矩形１１４を提供するように要求でき、サーバコンピュータは、その可視矩形に関するデータだけを含む応答またはファイルを決定し、作ることができ、それによってレンダリングクライアント２０６に転送されるデータの量がさらに減る。
【００６２】
ある実施形態において、工程は、具体的なセットモデルとシーンのための画像領域の事前計算と、特にこれらのシーンのための画像の事前生成に対応する。
【００６３】
ある実施形態において、工程は、複数の記憶されたタイルに画像をコピーせずに、ある画像の任意の領域を探し、または検索することを可能にする、より高度な画像圧縮方式にも対応する。このような画像圧縮方式の例には、Ｐｒｏｇｒｅｓｓｉｖｅ  Ｇｒａｐｈｉｃｓ  Ｆｉｌｅ（ＰＧＦ）フォーマットが含まれ、これは「関心対象領」機能を提供する。あるいは、Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＪＰＥＧ）フォーマットの画像のための機能も構築でき、これは８×８のブロックに基づいて圧縮し、関心対象である特定の１つ以上の８×８ブロックを検索する。
【図１】
0006049220.tif 000002
【図２】
0006049220.tif 000003
【図３】
0006049220.tif 000004
【図４】
0006049220.tif 000005
【図５】
0006049220.tif 000006