RS编码 基本知识 网上一大堆的介绍,这里不做复制和粘贴了。
这里针对RS编码在我的实际项目上的性能测试。
1、算法选择
RS(255,239)编码在255个符号中添加了16个纠错符号,这意味着它可以纠正多达8个错误符号(因为每个纠错符号可以纠正一个错误,但通常纠错能力会减半,所以16个纠错符号可以纠正8个错误)。
RS(255,223)编码在255个符号中添加了32个纠错符号,因此它可以纠正多达16个错误符号。
这两种算法的提供了不同的冗余度和纠错能力,更多的纠错能力意味着更多的冗余传输消耗,需要根据实际的情况而定。
2、测试平台介绍
我的测试平台为华为Atlas 200,cpu是昇腾310。其ARM能力如下:8个A55 ARM core(最大主频1.6GHz)。
3、测试
1)单包测试
包大小255字节,有效载荷239字节。
错误个数 | 编码时间us | 纠错时间us |
0 | 104 | 126 |
1 | 104 | 136 |
2 | 104 | 146 |
3 | 104 | 156 |
4 | 104 | 166 |
5 | 104 | 176 |
6 | 104 | 186 |
7 | 104 | 196 |
8 | 104 | 206 |
2)实际的业务测试
实际业务是用来传输视频的编码数据。
编码的码流:2Mbps;编码帧率:60,则每一帧的数据量为4267字节。
错误个数 | 编码时间ms | 纠错时间ms |
0 | 1.976 | 2.394 |
1 | 1.976 | 2.584 |
2 | 1.976 | 2.774 |
3 | 1.976 | 2.964 |
4 | 1.976 | 3.154 |
5 | 1.976 | 3.344 |
6 | 1.976 | 3.534 |
7 | 1.976 | 3.724 |
8 | 1.976 | 3.914 |
4、测试结论
使用rs(255,239)编码,每一帧的RS编码延时小于2ms,RS解码小于4ms,对实际的图像传输延时不会造成影响。