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 slice data modification

Hi, i'm using Texas encoder on DaVinci dm6467 (dvsdk 1.4, encoder v1.00) to generate H.264 data (with SPS and PPS).  However the brazilian standard ABNT NBR 15608-2 which i must do my h264 data comply with specifies a lot of changes in SPS, PPS and Slice Header. As the enconder does not offer enough parameter customization to my needs i made news SPS PPS and slice headers to attach with slice data generated by encoder. What i need to now is if the changes i need do are incompatible with the data generated by h264 encoder.

 

Here are a list of fields and values i modified:

 

SPS:

log2_max_frame_num_minus4 = 0 

pic_order_cnt_type = 2 (Here i believe that could be a problem)

direct8x8_inference_flag = 1 (Here i believe that could be a problem)

vui_parameters_flag = 1 (Then i included all vui parameters)

PPS:

pic_order_present_flag = 1 (Here i believe that could be a problem)

 

Slice Header:

The modifications of SPS and PPS above, exclude the fields pic_order_cnt_lsb and delta_pic_order_cnt_bottom in slices headers.

 

So, do someone know if i can make this changes at this haders?

Tanks in advance,

Rafael Madeira

  • Rafael,

    The TI encoder on DM6467 does not support B frames as well as Interlaced coding.

    Since we do not support B-frames, direct_8x8_inference_flag does not matter. In the TI codec it is set to 0.

    The pic_order_present_flag is set to 1 in TI, and correspondingly delta_pic_order_cnt_bottom is set to 0.

    We are setting the pic_order_cnt_type as 0 in TI encoder. You can use 2 also, there should not be a problem. Do you have the source code of the TI encoder to make the chnages?

    Regards,

    Kapil

     

     

     

  • Kapil,

    First of all, tanks for your fast reply.

    I don't have the codec source code to recompile and do this changes. Where i can find it?

    Just appending the data (SPS and PPS and Slice reader) won't work because setting pic_order_cnt_type = 2 makes things being generated slightly different in slice data and macroblocks data areas, that is it?

    As i'm having to do many modifications in data generated by encoder, another thing i need to know is, if can i make modifications in slice_header() (subfunction explicited in ITU-T  Recommendation  H.264:2005 ) without affecting data below it?

    Regards,

    Rafael Madeira

  • Rafael,

    You wil have to license the TI source code. Please work with your local TI FAE to get the TI source code.

    If you change the pic_order_cnt_type to 2, you will have to slightly modify how the encoder encodes POC. This is at the frame level and will not affect the encoding of the actual YUV.

    Regards,

    Kapil

  • Hello,

    so, the solution is to have TI source code of the encoder, right?

    regards

    Claudio

  • Claudio,

                 Yes, we can support POC type 2 by modifying certain parameters in the headers generated by the encoder. This would need to have the TI source code of the encoder.

    Rgds,

    Girish