显示装置和系统转让专利

申请号 : CN202110346753.8

文献号 : CN113759688B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S.M.科林

申请人 : 杜尔利塔斯有限公司

摘要 :

一种逻辑电路,其可以为像素化显示装置比如空间光调制器输出代表像素位置值的顺序值流。逻辑电路可以包括高级集成电路,比如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。逻辑电路输出的顺序值流可以被另一逻辑电路用来计算软件函数的相应值,以填充像素化显示装置的那些像素。软件函数可以是例如透镜函数或光栅函数,其可以与全息图比如计算机生成的全息图(CGH)结合以在像素化显示装置上显示。

权利要求 :

1.一种逻辑电路,其布置成为像素化显示装置的一行输出像素位置值x流,以计算对应的软件函数值F(x),以在像素化显示装置的[m×n]个像素上显示;

其中,所述流包括从0到n‑1的顺序数字;

其中,所述逻辑电路包括一单位加法模块和p个流水线模块,其中p为大于1的整数;

其中,所述流水线模块具有从v=0到v=p‑1的相应各个流水线标识值v;

其中,所述单位加法模块布置为在预定时间周期内共同向所述p个流水线模块中的每个提供多位二进制输入i;

其中,对于预定时间周期,每个流水线模块布置为:

从单位加法模块接收多位二进制输入i;

将其各个流水线标识值v的二进制表示附加到接收的多位二进制输入i;以及输出唯一多位二进制输出ov,其包括接收的多位二进制输入i和其各个流水线标识值v的二进制表示的组合。

2.如权利要求1所述的逻辑电路,其中,对于预定时间周期,来自流水线模块的唯一多位二进制输出ov包括作为其最高有效位的接收的多位二进制输入i和作为其最低有效位的流水线的各个流水线标识值v的二进制表示。

3.如权利要求1或2所述的逻辑电路,其中,所述单位加法模块布置为:在第一预定时间周期内向p个流水线模块中的每个提供第一多位二进制输入i1;并且在紧接在第一预定时间周期之后的第二预定时间周期内,向p个流水线模块中的每个提供第二多位二进制输入i2;

其中,所述第二多位二进制输入i2比所述第一多位二进制输入i1大单个整数1。

4.如权利要求1或2所述的逻辑电路,其中,标识对应流水线模块的各个流水线标识值的每个二进制表示具有与标识对应的相应其他流水线模块的各个流水线标识值的其他二进制表示中的每个相同的位数。

5.如权利要求1或2所述的逻辑电路,其中,所述逻辑电路布置成为像素化显示装置的一行输出像素位置值x流,该像素化显示装置在每个预定时间周期中需要预定数量k的像素值,其中,k是包括在p个流水线模块内的流水线模块数量的因子,从而k的值能够乘以正整数以得出p的值。

6.如权利要求4所述的逻辑电路,其中,所述p个流水线模块中的每个布置为在与所述相应其他流水线模块中的每个基本相同的时间对于预定时间周期输出其唯一多位二进制输出ov。

7.如权利要求1或2所述的逻辑电路,其中,用于在像素化显示装置的[n×m]个像素上显示的软件函数值F(x)包括透镜函数或光栅函数的值。

8.如权利要求7所述的逻辑电路,其中,提供所述透镜函数或光栅函数以与全息图结合显示在像素化显示装置上。

9.一种包括如任一前述权利要求所述的逻辑电路的逻辑装置,其中,所述装置包括专用集成电路ASIC或可编程逻辑装置PLD。

10.如权利要求9所述的逻辑装置,其中,所述装置包括具有现场可编程门阵列FPGA的可编程逻辑装置。

11.一种全息投影仪,包括:

如权利要求9或10所述的装置;

像素化显示装置,其布置为显示包括根据所述像素位置值x流计算的软件函数值F(x)的光调制图案;以及光源,其布置成用波长λ的光照射光调制图案。

12.如权利要求11所述的全息投影仪,其中,所述装置还布置为将根据所述像素位置值x流计算的软件函数值F(x)添加到全息像素值流的全息像素值以形成显示值数据流,其中,所述光调制图案是根据逻辑装置提供给像素化显示装置的显示值流形成的。

13.一种平视显示器,包括如权利要求11或12所述的全息投影仪。

14.一种为像素化显示装置的一行使像素位置值x成流的方法,以计算对应的软件函数值F(x),以在像素化显示装置的[m×n]个像素上显示;其中,所述流包括从0到n‑1的顺序数字,所述方法包括:在预定时间周期内共同向p个流水线模块中的每个提供多位二进制输入i,其中,所述流水线模块具有从v=0到v=p‑1的相应各个流水线标识值v,其中p是大于1的整数;

所述方法还包括对于预定时间周期在p个流水线模块中的每个处:接收多位二进制输入i;

将其各个流水线标识值v的二进制表示附加到接收的多位二进制输入i;以及输出唯一多位二进制输出ov,其包括接收的多位二进制输入i和其各个流水线标识值v的二进制表示的组合。

15.如权利要求14所述的方法,还包括:从所述p个流水线模块中的每个流水线模块接收所述唯一多位二进制输出ov,并且对于像素化显示装置的一行,将接收的唯一多位二进制输出ov用作像素位置x,用于计算对应的软件函数值F(x),以在像素化显示装置的[m×n]个像素上显示。

说明书 :

显示装置和系统

技术领域

[0001] 本公开涉及一种投影仪。更具体地,本公开涉及一种全息投影仪、一种全息投影方法以及一种全息投影系统。一些实施例涉及平视显示器。一些实施例涉及用于提供像素位置值流以用于计算相应的软件函数值以在显示装置的像素上显示的电路以及相应的方法。

背景技术

[0002] 从物体散射的光包含振幅和相位信息。可以通过众所周知的干涉技术在例如感光板上捕获该振幅和相位信息,以形成包括干涉条纹的全息记录或“全息图”。可以通过用合适的光照射来重建全息图,以形成代表原始物体的二维或三维全息重建或回放图像。
[0003] 计算机生成的全息术可以在数值上模拟干涉过程。可以通过基于数学变换比如菲涅耳或傅立叶变换的技术来计算计算机生成的全息图。这些类型的全息图可被称为菲涅耳/傅立叶变换全息图或简称为菲涅耳/傅立叶全息图。傅立叶全息图可被认为是物体的傅立叶域/平面表示或物体的频域/平面表示。例如,还可以通过相干射线追踪或点云技术来计算计算机生成的全息图。
[0004] 可以在布置为调制入射光的振幅和/或相位的空间光调制器上对计算机生成的全息图进行编码。例如,可以使用电可寻址液晶、光学可寻址液晶或微镜来实现光调制。
[0005] 空间光调制器通常包括多个单独可寻址像素,其也可以称为单元或元素。光调制方案可以是二进制、多级或连续的。可替代地,装置可以是连续的(即不包括像素),因此光调制可以在整个装置上是连续的。空间光调制器可以是反射性的,这意味着调制光以反射输出。空间光调制器可以同样是透射性的,这意味着调制光以透射输出。
[0006] 可以使用本文描述的系统来提供全息投影仪。例如,这样的投影仪已经在平视显示器“HUD”中找到了应用。

发明内容

[0007] 本公开的各方面在所附独立权利要求中定义。
[0008] 总体,本文提供了一种逻辑电路,其可以为像素化显示装置比如空间光调制器输出代表像素位置值的顺序值流。逻辑电路可以包括高级集成电路(比如现场可编程门阵列(FPGA)或专用集成电路(ASIC))(或者可以是其的逻辑块或子电路)。根据本公开,由逻辑电路输出的顺序值流可以被另一逻辑电路(或其他子电路或逻辑装置或处理器)用来计算软件函数的相应值,以填充像素化显示装置的那些像素。软件函数可以是例如透镜函数或光栅函数,其可以与全息图比如计算机生成的全息图(CGH)结合以在像素化显示装置上显示。
[0009] 优化了高级集成电路比如现场可编程门阵列(FPGA),以执行复杂的逻辑函数和组合函数,但这些电路的逻辑块在执行简单函数时可能会非常消耗资源。此外,在该领域中,就所需部件的数量以及每个组件(和/或每个逻辑块)必须执行的计算的数量和复杂性而言,对提高效率存在不断增长的需要,以提供特定的输出。
[0010] 本公开提供了一种逻辑电路,其特别适于在现场可编程门阵列或类似的可编程或定制逻辑设备中实施,该逻辑电路减少了所需的部件数量,以为显示装置提供像素位置值流的每个值,其中像素位置值可用于计算用于软件函数比如软件透镜或光栅的对应软件函数值,以在像素化显示装置比如空间光调制器(SLM)上显示。此外,逻辑电路可以高速提供像素位置值流,以满足像素化显示装置的需要,并确保不妨碍其操作速度。
[0011] 特别地,本文公开的逻辑电路使用单个(即一个)单位加法模块(或单位加法单元)与多个(即两个或更多个)流水线模块相结合,以便为单位加法模块(即由其生成的每个数字)的每个操作周期提供多个输出。流水线模块的数量决定了单位加法模块每个操作周期可提供的输出数量。因此,单位加法模块生成数字的速度比像素化显示装置要求像素位置值(或要求从像素位置值计算出的软件函数值)的速率更慢,而单位加法模块的操作速率实际上是由等于逻辑电路中存在的流水线模块的数量的系数“按比例放大”。
[0012] 逻辑电路的操作利用了二进制数(即基数2)的属性。它体现了本发明人的认识,即如果为流水线模块分配以二进制形式表示的唯一顺序标识值,则可以将这些唯一顺序标识值中的每个附加到单个(即相同的)多位二进制数,由单位加法模块输入到流水线模块,以便输出相应的多个唯一顺序多位二进制输出。这些唯一顺序多位二进制输出可用于表示像素位置值,以用于计算相应的软件函数值。
[0013] 此外,本发明人已经认识到,如果在紧接的随后操作周期中,单位加法模块向流水线模块输入多位二进制数(其比紧跟先前输入的多位二进制数大一(即1)),并且如果流水线再次向其附加其唯一顺序标识值;则所得的多位二进制输出将包括顺序值流,其紧随从流水线模块在紧跟先前周期中输出的多位二进制输出之后。因此,逻辑电路可以周期性地输出值顺序流,以成组的方式产生这些值。
[0014] 根据一方面,提供了一种逻辑电路,其布置成为像素化显示装置的一行输出像素位置值x流,以计算对应的软件函数值F(x),以在像素化显示装置的[m×n]个像素上显示;其中,所述流包括从0到(n‑1)的顺序数字。所述逻辑电路包括一个单位加法模块和多(p)个流水线模块,其中,所述流水线模块具有从v=0到v=(p‑1)的相应各个流水线标识值v。所述单位加法模块布置为在预定时间周期内共同向所述多(p)个流水线模块中的每个提供多位二进制输入i。每个流水线模块对于预定时间周期布置为:从单位加法模块接收多位二进制输入i;将其各个流水线标识值v的二进制表示附加到接收的多位二进制输入i;以及输出唯一多位二进制输出ov,其包括接收的多位二进制输入i和其各个流水线标识值v的二进制表示的组合。
[0015] 单位加法模块本身可以包括逻辑电路。例如,它可以包括以特定方式布置以提供单位加法的多个逻辑门,例如OR、XOR和AND逻辑门的组合。单位加法模块可以称为“加法器”、“加法单元”、“加法器单元”或“加法运算符”。
[0016] 本领域技术人员会熟悉“流水线模块(pipeline module)”一词。流水线模块可以包括独立的电导管,其布置用于数据信号和/或编号处理。
[0017] 本方面的逻辑电路的预定时间周期可被称为其“时钟周期”。
[0018] 像素化显示装置的[m×n]个像素可以由‘m′行和‘n′列形成,其中′m′和′n’是正整数。在这种情况下,像素化显示装置的每一行将有′n’个像素,每列将有′m′个像素。因此,逻辑电路可以布置成为一行输出′n’个顺序像素位置值流,其中各个像素值从0(该行的第1个像素)开始,并以整个整数步长增加到′n‑1’(该行的第n个像素)。
[0019] 从v=0到v=(p‑1)的各个流水线标识值v可以包括顺序完整正整数,其可以由相应的二进制(即基数2)数字表示。
[0020] 如在本文中使用,术语“共同”可被认为是意味着单位加法模块布置为对于预定时间周期向流水线模块中的每个提供相同的(即单个)多位二进制输入i。因此,单位附加模块可能需要在每个预定时间周期成仅提供一个多位二进制输入i。在预定时间周期内,每个流水线模块可以使用相同的(单个)多位二进制输入i,以便产生对应的多个多位二进制输出ov。
[0021] 本方面的逻辑电路可以布置成为像素化显示装置的多于一行输出像素位置值x流,以计算对应的软件函数值F(x),以在像素化显示装置的[m×n]个像素上显示。逻辑电路可以布置成为像素化显示装置的每一行输出像素位置值x流,以计算对应的软件函数值F(x),以在像素化显示装置的[m×n]个像素上显示。
[0022] 本方面的逻辑电路的预定时间周期的长度(以时间为单位)可以等于单位加法模块的“时钟周期”或“操作周期”的长度(以时间为单位)。
[0023] 对于逻辑电路的每个预定时间周期,每个流水线模块可以布置为将附加到接收的多位二进制输入i。每个流水线模块输出的其各个流水线标识值v的二进制表示可以与相应的其他流水线模块中的每个输出的其各个流水线标识值v的二进制表示具有相同的位数。就位数而言,每个流水线布置输出的唯一多位二进制输出ov可能比流水线模块已从单位加法模块接收的多位二进制输入i更长。
[0024] 本方面的逻辑电路可以布置为将其输出提供给第二不同逻辑电路。第二不同逻辑电路可被包括在与本方面的逻辑电路相同的逻辑装置内。例如,第二不同逻辑电路可被包括在与本方面的逻辑电路相同的高级集成电路比如FPGA内。在将输出提供给像素化显示装置之前,可以将第二个不同逻辑电路视为FPGA的下一个或后续处理块。可以将第二不同逻辑电路布置为使用由本方面的逻辑电路输出的顺序像素值,并计算相应的软件函数值F(x),以在像素化显示装置的[m×n]个像素上显示。
[0025] 第二不同逻辑电路可以具有等于本方面的逻辑电路的预定时间周期的时钟周期。本方面的逻辑电路和第二不同电路可以具有共同时钟。可以将第二不同逻辑电路布置成输出其计算出的软件函数值F(x),以便以满足像素化显示装置的需要的速率显示在像素化显示装置的[m×n]个像素上。第二不同逻辑电路可以包括布置为彼此并行工作的多个软件透镜值计算块。例如,第二不同逻辑电路的每个软件透镜值计算块可以配置为从对应的流水线模块(包括在本方面的逻辑电路内)接收值,并使用该接收的值来输出对应的软件透镜值。在第二不同逻辑电路内的每个软件透镜值计算块可以布置为从对应的流水线模块接收其相应值,并在与每个其他软件透镜值计算块从对应的流水线模块接收其相应值并输出其相应的软件透镜值基本相同的时间输出其相应的软件透镜值。因此,对于每个预定时间周期,可以将多个软件透镜值提供给像素化显示装置。对于每个预定时间周期,可以在基本同时的组中提供多个软件透镜值。
[0026] 本方面的逻辑电路可以与像素化显示装置具有共同时钟。即:像素化显示装置的“时钟周期”可以等于(以时间为单位)本方面的逻辑电路的预定时间周期或“时钟周期”。
[0027] 对于预定时间周期,来自流水线模块的唯一多位二进制输出ov可以包括作为其最高有效位的接收的多位二进制输入i和作为其最低有效位的流水线的各个流水线标识值v的二进制表示。换句话说:对于预定时间周期,接收的多位二进制输入i可能出现在来自流水线模块的唯一多位二进制输出ov的开头,并且该流水线的各个流水线标识值v的二进制表示可能出现在紧随接收的多位二进制输入i之后的末尾。
[0028] 单位加法模块可以布置为:在第一预定时间周期内向多(p)个流水线模块中的每个提供第一多位二进制输入i1;并且在紧接在第一预定时间周期之后的第二预定时间周期内,向多(p)个流水线模块中的每个提供第二多位二进制输入i2;其中,所述第二多位二进制输入i2比所述第一多位二进制输入i1大单个整数(即1)。
[0029] 逻辑电路可以布置为周期性地重复其操作。换句话说:在根据该方面的预定时间周期内,由单位加法模块和流水线模块执行的操作可以在对应的多个预定时间周期内被一个接一个地重复多次。对于每个预定时间周期,与紧跟的先前预定时间周期相比,流水线模块从单位加法模块接收的多位二进制输入值i可增加一(1)。可以提供合适的控制器,用于控制单位加法模块和/或逻辑电路的操作。例如,控制器可以配置为在某些条件下将由单位加法模块提供的数字重置为零(0)。
[0030] 逻辑电路可以布置为执行其操作的预定重复次数,或者对于预定时间长度保持重复其操作,或者保持重复其操作直到达到或超过预定目标或阈值,或者遵循有关何时开始和停止其操作的另一说明。
[0031] 多(p)个流水线模块中的流水线模块的数量与像素化显示装置“需要”(即需要配备有)每单位时间的像素值的数量之间可能存在相关性。
[0032] 逻辑电路可以布置成为像素化显示装置的一行输出像素位置值x流,该像素化显示装置在每个预定时间周期中需要预定数量k的像素值,其中,k是包括在多个p流水线模块内的流水线模块数量的因子。在这种情况下,术语“因子”可被认为是数学因子,从而k的值可以乘以整数(正数)以得出p的值。例如,p可以等于k或者其可以是k的两倍等等。
[0033] 与像素化显示装置的需要相比,逻辑电路的预定时间周期(或“时钟周期”)的长度(以时间为单位)与多(p)个流水线模块中的流水线模块数量之间存在相关性。像素化显示装置的需要可被看作是像素化显示装置“需要”(即需要配备有)每单位时间或每个“时钟周期”的像素值的数量。如上所述,像素化显示装置的时钟周期可以与逻辑电路的时钟周期(预定时间周期)相同。逻辑电路可以布置为通过在每个预定时间周期中从对应的多(p)个流水线模块提供多个输出来满足该需要。如果逻辑电路运行相对较慢,使得逻辑电路的预定时间周期的长度(以时间为单位)相对较长,则将需要更多的流水线模块来满足像素化显示装置每单位时间的需要。相反,如果逻辑电路操作相对较快,使得预定时间周期相对较短,则每单位时间将需要较少的流水线模块来满足像素化显示装置的需要。
[0034] 逻辑电路可以布置为提供每单位时间与像素化显示装置所需要的一样多的像素值。然而,在某些情况下,逻辑电路可以布置为提供每单位时间比像素化显示装置所需要的(或可能需要的)更少的像素值。
[0035] 多(p)个流水线模块中的每个布置为在与所述相应其他流水线模块中的每个基本相同的时间对于预定时间周期输出其唯一多位二进制输出ov。因此,逻辑电路可以布置为基本同时输出多(p)个输出。这些输出中的每个可以包括针对像素化显示装置的一行的相应像素位置值x的多位二进制表示。由逻辑电路在给定时间(例如在预定时间周期的末尾)输出的相应像素位置值x的多个多位二进制表示可以包括顺序像素位置值。
[0036] 像素化显示装置可以布置为显示包括软件函数值F(x)的光调制图案。像素化显示装置可以包括空间光调制器。
[0037] 用于在像素化显示装置的[m×n]个像素上显示的软件函数值F(x)可以包括透镜函数或光栅函数的值。
[0038] 可以提供透镜函数或光栅函数以与全息图结合显示在像素化显示装置上。
[0039] 根据一方面,提供了一种逻辑装置,包括根据任何上述方面的逻辑电路,其中该装置包括专用集成电路ASIC或可编程逻辑装置PLD。
[0040] 逻辑装置可以包括现场可编程门阵列FPGA。
[0041] 根据任何上述方面,逻辑装置可以包括一个以上的逻辑电路。
[0042] 根据一方面,提供了一种全息投影仪,包括:根据以上方面的逻辑装置;像素化显示装置,其布置为显示包括根据像素位置值x流计算的软件函数值F(x)的光调制图案;以及光源,其布置成用波长λ的光照射光调制图案。
[0043] 全息投影仪内的逻辑装置可以进一步布置成将根据像素位置值x流计算的软件函数值F(x)添加到全息像素值流的全息像素值以形成显示值数据流,其中光调制图案是根据逻辑装置提供给像素化显示装置的显示值流形成的。
[0044] 根据一方面,可以提供一种平视显示器,其包括以上方面的全息投影仪。
[0045] 根据一方面,提供了一种为像素化显示装置的一行使像素位置值x成流的方法,以计算对应的软件函数值F(x),以在像素化显示装置的[m×n]个像素上显示;其中,所述流包括从0到(n‑1)的顺序数字。所述方法包括:在预定时间周期内共同向多个p流水线模块中的每个提供多位二进制输入i,其中,所述流水线模块具有从v=0到v=(p‑1)的相应各个流水线标识值v。所述方法还包括对于预定时间周期在多个p流水线模块中的每个处:接收多位二进制输入i;将其各个流水线标识值v的二进制表示附加到接收的多位二进制输入i;以及输出唯一多位二进制输出ov,其包括接收的多位二进制输入i和其各个流水线标识值v的二进制表示的组合。
[0046] 该方法可以进一步包括:从多个p流水线模块中的每个流水线模块接收所述唯一多位二进制输出ov,并且对于像素化显示装置的一行,将接收的唯一多位二进制输出ov用作像素位置x,用于计算对应的软件函数值F(x),以在像素化显示装置的[m×n]个像素上显示。
[0047] 根据一方面,提供了一种逻辑电路,其中逻辑电路布置成为像素化显示装置的一行或一列输出像素位置值x流,以计算对应的软件函数值F(x),以在像素化显示装置的[m×n]个像素上显示;其中,如果像素位置值用于一行,则所述流包括从0到(n‑1)的顺序数字;或者其中,如果像素位置值用于一列,则所述流包括从0到(m‑1)的顺序数字。所述逻辑电路包括一个单位加法模块和多个p流水线模块,其中,所述流水线模块具有从v=0到v=(p‑1)的相应各个流水线标识值v。所述单位加法模块布置为在预定时间周期内共同向所述多个p流水线模块中的每个提供多位二进制输入i。每个流水线模块对于预定时间周期布置为:从单位加法模块接收多位二进制输入i;将其各个流水线标识值v的二进制表示附加到接收的多位二进制输入i;以及输出唯一多位二进制输出ov,其包括接收的多位二进制输入i和其各个流水线标识值v的二进制表示的组合。
[0048] 像素化显示装置的[m×n]个像素可以由‘m′行和‘n′列形成,其中′m′和′n’是正整数。在这种情况下,像素化显示装置的每一行将有′n’个像素,每列将有′m′个像素。因此,逻辑电路可以布置成为一行输出′n’个顺序像素位置值流,其中各个像素值从0(该行的第1个像素)开始,并以整个整数步长增加到′n‑1’(该行的第n个像素)。可替代地或另外,逻辑电路可以布置成为一列输出′m’个顺序像素位置值流,其中各个像素值从0(该列的第1个像素)开始,并以整个整数步长增加到′m‑1’(该列的第m个像素)。
[0049] 术语“全息图”用于指代包含关于物体的振幅信息或相位信息或其某种组合的记录。术语“全息重建”用于指代通过照射全息图而形成的物体的光学重建。本文中公开的系统被描述为“全息投影仪”,因为全息重建是真实图像并且与全息图在空间上分离。术语“回放场”用于指代在其内形成全息重建并完全聚焦的2D区域。如果将全息图显示在包括像素的空间光调制器上,则回放场将以多个衍射级的形式重复,其中每个衍射级是零级回放场的副本。零级回放场通常对应于优选或主要回放场,因为它是最亮的回放场。除非另有明确说明,否则术语“回放场”应被认为是指零级回放场。术语“回放平面”用于指代包含所有回放场的空间中的平面。术语“图像”、“回放图像”和“图像区域”指的是通过全息重建的光照射的回放场的区域。在一些实施例中,“图像”可包括离散光斑,其可被称为“图像光斑”,或仅出于方便起见,被称为“图像像素”。
[0050] 术语“编码”、“写入”或“寻址”用于描述向SLM的多个像素提供分别确定每个像素的调制水平的相应多个控制值的过程。可以说,SLM的像素配置为响应于接收到多个控制值而“显示”光调制分布。因此,可以说SLM“显示”全息图,并且全息图可被认为是光调制值或水平的阵列。
[0051] 已经发现,可以从仅包含与原始物体的傅立叶变换有关的相位信息的“全息图”形成可接受质量的全息重建。这样的全息记录可被称为仅相位全息图。实施例涉及仅相位全息图,但本公开同样适用于仅振幅全息图。
[0052] 本公开也同样适用于使用与原始物体的傅立叶变换有关的振幅和相位信息来形成全息重建。在一些实施例中,这是通过使用包含与原始物体有关的振幅和相位信息的所谓全复数全息图的复数调制来实现的。因为分配给全息图的每个像素的值(灰度级)具有振幅和相位分量,所以这种全息图可被称为全复数全息图。分配给每个像素的值(灰度级)可以表示为具有振幅和相位分量的复数。在一些实施例中,计算全复数计算机生成的全息图。
[0053] 可以参考计算机生成的全息图或空间光调制器的像素的相位值、相位分量、相位信息或者简单地说是相位,作为“相位延迟”的简写。即,所描述的任何相位值实际上是代表该像素提供的相位延迟量的数字(例如在0至2π范围内)。例如,空间光调制器的描述为具有π/2相位值的像素将使接收光的相位延迟π/2弧度。在一些实施例中,空间光调制器的每个像素可在多个可能的调制值(例如相位延迟值)之一中操作。术语“灰度级”可以用来指多个可用的调制水平。例如,术语“灰度级”可以为了方便而用于指代仅相位调制器中的多个可用相位水平,即使不同的相位水平没有提供不同的灰色阴影。为了方便起见,术语“灰度级”也可以用来指复数调制器中的多个可用复数调制水平。
[0054] 因此,全息图包括灰度级阵列,即光调制值阵列,比如相位延迟值或复数调制值阵列。全息图也被认为是衍射图案,因为它是当在空间光调制器上显示并且用波长相对于(通常小于)空间光调制器的像素间距的光照射时引起衍射的图案。本文中参考将全息图与其他衍射图案比如用作透镜或光栅的衍射图案组合。例如,可以将用作光栅的衍射图案与全息图组合以在回放平面上平移回放场,或者可以将用作透镜的衍射图案与全息图组合以将全息重建聚焦在近场中的回放平面上。
[0055] 尽管可以在下面的详细描述中分别公开不同的实施例和实施例组,但任何实施例或实施例组的任何特征可以与任何实施例或实施例组的任何其他特征或特征的组合相结合。即,设想了本公开中所公开的特征的所有可能的组合和置换。

附图说明

[0056] 仅参考以下附图以示例的方式描述特定实施例:
[0057] 图1是示出在屏幕上产生全息重建的反射型SLM的示意图;
[0058] 图2A示出了示例Gerchberg‑Saxton类型算法的第一迭代;
[0059] 图2B示出了示例Gerchberg‑Saxton类型算法的第二及后续迭代;
[0060] 图2C示出了示例Gerchberg‑Saxton类型算法的替代第二及后续迭代;
[0061] 图3是反射型LCOS SLM的示意图;
[0062] 图4是根据实施例的逻辑电路的示意图;
[0063] 图5是根据一实施例的图4的流水线模块的示意图;
[0064] 图6是生成图4流水线模块的可能输入和输出的表。
[0065] 在整个附图中将使用相同的附图标记指代相同或相似的部件。

具体实施方式

[0066] 本发明不限于以下描述的实施例,而是扩展到所附权利要求的全部范围。即,本发明可以以不同的形式实施,并且不应被解释为限于所描述的实施例,实施例出于说明的目的而阐述。
[0067] 除非另有说明,否则单数形式的术语可以包括复数形式。
[0068] 被描述为形成在另一结构的上部/下部或者在另一结构之上/之下的结构应被解释为包括结构彼此接触的情况以及在其之间设置有第三结构的情况。
[0069] 在描述时间关系时,例如当事件的时间顺序描述为“之后”、“随后”、“下一个”、“之前”等时,本公开应被认为包括连续和非连续事件,除非另有规定。例如,描述应被认为包括除非使用诸如“仅”、“紧邻”或“直接”之类的措词否则不连续的情况。
[0070] 尽管本文可以使用术语“第一”、“第二”等来描述各种元件,但这些元件不受这些术语的限制。这些术语仅用于区分各个元件。例如,在不脱离所附权利要求的范围的情况下,第一元件可被称为第二元件,类似地,第二元件可被称为第一元件。
[0071] 不同实施例的特征可以部分或整体地彼此耦合或组合,并且可以彼此不同地互操作。一些实施例可以彼此独立地执行,或者可以以相互依存的关系一起执行。
[0072] 光学配置
[0073] 图1示出了其中计算机生成的全息图被编码在单个空间光调制器上的实施例。计算机生成的全息图是用于重建的物体的傅立叶变换。因此可以说全息图是物体的傅立叶域或频域或光谱域表示。在该实施例中,空间光调制器是反射型硅上液晶“LCOS”器件。全息图在空间光调制器上编码,并且在回放场例如光接收表面比如屏幕或漫射器处形成全息重建。
[0074] 设置光源110,例如激光器或激光二极管,以经由准直透镜111照射SLM140。准直透镜使光的大致平面波前入射在SLM上。在图1中,波前的方向是偏离法线的(例如,与真正垂直于透明层的平面相距两或三度)。然而,在其他实施例中,大致平面波前以法向入射提供,并且分束器布置用于分离输入和输出光路。在图1所示的实施例中,布置使得来自光源的光从SLM的镜面后表面反射并与光调制层相互作用以形成出射波前112。出射波前112被施加到包括傅立叶变换透镜120的光学器件,其焦点位于屏幕125上。更具体地,傅立叶变换透镜120接收来自SLM140的调制光束,并执行频率‑空间变换以在屏幕125上产生全息重建。
[0075] 值得注意的是,在这种类型的全息图中,全息图的每个像素都有助于整个重建。回放场上的特定点(或图像像素)与特定的光调制元件(或全息图像素)之间没有一对一的相关性。换句话说,离开光调制层的调制光分布在整个回放场上。
[0076] 在这些实施例中,全息重建在空间中的位置由傅立叶变换透镜的屈光(聚焦)度确定。在图1所示的实施例中,傅立叶变换透镜是物理透镜。即,傅立叶变换透镜是光学傅立叶变换透镜,并且傅立叶变换是光学进行的。任何透镜都可以充当傅立叶变换透镜,但透镜的性能将限制其执行的傅立叶变换的准确性。技术人员理解如何使用透镜来执行光学傅立叶变换。
[0077] 全息图计算
[0078] 在一些实施例中,计算机生成的全息图是傅立叶变换全息图,或者简单地是傅立叶全息图或基于傅立叶的全息图,其中通过利用正透镜的傅立叶变换特性在远场中重建图像。通过将回放平面中的所需光场傅立叶变换回透镜平面来计算傅立叶全息图。可以使用傅立叶变换来计算计算机生成的傅立叶全息图。
[0079] 可以使用算法比如Gerchberg‑Saxton算法来计算傅立叶变换全息图。此外,Gerchberg‑Saxton算法可用于根据空间域(比如照片)中的仅振幅信息来计算傅立叶域中的全息图(即傅立叶变换全息图)。从空间域中的仅振幅信息中有效地“获取”与物体有关的相位信息。在一些实施例中,使用Gerchberg‑Saxton算法或其变型从仅振幅信息计算计算机生成的全息图。
[0080] 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)的数据集(振幅和相位)。通过算法的至少一次迭代获得频谱域中的相应计算机生成的全息图。该算法是收敛的并且布置为产生表示输入图像的全息图。全息图可以是仅振幅全息图、仅相位全息图或全复数全息图。
[0081] 在一些实施例中,仅基于相位的全息图是使用基于Gerchberg‑Saxton算法的算法来计算的,比如在英国专利2498170或2501112中描述的,其全部内容通过引用结合于此。然而,本文公开的实施例仅通过示例的方式描述计算仅相位全息图。在这些实施例中,Gerchberg‑Saxton算法获取数据集的傅立叶变换的相位信息Ψ[u,v],其产生已知的振幅信息T[x,y],其中振幅信息T[x,y]代表目标图像(例如照片)。由于幅度和相位在傅立叶变换中是固有组合的,因此变换后的幅度和相位包含有关计算数据集的准确性的有用信息。因此,该算法可以与振幅和相位信息的反馈一起迭代地使用。然而,在这些实施例中,仅相位信息Ψ[u,v]用作全息图,以在图像平面上形成目标图像的全息表示。全息图是相位值的数据集(例如2D阵列)。
[0082] 在其他实施例中,基于Gerchberg‑Saxton算法的算法用于计算全复数全息图。全复数全息图是具有幅度分量和相位分量的全息图。全息图是包括复数数据值阵列的数据集(例如2D阵列),其中每个复数数据值包括幅度分量和相位分量。
[0083] 在一些实施例中,算法处理复数数据,并且傅立叶变换是复数傅立叶变换。可以将复数数据视为包括(i)实数分量和虚数分量,或(ii)幅度分量和相位分量。在一些实施例中,复数数据的两个分量在算法的各个阶段被不同地处理。
[0084] 图2A示出了根据一些实施例的用于计算仅相位全息图的算法的第一迭代。算法的输入是包括像素或数据值的2D阵列的输入图像210,其中每个像素或数据值是幅度或振幅值。即,输入图像210的每个像素或数据值不具有相位分量。因此,输入图像210可被视为仅幅度或仅振幅或仅强度分布。这样的输入图像210的示例是照片或包括帧时间序列的视频的一帧。算法的第一迭代从数据形成步骤202A开始,该步骤包括使用随机相位分布(或随机相位种子(seed))230将随机相位值分配给输入图像的每个像素,以形成起始复数数据集,其中数据集的每个数据元素包括幅度和相位。可以说,起始复数数据集代表了空间域中的输入图像。
[0085] 第一处理块250接收起始复数数据集并执行复数傅立叶变换以形成傅立叶变换的复数数据集。第二处理块253接收傅立叶变换的复数数据集并输出全息图280A。在一些实施例中,全息图280A是仅相位全息图。在这些实施例中,第二处理块253量化每个相位值并将每个振幅值设置为单位值(1),以便形成全息图280A。根据可以在空间光调制器的像素上表示的相位水平来量化每个相位值,该空间光调制器的像素将用于“显示”仅相位全息图。例如,如果空间光调制器的每个像素提供256个不同的相位水平,则将全息图的每个相位值量化为256个可能相位水平中的一个相位水平。全息图280A是代表输入图像的仅相位傅立叶全息图。在其他实施例中,全息图280A是全复数全息图,其包括从接收的傅立叶变换的复数数据集导出的复数数据值(每个包括振幅分量和相位分量)阵列。在一些实施例中,第二处理块253将每个复数数据值约束到多个可允许复数调制水平之一以形成全息图280A。约束步骤可以包括将每个复数数据值设置为复数平面中最接近的可允许复数调制水平。可以说全息图280A代表频谱或傅立叶或频域中的输入图像。在一些实施例中,算法在该点处停止。
[0086] 然而,在其他实施例中,算法继续,如图2A中的虚线箭头所示。换句话说,遵循图2A中的虚线箭头的步骤是可选的(即并非对所有实施例都是必不可少的)。
[0087] 第三处理块256从第二处理块253接收修改的复数数据集,并执行逆傅立叶变换以形成逆傅立叶变换的复数据集。可以说逆傅立叶变换的复数数据集代表空间域中的输入图像。
[0088] 第四处理块259接收逆傅立叶逆变换的复数数据集,并提取幅度值211A的分布和相位值213A的分布。可选地,第四处理块259评估幅度值211A的分布。具体地,第四处理块259可以将逆傅立叶变换的复数数据集的幅度值211A的分布与输入图像510进行比较,输入图像510本身当然是幅度值的分布。如果幅度值211A的分布与输入图像210之间的差足够小,则第四处理块259可以确定全息图280A是可接受的。即,如果幅度值211A的分布与输入图像210之间的差足够小,则第四处理块259可以确定全息图280A是输入图像210的足够准确表示。在一些实施例中,为了比较的目的,忽略了逆傅立叶变换的复数数据集的相位值
213A的分布。将理解的是,可以采用任何数量的不同方法来比较幅度值211A的分布和输入图像210,并且本公开不限于任何特定方法。在一些实施例中,计算均方差,并且如果均方差小于阈值,则认为全息图280A是可接受的。如果第四处理块259确定全息图280A是不可接受的,则可以执行算法的进一步迭代。然而,该比较步骤不是必需的,并且在其他实施例中,执行的算法的迭代次数是预定的或预设的或用户定义的。
[0089] 图2B表示算法的第二迭代以及算法的任何进一步迭代。通过算法的处理块来反馈先前迭代的相位值213A的分布。丢弃幅度值211A的分布,采用输入图像210的幅度值的分布。在第一迭代中,数据形成步骤202A通过将输入图像210的幅度值的分布与随机相位分布230相结合来形成第一复数数据集。然而,在第二和后续迭代中,数据形成步骤202B包括通过将(i)来自算法的先前迭代的相位值213A的分布与(ii)输入图像210的幅度值的分布相结合来形成复数数据集。
[0090] 然后,以参照图2A描述的相同方式处理由图2B的数据形成步骤202B形成的复数数据集,以形成第二迭代全息图280B。因此,此处不再重复对该过程的说明。当已经计算了第二迭代全息图280B时,算法可以停止。然而,可以执行该算法的任何数量的进一步迭代。将理解的是,仅在需要第四处理块259或需要进一步的迭代时才需要第三处理块256。输出全息图280B通常随着每次迭代而变得更好。然而,实际上,通常会达到一个无法观察到可测量的改进的点,或者执行进一步迭代的正面好处被额外的处理时间所带来的负面影响抵消。因此,该算法被描述为迭代和收敛的。
[0091] 图2C表示第二和后续迭代的替代实施例。通过算法的处理块来反馈先前迭代的相位值213A的分布。丢弃幅度值211A的分布,采用幅度值的替代分布。在该替代实施例中,幅度值的替代分布是从先前迭代的幅度值211的分布中得出的。具体地,处理块258从先前迭代的幅度值211的分布中减去输入图像210的幅度值的分布,通过增益因子α缩放该差,并从输入图像210中减去经缩放的差。通过以下等式在数学上来表达此,其中下标文本和数字表示迭代次数:
[0092] Rn+1[x,y]=F'{exp(iψn[u,v])}
[0093] ψn[u,v]=∠F{η·exp(i∠Rn[x,y])}
[0094] η=T[x,y]‑α(|Rn[x,y]|‑T[x,y])
[0095] 其中:
[0096] F'是逆傅立叶变换;
[0097] F是正向傅立叶变换;
[0098] R[x,y]是第三处理块256输出的复数数据集;
[0099] T[x,y]是输入或目标图像;
[0100] ∠是相位分量;
[0101] Ψ是仅相位全息图280B;
[0102] η是幅度值211B的新分布;以及
[0103] α是增益因子。
[0104] 增益因子α可以是固定的或可变的。在一些实施例中,基于输入目标图像数据的大小和速率来确定增益因子α。在一些实施例中,增益因子α取决于迭代次数。在一些实施例中,增益因子α仅是迭代次数的函数。
[0105] 在所有其他方面,图2C的实施例与图2A和图2B的实施例相同。可以说,仅相位全息图Ψ(u,v)包括频域或傅立叶域中的相位分布。
[0106] 在一些实施例中,使用空间光调制器执行傅立叶变换。具体地,全息图数据与提供光学焦度的第二数据组合。即,写入空间光调制的数据包括表示物体的全息图数据和表示透镜的透镜数据。当显示在空间光调制器上并用光照射时,透镜数据会模拟物理透镜,即,它以与相应物理光学元件相同的方式将光聚焦。因此,透镜数据提供了光学或聚焦焦度。在这些实施例中,可以省略图1的物理傅立叶变换透镜120。已知如何计算代表透镜的数据。代表透镜的数据可以称为软件透镜。例如,仅相位透镜可以通过计算由透镜的每个点由于其折射率和空间变化的光路长度而引起的相位延迟来形成。例如,在凸透镜的中心的光路长度大于在透镜的边缘的光路长度。仅振幅透镜可以由菲涅耳波带片形成。在计算机生成的全息术领域中,还已知如何将代表透镜的数据与全息图相结合,从而可以在不需要物理傅立叶透镜的情况下执行全息图的傅立叶变换。在一些实施例中,通过简单的加法比如简单的矢量加法将透镜化数据与全息图组合。在一些实施例中,物理透镜与软件透镜结合使用以执行傅立叶变换。可替代地,在其他实施例中,完全省略傅立叶变换透镜,使得全息重建在远场中发生。在进一步的实施例中,全息图可以以相同的方式与光栅数据组合,即布置成执行光栅函数(比如图像转向)的数据。同样,在本领域中已知如何计算这样的数据。例如,可以通过对由闪耀光栅的表面上的每个点引起的相位延迟进行建模来形成仅相位光栅。仅振幅光栅可以简单地与仅振幅全息图叠加以提供全息重建的角度转向。提供透镜化和/或转向的第二数据可被称为光处理函数或光处理图案,以与可被称为图像形成函数或图像形成图案的全息图数据区分开。
[0107] 在一些实施例中,傅立叶变换由物理傅立叶变换透镜和软件透镜联合执行。即,由软件透镜提供有助于傅立叶变换的一些光学焦度,而由一个或多个物理光学器件提供有助于傅立叶变换的其余光学焦度。
[0108] 在一些实施例中,提供了一种实时引擎,其布置为使用算法接收图像数据并实时计算全息图。在一些实施例中,图像数据是包括图像帧序列的视频。在其他实施例中,全息图被预先计算,存储在计算机存储器中并且根据需要被调出以显示在SLM上。即,在一些实施例中,提供了预定全息图的储存库。
[0109] 实施例仅通过示例的方式涉及傅立叶全息术和Gerchberg‑Saxton类型算法。本公开同样适用于可通过类似方法计算的菲涅耳全息术和菲涅耳全息图。本公开还适用于通过其他技术比如基于点云方法的技术计算的全息图。
[0110] 光调制
[0111] 可以使用空间光调制器来显示包括计算机生成的全息图的衍射图案。如果全息图是仅相位全息图,则需要调制相位的空间光调制器。如果全息图是全复数全息图,则可以使用调制相位和振幅的空间光调制器,或者可以使用调制相位的第一空间光调制器和调制振幅的第二空间光调制器。
[0112] 在一些实施例中,空间光调制器的光调制元件(即像素)是包含液晶的单元。即,在一些实施例中,空间光调制器是其中光学活性成分是液晶的液晶装置。每个液晶单元配置为选择性地提供多个光调制水平。即,每个液晶单元在任何时候配置为以从多个可能光调制水平中选择的一个光调制水平操作。每个液晶单元可动态地重新配置为多个光调制水平中的不同光调制水平。在一些实施例中,空间光调制器是反射型硅上液晶(LCOS)空间光调制器,但本公开不限于这种类型的空间光调制器。
[0113] LCOS装置在小孔径(例如几厘米宽)内提供密集的光调制元件或像素阵列。像素通常约为10微米或更小,这导致几度的衍射角,意味着光学系统可以紧凑。充分照射LCOS SLM的小孔径比其他液晶装置的大孔径要容易得多。LCOS装置通常是反射型的,这意味着驱动LCOS SLM像素的电路可以埋在反射表面下。结果导致更高的孔径比。换句话说,像素紧密堆积,这意味着像素之间几乎没有死角。这是有利的,因为它减少了回放场中的光学噪声。LCOS SLM使用硅底板,其优点是像素在光学上是平坦的。这对于相位调制装置特别重要。
[0114] 下面仅以举例的方式,参考图3来描述合适的LCOS SLM。使用单晶硅基板302形成LCOS器件。其具有方形的平面铝电极301的2D阵列,其由间隙301a间隔开,布置在基板的上表面上。可以通过掩埋在基板302中的电路302a来对每个电极301进行寻址。每个电极形成各自的平面镜。取向层303设置在电极阵列上,液晶层304设置在取向层303上。第二取向层305设置在例如由玻璃制成的平面透明层306上。例如由ITO制成的单个透明电极307设置在透明层306和第二取向层305之间。
[0115] 每个方形电极301与透明电极307的覆盖区域和中间液晶材料一起限定可控的相位调制元件308,通常称为像素。考虑到像素301a之间的空间,有效像素面积或填充因子是光学上活性的总像素的百分比。通过控制相对于透明电极307施加到每个电极301的电压,可以改变各个相位调制元件的液晶材料的特性,从而为入射在其上的光提供可变延迟。效果是向波前提供仅相位调制,即不发生振幅效果。
[0116] 所描述的LCOS SLM以反射方式输出空间调制的光。反射型LCOS SLM具有的优势在于,信号线、光栅线和晶体管位于镜面之下,这导致了高填充因子(通常大于90%)和高分辨率。使用反射型LCOS空间光调制器的另一优势在于,液晶层的厚度可以是使用透射型装置时所需厚度的一半。这大大提高了液晶的切换速度(投影运动视频图像的关键优势)。然而,可以使用透射型LCOS SLM同样地实现本公开的教导。
[0117] 提供像素位置值
[0118] 如上所述,全息图可以与一个或多个其他衍射图案(比如用作软件透镜或软件光栅的衍射图案)组合,以提供组合数据用于在空间光调制器(SLM)上显示,例如LCOS SLM。这种衍射图案也可以(或替代地)称为“光处理函数”或“光处理图案”。
[0119] 例如,可以将用作光栅的衍射图案与全息图组合以在回放平面上平移回放场,或者可以将用作透镜的衍射图案与全息图组合以将全息重建聚焦在近场的回放平面上。诸如光栅和透镜的衍射图案可以由各自的软件函数表示,其中空间光调制器的每个像素可以具有软件函数的对应值。本领域技术人员将熟悉软件函数值F(x)的使用,以表示空间光调制器的像素上的衍射图案。
[0120] 对于诸如软件透镜或光栅函数的衍射图案,SLM(或其他合适的像素化显示装置)上的每个值是软件值将被写入的相应像素的“x”坐标和“y”坐标的函数。如本领域技术人员所知,通常每当要向其写入软件函数时,处理块(比如处理器或逻辑装置或逻辑电路)就为SLM的像素计算软件函数值,而不是例如从内存中读取它们。这种计算将需要每个像素的位置坐标值。此外,经常需要动态地将像素位置值提供给合适的处理块,以用于计算对应的软件函数值。
[0121] 如本领域技术人员所熟悉,SLM中的像素位置可以由(x,y)坐标表示。如果将SLM沿x轴的大小(就像素数而言)简称为“x”,则像素位置值的“x”部分(或x分量)将对于每一行是顺序流,从0开始,一直到“x‑1”。根据x值流计算的软件函数值的x分量可以用F(x)表示。
[0122] 同样,如果将SLM沿y轴的大小(就像素数而言)简称为“y”,则像素位置值的“y”部分将对于每一列是顺序流,从0开始,一直到“y‑1”。根据y值流计算的软件函数值的y分量可以用F(y)表示。
[0123] 正如本领域技术人员还将意识到,SLM的大小也可以(或替代地)是指使用矩阵表示法,其中[m×n]SLM具有“m”行和“n”列。使用此表示法,每行中将有“n”个像素。因此,对于每行的像素位置值的“行”部分将是顺序流,从0开始,一直到“n‑1”。同样,使用此表示法,每列中将有“m”个像素。因此,对于每列的像素位置值的“列”部分将是顺序流,从0开始,一直到“m‑1”。
[0124] SLM通常具有操作速度或速率,以该速度或速率要求(或需要)要在其上显示的数据的值。换句话说,SLM通常会要求(SLM的)每个时钟周期的预定数量数据值。例如,SLM可以配置为显示全息图的动态序列(或动态多个),其中一些或全部可能必须与一个或多个软件函数结合提供。在一些情况下,全息图本身和/或应随其而来的软件函数是动态计算的,例如以便基本实时地显示与捕获的图像相对应的全息图。为了实现此目的,应该以合适的速率(或速度)动态地为SLM提供其所需的数据流。
[0125] 对于软件函数计算,应该为SLM或布置成执行用于SLM的软件函数计算的处理块提供动态的像素位置值数据流,以使计算能够以满足SLM需要的速率执行。像素位置值数据流可以被进给到数据流水线,其实际上是“等待”被进给到SLM(或合适处理块)并动态更新的数据队列,以保持的数据排队全新,供SLM或链中的下一个处理块使用。
[0126] 如果无法足够快地向SLM提供数据,则将迫使包含其的系统未充分使用SLM和/或减慢系统的整体运行速度。这是低效且通常不希望的。例如,SLM可以是实时全息系统的一部分,其布置为产生基于实时捕获的图像的全息重建。例如,这可以形成平视显示器(HUD)的一部分,例如作为车辆导航系统的一部分。在这样的布置中,对于SLM以特定速度工作可能是至关重要的。因此,必须将合适的数据流动态地进给到SLM,以使其能够以该速度工作。
[0127] 返回到数据流的创建;对于每行具有“x”个像素的SLM的每一行,像素位置值的“x”部分包括从零开始一直到(x–1)的完整整数的顺序流。常规地,需要连续值流的处理块比如逻辑装置或逻辑电路(例如包括FPGA或ASIC的集成电路)将从加法器单元(或“单位加法模块”)中获取它们。如本领域技术人员所知,加法器单元通常包括多个逻辑门,例如OR、XOR和AND逻辑门的组合,它们可被布置且控制为周期性地提供数字,对于每个操作周期(或“时钟周期”)将一(1)添加至其紧跟先前提供的数字,以提供顺序数字流。这通常提供可靠的连续数字流,其可以表示像素位置值的“x”部分(或者实际上是像素位置值的“y”部分)。然而,可以提供这些像素位置值的速率取决于单位加法器的操作循环速率(或“时钟速度”)。如本领域技术人员将理解,加法器单元通常将包括在诸如FPGA或ASIC的集成电路内,并且加法器单元的时钟速度将取决于集成电路的时钟速度。
[0128] 像素化装置比如SLM和将值提供给像素化显示装置的单位加法器可以具有共同时钟周期。然而,在许多实施例中,SLM或其他像素化显示装置将能够并且可能被要求需要以比单位加法器的典型循环速率(或时钟速度)更快的速率在其上显示的数据。因此,SLM可能需要典型单位加法器的每个操作周期(或每个“时钟周期”)多个像素值。这导致两个主要选项:应提高向SLM提供数据的速度,或者必须放慢SLM的操作(或SLM使用不足)。在许多实际场景中,选择慢速或未充分利用SLM将是不切实际、低效、昂贵且因此不期望的。因此,期望增加可以将数据提供给SLM的速率。
[0129] 本发明人已经确定了一种解决方案,其提高了可以将数据提供给像素化显示装置比如SLM(例如LCOS)的速率。
[0130] 本发明人确定的解决方案包括使用具有多个流水线(pipeline)(或“流水线模块”)的单个单位加法器,其中将单位加法器提供数字的速率有效地“按比例放大”(即乘以)等于与单位加法器一起工作的流水线数量的数字。结果,可以以更快的速率将数据提供给诸如SLM的像素化显示装置,或者提供给针对像素化显示装置进行数据计算的另一装置或电路。这是通过利用二进制数的特征并采用流水线模块的并行操作来实现的,如下所述。
[0131] 图4示出了逻辑电路100的示例,其可以用于增加可以将数据提供给像素化显示装置比如SLM(本身未示出)的速率。逻辑电路100可以包括在逻辑装置内,该逻辑装置可以包括一个或多个附加处理块,比如逻辑电路。逻辑电路100可以包括在诸如FPGA或ASIC的集成电路内。逻辑电路100可以将数据进给到SLM或其他像素化显示装置或者另一逻辑电路或逻辑装置或处理器。例如,它可以将数据进给到诸如FPGA的通用集成电路内的第二逻辑电路,其中第二逻辑电路布置为使用由图4的逻辑电路100提供给它的一系列像素位置值来计算软件函数值。
[0132] 逻辑电路100布置为提供包括二进制形式的批(或组)顺序数字的输出。在该示例中,逻辑电路布置为一次输出四个数字的批(或组)中的顺序数字,其中每个批中的第一个数字(即最低的数字)从相应的先前批中输出的第四个数字(即最高的数字)接着依次排列。
[0133] 逻辑电路100包括单位加法模块(或“单位加法器”)102和包括四个的多个(p)流水线模块104,在此分别标记并称为pipe0、pipe1、pipe2和pipe3。流水线模块104在图4中被示为并行实体。这不一定代表物理结构,而是代表它们基本上彼此并行地工作,如下面进一步详述。每个流水线模块104包括独立的电导管,其布置用于编号(和/或其他数据)处理。
[0134] 单位加法器102布置为由合适的控制器(未示出)控制,其中,在适当数量的时钟周期之后,控制器将布置为向单位加法器102提供“重置”信号。如本领域技术人员将意识到,单位加法器102应被重置的频率将取决于多种因素,例如其向之提供值的像素化显示装置的尺寸。
[0135] 单位加法器102布置为以多位二进制形式输出数字i,并将其传输到多个(p)(或“组”)流水线模块104,其中,多个(p)流水线模块中的每个流水线模块104布置为在与相应其他基本相同的时间从单位加法器102接收相同的数字i。在本文图4和5所示的特定示例中,多个(p)包括4个流水线模块,但也可以采用其他数量的流水线模块。单位加法器102布置为周期性地工作,其中它在每个周期(即每个“时钟周期”)重复其操作,将输出数i每个周期增加一(1),并将其传输到彼此并联的流水线模块104。
[0136] 在图4的逻辑电路100中,由单位加法器102输出的数字不直接用作像素位置值。代替地,为每个流水线104分配二进制形式的各个流水线标识值v(或“有效数字”),并且将每个流水线104布置为对于每个操作周期将其各个流水线标识值v附加到从单位加法器102接收的数字i。从流水线模块104输出所得的多位数ov,以用作SLM的像素位置值。
[0137] 为实现此,每个流水线的各个流水线标识值v表示其在多个(p)流水线内的唯一位置或“有效性”,并且与在第一操作周期中其为之输出像素位置数字的像素位置有关。这相对于图5可以看到并更好地理解。在这种情况下,pipe0是流水线模块,其为一行中第一像素输出像素位置值,即它输出“x=0”。因此,其各个流水线标识值v等于零(0)。因此,为它分配了表示零即“00”的两位二进制标识。进而,pipe1是流水线模块,其为一行中第二像素输出像素位置值,即它输出“x=1”。因此,其各个流水线标识值v等于一(1)。因此,为它分配了表示1即“01”的两位二进制标识。继续,pipe2是流水线模块,其为一行中第三像素输出像素位置值,即它输出“x=2”。因此,其各个流水线标识值v等于二(2)。因此,为它分配了表示二即“10”的两位二进制标识。最后,pipe3是流水线模块,其为一行中第四像素输出像素位置值,即它输出“x=3”。因此,其各个流水线标识值v等于三(3)。因此,为它分配了表示三即“11”的两位二进制标识。
[0138] 对于每个操作周期,将来自单位加法器102的多位数字i的并行输入实例与每个流水线模块104的各个有效性(或标识)数字连接在一起,其中,流水线有效性表示为所得多位二进制数的最低有效位。即,代表每个流水线模块各自标识或有效性的二进制数v从单位加法器102添加到输入数字i的末尾。然后,每个流水线模块104可以输出其唯一所得数字ov。优选地,这应该由所有流水线模块104基本同时完成。
[0139] 在图5所示的示例中,在流水线模块104处从单位加法器102接收的数字i包括7位。这仅是示例,不应视为限制。由单位加法器102输出的数字i中可以包括任何合适的位数。由单位加法器102输出的每个多位数字i中所需的位数可以由SLM的一行所需的像素位置值数量(或像素位置值的“x”分量的数量)确定。即,如果SLM包含具有‘m’行和‘n’列的像素阵列,则每行将有‘n’个像素。每行的像素位置值的“x”部分将从0开始,并从一个像素到相应的下一个像素依次(以整数)递增,直到值(n–1)。因此,将要求单位加法器102输出具有足够位数的二进制数,以在与流水线模块的各个流水线标识值v连接在一起时,导致二进制形式的由流水线模块输出的值ov的范围为从0到‘n–1’,以用作SLM的像素位置值。
[0140] 在图4和5所示的特定示例中,来自单位加法器102的多位数字为7位长,并且每个流水线模块104的各个流水线标识值v由2位二进制数表示。因此,所得数字为9位长。这仅是示例,不应视为限制。用于表示各个流水线标识值v的位数可以不同,例如,基于多个(p)流水线模块中的流水线模块104的数量。然而,如上所述,来自单位加法器102的输入数字中的位数应足够大,以确保在将流水线有效性数字附加到其上时,所得数字ov具有足够的位数来表示一行所需的所有像素位置值。
[0141] 例如,回到图5,SLM阵列中列“n”的数量可能是五百一十二(512)。因此,像素位置值的“x”部分必须从零(0)到五百一十一(511)。数字“511”以九个“1”表示二进制形式,即111111111。因此,在此示例中,在有4个流水线且具有2位有效数字的情况下,来自单位加法器102的输入数字必须具有7位,以适应创建一行所需的所有像素位置值(0到511)。
[0142] 如果存在不同数量的流水线104,单位加法器102向其提供其数字,则单位加法器102所提供的数字中的位数可以与图4和5所示的特定示例不同。类似地,如果SLM阵列大于或小于图4和5所示特定示例中的阵列,则这可能会改变由单位加法器102提供的数字中所需的位数。
[0143] 例如,如果有8个流水线模块,则这些流水线模块的各个流水线标识值v(或“有效数字”)的值范围从“v=0”到“v=7”,因此它们的二进制表示每个将需要具有3位,因为7=二进制形式的111。在这样的示例中,二进制流水线有效值如下:000、001、010、011、100、101、110和111。因此,如果这8个流水线为具有512列的SLM提供像素位置值,并且因此,在
511的每一行中具有最高“x”位置值,则允许从单位加法器102输入的数字具有6位,因为当流水线的有效数字v被附加至其时所得数字ov将有9位。
[0144] 作为另一示例,图6包括一表格,其示出了在要为较小的SLM阵列提供像素位置值流时的输入(来自单位加法器)和来自逻辑电路100的4个流水线模块104的输出。该示例中的过程包括单位加法器的8个操作周期。如本领域技术人员理解,为SLM或处理块提供必要数量的像素位置值所需的操作周期数将取决于SLM阵列的大小和流水线模块的数量—更多的流水线模块每个操作周期将相应地产生更多的像素位置值。在此示例中,SLM每行具有32个像素。也就是说,每行像素位置值的最高“x”分量为31,即二进制形式的“11111”。这意味着从流水线模块104输出的数字必须是5位长。在该示例中,每个流水线模块104具有2位各个流水线标识值v(或“有效数字”),因此由单位加法器提供的数字必须为3位长。
[0145] 无论其中包含多少位,从流水线模块104输出的所得多位数字都包括数字序列。而且,每个输出数字序列都直接紧随先前的输出序列之后。这可以从图6中看到和理解。例如,对于第一操作周期,图6中流水线模块的输出数字序列包括零、一、二和三的二进制表示,这是SLM行中的前四个像素的“x”分量的所需像素位置值。对于第二周期,其中单位加法器提供的数字增加1,当流水线模块的有效值已附加到单位加法器的数字后,所得数字恰好继续第一组所完成的序列。即,在第二操作周期中从流水线模块输出的第二批数字中最低的二进制数比在第一操作周期从流水线模块输出的先前在第一批数字中输出的最高数字高(1)。因此,在该示例中如下,第二批输出数字可以用作该行中第五至八个像素的像素位置值。从图6可以看出,在该示例中,每批数字直接紧跟随相应的先前一批数字,一直到达到最大像素位置值,在最后的操作周期中具有最高的数字。
[0146] 本发明人已经认识到,由于二进制数的特性,以上关于图4至6描述的方法可用于任何尺寸的阵列,对于其将提供像素位置值或顺序数字流以实现任何其他目的。此外,可以提供任何适当数量的流水线模块,例如可以使用4、8或16个流水线模块。因此,可以将多个(例如4、8或16个)像素位置值传送到SLM或彼此同时传送到另一用于SLM计算的处理块(例如计算软件函数值)。因此,对于逻辑电路100的每个操作周期,逻辑电路100可以输出多个像素位置值,从而满足SLM对高速操作的需要,同时仍使用单个常规的单位加法器。如本领域技术人员将理解,与具有多个单位加法器相比,优选地具有多个流水线模块和仅一个单位加法器,因为这减少了逻辑电路100内的逻辑门的数量。因此,逻辑电路在结构和计算上都更加简化和高效。
[0147] 逻辑电路100可以使得能够快速产生由SLM或另一处理块使用的顺序值流,但逻辑电路100内的任何实体都不必非现实地快速工作,逻辑电路100中的任何实体都没有负担过多计算任务。即,对于其每个操作周期,单位加法器102仅需要输出一个数字,并且不必以加速的速度工作。此外,在流水线模块104的系统内,每个流水线模块104仅需要通过在每个操作周期将其各个流水线标识值v(或“有效数”)附加到来自单位加法器102的输入数字来计算一个值。然而,由于多个流水线模块可以彼此并行地工作,因此逻辑电路100整体上能够针对单位加法器102的每个操作周期产生多个输出数字,以用作SLM的像素位置值流。
[0148] 本文描述的逻辑电路提供了增强的效率,并且使得能够使用少量的实体来高速产生顺序数字数据流。例如,逻辑电路中仅需要一个单位加法器。这在许多实施例中是有利的,其中物理和计算效率以及节省成本很重要。例如,在具有多个波长通道(例如红色、绿色和蓝色通道)的全息装置中,每个通道具有对应的SLM,一个SLM所需的每个电路通常必须复制给相应的另外两个。因此,在这样的布置中,单个SLM的效率或成本节省的任何改进都会对整个系统的效率和成本节省产生三倍的影响。此外,利用本文描述的逻辑电路,还可以挽救加法中使用的位数。
[0149] 本文所描述的逻辑电路可以用于向SLM或任何合适的处理模块(例如处理器、另一逻辑电路或逻辑装置)提供顺序数字流。它可以将像素位置值流提供给处理块,处理块布置为动态地为SLM的相应像素处理软件函数值。例如,SLM可被包括在诸如实时全息投影仪之类的全息系统内。
[0150] 可以重复上述过程以为SLM的多行提供像素位置值。
[0151] 逻辑电路为其提供像素位置值的SLM可以布置为执行光栅扫描(raster scanning),这是本领域技术人员将熟悉的扫描技术。因此,在这种布置中,逻辑电路可以布置为以从左到右、顶行到底行的方式提供像素的像素位置值。然而,也可以考虑其他布置。
[0152] 尽管以上给出的示例集中于像素位置值的“x”个分量的创建,但对于像素化显示装置比如SLM的一列或多列,所描述的过程同样可以应用于像素位置值的“y”分量的创建。例如,SLM可能逐列而不是逐行地需要像素值。
[0153] 在某些布置中,将软件函数值提供给像素化显示装置比如SLM的集成电路将包括“x”逻辑电路和“y”逻辑电路,可以将它们加在一起。本领域技术人员将熟悉用于将逻辑电路加在一起的技术。
[0154] 对于计算“x”个像素位置值的布置,每个特定行的每个像素位置的y值都相同。在这种示例中的y值仅在每行的末尾递增。因此,在这种布置中,不必为了满足SLM的需要而在每个时钟周期内生成多个y值。
[0155] 可以提供包括逻辑电路的逻辑装置(例如现场可编程门阵列“FPGA”)。根据本公开的逻辑电路特别适合于在FPGA中实现。根据本公开的逻辑电路还可以在另一类型的可编程逻辑器件“PLD”中或者在专用集成电路“ASIC”或类似的定制布局逻辑装置中实现。
[0156] 还可以提供全息投影仪,其包括逻辑装置(例如FPGA)、像素化显示装置和光源。像素化显示装置例如空间光调制器(比如硅上液晶的空间光调制器)布置为显示包括软件函数的光调制图案,该软件函数已经使用由本文所述的逻辑电路生成的像素位置值来计算。光源布置为以具有波长l的光照射软件函数,其可以与一个或多个全息图结合提供。
[0157] 逻辑装置(例如FPGA)可以进一步布置为将计算出的软件函数值添加到全息像素值流的全息像素值以形成显示值数据流。根据由现场可编程门阵列提供给像素化显示装置的显示值流来形成光调制图案。
[0158] 可以提供包括全息投影仪的平视显示器。
[0159] 如上所述,本文中还提供一种使像素位置值成流的方法,以计算对应的软件函数值,以在像素化显示装置的[m×n]个像素上显示,如以上详细描述。
[0160] 附加特征
[0161] 实施例仅通过示例的方式涉及电激活的LCOS空间光调制器。本公开的教导可以等同地在能够显示根据本公开的计算机生成的全息图的任何空间光调制器上实现,例如任何电激活的SLM、光学激活的SLM、数字微镜设备或微机电设备。
[0162] 在一些实施例中,光源是诸如激光二极管的激光器。在一些实施例中,检测器是光电检测器,比如光电二极管。在一些实施例中,光接收表面是漫射表面或屏幕,例如漫射器。本公开的全息投影系统可以用于提供改进的平视显示器(HUD)。在一些实施例中,提供了一种车辆,其包括安装在车辆中以提供HUD的全息投影系统。车辆可以是机动车辆,比如汽车、卡车、厢式货车、运货卡车、摩托车、火车、飞机、船或轮船。
[0163] 全息重建的质量可能受到所谓的零级问题的影响,这是使用像素化空间光调制器的衍射性质的结果。这样的零级光可被认为是“噪声”,并且包括例如镜面反射光以及来自SLM的其他不需要的光。
[0164] 在傅立叶全息术的示例中,这种“噪声”集中在傅立叶透镜的焦点上,从而导致全息重建的中心处的亮光斑。零级光可被简单地遮挡掉,但是这意味着用暗光斑代替亮光斑。一些实施例包括角度选择性滤光器,以仅去除零级的准直光线。实施例还包括在欧洲专利
2030072中描述的管理零级的方法,该专利通过引用整体结合于此。
[0165] 在一些实施例中,全息图的尺寸(每个方向上的像素数)等于空间光调制器的尺寸,以使得全息图填充空间光调制器。即,全息图使用空间光调制器的所有像素。在其他实施例中,全息图小于空间光调制器。更具体地,全息图像素的数量小于空间光调制器上可用的光调制像素的数量。在这些其他实施例的一些中,在未使用的像素中重复全息图的一部分(即全息图的像素的连续子集)。该技术可被称为“平铺”,其中空间光调制器的表面区域被划分为多个“平铺”,每个代表全息图的至少一个子集。因此,每个平铺的尺寸小于空间光调制器的尺寸。在一些实施例中,实施“平铺”技术以提高图像质量。具体地,一些实施例实施平铺技术以最小化图像像素的尺寸,同时最大化进入全息重建的信号内容的量。在一些实施例中,写入空间光调制器的全息图案包括至少一个完整平铺(即完整的全息图)和平铺的至少一小部分(即全息图的像素的连续子集)。
[0166] 在实施例中,仅利用主回放场,并且系统包括物理块,比如挡板,其布置为限制更高阶回放场通过系统的传播。
[0167] 在实施例中,全息重建是彩色的。在一些实施例中,被称为空间分离颜色的方法“SSC”用于提供彩色全息重建。在其他实施例中,使用被称为帧顺序颜色“FSC”的方法。
[0168] SSC方法对三个单色全息图使用三个空间分隔的光调制像素阵列。SSC方法的优点是图像可以非常明亮,因为可以同时形成所有三个全息重建。然而,如果由于空间限制,在共同SLM上提供了三个空间分隔的光调制像素阵列,则每个单色图像的质量将不是最佳的,因为只有可用光调制像素的子集用于每种颜色。因此,提供了相对低分辨率的彩色图像。
[0169] FSC方法可以使用共同空间光调制器的所有像素来依次显示三个单色全息图。单色重建的循环(例如红色、绿色、蓝色、红色、绿色、蓝色等)足够快,以使人类观看者从三个单色图像的整合中感知多色图像。FSC的优点是,每种颜色都可以使用整个SLM。这意味着产生的三个彩色图像的质量最佳,因为SLM的所有像素都用于每个彩色图像。然而,FSC方法的缺点是合成彩色图像的亮度比SSC方法低约3倍,因为每个单色照明事件只能发生帧时间的三分之一。可以通过过度驱动激光器或使用更强大的激光器来解决此缺陷,但这需要更多的功率,从而导致更高的成本和系统尺寸的增加。
[0170] 示例描述了用可见光照射SLM,但本领域技术人员将理解,例如,如本文所公开,光源和SLM可以等同地用于引导红外或紫外光。例如,技术人员将意识到用于将红外和紫外光转换为可见光以向用户提供信息的技术。例如,本公开扩展到为此目的使用磷光体和/或量子点技术。
[0171] 一些实施例仅通过示例的方式描述了2D全息重建。在其他实施例中,全息重建是3D全息重建。即,在一些实施例中,每个计算机生成的全息图形成3D全息重建。
[0172] 本文描述的方法和过程可以体现在计算机可读介质上。术语“计算机可读介质”包括布置为临时或永久地存储数据的介质,比如随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存和高速缓冲存储器。术语“计算机可读介质”也应被认为包括能够存储用于由机器执行的指令的任何介质或多种介质的组合,使得当指令被一个或多个处理器执行时使该机器整体地或部分地执行本文所述的任何一种或多种方法。
[0173] 术语“计算机可读介质”还涵盖基于云的存储系统。术语“计算机可读介质”包括但不限于以固态存储芯片、光盘、磁盘或其任何合适的组合的示例形式的一个或多个有形和非暂时性数据存储库(例如数据卷)。在一些示例实施例中,用于执行的指令可以由载体介质传递。这样的载体介质的示例包括瞬态介质(例如传递指令的传播信号)。
[0174] 对于本领域技术人员将显而易见的是,在不脱离所附权利要求的范围的情况下,可以进行各种修改和变型。本公开涵盖所附权利要求及其等同物的范围内的所有修改和变型。