comparison jpeg_ls.c @ 3063:f02d0b59279c libavcodec

Remove all stray tabs and trailing whitespace, this time for good.
author diego
date Tue, 24 Jan 2006 10:33:14 +0000
parents 0b546eab515d
children 1e63c12c2c71
comparison
equal deleted inserted replaced
3062:8d05d4036b6a 3063:f02d0b59279c
70 const int basic_t2= 7; 70 const int basic_t2= 7;
71 const int basic_t3= 21; 71 const int basic_t3= 21;
72 int factor; 72 int factor;
73 73
74 if(s->maxval==0 || reset_all) s->maxval= (1<<s->bits) - 1; 74 if(s->maxval==0 || reset_all) s->maxval= (1<<s->bits) - 1;
75 75
76 if(s->maxval >=128){ 76 if(s->maxval >=128){
77 factor= (FFMIN(s->maxval, 4096) + 128)>>8; 77 factor= (FFMIN(s->maxval, 4096) + 128)>>8;
78 78
79 if(s->t1==0 || reset_all) 79 if(s->t1==0 || reset_all)
80 s->t1= iso_clip(factor*(basic_t1-2) + 2 + 3*s->near, s->near+1, s->maxval); 80 s->t1= iso_clip(factor*(basic_t1-2) + 2 + 3*s->near, s->near+1, s->maxval);
101 int len, id; 101 int len, id;
102 102
103 /* XXX: verify len field validity */ 103 /* XXX: verify len field validity */
104 len = get_bits(&s->gb, 16); 104 len = get_bits(&s->gb, 16);
105 id = get_bits(&s->gb, 8); 105 id = get_bits(&s->gb, 8);
106 106
107 switch(id){ 107 switch(id){
108 case 1: 108 case 1:
109 s->maxval= get_bits(&s->gb, 16); 109 s->maxval= get_bits(&s->gb, 16);
110 s->t1= get_bits(&s->gb, 16); 110 s->t1= get_bits(&s->gb, 16);
111 s->t2= get_bits(&s->gb, 16); 111 s->t2= get_bits(&s->gb, 16);
112 s->t3= get_bits(&s->gb, 16); 112 s->t3= get_bits(&s->gb, 16);
113 s->reset= get_bits(&s->gb, 16); 113 s->reset= get_bits(&s->gb, 16);
114 114
115 reset_ls_coding_parameters(s, 0); 115 reset_ls_coding_parameters(s, 0);
116 //FIXME quant table? 116 //FIXME quant table?
117 break; 117 break;
118 case 2: 118 case 2:
119 case 3: 119 case 3:
143 } 143 }
144 count++; 144 count++;
145 145
146 if(drift <= -count){ 146 if(drift <= -count){
147 if(state->bias > -128) state->bias--; 147 if(state->bias > -128) state->bias--;
148 148
149 drift += count; 149 drift += count;
150 if(drift <= -count) 150 if(drift <= -count)
151 drift= -count + 1; 151 drift= -count + 1;
152 }else if(drift > 0){ 152 }else if(drift > 0){
153 if(state->bias < 127) state->bias++; 153 if(state->bias < 127) state->bias++;
154 154
155 drift -= count; 155 drift -= count;
156 if(drift > 0) 156 if(drift > 0)
157 drift= 0; 157 drift= 0;
158 } 158 }
159 159
160 state->drift= drift; 160 state->drift= drift;
161 state->count= count; 161 state->count= count;
167 int w, int point_transform, int is_uint8){ 167 int w, int point_transform, int is_uint8){
168 int i, x, y; 168 int i, x, y;
169 169
170 for(x=0; x < w; x++){ 170 for(x=0; x < w; x++){
171 int l, t, lt, rt; 171 int l, t, lt, rt;
172 172
173 t= R(last, 0); 173 t= R(last, 0);
174 if(x){ 174 if(x){
175 l = t; 175 l = t;
176 lt= last2; 176 lt= last2;
177 }else{ 177 }else{
179 lt= R(last, x-1); 179 lt= R(last, x-1);
180 } 180 }
181 181
182 if(x<w-1) rt= R(last, x+1); 182 if(x<w-1) rt= R(last, x+1);
183 else rt= t; 183 else rt= t;
184 184
185 hr_gradient= rt - t; 185 hr_gradient= rt - t;
186 hl_gradient= t - lt; 186 hl_gradient= t - lt;
187 v_gradient= lt - l; 187 v_gradient= lt - l;
188 188
189 context= quantize(s, v_gradient) + 9*(quantize(s, hl_gradient) + 9*quantize(s, hr_gradient)); 189 context= quantize(s, v_gradient) + 9*(quantize(s, hl_gradient) + 9*quantize(s, hr_gradient));
190 190
191 if(context){ 191 if(context){
192 int pred= mid_pred(l, l + t - lt, t); 192 int pred= mid_pred(l, l + t - lt, t);
193 193
204 k=0; 204 k=0;
205 while(i < state->error_sum){ //FIXME optimize 205 while(i < state->error_sum){ //FIXME optimize
206 k++; 206 k++;
207 i += i; 207 i += i;
208 } 208 }
209 209
210 v= get_ur_golomb_jpegls(gb, k, LIMIT-qbpp, qbpp); 210 v= get_ur_golomb_jpegls(gb, k, LIMIT-qbpp, qbpp);
211 #if 1 211 #if 1
212 v++; 212 v++;
213 if(v&1) v= (v>>1); 213 if(v&1) v= (v>>1);
214 else v= -(v>>1); 214 else v= -(v>>1);
220 if(v&1) v= (v>>1); 220 if(v&1) v= (v>>1);
221 else v= -(v>>1); 221 else v= -(v>>1);
222 222
223 #endif 223 #endif
224 update_vlc_state(state, v, half_count); 224 update_vlc_state(state, v, half_count);
225 225
226 if(sign) v= -v; 226 if(sign) v= -v;
227 227
228 if(is_uint8) ((uint8_t *)dst)[x]= (pred + v) & maxval; 228 if(is_uint8) ((uint8_t *)dst)[x]= (pred + v) & maxval;
229 else ((uint16_t*)dst)[x]= (pred + v) & maxval; 229 else ((uint16_t*)dst)[x]= (pred + v) & maxval;
230 }else{ 230 }else{
231 int run_count; 231 int run_count;
232 232
233 while(get_bits1(&s->gb)){ 233 while(get_bits1(&s->gb)){
234 run_count = 1<<log2_run[run_index]; 234 run_count = 1<<log2_run[run_index];
235 if(x + run_count > w) run_count= w - x; 235 if(x + run_count > w) run_count= w - x;
236 else run_index++; 236 else run_index++;
237 237
238 for(; run_count; run_count--){ 238 for(; run_count; run_count--){
239 if(is_uint8) ((uint8_t *)dst)[x++]= l; 239 if(is_uint8) ((uint8_t *)dst)[x++]= l;
240 else ((uint16_t*)dst)[x++]= l; 240 else ((uint16_t*)dst)[x++]= l;
241 } 241 }
242 242
243 if(x >= w) return 0; 243 if(x >= w) return 0;
244 } 244 }
245 245
246 run_count= get_bits(&s->gb, log2_run[run_index]); 246 run_count= get_bits(&s->gb, log2_run[run_index]);
247 247
248 for(; run_count; run_count--){ 248 for(; run_count; run_count--){
249 if(is_uint8) ((uint8_t *)dst)[x++]= l; 249 if(is_uint8) ((uint8_t *)dst)[x++]= l;
250 else ((uint16_t*)dst)[x++]= l; 250 else ((uint16_t*)dst)[x++]= l;
251 } 251 }
252 252
253 if(run_index) run_index--; 253 if(run_index) run_index--;
254 254
255 if(x >= w) return 0; 255 if(x >= w) return 0;
256 256
257 t= R(last, 0); 257 t= R(last, 0);
258 258
259 RItype= (l==t); 259 RItype= (l==t);
260 if(l==t){ 260 if(l==t){
261 state= 366; 261 state= 366;
262 temp= state->error_sum + (state->count>>1); 262 temp= state->error_sum + (state->count>>1);
263 }else{ 263 }else{
264 state= 365; 264 state= 365;
265 temp= state->error_sum; 265 temp= state->error_sum;
266 } 266 }
267 267
268 pred= t; 268 pred= t;
269 sign= l > t; 269 sign= l > t;
270 270
271 i= state->count; 271 i= state->count;
272 k=0; 272 k=0;
273 while(i < temp){ //FIXME optimize 273 while(i < temp){ //FIXME optimize
274 k++; 274 k++;
275 i += i; 275 i += i;
276 } 276 }
277 277
278 assert(Errval != 0); 278 assert(Errval != 0);
279 map = (k==0 && 2*Nn < state->count) == (Errval>0); 279 map = (k==0 && 2*Nn < state->count) == (Errval>0);
280 280
281 281
282 if(run_count==0 && run_mode==1){ 282 if(run_count==0 && run_mode==1){
283 if(get_bits1(&s->gb)){ 283 if(get_bits1(&s->gb)){
284 run_count = 1<<log2_run[run_index]; 284 run_count = 1<<log2_run[run_index];
285 if(x + run_count <= w) run_index++; 285 if(x + run_count <= w) run_index++;
286 }else{ 286 }else{
296 run_count=0; 296 run_count=0;
297 diff= get_vlc_symbol(&s->gb, &p->vlc_state[context]); 297 diff= get_vlc_symbol(&s->gb, &p->vlc_state[context]);
298 if(diff>=0) diff++; 298 if(diff>=0) diff++;
299 }else 299 }else
300 diff=0; 300 diff=0;
301 301
302 } 302 }
303 } 303 }
304 304
305 /* if (s->restart_interval && !s->restart_count) 305 /* if (s->restart_interval && !s->restart_count)
306 s->restart_count = s->restart_interval;*/ 306 s->restart_count = s->restart_interval;*/
314 h = s->h_scount[i]; 314 h = s->h_scount[i];
315 v = s->v_scount[i]; 315 v = s->v_scount[i];
316 x = 0; 316 x = 0;
317 y = 0; 317 y = 0;
318 linesize= s->linesize[c]; 318 linesize= s->linesize[c];
319 319
320 for(j=0; j<n; j++) { 320 for(j=0; j<n; j++) {
321 int pred; 321 int pred;
322 322
323 ptr = s->current_picture[c] + (linesize * (v * mb_y + y)) + (h * mb_x + x); //FIXME optimize this crap 323 ptr = s->current_picture[c] + (linesize * (v * mb_y + y)) + (h * mb_x + x); //FIXME optimize this crap
324 if(y==0 && mb_y==0){ 324 if(y==0 && mb_y==0){
332 pred= ptr[-linesize]; 332 pred= ptr[-linesize];
333 }else{ 333 }else{
334 PREDICT(pred, ptr[-linesize-1], ptr[-linesize], ptr[-1], predictor); 334 PREDICT(pred, ptr[-linesize-1], ptr[-linesize], ptr[-1], predictor);
335 } 335 }
336 } 336 }
337 337
338 if (s->interlaced && s->bottom_field) 338 if (s->interlaced && s->bottom_field)
339 ptr += linesize >> 1; 339 ptr += linesize >> 1;
340 *ptr= pred + (mjpeg_decode_dc(s, s->dc_index[i]) << point_transform); 340 *ptr= pred + (mjpeg_decode_dc(s, s->dc_index[i]) << point_transform);
341 341
342 if (++x == h) { 342 if (++x == h) {
354 h = s->h_scount[i]; 354 h = s->h_scount[i];
355 v = s->v_scount[i]; 355 v = s->v_scount[i];
356 x = 0; 356 x = 0;
357 y = 0; 357 y = 0;
358 linesize= s->linesize[c]; 358 linesize= s->linesize[c];
359 359
360 for(j=0; j<n; j++) { 360 for(j=0; j<n; j++) {
361 int pred; 361 int pred;
362 362
363 ptr = s->current_picture[c] + (linesize * (v * mb_y + y)) + (h * mb_x + x); //FIXME optimize this crap 363 ptr = s->current_picture[c] + (linesize * (v * mb_y + y)) + (h * mb_x + x); //FIXME optimize this crap
364 PREDICT(pred, ptr[-linesize-1], ptr[-linesize], ptr[-1], predictor); 364 PREDICT(pred, ptr[-linesize-1], ptr[-linesize], ptr[-1], predictor);