“QuickETC2: Fast ETC2 texture compression using Luma differences” by Nah – ACM SIGGRAPH HISTORY ARCHIVES

“QuickETC2: Fast ETC2 texture compression using Luma differences” by Nah

  • 2020 SA Technical Papers_Nah_QuickETC2: Fast ETC2 texture compression using Luma differences

Conference:


Type(s):


Title:

    QuickETC2: Fast ETC2 texture compression using Luma differences

Session/Category Title:   VR and Real-time Techniques


Presenter(s)/Author(s):



Abstract:


    Compressed textures are indispensable in most 3D graphics applications to reduce memory traffic and increase performance. For higher-quality graphics, the number and size of textures in an application have continuously increased. Additionally, the ETC2 texture format, which is mandatory in OpenGL ES 3.0, OpenGL 4.3, and Android 4.3 (and later versions), requires more complex texture compression than the traditional ETC1 format. As a result, texture compression becomes more and more time-consuming.To accelerate ETC2 compression, we introduce two new compression techniques, named QuickETC2. The first technique is an early compression-mode decision scheme. Instead of testing all ETC1/2 modes to compress a texel block, we select proper modes for each block by exploiting the luma difference of the block to reduce unnecessary compression overhead. The second technique is a fast luma-based T- and H-mode compression method. When clustering each texel into two groups, we replace the 3D RGB space with the 1D luma space and quickly find the two groups that have the minimum luma differences. We also selectively perform the T- or H-mode and reduce its distance candidates, according to the luma differences of each group. We have implemented both techniques with AVX2 intrinsics to exploit SIMD parallelism. According to our experiments, QuickETC2 can compress more than 2000 1K×1K-sized images per second on an octa-core CPU.

References:


    1. Pontus Andersson, Jim Nilsson, Tomas Akenine-Möller, Magnus Oskarsson, and Kalle Åströmand Mark D. Fairchild. 2020. FLIP: A Difference Evaluator for Alternating Images. Proceedings of the ACM on Computer Graphics and Interactive Techniques (HPG 2020) 3, 2, Article 15 (2020), 23 pages.Google Scholar
    2. Arm Limited. 2016. Mali Texture Compression Tool. https://developer.arm.com/tools-and-software/graphics-and-gaming/mali-texture-compression-tool/downloadsGoogle Scholar
    3. Arm Limited. 2020. astc-encoder. https://github.com/ARM-software/astc-encoder/tree/1.xGoogle Scholar
    4. Binomial LLC. 2020. Basis Universal Supercompressed GPU Texture Codec. https://github.com/BinomialLLC/basis_universalGoogle Scholar
    5. David Chait. 2015. Using ASTC Texture Compression for Game Assets. https://developer.nvidia.com/astc-texture-compression-for-game-assetsGoogle Scholar
    6. Fabrice De Chaumont, Stéphane Dallongeville, Nicolas Chenouard, Nicolas Hervé, Sorin Pop, Thomas Provoost, Vannary Meas-Yedid, Praveen Pankajakshan, Timothée Lecomte, Yoann Le Montagner, Thibault Lagache, Alexandre Dufour, and Jean-Christophe Olivo-Marin. 2012. Icy: an open bioimage informatics platform for extended reproducible research. Nature methods 9, 7 (2012), 690–696.Google Scholar
    7. Marc Fauconneau Dufresne. 2015. How to create a high quality, fast texture compressor using ISPC. In Game Developer Conference 2015. https://software.intel.com/sites/default/files/managed/4a/38/High-Quality_Fast-DX11-Texture-Compression.pdfGoogle Scholar
    8. Jim Easterbrook, Oliver Grau, and Peter Schubel. 2010. A system for distributed multicamera capture and processing. In Proceedings of the 2010 Conference on Visual Media Production. IEEE, 107–113.Google ScholarDigital Library
    9. Ericsson. 2018. ETCPACK. https://github.com/Ericsson/ETCPACKGoogle Scholar
    10. Simon Fenney. 2003. Texture compression using low-frequency signal modulation. In Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics Hardware. 84–91.Google ScholarDigital Library
    11. Google Inc. and Blue Shift Inc. 2017. Etc2Comp – Texture to ETC2 compressor. https://github.com/google/etc2compGoogle Scholar
    12. Wesley Griffin and Marc Olano. 2015. Evaluating texture compression masking effects using objective image quality assessment metrics. IEEE Transactions on Visualization and Computer Graphics 21, 8 (2015), 970–979.Google ScholarDigital Library
    13. Intel Corp. 2019. Fast ISPC Texture Compressor. https://github.com/GameTechDev/ISPCTextureCompressorGoogle Scholar
    14. Konstantine I Iourcha, Krishna S Nayak, and Zhou Hong. 1999. System and method for fixed-rate block-based image compression with inferred pixel values. US Patent 5,956,431.Google Scholar
    15. Wenzel Jakob. 2020. Enoki: structured vectorization and differentiation on modern processor architectures. https://github.com/mitsuba-renderer/enoki.Google Scholar
    16. Brano Kemen. 2012. In-Game Video Capture with Real-Time Texture Compression. In OpenGL Insights, Patrick Cozzi and Christophe Riccio (Eds.). CRC Press, 455–466. http://www.openglinsights.com/.Google Scholar
    17. Ethan Kerzner and Marco Salvi. 2014. Streaming G-buffer compression for multi-sample anti-aliasing. In Proceedings of High Performance Graphics 2014. 1–7.Google ScholarDigital Library
    18. Khronos Group. 2019. Khronos Data Format Specification, Version 1.3, Revision 1. https://www.khronos.org/registry/DataFormat/specs/1.3/dataformat.1.3.pdfGoogle Scholar
    19. Evgeny Kluev. 2014. Stack Overflow – Horizontal minimum and maximum using SSE. https://stackoverflow.com/questions/22256525/horizontal-minimum-and-maximum-using-sseGoogle Scholar
    20. Pavel Krajcevski, Adam Lake, and Dinesh Manocha. 2013. FasTC: accelerated fixed-rate texture encoding. In Proceedings of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games. 137–144.Google ScholarDigital Library
    21. Jon Leech and Benj Lipcha. 2019. OpenGL© ES Version 3.0.6 (November 1, 2019). https://www.khronos.org/registry/OpenGL/specs/es/3.0/es_spec_3.0.pdf Yoseph Linde, Andres Buzo, and Robert Gray. 1980. An algorithm for vector quantizer design. IEEE Transactions on Communications 28, 1 (1980), 84–95.Google Scholar
    22. Colt McAnlis. 2016. Building a blazing fast ETC2 compressor. https://medium.com/@duhroach/building-a-blazing-fast-etc2-compressor-307f3e9aad99#.acqks0pzctGoogle Scholar
    23. Microsoft. 2018. Texture Block Compression in Direct3D 11. https://docs.microsoft.com/en-us/windows/win32/direct3d11/texture-block-compression-in-direct3d-11Google Scholar
    24. Jae-Ho Nah. 2020. QuickETC2: How to finish ETC2 compression within 1 ms. In ACM SIGGRAPH 2020 Talks. Article 4.Google ScholarDigital Library
    25. Jae-Ho Nah, Byeongjun Choi, and Yeongkyu Lim. 2018. Classified texture resizing for mobile devices. In ACM SIGGRAPH 2018 Talks. Article 73.Google ScholarDigital Library
    26. NVIDIA. 2020. NVIDIA Texture Tools Exporter. https://developer.nvidia.com/nvidia-texture-tools-exporterGoogle Scholar
    27. Jorn Nystad, Anders Lassen, Andy Pomianowski, Sean Ellis, and Tom Olson. 2012. Adaptive scalable texture compression. In Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on High-Performance Graphics. 105–114.Google Scholar
    28. Daniel Oom. 2016. Real-Time Adaptive Scalable Texture Compression for the Web. Master’s thesis. Chalmers University of Technology.Google Scholar
    29. T. Paltashev and I. Perminov. 2014. Texture Compression Techniques. Scientific Visualization 6, 1 (2014), 106–146.Google Scholar
    30. Daniel Pohl, Daniel Jungmann, Bartosz Taudul, Richard Membarth, Harini Hariharan, Thorsten Herfet, and Oliver Grau. 2017. The next generation of in-home streaming: Light fields, 5K, 10 GbE, and foveated compression. In 2017 Federated Conference on Computer Science and Information Systems (FedCSIS). IEEE, 663–667.Google ScholarCross Ref
    31. Jonathan Ragan-Kelley, Connelly Barnes, Andrew Adams, Sylvain Paris, Frédo Durand, and Saman Amarasinghe. 2013. Halide: a language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines. ACM SIGPLAN Notices 48, 6 (2013), 519–530.Google ScholarDigital Library
    32. Mark Segal and Kurt Akeley. 2013. The OpenGL© Graphics System: A Specification (Version 4.3 (Core Profile) – February 14, 2013). https://www.khronos.org/registry/OpenGL/specs/gl/glspec43.core.pdfGoogle Scholar
    33. Jacob Ström and Tomas Akenine-Möller. 2005. iPACKMAN: High-quality, low-complexity texture compression for mobile phones. In Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics Hardware. 63–70.Google ScholarDigital Library
    34. Jacob Ström and Martin Pettersson. 2007. ETC 2: texture compression using invalid combinations. In Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics Hardware. 49–54.Google Scholar
    35. Bartosz Taudul and Daniel Jungmann. 2020. etcpak. https://bitbucket.org/wolfpld/etcpak/src/masterGoogle Scholar
    36. Unity Technologies. 2017. Unity User Manual (2017.3). https://docs.unity3d.com/2017.3/Documentation/Manual/class-EditorManager.htmlGoogle Scholar
    37. Alex Voica. 2013. Taking texture compression to a new dimension with PVRTC2. https://www.imgtec.com/blog/pvrtc2-taking-texture-compression-to-a-new-dimensionGoogle Scholar
    38. Zhou Wang, Alan C Bovik, Hamid R Sheikh, and Eero P Simoncelli. 2004. Image quality assessment: from error visibility to structural similarity. IEEE Transactions on Image Processing 13, 4 (2004), 600–612.Google ScholarDigital Library


ACM Digital Library Publication:



Overview Page:



Submit a story:

If you would like to submit a story about this presentation, please contact us: historyarchives@siggraph.org