基于流畅度提升的三维场景流数据播放控制方法和设备技术

技术编号:39492323 阅读:10 留言:0更新日期:2023-11-24 11:14
本发明专利技术提供了一种基于流畅度提升的三维场景流数据播放控制方法和设备,包括:分析数据并且以设备唯一标识符为主键,内存建立由数据时间戳排序的线性表映射关系;数据处理函数用于对预定数据进行处理,附加预定业务逻辑;初始化数据处理线程后由主线程管理其生命周期;使用预设起始播放时间戳传入实例化后的数据处理线程对象,将实例化后的数据处理线程对象标记并将所有锁标记为异步状态后执行创建,启动数据处理线程;在数据处理线程中对数据加锁后进入数据处理流程,并进行单个信息或设备的计算,计算完成后对数据解锁,在主线程的每一帧中与计算线程进行同步

【技术实现步骤摘要】
基于流畅度提升的三维场景流数据播放控制方法和设备


[0001]本专利技术实施例涉及图像处理
,尤其涉及一种基于流畅度提升的三维场景流数据播放控制方法和设备


技术介绍

[0002]数字孪生可视化作为一种重要的数字化手段被深度运用到智慧城市的建设中,近几年数字孪生这个概念也越来越受到了前所未有的关注
。Unreal Engine
游戏引擎(后文简称
UE
)是目前运用范围最广,整体运用程度最高,次世代画面标准最高的一款游戏引擎,具有强大的“场景表现力”。
一方面通过实时动态的渲染,可以构建丰富精细的场景表现;另一方面强大的物理引擎可以真实模拟现实世界的运行规则,为数字孪生提供了强有力的支撑

数字孪生工程项目由大量的真实数据或数据流支撑其运行,但
UE
并不具备自动化的数据处理分析和应用能力

因此,开发一种基于流畅度提升的三维场景流数据播放控制方法和设备,可以有效克服上述相关技术中的缺陷,就成为业界亟待解决的技术问题


技术实现思路

[0003]针对现有技术存在的上述问题,本专利技术实施例提供了一种基于流畅度提升的三维场景流数据播放控制方法和设备

[0004]第一方面,本专利技术的实施例提供了一种基于流畅度提升的三维场景流数据播放控制方法,包括:将数据读入内存,分析数据并且以设备唯一标识符为主键,内存建立由数据时间戳排序的线性表映射关系;引入数据处理函数,数据处理函数用于在不破坏控制器主体逻辑且不更改控制器代码的基础上对预定数据进行处理,附加预定业务逻辑;创建并使用部分原始数据初始化数据处理线程,由主线程管理初始化后的数据处理线程的生命周期;使用预设起始播放时间戳传入实例化后的数据处理线程对象,将实例化后的数据处理线程对象标记为第0次同步,将所有锁标记为异步状态后执行创建,启动数据处理线程;在数据处理线程中对数据加锁,如果成功加锁,则进入数据处理流程,并进行单个信息或设备的计算;在单个信息或设备的计算完成后对数据解锁,在主线程的每一帧中与计算线程进行同步

[0005]在上述方法实施例内容的基础上,本专利技术实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,在所述内存建立由数据时间戳排序的线性表映射关系之后,还包括:若在运行初期缺乏原始数据,则使用空数据
nullptr
初始化数据处理线程并在之后的线程同步中对数据进行增补

[0006]在上述方法实施例内容的基础上,本专利技术实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,所述数据处理函数用于在不破坏控制器主体逻辑且不更改控制器代码的基础上对预定数据进行处理,附加预定业务逻辑,包括:在数据处理前执行函数
ShouldDoCalculate
,如果返回
false
则不进行本次数据处理;在索引阶段,如果当前时间比经过排序的第一个时间戳还早,则执行函数
DataTimestampTooNew
,如果返回
false
则不进
行本次数据处理;在索引阶段,如果当前时间比经过排序的最后一个时间戳还晚,则执行函数
DataTimestampTooOld
,如果返回
false
则不进行本次数据处理;在计算结束后执行函数
OnCalculationCompleted。
[0007]在上述方法实施例内容的基础上,本专利技术实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,所述初始化后的数据处理线程的生命周期为数字孪生可视化系统实例构造后到数字孪生可视化系统实例析构前

[0008]在上述方法实施例内容的基础上,本专利技术实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,在所述启动数据处理线程之后,还包括:数据处理线程进入线程循环,开始根据由时间戳排序的数据线性表处理数据

[0009]在上述方法实施例内容的基础上,本专利技术实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,所述并进行单个信息或设备的计算,包括:在单个信息或设备的计算的过程中,计算插值使用的
Alpha
值:
Alpha=(T

D[i].timestamp)/(D[i+1].timestamp

D[i].timestamp)
其中,
D[i]为第
i
个数据点位,
D[i+1]为第
i+1
个数据点位,
T
为当前使用的时间戳;
D[i].timestamp
为第
i
个数据点位的时间戳;
D[i+1].timestamp
为第
i+1
个数据点位的时间戳;采用得到的
Alpha(0,1]对第
i
个数据点和第
i+1
个数据点之间的数据进行线性插值,将插值结果保存到数据结构的结果中;在单个信息或设备的计算结束阶段,调用函数
OnCalculationCompleted
,进入下个设备或信息的计算中,以此循环直至将数据结构完全遍历

[0010]在上述方法实施例内容的基础上,本专利技术实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,所述在单个信息或设备的计算完成后对数据解锁,包括:若解锁成功,将计算线程的输出结果应用到展示层面上,并且会将数据增补队列中的缓存数据输入到计算线程的数据结构中,在主线程所有操作执行完成后,输入新的计算时间戳,主线程解锁,使得数据处理线程继续下一帧的计算工作;若解锁失败但是失败次数小于预设帧数时,本帧放弃同步,日志中生成警告,若解锁失败且失败次数大于等于预设帧数时,强制等待计算线程预设时长,如果预设时长后依然无法成功同步则本帧放弃同步,日志中生成错误;如果预设时长内成功解锁,则进入解锁成功流程

[0011]第二方面,本专利技术的实施例提供了一种基于流畅度提升的三维场景流数据播放控制装置,包括:第一主模块,用于实现将数据读入内存,分析数据并且以设备唯一标识符为主键,内存建立由数据时间戳排序的线性表映射关系;第二主模块,用于实现引入数据处理函数,数据处理函数用于在不破坏控制器主体逻辑且不更改控制器代码的基础上对预定数据进行处理,附加预定业务逻辑;第三主模块,用于实现创建并使用部分原始数据初始化数据处理线程,由主线程管理初始化后的数据处理线程的生命周期;第四主模块,用于实现使用预设起始播放时间戳传入实例化后的数据处理线程对象,将实例化后的数据处理线程对象标记为第0次同步,将所有锁标记为异步状态后执行创建,启动数据处理线程;第五主模块,用于实现在数据处理线程中对数据加锁,如果成功加锁,则进入数据处理流程,并进行单个信息或设备的计算;第六主模块,用于实现在单个信息或设备的计算完本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于流畅度提升的三维场景流数据播放控制方法,其特征在于,包括:将数据读入内存,分析数据并且以设备唯一标识符为主键,内存建立由数据时间戳排序的线性表映射关系;引入数据处理函数,数据处理函数用于在不破坏控制器主体逻辑且不更改控制器代码的基础上对预定数据进行处理,附加预定业务逻辑;创建并使用部分原始数据初始化数据处理线程,由主线程管理初始化后的数据处理线程的生命周期;使用预设起始播放时间戳传入实例化后的数据处理线程对象,将实例化后的数据处理线程对象标记为第0次同步,将所有锁标记为异步状态后执行创建,启动数据处理线程;在数据处理线程中对数据加锁,如果成功加锁,则进入数据处理流程,并进行单个信息或设备的计算;在单个信息或设备的计算完成后对数据解锁,在主线程的每一帧中与计算线程进行同步
。2.
根据权利要求1所述的基于流畅度提升的三维场景流数据播放控制方法,其特征在于,在所述内存建立由数据时间戳排序的线性表映射关系之后,还包括:若在运行初期缺乏原始数据,则使用空数据
nullptr
初始化数据处理线程并在之后的线程同步中对数据进行增补
。3.
根据权利要求2所述的基于流畅度提升的三维场景流数据播放控制方法,其特征在于,所述数据处理函数用于在不破坏控制器主体逻辑且不更改控制器代码的基础上对预定数据进行处理,附加预定业务逻辑,包括:在数据处理前执行函数
ShouldDoCalculate
,如果返回
false
则不进行本次数据处理;在索引阶段,如果当前时间比经过排序的第一个时间戳还早,则执行函数
DataTimestampTooNew
,如果返回
false
则不进行本次数据处理;在索引阶段,如果当前时间比经过排序的最后一个时间戳还晚,则执行函数
DataTimestampTooOld
,如果返回
false
则不进行本次数据处理;在计算结束后执行函数
OnCalculationCompleted。4.
根据权利要求3所述的基于流畅度提升的三维场景流数据播放控制方法,其特征在于,所述初始化后的数据处理线程的生命周期为数字孪生可视化系统实例构造后到数字孪生可视化系统实例析构前
。5.
根据权利要求4所述的基于流畅度提升的三维场景流数据播放控制方法,其特征在于,在所述启动数据处理线程之后,还包括:数据处理线程进入线程循环,开始根据由时间戳排序的数据线性表处理数据
。6.
根据权利要求5所述的基于流畅度提升的三维场景流数据播放控制方法,其特征在于,所述并进行单个信息或设备的计算,包括:在单个信息或设备的计算的过程中,计算插值使用的
Alpha
值:
Alpha=(T

D[i].timestamp)/(D[i+1].timestamp

D[i].timestamp)
其中,
D[i]
为第
i

【专利技术属性】
技术研发人员:谢帅王鹏飞张文喆史绍轶
申请(专利权)人:天津幻彩科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1