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

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

▶ フェイスブック,インク.の特許一覧

特表2023-532228ノイズ除去および低精度画像処理のための非線形画像強度変換のシステムおよび方法
<>
  • 特表-ノイズ除去および低精度画像処理のための非線形画像強度変換のシステムおよび方法 図1
  • 特表-ノイズ除去および低精度画像処理のための非線形画像強度変換のシステムおよび方法 図2
  • 特表-ノイズ除去および低精度画像処理のための非線形画像強度変換のシステムおよび方法 図3
  • 特表-ノイズ除去および低精度画像処理のための非線形画像強度変換のシステムおよび方法 図4
  • 特表-ノイズ除去および低精度画像処理のための非線形画像強度変換のシステムおよび方法 図5
  • 特表-ノイズ除去および低精度画像処理のための非線形画像強度変換のシステムおよび方法 図6
  • 特表-ノイズ除去および低精度画像処理のための非線形画像強度変換のシステムおよび方法 図7
  • 特表-ノイズ除去および低精度画像処理のための非線形画像強度変換のシステムおよび方法 図8
  • 特表-ノイズ除去および低精度画像処理のための非線形画像強度変換のシステムおよび方法 図9
  • 特表-ノイズ除去および低精度画像処理のための非線形画像強度変換のシステムおよび方法 図10
  • 特表-ノイズ除去および低精度画像処理のための非線形画像強度変換のシステムおよび方法 図11
  • 特表-ノイズ除去および低精度画像処理のための非線形画像強度変換のシステムおよび方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-07-27
(54)【発明の名称】ノイズ除去および低精度画像処理のための非線形画像強度変換のシステムおよび方法
(51)【国際特許分類】
   G06T 3/40 20060101AFI20230720BHJP
   G06T 1/40 20060101ALI20230720BHJP
   G06T 5/00 20060101ALI20230720BHJP
【FI】
G06T3/40 730
G06T1/40
G06T5/00 705
G06T3/40 725
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022578793
(86)(22)【出願日】2021-07-02
(85)【翻訳文提出日】2023-02-17
(86)【国際出願番号】 US2021040376
(87)【国際公開番号】W WO2022006556
(87)【国際公開日】2022-01-06
(31)【優先権主張番号】63/047,875
(32)【優先日】2020-07-02
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.Linux
3.UNIX
4.JAVA
5.PYTHON
6.JAVASCRIPT
7.iOS
(71)【出願人】
【識別番号】508178054
【氏名又は名称】メタ プラットフォームズ, インク.
(74)【代理人】
【識別番号】110002974
【氏名又は名称】弁理士法人World IP
(72)【発明者】
【氏名】チュー, ポー
(72)【発明者】
【氏名】ヤン, ハイタオ
(72)【発明者】
【氏名】シェン, リーイン
【テーマコード(参考)】
5B057
【Fターム(参考)】
5B057CA01
5B057CA08
5B057CA12
5B057CA16
5B057CB01
5B057CB08
5B057CB12
5B057CB16
5B057CE02
5B057CH05
5B057DB02
5B057DB06
5B057DB09
5B057DC40
(57)【要約】
本明細書に記載された技法は、非線形技法を使用して画像を変換することおよび/または画像を量子化することを実現する。変換された画像は、画像強調(たとえば、画像強調を実行する前の前処理ステップであり得る変換および/または量子化)に使用することができる。たとえば、非線形強度変換技法は、元の画像に対して画像処理を実行することと比較して、効率的なノイズ除去、より良い低精度画像処理などを実現することができる。
【選択図】図1
【特許請求の範囲】
【請求項1】
画像を処理するコンピュータ実装方法であって、前記方法が、
少なくとも1つのプロセッサを使用して、
第1のビット深度のピクセル強度値を有するピクセルを含む入力画像を取得することと、
第2のビット深度のピクセル強度値を含む量子化入力画像を生成するために、前記入力画像のピクセル強度値に第1の非線形変換を適用することによって少なくとも部分的に前記入力画像を量子化することであって、前記第2のビット深度が前記第1のビット深度よりも小さい、前記入力画像を量子化することと、
画像処理に前記量子化入力画像を提供することと
を実行すること
を含む、方法。
【請求項2】
前記入力画像を量子化することが、
前記入力画像の前記ピクセル強度値に前記第1の非線形変換を適用することから、変換された入力画像を取得することと、
前記量子化入力画像を取得するために前記変換された入力画像のピクセル強度値に全射マッピングを適用することであって、前記全射マッピングが前記第2のビット深度のピクセル強度値に前記第1のビット深度のピクセル強度値をマッピングする、全射マッピングを適用することと
を含む、請求項1に記載の方法。
【請求項3】
前記第2のビット深度が第1のピクセル強度および第2のピクセル強度を含み、前記第1のピクセル強度が前記第2のピクセル強度よりも小さく、
前記入力画像を量子化することが、前記第2のピクセル強度よりも少ない数の前記第1のビット深度のピクセル強度を前記第1のピクセル強度にマッピングすることを含む、
請求項2に記載の方法。
【請求項4】
画像処理パイプラインから前記第2のビット深度のピクセル強度値を含む出力画像を取得することと、
前記第1のビット深度のピクセル強度値を含む逆量子化出力画像を生成するために、前記出力画像のピクセル強度値に第2の非線形変換を適用することによって少なくとも部分的に前記出力画像を逆量子化することと
をさらに含む、請求項1に記載の方法。
【請求項5】
前記第2の非線形変換が前記第1の非線形変換のインバースを含む、請求項4に記載の方法。
【請求項6】
画像処理パイプラインに前記量子化入力画像を提供することが、ニューラルプロセッサに前記量子化入力画像を提供することを含む、請求項1に記載の方法。
【請求項7】
画像処理パイプラインに前記量子化入力画像を提供することが、デジタル信号プロセッサ(DSP)に前記量子化入力画像を提供することを含む、請求項1に記載の方法。
【請求項8】
画像処理パイプラインが、前記少なくとも1つのプロセッサよりも低い電力の1つまたは複数のプロセッサを備える、請求項1に記載の方法。
【請求項9】
前記第1のビット深度が、10ビット、12ビット、14ビット、または16ビットである、請求項1に記載の方法。
【請求項10】
前記第2のビット深度が8ビットである、請求項1に記載の方法。
【請求項11】
前記第1のビット深度が、10ビット、12ビット、14ビット、または16ビットであり、
前記第2のビット深度が8ビットである、
請求項1に記載の方法。
【請求項12】
画像処理パイプラインが、前記第2のビット深度のピクセル強度値を含む複数の量子化画像を使用して訓練された機械学習モデルを備え、
前記画像処理パイプラインに前記量子化入力画像を提供することが、強調された出力画像を取得するために前記機械学習モデルに前記量子化入力画像を提供することを含む、
請求項1に記載の方法。
【請求項13】
画像処理システムであって、前記システムが、
画像処理アプリケーション用の命令を含む不揮発性メモリと、
少なくとも1つのプロセッサとを備え、前記プロセッサが、前記画像処理アプリケーションの実行によって、
第1のビット深度のピクセル強度値を有するピクセルを含む入力画像を取得することと、
第2のビット深度のピクセル強度値を含む量子化入力画像を生成するために、前記入力画像のピクセル強度値に第1の非線形変換を適用することによって少なくとも部分的に前記入力画像を量子化することであって、前記第2のビット深度が前記第1のビット深度よりも小さい、前記入力画像を量子化することと、
画像処理に前記量子化入力画像を提供することと、を行うように指示される、
システム。
【請求項14】
命令を記憶する非一時的コンピュータ可読記憶媒体をさらに備え、前記命令は、少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに
第1のビット深度のピクセル強度値を有するピクセルを含む入力画像を取得することと、
第2のビット深度のピクセル強度値を含む量子化入力画像を生成するために、前記入力画像のピクセル強度値に第1の非線形変換を適用することによって少なくとも部分的に前記入力画像を量子化することであって、前記第2のビット深度が前記第1のビット深度よりも小さい、前記入力画像を量子化することと、
画像処理に前記量子化入力画像を提供することと、を行わせる、
請求項1に記載の方法。
【請求項15】
画像強調のための機械学習モデルを訓練するコンピュータ実装方法であって、前記方法が、
少なくとも1つのプロセッサを使用して、
第1のビット深度のピクセル強度値を含む複数の画像を取得することと、
第2のビット深度のピクセル強度値を含む複数の量子化画像を生成するために、前記複数の画像のピクセル強度値に非線形変換を適用することによって少なくとも部分的に前記複数の画像を量子化することであって、前記第2のビット深度が前記第1のビット深度よりも小さい、前記複数の画像を量子化することと、
前記複数の量子化画像を使用して前記機械学習モデルを訓練することと
を実行すること
を含む、方法。
【請求項16】
前記複数の画像が入力画像および目標出力画像を含み、前記複数の量子化画像を使用して前記機械学習モデルを訓練することが、量子化入力画像および量子化目標出力画像に教師付き学習アルゴリズムを適用することを含む、請求項15に記載の方法。
【請求項17】
前記機械学習モデルがニューラルネットワークを含む、請求項15に記載の方法。
【請求項18】
前記複数の量子化画像を使用して前記機械学習モデルを訓練することが、入力画像をノイズ除去するように前記機械学習モデルを訓練することを含む、請求項15に記載の方法。
【請求項19】
画像を強調するコンピュータ実装方法であって、前記方法が、
少なくとも1つのプロセッサを使用して、
強調されるべき入力画像を取得することと、
変換された入力画像を取得するために前記入力画像のピクセル強度値に非線形変換を適用することと、
前記変換された入力画像を使用して、訓練された機械学習モデルに提供されるべき入力を生成することと、
強調された出力画像を取得するために前記訓練された機械学習モデルに生成された前記入力を提供することと
を実行すること
を含む、方法。
【請求項20】
前記入力画像が、前記入力画像の前記ピクセル強度値にわたるノイズ特性の第1の分散を有し、
前記変換された入力画像が、前記入力画像の前記ピクセル強度値にわたる前記ノイズ特性の第2の分散を有し、
前記第2の分散が前記第1の分散よりも小さい、
請求項19に記載の方法。
【請求項21】
前記ノイズ特性がノイズ標準偏差である、請求項20に記載の方法。
【請求項22】
前記訓練された機械学習モデルが、前記入力をノイズ除去するように訓練されている、請求項19に記載の方法。
【請求項23】
前記訓練された機械学習モデルが、ニューラルネットワークを含む、請求項19に記載の方法。
【請求項24】
前記訓練された機械学習モデルが、訓練データに教師付き訓練アルゴリズムを適用することによって生成される、請求項19に記載の方法。
【請求項25】
前記入力画像が第1のビット深度のピクセル強度値を含み、
前記変換された入力画像を使用して前記入力を生成することが、
第2のビット深度のピクセル強度値を含む量子化入力画像を取得するために前記変換された入力画像を量子化することであって、前記第2のビット深度が前記第1のビット深度よりも小さい、前記変換された入力画像を量子化すること
を含み、
前記訓練された機械学習モデルに前記生成された入力を提供することが、前記訓練された機械学習モデルへの前記入力として前記量子化入力画像を提供することを含む、
請求項19に記載の方法。
【請求項26】
前記変換された入力画像を量子化することが、前記変換された入力画像のピクセル強度値に全射マッピングを適用することを含み、前記全射マッピングが、前記第2のビット深度のピクセル強度値に前記第1のビット深度の前記ピクセル強度値をマッピングする、請求項25に記載の方法。
【請求項27】
前記第2のビット深度が第1のピクセル強度および第2のピクセル強度を含み、前記第1のピクセル強度が前記第2のピクセル強度よりも小さく、
前記入力画像を量子化することが、前記第2のピクセル強度よりも少ない数の前記第1のビット深度のピクセル強度を前記第1のピクセル強度にマッピングすることを含む、
請求項26に記載の方法。
【請求項28】
画像処理システムであって、前記システムが、
画像処理アプリケーション用の命令を含む不揮発性メモリと、
少なくとも1つのプロセッサとを備え、前記プロセッサが、前記画像処理アプリケーションの実行によって、
強調されるべき入力画像を取得することと、
変換された入力画像を取得するために前記入力画像のピクセル強度値に非線形変換を適用することと、
前記変換された入力画像を使用して、訓練された機械学習モデルに提供されるべき入力を生成することと、
強調された出力画像を取得するために前記訓練された機械学習モデルに生成された前記入力を提供することと
を行うように指示される
システム。
【請求項29】
前記方法が、命令を記憶する非一時的コンピュータ可読記憶媒体をさらに備え、前記命令は、少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに
強調されるべき入力画像を取得することと、
変換された入力画像を取得するために前記入力画像のピクセル強度値に非線形変換を適用することと、
前記変換された入力画像を使用して、訓練された機械学習モデルに提供されるべき入力を生成することと、
強調された出力画像を取得するために前記訓練された機械学習モデルに前記生成された入力を提供することと
を行わせる、請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、その開示が全体として参照により本明細書に組み込まれる、2020年7月2日に出願された、Zhuらの「Systems and Methods of Nonlinear Image Intensity Transformation for Denoising and Low-Precision Image Processing」と題する米国仮特許出願第63/047,875号の優先権を主張する。
【0002】
本明細書に記載された技法は、一般に、強調されるべき画像を処理する技法に関し、より詳細には、非線形変換を使用してピクセル値を修正することに関する。
【背景技術】
【0003】
画像は画像キャプチャデバイス(たとえば、デジタルカメラの画像センサ)によって取り込まれる場合がある。取り込まれた画像は、画像が取り込まれた条件に起因して品質が不十分な場合がある。たとえば、画像は、不十分な照明、短い露出時間、および/または他の条件に起因してノイズを有する場合がある。さらに、取り込まれた画像は、画像キャプチャデバイスの制限に起因して品質が不十分な場合がある。たとえば、画像キャプチャデバイスは、画像が取り込まれた条件を補償するためのメカニズムをもたない場合がある。
【発明の概要】
【0004】
本明細書に記載された技法は、非線形技法を使用して画像の画像強度値(たとえば、ピクセル値)を変換することを実現する。変換された画像は、画像を強調するために(たとえば、画像強調を実行する前の前処理ステップとして)使用することができる。たとえば、非線形強度変換技法は、元の画像に対して画像処理を実行することと比較して、効率的なノイズ除去、より良い低精度画像処理などを実現することができる。
【0005】
一態様によれば、画像を処理するコンピュータ実装方法。方法は、第1のビット深度のピクセルを含む入力画像を取得することと、第2のビット深度のピクセルを含む量子化入力画像を生成するために、入力画像のピクセル強度に第1の非線形変換を適用することによって少なくとも部分的に入力画像を量子化することであって、第2のビット深度が第1のビット深度よりも小さい、入力画像を量子化することと、画像処理に量子化入力画像を提供することとを実行するために、少なくとも1つのプロセッサを使用することを含む。
【0006】
一実施形態では、入力画像を量子化することは、入力画像のピクセル強度に第1の非線形変換を適用することから変換された入力画像を取得することと、量子化入力画像を取得するために変換された入力画像のピクセル強度に全射マッピングを適用することであって、全射マッピングが第2のビット深度のピクセル強度に第1のビット深度のピクセル強度をマッピングする、変換された入力画像のピクセル強度に全射マッピングを適用することとを含む。
【0007】
一実施形態では、第2のビット深度は第1のピクセル強度および第2のピクセル強度を含み、第1のピクセル強度は第2のピクセル強度よりも小さく、入力画像を量子化することは、第2のピクセル強度よりも少ない数の第1のビット深度のピクセル強度を第1のピクセル強度にマッピングすることを含む。
【0008】
一実施形態では、方法は、画像処理パイプラインから第2のビット深度のピクセルを含む出力画像を取得することと、第1のビット深度のピクセルを含む逆量子化出力画像を生成するために、出力画像のピクセル強度に第2の非線形変換を適用することによって少なくとも部分的に出力画像を逆量子化することとをさらに含む。一実施形態では、第2の非線形変換は第1の非線形変換のインバースを含む。
【0009】
一実施形態では、画像処理パイプラインに量子化入力画像を提供することは、ニューラルプロセッサに量子化入力画像を提供することを含む。一実施形態では、画像処理パイプラインに量子化入力画像を提供することは、デジタル信号プロセッサ(DSP)に量子化入力画像を提供することを含む。一実施形態では、画像処理パイプラインは、少なくとも1つのプロセッサよりも低い電力の1つまたは複数のプロセッサを備える。
【0010】
一実施形態では、第1のビット深度は、10ビット、12ビット、14ビット、または16ビットである。一実施形態では、第2のビット深度は8ビットである。一実施形態では、第1のビット深度は、10ビット、12ビット、14ビット、または16ビットであり、第2のビット深度は8ビットである。
【0011】
一実施形態では、画像処理パイプラインは、第2のビット深度のピクセルを含む複数の量子化画像を使用して訓練された機械学習モデルを備え、画像処理パイプラインに量子化入力画像を提供することは、強調された出力画像を取得するために機械学習モデルに量子化入力画像を提供することを含む。
【0012】
別の態様によれば、画像強調のための機械学習モデルを訓練するコンピュータ実装方法が提供される。方法は、第1のビット深度のピクセルを含む複数の画像を取得することと、第2のビット深度のピクセルを含む複数の量子化入力画像を生成するために、複数の画像のピクセル強度に非線形変換を適用することによって少なくとも部分的に複数の画像を量子化することであって、第2のビット深度が第1のビット深度よりも小さい、複数の画像を量子化することと、複数の量子化画像を使用して機械学習モデルを訓練することとを実行するために、少なくとも1つのプロセッサを使用することを含む。
【0013】
一実施形態によれば、複数の画像は入力画像および目標出力画像を含み、複数の量子化画像を使用して機械学習モデルを訓練することは、量子化入力画像および量子化目標出力画像に教師付き学習アルゴリズムを適用することを含む。
【0014】
一実施形態によれば、機械学習モデルはニューラルネットワークを備える。一実施形態によれば、複数の量子化画像を使用して機械学習モデルを訓練することは、入力画像をノイズ除去するように機械学習モデルを訓練することを含む。
【0015】
別の態様によれば、画像を強調するコンピュータ実装方法が提供される。方法は、強調されるべき入力画像を取得することと、変換された入力画像を取得するために入力画像のピクセル強度に非線形変換を適用することと、変換された入力画像を使用して、訓練された機械学習モデルに提供されるべき入力を生成することと、強調された出力画像を取得するために訓練された機械学習モデルに生成された入力を提供することとを実行するために、少なくとも1つのプロセッサを使用することを含む。
【0016】
一実施形態では、入力画像は、入力画像のピクセル強度にわたるノイズ特性の第1の分散を有し、変換された入力画像は、入力画像のピクセル強度にわたるノイズ特性の第2の分散を有し、第2の分散は第1の分散よりも小さい。一実施形態では、ノイズ特性はノイズ標準偏差である。
【0017】
一実施形態では、訓練された機械学習モデルは、入力をノイズ除去するように訓練される。一実施形態では、訓練された機械学習モデルは、ニューラルネットワークを備える。一実施形態では、訓練された機械学習モデルは、訓練データに教師付き訓練アルゴリズムを適用することによって生成される。
【0018】
一実施形態では、入力画像は第1のビット深度のピクセルを含む。
【0019】
変換された入力画像を使用して入力を生成することは、第2のビット深度のピクセルを含む量子化入力画像を取得するために、変換された入力画像を量子化することを含み、第2のビット深度は第1のビット深度よりも小さく、訓練された機械学習モデルに生成された入力を提供することは、訓練された機械学習モデルへの入力として量子化入力画像を提供することを含む。一実施形態では、変換された入力画像を量子化することは、変換された入力画像のピクセル強度に全射マッピングを適用することを含み、全射マッピングは、第2のビット深度のピクセル強度に第1のビット深度のピクセル強度をマッピングする。
【0020】
一実施形態では、第2のビット深度は第1のピクセル強度および第2のピクセル強度を含み、第1のピクセル強度は第2のピクセル強度よりも小さい。
【0021】
入力画像を量子化することは、第2のピクセル強度よりも少ない数の第1のビット深度のピクセル強度を第1のピクセル強度にマッピングすることを含む。
【0022】
以下の発明を実施するための形態がより良く理解され得るように、かつ当技術分野に対する本寄与がより良く諒解され得るように、開示された主題の特徴がかなり大まかに概説されている。当然、以下に記載され、本明細書に添付された特許請求の範囲の主題を形成する開示された主題のさらなる特徴が存在する。本明細書で使用される述語および用語は、説明目的のためであり、限定するものと見なされるべきでないことを理解されたい。
【0023】
本出願の様々な態様および実施形態が以下の図を参照して記載される。図は必ずしも縮尺通りに描かれていないことを諒解されたい。複数の図に現れる項目は、それらが現れるすべての図において同じ参照番号によって示されている。
【図面の簡単な説明】
【0024】
図1】本明細書に記載された本発明のいくつかの実施形態による、本明細書に記載された技法が実装され得る例示的なシステムのブロック図である。
図2】本明細書に記載された本発明のいくつかの実施形態による、画像を処理するための例示的なプロセスのフローチャートである。
図3】本明細書に記載された本発明のいくつかの実施形態による、画像を量子化するための例示的なプロセスのフローチャートである。
図4】本明細書に記載された本発明のいくつかの実施形態による、画像を逆量子化するための例示的なプロセスのフローチャートである。
図5】本明細書に記載された本発明のいくつかの実施形態による、画像を強調するための例示的なプロセスのフローチャートである。
図6】本明細書に記載された本発明のいくつかの実施形態による、機械学習モデルを訓練するための例示的なシステムのブロック図である。
図7】本明細書に記載された本発明のいくつかの実施形態による、画像強調のための機械学習モデルを訓練するための例示的なプロセスのフローチャートである。
図8】いくつかの実施形態による、ピクセル強度の線形量子化を示すプロットである。
図9】いくつかの実施形態による、対数関数を使用するピクセル強度の非線形量子化を示すプロットである。
図10】いくつかの実施形態による、指数関数を使用するピクセル強度の非線形量子化を示すプロットである。
図11】いくつかの実施形態による、非線形変換の適用からのノイズ特性分散の減少を示すプロットである。
図12】本明細書に記載された本発明のいくつかの実施形態を実装するために使用され得る例示的なコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【0025】
次に図面に目を向けると、本発明の実施形態によるノイズ除去および画像処理のための非線形画像強度変換用のシステムおよび方法が記載されている。(たとえば、画像センサを使用して)画像キャプチャデバイスによって取り込まれた画像は、コンピューティングデバイス(たとえば、プロセッサ)が扱うように装備しているよりも高いダイナミックレンジによって表される場合がある。たとえば、CMOS画像センサを使用して取り込まれた画像は、14ビット深度のピクセルを有する場合があるが、低電力のデジタル信号プロセッサ(DSP)、ニューラル処理装置(NPU)などは、8ビット深度のピクセルを有する画像を処理することに限定される場合がある。DSP、NPUなどは、8ビット入力に限定される場合があり、かつ/または8ビット演算を実行するように構成される場合がある。従来のシステムは、コンピューティングデバイスによる処理向けに画像のビット深度を低減するために、画像に線形量子化を適用することができる。しかしながら、画像のそのような量子化は、しばしば、処理される画像の情報損失、したがって画像品質の低下につながる可能性がある。
【0026】
本発明の多くの実施形態は、輝度と人間の視覚との間に非線形関係が存在し得ることを認識する。たとえば、デジタル画像を視ている人間は、通常、高輝度(たとえば、高いピクセル強度)での変化よりも低輝度(たとえば、低いピクセル強度)でのピクセルまたはピクセル領域の絶対強度の変化に敏感である。したがって、本明細書に記載されるのは、量子化画像データに対して動作する画像処理からもたらされる知覚画像品質の損失を軽減することができる、非線形画像強度変換および/または量子化の技法である。本明細書に記載される技法は、画像品質の損失が低い変換された画像を取得するために、輝度と人間の視覚との間の非線形関係を活用する。いくつかの実装形態は、低いピクセル強度の間の相違点を最小化しながら画像のビット深度を低減するために、画像に非線形変換を適用し、画像を量子化する。
【0027】
ノイズ特性は、画像内のピクセル強度によって異なる場合がある。たとえば、ノイズの標準偏差は、ピクセル強度によって異なる場合がある。本発明のいくつかの実施形態は、画像強調(たとえば、ノイズ除去)向けに訓練された機械学習モデルの複雑度が、強調されるべき画像がピクセル強度にわたるノイズ特性の高い分散(たとえば、標準偏差)を有するときに増大することを認識する。たとえば、(たとえば、画像をノイズ除去することによって)画像を強調するように訓練されているニューラルネットワークモデルは、ピクセル強度にわたるノイズ標準偏差の高い分散を有するとき、複数のノイズレベルからなる必要があるので、より多くのレイヤ、チャネル、したがって重みを必要とする場合がある。機械学習モデルの複雑度が増大するにつれて、コンピューティングデバイスは画像を強調(たとえば、ノイズ除去)するためにより多くの計算、メモリ、および電力を必要とする場合があるので、機械学習モデルを使用するコンピューティングデバイスの効率は減少する。たとえば、ノイズ除去向けに訓練されたニューラルネットワークを実行することによって画像を強調するニューラルプロセッサは、コンピューティングデバイスが画像をノイズ除去するために画像ピクセル当たりより多くの計算、メモリ、および電力を必要とする場合があるために、ニューラルネットワークのレイヤの数が増大するにつれて効率的でなくなる。
【0028】
したがって、本明細書に記載されたいくつかの技法は、ピクセル強度にわたる画像内のノイズ特性分散を減少させるために、画像のピクセル強度に非線形変換を適用する。ピクセル強度にわたるノイズ特性分散の低下は、画像を強調するために必要な機械学習モデルがより小さい範囲のノイズレベルをノイズ除去することが必要とされるので、モデルの複雑度を低減することができる。このように、機械学習モデルを使用するコンピューティングデバイスは、より効率的に画像を処理することができる。いくつかの実施形態は、画像の量子化または再量子化と連携して、画像のピクセル強度に非線形変換を適用する。いくつかの実施形態は、画像を量子化せずに、画像のピクセル強度に非線形変換を適用する。
【0029】
本発明のさらなる実施形態では、本明細書に記載された技法などの技法によって準備された1つまたは複数の画像は、機械学習モデル用の訓練データとして使用することができるか、または強調されるべき入力データとして訓練された機械学習モデルに提供することができる。画像を強調し、機械学習モデルを訓練するためのシステムおよび方法は、Shenらの米国特許公開第2020/0051217号(出願整理番号16/634,424)(’217公開)に開示され、その関連する部分は、それらの全体が参照により本明細書に組み込まれ、そのコピーが付録Aとして同封されている。
【0030】
以下の説明では、開示された主題を完全に理解するために、開示された主題のシステムおよび方法、ならびにそのようなシステムおよび方法が動作することができる環境などに関して、多くの具体的な詳細が記載されている。本明細書に記載されたいくつかの実施形態は、従来の画像処理技法に伴う上述された問題に対処する。しかしながら、本明細書に記載されたあらゆる実施形態がこれらの問題のすべてに対処するとは限らないことを諒解されたい。本明細書に記載された本発明の実施形態は、従来の画像処理技法の上述された問題に対処する以外の目的に使用されてもよいことも諒解されたい。加えて、以下に提供される例は例示的であり、開示された主題の範囲内にある他のシステムおよび方法が存在すると考えられることが理解されよう。
【0031】
画像処理システム
図1は、いくつかの実施形態による、本明細書に記載された技法が実装され得るシステム100のブロック図を示す。図1に示されたように、システム100は、(本明細書では「システム102」とも呼ばれる)画像前処理システム102と、画像キャプチャデバイス104と、画像処理システム106とを含む。いくつかの実施形態では、画像前処理システム102は、’217公開(付録A)の図1A図1Bの画像強調システム111の構成要素であってもよい。
【0032】
図1の例に示されたように、画像前処理システム102は、画像キャプチャデバイス104および画像処理システム106と通信している。いくつかの実施形態では、画像前処理システム102は、画像キャプチャデバイス104からデータを受信するように構成することができる。データは、画像キャプチャデバイス104によって取り込まれた1つまたは複数のデジタル画像を含んでもよい。たとえば、画像前処理システム102は、(たとえば、画像処理システム106による)さらなる画像処理を受けるべき画像を画像キャプチャデバイス104から取得することができる。いくつかの実施形態では、画像前処理システム102は、(1)画像キャプチャデバイス104から画像を取得し、(2)画像を非線形変換および/または量子化し、(3)さらなる処理(たとえば、強調)のために画像処理システム106に変換および/または量子化画像を提供するように構成されてもよい。画像量子化は、(1)画像処理システム106から処理された画像を取得し、(2)処理された画像を逆変換および/または逆量子化し、(3)画像キャプチャデバイス104に逆量子化/逆変換された処理された画像を提供するように構成されてもよい。いくつかの実施形態では、画像前処理システム102は、図12に関して下記でさらに記載される構成要素などの構成要素を有する専用コンピューティグシステムまたはサブシステムである。
【0033】
図1に示されたように、画像前処理システム102は、非線形変換102Aを含むことができる。非線形変換は、本明細書では「非線形マッピング」と呼ばれる場合もあり、たとえば、実行されると、本明細書に記載された1つまたは複数のプロセスを実行するようにプロセッサに指示する、ファームウェアまたはメモリ(揮発性もしくは不揮発性)内のプロセッサ命令として実装されてもよい。画像前処理システム102は、(量子化なしに)画像を前処理するため、かつ/または取得された画像を量子化することと連携して、非線形変換102Aを使用することができる。いくつかの実施形態では、非線形変換102Aは、入力としてピクセル強度値を取り込み、対応する変換された値を出力する連続非線形関数を含んでもよい。たとえば、非線形変換102Aは、入力として10ビットピクセル強度を取り込み、0~1の対応する値を出力する非線形関数であってもよい。いくつかの実施形態では、非線形変換102Aは区分関数であってもよい。いくつかの実施形態では、非線形変換102Aは、非線形である1つまたは複数の部分に加えて線形である1つまたは複数の部分を含んでもよい。たとえば、非線形変換102Aは、第1の範囲のピクセル強度に対する出力が線形であり、第2の範囲のピクセル強度に対する出力が非線形である区分関数であってもよい。
【0034】
いくつかの実施形態では、非線形変換102Aは対数関数を含んでもよい。いくつかの実施形態では、非線形変換は指数関数を含んでもよい。いくつかの実施形態では、非線形変換は、(線形関数および/または非線形関数の両方の組合せを含む)複数の関数の組合せを含んでもよい。非線形変換102Aに含まれ得る非線形関数の例が本明細書に記載され、それらは例示的であり限定するものではない。したがって、いくつかの実施形態は、本明細書に記載された非線形関数に限定されない。
【0035】
画像前処理システム102によって取得される画像は、第1のビット深度(たとえば、10ビット深度、12ビット深度、14ビット深度、または16ビット深度)、すなわち、値を表す情報のビット数のピクセル値を有することができる。当業者は、ピクセル値が1つまたは複数の成分を有する場合があり、異なる成分が、明度、輝度、彩度、および/または色チャネル(たとえば、青、赤、緑)などの、特定のピクセルの異なる特性の強度を表すことを認識されよう。
【0036】
画像前処理システム102は、第2のビット深度(たとえば、5ビット深度、6ビット深度、7ビット深度、または8ビット深度)のピクセル値を有する量子化画像を取得するために、画像を量子化するように構成されてもよく、第2のビット深度は第1のビット深度よりも小さい。画像前処理システム102は、(たとえば、画像処理システム106が、第1のビット深度のピクセルを有する画像を処理することができない場合)画像処理システム106に量子化画像を提供することができる。いくつかの実施形態では、画像前処理システム102は、(1)変換された画像を取得するために画像のピクセル強度に非線形変換102Aを適用し、(2)量子化入力画像を取得するために変換された入力画像のピクセル強度に全射マッピングを適用することによって画像を量子化するように構成することができ、全射マッピングは第2のビット深度のピクセル強度に第1のビット深度のピクセル強度をマッピングする。全射マッピングの例が以下にさらに記載される。全射マッピングは、数学の全射関数、その像がその変域に等しい関数として定義することができる。以下にさらに記載される実施形態などのいくつかの実施形態では、非線形変換は次の量子化なしに適用される。
【0037】
いくつかの実施形態では、画像前処理システム102は、全射マッピングとともに画像に非線形変換を適用するように構成されてもよく、その結果、量子化画像内の低いピクセル強度の間の相違点は、高いピクセル強度の間の相違点よりも大きい。非線形変換を適用する際に、画像前処理システム102は、低いピクセル強度の間の相違点を維持するために、第2のビット深度の範囲のより大きい部分を高いピクセル強度よりも低いピクセル強度に専用に割り当てることができる。たとえば、システムは、(1)入力画像内の0~200のピクセル強度を量子化画像内の0~25のピクセル強度にマッピングし、(2)入力画像内の201~1031のピクセル強度を量子化画像内の26~31のピクセル強度にマッピングすることにより、(たとえば、0~31のピクセル強度を有する)5ビット深度のピクセルを有する量子化画像を取得するために10ビット深度のピクセルを有する(たとえば、0~1023のピクセル強度を有する)入力画像を量子化することができる。この例では、量子化画像内の30のピクセル強度は、5のピクセル強度よりも多い入力画像のピクセル強度にマッピングされてもよい。したがって、量子化画像は、入力画像内の低いピクセル強度の間のより多くの相違点を維持することができる。
【0038】
いくつかの実施形態では、画像前処理システム102は、画像処理システム106から処理された画像を取得するように構成されてもよい。たとえば、処理された画像は、画像キャプチャデバイス104によって画像量子化システムに提供された画像の強調バージョンであってもよい。画像前処理システム102は、以前に入力画像を受信し、画像処理システム106による処理のために入力画像を量子化している場合がある。画像前処理システム102は、(1)処理された画像を逆量子化し、(2)画像キャプチャデバイス104に逆量子化画像を送信するように構成されてもよい。いくつかの実施形態では、画像前処理システム102は、(1)処理された画像のビット深度を第1のビット深度から第2のビット深度まで増大させ、(2)第2のビット深度のピクセルを有する画像に非線形変換を適用することにより、処理された画像を逆量子化するように構成されてもよい。いくつかの実施形態では、この非線形変換は、(処理するために画像キャプチャデバイス104によって提供された)入力画像に適用された非線形変換のインバースであり得る。
【0039】
いくつかの実施形態では、画像前処理システム102は、画像を量子化せずに、変換された画像を取得するために画像のピクセル強度に非線形変換102Aを適用するように構成することができる(たとえば、その結果、元の画像と同じビット深度による画像処理に非線形変換された画像が使用される)。いくつかの実施形態では、画像前処理システム102は、(たとえば、画像処理システム106が入力画像のビット深度を処理することができる場合)入力画像のビット深度を低減せずに、入力画像に非線形変換102Aを適用するように構成されてもよい。いくつかの実施形態では、画像前処理システム102は、入力画像に非線形変換102Aを適用することにより、入力画像のピクセル強度にわたるノイズ特性の分散を減少させるように構成されてもよい。画像前処理システム102は、ノイズの分散が低い変換された画像を画像処理システム106に送信することができる。たとえば、画像前処理システム102は、すべてのピクセル強度に対してしきい値を下回るノイズ特性分散を有する画像を強調(たとえば、ノイズ除去)するように訓練された機械学習モデル(たとえば、ニューラルネットワーク)を使用する画像処理システム106のプロセッサ(たとえば、ニューラルプロセッサ)に、変換された画像を提供することができる。たとえば、機械学習モデルは、すべてのピクセル強度に対してダイナミックレンジの1%、2%、3%、4%、5%、6%、7%、8%、9%、または10%未満であるノイズの標準偏差を有する画像を強調するように訓練されてもよい。入力画像内のノイズ特性の分散が減少すると、複雑度が低い機械学習モデル(たとえば、レイヤが少ないニューラルネットワーク)を画像処理システム106が使用することが可能になる。
【0040】
いくつかの実施形態では、画像前処理システム102は、(たとえば、画像が画像処理システム106による処理の前に量子化されなかった場合)画像を逆量子化せずに、画像に非線形変換を適用することができる。いくつかの実施形態では、この非線形変換は、(たとえば、処理するために画像キャプチャデバイス104によって提供された)入力画像に適用された非線形変換のインバースであり得る。たとえば、システムは、以前に入力画像に非線形変換102Aを適用し、画像処理システム106に変換された画像を提供している場合がある。次いで、システムは、画像処理システム106から画像の処理されたバージョンを取得し、(たとえば、非線形変換102Aのインバースを適用することにより)処理された画像に非線形変換を適用することができる。
【0041】
いくつかの実施形態では、画像キャプチャデバイス104は、デジタルカメラであってもよい。デジタルカメラは、スタンドアロンのデジタルカメラであってもよく、デバイス(たとえば、スマートフォン)に組み込まれたデジタルカメラであってもよい。いくつかの実施形態では、画像キャプチャデバイス104は、デジタル画像を取り込むことができる任意のデバイスであってもよい。いくつかの実施形態は、本明細書に記載されたいかなる画像キャプチャデバイスにも限定されない。
【0042】
図1に示されたように、画像キャプチャデバイス104は、画像センサ104と、A/Dコンバータ104Bとを含む。いくつかの実施形態では、画像センサ104Aは、画像センサ104Aによって検知された電磁放射(たとえば、光波)に基づいて信号を生成するように構成されてもよい。たとえば、撮像センサ124は、光を取り込む相補型金属酸化膜半導体(CMOS)シリコンセンサであってもよい。センサ124は、入射光量子を電子に変換する複数のピクセルを有してもよく、電子は次に電気信号を生成する。別の例では、撮像センサ124は、電荷結合素子(CCD)センサであってもよい。いくつかの実施形態は、本明細書に記載されたいかなる撮像センサにも限定されない。
【0043】
図1に示されたように、画像キャプチャデバイス104は、アナログデジタルコンバータ(A/Dコンバータ)104Bを含むことができる。A/Dコンバータ104Bは、画像センサ104Aから受信されたアナログ電気信号をデジタル値に変換するように構成されてもよい。デジタル値は、画像キャプチャデバイス104によって取り込まれた画像のピクセル強度であってもよい。画像キャプチャデバイス104は、画像前処理システム102に画像を送信することができる。いくつかの実施形態では、画像キャプチャデバイス104は、限定はしないが、6ビット深度、7ビット深度、8ビット深度、9ビット深度、10ビット深度、11ビット深度、12ビット深度、13ビット深度、14ビット深度、15ビット深度、16ビット深度、17ビット深度、18ビット深度、19ビット深度、20ビット深度、21ビット深度、22ビット深度、23ビット深度、および/または24ビット深度などの様々なビット深度のいずれかを有するピクセルを有するデジタル画像を生成することができる。いくつかの実施形態は、本明細書に記載されたビット深度に限定されない。
【0044】
いくつかの実施形態では、画像処理システム106は、画像を処理するためのコンピューティングデバイスであってもよい。いくつかの実施形態では、画像処理システム106は、図12に関して下記でさらに記載される構成要素などの構成要素を有する専用コンピューティグシステムまたはサブシステムである。画像処理システム106は、1つまたは複数のプロセッサを含んでもよい。いくつかの実施形態では、画像処理システム106は、デジタル信号プロセッサ(DSP)を含んでもよい。いくつかの実施形態では、画像処理システム106は、ニューラルネットワークを実行するように構成されたニューラルプロセッサ(たとえば、NPU)を含んでもよい。いくつかの実施形態では、画像処理システム106は、機械学習モデルを実行するように構成されたプロセッサを含んでもよい。いくつかの実施形態は、本明細書に記載されたプロセッサに限定されない。いくつかの実施形態では、画像処理システム106は、画像を処理する1つまたは複数の構成要素のパイプラインを含んでもよい。たとえば、画像処理システム106は、画像を強調するためのプロセッサと、画像の特性(たとえば、明度およびコントラスト)を修正するための1つまたは複数の構成要素とを含んでもよい。別の例では、画像処理システム106は、スマートフォンデバイスのデジタルカメラによって取り込まれた画像を処理するために使用されるスマートフォンデバイスの画像処理パイプラインを含んでもよい。
【0045】
いくつかの実施形態では、画像処理システム106は、ある特定のビット深度を超えるピクセルを有する画像を処理することができない場合がある。たとえば、画像処理システム106のプロセッサの精度は8ビットの場合があり、したがって、プロセッサは10ビット深度のピクセルを有する画像を処理することができない。別の例では、プロセッサは、ある特定のビット深度(たとえば、1、2、3、4、5、6、7、8、9、または10ビット)において計算を実行するように構成されてもよい。いくつかの実施形態では、画像処理システムは、1ビット精度、2ビット精度、3ビット精度、4ビット精度、5ビット精度、6ビット精度、7ビット精度、8ビット精度、9ビット精度、または10ビット精度を有することができる。いくつかの実施形態では、プロセッサの精度は、画像キャプチャデバイス104によって取り込まれたピクセルのビット深度よりも小さい場合がある。それに応じて、画像処理システム106は、画像前処理システム102から適切なビット深度を有する量子化画像を受信するように構成されてもよい。
【0046】
いくつかの実施形態では、画像キャプチャデバイス104、画像前処理システム102、および画像処理システム106は、単一デバイスの構成要素であってもよい。100は、画像前処理システム102、画像キャプチャデバイス104、および画像処理システム106を含むスマートフォンであってもよい。たとえば、画像前処理システム102および/または画像処理システム106は、(たとえば、スマートフォンに画像を記憶および/または表示する前に)スマートフォン向けの画像を処理するために、スマートフォンの画像処理パイプラインに組み込むことができる。いくつかの実施形態では、画像前処理システム102、画像キャプチャデバイス104、および画像処理システム106は、別個のデバイスであってもよい。たとえば、画像前処理システム102および画像処理システム106は、ネットワーク(たとえば、インターネット)を介して画像キャプチャデバイス104と通信するクラウドベースのコンピュータシステムであってもよい。いくつかの実施形態では、画像前処理システム102は、画像処理システム106の一部であってもよい。
【0047】
画像に非線形変換を適用するためのプロセス
図2は、本明細書に記載された本発明のいくつかの実施形態による、画像を処理するための例示的なプロセス200のフローチャートを示す。プロセス200は、任意の適切なコンピューティングデバイスによって実行されてもよい。たとえば、プロセス200は、図1を参照して本明細書に記載された画像前処理システム102またはシステム100によって実行されてもよい。
【0048】
プロセス200は、システムが第1のビット深度のピクセルを有する入力画像を取得すること(202)を含む。たとえば、システムは、画像キャプチャデバイス(たとえば、デジタルカメラ)から画像を受信することができる。いくつかの実施形態では、画像キャプチャデバイスは、第1のビット深度で画像を取り込むように構成されてもよい。たとえば、画像キャプチャデバイスのA/Dコンバータは、10ビット深度のピクセルを有するデジタル画像を作るために10ビットピクセル強度値を生成することができる。例示的なビット深度が本明細書で説明される。
【0049】
システムは、第2のビット深度のピクセルを有する量子化入力画像を取得するために入力画像を量子化し(204)、第2のビット深度は第1のビット深度よりも小さい。たとえば、システムは、5ビット深度のピクセルを有する量子化入力画像を生成するために、10ビット深度のピクセルを有する入力画像を量子化することができる。いくつかの実施形態では、システムは、(1)入力画像のピクセル強度に非線形変換を適用し、(2)変換されたピクセル強度を5ビットピクセル値にマッピングすることにより、入力画像を量子化するように構成されてもよい。たとえば、入力画像の10ビットピクセル強度ごとに、システムは、ピクセル強度に対数関数を適用し、対数関数の出力を5ビットピクセル値にマッピングすることができる。いくつかの実施形態では、非線形変換およびマッピングは単一の関数に組み合わされてもよい。
【0050】
システムは、さらなる処理のために(たとえば、5ビット深度のピクセルを有する)量子化入力画像を提供する(206)。いくつかの実施形態では、システムは、画像を強調するために画像処理パイプラインに量子化入力画像を提供するように構成されてもよい。いくつかの実施形態では、システムは、プロセッサに入力として量子化入力画像を提供するように構成されてもよい。プロセッサは、第1のビット深度よりも小さい精度を有する場合がある。量子化入力画像は、プロセッサの精度よりも小さいかそれに等しいビット深度を有する場合がある。いくつかの実施形態では、プロセッサは、入力画像を強調するために機械学習モデルを実行するように構成されてもよい。たとえば、プロセッサは、取り込まれた画像を強調するために訓練された機械学習モデルを実行するように構成されてもよい。別の例では、プロセッサは、機械学習モデルの訓練パラメータ用の訓練データとして入力画像を使用するように構成されてもよい。いくつかの実施形態では、プロセッサは、ニューラルネットワークを実行するように構成されたニューラルプロセッサであってもよい。いくつかの実施形態では、ニューラルネットワークは、画像を強調するように訓練されてもよい。いくつかの実施形態では、ニューラルネットワークは、画像をノイズ除去することによって画像を強調するように訓練されてもよい。いくつかの実施形態では、プロセッサはデジタル信号プロセッサ(DSP)であってもよい。いくつかの実施形態は、本明細書に記載されたプロセッサに限定されない。
【0051】
システムは、第2のビット深度のピクセルを有する出力画像を生成する(208)。いくつかの実施形態では、システムは、処理された(たとえば、画像処理システム106によって処理された)画像を受信することによって出力画像を生成するように構成されてもよい。たとえば、システムは、システムが量子化入力画像を提供したプロセッサ(たとえば、NPU)から出力画像を受信することができる。いくつかの実施形態では、出力画像は、量子化入力画像の処理されたバージョンであってもよい。たとえば、出力画像は、入力画像の強調された(たとえば、ノイズ除去された)バージョンであってもよい。
【0052】
システムは、第1のビット深度のピクセルを有する逆量子化出力画像を生成するために出力画像を逆量子化する(210)。システムは、取得された(202)入力画像のピクセルと同じビット深度の逆量子化出力画像を生成するように構成されてもよい。たとえば、システムは、10ビット深度のピクセルを有する画像を受信し(202)、10ビット深度のピクセルを有する逆量子化出力画像を生成する(210)ことができる。いくつかの実施形態では、システムは、第2のビット深度のピクセル強度を第1のビット深度のピクセル強度にマッピングすることによって出力画像を逆量子化するように構成されてもよい。いくつかの実施形態では、システムは、第2のビット深度のピクセル強度に非線形変換(たとえば、入力画像を量子化するために使用された変換のインバース)を適用することにより、第2のビット深度のピクセル強度を第1のビット深度のピクセル強度にマッピングするように構成されてもよい。
【0053】
いくつかの実施形態では、システムは、画像キャプチャデバイスに逆量子化出力画像を提供するように構成されてもよい。いくつかの実施形態では、システムは、(たとえば、取得された(202)入力画像の強調として)逆量子化出力画像を記憶するように構成されてもよい。いくつかの実施形態では、システムは、機械学習モデルを訓練するために出力画像を使用するように構成されてもよい。たとえば、システムは、逆量子化出力画像を目標出力画像と比較し、目標出力画像と逆量子化出力画像との間の差に基づいて、1つまたは複数の機械学習モデルパラメータを調整することができる。
【0054】
画像の量子化
図3は、本発明のいくつかの実施形態による、画像を量子化するための例示的なプロセス300のフローチャートを示す。プロセス300は、任意の適切なコンピューティングデバイスによって実行されてもよい。たとえば、プロセス300は、図1を参照して本明細書に記載された画像前処理システム102またはシステム100によって実行されてもよい。たとえば、プロセス300は、図2を参照して本明細書に記載されたプロセス200の一部として実行されてもよい。たとえば、プロセス300は、プロセス200の量子化(204)において実行されてもよい。
【0055】
プロセス300は、第1のビット深度の画像を取得すること(302)を含む。たとえば、システムは、画像キャプチャデバイス(たとえば、デジタルカメラ)から第1のビット深度のピクセルを有する画像を取得することができる。いくつかの実施形態では、システムは、図2を参照してさらに上述されたプロセス200において記載されたように画像を取得する(202)ことができる。
【0056】
次に、システムは、画像のピクセル強度に非線形変換を適用する(304)。いくつかの実施形態では、システムは、対応する出力を取得するために非線形関数に入力値としてピクセル強度を提供することによって非線形変換を適用するように構成されてもよい。たとえば、システムは、対応する出力値を取得するために対数関数に入力値としてピクセル強度を提供することができる。別の例では、システムは、対応する出力値を取得するために指数関数に入力値としてピクセル強度を提供することができる。いくつかの実施形態では、非線形関数から取得された出力は範囲内であり得る。たとえば、非線形関数は0~1の出力を提供することができる。いくつかの実施形態は、本明細書に記載された非線形関数とは異なる非線形関数を使用することができる。いくつかの実施形態は、非線形関数のタイプに制限されない。本発明の実施形態に従って利用され得る例示的な非線形関数が図9図10を参照して下記に記載されるが、当業者は、必要に応じて特定の用途に様々な非線形関数が使用され得ることを認識されよう。
【0057】
いくつかの実施形態では、システムは、区分関数に入力値としてピクセル強度を提供することによって非線形変換を適用するように構成されてもよい。いくつかの実施形態では、区分関数の第1の部分は非線形であってもよく、区分関数の第2の部分は線形であってもよい。たとえば、(1)0~20のピクセル強度の場合、関数は10ビットピクセル強度の線形関数であってもよく、(2)20よりも大きいピクセル強度の場合、関数は非線形関数(たとえば、対数関数または指数関数)であってもよい。
【0058】
プロセス300は、第2のビット深度のピクセルを有する量子化入力画像を取得するために画像のビット深度を低減すること(306)を含み、第2のビット深度は第1のビット深度よりも小さい。いくつかの実施形態では、システムは、ピクセル強度への変換関数の適用から取得された(304)値に量子化関数を適用することにより、量子化画像を取得するために画像のビット深度を低減するように構成されてもよい。いくつかの実施形態では、量子化関数は、それぞれの入力値に対して5ビットピクセル強度値を出力することができる。たとえば、システムは、画像の10ビットピクセル強度に非線形変換を適用することによって0~1の値を取得し、5ビットピクセル強度を取得するために量子化関数に取得された値を入力することができる。本発明の実施形態に従って利用され得る例示的な量子化関数は、図9図10を参照して下記に記載される。
【0059】
いくつかの実施形態では、システムは、(たとえば、量子化関数を使用して取得された)第2のビット深度のピクセル強度を使用して、新しい画像を生成するように構成されてもよい。新しい画像は、このように第2のビット深度のピクセルを有する。いくつかの実施形態では、システムは、第1のビット深度のピクセル強度を第2のビット深度のピクセル強度と置き換えることにより、取得された(302)画像を修正するように構成されてもよい。
【0060】
いくつかの実施形態では、システムは、画像処理システム(たとえば、DSPまたはニューラルプロセッサ)に入力として量子化画像を提供するように構成されてもよい。システムは、図2を参照してさらに上述されたように、量子化画像を提供する(206)ことができる。
【0061】
画像を逆量子化するためのプロセス
図4は、本発明のいくつかの実施形態による、画像を逆量子化するための例示的なプロセス400のフローチャートを示す。プロセス400は、任意の適切なコンピューティングデバイスによって実行されてもよい。たとえば、プロセス400は、図1を参照して上述された画像前処理システム102またはシステム100によって実行されてもよい。たとえば、プロセス400は、図2を参照して上述されたプロセス200の一部として実行されてもよい。たとえば、プロセス400は、プロセス200の取得(208)において実行されてもよい。
【0062】
プロセス400は、システムが第1のビット深度(たとえば、5ビット)のピクセルを有する画像を取得すること(402)を含む。たとえば、システムは、画像処理システム(たとえば、DSPまたはニューラルプロセッサ)から画像を受信することができる。いくつかの実施形態では、システムは、(たとえば、プロセス200の206において)画像処理システムに提供された画像の強調されたバージョンを受信するように構成されてもよい。たとえば、画像前処理システムは、(図3を参照して本明細書に記載されたプロセス300を実行することから)量子化画像を受信し、画像を生成するために画像をノイズ除去している場合がある。システムは、画像前処理システムから生成された画像を受信することができる。
【0063】
次に、システムは、取得された(402)画像のピクセル強度を非線形変換の出力値にマッピングする(404)。たとえば、入力画像を量子化する間に、システムは、0~1の正規化された値を取得するために非線形関数を適用している場合がある。この例では、システムは、0~1の正規化された値に画像のピクセル強度をマッピングすることができる。いくつかの実施形態では、システムは、量子化に使用されたマッピングを使用するように構成されてもよい。たとえば、システムは、プロセス300において使用された量子化関数のインバースを使用することができる。
【0064】
システムは、第2のビット深度のピクセルを有する逆量子化画像を取得するために、第1のビット深度よりも大きい第2のビット深度まで取得された(402)画像のビット深度を増大させる(406)。いくつかの実施形態では、システムは、第2のビット深度のピクセル強度を取得するために、(たとえば、画像を量子化する間に使用された)非線形関数のインバースを使用することにより、画像のビット深度を増大させるように構成されてもよい。たとえば、システムは、第2の深度のピクセル強度を取得するために、(たとえば、図9に示された)対数関数または(たとえば、図10に示された)指数関数のインバースに入力値として取得された(404)出力値を使用することができる。
【0065】
いくつかの実施形態では、システムは、(たとえば、逆非線形関数を使用して取得された)第2のビット深度のピクセル強度を使用して、新しい画像を生成するように構成されてもよい。新しい画像は、このように第2のビット深度のピクセルを有する。いくつかの実施形態では、システムは、第1のビット深度のピクセル強度を第2のビット深度のピクセル強度と置き換えることにより、取得された(402)画像を修正するように構成されてもよい。
【0066】
いくつかの実施形態では、システムは、デバイス(たとえば、スマートフォン)に出力として逆量子化画像を提供するように構成されてもよい。たとえば、逆量子化画像は、プロセス200において入力として提供された、強調された(たとえば、ノイズ除去された)画像であってもよい。システムは、デバイス上の表示、記憶、または別の機能のための出力として強調された画像を提供することができる。
【0067】
画像を強調するためのプロセス
図5は、本発明のいくつかの実施形態による、画像を強調するための例示的なプロセス500のフローチャートを示す。プロセス500は、任意の適切なコンピューティングデバイスによって実行されてもよい。たとえば、プロセス500は、図1を参照して本明細書に記載された画像前処理システム102および/または画像処理システム106によって実行されてもよい。別の例では、プロセス500は、’217公開(付録A)の図1A図1Bの画像強調システム111などのシステムによって実行されてもよい。
【0068】
プロセス500は、システムが強調されるべき入力画像を取得すること(502)を含む。いくつかの実施形態では、システムは、画像をノイズ除去するための入力を取得するように構成されてもよい。たとえば、入力画像は、画像内の低い信号対ノイズ比(SNR)をもたらす低い光条件で取り込まれている場合がある。システムは、より高い品質の画像を生成するために、画像をノイズ除去するための入力として画像を受信することができる。いくつかの実施形態では、システムは、画像キャプチャデバイス(たとえば、カメラ)から入力画像を受信するように構成されてもよい。
【0069】
システムは、変換された入力画像を取得するために入力画像のピクセル強度に非線形変換を適用する(504)。いくつかの実施形態では、システムは、画像を量子化せずに非線形変換を適用するように構成されてもよい。いくつかの実施形態では、システムは、(たとえば、図4を参照して本明細書に記載されたように)画像を量子化することに加えて非線形変換を適用するように構成されてもよい。いくつかの実施形態では、システムは、対応する出力を取得するために非線形関数にピクセル強度を入力することにより、入力画像のピクセル強度に非線形変換を適用するように構成されてもよい。たとえば、システムは、(たとえば、図9のプロット902に示されたように)対数関数にピクセル強度を入力することができる。別の例では、システムは、(たとえば、図10のプロット1002に示されたように)指数関数にピクセル強度を入力することができる。当業者は、必要に応じて特定の用途に、本発明の実施形態に従って様々な非線形関数のいずれかが利用され得ることを認識されよう。
【0070】
いくつかの実施形態では、システムは、非線形変換の適用から取得された出力を使用して、変換された画像を生成するように構成されてもよい。いくつかの実施形態では、システムは、新しい画像を生成し、非線形変換の適用から取得された値に新しい画像のピクセル強度を設定するように構成されてもよい。たとえば、システムは、変換された画像内のそれぞれのピクセルのピクセル強度として、非線形関数への入力値として入力画像の各ピクセル強度を提供することから取得された出力を使用することができる。いくつかの実施形態では、システムは、入力画像のピクセル強度を非線形変換の適用から取得された値に修正するように構成されてもよい。
【0071】
システムは、訓練された機械学習モデルに提供されるべき入力を生成する(506)。いくつかの実施形態では、訓練された機械学習モデルは、図1A図1Bを参照して記載された機械学習システム112などのシステムに組み込まれてもよい。いくつかの実施形態では、システムは、図8を参照して記載されたように、訓練された機械学習モデルへの入力として画像を提供する(804)ように構成されてもよい。
【0072】
いくつかの実施形態では、システムは、入力として変換された入力画像を使用することにより、訓練された機械学習モデルに提供されるべき入力を生成するように構成されてもよい。たとえば、変換された画像のピクセル強度は、訓練された機械学習モデルへの入力として使用されてもよい。いくつかの実施形態では、訓練された機械学習モデルはニューラルネットワークであってもよい。システムは、ニューラルネットワークへの入力として変換された画像のピクセル強度を使用するように構成されてもよい。いくつかの実施形態では、システムは、ニューラルネットワークへの入力としてそれらに提供するために、ピクセル強度値を前処理するように構成されてもよい。たとえば、システムは、(たとえば、0~1になるように)ピクセル強度を正規化することができる。別の例では、システムは、画像のピクセル強度を単一ベクトルのピクセル強度に平滑化することができる。
【0073】
いくつかの実施形態では、訓練される機械学習モデルは、画像をノイズ除去するように訓練されてもよい。たとえば、訓練される機械学習モデルは、より高い品質の画像を生成するために、低い光条件で取り込まれた画像の品質を向上させるように訓練されてもよい。いくつかの実施形態では、訓練される機械学習モデルは、’217公開(付録A)の図2Aを参照して記載されたプロセス200、’217公開(付録A)の図2Bを参照して記載されたプロセス210、’217公開(付録A)の図2Cを参照して記載されたプロセス230、’217公開(付録A)の図3Aを参照して記載されたプロセス300、’217公開(付録A)の図4を参照して記載されたプロセス400、’217公開(付録A)の図5を参照して記載されたプロセス500、および/または’217公開(付録A)の図7を参照して記載されたプロセス700を実行することから取得されている場合がある。
【0074】
次に、プロセス500はブロック508に進み、そこでシステムは、強調された出力画像を取得するために訓練される機械学習モデルに生成された入力を提供する。いくつかの実施形態では、システムは、’217公開(付録A)の図8のブロック806に記載されたように画像を提供する。いくつかの実施形態では、システムは、入力を提供したことに応答して、強調された出力画像を受信するように構成されてもよい。たとえば、システムは、入力を提供したことに応答して、機械学習モデルからノイズ除去された画像を受信することができる。いくつかの実施形態では、システムは、逆量子化されるべき強調された画像を取得するように構成されてもよい。システムは、図2および図4を参照して上述されたように、画像を逆量子化することができる。
【0075】
いくつかの実施形態では、システムは、強調された画像を出力するように構成されてもよい。たとえば、システムは、デバイスに強調された画像を表示し、画像を記憶し、かつ/または機械学習モデルを訓練するために画像を使用することができる。
【0076】
図11は、画像に非線形変換を適用することからのピクセル強度にわたるノイズ標準偏差分散の減少を示すプロットを示す。図11に示されたように、プロット1102は、(たとえば、非線形変換の適用がない)線形領域内のノイズ標準偏差対ピクセル強度を示す。プロット1103は、(たとえば、図5を参照してブロック504に記載されたように)変換された画像を取得するために画像のピクセル強度に適用され得る非線形変換を示す。図11に示されたように、非線形変換は、入力値としてピクセル強度を取り込み、0~1の値を出力する非線形指数関数を含む。プロット1104は、(たとえば、図5を参照して本明細書で説明されたプロセス500のブロック504に記載されたように)画像のピクセル強度へのプロット1103の非線形変換の適用後のノイズ標準偏差対ピクセル強度を示す。プロット1104に示されたように、変換されたピクセル強度のノイズ標準偏差は、変換された入力画像内のピクセル強度に対して小さく変化する。画像のノイズ標準偏差対ピクセル強度における分散が低下すると、画像強調(たとえば、ノイズ除去)向けの機械学習モデルの必要な複雑度が低下する。たとえば、より低い数のレイヤおよび重みを有するニューラルネットワークが強調に使用されてもよい。機械学習モデルのより低い複雑度により、コンピューティングデバイス(たとえば、プロセッサ)が、(たとえば、より少ない計算、より小さいメモリ、および/またはより低い電力消費を使用して)より効率的に画像を強調することが可能になる。
【0077】
画像を強調するように機械学習モデルを訓練するためのプロセス
図6は、いくつかの実施形態による、機械学習モデルを訓練するための例示的なシステムのブロック図を示す。図6に示されたように、画像前処理システム602は、訓練画像606を取得し、訓練画像を非線形変換する。変換された訓練画像は、次いで、訓練された機械学習モデル610を取得するために、機械学習モデル604を訓練する訓練段階608の間に使用される。いくつかの実施形態では、画像前処理システムは、図1図3を参照して本明細書に記載されたように、訓練画像を非線形変換するように構成されてもよい。いくつかの実施形態では、システム602は、訓練画像に非線形変換を適用し、(たとえば、図1図3を参照して記載されたようにビット深度を低減するために)訓練画像を量子化するように構成されてもよい。いくつかの実施形態では、システム602は、(たとえば、図4を参照して記載されたように)訓練画像を量子化せずに訓練画像に非線形変換を適用するように構成されてもよく、その結果、訓練画像のビット深度は修正されない。
【0078】
いくつかの実施形態では、機械学習モデル604(たとえば、ニューラルネットワーク)のパラメータ604Aは、学習されたパラメータ610A(たとえば、ニューラルネットワークの重み値)を有する訓練された機械学習モデル610を取得するために、訓練段階608内で訓練されてもよい。いくつかの実施形態では、訓練された機械学習モデル610は、’217公開(付録A)の図1Aの機械学習システム112であってもよい。いくつかの実施形態では、訓練段階608は、’217公開(付録A)の図1Aの訓練段階110であってもよい。いくつかの実施形態では、機械学習モデル604は、’217公開(付録A)の図2Aを参照して記載されたプロセス200、’217公開(付録A)の図2Bを参照して記載されたプロセス210、’217公開(付録A)の図2Cを参照して記載されたプロセス230、’217公開(付録A)の図3Aを参照して記載されたプロセス300、’217公開(付録A)の図4を参照して記載されたプロセス400、’217公開(付録A)の図5を参照して記載されたプロセス500、および/または’217公開(付録A)の図7を参照して記載されたプロセス700を実行することにより、訓練段階608内で訓練されてもよい。
【0079】
いくつかの実施形態では、画像量子化システムによって生成された量子化された訓練画像は、’217公開(付録A)の図1Aの訓練画像104として使用されてもよい。いくつかの実施形態では、機械学習モデル604は、’217公開(付録A)の図1Aの機械学習システム102として使用されてもよい。’217公開(付録A)の図1Aに示されたように、画像強調システム111は、(たとえば、画像前処理システム602によって生成された量子化画像を使用して訓練された)機械学習システム112を使用して、強調された画像118を生成するために画像キャプチャデバイス114A~Bからの画像を強調することができる。
【0080】
図7は、本発明のいくつかの実施形態による、画像強調のための機械学習モデルを訓練するための例示的なプロセス700のフローチャートを示す。プロセス700は、任意の適切なコンピューティングデバイスによって実行されてもよい。たとえば、プロセス700は、図6を参照して本明細書に記載された画像前処理システム602によって実行されてもよい。別の例では、プロセス700は、図1を参照して本明細書に記載された画像前処理システム102および/または画像処理システム106によって実行されてもよい。
【0081】
プロセス700は、システムが訓練画像を取得すること(702)を含む。いくつかの実施形態では、システムは、単一の画像キャプチャデバイスから訓練画像を取得するように構成されてもよい。いくつかの実施形態では、システムは、複数のキャプチャデバイスから訓練画像を取得するように構成されてもよい。いくつかの実施形態では、訓練画像は、’217公開(付録A)に記載されたように生成されてもよい。いくつかの実施形態では、訓練画像は、入力画像および対応する目標出力画像を含んでもよい。いくつかの実施形態では、訓練画像は、対応する目標出力画像なしに入力画像のみを含んでもよい。
【0082】
次に、プロセス700はブロック704に進み、そこでシステムは、変換された訓練画像を取得するために画像に非線形変換を実行する。いくつかの実施形態では、システムは、第2のビット深度のピクセルを有する量子化入力画像を取得するために、非線形変換と連携して画像を量子化するように構成されてもよく、第2のビット深度は第1のビット深度よりも小さい。いくつかの実施形態では、システムは、図1図4を参照して記載されたように、非線形変換を適用するように構成されてもよい。いくつかの実施形態では、システムは、第1のビット深度の画像を扱うことができない場合がある画像処理システム(たとえば、NPUまたはDSP)によって実行されるべき機械学習モデルを訓練するための訓練画像を量子化するように構成されてもよい。たとえば、第1のビット深度は10ビットであってもよく、機械学習モデルを実行するべきニューラルプロセッサは、8ビットの精度を有する場合がある。
【0083】
システムは、変換された訓練画像を使用して機械学習モデルを訓練する(706)。いくつかの実施形態では、システムは、’217公開(付録A)に記載された訓練技法などの訓練技法を使用して機械学習モデルを訓練するように構成されてもよい。たとえば、システムは、機械学習モデル604は、’217公開(付録A)の図2Aを参照して記載されたプロセス200を実行することにより、’217公開(付録A)の図2Bを参照して記載されたプロセス210を実行することにより、’217公開(付録A)の図2Cを参照して記載されたプロセス230を実行することにより、’217公開(付録A)の図3Aを参照して記載されたプロセス300を実行することにより、’217公開(付録A)の図4を参照して記載されたプロセス400を実行することにより、’217公開(付録A)の図5を参照して記載されたプロセス500を実行することにより、かつ/または’217公開(付録A)の図7を参照して記載されたプロセス700を実行することにより、’217公開(付録A)の図1A図1Bを参照して記載されたように機械学習モデルを訓練することができる。
【0084】
システムは、画像を強調するために、訓練された機械学習モデルを使用する(708)。いくつかの実施形態では、システムは、訓練された機械学習モデルを使用して、画像をノイズ除去するように構成されてもよい。いくつかの実施形態では、システムは、図5を参照してさらに上述されたように、訓練された機械学習モデルを使用して、画像を強調するように構成されてもよい。いくつかの実施形態では、システムは、’217公開(付録A)の図1A図1B、および/または’217公開(付録A)の図8を参照して記載されたように、強調のために訓練された機械学習モデルを使用するように構成されてもよい。
【0085】
図1図7を参照して具体的なプロセスが上述されたが、当業者は、本発明の実施形態に従って様々なプロセスのいずれかが利用されてもよいことを認識されよう。
【0086】
例示的な非線形変換
本発明の実施形態に従って異なる非線形変換または変換が利用されてもよい。図8は、線形量子化の例を示す一組のプロットを示す。図8に示されたように、プロット802は線形関数を示し、0~1の正規化された値を出力するために10ビットピクセル強度が関数に入力される。プロット804は、0~1の値に正規化されたピクセル強度の対応する5ビットピクセル強度への線形量子化を示す。プロット806は、10ビットピクセル強度が5ビットピクセル強度にどのようにマッピングすることができるかを示すプロット802および804の関数の結合を示す。プロット806に示されたように、10ビットピクセル強度は5ビットピクセル強度にわたって均一に分散する。
【0087】
図9は、本発明のいくつかの実施形態による、対数関数を使用する非線形量子化を示す一組のプロットを示す。プロット902は、入力値として10ビットピクセル強度を受け取り、0~1の対応する値を出力する非線形対数関数を示す。プロット904は、0~1に正規化されたピクセル強度の対応する5ビットピクセル強度への線形量子化を示す。プロット906は、プロット902の非線形マッピングをプロット904の非線形量子化と結合することからもたらされた10ビットピクセル強度の5ビットピクセル強度への非線形量子化を示す。図8のプロット806と対照的に、プロット906は、10ビットピクセル強度と5ビットピクセル強度との間の非線形マッピングを示す。プロット906に示されたように、非線形量子化は、より高いピクセル強度よりもより低いピクセル強度に対してより多くの相違点を維持する。プロット908は、量子化された10ビットピクセル強度が10ビット値の間にどのように分散するかを示す。プロット908に示されたように、量子化された10ビットピクセル強度と10ビット値との間の関係はより線形であり、より低いピクセル強度の間の相違点を維持するためにより低いピクセル強度に対してより多くの粒度を有する。
【0088】
図10は、いくつかの実施形態による、指数関数を使用する非線形量子化を示す一組のプロットを示す。プロット1002は、入力値として10ビットピクセル強度を受け取り、対数関数を使用して0~1の対応する値を出力する非線形指数関数を示す。プロット1004は、0~1に正規化されたピクセル強度の対応する5ビットピクセル強度への線形量子化を示す。プロット1006は、プロット1002の非線形関数をプロット1004の非線形量子化と結合することからもたらされた10ビットピクセル強度の5ビットピクセル強度への非線形量子化を示す。図8のプロット806と対照的に、プロット1006は、10ビットピクセル強度と5ビットピクセル強度との間の非線形マッピングを示す。プロット1006に示されたように、非線形量子化は、より高いピクセル強度よりもより低いピクセル強度に対してより多くの相違点を維持する。プロット1008は、量子化された10ビットピクセル強度が10ビット値の間にどのように分散するかを示す。プロット1008に示されたように、量子化された10ビットピクセル強度と10ビット値との間の関係は、より低いピクセル強度の間の相違点を維持するためにより低いピクセル強度に対してより線形である。
【0089】
コンピューティングシステム
システム100、102、104、および/または106は、プロセッサ、揮発性および/もしくは不揮発性のメモリ、ならびに/または他の構成要素を含むことができるハードウェアを使用する、1つまたは複数のコンピューティングシステムまたは分散コンピュータシステムに実装されてもよい。図12は、その中に本発明の実施形態の様々な態様が実装され得る、具体的に構成された分散コンピュータシステム1200のブロック図を示す。図示されたように、分散コンピュータシステム1200は、情報を交換する1つまたは複数のコンピュータシステムを含む。より具体的には、分散コンピュータシステム1200は、コンピュータシステム1202、1204、および1206を含む。図示されたように、コンピュータシステム1202、1204、および1206は、通信ネットワーク1208によって相互接続され、通信ネットワーク1208を介してデータを交換することができる。ネットワーク1208は、それを介してコンピュータシステムがデータを交換することができる任意の通信ネットワークを含んでもよい。ネットワーク1208を使用してデータを交換するために、コンピュータシステム1202、1204、および1206ならびにネットワーク1208は、とりわけ、ファイバチャネル、トークンリング、イーサネット、ワイヤレスイーサネット、Bluetooth、IP、IPV6、TCP/IP、UDP、DTN、HTTP、FTP、SNMP、SMS、MMS、SS6、JSON、SOAP、CORBA、REST、およびウェブサービスを含む、様々な方法、プロトコル、および規格を使用することができる。転送が安全であることを保証するために、コンピュータシステム1202、1204、および1206は、たとえば、SSL技法またはVPN技法を含む様々なセキュリティ手段を使用して、ネットワーク1208を介してデータを送信することができる。分散コンピュータシステム1200は、3つのネットワーク化されたコンピュータシステムを示すが、分散コンピュータシステム1200はそのように限定されず、任意の媒体および通信プロトコルを使用してネットワーク化された任意の数のコンピュータシステムおよびコンピューティングデバイスを含んでもよい。
【0090】
図12に示されたように、コンピュータシステム1202は、プロセッサ1210と、メモリ1212と、相互接続要素1214と、インターフェース1216と、データ記憶要素1218とを含む。本明細書に開示された態様、機能、およびプロセスのうちの少なくともいくつかを実施するために、プロセッサ1210は、操作されたデータをもたらす一連の命令を実行する。プロセッサ1210は、任意のタイプのプロセッサ、マイクロプロセッサ、またはコントローラであってもよい。例示的なプロセッサには、IntelのXeon、Itanium、Core、Celeron、もしくはPentiumプロセッサ、AMDのOpteronプロセッサ、AppleのA10もしくはA5プロセッサ、SunのUltraSPARCプロセッサ、IBMのPower5+プロセッサ、IBMのメインフレームチップ、または量子コンピュータなどの市販のプロセッサが含まれてもよい。プロセッサ1210は、相互接続要素1214により、1つまたは複数のメモリデバイス1212を含む他のシステム構成要素に接続される。
【0091】
メモリ1212は、コンピュータシステム1202の動作中にプログラム(たとえば、プロセッサ1210によって実行可能であるようにコード化された命令のシーケンス)およびデータを記憶する。したがって、メモリ1212は、ダイナミックランダムアクセスメモリ(「DRAM」)またはスタティックメモリ(「SRAM」)などの比較的高い性能の揮発性ランダムアクセスメモリであってもよい。しかしながら、メモリ1212は、ディスクドライブまたは他の不揮発性ストレージデバイスなどの、データを記憶するための任意のデバイスを含んでもよい。様々な例が、本明細書に開示された機能を実行するために、特殊化された、場合によっては独自の構造にメモリ1212を編成することができる。これらのデータ構造は、特定のデータおよび特定のタイプのデータについての値を記憶するようにサイズが決められ、編成されてもよい。
【0092】
コンピュータシステム1202の構成要素は、相互接続メカニズム1214などの相互接続要素によって結合される。相互接続要素1214は、IDE、SCSI、PCI、およびInfiniBandなどの専門または標準のコンピューティングバス技術に準拠する1つまたは複数の物理バスなどの、システム構成要素間の任意の通信結合を含んでもよい。相互接続要素1214により、コンピュータシステム1202のシステム構成要素間で交換されるべき命令およびデータを含む通信が可能になる。
【0093】
コンピュータシステム1202はまた、入力デバイス、出力デバイス、および結合入力/出力デバイスなどの、1つまたは複数のインターフェースデバイス1216を含む。インターフェースデバイスは、入力を受け取るか、または出力を提供することができる。より詳細には、出力デバイスは外部提示用の情報をレンダリングすることができる。入力デバイスは、外部ソースからの情報を受け入れることができる。インターフェースデバイスの例には、キーボード、マウスデバイス、トラックボール、マイクロフォン、タッチスクリーン、印字デバイス、表示スクリーン、スピーカ、ネットワークインターフェースカードなどが含まれる。インターフェースデバイスにより、コンピュータシステム1202が、ユーザおよび他のシステムなどの外部エンティティと情報を交換し、通信することが可能になる。
【0094】
データ記憶要素1218は、その中にプロセッサ1210によって実行されるプログラムまたは他のオブジェクトを定義する命令が記憶される、コンピュータ可読および書込可能で不揮発性または非一時的なデータ記憶媒体を含む。データ記憶要素1218はまた、媒体上または媒体内に記録され、プログラムの実行中にプロセッサ1210によって処理される情報を含んでもよい。より具体的には、情報は、記憶空間を節約するか、またはデータ交換性能を向上させるように具体的に構成された1つまたは複数のデータ構造に記憶されてもよい。命令は符号化信号として永続的に記憶されてもよく、命令は、本明細書に記載された機能のいずれかをプロセッサ1210に実行させることができる。媒体は、たとえば、とりわけ、光ディスク、磁気ディスク、またはフラッシュメモリであってもよい。動作中、プロセッサ1210または何らかの他のコントローラは、データが不揮発性記録媒体から、データ記憶要素1218に含まれる記憶媒体よりもプロセッサ1210による情報への高速なアクセスを可能にする、メモリ1212などの別のメモリに読み取られるようにする。メモリは、データ記憶要素1218またはメモリ1212内に位置してもよいが、プロセッサ1210は、メモリ内でデータを操作し、次いで、処理が完了した後にデータ記憶要素1218に関連付けられた記憶媒体にデータをコピーする。様々な構成要素は、記憶媒体と他のメモリ要素との間のデータ移動を管理することができ、例は特定のデータ管理構成要素に限定されない。さらに、例は、特定のメモリシステムまたはデータ記憶システムに限定されない。
【0095】
コンピュータシステム1202は、例として、そこで様々な態様および機能が実践され得る1つのタイプのコンピュータシステムとして示されているが、態様および機能は、図12に示されたようにコンピュータシステム1202に実装されることに限定されない。様々な態様および機能は、図12に示されたものとは異なるアーキテクチャまたは構成要素を有する1つまたは複数のコンピュータ上で実践されてもよい。たとえば、コンピュータシステム1202は、本明細書に開示された特定の動作を実行するように適応した、特定用途向け集積回路(「ASIC」)などの特別にプログラムされた専用ハードウェアを含んでもよい。その上、Motorola PowerPCプロセッサを用いてMAC OS System Xを実行するいくつかの汎用コンピューティングデバイス、ならびに専用のハードウェアおよびオペレーティングシステムを実行するいくつかの専用コンピューティングデバイスのグリッドを使用して、別の例が同じ機能を実行することができる。
【0096】
コンピュータシステム1202は、コンピュータシステム1202に含まれるハードウェア要素の少なくとも一部分を管理するオペレーティングシステムを含むコンピュータシステムであってもよい。いくつかの例では、プロセッサ1210などのプロセッサまたはコントローラがオペレーティングシステムを実行する。実行され得る特定のオペレーティングシステムの例には、Microsoft Corporationから入手可能なWindows NT、Windows 2000(Windows ME)、Windows XP、Windows Vista、またはWindows 6、8、もしくは6オペレーティングシステムなどのWindowsベースのオペレーティングシステム、Apple Computerから入手可能なMAC OS System XオペレーティングシステムまたはiOSオペレーティングシステム、多くのLinuxベースのオペレーティングシステムディストリビューションのうちの1つ、たとえば、Red Hat Inc.から入手可能なEnterprise Linuxオペレーティングシステム、Oracle Corporationから入手可能なSolarisオペレーティングシステム、あるいは様々なソースから入手可能なUNIXオペレーティングシステムが含まれる。多くの他のオペレーティングシステムが使用されてもよく、例はいかなる特定のオペレーティングシステムにも限定されない。
【0097】
プロセッサ1210およびオペレーティングシステムは一緒に、高水準プラグラミング言語のアプリケーションプログラムが書かれたコンピュータプラットフォームを定義する。これらのコンポーネントアプリケーションは、通信プロトコル、たとえばTCP/IPを使用して通信ネットワーク、たとえばインターネットを介して通信する、実行可能な中間バイトコードまたは解釈されたコードであってもよい。同様に、態様は、.Net、Java、C++、Ada、C#(C-Sharp)、Python、またはJavaScriptなどの、オブジェクト指向プログラミング言語を使用して実装されてもよい。他のオブジェクト指向プログラミング言語も使用されてもよい。あるいは、関数型、スクリプト、または論理型のプログラミング言語が使用されてもよい。
【0098】
さらに、様々な態様および機能が非プログラム化環境内に実装されてもよい。たとえば、HTML、XML、または他のフォーマットで作成された文書は、ブラウザプログラムのウィンドウで見ると、グラフィカルユーザインターフェースの態様をレンダリングするか、または他の機能を実行することができる。さらに、様々な例は、プログラム化要素もしくは非プログラム化要素、またはそれらの任意の組合せとして実装されてもよい。たとえば、ウェブページはHTMLを使用して実装されてもよいが、ウェブページ内から呼び出されるデータオブジェクトはC++で書かれてもよい。このように、例は具体的なプログラミング言語に限定されず、任意の適切なプログラミング言語が使用される可能性がある。したがって、本明細書に開示された機能構成要素は、本明細書に開示された機能を実行するように構成された多種多様の要素(たとえば、専用ハードウェア、実行可能コード、データ構造、またはオブジェクト)を含んでもよい。
【0099】
いくつかの例では、本明細書に開示された構成要素は、構成要素によって実行される機能に影響を及ぼすパラメータを読み取ることができる。これらのパラメータは、(RAMなどの)揮発性メモリまたは(磁気ハードドライブなどの)不揮発性メモリを含む、任意の形態の適切なメモリに物理的に記憶されてもよい。加えて、パラメータは、(ユーザ空間アプリケーションによって定義されたデータベースもしくはファイルなどの)専用のデータ構造、または(オペレーティングシステムによって定義されたアプリケーションレジストリなどの)通常共有されるデータ構造に論理的に記憶されてもよい。加えて、いくつかの例は、外部エンティティがパラメータを修正し、それによって構成要素の挙動を構成することを可能にする、システムとユーザインターフェースの両方を実現する。
【0100】
前述の開示に基づいて、本明細書に開示された実施形態が特定のコンピュータシステムプラットフォーム、プロセッサ、オペレーティングシステム、ネットワーク、または通信プロトコルに限定されないことは、当業者には明らかなはずである。また、本明細書に開示された実施形態が特定のアーキテクチャに限定されことは明らかなはずである。
【0101】
本明細書に記載された方法および装置の実施形態は、以下の説明に記載され、添付図面に示された構成要素の構築および配置の詳細への適用において限定されないことを諒解されたい。方法および装置は、他の実施形態における実装、および様々な方法で実践または遂行されることが可能である。特定の実装形態の例は、例示目的のみで本明細書において提供され、限定するものではない。詳細には、任意の1つまたは複数の実施形態とともに記載された行為、要素、および特徴は、任意の他の実施形態における同様の役割から排除されるものではない。
【0102】
「おおよそ」、「実質的に」、および「約」という用語は、いくつかの実施形態では目標値の±20%以内、いくつかの実施形態では目標値の±10%以内、いくつかの実施形態では目標値の±5%以内、さらにいくつかの実施形態では目標値の±2%以内を意味するように使用されてもよい。「おおよそ」および「約」という用語は、目標値を含んでもよい。
【0103】
本発明の少なくとも1つの実施形態のいくつかの態様をこのように記載すると、当業者には様々な変更、修正、および改善が容易に思いつくことを諒解されたい。そのような変更、修正、および改善は、本開示の一部であることが意図され、本発明の趣旨および範囲内であることが意図される。したがって、前述の説明および図面はほんの一例である。
【0104】
附属書A
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【国際調査報告】