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.

Severe performance decrease of H264 encoder

Other Parts Discussed in Thread: OMAP3530

Hello,

a have developed a program based on DMAI for OMAP3530 that encodes video with H264 encoder. I was able to achieve a pretty good encoding peformance: each frame with 720x576 pixel resolution took about 29-31 ms to encode. 32 ms is a rare exception. This is pretty good when you want to do 30 fps realtime encoding and have to stay below the 33 ms threshold. This is, how I measure the time:

Time_reset(hTime);
Venc1_process(hEnc, hInBuf, hOutBuf);
Time_delta(hTime, &delta);

As we want to encode video data captured from ISP, I had to update from 2.6.32 to 2.6.37 kernel that brings the ISP driver with Media Controller. Because we use Open Embedded for development I also switched from DVSDK (4.01) to the meta-ti layer in OE. DVSDK used the CodeSourcery toolchain, in OE it's GNU now.

When I run my program now (still without ISP capturing), the encoder performs really bad. The encoding time ranges from 31 up to 50 ms and half of all frames is over 33 ms.

Do you have an idea, what could be the reason for this performance drop? Do different versions of the TI software packages (e.g. codec-engine, dsplink, linuxutils, etc) differ so much in performance? Does the linux kernel influence the performance? Or do specific versions of the TI software target a specific kernel in regard to performance?

Here's a list of the versions I currently use and are provided by OE:

cgt6x 6.1.20
codec-engine 2.26.02.11
codecs-omap3530 4.00.00.00
dmai 2.20.00.14
dspbios 5.41.11.38
dsplink 1.65.00.03
edma3lld 1.11.01.04
framework-components 2.26.00.01
linuxutils 2.26.01.02
local-power-manager 1.24.02.09
xdais 6.26.01.03
xdctools 3.23.00.32

 

 

Because I do not know what the reasons for the performance drop are, I'm trying to get the versions that are used in DVSDK 4.01 into OE. The linux kernel must be 2.6.37 because of the ISP drivers.

So I hope, you have some advice on this issue.

Kind regards,

Andreas