# Advanced video specifications

For more information on the video decode and encode capabilities such as the supported profiles, levels, resolutions, frame rates, bit rates, and limitations, select the following tabs:

Tab QCS6490
Tab IQ-8275
Tab IQ-9075

> 
> 
> Table: Adreno VPU feature description for QCS6490
> 
> 
> | Feature | Description | Codecs | Remarks |
> | --- | --- | --- | --- |
> | Encoder input color formats | NV12 and QC08C | H.264 and HEVC | None |
> | Decoder output color formats | NV12, QC08C, and QC10C | H.264, HEVC, and VP9 | None |
> | Rotation | Supports 90, 180, and 270-degree rotation before encoding the frame | H.264 and HEVC | Supports static rotation only |
> | Flip | Supports horizontal and vertical flip before encoding the frame | H.264 and HEVC | Supports static and dynamic flip |
> | B-frame encode | Up to 1920 × 1088 at 60 fps encode | H.264 and HEVC | The maximum number of B-frames supported between two P-frames is one |
> | Hierarchical-P encode | Up to 5 layers | H.264 and HEVC | None |
> | Initial QP override | Supports I-frames, P-frames, and B-frames | H.264 and HEVC | None |
> | Slice encode | Yes | H.264 and HEVC | The number of bits per slice or the number of macroblocks per slice determines the slice boundary support |
> | Intra-refresh | Random refresh mode | H.264 and HEVC | <ul class="simple"><br><li><p>Supported only in 8-bit encoding</p></li><br><li><p>Supported only in the CBR RC mode</p></li><br></ul> |
> | Rate control | CBR, VBR, and MBR | H.264 and HEVC | None |
> | LTR | 2 frames | H.264 and HEVC | Supported in CBR RC mode |
> | Dynamic properties for encoder | Sync frame, bit rate, and fps | H.264 and HEVC | Supported in CBR and VBR RC modes |
> 
> 
> 
> 
> Table: Adreno VPU decoder capabilities for QCS6490
> 
> 
> | Decoder standard | Supported profile and level | Minimum/Maximum resolution, Maximum frame rate, and bit rate | Maximum supported resolution, frame rate, and bit rate | Limitations/tools not supported |
> | --- | --- | --- | --- | --- |
> | HEVC | <ul class="simple"><br><li><p>Main profile 8-bit up to level 5.1</p></li><br><li><p>Main profile 10-bit, up to level 5.1, HLG schemes</p></li><br></ul> | <ul class="simple"><br><li><p>Minimum resolution: 96 × 96</p></li><br><li><p>Maximum resolution: 4096 × 2160 or 2160 × 4096</p></li><br><li><p>Maximum frame rate: 480 fps</p></li><br><li><p>Maximum bit rate: 100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 480 fps, 100 Mbps</p></li><br><li><p>1920 × 1088 at 240 fps, 100 Mbps</p></li><br><li><p>3840 × 2160 at 60 fps, 100 Mbps</p></li><br><li><p>4096 × 2160 at 60 fps, 100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>Maximum 128 slices per frame</p></li><br><li><p>Individual slice-based decoding</p></li><br></ul> |
> | H.264 | Constrained baseline, baseline, main, high, constrained high profiles; up to level 5.2 | <ul class="simple"><br><li><p>Minimum resolution: 96 × 96</p></li><br><li><p>Maximum resolution: 4096 × 2160 or 2160 × 4096</p></li><br><li><p>Maximum frame rate: 480 fps</p></li><br><li><p>Maximum bit rate: 100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 480 fps, 100 Mbps</p></li><br><li><p>1920 × 1088 at 240 fps, 100 Mbps</p></li><br><li><p>3840 × 2160 at 60 fps, 100 Mbps</p></li><br><li><p>4096 × 2160 at 60 fps, 100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>Flexible macroblock order (FMO)</p></li><br><li><p>Arbitrary slice ordering (ASO)</p></li><br><li><p>Redundant slices (RS)</p></li><br><li><p>Data partition</p></li><br><li><p>Maximum 10 slices per frame</p></li><br><li><p>Interlaced content isn't supported</p></li><br></ul> |
> | VP9 | <ul class="simple"><br><li><p>Profile 0; 8-bit up to level 5.1</p></li><br><li><p>Profile 2; 10-bit up to level 5.1 HLG/PQ schemes</p></li><br></ul> | <ul class="simple"><br><li><p>Minimum resolution: 96 × 96</p></li><br><li><p>Maximum resolution: 4096 × 2160 or 2160 × 4096</p></li><br><li><p>Maximum frame rate: 480 fps</p></li><br><li><p>Maximum bit rate: 100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 480 fps, 100 Mbps</p></li><br><li><p>1920 × 1088 at 240 fps, 100 Mbps</p></li><br><li><p>3840 × 2160 at 60 fps, 100 Mbps</p></li><br><li><p>4096 × 2160 at 60 fps, 100 Mbps</p></li><br></ul> | Profile 2; 12-bit isn't supported |
> 
> 
> 
> 
> Table: Adreno VPU encoder capabilities for QCS6490
> 
> 
> | Encoder standard | Supported profile and level and RC modes | Minimum/Maximum resolution, maximum frame rate, and maximum bit rate | Supported resolution, frame rate, bit rate | Limitations/tools not supported |
> | --- | --- | --- | --- | --- |
> | H.264 | <ul class="simple"><br><li><p>Constrained baseline, baseline, main, high, constrained high profiles; up to level 5</p></li><br><li><p>VBR, CBR, MBR</p></li><br></ul> | <ul class="simple"><br><li><p>Minimum resolution: 128 × 128</p></li><br><li><p>Maximum resolution: 4096 × 2160 or 2160 × 4096</p></li><br><li><p>Maximum frame rate: 240 fps</p></li><br><li><p>Maximum bit rate: 100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 240 fps, 100 Mbps</p></li><br><li><p>1920 × 1088 at 120 fps, 100 Mbps</p></li><br><li><p>3840 × 2160 at 30 fps, 100 Mbps</p></li><br><li><p>4096 × 2160 at 30 fps, 100 Mbps</p></li><br></ul> | None |
> | HEVC | <ul class="simple"><br><li><p>Main profile 8-bit, up to level 5.0</p></li><br><li><p>Main/High tier VBR, CBR, MBR</p></li><br></ul> | <ul class="simple"><br><li><p>Minimum resolution: 128 × 128</p></li><br><li><p>Maximum resolution: 4096 × 2160 or 2160 × 4096</p></li><br><li><p>Maximum frame rate: 240 fps</p></li><br><li><p>Maximum bit rate: 100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 240 fps, 100 Mbps</p></li><br><li><p>1920 × 1088 at 120 fps, 100 Mbps</p></li><br><li><p>3840 × 2160 at 30 fps, 100 Mbps</p></li><br><li><p>4096 × 2160 at 30 fps, 100 Mbps</p></li><br></ul> | Vertical tiling is only enabled for frame width ≥ 960 |

