Як "розмір словника" впливає на стиснення?


39

Я знаю, що більш високий розмір може призвести до кращого коефіцієнта стиснення і поглиблення. Але чи є спосіб я вирішити краще? .. оскільки існує стільки варіантів вибору 7zip


Поки що я помітив розмір словника - розмір файлу дає оптимальне стиснення. розмір файлу
Тут файл ∼8mb test.aviмає однаковий коефіцієнт стиснення для всіх розмірів словника більше 8mb. Потім вона починає падати.


2
Так, це тому, що весь файл знаходиться в пам'яті. Однак це може бути неможливим при роботі з файлами з кількома гігами. Рентабельність інвестицій зменшується, чим вище ви йдете. Якщо вам потрібен останній 1%, тоді розмір = розмір файлу. Примітка. Якщо у вас набагато більший набір даних, розмір словника 128 Мб + збільшить час, необхідний для значного стиснення файлів.
кібернард

Відповіді:


28

Повторювані елементи зберігаються у словнику, а код призначається як замінник.

ЦЕ СУЩЕ Спрощення

aaaaaaaaaaaaaaaaaaaaaaaa  0001
bbbbbbbbbbbbbbbbbbbbbbbb  0002
alsdjl;asjdfkl;asdfjkljj  0003

замість цілого рядка він просто поставив код на своє місце. Чим більший словник, тим більше кодів він може працювати. Зазвичай, коли словник стає повним, він починає новий на ходу. Коли він запускає новий, він порожній, і новим кодам присвоюється виявленим шаблонам.

Взагалі, чим більше, тим краще до точки. Весь словник зберігається в пам'яті, тому вам потрібно більше оперативної пам'яті, ніж розмір словника.

Розмір словника залежить від стисливості ваших даних, кількості файлів, розміру та загального розміру.

Як правило, 32mb більш ніж достатньо, але якщо ви стискаєте численні файли з кількома гігами, тоді можна використовувати набагато більшу кількість. Більш великі словники часто роблять процес повільніше, але результати виходять у менший файл.


2
Чи є розмір, який ви встановите для обмеження розміру словника, чи фактичний розмір він буде? Програми (зокрема 7-zip) зазвичай розумно визначають, чи дійсно їм потрібно заповнити весь дозволений словник?
Стан

1
Так, це межа. Коли вони заповнені, вони або починають новий словник, або розумно виштовхують старі дані. Якщо даних для стиснення більше, ніж розмір словника він заповниться.
кібернард

@cybernard "вона заповниться"? Щоб було зрозуміло, чи залишається розмір словника меншим за ліміт, коли він не заповнений?
LonnieBest

1
@LonnieBest Так, словник починається абсолютно порожнім. Кожні стільки бітів / байтів роблять новий словник, поки він не заповниться.
кібернард
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.