summaryrefslogtreecommitdiff
path: root/libavcodec/vp8.c
Commit message (Collapse)AuthorAge
...
* VP8: Clean up some variable shadowing.Jason Garrett-Glaser2010-07-23
| | | | Originally committed as revision 24454 to svn://svn.ffmpeg.org/ffmpeg/trunk
* VP8: 30% faster idct_mbJason Garrett-Glaser2010-07-23
| | | | | | | | | | Take shortcuts based on statistically common situations. Add 4-at-a-time idct_dc function (mmx and sse2) since rows of 4 DC-only DCT blocks are common. TODO: tie this more directly into the MB mode, since the DC-level transform is only used for non-splitmv blocks? Originally committed as revision 24452 to svn://svn.ffmpeg.org/ffmpeg/trunk
* VP8: smarter prefetchingJason Garrett-Glaser2010-07-23
| | | | | | | | | | Don't prefetch reference frames that were used less than 1/32th of the time so far in the frame. This helps speed up to ~2% on videos that, in many frames, make near-zero (but not entirely zero) use of golden and/or alt-refs. This is a very common property of videos encoded by libvpx. Originally committed as revision 24451 to svn://svn.ffmpeg.org/ffmpeg/trunk
* VP8: clear DCT blocks in iDCT instead of using clear_blocks.Jason Garrett-Glaser2010-07-23
| | | | | | ~0.3% faster overall. Originally committed as revision 24448 to svn://svn.ffmpeg.org/ffmpeg/trunk
* VP8: avoid a memset for non-i4x4 blocks with no coefficientsJason Garrett-Glaser2010-07-23
| | | | Originally committed as revision 24447 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Get rid of more unnecessary dereferences in VP8 deblockingJason Garrett-Glaser2010-07-22
| | | | Originally committed as revision 24446 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Shut up an uninitialized variable GCC warning in VP8.Jason Garrett-Glaser2010-07-22
| | | | Originally committed as revision 24445 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Smarter VP8 prefetchingJason Garrett-Glaser2010-07-22
| | | | | | | | | | | | Prefetch all refs (including altref), but only if they've been used so far this frame. ~2.5% faster overall. TODO: Do something even smarter, like using how often each ref has been used so far, so that a couple blocks of a rarely-used ref don't force us to prefetch it. Originally committed as revision 24444 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix stupid bug in VP8 prefetching codeJason Garrett-Glaser2010-07-22
| | | | Originally committed as revision 24443 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Eliminate a LUT in escape decoding in VP8 decode_block_coeffsJason Garrett-Glaser2010-07-22
| | | | Originally committed as revision 24441 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Eliminate some repeated dereferences in VP8 inter_predictJason Garrett-Glaser2010-07-22
| | | | Originally committed as revision 24438 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Eliminate a pointless memset for intra blocks in P-frames in VP8Jason Garrett-Glaser2010-07-22
| | | | Originally committed as revision 24429 to svn://svn.ffmpeg.org/ffmpeg/trunk
* VP8: Don't store segment in macroblock struct anymore.Jason Garrett-Glaser2010-07-22
| | | | | | Not necessary with the previous patch. Originally committed as revision 24427 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Convert VP8 macroblock structures to a ring buffer.Jason Garrett-Glaser2010-07-22
| | | | | | | | | Uses a slightly nonintuitive ring buffer size of (width+height*2) to simplify addressing logic. Also split out the segmentation map to a separate structure, necessary to implement the ring buffer. Originally committed as revision 24426 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Calculate deblock strength per-MB instead of per-rowJason Garrett-Glaser2010-07-22
| | | | | | | Gives better cache locality, since the VP8Macroblock structs are still in cache. Inspired by the way x264 does it. Originally committed as revision 24417 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Avoid tracking i4x4 modes in P-frames in VP8Jason Garrett-Glaser2010-07-22
| | | | | | | As in the previous commit, they aren't used for context selection, so it saves memory this way. Originally committed as revision 24416 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Avoid useless fill_rectangle in P-frames in VP8Jason Garrett-Glaser2010-07-22
| | | | | | In VP8, i4x4 only uses contexts based on neighbors in I-frames. Originally committed as revision 24415 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Optimize partition mv decoding in VP8Jason Garrett-Glaser2010-07-22
| | | | Originally committed as revision 24414 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Take shortcuts for mv0 case in VP8 MCJason Garrett-Glaser2010-07-22
| | | | | | Avoid edge emulation -- it isn't needed if there isn't any subpel. Originally committed as revision 24413 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Much faster VP8 mv and mode predictionJason Garrett-Glaser2010-07-22
| | | | Originally committed as revision 24412 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add prefetching to VP8 decoderJason Garrett-Glaser2010-07-22
| | | | | | ~5% faster overall, probably depends on CPU and resolution. Originally committed as revision 24410 to svn://svn.ffmpeg.org/ffmpeg/trunk
* vp8: indentMåns Rullgård2010-07-20
| | | | Originally committed as revision 24368 to svn://svn.ffmpeg.org/ffmpeg/trunk
* vp8: add do { } while(0) around XCHG() macro to avoid confusing if/elseMåns Rullgård2010-07-20
| | | | | | | This is the correct solution to the warning "fixed" in the previous commit. Originally committed as revision 24367 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add some braces to silence the warning:Diego Biurrun2010-07-20
| | | | | | libavcodec/vp8.c:892: warning: suggest explicit braces to avoid ambiguous `else' Originally committed as revision 24366 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Change function prototypes for width=8 inner and mbedge loopfilter functionsRonald S. Bultje2010-07-19
| | | | | | | | | | | so that it does both U and V planes at the same time. This will have speed advantages when using SSE2 (or higher) optimizations, since we can do both the U and V rows together in a single xmm register. This also renames filter16 to filter16y and filter8 to filter8uv so that it's more obvious what each function is used for. Originally committed as revision 24337 to svn://svn.ffmpeg.org/ffmpeg/trunk
* vp8: Save mb border needed for intra prediction so that loop filter can runDavid Conrad2010-07-16
| | | | | | immediately after a mb row is decoded Originally committed as revision 24252 to svn://svn.ffmpeg.org/ffmpeg/trunk
* vp8: Check for malloc failureDavid Conrad2010-07-16
| | | | Originally committed as revision 24251 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add missing doxy for function arguments.Ronald S. Bultje2010-07-08
| | | | Originally committed as revision 24110 to svn://svn.ffmpeg.org/ffmpeg/trunk
* VP8: Move calculation of outer filter limit out of dsp functions for normalDavid Conrad2010-07-02
| | | | | | filter to match the simple loop filter Originally committed as revision 24010 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Avoid square brackets in Doxygen comments; Doxygen chokes on them.Diego Biurrun2010-07-02
| | | | Originally committed as revision 23979 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Simplify MV parsing, removes laying out 2 or 4 (16x8/8x8/8x16) MVs over allRonald S. Bultje2010-06-28
| | | | | | | 16 subblocks (since we no longer need that), which should also lead to a minor speedup. Originally committed as revision 23854 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Optimize split MC, so we don't always do 4x4 blocks of 4x4pixels each, butRonald S. Bultje2010-06-28
| | | | | | | | | we apply them as 16x8/8x16/8x8 subblocks where possible. Since this allows us to use width=8/16 instead of width=4 MC functions, we can now take more advantage of SSE2/SSSE3 optimizations, leading to a total speedup for splitMV filter of about 10%. Originally committed as revision 23853 to svn://svn.ffmpeg.org/ffmpeg/trunk
* VP8 bilinear filterDavid Conrad2010-06-27
| | | | Originally committed as revision 23813 to svn://svn.ffmpeg.org/ffmpeg/trunk
* vp8: warn and request sample if upscaling specified in headerMåns Rullgård2010-06-27
| | | | Originally committed as revision 23809 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Make VP8 DSP functions take two stridesJason Garrett-Glaser2010-06-25
| | | | | | | This isn't useful for the C functions, but will allow re-using H and V functions for HV functions without adding separate H and V wrappers. Originally committed as revision 23782 to svn://svn.ffmpeg.org/ffmpeg/trunk
* fix typo in vp8 decoder error messageJason Garrett-Glaser2010-06-25
| | | | Originally committed as revision 23765 to svn://svn.ffmpeg.org/ffmpeg/trunk
* avoid conditional and division in chroma MV calculationStefan Gehrer2010-06-23
| | | | Originally committed as revision 23745 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Native VP8 decoder.David Conrad2010-06-22
Patch by David Conrad <lessen42 gmail com> and myself. Originally committed as revision 23719 to svn://svn.ffmpeg.org/ffmpeg/trunk