Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
Abbiamo intervistato Sumit Dhawan, CEO di Proofpoint, per capire come stia cambiando il mondo della sicurezza con l'avvento dell'intelligenza artificiale e con il ritmo sempre più serrato a cui vengono trovate vulnerabilità nel software. Un problema significativo, che richiederà del tempo per essere risolto (o quantomeno arginato)
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-11-2010, 16:54   #1
Duchamp
Member
 
L'Avatar di Duchamp
 
Iscritto dal: Apr 2010
Messaggi: 67
[c] un suggerimento su malloc

Ciao a tutto il forum,
sono alle prese con la lettura di un wave. Non voglio tediarvi con specifiche, header o cose strane, vi dirò solo che c'è un'informazione relativa alla lunghezza in byte del file:

Subchunk2Size == NumSamples * NumChannels * BitsPerSample/8

In poche parole questo Subchunk2size contiene la dimensione del wave considerando anche il numero di campioni, di canali, il bitrate e così via. Insomma, le info giuste per allocare un array in memoria.

Ma ecco il mio dubbio: essendo una dimensione in byte, io allocherò con:

Codice:
float *wave = (float *) malloc(Subchunk2Size * sizeof(float))
oppure semplicemente

Codice:
float *wave = (float *) malloc(Subchunk2Size)
?

Naturalmente il mio esempio usa float, perchè immagino di avere un wave con campioni in virgola mobile.
Io sono più propenso verso la seconda modalità, ma i dubbi mi assalgono.
Ringrazio per qualsiasi delucidazione possiate darmi
Duchamp è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2010, 18:16   #2
Supdario
Member
 
Iscritto dal: Mar 2008
Messaggi: 267
La seconda opzione andrebbe bene solo nel caso Subchunk2Size fosse divisibile per 4 byte (32bit). Cosa che dovrebbe essere fattibile, se il caso è questo:
44100 Hz, 2 canali, 32 bit float

Ovviamente potrai accedere al vettore solo a gruppi di float (wave[0], wave[1], ecc...).

In ogni caso ti suggerirei di usare un'altra struttura (possibilmente binaria). Anche se non ho capito bene quello che vuoi fare, mi sembra concettualmente sbagliato.

Ultima modifica di Supdario : 19-11-2010 alle 18:19.
Supdario è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2010, 18:32   #3
Duchamp
Member
 
L'Avatar di Duchamp
 
Iscritto dal: Apr 2010
Messaggi: 67
Ciao Supdario, molto interessante quanto hai scritto.
Parto chiarendo meglio quello che vorrei fare: semplicemente mettere in un array tutti i dati "sonori", escludendo naturalmente l'header che non mi interessa.
L'accesso a gruppi va benissimo, ma sono curioso di capire meglio l'idea della struttura binaria...
Duchamp è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2010, 13:01   #4
Supdario
Member
 
Iscritto dal: Mar 2008
Messaggi: 267
Quote:
Originariamente inviato da Duchamp Guarda i messaggi
Ciao Supdario, molto interessante quanto hai scritto.
Parto chiarendo meglio quello che vorrei fare: semplicemente mettere in un array tutti i dati "sonori", escludendo naturalmente l'header che non mi interessa.
L'accesso a gruppi va benissimo, ma sono curioso di capire meglio l'idea della struttura binaria...
Molto semplice, si tratta semplicemente di un modo più preciso per accedere ai singoli chuck, in modo da poter scegliere in modo selettivo non solo la posizione del chunk, ma anche il canale e l'unità di tempo
Supponiamo ad esempio di avere un file stereo (2 canali), profondità 32bit float e 44100 Hz di campionamento. Idealmente se hai un file audio che dura 100 secondi potresti accedere così:
Codice:
float wave[canale(0-1)][tempo(0-99)][campione(0-44099)]
Anche se posso ammettere che quest'ultima soluzione (soprattutto per il fatto del tempo e campioni distinti) potrebbe non essere adeguata, quindi si potrebbe fare così:
Codice:
float wave[canale(0-1)][n.chunk(da 0 a 44100*durata)]
In definitiva, la soluzione migliore sarebbe questa, supponendo che in "canali" c'è il numero dei canali, ed in "frequenza" c'è la frequenza di campionamento

Codice:
int canali = 2;
int frequenza = 44100;
int durata = 120; //2 minuti
int chunksize = frequenza * canali * sizeof(float);
float **wave = (float **) malloc(sizeof(float*) * canali);
int i;
for (i = 0; i < canali; i++) wave[i] = (float *) malloc(chunksize * durata);
In questo modo hai una matrice a più canali, quindi supponendo di avere un file stereo, accedi all'ultimo campionamento del terzo secondo nel primo canale in questo modo:
wave[0][2*frequenza + 44099] = wave[0][2*44100 + 44099] = wave[0][132299]

Spero di essere stato abbastanza chiaro, se hai bisogno chiedi pure.
Supdario è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
Invia il tuo nome a 1,5 milioni di chilo...
Apple MacBook Neo 13'' con chip A18 Pro ...
Insieme a Leica SL3-P presentate le otti...
La Cina svilupperà anche il razzo...
Rocket Lab e la missione Victus Haze per...
Starship: Ship 40 ha eseguito uno static...
I nuovi Samsung Galaxy Watch 9 si mostra...
Einsten aveva ragione, di nuovo: captate...
Top 10 offerte Amazon: 5 sono partite qu...
AI Conf 2026: l'intelligenza artificiale...
Samsung Galaxy S26 scende a 711,49€: un ...
Dopo il maxi blackout, la Spagna cambia ...
Costa meno di un MacBook e fa molto di p...
Ecco tutti i robot aspirapolvere rimasti...
Più partite da seguire in contemporanea?...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:37.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v