Sunday, February 19, 2012

MP3 и качеството

Всички си говорим абе това звучи по–добре, това не. А знаем ли какво се крие зад разширението мр3 и как то влияе на качеството?

Да погледнем какво се крие в мр3 файла:

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

Stereo/mono mode важна част от звученето, определят звученето плътността на звуците и обема на звука.

Mono mode 1 (mono)
Най–ниското качество, като вход идва стерео сигнал, левия и десния канал се осредняват и уеднаквянат с нормализация, и единия се елиминира, (няма значение кой те и двата са напълно еднакви) и полученото се записва като общ поток. Звучи монотонно, и без обем.

Mono mode 2 (Forced Stereo)
Тук отново е най–ниското качество, като вход идва стерео сигнал, левия и едсния канал се осредняват и уеднаквянат с нормализация, но за разлика от предния режим никой канал не се елиминира. Двата се записват като в общ поток, на единия се дава флаг ляв канал на другия десен. Няма промяна в качеството, но обема на файла е удвоен. Този формат е измислен за нуждите на радиостанция или ТВ станция се прави мост между 2 държави в единия канал върви информацията от едното студио, в другия от другото студио. Във всяка слушалка, върви отделен поток от информация. Mono Mode 2 няма широко приложение, и се ползва само за такива нужди.

Stereo mode 1 (Join Stereo)
Това е най–масовият стерео формат, за мр3, и масовите касетофони и радиостанции, и за звуковият сигнал на Телевизиите. Масово до скоро касетките се записваха в този формат, Тук постъпващият стерео сигнал се разлага на 4 части, Surround sound и common audio data. Surround Sound представлява звука, за ляв и десен сигнал които са си различни едно за ляв канал и друго за десен канал. Другите 2 части които са напълно еднакви помежду си се наричат common audio data. От тях единият се елиминира, няма значение кой, и двата са еднакви. Останалите 3, 2–та surround sound и единият common audio data се събират в общ аудиопоток. Това е принципа на действие на повечето dolby prologic/dolby digital системи. Тук се усеща детайлонст в звученето, има някакъв обем, като цяло, тук страда само обема.

Stereo mode 2 (dynamic stereo)
Тук вече сигнала не се преобразува. В аудио потока фигурират Surround sound и Common audio data тук обаче се обръща внимание на подробностите. Тоновете с различни честоти, си взаимодействат взаимно. Това е причината нищо да не се пипа. В общият поток, се записва всичко, но двата common audio data потока се разграничават и причисляват към surround sound. Използва се подробността че честотите на surround sound и честотите на common audio data взаимно си взаимодействат резонансно, Така се запазва детайлното звучене и се запазва обема на звука.

Корекция на грешки, по време на просвирването.
Тази процедура има най–висок резултат, само при MP3 с най–високо качество. За всеки фрейм от парчето, като се компресира до МР3, се създава отделно CRC, и се прикача към фрейма. Задължително е да е 16 битова разделителна способност, за да има информация която да се използва за интерполиране на повреденият участък, инак резултата от тази техника е много нисък. Преди просвирването, още в буфера, докато фрейма чака да се просвири, се проверява за годност по четност. Ако има проблем, на основата на това което е наред и на основата на CRC се интерполира този участък който има проблем. Разбира се не се получава100% възстановяване, но нивото на корекция е достатъчно че ухото да не разбере какво е станало.

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

постоянна компресия – CBR – Constant BitRate
Това е най–простият начин за комресия на мр3. Старите плейъри (програми) и старите звукови карти могат да просвирват само него. Представлява постоянна компресия, за всички части на една песен. По–простие елементи звучат по–добре а по–сложните по–зле. Постоянна компресия и непостоянно качество. При тях може да се предвиди точният размер на файла. Има формула по която може да се изчисли и обема на файла.

Начина за изчисление е следният

Краен размер на файла=степен на компресия уммножен по брой секунди резултата разделен на 8, зада може битовете да се обърнат в байтове.

Примерно ако имате песен с дължина 3 минути и 16 секунди, със степен на компресия 128 килобита за секунда, формулата изглежда така 196 секунди = 3 минути и 16 секунди 3х60 секунди=180
180+16=196 секунди

(128x196):8=3136 килобайта

ако същата песен е записана в обикновен WAV файл с параметрите по подразбиране се получава
44,1х2 (за ляво и дясно на стереото)х2 за 2 байта на всеки семпълх196 секунди=34 574,4 килобайта.

Степента на компресия се изчислява като разделите обема на wav файла на обема на mp3 файла.

34574,4/3136= 11,025 пъти по–малък файл.

Разбира се тове само приблизителна сметка, която не включва байтовете за служебна информация на мр3 файла, не включва байотевете за заглавка на файла и не включва байтовете за id3v1/id3v2 таговете, където има описани подробности за файла като изпълнител, албум, година на издаване, стил.....

Но като цяло, като ориетир, за компресия от 128 kbps може да се счита приблизително – мегабайт на минута – ((128X60)/8 = 960KB, приблизително 1MB)

Варираща компресия със среден показател за качество (ABR) – Average Bitrate
Примерно казвате на енкодера да се придържа към качествто на 160 килобита равномерно качество, на песента, в рамките на интервала, 112 – 192 килобита, като мр3 енкодера ще избира най–бизката до 160 килобита степен на компресия, като за по–сложните части на компресията използва, по–малка компресия, над 160 килобита под 192 както е в нашия пример, а за по–простите използва степен на компресия над 112 но под 160, но винаги качеството ще се върти около 160 килобита, от там и варираща компресия със среден показател за качество.

Варираща компресия (VBR) – Variable bitrate
това е най–съвършеният вид мр3, предлага най–високо качество, предлага и най–равномерно качество, и с голям интервал в който компресията да варира свободно. В този режим единственият критерии около който се върти всичко е исканото от потребителя, качество, а всичко друго, и степента на компресия се избира за всеки фрейм се съобразява според исканото качество. Тук няма среден показател около който да се върти всичко, тук важно е само качеството искано от потребителя и всеки фрейм се компресира сам за себе си, и му се прикача CRC, целта е най–високо качество, най–равномерно качество и най–малък файл едновременно.

За да няма проблем, при МР3 с варираща компресия, и за да може този тип компресия да работи коректно, трябва да зададете качество, трябва за зададете интервал от минимална и максимална компресия в голям диапазон, и алгоритъм на варираща компресия, но ако това условие не се спази, не се знае какъв ще е крайният резултат, примерно:
Високо качество, в интервала 112 – 320 килобита в секунда с алгоритъм VBR–NEW.

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

Варищата компресия има, 2 основни алгоритъма VBR – OLD и VBR – NEW които работят по различен начин.

VBR – OLD старият алгоритъм, при който степента на компресия се избира според динамиката на фрейма

VBR – NEW новият алгоритм при който степента на компресия се избира според нивото на шум и изкривявания при компресията

VBR – NEW дава по–добър резултат сравнен с VBR – OLD.

При OpenSource L.A.M.E. Encoder има и един трети алгоритъм който се казва
VBR – MTRH. Този алгоритъм сам по себе си не е нов алгоритъм, Той обединява силните страни на VBR – OLD и силните страни на VBR – NEW като по този начин се неутрализират техните слаби страни. Тук резултата е най–високо качество, защото вече качеството и степента на компресия се определя както по динамиката на фрейма – силната страна на стария алгоритъм, така и нивото на изкривяване на звука и нивото на шума в звука – силната страна на новия алгоритъм тоест по трите показателя на двата алгоритъма едновременно. Така преценката, и избраната степен на компресия намалят изкривяванията и шума, не ощетяват чак толкова много динамиката, обема и наситеността на звука при плейването на такъв файл.

Исканото качество, се задава и избора на параметър VBR_X където Х е показателя за качество.

Степените за компресия/качество са
от 0 до 9 – 1, 2, 3, 4.....9

където
VBR_0 най–високото качество и най–голям файл
VBR_9 най–ниското качество и най–малък файл
За масовите нужди, и за нуждите за интернет, оптимума е VBR_4

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

Sampling rate
носи най-често следните стойности, и се измерва в херци:
8000, 11 025, 12 000,  16 000, 22 050, 24 000, 32 000, 44 100, 48 000
и представлява колко пъти в секунда, се просвирва част от записаната музика. Колкото повече толкова по-плавно и по-гладко звучи файла.
пример:
22 050 е Семплиращата честота на обикновения аналогов телефон и аналоговата мобилна мрежа, евтино радио и радиоточка (някои знаят какво е радиоточка, други не...)
24 000 е Семплиращата честота на цифровите телефони и GSM системите до 3-то поколение
32 000 е Семплиращата честота на телевзиите и GSM 3-то и по-ново поколение, и до скоро купешките касетки
44 100 е Семплиращата честота на стандартното купешко СД
48 000 е Семплиращата честота която е максиума на формата.

Frequency bandwidth: варира от 4000 херца до 24 000 херца
Предсатвлява честотна лента с начална и крайна честота и широка в интервал от чуваеми честоти, които ще се чуват. Колкото повече, толкова по-добре, звука ще е по-наситен, и по-реалистичен. Загубите на качество са по-малки.

Пример:
11 025 херца е ширината на честотната лента на обикновения аналогов телефон и аналоговата мобилна мрежа, евтино радио и радиоточка (някои знаят какво е радиоточка, други не...)
12 050 херца е ширината на честотната лента на цифровите телефони и GSM системите до 3-то поколение
16 000 херца е ширината на честотната лента на телевзиите и GSM 3-то и по-ново поколение и до скоро купешките касетки
22 050 херца е ширината на честотната лента на стандартното купешко СД
24 000 херца е ширината на честотната лента която е максиума на формата.

Resolution: 8 и 16 битова разделителна способност. Трябва да спомена че звука който чувате е съвкупност от синусоиди*, подредени в редове на Фурие**

*вълнообазна крива в математиката, по-точно в геометрията, в раздел тригонометрия, която описва функцията синус - Sin, която се движи в интервала от –1 до +1

**Фурие е френски физик и математик, открил зависимостите и закономерностите в подреждането на синусоидите в звука, и затова носи неговото име.

При разделителна способност 8 бита, интервалите от –1 до 0 и от 0 до +1 се делят всеки на по 256 части (в интервала 0 – 255 като 0 се приема за стойност, за това са общо 256), като промените и преходите в звученето не са плавни и се чува как затихва или се усилва на етапи. Нарушава се плавното звучене.

При Разделителна способност 16 бита, интервалите от –1 до 0 и от 0 до +1 се делят всеки на по 65536 части, (в интервала 0 – 65535 като 0 се приема за стойност, за това са общо 65536), като промените и преходите в звученето са много по-плавни и много по-гладки, се чува как затихва или се усилва плавно без да се нарушава плавното звучене.

No comments:

Post a Comment

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