JP2023035822A - 高ダイナミック・レンジ・センサのための画像信号処理パイプライン - Google Patents

高ダイナミック・レンジ・センサのための画像信号処理パイプライン Download PDF

Info

Publication number
JP2023035822A
JP2023035822A JP2022090611A JP2022090611A JP2023035822A JP 2023035822 A JP2023035822 A JP 2023035822A JP 2022090611 A JP2022090611 A JP 2022090611A JP 2022090611 A JP2022090611 A JP 2022090611A JP 2023035822 A JP2023035822 A JP 2023035822A
Authority
JP
Japan
Prior art keywords
image
bit
depth
power curve
sensor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022090611A
Other languages
English (en)
Inventor
ケムカ アニメッシュ
Khemka Animesh
ミッドサン ピーパー ショーン
Midthun Pieper Sean
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of JP2023035822A publication Critical patent/JP2023035822A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/84Camera processing pipelines; Components thereof for processing colour signals
    • H04N23/843Demosaicing, e.g. interpolating colour pixel values
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Studio Devices (AREA)

Abstract

【課題】システムが、処理された画像におけるSNR又は色比の劣化なしに、高ビット深度をもつ画像センサを、より低いビット深度を有する画像信号処理(ISP)と組み合わせること。【解決手段】画像信号処理(ISP)パイプラインに関連する1つ又は複数のプロセッサにおいて、画像センサによって生成された圧縮された画像を受信することであって、圧縮された画像が、画像センサに関連する第1のビット深度においてキャプチャされ、第1のビット深度よりも低い第2のビット深度に圧縮され、ISPが、第1のビット深度よりも低く、第2のビット深度よりも高い、第3のビット深度に関連する、受信することと、第3のビット深度を有する部分的に復元された画像を生成するために、電力曲線に従って、圧縮された画像を復元することであって、部分的に復元された画像の複数の領域が、複数の領域の各領域の対応するピクセル値に基づいて別個の復元量において復元される、復元することとを行うための装置、システム、及び技法。【選択図】図1

Description

