ФлеймФорумОбщее

Алгоритм сжатия информации 2:1 (2 стр)

Страницы: 1 2 3 475 Следующая »
#15
22:12, 25 ноя 2012

Не по теме, но вспомнился just cause 2.
1gb установка = 8gb распаковка...

#16
22:15, 25 ноя 2012

Mikle
> Сожми файл, заполненный случайными числами, хотя бы на 1%.
Абсолютно без разницы, какие данные находятся в файле. Алгоритм работает с битами, а не с байтами или более объёмными единицами информации.

#17
22:21, 25 ноя 2012

Pilix
Ну так покажи пример)

#18
22:24, 25 ноя 2012

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

#19
22:29, 25 ноя 2012

Monstradamus
> Ну так покажи пример)
Разумеется, но всему своё время. Текущая версия алгоритма несьедобна для всех кроме меня. Впереди ещё исследования частных случаев (чтобы выбросить 4 огромные таблицы), улучшение алгоритма определения предела, муторная оптимизация всего кода и ещё то, о чём я, вероятно, не догадываюсь.

#20
22:30, 25 ноя 2012

Pilix
> Вывод: 7 троллей.

Так сожми их до 3.5 троллей =) Затем до 1.75 =) Хотя это степень сжатия троллей надо смотреть :) Вдруг попытка сжатия тролля ведет к увеличению его толстоты :D

Ну тк а как тут не троллить? Написано "алгоритм", а об алгоритме ни слова и какие-то магические характеристики типа универсального сжатия чего угодно в 2 раза. Как я уже говорил, подобные идеи тут были, только толку от них ..


Pilix
> чтобы выбросить 4 огромные таблицы

Насколько они огромны по отношению к размеру исходных данных ?

#21
22:31, 25 ноя 2012

Показываю наглядный пример:

32-х битное число 0 (напоминаю, работаем с битами):
00000000 00000000 00000000 0000000

После первой итерации мы получаем сжатие 2:1
00000000 00000000

После второй итерации мы опять получаем сжатие 2:1
00000000

После третьей итерации мы опять получаем сжатие 2:1
0000

После четвертой итерации мы опять получаем сжатие 2:1
00

После пятой итерации мы опять получаем сжатие 2:1
0

oh wait.....

#22
22:32, 25 ноя 2012

Я кстати знаю как сделать архиватор, который закодирует войну и мир в один бит. Если бит 1, то это война и мир. Если бит 0, то это не война и мир. Ни один архиватор так сильно сжимать информацию не умеет.

#23
22:33, 25 ноя 2012

Sergio
> Показываю наглядный пример:
> 32-х битное число 0 (напоминаю, работаем с битами):
> 00000000 00000000 00000000 0000000
Насколько я понял, у автора такой случай самый затратный

Pilix
> Это очень сильно тормозит процесс распаковки (к сжатию это не относится),
> особенно в случае длинных участков единиц или нулей в исходной информации.

#24
22:35, 25 ноя 2012

Pilix
> Это очень сильно тормозит процесс распаковки (к сжатию это не относится),
> особенно в случае длинных участков единиц или нулей в исходной информации
Сожми сначала RLE

#25
22:35, 25 ноя 2012

dev
> Ты попал на gamedev форум, парень, здесь принято предоставлять доказательства.
Бросьте, здесь неглупые люди вокруг. Не уж то вы думаете, что выложу код, который появился спустя 2 года исследований, чтобы его пустили в интернеты, а там и доработали?

#26
22:35, 25 ноя 2012

Sergio
> oh wait.....

32:1 !!!

Возможна оптимизация для 64-битных процессоров!! Тут ещё как бонус - блочная обработка !

64-х битное число 0
00000000 00000000 00000000 0000000 00000000 00000000 00000000 0000000

После первой итерации мы получаем сжатие 64:1
0

;)

#27
22:37, 25 ноя 2012

Pilix
> Не уж то вы думаете, что выложу код, который появился спустя 2 года
> исследований, чтобы его пустили в интернеты, а там и доработали?

Так зачем было создавать тему ? Раз ни сказать, ни показать нечего. NumTrolls++

#28
22:37, 25 ноя 2012

Нетрудно провести тот же эксперимент с числом (unsigned int)(-1) и экстраполировать результаты на любое число. Или я что-то делаю не так?

#29
22:39, 25 ноя 2012

Sergio
> Или я что-то делаю не так?

Понадобятся огромные таблицы для частных случаев :D
Причем тут уже привели пример:

> Если бит 1, то это война и мир. Если бит 0, то это не война и мир.

Страницы: 1 2 3 475 Следующая »
ФлеймФорумОбщее

Тема в архиве.

Тема закрыта.