Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Компрессия текстовой строки

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Я пишу щас сетевой компонент для быстрой разработки сетевых приложений (игры, распределенные системы и прочее).
Уже написал многое - встроенный механизм авторизации по MD5-CHAP - алгоритму, поддержка сессий, высокоуровневые процедуры отсылки и формирования пакетов, броадкасты, поддержка различных уровней доступа для юзеров и прочее.
Вопрос такой - я формирую пакет и преобразую его в Base64 для безизменной передачи, все работает на ура, но пакеты получаются немного больше чем исходные данные.
Вопрос такой - чем бы еще сжимать пакет перед отправкой, но так чтобы не убить Base64?
Есть мысли?

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 10:46 22-08-2003
redp

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
чо-та ты хитрое хочешь намутить - чтобы base64 строка еще раз сжималась и при этом оставалась читабельными символами ? ты гонишь - так не бывает, даже huffman тебе такое не даст
сжимай данные перед конвертацией в base64 - тогда любой алгоритм сойдет, хучь aplib хучь zlib + поле под длину возможно придетца отвести

Всего записей: 514 | Зарегистр. 16-06-2003 | Отправлено: 11:32 24-08-2003
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
redp Согласен. Вначале пакуй любым алгоритмом, а потом кодируй в B64 и отправляй.


----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 00:40 25-08-2003
mymuss



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
UncoNNecteD
А ты абсолютно уверен что тебе необходимо base64? Он обычно нужен только в тех протоколах, где нельзя передавать в теле сообщения специальные символы.

----------
(a + b^n) / n = x, donc Dieu existe; répondez !
Euler

Всего записей: 709 | Зарегистр. 13-04-2003 | Отправлено: 01:25 25-08-2003
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mymuss
Да, это необходимо.
 
ShIvADeSt
redp
Какой алгоритм взять? Есть готовые юниты?

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 03:51 29-08-2003
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
UncoNNecteD Алгоритм ИМХО зависит от того, какие у тебя будут данные. Если много повторяющихся, то хоть RLE, иначе попробуй LZ. Думаю описание у тебя есть. Исходников чистых нет. Но у меня где то есть компонента для работы с ZIP архивами в исходниках. Думаю если ее разобрать, то можно воспользоваться готовым решением. Только вот что я думаю, если ты собираешься паковать пакет, для скорости передачи, то это подойдет, но блин как юзера тормозить, при его распаковке. .


----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 07:08 29-08-2003
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ShIvADeSt
Помоему проблема скорости последней мили стоит гораздо больше чем мощности процессора в последнее время.
Жаль никто не посоветовал готового решения, времени жаль...

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 16:53 29-08-2003
mastervigo



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Куча алгоритмов в библиотеке DCPcrypt v1.3. Могу выслать.
 
 

Всего записей: 1511 | Зарегистр. 17-08-2002 | Отправлено: 09:51 03-09-2003
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mastervigo
Мне нужно не криптование а компрессия. Если ты не ошибся то шли плиз на the_unc&mail.ru !


----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 19:51 03-09-2003
mastervigo



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Мне нужно не криптование а компрессия.

Методы иногда назвают кодирование информации (вместо сжатия), вот я и запарился.
По компресии могу скинуть методы Фано, Лива-Земпеля, Хаффмана. (все что нарыл в инете).
Смотри в почте.

Всего записей: 1511 | Зарегистр. 17-08-2002 | Отправлено: 07:03 04-09-2003
abzac



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а есть у кого алгоритмы и сорсы динамической компрессии, типа старых файловых Stack и DoubleSpace или новых в NTFS, т.е. копресиия и декопрессия при записи/чтении потока данных?

Всего записей: 646 | Зарегистр. 02-09-2002 | Отправлено: 15:20 04-09-2003
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mastervigo
Спасибо - посмотрю.
abzac
А что значит алгоритмы? помоему это не компрессии алгоритмы а обработки потока. Бери и компресь любым алгоритмом поток - вот тебе и динамика

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 07:38 05-09-2003
mastervigo



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
а есть у кого алгоритмы и сорсы динамической компрессии

Посмотри здесь. Может пойдет. Правда сайт вроде на польском
http://www.csk.pl/~sc/Tekst/Programowanie/delphi.htm

Всего записей: 1511 | Зарегистр. 17-08-2002 | Отправлено: 08:38 05-09-2003
abzac



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
UncoNNecteD
 
дело в том, что не все алгоритмы компрессии имеют возможность распаковать часть информации выдранной из произвольного места архива

Всего записей: 646 | Зарегистр. 02-09-2002 | Отправлено: 12:48 05-09-2003
mastervigo



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
дело в том, что не все алгоритмы компрессии имеют возможность распаковать часть информации выдранной из произвольного места архива  

Не все, но если эта часть представляет собой законченный блок(со своими последовательностями/деревом), то такое возможно.
 

Всего записей: 1511 | Зарегистр. 17-08-2002 | Отправлено: 14:36 05-09-2003
abzac



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Не все, но если эта часть представляет собой законченный блок(со своими последовательностями/деревом), то такое возможно.  

а если надо иметь доступ к любому сжатому предложению? как тогда паковать?

Всего записей: 646 | Зарегистр. 02-09-2002 | Отправлено: 00:47 08-09-2003
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ну не вдаваясь в подробности я понял.

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 17:32 08-09-2003
mastervigo



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
а если надо иметь доступ к любому сжатому предложению? как тогда паковать?

Имеется ввиду текст?

Всего записей: 1511 | Зарегистр. 17-08-2002 | Отправлено: 06:36 09-09-2003
abzac



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mastervigo
да, есть текст состоящий из предложений, нужно иметь возможность из упаковки выдернуть iое предложение. распаковка всего архива не является решением
 
Добавлено
у меня пока на уме только кодирование по внешнему словарю (слова и слоги)

Всего записей: 646 | Зарегистр. 02-09-2002 | Отправлено: 02:38 10-09-2003
mastervigo



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Что первое на ум пришло - кодировать предложения по одному, записывать кодированную инфу в файл (каждый кусок - одно предложение). После окончания криптования текста в начало файла записать служебную информацию - для каждого предложения позиция в файле. При выдергивании i-того предложения сначала гладеть в эту таблицу размещений, потом тянуть блок и расшифровывать. Пока написал - подумал что похоже на файловую систему :)

Всего записей: 1511 | Зарегистр. 17-08-2002 | Отправлено: 06:49 10-09-2003
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Компрессия текстовой строки


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru