реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Сжатие картинки, DCT, Хаффман
RHnd
сообщение Oct 26 2007, 15:04
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Стоит задача сжать картинку 2048x1024x8bit (оттенки серого) и передать ее. Соответствие стандартам не требуется, т.к. на приемном конце стоит наша же аппаратура, разжимающая обратно в bmp, все упирается в быстродействие и степень сжатия.
Решил делать нечто jpeg'ообразное - DCT, RLE и Хаффман. Далее пошли вопросы:
1) Может я что-то упускаю и есть способы быстрее/лучше/проще для решения задачи? В частности, слышал, что вместо Хаффмана можно использовать алгоритм арифметик (я его, правда, не знаю smile.gif). На сколько это будет сложнее/дольше/лучше?
2) Как наиболее быстро сделать DCT? В частности, слышал про какой-то метод AA&N, который вроде хороший, но гугл мне тут не сильно помог. sad.gif И сопутствующий вопрос: как уж говорил, входная картинка - 8 бит на пиксель. А что с результатом DCT - какой там диапазон выходных значений?
3) Как на плисине попроще и побыстрее сделать алгоритм Хаффмана? Может, отправите к примерам выполнения?
Go to the top of the page
 
+Quote Post
Mig&L
сообщение Oct 27 2007, 04:53
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 107
Регистрация: 1-07-07
Пользователь №: 28 823



смотрите :
http://www.opencores.org/projects.cgi/web/jpeg/overview
http://www.opencores.org/projects.cgi/web/...ystems/overview
Go to the top of the page
 
+Quote Post
RHnd
сообщение Oct 27 2007, 07:21
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(Mig&L @ Oct 27 2007, 08:53) *

Спасибо. Первый я уже знаю, а вот второй не видел еще. smile.gif Вот только первый достаточно медленный, а у второго указания на скорость не нашел. Просто исходникам уже 5 лет, с тех пор ничего нового не сделано в этой области?
Go to the top of the page
 
+Quote Post
blackfin
сообщение Oct 27 2007, 07:29
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(RHnd @ Oct 27 2007, 11:21) *
Первый я уже знаю, а вот второй не видел еще.
Вот еще: JPEG compression core
Go to the top of the page
 
+Quote Post
RHnd
сообщение Oct 27 2007, 11:01
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(blackfin @ Oct 27 2007, 11:29) *
Вот еще: JPEG compression core

Так там же корка платная. Или вы предлагаете документацию посмотреть?
Go to the top of the page
 
+Quote Post
Mig&L
сообщение Oct 28 2007, 07:19
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 107
Регистрация: 1-07-07
Пользователь №: 28 823



быстро - медленно, это относительно, какую скорость Вы хотите достичь?
Go to the top of the page
 
+Quote Post
RHnd
сообщение Oct 28 2007, 18:00
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(Mig&L @ Oct 28 2007, 11:19) *
быстро - медленно, это относительно, какую скорость Вы хотите достичь?

2048x1024x8 бит пожать в примерно jpeg по трудозатратам на циклоне 2 на 35 тысяч speed grade -7 желательно меньше 0.5 секунды.
Go to the top of the page
 
+Quote Post
Mig&L
сообщение Oct 29 2007, 07:05
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 107
Регистрация: 1-07-07
Пользователь №: 28 823



video_compression_systems на опенкорах справляется и умещается
в spartan3s400, надо только сравнить с циклоном
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Oct 29 2007, 10:26
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(RHnd @ Oct 28 2007, 21:00) *
2048x1024x8 бит пожать ... желательно меньше 0.5 секунды.

Раз есть столько времени - может еще скажете до кучи пропускную способность канала, может быть получится все проще.
Go to the top of the page
 
+Quote Post
анатолий
сообщение Oct 29 2007, 14:40
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 10-12-05
Из: Украина
Пользователь №: 12 052



Можно попробовать сжатие с вейвлет-преобразованием -
должно получиться сильнее и красивее, чем с DCT.
Это как JPEG2000.
Но, к сожалению, для него нужен буфер побольше,
который в ПЛИС может и не влезть.
Насчет пропускной способности - это смотря как плотно сжимать.
Если не более чем в 5 раз, то через вейвлеты фильтровать можно только по строкам
- то и совсем без буфера получится.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Oct 29 2007, 15:25
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(Mig&L @ Oct 29 2007, 11:05) *
video_compression_systems на опенкорах справляется и умещается
в spartan3s400, надо только сравнить с циклоном

Спасибо, буду смотреть и разбираться. smile.gif

Цитата(DmitryR @ Oct 29 2007, 14:26) *
Раз есть столько времени - может еще скажете до кучи пропускную способность канала, может быть получится все проще.

Какого канала? Передачи информации? Толком не знаю, этой частью проекта не я занимаюсь. Требования по времени обусловлены требованием к готовности приема следующего кадра - пожать, записать на носитель, освободить буфер для следующего кадра. Максимальное время - 1 секунда (да и то много), запись на носитель примерно 2МБ/сек. Соответственно, если 2МБ картинки пожмется в 200-500 кил за 0.5 секунды, то я в требования укладываюсь.
А передача с носителя по каналу происходит в другой момент времени.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Oct 30 2007, 08:05
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(RHnd @ Oct 29 2007, 18:25) *
Соответственно, если 2МБ картинки пожмется в 200-500 кил за 0.5 секунды, то я в требования укладываюсь.

Знаете, 200 и 500 килобайт - это не одно и то же. 200К - это в 10 раз, и это точно JPEG или wavelet. 500K - это вчетверо, и от типа картинки можно попробовать lossless.
Go to the top of the page
 
+Quote Post
анатолий
сообщение Oct 30 2007, 10:02
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 10-12-05
Из: Украина
Пользователь №: 12 052



Цитата
Соответственно, если 2МБ картинки пожмется в 200-500 кил за 0.5 секунды, то я в требования укладываюсь.

Такую задачу можно и на микропроцессоре решить.
Взять, к примеру, фотоаппарат.http://electronix.ru/forum/style_images/russian_butt/folder_post_icons/icon6.gif
Go to the top of the page
 
+Quote Post
[sER]
сообщение Oct 30 2007, 16:26
Сообщение #14


PCB_developer
***

Группа: Свой
Сообщений: 209
Регистрация: 7-07-05
Пользователь №: 6 622



буквально после прочтения темы на глаза попалась дока, может пригодится
Прикрепленные файлы
Прикрепленный файл  vid.pdf ( 384.57 килобайт ) Кол-во скачиваний: 131
 


--------------------
Go to the top of the page
 
+Quote Post
RHnd
сообщение Oct 30 2007, 17:06
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(DmitryR @ Oct 30 2007, 12:05) *
Знаете, 200 и 500 килобайт - это не одно и то же. 200К - это в 10 раз, и это точно JPEG или wavelet. 500K - это вчетверо, и от типа картинки можно попробовать lossless.

Речь, конечно, скорее о 200, про 500 я погорячился. smile.gif
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 13th July 2025 - 20:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01483 секунд с 7
ELECTRONIX ©2004-2016