Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Поперешняк, Звукові карти.rtf
Скачиваний:
3
Добавлен:
22.07.2019
Размер:
375.23 Кб
Скачать

2.9 Що таке mp3 ?

MP3 -- скорочення від MPEG Layer3. Це один з потокових форматів зберігання і передачі аудіосигналу в цифровій формі, розроблений Fraunhofer IIS і THOMSON, пізніше затверджений як частину стандартів стислого відео і аудіо MPEG1 і MPEG2. Ця схема є найбільш складною схемою сімейства MPEG Layer 1/2/3. Вона вимагає найбільших витрат машинного часу для кодування в порівнянні з двома іншими і забезпечує більш високу якість кодування. Використовується головним чином для передачі аудіо в реальному часі по мережевих каналах і для кодування CD Audio. Повні специфікації формату доступні на сайті http://www.mp3tech.org/.

Деталі

MP3 -- потоковий формат. Це означає, що передача даних відбувається потоком незалежних окремих блоків цих -- фреймів. Для цього початковий сигнал при кодуванні розбивається на рівні за тривалістю ділянки, що іменуються фреймами і кодовані окремо. При декодуванні сигнал формується з послідовності декодованих фреймів.

Висока міра компактності MP3 в порівнянні з PCM 16Bit Stereo 44.1kHz(CD Audio) і йому подібними форматами при збереженні аналогічної якості звучання досягається за допомогою додаткового квантування за встановленою схемою, що дозволяє мінімізувати втрати якості.

Останнє, у свою чергу, досягається обліком особливостей людського слуху, у тому числі ефекту маскування слабкого сигналу одного діапазону частот потужнішим сигналом сусіднього діапазону, коли він має місце, або потужним сигналом попереднього фрейма, що викликає тимчасове пониження чутливості вуха до сигналу поточного фрейма. Також враховується нездатність більшості людей розрізняти сигнали, по потужності що лежать нижче певного рівня, різного для різних частотних діапазонів.

Подібна техніка називається адаптивним кодуванням і дозволяє економити на найменш значимих з точки зору сприйняття людиною деталях звучання. Міра стискування, і, відповідно, об'єм додаткового квантування, визначаються не форматом, а самим користувачем у момент завдання параметрів кодування. Ширина потоку(bitrate) про кодуванні сигналу, аналогічного CD Audio(44.1kHz 16Bit Stereo) варіюється від найбільшого, 320kbs(320 кілобіт в секунду, також пишуть kbs, kbps або kb/s), до 96kbs і нижче.

Термін бітрейт в загальному випадку означає загальну величину потоку, кількість передаваної за одиницю часу інформації, і тому не пов'язаний з внутрішніми тонкощами будови потоку, його сенс не залежить від того, чи містить потік моно або стерео, або п'ятиканальне аудіо з текстом на різних мовах, або що-небудь ще

На проведених тестах спеціально запрошені досвідчені експерти, що спеціалізуються на суб'єктивній оцінці якісності звучання, не змогли розрізнити звучання оригінального трека на CD і закодованого в MP3 з коефіцієнтом стискування 6: 1, тобто з бітрейтом в 256kbs. Правда, тести були проведені на невеликій кількості матеріалу, і насправді не все так добре, нерідко буває дійсно треба користуватися 320kbs.

Нижчі бітрейти, незважаючи на їх популярність, не дають можливості забезпечити належну якість кодування, що незаслужено забезпечило MP3 погану славу любительського формату. Насправді, хоча і 256kbs, і навіть 320kbs теж не дають можливості здійснити повністю прозоре кодування, але відмінності від CD Audio, по якій кодується тестовий MP3, порівнянні з відмінностями самого CD Audio від початкового аналогового сигналу, з якого він був отриманий шляхом оцифрування. Тобто втрати, звичайно, є, але несуттєві з точки зору того, кому якість CD Audio представляється достатньою. Фактично, їх виявлення зазвичай є завданням нетривіальної на апаратурі класу Hi - Fi.

Сьогодення і майбутнє MP3

MP3 на сьогодні має дві величезні переваги перед іншими

доступними форматами його роду. Одне з них полягає в тому, що не про один з існуючих подібних форматів не можна доки сказати, що він повністю гарантує стійке збереження якості звучання на досить високих бітрейтах, окрім MP3, який гідно витримав перевірку часом. Мабуть, єдиний відомі мені конкурент в цьому плані -- останні варіанти формату ATRAC, використовуваний в мінідисках.

Для MP3 також написана безліч зручного програмного забезпечення. Цей факт відбиває другу, не менш важливу перевагу -- на найближчі роки, а можливо, і на усе десятиліття, MP3 став стандартом де факто, настільки багато зроблено в нього вкладень сторонами, що користуються ним, у тому числі і цифровими радіостанціями.

MP3 досить довго залишався невідомим, але кілька років тому почалося вибухове зростання його популярності, так же швидко почали з'являтися

поклади нелегальних MP3 файлів. Зараз налагоджено виробництво апаратних MP3 плеєрів, а кишенькових, і для автомобілів. Таким чином, MP3 став першим масово визнаним форматом зберігання аудіо після CD - Audio.

