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.

H264 decoder memory on DM8168

Hi all,

We use DVRRDK_02.80.00.10 on DM8168 and test the decoder performance and memory usage.

We are trying to decode 1600x1200 video stream and find find its memory usage is bigger than 1920x1080 in H264 decoder lib.

Could anyone tell us why this video stream(1600x1200)  consume so much memory ?

 

The memory is allocated by H264 codec lib.

If we input 1920x1080, the HDVICP will use

[m3video]  6873109: DECODE: Creating CH8 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 2000 Kbps ...

[m3video] DECLINK_H264:HEAPID:0        USED:2368

[m3video] DECLINK_H264:HEAPID:3        USED:8933376

 

If we input 1600x1200, the HDVICP will use

[m3video]  621585: DECODE: Creating CH0 of 1600 x 1200 [PROGRESSIVE] [NON-TILED  ],target bitrate = 2000 Kbps ...

[m3video] DECLINK_H264:HEAPID:0        USED:2368

[m3video] DECLINK_H264:HEAPID:3        USED:26939392

 

The above information is printed by DVRRDK_02.80.00.10 .

You can see the video size of 1600x1200 is smaller than 1920x1080, but the memory usage is bigger than 1920x1080.

  • Present RDK treat any video stream whose width > 1920 or height > 1080 as high mega pixel video and allocates 4k x 4k output buffers. in this particular case height is 1200 and which > 1080 is the reason for higher memory. This is a RDK issue. I will fix this by including a few more resolution class such as
    2k x 2k
    3k x 3k
    in between HD and 4k x 4k. This will still make the resolution class to 2k x 2k in this particular stream case, but which is not a huge increment . I did this resolution class design to avoid the memory fragmentation issues while delete/create decode channels
    This modification will be available in the Aug End patch release

    regards, shiju