在ADSP-BF561上使用x264(4):确认热点

快乐虾

http://blog.csdn.net/lights_joy/

[email protected]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文适用于

ADSP-BF561

Visual DSP++ 5.0 (update 7)

x264-snapshot-20091118-2245

 

 

 

 

 

欢迎转载,但请保留作者信息

 

在进一步的优化之前,我们需要确认程序的热点在哪里,使用vdsp提供的statistic profile,我们得到这样的一个初步结果:

 

根据这个结果,我们尽可能将执行率比较高的几个函数放到L1里面。

common/mc.c(248):static uint8_t *get_ref( uint8_t *dst,   int *i_dst_stride,

common/pixel.c(245):static NOINLINE int x264_pixel_satd_8x4( uint8_t *pix1, int i_pix1, uint8_t *pix2, int i_pix2 )

common/mc.c(280):static void mc_chroma( uint8_t *dst, int i_dst_stride,

common/pixel.c(63):PIXEL_SAD_C( x264_pixel_sad_16x16, 16, 16 )

common/pixel.c(69):PIXEL_SAD_C( x264_pixel_sad_8x8,    8,  8 )

encoder/me.c(775):static void refine_subpel( x264_t *h, x264_me_t *m, int hpel_iters, int qpel_iters, int *p_halfpel_thresh, int b_refine_qpel )

common/quant.c(54):static int quant_4x4( int16_t dct[16], uint16_t mf[16], uint16_t bias[16] )

common/dct.c(121):static void sub4x4_dct( int16_t dct[16], uint8_t *pix1, uint8_t *pix2 )

common/pixel.c(220):static NOINLINE int x264_pixel_satd_4x4( uint8_t *pix1, int i_pix1, uint8_t *pix2, int i_pix2 )

encoder/macroblock_enc.c(606):void x264_macroblock_encode( x264_t *h )

common/pixel.c(66):PIXEL_SAD_C( x264_pixel_sad_8x16,   8, 16 )

common/mc.c(198):static void hpel_filter( uint8_t *dsth, uint8_t *dstv, uint8_t *dstc, uint8_t *src,

common/pixel.c(65):PIXEL_SAD_C( x264_pixel_sad_16x8,  16,  8 )

common/pixel.c(342):static NOINLINE uint64_t pixel_hadamard_ac( uint8_t *pix, int stride )

encoder/macroblock_enc.c(342):void x264_mb_encode_8x8_chroma( x264_t *h, int b_inter, int i_qp )

common/dct.c(194):static void add4x4_idct( uint8_t *p_dst, int16_t dct[16] )

 

 

其中,x264_me_search_ref函数因为代码量过大无法放在L1中,跳过它。

由于同样的原因,x264_macroblock_cache_load函数被我们放弃。

经过这样的处理后,我们得到下面的运行结果:

       encoded 301 frames, 2.02 fps, 1081.88 kb/s

总共使用了 86492 M cycle,运算速度提高了6.5%

 

 

 

 

近日,我家6岁的小姑娘参加了第六届POP全国少儿英语风采大赛,拉票进行中(2011-6-15前)。

请帮忙点击新东方网站的链接:

http://popdasai.xdf.cn/toupiao.php?do=space&uid=4237

投她一票,谢谢!

1       参考资料

ADSP-BF561上使用x2644):打开cache2009-11-24

ADSP-BF561上使用x2643):正确性验证2009-11-24

ADSP-BF561软件优化(2):移植x264(2009-11-19)

ADSP-BF561软件优化(1):开篇(2009-11-18)

 

 

 

 

 

 

你可能感兴趣的:(c,优化,cache,filter,search,DST)