Quantcast
Channel: Processors
Viewing all articles
Browse latest Browse all 124602

Forum Post: RE: Facing issue in Interlaced encoding with EzSDK on DM814x based board

$
0
0

Hi Ram, Santhosh,

We have tested capture encode application on EVM below is our observations.

1. Test with default capture_encode application (Progressive Capture on ti8148EVM)

Input Video : 1080i

Output Encoded File(renamed by txt extension, so renamed back to .h264 extension) : (Please visit the site to view this file)

2. Test with capture_encode application (Interlaced Capture on ti8148EVM)

We added below code in capture_encode application for interlaced encoding

file : component-sources/omx_05_02_00_46/examples/ti/omx/demos/capture_encode/src/ilclient_utils.c

function : IL_ClientSetEncodeParams()

----------------------------------------------------------------------------------------------------------

OMX_ERRORTYPE IL_ClientSetEncodeParams (IL_Client *pAppData)
{
  ...
  ...

  OMX_INIT_PARAM (&tStaticParam);

  tStaticParam.nPortIndex = OMX_VIDENC_OUTPUT_PORT;

  eError = OMX_GetParameter (pHandle, OMX_TI_IndexParamVideoStaticParams,
                             &tStaticParam);

  /* To use extended parameters */
  tStaticParam.videoStaticParams.h264EncStaticParams.rateControlParams.HRDBufferSize
                                             = 4000000;
  tStaticParam.videoStaticParams.h264EncStaticParams.videnc2Params.encodingPreset
                                             = XDM_USER_DEFINED;
  tStaticParam.videoStaticParams.h264EncStaticParams.videnc2Params.rateControlPreset
                                             = IVIDEO_USER_DEFINED;

  /* for interlace, base profile can not be used */
  tStaticParam.videoStaticParams.h264EncStaticParams.videnc2Params.profile = IH264_HIGH_PROFILE;
  tStaticParam.videoStaticParams.h264EncStaticParams.videnc2Params.level = IH264_LEVEL_22;

  /* setting Interlace mode */
  tStaticParam.videoStaticParams.h264EncStaticParams.videnc2Params.inputContentType = IVIDEO_INTERLACED;
  tStaticParam.videoStaticParams.h264EncStaticParams.bottomFieldIntra = 0;
  tStaticParam.videoStaticParams.h264EncStaticParams.interlaceCodingType = IH264_INTERLACE_FIELDONLY;
  tStaticParam.videoStaticParams.h264EncStaticParams.videnc2Params.encodingPreset = XDM_USER_DEFINED;
  tStaticParam.videoStaticParams.h264EncStaticParams.videnc2Params.rateControlPreset = IVIDEO_USER_DEFINED;

  tStaticParam.videoStaticParams.h264EncStaticParams.intraCodingParams.lumaIntra4x4Enable = 309;
  tStaticParam.videoStaticParams.h264EncStaticParams.intraCodingParams.lumaIntra8x8Enable = 320;

 /* To set user-defined NAL Unit */
  tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluControlPreset = IH264_NALU_CONTROL_USERDEFINED;
  H264_SETNALU_MASK_SPS(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskIntraPicture);
  H264_SETNALU_MASK_PPS(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskIntraPicture);
  H264_SETNALU_MASK_SPS(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskIDRPicture);
  H264_SETNALU_MASK_PPS(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskIDRPicture);
  H264_SETNALU_MASK_SEI(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskIDRPicture);
  H264_SETNALU_MASK_SPS(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskStartOfSequence);
  H264_SETNALU_MASK_PPS(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskStartOfSequence);
  H264_SETNALU_MASK_SEI(tStaticParam.videoStaticParams.h264EncStaticParams.nalUnitControlParams.naluPresentMaskStartOfSequence);

  /* To set VUI information */
  tStaticParam.videoStaticParams.h264EncStaticParams.vuiCodingParams.vuiCodingPreset = IH264_VUICODING_USERDEFINED;
  tStaticParam.videoStaticParams.h264EncStaticParams.vuiCodingParams.hrdParamsPresentFlag = 1;
  tStaticParam.videoStaticParams.h264EncStaticParams.vuiCodingParams.timingInfoPresentFlag = 1;

  tStaticParam.videoStaticParams.h264EncStaticParams.maxIntraFrameInterval = 0xFFFF;

   eError = OMX_SetParameter (pHandle, OMX_TI_IndexParamVideoStaticParams,
                             &tStaticParam);

  ...
  ...
}

----------------------------------------------------------------------------------------------------------

Input Video : 1080i

Output Encoded File (renamed by txt extension, so renamed back to .h264 extension) : (Please visit the site to view this file)

Observation : Same jumping effect is there in encoded file.

So we are facing same jumping effect issue for interlaced encoding in EVM as well.


Viewing all articles
Browse latest Browse all 124602

Trending Articles