Мечта меломана – в любом месте слушать то, что хочется, в максимально возможном качестве. Звуковой формат, о котором пойдет речь, способен во многом помочь поклонникам хорошей музыки.
Конечно же, вы догадались: мы поговорим об очень популярном сегодня FLAC'e (аббревиатура от английского Free Lossless Audio Codec), способе кодирования, с одной стороны, полностью сохраняющем аудиосигнал, а с другой – все же не таком расточительном по размеру и более удобном для пересылки по сети, чем компакт-диск.
Впрочем, при господстве безлимитных тарифов и мегабитных скоростей размер уже не играет такой роли, как это было в пору аналоговых модемов. К тому же и карты хранения данных значительно прибавили в объеме. Например, как только на моем планшете появилась 16-гигабайтная SD-карта, дискография любимой группы Fourplay «переехала» на FLAC, благо большинство современных мультимедийных гаджетов с этим форматом на ты.
И, смею заметить, мой восторг по поводу неотличимости mp3 с битрейтом 320 от фирменного компакт-диска несколько усох. FLAC все-таки «честнее», хотя многое зависит от уровня всех компонентов на пути к уху (да и сам слух часто развращен «пластмассовым» звуком, обрушивающимся на нас со всех сторон).
Уместно привести аналогию с фотографией – «RAW-слепком» данных матрицы и демократическим JPEG'ом, представляющим собой фирменную интерпретацию снимков вашего, например, шашлычного «десанта». И если для простой печати в фотосалоне за углом разница будет малоощутимой, то при решении сложных задач (например, печать в системе Hexachrome) потери могут обрести фатальный характер.
Прежде чем подробно рассказать о нашем «герое», надо уяснить, что эпоха дискретности наступила гораздо раньше, чем принято считать. Что такое магнитная пленка, на которую записывался звуковой сигнал? Полимерная лента, посыпанная тонко измельченным порошком, каждая частица которого – магнитный диполь, «удерживающий» нужную намагниченность. Совокупность ориентированных примерно в одном направлении диполей и создает необходимую напряженность магнитного поля, а ее изменения по мере движения ленты считываются головкой воспроизведения по хорошо известному принципу электромагнитной индукции.
Диполь и есть та толика дискретности, незримо царившая в эпоху аналоговых сигналов. Поэтому совершенно закономерно, что современные способы записи звука дискретны с первых шагов (исключение составляют, пожалуй, только микрофоны и излучающие системы, наиболее «близкие» к реальному звуку, который, как ни крути, никакой не дискретный).
Вопрос в другом – насколько близка цифровая модель звука к тому, что слышит в концертном зале горячий поклонник Баха, Моцарта и Чайковского? Если очень строго, то совсем не близка: благородный гармонический сигнал (например, синусоида) аппроксимируется (заменяется) «лесенкой» из фиксированного количества ступенек (за это отвечает разрядность) определенной ширины (чем они уже, тем выше частота дискретизации). При достижении определенного порога
слушатель перестает ощущать разницу между реальным и закодированным звуком, но последний все равно остается моделью.
Все это сказано к тому, что принципиальной разницы в дальнейших манипуляциях с цифровым сигналом нет. Просто мегапопулярный MP3-формат по сложным алгоритмам «опрощает» сигнал, добиваясь всеми возможными способами его компактности, а lossless'ы (кодеки, сжимающие без потерь) оставляют его в неприкосновенности. Заметим, что любые операции по кодированиюдекодированию звукового (и не только) сигнала требуют большой вычислительной мощности, достигнутой сравнительно недавно.
Нельзя сказать, что всех устраивает нынешний status quo, иначе гиганты звукозаписи
и производители электроники не вкладывали бы средства в модернизацию формата digital audio. Но, как это часто бывает, «большие» люди поспешили заранее подсчитать барыши. Простому меломану платить оказалось не за что: хваленые и разрекламированные Super Audio CD (SACD) и DVD-Audio ничего нового в концепцию цифровой записи не внесли, фактически сведя «новизну» к простому увеличению разрядности и частоты дискретизации (24 бита/192 кГц – каково?). По мнению некоторых экспертов, главный удар «мозгового штурма» воротил звукозаписи пришелся на совершенствование систем защиты от копирования, а не на улучшение качества звука.
Одним из них и стал американский инженер Джош Колсон. В конце 90-х, наблюдая за взрывным распространением формата mp3 в Интернете, он на досуге задумался: а насколько сильно можно сжать аудиосигнал, не теряя ни бита информации? Не будучи узким специалистом-меломаном, Колсон попытался решить эту задачу сразу с нескольких направлений. Проанализировав принципы работы звуковых кодеков,
он пришел к выводу, что нечего изобретать велосипед, и взял за основу все тот же фреймовый подход. Это значит, что непрерывный звуковой сигнал произвольно разбивается на последовательно обрабатываемые блоки.
Наибольший интерес вызывает метод кодирования непосредственно звукового сигнала (описание служебной метаинформации о параметрах кодирования оставим специалистам). С одной стороны, если мы, желая совершенства, разобьем входной поток на очень малые блоки, то получим сравнительно простой внутриблочный сигнал, легко поддающийся кодировке. Но в общем значительно возрастет объем служебной метаинформации – каждый блок ведь необходимо единообразно описывать, а метаданные принципиально несжимаемы. Таким образом, стремление оперировать очень малыми блоками сведет на нет любое сжатие, и по размеру мы получим фактически тот же сигнал digital audio, но отягощенный необходимостью декодирования.
Но если попытаться найти разумный компромисс, то размер блоков можно увеличить до 2–5 тысяч так называемых сэмплов (англ. sample – относительно небольшой оцифрованный звуковой фрагмент) в секунду. Вспомнив «лесенку» аудиосигнала, несложно подсчитать, что для стандартного CD-audio с частотой дискретизации 44,1 килогерца кодер будет оперировать группами по 8–20 ступеней. Учитывая, что сигнал в подавляющем большинстве случаев меняется плавно, можно с очень большой долей правдоподобия считать его квазигармоническим и попытаться промоделировать его сугубо математически, например, полиномами. Не пугайтесь, речь идет всего лишь о многочленах, знакомых еще из школьного курса алгебры.
Весь фокус заключается в том, что FLAC хранит информацию не о самом сигнале в блоке, а о разнице между ним и подходящим полиномом. Отсюда проистекает важный вывод: если полином очень точно моделирует сигнал, то разность внутри блока фактически окажется последовательностью нулей, и описывать их нет никакой
нужды. Достаточно указать, что в данном блоке полином с такими-то и такими-то параметрами соответствует реальному сигналу. А это может сильно уменьшить объем хранимых данных.
Другой способ моделирования сигнала заключается в применении экстраполятивных
функций, в современной терминологии – предикторов (в переводе с английского – «предсказателей»). Любой, кто в школе или в институте делал лабораторные работы по физике, помнит, как не хотелось наносить данные многочисленных измерений на координатную сетку. И порой на выручку нашей лени приходила экстраполяция! Зная, что искомая зависимость близка, например, к линейной, мы наносили всего пару-другую реальных точек, а дальше просто проводили линию, которая имела неплохие шансы сойти за настоящую.
Примерно так же «поступает» и FLAC-кодер, полагая, что несколько отдельно взятых точек в блоке могут многое сказать и о других данных, и «строит» на их основании предиктивную функцию, порядок которой в общем случае зависит от количества опорных точек и характера сигнала. А дальше вновь реальный сигнал сравнивается с моделированным, вычисляется разность и – смотри ранее.
Такую же хитрую и остроумную обработку проходит и стереоинформация, подвергающаяся так называемой межканальной декорреляции, то есть кодер не оперирует с изолированными канальными сигналами, как можно было бы ожидать от lossless-формата. Сигналы правого и левого каналов трансформируются в средний (их полусумму) и разностный. Очевидно, что в подавляющем большинстве случаев вновь полученные данные будут равномернее и монотоннее, чем исходные поканальные звуки, и их можно закодировать гораздо эффективней.
Подход к обработке аудиосигналов, выбранный Джошем Колсоном, оперирует исключительно самими данными, без всякой привязки к аппаратной или программной платформе. Действительно, два и два в сумме всегда дают четыре, независимо от версии Unix или Windows. При этом Колсон сознательно исключил из спецификации формата все, что может касаться реализации защиты от копирования.
FLAC поистине космополитичен и способен управиться с любым мыслимым аудиосигналом: «математика» кодера все равно остается той же самой, меняются только некоторые коэффициенты да метаданные. Хотите 32 бита на звуковой сэмпл? Пожалуйста! У вас сигнал с 500-килогерцовой частотой дискретизации? Без проблем.
Восьмиканальный звук? Очень просто, надо только сгруппировать каналы попарно, чтобы применить межканальную декорреляцию.
Работа Джоша Колсона, выпущенная в свет в виде бета-версии 0.5 15 января 2001 года, сразу же получила горячее одобрение компьютерного сообщества. Еще бы: добротный инновационный продукт с открытыми исходниками появляется не каждый день. И это в эпоху всеобщего стремления урвать хоть копейку за любое телодвижение пользователя (если вы не в курсе, поинтересуйтесь, как, например, «огрызочники» добавляют музыку на свои донельзя пафосные гаджеты)!
Потенциал новинки оценили специалисты из некоммерческой организации Xiph.Org. Под ее эгидой Джош Колсон со товарищи 20 июля 2001 года выпустил первый релиз FLAC-кодера, в который вошли спецификации аудиопотока, программные библиотеки libFLAC и libFLAC++, утилиты кодирования-декодирования и обработки метаданных, а также набор входных плагинов для различных плееров (Winamp, foobar2000,
musikCube, JetAudio и др.). Набор совершенно бесплатен и открыт для любых вменяемых изменений и дополнений. За собой Xiph.Org оставила право устанавливать спецификации формата и сертифицировать их соблюдение. Одним
из первых лицензиатов стал Европейский вещательный союз (European Broadcasting Union), выбравший FLAC для распространения высококачественного звука через сеть Еврорадио.
Очевидно, что преимущества FLAC могут быть заметны только при использовании аппаратуры достаточного уровня. Пожалуй, оптимальным будет применение оптического выхода с дальнейшим прохождением сигнала в пристойный усилительный тракт. И не за горами время, когда формат будет поддерживаться большинством мультимедийных устройств. Предпосылки для этого самые благоприятные: при современном уровне микроэлектроники «зашить» в чип декодер FLAC не будет стоить практически ничего. А какой производитель электроники (даже самый захудалый) откажется от возможности обеспечить высокое качество аудиосигнала?
Впрочем, провозглашать безоговорочную победу FLAC'а над вездесущим mp3 не только преждевременно, но и бессмысленно по сути. Подавляющее большинство потребителей музыкальной продукции вполне спокойно мирятся с потерями, присущими lossy-кодекам. А разумный перфекционизм (не доходящий до оголтелого аудиофильства) всегда был небольшим и малообитаемым островком, какой бы сферы деятельности это ни касалось. И все же… Музыка – хрупкая и эфемерная материя с мириадами оттенков и нюансов, и ее очарование очень легко потерять. Так зачем же это делать, когда есть FLAC?
Это новость от журнала ММ «Машины и механизмы». Не знаете такого? Приглашаем прямо сейчас познакомиться с этим удивительным журналом.