Статья Автор: Деникина Н.В., Деникин А.В.

Частота, время, разрядность, каналы

Как звук становится числами?

Звук — это волна. В памяти волн не бывает, там только числа.

Значит, волну надо порезать. Дважды.

По времени: много раз в секунду замеряем высоту волны. Сколько раз — это частота дискретизации.

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

И всё это отдельно для каждой дорожки: моно — одна, стерео — две, квадро — четыре.


Формула звука

Звук: режем по времени и по высотелевый каналправый каналуровни: 16 битотсчёты: 16000 раз в секунду× 2 канала = стерео
I = f · t · i · k

где f — частота в герцах, t — время в секундах, i — глубина в битах, k — число каналов.

Микропаттерн «Частота × время × разрядность × каналы». Четыре множителя. Забыл один — ответ уехал в разы, а не на проценты.

Проверка на здравый смысл: f · i · k — это сколько бит уходит на одну секунду звука. Умножь на секунды — получишь весь файл.


Пример: заставка фестиваля

Заставка: 40 секунд, частота дискретизации 16000 Гц, глубина 16 бит, стерео.

  1. Одна секунда: 16000 × 16 × 2 = 512000 бит.
  2. Весь файл: 512000 × 40 = 20480000 бит.
  3. 20480000 / 8 / 1024 = 2500 Кбайт.

Сравни с афишей: картинка — 768 Кбайт, звук — 2500 Кбайт. Вместе 3268 Кбайт.

На флешку в 4 Мбайт (4096 Кбайт) это влезает, остаётся 828 Кбайт.


Пример

Камера снимает видео без звука с частотой 24 кадра в секунду, изображения используют палитру из 224 = 16 777 216 цветов. Параллельно производится запись стереозвука. 1 минута видеоряда занимает в среднем 36 Мбайт, 1 минута звуковой дорожки — 6 Мбайт. Для хранения видео преобразуют так: для изображений используется палитра в 256 цветов, а звук перезаписывается в формате моно, при этом частота дискретизации уменьшается в 2 раза, а глубина кодирования — в 1,5 раза. Сколько Мбайт занимает 1 минута преобразованного видео со звуком?

Здесь ни размера кадра, ни частоты дискретизации нет. И не нужно.

Микропаттерн «Отношение вместо объёма». Если меняются множители, объём меняется во столько же раз. Считай множители, а не биты.

Видео: палитра 224 в → 256 цветов, то есть 24 бита в → 8 бит. Множитель 8/24 = 1/3. Было 36, стало 36 / 3 = 12 Мбайт.

Звук: стерео в → моно даёт 1/2, частота вдвое меньше даёт ещё 1/2, глубина в 1,5 раза меньше даёт 2/3. Вместе 1/2 · 1/2 · 2/3 = 1/6. Было 6, стало 6 / 6 = 1 Мбайт.

Вместе: 12 + 1 = 13.


Пишем программу для расчетов

Формула звука — просто четыре множителя: частота, время, разрядность, число каналов.

Логарифмов здесь нет: разрядность дана прямо в условии, в битах. Вычислять её не нужно.

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

▶ Попробуй: поставь channels = 1 и посмотри, как изменится объём.



Вывод программы:

20480000
2500

Ловушки звука

  • Килогерцы не переведены. 44 кГц — это 44 000 замеров в секунду. В формулу идут герцы.
  • Забыли каналы. Стерео — множитель 2, квадро — 4, «восьмиканальная дорожка» — 8. Слово «моно» в условии тоже важно: оно означает 1, и это не «ничего».
  • Минуты остались минутами. t — в секундах. 5 минут = 300.
  • «Разрешение» в звуковой задаче. Здесь это глубина кодирования, а не размер кадра.
  • Считают объёмы там, где нужны отношения. Если в условии дан готовый размер файла и меняются параметры — считай множители. Абсолютные биты в такой задаче не понадобятся вовсе.

Проверь себя


Моноаудиофайл: 32 секунды, частота дискретизации 16 000 Гц, глубина кодирования 16 бит. Сколько Кбайт занимает файл? В ответе запишите целое число.


Запись в стерео перезаписали в моно, оставив остальные параметры прежними. Как изменился объём?


Квадрофайл (4 канала) занимает 12 Мбайт. Ту же запись сделали в моно, разрешение увеличили в 2 раза, а частоту дискретизации уменьшили в 1,5 раза. Сколько Мбайт занял новый файл? В ответе запишите целое число.


Сопоставьте формат записи и множитель числа каналов.

Печать