Commit Graph

243 Commits

Author SHA1 Message Date
Robert Edele 059715a41c First part of a series of speed-enchancing patches.
This one sets up a snow.h and makes snow use the dsputil function pointer
framework to access the three functions that will be implemented in asm
in the other parts of the patchset.
Patch by Robert Edele < yartrebo AH earthlink POIS net>
Original thread:
Subject: [Ffmpeg-devel] [PATCH] Snow mmx+sse2 asm optimizations
Date: Sun, 05 Feb 2006 12:47:14 -0500

Originally committed as revision 5172 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-03-16 19:18:18 +00:00
Michael Niedermayer fc8c49926c dont pass intra flag if its always 0
Originally committed as revision 5164 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-03-14 00:22:05 +00:00
Loren Merritt 8f8ae4951e seed iterative_me with mvs from conventional search.
+15% speed, +.1 dB

Originally committed as revision 5158 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-03-13 01:27:13 +00:00
Loren Merritt 07674d518c obey vqscale in 2nd pass
Originally committed as revision 5157 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-03-13 01:26:06 +00:00
Michael Niedermayer e7c8206e5c av_free -> av_freep
Originally committed as revision 5145 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-03-11 00:19:32 +00:00
Michael Niedermayer 87f20c2f31 fix %8 != 0 w/h
Originally committed as revision 5144 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-03-11 00:18:43 +00:00
Dieter ceaf1909c1 add static keyword to some functions
patch by Dieter <freebsd at sopwith solgatos com>

Originally committed as revision 4913 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-01-30 23:33:19 +00:00
Diego Biurrun 4f59b684a6 Remove all stray tabs and trailing whitespace, this time for good.
Originally committed as revision 4891 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-01-24 10:33:14 +00:00
Loren Merritt 48d1b9a17c fix convergence of snow iterative_me
Originally committed as revision 4876 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-01-21 02:35:03 +00:00
Loren Merritt 3de79d0dca revert 1.83 because it's not needed
Originally committed as revision 4875 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-01-21 02:33:01 +00:00
Loren Merritt d3ac6ed667 detect when iterative_me fails to converge, and stop searching
Originally committed as revision 4868 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-01-19 09:21:39 +00:00
Loren Merritt b104969fab obmc-aware 4mv
Originally committed as revision 4864 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-01-17 08:27:39 +00:00
Diego Biurrun 5509bffa88 Update licensing information: The FSF changed postal address.
Originally committed as revision 4842 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-01-12 22:43:26 +00:00
Michael Niedermayer c8a596d210 bugs found by valgrind
Originally committed as revision 4841 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-01-12 21:37:57 +00:00
Loren Merritt 1015631b79 faster iterative_me: avoid duplicate mc of neighboring blocks.
Originally committed as revision 4839 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-01-12 05:47:52 +00:00
Michael Niedermayer 80e44bc3bf use h264 MC functions for 2xX Xx2 blocks in snow too
Originally committed as revision 4824 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-01-08 01:50:34 +00:00
Michael Niedermayer 2692ceab8b use h264 MC functions for rectangular blocks too
Originally committed as revision 4821 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-01-07 18:34:19 +00:00
Michael Niedermayer 39277cf949 10l (assertion failure)
Originally committed as revision 4819 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-01-07 03:39:10 +00:00
Michael Niedermayer 3b6ab26c01 cleanup
fix 4mv playback distortions

Originally committed as revision 4813 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-01-04 22:34:11 +00:00
François Revol 003cd80df9 :%s/check_block_2p/check_block_inter/g
Originally committed as revision 4794 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-12-30 22:41:32 +00:00
François Revol 52137f2f43 this fixes compilation with gcc 2.95 which seems to not like array casting... special case inline of check_block which makes the array and passes it
Originally committed as revision 4793 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-12-30 21:05:44 +00:00
Michael Niedermayer 13705b69eb mem corruption fix
Originally committed as revision 4789 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-12-30 15:12:02 +00:00
Michael Niedermayer d6f41eeddc 4mv + iter ME 10l fix (still not bugfree but better)
Originally committed as revision 4783 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-12-29 02:17:51 +00:00
Michael Niedermayer 735f9f34fe 10l
Originally committed as revision 4782 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-12-28 23:45:16 +00:00
Michael Niedermayer 51d6a3cf00 iterative overlapped block based motion estimation for snow
Originally committed as revision 4781 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-12-28 15:43:53 +00:00
Diego Biurrun bb270c0896 COSMETICS: tabs --> spaces, some prettyprinting
Originally committed as revision 4764 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-12-22 01:10:11 +00:00
Michael Niedermayer daba69b211 10l
Originally committed as revision 4758 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-12-19 18:26:17 +00:00
Diego Biurrun 115329f160 COSMETICS: Remove all trailing whitespace.
Originally committed as revision 4749 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-12-17 18:14:38 +00:00
Michael Niedermayer 4393e6392c check block_max_depth (fixes crash)
Originally committed as revision 4718 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-12-03 14:20:03 +00:00
Michael Niedermayer 91aa4e3300 make selftest code compile again
Originally committed as revision 4717 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-12-03 03:07:54 +00:00
Aurelien Jacobs 62ab0b7822 fix unused variable warnings
Originally committed as revision 4609 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-09-21 23:09:16 +00:00
Michael Niedermayer cc884a3506 reducing minimum supported picture size
Originally committed as revision 4535 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-08-21 22:17:41 +00:00
Michael Niedermayer 9cd8179818 #defines for strict_std_compliance and split between inofficial extensions and non standarized things
Originally committed as revision 4205 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-05-08 20:15:42 +00:00
Michael Niedermayer 644a92626a PIX_FMT_NONE and related fixes
Originally committed as revision 4161 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-25 18:29:06 +00:00
Yartrebo 66b32bf272 tighter snow slicing patch by (Yartrebo || yartrebo earthlink net)
Originally committed as revision 4159 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-25 10:03:01 +00:00
Mike Melanson 160d679c07 Ministry of English Composition, reporting for duty (and the word is "skipped", not "skiped"; "skiped" would rhyme with "hyped")
Originally committed as revision 4153 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-24 17:21:11 +00:00
Yartrebo 8c2515bbb9 fix overflow in mc_block() patch by (Yartrebo )yartrebo earthlink net
Originally committed as revision 4132 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-17 09:27:53 +00:00
Michael Niedermayer b44985ba12 store the number of runs to avoid storing the last run value
about 10% lower bitrate for -qscale 32 (forman & some music video)
worst case bitrate increase <0.1% (lossless or low qscale)
and now the bad news, even though this just adds a single subtraction and an if() into the medium sized unpack_coeffs() loop and the if() will only be false once per unpac_coeff() call, gcc produces 50% slower code, i didnt look at the generated asm yet, not sure if i want to ...

Originally committed as revision 4131 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-15 13:24:30 +00:00
Loren Merritt 2cd340438a allow 2pass ratecontrol. also fixes psnr displayed by mencoder.
Originally committed as revision 4130 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-15 05:54:47 +00:00
Michael Niedermayer cbb1d2b161 replace complicated pointer dereference + index stuff by pointers in unpack_coeffs()
Originally committed as revision 4129 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-14 20:54:03 +00:00
Michael Niedermayer 99cd59e58f minor optimization
Originally committed as revision 4128 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-14 20:30:08 +00:00
Michael Niedermayer 3c096ac791 optimizing unpack_coeffs()
Originally committed as revision 4127 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-14 18:33:26 +00:00
Yartrebo 86e59cc01d Snow segfault bug in revision 1.43 patch by (Yartrebo /yartrebo earthlink net/)
Originally committed as revision 4126 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-13 01:57:19 +00:00
Michael Niedermayer f5a719287d rescale coefficients during IDWT, that way the lifting steps are much simpler and faster
Originally committed as revision 4119 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-10 14:21:53 +00:00
Michael Niedermayer a0a74ad9f0 increasing precission of the quantization parameter
this is needed as the quantization stepsize for each subband is also in this precission and insignificant changes to the wavelet like scaling its coefficients slightly differently would lead to wildly variing PSNR and bitrate
note, a encoder could also simply choose to leave the least significant bits of the quantization parameters zero which would give the exact previous behaviour except a y very tiny number of bits in  the header

Originally committed as revision 4115 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-09 22:15:48 +00:00
Michael Niedermayer c97de57c39 fix QROOT != 8
Originally committed as revision 4114 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-09 19:48:59 +00:00
Michael Niedermayer 538a38418c 10% faster unpack_coeffs
Originally committed as revision 4108 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-05 17:59:05 +00:00
Michael Niedermayer 3cff4572ce fixing lossless snow
Originally committed as revision 4107 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-05 09:37:43 +00:00
Michael Niedermayer 565a45ace3 merge vertical lifting steps and a little cleanup
Originally committed as revision 4104 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-04 21:35:18 +00:00
Yartrebo a0d1931c0e Snow Slicing patch by (Yartrebo) yartrebo earthlink net
Originally committed as revision 4101 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-04-03 15:43:57 +00:00
Loren Merritt f9e6ebf7f9 slice-based idwt (10% faster decoding)
Originally committed as revision 4040 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-03-15 21:05:34 +00:00
Michael Niedermayer 53513831da -strict -1 comment fix
Originally committed as revision 3976 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-02-24 16:39:03 +00:00
Michael Niedermayer 934982c4ac avoid buf_size == 0 checks in every decoder
Originally committed as revision 3872 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-01-23 18:09:06 +00:00
Matthieu Castet d06c75a830 10l patch by (matthieu castet <castet.matthieu free fr>)
Originally committed as revision 3842 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-01-16 22:11:47 +00:00
Michael Niedermayer 0ecca7a49f various security fixes and precautionary checks
Originally committed as revision 3822 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-01-12 00:16:25 +00:00
Gianluigi Tiesi 8ff53f5b07 Disable encoders patch by (Gianluigi Tiesi <mplayer netfarm it>)
Originally committed as revision 3797 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-01-03 16:13:52 +00:00
Michael Niedermayer 2554db9b5f fix for build on IRIX by (Michel Bardiaux {mbardiaux peaktime be})
Originally committed as revision 3713 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-11-25 19:26:46 +00:00
Michael Niedermayer 2886975773 CABAC -> range coder
Originally committed as revision 3655 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-10-30 02:16:27 +00:00
Michael Niedermayer d7d51926dd unused
Originally committed as revision 3502 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-09-24 18:12:43 +00:00
Michael Niedermayer 715a97f0c0 merge predict_plane() with DWTELEM->8bit conversation (21% faster)
Originally committed as revision 3499 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-09-23 12:20:41 +00:00
Michael Niedermayer 034aff036f 8 -> FRAC_BITS
Originally committed as revision 3489 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-09-21 23:10:10 +00:00
D Richard Felker III aa25a462b6 consistent use of types patch by (D Richard Felker III <dalias at aerifal dot cx>)
Originally committed as revision 3480 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-09-19 14:43:09 +00:00
Loren Merritt 7c2425d239 simplify getsymbol patch by (Loren Merritt <lorenm at u dot washington dot edu>)
Originally committed as revision 3476 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-09-17 23:51:36 +00:00
Michael Niedermayer bd368b565b per picture psnr
Originally committed as revision 3465 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-09-15 01:55:04 +00:00
Michael Niedermayer d92b58073e 100l (forgot to set the 8x8 mc functions, so ME did use the mpeg ones ...)
Originally committed as revision 3456 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-09-12 23:09:54 +00:00
Michael Niedermayer ec69758781 use h264 MC code if possible
50% faster predict_plane() if mmx2/3dnow is available
0.1% bitrate increase

Originally committed as revision 3455 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-09-12 21:32:36 +00:00
Michael Niedermayer 3924dac4c8 use pointer arithmetic in mc_block(), 25% faster
Originally committed as revision 3452 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-09-12 10:51:02 +00:00
Michael Niedermayer ff158dc95d 20% faster predict_plane()
moion vector max/min fix

Originally committed as revision 3434 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-09-05 21:46:16 +00:00
Michael Niedermayer 19aa028dc5 10l (keyframes and context resets)
Originally committed as revision 3426 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-31 16:28:49 +00:00
Michael Niedermayer 39c61bbbd3 cleanup
Originally committed as revision 3425 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-28 14:24:48 +00:00
Michael Niedermayer fff6d4ea4e 10l
more benchmarking code
inline

