Страница: 1 | 2 | 3 |
Вопрос: Быстрый алгоритм сжатия
Добавлено: 02.04.11 22:41
Автор вопроса: AWP | Web-сайт:
Ответы
Всего ответов: 43
Номер ответа: 31
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #31
Добавлено: 08.04.11 19:33
Сначала тестовые массивы вылетали на разжиме из-за размера исходящих данных. Сделал побольше - заработало. len+len/16+64+3 Этого не хватало...
Потом начал вылетать фиг знает из-за чего. Но мысли есть..
Номер ответа: 32
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #32
Добавлено: 08.04.11 20:38
Сори(65536 - 1), туплю...
Потом я подумал, что данные передаваемые по сети не корректно передаються, поэтому не декомпрессит. Но нет! проверил, сходитья каждый байт... Хз в чем косяк..
Номер ответа: 33
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #33
Добавлено: 08.04.11 20:57
а как определяешь размер буфера для декомпрессии? мне во втором примере пришлось в .lzo файл в конец записывать размер оригинального файла, чтобы значть сколько памяти понадобится при расжатии
Номер ответа: 34
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #34
Добавлено: 08.04.11 21:00
len+len/16+64+3 - это только при сжатии. при декомпрессии нужен буфер, размер которого совпадает с размером начальных данных
Номер ответа: 35
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #35
Добавлено: 08.04.11 21:16
Для zlib, например, он такой был com_size = 1.01 * unc_size + 12
А для разжатия может быть какой угодно...
Но я пытался и оригинальный размер ставить. Все равно вылетает...
Номер ответа: 36
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #36
Добавлено: 08.04.11 21:53
Не могу понять...
Сжимаю -> передаю -> проверяю -> пытаюсь разжать с исходным размером. 50 на 50 вылетает... т.е.
Т.Е. то, во что я сжал и то, что пытаюсь разжать 100% идентично, но почти всегда программа вылетает...
Иногда, все же, разжимает данные как нужно.
Номер ответа: 37
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #37
Добавлено: 08.04.11 21:54
а можно оригинал и сжатые данные выложить двумя файликами куда-нибудь? очень уж интересно, с чего оно вылетает
Номер ответа: 38
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #38
Добавлено: 08.04.11 22:00
http://xawp.narod.ru/test.zip
Номер ответа: 39
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #39
Добавлено: 08.04.11 22:07
Я в шоке! Теже данные отдельно нормально разжимаются... А в основном коде вылетает. Хотя проверка данных происходит после и до расжатия.... о_О
Номер ответа: 40
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #40
Добавлено: 08.04.11 22:20
Сделал задержку в виде msgbox'а - ничего не вылеает. Возможна какая-то функция не успевает завершиться и обращается к тем.же данным что отправляются на разжатие. Тогда все ок, буду смотреть где, что пересекается...
Номер ответа: 41
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #41
Добавлено: 08.04.11 22:35
Да, заработало. К этому массиву что-то обращалось в момент декомпрессии.
Номер ответа: 42
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #42
Добавлено: 08.04.11 23:01
полный мультитрединг что ли?)
Номер ответа: 43
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #43
Добавлено: 09.04.11 00:04
Да в том-то и дело, что нет. Сокет данные присылает и они без очереди начинают обрабатываться.
Косяк еще в том, что сервер уже все отослал. - что он там еще досылает не понятно...)))
Как-то не очень шустро работает(имею ввиду мое подобие радмина) - не больше 10 кадров выдает. Все на сетке ступориться, хотя локалка и буфер на 16Кб поставил, да еще и в два потока получаю...