(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-15
(45)【発行日】2023-09-26
(54)【発明の名称】3Dビューシステムへのシームレスな遷移を備えるサラウンドビュー及び方法
(51)【国際特許分類】
G06T 15/00 20110101AFI20230919BHJP
【FI】
G06T15/00
(21)【出願番号】P 2019563748
(86)(22)【出願日】2018-05-16
(86)【国際出願番号】 US2018033030
(87)【国際公開番号】W WO2018213493
(87)【国際公開日】2018-11-22
【審査請求日】2021-05-15
(32)【優先日】2017-09-15
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】201741017062
(32)【優先日】2017-05-16
(33)【優先権主張国・地域又は機関】IN
(73)【特許権者】
【識別番号】507107291
【氏名又は名称】テキサス インスツルメンツ インコーポレイテッド
(74)【代理人】
【識別番号】230129078
【氏名又は名称】佐藤 仁
(72)【発明者】
【氏名】シャーヴァン カーティック
(72)【発明者】
【氏名】スリラマ クリシュナン ゴヴィンダラヤン
(72)【発明者】
【氏名】ヴェンカテスワラ ラオ マンデラ
【審査官】▲高▼橋 真之
(56)【参考文献】
【文献】米国特許出願公開第2018/0005444(US,A1)
【文献】国際公開第2015/170453(WO,A1)
【文献】特開2003-348574(JP,A)
【文献】特開2014-203441(JP,A)
【文献】Vikram Appia et al.,Surround view camera system for ADAS,TI's TDAx SoCs,米国,Texas Instruments,2015年10月,https://www.ti.com/lit/wp/spry270a/spry270a.pdf
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00-1/40
G06T 3/00-5/50
G06T 11/00-11/40
G06T 15/00-17/00
G06T 17/10-17/30
G08G 1/00-99/00
H04N 7/18
(57)【特許請求の範囲】
【請求項1】
サラウンドビューシステムにおける方法であって、
2D画像処理チェーンを初期化することと、
3D画像処理チェーンを初期化すること
の前に前記2D画像処置チェーンの出力を表示することと、
オペレーティングシステムによるハンドシェイクを検出するときに前記3D画像処理チェーンを初期化することと、
前記3D画像処理チェーンを初期化すること
の後に、
一連の光学デバイスから一連の画像を受信し、
2Dサラウンドビューを製作するために前記一連の画像を前記2D画像処理チェーンで処理し
、同時に
、3Dサラウンドビューを製作するために前記一連の画像を前記3D画像処理チェーンで処理し、
前記2Dサラウンドビューと前記3Dサラウンドビューとの
一方を表示することと、
を含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記3D画像処理チェーンを
初期化する
ことが、
グラフィック処理ユニット(GPU
)を初期化する
ことと、
前記オペレーティングシステムが
初期化されているかをチェックする
ことと、
前記GPUが前記3Dサラウンドビューを
描画する準備ができているかをチェックする
ことと、
を含む、方法。
【請求項3】
請求項1に記載の方法であって、
前記オペレーティングシステムが、主コア上で作動する高レベルオペレーティングシステムであり、
前記3D
画像処理チェーンを初期化する
ことが、
実時間オペレーティングシステムを作動させている
一連の補助コアと
前記高レベルオペレーティングシステムを作動させている主コアとの間の通信メカニズムを有効化することを含む、方法。
【請求項4】
請求項1に記載の方法であって、
前記
一連の画像を前記2D
画像処理チェーンで処理する
ことが、
前記
一連の画像を整合
して混合する
ことと、
前記
一連の画像を
1つの出力画像にスティッチする
ことと、
を含む、方法。
【請求項5】
請求項1に記載の方法であって、
前記
ビューを表示する
ことが、
前記3D画像処理チェーンの故障を検出する
ときに前記2D
サラウンドビューを
表示することを含む、方法。
【請求項6】
請求項
5に記載の方法であって、
前記故障が
、前記3Dサラウンドビューを受信することを失敗することを含む、方法。
【請求項7】
請求項
5に記載の方法であって、
前記3D
画像処理チェーンの故障を検出するときに前記オペレーティングシステムによって使用されるバッファを
再要求することを更に含む、方法。
【請求項8】
請求項1に記載の方法であって、
前記オペレーティングシステムが、主コア上で作動し、
前記
ビューを表示することが、副コアによって前記2D
サラウンドビューと前記3D
サラウンドビューとの間で選択することを含む、方法。
【請求項9】
サラウンドビューシステムにおける方法であって、
第1の処理チェーンを初期化することと、
複数の光学デバイスから周囲の第1の一連の画像を受信することと、
前記周囲の第1のビューを製作するために前記第1の処理チェーンによって前記第1の一連の画像を処理することと、
表示するために前記第1のビューを提供することと、
オペレーティングシステムによるハンドシェイクを検出することに基づいて第2の処理チェーンを初期化することと、
前記複数の光学デバイスから前記周囲の第2の一連の画像を受信することと、
前記第2の処理チェーンを初期化することの後に第2の一連の画像を受信することに基づいて、
前記周囲の第2のビューを製作するために前記第1の処理チェーンによって前記第2の一連の画像を処理し
、同時に
、前記周囲の第3のビューを製作するために前記第2の画像チェーンによって前記第2の一連の画像を処理し、
前記第2のビューと前記第3のビューとの間でビューを選択し、
表示するために前記選択されたビューを提供することと、
を含む、方法。
【請求項10】
請求項
9に記載の方法であって、
前記
ビューを選択することが、前記第2
の一連の画像を処理することにおける前記第2の処理チェーンによる故障に基づいて前記
第3
のビュー
を選択することを含む、方法。
【請求項11】
請求項
9に記載の方法であって、
前記オペレーティングシステムが第1のコア上で作動し、
前記
ビューを選択することが、前記第1のコアと異なる第2のコア上で作動するフェイルセーフモニタによって実行される、方法。
【請求項12】
請求項
9に記載の方法であって、
前記
第1の処理チェーンによって前記第1の一連の画像を処理することが、前記第1のビュー
を製作するために前記第1の一連の画像の幾何学的整合と
測光整合と混合とスティッチとを実行することを含む、方法。
【請求項13】
請求項
9に記載の方法であって、
前記
第2の処理チェーンによって前記第2の一連の画像を処理することが、前記
第3
のビューを
製作する
ために前記第2の一連の画像を描画してスティッチすることを含む、方法。
【請求項14】
請求項9に記載の方法であって、
前記第1の処理チェーンが2D画像処理チェーンであり、前記第2の処理チェーンが3D画像処理チェーンである、方法。
【請求項15】
請求項9に記載の方法であって、
前記第2の処理チェーン
を初期化することが、
グラフィック処理ユニット(GPU)を初期化することと、
前記GPUが前記第3
のビュー
を描画する準備ができているかをチェックすることと、
を含む、方法。
【請求項16】
システムであって、
第1の一連の画像と第2の一連の画像とを受信するチャネル捕捉ブロックと、
前記チャネル捕捉ブロックに結合される第1の処理チェーンであって、
第1のビューを製作するために前記第1の一連の画像を処理し、
第2のビューを製作するために前記第2の一連の画像を処理する、
ように動作可能である、前記第1の処理チェーンと、
前記チャネル捕捉ブロックに結合される第2の処理チェーンであって、
オペレーティングシステムによるハンドシェイクで初期化され、
初期化の後に、第3のビューを製作するために前記第2の一連の画像を処理する、
ように動作可能な前記第2の処理チェーンと、
前記第1の処理チェーンと前記第2の処理チェーンとに結合されるフェイルセーフモニタであって、
第1のビューを受信し、
前記第2の処理チェーンの初期化の前に前記第1の一連の画像に基づいて前記第1のビューを提供し、
同時に製作された前記第2のビューと前記第3のビューとを
同時に受信し、
前記第2の処理チェーンの初期化の後に前記第2の一連の画像に基づいて提供するために前記第2のビューと前記第3のビューとの間で選択する、
ように動作可能である、前記フェイルセーフモニタと、
を含む、システム。
【請求項17】
前記請求項16に記載のシステムであって、
前記フェイルセーフが、前記第2の処理チェーンの故障を検出することに応答して前記第2のビューを選択するように更に動作可能である、システム。
【請求項18】
請求項17に記載のシステムであって、
前記故障が、前記第2の処理チェーンが前記第3の光景を製作することを誤ることを含む、システム。
【請求項19】
請求項16に記載のシステムであって、
前記第2の処理チェーンが、前記第2の一連の画像を描画するためのグラフィック処理ユニットを含む、システム。
【請求項20】
請求項16に記載のシステムであって、
前記第1の処理チェーンが2D画像処理チェーンであり、前記第2の処理チェーンが3D画像処理チェーンである、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、3Dビューへのシームレスな遷移を備えるサラウンドビューシステムに関する。
【背景技術】
【0002】
3次元サラウンドビュー(3D‐SRV)システムは、概して、ハイレベルオペレーティングシステム(HLOS:high level operating system)によって管理されるグラフィカル処理ユニット(GPU)を用いる。インフォテイメントシステムにおいて、HLOSがソフトウェアセキュリティ脆弱性のためクラッシュする恐れがある。HLOSがクラッシュした場合、3D‐SRVディスプレイはフリーズし、このフリーズは、運転手がリアルタイムディスプレイからの視覚的出力を用いて車を操縦している間に起こると、事故につながる恐れがある。従って、故障が検出されてディスプレイがフリーズ又はグリッチするとき、2Dサラウンドビュー又は別のビューにシームレスに遷移する必要がある。
【0003】
サラウンドビュー(SRV)は、複数の方位に沿って視野を混合することによって、オブジェクトのパノラマビューをスティッチング(繋ぎ合わせ)している。4方向に沿って捕捉されたビデオは、複数のアルゴリズム、すなわち、幾何学的整合(alignment)、測光整合、及び混合を介して処理されて、パノラマビューを生成する。SRVは、オーバーヘッドとして見える、オブジェクトの2D‐SRV鳥瞰図と、異なるビューポートに沿った3D‐SRVパノラマビューとに大別される。
図1(0100)は、概して、スクリーン上に表示される画像の、従来の3D SRV(0103)と2D SRV(0104)を図示する。入力画像(0101)は、複数のカメラによって捕捉され得、幾何学的修正エンジン(0102)が、これらの画像を補正し、整合し、3D SRV又は2D SRVに混合し得る。
【0004】
図2は、概して、画像の3D SRV処理エンジン及び2D SRV処理エンジンの従来のブロック図を図示する。2D処理エンジンは、チャネル捕捉ブロック(0201)、整合及び混合ブロック(0202)、スティッチングブロック(0203)、及びディスプレイブロック(0204)を含む。3D SRV処理エンジンは、チャネル捕捉ブロック(0211)、グラフィカル処理ユニット(GPU)提供(rendering)ブロック(0212)、スティッチングブロック(0213)、及びディスプレイブロック(0214)を含む。2D SRV処理エンジン及び3D SRV処理エンジンは、ハイレベルオペレーティングシステム(HLOS)(0216)及びリアルタイムオペレーティングシステム(RTOS)(0215)と共に作動され得る。従来のシステムは、2D処理エンジン又は3D処理エンジンのいずれかを実装する。従って、システムが2D処理エンジンを実装しているときであってディスプレイブロック(0204)上の画像がフリーズする場合に、3D処理エンジンにシームレスに切り替えることができない。或いは、システムが3D処理エンジンを実装しているときであってディスプレイブロック(0214)上の画像がフリーズする場合に、2D処理エンジンにシームレスに切り替えることができない。2D処理エンジンと3D処理エンジンとの間の切り替えの失敗は、運転手がリアルタイムディスプレイからの視覚的出力を用いて車を操縦している間の事故につながる恐れがある。従って、2D処理エンジンと3D処理エンジンの両方を並列に又はその他の様式で実装及び作動させて、特に自動車における安全上の問題を緩和しつつ、これらのエンジン間のシームレスな切り替えが存在するようにする必要がある。3D SRV処理エンジンがクラッシュした場合に、周辺の鳥瞰図をユーザーに提供する耐故障性のシステムが必要とされている。3D‐SRVアプリケーションを作動させる従来のデバイスは、HLOSクラッシュの際に頼るべくフェールセーフ冗長性を教示しておらず、ボード全体をリブートしなければならない。
【発明の概要】
【0005】
2Dサラウンドビューから3Dサラウンドビューへのシームレスな遷移のための或る方法において、この方法は、2D‐SRV処理チェーンを初期化すること、HLOSハンドシェイクが完了するのを待機する間及びHLOSハンドシェイクの完了の際に2Dサラウンドビューを表示すること、3D‐SRV処理チェーンを初期化し、3D‐SRVバッファ出力を待機すること、2D‐SRVディスプレイパイプラインを無効化し、3D‐SRVディスプレイパイプラインを有効化すること、スイッチバックモニタを有効化すること、3Dサラウンドビューにシームレスかつグリッチフリーで原子的に切り替えること、及び、3Dサラウンドビューをモニタに表示することを含む。別の方法が、HLOSにおけるクラッシュを検出すること、及び、3Dサラウンドビューから2Dサラウンドビューにシームレスに切り替えることを含む。
【図面の簡単な説明】
【0006】
【
図1】出力3Dフレーム及び出力2Dフレームに幾何学的に変換される従来の入力フレームを図示する。
【0007】
【
図2】従来のサラウンドビュー処理方法を図示する。
【0008】
【
図3】例示の実施例の一態様に従ったブートアップルーチンの例示的なスクリーンショットを示す。
【0009】
【
図4】例示の実施例の一態様に従った、
図3において図示したブートアップ後の2Dサラウンドビューの例示的なスクリーンショットを示す。
【0010】
【
図5】例示の実施例の一態様に従った、
図4の2Dサラウンドビューから3Dサラウンドビューへのシームレスな切り替えの例示的なスクリーンショットを示す。
【0011】
【
図6】例示の実施例の一態様に従った、故障を検出した後の
図4の3Dサラウンドビューから2Dサラウンドビューへのシームレスな切り替えの例示的なスクリーンショットを示す。
【0012】
【
図7】例示の実施例の一態様に従った、2D‐SRV処理チェーン及び3D‐SRV処理チェーンとの入力画像の同時処理の例示的な装置を示す。
【0013】
【
図8A】例示の実施例の一態様に従った、2Dサラウンドビューディスプレイから3Dサラウンドビューディスプレイへの例示的なシームレスな遷移方法を示す。
【0014】
【
図8B】例示の実施例の一態様に従った、故障の検出の際に3Dサラウンドビューディスプレイから2Dサラウンドビューディスプレイに遷移するための例示的なフェールセーフな方法を示す。
【0015】
【
図9】例示の実施例の一態様に従った、2Dサラウンドビューディスプレイから3Dサラウンドビューディスプレイへのシームレスな遷移の例示的なブロック図を示す。
【0016】
【
図10】例示の実施例の一態様に従った、2Dサラウンドビューディスプレイから3Dサラウンドビューディスプレイへのシームレスな遷移の例示的なタイミングフローチャートを図示する。
【0017】
【
図11】例示の実施例の一態様に従った故障検出方法の例示的なフローチャートである。
【発明を実施するための形態】
【0018】
本願の多くの革新的な教示は、好ましい実施例を特に参考にして説明されており、これらの革新的な教示は、有利にも、2Dサラウンドビューから3Dサラウンドビューへのシームレスでグリッチフリーな遷移の特定の問題に適用される。しかしながら、この実施例は、本明細書における革新的な教示の多くの有利な用途の一例に過ぎない。概して、本願の本明細書において成される記述は、必ずしもこれらの種々の実施例のいずれかを限定するものではない。また、幾つかの記述は、幾つかの特徴に適用されるが他の特徴には適用されない場合もある。
【0019】
例示の実施例は、ブートアップの際の2Dサラウンドビューから3Dサラウンドビューへのシームレスな遷移、及び、故障の検出の際の3Dサラウンドビューから2Dサラウンドビューへのシームレスな遷移に関する。例示の実施例は、オートモーティブ、ADAS、又はインフォテイメントシステムを含む。
【0020】
「3D‐SRV」、「3D SRV」、「3Dサラウンドビュー」、「3Dビュー」という用語は、本明細書において、オブジェクト又は場所を囲む、3次元ビューを定義するために交換可能に用いられる。同様に、「2D‐SRV」、「2D SRV」、「2Dサラウンドビュー」、「2Dビュー」は、本明細書において、オブジェクト又は場所を囲む、2次元鳥瞰図を定義するために交換可能に用いられる。「出力画像」及び「出力フレーム」という用語は、本明細書において、スクリーン上に表示される画像を示すために交換可能に用いられる。また、「入力画像」及び「入力フレーム」という用語は、本明細書において、カメラによって捕捉される画像を示すために交換可能に用いられる。
【0021】
図3は、一つの好ましい実施例に従ったブートアップルーチンの例示的なスクリーンショットを示す。スクリーンショット(0300)は、例示的な装置(0312)を用いて生成される事象(0301、0302、0303、及び0304)のタイムラインを図示する。時間(0301)において電源投入及びブートすると、プロセッサが、ブートコードを実行し得、カメラのビューポート、及びHLOSをロードするためのポインタなどのその他のパラメータを初期化し得る。
図4(0400)は、好ましい実施例に従った、
図3に図示したブートアップ後の2Dサラウンドビューの例示的なスクリーンショットを示す。時間(0302)において、スクリーン(0401)上に周辺の鳥瞰図を示す2D SRVが表示され得る。
図5(0500)は、好ましい実施例に従った、
図4の2Dサラウンドビューから3Dサラウンドビューへのシームレスな切り替えの例示的なスクリーンショットを示す。時間(0303)において、3Dサラウンド処理エンジン及び3Dパイプラインディスプレイが有効化されると、ディスプレイは、グリッチなしに2D SRVビューから3D SRVビューにシームレスに切り替わる。
図6(0600)は、例示の一実施例に従った、故障を検出した後の、
図4の3Dサラウンドビューから2Dサラウンドビューへのシームレスな切り替えの例示的なスクリーンショットを示す。時間(0304)において、3D SRVエンジン又は3D SRVパイプラインディスプレイにおいて何らかの故障が検出されると、例示的な装置(0700)は、ユーザーディスプレイ上の画像を2D SRVビューにシームレスに切り替える。
【0022】
図7は、好ましい実施例に従った、2D‐SRV処理チェーン及び3D‐SRV処理チェーンを用いる、入力画像の同時処理の例示的な装置及びデータフローを示す。装置(0700)は、チャネル捕捉ブロック(0701)、整合及び混合ブロック(0702)、2Dスティッチングブロック(0703)、GPU提供ブロック(0711)、3Dスティッチングブロック(0712)、フェールセーフモニタ(0713)、及びディスプレイブロック(0714)を含む。チャネル捕捉ブロック(0701)は、一つ又は複数のカメラからの画像を捕捉し得る。補助コア又はプロセッサ(図示せず)上で作動するRTOS(0704)が、GPU提供ブロック(0711)を除くブロック間の情報の流れを制御し得る。LinuxオペレーティングシステムなどのHLOS(0706)が、埋め込みプロセッサ(図示せず)上で作動している可能性があり、HLOSが初期化され、ロードされ、準備が整うと、GPU提供ブロック(0711)を介して画像が処理され得る。RTOS(0704)及びHLOS(0706)は、ハンドシェイクプロトコルを実施して、3D SRVのための捕捉された画像の処理を可能にし得る。カメラは、例えば、左、右、中央、及び後部などの異なる位置で自動車に取り付けられ得る。また、カメラは、異なった視野又は視野角を有し得る。カメラの数は、1~20個、より好ましくは1~4個とし得る。カメラによって捕捉される画像の数は、1~20個、より好ましくは1~4個とし得る。画像を捕捉すると、チャネル捕捉ブロック(0701)は、整合及び混合ブロック(0702)に、及びGPU提供ブロック(0711)に、画像を最小の処理で転送し得る。画像は、整合及び混合ブロック(0702)における更なる処理の後に、整合され得、一つの画像に混合され得る。画像の各々は、変換され得、後方又は前方にマッピングされ得、歪みに対して幾何学的に補正され得、2Dスティッチングブロック(0703)に転送される出力画像に混合され得る。入力画像から処理された出力画像は、一つの2D SRV出力画像にスティッチングされ得、ディスプレイデバイス(0714)上のディスプレイのためにフェールセーフモニタ(0713)を通過し得る。2D SRV画像は、補助コアとRTOSが作動している限り、表示スクリーン上のディスプレイのために常に利用可能である。RTOSは、クラッシュの影響を受けやすく、欠陥耐性があると証明されることが多い。しかし、ボードの電源が投入されている限り、補助コアは作動している可能性がある。従って、一実施例に従って、2D‐SRVバッファは、ディスプレイのために常に利用可能である。入力画像及び出力画像の画素フォーマットのために、任意の利用可能な業界標準が選択され得る。RTOSとHLOSとの間のハンドシェイクの後、3D SRV処理エンジンが初期化され得、GPUが準備できたとき、捕捉ブロックによって捕捉された入力画像は、GPU提供ユニット(0711)を介して処理され得る。次いで、処理された入力画像は、3D SRVスティッチングングブロック(0712)において3D SRV画像にスティッチングされ得る。3Dスティッチングブロックからの3D SRV画像は、フェールセーフモニタ(0713)を介して流れ、3DパイプラインディスプレイがHLOSによって有効化されると、ディスプレイデバイス(0714)上に表示される。フェールセーフモニタは、補助コア上で連続的に作動しており、2Dスティッチングブロック及び3Dスティッチングブロック両方から入力を受け取る。好ましい実施例に従って、出力画像の表示は、3D SRVが初期化され、表示のための準備ができた後に、2D SRVから3D SRVにシームレスに切り替わる。別の好ましい実施例に従って、フェールセーフモニタ(0713)における故障を検出すると、出力画像のディスプレイが、2D SRVにシームレスに切り替わる。更に別の例示の実施例に従って、入力画像は、2D SRV処理エンジン及び3D SRV処理エンジンを介して同時に処理される。フェールセーフモニタは、
図8B(0810)において後述するように、誤差を監視し得る。
【0023】
図8A(0800)のフローチャートに概して示されるように、2Dサラウンドビューディスプレイから3Dサラウンドビューへの例示的なシームレスな遷移方法は、下記のステップに関して概して説明され得る。
1. <2D-SRV処理チェーンを初期化し、2Dサラウンドビューを表示するステップ(0801)>
このステップは更に、ブートローダからブートすること、及び、2D‐SRVディスプレイパイプラインを有効化することを含む。2D-SRVディスプレイパイプラインは、初期設定で自動的に有効化され得る。ブートする時間は、1ミリ秒から10ミリ秒までの範囲である。2D-SRVアプリケーションのためのブート時間(ボードの電源投入からの時間)は、用いられているカメラ及びセンサの数に応じて、300ms~10sまでの範囲であり得る。
2. <HLOSハンドシェイクが完了するのを待機している間に2Dサラウンドビューを表示するステップ(0802)>
図7において説明したように2Dサラウンドビューを表示するステップは、概して、下記のステップに関して説明され得る。
a. 少なくとも一つの光学的デバイスで一つ又はそれ以上の入力画像を捕捉するステップ、
b. 入力画像を整合及び混合するステップ、
c. 画像を一つの出力画像にスティッチングするステップ、
d. 2D‐SRVディスプレイパイプラインが有効化されているかをチェックするステップ、及び
e. 2Dサラウンドビューを表示するステップ。
図10のタイミングフローチャートにおいて説明するように、HLOSハンドシェイクを待機するステップは、概して、下記のステップに関して説明され得る。
a. GPUを初期化するステップ、
b. HLOSが準備できているかをチェックするステップ(GPUの初期化は、HLOSが準備できているときにのみ行われ、従って、ポイントa及びbを入れ替える必要がある)、及び
c. GPUが3Dサラウンドビューを提供する準備ができているかをチェックするステップ。
3. <HLOSハンドシェイクが完了した場合、3D‐SRV処理チェーンを初期化し、完了していない場合、ステップ(0802)に進むステップ(0803)>
好ましい実施例に従って、3D‐SRV処理チェーンが初期化及び有効化されるとき、2D処理チェーン及び3D処理チェーンは、同時にかつ並列に作動している。3D SRV処理エンジン及び2D SRV処理エンジン両方への入力画像の同時提示は、システムが、2D SRVビューから3D SRVビューに切り替わることを可能にし、故障が検出されるとき、3D SRVビューから2D SRVビューへの切り替えを可能にする。
4. <3D-SRVバッファ出力を待機するステップ(0804)>
3D SRV処理エンジンが初期化及び有効化されると、入力フレームは、入力フレームがGPUブロックに流れることを可能にする3D‐SRVバッファに渡され得る。
5. <2D-SRVディスプレイパイプラインを無効化し、3D-SRVディスプレイパイプラインを有効化するステップ(0805)>
レジスタマップにおける或るレジスタビットが1又は0に書き込まれ得、2D‐SRVディスプレイパイプラインが無効化され得る。同様に、レジスタマップにおける或るレジスタビットが1又は0に書き込まれ得、3D‐SRVディスプレイパイプラインが有効化され得る。レジスタマップは、所定のアドレス指定位置を有する内部メモリに維持され得る。
6. <スイッチバックモニタを有効化するステップ(0806)>
7. <3Dサラウンドビューに原子的に切り替わるステップ(0807)>
例示の一実施例に従って、2Dサラウンドビューと3Dサラウンドビューとの間で表示を原子的に切り替えるレイテンシーは、実質的に0である。より好ましい実施例に従って、2Dサラウンドビューと3Dサラウンドビューとの間で表示を原子的に切り替えるレイテンシーは、30ミリ秒~1分30秒である。表示が30フレーム/秒(FPS)でリフレッシュされる場合、レイテンシーは30msから500msまでの範囲であり得、表示が60FPSでリフレッシュされる場合、レイテンシーは15ms~250msの間で変化し得る。更に別の例示の実施例に従って、2Dサラウンドビューと3Dサラウンドビューとの間で表示を原子的に切り替えるレイテンシーは、入力フレームを失うことなく行われる。
8. <3Dサラウンドビューをモニタに表示するステップ(0808)>
図7において説明したような3Dサラウンドビューを表示する方法は、概して下記のステップに関して説明され得る。
a. 少なくとも一つの光学的デバイスで一つ又はそれ以上の入力画像を捕捉するステップ、
b. GPU提供ブロックを介して処理するステップ、
c. 画像を一つの出力画像にスティッチングするステップ、
d. 3D‐SRVディスプレイパイプラインが有効化されているかをチェックするステップ、及び
e. 3Dサラウンドビューを表示するステップ。
【0024】
好ましい実施例に従って、入力画像が、ビューポートを介して捕捉され、2D処理チェーン及び3D処理チェーンに同時に提示される。処理及び表示の状態を追跡し続けるために、状態機械が実装され得る。状態機械は、表示エンジン及びカウンタの状態を追跡し続けるために、システムオンチップ(SOC)において実装され得る。方法ステップの各々は、処理の状態に対応し得る。誤差、3Dと2Dとの間の切り替え、ディスプレイパイプラインの有効化及び無効化などの、所定のトリガ条件に基づいて、各クロックサイクル上で状態機械が現在の状態から次の状態へ遷移するように、現在の状態及び次の状態の変数が実装され得る。フェールセーフモニタは、事象によってトリガされる状態機械とし得る。これらの事象は、現在、3D‐SRVバッファの利用可能性を含み、これは、パイプライン及びバッファ管理を有効化/無効化への状態の変更をトリガする(捕捉されたバッファが3D‐SRV処理チェーンと共有されるべきかを決定する)。
【0025】
図8B(0810)のフローチャートに概して示されるように、故障の検出の際に3Dサラウンドビューディスプレイから2Dサラウンドビューディスプレイに遷移するための好ましいフェールセーフな方法は、下記のステップに関して概して説明され得る。
1. <新しいフレームを捕捉するステップ(0811)>
2. <3D処理チェーンが有効化される場合、3Dサラウンドビューを表示し、有効化されない場合、ステップ(0818)で2Dサラウンドビューを表示するステップ(0812)>
3. <3Dサラウンドビューが有効化された場合、新しいフレームのタイプが3Dフレームであるかをチェックし、3Dフレームである場合は、ステップ(0814)で故障検出アルゴリズムを有効化し、3D SRVを表示し、3Dフレームでない場合は、ステップ(0814)で故障検出アルゴリズムを有効化し、ステップ(0815)で故障が検出されたかをチェックするステップ(0813)>
4. <故障検出アルゴリズムを有効化するステップ(0814)>
5. <故障が検出された場合、ステップ(0816)に進み、故障が検出されない場合、フレームを適切にドロップするステップ(0815)>
図11に示されるように故障を検出する方法は、概して下記のステップに関して説明され得る。
a. 新しいフレームを捕捉するステップ、
b. 捕捉されたフレームが3Dタイプフレームでない場合、遅延カウンタを1だけインクリメントし、3Dタイプフレームである場合、遅延カウンタをリセットするステップ、及び
c. 遅延カウンタが閾値を超えているかをチェックし、超えている場合、故障を検出するステップ。
6. <2Dサラウンドビューに原子的に切り替え、3D-SRVディスプレイパイプラインを無効化し、2D-SRVディスプレイパイプラインを有効化するステップ(0816)>
7. <3D処理チェーンを無効化し、強制的なバッファリクレーム(reclaim)を有効化する(0817)ステップ>
HLOSによって入力フレームをストアするために用いられるバッファは、故障が検出され、HLOSがクラッシュされるときに解放されない場合がある。例示の一実施例に従って、バッファは、フレームがドロップされないように強制的にリクレームされる。ブックキーピングメカニズムを利用して、HLOSを作動しているコアと共有されるバッファ(入力フレーム)の追跡を継続し得る。ブックキーピングメカニズムは、提供するためにGPUに転送される前に、ペンディングのバッファリストにキューされる(queued)バッファアドレスを含み得る。故障のためにGPUによって返されたバッファの場合、そのバッファに対応するバッファアドレスはデキュー(de-queued)され得る。HLOSクラッシュの際、ペンディングのバッファリスト内のすべてのバッファは、リストが空になるまで強制的にクリアされる。強制的なバッファリクレームは、システムの性能が劣化しないことを保証する。例えば、30フレーム/秒(FPS)で画像又はフレームを表示するには、バッファリクレームが必要となり得る。バッファリクレームが有効化されていない場合、性能は15FPSまで落ちる可能性がある。HLOS及びRTOSは、捕捉されたビデオバッファなどの共有資源を共有し得、HLOSによって保持されたHLOSクラッシュバッファが解放されないと、ビデオ出力を捕捉するために再び用いることができない。これは、書き込みに利用可能なバッファが限られている捕捉ソースでのボトルネックにつながる恐れがある。HLOS故障の検出のレイテンシーに応じて、HLOSが保持する捕捉バッファの数は変化し得る。レイテンシーが高ければ高いほど、HLOSによって保持されているバッファの数が多くなり、その後、捕捉ソースにおいて利用可能なバッファが少なくなる。従って、クラッシュ検出後にシステムが2D‐SRVに切り替わるとき、2D‐SRV処理チェーンがそのバッファに戻らない限り、捕捉ソースはバッファに書き込むことができないので、フレームレートは著しく下がる。HLOS故障検出のレイテンシーが高く、バッファリクレームが実装されていない場合、フレームレートは5~10FPSまで落ちることがある。バッファリクレームが実装される場合、捕捉ソースが書き込むためにすべてのバッファが利用可能であるので、フレームレートは一定(30FPS/60FPS)であり得る。
2D SRVビューへの切り替えは、フレームをドロップすることなく、また性能を失うことなく、シームレスに行われる。
8. <2Dサラウンドビューをモニタに表示するステップ(0818)>
【0026】
図9は、好ましい実施例に従った、2Dサラウンドビューディスプレイから3Dサラウンドビューディスプレイへのシームレスな遷移の例示的なブロック図を示す。
図7(0700)と同様に、
図9(0900)は、2D SRVアルゴリズムブロック(0907)によって生成される2D SRV画像(0906)と、3D SRVアルゴリズムブロック(0903)によって生成される3D SRV画像(0904)とを同時に受け取るフェールセーフモニタブロック(0905)を含む。入力画像又はフレームが、ビデオ捕捉ブロック(0901)によって捕捉され得、2D SRVアルゴリズムブロック(0907)及び3D SRVアルゴリズムブロック(0903)の両方に提示され得る。フェールセーフモニタ(0905)は、シームレス遷移ブロック(0915)及びディスプレイ切り替えブロック(0925)を更に含む。シームレス遷移ブロック(0915)は、故障が検出されない限り、ディスプレイが、デフォルトの2D SRVビューから3D SRVビューに切り替えられることを可能にする。ディスプレイ切り替えブロック(0925)は、
図11に記載されるように、故障の検出の際に、ディスプレイ(0908)を3D SRVビューから2D SRVビューに切り替える。また、フェールセーフモニタブロックは、3D処理エンジンを有効化又は無効化することを示すために、3D有効化ブロック(0902)への3D有効化信号を生成し得る。3D有効化ブロックは、ビデオ捕捉ブロック(0901)から3D SRVアルゴリズムブロック(0903)への入力フレームの流れを可能にするゲートとして機能し得る。フェールセーフモニタが3D処理の誤差を検出した場合、3D有効化ブロックは無効化され得、3D SRVアルゴリズムブロックへの入力フレームの流れをブロックし得る(0903)。
【0027】
図10は、好ましい実施例に従った、2Dサラウンドビューディスプレイから3Dサラウンドビューディスプレイへのシームレスな遷移の例示的なタイミングフローチャートを図示する。電源が投入されると、埋め込みプロセッサが、まずブートし得、数ミリ秒間romコード(1001)からブートromを作動し得る。ブットローダ(1002)が、ブートロムからの命令を複数段階で実行し得、時間(1010)の一段階において補助コアが初期化され得、時間(1012)の別の段階においてDSPアルゴリズムが初期化され得、2D SRVを作動させる。2D SRVエンジンは、時間(1012)に初期化され、時間(1013)に準備される。ブートローダをロードするための時間は、一次コア上で1~10ミリ秒であり得るが、ブート、ファームウェアの初期化、及びその後の補助コア上でのアプリケーションの作動は、用いられるセンサのタイプ及びカメラの数に応じて300ミリ秒から10秒までの範囲であり得る。その後、2D SRV処理エンジンが作動し、3D SRVエンジンが初期化されて作動するまで、2D SRV画像がディスプレイスクリーンに表示される。次に、埋め込みプロセッサは、カーネルを介してHLOSをロードし得る(1003)。一例において、HLOSはLinuxOSであり得、他の例においてHLOSはAndroid又はQNXであり得る。GPU(1004)が、2D SRVエンジンが作動している間、カーネル実行中に初期化され得る。HLOSは、GPU初期化が完了するのを待機し得、次いで、3D SRV処理エンジンを初期化する(1005)ために適切なハンドシェイクを実施し得る。時間(1014)において3D SRV処理エンジン初期化が完了すると、ディスプレイは、ブロック(0915)と同様のシームレス遷移ブロック(1006)を介して、3D SRVディスプレイにシームレスに切り替わり得る。3D SRVディスプレイパイプライン(1007)は、2D SRVビューから3D SRVビューへのシームレスな遷移の際に有効化される。ブートローダは、一次コア上で作動され、補助コア上のファームウェアをロードし(1010及び1012に示すように)、これらのコアに関連するクロックをリセットして、それぞれのコア上のファームウェアの初期化を可能にする。リセットがトリガされると、ブートローダは、(一次コア自体にロードされた)カーネルをロードするようにジャンプし、ファームウェアが補助コア上の初期化を完了するのを待機しない可能性がある。これは、ファームウェアができるだけ早く補助コア上にロードされることを保証し、HLOSとは独立して作動するアプリケーションが非常に迅速にサービスされることを保証する。また、ブートローダは、ファームウェア初期化が完了するのを待機する必要なく、迅速にカーネル初期化にジャンプし得る。各コア(一次及び補助)は、その他のコア状態のチェックを維持するために作動しているタスクを有し、それぞれのコア上で作動するOS(RTOS/HLOS)が準備されると、コアとの通信メカニズムを確立する。この通信メカニズムは、コア間のバッファの流れを確立するのに役立ち、また、SRVアプリケーション間の切り替えを容易にする事象をトリガする。
【0028】
図11のフローチャート(1100)に概して示されるように、故障の検出の際に3Dサラウンドビューディスプレイから2Dサラウンドビューディスプレイに遷移するための好ましいフェールセーフな検出方法が、概して下記のステップに関して説明され得る。
1. 新しいフレームを捕捉し、3D SRV処理が有効化されているかをチェックし、有効化されている場合はステップ(1102)に進み、有効化されていない場合はステップ(1110)に進むステップ(1101)、
2. 新しいフレームが3Dタイプフレームであるかをチェックし、3Dタイプフレームであればステップ(1103)に進み、3Dタイプフレームでなければステップ(1105)に進むステップ(1102)、
3. 遅延カウンタをリセットするステップ(1103)、
4. 3D SRVビューにおいて3Dフレームを表示するステップ(1104)、
5. 遅延カウンタを1だけインクリメントするステップ(1105)、
6. 遅延カウンタが閾値を超えているかをチェックし、超えている場合はステップ(1108)に進み、超えていない場合はステップ(1107)に進むステップ(1106)、
7. フレームを適切にドロップするステップ(1107)、
8. 3D‐SRVディスプレイパイプラインを無効化し、2D‐SRVディスプレイパイプラインを有効化するステップ(1108)、
9. 3D-SRV処理エンジンを無効化し、強制的なバッファリクレームを開始するステップ(1109)、及び
10. 2D SRVビューを表示するステップ(1110)。
【0029】
2Dサラウンドビューから3Dサラウンドビューへのシームレスな遷移のための方法において、この方法は下記を含む。
(a) 2D‐SRV処理チェーンを初期化すること、
(b) HLOSハンドシェイクが完了するのを待機している間に2Dサラウンドビューを表示すること、
(c) HLOSハンドシェイクが完了した場合は3D‐SRV処理チェーンを初期化し、完了していない場合は段階(b)に進むこと、
(d) 3D-SRVバッファ出力を待機すること、
(e) 2D-SRVディスプレイパイプラインを無効化し、3D-SRVディスプレイパイプラインを有効化すること、
(f) スイッチバックモニタを有効化すること、
(g) 3Dサラウンドビューに原子的に切り替えること、及び
(h) モニタに3Dサラウンドビューを表示すること。
【0030】
この一般的な方法は、例示の実施例の範囲内のステップの再配置及び/又は付加/削除を用いて、多くの要因に応じて大幅に改変され得る。これを、本明細書に記載される種々の好ましい実施例のシステムと共に他の実施例と組み合わせることは、例示の実施例の全体的な範囲内にある。
【0031】
考えられる実施例には、構成の基本的なテーマにおける多種多様な変形が含まれる。本明細書に記載される例は、可能な用途の全範囲を表すものではない。本明細書に記載される例は、ほぼ無限の可能性の幾つかである。
【0032】
この基本的なシステム、方法、及びプロダクトバイプロセスは、下記を含むがこれらに限定されない、種々の副次的な実施例で増強され得る。
【0033】
下記など、上述の説明内で教示された要素の組み合わせに基づいて、他の実施例が可能である。
・ 初期化するステップが、ブートローダからブートすること、及び、2D‐SRVディスプレイパイプラインを有効化することを更に含む実施例。
・ ブートするための時間が、1ミリ秒から10ミリ秒までの範囲である実施例。
・ 2Dサラウンドビューを表示するステップが、下記のステップを更に含む実施例。
a. 一つ又はそれ以上の入力画像を少なくとも一つの光学的デバイスで捕捉するステップ、
b. 入力画像を整合及び混合するステップ、
c. これらの画像を一つの出力画像にスティッチングするステップ、
d. 2D‐SRVディスプレイパイプラインが有効化されているかをチェックするステップ、及び
e. 2Dサラウンドビューを表示するステップ。
・ HLOSハンドシェイクが完了するのを待機するステップが、下記のステップを更に含む実施例。
a. GPUを初期化するステップ、
b. HLOSの準備ができているかをチェックするステップ、及び
c. GPUが3Dサラウンドビューを提供する準備ができているかをチェックするステップ。
・ 3D‐SRV処理チェーンを初期化するステップが、RTOSを作動させている補助コアとHLOSを作動させている主コアとの間の通信メカニズムを有効化するステップを更に含む実施例。
・ 3D‐SRVバッファ出力を待機するステップが、捕捉バッファがGPUに流れることを可能にすることを更に含む実施例。
・ 2D処理チェーンと3D処理チェーン両方が同時に並列に作動している実施例。
・ ビューポートを介して入力画像を捕捉すること、及び、これらの画像を2D処理チェーン及び3D処理チェーンに同時に提示することを更に含む実施例。
・ 2Dサラウンドビューと3Dサラウンドビューとの間で原子的に切り替わるレイテンシーが実質的に0である実施例。
・ 2Dサラウンドビューと3Dサラウンドビュー範囲との間で原子的に切り替わるレイテンシーが16ミリ秒から500ミリ秒の範囲である実施例。
・ 2Dサラウンドビューと3Dサラウンドビューとの間で原子的に切り替わるステップが、入力フレームの損失なしに行われる実施例。
・ フェールセーフを更に含み、フェールセーフが、下記のステップを更に含む実施例。
a. フェールセーフモニタリングアルゴリズムを有効化するステップ、
b. 3Dサラウンドビューにおける故障を検出するステップ、
c. 3D-SRVディスプレイパイプラインを無効化し、2D-SRVディスプレイパイプラインを有効化するステップ、
d. 3D処理チェーンを無効化し、強制的なリクレームを有効化するステップ、
e. 2Dサラウンドビューに原子的に切り替えるステップ、及び
f. モニタに2Dサラウンドビューを表示するステップ。
・ 3Dサラウンドビューを表示するステップが、下記のステップを更に含む実施例。
a. 少なくとも一つの光学的デバイスで一つ又はそれ以上の入力画像を捕捉するステップ、
b. GPU提供ブロックを介して処理するステップ、
c. これらの画像を一つの出力画像にスティッチングするステップ、
d. 3D‐SRVディスプレイパイプラインが有効化されているかをチェックするステップ、及び
e. 3Dサラウンドビューを表示するステップ。