Адаптивное масштабируемое сжатие текстур (ASTC) это с потерями блочный сжатие текстуры алгоритм разработан Jørn Nystad et al. из ARM Ltd. и AMD. [1]
Полная информация об ASTC была впервые публично представлена на конференции High Performance Graphics 2012 в статье Olson et al. под названием «Адаптивное масштабируемое сжатие текстур» [2]
ASTC был принят как официальное расширение для обоих OpenGL и OpenGL ES посредством Хронос Групп 6 августа 2012 г. [3]
Содержание
Поддержка оборудования
В Linux все драйверы Gallium 3D имеют резервное программное обеспечение с 2018 года, поэтому ASTC можно использовать на любом графическом процессоре AMD Radeon. [6]
Обзор
Для кодирования разных ресурсов часто требуются разные цветовые форматы. ASTC поддерживает широкий выбор входных форматов, включая только яркость, альфа-яркость, RGB, RGBA и режимы, оптимизированные для нормалей поверхности. Таким образом, разработчик может выбрать оптимальный формат без необходимости поддерживать несколько различных схем сжатия.
Выбор скорости передачи данных и цветового формата не ограничивает друг друга, поэтому можно выбирать из большого количества комбинаций.
Несмотря на такую гибкость, ASTC обеспечивает лучшее отношение пикового сигнала к шуму, чем PVRTC, S3TC, и ETC2 при измерении при 2 и 3,56 бит на тексель. [2] Для текстур HDR он дает результаты, сопоставимые с BC6H при 8 битах на тексель. [2]
Поддерживаемые цветовые форматы
| Формат кодирования | Описание |
|---|---|
| L | Только яркость |
| ЛА | Яркость с прозрачностью |
| L + A | Яркость с некоррелированной прозрачностью |
| X + Y | Нормали поверхности |
| RGB | Полноцветный |
| XY + Z | Нормали к поверхности с некоррелированными Z |
| RGBA | Полный цвет с прозрачностью |
| RGB + A | Полный цвет с некоррелированной прозрачностью |
Каждый из них может быть закодирован как низкий или высокий динамический диапазон. Кодировщик выбирает цветовые форматы независимо для каждого блока изображения.
Последовательность 2D-блоков и скорость передачи данных
Текстуры ASTC сжимаются с использованием фиксированного размера блока 128 бит, но с переменным размером блока в диапазоне от 4×4 текселей до 12×12 текселей. Таким образом, доступные битовые скорости варьируются от 8 бит на тексель до 0,89 бит на тексел с небольшими шагами между ними.
| Отпечаток блока | Битрейт | Приращение |
|---|---|---|
| 4×4 | 8.00 | 25% |
| 5×4 | 6.40 | 25% |
| 5×5 | 5.12 | 20% |
| 6×5 | 4.27 | 20% |
| 6×6 | 3.56 | 14% |
| 8×5 | 3.20 | 20% |
| 8×6 | 2.67 | 5% |
| 10×5 | 2.56 | 20% |
| 10×6 | 2.13 | 7% |
| 8×8 | 2.00 | 25% |
| 10×8 | 1.60 | 25% |
| 10×10 | 1.28 | 20% |
| 12×10 | 1.07 | 20% |
| 12×12 | 0.89 |
В приведенной выше таблице столбец «Приращение» показывает дополнительную память, необходимую для хранения текстуры с использованием этой скорости передачи данных, по сравнению со следующей наименьшей скоростью. Посадочные места блока представлены как ширина x высота.
Отпечатки 3D-блоков и скорость передачи данных
3D-текстуры ASTC сжимаются с использованием фиксированного размера блока 128 бит, как для 2D, но с переменным размером блока в диапазоне от 3x3x3 текселей до 6x6x6 текселей. Таким образом, доступные битовые скорости варьируются от 4,74 бит на тексель до 0,59 бит на тексель с небольшими шагами между ними.
| Отпечаток блока | Битрейт | Приращение |
|---|---|---|
| 3x3x3 | 4.74 | 33% |
| 4x3x3 | 3.56 | 33% |
| 4x4x3 | 2.67 | 33% |
| 4x4x4 | 2.00 | 25% |
| 5x4x4 | 1.60 | 25% |
| 5x5x4 | 1.28 | 25% |
| 5x5x5 | 1.02 | 20% |
| 6x5x5 | 0.85 | 20% |
| 6x6x5 | 0.71 | 20% |
| 6x6x6 | 0.59 |
Посадочные места блока представлены как ширина x высота x глубина.
Что такое текстура ASTC в BlueStacks?
Обоснование разработки адаптивного масштабируемого сжатия текстур (ASTC) состоит в том, чтобы уменьшить размер данных, объем памяти и время загрузки, обеспечивая при этом высокое визуальное качество для данной текстуры и повышая производительность игры.
Что такое поддержка текстур ASTC?
Адаптивное масштабируемое сжатие текстур (ASTC) — это форма сжатия текстур, в которой используются блоки переменного размера, а не один фиксированный размер. … Это дает более или менее эквивалентное качество изображения при том же битрейте, но оно также может обеспечить более высокое сжатие, если вы готовы пожертвовать некоторым качеством изображения.
Что лучше для bluestacks OpenGL или DirectX?
Режим графического движка: выберите между графическим режимом, «Совместимость» и «Производительность». Большинство игр нормально работают в режиме производительности. … В широком смысле DirectX поддерживает звук, музыку, ввод, работу в сети и мультимедиа, а OpenGL — это строго графический API.
Что такое АНТК?
ASTC помогает запоминать, является ли тригонометрическое соотношение положительным или отрицательным в каждом квадранте: [Add-Sugar-To-Coffee]
Достаточно ли 4 ГБ ОЗУ для BlueStacks?
Для каждого экземпляра BlueStacks, включая основной, требуется как минимум 1 ядро процессора и 2 ГБ ОЗУ. … Таким образом, как минимум, вы можете без проблем работать в системе, используя двухъядерный процессор с 4 ГБ оперативной памяти.
Как добиться 60 кадров в секунду на BlueStacks?
На странице «Настройки» перейдите на вкладку «Двигатель».
Почему BlueStacks замедляет работу моего компьютера?
BlueStacks предназначен для запуска Android на ПК с Windows с использованием технологии виртуализации для запуска приложений Android. Если характеристики вашего компьютера не соответствуют требованиям, запуск нескольких приложений на вашем ПК окажет давление на процессор, оперативную память и графический процессор, что, в свою очередь, может замедлить работу вашего ПК.
Как мне запомнить ASTC?
Все студенты принимают исчисление — это мнемоника для знака каждой тригонометрической функции в каждом квадранте плоскости. Буквы ASTC обозначают, какие из тригонометрических функций положительны, начиная с верхнего правого 1-го квадранта и перемещаясь против часовой стрелки через квадранты 2-4.
Что такое формула тригонометрии?
Формулы основных тригонометрических функций
Используя прямоугольный треугольник в качестве ориентира, можно получить тригонометрические функции или тождества: sin θ = Противоположная сторона / Гипотенуза. cos θ = Соседняя сторона / Гипотенуза. tan θ = противоположная сторона / смежная сторона.
Какой квадрант является отрицательным?
Определение квадрантов, в которых секущая положительна или …
Что лучше NOX или BlueStacks?
Nox известен своей надежностью, чем BlueStacks. Фактически, он настолько легкий, что его может запустить даже ПК с Windows XP. Он также поддерживается Windows Vista и всеми последующими версиями. Для требований к процессору достаточно любого двухъядерного процессора Intel или AMD.
BlueStacks — это вирус?
При загрузке из официальных источников, таких как наш веб-сайт, BlueStacks не содержит никаких вредоносных программ или вредоносных программ. Однако мы НЕ МОЖЕМ гарантировать безопасность нашего эмулятора при его загрузке из любого другого источника.
Какая версия BlueStacks лучше всего подходит для ПК начального уровня?
Примечание: если у вас недорогой ПК или вы хотите использовать облегченную версию BlueStacks, попробуйте старую версию BlueStacks 0.10. 7.5601. Не ждите, что с этим поиграете, потому что с некоторыми играми он несовместим. Итак, устанавливайте и новую версию, и старую.
Using ASTC Texture Compression for Game Assets
Since the dawn of the GPU, developers have been trying to cram bigger and better textures into memory. Sometimes that is accomplished with more RAM but more often it is achieved with native support for compressed texture formats. The objective of texture compression is to reduce data size, while minimizing impact on visual quality.
Table of Contents [show/hide]
With the flood of mobile devices came even more urgency to use texture compression. Memory was typically shared with the CPU and thus even more of a scarce resource. In addition, mobile data networks were slow, and storage in the device was small, so smaller data over the wire was important.
Also important to the mobile space is power use. For textures, there are many places where smaller data saves power: reading from storage, any unpack/unzip or transcode step, writing data to memory, and reading that data during rendering.
This guide aims to provide developers with the following:
The overall goal is to assist developers in achieving their desired balance between image quality and texture size. In addition, at the end is a more detailed walk through of some real-world compression testing results.
Quick Guide to Converting Assets to ASTC
For developers who want to «get right to it», consider the general guidance below to try first when targeting the latest GPU hardware. This jumps ahead of the discussion in the following chapters, and describes one possible approach to immediately leverage ASTC for your base of assets.
Figure 1: Example of ASTC block compression
(Click for larger version)
Take your textures, and separate them into groups of similar content based on the content categories in the next section. For each category choose if you want:
Note: although many of the tools use the term «best compression» we avoid it as it is easily overloaded. The best compression might mean the highest compression levels and lowest bit rates, but with too many artifacts. That said, you may find content which «tolerates» highest compression well, or decide that smaller size is more important than the resulting artifacts. Experiment with increased compression when time permits.
This is only a «quick start guide». You must evaluate your particular needs, desires, and content. It is a starting point from which you can decide to further increase or decrease compression levels to hit your desired balance of size and quality.
One last note: ASTC compression takes time for best results. DXT tools might run 2-10x faster. On the plus side, ASTC tools are 4-20x faster than its closest competitor, ETC2, for production output. ASTC can run in faster modes, generating lower quality results in short times, when you are testing and don’t yet need or want production quality.
Modes to Try Based on Content
In each case below, «Higher» quality should be less than or equal to the file size of DXT but significantly better image quality. This is especially the case if previously you have avoided using DXT on specific assets; you might now try ASTC formats vs leaving the assets uncompressed.
The following suggestions are based on the ARM «astcenc.exe» command line tool in «thorough» mode to ASTC-compress a small set of test assets at different bit rates.
RGB (24b, diffuse maps)
ARGB (32b, diffuse with alpha)
Normal Map (16b, possibly also RG/LA maps)
Single Channel (8b, possibly detail/light/AO map)
Compressed Texture Formats
S3TC/DXTn/BCn
In the modern desktop computing age, there has classically been one answer to texture compression: DXT. It is also referred to as S3TC due to its origin, or BCn for certain DirectX implementations. At its most basic, it is a fixed 4×4 block format that uses 4bpp to encode each RGB block. To store alpha information, there is either 1-bit alpha (using 1bpp of the encoding space), or a second 4bpp alpha-only block for high quality alpha encoding. There have been later variants of this approach that store LA or RG data in two separate 4bpp blocks, for better quality.
In the mobile space, NVIDIA is one of the few vendors enabling easy porting of desktop content to devices, with its support for DXT in the Tegra processors. Other mobile chip vendors created other compression formats.
PVRTC/PVRTC2
Imagination develops the PowerVR GPU and created a proprietary PVRTC texture compression format. It is well known for its use on iOS devices for texture compression. It offers both 4 and 2bpp options for greater reduction in size. More recently Imagination has released the PVRTC2 formats, which offer better compression quality in the same footprint.
ETC/ETC2
To avoid the myriad vendor-specific codecs, Khronos defined vendor-neutral codecs. With the introduction of OpenGL ES 2.0, the ETC compression format became an available multi-vendor extension, offering DXT-like compression at better quality levels. However, it had issues that hampered its widespread adoption: it was not a required piece of ES 2.0, there was no alpha support, and it had only one mode, 4bpp RGB.
With the release of OpenGL ES 3.0 in 2013 (and full OpenGL 4.3), the ETC2 format became a standard, with backwards compatibility and important new features. First, it added full alpha support like DXT3/5 (in 8bpp), as well as 1-bit «punch-through» alpha (in 4bpp). Second, it brought the EAC format, which supports 1 and 2-channel data (R and RG, in 4 and 8bpp respectively). Third, it added sRGB data support. And last but not least, it claimed to offer better quality than competitors at the same bitrate. The biggest issue with ETC2 are complaints about its extremely slow compression tools.
And Then Came ASTC
In parallel to Khronos defining OpenGL ES 3.0, there was an effort to develop an industry-leading compression format that provided developers with finer grained control. This resulted in the mid-2012 launch of the ASTC texture compression format. The key to ASTC is that while it uses a fixed 128 bits-per-block, each texture can have a different size block fit in those 128 bits, unlike the fixed 4×4 block of prior formats. Leveraging a large variety of square and non-square block sizes, ASTC delivers a wide range of derived compression ratios, scaling from 8bpp down to just under 1bpp, as follows:
Thus, ASTC offers a huge advantage of tuning quality vs size. The alternative formats generally offer 4bpp for RGB or single channel data, some can fit alpha in that footprint, some offer higher quality alpha or a second single channel data block in a second 4bpp section. PVRTC is the other to offer a smaller variant, with its 2bpp mode.
In addition, ASTC offers support for 1-4 channels, including full alpha RGBA, normal RGB, 2-channel RG (LA), and 1-channel R (L/A) support, and custom X+Y and XY+Z normal map support. The net result being ASTC handles most types of texture.
One other key advantage of ASTC is that the method of encoding endpoints, weighting, etc. is selected per-block rather than globally, so the encoder can adapt on the fly to allocate the 128 bits to better represent the contents in each block. This delivers better image quality than previous formats, even at higher compression.
Hardware supporting ASTC has achieved sufficient enough market share that developers should seriously consider how to leverage it in their titles: to improve quality, decrease storage size, or both. This is especially true in titles that require a high enough level of graphics hardware such that ASTC is a given.
An Approach to Compressing Assets
For your product, you need to decide overall, as well as per asset, whether quality (vs the raw asset) or shrinking the file size is most important. More than likely, you will pick something in between. You should have at least a high design goal in mind for your project before starting to look at individual textures.
Finding the Best Format
With so many texture compression standards and tools, how to find the best match for each texture seems a bit daunting for existing large-scale projects.
Don’t Forget Screen Size
Historically, developers would either target larger desktop screens or smaller mobile screens. Today, you must think carefully about your market. While many phones are higher and higher resolution, the visual impact of extremely high resolution textures may be small. However, with the addition of HDMI, you could be running on a 50″ 1080P television, where pixels are large once again.
Developers porting to mobile devices may immediately look to cut down texture resolution first as a space saving method. But before you shrink the resolution of your textures, consider modern device screens. Then consider whether you want to use higher compression on larger textures where artifacts might be noticed less, or go with lower resolution and lower compression with fewer visual issues: a drop in resolution means 1/4 the data, but could lose key detail. In striking a balance, you might push for lower bit rates and be more flexible with what artifacts you are willing to accept.
Reducing File Size Further
File size is critical with modern content that can be a gigabyte or more in size. Thus the on-the-wire, on-disk and in RAM sizes are all key. How can we deal with these topics?
Transcoding
One alternate method that has been used in the industry is to compress assets with something like JPEG, tuning for a particular file-size reduction and trying to not trade off much quality. Assets are sent over the wire in that form, and transcoded to the optimal GPU format for the device either at first run or on-demand. That is a reasonable approach on desktop platforms, but on mobile devices the transcode can be more costly in time and battery. Plus there are additional, possibly undesirable, quality issues both starting with JPEG and resulting from a speed-tuned «fast encoder».
With the coming of ASTC, developers now have a wider range of compression bit rates, and should evaluate dropping ASTC bit rate (and quality) on assets before considering adding significant extra complexity with a secondary encoding tools and loading/transcoding process.
Packaging
A second approach is to experiment with different content packaging of post-codec content. Some presentations have noted better-than-JPEG sizes achieved using ZIP or LZW compression as a second pass. Decompression on the client is still required but it should be an order of magnitude or two faster than any transcoding process.
In quick testing, we used a tiny set of example ASTC textures (the same used in the next chapter) and compressed them with standard ZIP compression. The result was compelling: just over 20MB of total texture data was reduced to a 9MB zip file.
Assuming you pick texture compression that fits into memory limits well enough, layering standard compression on top can make a difference in both on-the-wire transmission bandwidth as well as on-disk storage. So this is a new wrinkle to factor in: if you can push compression enough to fit your RAM footprint, you may be able to use LZW or ZIP as a final step to achieve file size goals.
Example Compression Testing
To better discuss the effects of different codecs on content, we performed a batch compression run against a small set of textures and assigned a visual image quality (IQ) rating to each. We then considered which compression format seemed best for quality, gave a balance of quality and compression, or delivered a higher level of compression without resulting in extreme artifacts.
In this section we present tables of the acquired data along with some samples of the resulting textures using two of the tested codec variants. The presented textures show the same region under a high zoom to provide a direct visual comparison of the different compression methods.
The tables provide the details and evaluation of the batch runs on each texture for each of the tested compressors. The data includes: the image quality rating for each codec, some brief notes as to the rating (where comparisons are drawn to the original/raw image), and information on each codec in terms of bits per pixel and improved size if we were to compare to some base/assumed DXT format compression.
Как ускорить BlueStacks, если он тормозит
Сам по себе эмулятор Блюстакс не слишком требователен к ПК, потому может запуститься даже на старых системах. Но далеко не всегда он работает стабильно. Нередко у пользователей наблюдаются проблемы со стабильностью, вылеты и зависания в играх. Ситуация довольно неприятная, но ее можно избежать. Из этой статьи вы узнаете, как ускорить BlueStacks даже на слабых компьютерах и ноутбуках.
Руководство
Минимальные и рекомендуемые системные требования для работы эмулятора Блюстакс мы разбирали в отдельной статье. Но если сильно сократить эту информацию, то они довольно низкие:
Теперь давайте разберемся, как можно оптимизировать BlueStacks, чтобы программа работала быстрее. Самый действенный способ – снижение параметров виртуального устройства. Делается это следующим образом:
Скорее всего, после такой настройки BlueStacks перестанет тормозить. Но если глюки наблюдаются, то избавиться от них помогут несколько полезных советов.
Советы по повышению производительности
Если лаги и нестабильная работа Блюстакс не исчезли, рекомендуем поочередно:
А если система в целом работает медленно, то попробуйте дефрагментацию жесткого диска (HDD). Для твердотельного накопителя (SSD) в данной процедуре практически нет необходимости.
Если вы воспользуетесь рекомендациями из нашей статьи, то оптимизируете работу Android-эмулятора даже для слабых компьютеров и ноутбуков.
Адаптивное масштабируемое сжатие текстур (ASTC) это с потерями блочный сжатие текстуры алгоритм разработан Jørn Nystad et al. из ARM Ltd. и AMD. [1]
Полная информация об ASTC была впервые публично представлена на конференции High Performance Graphics 2012 в статье Olson et al. под названием «Адаптивное масштабируемое сжатие текстур» [2]
ASTC был принят как официальное расширение для обоих OpenGL и OpenGL ES посредством Хронос Групп 6 августа 2012 г. [3]
Содержание
Поддержка оборудования
В Linux все драйверы Gallium 3D имеют резервное программное обеспечение с 2018 года, поэтому ASTC можно использовать на любом графическом процессоре AMD Radeon. [6]
Обзор
Для кодирования разных ресурсов часто требуются разные цветовые форматы. ASTC поддерживает широкий выбор входных форматов, включая только яркость, альфа-яркость, RGB, RGBA и режимы, оптимизированные для нормалей поверхности. Таким образом, разработчик может выбрать оптимальный формат без необходимости поддерживать несколько различных схем сжатия.
Выбор скорости передачи данных и цветового формата не ограничивает друг друга, поэтому можно выбирать из большого количества комбинаций.
Несмотря на такую гибкость, ASTC обеспечивает лучшее отношение пикового сигнала к шуму, чем PVRTC, S3TC, и ETC2 при измерении при 2 и 3,56 бит на тексель. [2] Для текстур HDR он дает результаты, сопоставимые с BC6H при 8 битах на тексель. [2]
Поддерживаемые цветовые форматы
| Формат кодирования | Описание |
|---|---|
| L | Только яркость |
| ЛА | Яркость с прозрачностью |
| L + A | Яркость с некоррелированной прозрачностью |
| X + Y | Нормали поверхности |
| RGB | Полноцветный |
| XY + Z | Нормали к поверхности с некоррелированными Z |
| RGBA | Полный цвет с прозрачностью |
| RGB + A | Полный цвет с некоррелированной прозрачностью |
Каждый из них может быть закодирован как низкий или высокий динамический диапазон. Кодировщик выбирает цветовые форматы независимо для каждого блока изображения.
Последовательность 2D-блоков и скорость передачи данных
Текстуры ASTC сжимаются с использованием фиксированного размера блока 128 бит, но с переменным размером блока в диапазоне от 4×4 текселей до 12×12 текселей. Таким образом, доступные битовые скорости варьируются от 8 бит на тексель до 0,89 бит на тексел с небольшими шагами между ними.
| Отпечаток блока | Битрейт | Приращение |
|---|---|---|
| 4×4 | 8.00 | 25% |
| 5×4 | 6.40 | 25% |
| 5×5 | 5.12 | 20% |
| 6×5 | 4.27 | 20% |
| 6×6 | 3.56 | 14% |
| 8×5 | 3.20 | 20% |
| 8×6 | 2.67 | 5% |
| 10×5 | 2.56 | 20% |
| 10×6 | 2.13 | 7% |
| 8×8 | 2.00 | 25% |
| 10×8 | 1.60 | 25% |
| 10×10 | 1.28 | 20% |
| 12×10 | 1.07 | 20% |
| 12×12 | 0.89 |
В приведенной выше таблице столбец «Приращение» показывает дополнительную память, необходимую для хранения текстуры с использованием этой скорости передачи данных, по сравнению со следующей наименьшей скоростью. Посадочные места блока представлены как ширина x высота.
Отпечатки 3D-блоков и скорость передачи данных
3D-текстуры ASTC сжимаются с использованием фиксированного размера блока 128 бит, как для 2D, но с переменным размером блока в диапазоне от 3x3x3 текселей до 6x6x6 текселей. Таким образом, доступные битовые скорости варьируются от 4,74 бит на тексель до 0,59 бит на тексель с небольшими шагами между ними.
| Отпечаток блока | Битрейт | Приращение |
|---|---|---|
| 3x3x3 | 4.74 | 33% |
| 4x3x3 | 3.56 | 33% |
| 4x4x3 | 2.67 | 33% |
| 4x4x4 | 2.00 | 25% |
| 5x4x4 | 1.60 | 25% |
| 5x5x4 | 1.28 | 25% |
| 5x5x5 | 1.02 | 20% |
| 6x5x5 | 0.85 | 20% |
| 6x6x5 | 0.71 | 20% |
| 6x6x6 | 0.59 |
Посадочные места блока представлены как ширина x высота x глубина.




