Використання пресетів mp3-кодера LAME
Нижче я опишу отримані мною результати, які будуть цікаві для широкого кола mp3, що цікавляться технологією. У тексті ви зможете знайти трохи більше, ніж обіцяно у заголовку, проте ця інформація додана лише для більшої прозорості матеріалу. Оскільки мені доводиться часто відповідати на запитання публіки з цього питання, постараюся докладніше зупинятися на неочевидних аспектах, навіть якщо вони не мають прямого відношення до тематики.
Передбачається, що читач має базові знання з питання, що обговорюється. Досягти такого рівня ви цілком можете, ознайомившись хоча б з однієї зі статей за технологією стиснення звуку з втратами на підставі психоакустичної моделі (наприклад, MP3. Частина I., MP3. Частина II.).
Знання технічних деталей не обов'язково розуміння основних висновків цієї статті. З іншого боку, такі знання будуть корисними для розуміння проміжних міркувань (див., наприклад, Рекомендації щодо використання стандарту стиснення mp3).
Підходи до вибору параметрів стиснення
Як ви знаєте, технологія стиснення звуку з втратами передбачає завдання будь-яким чином ступеня стиснення вихідного матеріалу, яка безпосередньо корелює з якістю отриманого результату: чим більше стиснення, тим менша якість. Однак, при спробі чітко визначити відповідність стиснення-якість виникає безліч проблем. По-перше, для різної музики те саме стиснення призведе до різної якості отриманого результату. По-друге, досі тривають суперечки про спосіб кількісного виміру цієї самої "якості". Хоча й існують цілком об'єктивні методи кількісного опису спотворень процесу «стиснення, розтискання, порівняння з оригіналом», немає способу порівняння таких оцінок із суб'єктивним сприйняттямодержаного результату. На сьогодні більшість фахівців та ентузіастів дотримуються думки, що немає об'єктивної характеристики, яка визначає ту саму якість (тобто, немає формул, за якими цю саму якість можна було б порахувати). Суб'єктивні ж оцінки вимагають великих витрат на їх проведення - це і кодування одного і того ж матеріалу декількома способами, і прослуховування результату багатьма експертами, і спроби привести отримані результати до найпростішого виду "a краще b, b краще c".
Другий аспект проблеми - у реальному mp3 кодері ступінь стиснення задається, як правило, не одним параметром. Кодер LAME (на відміну багатьох комерційних кодерів) пропонує користувачеві можливість змінювати десятки параметрів. Таким чином, витрати на проведення прослуховувань для отримання суб'єктивної оцінки зростають ще більше.
Хочу виділити два основні підходи до визначення параметрів стиснення:теоретичний таемпіричний. Різницю простіше описати прикладом. За інших рівних якість вихідного потоку буде тим більше, чим більше бітів в одиницю часу він займе. Або тим більше, чим нижче виставлений поріг чутності (ATH, absolute threshold of hearing, сигнали нижче за цей рівень взагалі не вносяться у вихідний потік — кодер вважає, що вухо їх не розрізнить). Або тим вище, чим вища частота зрізу фільтра ВЧ.
Зауваження для знавців: у двох останніх прикладах вважається, що використовується алгоритм VBR, тобто ширина бітового потоку збільшується, якщо ми зберігаємо більше інформації.
Як було зазначено вище — таких параметрів маса. Ми, звичайно ж, можемо поставити максимум значення всіх параметрів, але це призведе до дуже низького ступеня стиснення. Пошук компромісу у цій ситуації призведе до варіювання безлічі параметрівкодера. Попрацювавши з теоретичним методом підбору параметрів, кожен зможе отримати деякі свої емпіричні результати, напрацювання, досвід: така комбінація практично завжди даватиме кращі результати, ніж якась інша.
При теоретичному способі вибору параметрів необхідно чітко розуміти, на що впливає кожен параметр, і як у результаті зміни змінити результат стиснення. Так, наприклад, у документації до LAME зазначено, що при використанні режиму VBR психоакустична модель може занадто сильно занизити бітрейт, тому його потрібно штучно обмежувати знизу (відповідає ключу 'lame -b', навіть при використанні цього ключа акустична тиша кодуватиметься в 32 kbps ). Переважна більшість користувачів таких знань не має. Більше того, багато хто навіть не заглядає в документацію для отримання порад щодо вибору параметрів кодування.
Користувачеві, тобто людині далекому від процесу розробки та тестування кодера, хотілося б отримати прозору для використання лінійну шкалу налаштувань: погано, краще, добре, дуже добре, відмінно. Його не цікавлять значення десятків параметрів у кожному конкретному випадку. Саме для цього і були розроблені попередньо задані схеми налаштувань, пресети (preset). Власне, кожен пресет — це набір значень всім параметрів кодера. Сукупність цих значень була підібрана в результаті довгих тестувань команди розробників і тестерів кодера таким чином, щоб максимально ефективно виконувати завдання пресета на переважній більшості звукового матеріалу.
Ліричний відступ
Думаю, варто зазначити, що LAME — проект, створюваний за схемою з відкритими вихідними кодами, тобто будь-яка людина потенційно може взяти участь устворення кодера. Природно, що для ефективної участі в проекті як програміст необхідні знання в галузі технології стиснення звуку на дуже високому рівні. Проте, кількість програмістів у LAME вимірюється сотнями. Для участі у тестуваннях планка рівня знань істотно нижча, тому кількість тестерів LAME вимірюється тисячами та десятками тисяч. Навіть якщо врахувати, що професіоналів (музикантів, налаштовувачів тощо) у цій масі небагато — одиниці відсотків — все одно виходить, що доведенням проекту LAME займається набагато більше народу, ніж, скажімо, кодером Fraunhofer IIS, лідером в індустрії серед комерційних товарів.
Мені відомий документ із описом тестування, проведеним Fraunhofer IIS, за участю кількох сотень експертів. «Аж кількох сотень!» — можемо сказати ми, уявивши собі масштаби заходу та витрати на його проведення. "Усього кількох сотень?" — можемо заперечити ми, згадавши тисячі людей по всій земній кулі, які роблять одну спільну справу під прапорами LAME.
Таким чином, ми виділили два підходи до вибору параметрів стиснення: теоретичний, який добрий тільки для людини з великим досвідом роботи з mp3 і непоганими знаннями в теорії методу стиснення звуку, що розглядається, і емпіричний — простий і зрозумілий у використанні для кожного.
Опис пресетів LAME
Як свідчить документація LAME, «Presets are shortcuts for common or carefully tuned settings» (пресети — це зручні короткі посилання часто використовувані чи акуратно налаштовані набори вхідних параметрів).
Основні пресети
Основні пресети використовують режим стиснення з постійним бітрейтом, якщо не вказано ключ '-v'. У таблиці нижче вказано значення, яке використовуватиметься при стисканні з постійним бітрейтом. Томузначення можна отримати зразкове уявлення про якість одержуваного результату.