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.

CBR can't work when encode MPEG4 QQVGA frame

Hi all:

        I have found a new issue on DM365 that CBR can't work when encode MPEG4 QQVGA frame, both the YUV420SP and YUV422ILE can't work too. Seems the CBR algorithm don't work when encode MPEG4 QQVGA frame.

       Anyone who can help on this?

       Highly appreciate!

  • Hi,

     

    Can you please provide the details of Parameter settings (both create time & dynamic)?

    Please note that QQVGA is dupported only for 422ILE input format (with UMV OFF) as per DataSheet.

     

    Regards,

    Tej

  • Hi Tej:

           I'm prety sure that we use YUV422ILE input with UMV OFF, here provide some detail for you reference:

    pObj->params.size       = sizeof(IMP4VENC_Params);
    pObj->params.rateControlPreset     = IVIDEO_LOW_DELAY;
    pObj->params.maxHeight             = 120;
    pObj->params.maxWidth              = 160;
    pObj->params.maxFrameRate          = 30000 ;
    pObj->params.maxBitRate            = 16000000;
    pObj->params.inputChromaFormat = XDM_YUV_422ILE;
    pObj->params.dataEndianness        = XDM_BYTE;
    pObj->params.maxInterFrameInterval = 0;
    pObj->params.inputContentType      = IVIDEO_PROGRESSIVE;
    pObj->params.reconChromaFormat     = XDM_YUV_422ILE;
    pObj->params.maxHeight  = 120;
    pObj->params.maxWidth   = 256;
    pObj->params_mpeg4.subWindowHeight = 120;
    pObj->params_mpeg4.subWindowWidth = 160;
    pObj->params_mpeg4.rotation = 0;
    pObj->params_mpeg4.vbvSize = 0;
    pObj->params_mpeg4.svhMode = 0;

    pObj->dynamicParams.size = sizeof(pObj->dynamicParams_mpeg4);
    pObj->dynamicParams.inputHeight         = 120;
    pObj->dynamicParams.inputWidth          = 160;
    pObj->dynamicParams.targetBitRate       = 256000;
    pObj->dynamicParams.intraFrameInterval  = pObj->createPrm.keyFrameInterval;
    pObj->dynamicParams.generateHeader      = XDM_ENCODE_AU;
    pObj->dynamicParams.captureWidth        = 256;
    pObj->dynamicParams.targetFrameRate     = 30000;
    pObj->dynamicParams.refFrameRate        = 30000;
    pObj->dynamicParams.inputHeight  = 120;
    pObj->dynamicParams.inputWidth  = 160;
    pObj->dynamicParams.captureWidth        = 0;
    pObj->dynamicParams_mpeg4.intraAlgo      = 1;
    pObj->dynamicParams_mpeg4.numMBRows      = 7;//(pObj->createPrm.height/16)
    pObj->dynamicParams_mpeg4.initQ          = 4;
    pObj->dynamicParams_mpeg4.rcQMax         = 25;
    pObj->dynamicParams_mpeg4.rcQMin         = 4;
    pObj->dynamicParams_mpeg4.rateFix        = 0;
    pObj->dynamicParams_mpeg4.rateFixRange   = 2;
    pObj->dynamicParams_mpeg4.meAlgo         = 3;
    pObj->dynamicParams_mpeg4.skipMBAlgo     = 0;
    pObj->dynamicParams_mpeg4.unrestrictedMV = 0;
    pObj->dynamicParams_mpeg4.interFrameQP   = 0;
    pObj->dynamicParams_mpeg4.intraFrameQP   = 0;
    pObj->dynamicParams_mpeg4.mvDataEnable   = 0;

           I found that the CVBR mode can work well with the same settings.

  • Hi Tracy,

    I ran the encoder with the parameters specified above but I do not observe any issues in the encoded output as such.

    Can you please elaborate what exactly is the problem? If you could attach a sample of a problem stream, that would be great.

    Thanks,

    Akshay.