首页> 中国专利> 进行全周围立体图像的描绘的图像描绘装置、图像描绘方法、图像描绘程序

进行全周围立体图像的描绘的图像描绘装置、图像描绘方法、图像描绘程序

摘要

图像描绘装置实现与结合背景图像有关的立体视。DIBR部(17)对构成结合背景图像的各个背景图像实施位移,并且实施伴随该像素位移的边界处理。结合背景图像在立体模型上结合1个以上的背景图像的端部。像素位移是使构成背景图像的像素的坐标横向移动的处理,根据深度图像中的像素的进深值决定像素的移动量。边界处理是如下处理:提取由于像素坐标的横向移动而从各个背景图像的显示范围中露出的像素群,在横向相邻的其他背景图像的端部追加被提取出的像素群。

著录项

  • 公开/公告号CN102971770A

    专利类型发明专利

  • 公开/公告日2013-03-13

    原文格式PDF

  • 申请/专利权人 松下电器产业株式会社;

    申请/专利号CN201280001059.1

  • 发明设计人 田中敬一;片山朋子;山地治;

    申请日2012-03-02

  • 分类号G06T19/00(20060101);G06T15/04(20060101);

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人王成坤;胡建新

  • 地址 日本大阪府

  • 入库时间 2024-02-19 18:03:05

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-03-10

    未缴年费专利权终止 IPC(主分类):G06T19/00 授权公告日:20160210 终止日期:20190302 申请日:20120302

    专利权的终止

  • 2016-04-06

    专利权的转移 IPC(主分类):G06T19/00 登记生效日:20160318 变更前: 变更后: 申请日:20120302

    专利申请权、专利权的转移

  • 2016-02-10

    授权

    授权

  • 2013-12-18

    实质审查的生效 IPC(主分类):G06T19/00 申请日:20120302

    实质审查的生效

  • 2013-03-13

    公开

    公开

说明书

技术领域

本发明涉及全周围图像的描绘技术。

背景技术

上述全周围图像的描绘技术是作为街景服务的基础的技术。街景服务是如下服务:在服务器上对在各种道路上的地点拍摄的全景图像进行管理,用户能够通过WEB浏览器等,以360度的全周围全景图像的方式享受任意地点的道路上的风景。通过该街景服务,在旅行目的地的周边状况的事前确认、希望再次回顾旅行后的回忆的情况等下,不是以固定视点观看风景,而能够以任意视点观看风景,所以,具有用户的使用便利性提高这样的优点。作为与街景有关的现有技术,存在以下专利文献所记载的技术。

现有技术文献

专利文献

专利文献1:日本特表2010-531007

发明内容

发明要解决的课题

但是,所述街景服务虽然能够确认全景图像,但是,所显示的影像成为平面视影像。近年来,大画面3D电视机正在普及,如果只能以平面视的方式观看全景图像,则服务明显逊色。

但是,如果为了使街景也对应于3D立体视服务而再次利用立体视照相机对世界中的道路进行拍摄,则需要庞大的时间和劳力,而且,特意拍摄的平面视图像的街景最终并没有用。因此,想到通过平面视-立体视变换而对现有的平面视街景进行立体视化的想法。在这种平面视-立体视化中,存在以下的技术屏障。关于上述绘制,通常不是作为一张墨卡托图像而拍摄的,而是通过结合纵4×横7这样的数量的多个背景图像而生成的。这样,通过结合多个背景图像而得到360度全景图像,当希望使其成为立体视化的对象时,需要对构成360度全景图像的各个图像执行基于深度图像的基于深度图像的绘制。基于深度图像的绘制是如下技术:使图像的各像素的坐标在水平方向位移,以使其具有深度图像所示的进深。这里,当对构成360度全景图像的各个图像进行基于深度图像的位移时,各个图像中的存在于端部的图像的一部分位于图像的显示区域外。这样,与构成360度全景图像的各个图像的边界相当的部分的像素消失,得到存在空白纵筋的360度全景图像。

这使显示品位大幅降低。在作为立体视化对象的影像为墨卡托图像的情况下,不存在图像间的结合边界,所以,不会产生空白的纵筋。但是,当对通过结合多个图像而得到的墨卡托图像实施基于深度图像的绘制时,用于临时存储墨卡托图像的存储器规模增大,具有妨碍产品低价格化的问题。并且,墨卡托图像原本意图粘贴在球体模型上,所以,在粘贴状态下,图像的一个端部和另一个端部相面对,产生边界。该情况下,通过进行基于深度图像的绘制,边界成为没有像素的空白部分,降低显示品位。

如上所述,在根据平面视图像和深度图像生成立体图像的情况下,具有如下课题:由于在立体图像生成过程中产生的图像两端的像素位移,各个图像彼此的无缝性丧失,其结果,以不自然的形式显示在图像彼此的边界上。

本发明的目的在于,提供如下的图像描绘装置:在立体视再现时,不会产生像素的空白部分。

用于解决课题的手段

在背景图像为街景这样的假设下提示了技术课题,但是,该假设只不过是在说明上述技术课题时选择身边的题材,本申请中作为对象的技术课题不限于背景图像为上述街景的例子的情况。结合多个某些图像而成为立体视对象时的视觉上的不匹配的消除全部是本申请的技术课题,在不久的将来,使上述技术在工业产品的领域中实用化时,是从业人员必须直面的技术屏障。

能够解决该课题的图像描绘装置实现与结合图像数据有关的立体视,其特征在于,所述结合图像数据是横向结合了多个背景图像数据而得到的,所述图像描绘装置具有:像素位移单元,对构成结合图像数据的各个背景图像数据实施像素位移,并且实施伴随该像素位移的边界处理,从而得到2个以上的视点纹理;纹理映射单元,在三维建模空间中的立体模型的内侧表面上映射2个以上的视点纹理;以及窗口变换单元,从进行纹理映射后的立体模型中提取分别与2个以上的视点对应的窗口图像,所述像素位移是使构成各个背景图像数据的像素的坐标横向移动的处理,根据与结合图像数据对应的深度图像数据中的像素的进深值决定像素的移动量,所述边界处理是如下处理:提取由于像素坐标的横向移动而从各个背景图像数据的显示范围中露出的像素群,在结合图像数据中横向相邻的其他背景图像数据的端部写入被提取出的露出像素群。

发明效果

根据本发明,在相邻的图像的位移方向的相反侧的端部追加由于位移而位于区域外的像素,所以,由于位移而位于区域外的像素群不会消失。图像边界中不会产生像素消失,所以,横向结合图像时的一体感增加,能够实现真实的360度全景图像。并且,在将图像粘贴在球体上的情况下,存在于其结合体的一个端部的图像和存在于相反侧的端部的图像相邻。该情况下,通过使存在于一个端部的图像位移,在相反侧的端部追加位于区域外的像素,所以,即使在将这些多个图像的结合体粘贴在球体模型上的情况下,由于位移而位于区域外的像素也不会消失。由此,图像的一体感增加。

例如在使结合了纵4×横7的背景图像的全周围图像位移时,不需要将纵4×横7的图像全体存储在存储器中,所以,能够实现省存储器化。

虽然是任意的,但是也可以是,所述图像描绘装置具有显示区域缓存、区域外缓存、以及用于存储进行像素位移处理后的已处理背景图像数据的纹理存储器,在显示区域缓存中存储构成所述结合图像数据的多个背景图像数据中的成为处理对象的背景图像数据,在显示区域缓存上使构成背景图像数据的像素的坐标横向移动,并且提取像素从背景图像数据的显示范围中露出的像素群,将其写入区域外缓存,从而进行所述像素位移,从区域外缓存中读出露出像素群,写入在纹理存储器中存储的已处理背景图像数据中的一个端部,从而进行所述边界处理。位移用的显示区域缓存的规模不是存储结合图像全体的容量,只要能够存储1个背景图像数据的容量就足够了。像素位移所需要的存储器的装配量成为最低限度,所以,不需要担心在数字家电中搭载图像描绘装置时的成本升高。

虽然是任意的,但是也可以是,在所述结合图像数据是通过结合1个墨卡托图像数据的一个端部和另一个端部而得到的结合墨卡托图像数据的情况下,在所述边界处理中,结合墨卡托图像数据中的各像素根据深度图像数据而位移,由此,提取从墨卡托图像的显示范围中露出的像素群,在被提取的端部的相反侧的端部改写被提取的露出像素群。在将一张墨卡托图像粘贴在球体模型的内侧表面上的情况下,该图像的一个端部与自身的相反侧的端部相邻。该情况下,通过在位移方向的相反侧的端部追加由于位移而位于区域外的像素,将具有一体感的图像粘贴在球体模型上,能够避免产生空白部分。

虽然是任意的,但是也可以是,所述图像描绘装置具有:位置方向判定单元,根据用户操作来判定地图上的当前视点位置和当前视线方向;以及取得单元,使用与地图上的当前视点位置对应的地理信息生成图像取得请求,将其发送到图像收集服务器,从而下载街景文件,从图像收集服务器下载的街景文件具有与图像取得请求中包含的地理信息一致的拍摄地属性,所述结合图像数据存在于所下载的街景文件内。根据使用地球上的地理信息的图像取得请求来发送背景图像,所以,用户能够留在房屋中,从服务器下载世界中的喜欢的场所的光景,将其合成到自己的照片中。通过该服务,能够使用户感受在世界旅行这样的虚拟体验。

虽然是任意的,但是也可以是,所述结合图像数据是视点周围图像,通过横向结合多个背景图像数据,表示从与图像取得请求中的地理信息对应的地理位置张望周围时的光景。将存在于照片文件中的地理信息作为关键字,使服务器进行背景图像的检索,取得期望的街景文件,所以,在图像描绘装置被组入数字电视机中的情况下,能够实现使数字电视机与立体视照相机协作的新型服务。由此,在捆绑销售数字电视机和立体视照相机的情况下,能够实现与竞争商品之间的差别化。

虽然是任意的,但是也可以是,所述结合图像数据是视点周围图像,通过横向结合多个背景图像数据,表示从与图像取得请求中的地理信息对应的地理位置张望周围时的光景。用户能够在视点周边图像中出现的范围内自由改变视线,能够实现随后体验功能的充实化。

附图说明

图1示出立体视全景检索服务的全体结构。

图2是示意地示出作为街景对象的虚拟空间的图。

图3示出横排粘贴多个背景图像的球面模型的内侧表面。

图4示出在三维建模空间中在立体视再现时生成的2个球面模型。

图5示出根据在球体的内侧表面粘贴的背景图像而生成多视点图像的过程。

图6示出粘贴了左位移后的全周围图像和右位移后的全周围图像的状态的球面模型。

图7示出左眼用纹理和右眼用纹理的配置。

图8示出前景图像与背景图像的合成。

图9示出随后体验影像的一例。

图10示出街景导航的画面结构的一例。

图11是示出实施方式1中的描绘装置的输入输出方式的一例的图。

图12是示出图像描绘装置的使用方式的一例的图。

图13是示出图像描绘装置的功能结构的框图。

图14是与从网络接口3或本地存储器4取得的全周围图像对应的深度图像的一例。

图15是示出通过基于深度图像使全周围图像的各像素位移而生成其他视点的图像的过程的图。

图16示出在图像中存在于坐标(x、y)的像素Pix(x、y)和在深度图像中存在于坐标(x、y)的像素depth(x、y)。

图17示出通过像素电平的位移而在左眼纹理和右眼纹理中具有什么样的视差。

图18示出全周围图像存储器13、深度图像存储器、左眼纹理存储器22、右眼纹理存储器23的内部结构与像素位移部18、显示区域缓存19、区域外缓存20之间的关系。

图19示出深度图像存储器、全周围图像存储器13、左眼纹理存储器22之间的数据流程。

图20示出深度图像存储器、全周围图像存储器13、左眼纹理存储器22之间的数据流程。

图21示出形成左眼纹理的过程。

图22示出形成右眼纹理的过程。

图23示出形成右眼纹理的过程。

图24是示出全周围图像的立体视化顺序的流程图。

图25是水平360度立体图像生成处理的流程图。

图26是示出仅根据DIBR处理而得到的右眼用的全周围图像与进行像素位移和边界处理而得到的右眼用的全周围图像的对比的图。

图27是示出实施方式2中的全周围图像和与其对应的深度图像的图。

图28是示出实施方式2中的对像素位移后的图像进行校正并生成立体图像的状况的图。

图29示出纹理映射部28的纹理映射。

图30是图像描绘装置的硬件结构图。

图31是示出GPU的内部结构的图。

图32是球面模型与纹理的对应、以及用于实现纹理映射的API调出的描述例。

具体实施方式

具有上述课题解决手段的图像描绘装置的发明能够作为用于再现街景的数字家电设备来实施,集成电路的发明能够作为装入该数字家电设备中的系统LSI来实施。图像描绘方法的发明能够作为在该数字家电设备中实现的时序顺序来实施。图像描绘程序的发明能够作为记录在计算机可读取的非临时的记录介质中并安装在数字家电设备中的执行形式程序来实施。在图像描绘装置的说明之前,对图像描绘装置的使用环境即立体视全景检索服务的全体结构进行说明。

图1示出立体视全景检索服务的全体结构。全景收集服务器1001是将从世界中收集的背景图像与深度数据和地形数据相对应地存储的服务器,根据来自客户端装置的请求,与深度图像和地形数据一起发送视点周围图像。背景图像是在专用的拍摄车辆的行驶中拍摄的。深度数据表示在该拍摄时取得的地标的进深。进而,视点周围图像表示从与对全景收集服务器1001发送的图像取得请求中的地理信息对应的地理位置张望周围时的光景。视点周围图像例如是张望90度、120度、180度、360度这样的较宽视野的图像,特别地,将张望360度视野的视点周围图像称为全景图像或全周围图像。为了便于说明,在以后的说明中,假设视点周围图像为张望360度视野的全景图像即全周围图像。该拍摄车辆具有多个照相机,在多个照相机中,通过纵4×横7的背景图像表示车辆所在的场所。深度图像通过像素的亮度表示深度数据中的地标的进深,表示背景图像的进深。即,深度图像的各个像素成为表示背景图像的各个像素的进深的进深信息

客户端装置1002是数字电视机等网络对应的家电设备,对服务器发送下载请求mg1,并接收全周围图像mg2、深度图像mg3。使用该全周围图像执行3D街景。该下载请求包括纬度、经度、海拔的信息,能够请求发送地球上的任意场所的全周围图像。

在用户希望视听立体视的街景的情况下,由用户佩戴眼镜1003。这里的立体视通过多视点图像群实现。这里,多视点图像群是如左眼图像、右眼图像、中央、右斜上图像、右斜下图像、左斜上图像、左斜下图像那样、通过与2个以上的视点对应的视点图像实现立体视的视点图像的集合体。对多视点图像群的全部变化进行说明时,说明变得烦杂,所以,在以后的说明中,设多视点图像群是由必要最低限度的视点图像组、即左眼图像和右眼图像的组构成的立体图像群,从而进行说明。

图2是示意地示出街景立体视系统的图。本图的上半部分是模型所在的虚拟空间,下半部分是客户端装置1002、眼镜1003所在的现实空间。

首先,对虚拟空间进行说明。虚拟空间是指由用于配置三维坐标的坐标系规定的三维建模空间,该三维坐标规定立体模型的几何学形状。立体模型的形状不限。可以是圆柱、圆锥、三角锥、椭圆体等的任意形状的三维模型,但是,为了便于说明,在以后的说明中,设为球面模型进行说明。作为立体模型的球体的中心是照相机的位置。为了简化,仅描绘一个球面模型,但是,在立体视时,存在分别与左眼用、右眼用有关的球面模型。图中的照相机CL是配置在从球面模型中心向右侧隔开p的位置的照相机。照相机CR是配置在从球面模型中心向左侧隔开p的位置的照相机。这些照相机CL、CR成为左眼拍摄时、右眼拍摄行为时的球面模型的中心位置。

在该立体模型的斜上方配置有结合了纵4×横7的背景图像的全周围图像。全周围图像具有右眼用的全周围图像m1和左眼用的全周围图像m2,在右眼用纹理和左眼用纹理中,三维建模空间中的配置位置不同。在本图中,仅描绘球面模型的上半部分,但是,实际上还存在下半部分。并且,关于全周围图像,也仅描绘上半部分,但是,实际上还存在下半部分。

接着,对球面模型进行说明。在球体的内侧表面存在右眼用纹理的粘贴范围m4和左眼用纹理的粘贴范围m5。球面模型中的粘贴范围是指在球面模型中由4个或3个交点规定的网格。该网格具有球面模型的曲率,被定义为将球面模型的极坐标作为顶点的三角形带的一部分或全部。在纹理映射时,设图形类型为三角形带,通过与存储有背景图像的正文缓存坐标进行对应,执行图形描绘。在纹理的近前存在显示面,在该显示面中定义窗口mg6。窗口规定三维建模空间中的用于显示的部分。投影到该窗口中的影像用于再现。窗口存在于左眼投影范围和右眼投影范围交叉的场所。即,窗口配置在左眼用和右眼用共同的位置。

在球面模型的内侧粘贴的纹理是全周围图像,所以,张望360°的全周围。如果将三维建模空间中的球面模型展开为墨卡托图形,则成为全周围图像。半球体中的纵2×横7的网格的个数与全周围图像中的纵2×横7的背景图像的个数一致。即,进行将全周围图像中的各个背景图像变换为纹理、并粘贴在球面模型的各个网格中的纹理映射。

以上是与虚拟空间有关的说明。接着,对现实空间进行说明。

在本图中,在作为立体模型的球体的正下方描绘客户端装置1002和佩戴了眼镜1003的用户的面部。客户端装置1002的显示画面存在于球面模型内的窗口的正下方。并且,眼镜1003存在于比照相机CL、CR的正下方更靠里侧。这是因为,用户的右眼、左眼成为照相机CL、CR的位置,所以,眼镜1003必须配置在其附近。

如上所述,照相机CL、CR的位置与用户的右眼、左眼相当,窗口与客户端装置1002的画面相当,所以,在客户端装置1002与用户之间出现立体视图像。在虚拟空间中,房屋以平面方式表现,但是,在现实空间中,房屋成为从客户端装置1002的画面中突现的形式。

图3示出从球面模型中心对粘贴在球面内侧的纹理进行视听的状态。图3示出横排粘贴多个背景图像的球面模型的内侧表面。在图3中,在正面配置近代的教堂,在右手侧存在滑梯。它们粘贴在球体的内侧表面,所以,当在截面圆的中心配置照相机的情况下,以从全周围包围该照相机的方式配置背景图像。在该球面模型中粘贴的纹理伴随由地球上的纬度、经度、海拔确定的视点位置而变化。即,在用户进行了视点位置的变更操作的情况下,影像提供装置对由地球上的地理信息(纬度、经度、海拔等)确定的当前视点位置进行更新,下载与更新后的当前视点位置一致的全周围图像,将该全周围图像粘贴在球面模型中,进行再次描绘。

在图2的球面模型中,照相机存在于球面模型的中心,但是,这是用于平面视的照相机位置,立体视的照相机位置不同。在立体视时,通过在从球面模型中心隔开p的位置配置照相机,得到2个球面模型。图4示出在三维建模空间中在立体视再现时生成的2个球面模型。图4(a)是左眼用的球面模型,在内侧粘贴有通过对横向结合了横7张背景图像的图像执行DIBR而生成的左眼图像。

图4(b)是通过对(a)的图像执行基于深度图像的基于深度的绘制而生成的右眼图像,在内侧粘贴有通过对横向结合了横7张背景图像的图像执行基于深度图像的基于深度的绘制而生成的右眼图像。

设构成全周围图像的横7张图像为图像A、B、C、D、E、F、G。对如何根据该图像A~G生成右眼用纹理和左眼用纹理进行说明。图5示出根据在该球体的内侧表面粘贴的背景图像而生成多视点图像的过程。(a)示出如下的一例:在通过对球体内侧表面进行分割而得到的7个分割区域中,按照A→B→C→D→E的顺序粘贴构成全周围图像的横7张图像中的A、B、C、D、E这5张背景图像。对图5(a)的图像A、图像B、图像C、图像D、图像E进行说明。在图像A中,设由于基于DIBR的位移而使坐标变化的像素集合为AL、AM、AR。在图像B中,设由于基于DIBR的位移而使坐标变化的像素集合为BL、BM、BR,在图像C中,设由于基于DIBR的位移而使坐标变化的像素集合为CL、CM、CR。在图像D中,设由于基于DIBR的位移而使坐标变化的像素集合为DL、DM、DR,在图像E中,设由于基于DIBR的位移而使坐标变化的像素集合为EL、EM、ER。这些像素群在图像中呈现“V”的形状。

在左眼用纹理的生成中,结合图像A~E来执行DIBR。由此,左端部分的像素在显示区域外,所以,在相邻图像即图像A、B、C、D、E的右侧端部追加图5(a)中的像素集合BL、CL、DL、EL、FL。该结果为图5(b)。如图5(b)所示,左眼用纹理由包含像素群AM、AR、BL的图像A(L);包含像素群BM、BR、CL的图像B(L);由像素群CM、CR、DL构成的图像C(L);包含像素群DM、DR.EL的图像D(L);以及包含像素群EM、ER、FL的图像E(L)构成。由于是纸面上的情况,所以,在图5中省略图像F、G的图示,但是,图像F、G也进行与本图相同的处理。

在右眼用纹理的生成中,结合图像A~E来执行DIBR。由此,右端部分的像素在显示区域外,所以,在相邻图像即图像A、B、C、D、E的左侧端部追加图5(a)中的像素集合GR、AR、BR、CR、DR。该结果为图5(c)。如图5(c)所示,右眼用纹理由包含像素群GR、AL、Am的图像A(R);包含像素群AR、BL、Bm的图像B(R);由像素群BR、CL、Cm构成的图像C(R);包含像素群CR、DL、Dm的图像D(R);以及包含像素群DR、EL、Em的图像E(R)构成。

图6(a)示出在球面内侧粘贴图5(b)的左位移后的像素时的纹理。图6(b)示出在球面内侧粘贴图5(c)的右位移后的像素时的纹理。

图7(a)示出在图1的三维建模空间中左眼用纹理、右眼用纹理与窗口的关系。图7(a)是左眼用纹理的配置。在本图中,在左眼用照相机的视线矢量前方配置左眼用纹理,在球面模型内侧粘贴左眼用纹理。由此,与窗口相当的部分被用于显示。图7(b)是右眼用纹理的配置。在本图中,在右眼用照相机的视线矢量前方配置右眼用纹理,在球面模型内侧粘贴右眼用纹理。由此,与窗口相当的部分被用于显示。

图8示出前景图像与背景图像的合成。(a)是作为题材的前景图像,这是以近代的教堂为背景、新郎和新娘相互面对的内容的抓拍照片。该近代的教堂也存在于背景图像中,所以,教堂的轮廓线形状成为前景图像和背景图像的共同特征。图8(b)示出前景图像与背景图像的匹配。通过该匹配,能够得到表示背景图像和前景图像的对应关系的变换矩阵,所以,如果根据该矩阵对前景图像的深度图像进行变换后进行DIBR,则得到与背景图像没有不舒适感的合成图像。

以该图8的合成为前提,能够实现随后体验。图9示出画面合成的一例。视线vw1表示通过眼镜1003对右眼进行遮光时的影像的入射。视线vw2表示通过眼镜1003对左眼进行遮光时的影像的入射。通过该vw1对左眼图像进行视听。并且,通过vw2对右眼图像进行视听。通过佩戴眼镜1003,用户交替视听右眼图像和左眼图像,再现立体视图像。图9的图像是通过根据变换矩阵对窗口中得到的前景图像和背景图像进行合成而得到的立体视图像。以在球面体内部粘贴的多个背景图像为背景来显示人物,所以,得到临场感高的立体视影像。如上所述,如果从服务器取得与照片的全局位置一致的全周围图像,则能够在与该照片一致的全周围图像中合成照片。

并且,能够在街景中合成UI目标。图10示出合成了UI目标的街景。方向导航ui在视觉上显示当前的视线方向。指示器ir1、ir2表示当前的视点位置所在的地名(loss-Less Citycentral park)和建筑物的名称(CABAC church)。十字按钮bn2在变更当前视点位置的情况下受理其行进方向的选择。变焦放大按钮bn3在不改变视点位置和视线方向的状态下受理显示内容的放大/缩小操作。角度按钮bn4受理当前视线方向的右旋转、左旋转的指定。这些GUI被分配给遥控器的键,所以,通过对遥控器进行操作,能够进行街景中的移动、旋转这样的控制。以上是与全景检索服务有关的说明。

(实施方式1)

实施方式1涉及对构成结合背景图像的各个背景图像实施像素位移时、适当地对由于该像素位移而产生的“露出像素”进行处理的改良。

图11是示出实施方式1中的图像描绘装置的输入输出方式的一例的图。描绘装置101受理与全周围图像对应的深度图像(深度映射图)作为输入,进行左眼用和右眼用的图像输出。利用立体视对应显示器,在画面上同步描绘被输出的左眼图像和右眼图像,使视听者感受立体图像。1个地点的全周围图像由纵4张、横7张的合计28张部分图像构成。一张各部分图像具有纵512像素、横512像素的像素数。深度图像(深度映射图)表示立体空间中的各像素的进深,颜色更黑的部分是在立体空间上位于里侧的物体,颜色较白的部分表示在立体空间上存在于近前侧的物体。

描绘装置针对各部分图像应用深度图像,与被输入的部分图像的数量同样,分别生成28张右眼用图像和左眼用图像。所生成的右眼用图像和左眼用图像分别被粘贴在球面上,在左眼用和右眼用时,将在3D建模空间上从球体中心观察球面侧的范围同步输出到画面上,由此,显示全周围的立体图像。

图12是示出图像描绘装置的使用方式的一例的图。用户使用遥控器102指定希望视听的场所和角度,通过液晶快门式眼镜104对输出到立体视对应显示器103的影像进行视听,由此,能够立体地感受任意地点/角度的全周围图像。

立体视对应显示器103与描绘装置101连接,或者内置由描绘装置101的功能。在图12的使用方式的例子中,立体视对应显示器103内置有描绘装置101的功能,立体视对应显示器103经由因特网而与服务器105连接。立体视对应显示器103下载与用户指定的场所对应的全周围图像和深度图像,生成右眼用图像和左眼用图像并同步显示在画面上。

图13是示出描绘装置的功能结构的框图。如图13所示,描绘装置101由用户操作检测部1、位置方向判定部2、网络接口3、本地存储器4、描绘控制部5、左眼平面存储器6、右眼平面存储器7、和输出接口8构成。

(用户操作检测部1)

用户操作检测部1检测用户的遥控器操作、键盘操作、鼠标操作等,将对应的操作代码(表示上下左右键按下、右键按下等的用户操作的代码)发送到位置方向判定部2。

(位置方向判定部2)

位置方向判定部2根据从用户操作检测部1接受的操作代码,判定应该显示在哪个视点方向观察地图上的哪个位置的全周围图像的图像。地图上的位置是当前视点位置,由包含纬度和经度的地理信息确定。并且,视点方向是当前视线方向,由水平角度和垂直角度确定。设北方为0度,绕顺时针在0度~360度的范围内表现水平角度。设地平线为0度、正上方为90度、正下方为-90度,在-90度~90度的范围内表现垂直角度。位置方向判定部2根据所接受的操作代码,确定这些纬度、经度、水平角度、垂直角度,将所确定的值转送到描绘控制部5。

(网络接口3)

网络接口3具有请求发送部和应答接收部。请求发送部向全景收集服务器1001发送指定了地球上的当前视点位置的图像取得请求。这里,在针对地图图像进行了用户操作的情况下,请求发送部使用与通过用户操作而指定的位置对应的地理信息,生成指定当前视点位置的图像取得请求,将其发送到全景收集服务器1001。应答接收部接收从全景收集服务器1001发送来的立体街景视点文件,作为针对图像取得请求的应答。从全景收集服务器1001发送来的立体街景视点文件具有与图像取得请求中包含的地理信息一致的位置属性。

在所下载的街景文件中存在有全周围图像和深度图像。街景文件被临时存储在立体图像描绘装置内的本地存储器4中。在立即显示这些图像的情况下,不存储在本地存储器4中,而将在装置内的存储器上下载的全周围图像直接转送到图像取得部。

(本地存储器4)

本地存储器4是硬盘驱动器(HDD)、USB存储器、SD存储卡等的安装在描绘装置上的记录介质。用于对从服务器下载的街景文件进行超高速缓存、并在描绘装置中利用由服务器以外的外部设备生成的街景文件等的用途。为了有效理解本地存储器4,对其存储内容即街景文件进行说明。街景文件是再现地球上的任意地点的视点的文件,是在地球上的该视点的拍摄地属性中对应作为全周围图像的压缩墨卡托图像、作为对应深度图像的压缩墨卡托深度、拍摄日期时间、数据尺寸的文件。这里的拍摄地属性是纬度、经度、海拔、方位、倾斜。街景文件具有与立体照片文件共通的数据构造,所以,在检索适于某个视点位置的街景文件时,如果搜索到数据库中存在的街景文件中的具有相同纬度、经度、海拔作为拍摄地属性的文件,则能够早期发现用户希望的街景文件。以上是与本地存储器4有关的说明。

(描绘控制部5)

描绘控制部5进行如下处理:根据由位置方向判定部2指示的地图上的位置以及从网络接口3或本地存储器4取得的全周围图像和深度图像,按照右眼用和左眼用的2个种类生成在3D建模空间内粘贴在球面上的全周围图像,提取应该在由位置方向判定部2指示的视点方向上从球的中心观察球面时被显示的窗口图像,将提取出的左眼窗口图像和右眼窗口图像分别输出到左眼平面存储器6和右眼平面存储器7。

(左眼平面存储器6)

左眼平面存储器6是存储在立体视显示中应该对左眼提示的一张图像的存储器。

(右眼平面存储器7)

右眼平面存储器7是存储在立体视显示中应该对右眼提示的一张图像的存储器。

(输出接口8)

输出接口8将存储在左眼平面存储器6和右眼平面存储器7中的图像一帧一帧地同步输出到立体视对应显示器103。具体而言,以120Hz从左右的平面存储器中交替读出图像,左右分别向显示器侧发送每秒60帧的影像。进行视听的用户佩戴液晶快门式眼镜104,液晶快门以120Hz交替反复进行开闭,由此,能够在左眼中出现左眼用的每秒60帧的图像,在右眼中出现左眼用的每秒60帧的图像,所以,能够根据左右图像的视差来感受进深。

以上是与图像描绘装置的基本结构有关的说明。接着,对描绘控制部5的内部结构进行说明。进而,描绘控制部5由全周围图像取得部11、全周围图像解码器12、全周围图像存储器13、深度图像取得部14、深度图像解码器15、深度图像存储器16、DIBR部17(像素位移部18、显示区域缓存19、区域外缓存20、边界处理部21)、左眼纹理缓存22、右眼纹理缓存23、CG处理部24(建模数据存储部25、顶点变换部26、照度计算部27、纹理映射部28、窗口变换部29)构成。

(全周围图像取得部11)

全周围图像取得部11经由网络接口3从服务器105下载与由位置方向判定部2指示的地图上的位置(由纬度和经度确定)对应的全周围图像,或者从本地存储器4取得图像。1个地点的全周围图像由纵4张、横7张的合计28张部分图像构成,一张各图像具有纵512像素、横512像素的像素数。图15(a)示出全周围图像的一例。

