Sunday, February 19, 2012

Малко за мр3

Споровете дали мр3 е добър или лош формат, и дали прави добри или лоши файлове са стари колкото и формата. Истината е че с мр3 можете еднакво добре да постигнете както лоши, така и добри резултати. Проблемът е че МР3 като всеки формат за работа с компресия със загуби, е опърничав, и иска да правите нещата както на него му харесва, за да имате добър резултат, иначе, ще ви докара главоболия, в каквито си искате количества. Ако не беше така, щеше ли толкова много народ да е пропищял от мр3, и ако не беше така, щеше ли в нета да има толкова много мр3 със слабо качество? и в двата случая отговора е не.

МР3 е формат със загуби, което означава че част от информацията, тази част, която се счита за излишна, бива премахната физически от файла, и после няма начин да се възстанови в оригиналния си вид. Това само по себе си ни налага да сме малко по-изобретателни, при балансирането на параметрите, и да направим някои жертви, с нашите изисквания, за да постигнем резултата който искаме. Например ако преследваме качество, трябва да преследваме сляпо само и единствено този показател, като не трябва да вземаме по внимание скоростта на енкодване или обема на крайния файл. Изцяло фокусираме вниманието на енкодера върху качеството. Файловете ще стават бавно, ще са големи по обем, но ще ви радват с добро звучене. Всеки компромис, който направите, ще се отрази на качеството. Общо взето това е балансирана система, в която балансът е важен и всяко нещо е за сметка на другите. Повишавайки единия параметър вие отнемате от другите. Тук от голямо значение е вие самите да сте наясно какво искате, и какво можете да дадете в замяна, преди да започнете енкодването. МР3 не толерира неща като да не знаете какво искате, и не толерира незнание и прибързаност. Веднъж да му отстъпите с милиметър, и ще ви нападне и притисне с цялата си ярост и агресия, докато не ви забие в ъгъла.

Има няколко важни неща с които трябва да се съобразите, за да направите добър мр3 файл е да намалите намесата на мр3 енкодера, колкото може повече. Минималната необходима намеса, е това което ви трябва. Мр3 енкодерите заради природата на мр3 формата се справят зле със смяната на честотата на дискретизация, и със смяната на дълбочината в битове. Съответно тези процеси трябва да бъдат елиминирани. Избирайте източници които да отговарят на няколко критерия преди енкодването. МР3 е стерео формат, съответно ако му дадете нещо повече от стерео, мр3 ще омаже всичко. За това критериите за избор на файлове, трябва да са файла да е стерео, и  да има същите дълбочина в битове, и честота на дискретизация, като крайния мр3 който желаете. Така намалявате намесата на мр3 енкодера до минимум, съответно намалявате и загубите които се внасят, по време на компресия.

Тъй като битрейта при мр3 е силно ограничен, до 320 килобита в секунда и това се разпределя динамично за два канала (ляво и дясно за стерео) съответно ни трябва и похват за рационализиране на битрейта който се използва - разбирайте на вкараме повече информация, в този битрейт, и така да постигнем по-високо качество. Методът е Mid/Side stereo encoding. Този режим на енкодване не внася допълнителни загуби тъй като информацията реално не се премахва, тя само се пренарежда така че да вземе по-малко битрейт, и от там да рационализира разхода на битрейт. Информацията се пренарежда в два канала страничен канал, в който се съдържат разликите между ляв и десен канал, и среден канал, в който се съдържа общата информация за двата канала. Методът е по-сложен като процес на енкодиране и декодиране, но пък, намалява значително необходимият битрейт. При правилното използване на този режим, можете да постигнете мр3 с mid/side stereo encode което да е по-качествено от mp3 stereo encode, защото с mp3 mid/side stereo encode ще използвате битрейта по-рационално, и ще можете да съберете повече информация в битрейта, като тази допълнителна информация, ще се използва от декодера, за по-достоверно възпроизвеждане.

Музиката е динамична, тя се състои от прости и сложни моменти. Това до скоро създаваше проблем при енкодване, и беше причина за неравномерно звучене  при мр3 записите. Това се дължи на режима на енкодване CBR - Constant BitRate - постоянна компресия. Това е лошо, защото всички елементи в една песен минават под една компресия под един калъп. за простите това не е проблем. Простите си понасят компресията, и нямат големи загуби на качество, защото няма какво да се губи. Виж за сложните картинката не е толкова розова, напротив , даже е нежелано черна. те имат какво да губят, и спрямо една такава компресия страдат, защото има много информация, сложна информация, която страда от компресията. Резултатът е че тези части звучат зле, и това допринася за неравномерното звучене. Разбира се и за тази болежка има лек. Това е режимът VBR - Variable BitRate. Този режим се характеризира с особен режим на работа. При работата си VBR използва за критерии, исканото от потребителя качество, и работи за да го постигне и поддържа равномерно. Начина му на работа е да анализира даден фрейм, и да избере оптималната степен на компресия при която се покрива критерият. Така режимът не само постига високо качество, но и го поддържа равномерно. Това е важно, при алгоритъм който работи на принципа на премахването на излишна информация. Това дава реален чуваем резултат. Проблемът тук е че стари звукови карти и стари плейъри и стар хардуер, има проблем с разчитането и просвирването на Mid/Side Stereo VBR енкодвани записи.тук проблемът не е в мр3 файла, той си е наред. проблемът е в техниката, тя не спазва напълно мр3 стандартите и спецификациите. Всеки плейър, който ги спазва, няма проблем с този род файлове.

