Strona 1 z 12

32 bit float - o co chodzi?

: poniedziałek 08 cze 2009, 13:05
autor: blanko
Witam.

Nagrywam podkłady muzyczne na komputerze, wszystko dzieje się wewnątrz komputera, nie mam żadnych zewnętrznych urządzeń, pracuję na Cubase SX3 i na EMU 0404. Mam pytanie dotyczące zgrywania materiału. Jaka jest różnica między 24 bit a 32 bit float poza objętością? Czy jest sens zgrywania do 32 bitów gdy karta moja obsługuje maks 24 bity? Może ktoś mi wytłumaczyć o co chodzi z tym bit float?

Dziękuję i pozdrawiam

Re: 32 bit float - o co chodzi?

: poniedziałek 08 cze 2009, 13:29
autor: irok84
Może ktoś mi wytłumaczyć o co chodzi z tym bit float?
**********************

Na początek male wyprowadzenie z błędu: To nie bity są float, czyli nie "32, bit float", tylko "32 bit, float".

A jako że jestem programistą z zawodu, to conieco wytłumaczę:

float - oznacza liczbę zmiennoprzecinkową. Przykład: jeśli liczba 1.5 będzie zapisana jako integer (czyli liczba bez przecinka) to będzie ona miała wartość 1 (jeśli zostanie obcięta) lub 2 jeśli zostanie zaokrąglona. W przypadku liczby zmiennoprzecinkowej będzie ona miała wartość 1.5. Czyli jest dokładność ułamków. Jest jednak problem z liczbami całkowitymi, które niekiedy są zapisywane np. tak:

Reprezentacja liczby 3 w postaci float: 2.99999999999999999999999999

Liczby typu float, są zapisywane wykładniczo i tak naprawdę 32 bit float w zapisie cyfrowym dźwięku nie różni się od 24 bit (bez float) ponieważ 8 bitów jest używanych do zapisu wykładnika, a więc na reprezentację rozdzielczości nadal pozostają 24 bity. Czyli różnica jest jedynie w sposobie zapisu danych.

Więcej na wikipedii: http://pl.wikipedia.org/wiki/Liczba_zmiennoprzecinkowa

Re: 32 bit float - o co chodzi?

: poniedziałek 08 cze 2009, 13:46
autor: szkudlik
Float to sposob zapisu, zwany ZMIENNOPRZECINKOWYM

Przy formatach STALOPRZECINKOWYCH masz scisle okreslone liczby MAX i MIN, ktore wynosza np. dla 8 bitow 256 mozliwych wartosci: od -128 do +127 lub od 0 do 255 (lub jeszcze inaczej, zalezy od kodu zapisu), dla wiekszej ilosci bitow ten zakres sie zwieksza, 24 bity to 16777216 wartosci.

Zapis zmiennoprzecinkowy dziala troche inaczej. Tutaj liczba sklada sie z dwu elementow mantysy czyli po prostu liczby oraz cechy czyli - mowiac po ludzku - okreslenia w ktorym miejscu postawic przecinek.

Na przyklad: zeby zapisac 0.1 w zmiennym przecinku (do zaawansowanych: stosuje system dziesietny dla uproszczenia!) nalezy przyjac mantyse 1 oraz ceche -1. Odczyt takiej liczby wyglada tak: "napisz jeden i przesun przecinek o jedno miejsce w lewo".

Zauwaz ze mamy dalej precyzje dokladnie taka sama jak w przypadku liczby staloprzecinkowej (np. 8-mio bitowej - tylko wartosci od 0 do 255 lub od -128 do 127), ale za to mozemy "umieszczac" te wartosci praktycznie dowolnie w przestrzeni liczb, przesuwajac przecinek w prawo i w lewo.

No i teraz dochodzimy do tego co nam daje dodanie do 3 bajtow (24bit) dodatkowego bajtu cechy (32bit float) - mamy dalej te sama precyzje co przy 24 bitach i dodatkowo praktycznie nieograniczona dynamike sygnalu (kilkaset dB)

Przy zmiennym przecinku stlumienie sygnalu o kilkaset dB nastepnie podbicie go o tylez nie da zadnych zmian jakosciowych.

Czyli - zapisujac surowy sygnal z przetwornika 24bity sa wystarczajace. Zapisujac sygnal pomiedzy etapami przetwarzania - 32 moga byc lepsze.

[addsig]

Re: 32 bit float - o co chodzi?

: wtorek 09 cze 2009, 00:21
autor: blanko

No i teraz dochodzimy do tego co nam daje dodanie do 3 bajtow (24bit) dodatkowego bajtu cechy (32bit float) - mamy dalej te sama precyzje co przy 24 bitach i dodatkowo praktycznie nieograniczona dynamike sygnalu (kilkaset dB)

Przy zmiennym przecinku stlumienie sygnalu o kilkaset dB nastepnie podbicie go o tylez nie da zadnych zmian jakosciowych.

Czyli - zapisujac surowy sygnal z przetwornika 24bity sa wystarczajace. Zapisujac sygnal pomiedzy etapami przetwarzania - 32 moga byc lepsze.

...
**********************
Czyli rozumiem, że gdy zgram materiał i dalej będę go przetwarzał np. wzmocnienie sygnału w WaveLabie przy pomocy VintageWarmer jest sens zgrywania go do 32 bitów mimo że moja karta pracuje do 24 bitów? Mam większe pole do popisu jeśli chodzi o dynamikę tak? Utwór ma więcej "przestrzeni"? Dobrze to rozumiem?

