Revision 5e123bd3

View differences:

doc/optimization.txt
1 1
optimization Tips (for libavcodec):
2
===================================
2 3

  
3 4
What to optimize:
5
-----------------
4 6
If you plan to do non-x86 architecture specific optimizations (SIMD normally),
5 7
then take a look in the i386/ directory, as most important functions are
6 8
already optimized for MMX.
......
9 11
stuff in the i386 directory or find some other functions in the C source to
10 12
optimize, but there aren't many left.
11 13

  
14

  
12 15
Understanding these overoptimized functions:
16
--------------------------------------------
13 17
As many functions tend to be a bit difficult to understand because
14 18
of optimizations, it can be hard to optimize them further, or write
15 19
architecture-specific versions. It is recommened to look at older
......
23 27
NOTE: If you still don't understand some function, ask at our mailing list!!!
24 28
(http://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel)
25 29

  
30

  
26 31
What speedup justifies an optimizetion?
32
---------------------------------------
27 33
Normaly with clean&simple optimizations and widely used codecs a overall
28 34
speedup of the affected codec of 0.1% is enough. These speedups accumulate
29 35
and can make a big difference after a while ...
......
35 41

  
36 42

  
37 43
WTF is that function good for ....:
44
-----------------------------------
38 45
The primary purpose of that list is to avoid wasting time to optimize functions
39 46
which are rarely used
40 47

  
......
145 152

  
146 153

  
147 154
Links:
155
======
148 156
http://www.aggregate.org/MAGIC/
149 157

  
150 158
x86-specific:
159
-------------
151 160
http://developer.intel.com/design/pentium4/manuals/248966.htm
152 161

  
153 162
The IA-32 Intel Architecture Software Developer's Manual, Volume 2:
......
161 170

  
162 171

  
163 172
ARM-specific:
164

  
173
-------------
165 174
ARM Architecture Reference Manual (up to ARMv5TE):
166 175
http://www.arm.com/community/university/eulaarmarm.html
167 176

  
......
176 185
http://download.intel.com/design/intelxscale/27347302.pdf
177 186

  
178 187
PowerPC-specific:
179

  
188
-----------------
180 189
PowerPC32/AltiVec PIM:
181 190
www.freescale.com/files/32bit/doc/ref_manual/ALTIVECPEM.pdf
182 191

  
......
188 197
http://www-01.ibm.com/chips/techlib/techlib.nsf/techdocs/9F820A5FFA3ECE8C8725716A0062585F/$file/CBE_Handbook_v1.1_24APR2007_pub.pdf
189 198

  
190 199
SPARC-specific:
200
---------------
191 201
SPARC Joint Programming Specification (JPS1): Commonality
192 202
http://www.fujitsu.com/downloads/PRMPWR/JPS1-R1.0.4-Common-pub.pdf
193 203

  
......
198 208
http://www.sun.com/processors/vis/download/vis/vis_whitepaper.pdf
199 209

  
200 210
GCC asm links:
211
--------------
201 212
official doc but quite ugly
202 213
http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html
203 214

  

Also available in: Unified diff