(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-03
(45)【発行日】2023-10-12
(54)【発明の名称】画像処理
(51)【国際特許分類】
G03H 1/02 20060101AFI20231004BHJP
【FI】
G03H1/02
【外国語出願】
(21)【出願番号】P 2021134122
(22)【出願日】2021-08-19
【審査請求日】2021-12-17
(32)【優先日】2020-08-24
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】517080957
【氏名又は名称】デュアリタス リミテッド
(74)【代理人】
【識別番号】100116850
【氏名又は名称】廣瀬 隆行
(74)【代理人】
【識別番号】100165847
【氏名又は名称】関 大祐
(72)【発明者】
【氏名】ジェイミーソン クリスマス
【審査官】森内 正明
(56)【参考文献】
【文献】特表2020-516933(JP,A)
【文献】特開2012-160092(JP,A)
【文献】特表2008-544306(JP,A)
【文献】米国特許出願公開第2019/0155217(US,A1)
【文献】特開平11-266465(JP,A)
【文献】米国特許第8706794(US,B1)
【文献】韓国公開特許第10-2020-0064478(KR,A)
(58)【調査した分野】(Int.Cl.,DB名)
G03H 1/00 - 5/00
(57)【特許請求の範囲】
【請求項1】
画像処理システムであって、
画像に対応する第1の複素データセットのフーリエ変換を実行するように構成された1つ以上のプロセッサであって、前記第1の複素データセットは、第1のビット数を有する第1の数値フォーマットでそれぞれ表されるデカルト形式の複素数値の2次元アレイを含み、前記2次元アレイの複素数値における実部の値及び虚部の値のいずれかが前記画像の画素の大きさ値及び位相値のいずれかをそれぞれ表し、前記2次元アレイが、一方の次元に沿った画素を表す値の第1の線形アレイおよび他方の次元に沿った画素を表す値の第2の線形アレイを定義するものであって、前記一方の次元に沿った画素を表す値は、前記画像の画素の大きさ値及び位相値の一方を示し、前記他方の次元に沿った画素を表す値は、前記画像の画素の大きさ値及び位相値の残りの一方を示すものと、
前記1つ以上のプロセッサによって実行可能な命令を記憶する有形の非一時的コンピュータ可読媒体であって、前記命令は、実行されると、前記画像処理システムに、
(a)デカルト形式の第1の複素データセットの第1の線形アレイの値に1Dフーリエ変換を実行し、
(b)各フーリエ変換された第1の線形アレイの各値を極形式に変換し、
(c)極形式の各値を、前記第1のビット数よりも少ない第2のビット数を有する第2の数値フォーマットに変換し、
(d)前記第2の数値フォーマットの前記値を第1の線形アレイごとにメモリに記憶し、
(e)前記メモリから前記値を第2の線形アレイごとに読み取り、
(f)前記メモリから読み取った各値を前記第1の数値フォーマットに逆変換し、
(g)前記第1の数値フォーマットに逆変換された各値をデカルト形式に逆変換し、
(h)デカルト形式に逆変換された値の各第2の線形アレイの1Dフーリエ変換を実行し、
ここで、前記フーリエ変換された第2の線形アレイの値を用いて第2の複
素データセットを形成し、
前記第2の複素データセットは、前記第1の複素データセットのフーリエ変換に対応する複素数値の2次元アレイを含み、一方の次元に沿った値の第1の線形アレイおよび他方の次元に沿った値の第2の線形アレイを定義するものであり、
前記第2の複
素データセットを用いて画像データを形成する
ことを含む機能を実行させるものと、
前記画像データを表示用に出力するように構成されたコントローラと、を備える
画像処理システム。
【請求項2】
前記機能が、
前記フーリエ変換された第2の線形アレイの値の大きさ値を置換して、前記第2の複
素データセットを形成する機能をさらに含み、前記第2の複素データセット内の前記第1の線形アレイ
の値が前記第1の複素データセット内の前記第2の線形アレイ
の値に対応する、
請求項1に記載の画像処理システム。
【請求項3】
極形式の各値を前記第2の数値フォーマットに変換することが、前記極形式の各値のうち、大きさ値に相当する値にスケーリング係数を乗算することを含む、
請求項1に記載の画像処理システム。
【請求項4】
極形式の前記値を前記第2の数値フォーマットに変換することが、各大きさ値をx1ビットからy1ビットに変換すること、ただしx1>y1、および各位相値をx2ビットからy2ビットに変換すること、ただしx2>y2、を含む、
請求項1に記載の画像処理システム。
【請求項5】
極形式の各値を前記第2の数値フォーマットに変換することが、最大許容値を超える任意の大きさ値を前記最大許容値に設定することを含む
請求項1に記載の画像処理システム。
【請求項6】
極形式の各値を前記第2の数値フォーマットに変換することが、前記極形式の各値のうち位相値に相当する値を前記第1の数値フォーマットよりも少ない数のレベルで量子化す
ることを含む、
請求項1に記載の画像処理システム。
【請求項7】
前記メモリから読み取った各値を前記第1の数値フォーマットに逆変換することが、前記メモリから読み取った各大きさ値をy1ビットからx1ビットに逆変換し、各位相値をy2ビットからx2ビットに逆変換し、前記メモリから読み取った各大きさ値に前記スケーリング係数の逆数を乗算することを含む、
請求項
3に記載の画像処理システム。
【請求項8】
前記機能が、
ある第1の線形アレイを
(a)~(d)の中の1つのある機能により処理を行い、前記ある第1の線形アレイと別のある第1の線形アレイを前記ある機能とは別の
(a)~(d)の中の1つの機能により処理を行い、
ある第2の線形アレイを
(e)~(h)の中の1つのある機能により処理を行い、前記ある第2の線形アレイと別のある第2の線形アレイを前記ある機能とは別の
(e)~(h)の中の1つの機能により処理を行う、請求項1に記載の画像処理システム。
【請求項9】
前記機能が、
ストリームとして前記第1の複素データセットを受信することをさらに含む、
請求項1に記載の画像処理システム。
【請求項10】
前記機能が、
(i)前記第2の複素データセットのフーリエ変換を実行することであって、前記第2の複素データセットが、第3のビット数を有する第3の数値フォーマットでそれぞれ表されるデカルト形式の複素数値の2次元アレイを含み、前記2次元アレイが、一方の次元に沿った値の第1の線形アレイおよび他方の次元に沿った値の第2の線形アレイを定義することと、
(j)前記第2の複素データセットの各第1の線形アレイの1Dフーリエ変換を実行することと、
(k)各値を極形式に変換することと、
(l)極形式の各値を、前記第3のビット数よりも少ない第4のビット数を有する第4の数値フォーマットに変換することと、
(m)前記第4の数値フォーマットの前記値を第1の線形アレイごとにさらなるメモリに記憶することと、
(n)前記メモリから前記値を第2の線形アレイごとに読み取ることと、
(o)各値を前記第3の数値フォーマットに逆変換し、前記第1の数値フォーマットに逆変換された各値をデカルト形式に逆変換することと、
(p)前記第2の複素データセットの各第2の線形アレイの1Dフーリエ変換を実行することと、
前記大きさ値を置換することにより、前記第2の複素データセットおよび第1の複素データセットのそれぞれを形成することであって、前記第2の複素データセット内の前記第1の線形アレイが前記第1の複素データセット内の前記第2の線形アレイに対応すること、をさらに含む、
請求項1に記載の画像処理システム。
【請求項11】
表示用の前記画像データを出力することは、表示用の前記画像データを表すホログラムを出力することを含み、前記ホログラムが、位相限定ホログラム、または位相および振幅成分を含む完全複素ホログラムである、
請求項1に記載の画像処理システム。
【請求項12】
前記コントローラが、画像のシーケンスをリアルタイムで受信し、それぞれの前記画像を表すホログラムのシーケンスをリアルタイムで出力するように構成される、
請求項11に記載の画像処理システム。
【請求項13】
前記ホログラムを表示するように構成されたホログラフィックディスプレイ装置をさらに備え、前記ホログラフィックディスプレイ装置が、前記ホログラムを表示するように構成された空間光変調器と、前記空間光変調器を照明するように構成された光源とを備える、
請求項11に記載の画像処理システム。
【請求項14】
方法であって、
第1の複素データセット内の各第1の線形アレイの1Dフーリエ変換を実行することであって、前記第1の複素データセットが画像に対応し、前記第1の複素データセットが、第1のビット数を有する第1の数値フォーマットでそれぞれ表されるデカルト形式の複素数値の2次元アレイを含み、前記2次元アレイの複素数値における実部の値及び虚部の値のいずれかが前記画像の画素の大きさ値及び位相値のいずれかをそれぞれ表し前記2次元アレイが、一方の次元に沿った画素を表す値の第1の線形アレイおよび他方の次元に沿った画素を表す値の第2の線形アレイを定義することであって、前記一方の次元に沿った画素を表す値は、前記画像の画素の大きさ値及び位相値の一方を示し、前記他方の次元に沿った画素を表す値は、前記画像の画素の大きさ値及び位相値の残りの一方を示すことと、を含み、
デカルト形式の前記第1の複素データセットの第1の線形アレイの値に1Dフーリエ変換を実行することと、
各フーリエ変換された第1の線形アレイの各値を極形式に変換することと、
極形式の各値を、前記第1のビット数よりも少ない第2のビット数を有する第2の数値フォーマットに変換することと、
前記第2の数値フォーマットの前記値を第1の線形アレイごとにメモリに記憶することと、
前記メモリから前記値を第2の線形アレイごとに読み取ることと、
前記メモリから読み取られた各値を前記第1の数値フォーマットに逆変換することと、
前記第1の数値フォーマットに逆変換された各値をデカルト形式に逆変換することと、
デカルト形式に逆変換された値の各第2の線形アレイの1Dフーリエ変換を実行することであって、前記フーリエ変換された第2の線形アレイの値が第2の複素データセットを形成するために使用される
ことであって、
前記第2の複素データセットは、前記第1の複素データセットのフーリエ変換に対応する複素数値の2次元アレイを含み、一方の次元に沿った値の第1の線形アレイおよび他方の次元に沿った値の第2の線形アレイを定義するものであることと、
前記第2の複素データセットを使用して、画像データを形成することと、
表示用の前記画像データを出力すること、を含む、
方法。
【請求項15】
各フーリエ変換された第2の線形アレイの前記値の大きさを置換して、さらなる値のそれぞれの第2の線形アレイを形成することであって、前記さらなる値は、フーリエ変換された第2の線形アレイの前記値の大きさを置換することにより得られる値であることと、
さらなる値の各第2の線形アレイの1Dフーリエ変換を実行することと、
各フーリエ変換された第2の線形アレイの各さらなる値を極形式のさらなる値に変換することと、
極形式の各さらなるデータ値を、前記第1のビット数よりも少ないさらなる第2のビット数を有するさらなる第2の数値フォーマットのさらなる値に変換することと、
前記さらなる第2の数値フォーマットの前記さらなる値を第2の線形アレイごとにメモリに記憶することと、
前記メモリから前記さらなる値を第1の線形アレイごとに読み取ることと、
前記メモリから読み取られた各さらなる値を前記第1の数値フォーマットに逆変換することと、
前記第1の数値フォーマットに逆変換された各さらなる値をデカルト形式に逆変換することと、
デカルト形式に逆変換されたさらなる値の各第1の線形アレイの1Dフーリエ変換を実行することと、を備える、
請求項14に記載の方法。
【請求項16】
極形式の各値を前記第2の数値フォーマットに変換することが、
各大きさにスケーリング係数を乗算することと、
各大きさ値をx1ビットからy1ビットに、ただしx1>y1、および各位相値をx2ビットからy2ビットに、ただしx2>y2、変換することであって、 極形式の前記値の前記位相値を前記第1の数値フォーマットよりも少ない数のレベルで量子化することと、のうちの1つ以上を含む、
請求項14に記載の方法。
【請求項17】
ある第1の線形アレイを変換する間に前記ある第1の線形アレイとは別の第1の線形アレイを前記フーリエ変換すること、ある第2の線形アレイを変換する間に前記ある第2の線形アレイとは別の第2の線形アレイをフーリエ変換すること、またはその両方を含む、
請求項14に記載の方法。
【請求項18】
前記表示用の画像データを出力することは、
前記画像データを表すホログラムを出力することであって、前記ホログラムが、位相限定ホログラム、または位相および振幅成分を含む完全複素ホログラムであることを含む、
請求項14に記載の方法。
【請求項19】
画像のシーケンスをリアルタイムで受信し、それぞれの前記画像を表すホログラムのシーケンスをリアルタイムで出力すること、をさらに含む、
請求項18に記載の方法。
【請求項20】
前記ホログラムをホログラフィックディスプレイ装置に表示し、前記ホログラムを空間光変調器に表示し、前記空間光変調器を照明すること、をさらに含む、
請求項18に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理に関する。より詳細には、本開示は、複素画像データの2次元フーリエ変換の効率的な実施、ならびに複素数値画像データのデータ圧縮に関する。具体的には、排他的ではないが、本開示は、ホログラフィックディスプレイ用の画像データの処理に関する。
【背景技術】
【0002】
物体から散乱された光は、振幅情報と位相情報の両方を含む。この振幅および位相情報は、例えば、干渉縞を含むホログラフィック記録または「ホログラム」を形成するための周知の干渉技術によって感光板上に取り込むことができる。ホログラムは、元の物体を表す2次元または3次元ホログラフィック再構成、または再生画像を形成するために、適切な光による照明によって再構成することができる。
【0003】
計算機生成ホログラフィは、干渉プロセスを数値的にシミュレートすることができる。計算機生成ホログラム「CGH」は、フレネル変換またはフーリエ変換などの数学的変換に基づく技術によって計算することができる。これらのタイプのホログラムは、フレネルホログラムまたはフーリエホログラムと呼ばれることがある。フーリエホログラムは、物体のフーリエ領域表現または物体の周波数領域表現と考えることができる。CGHは、例えば、コヒーレント光線追跡または点群技術によって計算することもできる。
【0004】
CGHは、入射光の振幅および/または位相を変調するように構成された空間光変調器「SLM」上で符号化することができる。光変調は、例えば、電気的にアドレス指定可能な液晶、光学的にアドレス指定可能な液晶またはマイクロミラーを使用して達成され得る。
【0005】
SLMは、セルまたは要素とも呼ばれ得る複数の個別にアドレス指定可能な画素を含むことができる。光変調方式は、2進、マルチレベル、または連続であってもよい。あるいは、装置は連続的(すなわち画素から構成されていない)であってもよく、したがって、光変調は装置全体にわたって連続的であってもよい。SLMは反射性であってもよく、これは、変調光がSLMから反射して出力されることを意味する。SLMは同様に透過性であってもよく、これは、変調光がSLMから透過して出力されることを意味する。
記載された技術を使用して、撮像用のホログラフィックプロジェクタを提供することができる。そのようなプロジェクタは、例えば、ニアアイ装置を含むヘッドアップディスプレイ「HUD」およびヘッドマウントディスプレイ「HMD」に用途を見出している。
【発明の概要】
【0006】
本開示の態様は、添付の独立請求項に定義されている。
【0007】
第1の態様では、2次元画像を表す(すなわち2次元画像に対応する)第1の複素データセットのフーリエ変換を実行するように構成された画像処理システムが提供される。第1の複素データセットは、デカルト形式の複素数値の2次元アレイを含む。2次元アレイの値は、2次元画像の画素を表す(すなわち2次元画像の画素に対応する)。例えば、複素データセットの2次元アレイにおける各値は画素値を含む。各値は、第1のビット数を有する第1の数値フォーマットで表される。2次元アレイは、一方の次元に沿った画素を表す値の第1の線形アレイ、例えば行と、他方の次元に沿った画素を表す値の第2の線形アレイ、例えば列とを定義する。当然のことながら、本明細書で使用される行または列への参照は便宜上行われ、線形アレイと行/列との間、および行/列と画像のそれぞれの次元との間の割当ては任意であり、行および列という用語は互換的に使用され得ることが理解されよう。さらに、アレイの行は、画像の画素の列に対応してもよく、アレイの列は、画像の画素の行に対応してもよく、またはその逆であってもよい。
【0008】
いくつかの構成では、画像処理システムは、画像に対応する第1の複素データセットのフーリエ変換を実行するように構成された1つ以上のプロセッサと、1つ以上のプロセッサによって実行可能な命令を記憶する有形の非一時的コンピュータ可読媒体とを備える。命令は、実行されると、画像処理システムに以下を含む機能を実行させる。デカルト形式の第1の複素データセットの値の各第1の線形アレイの1Dフーリエ変換を実行する。各フーリエ変換された第1の線形アレイの各値を極形式に変換する。極形式の各値を、第1のビット数よりも少ない第2のビット数を有する第2の数値フォーマットに変換する。第1の線形アレイごとに第2の数値フォーマットの値をメモリに記憶する。第2の線形アレイごとに値をメモリから読み出す。メモリから読み出された各値を第1の数値フォーマットに逆変換する。第1の数値フォーマットに逆変換された各値をデカルト形式に逆変換する。そして、デカルト形式に逆変換された値の各第2の線形アレイの1Dフーリエ変換を実行する。ここで、値のフーリエ変換された第2の線形アレイは、第2の複素データセットを形成するために使用される。そして、第2の複素データセットを使用して画像データを形成する。システムは、表示用の画像データを出力するように構成されたコントローラをさらに備えることができる。
【0009】
他の構成では、システムは、第1の線形アレイごとに第1の複素データセットを受信し、各第1の線形アレイの1Dフーリエ変換を実行するように構成された第1のフーリエ変換エンジンを備える。第1の変換エンジンは、第1のフーリエ変換エンジンによって処理された複素データセットを受信し、各値を極形式に変換し、極形式の各値を、第1のビット数よりも少ない第2のビット数を有する第2の数値フォーマットに変換するように構成される。行-列変換エンジンは、第1の変換エンジンによって処理された複素データセットを受信し、第1の線形アレイごとに第2の数値フォーマットの値をメモリに記憶し、第2の線形アレイごとにメモリから値を読み出すように構成される。実際には、アレイは転置されている。第2の変換エンジンは、第2の線形アレイごとに行-列変換エンジンによって処理された複素データセットを受信し、各値を第1の数値フォーマットに逆変換し、第1の数値フォーマットに逆変換された各値をデカルト形式に逆変換するように構成される。第2のフーリエ変換エンジンは、第2の線形アレイごとに第2の変換エンジンによって処理された複素データセットを受信し、各第2の線形アレイの1Dフーリエ変換を実行するように構成される。システムは、第2のフーリエ変換エンジンによって処理された複素データセットのデータ値を使用して、表示用の画像データを形成するようにさらに構成される。例えば、システムは、表示用の画像データを出力するように構成された出力インターフェースを備えることができる。
【0010】
有利には、行-列変換のためのデータセット内の各複素データ値を記憶するために使用されるビット数を削減することによって、特定のメモリボトルネックが緩和される。システムのほとんどのエンジンは、線形アレイごとにデータのストリームを処理することができるが、行-列(または転置)エンジンは、第2の線形アレイを読み出すことができるようになる前に、すべての第1の線形アレイを受信し記憶しなければならない。したがって、この段階で値当たりのビット数を削減することは、データが行-列変換メモリボトルネックに保持される時間の長さを短縮し、それによって処理速度を高めるので、特に効果的である。また、行-列変換に必要なメモリ容量が削減される。さらに、本開示は、値当たりのビット数を削減するために極座標上で動作することによって品質損失を軽減する、値当たりのビット数を削減する効率的な方法を提供し、それによって画質が維持されることを保証する。これは、極表現では、削減されたビット数で表現される場合、位相情報がより良好に保存されるからである。したがって、データを変換するこの方法は、画像のホログラムを生成するためのアルゴリズムまたは同様の画像処理アルゴリズムなど、重要な情報(おそらく最も重要な画像形成情報)が実際に位相で符号化されるアルゴリズムに特によく適合される。対照的に、デカルト座標での圧縮は、本明細書に開示されるフーリエ変換ベースのプロセスの場合のように、特に多数の大きさの低い値が形成される場合に、位相成分のより大きな誤差をもたらす。いくつかの点で、本明細書に開示される改善された方法は、位相情報を優先し、したがって、位相成分の誤差が振幅成分の誤差よりも損傷を与えることが分かっている完全複素ホログラフィなどの場合に有利であると言える。値が行-列変換の準備ができた状態で記憶(バッファリング)された後、丸め誤差の伝播を回避するために、フーリエ変換計算により適したよりコストのかかる数値フォーマットに逆変換することができる。さらに、行-列変換の速度は、例えば、各値に対してより小さいデータワード(例えば、位相および大きさのそれぞれに対して16ビット)を書き込むことによって増加し、64ビット計算アーキテクチャでは、各64ビットワードに対して2つの値を書き込むことができる。
【0011】
第1の態様の画像処理システムは、表示用の画像データを受信して処理する。例えば、システムは、画像ソースからの2次元入力画像の画素を表すデカルト形式の複素数値の2次元アレイを含む画像データを受信することができる。システムは、入力画像データを処理して、表示用の2次元出力画像の画素を表すデカルト形式の複素数値の2次元アレイを含む画像データを形成することができる。出力画像データの複素数値のアレイは、ディスプレイ装置のそれぞれの画素に表示されることが理解されよう。画像処理は、画像処理技術において一般的に使用される、入力画像データの2次元フーリエ変換を実行することを含む。そのような画像処理技術は、本明細書に記載されるように、入力画像に対応する計算機生成ホログラムを形成するための方法およびアルゴリズムを含む。したがって、いくつかの実装形態では、出力画像データで符号化されたディスプレイ装置は、処理された入力画像に対応する出力画像を表示する。他の実装形態では、出力画像データで符号化されたディスプレイ装置は、入力画像に対応するホログラムを表示する。したがって、本明細書で使用される「画像データ」という用語は、ディスプレイ装置の画素上で符号化されると、ディスプレイ装置に画像または画像のホログラムを表示させるデータを含む。
【0012】
いくつかの実施形態では、第1の態様の画像処理システムは、本明細書に開示される表示およびホログラフィック再構成のためのホログラムの計算的生成のための画像処理を実施するための構成要素として使用され得る。例えば、そのようなシステムは、第1のデータ処理システムの出力の複素数値の大きさを操作して第2のデータ処理システム用の入力を生成する介在データプロセッサと共に機能的に連鎖された、説明した2つのデータ処理システムを備えることができる。いくつかの実施形態では、第2のデータ処理システムは、反復計算を実施するために、同様または同じ方法で第1のデータ処理システムに再接続されることができる。第1および第2のデータ処理システム(したがって、それぞれのエンジン)は実際には同じものであり、その結果、データ処理システムの出力は説明したように操作され、次いで入力にフィードバックされることが理解されよう。第1および第2のデータ処理システムが同一ではない場合、それらは依然としてエンジンのうちの1つ以上を共有することができる。さらに、各データ処理システム内のエンジンは、個々のインスタンス(すなわち2つのフーリエ変換エンジン、2つの変換エンジンなど)に対応してもよく、またはエンジンのうちの1つ以上は実際には単一のもの(すなわち第1のフーリエ変換エンジンは第2のフーリエ変換エンジンでもあり、第1の変換エンジンは第2の変換エンジンでもあるなど)であってもよく、値はそれに応じてエンジン間でルーティングされる。同様に、各データ処理システムは、同じまたは異なる高ビット数値フォーマットおよび同じまたは異なる低ビット数値フォーマットを使用することができる。
【0013】
多種多様な標準またはカスタムの数値フォーマットを使用できることが理解されよう。例えば、複素数値は、複素数の形式に依存して複素数/虚部または位相/角のそれぞれに1つずつの、2つのDOUBLE型浮動小数点数(128ビット)として、および同様に2つのSINGLE型浮動小数点数(64ビット)または2つのHALF型浮動小数点数(32ビット)として記憶されることが可能である。例えば、固定小数点および固定/無指数をとるカスタム数値フォーマットが同様に、例えば、このように128、64または32ビットの各複素数値を符号化することが可能である。このようなカスタム数値フォーマットでは、実部/虚部に割り当てられるビット数は、実部および虚部のそれぞれについて同じであってもよく、または複素数値の各成分に異なるビット数が割り当てられてもよい。それにもかかわらず、本開示は、例えば、スケーリング、ビット値の10進数値への再割当て、丸め、最下位ビットの切り捨ておよび追加などのうちの1つ以上による、第1のビット数を有するフォーマットから第2のビット数を有するフォーマットへの浮動小数点数(または他の10進数もしくは2進数)の変換を包含する。
いくつかの実施形態では、極形式の値を第2の数値フォーマットに変換することは、各大きさ値をx1ビットからy1ビットに変換し、ここでx1>y1であり、各位相値をx2ビットからy2ビットに変換し、ここでx2>y2である、ことを含んでもよい。ビット数x1およびx2は同じであってもよく、および/またはy1およびy2は同じであってもよく、例えばxおよびyである。具体例では、x1=x2=32ビット(データ値あたり64ビット)であり、y1=y2=8ビット(データ値あたり16ビット)である。極形式の各値を第2の数値フォーマットに変換することは、各大きさにスケーリング係数を乗算することを含むことができ、および/または最大許容値を超える任意の大きさ値を最大許容値に設定することを含むことができる。例えば、この閾値化は、スケーリングの後に行われてもよい。閾値化は、大きさ値から最下位ビットを切り捨てること、および/または丸めを含むことができる。最大許容値は、y1ビットで表すことができる最大の大きさ値であってもよい。いくつかの実施形態では、極形式の各値を第2の数値フォーマットに変換することは、極形式の値の位相値を第1の数値フォーマットよりも少ない数のレベルで量子化することを含む。例えば、これは、位相値から最下位ビットを切り捨てることまたは丸めを含み得る。もちろん、各複素数値を記憶するために必要なビット数を削減するための他の技法も同様に使用することができる。
【0014】
いくつかの実施形態では、デカルト形式の各値を第1の数値フォーマットに逆変換することは、各大きさ値をy1ビットからx1ビットに逆変換し、各位相値をy2ビットからx2ビットに逆変換することを含む。例えば、これは、各大きさ値にスケーリング係数の逆数を乗算することを含むことができる。
【0015】
いくつかの実施形態では、行-列変換エンジンのメモリはスタティックランダムアクセスメモリ(SRAM)であり、これは、ダイナミックランダムアクセスメモリ(DRAM)よりも速いアクセス時間を有して有利である。複素数値当たりのビット数を削減することによって必要とされるメモリを低減することにより、SRAMの使用が(部分的に)容易になり、SRAMのビット当たりのコストがより高いことを相殺する。
【0016】
いくつかの実施形態では、第1のフーリエ変換エンジンは、第1の変換エンジンが別の第1の線形アレイを処理している間に1つの第1の線形アレイを処理するように構成され、第2のフーリエ変換エンジンは、第2の変換エンジンが別の第2の線形アレイを処理している間に1つの第2の線形アレイを処理するように構成されるか、またはその両方である。例えば、第1のフーリエ変換エンジンおよび、任意選択的に第2のフーリエ変換エンジンは、複素数値を値のストリームとして受信することができる。値は、シリアルバス上で処理されてもよい。
【0017】
いくつかの実施形態では、システムは、表示用の画像データを出力するように構成された出力インターフェースを備える。例えば、コントローラは、本明細書に記載のホログラフィックディスプレイ装置に入力画像を表すホログラムを出力するように構成されたシステムの出力インターフェースを備えることができる。ホログラムは、位相限定ホログラム、または位相および振幅成分を含む完全複素ホログラムであってもよい。入力インターフェースは、画像ソース(例えばビデオカメラ)から画像のシーケンスをリアルタイムで受信するように構成されてもよく、出力インターフェースは、それぞれの画像(またはそれぞれの処理済み画像)を表すホログラムのシーケンスをリアルタイムで出力するように構成されてもよい。結果として、画像は、リアルタイムで、すなわち低レイテンシで受信されるときに処理され、例えば、典型的なビデオフレームレート、例えば24fpsでオンラインで画像ビデオフレームからホログラフィックビデオフレームの生成を可能にする。いくつかの実施形態では、ホログラフィックディスプレイ装置は、ホログラムを表示するように構成された空間光変調器と、空間光変調器を照明してホログラフィック再構成を形成するように構成された光源とを含む。いくつかの実施形態では、画像処理システムおよびホログラフィックディスプレイは、単一の一体型装置を備えてもよい。
【0018】
第2の態様では、画像に対応する第1の複素データセットの複素フーリエ変換を実行するための画像処理の方法が開示される。第1の複素データセットは、第1のビット数を有する第1の数値フォーマットでそれぞれ表されるデカルト形式の複素数値の2次元アレイを含む。2次元アレイの値は、2次元画像の画素を表す(すなわち2次元画像の画素に対応する)。2次元アレイは、一方の次元に沿った画素を表す値の第1の線形アレイ、および他方の次元に沿った画素を表す値の第2の線形アレイ、例えば上述したような行および列、を定義する。
【0019】
本方法は、以下のステップ、すなわち、第1の複素データセット内の各第1の線形アレイの1Dフーリエ変換を実行するステップと、各フーリエ変換された第1の線形アレイの各値を極形式に変換するステップと、極形式の各値を、第1のビット数よりも少ない第2のビット数を有する第2の数値フォーマットに変換するステップと、第1の線形アレイごとに第2の数値フォーマットの値をメモリに記憶するステップと、第2の線形アレイごとにメモリから値を読み出すステップと、メモリから読み出された各値を第1の数値フォーマットに逆変換するステップと、第1の数値フォーマットに逆変換された各値をデカルト形式に逆変換するステップと、デカルトに逆変換された値の各第2の線形アレイの1Dフーリエ変換を実行するステップと、を含む。本方法は、値のフーリエ変換された第2の線形アレイを使用して、表示用の画像データを形成することをさらに含む。例えば、値のフーリエ変換された第2の線形アレイを使用して第2の複素データセットを形成することができ、方法は、第2の複素データセットを使用して画像データを形成することをさらに含むことができる。
【0020】
同様に、システムについて上述したように、フーリエ変換された第2の線形アレイは、画像のホログラムを生成するためのアルゴリズムまたは同様の画像処理技術において、上述したような(およびより詳細には以下で説明する)大きさの操作に続いて、第1のフーリエ変換ステップにおいて第1の線形アレイとして使用することができる。前述のように、数値フォーマットは、2つのパス間で同じであっても異なっていてもよく、ステップは、反復プロセスのために第1のフーリエ変換ステップを繰り返しループバックすることができる。さらに、すべてのパスが行-列変換のために同じメモリを使用してもよく、または、例えば、奇数および偶数番号のパスのために別個のそのようなメモリが使用されてもよい。
【0021】
もちろん、上述した第1の態様の実施形態の特徴は、第2の態様および以下に開示されるさらなる態様にも等しく適用可能である。
【0022】
第3の態様では、画像処理システムは、画像に対応する複素データセットを処理するように構成される。第1の複素データセットは、第1のビット数を有する第1の数値フォーマットでそれぞれ表されるデカルト形式の複素数値を含む。複素数値は、画像の画素を表す(すなわち画像の画素に対応する)。システムは、複素データセットを受信し、各値を極形式に変換し、極形式の各値を第1のビット数よりも少ない第2のビット数を有する第2の数値フォーマットに変換するように構成された変換エンジンを備える。
【0023】
いくつかの実施形態では、データセットの複素数値は、一方の次元に沿った値の第1の線形アレイおよび他方の次元に沿った値の第2の線形アレイを定義する2次元アレイに配置される。いくつかの実施形態では、データ処理システムは、第1の変換エンジンによって処理された複素データセットを受信し、第1の線形アレイごとに第2の数値フォーマットの値をメモリに記憶し、第2の線形アレイごとにメモリから値を読み出すように構成された行-列変換エンジンをさらに備える。
【0024】
いくつかの実施形態では、システムは、第1の線形アレイごとに複素データセットを受信し、各第1の線形アレイの1Dフーリエ変換を実行するように構成されたフーリエ変換エンジンを備え、変換エンジンは、第1の線形アレイごとに、フーリエ変換エンジンから複素データセットを受信するように構成され、各線形アレイはフーリエ変換エンジンによってフーリエ変換される。
【0025】
第4の態様では、画像に対応する第1の複素データセットの画像処理の方法が開示される。複素データセットは、第1のビット数を有する第1の数値フォーマットでそれぞれ表されるデカルト形式の複素数値を含む。複素数値は、画像の画素を表す(すなわち画像の画素に対応する)。本方法は、各値を極形式に変換することと、極形式の各値を、第1のビット数よりも少ない第2のビット数を有する第2の数値フォーマットに変換することとを含む。
【0026】
いくつかの実施形態では、データセットの複素数値は、一方の次元に沿った画素を表す値の第1の線形アレイと、他方の次元に沿った画素を表す値の第2の線形アレイとを定義する2次元アレイに配置される。いくつかの実施形態では、方法は、第1の線形アレイごとに第2の数値フォーマットの値をメモリに記憶することと、第2の線形アレイごとにメモリから値を読み出すこととを含む。
【0027】
第5の態様では、画像処理システムは、画像に対応する複素データセットの複素フーリエ変換を実行するように構成される。システムは、
複素データセットを受信し、デカルト形式の複素データセットの第1の1D複素フーリエ変換を実行するように構成された第1のフーリエ変換エンジンと、
第1のフーリエ変換エンジンによって処理された複素データセットを受信し、複素データセットを極形式に変換し、極形式の複素データセットを圧縮するように構成された第1のデータ変換エンジンと、
第1のデータ変換エンジンによって処理された複素データセットを受信し、複素データセットの行-列変換を実行するように構成された行-列変換エンジンと、
行-列変換エンジンによって処理された複素データセットを受信し、複素データセットを展開し、複素データセットをデカルト形式に逆変換するように構成された第2のデータ変換エンジンと、
第2のデータ変換エンジンによって処理された複素データセットを受信し、デカルト形式の複素データの第2の1D複素フーリエ変換を実行するように構成された第2のフーリエ変換エンジンと、
を備え、第2の1D複素フーリエ変換は、第1の1D複素フーリエ変換に直交する。システムは、第2のフーリエ変換エンジンによって処理された複素データセットのデータ値を使用して、表示用の画像データを形成するようにさらに構成される。
【0028】
第6の態様では、画像に対応する複素データセットの複素フーリエ変換を実行するための画像処理の方法が開示される。本方法は、以下のステップ、すなわち、
複素データセットを受信し、デカルト形式で複素データセットの第1の1D複素フーリエ変換を実行するステップと、
複素データセットを極形式に変換し、極形式の複素データセットを圧縮するステップと、
複素データセットの行-列変換を実行するステップと、
複素データセットを展開し、複素データセットをデカルト形式に逆変換するステップと、
デカルト形式の複素データセットの第2の1Dフーリエ変換を実行するステップと、
を順に含み、第2の1D複素フーリエ変換が第1の1D複素フーリエ変換に直交する。本方法は、フーリエ変換された複素データセットを使用して表示用の画像データを形成することをさらに含む。
【0029】
画像データの圧縮は、上述のように(異なる数値フォーマットへの変換によって個別に各画素値のビット数を低減する)、または任意の他の適切な方法で実行することができる。
【0030】
第7の態様では、画像を表す複素データセットを圧縮するためのシステムが開示され、システムは、複素データセットを受信し、複素データセットを極形式に変換し、極形式の複素データセットを圧縮するように構成されたデータ変換エンジンを備える。
【0031】
第8の態様では、画像を表す複素データセットを圧縮する方法が提供され、本方法は、複素データセットを極形式に変換することと、極形式の複素データセットを圧縮することとを含む。
【0032】
「ホログラム」という用語は、物体に関する振幅および/または位相情報を含む記録を指すために使用される。「ホログラフィック再構成」という用語は、ホログラムを照明することによって形成される物体の光学的再構成を指すために使用される。「再生平面」という用語は、本明細書では、ホログラフィック再構成が完全に形成される空間内の平面を指すために使用される。「再生フィールド」という用語は、本明細書では、空間光変調器から空間変調光を受信することができる再生平面の部分領域を指すために使用される。「画像」および「画像領域」という用語は、ホログラフィック再構成を形成する光によって照明される再生フィールドの領域を指す。実施形態では、「画像」は、「画像画素」と呼ばれ得る離散的なスポットを含み得る。
【0033】
「符号化」、「書き込み」、または「アドレス指定」という用語は、各画素の変調レベルをそれぞれ決定する関連する複数の制御値をSLMの複数の画素に提供するプロセスを記述するために使用される。SLMの画素は、複数の制御値の受信に応答して光変調分布を「表示」するように構成されていると言うことができる。
【0034】
受容可能な品質のホログラフィック再構成は、元の物体に関する位相情報のみを含む「ホログラム」から形成できることが分かっている。このようなホログラフィック記録は、位相限定ホログラムと呼ばれることがある。しかしながら、位相限定ホログラムへの言及は、単なる例である。本開示はまた、元の物体に関連する振幅および位相情報を使用してホログラフィック再構成を形成することにも同様に適用可能である。いくつかの実施形態では、これは、元の物体に関する振幅情報および位相情報の両方を含む、いわゆる完全複素ホログラムを使用した複素変調によって達成される。このようなホログラムは、ホログラムの各画素に割り当てられた値(グレイレベル)が振幅および位相成分を有するため、完全複素ホログラムと呼ばれることがある。各画素に割り当てられた値(グレイレベル)は、振幅成分および位相成分の両方を有する複素数として表されてもよい。いくつかの実施形態では、完全複素計算機生成ホログラムが計算される。
【0035】
「位相遅延」の省略表現として、位相値、位相成分、位相情報、または単に、計算機生成ホログラムまたは空間光変調器の画素の位相と称することがある。すなわち、記載される任意の位相値は、実際には、その画素によって提供される位相遅れの量を表す数(例えば0~2πの範囲内)である。例えば、π/2の位相値を有すると記載された空間光変調器の画素は、受信光の位相をπ/2ラジアンだけ変化させる。いくつかの実施形態では、空間光変調器の各画素は、複数の可能な変調値(例えば位相遅延値)のうちの1つで動作可能である。「グレイレベル」という用語は、複数の利用可能な変調レベルを指すために使用され得る。例えば、「グレイレベル」という用語は、異なる位相レベルがグレイの異なる階調を提供しない場合であっても、位相限定変調器において複数の利用可能な位相レベルを指すために便宜上使用され得る。「グレイレベル」という用語はまた、複素変調器における複数の利用可能な複素変調レベルを指すために便宜上使用され得る。
【0036】
異なる態様、実施形態、ならびに態様および実施形態のグループが本開示において別々に開示され得るが、任意の実施形態または実施形態のグループの任意の特徴を、任意の実施形態または実施形態のグループの任意の他の特徴または特徴の組合せと組み合わせることができる。すなわち、本開示に開示された特徴のすべての可能な組合せおよび置換が想定され、本明細書に開示される。
【0037】
特定の実施形態は、以下の図を参照して単なる例として説明される。
【図面の簡単な説明】
【0038】
【
図1】スクリーン上にホログラフィック再構成を生成する反射型SLMを示す概略図である。
【
図2A】例示的なGerchberg-Saxton型アルゴリズムの第1の反復を示す図である。
【
図2B】例示的なGerchberg-Saxton型アルゴリズムの2回目以降の反復を示す図である。
【
図2C】例示的なGerchberg-Saxton型アルゴリズムの代替的な2回目以降の反復を示す図である。
【
図5】画像データをフーリエ変換および変換するように構成された画像処理システムを示す図である。
【
図6】2Dフーリエ変換を実施するように構成された画像処理システムを示す図である。
【
図7】逆2Dフーリエ変換を実施するように構成された画像処理システムを示す図である。
【
図8】ホログラムの計算機生成に適した反復計算を実施するように構成された画像処理システムを示す図である。
【
図9】ホログラムの計算機生成に適した2Dフーリエ変換および反復計算を実施する、画像データをフーリエ変換および変換する方法を示す図である。
【
図10】コンピューティングデバイスを示す図である。
【発明を実施するための形態】
【0039】
同じまたは同様の部分を指すために、図面全体を通して同じ参照番号が使用される。
【0040】
本発明は、以下に記載される実施形態に限定されず、添付の特許請求の範囲の全範囲に及ぶ。すなわち、本発明は、異なる形態で具体化されてもよく、説明のために記載された実施形態に限定されると解釈されるべきではない。
【0041】
単数形の用語は、特に明記しない限り、複数形を含み得る。
【0042】
他の構造の上部/下部または他の構造の上/下に形成されると記載された構造は、構造が互いに接触する場合、さらに、それらの間に第3の構造が配置される場合を含むと解釈されるべきである。
【0043】
時間関係を説明する際に、例えば、イベントの時間的順序が「後」、「後続」、「次」、「前」などとして説明される場合、本開示は、特に明記しない限り、連続的および非連続的なイベントを含むと解釈されるべきである。例えば、「ちょうど」、「即時」、または「直接」などの表現が使用されない限り、説明は連続的でない場合を含むと解釈されるべきである。
【0044】
本明細書では、「第1」、「第2」などの用語を使用して様々な要素を説明することがあるが、これらの要素はこれらの用語によって限定されない。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、添付の特許請求の範囲から逸脱することなく、第1の要素を第2の要素と呼ぶことができ、同様に、第2の要素を第1の要素と呼ぶことができる。
【0045】
異なる実施形態の特徴は、部分的または全体的に互いに結合または組み合わせられてもよく、互いに様々に相互運用されてもよい。いくつかの実施形態は、互いに独立して実施されてもよく、または共依存関係で一緒に実施されてもよい。
【0046】
光学構成
図1は、計算機生成ホログラムが単一の空間光変調器で符号化される実施形態を示す。計算機生成ホログラムは、再構成のための物体のフーリエ変換である。したがって、ホログラムは、物体のフーリエ領域または周波数領域またはスペクトル領域表現であると言える。この実施形態では、空間光変調器は、シリコン上の反射型液晶「LCOS」デバイスである。ホログラムは空間光変調器上で符号化され、ホログラフィック再構成が再生フィールド、例えばスクリーンまたはディフューザなどの受光面に形成される。
【0047】
光源110、例えばレーザまたはレーザダイオードは、コリメートレンズ111を介してSLM140を照明するように配置される。コリメートレンズは、光の略平面状の波面をSLMに入射させる。
図1では、波面の方向は法線方向ではない(例えば透明層の平面に対して真に直交する方向から2度または3度離れている)。しかしながら、他の実施形態では、略平面状の波面が法線入射で提供され、ビームスプリッタ装置が入力光路と出力光路とを分離するために使用される。
図1に示す実施形態では、光源からの光がSLMの鏡像反転された後面で反射され、光変調層と相互作用して出口波面112を形成するように配置されている。出口波面112は、スクリーン125にその焦点を有するフーリエ変換レンズ120を含む光学系に適用される。より具体的には、フーリエ変換レンズ120は、SLM140から変調光のビームを受信し、周波数-空間変換を実行してスクリーン125にホログラフィック再構成を生成する。
【0048】
特に、この種のホログラフィでは、ホログラムの各画素が全体の再構成に寄与する。再生フィールド上の特定の点(または画像画素)と特定の光変調素子(またはホログラム画素)との間に1対1の相関はない。言い換えれば、光変調層を出る変調光は、再生フィールドにわたって分布する。
【0049】
これらの実施形態では、空間におけるホログラフィック再構成の位置は、フーリエ変換レンズの屈折力(集束力)によって決定される。
図1に示す実施形態では、フーリエ変換レンズは物理レンズである。すなわち、フーリエ変換レンズは光フーリエ変換レンズであり、フーリエ変換は光学的に実行される。任意のレンズはフーリエ変換レンズとして作用することができるが、レンズの性能は、それが実行するフーリエ変換の精度を制限する。当業者は、レンズを使用して光フーリエ変換を実行する方法を理解している。
【0050】
ホログラム計算
いくつかの実施形態では、計算機生成ホログラムは、フーリエ変換ホログラム、または単にフーリエホログラムまたはフーリエベースのホログラムであり、正レンズ(物理レンズまたはSLMに表示される対応する位相遅延分布によって実装されるソフトウェアレンズのいずれか)のフーリエ変換特性を利用することによって遠視野で画像が再構成される。フーリエホログラムは、再生平面内の所望の光照射野をレンズ平面に逆フーリエ変換することによって計算される。計算機生成フーリエホログラムは、フーリエ変換を使用して計算することができる。
【0051】
フーリエ変換ホログラムは、Gerchberg-Saxtonアルゴリズムなどのアルゴリズムを使用して計算することができる。さらに、Gerchberg-Saxtonアルゴリズムを使用して、空間領域の振幅限定情報(写真など)からフーリエ領域のホログラム(すなわちフーリエ変換ホログラム)を計算することができる。物体に関する位相情報は、空間領域における振幅限定情報から効果的に「取得」される。いくつかの実施形態では、計算機生成ホログラムは、Gerchberg-Saxtonアルゴリズムまたはその変形を使用して振幅限定情報から計算される。
【0052】
Gerchberg-Saxtonアルゴリズムは、平面AおよびBにおける光ビームの強度断面IA(x,y)およびIB(x,y)がそれぞれ既知であり、IA(x,y)およびIB(x,y)が単一のフーリエ変換によって関連付けられるときの状況を考慮する。所与の強度断面を用いて、平面AおよびBにおける位相分布ΨA(x,y)およびΨB(x,y)に対する近似がそれぞれ見出される。Gerchberg-Saxtonアルゴリズムは、反復プロセスに従うことによってこの問題の解を見つける。より具体的には、Gerchberg-Saxtonアルゴリズムは、IA(x,y)およびIB(x,y)を表すデータセット(振幅および位相)を空間領域とフーリエ(スペクトルまたは周波数)領域との間で繰り返し転送しながら、空間的制約およびスペクトル制約を繰り返し適用する。スペクトル領域内の対応する計算機生成ホログラムは、アルゴリズムの少なくとも1回の反復によって得られる。アルゴリズムは収束し、入力画像を表すホログラムを生成するように構成される。ホログラムは、振幅限定ホログラム、位相限定ホログラム、または完全複素ホログラムであってもよい。
【0053】
いくつかの実施形態では、位相限定ホログラムは、参照によりその全体が本明細書に組み込まれる英国特許第2498170号または第2501112号に記載されているようなGerchberg-Saxtonアルゴリズムに基づくアルゴリズムを使用して計算される。しかしながら、本明細書に開示される実施形態は、単なる例として位相限定ホログラムを計算することを記載している。これらの実施形態では、Gerchberg-Saxtonアルゴリズムは、既知の振幅情報T[x,y]をもたらすデータセットのフーリエ変換の位相情報Ψ[u,v]を取得し、振幅情報T[x,y]は目標画像(例えば写真)を表す。大きさおよび位相はフーリエ変換において本質的に組み合わされるため、変換された大きさおよび位相は、計算されたデータセットの精度に関する有用な情報を含む。したがって、アルゴリズムは、振幅情報および位相情報の両方に対するフィードバックを用いて反復的に使用され得る。しかしながら、これらの実施形態では、画像平面で目標画像を表すホログラフィックを形成するために、位相情報Ψ[u,v]のみがホログラムとして使用される。ホログラムは、位相値のデータセット(例えば2Dアレイ)である。
【0054】
他の実施形態では、Gerchberg-Saxtonアルゴリズムに基づくアルゴリズムを使用して、完全複素ホログラムを計算する。完全複素ホログラムは、大きさ成分と位相成分とを有するホログラムである。ホログラムは、複素データ値のアレイを含むデータセット(例えば2Dアレイ)であり、各複素データ値は、大きさ成分および位相成分を含む。
【0055】
いくつかの実施形態では、アルゴリズムは複素データを処理し、フーリエ変換は複素フーリエ変換である。複素データは、(i)デカルト形式として知られる実数成分および虚数成分、または(ii)極形式として知られる大きさ成分および位相成分を含むと見なされ得る。いくつかの実施形態では、複素データの2つの成分は、アルゴリズムの様々な段階で異なるように処理される。
【0056】
図2Aは、位相限定ホログラムを計算するためのいくつかの実施形態によるアルゴリズムの最初の反復を示す。アルゴリズムへの入力は、画素またはデータ値の2Dアレイを含む入力画像210であり、各画素またはデータ値は、大きさまたは振幅の値である。すなわち、入力画像210の各画素またはデータ値は、位相成分を有していない。したがって、入力画像210は、大きさのみまたは振幅のみまたは強度のみの分布と考えることができる。そのような入力画像210の例は、写真、またはフレームの時系列を含むビデオの1フレームである。アルゴリズムの最初の反復は、開始複素データセットを形成するために、ランダム位相分布(またはランダム位相シード)230を使用して、入力画像の各画素にランダム位相値を割り当てることを含むデータ形成ステップ202Aで開始し、セットの各データ要素は、大きさおよび位相を含む。開始複素データセットは、空間領域における入力画像を表すと言える。
【0057】
第1の処理ブロック250は、開始複素データセットを受信し、フーリエ変換複素データセットを形成するために複素フーリエ変換を実行する。第2の処理ブロック253は、フーリエ変換された複素データセットを受信し、ホログラム280Aを出力する。いくつかの実施形態では、ホログラム280Aは位相限定ホログラムである。これらの実施形態では、第2の処理ブロック253は、ホログラム280Aを形成するために、各位相値を量子化し、各振幅値を1に設定する。各位相値は、位相限定ホログラムを「表示」するために使用される空間光変調器の画素上に表され得る位相レベルに従って量子化される。例えば、空間光変調器の各画素が256個の異なる位相レベルを提供する場合、ホログラムの各位相値は、256個の可能な位相レベルのうちの1つの位相レベルに量子化される。ホログラム280Aは、入力画像を表す位相限定フーリエホログラムである。他の実施形態では、ホログラム280Aは、受信されたフーリエ変換複素データセットから導出された複素データ値(それぞれが振幅成分および位相成分を含む)のアレイを含む完全複素ホログラムである。いくつかの実施形態では、第2の処理ブロック253は、各複素データ値を複数の許容複素変調レベルのうちの1つに制約してホログラム280Aを形成する。制約するステップは、各複素データ値を複素平面内の最も近い許容複素変調レベルに設定することを含むことができる。ホログラム280Aは、スペクトル領域またはフーリエ領域または周波数領域における入力画像を表すと言える。いくつかの実施形態では、アルゴリズムはこの時点で停止する。
【0058】
しかしながら、他の実施形態では、アルゴリズムは、
図2Aの点線矢印によって表されるように継続する。言い換えれば、
図2Aの点線矢印に続くステップは任意選択である(すなわちすべての実施形態に必須ではない)。
【0059】
第3の処理ブロック256は、第2の処理ブロック253から修正複素データセットを受信し、逆フーリエ変換を実行して、逆フーリエ変換複素データセットを形成する。逆フーリエ変換複素データセットは、空間領域における入力画像を表すと言える。
【0060】
第4の処理ブロック259は、逆フーリエ変換複素データセットを受信し、大きさ値の分布211Aおよび位相値の分布213Aを抽出する。任意選択的に、第4の処理ブロック259は、大きさ値の分布211Aを評価する。具体的には、第4の処理ブロック259は、逆フーリエ変換複素データセットの大きさ値の分布211Aを、それ自体がもちろん大きさ値の分布である入力画像510と比較してもよい。大きさ値の分布211Aと入力画像210との間の差が十分に小さい場合、第4の処理ブロック259は、ホログラム280Aが受容可能であると判定することができる。すなわち、大きさ値の分布211Aと入力画像210との間の差が十分に小さい場合、第4の処理ブロック259は、ホログラム280Aが入力画像210を十分に正確に表すと判定することができる。いくつかの実施形態では、逆フーリエ変換複素データセットの位相値の分布213Aは、比較の目的のために無視される。大きさ値の分布211Aと入力画像210とを比較するための任意の数の異なる方法を使用することができ、本開示は任意の特定の方法に限定されないことが理解されよう。いくつかの実施形態では、平均二乗差が計算され、平均二乗差が閾値未満である場合、ホログラム280Aは受容可能であると考えられる。第4の処理ブロック259がホログラム280Aを受容可能でないと判定した場合、アルゴリズムのさらなる反復が実行されてもよい。しかしながら、この比較ステップは必須ではなく、他の実施形態では、実行されるアルゴリズムの反復回数は、予め決定されているか、予め設定されているか、またはユーザ定義である。
【0061】
図2Bは、アルゴリズムの2回目の反復およびアルゴリズムの任意のさらなる反復を表す。前回の反復の位相値の分布213Aは、アルゴリズムの処理ブロックを介してフィードバックされる。大きさ値の分布211Aは、入力画像210の大きさ値の分布を優先して却下される。1回目の反復では、データ形成ステップ202Aは、入力画像210の大きさ値の分布とランダム位相分布230とを組み合わせて、第1の複素データセットを形成した。しかしながら、2回目以降の反復では、データ形成ステップ202Bは、(i)アルゴリズムの前回の反復からの位相値の分布213Aと、(ii)入力画像210の大きさ値の分布とを組み合わせることによって複素データセットを形成することを含む。
【0062】
次に、
図2Bのデータ形成ステップ202Bによって形成された複素データセットは、
図2Aを参照して説明したのと同じ方法で処理されて、第2反復のホログラム280Bを形成する。したがって、プロセスの説明はここでは繰り返さない。アルゴリズムは、第2反復のホログラム280Bが計算されたときに停止することができる。しかしながら、アルゴリズムの任意の回数のさらなる反復が実行されてもよい。第3の処理ブロック256は、第4の処理ブロック259が必要とされるか、またはさらなる反復が必要とされる場合にのみ必要とされることが理解されるであろう。出力ホログラム280Bは、一般に、各反復と共に良好になる。しかしながら、実際には、通常、測定可能な改善が観察されないか、またはさらなる反復を実行する正の利益が追加の処理時間の負の効果によって相殺される点に達する。したがって、アルゴリズムは、反復的かつ収束的であるとして説明される。
【0063】
図2Cは、2回目以降の反復の代替実施形態を表す。前回の反復の位相値の分布213Aは、アルゴリズムの処理ブロックを介してフィードバックされる。大きさ値の分布211Aは、大きさ値の代替的な分布を優先して却下される。この代替実施形態では、大きさ値の代替的な分布は、前回の反復の大きさ値の分布211から導出される。具体的には、処理ブロック258は、前回の反復の大きさ値の分布211から入力画像210の大きさ値の分布を減算し、その差を利得係数αでスケーリングし、スケーリングされた差を入力画像210から減算する。これは、以下の式によって数学的に表され、下付き文字および数字は反復回数を示す。
【数1】
ここで、
F’は逆フーリエ変換、
Fは順フーリエ変換、
R[x,y]は第3の処理ブロック256によって出力される複素データセット、
T[x,y]は入力または目標画像、
∠は位相成分、
Ψは位相限定ホログラム280B、
ηは大きさ値の新しい分布211B、および
αは利得係数である。
【0064】
利得係数αは固定であっても可変であってもよい。いくつかの実施形態では、利得係数αは、入ってくる目標画像データのサイズおよびレートに基づいて決定される。いくつかの実施形態では、利得係数αは反復回数に依存する。いくつかの実施形態では、利得係数αは、単に反復回数の関数である。
【0065】
図2Cの実施形態は、他のすべての点で
図2Aおよび
図2Bの実施形態と同じである。位相限定ホログラムΨ(u,v)は、周波数領域またはフーリエ領域における位相分布を含むと言える。
【0066】
いくつかの実施形態では、フーリエ変換は、ホログラフィックデータにレンズデータを含めることによって計算的に実行される。すなわち、ホログラムは、物体を表すデータだけでなく、レンズを表すデータも含む。これらの実施形態では、
図1の物理フーリエ変換レンズ120は省略されている。計算機生成ホログラムの分野では、レンズを表すホログラフィックデータを計算する方法が知られている。レンズを表すホログラフィックデータは、ソフトウェアレンズと呼ばれることがある。例えば、位相限定ホログラフィックレンズは、その屈折率および空間的に変化する光路長に起因してレンズの各点によって引き起こされる位相遅延を計算することによって形成され得る。例えば、凸レンズの中心における光路長は、レンズの縁における光路長よりも大きい。振幅限定ホログラフィックレンズは、フレネルゾーンプレートによって形成することができる。物理的なフーリエレンズを必要とせずにフーリエ変換を実行できるように、レンズを表すホログラフィックデータを物体を表すホログラフィックデータと組み合わせる方法も、計算機生成ホログラムの技術分野で知られている。いくつかの実施形態では、レンズデータは、単純なベクトル加算によってホログラフィックデータと組み合わされる。いくつかの実施形態では、フーリエ変換を実行するために、物理レンズがソフトウェアレンズと共に使用される。あるいは、他の実施形態では、ホログラフィック再構成がファーフィールドで行われるように、フーリエ変換レンズは完全に省略される。さらなる実施形態では、ホログラムは、格子データ、すなわち、ビームステアリングなどの格子の機能を実行するように構成されたデータを含むことができる。ここでも、計算機生成ホログラムの分野では、そのようなホログラフィックデータを計算し、それを物体を表すホログラフィックデータと組み合わせる方法が知られている。例えば、位相限定ホログラフィック格子は、ブレーズド格子の表面上の各点によって引き起こされる位相遅延をモデル化することによって形成することができる。振幅限定ホログラフィック格子は、振幅限定ホログラムの角度ステアリングを提供するために、物体を表す振幅限定ホログラムに単に重ね合わせることができる。
【0067】
いくつかの実施形態では、画像データを受信し、アルゴリズムを使用してリアルタイムでホログラムを計算するように構成されたリアルタイムエンジンが提供される。いくつかの実施形態では、画像データは、画像フレームのシーケンスを含むビデオである。他の実施形態では、ホログラムは、予め計算され、コンピュータメモリに記憶され、SLMに表示するために必要に応じて呼び出される。すなわち、いくつかの実施形態では、所定のホログラムのリポジトリが提供される。
【0068】
実施形態は、単なる例として、フーリエホログラフィおよびGerchberg-Saxton型アルゴリズムに関する。本開示は、フレネルホログラフィ、および点群法に基づくものなどの他の技術によって計算されたホログラムにも同様に適用可能である。
【0069】
光変調
空間光変調器を使用して、計算機生成ホログラムを表示することができる。ホログラムが位相限定ホログラムである場合、位相を変調する空間光変調器が必要となる。ホログラムが完全複素ホログラムである場合、位相および振幅を変調する空間光変調器を使用してもよいし、位相を変調する第1の空間光変調器および振幅を変調する第2の空間光変調器を使用してもよい。
【0070】
いくつかの実施形態では、空間光変調器の光変調素子(すなわち画素)は、液晶を含むセルである。すなわち、いくつかの実施形態では、空間光変調器は、光学活性構成要素が液晶である液晶デバイスである。各液晶セルは、複数の光変調レベルを選択的に提供するように構成される。すなわち、各液晶セルは、複数の可能な光変調レベルから選択された1つの光変調レベルで動作するように任意の時点で構成される。各液晶セルは、複数の光変調レベルとは異なる光変調レベルに動的に再構成可能である。いくつかの実施形態では、空間光変調器は反射型液晶オンシリコン(LCOS)空間光変調器であるが、本開示はこのタイプの空間光変調器に限定されない。
【0071】
LCOSデバイスは、小さな開口(例えば幅数センチメートル)内に光変調素子または画素の高密度アレイを提供する。画素は、典型的には約10マイクロメートル以下であり、その結果、回折角が数度になり、光学系をコンパクトにすることができる。LCOS SLMの小さな開口を適切に照明することは、他の液晶デバイスの大きな開口よりも容易である。LCOSデバイスは、典型的には反射性であり、これは、LCOS SLMの画素を駆動する回路を反射面の下に埋め込むことができることを意味する。その結果、開口率が高くなる。言い換えれば、画素は密集しており、すなわち、画素間にデッドスペースがほとんどない。これは、再生フィールドにおける光学的ノイズを低減するので有利である。LCOS SLMは、画素が光学的に平坦であるという利点を有するシリコンバックプレーンを使用する。これは、位相変調装置にとって特に重要である。
【0072】
適切なLCOS SLMを、
図3を参照して、単なる例として以下に説明する。LCOSデバイスは、単結晶シリコン基板302を用いて形成される。これは、基板の上面に配置された、ギャップ301aによって離間された正方形の平面アルミニウム電極301の2Dアレイを有する。電極301のそれぞれは、基板302に埋め込まれた回路302aを介してアドレス指定することができる。各電極は、それぞれの平面ミラーを形成する。電極のアレイ上に配向層303が配置され、配向層303上に液晶層304が配置されている。第2の配向層305が液晶層304上に配置され、例えばガラスの平面透明層306が第2の配向層305上に配置される。例えばITOの単一の透明電極307が、透明層306と第2の配向層305との間に配置される。
【0073】
正方形電極301のそれぞれは、透明電極307の上にある領域および介在する液晶材料と共に、しばしば画素と呼ばれる制御可能な位相変調素子308を画定する。有効画素面積またはフィルファクタは、画素301a間の空間を考慮して、光学的に活性な全画素の割合である。透明電極307に対して各電極301に印加される電圧を制御することによって、それぞれの位相変調素子の液晶材料の特性を変化させることができ、それによってそこに入射する光に可変遅延を提供することができる。効果は、波面に位相限定変調を提供することであり、すなわち振幅効果は生じない。
【0074】
記載されたLCOS SLMは、反射において空間的に変調された光を出力する。反射型LCOS SLMには、信号線、ゲート線、およびトランジスタが鏡面の下にあるという利点があり、その結果、フィルファクタが高く(通常は90%を超える)、解像度が高くなる。反射型LCOS空間光変調器を使用する別の利点は、液晶層の厚さを、透過型デバイスを使用した場合に必要となる厚さの半分にすることができることである。これにより、液晶のスイッチング速度が大幅に向上する(動画像の投影にとって重要な利点)。しかしながら、本開示の教示は、透過型LCOS SLMを使用して同様に実施することができる。
【0075】
2Dフーリエ変換の実施
図4A~
図4Dを参照すると、2D画像を表す画像データの2次元(2D)フーリエ変換は、各次元に沿って1つずつの、2つの1次元(1D)フーリエ変換に分解することができる。
図4Aは、上述したように、例えば画素値およびランダム位相に対応する大きさを有する画像405を表す複素データ値の2Dアレイ410を示す。フーリエ変換425は、矢印415によって示されるように、アレイ410の各行に対して計算されて、行フーリエ変換アレイ430の対応する行420を計算する(
図4Bおよび
図4Cを参照)。アレイ430は、行ごとにフーリエ変換されていると言える。次に、アレイ430は、
図4Cの矢印435によって示されるように、列ごとにフーリエ変換されて、画像405を表すアレイ410の2Dフーリエ変換445を表すデータ値のアレイ440を提供する(
図4Dを参照)。
【0076】
図5を参照すると、2D画像の2次元(2D)フーリエ変換を実行するのに特に適した画像データ処理システムは、第1の複素データ値の第1のアレイを表す第1のデータストリーム501を受信し、各第1の複素データ値は、xビットで形成された実数値およびxビットで形成された虚数値であり、すなわちデータ値はデカルト形式であり、第1の複素データ値の第1のアレイの第1の複素フーリエ変換を実行して、第2の複素データ値の第2のアレイを形成し、各第2の複素データ値は、xビットで形成された実数値およびxビットで形成された虚数値であり、第2の複素データ値の第2のアレイを表す第2のデータストリーム502を出力するように構成された第1のフーリエ変換エンジン552を備える。例えば、x=32ビットである。
【0077】
具体的には、第1のアレイは、
図4Aのアレイ410によって示されるように入力画像を表し、入力画像内の画像強度(画素値)に対応する複素データ値の大きさおよびランダム位相が各データ値に割り当てられる。例えば、これらのデータ割当ては極形式で行うことができ、次いでデータ値はデカルト形式に変換される。配列は、複素データ値A
ijを用いて以下のように表すことができる。
【数2】
第1のフーリエ変換エンジン552によって受信された対応するデータストリーム(第1のデータストリーム501)は、フーリエ変換エンジン552が1行ずつデータ値を受信することによって、以下のように表すことができる。
[A
11A
12A
13…A
1nA
21A
22A
23…A
2nA
m1A
m2A
m3…A
mn]
フーリエ変換エンジン552は、高速フーリエ変換を示すFFTを用いて、以下のように一度に1行ずつデータ値を処理するが、任意のフーリエ変換実装形態を使用できることが理解されよう。
【数3】
フーリエ変換エンジン552は、変換された各行を次々に出力し、それによって別のデータストリーム(第2のデータストリーム502)を生成し、これは、アレイの次元のうちの一方、例えば
図4Cのアレイ430によって示されるようなアレイの行のフーリエ変換に対応する。
[A’
11A’
12A’
13…A’
1nA’
21A’
22A’
23…A’
2nA’
m1A’
m2A’
m3…A’
mn]
【0078】
第1のデータ変換エンジン554は、第2のデータストリーム502を受信し、各第2の複素データ値を、xビットで形成される大きさ値およびxビットで形成される位相値を有する極形式に変換し、各大きさ値および各位相値を圧縮して、例えばy<xとしてyビットで形成される大きさ値およびyビットで形成される位相値を有する第3の複素データ値の第3のアレイを形成し、第3の複素データ値の第3のアレイを表す第3のデータストリーム503を出力するように構成されている。例えば、x=32ビット、y=8ビットである。
【0079】
変換と圧縮の複合演算は、以下のように表すことができる。
【数4】
【0080】
第3のデータストリーム503は、以下のように表すことができる。
[a’11a’12a’13…a’1na’21a’22a’23…a’2na’m1a’m2a’m3…a’mn]
画像を表すデータ値の圧縮は、極形式の各データ値をより少ないビットを使用する数値フォーマットに変換すること、例えば、大きさおよび位相のそれぞれをより少ないビットを使用する数値フォーマットに別々に変換することを含む(またはそれからなる)ことができることが理解されよう。例えば、元の数値フォーマットは、位相および大きさのそれぞれに対して1つのDOUBLE型(64ビット)またはSINGLE型(32ビット)浮動小数点数を使用することができ、エンジン554は、例えば浮動小数点数の小数部から必要な数の最下位ビットを切り捨てることによって、各数値を任意の方法でHALF型(16ビット)またはQUARTER型(8ビット)浮動小数点数に変換することができる。数値フォーマット(元のおよび圧縮された)は当然そのように限定されず、数値は他のフォーマット、例えば2進または整数フォーマットで表されてもよい。例えば、1つの可能なフォーマットでは、位相の2πは、位相部分の最大の表現可能な2値/整数に対応し、0と2πとの間の値は0とその数との間の利用可能なレベルにわたって等間隔に配置され、大きさは、同様に、最大の表現可能な数値に対応する閾値の大きさ(最大の表現可能な大きさ)を用いて表され、0とその大きさとの間の中間値は間の利用可能なレベルにわたって等間隔に配置される。具体例では、初期数値フォーマットは、位相および大きさのそれぞれを1024レベル(各32ビット、合計64ビット)で表し、圧縮された数値フォーマットは、位相および大きさのそれぞれを64レベル(各8ビット、合計16ビット)で表す。
いずれの場合も、位相を圧縮することは、下位ビット表現において0~2πの間の利用可能なレベルに値を再分配することを含むことができる。大きさ値(必ずしも一定の間隔に限定されない)については、発生する可能性のある大きさの知識に基づいて、数値を一定の間隔に限定することができる。例えば、大きさ値は、利用可能な範囲内により適合するように、より低い数値にスケーリングされ、対応する利用可能な表現レベルに割り当てられ、最大表現可能数値を依然として超える大きさ値がその数値に設定(閾値化)される。数値をスケールダウン(乗算)するために使用されるスケーリング係数は、典型的なデータセットの知識に基づいてトレードオフとして設定されてもよく、その結果、受容可能な数以下の大きさが閾値化される可能性が高く、利用可能なレベルは受容可能な精度を表す(レベルは、所望されるよりも数値的に間隔を空けない/粗い)。
画像データの変換および圧縮は別個の動作として説明されているが、これは第1のデータ変換エンジン554を説明する便宜上のものであり、別個の動作が存在する実装形態および存在しない実装形態を包含することがさらに理解されよう。例えば、各データ値は、データ値を極形式に変換するために(プロセッサの他の内部表現の)作業レジスタにプロセッサによって読み取られ、単一の動作としてプロセッサの外部から記述することができるより低いビット数フォーマットでさらなる処理のために利用可能なメモリに書き込まれ得る(ただし、これを実施するためにプロセッサの内部で様々な機械レベル動作が当然発生する)。
行-列変換エンジン556は、第3のデータストリーム503を受信し、第3の複素データ値の第3のアレイをメモリに書き込み、第4の複素データ値の第4のアレイを表す第4のデータストリーム504を読み出すように構成され、第4の複素データ値の第4のアレイは、第3の複素データ値の第3のアレイの行-列変換または転置である。
具体的には、変換エンジン556は、第1のデータ変換エンジン554によって生成された第3のデータストリーム503を行ごとに受信し、データ値をメモリに行ごとに書き込む。第3のデータストリーム503のすべて、すなわちアレイのすべての行がメモリに書き込まれると、データ値は列ごとにメモリから読み出される。結果として得られるデータストリーム(第4のデータストリーム504)は、以下のように表すことができる。
[a’11a’21a’31…a’m1a’12a’22a’32…a’m2a’1na’2na’3n…a’mn]
【0081】
対応する(行フーリエ変換され、圧縮され転置された)アレイは、以下のように表すことができる。
【数5】
【0082】
上記のアレイは、出力画像を表す画像データを形成してもよく、または後述するようにさらなる処理反復のための入力画像データとして使用されてもよい。
【0083】
したがって、いくつかの実施形態では、列ごとの処理の準備ができた転置形式の行ごとのフーリエ変換されたアレイを提供する画像データ処理システムが提供され、それによって、当然のことながら、行および列は、本明細書ではそれぞれの次元のそれぞれの線形アレイの例として言及され、それに対応して、処理は列ごとに開始することができ、データ処理システムは行ごとにアレイを提供することが理解されよう。言い換えれば、「行」という用語は、単に一方の次元(行または列、水平または垂直など)を張る線形アレイを示すために使用され、「列」という用語は、単に2Dアレイにおける他方の次元を張る線形アレイを示すために使用される。
【0084】
図6を参照すると、第2のデータ変換エンジン558は、第4のデータストリーム504を受信し、各第4の複素データ値を展開し、各第4の複素データ値を、実数値および虚数値を含む第5の複素データ値に、すなわちデカルト形式に変換し、第5の複素データ値の第5のアレイを表す第5のデータストリーム505を出力するように構成されている。
【0085】
第2のデータ変換エンジン558の動作は、以下のように概念化することができる。
【数6】
【0086】
具体的には、画像データの展開は、上述した画像データの圧縮の逆演算、例えば利用可能なより多数のレベル(例えば追加のゼロを用いたパディングおよび第3/第4のデータストリーム503、504のレベル間の空レベルの追加)に位相値を再量子化し、スケーリング係数の逆数で大きさ値をスケーリングし、再量子化すること、または場合によっては、例えば、DOUBLE型フォーマットに逆変換することを含むことができる。
【0087】
行-列変換エンジンは、第3のデータストリームを受信するためのメモリとしてのみ実装されてもよく、データストリーム503のすべてが書き込まれたことを第2のデータ変換エンジン558に知らせる機能(あるいは第1のデータ変換エンジン554に実装される)を有するいくつかの実装形態では、第3のデータストリームは第1のデータ変換エンジン554によって順次メモリに書き込まれてもよいことが理解されよう。そのような実装形態では、この信号は次に、第2のデータ変換エンジン558をトリガして、a11から始まるn番目ごとのデータ値をメモリから読み取り、すなわち(オフセットおよび特定のアドレス指定方式を無視して)k={1;2;3;4;...;m・n}としてメモリアドレス1+(k-1)・nを順次読み取る。当然ながら、他の実施形態では、そのようなアドレス指定/読み出し方式は、行-列変換エンジンによって実施される。
【0088】
第2のフーリエ変換エンジン560は、第5のデータストリーム505を受信し、第5の複素データ値の第5のアレイの第2の1D複素フーリエ変換を実行して第6の複素データ値の第6のアレイを形成し、各第6の複素データ値は、xビットで形成された実数値およびxビットで形成された虚数値であり、第6の複素データ値の第6のアレイを表す第6のデータストリーム506を出力し、第2の1D複素フーリエ変換は、第1の1D複素フーリエ変換と直交し、すなわち、行および列に関して、行ではなく列を変換する、ように構成されている。
【0089】
第2のフーリエ変換エンジン560の動作は、以下のように表すことができる。
【数7】
【0090】
具体的には、第2のフーリエ変換エンジン560は、第5のデータストリーム505内のデータ値を列ごとに受信し、一度に1列ずつ変換し、列ごとに第6のデータストリーム506を出力する。
【0091】
データ値の第6のアレイは、第1のアレイ(例えば入力画像)の2Dフーリエ変換の転置であり、以下のように表すことができる。
【数8】
【0092】
対応する第6のデータストリームは、以下のように表すことができる。
[A’’11A’’21…A’’m1A’’12A’’22…A’’m2A’’1nA’’2n…A’’mn]
【0093】
したがって、いくつかの実施形態では、2Dアレイの行ごとおよび列ごとのフーリエ変換に分解された2Dフーリエ変換を提供する画像データ処理システムが提供される。第1のアレイは、上述し
図4Aに示すように入力画像を表す画像データを含むので、第6のデータストリームは、(一般に上述し、特に以下のデータ処理システムを参照して説明される1回以上の反復の後に)計算機生成ホログラムと見なすことができる。具体的には、個々の複素データ値のそれぞれの位相値は、入力画像の計算機生成位相限定ホログラムとして見ることができる。したがって、計算機生成ホログラムに対応する第6のデータストリームは、本明細書に記載のホログラフィック再構成のためのホログラフィックディスプレイ装置による表示のために出力することができる。したがって、いくつかの実施形態では、データ処理システムは、2Dアレイによって表される画像のホログラムを生成するための画像処理システムを形成する。(第6のデータストリームに対応する)データ値の2次元の第6のアレイの値は、2次元入力画像に対応する2次元ホログラムの画素を表す(すなわち2次元ホログラムの画素に対応する)。
【0094】
図7を参照すると、2D逆フーリエ変換を実施する画像データ処理システムは、第7のデータストリーム507を受信し、第7の複素数値の第7のアレイの第1の1D複素逆フーリエ変換を実行して第8の複素データ値の第8のアレイを形成し、各第8の複素データ値は、xビットで形成された実数値およびxビットで形成された虚数値であり、第8の複素データ値の第8のアレイを表す第8のデータストリーム508を出力するように構成された第1の逆フーリエ変換エンジン564を備える。
【0095】
後述するように、第7のデータストリーム507は、例えば、第6のデータストリーム506から導出されてもよい。
【0096】
第3のデータ変換エンジン566は、第8のデータストリーム508を受信し、各第8の複素データ値を、xビットで形成される大きさ値およびxビットで形成される位相値に変換し、各大きさ値および各位相値を圧縮して第9の複素データ値の第9のアレイを形成し、第9の複素データ値の第9のアレイを表す第9のデータストリーム509を出力するように構成されている。
【0097】
逆フーリエ変換画像データ処理システムは、いくつかの実施形態では、行-列変換エンジン556、例えば上述のメモリを、
図5および
図6を参照して上述したデータ処理システムと共有する。行-列変換エンジン556は、この場合、第9のデータストリーム509を受信し、第9の複素データ値の第9のアレイをメモリに書き込み、第10の複素データ値の第10のアレイを表す第10のデータストリーム510を読み出すようにさらに構成され、第10の複素データ値の第10のアレイは、第9の複素データ値の第9のアレイの行-列変換である。他の実施形態では、各データ処理システムは、それ自体の行-列変換エンジンを有する。
【0098】
第4のデータ変換エンジン568は、第10のデータストリーム510を受信し、各第10の複素データ値を展開し、各第10の複素データ値を実数値および虚数値を含む第11の複素データ値に変換し、第11の複素データ値の第11のアレイを表す第11のデータストリーム511を出力するように構成されている。
【0099】
第2の逆フーリエ変換エンジン570は、第11のデータストリーム511を受信し、第11の複素データ値の第11のアレイの第2の1D複素逆フーリエ変換を実行して第12の複素データ値の第12のアレイを形成し、各第12の複素データ値は、xビットで形成された実数値およびxビットで形成された虚数値であり、第12の複素データ値の第12のアレイを表す第12のデータストリーム512を出力するように構成され、第2の1D複素逆フーリエ変換は第1の1D複素逆フーリエ変換に直交する。
【0100】
当業者は、逆フーリエ変換が単に、既にフーリエ変換されたデータセットに適用されるフーリエ変換であることを認識するであろう。例えば、フーリエ変換が画像をフーリエ表現に変換する場合、逆変換は、変換されたデータセットを再びフーリエ変換することによって画像表現に逆変換する。したがって、エンジン552、554、558および560の上記の詳細な説明は、それぞれエンジン564、566、568および570に等しく適用可能である。いくつかの実施形態では、それぞれのエンジンは、同じ方法で(および他の方法で)構成されてもよい。実際、第2のフーリエ変換エンジン560の出力(第6のデータストリーム506)は、順変換および逆変換の動作が同一であるため、直接的に、または介在する行-列変換(転置)を伴って、第1のデータストリーム501として第1のフーリエ変換エンジン552の入力にフィードバックされてもよい。この場合、実際には、エンジン564、566、568および570はそれぞれエンジン552、554、558および560に置き換えられ、それぞれのコンピューティングリソースを再利用する。同様に、受信されたデータ値のストリームに対して同じ動作を実行するので、フーリエ変換エンジン552および560は、それに応じてデータ値ストリームをルーティングすることによって単一のフーリエ変換エンジンと置き換えることができる。言い換えれば、いくつかの実施形態では、第1、第2、第3および/または第4のフーリエ変換エンジンは、単一のフーリエ変換エンジンであるが、それぞれ異なる別個のエンジンであってもよい。
【0101】
図8を参照すると、いくつかの実施形態では、上述の画像データ処理システムは、上述のような計算機生成ホログラムの反復計算を実施するための画像処理のために組み合わされる。したがって、最初の反復によって計算された第6のデータストリーム506は、表示用のホログラムデータとして出力されず、代わりに、次の反復のための入力画像データとして使用するために逆フーリエ変換によって変換される。第1の大きさエンジン562は、第6のデータストリーム506を受信し、第7のデータストリーム507を出力するように構成され、第3のフーリエ変換エンジン564は、第1の大きさエンジン562から第7のデータストリームを受信するように構成される。第1の大きさエンジン562は、例えばすべての大きさを1に設定することによって、上述したように、逆変換が行われる前に第6のデータストリーム506内の複素データ値の大きさを置き換えるように構成される。
【0102】
第2の大きさエンジン572は、第12のデータストリーム512を受信し、第13のデータストリーム513を出力するように構成され、これは上述したように、ホログラムの計算機生成のためのアルゴリズムの次の反復のために第1のデータストリーム501を置き換える。第1のフーリエ変換エンジン552は、第2の大きさエンジン572から第13のデータストリーム513を受信するように構成されている。第2の大きさエンジン572は、1つまたは2つの機能を実行するように構成される。
【0103】
一方で、第2の大きさエンジン572は、いくつかの実施形態では、上述したように、第12のデータストリーム512内の複素数値の大きさを入力画像の対応する大きさまたは画素値と比較し、上述したように適合度条件が満たされた場合に反復アルゴリズムを終了するように構成されている。他の実施形態では、停止条件は、例えば反復回数に基づいており、適合度基準に基づいていない。それにもかかわらず、停止基準が満たされた場合、アルゴリズムは終了し、第6のデータストリーム506(および必要に応じて場合により転置される対応する第6のアレイ)に基づいて計算機生成ホログラムを返し、例えばそれぞれの位相値のアレイを位相限定ホログラムとして、または複素数値のアレイを完全複素ホログラムとして返す。したがって、第6のデータストリーム/アレイは、現在の反復の停止基準が評価される(これは、反復回数の基準の場合、第6のデータストリーム506が完全に計算されるとすぐに起こり得る)までメモリに保持される。
【0104】
さらなる反復が必要とされる場合、すなわち停止基準が満たされない場合、第2の大きさエンジン572は、上述したように、第12のデータストリーム512内のデータ値の大きさを置き換え、例えば上述したように、大きさを入力画像のそれぞれの大きさ、または大きさと入力画像のそれぞれの大きさとの組合せで置き換える。
【0105】
画像処理の対応する方法は、
図9を参照して説明される。方法は、上述のシステムを使用して、または任意の他の方法で実施することができる。
図5~
図8を参照して上述したシステム構成要素の特徴の説明は、それらがどのように実装されるかにかかわらず、対応する方法ステップに等しく適用可能であることが理解されよう。したがって、以下の方法ステップの開示は、上記のそれぞれの特定の開示を含む。
【0106】
ステップ902で、方法は初期化され、例えば上述のように計算機生成ホログラムが計算される画像に基づいて、処理されるデカルト形式の複素データ値の2D N×Mアレイおよびアレイ自体をインデックス付けするカウンタ変数をm=1およびn=1に初期化するが、方法はそのように限定されず、他の画像処理技術に使用されてもよい。データ値が場合によっては列ごと/行ごとにストリーミングされる実施形態では、明示的なカウンタは必要とされず、処理は、データ値をカウントするか、または各行、列および/またはアレイの終わりを示すデータストリーム内のフラグに依拠するかのいずれかで、データのストリーミングによって駆動され得ることが理解されよう。
【0107】
ステップ904で、第n行がフーリエ変換され、結果がステップ906において、最初に極形式に変換され、次により低いビット数のフォーマット/表現に変換される。ステップ908で、第n行はこの形態でメモリに記憶され、ステップ910は、第n行がアレイの最後の行であるかどうかをチェックする。そうでない場合、nがインクリメントされ(またはストリーミング実装形態では、次のM個の値がストリームから受信される)、最後の行が処理されるまでステップ904~910が繰り返される。いくつかの実施形態では、さらなる処理のために圧縮されたデータセットを単に提供するだけで、プロセスは、
図9のブレークポイントAによって示されるように、結果として得られるアレイを出力または記憶するこの段階で終了する。
【0108】
他の実施形態では、方法はステップ916に進み、ここで、例えば、データ値の最初の列がメモリから読み出され、次いでステップ918で、最初に元の数値フォーマットまたは表現(または低ビットのものよりも多くのビットを必要とする少なくとも1つ)に逆変換され、次いで極形式からデカルト形式に逆変換される。次いで、ステップ920で、データ値の列がフーリエ変換される。本方法が以下に説明するようなさらなる処理なしに2Dフーリエ変換を提供するいくつかの実施形態では、本方法は、
図9のブレークポイントBからループバックしてアレイが列ごとに処理されるまでステップ916~920を繰り返し、本方法が終了し、結果として得られるアレイを出力または記憶する。
【0109】
計算機生成ホログラムを計算するための反復プロセスを提供する他の実施形態では、ステップ920で列が変換されると、データ値の大きさは、上述のように、例えば1で置き換えられ、得られた列は、行が列で置き換えられたステップ904~908の説明に従って、ステップ924でフーリエ変換され、ステップ926で変換され、ステップ928で記憶される。ステップ930で、すべての列が処理されたかどうかがチェックされる。そうでない場合、プロセスはステップ932でmをインクリメントする(上述のようなストリーミング実装形態で暗黙的でない限り)。いくつかの実施形態では、次の列が存在する限り、ステップ922~928で列mが処理され、次いで記憶される間に、次の列m+1がステップ916~920で読み出されて処理されるように、ステップ916~920および922~928がインターリーブされてもよい。
【0110】
ステップ930ですべての列が処理されたと判定された場合、プロセスはステップ934に進み、nをリセットする(ストリーミング実装形態(上記参照)で不要でない限り)。ステップ936で、例えば、最初の行がメモリから読み出される。ステップ908は、行を連続したデータ値としてメモリに書き込み、ステップ916は、列のシーケンスを読み出すために連続してM番目ごとの値を読み出し、その後、ステップ928で列のシーケンスとして書き込み、ステップ936でN番目ごとの値を読み出して行のシーケンスを再び読み出すなどし、後述するステップ948で連続した行を書き込んでループバックし、ステップ916で列のシーケンスの読み出しを開始して(M個をスキップして)、ループを閉じることが理解されよう。したがって、
図9を参照して言及される行および列は、方法の各ステップで変換された元のアレイの行および列を指す。
【0111】
ステップ938で、ステップ936で読み取られた行はステップ918について上述したように逆変換され、逆変換された行はステップ940でフーリエ変換される。ステップ942で、行の大きさは、上述したように表現されるべき画像に基づいて置き換えられ、次の反復は、ステップ944でフーリエ変換され、ステップ946でステップ906について上述したように変換され、ステップ948でメモリに記憶されることによって開始される。ステップ950は、すべての行が処理されたことをチェックする。そうでない場合、これが上述のようにストリーミング実装形態において暗黙的でない限り、ステップ952でnがインクリメントされ、方法はステップ936にループバックして次の行を読み取る。一方、ステップ950ですべての行が処理されたと判定された場合、方法はステップ914にループバックしてmをリセットし(これがストリーミング実装形態(上記参照)で不要でない限り)、方法はステップ916に進む。したがって、この方法は、いくつかの実施形態では、計算機生成ホログラムを計算するための反復アルゴリズムを実装し、ステップ902~942は、アルゴリズムの最初の反復に対応し、ステップ944~942の反復は、ステップ914~940を介して後続の反復に対応する。
【0112】
いくつかの実施形態では、停止基準は、設定された反復回数に関して定義される。これらの実施形態では、方法は、反復回数に達し、すべての列が最後の反復で処理された後、ポイントBで停止する。その時点での、すなわちステップ920でフーリエ変換されたデータ値は、ホログラムを形成するために使用され、したがって、この目的のために、少なくとも最後の反復(すなわちステップ902または914の最後の通過後に変換される)においてすべての列について記憶される。例えば、データ値の位相は、上述のように、必要に応じて対応するアレイの転置を伴う位相限定ホログラムとして使用されてもよい。
【0113】
いくつかの実施形態では、停止基準は、上記で詳細に説明したように、元の入力画像と比較して、アレイのデータ値の大きさの大きさ分布の適合度に関して定義される。適合度の尺度は、ブレークポイントCで決定され、アルゴリズムが十分に収束して終了するところの時点で決定される場合、最後のステップ902または914の後にステップ922で変換された列のデータ値は、上述のようにホログラムを構築するために使用される。この目的のために、アレイ内のすべての列に対してステップ920によって生成されたデータ値の列の記憶を単に維持し、各列が次の反復のその対応する列によって、または任意の他の適切な方法で上書きされることが便利であり得る。
【0114】
したがって、停止基準が満たされると、本方法は、表示のために入力画像を表すホログラムを出力することができる。例えば、本方法は、本明細書に記載のホログラフィックディスプレイ装置にホログラムを出力することができる。ホログラムは、位相限定ホログラム、または位相および振幅成分を含む完全複素ホログラムであってもよい。本方法は、画像ソース(例えばビデオカメラ)から入力画像のシーケンスをリアルタイムで受信し、それぞれの画像を表すホログラムのシーケンスをリアルタイムで出力することができる。結果として、本方法は、低レイテンシである、リアルタイムで受信される画像を処理することができる。本明細書に記載されるような複素画像データの圧縮の結果として、レイテンシの低減が可能である。また、複素画像データの極座標表現の圧縮を行うことにより、画像データの誤りが低減される。いくつかの実施形態では、方法は、ホログラムを表示するように配置された空間光変調器などのホログラフィックディスプレイ装置に各ホログラムを表示し、ホログラフィック再構成またはホログラフィック再生画像を形成するように空間光変調器を光で照明することができる。
【0115】
記載された方法によれば、本明細書に記載されたように、対応するホログラムを生成するために、または画像を処理するために必要な画像データに対応する複素数の大きなデータセットの変換は、本明細書に記載されたように、低減された計算リソース、例えば低減されたメモリ容量および処理能力で実行され得る。さらに、計算機生成ホログラム、または処理された画像は、本明細書に記載されたように、速度および精度を高めて計算することができる。
【0116】
追加の特徴
実施形態は、単なる例として、電気的に作動するLCOS空間光変調器を指す。本開示の教示は、例えば、任意の電気的に作動するSLM、光学的に作動するSLM、デジタルマイクロミラーデバイスまたは微小電気機械デバイスなど、本開示による計算機生成ホログラムを表示することができる任意の空間光変調器で等しく実施することができる。
【0117】
いくつかの実施形態では、光源はレーザである。いくつかの実施形態では、検出器は光検出器である。いくつかの実施形態では、受光面はスクリーンまたはディフューザである。本開示のホログラフィック投影システムを使用して、改良されたヘッドアップディスプレイ(HUD)またはヘッドマウントディスプレイを提供することができる。いくつかの実施形態では、HUDを提供するために車両に設置されたホログラフィック投影システムを備える車両が提供される。車両は、自動車、トラック、バン、ローリー、オートバイ、電車、飛行機、ボート、または船などの自動輸送手段であってもよい。
【0118】
ホログラフィック再構成の品質は、画素化空間光変調器を使用する回折性の結果である、いわゆる0次問題によって影響を受ける可能性がある。そのような0次光は「ノイズ」と見なすことができ、例えば鏡面反射光、およびSLMからの他の不要な光を含む。
【0119】
フーリエホログラフィの例では、この「ノイズ」はフーリエレンズの焦点に集束され、ホログラフィック再構成の中心に輝点をもたらす。0次光は単に遮断されてもよいが、これは輝点を暗点に置き換えることを意味する。いくつかの実施形態は、0次のコリメート光線のみを除去するための角度選択フィルタを含む。実施形態はまた、参照によりその全体が本明細書に組み込まれる、欧州特許第2030072号に記載されている0次を管理する方法を含む。
【0120】
いくつかの実施形態では、ホログラムのサイズ(各方向の画素数)は、ホログラムが空間光変調器を満たすように、空間光変調器のサイズに等しい。すなわち、ホログラムは、空間光変調器の全画素を使用する。他の実施形態では、ホログラムのサイズは、空間光変調器のサイズよりも小さい。これらの他の実施形態のうちのいくつかでは、ホログラムの一部(すなわち、ホログラムの画素の連続したサブセット)が未使用の画素で繰り返される。この技術は「タイリング」と呼ばれることがあり、空間光変調器の表面領域がいくつかの「タイル」に分割され、そのそれぞれがホログラムの少なくともサブセットを表す。したがって、各タイルは、空間光変調器よりも小さいサイズである。
【0121】
ホログラフィック再生フィールド(すなわちホログラフィック再構成の物理的または空間的範囲)のサイズは、空間光変調器(すなわち空間光変調器の隣接する光変調素子または画素間の距離)の画素間隔によって決定される。再生フィールドに形成され得る最小の特徴は、「解像度要素」、「画像スポット」または「画像画素」と呼ばれ得る。典型的には、空間光変調器の各画素は矩形状である。矩形開口のフーリエ変換はsinc関数であり、したがって、各画像画素はsinc関数である。より具体的には、再生フィールド上の各画像画素の空間強度分布はsinc関数である。各sinc関数は、ピーク強度の一次回折次数と、一次次数から半径方向に離れて延びる一連の減少強度のより高い回折次数とを含むと考えることができる。各sinc関数のサイズ(すなわち各sinc関数の物理的または空間的範囲)は、空間光変調器のサイズ(すなわち光変調素子または空間光変調画素のアレイによって形成される開口の物理的または空間的範囲)によって決定される。具体的には、光変調画素のアレイによって形成される開口が大きいほど、画像画素は小さくなる。通常、小さな画像画素を有することが望ましい。
【0122】
いくつかの実施形態では、画質を向上させるために「タイリング」の技術が実施される。具体的には、いくつかの実施形態は、ホログラフィック再構成に入る信号コンテンツの量を最大化しながら、画像画素のサイズを最小化するためにタイリングの技術を実装する。
【0123】
しかしながら、結果として生じるホログラフィック再構成は、レーザなどのコヒーレント光源が使用される場合、依然として「スペックル」に悩まされる可能性がある。スペックルは周知であり、光学的に粗い表面から散乱された光の干渉の結果である。このようなスペックルを低減することが望ましい。実施形態は、ホログラフィック再構成において知覚されるスペックルを低減する要素および技術を含む。
【0124】
いくつかの実施形態では、空間光変調器に書き込まれるホログラフィックパターンは、少なくとも1つのタイル全体(すなわち完全なホログラム)と、タイルの少なくとも1つの部分(すなわちホログラムの画素の連続的なサブセット)とを含む。
【0125】
ホログラフィック再構成は、空間光変調器によって画定される窓全体の0次回折内に作成される。1次以上の次数は、画像と重ならないように、かつ空間フィルタを使用してブロックされ得るように十分遠くに変位されることが好ましい。
【0126】
実施形態では、ホログラフィック再構成はカラーである。本明細書に開示される例では、3つの異なる色光源および3つの対応するSLMを使用して合成色を提供する。これらの例は、空間的に分離された色「SSC」と呼ばれることがある。本開示に含まれる変形例では、各色の異なるホログラムが同じSLMの異なる領域に表示され、次いで合成色画像を形成するために組み合わされる。しかしながら、当業者は、本開示の装置および方法の少なくともいくつかが、合成色ホログラフィック画像を提供する他の方法にも等しく適用可能であることを理解するであろう。
【0127】
これらの方法の1つは、フレームシーケンシャルカラー「FSC」として知られている。例示的なFSCシステムでは、3つのレーザが使用され(赤、緑および青)、各レーザは単一のSLMで連続して発射されてビデオの各フレームを生成する。色は、人間の観察者が3つのレーザによって形成された画像の組合せから多色画像を見るように、十分に速い速度で循環される(赤、緑、青、赤、緑、青など)。したがって、各ホログラムは色固有である。例えば、25フレーム/秒のビデオでは、第1のフレームは、赤色レーザを1/75秒間発射することによって生成され、次いで緑色レーザが1/75秒間発射され、最後に青色レーザが1/75秒間発射される。次に、赤色レーザから開始して、次のフレームが生成され、以下同様である。
【0128】
FSC法の利点は、SLM全体が各色に使用されることである。これは、SLM上のすべての画素がカラー画像のそれぞれに使用されるため、生成される3つのカラー画像の品質が損なわれないことを意味する。しかしながら、FSC法の欠点は、各レーザが3分の1の時間しか使用されないため、生成される画像全体がSSC法によって生成される対応する画像の3分の1ほどにしか明るくならないことである。この欠点は、レーザをオーバードライブすることによって、またはより強力なレーザを使用することによって対処することができる可能性があるが、これは使用するためにより多くの電力を必要とし、より高いコストを伴い、システムのコンパクトさが低下する。
【0129】
SSC法の利点は、3つのレーザすべてが同時に発射されるため、画像が明るくなることである。しかしながら、スペースの制限のために1つのSLMのみを使用する必要がある場合、SLMの表面領域は3つの部分に分割することができ、実際には3つの別個のSLMとして機能する。この場合の欠点は、各単色画像に利用可能なSLM表面領域の減少に起因して、各単色画像の品質が低下することである。したがって、多色画像の品質はそれに応じて低下する。利用可能なSLM表面領域の減少は、SLM上のより少ない画素が使用され得ることを意味し、したがって画像の品質を低下させる。解像度が低下するため、画像の品質が低下する。実施形態は、参照によりその全体が本明細書に組み込まれる英国特許第2496108号に開示されている改善されたSSC技術を利用する。
【0130】
例は可視光でSLMを照明することを説明しているが、当業者は、例えば本明細書に開示されるように、光源およびSLMを等しく使用して赤外線または紫外線を向けることができることを理解するであろう。例えば、当業者は、情報をユーザに提供する目的で赤外光および紫外光を可視光に変換する技術を認識するであろう。例えば、本開示は、この目的のために蛍光体および/または量子ドット技術を使用することに及ぶ。
【0131】
いくつかの実施形態は、単なる例として2Dホログラフィック再構成を説明している。他の実施形態では、ホログラフィック再構成は3Dホログラフィック再構成である。すなわち、いくつかの実施形態では、各計算機生成ホログラムは3Dホログラフィック再構成を形成する。
【0132】
コンピューティング装置
図10は、コンピューティング装置1000の一実装形態のブロック図を示し、コンピューティング装置に本明細書で説明する方法のうちの任意の1つ以上を実行させるための命令のセットが実行され得る。代替実装形態では、コンピューティング装置は、ローカルエリアネットワーク(LAN)、イントラネット、エクストラネット、またはインターネット内の他のマシンに接続(例えば、ネットワーク接続)されてもよい。コンピューティング装置は、クライアント-サーバネットワーク環境におけるサーバまたはクライアントマシンの能力で、またはピアツーピア(または分散)ネットワーク環境におけるピアマシンとして動作することができる。コンピューティング装置は、パーソナルコンピュータ(PC)、タブレットコンピュータ、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチもしくはブリッジ、またはそのマシンによって行われるべきアクションを指定する命令のセット(シーケンシャルまたはその他)を実行することができる任意のマシンとすることができる。さらに、単一のコンピューティング装置のみが示されているが、用語「コンピューティング装置」はまた、本明細書で説明される方法のうちの任意の1つ以上を実行するために命令のセット(または複数のセット)を個別にまたは一緒に実行するマシン(例えば、コンピュータ)の任意の集合を含むと解釈されるべきである。
【0133】
例示的なコンピューティング装置1000は、処理装置1002と、メインメモリ1004(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ、シンクロナスDRAM(SDRAM)またはラムバスDRAM(RDRAM)などのダイナミックランダムアクセスメモリ(DRAM)など)と、スタティックメモリ1006(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)と、二次メモリ(例えば、データ記憶装置1018)とを含み、これらはバス1030を介して互いに通信する。
【0134】
処理装置1002は、例えばマイクロプロセッサ、中央処理装置などの1つ以上の汎用プロセッサを表す。より具体的には、処理装置1002は、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、他の命令セットを実装するプロセッサ、または命令セットの組合せを実装するプロセッサであってもよい。処理装置1002はまた、例えば特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなどのような、1つ以上の専用処理装置であってもよい。処理装置1002は、本明細書で説明した動作およびステップを実行するための処理ロジック(命令1022)を実行するように構成される。
【0135】
コンピューティング装置1000は、ネットワークインターフェース装置1008をさらに含むことができる。コンピューティング装置1000はまた、ビデオ表示ユニット1010(例えば、液晶ディスプレイ(LCD)または陰極線管(CRT))、英数字入力装置1012(例えば、キーボードまたはタッチスクリーン)、カーソル制御装置1014(例えば、マウスまたはタッチスクリーン)、およびオーディオ装置1016(例えば、スピーカ)を含むことができる。
【0136】
データ記憶装置1018は、本明細書に記載の方法または機能のうちの任意の1つ以上を具現化する命令1022の1つ以上のセットが記憶される、1つ以上の機械可読記憶媒体(またはより具体的には1つ以上の非一時的コンピュータ可読記憶媒体)1028を含むことができる。命令1022はまた、コンピュータシステム1000、メインメモリ1004および処理装置1002による実行中に、完全にまたは少なくとも部分的に、メインメモリ1004内および/または処理装置1002内に存在することができ、コンピュータ可読記憶媒体を構成する。
【0137】
上述した各種方法は、コンピュータプログラムによって実施されてもよい。コンピュータプログラムは、上述した様々な方法のうちの1つ以上の機能を実行するようにコンピュータに命令するように構成されたコンピュータコードを含むことができる。そのような方法を実行するためのコンピュータプログラムおよび/またはコードは、1つ以上のコンピュータ可読媒体、またはより一般的にはコンピュータプログラム製品上で、コンピュータなどの装置に提供されてもよい。コンピュータ可読媒体は、一時的であっても、または非一時的であってもよい。1つ以上のコンピュータ可読媒体は、例えば、電子、磁気、光学、電磁気、赤外線、もしくは半導体システム、または例えばインターネットを介してコードをダウンロードするためのデータ伝送用の伝搬媒体とすることができる。あるいは、1つ以上のコンピュータ可読媒体は、半導体または固体メモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、リジッド磁気ディスク、およびCD-ROM、CD-R/WまたはDVDなどの光ディスクなどの1つ以上の物理的なコンピュータ可読媒体の形態をとることができる。
【0138】
一実装形態では、本明細書で説明されるモジュール、構成要素、および他の特徴は、個別の構成要素として実装されるか、またはASIC、FPGA、DSP、または同様のデバイスなどのハードウェア構成要素の機能に統合され得る。
【0139】
「ハードウェア構成要素」は、特定の動作を実行することができる有形の(例えば、非一時的)物理的構成要素(例えば、1つ以上のプロセッサのセット)であり、特定の物理的方法で構成または配置され得る。ハードウェア構成要素は、特定の動作を実行するように永続的に構成された専用回路またはロジックを含むことができる。ハードウェア構成要素は、フィールドプログラマブルゲートアレイ(FPGA)またはASICなどの専用プロセッサであり得るか、またはそれを含み得る。ハードウェア構成要素はまた、特定の動作を実行するようにソフトウェアによって一時的に構成されるプログラマブルロジックまたは回路を含むことができる。
【0140】
したがって、「ハードウェア構成要素」という語句は、特定の方法で動作するように、または本明細書に記載の特定の動作を実行するように、物理的に構築され、永続的に構成(例えば、ハードワイヤード)され、または一時的に構成され(例えば、プログラムされ)得る有形のエンティティを包含すると理解されるべきである。
【0141】
さらに、モジュールおよび構成要素は、ハードウェア装置内のファームウェアまたは機能回路として実装することができる。さらに、モジュールおよび構成要素は、ハードウェア装置とソフトウェア構成要素との任意の組合せで、またはソフトウェア(例えば、機械可読媒体または伝送媒体に記憶または他の方法で具現化されたコード)のみで実装することができる。
【0142】
説明は、フーリエ変換(Fourier transform)エンジン、変換(conversion)エンジン、変換(transformation)エンジンなどのデータ処理エンジンに言及している。これらのエンジンは、それぞれの専用ハードウェア構成要素に実装され、ハードウェア構成要素間で共有され、またはハードウェア構成要素を共有し、例えばそれぞれのモジュールに、ソフトウェア、例えばファームウェア、ミドルウェアなどに、またはハードウェアに実装され得ることが理解されよう。
【0143】
特に明記しない限り、以下の説明から明らかなように、説明全体を通して、「受信する」、「決定する」、「比較する」、「有効化する」、「維持する」、「識別する」、「変換する(transforming)」、「変換する(converting)」、「記憶する」、「読み取る」などの用語を利用する説明は、コンピュータシステムのレジスタおよびメモリ内の物理的(電子的)な量として表されるデータを操作し、コンピュータシステムのメモリまたはレジスタあるいは他のそのような情報記憶装置、伝送装置またはディスプレイ装置内の物理量として同様に表される他のデータに変換するコンピュータシステムまたは同様の電子コンピューティング装置の動作およびプロセスを指すことが理解される。
【0144】
本明細書に記載の方法およびプロセスは、コンピュータ可読媒体上で実施することができる。「コンピュータ可読媒体」という用語は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、バッファメモリ、フラッシュメモリ、およびキャッシュメモリなど、データを一時的または永続的に記憶するように構成された媒体を含む。「コンピュータ可読媒体」という用語はまた、命令が、1つ以上のプロセッサによって実行されると、機械に、本明細書に記載の方法論のうちの任意の1つ以上を全体的または部分的に実行させるように、機械によって実行するための命令を記憶することができる任意の有形の非一時的媒体、または複数の媒体の組合せを含むと解釈されるべきである。
【0145】
「コンピュータ可読媒体」という用語は、クラウドベースのストレージシステムも包含する。「コンピュータ可読媒体」という用語は、ソリッドステートメモリチップ、光ディスク、磁気ディスク、またはそれらの任意の適切な組合せの例示的な形態の1つ以上の有形かつ非一時的なデータリポジトリ(例えば、データボリューム)を含むが、これらに限定されない。いくつかの例示的な実施形態では、実行のための命令は、キャリア媒体によって通信されてもよい。このようなキャリア媒体としては、例えば、過渡的媒体(例えば、命令を通信する伝搬信号)が挙げられる。
【0146】
さらなる開示された態様および実施形態
【0147】
以下の態様および実施形態が開示される。
【0148】
1.画像に対応する複素データセットの複素フーリエ変換を実行するように構成されたシステムであって、該システムが、
複素データセットを受信し、デカルト形式の複素データセットの第1の1D複素フーリエ変換を実行するように構成された第1のフーリエ変換エンジンと、
第1のフーリエ変換エンジンによって処理された複素データセットを受信し、複素データセットを極形式に変換し、極形式の複素データセットを圧縮するように構成された第1のデータ変換エンジンと、
第1のデータ変換エンジンによって処理された複素データセットを受信し、複素データセットの行-列変換を実行するように構成された行-列変換エンジンと、
行-列変換エンジンによって処理された複素データセットを受信し、複素データセットを展開し、複素データセットをデカルト形式に逆変換するように構成された第2のデータ変換エンジンと、
第2のデータ変換エンジンによって処理された複素データセットを受信し、デカルト形式の複素データの第2の1D複素フーリエ変換を実行するように構成された第2のフーリエ変換エンジンと、
を備え、第2の1D複素フーリエ変換は第1の1D複素フーリエ変換に直交する、システム。
【0149】
2.第1のデータ変換エンジンが、各大きさ値にスケーリング係数を乗算することによって極形式の複素データセットを圧縮するように構成される、項目1に記載のシステム。
【0150】
3.第1のデータ変換エンジンが、複素データセットの各大きさ値および各位相値をxビットからyビット、ただしx>y、に変換することによって極形式の複素データセットを圧縮するように構成される、項目1または2に記載のシステム。
【0151】
4.第1のデータ変換エンジンが、最大許容値を上回る任意の大きさ値を最大許容値まで閾値化することによって極形式の複素データセットを圧縮するように構成される、項目3に記載のシステム。
【0152】
5.最大許容値が、yビットを有する最大許容値である、項目4に記載のシステム。
【0153】
6.第1のデータ変換エンジンが、位相値を量子化することによって複素データセットを圧縮するように構成される、項目1~5のいずれか一項に記載のシステム。
【0154】
7.第2のデータ変換エンジンが、各大きさ値および各位相値をyビットからxビットに逆変換し、各大きさ値にスケーリング係数の逆数を乗算することによって、複素データセットを展開するように構成される、項目1~6のいずれか一項に記載のシステム。
【0155】
8.行-列変換エンジンが、受信された複素データセットをメモリに書き込み、受信された順序とは異なる順序でメモリから複素データセットを読み出すことによって、行-列変換を実行するように構成される、項目1~7のいずれか一項に記載のシステム。
【0156】
9.メモリがスタティックランダムアクセスメモリである、項目8に記載のシステム。
【0157】
10.画像に対応する複素データセットの複素逆フーリエ変換を実行するように構成されたシステムであって、該システムが、
複素データセットを受信し、デカルト形式の複素データセットの第1の1D複素逆フーリエ変換を実行するように構成された第1の逆フーリエ変換エンジンと、
第1の逆フーリエ変換エンジンによって処理された複素データセットを受信し、複素データセットを極形式に変換し、極形式の複素データセットを圧縮するように構成された第3のデータ変換エンジンと、
第1のデータ変換エンジンによって処理された複素データセットを受信し、複素データセットの行-列変換を実行するように構成された行-列変換エンジンと、
行-列変換エンジンによって処理された複素データセットを受信し、複素データセットを展開し、複素データセットをデカルト形式に逆変換するように構成された第4のデータ変換エンジンと、
第2のデータ変換エンジンによって処理された複素データセットを受信し、デカルト形式の複素データの第2の1D複素逆フーリエ変換を実行するように構成された第2の逆フーリエ変換エンジンと、
を備え、第2の1D複素逆フーリエ変換が第1の1D複素逆フーリエ変換に直交する、システム。
【0158】
11.第3のデータ変換エンジンが、各大きさ値にスケーリング係数を乗算することによって極形式の複素データセットを圧縮するように構成される、項目10に記載のシステム。
【0159】
12.第3のデータ変換エンジンが、複素データセットの各大きさ値および各位相値をxビットからyビット、ただしx>y、に変換することによって、極形式の複素データセットを圧縮するように構成される、項目10または11に記載のシステム。
【0160】
13.第3のデータ変換エンジンが、最大許容値を上回る任意の大きさ値を最大許容値まで閾値化することによって極形式の複素データセットを圧縮するように構成される、項目12に記載のシステム。
【0161】
14.最大許容値が、yビットを有する最大許容値である、項目13に記載のシステム。
【0162】
15.第3のデータ変換エンジンが、位相値を量子化することによって複素データセットを圧縮するように構成される、項目10~14のいずれか一項に記載のシステム。
【0163】
16.第4のデータ変換エンジンが、各大きさ値および各位相値をyビットからxビットに逆変換し、次いで各大きさ値にスケーリング係数の逆数を乗算することによって、複素データセットを展開するように構成される、項目10~15のいずれか一項に記載のシステム。
【0164】
17.行-列変換エンジンが、受信された複素データセットをメモリに書き込み、行-列変換を実行するために受信された順序とは異なる順序でメモリから複素データセットを読み出すようにさらに構成される、項目10~16のいずれかに記載のシステム。
【0165】
18.メモリがスタティックランダムアクセスメモリである、項目17に記載のシステム。
【0166】
19.画像に対応する複素データセットを処理するように構成されたシステムであって、
項目1~9のいずれかに記載のデータ処理システムと、
項目10~18のいずれかに記載のデータ処理システムと、
第2のフーリエ変換エンジンによって処理された複素データセットを受信し、大きさ値を置換して、第1の逆フーリエ変換エンジンによって受信された複素データセットを形成するように、および/または第2の逆フーリエ変換エンジンによって処理された複素データセットを受信し、大きさ値を置換して、第1のフーリエ変換エンジンによって受信された複素データセットを形成するように構成されたデータプロセッサと、
を備える、システム。
【0167】
20.第1の1D複素フーリエ変換が、第1の1D複素逆フーリエ変換に直交する、項目1~19のいずれか一項に記載のシステム。
【0168】
21.複素データセットが1Dデータストリームとしてシステムによって処理される、項目1~20のいずれか一項に記載のシステム。
【0169】
22.複素データがシリアルバス上でシステムによって処理される、項目1~21のいずれか一項に記載のシステム。
【0170】
23.スペクトル領域内の画像を表すホログラムを出力するように構成されたコントローラをさらに備える、項目1~22のいずれか一項に記載のシステム。
【0171】
24.ホログラムが、位相限定ホログラム、または位相および振幅成分を含む完全複素ホログラムである、項目22に記載のシステム。
【0172】
25.コントローラが、画像のシーケンスをリアルタイムで受信し、スペクトル領域内のそれぞれの画像を表すホログラムのシーケンスをリアルタイムで出力するように構成される、項目22または23に記載のシステム。
【0173】
26.ホログラムを表示するように構成された空間光変調器と、空間光変調器を照明するように構成された光源とをさらに備える、項目22~24のいずれか一項に記載のシステム。
【0174】
27.画像に対応する複素データセットの複素フーリエ変換を実行する方法であって、
複素データセットを受信し、デカルト形式で複素データセットの第1の1D複素フーリエ変換を実行するステップと、
複素データセットを極形式に変換し、極形式の複素データセットを圧縮するステップと、
複素データセットの行-列変換を実行するステップと、
複素データセットを展開し、複素データセットをデカルト形式に逆変換するステップと、
デカルト形式の複素データセットの第2の1Dフーリエ変換を実行するステップと、
を以上の順序で含み、第2の1D複素フーリエ変換が第1の1D複素フーリエ変換に直交する、方法。
【0175】
28.画像に対応する複素データセットの複素逆フーリエ変換を実行する方法であって、
複素データセットを受信し、デカルト形式で複素データセットの第1の1D複素逆フーリエ変換を実行するステップと、
複素データセットを極形式に変換し、極形式の複素データセットを圧縮するステップと、
複素データセットの行-列変換を実行するステップと、
複素データセットを展開し、複素データセットをデカルト形式に逆変換するステップと、
デカルト形式の複素データセットの第2の1D逆フーリエ変換を実行するステップと、
を以上の順序で含み、第2の1D複素逆フーリエ変換が第1の1D複素逆フーリエ変換に直交する、方法。
【0176】
29.項目27に従って受信される複素データセットを形成するために、項目26の方法から得られる複素データセットの大きさ値を置換すること、および/または
項目26に従って受信される複素データセットを形成するために、項目27の方法から得られる複素データセットの大きさ値を置換すること、
をさらに含む、項目26および27に記載の方法。
【0177】
上記の説明は例示を意図しており、限定を意図していないことを理解されたい。上記の説明を読んで理解すれば、多くの他の実装形態が当業者には明らかであろう。本開示は、特定の例示的な実装形態を参照して説明されたが、本開示は、説明された実装形態に限定されず、添付の特許請求の範囲の趣旨および範囲内で修正および変更を加えて実施することができることが認識されるであろう。
【0178】
したがって、本明細書および図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。したがって、本開示の範囲は、添付の特許請求の範囲を参照して、そのような特許請求の範囲が権利を与えられる均等物の全範囲と共に決定されるべきである。