Comments (3)
Hi - "-level X" enables/disables a bunch of encoder stages that generally increase quality (usually slightly) at the expense of large amounts of CPU time. The larger the level, the slower the encoder goes, but quality doesn't improve much beyond level 2/3. Level 0 is fastest but is too low quality for many uses. Changing this option doesn't change the bitrate or compression efficiency much, if at all.
"-q X" is the main quality knob, like with JPEG's quality level. It controls the codebook sizes used to quantize the compressed texture. Larger codebooks increase the quality a lot, but also increase the bitrate. This is the main knob you use to control the quality vs. bitrate tradeoff. Larger codebooks also increase compression time.
For the most part, I suspect the two most useful quality levels are 1 and 2, and possibly 3. Level 0 is currently iffy from a quality perspective, and levels beyond 2/3 are too slow to be practical. We're aiming for level 1 (the default) to be fine in almost all scenarios.
Hope that helps.
from basis_universal.
So basically, just change the "q" option to dial in the desired bitrate vs. quality tradeoff. If you are desperate and must have faster encoding, try level 0. If you really need even higher quality, try level 2 or 3.
Note that the encoder converts the -q setting to endpoint/selector codebook sizes. If you want to directly control these codebook sizes yourself, use -max_selectors X and -max_endpoints X.
from basis_universal.
Thanks for all the explanations, very clear & useful !
It would be nice to add it in the README for other users
from basis_universal.
Related Issues (20)
- Some questions after reading some source codes
- Will OpenCL 3.0 improve compression performance? HOT 1
- How to encode HDR format resource? HOT 1
- Webssembly version does not support jpg format HOT 1
- rename HOT 2
- Selecting which transcoders to use
- Is it possible ETC1S without lossy compression ?
- RuntimeError when encoding to UASTC with WASM HOT 1
- Transcode failure on iOS 17 HOT 3
- shrinking wasm for glTF extension support HOT 1
- build_emscripen.sh script error
- Error when I cross compile for arm64 under Windows HOT 2
- Does this project with WebGPU (web)? HOT 1
- Add prefix to cmake options
- losinglena.com domain expired HOT 1
- Setup documentation to remove etc1 global codebook selector
- Compile error in cppspmd_sse.h with C++23 HOT 1
- Remove reference to etc1_global_selector_codebook from transcoder wiki page HOT 2
- Balck Textures on android HOT 11
- Question about conversion from PNG to KTX2 and BC1-7 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from basis_universal.