Поделюсь тем, что знаю
Сразу прошу прощения за разговоры про «плавную волну». При всём своём новичковском звучании такие изъяснения легко визуализируются в мыслях. В дебри программирования и математики лазить не буду, рассказываю для всех.
Сразу прошу прощения за разговоры про «плавную волну». При всём своём новичковском звучании такие изъяснения легко визуализируются в мыслях. В дебри программирования и математики лазить не буду, рассказываю для всех.
Про Float в аудио популярно
Где нам только не попадается надпись вроде «32 bit float» — в спецификациях, обзорах, руководствах. К сожалению, последний элемент этой надписи часто недооценивается или вовсе игнорируется, и формат ставится в один ряд с привычными нам 16- или 24-битными. То есть многие просто не осведомлены о преимуществах представления с плавающей запятой («float» — плавающий). Потому распространены суждения в духе «зачем 32, если мне и 24 достаточно». Разберёмся, зачем и где это всё-таки нужно.
Когда речь идёт о 16, 20, 24 или 48 битах, то обычно под этим подразумевается противоположность плавающей запятой — фиксированная запятая. Подписывается это как «int», то есть integer — целочисленный, т.к. в этом виде удобно представлять целые числа. Именно о представлении с фиксированной запятой считает своим долгом рассказать любой автор, пишущий об основах цифрового звука. Поэтому не будем вдаваться подробности, а лишь вспомним, что 00 = 0, 01 = 1, 10 = 2, 11 = 3 и т.д., но только с соответствующим числом разрядов (разряды и биты — одно и то же в данном контексте, если что Правда, один бит отдаётся под знак — так удобнее представлять «цифровую волну», которая колеблется в обе стороны относительно нуля. С разным количеством бит получается разный диапазон чисел, но самое большое по модулю число в этом диапазоне всё равно соответствует 0 дБ. Это пресловутый Full Scale, выше которого не прыгнешь, т.к. все биты уже единицы. Но иногда прыгнуть нужно.
Во-первых, в процессе обработки звука возможны очень сильные изменения уровней. Они могут быть не совсем заметными с точки зрения пользователя, но на отдельных шагах алгоритмов внутри устройств и программ обработки перепады могут быть чрезвычайно серьёзными. А ведь при традиционном целочисленном представлении количество бит у нас ограничено. Если сделаем слишком тихо, то уйдём в полный ноль или, как минимум, оставим мало места для плавного изменения уровня «волны», а если слишком громко, то получим не подлежащий исправлению клиппинг.
Во-вторых, это просто удобно: если есть возможность прыгнуть выше нуля без последствий, то потом можно спокойно понизить уровень, и в итоге ничего не потерять. Это позволяет забыть о слежении за уровнями в каждой точке системы и сосредоточиться на деле, внося необходимые коррективы где-нибудь дальше по течению, уже за точкой, где множество потоков сливаются воедино.