Цифровой поток

Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить
Родился
Сообщения: 8
Зарегистрирован: Пт янв 22, 2016 20:38:11

Сообщение Симеон »

Хочу разобраться в потоке цифровой записи или передаче по проводам. Берём частоту выборок = 44,1 кГц, пишем на диск, или выводим стерео звук на прослушивание.

2 канала пишутся последовательно на одну дорожку и выводятся по цифровому каналу, в аппарате – тоже последовательно. Первый вопрос, КАК ? Немножко левый канал, потом немножко правый – если это так, то сколько это немножко ?

Я не начинающий, поэтому прошу ответить именно тех, кто точно это знает, а не предполагает. Я сам думал, что примерно знаю, остальное домыслю, так и жил не зная истины, а помирать полным идиотом не хочется.

Следующие вопросы на эту тему будут намного сложнее. Поэтому жду вердикта мудрых спецов, скромно потупив голову.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Сообщение B@R5uk »

А вы знаете как устроен mp3-файл? Или хотя бы WAV?

Кроме того, на ваш вопрос "как?" ответом будет "как угодно". Вы уточните какого производителя, какой стандарт имеете под рукой.
Реклама
Родился
Сообщения: 8
Зарегистрирован: Пт янв 22, 2016 20:38:11

Сообщение Симеон »

При записи музыки на компакт диске прожигаются (ямки или точки, не суть важно, как их назвать) – они являются к примеру единицами информации. И наверное не важно в каком формате это закодировано. Запись и воспроизведение всё равно последовательное, одним лучём. В этот луч бы заглянуть и пройти по нему не спеша, как по дорожке, смотря под ноги.
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1486
Зарегистрирован: Вс май 13, 2012 00:01:54

Сообщение Ariadna-on-Line »

Когда мы даем аудио-карте команду оцифровывать входной аналоговый сигнал, мы задаем входные параметры - скорость, разрядность, моно/стерео, размер буфера, время и еще чтото. Если задано стерео, то в буфер байты идут по очереди левый - правый,
или 2 левых - 2 правых при 16-разрядном формате. Так что цифровой поток изначально прост как веник. А уж как над ним будет процессор извращаться, зависит от программы. Готовый продукт для стерео обычно тоже состоит из поочередного (левый-правый) потока при любом кодировании. Сам алгоритм кодирования иногда закрыт (например в dll-файле), как в mp3. Жадные немцы даже через столько лет его не открывают.

ПС. кстати, если убрать входные и выходные конденсаторы, аудиокарта замечательно оцифровывает 2 канала постоянного напряжения и наоборот. Правда цифровым нулевым уровнем является +2.5 вольт, а не ноль. Вообще такие команды несложно вставляются в программы на Бейсике вызовами audio API-функций.
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 8
Зарегистрирован: Пт янв 22, 2016 20:38:11

Сообщение Симеон »

Это всё слова без образов. Вот как бы я примитивно объяснил школьнику запись и воспроизведение на грампластинку: есть две канавки под углом в 45 градусов. Одна левая, другая правая.
К примеру: на левой канавке идет длинное углубление – это одна часть синусоиды низкой частоты, в ней волнообразные углубления пореже и углубления в виде частых волн – это средние и высокие частоты.
А здесь: на CD диск пишем цифру, т.е. 1 и 0. Единица прожигается в виде ямки, ноль нет. У нас имеется ограничение в 44,1 кГц – делим на 2 канала, получаем по 22 кГц на канал.
Если мы скажем, что это 22000 выборок в единицу времени, то мы опять уйдём от сути вопроса. Выборку нельзя превратить в точку – единицу или ноль, выборка состоит из множества единиц и нулей, в зависимости от формата.
К примеру, если одна выборка состоит из 10 последовательных цифр, то 22000 выборок это всего лишь максимальные 2200 Гц. Насколько мне известно, выборка состоит из гораздо больших знаков.
Где об этом хотя бы почитать, как в книгах: радио – это просто, и телевидение – это просто.
Реклама
Электрический кот
Аватара пользователя
Сообщения: 1083
Зарегистрирован: Пн ноя 21, 2011 16:45:00

Сообщение kotpalych »

Я в этом разбираюсь ненамного лучше вас , поэтому попытаюсь объяснить .
На CD диск пишется не сам звук , а его цифровое отображение , например восьмибитная запись с частотой 44,1 кГц означает , что примерно каждые 23 микросекунды будет измеряться уровеь звука с восьмибитной точностью , таким образом на CD должна быть последовательно прожжена группа из восьми "ямок" и закодированная таким образом цифра будет соответствовать текущему значению уровня звука . Это простейший способ кодирования , который давно не используется , дальше следует запись каждого последующего уровня , относительно предыдущего и более сложные методы кодирования .
Невозможно починить то, что не сломалось.
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1486
Зарегистрирован: Вс май 13, 2012 00:01:54

Сообщение Ariadna-on-Line »

Тогда непонятен ваш вопрос. Причем тут луч лазера? Можно и мелком на асфальте как в крестики-нолики. Будет не хуже, но медленно.
Вас интересует сам принцип аналогово-цифрового и цифро-аналогового преобразования?
Гугол в помощь.

Посмотрите про Covox - самая первая аудиосистема.
Родился
Сообщения: 8
Зарегистрирован: Пт янв 22, 2016 20:38:11

Сообщение Симеон »

Ariadna-on-Line писал(а): Если задано стерео, то в буфер байты идут по очереди левый - правый,
или 2 левых - 2 правых при 16-разрядном формате.
Начнём с левой ноги. Конкретнее, сначала 1 байт = 8 битам - налево, потом 8 бит - направо. Так ?
Электрический кот
Аватара пользователя
Сообщения: 1083
Зарегистрирован: Пн ноя 21, 2011 16:45:00

Сообщение kotpalych »

Так , только , как уже было сказано , байт может быть и два , и четыре , и шестнадцать .
Covox не собирал , а вот голос на системный динамик выводил .
Невозможно починить то, что не сломалось.
Друг Кота
Сообщения: 11994
Зарегистрирован: Пн апр 19, 2010 00:04:18
Откуда: Малороссия

Сообщение kaetzchen »

позырьте "red book"
в софтовых аудиоредакторах можно шифтануть любой кусок аудио на 1 сампл, и аппаратный воспроизводящий кодек должен петь в такт, при том что софт не в курсе что реально в данный момент поет,
я не о латентности и задержках зависимых от драйвера, потому как по факту задержки имеют место
Друг Кота
Сообщения: 11994
Зарегистрирован: Пн апр 19, 2010 00:04:18
Откуда: Малороссия

Сообщение kaetzchen »

B@R5uk писал(а):А вы знаете как устроен mp3-файл? Или хотя бы WAV?

Кроме того, на ваш вопрос "как?" ответом будет "как угодно". Вы уточните какого производителя, какой стандарт имеете под рукой.
ВАВ - это ваще контейнер, но вы имеете в виду РСМ :?
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Сообщение arkhnchul »

Ariadna-on-Line писал(а):Сам алгоритм кодирования иногда закрыт (например в dll-файле), как в mp3. Жадные немцы даже через столько лет его не открывают.
офф - алгоритм mp3 открыт (т.е. есть общедоступная спецификация) практически с момента создания. "Закрытый" он с точки зрения личензионной чистоты в тех странах, где действуют патенты на алгоритмы.
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

2 канала пишутся последовательно на одну дорожку и выводятся по цифровому каналу, в аппарате – тоже последовательно. Первый вопрос, КАК ? Немножко левый канал, потом немножко правый – если это так, то сколько это немножко ?
Нет, выводятся они не последовательно. Есть такой принцип, буферизация называется.

Вот есть диск. Да, данные на нем записаны вполне себе последовательно. Скорость сырого стереопотока - примерно 1378 кбит/с (44100 Гц / 16 бит / два канала). Однако читаем мы данные с диска гораздо быстрее.

Читаем мы эти данные, и складываем в два буфера, для левого и правого каналов. А оттуда они параллельно выводятся в два ЦАП со скоростью 689.1 кбит/с (16 бит, 44100 Гц). Понятное дело, скорость чтения должна быть как минимум такой, чтобы за период вывода выборок (1/44100 с) прочесть четыре байта для двух каналов. Как правило скорость чтения достаточно велика, чтобы за упомянутое время прочесть целый блок данных. Если используется компрессия, то за то же самое время блок данных необходимо не только прочесть, но и декодировать.

Именно поэтому получается такое явление, как глитч. Буферы чаще всего круговые, так что если входной поток почему-либо перестает поступать, на выход циклически подаются последние загруженные данные. Это дает характерный квакающий звук.

С видео история примерно та же самая, единственно только требования к скорости гораздо выше.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Родился
Сообщения: 8
Зарегистрирован: Пт янв 22, 2016 20:38:11

Сообщение Симеон »

YS - спасибо за чёткие разъяснения. Наконец то сдвинулись с мёртвой точки.
Далее следует такой волнительный вопрос: при написании музыки в какой либо программе на компьютере, к примеру, Logic Pro 9, есть десятки подготовленных дорожек с записями разных инструментов и голосов.
Как будет записываться (выводиться) информация с десятков (сотен) каналов (дорожек) при скидывании (не сведённого, не стерео) проекта на флешку, или на жёсткий диск, для временного хранения ?
Если последовательно, то не будет ли ухудшения записи, при увеличении количества дорожек ? Тем более, что процесс перекидывания проекта многократный, может доходить до 100 ?
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Я понял ваши волнения. :)

Нет, волноваться не надо. DAW (Digital Audio Workstation) работают следующим образом.

Как правило все дорожки хранятся как отдельные потоки, а все изменения записываются в проект как последовательность команд (без изменения исходных данных), при этом сами дорожки всегда остаются в исходном виде. Реальная обработка начинается только тогда, когда вы выбираете экспорт (рендеринг) проекта как WAV, MP3, AAC, Vorbis или другой PCM-формат (или производится в реальном времени, если вы хотите прослушать проект). Опять же, сами треки остаются в целости - результат обработки складывается в отдельный файл или напрямую выводится в выходные буферы звуковой подсистемы.

И вот если уже готовый экспортированный микс вы будете мучать дальше - накладывать эффекты вне проекта, на готовый микс, перекодировать и т.п. - качество поплывет.

Если вы просто копируете микс, копируете проект, или меняете что-то внутри проекта, а потом повторно экспортируете (повторный рендеринг), никакой потери качества нет. Копирование цифровой информации ее принципиально не меняет, а при экспорте из проекта для рендеринга каждый раз используются немодифицированные исходники. Качество страдает при многократном наложении эффектов на уже готовый микс в PCM-формате, но так никто обычно не делает.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Родился
Сообщения: 8
Зарегистрирован: Пт янв 22, 2016 20:38:11

Сообщение Симеон »

YS, вы меня успокоили, на счёт качества музыки. Я практически это доказывал себе, до сотни раз перекидывая музыкальный проект с одного компьютера на другой и обратно. Но всё же остаётся непонимание, техническое или образное. В проекте 100 полновесных, в смысле мегабайт, дорожек. Весь проект весит 1 ГБ. Это всё звучит в программе 3 минуты. Начинаем записывать последовательно 100 дорожек в одну линию. Получается, что этот процесс надо растянуть во времени, используя временное хранилище данных, в виде оперативной памяти, с объёмом не менее 1ГБ. Так ? И нам не увидеть, в какой последовательности будет вытягиваться информация из памяти и записываться на жесткий диск. Сие зависит от формата упаковки. Но те, кто придумывал эти форматы, наверное воочию видели каждый бит информации. И я хочу увидеть кусочек последовательной записи, с пониманием, вот в этих 16 битах пишется мгновение левого канала, далее в 16 битах – правого, потом – какие то служебные биты, (вопрос их распознавания и понимания, мне тоже интересен) и так далее. Когда пишется 100 дорожка, первая уже уснула в памяти. Получится 1 % в работе, остальные отдыхают. Ведь можно, к примеру, увидеть и рассмотреть по битам, с разъяснениями, что несёт в себе каждый импульс посылки, из пульта ДУ. Уж такой я зануда. Пощупать хочу.
Последний раз редактировалось Симеон Пн янв 25, 2016 10:51:48, всего редактировалось 2 раза.
Собутыльник Кота
Аватара пользователя
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Сообщение B@R5uk »

YS писал(а):Реальная обработка начинается только тогда, когда вы выбираете экспорт (рендеринг) проекта...
Воспроизведение проекта тоже реальная обработка. Более того, в реальном времени.
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Получается, что этот процесс надо растянуть во времени, используя временное хранилище данных, в виде оперативной памяти, с объёмом не менее 1ГБ. Так ?
Эт вы про копирование? Гигабайт памяти не нужен. Можно копировать напрямую. Например, через DMA. Но это уже детали.

Я, кстати, наверное, разрушу ваш мир, но в реальности, на физическом уровне, данные пишутся не последовательно, а как придется и как системе удобнее.
Но те, кто придумывал эти форматы, наверное воочию видели каждый бит информации. И я хочу увидеть кусочек последовательной записи, с пониманием, вот в этих 16 битах пишется мгновение левого канала, далее в 16 битах – правого, потом – какие то служебные биты, (вопрос их распознавания и понимания, мне тоже интересен) и так далее.
Вам нужно описание формата сохранения проекта. Правда, я сомневаюсь, что вы найдете его в свободном доступе. Разработчики программ не горят желанием делиться такой информацией.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Сообщения: 3092
Зарегистрирован: Пн апр 06, 2015 11:01:53
Откуда: москва, уфа

Сообщение arkhnchul »

YS писал(а):Я, кстати, наверное, разрушу ваш мир, но в реальности, на физическом уровне, данные пишутся не последовательно, а как придется и как системе удобнее.
до кучи еще и когда системе удобно. Данные могут достаточно долго торчать в буферной памяти до той поры, пока система не решит наконец их собственно на диск засунуть.
Собутыльник Кота
Аватара пользователя
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Сообщение B@R5uk »

Симеон писал(а):Но те, кто придумывал эти форматы, наверное воочию видели каждый бит информации.
Да вы с ума сошли! Знаете концепции объектно-ориентированного программирования? Одна из них инкапсуляция — сокрытие данных, причём не от кого-нибудь, а от программиста! И в этом нет ничего удивительного. Сложные задачи решаются путём разбиения их на простые. Когда простые задачи решены, программисту нет необходимости заботится о каждом бите информации, о нём заботится кирпичик программы, который отвечает за это. Программист может оперировать большими, но главное, сложными по структуре блоками информации так же, как обычные люди складывают два плюс два.

Вот вы спрашиваете, как цифровой звук пишется на ленту. Во всех цифровых плеерах есть как минимум три уровня абстракции: физический, аппаратный, программный. Физический — это напряжения, токи, длительности импульсов, полосы пропускания, соотношения сигнал/шум. Аппаратный отвечает за преобразование сигнала к цифровому виду и формированию байтов данных. Программный — за декодирование/восстановление данных, отправку их на воспроизведение. Причём это приблизительная схема. Уровней может быть существенно больше, а функции между ними могут делиться по-разному.
Последний раз редактировалось B@R5uk Пн янв 25, 2016 13:20:39, всего редактировалось 1 раз.
Ответить

Вернуться в «Теория»