2010年3月9日 星期二

ffmpeg-0.5 組合語言最佳化的方法

這幾天一直在編譯ffmpeg-0.5.1本來使用disable-asm的選項,但是在ARM上執行起來感覺

實在是太慢了!嘗試去編組合語言版本,但是因為錯誤實在太多而且,對ARM的組合語言

突然發現了下面的文章,真是我的救星,讓我明天試試他的效能吧!哈


這裡有修改一些檔案,因為在make的時候會發生一些asm指令找不到的問題。

diff -r ffmpeg-0.5/libavcodec/arm/asm.S ffmpeg_modify-0.5/libavcodec/arm/asm.S
24c24
< .eabi_attribute 24, \val
---
> @.eabi_attribute 24, \val
28c28
< .eabi_attribute 25, \val
---
> @.eabi_attribute 25, \val

diff -r ffmpeg-0.5/libavcodec/arm/dsputil_arm_s.S ffmpeg_modify-0.5/libavcodec/arm/dsputil_arm_s.S
641c641
< push {r4-r10}
---
> stmfd sp!, {r4-r10} @ push {r4-r10}
724c724
< pop {r4-r10}
---
> ldmfd sp!, {r4-r10} @ pop {r4-r10}

diff -r ffmpeg-0.5/libavcodec/arm/mpegvideo_armv5te_s.S ffmpeg_modify-0.5/libavcodec/arm/mpegvideo_armv5te_s.S
39c39
< push {r4-r9,lr}
---
> stmfd sp!, {r4-r9,lr} @ push {r4-r9,lr}
102c102
< pople {r4-r9,pc}
---
> ldmlefd sp!, {r4-r9,pc} @ pople {r4-r9,pc}
116c116
< pop {r4-r9,pc}
---
> ldmfd sp!, {r4-r9,pc} @ pop {r4-r9,pc}

原文出自於:http://deliondan.pixnet.net/blog/post/24474176

沒有留言: