Скачиваний:
8
Добавлен:
28.04.2019
Размер:
105.98 Кб
Скачать

Потоковое воспроизведение аудио

Потоковый формат аудио и видео предназначен для воспроизведения этой информации сразу по ходу ее получения. Использование потокового формата позволяет вести прямые теле- и радиотрансляции через Интернет, а также предоставлять возможность непосредственного просмотра (прослушивания) достаточно длинных записей.

  • Разностная (дифференциальная) импульсно-кодовая модуляция.

Обсуждение цифроаналогового преобразования мы вели до сих пор, рассматри­вая импульсно-кодовую модуляцию (ИКМ), подразумевающую квантование абсо­лютных величин текущей амплитуды сигнала (т.е. в случае ИКМ кодированию подвергались непосредственно измеренные значения входного аналогового сигна­ла). Помимо этого способа модуляции, применяется так называемая разностная (дифференциальная) ИКМ, сокращенно — ДИКМ (Differential PCM — DPCM). В случае ДИКМ квантованию подвергают так называемые разностные значения ве­личины амплитуды входного сигнала. Другими словами, кодированию в случае ДИКМ подвергается не сам сигнал, а некоторая его производная. Метод ДИКМ, аналогично ИКМ, может сочетаться с использованием как однородного (линейного), так и неоднородного методов квантования. Прежде чем приступить к рассмотрению ДИКМ, сделаем важные замечания, касающиеся используемых нами в дальнейшем обозначений. А именно, условимся, что здесь и далее:

  • s(n) и s[n] в общем случае означают, что речь идет соответственно об анало­говом (круглые скобки) и цифровом (квадратные скобки) сигналах;

  • под s(n) в конкретном случае мы будем подразумевать величину аналогового сигнала s, измеренного на шаге дискретизации п, где п = 0,1,2,...; например, s(0) — численное значение первого (на шаге дискретизации п = 0) замера те­кущей амплитуды аналогового сигнала s;

  • запись s[n] будет подразумевать, что сигнал s дискретен, т.е. представляет собой последовательность чисел, описывающих дискретные значения сигнала; в большинстве случаев общее количество дискретных значений сигна­ла (отсчетов) мы будем обозначать N, и нумероваться они будут, как и ранее,начиная с 0, например в цифровом сигнале s[n] в формате ИКМ, представ­ленном последовательностью из шести отсчетов (N = 6), S [n] = {5, 12, 1, 3, 5, 67}номера отсчетов: n= 0, 1, 2, 3, 4, 5, запись s[2] подразумевает третий по счету отсчет (п = 2), значение которого равно 1, т.е. s[2] = 1;

■ функцией Q[] мы будем при необходимости обозначать функцию квантова­ния; например, запись а[п] - Q[s(n -1)] будет означать, что численное значе­ние цифрового сигнала а на /г-м шаге преобразования (или, другими словами,/1-й отсчет дискретного сигнала а) равно квантованному значению аналого­ вого сигнала s на шаге п—1.

Вот это не знаю нужно ли для 14 вопроса….Не знаю вообще что в него должно входить….

Как и в АС'97, система HDA начинается с контроллера — устройства PCI, обеспечивающего передачу потоков данных между системной памятью и кодеками через интерфейс HDA Link. Контроллер HDA, оставаясь (логически) устрой­ством PCI, может включаться в чипсет или подключаться к какой-либо шине семейства PCI. Кодеков может подключаться несколько — например, аудиокодек, модемный кодек и дополнительный аудиокодек в док-станции мобильного ПК. Интерфейс с контроллером обеспечивается через его регистры, отображен­ные на пространство памяти, и структуры данных в памяти.

Поток (stream) представляет собой логическое (виртуальное) соединение между буферами в ОЗУ и кодеком, организуемое отдельным каналом DMA. Поток состоит из одного или нескольких каналов данных, каждый канал связан со сво­им преобразователем (ЦАП, АЦП или конвертором интерфейсов) в кодеке. На­пример, стереопоток содержит данные левого и правого каналов. Данные кана­лов потока в памяти расположены рядом и по интерфейсу HDA Link передаются совместно. Выходной поток (outbound stream) распространяется по Интерфейсу широковещательно, он может приниматься несколькими кодеками. Каждый входной поток (inbound stream) может приниматься только от одного кодека. По каждой входной и выходной сигнальной линии интерфейса передается по­следовательность кадров, частота кадров фиксирована — 48 кГц. Кадр начинается с поля команды/ответа, за которым передаются пакеты, содержащие блоки данных потоков. Каждый пакет начинается с тега потока (stream tag), идентифицирующего поток и указывающего число блоков в пакете, за тегом следуют блоки отсчетов. Блок содержит отсчеты (выборки) всех каналов, одповременно поступающие на ЦАП (или от АЦП). Остаток (если есть) времени в кадре заполняется нулями. Для потоков с частотой выборки 48 кГц в каждом кадре присутствует по одному блоку данных с комплектом выборок его кана­лов. Если частота выборок выше или ниже, то число блоков данного потока в кадре оказывается иным (возможно, и переменным от кадра к кадру).

Тактовая частота интерфейса — 24 МГц. В выходном потоке информация передается с двойной синхронизацией. Во входном потоке имеет место одиночная синхронизация, в кадре умещается 500 бит (31,25 слов).

С каждым потоком связывается канал DMA, обеспечивающий изохронную передачу данных. Передача описывается списком дескрипторов буферов, задающих положение и длину фрагментов потока в физических адресах ОЗУ. Для каждого канала в контроллере имеются регистр-указатель на начало списка и регистр, указывающий на последний действительный дескриптор. Канал DMA должен иметь буферы на 1-2 кадра, предохраняющие контроллер от перепол­нения (переопустошения) в случае загруженности шины.

Спецификация HDA определяет модульную архитектуру кодеков и информационные структуры, позволяющие программно выяснять возможности кодеков и управлять их конфигурацией и работой. Кодек состоит из параметризованных модулей и их наборов, выполняющих определенную функцию. Каждый подключенный кодек получает свой адрес (CAd). Каждый модуль, а также набор представляет собой узел (node), уникально адресуемый своим идентификатором N1 (Node Id) в пределах кодека. Узел имеет набор параметров (которые можно только читать) и команд (с помощью которых модуль подключается, конфигурируется и управляется). Корневой узел (root node) обеспечивает ссылки на узлы функциональных групп, содержащихся в кодеке. Функциональная группа (function group) — это узел, представляющий собой объединение моду­лей (каждый из которых адресуем), совместно выполняющих одну прикладную задачу и управляемых одним драйвером. Примеры функциональных групп — AFG (аудиогруппа) и MFG (модемная группа). Узел функциональной группы имеет общее описание ее возможностей; в его описании содержатся начальный номер и число модулей, входящих в группу.

Модули, выполняющие определенные функции, называются widget. Каждый модуль кодека может входить только в одну функциональную группу. В функ­циональной группе может быть множество однотипных модулей, что позволяет выполнять одновременно операции с несколькими каналами. Каждый модуль имеет параметр конфигурации, который определяет его режим: стерео (два ка­нала) или моно. В описании модуля фигурирует список соединений (connection list), в нем перечисляются идентификаторы модулей, выходы которых могут быть поданы на вход данного модуля. Командами управления модули соединя­ются друг с другом.

В AFG определены следующие типы модулей:

Выходной преобразователь (audio output converter) — ЦАП или устройство, формирующее цифровой поток на интерфейс S/PDIF. На вход модуля поступает поток от интерфейса HDA Link, выход доступен в качестве входного сигнала для других модулей кодека (входит в списки их соединений). Может дополнительно содержать модуль усилителя и процессорный модуль.

Входной преобразователь (audio input converter) — АЦП или устройство, извлекающее цифровой поток из S/PDIF. Его выход передает поток через интерфейс HDA Link, вход подключается к модулю, выбранному в его списке соединений. Дополнительно может содержать модуль усилителя и процессорный модуль.

Внешний вывод (pin widget), обеспечивающий внешнее соединение, аналоговое или цифровое. Вывод может быть входным, выходным или универсальным (переключаемым) и содержать дополнительный входной/выходной усилитель. Вывод может обеспечивать обнаружение факта подключения устройства, определение его импеданса и поддерживать подачу напряжения смещения для микрофонного входа (Vref). Для работы на выход источник сигналаопределяется выбором в списке подключения данного модуля. При работев качестве входа возможность соединения вывода с другими модулями определяется их списками.

Микшер (mixer) — сумматор сигналов от нескольких своих входов, с каждым ходом связан список соединений. В каждом входе (и после сумматора) может присутствовать усилитель.

Селектор входов (input selector) — мультиплексор, позволяющий по команде ыбирать один из нескольких сигналов (выходов других модулей) в качестве входа. Модуль может дополнительно содержать процессор и усилитель.

Ручка уровня (volume knob) — модуль, позволяющий по внешнему сигналу правлять усилением в других (ведомых им) модулях. Программно по изменению положения ручки можно задать либо прямое управление усилением подчиненных модулей, либо генерацию не ожидаемых ответов (unsolicit res­ponse), которые должны анализироваться драйвером и отрабатываться соот­ветствующими командами.

Генератор тона (beep generator) обеспечивает подачу приблизительно синуоидального сигнала заданной частоты на все выводы, работающие в качестве выходных. Во время активной работы генератора его сигнал либо смешивается с выводимым потоком, либо временно заменяет его. Генератор тона е указывается в списках соединений. Во время подачи сигнала сброса интерфейса (RST#) аналогичную функцию может выполнять сигнал от входа «PC Speaker». Модуль управления мощностью (power widget) позволяет управлять энергопотреблением (состоянием) кодека.

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]