[发明专利]一种基于SIMD技术的加速FEC操作的方法及装置、用户设备在审
申请号: | 201710109191.9 | 申请日: | 2017-02-27 |
公开(公告)号: | CN107104940A | 公开(公告)日: | 2017-08-29 |
发明(设计)人: | 王卡风;须成忠 | 申请(专利权)人: | 深圳先进技术研究院;深圳中科捷云科技有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L1/00;G06F9/38 |
代理公司: | 深圳市科进知识产权代理事务所(普通合伙)44316 | 代理人: | 赵勍毅 |
地址: | 518055 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 simd 技术 加速 fec 操作 方法 装置 用户 设备 | ||
技术领域
本发明涉及流媒体传输技术领域,尤其涉及一种基于SIMD技术的加速FEC操作的方法及装置、用户设备。
背景技术
应用层流媒体数据传输中,为防止数据丢失,往往引入前向错误纠错(Forward Error Correction,FEC)。流媒体传输方,会用FEC算法对原始数据包进行编码,增加数据冗余度。流媒体接收方会用FEC算法对数据包解码,还原成原始数据包。在网络传输过程中,就算流失了部分数据包,接收方仍能恢复原始数据。该技术对无线视频通信至关重要。FEC编码需要针对原始数据包中的载荷数据进行密集性编码操作。如果用普通串行指令很慢,且很耗电,还会影响流媒体实时传输。
由于流媒体等这类大数据流的应用,如果是需要来回在图形处理器(Graphics Processing Unit,GPU)与CPU之间传输载荷数据,非常消耗时间。由于目前移动设备、比如手机上的GPU做通用计算能力还比较差,比如Android设备上使用开放运算语言(Open Computing Language,OpenCL)进行并行计算加速,往往得不偿失,尤其是应用层,该问题更加突出。
发明内容
本发明实施例公开了一种基于SIMD技术的加速FEC操作的方法及装置、用户设备,能够加速FEC操作,大大提升FEC算法速度。
本发明实施例第一方面公开一种基于SIMD技术的加速FEC操作的方法,包括:
发送端开始发送数据包时,先解开所述数据包;
判断所述数据包是否支持NEON引擎;
如果支持NEON引擎,则将所述数据包通过单指令多数据流(Single Instruction Multiple Data,SIMD)技术进行并行编码,并进行FEC封包生成FEC数据包;
将所述FEC数据包发送给接收端。
作为一种可选的实施方式,在本发明实施例第一方面中,所述数据包通过SIMD技术进行并行编码的步骤具体为:
将所述数据包通过SIMD技术进行异或和/或迭代的并行编码。
作为一种可选的实施方式,在本发明实施例第一方面中,所述判断数据包是否支持NEON引擎的步骤之后,所述方法还包括:
如果不支持NEON引擎,则将所述数据包通过ARM微处理器(Acorn RISC Machine,ARM)串行指令进行异或和/或迭代编码。
本发明实施例第二方面公开一种基于SIMD技术的加速FEC操作的方法,包括:
接收端接收发送端发送的FEC数据包;
判断本设备是否支持NEON引擎;
如果支持NEON引擎,则将所述FEC数据包通过SIMD技术进行并行解码,生成解码后的数据包。
作为一种可选的实施方式,在本发明实施例第二方面中,所述判断本设备是否支持NEON引擎的步骤之后,所述方法还包括:
如果不支持NEON引擎,则将所述FEC数据包通过ARM串行指令进行异或和/或迭代解码。
本发明实施例第三方面公开一种基于SIMD技术的加速FEC操作的装置,包括:
解包模块,用于开始发送数据包时,先解开所述数据包;
判断模块,用于判断所述数据包是否支持NEON引擎;
SIMD编码模块,用于当判断模块判断出所述数据包支持NEON引擎时,将所述数据包通过SIMD技术进行并行编码;
封包模块,用于将SIMD编码模块编码后的数据进行FEC封包生成FEC数据包;
发送模块,用于将封包模块封包生成的FEC数据包发送给接收端。
作为一种可选的实施方式,在本发明实施例第二方面中,所述装置还包括:
ARM编码模块,用于当判断模块判断出所述数据包不支持NEON引擎时,将则将所述数据包通过ARM串行指令进行异或和/或迭代编码。
本发明实施例第四方面公开一种基于SIMD技术的加速FEC操作的装置,包括:
接收模块,用于接收端接收发送端发送的FEC数据包;
判断模块,用于判断本设备是否支持NEON引擎;
SIMD解码模块,用于当判断模块判断出本设备支持NEON引擎时,将所述FEC数据包通过SIMD技术进行并行解码,生成解码后的数据包。
作为一种可选的实施方式,在本发明实施例第四方面中,所述装置还包括:
ARM解码模块,用于当判断模块判断出本设备不支持NEON引擎时,将所述FEC数据包通过ARM串行指令进行异或和/或迭代解码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳先进技术研究院;深圳中科捷云科技有限公司,未经深圳先进技术研究院;深圳中科捷云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710109191.9/2.html,转载请声明来源钻瓜专利网。