Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Стиснення даних

Читайте также:
  1. Автоматизовані бази даних
  2. Алгоритми і структури даних.
  3. ВИМІРЮВАННЯ КОЛЬОРУ В ЗАДАНИХ ОСНОВНИХ чЧ, зЗ, сС.
  4. Дібрати антоніми до поданих слів, враховуючи їхню багатозначність
  5. До яких витрат включають собівартість реалізованих товарів, виконаних робіт, наданих послуг?
  6. Завдання 10. Створення бази даних «Склад» для ведення обліку матеріалів в середовищі Access
  7. Зйомка басейнів, збирання даних для розрахунку штучних споруд

Використання методу СД при синхронізації даних між клієнтом і сервером надає змогу зменшити кількість переданого трафіку.

СД – метод, що зменшує об’єм даних. На вході приймає масив байт N довжини, з використанням певного алгоритму на виході отримує масив байт M довжини, для якого виконується умова M < N. Основною властивістю є те, що знаючи який алгоритм стиснення використовувався є можливість зробити обернену операцію, що поверне початкові дані.

Критеріями ефективності до алгоритмів СД є:

- Ступінь компресії. Основний критерій, це відношення отриманої довжини масиву байт (М) до вхідної довжини масиву байт (N).

St = M / N

Чим нижче отримане значення тим кращим є алгоритм, що використовується.

- Час стиснення. Час за який виконуються алгоритм стиснення.

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

- Відсоток СД. Обернений критерій до ступеню компресії. Показує яка кількість даних була стиснута.

Платформа Java включає багато бібліотек для СД. Основними з них є:

- Steria.LZH

- java.util.zip.GZIP(stream)

- java.util.zip.Deflater.BEST_COMPRESSION (block)

- java.util.zip.Deflater.BEST_SPEED (block)

- java.util.zip.Deflater.HUFFMAN_ONLY (block)

- apache.commons.compress.BZIP2 (stream)

- apache.commons.compress.GZIP (stream)

- apache.commons.compress.XZ (stream)

- com.ning.LZF (block)

- com.ning.LZF (stream)

- QuickLZ (block)

- org.xerial.snappy.Snappy (block)

block – приймає файл як масив байт (byte[]), стискає і повертає також масив байт.

Stream – приймає ім’я файлу, потім зчитує його в InputStream і зберігає за допомогою OutputStream.

 

Порівняння алгоритмів стиснення

Для перевірки та порівняння алгоритмів стиснення був розроблений код, який вираховує: ступінь компресії, мінімальний час стиснення, максимальний час стиснення, середній час стиснення, мінімальний час розпакування, максимальний час розпакування, середній час розпакування.

Для дослідження роботи різних алгоритмів стиснення використовувались txt файли різного розміру. Оскільки стиснення даних необхідно для зменшення переданого трафіку від сервера до клієнта то операція стиснення виконувалась на сервері, а операція розпакування на АП.

Таблиця 3.1

Ступінь компресії різних алгоритмів стиснення у відсотках

Розмір даних (байт) Тип алгоритму
                       
  62,76 63,27 60,2 60,97 61,22 70,15 63,27 79,59 78,57 78,57 81,63 78,06
  55,16 54,32 49,18 53,44 58,04 55,98 53,43 49,23 67,10 61,22 66,29 64,81
  44,96 39,86 39,84 45,32 43,74 35,98 39,87 36,59 58,44 58,44 57,99 61,82
  36,45 29,99 29,91 35,98 34,34 23,94 29,99 24,34 47,69 47,69 44,05 49,36

 

Таблиця 3.2

Середній час стиснення різних алгоритмів стиснення у мілісекундах

Розмір даних (байт) Тип алгоритму
                       
                         
                         
                         
                         

 

Таблиця 3.3

Середній час розпакування різних алгоритмів стиснення у мілісекундах


Дата добавления: 2015-12-07; просмотров: 84 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.006 сек.)