本申请要求以下申请的权益:(i)2012年1月4日提交的题为“Method and Apparatus to Prevent Excessive Parallax Viewing”的美国临时申请No.61/583,105,(ii)2012年1月5日提交的题为“Method andApparatus for Automatic Stereo Rendering Based on Viewing Conditions”的美国临时申请No.61/583,462,以及(iii)2012年1月6日提交的题为“Method and Apparatus for Proiding Assistance to Prevent Vergence IssuesDuring the Capture of Images”的美国临时申请No.61/584,123。这些申请中每个申请的全部内容通过引用合并于此。
具体实施方式
许多移动音频设备提供音量安全切断,以防止由于过于大声的源内容而破坏用户的收听效果。在立体观看中,看似没有类似的设备,因此并未保护观看者免受观看过度视差的不舒适体验。一种或多种实现方式提供了一种机制,限制观看过度视差。一种或多种实现方式还提供了一种机制,在以过度视差拍摄的内容上调制深度、压缩深度或转变到2D,以使所有内容回到对用户而言舒适的水平。
在立体显现中涉及视差、差异和深度。视差是至对象的两条视线之间的角度差。在立体显现的上下文中,视线起始于观看者的左眼和右眼中的每一个,进行到对象(或其一部分)的对应左眼图像视图和右眼图像视图。
差异是立体图像对的左眼图像和右眼图像中的每一个图像中对象(或其一部分)的位置的线性差。差异可以表示为物理度量(例如,以厘米为单位)或以图像相关度量来表示(例如,以像素为单位或者表示为图像宽度百分比)。当已知所显示的图像的尺寸时,在这两种形式之间进行转换是可能的。
可以根据视差来确定在立体显现中感知到的深度。然而深度与差异和视差三角相关,而不是线性相关。如以下描述的,图1中以视距(D)示出了深度,并且深度可以在理论上从零到无限。
如上所述,视差、差异和深度这三种度量是相互可推导的。在广义上来说这三种度量都可以被看作是“深度”的度量,在本申请中将这三种度量看作是“深度指示符”。除非另外要求,否则在本申请中将这三种度量看作是可互换的。以下在下面的表1中提供了这三种度量之间的对应关系的简要示例。
表1
图1示出了情形100,其中观看者110正在观看屏幕120上的立体显现,并且感知到特定对象130,对象130与观看者的视距(D)是由视差(θ)引起的,视差(θ)是由物理差异(dP)、观看距离(V)和观看者的瞳孔间间隔(tE)引起的。
为了说明和描述的简洁性,示出了情形100,其中左视线131和右视线132与观看者左眼111和右眼112之间的连线一起形成直角三角形,所述连线长度为(tE)。此外,为了简洁起见还认为所述连线与屏幕120平行。
在示例情形100中,物理差异(dP)有一些约定,本文中认为物理差异(dP)是负的,并且只要对象的左眼图像在对象的右眼图像左侧其就是负的。
在情形100中,视差角度(θ)是正的,并且对于大于(-tE)的所有(dP)值都是正的。当视线131和132平行时视差(θ)将会是零(图1中未示出),在这种情况下对象130将看上去处于无限距离(D=∞)处。如果屏幕120上显示的对象的物理差异(dP)是负的并且大小等于观看者的瞳孔间距离(即,dP等于-tE),情况也是如此。
存在一些情况,在这些情况下,可以通过显现立体图像对来显示视差(θ),其中对象130的左眼图像和右眼图像具有小于(-tE)的差异。在这些情况下,视差变成负的,此刻屏幕120对对象130的显现不再具有意义,并且视差(θ)变成负的。在这种情况下,几何上视线131、132将会在观看者110后面相交,但是对象130的图像仍出现在屏幕120上,从而产生人类视觉系统不喜欢的矛盾。
只要物理差异是至少(-tE),对应于至少为零的视差(θ),当视差正向变大时,即,在观看对象130时左眼进一步向右转和/或右眼进一步向左转,对象看上去离观看者更近。随着视差正向变小,对象130看上去更远。在差异为零时,对象看上去与观看者之间的距离跟与屏幕之间的距离相同(D=V)。
瞳孔间间隔(tE)、从观看者到屏幕的距离V、物理差异(dP)和对象与观看者的视距(D)之间的关系可以由等式来描述,所述等式是通过检查图1的类似三角形而得到的(再次说明,情形100中dP的符号是负的):
等式1:dP=-tE(D-V)/D
其中求解D,得到:
等式2:D=tEV/(dP+tE)
再次说明,在来自上述内容的约定中,正物理差异dP将对象的左眼图像放在对象的相应右眼图像的右侧。因此,等式2出现五种感兴趣条件:
1.当dP为正时,(dP+tE)大于tE,D小于V。也就是说,以正物理差异显示的对象将看上去比屏幕离观看者更近。例如,如果tE=dP,则D将等于V/2,导致对象看上去在观看者与屏幕之间的一半长度处。
2.如果dP为零,则D等于V。也就是说,具有零差异的对象将会出现在屏幕处。
3.当dP为负但大小小于tE时,如情形100所示,则D大于V。也就是说,对象将出现在屏幕后面。
4.如果dP等于-tE,则对象会出现在无限处。
5.如果dP比tE负向更大,则会出现以上结合负视差提到的矛盾。也就是说,等式1表明D是负的,这意味着对象出现在观看者后面,即使对象的图像在屏幕120上出现在观看者前面。由于人类看不到他们后面的对象,所以这种显现可以导致感知冲突,这种感知冲突典型地是应当避免的。
物理差异(dP)与立体图像对的图像所固有的差异(di)和屏幕的尺寸(S)成比例。随着屏幕的尺寸(S)变大(立体图像的尺寸随之变大),具体的固有差异(di)将产生更大的物理差异(dP)。
等式3:dP=di×S
其中将di表示为图像宽度的几分之一。将其与等式1结合得到:
等式4:D=tEV/(di×S+tE)
因此,对于以固有差异(di)示出对象的具体立体图像,通过改变观看者与屏幕的距离(V)和/或屏幕的尺寸(S)来改变对象与观看者的视距(D)。
此外,尽管瞳孔间间隔(tE)对于个人来说在长时间内是基本恒定的,然而群体内的个人可能大致不同,尤其是在成人与儿童相比的情况下。
从以上论述和等式中应当清楚:(i)所有这些度量都是可以根据其他度量计算出来的,以及(ii)视差、差异和视距全都是相互关联的。在一些实施例中,运用这些等式时,可以针对特定元素,例如,瞳孔间距离(tE)、屏幕尺寸(S)和/或观看距离(V),使用预定的“默认”值,使得其他值(例如,距离D)可以以偶然的方式出现,其中终值可能取决于实际值与默认假定之间的差异程度。
有用的是注意到图1中关于视差的论述是近似的。通过假定一条视线是垂直的,使计算更简单,并且使变量的数目更少。垂直的视线导致在右眼112处视线与瞳孔间间隔tE之间成直角。还近似假定头部面对屏幕,这导致眼睛的基线与屏幕的平面平行(即,眼睛与屏幕等距)。头部平直地面对屏幕典型地是良好的假设,因为在观看情形中考虑什么可能出错时这将是核心情况。这样,在以平直面对作为中间条件的情况下,任何头部转动都会导致方向的偏离。当tE相较于V较小时,即,Δ较小时,通常认为这种近似是可接受的,因为典型地认为sin()和tan()在该区域中是非常线性的。
上述三个度量分别具有优点。典型地认为视差最接近人类大脑实际感知3D的方式。典型地认为深度最恰当描述了实际场景。差异精确描述了屏幕上发生了什么。例如头部转动、观看者相对于屏幕移远或移近或者屏幕尺寸改变等许多变量可能影响深度和视差,但影响不显著(至少不是与图像尺寸成比例那样显著)。还应当清楚,可以直接控制和修改差异。
注意本申请中论述的许多实现方式涉及减小视差值。频繁使用这种说法是因为令人不舒服的视差值通常对应于其中对象比屏幕离观看者更近的3D效果。这种情形涉及过大以至于不舒适或不安全的视差值。然而应理解,如果例如认为视差值过小,则所有实现方式都可以用于增加视差值。通常,实现方式将针对超发散和超收敛提供安全和/或舒适水平,如以下说明的。
图2示出了用于显现立体图像并确保视差不超过安全值的系统或装置200的系统框图。
在图2中,视差计算器(204)确定针对超收敛和超发散的峰值视差值。计算基于左图像(201)和右图像(202)的组合,或者依据预先呈现的深度图(203)。应理解,视差计算器204在许多实现方式中确定的是最小和最大峰值差异或深度,而不是视差。
为此,视差计算器(204)基于提供的差异或深度信息(如,利用预先呈现的深度图203)或者通过分析对应对象图像201、202之间的差异,来确定最大视差角θMAX。同样,也找到最小视差角θMIN。
在多种实现方式中,使用差异直方图来评估最大和最小差异。
需要显示信息(205),所述显示信息(205)指示显示器的尺寸和观看条件(例如,观看距离、期望的观看者瞳孔间距离)。显示信息(205)可以来自于手动输入、从显示器的反馈、预设的或其他来源,如,眼睛跟踪。视差计算器204可以结合等式2或等式4使用显示信息205。
通过用户、工厂预设或其他机制来输入针对观看而言的舒适阈值(206)。舒适阈值(206)可以是在以下方面的:最小和最大差异(物理的或固有的)、最小和最大视距物距(深度)和/或最小和最大视差角。备选地,舒适阈值(206)可以由示例来提供,例如,观看者可以指示测试图像的显示何时变得不舒适并且可以记录显著的阈值。例如可以基于所记录的阈值(例如,差异值)来设置舒适阈值。示例包括:(i)将舒适阈值设置为所记录的阈值,(ii)将舒适阈值设置为观看者指示不舒适之前一帧或两帧的“深度”(例如,差异)值,或者(iii)将舒适阈值设置为比所记录的阈值略微“安全”的值,例如,对于差异值而言,将舒适阈值设置为所记录的差异阈值的绝对值的90%。
视差阈值计算器(207)从(205)和(206)获得输入并确定内容的最小和最大可允许视差(θMIN_THRESHOLD,θMAX_THRESHOLD)。应理解,视差阈值计算器207在多种实现方式中确定的是最小和最大可允许差异或深度,而不是视差。类似地,安全计算器(208)将阈值(207)与实际内容峰值(204)相结合并确定是否需要动作。在最简单的情况下,安全计算器208可以是比较器,当θMAX>θMAX_THRESHOLD时触发或当θMIN<θMIN_THRESHOLD时触发。更复杂的确定方式典型地使用处理器并且可以考虑持续时间,例如,当θMAX>θMAX_THRESHOLD超过预定的时间量时触发,或者当θMAX超过θMAX_THRESHOLD的角度的时间积分超过预定值时触发。这种更复杂的确定方式将允许识别出观看者可以容忍瞬时的视差偏移,而在持续不变的情况下并不在意相同的极值。
其他实现方式还可以考虑具有视差(或差异或深度)偏移问题的显示器的一部分。例如,一种或多种实现方式在较大对象具有给定阈值以上的差异时触发违反。称作“较大”的对象的尺寸可以例如设置为默认值、由用户设定或者设置为显示器尺寸的特定百分比。
其他实现方式还在确定是否出现视差违反时考虑对象的运动。运动的对象通常具有较高的视差值和/或较高的视差值变化速率。在多种实现方式中,通过考虑视差绝对值和视差变化速率两者来捕获这方面。这种实现方式基于以下判定:判定在绝对值和变化速率这两个因素方面是否发生视差违反。这种实现方式典型地包含另一模块(图2中未示出)以估计运动。在多种实现方式中,提供运动估计模块的输出作为至安全计算器208的输入。
当安全计算器208需要动作时,动作可以采用以下形式:由立体内插器(209)提供立体内插,以将视差极值限制为阈值(207);或者切换至2D输出(210),以防止观看过度的内容。
在不同实现方式中,内插是局部的或全局的。特定的实现方式在对大可允许值处对差异的绝对值进行剪裁,这是仅对违反阈值的对象加以影响的局部操作。其他实现方式仅对违反阈值的对象的差异进行内插,这也是局部操作。其他实现方式将整个图像的差异按比例减小,这是全局操作,影响整个图像的差异(可能具有零差异的对象除外)。
本公开的选择是提供一种立体源缓冲器(211)和立体混合器(212),以提供立体源内容(201,202;来自211)与内插的立体输出(来自209)或2D输出(来自210)之间的更平滑转变。在图2中,双线指示立体信号路径(即,模块209-212的输出),而并没有如此指示非立体信号路径(即,源201、202的输出)。
至少,立体源缓冲器211在实时信号路径中提供了足够的等待时间,以至于安全计算器208能够在显现令人不愉快的立体源内容之前指导必要的动作。例如,在多种实现方式中,立体源缓冲器211包括充分的存储器或缓冲器长度以允许系统200(i)识别安全阈值和/或舒适阈值的违反,(ii)校正所述违反,以及(iii)对转变进行平滑。
在一个实施例中,立体内插器209从缓冲器211获得立体图像并计算新立体图像对,所述新立体图像对然后被提供至立体混合器212,所述立体混合器212优先于来自缓冲器212的未修改的立体流来使用所述新立体图像对。新立体图像对表示相同的场景,但是以更小极值的视差来显现该场景。视差减小的极限程度可以由安全计算器208来传送,或者在一些实施例中可以是预定的减小。
在另一实施例中,2D输出模块210接受来自缓冲器211的立体内容,并在安全计算器208以信号通知时复制立体图像对的左眼图像或右眼图像以替换另一只眼睛的图像。因此2D输出模块210提供2D图像对作为输出,所述2D图像对是其中左眼图像和右眼图像相同的图像对。按照这种方式,视差被完全压制,从而得到不包含差异的立体图像,即,看上去完全是2D的图像。当提供了2D输出210时,立体混合器212将优先于来自缓冲器211的未修改的立体流来使用2D输出210。
在另一实施例中,立体内插器209和2D输出模块210均可以由安全计算器208来信号通知,立体混合器210根据策略在源209-211之中逐渐进行衰减。
在另一实施例中,模块209-211可以连续地产生各自的输出。此外,可以由安全计算器208来命令立体混合器212从中选择。
在一些实施例中,立体源缓冲器212可以足够大,以至于允许从左眼图像201和右眼图像202提供的完全立体的内容逐渐转变到视差限制内容(无论是内插的立体图像还是2D呈现)。
在一个示例中,缓冲器211保持10个帧。当正在示出第一帧时,安全计算器208确定第10帧超出了限制。然后针对第二帧至第10帧调用立体内插器209,以逐渐在这9个帧上引入适当的校正,从而在不违反限制的情况下显示第10帧的内容。
在另一示例中,缓冲器211仍保持10个帧。然而缓冲器211中的第一帧被安全计算器208标记为违反了安全或舒适阈值。因此,提供相称的校正(例如,由立体内插器209来提供)。缓冲器211中的其他帧不需要任何校正。因此,在后续的帧上逐渐消除提供给第一帧的校正。在这种情况下,立体混合器212配置为当提供了来自立体内插器209的图像时,示出所述图像来代替来自立体源缓冲器211的对应图像。
在另一实施例中,立体源缓冲器211同样保持10个帧,第10帧中的3D效果被安全计算器208标记为违反安全或舒适阈值。作为校正(修改),仅为第10帧提供2D输出210。然而,通过以来自2D输出210的相应版本对完全立体图像2至9进行交叉衰减,使转变减弱。交叉衰减由混合器210例如通过从立体源缓冲器211获得部分贡献并从2D输出210获得共轭的部分贡献来产生。在一个实现方式中,来自立体源缓冲器211的部分贡献起始于90%,来自2D输出210的部分贡献起始于10%,因此贡献总计为100%。此外,2D输出210的贡献逐帧增加,而立体源缓冲器211的贡献以对应的方式逐帧减小,使得对于每一帧来说总计为100%。结果是到第10帧时,立体输出213是100%2D输出210。
在这样的实施例中,立体混合器212可以配置为当来自2D输出210的图像变成可用时自动开始衰减。备选地,衰减的使用和程度可以由来自安全计算器208的控制信号(未示出)来控制。
在另一实施例中,立体混合器212提供来自立体源缓冲器211的信号。安全计算器208将帧10标记为违反安全或舒适阈值。因此,立体混合器212开始在若干帧(例如,帧2至5)上衰减成黑色。然后立体混合器212切换到2D输出210作为源,但是在帧6至9上从黑色开始衰减。然后帧10在淡入之后被示出,但是仅以2D形式示出。
这些使得向修改后的立体呈现或者从修改后的立体呈现的转变减弱的技术具有不同的美学效果。因此,可以基于观看者偏好、观看者简档等来选择或调整这些技术。
然后将得到的原始立体源(201,202;来自211)、内插的立体图像(来自209)和/或2D内容(来自210)的组合发送至立体输出(213)以供观看。
在简单的实施例中,安全计算器208可以简单地命令2D输出模块210将左眼图像和右眼图像中的一个复制到另一只眼睛中,并作为立体输出213来提供。
本公开的另一选择是在观看之前将该过程应用到整个立体内容,以便提供更高质量内插、更平滑的转变或两者。
图3示出了防止过度视差观看的过程300,该过程300起始于301处,其中,将显示信息205和用户舒适阈值输入206提供给阈值计算器207,存储得到的阈值和相应的策略信息320。左眼图像201和右眼图像202依次可用作为立体源321。立体源321还可以包括深度图203,如果提供了深度图203的话。
在步骤302,获取阈值信息320。在步骤303,获取立体源(即,左图像201、右图像202)以用于处理。在步骤304,视差计算器204根据立体源302确定视差极限。
在步骤305,安全计算器208确定在步骤204获得的视差极限是否在阈值信息320的限制之内。如果是,即,如果没有安全违反,则在步骤307提供来自立体源的图像作为输出以供观看。否则,在步骤306,也由安全计算器208来确定使用立体内插还是仅通过将输出强制为2D来消除过度的视差。
确定步骤306的示例可以是:对于阈值信息320中视差极限的略微违反,使用立体内插,而对于视差极限的更严重违反,使用2D输出。至于什么构成视差极限的轻微和严重违反,可以在阈值信息320中作为策略来给出。
在确定是使用内插立体输出还是2D输出的过程中,多种实现方式使用许多不同策略判定。多种实现方式中使用的策略判定的示例包括以下中的一个或多个:(i)如果视差超过舒适水平多于阈值,则切换到2D而不是内插,(ii)如果对象在正视差和负视差方面均超过舒适水平,则切换到2D而不是内插,和/或(iii)如果视差在舒适水平以上并且检测到高运动水平,则切换到2D而不是内插。
切换到2D的基本原理可以针对不同的实现方式而不同。特定的实现方式出于质量原因、速度原因和/或复杂度原因而切换到2D。例如,当视差过度时,使视差回到舒适水平内所需的内插通常是耗时的(速度原因)或者需要相当大的处理功率和/或存储器(复杂度原因)。此外,这种内插能够由于封闭(occlusion)而劣化图像质量(质量原因)。
如果在步骤306确定使用立体内插,则过程300进行到步骤308,在步骤308中立体内插器209处理立体源(图像301、302)以产生立体内插作为输出以供在步骤309观看。
否则,2D输出模块210例如通过将立体源(图像301、302)的一只眼睛的图像拷贝到另一只眼睛的图像来产生不具有差异的立体图像对,从而有效地产生2D图像,但是以立体格式产生。在步骤310,输出立体格式的2D图像以用于观看。
可以针对立体源321中的每一个立体图像来重复步骤304-311(图3中未示出)。在通过步骤307、308或309输出了最后一个立体图像对或其内插或2D替换之后,过程300在步骤312终止。
在过程300的一些实施例中,可能仅提供补救过度视差方式(内插和2D输出)中的一种方式,在这种情况下没有步骤306,使用唯一提供的补救方式(步骤308/309或者310/311)。
操作307、309和311由例如立体混合器212来执行。在多种实现方式中,立体混合器212还执行图3中未示出的平滑操作(但是参见图4和图5)。在本申请中使用平滑来表示例如修改深度(或深度指示符)的转变,使得转变不那么大。这常常称作滤波操作。
平滑操作可以应用于例如视差、深度或差异。在多种实现方式中,在空间域和/或时间域执行这种平滑。
首先来讨论时间域。在多种情况下,立体混合器212确定将在以下之间提供平滑:(i)从3D(原始的或内插的)转变到2D,(ii)从2D转变到3D(原始的或内插的),(iii)从原始3D转变到修改后的3D,和/或(iv)从修改后3D转变到原始3D。注意,在多种实现方式中,修改后的3D典型地反映了针对图像对的相关部分减小深度指示符或增大深度指示符的修改。
平滑操作可以采用一种或多种形式。以下实现方式示出了多种平滑操作。
-如果立体混合器212从3D(原始3D或修改后3D)转变到2D,则立体混合器212通过使用例如立体内插器209逐渐软化(soften)视差直到达到2D或直到达到阈值,来对转变进行平滑。多种实现方式使用视频序列的连续图像的线性减小、使用抛物线减小或使用指数减小来逐渐软化视差。这些技术避免了视差的突然改变,因为这种突然改变可以频繁引起观看不舒适或至少对较差质量的感知做出贡献。在这些实现方式中,平滑继续进行,直到例如(i)达到2D,(ii)视差减小到2D的阈值之内,在这种情况下进行平滑然后切换到2D,或者(iii)视差返回到舒适水平,在这种情况下立体混合器212然后切换到原始3D(可能也针对这种转变执行平滑,如以下所述)。将平滑应用于多个图像上特定对象的视差(例如或深度或差异)。
-一种具体实现方式使用立体内插器209将多个连续图像对中的每一个图像对中的差异的绝对值减小50%。这些减小继续进行,直到差异的绝对值在阈值零之内,此刻立体混合器212切换到2D。其他实现方式通过在多个连续图像对中的每一个图像对上差异绝对值的线性恢复来减小视差效果。这些减小也继续进行直到差异的绝对值在阈值零之内,此刻立体混合器212切换至2D。这些是在多个连续图像对上发生的时间平滑的示例。这些也称作迭代平滑或逐渐平滑。
-如果立体混合器212从2D转变到3D(原始3D或修改后的3D),则立体混合器212通过逐渐增大视差直到达到期望的视差来对转变进行平滑。多种实现方式使用线性增大、抛物线增大或指数增大来逐渐增大视差。这些技术避免了视差的突然改变,如上所述,因为这种突然改变常常会引起观看不舒适或至少对较差质量的感知做出共享。在这些实现方式中,平滑继续进行直到(i)达到期望的3D,(ii)视差增大到期望3D的阈值之内,在这种情况下进行平滑然后切换到期望的3D,或者(iii)视差再次跳跃足够高以至于立体混合器212确定提供2D(也可能针对这种转变执行平滑,如上所述)。
-一种具体实现方式使用立体内插器209将多个连续图像对中的每一个图像对中的差异的绝对值(局部地或全局地)增大50%。这些减小继续进行,直到差异在差异的最大绝对值的阈值之内,此刻立体混合器212切换到3D。另一种实现方式通过在多个连续图像对中的每一个图像对上差异绝对值的线性恢复(增大)来增大视差效果。这些增大继续进行直到差异在原始立体图像中的满值的阈值之内,此刻立体混合器212切换至3D。这些是在多个连续图像对上发生的时间平滑的示例。这些也称作迭代平滑或逐渐平滑。
-多种实现方式在3D值之间转变。这包括例如(i)从原始3D转变到修改后的3D,(ii)从修改后的3D转变到原始3D,和/或(iii)从修改后的3D转变到不同的修改后3D。起始3D值可以在安全/舒适水平内或者不在安全/舒适水平内。这些实现方式修改差异以实现修改后的3D。修改后的3D也可以在安全/舒适水平内或者不在安全/舒适水平内。例如,特定的实现方式逐渐地平滑过度的差异(其在安全/舒适水平之外),但是逐渐平滑的结果是修改后3D值中的至少一些仍然在安全/舒适水平之外。一个这样的实现方式逐步减小差异的绝对值,但是这种逐步减小的值并不落入安全/舒适水平以下,直到多个步骤之后。
应当清楚,对于给定的立体图像对,立体图像对中的不同对象将具有不同的差异值。相应地,在许多平滑中,仅对图像中对象的子集执行平滑。例如,在整个图像对的差异绝对值的初始减小之后,许多对象将在2D阈值或与减小后的3D相对应的阈值之内。随后,随着平滑操作的继续,仅会对差异绝对值在阈值以上的对象执行差异绝对值的后续减小。注意到,多种实现方式首先应用全局减小(例如,50%),然后在这种50%减小之后局部地减小对象的仍然在阈值以上的差异绝对值。
平滑操作在视频序列的多个立体图像对上时间扩展。多种实现方式使用更多或更少的时间或图像对来执行平滑操作。可以例如通过用户偏好来在时间或图像对数目方面确定执行平滑的速度。
多种实现方式访问例如由用户、用户简档或默认值提供的调节等级作为输入。在本上下文中,调节等级用于确定修改给定图像(或图像的一部分)的程度。例如,在多种实现方式中,调节可以是0和1之间的任意值,其中0意味着无差异(=2D),1意味着完全(原始)3D。0在某种意义上对应于最强修改,1对应于最弱(即,零)修改。在0和1之间,修改(例如,内插)减小了差异的等级。同样可以以时间的方式使用这种修改来平滑地从3D(原始或修改后的)到2D(反之亦然)。也可以使用这种修改从3D(原始或修改后的)到另一3D(原始或修改后的)。还可以将调节等级应用于空间平滑,以空间上规定修改等级。此外,还可以将调节等级应用于增加差异的绝对值,例如,其中0指示无改变,1指示最大改变。
应清楚,在多种实现方式中可以使用梯度来引导时间平滑过程。例如,将梯度确定为图像之间对象视差(例如或深度或差异)的变化速率。特定的实现方式还至少部分地基于(例如)视差变化速率来限定安全/舒适水平。多种实现方式在时间上平滑(例如)对象的视差,足以使视差降至安全/舒适区域内的绝对水平和/或降至使先前图像到当前图像的视差变化速率在安全/舒适区域内的水平。
现在解决空间平滑,即,在空间域的平滑。在多种情况下,因为例如进行了(例如)局部视差修改,立体混合器212确定要在给定的图像内提供平滑。由于局部修改,对于使观看者感到不舒适的图像的一部分可能存在深度转变。深度转变通常指的是对象的深度转变。
空间平滑可以采用一种或多种形式。以下实现方式说明了多种平滑操作。
-多种实现方式确定:如果对象的深度转变超过了阈值,则应用局部/空间平滑。这可以发生在例如修改了对象的视差但是没有修改对象周围区域的视差的情况下。
-多种实现方式确定内插区,所述内插区被定义为从对象延伸预定数目像素的区域。如果内插区围绕图像中间的对象,这种内插区可以类似于环形物。然而,如果例如对象毗邻图像边缘,这种内插区可以具有不同的形状。
-多种实现方式逐渐调节内插区中像素的(例如)视差,从对象的视差值到与内插区外部相邻的像素的视差值。在多种实现方式中,内插可以是线性的、抛物线的或指数的。
-多种实现方式使用上述内插区来避免例如对象和与对象相邻的区域之间视差的突然改变。例如基于(例如)视差的已有梯度(即,在没有平滑的情况下的实际差值)、所需的视差梯度以及显示器的尺寸来确定内插区的尺寸(宽度,典型地以像素为单位)。在一种实现方式中,对象在图像中间附近,由于视差的修改,从对象到对象周围的区域存在视差的突然改变。为了平滑该对象的深度转变,在紧围绕对象的区域中限定宽度为10个像素的内插区,视差从对象的视差值向与内插区外部相邻的区域的视差值逐渐倾斜。
-多种实现方式在内插区内,在内插区“内”边缘上的对象视差值与跟内插区“外”边缘相邻的区域的视差值之间执行线性倾斜。
在许多实现方式中,内插区将围绕(例如)视差已被修改的对象。此外,内插区的外边缘将与尚未修改的区域相邻。然而在特定实现方式中,这两个边缘均在安全/舒适水平之内。根据针对对象的视差执行的修改的程度,可以对将会使观看者感到不舒适和/或降低图像感知质量的深度转变有各种显著影响。
多种实现方式定义了在例如0与某一正整数之间的调节等级。可以将调节等级设置为例如在0(指示不进行调节)和5(指示进行最大调节)之间的值。在特定实现方式中,将调节等级与内插区相结合,从对象的等级向内插区周围区域的等级调节视差(或深度或差异)。如果等级是5,则在与内插区邻近的两个值之间完全调节视差(例如)。然而,如果等级在0和5之间,则从对象的值向内插区周围区域的值仅部分地调节(例如)视差。因此,仍然存在转变,但是转变不像原来那么大了。
还应清楚,平滑是内插的一种形式,典型地使用内插来影响内插区内的视差改变。因此,在图2的多种实现方式中,立体混合器212指示立体内插器209执行所需的平滑。在这样的系统中,还从单元210向立体内插器209路由2D输出。
特定的系统不执行内插。而是,特定的实现方式提供原始3D,或者在超过舒适水平的情况下提供2D。这些实现方式中的一些还提供3D到2D的转变与2D到3D的转变之间的平滑。
参考图4,提供了能够执行平滑的立体混合器的实现方式。图4包括立体混合器412,其是图2的立体混合器212的实现方式。
立体混合器412包括平滑处理单元420。在多种实现方式中,平滑处理单元420包括滤波器或处理器以执行平滑操作和算法。
平滑处理单元420耦合到用于存储图像的图像存储单元430。图像存储单元430中存储的图像包括例如已被图2的系统200处理过的立体图像序列中的图像。图像存储单元430中存储的图像可以是在时间上比正在处理的当前图像更早出现的图像。附加地或备选地,图像存储单元430中存储的图像可以是在时间上比正在处理的当前图像更晚的图像。具体地,迭代操作的特定实现方式可以访问在时间上比正在处理的当前图像更早或更晚出现的图像。
平滑处理单元420还耦合到规则存储单元440。规则存储单元440存储规则,规则可以包括平滑处理单元420执行的平滑中使用的任意参数。这样的参数包括例如与时间平滑相关的参数、与空间平滑相关的参数、标识了平滑处理区的参数、标识了滤波器或提供滤波参数的参数。以下描述了这些参数中的多种参数。
平滑处理单元420还耦合到图2中描述的立体内插器209、2D输出模块210和立体源缓冲器211。平滑处理单元420按照与针对图2的立体混合器212所述的方式相类似方式与立体内插器209、2D输出模块210和立体源缓冲器211交互。
平滑处理单元420还耦合到立体输出213。平滑处理单元420按照与针对图2的立体混合器212所述的方式相类似方式与立体输出213交互。
平滑处理单元420操作用于执行多种平滑操作。以下参考图5和与图5相关的附加实现方式来描述这些平滑操作中的多种。
参考图5,提供用于对深度转变进行平滑的过程500。应理解,深度转变也称作差异转变并且包括差异转变。深度转变可以例如作为照片内的空间转变或作为多幅照片上的时间转变而出现。
空间深度转变的示例包括从例如高差异的区域向相同图像中具有低差异的单独区域的转变。在不同情况下,空间深度转变是逐渐转变或突然转变。
时间深度转变的示例包括从序列中的第一幅图像向序列中的后续图像的转变。存在在从第一幅图像向后续图像转变时发生的频繁多次深度转变。典型地针对在第一幅图像和后续图像中均出现的特定对象来跟踪深度转变。因此,对于在第一幅图像和后续图像中均出现的给定对象,该对象在第一幅图像和后续图像中的每一个中将具有相应的深度。对象的时间深度转变指的是从第一幅图像到后续图像的对象深度改变。如果对象的深度在第一幅图像和后续图像中相同,则时间深度转变可以是例如平坦的,如果从第一幅图像到后续图像有少量的深度改变,则时间深度转变可以是逐渐的,或者如果从第一幅图像到后续图像有大量的深度改变,则时间深度转变可以是突然的。
过程500包括确定对象的深度指示符在范围之外(510)。在过程500的具体实现方式中,操作510包括:确定视频序列的立体图像对中的对象的深度指示符在目标范围之外。
深度指示符是深度、差异或视差的指示符。深度指示符的示例包括:深度、差异或视差的值;或深度、差异或视差的范围。在多种实现方式中,所述值或范围由数值或数值范围、颜色或颜色范围、尺寸或尺寸范围(例如,直方图中的条形)来指示。
例如,通过例如确定违反了视差极限的操作305来执行操作510。操作510例如由安全计算器208来执行。
过程500包括修改一个或多个图像,使得深度指示符在范围之内(520)。在过程500的具体实现方式中,操作520包括:修改立体图像对的一个或多个图像,使得对象的深度指示符在目标范围之内。
通过内插立体源的操作308或者通过将一只眼睛的图像复制在另一只眼睛的图像中的操作310来执行操作520。操作520例如由图2的立体内插器209来执行(例如,执行操作310)。操作308通过内插来修改图像。操作310通过将图像替换成2D版本,即,通过将立体图像对的一个图像替换成立体图像对的另一个图像的拷贝,来修改图像。
过程500包括可选步骤:平滑对象的深度转变(530)。在过程500的具体实现方式中,操作530包括:平滑对象与序列的另一部分之间的深度转变。操作530例如由立体混合器212和/或立体混合器412来执行。
现在将描述过程500的实现方式的多种示例。这些示例是说明性的而不旨在是排他性的。
-多种实现方式能够使通过至少部分地将立体图像对替换成2D图像对来执行修改操作520。对于具体实现方式,这种替换至少获得包括以下内容的视频序列:(i)一个或多个立体图像对,其具有非零差异,并且其深度指示符在整个图像对的目标范围之内;以及(ii)一个或多个2D图像对。
-多种实现方式确定深度指示符超过阈值在目标范围的外部。这些实现方式中的一些然后基于对超过阈值的确定来确定用2D图像对来代替立体图像对。
-多种实现方式对修改后的3D图像对进行平滑。3D图像对是立体图像对。修改立体图像对的一个或多个图像,使得对象的深度指示符在0与先前立体图像对中相应对象的深度指示符的值之间。
-多种实现方式对2D图像对进行平滑。2D图像对是两幅图像均相同的图像对,因此不产生3D效果。通过将立体图像对替换成包括对象的2D图像对,来修改立体图像对的一个或多个图像。
-多种实现方式在空间上进行平滑。例如,特定的实现方式对立体图像对中的对象与立体图像对中的区域之间的深度转变执行平滑。在一些实现方式中,所述区域与对象相邻。
-多种实现方式在时间上(或者在空间和时间两者上)执行平滑。例如,特定的实现方式对立体图像对中的对象与视频序列的单独图像对中的相应对象之间的深度转变进行平滑。在多种实现方式中,所述单独的图像对在视频序列中出现在立体图像对之前,和/或在视频序列中出现在立体图像对之后。在多种实现方式中,在立体图像对中和/或在单独的图像对中执行平滑。此外,在具体实现方式中,所述单独的图像对是立体图像对和/或2D图像对。
-多种实现方式在空间上、在时间上或者在空间和时间两者上执行一种或多种平滑技术。在特定实现方式中,执行平滑直到深度值是负的梯度在目标梯度范围内。特定实现方式确定执行平滑的平滑处理区。在特定实现方式中,平滑处理区包括立体图像对内的空间平滑处理区,空间平滑处理区包括例如对象周围指定的像素宽度。在特定实现方式中,空间平滑处理区是相对于立体图像对中的图像之一而确定的。在特定实现方式中,平滑处理区包括时间平滑处理区,并且包括视频序列中的一个或多个立体图像对,其中相对于所述一个或多个立体图像对中的相应对象,对于所述一个或多个立体图像对的对象的深度指示符进行平滑。在特定实现方式中,深度值是负贯穿平滑处理区而线性改变。
-多种实现方式通过至少部分地确定深度指示符在至少预定的时间量内超过阈值,来确定对象的深度指示符在目标范围之外。
多种实现方式通过至少部分地使用交叉衰减、淡入、淡出、衰减到黑色以及从黑色衰减来执行切换。在一个示例中,场景变化涉及大的深度转变,执行以下操作来避免大的深度转变:在第一场景结束时衰减到黑色,然后在新的场景开始时淡入。
在多种实现方式中,立体混合器212在不同的输入之间切换,所述不同的输入包括2D、原始3D和修改后的3D。通常以立体开关来实现这种立体混合器。典型的立体开关还能够执行上述的交叉衰减、淡入、淡出、衰减到黑色以及从黑色衰减。
在许多实现方式中通过在立体混合器212中使用例如较大的缓冲器来促进平滑。较大的缓冲器为立体混合器212提供了时间来识别具体图像中的深度违反,从而处理所述图像中的深度违反并执行平滑。在不同实现方式中,对具体图像前面的图像、对具体图像后面的图像和/或对具体图像执行平滑。
多种实现方式在图像对违反安全或舒适阈值时通过将令人不舒服的立体图像对替换成对应的2D图像对来修改立体图像对。多种这样的实现方式可以产生视频序列,所述视频序列包括:(i)一个或多个立体图像对,其具有非零差异,并且其深度指示符不违反整个图像对的安全或舒适阈值;以及(ii)一个或多个2D图像对。这种实现方式可以提供有用的方法来符合避免过度3D的要求。多种这样的实现方式还提供可选的平滑特征。
在多种实现方式中,提供修改后的和/或平滑后的视频序列以用于以下之中的一个或多个:(i)存储,(ii)传输,或(iii)显现。例如,可以将立体输出213显现在多种显示设备中的任何显示设备上。这样的显示设备包括例如电视、计算机显示器、平板电脑或蜂窝电话。
应理解,可以以硬件、软件或其组合的形式来实现图2至5所示的单元。典型地,在一个或多个适当编程的通用设备上实现这些单元,所示通用设备可以包括处理器、存储器和输入/输出接口。本文中,术语“耦合”定义为表示直接连接或通过一个或多个中间组件间接连接。这种中间组件可以包括硬件和基于软件的组件两者。
这里所引述的所有示例和条件性语言均为了教导的目的,以帮助读者理解本公开的原理以及发明人对现有技术做出贡献的构思,应看作不会被限制为这里具体引述的示例和条件。
此外,这里对本公开的原理、方面、实施例及其特定示例做出引述的所有声明意在包括本公开的结构和功能上的等同物。另外,该等同物意在包括当前已知的等同物以及将来开发出的等同物,即所开发出来的执行相同功能的任何组件,而与结构无关。
因此,本领域的技术人员可以理解,例如这里所表示的框图展示出体现本公开的示意性电路的概念图。类似地,将理解,任何流程、流程图、状态转移图、伪代码等表现出实质上可以在计算机可读介质上表现的、并且由计算机或处理器执行的各个过程,无论是否明确示出该计算机或处理器。
可以通过使用专用硬件和能够执行适合的软件的关联软件的硬件而提供图2至图5所示的各个单元的功能。当由处理器来提供时,这些功能可以由单个的专用处理器、单个的共享处理器、或多个单独的处理器来提供,所述多个单独的处理器中一些可以是共享的。此外,术语“处理器”或“控制器”的显式使用不应被解释为排他性地指代能够执行软件的硬件,而是可以隐式地包括但不限于数字信号处理器(“DSP”)硬件、用于存储软件的只读存储器(“ROM”)、随机存取存储器(“RAM”)以及非易失性存储器。
还可以包括常规和/或定制的其它硬件。类似地,图中所示的任何开关仅是概念上的。其功能可以通过程序逻辑的操作、专用逻辑、程序控制和专用逻辑的交互、或甚至是手动地实现,实施者可以选择的具体技术可以从上下文中得到明确的理解。
尽管本文详细示出和描述了并入本公开教义的实施例,然而本领域技术人员可以容易地获得仍然并入这些教义的许多其他变型实施例。描述了优选实施例,注意到本领域技术人员可以基于上述教义做出修改和变型。因此将理解,可以在本公开的范围内对本公开的具体实施例做出修改。
本申请提供了多个附图,包括图2和图4的框图以及图3和图5的流程图。每一个附图为本公开提供了多种实现方式。
-例如,框图必定描述了装置或系统的功能块的互连。然而还应清楚,框图提供了流程的描述。作为示例,图2还示出了执行图2中方框的功能的流程图。例如,针对安全计算器208的方框还表示确定立体图像对的视差是否超过安全视差阈值的操作,针对立体内插器209的方框还表示修改立体图像对深度的操作。在描述该流程时类似地解释图2的其他方框。此外以类似的方式将图4解释为描述了流程。
-例如,流程图必然描述流程。然而还应清楚,流程图提供了执行流程处理的系统或装置的功能块之间的互连。作为示例,图3还示出了执行过程300的功能的框图。例如,参考单元304还表示用于执行确定视差极限的功能的模块。在描述这种系统/装置时类似地解释图3的其他方框。此外,图5还可以以类似方式解释为描述了系统或装置。
因此提供了多种实现方式。多种实现方式试图防止将过度的视差、深度或差异呈现给观看者。多种实现方式(i)内插3D内容,(ii)将3D内容替换成2D内容,和/或(iii)对内容进行平滑。经平滑的内容可以是2D或3D内容,讨论了多种执行平滑操作的技术。
然而应注意,所描述的实现方式的变型以及附加应用被解释为并看作是在本公开的范围之内。此外,所描述的实现方式的特征和方面可以适用于其他实现方式。
本原理的“一个实施例”或“实施例”或者“一种实现方式”或“实现方式”意思是结合实施例描述的具体特征、结构、特性等包含在本公开的至少一个实施例中。因此,贯穿说明书在多处出现的短语“在一个实施例中”或“在实施例中”或“在一种实现方式中”或“在实现方式中”及其他变型不必须指代相同的实施例。
此外,本申请或其权利要求可能提到“确定”各种信息。确定信息可以包括以下之中的一个或多个:例如,估计信息、计算信息、预测信息或从存储器获取信息。
此外,本申请或其权利要求可能提到“访问”各种信息。访问信息可以包括以下之中的一个或多个:例如,接收信息、获取信息(例如,存储器)、存储信息、处理信息、发送信息、移动信息、拷贝信息、擦除信息、计算信息、确定信息、预测信息或估计信息。
应认识到,“/”、“和/或”和“……中的至少一个”中任一个的使用,例如在“A/B”/“A和/或B”和“A和B中的至少一个”的情况下,意在包括选择仅第一所列项目(A)、仅选择第二所列项目(B)、或选择两个项目(A和B)。作为另一示例,在“A、B和/或C”以及“A、B和C中的至少一个”以及“A、B或C中的至少一个”的情况下,这样的表示意在包括仅选择第一所列项目(A)、仅选择第二所列项目(B)、仅选择第三所列项目(C)、仅选择第一和第二所列项目(A和B)、仅选择第一和第三所列项目(A和C)、仅选择第二和第三所列项目(B和C)、或选择所有三个项目(A和B和C)。对于本领域和相关领域的普通技术人员之一来说显而易见的是,对于所列的许多项目,上述是可以扩展的。
此外,许多实现方式可以在处理器(例如,后处理器或预处理器)中实现。本申请中论述的处理设备在多种实现方式中包括多个处理器(子处理器),所述多个处理器集体配置为执行例如处理、功能或操作。例如,在多种实现方式中,平滑处理单元420包括多个子处理器,所述多个子处理器集体配置为执行平滑处理单元420的操作。
本文描述的实现方式可以例如以方法或过程、装置、软件程序、数据流或信号来实现。即使仅在单一形式的实现方式的上下文中进行论述(例如,仅论述了方法),所论述的特征的实现方式也可以以其他形式来实现(例如,装置或程序)。装置可以以例如合适的硬件、软件和固件来实现。方法可以例如以诸如处理器之类的装置来实现,所述处理器指的是处理设备,通常包括例如计算机、微处理器、集成电路或可编程逻辑器件。处理器还包括通信设备,例如,计算机、蜂窝电话、平板电脑、便携式/个人数字助理(“PDA”)以及便于在终端用户之间传送信息的其他设备。
本文描述的各种过程和特征的实现方式可以体现在多种不同的设备或应用中。这种设备的示例包括编码器、解码器、后处理器、预处理器、视频编码器、视频解码器、视频编解码器、网络服务器、电视、机顶盒、路由器、网关、调制解调器、膝上型计算机、个人数字电脑、平板电脑、蜂窝电话、PDA以及其他通信设备。应清楚,设备可以是移动的和甚至安装在移动车辆中的。
此外,方法可以由处理器执行的指令来实现,这样的指令(或由实现方式产生的数据值)可以存储在处理器可读介质上,例如,集成电路、软件载体或其他存储设备,例如,硬盘、压缩盘(“CD”)、光盘(例如,DVD,通常称作数字通用盘或数字视频盘)、随机存取存储器(“RAM”)、或只读存储器(“ROM”)。指令可以形成有形地体现在处理器可读介质上的应用程序。指令可以例如在硬件、固件、软件或其组合中。指令可以存在于例如操作系统、单独的应用或二者的组合中。因此,处理器可以表征为用于执行处理的设备和包括处理器可读介质的设备(如,存储设备),所述可读介质具有用于执行所述处理的指令。此外,除了指令之外或代替指令,处理器可读介质可以存储由实现方式产生的数据值。
本领域技术人员将清楚,实现方式可以产生多种信号,所述信号被格式化以承载可以例如存储或传输的信息。信息可以包括例如用于执行方法的指令或者由上述实现方式之一产生的数据。例如,信号可以被格式化以作为数据承载用于执行平滑操作的代码,或作为数据承载通过执行平滑操作而产生的实际平滑后的立体视频序列。这样的信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或格式化为基带信号。格式化可以包括例如对数据流进行编码并用编码的数据流来调制载波。信号承载的信息可以是例如模拟或数字信息。如已知的,可以在多种不同的有线或无线链路上传输信号。信号可以存储在处理器可读介质上。
描述了多种实现方式。然而将理解,可以做出各种修改。例如,可以对不同实现方式的元件进行组合、补充、修改或去除以产生其他实现方式。此外,本领域技术人员将理解,可以用其他结构和过程来替代所公开的过程,相较于所公开的实现方式,得到的实现方式将至少以大致相同的方式执行大致相同的功能以达到大致相同的结果。因此,本申请覆盖这些和其他实现方式。