Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сжать! 
:(
    Опции темы
NoeR
Дата 13.7.2005, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 233
Регистрация: 6.2.2005

Репутация: нет
Всего: нет



Два вопроса в одном:
Как сжать текст и как сжать цыфры?
"Например" - занимает 8 байт, а мне надо меньше...
"1024768" - можно уместить в 4 байта, даже можно в 3, а в два возможно?
Заранее спасибо.
--------------------
По факту пропажи мужа, возбуждено... Два соседа.Если у Вас проблемы с ребенком, спросите у жены, может, это не Ваши проблемы!>>> NoeR++ <<<
PM MAIL ICQ   Вверх
Y-Vladimir
Дата 14.7.2005, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 16.7.2004
Где: Казань

Репутация: 1
Всего: 6



Для начала можно уменьшить количество цифр на представление одного символа. Например для буквы можно взять 5,6 бит - смотря какой алфавит), для цифры - 4 бита. И наконец, сжать это дело каким-либо алгоритмом, напрмер алг. Хафмана.
А вообще, степень сжатия зависит от избыточности информации. В твоем примере число "1024768" смахивает на возможное разрешение экрана. Если у тебя фиксированный набор таких чисел, то их можно сжимать (вернее заменять) в несколько бит.
Если есть много повторяющихся фргаментов в тексте или цифрах, то лучше использовать алгоритм сжатия LZW.


--------------------
PM MAIL WWW   Вверх
NoeR
Дата 14.7.2005, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 233
Регистрация: 6.2.2005

Репутация: нет
Всего: нет



А где этот сайт был, там где алгоритмы эти...?
Цитата
Если у тебя фиксированный набор таких чисел, то их можно сжимать (вернее заменять) в несколько бит.

Вот как бы это сделать? (Пусть будет фиксировано, т.е. от 0000000(позиция 0х0) до 1024768(позиция 1024х768)).
Ну ладно, допустим если одно число - тада заменить просто, например на букву "А", а вот када их много... куда девать все это? Алфавита та нема столько smile
--------------------
По факту пропажи мужа, возбуждено... Два соседа.Если у Вас проблемы с ребенком, спросите у жены, может, это не Ваши проблемы!>>> NoeR++ <<<
PM MAIL ICQ   Вверх
SoWa
Дата 16.7.2005, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Ничего невозможно сжать в 2 байта и даже бита. Оттуда не достать уже.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
NoeR
Дата 16.7.2005, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 233
Регистрация: 6.2.2005

Репутация: нет
Всего: нет



SoWa в каком смысле ничего?
--------------------
По факту пропажи мужа, возбуждено... Два соседа.Если у Вас проблемы с ребенком, спросите у жены, может, это не Ваши проблемы!>>> NoeR++ <<<
PM MAIL ICQ   Вверх
Y-Vladimir
Дата 18.7.2005, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 16.7.2004
Где: Казань

Репутация: 1
Всего: 6



Цитата(NoeR @ 14.7.2005, 15:12)
А где этот сайт был, там где алгоритмы эти...?

Что-то не понял...

Цитата(NoeR @ 14.7.2005, 15:12)
Пусть будет фиксировано, т.е. от 0000000(позиция 0х0) до 1024768(позиция 1024х768)

Я не это имел ввиду. Допустим, что у тебя в тексте часто встречаются, в основном, такие значения 800600, 1024768, 640480. Вот их и надо заменять на префиксные коды, а если у тебя с одинаковой вероятностью встречаются числа "от 0000000 до 1024768", то тут никакое сжатие особо не поможет.

Основная истина архивации - сжатия происходит за счет наличия у входного потока информации некоторой избыточности. Чем ее больше, тем лучше сжимается инфрмация.

Цитата(NoeR @ 14.7.2005, 15:12)
Алфавита та нема столько

Так не надо алфавит использовать, тут нужно оперировать битами и совокупностями битов.

Цитата(SoWa @ 16.7.2005, 15:24)
Ничего невозможно сжать в 2 байта и даже бита. Оттуда не достать уже.

Не понял фразы. Почему это нельзя? В 2 байта можно, при определенных условиях и мегабайт впихнуть

Это сообщение отредактировал(а) Y-Vladimir - 18.7.2005, 09:49


--------------------
PM MAIL WWW   Вверх
NoeR
Дата 18.7.2005, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 233
Регистрация: 6.2.2005

Репутация: нет
Всего: нет



Цитата
Так не надо алфавит использовать, тут нужно оперировать битами и совокупностями битов.

Вот это как smile
--------------------
По факту пропажи мужа, возбуждено... Два соседа.Если у Вас проблемы с ребенком, спросите у жены, может, это не Ваши проблемы!>>> NoeR++ <<<
PM MAIL ICQ   Вверх
Y-Vladimir
Дата 18.7.2005, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 16.7.2004
Где: Казань

Репутация: 1
Всего: 6



Цитата(NoeR @ 18.7.2005, 12:56)
Вот это как

Ну напрмер 12 битов - 4096 комбинаций. Вот их и используй.

А вообще, напиши, что тебе конкретно нужно, приведи конкретный фрагмент текста, что хочешь сжать, а то так еще долго можно обсуждать...
Вообще, думаю тебе Хаффман или LZW подойдут - дают хорошую степень сжатия и просто реализуются.


--------------------
PM MAIL WWW   Вверх
Y-Vladimir
Дата 18.7.2005, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 16.7.2004
Где: Казань

Репутация: 1
Всего: 6



А вообще, рекомендую почитать:
http://www.compression.ru/arctest/artic-algo.htm
Там рассказывается о наиболее известных способах и алгоритмах сжатия информации.
Многие вопросы отпадут сами собой.


--------------------
PM MAIL WWW   Вверх
NoeR
Дата 18.7.2005, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 233
Регистрация: 6.2.2005

Репутация: нет
Всего: нет



Мне надо сжать положение курсора и текст к нему, чтобы меньше весило...
За ссылку спасибо, приеду почитаю smile
--------------------
По факту пропажи мужа, возбуждено... Два соседа.Если у Вас проблемы с ребенком, спросите у жены, может, это не Ваши проблемы!>>> NoeR++ <<<
PM MAIL ICQ   Вверх
Y-Vladimir
Дата 19.7.2005, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 16.7.2004
Где: Казань

Репутация: 1
Всего: 6



Цитата(NoeR @ 18.7.2005, 19:08)
Мне надо сжать положение курсора и текст к нему, чтобы меньше весило...

А подробнее? Что такое "положение курсора и текст к нему"???


--------------------
PM MAIL WWW   Вверх
val
Дата 20.7.2005, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


Профиль
Группа: Участник Клуба
Сообщений: 992
Регистрация: 14.1.2003
Где: г. Киев

Репутация: 1
Всего: 7



Тебе поможет алгоритм Хафмана.


--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
Y-Vladimir
Дата 20.7.2005, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 16.7.2004
Где: Казань

Репутация: 1
Всего: 6



Лучше наверное LZW, затем Хафман.


--------------------
PM MAIL WWW   Вверх
NoeR
Дата 29.7.2005, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 233
Регистрация: 6.2.2005

Репутация: нет
Всего: нет



Цитата
А подробнее? Что такое "положение курсора и текст к нему"???

Пусть будет просто положение курсора: 1x12, 768x4....
--------------------
По факту пропажи мужа, возбуждено... Два соседа.Если у Вас проблемы с ребенком, спросите у жены, может, это не Ваши проблемы!>>> NoeR++ <<<
PM MAIL ICQ   Вверх
Y-Vladimir
Дата 30.7.2005, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 16.7.2004
Где: Казань

Репутация: 1
Всего: 6



А зачем это сжимать?
Имеются ввиду отдельные значения положения курсора или последовательность таких значений?
Только в последнем случае есть смысл что-то сжимать...

Опиши ПОДРОБНО свою задачу, тогда можно будет подбирать алгоритм. а то получается гадание по типу игры "Холодно-Горячо"


--------------------
PM MAIL WWW   Вверх
NoeR
Дата 2.8.2005, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 233
Регистрация: 6.2.2005

Репутация: нет
Всего: нет



В текст. док. надо сохранять все положения курсора, когда эти положения меняются естественно...
Добавлено @ 13:14
И надо сделать так, чтобы файл с этими положениями, был как можно меньше в размере!
--------------------
По факту пропажи мужа, возбуждено... Два соседа.Если у Вас проблемы с ребенком, спросите у жены, может, это не Ваши проблемы!>>> NoeR++ <<<
PM MAIL ICQ   Вверх
Romtek
Дата 2.8.2005, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 7.12.2004
Где: Холон

Репутация: нет
Всего: 4



Повторяющиеся значения можно сжимать по принципу RLE.
AAABBCCCCC -> A3B2C5
--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр.
PM WWW   Вверх
Romtek
Дата 2.8.2005, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 7.12.2004
Где: Холон

