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

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

▶ エヌビディア コーポレーションの特許一覧

特許7481790強化された高ダイナミック・レンジ画像化及びトーン・マッピング
<>
  • 特許-強化された高ダイナミック・レンジ画像化及びトーン・マッピング 図1
  • 特許-強化された高ダイナミック・レンジ画像化及びトーン・マッピング 図2A
  • 特許-強化された高ダイナミック・レンジ画像化及びトーン・マッピング 図2B
  • 特許-強化された高ダイナミック・レンジ画像化及びトーン・マッピング 図3
  • 特許-強化された高ダイナミック・レンジ画像化及びトーン・マッピング 図4
  • 特許-強化された高ダイナミック・レンジ画像化及びトーン・マッピング 図5
  • 特許-強化された高ダイナミック・レンジ画像化及びトーン・マッピング 図6A
  • 特許-強化された高ダイナミック・レンジ画像化及びトーン・マッピング 図6B
  • 特許-強化された高ダイナミック・レンジ画像化及びトーン・マッピング 図6C
  • 特許-強化された高ダイナミック・レンジ画像化及びトーン・マッピング 図6D
  • 特許-強化された高ダイナミック・レンジ画像化及びトーン・マッピング 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-01
(45)【発行日】2024-05-13
(54)【発明の名称】強化された高ダイナミック・レンジ画像化及びトーン・マッピング
(51)【国際特許分類】
   G06T 5/90 20240101AFI20240502BHJP
   H04N 23/76 20230101ALI20240502BHJP
