|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.01.2013, 23:04 | #1 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Передача массива данных "сжатым" образом.
Всем еще раз доброго.
Есть некий массив (по факту фотография). Массив меняется время от времени. Иногда в нем меняется только какая-то часть иногда он меняется весь. Время изменения динамическое (может вообще не меняться). Я этот массив передаю в сеть. Пока что, скажем, раз в секунду. Поскольку сеть слабенькая, есть большое желание ужимать массив с незначительными потерями (допустакется) или передавать только его часть, ту которая изменилась. Поскольку массив может быть не маленьким (ну допустим фотка скажем 7000х7000 pixels, утрирую конечно но допустим...) проход по нему для определения может занять время. Хотелось бы знать какие есть алгоритмы, которые наиболее подошли бы для такого "сжатия". Если что предпочтительно на основе Виндовса. Как вообще лучше всего анализировать такой массив?
I'm learning to live...
|
30.01.2013, 23:21 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
тимвивер, например, передает кусками в принципе.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
31.01.2013, 14:36 | #3 |
Пользователь
Регистрация: 30.01.2013
Сообщений: 10
|
1) В каком формате хранится фотография?
2) Как передаётся массив? Полностью или только изменённая часть |
31.01.2013, 15:58 | #4 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
I'm learning to live...
|
||
31.01.2013, 16:10 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А че не важно. Важно, тот же гадостный bmp в jpеg преобразовать. Да и степень сжатия двоичных файлов архиваторами может сильно зависеть от типа файла
ZLib в памяти может сжимать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 31.01.2013 в 16:19. |
31.01.2013, 16:15 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Так в том то и дело, что JPG ужмется не очень хорошо. Бывают случаи когда битмап сжимается сильнее.
Ну хорошо - два пути: Джипег и Битмап. Два разных алгоритма?
I'm learning to live...
|
31.01.2013, 16:16 | #7 |
Далеко не
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,512
|
где-то на delphisources был исходник передачи экрана(снимка) по сетке суть в том в что там использовалось и сжатие и передача по частям..если найду выложу исходник..(p.s пример работал очень быстро)))
Нашел Последний раз редактировалось Кольша; 31.01.2013 в 16:24. |
31.01.2013, 16:36 | #8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А jpeg и не ужмется практически, он уже архив, как и остальные графические форматы. Кроме bmp. Можно оценить как png и gif будут себя вести по отношению к той фотке, возможно и меньше будут джипега
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
31.01.2013, 16:48 | #9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Вот поэтому я и думаю как бы выкрутится чтоб и рыбку съесть и косточкой не подавится. Продумаю сейчас работу с масками - дабы не передавать пиксели (или еще лучше линии), которые не изменились. может удастся в скорости выиграть.
Цитата:
I'm learning to live...
Последний раз редактировалось Stilet; 31.01.2013 в 16:51. |
|
31.01.2013, 17:45 | #10 |
Пользователь
Регистрация: 30.01.2013
Сообщений: 10
|
Если у тебя хранится в BMP, то конечно лучше конвертнуть в JPEG или PNG.
Если я правильно тебя понял, то тебе надо сделать что-то типа этого: -Каждую секунду: --Конвертнуть массив в JPEG(или PNG) --Сверить со старым массивом. Если изменился, то ---Найти отличие и запихнуть его в отдельный массив. ---Отправить эти самые отличия с информацией куда их надо запихнуть. ---Изменить "старый" массив на новый. --Если нет, то отдыхаем. -???? -PROFIT Всё это целиком можно найти в сети. Ну или по частям. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") | funnyy | Помощь студентам | 3 | 17.10.2012 17:40 |
Передача данных с coockie в поле формы (input type="text") | Olegzxc | PHP | 1 | 10.07.2011 14:36 |
Как "повесить " передачу данных из формы на событие нажатия кнопки типа "button" ? | vedro-compota | JavaScript, Ajax | 10 | 14.12.2010 21:05 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |