用于立体图像的视频滤波的制作方法

文档序号:7587066阅读:125来源:国知局
专利名称:用于立体图像的视频滤波的制作方法
技术领域
本发明涉及一种图像处理系统,该图像处理系统用于通过依赖于深度的变换从与输入观看点有关的输入图像生成与输出观看点有关的至少一个输出图像。
背景技术
对于在2D显示器上显示图像时提供深度感觉的兴趣正在快速地增长,特别是在虚拟现实应用和计算机游戏中。提供诸如影响一个物体的亮度级别或尺寸的深度提示的各种形式是熟知的。特别是,作为用于提供深度感觉的技术的立体影像(Stereopsis)或立体视觉受到很多注意。通过把从两个稍微分离的位置观察而得到的同一个场景的两个2D图像呈现给人,给出立体影像。两个图像中的一个图像呈现给左眼,另一个图像呈现给右眼。两个图像是在视差上相关的。术语“视差”是指视在移位或物体的视在方向的差别,正如从不与物体在一条直线上的两个不同的点看到的。视差使得人感觉出场景中物体的深度。
用于显示立体图像的许多显示技术是已知的。通过使用时间平行技术,两个输出图像同时呈现到一个或两个显示器。例如,两个图像可以用互补的彩色被滤色并被叠加在一个显示器上。观察者佩戴具有匹配投影滤色器的眼镜。替换地,两个图像可以一起被显示在一个显示器上并使用用来把每个图像引导到正确的眼睛的观看器进行观看。作为另一个例子,可以使用两个显示器来呈现两个不同极化的图像,通过相应的极化的眼镜观看这些图像。替换地,两个图像可以通过使用具有用于每个眼睛的分开的显示器的头戴式设备被呈现。也可以使用时分复用技术,其中左和右图像被交替地显示在一个显示器上。作为一个例子,一个图像被写在监视器的偶数扫描线,而另一个图像被写在监视器的奇数扫描线。当右眼图像被显示时使用快门系统阻断左眼,以及当左眼图像被显示时阻断左眼。快门系统可被安装在观看者戴的眼镜上。替换地,具有可控制极化的快门被放置在显示器的前面,以及观看者佩戴具有偏振眼镜的头戴式设备。
适合于呈现来自不同观看点的2D图像的可能的视频格式是加有深度信息的2D视频格式。典型地,2D输入图像以像素阵列的形式给出。例如,它可以使用照相机或计算机图形学而得到。对于输入图像的每个像素,附加的深度信息是可提供的,或类似地,对于场景中的每个点,给出该点到照相机(或到另一个参考点、线或面,例如投影屏)的距离。这样的格式通常称为2.5D视频格式。深度信息允许把原先的图像建模为低反差图像(flat image)的样本组,而且也作为投影在地面(terrain)上的图像的样本组。

