(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-05
(54)【発明の名称】圧縮されたマルチビュービデオをストリーミングするシステムおよび方法
(51)【国際特許分類】
H04N 21/2343 20110101AFI20240227BHJP
H04N 21/4402 20110101ALI20240227BHJP
G09G 5/00 20060101ALI20240227BHJP
【FI】
H04N21/2343
H04N21/4402
G09G5/00 555D
G09G5/00 555A
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023551969
(86)(22)【出願日】2021-02-28
(85)【翻訳文提出日】2023-10-24
(86)【国際出願番号】 US2021020164
(87)【国際公開番号】W WO2022182368
(87)【国際公開日】2022-09-01
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】514274546
【氏名又は名称】レイア、インコーポレイテッド
【氏名又は名称原語表記】LEIA INC.
(74)【代理人】
【識別番号】100092783
【氏名又は名称】小林 浩
(74)【代理人】
【識別番号】100120134
【氏名又は名称】大森 規雄
(74)【代理人】
【識別番号】100093676
【氏名又は名称】小林 純子
(74)【代理人】
【識別番号】100126354
【氏名又は名称】藤田 尚
(72)【発明者】
【氏名】ダルクィスト,ニコラス
【テーマコード(参考)】
5C164
5C182
【Fターム(参考)】
5C164MB41S
5C164PA31
5C164SA32S
5C164SB02P
5C164UB02P
5C182AA03
5C182AA26
5C182AA27
5C182AB08
5C182AB21
5C182AC03
5C182AC46
5C182BC01
5C182BC29
5C182CB52
5C182DA44
(57)【要約】
システムおよび方法は、送信側システムから受信側システムにマルチビュービデオをストリーミングすることを対象とする。送信側システムは、送信側クライアントデバイスのマルチビューディスプレイ上にレンダリングされたマルチビュービデオのインターレースされたフレームをキャプチャすることができる。インターレースされたフレームは、第1のビュー数を有するマルチビュー構成によって定義された空間的に多重化されたビューとしてフォーマットされ得る。送信側システムは、インターレースされたフレームの空間的に多重化されたビューを別々のビューにデインターレースすることができる。送信側システムは、分離されたビューを連結して、タイル化ビデオのタイル化フレームを生成することができる。送信側システムは、タイル化ビデオを受信側クライアントデバイスに送信することができ、この場合タイル化ビデオは、圧縮されている。受信側システムは、タイル化ビデオのビューを解凍およびインターレースしてストリーミングされたインターレースされたフレームにし、ストリーミングされたインターレースされたフレームを受信側システムのマルチビューディスプレイ上にレンダリングすることができる。
【特許請求の範囲】
【請求項1】
送信側クライアントデバイスによってマルチビュービデオをストリーミングする方法であって、
前記送信側クライアントデバイスのマルチビューディスプレイ上でレンダリングされたインターレースされたビデオのインターレースされたフレームをキャプチャするステップであって、前記インターレースされたフレームは、第1のビュー数を有するマルチビュー構成によって定義された空間的に多重化されたビューとしてフォーマットされる、ステップと、
前記インターレースされたフレームの前記空間的に多重化されたビューを別々のビューにデインターレースするステップであって、前記別々のビューは連結されて、タイル化ビデオのタイル化フレームを生成する、ステップと、
前記タイル化ビデオを受信側クライアントデバイスに送信するステップであって、前記タイル化ビデオは圧縮されている、ステップと、
を含む、方法。
【請求項2】
前記インターレースされたビデオの前記インターレースされたフレームをキャプチャするステップが、アプリケーションプログラミングインターフェースを使用してグラフィックスメモリからテクスチャデータにアクセスすることを含む、請求項1に記載の送信側クライアントデバイスによってマルチビュービデオをストリーミングする方法。
【請求項3】
前記タイル化ビデオを送信するステップが、アプリケーションプログラミングインターフェースを使用して前記タイル化ビデオをリアルタイムでストリーミングすることを含む、請求項1に記載の送信側クライアントデバイスによってマルチビュービデオをストリーミングする方法。
【請求項4】
前記タイル化ビデオを送信する前に前記タイル化ビデオを圧縮するステップをさらに含む、請求項1に記載の送信側クライアントデバイスによってマルチビュービデオをストリーミングする方法。
【請求項5】
前記受信側クライアントデバイスが、
前記送信側クライアントデバイスから受信した前記タイル化ビデオを解凍する、
ストリーミングされたインターレースされたビデオを生成するために、第2のビュー数を有するマルチビュー構成によって定義された空間的に多重化されたビューに前記タイル化フレームをインターレースする、そして
前記受信側クライアントデバイスのマルチビューディスプレイ上で前記ストリーミングされたインターレースされたビデオをレンダリングするように構成される、請求項1に記載の送信側クライアントデバイスによってマルチビュービデオをストリーミングする方法。
【請求項6】
前記第1のビュー数が前記第2のビュー数とは異なる、請求項5に記載の送信側クライアントデバイスによってマルチビュービデオをストリーミングする方法。
【請求項7】
前記受信側クライアントデバイスが、前記第2のビュー数が前記第1のビュー数よりも大きい場合に、前記タイル化フレームのための追加のビューを生成するように構成される、請求項6に記載の送信側クライアントデバイスによってマルチビュービデオをストリーミングする方法。
【請求項8】
前記受信側クライアントデバイスが、前記第2のビュー数が前記第1のビュー数よりも少ない場合に、前記タイル化フレームのビューを除去するように構成される、請求項6に記載の送信側クライアントデバイスによってマルチビュービデオをストリーミングする方法。
【請求項9】
前記送信側クライアントデバイスの前記マルチビューディスプレイが、広角バックライトを使用して2Dモード中に広角放出光を提供するように構成され、
前記送信側クライアントデバイスの前記マルチビューディスプレイが、マルチビーム要素のアレイを有するマルチビューバックライトを使用してマルチビューモード中に指向性放出光を提供するように構成され、前記指向性放出光は、前記マルチビーム要素アレイの各マルチビーム要素によって提供される複数の指向性光ビームを含み、
前記送信側クライアントデバイスの前記マルチビューディスプレイが、前記2Dモードに対応する第1の順次時間間隔中に前記広角バックライトを、および前記マルチビューモードに対応する第2の順次時間間隔中に前記マルチビューバックライトを順次アクティブ化するために、モードコントローラを使用して前記2Dモードと前記マルチビューモードとを時間多重化するように構成され、
前記指向性光ビームの方向が、前記マルチビュービデオの前記インターレースされたフレームの異なるビュー方向に対応する、請求項1に記載の送信側クライアントデバイスによってマルチビュービデオをストリーミングする方法。
【請求項10】
前記送信側クライアントデバイスの前記マルチビューディスプレイが、導光体内の光を導波光として導波するように構成され、
前記送信側クライアントデバイスの前記マルチビューディスプレイが、マルチビーム要素アレイのマルチビーム要素を使用して、前記導波光の一部を指向性放出光として散乱させるように構成され、前記マルチビーム要素アレイの各マルチビーム要素は、回折格子、微小屈折要素、および微小反射要素のうちの1つまたは複数を含む、請求項1に記載の送信側クライアントデバイスによってマルチビュービデオをストリーミングする方法。
【請求項11】
送信側システムであって、
多数のビューを有するマルチビュー構成に従って構成されたマルチビューディスプレイと、
プロセッサと、
複数の命令を記憶するメモリであって、実行されると、前記プロセッサに、
前記マルチビューディスプレイ上に、インターレースされたビデオのインターレースされたフレームをレンダリングさせ
前記マルチビューディスプレイの第1のビュー数を有する前記マルチビュー構成によって定義された空間的に多重化されたビューとしてフォーマットされた、前記メモリ内の前記インターレースされたフレームをキャプチャさせ、
前記インターレースされたビデオの前記空間的に多重化されたビューを、連結されてタイル化ビデオのタイル化フレームを生成する別々のビューにデインターレースさせ、
圧縮された前記タイル化ビデオを受信側システムに送信させる、メモリと、
を備える、送信側システム。
【請求項12】
前記複数の命令が、実行されると、さらに前記プロセッサに、
アプリケーションプログラミングインターフェースを使用してグラフィックスメモリからテクスチャデータにアクセスすることによって、前記インターレースされたビデオの前記インターレースされたフレームをキャプチャさせる、請求項11に記載の送信側システム。
【請求項13】
前記複数の命令が、実行されると、さらに前記プロセッサに、
アプリケーションプログラミングインターフェースを使用して前記タイル化ビデオをリアルタイムでストリーミングすることによって前記タイル化ビデオを送信させる、請求項11に記載の送信側システム。
【請求項14】
前記複数の命令が、実行されると、さらに前記プロセッサに、
前記タイル化ビデオの送信前に前記タイル化ビデオを圧縮させる、請求項11に記載の送信側システム。
【請求項15】
前記受信側システムが、
前記送信側システムから受信した前記タイル化ビデオを解凍する、
ストリーミングされたインターレースされたビデオを生成するために、第2のビュー数を有するマルチビュー構成によって定義された空間的に多重化されたビューに前記タイル化フレームをインターレースする、そして
前記受信側システムのマルチビューディスプレイ上で前記ストリーミングされたインターレースされたビデオをレンダリングするように構成される、請求項11に記載の送信側システム。
【請求項16】
前記第1のビュー数が、前記第2のビュー数とは異なる、請求項15に記載の送信側システム。
【請求項17】
前記受信側システムが、前記第2のビュー数が前記第1のビュー数よりも大きい場合、前記タイル化フレームのための追加のビューを生成するように構成される、請求項16に記載の送信側システム。
【請求項18】
受信側システムによって送信側システムからストリーミングされたマルチビュービデオを受信する方法であって、前記方法は、
送信側システムからタイル化ビデオを受信するステップであって、前記タイル化ビデオは、タイル化フレームを含み、前記タイル化フレームは、連結される別々のビューを含み、前記タイル化フレームのビューの数が、前記送信側システムの第1のビュー数を有するマルチビュー構成によって定義される、ステップと、
前記タイル化ビデオを解凍するステップと、
ストリーミングされたインターレースされたビデオを生成するために、第2のビュー数を有するマルチビュー構成によって定義された空間的に多重化されたビューに前記タイル化フレームをインターレースするステップと、
前記受信側システムのマルチビューディスプレイ上で前記ストリーミングされたインターレースされたビデオをレンダリングするステップと、
を含む、送信側システムからストリーミングされたマルチビュービデオを受信する方法。
【請求項19】
前記第2のビュー数が前記第1のビュー数よりも大きい場合に、前記タイル化フレームのための追加のビューを生成するステップをさらに含む、
請求項18に記載の送信側システムからタイル化ビデオを受信する方法。
【請求項20】
前記第2のビュー数が前記第1のビュー数よりも少ない場合に、前記タイル化フレームのビューを除去するステップをさらに含む、請求項18に記載の送信側システムからタイル化ビデオを受信する方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
なし
【0002】
連邦政府による資金提供を受けた研究開発の記載
なし
【背景技術】
【0003】
二次元(2D)ビデオストリームは一連のフレームを含み、各フレームは2D画像である。ビデオストリームは、ビデオファイルサイズを低減してネットワーク帯域幅を緩和するために、ビデオ符号化仕様に従って圧縮され得る。ビデオストリームは、様々なソースからコンピューティングデバイスによって受信され得る。ビデオストリームは、グラフィックスパイプラインによって、表示のために複号化およびレンダリングされ得る。特定のフレームレートでこれらのフレームをレンダリングすることで、ユーザが見るべきビデオの表示が生成される。
【発明の概要】
【0004】
マルチビューディスプレイは、従来の2Dビデオと比較してより没入した視聴体験を提供する新たな表示技術である。2Dビデオの処理と比較して、マルチビュービデオのレンダリング、処理、および圧縮に課題がある場合がある。
【0005】
本明細書で説明する原理による例および実施形態の様々な特徴は、添付の図面と併せて以下の詳細な説明を参照することによって、より容易に理解することができ、図面では、同様の参照番号は同様の構造要素を示す。
【図面の簡単な説明】
【0006】
【
図1】本明細書で説明する原理と一致する一実施形態による、一例におけるマルチビュー画像の図である。
【0007】
【
図2】本明細書で説明する原理と一致する実施形態による、マルチビューディスプレイの一例を示す図である。
【0008】
【
図3】明細書で説明する原理と一致する実施形態による、送信側クライアントデバイスによってマルチビュービデオをストリーミングする一例を示す図である。
【0009】
【
図4】本明細書で説明する原理と一致する実施形態による、送信側クライアントデバイスからストリーミングされたマルチビュービデオを受信する一例を示す図である。
【0010】
【
図5】本明細書で説明する原理と一致する実施形態による、送信側および受信側システムの機能およびアーキテクチャの一例を示す図である。
【0011】
【
図6】本明細書で説明する原理と一致する実施形態による、クライアントデバイスの例示的な図を示す概略ブロック図である。
【発明を実施するための形態】
【0012】
特定の例および実施形態は、上記参照した図に示された特徴に加えて、およびその代わりの1つである他の特徴を有する。これらおよび他の特徴は、上記で参照された図を参照して以下に詳述される。
【0013】
本明細書で説明する原理による例および実施形態は、クライアントデバイス間で(例えば、送信側から1つまたは複数の受信側へ)マルチビュービデオをストリーミングするための技術を提供する。例えば、1つのクライアントデバイスに表示されるマルチビュービデオを処理し、圧縮し、1つまたは複数のターゲットデバイスにストリーミングすることができる。これにより、ライトフィールド体験(例えば、マルチビューコンテンツの提示)を異なるデバイスにわたってリアルタイムで複製することが可能になる。ビデオストリーミングシステムを設計するための1つの考慮事項は、ビデオストリームを圧縮する能力である。圧縮は、最低限のビデオ品質を維持しながらビデオデータのサイズ(ビット単位)を低減するプロセスを指す。圧縮なしでは、ビデオを完全にストリーミングするのにかかる時間が増大するか、または別の形でネットワーク帯域幅が圧迫される。したがって、ビデオ圧縮は、低減されたビデオストリームデータがリアルタイムビデオストリーミング、高速ビデオストリーミング、または着信ビデオストリームの低減されたバッファリングをサポートすることを可能にすることができる。圧縮は非可逆圧縮であってもよく、これは入力データの圧縮および解凍が品質に何らかの損失を引き起こすことを意味する。
【0014】
実施形態は、ターゲットデバイスのマルチビュー構成に依存しない方法でマルチビュービデオをストリーミングすることを対象とする。加えて、マルチビューコンテンツを再生するいずれのアプリケーションも、アプリケーションの基礎となるコードを変更することなく、ターゲットデバイスへのマルチビューコンテンツのリアルタイムストリーミングに対応することができる。
【0015】
動作は、マルチビュービデオの異なるビューがマルチビューディスプレイを固有にサポートするためにインターレースされる、インターレースされたマルチビュービデオのレンダリングを含むことができる。この点において、インターレースされたビデオは、非圧縮である。異なるビューをインターレースすることは、デバイス上でレンダリングするのに適したフォーマットでマルチビューコンテンツを提供することができる。マルチビューディスプレイは、インターレースされたマルチビューコンテンツを表示するための特定のマルチビュー構成に従って構成され得るハードウェアである。
【0016】
実施形態はさらに、送信側クライアントデバイスから受信側クライアントデバイスへマルチビューコンテンツを(例えば、リアルタイムで)ストリーミングする能力を対象とする。送信側クライアントデバイス上でレンダリングされたマルチビューコンテンツは、各ビューを統合するためにキャプチャされ、デインターレースされ得る。その後、各ビューが、連結されたビューのタイル化フレームを生成するために連結され得る(例えば、デインターレースされたフレーム)。次いで、タイル化フレームを有するビデオストリームが圧縮され、受信側クライアントデバイスに送信される。受信側クライアントデバイスは、結果として得られるビデオを解凍し、デインターレースし、レンダリングすることができる。これにより、受信側クライアントデバイスは、リアルタイム再生およびストリーミングのために送信側クライアントデバイス上でレンダリングされたライトフィールドコンテンツと同様のライトフィールドコンテンツを提示することが可能になる。
【0017】
いくつかの実施形態によれば、送信側クライアントデバイスおよび受信側クライアントデバイスは、異なるマルチビュー構成を有することができる。マルチビュー構成は、マルチビューディスプレイによって提示されるビューの数を指す。例えば、左右のビューのみを提示するマルチビューディスプレイは、ステレオマルチビュー構成を有する。4ビューマルチビュー構成は、マルチビューディスプレイが4つのビューなどを表示できることを意味する。加えて、マルチビュー構成は、ビューの向きを指す場合もある。ビューは、水平方向、垂直方向、またはその両方に向けられ得る。例えば、4ビューマルチビュー構成は、4つのビューを横にして水平に向けられてもよく、4つのビューを下にして垂直に向けられてもよく、または2つのビューを横にして2つのビューを下にしてクワッド配向に向けられてもよい。受信側クライアントデバイスは、受信したタイル化ビデオのビューの数を変更して、受信側クライアントデバイスのマルチビューディスプレイのマルチビュー構成と互換性を持たすことができる。この点において、タイル化ビデオストリームは、受信側クライアントデバイスのマルチビュー構成に依存しない。
【0018】
本明細書で説明する実施形態は、複数のユースケースをサポートする。例えば、送信側クライアントデバイスは、マルチビューコンテンツを1つまたは複数の受信側クライアントデバイスにライブストリーミングすることができる。したがって、送信側クライアントデバイスは、送信側クライアントデバイスでレンダリングされたライトフィールド体験を複製することができる他のクライアントデバイスとライトフィールドビデオを共有するための画面共有機能を提供することができる。加えて、受信側クライアントデバイスのセットは、それらがそれぞれ異なるマルチビュー構成を有するように異種であってもよい。例えば、同じマルチビュービデオストリームを受信する受信側クライアントデバイスのセットは、それら自体のマルチビュー構成でマルチビュービデオをレンダリングすることができる。例えば、受信側クライアントデバイスは、受信したマルチビュービデオストリームを4つのビューとしてレンダリングしてもよく、別の受信側クライアントデバイスは、受信した同じマルチビュービデオストリームを8つのビューとしてレンダリングしてもよい。
【0019】
図1は、本明細書で説明する原理と一致する実施形態による、一例におけるマルチビュー画像を示す。マルチビュー画像103は、特定のタイムスタンプにおけるマルチビュービデオストリームからの単一のマルチビュービデオフレームであってもよい。マルチビュー画像103はまた、ビデオフィードの一部ではない静的マルチビュー画像であってもよい。マルチビュー画像103は、複数のビュー106(例えば、ビュー画像)を有する。ビュー106の各々は、異なる主角度方向109(例えば、左図、右図など)に対応する。ビュー106は、マルチビューディスプレイ112上にレンダリングされる。各ビュー106は、マルチビュー画像103で表されたシーンの異なる視野角を表す。したがって、異なるビュー106は、互いに対して何らかのレベルの視差を有する。視聴者は、自身の右眼で1つのビュー106を知覚しながら、自身左眼で異なるビュー106を知覚することができる。これにより、視聴者は異なるビュー106を同時に知覚することが可能になり、それによって三次元(3D)効果を体験することができる。
【0020】
いくつかの実施形態では、視聴者がマルチビューディスプレイ112に対して自身の視野角を物理的に変更すると、視聴者の眼は、マルチビュー画像103の異なるビュー106を捉えることができる。その結果、視聴者は、マルチビューディスプレイ112と対話して、マルチビュー画像103の異なるビュー106を見ることができる。例えば、視聴者が左に移動するにつれて、視聴者は、マルチビュー画像103内の建物の左側のより多くを見ることができる。マルチビュー画像103は、水平面に沿って複数のビュー106を有することができ、かつ/または垂直面に沿って複数のビュー106を有することができる。したがって、ユーザが異なるビュー106を見るために視野角を変更すると、視聴者は、マルチビュー画像103内のシーンの追加の視覚的詳細を得ることができる。
【0021】
上記で論じたように、各ビュー106は、マルチビューディスプレイ112によって、異なる対応する主角度方向109に提示される。表示のためにマルチビュー画像103を提示するとき、ビュー106は、実際には、マルチビューディスプレイ112上またはその近傍に現れることができる。ライトフィールドビデオを観察する特性は、異なるビューを同時に観察する能力である。ライトフィールドビデオは、視聴者に奥行き感を伝えるために、スクリーンの前だけでなくスクリーンの後ろにも現れ得る視覚的画像を含む。
【0022】
2Dディスプレイは、マルチビュー画像103の異なるビュー106とは対照的に、2Dディスプレイが通常、単一のビュー(例えば、ビューのうちの1つのみ)を提供するように構成されることを除いて、マルチビューディスプレイ112と実質的に同様であり得る。本明細書では、「2次元ディスプレイ」または「2Dディスプレイ」は、画像が見られる方向にかかわらず(すなわち、2Dディスプレイの所定の視野角または範囲内で)実質的に同じである画像のビューを提供するように構成されたディスプレイとして定義される。2Dディスプレイの例として、多くのスマートフォンおよびコンピュータモニタに見られる従来の液晶ディスプレイ(LCD)が挙げられる。対照的に、本明細書では、「マルチビューディスプレイ」は、ユーザの視点から同時に、異なるビュー方向にまたは異なるビュー方向からマルチビュー画像(例えばマルチビューフレーム)の異なるビューを提供するように構成された電子ディスプレイまたはディスプレイシステムとして定義される。特に、異なるビュー106は、マルチビュー画像103の異なる斜視図を表すことができる。
【0023】
マルチビューディスプレイ112は、異なる画像ビューが同時に知覚されるようにこれらのビューの提示に対応する種々の技術を使用して実装され得る。マルチビューディスプレイの1つの例は、異なるビュー106の主角度方向を制御するために光を散乱させるマルチビーム要素を使用するものである。いくつかの実施形態によれば、マルチビューディスプレイ112は、異なるビューに対応する異なる色および異なる方向の複数の光ビームを提示するものである、ライトフィールドディスプレイであってもよい。いくつかの例では、ライトフィールドディスプレイは、深度を知覚するために特別なアイウェアを必要とすることなくマルチビュー画像の裸眼立体表現を提供するためにマルチビーム要素(例えば回折格子)を使用し得る、いわゆる「裸眼」3次元(3D)ディスプレイである。
【0024】
図2は、本明細書で説明する原理と一致する実施形態による、マルチビューディスプレイの一例を示す。マルチビューディスプレイ112は、マルチビューモードで動作するときにライトフィールドビデオを生成することができる。いくつかの実施形態では、マルチビューディスプレイ112は、その動作モードに応じてマルチビュー画像および2D画像をレンダリングする。例えば、マルチビューディスプレイ112は、異なるモードで動作するための複数のバックライトを含むことができる。マルチビューディスプレイ112は、広角バックライト115を使用して、2Dモード中に広角放出光を提供するように構成され得る。加えて、マルチビューディスプレイ112は、マルチビーム要素のアレイを有するマルチビューバックライト118を使用してマルチビューモード中に指向性放出光を提供するように構成されてもよく、指向性放出光は、マルチビーム要素アレイの各マルチビーム要素によって提供される複数の指向性光ビームを含む。いくつかの実施形態では、マルチビューディスプレイ112は、2Dモードに対応する第1の連続した時間間隔中に広角バックライト115を、マルチビューモードに対応する第2の連続した時間間隔中にマルチビューバックライト118を順次起動するためにモードコントローラ121を使用して、2Dおよびマルチビューモードを時間多重化するように構成され得る。指向性光ビームの指向性光ビーム方向は、マルチビュー画像103の異なるビュー方向に対応することができる。モードコントローラ121は、広角バックライト115またはマルチビューバックライト118を起動させるためのモード選択信号124を生成することができる。
【0025】
2Dモードでは、広角バックライト115を使用して、マルチビューディスプレイ112が2Dディスプレイのように動作するように画像を生成することができる。定義により、「広角」放出光は、マルチビュー画像またはマルチビューディスプレイのビューの円錐角よりも大きい円錐角を有する光として定義される。特に、いくつかの実施形態では、広角放出光は、約20度よりも大きい(例えば、>±20°)円錐角を有することができる。他の実施形態では、広角放出光円錐角は、約30度超(例えば、>±30°)または約40度超(例えば、>±40°)または約50度超(例えば、>±50°)であってもよい。例えば、広角放出光の円錐角は、約60度超(例えば、>±60°)であってもよい。
【0026】
マルチビューモードは、広角バックライト115の代わりにマルチビューバックライト118を使用することができる。マルチビューバックライト118は、互いに異なる主角度方向を有する複数の指向性光ビームとして光を散乱させるマルチビーム要素のアレイを上面または底面に有することができる。例えば、マルチビューディスプレイ112が、4つのビューを有するマルチビュー画像を表示するためにマルチビューモードで動作する場合、マルチビューバックライト118は、光を4つの指向性光ビームに散乱させることができ、各指向性光ビームは異なるビューに対応する。モードコントローラ121は、マルチビューバックライトを使用してマルチビュー画像が第1の順次時間間隔で表示され、広角バックライトを使用して2D画像が第2の順次時間間隔で表示されるように、2Dモードとマルチビューモードとの間を連続的に切り替えることができる。指向性光ビームは所定の角度にあってもよく、各指向性光ビームは、マルチビュー画像の異なるビューに対応する。
【0027】
いくつかの実施形態では、マルチビューディスプレイ112の各バックライトは、導光体内の光を導波光として導波するように構成される。本明細書では、「導光体」は、全内部反射すなわち「TIR」を使用して構造内で光を導波する構造として定義される。特に、導光体は、導光体の動作波長で実質的に透明なコアを含むことができる。様々な例において、「導光体」という用語は通常、導光体の誘電体材料と、その導光体を取り囲む材料または媒体との間の界面において光を導波するために全内部反射を使用する、誘電体光導波路を指す。定義によれば、導光体の屈折率が、導光体材料の表面に隣接する周囲媒体の屈折率よりも大きいことが、全内部反射の条件である。いくつかの実施形態では、導光体は、全内部反射をさらに促進するために、前述した屈折率の差に加えて、またはその代わりにコーティングを含むことができる。このコーティングは、例えば、反射性コーティングであってもよい。導光体は、プレートまたはスラブガイドおよびストリップガイドのうちの1つまたは両方を含むが、それらに限定されない、複数の導光体のうちのいずれかであってもよい。導光体は、プレートまたはスラブのような形状であってもよい。導光体は、光源(例えば、発光デバイス)によってエッジ照明され得る。
【0028】
いくつかの実施形態では、マルチビューディスプレイ112のマルチビューバックライト118は、マルチビーム要素アレイのマルチビーム要素を使用して、導波光の一部分を指向性放出光として散乱させるように構成され、マルチビーム要素アレイの各マルチビーム要素は、回折格子、微小屈折要素、および微小反射要素のうちの1つまたは複数を含む。いくつかの実施形態では、マルチビーム要素の回折格子は、複数の個々のサブ格子を含むことができる。いくつかの実施形態では、微小反射要素は、導波光部分を複数の指向性光ビームとして反射的に結合または散乱させるように構成される。微小反射要素は、導波光が散乱される方法を制御するための反射コーティングを有することができる。いくつかの実施形態では、マルチビーム要素は、屈折によって、または屈折を使用して、導波光部分を複数の指向性光ビームとして結合または散乱させる(すなわち、導波光部分を屈折的に散乱させる)ように構成された微小屈折要素を備える。
【0029】
マルチビューディスプレイ112はまた、バックライトの上方(例えば、広角バックライト115の上方およびマルチビューバックライト118の上方)に配置されたライトバルブアレイを含むことができる。ライトバルブアレイのライトバルブは、例えば、液晶ライトバルブ、電気泳動ライトバルブ、エレクトロウェッティングに基づくもしくはエレクトロウェッティングを使用するライトバルブ、またはそれらの任意の組み合わせであってもよい。2Dで動作するとき、広角バックライト115は、ライトバルブアレイに向かって光を放出する。この光は、広角で放出される拡散光であってもよい。各ライトバルブは、広角バックライト115によって放出された光によって照明されるときに、特定のピクセルバルブを達成して2D画像を表示するように制御される。この点において、各ライトバルブは、単一のピクセルに対応する。この点において、単一のピクセルは、単一のピクセルセル(例えば、LCDセル)を構成する異なる色のピクセル(例えば、赤色、緑色、青色)を含むことができる。
【0030】
マルチビューバックライト118は、マルチビューモードで動作するとき、ライトバルブアレイを照明するために指向性光ビームを放出する。ライトバルブは、マルチビューピクセルを形成するために一緒にグループ化され得る。例えば、4ビューマルチビュー構成では、マルチビューピクセルは、それぞれが異なるビューに対応する異なるピクセルを含むことができる。マルチビューピクセル内の各ピクセルは、異なるカラーピクセルをさらに含むことができる。
【0031】
マルチビューピクセル配置内の各ライトバルブは、主角度方向を有する光ビームのうちのその1つによって照明され得る。したがって、マルチビューピクセルは、マルチビュー画像のピクセルの異なるビューを提供するピクセルグループである。いくつかの実施形態では、マルチビューバックライト118の各マルチビーム要素は、ライトバルブアレイのマルチビューピクセル専用である。
【0032】
マルチビューディスプレイ112は、マルチビュー画像103を表示するための画面を備える。画面は、例えば、電話(例えば、携帯電話、スマートフォンなど)、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータのコンピュータモニタ、カメラディスプレイ、または実質的に任意の他のデバイスの電子ディスプレイのディスプレイ画面であってもよい。
【0033】
本明細書で使用される場合、冠詞「1つ(a)」は、特許技術におけるその通常の意味、すなわち「1つまたは複数」を有することを意図している。例えば、「プロセッサ(a processor)」は1つまたは複数のプロセッサを意味し、したがって、本明細書では「そのメモリ(the memory)」は「1つまたは複数のメモリコンポーネント」を意味する。
【0034】
図3は、本明細書で説明する原理と一致する実施形態による、送信側クライアントデバイスによるストリーミングマルチビュービデオの一例を示す。送信側クライアントデバイス203は、ビデオコンテンツを1つまたは複数の受信側へ送信する役割を担うクライアントデバイスである。クライアントデバイスの一例が、
図6に関してさらに詳細に説明される。送信側クライアントデバイス203は、送信側クライアントデバイス203のマルチビューディスプレイ205上にマルチビューコンテンツをレンダリングする役割を担うプレーヤアプリケーション204を実行することができる。プレーヤアプリケーション204は、入力ビデオ206を受信し、または別の形で生成し、それをマルチビューディスプレイ205上にレンダリングするユーザレベルアプリケーションであってもよい。入力ビデオ206は、入力ビデオ206の各フレームがシーンの複数のビューを含むように任意のマルチビュービデオフォーマットでフォーマットされたマルチビュービデオであってもよい。例えば、入力ビデオ206の各レンダリングされたフレームは、
図1のマルチビュー画像103と同様であってもよい。プレーヤアプリケーション204は、入力ビデオ206をインターレースされたビデオ208に変換することができ、インターレースされたビデオ208は、インターレースされたフレーム211で構成される。インターレースされたビデオ208については、以下でさらに詳細に論じる。レンダリングプロセスの一部として、プレーヤアプリケーション204は、インターレースされたビデオ208をバッファ212にロードすることができる。バッファ212は、マルチビューディスプレイ205にその後表示される画像コンテンツを記憶する一次フレームバッファであってもよい。バッファ212は、マルチビューディスプレイ112上に画像をレンダリングするために使用されるグラフィックスメモリの一部であってもよい。
【0035】
本開示の実施形態は、プレーヤアプリケーション204と並行して動作することができるストリーミングアプリケーション213に関する。ストリーミングアプリケーション213は、送信側クライアントデバイス203において、プレーヤアプリケーション204または他のユーザ入力によって呼び出されるバックグラウンドサービスまたはルーチンとして実行することができる。ストリーミングアプリケーション213は、送信側クライアントデバイス203上でレンダリングされたマルチビューコンテンツを1つまたは複数の受信側クライアントデバイスと共有するように構成される。
【0036】
例えば、送信側クライアントデバイス203(例えば、送信側クライアントデバイス203のストリーミングアプリケーション213)の機能は、送信側クライアントデバイス203のマルチビューディスプレイ205上でレンダリングされた、インターレースされたビデオ208のインターレースされたフレーム211をキャプチャすることを含み、インターレースされたフレーム211は、第1のビュー数(例えば、ビュー1~ビュー4として示されている4つのビュー)を有するマルチビュー構成によって定義された、空間的に多重化されたビューとしてフォーマットされる。送信側クライアントデバイス203はまた、インターレースされたフレームの空間的に多重化されたビューを別々のビューにデインターレースすることを含む動作を実行することができ、別々のビューは、タイル化ビデオ217のタイル化フレーム214を生成するために連結される。送信側クライアントデバイス203はまた、タイル化ビデオ217を受信側クライアントデバイスに送信することを含む動作を実行することができ、タイル化ビデオは、圧縮されたビデオ223として圧縮される。
【0037】
マルチビューディスプレイ205は、
図1または
図2のマルチビューディスプレイ112と同様であってもよい。例えば、マルチビューディスプレイ205は、広角バックライトとマルチビューバックライトとの間を切り替えることによって、2Dモードと3Dモードとの間で時間多重化するように構成され得る。マルチビューディスプレイ205は、送信側クライアントデバイス203のユーザにライトフィールドコンテンツ(例えば、ライトフィールドビデオまたはライトフィールド静止画像)を提示することができる。例えば、ライトフィールドコンテンツは、例えば、マルチビューコンテンツ(例えば、インターレースされたフレーム211を含むインターレースされたビデオ208)を指す。上述したように、プレーヤアプリケーション204およびグラフィックスパイプラインは、インターレースされたビデオ208をマルチビューディスプレイ205上で処理およびレンダリングすることができる。レンダリングは、マルチビューディスプレイ205の物理ピクセルにその後マッピングされる画像のピクセル値を生成することを含む。マルチビューバックライト118が選択されてもよく、マルチビューディスプレイ205のライトバルブが、ユーザのためのマルチビューコンテンツを生成するように制御されてもよい。
【0038】
グラフィックスパイプラインは、表示用の画像データをレンダリングするシステムである。グラフィックスパイプラインは、1つまたは複数のグラフィックス処理装置(GPU)、GPUコア、または画像コンテンツを画面にレンダリングするために最適化された他の専用処理回路を含むことができる。例えば、GPUは、データのアレイに対して並列に動作するように命令セットを実行するベクトルプロセッサを含むことができる。グラフィックスパイプラインは、グラフィックスカード、グラフィックスドライバ、またはグラフィックスをレンダリングするために使用される他のハードウェアおよびソフトウェアを含むことができる。グラフィックスパイプラインは、グラフィックスメモリからのピクセルをディスプレイの対応する位置上にマッピングし、画像をレンダリングするために光を放出するようにディスプレイを制御することができる。グラフィックスパイプラインは、送信側クライアントデバイス203の中央処理装置(CPU)とは別個のサブシステムであってもよい。例えば、グラフィックスパイプラインは、CPUとは別個の専用プロセッサ(例えば、GPU)を含むことができる。いくつかの実施形態では、グラフィックスパイプラインは、CPUによって純粋にソフトウェアとして実装される。例えば、CPUは、専用のグラフィックスハードウェアなしにグラフィックスパイプラインとして動作するソフトウェアモジュールを実行することができる。いくつかの実施形態では、グラフィックスパイプラインの一部は、専用ハードウェア内に実装され、他の部分は、CPUによってソフトウェアモジュールとして実装される。
【0039】
上述したように、ストリーミングアプリケーション213によって実行される動作は、インターレースされたビデオ208のインターレースされたフレーム211をキャプチャすることを含む。さらに詳述すると、グラフィックスパイプラインで処理された画像データは、関数呼び出しまたはアプリケーションプログラミングインターフェース(API)呼び出しを使用してアクセスされ得る。この画像データは、異なるピクセル座標にピクセル値を含むピクセルアレイを含むテクスチャと称され得る。例えば、テクスチャデータは、ピクセルの値、例えば各色チャネルもしくは透明度チャネルの値、ガンマ値、またはピクセルの色、明るさ、強度、もしくは透明度を特徴付ける他の値などを含むことができる。送信側クライアントデバイス203のマルチビューディスプレイ205上にレンダリングされたインターレースされたビデオ208のインターレースされた各フレーム211をキャプチャするために、グラフィックスパイプラインに命令が送られ得る。インターレースされたフレーム211は、グラフィックスメモリ(例えば、テクスチャメモリ、グラフィックプロセッサにアクセス可能なメモリ、レンダリングされた出力を記憶するメモリ)に記憶され得る。インターレースされたフレーム211は、レンダリングされるフレーム(例えば、レンダリングされたフレームまたはこれからレンダリングされるフレーム)を表すテクスチャデータをコピーするか、または別の形でアクセスすることによってキャプチャされ得る。インターレースされたフレーム211は、マルチビューディスプレイ205に固有のフォーマットでフォーマットされ得る。これにより、マルチビューディスプレイ205のファームウェアまたはデバイスドライバが、マルチビューディスプレイ205のライトバルブを制御して、インターレースされたビデオ208をマルチビュー画像(例えば、マルチビュー画像103)としてユーザに提示することが可能になる。インターレースされたビデオ208のインターレースされたフレーム211をキャプチャすることは、アプリケーションプログラミングインターフェース(API)を用いてグラフィックスメモリからテクスチャデータにアクセスすることを含むことができる。
【0040】
インターレースされたフレーム211は、非圧縮フォーマットである。インターレースされたフレーム211は、第1のビュー数(例えば、2つのビュー、4つのビュー、8つのビューなど)を有するマルチビュー構成によって定義された空間的に多重化されたビューとしてフォーマットされ得る。いくつかの実施形態では、マルチビューディスプレイ205は、特定のマルチビュー構成に従って構成され得る。マルチビュー構成は、マルチビューディスプレイ205が一度に提示することができるビューの最大数およびそれらのビューの向きを定義する構成である。マルチビュー構成は、マルチビューコンテンツを提示する方法を定義するマルチビューディスプレイ205のハードウェア制限であってもよい。異なるマルチビューディスプレイは、(例えば、それが提示することができるビューの数またはビューの向きに関して)異なるマルチビュー構成を有することができる。
【0041】
図3に示すように、インターレースされた各フレーム211は、空間的に多重化されたビューを有する。
図3は、4つのビューのうちの1つに対応するピクセルを示し、この場合ピクセルは、インターレースされている(例えば、インターリーブされるか、または空間的に多重化される)。ビュー1に属するピクセルを番号1で表し、ビュー2に属するピクセルを番号2で表し、ビュー3に属するピクセルを番号3で表し、ビュー4に属するピクセルを番号4で表す。ビューは、ピクセル単位で、各行に沿って水平にインターレースされる。インターレースされたフレーム211は、大文字A~Eによって表されるピクセルの行と、小文字a~hによって表されるピクセルの列とを有する。
図3は、行E、列e~hにおける1つのマルチビューピクセル220の位置を示す。マルチビューピクセル220は、4つのビューのそれぞれのピクセルからのピクセルの配置である。言い換えると、マルチビューピクセル220は、4つのビューのそれぞれの個々のピクセルを、これらがインターレースされるように空間的に多重化した結果である。
図3は、異なるビューのピクセルを水平方向に空間的に多重化することを示しているが、異なるビューのピクセルは、垂直方向ならびに水平方向と垂直方向の両方に空間的に多重化され得る。
【0042】
空間的に多重化されたビューは、4つのビューの各々からのピクセルを有するマルチビューピクセル220をもたらすことができる。いくつかの実施形態では、マルチビューピクセルは、
図3に示すように、特定の方向に互い違いに配置されてもよく、この場合マルチビューピクセルは、垂直に互い違いに配置されながら水平に整列される。他の実施形態では、マルチビューピクセルは、水平方向に互い違いに配置され、垂直方向に整列されてもよい。マルチビューピクセルが空間的に多重化され、互い違いに配置される特定の方法は、マルチビューディスプレイ205の設計およびそのマルチビュー構成に依存し得る。例えば、インターレースされたフレーム211は、ピクセルをインターレースし、そのピクセルをマルチビューピクセルに配置して、それらをマルチビューディスプレイ205の物理ピクセル(例えば、ライトバルブ)にマッピングすることを可能にすることができる。言い換えれば、インターレースされたフレーム211のピクセル座標は、マルチビューディスプレイ205の物理的な位置に対応する。
【0043】
次に、送信側クライアントデバイス203のストリーミングアプリケーション213は、インターレースされたフレーム211の空間的に多重化されたビューを別々のビューにデインターレースすることができる。デインターレースは、マルチビューピクセルの各ピクセルを分離して分離されたビューを形成することを含むことができる。したがって、ビューが統合される。インターレースされたフレーム211はピクセルを、これらが分離されないように混合するが、デインターレースは、ピクセルを別々のビューに分離する。このプロセスは、タイル化フレーム214(例えば、デインターレースされたフレーム)を生成することができる。さらに、別々の各ビューは、互いに隣接して配置されるように連結され得る。したがって、フレームは、フレーム内の各タイルが異なるデインターレースされたビューを表すようにタイル化される。ビューは、水平方向、垂直方向、またはその両方に並んで配置されるか、または他の方法でタイル化され得る。タイル化フレーム214は、インターレースされたフレーム211とほぼ同じ数のピクセルを有することができるが、タイル化フレーム内のピクセルは、別々のビュー(v1、v2、v3、およびv4として示されている)に配置される。タイル化フレーム214のピクセル配列は、行A~Nおよび列a~nにまたがるように示されている。ビュー1に属するピクセルは左上象限に配置され、ビュー2に属するピクセルは左下象限に配置され、ビュー3に属するピクセルは右上象限に配置され、ビュー4に属するピクセル右下象限に配置される。この例では、各タイル化フレーム214は、象限内に配置された4つの別々のビューとして視聴者に見える。タイル化フレーム214のタイル化フォーマットは、送信またはストリーミング目的のためのものであり、実際にはユーザへの提示に使用されなくてもよい。このタイル化フレームフォーマットは、圧縮により適している。さらに、タイル化フレームフォーマットは、様々なマルチビュー構成を有する受信側クライアントデバイスが、送信側クライアントデバイス203からストリーミングされたマルチビュービデオをレンダリングすることを可能にする。一緒になって、タイル化フレーム214は、タイル化ビデオ217を形成する。
【0044】
送信側クライアントデバイス203は、次いで、タイル化ビデオ217を受信側クライアントデバイスに送信することができ、タイル化ビデオは、圧縮されたビデオ223として圧縮される。圧縮されたビデオ223は、例えば、H.264または任意の他のCODEC仕様などの圧縮仕様に準拠するビデオエンコーダ(例えば、圧縮機)(例えば、コーダデコーダ(CODEC))を使用して生成され得る。圧縮は、CODECによって定義されたように、一連のフレームをIフレーム、Pフレーム、およびBフレームに変換する生成を含むことができる。上述したように、圧縮の準備ができている各フレームは、マルチビュー画像のデインターレースされた、連結されたビューを含むフレームである。いくつかの実施形態では、タイル化ビデオ217を送信することは、APIを使用してタイル化ビデオ217をリアルタイムでストリーミングすることを含む。リアルタイムストリーミングは、現在レンダリングされているコンテンツがリモートデバイスにもストリーミングされることを可能にして、リモートデバイスもリアルタイムでそのコンテンツを見ることができるようにする。サードパーティサービスは、タイル化ビデオ217を圧縮およびストリーミングするためのAPIを提供することができる。いくつかの実施形態では、送信側クライアントデバイス203は、タイル化ビデオ217を送信する前に、タイル化ビデオ217を圧縮することを含む動作を実行することができる。送信側クライアントデバイス203は、ビデオを圧縮するためのハードウェアまたはソフトウェアビデオエンコーダを含むことができる。圧縮されたビデオ223は、サーバを介してクラウドサービス(例えば、インターネットを介して)を使用してストリーミングされ得る。圧縮されたビデオ223はまた、送信側クライアントデバイス203と1つまたは複数の受信側クライアントデバイスとの間のピアツーピア接続を介してストリーミングされ得る。
【0045】
ストリーミングアプリケーション213は、任意の数のプレーヤアプリケーション204がレンダリングされたコンテンツを1つまたは複数の受信側クライアントデバイスと共有することを可能にする。この点において、送信側クライアントデバイス203の各プレーヤアプリケーション204を、リアルタイムストリーミングをサポートするように変更する必要があるのではなく、ストリーミングアプリケーション213は、マルチビューコンテンツをキャプチャし、それを圧縮に適したフォーマットで受信側クライアントデバイスにストリーミングする。この点において、いずれのプレーヤアプリケーション204も、ストリーミングアプリケーション213と連携して動作することにより、リアルタイムマルチビュービデオストリーミングをサポートすることができる。
【0046】
図4は、本明細書で説明する原理と一致する実施形態による、送信側クライアントデバイスからストリーミングされたマルチビュービデオを受信する一例を示す。
図4は、圧縮されたビデオ223のストリームを受信する受信側クライアントデバイス224を示している。上記で論じたように、圧縮されたビデオ223は、タイル化フレームを含むタイル化ビデオを含むことができ、この場合各タイル化フレームは、マルチビュー画像(例えば、
図1のマルチビュー画像103)のデインターレースされた連結されたビューを含む。受信側クライアントデバイス224は、送信側クライアントデバイス203から受信したタイル化ビデオ217を解凍するように構成され得る。例えば、受信側クライアントデバイス224は、圧縮されたビデオ223の受信されたストリームを解凍するビデオデコーダを含むことができる。
【0047】
タイル化ビデオ217が解凍されると、受信側クライアントデバイス224は、ストリーミングされたインターレースされたビデオ225を生成するために、第2のビュー数を有するマルチビュー構成によって定義された空間的に多重化されたビューにタイル化フレーム214をインターレースすることができる。ストリーミングされたインターレースされたビデオ225は、受信側クライアントデバイス224での表示のためにレンダリングされる、ストリーミングされたインターレースされたフレーム226を含むことができる。具体的には、ストリーミングされたインターレースされたビデオ225は、バッファ227(例えば、受信側クライアントデバイス224の一次フレームバッファ)にバッファされ得る。受信側クライアントデバイス224は、マルチビューディスプレイ231、例えば、
図1または
図2のマルチビューディスプレイ112などを含むことができる。マルチビューディスプレイ231は、マルチビューディスプレイ231によって提示されることが可能なビューの最大数、ビューの特定の向き、またはその両方を指定するマルチビュー構成に従って構成され得る。
【0048】
送信側クライアントデバイス203のマルチビューディスプレイ205は、第1のビュー数を有するマルチビュー構成によって定義されてもよく、その一方で受信側クライアントデバイス224のマルチビューディスプレイ231は、第2のビュー数を有するマルチビュー構成によって定義される。いくつかの実施形態では、第1のビュー数と第2のビュー数は、同じであってもよい。例えば、送信側クライアントデバイス203は、4ビューマルチビュービデオを提示し、そのビデオを、4ビューマルチビュービデオとしてこれもまた提示する受信側クライアントデバイス224にストリーミングするように構成され得る。他の実施形態では、第1のビュー数は、第2のビュー数と異なっていてもよい。例えば、送信側クライアントデバイス203は、受信側クライアントデバイス224のマルチビューディスプレイ231のマルチビュー構成に関係なく、受信側クライアントデバイス224にビデオをストリーミングすることができる。この点において、送信側クライアントデバイス203は、受信側クライアントデバイス224のマルチビュー構成の種類を考慮する必要はない。
【0049】
いくつかの実施形態では、受信側クライアントデバイス224は、第2のビュー数が第1のビュー数よりも多い場合に、タイル化フレーム214のための追加のビューを生成するように構成される。受信側クライアントデバイス224は、各タイル化フレーム214からの新しいビューを合成して、マルチビューディスプレイ231のマルチビュー構成によってサポートされるビューの数を生成することができる。例えば、各タイル化フレーム214が4つのビューを含み、受信側クライアントデバイス224が8つのビューをサポートする場合、受信側クライアントデバイス224は、各タイル化フレーム214について追加のビューを生成するためにビュー合成動作を実行することができる。したがって、受信側クライアントデバイス224でレンダリングされる、ストリーミングされたインターレースされたビデオ225は、送信側クライアントデバイス203でレンダリングされたインターレースされたビデオ208と同様である。しかしながら、ビデオストリーミングに伴う圧縮および解凍動作に起因して品質に何らかの損失が生じる場合がある。加えて、上記で説明したように、受信側クライアントデバイス224は、送信側クライアントデバイス203と受信側クライアントデバイス224との間のマルチビュー構成の違いに対応するために、ビューを追加または除去することができる。
【0050】
ビュー合成は、新しいビューを生成するために1つまたは複数の元のビューを補間または外挿する動作を含む。ビュー合成は、非遮蔽領域を埋めるなどのために近くの領域をサンプリングするための順方向ワーピング、深度テスト、およびインペインティング技術のうちの1つまたは複数を含むことができる。順方向ワーピングは、ソース画像に変換を適用する画像歪みプロセスである。ソース画像からのピクセルは、走査線順に処理されてもよく、結果は、ターゲット画像に投影される。深度テストは、シェーダによって処理される、または処理されるべき画像のフラグメントが、書き込まれているサンプルの深度に関してテストされる深度値を有するプロセスである。フラグメントは、試験が失敗したときに破棄される。また、深度バッファは、テストに合格したときにフラグメントの出力深度で更新される。インペインティングとは、画像の欠落または未知の領域を塗りつぶすことを指す。いくつかの技術は、近傍のピクセルに基づいてピクセル値を予測すること、または近傍のピクセルを未知の領域または欠落領域に反映することを含む。画像の欠落領域または未知の領域は、別のシーンオブジェクトによって部分的に覆われているシーンオブジェクトを指すシーンデオクルージョンから生じ得る。この点において、再投影は、元の視点からシーンの新しい視点を構築するための画像処理技術を含むことができる。ビューは、訓練されたニューラルネットワークを使用して合成され得る。
【0051】
いくつかの実施形態では、第2のビュー数は、第1のビュー数よりも少なくてもよい。受信側クライアントデバイス224は、第2のビュー数が第1のビュー数よりも少ない場合に、タイル化フレーム214のビューを除去するように構成され得る。例えば、各タイル化フレーム214が4つのビューを含み、受信側クライアントデバイス224が2つのビューのみをサポートする場合、受信側クライアントデバイス224は、タイル化フレーム214から2つのビューを除去することができる。これにより、4ビュータイル化フレーム214が2つのビューに変換される。
【0052】
(任意の新たに追加されたビューまたは新たに除去されたビューを含むことができる)タイル化フレーム214のビューは、ストリーミングされたインターレースされたビデオ225を生成するためにインターレースされる。インターレースの方法は、マルチビューディスプレイ231のマルチビュー構成に依存し得る。受信側クライアントデバイス224は、受信側クライアントデバイス224のマルチビューディスプレイ231上に、ストリーミングされたインターレースされたビデオ225をレンダリングするように構成される。結果として得られるビデオは、送信側クライアントデバイス203のマルチビューディスプレイ205上にレンダリングされたビデオと同様である。ストリーミングされたインターレースされたビデオ225は、受信側クライアントデバイス224のマルチビュー構成に従って解凍され、インターレースされる。したがって、送信側クライアントデバイス203上のライトフィールド体験は、受信側クライアントデバイス224のマルチビュー構成にかかわらず、1つまたは複数の受信側クライアントデバイス224によってリアルタイムで複製され得る。例えば、タイル化ビデオを送信することは、アプリケーションプログラミングインターフェースを使用してタイル化ビデオをリアルタイムでストリーミングすることを含む。
【0053】
図5は、本明細書で説明する原理と一致する実施形態による、送信側および受信側システムの機能およびアーキテクチャの一例を示す。例えば、
図5は、ビデオを1つまたは複数の受信側システム239にストリーミングする送信側システム238を示している。送信側システム238は、ライトフィールドコンテンツをストリーミングするための圧縮されたビデオを1つまたは複数の受信側システム239に送信するように構成された送信側クライアントデバイス203として具現化され得る。受信側システム239は、受信側クライアントデバイス224として具現化され得る。
【0054】
送信側システム238は、例えば、いくつかのビューを有するマルチビュー構成に従って構成されたマルチビューディスプレイ(例えば、
図3のマルチビューディスプレイ205)を含むことができる。送信側システム238は、プロセッサ、例えば、CPU、GPU、専用処理回路、またはそれらの任意の組み合わせなどを含むことができる。送信側システムは、実行されると、プロセッサに様々なビデオストリーミング動作を実行させる複数の命令を記憶するメモリを含むことができる。送信側システム238は、
図6に関して以下でさらに詳細に論じるように、クライアントデバイスであってもよく、またはクライアントデバイスのいくつかのコンポーネントを含んでもよい。
【0055】
送信側システム238に関して、ビデオストリーミング動作は、マルチビューディスプレイ上にインターレースされたビデオのインターレースされたフレームをレンダリングする動作を含む。送信側システム238は、ビデオデータを、インターレースされたビデオをマルチビュービデオとして視覚的に表示する光ビームに変換するために、グラフィックスパイプライン、マルチビューディスプレイドライバ、およびマルチビューディスプレイファームウェアを含むことができる。例えば、インターレースされたビデオ243のインターレースされたフレームは、マルチビューディスプレイの物理ピクセルにマッピングされたピクセル配列としてメモリ内に記憶され得る。インターレースされたフレームは、送信側システム238固有の非圧縮フォーマットであってもよい。マルチビューバックライトは、指向性光ビームを放出するように選択されてもよく、次いで、ライトバルブアレイは、指向性光ビームを変調して視聴者に対するマルチビュービデオコンテンツを生成するように制御されてもよい。
【0056】
ビデオストリーミング動作は、メモリ内のインターレースされたフレームをキャプチャする動作をさらに含み、インターレースされたフレームは、マルチビューディスプレイの第1のビュー数を有するマルチビュー構成によって定義された空間的に多重化されたビューとしてフォーマットされる。送信側システム238は、画面抽出器240を含むことができる。画面抽出器は、グラフィックスメモリからのインターレースされたフレーム(例えば、
図3のインターレースされたフレーム211)にアクセスするソフトウェアモジュールであってもよく、この場合インターレースされたフレームは、マルチビューディスプレイ上にレンダリングされる(例えば、レンダリングされた、またはレンダリングされようとしている)ビデオコンテンツを表す。インターレースされたフレームは、APIを使用してアクセス可能なテクスチャデータとしてフォーマットされ得る。インターレースされた各フレームは、インターレースされた、または別の形で空間的に多重化されたマルチビュー画像のビューとしてフォーマットされ得る。マルチビューピクセルをインターレースし、配置するビューの数および方法は、マルチビューディスプレイのマルチビュー構成によって制御され得る。画面抽出器240は、非圧縮ビデオであるインターレースされたビデオ243のストリームへのアクセスを提供する。異なるプレーヤアプリケーションが、インターレースされたビデオ243をレンダリングすることができ、インターレースされたビデオは、その後画面抽出器240によってキャプチャされる。
【0057】
ビデオストリーミング動作は、インターレースされたビデオの空間的に多重化されたビューを別々のビューにデインターレースする動作をさらに含み、別々のビューは連結されて、タイル化ビデオ249のタイル化フレームを生成する。例えば、送信側システム238は、デインターレーシングシェーダ246を含むことができる。シェーダは、テクスチャデータまたは他のビデオデータを処理するためにグラフィックスパイプラインで実行されるモジュールまたはプログラムであってもよい。デインターレーシングシェーダ246は、タイル化フレーム(例えば、タイル化フレーム214)からなるタイル化ビデオ249を生成する。各タイル化フレームは、マルチビューフレームのビューを含み、この場合ビデオは、それらがタイル化フレームの別々の領域内に配置されるように分離され連結される。タイル化フレーム内の各タイルは、異なるビューを表すことができる。
【0058】
ビデオストリーミング動作は、タイル化ビデオ249を受信側システム239に送信する動作をさらに含み、タイル化ビデオ249は圧縮される。例えば、送信側システム238は、APIを使用してタイル化ビデオ249をリアルタイムでストリーミングすることによって、タイル化ビデオ249を送信することができる。マルチビューコンテンツが送信側システム238による表示のためにレンダリングされると、送信側システム238は、そのコンテンツのリアルタイムストリームを受信側システム239に提供する。送信側システム238は、アウトバウンドビデオストリームを受信側システム239に送信するストリーミングモジュール252を含むことができる。ストリーミングモジュール252は、圧縮されたビデオをストリーミングするためにサードパーティAPIを使用することができる。ストリーミングモジュール252は、タイル化ビデオ249の送信前にタイル化ビデオ249を圧縮するビデオエンコーダ253(例えば、CODEC)を含むことができる。
【0059】
受信側システム239は、例えば、いくつかのビューを有するマルチビュー構成に従って構成されたマルチビューディスプレイ(例えば、マルチビューディスプレイ231)を含むことができる。受信側システム239は、プロセッサ、例えば、CPU、GPU、専用処理回路、またはそれらの任意の組み合わせなどを含むことができる。受信側システム239は、実行されると、プロセッサにビデオストリームを受信し、レンダリングする動作を実行させる複数の命令を記憶するメモリを含むことができる。受信側システム239は、クライアントデバイスであってもよく、またはクライアントデバイス、例えば
図6に関して論じたクライアントデバイスなどのコンポーネントを含んでもよい。
【0060】
受信側システム239は、送信側システム238から受信したタイル化ビデオ261を解凍するように構成され得る。受信側システム239は、送信側システム238から圧縮されたビデオを受信する受信モジュール255を含むことができる。受信モジュール255は、受信した圧縮されたビデオをメモリ(例えば、バッファ)内にバッファリングすることができる。受信モジュール255は、圧縮されたビデオをタイル化ビデオ261に解凍するためのビデオデコーダ258(例えば、CODEC)を含むことができる。タイル化ビデオ261は、送信側システム238によって処理されるタイル化ビデオ249と同様であってもよい。しかしながら、ビデオストリームの圧縮および解凍により、ある程度の品質が失われる可能性がある。これは、非可逆圧縮アルゴリズムを使用した結果である。
【0061】
受信側システム239は、タイル化ビデオ261内の各タイル化フレームの目標ビュー数を生成するためのビュー合成器264を含むことができる。各タイル化フレームに対して新しいビューが合成されてもよく、または各タイル化フレームからビューが除去されてもよい。ビュー合成器264は、受信側システム239のマルチビューディスプレイのマルチビュー構成によって指定される目標ビュー数を達成するために、各タイル化フレーム内に存在するビュー数を変換する。受信側システム239は、タイル化フレームを、第2のビュー数を有するマルチビュー構成によって定義される空間的に多重化されたビューにインターレースし、ストリーミングされたインターレースされたビデオ270を生成するように構成され得る。例えば、受信側システム239は、フレームの別々のビュー(例えば、任意の新たに合成されたビュー、またはいくつかのビューが除去されたビュー)を受信し、受信側システム239のマルチビュー構成に従ってビューをインターレースして、ストリーミングされたインターレースされたビデオ270を生成するインターレーシングシェーダ267を含むことができる。ストリーミングされたインターレースされたビデオ270は、受信側システム239のマルチビューディスプレイに適合するようにフォーマットされ得る。その後、受信側システム239は、ストリーミングされたインターレースされたビデオ270を受信側システム239のマルチビューディスプレイ上にレンダリングすることができる。これは、送信側システム238から受信側システム239へのライトフィールドコンテンツのリアルタイムストリーミングを提供する。
【0062】
したがって、実施形態によれば、受信側システム239は、送信側システム238からストリーミングされたマルチビュービデオを受信側システム239によって受信することを含む様々な動作を実行することができる。例えば、受信側システム239は、例えば送信側システム238からタイル化ビデオを受信するなどの動作を実行することができる。タイル化ビデオは、タイル化フレームを含むことができ、この場合タイル化フレームは、連結された別個のビューを含む。タイル化フレームのビュー数は、送信側システム238の第1のビュー数を有するマルチビュー構成によって定義され得る。言い換えれば、送信側システム238は、送信側システム238によってサポートされるビューの数に従って、タイル化ビデオストリームを生成することができる。受信側システム239は、追加の動作、例えば、ストリーミングされたインターレースされたビデオ270を生成するために、タイル化ビデオを解凍し、このタイル化フレームを、第2のビュー数を有するマルチビュー構成によって定義された空間的に多重化されたビューにインターレースすることなどを実行することができる。
【0063】
上述したように、送信側システム238と受信側システム239との間のマルチビュー構成は、それぞれが異なるビュー数またはそれらのビューの異なる向きをサポートするように異なっていてもよい。受信側システム239は、第2のビュー数が第1のビュー数よりも大きい場合、タイル化フレームのための追加のビューを生成する動作、または、第2のビュー数が第1のビュー数よりも少ない場合、タイル化フレームのビューを除去する動作を実行することができる。したがって、受信側システム239は、受信側システム239によってサポートされる目標数のビューに到達するために、追加のビューを合成するか、または、タイル化フレームからビューを除去することができる。そして、受信側システム239は、受信側システム239のマルチビューディスプレイ上でストリーミングされたインターレースされたビデオ270をレンダリングする動作を実行することができる。
【0064】
図5は、送信側システム238および受信側システム239内の様々なコンポーネントまたはモジュールを示す。ソフトウェアで具現化される場合、各ボックス(例えば、画面抽出器240、デインターレーシングシェーダ246、ストリーミングモジュール252、受信モジュール255、ビュー合成器264、またはインターレーシングシェーダ267)は、指定された論理機能を実施するための命令を含むモジュール、セグメント、またはコードの一部を表すことができる。命令は、プログラミング言語で書かれた人間可読ステートメントを含むソースコード、ソースコードからコンパイルされた物体コード、またはプロセッサ、クライアントデバイスなどの適切な実行システムによって認識可能な数値命令を含む機械コードの形態で具現化され得る。マシンコードは、ソースコードなどから変換され得る。ハードウェアで具現化される場合、各ブロックは、指定された論理機能を実施するための回路またはいくつかの相互接続された回路を表すことができる。
【0065】
図5は特定の実行順序を示すが、実行順序は図示されたものと異なってもよいことが理解される。例えば、2つまたはそれ以上のボックスの実行順序が、示された順序に対してスクランブルされてもよい。また、示される2つ以上のボックスは、同時に、または部分的に同時に実行されてもよい。さらに、いくつかの実施形態では、ボックスのうちの1つまたは複数がスキップまたは省略されてもよい。
【0066】
図6は、本明細書で説明する原理と一致する実施形態による、クライアントデバイスの例示的な図を示す概略ブロック図である。クライアントデバイス1000は、送信側クライアントデバイス203または受信側クライアントデバイス224を表すことができる。さらに、クライアントデバイス1000のコンポーネントは、送信側システム238または受信側システム239として説明され得る。クライアントデバイス1000は、送信側から受信側にマルチビュービデオコンテンツをストリーミングするための様々なコンピューティング動作を実行するコンポーネントのシステムを含むことができる。クライアントデバイス1000は、ラップトップ、タブレット、スマートフォン、タッチスクリーンシステム、インテリジェントディスプレイシステム、または他のクライアントデバイスであってもよい。クライアントデバイス1000は、様々なコンポーネント、例えば、プロセッサ(複数可)1003、メモリ(複数可)1006、入力/出力(I/O)コンポーネント(複数可)1009、ディスプレイ1012、および潜在的な他のコンポーネントを含むことができる。これらのコンポーネントは、クライアントデバイス1000のコンポーネントが互いに通信することを可能にするローカルインターフェースとして機能するバス1015に結合することができる。クライアントデバイス1000のコンポーネントは、クライアントデバイス1000内に収容されるものとして示されているが、コンポーネントの少なくともいくつかは、外部接続を介してクライアントデバイス1000に結合し得ることを理解されたい。例えば、コンポーネントは、外部ポート、ソケット、プラグ、無線リンク、またはコネクタを介してクライアントデバイス1000に外部的に差し込まれるか、または別の形で接続することができる。
【0067】
プロセッサ1003は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、コンピューティング処理動作を実行する任意の他の集積回路、またはそれらの任意の組み合わせであってもよい。プロセッサ(複数可)1003は、1つまたは複数の処理コアを含むことができる。プロセッサ(複数可)1003は、命令を実行する回路を備える。命令は、例えば、コンピュータコード、プログラム、ロジック、または他のマシン可読命令を含み、これらは、プロセッサ(複数可)1003により受信され実行されて、命令に具現化されるコンピューティング機能を実施する。プロセッサ(複数可)1003は、データ上で動作するための命令を実行することができる。例えば、プロセッサ(複数可)1003は、入力データ(例えば、画像またはフレーム)を受信し、命令セットに従って入力データを処理し、出力データ(例えば、処理された画像またはフレーム)を生成することができる。別の例として、プロセッサ(複数可)1003は、命令を受信し、後続の実行のために新しい命令を生成することができる。プロセッサ1003は、ビデオコンテンツを処理およびレンダリングするためのグラフィックスパイプラインを実装するハードウェアを備えることができる。例えば、プロセッサ(複数可)1003は、1つまたは複数のGPUコア、ベクトルプロセッサ、スケーラプロセス、またはハードウェアアクセラレータを備えることができる。
【0068】
メモリ1006は、1つまたは複数のメモリコンポーネントを含むことができる。メモリ1006は、本明細書では、揮発性メモリおよび不揮発性メモリのいずれかまたは両方を含むものとして定義される。揮発性メモリコンポーネントは、電力喪失時に情報を保持しないものである。揮発性メモリは、例えば、ランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、磁気ランダムアクセスメモリ(MRAM)、または他の揮発性メモリ構造を含むことができる。システムメモリ(例えば、メインメモリ、キャッシュなど)は、揮発性メモリを使用して実装され得る。システムメモリは、プロセッサ(複数可)1003を支援するために、迅速な読み出しおよび書き込みアクセスのためのデータまたは命令を一時的に記憶し得る高速メモリを指す。
【0069】
不揮発性メモリコンポーネントは、電力喪失時に情報を保持するものである。不揮発性メモリは、読み出し専用メモリ(ROM)、ハードディスクドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカードリーダを介してアクセスされるメモリカード、関連するフロッピーディスクドライブを介してアクセスされるフロッピーディスク、光ディスクドライブを介してアクセスされる光ディスク、適切なテープドライブを介してアクセスされる磁気テープを含む。ROMは、例えば、プログラマブル読み出し専用メモリ(PROM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、または他の同様のメモリデバイスを含むことができる。記憶メモリは、データおよび命令の長期保持を提供するために、不揮発性メモリを使用して実装され得る。
【0070】
メモリ1006は、命令およびデータを記憶するために使用される揮発性メモリと不揮発性メモリとの組み合わせを指すことができる。例えば、データおよび命令は、不揮発性メモリに記憶され、プロセッサ1003による処理のために揮発性メモリにロードされ得る。命令の実行は、例えば、不揮発性メモリから揮発性メモリにロードされ、次いでプロセッサ1003によって実行され得る形式のマシンコードに変換されるコンパイル済みプログラム、プロセッサ1003による実行のために揮発性メモリにロードされることが可能なオブジェクトコードなどの適切な形式に変換されるソースコード、または揮発性メモリ内に命令を生成するために別の実行可能プログラムによって解釈され、プロセッサ1003によって実行されるソースコードなどを含むことができる。命令は、例えば、RAM、ROM、システムメモリ、記憶装置、またはそれらの任意の組み合わせを含むメモリ1006の任意の部分またはコンポーネントに記憶またはロードされ得る。
【0071】
メモリ1006は、クライアントデバイス1000の他のコンポーネントとは別個のものとして示されているが、メモリ1006は、少なくとも部分的に、1つまたは複数のコンポーネントに埋め込まれるか、または別の形で統合され得ることを理解されたい。例えば、プロセッサ(複数可)1003は、処理動作を実行するためのオンボードメモリレジスタまたはキャッシュを含むことができる。デバイスファームウェアまたはドライバは、専用メモリデバイス内に記憶された命令を含むことができる。
【0072】
I/Oコンポーネント(複数可)1009は、例えば、タッチスクリーン、スピーカー、マイクロフォン、ボタン、スイッチ、ダイヤル、カメラ、センサ、加速度計、またはユーザ入力を受信するか、もしくはユーザに向けられる出力を生成する他のコンポーネントを含む。I/Oコンポーネント(複数可)1009は、ユーザ入力を受信し、それをメモリ1006に記憶するための、またはプロセッサ(複数可)1003によって処理するためのデータに変換することができる。I/Oコンポーネント(複数可)1009は、メモリ1006またはプロセッサ(複数可)1003によって出力されたデータを受信し、それらをユーザによって知覚されるフォーマット(例えば、音、触覚応答、視覚情報など)に変換することができる。
【0073】
特定のタイプのI/Oコンポーネント1009は、ディスプレイ1012である。ディスプレイ1012は、マルチビューディスプレイ(例えば、マルチビューディスプレイ112、205、231)、2Dディスプレイと組み合わされたマルチビューディスプレイ、または画像を提示する任意の他のディスプレイを含むことができる。I/Oコンポーネント1009として機能する容量性タッチスクリーン層は、ユーザが視覚出力を同時に知覚しながら入力を提供することを可能にするために、ディスプレイ内に積層され得る。プロセッサ(複数可)1003は、ディスプレイ1012上に提示するための画像としてフォーマットされるデータを生成することができる。プロセッサ(複数可)1003は、ユーザによって知覚されるためにディスプレイ上に画像をレンダリングするための命令を実行することができる。
【0074】
バス1015は、プロセッサ(複数可)1003、メモリ1006、I/Oコンポーネント(複数可)1009、ディスプレイ1012、およびクライアントデバイス1000の任意の他のコンポーネントの間の命令およびデータの通信を容易にする。バス1015は、データおよび命令の通信を可能にするために、アドレス変換器、アドレスデコーダ、ファブリック、導電性トレース、導電性ワイヤ、ポート、プラグ、ソケット、および他のコネクタを含むことができる。
【0075】
メモリ1006内の命令は、ソフトウェアスタックの少なくとも一部を実装するように、種々の形態で具現化され得る。例えば、命令は、オペレーティングシステム1031、アプリケーション(複数可)1034、デバイスドライバ(例えば、ディスプレイドライバ1037)、ファームウェア(例えば、ディスプレイファームウェア1040)、他のソフトウェアコンポーネント、またはそれらの任意の組み合わせの一部として具現化され得る。オペレーティングシステム1031は、クライアントデバイス1000の基本機能、例えば、タスクのスケジューリング、I/Oコンポーネント1009の制御、ハードウェアリソースへのアクセスの提供、電力の管理、およびアプリケーション1034のサポートなどをサポートするソフトウェアプラットフォームである。
【0076】
アプリケーション(複数可)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は、ユーザがマルチビュービデオコンテンツをストリーミングするための受信側クライアントデバイスを選択し、選ぶことを可能にするアプリケーションであってもよい。プレーヤアプリケーション204およびストリーミングアプリケーション213は、オペレーティングシステム上で実行されるアプリケーション1034の例である。
【0077】
デバイスドライバ、例えば、ディスプレイドライバ1037などは、オペレーティングシステム1031がI/Oコンポーネント1009と通信することを可能にする命令を含む。各I/Oコンポーネント1009は、それ自体のデバイスドライバを有することができる。デバイスドライバは、それらが記憶装置内に記憶され、システムメモリにロードされるようにインストールされ得る。例えば、インストール時に、ディスプレイドライバ1037は、オペレーティングシステム1031から受信された高レベル表示命令を、画像を表示するためにディスプレイ1012によって実装される低レベル命令に変換する。
【0078】
ファームウェア、例えば、ディスプレイファームウェア1040は、I/Oコンポーネント1009またはディスプレイ1012が低レベル動作を実行することを可能にするマシンコードまたはアセンブリコードを含むことができる。ファームウェアは、特定のコンポーネントの電気信号をより高いレベルの命令またはデータに変換することができる。例えば、ディスプレイファームウェア1040は、電圧または電流信号を調整することによって、ディスプレイ1012が個々のピクセルを低レベルでどのようにアクティブ化するかを制御することができる。ファームウェアは、不揮発性メモリに記憶され、不揮発性メモリから直接実行され得る。例えば、ディスプレイファームウェア1040は、ROMチップがクライアントデバイス1000の他の記憶装置およびシステムメモリから分離されるように、ディスプレイ1012に結合されたROMチップに具現化され得る。ディスプレイ1012は、ディスプレイファームウェア1040を実行するための処理回路を含むことができる。
【0079】
オペレーティングシステム1031、アプリケーション(複数可)1034、ドライバ(例えば、ディスプレイドライバ1037)、ファームウェア(例えば、ディスプレイファームウェア1040)、および潜在的な他の命令セットはそれぞれ、上記で論じた機能および動作を実施するためにクライアントデバイス1000のプロセッサ(複数可)1003または他の処理回路によって実行可能な命令を含むことができる。本明細書に説明する命令は、上記で論じたようにプロセッサ(複数可)1003によって実行されるソフトウェアまたはコードで具現化されてもよいが、代替として、命令はまた、専用ハードウェアまたはソフトウェアと専用ハードウェアとの組み合わせで具現化されてもよい。例えば、上記で論じた命令によって実施される機能および動作は、いくつかの技術のうちのいずれか1つまたはそれらの組み合わせを採用する回路または状態機械として実装され得る。これらの技術は、限定はしないが、1つまたは複数のデータ信号の適用時に種々の論理機能を実施するための論理ゲートを有するディスクリート論理回路、適切な論理ゲートを有する特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他のコンポーネントなどを含むことができる。
【0080】
いくつかの実施形態では、上記で論じた機能および動作を実施する命令は、非一時的コンピュータ可読記憶媒体において具現化され得る。非一時的コンピュータ可読記憶媒体は、クライアントデバイス1000の一部であってもなくてもよい。命令は、例えば、コンピュータ可読媒体からフェッチし、処理回路(例えば、プロセッサ(複数可)1003)によって実行することができるステートメント、コード、または宣言を含むことができる。本明細書で定義した場合、「非一時的コンピュータ可読記憶媒体」は、命令実行システム、例えばクライアントデバイス1000などによって、またはそれに関連して使用するための本明細書に説明する命令を含み、記憶し、または維持することができ、さらに、例えば搬送波を含む一時的媒体を除外する任意の媒体として定義される。
【0081】
非一時的コンピュータ可読媒体は、多くの物理媒体、例えば磁気、光学、または半導体媒体などの任意の1つを備えることができる。適切な非一時的コンピュータ可読媒体のより具体的な例は、磁気テープ、磁気フロッピーディスケット、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、USBフラッシュドライブ、または光ディスクを含むことができるが、これらに限定されない。また、非一時的コンピュータ可読媒体は、例えば、スタティックランダムアクセスメモリ(SRAM)およびダイナミックランダムアクセスメモリ(DRAM)、または磁気ランダムアクセスメモリ(MRAM)を含むランダムアクセスメモリ(RAM)であってもよい。加えて、非一時的コンピュータ可読媒体は、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、または他のタイプのメモリデバイスであってもよい。
【0082】
クライアントデバイス1000は、上記で説明した動作のいずれかを実行するか、または上記で説明した機能を実装することができる。例えば、上記で論じたプロセスフローは、命令を実行し、データを処理するクライアントデバイス1000によって実行され得る。クライアントデバイス1000は単一のデバイスとして示されているが、実施形態はそのように限定されない。いくつかの実施形態では、クライアントデバイス1000は、複数のクライアントデバイス1000または他のコンピューティングデバイスが共に動作して、分散配置されて記憶またはロードされ得る命令を実行するように、分散方式で命令の処理をオフロードすることができる。例えば、少なくともいくつかの命令またはデータは、クライアントデバイス1000と連携して動作するクラウドベースのシステムに記憶、ロード、または実行され得る。
【0083】
こうして、送信側システム上でレンダリングされたインターレースされた(例えば、非圧縮の)マルチビュービデオフレームにアクセスし、これらのフレームを別々のビューにデインターレースし、分離されたビューを連結してタイル化フレームのセットの中にタイル化(例えば、デインターレースされた)フレームを生成し、タイル化フレームを圧縮する例および実施形態を説明してきた。受信側システムは、タイル化フレームを解凍して、各タイル化フレームから分離されたビューを抽出することができる。したがって、受信側システムは、受信側システムによってサポートされる目標数のビューに到達するために、新しいビューを合成し、またはビューを除去することができる。その後、受信側システムは、各フレームのビューをインターレースし、表示のためにレンダリングすることができる。上記で説明した例は、本明細書に説明する原理を表す多くの特定の例のうちの一部の単なる例示であることを理解されたい。明らかに、当業者は、以下の特許請求の範囲によって定義される範囲から逸脱することなく、多数の他の構成を容易に考案することができる。
【符号の説明】
【0084】
103 マルチビュー画像
106 ビュー
109 主角度方向
112 マルチビューディスプレイ
115 広角バックライト
118 マルチビューバックライト
121 モードコントローラ
124 モード選択信号
203 送信側クライアントデバイス
204 プレーヤアプリケーション
205 マルチビューディスプレイ
206 入力ビデオ
208 インターレースされたビデオ
211 インターレースされたフレーム
212 バッファ
213 ストリーミングアプリケーション
214 タイル化フレーム
217 タイル化ビデオ
220 マルチビューピクセル
223 圧縮されたビデオ
224 受信側クライアントデバイス
225 ストリーミングされたインターレースされたビデオ
226 ストリーミングされたインターレースされたフレーム
227 バッファ
231 マルチビューディスプレイ
238 送信側システム
239 受信側システム
240 画面抽出器
243 インターレースされたビデオ
246 デインターレーシングシェーダ
249 タイル化ビデオ
250 画面抽出器
252 ストリーミングモジュール
255 受信モジュール
258 ビデオデコーダ
261 タイル化ビデオ
264 ビュー合成器
267 インターレーシングシェーダ
270 ストリーミングされたインターレースされたビデオ
1000 クライアントデバイス
1003 プロセッサ
1006 メモリ
1009 I/Oコンポーネント
1012 ディスプレイ
1015 バス
1031 オペレーティングシステム
1034 アプリケーション
1037 ディスプレイドライバ
1040 ディスプレイファームウェア
【国際調査報告】