A digitális audió rejtelmei 3-A bitek

A sorozat első részében megismerkedtünk a hangok digitalizálásának alapjaival, így aki még nem olvasta, az ide kattintva tegye meg, mert az ott leírtak ismerete nélkül a mai rész nem lesz könnyen érthető.

Mint már tudjuk, a hangnak nevezett fizikai jelenség egyik legjellemzőbb tulajdonsága, hogy időben folyamatosan változik, legalábbis ami a légnyomás értékeit illeti. Ha a légnyomás változatlan (vagy a változás kívül esik az emberi fül által érzékelhető tartományon), akkor nem normál hangról beszélünk. Ennek megfelelően, ha a hangot elektromos jelekké alakítjuk, mondjuk egy mikrofon segítségével, akkor az így létrejövő feszültségértékek is folyamatosan változni fognak mindaddig, amíg a hang meg nem szűnik.


A hangforrás által keltett nyomásváltozások úgynevezett longitudinális hullámot idéznek elő, ami azt jelenti, hogy a hullám terjedési iránya megegyezik a rezgésiránnyal, vagyis a hullámon belül sűrűsödési és ritkulási helyek követik egymást, a részecskék a mozgás során csak rezgésbe jönnek, egyensúlyi helyüket azonban nem változtatják meg. Egyszerűbben fogalmazva csak a hullám halad a hang irányában, maguk a közvetítő részecskék (például a levegő részecskéi) nem, ezek a nyugalmi állapotukhoz képest csak oda-vissza mozgást végeznek. Ez azért fontos, mert ebből következik, hogy a hang elektromos jelekké alakításakor a mikrofon membránja is folyamatosan előre-hátra mozog. A membrán nyugalmi állapotától mért kitérési értéket amplitúdónak nevezzük, és előre mozdulás esetén pozitív feszültséget, hátra mozdulás esetén pedig negatív feszültséget indukál. Az előre irányt a mikrofonra érkező hang irányával megegyezően értjük, hiszen a rögzített hang fázisa meg kell hogy egyezzen a visszajátszott hang fázisával. Vagyis ha a mikrofonból kilépő jelet egy hangszóróra küldjük, akkor helyes bekötés esetén a hangforrás és a hangszóró által előállított nyomásváltozás azonos irányú kell hogy legyen.

Mindezeknek megfelelően a hang digitalizálásakor használt konverter analóg részeiben létrejövő feszültségértékek is folyamatosan változnak. Tehát digitalizáláskor nem elég csak egyetlen egyszer megmérni a feszültségértéket, azt a hang időtartama alatt folyamatosan meg kell tenni, különben nem feszültségváltozást (nyomásváltozást), hanem egy pillanathoz tartozó feszültségértéket, vagy egy átlagértéket (RMS) kapunk. Ez utóbbi két esetben pedig nem jön létre a hangszóró elmozdulása, vagyis nyomásváltozás, vagyis hang. Ezt pedig nem szeretnénk.

Kvantálási zaj
Digitálisan létrehozott, 1000 Hz-es, -12dBFS jelszintű,
64 bites lebegőpontos ábrázolású szinusz hullám
és a 32 bit lebegőpontos kvantálási zaj spektrum diagramja
A digitalizálást végző analóg-digitál átalakító (konverter) tulajdonképpen nem tesz mást, mint a hang által előállított, az éppen aktuális idő pillanatban létrejövő amplitúdóértéknek megfelelő elektromos feszültségértéket összehasonlítja egy referencia (viszonyítási) feszültségértékkel, és az attól való eltérés értékét tárolja. Az előző részben már volt szó az egyes analóg feszültségértékek digitalizálásakor bekövetkező kerekítési, idegen nevén kvantálási hibákról is, amik minden egyes mintavételkor felléphetnek. Mivel a hanghullámok a legritkább esetben szögletesek, és a referenciának megfelelően egész értékűek, így kicsi a valószínűsége annak, hogy egy átlagos hang digitalizálásakor nem keletkezik kvantálási hiba. A hiba persze tökéletes, matematikai úton létrehozott hullámformák esetén is jelentkezik, például szinusz hullámnál, hiszen a függvény által adott amplitúdó (feszültség) értékek nem mindig esnek egybe a digitalizáló rácspontjaival, vagyis a kvantálható feszültségértékekkel.

Tipp:
Hogy jobban megértsük a kvantálási hiba jelentését, tekintsünk most egy egyszerű példát. Van egy adott hosszúságú falécünk, aminek szeretnénk pontosan megmérni a hosszát. Ehhez egy mérőszalagot használunk, amin centiméter beosztás található. A mérőszalagot a falécre helyezzük, de a léc hossza a mérőszalagon feltüntetett két érték közé esik. Ilyenkor nem tudjuk pontosan megmondani, hogy a léc 12,5, 12,6 vagy talán 12,7 cm hosszú, hiszen nem tudjuk pontosan megmérni. Ahhoz, hogy mégis jelezzük, hogy nem 12 és nem is 13 cm a hossz, az értéket megtippeljük, vagy kerekítjük, pl. 12 és fél centire.


A kvantáló többek között lehet csonkoló vagy kerekítő. Ez azt jelenti, hogy milyen módon választja ki a nem egész számok esetében használt mintaértéket. Az egyszerűség kedvéért vegyük most csak a csonkolást, és elsőként egy 45 fokos szögben egyenesen emelkedő vagy süllyedő hullámformát, ami a teljes spektrumban egyenletes hibaeloszlást eredményez. Ilyenkor a hiba minden esetben a két lehetséges kvantálási érték közé esik, és a legkisebb bit felével egyezik meg pozitív és negatív irányban, vagyis +/- LSB/2. Vagyis minden egyes feszültségértékhez pontosan kiszámíthatjuk a hiba jelszintjét, a zaj jelhez viszonyított szintje bitenként -6,02 dB. Egy 16 bites ideális ADC esetében a kvantálási zaj 16*-6,02=-96,32 dB. Szinusz hullám esetében azonban mindez már nem igaz, ugyanis az ekkor keletkező kvantálási hibák már nem egyenletesen oszlanak el. Ebben az esetben a jel-kvantálási zaj arány 1,761+6,02 x n képlettel számítható, ami alapján 16 bites ideális ADC-nél -98,081 dB kvantálási zajszintet kapunk. Mindez azonban csak akkor érvényes, ha a jel szintje 0 dBFS, ugyanis minél jobban megközelíti az LSB-t, a kvantálási hibák annál inkább a jeltől függően fognak kialakulni, ami hallható torzítást eredményez. Alapvetően elmondható azonban, hogy szinuszhullám és komplex hanganyagok esetben a hibaértékeket leírhatjuk zaj-modellel, ezért a kvantáláskor fellépő hibákat összességében kvantálási zajnak hívjuk, ami egy szélessávú zaj (Gauss-eloszlású zaj, ami abban különbözik a fehérzajtól, hogy eloszlása a spektrumban (fs/2) nem egyenletes). A kvantálási zaj szintjét pontosan megmérni igen nehéz, mert függ a hullámformától, a frekvenciától, jelszinttől, a mintavételi frekvenciától és az alkalmazott kvantálótól és bitmélységtől is, emellett a digitális audió sajátosságai miatt csak a hanggal együtt jelentkezik.

Ez gyakorlati oldalról megközelítve azt jelenti, hogy nem érdemes magas jelszinttel (hangosan) elkészíteni a digitális felvételt, mert ettől nem lesz benne kevesebb zaj (legalábbis a digitális oldalt nézve, az analóg oldal zajszintje és torzítása egy más kérdés, ott meg kell találni az optimális kompromisszumot). Vagyis az elterjedt tévhittel ellentétben a magasabb jelszintű felvételben nem lesz több érdemi információ, nem növekszik a felbontás, legalábbis a ma alkalmazott magas bitszámok esetében. Az alacsony bitszámok, mint 8 vagy 4 esetén már beszélhetünk hallható információ vesztésről, de ezeket hangrögzítésre már ne használjuk.

A kvantálási hiba, tiszta szinuszhullám lejátszása esetén páratlan felharmonikusokat generál. Ugyan komplex hanganyagokat, pl. teljes zeneszámokat is felbonthatunk szinuszhullám összetevőkre (így működnek a digitális spektrumanalizátorok (FFT)), azonban az ezekből generálódott felharmonikusok olyan mértékben kerülnek interferenciába, ami gyakorlatilag véletlenszerű frekvenciák megjelenését eredményezi, vagyis ismét csak zaj keletkezik.

Minél nagyobb az alkalmazott mintavételi frekvencia vagy bitmélység, annál alacsonyabb lesz a kvantálási zaj, hiszen annál "pontosabban" lehet ábrázolni a mindenkori feszültségértékeket. Tehát ezek növelésével nem magát a felbontást növeljük, hanem a zajt csökkentjük, ezáltal lesz "tisztább" a hang. Nézzünk most erre is egy bárki által otthon is elvégezhető kísérletet! Maradjunk az előző példánál, és a teszthang generátoron állítsuk most az 1000 Hz-es szinuszhullámunk kimenő jelszintjét 0 dBFS-re. Ahhoz, hogy szimulálni tudjuk a digitalizáláskor használt különböző bitmélységeket, a teszthang generátor és a spektrumanalizátor közé helyezzünk el egy bitszám csökkentő plugint. A legtöbb DAW-ba találunk ilyet, de ha mégsem, használhatjuk az ingyenes MBitFun-t is, bár ebben a legmagasabb elérhető bitszám 16. Én a példában a Reaper-hez érkező "JS: Bit Reduction/Dither" plugint használtam, amit a fenti képen látható módon állítottam be, vagyis a bitcsökkentést egyszerű csonkolásra (truncate) állítottam. Ez azt jelenti, hogy csak a kiválasztott bitszámon egész számként ábrázolható értékek jutnak át a pluginen. Ugyanezt javaslom az olvasóknak is, mert a dither bekapcsolásával megtévesztő eredményeket kaphatnak. Továbbá jó ha tudjuk, hogy a csonkolt adatok esetében fixpontos ábrázolást alkalmazunk, nem pedig lebegőpontosat. Ez most azért fontos, mert ahogy arról az előző részben már volt szó, a jelenleg létező AD és DA átalakítók csak és kizárólag fixpontos ábrázolást tudnak megvalósítani, nem lenne tehát értelme lebegőpontos ábrázolással elvégezni a kísérletet. (A konverterek képességeivel és a fix- és lebegőpontos ábrázolásokkal pár bekezdéssel később foglalkozunk majd részletesen.) A valódi bitszám ellenőrzéséhez a plugin lánc utolsó darabjaként a Stillwell Audio-Bitter nevű ingyenes pluginjét használhatjuk.

Tipp:
A Reaper hullámforma generátora 64 bites lebegőpontos ábrázolást állít elő, ezért minden további bitmélység csökkentés egyben csonkolással is jár. Ez azt jelenti, hogy nem kapunk teljesen azonos spektrum képet azzal, mintha az egyes bitmélységeken valódi analóg forrást digitalizáltunk volna. Léteznek olyan digitális teszthang generátorok, amik különböző bitmélységen képesek teszthangot előállítani, de ennek a cikknek ez nem témája, mert a probléma enélkül is jól látható. A mellékelt képen egy kifejezetten 16 biten előállított professzionális teszthang (zöld színnel) és a 64 bitről 16 bitre csökkentett Reaper teszthang (vörös színnel) spektrumát hasonlíthatjuk össze.

A kísérlet legelső mérését 24 biten végezzük el, kb. -160 dBFS-t kapunk. Csökkentsük most a bitmélységet folyamatosan, és közben figyeljük meg, ahogy szemmel is jól látható módon emelkedik a zajszint (szó szerint). 16 bitnél már kb. -120 dBFS-re emelkedik, 8 bitnél kb. -74 dBFS, 4 bitnél pedig kb. -48 dBFS-t olvashatunk le a grafikonról. Ha mindeközben hallgatjuk is a szinuszhullámunk hangját, megfigyelhetjük, hogy az kezd egyre torzulni.

Már az előző részben is elvégeztük az egyes bitmélységek alkalmazásával kapott szinuszhullámok vizuális és hallás utáni elemzését, vagyis az elméleti megközelítést. Bár a példában digitálisan előállított szinuszhullámot használtunk, vagyis nem valódi digitalizálást végeztünk, ettől még a példa gyakorlatilag azonos eredményt ad, mintha egy analóg szinuszhullámot digitalizáltunk volna különböző bitmélységeken. Emellett a digitális adatfeldolgozás is ugyanígy működik, persze ez manapság már inkább lebegőpontos ábrázolással történik, amivel egy kicsit később fogunk foglalkozni.

Nézzük most, hogy mit jelentenek a különböző bitmélységek a gyakorlatban, amikor például zenét szeretnénk digitalizálni. Bár ez is csak egy szimuláció lesz, hiszen nem végzünk valódi digitalizálást, de az utólagos bitmélység csökkentéskor gyakorlatilag ugyanazt, mint amit az AD konverternél is tapasztalnánk (nem mellesleg, a legtöbb otthoni konverter nem is képes 8 bitnél alacsonyabb mintavételezésre). Ehhez kapcsoljuk ki a teszthang generátort, és helyezzünk el a sávon egy referencia zenét (én Lorde-Royals című dalát választottam). Állítsuk be a Bit Reduction plugint a lehető legmagasabb értékre (ez a JS plugin esetében 32 bit), és indítsuk el a lejátszást.

Természetesen az eredeti hangzást fogjuk hallani, hiszen nem történik bitmélység csökkentés. Erről egyszerűen meggyőződhetünk a Bitter kijelzőjén is. Sőt, azt is láthatjuk, hogy bitmélység növelés sem történt, hiszen pontosan 16 bit felhasználását mutatja, ami nem csoda, hiszen az eredeti CD sáv is csak 16 bites. Most kezdjük csökkenti a bitek számát a Bit Reduction-ön az Output Bit Depth paraméterrel. Ahogy várható volt, 16 bitig semmi sem történik, hiszen az eredeti wav fájlunk is csak 16 bites. Kb. 12 bitnél már hallani egy kis tompulást a hangzásban, ami kb. 8 bitig nem sokat változik.  Érdemes 8 bitnél ki-be kapcsolni a plugint, és megtapasztalni a különbséget a két hangzás között. Érdekes módon, normál esetben nincs nagy eltérés, tehát érdemes elgondolkodni, hogy vajon megéri-e 32 biten dolgozni!? Amit hallhatunk, azt az alacsony bitszámra kerekítés miatt csökkent dinamikatartományban elveszett részletek okozzák. A problémát leginkább a (3d) tér csökkenésén, vagy megszűnésén keresztül érzékelhetjük, 8 bit esetében a mix összeszűkül, nehezebben hallhatóak a zengetés halk részletei, mert ezek belevesznek a kvantálási zajba (ezért érdemes elméletileg dithert használni a 24/32 bitről 16 bitre csökkentéskor is!).

8 bit alatt viszont már kezdenek hallhatóvá válni a torzulások, természetesen egyre erősödő zaj formájában. 6 bitnél már erősen hallani a torzítást, főként a halkabb részeken, ami kiváló lehetőséget nyújt arra, hogy ellenőrizzük a fenti állítást, miszerint a kvantálási zaj szintje a jel szintjével együtt változik. A hangosabb részeknél 6 biten sem zavaró a zaj (sistergés és torzítás), a halkabb, ritkább részeknél viszont erősen jelenik meg. 4 bitnél a flanger szerű zúgó effekt szinte állandóvá válik, 3 bittől kezdődően pedig a halk részek már kezdenek lenémulni (mert ilyenkor -mint azt már az előző részben megtudtuk-, a jel aktuális dinamikatartománya ezeknél a részeknél az ábrázolásra használt bitek számánál alacsonyabb.) 1 bites ábrázolásnál már csak nagy nehezen tudjuk felismerni az eredeti hangot, hiszen amit kapunk az jobbára csak recsegő, szakadozó zaj.

Vegyük észre, hogy a bitmélység csökkentésével nem csökkent a hangerő, vagyis jobban mondva a kimeneti jelszint csúcsértéke. Ez azért van, mert mint tudjuk, a digitális audió referencia szintje 0 dBFS, ami egyben a lehető legmagasabb jelszintet is jelenti.

Vagyis a digitalizálásra használt bitmélység nem az amplitúdó értékét mutatja (csak azonos jelszintek esetén igaz!), hanem azt, hogy a legkisebb és legnagyobb előállítható jelszintet hány részre osztjuk fel. Szintén fontos észrevenni, hogy a bitszám csökkentés nem "felülről", hanem alulról történik, vagyis nem a hangerőt csökkentjük, hanem a feszültségértékek közötti különbségek kezdenek eltűnni. Ez azt jelenti, hogy a kisebb bitmélységgel ábrázolt hangok halk részei belevesznek a kisebb bitmélység által eredményezett kvantálási zajba, vagyis a kisebb dinamikatartományba. Ezek a halk részek pedig általában a lecsengési részek, itt találhatóak például a térinformációk, amikből agyunk a térbeli elhelyezkedést képes érzékelni. De persze túlzottan alacsony bitszám esetén a direkt felvétellel készült hangokban is problémát észlelhetünk, hiszen a lecsengéskor nem folyamatosan halkuló hangot, hanem egy szint alatt már recsegő hangot fogunk hallani. (Ami egyébként 24 biten is ugyanígy megtörténik, de ott sokkal kisebb az egyes digitális értékek közötti feszültségkülönbség, ezért agyunk ezt már nem képes érzékelni, vagyis nem halljuk meg.) Ne keverjük össze az egyes decibel skálák közötti átváltást! 0 dBFS jelszint gyakorlatilag bármilyen feszültségérték lehet, amit referenciának választunk. A digitális audió szabványokban pl. 16 bit esetén általában +16dBu, 24 bit esetén általában +22 dBu-ról beszélhetünk. Részletes összehasonlító grafikont találunk a decibelekről szóló sorozat második részében.

Végezzünk el még egy egyszerű próbát, hogy még jobban megismerjük a bitmélység jellegét. Ebben a tesztben arról fogunk meggyőződni, hogy a jelszint (a hangerő) mennyire befolyásolja a választott bitmélységet. Hogy jobban érzékeljük a problémát, használjunk 1 bitre csökkentést, és helyezzük el a bitcsökkentő plugin elé az ingyenes Sleepy Time-Stereo Channel-t, mert ezen könnyen tudjuk szabályozni a rajta áthaladó jel szintjét. Indítsuk el az imént alkalmazott zenét, és kezdjük a sleepy channel-en csökkenteni a jelszintet. Figyeljük meg, hogy pár dB csökkentés elég ahhoz, hogy csak ritka recsegést kapjunk. Ha most elkezdjük növelni a jelszintet a pozitív irányba, egyre több információ marad meg, és +24 dB emelésnél már szinte a teljes zene felismerhetővé válik, igaz rendkívül torzan. Tehát az éppen aktuális jelszint befolyásolja a dinamikatartományt, és ezáltal a digitalizációt is, de ezt mi csak ilyen alacsony bitmélységeknél halljuk, 16 bitnél és felette már nem vagyunk képesek érzékelni, mivel ezeken a rendelkezésre álló feszültségérték szintek száma jóval magasabb, mint az 1 bit esetén meglévő 2 érték (lásd az ábrán), és a hibák olyan alacsony jelszintre kerülnek, amit már nem hallunk.

Lebegőpontos kvantálási zaj
A lebegőpontos ábrázolásban ugyanúgy egész számokat használunk, mint fixpontos ábrázoláskor, de a tizedes vesszőt (bináris esetben kettes vesszőnek hívjuk) ezen a normalizált értéken belül tologatjuk el. Ennek előnye, hogy lehetséges tört számok, illetve nagyon kicsi és nagyon nagy számok tárolása is, hátránya viszont, hogy a valódi értéket a kitevő határozza meg. Ha a kitevő kicsi, akkor a valódi értékek is kicsik, de közel helyezkednek el egymáshoz. Ha a kitevő nagy, akkor a valódi értékek is nagyok, de  távol helyezkednek el egymástól. Minél távolabb helyezkedik el két kvantálási pont egymástól, annál nagyobb lesz a kvantálási hiba, vagyis a kvantálási zaj. Ebből következik, hogy nagy valódi érték esetén nagy kvantálási zajt kapunk, kisebb valódi érték esetén pedig kisebb kvantálási zajt. Ha pl. a lebegőpontosan ábrázolt jel szintje 0 dBFS, és a kvantálási hibák miatt létrejövő zaj szintje -160 dBFS, akkor -24 dBFS jelszint esetén a kvantálási zaj is 24 dB-el alacsonyabb lesz, vagyis -184dBFS.

Nézzünk egy egyszerű példát! A mellékelt ábrákat egy teszthang generátorral, és az MMultiAnalyzer-el (ingyenes változat MAnalyzer) állítottam elő (de bármilyen más spektrumanalizátor plugint is használhatunk). A hullámforma generátorral 44,1 kHz mintavételezésű, 1000 Hz-es szinusz hullámot hozunk létre, 0 dBFS kivezérlési jelszinttel. Utána helyezzük el a spektrumanalizátort, amin a mérési küszöböt állítsuk a lehető legalacsonyabbra (kb. -200 dB), a korrekciót (slope) 0dB-re, a kiegyenlítést (smoothness) pedig kapcsoljuk ki (0%). Ha lehetséges, kapcsoljuk be a szuper felbontás funkciót, amivel az alacsony frekvenciák is részletesebben jeleníthetőek meg. (A DAW-ot lebegőpontos műveletvégzésre kell beállítani, de a legtöbb esetben ez alapértelmezés.)  Ha mindent jól csináltunk, az ábra felső részén látható képet (vagy ahhoz hasonlót) kapunk. Ellenőrizzük a jól látható zaj szintjét, kb. -160 dB-lesz. (Ez persze függ az alkalmazott bitmélységtől, és az analizátor pontosságától is. Az ábrán 64 bit lebegőpontos ábrázolással előállított szinuszhullám spektrumdiagramját láthatjuk 32 bites lebegőpontosra kvantálva.) Most csökkentsük a hullámforma generátor kimenő jelszintjét -24 dB-re. Ellenőrizzük, hogy most mennyi lett a látható zaj szintje! Valahol -180dB körül kell lennie.

Effektív bitszám (ENOB)
Mint látható, digitalizálás során mindig keletkeznek kvantálási hibák, ezért a konverterek által használt bitszám önmagában nem adja meg egyértelműen az átalakítás pontosságát. Akkor mégis mennyi lehet egy konverter valódi "felbontása" (dinamikatartománya, pontossága, stb.)? Egy ideális (elméleti) konverter esetében csak a kvantálási zaj rontja az átalakítás minőségét, ezért ebben az esetben a valódi, hasznos bitszámot a következő képlettel számíthatjuk ki:

Bár a képlet egyszerűnek látszik, sajnos az effektív bitszámot megállapítani nem egyszerű feladat, még elméleti szinten sem, ugyanis a képletben a jel-zaj viszonyt (SNR) RMS értékkel kell szerepeltetni, ez pedig függ a jeltől (a hullámformától) és bizonyos esetekben a frekvenciától is. A fenti képlettel tehát nem sokat érünk, ez csak az elméleti kvantálókra igaz, mert a valóságban is létező konverterek egyéb zaj- és torzítási forrásokkal is rendelkeznek, és ezek hatása bizonyos szempontból olyan, mintha az átalakítónak még kisebb lenne a bitszáma.

