IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クゥアルコム・インコーポレイテッドの特許一覧

<>
  • 特表-低レイテンシフレーム配信 図1
  • 特表-低レイテンシフレーム配信 図2
  • 特表-低レイテンシフレーム配信 図3
  • 特表-低レイテンシフレーム配信 図4
  • 特表-低レイテンシフレーム配信 図5
  • 特表-低レイテンシフレーム配信 図6
  • 特表-低レイテンシフレーム配信 図7
  • 特表-低レイテンシフレーム配信 図8A
  • 特表-低レイテンシフレーム配信 図8B
  • 特表-低レイテンシフレーム配信 図9A
  • 特表-低レイテンシフレーム配信 図9B
  • 特表-低レイテンシフレーム配信 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-20
(54)【発明の名称】低レイテンシフレーム配信
(51)【国際特許分類】
   H04N 23/60 20230101AFI20240213BHJP
   H04N 23/70 20230101ALI20240213BHJP
【FI】
H04N23/60 500
H04N23/60 300
H04N23/70
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023548672
(86)(22)【出願日】2022-02-02
(85)【翻訳文提出日】2023-08-10
(86)【国際出願番号】 US2022014979
(87)【国際公開番号】W WO2022177745
(87)【国際公開日】2022-08-25
(31)【優先権主張番号】63/151,001
(32)【優先日】2021-02-18
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/354,792
(32)【優先日】2021-06-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】レンシュラー・マーティン
(72)【発明者】
【氏名】バルドウィン、カラム・ジェームス
(72)【発明者】
【氏名】マーガー、マイケル
(72)【発明者】
【氏名】マイユリ、ガウサム
(72)【発明者】
【氏名】フォルタンプール、ビジャン
【テーマコード(参考)】
5C122
【Fターム(参考)】
5C122DA03
5C122EA31
5C122FF01
5C122FH06
5C122FH18
5C122FK08
5C122FK23
5C122HA03
5C122HB01
(57)【要約】
画像フレームバッファ内の記憶された画像フレームバッファデータの指定された領域をマーキングする例について説明される。撮像システムは、マーキングが上書きされたか否かを識別するために、画像フレームバッファの指定された領域を読み取ることができる。したがって、撮像システムは、画像フレームバッファのうちのどの程度が新しい画像フレームからのデータで上書きされたかを効率的に識別することができる。これに基づいて、撮像システムは、画像フレームバッファから部分画像フレームデータを取り出すことができ、たとえば、部分画像フレームデータを仮想コンテンツと合成するために、および/または歪み補償を実行するために、部分画像フレームデータを処理することができる。処理された部分画像フレームデータは、ディスプレイバッファにアップロードされ、ディスプレイによって表示され得るか、フレームがもう一度キャプチャされて処理される。撮像システムは、部分画像フレームデータを使用して自動露出を実行することもできる。
【特許請求の範囲】
【請求項1】
画像処理のための装置であって、
メモリと、
前記メモリに結合された1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサは、
画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを前記画像フレームバッファに記憶することと、
画像センサーから、画像フレームに対応する画像フレームデータを受信することと、
前記画像フレームバッファ内の前記記憶されたデータのうちの少なくとも一部を前記画像フレームデータで上書きすることと、
前記所定の領域が前記メタデータとは異なる追加データを記憶することを示す前記画像フレームバッファの前記所定の領域の読取りに基づいて、前記画像フレームデータが前記画像フレームの少なくとも所定の量を含むと決定することと、
前記画像フレームの前記所定の量に対応する前記画像フレームデータの少なくとも第1の部分を出力することと
を行うように構成される、装置。
【請求項2】
前記追加データは、前記画像フレームデータの少なくとも一部分である、請求項1に記載の装置。
【請求項3】
前記画像フレームデータの前記第1の部分を出力するために、前記1つまたは複数のプロセッサは、前記画像フレームデータの前記第1の部分を処理するように構成される、請求項1に記載の装置。
【請求項4】
前記画像フレームデータの前記第1の部分を処理するために、前記1つまたは複数のプロセッサは、歪み、歪み補償、およびワーピングのうちの少なくとも1つを使用して、前記画像フレームデータの前記第1の部分の少なくとも一部分を修正するように構成される、請求項3に記載の装置。
【請求項5】
前記画像フレームデータの前記第1の部分を処理するために、前記1つまたは複数のプロセッサは、前記画像フレームデータの前記第1の部分を仮想コンテンツと合成するように構成される、請求項3に記載の装置。
【請求項6】
前記1つまたは複数のプロセッサは、
前記画像センサーの姿勢を識別することと、
前記画像センサーの姿勢に基づいて前記仮想コンテンツをレンダリングすることと
をさらに行うように構成される、請求項5に記載の装置。
【請求項7】
ディスプレイをさらに備え、ここにおいて、前記画像フレームデータの前記第1の部分を出力するために、前記1つまたは複数のプロセッサは、前記ディスプレイを使用して前記画像フレームデータの前記第1の部分を表示するように構成される、請求項1に記載の装置。
【請求項8】
ディスプレイバッファをさらに備え、ここにおいて、前記画像フレームデータの前記第1の部分を出力するために、前記1つまたは複数のプロセッサは、前記画像フレームデータの前記第1の部分を前記ディスプレイバッファに記憶するように構成される、請求項1に記載の装置。
【請求項9】
前記画像フレームデータの前記第1の部分を出力するために、前記1つまたは複数のプロセッサは、
前記画像フレームデータの少なくとも前記第1の部分に基づいて1つまたは複数の画像統計を決定することと、
前記1つまたは複数の画像統計に基づいて画像キャプチャ設定を決定することと
を行うように構成される、請求項1に記載の装置。
【請求項10】
前記1つまたは複数のプロセッサは、
前記画像キャプチャ設定を画像キャプチャハードウェアに送ることと、ここにおいて、前記画像キャプチャハードウェアは前記画像センサーを含む、
前記画像センサーから、第2の画像フレームに対応する2次画像フレームデータを受信することと、ここにおいて、前記画像センサーは、前記画像キャプチャ設定に基づいて前記第2の画像フレームをキャプチャする、
をさらに行うように構成される、請求項9に記載の装置。
【請求項11】
前記画像キャプチャ設定は露出設定である、請求項10に記載の装置。
【請求項12】
前記1つまたは複数のプロセッサは、
前記画像フレームバッファの前記所定の領域において、前記記憶されたデータを前記メタデータでさらにマーキングするように構成される、請求項1に記載の装置。
【請求項13】
前記メタデータは、色のパターンを含む、請求項1に記載の装置。
【請求項14】
前記メタデータは、前記画像フレームに関連付けられたフレーム識別子を含む、請求項1に記載の装置。
【請求項15】
前記画像フレームデータが前記画像フレームの少なくとも前記所定の量を含むと決定するために、前記1つまたは複数のプロセッサは、
前記画像フレームバッファの前記所定の領域を読み取り、
前記画像フレームバッファの前記所定の領域の前記読取りに基づいて、前記所定の領域が前記メタデータとは異なる前記追加データを記憶していることを前記読取りが示すと決定することと
を行うように構成される、請求項1に記載の装置。
【請求項16】
前記記憶されたデータは、前の画像フレームからの前の画像フレームデータを含み、前記前の画像フレームは、前記画像フレームのキャプチャの前に前記画像センサーによってキャプチャされる、請求項1に記載の装置。
【請求項17】
前記画像フレームデータの少なくとも前記第1の部分を出力するために、前記1つまたは複数のプロセッサは、前記画像フレームを出力するように構成される、請求項1に記載の装置。
【請求項18】
前記記憶されたデータは、前記画像フレームバッファの第2の所定の領域において第2のメタデータでマーキングされる、請求項1に記載の装置。
【請求項19】
前記1つまたは複数のプロセッサは、
前記第2の所定の領域が前記第2のメタデータとは異なる2次追加データを記憶することを示す、前記画像フレームバッファの前記第2の所定の領域の第2の読取りに基づいて、前記画像フレームデータが前記画像フレームの少なくとも第2の所定の量を含むと決定することと、
前記画像フレームの前記第2の所定の量に対応する前記画像フレームデータの少なくとも第2の部分を出力することと
を行うように構成される、請求項18に記載の装置。
【請求項20】
前記1つまたは複数のプロセッサは、
シーンのビューを求める要求を受信することと、
前記要求の受信に応答して自動的に前記シーンからの光に前記画像センサーを露出することと、ここにおいて、前記画像センサーから受信された前記画像フレームデータは、前記シーンからの前記光への前記画像センサーの露出に基づく、
を行うように構成される、請求項1に記載の装置。
【請求項21】
前記画像センサーをさらに備える、請求項1に記載の装置。
【請求項22】
前記画像フレームバッファをさらに備える、請求項1に記載の装置。
【請求項23】
前記装置はヘッドマウントディスプレイである、請求項1に記載の装置。
【請求項24】
画像処理の方法であって、
画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを前記画像フレームバッファに記憶することと、
画像センサーから、画像フレームに対応する画像フレームデータを受信することと、
前記画像フレームバッファ内の前記記憶されたデータのうちの少なくとも一部を前記画像フレームデータで上書きすることと、
前記所定の領域が前記メタデータとは異なる追加データを記憶することを示す前記画像フレームバッファの前記所定の領域の読取りに基づいて、前記画像フレームデータが前記画像フレームの少なくとも所定の量を含むと決定することと、
前記画像フレームの前記所定の量に対応する前記画像フレームデータの少なくとも第1の部分を出力することと
を備える、方法。
【請求項25】
前記追加データは、前記画像フレームデータの少なくとも一部分である、請求項24に記載の方法。
【請求項26】
前記画像フレームデータの前記第1の部分を出力することは、前記画像フレームデータの前記第1の部分を処理することを含む、請求項24に記載の方法。
【請求項27】
前記画像フレームデータの前記第1の部分を出力することは、ディスプレイを使用して前記画像フレームデータの前記第1の部分を表示することを含む、請求項24に記載の方法。
【請求項28】
前記画像フレームデータの前記第1の部分を出力することは、前記画像フレームデータの前記第1の部分をディスプレイバッファに記憶することを含む、請求項24に記載の方法。
【請求項29】
前記画像フレームバッファの前記所定の領域において、前記記憶されたデータを前記メタデータでマーキングすることをさらに備える、請求項24に記載の方法。
【請求項30】
シーンのビューを求める要求を受信することと、
前記要求の受信に応答して自動的に前記シーンからの光に前記画像センサーを露出することと、ここにおいて、前記画像センサーから受信された前記画像フレームデータは、前記シーンからの前記光への前記画像センサーの露出に基づく、
をさらに備える、請求項24に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本出願は、画像処理(image processing)に関する。より詳細には、本出願の態様は、表示のために、バッファリングされた画像データ(image data)を効率的に処理するシステムおよび方法に関する。
【背景技術】
【0002】
[0002] エクステンデッドリアリティ(XR)デバイスは、たとえば、ヘッドマウントディスプレイ(HMD:head-mounted display)または他のデバイスを通して、環境をユーザに表示するデバイスである。環境は、ユーザがいる現実世界の環境とは少なくとも部分的に異なる。ユーザは、概して、たとえば、HMDまたは他のデバイスを傾斜または移動させることによって、環境のビュー(view)を対話的に変更することができる。仮想現実(VR)および拡張現実(AR)は、XRの例である。
【0003】
[0003] 画像キャプチャデバイスの画像センサー(image sensor)は、シーン(scene)の画像をキャプチャすることができる。従来、プロセッサ上で実行されるソフトウェアアプリケーションが画像センサーからシーンの画像へのアクセスを受信する前に、画像フレーム(image frame)全体がキャプチャおよび処理を完了しなければならない。従来、ハードウェアドライバと、オペレーティングシステムと、ソフトウェアアプリケーションとの間のネゴシエーションプロセスも、ソフトウェアアプリケーションが画像フレームへのアクセスを受信する前に完了しなければならない。これらのプロセスはすべて、画像フレームのキャプチャと同じ画像フレームの表示との間に遅延(lag)をもたらす。XRなどのアプリケーションは、画像フレームを表示する前に(たとえば、仮想コンテンツ(virtual content)を挿入するために)画像フレームを処理することによって、さらなる遅延をもたらす可能性がある。現実世界の動きとディスプレイスクリーン上のその動きの表現の表示との間の遅延は、モーショントゥーフォトンレイテンシ(motion-to-photon latency)と呼ばれ得る。XRなどの、カメラとディスプレイとの間のレイテンシ(latency)が優先事項であるアプリケーションでは、そのような遅延は、表示される環境を現実世界と同期していないように見えるようにする可能性があり、表示される環境内の動きを揺らぎ(jittery)があるように、またはカクツキ(stuttery)があるように見せる可能性があり、ユーザに吐き気を感じさせる(feel nauseous)可能性がある。
【発明の概要】
【0004】
[0004] 本明細書では、アプリケーションにおける部分画像フレームの迅速な受信のための画像処理用のシステムおよび技法が説明される。画像処理システムは、1つまたは複数の所定の領域(predetermined region)において、画像フレームバッファ(image frame buffer)内の既存の画像フレームバッファデータをウォーターマーク(watermark)(および/または他のメタデータ(metadata))でマーキングする。画像センサーは、画像フレームに対応する画像フレームデータ(image frame data)をキャプチャし、画像センサーが画像フレームをキャプチャするとき、および/またはいくつかの初期画像処理タスク(たとえば、デモザイク処理および/または色空間変換)が完了すると、画像フレームバッファを画像フレームデータで徐々に充填する。画像処理システムは、ウォーターマーク(および/または他のメタデータ)のうちのどれが画像フレームバッファ内に依然として残っているか、およびウォーターマークのうちのどれが画像フレームデータなどの新しいまたは代替のデータによって上書きされたかを識別するために、所定の領域のうちの1つまたは複数においてメモリを読み取ることができる。画像処理システムは、どのウォーターマークが画像フレームデータによって上書きされたかに基づいて、画像フレームの少なくとも所定の量(predetermined amount)(たとえば、パーセンテージ)がキャプチャされ、画像フレームバッファに記憶されたことを効率的に識別することができる。たとえば、画像フレームバッファの中間点に位置するウォーターマークが画像フレームデータによって上書きされたと画像処理システムが決定した場合、画像処理システムは、画像フレームの少なくとも50%がキャプチャされ、現在画像フレームバッファに記憶されていることを知る。画像処理システムは、所定のパーセンテージに対応する画像フレームの一部分(portion)を、ソフトウェアアプリケーション、ディスプレイバッファ(display buffer)、ディスプレイコントローラ、および/またはディスプレイに出力することができる。たとえば、画像フレームの少なくとも第1の半分がキャプチャされ、現在、画像フレームバッファ内に記憶されていることを画像処理システムが知る場合、画像処理システムは、画像フレームの第1の半分をソフトウェアアプリケーションに出力することができ、ソフトウェアアプリケーションは、(たとえば、仮想コンテンツを導入するために)画像フレームの第1の半分を処理し、画像フレームの処理された半分をディスプレイバッファに送ることができる。画像フレームの残り(たとえば、画像フレームの第2の半分)が画像フレームバッファ内で受信されると、ソフトウェアアプリケーションは、画像フレームの残りを処理し、画像フレームの処理された残りをディスプレイバッファに送ることができる。ディスプレイバッファは、画像フレームを表示することができる。例示的な例では、画像フレームバッファウォーターマークを通した部分画像フレームアクセスの使用は、画像フレームのキャプチャから表示までの遅延を67ミリ秒(ms)から14.2msに低減することができる。
【0005】
[0005] 一例では、画像処理のための装置(apparatus)が提供される。本装置は、メモリと、メモリに結合された(たとえば、回路において実装された)1つまたは複数のプロセッサとを含む。1つまたは複数のプロセッサは、画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを画像フレームバッファに記憶することと、画像フレームに対応する画像フレームデータを画像センサーから受信することと、画像フレームバッファ内の記憶されたデータの少なくとも一部を画像フレームデータで上書きする(overwrite)ことと、所定の領域がメタデータとは異なる追加データ(additional data)を記憶することを示す画像フレームバッファの所定の領域の読取り(read)に基づいて、画像フレームデータが画像フレームの少なくとも所定の量を含むと決定することと、画像フレームの所定の量に対応する画像フレームデータの少なくとも第1の部分(first portion)を出力することとを行うように構成され、それらを行うことができる。
【0006】
[0006] 別の例では、画像処理の方法が提供される。本方法は、画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを画像フレームバッファに記憶することと、画像フレームに対応する画像フレームデータを画像センサーから受信することと、画像フレームバッファ内の記憶されたデータの少なくとも一部を画像フレームデータで上書きすることと、所定の領域がメタデータとは異なる追加データを記憶することを示す画像フレームバッファの所定の領域の読取りに基づいて、画像フレームデータが画像フレームの少なくとも所定の量を含むと決定することと、画像フレームの所定の量に対応する画像フレームデータの少なくとも第1の部分を出力することとを含む。
【0007】
[0007] 別の例では、1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを画像フレームバッファに記憶することと、画像フレームに対応する画像フレームデータを画像センサーから受信することと、画像フレームバッファ内の記憶されたデータの少なくとも一部を画像フレームデータで上書きすることと、所定の領域がメタデータとは異なる追加データを記憶することを示す画像フレームバッファの所定の領域の読取りに基づいて、画像フレームデータが画像フレームの少なくとも所定の量を含むと決定することと、画像フレームの所定の量に対応する画像フレームデータの少なくとも第1の部分を出力することとを行わせる命令を記憶した非一時的コンピュータ可読媒体が提供される。
【0008】
[0008] 別の例では、画像処理のための装置が提供される。本装置は、画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを画像フレームバッファに記憶する手段と、画像フレームに対応する画像フレームデータを画像センサーから受信する手段と、画像フレームバッファ内の記憶されたデータの少なくとも一部を画像フレームデータで上書きする手段と、所定の領域がメタデータとは異なる追加データを記憶することを示す画像フレームバッファの所定の領域の読取りに基づいて、画像フレームデータが画像フレームの少なくとも所定の量を含むと決定する手段と、画像フレームの所定の量に対応する画像フレームデータの少なくとも第1の部分を出力する手段とを含む。
【0009】
[0009] いくつかの態様では、追加データは、画像フレームデータの少なくとも一部分である。
【0010】
[0010] いくつかの態様では、画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、画像フレームデータの第1の部分を処理するように構成される。いくつかの態様では、画像フレームデータの第1の部分を処理するために、1つまたは複数のプロセッサは、歪み(distortion)、歪み補償(distortion compensation)、およびワーピング(warping)のうちの少なくとも1つを使用して、画像フレームデータの第1の部分の少なくとも一部を修正する(modify)ように構成される。
【0011】
[0011] いくつかの態様では、画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、画像フレームデータの第1の部分の少なくとも一部をワーピングするように構成される。いくつかの態様では、画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、画像フレームデータの第1の部分の少なくとも一部を歪めるように構成される。いくつかの態様では、画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、画像フレームデータの第1の部分の少なくとも一部に対して歪み補償を実行するように構成される。
【0012】
[0012] いくつかの態様では、画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、エクステンデッドリアリティ(XR)アプリケーションを使用して画像フレームデータの第1の部分を処理するように構成される。いくつかの態様では、画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、画像フレームデータの第1の部分を仮想コンテンツと合成する(composite)ように構成される。いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、画像センサーの姿勢(pose)を識別することと、画像センサーの姿勢に基づいて仮想コンテンツをレンダリングする(render)こととをさらに備える。
【0013】
[0013] いくつかの態様では、画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、画像フレームデータの第1の部分をディスプレイバッファに記憶する。いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、ディスプレイバッファをさらに備える。
【0014】
[0014] いくつかの態様では、画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、ディスプレイを使用して画像フレームデータの第1の部分を表示する。いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、ディスプレイをさらに備える。
【0015】
[0015] いくつかの態様では、画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、通信トランシーバを使用して、画像フレームデータの第1の部分を受信デバイスに送る。いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、通信トランシーバをさらに備える。
【0016】
[0016] いくつかの態様では、画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、画像フレームデータの少なくとも第1の部分に基づいて1つまたは複数の画像統計(image statistics)を決定することと、1つまたは複数の画像統計に基づいて画像キャプチャ設定(image capture setting)を決定することとを行うように構成される。いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、画像キャプチャ設定を画像キャプチャハードウェア(image capture hardware)に送ることと、ここにおいて、画像キャプチャハードウェアは、画像センサーを含む、前記画像センサーから第2の画像フレームに対応する2次画像フレームデータを受信することと、ここにおいて、画像センサーは、画像キャプチャ設定に基づいて第2の画像フレームをキャプチャする、をさらに備える。いくつかの態様では、画像キャプチャ設定は露出設定(exposure setting)である。
【0017】
[0017] いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、画像フレームバッファの所定の領域において、記憶されたデータをメタデータでマーキングすることをさらに備える。
【0018】
[0018] いくつかの態様では、メタデータは、色のパターン(a pattern of colors)を含む。いくつかの態様では、メタデータは、画像フレームに関連付けられたフレーム識別子(frame identifier)を含む。いくつかの態様では、メタデータは、画像フレームバッファに関連付けられた画像フレームバッファ識別子を含む。
【0019】
[0019] いくつかの態様では、画像フレームデータが画像フレームの少なくとも所定の量を含むと決定するために、1つまたは複数のプロセッサは、画像フレームバッファの所定の領域を読み取ることと、画像フレームバッファの所定の領域の読取りに基づいて、所定の領域がメタデータとは異なる追加データを記憶することを読取りが示すと決定することとを行うように構成される。
【0020】
[0020] いくつかの態様では、記憶されたデータは、前の画像フレームからの前の画像フレームデータを含み、前の画像フレームは、画像フレームのキャプチャ前にキャプチャされる。
【0021】
[0021] いくつかの態様では、画像フレームデータの少なくとも第1の部分を出力するために、1つまたは複数のプロセッサは、画像フレームを出力するように構成される。
【0022】
[0022] いくつかの態様では、既存のデータは、画像フレームバッファの第2の所定の領域において第2のメタデータでマーキングされる。いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、第2の所定の領域が第2のメタデータとは異なる2次追加データ(secondary additional data)を記憶することを示す、画像フレームバッファの第2の所定の領域の第2の読取りに基づいて、画像フレームデータが画像フレームの少なくとも第2の所定の量を含むと決定することと、画像フレームの第2の所定の量に対応する画像フレームデータの少なくとも第2の部分(second portion)を出力することとをさらに備える。
【0023】
[0023] いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、シーンのビューを求める要求(request)を受信することと、要求の受信に応答してシーンからの光(light)に画像センサーを自動的に露出する(expose)ことをさらに備え、ここにおいて、画像センサーから受信された画像フレームデータは、シーンからの光への画像センサーの露出(exposure)に基づく。
【0024】
[0024] いくつかの態様では、装置はモバイルデバイスを含む。いくつかの態様では、装置はワイヤレス通信デバイスである。いくつかの態様では、装置はヘッドマウントディスプレイである。いくつかの態様では、装置はカメラである。いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、画像センサーをさらに備える。いくつかの態様では、上記で説明された方法、装置、およびコンピュータ可読媒体は、画像フレームバッファをさらに備える。
【0025】
[0025] いくつかの態様では、メタデータはウォーターマークを含む。
【0026】
[0026] いくつかの態様では、画像フレームの所定の量は、画像フレームの所定のパーセンテージを含む。いくつかの態様では、新しい画像フレームの所定の量は、画像フレームの所定の割合を含む。いくつかの態様では、画像フレームの所定の量は、画像フレームの所定の行数を含む。いくつかの態様では、画像フレームの所定の量は、画像フレームの所定の列数を含む。いくつかの態様では、画像フレームの所定の量は、画像フレームの所定のピクセル数を含む。
【0027】
[0027] いくつかの態様では、装置は、カメラ、モバイルデバイス、モバイル電話、スマートフォン、モバイルハンドセット、ポータブルゲームデバイス、ワイヤレス通信デバイス、スマートウォッチ、ウェアラブルデバイス、ヘッドマウントディスプレイ(HMD)、エクステンデッドリアリティデバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、または複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、サーバコンピュータ、または他のデバイスを備える。いくつかの態様では、1つまたは複数のプロセッサは、画像信号プロセッサ(ISP)を含む。いくつかの態様では、装置は、1つまたは複数の画像をキャプチャするためのカメラまたは複数のカメラを含む。いくつかの態様では、装置は、画像をキャプチャする画像センサーを含む。いくつかの態様では、装置は、画像、1つもしくは複数の通知(たとえば、画像の処理に関連する)、および/または他の表示可能なデータを表示するためのディスプレイをさらに含む。いくつかの態様では、ディスプレイは、1つまたは複数のプロセッサが画像を処理した後に画像を表示する。
【0028】
[0028] 本概要は、請求される主題の主要または本質的な特徴を識別するものではなく、請求される主題の範囲を決定するために切り離して使用されるものでもない。本主題は、本特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分を参照して理解されるべきである。
【0029】
[0029] 上記は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照すると、より明らかになるであろう。
【0030】
[0030] 本出願の例示的な実施形態は、以下の図を参照しながら以下で詳細に説明される。
【図面の簡単な説明】
【0031】
図1】[0031] いくつかの例による、画像キャプチャおよび処理システムのアーキテクチャを示すブロック図。
図2】[0032] いくつかの例による、エクステンデッドリアリティ(XR)システムのアーキテクチャを示すブロック図。
図3】[0033] いくつかの例による、画像フレームバッファ内のウォーターマークに基づいて画像フレームバッファ内の画像フレームデータでどの程度満たされているかを決定するグラフィックス処理ユニット(GPU:graphics processing unit)を有する撮像システムを示す概念図。
図4】[0034] いくつかの例による、既存の画像フレームバッファデータをウォーターマークで上書きする画像フレームデータを示す概念図。
図5】[0035] いくつかの例による、画像フレームが4つの別個の部分において処理されディスプレイバッファに送られる、画像フレームのキャプチャの開始から画像フレームの表示までのタイムラインを示す概念図。
図6】[0036] いくつかの例による、いくつかの例による画像フレームのキャプチャと表示との間のレイテンシの低減を示す概念図。
図7】[0037] いくつかの例による、画像キャプチャ、処理、および表示技法を示す流れ図。
図8A】[0038] いくつかの例による、自動露出のための撮像システムを示すブロック図。
図8B】[0039] いくつかの例による、部分フレーム配信を用いた自動露出のための撮像システムを示すブロック図。
図9A】[0040] いくつかの例による、画像処理技法を示す流れ図。
図9B】[0041] いくつかの例による、画像処理技法を示す流れ図。
図10】[0042] いくつかの例による、本技術のいくつかの態様を実装するためのシステムの一例を示す図。
【発明を実施するための形態】
【0032】
[0043] 本開示のいくつかの態様および実施形態が以下で提供される。当業者には明らかであるように、これらの態様および実施形態のうちのいくつかは独立して適用され得、それらのうちのいくつかは組み合わせて適用され得る。以下の説明では、説明の目的で、本出願の実施形態の完全な理解を提供するために具体的な詳細が記載される。ただし、様々な実施形態は、これらの具体的な詳細なしに実践され得ることが明らかであろう。図および説明は限定するものではない。
【0033】
[0044] 以下の説明は、例示的な実施形態を提供しているにすぎず、本開示の範囲、適用可能性、または構成を限定するものではない。そうではなく、例示的な実施形態の以下の説明は、例示的な実施形態を実装することを可能にする説明を当業者に提供する。添付の特許請求の範囲に記載されるように、本出願の趣旨および範囲から逸脱することなく、要素の機能および構成において様々な変更が行われ得ることを理解されたい。
【0034】
[0045] 画像キャプチャデバイス(たとえば、カメラ)は、画像センサーを使用して、光を受け取り、静止画像またはビデオフレームなどの画像フレームをキャプチャするデバイスである。「画像」、「画像フレーム」、および「フレーム」という用語は、本明細書では互換的に使用される。画像キャプチャデバイスは、典型的には、シーンから光を受け取り、画像キャプチャデバイスの画像センサーのほうへ光を曲げる少なくとも1つのレンズを含む。レンズによって受け取られた光は、1つまたは複数の制御機構によって制御される開口を通過し、画像センサーによって受け取られる。1つまたは複数の制御機構は、画像センサーからの情報に基づいて、および/または画像プロセッサ(たとえば、ホストプロセスもしくはアプリケーションプロセスおよび/または画像信号プロセッサ)からの情報に基づいて、露出、焦点、および/またはズームを制御することができる。いくつかの例では、1つまたは複数の制御機構は、画像キャプチャデバイスのレンズをターゲットレンズ位置に移動させるモータまたは他の制御機構を含む。
【0035】
[0046] エクステンデッドリアリティ(XR)デバイスは、たとえば、ヘッドマウントディスプレイ(HMD)、モバイルハンドセット、ウェアラブルデバイス、または別のデバイスを通して、環境をユーザに表示するデバイスである。XRは、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、およびそれらの組合せを含むことができる。XRデバイスによって表示される環境は、ユーザがいる現実世界の環境とは少なくとも部分的に異なる可能性がある。たとえば、VRでは、XRデバイスによって表示される環境は、完全に仮想であるか、またはほぼ完全に仮想である可能性がある。いくつかの場合には、XRデバイスは、たとえば、その仮想環境の境界をユーザがいる現実世界環境の境界と同様にすることができ、またはユーザがいる現実世界環境内の他のユーザの位置と一致する仮想キャラクタ位置を組み込むことができるので、VRは、依然としてユーザがいる現実世界環境に基づくことができる。ARまたはMRでは、XRデバイスによって表示される環境は、ユーザがいる現実世界環境と、ユーザの体験を拡張する仮想コンテンツとの混合であり得る。ユーザは、一般に、たとえば、XRデバイスを傾け、および/または回転させ、および/または移動させることによって、環境のビューを対話的に変更することができる。XRデバイスがHMDまたはモバイルハンドセットである場合、ユーザは、XRデバイスを傾け、および/もしくは回転させることができ、ならびに/またはユーザがXRデバイスを装着もしくは保持している間、ユーザがいる現実世界環境を通して移動することができる。
【0036】
[0047] 画像キャプチャデバイスの画像センサーは、シーンの画像をキャプチャすることができる。いくつかのデバイスでは、プロセッサ上で実行されるソフトウェアアプリケーションが画像センサーからシーンの画像へのアクセスを受信する前に、画像フレーム全体がキャプチャを完了しなければならない。90フレーム/秒(FPS)などの高速画像フレームキャプチャレートが可能な画像キャプチャデバイスでさえ、その全体における画像フレームのキャプチャは、約11ミリ秒(ms)掛かる。いくつかのデバイスでは、ソフトウェアアプリケーションが画像フレームへのアクセスを受信する前に、ハードウェアドライバのアプリケーションプログラミングインターフェース(API)と、オペレーティングシステム(OS)と、ソフトウェアアプリケーションとの間のネゴシエーションプロセスも完了しなければならない。このネゴシエーションプロセスは、複数のAPIレイヤを含み得る。たとえば、ネゴシエーションプロセスは、カメラハードウェアイベントがOSカーネルに送られることと、OSカーネルがOSカーネルのカメラドライバと通信することと、OSカーネルのカメラドライバがユーザ空間に存在するユーザ空間カメラドライバと対話することと、ユーザ空間カメラドライバが高レベルOS(HLOS)カメラサービスと通信することと、HLOSカメラサービスが最終的にソフトウェアアプリケーションと通信することとを含み得る。このネゴシエーションプロセスにおける各レイヤは、これらの異なる要素に対するAPI呼出しを伴うことができる。このネゴシエーションプロセスと組み合わされた、画像フレーム全体のキャプチャを待つことは、画像フレームのキャプチャと同じ画像フレームの表示との間に著しい遅延をもたらす可能性がある。これらのAPIレイヤの各々は、共通の限られたCPUリソースを求めて競合するスケジューリングタスクを必要とする可能性がある。
【0037】
[0048] XRなどのアプリケーションは、画像フレームを表示する前に画像フレームを処理すること(たとえば、仮想コンテンツを挿入すること、歪み補償を実行すること、カメラ内部較正に関連する処理、カメラ外部較正に関連する処理、立体視システムにおける左フレームと右フレームとの間の一貫性に関連する処理、色補正を実行することなど)によってさらなる遅延をもたらす可能性がある。各画像および関連するAPI呼出しの複雑さを完全に処理することは、カメラ画像をGPUワーピングコンポジタ(warp compositor)に提供する際に遅延をもたらし、シースルーXRアプリケーションにおけるフォトントゥモーションレイテンシ(photon to motion latency)に著しく寄与する可能性がある。XRなどの、カメラとディスプレイとの間のレイテンシが優先事項であるアプリケーションでは、そのような遅延は、表示される環境を現実世界と同期していないように見えるようにする可能性があり、表示される環境内の動きを揺らぎがあるように、またはカクツキがあるように見せる可能性があり、アプリケーションおよび/またはOS全体にわたってスケジューリング遅延を引き起こす可能性があり、ユーザに吐き気または他の不健康を感じさせる可能性がある。
【0038】
[0049] 露出、焦点、またはズームなどの画像キャプチャ設定を設定することはまた、遅延またはレイテンシをもたらし得る。自動露出、オートフォーカス、およびオートズームなどの自動画像キャプチャ設定調整は、画像センサーによってキャプチャされた前の画像に基づいて、画像キャプチャ設定の値を設定することができる。そのようなプロセスは、新しい画像キャプチャ設定が画像統計に基づいて決定され得る前に、前の画像をキャプチャし、前の画像をシステムバッファ(system buffer)またはキュー(queue)を通過させ、画像統計を取得するために前の画像を分析する必要があり得る。新しい画像キャプチャ設定が決定されると、画像キャプチャ設定が実際に画像に適用される前に、画像キャプチャ設定は、様々なバッファ、キュー、カーネル、および/またはハードウェアアクチュエータを通過する必要があり得る。これらのステップのすべては、追加の時間が掛かり、潜在的に追加のレイテンシを追加する可能性がある。
【0039】
[0050] 本明細書では、ソフトウェアアプリケーションにおける画像フレームバッファからの部分画像フレームの迅速な受信のための画像処理用のシステムおよび技法について説明する。画像処理システムは、画像フレームバッファ内の1つまたは複数のウォーターマーク位置または領域において、画像フレームバッファに記憶された画像フレームバッファデータにウォーターマークを入れる。画像センサーは、画像フレームに対応する画像フレームデータをキャプチャし、画像センサーが画像フレームをキャプチャするとき、画像フレームバッファを画像フレームデータで徐々に満たす。画像処理システムは、ウォーターマークのうちのどれがまだ画像フレームバッファ内に残っているかと、ウォーターマークのうちのどれが他のデータ(画像フレームデータ)によって上書きされたかとを識別するために、画像フレームバッファ内のウォーターマーク位置または領域のうちの1つまたは複数においてメモリを読み取ることができる。画像処理システムは、どのウォーターマークが画像フレームデータによって上書きされたかに基づいて、画像フレームの少なくとも所定の量(たとえば、パーセンテージ、割合、比率)がキャプチャされ、画像フレームバッファに記憶されたことを効率的に識別することができる。たとえば、画像フレームバッファの中間点に位置するウォーターマークが画像フレームデータによって上書きされたと画像処理システムが決定した場合、画像処理システムは、画像フレームの少なくとも50%がキャプチャされ、現在画像フレームバッファに記憶されていることを知る。画像処理システムは、所定の量に対応する画像フレームの一部分を、ソフトウェアアプリケーション、ディスプレイバッファ、ディスプレイコントローラ、および/またはディスプレイに出力することができる。たとえば、画像フレームの少なくとも第1の半分がキャプチャされ、現在、画像フレームバッファ内に記憶されていることを画像処理システムが知る場合、画像処理システムは、画像フレームの第1の半分をソフトウェアアプリケーションに出力することができ、ソフトウェアアプリケーションは、画像フレームの第1の半分を処理することができる。いくつかの例では、画像フレームの第1の半分を処理することは、画像フレームの第1の半分を仮想コンテンツと合成することによって、仮想コンテンツを部分画像フレームに導入することができる。画像処理システムは、画像フレームの処理された半分をディスプレイバッファに送ることができる。いくつかの場合には、画像処理システムは、画像フレームの所定の量に対応する画像フレームの部分を、自動露出、オートフォーカス、オートズーム、またはそれらの組合せのために画像フレームのその部分を使用することができる画像キャプチャ設定決定コントローラに出力することができる。
【0040】
[0051] 画像バッファ(image buffer)から直接読み取ることによって、ハードウェアドライバと、オペレーティングシステムと、ソフトウェアアプリケーションとの間のネゴシエーションプロセスの多くがバイパスされ得る。画像フレームのうちのどの程度が現在画像バッファに記憶されているかをチェックすることが、極めて迅速に(たとえば、1つまたは複数のウォーターマークのためのウォーターマーク位置における迅速なメモリ読取りを通して)行われ得るので、部分画像フレームは、新たにキャプチャされた画像フレームからのデータを含み、画像フレームバッファ内のいかなる既存のデータも含まないという確実性を伴って、部分画像フレームが確実に送られ得る。部分画像フレームを受信するプロセッサは、画像フレームの残りが依然としてキャプチャされている間に部分画像フレームを処理することができ、無駄な時間を低減する。画像フレームデータが仮想コンテンツと合成される例では、カメラフレームレートは、レートおよび/または位相において仮想コンテンツと同期され得る。
【0041】
[0052] いくつかの例では、ディスプレイは、ディスプレイバッファからの画像フレームの処理された半分を直ちに表示することができる。たとえば、有機発光ダイオード(OLED)ディスプレイは、このように使用され得る。いくつかの例では、画像フレームの残り(たとえば、画像フレームの第2の半分)が画像フレームバッファ内で受信されると、ソフトウェアアプリケーションは、画像フレームの残りを処理し、画像フレームの処理された残りをディスプレイバッファに送ることができる。ディスプレイバッファは、画像フレームを表示することができる。たとえば、液晶ディスプレイ(LCD)ディスプレイは、このように使用され得る。例示的な例では、画像フレームバッファウォーターマークを通した部分画像フレームアクセスの使用は、画像フレームのキャプチャから表示までの遅延を67msから14.2msに低減することができる。
【0042】
[0053] 図1は、画像キャプチャおよび処理システム100のアーキテクチャを示すブロック図である。画像キャプチャおよび処理システム100は、シーンの画像(たとえば、シーン110の画像)をキャプチャし処理するために使用される様々な構成要素を含む。画像キャプチャおよび処理システム100は、独立した画像(もしくは写真)をキャプチャすることができ、および/または複数の画像(もしくはビデオフレーム)を特定のシーケンスで含むビデオをキャプチャすることができる。システム100のレンズ115は、シーン110に対向し、シーン110からの光を受光する。レンズ115は、画像センサー130のほうへ光を曲げる。レンズ115によって受け取られた光は、1つまたは複数の制御機構120によって制御される開口を通過し、画像センサー130によって受け取られる。
【0043】
[0054] 1つまたは複数の制御機構120は、画像センサー130からの情報に基づいておよび/または画像プロセッサ150からの情報に基づいて露出、フォーカス、および/またはズームを制御し得る。1つまたは複数の制御機構120は、複数の機構および構成要素を含み得、たとえば、制御機構120は、1つもしくは複数の露出制御機構125A、1つもしくは複数のフォーカス制御機構125B、および/または1つもしくは複数のズーム制御機構125Cを含み得る。1つまたは複数の制御機構120はまた、アナログ利得、フラッシュ、HDR、被写界深度、および/または他の画像キャプチャプロパティを制御する制御機構など、図示されているもののほかに追加の制御機構を含み得る。
【0044】
[0055] 制御機構120のフォーカス制御機構125Bは、フォーカス設定を取得することができる。いくつかの例では、フォーカス制御機構125Bは、フォーカス設定をメモリレジスタに記憶する。フォーカス設定に基づいて、フォーカス制御機構125Bは、画像センサー130の位置に対するレンズ115の位置を調整することができる。たとえば、フォーカス設定に基づいて、フォーカス制御機構125Bは、モータまたはサーボ(または他のレンズ機構)を作動させることによってレンズ115を画像センサー130のより近くにまたは画像センサー130からより遠くに移動させ、それによりフォーカスを調整し得る。場合によっては、画像センサー130の各フォトダイオードの上の1つまたは複数のマイクロレンズなどの、追加のレンズがシステム100に含まれることがあり、追加のレンズは各々、光がフォトダイオードに到達する前に、レンズ115から受け取った光を対応するフォトダイオードのほうへ曲げる。焦点設定値は、コントラスト検出オートフォーカス(CDAF)、位相検出オートフォーカス(PDAF)、ハイブリッドオートフォーカス(HAF)、またはそれらの何らかの組合せを介して決定され得る。焦点設定値は、制御機構120、画像センサー130、および/または画像プロセッサ150を使用して決定され得る。焦点設定値は、画像キャプチャ設定値および/または画像処理設定値と呼ばれ得る。
【0045】
[0056] 制御機構120の露出制御機構125Aは、露出設定値を取得することができる。場合によっては、露出制御機構125Aは、露出設定値をメモリレジスタに記憶する。この露出設定値に基づいて、露出制御機構125Aは、開口のサイズ(たとえば、開口サイズまたはf/絞り)、開口が開いている持続時間(たとえば、露出時間またはシャッター速度)、画像センサー130の感度(たとえば、ISO速度またはフィルム速度)、画像センサー130によって適用されるアナログ利得、またはそれらの任意の組合せを制御することができる。露出設定値は、画像キャプチャ設定値および/または画像処理設定値と呼ばれ得る。
【0046】
[0057] 制御機構120のズーム制御機構125Cは、ズーム設定値を取得することができる。いくつかの例では、ズーム制御機構125Cは、ズーム設定値をメモリレジスタに記憶する。ズーム設定値に基づいて、ズーム制御機構125Cは、レンズ115および1つまたは複数の追加のレンズを含むレンズ要素のアセンブリ(レンズアセンブリ)の焦点距離を制御することができる。たとえば、ズーム制御機構125Cは、レンズのうちの1つまたは複数を互いに移動させるために、1つもしくは複数のモータまたはサーボ(または他のレンズ機構)を作動させることによって、レンズアセンブリの焦点距離を制御することができる。ズーム設定値は、画像キャプチャ設定値および/または画像処理設定値と呼ばれ得る。いくつかの例では、レンズアセンブリは、同焦点ズームレンズまたは可変焦点ズームレンズを含むことがある。いくつかの例では、レンズアセンブリは、最初にシーン110から光を受け取る集束レンズ(場合によっては、レンズ115とすることができる)を含むことがあり、次いで、光は、光が画像センサー130に到達する前に、集束レンズ(たとえば、レンズ115)と画像センサー130との間の無限焦点ズームシステムを通過する。無限焦点ズームシステムは、場合によっては、間に負(たとえば、発散、凹面)レンズを有する、等しいまたは同様の焦点距離(たとえば、互いがしきい値差内)の2つの正(たとえば、収束、凸面)レンズを含み得る。場合によっては、ズーム制御機構125Cは、負レンズおよび正レンズの一方または両方などの、無限焦点ズームシステム内のレンズのうちの1つまたは複数を移動させる。
【0047】
[0058] 画像センサー130は、フォトダイオードまたは他の感光性要素の1つまたは複数のアレイを含む。各フォトダイオードは、画像センサー130によって生成された画像中の特定のピクセルに最終的に対応する光の量を測定する。いくつかの場合には、異なるフォトダイオードが異なる色フィルタによってカバーされることがあり、したがって、フォトダイオードをカバーするフィルタの色に一致する光を測定することがある。たとえば、ベイヤー色フィルタは、赤色フィルタと、青色フィルタと、緑色フィルタとを含み、画像の各ピクセルは、赤色フィルタでカバーされた少なくとも1つのフォトダイオードからの赤色光データと、青色フィルタでカバーされた少なくとも1つのフォトダイオードからの青色光データと、緑色フィルタでカバーされた少なくとも1つのフォトダイオードからの緑色光データとに基づいて生成される。他のタイプの色フィルタは、赤色、青色、および/または緑色の色フィルタの代わりに、またはそれらに加えて、黄色、マゼンタ、および/またはシアン(「エメラルド」とも呼ばれる)の色フィルタを使用することがある。いくつかの画像センサー(たとえば、画像センサー130)は、色フィルタがまったくないことがあり、代わりに、(いくつかの場合には、垂直にスタックされる)ピクセルアレイ全体にわたって異なるフォトダイオードを使用することがある。ピクセルアレイ全体にわたる異なるフォトダイオードは、異なるスペクトル感度曲線を有し、したがって、異なる波長の光に応答することができる。モノクローム画像センサーはまた、色フィルタを欠き、したがって、色深度を欠くことがある。
【0048】
[0059] いくつかの場合には、画像センサー130は、代替または追加として、位相検出オートフォーカス(PDAF)のために使用され得る、ある時間におよび/またはある角度から、光があるフォトダイオードまたはあるフォトダイオードの一部に達するのをブロックする、不透明なマスクおよび/または反射マスクを含み得る。画像センサー130はまた、フォトダイオードによって出力されたアナログ信号を増幅するためのアナログ利得増幅器、および/またはフォトダイオードのアナログ信号出力(および/またはアナログ利得増幅器によって増幅された)をデジタル信号に変換するためのアナログデジタル変換器(ADC)を含み得る。いくつかの場合には、制御機構120のうちの1つまたは複数に関して論じられるいくつかの構成要素または機能は、その代わりにまたはそれに加えて、画像センサー130に含まれ得る。画像センサー130は、電荷結合デバイス(CCD)センサー、電子増倍CCD(EMCCD)センサー、アクティブピクセルセンサー(APS)、相補型金属酸化物半導体(CMOS)、N型金属酸化物半導体(NMOS)、ハイブリッドCCD/CMOSセンサー(たとえば、sCMOS)、またはそれらの何らかの他の組合せであり得る。
【0049】
[0060] 画像プロセッサ150は、(ISP154を含む)1つまたは複数の画像信号プロセッサ(ISP)、(ホストプロセッサ152を含む)1つまたは複数のホストプロセッサ、および/あるいはコンピューティングシステム1000に関して論じられる任意の他のタイプのプロセッサ1010のうちの1つまたは複数など、1つまたは複数のプロセッサを含み得る。ホストプロセッサ152は、デジタル信号プロセッサ(DSP)および/または他のタイプのプロセッサであり得る。いくつかの実装形態では、画像プロセッサ150は、ホストプロセッサ152とISP154とを含む単一の集積回路または(たとえば、システムオンチップもしくはSoCと呼ばれる)チップである。いくつかの場合には、チップはまた、1つまたは複数の入出力ポート(たとえば、入出力(I/O)ポート156)、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、ブロードバンドモデム(たとえば、3G、4GまたはLTE(登録商標)、5Gなど)、メモリ、接続性構成要素(たとえば、Bluetooth(登録商標)、全地球測位システム(GPS)など)、それらの任意の組合せ、および/あるいは他の構成要素を含むことができる。I/Oポート156は、インター集積回路2(I2C)インターフェース、インター集積回路3(I3C)インターフェース、シリアル周辺インターフェース(SPI)インターフェース、シリアル汎用入出力(GPIO)インターフェース、モバイル業界プロセッサインターフェース(MIPI)(MIPI CSI-2物理(PHY)レイヤポートまたはインターフェースなど)、アドバンストハイパフォーマンスバス(AHB)バス、それらの任意の組合せ、および/あるいは他の入出力ポートなど、1つまたは複数のプロトコルまたは仕様による任意の好適な入出力ポートまたはインターフェースを含むことができる。1つの例示的な例では、ホストプロセッサ152は、I2Cポートを使用して画像センサー130と通信することができ、ISP154は、MIPIポートを使用して画像センサー130と通信することができる。
【0050】
[0061] 画像プロセッサ150は、デモザイキング、色空間変換、画像フレームダウンサンプリング、ピクセル補間、自動露光(AE)制御、自動利得制御(AGC)、CDAF、PDAF、自動白バランス、HDR画像を形成するための画像フレームのマージ、画像認識、オブジェクト認識、特徴認識、入力の受信、出力の管理、メモリの管理、またはそれらの何らかの組合せなど、いくつかのタスクを実施し得る。画像プロセッサ150は、画像フレームおよび/または処理された画像を、ランダムアクセスメモリ(RAM)140および/もしくは1020、読取り専用メモリ(ROM)145および/もしくは1025、キャッシュ、メモリユニット、別の記憶デバイス、またはそれらの何らかの組合せに記憶し得る。
【0051】
[0062] 様々な入出力(I/O)デバイス160が画像プロセッサ150に接続され得る。I/Oデバイス160は、ディスプレイスクリーン、キーボード、キーパッド、タッチスクリーン、トラックパッド、タッチセンシティブ表面、プリンタ、任意の他の出力デバイス1035、任意の他の入力デバイス1045、またはそれらの何らかの組合せを含むことができる。いくつかの場合には、キャプションは、I/Oデバイス160の物理キーボードもしくはキーパッドを通して、またはI/Oデバイス160のタッチスクリーンの仮想キーボードもしくはキーパッドを通して、画像処理デバイス105Bに入力されることがある。I/O160は、システム100と1つまたは複数の周辺デバイスとの間のワイヤード接続を可能にする1つもしくは複数のポート、ジャック、または他のコネクタを含むことがあり、それらを介して、システム100は、1つもしくは複数の周辺デバイスからデータを受信し、および/または1つもしくは複数の周辺デバイスにデータを送信し得る。I/O160は、システム100と1つまたは複数の周辺デバイスとの間のワイヤレス接続を可能にする1つもしくは複数のワイヤレストランシーバを含むことがあり、それらを介して、システム100は、1つもしくは複数の周辺デバイスからデータを受信し、および/または1つもしくは複数の周辺デバイスにデータを送信し得る。周辺デバイスは、前に論じられたタイプのI/Oデバイス160のいずれかを含むことがあり、ポート、ジャック、ワイヤレストランシーバ、または他のワイヤードおよび/もしくはワイヤレスコネクタに結合されると、それら自体がI/Oデバイス160と見なされ得る。
【0052】
[0063] いくつかの場合には、画像キャプチャおよび処理システム100は、単一のデバイスであり得る。いくつかの場合には、画像キャプチャおよび処理システム100は、画像キャプチャデバイス105A(たとえば、カメラ)と画像処理デバイス105B(たとえば、カメラに結合されたコンピューティングシステム)とを含む、2つ以上の別個のデバイスであり得る。いくつかの実装形態では、画像キャプチャデバイス105Aと画像処理デバイス105Bは、たとえば、1つもしくは複数のワイヤ、ケーブル、もしくは他の電気コネクタを介して、および/または1つもしくは複数のワイヤレストランシーバを介してワイヤレスに、互いに結合され得る。いくつかの実装形態では、画像キャプチャデバイス105Aと画像処理デバイス105Bは、互いに分離されることがある。
【0053】
[0064] 図1に示されているように、垂直の破線は、図1の画像キャプチャおよび処理システム100を、画像キャプチャデバイス105Aと画像処理デバイス105Bとをそれぞれ表す2つの部分に分割する。画像キャプチャデバイス105Aは、レンズ115と、制御機構120と、画像センサー130とを含む。画像処理デバイス105Bは、(ISP154とホストプロセッサ152とを含む)画像プロセッサ150と、RAM140と、ROM145と、I/O160とを含む。いくつかの場合には、ISP154および/またはホストプロセッサ152など、画像キャプチャデバイス105A中に示されたいくつかの構成要素は、画像キャプチャデバイス105Aに含まれ得る。
【0054】
[0065] 図1の画像キャプチャおよび処理システム100は、1つまたは複数の画像バッファ170を含む。1つまたは複数の画像バッファ170は各々、1つまたは複数の画像フレームバッファを含むことができる。各画像フレームバッファは、画像センサー130によってキャプチャされ、および/または画像プロセッサ150によって処理される単一の画像フレームを一時的に記憶することができる。いくつかの例では、画像フレームバッファは、循環バッファ、循環キュー、循環バッファ、リングバッファ、またはそれらの組合せであり得るか、またはそれらを含み得る。いくつかの例では、1つまたは複数の画像バッファ170は、画像の全体がキャプチャを完了する前に、画像フレームからの部分画像フレームデータを受信し、それを記憶することができる。いくつかの例では、新しい画像フレームからの画像フレームデータは、画像フレームバッファ内のより古い既存の画像バッファデータを上書きする。1つまたは複数の画像バッファ170は、画像センサー130と画像プロセッサ150の両方に結合されるものとして示されている。いくつかの例では、画像プロセッサ150は、画像バッファ170を通して画像センサー130から画像フレームを受信する。いくつかの例では、画像バッファは、画像センサー130のみに結合され、画像プロセッサ150に結合されないことがある。いくつかの例では、画像バッファは、画像プロセッサ150のみに結合され、画像センサー130に結合されないことがある。
【0055】
[0066] 画像キャプチャおよび処理システム100は、モバイルまたは固定電話ハンドセット(たとえば、スマートフォン、セルラー電話など)、デスクトップコンピュータ、ラップトップもしくはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、インターネットプロトコル(IP)カメラ、または任意の他の適切な電子デバイスなどの電子デバイスを含むことができる。いくつかの例では、画像キャプチャおよび処理システム100は、セルラーネットワーク通信、802.11Wi-Fi(登録商標)通信、ワイヤレスローカルエリアネットワーク(WLAN)通信、またはそれらの何らかの組合せなど、ワイヤレス通信のための1つまたは複数のワイヤレストランシーバを含むことができる。いくつかの実装形態では、画像キャプチャデバイス105Aおよび画像処理デバイス105Bは、異なるデバイスであり得る。たとえば、画像キャプチャデバイス105Aは、カメラデバイスを含むことができ、画像処理デバイス105Bは、モバイルハンドセット、デスクトップコンピュータ、または他のコンピューティングシステムなどのコンピューティングシステムを含むことができる。
【0056】
[0067] 画像キャプチャおよび処理システム100はいくつかの構成要素を含むように示されているが、当業者は、画像キャプチャおよび処理システム100が図1に示されているものよりも多くの構成要素を含むことができることを諒解されよう。画像キャプチャおよび処理システム100の構成要素は、ソフトウェア、ハードウェア、あるいはソフトウェアとハードウェアとの1つまたは複数の組合せを含むことができる。たとえば、いくつかの実装形態では、画像キャプチャおよび処理システム100の構成要素は、本明細書で説明される様々な動作を実施するために、1つまたは複数のプログラマブル電子回路(たとえば、マイクロプロセッサ、GPU、DSP、CPU、および/または他の好適な電子回路)を含むことができ、ならびに/あるいはコンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せを含むことができおよび/またはそれらを使用して実装され得る、電子回路または他の電子ハードウェアを含むことができおよび/またはそれらを使用して実装され得る。ソフトウェアおよび/またはファームウェアは、コンピュータ可読記憶媒体に記憶され、画像キャプチャおよび処理システム100を実装する電子デバイスの1つまたは複数のプロセッサによって実行可能な、1つまたは複数の命令を含むことができる。
【0057】
[0068] 図2は、エクステンデッドリアリティ(XR)システム200のアーキテクチャを示すブロック図である。図2のXRシステム200は、1つまたは複数のカメラ205を含む。カメラ205の各カメラは、画像キャプチャデバイス105A、画像処理デバイス105B、画像キャプチャおよび処理デバイス100、またはそれらの組合せの一例であり得る。たとえば、各々が画像センサーを有する、4つのカメラ205が図2に示されている。図2に示されるカメラ205のうちの2つは、可視光スペクトルからの光に敏感であり、各々がカラー画像を出力する画像センサーを有する可視光カメラである。これら2つのカメラは、図2において、赤-緑-青(RGB)カメラとして標示されている。図2に示されるカメラ205のうちの2つは各々、モノクロ画像を出力する。これら2つのカメラは、図2においてモノクロ(モノ)カメラとして標示されている。カメラ205は各々、1つまたは複数の画像フレームの少なくとも一部分に対応する画像フレームデータをキャプチャする。カメラ205の各々からの画像フレームデータは、カメラシリアルインターフェース(CSI)、モバイルインダストリプロセッサインターフェース(MIPI)、またはそれらの組合せなどの1つまたは複数のインターフェースに沿って1つまたは複数の画像フロントエンド(IFE:image front end)に渡される。IFEは、画像処理デバイス105Bの少なくとも一部分の例とすることができる。IFEは、ISP154、DSP152、または画像プロセッサ150によって実行されるものとして説明されるいくつかの画像処理タスクを実行することができる。たとえば、IFEは、デモザイク処理、色空間変換、色フォーマット変換、不良ピクセル補正、またはそれらの組合せを実行することができる。たとえば、IFEは、RGBカメラからの画像フレームデータをYUV色空間に変換することができる。IFEは、モノクロカメラからの画像フレームデータを生の16色空間(raw16 color space)に変換することができる。IFEは、画像フレームデータを、場合によっては、これらの色空間変換および/または他の画像処理動作を適用して、1つまたは複数の画像バッファ(image buffer)210に送ることができる。いくつかの例では、IFEは、画像フレームデータを画像処理エンジン(IPE:image processing engine)に送ることができる。いくつかの例では、IPEは、肌色補正、空色補正、顔検出、赤目除去などの、より重い処理を実行することができる。いくつかの例では、IPEは、より多くのスケジューリングおよび処理レイテンシ(したがって、揺らぎおよび/またはカクツキ)をもたらす可能性がある。IPEは、図2の「X」マークによって示されるように、いくつかの例ではバイパスされ得る。いくつかの例では、IPEによって実行されるものとして本明細書で説明される動作の少なくともいくつかは、IFEによって実行され得る。いくつかの例では、IFEによって実行されるものとして本明細書で説明される動作の少なくともいくつかは、IPEによって実行され得る。
【0058】
[0069] 1つまたは複数の画像バッファ210は、図1の画像キャプチャおよび処理デバイス100の1つまたは複数の画像バッファ170の例とすることができる。たとえば、1つまたは複数の画像バッファ210の各画像バッファは、カメラ205のうちの1つまたは複数からの特定の画像フレームに対応する画像フレームデータを記憶することができる1つまたは複数の画像フレームバッファを含むことができる。いくつかの例では、1つまたは複数の画像バッファ210は、グラフィックスプロセッサユニット(GPU)テクスチャバッファとして記憶される。いくつかの例では、1つまたは複数の画像バッファ210は、XRカメラバッファとして記憶される。
【0059】
[0070] 部分画像フレームまたは全体画像フレームに対応する画像フレームデータは、画像バッファ210からXRアプリケーション215に転送され得る。XRアプリケーション215は、XRアプリケーション215のコンポジタ(compositor)225を使用して、画像バッファ210からの画像フレームデータの上にオーバーレイされるか、それとマージされるか、またはさもなければそれと合成される仮想コンテンツを生成することができる。仮想コンテンツは、コンポジタ225を使用して、画像バッファ210からの画像フレームデータと合成される前に、生成され、レンダリングされ、1つまたは複数の仮想コンテンツレンダリングバッファ220に記憶され得る。いくつかの例では、仮想コンテンツレンダリングバッファ220は、仮想レンダリングバッファ、仮想コンテンツバッファ、ゲームレンダリングバッファ、ビデオゲームレンダリングバッファ、ゲーム内コンテンツレンダリングバッファ、またはそれらの組合せと呼ばれることがある。ビデオゲームは、たとえば、ゲーム内キャラクタ、ゲーム内アイテム、ゲーム内コスチューム、ゲーム内エリア、他のゲーム内オブジェクト、またはそれらの組合せを表す仮想コンテンツが生成および/またはレンダリングされる、XRデバイスの1つの例示的な使用事例である。仮想コンテンツレンダリングバッファ220は、仮想コンテンツバッファと呼ばれることもある。XRアプリケーション215は、コンポジタ225および/または他の画像処理機能を含み得る、XRソフトウェア開発キット(SDK)を含み得る。ゲームなどのXRアプリケーション215の開発者は、コンポジタ225および/またはXR SDKの他の画像処理機能を呼び出すことができる。いくつかの例では、XR SDKは、XR APIとすることができる。コンポジタ225によって実行される合成は、ワーピングと呼ばれ得る。
【0060】
[0071] コンポジタ225は、画像バッファ210の画像フレームバッファからの画像フレームデータを、仮想コンテンツレンダリングバッファ220からの仮想コンテンツと合成することによって、合成された画像フレームデータを生成する。画像フレームデータが部分画像フレームのみである(たとえば、画像フレームの一部分のみを含む)場合、合成された画像フレームデータは、部分画像フレームに基づいて合成される。合成された画像フレームデータは、合成された画像データ、合成されたフレームデータ、合成された画像、合成された画像フレーム、合成された部分画像フレームデータ、合成された部分画像データ、合成された部分フレームデータ、合成された部分画像、合成された部分画像フレーム、表示画像フレームデータ、表示画像データ、表示フレームデータ、表示画像、表示画像フレーム、表示部分画像フレームデータ、表示部分画像データ、表示部分フレームデータ、表示部分画像、表示部分画像フレーム、またはそれらの組合せと呼ばれ得る。XRアプリケーション215は、合成された画像フレームデータをディスプレイバッファ230に送る。ディスプレイバッファ230は、スクリーンバッファと呼ばれることがある。いくつかの例では、ディスプレイバッファ230は、ディスプレイバッファ230が合成された画像フレームデータを受信すると、ディスプレイ235上に表示されるように、合成された画像フレームデータをディスプレイ235に送る。いくつかの例では、ディスプレイバッファ230が画像フレーム全体に対応する合成された画像フレームデータを受信すると、ディスプレイバッファ230は、画像フレーム全体に対応する合成された画像フレームデータを、ディスプレイ235上に表示されるように、ディスプレイ235に送る。たとえば、コンポジタ225は、異なる時間に画像バッファ210から同じ画像フレームの複数の部分を受信することができ、これらの部分に基づいて合成された画像フレームデータの複数のセットを生成することができ、合成された画像フレームデータのセットの各々を生成すると、合成された画像フレームデータのセットをディスプレイバッファ230に送ることができる。ディスプレイバッファ230が、画像フレームに対応する合成された画像フレームデータのセットのすべてをコンポジタ225から受信すると、ディスプレイ235は、ディスプレイバッファ230に記憶された画像フレーム全体を(コンポジタ225によって合成された仮想コンテンツとともに)表示することができる。
【0061】
[0072] いくつかの例では、コンポジタ225は、画像バッファ210からの画像フレームデータと、仮想コンテンツレンダリングバッファ220からの仮想コンテンツとを合成すること以外の他の画像処理タスクを実行することができる。コンポジタ225は、ISP154、DSP152、および/または画像プロセッサ150によって行われるものとして説明される、任意の画像処理タスクを実行することができる。コンポジタ225は、歪み補償、カメラ内部較正に関連する処理、カメラ外部較正に関連する処理、立体視システムにおける左フレームと右フレームとの間の一貫性に関連する処理、色補正、輝度補正、コントラスト補正、ホワイトバランス補正、ブラックバランス補正、飽和補正、またはそれらの組合せを実行し得る。これらの処理タスクのうちのいくつかは、カメラ205からのセンサーデータ、慣性測定ユニット(IMU)、カメラ205の内部較正からの較正データ、カメラ205の(たとえば、互いに対する)外部較正からの較正データ、ディスプレイ235の特性、カメラ205の1つまたは複数のレンズの特性、ディスプレイ235と視認者との間に位置する1つまたは複数のレンズの特性、またはそれらの組合せなどの、XRアプリケーション215によって受信された追加データを利用することがある。ディスプレイバッファ230からの合成された画像フレームデータは、ディスプレイシリアルインターフェース(DSI)、モバイルインダストリプロセッサインターフェース(MIPI)、またはそれらの組合せなどの1つまたは複数のインターフェースに沿ってディスプレイ235に渡され得る。
【0062】
[0073] 歪み補償は、たとえば広角レンズによって引き起こされる半径方向の歪みを低減することによって、カメラ205によって引き起こされる歪みを補償または補正することができる。歪み補償は、たとえば、ディスプレイ235の曲率、ディスプレイ235の平坦度、ディスプレイ235と視認者の片目または両目との間の距離、ディスプレイ235と視認者の片目または両目との間の視野角、ディスプレイ235と視認者の片目または両目との間の1つまたは複数のレンズの光学特性、ディスプレイ235上のグレアおよび/もしくは影および/もしくは透明度および/もしくは他の照明効果の効果、またはそれらの組合せなどのディスプレイ235およびディスプレイ235の視認の特性に基づいて、環境内の比率をディスプレイ235の視認者に正確に見えるようにするように、ディスプレイ235によって生じた歪みを補償または補正し得る。歪み補償は、射影歪みを補償することがある。
【0063】
[0074] いくつかの例では、画像バッファ210は、IFEとGPUとの間で共有され、すべてのレイヤを通してAPI呼出しなしに緊密に同期され得る。したがって、(たとえば、コンポジタエンジン225を使用する)GPUワーピングは、画像フレームのピクセルにアクセスし、画像処理エンジンから完全に処理されたフレームを受信するよりも高速に、メタデータに基づいて処理された(ワーピングされた)フレームを出力することができる。
【0064】
[0075] いくつかの例では、カメラ205は、ディスプレイ235中に立体視ビューを生成するためのペア立体視カメラを含み得る。たとえば、ディスプレイ235上に表示される図2に示された例示的な画像240は、左画像と右画像とを含む。処理は、カメラ内部較正に関連する処理を含むことができ、カメラの各々は、処理が、わずかな製造欠陥もしくは差、またはカメラ205とXRデバイスのハウジングとの間の結合のわずかな差などの、カメラ205の内部特性による問題を補正することができるように、内部較正を受けることがある。2つのカメラが、カメラ間のわずかな差と、カメラおよび/またはXRデバイスの内部特性によるカメラ間の配置のわずかな変化とを考慮するために外部較正を受け得るので、処理は、カメラの外部較正に関連する処理を含み得る。処理は、たとえば、輝度レベル、コントラストレベル、色レベル、ホワイトバランス、ブラックバランス、彩度、および他の画像特性が、左画像において右画像と比較して同様であることを確実にするために、立体視システムにおける左フレームと右フレームとの間の一貫性に関連し得る。
【0065】
[0076] いくつかの例では、カメラ205は、XRカメラシンクロナイザを介してXRアプリケーション215からのデータと同期され得る。XRカメラシンクロナイザは、たとえば、画像バッファ210および仮想コンテンツレンダバッファ220が同じまたは同様の時間に対応するデータを含むように、仮想コンテンツレンダリングバッファ220からの仮想データをカメラデータと同期させることができる。
【0066】
[0077] いくつかの例では、カメラ205のカメラフレームレートは、XRカメラシンクロナイザによって、小さい増分または大きい増分で制御され得る。カメラフレームレートを制御することによって、XRカメラシンクロナイザは、レートおよび/または位相においてカメラ205を仮想コンテンツと同期させることができる。たとえば、XRカメラシンクロナイザは、画像処理がそのデータを必要とするときに特定の充填レベルが完了するように、カメラ205を仮想コンテンツと同期させることができ、したがって、画像処理側での待ち時間を回避する。達成されるべき充填レベルをポーリングするのではなく、XRシステム200の画像プロセッサは単に、充填レベルが確立されていることを証明し、したがって、カメラが依然として同期していることを証明する必要がある。厳密な同期を使用することは、データがバッファ内で受信されてからそのデータが消費され得るまでのレイテンシを除去することができる。
【0067】
[0078] 図3は、画像フレームバッファ(image frame buffer)315内のウォーターマーク320に基づいて、画像フレームバッファ315が画像フレームデータでどの程度満たされているかを決定するグラフィックス処理ユニット(GPU)325を有する画像化システム300を示す概念図である。1つまたは複数のカメラ305が図3に示されている。カメラ305の各カメラは、画像キャプチャデバイス105A、画像処理デバイス105B、画像キャプチャおよび処理デバイス100、1つもしくは複数のカメラ205のうちの1つ、またはそれらの組合せの一例であり得る。画像フレームデータは、1つまたは複数のカメラ305によってキャプチャされ、画像バッファ310に記憶される。図3の画像バッファ310は、図2の画像バッファ210の一例とすることができる。図3の画像バッファ310は、環状バッファ(circular buffer)とも呼ばれるリングバッファ(ring buffer)である。図3の画像バッファ310は、16個の画像フレームバッファを含み、各画像フレームバッファは、黒い輪郭と円内の数字ラベルとを有する円として示されている。図3の画像バッファ310の15個の画像フレームバッファは、「0」~「15」と標示される。各画像フレームバッファの数字ラベル(「0」~「15」)は、画像フレームバッファを表す円内に示されている。図3の画像バッファ310の各画像フレームバッファは、画像フレーム全体を記憶することが可能である。図3の例では、画像フレームバッファ15はフレーム511を記憶し、画像フレームバッファ0はフレーム512を記憶し、画像フレームバッファ1はフレーム513を記憶し、画像フレームバッファ2はフレーム514を記憶し、画像フレームバッファ3はフレーム515を記憶し、画像フレームバッファ4はフレーム516を記憶し、画像フレームバッファ5はフレーム517を記憶し、画像フレームバッファ6はフレーム518を記憶し、画像フレームバッファ7はフレーム519を記憶し、画像フレームバッファ8はフレーム520を記憶し、画像フレームバッファ9はフレーム521を部分的に記憶し、画像フレームバッファ10はフレーム522を記憶するようにスケジュールされ、画像フレームバッファ11はフレーム523を記憶するようにスケジュールされ、画像フレームバッファ12はフレーム524を記憶するようにスケジュールされ、画像フレームバッファ13はフレーム523を記憶するようにスケジュールされ、画像フレームバッファ14は使用されない。画像フレーム511~520は、画像フレームバッファ15および0~8に記憶され、アプリケーション(たとえば、図2のXRアプリケーション215)による使用のために利用可能である。画像フレームバッファ15および0~8は、アプリケーションに対するそれらの利用可能性を示すために白丸として示されている。画像フレーム522~525は、カメラ305によってまだキャプチャされておらず、画像フレームバッファ10~13に記憶されるようにスケジュールされている。したがって、画像フレーム522~525および画像フレームバッファ10~13は、アプリケーションによる使用のためには利用可能ではない。画像フレームバッファ10~13は、アプリケーションが利用可能ではないことを示すために、クロスハッチパターンで示されている。画像フレームバッファ14は、競合状態を防止するために使用されず、この未使用の性質を示すために黒丸として示されている。
【0068】
[0079] 画像フレーム521は、カメラ305によってキャプチャされるプロセス中にある。画像フレーム521の一部分に対応する画像フレームデータは、画像フレームバッファ9に記憶される。画像フレームバッファ9は、画像フレームバッファ9が画像フレーム521のある部分をすでに記憶しているが、画像フレーム521の全体を記憶していないことを示すために、ディザリングされたパターンで示されている。本明細書で説明されるシステムおよび技法を使用して、画像フレームバッファ9の少なくとも一部分は、アプリケーションによってアクセスされ得る。
【0069】
[0080] 画像フレームバッファ315は、いくつかの例による画像フレームバッファ9のグラフィカル表現である。画像フレームバッファ315は、矩形として示されている。画像フレームバッファ315を表す矩形は、画像フレームバッファ315の上部から画像フレームバッファ315への経路の約3分の2まで延在するディザリングされた陰影付きパターンを含み、画像フレームバッファ315の下部の3分の1を白色で陰影なしのままにする。画像フレームバッファ315内のディザリングされた陰影付きパターンは、画像フレーム521の一部分に対応する画像フレームデータを表す。画像フレームバッファ315内の陰影付きパターンによれば、次いで、カメラ305の画像センサーは、画像フレーム521の約3分の2をすでにキャプチャしている(および画像フレームバッファ315に記憶されている)。
【0070】
[0081] 画像フレームバッファは、いくつかの位置にウォーターマーク320を含む。ウォーターマーク320は、図3では、全体を通して対角線を有する矩形として示されている。画像処理システムは、画像フレーム521からの画像フレームデータがカメラ305によってキャプチャされ、画像フレームバッファ315に記憶され始める前に、画像フレームバッファ315内の既存のデータにウォーターマーク320を追加する。ウォーターマーク320は、周期的に、たとえば、画像フレームのサイズの5%ごとに1回、画像フレームのサイズの10%ごとに1回、画像フレームのサイズの15%ごとに1回、画像フレームのサイズの20%ごとに1回、画像フレームのサイズの25%ごとに1回、画像フレームのピクセルのN行ごとに1回、画像フレームのピクセルのM列ごとに1回、またはそれらの何らかの組合せで挿入され得る。ウォーターマーク320は、図3の画像フレームバッファ315の右側にすべて示されているが、ウォーターマーク320は、画像フレームバッファ315内の任意の場所に配置され得る。画像フレーム521からの画像フレームデータがカメラ305によってキャプチャされ、画像フレームバッファ315に記憶され始めると、画像フレーム521からの画像フレームデータは、ウォーターマーク320を上書きする。したがって、ウォーターマーク320がどのようにレイアウトされ得るかを示すために、ウォーターマーク320のすべてが依然として図3に示されているが、新しい画像フレームデータが画像フレームバッファ315に記憶される前に、新しい画像フレームデータが、画像フレームバッファ315に記憶された既存の画像バッファデータを上書きするとき、(ディザリングされた陰影付きエリアによって表される)画像フレーム521からの新しい画像フレームデータは、ウォーターマーク320を上書きする。
【0071】
[0082] GPU325は、ウォーターマーク320のうちの1つまたは複数に対応する画像フレームバッファ315の1つまたは複数の領域においてメモリ読取りを実行する。たとえば、破線矢印に基づいて、GPU325は、画像フレームバッファ315の約66%において、ウォーターマーク320のうちの1つに対応する画像フレームバッファ315の領域のメモリ読取りを実行する。以前にこの領域にあったウォーターマーク320は、画像フレーム521からの新しい画像フレームデータ(ディザリングされた陰影付き領域によって表される)によって上書きされただけである。GPU315は、メモリ読取りに基づいて、領域がウォーターマーク320を記憶しなくなることを識別し、したがって、画像フレーム521からの新しい画像フレームデータで上書きされなければならない(そして現在、記憶している)ことを識別する。したがって、GPU315は、画像フレーム521の少なくとも66%がキャプチャされ、画像フレームバッファ315に記憶されたことを知る。いくつかの場合には、GPU315は、画像フレーム521のうちのどの程度がキャプチャされ、画像フレームバッファ315に記憶されたかをより正確に決定するために、他のウォーターマーク320に対応する画像フレームバッファ315の他の領域(たとえば、66%におけるウォーターマークの後)に対してメモリ読取りを実行することができる。しかしながら、図3に示される例では、66%が正確であり、これは、依然としてそのそれぞれのウォーターマーク320を記憶する、さらなるウォーターマーク320に対応する画像フレームバッファ315のさらなる領域のメモリ読取りに基づいてGPU315に示される。GPU315は、画像フレーム521の最初の66%に対応する画像フレームデータを取り出すことができる。GPU315は、アプリケーション(たとえば、XRアプリケーション215)の代わりに、画像フレーム521の最初の66%に対応する画像フレームデータを処理することができる。GPUは、画像フレーム521の最初の66%に対応する画像フレームデータの処理されたバージョンをディスプレイバッファ330に送ることができる。ディスプレイバッファ330を表す矩形は、ディスプレイバッファ330の上部からディスプレイバッファ330への経路の約3分の2まで延在するディザリングされた陰影付きパターンを含み、ディスプレイバッファ330の下部の3分の1を白色で陰影なしのままにする。ディザリングされた陰影付きパターンは、GPU325からの処理された部分画像フレームデータ(たとえば、画像フレーム521の最初の66%)を表す。いくつかの例では、ディスプレイ335は、処理された部分画像フレームデータ(たとえば、画像フレーム521の最初の66%)を表示することができる。いくつかの例では、ディスプレイ335は、画像フレーム521の処理されたバージョンを表示する前に、ディスプレイバッファ330が画像フレーム521の処理されたバージョンの全体を含むまで待つことができる。
【0072】
[0083] いくつかの例では、ウォーターマーク320は、画像内に見出される可能性が低い視覚的パターンを含む。いくつかの例では、ウォーターマーク320は、2つの交互の色のストライプのパターンを含むことができる。たとえば、2つの交互の色は、黒、白、ほぼ黒のダークグレー、ほぼ白のライトグレー、青、赤、緑、シアン、マゼンタ、黄色、原色、二次色、三次色、または他の色の任意の組合せを含むことができる。いくつかの例では、ウォーターマーク320は、チェッカーボードパターン、ディザリングパターン、水平ストライプ、斜めストライプ、垂直ストライプ、クロスハッチパターン、レインボーパターン、勾配パターン、またはそれらの組合せなどの視覚的パターンの任意の組合せを含む。いくつかの例では、ウォーターマーク320のパターンは、所定のパターンのセットのうちの1つから選択され得る。いくつかの例では、ウォーターマーク320のパターンは、所定のパターンのセットをループすることによって選択され得る。いくつかの例では、ウォーターマーク320のパターンは、所定のパターンのセットから、新しい画像フレームからの新しい画像フレームデータとは異なる可能性が最も高いパターンを選択することによって選択され得る。たとえば、画像データがキャプチャされているカメラ305がモノクロ(グレースケール)画像データのみをキャプチャするモノクロカメラである場合、カラフルなパターンは、カメラ305によってキャプチャされた画像データに現れる可能性が低く、したがって、ウォーターマーク320において使用するのに最適であり得る。画像データがキャプチャされているカメラ305がフルカラーカメラである場合、真のグレースケールまたは黒/白パターン(たとえば、彩度がゼロである)は、カメラ305によってキャプチャされた画像データに現れる可能性は低く、したがって、ウォーターマーク320において使用するのに最適であり得る。いくつかの例では、ウォーターマーク320は、フレーム識別子(たとえば、図3のフレーム番号521)、画像フレームバッファ識別子(たとえば、図3の画像フレームバッファ番号9)、またはそれらの組合せなどのデータを含むことができる。いくつかの例では、各ウォーターマークは、上記で説明されたリードインパターンと、フレーム識別子と、画像フレームバッファ識別子と、リードアウトパターンとを含む。1つの例示的な例では、リードインパターンは0x1FE01FE01FE01FEullであり得る。1つの例示的な例では、リードアウトパターンは0xFE01FE01FE01FE01ullであり得る。いくつかの例では、各ウォーターマークは、GPU325によって容易に読み取られ得る画像フレームバッファの領域にウォーターマークを位置合わせするための位置合わせマスクを含む。
【0073】
[0084] 図4は、既存の画像フレームバッファデータ450~455をウォーターマーク430~435で上書きする画像フレームデータ420~425を示す概念図400である。左画像フレームバッファ410および右画像フレームバッファ415が示されている。左画像フレームバッファ410は、その下部に向かって、ウォーターマーク430を含む既存の画像フレームバッファデータ450を含む。ウォーターマーク430は、ウォーターマーク320の例であり、中央に黒いストライプを有する白い水平線として示されている。ウォーターマーク430は、より容易に識別され得るように、図4では白い破線の円形の輪郭で囲まれている。右画像フレームバッファ415は、その下部に向かって、ウォーターマーク435を含む既存の画像フレームバッファデータ455を含む。ウォーターマーク435は、ウォーターマーク320の例であり、中央に黒いストライプを有する白い水平線として示されている。ウォーターマーク435は、より容易に識別され得るように、図4では白い破線の円形の輪郭で囲まれている。
【0074】
[0085] 左画像フレームバッファ410は、左画像フレームバッファ410の上部から入ってくる新しい画像フレームデータ420を含み、新しい画像フレームデータ420が下方向にさらに満たされるとき、既存の画像フレームバッファデータ450を上書きする。新しい画像フレームデータ420は、ウォーターマークを含まない。新しい画像フレームデータ420と既存の画像フレームバッファデータ450との間の継ぎ目440は、図4では白い破線で強調表示されている。右画像フレームバッファ415は、右画像フレームバッファ415の上部から入ってくる新しい画像フレームデータ425を含み、新しい画像フレームデータ425が下方向にさらに満たされるとき、既存の画像フレームバッファデータ455を上書きする。新しい画像フレームデータ425は、ウォーターマークを含まない。新しい画像フレームデータ425と既存の画像フレームバッファデータ455との間の継ぎ目445は、図4では白い破線で強調表示されている。
【0075】
[0086] 図5は、画像フレームのキャプチャの開始から画像フレームの表示までのタイムラインを示す概念図500であり、画像フレームは、4つの別個の部分において処理され、ディスプレイバッファに送られる。概念図500において、水平軸は、時間軸505であり、時間は水平軸に沿って左から右に進む。概念図500において、縦軸は、画像フレームのキャプチャおよび記憶に対応するバッファアドレスを示し、パーセンテージとして表される。パーセンテージは、所与の時間にキャプチャされた、および/または画像フレームバッファに記憶された画像フレームのパーセンテージを示す。画像フレームは、4つの4分の1、すなわち、第1の4分の1(1/4とマーキングされ、0%~25%の範囲に対応する)、第2の4分の1(2/4とマーキングされ、25%~50%の範囲に対応する)、第3の4分の1(3/4とマーキングされ、50%~75%の範囲に対応する)、および第4の4分の1(4/4とマーキングされ、75%~100%の範囲に対応する)でキャプチャされ、記憶される。
【0076】
[0087] タイムラインにおいて、イメージセンサーの光への露出は、「Exp」とマーキングされたボックスで識別される。アナログ-デジタル変換は、「A/D」とマーキングされたボックスで識別される。カメラ100/105A/205/305の画像センサー130から画像バッファおよび/または画像プロセッサへの(たとえば、MIPI/CSIを介した)データ転送の開始は、「フレームの開始」についての「SOF」としてマーキングされる。カメラ100/105A/205/305の画像センサー130から画像バッファおよび/または画像プロセッサへの(たとえば、MIPI/CSIを介した)データ転送の終了は、「フレームの終了」についての「EOF」としてマーキングされる。フレームの開始からフレームの終了までの、画像センサー130から画像バッファおよび/または画像プロセッサへのフレーム全体の転送は、画像バッファおよび/または画像プロセッサへのフルフレーム転送540として識別される。フレームデータは、MIPI、CSI、またはそれらの組合せを介して転送され得る。4つの1/4の各々について「Cam」とマーキングされたボックスは、画像フレームのそれらの1/4をキャプチャし、画像フレームの1/4を画像フレームバッファおよび/または画像プロセッサに転送する画像センサーに対応する。4つの1/4の各々について「ワーピング」とマーキングされたボックスは、画像プロセッサによって実行されるものとして本明細書で説明される画像処理に対応する。画像プロセッサは、コンポジタ225、XRアプリケーション215、画像プロセッサ150、ホストプロセッサ152、ISP154、GPU325、またはそれらの組合せを含むことができる。「ワーピング」ボックスに対応する画像処理動作は、コンポジタ225、XRアプリケーション215、GPU325に関して説明されたように、合成すること(たとえば、仮想コンテンツをレンダリングし、レンダリングされた仮想コンテンツを画像とマージすること)を含むことができる。「ワーピング」ボックスに対応する画像処理動作は、コンポジタ225、XRアプリケーション215、画像プロセッサ150、ホストプロセッサ152、ISP154、GPU325、またはそれらの組合せに関して説明された他の画像処理動作を含むことができる。対角線でマーキングされたディスプレイインターフェースポインタ530は、処理された部分画像フレームデータ(画像フレームの4分の1に対応する)のディスプレイバッファおよび/またはディスプレイへの転送に対応する。ディスプレイバッファは、たとえば、ディスプレイバッファ230、ディスプレイバッファ330、またはそれらの組合せであり得る。ディスプレイは、たとえば、ディスプレイ235、ディスプレイ335、またはそれらの組合せであり得る。ディスプレイインターフェースポインタ530は、ディスプレイシリアルインターフェース(DSI)、MIPIインターフェース、別のタイプのインターフェース、またはそれらの組合せなどのディスプレイインターフェースを使用して、ディスプレイバッファおよび/またはディスプレイを指し得る。
【0077】
[0088] 図5のディスプレイインターフェースポインタ530の線の右側の陰影付きブロックおよび右上向きの斜めの矢印は、ディスプレイバッファからディスプレイへの処理された部分画像フレームデータの転送、および/またはディスプレイによる処理された画像の少なくとも一部分の表示に対応することができる。いくつかの例では、ディスプレイは、画像フレームの処理された部分がディスプレイバッファによって受信されると、画像フレームの処理された部分を自動的に表示することができる。たとえば、有機発光ダイオード(OLED)ディスプレイは、このように使用され得る。いくつかの例では、ディスプレイは、画像フレームの処理された部分のすべてがディスプレイバッファによって受信されると、処理された画像フレームを表示するのを待つことができる。たとえば、液晶ディスプレイ(LCD)ディスプレイは、このように使用され得る。
【0078】
[0089] 図5のタイムラインよりも上に示されているように、ディスプレイの第1の半分は、露出からディスプレイバッファおよび/またはディスプレイへの到着まで、約12ミリ秒(ms)でポピュレートされ得る。ディスプレイ全体は、露出からディスプレイバッファおよび/またはディスプレイへの到着まで、約20.5msでポピュレートされ得る。並列に実行される、経時的に分散されるべき画像処理。したがって、画像フレーム転送および処理を図5の4分の1などの部分に分割することは、処理された画像部分がより迅速にディスプレイバッファおよび/またはディスプレイに到着することを可能にすることができる。画像フレームの転送および処理を図5の4分の1などの部分に分割することは、画像処理を時間にわたって分散させることを可能にし、画像の一部分が入ってくるときに画像の異なる部分を処理するための専用時間を画像プロセッサに与え、画像の初期の部分はその時点までにすでに少なくとも部分的に処理されているので、フレームの終了時に画像プロセッサの作業を少なくすることができる。画像フレームの転送および処理を図5の4分の1などの部分に分割することは、画像処理を少なくとも部分的に並列に実行することを可能にすることができ、たとえば、画像の第1の部分がまだ処理を受けている間に画像プロセッサが画像の第2の部分を処理し始めることが可能になるなどである。
【0079】
[0090] 図6は、いくつかの例による、画像フレームのキャプチャと表示との間のレイテンシの低減を示す概念図600である。概念図600は、3つのグラフ610と、620と、630とを示す。グラフの各々は、フレーム番号を有する水平軸を有する。グラフの各々は、ミリ秒単位のレイテンシを有する水平軸を有する。概念図600は、本明細書で説明される(たとえば、図3および図5に示された)部分画像フレーム転送技法を含まず、図2のXRカメラシンクロナイザに関して本明細書で説明されるカメラおよび仮想コンテンツレイテンシの同期を含まない従来のカメラスタックのための従来のカメラスタックレイテンシを示す第1のグラフ610を含む。従来のカメラスタックレイテンシを示す第1のグラフ610では、レイテンシは高く(一般に約50ms)、高い変動性を有する。
【0080】
[0091] 概念図600は、図2のXRカメラシンクロナイザに関して本明細書で説明されるように、カメラおよび仮想コンテンツレイテンシの同期を実行するカメラスタックのためのXRアプリケーション同期カメラレイテンシを示す第2のグラフ620を含む。XRアプリケーション同期カメラレイテンシを示す第2のグラフ620では、レイテンシは高いが(概して50msを上回る)、第1のグラフ610の従来のカメラスタックレイテンシと比較して低減された変動性を有する。
【0081】
[0092] 概念図600は、図2のXRカメラシンクロナイザに関して本明細書で説明されるように、カメラと仮想コンテンツレイテンシとの同期を実行し、(たとえば、図3および図5に示された)本明細書で説明されるように、部分フレーム配信を使用するXRアプリケーションによるレイテンシを示す第3のグラフ630を含む。カメラと同期され、部分フレーム配信を使用するXRアプリケーションによるレイテンシを示す第3のグラフ640では、レイテンシは低く(一般に約10~15ms)、低い変動性も有する。
【0082】
[0093] いくつかの例では、(たとえば、図2のXRカメラシンクロナイザに関して)本明細書で説明されるカメラおよび仮想コンテンツレイテンシの同期の使用、ならびに(たとえば、図3および図5に示された)本明細書で説明される部分フレーム配信の使用は、レイテンシおよび一貫性に著しい改善を提供することができる。1つの例示的な例では、フレームのセット中の最初の1/2フレームの平均利用可能性は、47msから14msに低減される。1つの例示的な例では、フレーム利用可能性の標準偏差は、10msから0.1msに低減される。1つの例示的な例では、(図2のコンポジタ225または図5の「ワーピング」による)処理のタイミング(たとえば、レイテンシ+2×stdevによって決定される)は、67msから14.2msに低減される。
【0083】
[0094] 図7は、いくつかの例による、画像キャプチャ、処理、および表示技法を示す流れ図700である。いくつかの例では、流れ図700によって示される画像キャプチャ、処理、および表示技法は、画像処理システムによって実行される。1つの例示的な例では、画像処理システムはXRシステム200である。いくつかの例では、画像処理システムは、画像キャプチャおよび処理システム100、画像キャプチャデバイス105A、画像処理デバイス105B、XRシステム200、XRアプリケーション215、コンポジタ225、撮像システム300、GPU325、タイムライン500に従って画像をキャプチャおよび処理するシステム、撮像システム800、撮像システム880、動作900を実行する画像処理システム、動作950を実行する画像処理システム、クラウドサービスの1つまたは複数のネットワークサーバ、コンピューティングシステム1000、モバイルデバイス、モバイルハンドセット、ワイヤレス通信デバイス、ヘッドマウントディスプレイ(HMD)、カメラ、またはそれらの組合せの少なくとも一部分を含む。
【0084】
[0095] 動作705において、画像処理システムは、既存のデータを画像フレームバッファに記憶する。動作710において、画像処理システムは、少なくとも画像フレームバッファの所定の領域をウォーターマークで上書きすることによって、画像フレームバッファ内の既存のデータを修正する。ウォーターマークは、メタデータと呼ばれることがある。
【0085】
[0096] 動作715において、画像処理システムは、新しい画像フレームに対応する新しい画像フレームデータを受信し、新しい画像フレームデータは、画像センサーによってキャプチャされる。いくつかの例では、画像処理システムは、画像センサー130に結合されたコネクタを含み得、画像は、コネクタを使用して受信され得る。コネクタは、ポート、ジャック、ワイヤ、入出力(IO)ピン、プリント回路板(PCB)上の導電トレース、本明細書で説明される任意の他のタイプのコネクタ、またはそれらの何らかの組合せを含み得る。いくつかの例では、画像処理システムは、画像をキャプチャする画像センサー130を含み得る。
【0086】
[0097] 動作720において、画像処理システムは、少なくとも画像フレームバッファ内の既存のデータを新しい画像フレームデータで上書きすることによって、新しい画像フレームデータを画像フレームバッファに記憶する。動作725において、画像処理システムは、画像フレームバッファの所定の領域を読み取る。
【0087】
[0098] 動作730において、画像処理システムは、画像フレームバッファの所定の領域を読み取ることに基づいて、画像フレームバッファの所定の領域内のウォーターマークが上書きされたことを識別する。動作735において、画像処理システムは、画像フレームバッファの所定の領域が上書きされたことを識別することに基づいて、新しい画像フレームデータが新しい画像フレームの少なくとも所定のパーセンテージを含むことを決定する。
【0088】
[0099] 動作740において、画像処理システムは、画像フレームバッファから、新しい画像フレームの所定のパーセンテージに対応する新しい画像フレームデータの第1の部分を受信する。動作745において、画像処理システムは、新しい画像フレームデータの第1の部分を処理する。動作750において、画像処理システムは、新しい画像フレームデータの第1の部分をディスプレイバッファに送信する。
【0089】
[0100] 動作755において、画像処理システムは、画像フレームバッファから、新しい画像フレームに対応する新しい画像フレームデータの第2の部分を受信する。いくつかの例では、第2のウォーターマーク(第2のメタデータ)は、動作710において、既存のデータの第2の所定の領域を上書きすることができる。いくつかの例では、画像処理システムは、画像フレームバッファの第2の所定の領域を読み取ることができる。いくつかの例では、画像処理システムは、画像フレームバッファの所定の領域を読み取ることに基づいて、画像フレームバッファの第2の所定の領域内の第2のウォーターマークが上書きされたことを識別することができる。いくつかの例では、画像処理システムは、画像フレームバッファの第2の所定の領域が上書きされたことを識別することに基づいて、新しい画像フレームデータが新しい画像フレームの少なくとも第2の所定のパーセンテージを含むと決定することができる。これらの動作は、動作755の前に行われ得る。いくつかの例では、動作755は、(新しい画像フレームデータの第1の部分以外の)新しい画像フレームの残りが受信されると行われ得、その場合、新しい画像フレームデータの第2の部分は、新しい画像フレームの残りを含み得る。
【0090】
[0101] 動作760において、画像処理システムは、新しい画像フレームデータの第2の部分を処理する。動作765において、画像処理システムは、新しい画像フレームデータの第2の部分をディスプレイバッファに送る。
【0091】
[0102] 動作770において、画像処理システムは、新しい画像フレームデータの第1の部分と新しい画像フレームデータの第2の部分とをディスプレイバッファに送ることに応答して、ディスプレイバッファが新しい画像フレームに基づく表示画像を含むと決定する。動作775において、画像処理システムは、ディスプレイ上に表示画像を表示する。
【0092】
[0103] 図8Aは、いくつかの例による、自動露出のための撮像システム800を示すブロック図である。自動露出システムは、一般に(たとえば、同じ画像センサー130および/または制御機構120によってキャプチャされた前の画像に基づいて決定された)周辺照明に基づいて、1つまたは複数の画像をキャプチャするための画像センサー130および/または制御機構120についての露出設定を自動的に調整する。自動露出システムは、ハードウェア、ソフトウェア、またはそれらの組合せを使用して露出設定を自動的に調整する。自動露出システムは、露出設定を自動的に調整しながら、撮像システムにレイテンシを追加することができる。エクステンデッドリアリティ(XR)などの特定のアプリケーションでは、自動露出システムによって追加されるレイテンシは、たとえば、XRデバイスがユーザに表示するビューと、XRデバイスおよび/またはユーザの姿勢に基づいてユーザが有するべきビューとを非同期化することによって、パフォーマンスを劣化させる可能性がある。レイテンシは、6自由度(6DOF)および/またはビデオパススルー(VPT)などの要求の厳しい特徴と組み合わされたとき、特にパフォーマンスを劣化させる影響を有し得る。
【0093】
[0104] いくつかの例では、ハードウェアを使用して露出設定を自動的に調整する自動露出システムは、ソフトウェアを使用して露出設定を自動的に調整する自動露出システム(たとえば、8~10フレーム)よりも少ないレイテンシ(たとえば、2~3フレーム)を追加することができる。しかしながら、いくつかの撮像システムは、それでもなお、たとえば、撮像システムがその中でまたはそれと協働して動作する、ハードウェア設定、オペレーティングシステム、および/またはソフトウェアアプリケーションによって課される制限により、ソフトウェアを使用して露出設定を自動的に調整し得る。
【0094】
[0105] 撮像システム800は、画像センサー130によってキャプチャされた1つまたは複数の画像フレームを含み得るフレームキャプチャキュー(frame capture queue)805を含む。撮像システム800は、フレームキャプチャキュー805内の1つまたは複数の画像フレームについての1つまたは複数の画像統計をハードウェアおよび/またはソフトウェアで決定(たとえば、計算)することができる画像統計エンジン(image statistics engine)810を含む。1つまたは複数の画像統計は、フレームキャプチャキュー805内の画像フレームの1つまたは複数の平均輝度レベル、フレームキャプチャキュー805内の画像フレームの1つまたは複数の周囲輝度レベル、フレームキャプチャキュー805内の画像フレームの1つまたは複数の平均光度レベル、フレームキャプチャキュー805内の画像フレームの1つまたは複数の最小輝度レベル、フレームキャプチャキュー805内の画像フレームの1つまたは複数の最小光度レベル、フレームキャプチャキュー805内の画像フレームの1つまたは複数の最大輝度レベル、フレームキャプチャキュー805内の画像フレームの1つまたは複数の最大光度レベル、フレームキャプチャキュー805内の画像フレームの1つまたは複数の輝度曲線、フレームキャプチャキュー805内の画像フレームの1つまたは複数の光度曲線、またはそれらの組合せを含むことができる。いくつかの例では、画像フレームは、画像統計エンジンが画像フレームについての画像統計を受信および/または決定する前のある時間期間の間、フレームキャプチャキュー805中にあり得る。いくつかの例では、画像センサー130は、その期間中に1つまたは複数の画像フレーム(たとえば、1~2フレーム)をキャプチャすることができる。いくつかの例では、時間期間は、自動露出レイテンシに寄与し得る。
【0095】
[0106] 撮像システム800は、画像統計エンジン810によって決定された1つまたは複数の画像統計に基づいて、画像センサー130および/または制御機構120についての露出設定を決定(たとえば、計算)することができる自動露出設定エンジン(auto-exposure setting engine)815を含む。たとえば、画像統計エンジン810によって決定された画像統計が、フレームキャプチャキュー805中の画像が極めて薄暗いまたは暗いことを示す場合、自動露出設定エンジン815は、たとえば、露出時間を増加させること、シャッター速度を低減すること、開口サイズを増加させること、および/またはISOを増加させることによって、露出設定のための露出を増加させ得る。画像統計エンジン810によって決定された画像統計が、フレームキャプチャキュー805中の画像が極めて輝いているまたは明るいことを示す場合、自動露出設定エンジン815は、たとえば、露出時間を減少させること、シャッター速度を増加させること、開口サイズを減少させること、および/またはISOを減少させることによって、露出設定のための露出を減少させ得る。画像統計エンジン810によって決定された画像統計が、フレームキャプチャキュー805内の画像が十分に露出されていることを示す場合、自動露出設定エンジン815は、以前に設定された露出設定をそのまま維持し得る。
【0096】
[0107] 撮像システム800は、露出設定キュー820を含む。露出設定キュー820は、自動露出設定エンジン815によって決定された露出設定などの、画像センサー130によってキャプチャされるべき画像フレームに適用されるべき設定を含むことができる。露光設定キュー820は、設定が要求ループ825を介して画像センサー130および/または制御機構120にハードウェアで適用される前に、設定を保持することができる。露出設定キュー820は、露出設定バッファ、設定キュー、設定バッファ、またはそれらの何らかの組合せと呼ばれ得る。いくつかの例では、自動露出設定エンジン815によって決定された露出設定を含む設定は、ある時間期間の間、露出設定キュー820の間にあり得る。いくつかの例では、画像センサー130は、その期間中に1つまたは複数の画像フレーム(たとえば、1~2フレーム)をキャプチャすることができる。いくつかの例では、時間期間は、自動露出レイテンシに寄与し得る。
【0097】
[0108] 要求ループ825は、ハードウェアプロセスキャプチャ要求830を含む要求を、画像センサー130、制御機構120、および/または画像キャプチャデバイス105Aの他の要素などのキャプチャハードウェアにサブミットすることができる。ハードウェアプロセスキャプチャ要求830とハードウェアプロセスキャプチャ結果865との間のブロック835~860によって図8Aの左側に表されるハードウェアは、画像フレームのシーケンスのキャプチャを要求する。画像フレームのシーケンスの各々に対するフレーム要求は、フレーム要求N、フレーム要求N+1、フレーム要求N+2、フレーム要求N+3、フレーム要求N+4、フレーム要求N+5、および要求フレームN+6として識別される。ハードウェアプロセスは、最終的に、フレーム要求Nに対応する画像フレームN、フレーム要求N+1に対応する画像フレームN+1、フレーム要求N+2に対応する画像フレームN+2、フレーム要求N+3に対応する画像フレームN+3、フレーム要求N+4に対応する画像フレームN+4、フレーム要求N+5に対応する画像フレームN+5、および/またはフレーム要求N+6に対応する画像フレームN+6などのフレーム要求に対応する画像フレームをキャプチャすることができる。
【0098】
[0109] 例示的な例では、画像フレームN+6およびN+5は、フレーム要求キュー835にエンキューされ得る。フレーム要求キュー835は、フレーム要求キュー、フレームキャプチャ要求キュー、キャプチャ要求キュー、要求キュー、フレームキュー、キャプチャキュー、フレーム要求バッファ、フレームキャプチャ要求バッファ、キャプチャ要求バッファ、要求バッファ、フレームバッファ、キャプチャキュー、またはそれらの組合せと呼ばれることがある。フレーム要求(たとえば、フレーム要求N+6およびN+5)は、自動露出設定エンジン815によって決定された自動露出設定を含むことができる。フレーム要求(たとえば、フレーム要求N+6およびN+5)の各々は、スロットがフレーム要求キュー835内で利用可能になると、フレーム要求キュー内に自動的にエンキューされ得る。フレーム要求N、N+1、N+2、N+3、N+4、N+5、およびN+6の各々は、現在フレーム要求キュー835内にあるか、または図8Aに示された瞬間の時点で以前にフレーム要求キュー835内にあったかのいずれかである。
【0099】
[0110] キャプチャハードウェアは、フレーム要求N+4を読み取り、自動露出設定エンジン815によって決定された露出設定を取得する。キャプチャハードウェアは、使用される露出設定を設定し、露出設定をカーネル840に送る。キャプチャハードウェアがフレーム要求N+3を読み取る間、自動露出設定エンジン815によって決定され、カーネルに送信される(動作840)露出設定は、カーネル845において待機している。キャプチャハードウェアがフレーム要求N+2を読み取る間、自動露出設定エンジン815によって決定された露出設定は、たとえば制御機構120において、ハードウェア850に書き込まれている。フレーム要求N+1は、アクティブセンサーフレーム855として識別され、キャプチャハードウェアがフレーム要求N+1に対応する画像フレームN+1をキャプチャしていることと、キャプチャハードウェアが(たとえば、画像フレームN+1のキャプチャ時またはその前に)画像フレームN+1のキャプチャのために自動露出設定エンジン815によって決定された露出設定を適用することとを示す。フレーム要求Nは、図8A図8Bに示された時点で、すでにキャプチャされている。キャプチャハードウェアは、フレーム要求Nをフレームキャプチャキュー805に送る。キャプチャハードウェアは、動作860において、カーネル空間からユーザ空間への復帰を開始することができる。カーネル空間からユーザ空間への移行には、ある程度の時間がかかる。動作860はまた、ハードウェアプロセスキャプチャ結果865の一部としてユーザ空間に戻すために、フレームN+1および/またはパックデータ構造に対するメタデータ処理を含むことができる。ハードウェアは、ハードウェアプロセスキャプチャ結果865を、図8Aの右側にブロック805~825によって表されるソフトウェアプロセスに送る。いくつかの例では、ソフトウェアプロセスは、カーネル空間ではなくユーザ空間において実行され得る。ハードウェアプロセスキャプチャ結果865は、フレームキュー805に記憶されるべき画像フレームN~N+6のうちの1つまたは複数を含むことができる。
【0100】
[0111] 図8Bは、いくつかの例による、部分フレーム配信を用いた自動露出のための撮像システム880を示すブロック図である。撮像システム880は、撮像システム800の構成要素および動作を含むが、部分フレーム配信エンジン870を使用して自動露出プロセスを高速化する。
【0101】
[0112] 部分フレーム配信エンジン870は、アクティブセンサーフレーム855(画像フレームN+1)の部分を画像統計エンジン810に直接配信することができる。アクティブセンサーフレーム855(画像フレームN+1)の部分は、図2図3図4図5図7図9A、および/または図9Bのように、画像統計エンジン810に送られる。たとえば、部分フレーム配信エンジン870は、アクティブセンサーフレーム855(画像フレームN+1)からの画像データが書き込まれるべき画像バッファにウォーターマーク320または他のマーキングを追加することができる。部分フレーム配信エンジン870は、いくつかのウォーターマーク320またはマーキングがアクティブセンサーフレーム855(画像フレームN+1)からの画像データで上書きされるとき、アクティブセンサーフレーム855(画像フレームN+1)の部分を表す、アクティブセンサーフレーム855(画像フレームN+1)のための部分フレームデータを取り出す。部分フレーム配信エンジン870は、アクティブセンサーフレーム855(画像フレームN+1)についての部分フレームデータを画像統計エンジン810に送り、画像統計エンジン810は、フレーム部分ごとに、アクティブセンサーフレーム855(画像フレームN+1)についての画像統計を決定し始めることができる。いくつかの例では、部分フレーム配信エンジン870は、アクティブセンサーフレーム855(画像フレームN+1)からラインごとに画像データを取り出し、ラインを画像統計エンジン810に送る。いくつかの例では、各部分フレームは、アクティブセンサーフレーム855(画像フレームN+1)の1つまたは複数のラインを含む。
【0102】
[0113] 撮像システム880は、図8Bにおけるその対応するブロックが陰影付きで示され、破線で輪郭を描かれ、図8Bにおける対応する矢印が破線で示される、いくつかの動作をバイパスすることによって、自動露出プロセスを加速することが可能である。たとえば、撮像システム880は、開始ソフトウェアプロセス860およびフレームキャプチャキュー805をバイパスすることによって、自動露出プロセスを高速化することが可能である。自動露出プロセスを高速化することは、自動露出プロセスにおけるレイテンシを低減することができる。自動露出プロセスにおけるレイテンシを低減することは、たとえばXRシステムのパフォーマンスを改善することができる。たとえば、自動露出プロセスにおけるレイテンシを低減することは、XRデバイスがユーザに対して表示するビューを、XRデバイスおよび/またはユーザの姿勢に基づいてユーザが有するべきビューに同期させるのに役立ち得る。自動露出プロセスにおけるレイテンシを低減することは、6自由度(6DOF)および/またはビデオパススルー(VPT)などの要求の厳しい特徴をより円滑に、より一貫して機能させることができる。
【0103】
[0114] 図8Aの撮像システム800および図8Bの撮像システム880は自動露出を実行するが、同様の手順を、オートフォーカス、自動ズーム、自動利得調整、自動輝度調整、自動コントラスト調整、自動トーンマッピング、自動シャープネス調整、自動彩度調整、および/または画像統計に基づく他の自動画像処理動作に使用することができる。
【0104】
[0115] 図9Aは、いくつかの例による、画像処理技法を示す流れ図900である。いくつかの例では、流れ図900によって示される画像処理技法は、画像処理システムによって実行される。1つの例示的な例では、画像処理システムはXRシステム200である。いくつかの例では、画像処理システムは、画像キャプチャおよび処理システム100、画像キャプチャデバイス105A、画像処理デバイス105B、XRシステム200、XRアプリケーション215、コンポジタ225、撮像システム300、GPU325、タイムライン500に従って画像をキャプチャおよび処理するシステム、動作700を実行する画像処理システム、撮像システム800、撮像システム880、動作950を実行する画像処理システム、クラウドサービスの1つまたは複数のネットワークサーバ、コンピューティングシステム1000、モバイルデバイス、モバイルハンドセット、ワイヤレス通信デバイス、ヘッドマウントディスプレイ(HMD)、カメラ、またはそれらの組合せの少なくとも一部分を含む。
【0105】
[0116] 動作905において、画像処理システムは、画像フレームバッファの所定の領域においてメタデータでマーキングされた既存のデータを画像フレームバッファに記憶する。動作905のメタデータは、ウォーターマークであり得るか、またはウォーターマークを含み得る。ウォーターマーク320、ウォーターマーク430、およびウォーターマーク435は、動作905のメタデータの例になり得る。ウォーターマーク320、ウォーターマーク430、およびウォーターマーク435は、動作905のメタデータに含まれるウォーターマークの例であり得る。動作905は、図7の動作705~710の少なくともサブセットに対応し得る。画像処理システムは、画像フレームバッファを含み得る。画像処理システムは、画像バッファ210および/または画像バッファ310などの、1つまたは複数の画像フレームバッファを含む画像バッファを含み得る。画像バッファ210および/または画像バッファ310は、動作905の画像フレームバッファを含み得る。図3の画像フレームバッファ315は、動作905の画像フレームバッファの一例であり得る。図3の画像フレームバッファ315の下部の陰影のない白い領域は、動作905の既存のデータの例であり得る。図4の既存の画像フレームバッファデータ450および既存の画像フレームバッファデータ455は、動作905の既存のデータの例になり得る。動作905のメタデータは、色のパターン、新しい画像フレームに関連付けられたフレーム識別子、画像フレームバッファに関連付けられた画像フレームバッファ識別子、またはそれらの組合せを含むことができる。動作905のメタデータは、ウォーターマーク320、ウォーターマーク430、およびウォーターマーク435のいずれかに含まれることが可能であるとして本明細書で説明された任意のパターンまたは情報を含むことができる。
【0106】
[0117] いくつかの例では、動作905の前に、画像処理システムは、画像フレームバッファの所定の領域において既存のデータをメタデータでマーキングするために、既存のデータを修正する。たとえば、既存のデータは、所定の領域においてメタデータで以前にマーキングされ得ず、画像処理システムは、所定の領域においてメタデータを挿入し、および/または所定の領域において既存のデータの一部分を上書きすることがある。たとえば、画像処理システムは、ウォーターマーク430を、図4の既存の画像フレームバッファデータ450に挿入しており、および/またはウォーターマーク435を図4の既存の画像フレームバッファデータ455に挿入していることがある。
【0107】
[0118] いくつかの例では、既存のデータは、新しい画像フレームのキャプチャの前にキャプチャされた前の画像フレームからの前の画像フレームデータである。たとえば、図4の既存の画像フレームバッファデータ450および既存の画像フレームバッファデータ455は、シャンデリアを有する部屋を描写する画像データを含む。同様に、図4の新しい画像フレームデータ420および新しい画像フレームデータ425は、わずかに異なる位置からキャプチャされた、同じシャンデリアを有する同じ部屋を描写する画像データを含むように見える(たとえば、継ぎ目440に沿った既存の画像フレームバッファデータ450と新しい画像フレームデータ420との間の差、および継ぎ目445に沿った既存の画像フレームバッファデータ455と新しい画像フレームデータ425との間の差を参照)。前の画像フレームおよび新しい画像フレームは、同じビデオ内の2つの異なる画像フレームとすることができ、前の画像フレームは、新しい画像フレームよりもビデオ内で早く現れ、新しい画像フレームは、前の画像フレームよりもビデオ内で遅く現れる。
【0108】
[0119] 動作910において、画像処理システムは、新しい画像フレームに対応する新しい画像フレームデータを受信し、新しい画像フレームデータは、画像センサーによって受信される。画像センサーによって受信されている新しい画像フレームデータは、画像センサーによってキャプチャされている新しい画像フレームデータを含み得る。いくつかの例では、画像処理システムは、画像センサー130に結合されたコネクタを含み得、画像は、コネクタを使用して受信され得る。コネクタは、ポート、ジャック、ワイヤ、入出力(IO)ピン、プリント回路板(PCB)上の導電トレース、本明細書で説明される任意の他のタイプのコネクタ、またはそれらの何らかの組合せを含み得る。いくつかの例では、画像処理システムは、画像をキャプチャする画像センサー130を含み得る。動作910は、図7の動作715に対応し得る。図3の画像フレームバッファ315の陰影付きのディザリングされたエリアは、動作910の新しい画像フレームデータの一例であり得る。図4の新しい画像フレームデータ420および新しい画像フレームデータ425は、動作910の新しい画像フレームデータの例であり得る。図5の「Cam」ブロック中のデータは、動作910の新しい画像フレームデータの一例であり得る。
【0109】
[0120] 動作915において、画像処理システムは、画像フレームバッファ内の既存のデータの少なくとも一部を新しい画像フレームデータで上書きする。動作915は、図7の動作720に対応し得る。動作915は、新しい画像フレームデータを画像フレームバッファに記憶することを含み得る。
【0110】
[0121] 動作920において、画像処理システムは、メタデータが所定の領域に記憶されなくなることを示す画像フレームバッファの所定の領域の読取りに基づいて、新しい画像フレームデータが新しい画像フレームの少なくとも所定の量を含むと決定する。動作920は、図7の動作725~735の少なくともサブセットに対応し得る。いくつかの例では、新しい画像フレームデータが新しい画像フレームの少なくとも所定の量を含むことを決定するために、画像処理システムは、画像フレームバッファの所定の領域を読み取り、画像フレームバッファの所定の領域を読み取ることに基づいて、画像フレームバッファの所定の領域内のメタデータが上書きされたことを識別する。GPU325から図3の画像フレームバッファ315内のウォーターマーク320のうちの1つへの破線矢印によって示される図3におけるメモリ読取りは、動作920の決定の基礎となり得るメモリ読取りの一例である。左画像フレームバッファ410中の継ぎ目440の上の領域のメモリ読取りは、動作920の決定についての基礎であり得るメモリ読取りの一例であり得る。右画像フレームバッファ415中の継ぎ目445の上の領域のメモリ読取りは、動作920の決定についての基礎であり得るメモリ読取りの一例であり得る。
【0111】
[0122] 新しい画像フレームの所定の量は、新しい画像フレームの所定のパーセンテージ、新しい画像フレームの所定の割合、新しい画像フレームの行の所定の数、新しい画像フレームの行の所定のパーセンテージ、新しい画像フレームの行の所定の割合、新しい画像フレームの列の所定の数、新しい画像フレームの列の所定のパーセンテージ、新しい画像フレームの列の所定の割合、新しい画像フレームのピクセルの所定の数、新しい画像フレームのピクセルの所定のパーセンテージ、新しい画像フレームのピクセルの所定の割合、またはそれらの組合せを含むことができる。
【0112】
[0123] 動作925において、画像処理システムは、新しい画像フレームの所定の量に対応する新しい画像フレームデータの少なくとも第1の部分を出力する。新しい画像フレームデータの第1の部分を出力することは、新しい画像フレームデータの第1の部分をアプリケーション(たとえば、XRアプリケーション215)に送ること、アプリケーション(たとえば、XRアプリケーション215)を使用して新しい画像フレームデータを処理すること、(たとえば、コンポジタ225を使用して)新しい画像フレームデータを仮想データと合成すること、新しい画像フレームデータの第1の部分をディスプレイバッファ(たとえば、ディスプレイバッファ230、ディスプレイバッファ330、図5のDSI読取りポインタ)に送ること、ディスプレイ(たとえば、ディスプレイ235、ディスプレイ335、図5のDSI読取りポインタ)を使用して新しい画像フレームデータの第1の部分を表示すること、新しい画像フレームデータの第1の部分を別のデバイスに送ること、またはそれらの組合せを含むことができる。動作920は、図7の動作740~775の少なくともサブセットに対応し得る。
【0113】
[0124] いくつかの例では、動作925のように新しい画像フレームデータの第1の部分を出力するために、画像処理システムは、新しい画像フレームデータの第1の部分をエクステンデッドリアリティ(XR)アプリケーション(たとえば、図2のXRアプリケーション215)および/または別のタイプのアプリケーションに送るように構成され、送ることができる。いくつかの例では、動作925のように新しい画像フレームデータの第1の部分を出力するために、画像処理システムは、エクステンデッドリアリティ(XR)アプリケーション(たとえば、図2のXRアプリケーション215)および/または別のタイプのアプリケーションを使用して新しい画像フレームデータの第1の部分を処理するように構成され、処理することができる。いくつかの例では、動作925のように新しい画像フレームデータの第1の部分を出力するために、画像処理システムは、新しい画像フレームデータの第1の部分を仮想コンテンツ(たとえば、図2の仮想コンテンツレンダリングバッファ220からの仮想コンテンツ)と合成するように構成され、合成することができる。いくつかの例では、動作925のように新しい画像フレームデータの第1の部分を出力するために、画像処理システムは、新しい画像フレームデータの第1の部分の少なくとも一部に対してワーピング、歪曲、および/または歪曲補正を行うように構成され、それを行うことができる。
【0114】
[0125] いくつかの例では、動作925のように新しい画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、新しい画像フレームデータの第1の部分をディスプレイバッファに記憶する。いくつかの例では、画像処理システムは、ディスプレイバッファを含む。ディスプレイバッファの例には、図1のI/O156、図1のI/O160、図2のディスプレイバッファ230、図3のディスプレイバッファ330、図5のDSIリードポインタインジケータ、図10の出力デバイス1035、またはそれらの組合せが含まれる。
【0115】
[0126] いくつかの例では、動作925のように新しい画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、ディスプレイを使用して新しい画像フレームデータの第1の部分を表示する。いくつかの例では、画像処理システムは、ディスプレイを含む。ディスプレイの例は、図1のI/O156、図1のI/O160、図2のディスプレイ235、図3のディスプレイ335、図5のDSIリードポインタインジケータ、および図10の出力デバイス1035、またはそれらの組合せを含む。
【0116】
[0127] いくつかの例では、動作925のように新しい画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、新しい画像フレームデータの第1の部分をデバイスに送る。デバイスは、外部デバイスであり得る。デバイスは、画像データを記憶し、および/または記憶された画像データをサービスするためのリモートサーバなどのリモートコンピューティングデバイスであり得る。デバイスは、ディスプレイスクリーン、プロジェクタ、プリンタ、または別のタイプのディスプレイデバイスなどの、ディスプレイデバイスであり得る。デバイスは、コンピューティングシステム1000であり得る。いくつかの例では、新たな画像フレームデータの少なくとも第1の部分を出力するために、画像処理システムは、新たな画像フレームを出力するように構成され、出力することができる。たとえば、画像フレームバッファの所定の領域が画像フレームバッファの終わりにある(または、場合によっては、新しい画像フレームの終わりがあると予想される)場合、動作920は、新しい画像フレームの全体が受信されたことを示し得、動作925において出力され得る。
【0117】
[0128] いくつかの例では、既存のデータは、画像フレームバッファの第2の所定の領域において第2のメタデータでマーキングされる。第2のメタデータは、第2のウォーターマークであることがあり、動作905に関してメタデータおよび/またはウォーターマークに含まれるものとして説明した任意のタイプのデータを含むことがある。いくつかの例では、画像処理システムは、第2のメタデータが第2の所定の領域に記憶されなくなることを示す画像フレームバッファの第2の所定の領域の第2の読取りに基づいて、新しい画像フレームデータが新しい画像フレームの少なくとも第2の所定の量を含むと決定することができる。動作920に関して本明細書で説明される任意の詳細は、新しい画像フレームデータが新しい画像フレームの少なくとも第2の所定の量を含むと決定することに適用され得る。新しい画像フレームデータが新しい画像フレームの少なくとも第2の所定の量を含むと決定することは、図7の動作755に対応し得る。いくつかの例では、画像処理システムは、新しい画像フレームの第2の所定の量に対応する新しい画像フレームデータの少なくとも第2の部分を出力することができる。動作925に関して本明細書で説明される任意の詳細は、新しい画像フレームデータの少なくとも第2の部分を出力することに適用され得る。新しい画像フレームデータの少なくとも第2の部分を出力することは、図7の動作755~775のいずれかに対応し得る。
【0118】
[0129] 図9Bは、いくつかの例による、画像処理技法を示す流れ図900である。いくつかの例では、流れ図900によって示される画像処理技法は、画像処理システムによって実行される。1つの例示的な例では、画像処理システムは、XRシステム200である。いくつかの例では、画像処理システムは、画像キャプチャおよび処理システム100、画像キャプチャデバイス105A、画像処理デバイス105B、XRシステム200、XRアプリケーション215、コンポジタ225、撮像システム300、GPU325、タイムライン500に従って画像をキャプチャおよび処理するシステム、動作700を実行する画像処理システム、撮像システム800、撮像システム880、クラウドサービスの1つまたは複数のネットワークサーバ、動作900を実行する画像処理システム、コンピューティングシステム1000、モバイルデバイス、モバイルハンドセット、ワイヤレス通信デバイス、ヘッドマウントディスプレイ(HMD)、カメラ、またはそれらの組合せの少なくとも一部分を含む。
【0119】
[0130] 動作955において、画像処理システムは、画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを画像フレームバッファに記憶する。動作955において画像フレームバッファに記憶されたデータは、(図9Aの動作905または図7の動作705~710のように)記憶されたデータまたは既存のデータと呼ばれることがある。動作955は、図9Aの動作905、図7の動作705、および/または図7の動作710に対応し得る。メタデータは、1つまたは複数のウォーターマークであることがあり、および/またはそれを含み得る。メタデータの例は、ウォーターマーク320と、ウォーターマーク430と、ウォーターマーク435とを含み得る。動作955のメタデータに含まれる1つまたは複数のウォーターマークの例は、ウォーターマーク320、ウォーターマーク430、およびウォーターマーク435を含む。
【0120】
[0131] 画像処理システムは、画像フレームバッファを含み得る。画像処理システムは、画像バッファ210および/または画像バッファ310などの、1つまたは複数の画像フレームバッファを含む画像バッファを含み得る。画像バッファ210および/または画像バッファ310は、動作955の画像フレームバッファを含み得る。図3の画像フレームバッファ315は、動作955の画像フレームバッファの一例であり得る。図3の画像フレームバッファ315の下部の陰影のない白い領域は、動作955の記憶されたデータの例であり得る。記憶されたデータの例は、図4の既存の画像フレームバッファデータ450と、既存の画像フレームバッファデータ455とを含み得る。動作955のメタデータは、色のパターン、画像フレームに関連付けられたフレーム識別子、画像フレームバッファに関連付けられた画像フレームバッファ識別子、またはそれらの組合せを含むことができる。動作955のメタデータは、ウォーターマーク320、ウォーターマーク430、およびウォーターマーク435のいずれかに含まれることが可能であるとして本明細書で説明された任意のパターンまたは情報を含むことができる。
【0121】
[0132] いくつかの例では、動作955の前に、画像処理システムは、画像フレームバッファの所定の領域において記憶されたデータをメタデータでマーキングするために、記憶されたデータを修正する。たとえば、記憶されたデータは、所定の領域においてメタデータで以前にマーキングされることがあり、画像処理システムは、所定の領域においてメタデータを挿入し、および/または所定の領域において記憶されたデータの一部分を上書きすることがある。たとえば、画像処理システムは、ウォーターマーク430を図4の既存の画像フレームバッファデータ450に挿入し、および/またはウォーターマーク435を図4の既存の画像フレームバッファデータ455に挿入し、および/またはウォーターマーク320を図3の画像フレームバッファ315に記憶されたデータに挿入することがある。
【0122】
[0133] 動作960において、画像処理システムは、画像センサーから、画像フレームに対応する画像フレームデータを受信する。動作960は、図9Aの動作910および/または図7の動作715に対応し得る。画像センサーによって受信されている画像フレームデータは、画像センサーによってキャプチャされている画像フレームデータを含み得る。いくつかの例では、画像処理システムは、画像センサー130に結合されたコネクタを含み得、画像は、コネクタを使用して受信され得る。コネクタは、ポート、ジャック、ワイヤ、入出力(IO)ピン、プリント回路板(PCB)上の導電トレース、本明細書で説明される任意の他のタイプのコネクタ、またはそれらの何らかの組合せを含み得る。いくつかの例では、画像処理システムは、画像をキャプチャする画像センサー130を含み得る。図3の画像フレームバッファ315の陰影付きのディザリングされたエリアは、動作960の画像フレームデータの一例であり得る。図4の画像フレームデータ420および画像フレームデータ425は、動作960の画像フレームデータの例であり得る。図5の「Cam」ブロック中のデータは、動作960の画像フレームデータの一例であり得る。
【0123】
[0134] いくつかの例では、記憶されたデータは、(画像センサーによって、または異なる第2の画像センサーによって)キャプチャされた、ならびに/または動作960の画像フレームのキャプチャおよび/もしくは記憶の前の、以前の画像フレームからの以前の画像フレームデータである(および/またはそれを含む)。たとえば、図4の既存の画像フレームバッファデータ450および既存の画像フレームバッファデータ455は、シャンデリアを有する部屋を描写する画像データを含む。同様に、図4の画像フレームデータ420および画像フレームデータ425は、わずかに異なる位置からキャプチャされた、同じシャンデリアを有する同じ部屋を描写する画像データを含むように見える(たとえば、継ぎ目440に沿った既存の画像フレームバッファデータ450と画像フレームデータ420との間の差、および継ぎ目445に沿った既存の画像フレームバッファデータ455と画像フレームデータ425との間の差を参照)。前の画像フレームおよび画像フレームは、同じビデオ内の2つの異なる画像フレームとすることができ、前の画像フレームは、画像フレームよりもビデオ内で早く現れ、画像フレームは、前の画像フレームよりもビデオ内で遅く現れる。
【0124】
[0135] いくつかの例では、画像処理システムは、動作960の前にシーンのビューを求める要求を受信する。要求の受信に応答して、画像処理システムは、たとえば、アパーチャを開くことによって、画像センサーをシーンからの光に自動的に露出することができる。動作960において画像センサーから受信された画像フレームデータは、シーンからの光に対する画像センサーの露光に基づくことができる。たとえば、HMDなどのXRデバイスは、特定の時間(たとえば、XRデバイスのユーザによって要求されたとき、またはXRデバイスのユーザにシーンまたはシーンに基づく何かを示す必要があるとき)にXRデバイスの前のシーンのパススルー画像を要求することができるが、シーンのパススルー画像を必ずしも必要とするとは限らないことがある。
【0125】
[0136] 動作965において、画像処理システムは、画像フレームバッファ内の記憶されたデータの少なくとも一部を画像フレームデータで上書きする。動作965は、図9Aの動作915および/または図7の動作720に対応し得る。動作965の一部として、画像処理システムは、画像フレームデータを画像フレームバッファに記憶することがある。動作965は、画像フレームデータを画像フレームバッファに記憶することを含み得る。
【0126】
[0137] 動作970において、画像処理システムは、所定の領域がメタデータとは異なる追加データを記憶することを示す画像フレームバッファの所定の領域の読取りに基づいて、画像フレームデータが画像フレームの少なくとも所定の量を含むと決定する。動作970は、図9Aの動作920、図7の動作725、図7の動作730、および/または図7の動作735に対応し得る。いくつかの例では、追加データは、動作965の画像フレームデータの少なくとも一部である(および/またはそれを含む)。追加データは、代替データ、新しいデータ、新しい画像データ、2次データ、異なるデータ、別個のデータ、データ、情報、または別のタイプのデータと呼ばれることがある。
【0127】
[0138] 動作970の一部として、画像処理システムは、画像フレームバッファの所定の領域を読み取ることができ、これは、動作970における「読取り」と呼ばれることがある。画像処理システムは、画像フレームバッファの所定の領域の読取りに基づいて、所定の領域がメタデータとは異なる追加データを記憶していると決定することができる。画像処理システムは、画像フレームバッファの所定の領域を読み取ることに基づいて、たとえば、メタデータが画像フレームバッファの所定の領域において見つからなくなるので、画像フレームバッファの所定の領域内のメタデータが(たとえば、追加データおよび/または動作965の画像フレームデータの少なくとも一部分で)上書きされたことを識別することができる。GPU325から図3の画像フレームバッファ315内のウォーターマーク320のうちの1つへの破線矢印によって示される図3におけるメモリ読取りは、動作970の決定の基礎となり得るメモリ読取りの一例である。左画像フレームバッファ410中の継ぎ目440の上の領域のメモリ読取りは、動作970の決定についての基礎であり得るメモリ読取りの一例であり得る。右画像フレームバッファ415中の継ぎ目445の上の領域のメモリ読取りは、動作970の決定についての基礎であり得るメモリ読取りの一例であり得る。
【0128】
[0139] 画像フレームの所定の量は、画像フレームの所定のパーセンテージ、画像フレームの所定の割合、画像フレームの行(row)の所定の数、画像フレームの行の所定のパーセンテージ、画像フレームの行の所定の割合、画像フレームの列(column)の所定の数、画像フレームの列の所定のパーセンテージ、画像フレームの列の所定の割合、画像フレームの画素の所定の数、画像フレームの画素の所定のパーセンテージ、画像フレームの画素の所定の割合、またはそれらの組合せを含むことができる。
【0129】
[0140] 動作975において、画像処理システムは、画像フレームの所定の量に対応する画像フレームデータの少なくとも第1の部分を出力する。動作975は、図9Aの動作925、図7の動作740、図7の動作745、図7の動作750、図7の動作755、図7の動作760、図7の動作765、図7の動作770、および/または図7の動作775に対応し得る。
【0130】
[0141] 画像フレームデータの第1の部分を出力することは、画像フレームデータの第1の部分をアプリケーション(たとえば、XRアプリケーション215)に送ること、アプリケーション(たとえば、XRアプリケーション215)を使用して画像フレームデータを処理すること、(たとえば、コンポジタ225を使用して)画像フレームデータを仮想データと合成すること、画像フレームデータの第1の部分をディスプレイバッファ(たとえば、ディスプレイバッファ230、ディスプレイバッファ330、図5のDSI読取りポインタ)に送ること、ディスプレイ(たとえば、ディスプレイ235、ディスプレイ335、図5のDSI読取りポインタ)を使用して画像フレームデータの第1の部分を表示すること、画像フレームデータの第1の部分を別のデバイスに送ること、またはそれらの組合せを含むことができる。
【0131】
[0142] いくつかの例では、動作975のように画像フレームデータの第1の部分を出力するために、画像処理システムは、画像フレームデータの第1の部分をエクステンデッドリアリティ(XR)アプリケーション(たとえば、図2のXRアプリケーション215)および/または別のタイプのアプリケーションに送るように構成され、送ることができる。いくつかの例では、動作975のように画像フレームデータの第1の部分を出力するために、画像処理システムは、エクステンデッドリアリティ(XR)アプリケーション(たとえば、図2のXRアプリケーション215)および/または別のタイプのアプリケーションを使用して画像フレームデータの第1の部分を処理するように構成され、処理することができる。いくつかの例では、動作975のように画像フレームデータの第1の部分を出力するために、画像処理システムは、画像フレームデータの第1の部分を仮想コンテンツ(たとえば、図2の仮想コンテンツレンダリングバッファ220からの仮想コンテンツ)と合成するように構成され、合成することができる。いくつかの例では、動作975のように画像フレームデータの第1の部分を出力するために、画像処理システムは、画像フレームデータの第1の部分の少なくとも一部に対してワーピング、歪曲、および/または歪曲補正を行うように構成され、それを行うことができる。
【0132】
[0143] いくつかの例では、動作975のように画像フレームデータの第1の部分を出力するために、画像処理システムは、画像フレームデータの第1の部分をディスプレイバッファに記憶する。いくつかの例では、画像処理システムは、ディスプレイバッファを含む。ディスプレイバッファの例には、図1のI/O156、図1のI/O160、図2のディスプレイバッファ230、図3のディスプレイバッファ330、図5のDSIリードポインタインジケータ、図10の出力デバイス1035、またはそれらの組合せが含まれる。
【0133】
[0144] いくつかの例では、動作975のように画像フレームデータの第1の部分を出力するために、画像処理システムは、ディスプレイを使用して画像フレームデータの第1の部分を表示する。いくつかの例では、画像処理システムは、ディスプレイを含む。ディスプレイの例は、図1のI/O156、図1のI/O160、図2のディスプレイ235、図3のディスプレイ335、図5のDSIリードポインタインジケータ、および図10の出力デバイス1035、またはそれらの組合せを含む。
【0134】
[0145] いくつかの例では、動作975のように画像フレームデータの第1の部分を出力するために、画像処理システムは、画像フレームデータの第1の部分をデバイスに送る。デバイスは、外部デバイスであり得る。デバイスは、画像データを記憶し、および/または記憶された画像データをサービスするためのリモートサーバなどのリモートコンピューティングデバイスであり得る。デバイスは、ディスプレイスクリーン、プロジェクタ、プリンタ、または別のタイプのディスプレイデバイスなどの、ディスプレイデバイスであり得る。デバイスは、コンピューティングシステム1000であり得る。いくつかの例では、画像フレームデータの少なくとも第1の部分を出力するために、画像処理システムは、画像フレームを出力するように構成され、出力することができる。たとえば、画像フレームバッファの所定の領域が画像フレームバッファの終わりにある(または、場合によっては、画像フレームの終わりがあると予想される)場合、動作920は、画像フレームの全体が受信されたことを示し得、動作975において出力され得る。
【0135】
[0146] いくつかの例では、記憶されたデータは、画像フレームバッファの第2の所定の領域において第2のメタデータでマーキングされる。第2のメタデータは、第2のウォーターマークであることがあり、動作905に関してメタデータおよび/またはウォーターマークに含まれるものとして説明した任意のタイプのデータを含むことがある。いくつかの例では、画像処理システムは、第2のメタデータが第2の所定の領域に記憶されなくなることを示す画像フレームバッファの第2の所定の領域の第2の読取りに基づいて、画像フレームデータが画像フレームの少なくとも第2の所定の量を含むと決定することができる。動作920に関して本明細書で説明される任意の詳細は、画像フレームデータが画像フレームの少なくとも第2の所定の量を含むと決定することに適用され得る。画像フレームデータが画像フレームの少なくとも第2の所定の量を含むと決定することは、図7の動作755に対応し得る。いくつかの例では、画像処理システムは、画像フレームの第2の所定の量に対応する画像フレームデータの少なくとも第2の部分を出力することができる。動作975に関して本明細書で説明される任意の詳細は、画像フレームデータの少なくとも第2の部分を出力することに適用され得る。画像フレームデータの少なくとも第2の部分を出力することは、図7の動作755~775のいずれかに対応し得る。
【0136】
[0147] いくつかの例では、動作975のように画像フレームデータの第1の部分を出力するために、画像処理システムは、たとえば画像統計エンジン810に関して説明されたように、画像フレームデータの少なくとも第1の部分に基づいて1つまたは複数の画像統計を決定する。画像処理システムは、たとえば、自動露出設定エンジン815に関して説明されたように、1つまたは複数の画像統計に基づいて画像キャプチャ設定を決定する。いくつかの例では、画像処理システムは、たとえば、要求ループ825、ハードウェアプロセスキャプチャ要求830、および/またはフレーム要求キュー835の場合のように、画像センサーを含む画像キャプチャハードウェアに画像キャプチャ設定を送る。画像処理システムは、画像センサーから、第2の画像フレームに対応する2次画像フレームデータを受信し、画像センサーは、画像キャプチャ設定に基づいて第2の画像フレームをキャプチャする。たとえば、アクティブセンサーフレーム855(画像フレームN+1)は、自動露出設定エンジン815によって決定され、設定されてカーネルに送られ(動作840)、アクティブセンサーフレーム855(画像フレームN+1)とともに使用するためにハードウェアに書き込まれる(動作850)画像キャプチャ設定に基づいてキャプチャされる。画像キャプチャ設定は、露出設定とすることができる。
【0137】
[0148] いくつかの態様では、画像処理システムは、画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを画像フレームバッファに記憶する手段と、画像フレームに対応する画像フレームデータを画像センサーから受信する手段と、画像フレームバッファ内の記憶されたデータの少なくとも一部を画像フレームデータで上書きする手段と、所定の領域がメタデータとは異なる新しいデータを記憶することを示す画像フレームバッファの所定の領域の読取りに基づいて、画像フレームデータが画像フレームの少なくとも所定の量を含むと決定する手段と、画像フレームの所定の量に対応する画像フレームデータの少なくとも第1の部分を出力する手段とを含むことができる。
【0138】
[0149] いくつかの例では、データを記憶するための手段は、画像バッファ170、画像バッファ210、画像バッファ310、画像バッファ310の個々の画像フレームバッファ0~15、画像フレームバッファ315、左画像フレームバッファ410、右画像フレームバッファ415、メモリ1015、記憶デバイス1030、キャッシュ1012、またはそれらの組合せを含むことができる。いくつかの例では、画像フレームデータを受信するための手段は、画像センサー130、画像プロセッサ150、ISP154、ホストプロセッサ152、I/O156、画像キャプチャデバイス105A、画像処理デバイス105B、画像キャプチャおよび処理システム100、カメラ205、カメラ305を含む。いくつかの例では、記憶されたデータの少なくとも一部を上書きするための手段は、画像バッファ170、画像バッファ210、画像バッファ310、画像バッファ310の個々の画像フレームバッファ0~15、画像フレームバッファ315、左画像フレームバッファ410、右画像フレームバッファ415、メモリ1015、記憶デバイス1030、キャッシュ1012、またはそれらの組合せを含むことができる。いくつかの例では、画像フレームデータが画像フレームの少なくとも所定の量を含むと決定するための手段は、画像処理デバイス105B、画像キャプチャおよび処理システム100、XRapp215、GPU325、プロセッサ1010、またはそれらの組合せを含むことができる。いくつかの例では、画像フレームデータの少なくとも第1の部分を出力するための手段は、I/O156、I/O160、XRApp215、XRSDK、コンポジタ225、ディスプレイバッファ230、ディスプレイ235、GPU325、ディスプレイバッファ330、ディスプレイ335、ディスプレイインターフェースポインタ530、メモリ1015、記憶デバイス1030、キャッシュ1012、出力デバイス1035、通信インターフェース1040、またはそれらの組合せを含むことができる。
【0139】
[0150] 流れ図900に示された画像処理技法はまた、概念図、ブロック図、および流れ図100、200、300、500、700、800、880、および/または1000のいずれかに示されて説明された、またはそれらに関して説明された任意の動作を含み得る。
【0140】
[0151] いくつかの場合には、概念図、ブロック図、および流れ図100、200、300、500、700、800、880、900、および/または1000のいずれかによって示される技法の少なくともサブセットは、クラウドサービスの1つまたは複数のネットワークサーバによってリモートで実行され得る。いくつかの例では、本明細書で説明されるプロセス(たとえば、概念図、ブロック図、および流れ図200、300、500、700、800、880、900、および/もしくは1000によって示されるものを含むプロセス、ならびに/または本明細書で説明される他のプロセス)は、コンピューティングシステムまたは装置によって実行され得る。一例では、概念図、ブロック図、および流れ図100、200、300、500、700、800、880、900、および/または1000によって示されるプロセスは、図1の画像キャプチャデバイス105Aによって実行され得る。別の例では、概念図、ブロック図、および流れ図100、200、300、500、700、800、880、900、および/または1000によって示されるプロセスは、図1の画像処理デバイス105Bによって実行され得る。概念図、ブロック図、および流れ図100、200、300、500、700、800、880、900、および/または1000によって示されるプロセスはまた、図1の画像キャプチャおよび処理システム100によって実行され得る。概念図、ブロック図、および流れ図100、200、300、500、700、800、880、900、および/または1000によって示されるプロセスは、図2のXRシステム200によって実行することができる。概念図、ブロック図、および流れ図100、200、300、500、700、800、880、900、および/または1000によって示されるプロセスは、図3に示されるシステムによって実行され得る。概念図、ブロック図、および流れ図100、200、300、500、700、800、880、900、および/または1000によって示されるプロセスは、図10に示されるコンピューティングシステム1000のアーキテクチャを有するコンピューティングシステムによって実行され得る。コンピューティングシステムは、モバイルデバイス(たとえば、携帯電話)、デスクトップコンピューティングデバイス、タブレットコンピューティングデバイス、ウェアラブルデバイス(たとえば、VRヘッドセット、ARヘッドセット、AR眼鏡、ネットワーク接続された腕時計もしくはスマートウォッチ、または他のウェアラブルデバイス)、サーバコンピュータ、自律走行車もしくは自律走行車のコンピューティングデバイス、ロボットデバイス、テレビ、ならびに/または概念図、ブロック図、および流れ図100、200、300、500、700、800、880、900、および/もしくは1000によって示されるプロセスを含む、本明細書で説明されるプロセスを実行するためのリソース能力を有する任意の他のコンピューティングデバイスなど、任意の適切なデバイスを含むことができる。いくつかの場合には、コンピューティングシステムまたは装置は、1つまたは複数の入力デバイス、1つまたは複数の出力デバイス、1つまたは複数のプロセッサ、1つまたは複数のマイクロプロセッサ、1つまたは複数のマイクロコンピュータ、1つまたは複数のカメラ、1つまたは複数のセンサー、および/あるいは本明細書で説明されるプロセスのステップを行うように構成された他の構成要素など、様々な構成要素を含み得る。いくつかの例では、コンピューティングシステムは、ディスプレイ、データを通信および/もしくは受信するように構成されたネットワークインターフェース、それらの任意の組合せ、ならびに/または他の構成要素を含む場合がある。ネットワークインターフェースは、インターネットプロトコル(IP)ベースのデータまたは他のタイプのデータを通信および/または受信するように構成される場合がある。
【0141】
[0152] コンピューティングシステムの構成要素は、回路において実装され得る。たとえば、構成要素は、本明細書で説明される様々な動作を実施するために、1つまたは複数のプログラマブル電子回路(たとえば、マイクロプロセッサ、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、中央処理ユニット(CPU)、および/または他の好適な電子回路)を含むことができ、ならびに/あるいはコンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せを含むことができおよび/またはそれらを使用して実装され得る、電子回路または他の電子ハードウェアを含むことができおよび/またはそれらを使用して実装され得る。
【0142】
[0153] 概念図、ブロック図、および流れ図100、200、300、500、700、800、880、900、および/または1000によって示されるプロセスは、論理流れ図として編成され、その動作は、ハードウェア、コンピュータ命令、またはそれらの組合せで実装され得る動作のシーケンスを表す。コンピュータ命令のコンテキストでは、動作は、1つまたは複数のプロセッサによって実行されたとき、列挙された動作を実行する、1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実行するか、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が説明される順序は、限定として解釈されるものではなく、任意の数の説明される動作は、プロセスを実装するために任意の順序でおよび/または並行して組み合わされ得る。
【0143】
[0154] 加えて、概念図、ブロック図、および流れ図100、200、300、500、700、800、880、900、および/または1000によって示されるプロセスおよび/または本明細書で説明される他のプロセスは、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実行されることがあり、1つまたは複数のプロセッサ上でまとめて実行されるコード(たとえば、実行可能命令、1つもしくは複数のコンピュータプログラム、または1つもしくは複数のアプリケーション)として、ハードウェアによって、またはそれらの組合せによって実装されることがある。上述されたように、コードは、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読記憶媒体または機械可読記憶媒体に記憶される場合がある。コンピュータ可読記憶媒体または機械可読記憶媒体は、非一時的であり得る。
【0144】
[0155] 図10は、本技術のいくつかの態様を実装するためのシステムの例を示す図である。特に、図10は、たとえば、画像キャプチャおよび処理システム100、画像キャプチャデバイス105A、画像処理デバイス105B、画像プロセッサ150、ホストプロセッサ152、ISP154、XRシステム200、XRアプリケーション215、コンポジタ225、撮像システム300、GPU325、タイムライン500に従って画像をキャプチャおよび処理するシステム、撮像システム800、撮像システム880、CNN1100、Cifar-10NN1200、遠隔コンピューティングシステム、カメラ、それらの任意の組合せ、またはそれらの任意の構成要素を構成する任意のコンピューティングデバイスまたはコンピューティングシステムであり得る、コンピューティングシステム1000の実施例を図示し、システムの構成要素は、接続1005を使用して互いに通信する。接続1005は、チップセットアーキテクチャ中などでのバスを使用した物理接続であるか、またはプロセッサ1010への直接接続であり得る。接続1005はまた、仮想接続、ネットワーク化された接続、または論理接続であり得る。
【0145】
[0156] いくつかの実施形態では、コンピューティングシステム1000は、本開示で説明される機能が、データセンタ、複数のデータセンタ、ピアネットワーク内などに分散され得る、分散システムである。いくつかの実施形態では、説明されるシステム構成要素のうちの1つまたは複数は、構成要素が説明される機能のうちのいくつかまたはすべてを各々実行する、多くのそのような構成要素を表す。いくつかの実施形態では、構成要素は、物理デバイスまたは仮想デバイスとすることができる。
【0146】
[0157] 例示的なシステム1000は、少なくとも1つの処理ユニット(CPUまたはプロセッサ)1010と、読取り専用メモリ(ROM)1020およびランダムアクセスメモリ(RAM)1025などのシステムメモリ1015を含む様々なシステム構成要素をプロセッサ1010に結合する接続1005とを含む。コンピューティングシステム1000は、プロセッサ1010に直接接続された、またはそれに極めて近接した、またはその一部として統合された高速メモリのキャッシュ1012を含むことができる。
【0147】
[0158] プロセッサ1010は、任意の汎用プロセッサと、記憶デバイス1030に記憶されプロセッサ1010を制御するように構成されたサービス1032、1034、および1036などのハードウェアサービスまたはソフトウェアサービスと、ソフトウェア命令が実際のプロセッサ設計に組み込まれた専用プロセッサとを含むことができる。プロセッサ1010は、本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む完全に自己完結型のコンピューティングシステムであり得る。マルチコアプロセッサは、対称または非対称であり得る。
【0148】
[0159] ユーザ対話を可能にするために、コンピューティングシステム1000は、スピーチのためのマイクロフォン、ジェスチャまたはグラフィカル入力のためのタッチセンシティブスクリーン、キーボード、マウス、動き入力、スピーチなど、任意の数の入力機構を表すことができる入力デバイス1045を含む。コンピューティングシステム1000はまた、いくつかの出力機構のうちの1つ以上であり得る、出力デバイス1035を含むことができる。いくつかの事例では、マルチモーダルシステムは、ユーザがコンピューティングシステム1000と通信するために複数のタイプの入出力を提供することを可能にすることができる。コンピューティングシステム1000は、通信インターフェース1040を含むことができ、これは、概して、ユーザ入力とシステム出力とを統制および管理することができる。通信インターフェースは、オーディオジャック/プラグ、マイクロフォンジャック/プラグ、ユニバーサルシリアルバス(USB)ポート/プラグ、Apple(登録商標)Lightning(登録商標)ポート/プラグ、イーサネット(登録商標)ポート/プラグ、光ファイバポート/プラグ、プロプライエタリなワイヤードポート/プラグ、BLUETOOTH(登録商標)ワイヤレス信号転送、BLUETOOTH低エネルギー(BLE)ワイヤレス信号転送、IBEACON(登録商標)ワイヤレス信号転送、無線周波数識別(RFID)ワイヤレス信号転送、近距離場通信(NFC)ワイヤレス信号転送、専用短距離通信(DSRC)ワイヤレス信号転送、802.11Wi-Fiワイヤレス信号転送、ワイヤレスローカルエリアネットワーク(WLAN)信号転送、可視光通信(VLC)、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX(登録商標))、赤外線(IR)通信ワイヤレス信号転送、公衆交換電話網(PSTN)信号転送、インテグレーテッドサービスデジタルネットワーク(ISDN)信号転送、3G/4G/5G/LTEセルラーデータネットワークワイヤレス信号転送、アドホックネットワーク信号転送、電波信号転送、マイクロ波信号転送、赤外線信号転送、可視光信号転送、紫外光信号転送、電磁スペクトルに沿ったワイヤレス信号転送、またはそれらの何らかの組合せを利用するトランシーバを含むワイヤードおよび/またはワイヤレストランシーバを使用したワイヤードまたはワイヤレス通信の受信および/または送信を実施または容易にし得る。通信インターフェース1040は、1つまたは複数の全地球航法衛星システム(GNSS)システムに関連する1つまたは複数の衛星からの1つまたは複数の信号の受信に基づいて、コンピューティングシステム1000の位置を決定するために使用される、1つまたは複数のGNSS受信機またはトランシーバも含み得る。GNSSシステムは、限定はしないが、米国ベースの全地球測位システム(GPS)、ロシアベースの全地球航法衛星システム(GLONASS)、中国ベースのBeiDou航法衛星システム(BDS)、および欧州ベースのGalileo GNSSを含む。任意の特定のハードウェア構成上で動作することに制限はなく、したがって、ここでの基本的な特徴は、改善されたハードウェア構成またはファームウェア構成が開発されると、それらに容易に置き換えられ得る。
【0149】
[0160] ストレージデバイス1030は、磁気カセット、フラッシュメモリカード、固体メモリデバイス、デジタル多用途ディスク、カートリッジ、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、磁気ストリップ/ストライプ、任意の他の磁気記憶媒体、フラッシュメモリ、メモリスタメモリ、任意の他の固体メモリ、コンパクトディスク読取り専用メモリ(CD-ROM)光ディスク、書換え可能コンパクトディスク(CD)光ディスク、デジタルビデオディスク(DVD)光ディスク、ブルーレイ(登録商標)ディスク(BDD)光ディスク、ホログラフィック光ディスク、別の光媒体、セキュアデジタル(SD)カード、マイクロセキュアデジタル(microSD)カード、Memory Stick(登録商標)カード、スマートカードチップ、EMVチップ、加入者識別モジュール(SIM)カード、ミニ/マイクロ/ナノ/ピコSIMカード、別の統合回路(IC)チップ/カード、ランダムアクセスメモリ(RAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、フラッシュEPROM(FLASHEPROM)、キャッシュメモリ(L1/L2/L3/L4/L5/L#)、抵抗変化型ランダムアクセスメモリ(RRAM(登録商標)/ReRAM)、相変化メモリ(PCM)、スピントランスファートルクRAM(STT-RAM)、別のメモリチップもしくはカートリッジ、および/またはそれらの組合せなど、不揮発性および/または非一時的および/またはコンピュータ可読メモリデバイスであり得、コンピュータによってアクセス可能であるデータを記憶することができるハードディスクまたは他のタイプのコンピュータ可読媒体であり得る。
【0150】
[0161] 記憶デバイス1030は、ソフトウェアサービス、サーバ、サービスなどを含むことができ、それらは、そのようなソフトウェアを定義するコードがプロセッサ1010によって実行されると、システムに機能を実施させる。いくつかの実施形態では、特定の機能を実施するハードウェアサービスは、その機能を行うために、プロセッサ1010、接続1005、出力デバイス1035など、必要なハードウェア構成要素に関して、コンピュータ可読媒体に記憶されたソフトウェア構成要素を含むことができる。
【0151】
[0162] 本明細書で使用される「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブル記憶デバイス、光記憶デバイス、ならびに、命令および/またはデータを記憶、含有、または搬送することが可能な様々な他の媒体を含む。コンピュータ可読媒体は、データを記憶することができ、ワイヤレスに、またはワイヤード接続を介して伝搬する搬送波および/または一時的な電子信号を含まない非一時的媒体を含み得る。非一時的媒体の例は、限定はしないが、磁気ディスクもしくは磁気テープ、コンパクトディスク(CD)もしくはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリ、またはメモリデバイスを含み得る。コンピュータ可読媒体は、その上に、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表し得るコードおよび/または機械実行可能命令を記憶していることがある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリコンテンツをパスおよび/または受信することにより、別のコードセグメントまたはハードウェア回路に結合される場合がある。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む任意の適切な手段を使用して、渡され、フォワーディングされ、または送信され得る。
【0152】
[0163] いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含むケーブルまたはワイヤレス信号を含むことができる。しかしながら、述べられるとき、非一時的コンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、および信号自体などの媒体を明確に除外する。
【0153】
[0164] 本明細書で提供される実施形態および例の完全な理解を提供するために、具体的な詳細が上記の説明で提供される。ただし、実施形態はこれらの具体的な詳細なしに実践され得ることを当業者は理解されよう。説明の明快のために、いくつかの事例では、本技術は、デバイス、デバイス構成要素、ソフトウェアで具現される方法におけるステップまたはルーチン、あるいはハードウェアとソフトウェアとの組合せを備える機能ブロックを含む個々の機能ブロックを含むものとして提示され得る。図に示されているおよび/または本明細書で説明された構成要素以外の追加の構成要素が使用され得る。たとえば、回路、システム、ネットワーク、プロセス、および他の構成要素は、不要な詳細で実施形態を不明瞭にしないためにブロック図の形態で構成要素として示される場合がある。他の事例では、実施形態を不明瞭にすることを回避するために、よく知られている回路、プロセス、アルゴリズム、構造、および技法は不要な詳細なしに示され得る。
【0154】
[0165] 個々の実施形態は、フローチャート、流れ図、データフロー図、構造図、またはブロック図として描写されたプロセスまたは方法として上述されている場合がある。フローチャートは動作を逐次プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実施され得る。さらに、動作の順序は並べ替えられ得る。その動作が完了されるとき、プロセスは終了されるが、図中に含まれない追加のステップを有し得る。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応するとき、それの終了は、呼出し関数またはメイン関数への関数の復帰に対応することができる。
【0155】
[0166] 上記で説明された例によるプロセスおよび方法は、記憶されるかまたはさもなければコンピュータ可読媒体から利用可能である、コンピュータ実行可能命令を使用して実装され得る。そのような命令は、たとえば、汎用コンピュータ、専用コンピュータ、または処理デバイスが、ある機能または機能のグループを実施することを引き起こすか、あるいはさもなければそれらを実施するように構成する、命令とデータとを含むことができる。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、たとえば、バイナリ、アセンブリ言語などの中間フォーマット命令、ファームウェア、ソースコードであり得る。命令、使用される情報、および/または説明された例による方法中に作成される情報を記憶するために使用され得るコンピュータ可読媒体の例は、磁気または光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク化された記憶デバイスなどを含む。
【0156】
[0167] これらの開示によるプロセスおよび方法を実装するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せを含むことができ、様々なフォームファクタのいずれかをとることができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実施するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読または機械可読媒体に記憶され得る。プロセッサが必要なタスクを実行することができる。フォームファクタの典型的な例には、ラップトップ、スマートフォン、携帯電話、タブレットデバイス、または他のスモールフォームファクタパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどが含まれる。本明細書で説明された機能はまた、周辺機器またはアドインカードで具現され得る。そのような機能はまた、さらなる例として、単一のデバイス内で実行する異なるチップまたは異なるプロセスの間の回路基板上に実装され得る。
【0157】
[0168] 命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、本開示で説明された機能を提供するための例示的な手段である。
【0158】
[0169] 上記の説明では、本出願の態様がそれの特定の実施形態を参照しながら説明されたが、本出願はそれに限定されないことを、当業者は認識されよう。したがって、本出願の例示的な実施形態が本明細書で詳細に説明されているが、従来技術によって限定される場合を除いて、発明的概念が、場合によっては様々に具現および採用され得、添付の特許請求の範囲が、そのような変形形態を含むように解釈されるものであることを理解されたい。上記で説明された適用例の様々な特徴および態様は、個々にまたは一緒に使用され得る。さらに、実施形態は、本明細書のより広い趣旨および範囲から逸脱することなく、本明細書で説明された環境および適用例以外に、任意の数の環境および適用例において利用され得る。したがって、本明細書および図面は、限定的ではなく例示的と見なされるべきである。説明の目的で、方法は特定の順序で説明された。代替実施形態では、方法は、説明された順序とは異なる順序で実施され得ることを諒解されたい。
【0159】
[0170] 当業者は、本明細書で使用される、よりも小さい(「<」)およびよりも大きい(「>」)というシンボルまたは用語が、本明細書の範囲から逸脱することなく、それぞれ、以下の(「≦」)および以上の(「≧」)というシンボルと交換され得ることを諒解されよう。
【0160】
[0171] 構成要素が特定の動作を実行する「ように構成される」ものとして記載される場合、そのような構成は、たとえば、その動作を実行するように電子回路もしくは他のハードウェアを設計することにより、その動作を実行するようにプログラム可能な電子回路(たとえば、マイクロプロセッサ、もしくは他の適切な電子回路)をプログラムすることにより、またはそれらの任意の組合せで達成され得る。
【0161】
[0172] 「に結合された」という句は、直接的にまたは間接的にのいずれかで別の構成要素に物理的に接続された任意の構成要素、および/あるいは直接的にまたは間接的にのいずれかで別の構成要素と通信している(たとえば、ワイヤードまたはワイヤレス接続および/あるいは他の好適な通信インターフェースを介して他の構成要素に接続された)任意の構成要素を指す。
【0162】
[0173] セット「のうちの少なくとも1つ」および/またはセットの「1つまたは複数」を記載している請求項の文言または他の文言は、セットの1つのメンバーまたは(任意の組合せでの)セットの複数のメンバーが請求項を満たすことを示す。たとえば、「AおよびBのうちの少なくとも1つ」を具陳する特許請求の範囲の文言は、A、B、またはAおよびBを意味する。別の例では、「A、B、およびCのうちの少なくとも1つ」を具陳する特許請求の範囲の文言は、A、B、C、もしくはAおよびB、もしくはAおよびC、もしくはBおよびC、もしくはAおよびBおよびCを意味する。文言セットの「うちの少なくとも1つ」および/またはセットのうちの「1つまたは複数」は、セットにリストされている項目にセットを制限しない。たとえば、「AおよびBのうちの少なくとも1つ」を具陳する請求項の文言は、A、B、またはAおよびBを意味することができ、さらに、AおよびBのセットにリストされていない項目を含むことができる。
【0163】
[0174] 本明細書において開示される実施形態に関連して説明される、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、または、これらの組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能に関して説明された。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本出願の範囲からの逸脱を引き起こすものとして解釈されるべきではない。
【0164】
[0175] 本明細書で説明される技法は、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せにおいても実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用を含む複数の用途を有する集積回路デバイスなど、様々なデバイスのいずれかにおいて実装され得る。モジュールまたは構成要素として説明されたいかなる特徴も、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、少なくとも部分的に、上記で説明された方法のうちの1つまたは複数を実施する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、FLASH(登録商標)メモリ、磁気または光学データ記憶媒体など、メモリまたはデータ記憶媒体を備え得る。技法は、追加または代替として、伝搬信号または電波など、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって少なくとも部分的に実現され得る。
【0165】
[0176] プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の均等な集積論理回路もしくはディスクリート論理回路などの1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明される技法のいずれかを実行するように構成され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明される技法の実装に適した任意の他の構造もしくは装置のいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明される機能は、符号化および復号のために構成された専用のソフトウェアモジュールもしくはハードウェアモジュール内で提供されるか、または組み合わされたビデオエンコーダデコーダ(CODEC)に組み込まれ得る。
【0166】
[0177] 例示的な本開示の態様は以下を含む。
【0167】
[0178] 態様1:画像処理のための装置であって、メモリと、メモリに結合された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサは、画像フレームバッファの所定の領域においてメタデータでマーキングされた既存のデータを画像フレームバッファに記憶することと、画像センサーによって受信された新しい画像フレームに対応する新しい画像フレームデータを受信することと、新しい画像フレームデータで画像フレームバッファ中の既存のデータの少なくとも一部を上書きすることと、メタデータが所定の領域に記憶されなくなることを示す画像フレームバッファの所定の領域の読取りに基づいて、新しい画像フレームデータが新しい画像フレームの少なくとも所定の量を含むと決定することと、新しい画像フレームの所定の量に対応する新しい画像フレームデータの少なくとも第1の部分を出力することとを行うように構成された、装置。
【0168】
[0179] 態様2:新しい画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、新しい画像フレームデータの第1の部分をエクステンデッドリアリティ(XR)アプリケーションに送るように構成される、態様1に記載の装置。
【0169】
[0180] 態様3:新しい画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、エクステンデッドリアリティ(XR)アプリケーションを使用して、新しい画像フレームデータの第1の部分を処理するように構成される、態様1または2に記載の装置。
【0170】
[0181] 態様4:新しい画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、新しい画像フレームデータの第1の部分を仮想コンテンツと合成するように構成される、態様1から3のいずれか1つに記載の装置。
【0171】
[0182] 態様5:新しい画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、新しい画像フレームデータの第1の部分の少なくとも一部をワーピングするように構成される、態様1から4のいずれか1つに記載の装置。
【0172】
[0183] 態様6:新しい画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、新しい画像フレームデータの第1の部分の少なくとも一部を歪めるように構成される、態様1から5のいずれか1つに記載の装置。
【0173】
[0184] 態様7:新しい画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、新しい画像フレームデータの第1の部分の少なくとも一部に対して歪み補償を実行するように構成される、態様1から6のいずれか1つに記載の装置。
【0174】
[0185] 態様8:新しい画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、新しい画像フレームデータの第1の部分をディスプレイバッファに記憶する、態様1から7のいずれか1つに記載の装置。
【0175】
[0186] 態様9:ディスプレイバッファをさらに備える、態様1から8のいずれか1つに記載の装置。
【0176】
[0187] 態様10:新しい画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、ディスプレイを使用して、新しい画像フレームデータの第1の部分を表示する、態様1から9のいずれか1つに記載の装置。
【0177】
[0188] 態様11:ディスプレイをさらに備える、態様1から10のいずれか1つに記載の装置。
【0178】
[0189] 態様12:新しい画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、新しい画像フレームデータの第1の部分をデバイスに送る、態様1から11のいずれか1つに記載の装置。
【0179】
[0190] 態様13:新しい画像フレームデータが少なくとも所定の量の新しい画像フレームを含むことを決定するために、1つまたは複数のプロセッサは、画像フレームバッファの所定の領域を読み取ることと、画像フレームバッファの所定の領域を読み取ることに基づいて、画像フレームバッファの所定の領域内のメタデータが上書きされたことを識別することとを行うように構成される、態様1から12のいずれか1つに記載の装置。
【0180】
[0191] 態様14:メタデータは、色のパターンを含む、態様1から13のいずれか1つに記載の装置。
【0181】
[0192] 態様15:メタデータは、新しい画像フレームに関連付けられたフレーム識別子を含む、態様1から14のいずれか1つに記載の装置。
【0182】
[0193] 態様16:メタデータは、画像フレームバッファに関連付けられた画像フレームバッファ識別子を含む、態様1から15のいずれか1つに記載の装置。
【0183】
[0194] 態様17:1つまたは複数のプロセッサは、画像フレームバッファの所定の領域において既存のデータをメタデータでマーキングするために既存のデータを修正するように構成される、態様1から16のいずれか1つに記載の装置。
【0184】
[0195] 態様18:モバイルデバイス、ワイヤレス通信デバイス、ヘッドマウントディスプレイ、およびカメラのうちの1つである、態様1から17のいずれか1つに記載の装置。
【0185】
[0196] 態様19:画像センサーをさらに備える、態様1から18のいずれか1つに記載の装置。
【0186】
[0197] 態様20:画像フレームバッファをさらに備える、態様1から19のいずれか1つに記載の装置。
【0187】
[0198] 態様21:既存のデータは、前の画像フレームからの前の画像フレームデータであり、前の画像フレームは、新しい画像フレームのキャプチャの前にキャプチャされる、態様1から20のいずれか1つに記載の装置。
【0188】
[0199] 態様22:メタデータはウォーターマークを含む、態様1から21のいずれか1つに記載の装置。
【0189】
[0200] 態様23:新しい画像フレームの所定の量は、新しい画像フレームの所定のパーセンテージを含む、態様1から22のいずれか1つに記載の装置。
【0190】
[0201] 態様24:新しい画像フレームの所定の量は、新しい画像フレームの所定の割合を含む、態様1から23のいずれか1つに記載の装置。
【0191】
[0202] 態様25:新しい画像フレームの所定の量は、新しい画像フレームの所定の数の行を含む、態様1から24のいずれか1つに記載の装置。
【0192】
[0203] 態様26:新しい画像フレームの所定の量は、新しい画像フレームの所定の数の列を含む、態様1から25のいずれか1つに記載の装置。
【0193】
[0204] 態様27:新しい画像フレームの所定の量は、新しい画像フレームの所定の数のピクセルを含む、態様1から26のいずれか1つに記載の装置。
【0194】
[0205] 態様28:新しい画像フレームデータの少なくとも第1の部分を出力するために、1つまたは複数のプロセッサは、新しい画像フレームを出力するように構成される、態様1から27のいずれか1つに記載の装置。
【0195】
[0206] 態様29:既存のデータは、画像フレームバッファの第2の所定の領域において第2のメタデータでマーキングされる、態様1から28のいずれか1つに記載の装置。
【0196】
[0207] 態様30:1つまたは複数のプロセッサは、第2のメタデータが第2の所定の領域に記憶されなくなることを示す、画像フレームバッファの第2の所定の領域の第2の読取りに基づいて、新しい画像フレームデータが新しい画像フレームの少なくとも第2の所定の量を含むと決定し、新しい画像フレームの第2の所定の量に対応する新しい画像フレームデータの少なくとも第2の部分を出力するように構成される、態様1から29のいずれか1つに記載の装置。
【0197】
[0208] 態様31:画像処理の方法であって、画像フレームバッファの所定の領域にウォーターマークでマーキングされた既存のデータを画像フレームバッファに記憶することと、新しい画像フレームに対応する新しい画像フレームデータを受信することと、新しい画像フレームデータが画像センサーによって受信される、新しい画像フレームデータで画像フレームバッファ内の既存のデータの少なくとも一部分を上書きすることと、メタデータがもはや所定の領域に記憶されていないことを示す画像フレームバッファの所定の領域の読取りに基づいて、新しい画像フレームデータが少なくとも所定の量の新しい画像フレームを含むと決定することと、所定の量の新しい画像フレームに対応する新しい画像フレームデータの少なくとも第1の部分を出力することとを備える方法。
【0198】
[0209] 態様32:態様2から30のいずれか1つをさらに備える、態様31の方法。
【0199】
[0210] 態様33:1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、画像フレームバッファの所定の領域においてメタデータでマーキングされた既存のデータを画像フレームバッファに記憶することと、新しい画像フレームに対応する新しい画像フレームデータを受信することと、新しい画像フレームデータが画像センサーによって受信される、新しい画像フレームデータで画像フレームバッファ中の既存のデータの少なくとも一部を上書きすることと、メタデータがもはや所定の領域に記憶されていないことを示す画像フレームバッファの所定の領域の読取りに基づいて、新しい画像フレームデータが少なくとも所定の量の新しい画像フレームを含むと決定することと、所定の量の新しい画像フレームに対応する新しい画像フレームデータの少なくとも第1の部分を出力することとを行わせる命令を記憶した非一時的コンピュータ可読媒体。
【0200】
[0211] 態様34:態様2から30のいずれか1つをさらに備える、態様33の非一時的コンピュータ可読媒体。
【0201】
[0212] 態様35:画像処理のための装置であって、画像フレームバッファの所定の領域においてウォーターマークでマーキングされた既存のデータを画像フレームバッファに記憶するための手段と、新しい画像フレームに対応する新しい画像フレームデータを受信するための手段と、新しい画像フレームデータが画像センサーによって受信される、新しい画像フレームデータで画像フレームバッファ内の既存のデータの少なくとも一部を上書きするための手段と、メタデータが所定の領域にもはや記憶されていないことを示す画像フレームバッファの所定の領域の読取りに基づいて、新しい画像フレームデータが新しい画像フレームの少なくとも所定の量を含むと決定するための手段と、新しい画像フレームの所定の量に対応する新しい画像フレームデータの少なくとも第1の部分を出力するための手段とを備える装置。
【0202】
[0213] 態様36:態様2から30のいずれか1つをさらに備える、態様35に記載の装置。
【0203】
[0214] 態様37:画像処理のための装置であって、メモリと、メモリに結合された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサは、画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを画像フレームバッファに記憶することと、画像フレームに対応する画像フレームデータを画像センサーから受信することと、画像フレームバッファ中の記憶されたデータの少なくとも一部を画像フレームデータで上書きすることと、所定の領域がメタデータとは異なる追加データを記憶していることを示す画像フレームバッファの所定の領域の読取りに基づいて、画像フレームデータが少なくとも所定の量の画像フレームを含むと決定することと、所定の量の画像フレームに対応する画像フレームデータの少なくとも第1の部分を出力することとを行うように構成される、装置。
【0204】
[0215] 態様38:追加データは、画像フレームデータの少なくとも一部分である、態様37に記載の装置。
【0205】
[0216] 態様39:画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、画像フレームデータの第1の部分を処理するように構成される、態様37または38に記載の装置。
【0206】
[0217] 態様40:画像フレームデータの第1の部分を処理するために、1つまたは複数のプロセッサは、歪み、歪み補償、およびワーピングのうちの少なくとも1つを使用して、画像フレームデータの第1の部分の少なくとも一部分を修正するように構成される、態様39に記載の装置。
【0207】
[0218] 態様41:画像フレームデータの第1の部分を処理するために、1つまたは複数のプロセッサは、画像フレームデータの第1の部分を仮想コンテンツと合成するように構成される、態様39または40に記載の装置。
【0208】
[0219] 態様42:1つまたは複数のプロセッサは、画像センサーの姿勢を識別することと、画像センサーの姿勢に基づいて仮想コンテンツをレンダリングすることとをさらに行うように構成される、態様41に記載の装置。
【0209】
[0220] 態様43:画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、ディスプレイを使用して、画像フレームデータの第1の部分を表示するように構成される、態様37から42のいずれか1つに記載の装置。
【0210】
[0221] 態様44:ディスプレイをさらに備える、態様43に記載の装置。
【0211】
[0222] 態様45:画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、画像フレームデータの第1の部分をディスプレイバッファに記憶するように構成される、態様37から44のいずれか1つに記載の装置。
【0212】
[0223] 態様46:ディスプレイバッファをさらに備える、態様45に記載の装置。
【0213】
[0224] 態様47:画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、通信トランシーバを使用して、画像フレームデータの第1の部分を受信側デバイスに送るように構成される、態様37から46のいずれか1つに記載の装置。
【0214】
[0225] 態様48:通信トランシーバをさらに備える、態様47に記載の装置。
【0215】
[0226] 態様49:画像フレームデータの第1の部分を出力するために、1つまたは複数のプロセッサは、画像フレームデータの少なくとも第1の部分に基づいて、1つまたは複数の画像統計を決定し、1つまたは複数の画像統計に基づいて、画像キャプチャ設定を決定するように構成される、態様37から48のいずれか1つに記載の装置。
【0216】
[0227] 態様50:1つまたは複数のプロセッサは、画像キャプチャ設定を画像キャプチャハードウェアに送ることと、画像キャプチャハードウェアは画像センサーを含む、第2の画像フレームに対応する2次画像フレームデータを画像センサーから受信することと、画像センサーは画像キャプチャ設定に基づいて第2の画像フレームをキャプチャする、をさらに行うように構成される、態様49に記載の装置。
【0217】
[0228] 態様51:画像キャプチャ設定は露出設定である、態様49または50に記載の装置。
【0218】
[0229] 態様52:1つまたは複数のプロセッサは、画像フレームバッファの所定の領域において、記憶されたデータをメタデータでマーキングすることをさらに行うように構成される、態様37から51のいずれか1つに記載の装置。
【0219】
[0230] 態様53:メタデータは、色のパターンを含む、態様37から52のいずれか1つに記載の装置。
【0220】
[0231] 態様54:メタデータは、画像フレームに関連付けられたフレーム識別子を含む、態様37から53のいずれか1つに記載の装置。
【0221】
[0232] 態様55:画像フレームデータが画像フレームの少なくとも所定の量を含むと決定するために、1つまたは複数のプロセッサは、画像フレームバッファの所定の領域を読み取ることと、画像フレームバッファの所定の領域の読取りに基づいて、読取りが、所定の領域がメタデータとは異なる追加データを記憶することを示すと決定することとを行うように構成される、態様37から54のいずれか1つに記載の装置。
【0222】
[0233] 態様56:記憶されたデータは、前の画像フレームからの前の画像フレームデータを含み、前の画像フレームは、画像フレームのキャプチャ前に画像センサーによってキャプチャされる、態様37から55のいずれか1つに記載の装置。
【0223】
[0234] 態様57:画像フレームデータの少なくとも第1の部分を出力するために、1つまたは複数のプロセッサは、画像フレームを出力するように構成される、態様37から56のいずれか1つに記載の装置。
【0224】
[0235] 態様58:記憶されたデータは、画像フレームバッファの第2の所定の領域において第2のメタデータでマーキングされる、態様37から57のいずれか1つに記載の装置。
【0225】
[0236] 態様59:1つまたは複数のプロセッサは、第2の所定の領域が第2のメタデータとは異なる2次追加データを記憶することを示す画像フレームバッファの第2の所定の領域の第2の読取りに基づいて、画像フレームデータが画像フレームの少なくとも第2の所定の量を含むことを決定することと、画像フレームの第2の所定の量に対応する画像フレームデータの少なくとも第2の部分を出力することとを行うように構成される、態様58に記載の装置。
【0226】
[0237] 態様60:1つまたは複数のプロセッサは、シーンのビューを求める要求を受信することと、要求の受信に応答して自動的にシーンからの光に画像センサーを露出させることとを行うように構成され、画像センサーから受信された画像フレームデータは、シーンからの光への画像センサーの露出に基づく、態様37から59のいずれか1つに記載の装置。
【0227】
[0238] 態様61:画像センサーをさらに備える、態様37から60のいずれか1つに記載の装置。
【0228】
[0239] 態様62:画像フレームバッファをさらに備える、態様37から61のいずれか1つに記載の装置。
【0229】
[0240] 態様63:ヘッドマウントディスプレイである、態様37から62のいずれか1つに記載の装置。
【0230】
[0241] 態様64:画像処理の方法であって、画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを画像フレームバッファに記憶することと、画像フレームに対応する画像フレームデータを画像センサーから受信することと、画像フレームバッファ内の記憶されたデータの少なくとも一部を画像フレームデータで上書きすることと、所定の領域がメタデータとは異なる追加データを記憶することを示す画像フレームバッファの所定の領域の読取りに基づいて、画像フレームデータが画像フレームの少なくとも所定の量を含むと決定することと、画像フレームの所定の量に対応する画像フレームデータの少なくとも第1の部分を出力することとを備える、方法。
【0231】
[0242] 態様65:追加データは、画像フレームデータの少なくとも一部分である、態様64に記載の方法。
【0232】
[0243] 態様67:画像フレームデータの第1の部分を出力することは、画像フレームデータの第1の部分を処理することを含む、態様64または65に記載の方法。
【0233】
[0244] 態様68:画像フレームデータの第1の部分を処理することは、歪み、歪み補償、およびワーピングのうちの少なくとも1つを使用して、画像フレームデータの第1の部分の少なくとも一部分を修正することを含む、態様67に記載の方法。
【0234】
[0245] 態様69:画像フレームデータの第1の部分を処理することは、画像フレームデータの第1の部分を仮想コンテンツと合成することを含む、態様67または68に記載の方法。
【0235】
[0246] 態様70:画像センサーの姿勢を識別することと、画像センサーの姿勢に基づいて、仮想コンテンツをレンダリングすることとをさらに含む、態様69に記載の方法。
【0236】
[0247] 態様71:画像フレームデータの第1の部分を出力することは、ディスプレイを使用して画像フレームデータの第1の部分を表示することを含む、態様64から70のいずれか1つに記載の方法。
【0237】
[0248] 態様72:ディスプレイを含むシステムによって実行される、態様71に記載の方法。
【0238】
[0249] 態様73:画像フレームデータの第1の部分を出力することは、画像フレームデータの第1の部分をディスプレイバッファに記憶することを含む、態様64から72のいずれか1つに記載の方法。
【0239】
[0250] 態様74:ディスプレイバッファを含むシステムによって実行される、態様73に記載の方法。
【0240】
[0251] 態様75:画像フレームデータの第1の部分を出力することは、通信トランシーバを使用して、画像フレームデータの第1の部分を受信側デバイスに送ることを含む、態様64から74のいずれか1つに記載の方法。
【0241】
[0252] 態様76:通信トランシーバを含むシステムによって実行される、態様75に記載の方法。
【0242】
[0253] 態様77:画像フレームデータの第1の部分を出力することは、画像フレームデータの少なくとも第1の部分に基づいて1つまたは複数の画像統計を決定することと、1つまたは複数の画像統計に基づいて画像キャプチャ設定を決定することとを含む、態様64から76のいずれか1つに記載の方法。
【0243】
[0254] 態様78:画像キャプチャ設定を画像キャプチャハードウェアに送ることと、ここにおいて、画像キャプチャハードウェアは画像センサーを含む、第2の画像フレームに対応する2次画像フレームデータを画像センサーから受信することと、ここにおいて、画像センサーは画像キャプチャ設定に基づいて第2の画像フレームをキャプチャする、をさらに備える、態様77に記載の方法。
【0244】
[0255] 態様79:画像キャプチャ設定は露出設定である、態様77または78に記載の方法。
【0245】
[0256] 態様80:画像フレームバッファの所定の領域において、記憶されたデータをメタデータでマーキングすることをさらに備える、態様64から79のいずれか1つに記載の方法。
【0246】
[0257] 態様81:メタデータは、色のパターンを含む、態様64から80のいずれか1つに記載の方法。
【0247】
[0258] 態様82:メタデータは、画像フレームに関連付けられたフレーム識別子を含む、態様64から81のいずれか1つに記載の方法。
【0248】
[0259] 態様83:画像フレームデータが画像フレームの少なくとも所定の量を含むと決定することは、画像フレームバッファの所定領域を読み取ることと、画像フレームバッファの所定領域の読取りに基づいて、読取りが、所定領域がメタデータとは異なる追加データを記憶することを示すと決定することと、を含む、態様64から82のいずれか1つに記載の方法。
【0249】
[0260] 態様84:記憶されたデータは、前の画像フレームからの前の画像フレームデータを含み、前の画像フレームは、画像フレームのキャプチャ前に画像センサーによってキャプチャされる、態様64から83のいずれか1つに記載の方法。
【0250】
[0261] 態様85:画像フレームデータの少なくとも第1の部分を出力することは、画像フレームを出力することを含む、態様64から84のいずれか1つに記載の方法。
【0251】
[0262] 態様86:記憶されたデータは、画像フレームバッファの第2の所定の領域において第2のメタデータでマーキングされる、態様64から85のいずれか1つに記載の方法。
【0252】
[0263] 態様87:第2の所定の領域が第2のメタデータとは異なる2次追加データを記憶することを示す画像フレームバッファの第2の所定の領域の第2の読取りに基づいて、画像フレームデータが画像フレームの少なくとも第2の所定の量を含むことを決定することと、画像フレームの第2の所定の量に対応する画像フレームデータの少なくとも第2の部分を出力することとをさらに備える、態様86に記載の方法。
【0253】
[0264] 態様88:シーンのビューを求める要求を受信することと、要求の受信に応答して、画像センサーをシーンからの光に自動的に露出させることとをさらに備え、画像センサーから受信された画像フレームデータが、シーンからの光への画像センサーの露出に基づく、態様64から87のいずれか1つに記載の方法。
【0254】
[0265] 態様89:画像センサーを含むシステムによって実行される、態様64から88のいずれか1つに記載の方法。
【0255】
[0266] 態様90:画像フレームバッファを含むシステムによって実行される、態様64から89のいずれか1つに記載の方法。
【0256】
[0267] 態様91:ヘッドマウントディスプレイによって実行される、態様64から90のいずれか1つに記載の方法。
【0257】
[0268] 態様92:1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、1つまたは複数のプロセッサは、画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを画像フレームバッファに記憶することと、画像フレームに対応する画像フレームデータを画像センサーから受信することと、画像フレームバッファ内の記憶されたデータの少なくとも一部を画像フレームデータで上書きすることと、所定の領域がメタデータとは異なる追加データを記憶することを示す画像フレームバッファの所定の領域の読取りに基づいて、画像フレームデータが画像フレームの少なくとも所定の量を含むと決定することと、画像フレームの所定の量に対応する画像フレームデータの少なくとも第1の部分を出力することとを行わせる命令を記憶した非一時的コンピュータ可読媒体。
【0258】
[0269] 態様93:態様38から63のいずれか1つ、および/または態様65から91のいずれか1つをさらに備える、態様92の非一時的コンピュータ可読媒体。
【0259】
[0270] 態様94:画像処理のための装置であって、画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを画像フレームバッファに記憶する手段と、画像フレームに対応する画像フレームデータを画像センサーから受信する手段と、画像フレームバッファ内の記憶されたデータの少なくとも一部を画像フレームデータで上書きする手段と、所定の領域がメタデータとは異なる追加データを記憶することを示す画像フレームバッファの所定の領域の読取りに基づいて、画像フレームデータが画像フレームの少なくとも所定の量を含むと決定する手段と、画像フレームの所定の量に対応する画像フレームデータの少なくとも第1の部分を出力する手段とを備える、装置。
【0260】
[0271] 態様95:態様38から63のいずれか1つ、および/または態様65から91のいずれか1つをさらに備える、態様94に記載の非一時的コンピュータ可読媒体。
【0261】
[0272] 態様96:画像処理のための装置であって、メモリと、メモリに結合された1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサは、画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを画像フレームバッファに記憶することと、シーンのビューを求める要求を受信することと、要求の受信に応答して自動的にシーンからの光に画像センサーを露出させることと、画像フレームに対応する画像フレームデータを画像センサーから受信することと、画像センサーから受信された画像フレームデータがシーンからの光への画像センサーの露出に基づく、画像フレームバッファ内の記憶されたデータの少なくとも一部を画像フレームデータで上書きすることと、所定の領域がメタデータとは異なる追加データを記憶していることを示す所定の領域の読取りに基づいて、画像フレームデータが少なくとも所定の量の画像フレームを含むと決定することと、画像フレームの所定の量に対応する画像フレームデータの少なくとも第1の部分を出力することとを行うように構成される、装置。
【0262】
[0273] 態様97:態様38から63のいずれか1つをさらに備える、態様96に記載の装置。
【0263】
[0274] 態様98:画像処理の方法であって、画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを画像フレームバッファに記憶することと、シーンのビューを求める要求を受信することと、要求の受信に応答して自動的にシーンからの光に画像センサーを露出することと、画像フレームに対応する画像フレームデータを画像センサーから受信することと、画像センサーから受信された画像フレームデータは、シーンからの光への画像センサーの露出に基づく、画像フレームバッファ内の記憶されたデータの少なくとも一部を画像フレームデータで上書きすることと、所定の領域がメタデータとは異なる追加データを記憶することを示す画像フレームバッファの所定の領域の読取りに基づいて、画像フレームデータが少なくとも所定の量の画像フレームを含むと決定することと、画像フレームの所定の量に対応する画像フレームデータの少なくとも第1の部分を出力することとを備える、方法。
【0264】
[0275] 態様99:態様65から91のいずれか1つをさらに備える、態様98に記載の方法。
【0265】
[0276] 態様100:1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを画像フレームバッファに記憶することと、シーンのビューを求める要求を受信することと、要求の受信に応答して自動的にシーンからの光に画像センサーを露出することと、画像フレームに対応する画像フレームデータを画像センサーから受信することと、画像センサーから受信された画像フレームデータがシーンからの光への画像センサーの露出に基づく、画像フレームバッファ内の記憶されたデータのうちの少なくとも一部を画像フレームデータで上書きすることと、所定の領域がメタデータとは異なる追加データを記憶していることを示す画像フレームバッファの所定の領域の読取りに基づいて、画像フレームデータが画像フレームの少なくとも所定の量を含むと決定することと、画像フレームの所定の量に対応する画像フレームデータの少なくとも第1の部分を出力することとを行わせる命令を記憶した非一時的コンピュータ可読媒体。
【0266】
[0277] 態様101:態様38から63のいずれか1つ、および/または態様65から91のいずれか1つをさらに備える、態様100の非一時的コンピュータ可読媒体。
【0267】
[0278] 態様102:画像処理のための装置であって、画像フレームバッファの所定の領域においてメタデータでマーキングされたデータを画像フレームバッファに記憶する手段と、シーンのビューを求める要求を受信する手段と、要求の受信に応答して自動的にシーンからの光に画像センサーを露出する手段と、画像フレームに対応する画像フレームデータを画像センサーから受信する手段と、画像センサーから受信された画像フレームデータは、シーンからの光への画像センサーの露出に基づく、画像フレームバッファ内の記憶されたデータの少なくとも一部を画像フレームデータで上書きする手段と、所定の領域がメタデータとは異なる追加データを記憶することを示す画像フレームバッファの所定の領域の読取りに基づいて、画像フレームデータが画像フレームの少なくとも所定の量を含むと決定する手段と、画像フレームの所定の量に対応する画像フレームデータの少なくとも第1の部分を出力する手段とを備える、方法。
【0268】
[0279] 態様103:態様38から63のいずれか1つ、および/または態様65から91のいずれか1つをさらに備える、態様102に記載の装置。
図1
図2
図3
図4
図5
図6
図7
図8A
図8B
図9A
図9B
図10
【国際調査報告】