Настройки аудио проигрывателя дисков blu-ray

Введение в битстрим

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

Когда дело доходит до аудиоприложения, Bitstream преобразует аудиоданные в цифровую информацию. Затем эти биты цифровой информации будут переданы приемнику. Фактически, это метод, который можно найти в таких устройствах, как системы домашнего кинотеатра. С помощью этого процесса системы домашнего кинотеатра могут создавать различные типы звуковых форматов. Dolby Digital, Atmos, DTS:X, DTS HD-Master Audio, TrueHD и т. д. являются примерами этих форматов файлов объемного звучания.

Кроме того, узнайте больше о том, как выполнить бесплатные загрузки аудио и как восстановить и конвертировать потоковую музыку в MP3.

Домашний кинотеатр и битстрим

Когда речь идет о системах домашнего кинотеатра, процесс можно объяснить следующим образом. Bitstream позволяет передавать закодированные звуковые сигналы с одного устройства (устройства-источника) на другой приемник. Приемник должен быть совместим с форматом битового потока. В противном случае звуковые сигналы могут быть отправлены на AV-процессор или усилитель мощности. Вы можете видеть, что эти аудиосигналы обычно присутствуют в различных звуковых форматах (которые являются объемными).

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

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

По завершении процесса биты (которые являются цифровыми) будут размещены в кабельной службе. Если нет, он будет размещен на спутниковой службе. В противном случае он может быть встроен в прямую трансляцию или даже сохранен на диске. Диск означает (Blu-ray, DVD или даже UHD Blu-ray).

Вы должны знать, что требуемый битовый поток передается через физическое соединение. Эта передача происходит между устройством-источником и приемником домашнего кинотеатра. Физическим соединением может быть HDMI, цифровой коаксиальный кабель или цифровой оптический кабель. Однако его также можно отправить через беспроводное соединение с домашней сетью, для чего требуется антенна.

Как только получатель получит информацию, он будет декодировать цифровые биты в назначенные каналы. Затем сигнал будет отправлен и на усилители. При таком подходе слушатель сможет слышать звук через динамики системы.

Проверка совместимости для Socket LGA 1151 v2

Перед покупкой нового процессора очень важно убедиться, что он полностью совместим с вашей материнской платой. Это особенно актуально на сокете LGA 1151, где присутствуют описанные выше проблемы с совместимостью

Чтобы найти список поддерживаемых процессоров вам нужно знать точное название модели материнской платы и ее производителя. Эту информацию можно получить в программе CPU-Z на вкладке «Mainboard».

Название материнской платы нужно ввести в поисковую систему и перейти на официальную страницу ее производителя.

Оказавшись на сайте производителя материнской платы вам нужно перейти в раздел «Поддержка» или «Support». Там вы найдете список поддерживаемых процессоров для данной платы.

В этом списке будут указаны все процессоры, которые совместимы с платой, а также версии BIOS, которые необходимы для каждого из процессоров.

Ниже мы приведем таблицы со списком всех процессоров, которые были выпущены для сокета LGA 1151 v2. Этот список можно использовать как ориентировочный, но для принятия окончательного решения всегда сверяйтесь с данными производителя материнской платы.

Conclusion

I think a little recap of some of the highlights of the article is in order.

  • An internal DAC is part of every device that plays a digital file and that has speaker or headphone outputs.
  • Adding an external DAC may, but not always sound better than using the one in the device.
  • Digital file quality is extremely important, as an excellent DAC will not make a poor digital file sound better (and may serve to highlight the flaws).
  • DACs that share the same DAC chip will not all sound the same, as they are a sum of all their components, design, and architecture.
  • Modern (and properly working) DACs, while based on different chips and architectures, even at very different price points, don't tend to sound radically different.
  • Combination DAC/Amps are common for headphone use and the amplifier component is as much or more important than the DAC section in the overall sound.
  • It is easier to choose a DAC (or to narrow down the possibilities) based on specifications such as file type support and technical measurements, rather than on ‘sound quality'.

Only you know what sounds the BEST to you.

The Micro iDSD Black Label. (From: ifi-audio.com)

So. I posed a question at the beginning of the article. Do I need to buy an external DAC?

I don't know. Do you?

Are you looking to play your old lossy mp3 files and are hoping for better sound? (A new DAC won't help.) Or are you looking to dip your toe into hi-res audio and to try to eke out the ultimate in audio performance in your headphone setup? Is your old DAC not functioning properly or are you looking to play a specific high-res file format?

Do your research and narrow down your choices depending on the DAC's unique specifications and features. If you are not using an external amplifier, pay close attention to the integrated amp specs so that it is a good match to your headphones.

Don't misunderstand me. I'm not saying that every DAC sounds exactly the same. We're firmly in the land of squeezing out the last few performance percentage points. High-quality DACs can be audibly better because they are engineered better. They may be better shielded against noise, or the DAC chip may be functioning closer to the manufacturer's ideal specifications.

More expensive DACs will often support a greater number of file types and higher bit depths and sample rates. They will typically have more digital inputs and analog outputs. They may have user-selectable filters or other ways to tweak the audio output. Many enthusiasts will lust after a device packed with the most options.

Other folks just want the DAC to do its job and disappear into the audio chain. Perhaps abundant file support and high bit depth are important to you, but only if they are invisible to the end-user. Heck, I don't want to listen to my DAC. I just want to hear the music.

Бонусы и profit

В CI/CD важен быстрый цикл обратной связи, позволяющий почти мгновенно определить, насколько качественными являются изменения в коде и функциональности продукта. При waterfall-подходе можно быстро вносить изменения в код, но без постоянных проверок выявление багов потребует гораздо больше времени и может произойти уже после начала коммерческой эксплуатации, причем таких «отложенных» багов в одном релизе может оказаться несколько.

Инструменты CI помогают быстро ответить на вопросы о причинах дефектов для каждого коммита, обеспечивая раннее выявление и устранение ошибок. CI/CD-платформа помогает не только оперативно тестировать, но и выводить новую функциональность для конечного пользователя таким образом, чтобы в случае выявления ошибки всегда существовала возможность либо быстро её устранить, либо «откатить» итерацию решения на шаг назад.

Одни ошибки в ПО могут содержать другие, которые включают в себя третьи и так далее. Чем больше ошибок накапливается, тем сложнее тестировать и находить их, что в результате может привести к неприятным последствиям. Между тем в CI/CD-разработке автоматизированные тесты в случае провала покажут, что именно нужно исправить. Конечно, для внедрения системы потребуется время, но это поможет разрабатывать софт максимально быстро и удобно.

Автоматизированные процессы помогают значительно снизить трудозатраты разных отделов предприятия. Без автоматизации CI/CD могут всплывать ошибки, вызванные человеческим фактором и необходимостью совершения ручных операций.

Intel H510

По традиции, начнем с младшенького. Это самая простая модификация, рассчитанная в первую очередь на офисное применение и для сборки систем нижнего или среднего уровня с минимальным количеством плат расширения. Оптимальная конфигурация представляется такой — видеокарта, быстродействующий SSD M.2, пара 2.5-дюймовых накопителей…и все. Все?

Если повнимательнее посмотреть на спецификации, то мы не видим упоминание про поддержку 4-х процессорных линий для накопителей, которые появились в CPU Rocket Lake, а ведь именно для них эта серия чипсетов и предназначена в первую очередь.

Выходит, с H510 воспользоваться всеми возможностями SSD PCIe 4.0 не получится. Intel никак не могла обойтись без ложки субстанции, противопоказанной рецепту сборки оптимального бюджетного ПК.

Насколько это действительно важно в данном случае – вопрос дискуссионный, но раз уж есть возможность воспользоваться скоростной шиной, то зачем было ее лишать?

Зато появилась поддержка беспроводной сети, чего не было у предшественника. Да, осталось отсутствие поддержки Intel Optane (это кого-то расстраивает?), нет USB 3.2 Gen2 (хотя можно воспользоваться сторонними контроллерами) и можно использовать только по одному модулю DRAM в каждом канале, но на то он и бюджетный чипсет.

Hello, world или “Баяны подъехали”

Не будем отходить от традиции и попробуем поморгать LED-иком который подключен к программируемой логике. 

Запускаем Vivado и создаем новый проект. Нажимаем File — Project — New…

Откроется мастер создания нового проекта, нажимаем Next > и пишем название нашего проекта PL-Blink.

Выбираем RTL Project и ставим галочку у пункта Do not specify sources at this time.

Далее в списке ищем наш процессор xc7z020clg400-1.

Жмём на кнопку Finish.

Перед нами открывается главное окно программы Vivado и мы можем приступать к реализации намеченной нами цели!

Первым делом, мы добавим необходимые указания программе, на то, какие физические ножки мы задействуем в нашей моргающей вакханалии =)

Находим меню Sources и нажимаем кнопку Add Sources.

Откроется мастер импорта и нам нужно выбрать Add or create constraints. 

В следующем меню нажимаем Create file и пишем название нашему файлу physical_constr. Именно в этом файле мы опишем какие ножки и в каком режиме должны работать.

Нажимаем кнопку Finish и в дереве Sourсes ищем только что созданный нами файл и открываем его:

Обратимся к схеме, которую любезно предоставил нам производитель и найдем какая ножка отвечает за тактирование, а какая за наш светодиод. Бегло поискав, я отметил для себя, что из Ethernet-контроллера RTL8211E-VL выведен опорный тактовый сигнал с его внутреннего PLL, частотой в 125МГц и заведен в ножку H16 (IO_L13P_T2_MRCC_35). Так почему бы нам его и не задействовать в нашем примере? =)

Его мы и заюзаем для нашего счетчика, который будет генерировать задержку между включенным и выключенным состоянием светодиода.

Тут же, рядом, на ножке H17 (IO_L13N_T2_MRCC_35) расположен светодиод, которым мы будем моргать.

Итак. Открыв наш constraints-файл запишем в него следующие строки:

Поскольку опыта создания подобных конфигов у меня нет, могу лишь предположить, что первые две строки задают режим работы ножек указанных в аргументе, а третья и четвертая указывают на то, какие физические ножки будут использоваться. 

В квадратных скобках, после get_ports необходимо указать логическое имя ножки (на ваше усмотрение). Имена стоит придумать осмысленно, потому что мы его будем использовать в Verilog-коде. 

Кстати, подробнее о Physical Constraints можно почитать тут в главе 8.

Добавим в наш проект таким же образом Design Source. Находим меню Sources и нажимаем кнопку Add Sources.

Откроется мастер импорта и нам нужно выбрать Add or create design sources. Далее нажимаем Create File, смотрим, что выбран язык Verilog. Нажимаем ОК и Finish.

В следующем меню всё оставляем без изменений и нажимаем ОК и Yes.

Открываем созданный файл и видим небольшую заготовку:

Здесь вместо предложенного кода пишем наш Verilog-код и прокомментируем что значит каждая из строк:

Нажимаем сочетание клавиш Ctrl + S чтобы сохранить код. Смотрим, не подсвечены ли где возможные ошибки. Если нет — то можем приступить к синтезированию, имплементации и генерации бинарного файла который мы потом зальем в нашу плату Zynq и будем наблюдать за морганием светодиода.

Нажимаем кнопку Run Synthesis и дожидаемся завершения синтеза. После окончания программа нам скажет, что синтез успешно завершен и мы можем переходить к следующему шагу:

Выбираем Run implementation и дожидаемся окончания. После выбираем пункт Generate Bitstream для запуска финального этапа:

Тут так же дожидаемся сигнала о том, что всё прошло успешно, выбираем Open Hardware Manager и можем приступать к заливке результата компиляции в нашу плату:

В открывшемся меню Hardware Manager нажимаем кнопку Auto connect, дожидаемся когда произойдет успешное соединение и откроется меню со списком устройств:

В меню слева или через нажатие правой кнопкой по xc7z020_1 в меню Hardware нажимаем пункт Program Device.

В следующем окне убеждаемся, что правильно указан путь к bitstream-файлу и нажимаем кнопку Program.

Программа заливается на нашу плату…

И через мгновение на плате загорается светодиод D2, который сообщает нам, что “FPGA DONE” и в другом конце платы мы видим весело моргающий светодиод. =)

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

Intel Z390

Этот чипсет – обновленная версия Z370, отличающаяся от него только техпроцессом (как и другие чипсеты Coffee Lake новее Z370, выпускается по 14-нм) и поддержкой USB 3.1 Gen 2, а также Intel Wireless-AC MAC. Больше никаких новшеств по сравнению с предыдущим набором логики для разгоняемых процессоров он не несет. Соответственно, и сфера применения остается прежней – конфигурации «под разгон» и/или с двумя и более видеокартами.

Для Z390 заявлена поддержка Cannon Lake, что будет плюсом для покупателей, планирующих апгрейд, но есть ли в таком апгрейде смысл? В отличие от GPU, центральные процессоры наращивают свою производительность медленно, и разница между моделями одной ценовой категории соседних поколений вряд ли будет превышать несколько процентов.

Постановка задачи

Чтобы развивать дальнейшее повествование и изучать что-то новое нужна была реальная интересная задача. И я ее придумал! Ребята из моей команды рассказывали в этой статье историю того, как шла разработка Яндекс.Станции-Max и упомянули устройства для организации тестовых испытаний плат, так называемые “джиги” (англ. jigs).

