Le mathématicien français Fabrice Bellard, à l'origine des projets QEMU, FFmpeg, BPG, QuickJS, TinyGL et TinyCC, a publié un format de codage audio nommé TSAC ainsi qu'un ensemble d'outils associés pour la compression et la décompression des fichiers audio. Ce format est conçu pour le transfert de données avec un très faible débit binaire, par exemple, 5,5 kb/s pour le mono et 7,5 kb/s pour le stéréo, tout en préservant une qualité acceptable de musique et de parole. L'utilisation de TSAC permet d'emballer une composition musicale de 3,5 minutes avec un échantillonnage à 44,1 kHz (stéréo) dans un fichier d'une taille de 192 Ko, qui sera quasiment indistinguable de l'original pour l'oreille d'un auditeur non averti. Le code du projet est diffusé sous licence MIT.
Pour la création de TSAC, le codec audio Descript a été utilisé comme base, étendu pour supporter le son stéréo et adapté pour utiliser un nouveau modèle d'apprentissage automatique basé sur un réseau de neurones avec une architecture de type « transformeur », ce qui a permis d'accroître le taux de compression grâce à la reconstruction des détails perdus en tenant compte du modèle de perception auditive humaine. Le modèle occupe environ 200 Mo dans une version compressée et se présente sous une forme déterministe, garantissant un résultat identique, quel que soit le CPU/GPU utilisé et le nombre de threads engagés dans les calculs.
L'encodeur peut fonctionner en utilisant uniquement le CPU pour les calculs (les instructions AVX2 sont prises en charge pour l'accélération), mais pour atteindre de hautes performances, il est recommandé d'utiliser le GPU. Dans sa version actuelle, l'API CUDA peut être appliquée pour accélérer les calculs avec les GPU NVIDIA basés sur les microarchitectures Ampere, ADA et Hopper (RTX 3090, RTX 4090, RTX A6000, A100 et H100), possédant au moins 4 Go de mémoire vidéo. FFmpeg est utilisé pour convertir les fichiers audio avant l'encodage.
Il convient également de mentionner la mise à jour de l'outil ts_zip développé par Bellard, conçu pour compresser efficacement les données textuelles en utilisant un mécanisme de prédiction des tokens basé sur un système d'apprentissage automatique et le grand modèle de langage RWKV 169M v4. Lors de la compression de l'archive de Wikipedia, l'outil ts_zip a permis de compresser les données de 7,3 fois, tandis que pour le code du noyau Linux 1.2, la compression a été de 7,8 fois. À titre de comparaison, les niveaux de compression avec l'outil xz étaient de 4,7 et 5,5 fois, respectivement. Le prix de cette efficacité de compression élevée est une faible vitesse de compression et des exigences en ressources importantes (minimum 4 Go de RAM). Sur un système avec un GPU RTX 4090, la performance de compression est d'environ 1 Mo/s.
Source : opennet.ru
