2维图像或视频到3维立体图像或视频的实时自动转换的制作方法_2

文档序号:9221969阅读:来源:国知局
示例中,可使用单个平滑模块来生成经平滑的锐度值 142和经平滑的锐度值147二者。
[0053] 如所示的那样,可将经平滑的锐度值142发送到内插模块150且可将经平滑的锐 度值147发送到内插模块155。内插模块150可基于经平滑的锐度值142来确定经内插的 锐度值152。内插模块155可基于经平滑的锐度值147来确定经内插的锐度值157。可使 用诸如双线性内插技术之类的任何内插技术来生成经内插的锐度值。一般而言,内插模块 能以相同的分辨率(即,具有相同数量的像素)来提供经内插的锐度值152和157以供后 续合并。而且,在一些示例中,经内插的锐度值152和157的分辨率可匹配2D输入图像105 的分辨率(例如,他们可具有相同的像素计数),使得经平滑的锐度值可被恢复到2D输入图 像105的全分辨率。在一些示例中,可认为经内插的锐度值152和157可各自是深度表面, 使得它们包括基于2D输入图像105的深度信息。如所示的那样,系统100可包括内插模块 150和内插模块155。在其他示例中,可使用单个内插模块来生成经内插的锐度值152和经 内插的锐度值157二者。
[0054] 如所示的那样,经内插的锐度值152和157可发送到合并模块160。合并模块160 可合并经内插的锐度值152和157以生成深度映射170。该深度映射170可包括例如与2D 输入图像105相关联的深度值。如下面进一步讨论的那样,深度映射170和2D输入图像105 可用来生成3D立体图像。一般而言,合并模块160可基于混合因子(或"混合率"或"合并 率")来合并经内插的锐度值152和157,该混合因子可以是预定的因子或基于例如经内插 的锐度值152和157而动态地确定。合并率对于每一个像素位置可以是相同的、其可在每 一个像素位置处动态地确定,或者遍及像素区域是统一的并在区域边界处改变,等等。下面 在方程式(6)中示出了示例合并操作:
[0055] 深度=aX深度l+(l-a)X深度 2 (6)
[0056] 其中"深度"可以是深度映射中的深度值,a可以是在区间[0,1]中归一化的混合 因子,"深度1"可以是由经内插的锐度值152表示的深度表面(或映射),且"深度2"可以 是由经内插的锐度值157表示的深度表面(或映射)。
[0057] 如所讨论的那样,取样模块120、缩放模块130、平滑模块140和内插模块150可执 行与取样模块125、缩放模块135、平滑模块145和内插模块155类似的操作,但以不同的分 辨率执行。在一些实现中,模块可分开实现,而在其他实现中,也可将模块实现为可如所述 那样执行功能以获得不同的分辨率的单个的模块。也就是说,可提供单个取样模块、单个缩 放模块、单个平滑模块和单个内插模块,且可在相同的模块处(例如,串行地),以不同的分 辨率来执行操作。这样的实现相比并行的实现可能更慢地操作,但可提供例如易于实现和 减小的硅面积的优点。
[0058] 如所讨论的那样,可使用深度映射170以基于2D输入图像105来生成3D立体图 像。图5是根据本公开的至少一些实现而安排的用于将2维(2D)图像转换成3维(3D)立 体图像的示例系统的说明性图。如所示的那样,系统100还可包括立体图像模块500,该模 块包括视差模块520、视差模块525、图像渲染模块530和图像渲染模块535。如所示的那 样,立体图像模块500可接收2D输入图像105和深度510并生成左立体图像540和右立体 图像545。
[0059] 如图5中所示,可在系统100的立体图像模块处接收2D输入图像105和深度映射 510。一般而言,可在系统100处接收来自外部设备的2D图像105和深度映射510,或者可 从系统100的另一模块(例如,从系统100的存储器存储或从基于锐度的深度映射模块110 等)接收2D图像105和/或深度映射510。在一些示例中,深度映射510可以是深度映射 170。在其他示例中,深度映射510可以是下文进一步讨论的经增强的深度映射。
[0060] 如所示的那样,视差模块510可接收深度映射510并生成左侧视差值映射522。视 差模块525可接收深度映射510并生成右侧视差值映射527。可将左侧视差映射522发送 到图像渲染模块530,且可将右侧视差映射527发送到图像渲染模块535。视差模块530也 可接收2D输入图像105,并可基于2D输入图像105和左侧视差映射522来生成左立体图像 540。同样如所示的那样,视差模块530可接收2D输入图像105,并可基于2D输入图像105 和右侧视差映射527来生成右立体图像545。一般而言,左立体图像540和右立体图像545 可以是适于显示给用户的3D立体图像。
[0061] 如所讨论的那样,可使用深度映射170或经增强的深度映射来生成3D立体图像。 图6是根据本公开的至少一些实现而安排的用于生成经增强的深度映射的示例系统的说 明性图。如所示的那样,系统100还可包括增强模块600,该模块可包括深度对比增强模块 610、重影减少模块620和时域过滤模块630中的一个或多个。增强模块600可接收深度映 射170并生成深度映射640。在一些示例中,可认为深度映射640是或可将其标记为经增强 的深度映射。如所示的那样,在示例中,模块610、620和630中的每一个都可用来生成深度 映射640。在各种实现中,模块610、620和/或630中的一个或组合可用来生成深度映射 640 〇
[0062] 如所示的那样,可在深度对比增强模块620处接收深度映射170,该深度对比增 强模块620可对深度映射170执行深度对比的增强以生成经增强的深度映射615。一 般而言,深度对比的增强可包括垂直增强、从做到右(left-to-right)和/或从右到左 (right-to-left)水平增强或其组合。例如,深度对比的增强可包括仅垂直增强。在另一示 例中,深度对比的增强可包括并行地对深度映射执行垂直增强、从左到右水平增强和从右 到左水平增强,并组合该垂直、从左到右和从右到左水平增强以生成经增强的深度映射。在 又一示例中,深度对比的增强可包括:执行垂直增强,并随后执行从左到右水平增强和从右 到左水平增强以生成经增强的深度映射。
[0063] 一般而言,所讨论的增强可强调深度映射170中对象边界处的深度不连续性而不 执行对象分段。例如,垂直增强可包括考虑沿同一列跨两个连续行的像素值。如果这些像 素值是恒定的(例如,在阈值内),则可将较小的深度值应用于两个像素位置。随着过程可 自顶至底对深度映射继续下去,较小的深度值可垂直地传播,直到有跳跃或跌落(即,随着 深度的增加或减小,像素值比较超过阈值)为止。随后这样的跳跃或跌落可传播,直到有另 一个跳跃或跌落为止,一次类推。这样的实现可强调垂直方向中的深度不连续性。可对于 例如从左到右和从右到左水平增强执行类似的技术。
[0064] 通过基本重复以上示例,能以如下方式来描述垂直增强。可将深度映射的行N和 列M处像素的像素值与该深度映射的第二个行N+1和列M处(例如,列N在列N+1上面) 像素的像素值比较,使得行计数朝着该深度映射底部增加,且可确定像素之间的差异并将 该差异与阈值比较。如果该差异在阈值内,则可将两个像素值都设置为像素值中的较小值。 如果该差异不在阈值内,没有改变会对像素值作出。可例如将这样的过程如所讨论的那样 沿深度映射向下传播,并可针对深度映射中的每一个像素执行此类过程。
[0065] 如所讨论的那样,在一些示例中,如果差异在阈值内,则可将这些像素值都设为这 些像素值中较小的值。在另一示例中,可使用边缘来生成混合因子以修改像素值。这种技 术的示例如下在方程式(7)中示出:
[0066] 深度=(l-a)XMIN(前一个,当前的)+aXMAX(前一个,当前的)(7)
[0067] 其中"深度"可以是像素的增强的深度值,a可以是在[0,1]的范围上归一化的 混合因子,"当前的"可以是像素的当前深度值,"前一个"可以是当前的上面的像素的深度 值,"MIN"可以是确定给定值中的最小值的操作,且"MAX"可以是确定给定值中的最小值的 操作。
[0068] 在此方法的实现中,可使用下阈值L和上阈值H来箝制(clamp)从边缘幅度 边缘(edgemagnitudeedge)导出的混合因子a。边缘幅度边缘也可通过p位右位移 (bit-shift)操作来修改。例如,可以通过以下方程式(8),从边缘幅度中计算a:
[0069] a=CLAMP[边缘》p,L,H],其中L= [0,8]且H= [0,8] (8)
[0070] 其中CLAMP可以是箝制因子的操作,>>可以是向右移位位计数p的操作,L可以是 下限阈值,且H可以是上限阈值。然后,经增强的深度值可如方程式(9)中所示来计算:
[0071] 深度=(8_a)XMIN(前一个,当前的)+aXMAX(前一个,当前的)/8 (9)
[0072]
[0073] 以类似的方式可执行从左到右和/或从右到左的水平增强。在水平增强中,像素 的列位置可保持恒定而行位置可改变和评估。这样的实现可强调对象边界尤其是垂直延伸 的对象边界处的深度不连续性。
[0074] 如所示的那样,经增强的深度映射615可被发送到重影减少模块620,该模块可对 经增强的深度映射615执行重影减少以生成经重影减少的深度映射625。一般而言,3D立 体显示中的重影可能由立体对中的左视和右视图像像素之间的串扰(crosstalk)导致的。 在一些示例中,可通过将深度映射移位深度偏移以远离或去往零视差屏移位来执行重影减 少。一般而言,此类移位将锐利的和/或高对比度边缘置于零视差屏上或附近,这可为观看 者减少重影效应。在其他示例中,可通过修改经增强的深度映射的亮度值从而减少经增强 的深度映射内的边缘处的锐度和/或对比度来执行该重影减少。在这样的示例中,亮度修 改可取决于像素是否处于或接近边缘而不同。亮度修改可对观看者导致较低的对比度并因 而导致较低的重影效应。如所讨论的那样,在一些示例中,重影减少模块可代而接收深度映 射170供处理。在其他示例中,可将经增强的深度映射615发送到立体图像模块500以生 成左侧和右侧3D立体图像。
[0075] 如所示的那样,可将经重影减少的深度映射625发送到时域过滤模块630,该模块 可对经重影减少的经增强的深度图625和时域上领先该经重影减少的经增强的深度映射 时间t的第二经重影减少的经增强的深度映射(未示出)执行时域过滤,从而生成经时域 过滤的经重影减少的增强深度映射635。在一些示例中,具体而言,当图像(相对于视频帧) 正在被处理时,可跳过时域过滤模块630。一般而言,在视频处理中,使序列化的帧在深度 值方面基本一致因而对观看者的呈现平滑是所期望的。所述时域过滤可提供对由于随机噪 声、压缩伪像、离群值等产生的深度值中的任何波动的稳定效果。在一些示例中,经重影减 少的经增强的深度映射625可基于加权因子来修改,该加权因子基于经重影减少的经增强 的深度映射625中的深度值与第二经重影减少的经增强的深度映射中的深度值之间的绝 对值差。一般而言,可使用有限脉冲响应(FIR)或者无限脉冲响应(IIR)方式中的任一个。 在FIR实现中,如下所示,可按方程式(10)中所示来计算深度值:
[0076] 深度_输出(t) = (a)X深度_输入(t) + (l-a)X深度_输入(t_l) (10)
[0077] 且在IIR实现中,如下所示,可按方程式(12)中所示来计算深度值:
[0078] 深度_输出(t) = (a)X深度_输入(t) + (l-a)X深度_输出(t_l) (12)
[0079] 其中深度_输出可以是经修改的深度值,t可以是当前时刻(帧),t_l可以是在 前时刻(帧),a可以是加权因子,深度_输入可以是原始深度值,且在一些示例中,加权因 子a可以如以如实,按方程式(13)中所示来确定:
[0080] a=ABS(深度_输入⑴-深度_输入(t-1))或者 (13)
[0081] a=ABS(深度_输入⑴-深度_输出(t-1))
[0082] 其中ABS可以确定给定值的绝对值。在其他示例中,加权因子a可如下所示,按 方程式(14)中所示来确定:
[0083] a=ABS(输入_像素⑴-输入_像素(t-1)) (14)
[0084] 其中输入_像素可包括来自单个像素位置或多个像素位置的亮度(Y)、色度(Cb/ Cr)、或者三元色(R/G/B)值。当从多个像素位置进行确定时,可使用诸如MAX(即,确定给 定值的最大值的操作)、MIN(即,确定给定值的最小值的操作)、AVG(即,确定给定值的平均 值的操作)、或MEDIAN(S卩,确定给定值的中位数的操作)之类的任何操作将多个像素值组 合成一个。在又一示例中,可如下使用方程式(15)来确定a:
[0085]
[0086] 其中令是操作MAX、MIN、AVG或MEDIAN中的任一。在另一个示例中,可使用对当前 深度的等级、深度的绝对时域差异的等级、或局部邻域中的多个过去的深度值的分段的线 性映射以如上文参考图4所讨论的那样来确定a。
[0087] 如所讨论的那样,以上处理或其部分可用来生成深度映射640。深度映射640可随 后用来生成3D立体图像,诸如,左视立体图像和右视立体图像。3D立体图形可基于2D输 入图像105和深度映射640,且可通过将深度映射转换成视差值映射并基于该视差值映射 和2D输入图像105确定左视立体图像和右视立体图像来生成该左视立体图像和右视立体 图像。上文中参考图5讨论了这样的技术,并且出于简洁的目的,将不再重复。如所讨论的 那样,可使用本文所讨论的任何深度映射(包括例如,深度映射640)来实现参考图5所讨 论的技术。
[0088] 如所讨论的那样,2D输入图像可用来生成在一些示例中可增强的深度映射。经增 强的深度映射可与2D输入图像一起用来生成用于呈现给用户的左侧和右侧立体图像。
[0089] 图7是根据本公开的至少一些实现而安排的用于将2维(2D)图像转换成3维(3D) 立体图像的示例系统的说明性图。如图7中所示,可在基于锐度的深度映射模块110处接 收2D输入图像105,如参考图1所讨论的那样,该模块可生成深度映射170。如所示那样, 可将深度映射170发送到增强模块600,该增强模块可如参考图6所讨论的那样生成深度映 射640 (例如,经增强的深度映射)。可将经增强的深度映射640和2D输入图像105发送到 立体图像模块500,该立体图像模块可如参考图5所讨论的那样生成左立体图像540和右侧 立体图像545。左立体图像540和右侧立体图像545可表示3D立体图像并可呈现给用户。 如将理解的那样,图7中表示的系统和过程可包括本文所讨论的实现的任何组合。为了简 洁起见,将不重复那些细节。
[0090] 图8是根据本公开的至少一些实现而安排的用于将2维(2D)图像转换成3维(3D) 立体图像的示例系统的说明性图。如所示的那样,系统100可包括基于锐度的深度映射模 块110、基于几何模型的深度表面模块805、局部增强模块810、深度对比增强模块815、深度 对比增强模块820、合并模块825、深度对比增强模块830、合并模块835、重影减少模块620、 时域过滤模块630和立体图像模块500。如所示的那样,系统100可接收2D输入图像105 并生成左立体图像850和右立体图像855。
[0091] 如所示的那样,可在基于锐度的深度映射模块110处接收2D输入图像105,该模块 可生成深度映射170。可通过本文中所讨论的特别是参考图1所讨论的技术中的任何技术 来生成深度映射170,为简洁起见,将不重复这些技术。也可在基于几何模型的深度表面模 块805处接收2D输入图像105,该模块可生成深度表面807。在一些示例中,可认为深度表 面807是基于几何模型的深度表面。
[0092] 基于几何模型的深度表面模块805可通过确定与2D输入图像105相关联的自顶 至底的深度映射来生成基于几何模型的深度表面807。自顶至底的深度映射可包括横跨可 能从该自顶至底的深度映射的顶部到该自顶至底的深度映射的底部增长的该自顶至底的 深度映射的各个行而恒定的多个深度值。而且,可确定2D输入图像105中的一个或多个边 缘。在一些示例中,如下文中进一步讨论的那样,可通过将2D输入图像的像素的行对之间 的像素值差异与阈值比较来确定边缘。在其他示例中,可通过应用Sobel操作符来确定边 缘。同样如下文进一步讨论的那样,确定一个或多个边缘可提供与这些边缘相关联的一个 或多个混合因子。自顶至底的深度映射可由一个或多个混合因子修改以生成基于几何模型 的深度表面807。
[0093] 如所讨论的那样,可确定自顶至底的深度映射与2D输入图像105相关联。在一些 示例中,自顶至底深度映射一般可由独立于2D输入图像105的内容而选择的技术来形成。 例如,可通过将单个深度值分配给深度表面的整个水平像素位置(即,单个行)来形成该自 顶至底的深度映射。深度值可在自顶至底的连续行中逐渐增加。例如,为了均匀地分布深 度值的完整范围,可如下所示,按方程式(16)中所示来分配深度值:
[0094] 深度(r) =FL00R((2~N/h)Xr) (16)
[0095] 其中"深度"可以是N位的深度值,r可以是行指定,FLOOR可以是返回经向下取整 的值并可对数个行(例如,4或5行)提供相同的深度值的操作,且h可以是深度表面的高 度。例如,如果N= 8位,且h= 1080行,则由于该FL00R0操作,方程式(16)可将相同的 深度值分配给4或5个连续行。或者,可使用以下方程式(17),跨所有行将单个深度值分配 给相同数量的行,使用如下的方程式(17):
[0096] 深度(r) =FLOOR(r/CEIL(h/2~N)) (17)
[0097] 其中CEIL是提供向上取整的值的操作。使用方程式(17),例如对于N= 8位且 h-1080行,分配[0,215]的深度值,使得将相同的深度值分配给每一组的5个连续行。这样 的实现可能无法利用8位深度值的完整范围[0, 215],但对于软件或硬件实现可以是有利 的。如所述的那样,对于自顶至底的几何模型,可不管2D输入图像105的内容如何而将相 同的深度值范
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1