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.

dm365 h264 multiple silce issue



Hi all:
   Our clients need H264 codec with supporting multiple slices on DM365 SOC, otherwise, if use VLC player to receive h264 encoded video data from our DM365 encode board(1024*768 VGA encode) , if the network environment is so bad, error macro block will appear, and all the following macro blocks will can not be decoded, even these blocks are correct.
   now we use the H264 pre-release 1080P codec lib from TI FAE, but according h264_encode_userguide.pdf page 23, only in high quality mode and use CAVLC mode, can it support multiple slices encoding, I review these datasheet and dvsdk files, I can not found the place to config the CAVLC mode in high quality. So could you give me some suggestion to fix this issue please ?

Thanks
BESTREGARDS
Steve
01-28-2010

 

  • Information on the various codec configuration settings are normally found under the corresponding Codec User Guide.  I am not sure if I have the same version of h.264 encode codec as you, but the user guide in mines defines "IH264VENC_Params->EntropyMode" field which is used to select between CAVLC and CABAC modes.

  • Hi Juan:

         I know the "IH264VENC_Params" includes "EntropyMode" and  "encQuality",  the H264enc in DVSDK supports a test example,  which in dm365_codecs_01_00_06/packages/ti/sdo/codecs/h264enc/apps/client/test.  I view the test example project, the source file "h264encoderapp.c" read the "testparams.cfg" file, and get codec parameters frome it.  then pass to sTokenMap[],  but I do not know how the array sTokenMap[] pass these parameters to the codec,  such as EntropyMode, encQuality.   Because these parameters must be configed befores H264VENC_create(), is there anybody counter the problem, please give me some suggestion. I just want to modyfy the  h264enc lib supported from TI to use multiple slices.

    BESEREGARDS

    Steve

     

     

  • Hi Steve,

    sTokenMap array keeps the token map of all the input configuration parameters. In the h264encoderapp.c file we parse the testpara,.cfg  file and stores the input values in the structures param  and dynamicparam.  After parsing the file, the input values are passed to the codec instance using a control call with SETPARAM option. Please refer to section 4.2.1.9 and 4.2.1.10 of the user-guide to get more information about structures IVIDENC1_Params and IVIDENC1_DynamicParams.

     

  • hi  Ritesh:

         The "SETPARAM " as you say do not include the parameter to config high quality and CAVLC mode,  I view the "H264VENC_create()" and  "H264VENC_control" ,  they set  params and dynamicparams,  but the two STRUCTS not  include "encQuality"  and "entropyMode",  so I don't know how to change "encQuality"  and "entropyMode" setting.  in "dynamicparams" STRUCT ,it contains "sliceSize" to set the number of MB rows per Slice.

    Thanks

    BESTREGARDS

    Steve, China ShangHai

  •  Hi Steve,

    In user Guide please look for description of IH264VENC_Params.  In the field table  of the description you can find the definition of the parameters mentioned by you. When you create H264VENC_create() , params are passed  and the parameters values are set during creation.

    Please go through h264encoderapp.c  file carefully, you will find how it can be done.