Персональный проект Александра Чижова, Иркутск 1998-2006Компьютерный журнал Cooler | скачать новые компьютерные игры | гаджеты | астрономия | обзоры программиста System's temperature
recent issueaboutarchiveLive TAMrubricatorlinksBooks digest
Компьютерный журнал "Cooler" Александра Чижова (Иркутск)
15 января 2000

N141

ePAC (perceptual audio coding) - метод перцептуального (perceptual - восприятие) кодирования от Lucent (вообще, у Люцента огромные наработки в психофизике звука и компресии. За счет этого фирма имеет стартовое преимущество в разработке стандарта). Методов кодирования на сей день великое множество. Пока вышли в финал и "бьются" два монстра - mpeg layer-3 и AAC (advanced audio coding). Яркие представители mpeg - кодер LAME с VBR и классика - mpeg layer-3 audio codec от Fraunhofer-Gesellschaft. От AAC самый поддерживаемый и наиболее раскрученный - LIQUID audio codec. В плане качества, разумеется, тоже. Хотя, WMA (от Microsoft) его тоже подпирает - надо думать, microsoft своему детищу не даст остаться в хвосте.

Но mp3 и WMA сильно давят liquid и пр. в плане открытости формата - неимоверное количество проигрывателей (железных тоже) поддерживают mpeg layer-3 (часто уже вместе с wma), а насчет liquid'a я такого сказать не могу. Видимо, 30% выйгрыш в объеме не пересилит такой "недостаток" liquid, как поддержка разнообразной коммерции прямо в треке. LIQUID надо сказать, поздно спохватился, надо было раньше кооперироваться с нульсофтом... впрочем, о ликвиде я еще поговорю здесь попозже.

Итак - PAC. На оригинальном сервере audioveda кроме официальной информации можно пока скачать только бета-версию интегрированного продукта (все-в-одном) - этакий jukebox по типу MusicMatch.

AudioVeda 2.0 beta

Хочу отметить, что созданные треки (расширение .EPC) пока ничем, кроме как родным проигрывателем не играются. Делаются они этой же самой программой. Вообще, интерфейс сего продукта настолько непродуман, что может вызвать неврастению. Более дурацкого представления о способе мышления пользователей я от разработчиков не ожидал. Да и версия программы настолько _бета_, что после кодирования одного трека отдельно, приходится перезапускать программу, чтобы она нормально смогла закодировать следующий. Ладно, оставим все это на совести разработчиков, перейдем к сравнительному анализу.

С чем будем сравнивать? Я немного забегу вперед и скажу, что ePAC оказался лучше, чем mp3 на одинаковых битрейтах. PAC как кодек, является основой для MPEG-2 advanced audio coder (AAC). Остальные AAC кодеки основываются на самой идее PAC. И идея mpeg layer-3, разумеется, тоже.

Задача какая? Уменьшить размер, не потерять качество. Или скажем так, качество должно быть не хуже, чем у mp3 128kbps. Несколько убогая постановка задачи, но что поделаешь, 128kbps mp3 стало этаким стандартом. Пусть так.

Ранее, по моим сравнительным характеристикам, определился первый конкурент mp3,128 -Liquid audio с битрейтом 96 - он был минимум _не хуже_ на этом битрейте, чем mpeg layer-3 с 128kbps.

При каких условиях PAC должен победить Liquid? По логике - при том же качестве на меньших битрейтах. Тогда это должны быть битрейты ниже 96kbps.

Посылку я сделал. Т.е. сравнивать стоит Liquid,96kbps и ePAC,64kbps. Если ePAC окажется лучше, тогда мы имеем шанс схватить компрессию 1:22-1:24 при том же качестве, что и у mp3 или у LQT. Т.е. выйгрыш по сравнению с mp3 будет ровно в два раза (неточная цифра, так как PAC изначально кодирует с VBR - это конечно, хорошо). Если окажется, что ePAC с 64kbps хуже, чем LIQUID с 96kbps, а на одинаковых битрейтах они будут сравнимы - тогда, конкуренция пойдет только путем маркетинговых ходов компаний - им нечего будет противопоставить в плане технологии. Другими словами, им нельзя будет кричать что-то типа "а у нас при меньших битрейтах качество лучше!".

Первое - надо "для порядку" поглядеть АЧХ - пусть почти бесполезный прием, но все помнят случай с XING - тот тупо резал после 16кГц, в чем и был уличен. Я графики этого теста приводить не буду, скажу лишь, что все прошло оk. Как проверялось: программу AudioVeda мне не удалось заставить играть WAV файлы, так же, как и преобразовать .epc обратно. Ну, все равно пришлось идти другим и более правильным путем - есть прекрасная вещь - TotalRecorder (анонс в номере от 30 окт. 1999), который "хватает" чистый поток к карточке. Проигрыватели, разумеется, могут там чего-то подправлять в плане улучшения звучания - но, тут уж ничего не поделаешь, да и это не так важно - все равно, сравнение будет субъективное.

Итак, я записал поток от Liquid audioplayer и от AudioVeda. Получил два файла. Их и прогнал на SpectraLab. Одним из тестируемых был файлик, который изначально был записан с потерей высоких частот - с ним получилась интересная штука!

Spectral analyzis

Заметьте, что спектр "чистого" (pure) сигнала завалился на 16кГц - ну, он в оригинале такой, а эти оба друга его при кодировании подняли (!). Что ePAC, что Liquid. Наводит на размышления...

Ладно, это мелочи. Разумеется, я попробовал еще один тест, на котором в свое время прокололся voxware codec - вроде бы всем был хорош, но, видимо, он в самом деле пошел от VQF и перенял у него дурную черту - вставлять в музыку посторонние звуки. Наиболее показательный кусок я уже выкладывал (270kb, asf, voxware). Итак, посторонних звуков у ePAC я не обнаружил.

Для субъективной проверки я выбрал композицию Грига "Танец Анитры". Мне трудно было уловить разницу между LQT 96kbps и ePAC 64kbps (но она была - это точно), поэтому я дал послушать профессиональному музыканту, который тут же определил различия - в случае с ePAC 64kbps звук был более "ватным" что-ли. В общем, однозначно, хуже. Качество ePAC 96kbps и Liquid 96kbps было уже неразличимо.

Поддерживаемые битрейты PAC (в kbps): 160, 128, 96, 80, 64, 56, 40. Последние четыре - уже только с даунсэмплингом. Собственно, у LQT так же.

Выводы: ePAC практически идентичен Liquid audio. Что использовать - дело каждого. Замечу лишь, что Liquid недавно (лучше поздно чем никогда) все-таки с кем-то скооперировался и всеми ожидаемый нормальный плагин к winamp уже на горизонте. Существующий плагин меня, в принципе, устраивает и так, но все-таки, он "левый" и не такой полный, как хотелось бы. Хотя, перемотка есть, играет нормально.

Посмотрим, как будет развиваться у ePAC софтовая часть. Если так же, как и существующая прилада (иначе назвать невозможно), то ну его нафиг :)

Для сравнения я выложу именно в 96kbps _оба_, для того чтобы можно было убедиться, что различий нет:
Григ "Танец Анитры" 96kbps, ePAC, 44100Hz, 16bit, stereo
Григ "Танец Анитры" 96kbps, LIQUID, 44100Hz, 16bit, stereo

(размер каждого - 2.5Мб)

Скачать программу для работы с ePAC можно у меня (3.8Mb, v2.0, beta)

 

 

Как-то я упустил описать версию KPT3. Теперь восполню этот пробел. "Для комплекту", так сказать.

Там есть кое-какие неплохие эффекты, которые могут пригодиться.

Tiling. Два вида - "перспективная" плоскость и размножение картинки.

Page Curl - известный старый эффект - из рисунка видно, что делает. Делает не очень правильно. Ожидалось, что он будет по натуральному заворачивать лист - на самом деле, лишь накладывает сверху подобие прозрачной пленки с рисунком.

Spheroid designer - наиболее приличный из всех эффектов KPT3 в плане новизны и полезности. Делает сферические искажения оригинального рисунка. Настроек, как всегда, хватает по уши.

Всего эффектов в наборе - 19.

Весь пакет KPT3 лежит у меня. (4.2Mb)

 

"Записки флэшера"

предыдущие части цикла - в номерах за 5-е, 7-е и 11-е января.

Flash 4 logoТретий тип - runnable, callable - тип MovieClip. Наиполезнейшая вещь, надо сказать. По сути дела - полноценнейший time-line, именованный для возможности управления им и для осуществления обмена данными с ним. Тут я на минуту отойду в сторону и лишний раз скажу о том, что Flash стал наконец-то программируемым в настоящем смысле этого слова - в нем можно создавать переменные и конструкции, вычисляющие и принимающие решения. Также, существуют средства для управления элементами в сцене, как несложно догадаться, касается это только movieclip'ов (буду звать их просто clip'ами) - только благодаря наличию у них имени.