Попри те, що MP3 з'явився досить давно, новіші формати, що претендують на його місце, з'явилися до справжнього моменту, усі на перевірку виявилися любительськими. Вони можуть бути або не бути хороші в порівнянні з MP3 на низьких бітрейтах, це залежить від трека і особливостей слуху конкретної людини, але на місце MP3 256kbs... 320kbs претендувати не здатні.

Можливо, " монополія" MP3 у сфері комп'ютерів на низьких бітрейтах все ж буде частково зломлена новим форматом від Microsoft -- WMA. Але доки рано говорити про це. З іншого боку, поява Microsoft на цьому ринку з такою сильною розробкою означає швидке відсіювання невдалими, що виявилися, гілок AAC і VQF. Втім, залишається надія, що AAC ще буде допрацьований.

На завершення згадаю одну адресу, по якій розташувався проект із створення вільного від патентних обмежень кодера -- http://www.sulaco.org/mp3/free.html. Правда, патентів навкруги MP3 накопичилося стільки, що, думаю, проект цей завершений не буде.

(Втім, якщо говорити про вільних від патентах аудіокодерах взагалі, то існує і реальніший проект, що не є проектом MP3 кодера. Він розташований за адресою http://www.xiph.org/.)

Опис процесу кодування

Підготовка до кодування. Фреймова структура

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

Початок кодування

Кодування розпочинається з того, що початковий сигнал за допомогою фільтрів розділяється на декілька, що представляють окремі частотні діапазони, сума яких еквівалентна початковому сигналу.

Способи кодування стерео сигналу

У рамках MP3 кодування стереосигнала допустиме чотирма різними методами:

Dual Channel -- Кожен канал отримує рівно половину потоку і кодується окремо як моно сигнал. Рекомендується головним чином у випадках, коли різні канали містять принципово різний сигнал -- скажемо, текст на різних мовах.

Виставляється в деяких кодерах на вимогу.

Stereo -- Кожен канал кодується окремо, але кодер може прийняти рішення віддати одному каналу більше місця, ніж іншому. Це може бути корисно у тому випадку, коли після покидька частини сигналу, що лежить нижче порогу чутності або повністю маскованою, виявилось, що код не повністю заповнює виділений для цього каналу об'єм, і кодер має можливість використати це місце для кодування іншого каналу. У документації до mp3enc помічено, що цим, наприклад, уникає кодування " тиші" в одному каналі, коли в іншому є сигнал.

Цей режим виставлений за умовчанням у більшості ISO - based кодерів, а також використовується продукцією FhG IIS на бітрейтах вище 192kbs. Застосуємо і на нижчих бітрейтах близько 128kbs... 160kbs.

Joint Stereo(MS Stereo) -- Стереосигнал розкладається на середній між каналами і різницевий. При цьому другий кодується з меншим бітрейтом. Це дозволяє дещо збільшити якість кодування в звичайній ситуації, коли канали по фазі співпадають. Але приводить і до різкого його погіршення, якщо кодуються сигнали, по фазі не співпадаючі. Зокрема, фазове зрушення практично завжди є присутнім в записах, оцифрованих з аудіокасет, але зустрічається і на CD, особливо якщо CD сам був записаний свого часу з аудіострічки. З іншого боку, вже здійснена(перша ?) спроба написати програму для автоматичної корекції фазового зрушення, адреса сторінки автора -- http://www.chat.ru/~lrsp. Можливо, вона трохи допоможе любителям кодувати оцифрування з аудіокасет з бітрейтом близько 128kbs.

Режим виставлений за умовчанням продукцією FhG IIS, а також кодером Lame, для бітрейтів від 112kbs до 192kbs.

Joint Stereo(MS/IS Stereo) -- Вводить ще один метод спрощення стереосигнала, що підвищує якість кодування на особливо низьких бітрейтах. Полягає в тому, що для деяких частотних діапазонів оставляется вже навіть не різницевий сигнал, а тільки відношення потужностей сигналу в різних каналах. Зрозуміло, для кодування цієї інформації вживається ще менший бітрейт.

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

Цей режим за умовчанням використовується продукцією FhG IIS для високих частот на бітрейтах від 96kbs і нижче(іншими якісними кодерами цей режим практично не використовується).

Але, як вже говорилося, при застосуванні цього режиму відбувається втрата фазової інформації, також втрачається будь-який сигнал протифази.

Способи зберігання MP3

Стандарт MP3 не визначає ніякого точного стандартного математичного алгоритму кодування, його розробка цілком і повністю залишається на совісті розробників кодерів. Замість цього він визначає загальну схему процесу кодування, а також формат закодованого фрейма. Самі послідовності фреймів можуть передаватися потоком(процес передачі такого потоку називається streaming) або зберігатися у файлах.

MP3 файл, як і потік, складається з послідовно расположеных фреймів, між якими може міститися довільна інформація. Основна вимога полягає в тому, що не повинно бути збігів з сигнатурою початку фрейма.

Часто до послідовності фреймів додають стандартний заголовок мета-аудиоформата WAV, і виходить те, що називають WAV - MP3. (Трохи детальніше про останній буде сказано нижче, коли описуватиметься ACM pro codec.) Ще частіше до MP3- файлу додається інформаційний блок ID3v2, що містить інформацію про виконавця, жанр, назву композиції, і іншу подібну інформацію про трек. Він додається в кінець файлу. У середину доки ніхто нічого ставити не придумав. Хоча, взагалі кажучи, може представляти деякий інтерес вставка спецтега для VBR з інформацією про те, в якій частині трека ми, власне, знаходимося.

Характер втрат при кодуванні

На низьких бітрейтах завжди зрізуються дрібні, порівняно тихі деталі, наявність або відсутність яких нерідко серйозно міняє емоційне забарвлення композиції, надає або позбавляє її таких ефектів, як відчуття 'кристальної' чистоти звуку(у тій мірі, в якій вона є присутньою в CD Audio). Крім того, відповідно до психоакустичної моделі, вищі(вище 16 кГц) частоти на низьких бітрейтах кодуються з дуже низьким пріоритетом.

Далі, мають місце різні особливості кодерів. Так, у кодерів від FhG IIS на 128 kbs виявляються 'змащені' верхні частоти, спостерігається ефект 'шепелявості', тоді як у ISO - based замість цього -- 'дзвін'. Швидше за все, це пов'язано з різним відношенням до частот вище 16kHz у цих кодерів. У кодері Lame, до речі, вони за умовчанням зрізуються, що збільшує якість кодування на 128kbs.

На вищих бітрейтах при послідовному дотриманні психоакустичної моделі, розробленою FhG IIS, проблеми можуть доставляти тільки помилки, внесені при написанні кодера. Втім, із-за не занадто великої заклопотаності FhG IIS якістю його кодерів на високих бітрейтах вже не раз виявлялося, що нова версія звучить іноді навіть дещо гірше за стару. Вважаю, причина криється в недостатньому або неправильному послабленні обмежень психоакустичної моделі при підвищенні бітрейта. Знову ж таки, перший серйозний замовник, і проблема зникне.

Кодування з формату WAV PCM підтримують усі кодери. Багатьма підтримується AIFF. Mp3enc може приймати початкові дані потоком, без проміжного файлу, у фоpмате PCM. А mpegEnc і Cdex пропонують кодувати прямо з CD - ROM. Lame поширюється у вигляді початкових кодів і може бути навчений будь-якому формату.

Який статус MP3 кодерів?

Усі продукти Fraunhofer IIS і Xing Tech -- комерційні, але повні версії зазвичай можна знайти на FTP пошукових системах.

BladeEnc, mpegEnc -- freeware, але FhG IIS побажав зробити їх розвиток неможливим. Зроблено це дуже простим методом -- за поширення кодерів треба платити пеню FhG IIS, навіть якщо кодер поширюється безкоштовно. Тому вільне поширення mpegEnc неможливе, також можуть виникнути труднощі з поширенням BladeEnc, незважаючи на особливу політику країни автора по відношенню до патентів на математичні алгоритми.

Lame не погрожує подібна доля, оскільки він поширюється у вигляді патча до початкового коду ISO і сам по собі кодером бути визнаний не може.

Які системні вимоги?

Фактично, єдина вимога до системи -- наявність компілятора C. Але продуктивність MP3 кодерів на слабких системах залишає бажати кращого, і з процесорів Intel не рекомендується використати що-небудь нижче 486.

Декодиpование MP3

Cтандаpт MP3 однозначно опpеделяет, які саме дані содеpжатся в MP3- файлі. Hо сам процес декодування, процес перекладу аудіо з MP3 в PCM, неминучий при відтворенні, коректніше буде назвати синтезом, ніж декомпресією. На практиці він такий же неоднозначний, як і процес кодування.

Багато пpинимают за деякий стандаpт самий пеpвый з декодеpов, написаний в FhG IIS -- l3dec. Цей декодер при роботі не робить яких-небудь спроб " поліпшити" звучання і, як правило, дає точну АЧХ збереженого сигналу. Також в силу коректності його можна вважати практично ідеальним декодером для MP3 високих і середніх бітрейтів.

З іншого боку, на практиці іноді виявляють себе ньюансы, про яких раніше не замислювалися. Наприклад, різні кодери зберігають аудіо в MP3 трохи по-різному, хоча і не виходячи за рамки стандарту, але дещо міняючи алгоритм оптимального відновлення збереженої частини сигналу. Але якщо в даному випадку відмінності виявляються несуттєві, то той простий факт, що при кодуванні з бітрейтом 128kbs, що користується бешенной популярністю, ми значно втрачаємо в якості, призводить до істотніших наслідків -- на низьких бітрейтах стає виправданим застосування різних алгоритмів, що 'покращують' звучання, тобто програмних DSP, і коректніший декодер може виявитися менш прийнятний, чим що вносить додаткові спотворення, але " що підвищує" цим якість звучання. На жаль, вибір не занадто великий.