Statistics
| Branch: | Revision:

ffmpeg / libavcodec / motion_est.c @ ee7388c9

History | View | Annotate | Download (74.5 KB)

# Date Author Comment
39a64e30 01/22/2006 08:54 PM Corey Hickey

sc_factor support for encoding.

Here's the description I'll add to the mplayer man page:
---
Causes frames with higher quantizers to be more likely to trigger a
scene change detection and make libavcodec use an I-frame (default: 1).
1-16 is a sane range....

5509bffa 01/12/2006 10:43 PM Diego Biurrun

Update licensing information: The FSF changed postal address.

Originally committed as revision 4842 to svn://svn.ffmpeg.org/ffmpeg/trunk

8bf755d4 01/09/2006 02:08 AM Loren Merritt

10l: bidir_refine didn't save the new mvs. also improve speed.

Originally committed as revision 4832 to svn://svn.ffmpeg.org/ffmpeg/trunk

aaaa6f15 12/25/2005 04:34 PM Michael Niedermayer

dont discard least significant bits

Originally committed as revision 4773 to svn://svn.ffmpeg.org/ffmpeg/trunk

aacb6acc 12/24/2005 11:47 PM Michael Niedermayer

hmm did i mess the scaling of these up at some point?
anyway, this change decreases bitrate and increase PSNR by ~1.00 on my test file, other files also benefit significantly

Originally committed as revision 4771 to svn://svn.ffmpeg.org/ffmpeg/trunk

d4f0c2fc 12/23/2005 07:05 PM Michael Niedermayer

10l (segfault fix)

Originally committed as revision 4769 to svn://svn.ffmpeg.org/ffmpeg/trunk

316a2ec8 12/23/2005 04:25 PM Michael Niedermayer

bidir refine support

Originally committed as revision 4768 to svn://svn.ffmpeg.org/ffmpeg/trunk

377798d6 12/23/2005 12:40 AM Michael Niedermayer

minor typo

Originally committed as revision 4767 to svn://svn.ffmpeg.org/ffmpeg/trunk

bb270c08 12/22/2005 01:10 AM Diego Biurrun

COSMETICS: tabs --> spaces, some prettyprinting

Originally committed as revision 4764 to svn://svn.ffmpeg.org/ffmpeg/trunk

115329f1 12/17/2005 06:14 PM Diego Biurrun

COSMETICS: Remove all trailing whitespace.

Originally committed as revision 4749 to svn://svn.ffmpeg.org/ffmpeg/trunk

95ae72b7 08/26/2005 07:05 PM Michael Niedermayer

Compilation fixes part 1 patch by (Arvind R. and Burkhard Plaum, plaum, ipf uni-stuttgart de)

Originally committed as revision 4540 to svn://svn.ffmpeg.org/ffmpeg/trunk

bf4e3bd2 08/14/2005 03:42 PM Måns Rullgård

kill a bunch of compiler warnings

Originally committed as revision 4522 to svn://svn.ffmpeg.org/ffmpeg/trunk

0cc64d3d 08/01/2005 08:01 PM Michael Niedermayer

fix assertion failure for mpeg2 encoding

Originally committed as revision 4488 to svn://svn.ffmpeg.org/ffmpeg/trunk

2f300f89 07/27/2005 01:16 PM Michael Niedermayer

motion vector limit for mpeg2

Originally committed as revision 4482 to svn://svn.ffmpeg.org/ffmpeg/trunk

bb628dae 06/17/2005 03:02 PM Diego Biurrun

spelling fixes
patch by Peter Robinson pbrobinson at gmail . dot . com and myself

Originally committed as revision 4382 to svn://svn.ffmpeg.org/ffmpeg/trunk

725de25c 05/05/2005 01:40 PM Michael Niedermayer

fix segfault with 'ffmpeg -i 1.avi -cmp 257 -4mv 2.avi'

Originally committed as revision 4178 to svn://svn.ffmpeg.org/ffmpeg/trunk

160d679c 04/24/2005 05:21 PM Mike Melanson

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

cec1f05f 03/26/2005 06:10 PM Michael Niedermayer

check mb/me_threshold range, fixes assertion failure

Originally committed as revision 4082 to svn://svn.ffmpeg.org/ffmpeg/trunk

88730be6 02/24/2005 07:08 PM Måns Rullgård

kill warnings patch by (Måns Rullgård <mru inprovide com>)

Originally committed as revision 3977 to svn://svn.ffmpeg.org/ffmpeg/trunk

096c3b7e 11/16/2004 01:40 PM Michael Niedermayer

overflow fix

Originally committed as revision 3685 to svn://svn.ffmpeg.org/ffmpeg/trunk

1c3990db 10/28/2004 10:12 AM Michael Niedermayer

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

7494cac0 10/18/2004 11:07 PM Michael Niedermayer

fix constrained parameters flag

Originally committed as revision 3609 to svn://svn.ffmpeg.org/ffmpeg/trunk

155ec6ed 08/26/2004 08:04 PM Michael Niedermayer

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)...

26efc54e 08/22/2004 05:16 PM Michael Niedermayer

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

dbc56b39 06/11/2004 09:12 PM Michael Niedermayer

chroma me fix

Originally committed as revision 3216 to svn://svn.ffmpeg.org/ffmpeg/trunk

ae1dbde1 06/10/2004 10:56 PM Michael Niedermayer

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...

d4c5d2ad 06/07/2004 05:30 PM Michael Niedermayer

nsse weight

Originally committed as revision 3205 to svn://svn.ffmpeg.org/ffmpeg/trunk

e6a2ac34 06/07/2004 03:23 AM Michael Niedermayer

noise preserving sum of squares comparission function

Originally committed as revision 3204 to svn://svn.ffmpeg.org/ffmpeg/trunk

0e9d4a67 06/03/2004 07:29 PM Michael Niedermayer

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...

1f202b0d 05/11/2004 01:38 AM Michael Niedermayer

moving motion estimation specific variables from MpegEncContext -> MotionEstContext

Originally committed as revision 3124 to svn://svn.ffmpeg.org/ffmpeg/trunk

af4091f1 05/11/2004 12:58 AM Michael Niedermayer

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

1545acea 04/30/2004 06:09 PM Michael Niedermayer

dont missuse assert()

Originally committed as revision 3096 to svn://svn.ffmpeg.org/ffmpeg/trunk

f20f8a8b 04/25/2004 02:09 AM Michael Niedermayer

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

aacc6615 04/24/2004 03:43 AM Michael Niedermayer

sanity checks

Originally committed as revision 3052 to svn://svn.ffmpeg.org/ffmpeg/trunk

9964df63 04/24/2004 03:36 AM Michael Niedermayer

minor motion estimation cleanup
4mv motion vector passthrough

Originally committed as revision 3051 to svn://svn.ffmpeg.org/ffmpeg/trunk

f4f3223f 04/23/2004 07:06 PM Michael Niedermayer

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...

2750b827 04/22/2004 03:31 AM Michael Niedermayer

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

137c8468 04/16/2004 01:01 AM Michael Niedermayer

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

7906085f 03/24/2004 11:32 PM Falk Hüffner

warning patrol

Originally committed as revision 2925 to svn://svn.ffmpeg.org/ffmpeg/trunk

9c3d33d6 02/13/2004 05:54 PM Michael Niedermayer

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...

5a603607 01/28/2004 12:36 AM Michael Niedermayer

4mv + b frame encoding segfault fix

Originally committed as revision 2728 to svn://svn.ffmpeg.org/ffmpeg/trunk

237da0fa 01/14/2004 02:35 AM Michael Niedermayer

dont calculate stuff if its not used ...

Originally committed as revision 2699 to svn://svn.ffmpeg.org/ffmpeg/trunk

a75b43fd 01/14/2004 02:21 AM Michael Niedermayer

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

8f2ab833 01/10/2004 04:04 PM Michael Niedermayer

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

622348f9 01/05/2004 10:57 PM Michael Niedermayer

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

bb198e19 12/30/2003 04:07 PM Michael Niedermayer

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)...

8d7ec294 12/09/2003 01:49 AM Wolfgang Hesseler

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

d3985de7 11/28/2003 10:09 PM Michael Niedermayer

cleanup

Originally committed as revision 2537 to svn://svn.ffmpeg.org/ffmpeg/trunk

f7190f73 11/28/2003 09:31 PM Michael Niedermayer

h263 OBMC & 4MV support
cleanup

Originally committed as revision 2536 to svn://svn.ffmpeg.org/ffmpeg/trunk

9b879566 11/03/2003 01:26 PM Michel Bardiaux

av_log() patch by (Michel Bardiaux <mbardiaux at peaktime dot be>)

Originally committed as revision 2469 to svn://svn.ffmpeg.org/ffmpeg/trunk

ca7d05d5 10/02/2003 12:24 AM Michael Niedermayer

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

2d5e962b 08/26/2003 10:26 PM Michael Niedermayer

100l (forget to reset me.skip for b frames)

Originally committed as revision 2170 to svn://svn.ffmpeg.org/ffmpeg/trunk

e4eadb4b 08/25/2003 10:54 PM Michael Niedermayer

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

029911d1 08/25/2003 10:47 PM Michael Niedermayer

mpeg2 encoding

Originally committed as revision 2164 to svn://svn.ffmpeg.org/ffmpeg/trunk

802f454e 08/24/2003 10:28 PM Fabrice Bellard