На самом деле, абсолютно необязательно давать clip'у имя, если вы не намерены им управлять извне, сам же clip управляет процессами внутри себя при обращении к встроенной переменной _target в программном коде - Flash инициализирует эту переменную специальным образом, как - поясню позже. Во всех других случаях, уникальное имя вам просто необходимо, иначе начнется полная неразбериха - если точнее - управлению (извне) будет поддаваться только тот clip с дублирующимся именем, созданный в среде хронологически ранее. Важно то, что имена clip'ов никуда после компиляции не деваются и тем или иным способом их можно использовать и _после_ компиляции. То же касается и переменных. (надо оговориться, что "компиляция" - здесь понятие весьма условное - это переработка в потоковый формат, оптимзированный для наискорейшей пердачи, естественно, что _сам_ swf ролик никак не выполняется, а интерпретируется средой ActiveX или NN-plugin, или Projector, или Xtra-модуль (хотя, что сейчас есть компиляция, а что - интерпретация - вопрос спорный уже давно).

От этого плавно перейдем к рассмотрению понятия time-line как это есть во Flash. Я уже говорил, что любой символ - это определение time-line. Как трактуется она в случае, когда символ - Graphics я долго и нудно расписывал выше. Насчет Button достаточно внятно расписано в Lessons [они встроены в сам Flash4] (мое настоятельное пожелание всем хорошенько, не пропуская ни одного пункта их проработать), и повторяться я не буду, добавлю лишь, что большим открытием может стать то, что в кадрах-состояниях самой кнопки превосходно живут и работают clip'ы, да и вложенные кнопки тоже (лишь бы hit'ы не пересекались, а то будет бардак), пременные и т.п., другое дело, что насколько это вам нужно?

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

Так же, главную time-line стоит рассматривать в любом из clip'ов - она будет выполняться совершенно самостоятельно, процессы, которые будут происходить в ней ничем не будут отличаться от процессов "наверху" и имеют такую же свободу действий - единственное ограничение - скорость проигрывания наследуется. И, естественно, область видимости (существования, если правильнее) так же железно определяется состоянием родительской time-line. Все. Что бы у вас ни происходило в другом месте, если это никак напрямую clip'а не касается, он будет себе выполняться, пока весь мировой запас электричества не исчерпается.

Вся эта лирика проясняется при знакомстве с одной единственной командой программирования Flash - LoadMovie - при детальном рассмотрении выясняется, что она позволяет загрузить другой ролик swf на любой слой либо в _любой_ именованый clip (он зовется target'ом, и я не раз еще воспользуюсь этим обозначением). Слой, упомянутый выше - это swf-слой, а не слой в исходнике! Если кто не подозревает о таком чуде: Flash - это среда, которая способна пригрывать контент на 256 слоях, на которые можно в произвольном порядке загрузить любые swf-ролики. Изначально она грузит ролик на слой 0, и в соответствии с параметрами этого ролика устанавливает частоту кадров и цвет фона (загрузка нового ролика на 0-й слой поменяет эти параметры). Остальные 255 роликов будут использовать эти параметры (естественно предположить, что фон их будет прозрачным, некоторая аналогия со слоями в авторской среде наблюдается). Напомню, что имена каждого - "_levelX", где Х - сами понимаете что :). Вообще, адресация clip'ов в среде (не только в единичном ролике) - интересный и важный вопрос и я рассмотрю его специально. В имени clip'а могут применяться цифры и латинские буквы. Менее очевидно то, что руские буквы там тоже можно использовать, и еще более удивителен тот факт, что многие из специальных знаков также вполне можно использовать в именах clip'ов.

Из высказанного ранее утверждения об аналогичности свойств всех time-line легко можно предположить, что в clip'e легко может содержаться "вмурованный" (унаследованный) именованный clip, и, честно сказать, процесс этот может происходить до бесконечности, равной в нашем случае 256-ти (что в общем-то непринципиально :). Адресация выглядит как "_levelX/AAA/BBB/CCC/XXX/YYY" - начиная со слоя и вглубь по именам родительских clip'ов и оканчивая собственным именем в самом глубоком родительском clip'e. Если хоть какой-то из родителей не проименован, управлять клипом с этого уровня нельзя, и начиная с этого уровная все дела в clip'e, оставшемся без имени (или с именем, непригодным для работы - дублирующим уже созданный ранее clip, или какой еще сбой - Flash, честно говоря полон загадок в некоторых местах) - все процессы пойдут самотеком. Если говорить точнее, то каждый неименованный родитель именуется следующей нотации: "instanceX", Х - тот же. Flash просматривает все clip'ы в порядке их создания и дает по мере проникновения вглубь неименованным clip'ам такие имена, что, при неизвестности их заранее, равносильно тому, что он их просто не дает.

Существенное дополнение к сказанному. Конструкция вида "../a" - из текущей time-line адресуется к clip'у "a" родительской time-line. В принципе, можно адресоваться и к "теткам и дядькам" - "../../XYZ" и т.д...

Kunck (e-mail)

продолжение следует

 

Это мода такая, что ли? Посты свои передавать в предверии нового тысячелетия?

"Наш общий друг" Билл наверное, сильно обеспокоен состоянием дел в его компании, а конкретно - в отделе разработки программных средств, если он уходит возглавлять подразделение, занимающееся чисто программированием (видать линукс сильно его поджимает... а кстати, почему на серверах download.microsoft.com апач крутится?). С чего и начинал. Хотя, о передаче поста главы компании Microsoft давно поговаривали и кандидат был известен - Стив Балмер. Хотя, конечно, он так и останется управляющим - все равно, все экономические рычаги будут в руках Гейтса.

Так что, претензии по поводу софта все равно будем направлять тому же лицу - теперь даже и в большем праве, чем раньше - "главный архитектор программного обеспечения" - это он сам себе такую должность придумал. А че - нормально :)

 

