"Информатика (базовый уровень)", Угринович Н.Д.
Звуковая информация хранится в компьютере не как непрерывная волна, а как последовательность чисел, полученных при измерении сигнала. Такой способ называется цифровым кодированием звука. Его качество и размер файла зависят от частоты дискретизации, глубины кодирования, числа каналов и длительности записи. Понимание этих параметров помогает оценивать точность звучания и рассчитывать объём несжатого файла.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Звуковой сигнал — непрерывное изменение звуковой волны во времени. В воздухе звук распространяется как колебания давления, а микрофон превращает их в электрический сигнал. Компьютеру удобнее хранить и обрабатывать числа, поэтому при записи сигнал представляют последовательностью числовых значений. По ним устройство затем формирует звук при воспроизведении.
Дискретизация звука — замена непрерывного сигнала последовательностью измеренных значений, снятых через равные промежутки времени. Иными словами, компьютер как будто регулярно «смотрит», каково значение сигнала в выбранный момент. Такое представление позволяет хранить звук в цифровом виде и выполнять над ним вычисления. Промежутки между измерениями при этом остаются незаписанными.
Частота дискретизации — число измерений звукового сигнала за одну секунду. Её измеряют в герцах: например, 8 000 Гц означает восемь тысяч измерений в секунду. Эта величина показывает, насколько часто компьютер фиксирует изменения волны. Она нужна, чтобы оценить временную точность записи и число значений, которое придётся сохранить.
Глубина кодирования звука — количество бит, отведённое для записи каждого измеренного значения сигнала. Если на значение выделено n бит, можно закодировать 2ⁿ разных уровней. Чем больше таких уровней, тем точнее запись может различать значения сигнала и соответствующие им уровни громкости. Глубина помогает оценить точность одного измерения и объём данных.
Звуковая волна непрерывна: её значение меняется не только в отдельных точках, но и между ними. Память компьютера состоит из отдельных ячеек, в которых хранятся конечные последовательности битов, поэтому записать туда непрерывную волну напрямую нельзя. Вместо этого устройство преобразует сигнал в набор числовых значений. Эти числа можно хранить, копировать и обрабатывать по правилам цифровой техники.
При дискретизации выбирают равные промежутки времени и измеряют сигнал в моменты, разделённые этими промежутками. Частота показывает, сколько таких измерений попадает в одну секунду. Если измерения выполняются чаще, между соседними точками проходит меньше времени, поэтому быстрые изменения волны описываются подробнее. Однако число сохраняемых значений растёт, а вместе с ним увеличивается и размер файла.
Одного измерения недостаточно, чтобы записать значение с бесконечной точностью: компьютеру нужно выбрать один из конечного числа уровней. Глубина кодирования определяет, сколько таких уровней доступно: при n битах их 2ⁿ. Например, большая глубина позволяет выбрать более близкий уровень для измеренного значения и точнее представить сигнал. За эту точность приходится платить дополнительной памятью, потому что на каждое измерение записывается больше битов.
После измерения каждое значение сопоставляют одному из допустимых уровней, а затем записывают его номер в двоичном виде. На этом этапе точность теряется: исходное значение может находиться между доступными уровнями, и его приходится округлить. Есть и временная потеря — между соседними измерениями исходная волна не сохранена как набор точек. Поэтому цифровая запись является приближённым представлением аналогового звука, а увеличение частоты и глубины обычно делает приближение точнее.
За секунду для одного канала записывается f измерений, если частота равна f. На каждое измерение приходится i бит, значит, за секунду один канал требует f × i бит. Для c каналов и записи длительностью t секунд объём равен V = f × i × c × t бит. Чтобы получить байты, результат делят на 8; так формула показывает, почему удвоение любого из этих параметров удваивает объём несжатой записи.
| Параметр | Что показывает | Как влияет на точность или размер файла |
|---|---|---|
| Частота дискретизации | Число измерений сигнала за секунду | Более высокая частота точнее передаёт изменения во времени и увеличивает объём |
| Глубина кодирования | Количество бит на одно измеренное значение | Больше уровней — точнее представление значения, но больше размер |
| Число каналов | Количество одновременно записываемых звуковых потоков | Стерео с двумя каналами при прочих равных требует вдвое больше места, чем моно |
| Длительность записи | Время звучания файла | При неизменных настройках более длинная запись занимает больше места |
| Объём несжатого файла | Количество данных, нужных для хранения записи без сжатия | Определяется произведением частоты, глубины, числа каналов и длительности |
Сначала определите, какой параметр требуется сравнить: частота отвечает за количество измерений, а глубина — за точность каждого из них. Для оценки объёма перемножьте частоту, глубину, число каналов и длительность, затем переведите биты в байты. Сжатые форматы могут занимать меньше места, поэтому таблица и формула относятся к несжатой записи.
Задача 1. Запись длится 1 секунду, частота дискретизации — 8 000 Гц. Сколько измерений сигнала будет записано? Здесь частота уже означает число измерений за секунду, поэтому для другой длительности её нужно было бы умножить на количество секунд. В данной задаче длительность равна одной секунде.
Ответ: 8 000 измерений.
Задача 2. Найдём объём несжатой стереозаписи длительностью 10 секунд при частоте 22 050 Гц и глубине 16 бит. Стерео означает два канала, поэтому сначала учитываем объём для обоих. Формула даёт ответ в битах, а задача просит байты и килобайты.
Ответ: 882 000 байт, или примерно 861,3 Кбайт. Результат не учитывает заголовок файла и возможное сжатие.
Задача 3. Монофайл длительностью 30 секунд записан с частотой 44 100 Гц и глубиной 16 бит. Сравним его объём с объёмом стереозаписи той же длительности при частоте 22 050 Гц и глубине 8 бит. Длительность одинакова, поэтому при сравнении она сокращается, а достаточно сопоставить произведения остальных параметров.
Ответ: объём уменьшится в 2 раза, то есть станет равен половине исходного. Снижение частоты и глубины в сумме перевешивает удвоение числа каналов.
Частоту дискретизации иногда путают с глубиной кодирования, потому что обе величины связаны с качеством записи. Но частота задаёт число измерений за секунду, а глубина — число бит на одно измерение. Чтобы проверить себя, посмотрите на единицы: для частоты это герцы, а для глубины — биты. В формуле объёма эти параметры стоят отдельно и выполняют разные роли.
При расчёте объёма легко забыть число каналов или длительность, особенно если условие содержит много данных. Тогда результат получится меньше нужного: например, для стерео один канал не описывает весь файл. Перед вычислением выпишите значения f, i, c и t и подставьте каждое в формулу. Проверьте, что для моно c = 1, для стерео c = 2, а длительность выражена в секундах.
Ещё одна ошибка — не перевести биты в байты или перепутать байты с килобайтами. Если формула дала биты, делите на 8; затем для килобайтов обычно делите байты на 1024. Проверка размерности помогает заметить пропуск: ответ в битах нельзя подписывать как байты. При переводе полезно сохранять промежуточные результаты и округлять только в конце.
Некоторые считают, что увеличение частоты или глубины уменьшает файл, например потому, что более качественное звучание кажется более «эффективным». Для несжатой записи всё наоборот: чаще измеряем сигнал — сохраняем больше значений, выделяем больше бит на значение — записываем больше данных. Проверьте вывод по формуле: каждый параметр является множителем, поэтому его увеличение при неизменных остальных условиях увеличивает объём. Сжатие может изменить размер, но оно не отменяет эту зависимость для несжатых данных.
Для вычислений нужны знания о двоичном кодировании и единицах измерения информации: именно двоичные числа хранят измеренные значения, а биты переводят в байты делением на 8. Понятия сигнала, измерения и временного интервала помогают представить, как непрерывное явление превращается в последовательность отдельных данных. Та же логика оцифровки встречается при работе с изображениями и другими мультимедийными объектами. Расчёт объёма звука пригодится при оценке размера файлов и выборе параметров записи или хранения.
Чем частота дискретизации отличается от глубины кодирования?
Частота дискретизации показывает, сколько измерений сигнала выполняется за секунду. Глубина кодирования показывает, сколько бит выделено для записи каждого измерения и насколько точно можно представить его значение.
Почему для стереозаписи требуется больше памяти, чем для моно?
Монофайл хранит один звуковой канал, а стереофайл — два: например, для левого и правого динамиков. При одинаковых остальных параметрах стереозапись занимает вдвое больше места.
Как вычислить объём несжатого звукового файла?
Умножьте частоту дискретизации на глубину кодирования, число каналов и длительность записи. Получите объём в битах; чтобы перевести его в байты, разделите результат на 8.
Почему повышение качества звуковой записи увеличивает размер файла?
Более высокая частота дискретизации означает больше измерений за секунду, а большая глубина кодирования — больше бит для каждого измерения. Поэтому для хранения более точной записи требуется больше данных.
Можно ли восстановить исходный аналоговый звук по цифровой записи без потерь?
При обычной оцифровке исходная волна заменяется отдельными измерениями, а их значения округляются до доступных уровней. Поэтому точное восстановление исходного аналогового сигнала обычно невозможно, хотя при высоких параметрах записи различия могут быть незаметны на слух.
1.3. Кодирование звуковой информации