[FFmpeg-devel] [PATCH] MMX implementation of VC-1 inverse transforms

Michael Niedermayer michaelni
Sat Jan 19 22:01:02 CET 2008


On Sat, Jan 19, 2008 at 07:20:32PM +0100, Christophe GISQUET wrote:
[...]
> >                                  Figure 158: Matrix for 1-D 4-point Inverse Transform
> >                                           EMxN = ( DMxN . TM + 4) >> 3
> >                                   RMxN = (T?N . EMxN + CN . 1M + 64) >> 7
> [...]
> >  E8x8 , E8x4 , E4x8 , E4x4   are intermediate matrices. The values in the intermediate matrices
> > shall be limited to the range >=-4096 and <4095.
> 
> That means that EMxN<<3, the result of the initial horizontal pass
> before shift, has values in the -32768..32752 range.

-32768..32759


> 
> Wouldn't that imply that the final result of any of the combinations in
> both 1D idcts is within that range? Then 16bits signed arithmetics
> without bias can be used. The code wouldn't even have to perform the
> pre-shifting we discussed for the 4x4 dct.

for the first idct yes it should fit in 16bit without tricks
the second can overflow
for example
-1814       0       0       0
    0       0       0       0
    0       0       0       0
    0       0       0       0
after 1st pass:
-3855   -3855   -3855   -3855
    0       0       0       0
    0       0       0       0
    0       0       0       0
before >>7:
-65535 -65535  -65535  -65535
-65535 -65535  -65535  -65535
-65535 -65535  -65535  -65535
-65535 -65535  -65535  -65535
after 2nd pass:
 -512    -512    -512    -512
 -512    -512    -512    -512
 -512    -512    -512    -512
 -512    -512    -512    -512


> 
> Maybe my hopes are a bit too high there...
> 
> > one could now argue that the limiting is a little unclearly defined. But IMO
> > the equations clearly define the relation between input and output and they
> > dont contain any limiting themselfs so the encoder has to ensure that the
> > limits are not violated.
> 
> The initial terms in input are within -2048..2046. I bet there are not
> many beyond +/-1024, 

yes ...

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Let us carefully observe those good qualities wherein our enemies excel us
and endeavor to excel them, by avoiding what is faulty, and imitating what
is excellent in them. -- Plutarch
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080119/ed66fdf4/attachment.pgp>



More information about the ffmpeg-devel mailing list