The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Начата разработка свободного кодировщика DTS

11.08.2011 23:15

На Gitorius опубликован исходный код dcaenc, первого свободного кодировщика DTS, поддерживающего основные возможности базовой спецификации DTS Coherent Audio. В настоящее время реализация поддержки многих расширений стандарта, таких как DTS-HD, осложнена отсутствием открытых спецификаций. Ввиду этого автор проекта, Александр Патраков, пока что не планирует поддержку никаких расширений кроме Xch.

В состав проекта dtsenc входит библиотека libdcaenc.so, позволяющая создавать DTS-потоки в своих приложениях, и утилита dcaenc для перекодирования многоканальных wav-файлов в DTS. Полученные DTS-файлы могут быть записаны на CD, проиграны на DTS-ресивере, подключенном через цифровые интерфейсы SPDIF или HDMI, или после небольшой корректировки использованы для записи треков на DVD.

В рамках проекта dtsenc также создан модуль для ALSA, который нуждается в тестировании сообществом, так как он не проверен в работе с аппаратными DTS-ресиверами. Инструкцию по подключению ALSA-плагина можно найти в прилагаемом к коду пояснительном тексте. Плагин может оказаться полезным для вывода многоканального звука через SPDIF, из произвольного приложения, использующего ALSA. Кодирование при выводе через SPDIF необходимо, так как пропускной способности данного интерфейса недостаточно для передачи raw-потока с несжатым 5.1-звуком. Стандарт HDMI лишен этого недостатка и предусматривает возможность передачи несжатого 5.1 PCM-потока с частотой дискретизации до 192 kHz.

В настоящее время в состав ALSA уже входит плагин с реализацией конкурирующего c DTS кодировщика AC3 (Dolby Digital). В AC3 используется расширенный алгоритм сжатия, но DTS позволяет достигнуть более высокого качества звука, так как может использовать более высокие битрейты и применяет меньший уровня сжатия. В dtsenc реализован лишь базовый уровень сжатия, определенный в спецификации DTS, что приводит к его отставанию в сравнении с коммерческими DTS-кодировщиками.

