|
|
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
Dima TНе подходит ни один показатель. в 10-15% случаев ошибаются.а сильно ли ошибаются? Можно выбрать какой-либо показатель и сдвинуть его критерий так, чтобы эти 10-15% файлов не сжимались. Итоговые потери на объеме всего множества файлов относительно идеального случая, думаю, будут невелики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 17:33 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
Точнее всего дисперсия СжатиеДисперсияПервые 12858%0.02245214463%1.84351819563%0.19617817163%0.19657617165%0.20422317265%0.20422317267%0.21141217267%0.21141217268%1.63458818768%0.18020916968%0.18020916968%0.02192814372%0.60984917277%0.39442515778%0.53075615880%0.14296616580%0.14296616580%0.15039716580%0.15046116581%0.62528220981%0.13440916381%0.13440916383%0.01668514184%0.13756316484%0.13697316487%1.42316819588%0.06305614689%0.71745916989%0.295146147 Обрезал по сжатию 90% получилась граница 1,97. В таблице все где дисперсия < 1,97 и сжатие < 90% Достаточно много где сжатие < 80% Всего 200 файлов с сжатием > 90% (т.е. плохо жмутся) Целиком результаты в файле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 17:54 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
Dima T, Вам конечно видней, но мне кажется вас уносит. Вы решаете задачу которую доконца не сформулировали даже. Опищите сначала условия задачи математическим языком. Пусть: Тпер(Х) - функция для времени на передачу сообщения размером Х. В обшем случае можно допустить Тпер(Х) = Х/А где А - пропускная способность канала Тарх(Х, К) - функция для времени на архивацию сообщения размером Х с коеффициентом сжатия К. ( К > 0) Тогда Т - общее время для передачи собщения размером М на стороне передатчика соответствует. Т = Тпер(К * М) + Тарх(М, К) Задача поиска минимума. Найти производную функции и решить дТ/дК = 0 Здесь просто но уже сдесь очевидно что рещение будет зависеть от А. Осталось самая малось: найти мат модель для Тарх(Х, К) Я предположу: Тарх(Х, К) = Н * Х * 2^-К + С где С - время инициализации архиватора, Н - энтропия сообщения В итоге решение будет зависит всегда от Н, К, А. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 18:41 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
mikronОпищите сначала условия задачи математическим языком. Опухнешь описывать. Время на запаковку очень сильно зависит от содержимого. Результат запаковки тоже. Скорость канала тоже величина не постоянная. Канал и передача это было отвлечение от темы. Попутное исследование: какой вид сжатия предпочтительней. Тема: "Экспресс-проверка данных на возможность сжатия". Т.е. как не тратить время на сжатие того что не жмется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 18:59 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
Склоняюсь к мысли просто сделать вместо одного метода Send() два: SendWithPack() и SendAsIs(). А дальше пусть верхний уровень решает который из двух вызывать. Там известно что за инфа, т.е. есть ли смысл ее паковать. Минус один: переписывать надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 19:12 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
Dima TСклоняюсь к мысли просто сделать вместо одного метода Send() два: SendWithPack() и SendAsIs(). А дальше пусть верхний уровень решает который из двух вызывать. Там известно что за инфа, т.е. есть ли смысл ее паковать. Минус один: переписывать надо.Сделайте три - текущий метод (с некоей автоматикой, пусть и приблизительной), SendWithPack() и SendAsIs(). Тогда переписывать можно будет плавно, не ломая всей структуры, и начиная с тех мест, где наиболее точно известно, нужно сжимать или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 20:49 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
Dima T, Можно текущую функцию дополнить необязательным параметром. Если указан - жмем или нет, если не указан - решает автоматика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 20:50 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
Dima TРасширений нет. На входе кусок памяти. Разбор заголовка тоже не вариант, много их всяких бывает Apache mod_mime_magic справляется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 21:49 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
Изопропилможно проверить на "жатый" формат (mpeg,jpeg,gif, tiff (c анализом компрессии) , стандартные архивы и тп) если пожат - не тратить силы+1 Любой текст, XML, DBF - сжимать. Любую картинку, ZIP - не сжимать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2015, 13:27 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
Вот идеальный пример файла почему метода не сработала Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. По всем моим оценкам файл совсем не жмется. В реале жмется почти в 100 раз (705 байт сжатый размер). Т.е. метода была не для того. Она дает ответ на вопрос сжимаемы ли данные? Варианты ответов: точно жмутся и не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2015, 18:16 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
Dima TПо всем моим оценкам файл совсем не жмется.а покажите оценки, если не секретные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2015, 18:27 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
miksoftDima TПо всем моим оценкам файл совсем не жмется.а покажите оценки, если не секретные. тут все 18569299 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2015, 18:41 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
miksoftDima TПо всем моим оценкам файл совсем не жмется.а покажите оценки, если не секретные. по итогам теста 18574342 понятно что алгоритм изначально в корне неправильный. Тут словарь надо строить и его оценивать. Что уже не экспресс оценка, а почти самопальный архиватор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2015, 18:49 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
Dima Tmiksoftпропущено... а покажите оценки, если не секретные. тут все 18569299 я имел в виду конкретно по файлу "file.bad". интересно что ж за файл такой, что жмется аж в 100 раз, а статистикой себя не выдал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2015, 18:56 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
miksoftя имел в виду конкретно по файлу "file.bad". интересно что ж за файл такой, что жмется аж в 100 раз, а статистикой себя не выдал. Вот же код создания файла 18574342 файл в аттаче ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2015, 19:02 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
Dima Tmiksoftя имел в виду конкретно по файлу "file.bad". интересно что ж за файл такой, что жмется аж в 100 раз, а статистикой себя не выдал. Вот же код создания файла 18574342 файл в аттаче http://www.sql.ru/forum/actualfile.aspx?id=18574555] Приложенный файл (file.bad - 64Kb) Прошу прощения, не вчитался в код. Видимо архиватор успешно ищет длинные одинаковые последовательности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2015, 19:08 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
miksoftВидимо архиватор успешно ищет длинные одинаковые последовательности. Проверка пудинга заключается в том, что его съедают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2015, 19:35 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
ИзопропилПроверка пудинга заключается в том, что его съедают. а рубероид как проверяют? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2015, 19:42 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
miksoftВидимо архиватор успешно ищет длинные одинаковые последовательности. Ищет. Где-то в инете натыкался на алгоритм построения словаря из последовательностей, но нагуглить повторно не смог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2015, 19:54 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
Для XML у меня где-то была статья про специализированные методы. И есть еще мысль что для каждого формата файлов (executable, text, raster images) надо применять специальный набор ключей (WinRAR поддерживает роскошный набор) который находит некое золотое соотношение производительности (Mb/s) и степени сжатия. По поводу пудинга - практически на 100% согласен. Мы не можем предказать как сожмём пока не прогоним алгоритм. Оценочные методы - возможны но только для "однородных файлов". Например - поток PCM (ИКМ) звука. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2015, 19:00 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
maytonОценочные методы - возможны но только для "однородных файлов". Например - поток PCM (ИКМ) звука. Однородный файл поломал всю методу 18574342 Можно проще. Выше предлагали. Прочитать заголовок. Забить самые ходовые форматы (ZIP, RAR, JPG и т.д.). И наткнувшись на них сжатием не заниматься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2015, 19:44 |
|
||
|
Экспресс-проверка данных на возможность сжатия
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonОценочные методы - возможны но только для "однородных файлов". Например - поток PCM (ИКМ) звука. Однородный файл поломал всю методу 18574342 Можно проще. Выше предлагали. Прочитать заголовок. Забить самые ходовые форматы (ZIP, RAR, JPG и т.д.). И наткнувшись на них сжатием не заниматься. Согласен. Я как-то писал скриптики для бэкапа каталога проектов. NetBeans/Idea. И там надо было ставить умные фильтры типа ... если директория начинается на точку то не заходить туда. Или если есть два файла c одинаковым именем (сорц и к нему отладочная инфа) то архивировать только сорц. + если файл jpg/gif/png и им подобные то включать метод Store. Да много чего еще... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2015, 19:53 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39130154&tid=1340847]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
148ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 255ms |
| total: | 473ms |

| 0 / 0 |
