Jason Garrett-Glaser
2a1f431d38
H.264/SVQ3: make chroma DC work the same way as luma DC
...
No speed improvement, but necessary for some future stuff.
Also opens up the possibility of asm chroma dc idct/dequant.
Originally committed as revision 26349 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-15 01:10:46 +00:00
Jason Garrett-Glaser
5657d14094
H.264: switch to x264-style tracking of luma/chroma DC NNZ
...
Useful so that we don't have to run the hierarchical DC iDCT if there aren't
any coefficients. Opens up some future opportunities for optimization as well.
Originally committed as revision 26337 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 21:36:16 +00:00
Jason Garrett-Glaser
19fb234e4a
H.264: split luma dc idct out and implement MMX/SSE2 versions
...
About 2.5x the speed.
NOTE: the way that the asm code handles large qmuls is a bit suboptimal.
If x264-style dequant was used (separate shift and qmul values), it might
be possible to get some extra speed.
Originally committed as revision 26336 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 21:34:25 +00:00
Eli Friedman
9049fa5479
Add av_unused to decode_mb_skip declaration to fix the following warning:
...
libavcodec/h264.h:1260: warning: ‘decode_mb_skip’ defined but not used
patch by Eli Friedman, eli.friedman gmail com
Originally committed as revision 24069 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-06 07:40:35 +00:00
Michael Niedermayer
733f5990d0
Factorize ff_generate_sliding_window_mmcos() out.
...
Originally committed as revision 24056 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-05 12:42:19 +00:00
Måns Rullgård
49bd8e4b84
Fix grammar errors in documentation
...
Originally committed as revision 23904 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-06-30 15:38:06 +00:00
Howard Chu
82f1ffc7ba
Cleanup prev commit, flag variable should start with 0
...
Originally committed as revision 23364 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-28 20:14:14 +00:00
Howard Chu
23584bec87
Parse avctx->extradata if available.
...
Fixes many "non-existing PPS referenced" error messages
Originally committed as revision 23363 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-28 18:50:39 +00:00
Howard Chu
05e953193d
Factorize ff_h264_decode_extradata().
...
Patch by Howard Chu, hyc highlandsun com
Originally committed as revision 23340 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-26 19:00:59 +00:00
Diego Biurrun
ba87f0801d
Remove explicit filename from Doxygen @file commands.
...
Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.
Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-20 14:45:34 +00:00
Diego Biurrun
d02bb3ecf1
Move static function fill_filter_caches() from h264.h to h264.c.
...
The function is only used within that file, so it makes sense to place
it there. This fixes many warnings of the type:
h264.h:1170: warning: ‘fill_filter_caches’ defined but not used
Originally committed as revision 22876 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-13 22:15:49 +00:00
Michael Niedermayer
1052b76f0f
Fix implicit weight for b frames in mbaff.
...
Originally committed as revision 22733 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 21:05:11 +00:00
Benoit Fouet
32e543f866
Replace @returns by @return.
...
Originally committed as revision 22729 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-30 15:50:57 +00:00
Måns Rullgård
4693b031a3
Move H264 dsputil functions into their own struct
...
This moves the H264-specific functions from DSPContext to the new
H264DSPContext. The code is made conditional on CONFIG_H264DSP
which is set by the codecs requiring it.
The qpel and chroma MC functions are not moved as these are used by
non-h264 code.
Originally committed as revision 22565 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-16 01:17:00 +00:00
Måns Rullgård
404793f4ac
H264: fix signed overflow in constant multiplication
...
This fixes libavcodec/h264.h:1100: warning: integer overflow in expression
Originally committed as revision 22558 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-15 23:00:53 +00:00
Måns Rullgård
84dc2d8afa
Remove DECLARE_ALIGNED_{8,16} macros
...
These macros are redundant. All uses are replaced with the generic
DECLARE_ALIGNED macro instead.
Originally committed as revision 22233 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-06 14:24:59 +00:00
Michael Niedermayer
38768cb70a
Port Optimizations about *_type init from decode to filter code.
...
1 cpu cycle faster
Originally committed as revision 22193 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-04 02:00:05 +00:00
Michael Niedermayer
b46b5ac9f8
Optimize *_type init, 1.5 cpu cycles faster.
...
Originally committed as revision 22192 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-04 01:03:15 +00:00
Michael Niedermayer
3d9137c883
Reorder indexes in weight tables.
...
5 cpu cycles faster.
Originally committed as revision 22183 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 21:10:08 +00:00
Michael Niedermayer
bd8868e092
Move all context fields that are not used in the mb and block layers
...
to the end of the structure.
4 cpu cycles faster in 3k cpu cycles
Originally committed as revision 22181 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 20:36:56 +00:00
Michael Niedermayer
65f3c029b9
remove unused left_border field from context.
...
Originally committed as revision 22179 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 19:44:27 +00:00
Michael Niedermayer
af2b0df40f
Note about luma/chroma_weight tables and their datatype.
...
Originally committed as revision 22177 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 19:31:58 +00:00
Michael Niedermayer
d7f5e520bf
move svq3 specific fields to the end of the context
...
Originally committed as revision 22171 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 16:47:40 +00:00
Michael Niedermayer
70118abd68
Merge weight & offset tables, 15 cpu cycles faster.
...
Originally committed as revision 22169 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 14:41:43 +00:00
Michael Niedermayer
f57880d244
Another 3 useless zeroing instructions.
...
Originally committed as revision 22162 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 02:20:48 +00:00
Michael Niedermayer
16b802fe93
Load the whole left side of mv&ref only when needed.
...
30 cpu cycles faster
Originally committed as revision 22161 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-03 01:38:27 +00:00
Michael Niedermayer
ce9c691616
Merge h->slice_table[left_xy[0/1] ] checks, 4 cpu cycles speedup
...
Originally committed as revision 22086 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-27 04:09:48 +00:00
Michael Niedermayer
82fb5bb2ee
Split *_type setting up, 4 cpu cycles faster.
...
Originally committed as revision 22085 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-27 03:46:16 +00:00
Michael Niedermayer
cf41a02b1b
Only load the topleft mv/ref when the topright is unavailable.
...
8 cpu cycles faster.
Originally committed as revision 22079 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-26 15:26:11 +00:00
Michael Niedermayer
cf7b67bc40
Remove some useless operations from the code setting left_cbp.
...
maybe 0.5 cpu cycles faster
Originally committed as revision 22078 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-26 15:03:00 +00:00
Michael Niedermayer
59b5370f02
Simplify code to set cbp_*
...
this seems 1 cpu cycle slower even though we practically just remove code.
Speed loss seems caused by the merge of if(left_type), iam commiting this
anyway as i cant imagine this to be anything but compiler messup.
Originally committed as revision 22073 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-26 09:13:40 +00:00
Michael Niedermayer
747db4e31a
Move init of right side of ref_cache from fill_caches() to init_the_darn_decoder().
...
Originally committed as revision 22071 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-26 03:27:52 +00:00
Michael Niedermayer
77c6edb846
Remove 3 mv_cache zeroing instructions that zeroed the right side.
...
This seems unneeded as nothing seems to ever set it to non zero values.
Originally committed as revision 22070 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-26 02:54:03 +00:00
Michael Niedermayer
8f8497ae78
Remove useless check of the 2 left MBs of a pair being in the same slice.
...
Originally committed as revision 22069 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-26 01:38:12 +00:00
Michael Niedermayer
6e2fe0f20a
Remove unneeded line of code from the neighbor setting code in h264.
...
Originally committed as revision 22067 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-26 00:10:35 +00:00
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
Michael Niedermayer
5e350863cc
Store data in direct_table interleaved.
...
seems 20cpu cycles faster
Originally committed as revision 22055 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-25 15:27:55 +00:00
Michael Niedermayer
013202d720
Simplify intra4x4_pred_mode_cache init.
...
Originally committed as revision 22054 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-25 14:54:31 +00:00
Michael Niedermayer
662a5b2370
Reorder intra4x4_pred_mode so that we can read/write 4 values at once.
...
3-7 cpu cycles faster
Originally committed as revision 22053 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-25 14:26:12 +00:00
Michael Niedermayer
5b0fb5244d
Store intra4x4_pred_mode per row only.
...
about 5 cpu cycles slower in the local code but should be overall faster
due to reduced cache use. (my sample though has too few intra4x4 blocks
for this to be meassureable easily either way)
Originally committed as revision 22052 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-25 14:02:39 +00:00
Michael Niedermayer
c2186cbddc
unroll tiny and trivial loop. Same speed but clearer.
...
Originally committed as revision 22051 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-25 12:51:32 +00:00
Michael Niedermayer
e1c88a2138
Cut the size of mvd_table by yet another factor of 2.
...
The code read/write code itself was 1 cycle faster, overall its
likely more due to cache effects
Originally committed as revision 22048 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-25 04:11:33 +00:00
Michael Niedermayer
d43c192236
Keep mvd_table values of only 2 mb rows.
...
Originally committed as revision 22047 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-25 02:42:25 +00:00
Michael Niedermayer
b5bd070029
Change mvd_cache & mvd_table to 8bit, this is overall a bit faster
...
for high resolution videos.
about 20cycles faster per MB for cathederal.
Originally committed as revision 22038 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-24 20:43:06 +00:00
Michael Niedermayer
9127a369ad
Replace /2 by faster >>1 as the mvd values are now all positive.
...
Originally committed as revision 22013 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-24 01:57:31 +00:00
Michael Niedermayer
5c34e36a23
Remove unused variable. Seems i forgot to commit this.
...
Originally committed as revision 22012 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-24 01:56:27 +00:00
Diego Biurrun
dd3475682e
Remove unused variable, fixes warnings of the type:
...
libavcodec/h264.h:816: warning: unused variable `mb_xy'
Originally committed as revision 21941 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-21 15:29:17 +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
69a28f3e2b
Move predict_field_decoding_flag() from h264.h to .c as its only used there and belongs
...
there as well.
Originally committed as revision 21861 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-17 02:25:05 +00:00
Michael Niedermayer
69cc31832f
Move check for and call of predict_field_decoding_flag() from the mb code to
...
the row code. This function would only be needed on a MB basis for MBAFF+FMO
Originally committed as revision 21860 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-17 02:14:02 +00:00