CN117082307B - 基于流畅度提升的三维场景流数据播放控制方法和设备 - Google Patents
基于流畅度提升的三维场景流数据播放控制方法和设备 Download PDFInfo
- Publication number
- CN117082307B CN117082307B CN202311323516.5A CN202311323516A CN117082307B CN 117082307 B CN117082307 B CN 117082307B CN 202311323516 A CN202311323516 A CN 202311323516A CN 117082307 B CN117082307 B CN 117082307B
- Authority
- CN
- China
- Prior art keywords
- data
- thread
- data processing
- calculation
- preset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000006872 improvement Effects 0.000 title description 9
- 238000012545 processing Methods 0.000 claims abstract description 132
- 238000004364 calculation method Methods 0.000 claims abstract description 66
- 230000006870 function Effects 0.000 claims abstract description 48
- 230000015654 memory Effects 0.000 claims abstract description 31
- 238000013507 mapping Methods 0.000 claims abstract description 11
- 238000004891 communication Methods 0.000 claims description 9
- 238000012163 sequencing technique Methods 0.000 claims description 9
- 238000012800 visualization Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 6
- 239000013589 supplement Substances 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000001360 synchronised effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 4
- 238000005265 energy consumption Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/242—Synchronization processes, e.g. processing of PCR [Program Clock References]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47217—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4781—Games
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种基于流畅度提升的三维场景流数据播放控制方法和设备,包括:分析数据并且以设备唯一标识符为主键,内存建立由数据时间戳排序的线性表映射关系;数据处理函数用于对预定数据进行处理,附加预定业务逻辑;初始化数据处理线程后由主线程管理其生命周期;使用预设起始播放时间戳传入实例化后的数据处理线程对象,将实例化后的数据处理线程对象标记并将所有锁标记为异步状态后执行创建,启动数据处理线程;在数据处理线程中对数据加锁后进入数据处理流程,并进行单个信息或设备的计算,计算完成后对数据解锁,在主线程的每一帧中与计算线程进行同步。本发明解决了传统数字孪生系统中对历史数据信息展示不完整的问题。
Description
技术领域
本发明实施例涉及图像处理技术领域,尤其涉及一种基于流畅度提升的三维场景流数据播放控制方法和设备。
背景技术
数字孪生可视化作为一种重要的数字化手段被深度运用到智慧城市的建设中,近几年数字孪生这个概念也越来越受到了前所未有的关注。Unreal Engine游戏引擎(后文简称UE)是目前运用范围最广,整体运用程度最高,次世代画面标准最高的一款游戏引擎,具有强大的“场景表现力”。一方面通过实时动态的渲染,可以构建丰富精细的场景表现;另一方面强大的物理引擎可以真实模拟现实世界的运行规则,为数字孪生提供了强有力的支撑。数字孪生工程项目由大量的真实数据或数据流支撑其运行,但UE并不具备自动化的数据处理分析和应用能力。因此,开发一种基于流畅度提升的三维场景流数据播放控制方法和设备,可以有效克服上述相关技术中的缺陷,就成为业界亟待解决的技术问题。
发明内容
针对现有技术存在的上述问题,本发明实施例提供了一种基于流畅度提升的三维场景流数据播放控制方法和设备。
第一方面,本发明的实施例提供了一种基于流畅度提升的三维场景流数据播放控制方法,包括:将数据读入内存,分析数据并且以设备唯一标识符为主键,内存建立由数据时间戳排序的线性表映射关系;引入数据处理函数,数据处理函数用于在不破坏控制器主体逻辑且不更改控制器代码的基础上对预定数据进行处理,附加预定业务逻辑;创建并使用部分原始数据初始化数据处理线程,由主线程管理初始化后的数据处理线程的生命周期;使用预设起始播放时间戳传入实例化后的数据处理线程对象,将实例化后的数据处理线程对象标记为第0次同步,将所有锁标记为异步状态后执行创建,启动数据处理线程;在数据处理线程中对数据加锁,如果成功加锁,则进入数据处理流程,并进行单个信息或设备的计算;在单个信息或设备的计算完成后对数据解锁,在主线程的每一帧中与计算线程进行同步。
在上述方法实施例内容的基础上,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,在所述内存建立由数据时间戳排序的线性表映射关系之后,还包括:若在运行初期缺乏原始数据,则使用空数据nullptr初始化数据处理线程并在之后的线程同步中对数据进行增补。
在上述方法实施例内容的基础上,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,所述数据处理函数用于在不破坏控制器主体逻辑且不更改控制器代码的基础上对预定数据进行处理,附加预定业务逻辑,包括:在数据处理前执行函数ShouldDoCalculate,如果返回false则不进行本次数据处理;在索引阶段,如果当前时间比经过排序的第一个时间戳还早,则执行函数DataTimestampTooNew,如果返回false则不进行本次数据处理;在索引阶段,如果当前时间比经过排序的最后一个时间戳还晚,则执行函数DataTimestampTooOld,如果返回false则不进行本次数据处理;在计算结束后执行函数OnCalculationCompleted。
在上述方法实施例内容的基础上,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,所述初始化后的数据处理线程的生命周期为数字孪生可视化系统实例构造后到数字孪生可视化系统实例析构前。
在上述方法实施例内容的基础上,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,在所述启动数据处理线程之后,还包括:数据处理线程进入线程循环,开始根据由时间戳排序的数据线性表处理数据。
在上述方法实施例内容的基础上,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,所述并进行单个信息或设备的计算,包括:在单个信息或设备的计算的过程中,计算插值使用的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,进入下个设备或信息的计算中,以此循环直至将数据结构完全遍历。
在上述方法实施例内容的基础上,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,所述在单个信息或设备的计算完成后对数据解锁,包括:若解锁成功,将计算线程的输出结果应用到展示层面上,并且会将数据增补队列中的缓存数据输入到计算线程的数据结构中,在主线程所有操作执行完成后,输入新的计算时间戳,主线程解锁,使得数据处理线程继续下一帧的计算工作;若解锁失败但是失败次数小于预设帧数时,本帧放弃同步,日志中生成警告,若解锁失败且失败次数大于等于预设帧数时,强制等待计算线程预设时长,如果预设时长后依然无法成功同步则本帧放弃同步,日志中生成错误;如果预设时长内成功解锁,则进入解锁成功流程。
第二方面,本发明的实施例提供了一种基于流畅度提升的三维场景流数据播放控制装置,包括:第一主模块,用于实现将数据读入内存,分析数据并且以设备唯一标识符为主键,内存建立由数据时间戳排序的线性表映射关系;第二主模块,用于实现引入数据处理函数,数据处理函数用于在不破坏控制器主体逻辑且不更改控制器代码的基础上对预定数据进行处理,附加预定业务逻辑;第三主模块,用于实现创建并使用部分原始数据初始化数据处理线程,由主线程管理初始化后的数据处理线程的生命周期;第四主模块,用于实现使用预设起始播放时间戳传入实例化后的数据处理线程对象,将实例化后的数据处理线程对象标记为第0次同步,将所有锁标记为异步状态后执行创建,启动数据处理线程;第五主模块,用于实现在数据处理线程中对数据加锁,如果成功加锁,则进入数据处理流程,并进行单个信息或设备的计算;第六主模块,用于实现在单个信息或设备的计算完成后对数据解锁,在主线程的每一帧中与计算线程进行同步。
第三方面,本发明的实施例提供了一种电子设备,包括:
至少一个处理器、至少一个存储器和通信接口;其中,
所述处理器、存储器和通信接口相互间进行通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令,执行第一方面的各种实现方式中任一种实现方式所提供的基于流畅度提升的三维场景流数据播放控制方法。
第四方面,本发明的实施例提供了一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行第一方面的各种实现方式中任一种实现方式所提供的基于流畅度提升的三维场景流数据播放控制方法。
本发明实施例提供的基于流畅度提升的三维场景流数据播放控制方法和设备,通过使用UE异步的高效处理和播放以时间戳为索引排序的数据流,解决了传统数字孪生系统中对历史数据信息展示不完整、历史时空无法完整回溯复原的问题,提升了数字孪生对于大型场景的应用性,并且在提供高精度历史回溯和复原的同时保证了最低的能耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于流畅度提升的三维场景流数据播放控制方法流程示意图;
图2为本发明实施例提供的基于流畅度提升的三维场景流数据播放控制装置结构示意图;
图3为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,本发明提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,这种结合不受步骤先后次序和/或结构组成模式的约束,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本发明实施例提供了一种基于流畅度提升的三维场景流数据播放控制方法,参见图1,该方法包括:将数据读入内存,分析数据并且以设备唯一标识符为主键,内存建立由数据时间戳排序的线性表映射关系;引入数据处理函数,数据处理函数用于在不破坏控制器主体逻辑且不更改控制器代码的基础上对预定数据进行处理,附加预定业务逻辑;创建并使用部分原始数据初始化数据处理线程,由主线程管理初始化后的数据处理线程的生命周期;使用预设起始播放时间戳传入实例化后的数据处理线程对象,将实例化后的数据处理线程对象标记为第0次同步,将所有锁标记为异步状态后执行创建,启动数据处理线程;在数据处理线程中对数据加锁,如果成功加锁,则进入数据处理流程,并进行单个信息或设备的计算;在单个信息或设备的计算完成后对数据解锁,在主线程的每一帧中与计算线程进行同步。
在数据处理线程中对数据加锁的意义说明如下:如果不加锁的话,不同的线程会同时访问同一片内存,造成访问冲突或者数据不完整,引起程序崩溃。加锁的目的是保证访问的唯一性,保证同一时刻只有一个线程能够读写该内存片段。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,在所述内存建立由数据时间戳排序的线性表映射关系之后,还包括:若在运行初期缺乏原始数据,则使用空数据nullptr初始化数据处理线程并在之后的线程同步中对数据进行增补。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,所述数据处理函数用于在不破坏控制器主体逻辑且不更改控制器代码的基础上对预定数据进行处理,附加预定业务逻辑,包括:在数据处理前执行函数ShouldDoCalculate,如果返回false则不进行本次数据处理;在索引阶段,如果当前时间比经过排序的第一个时间戳还早,则执行函数DataTimestampTooNew,如果返回false则不进行本次数据处理;在索引阶段,如果当前时间比经过排序的最后一个时间戳还晚,则执行函数DataTimestampTooOld,如果返回false则不进行本次数据处理;在计算结束后执行函数OnCalculationCompleted。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,所述初始化后的数据处理线程的生命周期为数字孪生可视化系统实例构造后到数字孪生可视化系统实例析构前。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,在所述启动数据处理线程之后,还包括:数据处理线程进入线程循环,开始根据由时间戳排序的数据线性表处理数据。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,所述并进行单个信息或设备的计算,包括:在单个信息或设备的计算的过程中,计算插值使用的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,进入下个设备或信息的计算中,以此循环直至将数据结构完全遍历。
具体的,数据处理是完全游离于主线程之外的,在现代多核心CPU的情况下不会对主线程造成任何性能影响。在数据处理流程中,会遍历控制器持有的数据结构中的所有由时间戳排序的线性表进行计算。在单个信息/设备的计算(下面简称单次计算)之前,会先执行一次函数ShouldDoCalculate用于判断是否应该执行本次计算。如果函数ShouldDoCalculate指针为空则表示执行。单次计算时首先会根据上一次与主线程同步的时间戳索引到需要使用的1-2个数据点,然后判断这些数据点对应的时间戳是否符合调用函数DataTimestampTooNew和DataTimestampTooOld的条件,如果符合条件则调用特殊处理函数。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制方法,所述在单个信息或设备的计算完成后对数据解锁,包括:若解锁成功,将计算线程的输出结果应用到展示层面上,并且会将数据增补队列中的缓存数据输入到计算线程的数据结构中,在主线程所有操作执行完成后,输入新的计算时间戳,主线程解锁,使得数据处理线程继续下一帧的计算工作;若解锁失败但是失败次数小于预设帧数时,本帧放弃同步,日志中生成警告,若解锁失败且失败次数大于等于预设帧数时,强制等待计算线程预设时长,如果预设时长后依然无法成功同步则本帧放弃同步,日志中生成错误;如果预设时长内成功解锁,则进入解锁成功流程。
本发明实施例提供的基于流畅度提升的三维场景流数据播放控制方法,通过使用UE异步的高效处理和播放以时间戳为索引排序的数据流,解决了传统数字孪生系统中对历史数据信息展示不完整、历史时空无法完整回溯复原的问题,提升了数字孪生对于大型场景的应用性,并且在提供高精度历史回溯和复原的同时保证了最低的能耗。
在具体实施基于流畅度提升的三维场景流数据播放控制方法时,使用编写好的代码实现导入模块,导入到需要进行相关回溯业务的UE工程中,并且在工程源码的build.cs文件中的PublicDependencyModuleNames字段中添加模块名以确保模块被成功引用;将本地json中读取出的示例数据按照时间戳从先到后排序,存入模块中的数据结构DeviceDataBase中,并且定义四个静态函数用于设置特殊处理函数对数据进行特殊的业务处理;初始化数据处理线程,并且将上面初始化完成的数据传入数据处理线程的实例,并且调用第0次同步初始化所有锁的状态,然后启动数据处理线程;每帧在游戏线程中的tick事件执行与数据处理线程的同步函数,尝试对数据取锁,如果成功取锁则对全局可操控的对应变量进行操作,操作完成后将增补数据(如果有)添加进数据处理线程,所有操作结束后释放锁使数据处理线程进行下一次计算。
本发明各个实施例的实现基础是通过具有处理器功能的设备进行程序化的处理实现的。因此在工程实际中,可以将本发明各个实施例的技术方案及其功能封装成各种模块。基于这种现实情况,在上述各实施例的基础上,本发明的实施例提供了一种基于流畅度提升的三维场景流数据播放控制装置,该装置用于执行上述方法实施例中的基于流畅度提升的三维场景流数据播放控制方法。参见图2,该装置包括:第一主模块,用于实现将数据读入内存,分析数据并且以设备唯一标识符为主键,内存建立由数据时间戳排序的线性表映射关系;第二主模块,用于实现引入数据处理函数,数据处理函数用于在不破坏控制器主体逻辑且不更改控制器代码的基础上对预定数据进行处理,附加预定业务逻辑;第三主模块,用于实现创建并使用部分原始数据初始化数据处理线程,由主线程管理初始化后的数据处理线程的生命周期;第四主模块,用于实现使用预设起始播放时间戳传入实例化后的数据处理线程对象,将实例化后的数据处理线程对象标记为第0次同步,将所有锁标记为异步状态后执行创建,启动数据处理线程;第五主模块,用于实现在数据处理线程中对数据加锁,如果成功加锁,则进入数据处理流程,并进行单个信息或设备的计算;第六主模块,用于实现在单个信息或设备的计算完成后对数据解锁,在主线程的每一帧中与计算线程进行同步。
本发明实施例提供的基于流畅度提升的三维场景流数据播放控制装置,采用图2中的若干模块,通过使用UE异步的高效处理和播放以时间戳为索引排序的数据流,解决了传统数字孪生系统中对历史数据信息展示不完整、历史时空无法完整回溯复原的问题,提升了数字孪生对于大型场景的应用性,并且在提供高精度历史回溯和复原的同时保证了最低的能耗。
需要说明的是,本发明提供的装置实施例中的装置,除了可以用于实现上述方法实施例中的方法外,还可以用于实现本发明提供的其他方法实施例中的方法,区别仅仅在于设置相应的功能模块,其原理与本发明提供的上述装置实施例的原理基本相同,只要本领域技术人员在上述装置实施例的基础上,参考其他方法实施例中的具体技术方案,通过组合技术特征获得相应的技术手段,以及由这些技术手段构成的技术方案,在保证技术方案具备实用性的前提下,就可以对上述装置实施例中的装置进行改进,从而得到相应的装置类实施例,用于实现其他方法类实施例中的方法。例如:
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制装置,还包括:第一子模块,用于实现在所述内存建立由数据时间戳排序的线性表映射关系之后,还包括:若在运行初期缺乏原始数据,则使用空数据nullptr初始化数据处理线程并在之后的线程同步中对数据进行增补。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制装置,还包括:第二子模块,用于实现所述数据处理函数用于在不破坏控制器主体逻辑且不更改控制器代码的基础上对预定数据进行处理,附加预定业务逻辑,包括:在数据处理前执行函数ShouldDoCalculate,如果返回false则不进行本次数据处理;在索引阶段,如果当前时间比经过排序的第一个时间戳还早,则执行函数DataTimestampTooNew,如果返回false则不进行本次数据处理;在索引阶段,如果当前时间比经过排序的最后一个时间戳还晚,则执行函数DataTimestampTooOld,如果返回false则不进行本次数据处理;在计算结束后执行函数OnCalculationCompleted。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制装置,还包括:第三子模块,用于实现所述初始化后的数据处理线程的生命周期为数字孪生可视化系统实例构造后到数字孪生可视化系统实例析构前。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制装置,还包括:第四子模块,用于实现在所述启动数据处理线程之后,还包括:数据处理线程进入线程循环,开始根据由时间戳排序的数据线性表处理数据。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制装置,还包括:第五子模块,用于实现所述并进行单个信息或设备的计算,包括:在单个信息或设备的计算的过程中,计算插值使用的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,进入下个设备或信息的计算中,以此循环直至将数据结构完全遍历。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的基于流畅度提升的三维场景流数据播放控制装置,还包括:第六子模块,用于实现所述在单个信息或设备的计算完成后对数据解锁,包括:若解锁成功,将计算线程的输出结果应用到展示层面上,并且会将数据增补队列中的缓存数据输入到计算线程的数据结构中,在主线程所有操作执行完成后,输入新的计算时间戳,主线程解锁,使得数据处理线程继续下一帧的计算工作;若解锁失败但是失败次数小于预设帧数时,本帧放弃同步,日志中生成警告,若解锁失败且失败次数大于等于预设帧数时,强制等待计算线程预设时长,如果预设时长后依然无法成功同步则本帧放弃同步,日志中生成错误;如果预设时长内成功解锁,则进入解锁成功流程。
本发明实施例的方法是依托电子设备实现的,因此对相关的电子设备有必要做一下介绍。基于此目的,本发明的实施例提供了一种电子设备,如图3所示,该电子设备包括:至少一个处理器(processor)、通信接口(Communications Interface)、至少一个存储器(memory)和通信总线,其中,至少一个处理器,通信接口,至少一个存储器通过通信总线完成相互间的通信。至少一个处理器可以调用至少一个存储器中的逻辑指令,以执行前述各个方法实施例提供的方法的全部或部分步骤。
此外,上述的至少一个存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个方法实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的一些部分所述的方法。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。基于这种认识,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
需要说明的是,术语“包括”、“包含”或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
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个数据点位,D[i+1]为第i+1个数据点位,T为当前使用的时间戳;D[i].timestamp为第i个数据点位的时间戳;D[i+1].timestamp为第i+1个数据点位的时间戳;采用得到的Alpha(0,1]对第i个数据点和第i+1个数据点之间的数据进行线性插值,将插值结果保存到数据结构的结果中;在单个信息或设备的计算结束阶段,调用函数OnCalculationCompleted,进入下个设备或信息的计算中,以此循环直至将数据结构完全遍历。
7.一种基于流畅度提升的三维场景流数据播放控制装置,其特征在于,包括:第一主模块,用于实现将数据读入内存,分析数据并且以设备唯一标识符为主键,内存建立由数据时间戳排序的线性表映射关系;第二主模块,用于实现引入数据处理函数,数据处理函数用于在不破坏控制器主体逻辑且不更改控制器代码的基础上对预定数据进行处理,附加预定业务逻辑;第三主模块,用于实现创建并使用部分原始数据初始化数据处理线程,由主线程管理初始化后的数据处理线程的生命周期;第四主模块,用于实现使用预设起始播放时间戳传入实例化后的数据处理线程对象,将实例化后的数据处理线程对象标记为第0次同步,将所有锁标记为异步状态后执行创建,启动数据处理线程;第五主模块,用于实现在数据处理线程中对数据加锁,如果成功加锁,则进入数据处理流程,并进行单个信息或设备的计算;第六主模块,用于实现在单个信息或设备的计算完成后对数据解锁,在主线程的每一帧中与计算线程进行同步;所述在单个信息或设备的计算完成后对数据解锁,包括:若解锁成功,将计算线程的输出结果应用到展示层面上,并且会将数据增补队列中的缓存数据输入到计算线程的数据结构中,在主线程所有操作执行完成后,输入新的计算时间戳,主线程解锁,使得数据处理线程继续下一帧的计算工作;若解锁失败但是失败次数小于预设帧数时,本帧放弃同步,日志中生成警告,若解锁失败且失败次数大于等于预设帧数时,强制等待计算线程预设时长,如果预设时长后依然无法成功同步则本帧放弃同步,日志中生成错误;如果预设时长内成功解锁,则进入解锁成功流程。
8.一种电子设备,其特征在于,包括:
至少一个处理器、至少一个存储器和通信接口;其中,
所述处理器、存储器和通信接口相互间进行通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令,以执行权利要求1至6任一项权利要求所述的方法。
9.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使计算机执行权利要求1至6中任一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311323516.5A CN117082307B (zh) | 2023-10-13 | 2023-10-13 | 基于流畅度提升的三维场景流数据播放控制方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311323516.5A CN117082307B (zh) | 2023-10-13 | 2023-10-13 | 基于流畅度提升的三维场景流数据播放控制方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117082307A CN117082307A (zh) | 2023-11-17 |
CN117082307B true CN117082307B (zh) | 2023-12-29 |
Family
ID=88704567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311323516.5A Active CN117082307B (zh) | 2023-10-13 | 2023-10-13 | 基于流畅度提升的三维场景流数据播放控制方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117082307B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107818012A (zh) * | 2016-09-12 | 2018-03-20 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及电子设备 |
CN109189595A (zh) * | 2018-09-17 | 2019-01-11 | 深圳怡化电脑股份有限公司 | 基于服务器的事件处理方法、装置、设备及介质 |
CN109359005A (zh) * | 2018-09-14 | 2019-02-19 | 厦门天锐科技股份有限公司 | 一种跨进程的数据采集处理方法 |
CN110349253A (zh) * | 2019-07-01 | 2019-10-18 | 深圳前海达闼云端智能科技有限公司 | 一种场景的三维重建方法、终端和可读存储介质 |
CN111444002A (zh) * | 2020-03-25 | 2020-07-24 | 深圳前海微众银行股份有限公司 | 一种任务调度方法及装置 |
CN112487034A (zh) * | 2020-12-01 | 2021-03-12 | 上海思客琦智能装备科技股份有限公司 | 双队列异步图像处理方法及装置 |
CN116861652A (zh) * | 2023-06-29 | 2023-10-10 | 山东浪潮成方数字服务有限公司 | 一种基于数字孪生的实时仿真方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11709796B2 (en) * | 2021-08-16 | 2023-07-25 | Micron Technology, Inc. | Data input/output operations during loop execution in a reconfigurable compute fabric |
-
2023
- 2023-10-13 CN CN202311323516.5A patent/CN117082307B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107818012A (zh) * | 2016-09-12 | 2018-03-20 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及电子设备 |
CN109359005A (zh) * | 2018-09-14 | 2019-02-19 | 厦门天锐科技股份有限公司 | 一种跨进程的数据采集处理方法 |
CN109189595A (zh) * | 2018-09-17 | 2019-01-11 | 深圳怡化电脑股份有限公司 | 基于服务器的事件处理方法、装置、设备及介质 |
CN110349253A (zh) * | 2019-07-01 | 2019-10-18 | 深圳前海达闼云端智能科技有限公司 | 一种场景的三维重建方法、终端和可读存储介质 |
CN111444002A (zh) * | 2020-03-25 | 2020-07-24 | 深圳前海微众银行股份有限公司 | 一种任务调度方法及装置 |
CN112487034A (zh) * | 2020-12-01 | 2021-03-12 | 上海思客琦智能装备科技股份有限公司 | 双队列异步图像处理方法及装置 |
CN116861652A (zh) * | 2023-06-29 | 2023-10-10 | 山东浪潮成方数字服务有限公司 | 一种基于数字孪生的实时仿真方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117082307A (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2972983B1 (en) | Dynamically managing memberships in replicated state machines within a distributed computing environment | |
CN110231995B (zh) | 一种基于Actor模型的任务调度方法、装置及存储介质 | |
CN104866374A (zh) | 基于多任务的离散事件并行仿真及时间同步方法 | |
CN109118358A (zh) | 数字资产的基于分量的同步 | |
CN111125402B (zh) | 用于记录关于被渲染资产的信息的方法和系统 | |
CN109189608A (zh) | 一种保证复制事务一致性的方法以及相应的复制装置 | |
CN103020003A (zh) | 面向多核程序确定性重演的内存竞争记录装置及其控制方法 | |
CN117082307B (zh) | 基于流畅度提升的三维场景流数据播放控制方法和设备 | |
CN112988777B (zh) | 对象处理方法、装置、计算机设备和存储介质 | |
US20120059997A1 (en) | Apparatus and method for detecting data race | |
CN109491974A (zh) | 异步日志管理方法和系统及计算机可读存储介质 | |
CN112486807A (zh) | 一种压力测试方法、装置、电子设备和可读存储介质 | |
CN116521339A (zh) | 一种面向多用户并发访问的信号级仿真实现方法 | |
CN116030233A (zh) | 协同作业方法、装置、系统、电子设备及存储介质 | |
CN115576559A (zh) | 一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法 | |
CN106559678A (zh) | 一种对数字视频进行结构化处理的方法 | |
CN112860248B (zh) | 源代码生成方法及装置 | |
CN114596394A (zh) | 一种骨骼动画生成的方法、装置、系统及存储介质 | |
CN106157366A (zh) | 基于bim的超大场景在移动端的渲染优化方法及系统 | |
CN112732295A (zh) | 一种基于多核ECU的Boot loader刷写方法、电子设备及存储介质 | |
CN111026810A (zh) | 数据同步方法、装置及存储介质 | |
CN112860719B (zh) | 数据处理方法、装置及电子设备 | |
CN116186959A (zh) | 一种支持多种时序约束的嵌入式系统仿真方法与装置 | |
Brown et al. | Representation and Implementation of CSP and VCR Traces | |
CN115618239B (zh) | 一种深度学习框架训练的管理方法、系统、终端及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |