Commit Graph

99 Commits

Author SHA1 Message Date
Michael Niedermayer
d951bb9a5c test DIRECT{0,0} too if flag mv0 is used
slight PSNR/bitrate increase

Originally committed as revision 7361 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-22 23:30:57 +00:00
Michael Niedermayer
e4d0e2edb9 fix special casing of the 0,0 MV for b frames (slight PSNR/bitrate gain)
Originally committed as revision 7334 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-20 17:11:54 +00:00
Michael Niedermayer
ff8dc81b5b dont favor the zero MV if mv0 is used (psnr per bitrate gains ranging from 0 to 0.14, most are <=0.04 though)
Originally committed as revision 7333 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-20 01:30:17 +00:00
Michael Niedermayer
2b0cdd9ec6 mv overflow in map fix (untested except regression tests)
Originally committed as revision 7287 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-12 13:31:12 +00:00
Måns Rullgård
849f10351d rename always_inline to av_always_inline and move to common.h
Originally committed as revision 7256 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-08 00:35:08 +00:00
Michael Niedermayer
2421a01b25 10l umh search needs hex size 2 now after the last change
Originally committed as revision 7224 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-05 12:35:47 +00:00
Michael Niedermayer
f852ff3257 make hex and large 2 small diamond search half their size instead or -1 if the initial size was a power of 2
double the hex size so odd sized hexagons are possible

Originally committed as revision 7223 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-05 12:34:52 +00:00
Diego Biurrun
c6c367254f spelling cosmetics: cliped --> clipped
Originally committed as revision 7208 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-02 14:19:49 +00:00
Michael Niedermayer
516ea8d222 fix indention
Originally committed as revision 7206 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-02 11:24:41 +00:00
Michael Niedermayer
1994e7c6b6 dia_size=-1 -> funny_diamond_search()
dia_siue=768 + size -> umh search (old -1 was 784)

Originally committed as revision 7205 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-02 10:58:20 +00:00
Michael Niedermayer
376edfcc0f hexagon search
dia_size=512 + hexagon size (513 is the normal one used in h264)
large to small diamond search
        dia_size=256 + diamond size

Originally committed as revision 7204 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-02 10:45:51 +00:00
Michael Niedermayer
ed1dfc4970 remove pretty much useless skiping of some predictors
this has pretty much no quality or speed effect except very small random changes

Originally committed as revision 7202 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-01 20:38:54 +00:00
Michael Niedermayer
c9cac6e3d7 typo in umh
Originally committed as revision 7193 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-01 09:58:06 +00:00
Michael Niedermayer
c7675718e4 UMH support (dia_size=-1 activates it)
Originally committed as revision 7192 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-01 09:48:33 +00:00
Michael Niedermayer
ac003d2461 cosmetic (prevent name clashes of variables in a macro with surrounding code)
Originally committed as revision 7191 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-12-01 09:46:52 +00:00
Michael Niedermayer
f7f8af46f7 1 step diamond search around the median MV predictor
+0.01 PSNR
idea from x264

Originally committed as revision 7189 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-11-30 22:44:22 +00:00
Diego Biurrun
c26abfa541 Rename ABS macro to FFABS.
Originally committed as revision 6666 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-10-11 23:17:58 +00:00
Dominik Mierzejewski
621d92940e Fixes:
mpegvideo.h:777: warning: ‘inline’ is not at beginning of declaration
motion_est_template.c:236: warning: ‘inline’ is not at beginning of declaration

Approved by Diego.

Originally committed as revision 6591 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-10-08 21:11:03 +00:00
Diego Biurrun
b78e7197a8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
and fix GPL/LGPL version mismatches.

Originally committed as revision 6577 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-10-07 15:30:46 +00:00
Michael Niedermayer
1dd509b157 make zero motion vector threshold user setable
Originally committed as revision 5348 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-05-07 11:48:07 +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
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
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
Måns Rullgård
88730be651 kill warnings patch by (Måns Rullgård <mru inprovide com>)
Originally committed as revision 3977 to svn://svn.ffmpeg.org/ffmpeg/trunk
2005-02-24 19:08:50 +00:00
Michael Niedermayer
1c3990dbba H.261 encoder by (Maarten Daniels <maarten dot daniels at luc dot ac dot be>)
Originally committed as revision 3643 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-10-28 10:12:57 +00:00
Michael Niedermayer
c08a01a6b9 pre_cmp fix
Originally committed as revision 3458 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-09-13 12:37:39 +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
26efc54e4a 4x4 SSE compare function
wavelet based compare functions
make epzs_motion_search() more flexible so it can be used for a wider range of block sizes
make get_penalty_factor() independant of MpegEncContext

