用于对3D渲染应用中地理定位的媒体内容进行视觉化的方法和装置与流程

文档序号:11890926阅读:325来源:国知局
用于对3D渲染应用中地理定位的媒体内容进行视觉化的方法和装置与流程

服务提供方和设备制造商(例如,无线、小区等)持续地面临着例如通过提供具有竞争力的网络服务而向消费者传递价值和便利的挑战。一个研发领域已经使得用户设备(例如,移动电话、平板电脑、相机等)的被用户用来捕捉或生成媒体内容(例如,图像、视频、音频等)的能力有所提升。在许多情况下,用户设备能够确定元数据并将其与媒体内容项进行关联,其中该元数据例如可以包括位置信息(例如,全球定位系统(GPS)坐标)、日期、时间、用户信息等。在一些情况下,使用三维(3D)重构技术,可能关于真实世界位置来准确记录媒体内容并且在其它应用(例如,3D地图应用)中加以利用。例如,用户可能希望使用该用户所捕捉的某个建筑物的图像以用于在地图应用中进行整合和渲染,其可以根据该建筑物的位置信息(例如,在图像文件的元数据中)而叠加在地图上。因此,服务提供方和设备制造商在对媒体内容进行准确处理并记录以便在3D地图和其它应用中使用时面临重大的技术挑战。



技术实现要素:

因此,需要一种用于准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染的方法。

根据一个实施例,一种方法包括确定至少一个图像中的至少一个第一像素,该至少一个第一像素几何对应于至少一个已渲染的三维地图的至少一个第二像素。该方法还包括处理以下项和/或促成对其的处理:(a)该至少一个第一像素;(b)该至少一个第二像素;(c)与该至少一个第一像素和该至少一个第二像素中的至少一个相关联的元数据;或(d)它们的组合,以确定至少一个置信度值,其中该至少一个置信度值指示由于将该至少一个第一像素投影到该至少一个第二像素上所导致的几何失真的估计的水平。另外,该方法包括至少部分地基于该置信度值而确定是否至少部分地导致该至少一个第一像素到该至少一个已渲染的三维地图上的渲染。

根据另一个实施例,一种装置包括至少一个处理器,以及包括用于一个或多个计算机程序的计算机程序代码的至少一个存储器,该至少一个存储器和计算机程序代码被配置为与该至少一个处理器一起而至少部分地导致该装置确定至少一个图像中的至少一个第一像素,该至少一个第一像素几何对应于至少一个已渲染的三维地图的至少一个第二像素。该装置还被导致处理以下项和/或促成对其的处理:(a)该至少一个第一像素;(b)该至少一个第二像素;(c)与该至少一个第一像素和该至少一个第二像素中的至少一个相关联的元数据;或(d)它们的组合,以确定至少一个置信度值,其中该至少一个置信度值指示由于将该至少一个第一像素投影到该至少一个第二像素上所造成的几何失真的估计的水平。另外,该装置被导致至少部分地基于该置信度值而确定是否至少部分地导致该至少一个第一像素到该至少一个已渲染的三维地图上的渲染。

根据另一个实施例,一种计算机可读存储介质承载一个或多个指令的一个或多个序列,当被一个或多个处理器所执行时,其至少部分地导致装置确定至少一个图像中的至少一个第一像素,该至少一个第一像素几何对应于至少一个已渲染的三维地图的至少一个第二像素。该装置还被导致处理以下项和/或促成对其的处理:(a)该至少一个第一像素;(b)该至少一个第二像素;(c)与该至少一个第一像素和该至少一个第二像素中的至少一个相关联的元数据;或(d)它们的组合,以确定至少一个置信度值,其中该至少一个置信度值指示由于将该至少一个第一像素投影到该至少一个第二像素上所导致的几何失真的估计的水平。另外,该装置被导致至少部分地基于该置信度值而确定是否至少部分导致该至少一个第一像素到该至少一个已渲染的三维地图上的渲染。

根据另一个实施例,一种装置包括用于确定至少一个图像中的至少一个第一像素的部件,该至少一个第一像素几何对应于至少一个已渲染的三维地图的至少一个第二像素。该装置还包括用于处理以下项和/或促成对其的处理的部件:(a)该至少一个第一像素;(b)该至少一个第二像素;(c)与该至少一个第一像素和该至少一个第二像素中的至少一个相关联的元数据;或(d)它们的组合,以确定至少一个置信度值,其中该至少一个置信度值指示由于将该至少一个第一像素投影到该至少一个第二像素上所造成的几何失真的估计的水平。另外,该装置包括用于至少部分地基于该置信度值而确定是否至少部分地导致该至少一个第一像素到至少一个已渲染的三维地图上的渲染的部件。

此外,针对本发明的各个示例实施例,可应用以下内容:一种方法,包括促成对(1)数据和/或(2)信息和/或(3)至少一个信号的处理和/或对其进行处理,该(1)数据和/或(2)信息和/或(3)至少一个信号至少部分地基于本申请中关于本发明的任意实施例所公开的方法(或处理)中的任意一种或者任意组合(或者至少部分地从其得出)。

针对本发明的各个示例实施例,还可应用以下内容:一种方法包括促成对至少一个接口的访问,该接口被配置为允许对至少一个服务进行访问,该至少一个服务被配置为执行本申请中所公开的网络或服务提供方的方法(或处理)中的任意一种或者任意组合。

针对本发明的各个示例实施例,还可应用以下内容:一种方法,包括促成创建和/或促成修改(1)至少一个设备用户接口元件和/或(2)至少一个设备用户接口功能,该(1)至少一个设备用户接口元件和/或(2)至少一个设备用户接口功能至少部分地基于由本申请中关于本发明的任意实施例所公开的方法或处理之一或任意组合所产生的数据和/或信息,和/或由本申请中关于本发明的任意实施例所公开的方法(或处理)之一或任意组合所产生的至少一个信号。

针对本发明的各个示例实施例,还可应用以下内容:一种方法,包括创建和/或修改(1)至少一个设备用户接口元件和/或(2)至少一个设备用户接口功能,该(1)至少一个设备用户接口元件和/或(2)至少一个设备用户接口功能至少部分地基于由本申请中关于本发明的任意实施例所公开的方法(或处理)之一或任意组合所产生的数据和/或信息,和/或由本申请中关于本发明的任意实施例所公开的方法(或处理)之一或任意组合所产生的至少一个信号。

在各个示例实施例中,该方法(或处理)能够在服务提供方一侧或移动设备一侧完成,或者以共享的方式在服务提供方和移动设备之间利用在两侧执行的动作来完成。

针对各个示例实施例,可应用以下内容:一种装置,包括用于执行根据原始提交的权利要求1-15、31-45和66-68中任一项所述的方法的部件。

通过简单地对包括预期执行本发明的最佳模式在内的多个特定实施例和实施方式进行说明,本发明的另外其它的方法、特征和优势将由于以下详细描述而是轻易显而易见的。本发明还能够为其它且不同的实施例,并且其若干细节能够以各种显然的方式进行修改,而并不背离本发明的精神和范围。因此,附图和描述要被认为其本质上是说明性而非限制性的。

附图说明

在附图的图示中通过示例而非限制图示了本发明的实施例:

图1是根据一个实施例的能够准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染的系统的示图;

图2是根据一个实施例的能够准确处理并记录媒体内容以用于在3D地图或其它应用中进行渲染的用户设备的组件的示图;

图3是根据一个实施例的用于处理多个图像的像素以便渲染至三维模型上的处理的概述的图示;

图4至图7是根据各个实施例的用于对第一图像和第二图像的像素进行处理以确定将第一像素渲染至第二图像的三维渲染上的置信度值的流程图;

图8图示了根据各个实施例的各种相机与相机和相机视场中的物体之间的相关联射线;

图9A和图9B图示了根据各个实施例的媒体应用中的对象的渲染;

图9C和图9D包括根据各个实施例的用于在渲染物体时生成并分析深度偏移量值的处理流程图;

图9E至图9G图示了根据各个实施例的在物体渲染中对深度偏移量值的分析的图形表示形式;

图10是根据一个实施例的在图4到图7的处理中所采用的地心地固(ECEF)笛卡尔坐标系的示图;

图11图示了根据一个实施例的在图4到图7的处理中所采用的笛卡尔坐标系(CCS)的其原点被限制于地球上的3D局部系统以及三条轴线(X-Y-Z);

图12是根据一个实施例的在图4到图7的处理中所采用的3D空间中的相机方位的示图;

图13是根据一个实施例的在图4到图7的处理中所采用的CCS_3D_ECEF中的相机姿态的示图;

图14是能够被用来实施本发明实施例的硬件的示图;

图15是能够被用来实施本发明实施例的芯片组的示图;和

图16是能够被用来实施本发明实施例的移动终端(例如,手机)的示图。

具体实施方式

公开了用于准确处理并记录媒体内容以用于在3D地图和其它应用中进行渲染的方法、装置和计算机程序的示例。在以下描述中,出于解释的目的,给出了多个具体细节以便提供对本发明实施例的全面理解。然而,对于本领域技术人员显而易见的是,可以没有这些具体细节或者利用等同布置来实践本发明的实施例。在其它实例中,公知结构和设备以框图形式示出以避免对本发明的实施例造成不必要的混淆。

诸如GPS位置和本地相机姿态之类的不同类型的地理位置元数据可以被媒体呈现应用和服务在经由增强现实(AR)或虚拟现实(VR)方法渲染媒体内容时所使用。例如,用户所捕捉的兴趣点(POI)的图像可以在地图中呈现该POI的地理位置时进行整合或叠加。例如,包括人、车辆、建筑物等的某个街景的图像可以被投影到能够在3D地图应用中获得的该街景的3D模型上,其中该3D模型可以从多种来源进行构造,例如光检测和测距(LIDAR)点云、照片、公共数据库等。然而,某个景象的3D构造模型可能包括不准确性,其中该景象中的3D物体(例如,建筑物的窗户)的某些细节可能并不精确或者该3D模型可能丢失会出现在该景象的图像/视频之中的某些物体(例如,人、车辆、树等)。而且,在一些情况下,捕捉景象图像的相机/设备的位置信息可以在地图中作为虚拟相机被采用和渲染,这允许对地图的呈现的用户交互和操控。例如,用户可以改变虚拟相机的视角以用于从地图中不同的虚拟位置进行观看。在一种情形中,3D地图提供了深度和高度形式的增加信息,而且提供了通过自由移动虚拟相机观看地图的更大自由度。然而,虽然可能重构图像或视频相机的姿态,但是以有意义且在审美上令人愉悦的方式对媒体内容进行视觉化仍然具有挑战,这例如是因为在2D地图中使用的图像视觉化方法并不容易扩展至3D地图。在一些情形中,可以通过将所选择的图像集合映射在3D地图数据上并且根据观看参数将它们混合而将地理定位图像在3D地图环境中进行视觉化,从而能够向用户呈现相干且交互式的3D视图。在与图像细节进行比较时,底层3D几何的一些或部分仍然会是明显不准确的,这会导致视觉假象,因为所投影的图像会由于缺少深度信息而没有对准。在其它实例中,一些地理位置的3D几何数据可能根本就无法获得。

