(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-19
(45)【発行日】2022-12-27
(54)【発明の名称】相互運用可能な3D画像コンテンツのハンドリング
(51)【国際特許分類】
H04N 13/356 20180101AFI20221220BHJP
H04N 13/271 20180101ALI20221220BHJP
H04N 13/268 20180101ALI20221220BHJP
G09G 5/36 20060101ALI20221220BHJP
G09G 5/377 20060101ALI20221220BHJP
G09G 5/00 20060101ALI20221220BHJP
G06T 19/00 20110101ALI20221220BHJP
【FI】
H04N13/356
H04N13/271
H04N13/268
G09G5/36 510V
G09G5/36 520N
G09G5/00 555G
G06T19/00 F
(21)【出願番号】P 2021542142
(86)(22)【出願日】2020-01-21
(86)【国際出願番号】 EP2020051387
(87)【国際公開番号】W WO2020152150
(87)【国際公開日】2020-07-30
【審査請求日】2022-09-22
(32)【優先日】2019-01-23
(33)【優先権主張国・地域又は機関】EP
【早期審査対象出願】
(73)【特許権者】
【識別番号】514171315
【氏名又は名称】ウルトラ-デー・コーペラティーフ・ユー・アー
(74)【代理人】
【識別番号】110001173
【氏名又は名称】弁理士法人川口國際特許事務所
(72)【発明者】
【氏名】ベレンセ,ダニー
(72)【発明者】
【氏名】デ・フロート,マルク・ヨゼーヒュス・ヘラルデュス
(72)【発明者】
【氏名】カストロ・テウネ,パトリック
(72)【発明者】
【氏名】エレディア・ソリアノ,フランシスコ・ハビエル
【審査官】益戸 宏
(56)【参考文献】
【文献】特開2012-85301(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 13/00
G09G 5/00
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
ディスプレイ上にアプリケーションのビューを表示するためのシステム(100)であって、ビューが3Dディスプレイ(080)のための3D画像コンテンツを表し、システムが、
- オペレーティングシステムを表すシステムデータおよびアプリケーション(200)を表すアプリケーションデータを含むメモリ(140)と、
- メモリと通信し、オペレーティングシステムおよびアプリケーションを実行するように構成されたプロセッササブシステム(120)と、
を備え、
オペレーティングシステムが、
- アプリケーションによって生成されたビューの可視性を管理するためのウィンドウマネージャ(220)と、
- ディスプレイのタイプに固有の1つ以上のディスプレイサーバコンポーネント(252-256)であって、ウィンドウマネージャから得られた可視性情報に基づいて、ビューを、ディスプレイのための表示信号(440-444)へと合成するように構成された、1つ以上のディスプレイサーバコンポーネントと、
を提供するように構成されており、
アプリケーションが、ウィンドウマネージャに、3D画像コンテンツを、ビュー構成に従って互いに対して配置構成された少なくとも2つのビューの形態で提供するように構成されており、少なくとも2つのビューが、2D画像データ(300)を含む1次ビュー(400)と、2D画像データの奥行きを表す3D可能化補助データ(310)を含む2次ビュー(410)とを含み、アプリケーション(200)が、
i)2次ビュー(410)の前に1次ビュー(400)をスタックして、1次ビューが2次ビューをオクルージョンするビュー構成を提供することか、または
ii)1次ビューの2D画像データを含むビューポート(430)を示すことによってウィンドウマネージャ(220)に1次ビュー(400)を提供し、ビューポートの外部に2次ビューの3D可能化補助データを配置構成することによってウィンドウマネージャに2次ビュー(410)を提供すること
により、ビュー構成を提供するように構成され、
ひいては、2Dディスプレイのための2Dディスプレイサーバコンポーネント(252)に、少なくとも2つのビューを表示信号(440)へと合成するとき、2次ビューの描画を省略させるかまたは2次ビューに上描きさせる、システム(100)。
【請求項2】
アプリケーション(200)が、1次ビュー(400)を2次ビュー(410)の前にスタックするときに、1次ビュー(400)および2次ビュー(410)に対して、1次ビューを2次ビューの前にスタックさせる相対的なZ順序(420)を割り当てるように構成されている、請求項1に記載のシステム(100)。
【請求項3】
アプリケーション(200)が、1次ビュー(400)を2次ビュー(410)の前にスタックするときに、1次ビュー(400)と2次ビュー(410)の間にスタックされるバリアビューを提供するように構成され、バリアビューが、不透明であり、均質な画像データを含む、請求項1または2に記載のシステム(100)。
【請求項4】
1つ以上のディスプレイサーバコンポーネントが3Dディスプレイのための3Dディスプレイサーバコンポーネント(254、256)を備え、アプリケーション(200)が、少なくとも2つのビュー(400、410)が3D画像コンテンツを表すことを3Dディスプレイサーバコンポーネントにシグナリングするように構成されている、請求項1から3のいずれか一項に記載のシステム(100)。
【請求項5】
3Dディスプレイサーバコンポーネント(254、256)が、アプリケーションが3Dディスプレイサーバコンポーネントとインターフェースすることを可能にするAPI(284)を提供し、アプリケーション(200)が、少なくとも2つのビュー(400、410)が3D画像コンテンツを表すことを、たとえばAPIを介して3Dディスプレイサーバコンポーネントに少なくとも2つのビューの識別子を登録することにより、APIを介して3Dディスプレイサーバコンポーネントにシグナリングするように構成されている、請求項4に記載のシステム(100)。
【請求項6】
1つ以上のディスプレイサーバコンポーネントが3Dディスプレイサーバコンポーネント(254、256)を備え、3Dディスプレイサーバコンポーネントが、アプリケーション(200)のメタデータに基づいて、少なくとも2つのビュー(400、410)が3D画像コンテンツを表すことを検出するように構成されている、請求項1から3のいずれか一項に記載のシステム(100)。
【請求項7】
アプリケーション(200)のメタデータがアプリケーションの識別子を含む、請求項6に記載のシステム(100)。
【請求項8】
3Dディスプレイサーバコンポーネント(254、256)が、
- 1次ビューと2次ビューを、立体表示フォーマットに従って表示信号(444)において同時に示され
るように配置構成すること、または
- 1次ビューおよび2次ビューに基づいて1つ以上のさらなるビューを生成し、1次ビューと、1つ以上のさらなるビューとを、マルチビュー表示フォーマットに従って、表示信号(442)において同時に配置構成すること
によって、少なくとも2つのビュー(400、410)を合成するように構成されている、請求項4から7のいずれか一項に記載のシステム(100)。
【請求項9】
3D可能化補助データ(310)が、2D画像データ(300)とともに1対の立体画像を表すさらなる2D画像データ、または2D画像データの中に示されたオブジェクトの、カメラもしくは視聴者に対する距離を表す奥行き関連のデータ、のグループのうちの1つである、請求項1から8のいずれか一項に記載のシステム(100)。
【請求項10】
請求項1から9のいずれか一項に記載のシステムを備えるディスプレイデバイス。
【請求項11】
オペレーティングシステムのウィンドウマネージャ(220)にアプリケーション(200)のビューを提供する、コンピュータにより実行される方法であって、ビューが3Dディスプレイのための3D画像コンテンツを表し、オペレーティングシステムが、
アプリケーションによって生成されたビューの可視性を管理するように構成されたウィンドウマネージャ(220)と、
ディスプレイのタイプに固有の1つ以上のディスプレイサーバコンポーネント(252-256)であって、ウィンドウマネージャから得られた可視性情報に基づいて、ビューを、ディスプレイのための表示信号へと合成するように構成された、1つ以上のディスプレイサーバコンポーネントと、
を提供するように構成されており、
方法が、アプリケーションによって、ウィンドウマネージャに、3D画像コンテンツを、ビュー構成に従って互いに対して配置構成された少なくとも2つのビューの形態で提供することを含み、少なくとも2つのビューが、2D画像データを含む1次ビューと、2D画像データの奥行きを表す3D可能化補助データを含む2次ビューとを含み
、前記アプリケーションによって3D画像コンテンツを提供することが、
i)2次ビューの前に1次ビューをスタックして、1次ビューが2次ビューをオクルージョンするビュー構成を提供すること、または
ii)1次ビューの2D画像データを含むビューポートを示すことによって、ウィンドウマネージャに1次ビューを提供し、ビューポートの外部に2次ビューの3D可能化補助データを配置構成することによってウィンドウマネージャに2次ビューを提供すること
によって、ビュー構成を提供することを含み、
ひいては、2Dディスプレイのための2Dディスプレイサーバコンポーネントに、少なくとも2つのビューを表示信号へと合成するとき、2次ビューの描画を省略させるかまたは2次ビューに上描きさせる、コンピュータにより実行される方法。
【請求項12】
アプリケーションを表すコンピュータプログラム(510)を含む一時的または非一時的なコンピュータ可読媒体(500)であって、コンピュータプログラムが、プロセッサシステムに、請求項11に記載の方法を実施させるための命令を含む、一時的または非一時的なコンピュータ可読媒体。
【請求項13】
オペレーティングシステム上で実行されるアプリケーション(200)のビューを合成する、コンピュータにより実行される方法であって、ビューが3Dディスプレイのための3D画像コンテンツを表し、オペレーティングシステムが、
アプリケーションによって生成されたビューの可視性を管理するためのウィンドウマネージャ(220)と、
3Dディスプレイのための3Dディスプレイサーバコンポーネント(254、256)であって、ウィンドウマネージャから得られた可視性情報に基づいて、ビューを、3Dディスプレイのための表示信号へと合成するように構成された3Dディスプレイサーバコンポーネントと、
を提供するように構成されており、
アプリケーション(200)が、ウィンドウマネージャに、3D画像コンテンツを、ビュー構成に従って互いに対して配置構成された少なくとも2つのビューの形態で提供するように構成されており、少なくとも2つのビューが、2D画像データを含む1次ビューと、2D画像データの奥行きを表す3D可能化補助データを含む2次ビューとを含み、アプリケーション(200)が、
i)2次ビューの前に1次ビューをスタックして、1次ビューが2次ビューをオクルージョンするビュー構成を提供することか、または
ii)1次ビューの2D画像データを含むビューポートを示すことによって、ウィンドウマネージャ(220)に1次ビューを提供し、ビューポートの外部に2次ビューの3D可能化補助データを配置構成することによってウィンドウマネージャに2次ビューを提供すること
により、ビュー構成を提供するように構成され、
ひいては、2Dディスプレイのための2Dディスプレイサーバコンポーネントに、少なくとも2つのビューを表示信号へと合成するとき、2次ビューの描画を省略させるかまたは2次ビューに上描きさせ、
方法は、3Dディスプレイサーバコンポーネントによって、
- アプリケーションから受け取られたシグナリングまたはアプリケーションのメタデータに基づいて、少なくとも2つのビューが3D画像コンテンツを表すと決定することと、
- 1次ビューおよび2次ビューを処理して、3Dディスプレイのための表示信号を得ることと
を含む、コンピュータにより実行される方法。
【請求項14】
3Dディスプレイサーバコンポーネントを表すコンピュータプログラム(510)を含む一時的または非一時的なコンピュータ可読媒体(500)であって、コンピュータプログラムが、プロセッサシステムに、請求項13に記載の方法を実施させるための命令を含む、一時的または非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はディスプレイ上にアプリケーションのビューを表示するためのシステムに関し、ビューは3Dディスプレイのための3D画像コンテンツを表す。本発明は、アプリケーションによってウィンドウマネージャに3D画像コンテンツを提供するための、コンピュータにより実行される方法と、ディスプレイサーバコンポーネントによって、ビューが3D画像コンテンツを表すと決定するための、コンピュータにより実行される方法とに、さらに関する。
【背景技術】
【0002】
デバイス上のコンテンツを観察するときユーザに奥行き知覚を提供するための3Dディスプレイを備える、テレビ、デジタルフォトフレーム、タブレットおよびスマートフォンなどのディスプレイデバイスが増えている。そのために、そのような3Dディスプレイは、立体視に基づく奥行き知覚をユーザに提供するように、それ自体で、またはユーザによって着用された眼鏡とともに、ユーザのそれぞれの目に異なる画像を提供し得る。
【0003】
そのような3Dディスプレイ上に表示される3D画像コンテンツは、一般に、2D画像データと、いわゆる3D可能化補助データ(3D-enabling auxiliary data)とによって、表され得る。3D可能化補助データは2D画像データの奥行きを表し得る。たとえば、3D可能化補助データは、2D画像データとともに1対の立体画像を表すさらなる2D画像データ、またはカメラもしくは視聴者に対して2D画像データの中に示されたオブジェクトの距離を表す奥行き関連のデータでよい。そのような奥行き関連のデータは、奥行き値ばかりでなく、ディスパリティ値、視差値または他のタイプの奥行き関連の値をも含み得る。
【0004】
3D画像コンテンツは、オペレーティングシステム上で走るアプリケーションによって表示され得る。そのようなオペレーティングシステムは、アプリケーションによって生成されたビューの可視性を管理するためのウィンドウマネージャを提供し得る。加えて、オペレーティングシステムが提供し得る1つ以上のディスプレイサーバコンポーネントは、それぞれがディスプレイのタイプに固有のものでよく、また、ウィンドウマネージャから得られた可視性情報に基づいて、アプリケーションのビューをディスプレイのための表示信号へと合成するように構成され得る。これらのディスプレイサーバコンポーネントは、「ディスプレイサーバ」と呼ばれる単一のソフトウエアコンポーネントの各コンポーネントでよいが、それぞれが別個のディスプレイサーバをも表し得る。
【0005】
ウィンドウマネージャおよびディスプレイサーバは、別個のソフトウエアコンポーネントとして実現され得るが、単一のソフトウエアコンポーネントに結合されてよく、別のやり方で各ソフトウエアコンポーネントにわたって分割されてもよいことが留意される。具体例は、アンドロイドのオペレーティングシステムが「WindowManager」という名のウィンドウマネージャおよび「SurfaceFlinger」という名のディスプレイサーバを提供するものである。様々な他のタイプのウィンドウマネージャおよび/またはディスプレイサーバも、たとえば他のオペレーティングシステムの一部として知られている。
【0006】
アプリケーションによって3D画像コンテンツを表示する知られているやり方には、アプリケーションが、ディスプレイサーバコンポーネントやディスプレイのタイプに対して柔軟性がないという不都合がある。すなわち、特定のアプリケーションは1つのタイプのディスプレイ(たとえば2Dまたは3Dのディスプレイ)しかサポートし得ず、または、原理的には異なるタイプのディスプレイをサポートし得るが、システムに接続されたディスプレイタイプを認識できず、手作業で構成されなければならないことがある。
【0007】
たとえばランタイム中の異なるタイプのディスプレイ間の動的スイッチングをサポートするような柔軟性、または異なるタイプのディスプレイを伴うマルチディスプレイ(「マルチモニタ」とも称される)セットアップをサポートするような柔軟性が望ましい。そのようなタイプの柔軟性は「相互運用性」と称されることもある。詳細には、2D(「レガシー」)ディスプレイと3Dディスプレイの間のそのような相互運用性を提供することが望ましい。多くの場合、レガシー2Dディスプレイは、特定のアプリケーションによって生成または出力される3D画像コンテンツを再生し得るが、その場合、そのような3D画像コンテンツは2D画像の形態で再現されることになり、望ましくないであろう。たとえば、3D画像コンテンツが、並んだ2つのビューとして提供される立体コンテンツであると、2Dディスプレイサーバコンポーネントは、両方のビューを、2Dディスプレイ上に並べてレンダリングしてしまうであろう。2Dディスプレイ上には、両方のビューの一方を無視して1つだけをレンダリングすることが望まれるので、これは望ましくない。
【0008】
米国特許出願公開第2012/092335 A1号は、モバイルアンドロイドのプラットフォームに基づいて、携帯用3Dディスプレイ機器の中のハードウェアコンポーネントの最小数を使用する一方でソフトウエアによって立体視画像信号を処理するための方法および3Dディスプレイ機器を説明している。アプリケーション/ミドルウェア層から1つ以上の平面画像面が生成され、第1のフレームバッファに記憶される。符号化された画像信号は、立体視画像対を表すYUV画像信号を復元するために、アプリケーション/ミドルウェア層の下で復号される。続いて、YUV画像信号がRGB画像信号に変換され、カーネル層においてRGB画像信号の左画像と右画像が混合される。
【先行技術文献】
【特許文献】
【0009】
【文献】米国特許出願公開第2012/092335号明細書
【非特許文献】
【0010】
【文献】https://wiki.archlinux.org/index.php/window_manager
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明の目的は、ディスプレイサーバコンポーネントおよびディスプレイのタイプに対してより柔軟性のあるアプリケーションによって3D画像コンテンツを表示するやり方を提供することである。
【課題を解決するための手段】
【0012】
本発明の第1の態様によれば、ディスプレイ上にアプリケーションのビューを表示するためのシステムが提供され、ビューは3Dディスプレイのための3D画像コンテンツを表す。このシステムは:
- オペレーティングシステムを表すシステムデータおよびアプリケーションを表すアプリケーションデータを含むメモリ;
- メモリと通信し、オペレーティングシステムおよびアプリケーションを実行するように構成されたプロセッササブシステム;
を備え、
オペレーティングシステムは:
- アプリケーションによって生成されたビューの可視性を管理するためのウィンドウマネージャ;
- ディスプレイのタイプに固有の1つ以上のディスプレイサーバコンポーネントであって、ウィンドウマネージャから得られた可視性情報に基づいて、各ビューを、ディスプレイのための表示信号へと合成するように構成された、1つ以上のディスプレイサーバコンポーネント;
を提供するように構成されており、
アプリケーションは、ウィンドウマネージャに、3D画像コンテンツを、ビュー構成に従って互いに対して配置構成された少なくとも2つのビューの形態で提供するように構成されており、少なくとも2つのビューは、2D画像データを含む1次ビューと、2D画像データの奥行きを表す3D可能化補助データを含む2次ビューとを含み、ビュー構成は、2Dディスプレイのための2Dディスプレイサーバコンポーネントに、少なくとも2つのビューを表示信号へと合成するとき、2次ビューを省略させるかまたは2次ビューに上描きさせる。
【0013】
本発明のさらなる態様によれば、このシステムを備えるディスプレイデバイスが提供される。
【0014】
本発明のさらなる態様によれば、オペレーティングシステムのウィンドウマネージャにアプリケーションのビューを提供するための、コンピュータにより実行される方法が提供され、ビューは3Dディスプレイのための3D画像コンテンツを表し、オペレーティングシステムは:
アプリケーションによって生成されたビューの可視性を管理するように構成されたウィンドウマネージャ;
ディスプレイのタイプに固有の1つ以上のディスプレイサーバコンポーネントであって、ウィンドウマネージャから得られた可視性情報に基づいて、ビューを、ディスプレイのための表示信号へと合成するように構成された、1つ以上のディスプレイサーバコンポーネント
を提供するように構成されており;
方法は、アプリケーションによって、ウィンドウマネージャに、3D画像コンテンツを、ビュー構成に従って互いに対して配置構成された少なくとも2つのビューの形態で提供することを含み、少なくとも2つのビューが、2D画像データを含む1次ビューと、2D画像データの奥行きを表す3D可能化補助データを含む2次ビューとを含み、ビュー構成は、2Dディスプレイのための2Dディスプレイサーバコンポーネントに、少なくとも2つのビューを表示信号へと合成するとき、2次ビューの描画を省略させるかまたは2次ビューに上描きさせる。
【0015】
本発明のさらなる態様によれば、オペレーティングシステム上で実行されるアプリケーションのビューを合成するための、コンピュータにより実行される方法が提供され、ビューは3Dディスプレイのための3D画像コンテンツを表し、オペレーティングシステムは:
アプリケーションによって生成されたビューの可視性を管理するためのウィンドウマネージャ;
3Dディスプレイのための3Dディスプレイサーバコンポーネントであって、ウィンドウマネージャから得られた可視性情報に基づいて、ビューを、3Dディスプレイのための表示信号へと合成するように構成された3Dディスプレイサーバコンポーネント
を提供するように構成されており;
アプリケーションは、ウィンドウマネージャに、3D画像コンテンツを、ビュー構成に従って互いに対して配置構成された少なくとも2つのビューの形態で提供するように構成されており、少なくとも2つのビューは、2D画像データを含む1次ビューと、2D画像データの奥行きを表す3D可能化補助データを含む2次ビューとを含み、ビュー構成には、2Dディスプレイのための2Dディスプレイサーバコンポーネントに、少なくとも2つのビューを表示信号へと合成するとき、2次ビューを省略させるかまたは2次ビューに上描きさせ、
方法は、3Dディスプレイサーバコンポーネントによって:
- アプリケーションから受け取られたシグナリングまたはアプリケーションのメタデータに基づいて、少なくとも2つのビューが3D画像コンテンツを表すと決定することと;
- 1次ビューおよび2次ビューを処理して、3Dディスプレイのための表示信号を得ることと
を含む。
【0016】
本発明のさらなる態様が提供する一時的または非一時的なコンピュータ可読媒体が含むコンピュータプログラムは、アプリケーションまたは3Dディスプレイサーバコンポーネントを表すものであり、プロセッサシステムにそれぞれのエンティティを表す方法を実施させるための命令を含む。
【0017】
上記の方策は、ウィンドウマネージャに、少なくとも2つのビュー、すなわち、2D画像データを含む1次ビュー、および2D画像データの奥行きを表す3D可能化補助データを含む2次ビューの形態で、3D画像コンテンツを提供するアプリケーションを伴う。ここと他のどこかで、「ビュー」という用語は、「ビューオブジェクト」とも称され得、グラフィカルユーザインターフェースの基本ビルディングブロックを指し得る。一般的には、ビューは、アプリケーションのコンテンツを表示するスクリーン上の矩形のエリアを表す。たとえば、アンドロイドでは、そのようなビューはパブリッククラス「ビュー」によって表され得、iOSでは、そのようなビューは「ビューオブジェクト」などによって表され得る。多くのオペレーティングシステムでは、アプリケーションの「ウィンドウ」は1つ以上のビューを含み得、そのため、ビューは別個のウィンドウによって表される必要はないことが留意される。
【0018】
したがって、1次ビューは、写真(静止画像)、ビデオフレーム、コンピュータレンダリングなどによって生成された画像などの画像を示してよく、一方、3D可能化補助データが前記画像の奥行きを表し得る。2D画像データおよび3D可能化補助データによって3D画像コンテンツを表す概念は、それ自体知られている。そのような補助データは、限定はしないが、2D画像データとともに1対の立体画像を表すさらなる2D画像データ、またはカメラもしくは視聴者に対する、2D画像データの中に示されたオブジェクトの距離を表す奥行き関連のデータを含む、様々な形態をとり得る。
【0019】
したがって、アプリケーションは、2D画像データに対する別個のビューおよび3D可能化補助データに対する別個のビューを作成し得る。ビューは、ビュー構成に従って、たとえば空間的な意味において互いに対して相互に配置構成される。そのようなビュー構成は、アプリケーションによって定義され、および/または提供されてよく、たとえばアプリケーションのウィンドウの内部で、少なくとも両方のビューの相対位置を定義する1つ以上のパラメータによって表され得る。たとえば、ビュー構成は所定のビュー構成でよい。たとえば、アンドロイドでは、パラメータはパブリッククラス「RelativeLayout」パラメータでよく、これにしたがって、ビューの位置が互いに関連して記述され得る。このように構成された相対位置が、次いで、アプリケーションによって、引数として特定のRelativeLayoutを有する関数Set.ContentViewを使用して提供され得る。
【0020】
オペレーティングシステムおよび/またはウィンドウマネージャのタイプに応じて様々な他の機構が存在し、1次ビューおよび2次ビューに関するビュー構成を定義し、および/または提供するために有利に使用され得ることが理解されよう。
【0021】
上記の方策によれば、アプリケーションは、2Dディスプレイのための、たとえば「レガシー」ディスプレイサーバコンポーネントといった2Dディスプレイサーバコンポーネントが、少なくとも2つのビューを表示信号へと合成するとき、2次ビューの描画を省略するかまたは2次ビューに上描きするように、ビュー構成を特に定義し、および/または提供する。そのため、2Dディスプレイサーバコンポーネントは3D可能化補助データを表示することを省略して、むしろ2D画像データ(のみ)を表示することになる。「表示信号」という用語は、ここおよび下記では、それ自体知られているものとすることができる、ディスプレイサーバコンポーネントによってディスプレイに固有のやり方でフォーマットされた信号を指し得る。表示信号は、たとえばディスプレイに固有のやり方でフォーマットされた出力バッファにおける出力画像として生成される。
【0022】
非限定的な例は、2次ビューの前に1次ビューをスタックして、ビュー構成として1次ビューが2次ビューをオクルージョンするビュー構成を提供するようにアプリケーションが構成され得るものである。そのようなビューのスタッキングは、実際にはパブリッククラス「RelativeLayout」のデフォルト挙動でよく、アプリケーションは、1次ビューが2次ビューの前に、逆ではなくスタックされることだけを保証すればよい。これは、たとえば、特に2次ビューの前に1次ビューがスタックされる、両方のビューに相対的な、Z順序を割り当てる、アプリケーションによって行われてよい。パブリッククラス「RelativeLayout」の例を再び参照して、これは、アプリケーションまたはプログラマがビューの適切な列挙順序を選ぶこと、または関数view.setZ(float)を使用することなどを伴い得る。
【0023】
2Dディスプレイサーバコンポーネントは、オペレーティングシステムにおいて存在し、アクティブであるなら、2次ビューが1次ビューによってオクルージョンされると決定したときには、2次ビューに上描きするか、または2次ビューの描画を省略してよい。
【0024】
同時に、3Dディスプレイサーバコンポーネントは、オペレーティングシステムにおいて存在し、アクティブであるなら、たとえばアプリケーションから受け取られたシグナリングまたはアプリケーションのメタデータに基づいて、少なくとも2つのビューが3D画像コンテンツを表すと決定し得る。3Dディスプレイサーバコンポーネントは、1次ビューおよび2次ビューが3D画像コンテンツを表すと識別すると、次いで、3Dディスプレイのための表示信号を得るように、それ自体知られているやり方で1次ビューおよび2次ビューを処理し得る。そのため、3Dディスプレイサーバコンポーネントは、2次ビューに上描きするのではなく、たとえば、表示信号において、1次ビューに加えて2次ビューを並べて配置構成してよい。
【0025】
上記の方策は、アプリケーションによって3D画像コンテンツを出力する、後方互換性のあるやり方を提供するものである。すなわち、「レガシー」2Dディスプレイサーバコンポーネントが1次ビューを示す一方で、3Dディスプレイサーバコンポーネントが、2次ビューにおける3D可能化補助データにアクセスして、2D画像データおよび3D可能化補助データを適切に処理し得る。
【0026】
これは、2Dディスプレイサーバコンポーネントにばかりなく、アプリケーションによって提供された少なくとも2つのビューが3D画像コンテンツを表すことを決定するようには構成されていない他の(「レガシー」)タイプのディスプレイサーバコンポーネントにも、後方互換性を提供し得る。そのようなレガシーディスプレイサーバコンポーネントは、前述の2Dディスプレイサーバコンポーネントばかりでなく、レガシー3Dディスプレイサーバコンポーネントと、ストリーミングするかまたはキャスティングするMiracastなどのサーバとをも含み得る。アプリケーションが、どのタイプのディスプレイサーバコンポーネントが存在し、アクティブであるかを検出し、アプリケーションの出力を相応に調節することの必要性がなくなるという、さらに別の利点がある。アプリケーションの出力を相応に調節することは、異なるタイプのディスプレイサーバコンポーネントが存在しアクティブであるマルチディスプレイのコンテキストでも不可能であろう。
【0027】
上記および下記において、ペレーティングシステムがウィンドウマネージャならびに/あるいは1つ以上のディスプレイサーバコンポーネントを「確立する」かまたは「提供する」ように構成されているオことに対するあらゆる言及が、オペレーティングシステムが、オペレーティングシステムにより、またはオペレーティングシステムを使用して、前記ソフトウエアコンポーネントが実行されることを可能にするように構成されていることを参照し得ることが留意される。いくつかの実施形態では、オペレーティングシステムは、ウィンドウマネージャおよび/またはディスプレイサーバを備え得る。他の実施形態では、ウィンドウマネージャおよび/またはディスプレイサーバは、オペレーティングシステムとは別々に提供され得るソフトウエアコンポーネントでよい。
【0028】
アプリケーションは、2次ビューの前に1次ビューをスタックして、ビュー構成として1次ビューが2次ビューをオクルージョンするビュー構成を提供するように構成され得る。たとえば、アプリケーションは、1次ビューおよび2次ビューに対して、1次ビューを2次ビューの前にスタックさせる相対的Z順序を割り当てるように構成され得る。
【0029】
任意選択で、アプリケーションは、1次ビューと2次ビューの間にスタックされたバリアビューを提供するように構成され、バリアビューは、不透明であり、均質な画像データを含む。1次ビューは、部分的に透光性に定義されること、またはディスプレイサーバコンポーネントによって部分的に透光性のものとして扱われることがある。たとえば、1次ビューの2D画像データは、局所的透明性を提供するために、それ自体知られているRGBAタプルを含んでよい。そのため、2Dディスプレイサーバコンポーネントは、依然として2次ビューを用いて1次ビューに上描きしてよいが、1次ビューの(部分的に)透光性が、2次ビューを依然として部分的に可視にさせるため、1次ビューにおける2D画像データの表示が乱される可能性がある。そのような乱れを回避するかまたは低減するために、たとえば1次ビューのZ順序と2次ビューのZ順序との間のZ順序を選択することにより、1次ビューと2次ビューの間にバリアビューが提供されスタックされ得る。2次ビューがバリアビューによってオクルージョンされるように、2Dディスプレイサーバコンポーネントによるビュー合成中に、アプリケーションによって、不透明、たとえば非透光性であるようにバリアビューが生成される。2D画像データを1次ビューに重ね合わせる際のいかなる乱れも低減するように、均質の画像データを含むようにバリアビューがさらに生成される。たとえば、バリアビューは、均質な黒、ダークグレーまたはライトグレーでよい。
【0030】
アプリケーションは:
- 1次ビューの2D画像データを含むビューポートを示すことによって、ウィンドウマネージャに1次ビューを提供し;
- ビューポートの外部に2次ビューの3D可能化補助データを配置構成することによってウィンドウマネージャに2次ビューを提供する
ように構成され得る。
【0031】
2次ビューの前に1次ビューをスタックすることに対して、様々な代替形態が存在する。たとえば、1次ビューは、たとえばバッファの中に1次ビューの2D画像データを含むビューポートをウィンドウマネージャに示すことによってウィンドウマネージャに提供され得る。3D可能化補助データは、ビューポートの外部で、たとえばビューポートの外部の同一のバッファ、または異なるバッファの中に配置構成されてよい。それゆえに、「レガシー」ディスプレイサーバコンポーネントは、ビューポートに示されるように1次ビューを描画してよいが、2次ビューは、ビューポートの外部に配置されているので描画するのを省略してよい。
【0032】
任意選択で、1つ以上のディスプレイサーバコンポーネントは、3Dディスプレイのための3Dディスプレイサーバコンポーネントを備え、アプリケーションは、少なくとも2つのビューが3D画像コンテンツを表すことを3Dディスプレイサーバコンポーネントにシグナリングするように構成される。オペレーティングシステムにおいて3Dディスプレイのための3Dディスプレイサーバコンポーネントが存在し、アクティブであれば、アプリケーションは、2つのビューが3D画像コンテンツを表すことを3Dディスプレイサーバコンポーネントにシグナリングし得る。たとえば、3Dディスプレイサーバコンポーネントは、アプリケーションが3Dディスプレイサーバコンポーネントとインターフェースすることを可能にするためのアプリケーションプログラミングインターフェース(API)を提供し得、アプリケーションは、少なくとも2つのビューが3D画像コンテンツを表すことを、たとえばAPIを介して3Dディスプレイサーバコンポーネントに少なくとも2つのビューの識別子を登録することにより、APIを介して、3Dディスプレイサーバコンポーネントにシグナリングするように構成され得る。加えて、またはその代わりに、3Dディスプレイサーバコンポーネントは、アプリケーションの識別子などのアプリケーションのメタデータに基づいて、少なくとも2つのビューが3D画像コンテンツを表すことを検出するように構成され得る。そのため、3Dディスプレイサーバコンポーネントは、少なくとも2つのビューが3D画像コンテンツを表すことを学習し、それにしたがって、2つのビューにおける画像(データ)を処理し得る。
【0033】
任意選択で、3Dディスプレイサーバコンポーネントは、1)1次ビューと2次ビューとが、立体表示フォーマットに従って表示信号において同時に示されるように配置構成すること、または2)1次ビューおよび2次ビューに基づいて1つ以上のさらなるビューを生成し、1次ビューと、1つ以上のさらなるビューとを、マルチビュー表示フォーマットに従って、表示信号において同時に配置構成することによって、少なくとも2つのビューを合成するように構成される。上記のオプションは、3Dディスプレイサーバコンポーネントが、1次ビューおよび2次ビューを処理して3Dディスプレイのための表示信号を得るための、それ自体知られているやり方を定義するものである。第1のオプションは、立体コンテンツ(たとえば、左画像を表す2D画像データ、右画像を表す3D可能化補助データ)に適用可能であり得、ビュー合成は、上下の(top-bottom)立体フォーマットに従って、またはたとえばラインベースで空間的にインターリーブして、両方のビューを、たとえば並べて同時に示すことを伴い得る。第2のオプションは、いわゆるマルチビューコンテンツに適用可能であり得、マルチビューコンテンツでは、3D可能化補助データが奥行きマップなどの奥行き関連のコンテンツを表し、1次ビューに示されたものに加えて、シーンの代替のビューポイントを表す1つ以上のさらなるビューをレンダリングするために、いわゆるビューレンダリング技術またはビューシンセシス技術が使用される。異なるタイプの3D表示フォーマットの間の変換が知られていることが留意される。そのため、ビューは、3D可能化補助コンテンツのタイプに関係なく、所望の表示フォーマットを得るように処理され得る。たとえば、アプリケーションが立体コンテンツを出力する場合、3Dディスプレイサーバコンポーネントは、両画像の間のディスパリティを推定し、ディスパリティマップを使用して、マルチビューディスプレイのための1つ以上のさらなるビューをレンダリングし得る。反対に、アプリケーションが3D可能化補助コンテンツとして奥行きマップを提供する場合には、ディスプレイサーバコンポーネントは、第2の画像をビューレンダリングして、出力として立体コンテンツを提供する。
【0034】
本発明の前述の実施形態、実装形態、および/または任意選択の態様のうちの2つ以上が、有効と考えられる任意のやり方で組み合わされ得ることが当業者には諒解されよう。
【0035】
対応するシステムの説明された修正形態および変形形態に対応する、任意のコンピュータにより実行される方法および/または任意のコンピュータプログラム製品の修正形態および変形形態が、当業者によって本説明を基に実行され得、逆の場合も同じである。
【0036】
本発明のこれらの態様および他の態様は、以下で説明される実施形態から明らであり、これらを参照することによって解明されよう。
【図面の簡単な説明】
【0037】
【
図1】アプリケーション、ウィンドウマネージャおよびいくつかのディスプレイサーバコンポーネントの間の相互作用の図式的概観であり、アプリケーションは、ウィンドウマネージャに対して、3D画像コンテンツを、2D画像データを含む1次ビューと3D可能化補助データを含む2次ビューとの形態で提供し、それぞれのディスプレイサーバコンポーネントは、アプリケーションのビューを、ウィンドウマネージャから得られた可視性情報に基づいて、それぞれのタイプのディスプレイ上で表示するための表示信号へと合成するように構成されている。
【
図2A】2次ビューの前に1次ビューをスタックするアプリケーションの結果を示す図であり、2Dディスプレイのための2Dディスプレイサーバコンポーネントに、2つのビューを表示信号へと合成するとき、2次ビューの描画を省略させるかまたは2次ビューに上描きさせる。
【
図2B】ウィンドウマネージャに対して1次ビューの2D画像データを含むビューポートを示すアプリケーションを示す図であり、一方、2次ビューの3D可能化補助データはビューポートの外部に配置される。
【
図3】アンドロイドオペレーティングシステムのための特定の実施形態を示す図である。
【
図4】ディスプレイ上にアプリケーションのビューを表示するためのシステムを示す図である。
【
図5】命令データを含むコンピュータ可読媒体を示す図である。
【発明を実施するための形態】
【0038】
異なる図において同一の参考番号を有するアイテムは、同一の構造的特徴および同一の機能を有するか、または同一の信号であることに留意されたい。そのようなアイテムの機能および/または構造が説明されたときには、発明を実施するための形態において繰り返し説明する必要はない。
【0039】
参照記号のリスト
以下の参考記号のリストは、図面の解釈を容易にするために提供されるものであり、請求項を制限するようには解釈されないものとする。
080 (3D)ディスプレイ
100 アプリケーションのビューを表示するためのシステム
120 プロセッササブシステム
122 データ通信
140 メモリ
142 データ通信
160 大容量記憶装置
162 データ通信
180 表示出力
182 表示データ
200 アプリケーション
210 バッファ
212 バッファ
214 バッファ
220 ウィンドウマネージャ
240 ディスプレイサーバ
252 2Dディスプレイサーバコンポーネント
254 3D(マルチビュー)ディスプレイサーバコンポーネント
256 3D(立体)ディスプレイサーバコンポーネント
260 アンドロイドBSP
262 アンドロイドのWindowManager
264 アンドロイドのSurfaceFlinger
280 サービスプロセス
282 拡張子(Hook)
284 サービスAPI
300 2D画像データ
310 3D可能化補助データ
400 1次ビュー、2Dビュー
410 2次ビュー、3D可能化補助ビュー
420 Z順序
430 ビューポート
440 2Dディスプレイのための表示信号
442 3D(マルチビュー)ディスプレイのための表示信号
444 3D(立体)ディスプレイのための表示信号
500 コンピュータ可読媒体
510 命令データ
【0040】
図1は、オペレーティングシステムのソフトウエアコンポーネントまたはオペレーティングシステム上で走るソフトウエアコンポーネント、すなわち、アプリケーション200、ウィンドウマネージャ220およびディスプレイサーバ240の図式的概観を示すものであり、ディスプレイサーバ240は、例として、2Dディスプレイのための2Dディスプレイサーバコンポーネント252(
図1では「2D合成」のラベルが付いている)と、マルチビュー3Dディスプレイのための3Dディスプレイサーバコンポーネント254(「2D+3D補助合成」のラベルが付いている)と、立体3Dディスプレイのための別の3Dディスプレイサーバコンポーネント256(「2D+3D補助合成 + 立体出力」のラベルが付いている)とを備えるものとして示されている。引き続き
図1を参照しながら
図2Aを参照して、ディスプレイサーバコンポーネント252-256の各々のビュー合成が以下でさらに説明される。
【0041】
図1に見られるように、アプリケーション200は、2D画像データ300および付随の3D可能化補助データ310を、たとえばソリッドステートドライブもしくはハードディスクなどの大容量記憶デバイス(
図1には示されていない)から、またはローカルエリアネットワークもしくは広域ネットワーク(これも
図1には示されていない)からストリーミングするやり方で、受け取るかまたは取得し得る。特定の例では、2D画像データ300と3D可能化補助データ310がともに、3D画像または3Dビデオの3Dビデオフレーム(映画または短いビデオクリップなど)を表し得る。さらに別の例では、アプリケーションは、たとえば出力として立体画像あるいは画像および付随の奥行きマップを提供するコンピュータレンダリング技術によって、2D画像データ300および3D可能化補助データ310を生成し得る。さらに別の例では、アプリケーション200は、2D画像データ300を受け取るか取得し、たとえばその部分はそれ自体知られている奥行き推定技術を使用して、3D可能化補助データを生成し得る。
【0042】
アプリケーション200は、次いで、2D画像データ300を含む2Dビュー400を生成し得る。2Dビュー400は「1次ビュー」とも称される。ここで、「含む」という用語は、2Dビュー400が通常は2D画像データ300を示すことを指すが、たとえばウィンドウマネージャ220によって課せられる2Dビュー400の可視性の制限を被ることがある。アプリケーション200は、3D可能化補助データを含む3D可能化補助ビュー410をさらに生成し得る。3D可能化補助ビュー410は「2次ビュー」とも称される。たとえば、両方のビュー400、410のデータは、たとえばバッファオブジェクトとしてそれぞれのバッファ210、212に記憶されてよく、または同一のバッファの中に別個のバッファオブジェクト(
図1には示されていない)として記憶されてもよい。アプリケーション200は、たとえばandroid.view.WindowManagerクラスのaddView()を使用して、ウィンドウマネージャ220に両方のビュー400、410を提供し得る。ウィンドウマネージャは、アプリケーションのビューの可視性を全体的に管理し得る。たとえば、他のアクティブなアプリケーションがある場合には、ビュー400、410は、大部分が見えるか、あるいは、たとえば別のアプリケーションのビューによってオクルージョンされることにより、またはビュー400、410が「最小化されること」を含むアプリケーション200のウィンドウによって、ほとんど見えなくなるか、決定され得る。
【0043】
1次ビュー400と2次ビュー410は、これらの少なくとも2つのビューを表示信号へと合成するとき2Dディスプレイのための2Dディスプレイサーバコンポーネントに2次ビューの描画を省略させるかまたは2次ビューに上描きさせるビュー構成に従って、アプリケーションによって互いに配置構成される。たとえば
図2Aおよび
図2Bを参照しながら解明されたように、そのようなビュー構成を定義するかまたは提供するための様々なやり方がある。
【0044】
図2Aは、アプリケーションが、2次ビュー410の前に1次ビュー400をスタックし、それによって2次ビュー410をオクルージョンすることの結果を示すものである。
図2Aは、解説のために、1次ビュー400の下にある2次ビュー410を示すように、斜視の全体像を示していることが留意される。しかしながら、ディスプレイサーバコンポーネントは、1次ビュー400を全体的または少なくとも実質的に全体的に考慮に入れ、2次ビュー410をオクルージョンする。たとえば、2次ビュー410は、2次ビュー410を1次ビュー400の後に置くアプリケーションによって、Z順序を割り当てられてよい。同時に、2次ビュー410の場所およびサイズは、2次ビュー410が1次ビュー400によって(実質的に)全体的にオクルージョンされるように選ばれ得る。たとえば、両方のビュー400、410は、たとえばアプリケーションのウィンドウ(
図2Aでは明示的には示されていない)において、同じ場所およびサイズを割り当てられ得る。次いで、スタックされたビュー400、410は、たとえばスタックされたビュー400、410が3D画像コンテンツを表すと決定することができないディスプレイサーバコンポーネントである「レガシー」ディスプレイサーバコンポーネントに、2つのビューを表示信号へと合成するときに1次ビュー400により2次ビュー410に上描きさせて、それにより2次ビューをオクルージョンする。
【0045】
この概念は、「明示的上描き」と称されることもあり、「明示的上描き」において、出力画像は多数回更新される。1次ビュー400が(半)透明である場合、1次ビュー400と2次ビュー410の間に、黒色かそうでなければ不透明で均質のバリアビューが挿入されてよい。ここで、「間に挿入される」は、バリアビューを、1次ビュー400の後、しかし2次ビュー410の前に置くZ順序をバリアビューが有することを指すものであり、バリアビューは、好ましくは、1次ビュー400および/または2次ビュー410と同じ場所およびサイズを有する。あるいは、ディスプレイサーバコンポーネントは、2次ビュー410がオクルージョンされると決定し得る場合には、2次ビュー410の描画を全体的に省略してもよい。
【0046】
「レガシー」ディスプレイサーバコンポーネントに上描きさせるために、アプリケーションによって生成されるビュー400、410は、アプリケーションによる合成最適化をバイパスするために、オペレーティングシステムによってのみ構成され得るタイプでよいことが留意される。たとえば、アンドロイドでは、これは、ビュー400、410が「SurfaceView」タイプのビューであることによって達成され得る。
【0047】
引き続き
図1および
図2Aを参照して、3Dディスプレイサーバコンポーネント254、256は、
図2Aのスタックされたビュー400、410が3D画像コンテンツを表すと決定するように構成され得る。また、後に
図3を参照しながら解明されるように、これは、たとえばアプリケーション200から受け取られたシグナリングまたはアプリケーション200のメタデータに基づいて決定され得る。それゆえに、3Dディスプレイサーバコンポーネント254、256は、3Dディスプレイのための表示信号を得るように1次ビュー400および2次ビュー410を処理し得る。処理および合成の様々なやり方は、3D処理および3Dディスプレイの当技術においてそれ自体知られている。
【0048】
図1は2つの非限定的な例を示すものである。第1の例によれば、3Dディスプレイサーバコンポーネント254は、ビューレンダリング技術またはビューシンセシス技術を使用することにより、2D画像データからマルチビューディスプレイのための表示信号442を生成し、また、3D可能化補助データを使用して、例として
図1の「X」、「Y」および「Z」とラベルを付けられた他の2D画像の形態の2D画像データによって示されるシーンの他のビューポイントを生成するように構成され得る。そのようなビューポイントは「ビュー」と称されることも多い(そのため「ビューレンダリング」および「ビューシンセシス」という名称もある)が、アプリケーションビュー400、410と混同されるべきではない。ビューレンダリングまたはビューシンセシスのタイプは、3D可能化補助データ310のタイプに依存し得るが、通常は、2D画像データで示されたオブジェクトのカメラまたは視聴者に対する距離を表す奥行き関連のデータを使用する。3D可能化補助データ310が、むしろ2D画像データとともに1対の立体画像を表すさらなる2D画像データを表す場合には、そのような奥行き関連のデータは、最初に、たとえばそれ自体知られているディスパリティ推定技術を使用して、対の立体画像から生成されてよい。
【0049】
3Dディスプレイサーバコンポーネント254は、次いで、
図1において「2D」とラベルを付けられた、1次ビュー400の2D画像データのモザイク状の合成と、この例では3つのさらなるビュー(ポイント)X、YおよびZである他のビュー(ポイント)の2D画像データとを作成し得る。次いで、表示信号442は、出力画像信号として3Dマルチビューディスプレイに提供されてよく、そこで、3Dマルチビューディスプレイは、異なるビュー(ポイント)の画像データを使用して、シーンを3Dでレンダリングしてよい。
【0050】
空間のモザイク状の合成の代わりに、様々な他の知られているタイプのマルチビュー合成が使用され得ることが留意される。たとえば、ビューは空間的および/または時間的にインターリーブされ得る。ビューポイントに加えて、またはその代わりに、他のデータが表示信号に提供されてもよい。たとえば、3D可能化補助データ自体が、表示信号、および/または透明度情報および/またはオクルージョン情報において提供され得る。別の例は、表示信号が、少なくとも2つのビューから生成されたポイントクラウドまたは3Dメッシュなどを含み得るものである。一般に、表示信号は、単一のものばかりでなく、たとえばデュアルDisplayPortといった多数の独立したデータチャネルおよび/またはケーブルによってディスプレイに提供され得ることが留意される。
【0051】
第2の例によれば、3Dディスプレイサーバコンポーネント256は、立体表示のための表示信号444を生成するように構成され得る。このビュー合成は、3D可能化補助データ310のタイプに応じて、異なる形態をとり得る。たとえば、3D可能化補助データ310は、さらなる2D画像データを表し、これは2D画像データとともに1対の立体画像を表す。この場合、2D画像データ300が左画像を表し、さらなる2D画像データ310が右画像を表すなら、3Dディスプレイサーバコンポーネント256は、これらの画像を、並んでフォーマットされた表示信号444へと合成し得る。空間的および/または時間的立体ビュー合成の様々な他の知られているタイプも、代わりに使用され得ることが留意される。しかしながら、3D可能化補助データ310が、2D画像データに示されたオブジェクトのカメラまたは視聴者に対する距離を表す奥行き関連のデータを表す場合には、前述のビューレンダリング技術またはビューシンセシス技術を使用して、さらなる2D画像データ(たとえば右画像)が生成され得る。
【0052】
図2Bは、ビュー構成に従って1次ビュー400と2次ビュー410を互いに配置構成するアプリケーションのさらなる例を示すものであり、これは、2Dディスプレイのための2Dディスプレイサーバコンポーネントに、少なくとも2つのビューを表示信号へと合成するとき、ビュー構成によって、2次ビューの描画を省略させるかまたは2次ビューに上描きさせる。すなわち、この例では、アプリケーションは、ウィンドウマネージャに対して、1次ビュー400の2D画像データを含むビューポート430を示す。たとえば、ビューポート430は、バッファ214(一般に特定の物理的バッファというよりむしろ論理的バッファであるバッファを指す「バッファオブジェクト」でよい)に対して定義され得る。
図2Bにも示されているように、2次ビュー410の3D可能化補助データが、次いで、バッファ214におけるビューポート430の外部に配置され得て、「レガシー」ディスプレイサーバコンポーネントに2次ビュー410の描画を省略させる。あるいは、2次ビュー410の3D可能化補助データは、ビューポート430の外部に、異なるやり方で、たとえば異なるバッファに配置され得る。
【0053】
図3は、アンドロイドオペレーティングシステムの特定の実施形態を示すものである。繰り返しになるが、アプリケーション200は、2D画像データ300および3D可能化補助データ310を回復するかまたは取得し、2D画像データを含む1次ビュー400と、3D可能化補助データを含む2次ビュー410とを提供するように示されている。
図3は、2次ビュー410の上にスタックされた1次ビュー400を示すが、「レガシー」ディスプレイサーバコンポーネントに、2次ビュー410に上描きさせるかまたは2次ビュー410の描画を省略させるように、両方のビューが互いに違った風に配置構成されることもある。これは、
図1に示されたビューにも適用される。
【0054】
図3の例では、アプリケーション200は2次ビュー410を全画面表示のものとして提供し、2次ビュー410の上に1次ビュー400を配置構成し得る。
【0055】
図3は、ウィンドウマネージャ262と、Android Board Support Package(BSP)260の一部であり得るSurfaceFlinger 264とをさらに示す。SurfaceFlinger 264は、アプリケーションビューを処理し、3Dディスプレイのためのビュー合成を実施するかまたは少なくとも可能にすることにより、3Dディスプレイサーバコンポーネントの少なくとも一部分を具現し得る。
【0056】
アプリケーション200のスタックされたビュー400、410が3D画像コンテンツを表すことを、3Dディスプレイサーバコンポーネント264が決定するのを可能にするための様々なやり方がある。
図3の例では、アプリケーション200は、サービスAPI 284を介してサービスプロセス280を用いて3D画像コンテンツを表すために、スタックされたビュー400、410を登録してよく、サービスプロセス280は、拡張子(「hook」)282によって3Dディスプレイサーバコンポーネント264と通信することができる。したがって、3Dディスプレイサーバコンポーネントは、アプリケーションのスタックされたビュー400、410が3D画像コンテンツを表すと通知され得、それにしたがってビューを処理し得る。3Dディスプレイサーバコンポーネントが、アプリケーションのビューが3D画像コンテンツを表すと決定するのを可能にするように、サービスプロセス280が意図的に提供され得る。
【0057】
アンドロイドを参照しながら説明してきたが、上記の方策は、特定のオペレーティングシステムのためのアプリケーションを開発する当業者によって様々な他のタイプのオペレーティングシステムに適用され得るものである。たとえば、*-nixベースのオペレーティングシステム(Linux、BSD、Unixなど)については、多岐にわたるウィンドウマネージャ(https://wiki.archlinux.org/index.php/window_managerを参照されたい)ならびに様々なカスタマイズ可能なディスプレイサーバ(たとえばX11、Waylandベースのもの、Mir、DirectFb)が存在する。MacOSまたはiOS(Quartz)については、Quartzウィンドウサービスは、説明されたようなウィンドウサーバの機能性の少なくとも一部分を提供し得、Quartzディスプレイサービス/Quartz合成サービス/XQuartzは、説明されたようなディスプレイサーバコンポーネントのディスプレイサーバの機能性の少なくとも一部分を提供するように構成され得る。マイクロソフトWindowsについては、Desktop Window Managerが、説明されたようなウィンドウサーバの機能性の少なくとも一部分を提供し得、GDIグラフィックスデバイスインターフェースは、説明されたようなディスプレイサーバまたはディスプレイサーバコンポーネントの機能性の少なくとも一部分を提供するように構成され得る。
【0058】
図4は、ディスプレイ080上にアプリケーションのビューを表示するためのシステム100を示すものである。そのようなシステム100は、たとえば
図1-
図3を参照しながら本明細書の中で説明されたようなオペレーティングシステムおよびアプリケーションを走らせるように構成され得る。システム100は、オペレーティングシステムを表すシステムデータおよびアプリケーションを表すアプリケーションデータを含み得るメモリ140を備え得る。システム100がさらに備え得るプロセッササブシステム120は、データ通信142によってメモリと通信し、オペレーティングシステムおよびアプリケーションを実行するように構成されている。例として、システム100は、システム100に接続されたディスプレイ080に対して表示データ182を出力するための表示出力を備えるようにさらに示される。表示データは、ディスプレイサーバコンポーネントによって生成された表示信号など、プロセッサシステム120の視覚化された出力を表し得、この視覚化された出力は、データ通信122を介して表示出力180に提供され得る。例として、システム100は、2D画像データおよび3D可能化補助データを記憶し得る大容量記憶装置160を備えるようにさらに示され、このデータは、プロセッササブシステムによってデータ通信162を介してアクセスされ得る。
【0059】
一般に、システムは、たとえばセットトップボックス、パーソナルコンピュータ、ゲーミングコンソールまたは(3D)ディスプレイに接続可能な類似のデバイスといった個別のデバイスの中に、またはこの個別のデバイスとして具現され得る。あるいは、システムは、たとえばスマートフォン、タブレットデバイス、テレビ、ディスプレイ、モニタなどの(3D)ディスプレイを備えるディスプレイデバイスの中に、またはこのディスプレイデバイスとして具現され得る。一般に、本システムはデバイスまたは機器によって実現され得る。デバイスまたは機器は、適切なソフトウエアを実行する1つ以上の(マイクロ)プロセッサを備え得る。機能の機能性を実装するソフトウエアは、ダウンロードされたものであってよく、および/または、たとえばRAMなどの揮発性メモリもしくはFlashなどの不揮発性メモリといった対応する1つまたは複数のメモリに記憶されてもよい。あるいは、システムの機能は、たとえばフィールドプログラマブルゲートアレイ(FPGA)といったプログラマブル論理の形態で、または特定用途向け集積回路(ASIC)として、またはその他のタイプの回路もしくは回路の組合せとして、デバイスまたは機器に実現され得る。
【0060】
本明細書で説明されたソフトウエアコンポーネントのうち任意のものが、たとえば実行可能コードといったコンピュータのための命令によって表され得、コンピュータのための命令は、たとえば機械可読の物理的マークの一続きの形態510で、および/または、たとえば磁気的または光学的な性質または値といった様々な電気的な性質または値を有する一連の要素として、コンピュータ可読媒体500に記憶され得る。実行可能コードは、一時的または非一時的に記憶されてよい。コンピュータ可読媒体の例は、メモリデバイス、光記憶デバイス、オンラインソフトウェアなどを含む。
図5は光ディスク500を示すものである。たとえば、コンピュータ可読媒体500は、本明細書で説明されるようなアプリケーション、および/または恐らくオペレーティングシステムの一部としてのディスプレイサーバコンポーネントを記憶し得る。
【0061】
前述の実施形態は本発明を限定することなく説明するものであり、当業者なら多くの代替実施形態を設計し得るはずであることに留意されたい。
【0062】
請求項では、括弧内におかれたあらゆる参照記号が、請求項を制限するものとして解釈されることはないものとする。「備える」という動詞およびその語形変化の使用は、請求項において明示されたもの以外の要素またはステップとの存在を除外するものではない。要素に先立つ冠詞「1つの(a)」または「1つの(an)」は、そのような要素が複数存在することを除外するものではない。「少なくとも1つの」などの表現は、要素のリストまたはグループに先行するとき、リストまたはグループからの要素のすべてまたはいくらかのサブセットの選択を表す。たとえば「A、B、およびCのうち少なくとも1つ」という表現は、Aのみ、Bのみ、Cのみ、AとBの両方、AとCの両方、BとCの両方、あるいはA、B、およびCのすべて、を含むものと理解されたい。本発明は、いくつかの別個の要素を含むハードウェアおよび適切にプログラムされたコンピュータによって実行され得る。いくつかの手段を列挙するデバイス請求項では、これらの手段のうちのいくつかはハードウェアの全く同一のアイテムによって具現されてよい。互いに異なる従属請求項においてある特定の方策が詳述されているという単なる事実は、これらの方策の組合せが有利に使用され得ないことを示すわけではない。