Как работает сжатие файлов
Перейти к содержимому

Как работает сжатие файлов

  • автор:

Простым языком о том, как работает сжатие файлов

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

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

Что такое сжатие?

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

Сжатие с потерями

Такой способ уменьшает размер файла, удаляя ненужные биты информации. Чаще всего встречается в форматах изображений, видео и аудио, где нет необходимости в идеальном представлении исходного медиа. MP3 и JPEG — два популярных примера. Но сжатие с потерями не совсем подходит для файлов, где важна вся информация. Например, в текстовом файле или электронной таблице оно приведёт к искажённому выводу.

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

Аналогично файлы JPEG удаляют некритичные части изображений. Например, в изображении с голубым небом сжатие JPEG может изменить все пиксели на один или два оттенка синего вместо десятков.

Чем сильнее вы сжимаете файл, тем заметнее становится снижение качества. Вы, вероятно, замечали такое, слушая некачественную музыку в формате MP3, загруженную на YouTube. Например, сравните музыкальный трек высокого качества с сильно сжатой версией той же песни.

Сжатие с потерями подходит, когда файл содержит больше информации, чем нужно для ваших целей. Например, у вас есть огромный файл с исходным (RAW) изображением. Целесообразно сохранить это качество для печати изображения на большом баннере, но загружать исходный файл в Facebook будет бессмысленно. Картинка содержит множество данных, не заметных при просмотре в социальных сетях. Сжатие картинки в высококачественный JPEG исключает некоторую информацию, но изображение выглядит почти как оригинал.

При сохранении в формате с потерями, вы зачастую можете установить уровень качества. Например, у многих графических редакторов есть ползунок для выбора качества JPEG от 0 до 100. Экономия на уровне 90 или 80 процентов приводит к небольшому уменьшению размера файла с незначительной визуальной разницей. Но сохранение в плохом качестве или повторное сохранение одного и того же файла в формате с потерями ухудшит его.

Посмотрите на этот пример.

Оригинальное изображение, загруженное с Pixabay в формате JPEG. 874 КБ:

Результат сохранения в формате JPEG с 50-процентным качеством. Выглядит не так уж плохо. Вы можете заметить артефакты по краям коробок только при увеличении. 310 КБ:

Исходное изображение, сохранённое в формате JPEG с 10-процентным качеством. Выглядит ужасно. 100 КБ:

Где используется сжатие с потерями

Как мы уже упоминали, сжатие с потерями отлично подходит для большинства медиафайлов. Это крайне важно для таких компаний как Spotify и Netflix, которые постоянно транслируют большие объёмы информации. Максимальное уменьшение размера файла при сохранении качества делает их работу более эффективной.

Сжатие без потерь

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

Вместо того чтобы показывать все 10 блоков, мы можем удалить все кирпичи одного цвета, кроме одного. Используя цифры, чтобы показать, сколько кирпичей каждого цвета было, мы представляем те же данные используя гораздо меньше кирпичей — три вместо десяти.

Это простая иллюстрация того, как осуществить сжатие без потерь. Та же информация сохраняется более эффективным способом. Рассмотрим реальный файл: mmmmmuuuuuuuoooooooooooo. Его можно сжать до гораздо более короткой формы: m5u7o12. Это позволяет использовать 7 символов вместо 24 для представления одних и тех же данных.

Где используется сжатие без потерь

ZIP-файлы — популярный пример сжатия без потерь. Хранить информацию в виде ZIP-файлов более эффективно, при этом когда вы распаковываете архив, там присутствует вся оригинальная информация. Это актуально для исполняемых файлов, так как после сжатия с потерями распакованная версия будет повреждена и непригодна для использования.

Другие распространённые форматы без потерь — PNG для изображений и FLAC для аудио. Форматы видео без потерь встречаются редко, потому что они занимают много места.

Сжатие с потерями vs сжатие без потерь

Теперь, когда мы рассмотрели обе формы сжатия файлов, может возникнуть вопрос, когда и какую следует использовать. Здесь всё зависит от того, для чего вы используете файлы.

Скажем, вы только что откопали свою старую коллекцию компакт-дисков и хотите оцифровать её. Когда вы копируете свои компакт-диски, имеет смысл использовать формат FLAC, формат без потерь. Это позволяет получить мастер-копию на компьютере, которая обладает тем же качеством звука, что и оригинальный компакт-диск.

Позже вы, возможно, захотите загрузить музыку на телефон или старый MP3-плеер. Здесь не так важно, чтобы музыка была в идеальном качестве, поэтому вы можете конвертировать файлы FLAC в MP3. Это даст вам аудиофайл, который по-прежнему достаточно хорош для прослушивания, но не занимает много места на мобильном устройстве. Качество MP3, преобразованного из FLAC, будет таким же, как если бы вы создали сжатый MP3 с оригинального CD.

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

Проблемы во время сжатия файлов

Бесполезно конвертировать формат с потерями в формат без потерь. Это пустая трата пространства. Скажем, у вас есть MP3-файл весом в 3 МБ. Преобразование его в FLAC может привести к увеличению размера до 30 МБ. Но эти 30 МБ содержат только те звуки, которые имел уже сжатый MP3. Качество звука от этого не улучшится, но объём станет больше.

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

Заключение

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

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

Алгоритмы сжатия данных без потерь

Существующие алгоритмы сжатия данных можно разделить на два больших класса – с потерями, и без. Алгоритмы с потерями обычно применяются для сжатия изображений и аудио. Эти алгоритмы позволяют достичь больших степеней сжатия благодаря избирательной потере качества. Однако, по определению, восстановить первоначальные данные из сжатого результата невозможно.
Алгоритмы сжатия без потерь применяются для уменьшения размера данных, и работают таким образом, что возможно восстановить данные в точности такими, какие они были до сжатия. Они применяются в коммуникациях, архиваторах и некоторых алгоритмах сжатии аудио и графической информации. Далее мы рассмотрим только алгоритмы сжатия без потерь.
Основной принцип алгоритмов сжатия базируется на том, что в любом файле, содержащем неслучайные данные, информация частично повторяется. Используя статистические математические модели можно определить вероятность повторения определённой комбинации символов. После этого можно создать коды, обозначающие выбранные фразы, и назначить самым часто повторяющимся фразам самые короткие коды. Для этого используются разные техники, например: энтропийное кодирование, кодирование повторов, и сжатие при помощи словаря. С их помощью 8-битный символ, или целая строка, могут быть заменены всего лишь несколькими битами, устраняя таким образом излишнюю информацию.

История

Иерархия алгоритмов:

Хотя сжатие данных получило широкое распространение вместе с интернетом и после изобретения алгоритмов Лемпелем и Зивом (алгоритмы LZ), можно привести несколько более ранних примеров сжатия. Морзе, изобретая свой код в 1838 году, разумно назначил самым часто используемым буквам в английском языке, “e” и “t”, самые короткие последовательности (точка и тире соотв.). Вскоре после появления мейнфреймов в 1949 году был придуман алгоритм Шеннона — Фано, который назначал символам в блоке данных коды, основываясь на вероятности их появления в блоке. Вероятность появления символа в блоке была обратно пропорциональна длине кода, что позволяло сжать представление данных.
Дэвид Хаффман был студентом в классе у Роберта Фано и в качестве учебной работы выбрал поиск улучшенного метода бинарного кодирования данных. В результате ему удалось улучшить алгоритм Шеннона-Фано.
Ранние версии алгоритмов Шеннона-Фано и Хаффмана использовали заранее определённые коды. Позже для этого стали использовать коды, созданные динамически на основе данных, предназначаемых для сжатия. В 1977 году Лемпель и Зив опубликовали свой алгоритм LZ77, основанный на использования динамически создаваемого словаря (его ещё называют «скользящим окном»). В 78 году они опубликовали алгоритм LZ78, который сначала парсит данные и создаёт словарь, вместо того, чтобы создавать его динамически.

Проблемы с правами

Алгоритмы LZ77 и LZ78 получили большую популярность и вызвали волну улучшателей, из которых до наших дней дожили DEFLATE, LZMA и LZX. Большинство популярных алгоритмов основаны на LZ77, потому что производный от LZ78 алгоритм LZW был запатентован компанией Unisys в 1984 году, после чего они начали троллить всех и каждого, включая даже случаи использования изображений в формате GIF. В это время на UNIX использовали вариацию алгоритма LZW под названием LZC, и из-за проблем с правами их использование пришлось сворачивать. Предпочтение отдали алгоритму DEFLATE (gzip) и преобразованию Барроуза — Уилера, BWT (bzip2). Что было и к лучшему, так как эти алгоритмы почти всегда превосходят по сжатию LZW.
К 2003 году срок патента истёк, но поезд уже ушёл и алгоритм LZW сохранился, пожалуй, только в файлах GIF. Доминирующими являются алгоритмы на основе LZ77.
В 1993 году была ещё одна битва патентов – когда компания Stac Electronics обнаружила, что разработанный ею алгоритм LZS используется компанией Microsoft в программе для сжатия дисков, поставлявшейся с MS-DOS 6.0. Stac Electronics подала в суд и им удалось выиграть дело, в результате чего они получили более $100 миллионов.

Рост популярности Deflate

Большие корпорации использовали алгоритмы сжатия для хранения всё увеличивавшихся массивов данных, но истинное распространение алгоритмов произошло с рождением интернета в конце 80-х. Пропускная способность каналов была чрезвычайно узкой. Для сжатия данных, передаваемых по сети, были придуманы форматы ZIP, GIF и PNG.
Том Хендерсон придумал и выпустил первый коммерчески успешный архиватор ARC в 1985 году (компания System Enhancement Associates). ARC была популярной среди пользователей BBS, т.к. она одна из первых могла сжимать несколько файлов в архив, к тому же исходники её были открыты. ARC использовала модифицированный алгоритм LZW.
Фил Катц, вдохновлённый популярностью ARC, выпустил программу PKARC в формате shareware, в которой улучшил алгоритмы сжатия, переписав их на Ассемблере. Однако, был засужен Хендерсоном и был признан виновным. PKARC настолько открыто копировала ARC, что иногда даже повторялись опечатки в комментариях к исходному коду.
Но Фил Катц не растерялся, и в 1989 году сильно изменил архиватор и выпустил PKZIP. После того, как его атаковали уже в связи с патентом на алгоритм LZW, он изменил и базовый алгоритм на новый, под названием IMPLODE. Вновь формат был заменён в 1993 году с выходом PKZIP 2.0, и заменой стал DEFLATE. Среди новых возможностей была функция разбиения архива на тома. Эта версия до сих пор повсеместно используется, несмотря на почтенный возраст.
Формат изображений GIF (Graphics Interchange Format) был создан компанией CompuServe в 1987. Как известно, формат поддерживает сжатие изображения без потерь, и ограничен палитрой в 256 цветов. Несмотря на все потуги Unisys, ей не удалось остановить распространение этого формата. Он до сих пор популярен, особенно в связи с поддержкой анимации.
Слегка взволнованная патентными проблемами, компания CompuServe в 1994 году выпустила формат Portable Network Graphics (PNG). Как и ZIP, она использовала новый модный алгоритм DEFLATE. Хотя DEFLATE был запатентован Катцем, он не стал предъявлять никаких претензий.
Сейчас это самый популярный алгоритм сжатия. Кроме PNG и ZIP он используется в gzip, HTTP, SSL и других технологиях передачи данных.

К сожалению Фил Катц не дожил до триумфа DEFLATE, он умер от алкоголизма в 2000 году в возрасте 37 лет. Граждане – чрезмерное употребление алкоголя опасно для вашего здоровья! Вы можете не дожить до своего триумфа!

Современные архиваторы

ZIP царствовал безраздельно до середины 90-х, однако в 1993 году простой русский гений Евгений Рошал придумал свой формат и алгоритм RAR. Последние его версии основаны на алгоритмах PPM и LZSS. Сейчас ZIP, пожалуй, самый распространённый из форматов, RAR – до недавнего времени был стандартом для распространения различного малолегального контента через интернет (благодаря увеличению пропускной способности всё чаще файлы распространяются без архивации), а 7zip используется как формат с наилучшим сжатием при приемлемом времени работы. В мире UNIX используется связка tar + gzip (gzip — архиватор, а tar объединяет несколько файлов в один, т.к. gzip этого не умеет).

Прим. перев. Лично я, кроме перечисленных, сталкивался ещё с архиватором ARJ (Archived by Robert Jung), который был популярен в 90-х в эру BBS. Он поддерживал многотомные архивы, и так же, как после него RAR, использовался для распространения игр и прочего вареза. Ещё был архиватор HA от Harri Hirvola, который использовал сжатие HSC (не нашёл внятных объяснений — только «модель ограниченного контекста и арифметическое кодирование»), который хорошо справлялся со сжатием длинных текстовых файлов.

В 1996 году появился вариант алгоритма BWT с открытыми исходниками bzip2, и быстро приобрёл популярность. В 1999 году появилась программа 7-zip с форматом 7z. По сжатию она соперничает с RAR, её преимуществом является открытость, а также возможность выбора между алгоритмами bzip2, LZMA, LZMA2 и PPMd.
В 2002 году появился ещё один архиватор, PAQ. Автор Мэтт Махоуни использовал улучшенную версию алгоритма PPM с использованием техники под названием «контекстное смешивание». Она позволяет использовать больше одной статистической модели, чтобы улучшить предсказание по частоте появления символов.

Будущее алгоритмов сжатия

Конечно, бог его знает, но судя по всему, алгоритм PAQ набирает популярность благодаря очень хорошей степени сжатия (хотя и работает он очень медленно). Но благодаря увеличению быстродействия компьютеров скорость работы становится менее критичной.
С другой стороны, алгоритм Лемпеля-Зива –Маркова LZMA представляет собой компромисс между скоростью и степенью сжатия и может породить много интересных ответвлений.
Ещё одна интересная технология «substring enumeration» или CSE, которая пока мало используется в программах.

В следующей части мы рассмотрим техническую сторону упомянутых алгоритмов и принципы их работы.

Как работает сжатие файлов

на школьную страницу. на школьную страницу.

Как работает архиватор

Как работает трансформатор знают все: «У-у-у-у-у. ».
Многие считают, что архиватор работает аналогичным образом.
Это не совсем так.

Работа архиватора состоит из нескольких последовательных шагов. Сначала он просматривает байт за байтом входной файл. Для текущей позиции в файле он ищет самый длинный повтор в предыдущей части файла:

. работает трансформатор . архиватор работает . ===== ===== ▲ | └─────────────┘ отступить на 79 байт назад и скопировать оттуда 5 байтов

Строчки могут перекрываться, например так:

. abcabcabc . ========= ▲ | └──┘ отступить на 3 байта назад и скопировать оттуда 6 байтов
. fffffffffffffffffffff . == ▲| └┘ отступить на 1 байт назад и скопировать оттуда 21 байт
  • На сколько байтов надо отступить назад (смещение).
  • Сколько байтов скопировать (длина).
Смещение: 87, 125, 22, 355, 2314, . Длина: 3, 5, 1, 1, 12, .

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

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

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

Один из самых известных примеров такого кода — азбука Морзе.

  • «Война и мир.fb2» — роман Льва Толстого «Война и мир» длиной 5 564 044 байт,
  • EXCEL.EXE — исполняемый файл из MS Office длиной 18 352 488 байт.
Архиватор Война и мир.fb2 Excel.exe
ARJ 1 586 779 9 819 278
RAR 913 989 7 921 519
ZIP 1 547 000 9 800 479
7Z 1 104 753 6 898 313

Таким образом, коэффициент сжатия — от 3 до 6.

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

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

Ещё одна интересная возможность, которая, правда, реализована не во всех архиваторах — сплошной (solid) архив. Обычно при упаковке в один архив нескольких файлов каждый из них сжимается независимо от остальных. В результате, если одна и таже цепочка символов встречается в разных файлах, мы не получаем никакого выигрыша при сжатии. При сплошном сжатии все файлы «мысленно» сливаются в один файл и лишь потом сжимаются. В некоторых случаях, например при сжатии большого количества небольших похожих текстов, это может дать очень существенный выигрыш. Правда следует понимать, что в таком случае для извлечения из архива одного-единственного файла, придется архив распаковывать с самого начала.

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

RAR a -p12345 -r arch *.txt

в архив с именем arch.rar положит все файлы с расширением txt из текущего каталога и его подкаталогов. Архив будет зашифрован с паролем «12345». Для извлечения файлов из архива даем команду

RAR x -p12345 arch

Не зная пароля архив не распаковать. Если вы забыли или не точно помните одну-две буквы, можно попытаться подобрать пароль простым перебором. Но не следует надеяться подобрать «полностью забытый» пароль — устанете ждать.

Если вы не хотите в открытую набирать пароль на клавиатуре, можно дать команду

RAR a -p -r arch *.txt

не указывая никакого пароля. В этом случае архиватор предложит ввести его с клавиатуры в «секретном» режиме, то есть не отображая вводимые символы на экране.

В некоторых случаях без паролей вообще никак не обойтись. Многие почтовые системы (mail.ru, gmail.com и др.) не хотят пересылать exe-файлы (а также dll, скрипты и некоторые другие), — боятся вирусов. Более того, если вы попытаетесь переслать exe-файл через mail.ru, то отправка писем с этого адреса будет блокирована на несколько дней, правда приниматься письма всё равно будут.

Можно попытаться обмануть почтовую систему и упаковать пересылаемые файлы в архив. Но почтовые системы и эту хитрость знают и файл всё равно не пропустят. Единственная возможность — упаковать файлы в архив с паролем. На этом почтовая система сдается и файл пропускает. Пароль (чтобы не забыть) лучше указать тут же, в теле письма. И не надо выдумывать пароли типа:

kjas&8873s_+-kNN. mohi^gwFJ$rc3)kNBaImnd?KM$3&fdyHhf99(24)(

хотя это вполне нормально сработает. Лучше ограничиться паролем

12345

Не ищите приключений на свою голову!

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

RAR a -r -ac -ao arch *.txt

упакует в архив только файлы у которых архивный бит равен 1 (ключ -ao) и затем сбросит этот бит в 0 (ключ -ac). В результате в архив будут упакованы лишь файлы, которые были созданы или изменены после предыдущей архивации. Если, например, в вашем рабочем каталоге 100 тысяч файлов, общий размер архива может составить несколько гигабайт. Если же в архив упаковывать лишь файлы, которые изменились с момента предыдущей архивации, ежедневный архив получится совсем небольшим.

Можно сделать так, чтобы имя получаемого архива зависело от даты и времени. Комадна

RAR a -r -ac -ao -agYYYY_MM_DD_HH_MM_SS arch *.txt

создает архив с именем

arch2013_10_24_09_02_45.rar

(24 октября 2013 г. время 9 часов 02 минуты 45 секунд). В этом архиве будут лежать файлы из текущего каталога и его подкаталогов (ключ -r) с расширением txt, но не все, а лишь те, которые изменились с момента предыдущей архивации.

Многие архиваторы умеют создавать многотомные архивы. Эта возможность появилась в древности потому, что архивы часто хранились на дискетах, объём которых был фиксирован (360К, 1.2М или 1.44М байт), и архивы перестали помещаться на дискету. Поэтому архивный файл резался архиватором на части заданного размера, каждую из которых можно было хранить на одной дискете.

В настоящее время эта возможность используется при пересылке больших файлов по почте. Многие почтовые системы не хотят пересылать большие файлы (10М байт и более). В этом случае вы можете упаковать его в многотомный архив. Команда

RAR a arch -v6M MyFilm.avi

создат файлы

arch.part01.rar arch.part02.rar .

размером по 6М байт каждый (кроме последнего).

Сжимать с помощью архиватора фотографию — не очень хорошая идея. Возьмем, например, BMP-файл с фотоаппарата размером 4288*2848 точек. Его размер — 36М байт. В результате сжатия архиватором RAR получим файл размера 12М байт. То есть размер уменьшился в 3 раза. Если же мы сохраним тот же файл в формате JPEG, размер файла можно уменьшить в несколько десятков раз. Правда, этот формат — с потерями. Подробнее про него можно узнать здесь .

Объясните на пальцах, как работает сжатие WinRAR?

Вы используете Internet Explorer устаревшей и не поддерживаемой более версии. Чтобы не было проблем с отображением сайтов или форумов обновите его до версии 7.0 или более новой. Ещё лучше — поставьте браузер Opera или Mozilla Firefox.

Обсудить и задать вопросы можно в этой теме.

AGRESSOR
литератор

Как происходит сжатие? Ну, допустим, я понимаю, что перекодировке, скажем, рисунка формата *.bmp в формат *.jpeg можно убрать какую-то информацию. Картинка станет хуже, но при этом меньше и все равно будет восприниматься глазом. Или, например, можно перекодировать громоздкий *.wav в формат *.mp3 — с теми же потерями. Это понятно, что-то отсекается, что не воспринимается глазом/ухом и файл в результате становится заметно меньше размером.

Но при сжатии RAR-м почему так получается? Сначала сжали — файл стал маленьким. Информация отсечена (допустим). Но при раскодировании файл-то вынимается прежний!

Причем плотности сжатия разные. У текста очень высокая (в 5-6 раз сжимает), а у видео или аудио почти никакая (порядка 5-7 % по памяти).

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

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