Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> squish cs nvtt, Сжатие DXT 
:(
    Опции темы
Jeka178RUS
Дата 9.8.2013, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 3.9.2012

Репутация: нет
Всего: нет



Добрый день! Для сжатия текстур в формате DXT Я нашел две библиотеки: squish и nvtt

И в ходе экспериментов обнаружил что nvtt существенно быстрее, я решил написать небольшой тест для наглядности и результаты меня сильно удивили: NVIDIA сжимает текстуры в 15 раз быстрее о_0.

В ходе теста я сжимал несколько файлов двумя библиотеками с различными параметрами качества и выводил в консоль время затраченное каждой либой:
Цитата

Test file "alpha.png"
Quality 1
NVIDIA 82
SQUISH 23

Quality 2
NVIDIA 90
SQUISH 33

Quality 3
NVIDIA 93
SQUISH 34


Test file "img.png"
Quality 1
NVIDIA 151
SQUISH 286

Quality 2
NVIDIA 1033
SQUISH 4166

Quality 3
NVIDIA 1038
SQUISH 4169


Test file "lenna.png"
Quality 1
NVIDIA 80
SQUISH 140

Quality 2
NVIDIA 329
SQUISH 8316

Quality 3
NVIDIA 376
SQUISH 8264


Test file "plane.png"
Quality 1
NVIDIA 607
SQUISH 1704

Quality 2
NVIDIA 4589
SQUISH 60291

Quality 3
NVIDIA 4622
SQUISH 60720


Исходный код

Пораженный результатами я задаюсь вопросом все ли я делаю правильно и почему nvtt настолько производительнее (использование CUDA не существенно влияет на результат)? 
PM MAIL   Вверх
bsa
Дата 9.8.2013, 21:09 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Jeka178RUS, судя по названию nvtt - это разработка nvidia. Логично предположить, что она его оптимизировала.
PM   Вверх
Jeka178RUS
Дата 10.8.2013, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 3.9.2012

Репутация: нет
Всего: нет



Может я все таки что-то делают не так?
PM MAIL   Вверх
bsa
Дата 12.8.2013, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Jeka178RUS, если не секрет, а разве для тебя это имеет такое сильное значение? Почему текстуры нельзя пожать один раз предварительно?
PM   Вверх
Jeka178RUS
Дата 13.8.2013, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 3.9.2012

Репутация: нет
Всего: нет



Я пишу тулзу для работы с текстурами, бывает так что попадаются слишком большие текстуры или размер текстур не степень двойки, тогда в ход идет моя тулза в задачи которой входит распаковка внутреннего формата (много текстур в одном файле), проверка размеров текстур, при необходимости декомпрессия, масштабирование, генерация mip уровней, сжатие и запаковка обратно.

Инструмент конечно не реального времени, но 5 секунд против 60, существенная разница, да и любопытно.
PM MAIL   Вверх
bsa
Дата 14.8.2013, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Jeka178RUS, а внутренний формат - это просто типа архива или атлас?
PM   Вверх
Jeka178RUS
Дата 14.8.2013, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 3.9.2012

Репутация: нет
Всего: нет



bsa, скорее контейнер, содержит служебную инфу и DXTn данные
PM MAIL   Вверх
bsa
Дата 15.8.2013, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



тогда используй nvtt и не парься.
PM   Вверх
Jeka178RUS
Дата 16.8.2013, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 3.9.2012

Репутация: нет
Всего: нет



bsa, так и сделал, правда декомпрессор все равно использую из squish, так как в nvtt он отсутствует в public API, а лезть за ним в недра библиотеки нет желания.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1025 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.