Conversion 8 bits
stéréo en 16 bits stéréo
Les données du sample
8 bits stéréo possèdent 2 octets: 1 octets
pour la voie de gauche, et 1 octets pour la voie de droite. Pour
convertir en 16 bits stéréo, nous allons ajouter 1
octets sur chaque voie en multipliant l'amplitude par 256. Il ne
faut pas oublier que les données 16 bits sont signées,
alors que le 8 bits ne l'est pas!
1) Multiplier
les données 8 bits par 256 pour chaque voie.
2) Convertir les données 16 bits non-signées en 16
bits signées
3) Modifier l'en-tête du fichier pour le nouveau format.
Pour convertir
les données 8 bits en 16 bits, il faut d'abord multiplier
par $100 (256), ensuite pour transformer
les données non-signées en données signées,
il faut ajouter $8000
(32768).
Si le résultat est est supérieure ou égal à $10000 (65536), alors il faut soustraire
$10000.
Le code suivant est un exemple de conversion d'une seule donnée.
Il est destiné à vous expliquer la méthode
utilisée. Dans le cas d'un fichier entier, il faudra placer
ce code dans la boucle de traitement:
VAR voieL,voieR: longint;
BEGIN
voieL:=(voieL*$100)+$8000; IF(voieL>=$10000)THEN voieL:=voieL-$10000;
voieR:=(voieR*$100)+$8000; IF(voieR>=$10000)THEN voieR:=voieR-$10000;
END;
En ce qui concerne l'en-tête du fichier, il faut apporter
les modifications suivantes:
- Filesize est multiplier par deux.
- Format change de 8 en 16 bits.
- Mode ne bouge pas.
- Comme d'hab, il faudra modifier BytePerSec et NbrByte.
SOURCE DU PROGRAMME
|