Не сжимается том windows 7. Как сжать том или раздел в Windows

Большинство пользователей, работающих с жесткими дисками и логическими разделами в Windows-системах, используя для этого «Проводник» или соответствующий раздел управления дисками, наверняка обращали внимание на присутствие в контекстном меню несколько непонятного пункта «Сжать этот диск для экономии места». Это нововведение было вынесено в отдельную категорию, начиная с Windows 7, хотя в системах рангом ниже тоже было. Давайте посмотрим, что это такое, для чего может использоваться, стоит ли заниматься подобными вещами и что следует учесть, если такую операцию все-таки предполагается выполнить.

Пункт настроек «Сжать этот диск для экономии места»: это что такое?

Как известно, раньше, когда винчестеры не обладали достаточными объемами для хранения информации, а некоторые файлы, чаще всего относящиеся к форматам мультимедиа (в основном видео и музыка), имели очень большие размеры, экономия места на жестком диске была настоящей проблемой всех без исключения пользователей. Именно поэтому в своем время специалисты корпорации Microsoft решили ее хоть как-то устранить. Для сохранения свободного пространства при выборе раздела предлагалось (и предлагается) сжать этот диск для экономии места. Это, по идее, должно означать уменьшение размера файлов, за счет чего и производится высвобождение необходимого дополнительного объема. Как уже понятно, если такая функция в системе есть, грех ею не воспользоваться. И, как считает большинство пользователей, ничего критичного в этом нет. Однако, несмотря на появление в Windows такой функции, некоторые недостаточно хорошо понимают суть вопроса и, не разобравшись, что к чему, сразу же пытаются применять сжатие к дискам и разделам. А вот этого без понимания сути происходящего делать не стоит.

Как это работает?

Да, действительно, сжатие тома выполнить можно. Технология проведения таких действий в чем-то очень сильно напоминает работу со встроенным в последние версии Windows Zip-архиватором, когда есть возможность просто зайти в упакованный архив и просмотреть его содержимое или открыть нужный файл.

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

Какие диски или разделы можно сжимать?

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

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

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

Как выполнить сжатие простейшим методом?

Что же касается выполнения процедуры сжатия, тут обычно сложностей не возникает даже у самых неподготовленных пользователей. В «Проводнике» достаточно просто через меню ПКМ перейти к разделу свойств раздела, для которого предполагается выполнить операцию сжатия, затем на общей вкладке отметить соответствующий пункт, подтвердить свои действия и произвести рестарт системы.

Как произвести декомпрессию системного раздела?

Но что делать, если пользователь решил воспользоваться таким инструментом и по незнанию или по ошибке сжал системный раздел, после чего Windows перестала нормально загружаться?

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

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

Стоит ли сжимать диск для экономии места?

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

Жёсткий диск разбивается на разделы во время установки операционной системы. Но применённое разделение не всегда является оптимальным. Например, под основной диск C, на который устанавливается операционная система, обычно отводится недостаточно места. К счастью, Windows 7 даёт возможность изменить распределённое между разделами свободное пространство.

Расширение диска

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

Через встроенные утилиты

В Windows 7 по умолчанию установлена программа, позволяющая выполнить все необходимые настройки:

  • Через меню «Пуск» запустите программу «Выполнить». Откройте программу «Выполнить»
  • Пропишите и выполните команду diskmgmt.msc, чтобы открыть «Управление компьютером».
    Выполните команду, чтобы открыть «Управление компьютером»
  • Изучите информацию обо всех носителях и жёстких дисках, подключённых к ПК, и о разделах, на которые они разбиты.
    Изучите информацию об основных разделах и дисках вашего ПК
  • Не удаляйте небольшие разделы, весящие около 1 ГБ, потому что на них хранится информация, важная для системы, к примеру, точки восстановления и прочие файлы для поддержки Windows.
    Не удаляйте диски, зарезервированные системой
  • Узнайте, есть ли у вас нераспределённое место или нет. Нераспределённое место - это объём жёсткого диска, который не принадлежит ни одному из томов. Только это место можно распределять между дисками.
    Нераспределённое место помечается чёрным цветом
  • Если у вас этого места нет, то выхода два: стереть один из разделов, при этом потеряв всю информацию, которая на нём хранится, или сжать тот раздел, под который отдано слишком много места. Чтобы удалить том, кликните по нему правой кнопкой мыши и выберите пункт «Удалить диск». Учтите, что всё, что находится на данном разделе диска, удалится безвозвратно, так что перенесите на сторонний носитель все важные данные заранее.
    Нажимите кнопку «Удалить том»
  • Подтвердите удаление, нажав кнопку «Да».
    Нажмите кнопку «Да»
  • Чтобы сжать том, нажмите на него правой кнопкой мыши и выберите «Сжать том».
    Нажмите кнопку «Сжать том»
  • Ознакомьтесь с информацией в развернувшемся окне: общий объём памяти, свободное место, которое можно сжать, и интерактивная строка, в ней нужно указать, сколько места вы хотите отнять у раздела. Все данные указаны в МБ. Не рекомендуется отнимать у тома всё свободное место, так как это может вызвать резкую нехватку памяти для программ или других действий, лучше оставить несколько ГБ на всякий случай.
    Выставьте параметры для сжатия тома
  • Кликните по кнопке «Сжать», чтобы применить изменения.
    Нажмите кнопку «Сжать»
  • Найдите блок «Не распределён».
    Найдите блок «Не распределён»
  • Выделите диск, который хотите расширить, кликните по нему правой кнопкой мыши и в открывшемся меню выберите пункт «Расширить том».
    Нажмите кнопку «Расширить том»
  • Откроется «Мастер расширения тома». Пропустите приветствие, нажав кнопку «Далее».
    Нажмите кнопку «Далее»
  • Найдите три пункта: объём, который уже отдан под этот раздел, нераспределённое место и интерактивную строку, в которой нужно вручную прописать значение того, сколько из нераспределённого места вы хотите отдать тому. Выставив все параметры, нажмите кнопку «Далее».
    Выставьте параметры расширения тома
  • Дождитесь окончания расширения и подтвердите его результаты, нажав кнопку «Готово».
    Нажимите кнопку «Готово»
  • Удостоверьтесь, что диск увеличился, а нераспределённое место уменьшилось. Перезапустите систему, чтобы все приложения и процессы учли внесённые изменения. Перезагрузите компьютер
  • Видео: как расширить том через «Управление компьютером» в Windows 7

    Во время установки Windows

    Если вы находитесь в процессе установки Windows 7 и хотите изменить объём дисков, выполните следующие действия:

  • Кликните по варианту «Полная установка», когда вам предложат выбрать тип установки. В режиме «Обновление» настройка дисков не предусмотрена.
    Выберите «Полную установку»
  • Не удаляйте небольшие разделы, весящие до 1 ГБ, так как на них хранится информация, необходимая Windows, например, точки восстановления и другие файлы для поддержки системы.
    Не удаляйте раздел, отведённый системе
  • Кликните по кнопке «Настроить диск», чтобы открыть дополнительные функции.
    Нажмите кнопку «Настроить диск»
  • Проверьте, есть ли нераспределённое (незанятое) место на диске.
    Найдите незанятое место на диске
  • Если у вас этого места нет, то придётся удалить один из дисков, выбрав его и нажав кнопку «Удалить».
    Нажмите кнопку «Удалить»
  • Убедитесь, что нераспределённое место появилось. Выделите диск, который хотите расширить, кликните по кнопке «Расширить» и укажите объём памяти, который выделится диску из нераспределённой памяти. Готово, диск увеличен. В этом же разделе можно удалять тома, расширять их, форматировать или создавать новые.
    Нажмите кнопку «Расширить»
  • Видео: как переразбить разделы жёсткого диска при установке Windows 7

    С помощью сторонних программ

    Существует несколько бесплатных программ, заменяющих утилиту Windows для работы с дисками и их разделами. Например, Aomei Partition Assistant. Это удобная программа на русском языке, отличающаяся простым и понятным дизайном.

  • Кликните по желаемому диску правой кнопкой мыши, находясь в главном меню программы, и выберите пункт «Изменить размер раздела».
    Нажмите кнопку «Изменить размер раздела»
  • Перегоните ползунок или измените цифры в окнах, чтобы отредактировать размеры диска. Процесс повторяет все действия и условия, описанные выше в статье в разделе «Через встроенные утилиты».
    Перегоните ползунок или измените цифры в окнах
  • Используйте функцию «Применить» в главном меню программы, чтобы сохранить результаты изменений. Нажмите кнопку «Применить»
  • Перезапустите ПК, чтобы все приложения и процессы приняли внесённые правки. Нажмите кнопку перезагрузки
  • Видео: как пользоваться программой Aomei Partition Assistant

    Функция «Расширить том» недоступна

    Некоторые пользователи встречаются с тем, что пункт «Расширить том» во встроенной утилите или во время установки Windows 7 неактивен, то есть подсвечивается нейтральным цветом.

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

    Учтите, свободное место на диске и нераспределённое место - разные вещи. Чтобы добиться наличия второго, необходимо удалить один из томов или сжать его, перегнав свободное место в нераспределённое. Как это сделать, описано в пунктах раздела «Через встроенную утилиту» выше в статье.

    Средства «Управление дисками» (Disk Management) можно уменьшить объем тома жесткого диска для создания нового раздела.

    В состав Windows 7 входит несколько инструментов для управления конфигурацией компьютера и различных аспектов операционной системы. Иногда бывает необходимо уменьшить объем тома - распределенного пространства на жестком диске, чтобы высвободить место для создания еще одного раздела. До недавних пор для этого пришлось бы использовать сторонние утилиты, но с появлением встроенного в Windows 7 средства «Управление дисками» потребность в установке специального ПО отпала.

    Сжатие тома

    Для начала нужно запустить средство «Управление дисками» с правами администратора. Откройте меню «Пуск» (Start), введите в строке поиска «diskmgmt.msc» без кавычек, нажмите на ссылке «diskmgmt» в результатах поиска правой кнопкой мыши и выберите опцию «Запуск от имени администратора» (Run as Administrator) из контекстного меню (рис. A).

    Рисунок A. Запустите средство «Управление дисками» с правами администратора.

    Откроется окно, показанное на рис. B.


    Рисунок B. Окно средства «Управление дисками».

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

    Нажмите на разделе, который хотите сжать, правой кнопкой мыши и выберите опцию «Сжать том» (Shrink Volume, рис. C).


    Рисунок C. Из контекстного меню выберите опцию «Сжать том».

    Системе потребуется несколько секунд на анализ диска, по результатам которого появится диалоговое окно, показанное на рис. D.


    Рисунок D. По результатам анализа выводится диалоговое окно с общей информацией о томе.

    В этом окне можно изменять значение только в поле «Размер сжимаемого пространства (МБ)» (Enter the Amount of Space to Shrink in MB). Для примера уменьшим том «D:» на 5000 Мбайт (5 Гбайт), как показано на рис. E. Когда будете готовы, нажмите кнопку «Сжать».


    Рисунок E. Сожмите том на 5000 Мбайт.

    По завершении операции на жестком диске появится новое нераспределенное пространство (рис. F). Его реальный объем будет чуть меньше, чем было указано при сжатии, поскольку небольшая часть этого пространства будет отведена для файловой системы Windows.


    Рисунок F. Новое нераспределенное пространство.

    Использование нераспределенного пространства

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

    Начиная с Vista и 7, операционная система Windows обладает функцией, которая позволяет сжать (или расширить) размеры основного раздела и логических дисков. Эта возможность может быть полезной, если вы окажитесь в ситуации, когда вам потребуется дополнительный раздел и вам не хватает дополнительных дисков. Выполнив сжатие тома, вы освободите место на диске; это незанятое пространство затем можно будет использовать для создания других необходимых разделов. Сегодня мы узнаем, как сжать базовый том или раздел, используя графический интерфейс Windows, а для более продвинутых пользователей мы также опишем метод с использованием командной строки.

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

    Сжатие тома или раздела с помощью инструмента «Управление дисками»

    Если у вас Windows 7, перейдите в меню «Пуск», в поле поиска введите «управление дисками» и нажмите Enter. Если вы являетесь пользователем Windows 8.x, щелкните правой кнопкой мыши в левом нижнем углу экрана (или нажмите сочетание клавиш Win + X) и выберите «Управление дисками».

    «Управление дисками» – это место, где вы найдете все диски, подключенные к вашему компьютеру (жесткие диски, USB-накопители, CD / DVD и т.д.)

    Выберите основной раздел, который требуется сжать, щелкните по нему правой кнопкой мыши и выберите «Сжать».

    В результате операционная система начнет процесс определения доступного места для сжатия.

    Укажите объем пространства, который вы бы хотели вернуть и нажмите «Сжать». Помните, что количество пространства вводится в мегабайтах: например, 1 ГБ равен 1024 МБ.

    Освобожденное (или незанятое) таким образом пространство вы сможете использовать для создания нового раздела.

    Сжатие тома или раздела с помощью командной строки

    Для открытия командной строки в Windows 7 перейдите в меню «Пуск», введите «cmd», в результатах поиска щелкните правой кнопкой мыши на cmd.exe и выберите «Запуск от имени администратора». В Windows 8.x щелкните правой кнопкой мыши в левом нижнем углу экрана и выберите «Командная строка (администратор)».
    Введите diskpart и нажмите Enter.

    В строке DISKPART введите list volume . Эта команда отобразит список всех дисков на компьютере.

    Теперь введите команду select volume и номер тома, который вы хотите сжать. Например, введите select volume 1 и нажмите Enter.

    Введите shrink querymax и нажмите Enter. Эта команда позволит Windows определить максимальный объем пространства, который может быть сжат.

    Теперь у вас есть два варианта: во-первых, можно просто ввести shrink , и тогда Windows сожмет все доступное пространство; во-вторых, вы можете указать желаемый объем для сжатия. Во втором случае нужно ввести команду shrink desired=объем_в_мегабайтах (например, shrink desired=2048 ). Вы можете ввести любое число, которое не превышает значение, указанное в строке «Максимальное количество повторно используемых байт». Таким образом, с помощью этой команды вы можете указать точное количество места, которое нужно сжать.

    Если вы все сделаете правильно, то после завершения операции вы увидите сообщение:

    DiskPart успешно выполнил сокращение тома на: число_в_мегабайтах

    На этом все! Чтобы правильно завершить работу DISKPART, введите exit и нажмите Enter.

    Что следует учесть:

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

    А теперь я хочу показать вам, как можно использовать незанятое пространство на диске и создать новый том или раздел с помощью инструмента «Управление дисками» или с помощью командной строки.

    Как создать новый том или раздел через «Управление дисками»

    Откройте инструмент «Управление дисками». Для этого откройте диалог «Выполнить» (Win + R), введите команду diskmgmt.msc и нажмите Enter.

    Щелкните правой кнопкой мыши на не распределенном пространстве и нажмите «Создать простой том».

    В окне мастера создания простого тома нажмите «Далее».

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

    На следующем этапе вы можете изменить параметры форматирования, но это необязательно, тем более, если вас устраивают настройки по умолчанию. Дополнительно вы можете изменить метку тома на любое имя по вашему предпочтению, но лучше использовать что-то описательное: например, «Фильмы», «Документы», «Резервные копии» т.д. Также вы можете включить опцию для сжатия файлов и папок. Когда все настройки будут выбраны, нажмите «Далее».

    Ознакомьтесь с выбранными параметрами. Если что-то захотите изменить, нажмите «Назад», чтобы вернуться к предыдущим шагам. Если вас все устраивает, нажмите «Готово».

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

    Как создать новый том или раздел через командную строку

    Откройте командную строку с правами администратора.

    Введите diskpart и нажмите Enter.

    В строке DISKPART введите list disk . Эта команда выведет список дисков на вашем ПК. Она же поможет вам определить номер диска с незанятым пространством.

    Теперь введите команду select disk с номером тома и нажмите Enter: например, select volume 0 .

    Совет: вы можете вручную указать размер нового раздела. Для этого к команде create partition primary нужно добавить size=x (где x – размер раздела в мегабайтах). Целиком команда будет выглядеть следующим образом: create partition primary size=1000

    Теперь, когда раздел был создан, введите команду list volume и нажмите Enter. В результате вы увидите том (в моем случае том 3) с файловой системой RAW. Однако будет правильнее, если сказать, что это том без файловой системы.

    Далее вам нужно отформатировать раздел в файловую систему NTFS. Введите команду format fs=ntfs quick (где quick – это указание, что должен использоваться быстрый способ форматирования) и нажмите Enter.

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

    Введите команду list volume , обратите внимание на номер нового раздела и введите команду select volume , не забыв указать номер раздела. Например, в моем случае команда будет выглядеть следующим образом: select volume 3 .

    Теперь у вас есть два варианта, чтобы назначить букву диска: вы можете просто ввести команду assign , но тогда инструмент DiskPart автоматически назначит одну из доступных букв для нового раздела (это то, что показано на скриншоте ниже); или вы можете ввести команду assign letter=f , где f – это буква диска. Если вы выберете второй вариант, убедись, что буква, которую вы хотите присвоить, уже не присвоена другому диску.

    На этом все! Все написанное выше работает в Vista, Windows 7 и 8.x.

    созерцатель

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

    Закономерно возникает вопрос: а зачем сейчас нужно сжимать файлы, если все основные технические характеристики персональных компьютеров каждые полтора-два года удваиваются? Оперативная память современной персоналки от 128 до 512 мегабайт, дисковая память вообще исчисляется десятками гигабайт. Казалось бы, можно особенно не заботиться о размерах файлов.

    Но интерес к сжатию файлов по-прежнему высок. Можно выделить две основные причины такого интереса. Первая, на персональных компьютерах стали воспроизводить и обрабатывать звук и изображение. Звуковые, графические и особенно видео файлы по объему памяти требуют на порядки больше памяти, чем текстовые. Одна фотография 15х20 см с хорошим разрешением 600 точек на дюйм или всего одна десятиминутная музыкальная композиция по объему превышают собрание сочинений Чехова.

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

    Архиваторы уменьшают некоторые файлы в 5-10 раз. За счет чего удается так сильно сократить размер файла? Некоторые файлы построены неоптимально с точки зрения их объема. Например, распространенные архиваторы сжимают большие файлы Microsoft Word в пять-шесть раз, а маленькие почти в десять. Чтобы прочесть такой сжатый текстовый файл, его нужно разжать той же самой программой.

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

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

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

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

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

    Интернет - очень удобная среда для общения профессионалов. Удаленные друг от друга специалисты из разных стран могут обсуждать проблемы своей области. В Сети хорошо известна сетевая иерархия Usenet. Она объединяет тысячи дискуссионных групп на самые разные темы. Есть там и группа под названием COMP.COMPRESS. В ней специалисты обсуждают компрессию, т.е. сжатие информации. Участие в обсуждениях группы требует значительной подготовки. Поэтому случайные посетители в COMP.COMPRESS надолго не задерживаются. Правда, время от времени кем-то из новичков высказывается мнение, действующее на специалистов по сжатию примерно так же, как на физиков проекты вечного двигателя, а на историков - сочинения Фоменко. Условно проблему можно назвать "чудо-компрессор".

    Как правило, речь идет о том, что сотрудники малоизвестной компании разработали революционный алгоритм или даже программу для многократного сжатия информации. Обычно утверждается, что сжатие идёт без потерь, и (самое главное) - во много раз сжимается любая информация. При внимательном рассмотрении оказывается, что это - блеф, но, тем не менее, эта idea fix регулярно возникает на страницах компьютерной прессы. Характерный пример. В апреле 92-го года компания WEB Technologies объявила о создании программы, сжимающей в 16 раз любые файлы размером больше 64-х килобайта. Были другие фирмы, которые заявляли о столь же удивительных параметрах своих программ. Некоторым из них удалось даже запатентовать собственные алгоритмы, однако, в результате, подобные проекты оказались мыльными пузырями.

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

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

    Несмотря на это, благодаря случайным посетителям, слухи о чудо-компрессорах регулярно проникают в группу COMP.COMPRESS и раздражают её старожилов. В один прекрасный день, чтобы покончить с вопросом раз и навсегда, один из профессионалов, Майк Голдмэн (Mike Goldman), предложил всем обладателям чудо компрессора выплатить денежное вознаграждение. Он написал:

    Майк Голдмен

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

    Александр Костинский

    Другими словами, если у вас есть программа, на самом деле сжимающая любую информацию, то вы легко можете заработать пять тысяч долларов. Предложение Голдмена, было выложено в Интернете http://www.faqs.org/faqs/compression-faq/part1/section-8.html вместе с подробными объяснениями, почему нельзя сжать случайную информацию и почему архиватор, сжимающий любые данные - невозможен. Пари оставалось без ответа несколько лет, но 26-го марта прошлого года, по электронной почте Голдмену пришло письмо от человека по имени Патрик Крейг (Patrick Craig) в нем писалось:

    Патрик Крейг

    Я прочитал ваше предложение. Звучит очень заманчиво, оно всё еще в силе? Если да, то хотелось бы узнать детали о декомпрессоре - он должен запускаться на любой машине или достаточно какой-то одной платформы, например Linux?

    Майк Голдмен

    Да, предложение в силе. Linux-а достаточно. Вы хотите рискнуть?

    Патрик Крейг

    Я всё еще думаю над этим. Вам нужен только сжатый файл?

    Майк Голдмен

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

    Патрик Крейг

    А могу я прислать сжатую информацию не одним файлом, а несколькими частями, плюс декомпрессор, который восстановит оригинал?

    Майк Голдмен

    Да, вполне.

    Патрик Крейг

    Я принимаю вызов. Как вам можно отправить деньги?

    Майк Голдмен

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

    Патрик Крейг

    Я до сих пор думаю над оптимальным размером, но полагаю, он будет меньше гигабайта. У вас есть где-нибудь доступ к анонимному ftp-серверу?

    Александр Костинский

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

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

    Надежными генераторами случайных чисел многие специалисты считают источники радиоактивного излучения. Радиоактивные вещества распадаются в строгом соответствии с теорией вероятности, и повлиять на их активность в обычных условиях практически невозможно. Криптографы для создания надёжных ключей шифрования используют именно радиоактивные образцы. Но есть и более простые решения. Например, Web-сайт Random.org даёт посетителям доступ к генератору случайных чисел, построенному на обычном радиоприёмнике. Этот приёмник подключён к серверу через обычную аудиокарту и настроен на частоту, на которой не ведутся радиопередачи. Источником случайных чисел служит атмосферный радиошум. Это вполне качественный генератор. Специальной программой его результаты можно собирать в файл, и именно из этого источника Майк Голдмен получил 3 мегабайта несжимаемых данных для Патрика Крейга.

    Что же сделал с ними Патрик Крэйг? Свою версию событий он поместил в Интернете:

    Патрик Крейг

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

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

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

    Александр Костинский

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

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

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

    В среду 4 апреля, профессионал Майк Голдмен получил от находчивого Патрика Крейга письмо, где говорилось, что исходный файл был разделён на 218 частей, суммарная их длина стала на 217 байт короче исходного файла. Программа-декомпрессор имеет размер 156 байт, кое-что ушло на сохранение имени файла. В результате, общий размер уменьшился на 44 байта. Условия, поставленные Майком Голдманом выполнены, следовательно, пора платить обещанные пять тысяч долларов.

    В дискуссионной группе COMP.COMPRESS к общему удовольствию всех подписчиков, которые несколько недель обсуждали неожиданный результат. (http://groups.google.com/groups?hl=en&ic=1&th=f2d47a8426e2de35).

    Между тем, Майк Голдмен не заплатил обещанные пять тысяч и объяснил свои действия так:

    Майк Голдмен

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

    Александр Костинский

    На это Патрик Крейг заметил:

    Патрик Крейг

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

    Александр Костинский

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

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

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

    Loading...Loading...