本明細書で開示される実施例は、画像信号処理(ISP:image signal processing)パイプライン内での画像の復元を含む、画像の圧縮及び復元に関する。たとえば、少なくとも1つの実施例は、本明細書で説明される様々な新規の技法による、部分的に復元された画像を生成するために、電力曲線に従って、圧縮された画像を復元するために使用されるプロセッサ又はコンピューティング・システムに関する。
高ダイナミック・レンジ(HDR:high dynamic range)画像センサは、大きいダイナミック・レンジをもつデータをキャプチャし、そのデータは、しばしば、それらを処理するために利用可能なメモリ、ハードウェア及びデータ帯域幅を超える。したがって、画像センサにおける生画像データは、一般的に、ISPパイプラインへの送信中の帯域幅要件を低減するために圧縮される。データは、次いで、データを処理するためにISPにおいて復元される。現代の画像センサ(たとえば、自動車のセンサ)は、しばしば、たとえば24ビット分解能で、画像をキャプチャするときに大きいダイナミック照明レンジを提供するために、画像の高ビット深度をサポートするHDR画像センサである。一方、ISPハードウェアは、画像センサほどの高ビット深度をサポートすることが可能でなく、センサとISPとの間のビット深度分解能の差により、ISPにおいて画像を元に戻した後に画像品質の潜在的劣化を生じ得る。
"Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles" (e.g., Standard No. J3016-201806, published on June 15, 2018, Standard No. J3016-201609, published on September 30, 2016, and previous and future versions of this standard)
少なくとも1つの実施例による、カメラ画像圧縮構成要素をホスト及び実行するためのコンピュータ・システムを示す図である。 少なくとも1つの実施例による、ISPパイプラインにおいてHDR画像のための圧縮及び復元アルゴリズムを実行するためのプロセスの流れ図である。 少なくとも1つの実施例による、電力曲線を使用してカメラ・センサからの画像を圧縮及び復元するためのコンピューティング環境300の図である。 少なくとも1つの実施例による、画像のSNR及び色精度に影響を及ぼすことなしにカメラからのHDR画像を圧縮及び復元するために使用され得る線形セグメントをもつ電力曲線を示す図である。 少なくとも1つの実施例による、カメラからのHDR行画像とISPからのHDRの処理された画像とのPWL圧縮及び復元を使用することの影響を示す図である。 少なくとも1つの実施例が使用され得る例示的なデータ・センタを示す図である。 少なくとも1つの実施例による、自律車両の一実例を示す図である。 少なくとも1つの実施例による、(1つ又は複数の)クラウド・ベースのサーバと図7Aの自律車両との間の通信のためのシステムを示す図である。 少なくとも1つの実施例による、コンピュータ・システムを示すブロック図である。 少なくとも1つの実施例による、コンピュータ・システムを示すブロック図である。 1つ又は複数の実施例による、グラフィックス・プロセッサの少なくとも一部分を示す図である。
画像信号処理パイプラインのための圧縮及び復元方式
少なくとも1つの実施例では、色比又は信号対ノイズ比(SNR:signal to noise ratio)劣化なしの高性能を達成するために、画像信号処理(ISP)パイプラインにおける高ダイナミック・レンジ(HDR)画像の処理のための新しい圧縮及び/又は復元方式を実装する手法が提供される。いくつかの実装形態では、圧縮及び/又は復元方式は、カメラ・センサからの最初の高ビット深度において生成されたデータを処理するために使用され、したがって、そのデータは、ISPにおいて、SNR及び色精度を保持しながら、最初の高ビット深度よりも低いビット深度に復元され得る。センサ圧縮及びISP復元は、曲線当てはめ技法を使用して電力曲線に従って実装される区分的線形(PWL:piecewise linear)スプライン関数を使用して実施され得る。電力曲線は、HDR画像をセンサ・ビット深度からISPビット深度に圧縮するために選択され得、画像のある領域の圧縮のレベルが、電力曲線に従う領域のピクセル値に基づく。1つ又は複数の実施例では、電力曲線は、最初に、実施例において画像品質を劣化させることなしに線形近似を可能にするために、2つのパラメータ(定数及び電力)により一般化され得る。電力曲線の電力は、ターゲット圧縮比(たとえば、入力ビット深度と出力ビット深度との比)に基づき得る。一実例として、画像の領域のピクセル値は、画像の領域のルミナンス値及び/又は画像の領域の放射輝度値であり得る。ルクスで測定されるルミナンス値、及びワット数で測定される放射輝度値は、画像内のシーン中の各表面から来る光の量を表す。いくつかの実装形態では、電力曲線の一部分が線形セグメントで近似され得る。一実施例では、線形セグメントは、低ピクセル値を有する画像の領域を圧縮/復元するために(たとえば、あるしきい値を下回るピクセル値を有する画像のピクセルを圧縮/復元するために)使用される。この場合、入力画像の低ピクセル値(たとえば、低信号)領域を圧縮/復元するために線形セグメントを使用することは、量子化によるノイズ増加が最も重大であり得る画像の低光エリアにおけるSNRを保持し得る。
実施例は、システムが、処理された画像におけるSNR又は色比の劣化なしに、高ビット深度をもつ画像センサ(たとえば、HDRカメラ)を、より低いビット深度を有するISPと組み合わせることを可能にする。復元関数、及び随意に圧縮関数は、SNR及び色比劣化を最小限に抑える非線形復元及び/又は圧縮を提供するように調整され得る。その結果、本開示の実施例は、システム設計者が、より大きいフレキシビリティをもつ画像センサ及びISPパイプライン構成要素を選択することを可能にし、これは、システム設計者が、機能性を低減することなしにコストを低減することを可能にする。実施例では、画像センサ及びISPパイプラインは、単一の露光において関心シーン全体をキャプチャするように構成され得る。さらに、実施例では、画像センサ及びISPパイプラインは、夜のシーンと日中のシーンの両方において機能することができる単一モードを使用して動作し、別個の夜モード及び日中モードの使用をなくすように構成され得る。実施例は、画像センサ及び/又はISPの設定が、ISPハードウェアのビット深度にかかわらず2モード(たとえば、夜モード及び日中モード)露光システムのスーパーセットであるようにチューニングされることを可能にする。したがって、実施例では、画像センサは、1つ又は複数の動作モードと、動作モード間のモード遷移とをなくし、遷移アーティファクトを除去することによって、簡略化され得る。さらに、これは、(通常、画像センサのセンサ設定を制御するために使用されることになる)自動露光アルゴリズムがない簡略化されたソフトウェアをもたらす。さらに、実施例は、画像センサが固定設定で構成されることを可能にし、これは、システムをより安全にし、センサ・ドライバの簡略化を生じ、かなりのエンジニアリング及び品質分析労力を節約する。
本開示は、画像のSNR及び色精度を維持しながら、高ビット深度を有するカメラのセンサと、カメラ・センサのビット深度よりも低いビット深度を有するISPとの間でHDR画像を圧縮及び復元するための、技法及び方法を提供する。圧縮及び/又は復元は、カメラ・ビット深度、(カメラとISPとの間の送信のための)送信ビット深度、及び/又はISPビット深度に基づいて構成され得る。電力曲線が、カメラ・ビット深度、送信ビット深度及び/又はISPビット深度に基づいて、カメラにおける圧縮のために及び/又はISPにおける復元のために決定され得る。たとえば、第1の電力曲線が圧縮のために決定され得、第2の電力曲線が復元のために決定され得る。電力曲線に従って圧縮及び/又は復元のレベルを構成することによって、圧縮された画像及び/又は復元された画像(たとえば、ISPのビット深度に復元された、部分的に復元された画像)のサイズが最適化され得る。電力曲線に従って実施される復元及び/又は圧縮は、高ルミナンス値をもつ画像の領域についてより多くの圧縮が実施されながら、低ルミナンス値をもつ画像の領域についてより少ない圧縮が実施されることを引き起こし得る。いくつかの実施例では、電力曲線の一部分の代わりとして線形セグメントが決定される。線形セグメントは、しきい値よりも小さい値を有する低ピクセル値(たとえば、低信号)のための電力曲線の近似であり、したがって、不十分な光を有する画像のより暗い領域についてのSNR及び色精度を保持し得る。さらに、画像の低ピクセル値領域を圧縮/復元するために線形セグメントを使用することは、画像属性に対する著しい劣化なしの画像の圧縮及び/又は復元を生じることができる。
図1は、少なくとも1つの実施例による、カメラ画像圧縮/復元構成要素115A~115Bをホスト及び実行するためのシステムを示す。少なくとも1つの実施例では、コンピュータ・システム100は、サーバ、システム・オン・チップ(SoC:system on a chip)、デスクトップ・コンピュータ、ラップトップ・コンピュータ、モバイル・コンピューティング・デバイス、クラウド・コンピューティング環境、及び/又は任意の他のコンピュータ・システムであり得る。少なくとも1つの実施例では、コンピュータ・システム100は、限定はしないが、1つ又は複数のグラフィカル処理ユニット(GPU:graphical processing unit)、中央処理ユニット(CPU:central processing unit)、及び/又は任意の他のプロセッサのうちの1つ又は複数を表す、1つ又は複数のプロセッサ120を含み得る。コンピュータ・システム100は、(1つ又は複数の)キャッシュ113、(1つ又は複数の)データ・ストア116、並びに/又は示されていない他の構成要素及び特徴をさらに含み得る。コンピュータ・システム100はISP140を含み得、ISP140は、1つ又は複数のプロセッサ120と、カメラ・センサ130と、随意に1つ又は複数の他の構成要素とを使用して実装され得る。実施例では、カメラ・センサ130及びコンピュータ・システム100は、モバイル・フォン、自律車両、非自律車両、ビデオ・サーベイランス・システム、ラップトップ・コンピュータ、デスクトップ・コンピュータ、品質分析(QA:quality analysis)検査システム、又は他のシステムなど、デバイスの構成要素であり得る。
少なくとも1つの実施例では、コンピュータ・システム100は、本明細書で説明されるものを含む、任意の数のキャッシュ113を含み得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)キャッシュ113は、コンピュータ・システム100の(1つ又は複数の)CPUと(1つ又は複数の)GPUの両方にとって利用可能であるレベル3(「L3」)キャッシュ及び/又はレベル2(「L2」)キャッシュを含むことができる。少なくとも1つの実施例では、(1つ又は複数の)キャッシュ113は、キャッシュ・コヒーレンス・プロトコル(たとえば、MEI、MESI、MSIなど)を使用することなどによって、ラインの状態を追跡し得るライト・バック・キャッシュを含み得る。少なくとも1つの実施例では、L3キャッシュは、実施例に応じて、4MB以上のメモリを含み得るが、より小さいキャッシュ・サイズが使用され得る。
少なくとも1つの実施例では、コンピュータ・システム100は、(1つ又は複数の)データ・ストア116(たとえば、メモリ)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)データ・ストア116は、コンピュータ・システム100のオンチップ・メモリであり得、このオンチップ・メモリは、コンピュータ・システム100の(1つ又は複数の)GPU上で実行されるべき、ニューラル・ネットワーク、画像処理パイプラインの1つ又は複数の構成要素などを記憶し得る。少なくとも1つの実施例では、(1つ又は複数の)データ・ストア116は、(1つ又は複数の)L2又はL3キャッシュを備え得る。
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ120は、組み込みプロセッサを含み得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ120は、ブート電力並びに管理機能及び関係するセキュリティ執行に対処するための専用プロセッサ及びサブシステムであり得る、ブート及び電力管理プロセッサを含み得る。少なくとも1つの実施例では、ブート及び電力管理プロセッサは、システム100のブート・シーケンスの一部であり得、ランタイム電力管理サービスを提供し得る。少なくとも1つの実施例では、ブート電力及び管理プロセッサは、クロック及び電圧プログラミング、システム低電力状態移行の支援、システム100の熱及び温度センサの管理、並びに/又はシステム100の電力状態の管理を提供し得る。少なくとも1つの実施例では、各温度センサは、その出力周波数が温度に比例するリング発振器として実装され得、システム100は、リング発振器を使用して、システム100の(1つ又は複数の)CPU、(1つ又は複数の)GPU、及び/又は(1つ又は複数の)アクセラレータの温度を検出し得る。
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ120は、オーディオ処理エンジンとして働き得る組み込みプロセッサのセットをさらに含み得、オーディオ処理エンジンは、複数のインターフェースを介した多チャネル・オーディオ、及び幅広くフレキシブルな様々なオーディオI/Oインターフェースのための、完全なハードウェア・サポートを可能にする、オーディオ・サブシステムであり得る。少なくとも1つの実施例では、オーディオ処理エンジンは、専用RAMをもつデジタル信号プロセッサをもつ専用プロセッサ・コアである。
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ120は、低電力センサ管理及び立ち上げ使用事例をサポートするのに必要なハードウェア特徴を提供し得る常時オン・プロセッサ・エンジンをさらに含み得る。少なくとも1つの実施例では、常時オン・プロセッサ・エンジンは、限定はしないが、プロセッサ・コア、密結合RAM、サポート周辺機器(たとえば、タイマ及び割込みコントローラ)、様々なI/Oコントローラ周辺機器、及びルーティング論理を含み得る。
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ120は、安全クラスタ・エンジンをさらに含み得、安全クラスタ・エンジンは、限定はしないが、自動車用途のための安全管理に対処するための専用プロセッサ・サブシステムを含む。少なくとも1つの実施例では、安全クラスタ・エンジンは、限定はしないが、2つ又はそれ以上のプロセッサ・コア、密結合RAM、サポート周辺機器(たとえば、タイマ、割込みコントローラなど)、及び/又はルーティング論理を含み得る。安全モードでは、2つ又はそれ以上のコアは、少なくとも1つの実施例では、ロックステップ・モードで動作し、それらの動作間で何らかの差を検出するための比較論理をもつ単一コアとして機能し得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ120は、リアルタイム・カメラ・エンジンをさらに含み得、リアルタイム・カメラ・エンジンは、限定はしないが、リアルタイム・カメラ管理に対処するための専用プロセッサ・サブシステムを含み得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ120は、高ダイナミック・レンジ信号プロセッサなどの信号プロセッサをさらに含み得、この信号プロセッサは、限定はしないが、ISP140の一部であるハードウェア・エンジンである画像信号プロセッサを含み得る。(1つ又は複数の)プロセッサ120は、さらに、カメラ・センサ130からの画像を受信及び処理するために(画像センサとも呼ばれる)カメラ・センサ130と対話し得る。
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ120は、ビデオ画像合成器を含み得、ビデオ画像合成器は、プレーヤ・ウィンドウのための最終画像を作り出すためにビデオ再生アプリケーションによって必要とされるビデオ後処理機能を実装する(たとえば、マイクロプロセッサ上に実装された)処理ブロックであり得る。少なくとも1つの実施例では、ビデオ画像合成器は、(1つ又は複数の)広角カメラ120、(1つ又は複数の)周囲カメラ120、及び/又は(1つ又は複数の)キャビン内監視カメラ・センサに対して、レンズゆがみ補正を実施し得る。
カメラ・センサ130は、画像センサ又はイメージャであり得、画像センサ又はイメージャは、カメラからの画像内の物体から反射する光波の可変減衰を、その画像を作るために使用される情報を伝達する電流の小さいバーストとしての信号にコンバートすることによって、その情報を検出し、伝達する。波は、光又は他の電磁放射であり得る。カメラ・センサ130は、デジタル・カメラ、カメラ・モジュール、カメラ・フォン、光マウス・デバイス、医療撮像機器、暗視機器、レーダー、ソナー、及び/又は他の撮像デバイスを含む、アナログ・タイプとデジタル・タイプの両方の電子撮像デバイスにおいて使用され得る。
ISP140は、レンダリングのための画像を処理するためにデジタル画像処理動作の中間セットを実施し得、したがって、処理された画像は、比色精度、最小ハードウェア・コスト、及び/又は低CPU利用のために最適化される。少なくとも1つの実施例では、ISP140(又はISP400の少なくとも構成要素)は、コンピュータ・システム100及び/又はコンピュータ・システム100の(1つ又は複数の)プロセッサ120からなる。少なくとも1つの実施例では、ISP140(又はISPの少なくとも構成要素)は、カメラからの画像を出力する前の画像処理を担当するカメラ内の構成要素であり得る。少なくとも1つの実施例では、ISP140は、ISP140に接続されたカメラからの画像を処理し得るリモート及び/又は別個の構成要素であり得る。この場合、リモートISP140は、各カメラからの画像を処理するために、任意の数の互換性があるカメラに接続され得る。少なくとも1つの実施例では、ISP140によって実施される動作は、ベイヤー・フィルタを適用すること、ノイズ低減を実施すること、シェーディング補正を実施すること、画像スケーリングを実施すること、ガンマ補正を実施すること、画像強調を実施すること、色空間コンバージョンを実施すること、線形化を実施すること、デモザイク技法を適用すること、フレームレート・コンバージョンを実施すること、画像圧縮及び/又は復元を実施すること、並びに/或いはデータ送信を実施することの任意の組合せを含み得る。ISP140は、前記動作を実施するために、カメラ・センサ130又はスキャナなどの画像ソースと、テレビ受像機、プリンタ、又はコンピュータ・スクリーンなどの画像レンダラとの間で使用されるべき構成要素を含み得る。ISP140は、コンピュータ・ソフトウェアとして、デジタル信号プロセッサ中で、汎用プロセッサ上で、専用プロセッサ上で、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate array)上で、アナログ回路上で、又は固定機能特定用途向け集積回路(ASIC:application-specific integrated circuit)として実装され得る。ISP140は、デジタル信号プロセッサ(DSP:digital signal processor)であるか、又はそれを含み得、DSPは、カメラ・センサ130からの画像を処理するためのいくつかのタイプの算出のために最適化された専用ハードウェア処理ユニットをもつデジタルCPUによって実行され得る。
カメラ画像圧縮/復元構成要素115A~Bは、1つ又は複数の実施例によれば、画像の圧縮及び/又は復元を実施するために使用され得る。少なくとも1つの実施例では、カメラ画像圧縮/復元構成要素115A~Bは、色比又は信号対ノイズ比(SNR)劣化なしの高性能を達成するために、画像信号処理(ISP)パイプラインにおける高ダイナミック・レンジ(HDR)画像のための新しい圧縮及び/又は復元方式を提供し得る。いくつかの実装形態では、(1つ又は複数の)カメラ画像圧縮/復元構成要素115A~Bは、カメラ・センサ130からの最初の高ビット深度において生成されたデータを処理するための圧縮及び/又は復元方式を提供し得、したがって、そのデータは、ISP140において、SNR及び色精度を保持しながら、最初の高ビット深度よりも低いビット深度に復元され得る。(1つ又は複数の)カメラ画像圧縮/復元構成要素115A~Bは、区分的線形(PWL)スプライン関数を使用して圧縮及び/又は復元を実施し得る。一実施例では、カメラ・センサ130中の画像圧縮/復元構成要素115Aは、第1のPWLスプライン関数を使用して圧縮を実施し、カメラ画像圧縮/復元構成要素115Bは、第2のPWLスプライン関数を使用して復元及び/又は圧縮を実施する。第2のPWLスプライン関数は、以下に記載されるように、第1のPWLスプライン関数と決定された電力曲線とに基づいて決定されていることがある。区分的線形関数は、実数の区間上で定義された関数を指し得、したがって、区間の集合があり、その各々上でPWL関数がアフィン変換を表す。アフィン変換は、ライン及び並列度を保持するが、距離及び角度を保持することも保持しないこともある、ジオメトリ変換を指し得る。
いくつかの実装形態では、(1つ又は複数の)カメラ画像圧縮/復元構成要素115A~Bは、電力曲線に従って圧縮及び/又は復元アルゴリズムを実施する。電力曲線は、HDR画像をカメラ・センサのセンサ・ビット深度(たとえば、24ビット)からISPビット深度(これは、20ビットなど、センサ・ビット深度よりも低くなり得る)に圧縮するために選択され得、画像のある領域の圧縮のレベルが、電力曲線に従う領域のピクセル値に基づく。一実例として、画像の領域のピクセル値は、画像の領域のルミナンス値及び/又は画像の領域の放射輝度値であり得る。ルクスで測定されるルミナンス値、及びワット数で測定される放射輝度値は、画像内のシーン中の各表面から来る光の量を表す。電力曲線に従う領域のルミナンス条件に基づいてHDR画像の領域の圧縮及び/又は復元のレベルを制御することによって、(1つ又は複数の)カメラ画像圧縮/復元構成要素115A~Bは、高ルミナンス値をもつ画像の領域についてより多くの圧縮が実施されながら、低ルミナンス値をもつ画像の領域についてより少ない圧縮が実施され、したがって、より少ない又は不十分な光を有する画像のより暗い領域についてのSNR及び色精度を保持するように、圧縮された画像のサイズを最適化することができる。
いくつかの実装形態では、(1つ又は複数の)カメラ画像圧縮/復元構成要素115は、圧縮/復元電力曲線を使用する。電力曲線は、低ピクセル値を有する画像の領域を圧縮/復元するための(たとえば、あるしきい値を下回るルミナンス値又は放射輝度値を有する画像のピクセルを圧縮/復元するための)線形セグメントを含み得る。この場合、入力画像の低ピクセル値領域を圧縮/復元するために線形セグメントを使用することは、量子化によるノイズ増加が最も重大であり得る画像の低光エリアにおけるSNRを保持し得る。一実施例では、あるしきい値を下回るピクセル値は、非線形関数ではなく線形関数に従って、圧縮されないことも圧縮されることもある。さらに、画像の低ピクセル値領域を圧縮/復元するために(たとえば、圧縮を適用しないことがある)線形セグメントを使用することは、本明細書で以下でより詳細に説明されるように、画像属性に対する著しい劣化なしの画像の圧縮及び/又は復元を生じることができる。
一実装形態では、カメラ画像圧縮/復元構成要素115Bは、(1つ又は複数の)プロセッサ120において、ISP140において処理されるべき、カメラ・センサ130によって生成され、カメラ画像圧縮/復元構成要素115Aによって圧縮された、圧縮された画像を受信し得る。いくつかの実装形態では、圧縮された画像は、カメラ・センサ130によってカメラ・センサ130のビット深度においてキャプチャされ、次いで、カメラ画像圧縮/復元構成要素115Aは、カメラ・センサ・ビット深度よりも低い異なるビット深度に、キャプチャされた画像を圧縮した。画像のビット深度は、画像に記憶された色情報の量を表し得、したがって、画像のビット深度が高いほど、画像はより多くの色を記憶することができる。一実例として、最も単純な画像は1ビット画像であり得、1ビット画像は、2つの色、すなわち、黒及び白のみを示すことができる。一実装形態では、カメラ画像圧縮/復元構成要素115Aは、画像のより暗い領域のSNR及び色精度が圧縮/復元中に劣化しないように、各領域の対応するピクセル値に基づいて、電力曲線に従って、キャプチャされた画像の異なる領域に異なる量又はレベルの圧縮を適用することによって、カメラ・センサ130からのキャプチャされた画像を圧縮する。電力曲線は、2つの自由度をもつ曲線であり得る。実施例では、しきい値を下回るピクセル値に関連する電力曲線の一部分が、線形セグメントで近似される。一実例として、カメラ画像圧縮/復元構成要素115Aは、第1のピクセル値を有するキャプチャされた画像の第1の領域に第1の圧縮レベルを適用し、次いで、より高い第2のピクセル値を有するキャプチャされた画像の第2の領域に第2の圧縮レベルを適用し得、したがって、第1の圧縮レベルは第2の圧縮レベルよりも低い。
一実装形態では、カメラ画像圧縮/復元構成要素115は、カメラ・センサ130のビット深度がISP140のビット深度に等しいかどうかを見つけ出すためにチェックする。カメラ・センサ130のビット深度がISP140のビット深度よりも高く、ISP140のビット深度が、圧縮された画像のビット深度よりも高い場合、カメラ画像圧縮/復元構成要素115Bは、図3に関して以下でより詳細に説明されるように、復元された画像がISP140によってISP140のビット深度において処理され得るように、電力曲線を使用して、画像についての圧縮された画像のビット深度からISP140のビット深度への復元を実施する。
一実装形態では、カメラ画像圧縮/復元構成要素115Bは、区分的線形(PWL)スプライン関数に少なくとも部分的に対応する電力曲線を使用して、画像を、画像の圧縮されたバージョンのビット深度からISP140のビット深度に復元する。PWLスプライン関数は、ニー・ポイントのセットを含む。カメラ画像圧縮/復元構成要素115B又は別のコンピュータ・システムは、曲線当てはめ技法を使用してPWL関数のニー・ポイントのセットに基づいて電力曲線を決定し得る。曲線当てはめ技法は、曲線をサンプリングし、ポイント間を線形的に補間することによって、PWL関数のニー・ポイントを知られている曲線に近似するプロセスを指し得る。この技法は、さらに、あるエラー許容差に従う、曲線から最上位のニー・ポイントを算出するためのアルゴリズムを使用し得る。いくつかの実装形態では、電力曲線は、画像の低ピクセル値領域のSNR及び色精度を保持するために、ピクセル値しきい値を下回る画像ピクセル値を線形的に処理するための、ピクセル値しきい値に延びる線形セグメントを含む。この場合、カメラ画像圧縮/復元構成要素115Bは、しきい値を下回る画像ピクセル値の信号対ノイズ比(SNR)を保持するために、ピクセル値しきい値を下回る画像ピクセル値の圧縮を回避し得る(たとえば、完全に復元し得る)。代替的に、しきい値を下回るピクセル値の圧縮及び/又は復元は、電力関数ではなく線形関数に従って実施され得る。
いくつかの実装形態では、カメラ画像圧縮/復元構成要素115Bは、画像の各領域の対応するピクセル値に基づいて、異なる復元量において画像の領域を復元する。一実例として、カメラ画像圧縮/復元構成要素115Bは、あるピクセル値を有する圧縮された画像の第1の領域に第1の復元量を適用し得、第1の領域のピクセル値よりも高いピクセル値を有する圧縮された画像の第2の領域に第2の復元量を適用し得、したがって、復元後、第2の領域は、第1の領域よりも大きい残差圧縮を有する。いくつかの実施例では、第1の復元量は第2の復元量よりも低い。いくつかの実施例では、第2の復元量は第1の復元量よりも大きい。いくつかの実装形態では、画像の所与の領域のピクセル値が、画像のキャプチャされた領域の光の量を示す、領域のルミナンス値に対応する。
図2は、少なくとも1つの実施例による、ISPパイプラインにおいてHDR画像のための圧縮及び復元アルゴリズムを実行するためのプロセス200の流れ図である。少なくとも1つの実施例では、プロセス200を実装する処理論理が、カメラ・センサからの最初の高ビット深度において生成されたデータを処理するための圧縮及び/又は復元方式を提供し得、したがって、そのデータは、画像信号プロセッサ(ISP:image signal processor)において、SNR及び色精度を保持しながら、最初の高ビット深度よりも低いビット深度に復元され得る。
動作202において、画像センサが、第1のビット深度において画像をキャプチャする。画像センサは、たとえば、高ビット深度(たとえば、24ビットのビット深度)において画像をキャプチャするHDR画像センサであり得る。画像センサは、たとえば、20ビット、24ビット、26ビット、32ビットなどのビット深度を有するHDRセンサであり得る。動作204において、画像センサ(たとえば、画像センサにおける処理デバイス)は、画像を第1のビット深度からより低い第2のビット深度に(たとえば、24ビットのビット深度から12ビットのビット深度に)圧縮する。画像が圧縮されるビット深度は、画像センサとISPとの間の接続の帯域幅に基づき得る。第2のビット深度は、たとえば、8ビット、10ビット、12ビット、14ビット、16ビット、18ビットなどであり得る。いくつかの実施例では、圧縮は、PWL圧縮を使用して実施される。代替的に、立方圧縮、ルックアップ・テーブル圧縮など、他の圧縮技法が使用され得る。いくつかの実装形態では、画像は、線形セグメントを含むことも含まないこともある電力曲線を使用して圧縮される。電力曲線は、画像センサのプロパティに基づいて決定され得、電力曲線に従って圧縮され、次いで、後で、(元の又は異なるビット深度に)復元された画像が、元の色比及びSNRに近いものを保つように、選択され得る。一実施例では、決定された電力曲線に基づいて、PWL圧縮関数が決定される。動作206において、画像センサは、圧縮された画像をISPパイプラインに送信する。
動作210において、処理論理は、画像信号処理(ISP)パイプラインに関連する1つ又は複数のプロセッサにおいて、画像センサによって生成された圧縮された画像を受信し、ISPは、第1のビット深度よりも低く、第2のビット深度よりも高い、第3のビット深度に関連する(たとえば、20ビットのビット深度など、16~22ビットのビット深度を有する)。ISPは、画像センサと同じビット深度、又は画像センサよりも低いビット深度を有し得る。たとえば、ISPは、10ビット、12ビット、14ビット、16ビット、18ビット、20ビット、22ビット、24ビットなどのビット深度を有し得る。
動作220において、処理論理は、第3のビット深度を有する部分的に復元された画像を生成するために、電力曲線(又は異なる電力曲線)に従って、圧縮された画像を復元する。部分的に復元された画像の複数の領域が、電力曲線に従う複数の領域の各領域の1つ又は複数の対応するピクセル値に基づいて、別個の復元量だけ復元され得る。一実施例では、復元は、曲線当てはめ技法を使用して電力曲線に基づいて生成されたPWL関数を使用して実施される。実装形態では、画像の領域の(1つ又は複数の)ピクセル値は、本明細書でより詳細に説明されるように、画像の領域のルミナンス値を指し得る。
一実施例では、動作230において、処理論理は、電力曲線に従って、第1のピクセル値を有する圧縮された画像の第1の領域に第1の復元量を適用する。一実装形態では、画像の第1の領域の第1のピクセル値は、本明細書でより詳細に説明されるように、画像の第1の領域のルミナンス値を指し得る。
一実施例では、動作240において、処理論理は、電力曲線に従って、より高い第2のピクセル値を有する圧縮された画像の第2の領域に第2の復元量を適用する。実施例では、復元後、第2の領域の圧縮の残差レベルが第1の領域の圧縮の残差レベルよりも大きい。一実施例では、第1の復元量は第2の復元量よりも低い。一実施例では、第2の復元量は第1の復元量よりも低い。一実装形態では、画像の第2の領域の第2のピクセル値は、第1の領域の第1のルミナンス値よりも高い画像の第2の領域のルミナンス値を指し得る。
図3は、少なくとも1つの実施例による、電力曲線を使用して(たとえば、電力曲線に適したPWL関数を使用して)カメラ・センサからの画像を圧縮及び復元するためのコンピューティング環境300の図である。少なくとも1つの実施例では、処理論理が、PWL関数に対応する電力曲線に基づいて画像データの圧縮及び復元を実施するための区分的線形関数(PWL)を利用し得る。この場合、キャプチャされた画像が、最初に、PWL関数を使用してカメラ・センサ312によって圧縮され、次いで、圧縮された画像は、ISP314に関連するビット深度を達成するために、ISP314において別のPWL関数(たとえば、圧縮のために使用されるPWL関数に対する近似逆PWL関数)を使用して復元される。復元のために使用されるPWL関数は、それが、圧縮された画像に適用されたとき、得られた部分的に圧縮された画像が、実施例における電力曲線に対応する圧縮状態を有するように、選択され得る。コンピューティング環境300は、図1のコンピュータ・システム100と同じ又は同様であり得、センサ312は、図1のカメラ・センサ130と同じ又は同様であり得、ISP314は、図1のISP140と同じ又は同様であり得る。
動作310において、処理論理は、(電力曲線に基づくことも基づかないこともある)PWL関数316を使用して、キャプチャされた画像を、センサ312のビット深度である第1のビット深度(たとえば、24ビット)から第2のビット深度(たとえば、12ビット)に圧縮するために、センサ312において圧縮アルゴリズムを実行する。処理論理は、センサ312からISP314への画像データのより速く、より効率的な転送を可能にするために、(たとえば、24ビットの)生画像を、(たとえば、12ビットの)圧縮された画像に圧縮し得る。一実装形態では、処理論理は、センサ312においてPWL圧縮式を利用して、以下の式を使用して、24ビット線形データ(X)を12ビット・データ(Y)に圧縮し得る。
Y=PWLsensor(X)
ここで、PWLsensorは、データ(X)を圧縮するためにセンサ312によって使用される区分的線形式を表す。
動作320において、処理論理は、圧縮された画像をISP314に送信する。実装形態では、ISP314は、受信された画像に対して、線形化(Lin:linearization)、黒レベル補正(BLC:black level correction)、レンズ・シェーディング補正(LSC:lenses shading correction)、及びホワイト・バランス補正(WBC:white balance correction)を含む、画像処理及び補正機能を実施し得る。実装形態では、処理論理が、ISP314のビット深度が、生画像の元のビット深度を下回るが圧縮されたビット深度を上回る、第3のビット深度(たとえば、20ビットの中間ビット深度)であると決定したとき、処理論理は、(電力曲線に基づくことも基づかないこともある)PWL関数318を使用して、センサ312からのデータ(Y)に対してPWL復元を適用して、部分的に復元されたデータ(たとえば、20ビット・データ)(Z)を生成し、これは、ISP314の残りによって処理され得る、データ(Z)によって表される画像を生成する。最終画像は、最初に圧縮された状態よりも低い圧縮を有する新しい圧縮された状態(たとえば、部分的に圧縮された状態)を有し得る。新しい圧縮された状態では、各ピクセルについての圧縮の量が、そのピクセルについてのルミナンス値又は放射輝度値に基づき得る。新しい圧縮された状態は、電力曲線322に対応し得る。
処理論理は、以下の式を使用してデータ(Z)を生成し得る。
Z=PWLisp(Y)
ここで、PWLispは、データ(Y)を復元するためにISP314によって使用される区分的線形式を表す。したがって、上記の2つの式を組み合わせることによって、処理論理は、センサ312によって生成された元のビット深度画像(たとえば、24ビット画像)からISP314による使用のための新しいビット深度画像(たとえば、20ビット画像)を生成するために、以下の式を使用する。以下の式は、元のビット深度画像(たとえば、24ビット画像)を新しいビット深度画像(たとえば、20ビット画像)にコンバートするために電力曲線322を使用する。
Z=PWLisp(PWLsensor(X))
PWL処理は、それが以下の電力関数を近似するようなやり方で実施され得る。
Z≒Xα
ここで、αは、曲線の電力を定義する値であり得る。以下に記載されるように、PWL処理は、それが以下の一般化された電力関数を近似するようなやり方で実施され得る。
Z≒βXα
ここで、電力曲線を定義するαパラメータ及びβパラメータ(たとえば、数値)。
したがって、ISP314の残りによって処理された画像の最終の圧縮された状態は、電力曲線322を近似する形態を有する。電力曲線322は、(たとえば、より高いレベルの圧縮が、より高いルミナンス値を有する領域に適用される)それらの関連するルミナンス値に従う画像の領域の最終的な最終ターゲットの圧縮された状態を示す。画像の最終の圧縮された状態のこの電力曲線322構成は、(たとえば、PWL関数316を使用する)PWL圧縮と(たとえば、PWL関数318を使用する)PWL復元との組合せに基づいて達成される。事実上、電力曲線322において示されている最終の圧縮された状態は、PWL関数316にPWL関数318を乗算することによって達成され得る。圧縮段階及び/又は復元段階の設計中に、圧縮段階及び/又は復元段階は、(たとえば、電力曲線322に従う)最終の圧縮された状態に圧縮PWL関数又は復元PWL関数のいずれかを乗算して、或いは最終の圧縮された状態を圧縮PWL関数又は復元PWL関数のいずれかで除算して、圧縮関数又は復元関数の他方に達することによって解かれ得る。したがって、処理論理は、圧縮及び/又は復元のために使用すべきPWL関数のニー・ポイントの各々が何であるべきであるかを正確に決定することができる。
一実装形態では、PWL処理が、対応する電力曲線の曲線当てはめ技法に基づいて、センサPWL圧縮のニーポイントとISP PWL復元関数のニーポイントとに基づいて決定されるとすれば、これらの圧縮及び復元アルゴリズムは、低信号レベル(たとえば、低ピクセル値)について高量子化ノイズを生じることがある。高量子化ノイズは、低ピクセル値についてのSNR及び色精度に悪影響を及ぼすことがある。この場合、SNR及び色精度を保持するために、処理論理は、始まりにおいて線形セグメントを含む修正された電力曲線を使用し得、したがって、電力曲線の線形セグメント内にある低電力値について、圧縮及び復元が妨げられる。データ(Z)を生成するための修正された電力関数は、以下によって表され得る。
Z=βXα
ここで、βは、曲線の始まりにおいて線形領域を可能にするために電力曲線に追加された定数である。したがって、24ビット-20ビット圧縮を達成するために、以下の式が使用され得る。
20=β(224α
一方、低信号領域、たとえば、512以下の電力値において線形セグメントを達成するために、以下の式が使用され得る。
Figure 2023035822000002

調整された線形セグメントを有する異なる電力曲線について解くために、異なる始まり及び(たとえば、24ビット及び20ビット以外の)ターゲット・ビット深度値を使用する同様の式も使用され得る。
いくつかの実施例では、自動ホワイト・バランシング(AWB:auto white balancing)動作及び/又はレンズ・シェーディング補正(LSC:lens shading correction)動作が、色比を保持する、利得*Xと利得αに従ってスケーリングされた電力との形態を有する。
図4は、少なくとも1つの実施例による、画像のSNR及び色精度に影響を及ぼすことなしにカメラからの(たとえば、HDR画像などの)画像を圧縮及び/又は復元するために使用され得る線形セグメントをもつ電力曲線を示す。少なくとも1つの実施例では、プロセス400を実装する処理論理が、画像の領域のピクセル値に基づいてHDR画像を圧縮及び/又は復元するための線形セグメント412を含む電力曲線410を利用し得る。いくつかの実装形態では、電力曲線410中の線形セグメント412は、512以下のピクセル値について使用され得る。512を下回るピクセル値についての線形セグメントの使用は、これらのピクセル値を有する領域の圧縮及び/又は復元を防ぎ、したがって、色不精度を引き起こすことなしに低ピクセル値(たとえば、低信号レベル)についてのSNR劣化を防ぎ得る。
図4に示されているように、電力曲線420は、本明細書でより詳細に説明されるように、512の値までの24ビット画像のピクセル値が線形に20ビット・ピクセル値にコンバートされ、随意に画像の実際の圧縮又は復元を防ぐことができることを示す、線形セグメント412のより大きいスケール・グラフを表す。
図5は、少なくとも1つの実施例による、カメラからのHDR生画像とISPからのHDRの処理された画像とのPWL圧縮及び復元を使用することの影響を示す。図5に示されているように、画像510は、20ビット・カメラ・センサを使用して生成され、20ビットISPを使用して処理された。画像520は、画像510と同じ画像を示すが、画像520は、開示される実装形態のうちの1つ又は複数を使用して、24ビット・センサによってキャプチャされ、20ビットISPによって処理された。図5に示されているように、画像520は、示されている最終ビット深度が同じであるが、画像510と比較して高い電力値においてより少ない飽和を示す。
画像530は、処理される前の、20ビット・カメラ・センサを使用して生成された生画像を表す。画像540は、画像530と同じ画像を示すが、画像540は、24ビット・カメラ・センサによってキャプチャされた生画像である。示されているように、生画像530、540の両方は、本明細書で説明される実施例に従って処理された、処理された画像よりもはるかに多い飽和を示す。
データ・センタ
図6は、少なくとも1つの実施例が使用され得る例示的なデータ・センタ600を示す。実施例では、例示的なデータ・センタ600は、圧縮及び/又は復元のために使用すべき最適な電力曲線及びPWL関数を決定するために使用され得る。データ・センタ600は、たとえば、電力曲線にマッピングする、並びに/或いは、圧縮された画像が、電力曲線に従って及び/又は電力曲線に対応する様式で圧縮されることを引き起こす、圧縮及び/又は復元のための1つ又は複数のPWL関数を決定するために、曲線当てはめ動作を実施し得る。少なくとも1つの実施例では、データ・センタ600は、データ・センタ・インフラストラクチャ層610と、フレームワーク層620と、ソフトウェア層630と、アプリケーション層640とを含む。
少なくとも1つの実施例では、図6に示されているように、データ・センタ・インフラストラクチャ層610は、リソース・オーケストレータ612と、グループ化されたコンピューティング・リソース614と、ノード・コンピューティング・リソース(「ノードC.R.」:node computing resource)616(1)~616(N)とを含み得、ここで、「N」は正の整数を表す(それは、他の図中で使用されるものとは異なる整数「N」であり得る)。少なくとも1つの実施例では、ノードC.R.616(1)~616(N)は、限定はしないが、任意の数の中央処理ユニット(「CPU」)又は(アクセラレータ、フィールド・プログラマブル・ゲート・アレイ(FPGA)、グラフィックス・プロセッサなどを含む)他のプロセッサ、メモリ・ストレージ・デバイス618(1)~618(N)(たとえば、動的読取り専用メモリ、ソリッド・ステート・ストレージ又はディスク・ドライブ)、ネットワーク入力/出力(「NW I/O」:network input/output)デバイス、ネットワーク・スイッチ、仮想機械(「VM」:virtual machine)、電力モジュール、及び冷却モジュールなどを含み得る。少なくとも1つの実施例では、ノードC.R.616(1)~616(N)の中からの1つ又は複数のノードC.R.は、上述のコンピューティング・リソースのうちの1つ又は複数を有するサーバであり得る。
少なくとも1つの実施例では、グループ化されたコンピューティング・リソース614は、1つ又は複数のラック(図示せず)内に格納されたノードC.R.の別個のグループ化、又は様々な地理的ロケーション(同じく図示せず)においてデータ・センタ中に格納された多くのラックを含み得る。少なくとも1つの実施例では、グループ化されたコンピューティング・リソース614内のノードC.R.の別個のグループ化は、1つ又は複数のワークロードをサポートするように構成されるか又は割り振られ得る、グループ化されたコンピュート・リソース、ネットワーク・リソース、メモリ・リソース、又はストレージ・リソースを含み得る。少なくとも1つの実施例では、CPU又はプロセッサを含むいくつかのノードC.R.は、1つ又は複数のワークロードをサポートするためのコンピュート・リソースを提供するために1つ又は複数のラック内でグループ化され得る。少なくとも1つの実施例では、1つ又は複数のラックはまた、任意の数の電力モジュール、冷却モジュール、及びネットワーク・スイッチを、任意の組合せで含み得る。
少なくとも1つの実施例では、リソース・オーケストレータ612は、1つ又は複数のノードC.R.616(1)~616(N)及び/又はグループ化されたコンピューティング・リソース614を構成するか、又はさもなければ、制御し得る。少なくとも1つの実施例では、リソース・オーケストレータ612は、データ・センタ600のためのソフトウェア設計インフラストラクチャ(「SDI」:software design infrastructure)管理エンティティを含み得る。少なくとも1つの実施例では、リソース・オーケストレータ112は、ハードウェア、ソフトウェア、又はそれらの何らかの組合せを含み得る。
少なくとも1つの実施例では、図6に示されているように、フレームワーク層620は、ジョブ・スケジューラ622と、構成マネージャ624と、リソース・マネージャ626と、分散型ファイル・システム628とを含む。少なくとも1つの実施例では、フレームワーク層620は、ソフトウェア層630のソフトウェア632、及び/又はアプリケーション層640の1つ又は複数のアプリケーション642をサポートするためのフレームワークを含み得る。少なくとも1つの実施例では、ソフトウェア632又は(1つ又は複数の)アプリケーション642は、それぞれ、アマゾン・ウェブ・サービス、Google Cloud、及びMicrosoft Azureによって提供されるものなど、ウェブ・ベースのサービス・ソフトウェア又はアプリケーションを含み得る。少なくとも1つの実施例では、フレームワーク層620は、限定はしないが、大規模データ処理(たとえば、「ビック・データ」)のために分散型ファイル・システム628を利用し得るApache Spark(商標)(以下「Spark」)など、無料でオープンソースのソフトウェア・ウェブ・アプリケーション・フレームワークのタイプであり得る。少なくとも1つの実施例では、ジョブ・スケジューラ622は、データ・センタ600の様々な層によってサポートされるワークロードのスケジューリングを容易にするために、Sparkドライバを含み得る。少なくとも1つの実施例では、構成マネージャ624は、ソフトウェア層630、並びに大規模データ処理をサポートするためのSpark及び分散型ファイル・システム628を含むフレームワーク層620など、異なる層を構成することが可能であり得る。少なくとも1つの実施例では、リソース・マネージャ626は、分散型ファイル・システム628及びジョブ・スケジューラ622をサポートするようにマッピングされたか又は割り振られた、クラスタ化された又はグループ化されたコンピューティング・リソースを管理することが可能であり得る。少なくとも1つの実施例では、クラスタ化された又はグループ化されたコンピューティング・リソースは、データ・センタ・インフラストラクチャ層610において、グループ化されたコンピューティング・リソース614を含み得る。少なくとも1つの実施例では、リソース・マネージャ626は、リソース・オーケストレータ612と協調して、これらのマッピングされた又は割り振られたコンピューティング・リソースを管理し得る。
少なくとも1つの実施例では、ソフトウェア層630中に含まれるソフトウェア632は、ノードC.R.616(1)~616(N)、グループ化されたコンピューティング・リソース614、及び/又はフレームワーク層620の分散型ファイル・システム628の少なくとも部分によって使用されるソフトウェアを含み得る。少なくとも1つの実施例では、1つ又は複数のタイプのソフトウェアは、限定はしないが、インターネット・ウェブ・ページ検索ソフトウェアと、電子メール・ウイルス・スキャン・ソフトウェアと、データベース・ソフトウェアと、ストリーミング・ビデオ・コンテンツ・ソフトウェアとを含み得る。
少なくとも1つの実施例では、アプリケーション層640中に含まれる(1つ又は複数の)アプリケーション642は、ノードC.R.616(1)~616(N)、グループ化されたコンピューティング・リソース614、及び/又はフレームワーク層620の分散型ファイル・システム628の少なくとも部分によって使用される1つ又は複数のタイプのアプリケーションを含み得る。少なくとも1つの実施例では、1つ又は複数のタイプのアプリケーションは、限定はしないが、任意の数のゲノミクス・アプリケーション、コグニティブ・コンピュート、アプリケーション、及び、訓練又は推論ソフトウェア、機械学習フレームワーク・ソフトウェア(たとえば、PyTorch、TensorFlow、Caffeなど)を含む、機械学習アプリケーション、又は、1つ又は複数の実施例と併せて使用される他の機械学習アプリケーションを含み得る。
カメラ画像圧縮/復元構成要素115は、1つ又は複数の実施例によれば、画像信号処理(ISP)パイプラインにおける高ダイナミック・レンジ(HDR)画像のための圧縮及び/又は復元方式を提供するために使用され得る。カメラ画像圧縮/復元構成要素115に関する詳細は、図1と併せて本明細書で提供される。少なくとも1つの実施例では、カメラ画像圧縮/復元構成要素115は、本明細書で説明されるHDR画像の圧縮及び復元を実施するために、図6において使用され得る。
自律車両
自律車両に限定されないが、本開示の実施例は、自律車両のカメラによって生成された画像に適用されたときに特に有効であり得る。自動車上のカメラは、(たとえば、数百~数千のルクスの測定された値を有する)直射日光と、(たとえば、何分の1ルクスの測定された値を有する)月のない及び星のない夜の両方において、正確な画像を生成することが予想され得る。したがって、自動車のカメラは、環境の両極端の間で約8桁まで(ルクスで測定される)ルミナンス値が変動し得る広範囲の環境において、正確に画像を生成することが予想され得る。旧来、カメラは、自動ホワイト・バランシングを実施することと、その各々が異なるカメラ設定を有する、日中モードと夜モードとの間で自動的に切り替えることとによって、この広範囲の環境にわたる正確な画像をとることが可能である。これは、カメラ及びISPが比較的低いビット深度にあるままであることを可能にし、カメラとISPとは、同じビット深度を有し得る。実施例では、HDRカメラが、より低いビット深度のISPとともに使用され得る。HDRカメラは画像を圧縮し得、それらの画像は、ISPにおいて部分的に復元され得る。圧縮及び/又は復元は、(随意に線形セグメントをもつ)電力曲線に従って実施され得、色割当量及びSNRを保持し得る。本開示の実施例を実装することによって、画像センサとISPとは、画像センサとISPとの間でデータを送信するための帯域幅要件を最小限に抑え、画像センサよりも低いビット深度においてISPを維持しながら、明るい光において飽和せず、暗い光においてデータを失わない最終の処理された画像を生成するために、協働することができる。
図7Aは、少なくとも1つの実施例による、自律車両700の一実例を示す。少なくとも1つの実施例では、自律車両700(代替的に、本明細書では「車両700」と呼ばれる)は、限定はしないが、車、トラック、バス、及び/又は1人又は複数の乗客を収容する別のタイプの車両など、乗用車(passenger vehicle)であり得る。少なくとも1つの実施例では、車両700は、貨物を運搬するために使用されるセミ・トラクタ・トレーラ・トラックであり得る。少なくとも1つの実施例では、車両700は、航空機、ロボット車両、又は他の種類の車両であり得る。
自律車両は、米国運輸省の一部門である全米高速道路交通安全局(「NHTSA」:National Highway Traffic Safety Administration)、及び自動車技術者協会(「SAE」:Society of Automotive Engineers)の非特許文献1によって定義される自動化レベルという観点から説明され得る。少なくとも1つの実施例では、車両700は、自律運転レベルのレベル1~レベル5のうちの1つ又は複数による機能性に対応可能であり得る。たとえば、少なくとも1つの実施例では、車両700は、実施例に応じて、条件付き自動化(レベル3)、高度自動化(レベル4)、及び/又は完全自動化(レベル5)に対応可能であり得る。
少なくとも1つの実施例では、車両700は、限定はしないが、シャーシ、車両本体、ホイール(たとえば、2本、4本、6本、8本、18本など)、タイヤ、車軸、及び車両の他の構成要素など、構成要素を含み得る。少なくとも1つの実施例では、車両700は、限定はしないが、内燃機関、ハイブリッド電力プラント、完全電気エンジン、及び/又は別の推進システム・タイプなど、推進システム750を含み得る。少なくとも1つの実施例では、推進システム750は、車両700のドライブ・トレインに接続され得、ドライブ・トレインは、限定はしないが、車両700の推進を可能にするためのトランスミッションを含み得る。少なくとも1つの実施例では、推進システム750は、(1つ又は複数の)スロットル/アクセラレータ752から信号を受信したことに応答して制御され得る。
少なくとも1つの実施例では、限定はしないが、ハンドルを含み得る操縦システム754は、推進システム750が動作しているときに(たとえば、車両700が動いているときに)車両700を(たとえば、所望の経路又はルートに沿って)操縦するために使用される。少なくとも1つの実施例では、操縦システム754は、(1つ又は複数の)操縦アクチュエータ756から信号を受信し得る。少なくとも1つの実施例では、ハンドルは、完全自動化(レベル5)機能性について随意であり得る。少なくとも1つの実施例では、(1つ又は複数の)ブレーキ・アクチュエータ748及び/又はブレーキ・センサから信号を受信したことに応答して車両ブレーキを動作させるために、ブレーキ・センサ・システム746が使用され得る。
少なくとも1つの実施例では、限定はしないが、1つ又は複数のシステム・オン・チップ(「SoC」:system on chip)(図7Aに図示せず)及び/又は(1つ又は複数の)グラフィックス処理ユニット(「GPU」)を含み得る(1つ又は複数の)コントローラ736は、車両700の1つ又は複数の構成要素及び/又はシステムに(たとえば、コマンドを表す)信号を提供する。たとえば、少なくとも1つの実施例では、(1つ又は複数の)コントローラ736は、(1つ又は複数の)ブレーキ・アクチュエータ748を介して車両ブレーキを動作させるための信号、(1つ又は複数の)操縦アクチュエータ756を介して操縦システム754を動作させるための信号、(1つ又は複数の)スロットル/アクセラレータ752を介して推進システム750を動作させるための信号を送出し得る。少なくとも1つの実施例では、(1つ又は複数の)コントローラ736は、自律運転を可能にし、及び/又は人間のドライバが車両700を運転するのを支援するために、センサ信号を処理し、動作コマンド(たとえば、コマンドを表す信号)を出力する1つ又は複数の搭載(たとえば、一体型の)コンピューティング・デバイスを含み得る。少なくとも1つの実施例では、(1つ又は複数の)コントローラ736は、自律運転機能のための第1のコントローラ、機能的安全機能のための第2のコントローラ、人工知能機能性(たとえば、コンピュータ・ビジョン)のための第3のコントローラ、インフォテイメント機能性のための第4のコントローラ、緊急事態における冗長性のための第5のコントローラ、及び/又は他のコントローラを含み得る。少なくとも1つの実施例では、単一のコントローラが、上記の機能性のうちの2つ又はそれ以上に対処し得、2つ又はそれ以上のコントローラが、単一の機能性に対処し得、及び/又はこれらの任意の組合せであり得る。
少なくとも1つの実施例では、(1つ又は複数の)コントローラ736は、1つ又は複数のセンサから受信されたセンサ・データ(たとえば、センサ入力)に応答して、車両700の1つ又は複数の構成要素及び/又はシステムを制御するための信号を提供する。少なくとも1つの実施例では、センサ・データは、たとえば、限定はしないが、(1つ又は複数の)全地球的航法衛星システム(「GNSS」:global navigation satellite system)センサ758(たとえば、(1つ又は複数の)全地球測位システム・センサ)、(1つ又は複数の)RADARセンサ760、(1つ又は複数の)超音波センサ762、(1つ又は複数の)LIDARセンサ764、(1つ又は複数の)慣性測定ユニット(「IMU」:inertial measurement unit)センサ766(たとえば、(1つ又は複数の)加速度計、(1つ又は複数の)ジャイロスコープ、1つ又は複数の磁気コンパス、(1つ又は複数の)磁力計など)、(1つ又は複数の)マイクロフォン796、(1つ又は複数の)ステレオ・カメラ768、(1つ又は複数の)広角カメラ770(たとえば、魚眼カメラ)、(1つ又は複数の)赤外線カメラ772、(1つ又は複数の)周囲カメラ774(たとえば、360度カメラ)、長距離カメラ(図7Aに図示せず)、(1つ又は複数の)中距離カメラ(図7Aに図示せず)、(たとえば、車両700のスピードを測定するための)(1つ又は複数の)スピード・センサ744、(1つ又は複数の)振動センサ742、(1つ又は複数の)操縦センサ740、(たとえば、ブレーキ・センサ・システム746の一部としての)(1つ又は複数の)ブレーキ・センサ、及び/又は他のセンサ・タイプから、受信され得る。
少なくとも1つの実施例では、(1つ又は複数の)コントローラ736のうちの1つ又は複数は、車両700の計器クラスタ732からの(たとえば入力データによって表される)入力を受信し、ヒューマン・マシン・インターフェース(「HMI」:human-machine interface)ディスプレイ734、可聴アナンシエータ、拡声器を介して、及び/又は車両700の他の構成要素を介して、(たとえば、出力データ、ディスプレイ・データなどによって表される)出力を提供し得る。少なくとも1つの実施例では、出力は、車両速度、スピード、時間、地図データ(たとえば、高精細度地図(図7Aに図示せず)、ロケーション・データ(たとえば、地図上などの車両700のロケーション)、方向、他の車両のロケーション(たとえば、占有グリッド)、(1つ又は複数の)コントローラ736によって感知された物体及び物体のステータスに関する情報など、情報を含み得る。たとえば、少なくとも1つの実施例では、HMIディスプレイ734は、1つ又は複数の物体(たとえば、道路標識、警告標識、信号の変化など)の存在に関する情報、及び/或いは、車両が行った、行っている、又はこれから行う運転操作に関する情報(たとえば、現在車線変更中、3.22km(2マイル)先の出口34Bを出る、など)を表示し得る。
少なくとも1つの実施例では、車両700はネットワーク・インターフェース724をさらに含み、ネットワーク・インターフェース724は、1つ又は複数のネットワークを介して通信するために(1つ又は複数の)ワイヤレス・アンテナ726及び/又は(1つ又は複数の)モデムを使用し得る。たとえば、少なくとも1つの実施例では、ネットワーク・インターフェース724は、ロング・ターム・エボリューション(「LTE」:Long-Term Evolution)、広帯域符号分割多元接続(「WCDMA(登録商標)」:Wideband Code Division Multiple Access)、ユニバーサル・モバイル・テレコミュニケーション・システム(「UMTS」:Universal Mobile Telecommunications System)、モバイル通信用グローバル・システム(「GSM」:Global System for Mobile communication)、IMT-CDMAマルチ・キャリア(「CDMA2000」)ネットワークなどを介した通信が可能であり得る。また、少なくとも1つの実施例では、(1つ又は複数の)ワイヤレス・アンテナ726は、Bluetooth、Bluetooth低エネルギー(「LE」:Low Energy)、Z波、ZigBeeなどの(1つ又は複数の)ローカル・エリア・ネットワーク、及び/又はLoRaWAN、SigFoxなどのプロトコルなどの(1つ又は複数の)低電力ワイド・エリア・ネットワーク(「LPWAN」:low power wide-area network)を使用して、環境内の物体(たとえば、車両、モバイル・デバイスなど)間の通信を可能にし得る。
カメラ画像圧縮/復元構成要素115は、1つ又は複数の実施例によれば、画像信号処理(ISP)における高ダイナミック・レンジ(HDR)画像のための圧縮及び/又は復元方式を提供するために使用され得る。カメラ画像圧縮/復元構成要素115は、車両700のCPU、GPU、SoC上でなど、車両700のプロセッサ上で実行され得る。カメラ画像圧縮/復元構成要素115に関する詳細は、図1と併せて本明細書で提供される。少なくとも1つの実施例では、カメラ画像圧縮/復元構成要素115は、本明細書で説明されるHDR画像の圧縮及び/又は復元を実施するために、図7Aのシステムにおいて使用され得る。
図7Bは、少なくとも1つの実施例による、図7Aの自律車両700のための例示的なシステム・アーキテクチャを示すブロック図である。少なくとも1つの実施例では、図7B中の車両700の構成要素、特徴、及びシステムの各々は、バス702を介して接続されるものとして示されている。少なくとも1つの実施例では、バス702は、限定はしないが、CANデータ・インターフェース(代替的に、本明細書では「CANバス」と呼ばれる)を含み得る。少なくとも1つの実施例では、CANは、ブレーキの作動、加速、ブレーキ制御、操縦、フロントガラス・ワイパなど、車両700の様々な特徴及び機能性の制御を補助するために使用される、車両700内部のネットワークであり得る。少なくとも1つの実施例では、バス702は、各々がそれ自体の一意の識別子(たとえば、CAN ID)をもつ数十又はさらには数百のノードを有するように構成され得る。少なくとも1つの実施例では、バス702は、ハンドル角度、対地スピード、エンジンの毎分回転数(「RPM」:revolutions per minute)、ボタン位置、及び/又は他の車両ステータス・インジケータを見いだすために読み取られ得る。少なくとも1つの実施例では、バス702は、ASIL Bに準拠したCANバスであり得る。
少なくとも1つの実施例では、CANに加えて、又はその代替として、FlexRay及び/又はイーサネット・プロトコルが使用され得る。少なくとも1つの実施例では、バス702を形成する任意の数のバスがあり得、これらのバスは、限定はしないが、0個以上のCANバス、0個以上のFlexRayバス、0個以上のイーサネット・バス、及び/又は、異なるプロトコルを使用する0個以上の他のタイプのバスを含み得る。少なくとも1つの実施例では、2つ又はそれ以上のバスが、異なる機能を実施するために使用され得、及び/又は、冗長性のために使用され得る。たとえば、第1のバスが衝突回避機能性のために使用され得、第2のバスが作動制御のために使用され得る。少なくとも1つの実施例では、バス702の各バスは、車両700の構成要素のいずれかと通信し得、バス702のうちの2つ又はそれ以上のバスが、対応する構成要素と通信し得る。少なくとも1つの実施例では、任意の数のシステム・オン・チップ(「SoC」)704(SoC704(A)及びSoC704(B)などの各々、(1つ又は複数の)コントローラ736の各々、及び/又は車両内の各コンピュータは、同じ入力データ(たとえば、車両700のセンサからの入力)へのアクセスを有し得、共通のバス、そのようなCANバスに接続され得る。
少なくとも1つの実施例では、車両700は、図7Aに関して本明細書で説明されるものなど、1つ又は複数のコントローラ736を含み得る。少なくとも1つの実施例では、(1つ又は複数の)コントローラ736は、様々な機能のために使用され得る。少なくとも1つの実施例では、(1つ又は複数の)コントローラ736は、車両700の様々な他の構成要素及びシステムのいずれかに結合され得、車両700、車両700の人工知能、車両700のためのインフォテイメント、及び/又は他の機能の制御のために使用され得る。
少なくとも1つの実施例では、車両700は、任意の数のSoC704を含み得る。少なくとも1つの実施例では、SoC704の各々は、限定はしないが、中央処理ユニット(「CPU」)706、グラフィックス処理ユニット(「GPU」)708、(1つ又は複数の)プロセッサ710、(1つ又は複数の)キャッシュ712、(1つ又は複数の)アクセラレータ714、(1つ又は複数の)データ・ストア716、並びに/又は示されていない他の構成要素及び特徴を含み得る。少なくとも1つの実施例では、車両700を様々なプラットフォーム及びシステムにおいて制御するために、(1つ又は複数の)SoC704が使用され得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)SoC704は、1つ又は複数のサーバ(図7Bに図示せず)からネットワーク・インターフェース724を介して地図のリフレッシュ及び/又は更新を取得し得る高精細度(「HD」:High Definition)地図722をもつシステム(たとえば、車両700のシステム)において組み合わせられ得る。
少なくとも1つの実施例では、(1つ又は複数の)CPU706は、CPUクラスタ又はCPUコンプレックス(代替的に、本明細書では「CCPLEX」と呼ばれる)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)CPU706は、複数のコア及び/又はレベル2(「L2」)キャッシュを含み得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)CPU706は、コヒーレントなマルチプロセッサ構成において8つのコアを含み得る。少なくとも1つの実施例では、(1つ又は複数の)CPU706は、4つのデュアル・コア・クラスタを含み得、各クラスタは、専用L2キャッシュ(たとえば、2メガバイト(MB)のL2キャッシュ)を有する。少なくとも1つの実施例では、(1つ又は複数の)CPU706(たとえば、CCPLEX)は、(1つ又は複数の)CPU706のクラスタの任意の組合せが任意の所与の時間にアクティブになることを可能にする同時のクラスタ動作をサポートするように構成され得る。
少なくとも1つの実施例では、(1つ又は複数の)CPU706のうちの1つ又は複数は、電力管理能力(capability)を実装し得、電力管理能力は、限定はしないが、以下の特徴のうちの1つ又は複数を含む:個々のハードウェア・ブロックが、動的電力を節約するために、アイドル時に自動的にクロック・ゲート制御され得る;各コア・クロックは、割込み待ち(「WFI」:Wait for Interrupt)/イベント待ち(「WFE」:Wait for Event)命令の実行によりそのようなコアが能動的に命令を実行していないとき、ゲート制御され得る;各コアが独立して電力ゲート制御され得る;各コア・クラスタは、すべてのコアがクロック・ゲート制御又は電力ゲート制御されるとき、独立してクロック・ゲート制御され得る;及び/或いは、各コア・クラスタは、すべてのコアが電力ゲート制御されるとき、独立して電力ゲート制御され得る。少なくとも1つの実施例では、(1つ又は複数の)CPU706は、電力状態を管理するための拡張アルゴリズムをさらに実装し得、許容された電力状態及び予想されるウェイクアップ時間が指定され、コア、クラスタ、及びCCPLEXのための入るべき最良の電力状態がどれかを、ハードウェア/マイクロコードが決定する。少なくとも1つの実施例では、処理コアは、ワークがマイクロコードにオフロードされたソフトウェアにおける簡単な電力状態エントリ・シーケンスをサポートし得る。
少なくとも1つの実施例では、(1つ又は複数の)GPU708は、統合されたGPU(代替的に、本明細書では「iGPU」と呼ばれる)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)GPU708は、プログラマブルであり得、並列なワークロードについて効率的であり得る。少なくとも1つの実施例では、(1つ又は複数の)GPU708は、拡張テンソル命令セットを使用し得る。少なくとも1つの実施例では、(1つ又は複数の)GPU708は、1つ又は複数のストリーミング・マイクロプロセッサを含み得、各ストリーミング・マイクロプロセッサは、レベル1(「L1」)キャッシュ(たとえば、少なくとも96KBのストレージ容量をもつL1キャッシュ)を含み得、2つ又はそれ以上のストリーミング・マイクロプロセッサは、L2キャッシュ(たとえば、512KBのストレージ容量をもつL2キャッシュ)を共有し得る。少なくとも1つの実施例では、(1つ又は複数の)GPU708は、少なくとも8つのストリーミング・マイクロプロセッサを含み得る。少なくとも1つの実施例では、(1つ又は複数の)GPU708は、(1つ又は複数の)コンピュート・アプリケーション・プログラミング・インターフェース(API:application programming interface)を使用し得る。少なくとも1つの実施例では、(1つ又は複数の)GPU708は、1つ又は複数の並列なコンピューティング・プラットフォーム及び/又はプログラミング・モデル(たとえば、NVIDIAのCUDAモデル)を使用し得る。
少なくとも1つの実施例では、(1つ又は複数の)GPU708のうちの1つ又は複数は、自動車の及び組み込まれた使用事例における最良の性能のために電力最適化され得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)GPU708は、フィン電界効果トランジスタ(「FinFET」:Fin field-effect transistor)回路要素上で作製され得る。少なくとも1つの実施例では、各ストリーミング・マイクロプロセッサは、複数のブロックに区分けされたいくつかの混合精度処理コアを組み込み得る。たとえば、限定はしないが、64個のPF32コアと、32個のPF64コアとは、4つの処理ブロックに区分けされ得る。少なくとも1つの実施例では、各処理ブロックは、16個のFP32コア、8個のFP64コア、16個のINT32コア、深層学習行列算術のための2つの混合精度NVIDIA Tensorコア、レベル0(「L0」)命令キャッシュ、ワープ・スケジューラ、ディスパッチ・ユニット、及び/又は64KBのレジスタ・ファイルを割り振られ得る。少なくとも1つの実施例では、ストリーミング・マイクロプロセッサは、算出とアドレッシング計算との混合によるワークロードの効率的な実行を行うために、独立した並列の整数及び浮動小数点データ経路を含み得る。少なくとも1つの実施例では、ストリーミング・マイクロプロセッサは、並列スレッド間でよりきめ細かい同期及び協調を可能にするために、独立したスレッド・スケジューリング能力を含み得る。少なくとも1つの実施例では、ストリーミング・マイクロプロセッサは、性能を改善すると同時にプログラミングを簡単にするために、組み合わせられたL1データ・キャッシュ及び共有メモリ・ユニットを含み得る。
少なくとも1つの実施例では、(1つ又は複数の)GPU708のうちの1つ又は複数は、いくつかの実例では、約900GB/秒のピーク・メモリ帯域幅を提供するために、高帯域幅メモリ(「HBM」:high bandwidth memory)及び/又は16GBの高帯域幅メモリ第2世代(「HBM2」)メモリ・サブシステムを含み得る。少なくとも1つの実施例では、HBMメモリに加えて、又はその代替として、グラフィックス・ダブル・データ・レート・タイプ・ファイブ同期ランダム・アクセス・メモリ(「GDDR5」:graphics double data rate type five)など、同期グラフィックス・ランダム・アクセス・メモリ(「SGRAM」:synchronous graphics random-access memory)が使用され得る。
少なくとも1つの実施例では、(1つ又は複数の)GPU708は、統一メモリ技術を含み得る。少なくとも1つの実施例では、(1つ又は複数の)GPU708が(1つ又は複数の)CPU706のページ・テーブルに直接アクセスすることを可能にするために、アドレス・トランスレーション・サービス(「ATS」:address translation service)サポートが使用され得る。少なくとも1つの実施例では、GPU708メモリ管理ユニット(「MMU」:memory management unit)のGPUがミスに遭遇したとき、アドレス・トランスレーション要求が(1つ又は複数の)CPU706に送信され得る。少なくとも1つの実施例では、それに応答して、(1つ又は複数の)CPU706のうちの2CPUは、それのページ・テーブルにおいて、アドレスのための仮想-物理マッピングを探し、トランスレーションを(1つ又は複数の)GPU708に返送し得る。少なくとも1つの実施例では、統一メモリ技術は、(1つ又は複数の)CPU706と(1つ又は複数の)GPU708の両方のメモリについて単一の統一仮想アドレス空間を可能にし、それにより、(1つ又は複数の)GPU708のプログラミングと、(1つ又は複数の)GPU708へのアプリケーションの移植とを簡単にし得る。
少なくとも1つの実施例では、(1つ又は複数の)GPU708は、他のプロセッサのメモリへの(1つ又は複数の)GPU708のアクセスの頻度を追跡し得る任意の数のアクセス・カウンタを含み得る。少なくとも1つの実施例では、(1つ又は複数の)アクセス・カウンタは、最も頻繁にページにアクセスしているプロセッサの物理メモリにメモリ・ページが移動されることを確実にするのを助け、それにより、プロセッサ間で共有されるメモリ範囲の効率を改善し得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC704のうちの1つ又は複数は、本明細書で説明されるものを含む、任意の数のキャッシュ712を含み得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)キャッシュ712は、(1つ又は複数の)CPU706と(1つ又は複数の)GPU708の両方にとって利用可能である(たとえば、(1つ又は複数の)CPU706及び(1つ又は複数の)GPU708に接続された)レベル3(「L3」)キャッシュを含むことができる。少なくとも1つの実施例では、(1つ又は複数の)キャッシュ712は、キャッシュ・コヒーレンス・プロトコル(たとえば、MEI、MESI、MSIなど)を使用することなどによって、ラインの状態を追跡し得るライト・バック・キャッシュを含み得る。少なくとも1つの実施例では、L3キャッシュは、実施例に応じて、4MB以上のメモリを含み得るが、より小さいキャッシュ・サイズが使用され得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC704のうちの1つ又は複数は、1つ又は複数のアクセラレータ714(たとえば、ハードウェア・アクセラレータ、ソフトウェア・アクセラレータ、又はこれらの組合せ)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)SoC704は、最適化されたハードウェア・アクセラレータ及び/又は大型のオンチップ・メモリを含み得るハードウェア加速クラスタを含み得る。少なくとも1つの実施例では、大型のオンチップ・メモリ(たとえば、4MBのSRAM)は、ハードウェア加速クラスタが、ニューラル・ネットワーク及び他の計算を加速することを可能にし得る。少なくとも1つの実施例では、ハードウェア加速クラスタは、(1つ又は複数の)GPU708を補完し、(1つ又は複数の)GPU708のタスクのうちのいくつかをオフロードするために(たとえば、他のタスクを実施するために(1つ又は複数の)GPU708のサイクルをより多く解放するために)使用され得る。少なくとも1つの実施例では、加速を受け入れるのに十分なほど安定している対象のワークロード(たとえば、知覚、畳み込みニューラル・ネットワーク(「CNN」:convolutional neural network)、リカレント・ニューラル・ネットワーク(「RNN」:recurrent neural network)など)のために、(1つ又は複数の)アクセラレータ714が使用され得る。少なくとも1つの実施例では、CNNは、領域ベースの、すなわち領域畳み込みニューラル・ネットワーク(「RCNN」:regional convolutional neural network)、及び(たとえば、物体検出のために使用されるような)高速RCNN、又は他のタイプのCNNを含み得る。
少なくとも1つの実施例では、(1つ又は複数の)アクセラレータ714(たとえば、ハードウェア加速クラスタ)は、1つ又は複数の深層学習アクセラレータ(「DLA」:deep learning accelerator)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)DLAは、限定はしないが、1つ又は複数のTensor処理ユニット(「TPU」:Tensor processing unit)を含み得、1つ又は複数のTensor処理ユニットは、深層学習アプリケーション及び推論のために、追加の、毎秒10兆の演算を提供するように構成され得る。少なくとも1つの実施例では、TPUは、(たとえば、CNN、RCNNなどのための)画像処理機能を実施するように構成され、そのために最適化されたアクセラレータであり得る。少なくとも1つの実施例では、(1つ又は複数の)DLAは、ニューラル・ネットワーク・タイプと浮動小数点演算の特定のセット、並びに推論のためにさらに最適化され得る。少なくとも1つの実施例では、(1つ又は複数の)DLAの設計は、一般的な汎用GPUよりも多くのミリメートル当たりの性能を提供し得、一般的には、CPUの性能をはるかに超える。少なくとも1つの実施例では、(1つ又は複数の)TPUは、たとえば、特徴と重みの両方のためのINT8、INT16、及びFP16のデータ・タイプをサポートする、単一インスタンスの畳み込み機能、並びにポストプロセッサ機能を含む、いくつかの機能を実施し得る。少なくとも1つの実施例では、(1つ又は複数の)DLAは、たとえば、限定はしないが、カメラ・センサからのデータを使用する物体識別及び検出のためのCNN、カメラ・センサからのデータを使用する距離推定のためのCNN、マイクロフォンからのデータを使用する緊急車両検出及び識別及び検出のためのCNN、カメラ・センサからのデータを使用する顔認識及び車両所有者識別のためのCNN、並びに/或いはセキュリティ及び/又は安全関係イベントのためのCNNを含む、様々な機能のいずれかのための処理された又は処理されていないデータに対して、ニューラル・ネットワーク、特にCNNを、迅速に及び効率的に実行し得る。
少なくとも1つの実施例では、(1つ又は複数の)DLAは、(1つ又は複数の)GPU708の任意の機能を実施し得、たとえば、推論アクセラレータを使用することによって、設計者は、任意の機能のために(1つ又は複数の)DLA又は(1つ又は複数の)GPU708のいずれかをターゲットにし得る。たとえば、少なくとも1つの実施例では、設計者は、CNN及び浮動小数点演算の処理を(1つ又は複数の)DLAに集中させ、他の機能を(1つ又は複数の)GPU708及び/又は(1つ又は複数の)アクセラレータ714に任せ得る。
少なくとも1つの実施例では、(1つ又は複数の)アクセラレータ714は、プログラマブル・ビジョン・アクセラレータ(「PVA」:programmable vision accelerator)を含み得、プログラマブル・ビジョン・アクセラレータは、本明細書では代替的にコンピュータ・ビジョン・アクセラレータと呼ばれることがある。少なくとも1つの実施例では、PVAは、先進ドライバ支援システム(「ADAS」:advanced driver assistance system)738、自律運転、拡張現実(「AR」:augmented reality)アプリケーション、及び/又は仮想現実(「VR」:virtual reality)アプリケーションのために、コンピュータ・ビジョン・アルゴリズムを加速するように設計及び構成され得る。少なくとも1つの実施例では、PVAは、性能とフレキシビリティとの間の均衡を提供し得る。たとえば、少なくとも1つの実施例では、各PVAは、たとえば、限定はしないが、任意の数の縮小命令セット・コンピュータ(「RISC」:reduced instruction set computer)コア、ダイレクト・メモリ・アクセス(「DMA」:direct memory access)、及び/又は任意の数のベクトル・プロセッサを含み得る。
少なくとも1つの実施例では、RISCコアは、画像センサ(たとえば、本明細書で説明される任意のカメラの画像センサ)、(1つ又は複数の)画像信号プロセッサなどと対話し得る。少なくとも1つの実施例では、各RISCコアは、任意の量のメモリを含み得る。少なくとも1つの実施例では、RISCコアは、実施例に応じて、いくつかのプロトコルのいずれかを使用し得る。少なくとも1つの実施例では、RISCコアは、リアルタイム・オペレーティング・システム(「RTOS」:real-time operating system)を実行し得る。少なくとも1つの実施例では、RISCコアは、1つ又は複数の集積回路デバイス、特定用途向け集積回路(「ASIC」)、及び/又はメモリ・デバイスを使用して実装され得る。たとえば、少なくとも1つの実施例では、RISCコアは、命令キャッシュ及び/又は密結合RAMを含むことができる。
少なくとも1つの実施例では、DMAは、PVAの構成要素が(1つ又は複数の)CPU706とは無関係にシステム・メモリにアクセスすることを可能にし得る。少なくとも1つの実施例では、DMAは、限定はしないが、多次元アドレッシング及び/又はサーキュラ・アドレッシングをサポートすることを含む、PVAに最適化を提供するために使用される任意の数の特徴をサポートし得る。少なくとも1つの実施例では、DMAは、6つ又はそれ以上のアドレッシング次元までをサポートし得、これらのアドレッシング次元は、限定はしないが、ブロック幅、ブロック高さ、ブロック深度、水平ブロック・ステッピング、垂直ブロック・ステッピング、及び/又は深度ステッピングを含み得る。
少なくとも1つの実施例では、ベクトル・プロセッサは、コンピュータ・ビジョン・アルゴリズムのためのプログラミングを効率的でフレキシブルに実行するように設計され得るプログラマブル・プロセッサであり、信号処理能力を提供し得る。少なくとも1つの実施例では、PVAは、PVAコアと、2つのベクトル処理サブシステム・パーティションとを含み得る。少なくとも1つの実施例では、PVAコアは、プロセッサ・サブシステム、(1つ又は複数の)DMAエンジン(たとえば、2つのDMAエンジン)、及び/又は他の周辺機器を含み得る。少なくとも1つの実施例では、ベクトル処理サブシステムは、PVAの1次処理エンジンとして動作し得、ベクトル処理ユニット(「VPU」:vector processing unit)、命令キャッシュ、及び/又はベクトル・メモリ(たとえば、「VMEM」:vector memory)を含み得る。少なくとも1つの実施例では、VPUコアは、たとえば、単一命令複数データ(「SIMD」:single instruction,multiple data)、超長命令語(「VLIW」:very long instruction word)のデジタル信号プロセッサなど、デジタル信号プロセッサを含み得る。少なくとも1つの実施例では、SIMDとVLIWとの組合せが、スループット及びスピードを向上させ得る。
少なくとも1つの実施例では、ベクトル・プロセッサの各々は、命令キャッシュを含み得、専用メモリに結合され得る。その結果、少なくとも1つの実施例では、ベクトル・プロセッサの各々は、他のベクトル・プロセッサとは無関係に実行するように構成され得る。少なくとも1つの実施例では、特定のPVA中に含まれるベクトル・プロセッサは、データ並列処理を採用するように構成され得る。たとえば、少なくとも1つの実施例では、単一のPVA中に含まれる複数のベクトル・プロセッサは、共通のコンピュータ・ビジョン・アルゴリズムを、ただし画像の異なる領域上で実行し得る。少なくとも1つの実施例では、特定のPVA中に含まれるベクトル・プロセッサは、異なるコンピュータ・ビジョン・アルゴリズムを1つの画像上で同時に実行するか、さらには、異なるアルゴリズムを連続した画像又は画像の部分上で実行し得る。少なくとも1つの実施例では、とりわけ、任意の数のPVAがハードウェア加速クラスタ中に含まれ得、任意の数のベクトル・プロセッサが各PVA中に含まれ得る。少なくとも1つの実施例では、PVAは、システムの全体的な安全性を向上させるために、追加のエラー訂正コード(「ECC」:Error Correction Code)メモリを含み得る。
少なくとも1つの実施例では、(1つ又は複数の)アクセラレータ714は、(1つ又は複数の)アクセラレータ714のための高帯域幅、低レイテンシのSRAMを提供するために、コンピュータ・ビジョン・ネットワーク・オンチップと、スタティック・ランダム・アクセス・メモリ(「SRAM」:static random-access memory)とを含み得る。少なくとも1つの実施例では、オンチップ・メモリは、たとえば、限定はしないが、8つのフィールド構成可能メモリ・ブロックを含む少なくとも4MBのSRAMを含み得、これは、PVAとDLAの両方によってアクセス可能であり得る。少なくとも1つの実施例では、メモリ・ブロックの各ペアは、先進周辺バス(「APB」:advanced peripheral bus)インターフェースと、構成回路要素と、コントローラと、マルチプレクサとを含み得る。少なくとも1つの実施例では、任意のタイプのメモリが使用され得る。少なくとも1つの実施例では、PVA及びDLAは、メモリへの高速アクセスをPVA及びDLAに提供するバックボーンを介して、メモリにアクセスし得る。少なくとも1つの実施例では、バックボーンは、PVA及びDLAを(たとえば、APBを使用して)メモリに相互接続するコンピュータ・ビジョン・ネットワーク・オンチップを含み得る。
少なくとも1つの実施例では、コンピュータ・ビジョン・ネットワーク・オンチップは、任意の制御信号/アドレス/データの送信の前に、PVAとDLAの両方が準備信号及び有効信号を提供すると決定するインターフェースを含み得る。少なくとも1つの実施例では、インターフェースは、制御信号/アドレス/データを送信するための別個の位相及び別個のチャネル、並びに継続的なデータ転送のためのバーストタイプ通信を提供し得る。少なくとも1つの実施例では、インターフェースは、国際標準化機構(「ISO」:International Organization for Standardization)26262又は国際電気標準会議(「IEC」:International Electrotechnical Commission)61508の規格に準拠し得るが、他の規格及びプロトコルが使用され得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC704のうちの1つ又は複数は、リアルタイム・レイ・トレーシング・ハードウェア・アクセラレータを含み得る。少なくとも1つの実施例では、リアルタイム・レイ・トレーシング・ハードウェア・アクセラレータは、RADAR信号解釈のための、音伝搬合成及び/又は分析のための、SONARシステムのシミュレーションのための、一般波形伝搬シミュレーションのための、ローカリゼーション及び/又は他の機能を目的としたLIDARデータとの比較のための、並びに/或いは他の使用法のための、リアルタイムの視覚化シミュレーションを生成するために、(たとえば、世界モデル内の)物体の位置及び範囲を迅速に及び効率的に決定するために使用され得る。
少なくとも1つの実施例では、(1つ又は複数の)アクセラレータ714は、自律運転のための多様な使用法を有することができる。少なくとも1つの実施例では、PVAは、ADAS及び自律車両における主要な処理段階のために使用され得る。少なくとも1つの実施例では、PVAの能力は、低電力及び低レイテンシでの予測可能な処理を必要とするアルゴリズム・ドメインについて良好にマッチする。言い換えれば、PVAは、低レイテンシ及び低電力とともに予測可能なランタイムを必要とし得る半稠密(semi-dense)又は稠密な規則的算出に対して、小さいデータ・セット上でも、良好に機能する。少なくとも1つの実施例では、車両700中など、PVAは、それらが、物体検出及び整数数値の演算において効率的であり得るので、従来のコンピュータ・ビジョン・アルゴリズムを稼働するように設計され得る。
たとえば、技術の少なくとも1つの実施例によれば、PVAは、コンピュータ・ステレオ・ビジョンを実施するために使用される。少なくとも1つの実施例では、いくつかの実例においてセミグローバルなマッチング・ベースのアルゴリズムが使用され得るが、これは、限定するものではない。少なくとも1つの実施例では、レベル3~5の自律運転のためのアプリケーションは、動き推定/ステレオ・マッチング(たとえば、動きからの構造(structure from motion)、歩行者認識、車線検出など)をオンザフライで使用する。少なくとも1つの実施例では、PVAは、2つの単眼カメラからの入力に対して、コンピュータ・ステレオ・ビジョン機能を実施し得る。
少なくとも1つの実施例では、PVAは、高密度オプティカル・フローを実施するために使用され得る。たとえば、少なくとも1つの実施例では、PVAは、未加工のRADARデータを(たとえば、4Dの高速フーリエ変換を使用して)処理して、処理されたRADARデータを提供することができる。少なくとも1つの実施例では、PVAは、たとえば、処理された飛行時間データを提供するために、未加工の飛行時間データを処理することによって、飛行時間の深度処理のために使用される。
少なくとも1つの実施例では、DLAは、たとえば、限定はしないが、各物体検出についての信頼性の測度を出力するニューラル・ネットワークを含む、制御及び運転の安全性を向上させるための任意のタイプのネットワークを稼働するために使用され得る。少なくとも1つの実施例では、信頼性は、他の検出と比較した各検出の確率として、又はその相対的な「重み」を提供するものとして表されるか、又は解釈され得る。少なくとも1つの実施例では、信頼性測度は、システムが、どの検出が偽陽性(false positive)検出ではなく真陽性(true positive)検出と見なされるべきであるかに関して、さらなる判定を行うことを可能にする。少なくとも1つの実施例では、システムは、信頼性についてのしきい値を設定し、しきい値を超える検出のみを真陽性検出と見なし得る。自動緊急ブレーキ(「AEB」:automatic emergency braking)システムが使用される実施例では、偽陽性検出は、車両が自動的に緊急ブレーキをかけることを引き起こし、これは明らかに望ましくない。少なくとも1つの実施例では、非常に信頼性の高い検出が、AEBのためのトリガと見なされ得る。少なくとも1つの実施例では、DLAは、信頼性値を回帰するためにニューラル・ネットワークを稼働し得る。少なくとも1つの実施例では、ニューラル・ネットワークは、とりわけ、バウンディング・ボックスの次元、(たとえば、別のサブシステムから)取得されたグランド・プレーン推定値、車両700の向きと相関する(1つ又は複数の)IMUセンサ766からの出力、距離、ニューラル・ネットワーク及び/又は他のセンサ(たとえば、(1つ又は複数の)LIDARセンサ764又は(1つ又は複数の)RADARセンサ760)から取得された物体の3Dロケーション推定値など、パラメータの少なくとも一部のサブセットを、その入力としてとり得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC704のうちの1つ又は複数は、(1つ又は複数の)データ・ストア716(たとえば、メモリ)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)データ・ストア716は、(1つ又は複数の)SoC704のオンチップ・メモリであり得、このオンチップ・メモリは、(1つ又は複数の)GPU708及び/又はDLA上で実行されるべきニューラル・ネットワークを記憶し得る。少なくとも1つの実施例では、(1つ又は複数の)データ・ストア716は、容量が、冗長性及び安全性のためにニューラル・ネットワークの複数のインスタンスを記憶するのに十分なほど大きくなり得る。少なくとも1つの実施例では、(1つ又は複数の)データ・ストア716は、(1つ又は複数の)L2又はL3キャッシュを備え得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC704のうちの1つ又は複数は、(1つ又は複数の)任意の数のプロセッサ710(たとえば、組み込みプロセッサ)を含み得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ710は、ブート電力並びに管理機能及び関係するセキュリティ執行に対処するための専用プロセッサ及びサブシステムであり得る、ブート及び電力管理プロセッサを含み得る。少なくとも1つの実施例では、ブート及び電力管理プロセッサは、(1つ又は複数の)SoC704のブート・シーケンスの一部であり得、ランタイム電力管理サービスを提供し得る。少なくとも1つの実施例では、ブート電力及び管理プロセッサは、クロック及び電圧プログラミング、システム低電力状態移行の支援、(1つ又は複数の)SoC704の熱及び温度センサの管理、並びに/又は(1つ又は複数の)SoC704の電力状態の管理を提供し得る。少なくとも1つの実施例では、各温度センサは、その出力周波数が温度に比例するリング発振器として実装され得、(1つ又は複数の)SoC704は、リング発振器を使用して、(1つ又は複数の)CPU706、(1つ又は複数の)GPU708、及び/又は(1つ又は複数の)アクセラレータ714の温度を検出し得る。少なくとも1つの実施例では、温度がしきい値を超えると決定された場合、ブート及び電力管理プロセッサは、温度障害ルーチンに入り、(1つ又は複数の)SoC704を低電力状態にし、及び/又は車両700を運転手-安全停止モード(chauffeur to safe stop mode)にし(たとえば、車両700を安全停止させ)得る。
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ710は、オーディオ処理エンジンとして働き得る組み込みプロセッサのセットをさらに含み得、オーディオ処理エンジンは、複数のインターフェースを介した多チャネル・オーディオ、及び幅広くフレキシブルな様々なオーディオI/Oインターフェースのための、完全なハードウェア・サポートを可能にする、オーディオ・サブシステムであり得る。少なくとも1つの実施例では、オーディオ処理エンジンは、専用RAMをもつデジタル信号プロセッサをもつ専用プロセッサ・コアである。
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ710は、低電力センサ管理及び立ち上げ使用事例をサポートするのに必要なハードウェア特徴を提供し得る常時オン・プロセッサ・エンジンをさらに含み得る。少なくとも1つの実施例では、常時オン・プロセッサ・エンジンは、限定はしないが、プロセッサ・コア、密結合RAM、サポート周辺機器(たとえば、タイマ及び割込みコントローラ)、様々なI/Oコントローラ周辺機器、及びルーティング論理を含み得る。
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ710は、安全クラスタ・エンジンをさらに含み得、安全クラスタ・エンジンは、限定はしないが、自動車用途のための安全管理に対処するための専用プロセッサ・サブシステムを含む。少なくとも1つの実施例では、安全クラスタ・エンジンは、限定はしないが、2つ又はそれ以上のプロセッサ・コア、密結合RAM、サポート周辺機器(たとえば、タイマ、割込みコントローラなど)、及び/又はルーティング論理を含み得る。安全モードでは、2つ又はそれ以上のコアは、少なくとも1つの実施例では、ロックステップ・モードで動作し、それらの動作間で何らかの差を検出するための比較論理をもつ単一コアとして機能し得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ710は、リアルタイム・カメラ・エンジンをさらに含み得、リアルタイム・カメラ・エンジンは、限定はしないが、リアルタイム・カメラ管理に対処するための専用プロセッサ・サブシステムを含み得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ710は、高ダイナミック・レンジ信号プロセッサをさらに含み得、高ダイナミック・レンジ信号プロセッサは、限定はしないが、カメラ処理パイプラインの一部であるハードウェア・エンジンである画像信号プロセッサを含み得る。
少なくとも1つの実施例では、(1つ又は複数の)プロセッサ710は、ビデオ画像合成器を含み得、ビデオ画像合成器は、プレーヤ・ウィンドウのための最終画像を作り出すためにビデオ再生アプリケーションによって必要とされるビデオ後処理機能を実装する(たとえば、マイクロプロセッサ上に実装された)処理ブロックであり得る。少なくとも1つの実施例では、ビデオ画像合成器は、(1つ又は複数の)広角カメラ770、(1つ又は複数の)周囲カメラ774、及び/又は(1つ又は複数の)キャビン内監視カメラ・センサに対して、レンズゆがみ補正を実施し得る。少なくとも1つの実施例では、(1つ又は複数の)キャビン内監視カメラ・センサは、好ましくは、キャビン内のイベントを識別し、それに応じて応答するように構成された、SoC704の別のインスタンス上で稼働しているニューラル・ネットワークによって監視される。少なくとも1つの実施例では、キャビン内システムは、限定はしないが、セルラー・サービスをアクティブ化し、電話をかけ、電子メールを書き、車両の行き先を変更し、車両のインフォテイメント・システム及び設定をアクティブ化又は変更し、或いはボイス作動式のウェブ・サーフィンを提供するために、読唇を実施し得る。少なくとも1つの実施例では、いくつかの機能は、車両が自律モードで動作しているときにドライバにとって利用可能であり、他の場合に使用不可にされる。
少なくとも1つの実施例では、ビデオ画像合成器は、空間と時間の両方のノイズ低減のための拡張された時間的ノイズ低減を含み得る。たとえば、少なくとも1つの実施例では、ビデオ中で動きが発生した場合、ノイズ低減が空間情報に適切に重み付けし、隣接するフレームによって提供される情報の重みを減少させる。少なくとも1つの実施例では、画像又は画像の一部分が動きを含まない場合、ビデオ画像合成器によって実施される時間的ノイズ低減は、前の画像からの情報を使用して、現在の画像中のノイズを低減し得る。
少なくとも1つの実施例では、ビデオ画像合成器はまた、入力されたステレオ・レンズ・フレームに対してステレオ平行化(stereo rectification)を実施するように構成され得る。少なくとも1つの実施例では、ビデオ画像合成器は、オペレーティング・システム・デスクトップが使用中であるとき、ユーザ・インターフェース合成のためにさらに使用され得、(1つ又は複数の)GPU708は、新しい表面を継続的にレンダリングすることを必要とされない。少なくとも1つの実施例では、(1つ又は複数の)GPU708が電源投入され、アクティブであり、3Dレンダリングを行っているとき、ビデオ画像合成器は、性能及び応答性を改善するために(1つ又は複数の)GPU708をオフロードするために使用され得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC704のうちの1つ又は複数のSoCは、カメラからのビデオ及び入力を受信するためのモバイル・インダストリ・プロセッサ・インターフェース(「MIPI」:mobile industry processor interface)カメラ・シリアル・インターフェース、高速インターフェース、並びに/又はカメラ及び関係するピクセル入力機能のために使用され得るビデオ入力ブロックをさらに含み得る。少なくとも1つの実施例では、(1つ又は複数の)SoC704のうちの1つ又は複数は、(1つ又は複数の)入力/出力コントローラをさらに含み得、(1つ又は複数の)入力/出力コントローラは、ソフトウェアによって制御され得、特定の役割にコミットされていないI/O信号を受信するために使用され得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC704のうちの1つ又は複数は、周辺機器、オーディオ・エンコーダ/デコーダ(「コーデック」)、電力管理、及び/又は他のデバイスとの通信を可能にするための広範囲の周辺インターフェースをさらに含み得る。少なくとも1つの実施例では、(1つ又は複数の)SoC704は、(たとえば、ギガビット・マルチメディア・シリアル・リンク及びイーサネット・チャネルを介して接続された)カメラからのデータ、センサ(たとえば、イーサネット・チャネルを介して接続され得る(1つ又は複数の)LIDARセンサ764、(1つ又は複数の)RADARセンサ760など)からのデータ、バス702からのデータ(たとえば、車両700のスピード、ハンドル位置など)、(たとえば、イーサネット・バス又はCANバスを介して接続された)(1つ又は複数の)GNSSセンサ758からのデータなどを処理するために使用され得る。少なくとも1つの実施例では、(1つ又は複数の)SoC704のうちの1つ又は複数のSoCは、専用の高性能大容量ストレージ・コントローラをさらに含み得、この大容量ストレージ・コントローラは、それら自体のDMAエンジンを含み得、ルーチン・データ管理タスクから(1つ又は複数の)CPU706を解放するために使用され得る。
少なくとも1つの実施例では、(1つ又は複数の)SoC704は、自動化レベル3~5に及ぶフレキシブルなアーキテクチャをもつエンドツーエンド・プラットフォームであり得、それにより、多様性及び冗長性のためにコンピュータ・ビジョン及びADAS技法を活用し、効率的に利用する、並びに、フレキシブルで、信頼できる運転ソフトウェア・スタックのためのプラットフォームを、深層学習ツールとともに提供する、包括的な機能的安全性アーキテクチャを提供し得る。少なくとも1つの実施例では、(1つ又は複数の)SoC704は、従来のシステムよりも高速で、信頼でき、さらにはエネルギー効率及び空間効率が高くなり得る。たとえば、少なくとも1つの実施例では、(1つ又は複数の)アクセラレータ714は、(1つ又は複数の)CPU706、(1つ又は複数の)GPU708、及び(1つ又は複数の)データ・ストア716と組み合わせられたとき、レベル3~5の自律車両のための高速で効率的なプラットフォームを提供し得る。
少なくとも1つの実施例では、コンピュータ・ビジョン・アルゴリズムはCPU上で実行され得、このアルゴリズムは、多種多様な視覚データにわたって多種多様な処理アルゴリズムを実行するために、Cなどの高レベル・プログラミング言語を使用して構成され得る。しかしながら、少なくとも1つの実施例では、CPUは、しばしば、たとえば、実行時間及び電力消費に関係する要件など、多くのコンピュータ・ビジョン・アプリケーションの性能要件を満たすことができない。少なくとも1つの実施例では、多くのCPUは、車両内ADASアプリケーション及び実際のレベル3~5の自律車両において使用される、複雑な物体検出アルゴリズムをリアルタイムで実行することができない。
本明細書で説明される実施例は、複数のニューラル・ネットワークが同時に及び/又は順次実施されることを可能にし、レベル3~5の自律運転機能性を可能にするために結果が一緒に組み合わせられることを可能にする。たとえば、少なくとも1つの実施例では、DLA又は個別GPU(たとえば、(1つ又は複数の)GPU720)上で実行しているCNNは、テキスト及び単語認識を含み得、ニューラル・ネットワークがそれについて特に訓練されていない標識を含む交通標識を読み、理解することを可能にする。少なくとも1つの実施例では、DLAは、標識を識別し、解釈し、標識の意味的理解を提供することができ、その意味的理解を、CPUコンプレックス上で稼働している経路計画モジュールに渡すことができる、ニューラル・ネットワークをさらに含み得る。
少なくとも1つの実施例では、レベル3、4、又は5の運転に関して、複数のニューラル・ネットワークが同時に稼働され得る。たとえば、少なくとも1つの実施例では、電光とともに、「注意:点滅光は凍結状態(icy condition)を示す」と記載した警告標識が、いくつかのニューラル・ネットワークによって独立して又は集合的に解釈され得る。少なくとも1つの実施例では、そのような警告標識自体は、第1の導入されたニューラル・ネットワーク(たとえば、訓練されたニューラル・ネットワーク)によって交通標識として識別され得、「点滅光は凍結状態を示す」というテキストは、第2の導入されたニューラル・ネットワークによって解釈され得、第2の導入されたニューラル・ネットワークは、点滅光が検出されたとき、凍結状態が存在することを車両の(好ましくはCPUコンプレックス上で実行している)経路計画ソフトウェアに知らせる。少なくとも1つの実施例では、点滅光は、第3の導入されたニューラル・ネットワークを複数のフレームにわたって動作させることによって識別され得、第3の導入されたニューラル・ネットワークが、車両の経路計画ソフトウェアに点滅光の存在(又は不在)を知らせる。少なくとも1つの実施例では、3つすべてのニューラル・ネットワークが、DLA内及び/又は(1つ又は複数の)GPU708上などで同時に稼働し得る。
少なくとも1つの実施例では、顔認識及び車両所有者識別のためのCNNが、カメラ・センサからのデータを使用して、車両700の承認済みのドライバ及び/又は所有者の存在を識別し得る。少なくとも1つの実施例では、所有者がドライバ・ドアに近づき、ライトをオンにしたときに車両を解錠し、セキュリティ・モードでは、所有者がそのような車両から離れたときにそのような車両を使用不可にするために、常時オン・センサ処理エンジンが使用され得る。このようにして、(1つ又は複数の)SoC704は、窃盗及び/又は自動車乗っ取りに対するセキュリティを提供する。
少なくとも1つの実施例では、緊急車両検出及び識別のためのCNNが、マイクロフォン796からのデータを使用して、緊急車両のサイレンを検出及び識別し得る。少なくとも1つの実施例では、(1つ又は複数の)SoC704は、環境及び市街地の音を分類し、並びに視覚データを分類するために、CNNを使用する。少なくとも1つの実施例では、DLA上で稼働しているCNNは、緊急車両が近づいてくる相対的なスピードを(たとえば、ドップラ効果を使用することによって)識別するように訓練される。少なくとも1つの実施例では、CNNは、(1つ又は複数の)GNSSセンサ758によって識別されるように、車両が動作している地域に特有の緊急車両を識別するようにも訓練され得る。少なくとも1つの実施例では、欧州で動作しているときは、CNNは欧州のサイレンを検出しようとし、北米にあるときは、CNNは北米のサイレンのみを識別しようとする。少なくとも1つの実施例では、緊急車両が検出されると、緊急車両安全ルーチンを実行し、車両の速度を落とし、道路脇に寄せ、車両を停止させ、及び/又は緊急車両が通過するまで、(1つ又は複数の)超音波センサ762を併用して車両をアイドリングするために、制御プログラムが使用され得る。
少なくとも1つの実施例では、車両700は、(1つ又は複数の)CPU718(たとえば、(1つ又は複数の)個別CPU、又は(1つ又は複数の)dCPU)を含み得、(1つ又は複数の)CPU718は、高速相互接続(たとえば、PCIe)を介して(1つ又は複数の)SoC704に結合され得る。少なくとも1つの実施例では、(1つ又は複数の)CPU718は、たとえばX86プロセッサを含み得る。(1つ又は複数の)CPU718は、たとえば、ADASセンサと(1つ又は複数の)SoC704との間で潜在的に一貫性のない結果を調停すること、並びに/或いは、(1つ又は複数の)コントローラ736及び/又はチップ上のインフォテイメント・システム(「インフォテイメントSoC」)730のステータス及び健全性を監視することを含む、様々な機能のいずれかを実施するために使用され得る。
少なくとも1つの実施例では、車両700は、(1つ又は複数の)GPU720(たとえば、(1つ又は複数の)個別GPU、又は(1つ又は複数の)dGPU)を含み得、(1つ又は複数の)GPU720は、高速相互接続(たとえば、NVIDIAのNVLINKチャネル)を介して(1つ又は複数の)SoC704に結合され得る。少なくとも1つの実施例では、(1つ又は複数の)GPU720は、冗長な及び/又は異なるニューラル・ネットワークを実行することなどによって、追加の人工知能機能性を提供し得、車両700のセンサからの入力(たとえば、センサ・データ)に少なくとも部分的に基づいて、ニューラル・ネットワークを訓練及び/又は更新するために使用され得る。
少なくとも1つの実施例では、車両700は、ネットワーク・インターフェース724をさらに含み得、ネットワーク・インターフェース724は、限定はしないが、(1つ又は複数の)ワイヤレス・アンテナ726(たとえば、セルラー・アンテナ、Bluetoothアンテナなど、異なる通信プロトコルのための1つ又は複数のワイヤレス・アンテナ)を含み得る。少なくとも1つの実施例では、ネットワーク・インターフェース724は、他の車両及び/又はコンピューティング・デバイス(たとえば、乗客のクライアント・デバイス)との(たとえば、(1つ又は複数の)サーバ及び/又は他のネットワーク・デバイスとの)インターネット・クラウド・サービスへのワイヤレス接続性を可能にするために使用され得る。少なくとも1つの実施例では、他の車両と通信するために、車両700と他の車両との間に直接リンクが確立され得、及び/又は(たとえば、ネットワークにわたって及びインターネットを介して)間接リンクが確立され得る。少なくとも1つの実施例では、直接リンクは、車両間通信リンクを使用して提供され得る。少なくとも1つの実施例では、車両間通信リンクは、車両700の近傍の車両(たとえば、車両700の前方、側方、及び/又は後方の車両)に関する情報を車両700に提供し得る。少なくとも1つの実施例では、そのような前述の機能性は、車両700の協調型適応走行制御機能性の一部であり得る。
少なくとも1つの実施例では、ネットワーク・インターフェース724は、変調及び復調機能性を提供し、(1つ又は複数の)コントローラ736がワイヤレス・ネットワークを介して通信することを可能にする、SoCを含み得る。少なくとも1つの実施例では、ネットワーク・インターフェース724は、ベースバンドから無線周波数へのアップ・コンバージョン、及び無線周波数からベースバンドへのダウン・コンバージョンのための無線周波数フロント・エンドを含み得る。少なくとも1つの実施例では、周波数コンバージョンは、任意の技術的に実現可能な様式で実施され得る。たとえば、周波数コンバージョンは、よく知られているプロセスを通して、及び/又はスーパー・ヘテロダイン・プロセスを使用して実施され得る。少なくとも1つの実施例では、無線周波数フロント・エンド機能性は、別個のチップによって提供され得る。少なくとも1つの実施例では、ネットワーク・インターフェースは、LTE、WCDMA(登録商標)、UMTS、GSM、CDMA2000、Bluetooth、Bluetooth LE、Wi-Fi、Z波、ZigBee、LoRaWAN、及び/又は他のワイヤレス・プロトコルを介して通信するためのワイヤレス機能性を含み得る。
少なくとも1つの実施例では、車両700は、(1つ又は複数の)データ・ストア728をさらに含み得、(1つ又は複数の)データ・ストア728は、限定はしないが、オフチップ(たとえば、(1つ又は複数の)SoC704上にない)ストレージを含み得る。少なくとも1つの実施例では、(1つ又は複数の)データ・ストア728は、限定はしないが、RAM、SRAM、ダイナミック・ランダム・アクセス・メモリ(「DRAM」:dynamic random-access memory)、ビデオ・ランダム・アクセス・メモリ(「VRAM」:video random-access memory)、フラッシュ・メモリ、ハード・ディスク、並びに/或いは、少なくとも1ビットのデータを記憶し得る他の構成要素及び/又はデバイスを含む、1つ又は複数のストレージ要素を含み得る。
少なくとも1つの実施例では、車両700は、マッピング、知覚、占有グリッド生成、及び/又は経路計画機能を支援するために、(1つ又は複数の)GNSSセンサ758(たとえば、GPS及び/又は補助GPSセンサ)をさらに含み得る。少なくとも1つの実施例では、たとえば、限定はしないが、イーサネット-シリアル(たとえば、RS-232)ブリッジをもつユニバーサル・シリアル・バス(「USB」:Universal Serial Bus)コネクタを使用するGPSを含む、任意の数のGNSSセンサ758が使用され得る。
少なくとも1つの実施例では、車両700は、(1つ又は複数の)RADARセンサ760をさらに含み得る。少なくとも1つの実施例では、(1つ又は複数の)RADARセンサ760は、暗闇及び/又は厳しい気象条件においてさえ、長距離車両検出のために車両700によって使用され得る。少なくとも1つの実施例では、RADARの機能的安全性レベルは、ASIL Bであり得る。少なくとも1つの実施例では、(1つ又は複数の)RADARセンサ760は、いくつかの実例では、未加工のデータにアクセスするためのイーサネット・チャネルへのアクセスとともに、制御のために(たとえば、(1つ又は複数の)RADARセンサ760によって生成されたデータを送信するために)、及び物体追跡データにアクセスするために、CANバス及び/又はバス702を使用し得る。少なくとも1つの実施例では、多種多様なRADARセンサ・タイプが使用され得る。たとえば、限定はしないが、(1つ又は複数の)RADARセンサ760は、前方、後方、及び側方のRADAR使用に好適であり得る。少なくとも1つの実施例では、(1つ又は複数の)RADARセンサ760のうちの1つ又は複数のセンサは、パルス・ドップラRADARセンサである。
少なくとも1つの実施例では、(1つ又は複数の)RADARセンサ760は、狭視野の長距離、広視野の短距離、短距離側方カバレージなど、異なる構成を含み得る。少なくとも1つの実施例では、長距離RADARは、適応走行制御機能性のために使用され得る。少なくとも1つの実施例では、長距離RADARシステムは、250m(メートル)範囲内などの、2つ又はそれ以上の独立した走査によって実現される広い視野を提供し得る。少なくとも1つの実施例では、(1つ又は複数の)RADARセンサ760は、静的物体と移動している物体とを区別するのを助け得、緊急ブレーキ支援及び前方衝突警告のためにADASシステム738によって使用され得る。少なくとも1つの実施例では、長距離RADARシステム中に含まれる(1つ又は複数の)センサ760は、限定はしないが、複数の(たとえば、6つ又はそれ以上の)固定RADARアンテナ、並びに高速CAN及びFlexRayインターフェースをもつモノスタティック・マルチモーダルRADARを含み得る。少なくとも1つの実施例では、6つのアンテナがある場合、中央の4アンテナは、隣接する車線におけるトラフィックからの干渉が最小の状態で、より高速で車両700の周囲を記録するように設計された、集束ビーム・パターンを作成し得る。少なくとも1つの実施例では、別の2つのアンテナは、視野を拡大し、これは、車両700の車線に入るか又はそこを出る車両を迅速に検出することを可能にし得る。
少なくとも1つの実施例では、中距離RADARシステムは、一実例として、最高160m(前方)又は80m(後方)の範囲と、最高42度(前方)又は150度(後方)の視野とを含み得る。少なくとも1つの実施例では、短距離RADARシステムは、限定はしないが、後方バンパの両端部に設置されるように設計された任意の数のRADARセンサ760を含み得る。後方バンパの両端部に設置されたとき、少なくとも1つの実施例では、RADARセンサ・システムは、後方向及び車両の隣の死角を常に監視する2本のビームを作成し得る。少なくとも1つの実施例では、短距離RADARシステムは、死角検出及び/又は車線変更支援のために、ADASシステム738において使用され得る。
少なくとも1つの実施例では、車両700は、(1つ又は複数の)超音波センサ762をさらに含み得る。少なくとも1つの実施例では、車両700の前方、後方、及び/又は側方ロケーションにおいて位置決めされ得る(1つ又は複数の)超音波センサ762は、駐車支援のために、並びに/又は占有グリッドを作成及び更新するために、使用され得る。少なくとも1つの実施例では、多種多様な(1つ又は複数の)超音波センサ762が使用され得、異なる検出範囲(たとえば、2.5m、4m)について(1つ又は複数の)異なる超音波センサ762が使用され得る。少なくとも1つの実施例では、(1つ又は複数の)超音波センサ762は、機能的安全性レベルのASIL Bにおいて動作し得る。
少なくとも1つの実施例では、車両700は、(1つ又は複数の)LIDARセンサ764を含み得る。少なくとも1つの実施例では、(1つ又は複数の)LIDARセンサ764は、物体及び歩行者検出、緊急ブレーキ、衝突回避、並びに/又は他の機能のために使用され得る。少なくとも1つの実施例では、(1つ又は複数の)LIDARセンサ764は、機能的安全性レベルASIL Bにおいて動作し得る。少なくとも1つの実施例では、車両700は、複数のLIDARセンサ764(たとえば、2つ、4つ、6つなど)を含み得、それらのLIDARセンサ764は、(たとえば、データをギガビット・イーサネット・スイッチに提供するために)イーサネット・チャネルを使用し得る。
少なくとも1つの実施例では、(1つ又は複数の)LIDARセンサ764は、360度の視野について、物体及びそれらの距離のリストを提供することが可能であり得る。少なくとも1つの実施例では、(1つ又は複数の)市販のLIDARセンサ764は、たとえば、2cm~3cmの精度をもつ、及び100Mbpsのイーサネット接続のサポートをもつ、ほぼ100mの宣伝された範囲を有し得る。少なくとも1つの実施例では、1つ又は複数の非突出型LIDARセンサが使用され得る。そのような実施例では、(1つ又は複数の)LIDARセンサ764は、車両700の前方、後方、側方、及び/又は角ロケーションに組み込まれ得る小さいデバイスを含み得る。少なくとも1つの実施例では、(1つ又は複数の)LIDARセンサ764は、そのような実施例において、最高120度の水平視野と、35度の垂直視野とを、低反射性物体についてさえ200mの範囲で提供し得る。少なくとも1つの実施例では、(1つ又は複数の)前方に取り付けられたLIDARセンサ764は、45度から135度の間の水平視野のために構成され得る。
少なくとも1つの実施例では、3DフラッシュLIDARなどのLIDAR技術も使用され得る。少なくとも1つの実施例では、3DフラッシュLIDARは、レーザのフラッシュを送信ソースとして使用して、車両700の周囲を最高でほぼ200mまで照射する。少なくとも1つの実施例では、フラッシュLIDARユニットは、限定はしないが、レセプタを含み、レセプタは、レーザ・パルスの通過時間と各ピクセル上での反射光とを記録し、それらは、車両700から物体までの範囲に対応する。少なくとも1つの実施例では、フラッシュLIDARは、非常に正確でゆがみのない周囲画像が、レーザのフラッシュごとに生成されることを可能にし得る。少なくとも1つの実施例では、4つのフラッシュLIDARセンサが、車両700の各側面において1つ導入され得る。少なくとも1つの実施例では、3DフラッシュLIDARシステムは、限定はしないが、ファン以外に可動部品のないソリッド・ステート3D凝視アレイ(staring array)LIDARカメラ(たとえば、非走査型LIDARデバイス)を含む。少なくとも1つの実施例では、フラッシュLIDARデバイスは、フレーム当たり5ナノ秒のクラスI(眼に安全な)レーザ・パルスを使用し得、3D範囲のポイント・クラウド及び位置同期された(co-registered)強度データとして反射レーザ光をキャプチャし得る。
少なくとも1つの実施例では、車両700は、(1つ又は複数の)IMUセンサ766をさらに含み得る。少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ766は、車両700の後方車軸の中央に位置し得る。少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ766は、たとえば、限定はしないが、(1つ又は複数の)加速度計、(1つ又は複数の)磁力計、(1つ又は複数の)ジャイロスコープ、磁気コンパス、複数の磁気コンパス、及び/又は他のセンサ・タイプを含み得る。6軸の用途においてなど、少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ766は、限定はしないが、加速度計とジャイロスコープとを含み得る。9軸の用途においてなど、少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ766は、限定はしないが、加速度計と、ジャイロスコープと、磁力計とを含み得る。
少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ766は、微小電気機械システム(「MEMS」:micro-electro-mechanical systems)慣性センサ、高感度GPS受信機、及び先進Kalmanフィルタリング・アルゴリズムを組み合わせて、位置、速度、及び姿勢の推定値を提供する、小型の高性能GPS補強型慣性航法システム(「GPS/INS」:GPS-Aided Inertial Navigation System)として実装され得る。少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ766は、車両700が、速度の変化を直接観察し、それを、GPSから(1つ又は複数の)IMUセンサ766に相関させることによって、磁気センサからの入力を必要とせずに車両700の方位を推定することを可能にし得る。少なくとも1つの実施例では、(1つ又は複数の)IMUセンサ766と(1つ又は複数の)GNSSセンサ758とは、単一の統合されたユニットにおいて組み合わせられ得る。
少なくとも1つの実施例では、車両700は、車両700の中及び/又はその周りに置かれた(1つ又は複数の)マイクロフォン796を含み得る。少なくとも1つの実施例では、(1つ又は複数の)マイクロフォン796は、とりわけ、緊急車両検出及び識別のために使用され得る。
少なくとも1つの実施例では、車両700は、(1つ又は複数の)ステレオ・カメラ768、(1つ又は複数の)広角カメラ770、(1つ又は複数の)赤外線カメラ772、(1つ又は複数の)周囲カメラ774、(1つ又は複数の)長距離カメラ798、(1つ又は複数の)中距離カメラ776、及び/又は他のカメラ・タイプを含む、任意の数のカメラ・タイプをさらに含み得る。少なくとも1つの実施例では、カメラは、車両700の全周辺の周りで画像データをキャプチャするために使用され得る。少なくとも1つの実施例では、どのタイプのカメラが使用されるかは、車両700に依存する。少なくとも1つの実施例では、車両700の周りで必要なカバレージを提供するために、カメラ・タイプの任意の組合せが使用され得る。少なくとも1つの実施例では、導入されるカメラの数は、実施例に応じて異なり得る。たとえば、少なくとも1つの実施例では、車両700は、6台のカメラ、7台のカメラ、10台のカメラ、12台のカメラ、又は別の数のカメラを含むことができる。少なくとも1つの実施例では、カメラは、一実例として、限定はしないが、ギガビット・マルチメディア・シリアル・リンク(「GMSL」:Gigabit Multimedia Serial Link)及び/又はギガビット・イーサネット通信をサポートし得る。少なくとも1つの実施例では、各カメラは、図7Aに関して本明細書でより詳細に前に説明されたようなものであり得る。
少なくとも1つの実施例では、車両700は、(1つ又は複数の)振動センサ742をさらに含み得る。少なくとも1つの実施例では、(1つ又は複数の)振動センサ742は、(1つ又は複数の)車軸など、車両700の構成要素の振動を測定し得る。たとえば、少なくとも1つの実施例では、振動の変化は、路面の変化を示し得る。少なくとも1つの実施例では、2つ又はそれ以上の振動センサ742が使用されるとき、路面の摩擦又はすべり量を決定するために振動の差が使用され得る(たとえば、振動の差が動力駆動車軸と自由回転車軸との間のものであるとき)。
少なくとも1つの実施例では、車両700は、ADASシステム738を含み得る。少なくとも1つの実施例では、ADASシステム738は、限定はしないが、いくつかの実例では、SoCを含み得る。少なくとも1つの実施例では、ADASシステム738は、限定はしないが、任意の数及び組合せの自律/適応/自動走行制御(「ACC」:autonomous/adaptive/automatic cruise control)システム、協調型適応走行制御(「CACC」:cooperative adaptive cruise control)システム、正面クラッシュ警告(「FCW」:forward crash warning)システム、自動緊急ブレーキ(「AEB」)システム、車線逸脱警告(「LDW」:lane departure warning)システム、車線維持支援(「LKA」:lane keep assist)システム、死角警告(「BSW」:blind spot warning)システム、後方クロス・トラフィック警告(「RCTW」:rear cross-traffic warning)システム、衝突警告(「CW」:collision warning)システム、車線センタリング(「LC」:lane centering)システム、並びに/或いは他のシステム、特徴、及び/又は機能性を含み得る。
少なくとも1つの実施例では、ACCシステムは、(1つ又は複数の)RADARセンサ760、(1つ又は複数の)LIDARセンサ764、及び/又は任意の数のカメラを使用し得る。少なくとも1つの実施例では、ACCシステムは、縦方向ACCシステム及び/又は横方向ACCシステムを含み得る。少なくとも1つの実施例では、縦方向ACCシステムは、車両700の直前の別の車両までの距離を監視及び制御し、車両700のスピードを自動的に調節して、前の車両からの安全な距離を維持する。少なくとも1つの実施例では、横方向ACCシステムは、距離の維持を実施し、必要なときに車線を変更するよう車両700に忠告する。少なくとも1つの実施例では、横方向ACCは、LC及びCWなど、他のADAS用途に関係する。
少なくとも1つの実施例では、CACCシステムは、他の車両からの情報を使用し、この情報は、ワイヤレス・リンクを介して、又は間接的に、ネットワーク接続を介して(たとえば、インターネットを介して)、他の車両からネットワーク・インターフェース724及び/又は(1つ又は複数の)ワイヤレス・アンテナ726を介して受信され得る。少なくとも1つの実施例では、直接リンクは車両間(「V2V」:vehicle-to-vehicle)通信リンクによって提供され得、間接リンクはインフラストラクチャ車両間(「I2V」:infrastructure-to-vehicle)通信リンクによって提供され得る。一般に、V2V通信は、直前の先行車両(たとえば、車両700の直前で同じ車線にいる車両)に関する情報を提供し、I2V通信は、さらにその前の交通に関する情報を提供する。少なくとも1つの実施例では、CACCシステムは、I2V情報ソースとV2V情報ソースのいずれか又は両方を含み得る。少なくとも1つの実施例では、車両700の前の車両の情報があれば、CACCシステムは、より信頼できるものとなり得、それは、交通の流れの円滑さを改善し、道路上での渋滞を低減する可能性を有する。
少なくとも1つの実施例では、FCWシステムは、危険物についてドライバにアラートするように設計され、それにより、そのようなドライバは是正アクションをとり得る。少なくとも1つの実施例では、FCWシステムは、ディスプレイ、スピーカー、及び/又は振動構成要素など、ドライバ・フィードバックを提供するように電気的に結合された専用プロセッサ、デジタル信号プロセッサ(「DSP」)、FPGA、及び/又はASICに結合された、正面カメラ及び/又は(1つ又は複数の)RADARセンサ760を使用する。少なくとも1つの実施例では、FCWシステムは、音、視覚的警告、振動及び/又はクイック・ブレーキ・パルスなどの形態で警告を提供し得る。
少なくとも1つの実施例では、AEBシステムは、別の車両又は他の物体との差し迫った前方衝突を検出し、指定された時間又は距離パラメータ内にドライバが是正アクションをとらない場合、自動的にブレーキをかけ得る。少なくとも1つの実施例では、AEBシステムは、専用プロセッサ、DSP、FPGA、及び/又はASICに結合された(1つ又は複数の)正面カメラ及び/又は(1つ又は複数の)RADARセンサ760を使用し得る。少なくとも1つの実施例では、AEBシステムが危険物を検出したとき、AEBシステムは、通常、最初に、是正アクションをとって衝突を回避するようにドライバにアラートし、そのドライバが是正アクションをとらない場合、そのAEBシステムは、予測される衝突を防ぐか、又は少なくともその衝撃を軽減するために、自動的にブレーキをかけ得る。少なくとも1つの実施例では、AEBシステムは、動的ブレーキ・サポート及び/又はクラッシュ直前ブレーキなどの技法を含み得る。
少なくとも1つの実施例では、LDWシステムは、車両700が車線の目印に交差したときにドライバにアラートするために、ハンドル又は座席の振動など、視覚的、聴覚的、及び/又は触覚的警告を提供する。少なくとも1つの実施例では、LDWシステムは、ドライバが方向指示器をアクティブ化することなどによって意図的な車線逸脱を示すとき、アクティブ化しない。少なくとも1つの実施例では、LDWシステムは、ディスプレイ、スピーカー、及び/又は振動構成要素など、ドライバ・フィードバックを提供するように電気的に結合された専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、正面向きのカメラを使用し得る。少なくとも1つの実施例では、LKAシステムは、LDWシステムの変形形態である。少なくとも1つの実施例では、LKAシステムは、車両700が車両700の車線から出始めた場合に車両700を是正するために操縦入力又はブレーキ制御を提供する。
少なくとも1つの実施例では、BSWシステムは、自動車の死角にある車両を検出し、その車両についてドライバに警告する。少なくとも1つの実施例では、BSWシステムは、合流すること又は車線を変更することが安全ではないことを示すために、視覚的、聴覚的、及び/又は触覚的なアラートを提供し得る。少なくとも1つの実施例では、BSWシステムは、ドライバが方向指示器を使用したときに追加の警告を提供し得る。少なくとも1つの実施例では、BSWシステムは、ディスプレイ、スピーカー、及び/又は振動構成要素など、ドライバ・フィードバックに電気的に結合された専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、(1つ又は複数の)背面向きのカメラ及び/又は(1つ又は複数の)RADARセンサ760を使用し得る。
少なくとも1つの実施例では、RCTWシステムは、車両700が後退しているときに物体が後方カメラの範囲外で検出されたとき、視覚的、聴覚的、及び/又は触覚的な通知を提供し得る。少なくとも1つの実施例では、RCTWシステムは、クラッシュを回避するために車両ブレーキがかけられることを確実にするためのAEBシステムを含む。少なくとも1つの実施例では、RCTWシステムは、ディスプレイ、スピーカー、及び/又は振動構成要素など、ドライバ・フィードバックを提供するように電気的に結合された専用プロセッサ、DSP、FPGA、及び/又はASICに結合された、1つ又は複数の背面RADARセンサ760を使用し得る。
少なくとも1つの実施例では、従来のADASシステムは、偽陽性結果を出しがちなことがあり、これは、ドライバにとって迷惑であり、気が散るものであり得るが、従来のADASシステムが、ドライバにアラートし、そのドライバが、安全条件が本当に存在するかどうかを判定し、それに応じて行動することを可能にするので、通常は大したことにはならない。少なくとも1つの実施例では、車両700自体が、矛盾する結果の場合、1次コンピュータ(たとえば、コントローラ736のうちの第1のコントローラ)からの結果に従うのか、2次コンピュータ(たとえば、コントローラ736のうちの第2のコントローラ)からの結果に従うのかを判定する。たとえば、少なくとも1つの実施例では、ADASシステム738は、バックアップ・コンピュータ合理性モジュールに知覚情報を提供するためのバックアップ及び/又は2次コンピュータであり得る。少なくとも1つの実施例では、バックアップ・コンピュータ合理性モニタが、ハードウェア構成要素上の冗長な多様なソフトウェアを稼働して、知覚及び動的運転タスクの障害を検出し得る。少なくとも1つの実施例では、ADASシステム738からの出力は、監督MCU(supervisory MCU)に提供され得る。少なくとも1つの実施例では、1次コンピュータからの出力と2次コンピュータからの出力とが矛盾する場合、監督MCUが、安全な動作を確実にするために矛盾をどのように調和させるかを決定する。
少なくとも1つの実施例では、1次コンピュータは、選定された結果における1次コンピュータの信頼性を示す信頼性スコアを監督MCUに提供するように構成され得る。少なくとも1つの実施例では、その信頼性スコアがしきい値を超える場合、その2次コンピュータが、矛盾する又は一貫性のない結果を提供するかどうかにかかわらず、監督MCUは、その1次コンピュータの指示に従い得る。少なくとも1つの実施例では、信頼性スコアがしきい値を満たさない場合、及び1次コンピュータと2次コンピュータとが異なる結果(たとえば、矛盾)を示す場合、監督MCUは、コンピュータ間で調停して、適切な帰結を決定し得る。
少なくとも1つの実施例では、監督MCUは、1次コンピュータからの出力と2次コンピュータからの出力とに少なくとも部分的に基づいて、その2次コンピュータが誤アラームを提供する条件を決定するように訓練及び構成された(1つ又は複数の)ニューラル・ネットワークを稼働するように構成され得る。少なくとも1つの実施例では、監督MCU中の(1つ又は複数の)ニューラル・ネットワークは、2次コンピュータの出力がいつ信用でき得るかと、それがいつ信用できないかとを学習し得る。たとえば、少なくとも1つの実施例では、その2次コンピュータがRADARベースのFCWシステムであるとき、その監督MCU中の(1つ又は複数の)ニューラル・ネットワークは、アラームをトリガする排水溝格子又はマンホール・カバーなど、実際には危険物ではない金属物体をFCWシステムがいつ識別しているかを学習し得る。少なくとも1つの実施例では、2次コンピュータがカメラ・ベースのLDWシステムであるとき、監督MCU中のニューラル・ネットワークは、自転車又は歩行者が存在し、車線逸脱が実際には最も安全な操作であるときにLDWを無効にするように学習し得る。少なくとも1つの実施例では、監督MCUは、(1つ又は複数の)ニューラル・ネットワークを、関連するメモリとともに稼働するのに好適なDLA又はGPUのうちの少なくとも1つを含み得る。少なくとも1つの実施例では、監督MCUは、(1つ又は複数の)SoC704の構成要素を備え、及び/又はその構成要素として含められ得る。
少なくとも1つの実施例では、ADASシステム738は、コンピュータ・ビジョンの従来のルールを使用してADAS機能性を実施する2次コンピュータを含み得る。少なくとも1つの実施例では、その2次コンピュータは、従来のコンピュータ・ビジョン・ルール(if-then)を使用し得、監督MCU中の(1つ又は複数の)ニューラル・ネットワークの存在が、信頼性、安全性及び性能を改善し得る。たとえば、少なくとも1つの実施例では、多様な実装及び意図的な非同一性が、システム全体を、特にソフトウェア(又はソフトウェアとハードウェアのインターフェース)機能性によって引き起こされる障害に対して、より障害耐性のあるものにする。たとえば、少なくとも1つの実施例では、1次コンピュータ上で稼働しているソフトウェアにおいてソフトウェア・バグ又はエラーがあり、2次コンピュータ上で稼働している非同一のソフトウェア・コードが、一貫性のある全体的な結果を提供する場合、監督MCUは、全体的な結果が正しく、その1次コンピュータ上のソフトウェア又はハードウェアにおけるバグが重大なエラーを引き起こしていないという、より高い信頼性を有し得る。
少なくとも1つの実施例では、ADASシステム738の出力は、1次コンピュータの知覚ブロック及び/又は1次コンピュータの動的運転タスク・ブロックにフィードされ得る。たとえば、少なくとも1つの実施例では、ADASシステム738が、直前の物体により正面クラッシュ警告を示す場合、知覚ブロックは、物体を識別するときにこの情報を使用し得る。少なくとも1つの実施例では、2次コンピュータは、本明細書で説明されるように、訓練された、したがって偽陽性のリスクを低減する、それ自体のニューラル・ネットワークを有し得る。
少なくとも1つの実施例では、車両700は、インフォテイメントSoC730(たとえば、車両内インフォテイメント・システム(IVI:in-vehicle infotainment))をさらに含み得る。SoCとして示され、説明されるが、インフォテイメント・システムSoC730は、少なくとも1つの実施例では、SoCでないことがあり、限定はしないが、2つ又はそれ以上の個別の構成要素を含み得る。少なくとも1つの実施例では、インフォテイメントSoC730は、限定はしないが、ハードウェアとソフトウェアとの組合せを含み得、この組合せは、オーディオ(たとえば、音楽、パーソナル・デジタル・アシスタント、ナビゲーション命令、ニュース、ラジオなど)、ビデオ(たとえば、TV、映画、ストリーミングなど)、電話(たとえば、ハンズフリー通話)、ネットワーク接続性(たとえば、LTE、Wi-Fiなど)、及び/又は情報サービス(たとえば、ナビゲーション・システム、後方駐車支援、無線データ・システム、燃料レベル、合計走行距離、ブレーキ燃料レベル、オイル・レベル、ドアの開閉、空気フィルタ情報などの車両関係情報など)を車両700に提供するために使用され得る。たとえば、インフォテイメントSoC730は、ラジオ、ディスク・プレーヤ、ナビゲーション・システム、ビデオ・プレーヤ、USB及びBluetooth接続性、カーピュータ、車内エンタテイメント、Wi-Fi、ハンドル・オーディオ制御、ハンズフリー・ボイス制御、ヘッドアップ・ディスプレイ(「HUD」:heads-up display)、HMIディスプレイ734、テレマティックス・デバイス、(たとえば、様々な構成要素、特徴、及び/又はシステムを制御し、及び/又はそれらと対話するための)制御パネル、及び/又は他の構成要素を含むことができる。少なくとも1つの実施例では、インフォテイメントSoC730は、ADASシステム738からの情報、計画された車両操作、軌道などの自律運転情報、周囲環境情報(たとえば、交差点情報、車両情報、道路情報など)、及び/又は他の情報など、(たとえば、視覚的及び/又は聴覚的な)情報を車両700の(1人又は複数の)ユーザに提供するために、さらに使用され得る。
少なくとも1つの実施例では、インフォテイメントSoC730は、任意の量及びタイプのGPU機能性を含み得る。少なくとも1つの実施例では、インフォテイメントSoC730は、バス702を介して、車両700の他のデバイス、システム、及び/又は構成要素と通信し得る。少なくとも1つの実施例では、インフォテイメントSoC730は監督MCUに結合され得、それにより、(1つ又は複数の)1次コントローラ736(たとえば、車両700の1次及び/又はバックアップ・コンピュータ)が故障した場合、インフォテイメント・システムのGPUが、いくつかの自己運転機能を実施し得る。少なくとも1つの実施例では、インフォテイメントSoC730は、本明細書で説明されるように、車両700を運転手-安全停止モードにし得る。
少なくとも1つの実施例では、車両700は、計器クラスタ732(たとえば、デジタル・ダッシュボード、電子計器クラスタ、デジタル計器パネルなど)をさらに含み得る。少なくとも1つの実施例では、計器クラスタ732は、限定はしないが、コントローラ及び/又はスーパーコンピュータ(たとえば、個別のコントローラ又はスーパーコンピュータ)を含み得る。少なくとも1つの実施例では、計器クラスタ732は、限定はしないが、スピードメータ、燃料レベル、油圧、タコメータ、オドメータ、方向インジケータ、シフトレバー位置インジケータ、(1つ又は複数の)シート・ベルト警告灯、(1つ又は複数の)駐車ブレーキ警告灯、(1つ又は複数の)エンジン故障灯、補助拘束システム(たとえば、エアバッグ)情報、ライト制御、安全システム制御、ナビゲーション情報など、任意の数及び組合せの計装セットを含み得る。いくつかの実例では、情報は表示され、及び/又は、インフォテイメントSoC730と計器クラスタ732との間で共有され得る。少なくとも1つの実施例では、計器クラスタ732は、インフォテイメントSoC730の一部として含められ得、その逆もまた同様である。
カメラ画像圧縮/復元構成要素115は、1つ又は複数の実施例によれば、画像信号処理(ISP)における高ダイナミック・レンジ(HDR)画像のための圧縮及び/又は復元方式を提供するために使用され得る。カメラ画像圧縮/復元構成要素115は、車両700のCPU、GPU、SoC上でなど、車両700のプロセッサ上で実行され得る。カメラ画像圧縮/復元構成要素115に関する詳細は、図1と併せて本明細書で提供される。少なくとも1つの実施例では、カメラ画像圧縮/復元構成要素115は、本明細書で説明されるHDR画像の圧縮及び/又は復元を実施するために、図7Bのシステムにおいて使用され得る。
コンピュータ・システム
図8は、例示的なコンピュータ・システムを示すブロック図であり、例示的なコンピュータ・システムは、少なくとも1つの実施例による、命令を実行するための実行ユニットを含み得るプロセッサとともに形成された、相互接続されたデバイス及び構成要素、システム・オン・チップ(SOC)又はそれらの何らかの組合せをもつシステムであり得る。実施例では、コンピュータ・システムは、圧縮及び/又は復元のために使用すべき最適な電力曲線及びPWL関数を決定するために使用され得る。コンピュータ・システムは、たとえば、電力曲線にマッピングする、並びに/或いは、圧縮された画像が、電力曲線に従って及び/又は電力曲線に対応する様式で圧縮されることを引き起こす、圧縮及び/又は復元のための1つ又は複数のPWL関数を決定するために、曲線当てはめ動作を実施し得る。実施例では、コンピュータ・システムは、ISPの1つ又は複数の動作を実施し得る。たとえば、コンピュータ・システムは、ISPのカメラ圧縮/復元構成要素を含み得、ISPのカメラ圧縮/復元構成要素は、本明細書で説明される実施例に従って、入って来る圧縮された画像を復元(たとえば、部分的に復元)し、随意に、画像をレンダリング及び/又は画像を処理する前に、随意に、ISPの1つ又は複数の動作を実施し得る。画像が復元(たとえば、部分的に復元)され、ISPによって完全に処理されると、画像は、1つ又は複数の目的のために使用され得る。たとえば、画像は、1つ又は複数の訓練された機械学習モデルに入力され得、それらの機械学習モデルは、物体識別及び/又は認識並びに/或いは1つ又は複数の他の動作を実施し得る。
少なくとも1つの実施例では、コンピュータ・システム800は、限定はしないが、本明細書で説明される実施例などにおいて、本開示による、プロセス・データのためのアルゴリズムを実施するための論理を含む実行ユニットを採用するための、プロセッサ802などの構成要素を含み得る。少なくとも1つの実施例では、コンピュータ・システム800は、カリフォルニア州サンタクララのIntel Corporationから入手可能なPENTIUM(登録商標)プロセッサ・ファミリー、Xeon(商標)、Itanium(登録商標)、XScale(商標)及び/又はStrongARM(商標)、Intel(登録商標)Core(商標)、又はIntel(登録商標)Nervana(商標)マイクロプロセッサなどのプロセッサを含み得るが、(他のマイクロプロセッサ、エンジニアリング・ワークステーション、セット・トップ・ボックスなどを有するPCを含む)他のシステムも使用され得る。少なくとも1つの実施例では、コンピュータ・システム800は、ワシントン州レドモンドのMicrosoft Corporationから入手可能なWINDOWS(登録商標)オペレーティング・システムのあるバージョンを実行し得るが、他のオペレーティング・システム(たとえば、UNIX(登録商標)及びLinux(登録商標))、組み込みソフトウェア、及び/又はグラフィカル・ユーザ・インターフェースも使用され得る。
実施例は、ハンドヘルド・デバイス及び組み込みアプリケーションなど、他のデバイスにおいて使用され得る。ハンドヘルド・デバイスのいくつかの実例は、セルラー・フォン、インターネット・プロトコル・デバイス、デジタル・カメラ、パーソナル・デジタル・アシスタント(「PDA」:personal digital assistant)、及びハンドヘルドPCを含む。少なくとも1つの実施例では、組み込みアプリケーションは、マイクロコントローラ、DSP、システム・オン・チップ、ネットワーク・コンピュータ(「NetPC」:network computer)、セット・トップ・ボックス、ネットワーク・ハブ、ワイド・エリア・ネットワーク(「WAN」:wide area network)スイッチ、又は少なくとも1つの実施例による1つ又は複数の命令を実施し得る任意の他のシステムを含み得る。
少なくとも1つの実施例では、コンピュータ・システム800は、限定はしないが、プロセッサ802を含み得、プロセッサ802は、限定はしないが、本明細書で説明される技法による機械学習モデル訓練及び/又は推論を実施するための1つ又は複数の実行ユニット808を含み得る。少なくとも1つの実施例では、コンピュータ・システム800は、シングル・プロセッサ・デスクトップ又はサーバ・システムであるが、別の実施例では、コンピュータ・システム800は、マルチプロセッサ・システムであり得る。少なくとも1つの実施例では、プロセッサ802は、限定はしないが、複合命令セット・コンピュータ(「CISC」:complex instruction set computer)マイクロプロセッサ、縮小命令セット・コンピューティング(「RISC」:reduced instruction set computing)マイクロプロセッサ、超長命令語(「VLIW」)マイクロプロセッサ、命令セットの組合せを実装するプロセッサ、又は、たとえばデジタル信号プロセッサなど、任意の他のプロセッサ・デバイスを含み得る。少なくとも1つの実施例では、プロセッサ802は、プロセッサ・バス810に結合され得、プロセッサ・バス810は、プロセッサ802とコンピュータ・システム800中の他の構成要素との間でデータ信号を送信し得る。
少なくとも1つの実施例では、プロセッサ802は、限定はしないが、レベル1(「L1」)の内部キャッシュ・メモリ(「キャッシュ」)804を含み得る。少なくとも1つの実施例では、プロセッサ802は、単一の内部キャッシュ又は複数のレベルの内部キャッシュを有し得る。少なくとも1つの実施例では、キャッシュ・メモリは、プロセッサ802の外部に存在し得る。他の実施例は、特定の実装形態及び必要性に応じて、内部キャッシュと外部キャッシュの両方の組合せをも含み得る。少なくとも1つの実施例では、レジスタ・ファイル806は、限定はしないが、整数レジスタ、浮動小数点レジスタ、ステータス・レジスタ、及び命令ポインタ・レジスタを含む様々なレジスタに、異なるタイプのデータを記憶し得る。
少なくとも1つの実施例では、限定はしないが、整数演算及び浮動小数点演算を実施するための論理を含む実行ユニット808も、プロセッサ802中に存在する。少なくとも1つの実施例では、プロセッサ802は、いくつかのマクロ命令のためのマイクロコードを記憶するマイクロコード(「uコード」)読取り専用メモリ(「ROM」:read only memory)をも含み得る。少なくとも1つの実施例では、実行ユニット808は、パック命令セット809に対処するための論理を含み得る。少なくとも1つの実施例では、パック命令セット809を、命令を実行するための関連する回路要素とともに汎用プロセッサの命令セットに含めることによって、多くのマルチメディア・アプリケーションによって使用される演算が、プロセッサ802中のパック・データを使用して実施され得る。少なくとも1つの実施例では、多くのマルチメディア・アプリケーションが、パック・データの演算を実施するためにプロセッサのデータ・バスの全幅を使用することによって加速され、より効率的に実行され得、これは、一度に1つのデータ要素ずつ1つ又は複数の演算を実施するために、そのプロセッサのデータ・バスにわたってより小さい単位のデータを転送する必要をなくし得る。
少なくとも1つの実施例では、実行ユニット808はまた、マイクロコントローラ、組み込みプロセッサ、グラフィックス・デバイス、DSP、及び他のタイプの論理回路において使用され得る。少なくとも1つの実施例では、コンピュータ・システム800は、限定はしないが、メモリ820を含み得る。少なくとも1つの実施例では、メモリ820は、ダイナミック・ランダム・アクセス・メモリ(「DRAM」)デバイス、スタティック・ランダム・アクセス・メモリ(「SRAM」)デバイス、フラッシュ・メモリ・デバイス、又は他のメモリ・デバイスであり得る。少なくとも1つの実施例では、メモリ820は、プロセッサ802によって実行され得るデータ信号によって表される(1つ又は複数の)命令819及び/又はデータ821を記憶し得る。
少なくとも1つの実施例では、システム論理チップが、プロセッサ・バス810及びメモリ820に結合され得る。少なくとも1つの実施例では、システム論理チップは、限定はしないが、メモリ・コントローラ・ハブ(「MCH」:memory controller hub)816を含み得、プロセッサ802は、プロセッサ・バス810を介してMCH816と通信し得る。少なくとも1つの実施例では、MCH816は、命令及びデータ・ストレージのための、並びにグラフィックス・コマンド、データ及びテクスチャのストレージのための、高帯域幅メモリ経路818をメモリ820に提供し得る。少なくとも1つの実施例では、MCH816は、プロセッサ802と、メモリ820と、コンピュータ・システム800中の他の構成要素との間でデータ信号をダイレクトし、プロセッサ・バス810と、メモリ820と、システムI/Oインターフェース822との間でデータ信号をブリッジし得る。少なくとも1つの実施例では、システム論理チップは、グラフィックス・コントローラに結合するためのグラフィックス・ポートを提供し得る。少なくとも1つの実施例では、MCH816は、高帯域幅メモリ経路818を通してメモリ820に結合され得、グラフィックス/ビデオ・カード812は、アクセラレーテッド・グラフィックス・ポート(「AGP」:Accelerated Graphics Port)相互接続814を通してMCH816に結合され得る。
少なくとも1つの実施例では、コンピュータ・システム800は、MCH816をI/Oコントローラ・ハブ(「ICH」:I/O controller hub)830に結合するためのプロプライエタリ・ハブ・インターフェース・バスとしてシステムI/Oインターフェース822を使用し得る。少なくとも1つの実施例では、ICH830は、ローカルI/Oバスを介していくつかのI/Oデバイスに直接接続を提供し得る。少なくとも1つの実施例では、ローカルI/Oバスは、限定はしないが、周辺機器をメモリ820、チップセット、及びプロセッサ802に接続するための高速I/Oバスを含み得る。実例は、限定はしないが、オーディオ・コントローラ829と、ファームウェア・ハブ(「フラッシュBIOS」)828と、ワイヤレス・トランシーバ826と、データ・ストレージ824と、ユーザ入力及びキーボード・インターフェース825を含んでいるレガシーI/Oコントローラ823と、USBポートなどのシリアル拡張ポート827と、ネットワーク・コントローラ834とを含み得る。少なくとも1つの実施例では、データ・ストレージ824は、ハード・ディスク・ドライブ、フロッピー・ディスク・ドライブ、CD-ROMデバイス、フラッシュ・メモリ・デバイス、又は他の大容量ストレージ・デバイスを備え得る。
少なくとも1つの実施例では、図8は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、他の実施例では、図8は、例示的なSoCを示し得る。少なくとも1つの実施例では、図8に示されているデバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)又はそれらの何らかの組合せで相互接続され得る。少なくとも1つの実施例では、コンピュータ・システム800の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL:compute express link)相互接続を使用して相互接続される。
カメラ画像圧縮/復元構成要素115は、1つ又は複数の実施例によれば、画像信号処理(ISP)における高ダイナミック・レンジ(HDR)画像のための圧縮及び/又は復元方式を提供するために使用され得る。カメラ画像圧縮/復元構成要素115に関する詳細は、図1と併せて本明細書で提供される。少なくとも1つの実施例では、カメラ画像圧縮/復元構成要素115は、本明細書で説明されるHDR画像の圧縮及び/又は復元を実施するために、図8のシステムにおいて使用され得る。
図9は、少なくとも1つの実施例による、プロセッサ910を利用するための電子デバイス900を示すブロック図である。少なくとも1つの実施例では、電子デバイス900は、たとえば、限定はしないが、ノートブック、タワー・サーバ、ラック・サーバ、ブレード・サーバ、ラップトップ、デスクトップ、タブレット、モバイル・デバイス、電話、組み込みコンピュータ、又は任意の他の好適な電子デバイスであり得る。
少なくとも1つの実施例では、電子デバイス900は、限定はしないが、任意の好適な数又は種類の構成要素、周辺機器、モジュール、又はデバイスに通信可能に結合されたプロセッサ910を含み得る。少なくとも1つの実施例では、プロセッサ910は、ICバス、システム管理バス(「SMBus」:System Management Bus)、ロー・ピン・カウント(LPC:Low Pin Count)バス、シリアル周辺インターフェース(「SPI」:Serial Peripheral Interface)、高精細度オーディオ(「HDA」:High Definition Audio)バス、シリアル・アドバンス・テクノロジー・アタッチメント(「SATA」:Serial Advance Technology Attachment)バス、ユニバーサル・シリアル・バス(「USB」)(バージョン1、2、3など)、又はユニバーサル非同期受信機/送信機(「UART」:Universal Asynchronous Receiver/Transmitter)バスなど、バス又はインターフェースを使用して結合される。少なくとも1つの実施例では、図9は、相互接続されたハードウェア・デバイス又は「チップ」を含むシステムを示すが、他の実施例では、図9は、例示的なSoCを示し得る。少なくとも1つの実施例では、図9に示されているデバイスは、プロプライエタリ相互接続、標準相互接続(たとえば、PCIe)又はそれらの何らかの組合せで相互接続され得る。少なくとも1つの実施例では、図9の1つ又は複数の構成要素は、コンピュート・エクスプレス・リンク(CXL)相互接続を使用して相互接続される。
少なくとも1つの実施例では、図9は、ディスプレイ924、タッチ・スクリーン925、タッチ・パッド930、ニア・フィールド通信ユニット(「NFC」:Near Field Communication)945、センサ・ハブ940、熱センサ946、エクスプレス・チップセット(「EC」:Express Chipset)935、トラステッド・プラットフォーム・モジュール(「TPM」:Trusted Platform Module)938、BIOS/ファームウェア/フラッシュ・メモリ(「BIOS、FWフラッシュ」:BIOS/firmware/flash memory)922、DSP960、ソリッド・ステート・ディスク(「SSD」:Solid State Disk)又はハード・ディスク・ドライブ(「HDD」:Hard Disk Drive)などのドライブ920、ワイヤレス・ローカル・エリア・ネットワーク・ユニット(「WLAN」:wireless local area network)950、Bluetoothユニット952、ワイヤレス・ワイド・エリア・ネットワーク・ユニット(「WWAN」:Wireless Wide Area Network)956、全地球測位システム(GPS:Global Positioning System)ユニット955、USB3.0カメラなどのカメラ(「USB3.0カメラ」)954、及び/或いは、たとえばLPDDR3規格において実装された低電力ダブル・データ・レート(「LPDDR」:Low Power Double Data Rate)メモリ・ユニット(「LPDDR3」)915を含み得る。これらの構成要素は、各々、任意の好適な様式で実装され得る。
少なくとも1つの実施例では、本明細書で説明される構成要素を通して、他の構成要素がプロセッサ910に通信可能に結合され得る。少なくとも1つの実施例では、加速度計941と、周囲光センサ(「ALS」:Ambient Light Sensor)942と、コンパス943と、ジャイロスコープ944とが、センサ・ハブ940に通信可能に結合され得る。少なくとも1つの実施例では、熱センサ939と、ファン937と、キーボード936と、タッチ・パッド930とが、EC935に通信可能に結合され得る。少なくとも1つの実施例では、スピーカー963と、ヘッドフォン964と、マイクロフォン(「mic」)965とが、オーディオ・ユニット(「オーディオ・コーデック及びクラスDアンプ」)962に通信可能に結合され得、オーディオ・ユニット962は、DSP960に通信可能に結合され得る。少なくとも1つの実施例では、オーディオ・ユニット962は、たとえば、限定はしないが、オーディオ・コーダ/デコーダ(「コーデック」)及びクラスD増幅器を含み得る。少なくとも1つの実施例では、SIMカード(「SIM」)957は、WWANユニット956に通信可能に結合され得る。少なくとも1つの実施例では、WLANユニット950及びBluetoothユニット952などの構成要素、並びにWWANユニット956は、次世代フォーム・ファクタ(「NGFF」:Next Generation Form Factor)において実装され得る。
カメラ画像圧縮/復元構成要素115は、1つ又は複数の実施例によれば、画像信号処理(ISP)における高ダイナミック・レンジ(HDR)画像のための圧縮及び/又は復元方式を提供するために使用され得る。カメラ画像圧縮/復元構成要素115に関する詳細は、図1と併せて本明細書で提供される。少なくとも1つの実施例では、カメラ画像圧縮/復元構成要素115は、本明細書で説明されるHDR画像の圧縮及び/又は復元を実施するために、図9のシステムにおいて使用され得る。
図10は、少なくとも1つの実施例による、処理システムのブロック図である。少なくとも1つの実施例では、システム1000は、1つ又は複数のプロセッサ1002と1つ又は複数のグラフィックス・プロセッサ1008とを含み、単一プロセッサ・デスクトップ・システム、マルチプロセッサ・ワークステーション・システム、或いは多数のプロセッサ1002又はプロセッサ・コア1007を有するサーバ・システムであり得る。少なくとも1つの実施例では、システム1000は、モバイル・デバイス、ハンドヘルド・デバイス、又は組み込みデバイスにおいて使用するためのシステム・オン・チップ(SoC)集積回路内に組み込まれた処理プラットフォームである。
少なくとも1つの実施例では、システム1000は、サーバ・ベースのゲーミング・プラットフォーム、ゲーム及びメディア・コンソールを含むゲーム・コンソール、モバイル・ゲーミング・コンソール、ハンドヘルド・ゲーム・コンソール、又はオンライン・ゲーム・コンソールを含むことができるか、或いはそれらの内部に組み込まれ得る。少なくとも1つの実施例では、システム1000は、モバイル・フォン、スマート・フォン、タブレット・コンピューティング・デバイス又はモバイル・インターネット・デバイスである。少なくとも1つの実施例では、処理システム1000はまた、スマート・ウォッチ・ウェアラブル・デバイス、スマート・アイウェア・デバイス、拡張現実デバイス、又は仮想現実デバイスなどのウェアラブル・デバイスを含むことができるか、それらと結合することができるか、又はそれらの内部に組み込まれ得る。少なくとも1つの実施例では、処理システム1000は、1つ又は複数のプロセッサ1002と、1つ又は複数のグラフィックス・プロセッサ1008によって生成されるグラフィカル・インターフェースとを有するテレビ又はセット・トップ・ボックス・デバイスである。
少なくとも1つの実施例では、1つ又は複数のプロセッサ1002は、各々、実行されたときにシステム及びユーザ・ソフトウェアのための動作を実施する命令を処理するための1つ又は複数のプロセッサ・コア1007を含む。少なくとも1つの実施例では、1つ又は複数のプロセッサ・コア1007の各々は、特定の命令シーケンス1009を処理するように構成される。少なくとも1つの実施例では、命令シーケンス1009は、複合命令セット・コンピューティング(CISC:Complex Instruction Set Computing)、縮小命令セット・コンピューティング(RISC)、又は超長命令語(VLIW)を介したコンピューティングを容易にし得る。少なくとも1つの実施例では、プロセッサ・コア1007は、各々、異なる命令シーケンス1009を処理し得、命令シーケンス1009は、他の命令シーケンスのエミュレーションを容易にするための命令を含み得る。少なくとも1つの実施例では、プロセッサ・コア1007はまた、デジタル信号プロセッサ(DSP)などの他の処理デバイスを含み得る。
少なくとも1つの実施例では、プロセッサ1002はキャッシュ・メモリ1004を含む。少なくとも1つの実施例では、プロセッサ1002は、単一の内部キャッシュ又は複数のレベルの内部キャッシュを有することができる。少なくとも1つの実施例では、キャッシュ・メモリは、プロセッサ1002の様々な構成要素の間で共有される。少なくとも1つの実施例では、プロセッサ1002はまた、外部キャッシュ(たとえば、レベル3(L3)キャッシュ又はラスト・レベル・キャッシュ(LLC:Last Level Cache))(図示せず)を使用し、外部キャッシュは、知られているキャッシュ・コヒーレンシ技法を使用してプロセッサ・コア1007の間で共有され得る。少なくとも1つの実施例では、追加として、レジスタ・ファイル1006がプロセッサ1002中に含まれ、レジスタ・ファイル1006は、異なるタイプのデータを記憶するための異なるタイプのレジスタ(たとえば、整数レジスタ、浮動小数点レジスタ、ステータス・レジスタ、及び命令ポインタ・レジスタ)を含み得る。少なくとも1つの実施例では、レジスタ・ファイル1006は、汎用レジスタ又は他のレジスタを含み得る。
少なくとも1つの実施例では、1つ又は複数のプロセッサ1002は、アドレス、データ、又は制御信号などの通信信号を、プロセッサ1002とシステム1000中の他の構成要素との間で送信するために、1つ又は複数のインターフェース・バス1010と結合される。少なくとも1つの実施例では、インターフェース・バス1010は、ダイレクト・メディア・インターフェース(DMI:Direct Media Interface)バスのバージョンなどのプロセッサ・バスであり得る。少なくとも1つの実施例では、インターフェース・バス1010は、DMIバスに限定されず、1つ又は複数の周辺構成要素相互接続バス(たとえば、PCI、PCI Express)、メモリ・バス、又は他のタイプのインターフェース・バスを含み得る。少なくとも1つの実施例では、(1つ又は複数の)プロセッサ1002は、統合されたメモリ・コントローラ1016と、プラットフォーム・コントローラ・ハブ1030とを含む。少なくとも1つの実施例では、メモリ・コントローラ1016は、メモリ・デバイスとシステム1000の他の構成要素との間の通信を容易にし、プラットフォーム・コントローラ・ハブ(PCH:platform controller hub)1030は、ローカルI/Oバスを介してI/Oデバイスへの接続を提供する。
少なくとも1つの実施例では、メモリ・デバイス1020は、ダイナミック・ランダム・アクセス・メモリ(DRAM)デバイス、スタティック・ランダム・アクセス・メモリ(SRAM)デバイス、フラッシュ・メモリ・デバイス、相変化メモリ・デバイス、又はプロセス・メモリとして働くのに好適な性能を有する何らかの他のメモリ・デバイスであり得る。少なくとも1つの実施例では、メモリ・デバイス1020は、1つ又は複数のプロセッサ1002がアプリケーション又はプロセスを実行するときの使用のためのデータ1022及び命令1021を記憶するために、システム1000のためのシステム・メモリとして動作することができる。少なくとも1つの実施例では、メモリ・コントローラ1016はまた、随意の外部グラフィックス・プロセッサ1012と結合し、外部グラフィックス・プロセッサ1012は、グラフィックス動作及びメディア動作を実施するために、プロセッサ1002中の1つ又は複数のグラフィックス・プロセッサ1008と通信し得る。少なくとも1つの実施例では、ディスプレイ・デバイス1011は、(1つ又は複数の)プロセッサ1002に接続することができる。少なくとも1つの実施例では、ディスプレイ・デバイス1011は、モバイル電子デバイス又はラップトップ・デバイスの場合のような内部ディスプレイ・デバイス、或いは、ディスプレイ・インターフェース(たとえば、DisplayPortなど)を介して取り付けられた外部ディスプレイ・デバイスのうちの1つ又は複数を含むことができる。少なくとも1つの実施例では、ディスプレイ・デバイス1011は、仮想現実(VR)アプリケーション又は拡張現実(AR)アプリケーションにおいて使用するための立体ディスプレイ・デバイスなどの頭部装着型ディスプレイ(HMD:head mounted display)を含むことができる。
少なくとも1つの実施例では、プラットフォーム・コントローラ・ハブ1030は、周辺機器が高速I/Oバスを介してメモリ・デバイス1020及びプロセッサ1002に接続することを可能にする。少なくとも1つの実施例では、I/O周辺機器は、限定はしないが、オーディオ・コントローラ1046と、ネットワーク・コントローラ1034と、ファームウェア・インターフェース1028と、ワイヤレス・トランシーバ1026と、タッチ・センサ1025と、データ・ストレージ・デバイス1024(たとえば、ハード・ディスク・ドライブ、フラッシュ・メモリなど)とを含む。少なくとも1つの実施例では、データ・ストレージ・デバイス1024は、ストレージ・インターフェース(たとえば、SATA)を介して、又は周辺構成要素相互接続バス(たとえば、PCI、PCI Express)などの周辺バスを介して、接続することができる。少なくとも1つの実施例では、タッチ・センサ1025は、タッチ・スクリーン・センサ、圧力センサ、又は指紋センサを含むことができる。少なくとも1つの実施例では、ワイヤレス・トランシーバ1026は、Wi-Fiトランシーバ、Bluetoothトランシーバ、或いは3G、4G、又はロング・ターム・エボリューション(LTE)トランシーバなどのモバイル・ネットワーク・トランシーバであり得る。少なくとも1つの実施例では、ファームウェア・インターフェース1028は、システム・ファームウェアとの通信を可能にし、たとえば、ユニファイド・エクステンシブル・ファームウェア・インターフェース(UEFI:unified extensible firmware interface)であり得る。少なくとも1つの実施例では、ネットワーク・コントローラ1034は、ワイヤード・ネットワークへのネットワーク接続を可能にすることができる。少なくとも1つの実施例では、高性能ネットワーク・コントローラ(図示せず)は、インターフェース・バス1010と結合する。少なくとも1つの実施例では、オーディオ・コントローラ1046は、マルチチャネル高精細度オーディオ・コントローラである。少なくとも1つの実施例では、システム1000は、レガシー(たとえば、パーソナル・システム2(PS/2:Personal System 2))デバイスをシステム1000に結合するための随意のレガシーI/Oコントローラ1040を含む。少なくとも1つの実施例では、プラットフォーム・コントローラ・ハブ1030は、キーボードとマウス1043との組合せ、カメラ1044、又は他のUSB入力デバイスなど、1つ又は複数のユニバーサル・シリアル・バス(USB)コントローラ1042接続入力デバイスにも接続することができる。
少なくとも1つの実施例では、メモリ・コントローラ1016及びプラットフォーム・コントローラ・ハブ1030のインスタンスが、外部グラフィックス・プロセッサ1012などの慎重な外部グラフィックス・プロセッサに組み込まれ得る。少なくとも1つの実施例では、プラットフォーム・コントローラ・ハブ1030及び/又はメモリ・コントローラ1016は、1つ又は複数のプロセッサ1002の外部にあり得る。たとえば、少なくとも1つの実施例では、システム1000は、外部のメモリ・コントローラ1016とプラットフォーム・コントローラ・ハブ1030とを含むことができ、それらは、(1つ又は複数の)プロセッサ1002と通信しているシステム・チップセット内のメモリ・コントローラ・ハブ及び周辺コントローラ・ハブとして構成され得る。
カメラ画像圧縮構成要素115は、1つ又は複数の実施例によれば、画像信号処理(ISP)における高ダイナミック・レンジ(HDR)画像のための圧縮及び/又は復元方式を提供するために使用される。カメラ画像圧縮構成要素115に関する詳細は、図1と併せて本明細書で提供される。少なくとも1つの実施例では、カメラ画像圧縮構成要素115は、本明細書で説明されるHDR画像の圧縮及び/又は復元を実施するために、システム1000において使用され得る。
他の変形形態は、本開示の範囲内にある。したがって、開示される技法は、様々な修正及び代替構築が可能であるが、それらのいくつかの例示的な実施例が図面に示され、上記で詳細に説明された。しかしながら、特定の1つ又は複数の開示された形態に本開示を限定する意図はなく、その反対に、添付の特許請求の範囲において定義されるように、開示の趣旨及び範囲に入るすべての修正形態、代替構築、及び等価物を網羅することを意図していることが理解されるべきである。
開示される実施例を説明する文脈において(特に、以下の特許請求の範囲の文脈において)「a」及び「an」及び「the」という用語、並びに同様の指示語を使用することは、本明細書に別段の記載のない限り、又は文脈によって明らかに否定されない限り、単数と複数の両方を網羅すると解釈されるべきであり、用語の定義であると解釈されるべきではない。「含む、備える(comprising)」、「有する(having)」、「含む(including)」、「含んでいる(containing)」という用語は、別段の記載のない限り、オープンエンドの用語(「限定はしないが、~を含む(including, but not limited to,)」を意味する)と解釈されるべきである。「接続される」は、修飾されず、物理的接続を指しているとき、何か介在するものがある場合でも、部分的に又は完全に中に含まれているか、取り付けられるか、又は互いに接合されるものとして解釈されるべきである。本明細書で値の範囲を詳述することは、本明細書に別段の記載のない限り、及び各別個の値が、本明細書に個々に詳述されているかのように明細書に組み込まれていない限り、範囲内に入る各別個の値を個々に参照する簡潔な方法として働くことを単に意図しているにすぎない。少なくとも1つの実施例では、「セット」(たとえば、「項目のセット」)又は「サブセット」という用語の使用は、文脈によって別段の記載がないか又は否定されない限り、1つ又は複数の部材を備える空ではない集合として解釈されるべきである。さらに、文脈によって別段の記載がないか又は否定されない限り、対応するセットの「サブセット」という用語は、対応するセットの厳密なサブセットを必ずしも指すとは限らず、サブセットと、対応するセットとは、等しくなり得る。
「A、B、及びCのうちの少なくとも1つ」又は「A、B及びCのうちの少なくとも1つ」という形態の言い回しなどの結合語は、別段の具体的な記載がないか又はさもなければ文脈によって明確に否定されない限り、別様に、項目、用語などが、A又はB又はCのいずれか、或いはAとBとCとのセットの任意の空でないサブセットであり得ることを提示するために一般に使用される文脈で、理解される。たとえば、3つの部材を有するセットの説明的な実例では、「A、B、及びCのうちの少なくとも1つ」並びに「A、B及びCのうちの少なくとも1つ」という結合句は、次のセットのいずれかを指す:{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}。したがって、そのような結合語は、いくつかの実施例が、Aのうちの少なくとも1つ、Bのうちの少なくとも1つ、及びCのうちの少なくとも1つの各々が存在することを必要とすることを全体的に暗示するものではない。さらに、別段の記載がないか又は文脈によって否定されない限り、「複数(plurality)」という用語は、複数である状態を示す(たとえば、「複数の項目(a plurality of items)」は複数の項目(multiple items)を示す)。少なくとも1つの実施例では、複数である項目の数は、少なくとも2つであるが、明示的に、又は文脈によってのいずれかでそのように示されているとき、それよりも多いことがある。さらに、別段の記載がないか又はさもなければ文脈から明らかでない限り、「~に基づいて」という言い回しは、「少なくとも部分的に~に基づいて」を意味し、「~のみに基づいて」を意味しない。
本明細書で説明されるプロセスの動作は、本明細書に別段の記載がないか又はさもなければ文脈によって明確に否定されない限り、任意の好適な順序で実施され得る。少なくとも1つの実施例では、本明細書で説明されるプロセス(又はその変形及び/又は組合せ)などのプロセスは、実行可能命令で構成された1つ又は複数のコンピュータ・システムの制御下で実施され、1つ又は複数のプロセッサ上で、ハードウェアによって、又はそれらの組合せによって集合的に実行するコード(たとえば、実行可能命令、1つ又は複数のコンピュータ・プログラム、又は1つ又は複数のアプリケーション)として実装される。少なくとも1つの実施例では、コードは、たとえば、1つ又は複数のプロセッサによって実行可能な複数の命令を備えるコンピュータ・プログラムの形態で、コンピュータ可読記憶媒体に記憶される。少なくとも1つの実施例では、コンピュータ可読記憶媒体は、一時的信号(たとえば、伝搬する一時的な電気又は電磁送信)を除外するが、一時的信号のトランシーバ内の非一時的データ・ストレージ回路要素(たとえば、バッファ、キャッシュ、及びキュー)を含む非一時的コンピュータ可読記憶媒体である。少なくとも1つの実施例では、コード(たとえば、実行可能コード又はソース・コード)は、1つ又は複数の非一時的コンピュータ可読記憶媒体のセットに記憶され、この記憶媒体は、コンピュータ・システムの1つ又は複数のプロセッサによって実行されたときに(すなわち、実行された結果として)、コンピュータ・システムに本明細書で説明される動作を実施させる実行可能命令を記憶している(又は、実行可能命令を記憶するための他のメモリを有する)。少なくとも1つの実施例では、非一時的コンピュータ可読記憶媒体のセットは、複数の非一時的コンピュータ可読記憶媒体を備え、複数の非一時的コンピュータ可読記憶媒体の個々の非一時的記憶媒体のうちの1つ又は複数は、コードのすべてがないが、複数の非一時的コンピュータ可読記憶媒体は、集合的にコードのすべてを記憶している。少なくとも1つの実施例では、実行可能命令は、異なる命令が異なるプロセッサによって実行されるように実行され、たとえば、非一時的コンピュータ可読記憶媒体は命令を記憶し、メイン中央処理ユニット(「CPU」)は命令のいくつかを実行し、グラフィックス処理ユニット(「GPU」)は他の命令を実行する。少なくとも1つの実施例では、コンピュータ・システムの異なる構成要素は、別個のプロセッサを有し、異なるプロセッサが命令の異なるサブセットを実行する。
したがって、少なくとも1つの実施例では、コンピュータ・システムは、本明細書で説明されるプロセスの動作を単独で又は集合的に実施する1つ又は複数のサービスを実装するように構成され、そのようなコンピュータ・システムは、動作の実施を可能にする適用可能なハードウェア及び/又はソフトウェアで構成される。さらに、本開示の少なくとも1つの実施例を実装するコンピュータ・システムは、単一のデバイスであり、別の実施例では、分散型コンピュータ・システムが本明細書で説明される動作を実施するように、及び単一のデバイスがすべての動作を実施しないように、異なるやり方で動作する複数のデバイスを備える分散型コンピュータ・システムである。
本明細書で提供されるあらゆる実例、又は例示的な言葉(たとえば、「など、などの(such as)」)の使用は、本開示の実施例をより明らかにすることのみを意図しており、別段の主張のない限り、本開示の範囲に制限を加えるものではない。本明細書のいかなる言葉も、特許請求されていない任意の要素を、本開示の実践に不可欠なものとして示すと解釈されるべきではない。
本明細書で引用される出版物、特許出願、及び特許を含むすべての参考文献は、各参考文献が参照により組み込まれることが個別に明確に示され、その全体が本明細書に記載されたかのように、それと同程度まで参照により本明細書に組み込まれる。
明細書及び特許請求の範囲において、「結合される」及び「接続される」という用語が、その派生語とともに使用され得る。これらの用語は、互いに同義語として意図されていないことがあることが理解されるべきである。むしろ、特定の実例では、「接続される」又は「結合される」は、2つ又はそれ以上の要素が物理的又は電気的に互いに直接又は間接的に接触していることを示すために使用され得る。「結合される」はまた、2つ又はそれ以上の要素が直接互いに接触していないが、それでもなお互いに連動又は対話することを意味し得る。
別段の具体的な記載がない限り、明細書全体を通して、「処理する(processing)」、「算出する(computing)」、「計算する(calculating)」、又は「決定する(determining)」などの用語は、コンピューティング・システムのレジスタ及び/又はメモリ内の、電子的などの物理的な量として表されるデータを、コンピューティング・システムのメモリ、レジスタ又は他のそのような情報ストレージ、送信、若しくはディスプレイ・デバイス内の物理的な量として同様に表される他のデータになるように操作及び/又は変換する、コンピュータ又はコンピューティング・システム、或いは同様の電子コンピューティング・デバイスのアクション及び/又はプロセスを指すことが諒解され得る。
同様に、「プロセッサ」という用語は、レジスタ及び/又はメモリからの電子データを処理し、その電子データを、レジスタ及び/又はメモリに記憶され得る他の電子データに変換する任意のデバイス、又はデバイスの一部分を指し得る。非限定的な実例として、「プロセッサ」は、CPU又はGPUであり得る。「コンピューティング・プラットフォーム」は、1つ又は複数のプロセッサを備え得る。本明細書で使用される「ソフトウェア」プロセスは、たとえば、タスク、スレッド、及び知的エージェントなど、経時的にワークを実施するソフトウェア及び/又はハードウェア・エンティティを含み得る。また、各プロセスは、命令を直列で又は並列で、連続的に又は断続的に行うための複数のプロセスを指し得る。少なくとも1つの実施例では、「システム」及び「方法」という用語は、1つ又は複数の方法をシステムが具体化し得、方法がシステムと考えられ得る場合に限り、本明細書において交換可能に使用される。
本明細書では、アナログ・データ又はデジタル・データを取得すること、獲得すること、受信すること、或いはそれらをサブシステム、コンピュータ・システム、又はコンピュータ実装機械に入力することに言及し得る。少なくとも1つの実施例では、アナログ・データ及びデジタル・データを取得する、獲得する、受信する、又は入力するプロセスは、関数コール、又はアプリケーション・プログラミング・インターフェースへのコールのパラメータとしてデータを受信することによってなど、様々なやり方で実現され得る。少なくとも1つの実施例では、アナログ・データ又はデジタル・データを取得する、獲得する、受信する、又は入力するプロセスは、直列又は並列インターフェースを介してデータを転送することによって実現され得る。少なくとも1つの実施例では、アナログ・データ又はデジタル・データを取得する、獲得する、受信する、又は入力するプロセスは、提供するエンティティから獲得するエンティティにコンピュータ・ネットワークを介してデータを転送することによって実現され得る。少なくとも1つの実施例では、アナログ・データ又はデジタル・データを提供すること、出力すること、送信すること、送出すること、又は提示することにも言及し得る。様々な実例では、アナログ・データ又はデジタル・データを提供する、出力する、送信する、送出する、又は提示するプロセスは、関数コールの入力又は出力パラメータ、アプリケーション・プログラミング・インターフェース又はプロセス間通信機構のパラメータとしてデータを転送することによって実現され得る。
本明細書の説明は、説明された技法の例示的な実装形態について述べているが、他のアーキテクチャが、説明された機能性を実装するために使用され得、本開示の範囲内にあることが意図される。さらに、説明を目的として、責任の具体的な分散が上記で定義され得るが、様々な機能及び責任は、状況に応じて異なるやり方で分散及び分割され得る。
さらに、主題は、構造的特徴及び/又は方法論的行為に特有の言語で説明されたが、添付の特許請求の範囲で特許請求される主題は、説明された特有の特徴又は行為に必ずしも限定されるとは限らないことが理解されるべきである。むしろ、特有の特徴及び行為は、特許請求の範囲を実装する例示的な形態として開示される。

Claims (25)

  1. 画像信号処理(ISP)パイプラインに関連する1つ又は複数のプロセッサにおいて、画像センサによって生成され、前記画像センサに関連する第1のビット深度においてキャプチャされた画像を受信するステップであって、前記画像が、前記第1のビット深度よりも低い第2のビット深度に圧縮され、前記ISPが、前記第1のビット深度よりも低く、前記第2のビット深度よりも高い、第3のビット深度に関連する、ステップと、
    前記第3のビット深度を有する部分的に復元された画像を生成するために、電力曲線に従って、前記圧縮された画像を復元するステップであって、前記部分的に復元された画像の複数の領域が、前記複数の領域の各領域の対応するピクセル値に基づいて少なくとも2つの復元レベルに復元される、ステップと
    を含む、方法。
  2. 前記電力曲線が、ピクセル値しきい値を下回るピクセル値を線形的に処理するための、前記ピクセル値しきい値に延びる線形セグメントを含み、前記電力曲線の前記線形セグメントに基づいてピクセル値を処理することが、前記ピクセル値の信号対ノイズ比(SNR)を保持するために前記ピクセル値の圧縮された状態を回避することを含む、請求項1に記載の方法。
  3. 前記電力曲線に従って、前記圧縮された画像を前記復元するステップが、前記圧縮された画像の色比を保持し、前記圧縮された画像についての信号対ノイズ比を、信号対ノイズ比しきい値を下回るように維持する、請求項1に記載の方法。
  4. 前記電力曲線が区分的線形(PWL)スプライン関数に対応し、前記PWLスプライン関数が複数のニー・ポイントを含む、請求項1に記載の方法。
  5. 曲線当てはめ技法を使用して前記複数の前記ニー・ポイントに基づいて前記電力曲線を決定するステップ
    をさらに含む、請求項4に記載の方法。
  6. 前記圧縮された画像を復元するステップが、
    第1のピクセル値を有する前記圧縮された画像の第1の領域に第1の復元量を適用するステップと、
    より高い第2のピクセル値を有する前記圧縮された画像の第2の領域に第2の復元量を適用するステップと
    をさらに含み、復元後、前記第2の領域が、前記第1の領域よりも大きい残差圧縮を有する、請求項1に記載の方法。
  7. 前記第1の領域の前記第1のピクセル値が前記第1の領域の第1のルミナンス値に対応し、前記第2の領域の前記第2のピクセル値が前記第2の領域の第2のルミナンス値に対応し、前記第2のルミナンス値が前記第1のルミナンス値よりも高い、請求項6に記載の方法。
  8. 前記画像を前記第1のビット深度から前記第2のビット深度に圧縮するために、前記画像センサが、
    前記電力曲線又は第2の電力曲線に従って、第1のピクセル値を有するキャプチャされた画像の第1の領域に第1の圧縮量を適用することと、
    前記電力曲線又は前記第2の電力曲線に従って、より高い第2のピクセル値を有する前記キャプチャされた画像の第2の部分に第2の圧縮量を適用することと
    を行うことになり、前記第1の圧縮量が前記第2の圧縮量よりも低い、請求項1に記載の方法。
  9. 前記画像を前記第1のビット深度から前記第2のビット深度に圧縮するために、前記画像センサが、前記電力曲線又は前記第2の電力曲線に関連する区分的線形(PWL)スプライン関数を使用することになり、前記PWLスプライン関数が複数のニー・ポイントを含む、請求項8に記載の方法。
  10. 前記画像センサが、曲線当てはめ技法を使用して前記複数の前記ニー・ポイントに基づいて前記電力曲線又は前記第2の電力曲線を決定することになる、請求項9に記載の方法。
  11. メモリ・デバイスと、
    カメラのセンサに関連する第1のビット深度を決定することと、
    前記カメラに関連する画像信号処理(ISP)パイプラインに関連する第2のビット深度を決定することと、
    前記第1のビット深度が前記第2のビット深度とは異なると決定したことに応答して、
    前記カメラの前記センサによって生成された圧縮された画像に関連する第3のビット深度を決定することと、
    前記第3のビット深度と前記ISPの前記第2のビット深度とに基づいて、前記カメラの前記センサの区分的線形(PWL)スプライン関数に対応する複数のニー・ポイントを決定することと、
    前記第2のビット深度を有する部分的に復元された画像を生成するために、前記圧縮された画像を復元するために使用されるべき電力曲線を決定することと
    を行うための、前記メモリ・デバイスに動作可能に結合された処理デバイスと
    を備えるシステム。
  12. 前記部分的に復元された画像の複数の領域が、前記圧縮された画像の色比を保持し、前記圧縮された画像についての信号対ノイズ比を、信号対ノイズ比しきい値を下回るように維持する様式で、前記複数の領域の各領域の対応するピクセル値に基づいて別個の復元レベルにおいて復元される、請求項11に記載のシステム。
  13. 前記電力曲線が、ピクセル値しきい値を下回るピクセル値を処理するための線形セグメントを含み、前記線形セグメントが、低光条件のための色比及び信号対ノイズ比を保持する、請求項11に記載のシステム。
  14. 前記圧縮された画像が、前記センサに関連する前記第1のビット深度においてキャプチャされ、前記第1のビット深度よりも低い前記第3のビット深度に圧縮され、前記ISPの前記第2のビット深度が、前記第1のビット深度よりも低く、前記第3のビット深度よりも高い、請求項11に記載のシステム。
  15. 前記圧縮された画像を復元するために、前記処理デバイスが、さらに、
    第1のピクセル値を有する前記圧縮された画像の第1の領域に第1の復元量を適用することと、
    より高い第2のピクセル値を有する前記圧縮された画像の第2の領域に第2の復元量を適用することと
    を行うためのものであり、復元後、前記第2の領域が、前記第1の領域よりも大きい圧縮を有する、請求項11に記載のシステム。
  16. メモリと、
    画像信号処理(ISP)パイプラインに関連する1つ又は複数のプロセッサにおいて、画像センサによって生成された圧縮された画像を受信することであって、前記圧縮された画像が、前記画像センサに関連する第1のビット深度においてキャプチャされ、前記第1のビット深度よりも低い第2のビット深度に圧縮され、前記ISPが、前記第1のビット深度よりも低く、前記第2のビット深度よりも高い、第3のビット深度に関連する、受信することと、
    前記第3のビット深度を有する部分的に復元された画像を生成するために、電力曲線に従って、前記圧縮された画像を復元することであって、前記部分的に復元された画像の複数の領域が、前記複数の領域の各領域の対応するピクセル値に基づいて別個の復元レベルにおいて復元される、復元することと
    を含む動作を実施するための、前記メモリに動作可能に結合された1つ又は複数のプロセッサと
    を備える電子デバイス。
  17. 前記電力曲線が、ピクセル値しきい値を下回るピクセル値を線形的に処理するための、前記ピクセル値しきい値に延びる線形セグメントを含む、請求項16に記載の電子デバイス。
  18. 前記電力曲線の前記線形セグメントに基づいてピクセル値を処理することが、前記ピクセル値の信号対ノイズ比(SNR)を保持するために前記ピクセル値の圧縮された状態を回避することを含む、請求項17に記載の電子デバイス。
  19. 前記電力曲線が区分的線形(PWL)スプライン関数に対応し、前記PWLスプライン関数が複数のニー・ポイントを含む、請求項16に記載の電子デバイス。
  20. 前記1つ又は複数のプロセッサが、さらに、
    曲線当てはめ技法を使用して前記複数の前記ニー・ポイントに基づいて前記電力曲線を決定すること
    をさらに含むさらなる動作を実施するためのものである、請求項19に記載の電子デバイス。
  21. 前記圧縮された画像を復元することが、
    第1のピクセル値を有する前記圧縮された画像の第1の領域に第1の復元量を適用することと、
    より高い第2のピクセル値を有する前記圧縮された画像の第2の領域に第2の復元量を適用することと
    をさらに含み、復元後、前記第2の領域が、前記第1の領域よりも大きい残差圧縮を有する、請求項16に記載の電子デバイス。
  22. 前記第1の領域の前記第1のピクセル値が前記第1の領域の第1のルミナンス値に対応し、前記第2の領域の前記第2のピクセル値が前記第2の領域の第2のルミナンス値に対応し、前記第2のルミナンス値が前記第1のルミナンス値よりも高い、請求項21に記載の電子デバイス。
  23. 前記圧縮された画像を前記第1のビット深度から前記第3のビット深度に圧縮するために、前記画像センサが、
    第1のピクセル値を有するキャプチャされた画像の第1の領域に第1の圧縮量を適用することと、
    より高い第2のピクセル値を有する前記キャプチャされた画像の第2の部分に第2の圧縮量を適用することと
    を行うことになり、前記第1の圧縮量が前記第2の圧縮量よりも低い、請求項16に記載の電子デバイス。
  24. 前記圧縮された画像を前記第1のビット深度から前記第3のビット深度に圧縮するために、前記画像センサが、前記電力曲線又は第2の電力曲線に関連する区分的線形(PWL)スプライン関数を使用することになり、前記PWLスプライン関数が複数のニー・ポイントを含む、請求項16に記載の電子デバイス。
  25. 前記画像センサが、曲線当てはめ技法を使用して前記複数の前記ニー・ポイントに基づいて前記電力曲線又は前記第2の電力曲線を決定することになる、請求項24に記載の電子デバイス。
JP2022090611A 2021-08-30 2022-06-03 高ダイナミック・レンジ・センサのための画像信号処理パイプライン Pending JP2023035822A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/461,750 US11582431B1 (en) 2021-08-30 2021-08-30 Image signal processing pipelines for high dynamic range sensors
US17/461,750 2021-08-30

Publications (1)

Publication Number Publication Date
JP2023035822A true JP2023035822A (ja) 2023-03-13

Family

ID=85175131

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022090611A Pending JP2023035822A (ja) 2021-08-30 2022-06-03 高ダイナミック・レンジ・センサのための画像信号処理パイプライン

Country Status (4)

Country Link
US (3) US11582431B1 (ja)
JP (1) JP2023035822A (ja)
CN (1) CN115734080A (ja)
DE (1) DE102022121021A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11587213B1 (en) * 2021-11-05 2023-02-21 GM Cruise Holdings LLC. Preserving dynamic range in images
US20230281770A1 (en) * 2022-03-04 2023-09-07 Wisconsin Alumni Research Foundation Systems, methods, and media for generating digital images using low bit depth image sensor data

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7349574B1 (en) * 2002-10-11 2008-03-25 Sensata Technologies, Inc. System and method for processing non-linear image data from a digital imager
US9538092B2 (en) * 2014-01-17 2017-01-03 Texas Instruments Incorporated Methods and apparatus to generate wide dynamic range images
WO2019036522A1 (en) 2017-08-15 2019-02-21 Dolby Laboratories Licensing Corporation EFFICIENT IMAGE PROCESSING IN BIT DEPTH
BR112021016388A2 (pt) 2019-03-19 2021-11-23 Intel Corp Método, sistema e pelo menos uma mídia legível por máquina

