В процессе разработки кодера и анализа известных форматов PCM (Format A/B/C) возникла идея модифицировать PCM Format C (EIAJ STC-007/008) так, чтобы увеличить динамический диапазон без повышения битрейта, при этом сохранив двухэтапную систему коррекции ошибок. Для это было применено нелинейное кодирование данных с логическим компандированием (сжатием). Аналогичный подход был применен в PCM format B. В остальном Format M2 структурно не отличается от 14-ти битного PCM Format C и имеет такую же коррекцию ошибок.
Принцип работы нелинейного кодирования заключается в том, что весь диапазон входного сигнала делится на диапазоны (ranges), каждый из которых кодируется со своими параметрами (рис. 1). Информация об активном диапазоне указывается в старшем бите (R) 14-битного слова результата. Остальные 13 бит занимают данные. Значение каждого семпла аудиоданных анализируется, и при попадании его значения в диапазон II, он усекается на три младших бита, а бит R при этом равен 0. А при попадании значения в диапазон I, число предварительно умножается в m раз и только потом попадает на схему усечения, и бит R становится равным 1. Такой подход позволяет сохранить разрешающую способность при малых уровнях входного сигнала.
Рис. 1. Диапазоны входного сигнала
Коэффициент m выбран равным 8, следовательно в диапазоне I сигнал будет эквивалентен 16 битам (13 + 3). Стык диапазонов находится около -18 дБ от полной шкалы (0.125). При этом теоретический динамический диапазон сохраняется идентичным 16-битному и составляет 96 дБ.
Рис. 2. Пример кадров PCM Format M2 14 бит: синусоидальный сигнал 100 Гц (слева), музыкальный сигнал (справа)
Кстати говоря, подобным образом проводилось расширение динамического диапазона в Sony PCM-10. С той лишь разницей, что там 12-битный АЦП формировал 14-битный результат на основе двух измерений. Каждый семпл измерялся 2 раза – сначала как есть, чтобы получить старшие 12 бит, затем c предусилением в 4 раза, чтобы получить младшие 2 бита.
При включении Format M2 в строке заголовка кадра (control data block) изменяются флаги в первых двух битах поля Control word, которые, судя по IEC 60841-1988, предназначены именно для этих целей. В Format C они должны быть “00”, а в Format M2 становятся равными “01”:
Bit No. | Content | Application | Code status |
1-2 | Format identification code | Format C | 0 0 |
Format M2 | 0 1 | ||
3-10 | Not specified | – | 0 |
11 | Copy prohibiting code | Not prohibited | 0 |
12 | P-error-correction identification code | Applied | 0 |
13 | Q-error-correction identification code | Applied | 0 |
14 | Pre-emphasis identification code | Applied | 0 |
Результаты проверки в программе RightMark Audio Analyzer представлены на графиках ниже (Рис. 3-5). Здесь показаны спектры тестовых сигналов – исходный 16-битный сигнал, 14-битный сигнал Format M2 и 14-битный сигнал Format C. На рис. 3 и рис. 4 графики исходного 16-битного сигнала и 14-битного сигнала Format M2 полностью идентичны и сливаются.
Рис. 3. Уровень шума
Рис. 4. Динамический диапазон
Рис. 5. Коэффициент нелинейных искажений
Численные результаты проверки в программе RightMark Audio Analyzer:
Test | 16 bit Source file |
14 bit Format M2 |
14 bit Format C |
Noise level, dB (A) | -97.8 | -97.8 | -84.7 |
Dynamic range, dB (A) | 97.8 | 97.8 | 84.8 |
THD, % | 0.00033 | 0.00223 | 0.00158 |
IMD + Noise, % | 0.00354 | 0.023 | 0.016 |