Image Encode Processing (IEP)
The NvMedia Image Encode (IEP) component supports encoding the incoming NvMedia Image (YUV) inputs to H.264, H.265, and AV1.
For a list of supported encoding features, see Video Encode.
NvMedia Image Encode Processing (IEP) APIs for NVENC supports the following features:
For H.264 encoding, the encoder has the following features:
- Accepts YUV frames as input
- Encoding common resolutions up to 3840 x 2160
- Supports H.264 Baseline, Main, and High profiles with level up to 5.2
- Provides frame-only encoding
- For I-frame or I/P-frame encoding, the driver handles the picture type according to the Group of Pictures (GOP) and IDR period.
- For I/B/P encoding, the picture reordering is handled in application code by assigning the picture type, and then sending it to the driver for encoding.
- Supports all intra-macroblock types (16 x 16, 8 x 8, 4 x 4, PCM) and prediction types.
- Supports inter-macroblock partition sizes from 16 x 16, 16 x 8, 8 x 16 down to 8 x 8, and skip and direct B-modes.
- Supports disable, temporal, or spatial direct mode for:
- B-picture
- One reference picture for P-picture
- Two reference pictures for B-picture
- Supports multiple rate-control modes including:
- Constant QP
- Constant Bit Rate (CBR) single-pass
- Variable Bit Rate (VBR)
- VBR with minimum QP
- Supports dynamic slice mode based on byte size and static multiple slices in the frame.
- Supports intra-refresh mode with refresh period, and instant refresh P-picture.
- Supports adaptive 8x8 transform mode.
- Supports VUI and SEI insertion.
- Supports CAVLC and CABAC.
- Supports rotation/mirroring mode.
- Supports dynamic configure changes at the frame level:
- SPS PPS output on next frame
- Constrained frame encode
- Instant intra refresh P picture
- New SEI packet insertion
- GOP length and IDR period update
- Rate control mode change
For H.265 encoding, the encoder has the following features:
- Accepts YUV frames as input.
- Encoding common resolutions up to 3840 x 2160
- Supports H.265 Main profiles with level up to 6.0.
- Supports Frame only encoding.
- For I only or I/P encoding, the driver handles the picture type according to the GOP and IDR period. B pictures are not supported.
- Supports all intra CU types (32 x 32, 16 x 16, 8 x 8, 4 x 4, PCM) and prediction types.
- Inter CU partition sizes from 32x32 to 8x8, with partition mode of PART_2Nx2N, PART_2NxN, PART_Nx2N, PART_2NxnU, PART_2NxnD, PART_nLx2N PART_nRx2N plus skip.
- 1 reference picture for P picture.
- Multiple rate-control modes—constant QP, CBR (single-pass), VBR, VBR with min QP.
- Dynamic slice mode based on byte size and static multiple slices in the frame.
- Intra refresh mode with refresh period, and instant refresh P picture.
- VUI and SEI insertion.
- CABAC only.
- Dynamic configure change at frame level:
- SPS PPS output on next frame
- Constrained frame encode
- Instant intra refresh P picture
- New SEI packet insertion
- Gop length and IDR period update
- Rate control mode change
For AV1 encoding, the encoder has the following features:
- Accepts YUV frames as input (YUV420 only).
- Encoding common resolutions up to 7680 x 4320
- Supports main profile up to level 6.3
- Supports 8/10 bit encoding
- Supports Frame only encoding.
Note: Processing of a submitted task can potentially time out for tasks
that do not complete in real time within an internally defined timeout
(
mLocktimeout
). This implies that the applied configuration (such as
resolution and bitrate) is not supported on the platform at the configured hardware clocks.
This behavior shows up as failed/errored-out tasks even when the supplied configuration is
valid.