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.

How does H264 HP encoder know elapsed time between frames?

Hi,

I am using H264 High Profile encoder(version 1.0.2.0) for encoding 12-bit raw yuv data.

Can experts from TI let me know:

1. Does H264 HP encoder count cycles between encode calls to know elapsed time between frames, or just assume time based on frame rate?
2. Is the encoder adjusting filter or other codec parameters (e.g. motion estimation) based on frame rate?

These questions arise because at 15 fps vs. 30 fps, I see significantly higher encode time per frame with identical video data input. Also there is no effect if I double or triple bitrate.

Thank you,
Harshal Patel
HPC Systems Engineer
Signalogic Inc.

  • Hi Harshal,

    C6678 H264HP Encoder Supports only 8 bit data(XDM_BYTE).

    Encoder tries to complete the frame as early as possible and it is not maintaining any performance information based on cycles across frames. Rate control algorithm will take framerate as one of its input, and bits estimation will change according to that. This will have impact on various motion algorithms to maintain bitrate within limits.

    If bit rate variation has already reached peak wrt RC(max values set for buffers, Qp max etc), then increasing further may not have much impact on performance. Otherwise as cabac cycles increases it will have impact though the loads are shared across cores.

    Thanks and regards

    Sudheesh

  • Hi Sudheesh,

    Thank you very much for the information.
    Also we are trying to add non-reference vector compliant presets like 'medium', 'fast' and 'ultrafast', similar to ffmpeg.
    Can you please point out some areas in H.264 encoder source where we can add those presets?

    Thank you,
    Harshal Patel
    HPC Systems Engineer
    Signalogic Inc.

  • Hi Harshal,

    You can look these keywords: "XDM_HIGH_SPEED", "AVOIDING_". 

    Thanks and regards

    Sudheesh