Что такое сжатие данных? (Определение, значение и методы)

15 июля 2021 г.

Хранение и передача данных часто являются важными проблемами для предприятий, правительств и других организаций. Сжатие данных позволяет этим организациям максимизировать объем данных, которые они могут обрабатывать, при минимизации соответствующего пространства и затрат. Если вы храните или передаете данные в рамках своей работы, может быть полезно понять, как работает сжатие и какие преимущества оно может дать вам и вашей организации. В этой статье мы даем определение сжатию данных, обсуждаем его важность, описываем различные методы сжатия и даем советы по реализации сжатия.

Что такое сжатие данных?

Сжатие данных — это действие или процесс уменьшения размера компьютерного файла. С помощью алгоритма или набора правил для выполнения операции компьютеры могут определить способы сокращения длинных строк данных, а затем собрать их в распознаваемой форме после извлечения. В результате получается файл, в котором используется меньше битов или единиц информации, чем в исходном файле. Существует два типа сжатия данных:

Без потерь

В данных без потерь все исходные данные остаются нетронутыми. Алгоритм уменьшает размер файла таким образом, чтобы сохранить информацию, необходимую для расширения файла до исходного размера при распаковке. Формат без потерь необходим для файлов, которые не могут функционировать или будут заметно скомпрометированы без всех исходных данных. К таким файлам относятся программные приложения, документы и определенные мультимедийные форматы, используемые профессионалами, например фотографами, кинематографистами и музыкантами.

с потерями

Сжатие с потерями может еще больше уменьшить размеры файлов, но с некоторыми компромиссами в деталях. Этот формат подходит для типов файлов, в которых едва заметны потерянные детали. Такие файлы включают мультимедийные файлы на стороне пользователя, такие как загрузки музыки, фильмов и изображений. Для них есть некоторое снижение качества воспроизведения, но потребитель вряд ли это заметит.

Почему важно сжатие данных?

Сжатие данных сводит к минимуму место, занимаемое файлами на жестком диске, и сокращает время, необходимое для их передачи или загрузки. Это сокращение пространства и времени может привести к значительной экономии средств. Например, организации, хранящие большие объемы данных, такие как корпорации и поставщики медицинских услуг, могут сэкономить на расходах на хранение данных, поскольку сжатие позволяет им хранить больше файлов с меньшей емкостью. Кроме того, поскольку для передачи сжатых файлов через Интернет требуется меньше времени, таким организациям меньше нужно вкладывать средства в дорогостоящие обновления полосы пропускания.

Некоторым другим организациям сжатие позволяет предоставлять оптимальные услуги с максимальным удобством. Например, поставщики телекоммуникационных услуг обрабатывают огромные объемы аудио- и видеоданных. Сжатие позволяет им обслуживать большое количество клиентов с минимальным ущербом для слухового или визуального качества.

Методы сжатия данных

Ниже приведены некоторые распространенные методы сжатия данных:

Лемпель-Зив

Сжатие Лемпеля-Зива — это алгоритм без потерь, который находит повторяющиеся символы в наборе данных и заменяет их токенами или укороченными последовательностями. Например, в сообщении, которое читается как «AAABABAAABAA», алгоритм будет сканировать сообщение, останавливаться на каждой незнакомой последовательности букв и назначать токен. Первой незнакомой последовательностью будет одиночная буква «А», которая может получить токен «1». Следующим будет «AA», что будет «2». «BA» будет третьей последовательностью, получившей «3». Последовательности после этого были бы знакомы. Алгоритм может преобразовать исходное сообщение в «1233231» со сжатием почти 60%.

Кодирование длин серий

Кодирование длин серий — это метод без потерь, в котором используются часто повторяющиеся строки или серии повторяющихся данных. Например, если файл изображения содержит строку из 10 последовательных пикселей одного цвета, алгоритм может вставить данные, сообщающие о наличии 10 таких пикселей, а затем удалить все избыточные данные. Хотя алгоритм добавляет некоторые данные, он удаляет гораздо больше, уменьшая общий размер файла.

Словарное кодирование

Кодирование по словарю — это еще один метод без потерь, который преобразует исходные данные в сокращенный числовой код с использованием битов 0 и 1, а затем использует «словарь» в качестве ссылки для преобразования кода обратно в распознаваемую форму. Это можно сравнить с рестораном, использующим числа для представления различных комбинаций блюд в меню. Например, число один может означать «жареный цыпленок с картофелем и горошком». Описание пункта меню занимает 36 символов, а числовой код всего один. Здесь словарь — это знание того, что определенное число обозначает конкретное блюдо.

Что касается компьютерных файлов, представьте себе 100-байтовый файл изображения, состоящий из двух цветов. Алгоритм может разделить байты на группы по 10 и использовать трехзначный код для каждого цвета. Каждая группа из 10 байтов — это как бы пункт меню, а словарь — это легенда, связывающая каждую из них с кодом. Таким образом, заменяя каждые 10 байт строкой из трех цифр, алгоритм может получить окончательный размер сжатого изображения размером всего 30 бит. После извлечения файла он может затем преобразовать биты обратно в их первоначальную форму.

Перцептивное кодирование

Перцептивное кодирование — это метод сжатия с потерями, который отбрасывает части файла, которые большинство людей не в состоянии воспринять. В зависимости от типа файла алгоритм может определить, какие элементы файла подходят под это описание, и впоследствии уменьшить или удалить его наличие. Например, необработанный музыкальный файл может содержать звуковые волны ультразвукового диапазона, которые люди не слышат. Таким образом, алгоритм может полностью удалить любые данные, относящиеся к УЗИ, значительно уменьшив общий размер файла без заметного снижения качества звука.

То же самое может относиться к изображениям и видео. В первом случае алгоритм может сохранять элементы, которые обычно хорошо воспринимаются человеческим глазом, например контраст между объектами, но уменьшать незаметные компоненты внутри объектов, например пиксели схожего цвета. В последнем случае алгоритм может уменьшить передачу статических пикселей между кадрами, например неподвижных объектов.

Рекомендации по сжатию данных

Примите во внимание следующие советы по реализации сжатия данных:

Выберите подходящий тип сжатия

Для каждого файла, который вы должны сжать, сначала определите, должен ли он быть без потерь или с потерями. Чтобы решить, что использовать, спросите себя, приемлем ли какой-либо компромисс в качестве данных. Как уже говорилось, некоторая потеря деталей в аудио-, видео- и графических файлах вряд ли будет заметной, поэтому для них подходит сжатие с потерями. Однако в таких файлах, как текстовые документы, будет заметна потеря деталей, поэтому рекомендуется сжатие без потерь.

Используйте сопроцессор

Сопроцессор позволяет вашему компьютеру перенаправлять вычислительную мощность на дополнительный ЦП, освобождая ресурсы вашего основного компьютера для выполнения обычных действий. Это позволяет вам оставаться продуктивным при сжатии файлов, что может быть ресурсоемкой функцией. Рассмотрите возможность добавления программируемой пользователем вентильной матрицы, или FPGA, микрочипа, который можно настроить для работы в качестве дополнительного процессора. Это особенно полезно для сжатия больших типов данных.

Рассмотрите возможность дедупликации данных

Дедупликация данных — это процесс, который удаляет дубликаты в наборе данных. Он работает, сравнивая шаблоны данных, определяя, какие шаблоны уже существуют в сохраненном наборе, и заменяя избыточные экземпляры ссылкой, которая указывает на уже сохраненный шаблон. Поскольку такие шаблоны могут повторяться в конкретном случае передачи или хранения данных, дедупликация может значительно уменьшить объем обрабатываемых данных. Таким образом, это полезное дополнение к сжатию.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *