Commit Graph

100 Commits

Author SHA1 Message Date
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 7494cac0fd fix constrained parameters flag
Originally committed as revision 3609 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-10-18 23:07:18 +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
Michael Niedermayer dbc56b3914 chroma me fix
Originally committed as revision 3216 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-06-11 21:12:46 +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 d4c5d2adf3 nsse weight
Originally committed as revision 3205 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-06-07 17:30:02 +00:00
Michael Niedermayer e6a2ac3474 noise preserving sum of squares comparission function
Originally committed as revision 3204 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-06-07 03:23:31 +00:00
Michael Niedermayer 0e9d4a67f4 change qscale -> lambda for the motion estimation
finetune bit/distortion weighting factor used in motion estimation, the old coeffs where finetuned relative to incorrect mv_penalty tables which where then fixed later but the coeffs where not
this _may_ fix the long standing blocking artifacts, but may also introduce mudding artefacts theoretically, so please tell us if u stumble across any so we can either fix them or export this variable so the user can change it

Originally committed as revision 3189 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-06-03 19:29:47 +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 1545aceaaf dont missuse assert()
Originally committed as revision 3096 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-04-30 18:09:24 +00:00
Michael Niedermayer f20f8a8b0b support reusing mb types and field select values of the source file, but use motion vectors just as additional predictors
minor cleanup
segfault fix

Originally committed as revision 3060 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-04-25 02:09:47 +00:00
Michael Niedermayer aacc6615f8 sanity checks
Originally committed as revision 3052 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-04-24 03:43:43 +00:00
Michael Niedermayer 9964df63ee minor motion estimation cleanup
4mv motion vector passthrough

Originally committed as revision 3051 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-04-24 03:36:37 +00:00
Michael Niedermayer f4f3223ffd reuse motion vectors/mb types/field select values of the source video, if the SSE for a macroblock which is predicted with these values is below me_threshold
currently works only with mpeg1/2 source or some luck
may need -sync 0 as otherwise framedrops could lead to extreemly long b frame sequences

Originally committed as revision 3042 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-04-23 19:06:30 +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 137c8468e8 unify table indexing (motion_val,dc_val,ac_val,coded_block changed)
minor +-1 bugfix

Originally committed as revision 3016 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-04-16 01:01:45 +00:00
Falk Hüffner 7906085fcc warning patrol
Originally committed as revision 2925 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-03-24 23:32:48 +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 5a60360712 4mv + b frame encoding segfault fix
Originally committed as revision 2728 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-01-28 00:36:58 +00:00
Michael Niedermayer 237da0fa20 dont calculate stuff if its not used ...
Originally committed as revision 2699 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-01-14 02:35:04 +00:00
Michael Niedermayer a75b43fd73 fixing twice added offset bug, was triggered by 4mv + sub_cmp != mb_cmp
bug was introduced in version 1.75 (2003-12-30)
this may have lead to a small drop in quality of the 4mv mode, but should have only affected the mbd=0 case

Originally committed as revision 2698 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-01-14 02:21:39 +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 622348f931 interlaced dct decision cleanup
function moved to dspcontext
  mmx&mmx2 optimized
  change SSE -> SAD as default (better quality)
vbv buffer size command line option in kbyte

Originally committed as revision 2669 to svn://svn.ffmpeg.org/ffmpeg/trunk
2004-01-05 22:57:07 +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
Wolfgang Hesseler 8d7ec294c4 move motion_val & mb_type to AVFrame patch by (Wolfgang Hesseler <qv at multimediaware dot com>)
cleanups & fixes by me

Originally committed as revision 2579 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-12-09 01:49:56 +00:00
Michael Niedermayer d3985de709 cleanup
Originally committed as revision 2537 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-11-28 22:09:09 +00:00
Michael Niedermayer f7190f7399 h263 OBMC & 4MV support
cleanup

Originally committed as revision 2536 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-11-28 21:31:20 +00:00
Michel Bardiaux 9b87956678 av_log() patch by (Michel Bardiaux <mbardiaux at peaktime dot be>)
Originally committed as revision 2469 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-11-03 13:26:22 +00:00
Michael Niedermayer ca7d05d56f optionally try to encode each MB with MV=<0,0> and choose the one with better RD
Originally committed as revision 2328 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-10-02 00:24:34 +00:00
Michael Niedermayer 2d5e962b06 100l (forget to reset me.skip for b frames)
Originally committed as revision 2170 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-08-26 22:26:18 +00:00
Michael Niedermayer e4eadb4b44 oooooops, having 2 Eterms open and doing cvs diff in one and cvs commit in the other sucks, especially if they are in different directories (MPlayer/main/libavcodec vs. ffmpeg/libavcodec)
Originally committed as revision 2165 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-08-25 22:54:53 +00:00
Michael Niedermayer 029911d1c3 mpeg2 encoding
Originally committed as revision 2164 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-08-25 22:47:32 +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
Michael Niedermayer 7d1c3fc1d6 rate distortion mb decision support
fix decoding of old %16!=0 divx
fix assertion failure in motion_est.c

Originally committed as revision 2094 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-07-29 02:09:12 +00:00
Michael Niedermayer cf48e6f8dc edge fix
Originally committed as revision 2053 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-07-16 18:20:46 +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 ebbcdc9ac0 user specified motion estimation range limit
h263 me range fixed (was smaller then needed)

Originally committed as revision 1610 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-02-27 22:56:07 +00:00
Zdenek Kabelac 0c1a9edad4 * UINTX -> uintx_t INTX -> intx_t
Originally committed as revision 1578 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-02-11 16:35:48 +00:00
Zdenek Kabelac 5c91a6755b * static,const,compiler warning cleanup
Originally committed as revision 1567 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-02-10 09:35:32 +00:00
Michael Niedermayer c40c34828a direct blocksize in bframes fix (might fix qpel+bframe bug)
Originally committed as revision 1557 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-02-08 18:23:39 +00:00
Michael Niedermayer 63b15e559a mpeg1 bframe encoding patch by (Raphaël LEGRAND) with some modifications by me
Originally committed as revision 1551 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-02-08 12:00:57 +00:00
Michael Niedermayer 668154dfea b frame segfault fix (+-1 bug)
Originally committed as revision 1549 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-02-07 16:44:48 +00:00
Michael Niedermayer cb009a8cff 10l / 4mv segfault fix
Originally committed as revision 1517 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-01-28 09:26:00 +00:00
Måns Rullgård ef9f730675 C99 initializers and kill warnings patch by (mru at users dot sourceforge dot net (Måns Rullgård))
Originally committed as revision 1474 to svn://svn.ffmpeg.org/ffmpeg/trunk
2003-01-19 18:30:29 +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