《支持自动立体显示器上的实时3D图像渲染的多核心处理器.pdf》由会员分享,可在线阅读,更多相关《支持自动立体显示器上的实时3D图像渲染的多核心处理器.pdf(18页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102835119 A (43)申请公布日 2012.12.19 C N 1 0 2 8 3 5 1 1 9 A *CN102835119A* (21)申请号 201080065984.1 (22)申请日 2010.04.01 H04N 13/04(2006.01) (71)申请人英特尔公司 地址美国加利福尼亚 (72)发明人 C李 Y杜 Q李 Y张 (74)专利代理机构永新专利商标代理有限公司 72002 代理人刘瑜 王英 (54) 发明名称 支持自动立体显示器上的实时3D 图像渲染 的多核心处理器 (57) 摘要 一种多核心处理器系统可以支持在自动立体 显示器上的。
2、3D图像渲染。所述3D图像渲染包括: 深度图的预处理和3D图像包裹任务。所述深度图 的预处理可以包括深度图像平滑技术之前的前景 处理,其可以执行深度梯度检测和平滑任务。深度 梯度检测任务可以检测具有大深度梯度的区域, 并且平滑任务可以使用低强度、低通滤波技术将 大深度梯度变换为线性变化的形状。3D图像包裹 可以包括使用高效的单指令多数据(SIMD)技术 对用于行像素的3D图像包裹的代码进行向量化。 在向量化之后,诸如OpenMP这样的API可以用于 对3D图像包裹过程进行并行化。可以对3D图像的 行以及对多个视图图像的图像执行使用OpenMP 的3D图像包裹。 (85)PCT申请进入国家阶段日。
3、 2012.09.29 (86)PCT申请的申请数据 PCT/CN2010/071493 2010.04.01 (87)PCT申请的公布数据 WO2011/120228 EN 2011.10.06 (51)Int.Cl. 权利要求书3页 说明书8页 附图6页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 3 页 说明书 8 页 附图 6 页 1/3页 2 1.一种在多核心处理器中进行的方法,包括: 识别图像的具有大深度梯度的第二部分,所述大深度梯度大于最大阈值,其中,与具有 小于所述最大阈值的小深度梯度的第一部分相比,所述第二部分小得多, 将所述第二部分的所述大深度梯。
4、度变换为线性变化的形状, 使用低强度、低通滤波技术来平滑所述线性变化的形状, 使用单指令多数据技术对所述图像的行像素进行向量化,以及 对在所述图像的行像素以及多个视图图像的行像素上的三维图像包裹操作进行并行 化,所述图像和所述多个视图图像一起形成要在自动立体显示器上渲染的三维图像。 2.如权利要求1所述的方法,其中,识别所述第二部分包括: 选择第一像素和第二像素, 确定根据所述第一像素的第一深度值和所述第二像素的第二深度值之差而产生的差 值,以及 将所述差值与所述最大阈值进行比较。 3.如权利要求2所述的方法,其中,所述第二像素是与所述第一像素相邻的像素。 4.如权利要求2所述的方法,其中,变。
5、换所述大深度梯度包括:如果所述第二深度值与 所述第一像素的所述第一深度值之差大于所述最大阈值,则将所述第一深度值设置为新深 度值。 5.如权利要求4所述的方法,其中,所述新深度值是基于所述第二深度值与所述最大 阈值之差来确定的。 6.如权利要求1所述的方法,还包括:在将所述大深度梯度变换为所述线性变化的形 状时,维持前景深度信息。 7.如权利要求1所述的方法,其中,对所述图像的行像素进行向量化包括:将任务分解 成子任务,以降低所述任务之间的数据依赖性。 8.如权利要求7所述的方法,其中,对所述图像的行像素进行向量化用于提供数据级 并行性。 9.如权利要求1所述的方法,包括:支持应用程序编程接口。
6、,所述应用程序编程接口用 于支持对所述多个图像的行像素的所述三维图像包裹进行并行化。 10.如权利要求9所述的方法,其中,对所述多个图像的行像素的所述三维图像包裹进 行并行化用于提供线程级并行性。 11.一种图像渲染设备,包括: 深度梯度逻辑,其中,所述深度梯度逻辑用于: 识别图像的具有大深度梯度的第二部分,所述大深度梯度大于最大阈值,其中,与具有 小于所述最大阈值的小深度梯度的第一部分相比,所述第二部分小得多,以及 将所述第二部分的所述大深度梯度变换为线性变化的形状, 平滑器,其耦合到所述深度梯度逻辑,其中,所述平滑器用于使用低强度、低通滤波器 来执行所述线性变化的形状的深度平滑, 向量化逻。
7、辑,其耦合到所述平滑器,其中,所述向量化逻辑用于使用单指令多数据技术 对所述图像的行像素进行向量化,以及 并行化逻辑,其耦合到所述向量化逻辑,其中,所述并行化逻辑用于对在所述图像的行 权 利 要 求 书CN 102835119 A 2/3页 3 像素以及多个视图图像的行像素上的三维图像包裹操作进行并行化,所述图像和所述多个 视图图像一起形成要在自动立体显示器上渲染的三维图像。 12.如权利要求11所述的图像渲染设备,其中,所述深度梯度逻辑用于: 从所述图像选择第一像素和第二像素, 确定根据所述第一像素的第一深度值和所述第二像素的第二深度值之差而产生的差 值,以及 将所述差值与所述最大阈值进行比。
8、较。 13.如权利要求12所述的图像渲染设备,其中,所述第二像素是与所述第一像素相邻 的像素。 14.如权利要求12所述的图像渲染设备,其中,所述深度梯度逻辑用于:如果所述第二 深度值与所述第一像素的所述第一深度值之差大于所述上限值,则将所述第一深度值设置 为新深度值。 15.如权利要求14所述的图像渲染设备,其中,所述深度梯度逻辑用于基于所述第二 深度值与所述最大阈值之差来产生所述新深度值。 16.如权利要求11所述的图像渲染设备,其中,所述平滑器用于在执行所述线性变化 的形状的深度平滑时,维持前景深度信息。 17.如权利要求11所述的图像渲染设备,其中,所述向量化逻辑用于通过将任务分解 成。
9、子任务以降低所述任务之间的数据依赖性,来对所述图像的行像素进行向量化。 18.如权利要求17所述的图像渲染设备,其中,对所述图像的行像素进行向量化用于 提供数据级并行性。 19.如权利要求11所述的图像渲染设备,其中,所述并行化逻辑用于支持应用程序编 程接口,所述应用程序编程接口用于支持对所述多个图像的行像素的所述三维图像包裹进 行并行化。 20.如权利要求19所述的图像渲染设备,其中,对所述多个图像的行像素的所述三维 图像包裹进行并行化用于提供线程级并行性。 21.一种用于渲染三维图像的计算机系统,包括: 多核心处理器,其中,所述多核心处理器用于: 识别图像的具有大深度梯度的第二部分并将所述。
10、第二部分的所述大深度梯度变换为 线性变化的部分,所述大深度梯度大于最大阈值,其中,与具有小于所述最大阈值的小深度 梯度的第一部分相比,所述第二部分小得多, 将所述第一深度梯度变换为线性变化的形状, 使用低强度、低通滤波技术来平滑所述线性变化的形状, 使用单指令多数据技术对所述图像的行像素进行向量化,以及对在所述图像的行像素 以及多个视图图像的行像素上的三维图像包裹进行并行化,所述图像和所述多个视图图像 形成三维图像, 耦合到所述多核心处理器的逻辑,其中,所述逻辑用于支持来自所述多核心处理器的 所述多个视图图像的传送,以及 耦合到所述逻辑的显示器,其中,所述显示器用于支持将所述多核心处理器处理的。
11、所 述多个视图图像渲染成三维图像。 权 利 要 求 书CN 102835119 A 3/3页 4 22.如权利要求1所述的计算机系统,其中,所述多核心处理器包括第一核心,所述第 一核心用于: 选择第一像素和与所述第一像素相邻的第二像素, 确定根据所述第一像素的第一深度值和所述第二像素的第二深度值之差而产生的差 值,以及 将所述差值与上限值进行比较。 23.如权利要求22所述的计算机系统,其中,所述第一核心用于将所述第一像素和所 述第二像素识别为具有至少所述第一深度梯度的多个区域中的第一区域。 24.如权利要求22所述的计算机系统,其中,所述第一核心用于:如果所述第二深度值 与所述第一像素的所述。
12、第一深度值之差大于所述上限值,则将所述第一深度值设置为新深 度值。 25.如权利要求24所述的计算机系统,其中,所述第一核心用于:在用所述新值设置 所述第一像素的所述第一深度值之前,将所述第二深度值与所述上限值之差分配为所述新 值。 26.如权利要求21所述的计算机系统,其中,所述第一核心用于:在将所述第一深度梯 度变换为所述线性变化的形状时,维持前景深度信息。 27.如权利要求21所述的计算机系统,其中,所述多核心处理器还包括第二核心,其 中,所述第二核心用于通过将任务分解成子任务以降低所述任务之间的数据依赖性,来对 所述图像的行像素进行向量化,以利用数据级并行性。 28.如权利要求21所述。
13、的计算机系统,其中,所述第二核心用于支持应用程序编程接 口,所述应用程序编程接口用于支持对所述多个图像的行像素的所述三维图像包裹进行并 行化。 29.如权利要求28所述的计算机系统,其中,对所述多个图像的行像素的所述三维图 像包裹进行并行化用于提供线程级并行性。 30.如权利要求21所述的计算机系统,还包括第三核心,所述第三核心用于将所述多 个视图图像传送给所述显示器,所述显示器包括自动立体显示器。 权 利 要 求 书CN 102835119 A 1/8页 5 支持自动立体显示器上的实时 3D 图像渲染的多核心处理 器 背景技术 0001 三维(3D)显示技术的快速发展以及观看者对于拥有高质量。
14、3D电视(3D-TV)与日 俱增的兴趣已经使得开发出了无眼镜的自动立体3D显示设备。自动立体3D显示设备正越 来越多地用在广告、娱乐以及其他此类行业中。自动立体3D显示设备同时支持多个视图图 像,并且这多个不同视图形成人视觉系统中的立体视觉。结果,观看这种显示器的人能够无 须使用3D眼镜或帽子,并且观看者能够裸眼观看3D图像。 0002 一般而言,两种格式被广泛用于表示立体视频:1)多视图图像(即,左视图+右视 图),以及2)2D图像+深度信息(其也称为2.5D格式)。用2.5D格式表示立体视频提供了 多种益处,例如对于存储和传输带宽的要求更低、与3D显示模型的设备独立性、与传统2D 显示器的。
15、向后兼容等等。在接收到输入信号(即,2D输入和深度图像输入)之后产生用于3D 图像的多个虚拟视图图像对于自动立体3D显示器而言可能是计算密集的。为了克服这种 计算密集的限制,3D显示设备可以使用单独的现场可编程门阵列(FPGA)芯片或高端图形 处理单元(GPU)来执行这种计算密集的任务。 附图说明 0003 通过附图以示例而非限制的方式来说明本文所描述的发明。为了说明的简便和清 楚,附图中示出的部件并不一定按比例绘制。例如,为了清楚,一些部件的大小可以相对于 其他部件被放大。此外,在认为合适之处,标号在附图中被重复,以指示对应或类似的部件。 0004 图1示出了根据一个实施例的框图100,其描。
16、绘了使用多核心处理器来为自动立 体显示器产生多视图图像。 0005 图2示出了根据一个实施例的图像渲染设备(IRD)200的框图,其可以使用多核心 处理器来为自动立体显示器产生3D图像。 0006 图3是根据一个实施例的流程图300,其说明了图像渲染设备IRD 200在使用多核 心处理器为自动立体显示器产生3D图像时的操作。 0007 图4示出了根据一个实施例的图像400,可以根据该图像400使用多核心处理器来 为自动立体显示器产生3D图像。 0008 图5是根据一个实施例的图像400的像素图,其可以被用来执行基于深度图像的 渲染(DIBR)技术中的深度平滑,以使用多核心处理器来为自动立体显示。
17、器产生3D图像。 0009 图6示出了根据一个实施例的深度平滑技术,其可以在使用多核心处理器来为自 动立体显示器产生3D图像时缩短计算时间并提高视觉效果。 0010 图7示出了根据一个实施例的低强度高斯滤波器的结构,该低强度高斯滤波器用 于在使用多核心处理器来为自动立体显示器产生3D图像时缩短计算时间并提高视觉效 果。 0011 图8B示出了根据一个实施例的使用SIMD技术对图8A中示出的DIBR中的行像素 的3D图像包裹(wrapping)进行向量化,以在使用多核心处理器来为自动立体显示器产生 说 明 书CN 102835119 A 2/8页 6 3D图像时利用数据级并行性的代码。 0012。
18、 图8C示出了根据一个实施例的用于对图8A中示出的DIBR中的行像素的3D图像 包裹进行并行化,以在使用多核心处理器来为自动立体显示器产生3D图像时利用线程级 并行性的代码。 0013 图9示出了根据一个实施例的可以使用多核心处理器来为自动立体显示器产生 3D图像的计算机系统。 具体实施方式 0014 以下说明书描述了可以支持自动立体显示器上的实时3D图像渲染的多核心处 理器。在以下说明中,为了更透彻的理解本发明,阐述了许多具体细节,例如,逻辑实现、 资源划分或共享、或拷贝实现(duplication implementation)、系统组件的类型及相互关 系,以及逻辑划分或集成选择。然而,本。
19、领域技术人员将意识到,可以在没有这些具体细 节的情况下实践本发明。在其它实例中,未详细示出控制结构、门级电路和全部软件指令 序列,以免模糊本发明。本领域技术人员利用所包括的说明,无需非常规的试验(undue experimentation)就能够实现适当的功能。 0015 在说明书中引用的“一个实施例”、“实施例”或“示例性实施例”指示所描述的实 施例可以包括特定特征、结构或特性,但是,并非每个实施例都一定包括所述特定特征、结 构或特性。此外,这些短语并不一定指同一实施例。此外,当结合一实施例来描述特定特 征、结构或特性时,认为无论是否明确描述,本领域技术人员在其知识范围内都可以结合其 他实施。
20、例来实现这种特征、结构或特性。 0016 本发明的实施例可以用硬件、固件、软件或它们的任意组合来实现。本发明的实 施例还可以实现为存储在机器可读介质上的指令,其可以由一个或多个处理器来读取和执 行。机器可读存储介质可以包括用于存储或传输机器(例如计算设备)可读形式的信息的任 何机构。 0017 例如,机器可读存储介质可以包括只读存储器(ROM);随机存取存储器(R AM);磁盘 存储介质;光存储介质;闪速存储设备;电、光形式的信号。此外,固件、软件、例程和指令在 本文中可以描述为执行特定动作。然而,应当意识到,这些描述仅仅是为了方便,这些动作 实际上是由执行所述固件、软件、例程和指令的计算设备。
21、、处理器、控制器和其他设备来产 生的。 0018 在一个实施例中,在自动立体显示器上的3D图像渲染可以在多核心处理器上得 到支持,而无需使用诸如FPGA芯片或图形处理单元(GPU)这样的额外芯片。在一个实施 例中,3D包裹阶段可以包括根据2维(2D)基准图像和深度图来合成多个虚拟视图的处理。 在一个实施例中,一个或多个虚拟视图可以由通过如下处理而进行的3D图像包裹来产生: 将基准图像中的像素后投影到3D空间,然后将该像素重新投影到目标视点上,以创建虚 拟视图。在将像素从一个空间向后投影和重新投影(称为视点移动)到另一空间时,封闭 (occluded)区域可能被露出。在一个实施例中,深度图可以被。
22、预处理(或平滑)以减轻封闭 区域(或孔)的影响。 0019 在一个实施例中,3D图像渲染可以包括一个或多个阶段,例如:对深度图的预处 理、3D包裹,以及孔填充或填充露出的孔的后置处理阶段。在一个实施例中,对深度图的预 说 明 书CN 102835119 A 3/8页 7 处理阶段可以包括深度图平滑技术之前的前景处理。在一个实施例中,前景深度图像平滑 技术可以包括深度梯度检测任务和平滑任务。在一个实施例中,深度梯度检测任务可以包 括检测具有大深度梯度的区域,并将该大深度梯度变换为线性变化的形状。在一个实施例 中,当执行平滑任务时,线性变化的形状可以使用低强度和低通滤波技术来被预处理或平 滑。在一。
23、个实施例中,低强度、低通高斯滤波器可以用来平滑线性变化的形状。作为使用 (与原本可能使用的具有较大窗口大小的高强度低通滤波器相比)具有较小窗口大小的低 强度、低通高斯滤波器的结果,可以显著降低计算密集性。 0020 在一个实施例中,在使用深度图像平滑技术之前的前景处理对深度图进行预处理 之后,可以使用3D包裹技术,所述3D包裹技术可以利用数据级并行性(DLP)和线程级并行 性(TLP)。在一个实施例中,3D包裹操作可以包括使用高效的单指令多数据(SIMD)技术对 用于进行行像素的3D图像包裹的代码进行向量化,这可以使得利用数据级并行性。在对视 图图像进行向量化之后,可以支持诸如OpenMP这样。
24、的多平台共享存储器多处理编程的应 用程序编程接口(API)可以用于并行化3D图像包裹过程,以利用线程级并行性。在一个实 施例中,可以对3D图像的每一行和多个视图图像的每个图像执行使用OpenMP的3D图像包 裹。作为向量化和并行化以分别利用数据级并行性(DLP)和线程级并行性(TLP)的结果,可 以节省大量的计算时间。 0021 在图1中示出了用于使用多核心处理器来在自动立体显示器上渲染3D图像的渲 染方法100的实施例。在一个实施例中,渲染方法100可以包括对深度图进行预处理阶段 110、3D图像包裹阶段140和孔填充阶段180。 0022 在一个实施例中,预处理阶段110可以使用基于深度图。
25、像的渲染(DIBR)技术之前 的前景处理来识别和减小深度梯度,以最小化去除遮蔽(disoc clusion)的影响。在一个实 施例中,在预处理阶段110中,可以识别在所捕获的图像的深度图中具有大深度梯度的区 域。在一个实施例中,深度图的相当大的部分(第一部分)会是平区域,并且在这些平区域中 出现孔的可能性会是最小的或者为零。在一个实施例中,深度图的小部分(第二部分)可能 包括更大的深度梯度,并且可以在这些第二部分中执行预处理(即,图像平滑操作)。 0023 在一个实施例中,第二部分可以变换为线性变化的形状,与使用高强度低通高斯 滤波器对深度图执行卷积运算相比,这在计算上可以是成本更低的。在一个。
26、实施例中,可以 通过改变第二部分的至少一些部分的深度梯度以减小深度的锐度来将第二部分变换为线 性变化的形状。在将深度梯度锐利的区域变换为线性变化的形状之后,(与高强度、低通高 斯滤波器的窗口大小相比)具有更小窗口大小的低强度、低通高斯滤波器可以用于平滑所 述线性变化的形状。在一个实施例中,低强度、低通高斯滤波器的窗口大小可以是高强度、 低通高斯滤波器窗口大小的1/3。 0024 在一个实施例中,与使用卷积技术相比,DIBR技术之前的前景处理可以节省大量 的执行时间。此外,在一个实施例中,与针对图像平滑的卷积方法相比,DIBR技术之前的前 景处理可以产生更好的视觉效果。在一个实施例中,可以通过D。
27、IBR方法之前的前景处理来 维持前景的深度,以在新虚拟图像上产生更好的视觉效果。与背景相比,用户可能受到新虚 拟图像的前景的吸引,并且维持前景的深度可以使得用户体验更好的视觉效果。在一个实 施例中,DIBR技术之前的前景处理可以减小诸如由于失真而带来的面部拉伸这样的影响, 这可以提高观看者的视觉效果。 说 明 书CN 102835119 A 4/8页 8 0025 在一个实施例中,在进行了预处理阶段110之后,可以在3D包裹阶段140进一步 处理图像。在一个实施例中,3D包裹阶段140可以包括两个子阶段:向量化子阶段和并行 化子阶段。在一个实施例中,在向量化子阶段期间,单指令多数据(SIMD)。
28、技术可以用于对 一行像素的3D图像包裹中涉及的任务进行向量化。在一个实施例中,图8A的伪码(在相邻 像素之间具有紧密的数据依赖性)可以被分解成多个循环结构(在图8B中描绘),以减小相 邻像素之间的数据依赖性。在一个实施例中,使用SIMD来对伪码进行向量化可以利用数据 级并行性(DLP)。 0026 在对图像进行向量化之后,可以在包括UNIX和平台的 架构上支持多平台共享存储器多处理编程的应用程序编程接口(API),可以用于对3D图像 包裹过程进行并行化以利用线程级并行性。在一个实施例中,诸如OpenMP(开放多处理)这 样的API可以用于对3D图像包裹技术进行并行化以利用线程级并行性。在一个实。
29、施例中, OpenMP可以用于对3D图像的每一行以及多个视图图像的每个图像执行3D图像包裹。作为 向量化和并行化以分别利用数据级并行性(DLP)和线程级并行性(TLP)的结果,可以节省 大量的计算时间。 0027 在图2中示出了可以执行3D图像渲染的图像渲染设备200的实施例。在一个实施 例中,图像渲染设备(IRD)200可以包括接口215、基准图像产生器220、深度图产生器230、 预处理逻辑240、图像包裹逻辑260以及后置处理逻辑280. 0028 在一个实施例中,图像渲染设备200可以耦合到用于捕获视频(或图像)和相关联 的每像素的深度信息(称为“深度图”)的图像捕获设备210(例如摄。
30、像机)。在一个实施例 中,所捕获的图像和深度图前往接口215。在一个实施例中,接口215可以接收所捕获的图 像和深度图,并且可以通过内部总线来提供该深度图和所捕获的图像。在一个实施例中,接 口215可以在图像捕获设备210和图像渲染设备200之间提供物理的、电的以及协议接口。 0029 在一个实施例中,基准图像产生器220可以响应于在内部总线上接收到数据而产 生诸如图4中描绘的图像这样的基准图像。在一个实施例中,基准图像产生器220可以捕 获图像中每个像素的像素值,并且产生基准图像。在一个实施例中,基准图像可以被提供到 图像包裹逻辑260。 0030 在一个实施例中,深度图产生器230可以响应。
31、于在内部总线上接收到数据而产生 诸如在图5中所描绘的深度图这样的深度图。在一个实施例中,深度图产生器230可以从 数据中提取每像素的深度信息,以产生深度图。在一个实施例中,深度图产生器230可以将 深度图提供给预处理块240。 0031 在一个实施例中,预处理块240可以检测深度图中具有大深度梯度的区域(第二 部分),并通过将大深度梯度变换为线性变化的形状来减小该大深度梯度的锐度。在一个实 施例中,可以进一步平滑该线性变化的形状。在一个实施例中,预处理块240可以包括深度 梯度逻辑250和平滑器255。在一个实施例中,深度梯度逻辑250可以检测或识别深度图中 可以具有大或锐利的深度梯度的第二部。
32、分。在一个实施例中,深度梯度逻辑250可以将每 个像素的梯度级别与上限值(gmax)进行比较,以确定该深度梯度是否是锐利的或大的。在 一个实施例中,深度梯度逻辑250可以选择第一像素和第二像素,其中第二像素可以与第 一像素相邻。在一个实施例中,深度梯度逻辑250可以确定第一像素的第一深度值(d0),和 第二像素的第二深度值(d1),其中第二像素可以处于第一像素的相邻位置。在一个实施例 说 明 书CN 102835119 A 5/8页 9 中,深度梯度逻辑250可以确定深度梯度的差(即,(d1-d0),并将深度梯度的差与深度的 最大阈值(gmax)进行比较,以确定该深度是否是锐利的或大的。 00。
33、32 在一个实施例中,深度梯度逻辑250可以通过比较相邻像素的深度梯度值来识别 可能具有大深度梯度的区域。在一个实施例中,深度梯度逻辑250可以识别可能具有大深 度梯度的由相邻像素(524和525)与(566和576)形成的第二区域。在一个实施例中,如果 相邻像素的深度梯度之差大于上限(gmax),则深度梯度逻辑250可以确定该相邻像素的深 度梯度是大的。此外,如下文所描述的,深度梯度逻辑250可以将具有大深度梯度的区域变 换为线性变化的形状。 0033 在一个实施例中,深度梯度逻辑250可以确定像素(第一像素)524和566的分别 的深度值d01和d04,以及相邻像素(第二像素)525和57。
34、6的分别的深度值d11和d14。在 一个实施例中,深度梯度逻辑250可以使用像素(524和525)与(566和576)的深度值来分 别确定差值diff1(=d11-d01)和diff4(=d14-d04)。在一个实施例中,深度梯度逻辑250 可以将像素(524和525)与(566和576)的深度值的差值diff1和diff4与上限gmax进行 比较,以确定区域是否具有锐利的或者大深度梯度。 0034 在一个实施例中,如果(d1-d0)大于gmax,则深度梯度逻辑250可以将第一像素的 深度值(d0)设置为新深度值d0(新)=(d1-gmax)。结果,大深度梯度可以变换为图6D中所 描绘的线性变。
35、化的形状。在一个实施例中,在上述示例中,深度梯度逻辑250可以使用相邻 像素(524和525)与(566和576)的差值diff1和diff4的值以及上限gmax来将像素524 和566的大或锐利的深度梯度变换为线性变化的形状。在一个实施例中,深度梯度逻辑250 可以将像素524的深度值(d01)设置为新深度值(d01)新=(d11-gmax)。类似地,深度梯度 逻辑250可以将像素566的深度值(d04)设置为新深度值(d04)新=(d14-gmax)。 0035 在一个实施例中,在图6A中描绘了使用图4的基准图像(2D图像)所产生的原始 视点(V0)。基准图像(2D图像)和深度图可以用来产。
36、生虚拟视图,并且在图6B中描绘了一 个这种虚拟视图的一个虚拟视点(Vt)。如图6B中所描绘的,视点(V0)可能移动到新位置 Vt,并且这种移动可能导致去除遮蔽,这可能是由于深度图的一些区域(第二区域)中锐利 的深度梯度所导致的。 0036 在一个实施例中,平滑器255可以接收线性变化的形状并且使用低强度、低通高 斯滤波器来执行低通滤波。在一个实施例中,低强度、低通高斯滤波器可以包括小窗口大小 来执行图像平滑。在一个实施例中,低强度、低通高斯滤波器的窗口大小可以等于高强度低 通高斯滤波器窗口大小的1/3。使用深度图的卷积来平滑图像的现有方法可以使用高强度 低通高斯滤波器。在图6C中描绘了使用深度。
37、图的卷积来执行的平滑。卷积运算可能消耗 大量(38.7%)的DIBR执行时间,并且高强度低通高斯滤波器的计算密集性和窗口大小也可 能很高。在一个实施例中,通过使用低强度低通高斯滤波器,可以很大地节省计算需求。然 而,通过将锐利的深度梯度变换为线性变化的形状,低强度低通高斯滤波器可以用于平滑 锐利的深度梯度(图6D的681和682),并且深度平滑可以如图6E中的经平滑的线691和 692所描绘的那样。在一个实施例中,平滑器255可以产生经平滑的深度图,其可以被提供 到3D图像包裹块260。 0037 此外,在一个实施例中,可以维持前景深度(如图6E中680所示),与卷积平滑方法 相比,这可以提高。
38、视觉效果。与背景相比,用户可能被新虚拟图像的前景所吸引,并且维持 说 明 书CN 102835119 A 6/8页 10 前景的深度可以使得用户体验更好的视觉效果。在一个实施例中,DIBR技术之前的前景处 理可以降低诸如由于失真而导致的面部拉伸这样的影响,这可以提高观看者的视觉效果。 0038 在一个实施例中,在图7中描绘了低强度低通高斯滤波器的结构。在一个实施例 中,低强度低通高斯滤波器可以使用二元加权技术来实现。在一个实施例中,图7的高斯滤 波器描绘了高斯钟型函数(Gauss bell function)的近似,并且那些值表示权重因子。 0039 在一个实施例中,在接收到经平滑的深度图和(。
39、例如图4的)基准图像后,3D图像 包裹块260可以产生多个虚拟图像。在一个实施例中,3D图像包裹块260可以包括向量化逻 辑265和并行化逻辑269。在一个实施例中,向量化逻辑265可以使用单指令多数据(SIMD) 技术来对一行像素的3D图像包裹中涉及的任务进行向量化。例如,在图8A中描绘了执行 3D图像包裹的伪码,并且孔填充模块通常被合并到DIBR实现中的3D图像包裹模块中。由 于相邻像素数据之间紧密的数据依赖性,可能无法使用SIMD技术来向量化3D图像包裹中 涉及的任务。 0040 在一个实施例中,向量化逻辑265可以识别其中当前像素数据可能依赖于当前像 素的之前位置的串行任务。在一个实施。
40、例中,向量化逻辑265可以将图8A的第802行中的 “for”循环分解成在图8B的第841、844、847和850行描绘的4个单独的“for”循环。在一 个实施例中,将第802行的“for”循环分解成第841、844、847和850行的4个单独的“for” 循环,可以使得3D图像包裹逻辑260使用SIMD技术来被编程。作为使用SIMD技术来进行 编程的结果,向量化逻辑265可以利用数据级并行性(DLP)。在一个实施例中,向量化逻辑 265可以将图8A第809行的新像素计算任务分解成两个子任务,例如图8B第848行描绘 的“不同区检查”,和图8B第851行描绘的“针对像素内插的权重计算”。在一个。
41、实施例中, 图8B第847行的“for”循环的结果可以提供为第850行的“for”循环的输入。在一个实 施例中,向量化逻辑265可以支持SIMD技术的使用以利用DLP,并且与图8A相比,节省了大 量的计算时间。 0041 在一个实施例中,并行化逻辑269可以对3D图像包裹过程进行并行化,以利用线 程级并行性。在一个实施例中,并行化逻辑269可以支持应用程序编程接口(API),其可以 支持包括UNIX和平台的架构上的多平台共享存储器多处理编 程。在一个实施例中,并行化逻辑269可以使用所述API对3D图像包裹过程进行并行化, 以利用线程级并行性。在一个实施例中,并行化逻辑269可以使用诸如Ope。
42、nMP(开放多处 理)这样的API来对3D图像包裹技术进行并行化。在一个实施例中,OpenMP可以用于对3D 图像的每一行以及多个视图图像的每个图像执行3D图像包裹。在一个实施例中,并行化逻 辑269可以通过执行对视图图像中的每一个的像素进行包裹的基本任务,来对图像内的所 有行以及多个视图图像并行化3D图像包裹过程。在一个实施例中,在图8C中描绘了用于 对3D图像包裹进行并行化的伪码。 0042 作为进行向量化和并行化以分别利用数据级并行性(DLP)和线程级并行性(TLP) 的结果,可以节省大量计算时间。在一个实施例中,后置逻辑280可以填充露出的孔。 0043 在图3的流程图中描绘了图像渲染。
43、设备200的操作的实施例。在框310,图像渲染 设备200可以使用基准图像产生器220产生图4中描绘的基准图像400,并使用深度图产生 器230产生图5中描绘的深度图500。 0044 在框320中,图像渲染设备200可以使用深度梯度逻辑250来确定深度图500中可 说 明 书CN 102835119 A 10 7/8页 11 能具有大深度梯度的第二区域,并将该大深度梯度变换为线性变化的形状。在一个实施例 中,图像渲染设备200可以确定相邻像素的深度梯度(d0和d1),并然后将相邻像素的深度 梯度之差(d1-d0)与上限(gmax)进行比较,以确定具有大深度梯度的第二区域。在一个实 施例中,深。
44、度梯度逻辑250可以确定(d1-d0)是否大于gmax,并且如果(d1-d0)大于gmax, 则深度梯度逻辑250可以设置d0=(d1-gmax)。结果,大深度梯度可以变换为如图6D中所描 绘的线性变化的形状。 0045 在框350中,图像渲染设备200可以使用平滑器255来平滑图6D的线性变化的形 状。在一个实施例中,平滑器255可以包括低强度、低通高斯滤波器。在一个实施例中,平 滑器255可以产生如图6E的线691和692所描绘的深度经平滑的曲线。 0046 在框360中,图像渲染设备200可以使用向量化逻辑265来使用SIMD技术对DIBR 中的行像素的3D图像包裹进行向量化,以利用DL。
45、P。在一个实施例中,如上文参照图8B描 述了使用SIMD技术的向量化过程。 0047 在框380中,图像渲染设备200可以如上文参照图8C所描述那样使用并行化逻辑 269对图像内的行像素以及多个视图图像的3D图像包裹进行并行化,以利用TLP。 0048 在图9中示出了包括可以支持自动立体显示器上的3D图像渲染的多核心处理器 的计算机系统900的实施例。参照图9,计算机系统900可以包括包含单指令多数据(SIMD) 处理器的通用多核心处理器(或CPU)910。在一个实施例中,CPU 910可以包括诸如核心 911-A至911-N的多个核心,用于支持图像渲染设备200执行的任务,以在显示器990上。
46、渲 染3D图像,显示器990可以包括自动立体显示器。在一个实施例中,CPU 910除了执行各 种其他任务之外还可以在自动立体显示器上执行3D图像的渲染,或者在机器可读存储介 质925中存储用于在自动立体显示器上渲染3D图像的指令序列。然而,所述指令序列也可 以存储在存储器950中,或者存储在任何其他合适的存储介质中。 0049 操作计算机系统900的处理器或CPU 910可以耦合到逻辑930。逻辑930可以耦 合到诸如图像捕获设备210的一个或多个I/O设备960,其可以提供与计算机系统900的接 口。例如,在一个实施例中,逻辑930可以是芯片组逻辑。逻辑930可以耦合到存储器950 或机器可。
47、读存储设备925,其可以是任何类型的存储设备,包括光、磁或半导体存储设备。 0050 在一个实施例中,CPU 910的核心911可以执行3D图像渲染任务,所述3D图像渲 染任务可以包括诸如深度图的预处理、3D包裹、以及用于填充露出的孔的孔填充或后置处 理阶段。在一个实施例中,一个或多个核心可以一同或单独地支持DIBR技术之前的前景处 理。例如,在一个实施例中,核心911-A可以支持深度梯度逻辑250执行的深度梯度检测任 务。在一个实施例中,核心911-B可以支持平滑器255执行的平滑操作。在其他实施例中, 诸如核心911-A的同一核心可以执行逻辑250和255执行的任务二者。在另外的其他实施 。
48、例中,逻辑250和255执行的任务可以由多于一个的核心911共享。在一个实施例中,被分 配预处理任务的核心可以执行如上所述的深度检测任务和深度平滑任务。 0051 在一个实施例中,在使用深度图像平滑技术之前的前景处理对深度图进行预处理 之后,核心911可以执行3D包裹技术,所述3D包裹技术可以利用数据级并行性(DLP)和线 程级并行性(TLP)。在一个实施例中,至少一个核心911可以执行3D包裹操作,所述3D包 裹操作可以包括使用高效的单指令多数据(SIMD)技术对用于行像素的3D图像包裹的代码 进行向量化。在对视图图像进行向量化之后,同一核心911或者另一核心可以支持应用程 说 明 书CN 。
49、102835119 A 11 8/8页 12 序编程接口(API),所述应用程序编程接口可以支持诸如OpenMP的多平台共享存储器多处 理编程。在一个实施例中,核心911可以用于对3D图像包裹过程进行并行化,以利用线程级 并行性。在一个实施例中,可以对3D图像的每一行以及对多个视图图像的每个图像执行使 用OpenMP进行的3D图像包裹。作为进行向量化和并行化以分别利用数据级并行性(DLP) 和线程级并行性(TLP)的结果,可以节省大量计算时间。 0052 本文描述的图形处理技术可以在各种硬件架构中实现。例如,图形功能可以集成 在芯片组内。作为另一实施例,图形功能可以通过包括多核心处理器的通用处理器来实现, 或者被实现为存储在机器可读介质中的一组软件指令。 说 明 书CN 102835119 A 12 1/6页 13 图1 图2 说 明 书 附 图CN 102835119 A 13 2/6页 14 图3 图4 说 明 书 附 图CN 102835119 A 14 3/6页 15 图5 说 明 书 附 图CN 102835119 A 15 4/6页 16 图7 图8A 说。