Другото което трябва да знаете, при МР3 не бива да съперничите. Тук има общо казано 3 основни неща, които определят крайния резултат, и те са:
Искано качество
Скорост на енкодване
Краен размер на файла

За да постигнем добро качество трябв да преминем на принципа целта оправдава средствата. Тоест водим се само и единствено по критерии максимално качество, и изобщо не бива да се интересуваме от това колко ще е голям файла, и колко време ще му трябва за да стане готов.

Макар че ерално погледнато с днежните процесори, и в най-сложния си режим енкодването до мр3 става светкавично бързо, така че използването на високите режими на енкодера при комбинация всичко наведнъж, варираща компресия и Mid/side stereo VBR quality V=0, Quantization Quality Q=0, няма проблем със скоростта. Тежестта на тази задача, отнесена спрямо съвременните компютри, е все едно да натоварите камион с възглавници. Така както камиона няма да усети възглавниците, така, и за процесора това е нищожно натоварване.

Краен размер на файла, едно време може да е бил проблем, но вече не е, на пазара свободно се продават терабайтови дискове с безумни скорости на достъп и трансфер. И като скорост на трансфер и на достъп и като обем, един голям мр3 файл, представлява нищожна задача, за диска.Нищожно място, нищожно натоварване за достъп, четене и трансфер, така че няма смисъл да правите компромиси.

МР3 е формат с ограничени ресурси, които се балансират, между обем/качество/скорост на енкодване. Когато облагодетелствате един от тези ресурси това става за сметка на другите два. За това смело облагодетелствайте само качеството, за сметка на скоростта на енкодване и обема и не се притеснявайте. Крайният резултат, е че файла ще ви радва с по-високо качество.

Специално с мр3, недей те да правите компромиси, защото това е опърничав формат, и ще си покаже магариите. Следвайте плътно само за качество, целта оправдава средствата, и ще имате исканият резултат. Всеки компромис само намалява качеството. С колко ще намали качеството, зависи какъв компромис правите и колко голям компромис правите.

Недей те да траскодирате. Транскодиране и пре-енкодване е едно и също нещо, с различни имена. За добри резултати, пак трябва да се съобразим с капризите на мр3. За това, избирайте некомпресиран източник, и компресирайте до исканите параметри от първия път. направо компресирате в исканите параметри. Само така ще постигнете наистина исканото качество. В противен случай, ако транскодирате, сами си правите сечено, и никой не ви е виновен, освен вас самите. При транскодиране имате 2 сценария, или транскодираният файл е със същото качество като оригинала, но новия файл е с по-голям обем - ненужно разхищение на битове (които иначе биха се оползотворили много по-рационално и биха довели до много по-добър резултат, или файл със същия обем и по-лошо качество. Тук няма разхищение на битове но има един куп психо акустични похвати които са вече нарушени, и това води до ниския краен резултат. Част от извадената информация при мр3, се компенсира с психо акустични похвати като:

Dither
Noise sharpening
Noise shaping
Quantization
Simultaneous Masking
Pre-masking
Post-Masking
fanthom tones

И всички тези похвати се балансират, за да се постигне баланс, който да отговаряна исканото качество от потребителя, спрямо исканото ниво на компресия. Разбира се битрейта и качеството с пряко свързани. Ако за малки разлики в битрейта, едно пре-балансиране на психо акустичните похвати може да свърши работа, то за голяма разлика в битрейта, звученето все ще се скапе, независимо какво и как се опитвате да пребалансирате. иначе зависимостта между битрейта и качеството е ясна - нисък битрейт скапано качество, висок битрейт високо качество. Едно транскодиране, нарушава всичките тези похвати и техния баланс, и се премахва още информация. Тъй като вече информацията е променена, и използваните психо акустични похвати, трябва да се пре-балансират наново, но понеже информацията е променена, те ще се пре-балансират по друг начин, според новата информация, и това ще промени и намали качеството. Не може щом е извадена информация от даден фрейм компресиран с алгоритъм със загуби да постигнем по-високо качество. Няма как. първоначалната информация е физически премахната от файла и няма откъде да се вземе. Разбира се има някакви алгоритми за интерполация и екстраполация на липсващото, но далеч не са надеждни. Интересното е че тези алгоритми работят по-добре ако оригиналния файл е с по-висок битрейт, защото има повече информация върху която може да направи интерполация или екстраполация, и по-зле на файлове с нисък битрейт, защото има по-малко налична информация която може да използва, за да интерполира и екстраполира липсващото. Друго важно за интерполацията и екстраполацията работи добре на прости фреймове, защото ще им по-малко за работа и то ще е по-лесно като естество, и работи по-зле на сложни фреймове, където трябва да се изчислява, интерполират много неща, и те да се балансират с останалото.

Общо казано, това е с което трябва да се съобразите, и да си изградите система според това, за да постигате добри резултати. мр3 позволява балансирането на 11 параметъра на компресия, които определят отношението скорост на енкодване/качество/обем на файла. Това ви позволява да експериментирате, и да намерите този баланс, който на вас ви харесва най-много.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.