并行地震数据绘制方法

文档序号:8527455阅读:452来源:国知局
并行地震数据绘制方法
【技术领域】
[0001] 本发明涉及石油勘探以及计算机图形学领域,尤其涉及一种并行地震数据绘制方 法,该方法可对地震剖面进行精细、多分辨率实时绘制。
【背景技术】
[0002] 地震数据尤其是叠加剖面地震数据的可视化处理是地震数据分析的重要辅助手 段。野外采集的地震数据经过初步处理后,需要借助于计算机技术以图像的形式显示出来, 从而为数据处理员、地质分析人员提供可视化的判断依据,以提高石油勘探的精度和效率。
[0003] 地震数据均为离散采样,所得采样点按道排列。地震数据的可视化图像主要是以 波纹线、变密度的形式绘制。以波纹线形式绘制图像时,传统上是用直线将多个离散采样点 连接起来,形成一条波形曲线。为了可视化地表示波形的振幅的正负,需要对波形曲线的某 一个方向(例如正向)进行填充,这样就会在地震反射截面处产生较清晰的反射同相轴。当 用户缩小图像时,由于现有计算机屏幕的分辨率是有限的,若图像缩小到一定程度,相邻两 条波形曲线的间距已经小于一个像素,即使按照该间距为一个像素绘制缩小后的图像,也 会导致整个屏幕被全部涂黑。
[0004] 一般的解决方法是,对地震数据作抽道处理,即每隔n条地震道抽取一条地震道 作为代表,并将抽取的地震道绘制成图像。虽然这种方法容易实现,但是绘制图像中会出现 假频波形曲线,这种现象会严重干扰分析人员对地质情况的整体把握。
[0005] 在波纹线绘制过程中,每个像素的亮度主要取决于地震数据对该像素的贡献。当 图像缩小到相邻两道之间的距离小于一个像素时,可以通过计算每道、每个采样点对该像 素的贡献,来确定该像素的亮度。
[0006] 这种逐像素绘制波纹线的方法需要大量的计算,普通的多核中央处理器(Central ProcessingUnit,CPU)因此无法实现波纹线的实时绘制。图形处理器(Graphics ProcessingUnit,GPU)能够对屏幕上的像素并行绘制,且现代GPU具有可编程性,因此利 用GPU进行通用计算是可能的,但是CPU上的普通并行算法是无法在GPU上运行的。

【发明内容】