图1A显示被采样的地面的截面图。光线从照相机的位置被投射到屏幕的每个像素。沿着光线的箭头的长度表示像素样本的深度值,也称为纹元(纹理元素)。2.5D视频格式代表全部3D模型世界的子组。从其它观看点的呈现可以通过把地面投影到来自想要的观看点的图像面而完成。根据从眼睛的观看点和从照相机点观看同一个物体时的视差,左眼图像和右眼图像的像素可以从输入图像的像素通过移位像素而得到。通过把坐标系统的水平轴选择为平行于连接两个眼睛的直线,只进行水平移位。像素的移位量取决于深度信息。图1B显示在观看点变换后投影的输入像素的密度在输出域中是不均匀的。因此,需要一个重新采样的过程。被设计来用于处理广播视频信号的现有的视频处理硬件/软件能够产生高质量输出图像。这样的HW/SW能够把图像缩放成不同的显示格式,例如4∶3和16∶9,以及对于这样的变换的信号进行重新采样和限带。按图像的水平扫描线进行视频处理。
发明概要本发明的目的是提供能够执行观看点变换而不引入视觉上的人工产物的视频处理系统和方法。优选地,这样的变换以低成本执行,以及可以与被设计来用于处理广播视频信号的现有的视频处理硬件/软件集成在一起。
为了满足本发明的目的,一种图像处理系统用来通过依赖于深度的变换从与输入观看点有关的输入图像生成与输出观看点有关的至少一个输出图像;图像分别被表示为输入像素阵列和输出像素阵列;图像处理系统包括用于接收输入图像的输入端,其中输入图像包括对于每个输入像素的相关的输入像素值和输入像素深度;每个输入像素与相应的重建滤波器覆盖区(footprint)有关;一个视频处理器用来通过以下步骤创建输出图像的输出像素对于每个输入像素,把输入像素值变换成变换的输入像素以作为相关的输入像素深度的函数,以及把相关滤波器覆盖区变换成变换的滤波器覆盖区以作为相关的输入像素深度的函数;以及使用变换的滤波器覆盖区对于多个变换的输入像素执行重建滤波操作;以及输出端,用来提供用于以后呈现的输出图像。
按照本发明,每个输入像素是与例如可以相应于像素的长度的初始滤波器覆盖区有关的。这个滤波器覆盖区根据像素深度被变换。这个变换典型地是从输入观看点到输出观看点的视差变换。变换不仅移位输入像素,而且也改变滤波器覆盖区段尺寸(例如,覆盖区段扩大或缩小)。因此,在变换后,覆盖区可以部分地或全部地重叠。因此,距观看点较近的输入像素可以部分地或全部地覆盖从观看点进一步被去除的输入像素。按照输出像素网格(被表示为阵列),变换的输入像素通常也不再对准。输出像素是根据变换的输入像素覆盖区被重建的。被设计用来处理不同的图像比率(image ratio)的现有的视频重建滤波器能够使用扩大或缩小的覆盖区来重建输出信号。这样的现有的滤波器可被使用,被馈送以由依赖于深度的变换而确定的滤波器覆盖区尺寸。
按照从属权利要求2的措施,处理器确定哪些变换的滤波器覆盖区没有从输出观看点完全被阻断。它使用这些覆盖区以用于重建滤波。通过只使用完全可见的覆盖区,速度得以提高。
按照从属权利要求3的措施,也使用部分阻断的覆盖区,可见的部分成正比。这提高输出图像的质量。
按照从属权利要求4的措施,完全阻断的覆盖区从滤波中被消除,并且它对输出信号不产生影响。
按照从属权利要求5的措施,以与从输入观看点到输出观看点的移位相反的方向顺序处理每行像素,就使得容易检测阻断。这可以通过保持表示至今已被变换的像素和它们的覆盖区的最远的x坐标的一维范围而完成。如果下一个覆盖区的变换导致增加范围,则变换的下一个覆盖区至少部分未被阻断。这样,可以容易地决定是否从滤波排除像素。优选地,x轴是水平的,以及照相机移位也是水平的。如果希望的话,其它方向也是可能的。
按照从属权利要求6的措施,也可以接收隐藏的图像,其中隐藏的图像包括对于每个隐藏像素的相关的隐藏像素值和隐藏像素深度。视频处理器可以确定输出像素从输出观看点是否被去阻断,以及对于去阻断的输出像素在变换的隐藏图像像素上执行重建滤波。这样,变换后在输入图像上出现的空洞(hole)用来自隐藏图像的像素填充。这些隐藏图像像素被处理(变换和滤波)为好像它们是从输入图像取得的。优选地,隐藏图像由几个隐藏层组成。
按照从属权利要求7的措施,如果变换的输入像素将x坐标范围增加到大于预定的阈值,视频处理器用来确定输出的图像被去除阻断。优选地,如果变换后输入像素的x坐标离输出图像上最后的像素位置移出1.5个像素以上,则空洞太大以及用来自隐藏层的信息来填充。
按照从属权利要求8的措施,优选地,重建滤波器是基于方框(box)滤波器或高阶滤波器。
按照从属权利要求9的措施,重建的信号在呈现之前被预先滤波。预滤波器具有对于每个输出像素规定的覆盖区。如果这个覆盖区与输入像素的变换的重建滤波器覆盖区相重叠,则这个输入像素对输出像素的数值产生影响。该影响按照预滤波器形状被加权。这样的重新采样过程被称为前向纹理映射或纹元溅射(texel splatting)。纹元溅射可以容易地与高阶滤波器集成在一起。传统的纹元溅射的缺点是与处理阻断的硬集成。传统上,前向纹理映射方法通过使用用来存储对于输出像素的贡献和深度信息的分段缓存器来处理阻断。缓存器累积整个场景的贡献,并把它们从前到后归类。在处理整个场景之后,该缓存器可以被用来从前到后呈现场景。这个方法的缺点在于,分段缓存器的尺寸正比于视频滤波器的覆盖区的面积乘以输出图像的尺寸。通过使用按照本发明的方法,不需要分段缓存器,从而使得应用高阶滤波更容易。
按照从属权利要求10的措施,预滤波器优选地仅仅水平地操作,使得能够进行像素的简单的顺序处理和与当前的电视中的视频处理很好地匹配。为了达到更高的质量,预滤波器可以扩展到一个以上的行的像素。
参照下文描述的实施例,本发明的这些和其它方面是明显的并将被阐明。
附图简述在附图中图1显示并入图像处理系统的常规系统的方框图,图2A-2B显示从不同的观看点观看的地面,图3A-3C显示透视投影,图4A-4B说明当从不同的位置观看时物体的增加的重叠,图5A-5B说明当从不同的位置观看物体时空洞的外观,图6进一步说明投影到平面上,图7说明阻断的检测,图8显示重建滤波,图9显示预滤波器形状,图10显示由预滤波器执行的纹元溅射,图11显示优选实施例的方框图,图12显示由从不同的观看点记录的两个输入图像编辑的输出图像,图13说明在2.5D基本图像的依赖于深度的变换后可能出现空洞,图14显示使用隐藏层对于空洞的填充,图15显示第一图像的运动补偿,图16显示用于隐藏层的深度值的生成,以及图17显示隐藏层对于基本输入图像的坐标的运动补偿。
优选实施例详细说明为了解释按照本发明的系统,参照图1到4将描述依赖于深度的变换。在这个一般说明中,像素被看作一个点(无尺度)。图1显示其中可以有利地使用按照本发明的图像处理系统的传统的系统的方框图。该传统的系统包括用于存储2D输入图像110的存储器100,例如图形存储器。输入图像110由被划分成行和列的像素的阵列组成。对于每个像素,像素值是给定的。表示像素值的各种方法是已知的,例如RGB(红、绿、蓝)或YUV编码。像素值可被完全地存储,例如使用每个像素16或24个比特。替换地,可以使用彩色查找表(CLUT)方案来用较少的比特如8比特编码像素值。除了像素值以外,对于每个像素,深度值被存储在存储器100中以作为输入深度120。深度值例如可以使用每个像素16比特被存储。如果需要,分开的存储器可用来存储输入深度120。输入图像110和输入深度120可以以任何适当的方式被生成。作为例子,可以使用位于不同位置的两个照相机,优选地每个照相机代表不同的眼睛。从由照相机得到的2D图像中可以形成一个图像加深度信息。然后,深度信息除了与传统地只提供一个2D图像相兼容以外,还优选地被提供来允许通过使用传统的2D显示系统或立体图像显示系统来观看场景。在游戏计算机或个人计算机上,输入图像110和输入深度120通常通过从被存储在存储器中的3D模型得出信息的3D呈现过程而被生成。典型地,该存储器是计算机的主存储器的一部分。诸如电信装置、音频/视频广播或有线网络之类的通信装置可用来把输入图像110和输入深度120提供给图像处理系统。
处理器160使用输入图像110和输入深度120来生成至少一个输出图像。在图1示出的例子中产生左图像170和右图像180。左图像170代表在从与观察者的左眼一致的观看点看到的3D场景的2D表示。同样,右图像180代表在从与观察者的右眼一致的观看点看到的3D场景的2D表示。处理器160可以把输出图像构建在存储器190如图形存储器中。按照本发明的系统能够按像素行进行处理,减小了存储器要求。所以,存储器可以使用用于只存储图像的一个扫描行的行缓存器来形成。这样,图像数据可以作为数据流被处理。如果应用垂直滤波,则需要存储若干行。通常,D/A变换器200把输出图像呈现在适当的显示器210上,例如立体图像显示器。在广播接收机中,处理器160可以对在像素级别上时间同步的输入图像和输入深度进行处理以提供这个信息。通过使用用于存储作为输入图像110和输入深度120的相应复制的输入图像220和输入深度230的存储器210,同步可以被放松。然后,处理器160可以与输入图像110和输入深度120无关地对输入图像220和输入深度230进行处理。在适当的时刻,例如在创建全新的图像时,输入图像110和输入深度120被复制到相应的输入图像220和输入深度230。在其中存储器100和存储器210被物理地组合成一个存储器块的情形下,例如可以通过重新指定指针寄存器来进行复制而不用物理地复制数据。将会看到,不用保存整个图像拷贝,也可以根据采用的滤波器来存储一行或几行的若干像素。
输入图像到输出图像的依赖于深度的变换是与3D物体的位移互相关联的。这里描述的变换也称为视差变换。因为例如观察者相对于场景的位置的改变、观察者相对于场景的取向的改变,从而由于物体和观察者的相对速度而引起物体相对于彼此之间位置的改变、或这些改变的组合,所以引起位移。
图2A显示从照相机观看点205看到的和被投影在图像平面210上的地面200。通常,图像平面由均匀的像素形成(可能在x和y方向上有不同的密度)。在这个例子中,对于图像平面的每个像素,地面的相应的纹元(纹理元素)被确定(从照相机通过地面投向像素的射线的交叉点)。深度可以以任何适当的形式(例如,代表从纹元到像素的长度、纹元到照相机的距离、纹元到投影面的距离等)来代表。深度也可以以任何适当的形式进行编码,例如,可以使用线性尺度上的16比特编码,其中具有最小允许深度的物体的深度被编码为0000H(十六进制)和具有最大允许深度的物体的深度被编码为FFFFH。本领域技术人员如果想要的话,将能够选择适当的其它的表示法。图2B说明如果从观看点220观看相同的地面时将出现的情形。正如将会看到的,可能出现阻断230(纹元不再可见)、缩小240和放大250。如果原先的物体不是地面而是真实的3D物体,以上结果同样成立。
图3A显示透视投影。显示的是具有x轴300、y轴310和z轴320的3D坐标系统。2D图像由以行和列排列的离散的像素阵列组成。在这个上下文中的像素是按照本发明的图像处理考虑的最小的实体。图像中特定行的每个相应像素可以仅仅呈现为一系列离散位置的一个相应位置。图像中每行像素平行于x轴300,所以一行中的各个像素根据它们各自的x坐标被区分。每列像素平行于指向垂直于x轴300的方向的y轴310。场景的深度是沿z轴320进行测量的,它垂直于x轴300和y轴310。各个z值被指定给每个特定的像素,以便表示对于该特定像素的场景的深度。为了说明像素的视差位移,坐标系统的原点O=(0,0,0)和取向被选择为使得由点P=(x,y,z)表示的3D物体可以从观察点O1=(D,0,0)进行观看。平面z=zp被选择为聚焦面240(观察者的眼睛聚焦的平面)。通常,显示的平面被选择为与聚焦面一致。从观察点O1观看的2D图像由3D物体在聚焦面上的投影形成,它也被称为投影面。点P被投影成P1=(xp,yp,zp)。
图3B显示在平面y=0上图3A的投影。P被投影成P’=(x,0,z);P”=(D,0,z)。从三角形O1,P’,P”,可以得出zp/z=(xp-D)/(x-D),给出xp=D+(x-D).zp/z。
图3C显示在平面x=D上图3A的投影。P被投影成P’=(D,y,z);P”=(D,0,z)。从三角形O1,P’,P”,可以得出zp/z=yp/y,给出yp=y.zp/z。
这给出P1=(D+(x-D).zp/z,y.zp/z,zp)。同样,P2=(-D+(x+D).zpz,y.zp/z,zp)。类似的公式在[IEEE Computer graphics & Applications,TutorialTime-Multiplexed Stereoscopic Computer Graphics(时分复用立体图像计算机图形学),March 1992]中给出。从这些公式得出,通过选择x轴平行于穿过观察点的直线,P1和P2的y坐标是相同的。这样,当从由O1观看的图像得出由O2观看的图像时,不出现垂直视差。通常,通过这样选择x轴,视差的计算被简化。输出图像的像素可以从输入图像得出。假设输入图像相应于从O1观看的图像,以及输出图像相应于从O2观看的图像。还假设对于输入像素pi=(xi,yi),像素值是给定的,以及3D点P(x,yi,z1)的深度zi是给定的,由此得出pi。具有y0=yi的相应的输出像素p0=(x0,y0)涉及相同的3D点P(x,yi,zi)。这给出xi=D+(x-D).zp/zi,以及x0=--D+(x+D).zp/zi.
这意味着,x0可以按以下方式从xi得出x0=xi-2D+2D.zp/zi=xi+2D(zp/zi-1)。所以,输出图像可以通过执行以下的水平位移d(仅仅在x方向上)而从输入图像中得出d=2D(zp/z-1). (1)从这个公式可以看到,位移正比于深度的倒数。在该公式中,2D相应于在观察点O1和O2之间的偏移。这也相应于在最远允许点(z=∞)处的视差。
图4A显示从观察点O1观看的场景,其相应于输入图像,其中附近的物体400部分覆盖另一个去除的物体410。为了清晰起见,图上未示出y坐标。由于重叠,输入图像包括物体400的所有像素,以及仅仅某些像素410,正如由观看的图像显示的。图4B显示相应于输出图像的从观察点O2观看的相同的场景。正如从图4B看到的,重叠被增加。如果图4B的输出图像430是从图4A的输入图像420得出的,则这个增加的重叠将部分或全部被一个相应于前景物体300的输入像素阻断的相应于背景物体410的输入像素反映。由于重建的像素的覆盖区确实具有尺寸,所以重叠可以是局部的。在重叠的区域中,有几个用于输出图像的像素值的候选者。按照本发明的系统使用重建滤波器来对输出像素位置(即按照输出图像的网格)确定在变换后部分地或全部地重叠输出像素位置的输入像素。
与输入图像的不同像素被移位到相同的输出像素位置形成对比,图5显示其中由于不存在输入像素来填充输出图像530中的位置而在输出图像530中出现“空洞”的例子。图5A显示,在输入图像520中,背景物体510至少部分地被前景物体500遮挡。在图5B上,在物体500和510之间没有出现重叠(或较小的重叠),如在从观察点O2观看的输出图像530表示的。
对于特别是在广播电视系统中使用的、从不同的观看点的高质量重新呈现,希望执行以下四个步骤1.从采样的地面数据重建连续信号2.使连续信号变形到想要的观看点3.对于变形的信号进行限带4.对于限带信号进行采样通过使用纹元溅射,但避免使用分段缓存器,可以执行重新采样过程的全部四个步骤,由此以低的花费改进图像质量。根据呈现时间或需要的额外的硅来考虑的集成的预滤波的花费正比于预滤波器覆盖区的尺寸乘以输出图像的长度。步骤1和2在下面更详细地描述的重建滤波操作中将被组合。所描述的重建滤波操作支持高阶视频滤波,同时根据观看点变换重新采样原先的图像。对于这个操作,希望能够检测像素的阻断。按照本发明的系统使用有效的方法检测阻断。这个检测方法可以与重建滤波相组合地被使用,但它也可用于其它视频处理系统。步骤3和4将通过使用预滤波被执行。
检测阻断按照本发明的阻断检测被设计用于水平照相机变换(支持3D电视的水平视差的变换)的特殊情形,其中输入图像的变形限于水平方向。这允许按扫描线次序处理输入图像。下面更详细地描述对于从各个观看点把一维分段直线地面投影到一个图像线的’1.5D’问题的检测。一维地面是从输入图像的扫描线连同相应的深度值一起被得出的。按照本发明,可以在遍历(traversal)这个扫描线的期间在进行中(on thefly)确定阻断。图6显示对于观看点v的输入样本点a在图像线上的投影pv(a)。原先的照相机观看点被表示为v0。在对于其它观看点的扫描线次序和阻断之间的关系可被表示为如下假设a,b是对于原先的照相机位置v0在深度地面的输入扫描线上的随后的样本,以使得pv0(a)<pv0(b),以及v1>v0是想要的照相机观看点,于是对于被来自观看点v1的线段(a;b)阻断的样本点c,则有pv0(c)<pv0(a)成立。为了使得线段(a;b)是从观看点v1可看见的,需要v1是在由(a;b)支持的线的同一边以作为v0。因此,pv1(a)<pv1(b)。从c的阻断得出pv1(a)<pv1(c)<pv1(6)。通过构建,c是从观看点v0可看见的,所以或者pv0(c)<pv0(a),或者pv0(c)>pv0(b)。由于v1>v0,pv1(b)<pv0(b),这意味着pv0(c)>pv0(b)不能成立。因此实际上,pv0(c)<pv0(a)。由此可得出,对于想要的观看点v1>v0,对具有降低的x坐标输入扫描线的遍历将使我们在阻断的部分之前遇到地面的阻断部分。所以,阻断可以如下地解决,如图7所示。首先,引入一个用来保持在输出域中投影的像素的x范围700的变量。然后,可以得出结论,如果被变换的像素不使该范围加长,则它必定被以前处理的像素阻断。对于观看点变换v1<v0,理由是类似的在这种情形下,扫描线以增加的x坐标被遍历。
重建滤波器在优选实施例中,纹元映射以两个阶段执行。第一阶段是重新采样过程的步骤1和2的结合。第一阶段使用重建滤波器。重建滤波器的覆盖区可以是方框。这被显示于图7。这个图显示输出像素的网格。每个输出像素被显示为矩形,代表被像素覆盖的图像面。在优选实施例中,这样的矩形形成用于重建滤波的方框的基础。将会看到,也可以使用不同于与一个像素的面相匹配的这些形状的其它覆盖区,例如不同的形状,覆盖一个以上的像素(高阶滤波),等等。按照本发明,获取输入像素的覆盖区并进行变换。这不仅改变位置,而且也改变这些输入覆盖区的尺寸。示例性变换的尺寸和位置在图8上以具有虚线的矩形示出。实点说明在变换后无尺度输入像素坐标的位置(典型地与输入像素覆盖区的中部一致)。作为变换的一部分,计算输出域中方框的尺寸。它取决于投影的像素在图像线上的密度。在简单的实施例中,在重建滤波期间,在地面遍历期间看来似乎阻断的输入像素被丢弃以及不进行重建。在优选实施例中,使用更精细的重建,特别是正比于图像的一阶重建像素的非阻断部分的贡献。图8显示方框重建和阻断处理的结果。方框的尺寸是原先像素的贡献的度量。例如,输入像素820的重建的覆盖区(即变换后的覆盖区)由分段840表示。在这个例子中,重建的覆盖区大约是输出像素的覆盖区的75%。在这种情形下,输入像素对输出图像的贡献被设置为0.75倍。输入像素830的重建的覆盖区部分落在输出像素810中,以及部分落在810的右面的输出像素中。输入像素830的重建的覆盖区大约是输出像素810的覆盖区的25%,以及大约是相邻的输出像素的覆盖区的75%。输入像素830的总的贡献是25%+75%。因此,输入像素830被乘以1倍。
预滤波器第二阶段是在呈现输出图像之前通过使用预滤波器执行重新采样框架的步骤3和4。每个输出像素使用预滤波器覆盖区被滤波。在优选实施例中,这个覆盖区延伸到几个像素。滤波器可以仅仅在水平方向上延伸。图9显示一种延伸三个像素、中心在它属于的像素上、以及覆盖两个相邻的像素的滤波器的形状。在优选实施例中,预滤波器覆盖区也在垂直方向上延伸。通过使用如图9所示的简单形状,输出像素的预滤波器覆盖区覆盖八个相邻的像素。将会看到,可以使用任何适当的形状和覆盖区范围。
如图10所示,输入像素1000的贡献然后被溅射到(即被分布到)其预滤波器覆盖区与输出域中重建的方框重叠的像素。像素1000的重建的方框用加亮的矩形1010显示。在这种情形下,12个输出像素接收贡献。对于这些输出像素的每个像素,通过使用用来加权输入像素值的它们的各个预滤波器的形状而确定贡献。如上所述,有可能把输入像素只溅射到在同一个扫描线上的输出像素。优选地,也执行垂直滤波,以更进一步改进图像质量。
图11显示优选实施例的示意性硬件布局。输入图像作为具有颜色值1102和深度1104的像素序列被接收,并被存储在线缓存器1110。这个图像是从观看点v0被记录的。另外接收新的观看点x坐标v11106。块1120显示通过计算pv1(x)执行输入像素(和它们的覆盖区)的变换的遍历逻辑。变换的范围被存储在寄存器1130中。块1140确定究竟是有阻断、放大还是缩小 其它→缩小块1150显示滤波器(重建滤波器和预滤波器)。滤波的信号在呈现之前被存储在输出线缓存器1160中。将会看到,块1120、1140和1150的功能也可以由可编程(视频)处理器如DSP来执行。
“空洞”人工产物当呈现从稍微不同的虚拟照相机位置被提供为“图像+深度”(2.5)数据的输入图像时,会出现对于某些输出像素没有变换输入数据(去阻断)。原则上,这样的空洞人工产物可以通过用通过在空洞的左面和右面可提供的水平(和/或垂直)相邻像素值的内插得到的像素值来取代而被去除。作为简单的替换例,用具有最大z值的可提供的相邻像素的数值来替代。这样的替代在观察者观看从前景物体后面呈现的背景物体时与真实的生活经验一致。如上所述,由预滤波器执行的纹元溅射是执行这样的内插的先进的方法。将会看到,如果空洞太大,内插就不能给出良好的结果。大的空洞可以出现在深度上具有大的改变的深度边界。为了在呈现期间填充这样的空洞,希望具有来自在当前的输入图像中没有看到的、但从另一个观察点(例如第二照相机)可看见的空间位置的信息。
本来,发送包含关于这些隐藏部分的信息的额外数据是已知的。一个这样做的已知的方法是使用几个层表示活动图像,其中每个层存储具有匹配的活动区的物体。从活动图像中的光流计算物体和层。这些层在多个帧上被累积。被完全地或很大地阻断的物体通常将全部在一个更深的层中被表示。Nelson L.Chang和Avideh Zakhor,”Viewgeneration for three-dimensional scene from videosequences(从视频序列生成三维场景的图像)”,1997,IEEETransactions on Image Processing,vol.6,p.584-598描述基于某个参考帧的、以多个级别的场景。第一个级别是参考帧的可见部分。因此级别1包括所有附近的物体,而且也包括另外的被去除的物体的所有的可见部分。通常,级别k包含对于参考图像被阻断k-1次的那些像素(即从参考图像的观看点)。与传统的分层的方法相比较,可以声称,利用本方法,3个级别通常是足够的。这些层是从相应于多个视图的独立计算的三维模型被构建的。在这个后者的方法中,冗余信息量被大大地减小。在其余部分中,描述了在其中不能提供完全的3维物体的情形下用于生成这样的隐藏层的有效的方法,以及在即使只给出深度次序信息的情形下用于呈现来自不同观看点的图像的有效的方法。按照本发明的生成方法优选地与Chang的分层相组合。这种分层不作进一步描述,而在此包括以供参考。
图12说明按照本发明的用于在使用立体照相机记录图像的情形下示例性建立的方法。左照相机提供基本图像(图12A),以及右照相机提供来自辅助观看点的图像(图12C)。将会看到,也可以使用其它的方法来检索附加图像。原则上,发送基本图像。希望能够呈现来自不同的观看点的图像(图12B),所述不同观看点例如是在两个原先的观看点之间的观看点。要被显示的大多数像素可以取自基本(左)图像(图像的明亮的和暗的部分),然而,中间部分1210在基本图像上是看不见的,以及必须取自辅助(右)图像。然而,附加图像没有全部发送,以便减小传输带宽并减小呈现设备中的处理。代替地,如图13所示,发送基本图像(图13A)和按像素深度的映射(图13B)(图像+深度,“2.5D”)。为了呈现来自新的点的图像,像素的主要部分再次取自基本图像。然而,现在没有用来填充空洞的辅助图像。因此,在呈现的图像上出现空洞1310(图13C),因为在中间图像上可看见的部分场景在基本图像上被阻断。如上所述,可以使用包含在基本图像中被前景物体隐藏的信息的附加层。这样,仍旧有可能使用基本图像的图像+深度表示法,但附加信息保证空洞可被填充,如图14所示。图14A和14B分别相应于图13A和B。图14C和D分别给出对于隐藏层的像素值和深度。图14E相应于图13C,其中空洞1310现在通过使用来自隐藏层的信息被填充。
生成隐藏层在视频数据的2D到3D变换中的两个基本步骤是分段和运动估计。每个分段的运动可以在随后的阶段中用于通过来自运动的结构的深度或通过动态阻断的深度排序。分析过程被显示于图15、16和17。为了说明的目的,假设所有的分段只在水平方向上运动。首先计算原先的图像的分段,并执行从原先图像到匹配图像的运动估计。原则上,分段和运动估计是熟知的,这里不作详细描述。在这种操作期间,原则上对于图12A的基本图像的每个像素,检验这个像素是否可以在图12C的附加图像中找到。如果是的话,确定运动矢量。代替执行每个像素这样的操作,也可以对相同深度的每个分段执行操作。
接着,基本图像对于附加图像的照相机位置进行运动补偿。这相当于按它们的计算的运动矢量移位分段,如图15所示。为了简化起见,运动矢量可被舍入成整数运动。为了提高精度,可以使用线性内插方案。假设基本图像相应于左眼,这给予我们提供预测的右图像、预测的分段映射和预测的深度映射(如果照相机参数是可提供的)或活动区。将会看到,对于依赖于深度的变换,通常深度和运动是等价的。现在可得出结论,某些像素不具有分配给它们的预测分段。这些是被去阻断的像素。优选地,在同一个扫描线上的随后的去阻断的像素一起被编组在伪分段中。
接着,把深度值分配给伪分段(或伪分段的各个像素)。优选地,深度是基于两个相邻的非阻断的像素的深度值而被确定的在左面和在右面。有利地,具有最大的深度的非阻断的相邻的分段/像素的深度或运动矢量被分配给阻断的伪分段。应当指出,这只需要知道深度排序。将会看到,在边界上的伪分段可被分配以它们单个邻居的深度值。这样,背景分段被扩展到去阻断的像素(即把背景分段的深度给予去阻断的像素),如图16所示。
在优选实施例中,为了减轻噪声的影响,去阻断的像素的区域首先被侵蚀,然后被扩张一个像素(形态滤波器)。这样,具有导致看来好像是去阻断的像素的错误深度的各个像素被校正。
现在对于真正被去阻断的像素,深度值是已知的。通过参照附加图像,知道这些像素的位置。优选地,按照与如上所述相同的方法,对于这些去阻断的像素进行逆运动补偿。这样,去阻断的像素对于基本图像的照相机位置进行运动补偿,以生成隐藏层和隐藏深度映射,如图17所示。结果,现在用具有参考第一图像以及深度或运动矢量的位置的去阻断像素创建隐藏层。通过表示来自第一图像的观看点的隐藏层,用于把第一图像变换成来自可选择的观看点的输出图像的变换也可应用于隐藏层,以生成来自该新的观看点的去阻断像素。来自选择的观看点的输出图像可以不同于图12C的附加图像的观看点。
可能出现在逆运动补偿后的去阻断像素不在原先的图像的范围内(在它的边界外面)。在这样的情形下,可以创建查找表来存储在隐藏层上未占用的位置处去阻断像素的数据。最后,如果去阻断像素不在原先的图像的范围内(在它的边界外面),我们可以生成查找表并存储在隐藏层上未占用的位置处的去阻断像素的数据。查找表保持该映射。
将会看到,与基本图像相比较,隐藏层通常包含相对较少的像素。代替发送作为完全的图像的隐藏层,优选地,通过使用诸如游程长度编码之类的任何适当的技术来压缩隐藏层。通过使用这样的编码方案,可以用基本图像外面的坐标来包括具有去阻断像素的基本图像的边界。
将会看到,虽然描述了用于固定的立体照相机的方法(其中基本图像用左照相机记录而附加图像用右照相机记录),但相同的技术也可以应用于其它情形。例如,有可能把该技术应用到用活动照相机拍摄的场景。这实际上生成在原先的图像中不存在但在匹配的图像中存在的、包含所有的场景信息的隐藏层(在这种情形下,运动估计不是在来自不同的观看点的两个同时记录的图像之间,而是在时间顺序图像之间)。然后,运动至少部分由照相机的运动引起。类似地,深度信息可以根据图像的时间序列从运动的物体得出。
也将会看到,虽然本发明被描述为用于水平运动,但同样的技术可被应用于垂直或任意运动。
呈现附加图像用于呈现附加图像的基本过程优选地类似于基本图像的第一层的呈现被执行。如上所述,来自另一个观看点的呈现可被看作为将原先的图像重新采样到由来自想要的观看点的投影所施加的采样网格。如上所述,在观看点变换后,投影的输入像素的密度在输出域中不是均匀的。因此,需要重新采样过程。在重新采样过程期间,遇到被缩小或被阻断的原先的图像的区域,或遇到被放大或被去阻断的区域。在其余部分,给出呈现由于观看点变换而被放大的区域的优选的方法的说明。放大的区域可以用来自隐藏层的输入填充。所描述的呈现方法具有适度的恶化,以及还可以支持用于在想要的观看点呈现去阻断的区域的高阶重建视频滤波器的集成。在其余部分,假设隐藏层中的特性是在基本层的坐标框架中规定的,允许在上述的用于单个分层的2.5D视频序列的呈现过程内隐藏层的呈现的集成的简单的方法。本领域技术人员将能够调整该方法,如果隐藏层以不同的方式被规定的话。在说明中,也假设呈现的图像的观看点是处在那些原先的和匹配的图像之间,从而给出最高的质量。原则上,如果不是这种情形,也可以使用该方法。然而,重建滤波器于是对于最后的图像的放大区域起到主要的作用。
在说明中,也假设通过照相机的水平变换达到新的观看点。这意味着重新采样过程只需要处理水平视差,以及图像的每条扫描线可以分开处理。简言之,呈现过程包括-在单次扫描中遍历输入扫描线。
-保持在处理扫描线期间以单个变量呈现输出扫描线的范围;这个范围单调增加,即呈现者永远不必重新呈现输出扫描线的部分。
-在遍历扫描线期间对每个输入图像像素计算放大因子。
-出现阻断的像素可被丢弃;其它像素可以立即馈送到FIR视频滤波器块,该FIR视频滤波器块对输出扫描线预滤波并以屏幕分辨率(输出图像的分辨率)采样输出扫描线。
可以指出,当有相对较大的放大因子时只需要来自隐藏层的样本。在优选实施例中,阈值被设置为1.5的放大倍数。对于较低的放大倍数,没有信息从隐藏层被恢复;对于较高的放大倍数,有信息(如果可提供的话)从隐藏层被恢复。
为了能够有效地从隐藏层填充贡献,最好交织处理基本图像层和隐藏层。对于这两种扫描,保持输出扫描线范围。如上所述,该范围是“在变换后最远的x坐标”。基本图像的范围被称为base_extent;隐藏层的范围被称为hidden_extent。在以下的伪代码中,变量“extent”表示在输出图像中变换到达的最远的范围,其中这个位置由来自基本图像或来自隐藏层的像素覆盖。这样,仅仅在基本图像扫描线上的单次扫描与在隐藏层图像扫描线上的单次扫描交织地执行。以下的伪代码表示用于从照相机观看点到输出图像的更加左面的观察点的变换的交织扫描的处理。
呈现扫描线
初始化1.base_extent=02.hidden_extent=03.extent=0处理扫描线4.until scanline finished寻找可看见的样本4.1while base_extent<extent4.1.1(output_base_x;base_luminance)=FetchNextSample(base_layer)4.1.2if output_base_x>base_extentbase_extent←output_x4.2while hidden_extent<extent4.2.1(output_hidden_x;hidden_luminance)=FetchNextSample(hidden_layer)4.2.2if output_hidden_x>hidden_extenthidden_extent←output_x确定放大率4.3if base_extent<extent+1.5呈现基本层4.3.2Render(output_base_x;base_luminance);4.3.3extent←base_extent4.4else if hidden_extent<extent+1.5呈现隐藏层4.4.1Render(output_hidden_x;hidden_luminance);4.4.2extent←hidden_extent4.5else4.5.1Magnify以上伪代码表示一条扫描线的处理。步骤4涉及寻找在变换后不阻断的基本图像的下一个像素。只要像素被阻断(ba se_extent<extent),就在步骤4.1.1取基本图像的下一个像素,进行变换并将变换的x坐标指定给变量output_base_x。如果这增加base_extent,则在步骤4.1.2调节base_extent。如果找到在变换后不被阻断的像素,则步骤4.1的循环结束。步骤4.2对于隐藏层执行完全相同的操作。所以在进到步骤4.3时,在基本层和隐藏层找到在变换后不被阻断的像素。现在对于从基本图像呈现像素给予优先权。如上所述,这样的像素只在它不造成太大的空洞时才被使用。为此,在步骤4.3检验在变换后像素是否处在离以前呈现的像素的1.5个像素内。如果是的话,则没有太大的空洞,并在步骤4.3.2呈现来自基本图像的像素,以及在步骤4.3.3把总的范围变量设置为新的点(即设置为base_extent)。另一方面,如果空洞大于1.5个像素宽,则测试隐藏层是否具有良好的候选者(即处在离上一次呈现的输出像素小于1.5个像素的像素)。如果是的话,在步骤4.4.1取这个像素,以及将extent变量设置为hidden_extent变量的数值。如果基本图像或隐藏层都没有好的候选者,则需要放大操作(例如使用内插)。
以上给出的说明集中在其中变换只在水平方向上进行的通常的情形。本领域技术人员可以容易地把相同的概念应用到垂直变换。在任意方向上的变换可以以两个顺序的通道(水平和垂直通道)完成。如果希望这样做的话,这些通道可以交织地进行,以减小存储和带宽要求。
应当指出,上述的实施例只是说明而不是限制本发明,以及本领域技术人员将能够设计许多替换实施例而不背离所附权利要求书的范围。在权利要求书中,被放置在括号之间的任何标注符号不应当解释为限制权利要求。单词“包括”和“包含”并不排除与在权利要求中列出的不同的其它单元或步骤的存在。本发明可以借助于包括几种不同的元件的硬件和借助于适当编程的计算机被实施。在系统/装置/设备权利要求枚举几个装置的情形下,这些装置中的几个可以用同一个硬件项实施。计算机程序产品可被存储/分布在适当的介质上,诸如光学存储器,但也可以以其它形式被分发,比如经由因特网或无线电信系统被分发。
权利要求
1.一种用于通过依赖于深度的变换从与输入观看点有关的输入图像生成与输出观看点有关的至少一个输出图像的图像处理系统;该图像分别被表示为输入像素阵列和输出像素阵列;该图像处理系统包括用于接收输入图像的输入端,其中输入图像包括对于每个输入像素的相关的输入像素值和输入像素深度;每个输入像素与相应的重建滤波器覆盖区有关;用来通过以下步骤创建输出图像的输出像素的视频处理器对于每个输入像素,把输入像素值变换成变换的输入像素以作为相关的输入像素深度的函数,以及把相关滤波器覆盖区变换成变换的滤波器覆盖区以作为相关的输入像素深度的函数;以及使用变换的滤波器覆盖区来对多个变换的输入像素执行重建滤波操作;以及用来提供用于以后的呈现的输出图像的输出端。
2.如权利要求1中要求的图像处理系统,其中视频处理器用来确定哪些变换的滤波器覆盖区完全未被阻断,以及视频处理器用来根据完全未被阻断的变换的滤波器覆盖区执行重建滤波操作。
3.如权利要求2中要求的图像处理系统,其中视频处理器用来确定哪些变换的滤波器覆盖区被部分地阻断,以及重建滤波操作也是基于被部分地阻断的变换的滤波器覆盖区,其中每个部分地阻断的变换的滤波器覆盖区被分配以一个正比于变换的滤波器覆盖区的未阻断部分的加权因子。
4.如权利要求2或3中要求的图像处理系统,其中视频处理器用来确定哪些变换的滤波器覆盖区完全被阻断,以及用来仅仅对未完全被阻断的变换的滤波器覆盖区执行重建滤波操作。
5.如权利要求2、3或4中要求的图像处理系统,其中输入图像与输入观看点有关,以及输出图像与输出观看点有关,像素由x坐标和y坐标表示;视频处理器用来沿x轴以与从输入观看点到输出观看点的位移相反的方向顺序处理一行的输入像素;该处理包括保持x坐标范围,该范围表示对于相对于预定的开始位置的已处理的输入像素,已被至少一个变换的输入像素阻断的最远的x坐标,其中如果处理方向是从左到右,则最远的x坐标是最高的x坐标;以及如果处理方向是从右到左,则最远的x坐标是最低的x坐标;以及如果相关的输入像素的处理不导致增加x坐标范围,则确定一个变换的输入像素从输出观看点被阻断。
6.如权利要求5中要求的图像处理系统,其中输入端用来接收隐藏图像,其中隐藏图像包括对于每个隐藏像素的相关的隐藏像素值和隐藏像素深度;视频处理器用来确定输出像素是否从输出观看点被去阻断,以及对于被去阻断的输出像素,在变换的隐藏的图像像素上执行重建滤波。
7.如权利要求6中要求的图像处理系统,其中如果变换的输入像素x坐标范围增加到大于预定的阈值,则视频处理器用来确定输出像素被去阻断。
8.如前述权利要求的任一项中要求的图像处理系统,其中视频处理器用来通过使用方框滤波器或高阶滤波器执行重建滤波操作。
9.如前述权利要求的任一项中要求的图像处理系统,其中视频处理器用来在其中每个输出像素按照预定的滤波器形状和预滤波覆盖区被滤波的情形下执行预滤波操作;预滤波操作包括对于每个输入像素确定一组其预滤波器覆盖区与输入像素的变换的重建滤波器覆盖区相重叠的相关的输出像素,以及将输入像素的贡献提供给由相应的滤波器形状加权的所确定的该组的每个输出像素。
10.如权利要求9中要求的图像处理系统,其中像素阵列的像素行是用于在接连的显示线上水平显示,以及预滤波器形状只具有水平范围;视频处理器用来按行顺序处理输入像素。
11.如权利要求10中要求的图像处理系统,其中预滤波器形状也具有垂直范围。
全文摘要
一种图像处理系统通过依赖于深度的变换从输入图像生成输出图像。输入端1110对于每个输入像素接收相关的输入像素值和输入像素深度。每个输入像素与各个重建滤波器覆盖区有关。视频处理器通过对每个输入像素把输入像素变换1120成变换的输入像素以作为相关的输入像素深度的函数以及把相关滤波器覆盖区变换成变换的滤波器覆盖区以作为相关的输入像素深度的函数而创建输出像素。处理器还使用变换的滤波器覆盖区对多个变换的输入像素执行重建滤波操作1150。输出端1160用来提供用于以后呈现的输出图像。
文档编号H04N13/00GK1745589SQ200380107903
公开日2006年3月8日 申请日期2003年12月24日 优先权日2002年12月30日
发明者R·-p·M·伯雷蒂, F·E·厄恩斯特 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1