shunix 0 5 августа, 2019 Опубликовано 5 августа, 2019 (изменено) · Жалоба Коллеги, помогите. Предыстория: Возникла необходимость передавать изображения/кадры в сжатом виде, а потом на том конце разворачивать их. На обеих сторонах обработка будет осуществляться с помощью ПЛИС. Я могу получить свёртку изображения через КИХ-фильтр (5х5). Соответственно ядро свёртки у меня есть. Вопрос: Можно ли, и главное как, мне на другом конце по свёртке и ядру получить исходное изображение? Если где-то алгоритм обратной свёртки уже описан, ткните пожалуйста носом в ссылку) PS. Не уверен что угадал с разделом, подходит и сюда и в ЦОС Изменено 5 августа, 2019 пользователем shunix Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Viktuar 0 5 августа, 2019 Опубликовано 5 августа, 2019 · Жалоба Странная идея использовать свертку. Сжимать изображения логично с помощью соответствующих алгоритмов, например, jpeg один из самых простых. А алгоритма обратной свертки, насколько я понимаю, не существует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GeorgK 1 5 августа, 2019 Опубликовано 5 августа, 2019 · Жалоба Почему не существует? Насколько помню, сводится к решению системы интегральных уравнений. При наличии аналитически заданного якобиана может сводиться к задаче поиска минимума (максимума) функции нескольких переменных. В форме физической реализации на лазере использовалось для восстановления расфокусированного изображения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quato_a 3 7 августа, 2019 Опубликовано 7 августа, 2019 · Жалоба Самое простое использовать JPEG сжатие. В нем на основе дискретного косинусного преобразования, уровня квантования и алгоритма huffman сможете сжать. В инете есть несколько реализаций jpeg энкодеров и декодеров. Иначе создавать что-то свое кастомное, велосипедное приведет только к потере времени. https://compression.ru/book/part2/part2__3.htm#_Toc448152511 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GermanN 0 10 августа, 2019 Опубликовано 10 августа, 2019 · Жалоба Если отвечать на вопрос о восстановлении начальной последовательности, а не о лучшем способе сжатия изображения, то ПФ - преобразование Фурье, ПФ(полученных данных) / ПФ(характеристики фильтра) и от полученного частного обратное ПФ Вам бы лучше к анархистам... Вам бы лучше в ЦОС... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 10 августа, 2019 Опубликовано 10 августа, 2019 · Жалоба Результат свертки (NxN) и (MxM) имеет габариты (N+M-1)x(N+M-1). О каком сжатии идет речь - совершенно не понятно. Похоже, очередной изобретатель треугольных колес путем распиливания квадратных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
count_enable 0 12 августа, 2019 Опубликовано 12 августа, 2019 · Жалоба Да, можно сжимать при помощи свёртки. Для этого придумали архитектуру под названием автоэнкодер. Сжатие будет с потерями, вычислительная сложность высокая, работать будет только на похожих типах изображений. Если натренировать автоэнкодер на портретах, а потом пережать например фотографию биокультуры под микроскопом, может получиться забавно. Но в принципе возможно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GermanN 0 13 августа, 2019 Опубликовано 13 августа, 2019 · Жалоба Дорогой ТС! Для начала об обращении свёртки: Небольшие свёртки можно обращать "прямо", отсылаю к классике: Айфичер, Джервис "Цифровая обработка сигналов. Практический подход" Гл.5 Корреляция и свёртка, пп "Идентификация систем", "Обращение свёртки" Свёртки побольше, как я уже написал, обращают при помощи ДПФ, находя поэлеметное частное от ДПФ полученных данных и ДПФ ядра, а после выполняя обратное ДПФ. Здесь, естественно, нужно следить за тем, что бы у ядра не было нулевых частотных компонентов, либо понимать что в этих точках информация потеряна, приравнивать частное нулю и осознавать что восстановленная последовательность не соответствует исходной. Теперь Вы, раз уж подняли волну, намекните, какую роль в сжатии изображения у Вас будет играть свёртка, да ещё такого корявенького размера? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shunix 0 13 августа, 2019 Опубликовано 13 августа, 2019 · Жалоба 1 hour ago, GermanN said: Дорогой ТС! Для начала об обращении свёртки: Небольшие свёртки можно обращать "прямо", отсылаю к классике: Айфичер, Джервис "Цифровая обработка сигналов. Практический подход" Гл.5 Корреляция и свёртка, пп "Идентификация систем", "Обращение свёртки" Свёртки побольше, как я уже написал, обращают при помощи ДПФ, находя поэлеметное частное от ДПФ полученных данных и ДПФ ядра, а после выполняя обратное ДПФ. Здесь, естественно, нужно следить за тем, что бы у ядра не было нулевых частотных компонентов, либо понимать что в этих точках информация потеряна, приравнивать частное нулю и осознавать что восстановленная последовательность не соответствует исходной. Теперь Вы, раз уж подняли волну, намекните, какую роль в сжатии изображения у Вас будет играть свёртка, да ещё такого корявенького размера? Спасибо всем за ответы. Попытаюсь объяснить что хочу. Есть коэффициенты числа по18 бит(ядро свёртки 5х5 25коэффициентов),есть КИХ фильтр(5х5) 24-го порядка. Получаю свёртку число 48 бит. Я думаю если я буду считывать свёртку 1 раз в 25 тактов то буду получать значения куда входят байты 25-ти пикселей(5х5). Похоже на сжатие в 25 раз. Далее передавать по Ethernet только значение свёртки. А на приёмнике вернутся от свёртки к исходным значениям пикселей(YCbCr 4:2:2) зная коэффициенты(ядро свёртки). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quato_a 3 13 августа, 2019 Опубликовано 13 августа, 2019 · Жалоба Не совсем ясно, как получаеться после двумерной свертки число 48 бит. Вот наглядный пример операции двумерной свертки - https://neurohive.io/ru/osnovy-data-science/glubokaya-svertochnaja-nejronnaja-set/ Одно значение/сэмпл/отсчет/пиксель, даже если и центральный, с выхода свертки не будет нести в себе всей информации. Хотя... если я правильно понимаю, то Вы хотите децимировать изображение, передать картинкой малого разрешения, а потом интерполировать. Тогда нужно: - децимировать выкидывая пиксели и строки, - отфильтровать (возможно, фильтром Ланцоша), - передать, - интерполировать до оригинального изображения дополняя нулями, - снова отфильтровать фильтром Ланцоша. Но в любом случае, результат интерполяции будет с большими потерями (значительно искажен относительно оригинала). Потренируйтесь в матлабе... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shunix 0 15 августа, 2019 Опубликовано 15 августа, 2019 · Жалоба On 8/13/2019 at 11:32 PM, quato_a said: Хотя... если я правильно понимаю, то Вы хотите децимировать изображение, передать картинкой малого разрешения, а потом интерполировать. Тогда нужно: - децимировать выкидывая пиксели и строки, - отфильтровать (возможно, фильтром Ланцоша), - передать, - интерполировать до оригинального изображения дополняя нулями, - снова отфильтровать фильтром Ланцоша. Но в любом случае, результат интерполяции будет с большими потерями (значительно искажен относительно оригинала). Потренируйтесь в матлабе... Спасибо, буду пробовать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Hale 1 18 августа, 2019 Опубликовано 18 августа, 2019 · Жалоба On 8/10/2019 at 6:46 PM, thermit said: Результат свертки (NxN) и (MxM) имеет габариты (N+M-1)x(N+M-1). О каком сжатии идет речь - совершенно не понятно. Похоже, очередной изобретатель треугольных колес путем распиливания квадратных. воистину. знание математики в собственной области конечно не панацея от инфантилизма и нежелания смотреть в гугль. Ну чем плоха реализация RLE, если вражеские форматы _peg ТЗ не позволяет. Надо же понимать что сила _peg не в преобразовании, а в нетривиальной обработке преобразованного. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 19 августа, 2019 Опубликовано 19 августа, 2019 · Жалоба В 12.08.2019 в 17:24, count_enable сказал: Да, можно сжимать при помощи свёртки. Для этого придумали архитектуру под названием автоэнкодер. Сжатие будет с потерями, вычислительная сложность высокая, работать будет только на похожих типах изображений. Если натренировать автоэнкодер на портретах, а потом пережать например фотографию биокультуры под микроскопом, может получиться забавно. Но в принципе возможно. Сжимать можно практически с помощью всего. Вот например - сжатие при помощи гидравлического пресса. Для этого придумали архитектуру... собственно гидравлический пресс. Сжатие, конечно будет с потерями. Но зато вычислительная сложность ~0. Работает на любых типах изображений. Правда, есть проблемы с расжатием. Зато если сжать ежа совместно с лягухой, получится довольно интересная картинка. Да. 15 часов назад, Hale сказал: воистину. знание математики в собственной области конечно не панацея от инфантилизма и нежелания смотреть в гугль. Ну чем плоха реализация RLE, если вражеские форматы _peg ТЗ не позволяет. Надо же понимать что сила _peg не в преобразовании, а в нетривиальной обработке преобразованного. Нынче это не модно. А раз не модно - значит фуфло. И пофигу, что в сети 99% картинок жпг и пнг. Будущее за истинно прогрессивными технологиями. Ога. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 4 24 сентября, 2019 Опубликовано 24 сентября, 2019 · Жалоба On 8/5/2019 at 3:23 AM, shunix said: Коллеги, помогите. Предыстория: Возникла необходимость передавать изображения/кадры в сжатом виде, а потом на том конце разворачивать их. На обеих сторонах обработка будет осуществляться с помощью ПЛИС. Я могу получить свёртку изображения через КИХ-фильтр (5х5). Соответственно ядро свёртки у меня есть. Вопрос: Можно ли, и главное как, мне на другом конце по свёртке и ядру получить исходное изображение? Если где-то алгоритм обратной свёртки уже описан, ткните пожалуйста носом в ссылку) PS. Не уверен что угадал с разделом, подходит и сюда и в ЦОС Свертка -- это фильтрация, а не сжатие. Вы неверный путь выбрали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться