Сжатие. Параметры сжатия файла. Перемещение и копирование сжатых файлов и папок

Перед тем как начинать процесс сжатия файла или папки, очень важно понять все получаемые от этого выгоды, и разобрать сами доступные в Windows 7 методы сжатия:

  • NTFS сжатие файла
  • Сжатие (zip) папки.

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

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


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

Сжатие NTFS, доступное на использующих файловую систему NTFS жестких дисках, имеет следующие ограничения и особенности:

  • Сжатие - атрибут для файла или папки.
  • Папки и файлы на томе NTFS, либо сжаты, либо нет.
  • Новые файлы, созданные в сжатой папке сжимаются по умолчанию.
  • Состояние сжатой папки не обязательно отражает состояние сжатия файлов в этой папке. Например, папки могут быть сжаты без сжатия его содержания, и некоторые или все файлы в сжатой папке можно распаковать.
  • Работа с NTFS-сжатыми файлами без их распаковки, так как они распаковываются и снова сжимаются без вмешательства пользователя.
  • Если сжатый файл открыт, система автоматически его распаковывает.
  • При закрытии файла Windows снова его сжимает.
  • Для упрощения распознавания, NTFS сжатые имена файлов и папок отображаются в другом цвете.
  • NTFS-сжатые файлы и папки остаются в сжатом виде, только на NTFS томе.
  • NTFS сжатые файлы не могут быть зашифрованы.
  • Сжатые байты файла недоступны для приложений; они видят только несжатые данные.
  • Приложения, открывающие сжатые файлы могут работать с ними, как с не сжатыми.
  • Сжатые файлы не могут быть скопированы в другой файловой системе.

Примечание: для управления сжатием NTFS можно использовать компактный инструмент командной строки.

Перемещение и копирование сжатых файлов и папок.


Перемещенные или скопированные сжатые файлы и папки могут изменить свое состояние сжатия. Ниже приводиться пять ситуаций, в которых рассматривается влияние копирования и перемещения на сжатые файлы и папки.

Копирование внутри раздела раздела NTFS.

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

Перемещение внутри NTFS раздела.

Что происходит с состоянием сжатия файла или папки при перемещении в пределах раздела NTFS?

При перемещении файла или папки внутри раздела NTFS, файл или папка сохраняет свое первоначальное состояние сжатия. Например, при перемещении сжатого файла или папки в несжатом папку, файл остается сжатым.

Копирование или перемещение между NTFS разделами.

Что происходит с сжатыми файлом или папкой при копировании или перемещении его между разделами NTFS?

При перемещении файла или папки между разделами NTFS, файл или папка наследует состояние сжатия целевой папки. Поскольку Windows 7 рассматривает движение между разделами как копирование с последующей операцией удаления, файлы наследуют состояние сжатия целевой папки.

При копировании файла в папку, которая уже содержит файл с тем же именем, скопированный файл принимает атрибут сжатия целевого файла, независимо от состояния сжатия папки.

Копирование или перемещение между FAT и NTFS томами.

Что происходит с сжатием файла, который копируется или перемещается между FAT и NTFS томами?

Сжатые файлы, скопированные в раздел FAT становятся не сжатыми, так как FAT тома не поддерживают сжатие. Однако, если вы копируете или перемещаете файлы из раздела FAT в раздел NTFS, они наследуют атрибут сжатия папки, в которую вы их копируете.

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

data compression ), упаковка данных, компрессия , сжимающее кодирование, кодирование источника - алгоритмическое преобразование данных, уменьшающее их объём.
  • Сжатие без потерь (англ. Lossless data compression ) - метод сжатия, при котором исходные данные можно полностью восстановить из упакованных данных.
  • Сжатие данных с потерями (англ. Lossy compression ) - метод сжатия, при котором распакованные данные отличаются от исходных, но отличия не являются существенными для их дальнейшего использования.
Физика
  • Растяжение-сжатие - вид продольной деформации стержня или бруса, возникающей при приложении к нему нагрузки по его продольной оси.
  • Сжатие (термодинамика) - уменьшение объёма газа при его охлаждении.
  • Компрессия газов - силовое воздействие на газообразное тело, приводящее к уменьшению занимаемого им объёма, а также к повышению давления и температуры. Компрессия осуществляется в компрессорах , а также при работе двигателя внутреннего сгорания и других устройств.

См. также


Wikimedia Foundation . 2010 .

Синонимы :

Смотреть что такое "Сжатие" в других словарях:

    СЖАТИЕ, сжатия, ср. (книжн.). 1. Действие по гл. сжать1 в 1 и 3 знач. Сжатие воздуха. «В те дни, как постигал я первую любовь по сжатию руки, по отблеску очей…» Фет. 2. Состояние по гл. сжаться. Сжатие сердца. Сжатие в двигателе. Сжатие льдов.… … Толковый словарь Ушакова

    - (squeeze) 1. Методы контроля, используемые правительством в целях ограничения темпов инфляции. Сжатие доходов (выплат) (income (pay) squeeze) ограничивает рост заработной платы, сжатие кредита (credit squeeze) ограничивает те суммы, которые банки … Словарь бизнес-терминов

    - (squeeze) 1. Методы контроля, используемые правительством в целях ограничения темпов инфляции. Сжатие доходов (выплат) (income (pay) squeeze) ограничивает рост заработной платы, кредитное сжатие (credit squeeze) ограничивает те суммы, которые… … Финансовый словарь

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

    См. Растяжение сжатие … Большой Энциклопедический словарь

    - (Compression) процесс, происходящий в цилиндре двигателя и заключающийся в сжатии горючей смеси в карбюраторных и газовых нефтяных двигателях или воздуха в дизелях, нефтяных двигателях и компрессорах. С. в двигателе предшествует воспламенению… … Морской словарь

    СЖАТИЕ, уменьшение объема вещества путем принудительного вмещения его в малое по объему пространство (например, при компрессии газа) или ограничения расширения нагреваемого вещества (как при приготовлении пищи в скороварке). Этот процесс… … Научно-технический энциклопедический словарь

    СЖАТЬ 1, сожму, сожмёшь; сжатый; сов. Толковый словарь Ожегова. С.И. Ожегов, Н.Ю. Шведова. 1949 1992 … Толковый словарь Ожегова

    - (см. РАСТЯЖЕНИЕ) . Физический энциклопедический словарь. М.: Советская энциклопедия. Главный редактор А. М. Прохоров. 1983 … Физическая энциклопедия

    сжатие - уплотнение — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом Синонимы уплотнение EN compression … Справочник технического переводчика

    Сжатие - – уменьшение длины тела призматической или цилиндрической формы, вызываемое силой, направленной вдоль его продольной оси. [Блюм Э. Э. Словарь основных металловедческих терминов. Екатеринбург 2002] Рубрика термина: Общие термины Рубрики… … Энциклопедия терминов, определений и пояснений строительных материалов

Книги

  • Сжатие при смешении нормальных жидкостей , Е.В. Бирон. Эта книга будет изготовлена в соответствии с Вашим заказом по технологии Print-on-Demand. Воспроизведено в оригинальной авторской орфографии издания 1912 года (издательство "Санкт-петербург"…

Что такое архивация и сжатие файлов

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

Размеры используемых нами программ и данных растут вместе с ростом объёмов винчестеров. Мы уже можем себе позволить хранить на винчестере библиотеку из нескольких десятков тысяч книг. Но музыкальных произведений можем хранить на винчестере пока несколько сот часов звучания, а видеофильмов – всего несколько десятков часов просмотра. Поэтому проблема архивирования или сжатия данных остаётся так же актуальна, как и 10, и 20 лет назад.

Как же происходит сжатие информации?

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

А какая в данных может быть вода? Это вода информационная. В данных встречается много повторов. Это можно использовать для сжатия данных.

Например, сжатие текстовых файлов происходит приблизительно так. Составляется таблица встречающихся в тексте слов и выражений. Затем всем словам и выражениям в этой таблице даются номера. И весь текст в файле заменяется номерами из таблицы слов и выражений. Такой способ позволяет уменьшить размер текстового файла в 2-3 раза. Иногда текст сжимается и в 10 раз, если в нём много повторов.

Программа, переводящая текстовый файл в "сжатый" вид, называется упаковщиком. А полученный в результате сжатия файл называется упакованным или сжжатым файлом.

Очень часто сжатые файлы называют архивами или архивными файлами, что, если подходить строго к терминологии, неверно. Изначально архивами назывались файлы, специально созданные во время процессов резервного копирования. В ходе такого процесса создавался один файл, который содержал в себе несколько исходных файлов и папок. Это и был архив. Никакого сжатия при этом не производилось. Подобная ситуация до сих пор существует в операционной системе Linux, где архивация данных и сжатие данных являются двумя независимыми процессами. В операционной системе MS-DOS, а затем и в MS Windows программы сжатия данных с самых первых своих версий стали поддерживать как сжатие, так и архивацию данных, то есть создавали сжатый файл, содержащий не один, а несколько исходных (архивируемых) файлов и папок. С той поры в этих операционных системах понятие "архивация" означает и архивацию (сбор в один файл-архив) , и одновременное сжатие данных.

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

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

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

Краткая история архиваторов

Насколько я помню, первым популярным архиватором данных был архиватор под названием «ARJ». Он создавал архивные файлы с аналогичным расширением «ARJ». Это было ещё в конце 80-х – начале 90-х годов прошлого века. Такие файлы до сих пор ещё встречаются. Обычно они набраны в ДОСовской кодировке.

Затем появились два самых популярных на сегодняшний день на территории СНГ архиватора: «RAR» и «ZIP». Сейчас они представлены программами «WinRAR» и «WinZIP». Причём, программа «WinRAR» умеет создавать как «RAR», так и «ZIP» архивы. А разархивировать «WinRAR» умеет архивы полутора десятков форматов. В этом смысле «WinRAR» является для нас универсальным и удобным архиватором (но не бесплатным).

А как же другие, не текстовые данные?

Рассмотрим графические файлы. Незаархивированная графика – это рисунок, состоящий из множества разноцветных точек. В таком формате для каждой точки рисунка или фотографии задаётся цвет. Графический файл такого рисунка имеет расширение «BMP». Но такие файлы обладают довольно солидным размером. Даже небольшая фотография в формате «BMP» будет иметь размер в несколько мегабайт. То есть, она не поместится на дискету, и по сети Интернет передать её будет нелегко.

Для уменьшения размера графического файла его сжимают специальными математическими методами. Таким образом графический файл можно уменьшить в размере в 20-30 раз. Сжатый графический файл нельзя полностью восстановить. При распечатывании на хорошем принтере будет заметно ухудшение качества рисунка. Но на экране монитора этого видно не будет.

Наиболее распространённые форматы сжатия изображения – это «GIF» и «JPEG» (или «JPG»). Создать такие форматы графических файлов может, например, графический редактор «ФотоШоп» или уже знакомый нам «ФайнРидер». Чем глубже сжатие рисунка, тем больше теряет он в качестве.

Гораздо позже появились эффективные методы сжатия звука. Если Вы зайдёте на обычный музыкальный компакт-диск, то обнаружите там файлы с расширением «CDA». В таких файлах содержится несжатый цифровой звук. Такие файлы имеют очень большой размер. На компакт-диск помещается 80 минут музыки в незаархивированном виде. Сжатие звуковых файлов потребовало специальных исследований человеческого слуха. Оказалось, что часть звуков можно убрать из звукового файла, и это будет незаметно для слуха человека.

Самый распространённый формат сжатого звука – это «MPEG3» (или «MP3»). Его создают специализированные редакторы звука и программмы-перекодировщики из других звуковых форматов. Проигрывание на компьютере сжатых звуковых файлов в формате «MP3» требует мощности процессора не менее 100 мегагерц. Можно сжимать звуковой файл в десятки раз. Но при большом сжатии начинает безвозвратно теряться качество звука.

Видеофильм объединяет в себе звук и графику. Помимо звука – это ещё 24 кадра на каждую секунду. Отсюда понятны огромные размеры файлов с видеофильмами и необходимость их сжатия.

При появлении компакт-дисков художественный фильм не помещался на один диск. Эту задачу решил сжатый формат «MPEG4». Показ сжатого видео ещё больше повышает требования к мощности процессора. Для проигрывания MPEG4 уже недостаточно 200 мегагерц.

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

Упаковщик WinRAR

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

Если на Вашем компьютере установлен упаковщик WinRAR и Вы откроете нажатием Enter архивный файл, то для обработки архива запустится программа WinRAR и раскроется её окно.

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

WinRAR имеет меню, в котором содержатся команды для работы с архивами.

Но мы подробнее остановимся на более простом способе работы с упаковщиком WinRAR .

Работа с упаковщиком WinRAR через контекстное меню

Когда мы устанавливаем на компьютере WinRAR , в контекстное меню внедряются некоторые команды этой программы. Это как раз и есть самые необходимые нам для обычной работы команды по созданию и распаковке архива.

Распаковка файлов

Допустим, курсор выделяет архив под названием Литература.rar , и мы вызываем контекстное меню нажатием комбинации Shift+F10 . Мы найдём в контекстном меню 3 команды:

  1. Извлечь файлы,
  2. Извлечь в текущую папку,
  3. Извлечь в Литература.

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

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

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

В любом случае, после извлечения файлов сам архив остаётся в неизменном виде.

Если у Вас установлена англоязычная версия программы WinRAR , то все команды и диалоговые окна будут представлены на английском языке.

Упаковка файлов и папок в общий архив

Если Вы хотите упаковать несколько файлов и папок в один общий архив, то предварительно их нужно выделить. Затем нужно вызвать контекстное меню комбинацией Shift+F10 . Среди пунктов контекстного меню Вы найдёте две интересные нам команды архивации.

Вторая из команд автоматически создаст rar-архив и занесёт в него выделенные Вами файлы и папки. Если был выделен один файл или одна папка, то rar-архив получит имя этого файла или этой папки. Если было выделено несколько файлов и папок, то rar-архив получит имя текущей папки, в которой расположены все выделенные только что Вами объекты.

Первая же из команд в контекстном меню называется Добавить в архив. Она вызывает многостраничный диалог под названием Имя и параметры архива. Рассмотрим его чуть подробнее.

Всё самое главное находится в этом диалоге на вкладке Общие, куда мы сразу и попадём.

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

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

Следующим расположен очень интересный список под названием Разделить на тома размером (в байтах) . Мы можем задать размер тома вручную или выбрать его из заготовленного списка. Здесь отражается очень важное свойство программы WinRAR . Она умеет разбивать архивный файл на несколько архивных файлов одинакового размера. Это позволяет разбить архив на куски, которые умещаются на дискете. Тогда Вы сможете унести в коробке дискет большой архивный файл. Честно говоря, с появлением Сидирайтеров и блоков флэш-памяти это свойство rar-архивов понемногу начинает утрачивать своё значение.

Из остальных флажков выделим только один. Он называется Создать SFX-архив. Вот это действительно важный флажок. Если его установить, WinRAR создаст самораспаковывающийся архив. Это значит, что вместо файла с расширением.RAR будет создан файл с расширением.EXE . А фактически в rar-архив встраивается программа по его распаковке. Запуск самораспаковывающегося архива на выполнение приводит к его распаковке. Это позволяет нам без труда распаковывать архив на компьютере, на котором не установлен соответствующий архиватор. По принципу самораспаковывающихся архивов устроены инсталляционные пакеты большинства приложений.

Если мы выберем создание самораспаковывающегося SFX-архива, то на вкладке Дополнительно активизируется кнопка Параметры SFX . Эта кнопка вызывает диалог, в котором можно задать путь для распаковки архива и установить, какие программы должны выполниться до и после распаковки архива. Практически – это возможность создать полноценный инсталляционный пакет. Представьте себе. Запущенный с компакт-диска самораспаковывающийся архив распаковывается на диск C: . После этого из вновь созданной папки запускается на выполнение программа, которая выполняет установку и настройку нашего пакета программ.

Пожалуй, это – всё, что нужно знать, чтобы начать уверенно и быстро работать с архивными данными.

Обзор урока

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

Разные типы данных сжимаются разными программами по разным алгоритмам.

Универсальная программа для сжатия текстовых файлов и файлов программ – это WinRar . WinRAR умеет создавать самораспаковывающиеся и многотомные rar-архивы, а также обычные zip-архивы. Можно задавать путь для распаковки самораспаковывающегося архива.

Кроме того, WinRAR умеет распаковывать архивы многих других архиваторов.

Для работы с WinRAR не обязательно вызывать эту программу явно. После выделения группы файлов и папок можно воспользоваться контекстным меню. Здесь будут присутствовать все основные команды по архивации и разархивации данных.

Самый популярный формат сжатых графических изображений – это.GPEG . Для звука – это формат.MP3 , а для видео – MP4 .

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

Задания к уроку

Установите на своём компьютере упаковщик данных WinRAR .

Создайте в корне диска D: или в каком-нибудь другом месте временную папку. Назовите её Литература. Скопируйте в эту папку несколько файлов и папок по Вашему усмотрению.

Выделите курсором папку Литература. Вызовите контекстное меню. Создайте архив Литература.rar , воспользовавшись командой Добавить в Литература.rar". Воспользовавшись диалогом свойств, сравните размеры папки Литература и архива Литература.rar .

Вызовите диалог создания архива для папки Литература, воспользовавшись командой Добавить в архив из контекстного меню. Исправьте имя архива с Литература на Библиотека. Измените формат архива с RAR на ZIP .. После создания архива Библиотека.zip сравните его размер и размер архива Литература.rar .

Вызовите диалог свойств папки Литература. Запомните размер этой папки. Для папки Литература воспользуйтесь командой Добавить в архив из контекстного меню. В диалоге создания архива задайте размер тома так, чтобы архив состоял из двух или трёх частей. Не забывайте, что размер тома задаётся в байтах, а не в килобайтах. Установите флажок создания самораспаковывающегося архива. Особо любознательные могут в Свойствах SFX архива установить в качестве пути для распаковки корень диска C:\ . Создайте многотомный самораспаковывающийся архив. Определите размер и название каждой из его частей. Сравните общий размер самораспаковывающегося архива и обычного rar-архива.

Создайте Новую папку и перенесите туда путём вырезания и вставки все созданные Вами архивы. Распакуйте архив Литература.rar командой Извлечь в Литература из контекстного меню. Распакуйте архив Библиотека.zip командой Извлечь в Библиотека из контекстного меню. Распакуйте самораспаковывающийся многотомный архив, запустив на выполнение файл Литература,part1.exe . Обследуйте Новую папку. Найдите три варианта восстановления папки Литература из трёх различных архивов.

Вызовите в явном виде программу WinRAR , открыв архив Литература.rar . Просмотрите содержимое архива при помощи курсорных клавиш. Оставаясь в окне программы WinRAR , выйдите за пределы архива Литература.rar при помощи клавиши BackSpace . Скопируйте в буфер обмена какой-нибудь файл или папку. Войдите вновь в архив Литература.rar , как входят в папку (Нажатием Enter), и вставьте вовнутрь архива скопированный файл или папку. Проверьте, что архив пополнился новым содержимым. Таким же образом вставьте в архив Литература.rar файл из какого-нибудь другого архива. Удалите какой-нибудь файл из архива Литература.rar , воспользовавшись меню Файл программы WinRAR или клавишей Del .

Список горячих клавиш к уроку

Горячие клавиши Windows

Shift+F10 – вызвать контекстное меню

Alt+Enter – вызвать диалог свойств

Горячие клавиши JAWS

Insert+Серый минус – Перейти к JAWS-курсору и совместить его с системным курсором.

Серый плюс – вернуться к системному курсору

Горячие клавиши WinRAR.

Control+C – скопировать объект в буфер обмена

Control+V – вставить объекты из буфера обмена в архив

Архив - Сжатие файлов: Как это происходит? - Журнал «Компьютер»

Здравствуйте! Не могли бы вы объяснить начинающему пользователю, как сжимаются файлы всякими архиваторами? Хотя бы в общих чертах. А то я с трудом себе представляю, как это вообще может быть.

Виталий

Совершенно верно, Виталий, это действительно не так просто себе представить, тем более, если не знаешь алгоритма. Но читателям журнала «Компьютер» повезло;), поскольку я в свое время много интересовался алгоритмами сжатия данных и, как программист, даже пробовал писать собственный архиватор.

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

Сжатие основано на устранении избыточности, содержащейся в исходных данных. Простейшим примером избыточности является повторение в тексте фрагментов (например, слов естественного или машинного языка).

Итак, давайте начнем с простого примера. Допустим, у нас есть текстовый файл, который содержит строку текста:

АААГГДЕЕЕЕЖЖУУУККККИИИ

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

А3Г2Д1Е4Ж2У3К4И3

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

Данный пример довольно упрощен и не отражает эффективность, которую обычно демонстрируют при сжатии архиваторы. Так у нас получилось сжатие в 22/16 = 1,375 раза, хотя архиваторы, как правило, способны сжимать файлы в 2-10000 раз. Все зависит от повторяемости значений байт в файле.

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

Например, во времена незабвенной MS-DOS были архиваторы ARJ, PKZIP, HA, RAR, ARC, ACE и упаковщики программ LZEXE и PKLITE. Позднее для операционной системы Windows были созданы WinAce, WinZIP, WinRAR, 7Zip и известный мне упаковщик UPX.

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

Сжатие с потерями можно назвать адаптивным сжатием, и применяется для упаковки изображений, видео и звука, поскольку такие данные сжатию без потерь поддаются весьма незначительно (всего примерно до 2 раз).

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

На сколько сжимаются разные файлы

Текстовые

Действительно, например, текстовые файлы могут сжиматься весьма плотно. Так, например, книга Аркадия и Бориса Стругацких «Трудно быть богом» размером 354 329 байт архиватором WinRAR сжимается до 140 146 байт, т.е. в 2,5 раза.

Программы

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

Для этого существуют упаковщики программ на подобие UPX и др. Например, мой текстовый редактор Superpad.exe размером 524 288 байт упаковщиком UPX сжимается до 179 200 байт (в 2,9 раза) и при этом может по-прежнему запускаться самостоятельно как программа.

Изображения

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

Одним из первых алгоритмов сжатия изображений был алгоритм RLE, который я описал выше. Он применяется в формате хранения изображений PCX. RLE является алгоритмом сжатия без потерь. Но в некоторых случаях он мог приводить не к уменьшению объема данных, а к его увеличению.

Поэтому для сжатия изображений был предложен и используется до сих пор алгоритм побитового сжатия LZW. Сам по себе алгоритм уже гораздо эффективнее RLE и тоже не предусматривает потери. Но поскольку применяется для изображений с палитрой цветов, то за счет адаптации и оптимизации (уплотнения) палитры можно добиться существенного повышения эффективности сжатия.

Рис. 1. Красивый лягушонок в формате BMP

Для сравнения, возьмем красивого лягушонка (рис. 1) разрешение 799x599 пикселей (точек) и сохраним в разные форматы хранения изображений. Получим файлы:

frog.bmp - размер 1 437 654 байта и тут, по сути, никакого сжатия и никаких потерь качества, поскольку картинка занимает положенные ей байты в формате Ширина x Высота x 3 байта на пиксель + заголовок формата файла BMP согласно качеству True colors (24 бит/пиксель). Т.е. каждая точка представлена тремя компонентами RGB (Red-красный, Green-зеленый и Blue-синий), каждая из которых занимает один байт.

frog24.png - 617 059 байт, сжатие в 2,33 раза и без потерь - основное свойство формата PNG-24. Данные BMP и PNG практически идентичны.

Рис. 2. Файл frog_256colors.gif

frog_256colors.gif - 261 956 байт (рис. 2), сжатие в 5,48 раза с потерями, базовая палитра 256 цветов (8 бит/пиксель). Уловить разницу между этим файлом и оригиналом в BMP довольно сложно, как в той игре «Найди десять отличий».

Рис. 3. Файл frog_64colors.gif

frog_64colors.gif - 187 473 байта (рис. 3), сжатие в 7,67 раза с потерями, базовая палитра уплотнена до 64 цветов (6 бит/пиксель). А вот тут цвета уже блеклые, но вполне сходное с оригиналом изображение. Особенно это заметно, если посмотреть на глаз лягушонка.

JPEG

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

С другой стороны, JPEG малопригоден для сжатия чертежей, текстовой и знаковой графики, где резкий контраст между соседними пикселями приводит к появлению заметных артефактов. Такие изображения целесообразно сохранять в форматах без потерь, таких как TIFF, GIF, PNG или RAW.

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

JPEG не должен использоваться и в тех случаях, когда недопустимы даже минимальные потери, например, при сжатии астрономических или медицинских изображений. В таких случаях может быть рекомендован предусмотренный стандартом JPEG режим сжатия Lossless JPEG (который, к сожалению, не поддерживается большинством популярных кодеков) или стандарт сжатия JPEG-LS.

Описание алгоритма сжатия JPEG довольно не простое, поэтому кто захочет, может ознакомиться с ним по ссылке http://el-izdanie.narod.ru/gl4/4-3.htm. Ну и для сравнения сожмем нашу исходную картинку с разным уровнем качества:

frog100%.jpg - 216 168 байт, сжатие в 6,65 раза, потери якобы 0%, т.е. 100%-е качество картинки, но даже на это рассчитывать я бы не стал. Поверьте, отличия есть, правда, на глаз абсолютно неотличимые.

frog60%.jpg - 85 910 байт, сжатие в 16,7 раза, т.е. качество картинки 60%, но картинка снова кажется одинаковой, хотя, если присмотреться к участкам с однородным фоном или мелким деталям, то заметны артефакты в виде смазанности или квадратных одноцветных сегментов.

frog20%.jpg - 36 426 байт, сжатие в 39,5 раз, качество картинки 20% от исходного изображения, но по-прежнему картинка еще способна обмануть неискушенный глаз, но на однородном фоне отчетливо видны одноцветные угловатые сегменты, а мелкие детали окончательно потеряли свои четкие очертания.

MPEG

Это один из самых первых и самых распространенных форматов хранения видео. Несколько раз модернизировался. Но в упрощенном виде, можно сказать, что алгоритм очень напоминает сжатие как в JPEG, но с учетом того, что первый кадр видео всегда является исходным и оригинальным, а последующие кадры хранят лишь разницу между предыдущим и следующим кадрами. Благодаря этому каждый последующий кадр является предсказуемым с точки зрения распаковки (рис. 4 и 5).

Рис. 4. Исходные кадры видео

Рис. 5. Межкадровая разница без применения алгоритмов компенсации движения

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

Однако, из-за движения каких-либо объектов в кадре (или самой камеры) использование подобия соседних кадров было неполным. Технология компенсации движения позволяет находить похожие участки, даже если они сдвинуты относительно предыдущего кадра.

Компенсация движения (англ. Motion Compensation) - один из основных алгоритмов, применяемых при обработке и сжатии видеоданных. Алгоритм использует сходство соседних кадров в видео последовательности и находит векторы движения отдельных частей изображения (обычно блоков 16x16 и 8x8).

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

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

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

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

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

Звук и музыка

Звук и музыка могут без потерь, либо с потерями храниться в формате WAV. Например, формат WAV (Windows PCM) не предусматривает сжатие и хранит звуковой сигнал в оригинале, если можно так выразиться.

Формат WAV (ACM Waveform), по сути, является контейнером и может хранить звук, сжатый по алгоритму MPEG layer 3, либо хранить музыку в формате MP3, хотя много и других форматов OGG, FLAC и д.р.

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


Похожие публикации