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.