-
.prettorian
Переводите если хотите. Есть утилита преобразующая любой файл в метафайл типа .pretorrian. Есть плагины для XMP/FB2K играющие исходный "хрень (prettoria)+ prettorian" (MPEG2PS/TS, MKV, MKV. MP3, M4A).
Суть ниже.
Структура .prettorrian >
0-3 байт = размер блока (4 байта, 0-4294967296).
4-11 байт = инфа для статического предгенератора блока (8 байт, 00000000-ZZZZZZZZ). Эта часть препроцессора у меня пока стабильно работает только в win32 http://encode.su/images/smilies/frown.gif Ничтожные 2499840 вариантов (сверка проходит, компрессия идет лесом).
12-19 байт = собственно ближайшая разница между результатом действия предгенератора и конечным блоком (8 байт, 00000000-ZZZZZZZZ). Опять же, используется только предгенератором, но уже в другом контексте. Очередные 2499840 вариантов. Если нет соответствия, то записываются "как есть". Если записывается "как есть", то в конце добавляется" "маркер".
Вся информация после 20 байта, если нет соответствующего маркера, считается началом следующего блока. Количество блоков и/или их размер не ограничено (на текущий момент оттестировано от 0 до 16777216 байт в блоке включительно и цепочка вплоть до 65535 блоков в памяти).
P.S. Это не метод сжатия, а возможный вариант представления и/или сверки данных в РБ после 4 апреля, да собственно и во всём мире.
p.s. Автор ждет возможных претензий/возражений/предложений... итд...
Для тех кто не понял: в результате мы имеем хрень на раздаче, хрень на скачивании, хрень на харде.
Сжатие теоретически возможно, но математически крайне маловероятно.
Автору крайне необходимы тестеры "магистрального" уровня, для определеня реакции статических шейперов.
Сейчас для генерации собственных блоков используется вариация CRCx с выходом в 62 символа (регистровая разница) вместо 16. Для больших блоков используется BLAKE2S.
И, заодно, ищется кроссплатформенный компилятор строго следующий инструкциям. Мой основной это TMT5. Клёво, быстро, но фактически нефига не кросплатформенно, пускай его win16/32 и самый быстрый.
P.S. Извиняюсь, некоторые корректировки в пост внесены после перепрочтения кода автора. Продолжаю читать и править.