Автор Тема: Dithering  (Прочетена 1666 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.    

Неактивен Diabolik

  • зарибен/а
  • зарибен/а
  • ****
  • Публикации: 116
  • Пол: Мъж
  • Black Panther
    • Профил
    • Даволският Блог
Dithering
« -: 2007-09-07, 21:47 »
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 във времето, което на теория би трябвало да елиминира грешката. За жалост, напрактика не става катко на теория, и тези грешки ще се натрупат в циклична поредица и ще се издадат като допълнителен сигнал, и дасепоявят като изкривяване за ухото

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

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