4e4eh 0 June 27, 2006 Posted June 27, 2006 · Report post Народ.Всем привет!Мне нужно реализовать вейвлет-преобразование 9/7 на vhdl.Помогите кто чем может. Quote Share this post Link to post Share on other sites More sharing options...
maksya 0 June 27, 2006 Posted June 27, 2006 · Report post Народ.Всем привет!Мне нужно реализовать вейвлет-преобразование 9/7 на vhdl.Помогите кто чем может.Вот первое, что на это сказал google - http://kondor.etf.bg.ac.yu/~dejaniv/projec...wt/DWT_VHDL.htm Quote Share this post Link to post Share on other sites More sharing options...
_andrew_ 0 July 3, 2006 Posted July 3, 2006 · Report post Народ.Всем привет!Мне нужно реализовать вейвлет-преобразование 9/7 на vhdl.Помогите кто чем может. А это используется в рамках како-то задачи(если да, то интересно было бы узнать какой)? Quote Share this post Link to post Share on other sites More sharing options...
4e4eh 0 July 3, 2006 Posted July 3, 2006 (edited) · Report post Народ.Всем привет!Мне нужно реализовать вейвлет-преобразование 9/7 на vhdl.Помогите кто чем может. А это используется в рамках како-то задачи(если да, то интересно было бы узнать какой)? совершенно верно. это используется для внедрения цифрового водяного знака в bmp изображение. Эту ссылку я тоже естественно находил.Но там во-первых:вейвлет-преобразование 5/3 какого-то Le Galle во-вторых преобразуется черно-белое изображение с оттенками серого. А мне надо цветную bmp. в-третьих проект был написан под altera ,поэтому Xilix7(я работаю в нем) ругается и не компилирует. Edited July 3, 2006 by 4e4eH Quote Share this post Link to post Share on other sites More sharing options...
_andrew_ 0 July 4, 2006 Posted July 4, 2006 · Report post Просветите меня пожалуйста... 9/7 это что есть такое:) и какой у вас материнский вейвлет? если мне не изменяет память, то в-преобразование - это простой полуполосный фильтр... реализуемый довольно просто. если разложение в вейвлет пакет - тоже самое по сути... или я чего то не понимаю? Quote Share this post Link to post Share on other sites More sharing options...
Golikov 0 July 4, 2006 Posted July 4, 2006 (edited) · Report post Просветите меня пожалуйста... 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 Edited July 4, 2006 by Golikov A. Quote Share this post Link to post Share on other sites More sharing options...
v_mirgorodsky 0 July 5, 2006 Posted July 5, 2006 · Report post Угу, с вейвлетами все выглядит просто до тех пор, пока нет достаточно жестких требований по скорости и по количеству используемых ресурсов. Как только надо поместиться в выбранную FPGA с определенным быстродействием так сразу и начинаются танцы с бубном, поскольку внутренней памяти мало, а изображение большое. Таким образом для полнокадрового вейвлета изображения в разрешении 720x576 необходимо выполнить каких-нибудь 14 миллионов умножений для пяти уровней декомпозиции. Далее умножаем это дело на три для каждой цветовой плоскости и получаем абсолютно нетривиальную задачу по управлению пинг-понг буферами и остальными обслуживающими структурами. После этого стоит вспомнить, что 720x576 это очень маленькое разрешение и что реально возникает необходимость обработки гораздо более "мегапиксельных" структур. Учитывая вышеизложенное, не получится сделать желаемое малой кровью :) Все равно помучиться придется очень серьезно. Quote Share this post Link to post Share on other sites More sharing options...
des00 27 July 5, 2006 Posted July 5, 2006 · Report post 1080HDp60 рулит!!! а затем 2К, 4К Quote Share this post Link to post Share on other sites More sharing options...
Golikov 0 July 5, 2006 Posted July 5, 2006 (edited) · Report post Угу, с вейвлетами все выглядит просто до тех пор, пока нет достаточно жестких требований по скорости и по количеству используемых ресурсов. Как только надо поместиться в выбранную FPGA с определенным быстродействием так сразу и начинаются танцы с бубном, поскольку внутренней памяти мало, а изображение большое. Таким образом для полнокадрового вейвлета изображения в разрешении 720x576 необходимо выполнить каких-нибудь 14 миллионов умножений для пяти уровней декомпозиции. Далее умножаем это дело на три для каждой цветовой плоскости и получаем абсолютно нетривиальную задачу по управлению пинг-понг буферами и остальными обслуживающими структурами. После этого стоит вспомнить, что 720x576 это очень маленькое разрешение и что реально возникает необходимость обработки гораздо более "мегапиксельных" структур. Учитывая вышеизложенное, не получится сделать желаемое малой кровью :) Все равно помучиться придется очень серьезно. Никто не мешает пойти по пути ЖПЕГОВ, разбить изображение на подобласти, поставить специализированные ДСП, для расчета сверток с фильтрами, у них есть спец генераторы адреса, и они БПФ делают очень быстро! Далее можно распараллелить работу по каналам, то есть сделать 3 идентичных блока и каждый фигачит свой канал. Все вопрос цены устройства, а не геморроя. Просто быстрая цифровая обработка сигнала – весьма простая на мой взгляд задача, нет мучений с ЦАП и АЦП, нет измерительных схем, калибровки, прочей байды что создает основной геморрой. Что вы не найдете алгоритм цветного вейвлет преобразования, да еще реализуемого в плис это я вам даю 95% вероятности. 5 процентов на его изобретение в ближайшее время;)... Хотя насколько мне известно никто такой задачей не занят, даже чисто двумерное вейвлет преобразование, никому не интересно, все делают последовательный проходы горизонтальные и вертикальные. Кстати почитайте обзор Рабани и какого то чувака из кодака ЖПЕГ2000, там показано как делать вейвлет преобразование без увеличения объема данных, и кстати достаточно быстро получается... Специально для устройств с малой памятью. Edited July 5, 2006 by Golikov A. Quote Share this post Link to post Share on other sites More sharing options...
maksya 0 July 5, 2006 Posted July 5, 2006 · Report post Бродя по интернету вляпался вот в такую ссылку - http://www.autex.spb.ru/wavelet/ Может поможет чем. Quote Share this post Link to post Share on other sites More sharing options...
Doka 5 July 8, 2006 Posted July 8, 2006 · Report post Угу, с вейвлетами все выглядит просто до тех пор, пока нет достаточно жестких требований по скорости и по количеству используемых ресурсов. Как только надо поместиться в выбранную 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, дерзай, и все получится ;-) Quote Share this post Link to post Share on other sites More sharing options...
v_mirgorodsky 0 July 9, 2006 Posted July 9, 2006 · Report post А кто пробовал посмотреть на контроллер SDRAM от Филлипова? Несомненно - рабочее устройство - это рабочее устройство. Оно доказывает работоспособность всех его компонентов. Однако это абсолютно не доказывает, что взяв отдельный кусок кода из прошивки Филлипова можно по его образу и подобию сделать что-то свое. Код Андрея Филлипова отличается крайней оптимизированностью под его конкретную задачу. Его просто так переиспользовать не получится, придется конкретно перерабатывать. Плюс, необходимо помнить о GPL лицензии. Использование любой части кода под GPL лицензией требует публикации исходников всего устройства :( Коеффициенты, приведенные уважаемым Golikov A. действительно целочисленные и не требуют никаких аппаратных извратов для своей реализации. Однако при внимательном изучении стандарта на JPEG2000 можно заметить, что использование этих фильтров рекомендуется только для безпотерьных реализаций, поскольку изображение, разложенное по этому базису и отквантованное может содержать дополнительные артефакты. Для работы в loosy режиме рекомендованы фильтры Добеши, обеспечивающие более качественную картинку для сжатия с потерями имеют нецелые коеффициенты в количестве 15 штук. Вот тут все и начинается. Quote Share this post Link to post Share on other sites More sharing options...
Doka 5 July 9, 2006 Posted July 9, 2006 · Report post согласен =) да, вейвлеты Добеши действительно имеют "кривые" коэффициенты. но человек же написал, что не для задач сжатия собирается применять. а по поводу контроллера SDRAM: всё верно, но ведь можно и просто посмотреть как эту поликанальный engine замутить (принцип). А то с нуля как-то тоскливо разбираться (хотя не факт что быстрее). Quote Share this post Link to post Share on other sites More sharing options...
Golikov 0 July 13, 2006 Posted July 13, 2006 · Report post Однако при внимательном изучении стандарта на JPEG2000 можно заметить... Ну надо на самом деле задачу уточнять, тут же не задача сжатия как я понимаю... Хотя кто знает, с флотами в ПЛИС работать реально неудобно, но можно же и ДСП поставить, на то они и нужны... какой нить простенький ТМС Quote Share this post Link to post Share on other sites More sharing options...
Doka 5 July 13, 2006 Posted July 13, 2006 · Report post Однако при внимательном изучении стандарта на JPEG2000 можно заметить... Ну надо на самом деле задачу уточнять, тут же не задача сжатия как я понимаю... Хотя кто знает, с флотами в ПЛИС работать реально неудобно, но можно же и ДСП поставить, на то они и нужны... какой нить простенький ТМС да-да!!! TI & XILINX - вот наша религия! :a14: да тот же 672х при своих 250MГц планарном корпусе и цене выглядит очень привлекательно. да и в сети больше вейвлетного можно на Си найти нежели на HDL. . ЗЫ: хотя не уловил нити: с чего это вдруг речь зашла о плавучке?! теже DM64x - целочисленные, но их позиционируют на работу с видеоконтентом. Quote Share this post Link to post Share on other sites More sharing options...