Цитата: Пусть встретилась последовательности нулей длинной k штук. Если k<N, то оставляем её как есть. Иначе заменяем её на k нулей плюс один байт равный k-N.
да, с рабочими вариантами программы стало понятней где ошибка в описании. Надо так:
Цитата: Иначе заменяем её на N нулей плюс один байт равный k-N.
Цитата: REP детектит только достаточно длинные последовательности (если не ошибаюсь, от 32 байт; такие zero runs действительно попадаются не часто), причём на каждую ссылку тратит 12 байт.
реп, в отличие от rle, кодирует все найденные одинаковые последовательности на протяжении своего словаря в эти 12 байт, будь то нули, или любые другие произвольные значения каждого байта. Тут эти алгоритмы вообще сравнивать не стоит - они разного назначения, хоть и схожие по проихождению.
Цитата: Вас послушать, так lzma вообще лучше использовать в одиночку. Ведь применение, например, dict перед lzma не ставится под сомнение. А zrle делает то же, что dict или rep: уменьшает объем данных сохраняя уровень избыточности, что уменьшает объем работы и увеличивает эффективный размер словаря lzma.
вот с последним предложением согласен. Да и почему именно нули? Можно же таким образом с любыми последовательностями байт сделать.
И в приведенной тобой таблице не понятно как-то. Данные для каждого режима разные что-ли?
Ну и в общем то плюс в этом не хитром алгоритме вижу только в отсутствии потребляемой памяти. С остальным rep и srep на низких значениях параметра -l ИМХО должны справиться лучше.
Добавлено: P.S. все же всё это стоит проверить на различного рода данных и в достаточном объеме для подтверждения того или иного утверждения.