IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

conversion ISDN Alaw reversed -> PCM 16bits


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Par défaut conversion ISDN Alaw reversed -> PCM 16bits
    Bonjour, je voudrais transformer les données que je recois sur ma ligne RNIS (ISDN Alaw reversed) en PCM 16bits. j'ai trouvé quelque algo sur le net mais aucun marche. il faut inversé les bits de chaque sample et faire la conversion de chaque sample en linear PCM 16. quelqu'un la deja fait ou a deja eu ce probleme ?

    voici mon code qui ne renvoi que des parasites

    typedef unsigned char alaw8;
    typedef signed short pcm16;
    pcm16 alawTable[] =
    {688, -688, 43, -43, 2752, -2752, 172, -172,
    344, -344, 11, -11, 1376, -1376, 86, -86,
    944, -944, 59, -59, 3776, -3776, 236, -236,
    472, -472, 27, -27, 1888, -1888, 118, -118,
    560, -560, 35, -35, 2240, -2240, 140, -140,
    280, -280, 3, -3, 1120, -1120, 70, -70,
    816, -816, 51, -51, 3264, -3264, 204, -204,
    408, -408, 19, -19, 1632, -1632, 102, -102,
    752, -752, 47, -47, 3008, -3008, 188, -188,
    376, -376, 15, -15, 1504, -1504, 94, -94,
    1008, -1008, 63, -63, 4032, -4032, 252, -252,
    504, -504, 31, -31, 2016, -2016, 126, -126,
    624, -624, 39, -39, 2496, -2496, 156, -156,
    312, -312, 7, -7, 1248, -1248, 78, -78,
    880, -880, 55, -55, 3520, -3520, 220, -220,
    440, -440, 23, -23, 1760, -1760, 110, -110,
    656, -656, 41, -41, 2624, -2624, 164, -164,
    328, -328, 9, -9, 1312, -1312, 82, -82,
    912, -912, 57, -57, 3648, -3648, 228, -228,
    456, -456, 25, -25, 1824, -1824, 114, -114,
    528, -528, 33, -33, 2112, -2112, 132, -132,
    264, -264, 1, -1, 1056, -1056, 66, -66,
    784, -784, 49, -49, 3136, -3136, 196, -196,
    392, -392, 17, -17, 1568, -1568, 98, -98,
    720, -720, 45, -45, 2880, -2880, 180, -180,
    360, -360, 13, -13, 1440, -1440, 90, -90,
    976, -976, 61, -61, 3904, -3904, 244, -244,
    488, -488, 29, -29, 1952, -1952, 122, -122,
    592, -592, 37, -37, 2368, -2368, 148, -148,
    296, -296, 5, -5, 1184, -1184, 74, -74,
    848, -848, 53, -53, 3392, -3392, 212, -212,
    424, -424, 21, -21, 1696, -1696, 106, -106};
    alaw8 reverseByte[256] = {
    0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0,
    0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,
    0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8,
    0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,
    0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4,
    0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,
    0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC,
    0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC,
    0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2,
    0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2,
    0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA,
    0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA,
    0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6,
    0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6,
    0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE,
    0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE,
    0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1,
    0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1,
    0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9,
    0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9,
    0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5,
    0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5,
    0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED,
    0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD,
    0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3,
    0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3,
    0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB,
    0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB,
    0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7,
    0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,
    0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF,
    0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF,
    };
    static pcm16 alaw2linear(alaw8 a_val){
    a_val = reverseByte[a_val & 0xFF]; // isdn alaw est inverse
    return alawTable[a_val];
    }

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Salut !

    pour le reverse, il tu suffit d'utiliser l'opérateur unaire ~ qui est un NON bit-à-bit

    pour la conversion par contre, je ne peux pas t'aider... peut-être plus sur le forum algo (supposition... il y a peut-être un forum mieux adapté à ces formats )
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Par défaut
    je vais essayer de trouver un autre forum; merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Par défaut
    voila un code qui marche
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Raw PCM to wave conversion
    Par cool147 dans le forum Multimédia
    Réponses: 1
    Dernier message: 20/05/2009, 15h35
  2. algorithme conversion G.711 a linear PCM
    Par kh12040 dans le forum C
    Réponses: 6
    Dernier message: 02/09/2008, 14h16
  3. Conversion des PCM
    Par doomtn dans le forum C
    Réponses: 3
    Dernier message: 13/03/2008, 18h54
  4. Réponses: 3
    Dernier message: 12/04/2005, 15h56
  5. Conversion d'images 24/32 Bits -> 16bits
    Par RVP dans le forum Langage
    Réponses: 4
    Dernier message: 30/05/2004, 17h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo