# 高级视频规格

有关视频解码和编码功能的更多信息，如支持的 profile、level、分辨率、帧速率、码率和限制，请选择以下选项卡：

Tab QCS6490
Tab IQ-8275
Tab IQ-9075

> 
> 
> 表：QCS6490 的 Adreno VPU 功能说明
> 
> 
> | 功能 | 说明 | Codec | 备注 |
> | --- | --- | --- | --- |
> | 编码器输入颜色格式 | NV12 和 QC08C | H.264 和 HEVC | 无 |
> | 解码器输出颜色格式 | NV12、QC08C 和 QC10C | H.264、HEVC 和 VP9 | 无 |
> | 旋转 | 在对帧进行编码之前，支持 90、180 和 270 度旋转 | H.264 和 HEVC | 仅支持静态旋转 |
> | 翻转 | 在对帧进行编码之前，支持水平和垂直翻转 | H.264 和 HEVC | 支持静态和动态翻转 |
> | B 帧编码 | 最高 1920 × 1088 @ 60 fps 编码 | H.264 和 HEVC | 两个 P 帧之间支持的最大 B 帧数为 1 |
> | Hierarchical-P 编码 | 多达 5 层 | H.264 和 HEVC | 无 |
> | 初始 QP 覆盖 | 支持 I 帧、P 帧和 B 帧 | H.264 和 HEVC | 无 |
> | slice 编码 | 是 | H.264 和 HEVC | 每个 slice 的比特数或每个 slice 的宏块数决定了 slice 边界支持 |
> | Intra-refresh | 随机刷新模式 | H.264 和 HEVC | <ul class="simple"><br><li><p>仅支持 8 位编码</p></li><br><li><p>仅在 CBR RC 模式下支持</p></li><br></ul> |
> | 码率控制 | CBR、VBR 和 MBR | H.264 和 HEVC | 无 |
> | LTR | 2 个帧 | H.264 和 HEVC | 在 CBR RC 模式下支持 |
> | 编码器的动态属性 | 同步帧、码率和 fps | H.264 和 HEVC | 在 CBR 和 VBR RC 模式下支持 |
> 
> 
> 
> 
> 表：QCS6490 的 Adreno VPU 解码器功能
> 
> 
> | 解码器标准 | 支持的 profile 和 level | 最小/最大分辨率、最大帧率和码率 | 支持的最大分辨率、帧率和码率 | 限制/不支持的工具 |
> | --- | --- | --- | --- | --- |
> | HEVC | <ul class="simple"><br><li><p>Main profile 8 位，最高支持 level 5.1</p></li><br><li><p>Main profile 10 位，最高支持 level 5.1，HLG 机制</p></li><br></ul> | <ul class="simple"><br><li><p>最小分辨率：96 × 96</p></li><br><li><p>最大分辨率：4096 × 2160 或 2160 × 4096</p></li><br><li><p>最大帧率：480 fps</p></li><br><li><p>最大码率：100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 @ 480 fps, 100 Mbps</p></li><br><li><p>1920 × 1088 @ 240 fps, 100 Mbps</p></li><br><li><p>3840×2160 @ 60 fps, 100 Mbps</p></li><br><li><p>4096×2160 @ 60 fps, 100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>每帧最多 128 个 slice</p></li><br><li><p>基于单个 slice 的解码</p></li><br></ul> |
> | H.264 | Constrained baseline, baseline, main, high, constrained high profiles；最高支持 level 5.2 | <ul class="simple"><br><li><p>最小分辨率：96 × 96</p></li><br><li><p>最大分辨率：4096 × 2160 或 2160 × 4096</p></li><br><li><p>最大帧率：480 fps</p></li><br><li><p>最大码率：100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 @ 480 fps, 100 Mbps</p></li><br><li><p>1920 × 1088 @ 240 fps, 100 Mbps</p></li><br><li><p>3840×2160 @ 60 fps, 100 Mbps</p></li><br><li><p>4096×2160 @ 60 fps, 100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>灵活的宏块顺序 (FMO)</p></li><br><li><p>任意 slice 顺序 (ASO)</p></li><br><li><p>冗余 slice (RS)</p></li><br><li><p>数据分区</p></li><br><li><p>每帧最多 10 个 slice</p></li><br><li><p>不支持隔行内容</p></li><br></ul> |
> | VP9 | <ul class="simple"><br><li><p>Profile 0, 8 位，最高支持 level 5.1</p></li><br><li><p>Profile 2, 10 位，最高支持 level 5.1，HLG/PQ 机制</p></li><br></ul> | <ul class="simple"><br><li><p>最小分辨率：96 × 96</p></li><br><li><p>最大分辨率：4096 × 2160 或 2160 × 4096</p></li><br><li><p>最大帧率：480 fps</p></li><br><li><p>最大码率：100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 @ 480 fps, 100 Mbps</p></li><br><li><p>1920 × 1088 @ 240 fps, 100 Mbps</p></li><br><li><p>3840×2160 @ 60 fps, 100 Mbps</p></li><br><li><p>4096×2160 @ 60 fps, 100 Mbps</p></li><br></ul> | Profile 2；不支持 12 位 |
> 
> 
> 
> 
> 表：QCS6490 的 Adreno VPU 编码器功能
> 
> 
> | 编码器标准 | 支持的 profile、level 和 RC 模式 | 最小/最大分辨率、最大帧率和最大码率 | 支持的分辨率、帧率、码率 | 限制/不支持的工具 |
> | --- | --- | --- | --- | --- |
> | H.264 | <ul class="simple"><br><li><p>Constrained baseline, baseline, main, high, constrained high profiles；最高支持 level 5</p></li><br><li><p>VBR, CBR, MBR</p></li><br></ul> | <ul class="simple"><br><li><p>最小分辨率：128 × 128</p></li><br><li><p>最大分辨率：4096 × 2160 或 2160 × 4096</p></li><br><li><p>最大帧率：240 fps</p></li><br><li><p>最大码率：100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 @ 240 fps, 100 Mbps</p></li><br><li><p>1920×1088 @ 120 fps, 100 Mbps</p></li><br><li><p>3840 × 2160 @ 30 fps, 100 Mbps</p></li><br><li><p>4096 × 2160 @ 30 fps, 100 Mbps</p></li><br></ul> | 无 |
> | HEVC | <ul class="simple"><br><li><p>Main profile 8 位，最高 level 5.0</p></li><br><li><p>Main/High tier , VBR、CBR、MBR</p></li><br></ul> | <ul class="simple"><br><li><p>最小分辨率：128 × 128</p></li><br><li><p>最大分辨率：4096 × 2160 或 2160 × 4096</p></li><br><li><p>最大帧率：240 fps</p></li><br><li><p>最大码率：100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 @ 240 fps, 100 Mbps</p></li><br><li><p>1920×1088 @ 120 fps, 100 Mbps</p></li><br><li><p>3840 × 2160 @ 30 fps, 100 Mbps</p></li><br><li><p>4096 × 2160 @ 30 fps, 100 Mbps</p></li><br></ul> | 只有宽度 ≥ 960 的帧才能启用垂直图块 |

