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

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

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

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

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

abzac



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

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



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

Цитата:
проще делается второй файл - индексный, указывающий начало предложений (потом его можно и приклеить куда хочешь)  

Суть одна и таже

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

А в чем проблема с обычными алгоритмами?

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



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

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В данном случае нужно просто использовать однопроходный алгоритм сжатия потока. Самое простое LZW. Статистические алгоритмы здесь не пойтут совершенно.
Можно присмотреть что-нибудь интересное на http://algolist.manual.ru/compress/standard/
Там есть и описание алгоритмов и примеры.
Честно говоря не вижу смысла вообще использовать здесь кодирование в BASE64. Если уж так нужно использовать служебные символы для управления передачей, то можно просто ограничить таблицу сжимающего алгоритма. Например зарезервировать первые 16 символов для управления потоком, и скорректировать сжимающий алгоритм, чтобы он выдавал резульдат в диапазоне с 17 символа.

Всего записей: 30 | Зарегистр. 18-06-2002 | Отправлено: 09:44 11-09-2003
MetroidZ



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VCLZip Native Delphi Zip/UnZip Component! (Version 2.03 Mar 10, 1998)
100кБ
http://www.cydsoft.com/vr-online/files/ziparc.zip
 
Пакеты маленькие нецелесообразно впрочим паковать.

Всего записей: 1795 | Зарегистр. 12-07-2003 | Отправлено: 14:10 13-09-2003
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Snowy
Дело в том что я пишу универсальный пакет для разработки сетевых приложений. Соответственно я не могу предсказать какие данные будут идти по протоколу и какой вообще будет протокол
Поэтому для нормального функционирования необходим BASE64.
Я так полагаю что нужно просто провести эксперимент - посмотреть насколько эффективно тот же zip (спасибо MetroidZ) будет сжимать небольшие пакеты и какой выигрышь это даст.
Хотя наверное это уже дело не сетевого модуля а забота разработчика - сжимать данные до формирования пакета или нет. Сейчас я уже думаю что загибаю лишку
Всем сенк.

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
UncoNNecteD
вообще для твоих целей ZIP будет наверное тяжеловат
полегче будет бесплатная кросплатформенная библиотека ZLib http://www.gzip.org/zlib/
работать должно побыстрее
а вообще для твоих целей лучше использовать специально созданные алгоритмы для потокового сжатия
http://www.winton.org.uk/zebedee/

Цитата:
Zebedee is a simple program to establish an encrypted, compressed “tunnel” for TCP/IP or UDP data transfer between two systems. This allows traffic such as telnet, ftp and X to be protected from snooping as well as potentially gaining performance over low-bandwidth networks from compression.

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кстати,народ,объясните точное назначение Base64 и почему Хаффман не сможет своим алгоритмом сжать её(кодировки) продукт?Если у кого есть исходники(и того,и другого),выложите plz

Всего записей: 18 | Зарегистр. 19-09-2006 | Отправлено: 14:11 21-10-2006
KADABRA



Великий покусатель
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TP09H

Цитата:
Кстати,народ,объясните точное назначение Base64

http://ru.wikipedia.org/wiki/Base64
 

Цитата:
 и почему Хаффман не сможет своим алгоритмом сжать её(кодировки) продукт?

Потому что он уже умер.

----------
Это не подпись.

Всего записей: 1718 | Зарегистр. 14-07-2003 | Отправлено: 15:08 21-10-2006
Qraizer



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

Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 16:51 21-10-2006
KADABRA



Великий покусатель
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Qraizer
Цитата:
Почему это умер??

Очевидно от старости.
http://en.wikipedia.org/wiki/David_A._Huffman
И поэтому он своим алгоритмом сжатия уже ничего не сожмёт.
 
Добавлено:
TP09H
Прочитай - http://ru.wikipedia.org/wiki/Алгоритм_Хаффмана и многие вопросы отпадут.

----------
Это не подпись.

Всего записей: 1718 | Зарегистр. 14-07-2003 | Отправлено: 20:15 21-10-2006
Qraizer



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Тьфу ты, казуист . Напугал

Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 22:14 21-10-2006
basilevs

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OFF-topic.
TP09H -великий археолог! Шлиман нервно курит в сторонке!
Сстолько утонувших тем столь немногими постами!!!

Всего записей: 161 | Зарегистр. 09-12-2004 | Отправлено: 13:49 23-10-2006
TP09H

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто такой казуист.И при чём здесь оффтопик про археолога???

Всего записей: 18 | Зарегистр. 19-09-2006 | Отправлено: 15:51 24-10-2006
Qraizer



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Казуистика - исскуство манипулировать смыслом слов. При совершенном владении этим исскуством можно лгать, говоря правду. Например, на вопрос следователя "Ты убил, того-то тогда-то, выстрелив в него в упор" преступник (под детектором лжи) с чистой совестью может ответить "нет", подразумевая (не вслух, конечно) при этом, что истинной причиной смерти стал не он, а пуля. В некотором смысле он будет прав, а следователь будет виноват в том, что неоднозначно сформулировал вопрос.
Вообще, почитай "Честность - лучшая политика" Джона Гордона. Прекрасный образец владения этим исскуством. Это небольшой фантастический рассказ, где главный герой должен ввести в заблуждение захватившую его в качестве "образца" инопланетную цивилизацию (враждебно настроенную и превосходяющую в развитии нашу), представив землян достаточно могущественными, чтобы избежать немедленного военного конфликта, при том, что он допрашивался как раз под наблюдением такого вот детектора лжи.
 
З.Ы. Сорри за оффтоп.

Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 17:36 24-10-2006
TP09H

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не,в самлм деле,чёй ты вспомнил про утонувшие темы.И при чём здесь мои "немногие посты".А за оффтоп я вроде не обиделся(хотя,скорее всего,просто не понял тебя,вот и не обиделся).А чем я тебя напугал?Или не я?

Всего записей: 18 | Зарегистр. 19-09-2006 | Отправлено: 18:32 24-10-2006
Qraizer



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
"Сорри за оффтоп" - это было к модераторам. Напугал меня KADABRA, своим "Потому что он уже умер." Прикинь - международный стандарт, используется как составная часть кучей других алгоритмов - MPEG, JPEG, TIFF etc - отлично подходит для реалзаций на аппаратном уровне простой машиной состояний (в отличие от словарных методов, которые без микроконтроллеров практически не реализовать) - и вдруг умер. Как тут было не испугаться.
А археологом не я тебя назвал. Утонувная тема - посмотри дату последнего поста перед твоим первым - 15-09-2003. Не впечатлило? Ещё в не "археолог"

Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 18:59 25-10-2006 | Исправлено: Qraizer, 19:02 25-10-2006
TP09H

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может,он имел ввиду,что сам Хаффман умер,а не стандарт?Кстати-я в 2003 году ещё не постил,наверное,дата сбилась.А чё за шлиман?

Всего записей: 18 | Зарегистр. 19-09-2006 | Отправлено: 12:11 28-10-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 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