removed unused variable

Originally committed as revision 2162 to svn://svn.ffmpeg.org/ffmpeg/trunk

7d1c3fc1 07/29/2003 02:09 AM Michael Niedermayer

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

cf48e6f8 07/16/2003 06:20 PM Michael Niedermayer

edge fix

Originally committed as revision 2053 to svn://svn.ffmpeg.org/ffmpeg/trunk

7bc9090a 04/10/2003 01:18 PM Michael Niedermayer

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...

30952237 03/31/2003 11:13 AM Michael Niedermayer

some static > dynamic alloc & 16>8 bit

Originally committed as revision 1722 to svn://svn.ffmpeg.org/ffmpeg/trunk

983e3246 03/06/2003 11:32 AM Michael Niedermayer

per file doxy

Originally committed as revision 1634 to svn://svn.ffmpeg.org/ffmpeg/trunk

ebbcdc9a 02/27/2003 10:56 PM Michael Niedermayer

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

0c1a9eda 02/11/2003 04:35 PM Zdenek Kabelac
  • UINTX -> uintx_t INTX -> intx_t

Originally committed as revision 1578 to svn://svn.ffmpeg.org/ffmpeg/trunk

5c91a675 02/10/2003 09:35 AM Zdenek Kabelac
  • static,const,compiler warning cleanup

Originally committed as revision 1567 to svn://svn.ffmpeg.org/ffmpeg/trunk

c40c3482 02/08/2003 06:23 PM Michael Niedermayer

direct blocksize in bframes fix (might fix qpel+bframe bug)

Originally committed as revision 1557 to svn://svn.ffmpeg.org/ffmpeg/trunk

63b15e55 02/08/2003 12:00 PM Michael Niedermayer

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

668154df 02/07/2003 04:44 PM Michael Niedermayer

b frame segfault fix (+-1 bug)

Originally committed as revision 1549 to svn://svn.ffmpeg.org/ffmpeg/trunk

cb009a8c 01/28/2003 09:26 AM Michael Niedermayer

10l / 4mv segfault fix

Originally committed as revision 1517 to svn://svn.ffmpeg.org/ffmpeg/trunk

ef9f7306 01/19/2003 06:30 PM Måns Rullgård

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

67725183 01/19/2003 05:55 PM Michael Niedermayer

finetuneing thresholds/factors
nicer mb decission
a few minor improvements & fixes

Originally committed as revision 1472 to svn://svn.ffmpeg.org/ffmpeg/trunk

1d0eab1d 01/18/2003 01:37 AM Michael Niedermayer

bugs

Originally committed as revision 1469 to svn://svn.ffmpeg.org/ffmpeg/trunk

3a87ac94 01/15/2003 06:05 PM Michael Niedermayer

more compare functions (rd & bit)

Originally committed as revision 1461 to svn://svn.ffmpeg.org/ffmpeg/trunk

4a711c33 01/06/2003 01:20 AM Michael Niedermayer

b frame segfault fix

Originally committed as revision 1400 to svn://svn.ffmpeg.org/ffmpeg/trunk

826f429a 01/05/2003 03:57 PM Michael Niedermayer

qpel in mmx2/3dnow
qpel refinement quality parameter

Originally committed as revision 1393 to svn://svn.ffmpeg.org/ffmpeg/trunk

f931ff7b 01/02/2003 12:48 PM Michael Niedermayer

pre motion estimation cleanup/bugfix

Originally committed as revision 1390 to svn://svn.ffmpeg.org/ffmpeg/trunk

f5fb6b34 01/02/2003 01:29 AM Michael Niedermayer

motion estimation pre pass

Originally committed as revision 1389 to svn://svn.ffmpeg.org/ffmpeg/trunk

0a13093d 01/01/2003 04:47 PM Michael Niedermayer

bugfix

Originally committed as revision 1388 to svn://svn.ffmpeg.org/ffmpeg/trunk

b07a5980 01/01/2003 02:36 PM Michael Niedermayer

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

1457ab52 12/27/2002 11:51 PM Michael Niedermayer

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

03201146 12/05/2002 10:22 PM Michael Niedermayer

better? scene change detection

Originally committed as revision 1314 to svn://svn.ffmpeg.org/ffmpeg/trunk

1e491e29 12/04/2002 10:04 AM Michael Niedermayer

cleanup
adding AVVideoFrame
moving quality, pict_type, key_frame, qscale_table, ... to AVVideoFrame
removing obsolete variables in AVCodecContext
skiping of MBs in b frames
correctly initalizing AVCodecContext
picture buffer cleanup

Originally committed as revision 1302 to svn://svn.ffmpeg.org/ffmpeg/trunk

9c76bd48 11/22/2002 07:53 AM Brian Foley
  • altivec and pix_norm patch by Brian Foley

