Il matematico francese Fabrice Bellard, che ha fondato a suo tempo i progetti QEMU, FFmpeg, BPG, QuickJS, TinyGL e TinyCC, ha pubblicato un formato di codifica audio chiamato TSAC e gli strumenti associati per la compressione e decompressione dei file audio. Il formato è orientato alla trasmissione di dati a bassissimo bitrate, ad esempio, 5.5 kb/s per mono e 7.5 kb/s per stereo, mantenendo una qualità musicale e vocale accettabile. L'uso di TSAC consente di comprimere una composizione musicale della durata di 3.5 minuti e con frequenza di campionamento di 44.1 kHz (stereo) in un file di dimensione 192 KB, che sarà quasi indistinguibile dall'originale all'orecchio di un ascoltatore non esperto. Il codice del progetto è distribuito con licenza MIT.
Come base per la creazione di TSAC è stato utilizzato il codec audio Descript, esteso per supportare il suono stereo e convertito per utilizzare un diverso modello di apprendimento automatico basato su una rete neurale con architettura 'trasformers', che ha permesso di aumentare il tasso di compressione ricostruendo dettagli persi tenendo conto del modello di percezione uditiva umana. Il modello occupa circa 200 MB in forma compressa ed è presentato in modo deterministico, garantendo risultati identici indipendentemente dalle CPU/GPU utilizzate e dal numero di thread impiegati nei calcoli.
L'encoder può lavorare utilizzando solo la CPU per i calcoli (per accelerare sono supportate istruzioni AVX2), ma per raggiungere elevate prestazioni è consigliato utilizzare una GPU. Nella sua attuale configurazione, è possibile utilizzare l'API CUDA per accelerare con GPU NVIDIA basate su microarchitetture Ampere, ADA e Hopper (RTX 3090, RTX 4090, RTX A6000, A100 e H100), che hanno almeno 4 GB di memoria video. Per la conversione dei file audio prima della codifica si utilizza FFmpeg.
Inoltre, si può notare l'aggiornamento dello strumento ts_zip sviluppato da Bellard, progettato per la compressione efficiente dei dati testuali, utilizzando un meccanismo di previsione dei token basato su un sistema di apprendimento automatico e un grande modello linguistico RWKV 169M v4. Durante la compressione dell'archivio di Wikipedia, lo strumento ts_zip ha permesso di comprimere i dati di 7,3 volte, mentre nella compressione del codice del kernel Linux 1.2 — di 7,8 volte. A titolo di confronto, i livelli di compressione utilizzando lo strumento xz sono stati rispettivamente di 4,7 e 5,5 volte. Il prezzo di alta efficienza nella compressione è rappresentato da una bassa velocità di compressione e da elevate richieste di risorse (almeno 4 GB di RAM). Su un sistema con GPU RTX 4090, la prestazione di compressione è di circa 1 MB/s.
Fonte: opennet.ru
