导出视频编码统计信息

从 Android 13 开始,应用客户端可以请求视频编码器导出每个编码视频帧的编码统计信息。借助从视频编码器获得的统计信息,应用可以优化其视频编码任务,例如多遍编码和编码前的帧预处理。

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

视频编码统计数据

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

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

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

视频编码器驱动程序的更新

为了支持导出视频编码统计信息,SoC 供应商必须更改视频编码器驱动程序。Android 13 的 Codec 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);