Skip to main content
有关视频解码和编码能力的更多信息,例如支持的配置文件、级别、分辨率、帧率、比特率和限制,请选择以下选项卡:
表: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 上受支持
切片编码H.264 和 HEVC每个切片的比特数或每个切片的宏块数决定了切片边界支持。切片仅在 qcom-multimedia-proprietary-image 上受支持
帧内刷新随机刷新模式H.264 和 HEVC
  • 仅在 8 位编码中受支持
  • 仅在 CBR RC 模式下受支持
  • 帧内刷新仅在 qcom-multimedia-proprietary-image 上受支持
速率控制CBR、VBR 和 MBRH.264 和 HEVC速率控制仅在 qcom-multimedia-proprietary-image 上受支持
LTR2 帧H.264 和 HEVC在 CBR RC 模式下受支持,且仅在 qcom-multimedia-proprietary-image 上受支持
编码器动态属性同步帧、比特率和 fpsH.264 和 HEVC在 CBR 和 VBR RC 模式下受支持,且仅在 qcom-multimedia-proprietary-image 上受支持
注意:使用 Qualcomm IM SDK 的端到端功能已验证至 3840 × 2160 分辨率。
表:QCS6490 的 Adreno VPU 解码器能力
解码器标准支持的配置文件和级别最小/最大分辨率、最大帧率和比特率支持的最大分辨率、帧率和比特率限制
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 个切片
  • 基于单个切片的解码
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)
  • 任意切片排序(ASO)
  • 冗余切片(RS)
  • 数据分区
  • 每帧最多 10 个切片
  • 不支持隔行扫描内容
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 编码器能力
编码器标准支持的配置文件、级别和 RC 模式最小/最大分辨率、最大帧率和最大比特率支持的分辨率、帧率、比特率限制
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 启用垂直分块

功能描述

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

图:Hier-P 分层编码模式

在图中,TL-0 表示基础层,其余各层表示增强层。Hier-P 提升了抗错误能力和时间可扩展性。Hier-P 功能适用于涉及信道错误的视频电话(VT)或视频会议应用。Hier-P 允许您通过有选择地丢弃增强层来控制错误传播。 切片编码 编码器可以使用可独立解码的块组(GOB,也称为切片)来压缩帧。如果发生数据丢失或损坏,每个切片可独立解码,并作为恢复的单元。在编码帧中引入切片的优势包括:
  • 编码器忽略损坏的切片并跳到下一个切片,从而将损坏限制在帧的一部分而不是整帧。
  • 编码器调整切片大小以使其适配网络数据包,从而有助于传输。
  • 编码器重传出错的切片,而不是发送整帧。
  • 应用程序使用切片来降低实时通信中的延迟。应用程序并行传输和解码切片,无需等待整帧完成编码。
切片还可以充当重新同步标记,因为当出现比特错误时,解码器可以从下一个切片(标记)恢复。H.264 和 HEVC 编码器在 Qualcomm Linux 上支持切片。每个切片的比特数或每个切片的宏块数即为切片边界。 帧内刷新 帧内刷新功能可减少偏好恒定比特率的流媒体和投屏应用中的信道损耗。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 编码器支持动态更改比特率、帧率和同步帧等属性。此支持允许应用程序更改属性,有助于改善视觉体验、使视频数据适应网络状况,并最大限度减少传输过程中的数据丢失。