WinampAC3 ver 0.60b

SourceForge Logo
English   Russian  
Download Sourceforge project Project forum Author's homepage


    Эта программа - плагин для Winamp v2.x для проигрывания .ac3 файлов. Основана на библиотеке, используемой в AC3Filter. Распространяется абсолютно бесплатно, то есть - даром (FREEWARE).

Основные особенности:



Содержание



Близкие проекты:

    AC3Filter - DirectShow фильтр для декодирования AC3. Возможность воспроизведения .AVI с аудио-треками в формате AC3 и MPEG2 (DVD).
    MatrixMixer - Позволяет микшировать любой аудио источник в формат 5.1.
    LibA52 - Кроссплатформенная библиотека декодирования ac3 (by Michel LESPINASSE).



Скачать.

Новые версии программы можно найти на сайте:
http://winampac3.sourceforge.net - домашняя страница
http://sourceforge.net/projects/winampac3 - страница проекта на Sourceforge - ошибки, пожелания...
http://sourceforge.net/forum/?group_id=67608 - форум WinampAC3


Все версии:
http://sourceforge.net/projects/winampac3

WinampAC3 ver 0.60b
http://prdownloads.sourceforge.net/winampac3/winampac3_0_60b.exe?download - Инсталлятор
http://prdownloads.sourceforge.net/winampac3/winampac3_0_60b_src.zip?download - Исходники



Настройки.


    Два самых главных правила настройки:
    1. Если вы не понимаете, что делает какая-либо настройка не трогайте ее.
    2. Если вы не послушались первого правила и что-то сломалось, и непонятно, как все починить обратно, загрузите пресет 'standart'.
    :))).

Основные настройки (страница Main)

    Окно настроек выглядит следующим образом (уровни и информация о потоке показываются только при вызове окна свойств из плеера):



* Информация о потоке (Bitstream information).

    Слева сверху - информация о потоке (bitstream information, BSI):

* Переключение конфигурации колонок (Output).

    В этой секции производится настройка устройства вывода звука.

     Первый список выбора позволяет изменять устройство вывода. 'Direct Sound' - встроенный метод вывода, поддерживает SPDIF. 'Winamp output' - стандартный метод вывода.

    Далее - настройка выходной конфигурации колонок. Это - реально присутствующие колонки, куда будут микшироваться. каналы ac3-потока. Не все конфигурации могут поддерживаться выбранным устройством вывода. Так 'Winamp output' поддерживает только подмножество возможных конфигураций и не поддерживает SPDIF. 'Direct Sound' сначала проверяет поддерживаемые конфигурации, поэтому если звуковая карта не поддерживает SPDIF вывод, то в списке его также не будет. Формат колонок записывается в виде передние_каналы/тыловые_каналы + сабвуфер, (SW), для некоторых конфигураций приведены общепринятые названия. Чем отличается сабвуфер и канал LFE, а также как производить настройку читайте в разделе Что такое LFE?  Режим 'Dolby Surround/ProLogic' задает режим микширования в 2 канала так, чтобы Dolby Surround/Pro Logic декодер мог выделить тыловой канал. Режим 'Dolby ProLogic II' - аналогично для декодера DPLII. Поддержка DPLII пока экспериментальна из-за отсутствия надежной информации. Режим 'SPDIF' - означает, что AC3 поток будет передаваться непосредственно на цифровой выход аудиокарты (без изменений). То есть все остальные настройки не будут действовать.

    Список выбора 'Sample format' задает выходной формат сэмпла. На настоящее время поддерживаются PCM 16, 24, 32 бит и формат с плавающей точкой. На некоторых картах некоторые форматы не поддерживаются, поэтому используйте эту опцию осторожно.

* Уровни усиления (Gains).

    Снизу посередине находятся уровни усиления.
    Master и Gain отвечают за общий уровень усиления. Master устанавливает желаемый уровень усиления. Если уровень усиления слишком высок и происходит переполнение, то текущий уровень усиления уменьшается. Текущий уровень усиления отображает Gain.

* Сжатие динамического диапазона (DRC).

    По сути, ac3 - логарифмический формат, сэмплы хранятся в формате экспоненты и мантиссы. В пересчете на нормальную битность один сэмпл может занимать до 40бит (чисто теоретически) или до 24бит (норма), что обеспечивает огромный динамический диапазон (хотя, как любил говорить великий дедушка Эйнштейн - все хорошее в этом мире относительно :-). Это означает, что тихая запись с низким уровнем при воспроизведении на 16-битной звуковой карте будет совершенно не слышна или воспроизводиться с очень низким абсолютным уровнем сигнала (=> большими искажениями). Для решения этой проблемы в ac3 существует понятие сжатия динамического диапазона. Идея заключается в том, чтобы при воспроизведении тихого звука с низким уровнем поднимать уровень до преобразования сэмпла в 16-битную форму (для громких звуков - соответственно, наоборот). В ac3 потоке передаются специальные маркеры, насколько изменять текущий уровень. Эти маркеры записываются режисером на стадии мастеринга, потому гарантируют достаточно высокое качество. Индикатор DRC level (Dynamic Range Compression level) отображает этот уровень. При помощи чекбокса Use DRC можно включать и выключать использование сжатия динамического диапазона. (конечно, все вышесказанное только приблизительное и грубое описание проблемы).

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

* Загрузка процессора (CPU usage).

    Индикатор показывает загрузку процессора декодером. В эту нагрузку также включается вся последующая обработка (если есть) до непосредственного воспроизведения.

* Индикаторы уровней (Levels).

    Правая часть - индикация уровней. Необходимо отметить, что уровни здесь - логарифмические. По входным уровням хорошо видна реальная конфигурация каналов в потоке. Так, бывает, что формат потока выставлен как 5.1, однако фактически низкочастотный канал отсутствует. (см. также Что такое LFE?). Красные индикаторы означают переполнение.

* Пресеты (Preset)

    Здесь можно загружать/записывать/удалять пресеты. Вместе с фильтром устанавливается несколько стандартных пресетов:
    При помощи конпки file можно записывать/загружать пресеты в/из файла:




Настройки микшера (Mixer)

    Вторая закладка - настройки микшера:

 

    Основной элемент этой страницы - матрица микширования. Она представлена в форме матричного умножения: S' = M S, где S = { L, C, R, SL, SR, LFE } - входной сэмпл, S' = { L', C', R', SL', SR', SW' } - выходной сэмпл.

    Более приземленно это означает, что для каждой клетки действет следующее правило: мы микширует канал заданный колонкой в канал заданный строкой с усилением заданным в клетке. Так, если мы хотим направить левый канал в правый, то мы должны поставить 1 в клетке на пересечении колонки 'L' и строки 'R'. Если мы больше не хотим слышать левый канала слева, то ставим 0 на пересечении строки и столбца 'L'. Проделав аналогичную операцию для правого тыловых каналов мы полностью поменяем местами левую и правую колонки. (Заметьте, что при этом поменяются местами строки, соответствующие левой и правой колонке).

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

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

    Столбец означает куда будет микшироваться входной канал. Так, центральный канал направляется одновременно и на левую и на правую колонку с множителем 0.7 (иначе центр идущий из двух колонок будет звучать громче, чем если бы у нас была честная третья колонка). Таким образом мы услышим центральный канал посередине между левой и правой колонками. Изменяя множитель в левом или правом выходном канале 'подвинуть' центр. Так, если поставить 1 в столбце 'С' строки 'L', то центр будет слышен громче из левого канала и будет казаться 'сдвинутым' влево.

    При включенной опции Auto matrix матрица автоматически обновляется при изменении параметров. Так, изменив уровень для центрального канала мы также увидим изменения в коэффициентах матрицы (столбец 'C').

    Для удобства на эту страницу вынесены некоторые элементы управления со страницы основных настроек, поэтому за их описанием обращайтесь в разделу Основные настройки.

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

Эквалайзер и задержки (Equalizer).



    Правая часть полностью посявящена непосредственно эквалайзеру. Что все это означает и так очвидно, посему не буду утомлять себя описанием ;-).

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

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

    Для удобства, можно указывать расстояние до колонок. В этом случае положительное значение задает 'отрицательную' задержку, чтобы удаленная колонка начала воспроизводить звук раньше. Отрицательные значения означают положительную задержку воспроизведения канала.