Originally committed as revision 3410 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-08-22 17:16:03 +00:00
Loren Merritt
4994af2fbd shape-adaptive diamond + prediction crash patch by (Loren Merritt <lorenm at u dot washington dot edu>)
Originally committed as revision 3287 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-07-05 02:21:38 +00:00
Michael Niedermayer
0da6315a70 fewer overflows
Originally committed as revision 3222 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-06-14 16:18:04 +00:00
Michael Niedermayer
ae1dbde1cf clip input motion vectors
be somewhat more tollerant on invalid input
return INT_MAX instead of -1 for unuseable mv/mb types as that ensures nicely that they arent used
initalize limits earlier for b frames
a few more asserts to check for out of picture vectors

Originally committed as revision 3213 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-06-10 22:56:43 +00:00
Michael Niedermayer
1f202b0d46 moving motion estimation specific variables from MpegEncContext -> MotionEstContext
Originally committed as revision 3124 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-05-11 01:38:46 +00:00
Michael Niedermayer
af4091f194 reduce dependancy between motion estimation and MpegEncContext
this is practically just a s/s->me./c->/

Originally committed as revision 3123 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-05-11 00:58:08 +00:00
Michael Niedermayer
2750b827b3 motion estimation cleanup
replace ugly macros by always_inline functions, that way its much more readable and flexible as always_inline can simply be removed while the macros couldnt be
about 0.5 % speedup with default parameters

Originally committed as revision 3037 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-04-22 03:31:29 +00:00
Michael Niedermayer
80ee9fc0e3 simplify MV availability check / dont use below last row MV which is always zero
Originally committed as revision 2773 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-02-13 18:39:43 +00:00
Michael Niedermayer
9c3d33d67f multithreaded/SMP motion estimation
multithreaded/SMP encoding for MPEG1/MPEG2/MPEG4/H263
all pthread specific code is in pthread.c
to try it, run configure --enable-pthreads and ffmpeg ... -threads <num>
the internal thread API is a simple AVCodecContext.execute() callback which executes a given function pointer with different arguments and returns after finishing all, that way no mutexes or other thread-mess is needed outside pthread.c

Originally committed as revision 2772 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-02-13 17:54:10 +00:00
Michael Niedermayer
8f2ab83318 copyright year update of the files i touched and remembered, things look annoyingly unmaintained otherwise
Originally committed as revision 2686 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-01-10 16:04:55 +00:00
Michael Niedermayer
bb198e198a interlaced motion estimation
interlaced mpeg2 encoding
  P & B frames
  rate distored interlaced mb decission
  alternate scantable support
4mv encoding fixes (thats also why the regression tests change)
passing height to most dsp functions
interlaced mpeg4 encoding (no direct mode MBs yet)
various related cleanups
disabled old motion estimaton algorithms (log, full, ...) they will either be fixed or removed

Originally committed as revision 2638 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-12-30 16:07:57 +00:00
Fabrice Bellard
802f454e5b removed unused variable
Originally committed as revision 2162 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-08-24 22:28:41 +00:00
Falk Hüffner
3db320ea0c Warning fixes.
Originally committed as revision 1884 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-05-15 01:34:47 +00:00
Michael Niedermayer
7bc9090a41 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
more direct use of the new mb_type stuff instead of codec specific stuff
runtime mb_type debug output h264/h263 variants/mpeg1/2/4
error concealment /resilience for mpeg1/2
various minor optimizations

Originally committed as revision 1746 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-04-10 13:18:38 +00:00
Michael Niedermayer
309522372c some static -> dynamic alloc & 16->8 bit
Originally committed as revision 1722 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-03-31 11:13:14 +00:00
Michael Niedermayer
983e3246b7 per file doxy
Originally committed as revision 1634 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-03-06 11:32:04 +00:00
Michael Niedermayer
6772518310 finetuneing thresholds/factors
nicer mb decission
a few minor improvements & fixes

Originally committed as revision 1472 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-01-19 17:55:13 +00:00
Michael Niedermayer
1d0eab1dcc bugs
Originally committed as revision 1469 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-01-18 01:37:42 +00:00
Michael Niedermayer
826f429ae9 qpel in mmx2/3dnow
qpel refinement quality parameter

Originally committed as revision 1393 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-01-05 15:57:10 +00:00
Michael Niedermayer
f931ff7b9f pre motion estimation cleanup/bugfix
Originally committed as revision 1390 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-01-02 12:48:09 +00:00
Michael Niedermayer
b07a59805e shape adaptive diamonds for EPZS
user specified amount of MV predictors from the last frame
b frame MV predictor scaling fixed

Originally committed as revision 1384 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-01-01 14:36:20 +00:00
Michael Niedermayer
1457ab5233 qpel encoding
4mv+b frames encoding finally fixed
chroma ME
5 comparission functions for ME
b frame encoding speedup
wmv2 codec (unfinished)
user specified diamond size for EPZS

Originally committed as revision 1365 to svn://svn.ffmpeg.org/ffmpeg/trunk
2002-12-27 23:51:46 +00:00