Commit Graph

93 Commits

Author SHA1 Message Date
Michael Niedermayer b2b7ab32aa Prefer cbp over cbp_table.
Originally committed as revision 21418 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-24 13:43:26 +00:00
Michael Niedermayer 2c0ee01866 Remove unneeded reset of non_zero_count_cache for deblock.
Originally committed as revision 21414 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-23 22:11:46 +00:00
Michael Niedermayer 01c511683f Remove useless things from the deblock side of fill_caches().
Originally committed as revision 21413 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-23 21:57:36 +00:00
Michael Niedermayer ea3b456dd6 make mv_cache init 64bit where possible.
Originally committed as revision 21412 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-23 21:45:12 +00:00
Måns Rullgård c67278098d Move array specifiers outside DECLARE_ALIGNED() invocations
Originally committed as revision 21377 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-22 03:25:11 +00:00
Michael Niedermayer c2894fbf1c Dont waste time initializing stuff for deblocking intra mbs, none of
it is used.

Originally committed as revision 21315 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-19 03:14:45 +00:00
Michael Niedermayer 7a93858a6d Fix accumulated indention errors.
Originally committed as revision 21307 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 23:34:37 +00:00
Michael Niedermayer 70bd7a3d48 Optimize top non_zero_count_cache init.
Originally committed as revision 21306 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 23:31:14 +00:00
Michael Niedermayer 5e07aa7721 Dont init chroma elements of non_zero_count_cache for deblock.
Originally committed as revision 21305 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 23:30:21 +00:00
Michael Niedermayer 5cc5d9bf29 Remove unneeded for_deblock check, this code was alraedy under for_deblock.
Originally committed as revision 21304 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 23:27:53 +00:00
Michael Niedermayer a7d7cdaac7 Set h->cbp for ff_h264_filter_mb_fast().
Originally committed as revision 21287 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 16:11:13 +00:00
Michael Niedermayer b6ef858ec7 Move CAVLC 8x8 DCT special case from ff_h264_filter_mb() to fill_caches
that way it is also available for ff_h264_filter_mb_fast().

Originally committed as revision 21283 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 13:09:53 +00:00
Michael Niedermayer 6d7e6b2657 Perform reference remapping at fill_cache() time instead of in the
loop filter. This removes one obstacle of getting ff_h264_filter_mb_fast()
bitexact. code is maybe 0.1% faster

Originally committed as revision 21280 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 05:15:31 +00:00
Michael Niedermayer 7da0d82104 Make qp check for loop filter skiping also work with MBAFF.
Originally committed as revision 21276 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 00:34:28 +00:00
Michael Niedermayer 12be38ec18 Comment about a cornercase we ignore currently
Originally committed as revision 21275 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 00:21:58 +00:00
Michael Niedermayer 44a5e7b64c Move the qp check to skip the loop filter up.
Originally committed as revision 21274 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-18 00:20:44 +00:00
Michael Niedermayer b6303e6d2a Reorganize how values are stored in h->non_zero_count.
~1% faster

Originally committed as revision 21273 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-17 23:44:23 +00:00
Michael Niedermayer 2911e13224 Disable a few things in fill_filter_caches() that arent needed.
0.1% speedup

Originally committed as revision 21272 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-17 22:05:36 +00:00
Michael Niedermayer f432b43b08 Split fill_caches() between filter and decoder.
Originally committed as revision 21271 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-17 21:43:08 +00:00
Michael Niedermayer c988f97566 Rearchitecturing the stiched up goose part 1
Run loop filter per row instead of per MB, this also should make it
much easier to switch to per frame filtering and also doing so in a
seperate thread in the future if some volunteer wants to try.
Overall decoding speedup of 1.7% (single thread on pentium dual / cathedral sample)
This change also allows some optimizations to be tried that would not have
been possible before.

Originally committed as revision 21270 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-17 20:35:55 +00:00
Michael Niedermayer 2e36c931f0 Avoid wasting 4 cpu cycles per MB in redundantly calculating qp_thresh.
Originally committed as revision 21243 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-16 11:55:35 +00:00
Michael Niedermayer ddd60f28d8 Replace cabac checks in inline functions from h264.h with constants.
No benchmark because its just replacing variables with litteral constants
(so no risk for slowdown outside gcc silliness) and i need sleep.

Originally committed as revision 21237 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-16 05:41:33 +00:00
Michael Niedermayer 7c2de274e7 Add forgotten include of h264_mvpred.h to h264.h.
This could have caused the linking failure of pred_pskip_motion() missing if
a compiler included never used static functions.

Originally committed as revision 21221 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-15 03:42:56 +00:00
Michael Niedermayer cc51b28299 Split cabac decoding code out of h264.c.
not slower according to benchmarks.

Originally committed as revision 21181 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-13 02:35:36 +00:00
Michael Niedermayer e1e949026e Split cavlc out of h264.c.
Seems to speed the code up a little...
The placement of many generic functions between h264.c and h264.h is still open
Currently they are a little randomly placed between them.

Originally committed as revision 21178 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-13 01:59:19 +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 2bedc0e854 Move check_intra4x4_pred_mode() back from h264.h to h264.c, the function is just
called once per MB in worst case and doesnt seem to benefit from static inline.
Actually the code might be a hair faster now (0.1% according to my benchmark but
this could be random noise)

Originally committed as revision 21173 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 21:17:26 +00:00
Michael Niedermayer ea6f00c448 Split all the reference picture handling off h264.c.
Originally committed as revision 21172 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 20:59:00 +00:00
Michael Niedermayer 889fce8e30 Split (picture|seq) parameter set decoding out of h264.c.
no speedloss meassured, also its really not touching anything that is speed relevant.

Originally committed as revision 21169 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 19:33:45 +00:00
Michael Niedermayer 9c09546352 Split SEI code off h264.c.
Originally committed as revision 21168 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 18:54:40 +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
Michael Niedermayer 082cf97106 Split h264 loop filter off h264.c.
No meassureable speed difference on pentium dual & cathedral sample.

Originally committed as revision 21159 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 06:01:55 +00:00
Michael Niedermayer 903d58f631 Get rid of #include "svq3.c"
functions called more than per mb are moved into the header, scan8 is also
as it must be known at compiletime.
The code after this patch duplicates h264data.h, this has been done to minimize
the changes in this step and allow more fine grained benchmarking.
Speedwise this is 1% faster on my pentium dual core with diegos cursed cathedral
sample.

Originally committed as revision 21157 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-12 05:30:31 +00:00
David Conrad c4dffe7e36 Export fullrange flag and color information for h.264
Originally committed as revision 21126 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-11 00:31:39 +00:00
Laurent Aimar 75dd693840 Export get_slice_type() as ff_h264_get_slice_type().
Patch by Laurent Aimar <fenrir at videolan dot org>.

Originally committed as revision 21110 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-09 16:20:41 +00:00
Haruhiko Yamagata b19d493f2b Add field prev_interlaced_frame to H264Context to be able to flag soft telecine
progressive.

Patch by Haruhiko Yamagata, h D yamagata A nifty D com

Originally committed as revision 19141 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-06-09 21:16:40 +00:00
Reimar Döffinger cbf1eae9a5 Add forgotten void return type to ff_h264_free_context
Originally committed as revision 18411 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-10 11:31:55 +00:00
Reimar Döffinger 15861962a7 Add a ff_h264_free_context function and call it from the H.264 parser.
This ensures that the parser will no longer leak memory for all SPS/PPS it encounters.

Originally committed as revision 18406 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-10 07:01:55 +00:00
Ivan Schreter 70e01da3bf Add support for ct_type to correctly detect interlaced flag
Originally committed as revision 17811 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-04 19:37:19 +00:00
David S. Miller da2911d5e8 sub_mb_type[] needs to be 8-byte aligned because it is referenced
as a uint64_t in get_dct8x8_allowed().
Patch by David S. Miller <davem at davemloft dot net>

Originally committed as revision 17655 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-28 08:38:33 +00:00
Ivan Schreter 1790a5e908 Make the following H264 functions available to the parser:
ff_h264_decode_sei, ff_h264_decode_seq_parameter_set,
ff_h264_decode_picture_parameter_set, ff_h264_decode_nal,
ff_h264_decode_rbsp_trailing

Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17487 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-21 19:54:14 +00:00
Ivan Schreter 2ea89d9274 Parse buffering period (H.264, D.1.1).
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17441 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-18 23:33:30 +00:00
Ivan Schreter 24a414e0fa Store CPB count in the context.
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17439 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-18 23:25:59 +00:00
Ivan Schreter cf6065ca6b Parse cbp_removal_delay in SEI picture structure.
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17413 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-18 00:38:10 +00:00
Ivan Schreter ff594f81df Parse dpb_output_delay in SEI picture structure.
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17412 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-18 00:36:07 +00:00
Ivan Schreter 82e38c2952 Parse initial_cpb_removal_delay_length.
Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17411 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-18 00:33:33 +00:00
Ivan Schreter 37a558fe51 Add SEI recovery point frame counter to H264Context and use it when
setting key_frame.

Patch by Ivan Schreter schreter A gmx D net

Originally committed as revision 17109 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-09 23:04:16 +00:00
Ivan Schreter dd02ea118b Replace hard-coded SEI type constants with symbolic names
Patch by Ivan Schreter ( schreter gmx net )

Originally committed as revision 17064 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-08 20:28:12 +00:00
Diego Biurrun 181d8a7f3a Remove unused CONFIG_H264_ENCODER #define.
Originally committed as revision 16993 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-04 20:41:09 +00:00
Gwenole Beauchesne cb99c652eb Add fields to H264Context and SPS for upcoming VA API support.
Patch by Gwenole Beauchesne gbeauchesne A splitted-desktop dotcom

Originally committed as revision 16976 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-02-03 20:49:02 +00:00