Changeset 657 in Sophya for trunk/Poubelle/archediab.old/archediab.sources/h/compress.h
- Timestamp:
- Nov 25, 1999, 4:58:46 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Poubelle/archediab.old/archediab.sources/h/compress.h
r637 r657 17 17 /* pour n = 72 en sortie 19 mots = 76 octets */ 18 18 19 void compress_7_1( long* in,long*out,int n,int pasin);19 void compress_7_1(unsigned long* in,unsigned long*out,int n,int pasin); 20 20 void decompress_7_1(long* in,long*out,int n); 21 21 … … 29 29 /* pour n = 72 en sortie 11 mots = 44 octets */ 30 30 31 void compress_4_1( long* in,long*out,int n,int pasin);31 void compress_4_1(unsigned long* in,unsigned long*out,int n,int pasin); 32 32 void decompress_4_1(long* in,long*out,int n); 33 33 … … 42 42 43 43 44 void compress_3_1( long* in,long*out,int n,int pasin);44 void compress_3_1(unsigned long* in,unsigned long*out,int n,int pasin); 45 45 void decompress_3_1(long* in,long*out,int n); 46 46 … … 63 63 64 64 65 void compress_7_2( long* in,long*out,int n,int pasin);65 void compress_7_2(unsigned long* in,unsigned long*out,int n,int pasin); 66 66 void decompress_7_2(long* in,long*out,int n); 67 67 … … 78 78 79 79 80 void compress_4_2( long* in,long*out,int n,int pasin);80 void compress_4_2(unsigned long* in,unsigned long*out,int n,int pasin); 81 81 void decompress_4_2(long* in,long*out,int n); 82 82 … … 89 89 /************************************************************************/ 90 90 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) */ 93 95 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); 97 102 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.