(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-10
(54)【発明の名称】奥行きマップを使用したビュー合成システムおよび方法
(51)【国際特許分類】
G06T 15/00 20110101AFI20240903BHJP
H04N 13/268 20180101ALI20240903BHJP
H04N 13/302 20180101ALI20240903BHJP
【FI】
G06T15/00 501
H04N13/268
H04N13/302
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024506192
(86)(22)【出願日】2022-07-28
(85)【翻訳文提出日】2024-04-01
(86)【国際出願番号】 US2022038731
(87)【国際公開番号】W WO2023014576
(87)【国際公開日】2023-02-09
(32)【優先日】2021-08-03
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】514274546
【氏名又は名称】レイア、インコーポレイテッド
【氏名又は名称原語表記】LEIA INC.
(74)【代理人】
【識別番号】100092783
【氏名又は名称】小林 浩
(74)【代理人】
【識別番号】100120134
【氏名又は名称】大森 規雄
(74)【代理人】
【識別番号】100093676
【氏名又は名称】小林 純子
(74)【代理人】
【識別番号】100221327
【氏名又は名称】大川 亮
(72)【発明者】
【氏名】サプラン,ヴァディム
(57)【要約】
マルチビュー画像生成および表示において、コンピューティングデバイスは、カラー画像および奥行きマップから場面のマルチビュー画像のビュー画像を合成し得る。各ビュー画像は、それぞれの画素位置における色値を含み得る。コンピューティングデバイスは、マルチビュー画像のビュー画像をマルチビューディスプレイ上にレンダリングし得る。ビュー画像を合成することは、ビュー画像内の画素位置について、以下の動作を含み得る。コンピューティングデバイスは、画素位置から場面へ向けて、ビュー画像のビュー方向に対応する方向に光線をキャスティングし得る。コンピューティングデバイスは、光線が奥行きマップによって指定される仮想表面に交差する光線交差位置を決定し得る。コンピューティングデバイスは、光線交差位置におけるカラー画像の色に対応するように画素位置におけるビュー画像の色値を設定し得る。
【特許請求の範囲】
【請求項1】
マルチビュー画像生成および表示のコンピュータ実装の方法であって、
コンピューティングデバイスを用いて、場面のカラー画像および前記場面の奥行きマップを受信することと、
前記コンピューティングデバイスを用いて、前記カラー画像および前記奥行きマップから前記場面のマルチビュー画像の複数のビュー画像を合成することであって、前記複数のビュー画像は、複数の異なるビュー方向から前記場面を表し、各ビュー画像は、複数の画素位置、および前記複数の画素位置におけるそれぞれの色値を含む、合成することと、
前記マルチビュー画像の前記複数のビュー画像を前記コンピューティングデバイスのマルチビューディスプレイ上にレンダリングすることと、を含み、
前記マルチビュー画像のビュー画像を合成することは、前記ビュー画像内の画素位置について、
前記画素位置から前記場面へ向けて、前記ビュー画像の前記ビュー方向に対応する方向に光線をキャスティングすること、
前記光線が前記奥行きマップによって指定される仮想表面に交差する光線交差位置を決定すること、および
前記光線交差位置における前記カラー画像の色に対応するように前記画素位置における前記ビュー画像の色値を設定することを含む、コンピュータ実装の方法。
【請求項2】
前記光線交差位置を決定することは、
前記画素位置と指定の平面との間の前記光線に沿った順次の暫定的な位置を、前記仮想表面が前記画素位置と前記指定の平面との間にあるように決定することと、
前記光線に沿った前記暫定的な位置のうちの暫定的な位置を識別することであって、
前記識別した暫定的な位置が前記画素位置と前記指定の平面との間にあることを決定すること、および
前記識別した暫定的な位置を前記光線に沿った次の暫定的な位置へ前進させることを含む、識別することと、
前記指定の平面が前記画素位置と前記識別した暫定的な位置との間にあることを決定することと、
前記光線交差位置を、包括的に、前記識別した暫定的な位置と、隣接する以前に識別した暫定的な位置との間の位置に対応するように設定することと、を含む、請求項1に記載のコンピュータ実装の方法。
【請求項3】
前記光線交差位置を決定することは、
前記識別した暫定的な位置と前記隣接する以前に識別した暫定的な位置との間の前記光線に沿った順次の第2の暫定的な位置を決定することと、
前記光線に沿った前記第2の暫定的な位置のうちの1つの第2の暫定的な位置を識別することであって、
前記識別した第2の暫定的な位置が前記画素位置と前記指定の平面との間にあることを決定すること、および
前記識別した第2の暫定的な位置を前記光線に沿った次の第2の暫定的な位置へ前進させることを含む、識別することと、
前記指定の平面が前記画素位置と前記識別した第2の暫定的な位置との間にあることを決定することと、
前記光線交差位置を、包括的に、前記識別した第2の暫定的な位置と、隣接する以前に識別した第2の暫定的な位置との間の位置に対応するように設定することと、をさらに含む、請求項2に記載のコンピュータ実装の方法。
【請求項4】
前記暫定的な位置は、前記光線に沿って等しく離間される、請求項2に記載のコンピュータ実装の方法。
【請求項5】
前記ビュー画像は、前記複数のビュー画像の上および下縁に平行である水平方向、前記ビュー画像の平面内にあり、前記水平方向に対して直交である垂直方向、ならびに前記水平および垂直方向に対して直交である奥行きを規定し、
前記暫定的な位置は、隣接する暫定的な位置の間の間隔の水平成分が指定の値に対応するように離間される、請求項4に記載のコンピュータ実装の方法。
【請求項6】
前記指定の値は、前記ビュー画像内の隣接する画素の間の水平間隔に対応する、請求項5に記載のコンピュータ実装の方法。
【請求項7】
前記マルチビュー画像のビュー画像を合成することは、前記ビュー画像内の画素位置について、
前記画素位置から前記場面へ向けて、前記ビュー画像の前記ビュー方向に対応する方向に光線をキャスティングすることと、
前記光線が前記奥行きマップによって指定される仮想表面に交差しないことを決定することと、
前記マルチビュー画像の前記複数のビュー画像の少なくとも1つの時間隣接した映像フレームから色情報を取得することと、
前記取得した色情報に対応するように前記画素位置における前記ビュー画像の色値を設定することと、を含む、請求項1に記載のコンピュータ実装の方法。
【請求項8】
前記光線が前記奥行きマップによって指定される前記仮想表面に交差しないことを決定することは、前記光線が、しきい値距離を超える距離だけ前記画素位置から離れる方へ伝搬したことを決定することを含む、請求項7に記載のコンピュータ実装の方法。
【請求項9】
前記複数のビュー画像は、映像信号の時系列画像に対応し、前記色情報は、前記映像信号の前記少なくとも1つの時間隣接した映像フレームの前記画素位置から取得される、請求項7に記載のコンピュータ実装の方法。
【請求項10】
前記異なるビュー方向は、前記複数のビュー画像の上および下縁を含む水平面内にある、請求項1に記載のコンピュータ実装の方法。
【請求項11】
マルチビュー画像生成および表示を実施するように構成されるシステムであって、
マルチビューディスプレイと、
中央処理装置と、
実行されると、前記中央処理装置に動作を実施させる複数の命令を記憶するメモリと、を備え、前記動作は、
場面のカラー画像および前記場面の奥行きマップを受信することと、
前記カラー画像および前記奥行きマップから前記場面のマルチビュー画像の複数のビュー画像を合成することであって、前記複数のビュー画像は、複数の異なるビュー方向から前記場面を表し、各ビュー画像は、画素位置、および前記画素位置におけるそれぞれの色値を含む、合成することと、
前記マルチビュー画像の前記複数のビュー画像を前記マルチビューディスプレイ上にレンダリングすることと、を含み、
前記マルチビュー画像のビュー画像を合成することは、前記ビュー画像内の画素位置について、
前記画素位置から前記場面へ向けて、前記ビュー画像の前記ビュー方向に対応する方向に光線をキャスティングすること、
前記光線が前記奥行きマップによって指定される仮想表面に交差する光線交差位置を決定すること、および
前記光線交差位置における前記カラー画像の色に対応するように前記画素位置における前記ビュー画像の色値を設定することを含む、システム。
【請求項12】
前記光線交差位置を決定することは、
前記画素位置と指定の平面との間の前記光線に沿った順次の暫定的な位置を、前記仮想表面が前記画素位置と前記指定の平面との間にあるように決定することと、
前記光線に沿った前記暫定的な位置のうちの1つの暫定的な位置を識別することであって、
前記識別した暫定的な位置が前記画素位置と前記指定の平面との間にあることを決定すること、および
前記識別した暫定的な位置を前記光線に沿った次の暫定的な位置へ前進させることを含む、識別することと、
前記指定の平面が前記画素位置と前記識別した暫定的な位置との間にあることを決定することと、
前記光線交差位置を、包括的に、前記識別した暫定的な位置と、隣接する以前に識別した暫定的な位置との間の位置に対応するように設定することと、を含む、請求項11に記載のシステム。
【請求項13】
前記光線交差位置を決定することは、
前記識別した暫定的な位置と前記隣接する以前に識別した暫定的な位置との間の前記光線に沿った順次の第2の暫定的な位置を決定することと、
前記光線に沿った前記第2の暫定的な位置のうちの1つの第2の暫定的な位置を識別することであって、
前記識別した第2の暫定的な位置が前記画素位置と前記指定の平面との間にあることを決定すること、および
前記識別した第2の暫定的な位置を前記光線に沿った次の第2の暫定的な位置へ前進させることを含む、識別することと、
前記指定の平面が前記画素位置と前記識別した第2の暫定的な位置との間にあることを決定することと、
前記光線交差位置を、包括的に、前記識別した第2の暫定的な位置と、隣接する以前に識別した第2の暫定的な位置との間の位置に対応するように設定することと、をさらに含む、請求項12に記載のシステム。
【請求項14】
前記暫定的な位置は、前記光線に沿って等しく離間される、請求項12に記載のシステム。
【請求項15】
前記ビュー画像は、前記ビュー画像の上および下縁に平行である水平方向、前記ビュー画像の平面内にあり、前記水平方向に対して直交である垂直方向、ならびに前記水平および垂直方向に対して直交である奥行きを規定し、
前記暫定的な位置は、隣接する暫定的な位置の間の間隔の水平成分が前記ビュー画像内の隣接する画素の間の水平間隔に対応するように離間される、請求項14に記載のシステム。
【請求項16】
前記異なるビュー方向は、前記複数のビュー画像の上および下縁を含む水平面内にある、請求項11に記載のシステム。
【請求項17】
コンピュータシステムのプロセッサによって実行されるとき、マルチビュー画像生成および表示の動作を実施する実行可能な命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記動作は、
場面のカラー画像および前記場面の奥行きマップを受信することと、
前記カラー画像および前記奥行きマップから前記場面のマルチビュー画像の複数のビュー画像を合成することであって、前記複数のビュー画像は、異なるビュー方向から前記場面を表し、各ビュー画像は、複数の画素位置、および前記複数の画素位置におけるそれぞれの色値を含む、合成することと、
前記マルチビュー画像の前記複数のビュー画像をマルチビューディスプレイ上にレンダリングすることと、を含み、
前記マルチビュー画像のビュー画像を合成することは、前記ビュー画像内の画素位置について、
前記画素位置から前記場面へ向けて、前記ビュー画像の前記ビュー方向に対応する方向に光線をキャスティングすること、
前記光線が前記奥行きマップによって指定される仮想表面に交差する光線交差位置を決定すること、および
前記光線交差位置における前記カラー画像の色に対応するように前記画素位置における前記ビュー画像の色値を設定することを含む、非一時的なコンピュータ可読記憶媒体。
【請求項18】
前記光線交差位置を決定することは、
前記画素位置と指定の平面との間の前記光線に沿った順次の暫定的な位置を、前記仮想表面が前記画素位置と前記指定の平面との間にあるように決定することと、
前記光線に沿った前記暫定的な位置のうちの暫定的な位置を識別することであって、繰り返して
前記識別した暫定的な位置が前記画素位置と前記指定の平面との間にあることを決定すること、および
前記識別した暫定的な位置を前記光線に沿った次の暫定的な位置へ前進させることを含む、識別することと、
前記指定の平面が前記画素位置と前記識別した暫定的な位置との間にあることを決定することと、
前記光線交差位置を、前記識別した暫定的な位置と、隣接する以前に識別した暫定的な位置との間の位置に対応するように設定することとを含む、請求項17に記載の非一時的なコンピュータ可読記憶媒体。
【請求項19】
前記光線交差位置を決定することは、
前記識別した暫定的な位置と前記隣接する以前に識別した暫定的な位置との間の前記光線に沿った順次の第2の暫定的な位置を決定することと、
前記光線に沿った前記第2の暫定的な位置のうちの1つの第2の暫定的な位置を識別することであって、繰り返して
前記識別した第2の暫定的な位置が前記画素位置と前記指定の平面との間にあることを決定すること、および
前記識別した第2の暫定的な位置を前記光線に沿った次の第2の暫定的な位置へ前進させることを含む、識別することと、
前記指定の平面が前記画素位置と前記識別した第2の暫定的な位置との間にあることを決定することと、
前記光線交差位置を、包括的に、前記識別した第2の暫定的な位置と、隣接する以前に識別した第2の暫定的な位置との間の位置に対応するように設定することと、をさらに含む、請求項18に記載の非一時的なコンピュータ可読記憶媒体。
【請求項20】
前記暫定的な位置は、前記光線に沿って等しく離間され、
前記ビュー画像は、前記ビュー画像の上および下縁に平行である水平方向、前記ビュー画像の平面内にあり、前記水平方向に対して直交である垂直方向、ならびに前記水平および垂直方向に対して直交である奥行きを規定し、
前記暫定的な位置は、隣接する暫定的な位置の間の間隔の水平成分が前記ビュー画像内の隣接する画素の間の水平間隔に対応するように離間される、請求項18に記載の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年8月3日出願の米国仮特許出願第63/229,054号の優先権を主張するものであり、その全体が参照により本明細書に組み込まれる。
【0002】
合衆国政府支援による研究または開発に関する陳述
該当なし
【背景技術】
【0003】
三次元(3D)空間における場面は、視野角に応じて複数の視点から見られ得る。加えて、ユーザによって見られるとき、場面の異なる視点を表す複数のビューは、同時に知覚され得、ユーザによって知覚され得る奥行きの間隔を効果的に作成する。マルチビューディスプレイは、複数のビューが同時に知覚可能であるように、マルチビュー画像をレンダリングおよび表示することが可能である。一部のコンテンツは、マルチビュー画像またはマルチビュー映像としてネイティブにキャプチャされ得る一方、マルチビュー画像またはマルチビュー動画は、様々な他の供給源から生成され得る。
【0004】
本明細書に説明される原則に従う例および実施形態の様々な特徴は、添付の図面と併せて以下の詳細な説明を参照してより容易に理解され得、同じ参照番号は、同じ構造的要素を示す。
【図面の簡単な説明】
【0005】
【
図1】本明細書に説明される原則に一致する実施形態による、例におけるマルチビューディスプレイの透視図である。
【0006】
【
図2】本明細書に説明される原則に一致する実施形態による、例におけるマルチビューディスプレイのビュー方向に対応する特定の主要角度方向を有する光ビームの角度成分のグラフィック表現である。
【0007】
【
図3】本明細書に説明される原則に一致する実施形態による、マルチビュー画像生成および表示を実施し得るシステムの例のブロック図である。
【0008】
【
図4】本明細書に説明される原則に一致する実施形態による、本明細書に論じられるコンピュータ実装の動作の簡略化した例のグラフィック表現である。
【0009】
【
図5】本明細書に説明される原則に一致する実施形態による、マルチビュー画像生成および表示を実施するための方法の例のフローチャートである。
【0010】
【
図6】本明細書に説明される原則に一致する実施形態による、マルチビュー画像生成および表示を実施し得るコンピューティングデバイスの例を描写する概略ブロック図である。
【発明を実施するための形態】
【0011】
特定の例および実施形態は、上で言及した図に例証される特徴に加えて、およびそれらの代わりに、他の特徴を有する。これらおよび他の特徴は、上で言及した図を参照して以下に詳述される。
【0012】
本明細書に説明される原則に従う例および実施形態は、リアルタイムレンダリングパイプラインにおいて単一のビュー画像および奥行きマップからマルチビュー画像を生成するための技術を提供する。これは、ビジュアルコンテンツ(例えば、画像または映像)がオンザフライでマルチビュー形式に変換され、ユーザに提示されることを可能にする。以下に説明されるように、実施形態は、カラー画像および奥行き入力を使用したリアルタイムビュー合成に関与する。
【0013】
実施形態によると、シェーダプログラムは、合成されたビューごとに画素値を計算するためにサブルーチンを実施する。サブルーチンは、単色(またはグレースケール)画像および奥行きマップからビューを合成するためにレイキャスティングを使用し得る。合成されたビュー内の各画素は、個々の光線をビュー位置に対応する角度で奥行きマップ上にキャスティングすることによって決定され得る。特定のビューでは、ビューのすべての光線は、光線が平行であるように同じ方向を有する。各光線は、合成されたビューの一部としてレンダリングされることになる画素に対応し得る。光線ごとに、サブルーチンは、奥行きマップから奥行き値を読み出すことによって、どこで光線が仮想表面に交差するかを決定するために光線に沿った点をステップスルーする。光線に沿った各ステップにおいて、水平位置は、所定の元の間隔ずつ増分され、奥行き位置は、所定の奥行き間隔ずつ増分される。いくつかの実施形態において、垂直位置は、一定のままであり得る。光線が仮想表面に交差する場所は、ビューの画素に対応するカラーマップから色を読み出すために使用される座標の場所を指定し、画素位置は光線の起源に対応する。いくつかの実施形態において、特定の画素のための光線がしきい値量だけ仮想表面を下回るとき、画素は、色を表すよりも穴として設定され得る。
【0014】
シェーダプログラムは、グラフィック処理ユニット(GPU)によって実行されるプログラムであり得る。GPUは、様々なサブルーチンを並行して実施するように設定される命令を実行する1つまたは複数のベクトルプロセッサを含み得る。これに関して、単一のサブルーチンが、ビュー画像の画素の個々の画素値を、それが合成されているときに計算するように構成され得る。サブルーチンのいくつかのインスタンスは、ビューのすべての画素の画素値を計算するために並行して実行し得る。
【0015】
実施形態は、ビュー画像を合成することに向けられ、これは、ビュー画像を合成するためにカラー画像および対応する奥行きマップにアクセスすることを含み得、奥行きマップが仮想表面を規定する。ビュー画像を合成することは、光線に沿った複数の点を、光線に沿った複数の点のうちの1つの点が仮想表面に位置するものと識別されるまで、所定の水平間隔、所定の奥行き間隔、および一定の垂直値でステップスルーすることをさらに含み得、光線は、光線起源および光線方向を含み、光線起源は、レンダリングされることになるビュー画像の画素の画素位置を規定し、光線方向は、ビュー画像のビュー位置に対応する。ビュー画像を合成することはまた、ヒット点におけるカラー画像の色値をサンプリングすることによってビュー画像の画素をレンダリングすることを含み得る。
【0016】
さらに詳細に述べると、カラー画像は、RGB画像であり得、この場合カラー画像は、それぞれの座標を有する異なる画素のための画素値を指定する。画素値は、赤色の量を示す値、緑色の量を示す値、青色の量を示す値、またはそれらの任意の組み合わせであり得る。奥行きマップは、カラー画像と同様の形式を有し得るが、色を指定するのではなく、奥行きマップは、それぞれの座標を有する異なる画素のための奥行き値を指定する。故に、奥行きマップは、水平位置および垂直位置の関数として奥行き軸に沿って変動する仮想表面を規定し得る。言い換えると、上下配向から、奥行きは、奥行き軸に沿って(例えば、画面内へ、または画面の外へ)変動し得る一方、位置は、水平(例えば、左または右)に、または垂直(例えば、上または下)に変動する。
【0017】
1つまたは複数のビュー画像は、カラー画像および奥行きマップから合成され得る。ビュー画像は、他のビュー画像のそれぞれの視点とは異なる特定の視点に対応する。ビュー画像のセットがマルチビュー画像を形成し、マルチビュー画像は、異なる視点を含む物体または場面を表す。マルチビュー画像の各ビュー画像は、それぞれのビュー位置に対応する。例えば、マルチビュー画像が4つのビューを含む場合、ビュー位置は、それらが最も左のビュー、中央左ビュー、中央右ビュー、および最も右のビューを含むように、左から右へ及び得る。各ビューの間の距離は、ゲインまたはベースラインと称され得る。
【0018】
サブルーチンは、ビュー画像内の各画素について、それが合成およびレンダリングされる際に、画素値(例えば、RGB色)を計算するために実行され得る。サブルーチンは、所定の水平間隔で光線に沿った複数の点をステップスルーすることを含み得る。これに関して、サブルーチンは、特定の光線方向に光線起源からキャスティングされる光線に沿って動き、光線は、仮想表面に向かってキャスティングされる。光線は、特定の方向を指す座標によって規定される空間内の線として規定され得る。特定のビュー画像を合成するとき、平行光線が、ビュー画像が合成されているときにビュー画像のための奥行き情報を検出するために、奥行きマップの仮想表面に向かって様々な起源からキャスティングされる。起源から場面の底までの光線経路に沿ったすべての起こり得る奥行き値を読み出すのではなく、実施形態は、所定の水平間隔、所定の奥行き間隔、および一定の垂直値によって規定される点において光線に沿ってステップ動作することに向けられる。さらには、サブルーチンは、サブルーチンが仮想表面に位置する光線上の点(例えば、光線が仮想表面に交差するヒット点)を識別するとき、自動的に終了されるか、または別途中断される。言い換えると、サブルーチンは、光線が、ヒット点である仮想表面に交差する、または別途これにヒットするまで、所定の間隔で光線に沿ってステップ動作する。これに関して、ヒット点である点における奥行きは、仮想表面の対応する奥行きに等しい。ヒット点は、仮想表面よりもわずかに深いか、または仮想表面近くの奥行きの公差内であり得る。所定の奥行き間隔を使用するとき、数値化した奥行きは、光線および仮想表面の交差の場所を近似し得る。
【0019】
このヒット点が識別されるとき、場所が、座標の観点から、記録される。画素をレンダリングするため、色は、ヒット点の記録された場所を使用してカラー画像からサンプリングされる。故に、サブルーチンは、ヒット点座標におけるカラー画像の色値をサンプリングすることによってビュー画像の画素をレンダリングする。
【0020】
いくつかの実施形態において、ヒット点は、ヒット点の奥行き値読み出しをしきい値奥行きと比較することによって、仮想表面に位置するものとして識別される。例えば、サブルーチンが起源から離れる方へ光線上の次の点へ移動すると、サブルーチンは、奥行き値読み出しを獲得するために特定の点において奥行きを読み出す。ヒット点は、奥行き値読み出しをしきい値奥行きと比較することによって決定される。いくつかの実施形態において、しきい値奥行きは、各ステップにおいて所定の奥行き間隔ずつ減少される。これに関して、しきい値奥行きは、対応する点の奥行き座標に等しいか、またはそこから別途導出され得る。
【0021】
いくつかの実施形態において、ビュー画像を合成することは、複数の光線のうちの追加の光線が所定の奥行きレベルだけ仮想表面を下回ることを検出することをさらに含む。一部の光線は仮想表面に交差する一方、他の光線は、急峻度しきい値に応じて「穴」と見なされ得る仮想表面の垂直縁にヒットし得る。いくつかの実施形態において、ヒット点が急傾斜表面上にあるとき、サブルーチンは、穴を位置付ける対応する画素を指定し得る。カラー画像が映像ストリームのフレームであるとき、これらの穴は、時間隣接した映像フレームからの画素情報を使用して埋められ得る。静止画像の場合、周囲の色が穴埋めに使用され得る。
【0022】
いくつかの実施形態において、フラグメントシェーダが、光線に沿った複数の点をステップスルーするように構成される。フラグメントシェーダは、ビュー画像を少なくとも1つの他のビュー画像と組み合わせるように構成され得る。組み合わせることは、マルチビューディスプレイの組み合わされたマルチビュー形式に一致するように異なるビューの画素を空間多重することを伴う。フラグメントシェーダは、特定の色を出力画素座標へレンダリングするプロセッサによって実行され得る。色は、奥行きマップを処理することにより決定される場所においてカラー画像をサンプリングすることによって決定され得る。
【0023】
いくつかの実施形態において、所定の水平間隔は、1画素であり、所定の奥行き間隔は、複数の合成されたビューのベースラインの関数である。他の実施形態において、所定の水平間隔は、複数の合成されたビューのベースラインの関数である。光線に沿って分析されるステップの粒度を制御するためにベースラインを使用することによって、サブルーチンは、ビュー画像を合成するとき最小レベルの画像品質を維持しながら奥行き読み出しの数を低減するように最適化され得る。
【0024】
いくつかの実施形態において、サブルーチンは、奥行きマップの奥行きテクスチャから奥行き値を読み出し得る。サブルーチンは、光線起源の出力画素座標の位置(またはこの位置からの所定のオフセット、収束入力パラメータによって指定され得る)から開始し得る。サブルーチンは、ビュー位置に応じて、1つの方向(例えば、左から右へ)または反対方向(例えば、右から左)において、奥行き値の点ごとの読み出しを実施し得る。
【0025】
光線に沿った各点において、抽出された奥行き値は、1から始まりステップごとにゼロへ向かって進むしきい値奥行きと比較される。ヒット点のこのような検索は、奥行き値読み出しがしきい値奥行きに等しいか、またはこれを超えるときに終了される。検索が終了された座標は、カラー画像から色をサンプリングし、それをサブルーチンの結果として戻すために使用される。フラグメントシェーダは、このサンプリングされた色を使用して、合成されたビューの画素をレンダリングする。
【0026】
水平ステップ(例えば、所定の水平間隔)の最大数は、ベースライン入力パラメータによって修正または制御され得る。ステップが多いほど、より多くの生成されたビューが入力カラー画像から分岐する。しきい値奥行き減少ステップは、1を水平ステップの数で割ったものに等しくてもよい。
【0027】
追加的に、縁でのエイリアシングを改善するために、所定の水平間隔は、水平間隔などの所定の間隔が部分間隔へと分割され、その結果として、色をサンプリングするための座標がより精密になるように修正され得る。隣接する奥行き値読み出しは、それらの間の線形補間と共に使用され、この隣接する奥行き値読み出しは、比較中に使用され得る。所定の奥行き間隔は、部分間隔へと分割され得る。結果として生じるヒット点の座標(例えば、奥行き値読み出しは、奥行きしきい値に等しいか、またはこれを超える)は、組み込み色補間のサポートを有するシェーダテクスチャ読み出し関数へと渡され得る。
【0028】
追加的に、穴が正反対の縁に作成されることが必要とされる場合(その結果として、レンダリングは、分離した物体が独立して移動されるように見える)、奥行き値読み出しと奥行きしきい値との差が比較され得、それが所定の奥行きレベルよりも大きい場合、穴が後のインペインティングのために作成され得る。
【0029】
例において、コンピューティングデバイスは、場面のカラー画像および場面の奥行きマップを受信し得る。コンピューティングデバイスは、カラー画像および奥行きマップから場面のマルチビュー画像のビュー画像を合成し得る。ビュー画像は、異なるビュー方向から場面を表し得る。各ビュー画像は、画素位置、および画素位置におけるそれぞれの色値を含み得る。例えば、ビュー画像は、画素の二次元(2D)グリッドを有し得、各画素は画像内の場所を有する。コンピューティングデバイスは、マルチビュー画像のビュー画像をコンピューティングデバイスのマルチビューディスプレイ上にレンダリングし得る。マルチビュー画像のビュー画像を合成することは、ビュー画像内の画素位置について、画素位置から場面へ向けて、ビュー画像のビュー方向に対応する方向に光線をキャスティングすること、光線が奥行きマップによって指定される仮想表面に交差する光線交差位置を決定すること、および光線交差位置におけるカラー画像の色に対応するように画素位置におけるビュー画像の色値を設定することを含み得る。
【0030】
本明細書において、「二次元ディスプレイ」または「2Dディスプレイ」は、画像が見られる方向(すなわち、既定の視野角内または2Dディスプレイの範囲内)にかかわらず実質的に同じである画像のビューを提供するように構成されるディスプレイと定義される。多くのスマートフォンおよびコンピュータモニタにおいて見られる従来の液晶ディスプレイ(LCD)は、2Dディスプレイの例である。対照的に、本明細書において、「マルチビューディスプレイ」は、異なるビュー方向において、または異なるビュー方向から、マルチビュー画像の異なるビューを提供するように構成される電子ディスプレイまたはディスプレイシステムと定義される。特に、異なるビューは、マルチビュー画像の場面または物体の異なる透視画を表し得る。本明細書に説明される片側背面照明および片側マルチビューディスプレイの使用は、携帯電話(例えば、スマートフォン)、時計、タブレットコンピュータ、モバイルコンピュータ(例えば、ラップトップコンピュータ)、パーソナルコンピュータおよびコンピュータモニタ、自動車ディスプレイ制御器、カメラ、ディスプレイ、さらには様々な他の携帯型ならびに実質的に非携帯型のディスプレイアプリケーションおよびデバイスを含むが、これらに限定されない。
【0031】
図1は、本明細書に説明される原則に一致する実施形態による、例におけるマルチビューディスプレイ10の透視図を例証する。
図1に例証されるように、マルチビューディスプレイ10は、見られることになるマルチビュー画像表示するために画面12を備える。画面12は、例えば、電話(例えば、携帯電話、スマートフォンなど)のディスプレイ画面、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータのコンピュータモニタ、カメラディスプレイ、または実質的に任意の他のデバイスの電子ディスプレイであり得る。
【0032】
マルチビューディスプレイ10は、画面12に対して異なるビュー方向16にマルチビュー画像の異なるビュー14を提供する。ビュー方向16は、様々な異なる主要角度方向に画面12から延びる矢印として例証され、異なるビュー14は、矢印(すなわち、ビュー方向16を描写する)の終端における影付き多角形ボックスとして例証され、4つのビュー14および4つのビュー方向16のみが例証され、これらのすべては例であり、限定ではない。異なるビュー14が画面の上にあるものとして
図1に例証されるが、ビュー14は、マルチビュー画像がマルチビューディスプレイ10上に表示されるとき、実際は、画面12上またはその近くに現れるということに留意されたい。画面12の上にビュー14を描写することは、単に例証の簡略性のためであり、特定のビュー14に対応するビュー方向16のそれぞれからマルチビューディスプレイ10を見ることを表すことが意味される。2Dディスプレイが、マルチビューディスプレイ10によって提供されるマルチビュー画像の異なるビュー14とは対照的に、表示された画像の単一のビュー(例えば、ビュー14と同様の1つのビュー)を提供するように概して構成されることを除き、2Dディスプレイは、マルチビューディスプレイ10と実質的に同様であり得る。
【0033】
ビュー方向、または等価に、マルチビューディスプレイのビュー方向に対応する方向を有する光ビームは、概して、本明細書内の定義によると角度成分{θ,φ}により与えられる主要角度方向を有する。角度成分θは、本明細書では、光ビームの「仰角成分」または「仰角」と称される。角度成分φは、光ビームの「方位角成分」または「方位角」と称される。定義上、仰角θは、垂直面(例えば、マルチビューディスプレイ画面の平面に垂直)内の角度である一方、方位角φは、水平面(例えば、マルチビューディスプレイ画面平面に平行)内の角度である。
【0034】
図2は、本明細書に説明される原則に一致する実施形態による、例におけるマルチビューディスプレイのビュー方向(例えば、
図1内のビュー方向16)に対応する特定の主要角度方向を有する光ビーム20の角度成分{θ,φ}のグラフィック表現を例証する。加えて、光ビーム20は、本明細書内では定義上、特定の点から放出されるか、または生じる。すなわち、定義上、光ビーム20は、マルチビューディスプレイ内の起源の特定の点と関連付けられた中心光線を有する。
図2は、起源Oの光ビーム(またはビュー方向)点も例証する。
【0035】
さらに、本明細書で使用される場合、冠詞「a(1つの)」は、特許技術におけるその元々の意味、すなわち、「1つまたは複数」を有することが意図される。例えば、「1つのコンピューティングデバイス」は、1つまたは複数のコンピューティングデバイスを意味し、そのようなものとして、「そのコンピューティングデバイス」は、本明細書では「それらのコンピューティングデバイス」を意味する。また、「上」、「下」、「上方」、「下方」、「上へ」、「下へ」、「前」、「後」、「第1の」、「第2の」、「左」、または「右」への本明細書内でのいかなる言及も、本明細書内では限定であることは意図されない。本明細書では、用語「約」は、値に適用されるとき、概して、その値を生成するために使用される設備の許容差範囲内を意味するか、あるいは別途明示的に指定のない限り、プラスもしくはマイナス10%、またはプラスもしくはマイナス5%、またはプラスもしくはマイナス1%を意味し得る。さらに、用語「実質的に」は、本明細書で使用される場合、大半、またはほぼすべて、またはすべて、または約51%~約100%の範囲内の量を意味する。さらには、本明細書内の例は、単に例証的であることが意図され、限定ではなく議論の目的のために提示される。
【0036】
図3は、本明細書に説明される原則に一致する実施形態による、マルチビュー画像生成および表示を実施し得るシステム100の例のブロック図を示す。システム100は、スマートフォン、タブレット、ラップトップコンピュータ、および同様のものなど、コンピューティングデバイス102を含み得る。
図6および以下の付随する文章は、コンピューティングデバイス102の例を詳細に説明する。コンピューティングデバイス102は、ここで説明されるように、マルチビュー画像生成および表示のコンピュータ実装の方法を実行するように構成され得る。
【0037】
様々な実施形態によると、コンピューティングデバイス102によって実行されるときのマルチビュー画像生成のコンピュータ実装の方法は、場面106のカラー画像104および場面106の奥行きマップ108を受信することを含む。
図3において、場面106は、ネコとして描写されるが、他の好適な場面も使用され得る。カラー画像104は、場面106の外観を表す強度および色データを含み得る。カラー画像データは、任意選択的に、画素など、場所の矩形アレイに対応するように配置され得る。いくつかの例において、強度および色データは、赤色光の強度を表す第1の値、緑色の強度を表す第2の値、および青色の強度を表す第3の値を含み得る。いくつかの例において、単色である場面の場合など、強度および色データは、強度を表す値を含み得る(例えば、強度情報を含むが色情報がない)。奥行きマップ108は、場面106内の場所とコンピューティングデバイス102との間の相対距離を説明し得る。場面106のネコの例の場合、場面106に対応する奥行きマップ108は、ネコの尾の先端がネコの右後ろ足よりもコンピューティングデバイス102から遠くに離れ得ることを指定し得る。いくつかの例において、カラー画像104および奥行きマップ108は、有線またはワイヤレス接続によってサーバまたはストレージデバイスから受信され得る。いくつかの例において、カラー画像104および奥行きマップ108は、コンピューティングデバイス102と共に含まれるカメラおよび奥行きマップ生成装置によって生成され得る。いくつかの例において、奥行きマップ生成装置は、コンピューティングデバイス102から離れる方への様々な伝搬方向についてコンピューティングデバイス102からの距離をマッピングするために、異なる方向における飛行時間反射を利用し得る。
【0038】
様々な実施形態において、コンピューティングデバイス102によって実行されるときのマルチビュー画像生成のコンピュータ実装の方法は、カラー画像104および奥行きマップ108から場面106のマルチビュー画像のビュー画像110A、110B、110C、110D(まとめてビュー画像110と称される)を合成することをさらに含む。ビュー画像110は、異なるビュー方向から場面106を表し得る。場面106のネコの例の場合、ビュー画像110は、ネコがビュー画像110に対応するビュー方向から見た場合にどのように見えるかを表し得る。各ビュー画像110は、画素位置、および画素位置におけるそれぞれの色値を含み得る。
図3の例では、4つのビュー画像110が存在する。他の例では、4つよりも多いまたは少ないビュー画像110が使用され得る。
図4および以下の付随する文章は、ビュー画像110をどのように合成するかに関するさらなる詳細を提供する。
【0039】
様々な実施形態による、コンピューティングデバイス102によって実行されるときのマルチビュー画像生成のコンピュータ実装の方法は、マルチビュー画像のビュー画像110をコンピューティングデバイス102のマルチビューディスプレイ112上にレンダリングすることをさらに含む。ビュー画像110A、110B、110C、および110Dは、それぞれ、それぞれのビュー方向114A、114B、114C、および114Dから見ている。例えば、コンピューティングデバイス102は、スマートフォンとして構成され得、スマートフォンのディスプレイは、マルチビューディスプレイ112として構成され得る。いくつかの例において、マルチビュー画像は、コンピューティングデバイス102が、ビュー画像110を合成し、1秒あたり60フレーム、1秒あたり30フレーム、またはその他など好適な映像フレームレートでビュー画像110をレンダリングすることができるように、映像内にフレームとして含まれ得る。
【0040】
本明細書ではシェーダと称されるものなど、コンピュータ実装の命令のセットが、マルチビュー画像のビュー画像を合成し得る。シェーダの詳細な説明は以下に続くが、シェーダの概要はここに続く。シェーダは、画素位置から場面へ向けて、ビュー画像のビュー方向に対応する方向に光線をキャスティングし得る。シェーダは、光線が奥行きマップによって指定される仮想表面に交差する光線交差位置を決定するように構成される。シェーダは、光線交差位置におけるカラー画像の色に対応するように画素位置におけるビュー画像の色値を設定するようにさらに構成される。
【0041】
いくつかの例において、光線交差位置を決定することは、簡便性のために第1~第5の動作として示される以下の動作を含み得る。第1の動作において、シェーダは、画素位置と指定の平面との間の光線に沿った順次の暫定的な位置を、仮想表面が画素位置と指定の平面との間にあるように決定し得る。第2の動作において、シェーダは、光線に沿った暫定的な位置のうちの特定の暫定的な位置を識別し得る。第3の動作において、シェーダは、識別した特定の暫定的な位置が画素位置と指定の平面との間にあることを繰り返し決定し得、シェーダは、識別した特定の暫定的な位置を光線に沿った次の暫定的な位置へ前進させ得る。第4の動作において、シェーダは、指定の平面が画素位置と識別した特定の暫定的な位置との間にあることを決定し得る。第5の動作において、シェーダは、光線交差位置を、包括的に、識別した特定の暫定的な位置と、隣接する以前に識別した暫定的な位置との間の位置に対応するように設定し得る。
【0042】
上の例のうちのいくつかにおいて、光線交差位置を決定することは、簡便性のために第6~第10の動作として示される以下の動作を含み得る。第6から第10の動作は、第1~第5の動作を効果的に繰り返し得るが、異なる(例えば、より細かい)分解能であり得る。第6の動作において、シェーダは、識別した暫定的な位置と、隣接する以前に識別した暫定的な位置との間の光線に沿った順次の第2の暫定的な位置を決定し得る。第7の動作において、シェーダは、光線に沿った第2の暫定的な位置のうちの1つの第2の暫定的な位置を識別し得る。第8の動作において、シェーダは、識別した第2の暫定的な位置が画素位置と指定の平面との間にあることを繰り返し決定し、識別した第2の暫定的な位置を光線に沿った次の第2の暫定的な位置へ前進させ得る。第9の動作において、シェーダは、指定の平面が画素位置と識別した第2の暫定的な位置との間にあることを決定し得る。第10の動作において、シェーダは、光線交差位置を、包括的に、識別した第2の暫定的な位置と、隣接する以前に識別した第2の暫定的な位置との間の位置に対応するように設定し得る。
【0043】
いくつかの例において、暫定的な位置は、光線に沿って等しく離間され得る。いくつかの例において、ビュー画像は、ビュー画像の上および下縁に平行である水平方向、ビュー画像の平面内にあり、水平方向に対して直交である垂直方向、ならびに水平および垂直方向に対して直交である奥行きを規定し得る。いくつかの例において、暫定的な位置は、隣接する暫定的な位置の間の間隔の水平成分が指定の値に対応するように離間され得る。いくつかの例において、指定の値は、ビュー画像内の隣接する画素の間の水平間隔に対応し得る。
【0044】
いくつかの例において、異なるビュー方向は、ビュー画像の上および下縁を含む水平面内にあり得る。いくつかの例において、第1~第5の動作および第1~第10の動作のうちの一方または両方が、実行可能な結果をもたらさない場合がある。光線キャスティング単独では画素位置のための好適な色値を獲得できないことがあるため、シェーダは、好適な色値を獲得するためにさらなる動作を実施し得る。これらのさらなる動作は、簡便性のために第11の動作~第15の動作として示され、以下に詳述される。
【0045】
第11の動作において、シェーダは、画素位置から場面を表す奥行きマップへ向けて、ビュー画像のビュー方向に対応する方向に光線をキャスティングし得る。第12の動作において、シェーダは、光線が奥行きマップによって指定される仮想表面に交差しないことを決定し得る。第13の動作において、シェーダは、取得した色情報に対応するように画素位置におけるビュー画像の色値を設定し得る。第14の動作において、シェーダは、光線が、しきい値距離を超える距離だけ画素位置から離れる方へ伝搬したことを決定することによって、光線が奥行きマップによって指定される仮想表面に交差しないことを決定し得る。
【0046】
いくつかの例において、ビュー画像は、映像信号の時系列画像に対応し得る。いくつかの例において、色情報は、映像信号の少なくとも1つの時間隣接した映像フレームの画素位置から取得され得る。以下の説明は、シェーダを含むことまたは使用することなど、ビュー画像を生成およびレンダリングし得るコンピュータ実装の動作の詳細に関する。コンピュータ実装の動作の使途は、4つ以上のビューなど、複数のビューを伴う画像を作成することである。複数のビューは、限定されるものではないが、2×2パターン、または1×4パターン、および3×3パターンなどの様々なパターンでタイルとして配置され得る。コンピュータ実装の動作は、カラー画像および付随する奥行きマップから複数のビューを合成し得る。奥行きマップは、輝度または強度がビューアまたはカメラへの近接性を表し得るグレースケール画像として形成され得る。
【0047】
コンピュータ実装の動作は、人間が一対のビューを見るとき、人間がステレオ効果を知覚し得るように、複数のビューを合成し得る。人間が典型的には、水平に離れた眼を有することから、コンピュータ実装の動作は、水平に離れた異なる場所から見ることが可能な複数のビューを合成し得る。コンピュータ実装の動作は、形状の縁または画像の縁におけるアーチファクトを低減または除去し得る。そのようなアーチファクトは、ステレオ効果の邪魔をし得る。
【0048】
合成した画像がビデオ画像に含まれることから、コンピュータ実装の動作は、複数のビューを比較的素早く合成し得る。さらに、コンピュータ実装の動作は、OpenGLレンダリングパイプラインなどのレンダリングパイプラインと互換性があるように複数のビューを合成し得る。さらに、コンピュータ実装の動作は、モバイルデバイスに負荷をかけ得るか、モバイルデバイスに温度スロットルを引き起こし得るか、またはその両方である重い計算を実施することなく、複数のビューを合成し得る。
【0049】
本明細書に論じられるコンピュータ実装の動作は、「フォワードマッピング」と呼ばれる別の手法、または平行投影カメラおよびカメラのマトリクスに対する水平スキューを用いたポイントクラウドレンダリングよりも効率的かつロバストであり得る。フォワードマッピングでは、色付きの点の二次元グリッドの色を対応する奥行き値に従って左および右の一方または両方へ動かすことによって各ビューを作成する。本明細書に論じられるコンピュータ実装の動作は、フォワードマッピングによって生成されるビューの左右の縁の一方または両方において、穴、分離した点、および空き領域を回避し得る。さらに、本明細書に論じられるコンピュータ実装の動作は、ディスプレイデバイス上に存在するよりも多くの点を割り当てることを必要としない。
【0050】
本明細書に論じられるコンピュータ実装の動作は、点の色値が点の奥行きに従って何らかの近傍の点の色値と置き換えられる「バックワードマッピング」と呼ばれる別の手法よりも効率的かつロバストであり得る。バックワードマッピングは、奥行きの幻覚を作成し得るが、形状の縁を正確に描写しない。例えば、形状の縁の前景部分が、予期せず背景で覆われ得る。
【0051】
本明細書に論じられるコンピュータ実装の動作は、三次元メッシュを使用する同等の手法よりも効率的かつロバストであり得る。そのようなメッシュは、計算的に過酷であり、したがって、複数のビューのリアルタイム生成には好適ではない場合がある。
【0052】
本明細書に論じられるコンピュータ実装の動作は、レイキャスティングの修正形態を使用し得る。レイキャスティングは、3D空間内で何らかの中心点からバーチャル画面の各点を通って光線をキャスティングし得、画面上の対応する点の色を設定するために表面におけるヒット点を決定し得る。ビュー合成のため、コンピュータ実装の動作は、いかなる追加のレイトレーシングもなしに、ヒット点の色を決定し得る。さらに、テクスチャは、メモリ内にボクセルデータを配置することなしに表面を決定し得る。レイキャスティングは、正確性、および透視図をレンダリングする能力を提供し得る。本明細書に論じられる修正なしでは、レイキャスティングは、特に高品質の画像の場合、計算集約的であり得る。しかしながらそれは、特に高品質の画像の場合、電力を消費する動作である。本明細書に論じられる修正なしでは、レイキャスティングは、光線経路を数百ものステップへと分割し得、ステップごとにチェックを伴う。本明細書に論じられる修正のうちの1つまたは複数を使用すると、レイキャスティングは、いわゆる安全地帯(例えば、ジオメトリを有さない地帯)をマークして光線進行を加速させるための構造を使用し得る。
【0053】
いくつかの例において、本明細書に論じられるコンピュータ実装の動作は、比較的単純なフラグメント(画素)シェーダによる単一の全画面クワッドレンダリングを用いてレイキャスティングを実施し得る。いくつかの例において、本明細書に論じられるコンピュータ実装の動作は、リアルタイム性能を達成し得、映像-マルチビューワークフローのレンダリングチェーンへと投入され得る。
【0054】
本明細書に論じられるコンピュータ実装の動作は、フラグメントシェーダを使用し得る。フラグメントシェーダは、単一画素のための色を決定し、決定した色情報を出力バッファに記憶するプログラムであり得る。フラグメントシェーダは、すべての出力画素の色を決定するために、出力バッファ内の対応するエントリを用いて、画素ごとに並行して複数回実行され得る。
【0055】
本明細書に論じられるコンピュータ実装の動作を実施し得る疑似コードの例は、以下の通りである。
x, y = output_coord
view_id = pick one from [-1.5, -0.5, +0.5, +1.5]
direction = if (view_id < 0) -1 else +1
total_steps = abs (view_id * gain_px)
x = x - convergence * view_id * gain_px
z = 1
for _ in total_steps:
if (read_depth (x, y) <= z) return read_color (x, y)
x += direction
z - = 1.0 / total_steps
return read_color (x, y)
【0056】
図4は、本明細書に説明される原則に一致する実施形態による、本明細書に論じられるコンピュータ実装の動作の簡略化した例のグラフィック表現400を示す。
図4の簡略化した例は、光線が単一平面内の伝搬角度(ビュー方向に対応する)で伝搬する一次元の例を示すということを理解されたい。実際には、奥行きマップは、二次元に延長し得、伝搬方向は、三次元を有し得る(例えば、2つの次元および奥行き)などである。
【0057】
図4の簡略化した例では、ビューアから離れる方への奥行きは、一番下の横線402からの高さとして表される。一番下の横線402は、奥行きマップの前景境界を表す。出力バッファ404は、一番下の横線402の下に示される。一番上の横線406は、後方、背景平面、または奥行きマップの境界を表す。
【0058】
図4の簡略化した例では、奥行きマップは、一連の画素をまたいで延びるものとして示される。奥行きマップは、水平画素あたり1つの値で、一連の高さ値として示される。
図4の簡略化した例では、奥行きマップは、包括的に0~1の11個の可能な値のうちの1つを有するように量子化される。実際には、実際の奥行きマップ値は、前景境界と背景境界との間に比較的大きい数の可能な値(256など)を有し得る。
図4の特定の例では、ビュー画像の最も左の縁から最も右の縁へ、奥行きは、0.1から0.4へと増加し、次いで0.0へと減少し、次いで0.8へと増加し、次いでビュー画像の最も右の縁で0.6へと減少する。
【0059】
図4の簡略化した例では、座標xは、水平方向に沿う。座標xは、出力バッファ画素を表し得る。シェーダは、画素ごとに1回、任意選択的に他の画素に対応する他のシェーダ実行と並行して、実行され得る。シェーダは、シェーダの出力(例えば、色値)を座標xへ書き込み得る。いくつかの例において、シェーダ出力(色値)は、シェーダが実行される座標xに書き込まれる。他の例では、座標xは、収束値によって決定される初期シフトによって任意選択的に(正または負)シフトされる変数であり得る。
【0060】
図4の簡略化した例では、変数zは、奥行き値に相対してグリッド上に置かれる各反復に対する変数である。
図4の簡略化した例では、6つの画素に対応して、合計6つのステップ408が存在する。6という値は、ゲインにより乗算されるビューシフトから計算され得る。変数zの初期値は、1.0である。座標xの初期値は、7である(例えば、セル番号7、セルは、ゼロから始まって順次に番号付けされる)。
【0061】
反復番号1で、座標x=7において、シェーダは(奥行きマップの)奥行きを0.0であると読み出す。シェーダは、zの値(1.0の初期値)を座標x=7における奥行き(値0.0)と比較する。z値が奥行き以上であるため、シェーダは、ステップの合計数の逆数に等しい量だけz値を減少させる。合計6ステップでは、zの減少された値は、0.833になる。座標xは、1画素だけ増分されるため、xは8になる。
【0062】
反復番号2で、座標x=8において、シェーダは、(奥行きマップの)奥行きを0.0であると読み出す。シェーダは、zの値(0.833)を座標x=8における奥行き(値0.0)と比較する。z値が奥行き以上であるため、シェーダは、ステップの合計数の逆数に等しい量だけz値を減少させる。合計6ステップでは、zの減少された値は、0.667になる。座標xは、1画素だけ増分されるため、xは9になる。
【0063】
反復番号3で、座標x=9において、シェーダは、(奥行きマップの)奥行きを0.3であると読み出す。シェーダは、zの値(0.667)を座標x=9における奥行き(値0.3)と比較する。z値が奥行き以上であるため、シェーダは、ステップの合計数の逆数に等しい量だけz値を減少させる。合計6ステップでは、zの減少された値は、0.5になる。座標xは、1画素だけ増分されるため、xは10になる。
【0064】
反復番号4で、座標x=10において、シェーダは、(奥行きマップの)奥行きを0.4であると読み出す。シェーダは、zの値(0.5)を座標x=10における奥行き(値0.4)と比較する。z値が奥行き以上であるため、シェーダは、ステップの合計数の逆数に等しい量だけz値を減少させる。合計6ステップでは、zの減少された値は、0.333になる。座標xは、1画素だけ増分されるため、xは11になる。
【0065】
反復番号5で、座標x=11において、シェーダは、(奥行きマップの)奥行きを0.5であると読み出す。シェーダは、zの値(0.333)を座標x=11における奥行き(値0.5)と比較する。z値が奥行き以下であるため、シェーダは、x=11のx座標から色を読み出す。シェーダは、x=11からの色値を出力バッファのセル番号7に割り当てる。言い換えると、先行する動作が、ビュー画像の画素(セル番号7に位置する)のための色値(x=11からなど)を決定した。
図4の簡略化した例には反復番号6は存在しない。
【0066】
シェーダは、任意選択的に、隣接する読み出した奥行き値を補間することによって追加の比較を実施し得る。これらの追加の比較は、x座標内の隣接する画素の間にある場所で発生し得る。シェーダは、入力として以下の数量:色テクスチャ、奥行きテクスチャ、出力画素のxおよびy座標、ゲイン(単一スカラー値)、ならびに収束(別の単一スカラー値)を使用し得る。
【0067】
本明細書に論じられるコンピュータ実装の動作は、単一の出力バッファ内に複数のビューを生成し得る。例えば、コンピュータ実装の動作が4つのビュー画像を生成する構成では、出力バッファは、例えば横線および縦線により、2×2タイルに対応する4つの領域へと分割され得る。特定の例において、ビュー0は、左上タイルに割り当てられ、ビュー1は、右上タイルに割り当てられ、ビュー2は、左下タイルに割り当てられ、ビュー3は、右下タイルに割り当てられる。本明細書に論じられるコンピュータ実装の動作は、横一列に配置される異なるビュー角度についてビュー0から3まで提示し得る。いくつかの例において、本明細書に論じられるコンピュータ実装の動作は、ユーザにとって快適であり得る指定の値までの、ビューの幅に対する元のビュー画像の各特徴の最大オフセット距離を設定し得る。例えば、指定の値は、包括的に10画素~20画素であり得る。いくつかの例において、周辺部ビュー(ビュー0および3など)は、最大オフセットを受信し得、xおよびy座標は、選択したビューの四分円をカバーするようにラップし得る。
【0068】
ビュー識別子、またはビューid(0、1、2、または3)が分かっているとき、本明細書に論じられるコンピュータ実装の動作は、アレイ[-1.5,-0.5,+0.5,+1.5]からなど、既定のシフト値のアレイから、ビューシフト値を選び得る。ユーザまたは別のコンピュータ実装のルーチンが収束値を提供し得る。収束値は、画素シフトをゼロへ低減することによって奥行き平面を適所にアンカリングするのを助け得る。例えば、アニメーションなど、ビュー画像が順次に示されることになる場合、0の収束値は、前景が左から右へ移動し得るように、背景が適所に固定されているように見せ得る。同様に、1の収束値は、背景が左から右へ移動し得る一方で、前景が適所に固定されているように見せ得る。0.5の収束値は、背景および前景が反対方向に移動するように、中央平面を適所に固定し得る。背景と前景との間にない奥行きにおいて平面を固定し得る他の値も使用され得る。
【0069】
ユーザまたは別のコンピュータ実装のルーチンがゲイン値を提供し得る。ゲイン値は、上に説明されるように、背景と前景との相対運動を増加または減少させ得る。数の上では、ゲインの実装の例は、画素の単位で、view_shift_px=shift_value_array[view_id]*gain_pxであり得る。
【0070】
ゲイン値は、正または負であり得る。ゲインの絶対値は、いくつの奥行きをシェーダがその反復を実施するために使用し得るかを決定し得る。例えば、シェーダは、以下の数の合計ステップを使用し得る:total_steps=abs(view_shift_px)。収束を適用するために、シェーダは、x=x-convergence*view_shift_pxに従ってx座標を修正し得る。シェーダは、変数zを1.0の値へ初期化し得る。シェーダは、変数Nxを、ビュー四分円内にすでにラップされ得るx座標の値へ初期化し得る。ステップごとに、シェーダは、Nx,yを使用して奥行きテクスチャから奥行き値を読み出し得る。ステップごとに、シェーダは、変数Nxを1つの(view_shift_pxの符号に応じて)値だけ増加または減少させ得る。ステップごとに、シェーダは、z変数を、total_stepsによって分割される1.0だけ減少させ得る。z変数が読み出された奥行き値以下になるとき、シェーダは、反復を中断し、Nx,yにおいて色テクスチャから読み出される色値を返す。
【0071】
この様式では、シェーダは、出力バッファ内にフォワードマッピングされたビューを生成し得る。フォワードマッピングされたビューは、前景を覆う背景という問題を欠くか、穴もしくは分離した画素を欠くか、または空の側面を欠くことがある。シェーダは、結果として生じるビューにおいて空ではないパラメータ側面をテクスチャがミラーリングすることを可能にし得るため、シェーダは、テクスチャの境界の外へサンプリングし得、またビューの側面における問題を解決し得る。
【0072】
奥行きテクスチャはゼロ以外の(例えば、フラットではない)値を含み得るため、シェーダは、total_stepsの値よりも早期の反復を中断し得る。さらに、total_stepsの値が快適な限界(包括的に10画素~20画素など)によって指定され得るため、シェーダは、画素ごとに比較的少ない反復を実施し得る。シェーダは、画素ごとに比較的少ない反復を実施し得るため、シェーダは、ビュー画像内の画素のための色値を獲得するために比較的少数の計算を使用し得、これにより、リアルタイム性能に必要とされる計算負荷を低減し得る。一般に、ビューの数を増加させることは、出力バッファのサイズを増加させ得、またリアルタイム性能に必要とされる計算負荷を増加させ得る。
【0073】
本明細書に論じられるコンピュータ実装の動作は、奥行き値の比較的素早い変化を伴う領域内など、物体の縁において生じるアーチファクトを低減または除去し得る。例えば、シェーダは、追加の中間反復を実施し得、ステップの数は、4など、指定されたオーバーサンプリング因子だけ増加される。例えば、反復は、線形補間のための以前に読み出された奥行き値を使用して、4つ目のステップごとに奥行きを抽出し得る。そのような中間反復は、奥行きテクスチャからの追加の読み出しを必要とすることなく、より高品質のビュー画像を生成し得る。
【0074】
本明細書に論じられるコンピュータ実装の動作は、任意選択的に、出力画素ごとにビューidを選択し得、これは、上で論じられる四分円に直接対応する必要はない。この様式でビューidを選択することは、画素をマルチビューディスプレイデバイスと互換性のあるパターンへと再配置することなど、バッファのダウンストリーム処理を除去することを助け得る。例えば、ディスプレイをカバーするレンチキュラレンズアレイは、各レンズの下の異なるビューの薄片のセットを受信し得る。比較read_depth(x,y)<=zを、しきい値を用いたチェックなど、より高度な差分チェックへ変更することによって、シェーダは、インペインティングが利用可能であり、伸張された縁よりも好ましい場合などには、さらなるインペインティングのために穴をそのままにし得る。
【0075】
一般に、本明細書に論じられるコンピュータ実装の動作は、比較的低いゲイン値および比較的高いコントラスト値を使用して改善された性能を達成し得る。一般に、本明細書に論じられるコンピュータ実装の動作は、正規化されるか、または少なくとも暗くされない奥行きマップのための改善された性能を達成し得る。一般に、本明細書に論じられるコンピュータ実装の動作は、シフティングが、横または縦など、一方向にのみ提供される場合、改善された性能を達成し得る。
【0076】
本明細書に論じられるコンピュータ実装の動作は、リアルタイムで動作し得る。本明細書に論じられるコンピュータ実装の動作は、OpenGLベースのレンダリングパイプライン(シェーダ)の一部として動作し得る。本明細書に論じられるコンピュータ実装の動作は、互いに対して水平にシフトされる多くの比較的高品質のフォワードマッピングされたビューを生成し得る。本明細書に論じられるコンピュータ実装の動作は、カラー画像および対応する奥行きマップの入力を使用し得る。本明細書に論じられるコンピュータ実装の動作は、ゲインパラメータおよび収束パラメータを利用し得る。本明細書に論じられるコンピュータ実装の動作は、レイキャスティングの形態に関し得る。本明細書に論じられるコンピュータ実装の動作は、フラグメント(画素)シェーダを用いてフォワードマッピング形式で異なるビューを合成すること(例えば、立体視用途でビューを使用する意図で)に関し得る。本明細書に論じられるコンピュータ実装の動作は、画像品質と計算速度とをうまく両立させ得る。本明細書に論じられるコンピュータ実装の動作は、単一のシェーダパスを使用して、リアルタイムで、事前処理なしに、および3Dメッシュを割り当てることなく、カラー画像および奥行きマップから任意の数の正射投影的に水平スキューしたビューを作成し得る。本明細書に論じられるコンピュータ実装の動作は、モバイルデバイス上で実行し得る。本明細書に論じられるコンピュータ実装の動作は、比較的少ない反復および比較的少ないテクスチャ読み出しを使用して、比較的軽い計算負荷で動作し得る。本明細書に論じられるコンピュータ実装の動作は、穴または分離した画素のないビュー画像を生成し得る。本明細書に論じられるコンピュータ実装の動作は、レイキャスティングによる典型的なレンダリングよりも単純な内部ワークフローを有し得る。本明細書に論じられるコンピュータ実装の動作は、個々の点移動に基づいた単純なフォワードマッピングよりも優れた性能を有し得る。
【0077】
図5は、本明細書に説明される原則に一致する実施形態による、マルチビュー画像生成および表示を実施するための方法500の例のフローチャートを示す。方法500は、システム100、またはマルチビュー画像生成および表示を実施し得る任意の他の好適なシステム上で実行され得る。
【0078】
動作502において、システムは、場面のカラー画像および場面の奥行きマップを受信し得る。動作504において、システムは、カラー画像および奥行きマップから場面のマルチビュー画像のビュー画像を合成し得る。ビュー画像は、異なるビュー方向からの場面を表し得る。各ビュー画像は、画素位置、および画素位置におけるそれぞれの色値を含み得る。動作506において、システムは、マルチビュー画像のビュー画像をマルチビューディスプレイ上にレンダリングし得る。
【0079】
マルチビュー画像のビュー画像を合成することは、ビュー画像内の画素位置について以下の動作を含み得る。システムは、画素位置から場面へ向けて、ビュー画像のビュー方向に対応する方向に光線をキャスティングし得る。システムは、光線が奥行きマップによって指定される仮想表面に交差する光線交差位置を決定し得る。システムは、光線交差位置におけるカラー画像の色に対応するように画素位置におけるビュー画像の色値を設定し得る。
【0080】
いくつかの例において、画素位置と指定の平面との間の光線に沿った順次の暫定的な位置を、仮想表面が画素位置と指定の平面との間にあるように決定することは、以下の動作を含み得る。システムは、光線に沿った暫定的な位置のうちの1つの暫定的な位置を識別し得る。システムは、識別した暫定的な位置が画素位置と指定の平面との間にあることを繰り返し決定し、識別した暫定的な位置を光線に沿った次の暫定的な位置へ前進させ得る。システムは、指定の平面が画素位置と識別した暫定的な位置との間にあることを決定し得る。システムは、光線交差位置を、包括的に、識別した暫定的な位置と、隣接する以前に識別した暫定的な位置との間の位置に対応するように設定し得る。
【0081】
いくつかの例において、光線交差位置を決定することは、以下の動作をさらに含み得る。システムは、識別した暫定的な位置と隣接する以前に識別した暫定的な位置との間の光線に沿った順次の第2の暫定的な位置を決定し得る。システムは、光線に沿った第2の暫定的な位置のうちの1つの第2の暫定的な位置を識別し得る。システムは、識別した第2の暫定的な位置が画素位置と指定の平面との間にあることを繰り返し決定し、識別した第2の暫定的な位置を光線に沿った次の第2の暫定的な位置へ前進させ得る。システムは、指定の平面が画素位置と識別した第2の暫定的な位置との間にあることを決定し得る。システムは、光線交差位置を、包括的に、識別した第2の暫定的な位置と、隣接する以前に識別した第2の暫定的な位置との間の位置に対応するように設定し得る。
【0082】
いくつかの例において、暫定的な位置は、光線に沿って等しく離間され得る。いくつかの例において、ビュー画像は、ビュー画像の上および下縁に平行である水平方向、ビュー画像の平面内にあり、水平方向に対して直交である垂直方向、ならびに水平および垂直方向に対して直交である奥行きを規定し得る。いくつかの例において、暫定的な位置は、隣接する暫定的な位置の間の間隔の水平成分がビュー画像内の隣接する画素の間の水平間隔に対応するように離間され得る。
【0083】
図6は、本明細書に説明される原則に一致する実施形態による、マルチビュー画像生成および表示を実施し得るコンピューティングデバイスの例を描写する概略ブロック図である。コンピューティングデバイス1000は、コンピューティングデバイス1000のユーザのために様々な計算動作を実行する構成要素のシステムを含み得る。コンピューティングデバイス1000は、ラップトップ、タブレット、スマートフォン、タッチ画面システム、インテリジェントディスプレイシステム、他のクライアントデバイス、サーバ、または他のコンピューティングデバイスであり得る。コンピューティングデバイス1000は、例えば、プロセッサ1003、メモリ1006、入力/出力(I/O)構成要素1009、ディスプレイ1012、およびおそらくは他の構成要素など、様々な構成要素を含み得る。これらの構成要素は、コンピューティングデバイス1000の構成要素が互いと通信することを可能にするために、ローカルインターフェースとしての役割を果たすバス1015に結合し得る。コンピューティングデバイス1000の構成要素は、コンピューティングデバイス1000内に含まれるように示されるが、構成要素の少なくともいくつかは、外部接続を通じてコンピューティングデバイス1000に結合し得るということを理解されたい。例えば、構成要素は、外部ポート、ソケット、プラグ、コネクタ、もしくはワイヤレスリンクを介して、コンピューティングデバイス1000内へ外部からつながり得るか、または別途これと接続し得る。
【0084】
プロセッサ1003は、計算処理動作またはそれらの任意の組み合わせを実施する、中央処理装置(CPU)、グラフィック処理装置(GPU)、任意の他の集積回路などのプロセッサ回路を含み得る。プロセッサ1003は、1つまたは複数の処理コアを含み得る。プロセッサ1003は、命令を実行する回路を備える。命令は、例えば、命令に具現化される計算機能を実行するためにプロセッサ1003によって受信および実行される、コンピュータコード、プログラム、論理、または他のマシン可読命令を含む。プロセッサ1003は、データに対して動作するため、またはデータを生成するために命令を実行し得る。例えば、プロセッサ1003は、入力データ(例えば、画像)を受信し、この入力データを命令セットに従って処理し、出力データ(例えば、処理した画像)を生成し得る。別の例として、プロセッサ1003は、命令を受信し、後続の実行のために新規の命令を生成し得る。プロセッサ1003は、アプリケーションによって生成される映像、画像、またはフレームをレンダリングするためにグラフィックスパイプライン(例えば、
図3に概略的に示されるグラフィックスパイプライン)を実装するためのハードウェアを備え得る。例えば、プロセッサ1003は、1つまたは複数のGPUコア、ベクトルプロセッサ、スケーラプロセス、デコーダ、またはハードウェアアクセラレータを備え得る。
【0085】
メモリ1006は、1つまたは複数のメモリ構成要素を含み得る。メモリ1006は、揮発性および不揮発性メモリのうちのいずれかまたは両方を含むものとして本明細書では定義される。揮発性メモリ構成要素は、電力の損失の際に情報を保持しないものである。揮発性メモリは、例えば、ランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、磁気ランダムアクセスメモリ(MRAM)、または他の揮発性メモリ構造を含み得る。システムメモリ(例えば、メインメモリ、キャッシュなど)は、揮発性メモリを使用して実装され得る。システムメモリは、プロセッサ1003を支援するために素早い読み出しおよび書き込みアクセスのための、データまたは命令を一時的に記憶し得る高速メモリを指す。画像(例えば、静止画像、映像フレーム)は、後続のアクセスのためにメモリ1006に記憶またはロードされ得る。
【0086】
不揮発性メモリ構成要素は、電力の損失の際に情報を保持するものである。不揮発性メモリは、リードオンリメモリ(ROM)、ハードディスクドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカードリーダによりアクセスされるメモリカード、関連付けられたフロッピディスクドライブによりアクセスされるフロッピディスク、光学ディスクドライブによりアクセスされる光学ディスク、適切なテープドライブによりアクセスされる磁気テープを含む。ROMは、例えば、プログラマブルリードオンリメモリ(PROM)、消去可能なプログラマブルリードオンリメモリ(EPROM)、電気的に消去可能なプログラマブルリードオンリメモリ(EEPROM)、または他の同様のメモリデバイスを含み得る。ストレージメモリは、データおよび命令の長期保持を提供するために不揮発性メモリを使用して実装され得る。様々な実施形態によると、マルチビュー動画キャッシュは、揮発性、不揮発性、または揮発性および不揮発性メモリの組み合わせを使用して実装され得る。
【0087】
メモリ1006は、命令ならびにデータを記憶するために使用される揮発性および不揮発性メモリの組み合わせを指し得る。例えば、データおよび命令は、不揮発性メモリに記憶され、プロセッサ1003による処理のために揮発性メモリへとロードされ得る。命令の実行は、例えば、不揮発性メモリから揮発性メモリへロードされ、次いでプロセッサ1003によって実行され得る形式にあるマシンコードへと翻訳されるコンパイルプログラム、プロセッサ1003による実行のために揮発性メモリへとロードされることが可能であるオブジェクトコードなどの好適な形式に変換されるソースコード、または揮発性メモリ内に命令を生成するために別の実行可能なプログラムによって解釈され、プロセッサ1003によって実行されるソースコードなどを含み得る。命令は、例えば、RAM、ROM、システムメモリ、ストレージ、またはそれらの任意の組み合わせを含む、メモリ1006の任意の部分または構成要素に記憶またはロードされ得る。
【0088】
メモリ1006は、コンピューティングデバイス1000の他の構成要素とは別個であるとして示されるが、メモリ1006は、1つまたは複数の構成要素に、少なくとも部分的に、埋め込まれるか、または別途統合され得るということを理解されたい。例えば、プロセッサ1003は、処理動作を実施するためにオンボードメモリレジスタまたはキャッシュを含み得る。
【0089】
I/O構成要素1009は、例えば、タッチ画面、スピーカ、マイク、ボタン、スイッチ、ダイアル、カメラ、センサ、加速度計、またはユーザ入力を受信するか、もしくはユーザに向けられる出力を生成する他の構成要素を含む。I/O構成要素1009は、ユーザ入力を受信し、それを、メモリ1006への記憶またはプロセッサ1003による処理のためにデータへと変換し得る。I/O構成要素1009は、メモリ1006およびプロセッサ1003によって出力されるデータを受信し、それらを、ユーザによって知覚される形式(例えば、音、触覚応答、視覚情報など)へと変換し得る。
【0090】
I/O構成要素1009の1つのタイプは、ディスプレイ1012である。ディスプレイ1012は、マルチビューディスプレイ(例えば、マルチビューディスプレイ112)、2Dディスプレイと組み合わせたマルチビューディスプレイ、またはグラフィックコンテンツを提示する任意の他のディスプレイを含み得る。I/O構成要素1009としての役割を果たす静電容量式タッチ画面層は、ユーザが視覚出力を知覚するのと同時に入力を提供することを可能にするためにディスプレイ内に層化され得る。プロセッサ1003は、ディスプレイ1012上への提示のために画像またはフレームとしてフォーマットされるデータを生成し得る。プロセッサ1003は、ユーザのためにディスプレイ1012上に画像またはフレームをレンダリングするための命令を実行し得る。カメラI/O構成要素1009は、マルチビュー映像へと変換され得る映像をキャプチャする映像キャプチャプロセスのために使用され得る。
【0091】
バス1015は、プロセッサ1003、メモリ1006、I/O構成要素1009、ディスプレイ1012、およびコンピューティングデバイス1000の任意の他の構成要素の間の命令およびデータの通信を促進する。バス1015は、アドレス変換装置、アドレスデコーダ、ファブリック、導電性トレース、導電性ワイヤ、ポート、プラグ、ソケット、ならびにデータおよび命令の通信を可能にするための他のコネクタを含み得る。
【0092】
メモリ1006内の命令は、ソフトウェアスタックの少なくとも一部分を実装する様式で様々な形態で具現化され得る。例えば、命令は、オペレーティングシステム1031、アプリケーション1034、デバイスドライバ(例えば、ディスプレイドライバ1037)、ファームウェア(例えば、ディスプレイファームウェア1040)、または他のソフトウェア構成要素として具現化され得る。オペレーティングシステム1031は、タスクをスケジュールすること、I/O構成要素1009を制御すること、ハードウェアリソースへのアクセスを提供すること、電力を管理すること、およびアプリケーション1034をサポートすることなど、コンピューティングデバイス1000の基本機能をサポートするソフトウェアプラットフォームである。
【0093】
アプリケーション1034は、オペレーティングシステム1031上で実行し、オペレーティングシステム1031を介してコンピューティングデバイス1000のハードウェアリソースへのアクセスを獲得し得る。これに関して、アプリケーション1034の実行は、少なくとも部分的にオペレーティングシステム1031によって制御される。アプリケーション1034は、高レベル機能、サービス、および他の機能性をユーザに提供するユーザレベルソフトウェアプログラムであり得る。いくつかの実施形態において、アプリケーション1034は、ダウンロード可能またはコンピューティングデバイス1000上のユーザが別途アクセス可能な専用「アプリ」であり得る。ユーザは、オペレーティングシステム1031によって提供されるユーザインターフェースを介してアプリケーション1034を起動し得る。アプリケーション1034は、デベロッパによって開発され得、様々なソースコードフォーマットで定義され得る。アプリケーション1034は、例えば、C、C++、C#、Objective C、Java(登録商標)、Swift、JavaScript(登録商標)、Perl、PHP、Visual Basic(登録商標)、Python(登録商標)、Ruby、Go、または他のプログラミング言語など、いくつかのプログラミングまたはスクリプト言語を使用して開発され得る。アプリケーション1034は、コンパイラによってオブジェクトコードへとコンパイルされ得るか、またはプロセッサ1003による実行のためにインタープリタによって解釈され得る。本明細書に論じられる様々な実施形態は、アプリケーション1034の少なくとも一部として実装され得る。
【0094】
例えば、ディスプレイドライバ1037などのデバイスドライバは、オペレーティングシステム1031が様々なI/O構成要素1009と通信することを可能にする命令を含む。各I/O構成要素1009は、独自のデバイスドライバを有し得る。デバイスドライバは、それらがストレージに記憶され、システムメモリにロードされるようにインストールされ得る。例えば、インストール時、ディスプレイドライバ1037は、オペレーティングシステム1031から受信される高レベル表示命令を、画像を表示するためにディスプレイ1012によって実施される低レベル命令に翻訳する。
【0095】
ディスプレイファームウェア1040などのファームウェアは、I/O構成要素1009またはディスプレイ1012が低レベル動作を実施することを可能にするマシンコードまたはアセンブリコードを含み得る。ファームウェアは、特定の構成要素の電気信号をより高いレベルの命令またはデータへ変換し得る。例えば、ディスプレイファームウェア1040は、どのようにディスプレイ1012が、電圧または電流信号を調整することによって低レベルにおける個々の画素を活性化するかを制御し得る。ファームウェアは、不揮発性メモリに記憶され得、不揮発性メモリから直接実行され得る。例えば、ディスプレイファームウェア1040は、ディスプレイ1012に結合されるROMチップに具現化され得、その結果として、ROMチップは、他のストレージおよびコンピューティングデバイス1000のシステムメモリとは別個である。ディスプレイ1012は、ディスプレイファームウェア1040を実行するための処理回路を含み得る。
【0096】
オペレーティングシステム1031、アプリケーション1034、ドライバ(例えば、ディスプレイドライバ1037)、ファームウェア(例えば、ディスプレイファームウェア1040)、およびおそらくは他の命令セットは各々、上で論じられる機能性および動作を実行するためにプロセッサ1003またはコンピューティングデバイス1000の他の処理回路によって実行可能である命令を含み得る。本明細書に説明される命令は、上で論じられるようにプロセッサ1003によって実行されるソフトウェアまたはコードに具現化され得るが、代替として、命令はまた、専用ハードウェアまたはソフトウェアおよび専用ハードウェアの組み合わせに具現化され得る。例えば、上で論じられる命令によって実行される機能性および動作は、いくつかの技術のうちの任意の1つまたはそれらの組み合わせを採用する回路または状態マシンとして実装され得る。これらの技術は、限定されるものではないが、1つもしくは複数のデータ信号の適用時に様々な論理関数を実施するための論理ゲートを有する離散した論理回路、適切な論理ゲートを有する特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の構成要素などを含み得る。
【0097】
いくつかの実施形態において、上で論じられる機能性および動作を実行する命令は、非一時的なコンピュータ可読記憶媒体に具現化され得る。コンピュータ可読記憶媒体は、コンピューティングデバイス1000などのコンピューティングシステムの一部である場合とそうでない場合とがある。命令は、例えば、コンピュータ可読媒体からフェッチされ、処理回路(例えば、プロセッサ1003)によって実行され得るステートメント、コード、または宣言を含み得る。本開示の文脈において、「コンピュータ可読媒体」は、例えば、コンピューティングデバイス1000などの命令実行システムによる使用のため、またはこれと関連して、本明細書に説明される命令を含む、記憶する、または維持することができる任意の媒体であり得る。
【0098】
コンピュータ可読媒体は、例えば、磁気、光学、または半導体媒体などの多くの物理的媒体のうちの任意の1つを備え得る。好適なコンピュータ可読媒体のより具体的な例は、限定されるものではないが、磁気テープ、磁気フロッピディスク、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、USBフラッシュドライブ、または光学ディスクを含み得る。また、コンピュータ可読媒体は、例えば、スタティックランダムアクセスメモリ(SRAM)およびダイナミックランダムアクセスメモリ(DRAM)、または磁気ランダムアクセスメモリ(MRAM)を含む、ランダムアクセスメモリ(RAM)であり得る。加えて、コンピュータ可読媒体は、リードオンリメモリ(ROM)、プログラマブルリードオンリメモリ(PROM)、消去可能なプログラマブルリードオンリメモリ(EPROM)、電気的に消去可能なプログラマブルリードオンリメモリ(EEPROM)、または他のタイプのメモリデバイスであり得る。
【0099】
コンピューティングデバイス1000は、動作のいずれかを実施し得るか、または上で説明される機能性を実装し得る。例えば、上で論じられるフローチャートおよびプロセスフローは、命令を実行し、データを処理するコンピューティングデバイス1000によって実施され得る。コンピューティングデバイス1000は、単一デバイスとして示されるが、実施形態はそのように限定されない。いくつかの実施形態において、コンピューティングデバイス1000は、複数のコンピューティングデバイス1000が計算構成要素の分散配置で記憶またはロードされ得る命令を実行するために一緒に動作するような分散様式で命令の処理をオフロードし得る。例えば、少なくともいくつかの命令またはデータは、コンピューティングデバイス1000と連動して動作するクラウドベースのシステムにおいて記憶、ロード、または実行され得る。
【0100】
特に、非一時的なコンピュータ可読記憶媒体は、コンピュータシステムのプロセッサによって実行されるとき、マルチビュー画像生成および表示の動作を実施する実行可能な命令を記憶し得る。様々な実施形態によると、動作は、場面のカラー画像および場面の奥行きマップを受信することを含み得る。動作は、カラー画像および奥行きマップから場面のマルチビュー画像のビュー画像を合成することをさらに含み得る。様々な実施形態において、ビュー画像は、異なるビュー方向から場面を表し得、各ビュー画像は、画素位置、および画素位置におけるそれぞれの色値を含み得る。さらに、動作は、マルチビュー画像のビュー画像をマルチビューディスプレイ上にレンダリングすることを含み得る。
【0101】
様々な実施形態によると、マルチビュー画像のビュー画像を合成することは、ビュー画像内の画素位置について、画素位置から場面へ向けて、ビュー画像のビュー方向に対応する方向に光線をキャスティングすることを含む。ビュー画像を合成することは、光線が奥行きマップによって指定される仮想表面に交差する光線交差位置を決定すること、および光線交差位置におけるカラー画像の色に対応するように画素位置におけるビュー画像の色値を設定することをさらに含む。
【0102】
いくつかの実施形態において、光線交差位置を決定することは、画素位置と指定の平面との間の光線に沿った順次の暫定的な位置を、仮想表面が画素位置と指定の平面との間にあるように決定することを含み得る。光線交差位置を決定することは、光線に沿った暫定的な位置のうちの1つの暫定的な位置を識別することをさらに含み得る。特に、暫定的な位置を識別することは、識別した暫定的な位置が画素位置と指定の平面との間にあることを繰り返し決定すること、および識別した暫定的な位置を光線に沿った次の暫定的な位置へ前進させることを含み得る。
【0103】
これらの実施形態によると、光線交差位置を決定することは、指定の平面が画素位置と識別した暫定的な位置との間にあることを決定することをさらに含み得る。さらに、光線交差位置を決定することは、識別した暫定的な位置と隣接する以前に識別した暫定的な位置との間の位置に対応するように光線交差位置を設定することをさらに含み得る。
【0104】
いくつかの実施形態によると、光線交差位置を決定することは、識別した暫定的な位置と隣接する以前に識別した暫定的な位置との間の光線に沿った順次の第2の暫定的な位置を決定すること、および光線に沿った第2の暫定的な位置のうちの1つの第2の暫定的な位置を識別することをさらに含む。特に、第2の暫定的な位置を識別することは、識別した第2の暫定的な位置が画素位置と指定の平面との間にあることを繰り返し決定すること、および識別した第2の暫定的な位置を光線に沿った次の第2の暫定的な位置へ前進させることを含み得る。
【0105】
これらの実施形態のうちのいくつかにおいて、光線交差位置を決定することは、指定の平面が画素位置と識別した第2の暫定的な位置との間にあることを決定することをさらに含む。さらに、光線交差位置を決定することは、識別した第2の暫定的な位置と隣接する以前に識別した第2の暫定的な位置との間の位置に対応するように光線交差位置を設定することを含み得る。
【0106】
いくつかの実施形態において、暫定的な位置は、光線に沿って等しく離間される。いくつかの実施形態において、ビュー画像は、ビュー画像の上および下縁に平行である水平方向を規定し得る。ここでは、垂直方向は、ビュー画像の平面内にあり、水平方向に直交であり得、奥行きは、水平および垂直方向に対して直交である。いくつかの実施形態において、暫定的な位置は、隣接する暫定的な位置の間の間隔の水平成分がビュー画像内の隣接する画素の間の水平間隔に対応するように離間される。
【0107】
故に、例えば、マルチビュー動画レンダリングのため、マルチビュー映像キャッシュを生成および使用する例および実施形態が説明されている。キャッシュは、標的タイムスタンプに対応する少なくとも一対のキャッシュデータエントリを含み得、対の第1および第2のキャッシュデータエントリは、それぞれの第1および第2の画像フレームグループを含み得る。第1の画像フレームグループは、標的タイムスタンプに先行する第1のマルチビューフレームに対応し得、第2の画像フレームグループは、標的タイムスタンプの後の第2のマルチビューフレームに対応し得る。標的タイムスタンプに対応する特定のマルチビューフレームのビューは、第1および第2の画像フレームグループからの情報を使用してキャッシュから生成され得る。上で説明した例は、本明細書に説明される原則を表す多くの特定の例のうちのいくつかの単なる例証であるということを理解されたい。明らかに、当業者は、以下の特許請求の範囲によって規定されるような範囲から逸脱することなく、多数の他の配置を容易に考案し得る。
【符号の説明】
【0108】
10 マルチビューディスプレイ
12 画面
14 ビュー
16 ビュー方向
20 光ビーム
100 システム
102 コンピューティングデバイス
104 カラー画像
106 場面
108 奥行きマップ
110、110A、110B、110C、110D ビュー画像
114A、114B、114C、114D ビュー方向
400 グラフィック表現
402 一番下の横線
404 出力バッファ
406 一番上の横線
1000 コンピューティングデバイス
1003 プロセッサ
1006 メモリ
1009 入力/出力(I/O)構成要素
1012 ディスプレイ
1015 バス
1031 オペレーティングシステム
1034 アプリケーション
1037 ディスプレイドライバ
1040 ディスプレイファームウェア
【手続補正書】
【提出日】2024-04-01
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
マルチビュー画像生成および表示のコンピュータ実装の方法であって、
コンピューティングデバイスを用いて、場面のカラー画像および前記場面の奥行きマップを受信することと、
前記コンピューティングデバイスを用いて、前記カラー画像および前記奥行きマップから前記場面のマルチビュー画像の複数のビュー画像を合成することであって、前記複数のビュー画像は、複数の異なるビュー方向から前記場面を表し、各ビュー画像は、複数の画素位置、および前記複数の画素位置におけるそれぞれの色値を含む、合成することと、
前記マルチビュー画像の前記複数のビュー画像を前記コンピューティングデバイスのマルチビューディスプレイ上にレンダリングすることと、を含み、
前記マルチビュー画像の
前記複数のビュー画像のうちのビュー画像を合成することは、前記ビュー画像内の
前記複数の画素位置のうちの画素位置について、
前記画素位置から前記場面へ向けて、前記ビュー画像の前記ビュー方向に対応する方向に光線をキャスティングすること、
前記光線が前記奥行きマップによって指定される仮想表面に交差する光線交差位置を決定すること、および
前記光線交差位置における前記カラー画像の色に対応するように前記画素位置における前記ビュー画像の
前記それぞれの色値のうちの色値を設定することを含む、コンピュータ実装の方法。
【請求項2】
前記光線交差位置を決定することは、
前記画素位置と指定の平面との間の前記光線に沿った順次の暫定的な位置を、前記仮想表面が前記画素位置と前記指定の平面との間にあるように決定することと、
前記光線に沿った前記
順次の暫定的な位置のうちの暫定的な位置を識別することであって、
前記識別した暫定的な位置が前記画素位置と前記指定の平面との間にあることを決定すること、および
前記識別した暫定的な位置を前記光線に沿った次の暫定的な位置へ前進させることを含む、識別することと、
前記
仮想表面が前記画素位置と前記識別した暫定的な位置との間にあることを決定することと、
前記光線交差位置を、包括的に、前記識別した暫定的な位置と、隣接する以前に識別した暫定的な位置との間の位置に対応するように設定することと、を含む、請求項1に記載のコンピュータ実装の方法。
【請求項3】
前記光線交差位置を決定することは、
前記識別した暫定的な位置と前記隣接する以前に識別した暫定的な位置との間の前記光線に沿った順次の第2の暫定的な位置を決定することと、
前記光線に沿った前記
順次の第2の暫定的な位置のうちの
第2の暫定的な位置を識別することであって、
前記識別した第2の暫定的な位置が前記画素位置と前記指定の平面との間にあることを決定すること、および
前記識別した第2の暫定的な位置を前記光線に沿った次の第2の暫定的な位置へ前進させることを含む、識別することと、
前記
仮想平面が前記画素位置と前記識別した第2の暫定的な位置との間にあることを決定することと、
前記光線交差位置を、包括的に、前記識別した第2の暫定的な位置と、隣接する以前に識別した第2の暫定的な位置との間の位置に対応するように設定することと、をさらに含む、請求項2に記載のコンピュータ実装の方法。
【請求項4】
前記暫定的な位置は、前記光線に沿って等しく離間される、請求項2に記載のコンピュータ実装の方法。
【請求項5】
前記ビュー画像は、前記複数のビュー画像の上および下縁に平行である水平方向、前記ビュー画像の平面内にあり、前記水平方向に対して直交である垂直方向、ならびに前記水平および垂直方向に対して直交である奥行きを規定し、
前記暫定的な位置は、隣接する暫定的な位置の間の間隔の水平成分が指定の値に対応するように離間される、請求項4に記載のコンピュータ実装の方法。
【請求項6】
前記指定の値は、前記ビュー画像内の隣接する画素の間の水平間隔に対応する、請求項5に記載のコンピュータ実装の方法。
【請求項7】
前記マルチビュー画像の
前記複数のビュー画像のうちのビュー画像を合成することは、前記ビュー画像内の
前記画素位置について、
前記画素位置から前記場面へ向けて、前記ビュー画像の前記ビュー方向に対応する
前記方向に
前記光線をキャスティングすることと、
前記光線が前記奥行きマップによって指定される
前記仮想表面に交差しないことを決定することと、
前記マルチビュー画像の前記複数のビュー画像の少なくとも1つの時間隣接した映像フレームから色情報を取得することと、
前記取得した色情報に対応するように前記画素位置における前記ビュー画像の
前記それぞれの色値のうちの前記色値を設定することと、を含む、請求項1に記載のコンピュータ実装の方法。
【請求項8】
前記光線が前記奥行きマップによって指定される前記仮想表面に交差しないことを決定することは、前記光線が、しきい値距離を超える距離だけ前記画素位置から離れる方へ伝搬したことを決定することを含む、請求項7に記載のコンピュータ実装の方法。
【請求項9】
前記複数のビュー画像は、映像信号の時系列画像に対応し、前記色情報は、前記映像信号の前記少なくとも1つの時間隣接した映像フレームの前記画素位置から取得される、請求項7に記載のコンピュータ実装の方法。
【請求項10】
前記異なるビュー方向は、前記複数のビュー画像の上および下縁
に平行な水平面内にある、請求項1に記載のコンピュータ実装の方法。
【請求項11】
マルチビュー画像生成および表示を実施するように構成されるシステムであって、
マルチビューディスプレイと、
中央処理装置と、
実行されると、前記中央処理装置に動作を実施させる複数の命令を記憶するメモリと、を備え、前記動作は、
場面のカラー画像および前記場面の奥行きマップを受信することと、
前記カラー画像および前記奥行きマップから前記場面のマルチビュー画像の複数のビュー画像を合成することであって、前記複数のビュー画像は、複数の異なるビュー方向から前記場面を表し、各ビュー画像は、複数の画素位置、および前記複数の画素位置におけるそれぞれの色値を含む、合成することと、
前記マルチビュー画像の前記複数のビュー画像を前記マルチビューディスプレイ上にレンダリングすることと、を含み、
前記マルチビュー画像の
前記複数のビュー画像のうちのビュー画像を合成することは、前記ビュー画像内の
前記複数の画素位置のうちの画素位置について、
前記画素位置から前記場面へ向けて、前記ビュー画像の前記ビュー方向に対応する方向に光線をキャスティングすること、
前記光線が前記奥行きマップによって指定される仮想表面に交差する光線交差位置を決定すること、および
前記光線交差位置における前記カラー画像の色に対応するように前記画素位置における前記ビュー画像の
前記それぞれの色値のうちの色値を設定することを含む、システム。
【請求項12】
前記光線交差位置を決定することは、
前記画素位置と指定の平面との間の前記光線に沿った順次の暫定的な位置を、前記仮想表面が前記画素位置と前記指定の平面との間にあるように決定することと、
前記光線に沿った前記
順次の暫定的な位置のうちの1つの暫定的な位置を識別することであって、
前記識別した暫定的な位置が前記画素位置と前記指定の平面との間にあることを決定すること、および
前記識別した暫定的な位置を前記光線に沿った次の暫定的な位置へ前進させることを含む、識別することと、
前記
仮想平面が前記画素位置と前記識別した暫定的な位置との間にあることを決定することと、
前記光線交差位置を、包括的に、前記識別した暫定的な位置と、隣接する以前に識別した暫定的な位置との間の位置に対応するように設定することと、を含む、請求項11に記載のシステム。
【請求項13】
前記光線交差位置を決定することは、
前記識別した暫定的な位置と前記隣接する以前に識別した暫定的な位置との間の前記光線に沿った順次の第2の暫定的な位置を決定することと、
前記光線に沿った前記
順次の第2の暫定的な位置のうちの1つの第2の暫定的な位置を識別することであって、
前記識別した第2の暫定的な位置が前記画素位置と前記指定の平面との間にあることを決定すること、および
前記識別した第2の暫定的な位置を前記光線に沿った次の第2の暫定的な位置へ前進させることを含む、識別することと、
前記
仮想平面が前記画素位置と前記識別した第2の暫定的な位置との間にあることを決定することと、
前記光線交差位置を、包括的に、前記識別した第2の暫定的な位置と、隣接する以前に識別した第2の暫定的な位置との間の位置に対応するように設定することと、をさらに含む、請求項12に記載のシステム。
【請求項14】
前記暫定的な位置は、前記光線に沿って等しく離間される、請求項12に記載のシステム。
【請求項15】
前記ビュー画像は、前記ビュー画像の上および下縁に平行である水平方向、前記ビュー画像の平面内にあり、前記水平方向に対して直交である垂直方向、ならびに前記水平および垂直方向に対して直交である奥行きを規定し、
前記暫定的な位置は、隣接する暫定的な位置の間の間隔の水平成分が前記ビュー画像内の隣接する画素の間の水平間隔に対応するように離間される、請求項14に記載のシステム。
【請求項16】
前記異なるビュー方向は、前記複数のビュー画像の上および下縁
に平行な水平面内にある、請求項11に記載のシステム。
【請求項17】
コンピュータシステムのプロセッサによって実行されるとき、マルチビュー画像生成および表示の動作を実施する実行可能な命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記動作は、
場面のカラー画像および前記場面の奥行きマップを受信することと、
前記カラー画像および前記奥行きマップから前記場面のマルチビュー画像の複数のビュー画像を合成することであって、前記複数のビュー画像は、異なるビュー方向から前記場面を表し、各ビュー画像は、複数の画素位置、および前記複数の画素位置におけるそれぞれの色値を含む、合成することと、
前記マルチビュー画像の前記複数のビュー画像をマルチビューディスプレイ上にレンダリングすることと、を含み、
前記マルチビュー画像の
前記複数のビュー画像のうちのビュー画像を合成することは、前記ビュー画像内の
前記複数の画素位置のうちの画素位置について、
前記画素位置から前記場面へ向けて、前記ビュー画像の前記ビュー方向に対応する方向に光線をキャスティングすること、
前記光線が前記奥行きマップによって指定される仮想表面に交差する光線交差位置を決定すること、および
前記光線交差位置における前記カラー画像の色に対応するように前記画素位置における前記ビュー画像の
それぞれの色値のうちの色値を設定することを含む、非一時的なコンピュータ可読記憶媒体。
【請求項18】
前記光線交差位置を決定することは、
前記画素位置と指定の平面との間の前記光線に沿った順次の暫定的な位置を、前記仮想表面が前記画素位置と前記指定の平面との間にあるように決定することと、
前記光線に沿った前記
順次の暫定的な位置のうちの暫定的な位置を識別することであって、繰り返して
前記識別した暫定的な位置が前記画素位置と前記指定の平面との間にあることを決定すること、および
前記識別した暫定的な位置を前記光線に沿った次の暫定的な位置へ前進させることを含む、識別することと、
前記
仮想平面が前記画素位置と前記識別した暫定的な位置との間にあることを決定することと、
前記光線交差位置を、前記識別した暫定的な位置と、隣接する以前に識別した暫定的な位置との間の位置に対応するように設定することとを含む、請求項17に記載の非一時的なコンピュータ可読記憶媒体。
【請求項19】
前記光線交差位置を決定することは、
前記識別した暫定的な位置と前記隣接する以前に識別した暫定的な位置との間の前記光線に沿った順次の第2の暫定的な位置を決定することと、
前記光線に沿った前記
順次の第2の暫定的な位置のうちの1つの第2の暫定的な位置を識別することであって、繰り返して
前記識別した第2の暫定的な位置が前記画素位置と前記指定の平面との間にあることを決定すること、および
前記識別した第2の暫定的な位置を前記光線に沿った次の第2の暫定的な位置へ前進させることを含む、識別することと、
前記
仮想平面が前記画素位置と前記識別した第2の暫定的な位置との間にあることを決定することと、
前記光線交差位置を、包括的に、前記識別した第2の暫定的な位置と、隣接する以前に識別した第2の暫定的な位置との間の位置に対応するように設定することと、をさらに含む、請求項18に記載の非一時的なコンピュータ可読記憶媒体。
【請求項20】
前記暫定的な位置は、前記光線に沿って等しく離間され、
前記ビュー画像は、前記ビュー画像の上および下縁に平行である水平方向、前記ビュー画像の平面内にあり、前記水平方向に対して直交である垂直方向、ならびに前記水平および垂直方向に対して直交である奥行きを規定し、
前記暫定的な位置は、隣接する暫定的な位置の間の間隔の水平成分が前記ビュー画像内の隣接する画素の間の水平間隔に対応するように離間される、請求項18に記載の非一時的なコンピュータ可読記憶媒体。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0021
【補正方法】変更
【補正の内容】
【0021】
いくつかの実施形態において、ビュー画像を合成することは、複数の光線のうちの追加の光線が所定の奥行きレベルだけ仮想表面を下回ることを検出することをさらに含む。一部の光線は仮想表面に交差する一方、他の光線は、急峻度しきい値に応じて「穴」と見なされ得る仮想表面の垂直縁にヒットし得る。いくつかの実施形態において、ヒット点が急傾斜表面上にあるとき、サブルーチンは、その位置に対応する画素が穴であることを指定し得る。カラー画像が映像ストリームのフレームであるとき、これらの穴は、時間隣接した映像フレームからの画素情報を使用して埋められ得る。静止画像の場合、周囲の色が穴埋めに使用され得る。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0041
【補正方法】変更
【補正の内容】
【0041】
いくつかの例において、光線交差位置を決定することは、簡便性のために第1~第5の動作として示される以下の動作を含み得る。第1の動作において、シェーダは、画素位置と指定の平面との間の光線に沿った順次の暫定的な位置を、仮想表面が画素位置と指定の平面との間にあるように決定し得る。第2の動作において、シェーダは、光線に沿った暫定的な位置のうちの特定の暫定的な位置を識別し得る。第3の動作において、シェーダは、識別した特定の暫定的な位置が画素位置と指定の平面との間にあることを繰り返し決定し得、シェーダは、識別した特定の暫定的な位置を光線に沿った次の暫定的な位置へ前進させ得る。第4の動作において、シェーダは、仮想平面が画素位置と識別した特定の暫定的な位置との間にあることを決定し得る。第5の動作において、シェーダは、光線交差位置を、包括的に、識別した特定の暫定的な位置と、隣接する以前に識別した暫定的な位置との間の位置に対応するように設定し得る。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0042
【補正方法】変更
【補正の内容】
【0042】
上の例のうちのいくつかにおいて、光線交差位置を決定することは、簡便性のために第6~第10の動作として示される以下の動作を含み得る。第6から第10の動作は、第1~第5の動作を効果的に繰り返し得るが、異なる(例えば、より細かい)分解能であり得る。第6の動作において、シェーダは、識別した暫定的な位置と、隣接する以前に識別した暫定的な位置との間の光線に沿った順次の第2の暫定的な位置を決定し得る。第7の動作において、シェーダは、光線に沿った第2の暫定的な位置のうちの1つの第2の暫定的な位置を識別し得る。第8の動作において、シェーダは、識別した第2の暫定的な位置が画素位置と指定の平面との間にあることを繰り返し決定し、識別した第2の暫定的な位置を光線に沿った次の第2の暫定的な位置へ前進させ得る。第9の動作において、シェーダは、仮想平面が画素位置と識別した第2の暫定的な位置との間にあることを決定し得る。第10の動作において、シェーダは、光線交差位置を、包括的に、識別した第2の暫定的な位置と、隣接する以前に識別した第2の暫定的な位置との間の位置に対応するように設定し得る。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0044
【補正方法】変更
【補正の内容】
【0044】
いくつかの例において、異なるビュー方向は、ビュー画像の上および下縁に平行な水平面内にあり得る。いくつかの例において、第1~第5の動作および第1~第10の動作のうちの一方または両方が、実行可能な結果をもたらさない場合がある。光線キャスティング単独では画素位置のための好適な色値を獲得できないことがあるため、シェーダは、好適な色値を獲得するためにさらなる動作を実施し得る。これらのさらなる動作は、簡便性のために第11の動作~第15の動作として示され、以下に詳述される。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0080
【補正方法】変更
【補正の内容】
【0080】
いくつかの例において、画素位置と指定の平面との間の光線に沿った順次の暫定的な位置を、仮想表面が画素位置と指定の平面との間にあるように決定することは、以下の動作を含み得る。システムは、光線に沿った暫定的な位置のうちの1つの暫定的な位置を識別し得る。システムは、識別した暫定的な位置が画素位置と指定の平面との間にあることを繰り返し決定し、識別した暫定的な位置を光線に沿った次の暫定的な位置へ前進させ得る。システムは、仮想平面が画素位置と識別した暫定的な位置との間にあることを決定し得る。システムは、光線交差位置を、包括的に、識別した暫定的な位置と、隣接する以前に識別した暫定的な位置との間の位置に対応するように設定し得る。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0081
【補正方法】変更
【補正の内容】
【0081】
いくつかの例において、光線交差位置を決定することは、以下の動作をさらに含み得る。システムは、識別した暫定的な位置と隣接する以前に識別した暫定的な位置との間の光線に沿った順次の第2の暫定的な位置を決定し得る。システムは、光線に沿った第2の暫定的な位置のうちの1つの第2の暫定的な位置を識別し得る。システムは、識別した第2の暫定的な位置が画素位置と指定の平面との間にあることを繰り返し決定し、識別した第2の暫定的な位置を光線に沿った次の第2の暫定的な位置へ前進させ得る。システムは、仮想平面が画素位置と識別した第2の暫定的な位置との間にあることを決定し得る。システムは、光線交差位置を、包括的に、識別した第2の暫定的な位置と、隣接する以前に識別した第2の暫定的な位置との間の位置に対応するように設定し得る。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0103
【補正方法】変更
【補正の内容】
【0103】
これらの実施形態によると、光線交差位置を決定することは、仮想平面が画素位置と識別した暫定的な位置との間にあることを決定することをさらに含み得る。さらに、光線交差位置を決定することは、識別した暫定的な位置と隣接する以前に識別した暫定的な位置との間の位置に対応するように光線交差位置を設定することをさらに含み得る。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0105
【補正方法】変更
【補正の内容】
【0105】
これらの実施形態のうちのいくつかにおいて、光線交差位置を決定することは、仮想平面が画素位置と識別した第2の暫定的な位置との間にあることを決定することをさらに含む。さらに、光線交差位置を決定することは、識別した第2の暫定的な位置と隣接する以前に識別した第2の暫定的な位置との間の位置に対応するように光線交差位置を設定することを含み得る。
【国際調査報告】