Кратък аудио наръчник - Dithering

Модератор: Diabolik

Отговори
Потребителски аватар
Diabolik
Старши котарак
Мнения: 496
Регистриран на: 24 дек 2012 12:30

Кратък аудио наръчник - Dithering

Мнение от Diabolik » 28 дек 2012 01:15

Dither добавяне на шум, който се използва за произволно разпръскване на грешките при quantization. Целта е да се предотврати появата на звукови дефекти които имат някакъв контур, или модел, като се оставят малки парченца шум, които не са свързани по никакъв начин със сигнала или помежду си. Тези парченца шум обикновено са с 64 - 84 децибела по-слаби от оригиналният сигнал и за това не ги чувате, защото оригиналният запис ги маскира, все едно със simultaneous masking.

Предпоставка за Dither е това че quantization и re-quantization в цифров поток, е свързано с грешки в потока. Ако грешката се повтаря и е пряко свързана със сигнала, Грешката е математически откриваема и определяема. В някои случай, когато приемника на сигнала е чувствителен към подобни грешки, тези циклични грешки, предизвикват осезаеми дефекти. В тези случаи Dither не може напълно да отстрани тези грешки, но може да ги намали и то значително. В случая, аудиото е директен пример за това. И по-точно човешкото ухо. Човешкото ухо играе ролята на преобразувател на редовете на фурие, и може да чува отделните честоти. Ухото е чувствително на изкривявания,и оцветяване или добавяне на тонове, веднага указва своето влияние.Тези свойства на ухото го правят далеч по-малко чувствително към произволни парченца шум, намиращи се на произволни места в диапазона на чуваемост и в продължителността на записа.

В окончателните записи на СД, дълбочината е 16 бита, Но през обработката на сигнала се работи с по-голяма дълбочина, и на края когато записът е окончателно завършен и напълно готов се преобразува до 16 битов и се записва на СД.

Има много начини това преобразуване да се направи. най-простият е просто последните 8 бита да се отрежат - truncation. Другият начин е да се запазят първата и последните стойности а останалите да се отрежат и останалите да се закръглят. Всеки от двата метода, предизвиква уникални за нето циклични и математически откриваеми и доказуеми грешки.

Ако във вълна съдържаща дадени стойности, при тяхната обработка, като се умножават по 0.8, резултатът винаги ще съдържа грешки. Повтаряща се вълна квантизирана до оригиналните стойности, Грешка ще се появява всеки път, защото оригиналната стойност "3.4" ще е директно отрязана с 0,4. Всеки път когато оригиналната стойност би трябвало да е "5" Грешката след орязване ще е 0. Така,количеството на грешката ще се променя отново и отново, със смяната на стойностите. Резултатът е циклично поведение на грешката, Която се показва като допълнителен тон във вълната. Ухото усеща тази грешка, като допълнителна честота в сигнала.

Приемливо решение би било, двуцифрено число, примерно, 4.8 да се закръгли до нему най-близкото. Веднъж да се закръгли до 5, вторият път да се закръгли до 4. В по-дълъг план, това ще даде резултата 4,5, Което я приближава до оригиналната стойност и намалява грешката. Това все пак няма да елиминира грешката, тя ще ще се усеща по-малко, но ще се усеща. Грешката ще е по-сложна,и ще е 0,2. Следващият път когато се падне стойност 4.8 ще има грешка равна на 0.2, а следващият път грешката ще е -0,8. Това ще доведе до грешка, която може да бъде коригирана и отстранена с quantization.

Друго приемливо решение би било да се вземе стойността 4,8 и от общо 5 закръгляния, първите четири да са със стойност 5, и петото да е със стойност 4. Този метод изкарва средна от 4.8 във времето, което на теория би трябвало да елиминира грешката. За жалост, на практика не става както на теория, и тези грешки ще се натрупат в циклична поредица, с ясно различим и математически доказуем модел на появяване:

5 5 5 5 4 5 5 5 5 4 5 5 5 5 4 5 5 5 5 4 5 5 5 5 4

и ще се издадат като допълнителен сигнал, и да се появят като изкривяване за ухото.

Това води до решението с dither. Вместо постоянно да се закръглят стойности по разни математически модели, какво би станало ако това се прави на произволна основа?

5 5 5 4 5 5 5 5 5 5 4 5 5 5 4 5 5 5 5 5 5 4 5 5 4

Ако се използва метод за произволно закръглена до 4 и 5, така че 80% от стойностите да са 5 и останалите 4, тогава пак имаме резултат от 4,8 в продължението на вълната, но това ще е на напълно произволна основа, и няма някаква цикличност или математическа зависимост, и грешката няма модел на повтаряемост - съответно ухото е много по-малко възприемчиво към нея. Това се постига с процеса Dither.

Кога може да се използва Dither?
Dither трябва да се добави всеки път преди quantization или re-quantization като предварителна компенсация, за да се избегнат нелинейни изкривявания. По-малко дълбочина в битове изисква по-сериозно участие на Dither. Резултатът е че ще има отново изкривявания, но те ще на на произволна основа във времето и честотният диапазон, което е добре, защото ухото е по-малко възприемчиво към подобни изкривявания,но технически това си е шум, защото това си е непределен във времето звук, което е и определението за шум. Dither също се използва в процеса на намаляване на дълбочината в битове. Dither трябва да се приложи като предварителна компенсация, задължително, преди всяко намаляване на дълбочината в битове.

Отговори