处理器中数据处理监听方法、装置、存储介质及其计算机设备与流程

文档序号:14129814阅读:198来源:国知局

本发明涉及计算机技术领域,特别是涉及处理器中数据处理监听方法、装置、存储介质及其计算机设备。



背景技术:

随着科学技术的发展,处理器已经广泛应用于各行各业中。

当前的处理器一般都是依靠设计时的拓扑图来设定数据在系统内部的走向。以数字音频处理器为例,当前的数字音频处理器,依靠拓扑图来设定音频数据在系统内部的走向,即音频数据从输入到输出所经过的处理算法。一张拓扑图包含输入接口、算法、输出接口等元素,当拓扑图确定后,各个元素之间的连接也就固定了。当在某一场景下部署数字音频处理器时,技术人员需要反复调整每一路音频所经过的算法的参数,并根据数字音频处理器的最终输出来确定是否达到预期效果。

一般的处理器,在进行工程调试时,只能得到最终输出的数据,而无法针对某一具体算法输出的数据进行监听。这样的话,技术人员听到的是多个算法处理后的最终输出,当进行算法参数调整时,难以分辨具体是那一个算法产生了影响。这样使工程调试难度增大,耗时也相应的增加,同时也对技术人员产生了更高的要求。



技术实现要素:

基于此,有针对上述,提供一种能够对处理器中数据处理进行监听的方法、装置、存储介质及其计算机设备。

一种处理器中数据处理监听方法,包括步骤:

遍历处理器中各算法,获取各算法携带的预设数组参数,预设数组参数携带算法对应的输出通道以及监听状态信息;

根据各算法对应的预设数组参数,识别当前需监听的目标算法以及目标算法对应的输出通道;

拷贝目标算法对应的输出通道输出的数据至数据缓冲区;

推送数据缓冲区中的数据。

一种处理器中数据处理监听装置,包括:

参数获取模块,用于遍历处理器中各算法,获取各算法携带的预设数组参数,预设数组参数携带算法对应的输出通道以及监听状态信息;

识别模块,用于根据各算法对应的预设数组参数,识别当前需监听的目标算法以及目标算法对应的输出通道;

拷贝模块,用于拷贝目标算法对应的输出通道输出的数据至数据缓冲区;

推送模块,用于推送数据缓冲区中的数据。

本申请处理器中数据处理监听方法与装置,获取预设于各算法的预设数组参数,预设数组参数中携带有算法对应的输出通道和监听状态信息,识别需要进行监听的目标算法以及目标算法输出通道,将目标算法输出的数据拷贝至数据缓冲区进行交织处理,推送数据缓冲区中的数据,以进行进一步数据分析。整个过程中,基于预设数组参数可知准确识别出当前需监听的目标算法,并且拷贝缓冲出目标算法对应的输出数据,能够对处理器中数据处理进行动态监听。

另,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上述方法的步骤。

另,本申请还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行程序时实现如上述方法的步骤。

上述计算机可读存储介质与计算机设备,其执行上述处理器中数据处理监听方法时,获取预设于各算法的预设数组参数,预设数组参数中携带有算法对应的输出通道和监听状态信息,识别需要进行监听的目标算法以及目标算法输出通道,将目标算法输出的数据拷贝至数据缓冲区进行交织处理,推送数据缓冲区中的数据,以进行进一步数据分析。整个过程中,基于预设数组参数可知准确识别出当前需监听的目标算法,并且拷贝缓冲出目标算法对应的输出数据,能够对处理器中数据处理进行动态监听。

附图说明

图1为本申请处理器中数据处理监听方法应用于音频处理器的原理示意图;

图2为本申请处理器中数据处理监听方法第一个实施例的流程示意图;

图3为本申请处理器中数据处理监听方法第二个实施例的流程示意图;

图4为虚拟监听接口结构示意图;

图5为通道数据拷贝示意图;

图6为通道数据拷贝、交织处理示意图;

图7为虚拟监听接口中线程处理示意图;

图8为虚拟监听接口中数据线程监听过程的流程示意图;

图9为本申请处理器中数据处理监听装置第一个实施例的结构示意图;

图10为本申请处理器中数据处理监听装置第二个实施例的结构示意图。