(全周围图像解码器12)

全周围图像解码器12是JPEG解码器,进行压缩墨卡托图像802的展开并将其存储在全周围图像存储器19中。

(全周围图像存储器13)

全周围图像存储器13是存储由全周围图像解码器12展开的墨卡托图像的存储器。

(深度图像取得部14)

深度图像取得部14从存储在本地存储器4中的街景文件中取得与全周围图像取得部11取得的全周围图像对应的深度图像。

(深度图像解码器15)

深度图像解码器15是PNG解码器,进行立体街景视点中包含的压缩墨卡托深度的展开,并将其存储在深度图像存储器16中。

(深度图像存储器16)

深度图像存储器16是存储由深度图像解码器15生成的深度图像的存储器。深度图像表示立体空间中的各像素的进深,利用8比特的亮度表现各像素的进深。亮度0(黑色)表示对应像素位于最远的位置,亮度255(白色)表示对应像素位于最近的位置。即,全周围图像可以看成彩色图像,与此相对,深度图像被识别为仅由亮度表现的灰度图像。表示深度图像的灰度图像与全周围图像同样,针对1个地点,由纵4张、横7张的合计28张部分图像构成,一张各图像具有纵512像素、横512像素的像素数(各像素仅由8比特的亮度保持)。

图14是与从网络接口3或本地存储器4取得的全周围图像对应的深度图像的一例。分别对全周围图像的1个像素分配8比特(256阶)的深度图像。进深值0表示在3D空间上位于最里侧,进深值255表示在3D空间上位于最近前侧。这些进深值作为8比特的亮度被分配,如图14所示,深度图像表现为灰度的图像(深度映射图)。

深度图像中的1个像素分别对应于作为基础的全周围图像的1个像素的进深值(深度值)。例如,在深度映射图图像上的坐标(X=100、Y=100)的像素的亮度为50的情况下,表示对应的全周围图像的坐标P(X=100、Y=100)的像素为进深值50,在深度映射图图像上的坐标(X=200、Y=200)的像素的亮度为100的情况下,表示对应的全周围图像的坐标Q(X=200、Y=200)的像素为进深值100。

即,全周围图像的坐标P(X=100、Y=100)为进深值50、全周围图像的坐标Q(X=200、Y=200)为进深值100,所以,与坐标Q相比,坐标P在3D空间上位于里侧。

<DIBR部17>

DIBR部17从全周围图像取得部11取得基本的左眼用全周围图像,从深度图像取得部14取得与基本图像对应的深度图像,进行DIBR处理,生成右眼图像。DIBR(Depth Image Based Rendering或Depth Image Based Representations)是如下处理:根据深度图像(深度映射图),从基本图像起使各像素左右位移,生出另一视点的视点图像。在将基本的全周围图像分配给左眼用的情况下,如果所生成的其他视点的视点图像(即右眼用的图像)上的像素相对于基本像素向右位移,则在3D空间上向里侧移动,如果相对于基本像素向左位移,则在3D空间上向近前移动。这是基于通过所谓的人眼的阻塞角之差而生出的立体知觉,当相对于基本的左眼图像而使右眼图像上的像素向左位移时,阻塞角减小,成为所谓的斜视状态,所以,感觉由该像素表现的物体位于近前。相反,当相对于基本的左眼图像而使右眼图像上的像素向右位移时,阻塞角变大,感觉由该像素表现的物体位于里侧。由此,如果根据由深度图像所示的各像素的进深值使基本的左眼图像的各像素左右位移,则能够生成对应的可立体视的右眼图像。

但是,根据DIBR处理而生成的右眼图像还不完全。在图像中央附近位移的像素没有问题,但是,关于在图像的两端部位移的像素,由于像素的坐标和位移量,位移后的像素有时位于图像区域外的位置。并且,在图像的端部,在向中心方向位移的情况下,还产生填埋位移前的位置的像素丢失的问题。

使用图15具体说明这些问题。图15是示出根据深度图像使基本的全周围图像的各像素位移而生成其他视点的视点图像的状况的图。

在该图15的一例中,作为最简单的对应,设位移量0的基准值为进深值0,随着进深值增大,更多地向左侧位移。这里,为了简便,进深值增加1时,向左的位移量增加1。即,进深值0的像素不进行位移,进深值50的像素向左方位移50像素。存在于图15(a)的左上方的图像是结合了多个背景图像的全周围图像。在该图像中,在左端部描绘云,在右端部以跨越相邻图像的形式描绘房屋。存在于图15(a)的右上方的图像是对应的深度图像。在该深度图像中示出,与表现天空的背景相当的部分位于最里侧(进深值0),与天空相比,云和房屋位于近前侧。在图15(a)中,设云的进深值为50、房屋的进深值为100。在DIBR处理中,首先决定位移量0的基准值,然后,根据进深值决定位移量。

在图15中,相当于天空的部分为进深值0,所以不进行位移。另一方面,云的进深值为1以上,所以进行像素位移。大厦的进深值为50,所以,使构成云的像素向左方位移50像素。大厦为进深值100,所以,使构成大厦的像素向左方位移100像素。对构成全周围图像的各个图像进行像素位移的结果为图5(b)的图像。云的原本位置为左端部附近,所以,成为位移后的结果从显示区域露出的位置。另一方面,房屋位于右端部,以跨越相邻图像的方式进行描绘,所以,向左方位移后,原本的像素位于相邻图像中,因此,由于位移而产生空白,成为一部分丢失的状态。可知构成云的左端、房屋的正中间部分、山的正中间部分的像素分别成为露出像素。因此,DIBR部17通过具有边界处理部21,进行补充基于位移而产生的空白的处理。图15

(c)是其补充结果。使用相邻图像的露出像素改写图15(b)所示的基于位移而产生的空白。

(像素位移部18)

像素位移部18从全周围图像存储器13中取出由横512×纵512的像素构成的图像数据,并且,从全周围图像存储器16中取出由横512×纵512的像素构成的深度数据,基于该横512×纵512的深度数据,对横512×纵512的像素的集合执行像素位移。叙述在执行像素位移时对各像素设定什么样的视差。在存在于深度图像的坐标(x、y)的像素中,在从视点起的进深为Depth(x、y)的情况下,例如,能够根据以下的数学式从深度图像中存在于坐标(x、y)的亮度Y(x、y)变换为进深Depth(x、y)。

(数学式)

Y(x、y)=255-(log(Depth(x、y)+1)×100)

通过将这样求出的进深Depth(x、y)变换为与显示器的画面尺寸对应的像素数offset(x、y),能够将像素的亮度变换为适当的视差。

在DIBR中,在使构成图像的多个像素中的位于任意坐标(x、y)的像素的坐标沿水平方向移动时,根据由在对应的深度图像中存在于坐标(x、y)的像素的亮度Y(x、y)导出的进深Depth(x、y),求出该坐标(x、y)固有的offset(Depth(x、y)、y),使用该offset(Depth(x、y)、y)作为移动量,由此得到其他视点的视点图像。图16(a)示出在深度图像中存在于坐标(x、y)的像素的进深Depth(x、y)。Depth(x、y)在位置上与图16(b)中的Pix(x、y)对应。图16(b)示出在图像存储器中存在于坐标(x、y)的像素Pix(x、y)。图16(c)示出在生成左眼纹理时像素Pix(x、y)如何位移。在图16(c)中,在全周围图像存储器18中,Pix(x、y)沿水平方向以Offset(Depth(x、y))进行变位。因此,位于Pix(x+Offset(Depth(x、y))、y)。在全周围图像中,Offset(Depth(x、y))在x、y坐标中是唯一的偏移,根据基于深度图像中的对应像素的亮度的Depth(x、y)来设定。

在生成2个以上的视点图像时,像素沿水平方向如何变位是根据图像的每个像素而不同的。深度图像中的像素的亮度电平与位移量即像素数之间的对应能够根据上述数学式导出。作为该对应的一例,可以如图16(c)那样设定。

图16(c)示出Y(x、y)中的0~255的亮度范围与1像素~16像素的单位偏移之间的对应。在本图中,对0~63的亮度范围分配0~2像素的范围的偏移,对64~127的亮度范围分配3~4像素的范围的偏移,对128~191的亮度范围分配5~8像素的偏移,对192~255的亮度分配9~16像素的偏移。即,进行如下的非线性的对应:增大应该对明亮部分的亮度范围分配的视差,减小应该对昏暗部分的亮度范围分配的视差。

图17示出通过像素电平的位移而在左眼纹理和右眼纹理中具有什么样的视差。图17(a)示出深度图像,图17(b)示出左眼纹理存储器的存储内容,图17(c)示出右眼纹理存储器的存储内容。

Pix(x1、y)是图17(b)中并列的3个大厦中的最靠前的大厦的像素。Pix(x2、y)是3个大厦中的第2个大厦的像素。Pix(x3、y)是3个大厦中的第3个大厦的像素。

图17(a)是深度图像的一例,示出对左眼纹理中的像素Pix(x1、y)、Pix(x2、y)、Pix(x3、y)赋予的进深。Depth(x1、y)表示左眼纹理中的Pix(x1、y)的进深。Depth(x2、y)表示左眼纹理中的Pix(x2、y)的进深。Depth(x3、y)表示左眼纹理中的Pix(x3、y)的进深。

图17(c)的下侧示出在DIBR中对各像素赋予的偏移。Offset(Depth(x1、y)、y)表示对左眼纹理中的Pix(x1、y)赋予的偏移。Offset(Depth(x2、y)、y)表示对左眼纹理中的Pix(x2、y)赋予的偏移,Offset(Depth(x3、y)、y)表示对左眼纹理中的Pix(x3、y)赋予的偏移。如本图所示,由于具有Depth(x1、y)>Depth(x2、y)>Depth(x3、y)的关系,所以,对构成最靠前的大厦的像素赋予最大的视差,从画面中大幅突现。如上所述,在DIBR中,像素的变位量根据深度图像中的对应像素的亮度而不同,所以,如果使用算术运算器而根据深度图像中的各像素的亮度计算偏移,则能够通过硬件元件安装像素位移部18。以上是与像素位移部18有关的说明。接着,对显示区域缓存19进行详细说明。

(显示区域缓存19)

显示区域缓存19存储作为像素位移部18的DIBR处理结果的像素的集合中的、位移后的坐标位于显示区域内的像素。在原来的图像数据的分辨率为横M×纵N的情况下,在以图像数据的左上坐标为原点(0、0)的坐标系中,X坐标为0~M-1的像素、Y坐标为0~N-1的像素成为“显示区域”。这样,将位移后的X坐标为M以上的像素除外,将X坐标为0~M-1的范围的像素存储在该显示区域缓存19中。在位移对象为横512×纵512的情况下,将位移后的X坐标为512以上的像素除外,将X坐标为0~511的范围的像素存储在该显示区域缓存19中。

(区域外缓存20)

区域外缓存20存储作为像素位移部18的DIBR处理结果的像素的集合中的、位移后的坐标位于显示区域外的像素即“露出像素”。在原来的图像数据的分辨率为横M×纵N的情况下,位移后的X坐标为M以上的像素被作为“露出像素”而存储在该区域外缓存20中。

(边界处理部21)

边界处理部21对基于DIBR处理的像素位移不完全的图像的边界进行校正。图像的边界处理是如下的处理:在像素位移部18对下一个相邻的图像数据进行处理时,使用存储在区域外缓存20中的显示区域范围外的像素,填埋在图像端部丢失的像素。

<左眼纹理存储器22、右眼纹理存储器23>

右眼纹理存储器22、左眼纹理存储器23的对存储街景DIBR执行部17进行DIBR而得到的左眼纹理和右眼纹理。

<CG处理部24>

CG处理部24进行如下处理:将构成建模数据的三维坐标配置在三维建模空间中,将该三维建模空间中的三维坐标投影到窗口中。该处理具有坐标/视野变换、照度计算(纹理映射处理)、窗口处理。

(建模数据存储部25)

建模数据存储部25存储规定球体模型和GUI部件的形状的建模数据。

<坐标变换部26>

坐标变换部26将视点设为照相机,通过指定照相机的方向和变焦等级,决定投影立体物的幕。然后,将规定球面模型的建模数据的三维坐标变换为三维建模空间中的世界坐标。这里的坐标变换是指,将三维建模空间中的照相机位置作为原点,将规定建模数据的三维坐标变换为从照相机观察的坐标系中的世界坐标。

<照度计算部27>

照度计算部27计算对立体物照射从在三维建模空间中设定的光源位置照射的光时的各顶点中的照度。

<纹理映射部28>

纹理映射部28在3D建模空间上准备左眼用和右眼用的2个球体,将对背景图像进行变换而得到的2个以上的左眼用纹理和右眼用纹理映射到三维建模空间中的球体模型的内侧表面。

<窗口变换部29>

窗口变换部29按照包含显示器的分辨率等的显示器信息,将三维建模空间中的三维坐标的顶点坐标变换为二维的幕坐标,从而提取窗口图像。提取出的图像具有左眼窗口图像和右眼窗口图像,窗口变换部将它们分别输出到左眼平面存储器6和右眼平面存储器7。在来自位置方向判定部2的指示为当前视点位置没有变化、仅当前视线方向变化的情况下,纹理映射部跳过纹理映射处理,仅窗口变换部伴随当前视线方向变化而进行窗口的再次提取和指定平面存储器的再次输出。

以上是与描绘控制部5有关的说明。

图18示出全周围图像存储器13、深度图像存储器、左眼纹理存储器22、右眼纹理存储器23的内部结构与像素位移部18、显示区域缓存19、区域外缓存20之间的关系。在本图中,存储器的存储区域成为格子状。该格子的每一个格子分别意味着存储器的存储元件中的存储内容。作为存储元件的存储内容,存在像素值。该像素值由亮度Y、红色差Cr、蓝色差Cb、透明度α构成。

在上段描绘深度图像存储器16、全周围图像存储器13,在下段描绘左眼纹理存储器22、右眼纹理存储器23,在中段描绘像素位移部18、显示区域缓存19、区域外缓存20。全周围图像存储器13中的A、B、C、D、E、F、G是构成全周围图像的横向7个图像,各图像具有纵512×横512像素的规模。左上方的左眼纹理存储器22中的A(dp)、B(dp)、C(dp)、D(dp)、E(dp)、F(dp)、G(dp)是纵512×横512像素的规模的灰度。在左下方的左眼纹理存储器22的存储内容中,A(L)、B(L)、C(L)、D(L)、E(L)、F(L)、G(L)是左方向的位移结果。在右下方的右眼纹理存储器23的存储内容中,A(R)、B(R)、C(R)、D(R)、E(R)、F(R)、G(R)是右方向的位移结果。

从存储在全周围图像存储器13内的纵4×横7的全周围图像中取出由纵512×横512像素的像素构成的图像,并且,从存储在深度图像存储器内的深度图像中取出由对应的纵512×横512像素的像素构成的灰度。然后,根据所取出的图像和灰度执行DIBR,将其结果存储在左眼纹理存储器22和右眼纹理存储器23中,在左眼纹理存储器22和右眼纹理存储器23上依次形成左眼纹理和右眼纹理。

图19示出深度图像存储器、全周围图像存储器13、左眼纹理存储器22之间的数据流程。本图是基于图18而制作的,与作为该基础的结构相比,不同之处在于追加了表示图像数据的来去的箭头。在图19(a)中,箭头df1、df2示意地示出来自深度图像存储器的深度图像A(dp)和来自全周围图像存储器13的图像A的读出。箭头df3、df4示意地示出从显示区域缓存19和区域外缓存20针对左眼纹理存储器22的图像A(L)的写入。

在图19(b)中,箭头df5、df6示意地示出来自深度图像存储器的深度图像B(dp)和来自全周围图像存储器13的图像B的读出。箭头df7、df8示意地示出从显示区域缓存19和区域外缓存20针对左眼纹理存储器22的图像B(L)的写入。

图20示出深度图像存储器、全周围图像存储器13、左眼纹理存储器22之间的数据流程。本图是基于图18而制作的,与作为该基础的结构相比,不同之处在于追加了表示图像数据的来去的箭头。在图20(a)中,箭头df9、df10示意地示出来自深度图像存储器的深度图像A(dp)和来自全周围图像存储器13的图像A的读出。箭头df11、df12示意地示出从显示区域缓存19和区域外缓存20针对右眼纹理存储器23的图像A(R)的写入。

在图20(b)中,箭头df13、df14示意地示出来自深度图像存储器的深度图像B(dp)和来自全周围图像存储器13的图像B的读出。箭头df15、df16示意地示出从显示区域缓存19和区域外缓存20针对右眼纹理存储器23的图像B(R)的写入。如上所述可知,按照纵512×横512像素读出存储在全周围图像存储器13中的全周围图像并供给到像素位移部18,按照纵512×横512像素执行DIBR。

参照图21~图23说明在针对构成全周围图像的各个图像的DIBR中如何产生空白、并且如何补充该空白。

关于基于位移而引起的空白的补充,在对某个图像实施像素位移时,将从图像的显示区域产生的露出像素临时存储在区域外缓存20中,在对下一个图像实施像素位移时,将存储在缓存中的露出像素群用于与该图像有关的位移空白的补充。

(左眼纹理、右眼纹理的形成过程)

经由基于上述结构要素的处理过程,得到左眼纹理和右眼纹理。图21~图23示意地描绘出从原材料到得到最终成果物的中途过程中的成为话题的过程。

图21示出左方向位移时的全周围图像存储器13-显示区域缓存19、区域外缓存20-左眼纹理存储器22之间的数据流程。图20(a)中的箭头uf1表示基于DIBR的像素位移。由此,图像A全体向右方向位移,在图像A的右端产生基于位移的空白。箭头uf2表示通过DIBR而从显示区域缓存19露出的像素针对区域外缓存20的写入。箭头uf3表示从区域外缓存20针对左眼纹理存储器22的像素的写入。由此,可知区域外缓存20内的像素作为G(L)的一部分而被存储在左眼纹理存储器22中。箭头uf4表示从显示区域缓存19针对左眼纹理存储器22的像素的写入。由此,可知显示区域缓存19内的图像A的主体附带空白,作为A(L)的一部分而被存储在左眼纹理存储器22中。

图21(b)中的箭头uf5表示基于DIBR的像素位移。由此,图像B全体向右方向位移,在图像B的右端产生基于位移的空白。箭头uf6表示通过DIBR而从显示区域缓存19露出的像素针对区域外缓存20的写入。箭头uf7表示从区域外缓存20针对左眼纹理存储器22的像素的写入。由此,可知区域外缓存20内的像素作为A(L)的一部分而被存储在左眼纹理存储器22中。箭头uf8表示从显示区域缓存19针对左眼纹理存储器22的像素的写入。由此,可知显示区域缓存19内的图像B的主体附带空白,作为B(L)的一部分而被存储在左眼纹理存储器22中。

图21(c)中的箭头uf9表示基于DIBR的像素位移。由此,图像C全体向右方向位移,在图像C的右端产生基于位移的空白。箭头uf10表示通过DIBR而从显示区域缓存19露出的像素针对区域外缓存20的写入。箭头uf11表示从区域外缓存20针对左眼纹理存储器22的像素的写入。由此,可知区域外缓存20内的像素作为B(L)的一部分而被存储在左眼纹理存储器22中。箭头uf12表示从显示区域缓存19针对左眼纹理存储器22的像素的写入。由此,可知显示区域缓存19内的图像C的主体附带空白,作为C(L)的一部分而被存储在左眼纹理存储器22中。

图22、图23示出在左眼纹理存储器22和右眼纹理存储器23内形成右眼纹理和左眼纹理的过程。作为该形成过程的前提,选择图22(a)所示的5张图像。图22(a)示出对图像G实施DIBR而得到G(R)的阶段。图22(b)示出对图像F实施DIBR而得到F(R)的阶段。图22(a)示出对图像E实施DIBR而得到E(R)的阶段。图22(b)示出对图像D实施DIBR而得到D(R)的阶段。图22(a)(b)、图23(a)(b)均成为共通的记载,第1段示出全周围图像存储器13的存储内容,第2段示出显示区域缓存19和区域外缓存20的存储内容,第3段示出左眼纹理存储器22的存储内容。

在第2段中,在该位移方向的相反侧的端部产生伴随DIBR中的位移而产生的空白。在区域外缓存20中存储有由于该位移而从显示区域中被赶出的像素。在第3段中,可知在改写由于针对此后的图像的位移而产生的空白时使用存储在区域外缓存20中的露出像素群。

图22示出左方向位移时的全周围图像存储器13-显示区域缓存19、区域外缓存20-左眼纹理存储器22之间的数据流程。图20(a)中的箭头tf1表示基于DIBR的像素位移。由此,图像G全体向左方向位移,在图像G的左端产生基于位移的空白。箭头tf2表示通过DIBR而从显示区域缓存19露出的像素针对区域外缓存20的写入。箭头tf3表示从区域外缓存20针对左眼纹理存储器22的像素的写入。由此,可知区域外缓存20内的像素作为A(R)的一部分而被存储在左眼纹理存储器22中。箭头tf4表示从显示区域缓存19针对左眼纹理存储器22的像素的写入。由此,可知显示区域缓存19内的图像G的主体附带空白,作为G(R)的一部分而被存储在左眼纹理存储器22中。

图22(b)中的箭头tf5表示基于DIBR的像素位移。由此,图像F全体向左方向位移,在图像F的左端产生基于位移的空白。箭头tf6表示通过DIBR而从显示区域缓存19露出的像素针对区域外缓存20的写入。箭头tf7表示从区域外缓存20针对左眼纹理存储器22的像素的写入。由此,可知显示区域缓存19内的像素作为G(R)的一部分而被存储在左眼纹理存储器22中。箭头tf8表示从显示区域缓存19针对左眼纹理存储器22的像素的写入。由此,可知区域外缓存20内的图像F的主体附带空白,作为F(R)的一部分而被存储在左眼纹理存储器22中。

图23(a)中的箭头tf9表示基于DIBR的像素位移。由此,图像E全体向左方向位移,在图像E的左端产生基于位移的空白。箭头tf10表示通过DIBR而从显示区域缓存19露出的像素针对区域外缓存20的写入。箭头tf11表示从区域外缓存20针对左眼纹理存储器22的像素的写入。由此,可知区域外缓存20内的像素作为F(R)的一部分而被存储在左眼纹理存储器22中。箭头tf12表示从显示区域缓存19针对左眼纹理存储器22的像素的写入。由此,可知显示区域缓存19内的图像E的主体附带空白,作为E(R)的一部分而被存储在左眼纹理存储器22中。

图23(b)中的箭头tf13表示基于DIBR的像素位移。由此,图像D全体向左方向位移,在图像D的左端产生基于位移的空白。箭头tf14表示通过DIBR而从显示区域缓存19露出的像素针对区域外缓存20的写入。箭头tf15表示从区域外缓存20针对左眼纹理存储器22的像素的写入。由此,可知区域外缓存20内的像素作为E(R)的一部分而被存储在左眼纹理存储器22中。箭头tf16表示从显示区域缓存19针对左眼纹理存储器22的像素的写入。由此,可知显示区域缓存19内的图像D的主体附带空白,作为D(R)的一部分而被存储在左眼纹理存储器22中。

<以通用CPU上的动作为前提的软件安装>

通过利用ASIC等硬件集成元件具体实现上述图像描绘装置中的各结构要素,能够以工业方式生产本实施方式的图像描绘装置。在该硬件集成元件采用CPU、代码ROM、RAM这样的通用的计算机系统的体系结构的情况下,必须预先将利用计算机代码描述了上述各结构要素的处理顺序的程序组入代码ROM中,使硬件集成元件内的CPU执行该程序的处理顺序。

对在采用通用的计算机系统的体系结构的情况下软件安装所需要的处理顺序进行说明。

图24是示出绘制的立体视化顺序的流程图。是主流程。在步骤S1中,决定绘制地图中的当前视点位置(纬度、经度)和在画面上显示的当前视线方向(水平角度和垂直角度),在步骤S2中生成与地图上的当前视点位置对应的图像取得请求,将图像取得请求发送到服务器1001。在步骤S3中,等待接收街景文件,如果接收到街景文件,则在步骤S4中取得全周围图像和与其对应的深度图像。

在步骤S5中,将垂直方向的4张图像中的任意一张图像作为当前图像。然后,转移到步骤S6~步骤S8的循环。在该循环中,对当前图像执行水平360度的多视点图像的生成(步骤S6),判定当前图像是否是垂直方向的最后的图像(步骤S7),如果不是最后的图像,则反复进行将纵方向的下一个图像作为当前图像的处理(步骤S8)。这里,如果当前图像是垂直方向的最后的图像,则步骤S7为“是”,退出该循环。

以后,在步骤S9中,针对在3D建模空间中准备的左眼用的球体模型和右眼用的球体模型粘贴通过DIBR而得到的右眼纹理和左眼纹理。在步骤S8中,将从球体模型的中心观察视线方向时的投影图像写入左眼用平面和右眼用平面。

图25是水平360度立体图像生成处理的流程图。在步骤S13中,将横7张图像中的位于当前视线方向中的图像作为基点图像。在步骤S14中,将基点图像作为当前图像,在步骤S15中,提取当前图像和与其对应的深度图像,在步骤S16中,使当前图像的各个像素坐标在水平方向位移,以使其具有深度图像所示的各个像素的进深。在步骤S17中,将具有由于位移而位于区域外的坐标的像素群写入区域外缓存中。以后,执行步骤S18~步骤S22的循环。在该循环中,在步骤S18中,将在位移方向上与当前图像相邻的图像设定为当前图像,在步骤S19中,使当前图像的各个像素坐标在水平方向位移,以使其具有深度图像所示的各个像素的进深,在步骤S20中,将由于位移而位于区域外的像素写入区域外缓存中。然后,在步骤S21中,在当前图像中的位移方向的相反侧的端部追加区域外缓存中的像素群。步骤S22规定该循环的结束条件,判断当前图像是否与基点图像相同。如果不相同,则步骤S22为“否”,继续进行循环。如果相同,则转移到步骤S23,在当前图像中的位移方向的相反侧的端部追加区域外缓存中的像素群,转移到步骤S12。

根据本图的流程图,在根据作为基础的左眼用的全周围图像生成右眼用的全周围图像时,所生成的右眼用全周围图像也是即使结合28张部分图像也没有像素缺失的无缝的全周围图像。将这些图像作为纹理映射到球面上,向左右平面输出用户希望观察的方向的投影图像,由此,能够实现无缝的全周围立体视。

以后,对基于图24和图25的流程图的各结构要素的动作进行说明。首先,通过用户操作检测部1、位置方向判定部2,决定应该显示的全周围图像在地图上的位置(纬度和经度)和在画面上显示的方向(水平角度和垂直角度)(S1)。接着,通过全周围图像取得部11,取得与在步骤S1中决定的地图上的位置对应的全周围图像(S2)。在步骤S2中取得的1个地点的全周围图像由纵4张、横7张的合计28张部分图像构成,一张各图像具有纵512像素、横512像素的像素数。它们成为左眼用的全周围图像。

接着,通过深度图像取得部14,取得与在步骤S2中取得的全周围图像对应的深度图像(S3)。深度图像表示立体空间中的各像素的进深,利用8比特的亮度表现各像素的进深。深度图像自身也构成为图像,与全周围图像同样,关于1个地点,由纵4张、横7张的合计28张灰度图像构成。

在步骤S2和步骤S3中取得作为基础的全周围图像和深度图像后,选择垂直方向4张图像中的任意一张,根据图18所示的流程图进行水平360度的立体图像生成(S5)。作为从垂直方向4张图像中进行选择的方法,优选选择与应该显示的全周围图像的垂直角度接近的位置的图像。从位于视点方向上的图像起优先进行处理,由此,在处理中,也能够在画面上显示其余图像。

由于垂直方向具有4张图像,所以,存在4种水平360度的图像组。如果判断为针对所有组完成了立体图像的生成处理(S7:“是”),则接着进行纹理映射(S9)。该情况下的纹理映射是如下处理:针对在3D建模空间上准备的左眼用和右眼用的2个球体,将基本的全周围图像和由边界处理部21生成的立体图像分别粘贴在左眼用和右眼用的球体面上。

如果步骤S9中的纹理映射完成,则将在从球体中心观察由位置方向判定部2指定的视点方向时投影的图像写入左眼平面和右眼平面中(S10),利用立体视对应显示器进行立体视显示。

在图25中,首先,通过全周围图像取得部11从构成水平360度的图像中提取作为基点的图像,从深度图像取得部14取得与所提取出的基点图像对应的深度图像(S13~15)。作为基点的图像优选为位于由位置方向判定部2指示的视点方向上的图像。从位于视点方向上的图像起优先进行处理,由此,在处理中,也能够在画面上显示其余图像。

决定作为基点的图像后,利用DIBR部17进行像素位移处理(DIBR处理)(S16)。如上所述,在DIBR处理中位移后的像素有时露出到图像区域外,通过边界处理部21,将露出到图像区域外的像素临时存储在图像区域外的缓冲存储器中(S17)。将露出到图像区域外的像素临时存储在缓冲存储器中后,再次通过全周围图像取得部11提取图像,并通过深度图像取得部14取得对应的深度图像。此时,作为当前图像,选择在上次进行DIBR处理的图像的左侧相邻的图像(S18)。接着,判断在步骤S18中提取出的当前图像是否与在步骤S13中提取出的基点图像一致(S22)。在判断为在步骤S104中提取出的图像不是基点图像(即,还未在水平方向上完成1周360度的处理)的情况下,对在步骤S18中提取出的图像进行DIBR处理,生成右眼用的其他视点的视点图像(S19)。

接着,对在步骤S19中得到的右眼用的其他视点的视点图像进行如下处理:在图像右侧端部追加当前存储在区域外缓冲存储器中的像素群(S20)。接着,本次将在步骤S19的DIBR处理中露出到区域外的像素存储在区域外缓冲存储器中(S21)。然后,选择与在步骤S18中进行处理后的图像的左侧相邻的图像,反复进行步骤S18~S21的处理。

反复进行步骤S18~S21的处理,在步骤S22中判断为在步骤S18中提取出的相邻方向的图像与在步骤S14中提取出的基点图像相同的情况下(即,在水平方向上完成1周360度的处理),进行在基点图像的右侧端部追加当前存储在区域外缓冲存储器中的像素群的处理(S23),结束水平方向1周360度的像素位移和边界处理。

图26是示出仅根据DIBR处理而得到的右眼用的全周围图像与进行像素位移和边界处理而得到的右眼用的全周围图像的比较的图。图19(a)是仅进行基于DIBR处理的像素位移而完成图像结合的全周围图像。在结合的部分中成为不自然的图案,但是,在DIBR处理中像素露出到画面区域外,这些像素在图像端部缺失,所以,在重合的部分中产生像素的缺失,在结合图像时无法无缝地显示图案。

图26(b)是新实施像素位移和边界处理而完成的全周围图像。在图26中,通过将由于DIBR处理而露出到画面区域外的像素活用于相邻图像生成,能够防止结合部分中的像素的缺失,在图像的接缝中也能够无缝地显示图案。

(实施方式2)

叙述了全周围图像由多个部分图像构成时的立体全周围图像生成,但是,本实施方式叙述全周围图像由1张图像构成时的立体全周围图像生成。为了对该全周围图像进行处理,第1实施方式的现有结构要素即全周围图像取得部11、深度图像取得部14、DIBR部17、显示区域缓存19、区域外缓存20、边界处理部21、纹理映射部28进行以下的处理。

全周围图像取得部11经由网络接口3从服务器105下载由位置方向判定部2指示的地图上的位置的全周围图像,或者从本地存储器4取得图像。

深度图像取得部14从存储在本地存储器4中的街景文件中取得与全周围图像取得部11取得的全周围图像对应的深度图像。图27示出在实施方式2中全周围图像取得部11和深度图像取得部14取得的全周围图像和深度图像。图27(a)中的全周围图像由纵2048像素、横3584像素的较大的一张图像形成。如图27(b)所示,对应的深度图像也由纵2048像素、横3584像素的较大的一张灰度图像形成。

DIBR部17从全周围图像取得部11取得基本的左眼用全周围图像,从深度图像取得部14取得与基本图像对应的深度图像,进行DIBR处理,生成右眼图像。

显示区域缓存19存储通过位移而得到的右眼图像。

区域外缓存20存储由于位移而产生的露出像素。

作为边界处理,边界处理部21在从右端向左方向(即图像中央的方向)偏离10像素的位置(垂直方向上位于相同位置)进行嵌入。在全周围图像由较大的一张图像形成的情况下,当由于DIBR处理而在图像端部产生像素的露出时,该像素成为应该嵌入图像相反端部侧的像素。这是因为,在全周围图像由1张图像形成的情况下,图像在球面上环绕一周,所以,右端的像素和左端的像素最终并列显示在球面上。因此,当捕捉到图像的右端和左端连续的情况时,在左端从图像区域露出的像素成为应该嵌入相反端即右端的像素。

例如,通过边界处理部21的边界处理,由于DIBR处理而从左端向左侧露出10像素的像素被嵌入从右端向左方向(即图像中央的方向)偏离10像素的位置(垂直方向上位于相同位置)。图28是示出实施方式2中的对像素位移后的图像进行校正并生成立体图像的状况的图。在全周围图像由较大的1张图像形成的情况下,当由于DIBR处理而在图像端部产生像素的露出时,该像素成为应该嵌入图像相反端部侧的像素。这是因为,在全周围图像由1张图像形成的情况下,图像在球面上环绕一周,所以,右端的像素和左端的像素最终并列显示在球面上。因此,当捕捉到图像的右端和左端连续的情况时,在左端从图像区域露出的像素成为应该嵌入相反端即右端的像素。

例如,通过边界处理,由于DIBR处理而从左端向左侧露出10像素的像素被嵌入从右端向左方向(即图像中央的方向)偏离10像素的位置(垂直方向上位于相同位置)。

纹理映射部28将通过DIBR而得到的左眼纹理和右眼纹理映射到球面模型。图29示出纹理映射部28的纹理映射。通过DIBR部17的DIBR得到上段的左眼纹理和右眼纹理,可知它们如箭头tm1、tm2所示那样粘贴在下段的左眼用球面模型和右眼用球面模型的内侧表面。对进行了该粘贴的左眼用球面模型和右眼用球面模型进行窗口提取。

作为改良的结构要素的说明之后的说明,对进行了上述改良的情况下的现有结构要素的动作进行说明。即,说明如何根据实施方式1的流程图对存储在显示区域缓存19中的全周围图像进行处理。

在图24中,将一张全周围图像作为对象时的动作如下所述。首先,通过用户操作检测部1、位置方向判定部2,决定应该显示的全周围图像在地图上的位置(纬度和经度)和在画面上显示的方向(水平角度和垂直角度)(S1)。接着,通过全周围图像取得部11,取得与在步骤S401中决定的地图上的位置对应的全周围图像(S2)。在步骤S402中取得的1个地点的全周围图像由纵2048像素、横3584像素的较大的一张图像形成。其成为左眼用的全周围图像。接着,通过深度图像取得部14,取得与在步骤S402中取得的全周围图像对应的深度图像(S3)。深度图像表示立体空间中的各像素的进深,利用8比特的亮度表现各像素的进深。深度图像自身也构成为图像,与全周围图像同样,形成为纵2048像素、横3584像素的较大的一张灰度图像。

在取得作为基础的全周围图像和深度图像后,根据所示流程图进行立体图像生成(S5)。在步骤S404中结束立体图像生成后,接着进行纹理映射(S7)。该情况下的纹理映射是如下处理:针对在3D建模空间上准备的左眼用和右眼用的2个球体,将基本的全周围图像和由边界处理部21生成的立体图像分别粘贴在左眼用和右眼用的球体面上。如果步骤S7中的纹理映射完成,则将在从球体中心观察由位置方向判定部2指定的视点方向时投影的图像写入左眼平面和右眼平面中(S8),利用立体视对应显示器进行立体视显示。

提取应该显示的全周围图像,从深度图像取得部14取得与所提取出的图像对应的深度图像(15)。接着,根据在步骤S2中取得的图像和深度图像,利用DIBR部17进行像素位移处理(DIBR处理)(S16)。

在DIBR处理中位移后的像素有时露出到图像区域外,通过边界处理部21,将露出到图像区域外的像素临时存储在图像区域外的缓冲存储器中(S17)。

如果是全周围图像,则作为对象的图像为一张,所以,与当前图像相邻的图像必定是自己本身。由此,关于全周围图像,在将1个全周围图像决定为基点图像和当前图像后,在步骤S18中,当要将与当前图像相邻的图像决定为当前图像时,自己本身再次被决定为当前图像。由此,在前一个当前图像新决定为当前图像后,转移到步骤S22。步骤S22判定新的当前图像是否是基点图像。全周围图像为一张,所以,再次决定的当前图像必定与基点图像一致。由此,该情况下,步骤S22为“是”,转移到步骤S23。

在步骤S23中,针对通过步骤S16的DIBR处理而得到的右眼用的其他视点的视点图像,在露出方的图像端部的相反端部嵌入当前存储在区域外缓冲存储器中的像素群。通过分别对左眼和右眼反复进行该处理,结束像素位移和边界处理。

如上所述,即使作为基础的左眼用的全周围图像由1张较大的图像形成,所生成的右眼用全周围图像也成为没有像素缺失的无缝的全周围图像。将这些图像作为纹理映射到球面上,向左右平面输出用户希望观察的方向的投影图像,由此,能够实现无缝的全周围立体视。

(实施方式3)

本实施方式公开了利用什么样的硬件结构实现此前的实施方式所述的图像描绘装置。

首先,对与CG处理部有关的硬件结构进行说明。图30示出CG处理部的硬件结构。如本图所示,图像描绘装置由接口201、视频解码器电路202、纹理存储器203、代码ROM204、CPU205、工作存储器206、GPU207、帧存储器208构成。

接口201是与内部媒体和移动媒体的驱动器之间的接口。

视频解码器202是对通过接口201读出的背景图像和深度图像进行解码的专用电路。

纹理存储器203存储通过视频解码器电路202的解码而得到的非压缩的背景图像。

代码ROM204存储构成此前的流程图所述的程序的代码串。

CPU205通过读出存储在代码ROM204中的代码串并进行处理,实现此前的实施方式所述的处理。

工作存储器206在代码ROM204进行处理时被用作变量或排列的存储场所。

GPU207是纹理映射等的图形处理用的专用处理电路。

帧存储器208是GPU207进行处理所使用的存储器。

图31是示出GPU的内部结构的图。

X级主板800实现X(Transformation、Xformation)级的处理,具有HIP801、GED802、显示列表超高速缓存803、SIMD芯片804a、804b、804c、804d。X(Transformation)级的处理大致而言有二个。一个是将三维的各顶点数据(x、y、z)变换为二维的幕坐标的处理,第二个是关于各顶点、根据光源和材质信息计算明亮度(颜色)的照光(lighting)计算处理。将这两个(Transformation and Lighting)处理统称为T&L处理或TnL处理。

HIP(Host Interface Processor)801是对输入的OpenGLAPI呼叫进行解释并转换为适合于运算处理的形式的ASIC(ApplicationSpecific Integrated Circuit)。

GED(Geometry Element Distributor)802发挥将各顶点数据分配给4个初级SIMD芯片中的处于等待处理状态的SIMD芯片的作用。

显示列表超高速缓存803是存储将OpenGLAPI呼叫分组后的显示列表的超高速缓冲存储器。如果将经常使用的一连串的OpenGLAPI呼叫设置在显示列表中,则能够大幅削减从CPU转送到X级主板的数据量。

SIMD芯片804a、804b、804c、804d是由ASIC实现的单芯片处理器,具有3个系统的FPU(浮动小数点运算单元),具有微代码存储用的超高速缓存和数据超高速缓存。在一个FPU中包括二个运算器。一个是通常的浮动小数点ALU(Arithmetic Logic Unit),另一个是浮动小数点乘法器。在本主板中搭载了4个该SIMD芯片。FPU的12个系统并行进行动作,所以,能够同时并行进行12个顶点数据(x、y、z)的处理。

SIMD芯片中的处理内容(坐标变换或照光计算的算法)通过微代码描述。运算电路根据存储在芯片上的超高速缓存中的微代码进行动作。微代码在系统起动时被载入超高速缓存中。SIMD芯片中的运算结果被集中到FIFO(First-In First-Out)存储器中,作为X级主板全体的输出而被转送到称为Triangle Bus的总线。各顶点数据包括幕坐标系上的坐标(x、y)和进深信息z、照光计算的结果即(r、g、b)、透明度信息的a、法线矢量(nx、ny、nz)以及纹理坐标(s、t)。

并且,用于优化下一S级的计算效率的预处理也在本主板中进行。作为代表性的预处理,具有背面剔除。背面剔除是如下处理:检测在变换为窗口坐标系时朝向背面的三角形,针对这种三角形,将顶点数据不输出到Triangle Bus。以上是X级主板的处理。

对S级主板805进行说明。S级主板805由4种ASIC芯片(TG806、PG807、TF808、IMP809)构成。S(Scan conversion)级中的处理包括涂满三角形内部的各像素的栅格化处理、隐藏面消除处理、模板掩膜处理、雾化效果的处理等。

栅格化处理中的重要功能在于,在球面带中粘贴全周围图像这样的纹理映射。在纹理映射中,代替利用插值求出明亮度(r、g、b),根据对纹理坐标(s、t)进行插值后的结果来计算存储在纹理存储器中的纹理图像的地址,读出适当的像素,将其明亮度(r、g、b)作为断片的明亮度数据。

S级主板的输入是从X级主板通过Triangle Bus给出的三角形各顶点中的断片形式的数据(幕坐标(x、y、z)、纹理坐标(s、t)、明亮度(r、g、b)、透明度a、法线矢量(nx、ny、nz))。

TG(Texture Generator)芯片806进行三角形的涂满,输出每个像素的纹理坐标(s、t)的插值结果,生成纹理存储器的地址,将纹理像素(被称为纹理元素(texel))转送到TF(Texture Filter)。

在PG(Pixel Generator)芯片807中,进行栅格化处理即三角形的涂满处理,进行每个像素的明亮度(r、g、b)等的插值。

TF(Texture Filter)芯片808对PG的输出结果即被隐蔽的明亮度和纹理存储器的输出(纹理元素)进行合成,将每个像素的断片转送到IMP(Image Memory Processor)。

IMP(IMage Proccer)809是实现像素处理流程的处理器,进行雾化处理、抗锯齿处理、α测试、模板测试、深度测试、混合、屏蔽、写入缓存选择这样的像素处理,将处理结果写入帧存储器208中。

D级主板812是进行D级处理的主板,具有XMAP813和VOC814。

XMAP(Pixel Mapping Asic)813从Pixel Bus接受图像数据,根据需要利用查阅表进行变换,并且,还进行光标的显示,在VideoPacket Bus中加入图像数据。各VOC按照描述了自身所承担的矩形区域的VOF数据拾取图像,利用DA变换器变换为视频信号。

VOC(Video Output Channel)电路814具有放大图像的输出电路、用于优化放大图像的画质的滤波电路,如果在显示处理中负荷较重,则以较粗的分辨率动态地进行描绘,以硬件放大的方式进行显示。在D级主板中具有最大8个输出通道,除此之外,还具有HDMI输出编码器。

接着,说明应该利用软件对上述硬件结构的GPU指示什么样的控制。

图32(a)示意地示出球面模型与纹理之间的对应。左侧示出构成球面模型的网格,右侧示出存储纹理的纹理缓存的存储内容。左侧的球面模型在横向被分割成W个,在各个分割部分上粘贴纹理。在本实施方式中,设作为纹理映射对象的图形类型为三角形带,设该三角形带的全部或一部分为纹理映射对象。该三角形带的全部或一部分被规定为顶点网格。具体而言,由T1、T2、T3构成的网格成为纹理映射对象,由T3、T4、T5、T6构成的网格成为1个纹理映射的对象。将构成这些网格的交点的坐标指定为索引后,进行纹理映射。

图32(b)是用于实现纹理映射的OPEN-GL中的API调出的描述例。

“glVertexPointer(3、GL#FLOAT、0、g#v);”存储三维建模空间中的网格的各交点的坐标群作为顶点群。变量的"3"是三维建模空间的维数,GL#FOLAT表示坐标群的各个坐标的类型为浮动小数点形式。

“glTexCoordPointer(2、GL#FLOAT、0、g#v);”是用于存储与三维建模空间中的网格对应的纹理的坐标群g#uv作为纹理坐标值的API调出。

“for(I=0;i<W;i++)”针对横向的W个坐标分别被规定为反复进行glDraw Elements的调出的循环构造。

对“glDrawElements(GL#TRIANGLE#STRIP、(H+1)*2、GL#UNSIGNED#SHORT、getStaticData()->g#index[i]);”进行说明。该API调出的第1变量指定3D模型的图形类型为三角形带(GL#41Triangle#Stirp)。第2变量是顶点数的指定,指定(纵分割数H+1)×2的数值。GL#UNSIGNED#SHORT表示存储顶点的index的类型为无码的short形式。g#index[W]是决定描绘顺序的索引排列,存储网格交点的顶点坐标作为各个排列要素。通过按照作为g#index的排列要素而存储的顶点坐标执行描绘,进行纹理映射。

首先,对用于实现DIBR的硬件结构(全周围图像存储器13、像素位移部18的硬件结构)进行说明。

全周围图像存储器13由多个行存储器构成,全周围图像数据分别被存储在构成行存储器的32比特长的存储元件中。而且,全周围图像数据在画面上的坐标例如对应于全周围图像存储器13中的行存储器的地址即ROW地址与行存储器中的存储元件的相对地址即COLUMN地址的组。以上是与全周围图像存储器13有关的说明。接着,对像素位移部18的硬件结构进行说明。

像素位移部18对全周围图像数据和深度图像数据实施像素位移,生成其他视点的纹理。

在希望对全周围图像中的像素的X坐标进行变更而生成左眼纹理的情况下,在从全周围图像存储器13向左眼纹理存储器22进行复制时,事前以与像素数X相当的地址对指示作为其复制目的地的存储元件的COLUMN地址进行调整。如果以这种地址调整为前提执行复制,则左眼纹理的坐标向左方向位移。由此,像素位移部18能够在伴随地址调整的复制处理中生成左眼纹理。

在希望对街景的X坐标进行变更而生成右眼纹理的情况下,在从全周围图像存储器13向右眼纹理存储器23进行复制时,事后以与像素数X相当的地址对指示作为其复制目的地的存储元件的COLUMN地址进行调整。如果以这种地址调整为前提执行复制,则右眼纹理的坐标向右方向位移。由此,像素位移部18能够在伴随地址调整的复制处理中生成右眼纹理。以上是基于硬件的像素位移部18的实现。

并且,能够利用行扫描仪实现DIBR。行扫描仪是指,按照横1920像素的每一个像素读出存储在帧存储器中的一个画面的像素(1920×1080)的集合,将其变换为数字影像信号。该行扫描仪可以通过能够存储1行的像素数据的行像素存储器、滤波电路、进行并行/串行变换的变换电路而实现。如上所述,DIBR是将深度图像的各个像素的亮度变换为视差并进行像素位移的处理。如果使从行存储器中读出的全周围图像的一行的像素的坐标沿横向移动与针对全周围图像的深度图像中的对应行的进深对应的像素数,则能够生成具有深度图像所示的进深的其他视点的视点图像。

<备注>

以上,对申请人在本申请的申请时点得知的最佳实施方式进行了说明,但是,关于以下所示的技术话题,能够进行进一步的改良或变更实施。希望注意到,如各实施方式所示那样实施、或者是否实施这些改良/变更均为任意的,基于实施者的主观。

(深度图像的变化)

压缩墨卡托深度图像是以PNG形式对表示相对于墨卡托图像的进深的图像进行压缩后的数据,但是,进深的压缩噪声明显,所以,优选以PNG形式等的无损形式进行压缩。另外,街景文件中的压缩墨卡托深度图像的数据冗长,所以,除了PNG形式的压缩以外,也可以具有周围的地形数据、以及表示压缩墨卡托图像与地形数据之间的关系的数据。另外,在利用因特网收发立体街景视点的情况下,当压缩墨卡托图像被分割成多个文件时,能够在下载中途的状态下进行显示。

(集成电路的实施方式)

排除第1实施方式所示的图像描绘装置的硬件结构中的记录介质的驱动部、与外部连接的连接器等的机构部分,可以对与逻辑电路和存储元件相当的部分、即逻辑电路的核心部分进行系统LSI化。系统LSI是指在高密度基板上安装裸芯片并进行封装。通过将多个裸芯片安装在高密度基板上并进行封装,将使多个裸芯片恰好具有1个LSI的外形构造的模块称为多芯片模块,但是,这种模块也包含在系统LSI中。

这里,着眼于封装的类别时,系统LSI具有QFP(四方扁平阵列)、PGA(针网格阵列)这样的类别。QFP是在封装的四个侧面安装有针的系统LSI。PGA是在底面全体安装有多个针的系统LSI。

这些针发挥电源供给、地线、作为与其他电路之间的接口的作用。系统LSI中的针具有这样的接口的作用,所以,通过在系统LSI中的这些针上连接其他电路,系统LSI发挥作为再现装置的核心的作用。

(程序的实施方式)

各实施方式所示的程序可以如下生成。首先,软件开发者使用程序设计语言描述用于实现各流程图和功能性的结构要素的源程序。在该描述时,软件开发者按照程序设计语言的语法,使用等级构造体、变量、排列变量、外部函数的呼叫,描述具体实现各流程图和功能性的结构要素的源程序。

所描述的源程序作为文件提供给编译程序。编译程序翻译这些源程序而生成目标程序。

基于编译程序的翻译由语法解析、优化、资源分配、代码生成这样的过程构成。在语法解析中,进行源程序的字句解析、语法解析和意思解析,将源程序变换为中间程序。在优化中,针对中间程序进行基本模块化、控制流程解析、数据流程解析这样的作业。在资源分配中,为了使目标处理器适合于命令组,将中间程序中的变量分配给目标处理器所具有的寄存器或存储器。在代码生成中,将中间程序内的各中间命令变换为程序代码,得到目标程序。

这里生成的目标程序由使计算机执行各实施方式所示的流程图的各步骤、功能性的结构要素的各个顺序的1个以上的程序代码构成。这里,程序代码如处理器的本地码、JAVA(注册商标)字节码那样具有多个种类。基于程序代码的各步骤的实现具有多个种类。在能够利用外部函数实现各步骤的情况下,呼叫该外部函数的呼叫文成为程序代码。并且,实现1个步骤的程序代码有时也归属于不同的目标程序。在命令种类受限的RISC处理器中,也可以通过组合算术运算命令、逻辑运算命令、分支命令等,实现流程图的各步骤。

生成目标程序后,程序员针对这些目标程序起动连接程序。连接程序对存储器空间分配这些目标程序和关联的库存程序,将它们结合成一个程序,生成载入模块。这样生成的载入模块以基于计算机的读取为前提,使计算机执行各流程图所示的处理顺序和功能性的结构要素的处理顺序。将该计算机程序记录在非临时的计算机可读取的记录介质中提供给用户即可。

(视点周围图像的范围增减)

在各实施方式中,将横向结合了横7张背景图像而得到的全周围图像作为对象进行了说明,但是,通过减少横向图像的结合数,也可以变更从视点张望的街景的范围。上述实施方式的全周围图像在横7张背景图像中网罗了360°的视野,所以,一张背景图像中网罗的范围为52°(≈365°/7)。由此,在结合了2张图像的情况下,能够张望104°(≈52°×2)的范围,在结合了3张图像的情况下,能够张望156°(≈52×3)的范围。这样,通过在街景收集服务器或图像描绘装置中改变横向图像的结合数,能够改变视点周围图像的规模,能够减轻纹理映射处理或纹理中的视差计算等的负荷。

产业上的可利用性

本发明的图像描绘装置能够在制造产业中以经营性质持续和反复制造、销售。特别地,能够在与全周围立体图像的制作和再现有关的民生设备产业中加以利用。

标号说明

101:描绘装置;102:遥控器;103:立体视对应显示器;104:液晶快门式眼镜;105:服务器;1:用户操作检测部;2:位置方向判定部;3:网络接口;4:本地存储器。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号