Also Published As

Publication number Publication date
US20230065993A1 (en) 2023-03-02
US11582431B1 (en) 2023-02-14
US20230141489A1 (en) 2023-05-11
DE102022121021A1 (de) 2023-03-02
US11917307B2 (en) 2024-02-27
US20240155253A1 (en) 2024-05-09
CN115734080A (zh) 2023-03-03

Similar Documents

Publication Publication Date Title
CN113139642B (zh) 在自主驾驶应用中使用神经网络执行故障检测
US20200302250A1 (en) Iterative spatial graph generation
US20200302612A1 (en) Shape fusion for image analysis
JP2022536030A (ja) ビデオ分析アプリケーションにおける相関フィルタを使用した複数物体追跡
WO2020190880A1 (en) Object detection using skewed polygons suitable for parking space detection
US11908104B2 (en) Weighted normalized automatic white balancing
US20230054759A1 (en) Object tracking using lidar data for autonomous machine applications
US11917307B2 (en) Image signal processing pipelines for high dynamic range sensors
US11803192B2 (en) Visual odometry in autonomous machine applications
CN115830486A (zh) 使用迁移学习训练对象检测模型
JP2023021910A (ja) 自律マシン・アプリケーションにおける距離画像マッピングのための信念伝搬
CN115480092A (zh) 自主机器应用中多个频率范围内的电压监测
CN115840438A (zh) 用于自主系统中的路径确定的安全性分解
WO2021258254A1 (en) Hybrid solution for stereo imaging
CN116772874A (zh) 用于自主系统和应用的使用占用网格进行危险检测
US20230186593A1 (en) Glare mitigation using image contrast analysis for autonomous systems and applications
JP2023071168A (ja) 自律マシン・アプリケーションのための粒子ベース危険検出
US11677839B2 (en) Automatic coalescing of GPU-initiated network communication
CN118055333A (zh) 用于自主系统和应用的图像处理管线中的延迟颜色校正
JP2023166308A (ja) 自律システム及びアプリケーションのためのrgb-irデータ処理
CN116500619A (zh) 用于汽车雷达感知的雷达信号采样