【FI】
G06T5/90
H04N23/76
【請求項の数】 22
【外国語出願】
(21)【出願番号】P 2019216105
(22)【出願日】2019-11-29
(65)【公開番号】P2021022354
(43)【公開日】2021-02-18
【審査請求日】2022-09-22
(31)【優先権主張番号】16/526,902
(32)【優先日】2019-07-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】501450960
【氏名又は名称】エヌビディア コーポレーション
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】イーニン デン
(72)【発明者】
【氏名】エリック デュジャルダン
(72)【発明者】
【氏名】ハミドレザ ミルザエイ ドマビ
(72)【発明者】
【氏名】ソン ヒョン ファン
【審査官】▲高▼橋 真之
(56)【参考文献】
【文献】国際公開第2018/009828(WO,A1)
【文献】特開2016-076908(JP,A)
【文献】特開2006-129113(JP,A)
【文献】佐田 歩美, 外3名,"HDR画像のトーンマッピング処理におけるコントラスト強調の効果",電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2017年10月05日,Vol.117, No.235,p.1-6
(58)【調査した分野】(Int.Cl.,DB名)
G06T 5/90
H04N 23/70 -23/76
H04N 5/222- 5/257
(57)【特許請求の範囲】
【請求項1】
少なくとも第1の画像データによって定義された第1の画素値に基づいて複数のトーン制御ポイントを決定するステップと、
前記複数のトーン制御ポイントの第1のトーン制御ポイントに少なくとも基づいて、トーン・マッピング関数の変化の割合を計算するステップと、
前記トーン・マッピング関数を第2のトーン制御ポイントにおける変化の割合を制約することに少なくとも基づいて、トーン・マッピング関数の曲線を前記複数のトーン制御ポイントの第2のトーン制御ポイントにフィッティングするステップと、
前記トーン・マッピング関数を用いて、第2の画素値を定義する第2の画像データを生成するステップと、
を含む、方法。
【請求項2】
前記変化の割合は、前記複数のトーン制御ポイントの前記第1のトーン制御ポイント及び第3の制御ポイントに対応し、前記曲線は、前記変化の割合を用いて前記第2のトーン制御ポイント及び前記第3の制御ポイントにフィッティングする、請求項1記載の方法。
【請求項3】
前記第1の画像データは高ダイナミック・レンジ(HDR)画像データからなり、前記第2の画像データの生成は、前記トーン・マッピング関数を用いて前記HDR画像データを低ダイナミック・レンジ画像データに変換することを含む、請求項1に記載の方法。
【請求項4】
前記トーン・マッピング関数は、第1の入力値を、前記第1のトーン制御ポイントの値とは異なる第2の出力値にマッピングする、請求項1に記載の方法。
【請求項5】
前記第1のトーン制御ポイントは、前記第1の画像データの任意の色値に対応する第2のトーン制御ポイントに少なくとも基づいて計算されることを特徴とする請求項1記載の方法。
【請求項6】
前記第1のトーン制御ポイントは、前記トーン・マッピング関数の抑制閾値を定義する、請求項1に記載の方法。
【請求項7】
前記第1のトーン制御ポイントは、前記トーン・マッピング関数のフレア抑制閾値を定義する、請求項1に記載の方法。
【請求項8】
前記曲線は、前記トーン・マッピング関数のハイライト圧縮閾値を定義する前記トーン制御ポイントの高トーン・ポイントを通過する、請求項1記載の方法。
【請求項9】
前記第1の画像データは、車両に対応する少なくとも1つのカメラ・デバイスから取得されたものであり、前記第2の画像データは、前記車両に対応する1つ以上の自律的な制御動作を実行するための入力として使用される、請求項1に記載の方法。
【請求項10】
処理を実行する1つ以上の処理ユニットを備えるシステムにおいて、
前記処理は、少なくとも1つ以上の第1の画像の色情報に基づいて複数のトーン制御ポイントを決定するステップと、
少なくとも前記複数のトーン制御ポイントの第1のトーン制御ポイントに基づいてゲイン値を計算するステップと、
少なくとも前記ゲイン値を用いて第2のトーン制御点におけるトーン・マッピング関数の変化の割合を制約することに基づいて、前記複数のトーン制御ポイントの第2のトーン制御点に前記トーン・マッピング関数をフィッティングするステップと、
前記トーン・マッピング関数を用いて、1つ以上の第2の画像を表す画像データを生成するステップと、
を含む、システム。
【請求項11】
前記ゲイン値は、前記変化の割合を表す、請求項10に記載のシステム。
【請求項12】
前記1つ以上の第1の画像は、1つ以上の高ダイナミック・レンジ(HDR)画像を含み、前記画像データを生成するステップは、前記トーン・マッピング関数を使用して、前記1つ以上のHDR画像を1つ以上の低ダイナミック・レンジ画像に変換することを含む、請求項10に記載のシステム。
【請求項13】
前記ゲイン値は、前記複数のトーン制御ポイントのうち、前記第1のトーン制御ポイントと第3のトーン制御ポイントとを通る直線に対応する、請求項10に記載のシステム。
【請求項14】
前記第1のトーン制御ポイントは、前記トーン・マッピング関数のフレア抑制閾値を表す、請求項10に記載のシステム。
【請求項15】
前記トーン・マッピング関数は、前記第1のトーン制御ポイントを通過することなく、前記複数のトーン制御ポイントを通過するように制約されたグローバル・トーン曲線を定義する、請求項10に記載のシステム。
【請求項16】
前記システムは自律型車両に組み込まれ、当該自律型車両は、前記1つ以上の第1の画像の少なくとも1つを生成する画像センサを含み、前記画像データの少なくとも一部は、前記自律型車両を制御するために使用される出力を生成する1つ以上のニューラル・ネットワークへの入力として使用される、請求項10に記載のシステム。
【請求項17】
1つ以上の回路を含むプロセッサであって、前記1つ以上の回路は、
1つまたは複数の第1の画像の色情報によって定義されるトーン制御ポイントのセットの第1のトーン制御ポイントに少なくとも基づいて、ゲイン値を決定することと、
少なくとも、第2のトーン制御ポイントにおけるトーン・マッピング関数の傾斜をゲイン値に対応するように制約することに基づいて、前記トーン制御ポイントのセットの第2のトーン制御ポイントにトーン・マッピング関数をフィッティングすることと、
前記トーン・マッピング関数を用いて1つ以上の第2の画像を生成すること
とを含む、プロセッサ。
【請求項18】
前記1つ以上の回路は、少なくとも前記1つ以上の第1の画像における中トーン・ポイントの色の値に基づいて前記第1のトーン制御ポイントを計算する、請求項17に記載のプロセッサ。
【請求項19】
前記第1のトーン制御ポイントは、抑制閾値のポイントを含み、前記第2のトーン制御ポイントは、中トーン制御ポイントを含み、前記トーン制御ポイントのセットは、低トーン制御ポイント及び高トーン制御ポイントを更に含み、前記傾斜は、前記低トーン制御ポイント、前記中トーン制御ポイント及び前記高トーン制御ポイントを含む曲線を定義する、請求項17に記載のプロセッサ。
【請求項20】
前記トーン・マッピング関数の傾斜を制約することは、前記ゲイン値を用いて前記トーン制御ポイントの集合にパラメータ関数のパラメータをフィッティングすることを含む、請求項17に記載のプロセッサ。
【請求項21】
前記ゲイン値は、前記第2のトーン制御ポイントにおける傾斜を示す、請求項17に記載のプロセッサ。
【請求項22】
前記ゲイン値は、前記トーン制御ポイントの集合の前記第1のトーン制御ポイントと前記第2のトーン制御ポイントとを通る直線に対応し、当該直線は、前記トーン・マッピング関数とは別個である、請求項17記載のプロセッサ。
【発明の詳細な説明】
【背景技術】
【0001】
高ダイナミック・レンジ画像化(HDRI:High-Dynamic-Range Imaging)は、高ダイナミック・レンジ(HDR:High Dynamic Range)の画像データを生成する技法を含む。すなわち、HDRIは、最小可能画素値(たとえば、最小可能光度値)に対する最大可能画素値(たとえば、最大可能光度値)の比率の増加をもたらす。より小さい光度値の画素は、エンコードされた画像のより暗い(たとえば、より黒い)領域としてレンダリングされ、一方、より大きい光度値の画素は、画像のより明るい(たとえば、より白い)領域としてレンダリングされる。最小光度値に対する最大光度値の比率の向上により、また増加したダイナミック・レンジ(DR)をレンダリングするための十分な能力を有するデバイスで表示されるとき、HDR画像は、さらなる細部及びコントラストを提供することができ、それ故に、視聴者にはより現実的で自然に見え得る。たとえば、適切にレンダリングされるとき、HDR画像データ内にエンコードされたシーンの画像は、シーンを直接見ているときに人が実際に見るであろうものにより近く見え得る、又は他の方法でより魅力的な見た目になり得る。しかしながら、従来のディスプレイ及びプリンタなどの多数のデバイスは、HDR画像データをレンダリングすることを可能にされていない。したがって、HDR画像データは、HDR画像データをより低いダイナミック・レンジ画像データに変換するようにトーン・マッピングされ得る。
【発明の概要】
【発明が解決しようとする課題】
【0002】
HDR画像データのトーン・マッピングの従来の方法は、HDR画像データをキャプチャするときにカメラの自動露出(AE:Auto Exposure)設定は適切に構成されていると仮定し得る。この仮定は、一部の状況において失敗であることがあり、劣化したトーン・マップ画像をもたらす。さらに、HDR画像及び/又はトーン・マッピングされたHDR画像データによってエンコードされた画像の輝度を制御するとき、いくつかの従来の方法は、デジタル・ゲイン関数をHDR画像データに適用することがある。デジタル・ゲイン関数は、「色褪せた」、より現実的でない、又は他の方法で見た目に魅力的でないように見えるようにHDR画像及び/又はトーン・マッピングされたHDR画像をレンダリングすることなどによってHDRIに関連する視覚的利益の多くを損なわせることがある。
【課題を解決するための手段】
【0003】
本開示の実施例は、高ダイナミック・レンジ(HDR)画像データのトーン・マッピング、並びにトーン・マッピングされたHDR画像データの輝度の制御に向けられている。トーン・マッピングされたHDR画像データは、画素値の圧縮、たとえば、トーン・マッピングされたHDR画像データへのガンマ圧縮関数の適用を介して標準ダイナミック・レンジ(SDR:Standard Dynamic Range)画像データ又は低ダイナミック・レンジ(LDR:Low Dynamic Range)に変形され得る。
【0004】
AE設定及びデジタル・ゲイン関数の適切な構成に頼るのではなくて、様々な実施例は、HDR画像データのためのトーン・マッピング関数を生成することによって、HDR画像データの画像輝度を制御することができる。HDR画像データに適用されるとき、トーン変形されたHDR画像データが、AE設定の適切な構成に頼らずに、画像化されたシーンの照明状態に一致する画像輝度をエンコードすることができるように、トーン・マッピング関数は、HDR画像データのトーン(たとえば、輝度)をマップする。トーン・マッピング関数はまた、HDR画像化による視覚的アーティファクトを最小限に抑えることができる(たとえば、ハイライトのフレア抑制及び圧縮)。トーン・マッピングされるとき、HDR画像データは、HDR画素値の最小有効ビット(LSB:Least-Significant-Bit)のフィルタリングを介してSDR又はLDR画像データに圧縮され得る。
【0005】
1個の非限定的実施例は、ソース画像データのキャプチャ及び/又は受信を含む。ソース画像データは、HDR画像データでもよく、ソース画像を表す及び/又はエンコードすることができる。トーン制御ポイントは、ソース画像データのソース画素値に基づいて決定される。決定されたトーン制御ポイントは、低トーン・ポイント、中トーン・ポイント、及び高トーン・ポイントを含み得る。一部の実施例では、トーン制御ポイントは、フレア抑制ポイントを追加で含み得る。トーン・マッピング関数は、トーン制御ポイントの少なくとも一部に基づいて決定され得る。たとえば、トーン・マッピング関数は、曲線(たとえば、グローバル・トーン曲線)を定義するパラメータ関数でもよく、関数のパラメータは、曲線が低トーン・ポイント、中トーン・ポイント、及び高トーン・ポイントを通過する(又は含む)ように制約されるように、適合させられる。一部の実施例では、曲線はさらに、追加で決定されたポイントの少なくとも一部を通過するように制約される。
【0006】
少なくとも1個の実施例では、トーン・マッピング関数の決定はさらに、ゲイン値に基づき得る。ゲイン値は、中トーン・ポイントと、フレア抑制ポイントなどのしかしこれに限定されない、トーン制御ポイントのうちの他の少なくとも1個とに基づいて決定され得る。ゲイン値は、中トーン・ポイント及びフレア抑制ポイントを通過するゲイン線の傾斜と等しくなるように決定され得る。中トーン・ポイントの構成要素のうちの1個において評価された、関数の変化の派生的及び/又は瞬間的割合が、ゲイン値と少なくともほぼ等しいように、トーン・マッピング関数のフィッティングは、さらに制約され得る。対象画像データ(たとえば、より低いダイナミック・レンジ画像データ)は、トーン・マッピング関数の適用を介して、ソース画像をエンコードするソース画像データ、及び/又は後続のフレームをエンコードするソース画像データを変形することによって、生成され得る。対象画像データは、ソース画像データの画素値へのトーン・マッピング関数の適用によって定義される、対象画素値を含み得る。
【0007】
高ダイナミック・レンジ画像データのトーン・マッピング及び画像の輝度の制御のための本システム及び方法について、添付の図面を参照して、以下に詳しく説明する。
【図面の簡単な説明】
【0008】
図1】本開示のいくつかの実施例による、高ダイナミック・レンジ画像化システムの概略図である。
図2A】ソース画像データの画素値に対応する第1の次元の第1の基底ベクトルと、対象画像データの画素値に対応する第2の次元の第2の基底ベクトルとによって張られた2D空間に組み込まれた低トーン、中トーン、高トーン、及びフレア抑制制御ポイントを示す図である。
図2B】様々な実施例による、トーン・マッピング関数のプロットの非限定的実施例を示す図である。
図3】本開示のいくつかの実施例による、高ダイナミック・レンジ画像データのトーン・マッピングのための方法を示す流れ図である。
図4】本開示のいくつかの実施例による、より高いダイナミック・レンジ画像データからより低いダイナミック・レンジ画像データを生成するための方法を示す流れ図である。
図5】本開示のいくつかの実施例による、トーン・マッピングの動作を分散させる方法を示す流れ図である。
図6A】本開示のいくつかの実施例による、例示的自律型車両のイラストレーションである。
図6B】本開示のいくつかの実施例による、図6Aの例示的自律型車両のカメラ位置及び視野の実例である。
図6C】本開示のいくつかの実施例による、図6Aの例示的自律型車両の例示的システム・アーキテクチャのブロック図である。
図6D】本開示のいくつかの実施例による、クラウドベースのサーバと図6Aの例示的自律型車両との間の通信のシステム図である。
図7】本開示のいくつかの実施例の実装において使用するのに適した例示的コンピューティング環境のブロック図である。
【発明を実施するための形態】
【0009】
高ダイナミック・レンジ画像化(HDRI)に関連するシステム及び方法が開示される。より具体的には、本明細書に記載の実施例は、高ダイナミック・レンジ(HDR)画像データのトーン・マッピング、並びにHDR画像データによってエンコードされた画像及び/又はトーン・マッピングされた画像データによってエンコードされた画像の輝度の制御に関する。
【0010】
トーン・マッピングされたHDR画像データは、画素値の圧縮、たとえば、トーン・マッピングされたHDR画像データへのガンマ圧縮関数の適用、を介して標準ダイナミック・レンジ(SDR)画像データ又は低ダイナミック・レンジ(LDR)に変形され得る。1個の非限定的実施例は、ソース画像データのキャプチャ及び/又は受信を含む。ソース画像データは、HDR画像データでもよく、ソース画像を表す及び/又はエンコードすることができる。トーン制御ポイントは、ソース画像データのソース画素値に基づいて決定される。決定されたトーン制御ポイントは、低トーン・ポイント、中トーン・ポイント、及び/又は高トーン・ポイントを含み得る。一部の実施例では、トーン制御ポイントは、フレア抑制ポイントを追加で含み得る。少なくとも1個の実施例では、追加のトーン制御ポイントが決定される。
【0011】
トーン・マッピング関数は、制御ポイントの少なくとも一部に基づいて決定され得る。たとえば、トーン・マッピング関数は、曲線(たとえば、グローバル・トーン曲線)を定義するパラメータ関数でもよい。関数のパラメータは、曲線が低トーン・ポイント、中トーン・ポイント、及び高トーン・ポイントを通過する(又は含む)ように制約されるように、適合され得る。一部の実施例では、曲線は、追加で決定されたポイントの少なくとも一部を通過するようにさらに制約される。
【0012】
少なくとも1個の実施例では、トーン・マッピング関数の決定は、ゲイン値にさらに基づき得る。ゲイン値は、中トーン・ポイントと、フレア抑制ポイントなどの、しかしこれに限定されない、トーン制御ポイントのうちの少なくとも他の1個とに基づいて、決定され得る。ゲイン値は、中トーン・ポイント及びフレア抑制ポイントを通過するゲイン線の傾斜と等しくなるように決定され得る。中トーン・ポイントの構成要素のうちの1個で評価された、関数の変化の派生的及び/又は瞬間的割合がゲイン値と少なくともほぼ等しいように、トーン・マッピング関数のフィッティングはさらに制約され得る。対象画像データは、ソース画像データへのトーン・マッピング関数の適用を介して、ソース画像データを変形することによって、生成され得る。対象画像データは、ソース画像データの画素値へのトーン・マッピング関数の適用によって定義される、対象画素値を含み得る。
【0013】
従来の手法とは対照的に、様々な実施例は、AE設定に頼らずにHDR画像データのトーン・マッピングを可能にする。以下で説明するように、トーン・マッピングされた画像は、従来の手法を介してトーン・マッピングされた画像と比べて、さらなる細部及びコントラストを有することができる。さらに、様々な実施例は、デジタル・ゲイン関数の適用なしに、HDR画像及び/又はトーン・マッピングされた画像の全体的画像輝度の制御を可能にする。それ故に、様々な実施例によって生成された画像は、従来の生成された画像ではそうなったであろう状況において「色褪せて」見えないことが可能である。追加で、実施例は、フレア(たとえば、画像データにおける正のブラック・ポイント又は黒レベル減算におけるエラー)を上手く抑制する、並びにHDR画像データ内のハイライト(たとえば、有意の光度値を有する画素)を圧縮することができる。様々な実施例は、HDR画像データの増加した細部及びコントラストをエンコードする必要不可欠な情報の多くを保存しつつ、HDR画像データを標準ダイナミック・レンジ(SDR)又は低ダイナミック・レンジ(LDR)画像データ内に圧縮するための強化された方法を追加で提供する。
【0014】
様々な実施例のいくつかのHDRI技法は、複数のSDR画像のうちの各画像の別個の露出設定又は期間を有する、同シーンの複数のキャプチャされたSDR画像の結合又は混合を含む。(HDR画像データによってエンコードされた)HDR画像は、複数のSDR画像の画素値によって生成され得る。たとえば、画像化されたシーンのより暗い領域のHDR画像の画素値の決定は、より長い露出時間を有するSDR画像の対応する画素値によって支配され得る。より長い露出時間によって生成されたが画素値の使用は、シーンのより暗い領域においてより大きな細部及びコントラストのキャプチャを可能にし得る。シーンのより明るい領域のHDR画素値の決定は、より短い露出時間でキャプチャされたSDR画像の対応する画素値によって支配され得る。より短い露出時間によって生成された画素値の使用は、シーンのより明るい又はより輝く領域での「ウォッシュアウト」又は露出過度効果を防ぐことができる。他の実施例では、HDR画像データは、単一の画像から生成することができ、より暗い領域に対応する画像センサ(たとえば、カメラ画素)は、より長い露出期間にわたりキャプチャされ、より明るい領域に対応する画像センサは、より短い露出期間にわたりキャプチャされる。
【0015】
前述のように、従来のHDRカメラ及びシステムは、ユーザが彼らのカメラのAE設定を適切に構成することに依存する。そのようなAE設定は、自動露出ブラケティング(AEB: Auto Exposure Bracketing)設定及び/又は様々なAEモード(たとえば、夜及び昼AEモード)を含み得る。これらのAE設定は比較的静的であり、ユーザが彼らの現在の環境に合うように設定を変更することはめったにない。さらに、ほんのわずかな予め構成されたモードが、ユーザに利用可能であることがあり(たとえば、昼モード又は夜モード)、それらがいずれも現在の環境と一致しないことがある。たとえば、従来のHDRカメラは、晴れた日、曇りの日、又はそれらの間の状態のために別個のAEモードを提供しないことがある。
【0016】
AEモードが、シーンの現在の照明状態と一致する露出設定を適切に提供しないとき、HDR画像の全体的輝度は、シーンの照明状態を現実に反映しないことがある。たとえば、HDR画像は、シーンの現在の照明状態が提供するように明るく照らされたシーンをレンダリングしないことがある。この照明の不一致を補完するために、従来のHDRカメラ及びシステムは、しばしば、HDR画素値の光度を調整する又は引き上げるためにデジタル・ゲイン関数を使用する。様々な照明状態及び/又はAE設定の下で、画素に適用されるゲイン値はかなりになり得る。そのような大きなゲインは、しばしば、HDR画像のより明るい領域を満たし及び/又はクリップし、レンダリングされたときにこれらの領域を色褪せて又は露出過度に見えるようにすることがある。それ故に、これらの様々なシナリオでは、従来のHDRカメラ及びシステムは、ユーザがHDRIを介してキャプチャすることを意図していた増加した細部及びコントラストを達成することに失敗する。
【0017】
従来のHDRカメラ及びシステムは、付加的制限と関連付けられる。たとえば、SDRデバイスが従来のHDR画像データをレンダリングするとき、従来のHDR画像データの増加した細部及びコントラストの多くは失われ得る。増加したDRをエンコードするために、HDR画像データは、SDR画像の深度よりも大きな深度の画素を含み得る。たとえば、SDR画像データの画素深度は、24ビット(1カラー・チャネルごとに8ビット)でもよいが、いくらかのHDR画像データの画素深度は、96ビット(1カラー・チャネルごとに32ビット)以上でもよい。多数の表示デバイス、データ・ストリーム、記憶デバイス、及びプリンタ(たとえば、SDRデバイス)は、そのような深度の画素を表示、ストリーミング、記憶、及び/又は印刷することができないので、HDR画像データは、しばしば、より浅い画素深度に変形される。それを行うために、トーン・マッピングが、SDRデバイスにより適し得るSDR画素値にHDR画素値を変形(又はマップ)するために使用され得る。たとえば、トーン・マッピングは、HDR画像データをSDRの、又はさらに低いダイナミック・レンジ(LDR)の、画像データに変形するために使用され得る。後述するように、従来のトーン・マッピングは、HDR画像の細部及びコントラストの有意の損失をもたらし得る。
【0018】
従来のトーン・マッピングは、HDR画像データの損失の多い圧縮をもたらすことがあり、多数のシナリオにおいて、HDR画像と比較して、より低いダイナミック・レンジ画像又は標準ダイナミック・レンジ画像の品質を有意に下げることがある。より具体的には、従来のトーン・マッピングは、HDR画像が視聴者に自然に及び現実的に見えることを可能にするHDR画像データの必要不可欠な情報を保存する能力において制限され得る。それ故に、従来のトーン・マッピングを介して、増加した細部及びコントラストをレンダリングする必要不可欠なHDR情報の多くが、圧縮手続きにおいて失われ得る。
【0019】
特に、前述のAE設定及び/又はモードがシーンの現在の照明状態に不適切なとき、従来のトーン・マッピングは、HDR画像データの相当量の必要不可欠な情報を保存しないことがある。たとえば、薄暗く照らされたシーンを画像化するとき、ユーザは、昼モードから夜モードに従来のHDRカメラを移行するのに失敗することがある。HDR画像データは、画像化されたシーンのより暗い領域の細部及びコントラストの多くをエンコードすることに失敗するので、HDR画像は、露光不足に見えることがある。結果として、露光不足のHDR画像データからSDR(又はLDR)画像を生成するとき、SDR画像の露光不足の様子は、さらに明らかになり得る。
【0020】
AE設定が現在の照明状態に適しているときでも、照明状態は、短い時間スパンにわたり動的でもよいが、AE設定はこれらの短い時間スパンにわたり一定に保持される。従来のトーン・マッピングは、フレーム・レベルで適用されるので、従来のマッピングは、動的照明状態を容易に説明することはできないことがある。たとえば、HDRビデオ画像データのキャプチャ中に、比較的明るい物体(たとえば、非常に反射する物体又は光源を含む物体)がシーンに入ることがあり、現在のAE設定が、明るい物体の導入には不適切なことがある。従来のトーン・マッピングは、露出過度として、動的な明るく照らされた物体をレンダリングすることがあり、ビデオ画像データの全体的輝度は変動することがある。
【0021】
AE設定及びデジタル・ゲインの適切な構成に頼るのではなくて、様々な実施例は、HDR画像データのためのトーン・マッピング関数を生成することによって、輝度を制御することができる。いくつかの非限定的実施例では、トーン・マッピング関数は、グローバル・トーン・マッピング(GTM:Global Tone Mapping)関数及び/又はグローバル・トーン曲線(GTC:Global Tone Curve)でもよい。トーン・マッピング関数は、HDR画像に基づいて、動的に及び/又はグローバルに決定され得る。そのようなものとして、トーン・マッピング関数は、HDR画像データを動的に及びグローバルにトーン・マッピングするために使用され得る。HDR画像データに適用されるとき、トーン変形されたHDR画像データが、AE設定の適切な構成に頼らずに、画像化されたシーンの照明状態に一致する画像輝度をエンコードすることができるように、トーン・マッピング関数は、HDR画像データのトーン(たとえば、輝度)をマップすることができる。トーン・マッピング関数はまた、HDR画像化による視覚的アーティファクトを最小限に抑えることができる(たとえば、ハイライトのフレア抑制及び圧縮)。
【0022】
トーン・マッピングされるとき、HDR画像データは、HDR画素値の最小有効ビット(LSB)のフィルタリングを介してSDR又はLDR画像データに圧縮され得る。一部の実施例では、画素深度低減の前に、トーン・マッピングされたHDR画像データは、ガンマ圧縮関数を介してカラー圧縮され得る。たとえば、HDR画像データは、固定の(又は少なくとも比較的固定の)露出設定を介してキャプチャされ得、キャプチャされたHDR画像データは、ソース画像データと称され得る。トーン・マッピング関数は、ソース画像データの画素値の分析に基づいて動的に決定され得る。トーン・マッピング関数は、ソース画像データのソース画素値を対象画像データの対象画素値にマップする非線形関数でもよい。非線形の実施例については、非線形のトーン・マッピング関数及び/又はGTM関数が、グローバル・トーン曲線(GTC)として2D座標内にプロットされ得る。トーン・マッピング関数が、従来のAE設定及び/又はデジタル・ゲインに頼らずに、対象画像データの輝度(又はトーン)を本質的に制御するために使用され得る。
【0023】
トーン・マッピング関数を生成するために、複数の制御ポイントは、ソース画像データの動的分析に基づいて、決定され得る。制御ポイントは、ソース及び対象画素値の範囲によって張られた平面において定義され得る。一部の実施例では、制御ポイントは、ソース画像データの関心領域(ROI:region-of-interest)に基づいて定義され得る。トーン・マッピング関数は、ソース画像画素の値と対象画像画素の値との間の1対1の非線形のマッピングを定義することができる。それ故に、トーン・マッピング関数は、ソース/対象平面において曲線を定義する(又は、少なくとも、その数値近似を評価する)ことができる。曲線は、曲線、たとえば、変化する傾斜を有する複数の区分的線形セグメント、の近似値でもよい。すなわち、トーン・マッピング関数は、スプライン関数でもよい。スプライン関数は、1より大きい次数の多項式を含み得る。一部の実施例では、トーン・マッピング関数は、1対1の線形マッピング関数でもよい。平面内の制御ポイントは、トーン・マッピング関数の1個又は複数の制約を定義することができる。一部の実施例では、パラメータ化されたトーン・マッピング関数は、1個又は複数の制約に基づいて、適合することができる(たとえば、トーン・マッピングを定義するパラメータが、差分又は費用関数を最小限に抑えることによって選択され得る)。より具体的には、費用関数は、1個又は複数の制約によって定義され得る。たとえば、任意の次数の多項式セグメントを有する、スプライン関数は、1個又は複数の制約に基づいて適合され得る。
【0024】
制御ポイントの少なくとも一部は、特定の及び有限の数のソース画素値及び対応する対象画素値のトーン・マッピングのための制約を示し得る。トーン・マッピング関数は、これらの特定のトーン・マッピングを少なくとも概算するために、適合され得る。フレアを抑制する及びハイライトを圧縮するために、制御ポイントのうちのいくつかは、ソース画像データのフレア抑制又はハイライト圧縮閾値を定義することができる。制御ポイントの少なくとも一部は、1又は制御ポイントで評価された、トーン・マッピング関数の導関数(又は少なくともその数値近似)を制約するために使用され得る。すなわち、制御ポイントのうちのいくつかは、1個又は複数の他の制御ポイントにおいてトーン・マッピング関数のゲイン(たとえば、ゲイン値)の傾斜を制約するために使用され得る。
【0025】
一部の実施例では、少なくとも3個の制御ポイントが、決定され得る:低トーン・ポイント、中トーン・ポイント、及び高トーン・ポイント。低トーン・ポイントは、ソース画像データの最も低い画素値と対象画像データの最も低い画素値との間のトーン・マッピング、並びにソース画像データのフレア抑制閾値を定義することができる。同様に、高トーン・ポイントは、ソース画像データの最も高い画素値と対象画像データの最も高い画素値との間のトーン・マッピング、並びにソース画像データのハイライト圧縮閾値を定義することができる。中トーン・ポイントは、ソース画像データの中トーン値と対象画像データの中トーン値との間のトーン・マッピングを定義することができる。後述するように、中トーン・ポイントは、トーン・マッピング関数の導関数を制約するために追加で使用することができる。
【0026】
低トーン・ポイントは、ソース及び対象画像データの最も暗い又は「黒い」画素のトーン値の間のマッピングを定義することができるので、低トーン・ポイントは、マッピングの「ブラック・ポイント」(BP:black point)になり得る。同様に、高トーン・ポイントは、ソース及び対象画像データの最も明るい又は「白い」画素のトーン値の間のマッピングを定義することができるので、高トーン・ポイントは、マッピングの「ホワイト・ポイント」(WP:white point)になり得る。一部の実施例では、トーン・マッピング関数を適合するとき、トーン・マッピングパラメータが、これらの制御ポイント評価する(又は少なくとも概算する)ことをトーン・マッピング関数に強制するために選択され得る。トーン・マッピング関数は、追加の制御ポイントを評価する(又は少なくとも概算する)ために制約され得る。
【0027】
少なくとも一部の実施例では、トーン・マッピング関数の導関数(又は少なくともその数値近似)は、中トーン・ポイント、又は任意の他のそのような制御ポイントにおいて制約され得る。すなわち、(トーン・マッピング関数を介して定義される)中トーン・ゲインの傾斜は、中トーン・ポイントにおいて制約及び/又は設定され得る。中トーン・ポイントにおけるトーン・マッピング関数の導関数(又はその数値近似)を制約するために、追加の制御ポイントが定義され得る。中トーン・ポイントにおいて評価された、トーン・マッピング関数の導関数は、中トーン・ポイント及び追加の制御ポイントを通過する線の傾斜(たとえば、ゲイン値)に少なくともほぼ等しくなるように制約され得る。1個のそのような実例では、追加の制御ポイントは、フレアを取り除くためにソース画素値の閾値を指定する最大フレア除去(MFR:maximum flare removal)ポイントでもよい。MFRポイントは、ユーザによって設定され得る及び/又はソース画像データの統計値に基づいて動的に決定され得る。
【0028】
さらに実例として、中トーン・ゲインの傾斜は、ソース画像データの中トーンに対する対象画像データの中トーンの比率と少なくともほぼ等しくなるように制約され得る。さらなる実例として、中トーン・ゲインの傾斜は、他の方法、たとえば、ユーザ構成可能な設定、によって設定され得る。パラメータ化されたトーン・マッピング関数を適合するとき、パラメータは、これらの又は任意の他の方式で定義された、中トーン・ゲインを少なくとも概算するように、中トーン・ポイントにおいて評価された、トーン・マッピング関数の導関数に強制するように選択され得る。
【0029】
トーン・マッピング関数が決定された後は、対象画像データは、トーン・マッピング関数をソース画像データに適用することによって、生成され得る。一部の実施例では、トーン・マッピング関数の決定とトーン・マッピング関数の適用との間の1個又は複数のフレーム・オフセットが存在し得る。たとえば、トーン・マッピング関数は、第1のソース画像フレームに基づいて決定され得、次のフレームに適用され得る。前述のように、SDR又はLDR画像データは、対象画像データから適切な数のLSBをフィルタリングすることによって、対象画像データから生成され得る。画像データからLSBを落とす前に、ガンマ圧縮が、画素値のカラー範囲を圧縮するために対象画像データに適用され得る。
【0030】
一部の実施例では、トーン・マッピング関数は、画像化デバイスの汎用プロセッサ(たとえば、CPU)を介して決定することができ、一方、ソース画像データは、画像化デバイスの特殊プロセッサ(たとえば、画像信号プロセッサ、FPGA、又はASIC)の1個又は複数のパイプラインを介して対象画像データにマップされ得る。一部の実施例では、ソース画像データは、グラフィック処理ユニット(GPU:graphical processing unit)、画像信号プロセッサ(ISP:image signal processor)、及び/又はデジタル信号プロセッサ(DSP:digital signal processor)によって処理され得る。一部の実施例では、ソース画像データの統計的メトリックスが決定され得、制御ポイントが、統計的メトリックスから決定され得る。開示される実施例の一部は、車に搭載された画像化デバイス(たとえば、車載カメラ)において配備され得る。さらに、様々な実施例が、自律型車両アプリケーション、又は他のそのようなマシン・ビジョン・アプリケーションにおいて配備され得る。実施例は、1個又は複数のマシン及び/又はコンピュータ・ビジョン方法を使用する任意のアプリケーションにおいて配備され得る。たとえば、実施例は、自律型車両の様々なマシン・ビジョン特徴のいずれかを可能にするために配備され得る(図6A~6Dを参照)。実施例は、製造ロボットなどの、しかしこれらに限定されない、ロボットにおいてマシン・ビジョンを可能にするために配備され得る。
【0031】
高ダイナミック・レンジ画像化及びトーン・マッピングのためのシステム
図1を参照すると、図1は、本開示のいくつかの実施例による、高ダイナミック・レンジ画像化(HDRI)システム100の概略図を提供する。本明細書に記載のこの及び他の配置は単に例として記載されていることを理解されたい。他の配置及び要素(たとえば、マシン、インターフェース、機能、順番、機能のグループ分けなど)が、図示されたものに加えて又はそれらの代わりに使用され得、いくつかの要素は、完全に省略され得る。さらに、本明細書に記載の要素の多数は、個別の又は分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び場所において実装され得る機能エンティティである。エンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって実施され得る。たとえば、様々な機能は、メモリに記憶された命令を実行する汎用プロセッサ122及び/又は画像信号プロセッサ(ISP)124などの、しかしこれらに限定されない、論理デバイスによって実施され得る。
【0032】
HDRIシステム100は、特に、1個又は複数の画像センサを含む計算デバイス(たとえば、カメラ)を含み得る。そのような計算デバイスは、モバイル又は固定カメラ(たとえば、ハンドヘルド・カメラ102、スマートフォン、タブレットなど)、有人の又は無人の地上車(たとえば、移動車104)、有人の又は無人の航空機(たとえば、ドローン106)、或いはウェアラブル・デバイス(たとえば、スマート・グラス108)を含み得るが、これらに限定されない。1個又は複数の画像センサを含むそのような計算デバイスは、カメラ計算デバイス102~108と本明細書では総称され得る。
【0033】
いくつかのカメラ計算デバイスが図1に示されているが、これは限定を意図していない。いずれの実例でも、任意の数のカメラ計算デバイス及び/又は図1に明示的に示されていないカメラ計算デバイスが存在し得る。1個又は複数の画像センサ及び/又はカメラを含むほとんどの計算デバイスが、様々な実施例によるHDRIシステムに含まれ得る。
【0034】
カメラ計算デバイス102~108(又はシステム100に含まれる他のカメラ計算デバイス)のいずれも、全体で説明されるように、高ダイナミック・レンジ(HDR)画像データをキャプチャするために有効にされた1個又は複数の画像センサを含み得る。HDRIシステム100は、サーバ計算デバイス110などの、しかしこれらに限定されない、他の計算デバイスを含み得る。サーバ計算デバイス110は、画像センサを含まなくてもよい。しかしながら、他の実施例では、サーバ計算デバイス110は、画像センサ(たとえば、補助カメラ)を含み得る。地上車104及び/又は航空機106は、少なくとも部分的に手動で操作される移動車でもよく、及び/又は有人のときに、部分的に自律的でもよい。一部の実施例では、無人のとき、移動車104及び106は、自律的な、部分的に自律的な、及び/又は遠隔制御された移動車でもよい。そのような移動車の様々な実施例は、図6A~6Dとともに説明される。
【0035】
計算デバイス102~110を含むがこれらに限定されない、計算デバイスの様々な実施例は、図7の計算デバイス700とともに説明される。しかしながら、ここでは簡潔に、それぞれの計算デバイスは、1個又は複数の論理デバイスを含み得る。たとえば、カメラ102は、論理デバイス120を含むように示される。論理デバイス120は、汎用プロセッサ122(たとえば、中央処理装置(CPU:Central Processing Unit)、マイクロコントローラ、マイクロプロセッサなど)、画像信号プロセッサ(ISP:Image Signal Processor)124、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)126、及び/又はフィールド・プログラマブル・ゲート・アレイ(FPGA:Field Programmable Gate Array)128のうちの1個又は複数を含み得る。図1には示されていないが、一部の実施例では、論理デバイス120は、グラフィック・プロセッシング・ユニット(GPU:Graphics Processing Unit)を含み得る。計算デバイス102~110のいずれも、そのような論理デバイスのうちの1個又は複数を含み得る、ことに留意されたい。
【0036】
HDRIシステム100の様々な構成要素(たとえば、計算デバイス102~110)は、ネットワーク112を介して通信することができる。ネットワークは、ワイド・エリア・ネットワーク(WAN:wide area network)(たとえば、インターネット、公衆交換電話網(PSTN:public switched telephone network)など)、ローカル・エリア・ネットワーク(LAN:local area network)(たとえば、Wi-Fi、ZigBee、Z-Wave、ブルートゥース(登録商標)、ブルートゥース(登録商標)・ロー・エネルギ(BLE:Bluetooth(登録商標) Low Energy)、イーサネット(登録商標)など)、低電力ワイド・エリア・ネットワーク(LPWAN:low-power wide-area network)(たとえば、LoRaWAN、Sigfoxなど)、グローバル・ナビゲーション・サテライト・システム(GNSS:global navigation satellite system)ネットワーク(たとえば、グローバル・ポジショニング・システム(GPS:Global Positioning System))、及び/又は別のネットワーク・タイプを含み得る。任意の実例において、HDRIシステム100のそれぞれの構成要素は、ネットワーク112のうちの1個又は複数を介してその他の構成要素のうちの1個又は複数と通信することができる。
【0037】
計算デバイス102~110のいずれも、デジタル自動露出高ダイナミック・レンジ(DAE HDR:Digital Auto Exposure High Dynamic Range)エンジン140の機能及び/又は動作を実装する、動作させる、又は他の方法で実行することができる。たとえば、図1では、カメラ102は、DAE HDRエンジン140を実装して示されている。しかしながら、計算デバイス102~110のいずれも、DAE HDRエンジン140を実装することを可能にされ得る。論理デバイス120のいずれも、DAE HDRエンジン140の機能、動作、及び/又はアクションのうちの少なくとも一部を実装することができる。
【0038】
DAE HDRエンジン140は、HDR画像データのトーン・マッピング、並びにHDR画像データによってエンコードされた画像及び/又はトーン・マッピングされた画像データの輝度の制御の様々な方法を可能にすることができる。そのような機能性を実施するために、DAE HDRエンジン140は、1個又は複数の構成要素、モジュール、デバイスなどを含み得る。そのような構成要素、モジュール及び/又はデバイスは、1個又は複数のHDR画像センサ144、HDRセンサ露出設定142、1個又は複数のHDR画像センサ144、関心領域(ROI)ロケータ148、遅延ユニット150、統計値モジュール152、制御ポイント・セレクタ154、トーン・マップ・ジェネレータ156、及び/又はトーン・マップ・アプリケータ158を含み得るが、これらに限定されない。一部の実施例では、これらの構成要素、モジュール、及び/又はデバイスのいずれも、任意選択になり得る。たとえば、図1に示す非限定的実施例では、ROIロケータ148、遅延ユニット150、及び統計値モジュール152は、任意選択である。他の実施例では、他の構成要素、モジュール、及び/又はデバイスのそれぞれは、任意選択でもよい。
【0039】
図1と併せて説明されるとき、DAE HDRエンジン140の構成要素、モジュール、及び/又はデバイスの列挙は、包括的であることを意図されていない。他の実施例では、DAE HDRエンジン140は、より少数の又はより多数の構成要素、モジュール、及び/又はデバイスを含み得る。全体を通して説明されるように、DAE HDRエンジン140は、それぞれ、図3、4、及び5の方法300、400、及び500とともに説明されるプロセス、アクション、及び/又は動作の少なくとも部分を実装及び/又は実施し得る。そのようなものとして、論理デバイス120のうちの1個又は複数は、方法300、400、及び/又は500の少なくとも部分を実装及び/又は実施し得る。
【0040】
HDR画像センサ144は、HDR画像データである画像データをキャプチャするために有効にされる。キャプチャされたHDR画像データは、HDR画像センサ144によって画像化された画像又はシーンをエンコードする。HDR画像センサ144によってキャプチャされた画像データは、ソース画像データと称され得る。それ故に、ソース画像データは、HDRソース画像をエンコードするHDR画像データでもよい。全体を通して説明されるように、ソース画像データをキャプチャする、HDR画像センサ144は、移動車(たとえば、地上車104又は航空機106)に搭載されてもよい。移動車は、自律的は、又は少なくとも部分的に自律的な、移動車でもよい。移動車は、少なくとも部分的に、ソース画像データ及び/又は対象画像データに基づいて、制御され得る。一部の実施例では、ソース画像データのエンコードは、非線形のマッピングを欠いた線形カラー空間においてでもよい。HDR画像センサ144は、1個又は複数のHDRセンサ露出設定142を含み得る、これに影響され得る、及び/又はこれを受け得る。HDRセンサ露出設定142は、固定の、静的な、及び/又は一定の露出設定でもよい。他の実施例では、HDRセンサ露出設定142の少なくとも一部は、動的及び/又は可変でもよい。そのような実施例では、HDRセンサ露出設定142の値の少なくとも一部は、画像化されることになるシーンの照明状態及び/又は他の環境状態に基づいて、自動的に決定され得る。HDRセンサ露出設定142は、これらの要因及び、HDR画像センサ144の仕様及び/又は動作などの他の要因に基づいて自動的に設定され得る。少なくとも1個の実施例では、ユーザは、HDRセンサ露出設定142の少なくとも一部を手動で設定することを可能にされ得る。
【0041】
HDRIシステム100内のいくつかの計算デバイスは、画像センサ及び/又はカメラ(たとえば、サーバ計算デバイス110)を含まなくてもよい。そのような実施例では、カメラ計算デバイス102~108のいずれかに含まれるHDR画像センサは、ソース画像データをキャプチャするために使用され得る。ソース画像データは、サーバ計算デバイス110において及び/又はサーバ計算デバイス110によって実装されるDAE HDRエンジンに、ネットワーク112を介して、提供され得る。すなわち、ソースHDR画像データは、カメラ・デバイス102~108のうちの少なくとも1個によってキャプチャされ得るが、トーン・マッピング及び画像データの輝度の制御は、サーバ計算デバイス110上でオフラインで実行され得る。別の形で述べれば、HDR画像データのトーン・マッピングは、画像データをキャプチャしない、サーバ計算デバイス110などの、しかしこれに限定されない、別の計算デバイスにオフロードされ得る。カメラ計算デバイス102~108は、1個又は複数の有人の又は無人の移動車(たとえば、地上車104及び航空機106)を含み得るので、ソース画像データは、移動車に含まれた又は搭載されたカメラによってキャプチャされ得る。前述のように、移動車は、自律的な、又は少なくとも部分的に自律的な、移動車でもよい。様々な実施例は、地上車104又は航空機106などの、しかしこれらに限定されない、自律型車両の様々なマシン及び/又はコンピュータ・ビジョン特徴において有効にする、又は少なくとも有効化を支援することができる。実施例は、ロボットのアプリケーションなどの、しかしこれに限定されない、他のアプリケーションのマシン及び/又はコンピュータ・ビジョン特徴を有効にするために使用され得る。
【0042】
図1に示すように、DAE HDRエンジン140は、矢印によって示すように、ソース画像データのための2個の並行のパイプラインを含む。より具体的には、DAE HDRエンジン140は、画像データ・パイプライン162及び画像データ・パイプライン164を含み、これらの2個のパイプラインは、並行して動作させることができる。2個のパイプラインは、HDR画像センサ144と任意選択のROIロケータ148との間で図式的に分岐する。2個の分岐したパイプラインは、トーン・マップ・アプリケータ158において図式的に合流する。
【0043】
画像データ・パイプライン162は、概して、トーン・マッピング関数(たとえば、グローバル・トーン・マッピング(GTM)機能)の決定及び/又は生成の責任を負う。画像データ・パイプライン162(任意選択の遅延ユニット150又はトーン・マップ・ジェネレータ156のいずれかを介する)は、トーン・マップ・アプリケータ158を介して画像データ・パイプライン164にトーン・マッピング関数を提供する。画像データ・パイプライン164は、概して、対象画像データ160を生成するためにソース画像データにトーン・マッピング関数を適用する責任を負う。後述するように、1個又は複数のHDR画像センサ144は、ソース画像データをキャプチャし、ソース画像データを画像データ・パイプライン162及び164のそれぞれに提供する。図1の非限定的実施例では、パイプラインの流れの矢印を介して示されるように、ソース画像データは、任意選択のROIロケータ148を介して画像データ・パイプライン162に提供され、ソース・データは、HDR画像データ・バッファ146を介して並行の画像データ・パイプライン164に提供される。
【0044】
ソース画像データ(たとえば、HDRビデオ実施例)の複数のフレームのキャプチャを含む実施例では、トーン・マッピング関数は、第1のフレームのソース画像データに基づいて生成され得、第2の(たとえば、次に続く)フレームのソース画像データに適用され得る。すなわち、そのような実施例では、環境(たとえば、照明)状態はフレームごとに有意に変化していないので、第1のフレームのソース画像データに基づいて生成されたトーン・マッピング関数は次のフレームのソース画像データに適用可能であり、これに適していることが想定され得る。これらの実施例では、トーン・マッピング関数がそこから生成されたソース・データとトーン・マッピング関数が適用されるソース画像データとの間に1個のフレーム・ラグが存在し得る。たとえば、トーン・マッピング関数を生成するために使用されたソース画像データのフレームは、トーン・マッピング関数が適用されたソース画像データのフレームの前の1個のフレームでもよい。そのような実施例では、トーン・マッピング関数が画像データ・パイプライン164のトーン・マップ・アプリケータ158に提供されるときに、トーン・マップが次に続くフレームのソース画像データに適用されるように、画像データ・パイプライン162の任意選択の遅延ユニット150は、1個の(又は複数の)フレームのトーン・マッピング関数をバッファリングすることができる。他の実施例では、ラグは、単一のフレームより大きくてもよく、遅延ユニット150は、ソース画像データの複数のフレームのトーン・マッピング関数をバッファリングすることができる。少なくとも1個の実施例では、同じトーン・マッピング関数が、複数のフレームのソース画像データに適用され得る。たとえば、同じトーン・マッピング関数が、5個の連続するフレームのソース画像データに適用され得る。そのような実施例では、画像データ・パイプライン162は、5フレームごとにのみトーン・マッピング関数を生成し得る。
【0045】
図1に示すように、DAE HDRエンジン140は、対象画像データ160を出力する。全体を通して説明されるように、対象画像データ160は、ソース画像データによってエンコードされた画像をエンコードすることができる。しかしながら、HDR画像センサ144によってキャプチャされたソース画像データの画素値ではなくて、対象画像データ160の画素値は、トーン・マッピング関数(画像データ・パイプライン162を介して決定される)をソース画像データに(画像データ・パイプライン164を介して)適用することによって、定義され得る。すなわち、対象画像データ160の画素値は、トーン・マッピングされたバージョンのソース画像データの画素値を表し得る。一部の実施例では、出力された対象画像データ160は、標準ダイナミック・レンジ(SDR)画像データ又は低ダイナミック・レンジ(LDR)画像データのいずれかでもよい。しかしながら、他の実施例では、対象画像データ160は、HDR画像データでもよい。パイプラインは、少なくともいくらか並行のパイプラインであり、そして、一部の実施例では、画像データ・パイプライン162の動作の少なくとも一部は、第1の論理デバイス(たとえば、汎用プロセッサ122)によって実行され得るので、画像データ・パイプライン164の動作の少なくとも一部は、第2の論理デバイス(たとえば、ISP124)によって実行され得る。少なくとも1個の実施例では、ISP124内の1個又は複数のパイプラインが、DAE HDRエンジン140の画像データ・パイプライン164によって使用され得る。
【0046】
図1に示すように、ソース画像データの少なくとも一部は、HDR画像データ・バッファ146を介して画像データ・パイプライン164によって提供及び/又は受信され得る。HDR画像データ・バッファ146は、ソース画像データをバッファリングする又は少なくとも一時的に記憶することができる。さらに詳しく後述するように、画像データ・パイプライン162は、トーン・マッピング関数を生成し、トーン・マッピング関数を画像データ・パイプライン164に提供する。より具体的には、図1に示すように、任意選択の表示ユニットは、少なくとも1個のフレームのトーン・マッピング関数をバッファリングし、次いで、トーン・マッピング関数を画像データ・パイプライン164のトーン・マップ・アプリケータ158に提供する。トーン・マップ・アプリケータは、HDR画像データ・バッファ146からソース画像データを受信し、トーン・マッピング関数をソース画像データに適用して対象画像データ160を生成する。
【0047】
前述のように、トーン・マップ・アプリケータ158によって受信されるソース画像データは、トーン・マッピング関数を生成するために使用されたソース画像データ内のフレームと比べて、次のフレームのソース画像データでもよい。遅延ユニット150を含まない実施例では、ソース画像データは、トーン・マップ・ジェネレータ156からトーン・マップ・アプリケータ158に直接提供され得る。そのような実施例では、トーン・マッピング関数は、トーン・マッピング関数を生成するために使用された同じフレームのソース画像データに適用され得る。
【0048】
任意選択のROIロケータ148を含む実施例では、ソース画像データは、ROIロケータ148を介して画像データ・パイプライン162に提供され得る及び/又はこれによって受信され得る。ROIロケータ148を含まないが統計値モジュールを含む実施例では、ソース画像データは、任意選択の統計値モジュール152を介して画像データ・パイプライン162に提供される。ROIロケータ148及び統計値モジュール152の両方を欠いた実施例では、ソース画像データは、制御ポイント・セレクタ154を介して画像データ・パイプライン162に提供され得る。実施例はROIロケータ及び/又は統計値モジュール152を含み得るが、それらの操作性は任意選択でもよいことに留意されたい。たとえば、ユーザは、1個又は複数のソフトウェア・スイッチ及び/又はフラグを介するROIロケータ148及び/又は統計値モジュール152のうちの1個又は両方の操作性を有効にすることを選択することができる。同様に、ユーザは、1個又は複数のソフトウェア・スイッチ及び/又はフラグを介するROIロケータ148及び/又は統計値モジュール152のうちの一方又は両方の操作性を無効にすることを選択することができる。
【0049】
ROIロケータ148の操作性を含む及び/又は有効にする実施例では、ROIロケータ148は、ソース画像データ内のROIを決定することができる。たとえば、コンピュータ・ビジョン及び/又は画像処理に関連する1個又は複数の方法(たとえば、ROIは、ROIを識別するようにトレーニングされたニューラル・ネットワークの出力でもよい)は、ソース画像データによってエンコードされた画像内の関心のある領域(たとえば、画像のサブジェクト及び/又はフォーカス・ポイントを含む画像の領域)を決定するために使用され得る。本明細書では、ROIは、他の領域より多いコントラスト、細部、及び/又はより変化する画素値を含む画像内の領域でもよい。たとえば、ROIは、画像内の他の領域と比較して、画素値のダイナミック・レンジが最大化された又は少なくとも増加した、画像内の領域でもよい。
【0050】
実施例では、ROIは、画像のサブジェクト又は画像のフォーカスのポイントを含む又はこれに対応する画像の領域でもよい。一部の実施例では、ROIロケータ148は、決定されたROIの外部の画素を隠すフィルタ又はマスクを含み得る。それ故に、画像データが、画像データ・パイプライン162を下に進むとき、画像データは、ROIに対応する画素値のみを含み得る。それ故に、制御ポイントの決定及びトーン・マッピング関数の生成、並びに画像データ・パイプライン162の他の動作(たとえば、統計的メトリックスの決定及び/又は複数の制御ポイントの決定)は、ソース画像をエンコードするソース画像データの全体ではなくて、エンコードされたソース画像内のROIに対応するソース画像データの一部に基づき得る。
【0051】
統計値モジュール152の操作性を含む及び/又は有効にする実施例では、統計値モジュール152は、ソース画像データの画素値(又はエンコードされたソース画像のROIに対応するソース画像データの一部の画素値)に基づいて、複数の統計的メトリックスを決定及び/又は生成することができる。複数の統計的メトリックスは、ソース画像データの画素値に基づく統計的メトリックスを含み得る。統計的メトリックスは、ソース画像データから構築され得る任意の連続的又は個別の統計的分布及び/又はヒストグラムを実質的に特徴付ける1個又は複数のパラメータを含み得る。そのようなパラメータは、ソース画像データの画素値から導出された1個又は複数の統計的分布の平均値、中央値、及び/又は標準偏差を含み得る。
【0052】
ソース画像データ、ROIに対応するソース画像データの一部、及び/又は複数の統計的メトリックスが、制御ポイント・セレクタ154に提供され得る。制御ポイント・セレクタ154は、概して、ソース画像データ、ROIに対応するソース画像データの一部、及び/又は複数の統計的メトリックスに基づいて複数のトーン制御ポイントを決定する責任を負う。さらに具体的には、トーン制御ポイントの少なくとも一部は、ソース画像データの画素値、画素値から決定及び/又は導出された統計的メトリックス、或いはその組合せに基づいて決定され得る。制御ポイント・セレクタ154は、汎用プロセッサ122を使用して複数のトーン制御ポイントを決定することができる。
【0053】
複数の制御ポイントは、低トーン・ポイント、中トーン・ポイント、及び高トーン・ポイントのうちの1個又は複数を含み得る。複数の制御ポイントは、フレア抑制ポイントを含み得る。一部の実施例では、複数のトーン制御ポイントは、追加のトーン制御ポイントを含み得る。トーン制御ポイントは、他の次元は追加することができるが、2個のスカラ値(たとえば、x構成要素及びy構成要素)を含む、2Dポイント及び/又は2Dベクトルでもよい。それ故に、トーン制御ポイントは、ベクトル表記法(TC_x、TC_y)を介して表すことができ、TC_x及びTC_yのそれぞれはスカラ値である。トーン制御ポイントの横座標スカラ値(たとえば、x構成要素及び/又はx値)は、TC_xとして表される。トーン制御ポイントの縦座標スカラ値(たとえば、y構成要素及び/又はy値)は、TC_yとして示される。制御ポイントが組み込まれた2D空間は、ソース画像データの画素値に対応する横座標基底ベクトル(たとえば、x軸)及び対象画像データの画素値に対応する縦座標基底ベクトル(たとえば、y軸)を含む正規直交基底によって張られ得る。
【0054】
低トーン、中トーン、及び高トーン制御ポイントは、対象画像データの画素値へのソース画像データの画素値の特定のマッピングを示し得る。たとえば、低トーン・ポイントは、対象画像データの最も低い画素値(たとえば、最も暗い又は黒画素に対応する画素値)にトーン・マッピングされることになるソース画像データの画素値を示し得る。同様に、高トーン・ポイントは、対象画像データの最も高い画素値(たとえば、最も明るい又は白い画素に対応する画素値)にトーン・マッピングされることになるソース画像データの画素値を示し得る。そのようなものとして、低トーン・ポイントは、ブラック・ポイント(BP)と称され得、高トーン・ポイントは、ホワイト・ポイント(WP)と称され得る。中トーン・ポイントは、対象画像データの中央画素値にトーン・マッピングされることになるソース画像データの画素値を示し得る。中ポイントの決定は、トーン・マッピングされた対象画像データによってエンコードされた対象画像の全体的中トーン輝度(又はトーン)を制御することができ、一方、低トーン・ポイントは、対象画像データ内の最も黒い(又は最も暗い)画素のトーンを制御し、そして、高トーン・ポイントは、対象画像データ内の画素のうちの最も白い(又は最も明るい)画素のトーンを制御する。
【0055】
図2Aを参照すると、図2Aは、ソース画像データの画素値に対応する第1の次元の第1の基底ベクトル(たとえば、x軸)及び対象画像データの画素値に対応する第2の次元の第2の基底ベクトル(たとえば、y軸)によって張られた2D空間に組み込まれた低トーン、中トーン、高トーン、及びフレア抑制制御ポイントを示す。図2Aの非限定的実施例では、ソース及び対象画像データの画素値は、以下の範囲を有するように正規化されてある:[0,1]。しかしながら、他の実施例では、画素値は、他の範囲に正規化されることがある、又は正規化される必要さえないことがある。たとえば、キャプチャされた画像データの未処理の画素値は、ソース画像データとして使用され得る。他の実施例では、未処理の画素値は、DAE HDRエンジン140の画像データ・パイプライン162及び164に提供される前に正規化及び/又は事前処理され得る。
【0056】
図2Aでは、低トーン・ポイントはLT=(B_s,B_t)として示され、中トーン・ポイントはMT=(M_s,M_t)として示され、高トーン・ポイントはHT=(W_s,W_t)として示され、x及びy構成要素は、すべて、非負のスカラ値である。より具体的には、図2Aの非限定的実施例では、LT=(B_s,0)及びHT=(W_s,1)であり、但し、0.0<B_s<W_s<1.0である。他の実例では、B_tは0.0と等しい必要はなく、W_tは1と等しい必要はない。図2Aは、FS=(F_s,F_t)として示される別の制御ポイント、フレア抑制ポイント、を示し、F_tは0.0に設定されている。フレア抑制ポイントは、以下でさらに説明される。
【0057】
中トーン・ポイントに関して、M_sと等しい画素値を有するソース画像データ内の任意の画素が、トーン・マッピング関数を介して、対象画像データのM_tの値にトーン・マッピングされ得る。M_tの決定及び/又は選択は、対象画像の中トーン輝度を制御する。これ故に、M_tの決定は、対象画像データの画素値の中トーン画素値に基づき得る。一部の実施例では、M_t=0.5である。他の実施例では、M_tは、他の値を有し得る。いくつかの実例では、ユーザは、M_tの値を選択及び/又は設定することができる。さらなる実例では、M_sは、ソース画像データの画素値の線形加重平均を介して決定され得る。追加の実例で、M_sは、ソース画像データの画素値の対数平均化(たとえば、対数平均化)を介して決定され得る。対数平均化は、ほぼあらゆる基数において実行され得る。しかしながら、一部の実施例では、対数基数は基数10である。他の実施例では、ソース画像データを対数値に変形するために使用される対数関数は、自然対数関数でもよい。画素値の対数平均値は、次いで、(対応する基数を介して)べき乗されてM_sを決定することができる。たとえば、対数変換されたソース画像データ画素値は、ソース画像データの画素値に基づいて決定され得る。対数変換された画像データ値の平均値は、対数変換された画像データ値の線形加重和を介して決定され得る。M_sは、対数変換された画像データ値の平均値のべき乗に基づいて決定され得る。
【0058】
一部の実施例では、ソース画像データの一部のみが、M_sを決定するために使用される。たとえば、最も高い値及び最も低い値を有するソース画像データの画素は、分析から拒否及び/又はフィルタリングされ得る。すなわち、高トーン閾値(又はフィルタ値)は、M_sの決定から高トーン画素を拒否するために使用され得る。同様に、低トーン閾値(又はフィルタ又はフィルタ値)は、M_sの決定から低トーン画素を拒否するために使用され得る。M_sは、低トーン・フィルタ及び高トーン・フィルタの両方を通過する画素値(たとえば、分析から閾値処理されていない画素値)の線形又は対数平均化に基づいて決定され得る。フィルタの閾値は、相対的閾値(たとえば、パーセンテージ)、又は絶対値でもよい。一部の実施例では、M_s及び/又はM_tは、図1の統計値モジュール152によって生成された統計的メトリックスに少なくとも部分的に基づいて決定され得る。M_s及び/又はM_tの決定に関する、前述の様々な方法のいずれも、M_s及び/又はM_tを決定するために、統計的メトリックスと結合され得る。少なくとも1個の実施例では、M_s及び/又はM_tは、図1のHDRセンサ露出設定142に少なくとも部分的に基づいて決定され得る。M_s及び/又はM_tの予測モデルは、多数のソース画像データ及び/又は対象画像データから統計的メトリックスを集計することによって生成された履歴、トレーニング、及び/又は学習データの分析に基づいて決定され得る。
【0059】
低トーン・ポイントに関して、B_sと等しい(又はB_s未満の)画素値を有するソース画像データのうちの任意の画素が、対象画像データのB_tの値にトーン・マッピングされ得る。すなわち、B_s未満のソース画像データの各画素値は、クリップすることができ、B_sの画素値を有するように設定され得る。B_tの決定及び/又は選択は、対象画像の低トーン輝度を制御する。これ故に、B_tの決定は、対象画像データの画素値の最低画素値に基づき得る。一部の実施例では、B_t=0である。他の実施例では、B_tは、M_t未満の正値を有し得る。いくつかの実例では、ユーザは、B_tの値を選択又は設定することができる。正の黒画素値は、画素のソース画像データをキャプチャした画像センサにおいて、フレア、又は他のエラー(たとえば、センサ黒レベル減算エラー)、によってもたらされ得る。それ故に、B_s未満の画素値を有するソース画像データは、クリップされ、B_sに設定されるので、B_sの選択は、フレア抑制を制御することができる。したがって、B_sは、フレア抑制閾値と称され得る。
【0060】
実例において、B_sは、最も低い画素値を有するソース画像データの画素に基づいて決定され得る。たとえば、ソース画像データの画素値の低トーン・サブセットが、低トーン・ポイント閾値に基づいて決定され得る。低トーン・サブセットに含まれたあらゆる画素値は、低トーン・ポイント閾値以下でもよい。低トーン・サブセットから除外されたあらゆる画素値は、低トーン・ポイント閾値より大きくてもよい。低トーン・ポイント閾値は、絶対閾値又は相対的閾値のいずれかでもよい。B_sの値は、画素値の低トーン・サブセットに含まれた画素値に基づいて決定され得る。たとえば、B_sは、低トーン・サブセット内の画素値の加重平均に設定され得る。別の実施例では、B_sは、低トーン・サブセット内の画素値の所定のパーセンテージに設定され得る。一部の実施例では、B_s及び/又はB_tは、図1の統計値モジュール152によって生成された統計的メトリックスに少なくとも部分的に基づいて決定され得る。B_s及び/又はB_tの決定に関する、前述の様々な方法のいずれも、B_s及び/又はB_tを決定するために、統計的メトリックスと結合され得る。少なくとも1個の実施例では、B_s及び/又はB_tは、HDRセンサ露出設定142に少なくとも部分的に基づいて決定され得る。B_s及び/又はB_tの予測モデルは、多数のソース画像データ及び/又は対象画像データから統計的メトリックスを集計することによって生成されたトレーニング及び/又は学習データの分析に基づいて決定され得る。
【0061】
高トーン・ポイントに関して、W_sと等しい(又はW_sより大きい)画素値を有するソース画像データ内の任意の画素が、対象画像データのW_tの値にトーン・マッピングされ得る。すなわち、W_sより大きいソース画像データの各画素値は、クリップすることができ、W_sの値を有するように設定され得る。それ故に、W_sより大きい画素値を有するソース画像データは、クリップされ、W_sに設定されるので、W_sの選択は、ハイライト(たとえば、大きい画素値を有する画素)抑制を制御することができる。したがって、W_sはハイライト抑制閾値と称され得る。W_tの決定及び/又は選択は、対象画像の高トーン輝度を制御する。それ故に、W_tの決定は、対象画像データの画素値の最大画素値に基づき得る。一部の実施例では、W_t=1である。他の実施例では、W_tは、1より小さくてM_tより大きい正値を有し得る。いくつかの実例では、ユーザは、W_tの値を選択又は設定することができる。追加の実例において、W_sは、最も高い画素値を有するソース画像データの画素に基づいて決定され得る。たとえば、ソース画像データの画素値の高トーン・サブセットは、高トーン・ポイント閾値に基づいて決定され得る。高トーン・サブセットに含まれるあらゆる画素値は、高トーン・ポイント閾値以上でもよい。高トーン・サブセットから除外されるあらゆる画素値は、高トーン・ポイント閾値未満でもよい。
【0062】
高トーン・ポイント閾値は、絶対閾値又は相対的閾値でもよい。W_sの値は、画素値の高トーン・サブセットに含まれる画素値に基づいて決定され得る。たとえば、W_sは、高トーン・サブセット内の画素値の加重平均に設定され得る。別の実例として、W_sは、高トーン・サブセット内の画素値の所定のパーセンテージに設定され得る。一部の実施例では、W_s及び/又はW_tは、図1の統計値モジュール152によって生成された統計的メトリックスに少なくとも部分的に基づいて決定され得る。W_s及び/又はW_tの決定に関する、前述の様々な方法のいずれも、W_s及び/又はW_tを決定するために、統計的メトリックスと結合され得る。少なくとも1個の実施例では、W_s及び/又はW_tは、HDRセンサ露出設定142に少なくとも部分的に基づいて決定され得る。W_s及び/又はW_tの予測モデルは、多数のソース画像データ及び/又は対象画像データからの統計的メトリックスを集計することによって生成されたトレーニング及び/又は学習データの分析に基づいて決定され得る。
【0063】
図2Aはまた、以下のフレア抑制ポイントを示す:FS=(F_s,0)。F_sは、最大フレア除去閾値を示し得る。一部の実施例では、F_sは、ユーザ指定及び/又は選択でもよい。他の実施例では、F_sは、ソース画像データの統計的メトリックスに少なくとも部分的に基づいて決定され得る。少なくとも1個の実施例では、F_sは、M_sのパーセンテージ及び/又はソース画像データの最も低い画素値のパーセンテージの値に基づいて決定され得る。
【0064】
図1に戻ると、制御ポイント・セレクタ154は、1個又は複数の追加のトーン制御ポイントを決定することができる。追加のトーン制御ポイントは、複数の統計的メトリックスに、少なくとも部分的に、基づいて決定され得る。トーン・マップ・ジェネレータ156は、一般に、複数の制御ポイントに基づいてトーン・マッピング関数を決定する責任を負う。トーン・マップ・ジェネレータ156は、汎用プロセッサ122を使用してトーン・マッピング関数を決定することができる。トーン・マッピング関数を決定するために、トーン・マップ・ジェネレータ156は、ゲイン線を生成及び/又は決定することができる。ゲイン線の生成は、複数のトーン制御ポイントの少なくとも一部に基づき得る。ゲイン値は、ゲイン線の傾斜、導関数、及び/又は変化の割合として決定され得る。一部の実施例では、ゲイン線は、制御ポイントのうちの少なくとも2個を含む又は通過する一意の線として決定され得る。図2Aに示す実例では、ゲイン線は、中トーン・ポイントとフレア抑制ポイントとの両方を含む線である。ゲイン値は、ゲイン線の傾斜と等しい。
【0065】
トーン・マップ・ジェネレータ156は、ゲイン値及び複数のトーン制御ポイントの少なくとも一部に基づいてトーン・マッピング関数を決定することができる。トーン・マッピング関数は、ソース画像データの画素値を対象画像データの画素値にマップすることができる。そのようなものとして、トーン・マッピング関数は、単一のスカラ変数のスカラ関数(たとえば、画素値)でもよく、関数の値は、関数の独立変数(又は独立した変数)であるソース画像データの画素値に対応する対象画像データの画素値である。マッピングは、非線形のマッピングでもよい。一部の実施例では、トーン・マップ・ジェネレータ156は、トーン制御ポイントのうちの1個又は複数へのトーン・マッピング関数の適合を実行することができる。トーン・マッピング関数は、トーン制御ポイントのうちの1個又は複数を含む或いはほぼ含むように制約され得る。たとえば、少なくとも1個の実施例では、トーン・マッピング関数は、低トーン・ポイント、中トーン・ポイント、及び/又は高トーン・ポイントを含むように制約され得る。一部の実施例では、トーン・マッピング関数は、ゲイン値によって制約され得る。(トーン制御ポイントのうちの1個又は複数で評価された)トーン・マッピング関数の導関数、又は変化の瞬間的割合、は、ゲイン値に基づいて制約され得る。たとえば、少なくとも1個の実施例では、中トーン制御ポイントにおける導関数、又は接線の変化の瞬間的割合がゲイン値と少なくともほぼ等しいように、トーン・マッピング関数のフィッティングは、制約され得る。
【0066】
図2Bを見ると、図2Bは、様々な実施例による、トーン・マッピング関数のプロットの非限定的実例を示す。図2Bのトーン・マッピング関数は、トーン・マッピング関数のプロットが低トーン・ポイント、中トーン・ポイント、及び高トーン・ポイントを含むように制約される。トーン・マッピング関数はさらに、中トーン制御ポイントにおける、接線の変化の導関数又は瞬間的割合がゲイン値と等しいように制約される。トーン・マッピング関数は追加のトーン制御ポイントに基づいてさらに制約され得ることに留意されたい。図2Bはまた、対応する低トーン・ポイント、中トーン・ポイント、高トーン・ポイント、及びゲイン線を示す。
【0067】
トーン・マッピング関数を決定するために、1個又は複数のパラメータ関数は適合され得、その適合は、複数のトーン制御ポイントの少なくとも一部によって制約される。パラメータ関数は、ほぼあらゆる次数の1個又は複数の多項式を含み得る。一部の実施例では、トーン・マッピング関数のフィッティングは、トーン・マッピング関数が少なくとも低トーン・ポイント、中トーン・ポイント、及び高トーン・ポイントを含む及び/又はこれらと交差するように、制約され得る。さらなる実施例において、トーン・マッピング関数のフィッティングは、トーン・マッピング関数が追加のトーン制御ポイントを含む及び/又はこれと交差するように、制約され得る。一部の実施例では、中トーン・ポイントのx構成要素において評価された、トーン・マッピング関数の導関数及び/又は変化の瞬間的割合がゲイン値と等しいように、トーン・マッピング関数のフィッティングが制約される。
【0068】
様々なスプライン方法が、トーン・マッピング関数を適合及び/又は生成するために使用され得る。トーン・マッピング関数を生成することは、直線でない曲線を生成及び/又は構築することを含み得る。直線でない曲線は、グローバル・トーン曲線(GTC)でもよい。曲線は、複数の線形又は曲線状のセグメント(たとえば、複数のスプライン)を含み得る。曲線は、ベジエ曲線、たとえば2次又は3次ベジエ曲線、でもよい。曲線は、2次、3次、又はより高次のパラメータ方程式を介して構築され得る。様々なスプライン方法が、曲線を生成するために使用され得る。スプライン又はセグメント間の接合部は、トーン・マッピング関数の導関数が連続的であることを確実にするように構築され得る。
【0069】
図1に戻ると、任意選択の遅延ユニット150を含む(又は、遅延ユニット150の機能性が関わっている)実施例では、HDR画像センサ144がソース画像データの1個又は複数の追加のフレームをキャプチャする間に、遅延ユニット150はトーン・マッピング関数をバッファリングすることができる。ソース画像データの1個又は複数の追加のフレームをキャプチャしたとき、遅延ユニット150は、トーン・マップ・アプリケータ158を介して、バッファリングされたトーン・マッピング関数をDAE HDRエンジン140の画像データ・パイプライン164に提供することができる。フレーム・ラグが、トーン・マッピング関数を決定するために使用されるフレームのソース画像データとトーン・マッピング関数が適用されるソース画像データのフレームとの間で使用される場合、遅延ユニット150は必要とされないことがある。たとえば、次の及び/又は連続するフレームのソース画像データは、トーン・マップ・ジェネレータ156がトーン・マッピング関数をトーン・マップ・アプリケータに提供することができる時までに、HDR画像データ・バッファ146及び/又はトーン・マップ・アプリケータ158に提供され得る。遅延ユニット150が使用されない場合、トーン・マップ・ジェネレータ156は、トーン・マッピング関数をトーン・マップ・アプリケータ158に直接提供することができる。
【0070】
トーン・マップ・アプリケータ158は、ソース画像データ及びトーン・マッピング関数を受信することができる。トーン・マップ・アプリケータ158は、トーン・マッピング関数をソース画像データに適用して対象画像データ160を生成することができる。すなわち、トーン・マップ・アプリケータは、ソース画像データ(たとえば、トーン・マッピング関数を生成するために使用されたソース画像データのフレーム及び/又はソース画像データの1個又は複数の後続のフレーム)を変形して対象画像データ160を生成することができる。トーン・マップ・アプリケータ158は、ISP124を使用してトーン・マッピング関数をソース画像データに適用することができる。一部の実施例では、ISP124のパイプラインは、トーン・マッピング関数をソース画像データに適用するために使用され得る。前述のように、トーン・マッピング関数は、対象画像データ160の画素値へのソース画像データの画素値の非線形のマッピングを提供することができる。一部の実施例では、マッピングは、1対1のマッピングでもよい。他の実施例では、マッピングは、1対1のマッピングでなくてもよい。たとえば、低トーン・ポイントのx構成要素が0.0より大きい場合及び/又は高トーン・ポイントのx構成要素が1未満である実施例では、ソース画像データは、対応するx構成要素を介して、クリップされ得る。そのような実施例では、マッピングは、1対1のマッピングでなくてもよい。
【0071】
一部の実施例では、トーン・マップ・アプリケータ158は、トーン・マッピングされた対象画像データをSDR又はLDR対象画像データに変形することができる。そのような実施例では、ガンマ圧縮関数が、トーン・マッピングされた対象画像データに適用されて、カラー圧縮された対象画像データを生成することができる。SDR又はLDR対象画像データのいずれかが、カラー圧縮された対象画像データに基づいてDAE HDRエンジン140によって出力され得る。
【0072】
高ダイナミック・レンジ画像化及びトーン・マッピングのための方法
ここで図3~5を参照すると、本明細書に記載の方法300、400、及び500の各ブロックは、ハードウェア、ファームウェア、及び/又はソフトウェアの任意の組合せを使用して実行することができる計算プロセスを含む。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。方法はまた、コンピュータ記憶媒体に記憶されたコンピュータ使用可能な命令として実施され得る。方法は、少し例を挙げると、独立型アプリケーション、サービス又はホスト型サービス(独立型の若しくは別のホスト型サービスと組み合わせた)、或いは別の製品へのプラグインによって、提供され得る。加えて、方法300、400及び500は、例として、図1のHDRIシステム100に関して説明される。たとえば、方法300、400、及び500の少なくとも部分が、DAE HDRエンジン140及び/又は論理デバイス120Aのうちの1個又は複数によって実施され得る。しかしながら、これらの方法は、追加で又は別法として、本明細書に記載のものを含むがこれらに限定されない、任意の1個のシステム又はシステムの任意の組合せによって実施され得る。
【0073】
図3は、本開示のいくつかの実施例による、高ダイナミック・レンジ画像データのトーン・マッピングのための方法300を示す流れ図である。方法300はブロックB302で開始し、そこで、ソース画像データが、1個又は複数の画像センサ(たとえば、図1のHDR画像センサ144)によってキャプチャされる。ソース画像データは、HDR画像データでもよい。ソース画像データは、第1のフレームのソース画像データでもよい。少なくとも一部の実施例(たとえば、ビデオ実施例)では、1個又は複数の追加の及び/又は連続するフレームのソース画像データ(たとえば、第2の連続するフレームのソース画像データ)が、第1のフレームのソース画像データに続いてキャプチャされ得る。ソース画像データは、ソース画像をエンコードすることができる。ソース画像データの追加のフレームがキャプチャされる場合、ソース画像データの追加のフレームは、1個又は複数の追加のソース画像をエンコードすることができる。それ故に、ブロックB302でソース画像データをキャプチャすることは、ソース画像データの1個又は複数のフレームをキャプチャすることを含み得る。
【0074】
ソース画像データは、有人の又は無人の地上車又は航空機(たとえば、図1の地上車104及び/又は航空機106)に搭載された少なくとも1個の画像センサ(たとえば、カメラ・デバイスの)によってキャプチャされ得る。移動車は、手動で操作される移動車、自律型車両、部分的自律型車両、及び/又は遠隔制御される移動車でもよい。移動車は、ソース画像データに基づいて操作され得る。少なくとも一部の実施例では、移動車は、ブロックB314で生成された、対象画像データに基づいて少なくとも部分的に制御され得る。しかしながら、本明細書に記載の画像センサは、ハンドヘルド又は固定カメラなど、任意の適切なデバイスの一部でもよい。少なくとも1個の実施例では、画像センサは、1個又は複数のロボットに含まれ得る。
【0075】
ブロックB302で、ソース画像データが、図1のデジタル自動露出高ダイナミック・レンジ(DAE HDR)エンジン140などの、しかしこれに限定されない、DAE HDRエンジンで受信され得る及び/又はこれに提供され得る。少なくとも1個の実施例では、ソース画像データは、次のうちの少なくとも1個に提供され得る及び/又はこれによって受信され得る:HDR画像データ・バッファ146、ROIロケータ148、統計値モジュール152、及び/又はDAE HDRエンジン140の制御ポイント・セレクタ154。
【0076】
任意選択のブロックB304で、関心領域フィルタ(ROI)フィルタが、受信されたソース画像データに適用され得る。たとえば、図1のROIロケータ148は、ソース画像データのROIを決定することができる。フィルタリングされたソース画像データが、ソース画像の決定されたROIに対応する画像データのみを含むように、ROIロケータ148は、ソース画像のROIに対応するソース画像データ画素にフィルタ及び/又はマスクを適用することができる。ブロックB304は任意選択であり、ソース画像データはROIに基づいてフィルタリング及び/又は分析される必要はないことに留意されたい。
【0077】
任意選択のブロックB306では、1個又は複数の統計的メトリックスが、フィルタリングされた(又はフィルタリングされていない)ソース画像データから生成及び/又は決定され得る。たとえば、図1の統計値モジュール152は、ソース画像データの画素値(又はエンコードされたソース画像のROIに対応するソース画像データの一部の画素値)に基づいて複数の統計的メトリックスを決定及び/又は生成することができる。
【0078】
ブロックB308では、複数のトーン制御ポイントが、ソース画像データについて決定される。たとえば、DAE HDRエンジン140の制御ポイント・セレクタ154は、ソース画像データに基づいて低トーン・ポイント、中トーン・ポイント、及び/又は高トーン・ポイントを決定及び/又は選択することができる。ソース画像データがROIに基づいてフィルタリングされた実施例では、トーン制御ポイントが、ソース画像のROIに対応するソース画像データの一部に基づいて決定され得る。複数の統計的メトリックスがブロックB306において決定された実施例では、トーン制御ポイントの少なくとも一部が、統計的メトリックスの少なくとも一部に少なくとも部分的に基づいて決定され得る。少なくとも一部の実施例では、追加の制御ポイントが、ブロックB308で決定され得る。たとえば、少なくともフレア抑制制御ポイントが、ブロックB308において、追加で決定され得る。複数の制御ポイントの決定の様々な実施例が、少なくとも図4の方法400とともに説明される。低トーン・ポイント、中トーン・ポイント、高トーン・ポイント、及びフレア抑制ポイントの決定のさらなる実施例が、図2Aとともに説明される。
【0079】
ブロックB310では、トーン・マッピング関数が、トーン制御ポイントに基づいて決定され得る。たとえば、図1のトーン・マップ・ジェネレータ156は、トーン制御ポイントに基づいてトーン・マッピング関数を決定及び/又は生成することができる。それ故に、トーン・マッピング関数は、ソース画像のROIに対応するソース画像データ及び/又はソース画像データの複数の統計的メトリックスに基づき得る。
【0080】
トーン・マッピング関数の決定の様々な実施例が、少なくとも図2A~2B及び図4とともに説明されている。しかしながら、ここでは簡潔に、ゲイン線は、少なくとも中トーン・ポイント及びフレア抑制ポイントに基づいて決定され得る。ゲイン値は、ゲイン線に基づいて決定され得る。より具体的には、ゲイン値は、中トーン・ポイント及びフレア抑制ポイントの両方を含む線である、ゲイン線の傾斜と少なくともほぼ等しくなり得る。トーン・マッピング関数は、低トーン・ポイント、中トーン・ポイント、高トーン・ポイント、及びゲイン値に少なくとも基づき得る。たとえば、トーン・マッピング関数は、低トーン・ポイント、中トーン・ポイント、及び高トーン・ポイントの各々を含む及び/又は通過するように制約された適合された関数でもよい。
【0081】
少なくとも1個の実施例では、トーン・マッピング関数のフィッティングは、トーン・マッピング関数の導関数及び/又は変化の瞬間的割合が、中トーン・ポイントにおいて評価されるとき、ゲイン値と少なくともほぼ等しいように、制約される。少なくとも1個の実施例では、第1の論理デバイス(たとえば、図1の汎用プロセッサ122)は、トーン・マッピング関数を決定するために使用され得る。少なくとも1個の実施例では、トーン・マッピング関数を決定及び/又は生成するために使用される論理デバイスは、ソース画像データをキャプチャした画像センサに含まれるカメラ計算デバイスの汎用プロセッサでもよい。
【0082】
終始述べられているように、トーン・マッピング関数は、ソース画像データの画素値から対象画像データの画素値へのマッピングを提供する。それ故に、トーン・マッピング関数は、単一のスカラ変数、たとえば、ソース画像データの単一の画素のスカラ値、に依存する、スカラ関数でもよい。ソース画像データのスカラ画素値において評価されるものとしての、関数のスカラ値は、対応する画素の対象画像データのトーン・マッピングされたスカラ値でもよい。終始述べられているように、マッピングは、1対1の非線形のマッピングでもよい。トーン・マッピング関数は、低トーン・ポイントを含むように制約され得るので、トーン・マッピング関数は、低トーン・ポイントのx構成要素のスカラ値を有するソース画像の画素を低トーン・ポイントのy構成要素のスカラ値にマップすることができる。
【0083】
一部の実施例では、クリップされた画素の値が低トーン・ポイントのx構成要素に設定されるように、低トーン・ポイントのx構成要素より少ない値を有するソース画像データの任意の画素がクリップされ得る。少なくとも1個の実施例では、クリップされた画素の値がフレア抑制ポイントのx構成要素に設定されるように、フレア抑制ポイントのx構成要素より少ない値を有するソース画像データの任意の画素がクリップされ得る。トーン・マッピング関数は、中トーン・ポイントを含むように制約され得るので、トーン・マッピング関数は、中トーン・ポイントのx構成要素のスカラ値を有するソース画像の画素を中トーン・ポイントのy構成要素のスカラ値にマップすることができる。同様に、トーン・マッピング関数は、高トーン・ポイントを含むように制約され得るので、トーン・マッピング関数は、高トーン・ポイントのx構成要素のスカラ値を有するソース画像の画素を高トーン・ポイントのy構成要素のスカラ値にマップすることができる。一部の実施例では、高トーン・ポイントのx構成要素より大きい値を有するソース画像データの任意の画素は、クリップされた画素の値が高トーン・ポイントのx構成要素に設定されるように、クリップされ得る。非線形のトーン・マッピング関数の1個の非限定的実施例が図2Bに示されている。
【0084】
任意選択のブロックB312において、フレーム遅延が使用され得る。たとえば、図1の遅延ユニット150は、トーン・マッピング関数をバッファリングすることができ、一方、HDR画像センサ144は、ソース画像データの1個又は複数の追加のフレーム(たとえば、後続の及び/又は連続する第2のフレームのソース画像データ)をキャプチャする。第2のフレームの画像データがキャプチャされている間、又は少なくとも第2のフレームの画像データがDAE HDRエンジンに提供されるまで、ブロックB312のフレーム遅延は、(ブロックB310においてトーン・マッピングを生成するために使用された)第1のフレームの画像データのバッファリングを含み得る。
【0085】
ブロック314において、対象画像データが、ソース画像データ及びトーン・マッピング関数に基づいて生成され得る。たとえば、トーン・マップ・アプリケータ158は、トーン・マッピング関数をソース画像データに適用することができる。対象画像データは対象画像をエンコードすることができ、その対象画像データの画素値は、ソース画像データにトーン・マッピング関数が適用されることによって定義される。トーン・マッピング関数をソース画像データに適用することは、トーン・マッピング関数をソース画像データの画素値に適用することを含み得る。トーン・マッピング関数をソース画像データに適用することは、非線形の及び1対1のマッピング及び/又はトーン・マッピング関数によって提供されるソース画像データと対象画像データとの対応を介する対象画像データへのソース画像データの変形及び/又はマッピングを含み得る。フレーム遅延を含む実施例において、トーン・マッピング関数は、トーン・マッピング関数を生成するために使用されたソース画像データのフレーム(たとえば、第1のフレームのソース画像データ)の後続の及び/又はこれに連続するフレームのソース画像データ(たとえば、第2のフレームのソース画像データ)に適用され得る。
【0086】
ブロックB312のフレーム遅延が使用されない実施例では、トーン・マッピング関数は、トーン・マッピング関数を決定するために使用された同じフレームのソース画像データに適用され得る。一部の実施例では、第2の論理デバイス(たとえば、図1の画像信号プロセッサ(ISP)124)は、トーン・マッピング関数をソース画像データに適用して対象画像データを生成するために使用され得る。一部の実施例では、使用されるISPは、ソース画像データをキャプチャするために使用されたカメラ計算デバイスのISPでもよい。少なくとも1個の実施例では、ISPのパイプラインは、トーン・マッピング関数をソース画像データに適用するために使用され得る。
【0087】
一部の実施例では、対象画像データを生成することは、標準ダイナミック・レンジ(SDR)又は低ダイナミック・レンジ(LDR)対象画像データを生成することを含み得る。SDR又はLDR対象画像データは、トーン・マッピングされた対象画像データのトーン・マッピング関数及び/又は画素値に基づき得る。たとえば、ガンマ圧縮関数は、カラー圧縮された対象画像データを生成するためにトーン・マッピングされた対象画像データに適用され得る。SDR又はLDR対象画像データは、カラー圧縮された対象画像データに基づいて生成され得る。
【0088】
図4は、本開示のいくつかの実施例による、より高いダイナミック・レンジ画像データからより低いダイナミック・レンジ画像データを生成するための方法400を示す流れ図である。方法400のブロックB402~B410は、複数のトーン制御ポイントの選択及び/又は決定を含む。終始述べられているように、複数のトーン制御ポイントは、図1の制御ポイント・セレクタ154を介して選択及び/又は決定され得る。複数の制御ポイントの決定の様々な実施例が、図3の方法300の少なくともブロックB308とともに説明される。複数の制御トーン・ポイントの決定は、ソース画像データの画素値、ソース画像内のROIに対応するソース画像データの一部の画素値、及び/又はソース画像データの画素値に基づく複数の統計的メトリックスに基づき得る。やはり終始述べられているように、複数のトーン制御ポイントは、少なくとも低トーン・ポイント、中トーン・ポイント、及び/又は高トーン・ポイントを含み得る。一部の実施例では、複数のトーン制御ポイントは、フレア抑制ポイントを追加で含み得る。そのようなトーン制御ポイントは、少なくとも図2A~2Bに示されている。方法400の部分が第1の論理デバイス(たとえば、図1の汎用プロセッサ122)によって実施され得、方法400の他の部分が第2の論理デバイス(たとえば、図1の画像信号プロセッサ(ISP)124)によって実施され得ることにも留意されたい。
【0089】
一部の実施例では、方法400の初期化の前に、ソース画像データの画素値は、正規化されたソース画像データの画素値が[0,1]から広がるように、正規化され得る。方法400はブロックB402で開始し、そこで、中トーン・ポイントがソース画像データに基づいて決定される。一部の実施例では、中トーン・ポイントのx構成要素を決定するために、ソース画像データは、フィルタリングされたソース画像データを生成するために、高トーン・フィルタ及び低トーン・フィルタによってフィルタリングされ得る。高トーン・フィルタは、高トーン閾値より大きい画素値を含むソース画像データの部分をフィルタリングで除去する。低トーン・フィルタは、低トーン閾値より小さい画素値を含むソース画像データの部分をフィルタリングで除去する。中トーン・ポイントのx構成要素は、高トーン及び低トーン・フィルタの適用後に残るソース画像データの部分の画素値を平均することによって、決定され得る。他の実施例では、高トーン及び低トーン・フィルタはソース画像データに適用されない。
【0090】
一部の実施例では、画素値の平均化は、画素値の対数平均化を含み得る。そのような実施例では、対数変換された画像データ画素値は、フィルタリングされた又はフィルタリングされていないソース画像データに対数関数を適用することによって生成され得る。対数関数の基数は、ソース画像データに基づいて選択され得る。1個の実施例では、対数関数の基数は、10である。他の実施例では、対数関数は自然対数関数でもよい。対数変換された画素値の平均値が決定され得る。対数変換された画素値の平均値は、対数関数の対応する基数によってべき乗され得る。中トーン・ポイントのx構成要素は、対数変換されたソース画像データの画素値の平均値のべき乗に設定され得る。中トーン・ポイントのy構成要素は、対象画像データの指定された中トーン値に設定され得る。
【0091】
ブロックB404において、低トーン・ポイントは、ソース画像データに基づいて決定され得る。1個の非限定的実施例では、ソース画像データの画素値のサブセットが決定及び/又は生成され、サブセットに含まれる画素の各値は、サブセットから除外される画素の画素値より少ない。すなわち、フィルタリングの後に残る画素値のみが、低トーン閾値より小さい画素値を有するそれらの画素であるような、低トーン・フィルタを介して、ソース画像データがフィルタリングされ得る。低トーン・ポイントのx構成要素は、サブセットの画素値に基づいて決定され得る。たとえば、低トーン・フィルタリング・プロセスを生き抜く画素値は、低トーン・ポイントのx構成要素を決定するために、平均され得る。低トーン・ポイントのy構成要素は、対象画像データの最小画素値になるように決定及び/又は選択され得る。少なくとも1個の実施例では、低トーン・ポイントのy構成要素は、0.0に設定される。低トーン・ポイントは、ブラック・ポイントでもよい。
【0092】
ブロックB406では、高トーン・ポイントが、ソース画像データに基づいて決定され得る。1個の非限定的実施例では、ソース画像データの画素値のサブセットが決定及び/又は生成され、サブセットに含まれる画素の各値は、サブセットから除外される画素の画素値より大きい。すなわち、フィルタリングの後に残る画素値のみが、高トーン閾値より大きな画素値を有する画素であるような、高トーン・フィルタを介して、ソース画像データがフィルタリングされ得る。高トーン・ポイントのx構成要素は、画素値のサブセットに基づいて決定され得る。たとえば、高トーン・フィルタリング・プロセスを生き抜く画素値は、高トーン・ポイントのx構成要素を決定するために、平均され得る。高トーン・ポイントのy構成要素は、対象画像データの最大画素値になるように決定及び/又は選択され得る。少なくとも1個の実施例では、低トーン・ポイントのy構成要素は、1.0に設定される。高トーンは、ホワイト・ポイントでもよい。0.0への低トーン・ポイントのy構成要素及び高トーン構成要素のy構成要素を設定することによって、対象画像データは、[0,1]の範囲に正規化される。
【0093】
ブロックB408において、フレア抑制ポイントが決定され得る。フレア抑制ポイントのx構成要素は、トーンにおいて抑制されることになる最大フレアになることになる値に設定され得る。一部の実施例では、フレア抑制ポイントのx構成要素は、ユーザが選択することができる。他の実施例では、x構成要素は、ソース画像の画素値及び/又はソース画像データの決定された複数の統計的メトリックスに基づいて、動的に決定され得る。たとえば、フレア抑制ポイントのx構成要素は、中トーン画素値又は低トーン閾値処理された画素値の値のパーセンテージに基づいて、設定され得る。様々な実施例において、フレア抑制ポイントのx構成要素は、低トーン・ポイントのx構成要素より大きいが中トーン・ポイントのx構成要素より小さくなるように選択され得得る。様々な非限定的実施例において、フレア抑制ポイントのy構成要素は0.0に設定される。他の実施例では、フレア抑制ポイントのy構成要素は、0.0より大きいが中トーン・ポイントのy構成要素より小さくなるように設定又は選択され得る。
【0094】
任意選択のブロックB410において、1個又は複数の追加の制御ポイントが、ソース画像データに基づいて決定される。ブロックB412において、ソース・データは、制御ポイントに基づいて事前処理され得る。たとえば、低トーン・ポイントのx構成要素より小さい画素値を有するソース画像データの画素の各々は、そのような画素の画素値が低トーン・ポイントのx構成要素のスカラ値に設定されるように、クリップされ得る。少なくとも1個の実施例では、フレア抑制ポイントのx構成要素より小さい画素値を有するソース画像データの画素の各々は、そのような画素の画素値がフレア抑制ポイントのx構成要素のスカラ値に設定されるように、クリップされ得る。さらに、高トーン・ポイントのx構成要素より大きな画素値を有するソース画像データの画素の各々は、そのような画素の画素値が高トーン・ポイントのx構成要素のスカラ値に設定されるように、クリップされ得る。
【0095】
ブロックB414において、ゲイン値が、中トーン・ポイント及びフレア抑制ポイントに基づいて決定され得る。たとえば、ゲイン線が、中トーン・ポイント及びフレア抑制ポイントを通して構築され得る。ゲイン値が、ゲイン値線の傾斜になるように設定され得る。様々な実施例において、傾斜は右上がりである。ゲイン値線、及び対応する傾斜の実施例が、図2Aに示されている。
【0096】
ブロックB416において、トーン・マッピング関数が、低トーン・ポイント、中トーン・ポイント、及び高トーン・ポイントに基づいて決定される。一部の実施例では、トーン・マッピング関数の決定はさらに、ゲイン値に基づく。さらに他の実施例では、トーン・マッピング関数の決定はさらに、ブロックB410で決定された1個又は複数の追加のトーン制御ポイントに基づく。様々な実施例において、図1のトーン・マップ・ジェネレータ156は、トーン・マッピング関数を決定するために使用され得る。より具体的には、トーン・マップ・ジェネレータ156は、図1の汎用プロセッサ122を使用してトーン・マッピング関数を生成することができる。
【0097】
トーン・マッピング関数を決定するために、1個又は複数のパラメータ関数が適合され得、そこで、適合は、様々なトーン制御ポイントの少なくとも一部によって制約される。パラメータ関数は、ほぼあらゆる次数の、1個又は複数の多項式を含み得る。一部の実施例では、トーン・マッピング関数のフィッティングは、トーン・マッピング関数が少なくとも低トーン・ポイント、中トーン・ポイント、及び高トーン・ポイントを含む及び/又はこれらと交差するように、制約され得る。さらなる実施例において、トーン・マッピング関数のフィッティングは、トーン・マッピング関数が追加のトーン制御ポイントを含む及び/又はこれと交差するように、制約され得る。一部の実施例では、中トーン・ポイントのx構成要素において評価された、トーン・マッピング関数の導関数及び/又は変化の瞬間的割合がゲイン値と等しいように、トーン・マッピング関数のフィッティングが制約される。トーン・マッピング関数の実施例が図2Bに示されている。
【0098】
様々なスプライン方法は、トーン・マッピング関数を適合及び/又は生成するために使用され得る。トーン・マッピング関数を生成することは、直線でない曲線を生成及び/又は構築することを含み得る。直線でない曲線は、グローバル・トーン曲線(GTC)でもよい。曲線は、複数の線形又は曲線状のセグメント(たとえば、複数のスプライン)を含み得る。曲線は、ベジエ曲線、たとえば、2次又は3次ベジエ曲線、でもよい。曲線は、2次、3次又はより高次のパラメータ方程式を介して構築され得る。様々なスプライン方法が、曲線を生成するために使用され得る。スプライン又はセグメントの間の接合部は、トーン・マッピング関数の導関数が連続的であることを確実にするために、構築され得る。
【0099】
ブロックB418において、トーン・マッピング関数は、対象画像データを生成するために適用され得る。様々な実施例において、図1のトーン・マップ・アプリケータ158は、トーン・マッピング関数を介して、ソース画像データを対象画像データに変形するために使用され得る。トーン・マップ・アプリケータ158は、ソース画像データの非線形変形を適用するために、図1のISPを使用することができる。少なくとも1個の実施例では、ISP124のパイプラインは、対象画像データの変形及び生成を適用するために使用され得る。
【0100】
ブロックB420及びB422は、トーン・マッピングされた対象画像データからSDR対象画像データ又はLDR画像日付を生成するために使用され得る任意選択のブロックである。ブロックB420において、ガンマ圧縮関数は、カラー圧縮された画像データを生成するために、トーン・マッピングされた画像データに適用され得る。ブロックB422において、SDR又はLDR対象画像データのいずれかが、カラー圧縮ソース画像データに基づいて生成され得る。
【0101】
図5は、本開示のいくつかの実施例による、トーン・マッピングの動作を分散するための方法500を示す流れ図である。ブロックB502において、第1の論理デバイスが、トーン・マッピング関数を決定するために使用され得る。ブロックB502において、第1の論理デバイスは、汎用プロセッサ122、画像信号プロセッサ(ISP)124、ASIC126、及び/又はFPGA128などの、しかしこれらに限定されない、図1の論理デバイス120のいずれかでもよい。一部の実施例では、トーン・マッピング関数を決定するために使用される第1の論理デバイスは、汎用プロセッサ122である。少なくとも1個の実施例では、グラフィック処理ユニット(GPU)は、トーン・マッピング関数を決定するために使用される。
【0102】
ブロックB504において、第2の論理デバイスは、トーン・マッピング関数をソース画像データに適用する及び対象画像ソース・データを生成するために、使用され得る。ブロックB504において、第2の論理デバイスは、汎用プロセッサ122、ISP124、ASIC126、及び/又はFPGA128などの、しかしこれらに限定されない、論理デバイス120のいずれかでもよい。一部の実施例では、トーン・マッピング関数を適用するために使用される第2の論理デバイスは、ISP124である。ISP124のパイプラインは、トーン・マッピング関数を適用する及びソース画像データを対象画像データに変形するために、使用され得る。少なくとも1個の実施例では、GPUは、トーン・マッピング関数を決定するために使用される。
【0103】
自律型車両の例示的実施例
図6Aは、本開示のいくつかの実施例による、例示的自律型車両104のイラストレーションである。自律型車両104(或いは、本明細書で「移動車104」と称される)は、自動車、トラック、バス、及び/又は1人若しくは複数の乗客を乗せられる別のタイプの移動車など、乗用車を含み得る。自律型車両は、一般に、米国運輸省道路交通安全局(NHTSA:National Highway Traffic Safety Administration)、米国運輸省の部署、及び自動車技術者協会(SAE:Society of Automotive Engineers)「Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicle」(2018年6月15日に公開された規格番号J3016-201806、2016年9月30日に公開された規格番号J3016-201609、及びこの規格の前の及び未来のバージョン)によって定義される、自動化レベルに関して記述される。移動車104は、自律運転レベルのレベル3~レベル5のうちの1個又は複数による機能の能力を有し得る。たとえば、移動車104は、実施例に応じて、条件付き自動化(レベル3)、高度自動化(レベル4)、及び/又は完全自動化(レベル5)の能力を有し得る。
【0104】
移動車104は、移動車のシャシ、車体、車輪(たとえば、2、4、6、8、18など)、タイヤ、車軸、及び他の構成要素などの構成要素を含み得る。移動車104は、内部燃焼エンジン、ハイブリッド動力装置、完全な電気式エンジン、及び/又は別の推進システム・タイプなど、推進システム650を含み得る。推進システム650は、移動車104の推進力を有効にするために、トランスミッションを含み得る、移動車104のドライブ・トレインに接続され得る。推進システム650は、スロットル/加速装置652からの信号の受信に応答して制御され得る。
【0105】
ハンドルを含み得る、ステアリング・システム654は、推進システム650が動作しているときに(たとえば、移動車が移動中のときに)移動車104のかじを取る(たとえば、所望の進路又はルートに沿って)ために使用され得る。ステアリング・システム654は、ステアリング・アクチュエータ656から信号を受信することができる。ハンドルは、完全自動化(レベル5)機能のオプションでもよい。
【0106】
ブレーキ・センサ・システム646は、ブレーキ・アクチュエータ648及び/又はブレーキ・センサからの信号の受信に応答して移動車ブレーキを動作させるために使用され得る。
【0107】
1個又は複数のシステム・オン・チップ(SoC:system on Chip)604(図6C)及び/又はGPUを含み得る、コントローラ636は、移動車104の1個若しくは複数の構成要素及び/又はシステムに信号(たとえば、コマンドの表現)を提供することができる。たとえば、コントローラは、1個又は複数のブレーキ・アクチュエータ648を介して移動車ブレーキを動作させて、1個又は複数のステアリング・アクチュエータ656を介してステアリング・システム654を動作させて、1個又は複数のスロットル/加速装置652を介して推進システム650を動作させるために、信号を送ることができる。コントローラ636は、センサ信号を処理する、並びに律的運転を可能にするために及び/又は運転者の移動車104の運転を支援するために動作コマンド(たとえば、コマンドを表す信号)を出力する、1個又は複数の搭載された(たとえば、統合された)計算デバイス(たとえば、スーパーコンピュータ)を含み得る。コントローラ636は、自律運転機能のための第1のコントローラ636、機能的安全性機能のための第2のコントローラ636、人工知能機能(たとえば、コンピュータ・ビジョン)のための第3のコントローラ636、インフォテインメント機能のための第4のコントローラ636、緊急状態における冗長性のための第5のコントローラ636、及び/又は他のコントローラを含み得る。いくつかの実例では、単一のコントローラ636が、前述の機能のうちの2個以上を処理することができ、2個以上のコントローラ636が、単一の機能、及び/又はその任意の組合せを処理することができる。
【0108】
コントローラ636は、1個又は複数のセンサから受信したセンサ・データ(たとえば、センサ入力)に応答して移動車104の1個又は複数の構成要素及び/又はシステムを制御するための信号を提供することができる。センサ・データは、たとえば、そして制限なしに、全地球的航法衛星システム・センサ658(たとえば、グローバル・ポジショニング・システム・センサ)、RADARセンサ660、超音波センサ662、LIDARセンサ664、慣性計測装置(IMU:inertial measurement unit)センサ666(たとえば、加速度計、ジャイロスコープ、磁気コンパス、磁力計など)、マイクロフォン696、ステレオ・カメラ668、ワイドビュー・カメラ670(たとえば、魚眼カメラ)、赤外線カメラ672、サラウンド・カメラ674(たとえば、360度カメラ)、長距離及び/又は中距離カメラ698、スピード・センサ644(たとえば、移動車104のスピードを測定するための)、振動センサ642、ステアリング・センサ640、ブレーキ・センサ(たとえば、ブレーキ・センサ・システム646の一部としての)、及び/又は他のセンサ・タイプから受信され得る。
【0109】
コントローラ636のうちの1個又は複数のコントローラは、移動車104の計器群632から入力(たとえば、入力データによって表される)を受信し、出力(たとえば、出力データ、表示データなどによって表される)をヒューマン・マシン・インターフェース(HMI:human-machine interface)ディスプレイ634、可聴式アナンシエータ、ラウドスピーカ、及び/又は移動車104の他の構成要素を介して提供することができる。出力は、移動車ベロシティ、スピード、時間、マップ・データ(たとえば、図6CのHDマップ622)、位置データ(たとえば、マップ上などの、移動車の104の位置)、方向、他の移動車の位置(たとえば、占有グリッド)、コントローラ636によって把握されるものとしての物体及び物体の状況に関する情報などの、情報を含み得る。たとえば、HMIディスプレイ634は、1個又は複数の物体(たとえば、道路標識、警告標識、交通信号の変化など)の存在、及び/又は移動車が行った、行っている、又は行うであろう運転操作(たとえば、今、車線変更をしていること、2マイル内の出口34Bを出ることなど)に関する情報を表示することができる。
【0110】
移動車104はさらに、1個又は複数のワイヤレス・アンテナ626及び/又はモデムを使用して1個又は複数のネットワークを介して通信することができるネットワーク・インターフェース624を含む。たとえば、ネットワーク・インターフェース624は、LTE、WCDMA(登録商標)、UMTS、GSM(登録商標)、CDMA2000などを介する通信の能力を有し得る。ワイヤレス・アンテナ626はまた、ブルートゥース(登録商標)、ブルートゥース(登録商標)LE、Z-Wave、ZigBeeなどのローカル・エリア・ネットワーク、及び/又はLoRaWAN、SigFoxなどのロー・パワー・ワイドエリア・ネットワーク(LPWAN:low power wide-area network)を使用し、環境内の物体(たとえば、移動車、モバイル・デバイスなど)の間の通信を可能にすることができる。
【0111】
図6Bは、本開示のいくつかの実施例による、図6Aの例示的自律型車両104のカメラ位置及び視野の実例である。カメラ及びそれぞれの視野は、1個の例示的実施例であり、制限することは意図されていない。たとえば、追加の及び/又は代替カメラが含まれ得る、及び/又はカメラは移動車104の異なる位置に置かれ得る。
【0112】
カメラのカメラ・タイプは、移動車104の構成要素及び/又はシステムと使用するようになされ得るデジタル・カメラを含み得るが、これに限定されない。カメラは、自動車安全整合性レベル(ASIL:automotive safety integrity level)Bにおいて及び/又は別のASILにおいて動作することができる。カメラ・タイプは、実施例に応じて、60フレーム/秒(fps)、620fps、240fpsなど、任意の画像キャプチャ・レートの能力を有し得る。カメラは、ロール・シャッタ、グローバル・シャッタ、別のタイプのシャッタ、又はその組合せを使用する能力を有し得る。いくつかの実例では、カラー・フィルタ・アレイは、RCCC(red clear clear clear)カラー・フィルタ・アレイ、RCCB(red clear clear blue)カラー・フィルタ・アレイ、RBGC(red blue green clear)カラー・フィルタ・アレイ、Foveon X3カラー・フィルタ・アレイ、Bayerセンサ(RGGB)カラー・フィルタ・アレイ、モノクロ・センサ・カラー・フィルタ・アレイ、及び/又は別のタイプのカラー・フィルタ・アレイを含み得る。一部の実施例では、RCCC、RCCB、及び/又はRBGCカラー・フィルタ・アレイを有するカメラなどのクリア画素カメラは、光感度を上げるための取り組みにおいて使用され得る。
【0113】
いくつかの実例では、カメラのうちの1個又は複数が、高度運転者支援システム(ADAS:advanced driver assistance system)機能(たとえば、冗長又はフェイルセーフ設計の一部として)を実行するために使用され得る。たとえば、多機能モノ・カメラは、車線逸脱警報、交通標識アシスト及びインテリジェント・ヘッドランプ制御を含む機能を提供するために設置され得る。カメラのうちの1個又は複数(たとえば、すべてのカメラ)が、画像データ(たとえば、ビデオ)を同時に記録及び提供することができる。
【0114】
カメラのうちの1個又は複数は、カメラの画像データ・キャプチャ能力を妨げることがある自動車内からの迷光及び反射(たとえば、フロントガラスのミラーにおいて反射されたダッシュボードからの反射)を取り除くために、カスタム設計された(3D印刷された)部品などの取付部品において取り付けられ得る。サイドミラー取付部品を参照すると、サイドミラー部品は、カメラ取付板がサイドミラーの形状に合うように、カスタム3D印刷され得る。いくつかの実例では、カメラは、サイドミラー内に統合され得る。サイドビュー・カメラについては、カメラはまた、キャビンの各角にある4個の支柱内に統合され得る。
【0115】
移動車104の前の環境の部分を含む視野を有するカメラ(たとえば、前向きのカメラ)は、前向きの進路及び障害物の識別を助け、1個又は複数のコントローラ636及び/又は制御SoCの助けにより、占有グリッドの生成及び/又は好ましい移動車進路の決定に不可欠な情報の提供の提供を助けるための、サラウンド・ビューのために使用され得る。前向きのカメラは、緊急ブレーキ、歩行者検出、及び衝突回避を含む、LIDARと同じADAS機能の多くを実行するために使用され得る。前向きのカメラはまた、車線逸脱警報(「LDW(Lane Departure Warning)」)、自律的クルーズ制御(「ACC(Autonomous Cruise Control)」)、及び/又は交通標識認識などの他の機能を含むADAS機能及びシステムのために使用され得る。
【0116】
様々なカメラが、たとえば、CMOS(complementary metal oxide semiconductor)カラー画像化装置を含む単眼カメラ・プラットフォームを含む、前向きの構成において使用され得る。別の実例は、周辺(たとえば、歩行者、交差する交通又は自転車)からのビューに入る物体を把握するために使用され得るワイドビュー・カメラ670でもよい。図6Bにはワイドビュー・カメラは1個だけ示されているが、移動車104には任意の数のワイドビュー・カメラ670が存在し得る。加えて、長距離カメラ698(たとえば、ロングビュー・ステレオ・カメラ・ペア)が、特に、ニューラル・ネットワークがまだトレーニングされていない物体について、深度ベースの物体検出のために使用され得る。長距離カメラ698はまた、物体検出及び分類、並びに基本物体追跡のために使用され得る。
【0117】
1個又は複数のステレオ・カメラ668もまた、前向きの構成に含まれ得る。ステレオ・カメラ668は、単一のチップ上に統合されたCAN又はイーサネット(登録商標)・インターフェースを有するプログラマブル論理(FPGA)及びマルチコア・マイクロプロセッサを提供し得る、拡張可能な処理ユニットを備えた統合された制御ユニットを含み得る。そのようなユニットは、画像内のすべてのポイントの距離推定値を含む、移動車の環境の3Dマップを生成するために使用され得る。代替ステレオ・カメラ668は、2個のカメラ・レンズ(左と右に1個ずつ)と、移動車から対象物体までの距離を測定する及び生成された情報(たとえば、メタデータ)を使用して自律的緊急ブレーキ及び車線逸脱警報機能をアクティブにすることができる画像処理チップとを含み得る、コンパクト・ステレオ・ビジョン・センサを含み得る。他のタイプのステレオ・カメラ668が、本明細書に記載のものに加えて、又はそれらの代わりに、使用されてもよい。
【0118】
移動車104の側面に対する環境の部分を含む視野を有するカメラ(たとえば、サイドビュー・カメラ)が、占有グリッドを作成及び更新するために並びに側面衝撃衝突警報を生成するために使用される情報を提供する、サラウンド・ビューのために使用され得る。たとえば、サラウンド・カメラ674(たとえば、図6Bに示されるような4個のサラウンド・カメラ674)は、移動車104上に位置付けられ得る。サラウンド・カメラ674は、ワイドビュー・カメラ670、魚眼カメラ、360度カメラ、及び/又は同類のものを含み得る。たとえば、4個の魚眼カメラが、移動車の前、後ろ、及び側面に配置され得る。代替配置において、移動車は、3個のサラウンド・カメラ674(たとえば、左、右、及び後部)を使用してもよく、第4のサラウンド・ビュー・カメラとして1個又は複数の他のカメラ(たとえば、前向きのカメラ)を活用してもよい。
【0119】
移動車104の後ろに対する環境の部分を含む視野を有するカメラ(たとえば、後方確認カメラ)が、駐車支援、サラウンド・ビュー、後部衝突警報、並びに占有グリッドの作成及び更新のために使用され得る。本明細書に記載のように、前向きのカメラ(たとえば、長距離及び/又は中距離カメラ698、ステレオ・カメラ668)、赤外線カメラ672など)としても適したカメラを含むがこれらに限定されない、多種多様なカメラが使用され得る。
【0120】
図6Cは、本開示のいくつかの実施例による、図6Aの例示的自律型車両104の例示的システム・アーキテクチャのブロック図である。本明細書に記載されているこの及び他の配置は単に実例として説明されていることを理解されたい。他の配置及び要素(たとえば、マシン、インターフェース、機能、順番、機能のグループ分けなど)が、示されたものに加えて又はこれらに代わって使用されてもよく、いくつかの要素は共に除外されてもよい。さらに、本明細書に記載の要素の多くは、個別の又は分散された構成要素として又は他の構成要素と併せて、並びに任意の適切な組合せ及び場所において、実装され得る機能エンティティである。エンティティによって実行されるものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって実施され得る。たとえば、様々な機能が、メモリに記憶された命令を実行するプロセッサによって実施され得る。
【0121】
図6Cの移動車104の構成要素、特徴、及びシステムのそれぞれは、バス602を介して接続されるものとして図示されている。バス602は、コントローラ・エリア・ネットワーク(CAN)データ・インターフェース(或いは、「CANバス」と称される)を含み得る。CANは、ブレーキ、加速度、ブレーキ、ステアリング、フロント・ガラス・ワイパなどの作動など、移動車104の様々な特徴及び機能の制御を助けるために使用される移動車104内のネットワークでもよい。CANバスは、それぞれが独自の一意の識別子(たとえば、CAN ID)を有する、数ダース又は数百ものノードを有するように構成され得る。CANバスは、ハンドル角度、対地速度、1分間のエンジン回転(RPM:revolutions per minute)、ボタン位置、及び/又は他の移動車状況指標を見つけるために読み取られ得る。CANバスは、ASIL B準拠でもよい。
【0122】
バス602は、CANバスであるものとして本明細書に記載されているが、これは制限することを意図されていない。たとえば、CANバスに加えて、又はこのその代替として、FlexRay及び/又はイーサネット(登録商標)が使用されてもよい。加えて、単一の線が、バス602を表すために使用されているが、これは制限することを意図されていない。たとえば、1個又は複数のCANバス、1個又は複数のFlexRayバス、1個又は複数のイーサネット(登録商標)・バス、及び/又は異なるプロトコルを使用する1個若しくは複数の他のタイプのバスを含み得る、任意の数のバス602が存在し得る。いくつかの実例では、2個以上のバス602が、異なる機能を実行するために使用され得る、及び/又は冗長性のために使用され得る。たとえば、第1のバス602は衝突回避機能のために使用されてもよく、第2のバス602は作動制御のために使用されてもよい。任意の実例において、各バス602は、移動車104の構成要素のいずれかと通信し得、2個以上のバス602が同じ構成要素と通信し得る。いくつかの実例では、移動車内の各SoC604、各コントローラ636、及び/又は各コンピュータは、同じ入力データ(たとえば、移動車104のセンサからの入力)へのアクセスを有し得、CANバスなどの共通バスに接続され得る。
【0123】
移動車104は、図6Aに関して本明細書で説明されるものなど、1個又は複数のコントローラ636を含み得る。コントローラ636は、様々な機能のために使用され得る。コントローラ636は、移動車104の様々な他の構成要素及びシステムのいずれかに連結されてもよく、移動車104、移動車104の人工知能、移動車104のためのインフォテインメント、及び/又は同類のものの制御のために使用され得る。
【0124】
移動車104は、システム・オン・チップ(SoC)604を含み得る。SoC604は、CPU606、GPU608、プロセッサ610、キャッシュ612、加速装置614、データ・ストア616、及び/又は図示されていない他の構成要素及び特徴を含み得る。SoC604は、様々なプラットフォーム及びシステム内の移動車104を制御するために使用され得る。たとえば、SoC604は、1個又は複数のサーバ(たとえば、図6Dのサーバ678)からネットワーク・インターフェース624を介してマップのリフレッシュ及び/又は更新を取得することができるHDマップ622を有するシステム(たとえば、移動車104のシステム)において結合され得る。
【0125】
CPU606は、CPUクラスタ又はCPU複合体(或いは、「CCPLEX」とも称される)を含み得る。CPU606は、複数のコア及び/又はL2キャッシュを含み得る。たとえば、一部の実施例では、CPU606は、コヒーレント・マルチプロセッサ構成内の8個のコアを含み得る。一部の実施例では、CPU606は、4個のデュアルコア・クラスタを含むことができ、各クラスタが専用のL2キャッシュ(たとえば、2MBL2キャッシュ)を有する。CPU606(たとえば、CCPLEX)は、CPU606のクラスタの任意の組合せが任意の所与の時間にアクティブになることを可能にする同時クラスタ動作をサポートするように構成され得る。
【0126】
CPU606は、以下の特徴のうちの1個又は複数を含む電力管理能力を実装することができる:個別ハードウェア・ブロックが、動的電力を節約するためにアイドル状態のときに自動的にクロック・ゲーティングされ得る、各コア・クロックは、WFI/WFE命令の実行により命令をコアがアクティブに実行していないときにゲーティングされ得る、各コアは、独立してパワー・ゲーティングされ得る、各コア・クラスタは、すべてのコアがクロック・ゲーティングされる若しくはパワー・ゲーティングされるときに、独立してクロック・ゲーティングされ得る、及び/又は、各コア・クラスタは、すべてのコアがパワー・ゲーティングされるときに、独立してパワー・ゲーティングされ得る。CPU606は、電力状態を管理するための強化されたアルゴリズムをさらに実装することができ、そこでは、許容される電力状態及び予想されるウェイクアップ時間が指定され、ハードウェア/マイクロ・コードが、コア、クラスタ、及びCCPLEXに入力するための最良の電力状態を決定する。処理コアは、作業がマイクロ・コードにオフロードされたソフトウェアにおける簡略化された電力状態入力シーケンスをサポートすることができる。
【0127】
GPU608は、統合されたGPU(或いは本明細書において「iGPU」と称される)を含み得る。GPU608は、プログラマブルになり得、並行のワークロードに効率的になり得る。一部の実例では、GPU608は、強化されたテンソル命令セットを使用することができる。GPU608は、1個又は複数のストリーミング・マイクロプロセッサを含み得、そこで、各ストリーミング・マイクロプロセッサは、L1キャッシュ(たとえば、少なくとも96KB記憶容量を有するL1キャッシュ)を含み得、ストリーミング・マイクロプロセッサのうちの2個以上が、キャッシュ(たとえば、512KB記憶容量を有するL2キャッシュ)を共用し得る。一部の実施例では、GPU608は、少なくとも8個のストリーミング・マイクロプロセッサを含み得る。GPU608は、計算アプリケーション・プログラミング・インターフェース(API)を使用することができる。加えて、GPU608は、1個又は複数の並行のコンピューティング・プラットフォーム及び/又はプログラミング・モデル(たとえば、NVIDIAのCUDA)を使用することができる。
【0128】
GPU608は、自動車の及び組み込まれた使用事例における最高のパフォーマンスのために電力最適化され得る。たとえば、GPU608は、FinFET(Fin field-effect transistor)上に製造され得る。しかしながら、これは制限することを意図されておらず、GPU608は、他の半導体製造プロセスを使用し、製造され得る。各ストリーミング・マイクロプロセッサは、複数のブロックに区切られたいくつかの混合精度処理コアを組み込むことができる。限定ではなく、たとえば、64 PF32コア及び32 PF64コアは、4個の処理ブロックに区切られてもよい。そのような実例では、各処理ブロックは、16 FP32コア、8 FP64コア、16 INT32コア、深層学習行列演算のための2個の混合精度NVIDIAテンソル・コア、L0命令キャッシュ、ワープ・スケジューラ、発送ユニット、及び/又は64KBレジスタ・ファイルを割り当てられ得る。加えて、ストリーミング・マイクロプロセッサは、計算及びアドレス指定演算の混合を有するワークロードの効率的な実行を提供するための独立した並行の整数及び浮動小数点データ進路を含み得る。ストリーミング・マイクロプロセッサは、並行スレッドの間のより高い細粒度の同期及び連携を可能にするために、独立したスレッド・スケジューリング能力を含み得る。ストリーミング・マイクロプロセッサは、プログラミングを単純化しつつ性能を向上させるために、結合されたL1データ・キャッシュ及び共用メモリ・ユニットを含み得る。
【0129】
GPU608は、一部の実例では、900GB/秒のピーク・メモリ帯域幅に関して、提供するための高帯域幅メモリ(HBM:high bandwidth memory)及び/又は16GBHBM2メモリ・サブシステムを含み得る。いくつかの実例では、HBMメモリに加えて、又はこれの代わりに、グラフィックス・ダブル・データ・レート・タイプ5同期ランダム・アクセス・メモリ(GDDR5:graphics double data rate type five synchronous random-access memory)などの同期グラフィックス・ランダム・アクセス・メモリ(SGRAM:synchronous graphics random-access memory)が使用され得る。
【0130】
GPU608は、メモリ・ページに最も頻繁にアクセスするプロセッサへのそれらのメモリ・ページのより正確な移動を可能にするためにアクセス・カウンタを含む統一されたメモリ技術を含むことができ、それにより、プロセッサ間で共用される記憶範囲の効率を向上させる。いくつかの実例では、アドレス変換サービス(ATS:address translation service)サポートが、GPU608がCPU606ページ・テーブルに直接アクセスすることを可能にするために使用され得る。そのような実例では、GPU608メモリ管理ユニット(MMU:memory management unit)がミスを経験するとき、アドレス変換要求が、CPU606に送信され得る。応答して、CPU606は、アドレスの仮想対現実マッピングのためのそのページ・テーブルを調べることができ、GPU608に変換を送り返す。そのようなものとして、統一されたメモリ技術は、CPU606とGPU608との両方のメモリの単一統一仮想アドレス空間を可能にすることができ、それによりGPU608へのアプリケーションのGPU608プログラミング及び移植を単純化する。
【0131】
加えて、GPU608は、他のプロセッサのメモリへのGPU608のアクセスの頻度を記録することができるアクセス・カウンタを含み得る。アクセス・カウンタは、メモリ・ページが最も頻繁にそのページにアクセスしているプロセッサの物理メモリに移動されることを確実にするのを助けることができる。
【0132】
SoC604は、本明細書に記載のものを含む任意の数のキャッシュ612を含み得る。たとえば、キャッシュ612は、CPU606とGPU608との両方に利用可能な(たとえば、CPU606とGPU608との両方に接続された)L3キャッシュを含み得る。キャッシュ612は、キャッシュ・コヒーレンス・プロトコル(たとえば、MEI、MESI、MSIなど)を使用することなどによって、線の状態を記録することができるライトバック・キャッシュを含み得る。L3キャッシュは、より小さいキャッシュ・サイズが使用されてもよいが、実施例に応じて、4MB以上を含み得る。
【0133】
SoC604は、1個又は複数の加速装置614(たとえば、ハードウェア加速装置、ソフトウェア加速装置、又はその組合せ)を含み得る。たとえば、SoC604は、最適化されたハードウェア加速装置及び/又は大きなオンチップ・メモリを含み得る、ハードウェア加速クラスタを含み得る。大きなオンチップメモリ(たとえば、4MBのSRAM)は、ハードウェア加速クラスタがニューラル・ネットワーク及び他の演算を加速することを可能にし得る。ハードウェア加速クラスタは、GPU608を補完するために及びGPU608のタスクの一部をオフロードするために(たとえば、他のタスクを実行するためのGPU608のより多くのサイクルを解放するために)使用され得る。一実例として、加速装置614は、加速に適するように十分に安定している対象ワークロード(たとえば、知覚、畳み込みニューラル・ネットワーク(CNN:convolutional neural network)など)のために使用され得る。本明細書では、「CNN」という用語は、領域ベースの又は領域的畳み込みニューラル・ネットワーク(RCNN:regional convolutional neural network)及び高速RCNN(たとえば、物体検出のために使用されるものとしての)を含む、すべてのタイプのCNNを含み得る。
【0134】
加速装置614(たとえば、ハードウェア加速クラスタ)は、深層学習加速装置(DLA:deep learning accelerator)を含み得る。DLAは、深層学習アプリケーション及び推論のために1秒あたり追加の10兆の動作を提供するように構成することができる1個又は複数のテンソル処理ユニット(TPU:Tensor processing unit)を含み得る。TPUは、画像処理機能(たとえば、CNN、RCNNなどの)を実行するように構成及び最適化された加速装置でもよい。DLAはさらに、特定のセットのニューラル・ネットワーク・タイプ及び浮動小数点演算、並びに推論のために最適化され得る。DLAの設計は、汎用GPUよりも1ミリメートルあたりより多くのパフォーマンスを提供することができ、CPUのパフォーマンスを大きく超える。TPUは、たとえば、特徴と重みとの両方についてINT8、INT16、及びFP16データ・タイプをサポートする、単一インスタンス畳み込み機能、並びにポストプロセッサ機能を含む、いくつかの機能を実行することができる。
【0135】
DLAは、以下を含むがこれらに限定されない、様々な機能のいずれかのために処理済み又は未処理のデータでニューラル・ネットワーク、特にCNN、を迅速に及び効率的に実行することができる:カメラ・センサからのデータを使用する物体識別及び検出のためのCNN、カメラ・センサからのデータを使用する距離推定のためのCNN、マイクロフォンからのデータを使用する緊急車両検出及び識別及び検出のためのCNN、カメラ・センサからのデータを使用する顔認識及び移動車所有者識別のためのCNN、及び/又は、セキュリティ及び/又は安全性関連イベントのためのCNN。
【0136】
DLAは、GPU608の任意の機能を実行することができ、そして、推論加速装置を使用することによって、たとえば、設計者は、任意の機能のためにDLA又はGPU608のいずれかを対象にすることができる。たとえば、設計者は、DLA上のCNN及び浮動小数点演算の処理に重点的に取り組み、他の機能をGPU608及び/又は他の加速装置614に任せることができる。
【0137】
加速装置614(たとえば、ハードウェア加速クラスタ)は、或いはコンピュータ・ビジョン加速装置と本明細書で称され得るプログラマブル・ビジョン加速装置(PVA:programmable vision accelerator)を含み得る。PVAは、高度運転者支援システム(ADAS:advanced driver assistance system)、自律運転、及び/又は拡張現実(AR:augmented reality)及び/又は仮想現実(VR:virtual reality)アプリケーションのためのコンピュータ・ビジョン・アルゴリズムを加速するように設計及び構成され得る。PVAは、パフォーマンスと柔軟性との間のバランスをもたらすことができる。たとえば、各PVAは、たとえば、任意の数の縮小命令セット・コンピュータ(RISC:reduced instruction set computer)コア、直接メモリ・アクセス(DMA:direct memory access)、及び/又は任意の数のベクトル・プロセッサを含み得るが、これらに限定されない。
【0138】
RISCコアは、画像センサ(たとえば、本明細書に記載のカメラのうちのいずれかのカメラの画像センサ)、画像信号プロセッサ、及び/又は同類のものと相互作用することができる。それぞれのRISCコアは、任意の量のメモリを含み得る。RISCコアは、実施例に応じて、いくつかのプロトコルのいずれかを使用することができる。いくつかの実例では、RISCコアは、リアルタイム・オペレーティング・システム(RTOS:real-time operating system)を実行することができる。RISCコアは、1個又は複数の集積回路デバイス、特定用途向け集積回路(ASIC)、及び/又はメモリデバイスを使用して、実装され得る。たとえば、RISCコアは、命令キャッシュ及び/又はしっかりと結合されたRAMを含み得る。
【0139】
DMAは、CPU606から独立したシステム・メモリにPVAの構成要素がアクセスすることを可能にし得る。DMAは、多次元アドレス指定及び/又は循環アドレス指定をサポートすることを含むがこれに限定されないPVAに最適化をもたらすために使用される任意の数の特徴をサポートすることができる。いくつかの実例では、DMAは、ブロック幅、ブロック高さ、ブロック深度、水平ブロック・ステッピング、垂直ブロック・ステッピング、及び/又は深度ステッピングを含み得る、6次元まで又はそれ以上のアドレス指定をサポートすることができる。
【0140】
ベクトル・プロセッサは、コンピュータ・ビジョン・アルゴリズムのプログラミングを効率的に柔軟に実行する及び信号処理能力を提供するように設計され得るプログラマブル・プロセッサでもよい。いくつかの実例では、PVAは、PVAコア及び2個のベクトル処理サブシステム・パーティションを含み得る。PVAコアは、プロセッサ・サブシステム、DMAエンジン(たとえば、2個のDMAエンジン)、及び/又は他の周辺装置を含み得る。ベクトル処理サブシステムは、PVAの1次的処理エンジンとして動作することができ、ベクトル処理ユニット(VPU:vector processing unit)、命令キャッシュ、及び/又はベクトル・メモリ(たとえば、VMEM)を含み得る。VPUコアは、たとえば、単一の命令、複数のデータ(SIMD)、超長命令語(VLIW:very long instruction word)デジタル信号プロセッサなど、デジタル信号プロセッサを含み得る。SIMD及びVLIWの組合せは、スループット及びスピードを高めることができる。
【0141】
それぞれのベクトル・プロセッサは、命令キャッシュを含み得、専用のメモリに連結され得る。結果として、一部の実例では、それぞれのベクトル・プロセッサは、他のベクトル・プロセッサから独立して実行するように構成され得る。他の実例において、特定のPVAに含まれるベクトル・プロセッサは、データ並列処理を用いるように構成され得る。たとえば、一部の実施例では、単一のPVAに含まれる複数のベクトル・プロセッサは、同じコンピュータ・ビジョン・アルゴリズムを、しかし画像の異なる領域上で、実行することができる。他の実例において、特定のPVAに含まれるベクトル・プロセッサは、異なるコンピュータ・ビジョン・アルゴリズムを、同じ画像上で、同時に実行することができ、或いは順次画像又は画像の部分で異なるアルゴリズムを実行することさえできる。特に、任意の数のPVAは、ハードウェア加速クラスタに含まれ得、任意の数のベクトル・プロセッサは、それぞれのPVAに含まれ得る。加えて、PVAは、全体的システム安全性を高めるために、追加のエラー訂正コード(ECC:error correcting code)メモリを含み得る。
【0142】
加速装置614(たとえば、ハードウェア加速クラスタ)は、加速装置614のための高帯域幅、低レイテンシSRAMを提供するための、コンピュータ・ビジョン・ネットワーク・オンチップ及びSRAMを含み得る。いくつかの実例では、オンチップ・メモリは、たとえば、そして制限ではなく、PVAとDLAとの両方によってアクセス可能でもよい、8個のフィールド構成可能なメモリ・ブロックから成る、少なくとも4MBのSRAMを含み得る。各ペアのメモリ・ブロックは、高度周辺バス(APB:advanced peripheral bus)インターフェース、構成回路、コントローラ、及びマルチプレクサを含み得る。任意のタイプのメモリが、使用され得る。PVA及びDLAは、メモリへの高速アクセスを有するPVA及びDLAを提供するバックボーンを介してメモリにアクセスすることができる。バックボーンは、(たとえば、APBを使用して)PVA及びDLAをメモリに相互接続するコンピュータ・ビジョン・ネットワーク・オンチップを含み得る。
【0143】
コンピュータ・ビジョン・ネットワーク・オンチップは、PVAとDLAとの両方が作動可能及び有効信号を提供することを、任意の制御信号/アドレス/データの送信の前に、決定するインターフェースを含み得る。そのようなインターフェースは、制御信号/アドレス/データを送信するための別個のフェーズ及び別個のチャンネル、並びに連続的データ転送のためのバーストタイプの通信を提供することができる。このタイプのインターフェースは、ISO26262又はIEC61508規格に従うことができるが、他の規格及びプロトコルが使用されてもよい。
【0144】
いくつかの実例では、SoC604は、2018年8月10日に出願された米国特許出願第16/101,232号に記載されるような、リアルタイム・レイトレーシング・ハードウェア加速装置を含み得る。リアルタイム・レイトレーシング・ハードウェア加速装置は、RADAR信号解釈のための、音響伝播合成及び/又は分析のための、SONARシステムのシミュレーションのための、一般波伝播シミュレーションのための、ローカリゼーション及び/又は他の機能を目的とするLIDARデータに対する比較のための、及び/又は他の使用のための、リアルタイム視覚化シミュレーションを生成するために、(たとえば、世界モデル内の)物体の位置及び規模を迅速に効率的に決定するために使用され得る。
【0145】
加速装置614(たとえば、ハードウェア加速装置クラスタ)は、自律運転のための多様な用途を有する。PVAは、ADAS及び自律型車両における極めて重要な処理段階に使用され得るプログラマブル・ビジョン加速装置でもよい。PVAの能力は、低電力及び低レイテンシにおいて、予測可能な処理を必要とするアルゴリズムの領域にふさわしい。言い換えれば、PVAは、低レイテンシ及び低電力とともに予測可能な実行時間を必要とする、小さなデータ集合上でも、半高密度の又は高密度の通常の計算で上手く機能する。それ故に、PVAは、物体検出及び整数計算での動作において効率的であるので、自律型車両のためのプラットフォームとの関連で、PVAは、クラシック・コンピュータ・ビジョン・アルゴリズムを実行するように設計される。
【0146】
たとえば、本技術の1個の実施例によれば、PVAは、コンピュータ・ステレオ・ビジョンを実行するために使用される。半グローバルなマッチングベースのアルゴリズムが、一部の実例では使用され得るが、これは制限することを意図されていない。レベル3~5の自律運転のための多数のアプリケーションは、動き推定/ステレオ・マッチング・オンザフライ(たとえば、SFM(structure from motion)、歩行者認識、レーン検出など)を必要とする。PVAは、2個の単眼カメラからの入力でコンピュータ・ステレオ・ビジョン機能を実行することができる。
【0147】
いくつかの実例では、PVAは、高密度のオプティカル・フローを実行するために使用され得る。処理されたRADARを提供するために未加工のRADARデータを処理する(たとえば、4D高速フーリエ変換を使用して)ことによる。他の実例において、PVAは、たとえば、飛行データの未加工の時間を処理して飛行データの処理済み時間を提供することにより、飛行深度処理の時間に使用される。
【0148】
DLAは、たとえば、各物体検出の信頼性の測定値を出力するニューラル・ネットワークを含む、制御及び運転安全性を強化するために任意のタイプのネットワークを実行するために使用され得る。そのような信頼性値は、確率として、又は他の検出と比較した各検出の相対的「重み」を提供するものとして、解釈され得る。この信頼性値は、どの検出が誤判定検出ではなくて真陽性検出と考えられるべきであるかに関するさらなる決定をシステムが行うことを可能にする。たとえば、システムは、信頼性の閾値を設定し、真陽性検出としての閾値を超える検出のみを考慮することができる。自動非常ブレーキ(AEB:automatic emergency braking)システムにおいて、誤判定検出は、移動車に非常ブレーキを自動で実行させることになり、これは明らかに望ましくない。したがって、最も確信のある検出のみが、AEBのトリガとして考えられるべきである。DLAは、信頼性値を退行するニューラル・ネットワークを実行し得る。ニューラル・ネットワークは、境界ボックス次元、(たとえば、別のサブシステムから)取得されたグラウンド・プレーン推定、ニューラル・ネットワーク及び/又は他のセンサ(たとえば、LIDARセンサ664又はRADARセンサ660)から取得された物体の移動車104方位、距離、3D位置推定と相関する慣性計測装置(IMU:inertial measurement unit)センサ666出力、その他など、少なくともいくつかのサブセットのパラメータをその入力として受け取ることができる。
【0149】
SoC604は、データ・ストア616(たとえば、メモリ)を含み得る。データ・ストア616は、SoC604のオンチップ・メモリでもよく、GPU及び/又はDLAで実行されることになるニューラル・ネットワークを記憶することができる。いくつかの実例では、データ・ストア616は、冗長性及び安全性のためにニューラル・ネットワークの複数のインスタンスを記憶するのに十分な大きさの容量を有し得る。データ・ストア612は、L2又はL3キャッシュ612を備え得る。データ・ストア616の参照は、本明細書に記載のような、PVA、DLA、及び/又は他の加速装置614に関連するメモリの参照を含み得る。
【0150】
SoC604は、1個又は複数のプロセッサ610(たとえば、組み込まれたプロセッサ)を含み得る。プロセッサ610は、ブート電力及び管理能力及び関連するセキュリティ施行を処理するための専用のプロセッサ及びサブシステムでもよいブート及び電力管理プロセッサを含み得る。ブート及び電力管理プロセッサは、SoC604ブート・シーケンスの一部でもよく、実行時間電力管理サービスを提供することができる。ブート電力及び管理プロセッサは、クロック及び電圧プログラミング、システム低電力状態移行の支援、SoC604熱及び温度センサの管理、及び/又はSoC604電力状態の管理を提供することができる。各温度センサは、その出力頻度が温度に比例するリング発振器として実装されてもよく、SoC604は、リング発振器を使用してCPU606、GPU608、及び/又は加速装置614の温度を検出することができる。温度が、閾値を超えたと判定された場合、ブート及び電力管理プロセッサは、温度障害ルーティンに入り、SoC604をより低い電力状態に置く及び/又は移動車104をショーファーの安全停止モードにする(たとえば、移動車104を安全停止させる)ことができる。
【0151】
プロセッサ610は、オーディオ処理エンジンの機能を果たし得る1セットの組み込まれたプロセッサをさらに含み得る。オーディオ処理エンジンは、複数のインターフェースを介するマルチチャンネル・オーディオの完全なハードウェア・サポートとオーディオI/Oインターフェースの広く柔軟な範囲とを可能にするオーディオ・サブシステムでもよい。いくつかの実例では、オーディオ処理エンジンは、専用のRAMを有するデジタル信号プロセッサを有する専用のプロセッサ・コアである。
【0152】
プロセッサ610は、低電力センサ管理及びウェイク使用事例をサポートするための必要なハードウェア特徴を提供することができる常時オンのプロセッサ・エンジンをさらに含み得る。常時オンのプロセッサ・エンジンは、プロセッサ・コア、しっかりと結合されたRAM、支援周辺装置(たとえば、タイマ及び割り込みコントローラ)、様々なI/Oコントローラ周辺装置、及びルーティング論理を含み得る。
【0153】
プロセッサ610は、自動車のアプリケーションの安全性管理を処理するために専用のプロセッサ・サブシステムを含む安全性クラスタ・エンジンをさらに含み得る。安全性クラスタ・エンジンは、2個以上のプロセッサ・コア、しっかりと結合されたRAM、サポート周辺装置(たとえば、タイマ、割り込みコントローラなど)、及び/又はルーティング論理を含み得る。安全性モードにおいて、2個以上のコアは、ロックステップ・モードにおいて動作し、それらの動作の間の何らかの差を検出するための比較論理を有する単一のコアとして機能することができる。
【0154】
プロセッサ610は、リアルタイム・カメラ管理を処理するための専用のプロセッサ・サブシステムを含み得るリアルタイム・カメラ・エンジンをさらに含み得る。
【0155】
プロセッサ610は、カメラ処理パイプラインの一部であるハードウェア・エンジンである画像信号プロセッサを含み得る高ダイナミック・レンジ信号プロセッサをさらに含み得る。
【0156】
プロセッサ610は、プレイヤ・ウインドウのための最終的画像を生み出すためにビデオ再生アプリケーションによって必要とされるビデオ処理後機能を実装する処理ブロック(たとえば、マイクロプロセッサに実装された)でもよいビデオ画像合成器を含み得る。ビデオ画像合成器は、ワイドビュー・カメラ670で、サラウンド・カメラ674で、及び/又はキャビン内監視カメラ・センサでレンズ歪み補正を実行することができる。キャビン内監視カメラ・センサは好ましくは、キャビン内イベントを識別し、適切に応答するように構成された、高度SoCの別のインスタンス上で実行するニューラル・ネットワークによって監視される。キャビン内システムは、セルラ・サービスをアクティブにする及び電話をかける、電子メールを書き取らせる、移動車の目的地を変更する、移動車のインフォテインメント・システム及び設定をアクティブにする又は変更する、或いは音声起動型ウェブ・サーフィンを提供するために、読唇術を実行することができる。ある特定の機能は、自律モードで動作しているときにのみ運転者に利用可能であり、そうでない場合には無効にされる。
【0157】
ビデオ画像合成器は、空間的ノイズ低減及び時間的ノイズ低減の両方のための強化された時間的ノイズ低減を含み得る。たとえば、動きがビデオ内で生じた場合、ノイズ低減は、隣接するフレームによって提供される情報の重みを減らし、空間的情報に適切に重みを加える。画像又は画像の一部が動きを含まない場合、ビデオ画像合成器によって実行される時間的ノイズ低減は、前の画像からの情報を使用して現在の画像におけるノイズを減らすことができる。
【0158】
ビデオ画像合成器はまた、入力ステレオ・レンズ・フレーム上でステレオ・レクティフィケーションを実行するように構成され得る。ビデオ画像合成器はさらに、オペレーティング・システム・デスクトップが使用中であるときにユーザ・インターフェース合成のために使用することができ、GPU608は、新しい表面を連続してレンダリングために必要とされない。GPU608の電源が入れられ、3Dレンダリングをアクティブに行っているときでも、ビデオ画像合成器は、GPU608をオフロードしてパフォーマンス及び反応性を向上させるために使用され得る。
【0159】
SoC604は、カメラからビデオ及び入力を受信するためのモバイル・インダストリ・プロセッサ・インターフェース(MIPI:mobile industry processor interface)カメラ・シリアル・インターフェース、高速インターフェース、及び/又は、カメラ及び関連画素入力機能のために使用され得るビデオ入力ブロックをさらに含み得る。SoC604は、ソフトウェアによって制御され得る、及び特定の役割にコミットされていないI/O信号を受信するために使用され得る、入力/出力コントローラをさらに含み得る。
【0160】
SoC604は、周辺装置、オーディオ・コーデック、電力管理、及び/又は他のデバイスとの通信を可能にするために、広範囲の周辺インターフェースをさらに含み得る。SoC604は、(たとえば、ギガビット・マルチメディア・シリアル・リンク及びイーサネット(登録商標)を介して接続された)カメラからのデータ、センサ(たとえば、イーサネット(登録商標)を介して接続され得るLIDARセンサ664、RADARセンサ660など)、バス602からのデータ(たとえば、移動車104のスピード、ハンドル位置など)、(たとえば、イーサネット(登録商標)又はCANバスを介して接続された)GNSSセンサ658からのデータを処理するために使用され得る。SoC604は、独自のDMAエンジンを含み得る及びルーティン・データ管理タスクからCPU606を解放するために使用され得る専用の高性能大容量記憶コントローラをさらに含み得る。
【0161】
SoC604は、自動化レベル3~5に広がる柔軟なアーキテクチャを有する終端間プラットフォームでもよく、それによって、多様性及び冗長性のためにコンピュータ・ビジョン及びADAS技法を活用し、効率的に使用し、深層学習ツールとともに、柔軟な、信頼できる運転ソフトウェア・スタックのためのプラットフォームを提供する、総合的機能的安全性アーキテクチャを提供する。SoC604は、従来のシステムよりも高速で、信頼でき、さらにエネルギ効率がよく、空間効率がよくなり得る。たとえば、加速装置614が、CPU606と結合されるとき、GPU608、及びデータ・ストア616は、レベル3~5の自律型車両のための高速で効率的なプラットフォームを提供することができる。
【0162】
したがって、本技術は、従来のシステムによって達成することができない能力及び機能性をもたらす。たとえば、コンピュータ・ビジョン・アルゴリズムは、多種多様な視覚的データにわたり多種多様な処理アルゴリズムを実行するために、Cプログラミング言語などの高レベルのプログラミング言語を使用して構成され得る、CPUで実行され得る。しかしながら、CPUは、しばしば、たとえば、実行時間及び電力消費に関連するものなど、多数のコンピュータ・ビジョン・アプリケーションの性能要件を満たすことができない。具体的には、多数のCPUは、移動車内ADASアプリケーションの要件及び実際のレベル3~5の自律型車両の要件である、リアルタイムでの複合物体検出アルゴリズムを実行することができない。
【0163】
従来のシステムとは対照的に、CPU複合体、GPU複合体、及びハードウェア加速クラスタを提供することによって、本明細書に記載の技術は、複数のニューラル・ネットワークが同時に及び/又は連続して実行されることと、レベル3~5の自律運転機能を可能にするために結果が結合されることとを可能にする。たとえば、DLA又はdGPU(たとえば、GPU620)で実行するCNNは、ニューラル・ネットワークが具体的にトレーニングされていない標識を含む、交通標識をスーパーコンピュータが読み取る及び理解することを可能にする、テキスト及び単語認識を含み得る。DLAは、標識の意味論的理解を識別、解釈、及び提供することと、CPU複合体で実行する進路計画立案モジュールに意味論的理解を渡すこととを行うことができる、ニューラル・ネットワークをさらに含み得る。
【0164】
別の実例として、複数のニューラル・ネットワークは、レベル3、4、又は5の運転に必要とされるように、同時に実行され得る。たとえば、電光とともに、「注意:点滅光は、凍った状態を示す」から成る警告標識は、いくつかのニューラル・ネットワークによって独立して又は集合的に解釈され得る。標識自体は、第1の配備されたニューラル・ネットワーク(たとえば、トレーニングされてあるニューラル・ネットワーク)によって交通標識として識別され得、テキスト「点滅光は、凍った状態を示す」は、点滅光が検出されるときには凍った状態が存在することを移動車の進路計画立案ソフトウェア(好ましくはCPU複合体上で実行する)に知らせる、第2の配備されたニューラル・ネットワークによって解釈され得る。点滅光は、点滅光の存在(又は無いこと)を移動車の進路計画立案ソフトウェアに知らせ、複数のフレームを介して第3の配備されたニューラル・ネットワークを動作させることによって識別され得る。すべての3個のニューラル・ネットワークは、DLA内及び/又はGPU608上などで、同時に実行することができる。
【0165】
いくつかの実例では、顔認識及び移動車所有者識別のためのCNNは、カメラ・センサからのデータを使用して移動車104の正規の運転者及び/又は所有者の存在を識別することができる。常時オンのセンサ処理エンジンは、所有者が運転席側のドアに近づくときに移動車を解錠する及び明かりをつけるために、並びに、セキュリティ・モードにおいて、所有者が移動車を離れるときに移動車の動作を停止させるために、使用され得る。このようにして、SoC604は、盗難及び/又は車の乗っ取りに対するセキュリティをもたらす。
【0166】
別の実例では、緊急車両検出及び識別のためのCNNは、マイクロフォン696からのデータを使用して緊急車両サイレンを検出及び識別することができる。一般分類子を使用してサイレンを検出する及び特徴を手動で抽出する従来のシステムとは対照的に、SoC604は、環境の及び都市の音の分類、並びに視覚的データの分類のためにCNNを使用する。好ましい一実施例では、DLA上で実行するCNNは、(たとえば、ドップラー効果を使用することによって)緊急車両の相対的終速度を識別するようにトレーニングされる。CNNはまた、GNSSセンサ658によって識別されるように、移動車が稼働しているローカル・エリアに特有の緊急車両を識別するようにトレーニングされ得る。それ故に、たとえば、欧州で稼働しているとき、CNNは、欧州のサイレンを検出しようとすることになり、そして、米国にあるとき、CNNは、北米のサイレンのみを識別しようとすることになる。緊急車両が検出された後は、制御プログラムが、緊急車両が通過するまで、超音波センサ662の支援を受けて、移動車を減速する、道の端に停止させる、移動車を駐車する、及び/又は移動車をアイドリングさせる、緊急車両安全性ルーティンを実行するために使用され得る。
【0167】
移動車は、高速相互接続(たとえば、PCIe)を介してSoC604に連結され得るCPU618(たとえば、個別のCPU、又はdCPU)を含み得る。CPU618は、たとえば、X86プロセッサを含み得る。CPU618は、たとえば、ADASセンサとSoC604との間の潜在的に不整合の結果を調停すること、及び/又はコントローラ636及び/又はインフォテインメントSoC630の状況及び調子を監視することを含む、様々な機能のいずれかを実行するために使用され得る。
【0168】
移動車104は、高速相互接続(たとえば、NVIDIAのNVLINK)を介してSoC604に連結され得るGPU620(たとえば、個別のGPU、又はdGPU)を含み得る。GPU620は、冗長及び/又は異なるニューラル・ネットワークを実行することなどによって、付加的人工知能機能をもたらすことができ、移動車104のセンサからの入力(たとえば、センサ・データ)に基づいてニューラル・ネットワークをトレーニング及び/又は更新するために使用され得る。
【0169】
移動車104は、1個又は複数のワイヤレス・アンテナ626(たとえば、セルラ・アンテナ、ブルートゥース(登録商標)・アンテナなど、異なる通信プロトコルのための1個又は複数のワイヤレス・アンテナ)を含み得るネットワーク・インターフェース624をさらに含み得る。ネットワーク・インターフェース624は、インターネットを介するクラウドとの(たとえば、サーバ678及び/又は他のネットワーク・デバイスとの)、他の移動車との、及び/又は計算デバイス(たとえば、乗客のクライアント・デバイス)とのワイヤレス接続を使用可能にするために使用され得る。他の移動車と通信するために、直接リンクが2個の移動車の間に確立され得る、及び/又は、間接リンクが(たとえば、ネットワークを通じて及びインターネットを介して)確立され得る。直接リンクは、移動車対移動車通信リンクを使用し、提供され得る。移動車対移動車通信リンクは、移動車104に近接する移動車(たとえば、移動車104の前の、横の、及び/又は後ろの移動車)に関する移動車104情報を提供することができる。この機能は、移動車104の共同適応クルーズ制御機能の一部でもよい。
【0170】
ネットワーク・インターフェース624は、変調及び復調機能を提供する及びコントローラ636がワイヤレス・ネットワークを介して通信することを可能にする、SoCを含み得る。ネットワーク・インターフェース624は、ベースバンドから無線周波数へのアップコンバージョン、及び無線周波数からベースバンドへのダウンコンバージョンのための無線周波数フロントエンドを含み得る。周波数コンバージョンは、よく知られているプロセスを通して実行することができ、及び/又はスーパーヘテロダイン・プロセスを用いて実行することができる。いくつかの実例では、無線周波数フロントエンド機能は、別個のチップによって提供され得る。ネットワーク・インターフェースは、LTE、WCDMA(登録商標)、UMTS、GSM(登録商標)、CDMA2000、ブルートゥース(登録商標)、ブルートゥース(登録商標)LE、Wi-Fi、Z-Wave、ZigBee、LoRaWAN、及び/又は他のワイヤレス・プロトコルを介して通信するためのワイヤレス機能を含み得る。
【0171】
移動車104は、チップ外の(たとえば、SoC604外の)ストレージを含み得るデータ・ストア628をさらに含み得る。データ・ストア628は、RAM、SRAM、DRAM、VRAM、フラッシュ、ハードディスク、及び/又は、少なくとも1ビットのデータを記憶することができる他の構成要素及び/又はデバイスを含む、1個又は複数の記憶素子を含み得る。
【0172】
移動車104は、GNSSセンサ658をさらに含み得る。マッピング、知覚、占有グリッド生成、及び/又は進路計画立案機能を支援するための、GNSSセンサ658(たとえば、GPS及び/又は補助装置付きGPSセンサ)。たとえば、シリアル(RS-232)ブリッジへのイーサネット(登録商標)を有するUSBコネクタを使用するGPSを含むが、これに限定されない、任意の数のGNSSセンサ658が、使用され得る。
【0173】
移動車104は、RADARセンサ660をさらに含み得る。RADARセンサ660は、暗闇及び/又は厳しい気象条件においても、長距離移動車検出のために移動車104によって使用され得る。RADAR機能安全性レベルは、ASIL Bでもよい。一部の実例では、RADARセンサ660は、未加工のデータにアクセスするためのイーサネット(登録商標)へのアクセスを用いて、制御のために及び物体追跡データにアクセスするために(たとえば、RADARセンサ660によって生成されたデータを送信するために)CAN及び/又はバス602を使用することができる。多種多様なRADARセンサ・タイプが、使用され得る。たとえば、そして制限なしに、RADARセンサ660は、前部、後部、及び側部RADAR使用に適し得る。一部の実例では、パルス・ドップラーRADARセンサが使用される。
【0174】
RADARセンサ660は、狭い視野を有する長距離、広い視野を有する短距離、短距離側部カバレッジなど、異なる構成を含み得る。いくつかの実例では、長距離RADARは、適応クルーズ制御機能のために使用され得る。長距離RADARシステムは、250mの範囲内など、2個以上の独立したスキャンによって実現される広い視野を提供することができる。RADARセンサ660は、静的物体と動く物体との区別を助けることができ、緊急ブレーキ・アシスト及び前方衝突警報のためのADASシステムによって使用され得る。長距離RADARセンサは、複数の(たとえば、6つ以上の)固定RADARアンテナと高速CAN及びFlexRayインターフェースとを有するモノスタティック・マルチモーダルRADARを含み得る。6つのアンテナを有する一実例では、中央の4個のアンテナは、隣接レーン内の交通からの干渉を最小限にして高速で移動車104の周囲を記録するように設計された、集束ビーム・パターンを作成し得る。他の2個のアンテナは、視野を広げることができ、移動車104のレーンに入る又はこれを去る移動車を迅速に検出することを可能にする。
【0175】
一実例として、中距離RADARシステムは、660m(前)又は80m(後)までの範囲、及び42度(前)又は650度(後)までの視野を含み得る。短距離RADARシステムは、後部バンパの両端に設置されるように設計されたRADARセンサを含み得るが、これに限定されない。後部バンパの両端に設置されるとき、そのようなRADARセンサ・システムは、移動車の後ろ及び隣の死角を常に監視する2個のビームを作成することができる。
【0176】
短距離RADARシステムは、死角検出及び/又はレーン変更アシストのためにADASシステムにおいて使用され得る。
【0177】
移動車104は、超音波センサ662をさらに含み得る。移動車104の前部、後部、及び/又は側部に位置付けられ得る、超音波センサ662は、駐車アシストのために及び/又は占有グリッドの作成及び更新のために使用され得る。多種多様な超音波センサ662が使用され得、異なる超音波センサ662が、異なる範囲の検出(たとえば、2.5m、4m)のために使用され得る。超音波センサ662は、ASIL Bの機能的安全性レベルにおいて動作することができる。
【0178】
移動車104はLIDARセンサ664を含み得る。LIDARセンサ664は、物体及び歩行者検出、緊急ブレーキ、衝突回避、及び/又は他の機能のために使用され得る。LIDARセンサ664は、機能的安全性レベルASIL Bでもよい。いくつかの実例では、移動車104は、(たとえば、ギガビット・イーサネット(登録商標)・スイッチにデータを提供するために)イーサネット(登録商標)を使用することができる複数の(たとえば、2個、4個、6個などの)LIDARセンサ664を含み得る。
【0179】
いくつかの実例では、LIDARセンサ664は、物体及び360度視野のそれらの距離のリストを提供する能力を有し得る。市販のLIDARセンサ664は、たとえば、2cm~3cmの精度を有し、104Mbpsイーサネット(登録商標)接続のサポートを有して、約104mの広告された範囲を有し得る。いくつかの実例では、1個又は複数の非突出しLIDARセンサ664が、使用され得る。そのような実例では、LIDARセンサ664は、移動車104の前部、後部、側部、及び/又は角に組み込まれ得る小さいデバイスとして実装され得る。そのような実例では、LIDARセンサ664は、低反射物体についても200mの範囲を有し、620度水平及び35度垂直視野まで提供することができる。前部に取り付けられたLIDARセンサ664は、45度と135度との間の水平視野向けに構成され得る。
【0180】
いくつかの実例では、3DフラッシュLIDARなどのLIDAR技術もまた使用され得る。3DフラッシュLIDARは、約200mまで移動車の周囲を照らすために、送信元としてレーザーのフラッシュを使用する。フラッシュLIDARユニットは、移動車から物体までの範囲に順番に対応する、レーザー・パルス走行時間及び各画素上の反射光を記録する、レセプタを含む。フラッシュLIDARは、周囲の高精度の及び歪みのない画像があらゆるレーザー・フラッシュで生成されることを可能にし得る。いくつかの実例では、4個のフラッシュLIDARセンサが、移動車104の各側面に1個ずつ、配備され得る。利用可能な3DフラッシュLIDARシステムは、送風機以外に動く部分を有さないソリッドステート3Dステアリング・アレイLIDARカメラ(たとえば、非スキャン型LIDARデバイス)を含む。フラッシュLIDARデバイスは、1フレームにつき5ナノ秒クラスI(目に安全な)レーザー・パルスを使用することができ、3D範囲点群及び共記載された強度データの形で反射レーザー光をキャプチャし得る。フラッシュLIDARを使用することによって、また、フラッシュLIDARは、動く部分を有さないソリッドステート・デバイスであるので、LIDARセンサ664は、モーション・ブラー、振動、及び/又は衝撃の影響を受けにくくなり得る。
【0181】
移動車は、IMUセンサ666をさらに含み得る。一部の実例では、IMUセンサ666は、移動車104の後部車軸の中央に位置付けられ得る。IMUセンサ666は、たとえば、加速度計、磁力計、ジャイロスコープ、磁気コンパス、及び/又は他のセンサ・タイプを含み得るが、これらに限定されない。いくつかの実例では、6軸アプリケーションなどにおいて、IMUセンサ666は、加速度計及びジャイロスコープを含み得るが、9軸アプリケーションにおいて、IMUセンサ666は、加速度計、ジャイロスコープ、及び磁力計を含み得る。
【0182】
一部の実施例では、IMUセンサ666は、マイクロ電気機械システム(MEMS:micro-electro-mechanical system)慣性センサ、高感度GPSレシーバ、及び高度カルマン・フィルタリング・アルゴリズムを結合して位置、ベロシティ、及び姿勢の推定値を提供するミニチュア、高性能GPS支援型慣性航行システム(GPS/INS:GPS-Aided Inertial Navigation System)として実装され得る。そのようなものとして、一部の実例では、IMUセンサ666は、GPSからIMUセンサ666までのベロシティの変化を直接観測すること及び関連付けることによって、磁気センサからの入力を必要とせずに進行方向を移動車104が推定することを可能にし得る。いくつかの実例では、IMUセンサ666及びGNSSセンサ658は、単一の統合されたユニットにおいて結合され得る。
【0183】
移動車は、移動車104内及び/又は周囲に置かれたマイクロフォン696を含み得る。マイクロフォン696は、中でも、緊急車両検出及び識別のために使用され得る。
【0184】
移動車は、ステレオ・カメラ668、ワイドビュー・カメラ670、赤外線カメラ672、サラウンド・カメラ674、長距離及び/又は中距離カメラ698、及び/又は他のカメラ・タイプを含む、任意の数のカメラ・タイプをさらに含み得る。カメラは、移動車104の全外面の周りの画像データをキャプチャするために使用され得る。使用されるカメラのタイプは、移動車104の実施例及び要件に応じて決まり、任意の組合せのカメラ・タイプが、移動車104の周りの必要なカバレッジを実現するために使用され得る。加えて、カメラの数は、実施例に応じて異なり得る。たとえば、移動車は、6個のカメラ、7個のカメラ、10個のカメラ、12個のカメラ、及び/又は別の数のカメラを含み得る。カメラは、一実例として、ギガビット・マルチメディア・シリアル・リンク(GMSL:Gigabit Multimedia Serial Link)及び/又はギガビット・イーサネット(登録商標)をサポートし得るが、これに限定されない。それぞれのカメラは、図6A及び図6Bに関連して本明細書においてさらに詳しく説明される。
【0185】
移動車104は、振動センサ642をさらに含み得る。振動センサ642は、車軸など、移動車の構成要素の振動を測定することができる。たとえば、振動の変化は、道路の表面の変化を示し得る。別の実例では、2個以上の振動センサ642が使用されるとき、振動の差は、道路表面の摩擦又は滑りを判定するために使用され得る(たとえば、振動の差が電力駆動車軸と自由回転車軸との間であるとき)。
【0186】
移動車104は、ADASシステム638を含み得る。一部の実例では、ADASシステム638は、SoCを含み得る。ADASシステム638は、自律/適応/自動クルーズ制御(ACC:autonomous/adaptive/automatic cruise control)、共同適応クルーズ制御(CACC:cooperative adaptive cruise control)、前方衝突警報(FCW:forward crash warning)、自動緊急ブレーキ(AEB:automatic emergency braking)、車線逸脱警報(LDW:lane departure warning)、レーン・キープ・アシスト(LKA:lane keep assist)、死角警報(BSW:blind spot warning)、後部交差交通警報(RCTW:rear cross-traffic warning)、衝突警報システム(CWS:collision warning system)、レーン・センタリング(LC:lane centering)、及び/又は他の特徴及び機能を含み得る。
【0187】
ACCシステムは、RADARセンサ660、LIDARセンサ664、及び/又はカメラを使用し得る。ACCシステムは、縦ACC及び/又は横ACCを含み得る。縦ACCは、移動車104の直ぐ前の移動車までの距離を監視及び制御し、前方の移動車からの安全距離を維持するために移動車速度を自動的に調整する。横ACCは、距離の保持を実行し、必要なときにレーンを変更するように移動車104にアドバイスする。横ACCは、LCA及びCWSなどの他のADASアプリケーションに関連する。
【0188】
CACCは、ワイヤレス・リンクを介して他の移動車からネットワーク・インターフェース624及び/又はワイヤレス・アンテナ626を介して、或いは間接的にネットワーク接続を介して(たとえば、インターネットを介して)、受信することができる、他の移動車からの情報を使用する。直接リンクは、移動車対移動車(V2V:vehicle-to-vehicle)通信リンクによって提供され得、一方、間接リンクは、インフラストラクチャ対移動車(I2V:infrastructure-to-vehicle)通信リンクでもよい。一般に、V2V通信概念は、直前の移動車(たとえば、移動車104と同じレーン内にある、移動車104の直ぐ前の移動車)に関する情報を提供し、一方、I2V通信概念は、さらに前の交通に関する情報を提供する。CACCシステムは、I2V情報ソースとV2V情報ソースとのいずれか又は両方を含み得る。移動車104の前方の移動車の情報を所与として、CACCは、より高信頼になり得、CACCは、交通の流れをよりスムーズにし、道路の渋滞を減らす可能性を有する。
【0189】
運転者が修正行動を取ることができるように、FCWシステムは、危険を運転者に警告するように設計される。FCWシステムは、ディスプレイ、スピーカ、及び/又は振動する構成要素など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前向きのカメラ及び/又はRADARセンサ660を使用する。FCWシステムは、音響、視覚的警報、振動及び/又はクイック・ブレーキ・パルスなどの形で、警報を提供することができる。
【0190】
AEBシステムは、別の移動車又は他の物体との差し迫った前方衝突を検出し、運転者が指定された時間又は距離パラメータ内に修正行動を取らない場合に、ブレーキを自動的に適用することができる。AEBシステムは、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前向きのカメラ及び/又はRADARセンサ660を使用することができる。AEBシステムが危険を検出するとき、AEBシステムは通常は、先ず、衝突を回避するための修正行動を取るように運転者に警告し、運転者が修正行動を取らない場合、AEBシステムは、予測される衝突の影響を防ぐ、又は少なくとも軽減するための努力の一環としてブレーキを自動的に適用することができる。AEBシステムは、ダイナミック・ブレーキ・サポート及び/又は衝突切迫ブレーキなどの技法を含み得る。
【0191】
LDWシステムは、ハンドル又はシートの振動など、視覚的、可聴式、及び/又は触覚的警報を提供して、移動車104が車線区分線を越えたときに運転者に警告する。LDWシステムは、運転者が、方向指示器を起動することによって、意図的な車線逸脱を指示するときには、起動しない。LDWシステムは、ディスプレイ、スピーカ、及び/又は振動する構成要素など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、前側を向いたカメラを使用することができる。
【0192】
LKAシステムは、LDWシステムの変更形態である。LKAシステムは、移動車104が車線をはみ出し始めた場合に移動車104を修正するためにステアリング入力又はブレーキを提供する。
【0193】
BSWシステムは、自動車の死角において移動車の運転者に検出及び警告する。BSWシステムは、合流又はレーンの変更が安全ではないことを指示するために視覚的、可聴式、及び/又は触覚的警告を提供することができる。本システムは、運転者が方向指示器を使用するときに追加の警報を提供することができる。BSWシステムは、ディスプレイ、スピーカ、及び/又は振動する構成要素など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、後ろ側を向いたカメラ及び/又はRADARセンサ660を使用することができる。
【0194】
RCTWシステムは、移動車104がバックしているときにリアカメラの範囲外で物体が検出されたときに視覚的、可聴式、及び/又は触覚的通知を提供することができる。いくつかのRCTWシステムは、移動車ブレーキが衝突を回避するために適用されることを確実にするために、AEBを含む。RCTWシステムは、ディスプレイ、スピーカ、及び/又は振動する構成要素など、運転者フィードバックに電気的に連結された、専用のプロセッサ、DSP、FPGA、及び/又はASICに連結された、1個又は複数の後ろを向いたRADARセンサ660を使用することができる。
【0195】
従来のADASシステムは、運転者に警告し、安全状態が本当に存在するかどうかを運転者が判定し、それに応じて行動することを可能にするので、従来のADASシステムは、通常は壊滅的ではないが、運転者を悩ませている及び気を散らせていることがある誤判定結果を生み出す傾向にあることがあった。しかしながら、自律型車両104では、結果が矛盾する場合には、移動車104自体が、1次的コンピュータ又は2次的コンピュータ(たとえば、第1のコントローラ636又は第2のコントローラ636)からの結果を聞き入れるかどうかを決定しなければならない。たとえば、一部の実施例では、ADASシステム638は、知覚情報をバックアップ・コンピュータ合理性モジュールに提供するためのバックアップ及び/又は2次的コンピュータでもよい。バックアップ・コンピュータ合理性モニタは、ハードウェア構成要素で冗長な多様なソフトウェアを実行して、知覚及び動的運転タスクにおいて障害を検出することができる。ADASシステム638からの出力は、監督MCUに提供され得る。1次的コンピュータ及び2次的コンピュータからの出力が矛盾する場合、監督MCUは、安全な動作を確実にするためにその矛盾をどのように調整するかを決定する必要がある。
【0196】
いくつかの実例では、1次的コンピュータは、選択された結果における1次的コンピュータの信頼性を指示する、信頼性スコアを監督MCUに提供するように構成され得る。信頼性スコアが閾値を超えた場合、監督MCUは、2次的コンピュータが矛盾する又は不整合の結果を与えるかどうかにかかわらず、1次的コンピュータの指示に従い得る。信頼性スコアが閾値を満たさない場合、及び1次的及び2次的コンピュータが異なる結果を示す(たとえば、矛盾する)場合、監督MCUは、コンピュータの間で調停して適切な結果を決定することができる。
【0197】
監督MCUは、2次的コンピュータが誤ったアラームを提供する状態を、1次的コンピュータ及び2次的コンピュータからの出力に基づいて、判定するようにトレーニング及び構成されたニューラル・ネットワークを実行するように構成され得る。したがって、監督MCU内のニューラル・ネットワークは、2次的コンピュータの出力が信頼され得るとき、及びそれが信頼され得ないときを学習することができる。たとえば、2次的コンピュータがRADARベースのFCWシステムであるとき、監督MCU内のニューラル・ネットワークは、アラームをトリガする下水溝の鉄格子又はマンホールの蓋など、実際には危険ではない金属製の物をいつFCWが識別しているかを学習することができる。同様に、2次的コンピュータがカメラベースのLDWシステムであるとき、監督MCU内のニューラル・ネットワークは、自転車に乗った人又は歩行者が存在し、車線逸脱が、実際には、最も安全な操作であるときに、LDWを無視することを学習することができる。監督MCU上で実行中のニューラル・ネットワークを含む実施例では、監督MCUは、関連メモリを有するニューラル・ネットワークを実行するのに適したDLA又はGPUのうちの少なくとも1個を含み得る。好ましい実施例において、監督MCUは、SoC604の構成要素を備え得る、及び/又はSoC604の構成要素として含まれ得る。
【0198】
他の実例において、ADASシステム638は、コンピュータ・ビジョンの従来のルールを使用するADAS機能を実行する2次的コンピュータを含み得る。そのようなものとして、2次的コンピュータは、古典的コンピュータ・ビジョン・ルール(if-then)を使用することができ、監督MCU内のニューラル・ネットワークの存在は、信頼性、安全性及び性能を向上させることができる。たとえば、多様な実装形態及び意図的な非同一性は、特にソフトウェア(又はソフトウェア-ハードウェア・インターフェース)機能によって引き起こされる障害に対して、システム全体をよりフォールトトレラントにする。たとえば、1次的コンピュータで実行中のソフトウェア内にソフトウェア・バグ又はエラーが存在し、2次的コンピュータで実行中の同一でないソフトウェア・コードが同じ総合的結果を提供する場合、監督MCUは、総合的結果は正しく、1次的コンピュータ上のソフトウェア又はハードウェア内のバグは重大なエラーを引き起こしていないというより大きな確信を有し得る。
【0199】
いくつかの実例では、ADASシステム638の出力は、1次的コンピュータの知覚ブロック及び/又は1次的コンピュータの動的運転タスク・ブロックに供給され得る。たとえば、ADASシステム638が、直ぐ前の物体が原因で、前方衝突警報を示した場合、知覚ブロックは、物体を識別するときに、この情報を使用することができる。他の実例において、2次的コンピュータは、本明細書に記載のように、トレーニングされ、それ故に誤判定のリスクを減らす、独自のニューラル・ネットワークを有し得る。
【0200】
移動車104は、インフォテインメントSoC630(たとえば、移動車内のインフォテインメント・システム(IVI:in-vehicle infotainment system))をさらに含み得る。SoCとして図示及び記述されているが、インフォテインメント・システムは、SoCでなくてもよく、2個以上の個別の構成要素を含み得る。インフォテインメントSoC630は、オーディオ(たとえば、音楽、携帯情報端末、ナビゲーション命令、ニュース、無線など)、ビデオ(たとえば、TV、映画、ストリーミングなど)、電話(たとえば、ハンズフリー通話)、ネットワーク接続(たとえば、LTE、Wi-Fiなど)、及び/又は情報サービス(たとえば、ナビゲーション・システム、後方駐車支援、無線データシステム、燃料レベル、総移動距離、ブレーキ燃料レベル、オイル・レベル、ドアを開ける/閉じる、エア・フィルタ情報などの移動車関連情報)を提供するために使用され得るハードウェア及びソフトウェアの組合せを含み得る。たとえば、インフォテインメントSoC630は、無線、ディスク・プレイヤ、ナビゲーション・システム、ビデオ・プレイヤ、USB及びブルートゥース(登録商標)接続、カーピュータ、車内エンターテインメント、Wi-Fi、ハンドル・オーディオ制御装置、ハンズ・フリー音声制御、ヘッドアップ・ディスプレイ(HUD:heads-up display)、HMIディスプレイ634、テレマティックス・デバイス、制御パネル(たとえば、様々な構成要素、特徴、及び/又はシステムを制御する及び/又はこれと相互に作用するための)、及び/又は他の構成要素でもよい。インフォテインメントSoC630は、ADASシステム638からの情報、計画された移動車操作などの自律運転情報、軌道、周囲環境情報(たとえば、交差点情報、移動車情報、道路情報など)、及び/又は他の情報など、移動車のユーザへの情報(たとえば、視覚的及び/又は可聴式の)を提供するためにさらに使用され得る。
【0201】
インフォテインメントSoC630は、GPU機能性を含み得る。インフォテインメントSoC630は、バス602(たとえば、CANバス、イーサネット(登録商標)など)を介して、移動車104の他のデバイス、システム、及び/又は構成要素と通信することができる。いくつかの実例では、インフォテインメント・システムのGPUが、1次的コントローラ636(たとえば、移動車104の1次的及び/又はバックアップ・コンピュータ)が故障した場合に、いくつかのセルフドライブ機能を実行することができるように、インフォテインメントSoC630は、監督MCUに連結され得る。そのような実例では、インフォテインメントSoC630は、本明細書に記載のように、移動車104をショーファーの安全停止モードにすることができる。
【0202】
移動車104は、計器群632(たとえば、デジタル・ダッシュ、電子計器群、デジタル計器パネルなど)をさらに含み得る。計器群632は、コントローラ及び/又はスーパーコンピュータ(たとえば、個別のコントローラ又はスーパーコンピュータ)を含み得る。計器群632は、スピードメーター、燃料レベル、油圧、タコメーター、オドメーター、方向指示器、ギアシフト位置インジケータ、シート・ベルト警告灯、パーキングブレーキ警告灯、エンジン故障灯、エアバッグ(SRS)システム情報、照明制御装置、安全システム制御装置、ナビゲーション情報など、1セットの器具類を含み得る。いくつかの実例では、情報は、インフォテインメントSoC630及び計器群632の間で表示及び/又は共有され得る。言い換えれば、計器群632は、インフォテインメントSoC630の一部として含まれてもよく、逆もまた同様である。
【0203】
図6Dは、本開示のいくつかの実施例による、図6Aのクラウドベースのサーバと例示的自律型車両104との間の通信のシステム図である。システム676は、サーバ678、ネットワーク690、及び、移動車104を含む移動車を含み得る。サーバ678は、複数のGPU684(A)~684(H)(本明細書でGPU684と総称される)、PCIeスイッチ682(A)~682(H)(本明細書でPCIeスイッチ682と総称される)、及び/又はCPU680(A)~680(B)(本明細書でCPU680と総称される)を含み得る。GPU684、CPU680、及びPCIeスイッチは、たとえば、NVIDIAによって開発されたNVLINKインターフェース688及び/又はPCIe接続686などの、これらに限定されない、高速相互接続で相互に接続され得る。いくつかの実例では、GPU684は、NVLINK及び/又はNVSwitch SoCを介して接続され、GPU684及びPCIeスイッチ682は、PCIe相互接続を介して接続される。8個のGPU684、2個のCPU680、及び2個のPCIeスイッチが図示されているが、これは制限を意図されていない。実施例に応じて、それぞれのサーバ678は、任意の数のGPU684、CPU680、及び/又はPCIeスイッチを含み得る。たとえば、サーバ678は、それぞれ、8個、16個、32個、及び/又はそれ以上のGPU684を含み得る。
【0204】
サーバ678は、最近開始された道路工事など、予想外の又は変更された道路状態を示す画像を表す画像データを、ネットワーク690を介して、移動車から、受信することができる。サーバ678は、ニューラル・ネットワーク692、更新されたニューラル・ネットワーク692、及び/又は、交通及び道路状態に関する情報を含むマップ情報694をネットワーク690を介して移動車に送信することができる。マップ情報694の更新は、建設現場、くぼみ、迂回路、洪水、及び/又は他の障害物に関する情報など、HDマップ622の更新を含み得る。いくつかの実例では、ニューラル・ネットワーク692、更新されたニューラル・ネットワーク692、及び/又はマップ情報694は、環境において任意の数の移動車から受信されたデータにおいて表された新しいトレーニング及び/又は経験から、及び/又は(たとえば、サーバ678及び/又は他のサーバを使用する)データセンタにおいて実行されたトレーニングに基づいて、生じた可能性がある。
【0205】
サーバ678は、トレーニング・データに基づいてマシン学習モデル(たとえば、ニューラル・ネットワーク)をトレーニングするために使用され得る。トレーニング・データは、移動車によって生成され得る、及び/又は(たとえば、ゲーム・エンジンを使用して)シミュレーションにおいて生成され得る。いくつかの実例では、トレーニング・データは、タグ付けされる(たとえば、ニューラル・ネットワークが、監督された学習の恩恵を受ける場合)及び/又は他の事前処理を受けるが、他の実例において、トレーニング・データは、タグ付け及び/又は事前処理されない(たとえば、ニューラル・ネットワークが、監督された学習を必要としない場合)。マシン学習モデルがトレーシングされた後は、マシン学習モデルは、移動車によって使用され得(たとえば、ネットワーク690を介して移動車に送信される)、及び/又は、マシン学習モデルは、移動車を遠隔監視するために、サーバ678によって使用され得る。
【0206】
いくつかの実例では、サーバ678は、移動車からデータを受信し、リアルタイムのインテリジェント推論のために最新のリアルタイムのニューラル・ネットワークにデータを適用することができる。サーバ678は、NVIDIAによって開発されたDGX及びDGXステーション・マシンなど、GPU684によって電力供給される深層学習スーパーコンピュータ及び/又は専用のAIコンピュータを含み得る。しかしながら、一部の実例では、サーバ678は、CPU電源式データセンタのみを使用する深層学習インフラストラクチャを含み得る。
【0207】
サーバ678の深層学習インフラストラクチャは、高速のリアルタイム推論の能力を有することでき、その能力を使用して移動車104内のプロセッサ、ソフトウェア、及び/又は関連ハードウェアの調子を評価及び検証することができる。たとえば、深層学習インフラストラクチャは、移動車104がそのシーケンスの画像内に位置したシーケンスの画像及び/又は物体など、移動車104からの定期的更新を受信することができる(たとえば、コンピュータ・ビジョン及び/又は他のマシン学習物体分類技法を介して)。深層学習インフラストラクチャは、物体を識別し、移動車104によって識別された物体とそれらを比較するために、独自のニューラル・ネットワークを実行することができ、結果が一致せず、インフラストラクチャが、移動車104内のAIは正常に機能していないという結論を下した場合、サーバ678は、制御を推測し、乗客に通知し、安全な駐車操作を完了するように移動車104のフェイルセーフ・コンピュータに命じる移動車104への信号を送信することができる。
【0208】
推論のために、サーバ678は、GPU684及び1個又は複数のプログラマブル推論加速装置(たとえば、NVIDIAのTensorRT3)を含み得る。GPU電源式サーバ及び推論加速の組合せは、リアルタイムの反応性を可能にすることができる。パフォーマンスがさほど必要とされない場合など、他の実例では、CPU、FPGA、及び他のプロセッサによって電力供給されるサーバが、推論のために使用され得る。
【0209】
汎用計算デバイス
図7は、本開示のいくつかの実施例の実装に使用するのに適した計算デバイス700の一実例のブロック図である。計算デバイス700は、以下のデバイスを間接的に又は直接的につなぐバス702を含み得る:メモリ704、1個又は複数の中央処理装置(CPU)706、1個又は複数のグラフィック処理ユニット(GPU)708、通信インターフェース710、入力/出力(I/O)ポート712、入力/出力構成要素714、電力供給装置716、及び1個又は複数の提示構成要素718(たとえば、ディスプレイ)。CPU706及びGPU708に加えて、計算デバイス700は、画像信号プロセッサ(ISP)、デジタル信号プロセッサ(DSP)、ASIC、FPGAなどの、しかしこれらに限定されない、図7に示されていない追加の論理デバイスを含み得る。
【0210】
図7の様々なブロックは、線でバス702を介して接続しているように示されているが、これは制限することを意図されておらず、単に分かりやすくするためである。たとえば、一部の実施例では、表示デバイスなどの提示構成要素718は、I/O構成要素714と考えられ得る(たとえば、ディスプレイがタッチ・スクリーンである場合)。別の実例として、CPU706及び/又はGPU708はメモリを含み得る(たとえば、メモリ704は、GPU708、CPU706、及び/又は他の構成要素のメモリに加えた記憶デバイスを表し得る)。言い換えれば、図7の計算デバイスは、単に例示である。「ワークステーション」、「サーバ」、「ラップトップ」、「デスクトップ」、「タブレット」、「クライアント・デバイス」、「モバイル・デバイス」、「ハンドヘルド・デバイス」、「ゲーム機」、「電子制御ユニット(ECU:electronic control unit)」、「仮想現実システム」、及び/又は他のデバイス若しくはシステム・タイプなどのカテゴリはすべて、図7の計算デバイスの範囲内にあることが意図されているので、これらは区別されない。
【0211】
バス702は、アドレス・バス、データ・バス、制御バス、又はその組合せなど、1個又は複数のバスを表し得る。バス702は、ISA(industrial standard architecture)バス、EISA(extended industrial standard architecture)バス、VESA(video electronics standard association)バス、PCI(peripheral component inter connect)バス、PCIe(PCI express)バス、及び/又は別のタイプのバスなど、1個又は複数のバス・タイプを含み得る。
【0212】
メモリ704は、様々なコンピュータ可読媒体のいずれかを含み得る。コンピュータ可読媒体は、計算デバイス700によってアクセスすることができる任意の利用可能な媒体でもよい。コンピュータ可読媒体は、揮発性及び不揮発性媒体の両方、及び取り外し可能な及び取り外し不可能な媒体を含み得る。例として、しかし限定ではなく、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を備え得る。
【0213】
コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラム・モジュール、及び/又は他のデータ・タイプなどの情報の記憶のための任意の方法又は技術において実装された揮発性及び不揮発性媒体及び/又は取り外し可能な及び取り外し不可能な媒体の両方を含み得る。たとえば、メモリ704は、オペレーティング・システムなど、(たとえば、プログラム及び/又はプログラム要素を表す)コンピュータ可読命令を記憶することができる。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD:digital versatile disk)又は他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ又は他の磁気記憶デバイス、或いは、所望の情報を記憶するために使用することができる及び計算デバイス700によってアクセスすることができる任意の他の媒体を含み得るが、これらに限定されない。本明細書では、コンピュータ記憶媒体は、信号自体を含まない。
【0214】
通信媒体は、搬送波などの変調データ信号又は他の移送機構においてコンピュータ可読命令、データ構造体、プログラム・モジュール、及び/又は他のデータ・タイプを実施することができ、任意の情報配信媒体を含む。「変調データ信号」という用語は、その特性セットのうちの1個又は複数を有する或いは信号内の情報をエンコードするような方式で変化した信号を指し得る。例として、しかし限定せず、通信媒体は、ワイヤード・ネットワーク又は直接ワイヤード接続などのワイヤード媒体と、音響、RF、赤外線及び他のワイヤレス媒体などのワイヤレス媒体とを含み得る。前述のいずれかの組合せもまた、コンピュータ可読媒体の範囲に含まれるべきである。
【0215】
CPU706は、コンピュータ可読命令を実行して計算デバイス700の1個又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1個又は複数を実行するように構成され得る。CPU706は、多数のソフトウェア・スレッドを同時に処理する能力を有する1個又は複数の(たとえば、1個、2個、4個、8個、28個、72個などの)コアをそれぞれ含み得る。CPU706は、任意のタイプのプロセッサを含み得、実装された計算デバイス700のタイプに応じて、異なるタイプのプロセッサを含み得る(たとえば、モバイル・デバイスのためのより少数のコアを有するプロセッサ、及びサーバのためのより多数のコアを有するプロセッサ)。たとえば、計算デバイス700のタイプに応じて、プロセッサは、縮小命令セット計算(RISC:Reduced Instruction Set Computing)を使用して実装されたARMプロセッサ、又は複合命令セット計算(CISC:Complex Instruction Set Computing)を使用して実装されたx86プロセッサでもよい。計算デバイス700は、計算コプロセッサなど、1個又は複数のマイクロプロセッサ又は補助コプロセッサ内の1個又は複数のCPU706を含み得る。
【0216】
GPU708は、グラフィックス(たとえば、3Dグラフィックス)をレンダリングするために、計算デバイス700によって使用され得る。GPU708は、同時に数百又は数千のソフトウェア・スレッドを処理する能力を有する数百又は数千のコアを含み得る。GPU708は、レンダリング・コマンド(たとえば、ホスト・インターフェースを介して受信されたCPU706からのレンダリング・コマンド)に応答して、出力画像のための画素データを生成することができる。GPU708は、画素データを記憶するための、ディスプレイ・メモリなどの、グラフィックス・メモリを含み得る。ディスプレイ・メモリは、メモリ704の一部として含まれ得る。GPU708は、(たとえば、リンクを介して)並行して動作する2個以上のGPUを含み得る。結合されると、各GPU708は、出力画像の異なる部分の又は異なる出力画像の画素データを(たとえば、第1のGPUは第1の画像のために及び第2のGPUは第2の画像のために)生成することができる。各GPUは、独自のメモリを含むことができ、他のGPUとメモリを共用することができる。
【0217】
計算デバイス700がGPU708を含まない実例において、CPU706は、グラフィックスをレンダリングするために使用され得る。
【0218】
通信インターフェース710は、ワイヤード及び/又はワイヤレス通信を含む、電子通信ネットワークを介して計算デバイス700が他の計算デバイスと通信することを可能にする、1個又は複数のレシーバ、トランスミッタ、及び/又はトランシーバを含み得る。通信インターフェース710は、ワイヤレス・ネットワーク(たとえば、Wi-Fi、Z-Wave、ブルートゥース(登録商標)、ブルートゥース(登録商標)LE、ZigBeeなど)、ワイヤード・ネットワーク(たとえば、イーサネット(登録商標)介して通信すること)、低電力ワイド・エリア・ネットワーク(たとえば、LoRaWAN、SigFoxなど)、及び/又はインターネットなどの、いくつかの異なるネットワークのうちのいずれかを介する通信を可能にするための構成要素及び機能を含み得る。
【0219】
I/Oポート712は、そのうちのいくつかは計算デバイス700に内蔵(たとえば、統合)され得る、I/O構成要素714、提示構成要素718、及び/又は他の構成要素を含む、他のデバイスに計算デバイス700が論理的に連結されることを可能にすることができる。例示的なI/O構成要素714は、マイクロフォン、マウス、キーボード、ジョイスティック、ゲーム・パッド、ゲーム・コントローラ、サテライト・ディッシュ、スキャナ、プリンタ、ワイヤレス・デバイスなどを含む。I/O構成要素714は、エア・ジェスチャ、音声、又は、ユーザによって生成される他の生理的入力を処理する自然ユーザ・インターフェース(NUI:natural user interface)を提供することができる。場合によっては、入力は、さらなる処理のための適切なネットワーク要素に送信され得る。NUIは、音声認識、スタイラス認識、顔認識、生体認識、画面上での及び画面の隣でのジェスチャ認識、エア・ジェスチャ、頭部及び視標追跡、並びに計算デバイス700のディスプレイに関連するタッチ認識(さらに詳しく後述するような)の任意の組合せを実装し得る。計算デバイス700は、ジェスチャ検出及び認識のための、ステレオスコープ・カメラ・システム、赤外線カメラ・システム、RGBカメラ・システム、タッチ画面技術、及びこれらの組合せなど、深度カメラを含み得る。追加で、計算デバイス700は、動きの検出を可能にする加速度計又はジャイロスコープを含み得る(たとえば、慣性測定ユニット(IMU:inertia measurement unit)の一部として)。いくつかの実例では、加速度計又はジャイロスコープの出力は、没入型拡張現実又は仮想現実をレンダリングするために、計算デバイス700によって使用され得る。
【0220】
電力供給装置716は、ハードワイヤード電力供給装置、バッテリ電力供給装置、又はその組合せを含み得る。電力供給装置716は、計算デバイス700の構成要素が動作することを可能にするために計算デバイス700に電力を提供することができる。
【0221】
提示構成要素718は、ディスプレイ(たとえば、モニタ、タッチ画面、テレビジョン画面、ヘッドアップ表示装置(HUD)、他のディスプレイタイプ、又はその組合せ)、スピーカ、及び/又は他の提示構成要素を含み得る。提示構成要素718は、他の構成要素(たとえば、GPU708、CPU706など)からデータを受信し、データを(たとえば、画像、ビデオ、音響などとして)出力することができる。
【0222】
本開示は、コンピュータ又は、携帯情報端末若しくは他のハンドヘルド・デバイスなどの、他のマシンによって実行されている、プログラム・モジュールなどのコンピュータ実行可能命令を含む、コンピュータ・コード又はマシン使用可能命令との一般的関連において説明されることがある。一般に、ルーティン、プログラム、オブジェクト、構成要素、データ構造体などを含むプログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ・タイプを実装するコードを指す。本開示は、ハンドヘルド・デバイス、家電製品、汎用コンピュータ、より特殊な計算デバイスなどを含む、様々な構成で実施され得る。本開示はまた、通信ネットワークを介してリンクされた遠隔処理デバイスによってタスクが実行される分散型コンピューティング環境において実施され得る。
【0223】
本明細書では、2個以上の要素に関する「及び/又は」の記述は、1個の要素のみ、又は要素の組合せを意味すると解釈されるべきである。たとえば、「要素A、要素B、及び/又は要素C」は、要素Aのみ、要素Bのみ、要素Cのみ、要素A及び要素B、要素A及び要素C、要素B及び要素C、或いは、要素A、B、及びCを含み得る。加えて、「要素A又は要素Bのうちの少なくとも1個」は、要素Aの少なくとも1個、要素Bの少なくとも1個、或いは、要素Aの少なくとも1個及び要素Bの少なくとも1個を含み得る。
【0224】
本開示の主題は、法定の要件を満たすために特異性を有して記述されている。しかしながら、その記述自体が本開示の範囲を制限することは意図されていない。そうではなくて、本発明者は、請求されている主題が、他の現在の又は未来の技術と併せて、異なるステップ又は本文書に記載されたものと類似のステップの組合せを含むように、他の形で実施され得ることを意図している。さらに、「ステップ」及び/又は「ブロック」という用語は、使用される方法の異なる要素を含意するように本明細書で使用され得るが、これらの用語は、個別のステップの順番が明示的に記載されていない限り及びそのように記載されているときを除いて本明細書で開示される様々なステップの間に何らかの特定の順番を暗示するものとして解釈されるべきではない。
図1
図2A
図2B
図3
図4
図5
図6A
図6B
図6C
図6D
図7