Originally committed as revision 3424 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-28 14:08:50 +00:00
Michael Niedermayer ea7d9cd4bc merge decode_subband() and dequantize()
Originally committed as revision 3422 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-27 21:16:51 +00:00
Michael Niedermayer ff76515933 11% faster decode_subband()
Originally committed as revision 3421 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-27 20:33:16 +00:00
Michael Niedermayer 0cea8a037c 5% faster decode_subband()
a little cleanup

Originally committed as revision 3420 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-27 20:15:32 +00:00
Michael Niedermayer 7b49c30974 46% faster decode_subband()
Originally committed as revision 3419 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-27 19:52:32 +00:00
Michael Niedermayer 3c1adccd1c 50% faster decode_subband()
Originally committed as revision 3418 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-27 01:06:58 +00:00
Michael Niedermayer 155ec6edf8 quad tree based motion compensation (currently only 16x16 & 8x8 OBMC blocks, but can be extended to other block sizes easily)
different intra block coding (previous was just an ugly hack)
1.8% bitrate reduction -0.01PSNR (foreman@352x288 qscale=8)
1.5% bitrate reduction +0.05PSNR (foreman@352x288 qscale=1)

Originally committed as revision 3416 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-26 20:04:54 +00:00
Michael Niedermayer 64886072f5 edge bugfix
1-1.3% lower bitrate and +0.01 PSNR (foremen@352x288 qscale=1,8)

Originally committed as revision 3414 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-25 00:26:01 +00:00
Michael Niedermayer 46c281e8c1 cleanup
Originally committed as revision 3377 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-03 02:34:50 +00:00
Michael Niedermayer 93fbdb5ac5 lossless support
Originally committed as revision 3374 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-02 19:09:28 +00:00
Michael Niedermayer 3bb9f096d4 cleanup
Originally committed as revision 3373 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-02 18:01:03 +00:00
Michael Niedermayer 0635cbfc32 improved magnitude coding, 0.2% lower bitrate (foreman@352x288 qscale 1 and 8)
Originally committed as revision 3372 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-02 17:53:57 +00:00
Michael Niedermayer bc68bfdde0 cleanup
Originally committed as revision 3367 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-02 01:06:55 +00:00
Michael Niedermayer 4f4e963383 various subband encoders (all either worse or complicated so they are commented out)
different 0-context encoding, 1.2% lower bitrate (foreman@352x288 qscale=8) no significant change at qscale=1

Originally committed as revision 3366 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-02 01:03:52 +00:00
Michael Niedermayer 620ab797f0 1/0 fix
Originally committed as revision 3357 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-07-28 01:35:29 +00:00
Michael Niedermayer 2ff9ff5bdf dont segfault without -strict -1
Originally committed as revision 3356 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-07-28 00:09:03 +00:00
Michael Niedermayer da66b6313e optimize quantizaton (about 3x faster)
further opt is easily possible but could lead to overflows depening upon coefficient range, so this wont be done yet as it would make the code somewhat less flexible

Originally committed as revision 3354 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-07-27 17:38:53 +00:00
Michael Niedermayer a8d73e56e6 cleanup
remove ugly and slow vertical scaning code
0.1% bitrate increase (foreman@352x288 qp=1)
0.3% bitrate increase (foreman@352x288 qp=8)

Originally committed as revision 3353 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-07-27 17:02:31 +00:00
Michael Niedermayer 7848640356 use parent sample to predict significance & magnitude
1% bitrate reduction (foreman@352x288 qscale 1 & 8)

Originally committed as revision 3352 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-07-27 13:40:16 +00:00
Michael Niedermayer e071139a96 log2() & bsd
Originally committed as revision 3350 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-07-27 09:44:57 +00:00
Michael Niedermayer 6b2f664691 better context model (0.2-1% lower bitrate)
a tiny bit cleanup

Originally committed as revision 3348 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-07-27 01:30:44 +00:00
Michael Niedermayer de890c9bd1 typo
Originally committed as revision 3342 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-07-26 13:31:48 +00:00
Michael Niedermayer 791e7b83c3 my experimental wavelet codec
note, this is far from finished, dont expect todays encodings to be decodeable with cvs tomorrow ...

Originally committed as revision 3341 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-07-25 23:36:44 +00:00