Ignore:
Timestamp:
Nov 25, 1999, 4:58:46 PM (26 years ago)
Author:
ansari
Message:

4 bit pour bolo on-of/bolo transmis

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Poubelle/archediab.old/archediab.sources/h/compress.h

    r637 r657  
    1717/*      pour    n = 72    en sortie     19 mots = 76 octets             */
    1818
    19 void compress_7_1(long* in,long*out,int n,int pasin);
     19void compress_7_1(unsigned long* in,unsigned long*out,int n,int pasin);
    2020void decompress_7_1(long* in,long*out,int n);
    2121
     
    2929/*      pour    n = 72    en sortie     11 mots = 44 octets             */
    3030
    31 void compress_4_1(long* in,long*out,int n,int pasin);
     31void compress_4_1(unsigned long* in,unsigned long*out,int n,int pasin);
    3232void decompress_4_1(long* in,long*out,int n);
    3333
     
    4242
    4343
    44 void compress_3_1(long* in,long*out,int n,int pasin);
     44void compress_3_1(unsigned long* in,unsigned long*out,int n,int pasin);
    4545void decompress_3_1(long* in,long*out,int n);
    4646
     
    6363
    6464
    65 void compress_7_2(long* in,long*out,int n,int pasin);
     65void compress_7_2(unsigned long* in,unsigned long*out,int n,int pasin);
    6666void decompress_7_2(long* in,long*out,int n);
    6767
     
    7878
    7979
    80 void compress_4_2(long* in,long*out,int n,int pasin);
     80void compress_4_2(unsigned long* in,unsigned long*out,int n,int pasin);
    8181void decompress_4_2(long* in,long*out,int n);
    8282
     
    8989/************************************************************************/
    9090
    91 /*Les valeures de la table d'entree sont consideres comme toujopurs positives   */
    92 /* les ecarts sont calculés signés sur 32 bit avant d'etre tronconnés           */
     91/*      tous les nombres sont des entiers unsigned long pour compress                           */
     92/*Les valeures de la table d'entree sont consideres comme toujours positives et sur 21 bits     */
     93/*  les valeurs de reference pour le calcul des ecarts sont augmentees de ecart_bit=0x10000000  */
     94/*      LES ECARTS SONT DES ENTIERS POSITIFS (ecart_bit +  valeur courante - valeur precedente) */
    9395
    94 #define shif(ec,k,q)    {while(ec>q)if(k<kmax_){k++;q<<=1;}else ec=q;while(ec<-q)if(k<kmax_){k++;q<<=1;}else ec=-q;}
    95 #define recup(ec,sss,k) {ec=((R>>sss)&emak_);if(ec & sgbi_ ) ec|= sign_ ; ec<<=k;}
    96 #define arrondi(ec,k)   ((ec &  filtre[k]) +( (ec & test[k]) <<1 ) )   
     96/*  pour tous les compresseurs  */
     97#define kmax_   15              /*  valeur maximum de l'exposant        */
     98#define ecart_bit       0x10000000
     99#define shif(ec,k,q)    {while(ec>(q|ecart_bit))if(k<kmax_){k++;q<<=1;}else ec=(q|ecart_bit);while(ec<ecart_bit-q)if(k<kmax_){k++;q<<=1;}else ec=ecart_bit-q;}
     100#define arrondi(ec,k)   ((ec &  filtre[k]) +( (ec & test[k]) <<1 ) ) /* resultat sur 28 bit  */
     101#define new_val(val,ec,k)       ((val + arrondi(ec,k))&data_mask);
    97102
     103/* pour les decompresseurs      */
     104#define recup(ec,sss,k) {ec=((R>>sss)&ecart_mask);if(ec & sgbi_ ) ec|= sign_ ; ec<<=k;}
     105
Note: See TracChangeset for help on using the changeset viewer.