LINUX.ORG.RU

16 vs 24 бит в ALSA

 , ,


1

5

Вопрос для всех пораженных аудиофилией головного мозга.

Как перешел на ресивер вместо встройки, заметил что файлы CD формата 16/44,1 стали звучать хуже (больше ВЧ-шума), нежели допотопная SBLive5.1! При этом файлы 24/96 звучали нормально. Включал софтовый ресемплинг на 96кГц - не помог.

Освоив инженерное меню ресивера, понял корень проблемы - dmix по дефолту ресемплит всё в 48кГц. С этим разобрался, шум ушел.

Осталась проблема с разрядностью потока - если судить по инженерному меню, приходит 16/96 при источнике 24/96

 cat /proc/asound/card*/pcm0p/sub0/hw_params
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 96000 (96000/1)
period_size: 1200
buffer_size: 4800

При этом карта принимает либо 16, либо 32, но на ресивер всё равно приходит 16.

Хотя, допускаю, что с битностью потока может быть всё в порядке (В инженерном меню показывается только частота, а на дисплейчике есть отдельные символы 24/96, ожидаю что они должны светиться когда приходит такой поток, но это неточно).

Кто-нибудь добивался 24 битного потока по SPDIF?

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

★★★★★

Кто-нибудь добивался 24 битного потока по SPDIF

Так это говно мамонта никогда не поддерживало нормально 24 бита. Как и 96кГц. Там 16/48 максимум на что можно рассчитывать.

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

А, ну да, для toslink:

Originally limited to 48 kHz at 20 bits PCM. Extended by manufacturers to support additional formats.

Даже если ресивер поддерживает, то скорей всего это что-то фирменное проприетарное…

Там 16/48 максимум на что можно рассчитывать.

Ну 16/96 он прокачивает, хотя надо разбираться, как именно.

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

Так это говно мамонта никогда не поддерживало нормально 24 бита. Как и 96кГц. Там 16/48 максимум на что можно рассчитывать.

Как будто есть юз кейсы, когда кому-то за пределами DAW не достаточно 16/48.

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

У SPDIF максимальная скорость 1.5 Мбит. А 16/96 это уже почти 3.

Или у тебя что-то фирменное, проприетарное, или кто-то врёт.

А какой у тебя ресивер? Может, задействуешь HDMI?

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

У SPDIF 1.5 Мбит, у TOSLINK 3.1МБит/с

Ничего проприетарного, источник HDAudio на ALC897.

Ресивер древняя ямаха V440, у неё самый быстрый интерфейс оптика, есть ещё медь, но там как раз те самые полтора мегабита.

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

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

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

Так, покурил доки, в ресивере стоит шарповский GP1FA551RZ, по спеке до 13.2Mbps в прыжке (NRZ signal). Осталось узнать что в звуковухе, может быть проблема решится заменой кабеля…

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

Эта ямаха умеет 24/96 через DTS. DTS — это сжатие, поэтому пролезает.

Я нашёл какие-то дикие мануалы на тему настройки DTS в ALSA, с применением PPA и патченного Pulseaudio. А ещё, если в киношке звук сразу закодирован в DTS, то как минимум Kodi сумеет отправить его на ресивер.

В общем, ждёт тебя секс.

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

Ага, стало понятней, почему есть 2 значка 24/96, один как раз рядом с каналами. Скачал ролик энигмы, странная картина, обещано DTS 24/96, но vlc говорит, что частота 48кГц. При этом mediainfo ему противоречит и говорит что звуковая дорожка как раз 96кГц.

Audio #1
ID                                       : 2
Format                                   : DTS 96/24
Format/Info                              : Digital Theater Systems
Commercial name                          : DTS 96/24
Codec ID                                 : A_DTS
Duration                                 : 47 min 37 s
Bit rate mode                            : Constant
Bit rate                                 : 1 510 kb/s
Channel(s)                               : 6 channels
Channel layout                           : C L R Ls Rs LFE
Sampling rate                            : 96.0 kHz
Frame rate                               : 187.500 FPS (512 SPF)
Bit depth                                : 24 bits
Compression mode                         : Lossy
Stream size                              : 514 MiB (42%)
Title                                    : DTS 5.1 24 Bit 96 Khz 1536 Kbps
Language                                 : English
Default                                  : Yes
Forced                                   : No

Отправлятеся вроде 2 канала по 32 бита в 96:

$ cat /proc/asound/card*/pcm0p/sub0/hw_params 
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 96000 (96000/1)
period_size: 1024
buffer_size: 16384

Но на ресивере всё равно ничего такого не появилось, те же 5 каналов

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

Тут я ничем не могу помочь, я DTS не настраивал, гугли. Там идея в том, что, чтобы кодировать или декодировать DTS, нужна лицензия. В линуксе её нет. Но можно просунуть.

Если же в файле фильма звук уже кодирован в DTS, то VLC достаточно просто отправлять его на ресивер. Чего он то ли не делает, то ли не хочет делать.

С VLC я тоже не знаком, кстати :-)

Вот тут пишут, что mplayer надо собрать с поддержкой DTS.

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

Блин, уже сто раз обсосано, что теорема Котельникова для сигналов бесконечной длительности, это раз.

Поэтому и оставляют нехилый запас в несколько кГц.

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

Для отрендрененного проекта это уже неактуально.

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

Я не пойму, ты что пытаешься сказать? Что 16/44.1 хватит всем? Нет, и об этом написано в статье. Но ладно, оставим мастеринг в покое, вернемся к нашим баранам

Из этой же статьи:

Unfortunately, most samples are mastered to use the full digital range. Naive resampling can and often will clip occasionally. It is necessary to either monitor for clipping (and discard clipped audio) or avoid clipping via some other means such as attenuation.

Вот именно с этим я и борюсь. Чем меньше передискретизаций до аналога - тем лучше звук, в частности SNR. Цифровой звук чуть сложнее, чем одна теорема Котельникова, и шумов в нем хватает.

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

Вот именно с этим я и борюсь. Чем меньше передискретизаций до аналога - тем лучше звук, в частности SNR. Цифровой звук чуть сложнее, чем одна теорема Котельникова, и шумов в нем хватает.

Это правильно, это я одобряю, но, возможно, надо исправлять проблемы с другой (принимающей) стороны.

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

Эта ямаха умеет 24/96 через DTS. DTS — это сжатие, поэтому пролезает.

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

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

DTS бывает разный, но, насколько я понимаю, тут lossy вариант.

Ну естественно, а как ты иначе пропихнёшь 24/96 в этот канал?

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

Да.

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

DTS бывает разный

Именно. На самом деле вопрос даже не в пропускной полосе, а в том что в coax нет возможности крикнуть назад «с меня писать нельзя». Copy-protection, все дела.

bugfixer ★★★★★
()