Войти
ПрограммированиеФорумГрафика

Корректный алгоритм декомпрессии *.dds (DXT5) (4 стр)

Страницы: 1 2 3 4 5 6 Следующая »
#45
16:27, 28 сен. 2012

DevilDevil
> чем сэмпить отличается от распаковывать ?
Ну вы даёте, господа.

DXT - формат хранения данных прямо в памяти видеокарты. Большинство карт умеют распаковывать DXT "на лету" при семплировании (читай наложении) текстуры. Алгоритм распаковки запатентован, и емнип нельзя его реализовывать в своём движке - можно только в голом виде отправлять данные на видяху. Профит заключается в восьмикратном уменьшении нагрузки на шину памяти - так как текстуры считываются и обрабатываются уже прямо в сжатом виде.


#46
16:38, 28 сен. 2012

RPG

с хрена ли он запатентован ?
все кому не лень распаковывают его на CPU
(только неправильно)

p.s. если "ресемлировать" всю текстуру, то получится "распаковка"
об этом и говорим, господа

#47
16:52, 28 сен. 2012

DevilDevil
> с хрена ли он запатентован ?
А вот так:
http://www.opengl.org/registry/specs/EXT/texture_compression_s3tc.txt

IP Status

    Contact S3 Incorporated (http://www.s3.com) regarding any intellectual
    property issues associated with implementing this extension.

    WARNING:  Vendors able to support S3TC texture compression in Direct3D
    drivers do not necessarily have the right to use the same functionality in
    OpenGL.

Или так: http://dri.freedesktop.org/wiki/S3TC

> все кому не лень распаковывают его на CPU
Нельзя без лицензирования реализовывать поддержку жатых текстур в своих рендерилках.
Распаковывать на проце - ради бога. В итоге ты же не рендеришь из сжатых текстур.

> "ресемлировать" всю текстуру
Собстенно, видуха этого и не делает. Понадобились пиксели - выбрали конкретный блок, посчитали пиксели блока. Все сразу, или один конкретный - зависит от железяки. В принципе, можно предполагать, что для эффективности всяких фильтраций будет декодирован весь блок.
В текстурном кеше остается лежать исходный жатый блок, если не врут эти товарищи http://fileadmin.cs.lth.se/graphics/mike/papers/doggett12-tc.pdf

#48
16:59, 28 сен. 2012

RPGman

это всё прекрасно
но:
1) я не являюсь производителем видеокарт
2) всякие там патентные лицензии наверняка тысячу раз истекли, потому как dxt был изобретён в прошлом тысячелетии
3) вся эта хрень не имеет никакого отношения к нашей ветке


посему вопросы актуальны
у кого что выдают утилиты ?

#49
17:08, 28 сен. 2012

DevilDevil
> 3) вся эта хрень не имеет никакого отношения к нашей ветке
Абзац про то, как видуха оперирует жатыми текстурам - хрень?

#50
17:12, 28 сен. 2012

RPGman

хрень - вопрос лицензий в данном контексте
а то как рендерится dxt-текстура давным давно многим известна

тут суть в том, как она запакованные данные распаковывает в элементы палитры

#51
17:21, 28 сен. 2012

DevilDevil
> как она запакованные данные распаковывает в элементы палитры
lookup table не пакована, о какой пакованой палитре речь?
Алгоритм интерполяции опорных цветов всем известен и один и тот же. Любую разницу в младшем бите цветовой компоненты можно тупо списать на правила округления, алгоритма оно не меняет.

#52
17:25, 28 сен. 2012

RPGman

меня всегда удивляло твоё авторитетное мнение на вопросы, которые ты вообще не понимаешь

для тех кто в танке, алгоритмы DXT делят изображения на блоки 4x4, и занимаются "сжатием" отдельно цветов, и отдельно альфа

как получаются цвета.
есть два 16 битных (5-6-5) цвета. Они распаковываются и аппроксимируются. Получается палитра.
Палитра для цвета состоит всего из 4х цветов. Каждому пикселю в итоге назначается индекс  из этой палитры (от 0 до 3)

Альфа сжимается похожим образом. Только ей дали больше точности.
Берётся 2 байтовых значения и аппроксимируются. Получается палитра уже из 8 элементов.
и там уже все пиксели имеют альфу по индексу от 0 до 7

p.s. разброс большой. надо разобраться в этом "говне"

#53
17:35, 28 сен. 2012

DevilDevil
> которые ты вообще не понимаешь
Зато ты у нас спец отличать правильный алгоритм от неправильного.

> p.s. разброс большой. надо разобраться в этом "говне"
Ладно, я тебе тогда подкину еще одну годную тему.
Давай ты на досуге порассуждаешь про корректность алгоритмов распаковки mp3. А то, панимаешь, mpg123 дает один файл, lame дает другой файл. Надо в это говне разобраться! Кто-то же неправ, и только DevilDevil знает истину!

#54
18:11, 28 сен. 2012

RPGman

тут великим знатоком не нужно быть
DXT создан для видео карт. И видеокарты должны распаковывать правильно
любые результаты, отличающиеся от хардварной распаковки - есть неправильно

* если вдруг не понятно

#55
18:12, 28 сен. 2012

RPGman
+1
Ему бесполезно что либо объяснять, он упрямый и никого не слушает. Проще забить.

DevilDevil
Можно fc юзать для сравнения.
Разницы не обнаружено.
GeForce GTX560

#56
18:16, 28 сен. 2012

Executor
> Ему бесполезно что либо объяснять, он упрямый и никого не слушает. Проще
> забить.

я слушаю профессионалов своего дела
а разных флеймеров и лузеров я действительно не слушаю

Executor
> Можно fc юзать для сравнения.
> Разницы не обнаружено.
> GeForce GTX560

расшифруй

#57
18:52, 28 сен. 2012

DevilDevil
> я слушаю профессионалов своего дела
> а разных флеймеров и лузеров я действительно не слушаю

Череп не жмёт, профессионал? :)

> расшифруй

fc - стандратная виндовая штука для сравнения файлов
http://technet.microsoft.com/en-us/library/bb490904.aspx
Ей сравнил файлы, разницы между GPU и созданными нету.

#58
19:26, 28 сен. 2012

Executor
> Череп не жмёт, профессионал? :)

слава богу нет
всё ништяк


Executor
> fc - стандратная виндовая штука для сравнения файлов
> http://technet.microsoft.com/en-us/library/bb490904.aspx
> Ей сравнил файлы, разницы между GPU и созданными нету.

между чем созданными ?

сравнивать нужно отчёты.
"color report.txt" и "GPU color report.txt"
"alpha report.txt" и "GPU alpha report.txt"

#59
19:35, 28 сен. 2012

Вообще говоря, это алгоритм сжатия с потерями и нужно сравнивать не то, насколько отличаются файлы или алгоритмы распаковки, а то, насколько эффективна упаковка с использованием параметра, называемого PSNR (Peak Signal to Noise Ratio). Этот коэффициент определяет, насколько хорошо упаковщик справился с задачей, nvidia утверждает, что их texture packer в этом самый лучший.

А распаковка, господа хорошие, вообще вас не должна волновать, она происходит аппаратно, и это уже головная боль производителя видеокарт, как это делать. Без лицензионных отчислений патентообладателю на использование этого алгоритма можно и вовсе закрыть тему. Кто-то накостылял свой алгоритм распаковщика - и понеслось, а отличие на самом деле в каждом сотом байте и то в альфа-канале.

Лучше сравните PSNR разных распаковщиков на одном и том же оригинале. Вопрос в том, кто накосячиол, отпадёт сам собой.

Страницы: 1 2 3 4 5 6 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.