[FFmpeg-devel] [PATCH 3/4] avcodec/mips: MSA (MIPS-SIMD-Arch) optimizations for VP9 idct functions

Ronald S. Bultje rsbultje at gmail.com
Thu Jul 16 17:11:35 CEST 2015


On Thu, Jul 9, 2015 at 9:15 AM, <shivraj.patil at imgtec.com> wrote:

> +void ff_idct_idct_16x16_add_msa(uint8_t *dst, ptrdiff_t stride,
> +                                int16_t *block, int eob)
> +{
> +    vp9_idct16x16_colcol_addblk_msa(block, dst, stride);
> +    memset(block, 0, 16 * 16 * sizeof(*block));
> +}

(This comment applies to all code in this file), you're not using the eob
parameter anywhere. Admittedly, for the iadst variants, the eob value is
generally quite high so this won't give any merit, but for idct_idct, eob
is typically low (possibly even 1), and you can make use of that to do
sub-idcts. Look at the C code for an example of dc-only idct_idct, and look
at the x86 simd for examples of sub-idcts. They give great speedups on top
of the regular speedup expected from simd vectorization, especially for the
bigger ones (16x16, 32x32).


More information about the ffmpeg-devel mailing list