![]() | DRIVE 5.0 Linux Open Source Software Development Guide 5.0.10.3 Release |
Name | Description |
nvmimg_enc (the sample application) | Calls the NvMedia encode APIs. On receipt of the headers and bitstream, nvmimg_enc packetizes or encrypts the encoded stream and saves the result to an output file. |
NvMedia Encoder API | Calls the low-level hardware driver interface to issue encoding commands to NVENC microcode. |
Low-level hardware driver | Writes out high level headers, including SPS, PPS, VUI and SEI. The driver creates and maintains reference picture surfaces, the output bitstream buffers, and the internal status buffers. For each input picture, the driver provides a configuration data structure (picture set up) that contains encoder parameters along with the encode commands to the NVENC microcode. This structure contains: • Buffer information (current picture, reference pictures) • Sequence and picture parameter set information and rate control configuration • Other module configurations as needed |
NVENC Microcode | Accesses the hardware engine to schedule the encoding commands, and return the encode status including bitstreams, statistics, etc. |
NVENC Hardware Engine | Handles slice header and data. |
Option | Parameter | Description |
-cf | [base-config] | Specifies the base encoder configuration file (basic). |
Option | Parameter | Description |
-h | N/A | Displays guidance on using this application. |
-v | Logging level • 0 Errors • 1 Warnings • 2 Info • 3 Debug | If the option is not provided, uses 0 Errors. |
-cf | [base-config] | Encoder configuration file (basic) |
-sf | [specific-config] | Overrides parameters specified in the base configuration file. Encoder configuration specific (specific). |
-p | [p1=v1]..[pN=vN] | Overrides parameters set through the configuration files. Sets parameter <p1> with value <v1>...<pN> with value <vN>. |
-crc | [num_second] | Enables the blackbox mode. |
-blackbox | [num_second] | Blackbox mode with num_second recording time. |
Parameter | Description |
InputFile | Identifies the file sent to the encoder. |
InputFileFormat | Input file format. Supported formats include: • 0: IYUV • 1: YV12 • 3: IYUV444 • 4: IYUV420_10bit • 5: IYUV444_10bit |
OutputFile | Specifies the output file. |
StartFrame | Specifies the start frame for encoding. 1: number of frames in the stream. |
FramesToBeEncoded | Specifies the number of frames to encode. |
EPCodec | Specifies the video codec type. Codecs Types include: • 0: H.264 codec • 1: H.265 codec |
EPSourceRectSpecified | When set to NVMEDIA_TRUE, constrains the source to be encoded to the specified rectangle. For RBG input only. |
EPSourceRectX0 | One of 4 parameters that specify the area from the top-left point [x0,y0] to the bottom-right point [x1,y1]. See EPSourceRectSpecified. |
EPSourceRectY0 | See EPSourceRectX0. |
EPSourceRectX1 | See EPSourceRectX0. |
EPSourceRectY1 | See EPSourceRectX0. |
EPRateControlSectionIndex | Provides an index of the RC_params section used for encoder initialization. |
ExplicitFrameIntervalPattern | Specifies the frame interval pattern. The values in the string are the EncodePic_Params section used for each frame. For example, if the given pattern is 123, that means for: • Frames number 1, 4, 7, 10 etc... EncodePic_Params section #1 is used. • Frames number 2, 5, 8, 11 etc... EncodePic_Params section #2 is used. • Frames 3, 6, 9, 12 etc... EncodePic_Params section #3 is used. |
ExplicitFrameIntervalPatternLength | Specifies the length of the interval pattern. |
Parameter | Description |
EPEncodeWidth | Specifies the width of the encode. |
EPEncodeHeight | Specifies the height of the encode. |
EPEnableLimitedRGB | When set to NVMEDIDA_TRUE, specifies limited RGB (16-235) input. |
EPFrameRateNum | Specifies the numerator for frame rate used for encoding; in frames per second Frame rate = EPFrameRateNum / EPFrameRateDen |
EPFrameRateDen | Specifies the denominator for frame rate used for encoding; in frames per second. (See EPFrameRateNumb, above.) |
EPGopLength | Specifies the number of pictures in one GOP. If set to 0, keyframes are not inserted automatically. |
EPGopPattern | Specifies the GOP pattern. If GOP length is set to 0, Frame Interval Pattern must be set to IPP Possible interval patterns include: • 0: I • 1: IPP • 2: IBP • 3: IBBP |
EPEncodeRotation | Specifies the rotation of the input surface. Possible values include: • 0x0: No rotation • 0x1: 90 degrees rotation • 0x2: 180 degrees rotation • 0x3: 270 degrees rotation |
EPEncodeMirroring | Specifies the mirroring of the input surface. Possible values include: • 0x0: No mirroring • 0x1: Horizontal mirroring • 0x2: Vertical mirroring • 0x3: Horizontal and vertical mirroring |
EPMaxNumRefFrames | Specifies the maximum number of reference frames. Possible values include: • EPMaxNumRefFrames =0 for I Only mode • EPMaxNumRefFrames =1 for IP mode • EPMaxNumRefFrames =2 for IBP mode |
Parameter | Description |
QPBSlice | Specifies the Quantization parameter for B slices [0-51]. |
QPISlice | Specifies the Quantization parameter for I Slices [0-51]. |
QPPSlice | Specifies the Quantization parameter P Slices [0-51]. |
Parameter | Description |
RCMode | Specifies the rate control mode. Supported modes include • 0x0 = Constant bitrate mode • 0x1 = Constant QP mode • 0x2 = Variable bitrate mode • 0x3 = Variable bitrate mode with MinQP |
RCAverageBitrate | Specifies the average bitrate in bits per second; used for encoding. |
RCMaxBitrate | Specifies the maximum bitrate for the encoded output. This is used for the Variable Bit Rate (VBR) and is ignored for the Constant Bit Rate (CBR) mode. |
RCVbvBufferSize | Specifies the VBV (HRD) buffer size in bits. Set to 0 to use the default VBV buffer size. |
RCVbvInitialDelay | Specifies the VBV (HRD) buffer size in bits. Set to 0 to use the default VBV buffer size. |
RCEnableMinQP | Set this to 1 if minimum QP is used for the rate control. |
RCEnableMaxQP | Set this to 1 if maximum QP is used for the rate control. |
RCConstQPInde | xSpecifies the initial QP_Params index used for encoding. These values are used for all frames, if in Constant QP mode. |
RCMinQPInde | xSpecifies the QP_Params section index used as the minimum QP values for rate control. |
RCMaxQPInde | xSpecifies the QP_Params section index used as the maximum QP values for rate control. |
Parameter | Description |
EPEencodePicFlags | Specifies the bit-wise OR’ed encode picture flags. Available flags include: • 0x1: Encode the current picture as an Intra picture. • 0x2: Encode the current picture as an IDR picture. This flag is valid when the Picture type decision is taken by the Encoder [enable PTD is set to 1]. • 0x4: Writes the sequence and picture header in encoded bitstream of the current picture. • 0x8: Indicates the end of the input stream. • 0x10: Indicates a change in bitrate from the current picture onwards. • 0x20: Indicates the user forced constant QP Rate control from the current picture onwards. • 0x40: Indicates a change in the Rate control mode on the fly from current picture onwards. |
EPInputDuration | Specifies the duration of the input picture. |
EPPictureType | Specifies the input picture type. It is required to explicitly set this parameter, by the client, if the client has not set the Enable PTD to 1. Available picture types include: • 0x0: Forward predicted • 0x01: Bi-directionally predicted picture • 0x02: Intra predicted picture • 0x03: IDR picture • 0x04: Bi-directionally predicted with only Intra MBs • 0x05: Picture is skipped • 0x06: First picture in intra refresh cycle • 0xFF: Picture type unknown |
EPH264PicParamsInde | xCodec specific parameters: EncodePicH264_Param section index to be used. |
EPRCParamsInde | xRate control parameters: RC_Params section index to be used. |
Parameter | Description |
H264Profile | Supported profiles include: • 0: Automatic profile selection • 66: Baseline profile • 77: Main profile • 88: Extended profile • 100: High profile |
H264Level | Specifies the encoding level. It is recommended that the client sets the level to 0 to enable the NvMedia Encode interface to select the correct level. |
H264Features | Specifies the bit-wise OR'ed' configuration feature flags. • ENABLE_OUTPUT_AUD = (1 << 0) • ENABLE_INTRA_REFRESH = (1 << 1) • ENABLE_DYNAMIC_SLICE_MODE = (1 << 2) • ENABLE_CONSTRANED_ENCODING= (1 << 3) |
H264IdrPeriod | Specifies the IDR interval. If not set, this is made equal to the GOP Length. The low latency application client must set IDR interval to 0 so that IDR frames are not inserted automatically. |
H264RepeatSPSPPSMode | Specifies the frequency of the writing of Sequence and Picture parameters. • 0x0: Repeating of SPS/PPS is disabled • 0x1: SPS/PPS is repeated for every intra frame • 0x2: SPS/PPS is repeated for every IDR frame |
H264NumSliceCountMinus1 | 1 less than the number of slices desired per frame. |
H264DisableDeblockingFilterIDC | De-blocking filter mode. Permissible value range: [0,2]. |
H264IntraRefreshPeriod | The interval between successive intra refresh, if Intra refresh is enabled and one-time intra refresh configuration is desired. • If H264IntraRefreshPeriod is specified, first IDR is encoded and no more key frames are encoded. • The client must set the picture type to 6 for the first picture of every intra refresh period. |
H264IntraRefreshCnt | Number of frames over which intra refresh happens. |
H264MaxSliceSizeInBytes | Maximum slice size, in bytes, for the dynamic slice mode. The client must enable dynamic slice mode to use the maximum slice size. |
H264AdaptiveTransformMode | Specifies the Adaptive Transform Mode. Available modes include: • 0x0: Adaptive Transform 8x8 mode is automatically selected by the encoder driver. • 0x1: Adaptive Transform 8x8 mode disabled. • 0x2: Adaptive Transform 8x8 mode must be used. |
H264BdirectMode | Specifies the B Direct mode. Available modes include: • 0x0: Spatial B Direct mode • 0x1: Disable B Direct mode • 0x2: Temporal B Direct mode |
H264EntropyCodingMode | Specifies the entropy coding mode. Available modes: • 0x0: Entropy coding mode is automatically selected by the encoder driver • 0x1: Entropy coding mode is CABAC • 0x2: Entropy coding mode is CAVLC |
H264MotionPredictionExclusionFlags | Specifies the bit-wise OR’ed exclusion flags for motion prediction. Available flags include: • (1 << 0): Disable Intra 4x4 vertical prediction • (1 << 1): Disable Intra 4x4 horizontal prediction • (1 << 2): Disable Intra 4x4 DC prediction • (1 << 3): Disable Intra 4x4 diagonal down left prediction • (1 << 4): Disable Intra 4x4 diagonal down right prediction • (1 << 5): Disable Intra 4x4 vertical right prediction • (1 << 6): Disable Intra 4x4 horizontal down prediction • (1 << 7): Disable Intra 4x4 vertical left prediction • (1 << 8): Disable Intra 4x4 horizontal up prediction • (1 << 9): Disable Intra 8x8 vertical prediction • (1 << 10): Disable Intra 8x8 horizontal prediction • (1 << 11): Disable Intra 8x8 DC prediction • (1 << 12): Disable Intra 8x8 diagonal down left prediction • (1 << 13): Disable Intra 8x8 diagonal down right prediction • (1 << 14): Disable Intra 8x8 vertical right prediction • (1 << 15): Disable Intra 8x8 horizontal down prediction • (1 << 16): Disable Intra 8x8 vertical left prediction • (1 << 17): Disable Intra 8x8 horizontal up prediction • (1 << 18): Disable Intra 16x16 vertical prediction • (1 << 19): Disable Intra 16x16 horizontal prediction • (1 << 20): Disable Intra 16x16 DC prediction • (1 << 21): Disable Intra 16x16 plane prediction • (1 << 22): Disable Intra chroma vertical prediction • (1 << 23): Disable Intra chroma horizontal prediction • (1 << 24): Disable Intra chroma DC prediction • (1 << 25): Disable Intra chroma plane prediction • (1 << 26): Disable Inter L0 partition 16x16 prediction • (1 << 27): Disable Inter L0 partition 16x8 prediction • (1 << 28): Disable Inter L0 partition 8x16 prediction • (1 << 29): Disable Inter L0 partition 8x8 prediction |
Parameter | Description |
VUIAspectRatioInfoPresentFlag | If set to 1, it specifies that the aspect ratio information is present. |
VUIAspectRatioIDC | Specifies the value of the sample aspect ratio of the luma samples. |
VUIAspectSARWidth | Indicates the horizontal size of the sample aspect ratio. |
VUIAspectSARHeight | Indicates the vertical size of the sample aspect ratio. |
VUIOverscanInfoPresentFlag | If set to 1, it specifies that the overscan info is present. |
VUIOverscanInfo | Specifies the overscan information, as defined in Annex E of the ITU-T Specification. |
VUIVideoSignalTypePresentFlag | If set to 1, specifies that Video Format. Video Full Range Flag and Color Description Present Flag are present. |
VUIVideoFormat | Specifies the source video format, as defined in Annex E of the ITU-T Specification. |
VUIVideoFullRangeFlag | Specifies the output range of the luma and chroma samples, as defined in Annex E of the ITU-T Specification. |
VUIColourDescriptionPresentFlag | If set to NVMEDIA_TRUE, specifies that the color primaries, transfer characteristics, and color Matrix are present. |
VUIColourPrimaries | Specifies the color primaries for converting to RGB, as defined in Annex E of the ITU-T Specification. |
VUITransferCharacteristics | Specifies the opto-electronic transfer characteristics to use; as defined in Annex E of the ITU-T Specification. |
VUIMatrixCoefficients | Specifies the matrix coefficients used in deriving the luma and chroma from the RGB primaries, as defined in Annex E of the ITU-T Specification. |
Parameter | Description |
H264PayloadSize | SEI payload 1 size in bytes. SEI payload must be byte aligned, as described in Annex D. |
H264PayloadType | SEI payload 1 types and syntax is available in Annex D of the H.264 Specification. |
H264Payload | Payload 1 data. |
Parameter | Description |
H264PayloadArraySize | Size of payload array indexes array. |
H264PayloadArrayIndexes | Array of payload sections indexes to be used. |
Parameter | Description |
H265Profile | Supported profiles include: 0: Automatic profile selection (unsupported) 1: Main profile (supported) 2: Main 10 profile (unsupported) |
H265Level | Specifies the encoding level. It is recommended the the client sets the level to 0 to enable the NvMedia Encode interface to select the correct level. |
H265Features | Specifies bit-wise OR'ed' configuration feature flags. • ENABLE_OUTPUT_AUD = (1 << 0) • ENABLE_INTRA_REFRESH = (1 << 1) • ENABLE_DYNAMIC_SLICE_MODE = (1 << 2) • ENABLE_CONSTRANED_ENCODING= (1 << 3) |
H265IdrPeriod | Specifies the IDR interval. If not set, this is made equal to GOP Length. Low latency application client can set the IDR interval to 0 so that IDR frames are not inserted automatically. |
H265RepeatSPSPPSMode | Specifies the frequency of the writing of Sequence and Picture parameters. Available parameters include: • 0x0: Repeating of SPS/PPS is disabled • 0x1: SPS/PPS is repeated for every intra frame • 0x2: SPS/PPS is repeated for every IDR frame |
H265NumSliceCountMinus1 | 1 less than the number of slices desired per frame. |
H265DisableDeblockingFilterIDC | De-blocking filter mode. Possible value range: [0,1] |
H265IntraRefreshPeriod | The interval between successive intra refresh, if Intra refresh is enabled, and one time intra refresh configuration is desired. • If H265IntraRefreshPeriod is specified, the first IDR is encoded and no more key frames are encoded. • The client must set picture type to 6 for first picture of every intra refresh period. |
H265IntraRefreshCnt | Specifies the number of frames over which intra refresh happens. |
H265MaxSliceSizeInBytes | Specifies the maximum slice size, in bytes, for dynamic slice mode. The client must enable dynamic slice mode to use the maximum slice size. |
Parameter | Description |
H265VUIAspectRatioInfoPresentFlag | If set to 1, specifies that the aspect ratio information is present. |
H265VUIAspectRatioIDC | Specifies the value of the sample aspect ratio of the luma samples. |
H265VUIAspectSARWidth | Indicates the horizontal size of the sample aspect ratio. |
H265VUIOverscanInfoPresentFlag | If set to 1, specifies that the overscan information is present. |
H265VUIOverscanInfo | Specifies the overscan information, as defined in Annex E of the ITU-T Specification. |
H265VUIVideoSignalTypePresentFlag | If set to 1, specifies that Video Format, Video Full Range Flag, and Color Description Present Flag are present. |
H265VUIVideoFormat | Specifies the source video format, as defined in Annex E of the ITU-T Specification. |
H265VUIVideoFullRangeFlag | Specifies the output range of the luma and chroma samples as defined in Annex E of the ITU-T Specification. |
H265VUIColourDescriptionPresentFlag | If set to NVMEDIA_TRUE, specifies that the color primaries, transfer characteristics, and color Matrix are present. |
H265VUIColourPrimaries | Specifies color primaries for converting to RGB, as defined in Annex E of the ITU-T Specification. |
H265VUITransferCharacteristics | Specifies the opto-electronic transfer characteristics to use, as defined in Annex E of the ITU-T Specification. |
H265VUIMatrixCoefficients | Specifies the matrix coefficients used in deriving the luma and chroma from the RGB primaries, as defined in Annex E of the ITU-T Specification. |
Parameter | Description |
H265PayloadSize | SEI payload 1 size in bytes. SEI payload must be byte aligned, as described in Annex D. |
H265PayloadType | SEI payload 1 types and syntax are available in Annex D of the H.264 Specification. |
H265Payload | Payload 1 data. |
Parameter | Description |
EPH265PicParamsIndex | Codec specific parameters: EncodePicH265_Params section index to be used. |
H265PayloadArrayIndexes | Array of Payload sections indexes to be used. |
H265PayloadArraySize | Size of payload array indexes array. |