Александр готов выпустить первую официальную версию кодировщика после того, как функционирование модуля на конкретном оборудовании будет подтверждено. Код проекта распространяется под лицензией LGPL.

  1. Главная ссылка к новости (http://gitorious.org/dtsenc...)
Автор новости: prokoudine
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/31461-dts
Ключевые слова: dts, codec, audio
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (30) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, light (??), 08:23, 12/08/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    хотелось бы вкратце понять, чем этот кодек отличается от овер 9000 других
    википедия как то не прояснила картины
     
     
  • 2.4, Александр Патраков (?), 09:06, 12/08/2011 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Кодек отличается от других тем, что его вывод понимается аппаратными декодерами, подключенными к SPDIF, и соответствует одному из стандартов для хранения передачи многоканального звука в бытовой технике.
     
     
  • 3.7, EuPhobos (ok), 09:19, 12/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > В настоящее время реализация поддержки многих расширений стандарта, таких как DTS-HD, осложнена отсутствием открытых спецификаций. Ввиду этого автор проекта, Александр Патраков, пока что не планирует поддержку никаких расширений кроме Xch.

    А почему не планируешь писать расширение стандарта?
    Отсутствие открытых спецификаций, всмысле "не понятно как оно работает" или "боюсь патентных троллей" ? =)

     
     
  • 4.9, Александр Патраков (?), 09:27, 12/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Отсутствие открытых спецификаций. Сейчас все расширения, кроме Xch, игнорируются при проигрывании ffmpeg'ом.
     
  • 4.10, Александр Патраков (?), 09:28, 12/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Отсутствие открытых спецификаций, всмысле "не понятно как оно работает" или "боюсь патентных
    > троллей" ? =)

    "не понятно как оно работает"

     

  • 1.2, Ващенаглухо (ok), 08:34, 12/08/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    высококачественный многоканальный lossless звук, хотя flac вроде тоже умеет...
    DTS умеют играть многие плееры.
     
     
  • 2.5, Александр Патраков (?), 09:08, 12/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > высококачественный многоканальный lossless звук, хотя flac вроде тоже умеет...
    > DTS умеют играть многие плееры.

    Не lossless. Идея в том, чтобы загнать многоканальный звук в битрейт, влезающий в SPDIF или на CD/DVD.

     
     
  • 3.22, Aleksey Salow (ok), 01:45, 13/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    через spdif жеж вполне пролазит 24-bit 192kHz stereo, тобишь чуть более 9 мегабит, чего достаточно для 16-bit, 48kHz 7.1 (для которых надо 6мегабит). Проблема, я так понимаю, в стандарте, в котором ничего более stereо не определено.
     

  • 1.3, Аноним (-), 09:05, 12/08/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    То есть сейчас звук в фильмах с дтс выводится с ухудшеным качеством?
     
     
  • 2.6, Александр Патраков (?), 09:15, 12/08/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > То есть сейчас звук в фильмах с дтс выводится с ухудшеным качеством?

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

    Я решаю другую проблему - 5.1 flac невозможно передать через SPDIF, т.к. не влезает. Поэтому приходится кодировать на лету с потерями в AC3 (это было до меня) или в DTS.

     
     
  • 3.8, Макс (??), 09:19, 12/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    ЦАП преобразование всёравно происходит, даже при использовании SPDIF, только не в компьютере, а в приёмнике данных. Если есть хорошая звуковая карта, то качество будет не хуже.
     
  • 3.11, Andrew Kolchoogin (?), 09:55, 12/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Саш, через мои руки как-то проходила звуковая карта, у которой SPDIF был сделан "стеклом". Туда тоже не влезает -- это ограничение стандарта какое-то?
     
     
  • 4.12, Александр Патраков (?), 10:04, 12/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Саш, через мои руки как-то проходила звуковая карта, у которой SPDIF был
    > сделан "стеклом". Туда тоже не влезает -- это ограничение стандарта какое-то?

    Туда тоже не влезает из-за ограничения "два канала или сжатый звук".

     

  • 1.13, Motif (ok), 11:29, 12/08/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А почему только ALSA? Без oss4 оно как-то не интересно.
     
     
  • 2.14, Andrey Mitrofanov (?), 11:35, 12/08/2011 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > А почему только ALSA? Без oss4 оно как-то не интересно.

    Да! Хотелось бы услышать, как _живой _реальный разработчик пошлёт в поля проприертарщиков и  их друзей б3дешников?

     
     
  • 3.17, Александр Патраков (?), 13:18, 12/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Мне непонятно (т.к. документацию по OSS я не читал), как в OSS4 вообще возможно перенаправление звука от произвольных приложений (а еще лучше - всего микса) в мою библиотеку. Ведь приложения открывают /dev/dsp и ничего про нее не знают. Верно ли, что ее придется запихивать в ядро?

    LD_PRELOAD, конечно, для отдельного приложения сработает, но это хак.

     
  • 3.21, anonymous (??), 19:47, 12/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Вы путаете живых реальных разработчиков и фанатиков.
     
  • 2.15, Аноним (-), 11:54, 12/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Потому, что по линуксом оно почти никому не нужно. А кому надо, могут портировать. Опенсорс же.
     
     
  • 3.16, Аноним (-), 12:08, 12/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Код проекта распространяется под лицензией LGPL.
    Я считаю пользователи BSD не в восторге :)

    И да, искажатели звука они везде, они по всюду.

     
     
  • 4.20, iZEN (ok), 15:48, 12/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Я считаю пользователи BSD не в восторге :)

    Объясни, почему? Многие библиотеки под GPL и LGPL (GCC, coreutils, groff, gdb, less) работают в базовой системе. Хотя от них постепенно стараются избавиться заменив их аналогами, имеющими то же лицензионное соглашение, что и основная система, но это не обусловлено какой-то срочностью.

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

    Ещё почему-то Google выпускает свой кодеки (VP8, например) под BSDL. Тут, наверное, прослеживается вопрос с кросс-плаформенностью кода: код для ALSA/Linux должен быть под той лицензией, которая используется в окружении ALSA, а именно — GPL/LGPL, чтобы иметь "бесшовную" интеграцию со свободным продуктом. В то время, как кодеки под BSDL не имеют привязки к конкретным особенностям программного обеспечения и их лицензий и должны иметь больший манёвр в сочетании с программным кодом, распространяемым под различными непермиссивными (например, GNU GPL) и проприетарными (EULA) лицензиями. То есть, кодек под BSDL имеет ту же самую "бесшовность" на всех типах программно-аппаратных комплектов, что и кодек под GPL/LGPL в сочетании с ALSA и мощной инфраструктурой Linux.

     
  • 2.23, Andrew Kolchoogin (?), 14:57, 13/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Вы его под Солярис потянуть собрались, что ли?

    Просто у меня давно собран audio/alsa-lib, и я как-то не парюсь...

     
     
  • 3.24, Motif (ok), 15:17, 13/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы его под Солярис потянуть собрались, что ли?
    > Просто у меня давно собран audio/alsa-lib, и я как-то не парюсь...

    ALSA портит звук. Такое впечатление, что она выдает два потока с небольшим смещением. К чему приводит, думаю понятно - интермодуляция вещь очень нехорошая. OSSv4 работает честно, сравнивалось с аппаратным CD-player'ом, так что на софт не спишешь. Поэтому, если замахиваться на качественный звук(а иначе зачем DTS?, есть же mp3), то поддержку OSSv4 предусматривать надо.

     
     
  • 4.25, Александр Патраков (?), 21:05, 13/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Насколько мне известно, ALSA портит звук (но не так, как написано выше) только если не использовать высококачественный плугин для изменения частоты дискретизации. По умолчанию действительно получается металлический оттенок.

    Прошу проверить гипотезу "виноват плохой плугин" такой командой: mplayer -ao alsa:device=hw=0 file.flac , тем самым звук пойдет на карту без обработки плугинами. Еще не помешает указать тип звуковой карты.

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

     
     
  • 5.26, Александр Патраков (?), 21:09, 13/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Вдогонку: на BSD-системах пакет тоже по идее должен собираться, но, естественно, без ALSA-плугина. Библиотека и утилита командной строки для преобразования wav в dts остаются.
     
  • 5.27, Motif (ok), 21:57, 13/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Насколько мне известно, ALSA портит звук (но не так, как написано выше)
    > только если не использовать высококачественный плугин для изменения частоты дискретизации.
    > По умолчанию действительно получается металлический оттенок.
    > Прошу проверить гипотезу "виноват плохой плугин" такой командой: mplayer -ao alsa:device=hw=0
    > file.flac , тем самым звук пойдет на карту без обработки плугинами.
    > Еще не помешает указать тип звуковой карты.
    > А насчет планов по поддержке OSS4 я уже сказал - если для
    > этого надо лезть в ядро, пусть эту поддержку пишет кто-нибудь другой,
    > исходники открыты. Или пусть мне объяснят, как можно прикрутить эту поддержку,
    > не залезая в ядро и без LD_PRELOAD.

    Эээ... У меня альсы нет уже второй год. То есть вообще нет, ядро пересобрано без нее. Так что проверить не могу, увы.

    OSSv4 содержит ядерный модуль и юзерспейс. Но общаться с ним можно через /dev/dsp. Вроде как этого достаточно и в ядро лезть не надо.

    http://manuals.opensound.com/developer/

     
     
  • 6.29, Александр Патраков (?), 08:53, 14/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    OK, нашел. Это, вероятно, "oss_userdev" или "oss_audioloop", надо будет поиграться в виртуальной машине. Но сначала разобраться с "бульканьем" на реальном железе.
     
  • 5.28, Motif (ok), 21:59, 13/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Сорри, карта Audigy 2.
     
     
  • 6.32, Avator (ok), 05:46, 22/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ох какой раритет =)
    жаль Aureal купили, крутая контора была)
     

  • 1.30, Makloth (?), 15:37, 18/08/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Очень рад что появился первый (если я конечно ничего не упустил) открытый DTS-Encoder. Огромное спасибо за труд!
    Мне от энкодера хотелось бы реализации перекодировки DTS с понижением битрейта (с 1536 до 768 кбит/с), либо же обеспечения совместимости с существующими на сегодняшний день транскодерами.
    В частности eac3to http://forum.doom9.org/showthread.php?t=125966 умеет цеплять проприетарные DTS энкодеры для конвертации звуковых дорожек.
    Если бы возможно было в перспективе организовать непосредственное транскодирование DTS с минимальными потерями без конвертации в wav - это было бы замечательно!
     
     
  • 2.31, Александр Патраков (?), 08:28, 19/08/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Мне от энкодера хотелось бы реализации перекодировки DTS с понижением битрейта (с 1536 до 768 кбит/с)

    Декодера DTS в моем проекте не будет. Проблемы в следующем:

    1) Для написания кодера из wav достаточно поддержать только ту часть стандарта, которую кодер будет использовать (сейчас, например, векторное квантование не используется - соответственно, нет кода, который это поддерживает), декодер же обязан поддерживать стандарт на все 100%. 100% стандарта я поддерживать не буду, т.к. некоторые его части даже сейчас нереализуемы на стороне кодировщика в реальном времени.

    2) Для принятия решения, какие именно поддиапазоны надо огрубить для понижения битрейта, нужна психоакустическая модель. Все психоакустические модели работают на PCM.

    P.S. за все время с момента публикации новости я смог связаться только с одним тестировщиком, да и то только на форуме, а не по e-mail. Если дело и дальше так пойдет, похоже, проект придется убить. Пишите письма, email см. в README!

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру