ЕГЭ, ОГЭ, программирование и робототехника в Калининграде

Алгоритм решения задания 7. Часть 2

О задании

В прошлой статье о задании 7 мы уже успели изучить формулу Хартли и поработать с изображениями. В этой же статье познакомимся с кодированием звуковой информации, изучим термины «квантование» и «дискретизация» и научимся решать задания 7, посвящённые работе с звуковыми файлами.

Работа со звуковым файлом

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

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

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

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

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

Рассмотрим их подробнее:

  1. Дискретизация. Через равные промежутки времени измеряется уровень сигнала. Частота дискретизации показывает количество таких отсчётов за секунду. Например, частота 44,1 кГц означает 44 100 отсчётов в секунду.
  2. Квантование. Значение амплитуды каждого отсчёта округляется до ближайшего уровня из заданного набора. При 8-битном кодировании доступно 256 уровней, а при 16-битном — 65 536.

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

Давайте рассмотрим процесс дискретизации на графике.

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

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

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

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

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

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

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

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

В заданиях ЕГЭ обычно встречаются три варианта записи по количеству каналов:

  1. Моно — 1 канал
  2. Стерео — 2 канала
  3. Квадро — 4 канала

Выведем формулу для вычисления объёма звукового файла. Нужно перемножить все известные параметры:

V = k \cdot t \cdot i \cdot \eta

Здесь:

  • k — количество каналов (1, 2 или 4);
  • t — длительность записи в секундах;
  • i — глубина кодирования, то есть количество бит на один отсчёт;
  • η — частота дискретизации в герцах.

Алгоритм решения

Далее рассмотрим алгоритмы решения задания 7 со звуковыми файлами.

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

  1. За какое время можно скачать музыкальный альбом или передать звуковой файл?
  2. Какой объём файла получится после записи с другими параметрами?

Как правило, такие задачи решаются проще, чем задачи с изображениями, но на экзамене они встречаются реже.

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

  1. Сначала находим объём звуковых данных. Для этого перемножаем количество каналов, частоту дискретизации, глубину кодирования и общую длительность записи;
  2. Затем делим полученный объём на скорость передачи данных по каналу.

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

Теперь разберём каждый тип и решим по одному примеру для закрепления.

Тип 1

Начнём с такой формулировки:

Музыкальный альбом записан в формате стерео с частотой дискретизации 48 кГц и разрешением 34 бит без использования сжатия. В альбоме 13 треков общей длительностью 42 минуты 20 секунд. Каждый трек содержит заголовок размером 110 Кбайт.

Сколько секунд потребуется для скачивания альбома по каналу со скоростью передачи данных 314572800 бит/с?

В ответе укажите целую часть числа.

Открыть задание

Давайте распишем решение полностью, как если бы мы выполняли его на бумаге.

Выпишем известные значения и приведём единицы измерения к единому виду:

  1. Количество каналов — k. Запись стереофоническая, значит каналов два;
  2. Общая длительность треков — t. Переводим 42 минуты 20 секунд в секунды: 42 · 60 + 20;
  3. Глубина кодирования — i. В условии она названа разрешением и равна 34 битам;
  4. Частота дискретизации — η. Она равна 48 кГц, то есть 48 000 Гц.

Подставим значения в формулу и найдём объём звуковых данных всех 13 композиций без заголовков:

V = 2 · (42 · 60 + 20) · 34 · 48 · 10³ = 8 290 560 000 бит.

Каждый из 13 треков содержит заголовок размером 110 Кбайт. Переведём размер заголовков в биты и прибавим его к объёму звуковых данных:

V = 8 290 560 000 + 110 · 2¹³ · 13 = 8 302 274 560 бит.

Теперь разделим объём всего альбома на скорость передачи и найдём время скачивания:

t_скач = 8 302 274 560 / 314 572 800 ≈ 26,39 с.

В условии просят указать целую часть числа, поэтому в ответ записываем 26.

Так выглядит решение этой задачи в Python:

k = 2
eta = 48 * 10 ** 3
i = 34
tracks = 13
t = 42 * 60 + 20
header = 110 * 2 ** 13
bitrate = 314_572_800

V_tracks = k * t * i * eta

V_album = V_tracks + header * tracks

download_time = V_album

Пример 1

Для закрепления рассмотрим ещё одну формулировку:

В этот раз решим задачу сразу в Python. Сначала запишем все известные величины:

k = 2
eta = 56 * 10 ** 3
i = 16
t = 120
bitrate = 32_000

Затем вычислим объём файла по уже известной формуле:

V = k * t * i * eta

Чтобы найти время передачи, целочисленно разделим объём V на пропускную способность канала bitrate:

transfer_time = V // bitrate

Весь код для решения этого задания будет такой:

k = 2
eta = 56 * 10 ** 3
i = 16
t = 120
bitrate = 32_000

V = k * t * i * eta

transfer_time = V // bitrate
print(transfer_time)

В ответ записываем число 6720.

Тип 2

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

Начнём разбор этого типа с такой формулировки:

Музыкальный фрагмент был записан в формате стерео (двухканальная запись), оцифрован и сохранён в виде файла без использования сжатия данных. Размер полученного файла – 39 Мбайт. Затем тот же музыкальный фрагмент был записан повторно в формате моно и оцифрован с разрешением в 2,5 раза выше и частотой дискретизации в 4 раза больше, чем в первый раз. Сжатие данных не производилось.

Укажите размер файла в Мбайт, полученного при повторной записи.

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

Открыть задание

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

Исходный файл записан в стерео и занимает 39 Мбайт. При повторной записи параметры изменились так:

  1. Из стерео перешли в моно → количество каналов уменьшилось в 2 раза;
  2. Разрешение увеличилось в 2,5 раза;
  3. Частота дискретизации увеличилась в 4 раза.

Значит, исходный размер нужно умножить на 2,5 и на 4, а затем разделить на 2:

V = 39 · 2,5 · 4 / 2 = 195

Решение завершено. В ответ записываем число 195 без единиц измерения.

Пример 2

Рассмотрим ещё одну формулировку задания 7 второго типа:

Музыкальный фрагмент был записан в формате моно, оцифрован и сохранён в виде файла без сжатия данных. Размер полученного файла − 35 Мбайт. Затем тот же музыкальный фрагмент был записан повторно в формате стерео (двухканальная запись) с частотой дискретизации в 3,5 раза больше, чем в первый раз. Сжатие данных не производилось.

Укажите размер файла в Мбайт, полученного при повторной записи.

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

Открыть задание

Проследим, как изменились параметры звукового файла:

  1. Из моно перешли в стерео → количество каналов увеличилось в 2 раза;
  2. Глубина кодирования не изменилась;
  3. Частота дискретизации увеличилась в 3,5 раза.

Вычислим новый размер файла:

V = 35 · 3,5 · 2 = 245

В ответ записываем число 245.

Итоги

Мы разобрали два типа задач со звуковыми файлами: прямой расчёт объёма и пересчёт размера после изменения параметров записи.

Для прямого расчёта используйте формулу V = k · t · i · η, где η — частота дискретизации, i — глубина кодирования, t — время, а k — количество каналов.

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

Перед вычислениями проверьте единицы измерения и наличие сжатия. При переходе из моно в стерео размер увеличивается в 2 раза, а из стерео в моно — уменьшается в 2 раза.

На этом мы закончили разбор алгоритмов решения задания 7 ЕГЭ по информатике. А попрактиковаться в решении заданий данного типа вы можете в нашем тренажёре.

Разберём эту тему на бесплатном пробном занятии

Преподаватель покажет, как решать такие задачи, и подскажет, с чего начать подготовку. Группы до 8 человек, очно в Калининграде и онлайн.

Записаться на пробное занятие