# Advanced video specifications For more information about 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 | | > | 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 | | | | | > | H.264 | Constrained baseline, baseline, main, high, constrained high profiles; up to level 5.2 | | | | > | VP9 | | | | 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 | | | | None | > | HEVC | | | | 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-70030-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 | | | | Individual slice-based decoding | > | H.264 | Constrained baseline, Baseline, main, high, constrained high profiles; up to level 5.2 | | | | > | VP9 | | | | | > | AV1 | | | | 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 | | | | None | > | HEVC | Main profile 8-bit, up to level 5.1 Main/High tier VBR and CBR | | | Multislice is enabled | > > > |
Multichannel/Resolution/ fps/Codec |
Use case combination |
Recommended bit rate per session (Mbps) |
Recommended bit rate per session (Mbps) |
Recommended bit rate per session (Mbps) |
Recommended bit rate per session (Mbps) | > | --- | --- | --- | --- | --- | --- | > |
Multichannel/Resolution/ fps/Codec |
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-70030-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 | | | | Individual slice-based decoding | > | H.264 | Constrained baseline, baseline, main, high, constrained high profiles; up to level 6.1 | | | | > | VP9 | | | | Profile 2, 12-bit isn't supported | > | AV1 | | | | 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 | | | | Individual encoded slice delivery per buffer | > | HEVC | | | | | ## 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 frames into many layers, with frames in each 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: **Figure: Hier-P layer encoding pattern** In the 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, restricting corruption to 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 channel loss in streaming and casting applications that favor a constant bit rate. The Adreno VPU supports a 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 YUV frame without consuming extra power. **Rate control** The following table lists the supported rate control algorithms: Table: Rate control algorithms | Rate control mode | Description | | --- | --- | | Variable bit rate (VBR) | | | Constant bit rate (CBR) | | | Maximum bit rate (MBR) | | **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 how 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 flow diagram shows LTR usage and how to mark and use LTR frames on an H.264 or HEVC encoder: Page-1 n (IDR) n (IDR) n + 1 (P) n + 1 (P) n + 2 (P) n + 2 (P) n + 3 (P) n + 3 (P) n + 4 (P) n + 4 (P) n + 5 (P) n + 5 (P) n + 5 (P) n + 5 (P) n n b b n n n + 2 n + 2 n + 1 n + 1 n n n + 2 n + 2 n + 1 n + 1 n + 3 n + 3 n + 2 n + 2 n + 1 n + 1 n + 3 n + 3 n + 2 n + 2 n + 1 n + 1 n + 3 n + 3 n + 5 n + 5 n + 1 n + 1 n + 3 n + 3 Auto-mark LTR Auto-mark LTR Auto-mark LTR Auto-mark LTR Auto-mark LTR Auto-mark LTR Mark as LTR Mark as LTR Use as reference Use as reference Use as reference Use as reference Mark as LTR Mark as LTR 2. Check if the frame was marked LTR 2. Check if the frame was marked LTR 4. Check if the LTR at slot # 0 was used as a reference 4. Check if the LTR at slot # 0 was used as a reference 1. Mark frame as LTR at slot # 0 1. Mark frame as LTR at slot # 0 3. Mark frame as LTR at slot # 0 3. Mark frame as LTR at slot # 0 5a. Using LTR at slot # 1 as reference 5a. Using LTR at slot # 1 as reference 5b. Mark frame as LTR at slot # 2 5b. Mark frame as LTR at slot # 2 Encoder Encoder Slot# 2 Slot# 2 Slot# 1 Slot# 1 Slot# 0 Slot# 0 Refer Refer Encoder fills up the empty LTR slots aggressively at the star... Encoder fills up the empty LTR slots aggressively at the start of a new GOP **Figure: LTR encoding** **Dynamic encoder properties** The Adreno VPU encoder supports dynamic changes to 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: Jun 26, 2026 [Previous Topic Troubleshoot video](https://docs.qualcomm.com/bundle/publicresource/80-70030-20/topics/bring-up.md) [Next Topic References](https://docs.qualcomm.com/bundle/publicresource/80-70030-20/topics/references.md) Source: [https://docs.qualcomm.com/doc/80-70030-20/topic/feature-descriptions.html](https://docs.qualcomm.com/doc/80-70030-20/topic/feature-descriptions.html)