Hi all,
I am developing a video phone application on DM368. I am using linux 2.6.32.17 and dvsdk 4.02.00.06. I observed that encoder is taking around 10%-12% of CPU time.
I checked the details by using opreport. Here are the results: ( application name is 'dam')
CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
samples % app name symbol name
16689 78.4958 no-vmlinux /no-vmlinux
1462 6.8764 libc-2.8.so /lib/libc-2.8.so
306 1.4393 dam H264VENC_TI_deactivateAllResources
298 1.4016 dam H264VENC_TI_activateAllResources
236 1.1100 dam H264VENC_TI_Encode_End
226 1.0630 libpthread-2.8.so /lib/libpthread-2.8.so
190 0.8937 dam H264VENC_TI_control
170 0.7996 dam H264V_TI_DMA_Wait
162 0.7620 dam H264VENC_TI_encode
153 0.7196 dam H264VENC_TI_Encode_Frame_Lite
104 0.4892 dam H264V_TI_DMA_Map_TC
66 0.3104 dam DAMPreProcThread
62 0.2916 dam H264VENC_TI_RateCtrl_Dm365PicInit
58 0.2728 busybox /bin/busybox
47 0.2211 dam H264VENC_TI_RateCtrl_PicInit
41 0.1928 dam DisplayPreviewImageOnDavinci
38 0.1787 dam H264V_TI_DMA_ECopy_1D1D
35 0.1646 dam RemoveH264NALStartIndicator
34 0.1599 dam PacketizeH264AndSendToNetwork
34 0.1599 dam TIEncoder
33 0.1552 dam H264VENC_TI_Encode_Frame_HeaderGen
29 0.1364 dam H264VENC_TI_RateCtrl_PostPic
27 0.1270 dam __divdi3
27 0.1270 dam validate_init
25 0.1176 dam ALG_activate
24 0.1129 ld-2.8.so /lib/ld-2.8.so
23 0.1082 dam RTPTxProcess
21 0.0988 dam H264VENC_TI_KALEIDO_PSC_Enable
21 0.0988 dam H264VENC_TI_RateControlInit
21 0.0988 dam __udivsi3
20 0.0941 dam PreviewAndORResizeFrame
19 0.0894 dam VIDENC1_control
19 0.0894 dam VIDENC1_process
18 0.0847 dam VISA_exit
16 0.0753 dam H264VENC_TI_set_buf_idx
15 0.0706 dam H264VENC_TI_RateCtrl_ComputeGlobalAdj
14 0.0658 dam DAMDisplayThread
14 0.0658 dam H264VENC_TI_ChecklevelLimits
14 0.0658 dam H264VENC_TI_RateCtrl_UpdateQsIAfterPPic
14 0.0658 dam H264VENC_TI_store_pic_attr
13 0.0611 dam ALG_deactivate
13 0.0611 dam Algorithm_activate
13 0.0611 dam H264VENC_TI_activate
13 0.0611 dam H264V_TI_DMA_ETrigger
13 0.0611 dam SendEncodedData
12 0.0564 dam H264VENC_TI_KALEIDO_PSC_SyncReset
12 0.0564 dam H264VENC_TI_RateCtrl_UpdatePrevGopStat
12 0.0564 dam RMAN_deactivateAllResources
11 0.0517 dam CMEM_exit
11 0.0517 dam H264VENC_TI_Encode_Frame
11 0.0517 dam H264VENC_TI_waitForHDVICP
11 0.0517 dam __aeabi_ldivmod
10 0.0470 dam CMEM_getPhys
10 0.0470 dam H264VENC_TI_KALEIDO_PSC_Enable_InitRam_Low
10 0.0470 dam H264VENC_TI_RateCtrl_ShiftFacForRowLevelQs
10 0.0470 dam VISA_enter
9 0.0423 dam H264VENC_TI_RateCtrl_UpdateCurrGopStat
9 0.0423 dam IPCSocketReceive
8 0.0376 dam CMEM_init
8 0.0376 dam DAMEncodeFrame
8 0.0376 dam H264VENC_TI_RateCtrl_ShiftFacForComplexity
8 0.0376 dam H264VENC_TI_deactivate
8 0.0376 dam H264VENC_TI_set_buf_management
8 0.0376 dam SemMP_pend
8 0.0376 dam SemMP_post
7 0.0329 dam Algorithm_deactivate
7 0.0329 dam H264VENC_TI_RateCtrl_Clip
7 0.0329 dam H264VENC_TI_remove_unref
7 0.0329 dam VISA_getAlgFxns
6 0.0282 dam H264ENC_TI_norm
6 0.0282 dam IPCReceive
6 0.0282 dam MEMUTILS_getPhysicalAddr
6 0.0282 dam VISA_getAlgHandle
5 0.0235 dam CMEM_cacheWb
5 0.0235 dam H264VENC_TI_RateCtrl_AddDelta2Quant
5 0.0235 dam MEMUTILS_cacheWb
5 0.0235 dam Thread_self
5 0.0235 dam VICP_register
4 0.0188 dam DAMEncoderThread
4 0.0188 dam DAMStateMachineThread
4 0.0188 dam H264VENC_TI_Loader_arm968_4
4 0.0188 dam HDVICPSYNC_start
4 0.0188 dam Log_printf
4 0.0188 dam ProcessTimerQ
4 0.0188 dam QHdlrSearchElem
4 0.0188 dam __aeabi_uidivmod
4 0.0188 dam flipDisplayBuffers
3 0.0141 dam .divsi3_nodiv0
3 0.0141 dam __gnu_ldivmod_helper
3 0.0141 libnss_compat-2.8.so /lib/libnss_compat-2.8.so
3 0.0141 oprofiled pop_buffer_value
2 0.0094 dam DAMInitialize
2 0.0094 dam DAMProcessTimerQueue
2 0.0094 dam H264VENC_TI_KALEIDO_PSC_Reset
2 0.0094 dam HDVICPSYNC_wait
2 0.0094 dam MEMUTILS_cacheWbInv
2 0.0094 dam RMAN_activateAllResources
2 0.0094 oprofiled odb_update_node_with_offset
1 0.0047 dam Algorithm_getAlgHandle
1 0.0047 dam GetSysTime
1 0.0047 dam H264VENC_TI_RateCtrl_UpdateQsIAfterIPic
1 0.0047 dam validate_init
1 0.0047 oprofiled odb_grow_hashtable
1 0.0047 oprofiled sfile_find
If I add the total usage by encoder. it goes up to 10%to12%. Is this a normal behavior for H.264 encoder on DM368?
I also observed that alg resources are activated and deactivated every time the encoder is called. Is it really necessary?
Is it possible to work around it to reduce the CPU usage?
Thanks and Regards,
Avneet