summaryrefslogtreecommitdiff
path: root/src/static_libs/rg_etc/etc2_encoder.c (follow)
AgeCommit message (Collapse)Author
2014-06-13Evas: Fix ETC2 encoding with RGB images (no alpha)Jean-Philippe Andre
2014-06-10Evas ETC2: Clean up debug codeJean-Philippe Andre
Disable flag and disable unused function if DEBUG is not set.
2014-06-10Evas ETC2: Fix alpha encoding with high qualityJean-Philippe Andre
Use an exhaustive search when encoding alpha at high quality. This can be very slow if we don't have a perfect solution.
2014-06-10Evas ETC2: Implement Planar modeJean-Philippe Andre
And this completes the first version of this ETC2 encoder. It's pretty slow and not exhaustive. Color selection for T and H modes could probably be optimized for both performance and quality. As for the planar mode, there is no selection to speak of, as we just take the values of the pixels directly (no scan, very fast) On a sample image with lots of blue, white and noisy gradients, T+H+Planar mode boost the PNSR from 41.22dB to 42.01dB. Without planar mode, the PSNR was 41.94dB. @feature
2014-06-10Evas ETC2: Implement H mode encodingJean-Philippe Andre
And we gain some more decibels of PSNR :) @feature
2014-06-10Evas ETC2: Implement T mode encodingJean-Philippe Andre
In this mode, two colors are encoded in RGB444, a multiplier and distance (index) are selected. Two extra colors are extrapolated from the main base color. As in ETC1 we have 4 base colors to paint our block. @feature
2014-06-10Evas ETC2: Add ETC2 encoder skelettonJean-Philippe Andre
Implement Alpha encoding, brute force way, but doesn't scan all possibilities either (only based on average alpha). RGB encoding is still entirely left to the rg-etc1 encoder. T, H and Planar mode will come in the next commits. @feature: Implement an ETC2 encoder from scratch for RGB8 and RGBA8