LINUX.ORG.RU

Влияние метода копирования данных на качество звука

 , , ,


0

5

Привет, ЛОР!

Я тут нашёл на одном форуме серию постов о том, что выбор функции для работы с памятью и копирования данных в памяти в аудиоприложении довольно сильно влияет на качество звука. Скажи, этому есть какое-нибудь научное обоснование?

Ссылка: https://www.audioasylum.com/messages/pcaudio/119979/

Для Ъ:

  • Разные версии memcpy() приводят к разному качеству.
  • Код на C++ с new звучит лучше, чем сишный код с malloc().
  • Есть специальная оптимизированная для звука версия memcpy(), позволяющая избавиться от лишних шумов.

Скажи, ЛОР, насколько стоит этим заморачиваться в моём коде? Если у меня на одном и том же компьютеры запущены плеер и мой код, делающий что-то с памятью, может ли это быть причиной плохого звука? Если да, что с этим можно сделать?

Ответ на: комментарий от yoghurt

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

hateyoufeel ★★★★★
() автор топика

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

Я на первый пень 20 лет назад ставил какой-то дефрагментатор памяти. И от него в звуке были слышимые артефакты.

Но то было на win2000 и первопне.

James_Holden ★★★★
()
Ответ на: комментарий от hateyoufeel

Хорош глумиться над народом.

ПыСы. Лет дцать назад был интересный тред когда flash поломали glibc update’ом. С мнением всеми (я надеюсь) уважаемого господина Линуса там я полностью согласен…

bugfixer ★★★★★
()
Ответ на: комментарий от bugfixer

ПыСы. Лет дцать назад был интересный тред когда flash поломали glibc update’ом. С мнением всеми (я надеюсь) уважаемого господина Линуса там я полностью согласен…

Да, было такое. Но там проблема была в том, что регионы памяти пересекались, и memcpy затирал данные.

hateyoufeel ★★★★★
() автор топика

Скажи, этому есть какое-нибудь научное обоснование?

Ну если провода и подставки влияют (на мозги), то почему бы memcpy не влиять)

Есть специальная оптимизированная для звука версия memcpy()

С прогревом памяти?)

goingUp ★★★★★
()
Последнее исправление: goingUp (всего исправлений: 1)
Ответ на: комментарий от t184256

Пока Sony представила microSD карточку для аудиофилов не купил, даю не вякай.

64Gb – это не для аудиофилов. На такое максимум два-три альбома влезет в DSD.

hateyoufeel ★★★★★
() автор топика

Жалко, honestvova в бане. Он бы всё объяснил, как надо malloc настроить, чтобы штырило.

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

И вобще сложно сказать, как будет идти обрашение к плашкам ОЗУ при том или ином memcpy(), потому, что кеш и многоядерность.

mky ★★★★★
()
Ответ на: комментарий от bugfixer

Мы таки подошли к интересному… А у Вас самого имеется на чём сиё изобретение слушать (без конвертации в PCM)?

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

Так-то сейчас в каждом втором хардварном плеере поддержка DSD есть. Это не то чтобы что-то очень сложное или дорогое, чай не MQA.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)

Память узкое место всех без исключения актуальных вычислительных систем.

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

faq2
()
Ответ на: комментарий от hateyoufeel

Так-то сейчас в каждом втором хардварном плеере поддержка DSD есть.

Секрет открою - по сути в каждом первом. Никто нынче (да и никогда наверное) не делает ЦАПчики на матрице резисторов - шумно больно…

ПыСы. Но звучит тем не менее прикольно :)

bugfixer ★★★★★
()
Последнее исправление: bugfixer (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

может возникнуть побочное излучение, негативно влияющее на токи в аудиокарте

На встройке может быть всё, что угодно. Но слабо верится, что какие-то «токи» будут передаваться через USB на ЦАП.

Но вообще там же чувак воюет конкретно с winapi, а не с memcpy вообще. Могу подтвердить что на винде звук говно, штатными средствами ресемплинг не отключается и при этом он ещё и убогий.

no-such-file ★★★★★
()
Ответ на: комментарий от t184256

Вот. Вот она разница между условным «академическим» подходом и практикой. Я прекрасно понимаю что виноват Adobe. Но это не отменяет того что миллион леммингов поимели геморрой на пустом месте. И этого можно было избежать, at the minimal cost…

bugfixer ★★★★★
()
Ответ на: комментарий от hateyoufeel

Тред по ссылке не читал, но прочитал что за особую версию memcpy рекомендуют. Судя по доке, она большие блоки памяти копирует в обход процессорного кеша, во избежание его загрязнения. В принципе кеш – штука наверняка энергозатраная, может на токи старых процессоров как-то и влияет. Или на динамическую частоту (что более вероятно).

P.S. Звуки интенсивных операции с SSD на ноуте я слышу отчётливо. Не в наушниках, конечно, а в обычной среде.

snizovtsev ★★★★★
()
Последнее исправление: snizovtsev (всего исправлений: 1)
Ответ на: комментарий от no-such-file

А тогда зачем ты спрашивал?

Дык, у «товарища» «пальцы веером и сопли пузырями». Не знаю уж на основании чего. И ладно бы не наезжал ни на кого. Но один такой его наезд (не на меня) меня таки задел. Дайте по-Дартаньянствовать ;)

bugfixer ★★★★★
()
Ответ на: комментарий от bugfixer

скажу еще хужей, в бытовой электронике усилители-то все класса D.
они, по идее, DSD напрямую жрать могут, частота преобразования конечно пониже необходимой даже для DSD64, но таки и качеств там не требуется :)

pfg ★★★★★
()
Ответ на: комментарий от bugfixer

Но один такой его наезд (не на меня) меня таки задел.

Пхпхпхпх.. это ты про тот тред с ноутбуками? Там чувак и правда тупой, безотносительно звуковых карт и прочего.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от pfg

они, по идее, DSD напрямую жрать могут

А учитывая что катушка индуктивности это по сути идеальный интегратор, и как мы помним - стандартные динамики это…

Короче - рыбак рыбака :)

bugfixer ★★★★★
()
Ответ на: комментарий от hateyoufeel

Там чувак и правда тупой, безотносительно звуковых карт и прочего.

Как минимум Вы заблуждаетесь. А во-вторых: меня жизнь научила простому правилу - никогда нельзя недооценивать противника / оппонента.

bugfixer ★★★★★
()
Ответ на: комментарий от bugfixer

… сломав его заранее каким-нибудь хитрым hellibc, которое специально вызовет это UB, разве что? Потому что идеи типа «включить флеш в тесты libc», «беречь UB ради флеша» или «не ломать ещё X времени, а там пользователи флеша обновятся» всерьёз рассматривать трудно, а твоя че-то не угадывается.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Ну так можно венду получить, с её специальным набором хаков для каждой сломанной программы. В краткосрочной перспективе это, конечно, выглядит красиво, но в долгосрочной – полный ад и холокост. И потом всё равно придётся всё сломать.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Ну вот и не надо. «Ломаешь» libc, а пользователи флеша просто сидят и не обновляются , пока не выйдет апдейт с фиксом. Я других вариантов здорового человека не вижу.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

а твоя че-то не угадывается

Моя позиция предельно проста - всегда нужно оценивать потенциальный impact. То что «копирование назад» может много чего поломать - было очень предсказуемо. Если бы конкретно этот glibc патч от меня зависел - я бы его не пропустил, однозначно…

bugfixer ★★★★★
()
Ответ на: комментарий от bugfixer

Теперь ты как минимум догадываешься, почему от тебя это не зависит. В своём дистрибутиве можешь (а если поддерживаешь флеш, так вообще должен) не пущать, но апстрим glibc все правильно сделал.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Теперь ты как минимум догадываешься, почему

… я с друзьями и коллегами обсуждаю что там новенького на рынке Поршиков, а не количество публикаций в научных журналах. Да. Возможно, просто возможно, я что-то делаю правильно… Задумайтесь об этом.

В своём дистрибутиве можешь

Боже - упаси.

bugfixer ★★★★★
()
Ответ на: комментарий от t184256

Рад, что каждый из нас на своём месте, классно, правда?

Скорее всего я изначальный посыл неправильно понял. Посему - заранее извиняюсь. Иногда меня «заносит» (мягко говоря). Мир / дружба / жвачка? :)

bugfixer ★★★★★
()

Интересно, а металлизацию дорожек на МБ и планках памяти из особой меди (и покрытие сверху из музыкального лака) там ценят?

greenman ★★★★★
()