Hard & Soft MPEG аудио, или Что общего у WinAmp и Quake
АрхивСтандартизация - одно из величайших направлений технической мысли. Так же, как в былые времена требовалась одинаковая нарезка винтов и гаек, сейчас стремительная информатизация всех аспектов общества делает необходимым определение общих принципов работы с всевозможными данными. В конце 80-х у персональных компьютеров появилась реальная возможность обработки изображений и звука, качественно сравнимых с существовавшими аналоговыми примерами. Со временем невероятная точность цифровой записи нашла широчайшее применение, сделав высококачественные звуковые и видеосистемы доступными для каждого. Вряд ли на планете Земля еще остались люди, никогда не видевшие сочетания четырех букв - MPEG. В январе 1988 года Международная организация стандартов (International Standards Organization) сформировала MPEG (Moving Pictures Coding Expert Group) с целью "разработки стандартов закодированной репрезентации подвижных изображений, звука, и их комбинации". На первом съезде MPEG в мае 88-го присутствовало всего 25 человек, сейчас членами комитета являются более трехсот экспертов из примерно двухсот коммерческих и исследовательских организаций двадцати различных стран. Процесс утверждения стандарта MPEG чрезвычайно сложен и надежен, разработка и обязательное целевое тестирование занимает не менее года, контролируется и документируется на всех возможных уровнях. Существующие комплекты аудио- и видеостандартов MPEG-1 и MPEG-2 защищены множеством международных патентов. В общем, организация серьезная, и ее рекомендации пользуются широкой поддержкой в техническом сообществе. Давайте познакомимся с аудиоалгоритмами, популярными сегодня.
Прежде чем разбираться в конкретных методах кодировки MPEG, следует осмыслить центральный тезис их разработки. Одним из неприятнейших атрибутов оцифрованной напрямую аудио- и видеоинформации является ее размер. Например, CD-качество звука в некодированном формате достигается при стерео записи на частоте 44,1 кГц и 16-битной точности звука, то есть 44100х16х2=1411,2 Кбит/с, или 176,4 Кбайт/с. Такой способ можно назвать абсолютной кодировкой, он сохраняет малейшие вариации звука, все спрятанные шумы слышимой полифонии. Такой формат необходим на ранних стадиях оцифровки, когда важно уравновесить баланс звучания записи, оттенить незаметное, сгладить неприятные изъяны, перенесенные с оригинала и появившиеся в процессе переноса в компьютер. Абсолютная кодировка прекрасно подходит для обработки алгоритмами, однако финальная версия звукозаписи, как правило, предназначена для человека, чей слуховой аппарат не способен воспринимать звук с такой точностью. Именно вокруг принципа кодирования воспринимаемого звучания построены аудиоформаты, предложенные в рамках MPEG-1 и MPEG-2.
Учитывая многоцелевое предназначение, каждый комплект включает три алгоритма различной сложности, называемые layer-I, layer-II, и layer-III; все три уровня кодируют воспринимаемое аудио, причем общая структура процесса кодировки одинакова. Входящий абсолютный аудиосигнал разделяется на два одинаковых потока. Один поток направляется во встроенную биоакустическую модель. Сначала представленный спектр частот очищается от заведомо неслышных компонентов - как правило, это совсем низкие басовые шумы. Затем производится более сложный анализ звучания слышимой части сигнала; основываясь на известных принципах работы слухового аппарата, вычисляются маскированные частоты, заглушенные в анализируемой части сигнала. Таким образом можно исключить до 70% информации из сигнала, не повлияв на его звучание. Затем, расчленив дублированный входящий сигнал на спектральные компоненты, компрессор пытается составить аудио бит-поток, используя предсказания биоакустической модели и некоторые другие ухищрения. Во-первых, сигнал анализируется на предсказуемость. Большинство существующих алгоритмов для кодировки человеческого голоса основано на высокой степени предсказуемости такого сигнала - универсальные алгоритмы MPEG с переменным успехом пытаются применить этот прием. Затем, если входящий сигнал - стерео, можно преобразовать его в так называемый совмещенный стерео. Известно, что слуховой аппарат человека может определить направление лишь средних частот - высокие и низкие звучат как бы отдельно от источника. Значит, эти фоновые частоты можно кодировать в моно сигнал. Кроме всего этого, на предпоследней стадии кодировки появляется одно из отличающих свойств бит-потоков MPEG - переменная сложность. К примеру, если в правом канале какое-то время полная тишина, это "зарезервированное" место используется для повышения качества левого канала или туда впихиваются необходимые биты, не влезшие в поток чуть раньше. В результате у нас получается порядочно компрессированный поток. Но исключение маскированных частот, прекрасно работающее на сложных полифонических промежутках, ничего не может сделать на более-менее однотонном сигнале. Поэтому помимо биоакустического анализа почти готовый бит-поток компрессируется упрощенным аналогом алгоритма Хаффмана (Huffman), схожего с обычными файл-компрессорами. Так восполняются недостатки маскировки на трудных местах, причем обычно этот добавочный процесс дает почти 20-процентное сокращение.
MPEG-1 аудио поддерживает кодирование на 32, 44,1 и 48 кГц. Layer-I сохраняет CD-качество при 384 кбит/с, то есть даже на простейшем уровне происходит почти 4-кратное сокращение. CD-качество с layer-II обеспечивается примерно на 192 кбит/с, а с layer-III уже всего лишь 112 кбит/с. Layer-I, предназначенный для скоростной записи (цифровые аудиокассеты), выезжает на чистом биоакустическом анализе. Layer-II активно использует фактор предсказуемости и эксплуатирует различные стерео эффекты. И, наконец, в Layer-III в 18 раз выше точность акустической модели, оптимизировано "присвоение" свободных битов в потоке и обязательно производится хаффман-компрессия. Низший предел сложности потока в MPEG-1 - 32 кбит/с. Естественно, layer-III гораздо лучше сохраняет звучание при таких параметрах.
MPEG-2 аудио оптимизировано для низких пропускных способностей, более простых бит-потоков. Частоты кодирования ополовинены - 16, 22,05 и 24 кГц. Низший предел сложности - всего лишь 8 Кбит/с. Здесь впервые реализована возможность кодировки до пяти каналов (Surround Sound), которые при надобности можно благополучно соединить обратно в обычный стерео. Исключительно для кодировки простейших потоков один из главных разработчиков MPEG-стандартов, немецкий Fraunhofer Gesellschaft IIS, предлагает модифицированный MPEG-2, применяющий частоты 8, 11,025 и 12 кГц. Пробы показывают, что 8-килобитный моно поток layer-III звучит лучше на 8 кГц, чем на 16.
Layer-III
Качество звука | Ширина канала | Режим | Bitrate (Kbps) | Степень компрессии |
Телефонная линия | 2,5 | моно | 8 | 96:1 |
лучше, чем LW радио | 4,5 | моно | 16 | 48:1 |
лучше, чем AM радио | 7,5 | моно | 32 | 24:1 |
FM радио | 11 | стерео | 56~64 | 26~24:1 | почти CD | 15 | стерео | 96 | 16:1 |
CD-качество | 15 | стерео | 112~128 | 14~12:1 |
Ну как, понравилось? Вы уже возненавидели 70-мегабайтные wav-монстры, жрущие ваш HDD? Конечно, программы, кодирующие MPEG, не распространяются бесплатно, но для заинтересованных рекомендую начать ваши изыскания с shareware утилиты Sound Limit 1.0. Программа почти неизвестна в России, но ее легко можно найти в Сети. Регистрация заметно повышает скорость кодировки, но и в привычном unregistered доступны все радости Layer-I, Layer-II, и Layer-III. В MPEG-файлы можно вставлять хедеры, содержащие различную информацию о закодированном аудио. Многие из вас, вероятно, смутно ассоциируют MPEG с фирмой Xing Technologies и ее популярным проигрывателем. Она также выпустила Xing MPEG Encoder, способный кодировать, но только, к сожалению, Layer-II, и делать это очень быстро, за приличные деньги, конечно. И, наконец, в Fraunhofer IIS разработан L3Enc, выдающий только Layer-III, мощную профессиональную программу, которая хотя и требует регистрации, но прекрасно функционирует в урезанном виде. От пользователя реально зависит лишь выбор сложности потока - программа сама выбирает оптимальные настройки для данной ситуации. Досадным недостатком является отсутствие графической версии, но, в то же время, существуют версии для Linux и др. платформ. Следует заметить, что Microsoft, возможно, случайно, но все же сделала нам подарок. Ее NetMeeting автоматически инсталлирует ограниченную, но полностью 32-битную, а значит, ускоренную версию кодека Fraunhofer, что делает Layer-III доступным для всех аудиопрограмм в Windows, даже Sound Recorder.
Для прослушивания ваших шедевров во всей красе вам понадобится как минимум Pentium 133 и программа-проигрыватель. Не думаю, что имеет смысл описывать несколько таких программ. Самым популярным проигрывателем .mp3 файлов для платформы PC на данный момент является WinAmp фирмы Nullsoft - поистине произведение искусства! Даже если вы уже (не дай Бог, конечно) слушаете .mp3 файлы, используя что-то другое, рекомендую побыстрее скачать себе эту классную шнягу с www.winamp.com, не пожалеете. Чем же интересен этот плеер? В первую очередь тем, что он непревзойденно играет все аудиофайлы стандарта MPEG-1, поддерживает проигрывание файла по мере его скачивания из Сети (streaming), имеет удобный и интересный интерфейс (об этом дальше), построен по принципу конструктора. Дальше мы описываем версию 1.9, хотя пока рекомендовали бы версию 1.81, которая появилась всего недели на две раньше v1.9, почти не содержит ошибок и отличается только тем, что не поддерживает .mod файлы. Программа предоставляет пользователю огромное количество настроек, описывать которые здесь не имеет смысла. Скажу только, что их больше, чем в других подобных продуктах. В последней версии, в отличие от предыдущих, наряду с plug-in'ами для визуализации (таких сейчас очень много), обработки звука и так называемыми общими plug-in'ами появились input plug-in'ы. В стандартную комплектацию WinAmp v1.9 входят два таких plug-in'а. Один - для проигрывания .mp3, другой - .mod файлов. В ближайшем будущем планируется серьезное расширение этого списка. Отдельно следует сказать о внешнем виде WinAmp'а. До недавнего времени в некоторых кругах велись жаркие споры относительно его "биологического" интерфейса. Некоторым он очень нравился, другие его ненавидели. Будучи сторонниками вторых, мы очень обрадовались появившейся в старших версиях (примерно с v1.8) возможности менять так называемые скины (чувствуется что-то знакомое?). Делается это простым нажатием комбинации Alt+s, после чего в появившемся окне (если, конечно, у вас в директории winamp\skins что-то есть) двойным щелчком выбирается нужное название. Уже сейчас на официальном сайте представлено около десяти экспериментальных скинов, ну а на просторах Интернета… Вам не нравится ни один из существующих скинов? - не беда, нарисуйте свой собственный. Скин - это простой набор .bmp файлов, которые легко подвергаются редактированию.
В последнее время ведется несколько новых разработок в области MPEG-стандартов. Сейчас мы часто видим диски с полной дискографией различных групп - собрания MPEG-файлов. В Сети можно спокойно найти Layer-III файлы популярной музыки совершенно бесплатно. В будущем предполагается применение общей схемы защиты авторских прав, порой, ущемленных свободным тиражированием электронного аудио. Возможно, она будет основана на "умном" шифровании потока, понижающем качество, если не введен пароль. Подобное решение уже было продемонстрировано в Германии в прототипе системы audio-on-demand. Также, на базе Layer-3 и новейшей видеоконцепции планируется создание стандарта MPEG-4, который должен стать базовым для цифрового телевидения. Предварительная версия аудиокодека названа AAC (Advanced Audio Coding), она уже проходит тестирование. Говорят, что CD-качество достигается всего при 96 кбит/с!
По мере распространения .mp3 файлов, стало достаточно популярно хранить и переносить их на Zip-дисках (не говоря уже о разных CD-R и CD-RW). Действительно, на один такой диск влезает почти 70 минут аудиоинформации, записанной на 256 Kbps (степень сжатия .wav файла ~6-7 раз). Для сохранения CD-качества обычно достаточно 128 Kbps (12-14 раз!). Теперь задумайтесь, не появлялось ли у вас вопроса относительно того, почему почти ничего не слышно о hardware .mp3 плеерах (устройствах наподобие аудиоплееров). Спешу вас обрадовать, такие устройства уже существуют! На данный момент ведутся работы над тремя проектами. На самом известном из них - MPman от SIS, точной копией которого является MPStation от DigitalCast, останавливаться не будем, так как о нем уже рассказывали на страницах "Компьютерры" (номер от 20.04.98). Все три плеера должны появится на рынке в конце лета/начале осени этого года. Два устройства предназначены для прослушивания .mp3 файлов "на улице", третье же предназначено для установки в автомобиле. Их можно разделить по принципу хранения данных - флэш, жесткие диски PC-card type I и II, другое и способу расшифровки .mp3 файлов - специальный процессор, предназначенный только для этих целей, или любой достаточно мощный RISC-процессор с низким энергопотреблением, например, из NEC'овской серии Vr4xxx, которые ставят в карманные компьютеры (если в первом случае для построения системы хватит 2-3 чипов, то во втором случае их количество возрастает до 4-5).
Наиболее интересным плеером, на мой взгляд, является разработка фирм Pontis и Siemens с интригующим названием Mplayer3. В качестве носителя в нем используются две карточки MMC (MultiMedia Card), которые можно вставлять в плеер в любых комбинациях. MMC - одна из разновидностей флэшей, активно продвигаемая Siemens в качестве стандарта для применения в цифровых камерах и т. д. На сегодня доступны только 10-мегабайтные карточки, но в ближайшем будущем появятся 15- и 30-мегабайтные. Вес устройства - всего 170 грамм, питается от двух AA батареек (8 часов работы). Подключается к компьютеру через последовательный или USB (наконец-то!!!) интерфейсы. Вибрация никак не влияет на это устройство, в нем нет движущихся частей, так что использовать его можно в любых условиях.
Следующие два устройства представлены одной фирмой MichaelLY. Это предназначенный для автомобилей MEPAS 072 Nile, и компактный MEPAS 071 Tigris. В них обоих используется программный метод декодирования .mp3 на мощных процессорах NEC. В качестве носителей для первого предполагается использование практически всех популярных сегодня устройств: Iomega Zip, CD-ROM, DAT, DVD. Второй будет использовать в качестве стандартных носителей диски Iomega Click! и дополнительно будет иметь вход для подключения внешних Zip и CD-ROM дисководов. При разработке этих моделей закладывается возможность легкого и дешевого апгрейда для проигрывания будущих .mp4 файлов.
Если вас заинтересовало все это, наберите в любой поисковой системе "mp3" и посмотрите, что она вам выдаст. Творческих вам успехов!