1 | #include "manip.h"
|
---|
2 | #include "compress.h"
|
---|
3 |
|
---|
4 |
|
---|
5 | /*******************************************************************************************/
|
---|
6 | /**************** ************/
|
---|
7 | /**************** compress_3 ************/
|
---|
8 | /**************** ************/
|
---|
9 | /*******************************************************************************************/
|
---|
10 |
|
---|
11 | static int filtre[16]={0xfffffff,0xffffffe,0xffffffc,0xffffff8,
|
---|
12 | 0xffffff0,0xfffffe0,0xfffffc0,0xfffff80,
|
---|
13 | 0xfffff00,0xffffe00,0xffffc00,0xffff800,
|
---|
14 | 0xffff000,0xfffe000,0xfffc000,0xfff8000};
|
---|
15 | int test[16]= {0x00000000,0x00000001,0x00000002,0x00000004,
|
---|
16 | 0x00000008,0x00000010,0x00000020,0x00000040,
|
---|
17 | 0x00000080,0x00000100,0x00000200,0x00000400,
|
---|
18 | 0x00000800,0x00001000,0x00002000,0x00004000};
|
---|
19 |
|
---|
20 |
|
---|
21 | void com_3(unsigned long val,unsigned long* in,unsigned long*out,int n,int pasin);
|
---|
22 |
|
---|
23 | #define data_mask 0xffff /* masque pour les données en entree */
|
---|
24 | #define ecart_(i,n,val) (( (in[(i*9+n)*pasin]&data_mask) | ecart_bit )-val);
|
---|
25 |
|
---|
26 | #define ecart_mask 0x7 /* masque pour l'ecart */
|
---|
27 |
|
---|
28 |
|
---|
29 |
|
---|
30 | /* compress un tableau in de n*9 points disposé avec un pas pasin */
|
---|
31 | /* les data compressées sont ecrites dans le tableau out de n points */
|
---|
32 | /* la valeur val est la valeur de reference du point origine */
|
---|
33 |
|
---|
34 |
|
---|
35 | /* comprime 9*n points : 1er point dans 1er mot */
|
---|
36 | /* tous les ecarts dans les n mots suivants */
|
---|
37 | /* 9*n ==> n+1 pour 72 points : 9 mots */
|
---|
38 |
|
---|
39 | void compress_3_1(unsigned long* in,unsigned long*out,int n,int pasin)
|
---|
40 | {
|
---|
41 | unsigned long val;
|
---|
42 | val=in[0]; out[0]=val;
|
---|
43 | com_3(val,in,out+1,n/9,pasin);
|
---|
44 | }
|
---|
45 |
|
---|
46 |
|
---|
47 |
|
---|
48 |
|
---|
49 | void com_3(unsigned long val,unsigned long* in,unsigned long*out,int n,int pasin)
|
---|
50 | {
|
---|
51 | unsigned long val1;
|
---|
52 | unsigned long ec1,ec2,ec3,ec4,ec5,ec6,ec7,ec8,ec9;
|
---|
53 | int i,k,k1;unsigned long q;
|
---|
54 |
|
---|
55 |
|
---|
56 | for(i=0;i<n;i++)
|
---|
57 | {
|
---|
58 | k=0;q=3; /* 3 bit = 7 = +-3 */
|
---|
59 |
|
---|
60 | ec1=ecart_(i,0,val);
|
---|
61 | shif(ec1,k,q);
|
---|
62 | val1=new_val(val,ec1,k);
|
---|
63 |
|
---|
64 | k1=k;
|
---|
65 | ec2=ecart_(i,1,val1);
|
---|
66 | shif(ec2,k,q);
|
---|
67 |
|
---|
68 | if(k>k1) {k1=k;val1=new_val(val,ec1,k);}
|
---|
69 | val1=new_val(val1,ec2,k);
|
---|
70 |
|
---|
71 | ec3=ecart_(i,2,val1);
|
---|
72 | shif(ec3,k,q);
|
---|
73 |
|
---|
74 | if(k>k1) {k1=k;val1=(val + arrondi(ec1,k) + arrondi(ec2,k))&data_mask;}
|
---|
75 | val1=new_val(val1,ec3,k);
|
---|
76 |
|
---|
77 | ec4=ecart_(i,3,val1);
|
---|
78 | shif(ec4,k,q);
|
---|
79 |
|
---|
80 | if(k>k1) {k1=k;val1=(val + arrondi(ec1,k) + arrondi(ec2,k) + arrondi(ec3,k))&data_mask;}
|
---|
81 | val1=new_val(val1,ec4,k);
|
---|
82 |
|
---|
83 | ec5=ecart_(i,4,val1);
|
---|
84 | shif(ec5,k,q);
|
---|
85 |
|
---|
86 | if(k>k1) {k1=k;val1=(val + arrondi(ec1,k) + arrondi(ec2,k) + arrondi(ec3,k)
|
---|
87 | + arrondi(ec4,k))&data_mask;}
|
---|
88 | val1=new_val(val1,ec5,k);
|
---|
89 |
|
---|
90 | ec6=ecart_(i,5,val1);
|
---|
91 | shif(ec6,k,q);
|
---|
92 |
|
---|
93 | if(k>k1) {k1=k;val1=(val + arrondi(ec1,k) + arrondi(ec2,k) + arrondi(ec3,k)
|
---|
94 | + arrondi(ec4,k) + arrondi(ec5,k))&data_mask;}
|
---|
95 | val1=new_val(val1,ec6,k);
|
---|
96 |
|
---|
97 | ec7=ecart_(i,6,val1);
|
---|
98 | shif(ec7,k,q);
|
---|
99 |
|
---|
100 | if(k>k1) {k1=k;val1=(val + arrondi(ec1,k) + arrondi(ec2,k)
|
---|
101 | + arrondi(ec3,k) + arrondi(ec4,k) + arrondi(ec5,k) + arrondi(ec6,k))&data_mask;}
|
---|
102 | val1=new_val(val1,ec7,k);
|
---|
103 |
|
---|
104 | ec8=ecart_(i,7,val1);
|
---|
105 | shif(ec8,k,q);
|
---|
106 |
|
---|
107 | if(k>k1) {k1=k;val1=(val + arrondi(ec1,k) + arrondi(ec2,k) + arrondi(ec3,k)
|
---|
108 | + arrondi(ec4,k) + arrondi(ec5,k) + arrondi(ec6,k) + arrondi(ec7,k))&data_mask;}
|
---|
109 | val1=new_val(val1,ec8,k);
|
---|
110 |
|
---|
111 | ec9=ecart_(i,8,val1);
|
---|
112 | shif(ec9,k,q);
|
---|
113 |
|
---|
114 | /*printf("i=%d k=%d ec= %d %d %d \n",i,k,ec1,ec2,ec3,out[(i+8)/7]); */
|
---|
115 |
|
---|
116 | ec1 = arrondi(ec1,k) >> k;
|
---|
117 | ec2 = arrondi(ec2,k) >> k;
|
---|
118 | ec3 = arrondi(ec3,k) >> k;
|
---|
119 | ec4 = arrondi(ec4,k) >> k;
|
---|
120 | ec5 = arrondi(ec5,k) >> k;
|
---|
121 | ec6 = arrondi(ec6,k) >> k;
|
---|
122 | ec7 = arrondi(ec7,k) >> k;
|
---|
123 | ec8 = arrondi(ec8,k) >> k;
|
---|
124 | ec9 = arrondi(ec9,k) >> k;
|
---|
125 |
|
---|
126 | out[i]= ((ec1&ecart_mask)<<29) | ((ec2&ecart_mask)<<26) | ((ec3&ecart_mask)<<23)
|
---|
127 | | ((ec4&ecart_mask)<<20) | ((ec5&ecart_mask)<<17) | ((ec6&ecart_mask)<<14)
|
---|
128 | | ((ec7&ecart_mask)<<11) | ((ec8&ecart_mask)<<8) | ((ec9&ecart_mask)<<5) | k ;
|
---|
129 |
|
---|
130 |
|
---|
131 | /* if(i<30) printf("i=%d k=%d ec= %d %d %d \n",i,k,ec1,ec2,ec3,out[(i+8)/7]);*/
|
---|
132 |
|
---|
133 | val=(val + ( (ec1 + ec2 + ec3 + ec4 + ec5 + ec6 + ec7 + ec8 + ec9 ) << k )) & data_mask;
|
---|
134 | }
|
---|
135 | }
|
---|
136 |
|
---|
137 |
|
---|
138 |
|
---|
139 | /*******************************************************************************************/
|
---|
140 | /**************** *****************/
|
---|
141 | /**************** compress_4 *****************/
|
---|
142 | /**************** *****************/
|
---|
143 | /*******************************************************************************************/
|
---|
144 |
|
---|
145 | void com_4(unsigned long val,unsigned long* in,unsigned long*out,int n,int pasin);
|
---|
146 | void com_4_paire(unsigned long val1,unsigned long val2,unsigned long* in,unsigned long*out,int n,int pasin);
|
---|
147 |
|
---|
148 |
|
---|
149 | #undef ecart_mask
|
---|
150 | #define ecart_mask 0xf /* masque pour l'ecart */
|
---|
151 |
|
---|
152 | #undef data_mask
|
---|
153 | #define data_mask 0xffff /* masque pour les données en entree */
|
---|
154 | #undef ecart_
|
---|
155 | #define ecart_(i,n,val) (( (in[(i*7+n)*pasin]&data_mask) | ecart_bit )-val);
|
---|
156 |
|
---|
157 |
|
---|
158 | /* compress un tableau in de n*7 points disposé avec un pas pasin */
|
---|
159 | /* les data compressées sont ecrites dans le tableau out de n points*/
|
---|
160 | /* la valeur val est la valeur de reference du point origine*/
|
---|
161 |
|
---|
162 |
|
---|
163 | /* comprime 7*n + 2 points (de 16 bit chacun) */
|
---|
164 | /* 1er et 2 eme point dans 1er mot, les ecarts dans les n mots suivants*/
|
---|
165 | /* 7*n + 2 ==> n+1 ==> pour 72 points : 11 mots */
|
---|
166 |
|
---|
167 | void compress_4_1(unsigned long* in,unsigned long*out,int n,int pasin)
|
---|
168 | {
|
---|
169 | unsigned long val1,val2;
|
---|
170 | val1=in[0];val2=in[1];
|
---|
171 | *out=( (val1<<16) & 0xffff0000 ) | ( ( val2 ) & 0xffff ) ;
|
---|
172 |
|
---|
173 | com_4(val2,in+2,out+1,n/7,pasin);
|
---|
174 | }
|
---|
175 |
|
---|
176 |
|
---|
177 |
|
---|
178 | void com_4(unsigned long val,unsigned long* in,unsigned long*out,int n,int pasin)
|
---|
179 | {
|
---|
180 | unsigned long val1;
|
---|
181 | unsigned long ec1,ec2,ec3,ec4,ec5,ec6,ec7;
|
---|
182 | int i,k,k1;unsigned long q;
|
---|
183 |
|
---|
184 |
|
---|
185 | for(i=0;i<n;i++)
|
---|
186 | {
|
---|
187 | k=0;q=7; /* 4 bit = 15 = +-7 */
|
---|
188 |
|
---|
189 | ec1=ecart_(i,0,val);
|
---|
190 | shif(ec1,k,q);
|
---|
191 | val1=new_val(val,ec1,k);
|
---|
192 |
|
---|
193 | k1=k;
|
---|
194 | ec2=ecart_(i,1,val1);
|
---|
195 | shif(ec2,k,q);
|
---|
196 |
|
---|
197 | if(k>k1) {k1=k;val1=(val + arrondi(ec1,k))&data_mask;}
|
---|
198 | val1=new_val(val1,ec2,k);
|
---|
199 |
|
---|
200 | ec3=ecart_(i,2,val1);
|
---|
201 | shif(ec3,k,q);
|
---|
202 |
|
---|
203 | if(k>k1) {k1=k;val1=(val + arrondi(ec1,k) + arrondi(ec2,k))&data_mask;}
|
---|
204 | val1=new_val(val1,ec3,k);
|
---|
205 |
|
---|
206 | ec4=ecart_(i,3,val1);
|
---|
207 | shif(ec4,k,q);
|
---|
208 |
|
---|
209 | if(k>k1) {k1=k;val1=(val + arrondi(ec1,k) + arrondi(ec2,k) + arrondi(ec3,k))&data_mask;}
|
---|
210 | val1=new_val(val1,ec4,k);
|
---|
211 |
|
---|
212 | ec5=ecart_(i,4,val1);
|
---|
213 | shif(ec5,k,q);
|
---|
214 |
|
---|
215 | if(k>k1) {k1=k;val1=(val + arrondi(ec1,k) + arrondi(ec2,k) + arrondi(ec3,k) + arrondi(ec4,k))&data_mask;}
|
---|
216 | val1=new_val(val1,ec5,k);
|
---|
217 |
|
---|
218 | ec6=ecart_(i,5,val1);
|
---|
219 | shif(ec6,k,q);
|
---|
220 |
|
---|
221 | if(k>k1) {k1=k;val1=(val + arrondi(ec1,k) + arrondi(ec2,k) + arrondi(ec3,k)
|
---|
222 | + arrondi(ec4,k) + arrondi(ec5,k))&data_mask;}
|
---|
223 | val1=new_val(val1,ec6,k);
|
---|
224 |
|
---|
225 | ec7=ecart_(i,6,val1);
|
---|
226 | shif(ec7,k,q);
|
---|
227 |
|
---|
228 | /*printf("i=%d k=%d ec= %d %d %d \n",i,k,ec1,ec2,ec3,out[(i+8)/7]);*/
|
---|
229 |
|
---|
230 | ec1 = arrondi(ec1,k) >> k;
|
---|
231 | ec2 = arrondi(ec2,k) >> k;
|
---|
232 | ec3 = arrondi(ec3,k) >> k;
|
---|
233 | ec4 = arrondi(ec4,k) >> k;
|
---|
234 | ec5 = arrondi(ec5,k) >> k;
|
---|
235 | ec6 = arrondi(ec6,k) >> k;
|
---|
236 | ec7 = arrondi(ec7,k) >> k;
|
---|
237 |
|
---|
238 | out[i]= ((ec1&ecart_mask)<<28) | ((ec2&ecart_mask)<<24) | ((ec3&ecart_mask)<<20)
|
---|
239 | | ((ec4&ecart_mask)<<16) | ((ec5&ecart_mask)<<12) | ((ec6&ecart_mask)<<8) | ((ec7&ecart_mask)<<4) | k ;
|
---|
240 |
|
---|
241 |
|
---|
242 | /* if(i<30) printf("i=%d k=%d ec= %d %d %d \n",i,k,ec1,ec2,ec3,out[(i+8)/7]);*/
|
---|
243 |
|
---|
244 | val=(val+ ( (ec1 + ec2 + ec3 + ec4 + ec5 + ec6 + ec7 ) << k ))&data_mask;
|
---|
245 | }
|
---|
246 | }
|
---|
247 |
|
---|
248 | /********************************************************************************************/
|
---|
249 |
|
---|
250 | /* compresse en 4 bit mais par paire (pour data provenant de la detection synchrone) */
|
---|
251 |
|
---|
252 | /* 21 bit maleur maximum */
|
---|
253 | /* comprime 7*n+2 points : 1er et 2eme point dans 1er et 2eme mot, suite dans n mots */
|
---|
254 | /* différences entre valeures paires et entre valeures impaires uniquement */
|
---|
255 | /* 7*n+2 ==> n+2 ==> pour 72 points : 12 mots */
|
---|
256 |
|
---|
257 | #undef data_mask
|
---|
258 | #define data_mask 0x1fffff /* masque pour les données en entree 21 bit */
|
---|
259 | #undef ecart_
|
---|
260 | #define ecart_(i,n,val) (( (in[(i*7+n)*pasin]&data_mask) | ecart_bit )-val);
|
---|
261 |
|
---|
262 | void compress_4_2(unsigned long* in,unsigned long*out,int n,int pasin)
|
---|
263 | {
|
---|
264 | unsigned long val1,val2;
|
---|
265 | val1=in[0]&data_mask; val2=in[1]&data_mask;
|
---|
266 | out[0]=val1; out[1]=val2;
|
---|
267 | com_4_paire(val1,val2,in+2,out+2,n/7,pasin);
|
---|
268 | }
|
---|
269 |
|
---|
270 |
|
---|
271 | void com_4_paire(unsigned long val1,unsigned long val2,unsigned long* in,unsigned long*out,int n,int pasin)
|
---|
272 | {
|
---|
273 | unsigned long val1p,val2p;
|
---|
274 | unsigned long ec1,ec2,ec3,ec4,ec5,ec6,ec7;
|
---|
275 | int i,k,k1;unsigned long q;
|
---|
276 |
|
---|
277 |
|
---|
278 | for(i=0;i<n;i++)
|
---|
279 | {
|
---|
280 | k=0;q=7; /* 4 bit = 15 = +-7 */
|
---|
281 |
|
---|
282 | ec1=ecart_(i,0,val1);
|
---|
283 | shif(ec1,k,q);
|
---|
284 |
|
---|
285 | ec2=ecart_(i,1,val2);
|
---|
286 | shif(ec2,k,q);
|
---|
287 |
|
---|
288 | k1=k;
|
---|
289 | val1p=new_val(val1,ec1,k);
|
---|
290 |
|
---|
291 |
|
---|
292 | ec3=ecart_(i,2,val1p);
|
---|
293 | shif(ec3,k,q);
|
---|
294 |
|
---|
295 | val2p=new_val(val2,ec2,k);
|
---|
296 |
|
---|
297 | ec4=ecart_(i,3,val2p);
|
---|
298 | shif(ec4,k,q);
|
---|
299 |
|
---|
300 | if(k>k1) {k1=k;val1p=new_val(val1,ec1,k);val2p=new_val(val2,ec2,k);}
|
---|
301 |
|
---|
302 | val1p=new_val(val1p,ec3,k);
|
---|
303 |
|
---|
304 | ec5=ecart_(i,4,val1p);
|
---|
305 | shif(ec5,k,q);
|
---|
306 |
|
---|
307 | if(k>k1) { k1=k;
|
---|
308 | val1p=(val1 + arrondi(ec1,k) + arrondi(ec3,k))&data_mask;
|
---|
309 | val2p=(val2 + arrondi(ec2,k))&data_mask;
|
---|
310 | }
|
---|
311 | val2p=new_val(val2p,ec4,k);
|
---|
312 |
|
---|
313 | ec6=ecart_(i,5,val2p);
|
---|
314 | shif(ec6,k,q);
|
---|
315 |
|
---|
316 | if(k>k1) { k1=k;
|
---|
317 | val1p=(val1 + arrondi(ec1,k) + arrondi(ec3,k))&data_mask;
|
---|
318 | val2p=(val2 + arrondi(ec2,k) + arrondi(ec4,k))&data_mask;
|
---|
319 | }
|
---|
320 | val1p=new_val(val1p,ec5,k);
|
---|
321 |
|
---|
322 | ec7=ecart_(i,6,val1p);
|
---|
323 | shif(ec7,k,q);
|
---|
324 |
|
---|
325 | /*printf("i=%d k=%d ec= %d %d %d \n",i,k,ec1,ec2,ec3,out[(i+8)/7]);*/
|
---|
326 |
|
---|
327 | ec1 = arrondi(ec1,k) >> k;
|
---|
328 | ec2 = arrondi(ec2,k) >> k;
|
---|
329 | ec3 = arrondi(ec3,k) >> k;
|
---|
330 | ec4 = arrondi(ec4,k) >> k;
|
---|
331 | ec5 = arrondi(ec5,k) >> k;
|
---|
332 | ec6 = arrondi(ec6,k) >> k;
|
---|
333 | ec7 = arrondi(ec7,k) >> k;
|
---|
334 |
|
---|
335 | out[i]= ((ec1&ecart_mask)<<28) | ((ec2&ecart_mask)<<24) | ((ec3&ecart_mask)<<20)
|
---|
336 | | ((ec4&ecart_mask)<<16) | ((ec5&ecart_mask)<<12) | ((ec6&ecart_mask)<<8) | ((ec7&ecart_mask)<<4) | k ;
|
---|
337 |
|
---|
338 |
|
---|
339 | /* if(i<30) printf("i=%d k=%d ec= %d %d %d \n",i,k,ec1,ec2,ec3,out[(i+8)/7]);*/
|
---|
340 |
|
---|
341 | val1p = (val1 + ( (ec1 + ec3 + ec5 + ec7 ) << k ))&data_mask;
|
---|
342 | val1= (val2 + ( (ec2 + ec4 + ec6 ) << k ))&data_mask;
|
---|
343 | val2 = val1p;
|
---|
344 | }
|
---|
345 | }
|
---|
346 |
|
---|
347 |
|
---|
348 |
|
---|
349 |
|
---|
350 |
|
---|
351 | /*******************************************************************************************/
|
---|
352 | /**************** *****************/
|
---|
353 | /**************** compress_7 *****************/
|
---|
354 | /**************** *****************/
|
---|
355 | /*******************************************************************************************/
|
---|
356 |
|
---|
357 | /*******************************************************************************************/
|
---|
358 |
|
---|
359 | /* compresse en 7 bit mais par paire (pour data provenant de la detection synchrone */
|
---|
360 |
|
---|
361 | /* ne prend que les 21 bit de poid faible dans le mot en entree */
|
---|
362 | /* comprime 4*n points : 1er et 2eme point dans 1er mot (16 bit chacun), suite dans n mots */
|
---|
363 | /* différences entre valeures paires et entre valeures impaires uniquement */
|
---|
364 | /* 4*n ==> n+1 */
|
---|
365 |
|
---|
366 |
|
---|
367 |
|
---|
368 | void compress_7_paire(unsigned long val1,unsigned long val2,unsigned long* in,unsigned long*out,int n,int pasin);
|
---|
369 |
|
---|
370 | #undef data_mask
|
---|
371 | #define data_mask 0x1fffff /* masque pour les données en entree 21 bit */
|
---|
372 | #undef ecart_mask
|
---|
373 | #define ecart_mask 0x7f /* masque pour l'ecart 7 bits */
|
---|
374 |
|
---|
375 | #undef ecart_
|
---|
376 | #define ecart_(i,n,val) (( (in[(i*4+n)*pasin]&data_mask) | ecart_bit )-val);
|
---|
377 |
|
---|
378 |
|
---|
379 | void compress_7_2(unsigned long* in,unsigned long*out,int n,int pasin)
|
---|
380 | {
|
---|
381 | unsigned long val1,val2;
|
---|
382 | val1=in[0]&0x1fffe0;val2=in[pasin]&0x1fffe0;
|
---|
383 | *out=( (val1<<11) & 0xffff0000 ) | ( (val2 >> 5) & 0xffff ) ;
|
---|
384 |
|
---|
385 | /*printf("in[0]=%x val1=%x in[1]=%x val2=%x \n",in[0],val1,in[1],val2);
|
---|
386 | printf("in[2]=%x in[3]=%x \n",in[2],in[3]);*/
|
---|
387 | compress_7_paire(val1,val2,in,out+1,n/4,pasin);
|
---|
388 | }
|
---|
389 |
|
---|
390 |
|
---|
391 | void compress_7_paire(unsigned long val1,unsigned long val2,unsigned long* in,unsigned long*out,int n,int pasin)
|
---|
392 | {
|
---|
393 |
|
---|
394 | unsigned long val1p,val2p;
|
---|
395 | unsigned long ec1,ec2,ec3,ec4;
|
---|
396 | int i,k;unsigned long q;
|
---|
397 |
|
---|
398 |
|
---|
399 | for(i=0;i<n;i++)
|
---|
400 | {
|
---|
401 | k=0;q=63; /* 7 bit -> 127 -> +-63 */
|
---|
402 |
|
---|
403 | ec1=ecart_(i,0,val1); shif(ec1,k,q);
|
---|
404 |
|
---|
405 | ec2=ecart_(i,1,val2); shif(ec2,k,q);
|
---|
406 | val1p =new_val(val1,ec1,k);
|
---|
407 |
|
---|
408 | ec3=ecart_(i,2,val1p); shif(ec3,k,q);
|
---|
409 | val2p=new_val(val2,ec2,k);
|
---|
410 |
|
---|
411 | ec4=ecart_(i,3,val2p); shif(ec4,k,q);
|
---|
412 |
|
---|
413 | ec1 = arrondi(ec1,k) >> k;
|
---|
414 | ec2 = arrondi(ec2,k) >> k;
|
---|
415 | ec3 = arrondi(ec3,k) >> k;
|
---|
416 | ec4 = arrondi(ec4,k) >> k;
|
---|
417 |
|
---|
418 | out[i]= ((ec1&ecart_mask)<<25) | ((ec2&ecart_mask)<<18) | ((ec3&ecart_mask)<<11) | ((ec4&ecart_mask)<<4) | k ;
|
---|
419 |
|
---|
420 | /*if(i<5) printf("i=%d k=%d ec= %x %x %x %x out=%x \n",i,k,ec1,ec2,ec3,ec4,out[i]); */
|
---|
421 |
|
---|
422 | val1=(val1+ ( (ec1 + ec3 ) << k ))&data_mask;
|
---|
423 | val2=(val2+ ( (ec2 + ec4 ) << k ))&data_mask;
|
---|
424 | }
|
---|
425 | }
|
---|
426 |
|
---|
427 |
|
---|
428 |
|
---|
429 |
|
---|