海思3559码率调测

张开发
2026/4/3 20:34:58 15 分钟阅读
海思3559码率调测
日常开发中可见光与红外的编码经常需要配置参数对码率输出的影响。记录对比分析各个参数的影响。另外3559 本身支持8bit 的编码不支持16bit的编码。因而在进行16bit红外数据编码前需要进行转换。ProfileProfile档次定义了编码器使用了哪些编码工具和特性决定了码流的复杂度级别和解码器需要支持的功能集。在 H.265 (HEVC) 中ProfileProfile Tier色深色度采样典型应用Main ProfileMain / High8-bit4:2:0主流视频服务、硬件解码器基础支持Main 10 ProfileMain / High10-bit4:2:04K/HDR 视频HDR10、HLG、蓝光、Netflix/Apple TV码率统计时间u32StatTime的推荐值码率统计时间 u32StatTime 单位为秒(s) 码率统计时间越长 每帧图像的码率波动对于码率调节的影响越弱 码率的调节会更缓慢图像质量的波动会更轻微码率统计时间越短 每帧图像的码率波动对于码率调节的影响越强 图像码率的调节会更灵敏图像质量的波动会更剧烈。 取值范围 [1, 60]。码率统计时间是 CBR 码率控制中的一个重要参数它决定了码率调节的响应速度和稳定性。对于不同的帧率推荐的配置如下帧率 (FPS)推荐统计时间 (秒)推荐 GOP 大小说明20 FPS2-3 秒40-60 帧运动较慢场景统计窗口适中25 FPS2-3 秒50-75 帧标准广播电视帧率平衡选择50 FPS1-2 秒50-100 帧高帧率运动场景需要更快响应内容类型FPS推荐调整说明体育赛事50/60缩短至1秒需要快速响应剧烈运动宁可牺牲一点稳定性静态场景25延长至3秒画面变化小可以追求极致码率平稳低延迟直播25/50缩短至1秒需要快速调节码率以适应网络波动点播文件任意延长至3-5秒不关心实时性追求最佳压缩效率和画质稳定由于不同编码器实现和内容特性存在差异建议初始值以2秒为起点适用于 20-50 FPS 范围测试验证检查码率曲线是否平稳波动 ±10%检查画面质量是否稳定无明显闪烁微调方向码率波动大 → 增加统计时间场景切换后画质恢复慢 → 减少统计时间gop配置帧率 (FPS)GOP30 对应时长典型场景影响程度20 FPS1.5 秒监控、电影类偏短25 FPS1.2 秒广播电视、直播偏短50 FPS0.6 秒体育、游戏过短帧率推荐 GOP理由20 FPS40-50平衡编码效率和响应速度25 FPS50-75标准广播电视实践2-3秒50 FPS75-100保证编码效率1.5-2秒间隔25 FPS 以下GOP30 可接受但需配合合适的 u32StatTime50 FPS不建议 GOP30至少提高到 50-75如有特殊需求如低延迟、频繁场景切换GOP30 是合理选择但需接受 15-30% 的码率开销u32BitRate 平均 bitrate以 kbps 为单位。芯片平台码率范围 (kbps)典型应用场景推荐码率区间Hi3559AV100/Hi3559AV100ES2 ~ 614,400 (600 Mbps)8K/4K 专业摄像机10,000 ~ 200,000现象可能原因解决方案码率超出目标 ±20%u32StatTime 过短无法平滑 I 帧增大 u32StatTime 至 3-4 秒I 帧画质明显下降CBR 强制限制 I 帧码率启用 I 帧码率放宽或增大 VBV运动场景马赛克GOP30 下 P 帧码率分配不足提高目标码率 15-20%码率波动剧烈u32StatTime 过短增大 u32StatTime 或检查 VBV 配置压缩率计算可见原始数据单帧大小17.5 MB兆字节帧率25 fps 原始码率 17.5 MB/帧 × 25 帧/秒 437.5 MB/s压缩后压缩后码率17 Mbps兆比特每秒转换为兆字节17 ÷ 8 2.125 MB/s压缩率 437.5 MB/s ÷ 2.125 MB/s 205.9 倍应用场景典型压缩率说明广播级 1080p50-100 倍追求高质量网络流媒体100-200 倍平衡画质和带宽安防监控200-400 倍可接受一定画质损失实际情况206倍200倍左右处于正常范围内红外50fps 场景原始码率1.25 MB/帧 × 50 帧/秒 62.5 MB/s压缩后码率4 Mbps 0.5 MB/s压缩率62.5 ÷ 0.5 125 倍红外20fps 场景原始码率1.25 MB/帧 × 20 帧/秒 25 MB/s压缩后码率4 Mbps 0.5 MB/s压缩率25 ÷ 0.5 50 倍场景压缩率评估说明50fps125 倍✅正常高帧率场景压缩比中等20fps50 倍✅正常偏高低帧率压缩比较保守参考标准红外/热成像应用场景典型压缩率说明军用/工业级20-50 倍保留细节几乎无损安防监控50-150 倍平衡画质与存储20fps50 倍高质量配置50fps125 倍标准配置IPQpDeltaIPQpDeltaI帧和P帧的QP差值参数说明QP量化参数值越小画质越好0-51IPQpDeltaQP_P帧 QP_I帧 IPQpDelta通常配置IPQpDelta 1~3P帧QP比I帧大1~3画质稍低码率更低IPQpDelta 0I帧和P帧画质相同码率更高IPQpDelta 负数P帧画质比I帧好很少用以 I帧 QP22 为例IPQpDeltaP帧QP效果022P帧和I帧一样清晰码率最高224P帧稍模糊码率降低约10-15%426P帧明显模糊码率降低约20-30%场景推荐 IPQpDelta理由可见光17Mbps2~3纹理丰富P帧可适当压缩红外4Mbps1~2红外纹理少差值太大易出现块状模糊Annex-B 格式3559 编码后输出的格式。客户自研解码软件需要根据此格式识别关键帧并解码。16bit转8bit将图像从16bit 深度转为 8bit时直接线性压缩例如直接右移 8 位会严重丢失暗部细节并导致在标准显示器上看起来“太暗”或“对比度不对”。这是因为人眼对亮度的感知是非线性的且大多数图像数据如 sRGB、Rec.709在设计之初就假设了Gamma 校正。如果处理的是YUV400灰度图数据通常有两种情况数据是线性光Raw 传感器数据需要先做 Gamma 编码再量化到 8bit。数据已经是 Gamma 域如已经做过校正的 sRGB 或 Rec.709 数据只需要做位深压缩 抖动Dithering。以下是针对16bit to 8bit的 Gamma 相关算法实现1. 标准 Gamma 压缩算法线性光 - 8bit如果 16bit 数据代表线性光强度像素值与物理光强成正比直接存储为 8bit 会浪费大量码字在亮部暗部出现色块。需要应用Gamma 编码。常见的 Gamma 曲线如 sRGB 标准公式如下#include stdint.h #include math.h // 输入value_16bit (范围 0 - 65535) 代表线性光强度 // 输出0-255 的 Gamma 校正后的值 uint8_t gamma16_to_8(uint16_t value_16bit) { // 归一化到 [0.0, 1.0] double linear value_16bit / 65535.0; double gamma_corrected; if (linear 0.0031308) { gamma_corrected 12.92 * linear; } else { gamma_corrected 1.055 * pow(linear, 1.0/2.4) - 0.055; } // 钳位并映射到 0-255 if (gamma_corrected 0.0) gamma_corrected 0.0; if (gamma_corrected 1.0) gamma_corrected 1.0; return (uint8_t)(gamma_corrected * 255.0 0.5); }如果 16bit 数据来自相机 RAW线性光需要做一次Gamma 校正转为 8bit。如果数据已经是 16bit 的 sRGB非线性再做一次 Gamma 校正会导致画面发灰且对比度异常。场景推荐算法原因传感器 RAW 数据Gamma 2.2 曲线 量化符合人眼感知适配显示器高位深灰度图 (PNG/TIFF)抖动 线性量化保留原图的色彩空间避免引入非线性畸变实时视频处理查表法 (LUT)速度快可灵活调整对比度追求最高画质误差扩散抖动将 16bit 的平滑渐变保留在 8bit 中消除色带总结配置了bitrate字段并且配置为CBR模式就以为码率固定了然而在实际测试时发现码率还是在不断变动的而且随着测试输入的图像模拟的图像输入与实际环境输入实际还受多个参数的影响本文记录参数方便以后针对具体环境进行调测。

更多文章