Changeset 342 in Sophya for trunk/Poubelle/archTOI.old/compress.h
- Timestamp:
- Aug 2, 1999, 3:45:52 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Poubelle/archTOI.old/compress.h
r315 r342 6 6 /************************************************************************/ 7 7 8 #ifndef int49 #ifdef __alpha10 #define int4 int11 #else12 #define int4 long13 #endif14 #endif15 8 16 9 … … 24 17 /* pour n = 72 en sortie 19 mots = 76 octets */ 25 18 26 void compress_7_1( int4* in,int4*out,int n,int pasin);19 void compress_7_1(unsigned int4* in,unsigned int4*out,int n,int pasin); 27 20 void decompress_7_1(int4* in,int4*out,int n); 28 21 … … 36 29 /* pour n = 72 en sortie 11 mots = 44 octets */ 37 30 38 void compress_4_1( int4* in,int4*out,int n,int pasin);31 void compress_4_1(unsigned int4* in,unsigned int4*out,int n,int pasin); 39 32 void decompress_4_1(int4* in,int4*out,int n); 40 33 … … 49 42 50 43 51 void compress_3_1( int4* in,int4*out,int n,int pasin);44 void compress_3_1(unsigned int4* in,unsigned int4*out,int n,int pasin); 52 45 void decompress_3_1(int4* in,int4*out,int n); 53 46 … … 70 63 71 64 72 void compress_7_2( int4* in,int4*out,int n,int pasin);65 void compress_7_2(unsigned int4* in,unsigned int4*out,int n,int pasin); 73 66 void decompress_7_2(int4* in,int4*out,int n); 74 67 … … 85 78 86 79 87 void compress_4_2( int4* in,int4*out,int n,int pasin);80 void compress_4_2(unsigned int4* in,unsigned int4*out,int n,int pasin); 88 81 void decompress_4_2(int4* in,int4*out,int n); 89 82 … … 96 89 /************************************************************************/ 97 90 98 /*Les valeures de la table d'entree sont consideres comme toujopurs positives */ 99 /* 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) */ 100 95 101 #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;} 102 #define recup(ec,sss,k) {ec=((R>>sss)&emak_);if(ec & sgbi_ ) ec|= sign_ ; ec<<=k;} 103 #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); 104 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.