Однажды решил перенести всю музыкальную коллекцию на новое устройство от Apple и столкнулся с выбором: сохранить место на диске или качество звучания? Оказалось, есть вариант, при котором не нужно жертвовать ни тем, ни другим. Формат ALAC стал для меня открытием, хотя существует уже два десятка лет. Сегодня хочу разобраться, что скрывается за этим аудиокодеком и почему он занял свою нишу в мире цифровой музыки.

Появление формата в эпоху iPod

28 апреля 2004 года компания Apple представила обновление QuickTime до версии 6.5.1, которое принесло с собой нечто большее, чем просто исправление ошибок. В состав фреймворка Core Audio вошёл совершенно новый кодек для сжатия аудио без потерь. Одновременно с этим вышла версия iTunes 4.5, которая первой получила поддержку нового формата.

Тогда это было смелым шагом. Рынок портативных плееров набирал обороты, iPod становились всё популярнее, а пользователи стояли перед выбором: либо терпеть огромные размеры несжатых файлов, либо мириться с потерей качества в MP3. Apple предложила третий путь, который позволял сократить размер примерно вдвое, сохранив при этом каждый бит информации из оригинальной записи.

Интересно, что формат оставался закрытым целых семь лет. Но это не остановило энтузиастов. Уже в 2005 году, всего через год после релиза, Дэвид Хаммертон и Серафина Брошез провели реверс-инжиниринг формата и опубликовали простой декодер на языке C. Они буквально разобрали ALAC по кирпичикам, не имея никакой официальной документации. 27 октября 2011 года Apple наконец открыла исходный код под лицензией Apache 2.0, сделав формат доступным для всех разработчиков без каких-либо отчислений.

Как работает сжатие изнутри

Заглянем под капот и посмотрим, что происходит с музыкой при кодировании в ALAC. Звуковой поток разделяется на отдельные пакеты, каждый из которых по умолчанию содержит 4096 семплов. Кодек не поддерживает пакеты больше 16384 семплов, хотя технически возможны и другие размеры. Но если использовать нестандартные значения, могут возникнуть проблемы при воспроизведении на некоторых аппаратных устройствах.

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

Но прогноз никогда не будет идеальным. Разница между реальными и предсказанными значениями называется остатком. Именно эти остаточные данные упаковываются с помощью модифицированного Rice алгоритма, который особенно эффективен для небольших чисел. В результате получается компактное представление: формула прогноза плюс сжатые остатки, из которых можно восстановить исходный сигнал с побитовой точностью.

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

Технические возможности и ограничения

Формат поддерживает широкий диапазон параметров. Битовая глубина может составлять 16, 20, 24 или 32 бита на семпл. Для сравнения, обычный компакт-диск использует 16 бит, а профессиональные студийные записи часто работают с 24 битами. Частота дискретизации теоретически может достигать 384 килогерц, хотя официальная документация упоминает поддержку любой целочисленной частоты от 1 герца до этого значения. На практике обычно встречаются стандартные 44,1 кГц, 48 кГц, 96 кГц или 192 кГц.

Количество каналов варьируется от моно до восьмиканального звука. Формат определяет строгий порядок расположения каналов для каждой конфигурации. Например, шестиканальная запись следует схеме MPEG 5.1: центр, левый, правый, левый тыловой, правый тыловой, низкочастотный эффект. Это обеспечивает совместимость при воспроизведении на разных устройствах.

Степень сжатия зависит от характера музыкального материала. Тесты показывают, что файлы обычно сжимаются до 40-60 процентов от размера оригинала. Симфоническая классика с её динамическими переходами сжимается лучше, чем плотная электронная музыка с насыщенным спектром. Типичный битрейт для CD-качества колеблется от 400 до 1200 килобит в секунду, что примерно вдвое меньше несжатого WAV на 1411 кбит/с.

Контейнер и структура файла

ALAC использует контейнер MP4, совместимый с MPEG-4, и файлы получают расширение .m4a. Это то же расширение, которое используется для AAC, что иногда вызывает путаницу. Но сами форматы никак не связаны между собой. AAC - это сжатие с потерями, тогда как ALAC относится к семейству lossless кодеков наряду с FLAC и другими.

Внутри контейнера хранятся различные блоки данных. Сначала идут метаданные с техническими характеристиками: частотой дискретизации, количеством каналов, битовой глубиной. Затем следуют теги с информацией о композиции, исполнителе, альбоме. Можно встроить изображение обложки прямо в файл. За метаданными идут аудиофреймы с закодированной музыкой.

Важная особенность: ALAC не содержит встроенной проверки целостности данных, в отличие от того же FLAC с его контрольными суммами CRC. Это связано с природой контейнера MP4. Если файл повредится, обнаружить проблему будет сложнее. С другой стороны, контейнер MP4 широко поддерживается и позволяет при желании добавить систему защиты цифровых прав, хотя сам кодек её не требует.

Сравнение с конкурентами

Поставим ALAC рядом с его основным соперником FLAC. Оба используют похожие принципы: линейное прогнозирование и Rice кодирование остатков. Однако FLAC показывает немного лучшее сжатие и требует меньше вычислительных ресурсов при декодировании. Исследования показывают, что ALAC требует примерно в четыре раза больше мощности процессора для распаковки по сравнению с FLAC. Это влияет на время работы от батареи портативных устройств.

