JP2023548748A - フレーム処理および/またはキャプチャ命令システムおよび技法 - Google Patents

フレーム処理および/またはキャプチャ命令システムおよび技法 Download PDF

Info

Publication number
JP2023548748A
JP2023548748A JP2023520217A JP2023520217A JP2023548748A JP 2023548748 A JP2023548748 A JP 2023548748A JP 2023520217 A JP2023520217 A JP 2023520217A JP 2023520217 A JP2023520217 A JP 2023520217A JP 2023548748 A JP2023548748 A JP 2023548748A
Authority
JP
Japan
Prior art keywords
frames
motion
frame
exposure
capture
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
JP2023520217A
Other languages
English (en)
Inventor
マーク・ギンツブルグ
ニール・ストラウス
ロン・ガイズマン
エラン・ピンハソフ
ユリ・ドルギン
ヴィクトル・ピント
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2023548748A publication Critical patent/JP2023548748A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/73Circuitry for compensating brightness variation in the scene by influencing the exposure time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/215Motion-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/61Control of cameras or camera modules based on recognised objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6812Motion detection based on additional sensors, e.g. acceleration sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/72Combination of two or more compensation controls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/741Circuitry for compensating brightness variation in the scene by increasing the dynamic range of the image compared to the dynamic range of the electronic image sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/743Bracketing, i.e. taking a series of images with varying exposure conditions
    • 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/81Camera processing pipelines; Components thereof for suppressing or minimising disturbance in the image signal generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/95Computational photography systems, e.g. light-field imaging systems
    • H04N23/951Computational photography systems, e.g. light-field imaging systems by using two or more images to influence resolution, frame rate or aspect ratio
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10141Special mode during image acquisition
    • G06T2207/10144Varying exposure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20208High dynamic range [HDR] image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Studio Devices (AREA)
  • Image Processing (AREA)

Abstract

1つまたは複数のフレームまたは画像を処理するための技法およびシステムが提供される。たとえば、1つまたは複数のフレームに対する露光を決定するためのプロセスは、1つまたは複数のフレームのための動きマップを取得することを含む。プロセスは、シーンの1つまたは複数のフレームに関連する動きを動きマップに基づいて決定することを含む。動きは、1つまたは複数のフレームをキャプチャするために使用されるカメラに対する、シーンの中での1つまたは複数の物体の移動に対応する。プロセスは、フレームの個数、およびその個数のフレームをキャプチャするための露光を、決定された動きに基づいて決定することを含む。プロセスは、決定された露光持続時間を使用してその個数のフレームをキャプチャするための要求を送ることをさらに含む。

Description

本出願は、フレーム処理および/またはキャプチャ命令システムおよび技法に関する。
カメラは、画像の様相を変えるために、様々な画像キャプチャおよび画像処理設定を用いて構成され得る。ISO、露光時間、開口サイズ、Fストップ、シャッタースピード、焦点、およびゲインなどの、いくつかのカメラ設定が、写真のキャプチャの前またはその間に決定および適用される。コントラスト、明るさ、飽和度、シャープネス、レベル、曲線、または色の改変などの、他のカメラ設定は、写真の後処理を構成することができる。画像センサの設定および/または画像信号プロセッサ(ISP:image signal processor)の設定を構成するために、ホストプロセッサ(HP:host processor)が使用され得る。画像が正しく処理されることを確実にするために、画像センサとISPとの間の設定の構成が同期されるべきである。
画像処理もしくはフレーム処理および/またはキャプチャ命令構成を実行するためのシステムおよび技法が、本明細書で説明される。例示的な一例によれば、露光持続時間およびフレームの個数を決定する方法が提供される。方法は、1つまたは複数のフレームのための動きマップを取得することと、シーンの1つまたは複数のフレームに関連する動きを動きマップに基づいて決定することであって、動きが、1つまたは複数のフレームをキャプチャするために使用されるカメラに対する、シーンの中での1つまたは複数の物体の移動に対応することと、フレームの個数、およびその個数のフレームをキャプチャするための露光持続時間を、決定された動きに基づいて決定することと、決定された露光持続時間を使用してその個数のフレームをキャプチャするための要求を送ることとを含む。
別の例では、少なくとも1つのフレームを記憶するように構成されたメモリと、(たとえば、回路構成の中に実装され)かつメモリに結合された1つまたは複数のプロセッサとを含む、いくつかのフレームに対する露光持続時間を決定するための装置が提供される。1つまたは複数のプロセッサは、1つまたは複数のフレームのための動きマップを取得することと、シーンの1つまたは複数のフレームに関連する動きを動きマップに基づいて決定することであって、動きが、1つまたは複数のフレームをキャプチャするために使用されるカメラに対する、シーンの中での1つまたは複数の物体の移動に対応することと、フレームの個数、およびその個数のフレームをキャプチャするための露光持続時間を、決定された動きに基づいて決定することと、決定された露光持続時間を使用してその個数のフレームをキャプチャするための要求を送ることとを行うように構成され、それらのことを行うことができる。
別の例では、その上に記憶された命令を有する非一時的コンピュータ可読媒体が提供され、命令は、1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、1つまたは複数のフレームのための動きマップを取得することと、シーンの1つまたは複数のフレームに関連する動きを動きマップに基づいて決定することであって、動きが、1つまたは複数のフレームをキャプチャするために使用されるカメラに対する、シーンの中での1つまたは複数の物体の移動に対応することと、フレームの個数、およびその個数のフレームをキャプチャするための露光持続時間を、決定された動きに基づいて決定することと、決定された露光持続時間を使用してその個数のフレームをキャプチャするための要求を送ることとを行わせる。
別の例では、いくつかのフレームに対する露光持続時間を決定するための装置が提供される。装置は、1つまたは複数のフレームのための動きマップを取得するための手段と、シーンの1つまたは複数のフレームに関連する動きを動きマップに基づいて決定するための手段であって、動きが、1つまたは複数のフレームをキャプチャするために使用されるカメラに対する、シーンの中での1つまたは複数の物体の移動に対応する、手段と、フレームの個数、およびその個数のフレームをキャプチャするための露光持続時間を、決定された動きに基づいて決定するための手段と、決定された露光持続時間を使用してその個数のフレームをキャプチャするための要求を送るための手段とを含む。
いくつかの態様では、その個数のフレームをキャプチャするためのキャプチャコマンドが受信される前に、1つまたは複数のフレームが取得される。
いくつかの態様では、上記で説明した方法、装置、およびコンピュータ可読媒体は、時間的にブレンドされたフレームを生成するために、決定された露光持続時間を使用してキャプチャされるその個数のフレームに対して時間ブレンディングを実行することをさらに備える。
いくつかの態様では、上記で説明した方法、装置、およびコンピュータ可読媒体は、時間的にブレンドされたフレームに対して機械学習ベース画像信号プロセッサを使用して空間処理を実行することをさらに備える。いくつかの態様では、機械学習ベース画像信号プロセッサは、時間的にブレンドされたフレームに対して空間処理を実行するための入力として動きマップを使用する。
いくつかの態様では、決定された露光持続時間はゲインに基づく。
いくつかの態様では、動きマップは画像を含み、画像の各ピクセルは、ピクセルごとの動きの量および動きの量に関連する信頼性値のうちの少なくとも1つを示す値を含む。
いくつかの態様では、上記で説明した方法、装置、およびコンピュータ可読媒体は、カメラに関連する大域的な動きを1つまたは複数のセンサ測定値に基づいて決定することをさらに備える。場合によっては、フレームの個数、およびその個数のフレームをキャプチャするための露光持続時間は、決定された動きおよび大域的な動きに基づいて決定される。たとえば、装置の1つまたは複数のプロセッサは、決定された動きおよび大域的な動きに基づいて、フレームの個数、およびその個数のフレームをキャプチャするための露光持続時間を決定するように構成され得る。
いくつかの態様では、上記で説明した方法、装置、およびコンピュータ可読媒体は、決定された動きおよび大域的な動きに基づいて最終動き指示を決定することをさらに備える。場合によっては、フレームの個数、およびその個数のフレームをキャプチャするための露光持続時間は、最終動き指示に基づいて決定される。たとえば、装置の1つまたは複数のプロセッサは、最終動き指示に基づいて、フレームの個数、およびその個数のフレームをキャプチャするための露光持続時間を決定するように構成され得る。
いくつかの態様では、最終動き指示は、決定された動きのための第1の重みおよび大域的な動きのための第2の重みを使用する、決定された動きと大域的な動きとの重み付き結合に基づく。たとえば、決定された動きおよび大域的な動きに基づいて最終動き指示を決定するために、1つまたは複数のプロセッサは、決定された動きのための第1の重みおよび大域的な動きのための第2の重みを使用する、決定された動きと大域的な動きとの重み付き結合を決定するように構成され得る。
いくつかの態様では、上記で説明した方法、装置、およびコンピュータ可読媒体は、1つまたは複数のフレームの中の動きの量が動きしきい値よりも小さいことを最終動き指示に基づいて決定することと、1つまたは複数のフレームの中の動きの量が動きしきい値よりも小さいことに基づいて、その個数のフレームに対するフレーム数を減らすとともに決定された露光持続時間に対する露光持続時間量を増やすこととをさらに備える。
いくつかの態様では、上記で説明した方法、装置、およびコンピュータ可読媒体は、1つまたは複数のフレームの中の動きの量が動きしきい値よりも大きいことを最終動き指示に基づいて決定することと、1つまたは複数のフレームの中の動きの量が動きしきい値よりも大きいことに基づいて、その個数のフレームに対するフレーム数を増やすとともに決定された露光持続時間に対する露光持続時間量を減らすこととをさらに備える。
少なくとも1つの他の例示的な例によれば、1つまたは複数のフレームに対する時間ブレンディングを実行する方法が提供される。方法は、未加工フレームを取得することであって、未加工フレームが未加工フレームのピクセルごとに単一の色成分を含むことと、未加工フレームを第1の色成分、第2の色成分、および第3の色成分に分割することと、少なくとも部分的には、少なくとも第1のクロミナンス値を第1の色成分に、少なくとも第2のクロミナンス値を第2の色成分に、かつ少なくとも第3のクロミナンス値を第3の色成分に加えることによって、複数のフレームを生成することと、複数のフレームに対して時間ブレンディングを実行することとを含む。
別の例では、少なくとも1つの画像を記憶するように構成されたメモリと、(たとえば、回路構成の中に実装され)かつメモリに結合された1つまたは複数のプロセッサとを含む、1つまたは複数のフレームに対して時間ブレンディングを実行するための装置が提供される。1つまたは複数のプロセッサは、未加工フレームを取得することであって、未加工フレームが未加工フレームのピクセルごとに単一の色成分を含むことと、未加工フレームを第1の色成分、第2の色成分、および第3の色成分に分割することと、少なくとも部分的には、少なくとも第1のクロミナンス値を第1の色成分に、少なくとも第2のクロミナンス値を第2の色成分に、かつ少なくとも第3のクロミナンス値を第3の色成分に加えることによって、複数のフレームを生成することと、複数のフレームに対して時間ブレンディングを実行することとを行うように構成され、それらのことを行うことができる。
別の例では、その上に記憶された命令を有する非一時的コンピュータ可読媒体が提供され、命令は、1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、未加工フレームを取得することであって、未加工フレームが未加工フレームのピクセルごとに単一の色成分を含むことと、未加工フレームを第1の色成分、第2の色成分、および第3の色成分に分割することと、少なくとも部分的には、少なくとも第1のクロミナンス値を第1の色成分に、少なくとも第2のクロミナンス値を第2の色成分に、かつ少なくとも第3のクロミナンス値を第3の色成分に加えることによって、複数のフレームを生成することと、複数のフレームに対して時間ブレンディングを実行することとをさせる。
別の例では、1つまたは複数のフレームに対して時間ブレンディングを実行するための装置が提供される。装置は、未加工フレームを取得するための手段であって、未加工フレームが未加工フレームのピクセルごとに単一の色成分を含む、手段と、未加工フレームを第1の色成分、第2の色成分、および第3の色成分に分割するための手段と、少なくとも部分的には、少なくとも第1のクロミナンス値を第1の色成分に、少なくとも第2のクロミナンス値を第2の色成分に、かつ少なくとも第3のクロミナンス値を第3の色成分に加えることによって、複数のフレームを生成するための手段と、複数のフレームに対して時間ブレンディングを実行するための手段とを含む。
いくつかの態様では、未加工フレームはカラーフィルタアレイ(CFA:color filter array)パターンを含む。
いくつかの態様では、第1の色成分は赤色の色成分を含み、第2の色成分は緑色の色成分を含み、第3の色成分は青色の色成分を含む。
いくつかの態様では、第1の色成分は、未加工フレームのすべての赤色ピクセルを含み、第2の色成分は、未加工フレームのすべての緑色ピクセルを含み、第3の色成分は、未加工フレームのすべての青色ピクセルを含む。
いくつかの態様では、複数のフレームを生成することは、少なくとも部分的には、少なくとも第1のクロミナンス値を第1の色成分に加えることによって、第1のフレームを生成することと、少なくとも部分的には、少なくとも第2のクロミナンス値を第2の色成分に加えることによって、第2のフレームを生成することと、少なくとも部分的には、少なくとも第3のクロミナンス値を第3の色成分に加えることによって、第3のフレームを生成することとを含む。
いくつかの態様では、第1のフレームを生成することは、第1のクロミナンス値および第2のクロミナンス値を第1の色成分に加えることを含む。いくつかの態様では、第2のフレームを生成することは、第1のクロミナンス値および第2のクロミナンス値を第2の色成分に加えることを含む。いくつかの態様では、第3のフレームを生成することは、第1のクロミナンス値および第2のクロミナンス値を第3の色成分に加えることを含む。
いくつかの態様では、第1のクロミナンス値および第2のクロミナンス値が同じ値である。
いくつかの態様では、複数のフレームに対して時間ブレンディングを実行することは、複数のフレームのうちの第1のフレームを、第1の色成分を有する1つまたは複数の追加のフレームと時間的にブレンドすることと、複数のフレームのうちの第2のフレームを、第2の色成分を有する1つまたは複数の追加のフレームと時間的にブレンドすることと、複数のフレームのうちの第3のフレームを、第3の色成分を有する1つまたは複数の追加のフレームと時間的にブレンドすることとを含む。
いくつかの態様では、装置は、カメラ、モバイルデバイス(たとえば、携帯電話、またはいわゆる「スマートフォン」、または他のモバイルデバイス)、ウェアラブルデバイス、拡張現実(extended reality)デバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR:augmented reality)デバイス、または複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、サーバコンピュータ、車両または車両のコンピューティングデバイスもしくは構成要素、あるいは他のデバイスであり、それらの一部であり、かつ/またはそれらを含む。いくつかの態様では、装置は、1つまたは複数の画像をキャプチャするための1つまたは複数のカメラを含む。いくつかの態様では、装置は、1つまたは複数の画像、通知、および/または表示可能な他のデータを表示するためのディスプレイをさらに含む。いくつかの態様では、上記で説明した装置は、1つまたは複数のセンサ(たとえば、1つもしくは複数のジャイロメーター、1つもしくは複数の加速度計、それらの任意の組合せ、および/または他のセンサなどの、1つまたは複数の慣性測定ユニット(IMU:inertial measurement unit))を含むことができる。
本概要は、特許請求される主題の主要なまたは必須の特徴を特定することは意図されず、特許請求される主題の範囲を決定するために単独で使用されることも意図されない。本主題は、この特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分を参照することによって理解されるはずである。
上記のことは、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付図面を参照するとより明らかになろう。
本出願の例示的な実施形態が、以下の図を参照しながら以下で詳細に説明される。
いくつかの例による、フレーム処理および/またはキャプチャ命令システムの例示的なアーキテクチャを示すブロック図である。 異なる例示的なシナリオに対する様々なルクス値を示す図である。 超低照明条件の間にキャプチャされる画像を示す図である。 いくつかの例による、フレーム処理および/またはキャプチャ命令システムの一例を示すブロック図である。 いくつかの例による、図4のフレーム処理および/またはキャプチャ命令システムによって実行される様々なプロセスのタイミングの一例を示すタイミング図である。 いくつかの例による、図4のフレーム処理および/またはキャプチャ命令システムの実装形態の一例を示す図である。 いくつかの例による、図4のフレーム処理および/またはキャプチャ命令システムの実装形態の一例を示す図である。 いくつかの例による、図4のフレーム処理および/またはキャプチャ命令システムの実装形態の一例を示す図である。 いくつかの例による、図4のフレーム処理および/またはキャプチャ命令システムの実装形態の一例を示す図である。 いくつかの例による、図4のフレーム処理および/またはキャプチャ命令システムの実装形態の一例を示す図である。 いくつかの例による、図4のフレーム処理および/またはキャプチャ命令システムの実装形態の一例を示す図である。 いくつかの例による、動き対露光持続時間(または、露光時間)およびフレーム数をプロットするグラフである。 いくつかの例による、画像および時間フィルタ指示(TFI:temporal filter indication)画像を示す図である。 いくつかの例による、フレーム処理および/またはキャプチャ命令システムの別の例を示す図である。 いくつかの例による、フレーム処理および/またはキャプチャ命令システムの別の例を示す図である。 いくつかの例による、図15Aのフレーム処理および/またはキャプチャ命令システムの機械学習画像信号プロセッサ(ML ISP)の一例を示す図である。 いくつかの例による、図15Aおよび図15BのML ISPのニューラルネットワークの一例を示す図である。 いくつかの例による、ホワイトバランスの改良のために使用される追加の処理を伴う、図15Aのフレーム処理および/またはキャプチャ命令システムを示す図である。 いくつかの例による、ホワイトバランスの改良のために使用される追加の処理を伴う、図15Aのフレーム処理および/またはキャプチャ命令システムを示す図である。 いくつかの例による、画像を徐々に表示するためのプロセスの一例を示す図である。 いくつかの例による、クロミナンス(UおよびV)チャネルに基づく未加工時間ブレンディングの例を示す図である。 いくつかの例による、クロミナンス(UおよびV)チャネルに基づく未加工時間ブレンディングの例を示す図である。 いくつかの例による、未加工時間ブレンディングから得られる画像、および標準的なYUV画像の使用から得られる画像を含む図である。 いくつかの例による、いくつかのフレームに対する露光持続時間を決定するためのプロセスの一例を示すフロー図である。 いくつかの例による、時間ブレンディングを実行するためのプロセスの別の例を示すフロー図である。 いくつかの例による、ニューラルネットワークの一例を示すブロック図である。 いくつかの例による、畳み込みニューラルネットワーク(CNN:convolutional neural network)の一例を示すブロック図である。 本明細書で説明するいくつかの態様を実施するためのシステムの一例を示す図である。
本開示のいくつかの態様および実施形態が、以下で提供される。当業者に明らかになるように、これらの態様および実施形態のうちのいくつかが独立して適用されてよく、それらのうちのいくつかが組合せで適用されてよい。以下の説明では、説明のために、本出願の実施形態の完全な理解をもたらすために具体的な詳細が記載される。しかしながら、様々な実施形態がこれらの具体的な詳細なしに実践され得ることが明らかとなろう。図および説明は限定的であることを意図しない。
以下の説明は、例示的な実施形態を提供するにすぎず、本開示の範囲、適用可能性、または構成を限定することを意図しない。むしろ、例示的な実施形態の以下の説明は、例示的な実施形態を実施することを可能にする説明を当業者に提供する。添付の特許請求の範囲に記載されるような本出願の趣旨および範囲から逸脱することなく、要素の機能および構成において様々な変更が加えられてよいことを理解されたい。
カメラは、画像センサを使用して、光を受けるとともに静止画像またはビデオフレームなどの画像フレームをキャプチャするデバイスである。「画像」、「画像フレーム」、および「フレーム」という用語は、本明細書では互換的に使用される。カメラシステムは、1つまたは複数の画像フレームを受信することおよび1つまたは複数の画像フレームを処理することができる、プロセッサ(たとえば、画像信号プロセッサ(ISP)など)を含むことができる。たとえば、カメラセンサによってキャプチャされる未加工の画像フレームは、最終の画像を生成するためにISPによって処理され得る。特に、ノイズ除去またはノイズフィルタ処理、エッジ強調、カラーバランシング、コントラスト、(暗くすることまたは明るくすることなどの)強度調整、トーン調整などの、複数のフィルタまたは処理ブロックが、キャプチャされた画像フレームに適用されることによって、ISPによる処理が実行され得る。画像処理ブロックまたはモジュールは、特に、レンズ/センサノイズ補正、ベイヤフィルタ、デモザイク処理、色変換、画像属性の補正または強調/抑圧、ノイズ除去フィルタ、シャープ化フィルタを含んでよい。
多くのカメラシステムでは、新たなパラメータ設定を用いて画像センサを動的に構成するために、ホストプロセッサ(HP)(場合によっては、アプリケーションプロセッサ(AP:application processor)とも呼ばれる)が使用される。HPはまた、画像データが正しく処理されるように入力画像センサフレームの設定に整合するように、ISPパイプラインのパラメータ設定を動的に構成するために使用される。
カメラは、様々な画像キャプチャおよび画像処理設定を用いて構成され得る。異なる設定の適用は、様相が異なるフレームまたは画像をもたらすことができる。ISO、露光時間(露光持続時間とも呼ばれる)、開口サイズ、Fストップ、シャッタースピード、焦点、およびゲインなどの、いくつかのカメラ設定は、写真のキャプチャの前またはその間に決定および適用される。コントラスト、明るさ、飽和度、シャープネス、レベル、曲線、または色の改変などの、他のカメラ設定は、写真の後処理を構成することができる。
特に、弱いかまたは低い照明を伴う夜間シーン、屋内シーンなどの、弱い照明を伴うシーンの中のフレームまたは画像をキャプチャすることを試みるとき、課題が存在する。たとえば、弱く照らされたシーンは、通常、(もしいずれかが存在すれば)飽和した明るいエリアを伴って暗い。弱い照明を伴うシーンの画像は、本明細書で低照明画像と呼ぶ。低照明画像は、通常、暗く、ノイズが多く、色がない。たとえば、低照明画像は、通常、シーンの明るいエリアに対する過剰に明るいエリアとともに、暗いピクセルを有する。さらに、低照明画像における信号対ノイズ比(SNR)は極めて小さい。低照明画像におけるノイズは、低照明条件によって引き起こされる、明るさおよび/または色情報のランダムな変動の現れである。ノイズの結果とは、低照明画像が粒状に見えることである。場合によっては、低照明画像の信号は、小さいSNRに起因して増幅されなければならない。たとえば、信号増幅は、より多くのノイズおよび不正確なホワイトバランスを持ち込む場合がある。場合によっては、画像センサに露光される光の量を増大させる助けとなるように、カメラのための露光持続時間/時間が増やされることが可能である。しかしながら、増やされた露光持続時間は、シャッター動作中、より多くの光がカメラセンサに当たることに起因して、ぼやけた画像をもたらす動きぶれアーティファクトを持ち込む場合がある。
改善された画像処理技法を提供するためのシステム、装置、プロセス(方法とも呼ばれる)、およびコンピュータ可読媒体(本明細書では「システムおよび技法」と総称される)が、本明細書で説明される。場合によっては、本明細書で説明するシステムおよび技法は、改善された低照明フレームまたは画像を提供するために使用され得る。しかしながら、システムおよび技法はまた、他の照明条件においてキャプチャされたフレームまたは画像に適用され得る。たとえば、以下でより詳細に説明するように、システムおよび技法は、正確な色、高い質感、および低いノイズを有する、良好に露光された(たとえば、小さいぶれしか伴わずに正しく露光された)シャープな(たとえば、低ノイズとともに維持される高い質感レベルを有する)フレームを生成するために使用され得る。場合によっては、システムおよび技法は、アーティファクトを制御することができ、キャプチャされるフレームのダイナミックレンジの大部分もしくはすべてを維持することができ、かつ/または品質が良好な撮影間の時間および処理時間を提供することができる。たとえば、本明細書で説明するシステムおよび技法を使用すると、(他の画像キャプチャシステムと比較して)短縮された処理時間とともに同等のフレーム品質を維持しながらフレームが生成され得る。いくつかの例では、システムおよび技法は、(たとえば、新たなフレームがバッファリング中および/または処理中であるとき、フレームを徐々に表示することによって)対話式プレビューを生成することができる。
いくつかの態様では、システムおよび技法は、マルチフレームノイズ低減(MFNR:multi-frame noise reduction)ハードウェア構成要素、マルチフレーム高ダイナミックレンジ(MFHDR:multi-frame High Dynamic Range)ハードウェア構成要素、マッシブマルチフレーム(MMF:Massive Multi-Frame)ハードウェア構成要素、(MFHDRのサブセットであり得る)スタッガードHDR(sHDR:staggered HDR)ハードウェア構成要素、それらの任意の組合せ、および/または他のハードウェア構成要素などの、既存のハードウェア構成要素の使用を活用することができる。いくつかの態様では、システムおよび技法は、暗いフレームをキャプチャするために、より長い露光時間およびより大きいゲインを使用することができる。いくつかの例では、システムおよび技法は、極めて飽和した(または、クリッピングされるかもしくは型がくずれた)最も明るい部分に対して、適応ダイナミックレンジ制御(ADRC:adaptive dynamic range control)および/もしくはマルチフレーム高ダイナミックレンジ(MFHDR)、sHDR、ならびに/またはMMFを使用することができる。ADRCは、単一の画像またはフレームから高ダイナミックレンジ(HDR:high dynamic range)を達成するために使用され得る。たとえば、ADRCは、最も明るい部分を維持するためにフレームを露光不足にすることができ、次いで、影および中間トーンを補償するためにもっと後のゲインを適用することができる。いくつかの態様では、システムおよび技法は、MFxR、より長い露光持続時間とともにより小さいゲイン、ならびに場合によっては、大きいノイズおよび/または低い質感を有するフレームのための機械学習システムを使用することができる。MFxRという用語は、マルチフレームノイズ低減(MFNR)および/またはマルチフレーム超解像(MFSR:Multi-frame Super Resolution)を指すことができる。また、本明細書で使用するとき、MFxR(たとえば、MFNR、MFSRなど)を説明するとき、MFxRに加えて、またはその代替として、MMFを使用して同じかまたは類似の技法が実行され得る。MFNR、MFSR、MMF、または関連する他の技法では、最終のフレームは、2つ以上のフレームをブレンドすることによって生成され得る。
いくつかの例では、動きぶれを伴うフレームに対して、システムおよび技法は、1つまたは複数のプレビューフレームに関連する動き情報(たとえば、シーン内の有効な動き/移動、センサ測定値を使用して決定される画像キャプチャの大域的な動き、またはそれらの組合せ)による、フレーム数と露光持続時間(および/または、ゲイン)との組合せの動的な決定を利用することができる。たとえば、1つまたは複数のプレビューフレームに関連する動き情報を使用して、システムおよび技法は、(MFNR、MMFなどを使用して後で結合されてよい)キャプチャすべきフレームの個数、およびそれによってその個数のフレームをキャプチャするための露光持続時間を決定することができる。場合によっては、システムおよび技法(たとえば、低照明エンジン)は、(たとえば、プレビューフレームを生成する)プレビューパイプラインから様々な決定および統計値を取得することができる。システムおよび技法は、(たとえば、出力フレームをキャプチャする)オフラインパイプラインのために、キャプチャする命令を出力することができる。たとえば、システムおよび技法は、動きぶれとSNRとの間の最適なバランスのための露光持続時間(たとえば、最長の単一フレーム露光持続時間)を計算することができる。場合によっては、この場合のSNR変動は、適用されるべき実際のセンサゲインに対応し、露光持続時間/時間によって分割されるターゲット露光の産物である。場合によっては、システムおよび技法は、要求される撮影間の時間または持続時間を満たすべき、マルチフレームのフレーム数(上述のフレームの個数)を計算することができる。撮影間の時間とは、ユーザが開始する2つの連続するフレームキャプチャの間の(たとえば、シャッター/キャプチャボタンの選択などの、シャッターオプションまたはキャプチャオプションのアクティブ化の間の)持続時間を指すことができる。要求される撮影間の持続時間は、(既定のパイプラインレイテンシに加えて)単一フレーム露光持続時間で乗算されるフレーム数の積であり得る。
いくつかの態様では、正確なホワイトバランスを見つけるために、システムおよび技法は、より長く露光されたフレーム(本明細書では、長期露光フレームとも呼ばれる)から自動ホワイトバランス(AWB:auto-white balance)統計値を計算することができる。長期露光フレームは、(たとえば、図2に示す例示的な標準照明条件などの、低照明条件を有しないシーンにおいて)いくつかのフレームをキャプチャするために使用される標準的な露光時間よりも長い露光時間を使用してキャプチャされる。場合によっては、システムおよび技法は、(たとえば、より長く露光された複数のフレームを結合することによる)より長く露光された統合フレームから、AWB統計値を計算することができる。いくつかの例では、処理レイテンシに対処するために、システムおよび技法は、より長く露光されたフレーム(本明細書で長期露光フレームと呼ぶ)をキャプチャしながら、(たとえば、標準的な露光時間を使用してキャプチャされる)短期露光フレームを処理することができる。いくつかの例では、システムおよび技法は、キャプチャが終了した後、短期露光フレームをバックグラウンドで処理し続けることができる。たとえば、システムおよび技法は、短期露光フレームおよび/または長期露光フレームのキューを収集することができ、短期露光フレームおよび/または長期露光フレームの後続のセットを収集しながらフレームを処理することができる。いくつかの態様では、システムおよび技法は、依然としてキャプチャしながら、継続的に「改善しつつある」より長く露光されたフレームをプレビューエンジンに供給することができる。プレビューエンジンは、(たとえば、シャッターボタンもしくはシャッターオプションがアクティブ化される前に、かつ/またはシャッターボタンもしくはシャッターオプションに基づくキャプチャ処理が依然として実行されつつある間)プレビューとしてフレームを出力することができる。
量子化問題(たとえば、クロマステイン)に対処することなどの、いくつかの例では、システムおよび技法は、カメラパイプラインの中のMFHDRの後にあるポスト画像処理エンジン(ポストIPE)を使用することができ、かつ/または機械学習システムを使用することができる。「クロマステイン」という用語は、クロマ量子化に対する可視化された用語であり、「クロマバンディング」または「クロマコントア」と呼ばれることもある。クロマステインは、不十分な色深度しか有さず平滑化(たとえば、ノイズ低減)および色を強調する追加のプロセスを受けるフレームとともに発生する場合がある。クロマステインの結果は、平坦な(ほぼ灰色の)エリア上のコントアまたはステップを含む場合がある。ポストIPEは、生成されたコントアをさらに平滑化するために使用され得る追加のハードウェア画像処理エンジン(IPE:image processing engine)インスタンスである。たとえば、ポストIPEは、(たとえば、フレームがその最終のトーンを有するとき)フレーム処理および/またはキャプチャ命令パイプラインの末尾に位置することができる。
いくつかの例では、システムおよび技法は、照度(ルクス)測光に基づいていくつかの低照明処理をアクティブ化または非アクティブ化することができる。照度測光を使用して、システムおよび技法は照明条件に基づいて動的に有効化され得る。たとえば、フレーム処理および/またはキャプチャ命令システムの画像信号プロセッサ(ISP)または他のプロセッサは、光の量を測定することができる。光の量(たとえば、図2に示すものなどの、低照明、標準照明、超低照明など)に基づいて、ISPは、本明細書で説明する技法のうちの1つまたは複数をアクティブ化すべきかどうかを決定することができる。
いくつかの例では、長期露光フレームは、短期露光フレームよりも著しく高い光感度を有する。光感度は、「露光」、「画像露光」、または「画像感度」と呼ばれることもあり、次のように、すなわち、光感度=ゲイン*exposure_timeのように定義され得る。露光時間は露光持続時間と呼ばれることもある。さらに、露光という用語は、露光持続時間または露光時間を指す。短期露光フレームおよび長期露光フレームをキャプチャするために使用される露光スケールは変わる場合がある。短期露光フレームおよび長期露光フレームは、場合によっては、利用可能なゲイン範囲全体に広がることができる。いくつかの例では、短期露光フレームは、33ミリ秒(ms)または16.7msという露光を使用してキャプチャされ得る。場合によっては、短期露光フレームは、(たとえば、シャッターボタンもしくはシャッターオプションがアクティブ化される前、かつ/またはシャッターボタンもしくはシャッターオプションに基づくキャプチャ処理が依然として実行されつつある間などに、デバイスのディスプレイの中でプレビューされる)標準的なプレビューをサポートするための候補として使用され得る。場合によっては、短期露光フレームのための露光時間は、ちらつきのない条件を満たすなどのために極めて短い(たとえば、0.01秒)場合があり、さらには、ちらつきのない直接の光源が検出される場合、もっと短い場合がある。場合によっては、特定のフレームレート(たとえば、ユーザによって規定されるフレームレート)に対する最大光感度に達するために、短期露光フレームのための露光時間は1/frame_rate秒であり得る。いくつかの例では、短期露光フレームの露光は、[0.01,0.08]秒という範囲の中で変わる場合がある。長期露光フレームまたは画像は、短期露光フレームをキャプチャするために使用された露光を上回る任意の露光を使用してキャプチャされ得る。たとえば、長期露光フレームの露光は、[0.33,1]秒という範囲の中で変わる場合がある。たとえば、シーン内移動を伴わずに三脚を使用する、例示的な一例では、長期露光フレームのための露光持続時間は、ほぼ1秒であり得る。場合によっては、長期露光フレームのために使用される露光は、もっと長い持続時間(たとえば、3秒または他の持続時間)に達する場合があるが、短期露光フレームよりも「短く」はない。
本明細書で使用する短期、中期、安全、および長期という用語は、第1の設定と第2の設定との間の相対的な特性化を指し、必ずしも特定の設定に対する規定済みの範囲に対応するとは限らない。つまり、長期露光(あるいは、長期露光持続時間または長期露光フレームもしくは画像)とは、単に第2の露光(たとえば、短期露光または中期露光)よりも長い露光時間を指す。別の例では、短期露光(または、短期露光持続時間もしくは短期露光フレーム)とは、第2の露光(たとえば、長期露光または中期露光)よりも短い露光時間を指す。
適用例の様々な態様が、図に関して説明される。図1は、フレームキャプチャおよび処理システム100のアーキテクチャを示すブロック図である。フレームキャプチャおよび処理システム100は、シーンのフレーム(たとえば、シーン110のフレーム)をキャプチャおよび処理するために使用される様々な構成要素を含む。フレームキャプチャおよび処理システム100は、スタンドアロンのフレーム(または、写真)をキャプチャすることができ、かつ/または特定のシーケンスの中に複数のフレーム(または、ビデオフレーム)を含むビデオをキャプチャすることができる。システム100のレンズ115は、シーン110に面し、シーン110から光を受ける。レンズ115は、画像センサ130に向かって光を曲げる。レンズ115によって受けられた光は、1つまたは複数の制御機構120によって制御される開口を通過し、画像センサ130によって受けられる。
1つまたは複数の制御機構120は、画像センサ130からの情報に基づいて、かつ/または画像プロセッサ150からの情報に基づいて、露光、焦点、および/またはズームを制御し得る。1つまたは複数の制御機構120は、複数の機構および構成要素を含んでよく、たとえば、制御機構120は、1つもしくは複数の露光制御機構125A、1つもしくは複数の焦点制御機構125B、および/または1つもしくは複数のズーム制御機構125Cを含んでよい。1つまたは複数の制御機構120はまた、アナログゲイン、フラッシュ、HDR、被写界深度、および/または他の画像キャプチャ特性を制御する制御機構などの、図示されるもの以外の追加の制御機構を含んでよい。
制御機構120の焦点制御機構125Bは、焦点設定を取得することができる。いくつかの例では、焦点制御機構125Bは、メモリレジスタの中に焦点設定を記憶する。焦点設定に基づいて、焦点制御機構125Bは、画像センサ130の位置に対するレンズ115の位置を調整することができる。たとえば、焦点設定に基づいて、焦点制御機構125Bは、モーターまたはサーボを作動させることによって画像センサ130のより近くまたは画像センサ130からより遠くにレンズ115を動かし、それによって、焦点を調整することができる。場合によっては、画像センサ130の各フォトダイオードの上方の1つまたは複数のマイクロレンズなどの追加のレンズがシステム100の中に含まれてよく、それらは各々、光がフォトダイオードに到達する前に、レンズ115から受けられる光を対応するフォトダイオードに向かって曲げる。焦点設定は、コントラスト検出自動焦点(CDAF:contrast detection autofocus)、位相検出自動焦点(PDAF:phase detection autofocus)、またはそれらの何らかの組合せを介して決定されてよい。焦点設定は、制御機構120、画像センサ130、および/または画像プロセッサ150を使用して決定されてよい。焦点設定は、画像キャプチャ設定および/または画像処理設定と呼ばれることがある。
制御機構120の露光制御機構125Aは、露光設定を取得することができる。場合によっては、露光制御機構125Aは、メモリレジスタの中に露光設定を記憶する。この露光設定に基づいて、露光制御機構125Aは、開口のサイズ(たとえば、開口サイズまたはFストップ)、開口が開いている継続時間(たとえば、露光時間またはシャッタースピード)、画像センサ130の感度(たとえば、ISOスピードまたはフィルムスピード)、画像センサ130によって適用されるアナログゲイン、またはそれらの任意の組合せを制御することができる。露光設定は、画像キャプチャ設定および/または画像処理設定と呼ばれることがある。
制御機構120のズーム制御機構125Cは、ズーム設定を取得することができる。いくつかの例では、ズーム制御機構125Cは、メモリレジスタの中にズーム設定を記憶する。ズーム設定に基づいて、ズーム制御機構125Cは、レンズ115および1つまたは複数の追加のレンズを含むレンズ要素の組立体(レンズアセンブリ)の焦点距離を制御することができる。たとえば、ズーム制御機構125Cは、1つまたは複数のモーターまたはサーボを作動させてレンズのうちの1つまたは複数を互いに対して動かすことによって、レンズアセンブリの焦点距離を制御することができる。ズーム設定は、画像キャプチャ設定および/または画像処理設定と呼ばれることがある。いくつかの例では、レンズアセンブリは、同焦点ズームレンズまたは可変焦点ズームレンズを含んでよい。いくつかの例では、レンズアセンブリは、シーン110から光を最初に受ける(場合によっては、レンズ115であり得る)集束レンズを含んでよく、次いで、光が画像センサ130に到達する前に、集束レンズ(たとえば、レンズ115)と画像センサ130との間の無限焦点ズームシステムを光が通過する。場合によっては、無限焦点ズームシステムは、等しいかまたは類似の焦点距離(たとえば、しきい値差内)の2つの正の(たとえば、収束、凸)レンズを、それらの間の負の(たとえば、発散、凹)レンズとともに含んでよい。場合によっては、ズーム制御機構125Cは、負のレンズ、および正のレンズのうちの一方または両方などの、無限焦点ズームシステムの中のレンズのうちの1つまたは複数を動かす。
画像センサ130は、フォトダイオードまたは他の感光素子の1つまたは複数のアレイを含む。各フォトダイオードは、画像センサ130によって生み出される画像またはフレームの中の特定のピクセルに最終的に対応する光の量を測定する。場合によっては、異なるフォトダイオードは、異なるカラーフィルタによって覆われてよく、したがって、フォトダイオードを覆うフィルタの色に整合する光を測定してよい。たとえば、ベイヤカラーフィルタは、赤色のカラーフィルタ、青色のカラーフィルタ、および緑色のカラーフィルタを含み、フレームの各ピクセルは、赤色のカラーフィルタの中で覆われる少なくとも1つのフォトダイオードからの赤色の光データ、青色のカラーフィルタの中で覆われる少なくとも1つのフォトダイオードからの青色の光データ、および緑色のカラーフィルタの中で覆われる少なくとも1つのフォトダイオードからの緑色の光データに基づいて生成される。他のタイプのカラーフィルタは、赤色、青色、および/または緑色のカラーフィルタの代わりに、またはそれらに加えて、黄色、マゼンダ、および/またはシアン(「エメラルド」とも呼ばれる)のカラーフィルタを使用してよい。いくつかの画像センサは、カラーフィルタが完全になくてよく、代わりに、ピクセルアレイ全体にわたって(場合によっては、垂直方向に積層された)異なるフォトダイオードを使用してもよい。ピクセルアレイ全体にわたる異なるフォトダイオードは、異なるスペクトル感度曲線を有することができ、したがって、光の異なる波長に応答する。モノクロ画像センサもカラーフィルタがなくてよく、したがって、色深度もなくてよい。
場合によっては、画像センサ130は、代替または追加として、いくつかの時間において、かつ/またはいくつかの角度から、いくつかのフォトダイオードまたはいくつかのフォトダイオードの部分に光が到達するのを阻止する不透明なかつ/または反射性のマスクを含んでよく、それは位相検出自動焦点(PDAF)のために使用されてよい。画像センサ130はまた、フォトダイオードおよび/またはアナログデジタル変換器(ADC)によって出力されるアナログ信号を増幅して、(かつ/または、アナログゲイン増幅器によって増幅される)フォトダイオードのアナログ信号出力をデジタル信号に変換するための、アナログゲイン増幅器を含んでよい。場合によっては、その代わりに、またはそれに加えて、制御機構120のうちの1つまたは複数に関して説明するいくつかの構成要素または機能が、画像センサ130の中に含まれてよい。画像センサ130は、電荷結合デバイス(CCD)センサ、電子増倍CCD(EMCCD:electron-multiplying CCD)センサ、アクティブピクセルセンサ(APS)、相補型金属酸化物半導体(CMOS)、n型金属酸化物半導体(NMOS)、ハイブリッドCCD/CMOSセンサ(たとえば、sCMOS)、またはそれらの何らかの他の組合せであってよい。
画像プロセッサ150は、1つもしくは複数の画像信号プロセッサ(ISP)(ISP154を含む)、1つもしくは複数のホストプロセッサ(ホストプロセッサ152を含む)、および/またはコンピューティングシステム900に関して説明する任意の他のタイプのプロセッサ910のうちの1つもしくは複数などの、1つまたは複数のプロセッサを含んでよい。ホストプロセッサ152は、デジタル信号プロセッサ(DSP)および/または他のタイプのプロセッサであり得る。いくつかの実装形態では、画像プロセッサ150は、ホストプロセッサ152およびISP154を含む単一の集積回路またはチップ(システムオンチップまたはSoCと呼ばれる)である。場合によっては、チップはまた、1つまたは複数の入力/出力ポート(たとえば、入力/出力(I/O)ポート156)、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、ブロードバンドモデム(たとえば、3G、4GまたはLTE、5Gなど)、メモリ、接続性構成要素(たとえば、Bluetooth(商標)、全地球測位システム(GPS)など)、それらの任意の組合せ、および/または他の構成要素を含むことができる。I/Oポート156は、インター集積回路2(I2C)インターフェース、インター集積回路3(I3C)インターフェース、シリアルペリフェラルインターフェース(SPI)インターフェース、シリアル汎用入力/出力(GPIO)インターフェース、モバイルインダストリプロセッサインターフェース(MIPI)(MIPI CSI-2など)、物理(PHY)層ポートもしくはインターフェース、高度高性能バス(AHB)バス、それらの任意の組合せ、および/または他の入力/出力ポートなどの、1つまたは複数のプロトコルまたは仕様による、任意の好適な入力/出力ポートまたはインターフェースを含むことができる。例示的な一例では、ホストプロセッサ152は、I2Cポートを使用して画像センサ130と通信することができ、ISP154は、MIPIポートを使用して画像センサ130と通信することができる。
ホストプロセッサ152は、新たなパラメータ設定を用いて(たとえば、I2C、I3C、SPI、GPIO、および/または他のインターフェースなどの外部制御インターフェースを介して)画像センサ130を構成することができる。例示的な一例では、ホストプロセッサ152は、過去の画像またはフレームからの露光制御アルゴリズムの内部処理結果に基づいて、画像センサ130によって使用される露光設定を更新することができる。
ホストプロセッサ152はまた、ISP154の内部のパイプラインまたはモジュールのパラメータ設定を動的に構成することができる。たとえば、ホストプロセッサ152は、画像またはフレームデータがISP154によって正しく処理されるように、画像センサ130からの1つまたは複数の入力フレームの設定に整合するようにISP154のパイプラインまたはモジュールを構成することができる。ISP154の処理(または、パイプライン)ブロックまたはモジュールは、特に、レンズ(または、センサ)ノイズ補正、デモザイク処理、色空間変換、色補正、フレーム属性の強調および/または抑圧、(たとえば、ノイズ除去フィルタを使用する)ノイズ除去、(たとえば、シャープ化フィルタを使用する)シャープ化のためのモジュールを含むことができる。構成された設定に基づいて、ISP154は、ノイズ補正、デモザイク処理、色空間変換、フレームダウンサンプリング、ピクセル補間、自動露光(AE)制御、自動ゲイン制御(AGC)、CDAF、PDAF、自動ホワイトバランス(AWB)、HDRフレームもしくは画像を形成するためのフレームのマージング、画像認識、物体認識、特徴認識、入力の受信、出力を管理すること、メモリを管理すること、またはそれらの任意の組合せなどの、1つまたは複数の画像処理タスクを実行することができる。
画像プロセッサ150は、ランダムアクセスメモリ(RAM)140/920、読取り専用メモリ(ROM)145/925、キャッシュ912、メモリユニット(たとえば、システムメモリ915)、別の記憶デバイス930、またはそれらの何らかの組合せの中にフレームおよび/または処理済みのフレームを記憶することができる。
様々な入力/出力(I/O)デバイス160が、画像プロセッサ150に接続されてよい。I/Oデバイス160は、表示スクリーン、キーボード、キーパッド、タッチスクリーン、トラックパッド、タッチセンシティブ表面、プリンタ、任意の他の出力デバイス935、任意の他の入力デバイス945、またはそれらの何らかの組合せを含むことができる。I/O160は、システム100と1つまたは複数の周辺デバイスとの間の有線接続を可能にする、1つまたは複数のポート、ジャック、または他のコネクタを含んでよく、システム100は、それを介して、1つもしくは複数の周辺デバイスからデータを受信してよく、かつ/または1つもしくは複数の周辺デバイスへデータを送信してよい。I/O160は、システム100と1つまたは複数の周辺デバイスとの間のワイヤレス接続を可能にする、1つまたは複数のワイヤレストランシーバを含んでよく、システム100は、それを介して、1つもしくは複数の周辺デバイスからデータを受信してよく、かつ/または1つもしくは複数の周辺デバイスへデータを送信してよい。周辺デバイスは、前に説明したタイプのI/Oデバイス160のうちのいずれかを含んでよく、ポート、ジャック、ワイヤレストランシーバ、または他の有線および/もしくはワイヤレスのコネクタに結合されると、それら自体がI/Oデバイス160と見なされてよい。
場合によっては、フレームキャプチャおよび処理システム100は単一のデバイスであってよい。場合によっては、フレームキャプチャおよび処理システム100は、画像キャプチャデバイス105A(たとえば、カメラ)および画像処理デバイス105B(たとえば、カメラに結合されたコンピューティングデバイス)を含む、2つ以上の別個のデバイスであってよい。いくつかの実装形態では、画像キャプチャデバイス105Aおよび画像処理デバイス105Bは、たとえば、1つもしくは複数のワイヤ、ケーブル、もしくは他の電気的なコネクタを介して、かつ/または1つもしくは複数のワイヤレストランシーバを介してワイヤレスに、一緒に結合されてよい。いくつかの実装形態では、画像キャプチャデバイス105Aおよび画像処理デバイス105Bは、互いに切り離されていてよい。
図1に示すように、垂直の破線は、図1のフレームキャプチャおよび処理システム100を、それぞれ、画像キャプチャデバイス105Aおよび画像処理デバイス105Bを表す、2つの部分に分割する。画像キャプチャデバイス105Aは、レンズ115、制御機構120、および画像センサ130を含む。画像処理デバイス105Bは、画像プロセッサ150(ISP154およびホストプロセッサ152を含む)、RAM140、ROM145、およびI/O160を含む。場合によっては、ISP154および/またはホストプロセッサ152などの、画像キャプチャデバイス105Aに示すいくつかの構成要素は、画像キャプチャデバイス105Aの中に含まれてよい。
フレームキャプチャおよび処理システム100は、モバイルもしくは固定の電話ハンドセット(たとえば、スマートフォン、セルラー電話など)、デスクトップコンピュータ、ラップトップもしくはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、インターネットプロトコル(IP)カメラ、または任意の他の好適な電子デバイスなどの、電子デバイスを含むことができる。いくつかの例では、フレームキャプチャおよび処理システム100は、セルラーネットワーク通信、802.11 Wi-Fi通信、ワイヤレスローカルエリアネットワーク(WLAN)通信、またはそれらの何らかの組合せなどの、ワイヤレス通信のための1つまたは複数のワイヤレストランシーバを含むことができる。いくつかの実装形態では、画像キャプチャデバイス105Aおよび画像処理デバイス105Bは、異なるデバイスであり得る。たとえば、画像キャプチャデバイス105Aはカメラデバイスを含むことができ、画像処理デバイス105Bは、モバイルハンドセット、デスクトップコンピュータ、または他のコンピューティングデバイスなどの、コンピューティングデバイスを含むことができる。
フレームキャプチャおよび処理システム100はいくつかの構成要素を含むものとして示されるが、フレームキャプチャおよび処理システム100が、図1に示されるものよりも多数の構成要素を含み得ることを、当業者は諒解されよう。フレームキャプチャおよび処理システム100の構成要素は、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアとの1つもしくは複数の組合せを含むことができる。たとえば、いくつかの実装形態では、フレームキャプチャおよび処理システム100の構成要素は、1つまたは複数のプログラマブル電子回路(たとえば、マイクロプロセッサ、GPU、DSP、CPU、および/または他の好適な電子回路)を含み得る、電子回路または他の電子ハードウェアを含むことができ、かつ/またはそれらを使用して実装されることが可能であり、かつ/あるいは本明細書で説明する様々な動作を実行するために、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せを含むことができ、かつ/またはそれらを使用して実装されることが可能である。ソフトウェアおよび/またはファームウェアは、コンピュータ可読記憶媒体上に記憶され、かつフレームキャプチャおよび処理システム100を実装する電子デバイスの1つまたは複数のプロセッサによって実行可能な、1つまたは複数の命令を含むことができる。
図2は、異なる例示的なシナリオに対する様々なルクス値を示す図である。図2の例はルクス単位を使用して示されるが、照明は、(光へのセンサの感度を表す)高ISOなどの他の単位で測定され得る。概して、ルクス条件は、特に、低い照明、標準の照明、明るい照明に対応し得る。図2の図に示すルクス条件とは、ルクス値を区別するために使用される相対語である。たとえば、本明細書で使用する標準照明範囲とは、低照明範囲よりも相対的に高いルクス範囲を指し、超低照明範囲とは、ある範囲よりも相対的に低いルクス範囲を指す。場合によっては、例示的なルクス値がコンテキストに基づいて再割当てされ得る。たとえば、ルクス範囲は、フレーム処理および/もしくはキャプチャ命令システム能力(たとえば、センサピクセルサイズおよび/または感度など)ならびに/または使用事例(たとえば、シーン条件に基づくなど)に応じて相対記述子によって再割当てされ得る。
図2を参照すると、標準照明条件は、50、150、300、1,000、10,000、および30,000というルクス値に対応し得る。たとえば、30,000というルクス値は、直射日光によって照らされる歩道を含むシーンの中で生じる場合があり、1,000というルクス値は、曇った昼間における歩道を含むシーンの中で生じる場合がある。低照明(LL:low-light)条件は、10および20というルクス値に対応し得る。超低照明(ULL:ultra-low-light)条件は、0.1、0.3、0.6、1、および3というルクス値に対応し得る。様々な照明条件に対応するように図2に例示的なルクス値が示されるが、図2に示すもの以外の値が、様々な照明条件に対応し得る。図3は、超低照明条件(たとえば、3というルクス値)の間にキャプチャされる画像300(または、フレーム)である。図示のように、画像300は暗く、ボートは暗いピクセルを用いて描かれ、画像300の明るい部分は街灯柱における光に対応する。
図4は、フレーム処理および/またはキャプチャ命令システム400の一例を示すブロック図である。図4のフレーム処理および/またはキャプチャ命令システム400の構成要素のうちの1つまたは複数は、図1のフレームキャプチャおよび処理システム100の構成要素と類似であり得、そうした構成要素のような類似の動作を実行することができる。たとえば、センサ430は、フレームキャプチャおよび処理システム100のセンサ130と類似であり得、そうしたセンサ130と類似の動作を実行することができる。図示のように、センサ430によってキャプチャされた画像またはフレームを記憶するために、ゼロシャッターラグ(ZSL:zero shutter lag)バッファ432が使用され得る。いくつかの例では、ZSLバッファ432は循環バッファである。概して、ZSLバッファ432は、センサによって最近キャプチャされた1つまたは複数のフレームを記憶するために使用されることが可能であり、そのことは、フレーム処理および/またはキャプチャ命令システム400が、シャッター(または、キャプチャ)コマンドが受信される(たとえば、ユーザ入力に基づくか、または自動的に受信される)ことに応答してフレームを符号化および記憶し終えるまで、発生し得る遅れ時間を補償することができる。
フレーム処理および/またはキャプチャ命令システム400がシャッターコマンドを処理すると、フレーム処理および/またはキャプチャ命令システム400は、バッファリングされたフレームのうちの1つを選択することができ、記憶、表示、送信などのために、選択されたフレームをさらに処理することができる。図示のように、ZSLフレームは、相対的に短い露光を用いてキャプチャされ、短期露光フレーム434と呼ばれる(図4では「Short Exp」フレームまたは画像と呼ばれる)。短期露光フレーム434は、第1のMFxRエンジン436(たとえば、MFNRおよび/またはMFSRを実行できるエンジン)に出力される。第1のMFxRエンジン436は、短期露光フレームに基づいて、ブレンドされたフレーム438を生成する。ブレンドされたフレーム438は、マルチフレーム高ダイナミックレンジ(MFHDR)エンジン440に出力される。MFHDRエンジン440は、相対的に短い露光(たとえば、33ms)を使用してキャプチャされる1つまたは複数のフレーム、相対的に中間レベルの露光(たとえば、100ms)を使用してキャプチャされる1つまたは複数のフレーム、および相対的に長い露光(たとえば、500ms)を使用してキャプチャされる1つまたは複数のフレームなどの、異なる光感度または露光パラメータ(たとえば、露光時間および/またはゲイン)を用いてキャプチャされる同じシーンの複数のフレームまたは画像を入力として受信することができる。長い露光を使用してキャプチャされるフレームは、上述のように長期露光フレームまたは画像と呼ばれることがある。いくつかの例では、露光持続時間に加えて、またはその代替として、短期露光フレームまたは画像、中間レベルの露光フレームまたは画像、および長期露光フレームまたは画像に対して、センサゲインが調整され得る。MFHDRエンジンは、複数のフレームまたは画像を結合して単一の高ダイナミックレンジ(HDR)フレームにすることができる。MFHDRエンジン440は、HDRフレームをポストIPE442に出力することができる。いくつかの例では、MFHDRエンジン440は、トーンマッピングを適用してフレームの異なる部分を所望の明るさレベルに持ってくることができる。いくつかの例では、各MFHDR入力は別個のMFNR出力である(たとえば、長期および短期の入力/出力)。ポストIPE442は、MFHDRエンジン440からのHDRフレームに対して追加の画像処理動作を実行して最終の出力フレームまたは画像を生成することができる。ポストIPE442によって実行される追加の画像処理動作は、特に、たとえば、ガンマ、シャープ化、カラーファインタッチ、アップスケール、グレインを含むことができる。
センサ430はまた、PSLキャプチャ444の間、正のシャッターラグ(PSL)フレームまたは画像を出力する。PSLフレームは、ZSLフレームと比較して相対的に長い露光時間(および/または、対応するゲイン)を用いてキャプチャされ、上述のように長期露光フレーム446と呼ばれる(図4では「Long Exp」フレームまたは画像と呼ばれる)。長期露光フレーム446からのAWB統計値448が第1のAWBエンジン450に提供される(「AWB1」として示す)。第1のAWBエンジン450は、ホワイトバランス(WB)スケーラ451を生成することができ、WBスケーラ451を第1のMFxRエンジン436に、かつ/または第2のMFxRエンジン452(たとえば、MFNRおよび/またはMFSRを実行できるエンジン)に出力することができる。いくつかの例では、WBスケーラ451は、特定の観測者のもとで色のつかない灰色を達成するために適用され得る、赤色、緑色、および青色のゲインスケールを対象とする3つの係数を含むことができる。例示的な一例では、WBスケーラ451は、赤色(R)に対して1.9という係数値、緑色(G)に対して1.0という係数値、および青色(B)に対して1.6という係数値を含むことができる。長期露光フレーム446はまた、第2のMFxRエンジン452に出力される。場合によっては、第1のMFxRエンジン436および第2のMFxRエンジン452は、同じ処理技法を使用する同じハードウェアによって実装され得るが、ハードウェアは、第1のMFxRエンジンを実装するとき、第2のMFxRエンジンと比較して異なるチューニング設定を有することができる。図4に示すように、第2のMFxRエンジン452は、フレーム処理および/もしくはキャプチャ命令システム400またはフレーム処理および/もしくはキャプチャ命令システム400を含むデバイスのディスプレイ上で、(たとえば、シャッターコマンドもしくはキャプチャコマンドが受信される前に、かつ/またはシャッターコマンドに基づくキャプチャ処理が依然として実行されつつある間に表示される)プレビューフレーム454として長期露光フレーム446を出力することができる。いくつかの例では、第2のMFxRエンジン452は、長期露光フレーム446に基づいて(たとえば、長期露光フレームを融合すなわちブレンドすることによって)、ブレンドされたフレーム456を生成することができる。ブレンドされたフレーム456はMFHDRエンジン440に出力され、AWB統計値を抽出できる低照明(LL)エンジン458にも同じく出力される。AWB統計値は、第2のAWBエンジン460(「AWB2」として示す)に出力される。場合によっては、第1のAWBエンジン450および第2のAWBエンジン460は、同じ処理技法を使用する同じハードウェアによって実装され得るが、ハードウェアは、第1のAWBエンジンを実装するとき、第2のAWBエンジンと比較して異なるチューニング設定を有することができる。第2のAWBエンジン460は、WBスケーラ461を生成することができ、WBスケーラ461をMFHDRエンジン440に出力することができる。MFHDRエンジン440は、上記で説明したように、結合されたフレーム(たとえば、HDRフレーム)をポストIPE442に出力する。
図4に示すように、フレーム処理および/またはキャプチャ命令システムは、画像/フレームの各々に対してフレーム(または、画像)の個数および露光時間(および/または、対応するゲイン)を決定するために、低照明(LL)決定462を実行することができる。フレームの個数および露光時間(および/または、ゲイン)を決定することに関するさらなる詳細が、図12~図17Bに関して以下で説明される。いくつかの例では、LLエンジン458がLL決定462を行うことができる。LL決定462に基づいて、自動露光制御(AEC)エンジン464は、センサ430に対して露光パラメータ(たとえば、露光持続時間、ゲインなど)を決定するために、AECを実行することができる。たとえば、AECエンジン464は、LL決定462に基づいて、キャプチャすべきフレームの個数、およびその個数のフレームのための露光時間(および/または、センサゲイン)の指示を(センサ430へ)送ることができる。
図5は、フレーム処理および/またはキャプチャ命令システム400によって実行される様々なプロセスのタイミングの一例を示すタイミング図500である。たとえば、タイミング図は、シャッターがアクティブ化される(たとえば、シャッターコマンドまたはキャプチャコマンドの受信に対応する、押されるかまたは別のやり方で選択される)ときの低照明(LL)モード、撮影間の時間、および全プロセス時間を示す。撮影間の時間とは、ユーザが開始した連続する2つの画像キャプチャの間の(たとえば、シャッターボタン/キャプチャボタンの選択などの、シャッターオプションまたはキャプチャオプションのアクティブ化の間の)持続時間を指す。図示のように、シャッターが押される前に、(たとえば、短期AECを有する)ZSLフレーム502がキャプチャされる。場合によっては、AECは、露光、ゲインなどを制御する親アルゴリズムである。AECはまた、センサインターフェースを有する。いくつかの例では、AECは3つの測光、すなわち、短期測光、安全測光、長期測光を有する。短期測光は最も明るい部分が維持される結果となり、安全測光はバランスのとれた露光をもたらし、長期測光は暗い領域を優先させる。ZSLフレーム502はプレビュー画像であり、上述のように(たとえば、最も明るい部分を維持するための)短期露光フレームとして使用され得る。したがって、ZSLフレーム502は、短期AEC測光に従ってキャプチャされ得る。シャッターが押されると、PSLフレーム504がキャプチャされ、その後、短期マルチフレームノイズ低減(MFNR)506、ならびに長期MFNRおよびプレビュー508が適用される。ホワイトバランス(WB)改良510を実行することによって、WBが改良され、MFHDRおよび後処理512が、次いで、適用され得る。
図6~図11は、図5のタイミング図500による、図4のフレーム処理および/またはキャプチャ命令システム400の実装形態の一例を示す図である。図6は、図5に示すタイミング図500のLLモードタイミング中の、フレーム処理および/またはキャプチャ命令システム400の使用を示す。上述のように、LLモードは、(シャッターがアクティブ化される前の)短期AECおよびZSLを含む。場合によっては、LLモード(短期AEC設定およびZSLキャプチャ)は、フレーム処理および/またはキャプチャ命令プロセスの第1のステップとして実行され得る。AECエンジン464は、(たとえば、LLエンジン458による)LL決定462に基づいてZSLを設定することができる。たとえば、AECエンジン464は、短期露光フレーム434(ZSLフレームまたは画像とも呼ばれる)をキャプチャするために使用される(短期AECを使用する)露光を設定するために、(たとえば、[1/7~1/15]秒の間などの有効なZSL範囲の中の)ユーザ構成または自動設定に従うような、シャッター優先度(たとえば、(露光時間に対応する)特定のシャッタースピードが使用されることを許容し、その後、AECエンジン464がゲインを計算してシャッタースピード/露光時間を補完する設定)を決定することができる。場合によっては、シャッタースピードとは、センサ露光時間または(たとえば、物理的なシャッターを含まないデバイスに対する)実効センサ読出し時間を指すことができる。AECエンジン464は、わずかな露光過度を伴うAEC「短期」メトリックからゲインを選択することができる。AECエンジン464は、決定されたAEC設定に基づいてフレームセットを決定することができる。たとえば、ゲイン変更のために、より長いフレーム間隔が決定され得る(たとえば、同じゲインを有する[3~8]フレームのシーケンス)。場合によっては、フレーム処理および/またはキャプチャ命令システム400は、(たとえば、ダイナミックレンジ計算に基づいて)短期露光フレーム434を処理するためにMFHDRが使用されることになるかどうか(たとえば、MFHDRエンジン440によってMFHDRモードを使用すべきかそれとも非MFHDRモードを使用すべきか)を決定することができる。いくつかの例では、フレーム処理および/またはキャプチャ命令システム400は、短期露光フレーム434に対するダイナミックレンジをさらに計算することができる。たとえば、ダイナミックレンジは、AEC「長期」対「短期」比から決定され得る。例示的な一例では、所望のモード(たとえば、MFHDRを使用すべきかそれとも非MFHDRを使用すべきか)、およびいくつかの追加の構成を決定するために、フレーム処理および/またはキャプチャ命令システム400は、(たとえば、短い測光と長い測光との間の)AECの極端な測光からの比を計算することなどによって、シーンにおけるダイナミックレンジの「量」を決定することができる。MFHDRモードが使用されることになることをフレーム処理および/またはキャプチャ命令システム400が決定する場合、短期露光フレーム434は、適応ダイナミックレンジ制御(ADRC)を使用して処理され得る。センサ430は、露光設定に基づいて短期露光フレーム434をキャプチャすることができる。短期露光フレーム434は、次いで、ZSLバッファ432の中に記憶され得る。場合によっては、同じゲインを有する、以前の未加工フレーム(または、画像)が、ZSLバッファ432の中に記憶され得る。場合によっては、類似のゲインまたは類似の感度を有する、以前の未加工フレーム(または、画像)が、ZSLバッファ432の中に記憶され得る。
図7は、図5に示すタイミング図500のPSLキャプチャタイミング中の、フレーム処理および/またはキャプチャ命令システム400の使用を示す。上記で示し図5に示すように、PSLキャプチャは、シャッターコマンドまたはキャプチャコマンドが受信されることに応答して行われ得る。場合によっては、PSLキャプチャは、フレーム処理および/またはキャプチャ命令プロセスの第2のステップとして実行され得る。PSLキャプチャのために、フレーム処理および/またはキャプチャ命令システム400は、シーン動きまたは移動(たとえば、フレームがそれに対してキャプチャされつつあるシーンの中での1つまたは複数の物体の移動に対応する局所的な動き)を測定することができる。いくつかの例では、LLエンジン458、またはフレーム処理および/またはキャプチャ命令システム400の他の構成要素は、(たとえば、ジャイロメーターもしくはジャイロスコープ、加速度計、それらの任意の組合せ、および/または他の慣性測定ユニット(IMU)などの、1つまたは複数のIMUからの)収集されたセンサ測定値、および/またはプレビュー動き分析統計値を使用して、デバイスまたはデバイスのカメラの移動に対応する大域的な動きを決定することができる。たとえば、IMUは、カメラ動きを機械的に推定するための手段を提供し、カメラ動きは、フレーム(たとえば、画像またはピクチャ)が撮られるときにどのくらいのぶれが存在するのかを決定するために、フレーム処理および/またはキャプチャ命令システム400によって使用され得る。たとえば、フレーム処理および/またはキャプチャ命令システム400は、光学画像スタビライザ(OIS:optical image stabilizer)に関するIMUサンプル(たとえば、ジャイロメーターサンプルまたはジャイロスコープサンプル、加速度計サンプルなど)を分析することができる。いくつかの例では、三脚が使用されたかどうかを決定するために、フレーム処理および/またはキャプチャ命令システム400は、IMU測定値をビデオ分析三脚検出機構と相互参照することができる。
いくつかの例では、フレーム処理および/またはキャプチャ命令システム400は、1つまたは複数のプレビューフレーム(たとえば、図5に示すタイミング図500のLLモードタイミング中、またはその後まもなくセンサ遅延期間中にキャプチャされる、ZSLフレーム)に関連する局所的な動きの量を決定することができる。局所的な動きの量を決定するために、フレーム処理および/またはキャプチャ命令システム400は、本明細書で動きマップと呼ぶことがある時間フィルタ指示(TFI)を分析することができる。たとえば、TFI(すなわち、動きマップ)は、第1のフレームに対する第1のTFIメタデータ、第2のフレームに対する第2のTFIメタデータなどのメタデータとして、各フレームに(たとえば、1つまたは複数のプレビューフレームの各々に)含められ得る。場合によっては、TFIは、画像(TFI画像または動きマップ画像と呼ばれる)を含む。いくつかの例では、TFI画像は、TFI画像がそれに対して関連付けられるフレーム(たとえば、TFI画像がそれに対してメタデータとして含まれるフレーム)と同じ(水平方向および垂直方向において同じ個数のピクセルを伴う)解像度を有することができる。いくつかの例では、TFI画像は、TFI画像がそれに対して関連付けられるフレームと比較してもっと低い(水平方向および/または垂直方向においてもっと少ないピクセルを伴う)解像度を有することができる。たとえば、TFI画像の各ピクセルは、TFI画像に関連付けられたフレームの対応するピクセルごとに動きの量を示す値を含むことができる。場合によっては、TFIの各ピクセルは、動きの量を示す値に関連する信頼性を示す信頼性値を含むことができる。場合によっては、TFIは、プレビュー中の大域的な動き補償の後、時間的にブレンドされない場合がある画像エリアを表すことができ、シーンの中の局所的な動き成分を示してよい。
いくつかの例では、TFI画像に加えて、またはその代替として、半大域整合(SGM:Semi Global Match)画像が使用され得る。SGMとは、大域的な補償が実行された後の(局所的な2Dおよび/または3D動きを示す)残差動きベクトルマップである。SGMは、TFI画像に関して上記で説明したものと類似の、局所的な動きインジケータとして使用され得る。たとえば、SGMは、大域的な位置合わせが(たとえば、OISを使用して)補正された後、(たとえば、入力として)取得され得る。
TFIおよび/またはSGM画像からの情報を使用して、フレーム処理および/またはキャプチャ命令システム400は、フレームのキャプチャ中の局所的な動きを予測することができる。本明細書でより詳細に説明するように、最終動き指示(FMI:final motion indication)と呼ばれる、(たとえば、ジャイロスコープ測定値などのセンサ測定値に基づく)大域的な動きと(たとえば、TFIによって示されるような)局所的な動きとの組合せが決定され得る。
AECエンジン464は、長期露光フレームをキャプチャするために使用される長期AECを設定することができる。たとえば、LLエンジン458は、露光とゲインとの新たな組合せをAECエンジン464に提供することができる(たとえば、三脚において単一の露光が1秒に達することができる)。LLエンジン458はまた、長期フレームの個数を決定することができる。場合によっては、本明細書で説明するように、LLエンジン458は、(たとえば、TFIによって示される)局所的な動き、大域的な動き、またはFMIに基づいて、長期フレームの露光および個数を決定することができる。センサ430は、次いで、PSL画像またはフレーム(長期露光フレーム446)をキャプチャすることができる。いくつかの例では、PSLフレームをキャプチャするとき、追加のZSLフレーム(短期露光フレーム)がキャプチャされてよい。追加のZSLフレームは、ZSLバッファ432の中に記憶され得る。場合によっては、第1のAWBエンジン450は、センサ430によってキャプチャされる第1のPSLフレームからAWBを計算することができる。第1のAWBエンジン450は、WBスケーラ451を第1のMFxRエンジン436に、かつ/または第2のMFxRエンジン452に出力することができる。第1のPSLフレームがキャプチャされた後、フレーム処理および/またはキャプチャ命令システム400は、キャプチャプロセスの次の部分(たとえば、図8に関して説明するMFNRなどの、フレーム処理および/またはキャプチャ命令プロセスの第3のステップ)を始めることができる。
図8は、図5に示すタイミング図500の短期MFNR中の、フレーム処理および/またはキャプチャ命令システム400の使用を示す。たとえば、PSLキャプチャ中、第1のMFxRエンジン436は短期露光フレームに対してMFNRを実行することができる。場合によっては、フレーム処理および/またはキャプチャ命令プロセスの第3のステップとして、短期MFNRが実行され得る。いくつかの例では、第1のMFxRエンジン436は、フレーム処理および/またはキャプチャ命令プロセスの第2のステップからの計算済みのWB(たとえば、第1のPSLフレームからのAWB)を使用することができる。上述のように、フレーム処理および/またはキャプチャ命令システム400は、ZSLフレーム(たとえば、短期露光フレーム434)を処理するためにMFHDRモードが必要とされるかどうかを決定することができる。MFHDRモードが使用されることになることをフレーム処理および/またはキャプチャ命令システム400が決定する場合、第1のMFxRエンジン436は、短期露光フレームに対してMFNRを実行すべきでないと決定することができる。
図9は、図5に示すタイミング図500の長期MFNRおよびプレビュー508部分中の、フレーム処理および/またはキャプチャ命令システム400の使用を示す。たとえば、第2のMFxRエンジンは、長期露光フレームに対してMFNRを実行することができ、プレビューのためにフレームを出力することができる。場合によっては、フレーム処理および/またはキャプチャ命令プロセスの第4のステップとして、長期MFNRおよびプレビューが実行され得る。MFNRを使用して長期フレームを処理するために、第2のMFxRエンジン452は、フレーム処理および/またはキャプチャ命令プロセスの第2のステップからの計算済みのWB(たとえば、第1のPSLフレームからのAWB)を使用することができる。いくつかの例では、(MFHDRが必要とされないとき)非MFHDRモードが使用されることになることをフレーム処理および/またはキャプチャ命令システム400が決定する場合、第2のMFxRエンジン452は、局所トーンマッピング(LTM:Local Tone Mapping)に加えて大域トーンマッピング(GTM:Global Tone Mapping)を使用することができる。場合によっては、GTMは、ピクセルのルーマ値に従ってピクセルごとにゲインを適用する。場合によっては、LTMは、領域の明るさに従って異なるゲイン値を適用する。第2のMFxRエンジン452は、位置処理セグメント(PPS:Position Processing Segment)(たとえば、局所トーンマッピング、シャープ化、色補正、アップスケーリングなどが実行される、処理パイプラインの中のロケーション)を用いて各統合フレームまたは画像を処理し続けることができる。場合によっては、統合フレームは、融合された複数のフレームが(たとえば、MFNRおよび/またはMFHDRプロセスの適用に基づいて)単一の画像またはフレームに結合された結果であり得る。いくつかの例では、IPE_TF_FULL_OUT(MFNR NPS out)に加えて、第2のMFxRエンジン452は、IPE_DISP_OUT結果に対してPPSを実行し続けることができる。場合によっては、長期露光フレーム446の各々は、わずかに強いLTMを有することがある(たとえば、増白効果)。第2のMFxRエンジン452は、上記で説明したように、プレビューフレーム454としての表示のために各PPS結果を送ることができる。場合によっては、すべてのPSLフレーム(長期露光フレーム446)がフレーム処理および/またはキャプチャ命令システム400によってキャプチャされているのを終えた後、プレビューはZSLバッファ432に戻る。
図10は、図5に示すタイミング図500のWB改良510部分中の、フレーム処理および/またはキャプチャ命令システム400の使用を示す。WB改良510は、長期露光フレーム446がより良好なAWB統計値を生み出すための、WBの改良を含むことができる。場合によっては、WBの改良は、フレーム処理および/またはキャプチャ命令プロセスの第5のステップとして実行され得る。長期露光フレーム446に対してより良好なAWB統計値を生み出すために、LLエンジン458は、長期MFNR結果(たとえば、MFxRエンジン452からのブレンドされたフレーム456)に対して「逆ISP」を実行して、改善されたAWB統計値を生成することができる。たとえば、いくつかの場合におけるWB係数を再計算するために、フレームはAWB互換の画像でなければならない。場合によっては、逆ISP機能は、未加工フレームまたは画像に対して実行される動作の逆転を含むことができ、線形のフレームまたは画像(たとえば、線形のRGBフレームまたは画像)をもたらす。得られた線形のフレームは、改善されたSNRフレームに対して統計値を再生成するために使用され得る。逆ISPは、その後のすべての調整に対して、より良好な統計値をもたらすことができる。長期露光フレームに対する改良/改善されたAWB統計値を使用して、第2のAWBエンジン460は、改良されたWBスケーラを(たとえば、WBスケーラ461の一部として)計算することができる。いくつかの例では、LLエンジン458が、改良されたWBスケーラを計算することができる。
図11は、図5に示すタイミング図500のMFHDRおよび後処理512部分中の、フレーム処理および/またはキャプチャ命令システム400の使用を示す。場合によっては、MFHDRおよび後処理512は、フレーム処理および/またはキャプチャ命令プロセスの第6のステップとして実行され得る。たとえば、MFHDRエンジン440は、(たとえば、フレーム処理および/またはキャプチャ命令プロセスの第5のステップ中に決定された)第2のAWBエンジン460からの改良されたWBスケーラ461を使用することができる。いくつかの例では、非MFHDRモードが使用されることになる(MFHDRが必要とされない)ことをフレーム処理および/またはキャプチャ命令システム400が決定する場合、フレーム処理および/またはキャプチャ命令システム400は、PPSフレームだけをポストIPEに出力することができる。いくつかの例では、ポストIPEは、「クロマステイン」を平滑化するために使用され得る。いくつかの例では、ポストIPEは、機械学習システム(たとえば、1つまたは複数のニューラルネットワークシステム)を含む。たとえば、全体的なフレームまたは画像改良のためのポストIPEとして、機械学習ベース画像信号プロセッサが使用され得る。
上述のように、いくつかの実装形態では、フレーム処理および/またはキャプチャ命令システム(たとえば、LLエンジン)は、フレームまたは画像(たとえば、プレビューまたは短期露光フレームもしくは画像)がそれに対してキャプチャされつつあるシーンの中での1つまたは複数の物体の移動に基づくなどして、シーン動き(シーン内動きまたは局所的な動きとも呼ばれる)を決定することができる。場合によっては、上述のように、LLエンジン、またはフレーム処理および/もしくはキャプチャ命令システムの他の構成要素は、(たとえば、ジャイロスコープもしくはジャイロメーター、加速度計、および/または他の慣性測定ユニット(IMU)などの、IMUからの)収集されたセンサ測定値、および/またはプレビューCVP動き分析統計値を使用して、動きを評価することができる。場合によっては、本明細書で説明するフレーム処理および/またはキャプチャ命令システムおよびプロセスの実行を拡張するために、動き認識アルゴリズムが使用され得る。動き認識アルゴリズムは、動きぶれへのノイズを撮影間の時間に最適化することができる。場合によっては、動き認識アルゴリズムは、(たとえば、カメラの移動に基づく)大域的な動き分析および/または(たとえば、シーンの中での物体の移動に基づく)局所的な動き分析を実行して、動きの指示を決定することができる。局所的な動き分析は、時間フィルタ指示(TFI)に基づくことができる。場合によっては、TFIは、ピクセルごとの動きの量(たとえば、各ピクセルが動きを有するのかそれとも動きを有しないのか、かつ/またはどのくらい動きを有するのか)を示す、ピクセルごとのピクセル値を有する画像であり得る。場合によっては、上述のように、TFIの各ピクセルは、動きの量を示す値に関連する信頼性を示す信頼性値を含むことができる。TFIは、場合によっては動きマップと呼ばれることもある。場合によっては、TFIは、動きベクトルマップを生み出すネイティブカメラフローの一部として提供されることが可能であり、動きベクトルマップは、フレーム処理および/またはキャプチャ命令システムによって(たとえば、LLエンジンによって)使用され得る。場合によっては、TFIは、(たとえば、水平方向および垂直方向における)ピクセルごとの動きの量を示す(たとえば、ひずまされておらず、安定化されていないかまたは安定化されている)疎な動きベクトル、ピクセルごとの動きベクトルを有する(たとえば、ひずまされておらず、安定化されていない)高密度な動きマップ、および/またはひずみ補正グリッドを含むことができる。いくつかの例では、(所与のTFIの)局所的な動き指示は、時間フィルタ処理プロセス中に検出されるゴーストの量を平均化することなどによる、ゴースト検出に基づくことができる。いくつかの例では、(所与のTFIの)局所的な動き指示は、有意な動きベクトルの残差高密度動きマップ平均化および/またはカウントに基づくことができる。
大域的な動きの分析に基づいて、フレーム処理および/またはキャプチャ命令システムは、(たとえば、光学画像スタビライザ(OIS)を使用することなどによる、画像安定化技法を使用して低減される)大域的な動きを補償することができる。場合によっては、フレーム処理および/またはキャプチャ命令システムは、(たとえば、局所的な動きが動きしきい値を上回る場合)動きぶれが低減される必要があるかどうかを決定することなどのために、(大域的な動きに加えて、またはその代替として)TFIによって示される局所的な動きを分析することができる。局所的および/または大域的な動き分析に基づいて、動き認識アルゴリズムは、露光パラメータ(たとえば、露光持続時間および/またはゲイン)、自動ホワイトバランス(AWB)、自動露光制御(AEC)、および自動焦点などの1つもしくは複数の3A設定、ならびに/または他のパラメータを最適化することができる。動き認識アルゴリズムは、低照明条件、超低照明条件、標準照明条件、および/または他の照明条件に対して使用され得る。場合によっては、随意の機械学習システムが、上述のように質感改善およびノイズ改善のために使用され得る。
図12は、動き対露光時間およびフレーム数をプロットするグラフ1200の例示である。グラフ1200のx軸は、動きの量をプロットする。ライン1202は露光を表し、ライン1204はフレーム数を表す。グラフ1200の中の値(または、他の値)は、TFIによって示される動き(局所的な動き)、大域的な動き、または大域的な動きおよび(TFIに基づく)局所的な動きを使用して決定される組み合わせられた動きに基づいて、長い露光時間および(たとえば、MFNR、MMFなどに入力するための)フレーム数を決定するために使用され得る。動きが小さいものと決定される(たとえば、動きしきい値よりも小さい動きなどの、少量の動きが検出される)場合、フレーム数は小さく、露光(たとえば、露光時間、開口など)は増やされる。グラフ1200の中で左から右に移動することに対応する、より多くの動き(たとえば、動きしきい値よりも多い量の動き)が検出されるとき、好適な動きぶれ結果を達成するために使用され得る露光(たとえば、露光時間、開口など)は、最小露光限度に達するまで減らされる。場合によっては、決定された動きに基づいて、露光(たとえば、露光時間、開口など)に加えて、またはその代替として、ゲインが調整され得る。場合によっては、(たとえば、フレーム処理および/またはキャプチャ命令システムは、短期露光/プレビュー/表示されるフレームのために使用される露光よりも短いフレームまたは画像を露光しなくてよいので)最小露光限度はプレビュー画像/フレームのために使用される長い露光時間に等しくなり得る。さらに、より多くの動きが決定されるとき、(ゲインを増大させる)短くなる露光に起因するフレームの明るさを補償するために、(キャプチャされるフレーム増加の個数に対応する)フレーム数は増やされる。
場合によっては、グラフ1200のx軸の上に示す動きは、局所的な動きと大域的な動きの両方(たとえば、局所的な動きと大域的な動きとの組合せ)に対応し得る。たとえば、フレーム処理および/またはキャプチャ命令システムは、大域的な動きおよび局所的な動きを別個に計算することができ、(たとえば、局所的な動き値のための第1の重みおよび大域的な動き値のための第2の重みを使用して)局所的な動きおよび大域的な動きに重みを適用して最終動き指示を生成することができる。フレーム処理および/またはキャプチャ命令システムは、最終動き指示を使用して、どのくらい露光(たとえば、露光時間、開口など)および/またはゲインを減らすかまたは増やすべきか、ならびにどのくらい(たとえば、MFNR、MMFなどに出力するための)フレーム数を減らすかまたは増やすべきかを決定することができる。
いくつかの例では、フレーム処理および/またはキャプチャ命令システムは、[0,1]という範囲の中で大域的な動き(大域的な動き指示またはGMIと呼ばれる)を決定することができる。そのような例では、0という値は、ピクセルに対して動きがないことを示すことができ、1という値は、ピクセルに対して最大の動きを示すことができる。フレーム処理および/またはキャプチャ命令システムは、[0,1]という範囲の中で局所的な動き(局所的な動き指示またはLMIと呼ばれる)を決定することができ、ただし、0という値は動きがないことを示し、1という値は最大の動きを示す。場合によっては、LMIは、(たとえば、大域的な動きからの影響を低減するために)TFI画像をいくらかの程度までクロップすること、クロップされたマップを平均化すること、その値を正規化すること、および感度を反映するように指数を適用することによって計算され得る。[0,1]という範囲の中のLMI重み(LMI_weightと呼ばれる)は、フレーム処理および/またはキャプチャ命令システムがLMIにどのくらい敏感であるのかを表す。1つの例示的なLMI重み値は、0.4という値である。最終動き指示(FMI)は、(TFIにおける)局所的な動きおよび大域的な動きに基づいて決定され得る。例示的な一例では、FMIは、lin_blend(GMI,GMI*LMI,LMI_weight)^2として決定することができ、ただし、lin_blendは、線形ブレンディング演算である。別の例示的な例では、FMIは、非線形応答(^2)を有しない、前の例と類似の、lin_blend(GMI,GMI*LMI,LMI_weight)として決定することができる。
図13は、画像1302(または、フレーム)およびTFI画像1304を示す図である。図13に示す動きは、局所的な動き(シーン内動きとも呼ばれる)である。画像1302では、人物が手を振っている。TFI画像1304は、動きを有しない、画像1302の部分に対する白色のピクセル、および動きを有する、画像1302の部分に対する黒色のピクセルを含む。黒色のピクセルは、動いているユーザの部分(右手)、および背景の中の雲の一部に対応する。フレーム処理および/またはキャプチャ命令システムは、TFI画像1304の中で示される動き(または、TFI画像1304の局所的な動き、および大域的な動きに基づいている、FMIによって示される動き)が動きしきい値よりも大きいかどうかを決定することができる。動きしきい値に対する例示的な値は、動きへの線形感度を示す0.3である。たとえば、TFI(または、FMI)によって示される動きが0.4である場合、その動きは0.3という動きしきい値よりも大きい。動きが動きしきい値よりも小さいことをフレーム処理および/またはキャプチャ命令システムが決定する場合、長期露光フレームまたは画像をキャプチャするために露光時間およびフレームの個数は変わらなくてよい。図12を参照すると、フレーム処理および/またはキャプチャ命令システムは、動きが動きしきい値よりも小さいものと決定されるとき、0という動き値を決定することができる。動きが動きしきい値よりも大きいことをフレーム処理および/またはキャプチャ命令システムが決定する場合、フレーム処理および/またはキャプチャ命令システムは、露光(たとえば、露光時間、開口など)を減らすことができ、かつ/またはフレーム数を増やす(したがって、キャプチャされる長期露光フレームの個数を多くする)ことができる。図12を参照すると、フレーム処理および/またはキャプチャ命令システムは、動きが動きしきい値よりも大きいものと決定されるとき、動きの特定の量に基づいて0.4という動き値を決定することができる。
図14Aは、フレーム処理および/またはキャプチャ命令システム1400の一例を示す図である。図14のフレーム処理および/またはキャプチャ命令システム1400の構成要素のうちの1つまたは複数は、図1のフレームキャプチャおよび処理システム100ならびに/または図4のフレーム処理および/もしくはキャプチャ命令システム400の構成要素と類似であり得、そうした構成要素のような類似の動作を実行することができる。図14Aに示すように、低照明(LL)エンジン1458への入力1401は、(たとえば、ジャイロメーターもしくはジャイロスコープ、加速度計、IMU、および/または他のセンサからの)動きセンサデータ、ゼロシャッターラグ(ZSL)フレーム(リアルタイムで表示されLLエンジン1458に行くことができるプレビュー/表示フレーム)、ZSLフレームに基づく(たとえば、露光設定を含む)AEC決定、および表示TFI統計値を含むことができる。場合によっては、フレームごとのヒストグラムもLLエンジン1458に提供され得る。フレームがキャプチャされるときに、どのようにユーザがユーザのデバイスおよび位置を保持するのかは、知られていない。しかしながら、シャッターオプションまたはキャプチャオプションを選択する(たとえば、シャッターボタンまたは他のオプションを押す)直前(たとえば、0.5秒前、1秒前など)の第1の時点において、ユーザがいくつかの方法でデバイスを保持する場合、ユーザは、ユーザがキャプチャオプションを選択するときと同様の方法でデバイスを保持している可能性があることが、想定され得る。そのような想定に基づいて、LLエンジン1458は、新たなコマンドを生成することができ、新たなコマンドをAECエンジン1464に出力することができる。新たなコマンドは、フレームの個数、(長期露光フレームをキャプチャするために使用される露光持続時間に対応する)長い露光値、および長期DRCゲインを含むことができる。フレームの個数、長い露光値、および長期DRCゲインは、図12に示す値または動きに基づく他の類似の値に基づいて決定され得る。AECエンジン1464は、AECを実行することができ、長期露光フレームをキャプチャするためにAEC情報を画像センサ(たとえば、センサ430)に出力することができる。
長期露光フレームは、長期フレームバッファ1410(図14Aでは「バッファ長期」と呼ばれる)の中に記憶され得る。長期フレームバッファ1410は、単一のバッファまたは複数の長期フレームバッファを含むことができる。プレビュー「リアルタイム」パイプライン中に長期露光フレーム(PSLフレーム)がキャプチャされないとき、長期フレームバッファ1410はオフラインバッファと見なされ得る。図7に関して上述したように、長期フレームバッファ1410の中に記憶される長期露光画像またはフレームは、キャプチャコマンドが受信された後にキャプチャされる。たとえば、特定の露光持続時間、特定のゲイン、およびフレームの特定の個数(たとえば、10フレーム)を適用するようにLLエンジン1458がAECエンジン1464に命令することを想定すると、(たとえば、ユーザがキャプチャオプションを選択することに基づいて)キャプチャコマンドが受信されると、画像センサは、特定の露光およびゲインを用いて特定の個数の長期露光フレームをキャプチャする。
上記で説明し図14Aに示すようなものと同様に、長期フレームバッファ1410の中からの第1のフレーム1411(または、画像)が、自動ホワイトバランス(AWB)計算のためにAWBエンジン1408に出力され得る。従来のシステムでは、AWB計算のために使用されるフレームは、プレビューからのフレーム(ZSLフレーム)である。しかしながら、プレビューフレームは、長期フレームバッファ1410の中の長期露光フレームよりも粗悪である。たとえば、プレビューフレームは、長期露光フレームと比較してもっと短い露光時間を使用してキャプチャされ、長期露光フレームは、ゲインを下げることによって、増やされた露光によって持ち込まれる明るさを補償する。その結果、AWB計算のために長期露光フレームを使用することによって、SNR、AWBに対する統計値、および出力フレームまたは画像の中の色は、AWBのためにAWBエンジン1408によってプレビューフレームが使用されるときよりも良好である。場合によっては、低照明環境の中でAWBのために長期露光フレームが使用されるとき、改善は(たとえば、より大きいSNRに基づいて)向上され得る。第1の長期露光フレーム1411を使用して、AWBエンジン1408は、AWB計算を実行し、新たなAWB制御パラメータ1412を生成する。AWB制御パラメータ1412は、次いで、自動ホワイトバランスを適用するために使用され得る。図14Aに示すように、AWB制御パラメータ1412は、第1のマルチフレームノイズ低減(MFNR)エンジン1402に出力される。
長期フレームバッファ1410からの長期露光フレーム、およびAWB制御パラメータ1412が、第1のMFNRエンジン1402に出力される。第1のMFNRエンジン1402は、(時間領域において長期露光フレームから時間的なノイズをフィルタ処理するために)長期露光フレームを時間的にブレンドまたはフィルタ処理するために使用され得るが、空間領域において長期露光フレームから空間的なノイズをフィルタ処理するための、長期露光フレームの空間ブレンディングを実行しなくてよい。第1のMFNRエンジン1402は、一連のフレーム(または、画像)を空間的に位置合わせすること、およびフレームの中の各ピクセルの値を平均化することによって、時間ブレンディングを実行することができる。第1のMFNRエンジン1402によって使用されるアルゴリズムは、(異なる時間においてフレームが撮られたので)フレーム間の相対運動を評価し、SNRを改善するためにピクセルが結合され得るようにフレームを位置合わせする。第2のMFNRエンジン1404は、中期露光フレーム1414を記憶するために使用される1つまたは複数のZSLバッファ1413からの中期露光フレーム1414の空間ブレンディング(または、フィルタ処理)および時間ブレンディング(または、フィルタ処理)を実行する。第3のMFNRエンジン1406は、中期露光フレーム1414を記憶するために使用される1つまたは複数のZSLバッファ1415からの短期露光フレーム1416の空間フィルタ処理および時間フィルタ処理を実行する。第2のMFNRエンジン1404および第3のMFNRエンジン1406は、各フレームのピクセルを処理することによって、たとえば、場合によっては、隣接ピクセルに関して、各ピクセルの尺度(たとえば、統計尺度、ピクセル成分値、平均、または他の尺度)を決定することによって、空間ブレンディングを実行して、フレームを改善する。いくつかの例では、空間ブレンディングは、エッジ維持ノイズ低減を実行するために使用することができ、特に、画像またはフレーム領域における畳み込みカーネル、周波数(または、周波数のような)領域における処理、ウェーブレットなどの、様々なアルゴリズムを使用して対処され得る。場合によっては、第1のMFNRエンジン1402、第2のMFNRエンジン1404、および第3のMFNRエンジン1406は、同じ処理技法を使用する同じハードウェアによって実装され得るが、ハードウェアは、第1のMFNRエンジン、第2のMFNRエンジン、および第3のMFNRエンジンを実装するとき、異なるチューニング設定を有することができる。いくつかの例では、中期露光フレーム1414および短期露光フレーム1416を記憶するために使用されるバッファは、同じバッファであり得るか、または異なるバッファであり得る。場合によっては、バッファ以外の記憶機構が、短期露光フレーム、中期露光フレーム、および長期露光フレームを記憶するために使用され得る(たとえば、キャッシュメモリ、RAMなど)。
第1のMFNRエンジン1402はまた、長期フレームバッファ1410の中に記憶された長期露光フレームに対して、TFI画像(TFIマップとも呼ばれる)を取得または受信することができる。場合によっては、上記で説明したように、TFI画像は、どのピクセルが動きを有したのか、およびどのピクセルが動きを有さなかったのか(または、ピクセルに対する動きの程度)を示すことができる。TFI画像はまた、ピクセルが時間ブレンディングを適用されたかどうかを示すことができる。たとえば、時間ブレンディングが適用される場合、画像の中にゴースト効果が生じることがあるので、ピクセルが動きを有するものとしてTFI画像によって示される場合、時間ブレンディングは適用されなくてよい。したがって、キャプチャされたフレームの中のピクセルが動きを有することを示す、TFI画像の中のピクセルはまた、キャプチャされたフレームの中のピクセルが、それに適用された時間ブレンディングを有しないことを示してよい。動き指示に基づいて、第1のMFNRエンジン1402は、TFI画像を統合することができ、統合型TFI画像1418(統合型DC4 TFIとして図14Aに示す)を出力することができる。たとえば、ピクセルごとに何個のフレームが時間的にブレンドされたのかを反映することが目標である。第1のステージは、各フレームが同じノイズ分散を有すること、およびそれらの間に共分散がないことを想定することになり得る。TFI画像に従って分散処理および/または分散演算が適用され得る。画像またはフレームごとに、その結果は統合型TFI画像1418(または、TFIマップ)の中に記憶され得る。すべてのフレームが処理された後、処理の結果はピクセルごとの分散である。たとえば、分散マップが(たとえば、第1のMFNRエンジン1402によって)出力され得る。分散マップは、次いで、ピクセルごとに何個のフレームがブレンドされるのかを示すマップに変換され得る。統合型TFI画像1418に対する、図14Aの中の「DC4」という用語は、各軸において4という係数でダウンスケールされた画像を示す。たとえば、8000×4000という全画像サイズを有する画像の場合、画像のDC4サイズは2000×1000である。第1のMFNRエンジン1402はまた、上記で説明したように、ブレンドされた単一の長期露光フレーム1420(ブレンドされた長期10bとして図14Aに示す)を出力することができる。
場合によっては、ML ISP1422は、フレームごとに、統合型TFI画像1418ではなく最終のALGMマップを入力として使用することができる。たとえば、ALGMは、本明細書で説明するように、それを「フレームブレンドカウント」マップに変換する前のTFI統合型マップと同じである。ALGMは、ダウンスケールされた(たとえば、DC4)フレームまたは画像ではなく完全な解像度のフレームまたは画像に対して、ハードウェアによって生成され得る。
ブレンドされた長期露光フレーム1420および統合型TFI画像1418は、機械学習ベース画像信号プロセッサ(ISP)1422(ML ISPノードとして図14Aに示す)に出力される。ML ISP1422の一例が図15に示される。いくつかの例では、ML ISPは、例示的な一例として、畳み込みニューラルネットワーク(CNN)などの1つまたは複数のニューラルネットワークアーキテクチャを含む。図16は、ML ISP1422のニューラルネットワークの一例を示す図である。例示的な一例では、ニューラルネットワークは、3×3の畳み込み層を有するUNetのようなネットワーク、パラメトリック正規化線形ユニット(PReLU)活性化、ダウンサンプリング用の平均プーリング(AvgPool)、およびアップサンプリング用の双線形アップサンプリングを含む。いくつかの例では、ニューラルネットワークのトレーニングは、選択されたセンサ較正データに基づいて実行され得る。場合によっては、他のトレーニングデータも使用され得る。
ML ISP1422は、長期露光フレームに対して空間フィルタ処理を実行する。たとえば、ML ISP1422は、空間領域エッジ維持ノイズろ過を実行することができる。ML ISP1422は、ブレンドされた入力長期露光フレーム1420および統合型TFI画像1418を使用してノイズ低減量を補償することができ、そのことは、フレームの中のノイズを等化することができる。例示的な一例では、所与のフレームに対して、フレームの部分が、(統合型TFI画像によって示されるような)動きしきい値を上回る局所的な動きを有する場合、フレームのその部分は、上記で説明したように、それに適用された時間ブレンディングを有しない(そうでない場合、ゴーストを有する)。その結果、局所的な動きを有するフレームの部分は、時間ブレンディングが適用されなかったので、フレームの他の部分よりも多くのノイズを有する。動きを有するフレームの部分の中の増大したノイズに基づいて、ML ISP1422は、より多くの空間フィルタ処理をフレームのその部分に適用することができる。任意の動き(または、動きしきい値を下回る動き)を有しない、フレームの別の部分に対して、第1のMFNRエンジン1402は、フレームのその部分に対して、より少ないノイズをもたらす、時間ブレンディングを適用することができる。ML ISP1422は、動きがほとんどないフレームの一部に対して、より少ない空間フィルタ処理を実行することができる。ML ISP1422はまた、異なるレベルの空間フィルタ処理がそれに対して適用される、フレームの異なる部分の間の遷移を安定させるように、フレームを処理することができる。
ML ISP1422は、(たとえば、特に、ノイズ除去、エッジ強調、カラーバランシング、コントラスト、強度調整、トーン調整、シャープ化のために)複数のフィルタまたは処理ブロックを有する従来のISPよりも良好な結果をもたらすことができる。さらに、従来のISPをチューニングすることは厄介であり時間がかかる場合がある。ML ISP1422のトレーニングは、教師あり学習技法または教師なし学習技法の使用に基づいて、さほど時間がかからなくてよい。ML ISP1422のために使用され得るディープニューラルネットワークの例示的な一例が、図24に示される。ML ISP1422のために使用され得る畳み込みニューラルネットワーク(CNN)の例示的な一例が、図25に示される。機械学習トレーニングを実行することの例が、図24および図25に関して以下で説明される。
ML ISP1422は、フィルタ処理済みの長期露光フレーム1424をマルチフレーム高ダイナミックレンジ(MFHDR)エンジン1440に出力する。MFHDRエンジン1440は、以前に説明したようにMFHDR処理を適用する。上記で説明したように、LLエンジン1458は、MFHDRが使用される(MFHDRモード)かどうか、またはMFHDRが使用されない(非MFHDRモード)ことを決定することができる。非MFHDRモードでは、HDR機能性は、単一のフレームを使用して実行され得る。MFHDRモードが使用されることになることをLLエンジン1458が決定する場合、MFHDRエンジン1440に対する入力は、2つ以上のフレームを使用する。従来のシステムは、交替フレームMFHDRを使用してMFHDRを実行する。交替フレームMFHDRは、短期、中期、長期、短期、中期、長期、短期、中期、長期などの、フレームの交替する配列を使用する。センサは、異なる露光持続時間(短期、中期、長期)でフレームをキャプチャするように構成される。しかしながら、(低照明条件または他の条件において)フレームをキャプチャする際にレイテンシが重要であり、追加の短期フレーム、中期フレーム、および長期フレーム(たとえば、4フレーム、10フレーム、20フレーム、または他の個数のフレーム)を使用することは、レイテンシを大きくする。そのような問題に対処するために、LLエンジン1458は、交替する露光を伴うフレームを使用するのではなく(ZSLバッファからの)プレビューフレームを使用する。プレビューフレームは、シャッターコマンドが受信される前にZSLバッファの中に記憶され、その場合、プレビューフレームは、シャッターコマンドが受信された後にキャプチャされる必要がなく、したがって、フレームまたは画像キャプチャプロセスのレイテンシを追加しない。プレビューフレームを使用することによって、(シャッターコマンドが受信された後の)オフライン処理中にキャプチャされるフレームだけが長期露光フレームである。ZSLバッファの中に記憶されるプレビューフレームは、長期フレームバッファの中の長期露光フレームと同じセンサ構成を有する。プレビューフレームおよび長期露光フレームに対するフレーム設定は、したがって、露光を除いて同じである(プレビューフレームの露光は長期露光フレームよりも短い)。
上述のように、(ZSLバッファからの)短期露光フレームおよび中期露光フレームは、従来のISP処理ブロックであり得る(それらはML ISPを含まない)、それぞれ、第2のMFNRエンジン1404および第3のMFNRエンジン1406によって処理される。MFHDRモードが使用される場合、中期露光フレームおよび短期露光フレームは、それぞれ、第2のMFNRエンジン1404および第3のMFNRエンジン1406によって処理され、処理された中期露光フレームおよび短期露光フレームは、MFHDRエンジン1440の内側で融合または結合される。
図14Bは、フレーム処理および/またはキャプチャ命令システム1405の別の例を示す図である。フレーム処理および/またはキャプチャ命令システム1405は、図14Aのフレーム処理および/またはキャプチャ命令システム1400と類似であり、フレーム処理および/またはキャプチャ命令システム1400とフレーム処理および/またはキャプチャ命令システム1405との間の共通の構成要素を示す同様の数字を含む。フレーム処理および/またはキャプチャ命令システム1400とフレーム処理および/またはキャプチャ命令システム1405との間の1つの差異は、ブレンドされた長期露光画像1447が、ML ISP1422によって処理される前に、第1のダウンスケールエンジン1449によって(もっと小さいサイズに)ダウンスケールされることである。ALGMマップ1448も、ML ISP1422によって処理される前に、第2のダウンスケールエンジン1451によって(もっと小さいサイズに)ダウンスケールされる。ALGMマップ1448が図14Bに示されるが、統合型TFI画像(たとえば、図14Aの統合型TFI画像1418)が代わりに使用され得る。ML ISP1422は、ダウンスケールされブレンドされた長期露光画像1447およびALGMマップ1448を(たとえば、空間フィルタ処理を使用して)処理することができ、フィルタ処理済みの長期露光フレームをアップスケールエンジン1452に出力することができ、アップスケールエンジン1452は、アップスケールされたフィルタ処理済みの長期露光フレーム1424を出力することができる。別の差異は、中期露光フレームおよび短期露光フレームを使用するのではなく、図14Bのフレーム処理および/またはキャプチャ命令システム1405が、単一の短期露光1441を使用する(たとえば、PSLからの)短期露光フレーム1442を使用することである。
上述のように、図15は、図14Aおよび/または図14BからのML ISPの一例を示す。上記で説明した技法に基づいて、固有の入力がML ISPに提供される。たとえば、ML ISPは、TFI画像からの動き指示に基づいて、かつ(TFI画像によって示されるような)以前のステージの中で生じた時間的な処理の量に基づいて、処理(たとえば、空間フィルタ処理またはブレンディング)を実行することができる。図15に示すように、ML ISPへの入力は、ブレンドされた長期露光フレーム、統合型TFI画像、(チューニング構成として示す)ユーザ設定、フレーム数、ゲイン、およびホワイトバランスを含む。(たとえば、ML ISPのために使用され得る)例示的なニューラルネットワークに関するさらなる詳細が、図24および図25に関して以下で説明される。
図17Aおよび図17Bは、フレームのホワイトバランス処理を改良するために使用される追加の処理構成要素1710を有する、フレーム処理および/またはキャプチャ命令システム1700を示す図である。場合によっては、追加の処理構成要素1710は、AWBエンジン1708の一部であり得、かつ/またはAWBエンジン1708によって実施され得る。上述のように、AWBエンジン1708は、キャプチャされるフレームのためのAWB制御パラメータ1712を生成することができる。追加の処理構成要素1710は、AWBエンジン1708によって決定されたAWBをさらに改良するために使用され得る。たとえば、フレーム処理および/またはキャプチャ命令システム1700は、20個のフレームをキャプチャすることができる。時間領域における20個のフレームは、ノイズ分散の改善に関して一次効果を有することができる。たとえば、20個のフレームは、いくつかのノイズプロファイルに起因してノイズ分散を10~20倍だけ小さくし得る。AWBエンジン1708は、2D分布における値を取得することができ、値の間の線形相関を決定することができる。ノイズ分散を低減することは、事実上、散乱を低減し、より信頼できる統計値をもたらし、より良好なAWB決定という結果になる。フレーム処理および/またはキャプチャ命令システム1700は、(ノイズ低減に起因して、改善されたSNRをもたらす)第1のMFNRエンジン1702によって実行される時間ブレンディングから得られるフレームをAWBエンジン1708に戻して出力することができる。AWBエンジン1708は、AWB制御パラメータ1712を再計算して、より正確なAWBパラメータを取得することができる。
追加の処理構成要素1710は、AWBハードウェアエンジン(「Calc AWB control」として図17Aに示す)へ送られ得る特定のフォーマットのフレームまたは画像(未加工のベイヤフレームまたは画像)を作成するための逆ISPを含む。たとえば、AWBハードウェアエンジンは、特定のフォーマットを有するフレームまたは画像を処理するように構成され得る。逆ISPは、上記でより詳細に説明されている。特定のフォーマットを有するフレーム(たとえば、ベイヤフレーム)を使用して、AWBハードウェアエンジンは、改善されたAWB制御パラメータ(WBCとして示す)を生成する。改善されたAWB制御パラメータは、色補正行列(CCM:color correction matrix)エンジン(「Calc CCM」として図17Aに示す)を使用して処理される。たとえば、CCMエンジンは、初期AWB制御パラメータと改善されたAWB制御パラメータとの間の差分またはデルタを決定することができる。CCMエンジンは、その差分を使用して色補正行列(CCM)を生成することができる。MFHDRエンジン1740は、CCMを使用して最終の出力フレームまたは画像を生成することができる。
フレーム処理および/またはキャプチャ命令システム1700のML ISP1722は、図17Aおよび図17Bに示すように、図14Aおよび/または図14BのML ISP1422と類似の、統合型TFI画像1718を使用することができる。場合によっては、ML ISP1722は、フレームごとに、TFI画像ではなく最終のALGMマップを入力として使用することができる。たとえば、上記で説明したように、ALGMは、上記で説明したように、それを「フレームブレンドカウント」マップに変換する前のTFI統合型マップと同じである。ALGMは、ダウンスケールされた(たとえば、DC4)フレームまたは画像ではなく完全な解像度のフレームまたは画像に対して、ハードウェアによって生成され得る。第1のMFNRエンジン1702は、もっと短い露光時間を有するもっと多数のフレームを許容することができ、低減された動きぶれならびにもっと良好な質感およびノイズにつながる。第1のMFNRエンジン1702はまた、ノイズ等化を無効化することを含む修正済みのチューニングを使用することができる。いくつかの例では、第1のMFNRエンジン1702は、256個のフレームなどの多数のフレームを融合して、ブレンドされた最終のフレーム1720におけるSNRを改善することができる。そのようなMFNRエンジンは、場合によっては、マッシブマルチフレーム(MMF)エンジンと呼ばれることがある。場合によっては、第1のMFNRエンジン1702には、ノイズ等化を実行するステージが後続することができる。図17Bを参照すると、MFNRブレンドされたフレーム1720は、上記で説明したように、(RGB色成分を有する)線形の未加工ベイヤフレームをもたらす、擬似逆ISPを受ける。未加工ベイヤフレームは、改善されたWB係数(WBC)をもたらすAWB統計値再生成およびAWBアルゴリズムのための出力である。残りのWBが計算され、CCMに変換され、図17Aに関して上記で説明したものと類似の(ポストIPEを含む)MFHDRエンジンへ送られる。
図18は、フレームまたは画像を徐々に表示する(対話式プレビューを提供する)ためのプロセスの一例を示す図である。たとえば、新たなフレームがバッファリング中および/または処理中であるとき、向上したフレームを徐々に表示することが有益なはずであり、そのことは、各フレームがどのように品質改善に寄与するのかをユーザが見ることを可能にし得る。フレーム処理および/またはキャプチャ命令システム(たとえば、システム400、1400、1405、1700、または他のシステム)は、ZSLバッファからのプレビューフレーム(たとえば、ZSLフレーム1802)を使用することができ、異なる入力をビデオ動き補償型時間フィルタ(MCTF:motion compensated temporal filter)に提供することができる。たとえば、画像キャプチャオプションが選択され、かつキャプチャコマンドまたはシャッターコマンドが受信されると、所与のPSLフレーム(たとえば、第2のPSLフレーム)から始めて、フレーム処理および/またはキャプチャ命令システムは、時間フィルタ処理(TF)ブレンドモードを変更することができ、そのため、(たとえば、MFNRと同様に)以前および現在のフレームが切り替えられる。たとえば、図18に示すように、現在のフレーム1804および以前のフレーム1806が、現在のフレーム1808および以前のフレーム1810と比較して切り替えられる。たとえば、現在のフレーム1808はIFEから出力され、以前のフレーム1810はIPEから出力される。キャプチャコマンドまたはシャッターコマンドが受信されると、現在のフレーム1804がIPEから出力され、以前のフレーム1806がIFEから出力される。以前のフレームと現在のフレームとの間の切替えは、長いフレームキャプチャが完了するまで実行され得る。「以前」および「現在」とは、時間フィルタ処理への入力を指す。以前は図18の中で「PREV」として示され、現在は図18の中で「CUR」として示される。たとえば、TFは、3つのフレームまたは画像入力、すなわち、current、current_anr、およびpreviousを有する。currentは、以前の画像がその上部においてブレンドされるとともにそこに位置合わせされる現在のフレームまたは画像である。すべてのPSLフレームが収集された後、フレーム処理および/またはキャプチャ命令システムは、MCTFブレンディングに戻して切り替えることができる。その結果、プレビュー表示は、新たなフレームが獲得されるにつれてターゲットのフレームまたは画像が動的に改善することを示す。画像キャプチャプロセスが進行するにつれて、表示はより視認可能になり、詳細が回復される。
(たとえば、キャプチャコマンドまたはシャッターコマンドが受信されると)PSLフレームに切り替えるべき1つの理由は、PSLフレームの改善された光感度に起因する。上述のように、光感度(または、露光、画像露光、もしくは画像感度)は、ゲインおよび露光時間または露光持続時間の関数(たとえば、光感度=ゲイン*exposure_time)として規定され得る。たとえば、各着信フレームは、信号対ノイズ比(SNR)を改善できるMCTFを使用して処理されることが可能であり、フレームを収集しながらプレビューフレーム改善という対話式の効果をもたらす。プレビュー結果はまた、「見えるものが得られるものである(what you see is what you get)」という正確なキーパフォーマンスインジケータ(KPI)を提供する。そのような技法を使用して、プレビュー表示は、プレビューパイプラインの中断なく(たとえば、異なるモードに切り替える必要がなく)、新たなフレームが獲得されるにつれてターゲットのフレームが動的に改善することを示す。
図19および図20は、未加工のフレームまたは画像成分へのUおよびVチャネルの追加に基づく未加工時間ブレンディングの例を示す図である。上述のように、(たとえば、ポストIPE、またはフレーム処理および/もしくはキャプチャ命令システムの他の構成要素などの、IPEによって適用される)時間フィルタ処理アルゴリズムは、連続したフレームを使用するとともに時間領域においてフレームをブレンドして出力フレームまたは画像の品質を改善し、したがって、フレームのSNRを改善するために使用され得る。時間フィルタ処理のための既存のアルゴリズムは、ルミナンス(Y)成分およびクロミナンス成分(たとえば、クロマ青色(Cb)成分およびクロマ赤色(Cr)成分)を有するピクセルを含むYUV領域におけるフレームを使用する。既存のアルゴリズムはまた、通常はHWで実装される。ハードウェアが数個のパスを許容するとともにより大きい処理能力を有することに起因して、ソフトウェアで時間フィルタ処理を実行することは、ハードウェアと比較して、より大きいレイテンシをもたらす場合があり、品質が劣る場合もある。既存のYUV時間ブレンディングハードウェアパイプラインを使用する、未加工時間フィルタ処理またはブレンディングシステムおよび技法が本明細書で説明される。未加工時間フィルタ処理またはブレンディングシステムおよび技法は、(カラーフィルタアレイ(CFA)パターンを有する)未加工の画像またはフレームを個々の色成分(たとえば、赤色(R)成分、緑色(G)成分、および青色(B)成分)に分割すること、ならびにUチャネルおよびVチャネルを各色成分に加えることによって別個のYUVフレームまたは画像として各色成分を取り扱うことによって動作する。U値およびV値は、MFNRエンジンがそこから処理のためのフレームを取得するバッファを充填するために使用される、冗長な値を含むことができる。未加工フレームを使用することは、もっと前のステージにおいてブレンディングが実行されることを可能にし、様々なオフセット、クリッピング、および不正確な破壊的決定問題を回避する。未加工フレームを使用することはまた、ML ISPがより多くの動作を処理することを可能にする。ノイズ低減だけではなく、もっと多くの動作が、ほぼ同じコストを伴って委託され得る(たとえば、特に、デモザイク処理、WB、トーンマッピング)。
図19に示すように、未加工フレーム1902は入力として提供される。画像センサ(たとえば、画像センサ130または430)は、未加工フレーム1902をキャプチャするために使用され得る。未加工フレーム1902は、赤色、緑色、および青色の色成分を含む、ベイヤCFAパターンなどのカラーフィルタアレイ(CFA)パターンを有する。同じCFAパターンがフレーム全体に対して繰り返される。ベイヤ処理セグメント(BPS:Bayer Processing Segment)1904は、未加工フレーム1902を受信する。BPS1904は、特に、位相検出ピクセル補正(PDPC:Phase Detection Pixel Correction)、レンズ色むら補正(LSC:Lens Shading Correction)、DG、ホワイトバランス補正(WBC)、ビン補正(BinCorr)などの、様々な画像処理動作を実行するハードウェアブロックである。場合によっては、動作の各々(たとえば、PDPC、LSC、WBCなど)は、BPS1904ハードウェアの中のフィルタに対応し得る。BPS1904の出力は、(14ビットを用いて表される)ベイヤ14の画像またはフレームである。デジタル信号プロセッサ(DSP)1906は、フレームを14ビットフレームから10ビットフレーム(ベイヤ10フレーム)に変換する。DSP1906は、ガンマルックアップテーブル(LUT)を使用してその変換を実行することができる。場合によっては、フレームを14ビットから10ビットに変換するために、DSP以外のプロセッサが使用され得る。
フレーム処理および/またはキャプチャ命令システムは、フレームの各色成分を別個の色成分に分割または分離することができる。各色成分は、その色成分のすべてのピクセルのフレームである。たとえば、フレームの赤色(R)成分1908は、未加工フレームからの赤色ピクセルのすべて、ならびに(赤色成分が未加工フレームの半分を構成することに起因して)フレームの幅の半分および高さの半分である解像度または寸法を含む。緑色(G)成分および青色(B)成分は、未加工フレームの幅の4分の1および高さの4分の1である解像度を有する。プレーン10は、10ビットの単一チャネルフレームまたは画像(たとえば、グレースケールフレーム)である。システムが色チャネルの分離に基づいて異なるチャネル間を区別できないことに起因して、プレーン10フレームが使用され得る。
フレーム処理および/またはキャプチャ命令システムは、UチャネルおよびVチャネルをR色成分、G色成分、およびB色成分に追加して、別個の標準的なYUVフレームまたは画像を作成する。たとえば、フレーム処理および/またはキャプチャ命令システムは、Uチャネル1912およびVチャネル1914を加えることによって、R色チャネルに基づいてYUVフレーム1910を生成することができる。異なる色成分に加えられるU値およびV値は、同じ値を含むことができる(たとえば、Uに対して0または512という値、およびVに対して0または512という値、ただし、512がUV平面の中心である)。フレーム処理および/またはキャプチャ命令システムは、画像がMFNRアルゴリズムにとって正しいフォーマットをなすようにUチャネルおよびVチャネルを加える。場合によっては、UチャネルおよびVチャネルが加えられると、フレーム処理および/またはキャプチャ命令システムはフレームのフォーマットをP010に変換する。MFNRエンジンは、得られたYUVフレームに対して時間ブレンディングプロセスを実行することができる。
図19および図20に示す例示的な構成は、緑色チャネルがどのように考慮されるのかを除いて類似である。図19の例では、各緑色チャネルGrおよびGbは、別個のYUVフレームとして処理される。図20の例では、一体化された緑色チャネル1914がYUVフレームとして処理される。一体化された緑色チャネルベースのYUVフレームは、より多くの時間ブレンディングに対応するように(超解像フレームに)アップスケールされ得る。図21は、未加工時間ブレンディングから得られるフレーム2102、および標準的なYUVフレームの使用から得られるフレーム2104を含む。フレーム2102とフレーム2104との間の比較によって示すように、未加工時間フィルタ処理ブレンドはフレームを劣化させない。
色成分ベースのYUVフレーム(たとえば、YUVフレーム1910)を使用することの利点とは、そのYUVフレームが典型的なYUVフレームよりも小さく、したがって、処理がより効率的であることである。別の利点とは、未加工時間ブレンディングが実行される場合、ブレンドされた未加工フレームが、AWBエンジン1708、ならびに/またはフレーム処理および/もしくはキャプチャ命令システム1700の追加の処理構成要素1710によって、AWB拡張のために直接送られることが可能であり、その場合、逆ISPが必要とされないことである。
上述のように、本明細書で使用する短期、中期(medium)(または、「中期(mid)」)、安全、および長期という用語は、第1の設定と第2の設定との間の相対的な特性化を指す。これらの用語は、必ずしも特定の設定に対する規定済みの範囲に対応するとは限らない。たとえば、長期露光(たとえば、長期露光持続時間または長期露光画像もしくはフレーム)とは、単に第2の露光(たとえば、短期露光または中期露光)よりも長い露光時間を指す。別の例では、短期露光(たとえば、短期露光持続時間または短期露光画像もしくはフレーム)とは、第2の露光(たとえば、長期露光または中期露光)よりも短い露光時間を指す。また別の例では、中期(mid)露光または中期(medium)露光(たとえば、中期露光持続時間または中期露光画像もしくはフレーム)とは、第1の露光(たとえば、短期露光)よりも長く第2の露光(たとえば、長期露光または中期露光)よりも短い露光時間を指す。
図22は、本明細書で説明する技法を使用して、ある個数のフレームのための露光持続時間を決定するプロセス2200の一例を示すフロー図である。ブロック2202において、プロセス2200は、1つまたは複数のフレームのための動きマップを取得することを含む。1つまたは複数のフレームは、図14に示すような、その個数のフレームをキャプチャするためのキャプチャコマンドが受信される前に取得されるフレーム(プレビューフレームと呼ばれる)であり得る。いくつかの例では、プレビューフレームは、上述のようにZSLバッファからのものであり得る。場合によっては、プレビューフレームは、上述のように短期露光フレームであり得る。
いくつかの例では、動きマップは、1つまたは複数のフレームの各フレームに対して取得され得る(たとえば、第1のフレームのための第1の動きマップ、第2のフレームのための第2の動きマップなど)。たとえば、いくつかの態様では、動きマップは各フレームにメタデータとして含められ得る。上記で説明したように、動きマップは時間フィルタ指示(TFI)と呼ばれることもある。場合によっては、動きマップは画像(たとえば、上記で説明したようなTFI画像)を含む。いくつかの例では、TFI画像は、1つまたは複数のフレームと同じ解像度を有することができる(したがって、水平方向および垂直方向において同じ個数のピクセルを有する)。いくつかの例では、TFI画像は、1つまたは複数のフレームよりも低い(水平方向および/または垂直方向において、より少ないピクセルを伴う)解像度を有することができる。たとえば、動きマップ画像の各ピクセルは、動きマップに関連する1つまたは複数のフレームからのフレーム(たとえば、動きマップがそれに対してメタデータとして含められるフレーム)の対応するピクセルごとに動きの量を示す値を含むことができる。例示的な一例では、動きマップ(または、TFI)画像のピクセルごとの値は、[0,1]という範囲の中にあり得、ただし、0という値はピクセルに対して動きがないことを示し、1という値はピクセルに対して最大の動きを示す。動きマップ(または、TFI)画像に対して、任意の他の好適な範囲または値指定が使用され得る。
ブロック2204において、プロセス2200は、シーンの1つまたは複数のフレームに関連する動きを動きマップに基づいて決定することを含む。動きは、1つまたは複数のフレームをキャプチャするために使用されるカメラに対する、シーンの中での1つまたは複数の物体の移動に対応する。動きは、本明細書で説明するように、局所的な動きと呼ばれることがある。場合によっては、動きは、フレームに対して(たとえば、メタデータとして)取得される動きマップ(たとえば、上述のような動きマップ画像)内のピクセルの値を参照することによって、1つまたは複数のフレームのうちのフレームのピクセルごとに決定され得る。
場合によっては、プロセス2200は、カメラに関連する大域的な動きを決定することを含むことができる。たとえば、プロセス2200は、プロセス2200を実行するために使用されるデバイスのジャイロスコープまたは他の慣性測定ユニット(IMU)(たとえば、加速度計など)からの測定値などの、1つまたは複数のセンサ測定値に基づいて、大域的な動きを決定することができる。場合によっては、大域的な動きは、各フレームに関連する時間中に受信されるセンサ測定値に基づいて、1つまたは複数のフレームの各フレームに対して決定され得る。たとえば、ジャイロスコープからの測定値は、特定のフレーム中に収集されたタイムスタンプとともにジャイロスコープサンプルのベクトルを含むことができる。そのような一例では、プロセス2200は、そのベクトルに基づいて特定のフレームに対する大域的な動きを決定することができる。
いくつかの例では、プロセス2200は、決定された動きおよび大域的な動きに基づいて最終動き指示を決定することを含むことができる。たとえば、プロセス2200は、決定された動きのための第1の重みおよび大域的な動きのための第2の重みを使用する、決定された動きと大域的な動きとの重み付き結合に基づいて、最終動き指示を決定することができる。例示的な一例では、最終動き指示は、lin_blend(GMI,GMI*LMI,LMI_weight)^2として決定することができ、ただし、lin_blendは、線形ブレンディング演算である。別の例示的な例では、FMIは、lin_blend(GMI,GMI*LMI,LMI_weight)として決定することができる。
ブロック2206において、プロセス2200は、フレームの個数、およびその個数のフレームをキャプチャするための露光(たとえば、露光時間または露光持続時間)を、決定された動きに基づいて決定することを含む。いくつかの例では、決定された露光持続時間は、露光持続時間(または、露光時間)およびゲインに基づく。上述のように、プロセス2200は、(たとえば、ジャイロスコープ測定値などの1つまたは複数のセンサ測定値に基づいて)カメラに関連する大域的な動きを決定することを含むことができる。そのような場合、ブロック2206において、プロセス2200は、フレームの個数、およびその個数のフレームをキャプチャするための露光持続時間を、決定された動きおよび大域的な動きに基づいて決定することを含むことができる。上記でさらに述べたように、プロセス2200は、決定された動きおよび大域的な動きに基づいて最終動き指示を決定することを含むことができる。そのような場合、ブロック2206において、プロセス2200は、最終動き指示に基づいて、フレームの個数、およびその個数のフレームをキャプチャするための露光持続時間を決定することを含むことができる。
場合によっては、その個数のフレームは、上記で説明したような長期露光フレームを含むことができる。いくつかの例では、上記で説明したように、図12のグラフ1200の中の値(または、他の値)は、大域的な動きに基づいて、かつ/または最終動き指示に基づいて、動きマップ(または、TFI画像)によって示される動きに基づいて長期露光時間(または、長期露光持続時間)およびフレーム数を決定するために使用され得る。たとえば、いくつかの例では、プロセス2200は、1つまたは複数のフレームの中の動きの量が動きしきい値よりも小さいことを、決定された動きおよび/または大域的な動きに基づいて決定することを含むことができる。たとえば、プロセス2200は、1つまたは複数のフレームの中の動きの量が動きしきい値よりも小さいことを最終動き指示に基づいて決定することを含むことができる。1つまたは複数のフレームの中の動きの量が動きしきい値よりも小さいことに基づいて、プロセス2200は、その個数のフレームに対するフレーム数を減らすとともに決定された露光持続時間に対する露光持続時間量を増やすことを含むことができる。いくつかの例では、プロセス2200は、1つまたは複数のフレームの中の動きの量が動きしきい値よりも大きいことを、決定された動きおよび/または大域的な動きに基づいて決定することを含むことができる。たとえば、プロセス2200は、1つまたは複数のフレームの中の動きの量が動きしきい値よりも大きいことを最終動き指示に基づいて決定することを含むことができる。1つまたは複数のフレームの中の動きの量が動きしきい値よりも大きいことに基づいて、プロセス2200は、その個数のフレームに対するフレーム数を増やすとともに決定された露光持続時間に対する露光持続時間量を減らすことを含むことができる。
ブロック2208において、プロセス2200は、決定された露光持続時間を使用してその個数のフレームをキャプチャするための要求を送ることを含む。たとえば、フレーム処理および/またはキャプチャ命令システムの構成要素(たとえば、低照明エンジン1458または他の構成要素)は、決定された露光持続時間を使用してその個数のフレームをキャプチャするために、MFNRおよびMMF、MFHDR、画像センサ、画像信号プロセッサ、それらの任意の組合せ、ならびに/または他の構成要素へ要求を送ることができる。
いくつかの態様では、プロセス2200は、時間的にブレンドされたフレームを生成するために、決定された露光持続時間を使用してキャプチャされるその個数のフレームに対して時間ブレンディングを実行することを含む。場合によっては、プロセス2200は、時間的にブレンドされたフレームに対して(たとえば、図14A、図14B、図15、図16、図17A、図17B、図19、および/または図20に示すものなどの)機械学習ベース画像信号プロセッサを使用して空間処理を実行することを含む。いくつかの態様では、上記で説明したように、機械学習ベース画像信号プロセッサは、時間的にブレンドされたフレームに対して空間ブレンディングを実行するための入力として動きマップ(たとえば、TFI)を使用する。たとえば、図14Aに示すように、ML ISPノード1422は、入力としてDC4 TFI統合型画像1418を使用して、ブレンドされた長期露光画像1420の中で、どこに動きが存在するのかを決定する。図14Bの例は、ALGMマップを入力として使用する。
図23は、本明細書で説明する技法を使用して1つまたは複数のフレームに対して時間ブレンディングを実行するプロセス2300の一例を示すフロー図である。ブロック2302において、プロセス2300は、未加工フレームを取得することを含む。未加工フレームは、未加工フレームのピクセルごとに単一の色成分を含む。いくつかの態様では、未加工フレームは、図19および図20に示すものなどのカラーフィルタアレイ(CFA)パターンを含む。
ブロック2304において、プロセス2300は、未加工フレームを第1の色成分、第2の色成分、および第3の色成分に分割することを含む。場合によっては、第1の色成分は赤色の色成分を含み、第2の色成分は緑色の色成分を含み、第3の色成分は青色の色成分を含む。いくつかの態様では、第1の色成分は、未加工フレームのすべての赤色ピクセルを含み、第2の色成分は、未加工フレームのすべての緑色ピクセルを含み、第3の色成分は、未加工フレームのすべての青色ピクセルを含む。たとえば、図19に示すように、(複数の未加工画像1902からの)未加工画像は、赤色(R)成分1908、緑色(G)成分、および青色(B)成分に分割される。未加工画像のR成分1908は、未加工画像からの赤色ピクセルのすべてを含み、その場合、R成分1908は、未加工画像の幅の半分および高さの半分である解像度を有する。図19に示すG成分(Gr成分およびGb成分を含む)およびB成分は各々、未加工画像の幅の4分の1および高さの4分の1である解像度を有する。図20に示す例では、(Gr成分とGb成分とを組み合わせる)G成分は、未加工画像の幅の半分および高さの半分である解像度を有する。
ブロック2306において、プロセス2300は、少なくとも部分的には、少なくとも第1のクロミナンス値を第1の色成分に、少なくとも第2のクロミナンス値を第2の色成分に、かつ少なくとも第3のクロミナンス値を第3の色成分に加えることによって、複数のフレームを生成することを含む。たとえば、プロセス2300は、少なくとも部分的には、少なくとも第1のクロミナンス値を第1の色成分に加えることによって、第1のフレームを生成することと、少なくとも部分的には、少なくとも第2のクロミナンス値を第2の色成分に加えることによって、第2のフレームを生成することと、少なくとも部分的には、少なくとも第3のクロミナンス値を第3の色成分に加えることによって、第3のフレームを生成することとを含むことができる。いくつかの例では、プロセス2300は、少なくとも部分的には、第1のクロミナンス値および第2のクロミナンス値を第1の色成分に加えることによって、第1のフレームを生成することと、少なくとも部分的には、第1のクロミナンス値および第2のクロミナンス値を第2の色成分に加えることによって、第2のフレームを生成することと、少なくとも部分的には、第1のクロミナンス値および第2のクロミナンス値を第3の色成分に加えることによって、第3のフレームを生成することとを含むことができる。例示的な一例では、図19を参照すると、Uクロミナンスチャネルに対する値およびVクロミナンスチャネルに対する値をR成分1908に加えることによって、Uクロミナンスチャネル1912およびVクロミナンスチャネル1914がR成分1908に加えられ、時間フィルタ処理のためのMFNRエンジンによって処理される出力フレームをもたらす。いくつかの態様では、第1のクロミナンス値および第2のクロミナンス値が同じ値である。
ブロック2308において、プロセス2300は、複数のフレームに対して時間ブレンディングを実行することを含む。たとえば、図19および/または図20に示すMFNRエンジンが時間ブレンディングを実行することができる。いくつかの態様では、複数のフレームに対して時間ブレンディングを実行するために、プロセス2300は、複数のフレームのうちの第1のフレームを、第1の色成分を有する1つまたは複数の追加のフレームと時間的にブレンドすることと、複数のフレームのうちの第2のフレームを、第2の色成分を有する1つまたは複数の追加のフレームと時間的にブレンドすることと、複数のフレームのうちの第3のフレームを、第3の色成分を有する1つまたは複数の追加のフレームと時間的にブレンドすることとを含むことができる。たとえば、図19に示すように、複数の未加工画像1902が処理される。YUV画像は、(複数の未加工画像1902からの)各未加工画像の色成分ごとに生成されることが可能であり、色成分ごとに複数のYUV画像(たとえば、未加工画像からのR色成分を含む複数のYUV画像、未加工画像からのGr色成分を含む複数のYUV画像、未加工画像からのGb色成分を含む複数のYUV画像、および未加工画像からのB色成分を含む複数のYUV画像)をもたらす。図19のシステムによって生成される色成分ごとの複数のYUV画像は、次いで、(たとえば、MFNRによる)時間ブレンディングのために処理され得る。たとえば、未加工画像からのR色成分を含む複数のYUV画像がMFNRによって時間的にブレンドされること、未加工画像からのGr色成分を含む複数のYUV画像がMFNRによって時間的にブレンドされること、未加工画像からのGb色成分を含む複数のYUV画像がMFNRによって時間的にブレンドされること、および未加工画像からのB色成分を含む複数のYUV画像がMFNRによって時間的にブレンドされることが可能である。
いくつかの例では、本明細書で説明するプロセス(たとえば、プロセス2200、プロセス2300、および/または本明細書で説明する他のプロセス)は、コンピューティングデバイスまたは装置によって実行されてよい。いくつかの例では、プロセス2200および/またはプロセス2300は、図1のフレームキャプチャおよび処理システム100、図4のフレーム処理および/もしくはキャプチャ命令システム400、図14Aのフレーム処理および/もしくはキャプチャ命令システム1400、図14Bのフレーム処理および/もしくはキャプチャ命令システム1405、図17Aのフレーム処理および/もしくはキャプチャ命令システム1700、図19のシステム、ならびに/または図20のシステムによって実行され得る。別の例では、プロセス2200および/またはプロセス2300は、図1の画像処理デバイス105Bによって実行され得る。別の例では、プロセス2200および/またはプロセス2300は、図26に示すコンピューティングシステム2600のアーキテクチャを有するコンピューティングデバイスまたはシステムによって実行され得る。たとえば、図26に示すコンピューティングシステム2600のアーキテクチャを有するコンピューティングデバイスは、図1のフレームキャプチャおよび処理システム100、図4のフレーム処理および/もしくはキャプチャ命令システム400、図14Aのフレーム処理および/もしくはキャプチャ命令システム1400、図14Bのフレーム処理および/もしくはキャプチャ命令システム1405、図17Aのフレーム処理および/もしくはキャプチャ命令システム1700、図19のシステム、ならびに/または図20のシステムの構成要素を含むことができ、図22の動作および/または図23の動作を実施することができる。
コンピューティングデバイスは、モバイルデバイス(たとえば、モバイルフォン)、デスクトップコンピューティングデバイス、タブレットコンピューティングデバイス、ウェアラブルデバイス(たとえば、VRヘッドセット、ARヘッドセット、ARグラス、ネットワーク接続ウォッチもしくはスマートウォッチ、または他のウェアラブルデバイス)、サーバコンピュータ、車両もしくは車両のコンピューティングデバイス、ロボティックデバイス、テレビジョン、および/またはプロセス2200を含む本明細書で説明するプロセスを実行するためのリソース能力を有する任意の他のコンピューティングデバイスなどの、任意の好適なデバイスを含むことができる。場合によっては、コンピューティングデバイスまたは装置は、1つもしくは複数の入力デバイス、1つもしくは複数の出力デバイス、1つもしくは複数のプロセッサ、1つもしくは複数のマイクロプロセッサ、1つもしくは複数のマイクロコンピュータ、1つもしくは複数のカメラ、1つもしくは複数のセンサ、および/または本明細書で説明するプロセスのステップを実行するように構成される他の構成要素などの、様々な構成要素を含んでよい。いくつかの例では、コンピューティングデバイスは、ディスプレイ、データを通信および/もしくは受信するように構成されたネットワークインターフェース、それらの任意の組合せ、ならびに/または他の構成要素を含んでよい。ネットワークインターフェースは、インターネットプロトコル(IP)ベースのデータまたは他のタイプのデータを通信および/または受信するように構成され得る。
コンピューティングデバイスの構成要素は、回路構成の中に実装され得る。たとえば、構成要素は、1つもしくは複数のプログラマブル電子回路(たとえば、マイクロプロセッサ、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、中央処理ユニット(CPU)、および/または他の好適な電子回路)を含み得る、電子回路もしくは他の電子ハードウェアを含むことができ、かつ/またはそれらを使用して実装されることが可能であり、かつ/あるいは本明細書で説明する様々な動作を実行するために、コンピュータソフトウェア、ファームウェア、もしくはそれらの任意の組合せを含むことができ、かつ/またはそれらを使用して実装されることが可能である。
プロセス2200およびプロセス2300は、論理フロー図として図示され、その動作は、ハードウェア、コンピュータ命令、またはそれらの組合せで実装され得る動作のシーケンスを表す。コンピュータ命令のコンテキストでは、動作は、1つまたは複数のプロセッサによって実行されたとき、記載された動作を実行する、1つまたは複数のコンピュータ可読記憶媒体上に記憶されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実行するかまたは特定のデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が説明される順序は、限定として解釈されることを意図せず、説明する任意の数の動作は、プロセスを実施するために任意の順序で、かつ/または並列に組み合わせられ得る。
追加として、プロセス2200、プロセス2300、および/または本明細書で説明する他のプロセスは、実行可能命令を用いて構成された1つまたは複数のコンピュータシステムの制御下で実行されてよく、1つもしくは複数のプロセッサ上で、ハードウェアによって、またはそれらの組合せで、集合的に実行するコード(たとえば、実行可能命令、1つもしくは複数のコンピュータプログラム、または1つもしくは複数のアプリケーション)として実装されてよい。上述のように、コードは、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読記憶媒体または機械可読記憶媒体上に記憶され得る。コンピュータ可読記憶媒体または機械可読記憶媒体は非一時的であってよい。
上記で説明したように、機械学習ベース画像信号プロセッサ(たとえば、図14A、図14B、図15、図16、および/または図17AのML ISP)が、場合によっては使用され得る。ML ISPは、1つまたは複数のニューラルネットワークを含むことができる。図24は、いくつかの例による、ニューラルネットワーク2400の一例を示すブロック図である。図24のニューラルネットワーク2400は、そのようなML ISPを実施するために使用され得る。図24のニューラルネットワーク2400は、上記で説明したシステムおよび技法のうちのいずれかによって実行されるような、本明細書で説明する任意の動作を実施するために使用され得る。
入力層2420は入力データを含む。例示的な一例では、入力層2420は、1つまたは複数のカメラによってキャプチャされる入力画像のピクセルを表すデータを含むことができる。画像はビデオフレームであってよい。ニューラルネットワーク2400は、複数の隠れ層2422a、2422b~2422nを含む。隠れ層2422a、2422b~2422nは「n」個の隠れ層を含み、ただし、「n」は1以上の整数である。隠れ層の個数は、所与の適用例にとって必要とされるのと同数の層を含むようにされ得る。ニューラルネットワーク2400は、隠れ層2422a、2422b~2422nによって実行される処理から得られた出力を提供する出力層2424をさらに含む。例示的な一例では、出力層2424は、入力ビデオフレームの中の物体のためのオプティカルフローおよび/または重みマップを提供することができる。例示的な一例では、出力層2424は、入力ビデオフレームの符号化されたバージョンを提供することができる。
ニューラルネットワーク2400は、相互接続されたノードの多層ニューラルネットワークである。各ノードは情報を表すことができる。ノードに関連する情報は異なる層の間で共有され、情報が処理されるにつれて各層が情報を保持する。場合によっては、ニューラルネットワーク2400はフィードフォワードネットワークを含むことができ、その場合、ネットワークの出力がそれ自体にフィードバックされるフィードバック接続はない。場合によっては、ニューラルネットワーク2400は再帰ニューラルネットワークを含むことができ、再帰ニューラルネットワークは、入力において読み取りながらノードにわたって情報が搬送されることを可能にするループを有することができる。
様々な層間のノード間相互接続部を通じて、情報がノード間で交換され得る。入力層2420のノードは、最初の隠れ層2422aの中のノードのセットを活性化することができる。たとえば、図示のように、入力層2420の入力ノードの各々は、最初の隠れ層2422aのノードの各々に接続される。最初の隠れ層2422aのノードは、活性化関数を入力ノード情報に適用することによって、各入力ノードの情報を変換することができる。変換から導出された情報は、次いで、次の隠れ層2422bのノードに渡すことができ、そうしたノードを活性化することができ、隠れ層2422bはそれら自体の指定された機能を実行することができる。例示的な機能は、畳み込み、アップサンプリング、データ変換、および/または任意の他の好適な機能を含む。隠れ層2422bの出力は、次いで、次の隠れ層のノードを活性化することができ、以下同様である。最後の隠れ層2422nの出力は、出力層2424の1つまたは複数のノードを活性化することができ、そこにおいて出力が提供される。場合によっては、ニューラルネットワーク2400の中のノード(たとえば、ノード2426)は、複数の出力線を有するものとして示されるが、ノードは単一の出力を有し、ノードから出力されるものとして示されるすべての線が同じ出力値を表す。
場合によっては、各ノードまたはノード間の相互接続部は、ニューラルネットワーク2400のトレーニングから導出されるパラメータのセットである、重みを有することができる。ニューラルネットワーク2400は、トレーニングされると、トレーニング済みのニューラルネットワークと呼ばれることがあり、トレーニング済みのニューラルネットワークは、2Dオプティカルフローを生成すること、MSオプティカルフローを生成すること、重みマップを生成すること、2Dオプティカルフローに基づいてフレームを2Dワープすること、MSオプティカルフローに基づいてフレームをMSワープすること、データを符号化すること、データを復号すること、予測フレームを生成すること、またはそれらの組合せを行うために使用され得る。たとえば、ノード間の相互接続部は、相互接続されたノードについて学習された情報を表すことができる。相互接続部は、(たとえば、トレーニングデータセットに基づいて)チューニングされ得るチューニング可能な数値重みを有することができ、ニューラルネットワーク2400が、入力に対して適応的であること、およびますます多くのデータが処理されるにつれて学習できることを可能にする。
ニューラルネットワーク2400は、出力層2424を通じて出力を提供するために、異なる隠れ層2422a、2422b~2422nを使用して、入力層2420の中のデータからの特徴を処理するように事前トレーニングされる。ニューラルネットワーク2400が画像の中の物体を識別するために使用される例では、ニューラルネットワーク2400は、画像とラベルの両方を含むトレーニングデータを使用してトレーニングされ得る。たとえば、トレーニング画像は、ネットワークの中に入力されることが可能であり、各トレーニング画像は、各画像の中の1つまたは複数の物体のクラスを示すラベル(基本的に、物体が何であるのか、および物体がどんな特徴を有するのかをネットワークに示す)を有する。例示的な一例では、トレーニング画像は数字2の画像を含むことができ、その場合、画像のためのラベルは[0 0 1 0 0 0 0 0 0 0]であり得る。
場合によっては、ニューラルネットワーク2400は、誤差逆伝搬法と呼ばれるトレーニングプロセスを使用して、ノードの重みを調整することができる。誤差逆伝搬法は、前方パス、損失関数、後方パス、および重み更新を含むことができる。前方パス、損失関数、後方パス、およびパラメータ更新は、1回のトレーニング反復の間に実行される。そのプロセスは、層の重みが正確にチューニングされるようにニューラルネットワーク2400が十分良好にトレーニングされるまで、トレーニング画像のセットごとに、ある回数の反復にわたって繰り返され得る。
画像の中の物体を識別する例の場合、前方パスは、トレーニング画像にニューラルネットワーク2400を通過させることを含むことができる。ニューラルネットワーク2400がトレーニングされる前に、最初に重みがランダム化される。画像は、たとえば、画像のピクセルを表す数字のアレイを含むことができる。アレイの中の各数字は、アレイの中のその位置におけるピクセル強度を表す0から255までの値を含むことができる。一例では、アレイは、28行および28列のピクセルならびに(赤色成分、緑色成分、および青色成分、またはルーマ成分および2つのクロマ成分などの)3つの色成分を有する、数字の28×28×3アレイを含むことができる。
ニューラルネットワーク2400のための最初のトレーニング反復に対して、初期化において重みがランダムに選択されることに起因して、出力は、いずれの特定のクラスへの選好も与えない値を含む可能性がある。たとえば、出力が、異なるクラスを物体が含む確率を伴うベクトルである場合、異なるクラスの各々に対する確率値は等しいかまたは少なくとも極めて類似することがある(たとえば、10個の可能なクラスに対して、各クラスが0.1という確率値を有することがある)。初期重みを用いると、ニューラルネットワーク2400は低レベルの特徴を決定することができず、したがって、(たとえば、フレームの特定のエリアに対するオプティカルフローまたは重みマッピングの)正確な決定を行うことができない。出力の中の誤差を分析するために、損失関数が使用され得る。任意の好適な損失関数定義が使用され得る。損失関数の一例は、平均二乗誤差(MSE)を含む。MSEは、
として定義され、予測(出力)される解を実際の解から引いて2乗したものの2分の1の総和を計算する。損失は、Etotalの値に等しくなるように設定され得る。
実際の値は予測される出力とは大きく異なるので、最初のトレーニング画像に対して損失(または、誤差)は大きい。トレーニングの目標は、予測される出力がトレーニングラベルと同じになるように、損失の量を最小化することである。ニューラルネットワーク2400は、どの入力(重み)がネットワークの損失に最も寄与したのかを決定することによって後方パスを実行することができ、損失が小さくなり最終的に最小化されるように重みを調整することができる。
ネットワークの損失に最も寄与した重みを決定するために、重みに関する損失の微分係数(dL/dWとして示され、ただし、Wは特定の層における重みである)が算出され得る。微分係数が算出された後、フィルタのすべての重みを更新することによって、重み更新が実行され得る。たとえば、重みは、勾配の反対方向で重みが変化するように更新され得る。重み更新は、
として示すことができ、ただし、wは重みを示し、wiは初期重みを示し、ηは学習率を示す。学習率は任意の好適な値に設定することができ、高い学習率はより大きい重み更新を含み、より小さい値はより小さい重み更新を示す。
ニューラルネットワーク2400は、任意の好適なディープネットワークを含むことができる。一例は、畳み込みニューラルネットワーク(CNN)を含み、畳み込みニューラルネットワーク(CNN)は、入力層と出力層との間の複数の隠れ層とともに入力層および出力層を含む。CNNの隠れ層は、一連の畳み込み層、非線形層、(ダウンサンプリングのための)プーリング層、および全結合層を含む。ニューラルネットワーク2400は、特に、オートエンコーダ、ディープビリーフネット(DBN:deep belief net)、再帰ニューラルネットワーク(RNN)などの、CNN以外の任意の他のディープネットワークを含むことができる。
図25は、いくつかの例による、畳み込みニューラルネットワーク(CNN)2500の一例を示すブロック図である。CNN2500の入力層2520は、1つまたは複数のカメラ210のうちの1つによってキャプチャされる画像などの、画像を表すデータを含む。たとえば、データは画像のピクセルを表す数字のアレイを含むことができ、アレイの中の各数字は、アレイの中のその位置におけるピクセル強度を表す0から255までの値を含む。上記のことからの前の例を使用すると、アレイは、28行および28列のピクセルならびに3つの色成分(たとえば、赤色成分、緑色成分、および青色成分、またはルーマ成分および2つのクロマ成分など)を有する、数字の28×28×3アレイを含むことができる。画像は、畳み込み隠れ層2522a、随意の非線形活性化層、プーリング隠れ層2522b、および全結合隠れ層2522cを通過させられて、出力層2524における出力を得ることができる。各隠れ層のうちの1つしか図25に示されないが、複数の畳み込み隠れ層、非線形層、プーリング隠れ層、および/または全結合層が、CNN2500の中に含まれ得ることを、当業者は諒解されよう。前に説明したように、出力は、2Dオプティカルフローを生成すること、MSオプティカルフローを生成すること、重みマップを生成すること、2Dオプティカルフローに基づいてフレームを2Dワープすること、MSオプティカルフローに基づいてフレームをMSワープすること、データを符号化すること、データを復号すること、予測フレームを生成すること、またはそれらの組合せを行うことができる。
CNN2500の最初の層は、畳み込み隠れ層2522aである。畳み込み隠れ層2522aは、入力層2520の画像データを分析する。畳み込み隠れ層2522aの各ノードは、受容野と呼ばれる、入力画像のノード(ピクセル)の領域に接続される。畳み込み隠れ層2522aは、1つまたは複数のフィルタと見なすことができ(各フィルタは異なる活性化マップまたは特徴マップに対応する)、フィルタの各畳み込み反復は、畳み込み隠れ層2522aのノードまたはニューロンである。たとえば、各畳み込み反復においてフィルタがカバーする入力画像の領域がフィルタの受容野であることになる。例示的な一例では、入力画像が28×28アレイを含み、かつ各フィルタ(および、対応する受容野)が5×5アレイである場合、畳み込み隠れ層2522aの中に24×24個のノードがある。ノードとそのノードのための受容野との間の各接続は、重みを、また場合によっては、入力画像の中のその局所的な特定の受容野を分析するために各ノードが学習するようなバイアス全体を、学習する。隠れ層2522aの各ノードは、同じ重みおよびバイアスを有する(共有重みおよび共有バイアスと呼ばれる)。たとえば、フィルタは、重み(数字)のアレイ、および入力と同じ深度を有する。フィルタは、(入力画像の3つの色成分に従って)ビデオフレーム例に対して3という深度を有する。フィルタアレイの説明のための例示的なサイズは、ノードの受容野のサイズに対応する5×5×3である。
畳み込み隠れ層2522aの畳み込み性質は、畳み込み層の各ノードがその対応する受容野に適用されることに起因する。たとえば、畳み込み隠れ層2522aのフィルタは、入力画像アレイの左上隅角において開始することができ、入力画像の周りで畳み込むことができる。上述のように、フィルタの各畳み込み反復は、畳み込み隠れ層2522aのノードまたはニューロンと見なされ得る。各畳み込み反復において、フィルタの値は、画像の対応する個数の元のピクセル値と乗算される(たとえば、5×5フィルタアレイは、入力画像アレイの左上隅角において入力ピクセル値の5×5アレイで乗算される)。各畳み込み反復からの乗算は一緒に加算されて、その反復またはノードに対する総計を取得することができる。そのプロセスは、次に、畳み込み隠れ層2522aの中の次のノードの受容野に従って、入力画像の中の次のロケーションにおいて継続される。たとえば、フィルタは、あるステップ量(ストライドと呼ばれる)だけ次の受容野まで動かすことができる。ストライドは、1または他の好適な量に設定され得る。たとえば、ストライドが1に設定される場合、フィルタは、各畳み込み反復において1ピクセルだけ右に動かされる。入力ボリュームの固有の各ロケーションにおいてフィルタを処理することは、そのロケーションに対するフィルタ結果を表す数字を生み出し、畳み込み隠れ層2522aのノードごとに総計値が決定される結果となる。
入力層から畳み込み隠れ層2522aへのマッピングは、活性化マップ(または、特徴マップ)と呼ばれる。活性化マップは、入力ボリュームの各ロケーションにおいてフィルタ結果を表す、ノードごとの値を含む。活性化マップは、入力ボリュームに対するフィルタの各反復から得られる様々な総計値を含むアレイを含むことができる。たとえば、5×5フィルタが28×28入力画像の各ピクセルに適用される場合(1というストライド)、活性化マップは24×24アレイを含む。畳み込み隠れ層2522aは、画像の中の複数の特徴を識別するために、いくつかの活性化マップを含むことができる。図25に示す例は、3つの活性化マップを含む。3つの活性化マップを使用して、畳み込み隠れ層2522aは、3つの異なる種類の特徴を検出することができ、各特徴は画像全体にわたって検出可能である。
いくつかの例では、畳み込み隠れ層2522aの後に非線形隠れ層が適用され得る。非線形層は、線形演算を算出していたシステムに非線形性を導入するために使用され得る。非線形層の例示的な一例は、正規化線形ユニット(ReLU)層である。ReLU層は、入力ボリュームの中の値のすべてに関数f(x)=max(0,x)を適用することができ、そのことは、すべての負の活性化を0に変える。したがって、ReLUは、畳み込み隠れ層2522aの受容野に影響を及ぼすことなく、CNN2500の非線形特性を高めることができる。
畳み込み隠れ層2522aの後(かつ、使用されるときは非線形隠れ層の後)に、プーリング隠れ層2522bが適用され得る。プーリング隠れ層2522bは、畳み込み隠れ層2522aからの出力の中の情報を簡略化するために使用される。たとえば、プーリング隠れ層2522bは、畳み込み隠れ層2522aから出力される各活性化マップを取ることができ、プーリング関数を使用して、凝縮された活性化マップ(または、特徴マップ)を生成する。マックスプーリングは、プーリング隠れ層によって実行される関数の一例である。平均プーリング、L2ノルムプーリング、または他の好適なプーリング関数などの、他の形態のプーリング関数が、プーリング隠れ層2522aによって使用され得る。プーリング関数(たとえば、マックスプーリングフィルタ、L2ノルムフィルタ、または他の好適なプーリングフィルタ)は、畳み込み隠れ層2522aの中に含まれる各活性化マップに適用される。図25に示す例では、畳み込み隠れ層2522aの中の3つの活性化マップのために3つのプーリングフィルタが使用される。
いくつかの例では、マックスプーリングは、(たとえば、2×2というサイズを有する)マックスプーリングフィルタを、(たとえば、2というストライドなどの、フィルタの次元に等しい)あるストライドを用いて、畳み込み隠れ層2522aから出力された活性化マップに適用することによって、使用され得る。マックスプーリングフィルタからの出力は、フィルタがその周りで畳み込む、あらゆる部分領域の中の最大数を含む。一例として2×2フィルタを使用すると、プーリング層の中の各ユニットは、前の層の中の2×2ノード(各ノードは活性化マップの中の値である)の領域を要約することができる。たとえば、活性化マップの中の4つの値(ノード)は、フィルタの各反復において2×2のマックスプーリングによって分析され、4つの値からの最大値が「マックス」値として出力される。そのようなマックスプーリングフィルタが、24×24ノードという寸法を有する畳み込み隠れ層2522aからの活性化フィルタに適用される場合、プーリング隠れ層2522bからの出力は、12×12ノードのアレイである。
いくつかの例では、L2ノルムプーリングフィルタも使用され得る。L2ノルムプーリングフィルタは、(マックスプーリングにおいて行われるように最大値を算出するのではなく)活性化マップの2×2領域(または、他の好適な領域)の中の値の二乗和の平方根を算出することと、算出された値を出力として使用することとを含む。
直観的には、プーリング関数(たとえば、マックスプーリング関数、L2ノルムプーリング関数、または他のプーリング関数)は、所与の特徴が画像の領域の中のどこかで見つかるかどうかを決定し、厳密な位置情報を廃棄する。このことは、特徴が見つけられていると、特徴の厳密なロケーションは、他の特徴に対するその近似的なロケーションほど重要ではないので、特徴検出の結果に影響を及ぼすことなく行うことができる。マックスプーリング(ならびに、他のプーリング方法)は、プーリングされるはるかに少ない特徴しかないという利点をもたらし、したがって、CNN2500のもっと後の層において必要とされるパラメータの数を減らす。
ネットワークの中の接続の最終の層は、プーリング隠れ層2522bからのあらゆるノードを出力層2524の中の出力ノードのうちのあらゆる出力ノードに接続する、全結合層である。上記の例を使用すると、入力層は、入力画像のピクセル強度を符号化する28×28ノードを含み、畳み込み隠れ層2522aは、3つの活性化マップへの5×5の(フィルタのための)局所的受容野の適用に基づく3×24×24の隠れ特徴ノードを含み、プーリング隠れ層2522bは、3つの特徴マップの各々にわたる2×2の領域へのマックスプーリングフィルタの適用に基づく3×12×12の隠れ特徴ノードの層を含む。この例を拡張すると、出力層2524は10個の出力ノードを含むことができる。そのような例では、3×12×12のプーリング隠れ層2522bのあらゆるノードが、出力層2524のあらゆるノードに接続される。
全結合層2522cは、前のプーリング隠れ層2522bの(高レベル特徴の活性化マップを表すはずである)出力を取得することができ、特定のクラスに最も相関する特徴を決定する。たとえば、全結合層2522cは、特定のクラスに最も強く相関する高レベル特徴を決定することができ、高レベル特徴に対する重み(ノード)を含むことができる。全結合層2522cおよびプーリング隠れ層2522bの重みの間で積が算出されて、異なるクラスに対する確率を取得することができる。たとえば、オプティカルフローを生成するためにCNN2500が使用中である場合、あるフレームから別のフレームへの視覚要素の動きの高レベル特徴を表す活性化マップの中に、大きい値が存在する。
いくつかの例では、出力層2524からの出力は、M次元ベクトル(前の例では、M=10)を含むことができ、ここで、Mは、オプティカルフローにおける可能な動きベクトル方向、オプティカルフローにおける可能な動きベクトル振幅、重みマップの中の可能な重み値などに対応する、データを含むことができる。例示的な一例では、9次元出力ベクトルが、10個の異なる可能な値が[0 0 0.05 0.8 0 0.15 0 0 0 0]であることを表す場合、そのベクトルは、5%確率の第3の値、80%確率の第4の値、および15%確率の第6の値があることを示す。可能な値にとっての確率は、その値に対する(たとえば、その動きベクトル方向に対する、その動きベクトル振幅に対する、その重み値に対するなど)信頼性レベルまたは確実性レベルと見なされ得る。
図26は、本技術のいくつかの態様を実施するためのシステムの一例を示す図である。詳細には、図26はコンピューティングシステム2600の一例を示し、コンピューティングシステム2600は、たとえば、システムの構成要素が接続部2605を使用して互いに通信している、内部コンピューティングシステム、リモートコンピューティングシステム、カメラ、またはそれらの任意の構成要素を構成する、任意のコンピューティングデバイスであり得る。接続部2605は、バスを使用する物理接続、またはチップセットアーキテクチャなどにおけるプロセッサ2610への直接接続であり得る。接続部2605はまた、仮想接続、ネットワーク接続、または論理接続であり得る。
いくつかの実施形態では、コンピューティングシステム2600は、本開示で説明する機能が、1つまたは複数のデータセンター、ピアネットワークなどの中で分散され得る、分散型システムである。いくつかの実施形態では、説明するシステム構成要素のうちの1つまたは複数は、構成要素がそれに対して説明される機能の一部または全部を各々が実行するような多くの構成要素を表す。いくつかの実施形態では、構成要素は物理デバイスまたは仮想デバイスであり得る。
例示的なシステム2600は、少なくとも1つの処理ユニット(CPUまたはプロセッサ)2610、ならびに読取り専用メモリ(ROM)2620およびランダムアクセスメモリ(RAM)2625などのシステムメモリ2615を含む様々なシステム構成要素をプロセッサ2610に結合する接続部2605を含む。コンピューティングシステム2600は、プロセッサ2610と直接接続されるか、プロセッサ2610に極めて近接しているか、またはプロセッサ2610の一部として統合される、高速メモリのキャッシュ2612を含むことができる。
プロセッサ2610は、任意の汎用プロセッサ、ならびにプロセッサ2610を制御するように構成された、記憶デバイス2630の中に記憶されるサービス2632、2634、および2636などのハードウェアサービスまたはソフトウェアサービス、ならびにソフトウェア命令が実際のプロセッサ設計の中に組み込まれる専用プロセッサを含むことができる。プロセッサ2610は、本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全に自蔵式のコンピューティングシステムであってよい。マルチコアプロセッサは、対称であっても非対称であってもよい。
ユーザ対話を可能にするために、コンピューティングシステム2600は入力デバイス2645を含み、入力デバイス2645は、発話のためのマイクロフォン、ジェスチャー入力またはグラフィカル入力のためのタッチ感知スクリーン、キーボード、マウス、動き入力、発話などの、任意の数の入力機構を表すことができる。コンピューティングシステム2600はまた、出力デバイス2635を含むことができ、出力デバイス2635は、いくつかの出力機構のうちの1つまたは複数であり得る。いくつかの事例では、多モードのシステムが、コンピューティングシステム2600と通信するためにユーザが複数のタイプの入力/出力を提供することを可能にし得る。コンピューティングシステム2600は通信インターフェース2640を含むことができ、通信インターフェース2640は、一般に、ユーザ入力およびシステム出力を統治および管理することができる。通信インターフェースは、オーディオジャック/プラグ、マイクロフォンジャック/プラグ、ユニバーサルシリアルバス(USB)ポート/プラグ、Apple(登録商標)Lightning(登録商標)ポート/プラグ、Ethernetポート/プラグ、光ファイバポート/プラグ、プロプライエタリ有線ポート/プラグ、BLUETOOTH(登録商標)ワイヤレス信号転送、BLUETOOTH(登録商標)低エネルギー(BLE)ワイヤレス信号転送、IBEACON(登録商標)ワイヤレス信号転送、無線周波識別(RFID)ワイヤレス信号転送、近距離場通信(NFC)ワイヤレス信号転送、専用短距離通信(DSRC)ワイヤレス信号転送、802.11 Wi-Fiワイヤレス信号転送、ワイヤレスローカルエリアネットワーク(WLAN)信号転送、可視光通信(VLC)、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX)、赤外線(IR)通信ワイヤレス信号転送、公衆交換電話網(PSTN)信号転送、統合サービスデジタルネットワーク(ISDN)信号転送、3G/4G/5G/LTEセルラーデータネットワークワイヤレス信号転送、アドホックネットワーク信号転送、電波信号転送、マイクロ波信号転送、赤外線信号転送、可視光信号転送、紫外光信号転送、電磁スペクトルに沿ったワイヤレス信号転送、またはそれらの何らかの組合せを利用するものを含む、有線および/またはワイヤレスのトランシーバを使用する有線通信またはワイヤレス通信の、受信および/または送信を実行または容易にし得る。通信インターフェース2640はまた、1つまたは複数の全地球航法衛星システム(GNSS)システムに関連する1つまたは複数の衛星からの1つまたは複数の信号の受信に基づいて、コンピューティングシステム2600のロケーションを決定するために使用される、1つまたは複数のGNSSレシーバまたはトランシーバを含んでよい。GNSSシステムは、限定はしないが、米国の全地球測位システム(GPS)、ロシアの全地球航法衛星システム(GLONASS)、中国のBeiDou航法衛星システム(BDS)、および欧州のGalileo GNSSを含む。任意の特定のハードウェア構成上で動作することに対して制約がなく、したがって、ここでの基本的な特徴は、それらが開発されるにつれて、改善されたハードウェア構成またはファームウェア構成に対して容易に置き換えられてよい。
記憶デバイス2630は、不揮発性のかつ/または非一時的なかつ/またはコンピュータ可読のメモリデバイスであってよく、ハードディスク、または磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、磁気ストリップ/ストライプ、任意の他の磁気記憶媒体、フラッシュメモリ、メモリスタメモリ、任意の他のソリッドステートメモリ、コンパクトディスク読取り専用メモリ(CD-ROM)光ディスク、再書き込み可能コンパクトディスク(CD)光ディスク、デジタルビデオディスク(DVD)光ディスク、ブルーレイディスク(BDD)光ディスク、ホログラフィック光ディスク、別の光媒体、セキュアデジタル(SD)カード、マイクロセキュアデジタル(microSD)カード、メモリスティック(登録商標)カード、スマートカードチップ、EMVチップ、加入者識別モジュール(SIM)カード、ミニ/マイクロ/ナノ/ピコSIMカード、別の集積回路(IC)チップ/カード、ランダムアクセスメモリ(RAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュEPROM(FLASHEPROM)、キャッシュメモリ(L1/L2/L3/L4/L5/L#)、抵抗性ランダムアクセスメモリ(RRAM/ReRAM)、位相変化メモリ(PCM)、スピン転送トルクRAM(STT-RAM)、別のメモリチップもしくはカートリッジ、および/またはそれらの組合せなどの、コンピュータによってアクセス可能であるデータを記憶できる他のタイプのコンピュータ可読媒体であってよい。
記憶デバイス2630は、そのようなソフトウェアを定義するコードがプロセッサ2610によって実行されるとシステムに機能を実行させる、ソフトウェアサービス、サーバ、サービスなどを含むことができる。いくつかの実施形態では、特定の機能を実行するハードウェアサービスは、機能を実行するために、プロセッサ2610、接続部2605、出力デバイス2635などの必要なハードウェア構成要素に関してコンピュータ可読媒体の中に記憶された、ソフトウェア構成要素を含むことができる。
本明細書で使用する「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブルの記憶デバイス、光記憶デバイス、ならびに命令および/またはデータを記憶、格納、または搬送することが可能な様々な他の媒体を含む。コンピュータ可読媒体は、データが記憶されることが可能な、かつワイヤレスにまたは有線接続を介して伝搬する搬送波および/または一時的な電子信号を含まない、非一時的媒体を含んでよい。非一時的媒体の例は、限定はしないが、磁気ディスクもしくはテープ、コンパクトディスク(CD)もしくはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリ、またはメモリデバイスを含んでよい。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表すことがある、コードおよび/または機械実行可能命令を記憶していることがある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡すことおよび/または受けることによって、別のコードセグメントまたはハードウェア回路に結合されてよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の好適な手段を使用して渡され、転送され、または送信されてよい。
いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含むケーブル信号またはワイヤレス信号を含むことができる。しかしながら、言及されるとき、非一時的コンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、および信号それ自体などの媒体を明確に除外する。
本明細書で提供する実施形態および例の完全な理解を与えるために、上記の説明において具体的な詳細が提供されている。しかしながら、本実施形態がこれらの具体的な詳細なしに実践され得ることが当業者によって理解されよう。説明を明快にするために、いくつかの事例では、本技術は、デバイス、デバイス構成要素、ソフトウェアで具現される方法におけるステップまたはルーチン、またはハードウェアとソフトウェアとの組合せを備える、機能ブロックを含む個々の機能ブロックを含むものとして提示されることがある。図に示されるものおよび/または本明細書で説明されるもの以外の追加の構成要素が使用されてよい。たとえば、不必要な詳細で実施形態を不明瞭にしないように、回路、システム、ネットワーク、プロセス、または他の構成要素がブロック図の形態で構成要素として示されることがある。他の事例では、実施形態を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法は、不必要な詳細なしに示されることがある。
個々の実施形態が、フロー図、フローチャート、データフロー図、構造図、またはブロック図として示されるプロセスまたは方法として上記で説明されることがある。フロー図は動作を逐次プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実行され得る。加えて、動作の順序は並べ替えられてよい。プロセスは、その動作が完了するときに終了するが、図の中に含まれない追加のステップを有する場合がある。プロセスは、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに相当することがある。プロセスが関数に相当するとき、その終了は、その関数が呼出し関数またはメイン関数に戻ることに相当し得る。
上記で説明した例によるプロセスおよび方法は、記憶されるかまたは別のやり方でコンピュータ可読媒体から利用可能なコンピュータ実行可能命令を使用して実施され得る。そのような命令は、たとえば、汎用コンピュータ、専用コンピュータ、もしくは処理デバイスに、いくつかの機能もしくは機能のグループを実行させるか、またはいくつかの機能もしくは機能のグループを実行するように汎用コンピュータ、専用コンピュータ、もしくは処理デバイスを別のやり方で構成する、命令およびデータを含むことができる。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、たとえば、アセンブリ言語、ファームウェア、ソースコードなどの、バイナリ、中間フォーマット命令であってよい。命令、使用される情報、および/または説明する例による方法の間に作成される情報を記憶するために使用され得るコンピュータ可読媒体の例は、磁気ディスクまたは光ディスク、フラッシュメモリ、不揮発性メモリが設けられたUSBデバイス、ネットワーク記憶デバイスなどを含む。
これらの開示によるプロセスおよび方法を実施するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せを含むことができ、様々なフォームファクタのうちのいずれかをとることができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読媒体または機械可読媒体の中に記憶されてよい。プロセッサは、必要なタスクを実行してよい。フォームファクタの典型的な例は、ラップトップ、スマートフォン、モバイルフォン、タブレットデバイスまたは他の小型フォームファクタパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどを含む。本明細書で説明する機能性はまた、周辺装置またはアドインカードの中で具現され得る。そのような機能性はまた、さらなる例として、異なるチップの中の回路基板上、または単一のデバイスの中で実行する異なるプロセス上で実施され得る。
命令、そのような命令を伝えるための媒体、命令を実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、本開示で説明する機能を提供するための例示的な手段である。
上記の説明では、本出願の態様はそれらの特定の実施形態を参照しながら説明されるが、本出願がそれらに限定されないことを当業者は認識されよう。したがって、本出願の例示的な実施形態が本明細書で詳細に説明されているが、本発明の概念が別のやり方で様々に具現および採用され得ることと、従来技術によって限定される場合を除き、添付の特許請求の範囲がそのような変形を含むものと解釈されることが意図されることとを理解されたい。上記で説明した適用例の様々な特徴および態様は、個別にまたは共同で使用され得る。さらに、実施形態は、本明細書のより広い趣旨および範囲から逸脱することなく、本明細書で説明するもの以外の任意の数の環境および適用例において利用され得る。したがって、本明細書および図面は、限定的ではなく例示的であると見なされるべきである。例示のために、方法は特定の順序で説明された。代替実施形態では、説明された順序とは異なる順序で方法が実行され得ることを諒解されたい。
本明細書において使用される、よりも小さい(「<」)およびよりも大きい(「>」)という記号または用語は、本説明の範囲から逸脱することなく、それぞれ、以下(「≦」)および以上(「≧」)という記号で置き換えられ得ることを、当業者は諒解されよう。
構成要素がいくつかの動作を実行する「ように構成される」ものとして説明される場合、そのような構成は、たとえば、動作を実行するように電子回路もしくは他のハードウェアを設計することによって、動作を実行するようにプログラマブル電子回路(たとえば、マイクロプロセッサ、または他の好適な電子回路)をプログラムすることによって、またはそれらの任意の組合せで達成され得る。
「に結合される」という句は、直接もしくは間接的にのいずれかで別の構成要素に物理的に接続される任意の構成要素、および/または直接もしくは間接的にのいずれかで別の構成要素と通信している(たとえば、有線もしくはワイヤレスの接続および/または他の好適な通信インターフェースを介して他の構成要素に接続される)任意の構成要素を指す。
セット「のうちの少なくとも1つ」および/またはセットのうちの「1つまたは複数」と記載する請求項の文言または他の文言は、セットの1つのメンバーまたはセットの(任意の組合せでの)複数のメンバーが請求項を満足することを示す。たとえば、「AおよびBのうちの少なくとも1つ」を記載する請求項の文言は、A、B、またはAおよびBを意味する。別の例では、「A、B、およびCのうちの少なくとも1つ」を記載する請求項の文言は、A、B、C、またはAおよびB、またはAおよびC、またはBおよびC、またはAおよびBおよびCを意味する。セット「のうちの少なくとも1つ」および/またはセットのうちの「1つまたは複数」という文言は、セットの中に列挙される項目にセットを限定しない。たとえば、「AおよびBのうちの少なくとも1つ」を記載する請求項の文言は、A、B、またはAおよびBを意味することができ、追加として、AおよびBのセットの中に列挙されない項目を含むことができる。
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組合せとして実装され得る。ハードウェアとソフトウェアとのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能性に関して上記で説明されている。そのような機能性がハードウェアとして実装されるのかそれともソフトウェアとして実装されるのかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明する機能性を特定の適用例ごとに様々な方法で実装し得るが、そのような実装決定は、本出願の範囲からの逸脱を引き起こすものと解釈されるべきではない。
本明細書で説明する技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の使用を有する集積回路デバイスなどの、様々なデバイスのうちのいずれかにおいて実装され得る。モジュールまたは構成要素として説明する任意の特徴は、集積論理デバイスの中で一緒に、または個別であるが相互動作可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装される場合、技法は、実行されたとき、上記で説明した方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備える、コンピュータ可読データ記憶媒体によって少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、FLASHメモリ、磁気または光データ記憶媒体などの、メモリまたはデータ記憶媒体を備えてよい。技法は、追加または代替として、伝搬される信号または波などの、命令またはデータ構造の形態のプログラムコードを搬送または通信するとともに、コンピュータによってアクセスされ、読み取られ、かつ/または実行され得る、コンピュータ可読通信媒体によって少なくとも部分的に実現されてよい。
プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の均等な集積論理回路構成もしくは個別論理回路構成などの、1つまたは複数のプロセッサを含み得るプロセッサによって実行されてよい。そのようなプロセッサは、本開示で説明する技法のうちのいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであってよいが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装されてよい。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明する技法の実装に適した任意の他の構造もしくは装置のうちのいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明する機能性は、符号化および復号のために構成された専用のソフトウェアモジュールもしくはハードウェアモジュール内に設けられてよく、または複合ビデオエンコーダデコーダ(コーデック)の中に組み込まれてもよい。
本開示の例示的な態様は以下を含む。
態様1. いくつかのフレームに対する露光持続時間を決定するための装置。装置は、(たとえば、回路構成の中に実装される)メモリと、メモリに結合された1つまたは複数のプロセッサ(たとえば、1つのプロセッサまたは複数のプロセッサ)とを含む。1つまたは複数のプロセッサは、1つまたは複数のフレームのための動きマップを取得することと、シーンの1つまたは複数のフレームに関連する動きを動きマップに基づいて決定することであって、動きが、1つまたは複数のフレームをキャプチャするために使用されるカメラに対する、シーンの中での1つまたは複数の物体の移動に対応することと、フレームの個数、およびその個数のフレームをキャプチャするための露光を、決定された動きに基づいて決定することと、決定された露光持続時間を使用してその個数のフレームをキャプチャするための要求を送ることとを行うように構成される。
態様2. その個数のフレームをキャプチャするためのキャプチャコマンドが受信される前に、1つまたは複数のフレームが取得される、態様1の装置。
態様3. 1つまたは複数のプロセッサは、時間的にブレンドされたフレームを生成するために、決定された露光持続時間を使用してキャプチャされるその個数のフレームに対して時間ブレンディングを実行するように構成される、態様1または2のうちのいずれか1つの装置。
態様4. 1つまたは複数のプロセッサは、時間的にブレンドされたフレームに対して機械学習ベース画像信号プロセッサを使用して空間処理を実行するように構成される、態様3の装置。
態様5. 機械学習ベース画像信号プロセッサは、時間的にブレンドされたフレームに対して空間処理を実行するための入力として動きマップを使用する、態様4の装置。
態様6. 決定された露光持続時間はゲインに基づく、態様1~5のうちのいずれか1つの装置。
態様7. 動きマップは画像を含み、画像の各ピクセルは、ピクセルごとの動きの量および動きの量に関連する信頼性値のうちの少なくとも1つを示す値を含む、態様1~6のうちのいずれか1つの装置。
態様8. 1つまたは複数のプロセッサは、カメラに関連する大域的な動きを1つまたは複数のセンサ測定値に基づいて決定するように構成され、フレームの個数、およびその個数のフレームをキャプチャするための露光持続時間は、決定された動きおよび大域的な動きに基づいて決定される、態様1~7のうちのいずれか1つの装置。
態様9. 決定された動きおよび大域的な動きに基づいて、フレームの個数、およびその個数のフレームをキャプチャするための露光持続時間を決定するために、1つまたは複数のプロセッサは、決定された動きおよび大域的な動きに基づいて最終動き指示を決定し、最終動き指示に基づいて、フレームの個数、およびその個数のフレームをキャプチャするための露光持続時間を決定するように構成される、態様1~8のうちのいずれか1つの装置。
態様10. 決定された動きおよび大域的な動きに基づいて最終動き指示を決定するために、1つまたは複数のプロセッサは、決定された動きのための第1の重みおよび大域的な動きのための第2の重みを使用する、決定された動きと大域的な動きとの重み付き結合を決定するように構成される、態様9の装置。
態様11. 1つまたは複数のプロセッサは、1つまたは複数のフレームの中の動きの量が動きしきい値よりも小さいことを最終動き指示に基づいて決定し、1つまたは複数のフレームの中の動きの量が動きしきい値よりも小さいことに基づいて、その個数のフレームに対するフレーム数を減らすとともに決定された露光持続時間に対する露光量を増やすように構成される、態様9または10のうちのいずれか1つの装置。
態様12. 1つまたは複数のプロセッサは、1つまたは複数のフレームの中の動きの量が動きしきい値よりも大きいことを最終動き指示に基づいて決定し、1つまたは複数のフレームの中の動きの量が動きしきい値よりも大きいことに基づいて、その個数のフレームに対するフレーム数を増やすとともに決定された露光持続時間に対する露光量を減らすように構成される、態様9または10のうちのいずれか1つの装置。
態様13. 少なくとも1つのフレームをキャプチャするように構成されたカメラ、および少なくとも1つのフレームを表示するように構成されたディスプレイのうちの少なくとも1つをさらに備える、態様1~12のうちのいずれか1つの装置。
態様14. 1つまたは複数のフレームに対して時間ブレンディングを実行するための装置。装置は、1つまたは複数のフレームを記憶するように構成された(たとえば、回路構成の中に実装される)メモリと、メモリに結合された1つまたは複数のプロセッサ(たとえば、1つのプロセッサまたは複数のプロセッサ)を含む。1つまたは複数のプロセッサは、未加工フレームを取得することであって、未加工フレームが未加工フレームのピクセルごとに単一の色成分を含むことと、未加工フレームを第1の色成分、第2の色成分、および第3の色成分に分割することと、少なくとも部分的には、少なくとも第1のクロミナンス値を第1の色成分に、少なくとも第2のクロミナンス値を第2の色成分に、かつ少なくとも第3のクロミナンス値を第3の色成分に加えることによって、複数のフレームを生成することと、複数のフレームに対して時間ブレンディングを実行することとを行うように構成される。
態様15. 未加工フレームはカラーフィルタアレイ(CFA)パターンを含む、態様14の装置。
態様16. 第1の色成分は赤色の色成分を含み、第2の色成分は緑色の色成分を含み、第3の色成分は青色の色成分を含む、態様14または15のうちのいずれか1つの装置。
態様17. 第1の色成分は、未加工フレームのすべての赤色ピクセルを含み、第2の色成分は、未加工フレームのすべての緑色ピクセルを含み、第3の色成分は、未加工フレームのすべての青色ピクセルを含む、態様14~16のうちのいずれか1つの装置。
態様18. 複数のフレームを生成するために、1つまたは複数のプロセッサは、少なくとも部分的には、少なくとも第1のクロミナンス値を第1の色成分に加えることによって、第1のフレームを生成し、少なくとも部分的には、少なくとも第2のクロミナンス値を第2の色成分に加えることによって、第2のフレームを生成し、少なくとも部分的には、少なくとも第3のクロミナンス値を第3の色成分に加えることによって、第3のフレームを生成するように構成される、態様14~17のうちのいずれか1つの装置。
態様19. 第1のフレームを生成するために、1つまたは複数のプロセッサは、第1のクロミナンス値および第2のクロミナンス値を第1の色成分に加えるように構成され、第2のフレームを生成するために、1つまたは複数のプロセッサは、第1のクロミナンス値および第2のクロミナンス値を第2の色成分に加えるように構成され、第3のフレームを生成するために、1つまたは複数のプロセッサは、第1のクロミナンス値および第2のクロミナンス値を第3の色成分に加えるように構成される、態様18の装置。
態様20. 第1のクロミナンス値および第2のクロミナンス値が同じ値である、態様19の装置。
態様21. 複数のフレームに対して時間ブレンディングを実行するために、1つまたは複数のプロセッサは、複数のフレームのうちの第1のフレームを、第1の色成分を有する1つまたは複数の追加のフレームと時間的にブレンドし、複数のフレームのうちの第2のフレームを、第2の色成分を有する1つまたは複数の追加のフレームと時間的にブレンドし、複数のフレームのうちの第3のフレームを、第3の色成分を有する1つまたは複数の追加のフレームと時間的にブレンドするように構成される、態様14~20のうちのいずれか1つの装置。
態様22. 装置はモバイルデバイスである、態様14~21のうちのいずれか1つの装置。
態様23. 1つまたは複数のフレームをキャプチャするように構成されたカメラをさらに備える、態様14~22のうちのいずれか1つの装置。
態様24. 1つまたは複数のフレームを表示するように構成されたディスプレイをさらに備える、態様14~23のうちのいずれか1つの装置。
態様25. 態様1~13のうちのいずれか1つの装置および態様14~24のうちのいずれか1つの装置を備える装置。
態様26. いくつかのフレームに対する露光持続時間を決定する方法。方法は、1つまたは複数のフレームのための動きマップを取得することと、シーンの1つまたは複数のフレームに関連する動きを動きマップに基づいて決定することであって、動きが、1つまたは複数のフレームをキャプチャするために使用されるカメラに対する、シーンの中での1つまたは複数の物体の移動に対応することと、フレームの個数、およびその個数のフレームをキャプチャするための露光を、決定された動きに基づいて決定することと、決定された露光持続時間を使用してその個数のフレームをキャプチャするための要求を送ることとを備える。
態様27. その個数のフレームをキャプチャするためのキャプチャコマンドが受信される前に、1つまたは複数のフレームが取得される、態様26の方法。
態様28. 時間的にブレンドされたフレームを生成するために、決定された露光持続時間を使用してキャプチャされるその個数のフレームに対して時間ブレンディングを実行することをさらに備える、態様26または27のうちのいずれか1つの方法。
態様29. 時間的にブレンドされたフレームに対して機械学習ベース画像信号プロセッサを使用して空間処理を実行することをさらに備える、態様28の方法。
態様30. 機械学習ベース画像信号プロセッサは、時間的にブレンドされたフレームに対して空間処理を実行するための入力として動きマップを使用する、態様29の方法。
態様31. 決定された露光持続時間はゲインに基づく、態様26~30のうちのいずれか1つの方法。
態様32. 動きマップは画像を含み、画像の各ピクセルは、ピクセルごとの動きの量および動きの量に関連する信頼性値のうちの少なくとも1つを示す値を含む、態様26~31のうちのいずれか1つの方法。
態様33. カメラに関連する大域的な動きを1つまたは複数のセンサ測定値に基づいて決定することをさらに備え、フレームの個数、およびその個数のフレームをキャプチャするための露光持続時間は、決定された動きおよび大域的な動きに基づいて決定される、態様26~32のうちのいずれか1つの方法。
態様34. 決定された動きおよび大域的な動きに基づいて最終動き指示を決定することをさらに備え、フレームの個数、およびその個数のフレームをキャプチャするための露光持続時間は、最終動き指示に基づいて決定される、態様26~33のうちのいずれか1つの方法。
態様35. 最終動き指示は、決定された動きのための第1の重みおよび大域的な動きのための第2の重みを使用する、決定された動きと大域的な動きとの重み付き結合に基づく、態様34の方法。
態様36. 1つまたは複数のフレームの中の動きの量が動きしきい値よりも小さいことを最終動き指示に基づいて決定することと、1つまたは複数のフレームの中の動きの量が動きしきい値よりも小さいことに基づいて、その個数のフレームに対するフレーム数を減らすとともに決定された露光持続時間に対する露光持続時間量を増やすことをさらに備える、態様34または35のうちのいずれか1つの方法。
態様37. 1つまたは複数のフレームの中の動きの量が動きしきい値よりも大きいことを最終動き指示に基づいて決定することと、1つまたは複数のフレームの中の動きの量が動きしきい値よりも大きいことに基づいて、その個数のフレームに対するフレーム数を増やすとともに決定された露光持続時間に対する露光持続時間量を減らすこととをさらに備える、態様34または35のうちのいずれか1つの方法。
態様38. 1つまたは複数のフレームに対して時間ブレンディングを実行する方法。方法は、未加工フレームを取得することであって、未加工フレームが未加工フレームのピクセルごとに単一の色成分を含むことと、未加工フレームを第1の色成分、第2の色成分、および第3の色成分に分割することと、少なくとも部分的には、少なくとも第1のクロミナンス値を第1の色成分に、少なくとも第2のクロミナンス値を第2の色成分に、かつ少なくとも第3のクロミナンス値を第3の色成分に加えることによって、複数のフレームを生成することと、複数のフレームに対して時間ブレンディングを実行することとを備える。
態様39. 未加工フレームはカラーフィルタアレイ(CFA)パターンを含む、態様38の方法。
態様40. 第1の色成分は赤色の色成分を含み、第2の色成分は緑色の色成分を含み、第3の色成分は青色の色成分を含む、態様38または39のうちのいずれか1つの方法。
態様41. 第1の色成分は、未加工フレームのすべての赤色ピクセルを含み、第2の色成分は、未加工フレームのすべての緑色ピクセルを含み、第3の色成分は、未加工フレームのすべての青色ピクセルを含む、態様38~40のうちのいずれか1つの方法。
態様42. 複数のフレームを生成することは、少なくとも部分的には、少なくとも第1のクロミナンス値を第1の色成分に加えることによって、第1のフレームを生成することと、少なくとも部分的には、少なくとも第2のクロミナンス値を第2の色成分に加えることによって、第2のフレームを生成することと、少なくとも部分的には、少なくとも第3のクロミナンス値を第3の色成分に加えることによって、第3のフレームを生成することとを含む、態様38~41のうちのいずれか1つの方法。
態様43. 第1のフレームを生成することは、第1のクロミナンス値および第2のクロミナンス値を第1の色成分に加えることを含み、第2のフレームを生成することは、第1のクロミナンス値および第2のクロミナンス値を第2の色成分に加えることを含み、第3のフレームを生成することは、第1のクロミナンス値および第2のクロミナンス値を第3の色成分に加えることを含む、態様42の方法。
態様44. 第1のクロミナンス値および第2のクロミナンス値が同じ値である、態様43の方法。
態様45. 複数のフレームに対して時間ブレンディングを実行することは、複数のフレームのうちの第1のフレームを、第1の色成分を有する1つまたは複数の追加のフレームと時間的にブレンドすることと、複数のフレームのうちの第2のフレームを、第2の色成分を有する1つまたは複数の追加のフレームと時間的にブレンドすることと、複数のフレームのうちの第3のフレームを、第3の色成分を有する1つまたは複数の追加のフレームと時間的にブレンドすることとを含む、態様38~44のうちのいずれか1つの方法。
態様46. 1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、態様26~37のうちのいずれかによる動作を実行させる命令を記憶する、コンピュータ可読記憶媒体。
態様47. 態様26~37のうちのいずれかによる動作を実行するための手段を備える装置。
態様48. 1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、態様38~45のうちのいずれかによる動作を実行させる命令を記憶する、コンピュータ可読記憶媒体。
態様49. 態様38~45のうちのいずれかによる動作を実行するための手段を備える装置。
態様50. 1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、態様26~35のうちのいずれかによる動作および態様36~43の動作のうちのいずれかを実行させる命令を記憶する、コンピュータ可読記憶媒体。
態様51. 態様26~37のうちのいずれか1つの動作および態様38~45のうちのいずれか1つの動作を備える方法。
態様52. 態様26~37のうちのいずれかによる動作および態様38~45の動作のうちのいずれかを実行するための手段を備える装置。
100 フレームキャプチャおよび処理システム
105A 画像キャプチャデバイス
105B 画像処理デバイス
110 シーン
115 レンズ
120 制御機構
125A 露光制御機構
125B 焦点制御機構
125C ズーム制御機構
130 画像センサ
140 ランダムアクセスメモリ(RAM)
145 読取り専用メモリ(ROM)
150 画像プロセッサ
152 ホストプロセッサ
154 画像信号プロセッサ(ISP)
156 入力/出力(I/O)ポート
160 入力/出力(I/O)デバイス
400 フレーム処理および/またはキャプチャ命令システム
430 センサ
432 ゼロシャッターラグ(ZSL)バッファ
434 短期露光フレーム
436 第1のMFxRエンジン
438 ブレンドされたフレーム
440 マルチフレーム高ダイナミックレンジ(MFHDR)エンジン
442 ポストIPE
444 PSLキャプチャ
446 長期露光フレーム
448 AWB統計値
450 第1のAWBエンジン
451 ホワイトバランス(WB)スケーラ
452 第2のMFxRエンジン
454 プレビューフレーム
456 ブレンドされたフレーム
458 低照明(LL)エンジン
460 第2のAWBエンジン
461 WBスケーラ
462 低照明(LL)決定
464 自動露光制御(AEC)エンジン
502 ZSLフレーム
504 PSLフレーム
506 短期マルチフレームノイズ低減(MFNR)
508 長期MFNRおよびプレビュー
510 ホワイトバランス(WB)改良
512 MFHDRおよび後処理
1302 画像
1304 TFI画像
1400 フレーム処理および/またはキャプチャ命令システム
1401 入力
1402 第1のマルチフレームノイズ低減(MFNR)エンジン
1404 第2のMFNRエンジン
1405 フレーム処理および/またはキャプチャ命令システム
1406 第3のMFNRエンジン
1408 AWBエンジン
1410 長期フレームバッファ
1411 第1のフレーム、第1の長期露光フレーム
1412 AWB制御パラメータ
1413 ZSLバッファ
1414 中期露光フレーム
1415 ZSLバッファ
1416 短期露光フレーム
1418 統合型TFI画像
1420 ブレンドされた長期露光フレーム
1422 機械学習ベース画像信号プロセッサ(ML ISP)
1424 フィルタ処理済みの長期露光フレーム
1440 マルチフレーム高ダイナミックレンジ(MFHDR)エンジン
1441 単一の短期露光
1442 短期露光フレーム
1447 ブレンドされた長期露光画像
1448 ALGMマップ
1449 第1のダウンスケールエンジン
1451 第2のダウンスケールエンジン
1452 アップスケールエンジン
1458 低照明(LL)エンジン
1464 AECエンジン
1700 フレーム処理および/またはキャプチャ命令システム
1702 第1のMFNRエンジン
1708 AWBエンジン
1710 追加の処理構成要素
1712 AWB制御パラメータ
1718 統合されたTFI画像
1720 ブレンドされた最終のフレーム
1722 ML ISP
1740 MFHDRエンジン
1802 ZSLフレーム
1804 現在のフレーム
1806 以前のフレーム
1808 現在のフレーム
1810 以前のフレーム
1902 未加工フレーム、未加工画像
1904 ベイヤ処理セグメント(BPS)
1906 デジタル信号プロセッサ(DSP)
1908 赤色(R)成分
1910 YUVフレーム
1912 Uクロミナンスチャネル
1914 Vクロミナンスチャネル、一体化された緑色チャネル
2400 ニューラルネットワーク
2420 入力層
2422 隠れ層
2424 出力層
2426 ノード
2500 畳み込みニューラルネットワーク(CNN)
2520 入力層
2522a 畳み込み隠れ層
2522b プーリング隠れ層
2522c 全結合隠れ層、全結合層
2524 出力層
2600 コンピューティングシステム
2605 接続部
2610 プロセッサ
2612 キャッシュ
2615 システムメモリ
2620 読取り専用メモリ(ROM)
2625 ランダムアクセスメモリ(RAM)
2630 記憶デバイス
2632 サービス
2634 サービス
2635 出力デバイス
2636 サービス
2640 通信インターフェース
2645 入力デバイス

Claims (30)

1つまたは複数のフレームを処理するための装置であって、
メモリと、
前記メモリに結合された1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサが、
1つまたは複数のフレームのための動きマップを取得することと、
シーンの前記1つまたは複数のフレームに関連する動きを前記動きマップに基づいて決定することであって、前記動きが、前記1つまたは複数のフレームをキャプチャするために使用されるカメラに対する、前記シーンの中での1つまたは複数の物体の移動に対応することと、
フレームの個数、および前記個数のフレームをキャプチャするための露光を、前記決定された動きに基づいて決定することと、
前記決定された露光持続時間を使用して前記個数のフレームをキャプチャするための要求を送ることとを行うように構成される、
装置。
前記個数のフレームをキャプチャするためのキャプチャコマンドが受信される前に、前記1つまたは複数のフレームが取得される、請求項1に記載の装置。
前記1つまたは複数のプロセッサが、
時間的にブレンドされたフレームを生成するために、前記決定された露光持続時間を使用してキャプチャされる前記個数のフレームに対して時間ブレンディングを実行するように構成される、
請求項1に記載の装置。
前記1つまたは複数のプロセッサが、
前記時間的にブレンドされたフレームに対して機械学習ベース画像信号プロセッサを使用して空間処理を実行するように構成される、
請求項3に記載の装置。
前記機械学習ベース画像信号プロセッサが、前記時間的にブレンドされたフレームに対して空間ブレンディングを実行するための入力として前記動きマップを使用する、請求項4に記載の装置。
前記決定された露光持続時間がゲインに基づく、請求項1に記載の装置。
前記動きマップが画像を含み、前記画像の各ピクセルが、ピクセルごとの動きの量および動きの前記量に関連する信頼性値のうちの少なくとも1つを示す値を含む、請求項1に記載の装置。
前記1つまたは複数のプロセッサが、
前記カメラに関連する大域的な動きを1つまたは複数のセンサ測定値に基づいて決定するように構成され、
フレームの前記個数、および前記個数のフレームをキャプチャするための前記露光持続時間が、前記決定された動きおよび前記大域的な動きに基づいて決定される、
請求項1に記載の装置。
前記決定された動きおよび前記大域的な動きに基づいて、フレームの前記個数、および前記個数のフレームをキャプチャするための前記露光持続時間を決定するために、前記1つまたは複数のプロセッサが、
前記決定された動きおよび前記大域的な動きに基づいて最終動き指示を決定することと、
前記最終動き指示に基づいて、フレームの前記個数、および前記個数のフレームをキャプチャするための前記露光持続時間を決定することとを行うように構成される、
請求項8に記載の装置。
前記決定された動きおよび前記大域的な動きに基づいて前記最終動き指示を決定するために、前記1つまたは複数のプロセッサが、
前記決定された動きのための第1の重みおよび前記大域的な動きのための第2の重みを使用する、前記決定された動きと前記大域的な動きとの重み付き結合を決定するように構成される、
請求項9に記載の装置。
前記1つまたは複数のプロセッサが、
前記1つまたは複数のフレームの中の動きの量が動きしきい値よりも小さいことを前記最終動き指示に基づいて決定することと、
前記1つまたは複数のフレームの中の動きの前記量が前記動きしきい値よりも小さいことに基づいて、前記個数のフレームに対するフレーム数を減らすとともに前記決定された露光に対する露光量を増やすこととを行うように構成される、
請求項9に記載の装置。
前記1つまたは複数のプロセッサが、
前記1つまたは複数のフレームの中の動きの量が動きしきい値よりも大きいことを最終動き指示に基づいて決定することと、
前記1つまたは複数のフレームの中の動きの前記量が前記動きしきい値よりも大きいことに基づいて、前記個数のフレームに対するフレーム数を増やすとともに前記決定された露光に対する露光量を減らすこととを行うように構成される、
請求項1に記載の装置。
少なくとも1つのフレームをキャプチャするように構成されたカメラ、および前記少なくとも1つのフレームを表示するように構成されたディスプレイのうちの少なくとも1つをさらに備える、請求項1に記載の装置。
1つまたは複数のフレームを処理する方法であって、
1つまたは複数のフレームのための動きマップを取得するステップと、
シーンの前記1つまたは複数のフレームに関連する動きを前記動きマップに基づいて決定するステップであって、前記動きが、前記1つまたは複数のフレームをキャプチャするために使用されるカメラに対する、前記シーンの中での1つまたは複数の物体の移動に対応する、ステップと、
フレームの個数、および前記個数のフレームをキャプチャするための露光を、前記決定された動きに基づいて決定するステップと、
前記決定された露光持続時間を使用して前記個数のフレームをキャプチャするための要求を送るステップと
を備える方法。
前記個数のフレームをキャプチャするためのキャプチャコマンドが受信される前に、前記1つまたは複数のフレームが取得される、請求項14に記載の方法。
時間的にブレンドされたフレームを生成するために、前記決定された露光持続時間を使用してキャプチャされる前記個数のフレームに対して時間ブレンディングを実行するステップをさらに備える、
請求項14に記載の方法。
前記時間的にブレンドされたフレームに対して機械学習ベース画像信号プロセッサを使用して空間処理を実行するステップをさらに備える、
請求項16に記載の方法。
前記機械学習ベース画像信号プロセッサが、前記時間的にブレンドされたフレームに対して前記空間処理を実行するための入力として前記動きマップを使用する、請求項17に記載の方法。
前記決定された露光持続時間がゲインに基づく、請求項14に記載の方法。
前記動きマップが画像を含み、前記画像の各ピクセルが、ピクセルごとの動きの量および動きの前記量に関連する信頼性値のうちの少なくとも1つを示す値を含む、請求項14に記載の方法。
前記カメラに関連する大域的な動きを1つまたは複数のセンサ測定値に基づいて決定するステップをさらに備え、
フレームの前記個数、および前記個数のフレームをキャプチャするための前記露光持続時間が、前記決定された動きおよび前記大域的な動きに基づいて決定される、
請求項14に記載の方法。
前記決定された動きおよび前記大域的な動きに基づいて最終動き指示を決定するステップをさらに備え、
フレームの前記個数、および前記個数のフレームをキャプチャするための前記露光持続時間が、前記最終動き指示に基づいて決定される、
請求項21に記載の方法。
前記最終動き指示が、前記決定された動きのための第1の重みおよび前記大域的な動きのための第2の重みを使用する、前記決定された動きと前記大域的な動きとの重み付き結合に基づく、請求項22に記載の方法。
前記1つまたは複数のフレームの中の動きの量が動きしきい値よりも小さいことを前記最終動き指示に基づいて決定するステップと、
前記1つまたは複数のフレームの中の動きの前記量が前記動きしきい値よりも小さいことに基づいて、前記個数のフレームに対するフレーム数を減らすとともに前記決定された露光持続時間に対する露光持続時間量を増やすステップと
をさらに備える、請求項22に記載の方法。
前記1つまたは複数のフレームの中の動きの量が動きしきい値よりも大きいことを前記最終動き指示に基づいて決定するステップと、
前記1つまたは複数のフレームの中の動きの前記量が前記動きしきい値よりも大きいことに基づいて、前記個数のフレームに対するフレーム数を増やすとともに前記決定された露光持続時間に対する露光持続時間量を減らすステップと
をさらに備える、請求項22に記載の方法。
命令を記憶するコンピュータ可読記憶媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
1つまたは複数のフレームのための動きマップを取得することと、
シーンの前記1つまたは複数のフレームに関連する動きを前記動きマップに基づいて決定することであって、前記動きが、前記1つまたは複数のフレームをキャプチャするために使用されるカメラに対する、前記シーンの中での1つまたは複数の物体の移動に対応することと、
フレームの個数、および前記個数のフレームをキャプチャするための露光を、前記決定された動きに基づいて決定することと、
前記決定された露光持続時間を使用して前記個数のフレームをキャプチャするための要求を送ることとを行わせる、
コンピュータ可読記憶媒体。
前記個数のフレームをキャプチャするためのキャプチャコマンドが受信される前に、前記1つまたは複数のフレームが取得される、請求項26に記載のコンピュータ可読記憶媒体。
前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
時間的にブレンドされたフレームを生成するために、前記決定された露光持続時間を使用してキャプチャされる前記個数のフレームに対して時間ブレンディングを実行させる、命令をさらに備える、
請求項26に記載のコンピュータ可読記憶媒体。
前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
前記カメラに関連する大域的な動きを1つまたは複数のセンサ測定値に基づいて決定することと、
前記決定された動きおよび前記大域的な動きに基づいて最終動き指示を決定することとを行わせる、命令をさらに備え、
フレームの前記個数、および前記個数のフレームをキャプチャするための前記露光持続時間が、前記最終動き指示に基づいて決定される、
請求項26に記載のコンピュータ可読記憶媒体。
前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
前記1つまたは複数のフレームの中の動きの量が、動きしきい値よりも小さいのかそれとも大きいのかを、前記最終動き指示に基づいて決定することと、
前記1つまたは複数のフレームの中の動きの前記量が前記動きしきい値よりも小さいとき、前記個数のフレームに対するフレーム数を減らすとともに前記決定された露光持続時間に対する露光量を増やすことと、
前記1つまたは複数のフレームの中の動きの前記量が前記動きしきい値よりも大きいとき、前記個数のフレームに対するフレーム数を増やすとともに前記決定された露光持続時間に対する露光量を減らすこととを行わせる、命令をさらに備える、
請求項29に記載のコンピュータ可読記憶媒体。
JP2023520217A 2020-10-30 2021-10-01 フレーム処理および/またはキャプチャ命令システムおよび技法 Pending JP2023548748A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063108221P 2020-10-30 2020-10-30
US63/108,221 2020-10-30
US17/240,837 US20220138964A1 (en) 2020-10-30 2021-04-26 Frame processing and/or capture instruction systems and techniques
US17/240,837 2021-04-26
PCT/US2021/053151 WO2022093478A1 (en) 2020-10-30 2021-10-01 Frame processing and/or capture instruction systems and techniques

Publications (1)

Publication Number Publication Date
JP2023548748A true JP2023548748A (ja) 2023-11-21

Family

ID=81379094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023520217A Pending JP2023548748A (ja) 2020-10-30 2021-10-01 フレーム処理および/またはキャプチャ命令システムおよび技法

Country Status (7)

Country Link
US (1) US20220138964A1 (ja)
EP (1) EP4238305A1 (ja)
JP (1) JP2023548748A (ja)
KR (1) KR20230098575A (ja)
CN (1) CN116438804A (ja)
TW (1) TW202220433A (ja)
WO (1) WO2022093478A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11636683B2 (en) * 2021-09-14 2023-04-25 Black Sesame Technologies Inc. Precise object segmentation with multi-modal input for realtime video application
US11863880B2 (en) 2022-05-31 2024-01-02 Microsoft Technology Licensing, Llc Image frame selection for multi-frame fusion
WO2023239855A1 (en) * 2022-06-08 2023-12-14 Scandit Ag Optical pattern decoding in a real scene using overlay functionality
CN117412177A (zh) * 2022-07-04 2024-01-16 北京小米移动软件有限公司 拍摄方法、装置、介质及芯片

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7546026B2 (en) * 2005-10-25 2009-06-09 Zoran Corporation Camera exposure optimization techniques that take camera and scene motion into account
US7697836B2 (en) * 2006-10-25 2010-04-13 Zoran Corporation Control of artificial lighting of a scene to reduce effects of motion in the scene on an image being acquired
JP4215266B2 (ja) * 2006-10-30 2009-01-28 パナソニック株式会社 画像生成装置および画像生成方法
US20090244301A1 (en) * 2008-04-01 2009-10-01 Border John N Controlling multiple-image capture
EP2608529B1 (en) * 2011-12-22 2015-06-03 Axis AB Camera and method for optimizing the exposure of an image frame in a sequence of image frames capturing a scene based on level of motion in the scene
KR20180027047A (ko) * 2016-09-05 2018-03-14 엘지전자 주식회사 Hdr 영상 촬영 장치 및 그 제어 방법
WO2019082831A1 (ja) * 2017-10-27 2019-05-02 キヤノン株式会社 撮像装置、撮像装置の制御方法、および、プログラム
US11107205B2 (en) * 2019-02-18 2021-08-31 Samsung Electronics Co., Ltd. Techniques for convolutional neural network-based multi-exposure fusion of multiple image frames and for deblurring multiple image frames
CN111107292B (zh) * 2019-02-28 2021-05-18 华为技术有限公司 一种录像帧率的控制方法、移动终端及计算机存储介质

Also Published As

Publication number Publication date
KR20230098575A (ko) 2023-07-04
EP4238305A1 (en) 2023-09-06
TW202220433A (zh) 2022-05-16
CN116438804A (zh) 2023-07-14
US20220138964A1 (en) 2022-05-05
WO2022093478A1 (en) 2022-05-05

Similar Documents

Publication Publication Date Title
JP2023548748A (ja) フレーム処理および/またはキャプチャ命令システムおよび技法
US20210390747A1 (en) Image fusion for image capture and processing systems
US11895409B2 (en) Image processing based on object categorization
US20230388623A1 (en) Composite image signal processor
CN115802183A (zh) 图像处理方法及其相关设备
WO2023192706A1 (en) Image capture using dynamic lens positions
US20220414847A1 (en) High dynamic range image processing
KR20240031246A (ko) 다수의 관심 영역들을 갖는 장면들에서 선택적으로 증가하는 피사계 심도
US20230370727A1 (en) High dynamic range (hdr) image generation using a combined short exposure image
US20230377096A1 (en) Image signal processor
US11671714B1 (en) Motion based exposure control
US20240078635A1 (en) Compression of images for generating combined images
US20240144717A1 (en) Image enhancement for image regions of interest
WO2023178588A1 (en) Capturing images using variable aperture imaging devices
US20240177274A1 (en) Image effect rendering
US20240054659A1 (en) Object detection in dynamic lighting conditions
US11825207B1 (en) Methods and systems for shift estimation for one or more output frames
US11363209B1 (en) Systems and methods for camera zoom
WO2023279275A1 (en) Local motion detection for improving image capture and/or processing operations
US20240179425A1 (en) Image sensor with multiple image readout
US20230281848A1 (en) Bandwidth efficient image processing
US20240185401A1 (en) Area efficient high dynamic range bandwidth compression
WO2024030691A1 (en) High dynamic range (hdr) image generation with multi-domain motion correction
TW202410685A (zh) 使用可變光圈成像設備擷取影像