> 
> 
> Table: Adreno VPU feature description for Dragonwing IQ-8275
> 
> 
> | **Feature** | **Description** | **Codecs** | **Remarks** |
> | --- | --- | --- | --- |
> | Encoder input color formats | NV12 and QC08C | H.264 and HEVC | None |
> | Decoder output color formats | NV12, QC08C, and QC10C | H.264, HEVC, VP9 and AV1 | None |
> | B-frame encode | Up to 1920 × 1088 at 120 fps encode | H.264 and HEVC | The maximum number of B-frames supported between two P-frames is one |
> | Initial QP override | Supports I-frames, P-frames, and B-frames | H.264 and HEVC | None |
> | Rate control | CBR and VBR | H.264 and HEVC | None |
> | Dynamic properties for encoder | Sync frame, bit rate, and fps | H.264 and HEVC | Supported in CBR and VBR RC modes |
> 
> 
> 
> Note
> 
> 
> End-to-end functionality using [Qualcomm IM SDK](https://docs.qualcomm.com/bundle/publicresource/topics/80-70023-50/qimsdk_landing_page.html) is validated up to 3840 × 2160 resolution.
> 
> 
> 
> Table: Adreno VPU decoder capabilities for Dragonwing IQ-8275
> 
> 
> | **Decoder standard** | **Supported profile and level** | **Minimum/Maximum resolution, maximum frame rate, and maximum bit rate** | **Maximum supported resolution, frame rate, and bit rate** | **Limitations/tools not supported** |
> | --- | --- | --- | --- | --- |
> | HEVC | <ul class="simple"><br><li><p>Main profile 8-bit, up to level 5.1 Main tier, high tier</p></li><br><li><p>Main10, profile up to level 5.1 Main/High tier, HLG schemes</p></li><br></ul> | <ul class="simple"><br><li><p>Minimum resolution: 96 × 96</p></li><br><li><p>Maximum resolution: 4096 × 2160 or 2160 × 4096</p></li><br><li><p>Maximum frame rate: 480 fps</p></li><br><li><p>Maximum bit rate: 160 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>1920 × 1088 at 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>3840 × 2160 at 120 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>4096 × 2160 at 60 fps, 120 Mbps (IBP/IPP)</p></li><br></ul> | Individual slice-based decoding |
> | H.264 | Constrained baseline, Baseline, main, high, constrained high profiles; up to level 5.2 | <ul class="simple"><br><li><p>Minimum resolution: 96 × 96</p></li><br><li><p>Maximum resolution: 4096 × 2160 or 2160 × 4096</p></li><br><li><p>Maximum frame rate: 480 fps</p></li><br><li><p>Maximum bit rate: 160 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>1920 × 1088 at 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>3840 × 2160 at 120 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>4096 × 2160 at 60 fps, 120 Mbps (IBP/IPP)</p></li><br></ul> | <ul class="simple"><br><li><p>Flexible macroblock order (FMO)</p></li><br><li><p>Arbitrary slice ordering (ASO)</p></li><br><li><p>Redundant slices (RS)</p></li><br><li><p>Data partition</p></li><br><li><p>Individual slice-based decoding</p></li><br><li><p>Non-progressive-only content up to 1920 x 1088</p></li><br><li><p>Best effort B-frame decode is: 3840 × 2160 at 120 fps</p></li><br></ul> |
> | VP9 | <ul class="simple"><br><li><p>Profile 0; 8-bit, up to level 5.1</p></li><br><li><p>Profile2, 10-bit, up to<br>level 5.1, HLG/PQ schemes</p></li><br></ul> | <ul class="simple"><br><li><p>Minimum resolution: 96 × 96</p></li><br><li><p>Maximum resolution: 4096 × 2160 or 2160 × 4096</p></li><br><li><p>Maximum frame rate: 120 fps</p></li><br><li><p>Maximum bit rate: 50 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 120 fps, 50 Mbps</p></li><br><li><p>1920 × 1088 at 120 fps, 50 Mbps</p></li><br><li><p>3840 × 2160 at 120 fps, 50 Mbps</p></li><br><li><p>4096 × 2160 at 60 fps, 50 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>Profile 2, 12-bit isn't supported</p></li><br><li><p>Individual slice-based decoding</p></li><br></ul> |
> | AV1 | <ul class="simple"><br><li><p>Main (Profile-0)</p></li><br><li><p>Maximum level: 5.1</p></li><br><li><p>HLG/PQ schemes</p></li><br></ul> | <ul class="simple"><br><li><p>Minimum resolution: 96 × 96</p></li><br><li><p>Maximum resolution: 4096 × 2160 or 2160 × 4096</p></li><br><li><p>Maximum frame rate: 240 fps</p></li><br><li><p>Maximum bit rate: 120 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 240 fps, 120 Mbps</p></li><br><li><p>1920 × 1088 at 240 fps, 120 Mbps</p></li><br><li><p>3840 × 2160 at 60 fps, 120 Mbps</p></li><br><li><p>4096 × 2160 at 60 fps, 120 Mbps</p></li><br></ul> | Individual slice-based decoding |
> 
> 
> 
> 
> Table: Adreno VPU encoder capabilities for Dragonwing IQ-8275
> 
> 
> | **Encoder standard** | **Supported profile, level, and RC mode** | **Minimum/Maximum resolution, maximum frame rate, and maximum bit rate** | **Maximum supported resolution, frame rate, and bit rate** | **Limitations/tools not supported** |
> | --- | --- | --- | --- | --- |
> | H.264 | <ul class="simple"><br><li><p>Constrained baseline, baseline, main, high, constrained high profiles; up to level 5.2</p></li><br><li><p>VBR and CBR</p></li><br></ul> | <ul class="simple"><br><li><p>Minimum resolution: 128 × 128</p></li><br><li><p>Maximum resolution: 4096 × 2160 or 2160 × 4096</p></li><br><li><p>Maximum frame rate: 480 fps</p></li><br><li><p>Maximum bit rate: 160 Mbps</p></li><br><li><p>Maximum operating rate: 480</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 480 fps, 88 Mbps</p></li><br><li><p>1920 × 1088 at 240 fps, 128 Mbps</p></li><br><li><p>3840 × 2160 at 60 fps, 80 Mbps</p></li><br><li><p>4096 × 2160 at 60 fps, 92 Mbps</p></li><br></ul> |  |
> | HEVC | Main profile 8-bit, up to level 5.1 Main/High tier VBR and CBR | <ul class="simple"><br><li><p>Minimum resolution: 96 × 96</p></li><br><li><p>Maximum resolution: 4096 × 2160 or 2160 × 4096</p></li><br><li><p>Maximum frame rate: 480 fps</p></li><br><li><p>Maximum bit rate: 160 Mbps</p></li><br><li><p>Maximum operating rate: 480</p></li><br><li><p>Maximum frame rate: 480 fps</p></li><br><li><p>Maximum bit rate: 160 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 480 fps, 62 Mbps</p></li><br><li><p>1920 × 1088 at 240 fps, 90 Mbps</p></li><br><li><p>3840 × 2160 at 60 fps, 56 Mbps</p></li><br><li><p>4096 × 2160 at 60 fps, 64 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>Multislice is enabled</p></li><br></ul> |

> 
> 
> | <br>Multichannel/Resolution/ fps/Codec | <br>Use case combination | <br>Recommended bit rate per session (Mbps) | <br>Recommended bit rate per session (Mbps) | <br>Recommended bit rate per session (Mbps) | <br>Recommended bit rate per session (Mbps) |
> | --- | --- | --- | --- | --- | --- |
> | <br>Multichannel/Resolution/ fps/Codec | <br>Use case combination | H.264 (CAVLC) | H.264 (CABAC) | HEVC | AV1 (Decoder only) |
> | 24x for 1920 × 1088 at 30 fps, any supported codec combination | Encode only | 9.17 | 7.92 | 7.92 | 5 |
> | 32x for 1920 × 1088 at 30 fps, any supported codec combination | Decode only | 6.88 | 5.94 | 5.94 | – |
> | 32x for 1920 × 1088 at 30 fps decode + 1280 × 720 at 30 fps encode, any supported codec combination | Decode/Encode | 7/5 | 7/5 | 7/5 | – |
> | 32x for 1280 × 720 at 30 fps, any supported codec combination | Encode only | 6.88 | 5.94 | 5.94 | – |
> |  |  |  |  |  |  |
> 
> 
> 
> 
> Table: Adreno VPU feature description for Dragonwing IQ-9075
> 
> 
> | Feature | Description | Codecs | Remarks |
> | --- | --- | --- | --- |
> | Encoder input color formats | NV12 and QC08C | H.264 and HEVC | None |
> | Decoder output color formats | NV12, QC08C, and QC10C | H.264, HEVC, VP9 and AV1 | None |
> | B-frame encode | Up to 3840 × 2160 at 60 fps encode | H.264 and HEVC | The maximum number of B-frames supported between two P-frames is one |
> | Initial QP override | Supports for I-frames, P-frames, and B-frames | H.264 and HEVC | None |
> | Rate control | CBR and VBR | H.264 and HEVC | None |
> | Dynamic properties for encoder | Sync frame, bit rate, and fps | H.264 and HEVC | Supported in CBR and VBR RC modes |
> 
> 
> 
> Note
> 
> 
> End-to-end functionality using [Qualcomm IM SDK](https://docs.qualcomm.com/bundle/publicresource/topics/80-70023-50/qimsdk_landing_page.html) is validated up to 3840 × 2160 resolution.
> 
> 
> 
> Table: Adreno VPU decoder capabilities for Dragonwing IQ-9075
> 
> 
> | Decoder standard | Supported profile and level | Minimum/maximum resolution, Maximum frame rate, and bit rate | Maximum supported resolution, frame rate, and bit rate | Limitations/tools not supported |
> | --- | --- | --- | --- | --- |
> | HEVC | <ul class="simple"><br><li><p>Main profile 8-bit, up to level 6.2, main tier, high tier</p></li><br><li><p>Main10 profile up to level 6.2 Main/High tier HLG schemes</p></li><br></ul> | <ul class="simple"><br><li><p>Minimum resolution: 96 × 96</p></li><br><li><p>Maximum resolution: 8192 × 4320 or 4320 × 8192</p></li><br><li><p>Maximum frame rate: 480 fps</p></li><br><li><p>Maximum bit rate: 160 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>1920 × 1088 at 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>3840 × 2160 at 240 fps, 80 Mbps (IBP/IPP)</p></li><br><li><p>3840 × 2160 at 120 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>4096 × 2160 at 120 fps, 80 Mbps (IBP/IPP)</p></li><br><li><p>7680 × 4320 at 30 fps, 120 Mbps (IBP/IPP)</p></li><br><li><p>7680 × 4320 at 60 fps, 80 Mbps (IBP/IPP)</p></li><br><li><p>8192 × 4320 at 30 fps, 120 Mbps (IBP/IPP)</p></li><br><li><p>8192 × 4320 at 48 fps, 80 Mbps (IBP/IPP)</p></li><br></ul> | Individual slice-based decoding |
> | H.264 | Constrained baseline, baseline, main, high, constrained high profiles; up to level 6.1 | <ul class="simple"><br><li><p>Minimum resolution: 96 × 96</p></li><br><li><p>Maximum resolution: 8192 × 4320 or 4320 × 8192</p></li><br><li><p>Maximum frame rate: 480 fps</p></li><br><li><p>Maximum bit rate: 220 Mbps (CAVLC), 160 Mbps (CABAC)</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>1920 × 1088 at 480 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>3840 × 2160 at 240 fps, 80 Mbps (IPP)</p></li><br><li><p>3840 × 2160 at 120 fps, 160 Mbps (IBP/IPP)</p></li><br><li><p>4096 × 2160 at 120 fps, 80 Mbps (IPP)</p></li><br><li><p>7680 × 4320 at 60 fps, 80 Mbps (IPP)</p></li><br><li><p>7680 × 4320 at 30 fps, 120 Mbps (IBP/IPP)</p></li><br><li><p>8192 × 4320 at 30 fps, 120 Mbps (IPP)</p></li><br><li><p>8192 × 4320 at 48 fps, 80 Mbps (IPP)</p></li><br></ul> | <ul class="simple"><br><li><p>Flexible macroblock order (FMO)</p></li><br><li><p>Arbitrary slice ordering (ASO)</p></li><br><li><p>Redundant slices (RS)</p></li><br><li><p>Data partition</p></li><br><li><p>Individual slice-based decoding</p></li><br><li><p>Non-progressive-only content up to 1920 × 1088</p></li><br><li><p>Best effort B-frame decodes are:</p><br><ul><br><li><p>3840 × 2160 at 240 fps</p></li><br><li><p>4096 × 2160 at 120 fps</p></li><br><li><p>7680 × 4320 at 60 fps</p></li><br><li><p>8192 × 4320 at 30/48 fps</p></li><br></ul><br></li><br></ul> |
> | VP9 | <ul class="simple"><br><li><p>Profile 0; 8-bit up to level 5.1</p></li><br><li><p>Profile2, 10-bit, up to level 5.1, HLG/PQ schemes</p></li><br></ul> | <ul class="simple"><br><li><p>Minimum resolution: 96 × 96</p></li><br><li><p>Maximum resolution: 4096 × 2304 or 2304 × 4096</p></li><br><li><p>Maximum frame rate: 120 fps</p></li><br><li><p>Maximum bit rate: 100 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 120 fps, 100 Mbps</p></li><br><li><p>1920 × 1088 at 120 fps, 100 Mbps</p></li><br><li><p>3840 × 2160 at 60 fps, 100 Mbps</p></li><br><li><p>3840 × 2160 at 240 fps, 30 Mbps</p></li><br><li><p>4096 × 2160 at 60 fps, 100 Mbps</p></li><br><li><p>4096 × 2304 at 60 fps, 100 Mbps</p></li><br></ul> | Profile 2, 12-bit isn't supported |
> | AV1 | <ul class="simple"><br><li><p>Main (Profile-0), 8-bit and 10-bit</p></li><br><li><p>Maximum level: 6.1</p></li><br><li><p>HLG/PQ schemes</p></li><br></ul> | <ul class="simple"><br><li><p>Minimum resolution: 96 × 96</p></li><br><li><p>Maximum resolution: 8192 × 4320 or 4320 × 8192</p></li><br><li><p>Maximum frame rate: 480 fps</p></li><br><li><p>Maximum bit rate: 120 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 480 fps, 120 Mbps</p></li><br><li><p>1920 × 1088 at 480 fps, 120 Mbps</p></li><br><li><p>3840 × 2160 at 240 fps, 120 Mbps</p></li><br><li><p>3840 × 2160 at 120 fps, 120 Mbps</p></li><br><li><p>4096 × 2160 at 120 fps, 120 Mbps</p></li><br><li><p>7680 × 4320 at 30 fps, 120 Mbps</p></li><br><li><p>7680 × 4320 at 60 fps, 120 Mbps</p></li><br><li><p>8192 × 4320 at 30 fps, 120 Mbps</p></li><br><li><p>8192 × 4320 at 48 fps, 120 Mbps</p></li><br></ul> | Individual slice-based decoding |
> 
> 
> 
> 
> Table: Adreno VPU encoder capabilities for Dragonwing IQ-9075
> 
> 
> | Encoder standard | Supported profile, level, and RC modes | Minimum/Maximum resolution, maximum frame rate, and maximum bit rate | Supported resolution, frame rate, bit rate | Limitations/tools not supported |
> | --- | --- | --- | --- | --- |
> | H.264 | <ul class="simple"><br><li><p>Constrained baseline, baseline, main, high, constrained high profiles; up to level 6.0</p></li><br><li><p>VBR and CBR</p></li><br></ul> | <ul class="simple"><br><li><p>Minimum resolution: 128 × 128</p></li><br><li><p>Maximum resolution: 8192 × 4320 or 4320 × 8192</p></li><br><li><p>Maximum frame rate: 480 fps</p></li><br><li><p>Maximum bit rate: 220 Mbps (CAVLC), 160 Mbps (CABAC)</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 480 fps, 160 Mbps</p></li><br><li><p>1920 × 1088 at 480 fps, 160 Mbps</p></li><br><li><p>3840 × 2160 at 120 fps, 160 Mbps</p></li><br><li><p>7680 × 4320 at 30 fps, 160 Mbps</p></li><br></ul> | Individual encoded slice delivery per buffer |
> | HEVC | <ul class="simple"><br><li><p>Main profile 8bit, up to level 6.0, 6.1, Main/High tier</p></li><br><li><p>VBR and CBR</p></li><br></ul> | <ul class="simple"><br><li><p>Minimum resolution: 96 × 96</p></li><br><li><p>Maximum resolution: 8192 × 4320 or 4320 × 8192</p></li><br><li><p>Maximum frame rate: 480 fps</p></li><br><li><p>Maximum bit rate: 160 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>1280 × 720 at 480 fps, 160 Mbps</p></li><br><li><p>1920 × 1088 at 480 fps, 160 Mbps</p></li><br><li><p>3840 × 2160 at 120 fps, 160 Mbps</p></li><br><li><p>7680 × 4320 at 30 fps, 160 Mbps</p></li><br></ul> | <ul class="simple"><br><li><p>Individual encoded slice delivery per buffer</p></li><br><li><p>Multislice is enabled</p></li><br></ul> |

## Feature descriptions

The supported encoder feature descriptions are as follows:

**B-frame encode**

B-frame uses both the earlier and the future frames as reference data to obtain the highest amount of data compression. The Adreno VPU encodes frames with adaptive B type to obtain the highest possible compression without compromising video quality.

**Encoder initial QP override**

Video encoding compresses signal levels by mapping them to discrete values. Quantization is a lossy process, and the levels of quantization govern the quality compared to compression. Encoders start with a default Quantization Parameter (QP) at the beginning. Based on the configured bit rate and scene complexity, encoders determine the right QP value by continuously monitoring the complexity and redundancy across frames. The encoder takes a few seconds to reach a steady state and predict the correct QP value that matches the target bit rate, also known as rate convergence.

**Hierarchical-P encode**

In the Hierarchical-P (Hier-P) feature, the encoder organizes the frames into many layers, with frames of one layer referencing frames only from the lower layers. The lowest layer, also known as layer 0 or the base layer, is the only exception.

The following image shows the layer encoding pattern of the Hier-P feature:

<!--?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="Layer encoding pattern in Hier-P feature." 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>
**Figure: Hier-P layer encoding pattern**

In the preceding figure, TL-0 represents the base layer, and the remaining layers represent the enhancement layers. Hier-P improves error resilience and temporal scalability. The Hier-P feature is useful for video telephony (VT) or videoconferencing applications that involve channel errors. Hier-P allows you to control error propagation by selectively dropping the enhancement layers.

**Slice encode**

Encoders can compress a frame with an independently decodable Group-of-blocks (GOB), also known as slices. If there is a data loss or corruption, each slice is independently decodable and intends to be a unit of recovery. The advantages of introducing slices in an encoded frame are:

- Encoder ignores a corrupt slice and skips to the next slice, thus restricting the corruption to a part of the frame instead of the entire frame.
- Encoder sizes the slices to fit them within a network packet to help with transmission.
- Encoder retransmits erroneous slices instead of sending the entire frame.
- Applications use slices to reduce latency in real-time communication. Applications transmit and decode slices in parallel, eliminating the need to wait for the entire frame to encode.

Slices also work as resynchronization markers because the decoders can resume from the next slice (marker) when there are bit errors. The H.264 and HEVC encoders support slicing on Qualcomm Linux. The number of bits per slice or the number of macroblocks per slice is a slice boundary.

**Intra-refresh**

The intra-refresh feature reduces the channel loss in streaming and casting applications that favor a constant bit rate. The Adreno VPU supports random intra-refresh mode.

**Video encoder preprocessing**

Applications can use the Adreno VPU to rotate or flip a YUV frame before encoding it. The Adreno VPU rotates or flips the YUP frame without consuming extra power.

**Rate control**

The following table lists the supported rate control algorithms:

| Rate control mode | Description |
| --- | --- |
| Variable bit rate (VBR) | <ul class="simple"><br><li><p>Minimizes the frame-by-frame video quality fluctuation</p></li><br><li><p>Camcorder and Wi-Fi display are the example use cases</p></li><br></ul> |
| Constant bit rate (CBR) | <ul class="simple"><br><li><p>Reduces bit rate fluctuation</p></li><br><li><p>Used for real-time communication with channel bandwidth limitation</p></li><br><li><p>Video telephony and streaming are the example use cases</p></li><br></ul> |
| Maximum bit rate (MBR) | <ul class="simple"><br><li><p>Limits the bit rate while maintaining flexibility and may bounce up and down within the set target</p></li><br><li><p>Bit rate increases when the activity in a scene increases within a maximum limit</p></li><br><li><p>Integrated with a smart bit allocation (SBA) feature to achieve better quality at a lower bit rate</p></li><br></ul> |

**Long-Term Reference (LTR) support**

Video compression works by eliminating redundancies within the frame (intra-frame) and between the frames (inter-frame). Earlier, the encoded frames that used to serve as a basis to derive future frames were known as reference frames.

The following reference frames allow advanced encoding applications to control the way a reference frame is stored and referred:

- **Short-Term Reference (STR)**: The encoder maintains the recent frames in a reference buffer list from the newest to the oldest. The encoder automatically manages frames using STRs for reference, and deletes them from a stored list when they're no longer used.
- **Long-Term Reference (LTR)**: Frames that the application can save, use, and remove. The LTR frames help improve quality and ensure error resiliency in video communication. The maximum number of frames that can be marked with LTR frames depends on the device capability.

LTR frames are useful in error-prone channels. Referring to LTR in error-prone channels reduces the possibility of drift errors due to channel losses. The receiver must confirm that the LTR is received successfully and that it can request a new LTR when an error occurs. The network protocols have checksums that can confirm this behavior, along with the decoder corruption flags. New LTR frames are generated from the sender until the receiver confirms that a successful LTR is received.

LTR frames are also useful in videos with scene changes where an LTR with the earlier scene is preserved. If that scene comes back, then the LTR can be used effectively.

At the start of a new Group-of-pictures (GOP), the encoder automatically fills the LTR slots, with the first slot (slot number 0) containing an IDR frame. Applications can explicitly send an LTR mark request to mark the LTR frames in the appropriate slots.

The following image shows the flow diagram for LTR usage, and how to mark and use the LTR frames on an H.264 or HEVC encoder:

<!--?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="Workflow steps of LTR encoding pattern in LTR feature."><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>Auto-mark 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>Auto-mark 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>Auto-mark 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>Mark as 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>Use as reference</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>Use as reference</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>Mark as 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. Check if the frame was marked <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. Check if the LTR at slot # 0 was <tspan x="45.81" dy="1.2em" class="st4">used as a reference</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. Mark frame as LTR at slot # 0</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. Mark frame as LTR at slot # 0</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. Using LTR at slot # 1 as <v:lf></v:lf><tspan x="68.88" dy="1.2em" class="st4">reference</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. Mark frame as LTR at slot # 2</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>Encoder</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>Refer</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>Encoder fills up the empty LTR slots aggressively at<v:lf></v:lf><tspan x="78.25" dy="1.2em" class="st4"> </tspan>the start of a new GOP</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>

**Figure: LTR encoding**

**Dynamic encoder properties**

The Adreno VPU encoder supports dynamic change of properties such as bit rate, frame rate, and sync frame. This support allows the application to change the properties and helps in improved visual experience, video data adjusting to network conditions, and minimizing the loss of data during transmission.

Last Published: Dec 23, 2025

[Previous Topic
Troubleshoot video](https://docs.qualcomm.com/bundle/publicresource/80-70023-20/topics/bring-up.md) [Next Topic
References](https://docs.qualcomm.com/bundle/publicresource/80-70023-20/topics/references.md)

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