# Video encode

Source: [https://docs.qualcomm.com/doc/80-88500-4/topic/133_Video_encode.html](https://docs.qualcomm.com/doc/80-88500-4/topic/133_Video_encode.html)

Adreno VPU 665 supports H.264, HEVC, and VP8 video encoding standards.

Table : Adreno VPU 665 codec specification – Encoder

| Encoder standard | Supported profile, level, and <br>RC mode | Minimum/Maximum resolution, maximum frame rate, and maximum bit rate | Supported resolution, frame rate, and bit rate | Limitations/tools not supported |
| --- | --- | --- | --- | --- |
| H.264 | Constrained baseline, baseline, main, high, constrained high profiles; up to level 6.0<br><br><br>VBR\_CFR, CBR\_CFR, CBR\_VFR, RC\_OFF | <ul class="ul"><li class="li">Minimum resolution: 128 × 128</li><br><li class="li">Maximum resolution: 8192 × 4320 or 4320 × 8192</li><br><li class="li">Maximum frame rate: 960 fps</li><br><li class="li">Maximum bit rate: 220 Mbps (CAVLC), 160 Mbps (CABAC)</li><br><li class="li">Maximum operating rate: 960</li><br></ul> | <ul class="ul"><li class="li">1280 × 720 at 960 fps, 140 Mbps</li><br><li class="li">1920 × 1088 at 480 fps, 128 Mbps</li><br><li class="li">3840 × 2160 at 120 fps, 120 Mbps</li><br><li class="li">7680 × 4320 at 30 fps, 105 Mbps</li><br></ul> | Individual encoded slice delivery per buffer |
| HEVC | Main profile 8-bit, up to level 6.0 Main/High tier VBR\_CFR, CBR\_CFR, CBR\_VFR, RC\_OFF | <ul class="ul"><li class="li">Minimum resolution: 128 × 128</li><br><li class="li">Maximum resolution: 8192 × 4320 or 4320 × 8192</li><br><li class="li">Maximum frame rate: 960 fps</li><br><li class="li">Maximum bit rate: 160 Mbps</li><br><li class="li">Maximum operating rate: 960</li><br></ul> | <ul class="ul"><li class="li">1280 × 720 at 960 fps, 98 Mbps</li><br><li class="li">1920 × 1088 at 480 fps, 90 Mbps</li><br><li class="li">3840 × 2160 at 120 fps, 84 Mbps</li><br><li class="li">7680 × 4320 at 30 fps, 74 Mbps</li><br></ul> | Individual encoded slice delivery per buffer<br><br><br>Multislice imaging is enabled |
| HEVC(10-bit) | Main10, Main10HDR10, Main10HDR10Plus\*, profile up to level 6, Main/High tier, HLG/HDR10/HDR10+ schemes<br><br><br>VBR\_CFR, CBR\_CFR | <ul class="ul"><li class="li">Minimum resolution: 128 × 128</li><br><li class="li">Maximum resolution: 8192 × 4320 or 4320 × 8192</li><br><li class="li">Maximum frame rate: 60 fps</li><br><li class="li">Maximum bit rate: 160 Mbps</li><br><li class="li">Maximum operating rate: 960</li><br></ul> | <ul class="ul"><li class="li">1280 × 720 at 60 fps, 19 Mbps</li><br><li class="li">1920 × 1088 at 60 fps, 25 Mbps</li><br><li class="li">3840 × 2160 at 60 fps, 62 Mbps</li><br><li class="li">7680 × 4320 at 30 fps, 81 Mbps</li><br></ul> | <ul class="ul"><li class="li">All Intra/IDR frames encode only</li><br><li class="li">Individual encoded slice delivery per buffer</li><br><li class="li">Multislice imaging is enabled </li><br><li class="li">HSR/HFR greater than 60 fps</li><br></ul> |
| VP8 | Profile 0 (main), version 0, version 1, version 2, version 3<br><br><br>VBR\_CFR, CBR\_CFR | <ul class="ul"><li class="li">Minimum resolution: 128 × 128</li><br><li class="li">Maximum resolution: 4096 × 2160 or 2160 × 4096</li><br><li class="li">Maximum frame rate: 60 fps</li><br><li class="li">Maximum bit rate: 70 Mbps</li><br><li class="li">Maximum operating rate: 960</li><br></ul> | <ul class="ul"><li class="li">1280 × 720 at 60 fps, 24 Mbps</li><br><li class="li">1920 × 1088 at 60 fps, 32 Mbps</li><br><li class="li">3840 × 2160 at 60 fps, 70 Mbps</li><br><li class="li">4096 × 2160 at 60 fps, 70 Mbps</li><br></ul> | <ul class="ul"><li class="li">All Intra/IDR frames encode only</li><br><li class="li">Individual encoded slice delivery per buffer</li><br></ul> |
| HEIF/HEIC<br>(HEVC image coding) | Main still picture, up to level 6<br><br><br>CQ | <ul class="ul"><li class="li">Minimum resolution: 128 × 128</li><br><li class="li">Maximum resolution: 16384 × 16384</li><br><li class="li">Quality factor: 0 – 100</li><br></ul> | Tiled image encode: 256MP (16384 × 16384) | 10-bit is not supported<br><br><br>Image encode without tiling |

Table : Qualcomm software specification – encoder

| Encoder standard | Supported profile, level, and RC mode | Minimum/Maximum resolution and maximum frame rate | Supported resolution, frame rate, and bit rate | Limitations/tools not supported |
| --- | --- | --- | --- | --- |
| MPEG-4 | Simple profile, up to level 5<br><br><br>VBR\_CFR, CBR\_VFR | <ul class="ul"><li class="li">Minimum resolution: 96 × 96</li><br><li class="li">Maximum resolution: 864 × 480 or 480 × 864</li><br><li class="li">Maximum frame rate: 30 fps</li><br></ul> | <ul class="ul"><li class="li">864 × 480 at 30 fps, 8 Mbps	</li><br></ul> | <ul class="ul"><li class="li">RVLC</li><br><li class="li">Data partition</li><br><li class="li">I and P frame types only</li><br><li class="li">UBWC color formats</li><br><li class="li">CBR_CFR</li><br></ul> |
| H.263 | Profile 0, up to level 70<br><br><br>VBR\_CFR, CBR\_VFR | <ul class="ul"><li class="li">Minimum resolution: 96 × 96</li><br><li class="li">Maximum resolution: 864 × 480 or 480 × 864</li><br><li class="li">Maximum frame rate: 30 fps</li><br></ul> | <ul class="ul"><li class="li">352 × 288 at 30 fps, 2 Mbps</li><br><li class="li">864 × 480 at 30 fps, 2 Mbps*</li><br></ul> | <ul class="ul"><li class="li">Supports profile 0 tools only</li><br><li class="li">UBWC color formats</li><br><li class="li">CBR_CFR</li><br></ul> |

For non-UBWC capability, consider a lesser value of the UBWC codec capabilities or consider
      values listed in the table:

| Encoder standard | Color formats | Minimum/Maximum resolution and maximum frame rate | Supported resolution, frame rate, bit rate |
| --- | --- | --- | --- |
| All VPU665 encoders | <ul class="ul"><li class="li">VENUS_NV12</li><br><li class="li">VENUS_NV21</li><br><li class="li">VENUS_P010</li><br><li class="li">ARGB8888</li><br></ul> | <ul class="ul"><li class="li">Minimum resolution: 128 × 128</li><br><li class="li">Maximum resolution: 3840 × 2160 or 2160 × 3840</li><br><li class="li">Maximum frame rate: 30 fps</li><br><li class="li">Maximum bit rate: 50 Mbps</li><br></ul> | <ul class="ul"><li class="li">1280 × 720 at 30 fps, 14 Mbps</li><br><li class="li">1920 × 1088 at 30 fps, 20 Mbps</li><br><li class="li">3840 × 2160 at 30 fps, 50 Mbps</li><br></ul> |

## Multi-Instance and HFR Encode

| Use case | Capability |
| --- | --- |
| HFR camcorder (HFR is supported for H.264/HEVC) | 3840 × 2160 at 120 fps |
| HFR camcorder (HFR is supported for H.264/HEVC) | 1920 × 1088 at 480 fps |
| HFR camcorder (HFR is supported for H.264/HEVC) | 1280 × 720 at 960 fps |
| Multiple encode instances (A second 8K instance is not supported even though the<br>                  frame rate of the first instance is less than 30 fps.) | 1 × (7680 × 4320 at 30 fps)\*\*\* |
| Multiple encode instances (A second 8K instance is not supported even though the<br>                  frame rate of the first instance is less than 30 fps.) | 24 x (1280 x 720 at 30 fps) |
| Multiple encode instances (A second 8K instance is not supported even though the<br>                  frame rate of the first instance is less than 30 fps.) | 24 x (1920 x 1088 at 30 fps) |
| Multiple encode instances (A second 8K instance is not supported even though the<br>                  frame rate of the first instance is less than 30 fps.) | 4 × (3840 × 2160 at 30 fps) |
|  |  |
|  |  |
|  |  |

## Decode and encode concurrency

In the concurrency use case, ensure that the following conditions are met:

- The maximum decoder capacity should not exceed 4096 × 2160 at 60 fps or equivalent
          macroblocks.
- The maximum encoder capacity should not exceed 4096 × 2160 at 60 fps or equivalent
          macroblocks.
- The combined frame rate of decoder and encoder should not exceed 960 fps.

| Use case | Maximum concurrency |
    | --- | --- |
    | Real time/Nonreal time | 4096 × 2160 at 60 fps decode + 4096 × 2160 at 30 fps encode |
    | Real time/Nonreal time | 3840 × 2160 at 60 fps decode + 3840 × 2160 at 60 fps encode |
    |  |  |

## Video encoder preprocessing

- All preprocessing algorithms run on Adreno VPU665.
- Capabilities are assuming the UBWC color formats. Capability is less for color formats that are not UBWC.

| Algorithm | Configuration | Codecs and Capability | Limitations |
| --- | --- | --- | --- |
| Downscale | Up to 1/8 scaling ratio | <ul class="ul"><li class="li">H.264, HEVC, HEVC10, VP8</li><br><li class="li">Same as codec specification</li><br></ul> | <ul class="ul"><li class="li">Capability is reduced by 50% if rotation/flip is enabled</li><br><li class="li">BLUR feature is not supported if downscalar is enabled</li><br></ul> |
| Rotation | 90/180/270 degree rotation | <ul class="ul"><li class="li">H.264, HEVC, HEVC10, VP8, H.263</li><br><li class="li">Same as codec specification</li><br></ul> | <ul class="ul"><li class="li">Capability is reduced by 50% with downscalar</li><br></ul> |
| Color space conversion (CSC) | ITU Rec 2020/<br><br><br>Rec. 601 to <br>Rec. 709 conversion | <ul class="ul"><li class="li">H.264, HEVC, HEVC10, VP8</li><br><li class="li">Same as codec specification</li><br></ul> | Not supported for RGBA8888 input |
| Blur effect | 0 (none) to 100 (max-strength) | <ul class="ul"><li class="li">H.264, HEVC, HEVC10</li><br><li class="li">Same as codec specification</li><br></ul> | Blur is disabled if rotation/flip/downscalar is enabled |
| Flip (Static/Dynamic) | Horizontal flip/Vertical flip | <ul class="ul"><li class="li">H.264, HEVC, HEVC10, VP8</li><br><li class="li">Same as codec specification</li><br></ul> | <ul class="ul"><li class="li">Capability is reduced by 50% with downscalar</li><br><li class="li">Dynamic flip is not supported if downscalar or Blur effect is enabled</li><br></ul> |

## All intra frame encoder support

- Maximum performance is 1920 × 1088 at 120 fps, 1280 × 720 at 240 fps
- Maximum Macroblocks: 979200
- Minimum Resolution: 128 × 128, Maximum Resolution: 7680 × 4320
- Codecs: H.264, HEVC (8-bit)
- Maximum frame rate: 240 fps
- Maximum bitrate: 200 Mbps
    - Recommended bitrate: 4x IPP bitrate
- Rate control: VBR\_CFR, RC\_OFF
- Layer encoding, long term reference, intra refresh, multi-slice, and low latency are not
          supported
- No HDR recording

## Automatic blur

- Improves video encoder quality at lower bit rate use cases (for social media applications)
- Enabled for 8-bit and 10-bit encode
- Disabled if rotation/flip/downscalar is enabled
- Auto enabled if the session bit rate is less than the cut off values shown in the following table:

| Resolution | 352 × 288 | 960 × 448 | 960 × 544 | 1280 × 720 | 1920 × 1088 | 3840 × 2160 |
| --- | --- | --- | --- | --- | --- | --- |
| Cut-off bit rate (bps at 30 fps) | 352000 | 1320000 | 1320000 | 1760000 | 3080000 | 6468000 |
| The cut-off bitrates are interpolated for the resolutions and frame rates that are not listed in the table. | The cut-off bitrates are interpolated for the resolutions and frame rates that are not listed in the table. | The cut-off bitrates are interpolated for the resolutions and frame rates that are not listed in the table. | The cut-off bitrates are interpolated for the resolutions and frame rates that are not listed in the table. | The cut-off bitrates are interpolated for the resolutions and frame rates that are not listed in the table. | The cut-off bitrates are interpolated for the resolutions and frame rates that are not listed in the table. | The cut-off bitrates are interpolated for the resolutions and frame rates that are not listed in the table. |

## Encoder – Adaptive B-frame support

- Allowed for resolutions up to 3840 × 2160 at 60 fps, 120 Mbps, or equivalent macroblocks.
- Maximum number of B-frames supported between two P-frames is one (1).
- Enabled for H.264 High/Main profiles and HEVC Main/Main10 profiles for the session configured with VBR\_CFR rate control.
- Layer encoding is not supported.
- Supports IPbPbP pattern only (b can be replaced as P adaptively).
- ROI is supported with B-frame encode.

## Encoder – Region-of-Interest (ROI)

- Supports H.264 and HEVC codecs
- Same as codec capability
- Supports the VBR\_CFR RC mode
- ROI is validated on video HAL only

**Parent Topic:** [Video](https://docs.qualcomm.com/doc/80-88500-4/topic/130_Video.html)

Last Published: Aug 18, 2023

[Previous Topic
Video decode](https://docs.qualcomm.com/bundle/publicresource/80-88500-4/topics/132_Video_decode.md) [Next Topic
UVC](https://docs.qualcomm.com/bundle/publicresource/80-88500-4/topics/134_UVC.md)