具体实施方式

为便于详细解释本发明处理器中数据处理监听方法与装置的技术方案,下面将以音频处理器为例对一些相关内容进行说明。

如图1所示,在实际应用中,音频处理器包括音频输入接口、算法1、算法2、算法3……算法n以及音频输出接口,传统的只能针对音频输出接口的数据进行监听,由于输出的数据是经过多个算法处理之后的结果,因为无法监听到处理器内具体算法是否存在异常。

基于此,本申请采用一种虚拟监听接口,虚拟监听接口与各个算法之间采用动态连接,在需要时可通过参数灵活设置,动态连接用虚线表示,虚拟监听接口获得的监听数据,通过网络发送至计算机播放、存储或者分析。在处理器中原始算法部分,每个算法增加一个数组参数,该参数记录着本算法的每个输出通道的监听状态,即:是否需要监听,以及当需要监听时,连接到虚拟监听接口的哪一个通道,虚拟监听接口在获取各数组参数的时候,即可准确获知当前算法是否需要监听以及若需要监听其输出通道是哪个。

如图2所示,一种处理器中数据处理监听方法,包括步骤:

s200:遍历处理器中各算法,获取各算法携带的预设数组参数,预设数组参数携带算法对应的输出通道以及监听状态信息。

如上述图1以及相关内容,在处理器中包括有多个算法,在这些算法中预先设定数组参数,数组参数携带当前算法对应的输出通道以及监听状态信息。例如算法1中预设数组参数携带输出通道1、监听状态:否;算法2中预设数组参数携带输出通道2、监听状态:是;算法3中预设数组参数携带输出通道3、监听状态:是;算法n中预设数组参数携带输出通道n、监听状态:否。

s400:根据各算法对应的预设数组参数,识别当前需监听的目标算法以及目标算法对应的输出通道。

基于步骤s200获取的各算法对应的数组参数,即可识别出当前需要监听的目标算法以及该目标算法对应的输出通道。如上,算法2中预设数组参数携带通道2、监听状态:是;算法3中预设数组参数携带输出通道3、监听状态:是,则目标算法为算法2、其对应的输出通道为2以及算法3、其对应的输出通道为3。

s600:拷贝目标算法对应的输出通道输出的数据至数据缓冲区。

在步骤s400确定当前(本次)监听的目标算法之后,需要着重关注目标算法输出的数据,对此,将目标算法对应的输出通道输出的数据拷贝至数据缓冲区。在上述实例中,目标算法为算法2和算法3,步骤s600将算法2对应输出通道2中输出的数据以及算法3对应输出通道3中输出的数据拷贝至数据缓冲区。非必要的,为确保多个算法对应的输出通道数据之间同步,可以对拷贝至数据缓冲区中的数据进行交织处理。

s800:推送数据缓冲区中数据。

将数据缓冲区中数据推送至外部计算机进行分析,以检测目标算法是否存在异常。

本申请处理器中数据处理监听方法,获取预设于各算法的预设数组参数,预设数组参数中携带有算法对应的输出通道和监听状态信息,识别需要进行监听的目标算法以及目标算法输出通道,将目标算法输出的数据拷贝至数据缓冲区进行交织处理,推送数据缓冲区中的数据,以进行进一步数据分析。整个过程中,基于预设数组参数可知准确识别出当前需监听的目标算法,并且拷贝缓冲出目标算法对应的输出数据,能够对处理器中数据处理进行动态监听。

如图3所示,在其中一个实施例中,步骤s400包括:

s420:分别解析各算法对应的数组参数,读取各预设数组参数中的监听状态信息的取值;

s440:识别各预设数组参数中的监听状态信息的取值为预设初始值的算法、或各预设数组参数中的监听状态信息的取值为非预设初始值的算法;

s460:将预设数组参数中的监听状态信息的取值为非预设初始值的算法作为当前需监听的目标算法。

在预设数组参数中携带有监听状态信息,监听状态信息用于表征是否需要对当前算法进行监听(是否为目标算法)。在本实施例中,通过识别监听状态信息的取值来识别状态,具体的,当预设数组参数中的监听状态信息的取值为非预设初始值时,表明该数值已被修改,即对应的算法需要进行监听,其为目标算法,当预设数组参数中的监听状态信息的取值为预设初始值时,表明该数值未被修改,即对应的算法不需要进行监听,其不为目标算法。在实际应用中,监听状态信息的取值,可以用value表示,有两种情况:value=-1,表示不监听该输出通道(由于通道与算法是对应的,即不需要监听该算法);0<value<最大监听通道数,表示该输出通道数据会送至虚拟监听接口的第value通道,所有通道的value值在系统启动后都为-1(预设初始值)。在本实施例中,采用读取预设初始值的方式,可以高效且准确识别当前需监听的目标算法以及目标算法对应的输出通道。

在其中一个实施例中,目标算法的数量为多个,数据缓冲区包括多个通道数据缓冲区,拷贝目标算法对应的输出通道输出的数据至数据缓冲区包括:

将各目标算法对应的输出通道输出的数据分别单独拷贝至各通道数据缓冲区,并进行交织处理。

在本实施例中,目标算法是有多个,数据缓冲区中分割有多个通道数据缓冲区,为避免各目标算法对应输出通道输出数据之间干扰、影响,将各目标算法对应的输出通道输出的数据分别单独拷贝至各通道数据缓冲区,并且为确保各数据之间同步,还进行交织处理。继续以上述实例为例,包括目标算法2和目标算法3,其分别对用输出通道2和输出通道3,将输出通道2输出的数据x和输出通道3输出的数据y分别拷贝至通道2数据缓冲区和通道3输出缓冲区,再对其进行交织处理。

在其中一个实施例中,拷贝目标算法对应的输出通道输出的数据至数据缓冲区的步骤包括:

当目标算法对应的输出通道无数据输出时,拷贝预设数据至数据缓冲区。

在本实施例中,当目标算法对应的输出通道无数据输出时,将预设数据拷贝至数据缓冲区。具体来说,预设数据是预先设定的默认数据,以音频处理器为例,其预设数据为静音数据,当算法对应的输出通道无数据输出时,表明该通道处于静音状态将静音数据拷贝至数据缓冲区。非必要的,当有多个目标算法对应的输出通道均无数据输出是,分别拷贝静音数据至数据缓冲区,更进一步的,分别拷贝静音数据至数据缓冲区中对应的通道数据缓冲区。

如图3所示,在其中一个实施例中,步骤s800包括:

s820:将数据缓冲区中的数据发送至缓冲fifo(firstinputfirstoutput,先入先出队列);

s840:推送缓冲fifo中数据。

数据缓冲区中的数据通过网络发送给计算机,由于网络接口的数据传输存在抖动,为了抵抗抖动,交织后的数据会发送给一个缓冲fifo,网络发送时从该缓冲fifo获取数据。具体来说,缓冲fifo的结构:缓冲区包含一个环形缓存区,环形缓存区的长度可以根据系统的内存大小来调节。缓冲区有一个写指针和一个读指针,分别供输入和输出使用。存入数据使用写指针,读取数据使用读指针,读或者写缓冲区之后,指针后移所操作的数据长度,遇到缓冲区尾部则回归到缓冲区头。非必要的,可以先对数据缓冲区中的数据进行交织处理,再发送至缓冲fifo。

在其中一个实施例中,推送缓冲fifo中数据的步骤包括:

步骤一:读取缓冲fifo中数据,并对读取的数据进行rtp(reliabletransportprotocol,可靠传输协议)格式封装;

步骤二:采用udp(userdatagramprotocol,用户数据报协议)方式发送rtp格式封装后的数据。

监听数据发送线程负责把虚拟监听接口获取到的数据通过网络发送出去。发送线程在数据线程之后的空闲时刻运行,即优先级低于数据线程。因为有缓冲fifo的存在,允许发送线程有抖动。发送数据采用rtp格式封装,使用udp方式发送。

如图3所示,在其中一个实施例中,步骤s200之前还包括:

s100:针对处理器中各算法,分别写入预设数组参数。

针对处理器中存在的各算法,编程人员可以分别写入预设数组参数,在数据参数中携带有算法对应的输出通道以及监听状态信息。在实际应用中,每个算法都添加一个数组参数monitorstreamchannel[outports],用来存放输出通道的监听状态。该数组参数在系统创建算法时和算法的固有参数一起生成,数组的长度outports等于该算法最大支持的输出通道数。数组的每个元素依次对应该算法的输出通道,例如monitorstreamchannel[0]对应该算法的输出通道0,monitorstreamchannel[1]对应该算法的输出通道1,依次类推。数组元素的取值,这里用value表示,有两种情况:value=-1,表示不监听该输出通道。0<value<最大监听通道数,表示该输出通道数据会送至虚拟监听接口的第value通道。所有通道的value值在系统启动后都为-1。

为了更进一步详细解释本申请处理器中数据处理监听方法的技术方案,下面将以音频处理器为例,并结合编程代码以及图4、图5、图6、图7以及图8详细说明。

在具体应用实例中,本申请处理器中数据处理监听方法应用于音频处理器时,其构成的虚拟监听接口的架构,如图4所示,虚拟监听接口为系统的固定接口,不依赖于拓扑存在,也不会影响拓扑的数据流。虚拟监听接口拷贝源数据至自己的数据缓冲区,交织后把监听数据通过网络发送给计算机。其实现过程具体包括以下内容:

1、每个算法都添加一个数组参数monitorstreamchannel[outports],用来存放输出通道的监听状态。该数组参数在系统创建算法时和算法的固有参数一起生成,数组的长度outports等于该算法最大支持的输出通道数。数组的每个元素依次对应该算法的输出通道,例如monitorstreamchannel[0]对应该算法的输出通道0,monitorstreamchannel[1]对应该算法的输出通道1,依次类推。数组元素的取值,这里用value表示,有两种情况:value=-1,表示不监听该输出通道。0<value<最大监听通道数,表示该输出通道数据会送至虚拟监听接口的第value通道。所有通道的value值在系统启动后都为-1。

2、静音帧。虚拟监听接口内存储了一个静音帧,静音帧为一帧静音的音频数据,即数据全为0,用来供静音通道使用。

3、通道数据缓冲区。虚拟监听接口的每个通道都有相应的数据缓冲区,用来暂存要发送的音频数据。

4、监听通道数据源。虚拟监听接口有一个指针数组参数ptr[n],该参数的个数n为最大监听通道数。虚拟监听接口的最大监听通道数可以根据当前系统处理器运算性能决定。指针数组ptr[n]的每一个元素对应一个监听通道,元素0对应监听通道0,依次递推。虚拟监听接口根据该参数指向的内存地址来拷贝音频数据至相应的数据缓冲区,若该参数为空(0),则从静音帧拷贝。例如ptr[0]指向数据帧1,ptr[1]指向数据帧2,ptr[2]为空,ptr[3]为空时,拷贝方式如图5所示。

5、为了保证同步,所有通道的音频数据发送前会先交织在一起,交织前后的格式如图6所示。

6、交织后的数据通过网络发送给计算机,由于网络接口的数据传输存在抖动,为了抵抗抖动,交织后的数据会发送给一个缓冲fifo,网络发送时从该缓冲fifo获取数据。缓冲fifo的结构:缓冲区包含一个环形缓存区,环形缓存区的长度可以根据系统的内存大小来调节。缓冲区有一个写指针和一个读指针,分别供输入和输出使用。存入数据使用写指针,读取数据使用读指针,读或者写缓冲区之后,指针后移所操作的数据长度,遇到缓冲区尾部则回归到缓冲区头。

7、虚拟监听接口线程分布。虚拟监听接口功能上分两部分,一部分运行在数据线程,每一帧音频数据处理期间都会运行,且在算法计算完成后运行。另一部分为监听数据发送线程,发送线程不用和数据线程保持同步,在数据线程运行完毕后的空闲时刻运行,参见图7。

8、虚拟监听接口数据处理部分运行在数据线程,当每个算法运算完成后,数据线程要检查当前算法的monitorstreamchannel[outports]参数,若当前算法某一通道对应的value值不为-1时,数据线程需要把该通道的输出缓冲区指针赋值给虚拟监听接口相应的通道的参数ptr[value]。利用这个指针,虚拟监听接口在输出时即可获得这个算法的指定通道的输出数据,其具体处理流程参见图8。

9、监听数据发送线程。监听数据发送线程负责把虚拟监听接口获取到的数据通过网络发送出去。发送线程在数据线程之后的空闲时刻运行,即优先级低于数据线程。因为有缓冲fifo的存在,允许发送线程有抖动。发送数据采用rtp格式封装,使用udp方式发送。

非必要的,实际应用中,还可以设置用户操作界面,在用户操作界面中界面负责配置数字音频处理器的虚拟监听接口参数。包括:监听数据接收方的ip地址和端口号;所要监听的算法的数组参数monitorstreamchannel[outports]。ip地址和端口号用来告知数字音频处理器监听数据发送至哪里。monitorstreamchannel[outports]用来告知数字音频处理器该算法的哪里一路输出送至虚拟监听接口的哪一路通道。该参数可以随时修改,音频处理器会立即使用新的参数。

如图9所示,一种处理器中数据处理监听装置,包括:

参数获取模块200,用于遍历处理器中各算法,获取各算法携带的预设数组参数,预设数组参数携带算法对应的输出通道以及监听状态信息;

识别模块400,用于根据各算法对应的预设数组参数,识别当前需监听的目标算法以及目标算法对应的输出通道;

拷贝模块600,用于拷贝目标算法对应的输出通道输出的数据至数据缓冲区;

推送模块800,用于推送数据缓冲区中的数据。

本申请处理器中数据处理监听装置,获取预设于各算法的预设数组参数,预设数组参数中携带有算法对应的输出通道和监听状态信息,识别需要进行监听的目标算法以及目标算法输出通道,将目标算法输出的数据拷贝至数据缓冲区进行交织处理,推送数据缓冲区中的数据,以进行进一步数据分析。整个过程中,基于预设数组参数可知准确识别出当前需监听的目标算法,并且拷贝缓冲出目标算法对应的输出数据,能够对处理器中数据处理进行动态监听。

如图10所示,在其中一个实施例中,识别模块400包括:

读取单元420,用于分别解析各算法对应的数组参数,读取各预设数组参数中的监听状态信息的取值;

识别单元440,用于识别各预设数组参数中的监听状态信息的取值为预设初始值的算法、或各预设数组参数中的监听状态信息的取值为非预设初始值的算法;

确定单元460,用于将预设数组参数中的监听状态信息的取值为非预设初始值的算法作为当前需监听的目标算法。

在其中一个实施例中,目标算法的数量为多个,数据缓冲区包括多个通道数据缓冲区,拷贝模块600还用于将各目标算法对应的输出通道输出的数据分别单独拷贝至各通道数据缓冲区,并进行交织处理。

在其中一个实施例中,拷贝模块600还用于当目标算法对应的输出通道无数据输出时,拷贝预设数据至数据缓冲区。

如图10所示,在其中一个实施例中,推送模块800包括:

缓冲单元820,用于将数据缓冲区中的数据发送至缓冲fifo;

推送单元840,用于推送缓冲fifo中数据。

在其中一个实施例中,推送单元840还用于读取缓冲fifo中数据,并对读取的数据进行rtp格式封装;采用udp方式发送rtp格式封装后的数据。

如图10所示,在其中一个实施例中,还包括:

设置模块100,用于针对处理器中各算法,分别写入预设数组参数,预设数组参数携带算法对应的输出通道以及监听状态信息。

另,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上述方法的步骤。

另,本申请还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行程序时实现如上述方法的步骤。

本领域普通技术人员可以理解实现上述实施例处理器中数据处理监听方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述医疗成像设备自适应方法的各个实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

上述计算机可读存储介质与计算机设备,其执行上述处理器中数据处理监听方法时,获取预设于各算法的预设数组参数,预设数组参数中携带有算法对应的输出通道和监听状态信息,识别需要进行监听的目标算法以及目标算法输出通道,将目标算法输出的数据拷贝至数据缓冲区进行交织处理,推送数据缓冲区中的数据,以进行进一步数据分析。整个过程中,基于预设数组参数可知准确识别出当前需监听的目标算法,并且拷贝缓冲出目标算法对应的输出数据,能够对处理器中数据处理进行动态监听。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1