patron | Дата: Вторник, 08.09.2015, 21:42 | Сообщение # 1 |
Генерал-лейтенант
Группа: Администраторы
Сообщений: 128
Статус: Offline
| Возможности
Частота дискретизации 8 кГц при 13 битах (160 сэмплов на 20 мс фреймов), звук отфильтрован до диапазона частот от 200 до 3 400 Гц. Кодек AMR использует восемь восемь базовых кодеков для битрейтов 12.2, 10.2, 7.95, 7.40, 6.70, 5.90, 5.15 и 4.75 kbit/s. Длина фрейма варьируется 95, 103, 118, 134, 148, 159, 204 или 244 бит для битрейтов 4.75, 5.15, 5.90, 6.70, 7.40, 7.95, 10.2 или 12.2 kbit/s соответственно. AMR использует технологию Discontinuous Transmission (DTX) совместно с Voice Activity Detection (VAD) и Comfort Noise Generation (CNG), чтобы снизить использование пропускной способности канала во время тихого звука. Алгоритмически задержка равна 20 мс на фрейм. Для битрейтов 12.2 kbit/s нет алгоритма определения задержки заранее. Для других битрейтов задержка составляет 5 мс. Учтите, что есть задержка-пустышка в 5 мс, которая позволяет достичь бесшовного «умного» переключения между битрейтами.
|
|
| |
patron | Дата: Вторник, 08.09.2015, 21:44 | Сообщение # 2 |
Генерал-лейтенант
Группа: Администраторы
Сообщений: 128
Статус: Offline
| Использование AMR формата подразумевает адаптацию к качеству связи и выбор наиболее оптимального режима, чтобы удовлетворить требованиям к радиоканалу и мощности. Если условия для передачи плохие, то ухудшается качество исходного потока и улучшается канальное кодирование. Это увеличивает стойкость к помехам сети, жертвуя качеством сжатой речи. В некоторых случаях это улучшение приблизительно оценивается по шкале отношения сигнал / шум в 4-6 дБ. Новая интеллектуальная система позволяет операторам сети выбирать приоритеты между мощностью и качеством на базовых узлах.
|
|
| |
patron | Дата: Вторник, 22.09.2015, 15:46 | Сообщение # 3 |
Генерал-лейтенант
Группа: Администраторы
Сообщений: 128
Статус: Offline
| пример использования проекта кодера декодера описанного в TS 26.104
project
3GPP AMR Floating-point speech codec
|
|
| |
patron | Дата: Вторник, 22.09.2015, 15:55 | Сообщение # 4 |
Генерал-лейтенант
Группа: Администраторы
Сообщений: 128
Статус: Offline
| добавить в *.h файл проекта
#include "interf_dec.h" #include "interf_enc.h" #include "sp_enc.h" #include "dec_dec.h" #include "typedef.h"
/////////////////////////////
enum Mode req_mode; enum Mode dec_mode;
|
|
| |
patron | Дата: Вторник, 22.09.2015, 16:02 | Сообщение # 5 |
Генерал-лейтенант
Группа: Администраторы
Сообщений: 128
Статус: Offline
| функция осуществляющая декодирование
void Decode_amr(unsigned char * Data/*входной кадр(один кадр)*/, int Len/*длинна*/) { int * destate; short synth[160];
dec_mode = (Mode) ((Data[0]>>3)&0x000F);
Decoder_Interface_Decode(destanse, Data, synth/*выходной буфер (320 бит - 160 2 -битных слов)*/,0);
Decoder_Interface_exit(destate);
}
|
|
| |
patron | Дата: Вторник, 22.09.2015, 19:07 | Сообщение # 6 |
Генерал-лейтенант
Группа: Администраторы
Сообщений: 128
Статус: Offline
| определение скорости вокодера
int per_l;//переменная для хранения длинны кадра в байтах dec_mode = (Mode) ((Data[0]>>3)&0x000F);
switch(dec_mode) { case MR475: per_l=13; break; case MR515: per_l=14; break; case MR59: per_l=16; break; case MR67: per_l=18; break; case MR74: per_l=20; break; case MR795: per_l=21; break; case MR102: per_l=27; break; case MR122: per_l=32; break; }
|
|
| |