Перейти к содержанию
    

Народ.Всем привет!Мне нужно реализовать вейвлет-преобразование 9/7 на vhdl.Помогите кто чем может.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ.Всем привет!Мне нужно реализовать вейвлет-преобразование 9/7 на vhdl.Помогите кто чем может.
Вот первое, что на это сказал google - http://kondor.etf.bg.ac.yu/~dejaniv/projec...wt/DWT_VHDL.htm

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ.Всем привет!Мне нужно реализовать вейвлет-преобразование 9/7 на vhdl.Помогите кто чем может.

 

А это используется в рамках како-то задачи(если да, то интересно было бы узнать какой)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ.Всем привет!Мне нужно реализовать вейвлет-преобразование 9/7 на vhdl.Помогите кто чем может.

 

А это используется в рамках како-то задачи(если да, то интересно было бы узнать какой)?

 

совершенно верно. это используется для внедрения цифрового водяного знака в bmp изображение.

 

 

 

Эту ссылку я тоже естественно находил.Но там во-первых:вейвлет-преобразование 5/3 какого-то Le Galle

во-вторых преобразуется черно-белое изображение с оттенками серого. А мне надо цветную bmp. в-третьих проект был написан под altera ,поэтому Xilix7(я работаю в нем) ругается и не компилирует.

Изменено пользователем 4e4eH

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Просветите меня пожалуйста...

9/7 это что есть такое:)

и какой у вас материнский вейвлет?

если мне не изменяет память, то в-преобразование - это простой полуполосный фильтр... реализуемый довольно просто.

если разложение в вейвлет пакет - тоже самое по сути...

или я чего то не понимаю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Просветите меня пожалуйста...

9/7 это что есть такое:)

и какой у вас материнский вейвлет?

если мне не изменяет память, то в-преобразование - это простой полуполосный фильтр... реализуемый довольно просто.

если разложение в вейвлет пакет - тоже самое по сути...

или я чего то не понимаю?

 

9/7 или 5/3 это длины синтезирующих (ну анализирующих соответственно) фильтров верхних и нижних частот.

Вейвлет преобразование ничто иное (в таком представлении), как фильтрация двумя фильтрами с прореживанием. Проблема только одна это работа с плавающей точкой, но если использовать фильтры 5/3 от JPEG2000, то можно сделать преобразование целое в целое. Алгоритм реализуется элементарно, естественно для обработки цветных изображений надо обработать каждую компоненту.

 

Фильтрация – это свертка, а уж как сделана свертка можно взять и из Альтеры, творчески осмыслить и доделать, тут я согласен Maksya вы уже товарищ ленитесь...

 

фильтры 5/3

синтезирующие

Highpass (-1 -2 6 -2 -1)/8

Lowpass (1 2 1)/2

 

анализирующие

Highpass (-1 2 -1)/2

Lowpass (-1 2 6 2 -1)/8

Изменено пользователем Golikov A.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Угу, с вейвлетами все выглядит просто до тех пор, пока нет достаточно жестких требований по скорости и по количеству используемых ресурсов. Как только надо поместиться в выбранную FPGA с определенным быстродействием так сразу и начинаются танцы с бубном, поскольку внутренней памяти мало, а изображение большое. Таким образом для полнокадрового вейвлета изображения в разрешении 720x576 необходимо выполнить каких-нибудь 14 миллионов умножений для пяти уровней декомпозиции. Далее умножаем это дело на три для каждой цветовой плоскости и получаем абсолютно нетривиальную задачу по управлению пинг-понг буферами и остальными обслуживающими структурами. После этого стоит вспомнить, что 720x576 это очень маленькое разрешение и что реально возникает необходимость обработки гораздо более "мегапиксельных" структур.

 

Учитывая вышеизложенное, не получится сделать желаемое малой кровью :) Все равно помучиться придется очень серьезно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Угу, с вейвлетами все выглядит просто до тех пор, пока нет достаточно жестких требований по скорости и по количеству используемых ресурсов. Как только надо поместиться в выбранную FPGA с определенным быстродействием так сразу и начинаются танцы с бубном, поскольку внутренней памяти мало, а изображение большое. Таким образом для полнокадрового вейвлета изображения в разрешении 720x576 необходимо выполнить каких-нибудь 14 миллионов умножений для пяти уровней декомпозиции. Далее умножаем это дело на три для каждой цветовой плоскости и получаем абсолютно нетривиальную задачу по управлению пинг-понг буферами и остальными обслуживающими структурами. После этого стоит вспомнить, что 720x576 это очень маленькое разрешение и что реально возникает необходимость обработки гораздо более "мегапиксельных" структур.

 

Учитывая вышеизложенное, не получится сделать желаемое малой кровью :) Все равно помучиться придется очень серьезно.

 

Никто не мешает пойти по пути ЖПЕГОВ, разбить изображение на подобласти, поставить специализированные ДСП, для расчета сверток с фильтрами, у них есть спец генераторы адреса, и они БПФ делают очень быстро! Далее можно распараллелить работу по каналам, то есть сделать 3 идентичных блока и каждый фигачит свой канал. Все вопрос цены устройства, а не геморроя. Просто быстрая цифровая обработка сигнала – весьма простая на мой взгляд задача, нет мучений с ЦАП и АЦП, нет измерительных схем, калибровки, прочей байды что создает основной геморрой.

 

Что вы не найдете алгоритм цветного вейвлет преобразования, да еще реализуемого в плис это я вам даю 95% вероятности. 5 процентов на его изобретение в ближайшее время;)... Хотя насколько мне известно никто такой задачей не занят, даже чисто двумерное вейвлет преобразование, никому не интересно, все делают последовательный проходы горизонтальные и вертикальные.

 

