linux против windows(звук)
|
Автор |
Сообщение |
Выразили согласие: | |
|
Выразили согласие: | |
|
PnL
Ветеран
Откуда: Київ
Сообщений: 3 536
Репутация: 169
|
RE: linux против windows(звук) / 13-09-2016 20:21
При асинхронном USB, ЦАП решает что и когда ему посылать, чтобы обеспечить беспрерывный поток данных, а рассогласования по частоте нет как такового - тактируется все только ЦАПом. Вот если соединение хреновое и шнурок не обеспечивает доставку вовремя, то могут быть проблемы, но на практике, вероятность такого события в нормальных условиях и при исправных компонентах практически нулевая. Именно поэтому нет контроля ошибок. Вот при проигрывании CD в плеере, там уже на этапе считывания могут быть ошибки с достаточно высокой вероятностью, вот там должен быть контроль и исправление, но увы... а потому - только с винчестера.
Типы передачи данных.
Спецификация шины определяет четыре различных типа передачи (transfer type) данных для конечных точек:
_http://usb.fober.net/teoriya/Tipy-peredachi-dannyx/
"Изохронные передачи (Isochronous Transfers) - применяются для обмена данными в "реальном времени", когда на каждом временном интервале требуется передавать строго определенное количество данных, но доставка информации не гарантирована (передача данных ведется без повторения при сбоях, допускается потеря пакетов). Такие передачи занимают предварительно согласованную часть пропускной способности шины и имеют заданную задержку доставки. Изохронные передачи обычно используются в мультимедийных устройствах для передачи аудио- и видеоданных, например, цифровая передача голоса. Изохронные передачи разделяются по способу синхронизации конечных точек - источников или получателей данных - с системой. Различают асинхронный, синхронный и адаптивный классы устройств, каждому из которых соответствует свой тип канала USB.
Все операции по передаче данных инициируются только хостом независимо от того, принимает ли он данные или пересылает в периферийное устройство. Все невыполненные операции хранятся в виде четырех списков по типам передач. Списки постоянно обновляются новыми запросами. Планирование операций по передаче информации в соответствии с упорядоченными в виде списков запросами выполняется хостом с интервалом один кадр. Обслуживание запросов выполняется в соответствии со следующими правилами:
наивысший приоритет имеют изохронные передачи;
после отработки всех изохронных передач система переходит к обслуживанию передач прерываний;
в последнюю очередь обслуживаются запросы на передачу массивов данных;
по истечении 90% указанного интервала хост автоматически переходит к обслуживанию запросов на передачу управляющих команд независимо от того, успел ли он полностью обслужить другие три списка или нет.
Выполнение этих правил гарантирует, что управляющим передачам всегда будет выделено не менее 10% пропускной способности шины USB. Если передача всех управляющих пакетов будет завершена до истечения выделенной для них доли интервала планирования, то оставшееся время будет использовано хостом для передач массивов данных. Таким образом:
изохронные передачи гарантированно получают 90% пропускной способности шины;
передачи прерываний занимают оставшуюся после изохронных операций часть этой 90-процентной доли;
под передачу данных большого объема выделяется все время, оставшееся после изохронных передач и передач прерываний (в рамках 90% доли пропускной способности);
управляющим передачам гарантируется 10% пропускной способности шины;
если передача всех управляющих пакетов будет завершена до завершения выделенного для них 10-процентного интервала, то оставшееся время будет использовано для передач данных большого объема."
(Отредактировал 13-09-2016 в 20:40 PnL.)
|
|
|
|
Выразили согласие: | |
|
АндрейКа
Ветеран
Откуда: Одесса
Сообщений: 4 073
Репутация: 340
|
RE: linux против windows(звук) / 13-09-2016 22:21
Сам себе поклялся сюда больше не писАть, но нет, не удержался, блин!
(13-09-2016 21:34)adsh писал(а): ... На выходе XMOS данные будут идентичны переданным с источника, чтобы записать их в файл без привязки к реальному времени. В то время как данные, переданные от XMOS к ЦАП в реальном времени определяют звучание ... Правильно ли я понял Вашу гипотезу? Вы предполагаете, что по USB отсчеты PCM идут без искажений, но (из-за свойств кабеля?) некоторые из них "запаздывают" так, что когда пора передавать очередной отсчет в ЦАП, он "ещё не приехал" и в ЦАП вместо него передаются "нули"/предыдущий отсчет/какая-то галиматья?
Если я неправильно понял, разъясните пожалуйста.
(Отредактировал 13-09-2016 в 22:22 АндрейКа.)
Когда вспоминаешь, что все мы сумаcшедшие, странное в жизни исчезает и все становится понятным (c) Сэ́мюэл Лэ́нгхорн Кле́менс (Марк Твен)
|
|
|
|
Выразили согласие: | |
|
Выразили согласие: | |
|
Гаруспик
Ветеран
Откуда: Харьков
Сообщений: 11 571
Репутация: 212
|
|
|
|
Выразили согласие: | |
|
Выразили согласие: | |
|
АндрейКа
Ветеран
Откуда: Одесса
Сообщений: 4 073
Репутация: 340
|
RE: linux против windows(звук) / 14-09-2016 15:07
(13-09-2016 22:44)adsh писал(а): АндрейКа, что-то там деградирует в передаче данных в реальном времени от XMOS в ЦАП ... Нет, не понимаю.
Давайте играть музыку через плату на XMOS c ЦАПом и цифровым выходом "на борту". ЦАП будем слушать, а цифровой выход подключим к цифровому входу какой-нить E-Mu. То, что она напринимает, будем писАть в файлы. 2 эксперимента с двумя кабелями USB, "хорошим" и "плохим". Если сравнить файлы, они совпадут, звук же с аналогового выхода при этом будет отличаться? Правильно ли я понял?
(Отредактировал 14-09-2016 в 15:13 АндрейКа.)
Когда вспоминаешь, что все мы сумаcшедшие, странное в жизни исчезает и все становится понятным (c) Сэ́мюэл Лэ́нгхорн Кле́менс (Марк Твен)
|
|
|
|
Выразили согласие: | |
|
Выразили согласие: | |
|
АндрейКа
Ветеран
Откуда: Одесса
Сообщений: 4 073
Репутация: 340
|
RE: linux против windows(звук) / 14-09-2016 16:11
(14-09-2016 15:38)adsh писал(а): .... На лицо - деградация данных на участке XMOS - ЦАП. Разница лишь одна - вывод в E-Mu + ОС и в ЦАП. В чём разница между этими двумя вариантами - ЦАП требует реалтайм вывод, ОС же переварит всё, что угодно ... Не. Тот же самый отсчет одновременно подаётся в микросхему ЦАП и в передатчик SPDIF. Одновременно. И "одновременность" эту задаёт кварцевый генератор, очень точно. Запрашивает этот отсчет из очереди эндпоинта USB именно микросхема ЦАП. По крайней мере так оно должно работать в "асинхронном" режиме USB Audio. Т.е. если ЦАП запрашивает не вовремя или из пустой очереди, ошибочный отсчет попадёт и в ЦАП и в SPDIF, откуда в файл.
Если Вы имеете в виду, что отсчет на ЦАП приходит не вовремя, поясните пожалуйста, как это может произойти при тактировании от кварцевого генератора. Ибо я ничего придумать не могу.
(Отредактировал 14-09-2016 в 16:13 АндрейКа.)
Когда вспоминаешь, что все мы сумаcшедшие, странное в жизни исчезает и все становится понятным (c) Сэ́мюэл Лэ́нгхорн Кле́менс (Марк Твен)
|
|
|
|
Выразили согласие: | PnL |
|
Выразили согласие: | |
|
Выразили согласие: | PnL |
|
Выразили согласие: | |
|
Выразили согласие: | |
|
Выразили согласие: | |
|
PnL
Ветеран
Откуда: Київ
Сообщений: 3 536
Репутация: 169
|
|
|
|
Выразили согласие: | |
|
Пользователи просматривают эту тему: 1 Гость(ей)
|
|