> 
> 
> 表：Dragonwing IQ-8275 的 Adreno VPU 功能说明
> 
> 
> | **功能** | **说明** | **Codec** | **备注** |
> | --- | --- | --- | --- |
> | 编码器输入颜色格式 | NV12 和 QC08C | H.264 和 HEVC | 无 |
> | 解码器输出颜色格式 | NV12、QC08C 和 QC10C | H.264、HEVC、VP9 和 AV1 | 无 |
> | B 帧编码 | 最大分辨率 1920 × 1088 最大帧率 120 fps 编码 | H.264 和 HEVC | 两个 P 帧之间支持的最大 B 帧数为 1 |
> | 初始 QP 覆盖 | 支持 I 帧、P 帧和 B 帧 | H.264 和 HEVC | 无 |
> | 码率控制 | CBR 和 VBR | H.264 和 HEVC | 无 |
> | 编码器的动态属性 | 同步帧、码率和 fps | H.264 和 HEVC | 在 CBR 和 VBR RC 模式下支持 |
> 
> 
> 
> Note
> 
> 
> 使用 [IM SDK](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-50/overview.html) 的端到端功能经过验证，最高分辨率可达 3840 × 2160。
> 
> 
> 
> 表：Dragonwing IQ-8275 的 Adreno VPU 解码器功能
> 
> 
> | **解码器标准** | **支持的 profile 和 level** | **最小/最大分辨率、最大帧率和最大码率** | **支持的最大分辨率、帧率和码率** | **限制/不支持的工具** |
> | --- | --- | --- | --- | --- |
> | HEVC | <ul class="simple"><br><li><p>Main profile 8 位，最高支持 level 5.1，Main tier, high tier</p></li><br><li><p>Main profile 10 位，最高支持 level 5.1，Main tier, high tier，HLG 机制</p></li><br></ul> | <ul class="simple"><br><li><p>最小分辨率：96 × 96</p></li><br><li><p>最大分辨率：4096 × 2160 或 2160 × 4096</p></li><br><li><p>最大帧率：480 fps</p></li><br><li><p>最大码率：160 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 @ 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>1920 × 1088 @ 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>3840 × 2160 @ 120 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>4096 × 2160 @ 60 fps, 120 Mbps (IBP/IPP)</p></li><br></ul> | 基于单个 slice 的解码 |
> | H.264 | Constrained baseline, baseline, main, high, constrained high profiles；最高支持 level 5.2 | <ul class="simple"><br><li><p>最小分辨率：96 × 96</p></li><br><li><p>最大分辨率：4096 × 2160 或 2160 × 4096</p></li><br><li><p>最大帧率：480 fps</p></li><br><li><p>最大码率：160 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 @ 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>1920 × 1088 @ 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>3840 × 2160 @ 120 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>4096 × 2160 @ 60 fps, 120 Mbps (IBP/IPP)</p></li><br></ul> | <ul class="simple"><br><li><p>灵活的宏块顺序 (FMO)</p></li><br><li><p>任意 slice 顺序 (ASO)</p></li><br><li><p>冗余 slice (RS)</p></li><br><li><p>数据分区</p></li><br><li><p>基于单个 slice 的解码</p></li><br><li><p>仅非逐行扫描内容，最高分辨率 1920x1088</p></li><br><li><p>尽力服务型 B 帧解码为：3840 × 2160 @ 120 fps</p></li><br></ul> |
> | VP9 | <ul class="simple"><br><li><p>Profile 0, 8 位，最高支持 level 5.1</p></li><br><li><p>Profile 2, 10 位、最高支持 level 5.1、HLG/PQ 机制</p></li><br></ul> | <ul class="simple"><br><li><p>最小分辨率：96 × 96</p></li><br><li><p>最大分辨率：4096 × 2160 或 2160 × 4096</p></li><br><li><p>最大帧率：120 fps</p></li><br><li><p>最大码率：50 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 @ 120&nbsp;fps, 50&nbsp;Mbps</p></li><br><li><p>1920 × 1088 @ 120&nbsp;fps, 50&nbsp;Mbps</p></li><br><li><p>3840 × 2160 @ 120&nbsp;fps, 50&nbsp;Mbps</p></li><br><li><p>4096 × 2160 @ 60&nbsp;fps, 50&nbsp;Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>Profile 2；不支持 12 位</p></li><br><li><p>基于单个 slice 的解码</p></li><br></ul> |
> | AV1 | <ul class="simple"><br><li><p>Main (Profile-0)</p></li><br><li><p>最高 level：5.1</p></li><br><li><p>HLG/PQ 机制</p></li><br></ul> | <ul class="simple"><br><li><p>最小分辨率：96 × 96</p></li><br><li><p>最大分辨率：4096 × 2160 或 2160 × 4096</p></li><br><li><p>最大帧率：240 fps</p></li><br><li><p>最大码率：120 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280×720 @ 240&nbsp;fps，120&nbsp;Mbps</p></li><br><li><p>1920×1088 @ 240&nbsp;fps，120&nbsp;Mbps</p></li><br><li><p>3840×2160 @ 60&nbsp;fps，120&nbsp;Mbps</p></li><br><li><p>4096×2160 @ 60&nbsp;fps，120&nbsp;Mbps</p></li><br></ul> | 基于单个 slice 的解码 |
> 
> 
> 
> 
> 表：Dragonwing IQ-8275 的 Adreno VPU 编码器功能
> 
> 
> | **编码器标准** | **支持的 profile, level 和 RC 模式** | **最小/最大分辨率、最大帧率和最大码率** | **支持的最大分辨率、帧率和码率** | **限制/不支持的工具** |
> | --- | --- | --- | --- | --- |
> | H.264 | <ul class="simple"><br><li><p>Constrained baseline, baseline, main, high, constrained high profiles；最高支持 level 5.2</p></li><br><li><p>VBR 和 CBR</p></li><br></ul> | <ul class="simple"><br><li><p>最小分辨率：128 × 128</p></li><br><li><p>最大分辨率：4096 × 2160 或 2160 × 4096</p></li><br><li><p>最大帧率：480 fps</p></li><br><li><p>最大码率：160 Mbps</p></li><br><li><p>最大运行速率：480</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 @ 480 fps, 88 Mbps</p></li><br><li><p>1920 × 1088 @ 240&nbsp;fps, 128&nbsp;Mbps</p></li><br><li><p>3840 × 2160 @ 60&nbsp;fps, 80&nbsp;Mbps</p></li><br><li><p>4096 × 2160 @ 60&nbsp;fps, 92&nbsp;Mbps</p></li><br></ul> |  |
> | HEVC | Main profile 8 位，最高支持 level 5.1，Main/High tier, VBR 和 CBR | <ul class="simple"><br><li><p>最小分辨率：96 × 96</p></li><br><li><p>最大分辨率：4096 × 2160 或 2160 × 4096</p></li><br><li><p>最大帧率：480 fps</p></li><br><li><p>最大码率：160 Mbps</p></li><br><li><p>最大运行速率：480</p></li><br><li><p>最大帧率：480 fps</p></li><br><li><p>最大码率：160 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 @ 480&nbsp;fps, 62&nbsp;Mbps</p></li><br><li><p>1920 × 1088 @ 240&nbsp;fps, 90&nbsp;Mbps</p></li><br><li><p>3840 × 2160 @ 60&nbsp;fps, 56&nbsp;Mbps</p></li><br><li><p>4096 × 2160 @ 60&nbsp;fps, 64&nbsp;Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>启用 Multislice</p></li><br></ul> |

> 
> 
> | 多信道/分辨率/fps/codec | 用例组合 | 推荐的每个会话的码率 (Mbps) | 推荐的每个会话的码率 (Mbps) | 推荐的每个会话的码率 (Mbps) | 推荐的每个会话的码率 (Mbps) |
> | --- | --- | --- | --- | --- | --- |
> | 多信道/分辨率/fps/codec | 用例组合 | H.264 (CAVLC) | H.264 (CABAC) | HEVC | AV1（仅限解码器） |
> | 分辨率 1920 × 1088，帧率 30 fps，24 路，任何支持的 codec 组合 | 仅编码 | 9.17 | 7.92 | 7.92 | 5 |
> | 分辨率 1920 × 1088，帧率 30 fps，32 路，任何支持的 codec 组合 | 仅解码 | 6.88 | 5.94 | 5.94 | – |
> | 1920 × 1088，30 fps 解码 + 1280 × 720 30 fps 编码，32 路，任何支持的 codec 组合 | 解码/编码 | 7/5 | 7/5 | 7/5 | – |
> | 分辨率 1280 × 720，帧率 30 fps，32 路，任何支持的 codec 组合 | 仅编码 | 6.88 | 5.94 | 5.94 | – |
> |  |  |  |  |  |  |
> 
> 
> 
> 
> 表：Dragonwing IQ-9075 的 Adreno VPU 功能说明
> 
> 
> | 功能 | 说明 | Codec | 备注 |
> | --- | --- | --- | --- |
> | 编码器输入颜色格式 | NV12 和 QC08C | H.264 和 HEVC | 无 |
> | 解码器输出颜色格式 | NV12、QC08C 和 QC10C | H.264、HEVC、VP9 和 AV1 | 无 |
> | B 帧编码 | 最大分辨率 3840 × 2160 (60 fps 编码) | H.264 和 HEVC | 两个 P 帧之间支持的最大 B 帧数为 1 |
> | 初始 QP 覆盖 | 支持 I 帧、P 帧和 B 帧 | H.264 和 HEVC | 无 |
> | 码率控制 | CBR 和 VBR | H.264 和 HEVC | 无 |
> | 编码器的动态属性 | 同步帧、码率和 fps | H.264 和 HEVC | 在 CBR 和 VBR RC 模式下支持 |
> 
> 
> 
> Note
> 
> 
> 使用 [Qualcomm IM SDK](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-50/overview.html) 的端到端功能经过验证，最高分辨率可达 3840 × 2160。
> 
> 
> 
> 表：Dragonwing IQ-9075 的 Adreno VPU 解码器功能
> 
> 
> | 解码器标准 | 支持的 profile 和 level | 最小/最大分辨率、最大帧率和码率 | 支持的最大分辨率、帧率和码率 | 限制/不支持的工具 |
> | --- | --- | --- | --- | --- |
> | HEVC | <ul class="simple"><br><li><p>Main profile 8 位，最高支持 level 6.2, main tier, high tier</p></li><br><li><p>Main 10 profile，最高支持 level 6.2, Main/High tier, HLG 机制</p></li><br></ul> | <ul class="simple"><br><li><p>最小分辨率：96 × 96</p></li><br><li><p>最大分辨率：8192 × 4320 或 4320 × 8192</p></li><br><li><p>最大帧率：480 fps</p></li><br><li><p>最大码率：160 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 @ 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>1920 × 1088 @ 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>3840 × 2160 @ 240 fps, 80 Mbps (IBP/IPP)</p></li><br><li><p>3840 × 2160 @ 120 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>4096 × 2160 @ 120 fps, 80 Mbps (IBP/IPP)</p></li><br><li><p>7680 × 4320 @ 30 fps, 120 Mbps (IBP/IPP)</p></li><br><li><p>7680 × 4320 @ 60 fps, 80 Mbps (IBP/IPP)</p></li><br><li><p>8192 × 4320 @ 30 fps, 120 Mbps (IBP/IPP)</p></li><br><li><p>8192×4320 @ 48 fps, 80 Mbps (IBP/IPP)</p></li><br></ul> | 基于单个 slice 的解码 |
> | H.264 | Constrained baseline, baseline, main, high, constrained high profile；最高支持 level 6.1 | <ul class="simple"><br><li><p>最小分辨率：96 × 96</p></li><br><li><p>最大分辨率：8192 × 4320 或 4320 × 8192</p></li><br><li><p>最大帧率：480 fps</p></li><br><li><p>最大码率：220 Mbps (CAVLC)、160 Mbps (CABAC)</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 @ 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>1920 × 1088 @ 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>3840 × 2160 @ 240&nbsp;fps, 80&nbsp;Mbps (IPP)</p></li><br><li><p>3840 × 2160 @ 120 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>4096 × 2160 @ 120&nbsp;fps, 80&nbsp;Mbps (IPP)</p></li><br><li><p>7680 × 4320 @ 60&nbsp;fps, 80&nbsp;Mbps (IPP)</p></li><br><li><p>7680 × 4320 @ 30 fps, 120 Mbps (IBP/IPP)</p></li><br><li><p>8192 × 4320 @ 30&nbsp;fps, 120&nbsp;Mbps (IPP)</p></li><br><li><p>8192 × 4320 @ 48&nbsp;fps, 80&nbsp;Mbps (IPP)</p></li><br></ul> | <ul class="simple"><br><li><p>灵活的宏块顺序 (FMO)</p></li><br><li><p>任意 slice 顺序 (ASO)</p></li><br><li><p>冗余 slice (RS)</p></li><br><li><p>数据分区</p></li><br><li><p>基于单个 slice 的解码</p></li><br><li><p>仅非渐进式内容最高 1920 × 1088</p></li><br><li><p>尽力服务型 B 帧解码如下：</p><br><ul><br><li><p>3840 × 2160 @ 240 fps</p></li><br><li><p>4096 × 2160 @ 120 fps</p></li><br><li><p>7680 × 4320 @ 60 fps</p></li><br><li><p>8192 × 4320 @ 30/48 fps</p></li><br></ul><br></li><br></ul> |
> | VP9 | <ul class="simple"><br><li><p>Profile 0, 8 位，最高支持 level 5.1</p></li><br><li><p>Profile 2, 10 位、最高支持 level 5.1、HLG/PQ 机制</p></li><br></ul> | <ul class="simple"><br><li><p>最小分辨率：96 × 96</p></li><br><li><p>最大分辨率：4096 × 2304 或 2304 × 4096</p></li><br><li><p>最大帧率：120 fps</p></li><br><li><p>最大码率：100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280×720 @ 120 fps, 100 Mbps</p></li><br><li><p>1920×1088 @ 120 fps, 100 Mbps</p></li><br><li><p>3840×2160 @ 60 fps, 100 Mbps</p></li><br><li><p>3840×2160 @ 240&nbsp;fps, 30&nbsp;Mbps</p></li><br><li><p>4096×2160 @ 60 fps, 100 Mbps</p></li><br><li><p>4096×2304 @ 60&nbsp;fps, 100&nbsp;Mbps</p></li><br></ul> | Profile 2；不支持 12 位 |
> | AV1 | <ul class="simple"><br><li><p>Main (Profile-0), 8 位和 10 位</p></li><br><li><p>最高 level：6.1</p></li><br><li><p>HLG/PQ 机制</p></li><br></ul> | <ul class="simple"><br><li><p>最小分辨率：96 × 96</p></li><br><li><p>最大分辨率：8192 × 4320 或 4320 × 8192</p></li><br><li><p>最大帧率：480 fps</p></li><br><li><p>最大码率：120 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 @ 480&nbsp;fps, 120&nbsp;Mbps</p></li><br><li><p>1920 × 1088 @ 480&nbsp;fps, 120&nbsp;Mbps</p></li><br><li><p>3840 × 2160 @ 240&nbsp;fps, 120&nbsp;Mbps</p></li><br><li><p>3840 × 2160 @ 120&nbsp;fps, 120&nbsp;Mbps</p></li><br><li><p>4096 × 2160 @ 120&nbsp;fps, 120&nbsp;Mbps</p></li><br><li><p>7680 × 4320 @ 30 fps, 120 Mbps</p></li><br><li><p>7680 × 4320 @ 60&nbsp;fps, 120 Mbps</p></li><br><li><p>8192 × 4320 @ 30 fps, 120 Mbps</p></li><br><li><p>8192 × 4320 @ 48&nbsp;fps, 120 Mbps</p></li><br></ul> | 基于单个 slice 的解码 |
> 
> 
> 
> 
> 表：Dragonwing IQ-9075 的 Adreno VPU 编码器功能
> 
> 
> | 编码器标准 | 支持的 profile, level 和 RC 模式 | 最小/最大分辨率、最大帧率和最大码率 | 支持的分辨率、帧率、码率 | 限制/不支持的工具 |
> | --- | --- | --- | --- | --- |
> | H.264 | <ul class="simple"><br><li><p>Constrained baseline、baseline、main、high、constrained high profile；最高支持 level 6.0</p></li><br><li><p>VBR 和 CBR</p></li><br></ul> | <ul class="simple"><br><li><p>最小分辨率：128 × 128</p></li><br><li><p>最大分辨率：8192 × 4320 或 4320 × 8192</p></li><br><li><p>最大帧率：480 fps</p></li><br><li><p>最大码率：220 Mbps (CAVLC)、160 Mbps (CABAC)</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 @ 480 fps, 160 Mbps</p></li><br><li><p>1920 × 1088 @ 480 fps, 160 Mbps</p></li><br><li><p>3840 × 2160 @ 120 fps, 160 Mbps</p></li><br><li><p>7680 × 4320 @ 30 fps, 160 Mbps</p></li><br></ul> | 每个缓存的单个编码 slice 传输 |
> | HEVC | <ul class="simple"><br><li><p>Main profile 8 位，最高支持 level 6.0、6.1、Main/High tier</p></li><br><li><p>VBR 和 CBR</p></li><br></ul> | <ul class="simple"><br><li><p>最小分辨率：96 × 96</p></li><br><li><p>最大分辨率：8192 × 4320 或 4320 × 8192</p></li><br><li><p>最大帧率：480 fps</p></li><br><li><p>最大码率：160 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 @ 480 fps, 160 Mbps</p></li><br><li><p>1920 × 1088 @ 480 fps, 160 Mbps</p></li><br><li><p>3840 × 2160 @ 120 fps, 160 Mbps</p></li><br><li><p>7680 × 4320 @ 30 fps, 160 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>每个缓存的单个编码 slice 传输</p></li><br><li><p>启用 Multislice</p></li><br></ul> |

