用于对光场图像进行基于块的压缩的方法和设备转让专利

申请号 : CN200910138539.2

文献号 : CN101588437B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S·D·巴巴坎T·G·乔吉维

申请人 : 奥多比公司

摘要 :

用于对光场图像进行基于块的压缩的方法和设备。可以由预处理模块将光场图像预处理成与基于块的压缩技术的分块机制兼容的格式,其中压缩技术例如是JPEG。压缩技术随后用于对预处理过的光场图像进行压缩。光场预处理模块将捕获的光场图像中的角度数据再整形为与压缩技术的分块机制兼容的形状,以便不在最终的压缩图像中引入基于块的压缩的分块赝像。实施方式可以产生压缩的2D图像,对于该压缩的2D图像,不需要专门的光场图像查看器来预览整个光场图像。全光场信息被包含在一个压缩的2D图像中。

权利要求 :

1.一种用于对光场图像进行基于块的压缩的方法,包括:获取光场图像,其中所述光场图像包括多个微图像,其中所述微图像的维度与基于块的压缩技术所使用的分块维度不同;

从所述光场图像中的每个微图像生成预处理过的光场图像中的块,其中每个块包括来自于相应微图像的光场信息,并且每个块的维度与所述基于块的压缩技术使用的分块维度相同;

根据所述基于块的压缩技术对所述预处理过的光场图像进行压缩,以生成经过压缩的光场图像;以及将所述经过压缩的光场图像存储到存储介质中。

2.根据权利要求1所述的方法,其中从所述光场图像中的每个微图像生成预处理过的光场图像中的块包括,针对每个圆形微图像:裁剪所述微图像以从所述微图像中提取像素区域,其中所述区域的维度小于所述块的维度;以及对所述裁剪的像素区域进行插值,以从所述裁剪的区域中的像素的像素值产生用于相应块中的像素的像素值。

3.根据权利要求2所述的方法,其中对所述裁剪的像素区域进行插值包括:求解拉普拉斯方程,以从所述裁剪的区域中的像素的像素值生成相应块中的像素的像素值。

4.根据权利要求1所述的方法,其中所述块的维度为8乘8个像素。

5.根据权利要求1所述的方法,进一步包括:

在从所述光场图像中的每个微图像生成预处理过的光场图像中的块之前,根据校准图像对所述光场图像进行正则化。

6.根据权利要求1所述的方法,其中所述光场图像由全光照相机捕获,并且每个微图像近似为圆形。

7.根据权利要求6所述的方法,进一步包括,在从所述光场图像中的每个微图像生成预处理过的光场图像中的块之前:定位所述光场图像中的每个微图像;以及

从所述光场图像中提取所述定位的微图像。

8.根据权利要求1所述的方法,其中所述基于块的压缩技术根据JPEG(联合图像专家组)压缩标准,对所述预处理过的光场图像进行压缩。

9.根据权利要求1所述的方法,其中所述经过压缩的光场图像可以使用能够访问利用所述基于块的压缩技术压缩的文件的任何应用来查看。

10.一种用于对光场图像进行基于块的压缩的设备,包括:用于获取光场图像的装置,其中所述光场图像包括多个微图像,其中所述微图像的维度与基于块的压缩技术所使用的分块维度不同;

用于从所述光场图像中的每个微图像生成预处理过的光场图像中的块的装置,其中每个块包括来自于相应微图像的光场信息,并且每个块的维度与所述基于块的压缩技术使用的分块维度相同;

用于根据所述基于块的压缩技术对所述预处理过的光场图像进行压缩,以生成经过压缩的光场图像的装置;以及用于将所述经过压缩的光场图像存储到存储介质中的装置。

11.根据权利要求10所述的设备,其中所述生成包括,针对每个圆形微图像:裁剪所述微图像以从所述微图像提取像素区域,其中所述区域的维度小于所述块的维度;以及对所述裁剪的像素区域进行插值,以从所述裁剪的区域中的像素的像素值产生用于相应块中的像素的像素值。

12.根据权利要求11所述的设备,其中所述插值包括:求解拉普拉斯方程,以从所述裁剪的区域中的像素的像素值生成相应块中的像素的像素值。

13.根据权利要求10所述的设备,其中所述块的维度为8乘8个像素。

14.根据权利要求10所述的设备,进一步包括:用于在从所述光场图像中的每个微图像生成预处理过的光场图像中的块之前,根据针对所述光场图像的校准图像对所述光场图像进行正则化的装置。

15.根据权利要求10所述的设备,其中所述光场图像由全光照相机捕获,并且每个微图像近似为圆形。

16.根据权利要求15所述的设备,进一步包括这样的装置,其用于在从所述光场图像中的每个微图像生成预处理过的光场图像中的块之前:定位所述光场图像中的每个微图像;以及

从所述光场图像提取所述定位的微图像。

17.根据权利要求10所述的设备,其中所述基于块的压缩技术根据JPEG(联合图像专家组)压缩标准,对所述预处理过的光场图像进行压缩。

说明书 :

用于对光场图像进行基于块的压缩的方法和设备

技术领域

[0001] 本发明涉及对光场图像的处理,更具体,涉及用于对光场图像进行基于块的压缩的方法和设备。

背景技术

[0002] 传统照相机不能捕获大量的光学信息。具体地,传统照相机不能捕获关于光圈(aperture)上位置的信息,其中光圈是不同光线进入照相机的地方。在操作期间,传统数码照相机捕获代表打在照相机中的光敏元件上的每个点的总光量的二维(2D)图像。然而,此2D图像并不包含关于打在光敏元件上的光的方向分布的任何信息。像素处的方向信息对应于光圈处的位置信息。
[0003] 相反,光场照相机对四维(4D)光学相位空间或光场进行采样,并且在这样做时,捕获关于光线的方向分布的信息。光场照相机捕获的这种信息可以称为光场、全光函数或者辐射率。在计算摄影中,光场是3D中所有光线的4D记录。辐射率描述空间信息和角度信息两者,并且辐射率被定义为每立体角度(以弧度为单位)、每单位面积的能量的密度。光场照相机捕获辐射率;因此,最初失焦获取的光场图像可以重新聚焦,噪声可以被降低,视角可以改变,并且可以获得其他光场效果。
[0004] 可以利用传统照相机捕获光场。在一个传统方法中,利用传统照相机从不同位置捕获场景的MxN个图像。例如,如果从64个不同位置捕获8x8图像,则产生64个图像。从每个图像中的每个位置(i,j)取得像素,并将其置于块中,以生成64个块。
[0005] 图1A示出了示例性的现有技术的光场照相机,或者照相机阵列,该阵列使用了两个或更多物镜110的阵列。每个物镜聚焦于光敏元件108的特定区域,或者备选地聚焦于单独的光敏元件108上。此光场照相机100可以视为两个或更多传统照相机的组合,其中每一个照相机同时将对象的图像记录在光敏元件108的特定区域上,或者备选地记录在特定光敏元件108上。捕获的图像随后可以被组合以形成一个图像。
[0006] 图1B示出了示例性的现有技术全光照相机,其是另一种类型的光场照相机,并且使用单个物镜和显微透镜或小透镜阵列106,该阵列例如包括约100,000个小透镜。小透镜阵列106通常与光敏元件108(例如,电荷耦合器件(CCD))相距较短距离(约0.5mm)。全光照相机102捕获的原始图像由主照相机透镜108的小图像(通常是圆形的)的阵列组成。这些小图像可以称为微图像。小透镜阵列106支持全光照相机102以捕获光场,即,不仅记录图像强度,而且记录每个点处不同方向上的强度分布。每个小透镜将从主透镜104进入的光束分裂成来自于主透镜108的光圈上不同“针孔”位置的射线。这些射线的每一个被记录为光敏元件108上的像素,并且每个小透镜下的像素共同形成n像素图像。每个小透镜下的此n像素区可以称为宏像素,并且照相机102在每个宏像素处生成微图像。具有例如100,000个小透镜的照相机102捕获的全光照片将包含100,000个宏像素,并且因而生成对象的100,000个微图像。例如,参见图2。通过适当地从每个宏像素选择像素,可以从宏像素处捕获的对象的微图像创建对象的传统图片。
[0007] 从光场照相机(包括全光照相机)捕获的光场通常保存为2D图像,该2D图像包含“片段(tile)”或“微图像”的阵列。光场图像的压缩对于计算摄影是重要的问题。归因于光场的4D性质,以及光场的2D片等同于传统图片这样的事实,未压缩的文件趋向于较大,并且可能占据数千兆字节的空间。同时,数据中存在冗余:从一个表面点开始的所有射线具有近似相同的辐射率(对于朗伯(Lambertian)表面,是完全相同)。这样,存在对光场图像进行压缩的动机。
[0008] 传统上,已经使用现有的有损耗的和无损耗的图像/视频压缩技术对光场图像进行压缩。某些传统方式将光场图像中的2D片视为单独的图像,并对每一个单独进行压缩。在其他方式中,4D光场图像包含在一个2D图像中,其由传统方法简单压缩为一个图像。这些方式并未利用光场图像特有的信息和冗余,而是将它们视为一般的图像。
[0009] 已经提出了若干方式来专门压缩光场图像。某些传统方法将4D光场图像中的每个2D片视为视频中的帧。换言之,4D光场图像中的2D角度图像被用于创建视频,并且此视频使用视频压缩方法进行压缩。然而,利用光场专用压缩技术压缩的光场图像通常需要特定的查看器来查看光场图像。
[0010] JPEG是常见的传统图像压缩标准。JPEG代表联合图像专家组,即创建JPEG标准的委员会的名称。JPEG是基于块的压缩技术的示例。JPEG将图像分成8x 8的像素块,或者更一般地,基于块的压缩技术将图像划分成mxn的像素块,并使用某个变换函数来压缩这些块。公知的是,由于将图像划分成块,JPEG和其他基于块的压缩技术存在生成“分块赝像”的问题,其中压缩后的图像看起来是由块组成的,或者具有其他引入的垂直赝像/水平赝像(例如,垂直线或水平线、不连贯或者条纹)。
[0011] JPEG标准和其他基于块的压缩技术可以用来直接压缩光场图像,而无须考虑光场数据的细节。然而,归因于光场图像的准周期特性和压缩的块状性质,结果趋向于较差,包括明显的分块赝像。这种分块赝像可以严重地损坏光场图像中的角度信息,并且因此可能限制使用这些图像可以达到的水平和垂直视差。
[0012] 图2示出了利用全光照相机(例如,图1B示出的全光照相机102)捕获的光场图像200。来自于图像200的展开的区域202示出了光场图像200由很多单独的宏像素组成,每个宏像素包括圆形微图像。区域202示出了没有压缩的、捕获到的光场数据。区域204示出了在将JPEG压缩应用至图像200之后的、来自于图像200的同一区域的光场数据。JPEG压缩引入的分块赝像例如在展开的子区域206中示出的16个宏像素的微图像中清晰可见。
图像208示出了未压缩的同一子区域,以用于比较。
[0013] 然而,通常,利用传统光场专用方法压缩的光场不能利用传统的和较通用的图像查看器来打开和查看。不具有光场查看应用的用户可能希望能够利用传统的图像查看器(诸如可以查看JPEG压缩的图像的图像查看器)来预览光场的简单2D表示。

