[Tech] OT: C, linux e la rappresentazione in mem

Claudio Kutufà claudiok@nexusfi.it
Lun 1 Mar 2004 16:56:51 CET


>16 bit
>2 canali
>8000 Hz di freq. di campionamento.
>durata acquisizione 60 sec.
>
>la quantità di memoria da allocare è: 60*16*2*8000=15360000 bit.
>
>Voglio che il buffer che dovrà contenere i dati audio, sia un buffer in 
>allocazione dinamica di tipo float, per cui:
>
>p=(float *)calloc(size,sizeof(float));

io francamente non userei gli unsigned int di esattamente 16 char, sono 
molto più efficienti. Oltretutto i folat usano per la memorizzazione base e 
mantissa, non 16 o 32 bit tutti di seguito. Tu in effetti qui di seguito, 
hai descritto la memorizzazione di un unsifgned long...


>Qui viene il mio dubbio. La scheda audio quantizza il suono con 16 bit 
>(come richiesto). Un tipo float usa 32 bit per la rappresentazione di un 
>numero. Quindi nel mio buffer avrò i 16 bit più rappresentativi tutti con 
>il valore 0, mentre i meno significativi saranno effettivamente impiegati 
>per la rappresentazione del campione audio.
>Inoltre dato che l'acquisizione avviene su 2 canali (acquisizione stereo) 
>significa che nel buffer finiscono 32 bit per il canale sx e 32 bit per il 
>canale dx, rappresentati come descritto prima.
>
>E' giusto questo ragionamento vero?


a questo punto nemmeno questo mi piace troppo :-)

ciao
Claudio


+++++++++++++++++++++++++++++++++++++++++++++++++++++
Ing. Claudio Kutufa'
NEXUS SISTEMI INFORMATIVI S.P.A.
e-mail personale: claudiok@nexusfi.it
tel. cellulare: 335 5859567
Sede Oper.va : Via Dante da Castiglione, 33
Tel. : +39 055 229413 Fax : +39 055 229785
50125 Firenze - Italy
Sede Amm.va : Via Panciatichi 40/11
Tel. : +39 055 4222030 Fax : +39 055 4376670
50100 Firenze - Italy
Nexus home page: www.nexusfi.it
+++++++++++++++++++++++++++++++++++++++++++++++++++++




Maggiori informazioni sulla lista flug-tech