СПОСОБ СЖАТИЯ ХАОТИЧЕСКИХ ПОТОКОВ

1. Способ сжатия хаотичных потоков (СХП), реализующий сжатие без потерь, отличающийся тем, что при сжатии на входе принимают любой хаотичный битовый поток (ХБП), который затем дифференцируют, т.е. создают промежуточный файл в форме последовательности целых чисел, поочередно определяющих количества подряд стоящих нулей и единиц, и называют этот файл дифференцированным битовым потоком (ДБП); при этом для итогового файла кодирования сжатия запоминают что стоит в начале СХП, ноль или единица; далее параллельно преобразуют ДБП в b битовых потоков {Pi}, i=1…b (b>2), при этом число потоков b или задают как исходную константу, всегда равную, например, b=7, или вычисляют в ходе сжатия, анализируя очередной Pi и в зависимости от дисперсии хаоса; Р1 формируют как битовую цепочку, в которой нулевой бит ставят на местах чисел из ДБП больших 1, а число 1 заменяют на бит равный единице; Р2 формируют как битовую цепочку, в которой нулевой бит ставят на местах чисел из ДБП, больших 2, а число 2 заменяют на бит равный единице, при этом числа 1 из ДБП игнорируются, т.е. длина Р2 короче Р1 на количество чисел, равных 1;
таким образом другие Pi (для i=2…b) соответственно формируют как битовую цепочку, в которой нулевой бит ставят на местах чисел из ДБП больших i, а число i заменяют на бит равный единице, при этом числа меньше i из ДБП игнорируются; выборку чисел из ДБП больших b обозначают как остаток Pb+1, уменьшают каждое из этих чисел на b, и отдельно для итогового файла кодирования сжатия, эту Pb+1 сжимают любым известным способом или хранят без сжатия, записывая каждое число четырьмя битами; далее каждую битовую цепочку потоков Р1…Pb преобразуют, заменяя каждые n=й бит (n назначают из чисел 3…7) на букву из словаря букв, описываемого числами от 1 до 2 в n-й степени, тем самым после замены получают промежуточные файлы буквенных цепочек S1…Sb, соответствующие Р1…Pb потокам; каждую из S1…Sb разбивают на фиксированные буквенные отрезки Mij, где I - номер S1…Sb, j - номер отрезка из Si; длину фиксированных буквенных отрезков Mij задают с учетом того, что эти отрезки будут разбиты на m блоков (назначают m>=3), а каждый блок, в свою очередь, состоит из  буквенных пачек (БП) (назначают ) по k букв в пачке (k назначают равным от 3 до 9 букв);
далее кодировку сжатия проводят раздельно по всем Mij; далее раздельно во всех отрезках Mij для получения трех итоговых кодировок сжатия, согласно логике знаковых систем, удаляют избыточности их фрагментов, что производят параллельно по трем следующим схемам: схему по Форме кодируют как Денотат (D); схему по Коду кодируют как Знак (Z); схему по Размещению кодируют как Концепт (К); эти три схемы независимо реализуют при кодировании сжатия и декодировании ХБП;
при больших объемах сжатия способ СХП применяют по отношению к самому итоговому файлу сжатия, в т.ч. неоднократно.
2. Способ сжатия хаотичных потоков по п. 1, отличающийся тем, что алфавит для представления S1…Sb строят на основе числа n=5, т.е. в битовых потоках Р1...Pb, заменяют каждые 5 бит на буквы алфавита из 32 букв s1…s32; буквенные цепочки S1…Sb (соответствующие битовым потокам Р1…Pb) затем разбивают на отрезки Mij по 125 букв, где I - номер S1…Sb, j - номер отрезка из Si, размером 125 букв; каждый Mij разбивают на m=5 блоков, а каждый блок, в свою очередь, строят из  буквенных пачек (БП), по k=5 букв в пачке; далее сжатие проводят раздельно по всем Mij; на этой базе для каждого Mij строят промежуточную матрицу размещения (MP), где по вертикали задают 32 строки, соответствующие буквам s1…s32, а по горизонтали строят пять столбцов, соответствующих пяти блокам из Mij, где против каждой буквы размещают список номеров тех БП в блоках, где эта буква встречается, и если буква встречается в БП не один раз, то это тоже записывают; тем самым получают матричное представление Mij размещения 125 букв; далее раздельно по всем отрезкам Mij, согласно логике знаковых систем, реализуют схемы кодирования сжатия Денотат (D), Знак (Z) и Концепт (К); схему кодировки по Коду (Знак) строят как установку непрерывностей вхождения букв на длине 5, для чего в каждом Mij для каждой из 25 БП, создают промежуточный файл, где каждой букве по ее номеру s1…s32 сопоставляют ее вес от одного до пяти среди букв этой БП, при этом если буква встречается в БП дважды или более раз, то ее номер веса на всех местах будет одинаков, а максимальное число весов в этом случае в буквенной БП будет соответственно меньше пяти; создавая файлы сжатия весовых кодировок 25-ти БП Z11…Z55, подряд записывают коды размещения весов букв в БП с учетом следующего:
для пяти неповторяющихся букв в БП (5!=120 комбинаций) отводят 7 бит хранения, при повторе одной буквы в БП (С2/5×3!=60 комбинаций) отводят 6 бит хранения, при повторе двух букв в БП (С1/5×С2/4=30 комбинаций) отводят 5 бит хранения, при трех вхождениях одной буквы в БП (С3/5×2!=20 комбинаций) отводят 5 бит хранения, при трех вхождениях одной буквы и повторе другой буквы в БП (С/=10 комбинаций) отводят 4 бита хранения, при четырех вхождениях одной буквы в БП (С4/5=5 комбинаций) отводят 5 бит хранения, при пяти одинаковых буквах в БП отводят 0 бит хранения; схему кодировки по Размещению (Концепт), строят (например, для случая когда максимально 6 раз одна из букв встречается в БП блока) начиная с файла КК6 из пяти чисел задающих раздельно по пяти столбцам MP сколько букв в столбце встречается в БП соответствующего блока по 6 раз, далее строят файл КК5 из пяти чисел задающих раздельно по пяти столбцам MP сколько букв в столбце встречается в БП блока по 5 раз, и т.д. до построения файла КК2 из пяти чисел задающих раздельно по пяти столбцам MP сколько букв в столбце встречается в БП соответствующего блока по два раза; файл КК1 не строят, т.к. его можно рассчитать как остаток, с учетом того, что всего в столбце указаны размещения 25 букв блока; далее кодировки проводят по пяти столбцам MP, т.е. по пяти блокам и с учетом того, что уже по КК7…КК2 известно количество вхождений букв в блоки по 1…6 раз: в файлах К61…К65 кодируют размещение на 32 буквах тех букв, что по 6 раз встречаются в БП блока; в файлах К51…К55 кодируют размещение на 32 буквах (без учета букв что встречаются в БП блока по 6 раз) тех букв, что по 5 раз встречаются в БП блока; в файлах К41…К45 кодируют размещение на 32 буквах (без учета букв что встречаются в БП блока по 5 и 6 раз) тех букв, что по 4 раза встречаются в БП блока; в файлах К31…К35 кодируют размещение на 32 буквах (без учета букв что встречаются в БП блока по 4…6 раз) тех букв, что по 3 раза встречаются в БП блока; в файлах К21…К25 кодируют размещение на 32 буквах (без учета букв что встречаются в БП блока по 3…6 раз) тех букв, что по 2 раза встречаются в БП блока; в файлах K11…К15 кодируют размещение на 32 буквах (без учета букв что встречаются в БП блока по 2…6 раз) тех букв, что по 1 разу встречается в БП блока; сколько бит требуется для кодирования каждого такого размещения рассчитывают по файлам КК7…КК2 хранящим сколько букв встречаются в столбце матрицы по одному, два, три и более раз; схему кодировки по Форме (Денотат) строят как цепочки размещения букв словаря по БП блоков: строят файлы D11…D15 (для пяти столбцов MP), где для всех букв, что в БП блока встречаются один раз, перечисляют только номера 1…5 этих БП блока, где они встречаются; в файлах D21…D25 (для пяти столбцов матрицы размещения) перечисляют (по 4 бита) имеющиеся двойные вхождения букв в БП блока, что делают с помощью априори вводимого словаря из 15 букв (4 бита хранения), для 15 возможных вариантов двух номеров БП в блоке 11…15, 22…25, 33…35, 44, 45, 55; в файлах D31…D35 (для пяти столбцов матрицы размещения) перечисляют (по 6 бит) имеющиеся двойные вхождения букв в БП блока, что делают с помощью априори вводимого словаря из 35 букв (6 бит хранения), для 35 возможных вариантов двух номеров БП в блоке 111…115, 122…125, 133…135, 144, 145, 155, 222…225, 233…235, 244, 245, 255, 333…335, 344, 345, 355, 444, 445, 455, 555; в файлах D41…D45 (для пяти столбцов матрицы размещения) перечисляют (по 7 бит) имеющиеся двойные вхождения букв в БП блока, что делают с помощью априори вводимого словаря из 70 букв (7 бит хранения), для 70 возможных вариантов четырех номеров БП в блоке 1111…5555; аналогично строят словари и файлы кодировок для случаев, когда некоторые буквы встречаются в БП блока по пять, шесть и более раз.
3. Способ сжатия хаотичных потоков, по п. 1, отличающийся тем, что распаковку в декодере сжатого ХБП, раздельно по всем потокам, ведут сначала по всем Mij по разделам кодировки Концепт и Денотат, восстанавливая MP, по которой затем с помощью раздела кодирования знак восстанавливают блоки буквенных данных Mij, а по ним уже восстанавливают S1…Sb, P1…Pb, ДБП и далее ХБП с учетом запомненного, что было вначале - двоичный ноль или единица.