A hasznos jel, valamint a zaj és torzítások (harmonikusok és intermodulációs komponensek) teljesítményének arányát SINAD-nak nevezzük (Signal to Noise And Distortion). Az ideális kvantáló kvantálási zajával összehasonlítva a SINAD-ot:

Vagyis az elérhető valódi bitszámot befolyásolja az is, hogy milyen zajszintű jelet kapcsolunk az átalakító elé, és hogy milyen mintavételezési technológiát és frekvenciát alkalmazunk. Mindenesetre a valós hasznos bitek számát csak egy-egy konkrét rendszerre lehet megadni, hiszen minden AD és DA konverternek van analóg kapcsolási része is, amik szintén zajt termelnek. A legtisztább és legbiztosabb megoldás a saját rendszerünk valós bitszámának megállapítására, ha megmérjük a jel-zaj viszonyt. Ha ez pl. 102 dB, akkor az effektív, valós bitszámunk mindössze kb. 17 (SNR/6).

Hány biten érdemes hangot digitalizálni?
Aki már hallott a digitális audióban alkalmazott bitmélységekről, de pontos ismeretei nincsenek a témával kapcsolatban, az minden bizonnyal a marketingesek által eredményesen elterjesztett nézetet vallja: a több mindig jobb. Sajnos ez a vélemény csak addig tűnik helyesnek, amíg meg nem ismerkedünk a fizika jelenlegi állásával, vagyis a tényekkel.

Tipp:
A Magyarországon magnókazettának nevezett kompakt kazetta alap dinamikatartománya 50-56 dB, ami kb. 8-9 bitnek felel meg, mégis egy fél világ nagy megelégedéssel hallgatta róluk a zenéket, és teszik ezt sokan még a mai napig is.

Az előző kísérletekből kiderült, hogy a digitalizáláshoz alkalmazott bitmélység alapvetően az átvihető dinamikatartományt, vagy más szóval a zajküszöböt határozza meg (nem pedig a felbontást, ahogyan azt a legtöbben elképzelik). Ez persze csak részben igaz, hiszen 1 bites PCM digitalizálást alkalmazva nem valószínű, hogy képesek lennénk visszaállítani bármiféle hangnak mondható szinuszhullámot a digitalizált adatokból. Bár 4 biten már felismerhető lesz a hang, ezt szerintem ne nevezzük megfelelő minőségnek. Hogy elkerüljük az elméleteken és gyakorlatokon alapuló felesleges időhúzást, egyezzünk most meg abban, hogy a továbbiakban a 16, vagy magasabb bitszámú digitális audiót tökéletesnek tekintjük, hiszen ezekben az esetekben emberi füllel már nem hallhatóak a kvantálásból eredő torzítások, sőt, itt már a DA konverter működése is képes helyesen visszaadni az eredeti szinusz hullámformát.

Weiss DAC202
Dinamikatartománya kb. 120 dB
Tehát a szükséges bitmélység megállapításához a szükséges dinamikatartományt kell alapul vennünk. A témát két részre bonthatjuk fel: Mivel mindig a lehető legjobb minőségre kell törekedni, így az elérhető dinamikatartomány kérdését egyrészről megvizsgálhatjuk maguknak az elektronikai eszközöknek az irányából, vagyis hogy mit vagyunk egyáltalán képesek ma előállítani, vagy még inkább sorozatban gyártani (hiszen viszonylag kevesen használnak a stúdiójukban prototípusokat). A jelenlegi elektronikai eszközök által elérhető dinamikatartományok azonban gyakran meghaladják a való világban létező és mérhető, emberi léptékkel érzékelhető értékeket, így ez lehet a második választási szempont.

A dinamikatartományt már jól ismerjük az analóg audió világából is, ahol pontosan ugyanazt jelenti, mint a digitális világban, vagyis a legalacsonyabb és a legmagasabb ábrázolható szint közötti különbséget. Emellett más hasonlóságot is találunk, ugyanis egyik rendszerben sem létezik működés közben (hang előállítása közben) 0 jelszint érték, ugyanis mindkét rendszerben van kikerülhetetlen zaj, aminek szintjét zajküszöbnek nevezzük. Az analóg rendszerekben ez az elektronok mozgásából adódik, digitális rendszerekben pedig a kvantálásból.

Az ördög a zajban rejlik
Egy elektronikai kapcsolásban -legyen az bármilyen- minden esetben létrejön zaj. Most csak magából a kapcsolásból eredő zajokat vesszük figyelembe, az egyéb külső irányból érkezőket, mint pl. a közüzemi elektromos hálózatból érkező zajok, a rádiófrekvenciás vagy mágneses zajok, stb. nem, mert ezek a legtöbbször hibás földelésből, és mágneses terekhez (pl. transzformátorok vagy egyenirányítók) közel futó vezetékekből származnak.

Egy kapcsolás saját zaja több összetevőből áll össze:
- Termikus zaj (az elektronok termikus fluktuációi miatt létrejövő zaj)
- Sörétzaj (az elektronok diszkrét töltéséből adódó áramzaj)
- Villódzási zaj (1/f, a felületi csapdák hatására létrejövő zaj)
- Négyszög zaj (főleg aktív félvezetőkben létrejövő zaj)
- Eloszlási zaj (az áram eloszlása az egyes ágak között időben fluktuál)
- Lavina zaj (a lavinafolyamatból létrejövő zaj)

Ezek egy része az elektronok mozgásából, másik részük magából a felhasznált anyagokból keletkezik, tehát elkerülhetetlenek, minden egyes elektronikai alkatrészben, még az egyszerű vezetékekben is létrejönnek. A mi szempontunkból talán a  legfontosabb közülük a termikus zaj, ami az elektronok mozgásából adódik (és fehérzajt hoz létre). Értékét a következő képlettel számíthatjuk ki:

VR = √ ( 4k × T × B × R ).

Mint látható, többek között szerepe van az alkatrész ellenállásának, és hőmérsékletének, valamint az alkalmazandó sávszélességnek is. Ha a zajszint mérésekben elfogadott átlagosnak mondható 200 ohm-os ellenállással számolunk, akkor a képletnek megfelelően a mai technológiákkal előállítható anyagokból, sorozatgyártásban elkészíthető szabványos professzionális audió eszközökben használt elektronikai elemek elérhető legalacsonyabb elméleti zajszintje -129,6 dBu. Ez azt jelenti, hogy a ma elkészíthető legalacsonyabb zajszintű audió áramkör zajszintje nem lehet alacsonyabb, mint az alkatrészek termikus zajából adódó -129,6 dBu. Persze ha az ellenállás értékét mondjuk 100 ohm-ra csökkentjük, akkor a zajszint is lejjebb megy, de mindössze csak 3 dB-el. Ez azonban nem életszerű, a való világban ilyen alacsony értéket, mint ahogy rövidzárt sem használunk. A gyártók azonban néha ilyen értékekkel végzik a méréseket, így a technikai adatok között ezek jól mutatnak, a való világban azonban nem találkozunk velük soha. Mindennek ellenére elmondható, hogy megegyezéses alapon -129 dBu az általánosan elfogadott lehető legkisebb zajszint. Most tehát már tudjuk, hogy maga az elektromos kapcsolás milyen határértéken mozog. Folytassuk akkor az emberi tényezővel.

Az emberi tényező
Minden olyan jelet zajnak nevezünk, ami jelen van, de nem szándékosan része a hasznos jelnek. Hogy egy kicsit könnyebb dolgunk legyen, a zaj lehetséges frekvenciáját is lecsökkenthetjük 20Hz-20kHz közé, hiszen csak ezen keretben hallunk. Az emberi hallás nem minden frekvencián ugyanolyan érzékeny, de a zajokat általában egyfajta zúgásnak, sistergésnek halljuk.
Zenei felhasználás esetén a jelben lévő zaj több részből adódik össze:
- A felvételen található zaj: mikrofonok és előerősítők, egyéb stúdió eszközök zaja, illetve az analóg-digitál átalakításból adódó zaj.
- Digitál-analóg konverter, ami mint már megtudtuk, szintén zajt állít elő.
- Lehallgató rendszer, ami a benne található erősítőkből, vezetékekből és hangszórókból áll, és szintén zajt állít elő

A zajt kétféle képen mérhetjük: vagy csak magát a zaj abszolút erősségét, vagy a zaj erősségét egy másik ismert jelhez képest. Az abszolút mérést általában voltban készítjük el, és alapvetően az elektronikai eszközök saját zaját mérjük vele, de ez az adat az emberi hallás szempontjából gyakorlatilag nem sokat ér. Amikor egy meglévő referenciához képest mérünk, az már sokkal ismertebb, ezt használjuk az audió technikában is, a digitális rendszerekben pl. a 0 dBFS-hez képest mérünk. Szintén ide tartozik a jel-zaj viszony mérése, amikor a zaj szintjét (erősségét) a hasznos jel szintjéhez viszonyítjuk. Ezt az értéket sok esetben dinamikatartománynak is nevezzük, ami mint tudjuk a legalacsonyabb és a legmagasabb jelszint különbsége.

Persze a legmagasabb jelszint kérdéses lehet, hiszen nem mindenki ugyanolyan hangnyomásszinten  hallgat zenét. Egy CD lemez 16 bites audiójának elméleti dinamikatartománya 96 dB, ami talán nem véletlen esik egybe azzal a megfigyeléssel, amit egy tanulmány készítői állapítottak meg, hogy ugyanis normál hangerő mellett 96 dB dinamikatartomány felett nem halljuk jobbnak a zenét.

Tipp:
Ha szeretnénk otthon is kipróbálni, hogy mit jelent 96 dB jelszintkülönbség, akkor hozunk létre egy projektet a DAW-ban, helyezzünk el egy sávra egy teszthang generátort 0 dBFS kimeneti jelszinttel, majd húzzuk le a sáv faderét -96 dB-re. Hát ennyi a 96 dB jelszint különbség, másként mondva dinamikatartomány. Ha akarjuk, megmérhetjük azt is, hogy mi meddig halljuk a hangot.

Kísérletek azt mutatják, hogy 110 dBSPL csúcsértékkel kivezérelt zene esetében, az ez alatt 96dB-el elhelyezkedő zajszint teljesen hallhatatlan. A legtöbb ember számára már -85 dB zajszint is teljesen halknak számít (ami 25 dBSPL zajszintet jelent). Ezt ha megpróbáljuk átváltani (bár ehhez nem létezik képlet, mert nem átválthatóak, csak egyetlen frekvencián), akkor kb. -102,8 dBu zajszintet kapunk. Tehát emberi szempontból nincsen értelme -102,8 dBu zajszintnél alacsonyabbnak.

Ha egy kicsit tovább megyünk, és figyelembe vesszük, hogy milyen eszközökön és milyen körülmények között hallgat a nagyközönség zenét, akkor még ennél is kisebb dinamikatartományt kell csak biztosítanunk. Az emberi hallás felső határa, az úgynevezett fájdalomküszöb értéke 130 dBSPL, ezt tudjuk, bár viszonylag kevesen hallgatnak ilyen hangerőn zenét. Az átlag inkább 85-90 dBSPL. De mit nevezhetünk a dinamikatartomány alsó felének, vagyis a zajküszöbnek? Ha otthon vagyunk egy csendes szobában, annak zajszintje is folyamatosan változik, például éjszaka sokkal nagyobb csend van, mint nappal. A legtöbb ilyen esetben a hangnyomásszint mérő 40 dBSPL-t fog mérni. Ha ezt kivonjuk a 130 dBSPL-ből akkor mindössze 90dB-t kapunk. Ennél magasabb dinamikatartományt csak úgy érhetünk el, ha az alsó értéket egy tökéletesen hangszigetelt visszaverődésmentes helyiségben mérjük, de ekkor sem kapunk 125 dBSPL-nél nagyobb értéket. Ismét azt kell hogy mondjam, hogy viszonylag kevesen hallgatnak ilyen helyen zenét, nem csak a nagyon magas kivitelezési költségek miatt, hanem azért is, mert a visszaverődések teljes hiánya természetellenes élményt ad.

Következtetés
Foglaljuk hát össze, hogy mit állapíthatunk meg. Az elektronikai eszközök által elérhető legalacsonyabb zajküszüb elméletileg 129,6 dBu. Ha figyelembe vesszük a szabványos professzionális stúdióeszközök jelszintjének általános felső csúcsértékét, ami kb. +22 dBu, akkor ez nagyjából (129+22=) 151 dB elérhető elméleti dinamikatartományt jelent. (Tegyük hozzá, hogy ez a csúcsok csúcsa, egy stúdió minőségű analóg keverőpult valódi dinamikatartománya általában 115 dB.) Az emberi hallás által felfogható dinamikatartomány elvileg 102,8 dB, egy normál lakásban elérhető elméleti dinamikatartomány kb. 90 dB. A digitális technikában 24 biten elérhető elméleti dinamikatartomány 144 dB.

Szerintem elmondható, hogy a 24 bites fixpontos ábrázolású digitális audió dinamikatartománya (144 dB) tökéletesen elég, sőt a valóságban még ki sem tudjuk használni a benne lévő lehetőségeket, hiszen a hangot előállító átlagos (tehát nem csúcs) minőségű analóg részek csak ennél kevesebbet, kb. 120 dB-t tudnak. Ha ehhez hozzávesszük, hogy az emberi hallás mindössze 102,8 dB-t képes felfogni, akkor azt gondolom, hogy már 18 bit is elégséges lehetne, ha nem lenne kvantálási zaj. Ha eltekintünk a professzionális eszközökben néha megtalálható extra magas kivezérlési tartaléktól (headroom), és csak a szabványos jelszinteket vesszük figyelembe, azaz +7 dBu felső és -120 dBu alsó értéket, akkor ez 127 dB dinamikatartománynak felel meg, amit már nagyjából 21 biten is ábrázolhatunk. Mivel a számítógépek bájtokban dolgoznak, így a 24 (3x8) sokkal közelebb áll hozzájuk, ezért 21 helyett 24-et választottak a mérnökök. Ebben az esetben 3 bit, azaz 18 dB extra dinamikatartományunk marad a digitális zajokra. Talán nem véletlen, hogy nem gyártanak 24 bit fixpontos ábrázolásnál magasabb bitmélységet támogató audió konvertereket?

2023-as frissítés!
Ez a cikk 2019-ben készült, azonban azóta egyre több 32 bites konverter csip jelenik meg, és a jobb hangkártyák már szinte mind az ESS Sabre 32 bites csipeket használják. Ezek mért dinamikatartománya az egyes gyártók által köré épített elektronika miatt persze eltérnek, de általában 120-130 dB közé esnek. Ismét nincs csoda, persze az igaz, hogy ezen a szinten már 3-6 dB is óriási fejlődésnek tekinthető, de változatlanul állítom, hogy 16 bit is mindenre elég amit zenének hívunk.

Ugyanakkor megjelentek a 32 bites lebegőpontos digitalizálásra is alkalmas AD konverterek. Valójában azonban ezek sem lebegőpontos digitalizálást végeznek, hanem egy ügyes trükköt alkalmazva érik el, hogy ne legyen túlvezérlés felvétel közben. Ennek lényege, hogy 2 db AD konvertert használnak egyszerre, de eltérő előerősítéssel. Vagyis az első például a 0-24 bit közötti jelszinteket rögzíti, a másik a 24-48 bit közöttieket. A két csip adatait egy algoritmus fésüli össze, és ezt a kimenő jelet kapjuk meg mint 32 bites lebegőpontos ábrázolás. (Az így rögzített 32 bit lebegőpontos nagy dinamikájú hangot lehallgatni még nem tudjuk, hiszen visszafelé erre még nincs megoldás!) A trükk nagyon okos, de technikai szempontból semmi másra nem jó, mint hogy ne kelljen a felvételkor megfelelő jelszintet beállítanunk az analóg részeken, ugyanakkor a zajszint a lehető legalacsonyabb marad. Természetesen ha most vásárolunk konvertert, akkor érdemes már ezen újabb technológiákat választani, hiszen az alkatrészek öregedése az új eszközök esetében nulla. Ugyanakkor csak azért, hogy ezek majd "jobbak" lesznek mint a meglévő, akár 10-20 éves minőségi konvertereink, nem érdemes rájuk beruházni, hiszen a füllel hallható kb. 21 bitet mindegyik ugyanolyan jól tudja.


Ha eltekintünk attól, hogy a zajszint csökkentésére használjuk a magasabb bitszámú mintavételezést, és inkább a való életben tapasztalható zenei hangfelvételek irányába fordulunk, még inkább bizonyosságot nyerhetünk afelől, hogy manapság talán még a 16 bites digitalizálás is felesleges. Itt elsősorban a kompresszorok és limiterek egyre nagyobb mértékű használatára gondolok, amik mint tudjuk, csökkentik a dinamikatartományt. Bár a streaming szolgáltatók már bevezették korlátozó intézkedéseiket, a modern elektronikus zenéket már kifejezetten dinamikusnak mondjuk, ha dinamikatartományuk 15 dB-nél nagyobb. Erre kis túlzással 3 bit is elég lenne...

Több mint 16 bit...
Mint már megtudtuk, az emberi halláshoz és a mindennapi zenehallgatáshoz 16 bites digitalizálás is tökéletes minőséget nyújt, ha a dinamikatartományt vesszük alapul. Azonban azt is megtudtuk, hogy a bitszám növelése csökkenti a kvantálási zajt, ezáltal egyrészt tisztább hangot tudunk előállítani, másrészt precízebben tudjuk a hullámformát megtartani.

A 16-nál magasabb bitszám alkalmazásának elsősorban akkor van jelentősége, ha valamilyen műveletet szeretnénk elvégezni, akár egy audió sávon, akár több egymásra hatást gyakorló sávon (vagyis keverést, vagy effektezést, pl. szűrést végzünk).

Tipp:
Roger Nichols készített egy cikket az SOS magazinban, ahol részletesen elemzi a magasabb bitszám előnyét, ami az Ő számára saját bevallása szerint meglepő módon nem a magas tartományban, hanem elsősorban az alacsony frekvenciákon jelentkezik, méghozzá részletesebb hangzás formájában.

Utólagos felkonvertálás
Ha egy adott digitalizált hang bitmélységét utólagosan megnöveljük, akkor ezt felkonvertálásnak is nevezhetjük. Bár első hallásra úgy tűnhet, hogy ezzel javítunk a hangminőségen, a valóságban sajnos nem ez történik. A rendelkezésre álló bitek számát matematikai úton viszonylag egyszerűen növelhetjük, de ennek semmi értelme nincsen, mert a digitalizálás után lehetetlen a rendelkezésre álló információkat bővíteni, vagy pontosítani. Vagyis ahány biten lett digitalizálva a hang, az annyi is marad, a "minőséget" növelni nem tudjuk, csak csökkenteni (a bitek számának csökkentésével).

Tipp:
A mai DAW-okban előzetes konvertálásra nincs szükség, elég ha a fájlt egyszerűen behúzzuk egy sávra a magasabb bitszámú projektbe.

Ha például egy 16 bites audiót matematikai úton konvertálunk 24 bitre, akkor a legtöbb esetben nem teszünk mást, mint a hiányzó 8 bitre 0 értéket állítunk be. Ezt persze az alsó biteken (LSB) tesszük meg, hiszen mint már megtudtuk, a legmagasabb digitális érték mindig 0 dBFS jelszintet kell hogy jelentsen. Ezt csak úgy biztosíthatjuk, ha az alsó bitekre szúrunk be, mert ezek a halk részeket írják le, és a hozzáadott 8 bittel nem teszünk más, mint a halk részek lehetséges feszültségszintjeit emeljük 2-ről 256-ra. Mivel csak nulla értékeket szúrunk be (eddig 0 volt a legalsó bit, most pedig 8 darab 0, vagyis a valódi értéke nem változott), ezért az eredeti feszültségszint értékek nem változnak, csak a tároláshoz szükséges fájlméret nő meg, újabb hasznos információt viszont nem tudunk létrehozni (lásd a mellékelt ábrán).


Tekintsük a fenti ábrát, ahol a következő kísérlet végeredménye látható: A kísérlet elvégzéséhez hozzunk létre egy 16 bites, 1000 Hz-es szinusz hullámot tartalmazó, 44,1 kHz-es fájlt a DAW-ban. Ezt úgy oldhatjuk meg egyszerűen, ha nyitunk egy új projektet, amiben az első sávra elhelyezünk egy teszthang generátort 1000 Hz-re és 0 dBFS-re beállítva (Ez a legtöbbször a projekt bitmélységén fog működni). Ezt 1 másodperc hosszúságban exportáljuk a DAW-ból, 16 biten és monóban. Figyeljünk rá, hogy a projekt panorámakorrekciós értéke (Pan Law) 0 dB legyen! Második lépés, hogy a fájlt beimportáljuk a DAW-ba (ez látható legfelül, sárga színnel jelölve). A kísérlethez a Toybear Productions-BitViewer 32 bites, ingyenes pluginjét használtam, de persze a Bitter is ugyanúgy használható. Mint látható, a BitViewer a 16 bites fájlhoz maximum 16 bit használatát mutatja.

Következő lépés, hogy a 16 bites fájlt 24 bitre kell konvertálni. Mi sem egyszerűbb! Exportáljuk ki a projektet 24 biten (persze monóban), és már kész is a feladat. A fájlt importáljuk vissza a projektbe egy új sávra, és ellenőrizzük a fájlt tulajdonságainál, hogy valóban 24 bites -e. Ha igen, mindent jól csináltunk, van egy 16 bites és egy ebből felkonvertált 24 bites fájlunk. Már nincs is más dolgunk, mint a bitmélység mérő plugint elhelyezni a 24 bites fájlt tartalmazó sávra, és ezen is ellenőrizni a bitmélységet. Hoppá! Hát itt meg mi van? Mindkét bitmélység mérő 16 bitet mutat... Lehet, hogy csak a Reaper nem működik megfelelően? Ezt egyszerűen kideríthetjük, ha egy másik szoftverrel is elvégezzük a felkonvertálást. Mondjuk, az ingyenes audió szerkesztővel, az AudaCity-vel. Nyissuk meg a 16 bites szinuszunkat, majd válasszuk az exportálás másként lehetőséget, aztán fájl típusa: egyéb tömörítetlen fájl, majd WAV (Microsoft) Signed 24-bit PCM. Ne felejtsünk el eltérő nevet megadni az új 24 bites fájlnak! Az elkészült konvertálást ugyanúgy importáljuk be egy új sávra a DAW projektbe (ez látható narancs színnel jelölve). Csodák csodájára, ez is csak 16 bitet használ, akárcsak az előzőek. Vagyis itt bizony igaznak bizonyult, hogy a felkonvertálás nem ad hozzá lényegi adatot a hanghoz, mindössze a fájlméret növekszik meg (lásd az előző ábrán).

A dologhoz hozzátartozik egy érdekes jelenség, aminek az okát most nem derítem ki, mindössze csak jelzem, hogy a Reaper és az Audacity nem azonos módon konvertálta a 16 bites fájlt 24 bitessé (a dither beállítás nem befolyásolja az eredményt). Ez látszik a sávokra elhelyezett Bitter bitfa képén is, ami a két Reaper-el készült fájlnál azonos, ahogy annak lennie kell, vagyis a Reaper bitpontos konvertálást végez, viszont az AudaCity-nél a bitfa képe eltérő. A különbség még szembetűnőbb, ha spektrumgrafikont készítünk a két 24 bitre konvertált fájlról (lásd a melléklet ábrán).

Persze léteznek más lehetséges megoldások is a felkonvertálásra. Az egyikben az egyes minta értékek egymáshoz viszonyított helyzetét megtartva, arányosan alakítjuk át azokat. Vagyis eddig 16 bit maximális értéke volt 0 dBFS, mostantól 24 bit maximális értéke lesz 0 dBFS, de a 0 érték a minimális érték marad. Mondhatjuk úgy is, hogy a mintát széthúzzuk 24 bitre. A hiányzó értékeket természetesen arányosítással számítjuk ki, vagyis 24:16 arányban szorozzuk az egyes minta értékeket, de sajnos ez a módszer újabb kvantálási hibákhoz vezet. Hiba mentes megoldás, ha a hiányzó 8 bitet a felső bitek fölé helyezzük el, de ezzel a 0 dBFS jelszint 48 dB-el lejjebb kerül, vagyis a hang halkabb lesz. Ilyen megoldásokat tudomásom szerint egyetlen szoftverben sem találunk, ami persze nem véletlen, hiszen sem ezek, sem az előzőekben ismertetett beszúrásos konvertálás nem képes a 16 biten digitalizált információkhoz bármi érdemlegeset hozzáadni, vagyis értelmük valójában nincsen. Mindez persze 32 és 64 bitre konvertáláskor is épp ugyanígy igaz.

Több mint 24 bit...
Mielőtt folytatnánk, tegyünk egy kis kitérőt, és tisztázzunk egy dolgot, amit nem biztos, hogy minden olvasó megértett, mire erre a pontra elért. Az AD és DA konverterek elérhető bitszámának a szabványok előírásai szabnak határt. A technika jelenlegi állásán -amikor a zajszint megállapításánál már az elektronok mozgásának zajánál tartunk- több cég is hirdet és gyárt 32 bites konvertereket. Hogy ezek valójában milyen effektív bitszámmal dolgoznak, tulajdonképpen lényegtelen, mert mint látni fogjuk, a valós 32 bites dinamikatartomány nem illeszthető a mai +4dBu professzionális stúdió szabványhoz.

Nézzük, hogy mit tudunk, úgy nagyjából: A fizikailag jelenleg elérhető legalacsonyabb zajszint -129 dBu. A 32 biten, fixpontosan ábrázolható dinamikatartomány 32x6=192 dB. Ha ebből kivonjuk a legalacsonyabb zajszintet, akkor 192-129=63, tehát a 32 bites audió esetében a legmagasabb jelszint +63 dBu lenne, amit ha a szabványos 0 dBu=0,775 V értékkel átszámolunk, akkor +63 dBu=1094.14 V (RMS), ami 3094.71 V csúcs-tól csúcsig értéknek felel meg. Vagyis a kis hangkártyánkból átlagosan 1094 V-os feszültség fog kilépni. Ez nagyjából ötször akkora, amint a közüzemi hálózat feszültsége... Vajon hogy bírják ezt majd a kompresszorok, ekvalizerek, erősítők? Aki nem hiszi, járjon utána, az átszámítást elvégezheti pl. a http://www.sengpielaudio.com/calculator-db-volt.htm oldalon is (lásd a lenti ábrán). Tegyük hozzá, hogy a német SPL cég nem véletlenül készít 120 V-os rendszereket, mert ezekkel jóval alacsonyabb zajszinten tudják a jelfeldolgozást elvégezni, bár a kilépő jelet ugyanúgy illeszteniük kell a +4dBu szabványhoz.

32 bites, fixpontos audió feszültség értékei
Folytassuk akkor az eredeti témát! Mivel jelen cikksorozatban elsősorban stúdió technikával foglalkozunk, így teljesen egyértelmű, hogy az elérhető legjobb hangminőséget kell megcélozni, és ebből lehet aztán "lebutítani" a végeredményt, ha szükséges. Ellenkező irányban sajnos nem lehet haladni, vagyis egy gyenge felvételből nagyon nehéz, de inkább lehetetlen kiválót varázsolni. Ebből következik, hogy a stúdióban rögzített és feldolgozott anyagnak mindig célszerű jobb minőségűnek lennie, mint a nagyvilágba kikerülőnek. Ha ez utóbbit CD minőségnek választjuk meg (ami mint látható volt még több is mint amit egy átlagos ember felfogni képes), akkor a 16 bites végeredményhez bizony célszerű 24 bites rendszerben dolgozni. Egyrészt ennél nagyobb effektív felbontású konverterek nem léteznek, másrészt a mai technikai szinten már megfizethető áron elérhetőek az ehhez szükséges berendezések, harmadrészt ezzel olyan lehetőségekhez jutunk, ami nagyban megkönnyíti a munkánkat (túlvezérlés egyszerű elkerülése, alacsony zajszint).

Tipp:
A 32 bites audió általában 32 bit lebegőpontos ábrázolást takar. Egy ilyen audió adat három részből tevődik össze: 1 bit előjel, 8 bit kitevő és 23 bit mantissza. A valódi információ a mantisszában kerül tárolásra, ami az 1 bit előjellel együtt valójában egy 24 bites fixpontos adatnak felel meg. A 8 bit kitevő csak azt mutatja, hogy ebben a 24 bites adatban hol található a tizedes jel. Vagyis a 32 bites audió kis túlzással csak 24 bites finomságú. Minderről részletesen a következő részben olvashatunk majd!

Bár a hardveroldali szabványok által felállított korlátok miatt 24 bites fixpontos audiónál jobb minőséget nem tudunk előállítani, ez a 24 bit fixpont sem elég mindenre! A digitális hang feldolgozásakor sok esetben történik meg, hogy két mintaérték összeadása a 24 biten ábrázolható feszültségérték fölé kerül. Megpróbálom érzékeltetni a legegyszerűbb példával: Adott két sáv, amiknek kivezérlési jelszintje a lehető legmagasabb 24 biten ábrázolható érték (0 dBFS), de még nem torzítanak, így tökéletes minőségűek. Szeretnénk, ha ez a két hang egyszerre szólalna meg, hiszen pont ez a keverés feladata. A két sávot nagyon egyszerűen tudjuk összekeverni, mindössze az éppen aktuális feszültségértékeiket kell összeadni. Ez nem ördöngösség, hiszen a való világban is így van, hiszen ha Marci is teljes erejéből kiabál és Marcsi is teljes erejéből kiabál, akkor ketten együtt már kétszer olyan hangosak, mint egyedül. Digitális audióban ez tehát azt jelenti, hogy a két minta értéket összeadjuk. Igen ám, de a 24 biten ábrázolható legnagyobb feszültségértékhez (111111111111111111111111) hozzáadva a 24 biten ábrázolható legnagyobb feszültségértéket (111111111111111111111111), az együtt már 25 bitet tesz ki (1111111111111111111111110)! Hogyan ábrázoljunk ekkora értéket 24 biten? Normál esetben, ha fixpontos ábrázolást használunk, akkor 24 bit felett már nem képes a mintaérték tovább növekedni, ezért túlvezérlés, vagyis adatvesztés keletkezik, ami hallható torzításhoz vezet, és ilyenkor jelenik meg a piros színű, túlvezérlés jelző a DAW-ban. A mellékelt ábrán pont egy ilyen esetet látunk Reaper-ben. Bár a egyes sávok kivezérlés értéke 0 dBFS, ezt a DAW már túlvezérlésnek jelzi, valószínűleg biztonsági okokból, mert maga a hullámforma ilyenkor még nem torzul, mindössze analóg túlvezérlés (inter-sample peak) keletkezik. A szemfülesebbek észrevehetik, hogy a maszter buszon +6 dB jelszint látható, ami ugye azt jelenti, hogy a jelszint túllépte a 0 dBFS értéket (6 dB-el). Ez fixpontos ábrázolás mellett lehetetlen, tehát itt arra következtethetünk, hogy a maszter buszon lebegőpontos ábrázolással történik a jelfeldolgozás.

Tipp:
A túlvezérlésjelző lebegőpontos ábrázolás használatakor is ugyanúgy megjelenik, de ebben az esetben nem történik adatvesztés, ez csupán csak egy figyelmeztetés, hogy a mintaérték túllépte a 24 biten fixpontosan ábrázolható csúcsértéket.

A keverés közbeni túlvezérlés elkerülésére jó megoldás lehet, ha a DAW keverő algoritmusa 24-nél több biten képes ábrázolni, mondjuk 32-n, ezzel 48 dB többlet dinamikatartományunk keletkezik. Így megtarthatjuk a 24 bit feletti értékeket is, vagyis azok nem vágódnak le, nem tűnnek el. A sávok összekeverése után, a maszter buszról kilépő adat esetében viszont már nem tudunk mit kezdni az extra, 24 bit feletti bitekkel, hiszen azokat -mint már tudjuk-, a 24 bites fixpontos DA konverteren úgysem lennénk képesek megszólaltatni. Vagyis mielőtt az adatokat a konverterre küldenénk, vissza kell azt alakítani 24 bit fixpontossá. Ezt a műveletet végezheti maga a DAW is (DAW-tól függ), de ha nem teszi meg, akkor nagy valószínűséggel a hangkártya meghajtóprogramja fogja elvégezni. Alapvetően csonkolással történik az átalakítás, ahol egyszerűen levágódnak a felső (24 bit feletti) bitek (MSB). Ez persze -mint az ábrán is látható- torzításhoz vezet, amit jó minőségű audió esetén mindenképpen kerülni kell. Ezért nagyon fontos, hogy a maszter buszon megjelenő túlvezérlésre figyelmeztető (általában vörös színű) jelzőfényt mindig vegyük komolyan!

Tipp:
Ha a DAW-ból kilépő 24 bites audiót mindig csúcsra járatjuk, vagyis 0 dBFS jelszinttel használjuk a konvertert, akkor ez kb. ugyanolyan, mintha mindig maximumra tekerve hallgatnánk az erősítőt. Ezt a valóságban senki sem így csinálja, főleg a stúdiókban nem, hiszen az ekkor létrejövő +22 dBu jelszint a szabványos stúdióeszközök által fogadott legmagasabb érték, ami a legtöbb esetben már analóg torzítást eredményez. Ha jót akarunk magunknak és az eszközeinknek, maradjunk a szabványos -18dBFS (RMS)=0 VU=+4 dBu szintnél. (Néhány konverter esetében a 0 dBFS eltérhet a szabványos +22 dBu értéktől.)

A Reaper DAW a csatornán belül mindig lebegőpontos ábrázolást használ, még akkor is, ha a keverési bitmélységet átállítjuk fixpontosra. Ha például 24 bit fixpontos sáv-keverést állítunk be a projekt beállításokban, akkor csak a csatornák közötti kommunikáció (beleértve a maszter buszt is) lesz 24 bit fixpontos, a csatornán magán lebegőpontos ábrázolás marad használatban. Ezt egyszerűen ellenőrizhetjük azzal, ha túlvezéreljük a maszter buszt, például egyszerre küldünk rá két darab 0 dBFS jelszintű, azonos fázisú (!) szinusz hullámot. Ilyenkor a maszter busz kivezérlésmérőjén nem 0 dB lesz leolvasható, mint ahogyan azt elvárnánk a 24 bit fixpontos ábrázolástól, hanem +6 dB (természetesen a maszter fader 0 dB-en áll!). Vagyis a buszon belül ugyanúgy lebegőpontosan történik az ábrázolás (lásd a fenti ábrán). Viszont, ha ezt a túlvezérelt fájlt exportáljuk 24 bit fixpontos audióként, az már valódi fixpontos ábrázolással kerül a wav fájlba, vagyis a 0 dBFS feletti részek levágódnak. Ez látható a következő ábrán. Mi a tanulság? A maszter buszon megjelenő túlvezérlésre figyelmeztető jelzőfényt mindig vegyük komolyan, ha fixpontos ábrázolású fájlba mentünk (lebegőpontosnál nem kell komolyan venni)!

+6dB-el túlvezérelt szinuszhullám 24 bites fixpontos fájlban
Ami a csatornákra igaz, az igaz a maszter buszra is, vagyis ha a fader-t elállítjuk 0 dB-ről, akkor a DAW-ból már nem a beállított fixpontos bitmélység kerül ki, hanem lebegőpontos ábrázolás. Persze csak addig, amíg a kimenti formátum lebegőpontos. A hangkártyák nem azok, és a fixpontos fájlok sem! Ugyanez a helyzet akkor is, ha használunk olyan Monitoring plugineket, amik a maszter fader után helyezkednek el (lásd a lenti ábrán). Ezekbe még a beállított fixpontos ábrázolás érkezik, de ha a plugin úgy lett elkészítve, hogy lebegőpontos ábrázolást továbbítson, akkor ezekből bizony a pluginbe programozott bitmélységű lebegőpontosan ábrázolt mintaértékek fognak kikerülni. A mellékelt ábrán 16 bit fixpontos adat lép ki a maszter buszról egy 24 bit lebegőpontos kimenetű pluginbe. Ebben az esetben is célszerű a plugin kivezérlésmérőjét figyelni, ugyanis ha ez túlvezérlést mutat, akkor a 24 bit fixpontosra alakított, DA konverterre kerülő adat már torzítani fog. Kis könnyebbség, hogy itt "csak" a lehallgatást vezéreljük túl, nem az exportált fájlt.



Gyakorlati kérdések
Van-e értelme a digitál-analóg átalakító felé 24 biten ábrázolhatónál magasabb jelszintet küldeni? Nincs. Van-e értelme a maszter buszon 24 biten ábrázolhatónál magasabb jelszintet előállítani? Nincs. Ezt hogy kerülhetjük el? Ha a maszter buszra érkező sávok jelszintjének összege nem lépi túl a 24 biten ábrázolható jelszintet, vagy azt még a maszter kimenet előtt (vagyis az utolsó pluginben) visszaszabályozzuk 24 bit fixponton ábrázolható értékre. Ez utóbbi megoldás csak akkor működik, ha minden plugin képes a lebegőpontos ábrázolásra. Van-e értelme az egyes sávokat úgy rögzíteni vagy feldolgozni, hogy azok már önmagukban is elérik a 24 biten ábrázolható legmagasabb jelszintet? Nincs, mert minél több sávot szeretnénk összekeverni, annál magasabb lesz a maszter buszon létrejövő jelszint, vagyis elméletileg annál alacsonyabbnak kell lennie az egyes sávokról érkező jelszinteknek. Persze a megfelelő szint megállapításához figyelembe kell venni a kvantálási zajt, és az analóg elemek zajszintjét is, és így megtalálni az optimális értékeket.

A következő részben a fixpontos és lebegőpontos ábrázolások rejtelmeiben fogunk egy kicsit belemerülni. Remélhetőleg mindenki számára érthetővé válik majd, hogy mik az előnyeik és mik a hátrányaik, mert bizony az is van.

Addig is eredményes keverést és digitalizálást kívánok mindenkinek!

A következő részhez katt ide...




Felhasznált irodalom:
http://sound.whsites.net/noise.htm
http://mti.kvk.uni-obuda.hu/adat/tananyag/passziv/Passziv8Zajok2014.pdf
https://en.wikipedia.org/wiki/Signedness
http://nwavguy.blogspot.com/2011/09/noise-dynamic-range.html
https://www.researchgate.net/publication/324822062_Measurement_of_Sound_Pressure_Levels_in_Anechoic_Chamber_and_a_Noisy_Environment_Experimentally
https://www.soundonsound.com/techniques/digital-problems-practical-solutions
https://en.wikipedia.org/wiki/Line_level
https://www.analog.com/media/en/technical-documentation/dsp-book/dsp_book_Ch4.pdf
https://en.wikipedia.org/wiki/Quantization_(signal_processing)
https://www.soundonsound.com/reviews/zoom-uac-232
https://zoomcorp.com/en/us/news/32-bit-float-everything-you-need-to-know/

Nincsenek megjegyzések:

Megjegyzés küldése