Что такое LFE?


    Первое, что необходимо отметить - LFE это не то же самое, что сабвуфер! И то, что 5.1 в случае с AC3 это совсем не те же самые 5.1 акустической системы. Поэтому начнем с рассмотрения этой разницы.

    Формат AC3 создавался для кинотеатров, а совсем не для компьютера. А в кинотеатрах акустика вполне адекватно может воспроизвадить низкие частоты. LFE же был задуман как канал для мощных низкочастотных эффектов, то есть эффектов, с которыми обычная акустика уже не может справиться. Чтобы стены тряслись, народ вопил от ужаса, а слабонервные барышни падали в обморок. Таким образом все каналы ac3-кодированного потока содержат низкие частоты, и только иногда (в особо взрывоопасные моменты) в работу вступает канал LFE и только для того, чтобы помочь основной акустике потрясать стены. Вполне может случиться так, что канал LFE вообще не включится ни разу за весь фильм. И это также будет нормальным.

    У компьютерной же акустики совсем другая специфика. Большинство современных компьютерных 5.1 наборов просто не в состоянии воспроизвести низкие частоты через сателлиты. То есть саб должен полностью отвечать за воспроизведение низких частот.

    Таким образом если мы подключим 5.1 акустику, и станем смотреть фильм с 5.1 зауковой дорожкой назначив канал LFE на сабвуфер, то мы рискуем не услышать низких частот вообще!

    Поэтому, если акустическая система имеет отдельный сабвуфер крайне рекомендуется перенаправлять туда басы со всех каналов (т.к. низкочастотная информация содержится во всех каналах). Т.е. включить опцию Bass redirection в настройках фильтра. Либо использовать аналогичную опцию в настройках драйвера звуковой карты, если там такая опция есть, а опцию фильтра выключить. Многие могут возразить - "А как же правильное воспроизведение?". Сомневающихся отправляю к документу (http://www.dolby.com/tech/c.in.0011.LFE.pdf), где разъясняется роль LFE и саба при воспроизведении звука.



Рецепты.

Микшируем LFE.

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

Меняем местами колонки.

    Для понимания этого раздела рекомендуется внимательно прочитать раздел Настройки микшера (в части описания работы матрицы).

    Вы хотите получить полноценный центральный канал на карте, не поддерживающей только 4 канала? Это возможно. Но для этого придется пожертвовать одним из задних каналов. Т.е. из конфигурации 2/2 (два передних канала, два занних) будем делать 3/1 (три передних, один задний). Для этого:

Максимальная громкость

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

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

    Основных методов борьбы с переполнением реализовано три:

    Самый простой метод поднять громкость - это выключить автоматическую регулировку усиления (Auto gain control) и поднять уровень усиления Master. В этом случае переполнение будет просто обрезаться. Этот метод подходит только для того, чтобы слушать на максимальной громкости в ущерб качеству.

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

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

    Следующее, что можно сделать - при поднятом уровне Master включить сжатие динамического диапазона (Use DRC, см раздел Основные настройки). Текущий уровень усиления отображается на соответствующем индикаторе. На громких сценах он должен уменьшаться, а на тихих увеличиваться. Может оказаться, что DRC задает слишком малое усиление, поэтому можно увеличить эффект уровнем DRC Level.  Подбирать этот уровень нужно исходя из того, чтобы скачки громкости, вызванные работой самого DRC и блоком управления  усилением были минимальны при максимальном уровне самого звука. Понятно, что при увеличении эффекта DRC скачки грмкости становятся более заметными. Однако, таким образом можно добиться четкого звучания самых тихих звуков (разумеется из тех, которые посчитал важными звукорежиссер), и избавиться от скачков громкости автоматической регулировки усиления. Например, отчетливо разбирать речь на фоне шумных сцен (взрывы, стрельба). Как вариант - можно вообще выключить автоматическую регулировку усиления. В этом случае баланс нужно выбирать между громкостью Master, скачками громкости DRC и ухудшением качества из-за обрезания сигнала.

    Т.о. следующие параметры влияют на громкость и четкость тихих звуков: Master, Auto gain control, Normalize, Use DRC, DRC Level. Подбор этих параметров должен производиться исключительно индивидуально - в зависимости от типа акустической системы (высококлассная АС, или пассивные колонки), восприятия самого слушателя (некоторых раздражают скачки громкости, другим же болше важно слышать, что говорят), и фильма (ленивый звукорежиссер не проставил метки DRC в звуковом потоке ;-).



Реестр и файлы конфигурации

    Фильтр сохраняет свои настройки в разделе реестра: [HKEY_CURRENT_USER\Software\WinampAC3]. Все настройки фильтра разделены на 4 части: общие, матрица, эквалайзер, задержки. Каждая из частей сохраняется в отдельной ветке. Кажая часть настроек формирует свои пресеты. Т.е. возможно несколько эквалайзеров или матриц. Особое назначение имеет пресет '_default'. При загрузке фильтра загружаются все '_default' пресеты (общие настройки, матрица, эквалайзер и задержки) и сохраняются там же при выгрузке.

    Файлы конфигурации также разделены на несколько частей, каждая из которых содержит тот же набор настроек, что и ветки реестра.

    Все уровни храняться в реестре в виде коэффициентов (не в dB).
    Все значения с плавающей точкой сохраняются в реестре в виде значений 'REG_SZ'.
    Значения 'bool' записываются как целые в реестр и как 'true'/'false' значения в файл конфигурации.

    Как часть исени некоторых настроек используются следующие сокращения имен каналов:
Сокращение
Значение
L
Передний левый
C
Центральный
R
Передний правый
SL
Левый тыл
SR
Правый тыл
LFE
Канал LFE или
сабвуфер

Пресеты

    Ключи реестра:

Матрицы микширования.

    Ключи матрицы именуются следующим образом: [from_channel]_[to_channel], где канал from_channel микшируется в канал to_channel, с коэффициентом, указанным в ключе.



Разное.

    Фильтр был основан на OpenSource библиотеке LibA/52 (http://liba52.sourceforge.net) и во многом наследует его свойства. Многое было переписано, но основные положительные свойства я старался сохранить. Можно отметить очень высокое качество этой библиотеки, и весьма последовательное следование стандарту (http://www.atsc.org/standards/a_52a.pdf). Благодарности Aaron Holtzman и Michel Lespinasse за нее.
   
    Хочу отдельно поблагодарить Марселло Мота (Marcello Mota) за моральную поддержку и огромную помощь в тяжком деле тестирования и отладки.
    Огромная благодарность Gabest за поддержку проигрывания DVD.
    Fank'у (форум doom9) за матрицу микширования Dolby ProLogic II.
    Участникам формумов Doom9 и iXBT, а также из создателям.
    А также всем остальным, без чьей помощи этот проект не был бы таким какой он есть.



Условия распространения.

    Даный программный продукт распространяется под лицензией GNU General Public Licence v2, текст которой прилагается в файле GNU_eng.txt - на английском языке и GNU_rus.txt - на русском языке. Вариант на русском языке прилагается только в справочных целях, поэтому при всех возможных разночтениях приоритет имеет версия на английском языке.

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

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



Связь с автором.

    По всем вопросам, связанным с программой просьба писать по адресу: под заголовком 'WinampAC3'. Большая просьба сообщать обо всех ошибках в программе, и крайне желательно приводить следующую информацию:
    Это поможет мне в исправлении ошибки. Послания типа 'У меня ничего не работает. Что делать?' без подробного описания что и как делалось будут игнорироваться.



Changelog.

0.60b - 01.09.2003
  * Все переписано
  * Основан на библиотеке AC3Filter v0.70b
  + Собственный вывод звука
  + Поддержка SPDIF (экспериментальная)
  + Переключение конфигурации колонок на лету
  + Поддержка файлов с обратным порядком байтов
    (может проигрывать файлы с AC3-Audio CD)

0.5b - 27.11.2002
  + Поддержка многоканального вывода.
  + Исправлено: щелчки при переполнении.

0.4b - 25.11.2002
  - Элементы управления 'Expand stereo' и 'Voice control'.
    убраны (подразумевается, что всегда включено).
  * Исправлен баг с микширование.

0.3b - 21.11.2002
  + Индикатор CPU usage заработал.
  + Добавлена поддержка PES.
  + Добавлена информация о файле (Alt-3).
  * Исправлено: однопроходная нормализация не работала.

0.2a - 20.11.2002
  * Все переписано :)
  + Добавлен диалог конфигурации.
  + Настройки записывается в реестре.

0.1a - 30.10.2002
  * первая рабочая альфа




Полезные ссылки.

Сайт AC3Filter (rus+eng): (http://xvalex.hotbox.ru/programs/ac3filter)
Сайт AC3Filter (rus+eng): (http://ac3filter.sourceforge.net)
Сайт AC3 декодера для Winamp (rus+eng): (http://xvalex.hotbox.ru/programs/winampac3)
Сайт AC3 декодера для Winamp (rus+eng): (http://winampac3.sourceforge.net)

Стандарт A/52a (AC3) (eng): (http://www.atsc.org/standards/a_52a.pdf).
Разъяснения Dolby по поводу LFE (eng): (http://www.dolby.com/tech/c.in.0011.LFE.pdf)
Библиотека LibA52 (бывший ac3dec) (eng): (http://liba52.sourceforge.net).
Многоканальное воспроизведение под Windows (eng): (http://www.microsoft.com/hwdev/tech/audio/multichaudP.asp)
Просто полезный сайт по видео (eng): (http://www.doom9.org).


Copyright (c) 2002-2003 by Alexander Vigovsky.
Last updated 02.09.2003