一种多源异类数据同步重放方法转让专利

申请号 : CN201510713379.5

文献号 : CN105392024B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈智勇白正柴其钰孙文俊王伟吴俊峰

申请人 : 中国电子科技集团公司第二十八研究所

摘要 :

本发明提供一种多源异类数据同步重放技术,使得在多种数据能够按需组合同步重放。包括:采集多源异类数据,系统在多源异类数据中的每个数据包或者数据帧中增加时间戳标记,进行时间戳转换;进行多进程协同同步,实现多源异类数据同步重放;设计多源异类数据重放进程;进行多源异类数据重放控制。本发明可实现对屏幕视频、雷达回波视频、电台/电话音频以及系统处理数据等多源异类数据的同步重放技术,使各类数据相互印证进而提高用户事件查证分析的完整性、准确性和工作效率。

权利要求 :

1.一种多源异类数据同步重放方法,其特征在于:包括如下步骤:

步骤1,采集多源异类数据,VTS船舶交通管理系统在多源异类数据中的每个数据包或者数据帧中增加时间戳标记;

步骤2,设计多源异类数据重放进程;

步骤3,进行多进程协同同步,控制进程进行总体控制,数据重放进程从后台服务端下载步骤1采集的多源异类数据,进行时间戳转换和定位,对数据进行解码和重放,实现多源异类数据同步重放;

步骤1中,根据多源异类数据的类型分别进行如下操作:

若所述多源异类数据为雷达回波视频和系统处理数据,不对其时间戳转换,直接使用;

若所述多源异类数据为视频数据,视频数据帧时间戳的单位是采样周期的倒数即1/

90000s,对于视频数据记录文件内任意一个数据帧对应的标准时间的计算公式为:

若所述多源异类数据为音频数据,音频数据帧时间戳的单位为1/8000s,对于音频数据记录文件内任意一个数据帧对应的标准时间的计算公式为:步骤2中,所述多源异类数据重放进程设计如下:

每个数据重放进程状态由播放状态和数据状态组成,只有在播放状态为暂停、数据状态为有数据时,才允许调用Play函数,调用Play函数则立即进入播放状态;

Seek函数用于完成重放时间点的定位、数据缓冲和解码并主动向控制进程反馈准备完成状态:在播放、暂停和停止三个播放状态下调用Seek函数时,首先播放状态变为暂停,数据状态变为无数据;然后数据重放进程从后台服务端缓冲对应播放数据,对收到数据包或者数据帧中的时间戳进行时间转换,并判断转换后的时间与控制进程要求的定位时间之差是否小于定位阈值 ;若大于定位阈值 则继续进行缓冲、转换和判断;若小于定位阈值 ,则完成定位,定位完成后数据重放进程继续下载当前定位时间点及之后的数据,对这些数据中的数据包或数据帧进行数据解码,放入缓冲区直至重放缓冲区填满为止;之后数据重放进程自动转换状态变为暂停和有数据,并向控制进程主动上报当前数据状态,说明已进入可以调用Play函数的状态即准备完成状态;

步骤3包括如下步骤:

步骤1-1,用户通过控制进程界面点击播放按钮或在重放过程中进行拖动进度条的操作时,控制进程首先发送定位命令给各个数据重放进程,定位命令包含时间参数,同时等待所有数据重放进程进行应答;

步骤1-2,各个数据重放进程收到定位命令后,立即进入暂停状态,然后从后台服务端缓冲对应播放数据,对收到数据包或者数据帧中的时间戳进行时间转换,并判断转换后的时间与控制进程要求的定位时间之差是否小于定位阈值 ;若大于定位阈值 则继续进行缓冲、转换和判断;若小于定位阈值 ,则完成定位,定位完成后各类数据重放进程继续下载当前定位时间点及之后的数据,对这些数据中的数据包或数据帧进行数据解码,放入缓冲区直至重放缓冲区填满为止,随即数据重放进程进入有数据状态即准备完成状态,此时数据重放进程主动向控制进程回复准备完成状态;