Re: 32 bit float - o co chodzi?

: wtorek 09 cze 2009, 01:17
autor: gatto
32 bity float mogłyby mieć znaczenie w audiofilskich nagraniach z najwyższej półki przeznaczonych do odtwarzania na sprzęcie hi-end. Przy składaniu podkładów na podstawie sztucznych brzmień z karty dźwiękowej 24 bity i tak dają ogromny zapas rozdzielczości. Przy okazji, gdyby te podkłady zostały użyte do produkcji płytowych, to na skutek wielokrotnej (3-krotnej) kompresji nawet 16 bitów CD nie zostałyby nigdy wykorzystane. Co do przestrzeni, to z pewnością jest ona w 100% sztuczna i dodatkowe bity jej ani nie pogłębią ani nie zamienią w prawdziwą.

Re: 32 bit float - o co chodzi?

: wtorek 09 cze 2009, 08:28
autor: blanko
...32 bity float mogłyby mieć znaczenie w audiofilskich nagraniach z najwyższej półki przeznaczonych do odtwarzania na sprzęcie hi-end.
********************************

Przecież uszy nawet tego nie wyłapią więc jaki sens w tym? :)


Przy składaniu podkładów na podstawie sztucznych brzmień z karty dźwiękowej 24 bity i tak dają ogromny zapas rozdzielczości. Przy okazji, gdyby te podkłady zostały użyte do produkcji płytowych, to na skutek wielokrotnej (3-krotnej) kompresji nawet 16 bitów CD nie zostałyby nigdy wykorzystane. Co do przestrzeni, to z pewnością jest ona w 100% sztuczna i dodatkowe bity jej ani nie pogłębią ani nie zamienią w prawdziwą....
**********************

Sztuczna bo moja karta jest do 24 bitów tak? Jeśli by była 32 bitowa to by nie była sztuczna?

Re: 32 bit float - o co chodzi?

: wtorek 09 cze 2009, 08:42
autor: blanko
Przy okazji, gdyby te podkłady zostały użyte do produkcji płytowych, to na skutek wielokrotnej (3-krotnej) kompresji nawet 16 bitów CD nie zostałyby nigdy wykorzystane. Co do przestrzeni, to z pewnością jest ona w 100% sztuczna i dodatkowe bity jej ani nie pogłębią ani nie zamienią w prawdziwą....
**********************

Generalnie, chodzi mi o wzmocnienie sygnału, chce zwyczajnie podgłosić zgrany materiał. Zgrywam w Cubase SX i on ma możliwość zgrania do 32 bitów float. Następnie w WaveLabie przy pomocy VintageWarmera podgłaszam materiał - WaveLab też ma możliwość 32 bit float. Chodzi mi tylko o dynamikę, nie o jakąś kosmiczną jakość bo i tak tego nie usłyszę! Czy jest sens zgrywać do 32 bitów float gdy mam kartę 24 bitową, programy mi to umożliwiają, więc pytam czy jest sens? To jest, można by rzec, czysta teoria bo gdy zgrywam do 24 bitów to jestem zadowolony raczej gdy wzmacniam dynamikę, raczej mi wystarcza ale czasami materiał nie zgra się tak jak być powinno (nie jestem w tym najlepszy) i słychać drobne przesterowania gdy przesadzę z podgłaszaniem! Dlatego pytam o te 32 bity! Czasami wydaje mi sie że jest lepiej, że jest większa przestrzeń ale sam nie wiem czy to przypadkiem nie jest siła sugestii

Re: 32 bit float - o co chodzi?

: wtorek 09 cze 2009, 09:19
autor: Tadeo
Czy jest sens zgrywać do 32 bitów float gdy mam kartę 24 bitową, programy mi to umożliwiają, więc pytam czy jest sens?
*****************************************
Kolego oporny, przecież szkudlik Ci wszystko wyżej wyjaśnił, dlaczego nie czytasz postów

Re: 32 bit float - o co chodzi?

: wtorek 09 cze 2009, 10:09
autor: ast

Sztuczna bo moja karta jest do 24 bitów tak? Jeśli by była 32 bitowa to by nie była sztuczna? ...
**********************
Nie. Sztucznych brzmień w sensie "Samploklejstwa" i "składania bitów"

Re: 32 bit float - o co chodzi?

: wtorek 09 cze 2009, 12:26
autor: jarekz
...32 bity float mogłyby mieć znaczenie w audiofilskich nagraniach z najwyższej półki przeznaczonych do odtwarzania na sprzęcie hi-end...
Nie mogę się z tym zgodzić.
Sens używania 32-bitowego formatu zmiennoprzecinkowego jest taki, że procesor komputera może wtedy robić całą obróbkę dźwięku zmiennoprzecinkowo bez tracenia czasu na ciągłe konwersje "24 bit fixed" -> "32 bit float" i odwrotnie. A obróbka zmiennoprzecinkowa jest bardzo wygodna dla tworzącego ją programisty, bo on wtedy nie zawraca sobie głowy koniecznością ciągłego dopasowywania się do stosunkowo wąskiego zakresu liczb stałoprzecinkowych.
Natomiast na jakość dźwięku przechodzenie z "24 bit fixed" na "32 bit float" i odwrotnie nie ma - podkreślam - żadnego wpływu.