# 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
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
VBR\_CFR, CBR\_CFR, CBR\_VFR, RC\_OFF |
- Minimum resolution: 128 × 128
- Maximum resolution: 8192 × 4320 or 4320 × 8192
- Maximum frame rate: 960 fps
- Maximum bit rate: 220 Mbps (CAVLC), 160 Mbps (CABAC)
- Maximum operating rate: 960
| - 1280 × 720 at 960 fps, 140 Mbps
- 1920 × 1088 at 480 fps, 128 Mbps
- 3840 × 2160 at 120 fps, 120 Mbps
- 7680 × 4320 at 30 fps, 105 Mbps
| 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 | - Minimum resolution: 128 × 128
- Maximum resolution: 8192 × 4320 or 4320 × 8192
- Maximum frame rate: 960 fps
- Maximum bit rate: 160 Mbps
- Maximum operating rate: 960
| - 1280 × 720 at 960 fps, 98 Mbps
- 1920 × 1088 at 480 fps, 90 Mbps
- 3840 × 2160 at 120 fps, 84 Mbps
- 7680 × 4320 at 30 fps, 74 Mbps
| Individual encoded slice delivery per buffer
Multislice imaging is enabled |
| HEVC(10-bit) | Main10, Main10HDR10, Main10HDR10Plus\*, profile up to level 6, Main/High tier, HLG/HDR10/HDR10+ schemes
VBR\_CFR, CBR\_CFR | - Minimum resolution: 128 × 128
- Maximum resolution: 8192 × 4320 or 4320 × 8192
- Maximum frame rate: 60 fps
- Maximum bit rate: 160 Mbps
- Maximum operating rate: 960
| - 1280 × 720 at 60 fps, 19 Mbps
- 1920 × 1088 at 60 fps, 25 Mbps
- 3840 × 2160 at 60 fps, 62 Mbps
- 7680 × 4320 at 30 fps, 81 Mbps
| - All Intra/IDR frames encode only
- Individual encoded slice delivery per buffer
- Multislice imaging is enabled
- HSR/HFR greater than 60 fps
|
| VP8 | Profile 0 (main), version 0, version 1, version 2, version 3
VBR\_CFR, CBR\_CFR | - Minimum resolution: 128 × 128
- Maximum resolution: 4096 × 2160 or 2160 × 4096
- Maximum frame rate: 60 fps
- Maximum bit rate: 70 Mbps
- Maximum operating rate: 960
| - 1280 × 720 at 60 fps, 24 Mbps
- 1920 × 1088 at 60 fps, 32 Mbps
- 3840 × 2160 at 60 fps, 70 Mbps
- 4096 × 2160 at 60 fps, 70 Mbps
| - All Intra/IDR frames encode only
- Individual encoded slice delivery per buffer
|
| HEIF/HEIC
(HEVC image coding) | Main still picture, up to level 6
CQ | - Minimum resolution: 128 × 128
- Maximum resolution: 16384 × 16384
- Quality factor: 0 – 100
| Tiled image encode: 256MP (16384 × 16384) | 10-bit is not supported
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
VBR\_CFR, CBR\_VFR | - Minimum resolution: 96 × 96
- Maximum resolution: 864 × 480 or 480 × 864
- Maximum frame rate: 30 fps
| - 864 × 480 at 30 fps, 8 Mbps
| - RVLC
- Data partition
- I and P frame types only
- UBWC color formats
- CBR_CFR
|
| H.263 | Profile 0, up to level 70
VBR\_CFR, CBR\_VFR | - Minimum resolution: 96 × 96
- Maximum resolution: 864 × 480 or 480 × 864
- Maximum frame rate: 30 fps
| - 352 × 288 at 30 fps, 2 Mbps
- 864 × 480 at 30 fps, 2 Mbps*
| - Supports profile 0 tools only
- UBWC color formats
- CBR_CFR
|
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 | - VENUS_NV12
- VENUS_NV21
- VENUS_P010
- ARGB8888
| - Minimum resolution: 128 × 128
- Maximum resolution: 3840 × 2160 or 2160 × 3840
- Maximum frame rate: 30 fps
- Maximum bit rate: 50 Mbps
| - 1280 × 720 at 30 fps, 14 Mbps
- 1920 × 1088 at 30 fps, 20 Mbps
- 3840 × 2160 at 30 fps, 50 Mbps
|
## 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
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
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
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
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 | - H.264, HEVC, HEVC10, VP8
- Same as codec specification
| - Capability is reduced by 50% if rotation/flip is enabled
- BLUR feature is not supported if downscalar is enabled
|
| Rotation | 90/180/270 degree rotation | - H.264, HEVC, HEVC10, VP8, H.263
- Same as codec specification
| - Capability is reduced by 50% with downscalar
|
| Color space conversion (CSC) | ITU Rec 2020/
Rec. 601 to
Rec. 709 conversion | - H.264, HEVC, HEVC10, VP8
- Same as codec specification
| Not supported for RGBA8888 input |
| Blur effect | 0 (none) to 100 (max-strength) | - H.264, HEVC, HEVC10
- Same as codec specification
| Blur is disabled if rotation/flip/downscalar is enabled |
| Flip (Static/Dynamic) | Horizontal flip/Vertical flip | - H.264, HEVC, HEVC10, VP8
- Same as codec specification
| - Capability is reduced by 50% with downscalar
- Dynamic flip is not supported if downscalar or Blur effect is enabled
|
## 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)