Зато ALAC имеет нативную поддержку во всей экосистеме Apple. Устройства с процессором, содержащим DSP-чип для аудио, могут декодировать формат аппаратно, что снижает нагрузку на основной процессор. Старые iPod с док-разъёмом, современные iPhone и iPad, компьютеры Mac - все они воспроизводят ALAC без установки дополнительного программного обеспечения.

Windows 10 и 11 также получили встроенную поддержку ALAC. Это означает, что Windows Media Player может воспроизводить такие файлы, а также рипать компакт-диски напрямую в этот формат. Многие сторонние плееры вроде Foobar2000, VLC, MPlayer поддерживают ALAC через библиотеку libavcodec. Даже устройства на базе Rockbox научились работать с форматом после оптимизации библиотеки для ARM-процессоров.

Применение в реальной жизни

Где пригождается этот формат? Прежде всего, в стриминге. В июне 2021 года Apple добавила поддержку lossless аудио в Apple Music для всех подписчиков без дополнительной платы. Весь каталог из более чем 100 миллионов треков стал доступен в качестве от CD-стандарта 16 бит / 44,1 кГц до Hi-Res 24 бита / 192 кГц. Правда, потребление трафика при стриминге существенно возрастает.

Многие используют ALAC для архивирования личных коллекций. Переносишь CD в цифру? Формат сохранит каждую деталь оригинала, при этом сэкономив около половины дискового пространства. Создаёшь резервные копии винилов? Снова ALAC - он зафиксирует все особенности аналоговой записи, включая характерные щелчки и шумы, которые являются частью звучания.

Музыканты применяют формат для хранения демо-записей, репетиций, промежуточных версий треков. Звукорежиссёры могут сохранять мастер-записи в ALAC, зная, что качество останется неизменным при любом количестве копирований. В отличие от форматов с потерями, где каждая перекодировка добавляет новые артефакты, lossless форматы остаются стабильными.

Проблема беспроводного воспроизведения

Есть парадокс, о котором мало кто задумывается. Apple активно продвигает lossless аудио в своём музыкальном сервисе, но ни один из AirPods не может воспроизвести его в полном качестве. Причина проста: Bluetooth. Даже флагманские AirPods Max и AirPods Pro второго поколения используют кодек AAC для передачи звука по беспроводному каналу, а это сжатие с потерями.

Получается странная ситуация. Скачиваешь трек в ALAC с битрейтом 1000 кбит/с, а наушники получают его в AAC на 256 кбит/с. Весь смысл lossless теряется. Для полноценного прослушивания нужны проводные наушники или внешний цифро-аналоговый преобразователь, подключённый к устройству через Lightning или USB-C.

AirPods Max с USB-C могут воспроизводить lossless при проводном подключении, но это требует обновления до последних версий прошивки. Модели AirPods 4 и AirPods Pro 2 с USB-C используют проприетарный беспроводной протокол, который поддерживает lossless при сопряжении с Apple Vision Pro, но это узкоспециализированный сценарий использования.

Существует Bluetooth-кодек aptX Lossless от Qualcomm, поддерживающий 16 бит / 44,1 кГц с битрейтом до 1200 кбит/с. Но Apple не интегрировала его в свои устройства. Компания не поддерживает и Sony LDAC, который предлагает наиболее высокую скорость передачи среди беспроводных кодеков. Остаётся надеяться, что в будущем появится решение этой проблемы.

Стоит ли переходить на ALAC

Вопрос разумный. Действительно ли человеческое ухо способно различить разницу между ALAC и качественным AAC на 256 кбит/с? Если честно, многое зависит от оборудования и музыкального материала. На дешёвых наушниках или встроенных динамиках смартфона разница будет минимальной. Звуковой тракт вносит столько собственных искажений, что тонкости формата просто теряются.

Но подключи хорошие наушники к качественному усилителю, и картина меняется. Инструменты в миксе начинают звучать раздельно, детали становятся отчётливее, дыхание вокалиста слышно яснее. Это не магия, а простая математика: ты слышишь информацию, которую AAC посчитал несущественной и удалил.

Для прослушивания Hi-Res форматов с частотой выше 48 кГц на большинстве Mac потребуется внешний ЦАП. MacBook Pro 14 и 16 дюймов поддерживают нативное воспроизведение до 96 кГц, но это исключение. Усилитель должен подключаться напрямую, без переходников, которые могут ухудшить сигнал. Выходное качество ЦАП должно быть не ниже 24 бит / 192 кГц, чтобы раскрыть потенциал формата.

Многие выбирают ALAC не столько из-за слышимой разницы, сколько из принципиальных соображений. Зачем хранить музыку в ухудшенном виде, если можно сохранить оригинальное качество? Особенно когда объёмы хранилищ выросли настолько, что разница в размере файлов уже не критична. Терабайтные SSD стали обычным делом, а облачные хранилища предлагают неограниченное пространство за разумную цену.

Формат ALAC прошёл путь от закрытого проприетарного решения до открытого стандарта. Он нашёл своё место в экосистеме Apple, став основой для стриминга качественной музыки и архивирования коллекций. Технически он может уступать FLAC в эффективности, но выигрывает в универсальности для пользователей устройств от купертинской компании. Сегодня ALAC - это выбор тех, кто ценит качество звучания и комфорт использования в единой экосистеме.