## 功能介绍

支持的编码器功能描述如下：

**B 帧编码**

B 帧使用较早和未来的帧作为参考数据来获得最高的数据压缩量。Adreno VPU 使用自适应 B 类型对帧进行编码，以获得最高的压缩率，而不会影响视频质量。

**编码器初始 QP 覆盖**

视频编码通过将信号电平映射为离散值来实现压缩。量化是一个有损过程，量化级别决定了质量与压缩。编码器从默认的量化参数 (QP) 开始。根据配置的码率和场景复杂度，编码器通过持续监控跨帧的复杂度和冗余来获得正确的 QP 值。编码器需要几秒钟才能达到稳定状态并预测与目标码率匹配的正确 QP 值，这也称为速率收敛。

**Hierarchical-P 编码**

在 Hierarchical-P (Hier-P) 功能中，编码器将帧组织成多个层，其中某一层的帧仅引用较低层的帧。最低层也称为 layer 0 或 base layer，是唯一的例外。

下图显示了 Hier-P 功能的层编码模式：

<!--?xml version="1.0" encoding="UTF-8"?-->
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="683.221260070800781" height="415.809112548828125" viewbox="0 0 683.221260070800781 415.809112548828125" aria-label="../../_images/Layer-encoding.svg" class="align-center">
  <defs>
    <style>.svg-1 .cls-1 { fill: #8d8df7 }
.svg-1 .cls-2 { fill: #fff }
.svg-1 .cls-3 { fill: #7c8aa3 }
.svg-1 .cls-4 { fill: #d2d7e1 }
.svg-1 .cls-5 { fill: #2a2aea }
.svg-1 .cls-6 { stroke: #040a40 }
.svg-1 .cls-6,.svg-1 .cls-7 { fill: none; stroke-miterlimit: 10 }
.svg-1 .cls-7 { stroke: #2a2aea }
.svg-1 .cls-8 { fill: #040a40 }
.svg-1 .cls-9 { fill: #f8cb9c }
.svg-1 .cls-10 { fill: #fafafa }</style>
  </defs>
  <g>
    <rect class="cls-10" x=".499763488769531" y=".499786376953125" width="682.22119140625" height="414.8095703125" rx="7.499999999999946" ry="7.499999999999946"></rect>
    <path class="cls-4" d="M675.221260070800781,1c3.85980224609375,0,7,3.140182495117188,7,7v399.809112548828125c0,3.85980224609375-3.14019775390625,7-7,7H8c-3.859817504882812,0-7-3.14019775390625-7-7V8c0-3.859817504882812,3.140182495117188-7,7-7h667.221260070800781M675.221260070800781,0H8C3.58172607421875,0,0,3.58172607421875,0,8v399.809112548828125c0,4.41827392578125,3.58172607421875,8,8,8h667.221260070800781c4.41827392578125,0,8-3.58172607421875,8-8V8c0-4.41827392578125-3.58172607421875-8-8-8h0Z"></path>
  </g>
  <rect class="cls-4" x="15.00000382010785" y="128.024131863078765" width="653.221276595745621" height="63.644444444445071"></rect>
  <rect class="cls-9" x="15.00000382010785" y="197.951303627248308" width="653.221276595745621" height="63.644444444445071"></rect>
  <rect class="cls-3" x="15.00000382010785" y="268.395748071692651" width="653.221276595745621" height="63.644444444444161"></rect>
  <rect class="cls-1" x="15.00000382010785" y="337.164680887373834" width="653.221276595745621" height="63.644444444444161"></rect>
  <polygon class="cls-8" points="347.328136207815987 197.951303627248308 298.972580652260149 197.951303627248308 283.150358430037159 261.595748071693379 331.505913985592997 261.595748071693379 347.328136207815987 197.951303627248308"></polygon>
  <polygon class="cls-8" points="208.350358430036067 268.395748071692651 159.994802874482957 268.395748071692651 144.172580652259967 332.040192516136813 192.528136207814896 332.040192516136813 208.350358430036067 268.395748071692651"></polygon>
  <polygon class="cls-8" points="125.87026393817996 337.164680887373834 77.51470838262594 337.164680887373834 61.69248616040295 400.809125331819814 110.048041715957879 400.809125331819814 125.87026393817996 337.164680887373834"></polygon>
  <polygon class="cls-8" points="266.77784362712373 337.164680887373834 218.422288071568801 337.164680887373834 202.60006584934581 400.809125331819814 250.955621404902558 400.809125331819814 266.77784362712373 337.164680887373834"></polygon>
  <polygon class="cls-8" points="392.238100613929419 337.164680887373834 343.88254505837358 337.164680887373834 328.060322836152409 400.809125331819814 376.415878391708247 400.809125331819814 392.238100613929419 337.164680887373834"></polygon>
  <polygon class="cls-8" points="539.219774535322358 337.164680887373834 490.864218979764701 337.164680887373834 475.041996757543529 400.809125331819814 523.397552313099368 400.809125331819814 539.219774535322358 337.164680887373834"></polygon>
  <polygon class="cls-8" points="473.392412375080312 268.395748071692651 425.036856819522654 268.395748071692651 409.214634597301483 332.040192516136813 457.570190152857322 332.040192516136813 473.392412375080312 268.395748071692651"></polygon>
  <polygon class="cls-5" points="85.429087350924419 128.024131863078765 37.073531795368581 128.024131863078765 21.2513095731465 191.668576307523836 69.606865128702339 191.668576307523836 85.429087350924419 128.024131863078765"></polygon>
  <polygon class="cls-8" points="609.226142949344649 128.024131863078765 560.870587393790629 128.024131863078765 545.04836517156582 191.668576307523836 593.403920727123477 191.668576307523836 609.226142949344649 128.024131863078765"></polygon>
  <path class="cls-2" d="M54.414314270019531,153.147247314453125v11.375h-2.1484375v-11.375h2.1484375Z"></path>
  <path class="cls-2" d="M577.465095520019531,160.373809814453125h-2.9296875v-1.6875h2.9296875c.4794921875,0,.8681640625-.0791015625,1.16796875-.23828125.2998046875-.15869140625.51953125-.37744140625.66015625-.65625.140625-.2783203125.2109375-.59765625.2109375-.95703125,0-.3486328125-.0703125-.67431640625-.2109375-.9765625-.140625-.3017578125-.3603515625-.546875-.66015625-.734375s-.6884765625-.28125-1.16796875-.28125h-2.2265625v9.6796875h-2.1484375v-11.375h4.375c.8857421875,0,1.6416015625.15771484375,2.26953125.47265625.6279296875.3154296875,1.1064453125.75,1.4375,1.3046875s.49609375,1.1865234375.49609375,1.89453125c0,.734375-.1650390625,1.3671875-.49609375,1.8984375s-.8095703125.9404296875-1.4375,1.2265625c-.6279296875.28662109375-1.3837890625.4296875-2.26953125.4296875Z"></path>
  <path class="cls-2" d="M315.567634582519531,230.301055908203125h-2.9296875v-1.6875h2.9296875c.478515625,0,.8671875-.0791015625,1.16796875-.23828125.298828125-.15869140625.51953125-.37744140625.66015625-.65625.140625-.2783203125.2109375-.59765625.2109375-.95703125,0-.3486328125-.0703125-.67431640625-.2109375-.9765625-.140625-.3017578125-.361328125-.546875-.66015625-.734375-.30078125-.1875-.689453125-.28125-1.16796875-.28125h-2.2265625v9.6796875h-2.1484375v-11.375h4.375c.884765625,0,1.640625.15771484375,2.26953125.47265625.626953125.3154296875,1.10546875.75,1.4375,1.3046875.330078125.5546875.49609375,1.1865234375.49609375,1.89453125,0,.734375-.166015625,1.3671875-.49609375,1.8984375-.33203125.53125-.810546875.9404296875-1.4375,1.2265625-.62890625.28662109375-1.384765625.4296875-2.26953125.4296875Z"></path>
  <path class="cls-2" d="M176.589607238769531,300.745880126953125h-2.9296875v-1.6875h2.9296875c.47900390625,0,.8681640625-.0791015625,1.16796875-.23828125.29931640625-.1591796875.51953125-.3779296875.66015625-.65625s.2109375-.59765625.2109375-.95703125c0-.3486328125-.0703125-.6748046875-.2109375-.9765625s-.36083984375-.546875-.66015625-.734375c-.2998046875-.1875-.68896484375-.28125-1.16796875-.28125h-2.2265625v9.6796875h-2.1484375v-11.375h4.375c.88525390625,0,1.6416015625.1572265625,2.26953125.47265625.62744140625.3154296875,1.1064453125.75,1.4375,1.3046875.33056640625.5546875.49609375,1.1865234375.49609375,1.89453125,0,.734375-.16552734375,1.3671875-.49609375,1.8984375-.3310546875.53125-.81005859375.9404296875-1.4375,1.2265625-.6279296875.2861328125-1.38427734375.4296875-2.26953125.4296875Z"></path>
  <path class="cls-2" d="M94.109626770019531,369.514434814453125h-2.9296875v-1.6875h2.9296875c.47900390625,0,.8681640625-.0791015625,1.16796875-.23828125.29931640625-.158203125.51953125-.376953125.66015625-.65625.140625-.2783203125.2109375-.59765625.2109375-.95703125,0-.3486328125-.0703125-.673828125-.2109375-.9765625-.140625-.3017578125-.36083984375-.546875-.66015625-.734375-.2998046875-.1875-.68896484375-.28125-1.16796875-.28125h-2.2265625v9.6796875h-2.1484375v-11.375h4.375c.88525390625,0,1.6416015625.158203125,2.26953125.47265625.62744140625.3154296875,1.1064453125.75,1.4375,1.3046875.33056640625.5546875.49609375,1.1865234375.49609375,1.89453125,0,.734375-.16552734375,1.3671875-.49609375,1.8984375-.3310546875.53125-.81005859375.9404296875-1.4375,1.2265625-.6279296875.287109375-1.38427734375.4296875-2.26953125.4296875Z"></path>
  <path class="cls-2" d="M235.016853332519531,369.513458251953125h-2.9296875v-1.6875h2.9296875c.4794921875,0,.8681640625-.0791015625,1.16796875-.23828125.2998046875-.158203125.51953125-.376953125.66015625-.65625.140625-.2783203125.2109375-.59765625.2109375-.95703125,0-.3486328125-.0703125-.673828125-.2109375-.9765625-.140625-.3017578125-.3603515625-.546875-.66015625-.734375s-.6884765625-.28125-1.16796875-.28125h-2.2265625v9.6796875h-2.1484375v-11.375h4.375c.8857421875,0,1.6416015625.158203125,2.26953125.47265625.6279296875.3154296875,1.1064453125.75,1.4375,1.3046875s.49609375,1.1865234375.49609375,1.89453125c0,.734375-.1650390625,1.3671875-.49609375,1.8984375s-.8095703125.9404296875-1.4375,1.2265625c-.6279296875.287109375-1.3837890625.4296875-2.26953125.4296875Z"></path>
  <path class="cls-2" d="M360.477790832519531,369.514434814453125h-2.9296875v-1.6875h2.9296875c.478515625,0,.8681640625-.0791015625,1.16796875-.23828125.298828125-.158203125.51953125-.376953125.66015625-.65625.140625-.2783203125.2109375-.59765625.2109375-.95703125,0-.3486328125-.0703125-.673828125-.2109375-.9765625-.140625-.3017578125-.361328125-.546875-.66015625-.734375-.2998046875-.1875-.689453125-.28125-1.16796875-.28125h-2.2265625v9.6796875h-2.1484375v-11.375h4.375c.884765625,0,1.6416015625.158203125,2.26953125.47265625.626953125.3154296875,1.1064453125.75,1.4375,1.3046875.330078125.5546875.49609375,1.1865234375.49609375,1.89453125,0,.734375-.166015625,1.3671875-.49609375,1.8984375-.3310546875.53125-.810546875.9404296875-1.4375,1.2265625-.6279296875.287109375-1.384765625.4296875-2.26953125.4296875Z"></path>
  <path class="cls-2" d="M441.632087707519531,300.745880126953125h-2.9296875v-1.6875h2.9296875c.478515625,0,.8681640625-.0791015625,1.16796875-.23828125.298828125-.1591796875.51953125-.3779296875.66015625-.65625s.2109375-.59765625.2109375-.95703125c0-.3486328125-.0703125-.6748046875-.2109375-.9765625s-.361328125-.546875-.66015625-.734375c-.2998046875-.1875-.689453125-.28125-1.16796875-.28125h-2.2265625v9.6796875h-2.1484375v-11.375h4.375c.884765625,0,1.6416015625.1572265625,2.26953125.47265625.626953125.3154296875,1.1064453125.75,1.4375,1.3046875.330078125.5546875.49609375,1.1865234375.49609375,1.89453125,0,.734375-.166015625,1.3671875-.49609375,1.8984375-.3310546875.53125-.810546875.9404296875-1.4375,1.2265625-.6279296875.2861328125-1.384765625.4296875-2.26953125.4296875Z"></path>
  <path class="cls-2" d="M507.458259582519531,369.514434814453125h-2.9296875v-1.6875h2.9296875c.4794921875,0,.8681640625-.0791015625,1.16796875-.23828125s.51953125-.3779296875.66015625-.65625.2109375-.59765625.2109375-.95703125c0-.3486328125-.0703125-.6748046875-.2109375-.9765625s-.3603515625-.546875-.66015625-.734375-.6884765625-.28125-1.16796875-.28125h-2.2265625v9.6796875h-2.1484375v-11.375h4.375c.8857421875,0,1.6416015625.1572265625,2.26953125.47265625s1.1064453125.75,1.4375,1.3046875.49609375,1.1865234375.49609375,1.89453125c0,.734375-.1650390625,1.3671875-.49609375,1.8984375s-.8095703125.9404296875-1.4375,1.2265625-1.3837890625.4296875-2.26953125.4296875Z"></path>
  <g>
    <path class="cls-7" d="M61.692481994628906,128.024139404296875c39.555618286132812-13.763916015625,57.28582763671875-4.868469238280341,64.177780151367188,0,33.340545654296875,23.551666259765625,28.61590576171875,105.14459228515625-20.086227416992188,204.003204345703125"></path>
    <polygon class="cls-5" points="102.629371643066406 329.20947265625 103.221275329589844 337.1646728515625 109.815345764160156 332.675384521484375 102.629371643066406 329.20947265625"></polygon>
  </g>
  <g>
    <path class="cls-7" d="M61.692481994628906,128.024139404296875c33.484283447265625-18.4146728515625,73.038864135742188-18.957122802734375,101.195465087890625,0,38.28216552734375,25.7744140625,51.94354248046875,85.204132080078125,23.762115478515625,135.432220458984375"></path>
    <polygon class="cls-5" points="183.762062072753906 260.418670654296875 183.723762512207941 268.395751953125 190.651832580566406 264.441314697265625 183.762062072753906 260.418670654296875"></polygon>
  </g>
  <g>
    <path class="cls-7" d="M61.692481994628906,128.024139404296875c53.33465576171875-41.689254760742188,123.17559814453125-51.270614624023438,179.86212158203125-24.13525390625,51.22467041015625,24.52081298828125,73.554656982421875,70.334075927734375,81.03271484375,88.959381103515625"></path>
    <polygon class="cls-5" points="318.421974182128906 193.201995849609375 324.631324768066406 198.209930419921875 325.864723205566406 190.32867431640625 318.421974182128906 193.201995849609375"></polygon>
  </g>
  <g>
    <path class="cls-7" d="M61.692481994628906,128.024139404296875c15.403060913085938-16.384765625,109.405426025390625-113.075637817382812,261.491546630859375-113.024139404296875,142.3056640625.048187255859375,233.70672607421875,84.761627197266534,257.5240478515625,109.137786865234375"></path>
    <polygon class="cls-5" points="576.987800598144531 126.153411865234375 584.675544738769531 128.28277587890625 582.676826477050781 120.56005859375 576.987800598144531 126.153411865234375"></polygon>
  </g>
  <g>
    <path class="cls-6" d="M183.723762512207941,268.395751953125c3.31689453125-2.588897705078125,22.246704101561591-16.931549072265625,39.164184570311591-11.17352294921875,19.167846679688409,6.52392578125,32.911285400390625,37.884735107421875,21.52777099609375,74.51092529296875"></path>
    <polygon class="cls-8" points="240.946022033691406 329.351348876953125 242.554603576660156 337.1646728515625 248.517555236816406 331.865753173828125 240.946022033691406 329.351348876953125"></polygon>
  </g>
  <g>
    <path class="cls-6" d="M324.631324768066406,198.209930419921875c24.52142333984375-14.7215576171875,36.87200927734375-11.9256591796875,42.701080322265625-8.987701416015625,23.451995849609375,11.82025146484375,24.436737060546875,67.821563720703125,4.197509765625,142.409149169921875"></path>
    <polygon class="cls-8" points="367.935249328613281 329.459075927734375 369.999061584472656 337.1646728515625 375.641181945800781 331.52532958984375 367.935249328613281 329.459075927734375"></polygon>
  </g>
  <g>
    <path class="cls-6" d="M448.665718078613281,268.395751953125c4.74713134765625-3.906707763671875,21.53753662109375-16.802154541015625,38.22222900390625-12.525115966796875,20.969482421875,5.375396728515625,37.95849609375,36.898406982421875,30.15838623046875,76.401336669921875"></path>
    <polygon class="cls-8" points="513.332160949707031 330.282440185546875 515.785041809082031 337.873138427734375 521.133125305175781 331.954254150390625 513.332160949707031 330.282440185546875"></polygon>
  </g>
  <g>
    <path class="cls-6" d="M324.631324768066406,197.9512939453125c6.694549560546875-8.122161865234375,24.226806640625-26.956512451170966,47.5899658203125-27.395721435545966,33.126434326171875-.622741699219659,69.546356201171875,35.894775390625,75.907623291015625,92.124176025389716"></path>
    <polygon class="cls-8" points="443.935310363769531 261.972442626953125 448.665718078613281 268.395751953125 451.864265441894531 261.087890625 443.935310363769531 261.972442626953125"></polygon>
  </g>
  <g>
    <path d="M628.207283020019531,154.373809814453125h-3.65625v10.1484375h-1.4921875v-10.1484375h-3.6484375v-1.2265625h8.796875v1.2265625Z"></path>
    <path d="M631.402595520019531,163.295684814453125h5.390625v1.2265625h-6.8984375v-11.375h1.5078125v10.1484375Z"></path>
    <path d="M645.246345520019531,160.280059814453125h-3.8125v-1.1796875h3.8125v1.1796875Z"></path>
    <path d="M657.597908020019531,159.670684814453125c0,1.69287109375-.2890625,2.95068359375-.8671875,3.7734375-.578125.8232421875-1.482421875,1.234375-2.7109375,1.234375-1.2138671875,0-2.1123046875-.40234375-2.6953125-1.20703125-.583984375-.8046875-.8857421875-2.00634765625-.90625-3.60546875v-1.9296875c0-1.671875.2890625-2.9140625.8671875-3.7265625s1.484375-1.21875,2.71875-1.21875c1.2236328125,0,2.125.39208984375,2.703125,1.17578125.578125.7841796875.875,1.99365234375.890625,3.62890625v1.875ZM656.152595520019531,157.694122314453125c0-1.2236328125-.171875-2.11572265625-.515625-2.67578125-.34375-.5595703125-.888671875-.83984375-1.6328125-.83984375-.740234375,0-1.279296875.27880859375-1.6171875.8359375-.3388671875.5576171875-.513671875,1.4140625-.5234375,2.5703125v2.3125c0,1.2294921875.177734375,2.13671875.53515625,2.72265625.3564453125.5859375.896484375.87890625,1.62109375.87890625.712890625,0,1.2431640625-.27587890625,1.58984375-.828125.345703125-.5517578125.52734375-1.421875.54296875-2.609375v-2.3671875Z"></path>
  </g>
  <g>
    <path d="M628.207283020019531,224.300567626953125h-3.65625v10.1484375h-1.4921875v-10.1484375h-3.6484375v-1.2265625h8.796875v1.2265625Z"></path>
    <path d="M631.402595520019531,233.222442626953125h5.390625v1.2265625h-6.8984375v-11.375h1.5078125v10.1484375Z"></path>
    <path d="M645.246345520019531,230.206817626953125h-3.8125v-1.1796875h3.8125v1.1796875Z"></path>
    <path d="M655.215095520019531,234.449005126953125h-1.453125v-9.6328125l-2.9140625,1.0703125v-1.3125l4.140625-1.5546875h.2265625v11.4296875Z"></path>
  </g>
  <g>
    <path class="cls-2" d="M628.207283020019531,294.744903564453125h-3.65625v10.1484375h-1.4921875v-10.1484375h-3.6484375v-1.2265625h8.796875v1.2265625Z"></path>
    <path class="cls-2" d="M631.402595520019531,303.666778564453125h5.390625v1.2265625h-6.8984375v-11.375h1.5078125v10.1484375Z"></path>
    <path class="cls-2" d="M645.246345520019531,300.651153564453125h-3.8125v-1.1796875h3.8125v1.1796875Z"></path>
    <path class="cls-2" d="M657.918220520019531,304.893341064453125h-7.453125v-1.0390625l3.9375-4.375c.5830078125-.6611328125.9853515625-1.19921875,1.20703125-1.61328125.220703125-.4140625.33203125-.8427734375.33203125-1.28515625,0-.59375-.1796875-1.0810546875-.5390625-1.4609375s-.8388671875-.5703125-1.4375-.5703125c-.71875,0-1.27734375.2041015625-1.67578125.61328125s-.59765625.9775390625-.59765625,1.70703125h-1.4453125c0-1.046875.3369140625-1.8935546875,1.01171875-2.5390625.673828125-.6455078125,1.576171875-.96875,2.70703125-.96875,1.056640625,0,1.892578125.27734375,2.5078125.83203125.6142578125.5546875.921875,1.29296875.921875,2.21484375,0,1.1201171875-.7138671875,2.453125-2.140625,4l-3.046875,3.3046875h5.7109375v1.1796875Z"></path>
  </g>
  <g>
    <path class="cls-2" d="M628.207283020019531,363.514434814453125h-3.65625v10.1484375h-1.4921875v-10.1484375h-3.6484375v-1.2265625h8.796875v1.2265625Z"></path>
    <path class="cls-2" d="M631.402595520019531,372.436309814453125h5.390625v1.2265625h-6.8984375v-11.375h1.5078125v10.1484375Z"></path>
    <path class="cls-2" d="M645.246345520019531,369.420684814453125h-3.8125v-1.1796875h3.8125v1.1796875Z"></path>
    <path class="cls-2" d="M652.566658020019531,367.272247314453125h1.0859375c.681640625-.0107421875,1.21875-.1904296875,1.609375-.5390625s.5859375-.8203125.5859375-1.4140625c0-1.3330078125-.6640625-2-1.9921875-2-.625,0-1.1240234375.1787109375-1.49609375.53515625-.373046875.3564453125-.55859375.8291015625-.55859375,1.41796875h-1.4453125c0-.9013671875.3291015625-1.6494140625.98828125-2.24609375.658203125-.5966796875,1.49609375-.89453125,2.51171875-.89453125,1.072265625,0,1.9140625.2841796875,2.5234375.8515625s.9140625,1.3564453125.9140625,2.3671875c0,.4951171875-.16015625.9736328125-.48046875,1.4375s-.7568359375.8095703125-1.30859375,1.0390625c.625.1982421875,1.107421875.5263671875,1.44921875.984375.3408203125.4580078125.51171875,1.0185546875.51171875,1.6796875,0,1.0205078125-.333984375,1.8310546875-1,2.4296875-.6669921875.5986328125-1.5341796875.8984375-2.6015625.8984375-1.068359375,0-1.9365234375-.2890625-2.60546875-.8671875-.669921875-.578125-1.00390625-1.3408203125-1.00390625-2.2890625h1.453125c0,.5986328125.1953125,1.078125.5859375,1.4375s.9140625.5390625,1.5703125.5390625c.697265625,0,1.2314453125-.1826171875,1.6015625-.546875.369140625-.3642578125.5546875-.8876953125.5546875-1.5703125,0-.6611328125-.203125-1.1689453125-.609375-1.5234375s-.9921875-.5361328125-1.7578125-.546875h-1.0859375v-1.1796875Z"></path>
  </g>
</svg>
**图：Hier-P 层编码模式**

在上图中，TL-0 表示基础层，其余层表示增强层。Hier-P 完善了错误恢复和时域可扩展性。Hier-P 功能对于发生信道错误的视频电话 (VT) 或视频会议应用程序非常有用。Hier-P 可用来通过有选择地丢弃增强层来控制错误进一步扩散。

**slice 编码**

编码器可以使用可独立解码的块组 (GOB)（也称为 slice）来压缩帧。存在数据丢失或损坏时，每个 slice 均可独立解码，并可用作恢复单元。在编码帧中引入 slice 的优点是：

- 编码器忽略损坏的 slice 并跳到下一个 slice，从而将损坏限制在帧的一部分而不是整个帧。
- 编码器调整 slice 的大小以使其适合网络数据包，以帮助传输。
- 编码器重新传输错误的 slice，而不是发送整个帧。
- 应用程序使用 slice 来减少实时通信中的延迟。应用程序并行传输和解码 slice，无需等待整个帧编码。

分片还可以用作重新同步标记，因为当出现位错误时，解码器可以从下一个 slice（标记）继续。H.264 和 HEVC 编码器支持在 Qualcomm Linux 上进行分片。每个 slice 的位数或每个切片的宏块数是 slice 边界。

**Intra-refresh**

Intra-refresh 功能减少了倾向于恒定码率的流传输和广播应用程序中的通道损失。Adreno VPU 支持随机 Intra-refresh 模式。

**视频编码器预处理**

应用程序可以使用 Adreno VPU 在编码 YUV 帧之前对其进行旋转或翻转。Adreno VPU 可在不消耗额外功率的情况下旋转或翻转 YUV 帧。

**码率控制**

下表列出了支持的码率控制算法：

| 码率控制模式 | 说明 |
| --- | --- |
| 可变码率 (VBR) | <ul class="simple"><br><li><p>将逐帧视频质量波动降至最低</p></li><br><li><p>Camcorder 和 Wi-Fi Display 为示例用例</p></li><br></ul> |
| 固定码率 (CBR) | <ul class="simple"><br><li><p>减少码率波动</p></li><br><li><p>用于存在信道带宽限制的实时通信</p></li><br><li><p>视频电话和流媒体为示例用例</p></li><br></ul> |
| 最大码率 (MBR) | <ul class="simple"><br><li><p>限制码率，同时保持灵活性，并可能在设定的目标内上下反弹</p></li><br><li><p>当场景中的活动在最大限制内增加时，码率也会提高</p></li><br><li><p>集成了智能比特分配 (SBA) 功能，以更低的码率实现更好的质量</p></li><br></ul> |

**长期参考 (LTR) 支持**

视频压缩的工作原理是消除帧内部（帧内）和帧之间（帧间）的冗余。以前，用于作为派生未来帧的基础的编码帧称为参考帧。

以下参考帧允许高级编码应用程序控制参考帧的存储和参考方式：

- **短期参考 (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 帧：

<!--?xml version="1.0" encoding="utf-8" standalone="no"?-->

<!-- Generated by Microsoft Visio, SVG Export LTR support feature.svg Page-1 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="12.9549in" height="7.51736in" viewbox="0 0 932.75 541.25" xml:space="preserve" color-interpolation-filters="sRGB" class="st17" aria-label="../../_images/LTR-support-feature.svg"><v:documentproperties v:langid="1033" v:viewmarkup="false">	<v:userdefs>		<v:ud v:nameu="msvSubprocessMaster" v:prompt="" v:val="VT4(Rectangle)"></v:ud>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-2 .st1 { fill: #f8f7fa; stroke: none; stroke-width: 0.25 }
.svg-2 .st2 { fill: none; stroke: #6280cc; stroke-width: 1.25 }
.svg-2 .st3 { fill: #000000; font-family: Arial; font-size: 0.833336em }
.svg-2 .st4 { font-size: 1em }
.svg-2 .st5 { fill: #000000; font-family: Arial; font-size: 0.75em }
.svg-2 .st6 { marker-end: url("#mrkr4-96"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st7 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.28409090909091 }
.svg-2 .st8 { stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st9 { fill: #ffffff; stroke: none; stroke-linecap: butt }
.svg-2 .st10 { fill: #ffffff; stroke: none; stroke-linecap: butt; stroke-width: 7.2 }
.svg-2 .st11 { marker-start: url("#mrkr4-162"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st12 { fill: none; stroke: #6280cc; stroke-width: 1 }
.svg-2 .st13 { fill: #000000; font-family: Arial; font-size: 0.666664em }
.svg-2 .st14 { stroke: #000000; stroke-dasharray: 7, 5; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st15 { marker-end: url("#mrkr4-96"); stroke: #000000; stroke-dasharray: 7, 5; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-2 .st16 { stroke: #000000; stroke-width: 1 }
.svg-2 .st17 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend4">		<path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"></path>	</g>	<marker id="mrkr4-96" class="st7" v:arrowtype="4" v:arrowsize="2" v:setback="7.04" refx="-7.04" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(-3.52,-3.52) "></use>	</marker>	<marker id="mrkr4-162" class="st7" v:arrowtype="4" v:arrowsize="2" v:setback="6.68" refx="6.68" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(3.52) "></use>	</marker></defs><g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<v:userdefs>		<v:ud v:nameu="msvThemeOrder" v:val="VT0(0):26"></v:ud>	</v:userdefs>	<title>Page-1</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="0" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<v:layer v:name="Connector" v:index="0"></v:layer>	<v:layer v:name="Callout" v:index="1"></v:layer>	<g id="shape127-1" v:mid="127" v:groupcontext="shape" transform="translate(0.562494,-0.562493)">		<title></title>		<rect x="0" y="1.81248" width="930.938" height="539.438" class="st1"></rect>	</g>	<g id="shape3-3" v:mid="3" v:groupcontext="shape" transform="translate(68.75,-252.25)">		<title></title>		<desc>n (IDR)</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="514.25" width="36" height="54"></v:textrect>		<rect x="0" y="487.25" width="36" height="54" class="st2"></rect>		<text x="15.22" y="511.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n <tspan x="6.06" dy="1.2em" class="st4">(IDR)</tspan></text>		</g>	<g id="shape4-7" v:mid="4" v:groupcontext="shape" transform="translate(194.75,-252.25)">		<title></title>		<desc>n + 1 (P)</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="514.25" width="36" height="54"></v:textrect>		<rect x="0" y="487.25" width="36" height="54" class="st2"></rect>		<text x="6.74" y="511.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 1 <tspan x="11.34" dy="1.2em" class="st4">(P)</tspan></text>		</g>	<g id="shape5-11" v:mid="5" v:groupcontext="shape" transform="translate(302.75,-252.25)">		<title></title>		<desc>n + 2 (P)</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="514.25" width="36" height="54"></v:textrect>		<rect x="0" y="487.25" width="36" height="54" class="st2"></rect>		<text x="6.74" y="511.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 2 <tspan x="11.34" dy="1.2em" class="st4">(P)</tspan></text>		</g>	<g id="shape6-15" v:mid="6" v:groupcontext="shape" transform="translate(410.75,-252.25)">		<title></title>		<desc>n + 3 (P)</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="514.25" width="36" height="54"></v:textrect>		<rect x="0" y="487.25" width="36" height="54" class="st2"></rect>		<text x="6.74" y="511.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 3 <tspan x="11.34" dy="1.2em" class="st4">(P)</tspan></text>		</g>	<g id="shape7-19" v:mid="7" v:groupcontext="shape" transform="translate(517.75,-252.25)">		<title></title>		<desc>n + 4 (P)</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="514.25" width="36" height="54"></v:textrect>		<rect x="0" y="487.25" width="36" height="54" class="st2"></rect>		<text x="6.74" y="511.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 4 <tspan x="11.34" dy="1.2em" class="st4">(P)</tspan></text>		</g>	<g id="shape8-23" v:mid="8" v:groupcontext="shape" transform="translate(625.75,-252.25)">		<title></title>		<desc>n + 5 (P)</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="514.25" width="36" height="54"></v:textrect>		<rect x="0" y="487.25" width="36" height="54" class="st2"></rect>		<text x="6.74" y="511.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 5 <tspan x="11.34" dy="1.2em" class="st4">(P)</tspan></text>		</g>	<g id="shape9-27" v:mid="9" v:groupcontext="shape" transform="translate(734.75,-252.25)">		<title></title>		<desc>n + 5 (P)</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="514.25" width="36" height="54"></v:textrect>		<rect x="0" y="487.25" width="36" height="54" class="st2"></rect>		<text x="7.87" y="511.55" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 5 <tspan x="12" dy="1.2em" class="st4">(P)</tspan></text>		</g>	<g id="shape41-31" v:mid="41" v:groupcontext="shape" transform="translate(67.75,-117.25)">		<title></title>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>	</g>	<g id="shape42-33" v:mid="42" v:groupcontext="shape" transform="translate(67.75,-99.25)">		<title></title>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>	</g>	<g id="shape43-35" v:mid="43" v:groupcontext="shape" transform="translate(67.75,-81.25)">		<title></title>		<desc>n</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="15.22" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n</text>		</g>	<g id="shape44-38" v:mid="44" v:groupcontext="shape" transform="translate(193.75,-117.25)">		<title></title>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>	</g>	<g id="shape45-40" v:mid="45" v:groupcontext="shape" transform="translate(193.75,-99.25)">		<title></title>		<desc>b</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="15.22" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>b</text>		</g>	<g id="shape46-43" v:mid="46" v:groupcontext="shape" transform="translate(193.75,-81.25)">		<title></title>		<desc>n</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="15.22" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n</text>		</g>	<g id="shape47-46" v:mid="47" v:groupcontext="shape" transform="translate(301.75,-117.25)">		<title></title>		<desc>n + 2</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="6.74" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 2</text>		</g>	<g id="shape48-49" v:mid="48" v:groupcontext="shape" transform="translate(301.75,-99.25)">		<title></title>		<desc>n + 1</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="6.74" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 1</text>		</g>	<g id="shape49-52" v:mid="49" v:groupcontext="shape" transform="translate(301.75,-81.25)">		<title></title>		<desc>n</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="15.22" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n</text>		</g>	<g id="shape50-55" v:mid="50" v:groupcontext="shape" transform="translate(409.75,-117.25)">		<title></title>		<desc>n + 2</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="6.74" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 2</text>		</g>	<g id="shape51-58" v:mid="51" v:groupcontext="shape" transform="translate(409.75,-99.25)">		<title></title>		<desc>n + 1</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="6.74" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 1</text>		</g>	<g id="shape52-61" v:mid="52" v:groupcontext="shape" transform="translate(409.75,-81.25)">		<title></title>		<desc>n + 3</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="6.74" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 3</text>		</g>	<g id="shape53-64" v:mid="53" v:groupcontext="shape" transform="translate(516.75,-118.25)">		<title></title>		<desc>n + 2</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="6.74" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 2</text>		</g>	<g id="shape54-67" v:mid="54" v:groupcontext="shape" transform="translate(516.75,-100.25)">		<title></title>		<desc>n + 1</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="6.74" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 1</text>		</g>	<g id="shape55-70" v:mid="55" v:groupcontext="shape" transform="translate(516.75,-82.25)">		<title></title>		<desc>n + 3</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="6.74" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 3</text>		</g>	<g id="shape56-73" v:mid="56" v:groupcontext="shape" transform="translate(624.75,-118.25)">		<title></title>		<desc>n + 2</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="6.74" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 2</text>		</g>	<g id="shape57-76" v:mid="57" v:groupcontext="shape" transform="translate(624.75,-100.25)">		<title></title>		<desc>n + 1</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="6.74" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 1</text>		</g>	<g id="shape58-79" v:mid="58" v:groupcontext="shape" transform="translate(624.75,-82.25)">		<title></title>		<desc>n + 3</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="6.74" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 3</text>		</g>	<g id="shape59-82" v:mid="59" v:groupcontext="shape" transform="translate(733.75,-118.25)">		<title></title>		<desc>n + 5</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="6.74" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 5  </text>		</g>	<g id="shape60-85" v:mid="60" v:groupcontext="shape" transform="translate(733.75,-100.25)">		<title></title>		<desc>n + 1</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="6.74" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 1</text>		</g>	<g id="shape61-88" v:mid="61" v:groupcontext="shape" transform="translate(733.75,-82.25)">		<title></title>		<desc>n + 3</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="532.25" width="36" height="18"></v:textrect>		<rect x="0" y="523.25" width="36" height="18" class="st2"></rect>		<text x="6.74" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>n + 3</text>		</g>	<g id="shape66-91" v:mid="66" v:groupcontext="shape" v:layermember="0" transform="translate(121.75,-81.25)">		<title></title>		<path d="M-0 532.25 L-10.96 532.25" class="st6"></path>	</g>	<g id="shape67-97" v:mid="67" v:groupcontext="shape" v:layermember="0" transform="translate(104.25,-279.25)">		<title></title>		<desc>Auto-mark LTR</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="17.5" cy="622.25" width="71.52" height="18.8036"></v:textrect>		<path d="M0.5 541.25 L17.5 541.25 L17.5 730.25" class="st8"></path>		<rect v:rectcontext="textBkgnd" x="-13.0069" y="616.85" width="61.0137" height="10.7998" class="st9"></rect>		<text x="-13.01" y="624.95" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>自动标记 LTR</text>		</g>	<g id="shape70-102" v:mid="70" v:groupcontext="shape" v:layermember="0" transform="translate(248.25,-108.25)">		<title></title>		<desc>Auto-mark LTR</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="-0.499992" cy="451.25" width="71.52" height="18.8036"></v:textrect>		<path d="M-0.5 541.25 L-0.5 370.25 L-17.5 370.25" class="st8"></path>		<rect v:rectcontext="textBkgnd" x="-31.0069" y="445.85" width="61.0137" height="10.7998" class="st10"></rect>		<text x="-31.01" y="453.95" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>自动标记 LTR</text>		</g>	<g id="shape71-107" v:mid="71" v:groupcontext="shape" v:layermember="0" transform="translate(248.25,-99.25)">		<title></title>		<path d="M-0.5 532.25 L-10.46 532.25" class="st6"></path>	</g>	<g id="shape72-112" v:mid="72" v:groupcontext="shape" v:layermember="0" transform="translate(355.75,-117.25)">		<title></title>		<path d="M-0 532.25 L-10.96 532.25" class="st6"></path>	</g>	<g id="shape73-117" v:mid="73" v:groupcontext="shape" v:layermember="0" transform="translate(356.25,-126.25)">		<title></title>		<desc>Auto-mark LTR</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="-0.499987" cy="469.25" width="71.52" height="18.8036"></v:textrect>		<path d="M-0.5 541.25 L-0.5 388.25 L-17.5 388.25" class="st8"></path>		<rect v:rectcontext="textBkgnd" x="-31.0069" y="463.85" width="61.0137" height="10.7998" class="st10"></rect>		<text x="-31.01" y="471.95" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>自动标记 LTR</text>		</g>	<g id="shape75-122" v:mid="75" v:groupcontext="shape" v:layermember="0" transform="translate(464.25,-90.25)">		<title></title>		<desc>Mark as LTR</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="-0.74998" cy="433.5" width="62.02" height="18.8036"></v:textrect>		<path d="M-0.5 541.25 L-0.5 361.25 L-17.5 361.25" class="st8"></path>		<rect v:rectcontext="textBkgnd" x="-26.5042" y="428.1" width="51.5083" height="10.7998" class="st9"></rect>		<text x="-26.5" y="436.2" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>标记为 LTR</text>		</g>	<g id="shape76-127" v:mid="76" v:groupcontext="shape" v:layermember="0" transform="translate(463.75,-81.25)">		<title></title>		<path d="M-0 532.25 L-10.96 532.25" class="st6"></path>	</g>	<g id="shape77-132" v:mid="77" v:groupcontext="shape" v:layermember="0" transform="translate(606.75,-90.25)">		<title></title>		<desc>Use as reference</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="0.750016" cy="433.5" width="79.04" height="18.8036"></v:textrect>		<path d="M0 541.25 L0 360.75 L11.96 360.75" class="st6"></path>		<rect v:rectcontext="textBkgnd" x="-33.5164" y="428.1" width="68.5327" height="10.7998" class="st10"></rect>		<text x="-33.52" y="436.2" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>用作参考</text>		</g>	<g id="shape78-139" v:mid="78" v:groupcontext="shape" v:layermember="0" transform="translate(606.75,-81.25)">		<title></title>		<path d="M0 532.25 L18 532.25" class="st8"></path>	</g>	<g id="shape79-142" v:mid="79" v:groupcontext="shape" v:layermember="0" transform="translate(715.75,-108.25)">		<title></title>		<desc>Use as reference</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="0" cy="451.875" width="79.04" height="18.8036"></v:textrect>		<path d="M0 541.25 L0 381.5 L11.96 381.5" class="st6"></path>		<rect v:rectcontext="textBkgnd" x="-34.2664" y="446.475" width="68.5327" height="10.7998" class="st10"></rect>		<text x="-34.27" y="454.58" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>用作参考</text>		</g>	<g id="shape80-149" v:mid="80" v:groupcontext="shape" v:layermember="0" transform="translate(715.75,-99.25)">		<title></title>		<path d="M0 532.25 L18 532.25" class="st8"></path>	</g>	<g id="shape81-152" v:mid="81" v:groupcontext="shape" v:layermember="0" transform="translate(788.25,-126.25)">		<title></title>		<desc>Mark as LTR</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="-0.500001" cy="469.25" width="62.02" height="18.8036"></v:textrect>		<path d="M-0.5 541.25 L-0.5 388.25 L-17.5 388.25" class="st8"></path>		<rect v:rectcontext="textBkgnd" x="-26.2542" y="463.85" width="51.5083" height="10.7998" class="st10"></rect>		<text x="-26.25" y="471.95" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>标记为 LTR</text>		</g>	<g id="shape82-157" v:mid="82" v:groupcontext="shape" v:layermember="0" transform="translate(769.75,-117.25)">		<title></title>		<path d="M6.68 532.25 L7.04 532.25 L18 532.25" class="st11"></path>	</g>	<g id="shape86-163" v:mid="86" v:groupcontext="shape" transform="translate(301.75,-486.25)">		<title></title>		<desc>2. Check if the frame was marked LTR</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="90" cy="523.25" width="180" height="36"></v:textrect>		<rect x="0" y="505.25" width="180" height="36" class="st2"></rect>		<text x="15.53" y="520.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>2。检查帧是否被标记 <v:lf></v:lf><tspan x="80.55" dy="1.2em" class="st4">LTR</tspan></text>		</g>	<g id="shape87-167" v:mid="87" v:groupcontext="shape" transform="translate(544.75,-486.25)">		<title></title>		<desc>4. Check if the LTR at slot # 0 was used as a reference</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="90" cy="523.25" width="180" height="36"></v:textrect>		<rect x="0" y="505.25" width="180" height="36" class="st2"></rect>		<text x="13.85" y="520.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>4。检查 slot # 0 处的 LTR 是否 <tspan x="45.81" dy="1.2em" class="st4">用作参考</tspan></text>		</g>	<g id="shape88-171" v:mid="88" v:groupcontext="shape" transform="translate(193.75,-405.25)">		<title></title>		<desc>1. Mark frame as LTR at slot # 0</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="90" cy="523.25" width="180" height="36"></v:textrect>		<rect x="0" y="505.25" width="180" height="36" class="st12"></rect>		<text x="18.59" y="526.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>1。在 slot # 0 处将帧标记为 LTR</text>		</g>	<g id="shape89-174" v:mid="89" v:groupcontext="shape" transform="translate(481.75,-405.25)">		<title></title>		<desc>3. Mark frame as LTR at slot # 0</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="90" cy="523.25" width="180" height="36"></v:textrect>		<rect x="0" y="505.25" width="180" height="36" class="st2"></rect>		<text x="18.59" y="526.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>3。在 slot # 0 处将帧标记为 LTR</text>		</g>	<g id="shape90-177" v:mid="90" v:groupcontext="shape" transform="translate(733.75,-441.25)">		<title></title>		<desc>5a. Using LTR at slot # 1 as reference</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="90" cy="523.25" width="180" height="36"></v:textrect>		<rect x="0" y="505.25" width="180" height="36" class="st2"></rect>		<text x="28.3" y="520.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>5a.将 slot # 1 处的 LTR 用作 <v:lf></v:lf><tspan x="68.88" dy="1.2em" class="st4">参考</tspan></text>		</g>	<g id="shape91-181" v:mid="91" v:groupcontext="shape" transform="translate(733.75,-387.25)">		<title></title>		<desc>5b. Mark frame as LTR at slot # 2</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="90" cy="523.25" width="180" height="36"></v:textrect>		<rect x="0" y="505.25" width="180" height="36" class="st2"></rect>		<text x="15.8" y="526.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>5b.在 slot # 2 处将帧标记为 LTR</text>		</g>	<g id="shape92-184" v:mid="92" v:groupcontext="shape" transform="translate(8.99999,-270.25)">		<title></title>		<desc>Encoder</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="27.125" cy="532.25" width="54.26" height="18"></v:textrect>		<rect x="0" y="523.25" width="54.25" height="18" class="st2"></rect>		<text x="8.5" y="535.25" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>编码器</text>		</g>	<g id="shape93-187" v:mid="93" v:groupcontext="shape" transform="translate(18.25,-117.25)">		<title></title>		<desc>Slot# 2</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="22.5" cy="532.25" width="45" height="18"></v:textrect>		<rect x="0" y="523.25" width="45" height="18" class="st2"></rect>		<text x="10.05" y="534.65" class="st13" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Slot# 2</text>		</g>	<g id="shape94-190" v:mid="94" v:groupcontext="shape" transform="translate(18.25,-99.25)">		<title></title>		<desc>Slot# 1</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="22.5" cy="532.25" width="45" height="18"></v:textrect>		<rect x="0" y="523.25" width="45" height="18" class="st2"></rect>		<text x="10.05" y="534.65" class="st13" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Slot# 1</text>		</g>	<g id="shape95-193" v:mid="95" v:groupcontext="shape" transform="translate(18.25,-81.25)">		<title></title>		<desc>Slot# 0</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="22.5" cy="532.25" width="45" height="18"></v:textrect>		<rect x="0" y="523.25" width="45" height="18" class="st2"></rect>		<text x="10.05" y="534.65" class="st13" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Slot# 0</text>		</g>	<g id="shape96-196" v:mid="96" v:groupcontext="shape" v:layermember="0" transform="translate(814.75,-387.25)">		<title></title>		<path d="M9 541.25 L9 640.25" class="st8"></path>	</g>	<g id="shape97-199" v:mid="97" v:groupcontext="shape" v:layermember="0" transform="translate(823.75,-279.25)">		<title></title>		<path d="M0 532.25 L-45.96 532.25" class="st6"></path>	</g>	<g id="shape98-204" v:mid="98" v:groupcontext="shape" v:layermember="0" transform="translate(202.75,-324.583)">		<title></title>		<desc>Refer</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="-58.5" cy="532.25" width="45" height="18.8036"></v:textrect>		<path d="M0 532.58 L-117 531.92" class="st14"></path>		<rect v:rectcontext="textBkgnd" x="-69.5039" y="526.85" width="22.0078" height="10.7998" class="st10"></rect>		<text x="-69.5" y="534.95" class="st5" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>参考</text>		</g>	<g id="shape99-209" v:mid="99" v:groupcontext="shape" v:layermember="0" transform="translate(76.75,-333.25)">		<title></title>		<path d="M9 541.25 L9 561.21" class="st15"></path>	</g>	<g id="shape100-214" v:mid="100" v:groupcontext="shape" v:layermember="0" transform="translate(751.75,-369.25)">		<title></title>		<path d="M0 532.25 L-69 532.25 A3 3 -180 1 0 -75 532.25 L-177 532.25 A3 3 -180 0 0 -183 532.25 L-285.51 532.25 A3 3 -180					 0 0 -291.51 532.25 L-393 532.25 A3 3 -180 0 0 -399 532.25 L-540 532.25" class="st14"></path>	</g>	<g id="shape101-217" v:mid="101" v:groupcontext="shape" v:layermember="0" transform="translate(202.75,-378.25)">		<title></title>		<path d="M9 541.25 L9 606.21" class="st15"></path>	</g>	<g id="shape102-222" v:mid="102" v:groupcontext="shape" v:layermember="0" transform="translate(742.75,-378.25)">		<title></title>		<path d="M9 541.25 L9 613.25" class="st14"></path>	</g>	<g id="shape103-225" v:mid="103" v:groupcontext="shape" v:layermember="0" transform="translate(193.75,-333.25)">		<title></title>		<path d="M9 541.25 L9 568.25" class="st14"></path>	</g>	<g id="shape104-228" v:mid="104" v:groupcontext="shape" v:layermember="0" transform="translate(320.75,-297.25)">		<title></title>		<path d="M0 532.25 L0 505.25 L-100 505.25 L-100 525.21" class="st15"></path>	</g>	<g id="shape105-233" v:mid="105" v:groupcontext="shape" v:layermember="0" transform="translate(419.75,-297.25)">		<title></title>		<path d="M0 532.25 L-0 505.25 L-61 505.25 A3 3 -180 0 0 -67 505.25 L-92 505.25 L-92 525.21" class="st15"></path>	</g>	<g id="shape106-238" v:mid="106" v:groupcontext="shape" v:layermember="0" transform="translate(536.417,-297.25)">		<title></title>		<path d="M0 532.25 L0 505.25 L-69.92 505.25 A3 3 -180 0 0 -75.92 505.25 L-100 505.25 L-100 525.21" class="st15"></path>	</g>	<g id="shape107-243" v:mid="107" v:groupcontext="shape" v:layermember="0" transform="translate(643.75,-297.25)">		<title></title>		<path d="M0 532.25 L0 487.25 L-69 487.25 A3 3 -180 0 0 -75 487.25 L-177.36 487.25 A3 3 -180 0 0 -183.36 487.25 L-216					 487.25 L-216 525.21" class="st15"></path>	</g>	<g id="shape109-248" v:mid="109" v:groupcontext="shape" v:layermember="0" transform="translate(346.75,-405.25)">		<title></title>		<path d="M9 541.25 L9 658.58" class="st8"></path>	</g>	<g id="shape110-251" v:mid="110" v:groupcontext="shape" v:layermember="0" transform="translate(355.75,-278.917)">		<title></title>		<path d="M0 532.25 L47.96 532.25" class="st6"></path>	</g>	<g id="shape111-256" v:mid="111" v:groupcontext="shape" v:layermember="0" transform="translate(446.25,-279.25)">		<title></title>		<path d="M0.5 532.25 L17.5 532.25" class="st8"></path>	</g>	<g id="shape112-259" v:mid="112" v:groupcontext="shape" v:layermember="0" transform="translate(454.187,-486.25)">		<title></title>		<path d="M8.48 547.93 L8.48 548.29 L9.56 739.25" class="st11"></path>	</g>	<g id="shape113-264" v:mid="113" v:groupcontext="shape" v:layermember="0" transform="translate(562.75,-405.25)">		<title></title>		<path d="M9 541.25 L9 658.25" class="st8"></path>	</g>	<g id="shape114-267" v:mid="114" v:groupcontext="shape" v:layermember="0" transform="translate(571.75,-280.25)">		<title></title>		<path d="M0 532.25 L46.96 532.25" class="st6"></path>	</g>	<g id="shape115-272" v:mid="115" v:groupcontext="shape" v:layermember="0" transform="translate(661.75,-279.25)">		<title></title>		<path d="M0 532.25 L18 532.25" class="st8"></path>	</g>	<g id="shape116-275" v:mid="116" v:groupcontext="shape" v:layermember="0" transform="translate(670.75,-486.25)">		<title></title>		<path d="M9 547.93 L9 548.29 L9 739.25" class="st11"></path>	</g>	<g id="shape124-280" v:mid="124" v:groupcontext="shape" transform="translate(72.25,-18.25)">		<title></title>		<desc>Encoder fills up the empty LTR slots aggressively at the star...</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="130.5" cy="527.75" width="261" height="27"></v:textrect>		<rect x="0" y="514.25" width="261" height="27" class="st2"></rect>		<text x="15.73" y="524.75" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>编码器在新的 GOP 开始时优先填充<v:lf></v:lf><tspan x="78.25" dy="1.2em" class="st4"> </tspan>空的 LTR slot</text>		</g>	<g id="shape126-284" v:mid="126" v:groupcontext="shape" transform="translate(609,467.2) rotate(90)">		<title></title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:prompt="" v:val="VT0(15):26"></v:ud>		</v:userdefs>		<path d="M0 541.25 A38.5574 45.1845 -180 0 0 14.4 514.25 L14.4 406.25 L28.8 406.25 L14.4 406.25 L14.4 298.25 A38.5574					 45.1845 -180 0 0 0 271.25" class="st16"></path>	</g></g>
</svg>

**图：LTR 编码**

**动态编码器属性**

Adreno VPU 编码器支持码率、帧速率和同步帧等属性的动态更改。这种支持使应用程序能够更改属性，并且有助于改善视觉体验，使视频数据适应网络条件，并最大限度地减少传输过程中的数据丢失。

Last Published: Jul 23, 2025

[Previous Topic
排除视频故障](https://docs.qualcomm.com/bundle/publicresource/80-70020-20SC/topics/bring-up.md) [Next Topic
参考资料](https://docs.qualcomm.com/bundle/publicresource/80-70020-20SC/topics/references.md)

Source: [https://docs.qualcomm.com/doc/80-70020-20SC/topic/feature-descriptions.html](https://docs.qualcomm.com/doc/80-70020-20SC/topic/feature-descriptions.html)