@[TOC](FPV Camera(RPI 3B+/Zero W+V2.1) | wfb_ng Release 23.01 | H264硬解测试)
1. 源由
- RPI Zero W基于Release 23.01版本 720P @60FPS存在异常问题;
- RPI 3B+基于Release 23.01版本 720P @60FPS存在卡顿问题;
卡顿问题源自:Mobility Radeon HD 4530 @ubuntu20.04 显卡驱动不支持[GPU无法使用]
Intel® Core™2 Duo CPU T6570 @ 2.10GHz进行软解,CPU 100%占用
- 从wfb_ng软件项目角度:硬件上推荐RPI 3,不推荐RPI Zero W;
- 从树莓派硬件角度:RPI 3和RPI Zero W的GPU都是VideoCore IV;RPI 3 的CPU会比RPI Zero W更强;
- 之前CPU软解测试情况:
FPV Camera(RPI3+V2.1) | wfb_ng Release 23.01 | ubuntu20.04 gnome软解测试
FPV Camera(RPI3+V2.1) | wfb_ng Release 23.01 | Ubuntu 20.04 xfce软解测试
- 目前,手头没有Pi4 或者 装有更强CPU的电脑;
鉴于上述情况:当地面对720P @60FPS在进行H264软解时,100%占用率导致了卡顿的问题,如果采用GPU应该至少能够更好的提升性能。
2. 现状
- RPI V2.1 Camera x 1
- RPI Zero W x 1
- RPI 3B+ x 1
- Laptop (Mobility Radeon HD 4530 + Intel® Core™2 Duo CPU T6570 @ 2.10GHz) x 1
- 1080P Display (HDMI) x 1
3. 计划
为了采用GPU来做H264解码,测试计划如下:
- FPV Camera(RPI 3B+V2.1) ==》 wfb_ng Release 23.01 ==》 RPI Zero W Mate Desktop ==》 1080P Display (HDMI)
- FPV Camera(RPI Zero W+V2.1) ==》 wfb_ng Release 23.01 ==》 RPI 3B+ Mate Desktop ==》 1080P Display (HDMI)
测试视频如下:
- FPV Camera(RPI Zero W+V2.1) | wfb_ng Release 23.01 | RPI 3B+Mate Desktop Test
- FPV Camera(RPI 3B+V2.1) | wfb_ng Release 23.01 | RPI Zero W | 720P Test
4. 分析
4.1 FPV Camera(RPI 3B+V2.1)==》RPI Zero W Mate Desktop
4.1.1 1280x720 720P 30FPS x 3张清晰延时,统计平均 173ms,最小172ms,最大173ms
CPU ~15%,MEM ~ 10%,无丢包,极少量FEC
- 第一张:1103 - 930 = 173 ms
- 第二张:702 - 530 = 172 ms
- 第三张:944 - 771 = 173ms
4.1.2 1280x720 720P 45FPS x 3张清晰延时,统计平均 145ms,最小130ms,最大174ms
CPU ~20%,MEM ~ 10%,无丢包,极少量FEC
- 第一张:1149 - 975 = 174 ms
- 第二张:840 - 710 = 130 ms
- 第三张:824 - 693 = 131 ms
4.1.3 1280x720 720P 60FPS x 3张清晰延时,统计平均 130ms,最小129ms,最大130ms
CPU ~40%,MEM ~ 10%,无丢包,极少量FEC
- 第一张:323 - 193 = 130 ms
-
第二张:461 - 331 = 130 ms
-
第三张:143 - 14 = 129 ms
4.2 FPV Camera(RPI Zero W+V2.1)==》RPI 3B+ Mate Desktop
4.2.1 1280x720 720P 45FPS x 3张清晰延时,统计平均 131ms,最小129ms,最大135ms
- 第一张:708 - 573= 135ms
- 第二张:583 - 452= 131ms
- 第三张:273 - 144 = 129 ms
4.2.2 800x600 SVGA 60FPS x 3张清晰延时,统计平均 114ms,最小87ms,最大129ms
- 第一张:1027 - 899 = 128 ms
- 第二张:147 - 60= 87 ms
- 第三张:1011 - 882 = 129 ms
4.2.3 640x480 VGA 60FPS x 3张清晰延时,统计平均 101ms,最小86ms,最大130ms
- 第一张:551 - 464 = 87 ms
- 第二张:933 - 847 = 86 ms
- 第三张:1052 - 922 = 130 ms
4.2.4 480x320 HVGA 60FPS x 3张清晰延时,统计平均 101ms,最小86ms,最大130ms
- 第一张:1033 - 947 = 86 ms
- 第二张:636 - 548 = 88 ms
- 第三张:804 - 674 = 130ms
4.3 视频延时测试结果
FPV Camera(RPI 3B+V2.1)==》RPI Zero W Mate Desktop
- 1280x720 720P 30FPS x 3张清晰延时,统计平均 173ms,最小172ms,最大173ms
- 1280x720 720P 45FPS x 3张清晰延时,统计平均 145ms,最小130ms,最大174ms
- 1280x720 720P 60FPS x 3张清晰延时,统计平均 130ms,最小129ms,最大130ms
FPV Camera(RPI Zero W+V2.1)==》RPI 3B+ Mate Desktop
- 1280x720 720P 45FPS x 3张清晰延时,统计平均 131ms,最小129ms,最大135ms
- 800x600 SVGA 60FPS x 3张清晰延时,统计平均 114ms,最小87ms,最大129ms
- 640x480 VGA 60FPS x 3张清晰延时,统计平均 101ms,最小86ms,最大130ms
- 480x320 HVGA 60FPS x 3张清晰延时,统计平均 101ms,最小86ms,最大130ms
以上结果显示:
- GPU解码不如 Intel® Core™2 Duo CPU T6570 @ 2.10GHz软解,性能更好
- 分辨率调整,对GPU编解码影响不大
- FPS对视频延迟影响明显
- GPU的使用,能节省大量CPU资源
- 对比之前软解测试结果,decoding开销耗时明显,约有~40ms(甚至更多)
5. 参考资料
【1】FPV Camera(RPI3+V2.1) | wfb_ng Release 23.01 | ubuntu20.04 gnome软解测试
【2】FPV Camera(RPI3+V2.1) | wfb_ng Release 23.01 | Ubuntu 20.04 xfce软解测试
【3】wfb-ng Release 23.01镜像无头烧录&配置(2)
【4】wfb-ng Release 23.01镜像无头烧录&配置(1)
【5】wfb-ng 锁定WiFi接口
【6】Raspbian镜像无头烧录
【7】RaspberryPI models comparison
【8】模拟FPV-肥鲨HDO2+无牙仔2+熊猫VT5804ML1+Foxeer野火 时延测试