summaryrefslogtreecommitdiff
path: root/libavcodec/h264_mb_template.c
Commit message (Collapse)AuthorAge
* h264: drop a pointless indirectionAnton Khirnov2016-04-24
|
* h264: decouple h264_ps from the h264 decoderAnton Khirnov2016-04-24
| | | | | | | | | Make the SPS/PPS parsing independent of the H264Context, to allow decoupling the parser from the decoder. The change is modelled after the one done earlier for HEVC. Move the dequant buffers to the PPS to avoid complex checks whether they changed and an expensive copy for frame threads.
* h264: remove the svq3-specific codeAnton Khirnov2016-03-28
|
* lavc: AV-prefix all codec flagsVittorio Giovara2015-07-27
| | | | | | Convert doxygen to multiline and express bitfields more simply. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* h264: use properly allocated AVFramesAnton Khirnov2015-04-29
|
* h264: move [uv]linesize to the per-slice contextAnton Khirnov2015-03-21
| | | | | | While it is a per-frame variable, it is only really used in the low-level decoding code, so it is more efficient to store it in the slice context.
* h264: move mb_field_decoding_flag into the per-slice contextAnton Khirnov2015-03-21
|
* h264_mb: constify all uses of H264ContextAnton Khirnov2015-03-21
| | | | | All the variables modified by this code are either per-MB arrays or have been moved to the per-slice context
* h264_mb: constify block_offsetAnton Khirnov2015-03-21
| | | | It is read-only in this code.
* h264: move mb_{x,y} into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move mb_xy into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move loopfilter parameters into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move [{top,left}_]cbp into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move mb[_{padding,luma_dc}] into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move intra_pcm_ptr into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move the ref lists variables into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move mb_[uv]linesize into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move {mv,ref}_cache into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move non_zero_count_cache into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move some neighbour information into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move {chroma,intra16x16}_pred_mode into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move the quantizers into the per-slice contextAnton Khirnov2015-03-21
|
* h264: split weighted pred-related vars into per-slice contextAnton Khirnov2015-03-21
|
* Add missing headers to make template files compile (more) standaloneDiego Biurrun2014-03-26
|
* h264: Remove MotionEstContext and move the relevant fields to H264ContextVittorio Giovara2014-03-16
| | | | Unused buffers scratchpad and temp have been dropped too.
* h264: Integrate clear_blocks calls with IDCTRonald S. Bultje2013-04-10
| | | | | | | | | The non-intra-pcm branch in hl_decode_mb (simple, 8bpp) goes from 700 to 672 cycles, and the complete loop of decode_mb_cabac and hl_decode_mb (in the decode_slice loop) goes from 1759 to 1733 cycles on the clip tested (cathedral), i.e. almost 30 cycles per mb faster. Signed-off-by: Martin Storsjö <martin@martin.st>
* h264: add a parameter to the CHROMA422 macro.Anton Khirnov2013-03-21
| | | | This way it does not look like a constant.
* h264: add a parameter to the FRAME_MBAFF macro.Anton Khirnov2013-03-21
| | | | This way it does not look like a constant.
* h264: add a parameter to the MB_FIELD macro.Anton Khirnov2013-03-21
| | | | This way it does not look like a constant.
* lavc decoders: work with refcounted frames.Anton Khirnov2013-03-08
|
* h264: Get rid of unnecessary castsMartin Storsjö2013-02-20
| | | | | | | This gets rid of a number of warnings about casts discarding qualifiers from the pointer target, present since 7ebfb466a. Signed-off-by: Martin Storsjö <martin@martin.st>
* h264: Don't store intra pcm samples in h->mbRonald S. Bultje2013-02-19
| | | | | | | | | Instead, keep them in the bitstream buffer until we read them verbatim, this saves a memcpy() and a subsequent clearing of the target buffer. decode_cabac+decode_mb for a sample file (CAPM3_Sony_D.jsv) goes from 6121.4 to 6095.5 cycles, i.e. 26 cycles faster. Signed-off-by: Martin Storsjö <martin@martin.st>
* h264: Add add_pixels4/8() to h264dsp, and remove add_pixels4 from dsputilRonald S. Bultje2013-02-19
| | | | | | | | | These functions are mostly H264-specific (the only other user I can spot is bink), and this allows us to special-case some functionality for H264. Also remove the 16-bit-coeff with >8bpp versions (unused) and merge the duplicate 32-bit-coeff for >8bpp (identical). Signed-off-by: Martin Storsjö <martin@martin.st>
* h264: deMpegEncContextizeAnton Khirnov2013-02-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the changes are just trivial are just trivial replacements of fields from MpegEncContext with equivalent fields in H264Context. Everything in h264* other than h264.c are those trivial changes. The nontrivial parts are: 1) extracting a simplified version of the frame management code from mpegvideo.c. We don't need last/next_picture anymore, since h264 uses its own more complex system already and those were set only to appease the mpegvideo parts. 2) some tables that need to be allocated/freed in appropriate places. 3) hwaccels -- mostly trivial replacements. for dxva, the draw_horiz_band() call is moved from ff_dxva2_common_end_frame() to per-codec end_frame() callbacks, because it's now different for h264 and MpegEncContext-based decoders. 4) svq3 -- it does not use h264 complex reference system, so I just added some very simplistic frame management instead and dropped the use of ff_h264_frame_start(). Because of this I also had to move some initialization code to svq3. Additional fixes for chroma format and bit depth changes by Janne Grunau <janne-libav@jannau.net> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* dsputil: Separate h264chromaDiego Biurrun2013-02-06
|
* Drop DCTELEM typedefDiego Biurrun2013-01-22
| | | | | | It does not help as an abstraction and adds dsputil dependencies. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* lavc: introduce VideoDSPContextRonald S. Bultje2012-12-20
| | | | | | | | Move some functions from dsputil. The idea is that videodsp contains functions that are useful for a large and varied set of video decoders. Currently, it contains emulated_edge_mc() and prefetch(). Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* Replace all CODEC_ID_* with AV_CODEC_ID_*Anton Khirnov2012-08-07
|
* h264: use templates to avoid excessive inliningMans Rullgard2012-07-05
Instead of inlining everything into ff_h264_hl_decode_mb(), use explicit templating to create versions of the called functions with constant parameters filled in. This greatly speeds up compilation of h264.c and reduces the code size without any measurable impact on performance. Compilation time for h264.c on an i7 goes from 30s to 5.5s. Code size is reduced by 430kB. Signed-off-by: Mans Rullgard <mans@mansr.com>