发明内容

[0014] 描述了用于对光场图像进行基于块的压缩的方法和设备的实施方式。实施方式可以将光场图像预先处理为与基于块的压缩技术(例如,JPEG压缩标准)的分块机制兼容的格式,其中该基于块的压缩技术用于执行对光场图像的实际压缩。用于对光场图像进行基于块的压缩的方法的实施方式可以实现为工具、模块、库函数、插件、单机应用等,或者可以在这些中实现。为了简化,实施方式的实现在此可以称为光场预处理模块。
[0015] 光场预处理模块的实施方式可以将捕获的光场图像转换成适当的格式,使得不在最终的压缩图像中引入基于块的压缩(例如,JPEG)的分块赝像。光场预处理模块将捕获的光场图像中的角度数据再整形为与正在使用的基于块的压缩技术的分块机制兼容的形状(例如,对于JPEG而言,大小为8x8、16x16等的正方形),使得得到的光场图像适合于压缩技术的分块机制。例如,如果使用了JPEG,则JPEG块边界变成了光场中角度图像的自然边界。
[0016] 实施方式可以产生压缩的2D图像,对于该2D图像,不需要专门的光场图像查看器来预览整个光场图像。全部的光场信息被包含在一个2D图像中,其可以通过传统的基于块的压缩技术(例如,JPEG)以快速且鲁棒的方式进行压缩,并且最终的压缩图像并不包含在不使用此处描述的预处理的情况下对光场进行压缩可能产生的分块赝像。换言之,实施方式提供了在最终的压缩光场中无分块赝像的高性能压缩。
[0017] 在实施方式中,由光场预处理模块获得捕获的光场图像。捕获的光场图像由光场预处理模块进行预处理,以产生块大小和形状都与将要用来压缩光场图像的基于块的压缩技术兼容的预处理光场图像。在一个实施方式中,如果针对光场照相机的校准图像可用,则照相机捕获的光场图像可以使用校准图像进行正则化。预处理过的光场图像随后由压缩引擎进行压缩,以生成经过压缩的光场图像,该压缩引擎实现基于块的压缩技术。经过压缩的光场图像例如可以存储到存储介质中,存储介质诸如系统存储器、盘驱动器、DVD、CD等。经过压缩的光场图像可以使用被配置用以打开并查看通过基于块的压缩技术生成的图像的任何应用,进行查看或以其他方式进行操纵。例如,如果使用了JPEG压缩,则可以使用能够打开并显示JPEG文件的任何应用,查看经过压缩的光场图像。

附图说明

[0018] 图1A示出了示例性的现有技术的光场照相机,或者照相机阵列,其使用两个或更多物镜的阵列。
[0019] 图1B示出了示例性的现有技术的全光照相机,其使用单个物镜和显微透镜阵列。
[0020] 图2示出了利用全光照相机(例如,图1B示出的全光照相机)捕获的光场图像,并且示出了当利用基于块的压缩技术压缩原始图像时可能产生的分块赝像。
[0021] 图3A和图3B示出了根据一个实施方式的、在使用基于块的压缩技术进行压缩之前,对示例性光场图像进行的预处理。
[0022] 图4示出了利用全光照相机(例如,图1B示出的全光照相机)捕获的示例性光场图像。
[0023] 图5是根据一个实施方式的、示出了光场预处理和压缩方法中的数据流的高层框图。
[0024] 图6是根据一个实施方式的、用于在对光场图像进行基于块的压缩之前,对来自光场图像的宏像素或块进行预处理的方法流程图。
[0025] 图7示出了针对全光光场照相机的示例性校准图像。
[0026] 图8A示出了根据一个实施方式的、使用拉普拉斯(Laplacian)插值的示例性插值方法。
[0027] 图8B示出了可以在实施方式中使用的示例性卷积内核。
[0028] 图9A示出了根据一个实施方式的、对利用光场成像系统(诸如,图1B的全光照相机)捕获的光场图像的预处理,在该光场成像系统中,在主透镜的后面使用显微透镜。
[0029] 图9B示出了根据一个实施方式的、对利用光场成像系统(诸如,图1A的光场照相机)捕获的光场图像的预处理。
[0030] 图10示出了可以在实施方式中使用的示例性计算机系统。
[0031] 尽管通过示例针对若干实施方式和示例性附图在此描述了本发明,但是本领域技术人员将会理解,本发明并不限于描述的实施方式或附图。应当理解的是,附图和具体实施方式并不意在将本发明限制于所公开的特定形式,相反,意在覆盖落入本发明精神和范围的所有改进、等同物和替代物。在此使用的标题仅出于组织目的,而不意在用于限制本描述的范围。如在本申请全文中使用的,词汇“可以”是在许可意义上(即,意思是有可能)使用的,而不是强制的意义上(即,意思是必须)使用的。类似地,词语“包括”、“包含”和“含有”的意思是包括,但不限于。

具体实施方式

[0032] 描述了对光场图像进行基于块的压缩的方法和设备的各种实施方式。实施方式可以将光场图像预处理为与基于块的压缩技术(例如,JPEG压缩标准)的分块机制兼容的格式,其中该基于块的压缩技术用于对光场图像执行实际压缩。用于对光场图像进行基于块的压缩的方法的实施方式可以实现为工具、模块、库函数、插件、单机应用等,或者可以在这些中实现。为了简化,实施方式的实现在此可以称为光场预处理模块。
[0033] 光场预处理模块的实施方式可以将捕获的光场图像转换成适当的格式,使得不在最终的压缩图像中引入基于块的压缩(例如,JPEG)的分块赝像。光场预处理模块将光场中的角度数据再整形为与正在使用的基于块的压缩技术的分块机制兼容的形状(例如,对于JPEG而言,大小为8x8、16x16等的正方形),使得得到的光场图像适合于压缩技术的分块机制。例如,如果使用JPEG,则JPEG块边界变成了光场中角度图像的自然边界。
[0034] 实施方式可以产生压缩的2D图像,对于该2D图像,不需要专门的光场图像查看器来预览整个光场图像。全光场信息被包含在一个2D图像中,其通过传统的基于块的压缩技术(例如,JPEG)以快速且鲁棒的方式进行压缩,并且最终的压缩图像并不包含在不使用此处描述的预处理的情况下对光场进行压缩可能产生的分块赝像。换言之,实施方式提供了在最终的压缩光场中无分块赝像的高性能压缩。
[0035] 为了简化,在此通常将实施方式描述为:将JPEG压缩标准用作对光场预处理模块的实施方式生成的预处理过的光场图像进行压缩的基于块的压缩技术。使用JPEG压缩标准的实施方式生成的经过压缩的光场图像与传统JPEG标准向后兼容。使用JPEG压缩的实施方式可以实现对光场图像的良好质量压缩,同时使得将经过压缩的光场可以与简单2D图片一样,利用能打开和显示JPEG(.jpg)文件的任何应用进行查看。当使用JPEG压缩时,可以将经过压缩的光场输出为2D JPEG(.jpg)文件,并且因而可以利用能打开和显示.jpg文件的任何应用来查看。然而,应当理解的是,实施方式并不限于将JPEG压缩标准作为基于块的压缩技术,而是可以适用任何基于块的压缩技术。
[0036] 图3A和图3B示出了根据一个实施方式的、在使用基于块的压缩技术进行压缩之前,对示例性光场图像进行的预处理。图3A示出了由光场照相机(诸如图1的照相机100)捕获的示例性4D光场300。需要注意的是,4D光场是2D图像(来自于不同投影中心的视图)的2D阵列。这些2D图像可以称为微图像。需要注意的是,每个微图像中的信息是矩形的。在此示例中,阵列是6x6的,所以在光场300中存在36个单独的图像,或微图像。
[0037] 令给定2D微图像(例如,微图像302)中的像素位置为(i,j),其中i=1...N以及j=1...M,其中N是2D微图像中像素的行号而M是像素的列号。从36个微图像的每一个微图像取得像素(i,j),并将其放入块Bij(参见块304)中。如果在光场300中存在m个水平图像和n个垂直图像,则此块初始为nxm个像素。在此示例中,该块将是6x6个像素。另外,存在NxM个块304。这NxM个块304被置于一个图像中,使得光场的所有角度和空间信息都被包含在这一个图像中(参见图3B的图像310)。如果使用维度为nxm的初始块304,则得到的图像的大小将是(Nxn)x(Mxm)个像素。
[0038] 然而,应该注意,块大小nxm不一定直接与基于块的压缩技术(诸如,JPEG)的分块机制兼容。在此示例中,6x6个像素的块大小并不直接与JPEG的典型压缩分块大小(8x8个像素)兼容。因此,在此描述的光场预处理模块的实施方式可以对块304进行预处理(如图3B的306所指示),以便产生与基于块的压缩技术的分块机制兼容的维度为n′xm′的块308。在此示例中,块304被调整大小为8x8个像素,以便与JPEG的分块机制兼容。调整过大小的NxM块308随后可以置于图像310中。此图像310的大小为(Nxn′)x(Mxm′)个像素。随后,可以使用基于块的压缩技术对图像310进行压缩,而不会产生在图像310中使用初始不兼容维度的块304的情况下可能产生的分块赝像。
[0039] 在此示例中,块304的块大小nxm是6x 6,这比基于块的压缩技术的块大小(8x8)要小。在这种情况下,初始块304或区域中的像素信息可以被插值,以填满新的更大的块308中的像素值。可以使用各种插值技术中的任何一种。在一个实施方式中,例如,可以使用拉普拉斯插值。
[0040] 下面的情况也是可能的,即,在某些光场图像中,nxm(缺省的或“原始”块大小)大于基于块的压缩技术使用的块大小。另外,n不是必须等于m。例如,nxm可以是11x14、或11x11、或9x9、或8x10、或21x21等。在某些基于块的压缩技术(诸如JPEG)中,分块机制可以允许多种基础分块大小。例如,JPEG可以允许块大小为8的倍数,诸如8x8、16x16或
32x32等。这样,在一个实施方式中,基于块的压缩技术提供的下一更大的块大小可以用于块308的块大小。例如,如果nxm是12x14,并且基于块的压缩技术允许8x8或16x16的块大小,则16x16可以用于块308的大小n′xm′。
[0041] 备选地,如果n′xm′小于nxm,则可以简单地裁剪块306以产生更小的块308。例如,如果nxm是10x10,而n′xm′是8x8,则可以简单地将块306裁剪为8x8。需要注意的是,在某些光场图像中,微图像中的边缘信息在任何情况下归因于用于捕获光场信息的光场照相机的性质可能是有噪声的,所以可以在不丢失很多可用光场信息的情况下对边缘像素进行裁剪。还要注意的是,微图像中的像素越多,裁剪导致的负面影响(光场信息的丢失)越小。这样,裁剪可能不能用在包括有限数量像素的微图像上,这样的微图像的每个像素中的光场信息比具有更多像素的微图像的每个像素中的光场信息更有价值。
[0042] 以上描述了这样一种过程,借由该过程,光场预处理模块可以在将块304放入图像310之前,将其调整为大小与基于块的压缩技术的分块机制一致的块308。备选地,可以从初始维度(nxm)的块304形成图像,随后光场预处理模块可以在图像中的块304上重复对每个块调整大小,以形成由大小与基于块的压缩技术的分块机制一致的块308组成的新图像310。
[0043] 在某些光场图像中,与每个微图像除了是图3A和图3B中示出的矩形不同,在每个块或宏像素中记录的信息可以是代表照相机光圈的圆形或者圆盘(称为微图像)。图4示出了利用全光照相机(例如,图1B示出的全光照相机102)捕获的示例性光场图像400。区域402示出了光场图像400的展开区域,并且来自展开区域402的宏像素404示出了示例性的圆形微图像。在一个实施方式中,并不是像在图3A的图像300的情况下那样对每个宏像素404进行简单的调整大小,光场预处理模块首先将圆形微图像再整形(例如,通过裁剪)为矩形区或块,并随后将作为得到的块的大小调整为与基于块的压缩机制的分块机制兼容(例如,对于JPEG压调整为是8x8的块)。如果需要,块中的像素信息可以被插值,以产生新块中的像素值。可以使用不同方法来得到具有与基于块的压缩技术的分块机制兼容的大小的块。例如,假设正在使用JPEG压缩。如果从微图像(块)裁剪的区小于8x8,则块被调整大小为8x8,其中利用插值来产生像素值。如果块大于8x8但是小于16x16,则块的大小可以下调(例如,通过裁剪)为8x8,或者利用用于产生像素值的插值而调整为16x16。
[0044] 一旦对微图像进行了裁剪,则裁剪过的块被调整为与基于块的压缩技术的分块机制兼容的大小的块,调整过大小的块可以置于类似于图3B的图像310的图像中。光场的角度和空间信息被包含在作为结果的图像中。随后可以使用基于块的压缩技术来对作为结果的图像进行压缩,而不会产生分块赝像,这是因为作为结果的图像的块大小与在基于块的压缩机制的分块机制中使用的块大小相同。
[0045] 图5是根据一个实施方式的、示出了光场预处理和压缩方法中的数据流的高层框图。光场预处理模块502获得捕获的光场图像500(例如,图3A的图像300,或者图4的图像400)。图像500由光场预处理模块502进行预处理,以生成预处理过的光场图像504,其块大小与将用于压缩图像504的基于块的压缩技术兼容。在一个实施方式中,如果针对光场照相机的校准图像501可用,则照相机捕获的光场图像500可以使用校准图像进行正则化。通常将捕获的光场图像除以校准图像以正则化该图像。随后,由实现基于块的压缩技术的压缩引擎506对图像504进行压缩,以生成经过压缩的光场图像508。经过压缩的图像508例如可以存储在存储介质510中,诸如系统存储器、盘驱动器、DVD、CD等。经过压缩的光场图像508可以使用任何应用进行查看或以其他方式操纵,其中该任何应用被配置以打开并查看基于块的压缩技术生成的图像。例如,如果使用了JPEG压缩,则可以使用能够打开并显示JPEG文件的任何应用来查看图像508。
[0046] 光场预处理模块502和压缩引擎506的实施方式可以实现在计算机系统上。在图10中示出了实施方式可以在其上实现的示例性系统。光场预处理模块502可以实现为工具、模块、库函数、插件、单机应用等,或者可以在这些中实现。光场预处理模块502可以提供用户接口,该用户接口提供一个或多个文本和/或图形用户接口部件、模式或技术,用户经由其可以控制光场图像的预处理的各个方面。例如,用户接口可以包括用户接口部件,这些用户接口部件允许用户选择输入文件和输出文件、指定将使用的压缩技术、指定用于预处理的图像504的块大小、指定是否对块进行放大(插值)或缩小(裁剪),等等。
[0047] 图6-图9更详细地示出了在对图像进行基于块的压缩之前,用于对光场图像进行预处理的方法的实施方式,具体地,该预处理应用于诸如图4中图像400之类的图像,其中在图像400中每个宏像素包括圆形微图像。然而,需要注意的是,针对这些附图示出并描述的至少某些预处理还可以应用在诸如图3A中图像300的之类图像的预处理中,在图像300中,每个宏像素是矩形微图像。作为示例,这些附图假设将要根据JPEG压缩标准进行基于块的压缩,以及在JPEG压缩中使用的分块机制的块大小是8x8个像素。作为示例,这些附图还假设:微图像的部分将要被提取以及缩放或插值以便适合于更大的块,以及将使用拉普拉斯插值技术。在各种实施方式中,可以使用除JPEG之外的其他基于块的压缩技术,可以使用除8x8个像素之外的块大小,以及可以使用包括其他插值技术的其他放大方法。需要注意的是,在一个实施方式中,可以通过对输入微图像的简单裁剪来进行缩小,以适合较小的块大小。
[0048] 图6是根据一个实施方式的、用于在对光场图像进行基于块的压缩之前对来自光场图像的宏像素或块进行预处理的方法的流程图。图6中示出的方法可以在诸如图5的模块502之类的光场预处理模块中实现。
[0049] 光场预处理模块502可以从需要被预处理的光场图像500获得第一光场图像块602或宏像素。在此示例中,示例性块602约是20x20个像素。然而,光场预处理模块的实施方式可以被配置为与各种大小的光场图像块602一起工作,并且块602并不必须是正方形的,甚至并不必须是矩形的,这是因为预处理方法的实施方式可以与其他形状(诸如,六边形形状)的输入块一起工作。在此示例中,来自于块602(其是矩形的,并且约为20x20个像素)中的微图像的光场信息需要适合于使用基于块的压缩技术(例如,JPEG)进行压缩的8x 8像素块。
[0050] 在一个实施方式中,如果针对光场照相机的校准图像501可用,则照相机捕获的光场图像500可以使用校准图像进行正则化。通常将捕获的光场图像除以校准图像以正则化该图像。这样,在一个实施方式中,可以通过将光场图像块602除以来自于利用光场照相机捕获的校准图像501的相应校准块600,将光场图像块602正则化(如604处所示)。在对捕获的光场图像500进行预处理中,可以通过将捕获的光场块602除以来自校准图像501的相应校准块600,而将图像502中的每个块602正则化。在一个实施方式中,不是对整个块602进行正则化,而是仅对包含圆形微图像的区域正则化。
[0051] 图7示出了用于全光光场照相机的示例性校准图像。校准图像700是光场照相机(在此示例中,是诸如图1B中照相机102的全光照相机)获取的全白场景的图像。参考照相机102,校准图像700中较大的圆圈对应于物镜104的光圈,而大圆圈内的每一个小圆圈或微图像对应于显微镜头阵列106中的具体的一个显微镜头或小镜头的光圈。正则化过程可以改进每个显微镜头光圈圆圈的边界处的质量,并且增强光场图像的整体外观,移除可能由光场设备(照相机)引入的色彩偏差。色彩偏差位于微图形的边缘处,并且是由于显微透镜在边界处的衰减造成的。区域702示出了来自于校准图像700的示例性展开区域,并且宏像素704示出了来自于区域702的示例性展开宏像素或块以及其圆形微图像。
[0052] 如果执行了正则化,则在正则化之后,块602被再整形以便获得光场信息的矩形区。在某些光场图像500(诸如图1B中所示全光照相机102捕获的那些)中,记录的光场信息是每个块602中的圆盘或圆形(代表照相机光圈),被称为微图像。此圆形光场信息需要被再整形为大小与基于块的压缩技术的分块机制兼容的矩形区。在一个实施方式中,这可以通过对块602中的微图像进行裁剪获得较小的块而完成,如606处所示。在此示例中,裁剪606产生了光场信息的5x5块608。在610处,裁剪过的块608的大小随后被调整为压缩技术将使用的块大小,在此示例中是8x 8,并且使用插值技术填满8x8块中的像素值,以生成调整过大小的块612。在一个实施方式中,使用了拉普拉斯插值技术,在其中求解拉普拉斯方程以确定像素值。在预处理过的光场图像504的相应位置处创建调整过大小的块612,或者将调整过大小的块612置于其中。在614处,如果存在将要预处理的更多的光场图像块,则该方法从捕获的光场图像500获得下一图像块602,并继续。否则,光场图像500的预处理完成。参考图5,由光场预处理模块对捕获的光场图像500进行的预处理完成,并且预处理过的光场图像504被输出以供压缩引擎506进行压缩。
[0053] 再次参考图6,裁剪过的块608的大小可以不同于仅作为示例而使用的5x5,并且调整大小过程可以因使用的裁剪大小而不同。例如,假设正在使用JPEG压缩。如果从微图像裁剪的区(例如,块608)小于8x8,则块被调整大小为8x8,其中利用插值来产生像素值。如果块608大于8x8但是小于16x16,则块的大小可以下调为8x8,或者利用用于产生像素值的插值而上调为16x16。
[0054] 在一个实施方式中,光场预处理模块502使用的插值技术可以是拉普拉斯求解器。图8A和图8B示出了根据一个实施方式的、使用拉普拉斯插值的示例性插值方法。插值的目标在于使用裁剪过的区域806内的像素值,填充来自于宏像素800的区域806(在802处被裁剪)与块804的外边界之间的黑色区域,在此示例中,区域806是5x5像素正方形,而块804是8x8像素正方形,但是需要注意的是,它们中的任一者或二者可以是不同形状或维度。一个实施方式可以在裁剪过的区域806边界处使用狄利克雷边界条件810,而在块804的边界处使用诺埃曼边界条件812。公知的是,可以通过在此块上迭代与适当内核的卷积(在814处指示),而利用这些边界条件实现对拉普拉斯方程的求解,从而生成输出块
816(在此示例中,是8x 8输出块)。图8B示出了可以在实施方式中使用的示例性卷积内核。在此实施方式中,卷积从裁剪过的区域806的边界开始,从而通过从里到外地传播信息而填满黑色区域。通常,约三到四次迭代足够填满整个块804。
[0055] 图9A和图9B示出了根据一个实施方式的对光场图像的预处理。图9A示出了根据一个实施方式的、对利用光场成像系统(诸如,图1B的全光照相机102)捕获的光场图像(诸如图4中的示例性图像400)的预处理,其中在该光场成像系统中,在主透镜的后面使用显微透镜。图9B示出了根据一个实施方式的、利用光场成像系统(诸如,图1A的光场照相机100)捕获的光场图像(诸如,图3中的示例性图像300)的预处理。光场预处理模块的实施方式可以被配置为对一种或两种类型的光场图像进行处理。
[0056] 参考图9A,光场预处理模块在对诸如图4中的示例性图像400之类的光场图像(其是使用诸如图1B的全光照相机102的光场成像系统捕获的,在该光场成像系统中,在主镜头后面使用显微镜头)进行预处理时可以执行要素902、904和906。这些要素可以被执行以从利用光场成像系统(诸如图1B的全光照相机102)捕获的光场图像900中检测并提取单独的显微透镜图像。示例性光场图像900是由多个显微透镜图像组成的2D图像。每个显微透镜图像是从不同角度看到的主(物)透镜的光圈的图像。在一个实施方式中,光场预处理模块可以使用微图像检测方法来从光场图像900提取单独的显微透镜图像(微图像)。在微图像检测方法中,光场预处理模块检测第一微图像(如902处所示),并随后估计微图像的周期(如904处所示)。在一个实施方式中,这可以通过以下实现:对垂直方向和水平方向的像素值取平均值,随后取得这些平均值的自相关,并且最终查看在自相关中从零位偏移到第一峰值的距离。这些值给出了微图像之间近似的垂直距离和水平距离。光场预处理模块随后取得左上角的微图像的坐标,随后通过在图像中迭代,提取每个微图像(如906处所示)。显微透镜块(即,宏像素)的大小设置为等于微图像周期的一半。随后,可选地可以对每个提取的微图像执行正则化(如908处所示),以及执行调整大小和在需要的情况下执行插值(如910处所指示),以便生成预处理过的光场图像912。
[0057] 在一个实施方式中,光场预处理模块并不是对图像900进行迭代以及提取所有的微图像,并随后对提取的微图像进行如908和910处所示的预处理,而是可以被配置用于:提取下一微图像,对提取的微图像进行如908和910处所示的预处理,并对重复提取和对每个微图像的预处理,直到图像900中的所有微图像被提取和预处理为止。
[0058] 图9B示出了根据一个实施方式的、对利用光场成像系统(诸如,图1A的光场照相机100)捕获的光场图像(诸如,图3中的示例性图像300)的预处理。在这些图像中,在输入的捕获的光场图像920的每个宏像素中不存在圆形微图像。基本上,捕获的光场图像920中的每个宏像素是一个微图像。对于这些类型的图像,可选地可以对宏像素执行正则化,如922处所示。nxm的像素块是从宏像素形成的,如924处所指示,例如针对图3A和图3B描述的那样。对块执行调整大小和在需要的情况下执行插值(如926处所示),以便生成与基于块的压缩技术的分块机制兼容的n′xm′的像素块。从图像920提取的所有块都被处理,从而生成预处理过的光场图像928。
[0059] 图9A的预处理过的光场图像912和图9B的预处理过的光场图像928随后可以使用基于块的压缩技术(诸如,JPEG压缩)来进行压缩。由于光场预处理模块执行的预处理已经将预处理过的光场图像中的块的大小调整为与压缩技术使用的分块机制兼容的大小(和形状),所以作为结果的压缩图像不会具有分块赝像,而在不对图像进行此处描述的预处理而直接对其进行压缩的情况下则会产生分块赝像。
[0060] 示例系统
[0061] 可以在一个或多个计算机系统上执行光场预处理模块的各种实施方式,其中所述计算机系统可以与各种其他设备交互。图10示出了一个这种计算机系统。在示出的实施方式中,计算机系统1000包括一个或多个处理器1010,其通过输入/输出(I/O)接口1030而连接到系统存储器1020。计算机系统1000还包括耦合到I/O接口1030的网络接口1040,以及一个或多个输入/输出设备1050,诸如光标控制设备1060、键盘1070、音频设备1090和显示器1080。在某些实施方式中,可以想到:可以使用计算机系统1000的单个实例来实现实施方式,而在其他实施方式中,多个这种系统或构成计算机系统1000的多个节点可被配置用于管理实施方式的不同部分或者实例。例如,在一个实施方式中,某些要素可以通过计算机系统1000的与实现其他要素的那些节点不同的一个或多个节点来实现。
[0062] 在各种实施方式中,计算机系统1000可以是包括一个处理器1010的单处理器系统,或包括若干处理器1010的多处理器系统(例如,两个,四个,八个或另一个适合的数目)。处理器1010可以是能够执行指令的任意适合的处理器。例如,在各个实施方式中,处理器1010可以是实现各种指令集体系结构(ISA)诸如x86,PowerPC,SPARC或MIPS ISA或任意其他适合的ISA中的任意一种的通用或嵌入式处理器。在多处理器系统中,处理器1010中的每一个可以通常实现相同的ISA,但不必然如此。
[0063] 系统存储器1020可被配置为存储可由处理器1010访问的程序指令和/或数据。在各个实施方式中,可以使用适合的存储器技术,诸如静态随机访问存储器(SRAM)、异步动态RAM(SDRAM)、非易失/闪存类存储器或任意其他类型的存储器,实现系统存储器1020。在示出的实施方式中,实现诸如上面针对用于利用基于块的压缩技术进行压缩的光场图像的处理的那些所希望的功能的程序指令和数据,被分别示出作为程序指令1025和数据存储
1035存储在系统存储器1020中。在其他实施方式中,程序指令和/或数据可被接收、发送或存储在不同类型的计算机可访问的介质上或与系统存储器1020或计算机系统1000分离的类似介质上。一般地说,计算机可访问介质可以包括存储介质或存储器介质,诸如磁或光介质,例如通过I/O接口1030连接到计算机系统1000的盘或CD/DVD-ROM。通过计算机可访问介质存储的程序指令和数据可以以传输介质或诸如电、电磁或数字信号之类的信号进行传输,可以通过诸如网络和/或无线链接之类的通信媒体来传递这些信号,诸如可以通过网络接口1040来实现。
[0064] 在一个实施方式中,I/O接口1030可被配置为协调处理器1010,系统存储器1020和设备中的任意外围设备(包括网络接口1040或其他外围接口,诸如输入/输出设备1050)之间的I/O流量。在某些实施方式中,I/O接口1030可以执行任意必需的协议、定时或其他数据转变,以便将一种组件(例如,系统存储器1020)的数据信号转换为适用于另一种组件(例如,处理器1010)的格式。在某些实施方式中,I/O接口1030可以包括对通过各种类型的外围总线,诸如各种外围组件互连(PCI)总线标准或通用串行总线(USB)标准附加的设备的支持。在某些实施方式中,I/O接口1030的功能可被划分为两个或多个单独组件,诸如例如北桥和南桥。另外,在某些实施方式中,I/O接口1030的某些或全部功能,诸如到系统存储器1020的接口可被直接集成到处理器1010内。
[0065] 网络接口1040可被配置为允许在计算机系统1000和附接至网络的其他设备(诸如其他计算机系统之间)、或是在计算机系统1000的节点之间交换数据。在各种实施方式中,网络接口1040可以通过有线或无线通用数据网络,诸如任意适合的以太网网络,通过电信/电话网络,诸如模拟语音网络或数字光纤通信网络,通过存储区域网络,诸如Fibre Channel SAN,或通过任意其他适合的网络和/或协议类型支持通信。
[0066] 在某些实施方式中,输入/输出设备1050可以包括一个或多个显示终端、键盘、小键盘、触摸板、扫描设备、语音或光学识别设备,或适用于通过一个或多个计算机系统1000输入或检索数据的任意其他设备。多个输入/输出设备1050可存在于计算机系统1000中,或可以分布在计算机系统1000的各个节点上。在某些实施方式中,类似的输入/输出设备可被与计算机系统1000分开,并且可以通过有线或无线连接,诸如在网络接口1040上,与计算机系统1000的一个或多个节点交互。
[0067] 如图10所示,存储器1020可以包括配置为实现光场预处理模块的实施方式的程序指令1025,以及包括可由程序指令1025访问的各种数据的数据存储1035。在一个实施方式中,程序指令1025可以包括上图中示出的基于块的压缩引擎和光场预处理模块的软件单元。数据存储1035可以包括可用于这些实施方式的数据。在其他实施方式中,可以包括其他或不同的软件单元和数据。
[0068] 本领域的技术人员应当理解的是,计算机系统1000仅是说明性的,而并非旨在将光场预处理模块的范围限制为此处的公开。具体地,计算机系统和设备可以包括可以执行指出的功能的硬件或软件的任意组合,包括计算机、网络设备、互联网应用、PDA、无线电话、寻呼机等。计算机系统1000还可以连接到未示出的其他设备,或作为独立的系统操作。另外,在某些实施方式中,由示出的组件提供的功能可被组合在更少的组件内或分布在附加组件上。类似地,在某些实施方式中,可以不提供示出的实施方式中的某一些功能,和/或可以获得其他附加的功能。
[0069] 本领域的技术人员应当理解的是,虽然各种项目被示出为在使用时被存储在存储器或存储设备上,可以出于存储器管理和数据完整性的目的,在存储器和其他存储设备之间传递这些项目或它们的部分。可替换地,在其他实施方式中,可以在存储器或另一设备上执行软件组件中的某一些或全部,并且通过计算机间通信与示出的计算机系统通信。系统组件或数据结构中的某一些或全部还可以被存储(例如,作为指令或结构化数据)在计算机可访问的介质上,或将以适当驱动器读取的便携产品上,上面已经描述了它们的各种示例。在某些实施方式中,存储在与计算机系统1000分离的计算机可访问介质上的指令可通过传输介质或信号(诸如通过通信媒体,例如网络和/或无线链路传递的电、电磁或数字信号)传输到计算机系统1000。各种实施方式还包括在计算机可访问介质上接收,发送或存储根据前面所述执行的指令和/或数据。因此,可以用其它计算机系统配置实施本发明。
[0070] 结论
[0071] 各种实施方式还可以包括在计算机可访问介质上接收、发送或存储根据前面所述执行的指令和/或数据。一般而言,计算机可访问介质可以包括:存储介质或存储器介质,诸如磁或光学介质(例如,盘或DVD/CD-ROM);易失或非易失介质,诸如RAM(例如,SDRAM,DDR,RDRAM,SRAM等),ROM等;以及传输介质或信号,诸如通过例如网络和/或无线链路之类的通信媒体传递的电、电磁或数字信号。
[0072] 图中示出并且在此处描述的各种方法表示这些方法的实施方式的示例。可以用软件、硬件或其组合实现这些方法。方法的顺序可被改变,并且各个元素可被增加、重新排列、组合、忽略、修改等。
[0073] 受益于本公开,本领域的技术人员很明显可以做出各种修改和改变。本发明旨在包括所有这些修改和改变,并且因此上述描述被认为是说明性的而不是限制意义的。