CN103780352A - Rsfec解码算法的解码性能优化方法 - Google Patents
Rsfec解码算法的解码性能优化方法 Download PDFInfo
- Publication number
- CN103780352A CN103780352A CN201410036610.7A CN201410036610A CN103780352A CN 103780352 A CN103780352 A CN 103780352A CN 201410036610 A CN201410036610 A CN 201410036610A CN 103780352 A CN103780352 A CN 103780352A
- Authority
- CN
- China
- Prior art keywords
- decoding
- decoding matrix
- packet loss
- rsfec
- matrix file
- 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.)
- Granted
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种RSFEC解码算法的解码性能优化方法,包括步骤:S1、根据数据码的数量m、冗余码的数量n枚举出所有丢包的位置,并将每一丢包位置所对应的解码矩阵写入一解码矩阵文件,在系统启动时将解码矩阵文件载入缓存;S2、将每一数据码以及每一冗余码分别对应一m+n位数的二进制数中的一位,用二进制数中的1或0来表示是否丢包,以得到一长度为2m+n的指针数组,分别对应解码矩阵文件中的每一解码矩阵;S3、在丢包解码状态下,将所丢包的位置的数据码和冗余码,转换成二进制数,根据指针数组从解码矩阵文件中找到对应的解码矩阵进行解码。
Description
技术领域
本发明涉及编码技术领域,特别涉及一种RSFEC解码算法的解码性能优化方法。
背景技术
众所周知,数字节目和模拟节目相比,效果更清晰,色彩更纯净,通透性更高,画面没有杂质干扰,这都要得益于数字信号出色的抗干扰能力。在数字信号中,为了防止外界信号干扰,保护信号不变异,要进行多重的纠错码设置。数字信号在解码过程中,对错误信号十分敏感,每秒钟只要有很小的误码,就无法正常解码。而数字卫星信号之所以能顺利播放,又是得益于数字信号中的纠错码的设置。在各种纠错码的设置中,被称做FEC(ForwardError Correction)的前向纠错编码是一个非常重要的防干扰算法。采用前向误差校正FEC方法,是为了降低数字信号的误码率,提高信号传输的可靠性。
传统的FEC纠错编码算法主要应用于网络链路层传输,进行数据的检错、恢复。随着3G、广域网、卫星网下实时音视频等高实时要求数据传输的广泛应用,FEC纠错编码算法开始逐渐在会话层使用,主要处理高实时要求的基于UDP传输协议的数据传输的丢包恢复(UDP协议本身已经保障了数据没有误码),较多的采用RSFEC(Reed Solomon-Forward Error Correction)编码算法。RSFEC解码端的算法复杂度主要体现在以下两部分:1、需要根据丢包的需要进行解码矩阵的创建;2、解码计算同样是矩阵乘法计算。RSFEC编码算法随着原始数据和冗余码数量的增加,其算法的复杂度呈几何方式极剧增加,在高实时网络传输时,所带来的延迟也同样增大。当应用于实时流媒体传输时,尤其是在流媒体服务器上,以及手机端时,RSFEC解码的算法复杂度对CPU会带来一定的压力。目前大多通过尽可能降低原始数据码的数量以及冗余码的数量,以降低算法难度和延迟。
发明内容
本发明针对现有技术存在的上述不足,提供了一种RSFEC解码算法的解码性能优化方法。本发明通过以下技术方案实现:
一种RSFEC解码算法的解码性能优化方法,包括步骤:
S1、根据数据码的数量m、冗余码的数量n枚举出所有丢包的位置,并将每一丢包位置所对应的解码矩阵写入一解码矩阵文件,在系统启动时将解码矩阵文件载入缓存;
S2、将每一数据码以及每一冗余码分别对应一m+n位数的二进制数中的一位,用二进制数中的1或0来表示是否丢包,以得到一长度为2m+n的指针数组,分别对应解码矩阵文件中的每一解码矩阵;
S3、在丢包解码状态下,将所丢包的位置的数据码和冗余码,转换成二进制数,根据指针数组从解码矩阵文件中找到对应的解码矩阵进行解码。
较佳的,步骤S3中找到对应的解码矩阵进行解码包括:采用双字节无符号整形的方式进行逐字节解码,以增加解码效率。
较佳的,步骤S1中的将每一丢包位置所对应的解码矩阵写入一解码矩阵文件包括:将将每一丢包位置所对应的解码矩阵按照一长度为2m+n的指针数组的大小顺序写入解码矩阵文件,以方便查找。
较佳的,用二进制数中的1表示未丢包,0来表示丢包。
通过本发明可以有效提高RSFEC解码算法的解码效率,降低CPU的功耗。
附图说明
图1所示的是本发明的流程图。
具体实施方式
以下将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整的描述和讨论,显然,这里所描述的仅仅是本发明的一部分实例,并不是全部的实例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
为了便于对本发明实施例的理解,下面将结合附图以具体实施例为例作进一步的解释说明,且各个实施例不构成对本发明实施例的限定。
请参考图1,本发明提供的一种RSFEC解码算法的解码性能优化方法包括三个步骤:
S1、根据数据码的数量m、冗余码的数量n枚举出所有丢包的位置,并将每一丢包位置所对应的解码矩阵写入一解码矩阵文件,在系统启动时将解码矩阵文件载入缓存。
RSFEC的解码矩阵,主要是根据数据码数量、冗余码数量、数据丢失的位置来进行创建,在数据码数量、冗余码数量确定的情况下,数据丢失的位置是可以逐个枚举出来,是在一个数量范围内。以8个数据码、4个冗余码为FEC编解码组为例,可支持任意丢4个或以下的包,能够正常恢复,其所有可能性数量如下:
对于每一种丢包的可能,均有一个解码矩阵,以上为例,解码矩阵大小为8*8,以双字节无符号整形(unsigned short)方式进行逐字节解码,一个矩阵需要2*8*8字节的内存空间,将所有解码矩阵数据预先写成文件,系统启动后载入缓存,大约需要2*8*8*字节约等于10K字节的内存空间。相比较单字节解码,双字节无符号整形解码次数少一倍,可提升效率。
S2、将每一数据码以及每一冗余码分别对应一m+n位数的二进制数中的一位,用二进制数中的1或0来表示是否丢包,以得到一长度为2m+n的指针数组,分别对应解码矩阵文件中的每一解码矩阵。
以8个数据码、4个冗余码为FEC编解码组为例,每一个数据码对应二进制中一位,用1表示未丢失,用0表示已丢失,这样一个二进制的12位数据可以表示一组数据的信息是否丢包,创建一个212长度的指针数组,依次指向解码矩阵文件中对应的解码矩阵,将大量的未指向的指针赋值为空。
S3、在丢包解码状态下,将所丢包的位置的数据码和冗余码,转换成二进制数,根据指针数组从解码矩阵文件中找到对应的解码矩阵进行解码。
启动RSFEC解码器后,按照顺序读入解码矩阵文件中内的解码矩阵信息,放入指针数组中,当需要解码时,根据丢包信息,直接可以找到解码矩阵在对应的指针数组中的位置,从而可以提交解码效率。
使用本发明技术方案后,几乎可以忽略解码矩阵的创建,根据丢包的严重情况,可以降低RSFEC解码算法30%到50%的CPU损耗。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (4)
1.一种RSFEC解码算法的解码性能优化方法,其特征在于,包括步骤:
S1、根据数据码的数量m、冗余码的数量n枚举出所有丢包的位置,并将每一丢包位置所对应的解码矩阵写入一解码矩阵文件,在系统启动时将所述解码矩阵文件载入缓存;
S2、将每一所述数据码以及每一所述冗余码分别对应一m+n位数的二进制数中的一位,用所述二进制数中的1或0来表示是否丢包,以得到一长度为2m+n的指针数组,分别对应所述解码矩阵文件中的每一解码矩阵;
S3、在丢包解码状态下,将所丢包的位置的数据码和冗余码,转换成所述二进制数,根据所述指针数组从所述解码矩阵文件中找到对应的解码矩阵进行解码。
2.根据权利要求1所述的一种RSFEC解码算法的解码性能优化方法,其特征在于,步骤S3中所述找到对应的解码矩阵进行解码包括:采用双字节无符号整形的方式进行逐字节解码,以增加解码效率。
3.根据权利要求1所述的一种RSFEC解码算法的解码性能优化方法,其特征在于,步骤S1中所述的将每一丢包位置所对应的解码矩阵写入一解码矩阵文件包括:将将每一丢包位置所对应的解码矩阵按照一所述长度为2m+n的指针数组的大小顺序写入所述解码矩阵文件,以方便查找。
4.根据权利要求1所述的一种RSFEC解码算法的解码性能优化方法,其特征在于,用所述二进制数中的1表示未丢包,0来表示丢包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410036610.7A CN103780352B (zh) | 2014-01-26 | 2014-01-26 | Rsfec解码算法的解码性能优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410036610.7A CN103780352B (zh) | 2014-01-26 | 2014-01-26 | Rsfec解码算法的解码性能优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103780352A true CN103780352A (zh) | 2014-05-07 |
CN103780352B CN103780352B (zh) | 2017-02-01 |
Family
ID=50572232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410036610.7A Active CN103780352B (zh) | 2014-01-26 | 2014-01-26 | Rsfec解码算法的解码性能优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103780352B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9979983B2 (en) | 2015-03-16 | 2018-05-22 | Microsoft Technology Licensing, Llc | Application- or context-guided video decoding performance enhancements |
US10129566B2 (en) | 2015-03-16 | 2018-11-13 | Microsoft Technology Licensing, Llc | Standard-guided video decoding performance enhancements |
CN112165403A (zh) * | 2020-09-29 | 2021-01-01 | 北京视界云天科技有限公司 | Udp数据包恢复方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1175132A (zh) * | 1997-07-25 | 1998-03-04 | 复旦大学 | 里德-索罗蒙码的高速译码方法 |
US20030090945A1 (en) * | 2001-10-17 | 2003-05-15 | Kwon Hyung-Joon | Memory device for use in high-speed block pipelined Reed-Solomon decoder, method of accessing the memory device, and Reed-Solomon decoder having the memory device |
CN101262305A (zh) * | 2008-04-23 | 2008-09-10 | 中兴通讯股份有限公司 | 一种里德索罗蒙码的译码方法及装置 |
CN102170327A (zh) * | 2011-04-06 | 2011-08-31 | 烽火通信科技股份有限公司 | 超强前向纠错的硬件译码方法及装置 |
-
2014
- 2014-01-26 CN CN201410036610.7A patent/CN103780352B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1175132A (zh) * | 1997-07-25 | 1998-03-04 | 复旦大学 | 里德-索罗蒙码的高速译码方法 |
US20030090945A1 (en) * | 2001-10-17 | 2003-05-15 | Kwon Hyung-Joon | Memory device for use in high-speed block pipelined Reed-Solomon decoder, method of accessing the memory device, and Reed-Solomon decoder having the memory device |
CN101262305A (zh) * | 2008-04-23 | 2008-09-10 | 中兴通讯股份有限公司 | 一种里德索罗蒙码的译码方法及装置 |
CN102170327A (zh) * | 2011-04-06 | 2011-08-31 | 烽火通信科技股份有限公司 | 超强前向纠错的硬件译码方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9979983B2 (en) | 2015-03-16 | 2018-05-22 | Microsoft Technology Licensing, Llc | Application- or context-guided video decoding performance enhancements |
US10129566B2 (en) | 2015-03-16 | 2018-11-13 | Microsoft Technology Licensing, Llc | Standard-guided video decoding performance enhancements |
CN112165403A (zh) * | 2020-09-29 | 2021-01-01 | 北京视界云天科技有限公司 | Udp数据包恢复方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103780352B (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7447980B2 (en) | Error detection and correction in data transmission packets | |
US8046658B2 (en) | Method and device for decoding blocks encoded with an LDPC code | |
US9985657B2 (en) | Memory control module and control method | |
CN102164026A (zh) | 基于深空通信环境下的喷泉码编译方法 | |
CN103780352A (zh) | Rsfec解码算法的解码性能优化方法 | |
CN101310447B (zh) | 用于mpe-fec帧解码的存储效率擦除信息表 | |
WO2016179743A1 (zh) | 一种编码装置及方法 | |
EP2873183B1 (en) | Apparatus and method for transmitting/receiving packet in broadcasting and communication system | |
US9059735B2 (en) | Decoding method and decoding device | |
CN103220007B (zh) | 一种自适应调整子码不可靠位数的tpc迭代译码算法 | |
CN111030780A (zh) | 一种可配置并行比特分组交织器及交织方法 | |
US11973517B2 (en) | Reconfigurable FEC | |
WO2008028419A1 (fr) | Procédé et système d'entrelacement/désentrelacement dans un système de communication | |
TW200833127A (en) | DVB-H system and method for performing forward error correction | |
US9621907B2 (en) | System and method for transcoding data | |
CN105656491A (zh) | 一种多码率二元qc-ldpc码译码器及译码方法 | |
CN101588222A (zh) | 具有纠错处理功能的通讯适配器及其应用 | |
CN104021100A (zh) | 一种单片机串口接收数据的处理方法 | |
CN103986476A (zh) | 一种用于二维图形码的级联纠错编码方法和装置 | |
CN111181572A (zh) | Ldpc码字的交织映射方法及解交织解映射方法 | |
CN109495210B (zh) | 用于在无线通信系统中交织数据的方法、设备和计算机可读存储介质 | |
TWI500271B (zh) | 結合qam調變之rs碼步階解碼方法 | |
KR20230134341A (ko) | 저지연 연쇄형 fec 장치 및 방법 | |
CN104579368A (zh) | 一种信道纠错码rs码解关键方程电路 | |
CN116418458A (zh) | 一种适用于短距离高速光纤通信系统的联合编码调制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |