cleanup
[ffmpeg.git] / doc / optimization.txt
index 18ad2b6283beff55e9184e4ea6337415f1fa8aed..87e9d88468989891f596cb54a32e8922dd8db3e0 100644 (file)
@@ -68,22 +68,32 @@ get_pixels / diff_pixels
         
 clear_blocks
        easiest, to optimize
+        
 gmc
        used for mpeg4 gmc
         optimizing this should have a significant effect on the gmc decoding speed but
         its very likely impossible to write in SIMD
 
+gmc1
+       used for chroma blocks in mpeg4 gmc with 1 warp point
+       (there are 4 luma & 2 chroma blocks per macrobock, so 
+        only 1/3 of the gmc blocks use this, the other 2/3 
+        use the normal put_pixel* code, but only if there is 
+        just 1 warp point)
+        Note: Divx5 gmc always uses just 1 warp point
+
 pix_sum
        used for encoding
         
-hadamard8_diff / sse / sad == pix_norm1 / dct_sad / quant_psnr
+hadamard8_diff / sse / sad == pix_norm1 / dct_sad / quant_psnr / rd / bit
        specific compare functions used in encoding, it depends upon the command line
         switches which of these are used
         dont waste ur time with dct_sad & quant_psnr they arent really usefull
 
 put_pixels_clamped / add_pixels_clamped
-       used for en/decoding, easy
+       used for en/decoding in the IDCT, easy
+        Note, some optimized IDCTs have the add/put clamped code included and then 
+        put_pixels_clamped / add_pixels_clamped will be unused
 
 idct/fdct
        idct (encoding & decoding)
@@ -121,6 +131,8 @@ for example:
 
 
 Links:
+http://www.aggregate.org/MAGIC/
+
 X86 specific:
 http://developer.intel.com/design/pentium4/manuals/248966.htm
 
@@ -134,4 +146,9 @@ AMD Athlon Processor x86 Code Optimization Guide:
 http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/22007.pdf
 
 GCC asm links:
-FIXME
\ No newline at end of file
+official doc but quite ugly
+http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html
+
+a bit old (note "+" is valid for input-output, even though the next says its not)
+http://www.cs.virginia.edu/~clc5q/gcc-inline-asm.pdf
+