为了解决该问题,图1的系统100引入了用于准确处理并记录媒体内容以用于在3D地图和其它应用中进行渲染的能力。在各个实施例中,一个或多个用户图像和视频能够在基于观看角度和距离实时合成的3D地图上作为所投影的“聚光灯”进行渲染。例如,可以经由3D地图应用呈现具有多个图像聚光灯的场景视图,其中聚光灯可以在更接近于图像进行移动时有所扩展。在一个实施例中,聚光灯被动态调节从而示出图像中可能在基本上没有失真的情况下被示出的部分或者与该部分相关联。由于图像直接在地图上进行渲染,而不是漂浮在地平面上方,所以将容易看到每个图像的主体而其中地图的整体视图则能够保持整洁。另外,图像之间的转换将是平滑且无缝的。例如,当虚拟相机与原始相机处于相同位置时,随后就能够完整地看到图像。在一个实例中,当虚拟相机远离时,随后图像就逐渐淡出从而与底层3D地图最佳对准的图像部分可以是最后保持可见的。

在一个实例中,图像或视频片段的渲染可以通过使用延迟着色和投影变形来实施。例如,在以传统方式渲染3D地图的同时,用户设备上的处理器/算法(例如,图形处理器)能够将地图场景的深度缓冲器捕捉到OpenGL(例如,应用编程接口(API))帧缓冲对象或Direct3D(API)表面之中。在一个实施例中,能够利用从在图像记录阶段所推导处的用户设备/相机参数所重构的体(volume)几何形状而将各种数量的用户图像渲染为3D地图体。此外,针对图像体所覆盖的每个像素,像素着色器中的深度缓冲器可以被用来重构其3D坐标并且计算其在所投影图像内的位置。更具体地,能够针对来自用户图像的哪个像素被投影到已渲染的3D地图中的每个像素上进行确定。

另外,在已经计算了对应于3D地图像素的图像像素的情况下,该处理器/算法能够计算从3D像素位置到原始相机位置和当前虚拟相机位置的射线之间的角度。此外,所计算出的角度信息能够被用来计算/更新像素的累积置信度值,并且控制图像与3D地图的像素的混合。在一种情形中,原始和虚拟相机射线之间的角度越小,就有越多图像可以对置信度值有所贡献,因此对最终的渲染有所贡献。相反低,表面法线和原始相机射线之间的角度越大,对于置信度值的贡献就越小,并且因此对于最终渲染的贡献就越小。换句话说,当从与其原始被拍照/捕捉完全相同的方向观看像素时,它是不透明的。可替换地,当以远离原始拍摄方向的一些阈值角度观看像素时,则其变为透明;而在这之间的情形中,像素透明度内插于那两个极值之间。

在一些情况下,当在设备处对图像进行渲染时,有关该用户设备的显示器位置的深度偏移量值可以被生成并保存在深度偏移量值缓冲器中。在一个实施例中,可以基于抖动的深度偏移量值以及至少输入图像的子集而对一个或多个低分辨率候选图像进行渲染。此外,系统100可以将该渲染结果与候选图像进行比较,并且利用针对设备的每个屏幕位置产生最相干图像的抖动偏移量值对深度偏移量值缓冲器进行更新。此外,可以在利用经更新的深度偏移量值使得每个像素处的主深度值发生偏移的同时渲染高分辨率的输出图像。在一个实施例中,该深度偏移量值缓冲器可以被保存在图形处理单元的存储器部分之中,而使得其能够与存储在深度缓冲器中的深度值动态组合。在一个示例中,该深度偏移量值缓冲器可以是低分辨率的,而使得每个像素针对4×4个屏幕像素的块都具有8位的偏移量值。在一种情形中,通过以固定量使得现有深度偏移量值发生偏差,通过从相邻像素对深度偏移量进行采样等,可以随机生成抖动的深度偏移量值。

在一个实施例中,可以使用图像的不同子集生成多个候选图像,其能够被分析以用于对例如相干性之类的特性进行渲染。在另一个实施例中,可以渲染多个完整图像,其中渲染相干性可以按像素进行分析并且被存储在候选图像的侧方通道中。在一些实例中,相干性分析可以包括将个体像素的红绿蓝(RGB)值进行比较(例如,如果仅渲染一个候选图像),或者其可以包括将每个候选图像中的更大像素块进行比较并且例如跨像素计算均方根误差。在一个示例中,该分析可以在GPU上通过读取候选图像及其相应深度偏移量值作为输入并且更新主深度偏移量缓冲器而作为输出来进行。

在一个实施例中,输入图像或候选图像例如可以使用高斯滤波器进行模糊,而使得其中的高频细节对于相干性分析的影响较小。在一种情形中,深度偏移量缓冲器可以跨多个帧进行保持,而使得值可以随时间以迭代方式进行改进。在一个实例中,在快速相机运动期间,深度偏移量值可以从之前的视点反向投影至3D场景之中,其随后可以从新的视点渲染回来而使得缓冲器的内容随3D视图而保持不变。在一个实施例中,不同于深度偏移量值,可以使用绝对深度值,这可以经由将每一帧处的深度缓冲器进行变换从而适应相机移动。

注意到,以上应用于照片的方法能够容易地被扩展至具有附加特征的视频内容,该视频内容可以基于所重构的视频片段的3D运动轨迹而被实时动画呈现。“视频聚光灯”随后可以在3D地图上移动,并且根据其与当前观看位置的接近度而淡入和淡出。

多个(例如,重叠的)图像和视频之间的混合能够通过使用基本alpha混合并且按照图像/视频的原始相机位置与当前视点的距离对图像/视频进行排序来实现,或者使用目标alpha通道对每一个的贡献进行求和来实现。后者的方法可能对于渲染顺序不太敏感,但是也能够从排序获益。

在一个实施例中,系统100能够针对在GPS中录制的图像或视频定位相机姿态(例如,从元数据),从而当用户捕捉或上传图像/视频时,系统能够确定其被拍摄的位置以及每个图像或视频帧的准确相机位置,后者可以被用于在3D渲染应用中进行呈现。

在一种情形中,系统100可以对图像(例如,照片、图像流、视频、图片等)进行处理以确定图像内的各种要素,其中该要素可以包括建筑物、地标或其它POI。在一些实施例中,要素的位置信息之前可能已经被嵌入在图像中,或者该位置信息可以由对图像数据的进一步处理所确定。

在一个实施例中,有关3D模型的准确性的数据可以被用来对“良好”观看角度的范围加以限制。在一个实施例中,可以对图像或视频帧的内容进行分析以便排除图像/视频中的任何失焦区域。

在一个实施例中,系统100可以确定至少一个图像中几何对应于至少一个已渲染的三维地图中的至少一个第二像素的至少一个第一像素。在一个实施例中,用户设备(例如,移动设备)处的图形处理器可以对能够在设备处获得或者能够从一个或多个外部源(例如,内容提供方)获得的对象的一个或多个图像进行处理,其中该处理包括确定一个或多个图像的至少一个第一像素是否对应于至少一个已渲染的地图中的对象的三维模型的至少一个第二像素。例如,用户可以在用户设备上具有POI(例如,建筑物)的图像,并且他可能想要经由3D地图应用中的呈现形式来观看该图像,其中用户设备中的处理器可以对图像的像素进行处理来确定它们是否在几何上对应于在地图应用中已渲染的POI的模型的像素。

在一个实施例中,系统100可以对以下进行处理和/或促成其处理:(a)至少一个第一像素;(b)至少一个第二像素;(c)与至少一个第一像素和第二像素中的至少一个相关联的元数据;或(d)它们的组合,从而确定至少一个置信度值,其中该至少一个置信度值指示由于将该至少一个第一像素投影到该至少一个第二像素上所导致的几何失真的估计的水平。在一个实施例中,与第一图像和/或第一像素相关联的元数据可以包括第一图像和/或像素的位置信息,其中该位置信息可以参照局部或全局位置坐标系。另外,第一像素的位置信息可以被用来与第二图像的像素的位置信息进行比较,以用于确定两个像素在第一像素被投影到第二像素上时对准得如何。此外,可以计算置信度值来指示第一像素被投影到第二像素上的失真。在各个实施例中,置信度值的计算可以至少部分地基于入射(图像射线到表面)和观看(图像射线到虚拟相机射线)角度,所投影图像的分辨率(例如,第一图像的分辨率)、图像失真的直接测量,例如所投影图像的坐标的部分地导数,等等。

在一个实施例中,系统100可以至少部分地基于该置信度值而确定是否至少部分将至少一个第一像素渲染到至少一个所渲染的三维地图上。在一种情形中,用户设备处的处理器可以利用该置信度值来确定是否使用第一图像的像素以便投影到第二图像的像素上。例如,具有较低置信度值的第一像素可以指示在其被投影到3D地图/模型的第二像素上的情况下的失真。

在一个实施例中,系统100可以确定与至少一个已渲染的三维地图的至少一个用户交互。在一种情形中,用户可以利用用户设备处的UI特征与用户设备处的3D地图应用的渲染进行交互,其中该用户可能希望对地图中的虚拟视角进行操控;例如从不同角度、不同距离、不同高度等。在一个实施例中,至少一个用户交互导致以下的变化:(a)至少一个已渲染的三维地图的至少一个虚拟相机位置,(b)至少一个第一像素、至少一个第一图像、至少一个第二像素和至少一个已渲染的三维地图中的至少一个的至少一种渲染特性;或(c)它们的组合;并且其中该至少一种渲染特性至少部分包括衰减参数、切换参数、大小参数,或者它们的组合。

在一个实施例中,系统100可以至少部分地基于至少一个用户交互而至少部分地导致至少一个置信度值,至少一个第一像素到至少一个已渲染的三维地图上的渲染,或者它们的组合被动态更新。例如,用户交互可以使得从不同角度观看地图中的POI,其中不同观看角度能够导致第一图像的像素与在地图中已渲染的第二图像/模型的像素的不同对准。在一个实施例中,处理器可以基于用户与3D应用中的渲染的交互所导致的变化而更新置信度值以用于将第一图像的第一像素渲染/投影到第二图像的第二像素上。在一个实施例中,处理器能够确定相机的场深度(例如,从EXIF数据)和/或分析多个图像的内容以识别每个图像中的模糊区域从而进一步调制和更新相关联的置信度值,例如这会导致每个图像的基本上锐利的区域的呈现。

在一个实施例中,系统100可以至少部分将至少一个置信度值与至少一个阈值置信度标准进行比较从而确定是否至少部分地导致至少一个第一像素被渲染到至少一个已渲染的三维地图上。在各个实施例中,该阈值置信度标准可以至少部分地基于3D模型的地理精度(例如,从元数据),图像内容元数据的分析以便确定图像中的模糊或锐利区域,等等。在一种情形中,如果像素的置信度值低于阈值置信度标准,则用户设备处的处理器可以决定不将该像素用于投射到另一个像素上以便在应用中进行呈现。例如,如果第一像素的置信度值低于阈值,则其可以指示使用该第一像素会在被投影到第二像素上的情况下导致模糊渲染。在各个实施中,阈值置信度标准可以由用户设备处的一个或多个应用、设备的用户、内容/服务提供方、用户设备处的资源和能力等来确定。在一个实施例中,高的置信度值可以指示不透明像素,而低的置信度值则可以指示透明像素。

在一个实施例中,系统100可以处理元数据和/或促成其处理以确定与至少一个图像相关联的至少一个第一相机位置以及与至少一个已渲染的三维地图相关联的至少一个第二相机位置。在一种情形中,与一个或多个图像相关联的元数据可以被用于确定在捕捉一个或多个图像时所使用的一个或多个相机的位置信息。例如,该元数据可以指示位置信息,位置信息指示笛卡尔坐标系中的X、Y和Z位置。

在一个实施例中,系统100可以确定至少一个第一相机位置和至少一个第二相机位置之间的至少一个偏移量,其中该至少一个置信度值进一步至少部分地基于该偏移量。在一种情形中,一个或多个相机的位置信息被用来确定相机之间的偏移量;例如,X、Y或Z方向中的偏移量。另外,该偏移量信息能够被用来更新与多个图像中的多个像素相关联的置信度值。例如,两个相机之间的高偏移量值会导致与那些相机所捕捉的像素或图像相关联的较低的置信度值。

在一个实施例中,系统100可以确定从至少一个第一相机位置延伸至至少一个第一像素和至少一个第二像素中的至少一个的至少一个像素位置的至少一个第一射线。在一种情形中,与相机相关联的元数据中的位置信息可以被用来确定从相机位置到第一图像的第一像素和第二图像或者与第二图像相关联的模型的第二像素的位置的第一射线(例如,视线)。例如,相机的坐标(例如,X、Y和Z位置信息)可以与建筑物图像中的像素的坐标(例如,X、Y和Z位置信息)进行比较以确定第一射线。在一种情形中,参考相机位置附近的地平面的像素的射线可以通过使用该相机的位置信息并且将其与地平面处的位置信息进行比较来确定。在一个实施例中,该射线可以参考与第一相机所捕捉的POI的图像相关联的像素来确定。

在一个实施例中,系统100可以确定从至少一个第二相机位置到至少一个像素位置延伸的至少一个第二射线。在一个实施例中,与第二相机位置相关联的位置信息(例如,虚拟相机位置)可以被用来确定第二相机和关联于应用中已渲染的图像或模型的像素位置之间的第二射线。在一种情形中,第二相机位置可以从用户与图像或POI在3D地图应用中的渲染的交互而确定。

在一个实施例中,系统100可以确定在至少一个第一射线和至少一个第二射线之间所形成的至少一个角度,其中该置信度值至少部分地基于该至少一个角度而确定。在一个实施例中,从第一相机延伸至像素的第一射线可以与从第二相机延伸至该像素的第二射线进行比较以便确定第一射线和第二射线之间的角度。在一个实施例中,来自第一相机的多个射线可以与来自第二相机的多个射线进行比较以确定第一射线和第二射线之间的多个角度。

在一个实施例中,系统100可以至少部分地基于所累加的置信度值而针对至少一个像素被渲染到至少一个已渲染的三维地图上而确定至少一个透明度。在一个示例中,来自对象的各个图像的要被投影到该对象的模型的像素上的像素的置信度值可以在累加缓冲器中进行累加。在一个实施例中,该至少一个透明度水平随着所累加的置信度值的增大而减小。在一个实施例中,低于置信度阈值的值的置信度值可以指示透明像素。

在一个实施例中,系统100可以确定至少一个图像包括多个重叠图像。在一种情形中,POI的一个或多个图像可以被利用并且被重叠在应用中已渲染的该POI的另一个图像或模型上。例如,某个建筑物的若干图像可以被3D地图应用用于与地图应用中已渲染的该相同建筑物的3D模型的重叠。

在一个实施例中,系统100可以至少部分地基于置信度值而导致至少部分对多个重叠图像进行排序、混合或者它们的组合。在一种情形中,POI的多个图像可能已经被多个相机所捕捉,其中那些图像可以被重叠至应用中—例如在3D地图应用中—已渲染的POI的模型/图像上。在一个示例中,每个图像的每个像素都可以根据与每个像素相关联的置信度值或置信度阈值标准进行混合。混合结果可以通过渲染基于相机位置排序的图像而有所改善,从而来自不同图像的贡献都以适用于所使用的混合函数的顺序被添加至累加缓冲器。

在一个实施例中,其中至少一个图像包括至少一个视频,系统100可以针对该至少一个视频确定至少一个三维运动轨迹,其中该至少一个置信度值、该至少一个像素到至少一个已渲染的三维地图上的渲染至少部分地基于该三维运动轨迹。在一种情形中,与POI相关联的媒体内容可以是要在重叠到渲染应用中的POI的另一个媒体内容(例如,图像)或模型上时所使用的视频片段。例如,用户可以具有某个城市中心的视频,他可能想要在3D地图应用中进行呈现时对其进行观看。在一个实施例中,该应用要在那里进行渲染的用户设备处的处理器可以对视频片段和/或其元数据进行处理以便针对该视频片段确定三维运动轨迹。另外,置信度值或者一个或多个像素到已渲染的三维地图上的渲染可以基于该三维运动轨迹。例如,由于用户设备处的用户或应用可以对视频片段在3D地图应用中的虚拟呈现中的渲染进行交换和移动,所以该视频片段的像素的渲染的置信度值可以基于该3D运动轨迹进行更新。例如,该渲染在一帧中可能是模糊的而在另一帧中则是清晰的。

在一个实施例中,系统100可以参考第二相机位置而至少部分导致对至少一个图像的至少一个深度偏移量值进行估计。在各个实施例中,系统100可以利用算法基于预定值集合、步幅值或随机值来估计深度偏移量值。例如,预定值集合可以包括一米、几英寸、一英尺等的深度偏移量,其可以是第一图像的位置和第二相机之间的距离偏移量。在一个实例中,深度偏移量可以是从场景几何朝向或远离虚拟渲染相机的位置的距离偏移量。

在一个实施例中,系统100可以至少部分导致利用至少一个所估计的深度偏移量值对深度偏移量值缓冲器进行更新。在一个实施例中,可以利用一个或多个迭代深度偏移量值估计对深度偏移量缓冲器进行更新。在一个示例中,深度偏移量值缓冲器可以是低分辨率、高分辨率等的缓冲器,其可以存储与图像的各种块大小(例如,8×8像素块)相关联的深度偏移量值。

在一个实施例中,系统100可以至少部分地基于至少一个深度偏移量值而将至少一个图像渲染到至少一个已渲染的三维地图上。在一个实施例中,系统100可以至少部分地基于至少一个用户交互和至少一个深度偏移量值而将至少一个图像渲染到至少一个已渲染的三维地图上。在一个实施例中,一个或多个图像或者一个或多个图像的一个或多个部分的后续渲染可以是将下一帧渲染到屏幕位置,其基于距之前渲染的一个或多个深度偏移量值(例如,深度偏移量值)以及一个或多个新的相机位置,例如第一相机、第二相机等。

在一个实施例中,系统100可以参考第二相机位置而至少部分导致针对至少一个图像生成至少一个新的候选深度偏移量值。在各个实施例中,系统100可以利用算法来估计一个或多个新的深度偏移量值,其可以基于之前存储在深度偏移量值缓冲器的值、深度偏移量值缓冲器的大小、图像的当前渲染帧、相邻/邻近深度值、预定值集合、步幅值或随机偏移量。在一个实例中,来自缓冲器存储的场景几何数据以及来自深度偏移量值缓冲器的深度偏移量值可以在生成新的候选深度偏移量值时被加以利用。

在一个实施例中,系统100可以至少部分地基于至少一个深度偏移量值而至少部分地导致至少一个测试图像到至少一个已渲染的三维地图上的第一渲染,至少一个深度偏移量值包括场景几何数据、投影图像纹理数据和深度偏移量值。另外,在一个实施例中,系统100可以至少部分地基于至少一个新的候选深度偏移量值而至少部分地导致至少一个测试图像到至少一个已渲染的三维地图上的第二渲染。在一个实例中,相同图像或图像部分可以利用新的候选值进行渲染。

在一个实施例中,系统100可以至少部分地导致对第一渲染和第二渲染进行分析以确定与第一渲染和第二渲染相关联的一个或多个渲染特性。在一个实施例中,该分析结果可以被用来基于之前的深度偏移量值和新的候选深度偏移量值而确定图像渲染的质量、相干性或匹配。例如,具有一米偏移量的图像渲染可以与具有三米偏移量的图像渲染进行比较。在一个实施例中,该渲染和分析可以对图像第一部分(例如,像素块)进行。在一个实施例中,系统100可以至少部分地基于该分析而至少部分地导致利用至少一个深度偏移量值或至少一个新的候选深度偏移量值对深度偏移量值缓冲器进行更新。在一个示例中,被选择用于更新的新的候选值可以基于迭代次数和分析结果。

如图1所示,在一个实施例中,系统100包括用户设备(UE)101a-101n(也统称为UE 101),其可以被用来执行包括社交网络、web浏览器、内容分享、多媒体应用、增强现实(AR)、虚拟现实(VR)、用户接口(UI)、地图应用、web客户端等在内的一个或多个应用103a-103n(也统称为应用103)。

此外,应用103可以直接和/或经由通信网络111与其它UE 101、一个或多个服务提供方105a-105n(也统称为服务提供方105)、一个或多个内容提供方107a-107n(也统称为内容提供方107)、一个或多个GPS卫星109a-109n(也统称为GPS卫星109)和/或与系统100的其它组件进行通信。在一个实施例中,UE 101可以包括媒体处理模块113a-113n(也统称为MP模块113)以及数据/内容收集模块115a-115n(也统称为DC模块115)

在一个实施例中,MP模块113可以利用一种或多种算法以对可用于UE 101的图像/视频进行处理。在一些实施例中,MP模块113可以在应用103中实施,例如在地图应用中实施。除此之外或可替换地,MP模块113可以是在UE 101执行的独立进程。

在一个实施例中,MP模块113可以利用一种或多种算法来执行与处理一个或多个图像从而确定相机位置信息和/或相机姿态信息相关联的一种或多种功能,其中该信息可以根据全局坐标系统表示,由此至少部分地导致这些信息作为元数据信息而与一个或多个图像相关联。在一个实施例中,MP模块113可以对与一个或多个图像相关联的一个或多个像素进行处理从而确定与该像素、图像等相关联的一种或多种属性。

在一个实施例中,DC模块115可以被用于确定和/或收集与UE101、UE 101的一个或多个用户、应用103、一个或多个媒体内容项(例如,多媒体内容)等相关联的数据和/或内容。此外,UE 101能够执行作为软件客户端的应用103以便存储、处理一个或多个信息项和/或将其转发至系统100的其它组件。

在一个实施例中,服务提供方105可以包括一个或多个服务数据库117a-117n(也统称为服务数据库117)和/或有权对其进行访问,该服务数据库包括各种用户信息、用户资料、用户偏好、一个或多个用户设备的一个或多个资料(例如,设备配置、传感器信息等)、服务提供方105的信息、其它服务提供方的信息,等等。在一个实施例中,服务提供方105可以包括提供一种或多种服务的一个或多个服务提供方,上述服务例如在线购物、社交网络服务(例如,博客)、内容分享、媒体上传、媒体下载、媒体流、账户管理服务,或者它们的组合。

在一个实施例中,内容提供方107可以包括一个或多个内容数据库119a-119n(也统称为内容数据库119)和/或有权对其进行访问,该内容数据库可以存储、包括和/或有权访问各种内容项。例如,内容提供方107可以存储(例如,在内容数据库119)各个用户、各个服务提供方、众包内容等所提供的内容项。另外,服务提供方105和/或内容提供方107可以采用一个或多个服务应用编程接口(API)/集成接口,通过服务应用编程接口(API)/集成接口可以分享、访问和/或处理(例如,与用户、应用、服务、内容等相关联的)通信、通知、更新、内容和信息。

作为示例,服务提供方105或内容提供方107可以经由web服务器或其它通信手段(例如,文本消息、语音、即时消息、聊天等)提供任意数量的服务(例如,地图服务、社交网络服务、媒体服务、内容服务等)。

UE 101是任意类型的移动终端、固定终端或便携式终端,包括移动手机、站、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上计算机、笔记本计算机、上网本计算机、板式计算机、个人通信系统(PCS)设备、个人导航设备、个人数字助理(PDA)、音/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还预见到的是,UE 101能够支持任意类型的针对用户的接口(诸如“可佩戴”电路等)。另外,UE 101可以包括用于收集与用户、用户的环境和/或UE 101相关联的数据的各种传感器,例如,该传感器可以确定和/或捕捉音频、视频、图像、大气条件、设备位置、用户情绪、周边照明、用户生理信息、设备移动速度和方向,等等。

在一个实施例中,UE 101包括能够确定UE 101的位置(例如,用户的位置)的位置模块/传感器。UE 101的位置能够通过诸如GPS、辅助GPS(A-GPS)、起源小区、无线局域网三角计算之类的三角计算或其它位置外推技术来确定。标准GPS和A-GPS系统能够使用一个或多个卫星111来标定UE 101的位置(例如,经度、维度和海拔)。起源小区系统能够被用来确定小区UE 101与之同步的小区塔台。该信息提供了UE 101的粗糙位置,因为小区塔台能够具有可以被地理映射的唯一小区标识符(小区ID)。该位置模块/传感器能够提供有关UE 101的位置的更为精细的细节。在另一个实施例中,UE 101可以利用局域网(例如,LAN、WLAN)连接而例如从互联网源(例如,服务提供商)确定UE 101的位置信息。

作为示例,系统100的通信网络111包括一个或多个网络,诸如数据网络、无线网络、电话网络或者其任意组合。预见到,数据网络可以是任意局域网(LAN)、城域网(MAN)、广域网(WAN)、公众数据网(例如,互联网)、短距离无线网络,或者任意其它的适当分组交换网络,诸如商业所有的私人分组交换网络,例如专设线缆或光纤网络等,或者其任意组合。此外,无线网络例如可以是小区网络并且可以采用各种技术,包括全域进化增强数据速率(EDGE)、通用分组无线服务(GPRS)、全球移动通信系统(GSM)、互联网协议多媒体子系统(IMS)、通用移动电信系统(UMTS)等,以及任意其它适当无线介质,例如全球微波接入互操作性(WiMAX)、长期演进(LTE)网络、码分多址(CDMA)、宽带码分多址(WCDMA)、无线保真度(WiFi)、无线LAN(WLAN)、互联网协议(IP)数据广播、卫星、移动自组织网络(MANET)等,或者其任意组合。

作为示例,UE 101、服务提供方105和内容提供方107使用公知、新的或仍在研发的协议互相进行通信,并且与通信网络111的其它组件进行通信。在这里的上下文中,协议包括定义通信网络111内的网络节点如何基于通信链路上所发送的信息互相进行交互的规则集合。协议在每个节点的不同操作层面是有效的,从生成和接收各种类型的物理信号到选择用于传送那些信号的链路,到那些信号所指示的信息的格式,到识别计算机系统上执行的哪个软件应用发送或接收信息。用于通过网络交换信息的在概念上不同的协议层面在开放系统互连(OSI)参考模型中有所描述。

网络节点之间的通信通常通过交换离散的数据分组来进行。每个分组通常包括:(1)与特定协议相关联的报头信息,以及(2)跟随在报头信息之后并且包含可以独立于特定协议进行处理的有效载荷信息。在一些协议中,分组包括(3)跟随在有效载荷之后并且指示有效载荷信息结束的报尾信息。报头包括诸如分组来源、其目的地、有效载荷长度之类的信息以及协议所使用的其它属性。通常,特定协议的有效载荷中的数据包括与OSI参考模型的不同的较高层相关联的不同协议的报头和有效载荷。特定协议通常指示其有效载荷中所包含的下一个协议的类型。较高层协议被视为封装在较低层协议之中。如OSI参考模型所定义的,遍历诸如互联网的多个异构网络的分组中所包括的报头通常包括物理(第1层)报头、数据链路(第2层)报头、互联网络(第3层)报头和传输(第4层)报头,以及各种应用(第5层、第6层和第7层)报头。

在一个实施例中,UE 101、服务提供商105和/或内容提供商107可以根据客户端-服务器模型进行交互。注意到,计算机处理交互的客户端-服务器模型是广泛周知且使用的。根据客户端-服务器模型,客户端处理向服务器处理发送包括请求的消息,并且服务器处理通过提供服务进行响应。服务器处理还可以利用对客户端处理的响应而返回消息。经常,客户端处理和服务器处理在称作主机的不同计算机设备上执行,并且使用一个或多个用于网络通信的协议而经由网络进行通信。术语“服务器”一般被用来指代提供服务的处理或者该处理在其上进行操作的主机计算机。类似地,术语“客户端”一般被用来指代进行请求的处理或者该处理在其上进行操作的主机计算机。如这里所使用的,除非从上下文明确另外指出,否则术语“客户端”和“服务器”是指处理而不是主机计算机。此外,除其它之外,出于包括可靠性、可扩展性和冗余性在内的原因,服务器所执行的处理可以被分解为多个主机(有时称作层)上的多个处理来运行。还注意到,客户端和服务器的角色并非是固定的;在一些情况下,设备可以作为可以同时实现的客户端和服务器,这和/或设备可以在这些角色之间进行交替变化。

图2是根据一个实施例的能够准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染的用户设备的组件的示图。作为示例,UE 101包括一个或多个用于经由UE 101处的应用103接收、生成、捕捉或处理媒体内容并渲染该媒体内容的组件。所预见到的是,这些组件的功能可以在一个或多个组件中进行合并或者由等同功能的其它组件来执行。在该实施例中,UE 101包括DC模块115,后者可以包括一个或多个位置模块201、磁力计模块203、加速计模块205、传感器模块207和多媒体模块209。另外,UE 101还可以包括运行时间模块211以对UE 101的其它组件、MP模块113、用户接口213、通信模块215、情境处理模块217和存储器模块219的使用进行协调。UE 101的应用103能够利用UE 101的组件而在运行时间模块211上执行。

位置模块201例如经由UE 101的位置来确定用户的位置。用户的位置能够通过诸如GPS、辅助GPS(A-GPS)、起源小区、无线局域网三角计算之类的三角计算或其它位置外推技术来确定。标准GPS和A-GPS系统能够使用卫星109来标定UE 101的位置。起源小区系统能够被用来确定小区UE 101与之同步的小区塔台。该信息提供了UE 101的粗糙位置,因为小区塔台能够具有可以被地理映射的唯一小区标识符(小区ID)。位置模块201还能够利用多种技术来检测UE 101的位置。位置坐标(例如,GPS坐标)能够给出有关UE 101在捕捉媒体时的位置的更为精细的细节。在一个实施例中,GPS坐标作为情境信息被存储在存储器模块219中并且能够被情境处理模块217、DC模块115、服务提供方105和/或系统100的其它实体所获取(例如,经由通信接口215)。此外,在某些实施例中,GPS坐标能够包括海拔以提供高度。在其它实施例中,海拔能够使用另一种类型的测高仪来确定。在某些实施例中,位置模块210可以是用于确定UE 101、图像的位置的部件,或者被用来将视图中的物体与位置进行关联。

磁力计模块203能够在寻找UE 101的水平方位时被使用。磁力计是能够测量磁场强度和/或方向的仪器。使用与罗盘相同的方法,磁力计能够使用地球磁场来确定UE 101的方向。媒体捕捉设备(例如,相机)的前方在确定方向时能够被标记为基准点。因此,如果磁场相比该基准点指向北方,则获知UE 101的基准点与磁场的角度。能够进行简单的计算来确定UE 101的方向。在一个实施例中,从磁力计所获得的水平方向数据能够被存储在存储器模块219中,使得能够被UE 101的其它模块和/或应用103所获取,和/或经由通信接口215而被传送至系统100的一个或多个实体。

加速计模块205能够被用来确定UE 101的垂直方位。加速计是能够测量加速度的仪器。使用利用轴线X、Y和Z的三轴加速计,在三个具有已知角度的方向提供加速度。同样,媒体捕捉设备的前方在确定方向时能够被标记为基准点。因为由于重力所导致的加速度是已知的,所以当UE 101处于静止时,如与地球重力相比,加速计模块205能够确定UE 101被指向的角度。在某些实施例中,磁力计模块203和加速计模块205可以作为用于确认用户视角的部件。该视角信息可以被存储在存储器模块219中,使得能够被UE 101的其它模块和/或应用103所获取,和/或被发送至系统100的一个或多个实体。

在各个实施例中,传感器模块207能够处理来自各个传感器(例如,GPS、加速计、陀螺仪、热力计等)的传感器数据以确定UE 101周围的环境(例如,大气)条件、用户情绪(例如,饥饿、生气、劳累等)、位置信息,以及来自距离传感器的可以在一个或多个设备上获取到的各种其它信息。例如,传感器模块207可以检测包括湿度、温度、地理位置、用户的生物计量数据等的条件。同样,该信息能够被存储在存储器模块219中并且被发送至系统100的情境处理模块217和/或其它实体。在某些实施例中,从DC收集模块115所收集到的信息能够被运行时间模块211所取得并且存储在存储器模块219中,使得能够被UE 101的其它模块和/或应用103所获取,和/或被发送至系统100的一个或多个实体。

在某些实施例中,传感器模块207例如可以包括用于采集图像数据的相机/成像传感器,用于采集音频数据的音频录制器,用于采集位置数据的全球定位传感器,用于检测无线信号或网络数据、时间信息等的网络检测传感器。在一种情形中,相机传感器可以为UE 101的用户提供3D姿态估计、追踪和集群功能以便进行适当的相机部署。在一种情形中,传感器模块207可以包括位置传感器(例如,GPS)、光传感器,增配了高度传感器和加速度传感器的方位传感器、倾斜传感器、湿度传感器、压力传感器、音频传感器(例如,麦克风),或者用于不同短距离通信(例如,蓝牙、WiFi等)的接收器。在一个实施例中,传感器模块207可以检测用户与UE 101、应用103和/或系统100的一个或多个其它元件所生成的用户接口的交互。传感器模块207可以结合系统100进行工作,其中传感器模块207可以识别用户接口上被用户诸如通过扫拭、点击或触摸UE 101的屏幕所选择的点。

在一个实施例中,多媒体模块209可以被用来捕捉各种媒体项,例如图形编码的数据表示形式、图像、视频、音频等,其中所捕捉的媒体可以被提交至UE 101的一个或多个模块和应用、服务提供方和/或内容提供方以便进一步进行处理、存储、分享等。例如,所捕捉的POI的图像可以被提交至服务提供方和/或情境处理模块217以便进行处理。

在一个实施例中,通信接口215能够被用来与系统100的一个或多个实体进行通信。某些通信能够经由诸如互联网协议、消息发送(例如,SMS、MMS等)的方法或者任意其它通信方法(例如,经由通信网络111)来进行。在一些示例中,UE 101能够将与UE 101相关联的情境信息发送至服务提供方105、内容提供方107和/或系统100的其它实体。

用户接口213可以包括各种通信方法。例如,用户接口213可以具有包括视觉组件(例如,屏幕)、音频组件、物理组件(例如,振动)和其它通信方法的输出。用户输入则能够包括触摸屏接口、滚动和点击接口、按钮接口、麦克风等。输入能够经由一种或多种方法,诸如语音输入、文本输入、打字输入、打字触摸屏输入、其它支持触摸的输入,等等。

情境处理模块217能够在确定来自在运行时间模块211上运行的MP模块113、DC模块115和/或应用103的情境信息时被使用。该信息可以使得经由通信接口215而被传送至服务提供方105和/或系统100的其它实体。情境处理模块217还可以被用作确定与用户相关的信息、数据的实例、数字化、内容项、对象、主题等的部件。在某些实施例中,情境处理模块217能够从诸如收藏位置、重要场所、共同活动、产品和服务兴趣、各个地理位置的POI等推导出更高水平的情境信息。

在各个实施例中,运行时间模块可以导致UE 101的一个或多个模块/组件确定一个或多个可用数据项和/或将其与UE 101处的一个或多个媒体内容项进行关联。例如,在特定时间与设备相关联的日期、时间、位置和用户信息可以与媒体内容项进行关联(例如,作为元数据)。

在一个实施例中,MP模块113可以提取与图像或视频帧的像素相关联的地理位置元数据。这样所提取的地理位置元数据可以包含所记录的图像或视频帧、相对应的相机姿态,以及例如在具有已知原点和轴线的本地3D笛卡尔坐标系内所定义的重构3D点云。相机姿态和点云可以唯一映射至3D坐标系统或者其它全局坐标系统(例如,WGS84、UTM等)。在一种情形中,MP模块113可以通过匹配电源并且确定点云中与之匹配的区域,并随后计算图像/视频帧的视角从而得到相机姿态信息来选择相机姿态。

在一个实施例中,MP模块113可以确定图像信息,后者可以包括但并不局限于照片曝光设置参数的规范,例如拍摄有利位置、拍摄角度、相机设置等。在一个实施例中,MP模块113可以从DC模块接收信息并且将该信息存储在UE 101。另外,该信息可以是能够提供用于在基于联系人的用户接口中创建信息渲染的手段的多种类型的信息中的任意一种。

图3是根据一个实施例的用于处理多个图像的像素以便渲染至三维模型上的处理的概述的图示。

在一个实施例中,处理300在301开始,其中UE 101处的处理器可以将场景几何渲染至深度缓冲器303,并且在305,按照该几何的像素重构坐标并且将图像混合至基于观看角度和其它数据所计算的置信度值进行加权的累加缓冲器307。另外,在309,该处理器可以将规则场景几何渲染至缺省后台缓冲器。此外,在311,处理器可以对所累加的贡献进行规格化并且alpha混合至缺省后台缓冲器,后者在313可以在UE 101的显示器进行呈现。

图4至图7是根据各个实施例的用于对第一图像和第二图像的像素进行处理以确定将第一像素渲染至第二图像的三维渲染上的置信度值的流程图。在各个实施例中,MP模块113可以执行处理400、500、600和700的一个或多个部分,后者例如在包括如图15所示的处理器和存储器的芯片组中进行实施。这样,MP模块113能够提供用于完成处理400、500、600和700的各个部分的部件以及用于结合系统100的其它组件完成其它处理的部件。贯穿该处理,MP模块113和/或应用103可以被称作完成处理400、500、600和700的各个部分;然而所要理解的是,系统100的其它组件能够执行一些和/或全部的处理步骤。另外,为了在讨论处理400、500、600和700时清楚,MP模块113被称作完成所述处理的各个步骤;然而,这里所描述的所述处理和/或示例步骤可以以任意适当顺序来执行和/或可以是任选的。

处理400可以在图4的步骤401开始,其中MP模块113可以包括确定至少一个图像中几何对应于至少一个已渲染的三维地图的至少一个第二像素的至少一个第一像素。在一个实施例中,用户设备(例如,移动设备)处的图形处理器可以处理能够在该设备处获取或者从一个或多个外部源(例如,内容提供方)获取的物体的一个或多个图像,其中该处理包括确定该一个或多个图像的一个或多个第一像素是否几何对应于地图中该物体的至少一个已渲染三维模型的至少一个第二像素。例如,用户可以在用户设备上具有POI(例如,建筑物)的图像,并且他可能想要经由3D地图应用中的呈现形式来观看该图像,其中用户设备中的处理器可以对图像的像素进行处理来确定它们是否在几何上对应于在地图应用中已渲染的POI的模型的像素。

在步骤403,MP模块113可以对以下进行处理和/或促成其处理:(a)至少一个第一像素;(b)至少一个第二像素;(c)与至少一个第一像素和第二像素中的至少一个相关联的元数据;或(d)它们的组合,从而确定至少一个置信度值,其中该至少一个置信度值指示由于将该至少一个第一像素投影到该至少一个第二像素上所导致的几何失真的估计的水平。在一个实施例中,与第一图像和/或第一像素相关联的元数据可以包括第一图像和/或像素的位置信息,其中该位置信息可以参照局部或全局位置坐标系。另外,第一像素的位置信息可以被用来与第二图像的像素的位置信息进行比较,以便确定两个像素在第一像素被投影到第二像素上时对准得如何。此外,可以计算置信度值来指示第一像素被投影到第二像素上的失真。在各个实施例中,置信度值的计算可以至少部分地基于入射(图像射线与表面)和观看(图像射线与虚拟相机射线)角度,所投影图像的分辨率(例如,第一图像的分辨率)、图像失真的直接测量,例如所投影图像的坐标的偏导数,等等。

在步骤405,MP模块113可以至少部分地基于该置信度值而确定是否至少部分将至少一个第一像素渲染到至少一个所旋绕的三维地图上。在一种情形中,用户设备处的处理器可以利用该置信度值来确定是否使用第一图像的像素以便投影到第二图像的像素上。例如,具有较低置信度值的第一像素可以指示在其被投影到3D地图/模型的第二像素上的情况下的失真。

处理500可以在图5的步骤501开始,其中MP模块113可以确定与至少一个已渲染的三维地图的至少一个用户交互。在一种情形中,用户可以利用用户设备处的UI特征与用户设备处的3D地图应用的渲染进行交互,其中该用户可能希望对地图中的虚拟视角进行操控;例如从不同角度、不同距离、不同高度等。在一个实施例中,至少一个用户交互导致以下的变化:(a)至少一个已渲染的三维地图的至少一个虚拟相机位置,(b)至少一个第一像素、至少一个第一图像、至少一个第二像素和至少一个已渲染的三维地图中的至少一个的至少一种渲染特性;或(c)它们的组合;并且其中该至少一种渲染特性至少部分地包括衰减参数、切换参数、大小参数,或者它们的组合。

在步骤503,MP模块113可以至少部分地基于至少一个用户交互而至少部分地导致对至少一个置信度值、至少一个第一像素到至少一个已渲染的三维地图上的渲染、或者它们的组合的动态更新。例如,用户交互可以导致从不同角度观看地图中的POI,其中不同观看角度能够导致第一图像的像素与在地图中已渲染的第二图像/模型的像素的不同对准。在一个实施例中,处理器可以基于用户与3D应用中的渲染的交互所导致的变化而更新置信度值以便将第一图像的第一像素渲染/投影到第二图像的第二像素上。在一个实施例中,处理器能够确定相机的场深度(例如,从EXIF数据)和/或分析多个图像的内容以识别每个图像中的模糊区域从而进一步调制和更新相关联的置信度值,例如这会导致每个图像的基本上锐利的区域的呈现。

在步骤505,MP模块113可以可以至少部分将至少一个置信度值与至少一个阈值置信度标准进行比较从而确定是否至少部分地导致至少一个第一像素被渲染到至少一个已渲染的三维地图上。在各个实施例中,该阈值置信度标准可以至少部分地基于3D模型的地理精度(例如,从元数据),图像内容元数据的分析以便确定图像中的模糊或锐利区域,等等。在一种情形中,如果像素的置信度值低于阈值置信度标准,则用户设备处的处理器可以决定不使用该像素投射到另一个像素上以便在应用中进行呈现。例如,如果第一像素的置信度值低于阈值,则其可以指示使用该第一像素会在被投影到第二像素上的情况下导致模糊渲染。在各个实施中,阈值置信度标准可以由用户设备处的一个或多个应用、设备的用户、内容/服务提供方、用户设备处的资源和能力等来确定。在一个实施例中,高的置信度值可以指示不透明像素,而低的置信度值则可以指示透明像素。

在步骤507,MP模块113可以处理元数据和/或促成其处理以确定与至少一个图像相关联的至少一个第一相机位置以及与至少一个已渲染的三维地图相关联的至少一个第二相机位置。在一种情形中,与一个或多个图像相关联的元数据可以被用于确定在捕捉一个或多个图像时所使用的一个或多个相机的位置信息。例如,该元数据可以指示位置信息,后者指示笛卡尔坐标系中的X、Y和Z位置。

在步骤509,MP模块113可以确定至少一个第一相机位置和至少一个第二相机位置之间的至少一个偏移量,其中该至少一个置信度值进一步至少部分地基于该偏移量。在一种情形中,一个或多个相机的位置信息被用来确定相机之间的偏移量;例如,X、Y或Z方向中的偏移量。另外,该偏移量信息能够被用来更新与多个图像中的多个像素相关联的置信度值。例如,两个相机之间的高偏移量值会导致与那些相机所捕捉的像素或图像相关联的较低的置信度值。

处理600可以在图6的步骤601开始,其中MP模块113可以确定从至少一个第一相机位置延伸至至少一个第一像素和至少一个第二像素中的至少一个的至少一个像素位置的至少一个第一射线。在一种情形中,与相机相关联的元数据中的位置信息可以被用来确定从相机位置到第一图像的第一像素和第二图像或者与第二图像相关联的模型的第二像素的位置的第一射线(例如,视线)。例如,相机的坐标(例如,X、Y和Z位置信息)可以与建筑物图像中的像素的坐标(例如,X、Y和Z位置信息)进行比较以确定第一射线。在一种情形中,参考相机位置附近的地平面的射线可以通过使用该相机的位置信息并且将其与地平面处的位置信息进行比较来确定。在一个实施例中,该射线可以参考与第一相机所捕捉的POI的图像相关联的像素来确定。

在步骤603,MP模块113可以确定从至少一个第二相机位置到至少一个像素位置延伸的至少一个第二射线。在一个实施例中,与第二相机位置相关联的位置信息(例如,虚拟相机位置)可以被用来确定第二相机和关联于应用中已渲染的图像或模型的像素位置之间的第二射线。在一种情形中,第二相机位置可以从用户与图像或POI在3D地图应用中的渲染的交互而确定。

在步骤605,MP模块113可以确定在至少一个第一射线和至少一个第二射线之间所形成的至少一个角度,其中该置信度值至少部分地基于该至少一个角度而确定。在一个实施例中,从第一相机延伸至像素的第一射线可以与从第二相机延伸至该像素的第二射线进行比较以便确定第一射线和第二射线之间的角度。在一个实施例中,来自第一相机的多个射线可以与来自第二相机的多个射线进行比较以确定第一射线和第二射线之间的多个角度。

在步骤607,MP模块113可以至少部分地基于所累加的置信度值而针对至少一个像素被渲染到至少一个已渲染的三维地图上而确定至少一个透明度。在一个示例中,来自对象的各个图像的要被投影到该对象的模型的像素上的像素的置信度值可以在累加缓冲器中进行累加。在一个实施例中,该至少一个透明度水平随着所累加的置信度值的增大而减小。在一个实施例中,低于置信度阈值值的置信度值可以指示透明像素。

处理700可以在图7的步骤701开始,其中MP模块113可以确定至少一个图像包括多个重叠图像。在一种情形中,POI的一个或多个图像可以被利用并且被重叠在应用中已渲染的该POI的另一个图像或模型上。例如,某个建筑物的若干图像可以被3D地图应用用于与地图应用中已渲染的该相同建筑物的3D模型的重叠。

在步骤703,MP模块113可以至少部分地基于置信度值而导致至少部分地对多个重叠图像进行排序、混合或者它们的组合。在一种情形中,POI的多个图像可能已经被多个相机所捕捉,其中那些图像可以被重叠至应用中—例如在3D地图应用中—已渲染的POI的模型/图像上。在一个示例中,每个图像的每个像素都可以根据与每个像素相关联的置信度值或置信度阈值标准进行混合。混合结果可以通过渲染基于相机位置排序的图像而有所改善,从而来自不同相机的贡献都以适用于所使用的混合函数的顺序被添加至累加缓冲器。

在步骤705,其中至少一个图像包括至少一个视频,MP模块113可以针对该至少一个视频确定至少一个三维运动轨迹,其中该至少一个置信度值、该至少一个像素到至少一个已渲染的三维地图上的渲染至少部分地基于该三维运动轨迹。在一种情形中,与POI相关联的媒体内容可以是要在被重叠到渲染应用中的POI的另一个媒体内容(例如,图像)或模型上时所使用的视频片段。例如,用户可以具有某个城市中心的图像,他可能想要在3D地图应用中进行呈现时对其进行观看。在一个实施例中,该应用要在那里进行渲染的用户设备处的处理器可以对视频片段和/或其元数据进行处理以便针对该视频片段确定三维运动轨迹。另外,置信度值或者一个或多个像素到已渲染的三维地图上的渲染可以基于该三维运动轨迹。例如,由于用户设备处的用户或应用可以对视频片段在3D地图应用中的虚拟呈现中的渲染进行交换和移动,所以该视频片段的像素的渲染的置信度值可以基于该3D运动轨迹进行更新。例如,该渲染在一帧中可能是模糊的而在另一帧中则是清晰的。

图8图示了根据各个实施例的各种相机与相机和相机视场中的物体之间的相关联射线。

图示8a描绘了第一相机801(例如,原始用户相机),其可以被用户用来从POI 803—例如,建筑物、3D物体等—捕捉图像或视频片段,其中入射射线805在第一相机801和POI 803的表面(例如,墙壁)之间延伸而在射线805和POI 803的表面之间形成入射角805a。此外,第二入射射线807从第一相机801延伸至地平面809的表面,其形成入射角807a。在一个实施例中,805a和807a的角度信息可以在针对图像中的像素计算与每个角度相关联的置信度值时被加以利用。在一种情形中,第一相机的位置基本上垂直于POI 803,这能够在所捕捉的POI 803的图像或视频中提供更为准的细节,而如果第一相机801处在关于POI 803成角度的位置,则所产生的图像或视频会包括一些POI 803的细节失真。在一个实施例中,包括失真的媒体内容在贡献图像像素以便将POI 803的图像投影/叠加到POI 803的另一个图像或模型上时可能并不是非常有用。在一个实施例中,UE 101处的处理器可以通过使用第一相机801的位置信息以及POI 803的图像的像素的位置信息和地平面809(例如,在深度缓冲器中)来计算角度805a和807a,其中该角度能够参考POI 803的所捕捉图像中的像素以及地平面809进行计算。在一种情形中,缓冲器中的像素的表面的法线矢量可以被用来计算该角度,或者法线矢量可以基于与深度缓冲器中的像素相关联的内容进行重构。

现在参考图示8b,第二相机(例如,虚拟相机)被引入以便从稍有不同的视角观看POI 803。在一种情形中,与媒体渲染应用(例如,3D地图应用)进行交互的用户可以引入第二相机811。在一个示例中,第二相机811和POI 803之间的入射射线813在入射射线805和813之间形成角度813a。此外,第二相机811和地平面809之间的入射射线815在入射射线807和815之间形成角度815a。在该图示8b中,第一相机801和第二相机811关于POI 803和地平面809处于不同位置,这导致了射线805和813之间的角度813a和射线807和815之间的角度815a。在一个实施例中,指向图像中的相同像素的来自原始相机的射线和来自虚拟相机的射线之间的角度大小可以指示来自图像的像素要被投影到另一个像素上的置信度或贡献水平。例如,角度815a小于角度813a,这表示来自地面809表面的图像的像素可以在来自第一相机801和第二相机811的相同像素之间提供更好的重叠。

图9A和9B图示了根据各个实施例的媒体应用中的对象的渲染。

图9A示出了街景900的在媒体呈现应用中已渲染的例如2D地图、3D地图等的总体示图,其包括建筑物、人、数目等。在一个实施例中,呈现除了图像集群附近多个聚光灯901—A、B、C、D和E。在一种情形中,情形900中已渲染的物体可以基于将一个或多个图像投影到从关联于场景900中的每个物体的各个数据集合所生成的模型上。例如,从街景900所拍摄的多个图片可以被投影到场景900的模型上。在一个实施例中,每个聚光灯901可以提供用于观看场景900中的某个图像集群的不同视角。参考图9B,在一个示例中,更接近于集群E进行移动使得聚光灯901E进行扩展从而获得集群E中的建筑物和物体更为详细/清晰的视图。这些聚光灯由具有高相干性值的多个图像部分所形成,即它们能够被投影到该场景上而没有失真,并且因此在视角移动至感兴趣图像的更适宜视点时进行扩展。

图9C和9D包括根据各个实施例的用于在渲染物体时处理并分析深度偏移量值的处理流程图。

处理920可以在图9C的步骤921开始,其中MP模块113可以参考第二相机位置而至少部分地导致对至少一个图像的至少一个深度偏移量值进行估计。在各个实施例中,系统100可以利用算法基于预定值集合、步幅值或随机值来估计深度偏移量值。例如,预定值集合可以包括一米、几英寸、一英尺等的深度偏移量,其可以是第一图像的位置和第二相机之间的距离偏移量。在一个实例中,深度偏移量可以朝向或远离当前(例如虚拟)渲染相机的位置而计算。

在步骤923,MP模块113可以至少部分地导致利用至少一个所估计的深度偏移量值对深度偏移量值缓冲器进行更新。在一个实施例中,在925,可以利用一个或多个迭代深度偏移量值估计对深度偏移量缓冲器进行更新。在一个示例中,深度偏移量值缓冲器可以是低分辨率、高分辨率等的缓冲器,其可以存储与图像的各种块大小(例如,8×8像素块)相关联的深度偏移量值。

在步骤927,至少一个图像到至少一个已渲染的三维地图上的渲染可以至少部分地基于至少一个深度偏移量值。在步骤929,至少一个图像到至少一个已渲染的三维地图上的渲染可以至少部分地基于至少一个用户交互和至少一个深度偏移量值。在一个实施例中,一个或多个图像或者一个或多个图像的一个或多个部分的后续渲染可以是将下一帧渲染到屏幕位置,其基于距之前渲染的一个或多个深度偏移量值(例如,深度偏移量值)以及一个或多个新的相机位置,例如第一相机、第二相机等。

处理940可以在图9C的步骤941开始,其中MP模块113可以参考第二相机位置而至少部分地导致针对至少一个图像生成至少一个新的候选深度偏移量值。在各个实施例中,MP模块可以利用算法来估计一个或多个新的深度偏移量值,其可以基于之前存储在深度偏移量值缓冲器的值、深度偏移量值缓冲器的大小、图像的当前渲染帧、相邻/邻近深度值、预定值集合、步幅值或随机偏移量。在一个实例中,来自存储943的场景几何数据以及来自缓冲器945的深度偏移量值可以在生成新的候选深度偏移量值时被加以利用。

在步骤947,MP模块113可以至少部分地基于至少一个深度偏移量值而至少部分地导致至少一个测试图像到至少一个已渲染的三维地图上的第一渲染,其可以包括来自943的场景几何数据、来自949的投影图像纹理数据和来自缓冲器945的深度偏移量值。在步骤951,MP模块113可以至少部分地基于至少一个新的候选深度偏移量值而至少部分地导致将至少一个测试图像第二渲染到至少一个已渲染的三维地图上。在一个实例中,相同图像或图像部分可以利用新的候选值进行渲染。

在步骤953,MP模块113可以至少部分地导致对第一渲染和第二渲染进行分析以确定与第一渲染和第二渲染相关联的一个或多个渲染特性。在一个实施例中,该分析结果可以被用来基于之前的深度偏移量值和新的候选深度偏移量值而确定图像渲染的质量、相干性或匹配。例如,具有一米偏移量的图像渲染可以与具有三米偏移量的图像渲染进行比较。在一个实施例中,该渲染和分析可以对图像第一部分(例如,像素块)进行。在步骤955,MP模块113可以至少部分地基于该分析而至少部分地导致利用至少一个深度偏移量值或至少一个新的候选深度偏移量值对深度偏移量值缓冲器进行更新。在一个示例中,被选择用于更新的新的候选值可以基于迭代次数和分析结果。

图9E至9G图示了根据各个实施例的物体渲染中的深度偏移量数据的分析的图形表示形式。图9E图示了示图960,其包括表示3D地图的实际几何的深度值,其由来自上一帧的深度偏移量值基于观看方向963以及多个新的候选值965进行修改。在一个示例中,新的候选值965的分辨率小于实际几何961的分辨率,其中新的候选值可以基于被外推、随机化、抖动、二进制搜索等的之前深度值。

图9F图示了示图970,其包括基于当前深度偏移量值的投影图像补丁971以及基于候选深度偏移量值的973。在一种情形中,每个图像补丁可以包括基于地理的图像“A”975和图像“B”977,它们从观看方向979进行投影。在一个实施例中,基于当前图像偏移量值—例如981—的多个数据点以及基于候选偏移量值—例如983—的数据点可以进行分析和比较从而确定与图像投影相关联的一种或多种特性,其中该分析可以针对相应图像集合971和973中的每个图像配对来执行。

图9G图示了示图990,其中在一个示例中,GPU可以被用来计算均方根误差并且存储所得到的误差值以便将971和973的图像中的每个像素进行比较从而选择当前或候选的偏移量值。在一个实例中,图像991和993表示可以进行比较以便从当前或候选偏移量值中进行选择的补丁差值。在一个实例中,基于候选偏移量值的补丁图像993例如可以基于像素误差值而被选择,并且深度偏移量值缓冲器可以利用候选偏移量值进行更新。

图10是根据一个实施例的在图4到图7的处理中所采用的地心地固(ECEF)笛卡尔坐标系的示图。用于三维空间(1001)的一般笛卡尔坐标系由其原点以及在原点O(10010)交汇的三条垂直的轴线(X(1003),Y(1005),Z(1007))所唯一定义。3D点P(1011)则由三个数字坐标(Xp,Yp,Zp)所固定,它们分别是从点P到三个由两条轴线(Y-Z,X-Z,X-Y)所定义的平面的带符号距离。在一种情形中,ECEF笛卡尔坐标系具有其被定义为地球质量中心的原点(0,0,0),其X轴以0°纬度(赤道)和0°经度与地球的球体相交,并且其Z轴指向北极,其中在ECEF和地理图形坐标系之间存在一对一映射。

图11图示了根据一个实施例的在图4到图7的处理中所采用的笛卡尔坐标系(CCS)的其原点被限制于地球上的3D局部系统以及三条轴线(X-Y-Z)。CCS_3D_local系统是使得其原点被限制于地球表面上的笛卡尔坐标系。图11是3D地球模型的表示形式,其中CCS_3D_local系统经常被用来表示处于地球上的基准点附近的3D地理增强数据的集合,例如,3D地理增强数据可以覆盖11km的有限空间,因此使得该坐标系是局部的。在一种情形中,给定CCS_3D_local系统的原点和三条轴线,在CCS_3D_ECEF和所讨论的局部系统之间存在唯一变换。如果原点和三条轴线未知,则难以将CCS_3D_local映射到CCS_3D_ECEF系统。在一个实施例中,UE 101处的图形处理器可以对与局部坐标系相关联的图像进行处理并且在针对虚拟相机而言作为固定坐标系的3D图形渲染通道将3D几何变换到相机空间之中。类似地,深度缓冲器将其信息存储在相同坐标中,其也被用于计算像素角度以及相干性值计算。

图12是根据一个实施例的在图4到图7的处理中所采用的3D空间中的相机方位的示图。这里,旋角(1201)是沿z轴的逆时针旋转,航向倾角(1203)是沿y轴的逆时针旋转,旁向倾角(1205)是沿x轴的逆时针旋转。在一种情形中,视频帧经常被认为是以变化的相机位置在不同时间所捕捉(或显示)的静止图像的序列。在一种情形中,相关联视频帧的相机姿态表示进行视频捕捉的相机在视频帧被记录时的3D位置和方位。相机位置可以简单地被描述为XL、YL、ZL。方位则可以被描述为将相机从基准部署旋转至其当前部署的旁向倾角、旋角和航向倾角的角度。方位可以通过旋转矩阵或四元数组进行表示,它们在数学上等于Euler角度。利用相机位置和方位,能够利用坐标系中的六个自由度(6DoF)来定义相机的移动。

图13是根据一个实施例的在图4到图7的处理中所采用的CCS_3D_ECEF中的相机姿态的示图。在一种情形中,点云是能够从一个或多个视频帧所看到的3D点的集合,在从给定相机姿态(1301)进行观看时,3D点根据适当相机模型而被投影到2D图像上并且在不同像素位置(1303)引起颜色强度。在地球模型的环境中,3D点云能够通过LIDAR技术直接测量。可替换地,3D点云能够通过使用计算机视觉运动结构(SFM)技术从输入视频帧进行重构。在CCS_3D_ECEF内,3D点云以及相机姿态需要被准确定义:

1)在使用CCS_3D_ECEF时,相机姿态和点云被全局定义;

2)如果使用具有已知原点和轴线的CCS_3D_Local系统,则相机姿态和点云能够被唯一映射至CCS_3D_ECEF。通过如此,相机姿态也在全局坐标系中得以被定义。此外,如果使用具有未知原点和轴线的CCS_3D_Local系统,则相机姿态和点云仅能够在局部坐标系中被定义,这是因为难以将点云和相机姿态映射到CCS_3D_ECEF之中。

这里所描述的用于准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染的处理有利地可以经由软件、硬件、固件或者软件和/或固件和/或硬件的组合来实施。例如,这里所描述的处理有利地可以经由(多个)处理器、数字信号处理(DSP)芯片、应用特定集成电路(ASIC)、现场可编程门阵列(FPGA)等来实施。这样的用于执行所描述功能的示例性硬件在以下进行详细描述。

图14图示了可以在其上实施本发明的实施例的计算机系统1400。虽然计算机1400关于特定装置或设备进行了描绘,但是预见到图14内的其它装置或设备(例如,网络元件、服务器等)能够部署系统1400的所图示的硬件和组件。计算机系统1400被编程(例如,经由计算机程序代码或指令)为如这里所描述的准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染,并且包括诸如总线1410的通信机制,其用于在计算机系统1400的其它内部和外部组件之间输送信息。信息(也称作数据)被表示为可测量现象的物理表达形式,通常是电压,但是在其它实施例中包括诸如磁性、电磁、压力、化学、生物、分子、原子、亚原子和量子交互之类的现象。例如,北侧和南侧磁场或者零和非零电压表示二元数位(比特)的两个状态(0,1)。其它现象能够表示更高基础的数位。测量之前的多个同时量子状态的叠加表示量子比特(qubit)。一个或多个数位的序列构成被用来表示字符的编号或代码的数字数据。在一些实施例中,称作模拟数据的信息由特定范围内的可测量值的近似连续统所表示。计算机系统1400或者其部分构成了用于执行准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染的一个或多个步骤的部件。

总线1410包括信息的一个或多个并行导体以使得信息在耦合至总线1410的设备之间快速传输。用于处理信息的一个或多个处理器1402与总线1410进行耦合。

处理器(或多个处理器)1402对如与准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染相关的计算机程序代码所指定的信息执行一组运算。该计算机程序代码时指令或声明的集合,其提供供处理器和/或计算机系统用来执行指定功能的操作的指令。代码例如可以以被编译为处理器的本地指令集合的计算机编程语言进行编写。该代码还可以直接使用本地指令集合(例如,机器语言)进行编写。该组操作包括从总线1410取得信息以及将信息置于总线1410上。该组操作通常还包括比较两个或更多信息单元,移动信息单元的位置,并且将两个或多个信息单元进行合并,诸如通过相加或线程或者如OR、异OR(XOR)和AND。该操作集合中能够由处理器所执行的每个操作通过被称作指令的信息向处理器进行表示,诸如一个或多个数位的操作代码。要由处理器1402所执行的诸如操作代码序列的操作序列构成了处理器指令,其也被称作计算机系统指令或者简单地计算机指令。除其它之外,处理器可以单独或作为组合地被实施为机械、电子、磁性、光学、化学或量子组件。

计算机系统1400还包括耦合至总线1410的存储器1404。诸如随机访问存储器(RAM)或者任意其它动态存储设备的存储器1404存储包括用于准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染的处理器指令在内的信息。动态存储器允许存储于其中的信息由计算机系统1400所改变。RAM允许存储在被称作存储器地址的位置处的信息单元独立于相邻地址的信息进行存储和检索。存储器1404还被处理器1402用来在处理器指令执行期间存储临时值。计算机系统1400还包括只读存储器(ROM)1406或者耦合至总线1410以便存储包括并不由计算机系统1400所改变的指令在内的静态信息的其它静态存储设备。一些存储器由易失性存储所组成,其在失去供电时丢失存储于其上的信息。诸如磁盘、光盘或闪存卡的非易失性(持久)存储设备1408也耦合至总线1410,以用于存储包括指令在内的信息,该信息即使在计算机系统1400关机或者以其它方式失去供电时也得以保持。

包括用于准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染的指令在内的信息被从外部输入设备1412提供至总线1410以便由处理器使用,该外部输入设备1412诸如包含由人类用户进行操作的字母数字按键的键盘或者传感器。传感器检测其附近的状况并且将那些检测变换为与用来表示计算机系统1400中的信息的可测量现象相兼容的物理表达形式。主要用于与人进行交互的耦合至总线1410的其它外部设备包括显示设备1414,诸如阴极射线管(CRT)、液晶显示器(LCD)、发光二极管(LED)显示器、有机LED(OLED)显示器、等离子屏幕或者用于渲染文本或图像的打印机,以及诸如鼠标、轨迹球、光标方向键或运动传感器之类的用于控制显示器1414上已渲染的小型光标图像的位置并且发出与显示器1414上已渲染的图形元件相关联的命令的指示设备1416。在一些实施例中,例如在计算机系统1400在没有用户输入的情况下自动执行所有功能的实施例中,能够省略一个或多个外部输入设备1412、显示设备1414和指示设备1416。

在所图示的实施例中,诸如应用特定集成电路(ASIC)1420之类的专用硬件耦合至总线1410。该专用硬件被配置为出于特殊目的而足够快速地执行并非由处理器1402所执行的操作。ASIC的示例包括用于为显示器1414生成图像的图形加速卡、用于对网络上所发送的消息进行加密和解密的密码板、语音识别以及针对特殊外部设备的接口,该特殊外部设备诸如重复执行以硬件实施更为有效的一些复杂操作序列的机器人手臂和医疗扫描设备。

计算机系统1400还包括耦合至总线1410的通信接口1470的一个或多个实例。通信接口1470向诸如打印机、扫描仪和外部磁盘之类的利用其自己的处理器进行操作的各种外部设备提供单向或双向通信耦合。通常,是与连接至本地网络1480的网络链路1478进行耦合,具有其自己的处理器的各种外部设备连接至该本地网络1480。例如,通信接口1470可以是个人计算机上的并行端口或串行端口或者是通用串行总线(USB)端口。在一些实施例中,通信接口1470是综合业务数字网络(ISDN)卡或者数字订户线路(DSL)卡,或者向相对应类型的电话线路提供信息通信连接的电话调制解调器。在一些实施例中,通信接口是将总线1410上的信号转换为用于同轴线缆上的通信连接的信号或者用于光纤线缆上的通信连接的光学信号的线缆调制解调器。作为另一个示例,通信接口1470可以是用于向诸如以太网的兼容局域网(LAN)提供数据通信连接的LAN卡。也可以实施无线链路。对于无线链路而言,通信接口1470发送或者接收或者既发送又接收包括红外和光学信号在内的电子、声音或电磁信号,其承载诸如数字数据之类的信息流。例如,在诸如类似小区电话的移动电话的无线手持设备中,通信接口1470包括被称作无线电收发器的无线电带电磁传送器和接收器。在某些实施例中,通信接口1470支持到通信网络111的连接以便准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染。

如这里所使用的术语“计算机可读介质”是指参与向处理器1402提供包括用于执行的指令在内的信息的任意介质。这样的介质可以采取许多形式,包括但并不局限于计算机可读存储介质(例如,非易失性媒体、易失性媒体)和传输媒体。诸如非易失性媒体的非瞬时媒体例如包括光盘或磁盘,诸如存储设备1408。易失性媒体例如包括动态存储器1404。传输媒体例如包括双绞线线缆、同轴线缆、铜线、光纤线缆以及通过没有线路或线缆的空间行进的载波,诸如光波或者包括无线电、光学和红外波在内的电磁波。信号包括通过传输媒体进行传送的振幅、频率、相位、极性或其它物理属性的人为瞬态变化。一般形式的计算机可读媒体例如包括软盘、柔性盘、硬盘、磁带、任意其它磁性介质、CD-ROM、CDRW、DVD、任意其它光学介质、打孔卡、纸带、光学标记页、具有孔洞图案的其它物理介质或者其它可光学识别的指示、RAM、PROM、EPROM、闪存EPROM、EEPROM、闪存、任意其它存储器芯片或卡盒、载波,或者计算机能够从其进行读取的任意其它介质。术语计算机可读存储介质在这里被用来指代除传输媒体之外的任意计算机可读介质。

在一个或多个有形媒体中编码的逻辑包括计算机可读存储媒体上的处理器指令或者诸如ASIC 1420的专用硬件之一或其二者。

网络链路1478通常使用传输媒体通过一个或多个网络向使用或处理信息的其它设备提供信息。例如,网络链路1478可以通过局域网1480提供到主机计算机1482或者到由互联网服务提供方(ISP)所操作的设备1484的连接。ISP设备1484进而通过网络中目前一般被称作互联网1490的公共全球分组交换通信网络来提供数据通信服务。

称作服务器主机1492的连接至互联网的计算机存放响应于通过互联网所接收的信息而提供服务的处理。例如,服务器主机1492存放提供表示视频数据的信息以便在显示器1414进行渲染的处理。预见到系统1400的组件能够在例如主机1482或服务器1492的其它计算机系统内以各种配置进行部署。

本发明的至少一些实施例涉及使用计算机系统1400来实施这里所描述的一些或全部技术。根据本发明的一个实施例,那些技术由计算机系统1400响应于处理器1402执行存储器1404中所包含的一个或多个处理器指令的一个或多个序列来执行。这种也被称作计算机指令、软件和程序代码的指令可以从诸如存储设备1408或网络链路1478的另一计算机可读介质读入存储器1404。执行存储器1404中所包含的指令序列使得处理器1402执行这里所描述的一个或多个方法步骤。在可替换实施例中,可以替代软件或者与之相结合地使用诸如ASIC 1420之类的硬件。因此,除非这里明确另外指出,否则本发明的实施例并不局限于硬件和软件的任何具体组合方式。

通过网络链路1478以及通过通信接口1470的其它网络进行传送的信号往来于计算机系统1400运送信息。除其它之外,计算机系统1400能够通过网络链路1478和通信接口1470而通过网络1480、1490发送和接受包括程序代码在内的信息。在使用互联网1490的示例中,服务器主机1498通过互联网1490、ISP设备1484、本地网络1480和通信接口1470传送由从计算机1400所发送的消息所请求的用于特定应用的程序代码。所接收的代码可以在其被接收时由处理器1402执行,或者可以存储在存储器1404或存储设备1408中或者存储在任意其它非易失性存储中以便随后执行,或者上述的二者。以这种方式,计算机系统1400可以获取载波上的信号形式的应用程序代码。

在向处理器1402运送指令或数据或者其二者的一个或多个序列以便执行时可以涉及到各种形式的计算机可读媒体。例如,指令和数据最初可以承载于诸如主机1482之类的远程计算机的磁盘上。该远程计算机将指令和数据加载到其动态存储器中并且使用调制解调器通过电话线路发送该指令和数据。计算机系统1400本地的调制解调器接收电话线路上的指令和数据并且使用红外传送器将该指令和数据转换为用作网络链路1478的红外载波上的信号。用作通信接口1470的红外检测器接收红外信号中所承载的指令和数据并且将表示该指令和数据的信息放到总线1410上。总线1410将该信息送至存储器1404,处理器1402从那里获取指令并且使用随指令发送的一些数据执行该指令。存储器1404中所接收的指令和数据可选地可以在被处理器1402执行之前或之后存储在存储设备1408上。

图15图示了可以在其上实施本发明的芯片组或芯片1500。芯片组1500被编程以如这里所描述的准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染,并且例如包括参考图14所描述的整合在一个或多个物理封装(例如,芯片)的处理器和存储器组件。作为示例,物理封装包括结构组装件(例如,基板)上的一个或多个材料、组件和/或线路的部署以提供诸如物理强度、尺寸节约和/或电气交互限制的一个或多个特性。预见到在某些实施例中,芯片组1500可以以单个芯片来实施。进一步预见到,在某些实施例中,芯片组或芯片1500可以被实施为单个“片上系统”。进一步预见到,在某些实施例中,例如将不会使用单独的ASIC并且如这里所描述的所有相关功能都将由一个或多个处理器来执行。芯片组或芯片1500或者其部分构成了用于执行准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染的一个或多个步骤的部件。

在一个实施例中,芯片组或芯片1500包括通信机制,诸如用于在芯片组1500的组件之间输送信息的总线1501。处理器1503具有到总线1501的连接以执行例如存储在存储器1505中的指令和处理信息。处理器1503可以包括一个或多个处理核心,其中每个核心被配置为独立执行。多核处理器使得能够在单个物理封装内进行多重处理。多核处理器的示例包括两个、四个、八个或更多数量的处理核心。可替换地或除此之外,处理器1503可以包括经由总线1501串联配置的一个或多个微处理器以使得能够对指令、管道和多线程进行独立执行。处理器1503还可以伴随有一个或多个专用组件以执行某些处理功能和任务,诸如一个或多个数字信号处理器(DSP)1507或者一个或多个应用特定集成电路(ASIC)1514。DSP 1507通常被配置为独立于处理器1503实时处理实际信号(例如,声音)。类似地,ASIC 1514能够被配置为无法由更为通用的处理器轻易执行的专用功能。用于辅助执行这里所描述的发明功能的其它专用组件可以包括一个或多个现场可编程门阵列(FPGA)(未示出)、一个或多个控制器(未示出)或者一个或多个其它专用计算机芯片。

在一个实施例中,芯片组或芯片1500仅包括一个或多个处理器以及支持和/或涉及和/或用于一个或多个处理器的一些软件和/或固件。

处理器1503和伴随组件经由总线1501而具有到存储器1505的连接。存储器1505包括动态存储器(例如,RAM、磁盘、可写入光盘等)和静态存储器(例如,ROM、CD-ROM等),以便存储在被执行时实施这里所描述的发明步骤以准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染的可执行指令。存储器1505还存储与发明步骤的执行相关联或者由其所生成的数据。

图16是根据一个实施例的能够在图1的系统中进行操作的用于通信的移动终端(例如,手机)的示例性组件的示图。在一些实施例中,移动终端1601或者其部分构成了用于准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染的一个或多个步骤的部件。总体上,无线电接收器经常在前端和后端特性方面进行定义。接收器的前端内包含所有的射频(RF)电路而后端则包含所有的基带处理电路。如本申请中所使用的,术语电路是指以下二者:(1)仅硬件的电路实施方式实现(诸如仅以模拟和/或数字电路的实施方式);(2)电路和软件(和/或固件)的组合(诸如,在可应用与特定环境的情况下,共同工作以使得诸如移动电话或服务器的装置执行各种功能的包括(多个)数字信号处理器的(多个)处理器、软件和(多个)存储器的组合)。“电路”的这个定义应用于本申请中使用该术语的所有情况,包括任意权利要求。作为另一个示例,如在本申请中所使用的并且如果可应用于特定环境,术语“电路”还将覆盖仅为处理器(或多个处理器)及其伴随的软件和/或固件的实施方式。如果可应用于特定环境,则术语“电路”还将覆盖作移动电话中的基带集成电路或应用处理器集成电路,或者小区网络设备或其它网络设备中类似的集成电路。

电话的相关内部组件包括主控制单元(MCU)1603、数字信号处理器(DSP)1605以及包括麦克风增益控制单元和扬声器增益控制单元在内的接收器/传送器单元。主显示单元1607向用户提供显示以支持各种应用和移动终端功能,该功能执行或支持准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染的步骤。显示器1607包括显示电路,其被配置为显示移动终端(例如,移动电话)的用户接口的至少一部分。因此,显示器1607和显示电路被配置为促成移动终端的至少一些功能的用户控制。音频功能电路1609包括麦克风1611以及对从麦克风1611输出的语音信号进行放大的麦克风放大器。从麦克风1611所输出的经放大的语音信号被送至编码器/解码器(CODEC)1613。

无线电段1615对功率进行放大并且转换频率以便经由天线1617与包括在移动通信系统中的基站进行通信。功率放大器(PA)1619和传送器/调制电路对MCU 1603进行操作响应,其中如本领域已知的,来自PA 1619的输出耦合至双工器1121或循环器或天线开关。PA 1619还耦合至电池接口和功率控制单元1620。

在使用中,移动终端1601的用户向麦克风1611中讲话并且其声音连同任意所检测到的背景噪声一起被转换为模拟电压。该模拟电压随后通过模数转换器(ADC)1623而被转换为数字信号。控制单元1603将数字信号送至DSP 1605中以便在其中处理,诸如话音编码、信道编码、加密和交织。在一个实施例中,经处理的语音信号被并未单独示出的单元使用小区传输协议进行编码,该小区传输协议诸如全域进化增强数据速率(EDGE)、通用分组无线服务(GPRS)、全球移动通信系统(GSM)、互联网协议多媒体子系统(IMS)、通用移动电信系统(UMTS)等,以及任意其它适当无线介质,例如全球微波接入互操作性(WiMAX)、长期演进(LTE)网络、码分多址(CDMA)、宽带码分多址(WCDMA)、无线保真度(WiFi)、卫星等,或者其任意组合。

编码信号随后被送至均衡器1625以便对通过空中传输部件出现的诸如相位和振幅失真之类的任何依赖于频率的损伤进行补偿。在对比特流进行均衡之后,调制器1627将信号与RF接口1629中所生成的RF信号进行组合。调制器1627利用频率或相位调制而生成正弦波。为了准备用于传输的信号,升频转换器1631将调制器1627所输出的正弦波与合成器1633所生成的另一个正弦波进行合并以实现所期望的传输频率。该信号随后通过PA 1619发送以将信号增加至适当功率水平。在实际系统中,PA 1619用作可变增益放大器,其增益由DSP 1605根据从网络基站所接收的信息来控制。该信号随后在双工器1621内进行滤波并且可选地被发送至天线耦合器1635以匹配阻抗而提供最大功率传输。最后,该信号经由天线1617传送至基站。可以提供自动增益控制(AGC)以控制接收器的最后阶段的增益。该信号可以从那里被转发至可以为另一部小区电话、任意其它移动电话或连接至公共交换电话网络(PSTN)或其它电话网络的固话的远程电话。

传送至移动终端1601的语音信号经由天线1617被接收并且立即由低噪声放大器(LNA)1637所放大。降频转换器1639降低载波频率同时解调器1641剥离RF而仅留下数字比特流。该信号随后通过均衡器1625并且由DSP 1605进行处理。数模转换器(DAC)1643对该信号进行转换并且所产生的输出通过扬声器1645而被传送至用户,这些全部都处于能够被实施为中央处理器(CPU)(未示出)的主控制单元(MCU)1603的控制之下。

MCU 1603从键盘1647接收包括输入信号在内的各种信号。与其它用户输入组件(例如,麦克风1611)相结合的键盘1647和/或MCU 1603包括用于管理用户输入的用户接口电路。MCU 1603运行用户接口软件以促成用户对移动终端1601用于准确处理并记录媒体内容以便在3D地图和其它应用中进行渲染的至少一些功能进行控制。MCU 1603还向分别显示器1607和话音输出切换控制器输送显示命令和切换命令。另外,MCU 1603与DSP 1605交换信息并且能够访问可选地所结合的SIM卡1649和存储器1651。此外,MCU 1603执行终端所需的各种控制功能。根据实施方式,DSP 1605可以对语音信号执行各种常规的数字处理功能。此外,DSP 1605从麦克风1616所检测的信号确定本地环境的背景噪声水平并且将麦克风1611的增益设置为所选择的用于对移动终端1601的用户的自然趋势进行补偿的水平。

CODEC 1613包括ADC 1623和DAC 1643。存储器1651存储包括来电话音数据在内的各种数据并且能够存储包括例如经由全球互联网所接收的音乐数据在内的其它数据。软件模块可以存在于RAM存储器、闪存、寄存器或者本领域已知的任意其它形式的可写入存储介质中。存储器设备1651可以是单个存储器、CD、DVD、ROM、RAM、EEPROM、光学存储、磁盘存储、闪存存储或者能够存储数字数据的任意其它非易失性存储介质,但是并不局限于此。

可选地所结合的SIM卡1649例如承载诸如小区电话号码、载体供应服务、订购细节和安全信息之类的重要信息。SIM卡1649主要用来在无线电网络上识别移动终端1601。卡1649还包含用于存储个人电话号码登记、文本消息和用户特定移动终端设置的存储器。

此外,传感器模块1653可以包括各种传感器,例如位置传感器、速度传感器、音频传感器、图像传感器、亮度传感器、生物计量传感器、各种生理传感器、方向传感器等,其用于捕捉与移动终端1601(例如,移动电话)、移动终端1601的用户、移动终端1601的环境和/或用户或者它们的组合相关联的各种数据,其中该数据可以被收集、处理、存储,和/或与移动终端1601的一个或多个组件和/或模块和/或与移动终端1601外部的一个或多个实体进行共享。

虽然已经结合多个实施例和实施方式对本发明进行了描述,但是本发明并不局限于此而是覆盖落入所附权利要求范围之内的各种显然的修改和等同配置形式。虽然本发明的特征在权利要求中以某些组合形式进行表达,但是预见到这些特征能够以任意组合形式和顺序进行部署。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1