[0007] 本发明提出一种并行地震数据绘制方法,以克服现有技术中一项或多项缺点。
[0008] 本发明提出一种并行地震数据绘制方法,所述方法包括:将屏幕系统的绘制区域 分成多个预定大小的绘制子区域;由纹理生成线程逐像素生成多个纹理图像子块,每一所 述纹理图像子块对应其中一个所述绘制子区域;由纹理绘制线程将每一所述纹理图像子块 绘制至对应的所述绘制子区域,且所有所述纹理图像子块无缝拼接形成纹理图像。
[0009] 一个实施例中,所述方法还包括:响应用户对所述纹理图像的放大或缩小操作,所 述纹理生成线程和所述纹理绘制线程重新绘制纹理图像。
[0010] 一个实施例中,在所述由纹理生成线程逐像素生成多个纹理图像子块,每一所述 纹理图像子块对应其中一个所述绘制子区域的步骤中:相邻的所述纹理图像子块的边缘重 叠2m个像素,其中,m为整数,且m彡1。
[0011] -个实施例中,在所述由纹理绘制线程将每一所述纹理图像子块绘制至对应的所 述绘制子区域,且所有所述纹理图像子块无缝拼接形成纹理图像的步骤中:在所述纹理图 像子块的边缘上少绘制m个重叠的像素。
[0012] 一个实施例中,所述由纹理生成线程逐像素生成多个纹理图像子块,每一所述纹 理图像子块对应其中一个所述绘制子区域的步骤包括:计算得到所述绘制子区域中的一像 素所覆盖的地震道和采样点;根据所述地震道中的所述采样点重建地震波形;对所述地震 波形进行正向或负向填充;计算所述地震波形对所述像素的颜色贡献值;将所述颜色贡献 值进行累加,生成所述像素的亮度值。
[0013] 一个实施例中,响应用户对所述纹理图像的放大或缩小操作,所述纹理生成线程 和所述纹理绘制线程重新绘制纹理图像的步骤包括:响应于所述放大或缩小操作,所述纹 理绘制线程对所述纹理图像进行放大或缩小,同时激发所述纹理生成线程重新生成纹理图 像子块;纹理生成线程根据所述放大或缩小操作生成放大或缩小后的纹理图像子块;纹理 绘制线程将所述放大或缩小后的纹理图像子块绘制至所述绘制子区域。
[0014] 一个实施例中,所述可视化方法基于GPU。
[0015] 一个实施例中,在由纹理绘制线程将每一所述纹理图像子块绘制至对应的所述绘 制子区域之前,所述方法还包括:将所述纹理图像子块缓存于一显卡。
[0016] 一个实施例中,所述屏幕系统为多屏幕系统。
[0017] 一个实施例中,所述将屏幕系统的绘制区域分成多个预定大小的绘制子区域的 步骤包括:根据预定大小的绘制子区域计算所述绘制子区域的数目n,其中n为整数,且 n多1 ;将所述绘制区域分成n个所述预定大小的绘制子区域。
[0018] 本发明实施例,基于GPU的特点,通过逐像素生成纹理图像的方法,可以在GPU上 实现并行实时绘制。本发明实施例通过纹理绘制线程直接响应用户操作,具有较快的响应 速度。本发明实施例中,根据屏幕上的绘制子区域将纹理图像分块,并且保持纹理图像子块 边缘的连续性,能够克服现有显卡对纹理图像的最大范围所作的约束,从而解决多屏幕形 成的超大纹理图像的绘制问题。本发明实施例利用具有不同亮度值的波纹线绘制纹理图 像,可以实现对纹理图像的精细绘制。
【附图说明】
[0019] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。在附图中:
[0020] 图1为本发明一实施例的并行地震数据绘制方法的流程示意图;
[0021] 图2为本发明一实施例的并行地震数据实时绘制方法的流程示意图;
[0022] 图3为本发明一实施例中响应用户操作的实时绘制方法的流程示意图;
[0023] 图4为本发明一实施例中屏幕上绘制区域的分块方法的流程示意图;
[0024] 图5A为本发明一实施例中纹理图像分块的结构示意图;
[0025] 图5B为图5A中部分重叠像素的结构示意图;
[0026] 图5C为图5A中纹理图像子块覆盖绘制子区域的结构示意图;
[0027] 图6本发明一实施例的基于"推"策略的纹理图像子块的生成方法的流程示意图;
[0028] 图7A为本发明一实施例的基于"推"策略的纹理图像中波纹线的绘制方法的示意 图;
[0029] 图7B为图7A中地震波形影响像素颜色值的示意图;
[0030] 图8本发明一实施例的基于"拉"策略的纹理图像子块的生成方法的流程示意图;
[0031] 图9为本发明一实施例的基于"拉"策略的纹理图像中波纹线的绘制方法的示意 图;
[0032] 图10为本发明一实施例中像素亮度值的计算方法的流程示意图;
[0033] 图11A-11H为依据本发明一实施例的绘制方法所绘制的二维纹理图像的示意图。
【具体实施方式】
[0034] 为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发 明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并 不作为对本发明的限定。
[0035] 本发明实施例的并行地震数据绘制方法是一种多线程、分块、并行绘制方法。基于 纹理图像分块缓存机制的多线程并行绘制框架,首先将波纹线形式的纹理图像绘制到缓存 中,然后再将纹理图像绘制到屏幕。该绘制方法利用纹理生成线程在后台生成纹理图像,利 用纹理绘制线程在前台将该纹理图像绘制至屏幕。纹理生成线程和纹理绘制线程可以并行 进行,多个纹理生成线程或多个纹理绘制线程也可并行进行。
[0036] 如图1所示,本发明实施例的并行地震数据绘制方法包括步骤:
[0037] S101 :将屏幕系统的绘制区域分成多个预定大小的绘制子区域;
[0038]S102 :由纹理生成线程逐像素生成多个纹理图像子块,每一所述纹理图像子块对 应其中一个所述绘制子区域;
[0039]S103 :由纹理绘制线程将每一所述纹理图像子块绘制至对应的所述绘制子区域, 且所有所述纹理图像子块无缝拼接形成纹理图像;
[0040] 在一实施例中,如图2所示,利用本发明实施例的并行地震数据绘制方法实时绘 制纹理图像时,该绘制方法还包括步骤:
[0041] S104:响应用户对所述纹理图像的放大或缩小操作,所述纹理生成线程和所述纹 理绘制线程重新绘制纹理图像。
[0042] 本发明实施例的并行地震数据绘制方法不仅可以基于GPU实现实时绘制,还可以 实现超大纹理图像的绘制。
[0043] -个实施例中,如图3所示,上述步骤S104可包括:
[0044] S301 :响应于所述放大或缩小操作,所述纹理绘制线程对所述纹理图像进行放大 或缩小,同时激发所述纹理生成线程重新生成纹理图像子块;
[0045] S302:纹理生成线程根据所述放大或缩小操作生成放大或缩小后的纹理图像子块 后,通知所述纹理绘制线程;
[0046] S303:纹理绘制线程将所述放大或缩小后的纹理图像子块绘制至所述绘制子区 域。
[0047] 由于生成纹理图像所占用的绘制资源要远远大于将纹理图像绘制到屏幕所占用 的绘制资源,所以,本发明实施例中的实时绘制方法,通过纹理绘制线程直接放大或缩小纹 理图像,可给用户带来纹理图像绘制响应快速的体验,通过纹理生成线程重新生成纹理图 像,又能及时提供绘制效果更好的纹理图像。
[0048] 在步骤S103之前,由纹理生成线程所生成的纹理图像子块将被缓存起来,以待纹 理绘制线程将其绘制至屏幕上对应的绘制子区域。当基于GPU绘制纹理图像时,上述纹理 图像子块被缓存至显卡;当基于CPU绘制纹理图像时,上述纹理图像子块被缓存至内存。
[0049] 在上述步骤S101中,本发明实施例中的屏幕系统可以包括一个显示屏幕、多个显 示屏幕或一个屏幕中的多块显示区域。屏幕系统的绘制区域中包含多个像素,通过对这些 像素填充不同亮度值的颜色可以绘制出不同的纹理图像。
[0050] 本发明实施例中,绘制子区域可以是各种大小的矩形区域。较佳实施例中,绘制子 区域的大小可以是512像素X512像素或1024像素X1024像素。
[0051] -个实施例中,如图4所示,将该屏幕系统的绘制区域分成多个预定大小的绘制 子区域的方
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1