[FFmpeg-devel] IDCT permutation (was: pre discussion around Blackfin dct_quantize_bfin routine)

Marc Hoffman mmhoffm
Thu Jun 14 19:34:28 CEST 2007


On 6/14/07, Ivan Kalvachev <ikalvachev at gmail.com> wrote:
>
> 2007/6/13, Siarhei Siamashka <siarhei.siamashka at gmail.com>:
> > > > On Blackfin you want to elliminate those permutations they are
> costly.
> > > >  Basically, something like:
> > > >
> > > >     j=scantable[i];
> > > >     x=data[j];
>
> Actually you can combine both lookups. however in that case you'd have
> to reorder the quantizer matrix accordingly.
> However when I tried this approach in mpeg2 decoder the results
> weren't amazing. (Athlon TBird).


I think the thing that would help me is to leave the data sets alone but
create a set of displacement tables for walking around the  coefficients.
This would help me in what I have seen so far.  Currently I have to do some
crazy stuff to utilize the scantable as is.

       r0=b[%1--] (x);
       p0=r0;
       p0=%2+(p0<<1);
       r0=w[p0];

Where if the data was stored as scaled offsets, I would have something like

p0=[%0++];
r0=w[%2++p0];

I still have the stalls but its pretty easy to interleave that piece of code
with 4 elements at a time to eliminate the stall conditions on Blackfin.

Marc




More information about the ffmpeg-devel mailing list