ESP-H264 组件

[English]

概述

ESP-H264 是乐鑫科技开发的轻量级 H.264 编码器和解码器组件,提供硬件和软件两种实现方式。硬件编码器专为 ESP32-P4 芯片设计,可实现 1080P@30fps。软件编码器基于 openh264,解码器基于 tinyH264,两者都针对内存和 CPU 使用进行了优化,确保在乐鑫芯片上的最佳性能。

功能

编码器功能

硬件编码器 (ESP32-P4)

  • 支持 Baseline Profile (最大帧大小 36864 宏块)

  • 支持宽度范围 [80, 1088] 像素,高度范围 [80, 2048] 像素

  • 支持质量优先的码率控制

  • 支持 RGB888、BGR565_BE、VUY、UYVY、YUV420(O_UYY_E_VYY) 原始数据格式

  • 支持动态调整码率、帧率、GOP、QP 等参数

  • 支持单流和双流编码器

  • 支持去块滤波器、ROI、运动矢量功能

  • 支持 SPS 和 PPS 编码

软件编码器

  • 支持 Baseline Profile (最大帧大小 36864 宏块)

  • 支持宽度和高度大于 16 像素的任意分辨率

  • 支持质量优先的码率控制

  • 支持 YUYV 和 IYUV 原始数据格式

  • 支持动态调整码率、帧率

  • 支持 SPS 和 PPS 编码

解码器功能

  • 支持 Baseline Profile (最大帧大小 36864 宏块)

  • 支持各种宽度和高度

  • 支持长期参考 (LTR) 帧

  • 支持内存管理控制操作 (MMCO)

  • 支持参考图像列表修改

  • 支持序列参数集 (SPS) 中指定的多参考帧

  • 支持 IYUV 输出格式

性能

编码性能

ESP32-P4 推荐使用硬件编码器,ESP32-S3 及其他板子使用软件编码器

硬件编码器(仅 ESP32-P4)

  • 性能功耗更佳,最大支持 1080P@30fps

  • 支持单流/双流编码

  • 支持动态调整码率、帧率、GOP、QP 等参数

  • 支持去块滤波器、ROI、运动矢量等高级功能

软件编码器(全平台)

  • 性能功耗有限,但无分辨率限制

  • 支持 YUYV 和 IYUV 格式,颜色格式更丰富

  • 支持所有乐鑫芯片平台,板子选择更多

  • 基于 OpenH264 开源项目

编码性能对比

平台

类型

最大分辨率

最大性能

备注

ESP32-S3

软件编码器

任意

320×240@11fps

ESP32-P4

硬件编码器

≤1080P

1920×1080@30fps

硬件加速

解码性能

所有板子均推荐使用软件解码器

软件解码器(全平台)

  • 性能功耗有限,但无分辨率限制

  • 支持 IYUV 输出格式

  • 支持长期参考帧、内存管理控制等高级功能

  • 基于 TinyH264 开源项目

解码性能对比

平台

类型

最大分辨率

最大性能

ESP32-S3

软件解码器

任意

320×192@27fps

ESP32-P4

软件解码器

任意

1280×720@10fps

警告

内存消耗强烈依赖于 H.264 流的分辨率和编码数据。建议根据实际应用场景调整内存分配。

小技巧

使用双任务解码器可以显著提升解码性能,特别是在高分辨率视频处理时。

组件链接

相关资源