Michael Niedermayer
358b5b1a59
Get rid of mb2b8_xy and b8_stride, change arrays organized based on b8_stride to
...
ones based on mb_stride in h264.
about 20 cpu cycles faster overall per MB
Originally committed as revision 22065 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-25 23:44:42 +00:00
Måns Rullgård
19769ece3b
H264: use alias-safe macros
...
This eliminates all aliasing violation warnings in h264 code.
No measurable speed difference with gcc-4.4.3 on i7.
Originally committed as revision 21881 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-18 16:24:31 +00:00
Michael Niedermayer
24006f59cb
10l ;; gcc 2.95 compilation fix by mike
...
Originally committed as revision 21830 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-15 09:11:00 +00:00
Michael Niedermayer
cbfcde9f52
10l use pack16to32(), should fix big endian h264 failures.
...
Originally committed as revision 21829 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-15 01:24:50 +00:00
Michael Niedermayer
6e7c397b5c
Cosmetics, vertical align.
...
Originally committed as revision 21817 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-14 01:14:05 +00:00
Michael Niedermayer
5ca43c25f6
Move setting MB_TYPE_L0L1 for direct MBs up, this is simpler.
...
Originally committed as revision 21794 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 15:57:49 +00:00
Michael Niedermayer
5134ad53ed
Simplify if()
...
Originally committed as revision 21791 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 13:28:04 +00:00
Michael Niedermayer
752cc0dcb2
Init sub_mb_type cleanly.
...
Originally committed as revision 21790 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 13:14:07 +00:00
Michael Niedermayer
923bcb4048
100l Forgoten hunk.unbreak compile before someone notices.
...
Originally committed as revision 21789 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 13:04:11 +00:00
Michael Niedermayer
af0d6581e1
Restructure spatial direct MV generation so that the zero predictior shortcut
...
is closer at the top.
50-130 cpu cycles faster depending on which kind of direct MBs are meassured.
Originally committed as revision 21788 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 13:02:25 +00:00
Michael Niedermayer
edb4df436f
Split spatial and temporal direct MV generation.
...
A little faster and needed for future optimizations.
This sadly leads to some code duplication (which i hope i can factor out
again after the optimizations on the direcr mv code are done)
Originally committed as revision 21787 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 03:46:51 +00:00
Michael Niedermayer
812bfd7b44
Special case for spatial direct MV predictor being 0.
...
a little less than 200 cpu cycles faster with the cathedral sample.
Originally committed as revision 21785 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 02:47:41 +00:00
Michael Niedermayer
828cfff63d
Pack MVs together from the begin for spatial direct, this simplifies the code
...
and is a bit faster (5-10 cpu cycles depending on what is meassured).
Originally committed as revision 21784 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-13 02:20:56 +00:00
Michael Niedermayer
daaf6e3e9e
Reorder and factorize mb_type ifs, 1 cpu cycle faster and simpler.
...
Originally committed as revision 21694 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-09 00:19:03 +00:00
Michael Niedermayer
1be49ce54b
Set partitioning to 16x16 for spatial direct MBs with mixed interlacing.
...
11cylcles slower MV generation
98cycles faster MC
Originally committed as revision 21691 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-08 17:25:50 +00:00
Michael Niedermayer
3babc711d8
Detect spatial direct MBs partitioned smaller than 16x16 that can be partitioned
...
as 16x16 (except ones changing interlacing relative to the colocated MB).
20 cycles slower during MV generation
175 cycles faster during MC
Originally committed as revision 21690 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-08 16:23:05 +00:00
Michael Niedermayer
8b9eb2dfec
Detect equal 4x4 blocks in spatial direct MBs.
...
19 cycles slower MV generation
575 cycles faster MC
Originally committed as revision 21689 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-08 13:05:24 +00:00
Michael Niedermayer
542d4a756a
Branchless calculation of ref_offset.
...
7 cpu cycles faster.
Originally committed as revision 21685 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-08 03:22:17 +00:00
Michael Niedermayer
fb70c63f70
Remove incorrect fixme, i see no case that is missing.
...
Originally committed as revision 21684 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-08 02:10:59 +00:00
Michael Niedermayer
35c8b9c094
Replace call to pred_motion() in direct spatial mv pred by code
...
and simplify cases that cannot happen away.
8 cpu cycles faster
Originally committed as revision 21683 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-08 02:09:27 +00:00
Michael Niedermayer
055a6aa76a
Set x264_build so that checks are simpler.
...
Originally committed as revision 21681 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-08 00:08:05 +00:00
Michael Niedermayer
3b9e61e45f
Zero a/b only in the branch where they need to be zeroed.
...
Originally committed as revision 21679 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-07 22:58:03 +00:00
Michael Niedermayer
f28a2656c3
Merge mv&ref related code for spatial direct MV code.
...
a bit more than 10 cpu cycles faster.
Originally committed as revision 21678 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-07 21:53:55 +00:00
Michael Niedermayer
0a8dca8765
Precalculate a few variables for direct mv prediction for interlaced MBs.
...
Originally committed as revision 21677 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-07 21:09:09 +00:00
Michael Niedermayer
464baa6650
Set direct MB partitioning for 16x8 and 8x16 colocated MBs to the respective true partitioning.
...
Originally committed as revision 21675 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-07 17:40:22 +00:00
Michael Niedermayer
e8d964fa52
Factorize setting sub_mb_type out.
...
Originally committed as revision 21674 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-07 17:15:17 +00:00
Michael Niedermayer
668fd14287
Remove FIXMEs for cases that are disallowed by the spec.
...
Originally committed as revision 21669 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-07 15:13:56 +00:00
Michael Niedermayer
33a6c0c9fe
Skip the fill_colmap() case thats for MBAFF if we dont have an MBAFF frame.
...
Originally committed as revision 21667 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-07 14:55:59 +00:00
Michael Niedermayer
488dba7000
Fix colocated map.
...
Originally committed as revision 21664 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-07 01:18:00 +00:00
Michael Niedermayer
d88ea35463
Fix reference selection for colocated MBs from frames to fields.
...
Originally committed as revision 21663 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-07 01:17:13 +00:00
Michael Niedermayer
5aa1d7598f
Add assert(sps.direct_8x8_inference_flag) to FIXME comment.
...
Originally committed as revision 21662 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-07 01:14:58 +00:00
Michael Niedermayer
50f8e98507
ref_offset must be added after checking references validity.
...
Originally committed as revision 21661 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-07 01:13:56 +00:00
Michael Niedermayer
8dcbf4c7aa
Long term references behave different from short term in spatial direct MV calculation.
...
Fixes FRExt_MMCO4_Sony_B / issue1251
Originally committed as revision 21651 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-06 02:55:58 +00:00
Michael Niedermayer
2b3649f656
Fix compilation with -O0.
...
Originally committed as revision 21308 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 23:41:12 +00:00
Michael Niedermayer
188d3c510d
Split motion vector prediction off h264.c/h.
...
Originally committed as revision 21174 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 21:36:26 +00:00
Michael Niedermayer
943f69a6ea
Split direct mode (macro)block decoding off h264.c.
...
No speedloss meassured (its slightly faster here but that may be random fluctuations)
Originally committed as revision 21165 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 14:32:58 +00:00