Part Number: TDA2EXEVM
Tool/software: TI-RTOS
Dear Sirs:
We are using PROCESSOR-SDK VISION 03_03_00_00 with J6E+VISION Board.
We use the original Encoder setting except set staticParams.IDRFrameInterval = 1 inside EncLinkH264_algCreate before enc_link_h264_create.
[IPU1-0] 12.246080 s: IDRFrameInterval = [1]
[IPU1-0] 12.246172 s: maxIntraFrameInterval = [2147483640]
[IPU1-0] 12.246233 s: maxInterFrameInterval = [1]
[IPU1-0] 12.246294 s: intraFrameInterval = [30]
[IPU1-0] 12.246355 s: interFrameInterval = [1]
We expect to see a sequence of NALUs as SPS PPS IDR P P P P P P ... SPS PPS IDR P P P P P P P P.... SPD PPS IDR P...
However it does not happen. Only the 1st Frame send out the SPS PPS IDR and all other NALUs has no IDR.
We refer to this post:
and it do output ALL SPS PPS IDR sequence.
We also try to call the for IDR command in the link (EncLink_codecSetForceIDR), however, the API is not always working and most of the time, it doesn't.
Now, my question is how we can ask the encoder to output SPS/PPS/IDR every 30 frames.
The above setting is working in our DM81xx platform with h264enc 02.00.07.01
If more information is needed please let me know. Please note, we don't need normal I slice we need SPS+PPS+IDR to replace all I slice.
Below information is what we set in DM81xx and it is working. However even we set the same in TDA, it still can not procedure the SPS+PPS+IDR every 30 or 60 frame.
[m3vpss ] videnc2Params-> encodingPreset : 3
[m3vpss ] videnc2Params-> rateControlPreset : 5
[m3vpss ] videnc2Params-> maxHeight : 720
[m3vpss ] videnc2Params-> maxWidth : 1280
[m3vpss ] videnc2Params-> dataEndianness : 1
[m3vpss ] videnc2Params-> maxInterFrameInterval : 1
[m3vpss ] videnc2Params-> maxBitRate : 8000000
[m3vpss ] videnc2Params-> minBitRate : 0
[m3vpss ] videnc2Params-> inputChromaFormat : 9
[m3vpss ] videnc2Params-> inputContentType : 0
[m3vpss ] videnc2Params-> operatingMode : 1
[m3vpss ] videnc2Params-> profile : 100
[m3vpss ] videnc2Params-> level : 42
[m3vpss ] videnc2Params-> inputDataMode : 3
[m3vpss ] videnc2Params-> outputDataMode : 3
[m3vpss ] rateControlParams -> rateControlParamsPreset : 1
[m3vpss ] rateControlParams -> scalingMatrixPreset : 1
[m3vpss ] rateControlParams -> rcAlgo : 5
[m3vpss ] rateControlParams -> qpI : -1
[m3vpss ] rateControlParams -> qpMaxI : 36
[m3vpss ] rateControlParams -> qpMinI : 10
[m3vpss ] rateControlParams -> qpP : -1
[m3vpss ] rateControlParams -> qpMaxP : 40
[m3vpss ] rateControlParams -> qpMinP : 10
[m3vpss ] rateControlParams -> qpOffsetB : 4
[m3vpss ] rateControlParams -> qpMaxB : 44
[m3vpss ] rateControlParams -> qpMinB : 10
[m3vpss ] rateControlParams -> allowFrameSkip : 0
[m3vpss ] rateControlParams -> removeExpensiveCoeff : 0
[m3vpss ] rateControlParams -> chromaQPIndexOffset : 0
[m3vpss ] rateControlParams -> IPQualityFactor : 0
[m3vpss ] rateControlParams -> initialBufferLevel : 2500000
[m3vpss ] rateControlParams -> HRDBufferSize : 2500000
[m3vpss ] rateControlParams -> minPicSizeRatioI : 0
[m3vpss ] rateControlParams -> maxPicSizeRatioI : 640
[m3vpss ] rateControlParams -> minPicSizeRatioP : 0
[m3vpss ] rateControlParams -> maxPicSizeRatioP : 0
[m3vpss ] rateControlParams -> minPicSizeRatioB : 0
[m3vpss ] rateControlParams -> maxPicSizeRatioB : 0
[m3vpss ] rateControlParams -> enablePRC : 1
[m3vpss ] rateControlParams -> enablePartialFrameSkip : 0
[m3vpss ] rateControlParams -> discardSavedBits : 0
[m3vpss ] rateControlParams -> VBRDuration : 8
[m3vpss ] rateControlParams -> VBRsensitivity : 0
[m3vpss ] rateControlParams -> skipDistributionWindowLength: 5
[m3vpss ] rateControlParams -> numSkipInDistributionWindow : 1
[m3vpss ] rateControlParams -> enableHRDComplianceMode : 1
[m3vpss ] rateControlParams -> frameSkipThMulQ5 : 0
[m3vpss ] rateControlParams -> vbvUseLevelThQ5 : 0
[m3vpss ]
[m3vpss ] interCodingParams-> interCodingPreset : 4
[m3vpss ] interCodingParams-> searchRangeHorP : 144
[m3vpss ] interCodingParams-> searchRangeVerP : 32
[m3vpss ] interCodingParams-> searchRangeHorB : 144
[m3vpss ] interCodingParams-> searchRangeVerB : 16
[m3vpss ] interCodingParams-> interCodingBias : 1
[m3vpss ] interCodingParams-> skipMVCodingBias : 1
[m3vpss ] interCodingParams-> minBlockSizeP : 0
[m3vpss ] interCodingParams-> minBlockSizeB : 0
[m3vpss ] interCodingParams-> meAlgoMode : 1
[m3vpss ]
[m3vpss ] intraCodingParams-> intraCodingPreset : 3
[m3vpss ] intraCodingParams-> lumaIntra4x4Enable : 0
[m3vpss ] intraCodingParams-> lumaIntra8x8Enable : 255
[m3vpss ] intraCodingParams-> lumaIntra8x8Enable : 15
[m3vpss ] intraCodingParams-> intraCodingPreset : 3
[m3vpss ] intraCodingParams-> lumaIntra4x4Enable : 0
[m3vpss ] intraCodingParams-> lumaIntra8x8Enable : 255
[m3vpss ] intraCodingParams-> lumaIntra8x8Enable : 15
[m3vpss ] intraCodingParams-> chromaIntra8x8Enable : 15
[m3vpss ] intraCodingParams-> chromaComponentEnable : 1
[m3vpss ] intraCodingParams-> intraRefreshMethod : 0
[m3vpss ] intraCodingParams-> intraRefreshRate : 0
[m3vpss ] intraCodingParams-> gdrOverlapRowsBtwFrames : 0
[m3vpss ] intraCodingParams-> constrainedIntraPredEnable : 0
[m3vpss ] intraCodingParams-> constrainedIntraPredEnable : 0
[m3vpss ]
[m3vpss ] nalUnitControlParams -> naluControlPreset : 0
[m3vpss ] nalUnitControlParams -> naluPresentMaskStartOfSequence : 416
[m3vpss ] nalUnitControlParams -> naluPresentMaskIDRPicture : 416
[m3vpss ] nalUnitControlParams -> naluPresentMaskIntraPicture : 2
[m3vpss ] nalUnitControlParams -> naluPresentMaskNonIntraPicture : 2
[m3vpss ] nalUnitControlParams -> naluPresentMaskEndOfSequence : 3072
[m3vpss ]
[m3vpss ] sliceCodingParams-> sliceCodingPreset : 0
[m3vpss ] sliceCodingParams-> sliceMode : 0
[m3vpss ] sliceCodingParams-> sliceUnitSize : 0
[m3vpss ] sliceCodingParams-> sliceStartOffset[IH264ENC_MAX_NUM_SLICE_START_OFFSET] : 0 0 0
[m3vpss ] sliceCodingParams-> streamFormat : 0
[m3vpss ]
[m3vpss ] loopFilterParams-> loopfilterPreset : 0
[m3vpss ] loopFilterParams-> loopfilterDisableIDC : 0
[m3vpss ] loopFilterParams-> filterOffsetA : 0
[m3vpss ] loopFilterParams-> filterOffsetB : 0
[m3vpss ]
[m3vpss ] fmoCodingParams-> fmoCodingPreset : 0
[m3vpss ] fmoCodingParams-> numSliceGroups : 1
[m3vpss ] fmoCodingParams-> liceGroupMapType : 4
[m3vpss ] fmoCodingParams-> liceGroupChangeDirectionFlag : 0
[m3vpss ] fmoCodingParams-> liceGroupChangeRate : 0
[m3vpss ] fmoCodingParams-> sliceGroupChangeCycle : 0
[m3vpss ] fmoCodingParams-> sliceGroupParams : [0 0]
[m3vpss ]
[m3vpss ] vuiCodingParams-> vuiCodingPreset : 1
[m3vpss ] vuiCodingParams-> aspectRatioInfoPresentFlag : 0
[m3vpss ] vuiCodingParams-> aspectRatioIdc : 255
[m3vpss ] vuiCodingParams-> videoSignalTypePresentFlag : 1
[m3vpss ] vuiCodingParams-> videoFormat : 5
[m3vpss ] vuiCodingParams-> videoFullRangeFlag : 1
[m3vpss ] vuiCodingParams-> timingInfoPresentFlag : 1
[m3vpss ] vuiCodingParams-> hrdParamsPresentFlag : 1
[m3vpss ] vuiCodingParams-> numUnitsInTicks : 1000
[m3vpss ]
[m3vpss ] stereoInfoParams-> stereoInfoPreset : 0
[m3vpss ] stereoInfoParams-> topFieldIsLeftViewFlag : 1
[m3vpss ] stereoInfoParams-> viewSelfContainedFlag : 0
[m3vpss ]
[m3vpss ] framePackingSEIParams-> framePackingPreset : 0
[m3vpss ] framePackingSEIParams-> framePackingType : 3
[m3vpss ] framePackingSEIParams-> frame0PositionX : 0
[m3vpss ] framePackingSEIParams-> frame0PositionY : 0
[m3vpss ] framePackingSEIParams-> frame1PositionX : 0
[m3vpss ] framePackingSEIParams-> frame1PositionY : 0
[m3vpss ]
[m3vpss ] svcCodingParams-> svcExtensionFlag : 0
[m3vpss ] svcCodingParams-> dependencyID : 0
[m3vpss ] svcCodingParams-> qualityID : 0
[m3vpss ] svcCodingParams-> enhancementProfileID : 0
[m3vpss ] svcCodingParams-> layerIndex : 0
[m3vpss ] svcCodingParams-> refLayerDQId : 0
[m3vpss ]
[m3vpss ] IH264ENC_Params-> interlaceCodingType : 3
[m3vpss ] IH264ENC_Params-> bottomFieldIntra : 0
[m3vpss ] IH264ENC_Params-> gopStructure : 0
[m3vpss ] IH264ENC_Params-> entropyCodingMode : 1
[m3vpss ] IH264ENC_Params-> transformBlockSize : 1
[m3vpss ] IH264ENC_Params-> log2MaxFNumMinus4 : 10
[m3vpss ] IH264ENC_Params-> picOrderCountType : 0
[m3vpss ] IH264ENC_Params-> enableWatermark : 0
[m3vpss ] IH264ENC_Params-> IDRFrameInterval : 1
[m3vpss ] IH264ENC_Params-> pConstantMemory : 0
[m3vpss ] IH264ENC_Params-> maxIntraFrameInterval : 60
[m3vpss ] IH264ENC_Params-> debugTraceLevel : 1
[m3vpss ] IH264ENC_Params-> lastNFramesToLog : 31
[m3vpss ] IH264ENC_Params-> enableAnalyticinfo : 0
[m3vpss ] IH264ENC_Params-> enableGMVSei : 0
[m3vpss ] IH264ENC_Params-> constraintSetFlags : 0
[m3vpss ] IH264ENC_Params-> enableRCDO : 0
[m3vpss ] IH264ENC_Params-> enableLongTermRefFrame : 0
[m3vpss ] IH264ENC_Params-> LTRPPeriod : 0
[m3vpss ] IH264ENC_Params-> numTemporalLayer : 1
[m3vpss ] IH264ENC_Params-> referencePicMarking : 1
[m3vpss ] rateControlParams -> rateControlParamsPreset : 1
[m3vpss ] rateControlParams -> scalingMatrixPreset : 1
[m3vpss ] rateControlParams -> rcAlgo : 1
[m3vpss ] rateControlParams -> qpI : 18
[m3vpss ] rateControlParams -> qpMaxI : 40
[m3vpss ] rateControlParams -> qpMinI : 6
[m3vpss ] rateControlParams -> qpP : 18
[m3vpss ] rateControlParams -> qpMaxP : 40
[m3vpss ] rateControlParams -> qpMinP : 6
[m3vpss ] rateControlParams -> qpOffsetB : 4
[m3vpss ] rateControlParams -> qpMaxB : 44
[m3vpss ] rateControlParams -> qpMinB : 10
[m3vpss ] rateControlParams -> allowFrameSkip : 0
[m3vpss ] rateControlParams -> removeExpensiveCoeff : 0
[m3vpss ] rateControlParams -> chromaQPIndexOffset : 0
[m3vpss ] rateControlParams -> IPQualityFactor : 0
[m3vpss ] rateControlParams -> initialBufferLevel : 750000
[m3vpss ] rateControlParams -> HRDBufferSize : 750000
[m3vpss ] rateControlParams -> minPicSizeRatioI : 0
[m3vpss ] rateControlParams -> maxPicSizeRatioI : 640
[m3vpss ] rateControlParams -> minPicSizeRatioP : 0
[m3vpss ] rateControlParams -> maxPicSizeRatioP : 0
[m3vpss ] rateControlParams -> minPicSizeRatioB : 0
[m3vpss ] rateControlParams -> maxPicSizeRatioB : 0
[m3vpss ] rateControlParams -> enablePRC : 1
[m3vpss ] rateControlParams -> enablePartialFrameSkip : 0
[m3vpss ] rateControlParams -> discardSavedBits : 1
[m3vpss ] rateControlParams -> VBRDuration : 0
[m3vpss ] rateControlParams -> VBRsensitivity : 0
[m3vpss ] rateControlParams -> skipDistributionWindowLength: 5
[m3vpss ] rateControlParams -> numSkipInDistributionWindow : 1
[m3vpss ] rateControlParams -> enableHRDComplianceMode : 1
[m3vpss ] rateControlParams -> frameSkipThMulQ5 : 0
[m3vpss ] rateControlParams -> vbvUseLevelThQ5 : 0
[m3vpss ]
Regards,
/ckhsu