Репутация: нет
Всего: 4



Что-то, я чувствую, прога будет использоваться не в благих целях...
--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр.
PM WWW   Вверх
Y-Vladimir
Дата 2.8.2005, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 16.7.2004
Где: Казань

Репутация: 1
Всего: 6



Цитата(NoeR @ 2.8.2005, 13:13)
надо сохранять все положения курсора

Тогда лучше использовать что-то типа Дельта-модуляции. Т.е. запоминашь только изменение положения курсора относитльно предыдущей позиии.

Пример:
Вход: (345,594); (345,596); (347,597); (346,599).
Выход: (345,594); [0,2]; [2,1]; [-1,1].

Как видишь - значения в квадратных скобках (это посути дельта) заметно меньше по модулю значений на входе, после такого преобразования можно сжимать дальше.
Добавлено @ 16:04
Цитата(Romtek @ 2.8.2005, 15:48)
Что-то, я чувствую, прога будет использоваться не в благих целях...

Типа прога, котрая запоминает все дейсвия юзера - движения мышкой, нажатия клавиш и сливает их в инет? smile


--------------------
PM MAIL WWW   Вверх
NoeR
Дата 3.8.2005, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 233
Регистрация: 6.2.2005

Репутация: нет
Всего: нет



Цитата
Что-то, я чувствую, прога будет использоваться не в благих целях...

Учись чувствовать правильно smile
Цитата
Повторяющиеся значения можно сжимать по принципу RLE.
AAABBCCCCC -> A3B2C5

В принципе спасибо, но тут так не получиться, мало там одинаково будет smile
Цитата
Тогда лучше использовать что-то типа Дельта-модуляции. Т.е. запоминашь только изменение положения курсора относитльно предыдущей позиии.

Большое спасибо! Мне это и надо было, ну, во всяком - что-то типа того smile
Теперь мне надо как-то сжимать текст, мне продолжать читать те методы по ссылке, или у кого-нибудь есть идеи? Не спрашивайте пож-ста зачем, надо для чата, тексты большие, много времени на сжатия тратить не могу, так как выгоды от экономии отправки - будет мало...
--------------------
По факту пропажи мужа, возбуждено... Два соседа.Если у Вас проблемы с ребенком, спросите у жены, может, это не Ваши проблемы!>>> NoeR++ <<<
PM MAIL ICQ   Вверх
Romtek
Дата 3.8.2005, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 7.12.2004
Где: Холон

Репутация: нет
Всего: 4



Если для чата, нужен обязательно текст, или можно хранить в бинарном коде ? Тогда типа gzip вполне можно применить - есть готовые библиотеки для этого.
Если хранить движения мыши в формате дельта, то совсем необязательно, что координаты будут отличаться на +/- 2. Могут быть изменения даже в десятках единиц - зависит также и от скорости движения мыши.

P.S.
Цитата(NoeR @ 3.8.2005, 19:30)
Учись чувствовать правильно
Я не знаю, что значит "правильно"- мне так показалось и я сказал.
--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр.
PM WWW   Вверх
Y-Vladimir
Дата 4.8.2005, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 16.7.2004
Где: Казань

Репутация: 1
Всего: 6



Цитата(Romtek @ 3.8.2005, 22:27)
совсем необязательно, что координаты будут отличаться на +/- 2. Могут быть изменения даже в десятках единиц

Разумеется могут - у каждого метода есть свои недостатки. Это ведь не метод сжатия, а способ преобразования входных данных таким образом, чтобы дальнейшее сжатие получилось эффективнее. К тому же, обычно юзеры не махают мышкой с огромной скоростью и движения лостаточно плавны - в этом случае подобное преобразование даст ощутимый выигрыш в сжатии.
Кстати, не обязательно запоминать все позиции курсора с точностью до пикселя - скорее всего это не требуется, тогда можно огрубить точность дельты - степень сжатия получится еще большей.

Начет сжатия текста - либо, как писал Romtek, применяй готовые библиотеки, либо используй алгоритм LZW, т.к. на основе него построено большинство архиваторов.


--------------------
PM MAIL WWW   Вверх
NoeR
Дата 4.8.2005, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 233
Регистрация: 6.2.2005

Репутация: нет
Всего: нет



Попробую с LZW, спасибо smile
--------------------
По факту пропажи мужа, возбуждено... Два соседа.Если у Вас проблемы с ребенком, спросите у жены, может, это не Ваши проблемы!>>> NoeR++ <<<
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0596 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.