Основные принципы выбора кодировки

Опубликовано в Технологии > Серверные технологии Продолжение

Программное обеспечение RTP является довольно сложным, и это в основном связано с тем, что существует немало способов применения протокола RTP в приложениях. Разные приложения RTP даже могут не иметь между собой почти ничего общего. Например, в них могут применяться два основных принципа кодировки данных, которые резко отличаются друг от друга. Межкомнатные двери от производителя в розницу спб.

  • Кодировка выборок. В приложении, предназначенном для передачи аудиоинформации, обычно применяется кодировка потока байтов, которая для представления оцифрованных значений чаще всего предусматривает использование одной из разновидностей импульсно-кодовой модуляции (PCM — Pulse Code Modulation). В потоке PCM каждый элемент данных соответствует одной выборке. Например, в соответствии со стандартом G.711, применяемом в телефонии, отправитель выполняет выборку входного сигнала 8000 раз в секунду и кодирует каждую выборку в виде одного значения от 0 до 255. Поэтому выходные данные, полученные в результате применения кодировки РСМ, состоят из потока байтов, не имеющего внутренней структуры; получатель может начать воспроизведение с любого места в потоке. Аудиоинформация с более высоким качеством звучания также передается с использованием кодировки выборки, но размеры выборок увеличиваются (например, для представления каждой выборки применяется 16 битов) или используется более высокая частота дискретизации.
  • Кодировка кадров. При использовании кодировки кадров, в отличие от кодировки выборок, применяется кадрирование, при котором отправитель делит данные на дискретные единицы, называемые кадрами. Одним из самых известных примеров применения кадрирования является передача видеоинформации, при которой результаты каждого сканирования изображения (например, на экране) помещаются в отдельный кадр. В целях уменьшения потребности в пропускной способности, во многих видеокодировках применяется дифференциальная схема кадрирования, при которой отправитель периодически передает полный видеокадр, а затем отправляет относящуюся к последовательным кадрам информацию обновления (которая описывает изменения, происшедшие от момента передачи последнего полного кадра до момента передачи текущего кадра). Для каждого кадра нужен заголовок (например, для того чтобы отправитель мог указать, является ли он полным кадром или содержит только информацию обновления).

Кодировка кадров дополнительно усложняется в связи с отсутствием стандарта, поскольку при разработке каждого приложения, основанного на использовании такой кодировки, приходится самостоятельно регламентировать все тонкости формирования кадров, в том числе формат и интерпретацию заголовка кадра. В некоторых кодировках, применяемых на практике, используются кадры постоянного размера; другие допускают изменение размеров. Еще более важно то, что нет общепринятого соглашения об инкапсуляции. Некоторые кодировки предусматривают передачу каждого кадра в отдельном пакете RTP. Но кодировки, в которых используются кадры небольшого размера, часто допускают размещение в одном пакете RTP нескольких кадров, тогда как кодировки, предусматривающие применение кадров больших размеров, допускают разбиение одного кадра на несколько пакетов RTP.