Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Об одном способе ресурсоёмкого сжатия данных / 25 сообщений из 60, страница 1 из 3
03.01.2018, 12:36
    #39578904
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
Есть данные Д - битовая последовательность длины N, - которые требуется сжать, и стандартный ГПСЧ.

1. Находим битовую последовательность минимальной длины M, которая ни разу не встречается в Д. Назовём её "флаг" (Ф).

2. В цикле перебираем значения seed (s), используемые для инициации ГПСЧ: ГПСЧ(s).

3. Посредством ГПСЧ(s) генерируем случайную последовательность (СП) той же длины N.

4. Сравниваем побитово Д и СП. Все совпадающие - в Д и СП - последовательности битов, длиной больше М заменяем (в Д !) на флаг Ф. При этом следим, чтобы "на стыках" вставляемого флага и соседних исходных битов Д не возникали "паразитные флаги".

5. В результате замен получается битовая последовательность Д' длины N' (меньше N !).

6. Продолжаем перебор (цикл в п.2) до тех пор, пока не найдём значение seed, дающее удовлетворяющую нас степень сжатия К= N/N'

7. Архивный файл представляет собой структуру из трёх элементов: Ф, s, Д' .
______________________________

PS. Как вариант, в качестве флага Ф можно использовать вообще любую последовательность битов, желательно редко встречающуюся в Д, поскольку "естественные" вхождения Ф в Д нужно будет маркировать посредством, например, удвоения: Ф -> ФФ. (И потом нужно будет следить, чтобы дополнительные ФФ не возникали в процессе сжатия.)
...
Рейтинг: 0 / 0
03.01.2018, 13:26
    #39578935
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
... кстати, файл, сжатый с применением одной пары параметров (Ф1, s1), можно дальше пытаться сжимать с каким то другим Ф2, подбирая какое-то другое значение s2. И так пока не надоест.
...
Рейтинг: 0 / 0
05.01.2018, 10:00
    #39579556
scf
scf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
Иван FXS,

Если ГПСЧ качественный, т.е. распределение битов равновероятно, оцените количество циклов для достижения нужной степени сжатия. Задачка не выглядит очень уж сложной и, я думаю, ответ вам не понравится.
...
Рейтинг: 0 / 0
05.01.2018, 10:35
    #39579565
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
Задачу можно свести к вырожденной заменив гпсч на последовательность целых чисел.
...
Рейтинг: 0 / 0
05.01.2018, 10:50
    #39579571
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
Это обычный алгоритм LZW, только с ошибками и случайно-генеруемым словарем :fail:
...
Рейтинг: 0 / 0
05.01.2018, 12:25
    #39579608
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
scf,

по секрету, этот топик вынесен в автономную тему из темы http://www.sql.ru/forum/1281135/dispersiya-dliny-arhiva -- где как раз обсуждалось сильное (желательно) сжатие с расходованием большого (в пределе - не ограниченного) количества ресурсов.
...
Рейтинг: 0 / 0
05.01.2018, 12:26
    #39579610
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
Siemargl,

Сюрприз: словарь не нужно запихивать в архивный файл!
...
Рейтинг: 0 / 0
05.01.2018, 19:12
    #39579852
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
Точно такое же первое впеч, как у Siemargl - типа ЛЗВ, но только словарь заменён алгоритмом. Т.е. как бы , отталкиваясь от идей ЛЗВ, строим нечто из класса "сжатие посредством алгоритма". В связи с этим (и учитывая корни этой темы) есть мнение, что 1 из 2-х: либо нужно уметь восстанавливать исходник, либо нужна воспроизводимость кодирования данной Д. Во всяк я так понимаю термин pow. В случае же ГСПЧ да ещё стандартного я сомневаюсь в воспроизводимости. По моему мнению, при одном и том же СИДЕ СП будут разные (а лень проверять).
...
Рейтинг: 0 / 0
05.01.2018, 19:38
    #39579867
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
exp98,

вы, наверное, полагаете, что если повторно вызвать ГПСЧ с тем же аргументом (seed-ом), то он возвратит другой результат ...
...
Рейтинг: 0 / 0
05.01.2018, 20:10
    #39579884
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
Иван FXS, пример кода будет? Желательно со статистикой.
...
Рейтинг: 0 / 0
05.01.2018, 20:30
    #39579890
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
Dima T, в смысле "пример кода"?
...
Рейтинг: 0 / 0
06.01.2018, 00:56
    #39579962
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
Ну чтож... пятница продолжается. Давайте порассуждаем.
Иван FXSЕсть данные Д - битовая последовательность длины N, - которые требуется сжать, и стандартный ГПСЧ.

Тезис о том что есть некая "последовательность в вакууме" меня не устраивает. Он - лукавый.
У меня возникли вопросы. На что похожа эта битовая последовательность?

1. Английский текст. Или произвольный текст.
2. Поток случайных бит наподобие /dev/urandom
3. Смесь вышеперечисленного.
4. Еще какой-то вариант

1. Находим битовую последовательность минимальной длины M, которая ни разу не встречается в Д. Назовём её "флаг" (Ф).

Я-бы предложил назвать его "escape" ('\')

2. В цикле перебираем значения seed (s), используемые для инициации ГПСЧ: ГПСЧ(s).

Нам нужно хотя-бы формально доказать что длина s в битах будет меньше чем длина random().
К примеру для встроенного в ОС линейного конгруэнтного ГПСЧ, аргумент и функция будут
по 32 бита. И функция - суть биекция.

Если мы вводим в задачу ГПСЧ более высокой или плавающей разрядности то надо
обосновать что он является ГПСЧ. Либо он НЕ-ГПСЧ. Либо не биекция. Не биекция - значит
не покрываем ОДЗ. И т.д.

3. Посредством ГПСЧ(s) генерируем случайную последовательность (СП) той же длины N.

4. Сравниваем побитово Д и СП. Все совпадающие - в Д и СП - последовательности битов, длиной больше М заменяем (в Д !) на флаг Ф. При этом следим, чтобы "на стыках" вставляемого флага и соседних исходных битов Д не возникали "паразитные флаги".

5. В результате замен получается битовая последовательность Д' длины N' (меньше N !).

Последний поинт - слабое место в рассуждениях.

Надо как-то подкрепить рассуждения. Ато получится очередной кодер Бабушкина.
...
Рейтинг: 0 / 0
06.01.2018, 09:31
    #39579979
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
maytonНам нужно хотя-бы формально доказать что длина s в битах будет меньше чем длина random().
нам совершенно это не нужно, поскольку пользоваться мы собираемся не "атомарным" значением, возвращаемым random-мом, а (как и написано далее) "случайной последовательность ... длины N". Для построения которой, естественно, нам придётся вызывать random последовательно некоторое количество раз.
...
Рейтинг: 0 / 0
06.01.2018, 09:33
    #39579981
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
... причём вся эта (псевдо-) "случайная последовательность длины N" алгоритмически порождается одним (исходным) значением seed.
...
Рейтинг: 0 / 0
06.01.2018, 10:10
    #39579992
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
maytonПоследний поинт - слабое место в рассуждениях.
совершенно не слабое, поскольку мы делаем только те замены, которые укорачивают длину строки.
...
Рейтинг: 0 / 0
06.01.2018, 12:35
    #39580019
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
А что там по первому вопросу?
...
Рейтинг: 0 / 0
06.01.2018, 12:51
    #39580027
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
mayton, да хоть "3. Смесь вышеперечисленного".

При том что вы ведь в курсе той, параллельной темы, и знаете, что тема возникла в контексте сжатия данных блокчейна криптовалюты (типа Биткойна)...
...
Рейтинг: 0 / 0
06.01.2018, 14:08
    #39580043
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
Иван FXS, ok.

Нужен образец исходных данных. И ваш proof-of-concept.
...
Рейтинг: 0 / 0
06.01.2018, 18:58
    #39580127
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
maytonНужен образец исходных данных
как я понимаю, вот здесь https://rutracker.org/forum/viewtopic.php?t=5444025 файлы с расширением .ldb (типа 3806072.ldb) размером ~2Мб -- это блоки блокчейна в натуральном виде ...

С proof-of-concept заметно сложнее ... его нет, есть только чистая идея. В статусе гипотезы, к тому же.
...
Рейтинг: 0 / 0
06.01.2018, 19:08
    #39580130
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
Тогда предлагаю ее называть гипотезой СРСД (по названию топика).
...
Рейтинг: 0 / 0
08.01.2018, 14:23
    #39580543
S.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
exp98Точно такое же первое впеч, как у Siemargl - типа ЛЗВ, но только словарь заменён алгоритмом. Т.е. как бы , отталкиваясь от идей ЛЗВ, строим нечто из класса "сжатие посредством алгоритма". В связи с этим (и учитывая корни этой темы) есть мнение, что 1 из 2-х: либо нужно уметь восстанавливать исходник, либо нужна воспроизводимость кодирования данной Д. Во всяк я так понимаю термин pow. В случае же ГСПЧ да ещё стандартного я сомневаюсь в воспроизводимости. По моему мнению, при одном и том же СИДЕ СП будут разные (а лень проверять).не ну почему. псевдорандом же.
при одном и том же seed, генерирует одну и ту же последовательность.


это слегка модифицированный алгоритм под названием "мартышка, клацая на пишущей машинке, за очень большое время напишет войну и мир".
Дает возможность топикстартеру посетовать, что не то что алгоритм плохой, просто процессоры у нас слабые :)
...
Рейтинг: 0 / 0
08.01.2018, 14:51
    #39580553
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
Это ближе к Библиотеке Борхеса.
...
Рейтинг: 0 / 0
08.01.2018, 18:55
    #39580634
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
S.G."мартышка, клацая на пишущей машинке, за очень большое время напишет войну и мир" точно! Я думал об этом, но как-то не нашлось повода упомянуть это трудолюбивое животное.
...
Рейтинг: 0 / 0
09.01.2018, 08:19
    #39580810
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
S.G."мартышка, клацая на пишущей машинкеа майнинговые фермы -- это разве не триллиарды кремниевых мартышек, клацающих на пишущих машинках?
...
Рейтинг: 0 / 0
10.01.2018, 12:48
    #39581669
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об одном способе ресурсоёмкого сжатия данных
Иван FXSЕсть данные Д - битовая последовательность длины N, - которые требуется сжать, и стандартный ГПСЧ.

1. Находим битовую последовательность минимальной длины M, которая ни разу не встречается в Д. Назовём её "флаг" (Ф).

2. В цикле перебираем значения seed (s), используемые для инициации ГПСЧ: ГПСЧ(s).

3. Посредством ГПСЧ(s) генерируем случайную последовательность (СП) той же длины N.

4. Сравниваем побитово Д и СП. Все совпадающие - в Д и СП - последовательности битов, длиной больше М заменяем (в Д !) на флаг Ф. При этом следим, чтобы "на стыках" вставляемого флага и соседних исходных битов Д не возникали "паразитные флаги".

5. В результате замен получается битовая последовательность Д' длины N' (меньше N !).

6. Продолжаем перебор (цикл в п.2) до тех пор, пока не найдём значение seed, дающее удовлетворяющую нас степень сжатия К= N/N'

7. Архивный файл представляет собой структуру из трёх элементов: Ф, s, Д' .
______________________________

PS. Как вариант, в качестве флага Ф можно использовать вообще любую последовательность битов, желательно редко встречающуюся в Д, поскольку "естественные" вхождения Ф в Д нужно будет маркировать посредством, например, удвоения: Ф -> ФФ. (И потом нужно будет следить, чтобы дополнительные ФФ не возникали в процессе сжатия.)

А обратно как распаковать? Вот прямо с коротким примером можете?
Что значит "последовательности битов, длиной больше М заменяем ..."? Насколько больше? На фиксированное число битов? Если заменять последовательности произвольной длины больше М, то как вы потом исходную длину узнаете?
Вот допустим у вас на выходе Ф=101 и Д'=1011101, ну и s какой-то, как вы это распакуете? Вы же даже N не планируете сохранять.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Об одном способе ресурсоёмкого сжатия данных / 25 сообщений из 60, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]