Ноу Інти, лекція, стиснення аудіоінформації без втрат
Анотація: Ця лекція присвячена форматам стиснення аудіоінформації без втрат.
Стиснення без втрат
Кодеки, що стискають звук без втрат, стали користуватися популярністю в світі портативних MP3-плеєра порівняно недавно. Справа в тому, що цим кодекам не під силу такі величезні ступеня стиснення, якими можуть похвалитися кодеки, що стискають звук з втратами якості. Великі обсяги пам'яті стали широко доступні користувачам MP3-плеєр лише останні роки три-чотири - і з приходом великих обсягів пам'яті в MP3 -плеєри, стиснення музики без втрат стало популярним. Звичайно, ті, хто хотів слухати музику без втрат якості, робили це завжди (наприклад, за допомогою Audio CD-програвач), а в наш час всі бажаючі (природно, при наявності підтримки відповідних кодеків їх плеєрами) можуть спробувати Lossless -кодекі в дії .
Головна відмінність кодеків, що стискають звукові дані без втрати якості від кодеків, що стискають з втратами, полягає в тому, що кодеки без втрати якості не видаляють з аудиопотока інформацію, яка при стисненні з втратами може вважатися надмірною. Головне завдання Lossless -кодека полягає в тому, щоб якомога сильніше стиснути вихідну звукову інформацію, не втративши при цьому жодного біта інформації.
Ситуація з підтримкою Lossless -кодеков в даний час така, що найбільш широко поширена підтримка кодека ALAC, який має безпосереднє відношення до фірми Apple і її плеєрів. Решта ж кодеки підтримуються поки небагатьма плеєрами, іноді для того, щоб плеєр підтримував кодек, потрібно перепрошивка плеєра, причому, мабуть, найбільш відома прошивка для плеєрів, що підтримує Lossless -кодекі, RockBox - це альтернативна, а ніяк не офіційна прошивка.
В ході роботи з Lossless -кодекамі вам можуть зустрітися так звані Cue-файли або індексні карти файлів. Cue-файли поширюються, наприклад, разом з FLAC або APE-файлами, рідше - з MP3 і WAV-файл, які представляють собою один великий (близько 300 Мб) файл. в якому зберігається цілий альбом. Cue - файл - містить в собі інформацію про розбиття великого файлу на треки і про назви цих треків. З окремими файлами працювати зручніше, проте, навіть якщо до вас в руки потрапить, скажімо, великий FLAC- файл з CUE-файл, на основі інформації, що міститься в CUE-файл, вихідний файл можна розділити на окремі треки - ми розглянемо ПО. яке може вирішити цю задачу.
Почнемо опис форматів стиснення даних без втрат з популярного формату FLAC.
FLAC (Free Lossless Audio Codec) - це формат стиснення аудіо без втрат, який розробила Xiph. Org Foundation. Це абсолютно безкоштовний формат, яким можуть користуватися всі бажаючі.
Робота FLAC і інших кодеків, які зберігали звукові дані без втрат, нагадує роботу звичайних архиваторов. Однак, за рахунок спеціальних алгоритмів ефективність таких кодеків при стисненні аудіоінформації набагато вище, ніж у звичайних архиваторов.
Формат FLAC розроблявся як потоковий - інформація у FLAC-файлі розбита на фрейми (кадри), кожен з яких може бути розкодувати окремо від інших фреймів.
Як правило, FLAC здатний стиснути вихідний файл. наприклад, Audio CD-якості на 40-50%. В результаті бітрейт отриманої записи виявляється рівним близько 800 Кбіт / c.
У форматі FLAC передбачена можливість збереження CD-дисків таким чином, що при необхідності можна повністю відтворити початковий диск - це дуже зручно для тих, хто хоче створити цифрові копії своїх CD з можливістю подальшого відновлення.
Швидкість кодування і декодування FLAC-файлів неоднакова. Швидкість кодування залежить від рівня стиснення і від швидкості системи - на високих рівнях стиснення вона може бути досить повільної. Однак розкодування ведеться дуже швидко - з ним легко можуть впоратися сучасні MP3 -плеєри.
За рахунок можливості безкоштовного вільного використання, з FLAC можна працювати на базі практично будь-якої сучасної ОС, все більше MP3-плеєра підтримують цей формат.
Кодування в формат FLAC

Мал. 4.1. Вікно FLAC Frontend
Давайте розглянемо найбільш значущі установки кодека. Для початку зупинимося на групі параметрів Encoding Options (Параметри кодування)
Параметр Level (Рівень) відповідає за рівень стиснення даних. Він може змінюватися від 0 до 8. Чим більше рівень стиснення, тим, відповідно, менше готовий файл, але більше час, необхідний для кодування файлів. На швидких комп'ютерах різниця між Level 0 і Level 8 при кодуванні, скажімо, 30-мегабайтного WAV-файлу може скласти кілька секунд. Розмір відрізняється приблизно на 10% від початкового розміру файлу. Вам варто поекспериментувати з цим параметром на вашому ПК - можливо, якщо ви будете кодувати кілька сотень файлів, ви віддасте перевагу менший рівень стиснення більшої швидкості роботи.
Параметр Verify (Перевірити) наказує кодеру перевірку вихідних файлів.
Параметр Replaygain (Рівень програвання) додає в файли параметр, який вказує на рівень гучності файлу. Якщо встановлено параметр Treat input files as one album (Обробляти вхідні файли як один альбом) - все записи в альбомі будуть звучати з однаковою гучністю.
Параметр Output Directory (Вихідна директорія) містить шлях до директорії, де будуть міститися вихідні файли.
У групі параметрів Decoding options (Опції декодування) є параметр Dec. Through errors (Декодувати незважаючи на помилки) - встановіть його, якщо хочете декодувати будь-якої файл навіть у тому випадку, якщо під час декодування виникають помилки. Декодування - процес зворотний кодування - тобто декодувати ви можете FLAC-файли, перетворивши їх в WAV-файли. Для декодування, природно, вам доведеться додати в вікно програми FLAC-файли.
Після того, як все налаштовано, досить натиснути на кнопку Encode (Кодувати) для створення FLAC-файлів, або, якщо ви хочете декодувати існуючі FLAC-файли - натисніть кнопку Decode (Декодувати).
Крім вищеописаної, кодувати FLAC можуть і інші програми. Наприклад, це вже відома вам ImTOO Audio Encoder - для кодування в формат FLAC досить вибрати його зі списку форматів (рис. 4.2.).

Мал. 4.2. Кодуємо FLAC-файли за допомогою ImTOO Audio Encoder
Серед доступних налаштувань кодека можна відзначити налаштування рівня стиснення, вона, як і в звичайному кодеку, змінюється від 0 до 8.
Що цікаво, програма не підтримує кодування з формату FLAC - навіть якщо упакувати FLAC-дані в підтримуваний програмою контейнер OGG, вона, на етапі кодування, повідомить про помилку. Однак, як ви знаєте, декодувати FLAC-файли можна за допомогою вищеописаної програми.
Розбиваємо великі файли на окремі треки

Мал. 4.3. Cue Splitter
Головне, що потрібно зробити, розрізаючи великий файл на частини - це відкрити файл командою Файл_Открить CUE. після чого можна відразу ж натискати на кнопку Розрізати, або зробити це трохи пізніше, попередньо налаштувавши імена файлів.