Кстати почитайте обзор Рабани и какого то чувака из кодака ЖПЕГ2000, там показано как делать вейвлет преобразование без увеличения объема данных, и кстати достаточно быстро получается... Специально для устройств с малой памятью.

Изменено пользователем Golikov A.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Бродя по интернету вляпался вот в такую ссылку - http://www.autex.spb.ru/wavelet/ Может поможет чем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Угу, с вейвлетами все выглядит просто до тех пор, пока нет достаточно жестких требований по скорости и по количеству используемых ресурсов. Как только надо поместиться в выбранную FPGA с определенным быстродействием так сразу и начинаются танцы с бубном, поскольку внутренней памяти мало, а изображение большое. Таким образом для полнокадрового вейвлета изображения в разрешении 720x576 необходимо выполнить каких-нибудь 14 миллионов умножений для пяти уровней декомпозиции. Далее умножаем это дело на три для каждой цветовой плоскости и получаем абсолютно нетривиальную задачу по управлению пинг-понг буферами и остальными обслуживающими структурами. После этого стоит вспомнить, что 720x576 это очень маленькое разрешение и что реально возникает необходимость обработки гораздо более "мегапиксельных" структур.

 

Учитывая вышеизложенное, не получится сделать желаемое малой кровью :) Все равно помучиться придется очень серьезно.

 

ну это вы, уважаемый, малость передергиваете =)

по кр.мере, как нас в свое время учили в ВУЗе, вейвлеты тем и прекрасны, что на жесткую логику прекрасно ложатся. По сравнению с теми же DSProcessors, в которых, что МАС, что сдвиг - один диавол такт отъест.

взгляните хотя бы на коэф-ты которые привел Golikov A.:

фильтры 5/3

синтезирующие

Highpass (-1 -2 6 -2 -1)/8

Lowpass (1 2 1)/2

 

анализирующие

Highpass (-1 2 -1)/2

Lowpass (-1 2 6 2 -1)/8

т.о.:

Highpass (-1 -2 6 -2 -1)/8 == Highpass (-1 -(1<<1) (1<<1 + 1<<2) -(1<<1) -1) >> 3

и где тут умножители?!?

да, есть сумматоры(при нек-х коэф.) и элементы (т.н.) "+1" - для перевода в отр.число.

 

по поводу памяти: да, есть такое дело - полюбому внешнее ОЗУ вешать.. Но и тут не с нуля можно начинать - от того же Elphel можно позаимствовать контроллер SDRAM (притом он там чуть ли не 8канальный) - исходники к нему открыты.

 

ЗЫ: да и потом вопрошающий же сказал, что ему это для BMP =) так точ о какой производительности речь?:)

ЗЫЫ: 4e4eH, дерзай, и все получится ;-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А кто пробовал посмотреть на контроллер SDRAM от Филлипова? Несомненно - рабочее устройство - это рабочее устройство. Оно доказывает работоспособность всех его компонентов. Однако это абсолютно не доказывает, что взяв отдельный кусок кода из прошивки Филлипова можно по его образу и подобию сделать что-то свое. Код Андрея Филлипова отличается крайней оптимизированностью под его конкретную задачу. Его просто так переиспользовать не получится, придется конкретно перерабатывать. Плюс, необходимо помнить о GPL лицензии. Использование любой части кода под GPL лицензией требует публикации исходников всего устройства :(

 

Коеффициенты, приведенные уважаемым Golikov A. действительно целочисленные и не требуют никаких аппаратных извратов для своей реализации. Однако при внимательном изучении стандарта на JPEG2000 можно заметить, что использование этих фильтров рекомендуется только для безпотерьных реализаций, поскольку изображение, разложенное по этому базису и отквантованное может содержать дополнительные артефакты. Для работы в loosy режиме рекомендованы фильтры Добеши, обеспечивающие более качественную картинку для сжатия с потерями имеют нецелые коеффициенты в количестве 15 штук. Вот тут все и начинается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

согласен =)

да, вейвлеты Добеши действительно имеют "кривые" коэффициенты.

но человек же написал, что не для задач сжатия собирается применять.

 

а по поводу контроллера SDRAM: всё верно, но ведь можно и просто посмотреть как эту поликанальный engine замутить (принцип). А то с нуля как-то тоскливо разбираться (хотя не факт что быстрее).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Однако при внимательном изучении стандарта на JPEG2000 можно заметить...

 

 

Ну надо на самом деле задачу уточнять, тут же не задача сжатия как я понимаю... Хотя кто знает, с флотами в ПЛИС работать реально неудобно, но можно же и ДСП поставить, на то они и нужны... какой нить простенький ТМС

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Однако при внимательном изучении стандарта на JPEG2000 можно заметить...

 

 

Ну надо на самом деле задачу уточнять, тут же не задача сжатия как я понимаю... Хотя кто знает, с флотами в ПЛИС работать реально неудобно, но можно же и ДСП поставить, на то они и нужны... какой нить простенький ТМС

 

да-да!!! TI & XILINX - вот наша религия! :a14:

да тот же 672х при своих 250MГц планарном корпусе и цене выглядит очень привлекательно.

да и в сети больше вейвлетного можно на Си найти нежели на HDL.

.

ЗЫ: хотя не уловил нити: с чего это вдруг речь зашла о плавучке?!

теже DM64x - целочисленные, но их позиционируют на работу с видеоконтентом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...