comparison vorbis_enc.c @ 3866:4d5f73f10198 libavcodec

Original Commit: r66 | ods15 | 2006-09-25 18:42:13 +0300 (Mon, 25 Sep 2006) | 2 lines some different values for higher accuracy
author ods15
date Mon, 02 Oct 2006 06:07:59 +0000
parents 04d496813135
children edd2496ee02a
comparison
equal deleted inserted replaced
3865:04d496813135 3866:4d5f73f10198
266 mapping_t * mc; 266 mapping_t * mc;
267 int i, book; 267 int i, book;
268 268
269 venc->channels = avccontext->channels; 269 venc->channels = avccontext->channels;
270 venc->sample_rate = avccontext->sample_rate; 270 venc->sample_rate = avccontext->sample_rate;
271 venc->blocksize[0] = venc->blocksize[1] = 8; 271 venc->blocksize[0] = venc->blocksize[1] = 9;
272 272
273 venc->ncodebooks = 10; 273 venc->ncodebooks = 10;
274 venc->codebooks = av_malloc(sizeof(codebook_t) * venc->ncodebooks); 274 venc->codebooks = av_malloc(sizeof(codebook_t) * venc->ncodebooks);
275 275
276 // codebook 0 - floor1 book, values 0..255 276 // codebook 0 - floor1 book, values 0..255
318 venc->nfloors = 1; 318 venc->nfloors = 1;
319 venc->floors = av_malloc(sizeof(floor_t) * venc->nfloors); 319 venc->floors = av_malloc(sizeof(floor_t) * venc->nfloors);
320 320
321 // just 1 floor 321 // just 1 floor
322 fc = &venc->floors[0]; 322 fc = &venc->floors[0];
323 fc->partitions = 1; 323 fc->partitions = 3;
324 fc->partition_to_class = av_malloc(sizeof(int) * fc->partitions); 324 fc->partition_to_class = av_malloc(sizeof(int) * fc->partitions);
325 for (i = 0; i < fc->partitions; i++) fc->partition_to_class[i] = 0; 325 for (i = 0; i < fc->partitions; i++) fc->partition_to_class[i] = 0;
326 fc->nclasses = 1; 326 fc->nclasses = 1;
327 fc->classes = av_malloc(sizeof(floor_class_t) * fc->nclasses); 327 fc->classes = av_malloc(sizeof(floor_class_t) * fc->nclasses);
328 for (i = 0; i < fc->nclasses; i++) { 328 for (i = 0; i < fc->nclasses; i++) {
329 floor_class_t * c = &fc->classes[i]; 329 floor_class_t * c = &fc->classes[i];
330 int j, books; 330 int j, books;
331 c->dim = 1; 331 c->dim = 2;
332 c->subclass = 0; 332 c->subclass = 0;
333 c->masterbook = 0; 333 c->masterbook = 0;
334 books = (1 << c->subclass); 334 books = (1 << c->subclass);
335 c->books = av_malloc(sizeof(int) * books); 335 c->books = av_malloc(sizeof(int) * books);
336 for (j = 0; j < books; j++) c->books[j] = 0; 336 for (j = 0; j < books; j++) c->books[j] = 0;
344 344
345 fc->list = av_malloc(sizeof(floor_entry_t) * fc->values); 345 fc->list = av_malloc(sizeof(floor_entry_t) * fc->values);
346 fc->list[0].x = 0; 346 fc->list[0].x = 0;
347 fc->list[1].x = 1 << fc->rangebits; 347 fc->list[1].x = 1 << fc->rangebits;
348 for (i = 2; i < fc->values; i++) { 348 for (i = 2; i < fc->values; i++) {
349 int a = i - 1; 349 /*int a = i - 1;
350 int g = ilog(a); 350 int g = ilog(a);
351 assert(g <= fc->rangebits); 351 assert(g <= fc->rangebits);
352 a ^= 1 << (g-1); 352 a ^= 1 << (g-1);
353 g = 1 << (fc->rangebits - g); 353 g = 1 << (fc->rangebits - g);
354 fc->list[i].x = g + a*2*g; 354 fc->list[i].x = g + a*2*g;*/
355 int a[] = {14, 4, 58, 2, 8, 28, 90};
356 fc->list[i].x = a[i - 2];
355 } 357 }
356 ready_floor(fc); 358 ready_floor(fc);
357 359
358 venc->nresidues = 1; 360 venc->nresidues = 1;
359 venc->residues = av_malloc(sizeof(residue_t) * venc->nresidues); 361 venc->residues = av_malloc(sizeof(residue_t) * venc->nresidues);
368 rc->classbook = 1; 370 rc->classbook = 1;
369 rc->books = av_malloc(sizeof(int[8]) * rc->classifications); 371 rc->books = av_malloc(sizeof(int[8]) * rc->classifications);
370 for (i = 0; i < rc->classifications; i++) { 372 for (i = 0; i < rc->classifications; i++) {
371 int j; 373 int j;
372 for (j = 0; j < 8; j++) rc->books[i][j] = 2 + j; 374 for (j = 0; j < 8; j++) rc->books[i][j] = 2 + j;
373 rc->books[i][0] = rc->books[i][1] = rc->books[i][2] = rc->books[i][3] = -1; 375 //rc->books[i][0] = rc->books[i][1] = rc->books[i][2] = rc->books[i][3] = -1;
374 } 376 }
375 377
376 venc->nmappings = 1; 378 venc->nmappings = 1;
377 venc->mappings = av_malloc(sizeof(mapping_t) * venc->nmappings); 379 venc->mappings = av_malloc(sizeof(mapping_t) * venc->nmappings);
378 380
656 end = (position + end ) / 2; 658 end = (position + end ) / 2;
657 659
658 assert(end <= samples); 660 assert(end <= samples);
659 for (j = begin; j < end; j++) average += fabs(coeffs[j]); 661 for (j = begin; j < end; j++) average += fabs(coeffs[j]);
660 average /= end - begin; 662 average /= end - begin;
661 average /= 64; // MAGIC! 663 average /= 5000; // MAGIC!
662 for (j = 0; j < range; j++) if (floor1_inverse_db_table[j * fc->multiplier] > average) break; 664 for (j = 0; j < range; j++) if (floor1_inverse_db_table[j * fc->multiplier] > average) break;
663 posts[fc->list[i].sort] = j; 665 posts[fc->list[i].sort] = j;
664 } 666 }
665 } 667 }
666 668