Comments 26
Фраза "Пока еще никто не указал мне, насколько gzip опережает данный метод по степени сжатия, я хочу заявить, что он не может рассматриваться как реальная альтернатива физическому сжатию" очень корявая получилась. Я бы сказал "я хочу сразу сказать что рассматриваемый метод никак не может быть практической альтернативой" (и типа не надо мне на это ещё раз указывать).
То есть это - просто демонстрация технологий. В каком-то другом мире от неё, может быть, и был бы прок, но нашем - gzip рулит!
То есть это - просто демонстрация технологий. В каком-то другом мире от неё, может быть, и был бы прок, но нашем - gzip рулит!
Насколько GZip опережает данный способ, я написал там же, в комментариях. GZip получается эффективнее на 5-15% (при максимальном сжатии).
на самом деле, gzip опережает еще сильнее, если учесть процессорные издержки на "распаковку" таких картинок.
возможно тупые антивирусники пропустят это, но в ie работать не будет ;)
для "шпионских фильмов" технология :)
было уже...
О, месье знает толк в извращениях!
Спасибо. Нравятся такие штуки.
У прототайп самая лучшая фотография)
Новый вид извращения - писать код, чтобы он потом в красивую картинку ПНГ превращался)
А по теме - скорость сильно отличается преобразования png от распаковки gzip никто не знает?
Новый вид извращения - писать код, чтобы он потом в красивую картинку ПНГ превращался)
А по теме - скорость сильно отличается преобразования png от распаковки gzip никто не знает?
При этом картинка 100x100 с 24-байтной...
"К несчастью, сейчас это означает, что только такой подход будет работать только в Firefox, Opera Beta и последних ночных сборках WebKit"
После этого предложения читать расхотелось.
После этого предложения читать расхотелось.
клёва! для полноценности подхода предлагаю совместить этот метод со стенографией- накладывать полученную картинку на существующую и писать куда-нибудь отступ.
Вот вам идея для паковщика яваскрипта:
(хотя видимо уже было изобретено и может быть уже давно используется)
Известно:
- грамматика яваскрипта прекрасно формализуема
- число часто-используемых символов обычно сильно ниже 255 (меньше байта)
- названия переменных/функций ЧАЩЕ ВСЕГО можно переименовать как тебе заблагорассудится
Идея:
- Можно создать создать алгоритм сжатия с отличным сжатием и достаточно простым декомпрессором (который написать на js)
Реализация:
- по-простому назначить каждому символу грамматики Хаффман код (прежде наработав статитстику на основе часто-используемых яваскриптах)
- переменные/функции проиндексировать и закодировать на манер Elias-Shennon codes (проиндексировать таким образом чтоб при смене области видимости нумерация начиналать с начала но не конфликтовала с более глобальными индексами)
- текст программы представить в виде дерева и перекодировать (например как в обратной польской записи)
затем на JS написать декодер в котором захардкожена Huffman-таблица для грамматики и реализация простейшего стека.
алгоритм декодирования: побитово пробегаем по битстриму. При нахождении символа грамматики ложим его в стек (если допускается вложение) и считываем "под-дерево" в соответствии с этим символом, потом вынемаем его из стэка
(хотя видимо уже было изобретено и может быть уже давно используется)
Известно:
- грамматика яваскрипта прекрасно формализуема
- число часто-используемых символов обычно сильно ниже 255 (меньше байта)
- названия переменных/функций ЧАЩЕ ВСЕГО можно переименовать как тебе заблагорассудится
Идея:
- Можно создать создать алгоритм сжатия с отличным сжатием и достаточно простым декомпрессором (который написать на js)
Реализация:
- по-простому назначить каждому символу грамматики Хаффман код (прежде наработав статитстику на основе часто-используемых яваскриптах)
- переменные/функции проиндексировать и закодировать на манер Elias-Shennon codes (проиндексировать таким образом чтоб при смене области видимости нумерация начиналать с начала но не конфликтовала с более глобальными индексами)
- текст программы представить в виде дерева и перекодировать (например как в обратной польской записи)
затем на JS написать декодер в котором захардкожена Huffman-таблица для грамматики и реализация простейшего стека.
алгоритм декодирования: побитово пробегаем по битстриму. При нахождении символа грамматики ложим его в стек (если допускается вложение) и считываем "под-дерево" в соответствии с этим символом, потом вынемаем его из стэка
алгоритм "расжатия" будет страшно тормозить на клиенте, но идея в отдаленном виде реализована уже Dean Edwards
http://dean.edwards.name/packer/
http://dean.edwards.name/packer/
UFO just landed and posted this here
А со звуком таких экспериментов не проводилось? :)
Уррра! Spectrum возвращается!
Давайте в mp3 еще жать ))
Давайте в mp3 еще жать ))
Sign up to leave a comment.
Сжатие при помощи canvas и PNG-картинок