This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ASTC encoder for mobile application

Questions on ASTC encoder features and functionality

1) I have reviewed the ASTC encoder reference code. I find the complexity in terms of processing complexity & iteration are more.  So is it recommended for mobile live encoding application or only for the off-line game development applications.

2) Is there any reduced version ASTC encoder for mobile applications?

3) is the sRGB conversion mandatory feature in ASTC encoding sequence?  Linear RGB -->  sRGB --> ASTC encoding --> stream  or it is a optional feature.

4) I understand that Mali GPU's support ASTC (real-time) decoding function. how about ASTC (real-time) encoding functions, is it supported in any of the Mali GPU's.

 

Kindly provide the details.

-Mani  

 

 

  • 1) I have reviewed the ASTC encoder reference code. I find the complexity in terms of processing complexity & iteration are more.  So is it recommended for mobile live encoding application or only for the off-line game development applications.

    Nearly all compression schemes for 3D rendering are relatively slow - compression is nearly always done offline as part of the tool flow.

    2) Is there any reduced version ASTC encoder for mobile applications?

    The source code for the compressor is provided so developers can tune the compressor for their own use cases. ASTC compression is quite slow primarily because of the search space it has to search to find the best compression options. If you know what your images look like ahead of time you can probably statically tune the encoder to only try certain types of compression block, which can significantly reduce compression times (the compressor only has to search part of the search space). If you give it the wrong kind of data this kind of modification will mean that you get higher error rates - so this kind of tuning only generally works if you give it a consistent type of image.

    3) is the sRGB conversion mandatory feature in ASTC encoding sequence?  Linear RGB -->  sRGB --> ASTC encoding --> stream  or it is a optional feature.


    You can change the compressor any way you like - it's a trade off of visual quality against compression time. You can skip steps and try to go directly from linear RGB to the ASTC encoding, but you may get worse error. Using sRGB ensures that the error functions are correctly weighted to human perception; linear RGB makes a relatively poor use of bits given how humans perceive them - too many values at the bright luminosity where the brain can't distinguish them, and too few at the dark end of the luminosity range where they would actually help. TBH the linear to sRGB conversion probably isn't that expensive compared to the rest of the search - you only have to do it once.


    4) I understand that Mali GPU's support ASTC (real-time) decoding function. how about ASTC (real-time) encoding functions, is it supported in any of the Mali GPU's.


    No - the GPU only provides the decode functionality.


    HTH,

    Pete

  • Hi,

    Did Pete's post above answer your questions or is more information needed? If so please let us know what we can help clarify otherwise could you please select a correct answer to show this question has been resolved.

    Thanks,

    Ryan