Ostatní audio software, obecná diskuse
Odpovědět
Uživatelský avatar
Pytkin
Moderátor
Příspěvky: 21306
Registrován: 23 kvě 2002 16:23

Příspěvek od Pytkin » 26 led 2009 00:36

vras píše:
zamyslime sa nad 32bit floatom .. neni to nepresnejsie ako 32bit integer ? kolko bitov sa pouzije na mantisu a kolko na exponen
integer cisla jsou dost nevhodna, jednak muzou teoreticky pretect (clipping - zname ze zvukovych karet, ze?) a jednak v pripade malych signalu se ztraci presnost - tj. zkresluji. Dobrym prikladem muze byt CD, kde velmi tiche pianissimo pasaze typicky ve vazne hudbe hraji hrozne, protoze pouzivaji jen par dolnich bitu z celeho 16bitoveho formatu a to uz kvalita dostane citelne zabrat. Oba problemy u floating point cisel odpadaji.

Definice 32-bit "float" : The data type "float" is a 32 bit wide floating point number consisting of a 23 bit mantissa, an 8 bit exponent and a sign bit.
No .. to je sice pekne co pises .. ale trosku nesuhlasim .. 23bitov je na mantisu .. cize to je nepresnejsie ako 24bit .. totiz ked mas vacsie cislo , tak uz stracas v mantise detail .. to co pises o CD je jasne kazdemu .. pri 24bitoch sa tato vec straca samozrejme ..

jeany_jeany_jeany
Příspěvky: 139
Registrován: 15 pro 2008 13:49

Příspěvek od jeany_jeany_jeany » 26 led 2009 09:23

pavlii píše:2vras: napadá mě vlastně jen jedno pozitivum: protože DAW pracuje interně ve 32bit, tak vezmeme-li v úvahu, že máme audio ve 24bit (AD převodník), při práci si to DAW rozšíří na 32bit, zpracuje a zase překonvertuje do 24bit (případně opravte logickou chybu ;-) ). Pokud nabereš audio 24bit AD převodníkem, ale "nadstavbou" v DAW budeš generovat 32bit soubory, nebudou se výše zmíněné 2 konverze dělat; mohlo by to ssebou nést tím pádem méně zaokrouhlovacích chyb.... To ale byla jen čistě teoreticko-matematická úvaha momentálního osvícení :-D

P.
No jo, to ale plati akorat v pripade mixdownu, tam 32 bit float vyznam ma, bo se konverzi skutecne vyhnes - teda v pripade ze ten mixdown budes jeste sypat do nejakyho materovaciho programu. Ve finale te ceka konverze stejne...
Ale v pripade nahravani tam ta konverze bude tak jako tak - je jedno budes-li nahravat 24 bit (pak si to engine cubase zkonverti teal-time pri prehravani) nebo budes-li nahravat 32bit (a pak to cubase zase zkonverti real time, ale pri nahravani)

jeany_jeany_jeany
Příspěvky: 139
Registrován: 15 pro 2008 13:49

Příspěvek od jeany_jeany_jeany » 26 led 2009 09:27

Pytkin píše: No .. to je sice pekne co pises .. ale trosku nesuhlasim .. 23bitov je na mantisu .. cize to je nepresnejsie ako 24bit .. totiz ked mas vacsie cislo , tak uz stracas v mantise detail .. to co pises o CD je jasne kazdemu .. pri 24bitoch sa tato vec straca samozrejme ..
Jenze v pripade 32 bit float je signal de fakto rozdelenej na 8 "podurovni" a KAZDA ma 23bit rozliseni, takze je to IMHO daleko presnejsi (hodne zjednoduseny ja vim..) Nehlede nato ze bych chtel videt prevodnik, kterej nestoji majlant a umi s rozumnou presnosti vyuzit vsech 24 bitu :-)

vras
Příspěvky: 831
Registrován: 27 lis 2007 20:36

Příspěvek od vras » 26 led 2009 10:11

cize to je nepresnejsie ako 24bit .. totiz ked mas vacsie cislo , tak uz stracas v mantise detail
To uz je dost off topic, ale "ztrata" pri prevodu integer 24 do float 32 je rovna presne nule. Pokud to nahodou matematicky neni presne nula, tak ve srovnani s SNR v audio-chainu a chybami ADC je to porad presne nula :-)

Uživatelský avatar
Pytkin
Moderátor
Příspěvky: 21306
Registrován: 23 kvě 2002 16:23

Příspěvek od Pytkin » 26 led 2009 10:57

vras : no ked ides cez nulu , tak sa rozlisenie straca .. lebo cislo je vacsie ako 24bit .. rozumnejsie by bolo bezat 32bit integer .. tam by sa nic nestratilo ..

Uživatelský avatar
Pytkin
Moderátor
Příspěvky: 21306
Registrován: 23 kvě 2002 16:23

Příspěvek od Pytkin » 26 led 2009 11:03

