[FFmpeg-devel] [PATCH 2/3] VP8: Implement bicubic MC functions (put_vp8_epel*)

Clark, Rob rob
Fri Sep 17 05:55:31 CEST 2010


On Thu, Sep 16, 2010 at 3:42 PM, Ronald S. Bultje <rsbultje at gmail.com>wrote:

> Hi,
>
> On Thu, Sep 16, 2010 at 2:28 PM, Rob Clark <rob at ti.com> wrote:
> > +#define VP8_MC_FUNC(IDX, SIZE) \
> > +    dsp->put_vp8_epel_pixels_tab[IDX][0][0] = put_vp8_pixels ## SIZE ##
> _neon; \
> > +//    dsp->put_vp8_epel_pixels_tab[IDX][0][1] = put_vp8_epel ## SIZE ##
> _h4_neon; \
> > +//    dsp->put_vp8_epel_pixels_tab[IDX][0][2] = put_vp8_epel ## SIZE ##
> _h6_neon; \
> > +//    dsp->put_vp8_epel_pixels_tab[IDX][1][0] = put_vp8_epel ## SIZE ##
> _v4_neon; \
> > +//    dsp->put_vp8_epel_pixels_tab[IDX][1][1] = put_vp8_epel ## SIZE ##
> _h4v4_neon; \
> > +//    dsp->put_vp8_epel_pixels_tab[IDX][1][2] = put_vp8_epel ## SIZE ##
> _h6v4_neon; \
> > +//    dsp->put_vp8_epel_pixels_tab[IDX][2][0] = put_vp8_epel ## SIZE ##
> _v6_neon; \
> > +//    dsp->put_vp8_epel_pixels_tab[IDX][2][1] = put_vp8_epel ## SIZE ##
> _h4v6_neon; \
> > +//    dsp->put_vp8_epel_pixels_tab[IDX][2][2] = put_vp8_epel ## SIZE ##
> _h6v6_neon
> [..]
> > +        VP8_MC_FUNC(0, 16);
> > +        VP8_MC_FUNC(1, 8);
> > +        VP8_MC_FUNC(2, 4);
> [..]
> > +        // XXX
> > +        dsp->put_vp8_epel_pixels_tab[0][2][0] = put_vp8_epel16_v6_neon;
> > +        dsp->put_vp8_epel_pixels_tab[0][0][2] = put_vp8_epel16_h6_neon;
> > +        dsp->put_vp8_epel_pixels_tab[0][2][2] =
> put_vp8_epel16_h6v6_neon;
> > +        dsp->put_vp8_epel_pixels_tab[1][2][0] = put_vp8_epel8_v6_neon;
> > +        dsp->put_vp8_epel_pixels_tab[1][0][2] = put_vp8_epel8_h6_neon;
> > +        dsp->put_vp8_epel_pixels_tab[1][2][2] = put_vp8_epel8_h6v6_neon;
> > +        dsp->put_vp8_epel_pixels_tab[1][1][0] = put_vp8_epel8_v4_neon;
> > +        dsp->put_vp8_epel_pixels_tab[1][0][1] = put_vp8_epel8_h4_neon;
> > +        dsp->put_vp8_epel_pixels_tab[1][1][1] = put_vp8_epel8_h4v4_neon;
> > +        dsp->put_vp8_epel_pixels_tab[1][1][2] = put_vp8_epel8_h6v4_neon;
> > +        dsp->put_vp8_epel_pixels_tab[1][2][1] = put_vp8_epel8_h4v6_neon;
>
> ??
>
> I understand the epel16 h4 or v4 variants are missing because luma has
> no odd mx/my values, but you could at least explain this in a comment
> instead of leaving stuff randomly commented out and having macros that
> do essentially nothing?
>
>
oh, whoops.. I forgot to clean that up before sending the patch

sorry 'bout that.. I'll send an updated patch when I get a chance (worst
case, this weekend if I don't have time before)


> Is a epel4 variant possible also (even if it doesn't use half of the
> register size, using the epel8 function skeleton)?
>
>
yeah, I suppose that would be a quick and dirty way to do it.. I'd have to
double check the test vectors if any of them exercise the epel4 functions to
confirm that there was a way to test these for correctness (sorry, I don't
remember off the top of my head).. all the existing neon functions have all
been tested against the vp80-00-comprehensive-*.ivf clips for bit exactness.

BR,
-R



More information about the ffmpeg-devel mailing list