Это устройство организовано таким образом, что есть специальная платформа, которая встаёт иглами на тестовые точки и делает через иглы определенные манипуляции для проведения тестирования. Не вдаваясь в подробности, в конечном итоге данные измерений преобразуются в специально сформированный набор импульсов и отправляются в процессор на обработку. Основная задача промежуточных вычислений до наступления момента интерпретации результатов тестирования — сосчитать количество импульсов с того или иного канала. Но с наращиванием количества каналов счёта таких импульсов есть ограничение в возможностях расширения. Плюсом к этому обработка импульсов идет через процессор с ядром Cortex-M4 и ограниченным набором по периферии, т.е. о реальной параллельности счёта большого числа каналов не может идти и речи. И тут я подумал о том, что можно же считать параллельно при помощи ПЛИС и забирать данные в Linux и отсылать уже данные по сети на сервер при помощи Zynq!

И тут в голове оформилась интересная задача:

  1. Нужно организовать внутри ПЛИС набор счетчиков, которые будут считать импульсы с частотой до 2МГц;

  2. Счетчики должны быть включаемыми\выключаемыми;

  3. Счетчики должны быть сбрасываемыми;

  4. Для включения, выключения и сброса счетчиков должны быть отдельные регистры управления;

  5. Счётчики должны работать независимо друг от друга и синхронно;

  6. Управление и считывание данных из счётчиков должно быть доступно из PS или Linux;

  7. Счётчики должны считать точное количество импульсов (допустимое отклонение 1-2 импульса).

Исходя из постановки задачи был сформирован четкий план действий:

  1. Создаем проект, настраиваем Processing System и Processor System Reset.

  2. Настраиваем соответствующие пины ПЛИС, которые будут входами для импульсов;

  3. В ПЛИС делаем блок ограничения импульсов частотой более 2 МГц и проверяем генератором сигналов или другой ПЛИС;

  4. Добавляем счетчик импульсов в ПЛИС и проверяем корректность счёта сгенерировав конкретное количество импульсов другой ПЛИС;

  5. Организуем некую память в которую можно записывать и из которой можно читать данные как из ПЛИС, так и из PS-части. В этой же памяти внутри ПЛИС организуем две ячейки памяти которые будут выступать в качестве двух регистров управления (сброс, включение и выключение) и одну в качестве регистра хранения команд;

  6. Организуем блок управления счетчиками внутри ПЛИС, который сможет опрашивать память на предмет наличия команды из PS, и по команде “забирать” данные из счётчиков и сохранять их в память, сбрасывать значение и включаться\выключаться.

  7. Протестировать полученный результат с использованием baremetal-приложения и из Linux.

Что ж, общее понимание, того что нужно сделать есть, можно приступить к реализации намеченного.

Что такое Socket LGA 1151 v2

Socket LGA 1151 (или как его еще называют Socket H4) появился в 2015 году и предназначался для настольных компьютеров. Первыми процессорами, которые были выпущены для данного разъема, стали процессоры Intel Core 6-поколения с архитектурой Skylake. Вместе с новым разъемом и процессорами была представлена и линейка чипсетов, это чипсеты 100-й серии: H110, B150, Q150, H170, Q170 и Z170.

Спустя некоторое время компания Интел выпустила для сокета 1151 процессоры Intel Core 7-поколения с архитектурой Kaby Lake, а также линейку чипсетов 200-й серии: B250, Q250, H270 и Z270. Эти процессоры были полностью совместимы со старыми материнскими платами на чипсетах 100-й серии.

Еще через некоторое время для сокета 1151 появились процессоры Intel Core 8-поколения с архитектурой Coffee Lake, а потом и процессоры Intel Core 9-поколения. Но, они уже не получили обратной совместимости со старыми платами на чипсетах 100-й и 200-й серии. Для 8 и 9-поколения была выпущена линейка чипсетов 300-й серии: H310, B360, B365, H370, Q370, Z370 и Z390. При этом чипсеты 300-й серии поддерживали только 8 и 9-поколение, поддержки старых процессоров, которые раньше выпускались для LGA 1151 не было.

В результате произошло условное разделение сокета на две версии и интернете достаточно быстро начали их называть как LGA 1151 v1 и LGA 1151 v2. Хотя сама Intel не использует такое именование, и в ее документах сокет называется просто LGA 1151, без каких-либо разделений.

Таким образом, несмотря на то, что физически сокет никак не поменялся, появилось две его версии, которые несовместимы друг с другом:

  • Сокет LGA 1151 v1 оснащается чипсетами 100-й и 200-й серии и поддерживает процессоры Intel Core 6 и 7-поколения (Skylake и Kaby Lake);
  • Сокет LGA 1151 v2 оснащается чипсетами 300-й серии и поддерживает процессоры Intel Core 8 и 9-поколения (Coffee Lake);

AXI-интерфейс, BRAM и вот это всё

Для того, чтобы осуществить обмен информации между PS и PL используется универсальный интерфейс AXI. Данный интерфейс предлагает широкий спектр функций, для организации информационного обмена внутри Zynq и по сути является универсальной шиной для самых разнообразных применений, с высокой пропускной способностью и минимальными задержками.

Глубокое рассмотрение принципов работы интерфейса AXI не планировалось в этой статье, и в Интернете очень много информации на этот счёт, и я решил не углубляться в описание возможностей AXI. Но за то расскажу о том, как применение этого интерфейса помогло мне решить поставленную задачу.

Для организации нужного нам обмена мы задействуем уже готовый, предложенный компанией Xilinx, блок AXI SmartConnect, который является преемником AXI Interconnect. В нашем случае будет достаточно использовать самый простой вариант — AXI4-Lite, который достаточно прост, и подходит для передачи небольших порций информации и позволяет только читать и записывать 32-битные слова за раз. Используется обычно для доступа к низкоскоростным периферийным устройствам. Самое то для получения и отправки команд счетчиками и выгрузки значений трёх счётчиков.

Не будем останавливаться на теории и перейдем к выполнению задачи. Добавим в наш дизайн IP-блок AXI SmartConnect и сразу зайдем в его настройки и выберем количество Slave-интерфейсов равным 1. Подключаем сигнал сброса и тактирования следующим образом:

Для хранения информации внутри ПЛИС мы можем задействовать AXI BRAM Controller и Block Memory Generator. Добавим их в дизайн и перейдем к первоначальной настройке.

Двойным кликом заходим в настройки AXI BRAM Controller-а и настраиваем настройки следующим образом:

Выбираем AXI Protocol AXI4LITE. И делаем один BRAM Interface. Остальные настройки оставляем по умолчанию. Нажимаем ОК.

Соединяем интерфейсы Master AXI с Slave AXI и подключаем тактовый сигнал и сигнал сброса к AXI BRAM Controller:

Переходим к настройке Block Memory Generator. Выбираем Memory Type как True Dual Port RAM и остальные настройки оставляем по умолчанию.

Подключаем соединения и получаем следующий вид:

Следующим шагом нужно определить какое количество памяти будет задействовано для хранения данных в BRAM. Для этого нужно зайти в верхнее меню Window — Address Editor и автоматически назначить адреса:

После этого произойдет автоматическая разметка по адресу смещения 0x4000_0000 в размере 8К. Нам этого будет достаточно для записи. Оставим значение по умолчанию.

Заключение. Чипсеты для 12-го поколения Intel Alder Lake

В структуре моделей чипсетов у Intel ничего не поменялось. Разгон CPU – тут без вариантов Z690, и обсуждать нечего.

Если же переплачивать за процессор с буковкой «K» в маркировке желания нет, то вариативность выбора существенно шире. Если по минимуму, то H610 хороший вариант. Жаль, что к процессору не удастся подключить SSD под систему. В остальном же каких-либо существенных ограничений для нетоповой сборки нет.

Тем не менее, весьма интересным вариантом выглядит B660. Если не замахиваться на что-то типа Core i9-12900, а ограничиться Core i5-12400 или максимум Core i7-12700 в любой модификации, и при этом дополнительных дискретных контроллеров будет минимум, да и количество накопителей ограничится несколькими штуками, то именно эта модель чипсета вполне может оказаться оптимальным выбором. B660 может стать мэйнстримовским вариантом с оптимальным сочетание цены и функционала.

Вот по поводу H670 есть сомнения. Интересный вариант, и рекомендованная цена совсем немного выше, чем у стоящего чуть ниже в линейке моделей B660. При этом потенциально возможностей у H670 заметно больше. Другой вопрос, если кроме видеокарты особо ничего устанавливаться не будет, то есть ли смысл переплачивать за более дорогой чипсет?

Младший H610 – выбор для офисных ПК и недорогих сборок, когда задача экономии средств является одной из приоритетных. Тем не менее, это не означает, что его хватит только для таблиц Excel и «косынки». Может, для топовой игровой системы он и не подойдет, но вот для сборки среднего уровня годится более чем.

При этом останутся ресурсы для некоторого расширения конфигурации дискретной видеокартой, несколькими SSD накопителями.

Хороших покупок!

Related posts
Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
The voice for you
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: