Skip to main content
有关视频解码和编码能力的更多信息(例如支持的 profile、level、分辨率、帧率、比特率和限制),请选择以下选项卡:
表:QCS6490 的 Adreno VPU 功能描述
功能描述编解码器备注
编码器输入颜色格式NV12 和 QC08CH.264 和 HEVC无
解码器输出颜色格式NV12、QC08C 和 QC10CH.264、HEVC 和 VP9QC10C 仅在 qcom-multimedia-proprietary-image 上受支持
旋转支持在编码帧之前进行 90、180 和 270 度旋转H.264 和 HEVC仅支持静态旋转
翻转支持在编码帧之前进行水平和垂直翻转H.264 和 HEVC支持静态和动态翻转。翻转仅在 qcom-multimedia-proprietary-image 上受支持
B 帧编码最高支持 1920 × 1088 @ 60 fps 编码H.264 和 HEVC两个 P 帧之间支持的 B 帧最大数量为一个,且仅在 qcom-multimedia-proprietary-image 上受支持
Hierarchical-P 编码最多 5 层H.264 和 HEVCHierarchical-P 编码仅在 qcom-multimedia-proprietary-image 上受支持
初始 QP 覆盖支持 I 帧、P 帧和 B 帧H.264 和 HEVC初始 QP 覆盖仅在 qcom-multimedia-proprietary-image 上受支持
Slice 编码是H.264 和 HEVC每个 slice 的比特数或每个 slice 的宏块数决定了 slice 边界支持。Slice 仅在 qcom-multimedia-proprietary-image 上受支持
帧内刷新(Intra-refresh)随机刷新模式H.264 和 HEVC
  • 仅在 8 位编码中受支持
  • 仅在 CBR 码率控制模式下受支持
  • 帧内刷新仅在 qcom-multimedia-proprietary-image 上受支持
码率控制CBR、VBR 和 MBRH.264 和 HEVC码率控制仅在 qcom-multimedia-proprietary-image 上受支持
LTR2 帧H.264 和 HEVC在 CBR 码率控制模式下受支持,且仅在 qcom-multimedia-proprietary-image 上受支持
编码器的动态属性同步帧、比特率和 fpsH.264 和 HEVC在 CBR 和 VBR 码率控制模式下受支持,且仅在 qcom-multimedia-proprietary-image 上受支持
注意:使用 Qualcomm IM SDK 的端到端功能已验证支持最高 3840 × 2160 分辨率。
表:QCS6490 的 Adreno VPU 解码器能力
解码器标准支持的 profile 和 level最小/最大分辨率、最大帧率和比特率支持的最大分辨率、帧率和比特率限制
HEVC
  • Main profile 8 位,最高 level 5.1
  • Main profile 10 位,最高 level 5.1,HLG 方案
  • 最小分辨率:
    96 x 96
  • 最大分辨率:
    4096 x 2160 或 2160x4096
  • 最大帧率:
    480 fps
  • 最大比特率:
    100 Mbps
  • 1280 x 720 @ 480 fps, 100 Mbps
  • 1920 x 1088 @ 240 fps, 100 Mbps
  • 3840 x 2160 @ 60 fps, 100 Mbps
  • 4096 x 2169 @ 60 fps, 100 Mbps
  • 每帧最多 128 个 slice
  • 基于单个 slice 的解码
H.264Constrained baseline、baseline、main、high、constrained high profile;最高 level 5.2
  • 最小分辨率:96 × 96
  • 最大分辨率:4096 × 2160 或 2160 × 4096
  • 最大帧率:480 fps
  • 最大比特率:100 Mbps
  • 1280 × 720 @ 480 fps, 100 Mbps
  • 1920 × 1088 @ 240 fps, 100 Mbps
  • 3840 × 2160 @ 60 fps, 100 Mbps
  • 4096 × 2160 @ 60 fps, 100 Mbps
  • 灵活宏块排序(FMO)
  • 任意 slice 排序(ASO)
  • 冗余 slice(RS)
  • 数据分区
  • 每帧最多 10 个 slice
  • 不支持隔行扫描内容
VP9
  • Profile 0;8 位,最高 level 5.1
  • Profile 2;10 位,最高 level 5.1,HLG/PQ 方案
  • 最小分辨率:96 × 96
  • 最大分辨率:4096 × 2160 或 2160 × 4096
  • 最大帧率:480 fps
  • 最大比特率:100 Mbps
  • 1280 × 720 @ 480 fps, 100 Mbps
  • 1920 × 1088 @ 240 fps, 100 Mbps
  • 3840 × 2160 @ 60 fps, 100 Mbps
  • 4096 × 2160 @ 60 fps, 100 Mbps
不支持 Profile 2(12 位)
表:QCS6490 的 Adreno VPU 编码器能力
编码器标准支持的 profile、level 和码率控制模式最小/最大分辨率、最大帧率和最大比特率支持的分辨率、帧率、比特率限制
H.264
  • Constrained baseline、baseline、main、high、constrained high profile;最高 level 5
  • VBR、CBR、MBR
  • 最小分辨率:128 × 128
  • 最大分辨率:4096 × 2160 或 2160 × 4096
  • 最大帧率:240 fps
  • 最大比特率:100 Mbps
  • 1280 × 720 @ 240 fps, 100 Mbps
  • 1920 × 1088 @ 120 fps, 100 Mbps
  • 3840 × 2160 @ 30 fps, 100 Mbps
  • 4096 × 2160 @ 30 fps, 100 Mbps
无
HEVC
  • Main profile 8 位,最高 level 5.0
  • Main/High tier,VBR、CBR、MBR
  • 最小分辨率:128 × 128
  • 最大分辨率:4096 × 2160 或 2160 × 4096
  • 最大帧率:240 fps
  • 最大比特率:100 Mbps
  • 1280 × 720 @ 240 fps, 100 Mbps
  • 1920 × 1088 @ 120 fps, 100 Mbps
  • 3840 × 2160 @ 30 fps, 100 Mbps
  • 4096 × 2160 @ 30 fps, 100 Mbps
仅当帧宽度为 960 时启用垂直分块(vertical tiling)

功能描述

支持的编码器功能描述如下: B 帧编码 B 帧同时使用较早的帧和未来的帧作为参考数据,以获得最高的数据压缩量。Adreno VPU 使用自适应 B 类型对帧进行编码,从而在不影响视频质量的情况下获得尽可能高的压缩率。 编码器初始 QP 覆盖 视频编码通过将信号电平映射为离散值来进行压缩。量化是一个有损过程,量化级别决定了质量与压缩率之间的权衡。编码器在开始时使用默认的量化参数(QP)。基于配置的比特率和场景复杂度,编码器通过持续监测帧间的复杂度和冗余来确定合适的 QP 值。编码器需要几秒钟才能达到稳定状态并预测出与目标比特率匹配的正确 QP 值,这一过程也称为码率收敛(rate convergence)。 Hierarchical-P 编码 在 Hierarchical-P(Hier-P)功能中,编码器将帧组织成多个层,其中一层的帧仅参考较低层的帧。最低层(也称为第 0 层或基础层)是唯一的例外。 下图显示了层编码模式:
图:Hier-P 层编码模式

图:Hier-P 层编码模式

在图中,TL-0 表示基础层,其余层表示增强层。Hier-P 提高了容错性和时间可扩展性。Hier-P 功能对于涉及信道错误的视频电话(VT)或视频会议应用非常有用。Hier-P 允许您通过有选择地丢弃增强层来控制错误传播。 Slice 编码 编码器可以使用可独立解码的块组(GOB,也称为 slice)来压缩帧。如果发生数据丢失或损坏,每个 slice 都可独立解码,并作为恢复单元。在编码帧中引入 slice 的优点如下:
  • 编码器忽略损坏的 slice 并跳到下一个 slice,从而将损坏限制在帧的一部分而不是整个帧。
  • 编码器调整 slice 的大小,使其适合网络数据包,以便于传输。
  • 编码器重新传输出错的 slice,而不是发送整个帧。
  • 应用程序使用 slice 来降低实时通信中的延迟。应用程序并行传输和解码 slice,无需等待整个帧编码完成。
slice 还可用作重新同步标记,因为当出现比特错误时,解码器可以从下一个 slice(标记)恢复。在 Qualcomm Linux 上,H.264 和 HEVC 编码器支持切片(slicing)。每个 slice 的比特数或每个 slice 的宏块数即为 slice 边界。 帧内刷新(Intra-refresh) 帧内刷新功能可减少偏好恒定比特率的流媒体和投屏应用中的信道损耗。Adreno VPU 支持随机帧内刷新模式。 视频编码器预处理 应用程序可以在编码之前使用 Adreno VPU 对 YUV 帧进行旋转或翻转。Adreno VPU 旋转或翻转 YUV 帧时不会消耗额外的功耗。 码率控制 下表列出了支持的码率控制算法: 表:支持的码率控制算法
表:支持的码率控制算法
码率控制模式描述
可变比特率(VBR)
  • 最大限度地减少逐帧视频质量波动
  • 摄像机和 Wi-Fi 显示是示例用例
恒定比特率(CBR)
  • 减少比特率波动
  • 用于存在信道带宽限制的实时通信
  • 视频电话和流媒体是示例用例
最大比特率(MBR)
  • 在保持灵活性的同时限制比特率,可能在设定的目标范围内上下波动
  • 当场景中的活动增加时,比特率在最大限制范围内增加
  • 集成智能比特分配(SBA)功能,以更低的比特率实现更好的质量
长期参考(LTR)支持 视频压缩通过消除帧内(intra-frame)和帧间(inter-frame)的冗余来实现。此前,用作推导未来帧基础的已编码帧被称为参考帧。 以下参考帧允许高级编码应用控制参考帧的存储和引用方式:
  • 短期参考(STR):编码器在参考缓冲区列表中按从最新到最旧的顺序维护最近的帧。编码器自动管理使用 STR 作为参考的帧,并在不再使用时将其从存储列表中删除。
  • 长期参考(LTR):应用程序可以保存、使用和删除的帧。LTR 帧有助于提高视频通信的质量并确保容错性。可标记为 LTR 帧的最大帧数取决于设备能力。
LTR 帧在易出错的信道中非常有用。在易出错的信道中引用 LTR 可降低因信道丢失而导致漂移错误的可能性。接收方必须确认 LTR 已成功接收,并且在发生错误时可以请求新的 LTR。网络协议具有校验和,可以与解码器损坏标志一起确认此行为。发送方会持续生成新的 LTR 帧,直到接收方确认已成功接收 LTR。 LTR 帧在包含场景切换的视频中也很有用,其中保留了较早场景的 LTR。如果该场景再次出现,则可以有效地使用该 LTR。 在新的图像组(GOP)开始时,编码器会自动填充 LTR 槽位,第一个槽位(槽位号 0)包含一个 IDR 帧。应用程序可以显式发送 LTR 标记请求,以在相应的槽位中标记 LTR 帧。 以下流程图显示了 LTR 的用法,以及如何在 H.264 或 HEVC 编码器上标记和使用 LTR 帧:
图:LTR 编码

图:LTR 编码

动态编码器属性 Adreno VPU 编码器支持动态更改比特率、帧率和同步帧等属性。此支持允许应用程序更改属性,有助于改善视觉体验、使视频数据适应网络状况,并最大限度地减少传输过程中的数据丢失。