О чём эта работа

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

Из каких частей собрать проект

  • Материал для замеров. Возьми несколько записей разной длительности, от короткой пьесы до части симфонии, и обязательно из одного источника по качеству, например все с одинаковой частотой дискретизации и разрядностью. Разнобой в исходниках делает сравнение бессмысленным.
  • Методика. Опиши, чем кодируешь, с какими настройками уровня сжатия и на какой машине. Каждый замер повторяй хотя бы трижды и бери среднее, потому что время кодирования плавает от загрузки компьютера.
  • Степень сжатия. Считай отношение размера упакованного файла к исходному, в процентах. Сведи в таблицу по каждому треку и посчитай среднее по всему набору.
  • Скорость. Замерь время кодирования и отдельно время распаковки. Второе важно для практики, потому что распаковка происходит при каждом прослушивании.
  • Проверка обратимости. Это обязательный раздел для формата без потерь. Распакуй файл обратно и сравни с исходным по контрольной сумме. Совпадение сумм и есть доказательство, что потерь нет.

Что оценит преподаватель

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

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

Где брать материал

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

Типичная ошибка в этой теме

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

С чего начать в первый день

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

Частые вопросы

Сколько записей брать

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

Нужно ли слушать результат

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

Можно ли добавить формат с потерями для сравнения

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