Введение
1 Анализ архитектуры графических процессоров, современных форматов и алгоритмов сжатия текстур 12
1.1 Особенности текстурного сжатия 12
1.1.1 Основные требования к алгоритмам и форматам компрессии-декомпрессии текстур 14
1.1.2 Сжатие для ускорения загрузки 15
1.1.3 Качество и скорость сжатия 16
1.2 Ранние работы, связанные с текстурным сжатием 17
1.3 Семейство S3TC 19
1.3.1 Формат блока BC1 (S3TC/DXT1) 20
1.3.2 Особенности форматов BC6H и BC7 22
1.3.3 Формат блока BC7 24
1.4 Формат ASTC 27
1.4.1 Метод кодирования BISE 29
1.4.2 Прочие особенности 31
1.4.3 Формат блока ASTC 33
1.5 Анализ форматов сжатия текстур и особенностей алгоритмов сжатия 37
1.6 Обобщённая схема компрессии 38
1.7 Метрики ошибок сжатия 39
1.8 Существующие методы сжатия текстур в формате BC1 41
1.8.1 Быстрое сжатие 42
1.8.2 Метод ClusterFit 43
1.8.3 Алгоритм сжатия LSDxt 44
1.8.4 Сравнение качества 46
1.9 Существующие методы сжатия текстур в формате ASTC 47
1.9.1 Процедура компрессии для фиксированного типа блока 49
1.9.2 Процедура поиска наилучшего деления на регионы 50
1.10 Архитектура графического процессора 51
1.10.1 Модель вычислений OpenCL 52
1.10.2 Значимые отличия от классических идеализированных параллельных архитектур 54
1.11 Гетерогенные архитектуры 56
1.12 Выводы 59
2 Параллельный алгоритм сжатия текстур в формате BC1 61
2.1 Модификация алгоритма LSDxt 61
2.1.1 Модификация этапа сортировки 61
2.1.2 Отображение групп потоков на аппаратные SIMD-вектора 63
2.1.3 Расположение данных в локальной памяти 63
2.1.4 Использование регистровой памяти 66
2.2 Выводы 71
3 Межкадровая (динамическая) компрессия текстур 73
3.1 Стандарты и программные интерфейсы Direct3D и OpenGL 73
3.1.1 Графический конвейер Direct3D 11 74
3.2 Традиционный графический конвейер 75
3.3 Возможности межкадрового сжатия текстур в Direct3D и OpenGL 76
3.4 Графический конвейер с тайловой архитектурой 80
3.5 Выводы 83
4 Сжатие текстур с высокой глубиной цвета 84
4.1 Ограничения представления цвета с глубиной 8 бит 84
4.2 Критерий точности сохранения градиентных цветов 85
4.3 Модификация кодека gpu bc7 87
4.4 Выводы 89
5 Последовательно-параллельный алгоритм сжатия текстур в формате ASTC 91
5.1 Анализ работы кодека ASTC Evaluation Codec 91
5.1.1 Быстродействие в различных режимах 92
5.2 Адаптация алгоритма для работы в гетерогенной среде 93
5.2.1 Компиляция кода для архитектуры x64 94
5.2.2 Результаты профилирования производительности 94
5.2.3 Объединение блоков в пакеты 96
5.2.4 Компиляция во время исполнения 96
5.2.5 Изменение порядка этапов сжатия 97
5.3 Выбор размера пакета 99
5.4 Сравнение оригинального и предлагаемого кодеков 101
5.5 Выводы 102 Заключение 103
Литература 104


