导出视频编码统计信息

从 Android 13 开始,应用客户端可以向视频编码器提出请求,要求导出每个已编码视频帧的编码统计信息。利用从视频编码器获取的统计信息,应用可以在编码之前优化其视频编码任务,例如多通路编码和帧预处理。

如需导出视频编码统计信息,SoC 供应商必须更改视频编码器驱动程序,如视频编码器驱动程序更新中所述。

视频编码统计信息数据

在 Android 13 中,视频编码器可导出如下表所示的统计信息数据。

编码器统计信息的名称 说明
每帧平均代码块 QP 编码到比特流中的视频帧中所有代码块 QP 的平均值
图片类型 I、P 或 B 类型

开发者可以使用 MediaFormat 开发者类检索每一帧的统计信息。

视频编码器驱动程序更新

如需支持对视频编码统计信息执行导出操作,SoC 供应商必须更改视频编码器驱动程序。Android 13 的编解码器 2.0 库中添加了以下键:

如需查看参考实现,请参阅 VideoEncodingStatisticsTest

验证

运行 VideoEncodingStatisticsTest CTS 测试以验证视频编码统计信息的平均 QP 部分是否正常运行:CTS 会对同一输入视频运行两种编码,一种采用较高的比特率,另一种采用较低的比特率。然后,CTS 会比较从这两种编码中导出的两个平均 QP 值。如果比特率较低的编码的平均 QP 高于比特率较高的编码的平均 QP,则 CTS 测试通过。

如需验证“导出视频编码统计信息”功能在启用后的关闭操作,请使用 VIDEO_ENCODING_STATISTICS_LEVEL_NONE 键,如下所示:

format.setInteger(MediaFormat.KEY_VIDEO_ENCODING_STATISTICS_LEVEL, MediaFormat.VIDEO_ENCODING_STATISTICS_LEVEL_NONE);