Название: Помогите, кто знаком с Wavelet (Вейлет) преобразованием Отправлено: Danni от Февраль 24, 2011, 19:31 Пишу конвертер, для своего формата графических файлов (для текстур в общем).
Основной упор в сжатии сего формата делаю на дискретное вейлет преобразование (DWT). Только не нужно высказывать мысли по поводу нужности DWT в общем, да и своего формата в частности. Курил мануалы по этой теме до полного просветления, затем приступил к коду. Начал конечно с самых простых функций: x_n - возвращает нужный пиксель из переданной ей строки dwt_line - преобразует строку (сначала вычисляет все нечётные пиксели, затем чётные, и в конце сортирует чётные пиксели в начало строки) dwt_data - перебирает и преобразует все строки, затем столбцы Меня смущает два вопроса: правильность применения формул во второй функции и то, что низкочастотное изображение формируется в нижнем левом углу, а не в верхнем левом. Первый вопрос появился из-за небольших отличий в результатах применения формул из мануалов и моей реализации. Второй это даже не вопрос, это полный ступор - как такое могло вообще произойти? Может кто-то сталкивался с этим преобразованием? Есть ли подобные простые алгоритмы у кого? Выкладываю консольную программу и описанные выше три функции. Программа использует libgcc_s_dw2-1.dll, mingwm10.dll и QtCore4.dll. Форум всё-таки о Qt, поэтому dll не вложил, да и весят много. Программа читает файл input.tga преобразует и записывает результат в output.tga. Читает и пишет только несжатые TGA. |