[XviD-devel] fdct porting questions

Christoph Nägeli chn at kbw.ch
Wed Feb 11 10:37:26 CET 2004


Hi all,

Perhaps you know that I'm trying to optimize xvid for ppc altivec.
Because idct are a little complicated, Edouard told me that it's better 
if I port the idct from libmpeg2 at sourceforge.
So I did this and it worked fine, though the PSNR and MSE are a little 
different than these from the C function,
=> the ieee 1180 test seems to tell that these are ok (and image 
quality is good, too)

I thought it would be best to port fdct from another project, too, so I 
choose ffmpeg and actually I could just copy-paste the fdct_altivec 
file.
But now running xvid_bench has an error (like this):

  ===== test fdct/idct =====
PLAINC -  1.911 usec       PSNR=13.291  MSE=3.000
ALTIVEC -  0.473 usec       PSNR=-49.310  MSE=5460077.000 | ERROR


I don't believe that the fdct from ffmpeg is wrong and I don't think 
that copying gives bugs.
So any ideas?


Here the ieee 1180 test, too:

===== IEEE test for PLAINC ==== (Min=-256 Max=255 Sign=1 Loops=10000)

   -- FDCT report --
Peak error:   1.0000
Peak MSE:     0.0860
Overall MSE:  0.0651
Peak ME:      0.0860
Overall ME:   0.0649
FDCT(0) == 0 ?  yup.

   -- IDCT report --
Peak error:   1.0000
Peak MSE:     0.0170
Overall MSE:  0.0129
Peak ME:      0.0027
Overall ME:   -0.0002
[PE<=1.0000 ok]
[PMSE<=0.0600 ok][OMSE<=0.0200 ok]
[PME<=0.0150 ok] [OME<=0.0015 ok]
IDCT(0) == 0 ?  yup.

===== IEEE test for ALTIVEC ==== (Min=-256 Max=255 Sign=1 Loops=10000)

   -- FDCT report --
Peak error:   1792.0000
Peak MSE:     72847.5967
Overall MSE:  46334.9729
Peak ME:      24.6302
Overall ME:   -0.1289
FDCT(0) == 0 ?  yup.

   -- IDCT report --
Peak error:   1.0000
Peak MSE:     0.0211
Overall MSE:  0.0180
Peak ME:      0.0081
Overall ME:   0.0001
[PE<=1.0000 ok]
[PMSE<=0.0600 ok][OMSE<=0.0200 ok]
[PME<=0.0150 ok] [OME<=0.0015 ok]
IDCT(0) == 0 ?  yup.

===== IEEE test for PLAINC ==== (Min=-256 Max=255 Sign=-1 Loops=10000)

   -- FDCT report --
Peak error:   1.0000
Peak MSE:     0.0810
Overall MSE:  0.0651
Peak ME:      0.0810
Overall ME:   0.0650
FDCT(0) == 0 ?  yup.

   -- IDCT report --
Peak error:   1.0000
Peak MSE:     0.0164
Overall MSE:  0.0127
Peak ME:      0.0026
Overall ME:   0.0002
[PE<=1.0000 ok]
[PMSE<=0.0600 ok][OMSE<=0.0200 ok]
[PME<=0.0150 ok] [OME<=0.0015 ok]
IDCT(0) == 0 ?  yup.

===== IEEE test for ALTIVEC ==== (Min=-256 Max=255 Sign=-1 Loops=10000)

   -- FDCT report --
Peak error:   1792.0000
Peak MSE:     72855.0508
Overall MSE:  46335.6329
Peak ME:      24.7132
Overall ME:   0.0447
FDCT(0) == 0 ?  yup.

   -- IDCT report --
Peak error:   1.0000
Peak MSE:     0.0207
Overall MSE:  0.0180
Peak ME:      0.0079
Overall ME:   0.0000
[PE<=1.0000 ok]
[PMSE<=0.0600 ok][OMSE<=0.0200 ok]
[PME<=0.0150 ok] [OME<=0.0015 ok]
IDCT(0) == 0 ?  yup.

===== IEEE test for PLAINC ==== (Min=-5 Max=5 Sign=1 Loops=10000)

   -- FDCT report --
Peak error:   1.0000
Peak MSE:     0.0835
Overall MSE:  0.0651
Peak ME:      0.0835
Overall ME:   0.0650
FDCT(0) == 0 ?  yup.

   -- IDCT report --
Peak error:   1.0000
Peak MSE:     0.0084
Overall MSE:  0.0063
Peak ME:      0.0021
Overall ME:   0.0002
[PE<=1.0000 ok]
[PMSE<=0.0600 ok][OMSE<=0.0200 ok]
[PME<=0.0150 ok] [OME<=0.0015 ok]
IDCT(0) == 0 ?  yup.

===== IEEE test for ALTIVEC ==== (Min=-5 Max=5 Sign=1 Loops=10000)

   -- FDCT report --
Peak error:   107.0000
Peak MSE:     510.8269
Overall MSE:  490.5147
Peak ME:      0.5925
Overall ME:   0.0076
FDCT(0) == 0 ?  yup.

   -- IDCT report --
Peak error:   1.0000
Peak MSE:     0.0219
Overall MSE:  0.0180
Peak ME:      0.0076
Overall ME:   -0.0000
[PE<=1.0000 ok]
[PMSE<=0.0600 ok][OMSE<=0.0200 ok]
[PME<=0.0150 ok] [OME<=0.0015 ok]
IDCT(0) == 0 ?  yup.

===== IEEE test for PLAINC ==== (Min=-5 Max=5 Sign=-1 Loops=10000)

   -- FDCT report --
Peak error:   1.0000
Peak MSE:     0.0796
Overall MSE:  0.0646
Peak ME:      0.0796
Overall ME:   0.0646
FDCT(0) == 0 ?  yup.

   -- IDCT report --
Peak error:   1.0000
Peak MSE:     0.0079
Overall MSE:  0.0063
Peak ME:      0.0022
Overall ME:   -0.0001
[PE<=1.0000 ok]
[PMSE<=0.0600 ok][OMSE<=0.0200 ok]
[PME<=0.0150 ok] [OME<=0.0015 ok]
IDCT(0) == 0 ?  yup.

===== IEEE test for ALTIVEC ==== (Min=-5 Max=5 Sign=-1 Loops=10000)

   -- FDCT report --
Peak error:   107.0000
Peak MSE:     510.8269
Overall MSE:  490.5165
Peak ME:      0.5925
Overall ME:   -0.0086
FDCT(0) == 0 ?  yup.

   -- IDCT report --
Peak error:   1.0000
Peak MSE:     0.0213
Overall MSE:  0.0180
Peak ME:      0.0079
Overall ME:   -0.0000
[PE<=1.0000 ok]
[PMSE<=0.0600 ok][OMSE<=0.0200 ok]
[PME<=0.0150 ok] [OME<=0.0015 ok]
IDCT(0) == 0 ?  yup.

===== IEEE test for PLAINC ==== (Min=-300 Max=300 Sign=1 Loops=10000)

   -- FDCT report --
Peak error:   1.0000
Peak MSE:     0.0830
Overall MSE:  0.0654
Peak ME:      0.0830
Overall ME:   0.0652
FDCT(0) == 0 ?  yup.

   -- IDCT report --
Peak error:   1.0000
Peak MSE:     0.0162
Overall MSE:  0.0126
Peak ME:      0.0029
Overall ME:   0.0001
[PE<=1.0000 ok]
[PMSE<=0.0600 ok][OMSE<=0.0200 ok]
[PME<=0.0150 ok] [OME<=0.0015 ok]
IDCT(0) == 0 ?  yup.

===== IEEE test for ALTIVEC ==== (Min=-300 Max=300 Sign=1 Loops=10000)

   -- FDCT report --
Peak error:   1792.0000
Peak MSE:     0.0000
Overall MSE:  -186784.9704
Peak ME:      26.7349
Overall ME:   0.2506
FDCT(0) == 0 ?  yup.

   -- IDCT report --
Peak error:   1.0000
Peak MSE:     0.0185
Overall MSE:  0.0154
Peak ME:      0.0075
Overall ME:   0.0003
[PE<=1.0000 ok]
[PMSE<=0.0600 ok][OMSE<=0.0200 ok]
[PME<=0.0150 ok] [OME<=0.0015 ok]
IDCT(0) == 0 ?  yup.

===== IEEE test for PLAINC ==== (Min=-300 Max=300 Sign=-1 Loops=10000)

   -- FDCT report --
Peak error:   1.0000
Peak MSE:     0.0825
Overall MSE:  0.0650
Peak ME:      0.0825
Overall ME:   0.0648
FDCT(0) == 0 ?  yup.

   -- IDCT report --
Peak error:   1.0000
Peak MSE:     0.0161
Overall MSE:  0.0126
Peak ME:      0.0030
Overall ME:   0.0001
[PE<=1.0000 ok]
[PMSE<=0.0600 ok][OMSE<=0.0200 ok]
[PME<=0.0150 ok] [OME<=0.0015 ok]
IDCT(0) == 0 ?  yup.

===== IEEE test for ALTIVEC ==== (Min=-300 Max=300 Sign=-1 Loops=10000)

   -- FDCT report --
Peak error:   1792.0000
Peak MSE:     0.0000
Overall MSE:  -186784.3505
Peak ME:      26.8755
Overall ME:   -0.3923
FDCT(0) == 0 ?  yup.

   -- IDCT report --
Peak error:   1.0000
Peak MSE:     0.0178
Overall MSE:  0.0154
Peak ME:      0.0074
Overall ME:   -0.0003
[PE<=1.0000 ok]
[PMSE<=0.0600 ok][OMSE<=0.0200 ok]
[PME<=0.0150 ok] [OME<=0.0015 ok]
IDCT(0) == 0 ?  yup.



--
Christoph



More information about the XviD-devel mailing list