Найти в Дзене
InDevices

Сжатие данных: когда битов становится меньше, а толку больше

Я,
как человек старой закалки, привык видеть мир в его первозданном виде,
без всяких там излишеств. Вот, к примеру, взять фотографию, это же набор
нулей и единиц, битов, которые описывают каждый пиксель. Но ведь если
посмотреть на всё это дело внимательно, то оказывается, что там много
лишнего. Вот, скажем, небо на снимке, оно почти одного цвета. И нет
никакой надобности описывать каждый синий пиксель по отдельности. Это ж
сколько места впустую тратится! И тут на помощь приходит сжатие данных,
или как его ещё называют, Data Compression.
Понимаете, это не
какая-то магия, а всего лишь математика, которая позволяет нам убрать
лишнее, не потеряв при этом важного. В основе лежит очень простая идея:
найти в данных повторяющиеся участки и заменить их на более короткие
"указатели".
Например, у нас есть строка из тысячи символов "А".
Зачем хранить все эти тысячи "А", если можно просто написать "тысяча раз
буква А"? Вот это и есть простейшее сжатие.
Существует два основных вида


Сжатие данных: когда битов становится меньше, а толку больше
Сжатие данных: когда битов становится меньше, а толку больше

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

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

Например, у нас есть строка из тысячи символов "А".
Зачем хранить все эти тысячи "А", если можно просто написать "тысяча раз
буква А"? Вот это и есть простейшее сжатие.

Существует два основных вида сжатия: с потерями и без потерь.

Сжатие
без потерь, или Lossless Compression, работает так, что после
распаковки вы получаете абсолютно точную копию исходных данных. Ни один
бит не теряется. Это как сложить вещи в чемодан: вы их утрамбовали, но
достанете ровно столько же, сколько положили. Этот вид сжатия
используется для архивов (ZIP, RAR), документов, исполняемых файлов. Тут
важна абсолютная точность. Например, вы же не хотите, чтобы в вашей
программе пропал один байт и она перестала работать?

Сжатие с
потерями, или Lossy Compression,, это уже совсем другая история. Оно
используется тогда, когда мы можем пожертвовать частью информации, не
сильно навредив восприятию. В основном это касается мультимедийных
файлов: фотографий (JPEG), музыки (MP3), видео (MPEG). Вот тут-то и
начинаются фокусы.

Возьмём, к примеру, JPEG. Он отсекает те
детали, которые человеческий глаз всё равно не заметит. Крошечные
изменения цвета в больших однотонных областях или высокочастотные шумы,
всё это беспощадно удаляется. И в итоге файл становится в десятки раз
меньше, а мы, смотря на фотографию, не видим никакой разницы. Почти.
Если, конечно, не начать её увеличивать и рассматривать в микроскоп.

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

Так что сжатие данных, это
не просто способ сэкономить место на диске. Это то, что позволило
интернету стать таким, какой он есть. Попробуйте представить себе,
сколько бы весила одна страничка с картинками, если бы все они были без
сжатия. Миллионы и миллионы байтов.

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