The H.264 Encoder API provides basic encode picture types.
Data Structures | |
struct | NvMediaNalData |
This is used to get header info (SPS/PPS/VPS) using GetAttribute call. More... | |
struct | NvMediaEncodeConfigH264VUIParams |
Holds H264 video usability information parameters. More... | |
struct | NvMediaEncodeExternalMeHintCountsPerBlocktype |
Holds an external motion vector hint with counts per block type. More... | |
struct | NvMediaEncodeExternalMEHint |
Holds an External Motion Vector hint. More... | |
struct | NvMediaEncodeConfigH264 |
Holds an H264 encoder configuration. More... | |
struct | NvMediaEncodeH264SEIPayload |
H.264 specific User SEI message. More... | |
struct | NvMediaEncodeInitializeParamsH264 |
Holds H264-specific encode initialization parameters. More... | |
struct | NvMediaEncodePicParamsH264 |
H264 specific encoder picture params. More... | |
Macros | |
#define | MAX_NON_SLICE_DATA_SIZE |
Maximum encoded header info size. More... | |
#define MAX_NON_SLICE_DATA_SIZE |
Maximum encoded header info size.
Definition at line 550 of file nvmedia_common_encode.h.
enum NvMediaEncAttrType |
Specifies the Video encoder get attribute type.
This can be extended to get other encoding parameter information.
Definition at line 524 of file nvmedia_common_encode.h.
Defines H.264 specific Adaptive Transform modes.
Definition at line 398 of file nvmedia_common_encode.h.
Defines H.264 specific Bdirect modes.
Definition at line 383 of file nvmedia_common_encode.h.
Defines H.264 entropy coding modes.
Enumerator | |
---|---|
NVMEDIA_ENCODE_H264_ENTROPY_CODING_MODE_CAVLC | Entropy coding mode is CAVLC. |
NVMEDIA_ENCODE_H264_ENTROPY_CODING_MODE_CABAC | Entropy coding mode is CABAC. |
Definition at line 372 of file nvmedia_common_encode.h.
Defines H264 encoder configuration features.
Enumerator | |
---|---|
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_OUTPUT_AUD | Enable to write access unit delimiter syntax in bitstream. |
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_INTRA_REFRESH | Enable gradual decoder refresh or intra refresh. If the GOP structure uses B frames this will be ignored |
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_DYNAMIC_SLICE_MODE | Enable dynamic slice mode. Client must specify max slice size using the NvMediaEncodeConfigH264::maxSliceSizeInBytes field. This setting is not supported in the QNX Safety build. |
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_CONSTRANED_ENCODING | Enable constrainedFrame encoding where each slice in the constrained picture is independent of other slices. |
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_LOSSLESS_COMPRESSION | Enable lossless compression.
|
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_SLICE_LEVEL_OUTPUT | Enable slice level output encoding. This enables delivery encoded data slice by slice to client to reduce encode latency. This setting is not supported in the QNX Safety build. |
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_RTP_MODE_OUTPUT | Enable RTP mode output. NAL unit start code will be replaced with NAL size for the NAL units. |
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_EXT_PIC_RC_HINT | Enable support for external picture RC hint.
|
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_DYNAMIC_RPS | Enable support for dynamic reference picture set RPS/DPB control support. After receiving an input buffer and result of previous frame encoding, based on real time information, Some client software determines properties for the new input buffer (long term/short term/non-referenced, frame number/poc/LT index). This setting is not supported in the QNX Safety build. |
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_MV_BUFFER_DUMP | Enable support for motion vector buffer dump. This will enable motion vector dump. Motion vector buffer will be appended at the end of encoded bitstream data. This setting is not supported in the QNX Safety build. |
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_PROFILING | Enable encoder profiling. Profiling information would be added as part of output extradata. This setting is not supported in the QNX Safety build. |
NVMEDIA_ENCODE_CONFIG_H264_INIT_QP | Enable support to use client provided Initial QP for all frame types. |
NVMEDIA_ENCODE_CONFIG_H264_QP_MAX | Enable support to use client provided QP max for all frame types. |
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_FOUR_BYTE_START_CODE | Enable support to use 4 byte start code in all the slices in a picture. |
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_ULTRA_FAST_ENCODE | Enable ultra fast encoding. It overrides some of the quality settings to achieve ultra fast encoding. This is equivalent to setting NVMEDIA_ENCODE_QUALITY_L0 as the NvMediaEncodeQuality. |
NVMEDIA_ENCODE_CONFIG_H264_ENABLE_MV_BUFFER_DUMP_V2 | Enable support for motion vector buffer dump in a simplified (V2) format. Motion vector buffer will be appended to the end of encoded bitstream data retrieved using NvMediaIEPGetBitsEx. Refer NvMediaEncodeOutputExtradata for more information regarding the format of the dumped MV output. Either NVMEDIA_ENCODE_CONFIG_H264_ENABLE_MV_BUFFER_DUMP_V2 or NVMEDIA_ENCODE_CONFIG_H264_ENABLE_MV_BUFFER_DUMP should be enabled at a given time. If both are enabled, V2 format will be used. It should be ensured that size of NvMediaBitstreamBuffer passed to NvMediaIEPGetBitsEx has sufficient space to store the MV buffer dump. The numBytesAvailable returned by NvMediaIEPBitsAvailable or numBytes returned by NvMediaIEPGetBitsEx does not take MV buffer dump size into account - represents only the size of the encoded bits that are available. While allocating bitstream buffers, the additional amount of space required in bitstream to accommodate MV buffer data needs to be added. This can be calculated as follows: mvBufferSize = sizeof(NvMediaEncodeMVBufferHeader) +
ALIGN_256(numMacroBlocks * sizeof(NvMediaEncodeMVData))
where,
NumMacroBlocks =
(ALIGN_16(InputWidth)/16) * (ALIGN_16(InputHeight)/16)
bitstreamSize = ALIGN_8(bitsAvailable) + mvBufferSize
ALIGN_N refers to an operation which returns a multiple of N, greater than or equal to a number, closest to the number.
|
Definition at line 650 of file nvmedia_common_encode.h.
Defines motion prediction exclusion flags for H.264.
Definition at line 412 of file nvmedia_common_encode.h.
Defines motion search mode control flags for H.264.
Definition at line 484 of file nvmedia_common_encode.h.
Define H.264 pic_order_cnt_type.
Enumerator | |
---|---|
NVMEDIA_ENCODE_H264_POC_TYPE_AUTOSELECT | Automatic level selection. |
NVMEDIA_ENCODE_H264_POC_TYPE_0 | Pic_order_cnt_type 0. |
NVMEDIA_ENCODE_H264_POC_TYPE_2 | Pic_order_cnt_type 2. |
Definition at line 537 of file nvmedia_common_encode.h.
Specifies the frequency of the writing of Sequence and Picture parameters for H.264.
Definition at line 510 of file nvmedia_common_encode.h.
enum NvMediaEncodeLevel |
Defines encoding levels for H264 encoder.
Definition at line 250 of file nvmedia_common_encode.h.
Defines encoding levels for H265 encoder.
Definition at line 296 of file nvmedia_common_encode.h.
Defines encoding Picture encode flags.
Definition at line 335 of file nvmedia_common_encode.h.
enum NvMediaEncodePicType |
Input picture type.
Definition at line 207 of file nvmedia_common_encode.h.
enum NvMediaEncodeProfile |
Defines encoding profiles.
Definition at line 227 of file nvmedia_common_encode.h.
enum NvMediaEncodeQuality |
Defines encode quality level pre-settings.
Definition at line 350 of file nvmedia_common_encode.h.