[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