This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

H.264 Encoder Generated bytes too low

Hi All

This question might be too general in nature, but I am looking for an  answer  for the possible reasons.

I have an H.264 Encoder which is integrated into ipnc rdk. The process call  is successful, but the generated bytes are less than expected.

 I have  ensured that static & dyn params are properly set to give a reasonable bitrate. Also set the rcAlgo properly.

  Infact I have copied all the params used in the test  application.

What are the other possibilities ? Pls share from your  experience.

Best Regards

JK

  • Dear Jayakrishnan,

    Could you please share all the parameters you are using along with the logs, if any, generated during the process ?

    It would be of great help if you can also share the bitstream, if possible.

    .

    Best Regards,

    Nandu.

  • Hi Nandu

    thanks. following are the params used

    [m3video] --------- CH 0 : H264 ENC : Create Params -------

    [m3video] videnc2Params-> encodingPreset : 3

    [m3video] videnc2Params-> rateControlPreset : 5

    [m3video] videnc2Params-> maxHeight : 720

    [m3video] videnc2Params-> maxWidth : 1280

    [m3video] videnc2Params-> dataEndianness : 1

    [m3video] videnc2Params-> maxInterFrameInterval : 1

    [m3video] videnc2Params-> maxBitRate : -1

    [m3video] videnc2Params-> minBitRate : 0

    [m3video] videnc2Params-> inputChromaFormat : 9

    [m3video] videnc2Params-> inputContentType : 0

    [m3video] videnc2Params-> operatingMode : 1

    [m3video] videnc2Params-> profile : 100

    [m3video] videnc2Params-> level : 41

    [m3video] videnc2Params-> inputDataMode : 3

    [m3video] videnc2Params-> outputDataMode : 3

    [m3video] rateControlParams -> rateControlParamsPreset : 0

    [m3video] rateControlParams -> scalingMatrixPreset : 0

    [m3video] rateControlParams -> rcAlgo : 0

    [m3video] rateControlParams -> qpI : 28

    [m3video] rateControlParams -> qpMaxI : 36

    [m3video] rateControlParams -> qpMinI : 10

    [m3video] rateControlParams -> qpP : 28

    [m3video] rateControlParams -> qpMaxP : 40

    [m3video] rateControlParams -> qpMinP : 10

    [m3video] rateControlParams -> qpOffsetB : 4

    [m3video] rateControlParams -> qpMaxB : 44

    [m3video] rateControlParams -> qpMinB : 10

    [m3video] rateControlParams -> allowFrameSkip : 0

    [m3video] rateControlParams -> removeExpensiveCoeff : 0

    [m3video] rateControlParams -> chromaQPIndexOffset : 0

    [m3video] rateControlParams -> IPQualityFactor : 0

    [m3video] rateControlParams -> initialBufferLevel : 24000000

    [m3video] rateControlParams -> HRDBufferSize : 48000000

    [m3video] rateControlParams -> enablePRC : 1

    [m3video] rateControlParams -> enablePartialFrameSkip : 0

    [m3video] rateControlParams -> discardSavedBits : 0

    [m3video] interCodingParams-> interCodingPreset : 0

    [m3video] interCodingParams-> searchRangeHorP : 144

    [m3video] interCodingParams-> searchRangeVerP : 32

    [m3video] interCodingParams-> searchRangeHorB : 144

    [m3video] interCodingParams-> searchRangeVerB : 16

    [m3video] interCodingParams-> interCodingBias : 1

    [m3video] interCodingParams-> skipMVCodingBias : 1

    [m3video] interCodingParams-> minBlockSizeP : 0

    [m3video] interCodingParams-> minBlockSizeB : 0

    [m3video] intraCodingParams-> intraCodingPreset : 0

    [m3video] intraCodingParams-> lumaIntra4x4Enable : 0

    [m3video] intraCodingParams-> lumaIntra8x8Enable : -1

    [m3video] intraCodingParams-> lumaIntra8x8Enable : 15

    [m3video] intraCodingParams-> chromaIntra8x8Enable : 15

    [m3video] intraCodingParams-> chromaComponentEnable : 1

    [m3video] intraCodingParams-> intraRefreshMethod : 0

    [m3video] intraCodingParams-> intraRefreshRate : 0

    [m3video] intraCodingParams-> constrainedIntraPredEnable : 0

    [m3video] nalUnitControlParams -> naluControlPreset : 0

    [m3video] nalUnitControlParams -> naluPresentMaskStartOfSequence : 416

    [m3video] nalUnitControlParams -> naluPresentMaskIDRPicture : 416

    [m3video] nalUnitControlParams -> naluPresentMaskIntraPicture : 2

    [m3video] nalUnitControlParams -> naluPresentMaskNonIntraPicture : 2

    [m3video] nalUnitControlParams -> naluPresentMaskEndOfSequence : 3072

    [m3video] sliceCodingParams-> sliceCodingPreset : 0

    [m3video] sliceCodingParams-> sliceMode : 0

    [m3video] sliceCodingParams-> sliceUnitSize : 0

    [m3video] sliceCodingParams-> sliceStartOffset[IH264ENC_MAX_NUM_SLICE_START_OFFSET] : 0 0 0

    [m3video] sliceCodingParams-> streamFormat : 0

    [m3video] loopFilterParams-> loopfilterPreset : 0

    [m3video] loopFilterParams-> loopfilterDisableIDC : 0

    [m3video] loopFilterParams-> filterOffsetA : 0

    [m3video] loopFilterParams-> filterOffsetB : 0

    [m3video] fmoCodingParams-> fmoCodingPreset : 0

    [m3video] fmoCodingParams-> numSliceGroups : 1

    [m3video] fmoCodingParams-> liceGroupChangeDirectionFlag : 0

    [m3video] fmoCodingParams-> liceGroupChangeRate : 0

    [m3video] fmoCodingParams-> sliceGroupChangeCycle : 0

    [m3video] fmoCodingParams-> sliceGroupParams : [0 0]

    [m3video] vuiCodingParams-> vuiCodingPreset : 0

    [m3video] vuiCodingParams-> aspectRatioInfoPresentFlag : 0

    [m3video] vuiCodingParams-> aspectRatioIdc : 1

    [m3video] vuiCodingParams-> videoSignalTypePresentFlag : 0

    [m3video] vuiCodingParams-> videoFormat : 2

    [m3video] vuiCodingParams-> videoFullRangeFlag : 0

    [m3video] vuiCodingParams-> timingInfoPresentFlag : 0

    [m3video] vuiCodingParams-> hrdParamsPresentFlag : 0

    [m3video] vuiCodingParams-> numUnitsInTicks : 1000

    [m3video] stereoInfoParams-> stereoInfoPreset : 0

    [m3video] stereoInfoParams-> topFieldIsLeftViewFlag : 0

    [m3video] stereoInfoParams-> viewSelfContainedFlag : 0

    [m3video]

    [m3video] framePackingSEIParams-> framePackingPreset : 0

    [m3video] framePackingSEIParams-> framePackingType : 0

    [m3video] framePackingSEIParams-> frame0PositionX : 0

    [m3video] framePackingSEIParams-> frame0PositionY : 0

    [m3video] framePackingSEIParams-> frame1PositionX : 0

    [m3video] framePackingSEIParams-> frame1PositionY : 0

    [m3video] svcCodingParams-> svcExtensionFlag : 2

    [m3video] svcCodingParams-> dependencyID : 0

    [m3video] svcCodingParams-> qualityID : 0

    [m3video] svcCodingParams-> enhancementProfileID : 0

    [m3video] svcCodingParams-> layerIndex : 0

    [m3video] svcCodingParams-> refLayerDQId : 0

    [m3video] IH264SVCENC_Params-> interlaceCodingType : 3

    [m3video] IH264SVCENC_Params-> bottomFieldIntra : 0

    [m3video] IH264SVCENC_Params-> gopStructure : 0

    [m3video] IH264SVCENC_Params-> entropyCodingMode : 1

    [m3video] IH264SVCENC_Params-> transformBlockSize : 2

    [m3video] IH264SVCENC_Params-> log2MaxFNumMinus4 : 10

    [m3video] IH264SVCENC_Params-> picOrderCountType : 0

    [m3video] IH264SVCENC_Params-> IDRFrameInterval : 0

    [m3video] IH264SVCENC_Params-> pConstantMemory : 0

    [m3video] IH264SVCENC_Params-> maxIntraFrameInterval : 10

    [m3vpss ] 1739: CAMERA: Start in progress !!!

    [m3video] IH264SVCENC_Params-> debugTraceLevel : 1

    [m3video] IH264SVCENC_Params-> lastNFramesToLog : 0

    [m3video] IH264SVCENC_Params-> enableAnalyticinfo : 0

    [m3video] IH264SVCENC_Params-> enableGMVSei : 0

    [m3video] IH264SVCENC_Params-> constraintSetFlags : 0

    [m3video] IH264SVCENC_Params-> enableRCDO : 0

    [m3video] IH264SVCENC_Params-> enableLongTermRefFrame : 0

    [m3video] IH264SVCENC_Params-> numTemporalLayer : 2

    [m3video] IH264SVCENC_Params-> referencePicMarking : 1

    [m3vpss ] 1739: CAMERA: Start Done !!!

    [m3video]

    [m3video] --------- CH 1 : H264 ENC : Create Params -------

    [m3video]

    [m3video] videnc2Params-> encodingPreset : 3

    [m3video] videnc2Params-> rateControlPreset : 5

    [m3video] videnc2Params-> maxHeight : 1080

    [m3video] videnc2Params-> maxWidth : 1920

    [m3video] videnc2Params-> dataEndianness : 1

    [m3video] videnc2Params-> maxInterFrameInterval : 1

    [m3video] videnc2Params-> maxBitRate : -1

    [m3video] videnc2Params-> minBitRate : 0

    [m3video] videnc2Params-> inputChromaFormat : 9

    [m3video] videnc2Params-> inputContentType : 0

    [m3video] videnc2Params-> operatingMode : 1

    [m3video] videnc2Params-> profile : 66

    [m3video] videnc2Params-> level : 41

    [m3video] videnc2Params-> inputDataMode : 3

    [m3video] videnc2Params-> outputDataMode : 3

    [m3video] rateControlParams -> rateControlParamsPreset : 0

    [m3video] rateControlParams -> scalingMatrixPreset : 0

    [m3video] rateControlParams -> rcAlgo : 0

    [m3video] rateControlParams -> qpI : 28

    [m3video] rateControlParams -> qpMaxI : 36

    [m3video] rateControlParams -> qpMinI : 10

    [m3video] rateControlParams -> qpP : 28

    [m3video] rateControlParams -> qpMaxP : 40

    [m3video] rateControlParams -> qpMinP : 10

    [m3video] rateControlParams -> qpOffsetB : 4

    [m3video] rateControlParams -> qpMaxB : 44

    [m3video] rateControlParams -> qpMinB : 0

    [m3video] rateControlParams -> allowFrameSkip : 0

    [m3video] rateControlParams -> removeExpensiveCoeff : 0

    [m3video] rateControlParams -> chromaQPIndexOffset : 0

    [m3video] rateControlParams -> IPQualityFactor : 0

    [m3video] rateControlParams -> initialBufferLevel : 0

    [m3video] rateControlParams -> HRDBufferSize : 0

    [m3video] rateControlParams -> enablePRC : 1

    [m3video] rateControlParams -> enablePartialFrameSkip : 0

    [m3video] rateControlParams -> discardSavedBits : 0

    [m3video] interCodingParams-> interCodingPreset : 0

    [m3video] interCodingParams-> searchRangeHorP : 144

    [m3video] interCodingParams-> searchRangeVerP : 32

    [m3video] interCodingParams-> searchRangeHorB : 144

    [m3video] interCodingParams-> searchRangeVerB : 16

    [m3video] interCodingParams-> interCodingBias : 1

    [m3video] interCodingParams-> skipMVCodingBias : 1

    [m3video] interCodingParams-> minBlockSizeP : 0

    [m3video] interCodingParams-> minBlockSizeB : 0

    [m3video] intraCodingParams-> intraCodingPreset : 0

    [m3video] intraCodingParams-> lumaIntra4x4Enable : 0

    [m3video] intraCodingParams-> lumaIntra8x8Enable : 0

    [m3video] intraCodingParams-> lumaIntra8x8Enable : 15

    [m3video] intraCodingParams-> chromaIntra8x8Enable : 15

    [m3video] intraCodingParams-> chromaComponentEnable : 1

    [m3video] intraCodingParams-> intraRefreshMethod : 0

    [m3video] intraCodingParams-> intraRefreshRate : 0

    [m3video] intraCodingParams-> constrainedIntraPredEnable : 1

    [m3video] nalUnitControlParams -> naluControlPreset : 0

    [m3video] nalUnitControlParams -> naluPresentMaskStartOfSequence : 416

    [m3video] nalUnitControlParams -> naluPresentMaskIDRPicture : 416

    [m3video] nalUnitControlParams -> naluPresentMaskIntraPicture : 2

    [m3video] nalUnitControlParams -> naluPresentMaskNonIntraPicture : 2

    [m3video] nalUnitControlParams -> naluPresentMaskEndOfSequence : 3072

    [m3video]

    [m3video] sliceCodingParams-> sliceCodingPreset : 0

    [m3video] sliceCodingParams-> sliceMode : 0

    [m3video] sliceCodingParams-> sliceUnitSize : 0

    [m3video] sliceCodingParams-> sliceStartOffset[IH264ENC_MAX_NUM_SLICE_START_OFFSET] : 0 0 0

    [m3video] sliceCodingParams-> streamFormat : 0

    [m3video]

    [m3video] loopFilterParams-> loopfilterPreset : 0

    [m3video] loopFilterParams-> loopfilterDisableIDC : 0

    [m3video] loopFilterParams-> filterOffsetA : 0

    [m3video] loopFilterParams-> filterOffsetB : 0

    [m3video]

    [m3video] fmoCodingParams-> fmoCodingPreset : 0

    [m3video] fmoCodingParams-> numSliceGroups : 1

    [m3video] fmoCodingParams-> liceGroupMapType : 4

    [m3video] fmoCodingParams-> liceGroupChangeDirectionFlag : 0

    [m3video] fmoCodingParams-> liceGroupChangeRate : 0

    [m3video] fmoCodingParams-> sliceGroupChangeCycle : 0

    [m3video] fmoCodingParams-> sliceGroupParams : [0 0]

     

     

    --------- CH 0 : H264 ENC : Dyn Params -------

    [m3video] videnc2DynamicParams -> inputHeight : 720

    [m3video] videnc2DynamicParams -> inputWidth : 1280

    [m3video] videnc2DynamicParams -> refFrameRate : 30000

    [m3video] videnc2DynamicParams -> targetFrameRate : 30000

    [m3video] videnc2DynamicParams -> targetBitRate : 1000000

    [m3video] videnc2DynamicParams -> intraFrameInterval : 10

    [m3video] videnc2DynamicParams -> generateHeader : 0

    [m3video] videnc2DynamicParams -> captureWidth : 1280

    [m3video] videnc2DynamicParams -> forceFrame : -1

    [m3video] videnc2DynamicParams -> interFrameInterval : 1

    [m3video] videnc2DynamicParams -> mvAccuracy : 2

    [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 720

    [m3video] videnc2DynamicParams -> sampleAspectRatioWidth : 1280

    [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag : 1

    [m3video] videnc2DynamicParams -> lateAcquireArg : 0

     

    --------- CH 1 : H264 ENC : Dyn Params -------

    [m3video] videnc2DynamicParams -> inputHeight : 1080

    [m3video] videnc2DynamicParams -> inputWidth : 1920

    [m3video] videnc2DynamicParams -> refFrameRate : 30000

    [m3video] videnc2DynamicParams -> targetFrameRate : 30000

    [m3video] videnc2DynamicParams -> targetBitRate : 12000000

    [m3video] videnc2DynamicParams -> intraFrameInterval : 10

    [m3video] videnc2DynamicParams -> generateHeader : 0

    [m3video] videnc2DynamicParams -> captureWidth : 1920

    [m3video] videnc2DynamicParams -> forceFrame : -1

    [m3video] videnc2DynamicParams -> interFrameInterval : 1

    [m3video] videnc2DynamicParams -> mvAccuracy : 2

    [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1080

    [m3video] videnc2DynamicParams -> sampleAspectRatioWidth : 1920

    [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag : 1

    [m3video] videnc2DynamicParams -> lateAcquireArg : 0

  • Hi Jayakrishnan,

    In which channel you are facing the issue ? Also how much drop in bit rate are you observing ?

    Best Regards,

    Nandu.

  • In both channels. I did not measure the bitrate. For the same set of params , the bytes generated are much more in size in the test app. The decoded frames are blank. Standard decoder  is able to parse the stream properly.

    Also , the bytesgenerated shows an increase in size  when the camera captures some motion. This means, encoder is working. But I don't know why the decoded frames are blank.

    Best Regards

    JK  

  • Hi Jayakrishnan,

    Can you please dump the bitstream from ipnc and send it ? Also we would like to have a look on to the bitstream generated from testapp you were using for the comparison.

    .

    Best Regards,

    Nandu.

  • Jayakrishnan wrote the following post at Oct 30 2014 00:55 AM:

    Jayakrishnan said:

    following are the params used

    ...


    1. are the parameters the same as your setting before integration ?

    2. download streameye and play your bit-stream with showing info(press info button). Then check if the info is the same as your encode setting like resolution...etc