MPEG-4 CELP представляет собой универсальный алгоритм кодирования с новыми функциональными возможностями. Обычные кодеры CELP предлагают сжатие при одной битовой скорости и оптимизированы для определенных приложений. Сжатие является одной из функций, предоставленных CELP MPEG-4, позволяющей использовать один базовый кодер для различных приложений. Это обеспечивает масштабируемость по битовой скорости и полосе пропускания, а также возможность генерировать потоки бит с произвольной битовой скоростью. Кодер CELP MPEG-4 поддерживает две частоты дискретизации, а именно 8 и 16 кГц. Соответствующие полосы пропускания равны 100-3400 Гц для частоты дискретизации 8 кГц и 50-7000 Гц для частоты дискретизации 16 кГц. Кроме того, заново приняты сжатие молчание и переупорядочение эластичного потока бит ошибок.
1.2.1 Конфигурация кодера CELP MPEG-4
Чтобы генерировать сигнал возбуждения, могут использоваться два различных инструмента. Это инструмент Multi-Pulse Excitation (Мультиимпульсное возбуждение) (МРЕ) или инструмент Regular-Pulse Excitation (Возбуждение регулярным импульсом) (RPE). МРЕ используется для дискретизации речи на частотах 8 кГц или 16 кГц. RPE используется только для дискретизации на частоте 16 кГц. Два возможных режима кодирования сведены в таблице 1.
Таблица 1 - Режимы кодирования в кодере CELP MPEG-4
Режим кодирования | Инструмент возбуждения | Частота дискретизации |
I | RPE | 16 кГц |
II | МРЕ | 8,16 кГц |
1.2.2 Особенности кодера CELP MPEG-4
Кодер CELP MPEG-4 предлагает следующие функциональные возможности в зависимости от режима кодирования (см. таблицу 2).
Таблица 2 - Функциональные возможности кодера CELP MPEG-4
Режим кодирования | Функциональность |
I | Несколько битовых скоростей, управление FineRate |
II | Несколько битовых скоростей, масштабируемость битовой скорости, масштабируемость полосы пропускания, управление FineRate |
Для обоих режимов кодирования доступны сжатие молчания и переупорядочение эластичного потока бит ошибок.
Доступные битовые скорости зависят от режима кодирования и частоты дискретизации. Поддерживаются следующие фиксированные битовые скорости (см. таблицы 3, 4).
Таблица 3 - Фиксированные битовые скорости для режима I кодера
Битовые скорости для частоты дискретизации 16 кГц, бит/с |
14400, 16000, 18667, 22533 |
Таблица 4 - Фиксированные битовые скорости для режима II кодера
Битовые скорости для частоты дискретизации 8 кГц, бит/с | Битовые скорости для частоты дискретизации 16 кГц, бит/с |
3850, 4250, 4650, 4900, 5200, 5500, 5700, 6000, 6200, 6300, 6600, 6900, 7100, 7300, 7700, 8300, 8700, 9100, 9500, 9900, 10300, 10500, 10700, 11000, 11400, 11800, 12000, 12200 | 10900, 11500, 12100, 12700, 13300, 13900, 14300, 14700, 15900, 17100, 17900, 18700, 19500, 20300, 21100, 13600, 14200, 14800, 15400, 16000, 16600, 17000, 17400, 18600, 19800, 20600, 21400, 22200, 23000, 23800 |
Во время неактивных фреймов используется инструмент сжатия тишины и кодер CELP работает на битовых скоростях, показанных в таблице 5. Битовая скорость зависит от режима кодирования, частоты дискретизации и длины фрейма.
Таблица 5 - Битовые скорости для инструмента сжатия тишины
Режим кодирования | Частота взятия выборок, кГц | Масштабируемость ширины полосы | Длина фрейма | Битовая скорость, бит/с | ||
TX_fIag | HD-SID | LR-SID | ||||
I (RPE) | 16 | - | 15 | 133 | 2533 | 400 |
10 | 200 | 3800 | 600 | |||
II (МРЕ) | 8 | On, Off | 40 | 50 | 525 | 150 |
30 | 67 | 700 | 200 | |||
20 | 100 | 1050 | 300 | |||
10 | 200 | 2100 | 600 | |||
16 | Off | 20 | 100 | 1900 | 300 | |
10 | 200 | 3800 | 600 | |||
On | 40 | 50 | 1050 | 150 | ||
30 | 67 | 1400 | 200 | |||
20 | 100 | 2100 | 300 | |||
10 | 200 | 4200 | 600 |
Управление скоростью: обеспечивает управление битовой скоростью малыми шажками (давая возможность работать на варьируемой битовой скорости). Это достигается только за счет управления скоростью передачи параметров LPC, используя комбинации двух элементов потока бит interpolation_flag и флажок LPC_present. Для изменения отношения фреймов LPC к общему числу фреймов между 50% и 100% можно использовать управление FineRate. Это позволяет уменьшить битовую скорость относительно битовой скорости привязки, как определено в семантике.