Originally committed as revision 1269 to svn://svn.ffmpeg.org/ffmpeg/trunk

d6483a8e 11/14/2002 06:02 PM Michael Niedermayer

1l found by kabi

Originally committed as revision 1207 to svn://svn.ffmpeg.org/ffmpeg/trunk

eb4b3dd3 11/11/2002 09:40 AM Zdenek Kabelac
  • using DSPContext - so each codec could use its local (sub)set of CPU extension

Originally committed as revision 1194 to svn://svn.ffmpeg.org/ffmpeg/trunk

b8a78f41 11/10/2002 11:46 AM Michael Niedermayer

reversing header game
MIN/MAX -> FFMIN/FFMAX

Originally committed as revision 1184 to svn://svn.ffmpeg.org/ffmpeg/trunk

af27aea9 10/31/2002 12:48 AM Michael Niedermayer

fixing another assert q>0.0 issue caused by variance < 0, this fix allso changes the inter/intra decission very slightly -> all regression checksums need to be updated

Originally committed as revision 1122 to svn://svn.ffmpeg.org/ffmpeg/trunk

0bfacb95 10/30/2002 10:55 PM Michael Niedermayer

fixing q>0.0 assert failure caused by overflow of variance for b frames

Originally committed as revision 1120 to svn://svn.ffmpeg.org/ffmpeg/trunk

c42612f1 10/24/2002 12:51 AM Michael Niedermayer

clip MVs for direct mode

Originally committed as revision 1068 to svn://svn.ffmpeg.org/ffmpeg/trunk

693b0e1d 09/23/2002 03:16 PM Michael Niedermayer

fixing variance scaling for b frames (messed adaptive quants up)
cliping too long MVs in b frames instead of setting them to 0

Originally committed as revision 965 to svn://svn.ffmpeg.org/ffmpeg/trunk

c5d309f2 09/23/2002 02:56 PM Michael Niedermayer

adaptive quantization (lumi/temporal & spatial complexity masking)

Originally committed as revision 964 to svn://svn.ffmpeg.org/ffmpeg/trunk

bea669e5 09/13/2002 09:45 AM Michael Niedermayer

interlaced mpeg4 b frame decoding

Originally committed as revision 936 to svn://svn.ffmpeg.org/ffmpeg/trunk

b3184779 09/11/2002 12:39 PM Michael Niedermayer

put/avg_pixels16
fixing 2 small qpel bugs

Originally committed as revision 915 to svn://svn.ffmpeg.org/ffmpeg/trunk

07787186 08/28/2002 08:15 AM Dominik Mierzejewski

warning patch by (Dominik Mierzejewski <dominik at rangers dot eu dot org>)

Originally committed as revision 872 to svn://svn.ffmpeg.org/ffmpeg/trunk

3aa102be 08/25/2002 09:19 PM Michael Niedermayer

new ratecontrol code

Originally committed as revision 862 to svn://svn.ffmpeg.org/ffmpeg/trunk

1fb4890b 08/22/2002 07:41 PM Michael Niedermayer

better scene change detection

Originally committed as revision 858 to svn://svn.ffmpeg.org/ffmpeg/trunk

5efa2650 07/31/2002 08:01 AM Michael Niedermayer

b frame direct mode bugfix (bug found by CM <chenm001 at 163 dot com>)

Originally committed as revision 832 to svn://svn.ffmpeg.org/ffmpeg/trunk

f10bd870 06/24/2002 03:02 PM Michael Niedermayer

4mv bugfix

Originally committed as revision 702 to svn://svn.ffmpeg.org/ffmpeg/trunk

0d21a846 06/02/2002 12:18 PM Michael Niedermayer

dont double check vectors
more correct EPZS implementation
much faster halfpel ME
simplifications / reducing duplicate code
4MV in LQ mode

Originally committed as revision 641 to svn://svn.ffmpeg.org/ffmpeg/trunk

ff4ec49e 05/25/2002 10:45 PM Fabrice Bellard

license/copyright change

Originally committed as revision 599 to svn://svn.ffmpeg.org/ffmpeg/trunk

9cd3766f 05/11/2002 11:42 PM Juanjo

- pict_type exported to AVCodecContext
- Added real_pict_num to AVCodecContext, it represent the number of the
previous encoded frame, usefull when coding with B frames.
- Warning fix in motion_est.c

Originally committed as revision 484 to svn://svn.ffmpeg.org/ffmpeg/trunk

91029be7 04/19/2002 03:25 AM Michael Niedermayer

much better ME for b frames (a bit slow though)
fixed MC rounding for b frames
fixed hq mode with b-frames

Originally committed as revision 406 to svn://svn.ffmpeg.org/ffmpeg/trunk