步骤1-3,当控制进程收到所有数据重放进程有数据状态即准备完成状态的应答后,则同时向所有重放进程发送播放控制命令,数据重放进程收到播放命令后开始重放,实现同步重放;

步骤3中,多进程协同同步包括手动触发和自动触发两种触发方式:当用户点击播放按钮或者拖动播放进度条时,即进行播放或者定位播放两种重放控制操作时,都将触发多进程协同同步过程,保证同步重放;当数据正常重放时,重放控制进程根据策略,即距离上一次手动或者自动同步控制操作的固定时间间隔定时判断当前控制进程的重放时间和各个重放控制进程的重放时间,若重放时间的误差小于预定阈值 700ms,则不进行同步干预,否则将进行同步干预。

说明书 :

一种多源异类数据同步重放方法

技术领域

[0001] 本发明属于同步重放技术领域,尤其涉及一种多源异类数据同步重放方法。

背景技术

[0002] 为了保证海事部门事件查证分析的完整性、准确性,情景再现当时值班员的值班过程,VTS(Vessel Traffic Service船舶交通管理系统)系统的记录重放子系统将记录系统处理和显示的雷达回波视频、系统处理信息(航迹信息、告警信息、指挥命令等),记录值班员的电话/电台通话记录以及值班员值班席位屏幕视频数据;用户事件查证分析时,可按需组合多种数据同步重放,实现值班过程情景再现。
[0003] 目前常见的记录重放系统,主要针对单一数据类型,如语音记录重放系统、视频监控记录重放系统、空管雷达记录重放系统等。而VTS的记录重放系统涉及到屏幕视频、雷达回波视频、电台/电话音频以及系统处理数据(航迹信息、告警信息、指挥命令等)等多源异类信息的记录重放,已有的同步重放技术已经无法满足VTS记录重放系统的按需组合同步重放要求,存在以下技术问题:
[0004] 1、多源异类数据。重放数据来源不同、种类不同、采样周期不同,屏幕视频来源于值班席位的屏幕视频信号、音频来源于VHF内通系统、雷达回波视频来源于雷达录取系统、系统处理数据来源于雷达录取系统和AIS系统;同时每路视频、音频的来源也不同,分别来源于不同的值班席位屏幕、不同的电话通道/电台通道。
[0005] 2、记录文件分类单独存储。视频、音频、雷达回波视频和系统处理数据的文件分类存储,且视频、音频文件存储时区分不同屏幕和通道,每路视频、音频单独存储。
[0006] 3、记录文件起止时间不同。各类数据每隔一段时间生成一个文件,每路视频、音频和雷达回波视频、系统处理数据的记录文件开始时间和结束时间不同。
[0007] 4、来源不同的多路音视频同步播放本身就是音视频播放的难点,现有多路音视频同步播放技术主要将音频序列设置为参考序列,视频流根据音频播放时间戳来调整自己播放的速度实现音视频同步;现有多路视频同步播放技术主要时通过视频拼接技术,将多路视频合成一个视频进行重放,无法满足VTS系统按需组合重放的要求。

发明内容

[0008] 发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种多源异类数据同步重放方法,包括以下步骤:
[0009] 步骤1,采集多源异类数据,VTS系统在多源异类数据中的每个数据包或者数据帧中增加时间戳标记,时间戳转换;
[0010] 步骤2,设计多源异类数据重放进程;
[0011] 步骤3,进行多进程协同同步,控制进程进行总体控制(包括用户操作响应、数据同步控制、重放逻辑控制等各种对数据重放进程的控制),数据重放进程从后台服务端下载步骤1采集的多源异类数据,进行时间戳转换和定位,对数据进行解码和重放,实现多源异类数据同步重放。
[0012] 其中,步骤1中,根据多源异类数据的类型分别进行如下操作:
[0013] 若所述多源异类数据为雷达回波视频和系统处理数据,不对其时间戳转换,直接使用;
[0014] 若所述多源异类数据为视频数据,视频数据帧时间戳的单位是采样周期的倒数即 1/90000s,对于视频数据记录文件内任意一个数据帧对应的标准时间的计算公式为:
[0015]
[0016] 若所述多源异类数据为音频数据,音频数据帧时间戳的单位为1/8000s,对于音频数据记录文件内任意一个数据帧对应的标准时间的计算公式为:
[0017]
[0018] 步骤2中,所述多源异类数据重放进程设计如下:
[0019] 每个数据重放进程状态由播放状态和数据状态组成,只有在播放状态为暂停、数据状态为有数据时,才允许调用Play函数,调用Play函数则立即进入播放状态;
[0020] Seek函数用于完成重放时间点的定位、数据缓冲和解码并主动向控制进程反馈准备完成状态:在播放、暂停和停止三个播放状态下调用Seek函数时,首先播放状态变为暂停,数据状态变为无数据;然后数据重放进程从后台服务端缓冲对应播放数据,对收到数据包或者数据帧中的时间戳进行时间转换,并判断转换后的时间与控制进程要求的定位时间之差是否小于定位阈值 (一般取值100ms);若大于定位阈值 则继续进行缓冲、转换和判断;若小于定位阈值 ,则完成定位,定位完成后数据重放进程继续下载当前定位时间点及之后的数据,对这些数据中的数据包或数据帧进行数据解码,放入缓冲区直至重放缓冲区填满为止;之后数据重放进程自动转换状态变为暂停和有数据,并向控制进程主动上报当前数据状态,说明已进入可以调用Play函数的状态即准备完成状态。
[0021] 步骤3包括如下步骤:
[0022] 步骤1-1,用户通过控制进程界面点击播放按钮或在重放过程中进行拖动进度条的操作时,控制进程首先发送“定位”命令给各个数据重放进程,定位命令包含时间参数,同时等待所有数据重放进程进行应答;
[0023] 步骤1-2,各个数据重放进程收到定位命令后,立即进入暂停状态,然后从后台服务端缓冲对应播放数据,对收到数据包或者数据帧中的时间戳进行时间转换,并判断转换后的时间与控制进程要求的定位时间之差是否小于定位阈值 (一般取值100ms);若大于定位阈值 则继续进行缓冲、转换和判断;若小于定位阈值 ,则完成定位,定位完成后各类数据重放进程继续下载当前定位时间点及之后的数据,对这些数据中的数据包或数据帧进行数据解码,放入缓冲区直至重放缓冲区填满为止,随即数据重放进程进入有数据状态即准备完成状态,此时数据重放进程主动向控制进程回复准备完成状态;
[0024] 步骤1-3,当控制进程收到所有数据重放进程有数据状态即准备完成状态的应答后,则同时向所有重放进程发送播放控制命令,数据重放进程收到播放命令后开始重放,实现同步重放。
[0025] 步骤3中,多进程协同同步包括手动触发和自动触发两种触发方式:当用户点击播放按钮或者拖动播放进度条时,即进行播放或者定位播放两种重放控制操作时,都将触发多进程协同同步过程,保证同步重放;当数据正常重放时,重放控制进程根据策略,即距离上一次手动或者自动同步控制操作的固定时间间隔定时判断当前控制进程的重放时间和各个重放控制进程的重放时间,若重放时间的误差小于预定阈值 700ms,则不进行同步干预,否则将进行同步干预。
[0026] 有益效果:本发明可实现对屏幕视频、雷达回波视频、电台/电话音频以及系统处理数据(航迹信息、告警信息、指挥命令等)等多源异类数据的同步重放技术,实质是解决这些数据来源不同、采样周期迥异、数据之间相对独立且关联性不强的多源异类数据,按需组合重放同步控制复杂的问题,增加系统数据重放的全面性和多样性,使各类数据相互印证进而提高用户事件查证分析的完整性、准确性和工作效率。
[0027] 采用本发明的多源异类数据同步重放技术,能实现对VTS系统中的屏幕视频、雷达回波视频、电台/电话音频以及系统处理数据(航迹信息、告警信息、指挥命令等) 等多源异类数据的按需组合同步重放,组合数据同步重放的同步误差符合系统要求 (<1s)。通过此技术,解决系统各类数据重放的同步性问题,使各类数据相互印证进而提高用户事件查证分析的完整性、准确性和工作效率。

附图说明

[0028] 下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/ 或其他方面的优点将会变得更加清楚。
[0029] 图1是本发明的多进程协同同步控制序列图。
[0030] 图2是本发明的多进程协同的控制进程的同步控制流程图。
[0031] 图3是本发明的数据重放进程的状态机图。

具体实施方式

[0032] 本发明以标准时间为同步基准,采用多进程协同机制,集中控制分散重放,实现多源异类数据按需组合同步重放。具体实施包括如下几个方面。
[0033] 1、时间戳转换
[0034] 在数据采集时,系统对每个数据包或者数据帧中增加时间戳标记。由于数据包和数据帧中的时间戳标记并不采用统一格式,因此需要时间戳转换。统一转换为标准时间,便于进行多源异类数据的同步重放。
[0035] (1)雷达回波视频和系统处理数据的记录文件由一个个数据包组成,每个数据包内都有一个时间戳,此时间戳为数据产生时的系统标准时间,无需转换,直接使用即可。
[0036] (2)视频数据采集时使用H.264标准进行编码,数据记录时采用RTP协议进行传输。视频数据帧时间戳不是标准时间而是一个值,用来反映某个数据块产生的时间点,其单位是采样周期的倒数即1/90000s;对于视频文件的起始时间戳来说,其值为随机数,而其后的所有时间戳都在起始时间戳上单调递增。由于每个视频数据记录文件在记录时,都记录其文件开始时间和结束时间,因此对于文件内任意一个数据帧对应的标准时间的计算公式为:
[0037]
[0038] (3)音频数据采集时也使用H.264标准进行编码,数据记录时采用RTP协议进行传输。与视频数据帧时间戳类似,音频数据帧时间戳的单位为1/8000s。因此对于音频文件内任意一个数据帧对应的标准时间的计算公式为:
[0039]
[0040] 2、多进程协同同步机制
[0041] 多进程协同机制通过重放控制进程统一控制并收集各重放进程的数据状态实现,重放控制进程将各重放进程原来单一的播放命令分解为三个步骤,多进程协同同步控制序列图如图1所示,控制进程的同步控制流程图如图2所示。
[0042] 步骤1,用户通过控制进程界面点击播放按钮或在重放过程中进行拖动进度条等操作时,控制进程首先发送“定位”命令(定位命令包含时间参数)给各数据重放进程,同时等待所有重放进行应答。
[0043] 步骤2,各重放进程收到定位命令后,立即进入暂停状态然后从后台服务端缓冲对应播放数据,对收到数据包或者数据帧中的时间戳进行必要的时间转换,并判断转换后的时间与控制进程要求的定位时间之差是否小于定位阈值 ;若大于定位阈值 则继续进行缓冲、转换和判断;若小于定位阈值 ,则完成定位。定位完成后各类数据重放进程继续下载当前定位时间点及之后的数据,对这些的数据包或数据帧进行数据解码,放入缓冲区直至重放缓冲区填满为止,随即数据重放进程进入“有数据”状态即准备完成状态。此时数据重放进程主动向控制进程回复准备完成状态。
[0044] 步骤3,当控制进程收到所有数据重放进程“有数据”状态即准备完成状态的应答后,则同时向所有重放进程发送“播放”控制命令,数据重放进程收到“播放”命令后才真正开始重放,实现同步重放。
[0045] 此多进程协同同步机制的同步误差,由步骤3的各个进程收到播放命令并立即执行命令的时间差异导致,主要包括进程间通信的发送时延和执行播放命令的响应时间组成,同步误差符合系统要求(<1s)。
[0046] 3、数据重放进程设计
[0047] 视频重放进程、音频重放进程、雷达回波视频重放进程和系统处理数据重放进程,虽然处理的数据类型不同,重放数据的方法也不同,但是各重放进程的重放逻辑是一致的。各重放进程接收重放控制进程的控制命令,并调用相应的控制函数,统一听从重放控制进程的控制。
[0048] 重放控制进程发送的控制命令类型以及各重放进程调用的相应函数说明如下表所示。
[0049] 表1重放控制命令与对应的重放进程调用的函数
[0050]
[0051]
[0052] 重放进程状态机如图3所示,状态说明如下:
[0053] (1)状态由播放状态和数据状态组成,只有在播放状态为“暂停”、数据状态为“有数据”(数据缓冲完成)时,才能调用Play函数,调用Play函数则立即进入播放状态。
[0054] (2)Seek函数完成重放时间点的定位、数据缓冲和解码并主动向控制进程反馈准备完成状态,从而为各进程的同步提供控制基础。在“播放”、“暂停”和“停止”三个播放状态下调用Seek函数时,首先播放状态变为“暂停”,数据状态变为“无数据”;然后数据重放进程从后台服务端缓冲对应播放数据,对收到数据包或者数据帧中的时间戳进行必要的时间转换,并判断转换后的时间与控制进程要求的定位时间之差是否小于定位阈值 ;若大于阈值 则继续进行缓冲、转换和判断;若小于定位阈值 ,则完成定位。定位完成后数据重放进程继续下载当前定位时间点及之后的数据,对这些的数据包或数据帧进行数据解码,放入缓冲区直至重放缓冲区填满为止;之后数据重放进程自动转换状态变为“暂停”和“有数据”,并向控制进程主动上报当前数据状态,说明已进入可以调用Play函数的状态即准备完成状态。
[0055] (3)Preplay函数在进行重放前设置重放参数,主要是需要播放的数据类型、数据的时间段等,如果是电台/电话音频和屏幕视频,则还包括对应哪个语音或者视频设备信息。函数的执行将使进程播放状态进入“暂停”,使数据状态变为“无数据”状态。
[0056] (4)Pause函数使重放进程暂停对后台下载数据的解码、缓冲和播放。
[0057] (5)Stop函数使重放进程停止重放,停止对后台下载数据的解码、缓冲和播放,清空重放缓冲区内解码后的数据,使数据重放进程回到起点。
[0058] (6)DestroyPlayer函数彻底销毁数据重放进程申请的重放缓冲区以及相关重放资源,为数据重放进程退出做准备。
[0059] 4、多源异类数据重放控制
[0060] 各数据重放进程已进行专门设计,便于重放控制进程进行重放控制,最终实现多源异类数据按需组合和同步重放。
[0061] (1)在进行重放参数设置时,重放控制进程提供选择界面,用户按需选择异类数据中的一个或多个并进行组合,重放控制进程根据用户的选择启动相应的重放进程,实现按需组合重放。
[0062] (2)用户通过控制进程界面点击播放按钮或在重放过程中进行拖动进度条等操作时,控制进程首先发送“定位”命令(定位命令包含时间参数)给各数据重放进程,同时等待所有重放进行应答。当所有的数据重放进程都进入准备完成状态后,则同时向所有重放进程发送“播放”控制命令,实现同步控制。
[0063] (3)同步机制有手动触发和自动触发两种触发方式。当用户点击播放按钮或者拖动播放进度条时,即进行播放或者定位播放两种重放控制操作时,都将触发上述的多进程协同同步过程,保证同步重放。当数据正常重放时,重放控制进程根据策略(距离上一次手动或者自动同步控制操作的固定时间间隔)定时判断当前控制进程的重放时间和各个重放控制进程的重放时间,若重放时间的误差小于预定阈值 (<700ms),则不进行同步干预;否则将进行同步干预。
[0064] 本发明提供了一种多源异类数据同步重放方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。