一种数据处理方法及装置的制造方法

文档序号:9238634阅读:213来源:国知局
一种数据处理方法及装置的制造方法
【技术领域】
[0001 ] 本发明属于电视数据处理技术领域,尤其涉及一种数据处理方法及装置。
【背景技术】
[0002]人们在观看直播视频节目的同时,可能同时还需要进行录制,后台节目信息监控等等需求,因此,需要同时处理多个数据。目前绝大多数对于数据处理的方法都是优化Demux的数据回调效率,其中,Demux是demultiplexer的缩写,可称为解复用器、分路器或分离器,Demux是一个用于分离两个或先前被一个兼容复用器组合并传输通过一个信号信道的多个信号的设备。现有数据处理的方法各有优劣,但是多数据并行处理效率低,系统处理稳定性不好。

【发明内容】

[0003]本发明实施例提供了一种数据处理方法及装置,旨在解决现有技术多数据并行处理效率低,系统处理稳定性不好的问题。
[0004]一方面,提供一种数据处理方法,所述方法包括:
[0005]启动数据服务,实时监控各个信道是否接收到数据包;
[0006]若任何一个信道接收到所述数据包,判断是否能获取到原子锁;
[0007]若可以获取原子锁,创建原子锁并一次性将所有所述数据包从硬件缓冲区拷贝到用户缓冲区;
[0008]根据所述硬件缓冲区和所述用户缓冲区的地址,同时获取所述各个信道的数据包进行相应业务处理。
[0009]另一方面,提供一种数据处理装置,所述装置包括:
[0010]监控单元,用于启动数据服务,实时监控各个信道是否接收到数据包;
[0011]判断单元,用于若任何一个信道接收到所述数据包,判断是否能获取到原子锁;
[0012]拷贝单元,用于若可以获取原子锁,创建原子锁并一次性将所有所述数据包从硬件缓冲区拷贝到用户缓冲区;
[0013]业务单元,用于根据所述硬件缓冲区和所述用户缓冲区的地址,同时获取所述各个信道的数据包进行相应业务处理。
[0014]在本发明实施例,启动数据服务,实时监控各个信道是否接收到数据包;若任何一个信道接收到所述数据包,判断是否能获取到原子锁;若可以获取原子锁,创建原子锁并一次性将所有所述数据包从硬件缓冲区拷贝到用户缓冲区;根据所述硬件缓冲区和所述用户缓冲区的地址,同时获取所述各个信道的数据包进行相应业务处理,本发明,大大减少了需要处理的数据量,大大提高数据处理效率,提高系统的稳定性。
【附图说明】
[0015]图1是本发明实施例一提供的数据处理方法的实现流程图;
[0016]图2是本发明实施例一提供的数据处理方法的数据包处理模型示意图;
[0017]图3是本发明实施例二提供的数据处理装置的具体结构图。
【具体实施方式】
[0018]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0019]在本发明实施例中,启动数据服务,实时监控各个信道是否接收到数据包;若任何一个信道接收到所述数据包,判断是否能获取到原子锁;若可以获取原子锁,创建原子锁并一次性将所有所述数据包从硬件缓冲区拷贝到用户缓冲区;根据所述硬件缓冲区和所述用户缓冲区的地址,同时获取所述各个信道的数据包进行相应业务处理。
[0020]以下结合具体实施例对本发明的实现进行详细描述:
[0021]实施例一
[0022]图1示出了本发明实施例一提供的数据处理方法的实现流程,详述如下:
[0023]需要说明的是,本发明适用于数据处理终端进行多数据同时处理,所述数据处理终端包括Demux,尤其适用于电视直播、录制、本地加密和数据监控等各种应用场景。
[0024]在步骤SlOl中,启动数据服务,实时监控各个信道是否接收到数据包。
[0025]在本实施例中,所述信道具体为有线电视电缆的各个信道。所述数据包括一个信号信道的段sect1n数据、传输流或基本码流的一种或多种。Demux启动数据服务,实时监控各个信道是否接收到数据包,若任何一个信道接收到所述数据包,执行步骤S102,若没有接收到所述数据包,则继续监控各个信道是否接收到数据包。
[0026]在步骤S102中,若任何一个信道接收到所述数据包,判断是否能获取到原子锁。
[0027]在本实施例中,所述原子锁是原子操作对数据进行保护的方式,不需要每次进内核空间,在试图上锁时利用原子比较确认是否能获取到锁,不能则直接返回,能的话才进入数据处理,处理完成则释放还原进锁前值。然后原子操作根据平台的指令进行优化,大大提高其处理速度;无论从原理及性能方面原子锁都是轻量级的操作。Demux的数据通道的操作,如创建,销毁及开启和停止通道,都必须与数据处理共用同一把锁,因为操作耗时,任务一个通道的操作都会影响到线程处理速度的降低,这里利用原子操作,处理数据的线程能快速获取到锁,也能够快速的释放锁。
[0028]在步骤S103中,若可以获取原子锁,创建原子锁并一次性将所有所述数据包从硬件缓冲区拷贝到用户缓冲区。
[0029]在本实施例中,Linux系统中分为所述硬件缓冲区和所述用户缓冲区,两个分区的地址必须进行转换才能使用。若可以获取原子锁,Demux创建原子锁并一次性将所有所述数据包从硬件缓冲区拷贝到用户缓冲区,减小一次数据拷贝,将处理硬件缓冲区中的数据包全取走进行处理,由此减小数据交互,批处理进行数据处理,减小线程间切换的频度,大大提高数据包的响应时间。
[0030]作为一个可选方案,在步骤S104之前还包括按照循环冗余校验码处理所述数据包以减少冗余数据。
[0031]具体的,将当前频点下的冗余数据包利用数据包的进行循环冗余校验码()过滤,减小冗余数据包。
[0032]在步骤S104中,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1