I've found the Achilles Heel of all available practical CPU/GPU BC7 encoders: uncorrelated alpha channels. That's one of the ways my encoders are going to stand out. BC7 can handle uncorrelated alpha much better than I thought.
-
-
Replying to @richgel999
Modes 4 & 5 are explicitly designed to handle it by having separate indices for the alpha channel. I'm surprised other encoders aren't getting this right.
1 reply 0 retweets 1 like -
Replying to @JamesStanard
Yup. Here are example pics from ispc_texcomp: http://richg42.blogspot.com/2018/10/bc7-with-decorrelated-alpha.html … I'm biasing my encoders to favor modes 4/5 mode often. I have a couple large AAA customers also wanting this fixed.
1 reply 0 retweets 0 likes -
Replying to @richgel999 @JamesStanard
I've found that encoders that only support unweighted squared RGBA distance (like ispc_texcomp) are at a large disadvantage here. Even ones that support custom RGBA weights (like my own non-RDO BC7 encoder, or AMD's) still have fidelity issues, even when you weight alpha highly.
1 reply 0 retweets 0 likes -
Replying to @richgel999 @JamesStanard
I first noticed this issue while working on my first ispc BC7 codec, but I figured I was doing as good (or equally as bad) as ispc_texcomp so I didn't investigate it more.
1 reply 0 retweets 0 likes -
Replying to @richgel999 @JamesStanard
This is easily reproduced: Just plug in two completely different, high quality images into RGB and alpha. Alpha tends to get really trashed. BC7 can do better; it's the encoders that are falling short.
1 reply 0 retweets 0 likes -
Replying to @richgel999 @JamesStanard
Also, modes 4/5 support component rotation. This is being overused - sometimes A gets lumped with 2 of the color channels causing excessive A error. The way existing codecs are evaluating error in RGBA mode is causing too much error to be introduced into A.
1 reply 0 retweets 0 likes
My latest RDO BC7 codec favors mode 4 (with no rotation) and 6 for most blocks. Opaque mode uses modes 6 far mode than 1, and in alpha mode it uses mode 4 more than 6 and 7. Choosing between 6 vs. 1 in opaque mode is easy, but for the alpha blocks it's more complex.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.