jeany_jeany_jeany píše:
Pytkin píše: No .. to je sice pekne co pises .. ale trosku nesuhlasim .. 23bitov je na mantisu .. cize to je nepresnejsie ako 24bit .. totiz ked mas vacsie cislo , tak uz stracas v mantise detail .. to co pises o CD je jasne kazdemu .. pri 24bitoch sa tato vec straca samozrejme ..
Jenze v pripade 32 bit float je signal de fakto rozdelenej na 8 "podurovni" a KAZDA ma 23bit rozliseni, takze je to IMHO daleko presnejsi (hodne zjednoduseny ja vim..) Nehlede nato ze bych chtel videt prevodnik, kterej nestoji majlant a umi s rozumnou presnosti vyuzit vsech 24 bitu :-)
neni to tak .. mantisa je 24bit .. cize ak je slovo vacsie ako 24bit , tak sa v dolnych radoch straca cislo ..

polopate vysvetlene .. dajme tomu ze mame 5 znakovu mantisu a exponente .. kym sme v cisle do 100.000 , tak je vsetko ok

trebars 00969 alebo 99500 .. nic sa nestraca .. dokonca pozitivne je ze pri malych cislach mame vacsiu presnost .. trebars 0.0500 je vlastne 5.00 e-02

Ked ale prejdeme cez 100.000 , tak sa nam straca detail ..

lebo cislo 100.005 sa zapise ako
1.0000 e+5 ... ta 5 na konci sa stratila ..

Z tohto hladiska ked sa na to pozeram , tak 64bitove spracovanie v SONARE ma zmysel ..

vras
Příspěvky: 831
Registrován: 27 lis 2007 20:36

Příspěvek od vras » 26 led 2009 11:20

Z tohto hladiska ked sa na to pozeram , tak 64bitove spracovanie v SONARE ma zmysel ..
Presnost 64-bit v plovouci carce ma opravneny smysl u DSP a pluginu, kde se deji neskutecne kvanta vypoctu a kde by se mohla v dusledku zaokrouhlovani kumulovat chyba. Ale v normalnim DAW je to IMHO spise reklamni tah nez aby to melo realny vyznam, vsak si uvedom ten neskutecny dynamicky rozsah, ktery 32-float ma ve srovani s analogovou cestou.

Uživatelský avatar
Pytkin
Moderátor
Příspěvky: 21306
Registrován: 23 kvě 2002 16:23

Příspěvek od Pytkin » 26 led 2009 11:24

vras : ale straca sa detail , ako som uz pisal .. nerozumiem naco je dobry dynamicky rozsah .. ked zoberiem 32bit spracovanie integer , tak vypocty su omnoho rychlejsie a cez nulu mozes ist tiez .. samozrejme headroom je maly .. 64bit integer by bol asi lepsi .. a 64bit float v sonare je trosku asi zbytocny ale ten detail sa nestraca ..

vras
Příspěvky: 831
Registrován: 27 lis 2007 20:36

Příspěvek od vras » 26 led 2009 12:42

Nejlepsi je si to vyzkouset v praxi, pac me to zajimalo, tak jsem za par minut udelal programek, co _vsechna_ cisla v intervalu -8388608 az 8388607 (coz odpovida rozsahu 24-bitoveho audia) prevedl na float_32 a zase zpet na int a porovnal a vysledek? Cely vypocet trval zlomek sekundy, absolutne zadny rozdil, ani v jednom pripade. Nic se nikde neztraci. Proc je tomu tak a ne jinak je jiz otazka na tvurce floating point aritmetiky v procesorech.

Uživatelský avatar
Pytkin
Moderátor
Příspěvky: 21306
Registrován: 23 kvě 2002 16:23

Příspěvek od Pytkin » 26 led 2009 13:55

vras : necital si co som pisal ? hovorime o tom , ked prekrocis 24bit integer .. jasne ze ked si v rozsahu 24bit integeru , tak sa nic nestrati .. ked ale prejdes "nad nulu" tak stracas informacie .

Uživatelský avatar
Kermitak
Moderátor
Příspěvky: 6446
Registrován: 12 led 2005 22:43

Příspěvek od Kermitak » 26 led 2009 14:15

vras píše:Nejlepsi je si to vyzkouset v praxi, pac me to zajimalo, tak jsem za par minut udelal programek, co _vsechna_ cisla v intervalu -8388608 az 8388607 (coz odpovida rozsahu 24-bitoveho audia) prevedl na float_32 a zase zpet na int a porovnal a vysledek? Cely vypocet trval zlomek sekundy, absolutne zadny rozdil, ani v jednom pripade. Nic se nikde neztraci. Proc je tomu tak a ne jinak je jiz otazka na tvurce floating point aritmetiky v procesorech.
Pokud to dobre chapu, pouze jsi ta cisla pretypoval na float a zpatky. To nema s fp aritmetikou v cpu nic spolecnyho, protoze jsi zadny fp operace neprovadel.

vras
Příspěvky: 831
Registrován: 27 lis 2007 20:36

Příspěvek od vras » 26 led 2009 15:01

no samo, slo prece o prevod, pokud to zacnes delit a nasobit tisicem nebo milionem, tak samozrejme vznika chyba, ale na urovni zhruba posledniho bitu, v procentech asi tak .00001%, coz asi uznas, ze z pohledu audia to zadna chyba neni :-/

Odpovědět