Open GoogleCodeExporter opened 9 years ago
I realise it's been a few months, apologies for that. I'm finally trying to
look
into this issue.
For the current trunk revision, here is the RMS I get for cluster fit
(non-iterative):
kodim01.png 8.33519
kodim02.png 6.2648
kodim03.png 4.89315
kodim04.png 5.7854
kodim05.png 9.71045
kodim06.png 7.19615
kodim07.png 5.86264
kodim08.png 10.3137
kodim09.png 5.34234
kodim10.png 5.31225
kodim11.png 6.79347
kodim12.png 4.85037
kodim13.png 10.9275
kodim14.png 8.37094
kodim15.png 5.92965
kodim16.png 5.13003
kodim17.png 5.58897
kodim18.png 8.0668
kodim19.png 6.6252
kodim20.png 5.51169
kodim21.png 7.18417
kodim22.png 6.48776
kodim23.png 4.98063
kodim24.png 8.51053
I know it was a long time ago, but do you remember how you generated your
numbers? I
have generated them using uniform weights (1.0f, 1.0f, 1.0f) in both the
cluster fit
and RMS error calculation.
Original comment by sidm...@gmail.com
on 2 Apr 2009 at 9:47
I think I used this code:
http://code.google.com/p/nvidia-texture-tools/source/browse/trunk/src/nvtt/Compr
essDXT.cpp#630
and then used a modified version of nvtestsuite to compute the RMS of the test
images:
http://code.google.com/p/nvidia-texture-tools/source/browse/trunk/src/nvtt/tests
/testsuite.cpp
In particular, I add this line:
compressionOptions.setExternalCompressor("squish");
I think I used the msvc8 compiler. I guess that compiler version and settings
could
explain the differences, but in my test I believe I used the same compiler for
both.
It was long time ago, I should probably repeat the tests to make sure I didn't
miss
anything, and that the same result can still be reproduced.
Original comment by cast...@gmail.com
on 3 Apr 2009 at 12:55
Thanks for the update, I did this test using gcc 4.3 on x86_64. I'll do the
same
test on msvc9 (express) and see what the results are.
The test code I'm using is here:
http://code.google.com/p/libsquish/source/browse/trunk/extra/squishpng.cpp#420
There has to be a reason, so worst case I'll just drop your version of squish
over
the top of this and see what happens. :)
Nice blog post on hardware implementation and tolerances for intermediate
points btw,
very interesting to see that this can cause issues in real textures (and can be
avoided).
Original comment by sidm...@gmail.com
on 3 Apr 2009 at 7:53
Quick update: the RMS error values from your test suite I just built and ran
are not
as good as the values back in Nov 08. However, the values are still an
improvement
on the current squish. One difference between the two cluster fits is that I
intentionally skip cluster fit configurations where all samples are assigned to
an
endpoint, since the least squares solution is under-specified for this case,
but this
does not seem to bring things in line.
The plot thickens... :)
Original comment by sidm...@gmail.com
on 3 Apr 2009 at 10:50
:)
The values could be slightly worse now, because the updated single color
compressor
is more conservative. I don't remember any other changes that could impact
quality...
I recently wrote a testsuite to checks for regressions, but I'm not running it
periodically...
Original comment by cast...@gmail.com
on 3 Apr 2009 at 11:06
There are lots of differences in the code.
* NVtt doesn't use a minimal colour-set. It always uses 16 colours, even if
they occur multiple times.
* It doesn't square the weights in the set even if you make it use a minimal
set.
* It uses the "metric" in creating the covariance matrix
* It uses (AFAIS mathematically correcty) a squared "metric" in the cluster-fit.
Maybe more, that's what I saw just skimming.
Original comment by spamt...@adsignum.com
on 31 Oct 2012 at 7:30
Original issue reported on code.google.com by
cast...@gmail.com
on 25 Nov 2008 at 7:12