Citat:
peejunk: Najbolji downsampling metod je windowed sinc, odnosno prozorom ograniceni sin(x)/x filter. Sin(x)/(x) funkcija opisuje impulsni odziv idealnog niskopropusnog filtera, ovo nije ostvarivo u fizickom svijetu jer je ovaj odziv beskonacan s obe strane ali ogranicem prozorom na konacan broj uzoraka nudi aliasing koji moze biti toliko nizak da ga je nemoguce fizicki ostvariti (gurnut je ispod razine suma).
Ovo je skoro tacno, ali ne sasvim.
Donwsampling se sastoji od dve procedure. Prva je filtriranje originalnog signala u cilju
eliminisanja svih spektralnih komponenti koji se nalaze iznad novog, manjeg Fs. Ako
se to ne bi uradilo, dolazilo bi do tzv. aliasing-a, sa potpuno predividivim izoblicenjima
u visem delu spektra.
Jedan od dobrih izbora, narocito kad se ne radi o real-time filtriranju je tzv. idealni FIR
low-pass filter, tj. upravo to sto je PeeJunk naveo. Medjutim, iako je taj postupak
najblizi idealnom, zahteva neuporedivo vise mnozenja i sabiranja nego neke druge
metode (drugi tipovi filtara), koji sa daleko manje utrosenih CPU ciklusa mogu da daju
sasvim poredive rezultate.
Druga etapa downsamplinga je interpolacija. Na bazi semplova originalnog signala koji
'seckaju' originalnu talasnu formu na intervalima t0 treba proceniti vrednosti te iste
talasne forme na intervalima t1 > t0. Obicno se vrednost novog sempla racuna kao
tezinska funkcija okolnih semplova. U najprostijem slucaju to su dva susedna sempla,
a u boljim algoritmima to su N okolnih semplova pri cemu svaki ucestvuje sa tezinom
odredjenom po nekoj krivi.
Bitno: pokazalo se da vrlo dobre rezultate daje tezinska funkcija sin(x)/x, koja je
u ovoj fazi algoritma izuzetno popularno resenje. Drugim recima, iako primena
windowed sinc(x) nije obavezna za filtriranje (prvi deo downsampling algoritma), za
interpolaciju je vrlo cest izbor.
Citat:
Sto se ditheringa tice, zelis li najbolje a nemas neki POW-R sistem pri ruci, moras se zadovoljiti sa (vrhunskim) ditherima u Izotope Ozone i Waves L1+. Dakle, napravis downsampling u 32-bitni 44,1 a onda protjeras val kroz Ozone/L1+ tako da iskljucis sve ostavis samo dither, i tu odaberes ciljni bitrate i dither algoritam (svi su tu negdje a ti probaj cuti razliku :D ) i ditherujes. Potom samo konvertujes u 16 bita bez dithera (ostace ti dither iz prethodnog postupka).
Cela prica oko dither-a je malo prodavanje magle. Dither ima smisla samo u slucaju
spektralnih komponenti ciji intenzitet lezi negde oko najnizeg kvantizacionog nivoa.
Cista sinusoida (prijatna za uho) koja bi prosla kroz kvantizer izasla bi kao cetvrtka
(izuzetno neprijatan spektar). Da bi se to izbeglo, namerno se uvodi sum, kako bi
se sinusoida zabrljala i kako ne bi proizvela tu neprijatnu periodicnu cetvrtku.
Glavni deo posla tu obavlja ljudska percepcija koja je istrenirana da izdvaja sum,
tako da taj uneseni dither ostaje neprimetan, a sinusoida se 'cuje' gotovo
neizmenjena. I vuk sit, i ovce na broju (pojeden cobanin).
Zasto cela prica ima vrlo ogranicen smisao ? Zato sto mozda u simfonijskoj muzici
moze da se cuje neki dugotrajniji piano, a kod gomile popularne muzike eventualno
neki tranzijenti prema tisini mogu da budu ugrozeni, ali oni traju toliko kratko da potpuno nema smisla.
Sto veca dinamicka rezolucija, to je manja sansa da se cuje sum nivoa jednog bita.
Ja licno nikad razliku nisam cuo vec na 16 bita. Cak jednostavno odsecanje nizih 8
bitova u 24-bitnom semplu ne znaci puno, ako je u pitanju gotov snimak.
Jedini scenario gde primena dithera cini razliku je primena na N kanala pre miksovanja.
Sum zbirne greske koja bi nastala grubim odsecanjem bi svakako bio cujan, i u ovom
scenariju nema smisla preskociti dither.
[Ovu poruku je menjao milanche dana 09.12.2005. u 17:48 GMT+1]