One LIQUID file

Grieg "Anitra's Dance" (2.5Mb, 3.33 min) 96kbps, 16bit, stereo, 44.1kHz, Liquid

 

grabbed with WinDac, encoded by LiquifierPro

 

Программный микшер "RADUGA" - выложил 3-ю версию. Кряк прилагается. Единственное , что снимает кряк - только ограничение на 30-минутное проигрывание трека. Несколько функций остаются залоченными. Версия программы полная, так что, крякерам можно потренироваться - написать кряк, который разблокирует _все_ функции.

(Вообще, надо заметить, что RADUGA удобнее в использовании, чем BPM studio, а в следующей версии разработчиками обещана поддержка winamp и DirectX плагинов - читай, все типы сжатой музыки (!))
См. раздел "софт". (размер около 3Мб - это из-за нескольких включенных языковых модулей)

Оригинальный сервер разработчика программы http://www.wolosoft.com/

Описание самого продукта я делал в номере за 6 сентября прошлого года.

 

 

Еще один картографический сервис - mapquest. И не только по США - там есть и города России (правда, я нашел лишь в пределах Московской области). По некоторым странам, в частности по Канаде, и по США, он ищет с точностью до номера дома.

прислал F. Mukhomedshin

Прислали s/n к недавно описанной программе X-NetStat Pro (v3.0).

name: Evil Genius
code: T71JX-EFME1-LBI6X-76DFS

кряк прислал Evil Genius

Насчет упомянутого рассказа в прошлом номере. Этот рассказ называется "Додкин при деле" (Dodkin's job) Джека Вэнса (1959). Сразу несколько читателей прислали ссылки на него:

http://lib.ru/INOFANT/WENS_J/dodkin.txt

 

На сервере internet.ru тоже проскочило какое-то "интервью" с хакером, который недавно сломал gazeta.ru и lenta.ru. Как выяснилось, тамошние журналисты схалтурили - половину вопросов просто придумали. Профанация какая-то.

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

прочитать "перл" можно здесь. Кто его вел - а фиг его знает...

 

 

prev

[ Архив+поиск ]-[ все комментарии ]-[ Жизнь ТАМ ]
[ Хакеры ] [ Журнал WebSound ]
[ обзор книг ] [ mouseimp ] [ биржа труда ] [ Ссылки ]
[RSS feed simple]    [RSS feed simple 2]    [RSS feed complete]

next

 

Компьютерный журнал "Cooler". Авторство и выпуски Александр Чижов. Иркутск
1998-2009
Рейтинг@Mail.ru
Cooler
WWWoman - лучший WM!!
Rambler counter