По порядку.
1. Транкейт, как можно видеть из кода, приведенного выше, реализуется побитовым сдвигом вправо (операция >>).
2. По поводу дизеринга. В нем то же осуществляется транкейт до 16 бит тем же самым способом (после добавления псевдослучайного шума).
3. До недавнего времени ЦРГ был реализован внутри модуля DSP. Однако сейчас, когда он стал практически без задержки, его реализация перенеслась в модуль PCM (я делал сборки для 3.4 точно так же). Т.е. теперь на него приходят данные после обработки в DSP модуле в 16-битном формате (если я ничего не перепутал). Стало от этого хуже или лучше или ничего не изменилось, я сказать не могу, замеры где-то выкладывал AfArt, но судя по всему ничего качественно не поменялось.
Прокомментирую код, приведенный в посте выше:
На вход поступают данные в 32-битном формате в двух массивах: для левого и правого канала
Коэффициент сдвига берется отсюда:Код:const int32_t *src[]
Вычисляется некий коефициент смещения (?) = 1/2 величины сдвига (я так понимаю для округления вверх)Код:const int scale = data->output_scale;
Далее, пока не будет пройдены все данные, происходит следующее:Код:const int dc_bias = 1 << (scale - 1);
последовательно по каналам к данным прибавляется dc_bias (округление вверх ?)Код:*dst++ = clip_sample_16((*s0++ + dc_bias) >> scale);
Затем происходит сдвиг данных (транкейт)Код:(*s0++ + dc_bias)
Затем проверка на клиппингКод:>> scale
суть которой в том, что если преобразованное (простым откидыванием старших бит) из 32 бит к 16 битам число не одно и то жеКод:clip_sample_16
Осуществляется операция "Исключающее ИЛИ" (или "Сложение по модулю 2") уровня сигнала 0x7fff и старшего бита исходного сигналаКод:if ((int16_t)sample != sample)
Код:sample = 0x7fff ^ (sample >> 31);
-
- Адрес
- Москва
- Сообщений
- 4,989
- Репутация
- 105621 (0)
20.09.2013 12:41Последний раз редактировалось gemzza; 20.09.2013 в 12:58.
ММ4 / FitEar 335 DW AA
_________
Suum cuique
-
20.09.2013 12:50
Для тех кто не понимает о чем речь, вот тут просто изложенный материал от romanrex.
gemmza, а какие еще алгоритмы такого преобразования могут использоваться? Насколько я понимаю, тут у нас самый грубый вариант, т.е банальное отбрасывание младших значащих битов происходит? А что если в каждом месте где такое происходит, предварительно воткнуть кусок алгоритма с дизерингом? По идее он нам должен замазать такого рода искажения за счет равномерного увеличения шума..Последний раз редактировалось Alex_Nsk; 20.09.2013 в 12:52.
Любите музыку, а не аппаратуру!
"..идеальная аудиоаппаратура та, об индивидуальности звучания которой сказать ничего нельзя..." АМЛ(RIP)
Спойлер:
Для связи пишите мне в мои группы VK xduoo, вкладышей, моего проекта aURa, проекта МА9, электростатам,на канал DZEN, или на форуме моего сайта
-
- Адрес
- Москва
- Сообщений
- 4,989
- Репутация
- 105621 (0)
20.09.2013 13:04Именно так.
Можно просто включить дизеринг, как мне кажется. Мест-то таких не много, я бы сказал одно. Единственно, непонятно что делать в таком случае с новым ЦРГ, поскольку он работает всего-лишь с 16 битными данными, а в этом случае, на сколько мне известно (я могу ошибаться) дизеринг не так эффективен, как в случае с 24 битами. Можно сделать замеры с включенным дизерингом и оценить его влияние.ММ4 / FitEar 335 DW AA
_________
Suum cuique
-
20.09.2013 13:15
Судя по замерам где-то на пути обработки сигнала происходит транкейт без участия подмешивания шума.
Вне зависимости от установок дизеринг вкл/выкл в меню.Последний раз редактировалось Alex_Nsk; 20.09.2013 в 13:17.
Любите музыку, а не аппаратуру!
"..идеальная аудиоаппаратура та, об индивидуальности звучания которой сказать ничего нельзя..." АМЛ(RIP)
Спойлер:
Для связи пишите мне в мои группы VK xduoo, вкладышей, моего проекта aURa, проекта МА9, электростатам,на канал DZEN, или на форуме моего сайта
-
- Адрес
- Москва
- Сообщений
- 4,989
- Репутация
- 105621 (0)
20.09.2013 13:33Вот реализация "старого" ЦРГ:
Код:int vol_gain = get_replaygain_int(global_settings.volume * 100); dsp->data.gain = (long) (((int64_t) dsp->data.gain * vol_gain) >> 24);
ММ4 / FitEar 335 DW AA
_________
Suum cuique
-
20.09.2013 13:37
Из за такой операции и появляются наблюдаемые артефакты. И возможно подобное происходит несколько раз..
Как думаешь, можно ли попробовать собрать вариант rockbox вкорячив во всех подобных местах предварительный дизеринг треугольным шумом (такой же кусок который будет управляться из меню)?Последний раз редактировалось Alex_Nsk; 20.09.2013 в 13:39.
Любите музыку, а не аппаратуру!
"..идеальная аудиоаппаратура та, об индивидуальности звучания которой сказать ничего нельзя..." АМЛ(RIP)
Спойлер:
Для связи пишите мне в мои группы VK xduoo, вкладышей, моего проекта aURa, проекта МА9, электростатам,на канал DZEN, или на форуме моего сайта
-
- Адрес
- Москва
- Сообщений
- 4,989
- Репутация
- 105621 (0)
-
-
- Адрес
- Минск
- Сообщений
- 1,066
- Репутация
- 11710 (0)
-
- Адрес
- Москва
- Сообщений
- 4,989
- Репутация
- 105621 (0)
-
Следующие 2 пользователей сказали Спасибо за этот полезный пост
igor120765 (23.09.2013), micon (20.09.2013)
-
- Адрес
- Киев
- Сообщений
- 3,139
- Репутация
- 36104 (0)
вне дома: АК120ll VmodYU с Audeze SINE mod //дома: DAC RD-30(pcm1704), ус Carbon, Stax х9000, Jecklin Float QA //было хорошее: Beyer1350, JVC Victor DX700, Denon 7000, изоTechics 820 mod snorry, тдс-15super mod, NAD RP18, Wharfedale ID1//ЭС> Koss 950, Perun, Stax 007sz3, 007А, SR70252, 009S //НЕдолго: Phonon Smb-02, LCD-3F и ХС, Yamaha HР-1000,YHD-1, Stax 009
-
- Адрес
- Минск
- Сообщений
- 1,066
- Репутация
- 11710 (0)
21.09.2013 01:15Вот кстати хорошее тело для мода,хоть и тоненький зато есть пульт в комплекте http://www.ebay.de/itm/Cowon-iAUDIO-...item19e249ae74 а вид прям как у нового
-
- Адрес
- Киев
- Сообщений
- 3,139
- Репутация
- 36104 (0)
вне дома: АК120ll VmodYU с Audeze SINE mod //дома: DAC RD-30(pcm1704), ус Carbon, Stax х9000, Jecklin Float QA //было хорошее: Beyer1350, JVC Victor DX700, Denon 7000, изоTechics 820 mod snorry, тдс-15super mod, NAD RP18, Wharfedale ID1//ЭС> Koss 950, Perun, Stax 007sz3, 007А, SR70252, 009S //НЕдолго: Phonon Smb-02, LCD-3F и ХС, Yamaha HР-1000,YHD-1, Stax 009
-
24.09.2013 16:19
Итак, в теперешней серии 4 участника, один из которых (Krelbi) не отсвечивает совсем.
Непонятно, передумал он принимать участие или нет. Прошу откликнуться и внести ясность.
В начале следующей недели будут собраны первые платы и готовые аппараты на базе iriver iHP140 для участников hqq и Villain. Alexmod #125 и #126, соответственно.
Потенциально, есть возможность собрать еще несколько аппаратов без каких-либо особенных проблем и долгого ожидания. Так что если кто хочет - welcome!Последний раз редактировалось Alex_Nsk; 24.09.2013 в 16:21.
Любите музыку, а не аппаратуру!
"..идеальная аудиоаппаратура та, об индивидуальности звучания которой сказать ничего нельзя..." АМЛ(RIP)
Спойлер:
Для связи пишите мне в мои группы VK xduoo, вкладышей, моего проекта aURa, проекта МА9, электростатам,на канал DZEN, или на форуме моего сайта
-
24.09.2013 19:33
Готов alexmod #125 для hqq. Получилось завершить быстрее, чем я предполагал.
Надеюсь до конца недели закончу #126 а на следующей - проведу прогон #127 для 13и7.
Далее займусь опробыванием варианта платы на PCM1792.Любите музыку, а не аппаратуру!
"..идеальная аудиоаппаратура та, об индивидуальности звучания которой сказать ничего нельзя..." АМЛ(RIP)
Спойлер:
Для связи пишите мне в мои группы VK xduoo, вкладышей, моего проекта aURa, проекта МА9, электростатам,на канал DZEN, или на форуме моего сайта
-
Пользователи, сказавшие Спасибо Alex_Nsk за полезный пост
Piton2414 (24.09.2013)
-
- Адрес
- Киев
- Сообщений
- 3,139
- Репутация
- 36104 (0)
вне дома: АК120ll VmodYU с Audeze SINE mod //дома: DAC RD-30(pcm1704), ус Carbon, Stax х9000, Jecklin Float QA //было хорошее: Beyer1350, JVC Victor DX700, Denon 7000, изоTechics 820 mod snorry, тдс-15super mod, NAD RP18, Wharfedale ID1//ЭС> Koss 950, Perun, Stax 007sz3, 007А, SR70252, 009S //НЕдолго: Phonon Smb-02, LCD-3F и ХС, Yamaha HР-1000,YHD-1, Stax 009
-
- Адрес
- Москва
- Сообщений
- 4,989
- Репутация
- 105621 (0)
-
24.09.2013 20:08
Пошли вопросы-просьбы, а я до сих пор не могу ничего сказать. Непорядок
Немного отвлекла меня от данной темы ультра, в смысле, MA9 проектЛюбите музыку, а не аппаратуру!
"..идеальная аудиоаппаратура та, об индивидуальности звучания которой сказать ничего нельзя..." АМЛ(RIP)
Спойлер:
Для связи пишите мне в мои группы VK xduoo, вкладышей, моего проекта aURa, проекта МА9, электростатам,на канал DZEN, или на форуме моего сайта
-
- Адрес
- Москва
- Сообщений
- 4,989
- Репутация
- 105621 (0)
24.09.2013 21:42Ну и я тогда скажу пару радостных слов в пользу PCM1792/1796.
До сих пор в моих прошивках для этих ЦАП не работал "родной" кодек "тела" (от просто не задействовался). Недавно, по просьбе Сергея (NCRS) была сделана прошивка с поддержкой работы UDA1380 для iriver h120. По первым его отзывам вроде "полет нормальный".
Знаю, что многие владельцы алексмода (в основном в телах ривера) используют его совместно с родным кодеком (ММ или еще что-либо подобное). И для них переход на новый ЦАП автоматически отключал данную возможность. Теперь все стало красиво!
Пока не буду никуда выкладывать сборки с поддержкой родного кодека, поскольку людей, "пересадивших" себе ЦАП не так много и надо оно им или не надо, я не знаю. Ну и чтобы не плодить пока лишних сущностей . Однако, как только в этом возникнет реальная необходимость, с удовольствием выложу. Но по тестам пока еще не все понятно, терзаем тов. NCRSММ4 / FitEar 335 DW AA
_________
Suum cuique
-
Пользователи, сказавшие Спасибо gemzza за полезный пост
igor120765 (25.09.2013)
-
- Адрес
- Минск
- Сообщений
- 3,125
- Репутация
- 30318 (0)
Информация о теме
Пользователи, просматривающие эту тему
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)
Похожие темы
-
Новый проект: Идеальный музыкальный смартфон. Он вообще нужен.???
от DOC2008 в разделе ФлеймОтветов: 82Последнее сообщение: 26.02.2022, 14:38 -
Складное оголовье с деревянными чашками под DIY проект.
от Alex_Nsk в разделе АрхивОтветов: 4Последнее сообщение: 17.06.2020, 04:55 -
AKS СLASSIC DAP | Сбор средств на проект ПЛЕЕРА
от Doc1085 в разделе ФлеймОтветов: 125Последнее сообщение: 26.09.2018, 17:30 -
Apple ME186 от Alex NSK (проект ADDIEM)
от IgorNew в разделе АрхивОтветов: 7Последнее сообщение: 04.10.2017, 20:10 -
Бандл от Alexmod: Alexmod #103 PCM 1794 64gb+AuraMonitor
от startmylife в разделе АрхивОтветов: 10Последнее сообщение: 07.12.2016, 09:51