comparison dnxhdenc.c @ 6981:e897f60e5048 libavcodec

cosmetics, remove table_ prefix
author bcoudurier
date Mon, 02 Jun 2008 03:12:43 +0000
parents 9774d160f014
children e943e1409077
comparison
equal deleted inserted replaced
6980:ddbc1767b7cd 6981:e897f60e5048
65 uint16_t (*qmatrix_c16)[2][64]; 65 uint16_t (*qmatrix_c16)[2][64];
66 66
67 unsigned frame_bits; 67 unsigned frame_bits;
68 uint8_t *src[3]; 68 uint8_t *src[3];
69 69
70 uint32_t *table_vlc_codes; 70 uint32_t *vlc_codes;
71 uint8_t *table_vlc_bits; 71 uint8_t *vlc_bits;
72 uint16_t *table_run_codes; 72 uint16_t *run_codes;
73 uint8_t *table_run_bits; 73 uint8_t *run_bits;
74 74
75 /** Rate control */ 75 /** Rate control */
76 unsigned slice_bits; 76 unsigned slice_bits;
77 unsigned qscale; 77 unsigned qscale;
78 unsigned lambda; 78 unsigned lambda;
91 static int dnxhd_init_vlc(DNXHDEncContext *ctx) 91 static int dnxhd_init_vlc(DNXHDEncContext *ctx)
92 { 92 {
93 int i, j, level, run; 93 int i, j, level, run;
94 int max_level = 1<<(ctx->cid_table->bit_depth+2); 94 int max_level = 1<<(ctx->cid_table->bit_depth+2);
95 95
96 CHECKED_ALLOCZ(ctx->table_vlc_codes, max_level*4*sizeof(*ctx->table_vlc_codes)); 96 CHECKED_ALLOCZ(ctx->vlc_codes, max_level*4*sizeof(*ctx->vlc_codes));
97 CHECKED_ALLOCZ(ctx->table_vlc_bits, max_level*4*sizeof(*ctx->table_vlc_bits)); 97 CHECKED_ALLOCZ(ctx->vlc_bits, max_level*4*sizeof(*ctx->vlc_bits));
98 CHECKED_ALLOCZ(ctx->table_run_codes, 63*2); 98 CHECKED_ALLOCZ(ctx->run_codes, 63*2);
99 CHECKED_ALLOCZ(ctx->table_run_bits, 63); 99 CHECKED_ALLOCZ(ctx->run_bits, 63);
100 100
101 ctx->table_vlc_codes += max_level*2; 101 ctx->vlc_codes += max_level*2;
102 ctx->table_vlc_bits += max_level*2; 102 ctx->vlc_bits += max_level*2;
103 for (level = -max_level; level < max_level; level++) { 103 for (level = -max_level; level < max_level; level++) {
104 for (run = 0; run < 2; run++) { 104 for (run = 0; run < 2; run++) {
105 int index = (level<<1)|run; 105 int index = (level<<1)|run;
106 int sign, offset = 0, alevel = level; 106 int sign, offset = 0, alevel = level;
107 107
112 } 112 }
113 for (j = 0; j < 257; j++) { 113 for (j = 0; j < 257; j++) {
114 if (ctx->cid_table->ac_level[j] == alevel && 114 if (ctx->cid_table->ac_level[j] == alevel &&
115 (!offset || (ctx->cid_table->ac_index_flag[j] && offset)) && 115 (!offset || (ctx->cid_table->ac_index_flag[j] && offset)) &&
116 (!run || (ctx->cid_table->ac_run_flag [j] && run))) { 116 (!run || (ctx->cid_table->ac_run_flag [j] && run))) {
117 assert(!ctx->table_vlc_codes[index]); 117 assert(!ctx->vlc_codes[index]);
118 if (alevel) { 118 if (alevel) {
119 ctx->table_vlc_codes[index] = (ctx->cid_table->ac_codes[j]<<1)|(sign&1); 119 ctx->vlc_codes[index] = (ctx->cid_table->ac_codes[j]<<1)|(sign&1);
120 ctx->table_vlc_bits [index] = ctx->cid_table->ac_bits[j]+1; 120 ctx->vlc_bits [index] = ctx->cid_table->ac_bits[j]+1;
121 } else { 121 } else {
122 ctx->table_vlc_codes[index] = ctx->cid_table->ac_codes[j]; 122 ctx->vlc_codes[index] = ctx->cid_table->ac_codes[j];
123 ctx->table_vlc_bits [index] = ctx->cid_table->ac_bits [j]; 123 ctx->vlc_bits [index] = ctx->cid_table->ac_bits [j];
124 } 124 }
125 break; 125 break;
126 } 126 }
127 } 127 }
128 assert(!alevel || j < 257); 128 assert(!alevel || j < 257);
129 if (offset) { 129 if (offset) {
130 ctx->table_vlc_codes[index] = (ctx->table_vlc_codes[index]<<ctx->cid_table->index_bits)|offset; 130 ctx->vlc_codes[index] = (ctx->vlc_codes[index]<<ctx->cid_table->index_bits)|offset;
131 ctx->table_vlc_bits [index]+= ctx->cid_table->index_bits; 131 ctx->vlc_bits [index]+= ctx->cid_table->index_bits;
132 } 132 }
133 } 133 }
134 } 134 }
135 for (i = 0; i < 62; i++) { 135 for (i = 0; i < 62; i++) {
136 int run = ctx->cid_table->run[i]; 136 int run = ctx->cid_table->run[i];
137 assert(run < 63); 137 assert(run < 63);
138 ctx->table_run_codes[run] = ctx->cid_table->run_codes[i]; 138 ctx->run_codes[run] = ctx->cid_table->run_codes[i];
139 ctx->table_run_bits [run] = ctx->cid_table->run_bits[i]; 139 ctx->run_bits [run] = ctx->cid_table->run_bits[i];
140 } 140 }
141 return 0; 141 return 0;
142 fail: 142 fail:
143 return -1; 143 return -1;
144 } 144 }
319 j = ctx->m.intra_scantable.permutated[i]; 319 j = ctx->m.intra_scantable.permutated[i];
320 slevel = block[j]; 320 slevel = block[j];
321 if (slevel) { 321 if (slevel) {
322 int run_level = i - last_non_zero - 1; 322 int run_level = i - last_non_zero - 1;
323 int rlevel = (slevel<<1)|!!run_level; 323 int rlevel = (slevel<<1)|!!run_level;
324 put_bits(&ctx->m.pb, ctx->table_vlc_bits[rlevel], ctx->table_vlc_codes[rlevel]); 324 put_bits(&ctx->m.pb, ctx->vlc_bits[rlevel], ctx->vlc_codes[rlevel]);
325 if (run_level) 325 if (run_level)
326 put_bits(&ctx->m.pb, ctx->table_run_bits[run_level], ctx->table_run_codes[run_level]); 326 put_bits(&ctx->m.pb, ctx->run_bits[run_level], ctx->run_codes[run_level]);
327 last_non_zero = i; 327 last_non_zero = i;
328 } 328 }
329 } 329 }
330 put_bits(&ctx->m.pb, ctx->table_vlc_bits[0], ctx->table_vlc_codes[0]); // EOB 330 put_bits(&ctx->m.pb, ctx->vlc_bits[0], ctx->vlc_codes[0]); // EOB
331 } 331 }
332 332
333 static av_always_inline void dnxhd_unquantize_c(DNXHDEncContext *ctx, DCTELEM *block, int n, int qscale, int last_index) 333 static av_always_inline void dnxhd_unquantize_c(DNXHDEncContext *ctx, DCTELEM *block, int n, int qscale, int last_index)
334 { 334 {
335 const uint8_t *weight_matrix; 335 const uint8_t *weight_matrix;
376 for (i = 1; i <= last_index; i++) { 376 for (i = 1; i <= last_index; i++) {
377 j = ctx->m.intra_scantable.permutated[i]; 377 j = ctx->m.intra_scantable.permutated[i];
378 level = block[j]; 378 level = block[j];
379 if (level) { 379 if (level) {
380 int run_level = i - last_non_zero - 1; 380 int run_level = i - last_non_zero - 1;
381 bits += ctx->table_vlc_bits[(level<<1)|!!run_level]+ctx->table_run_bits[run_level]; 381 bits += ctx->vlc_bits[(level<<1)|!!run_level]+ctx->run_bits[run_level];
382 last_non_zero = i; 382 last_non_zero = i;
383 } 383 }
384 } 384 }
385 return bits; 385 return bits;
386 } 386 }
489 ctx->m.dsp.idct(block); 489 ctx->m.dsp.idct(block);
490 ssd += dnxhd_ssd_block(block, src_block); 490 ssd += dnxhd_ssd_block(block, src_block);
491 } 491 }
492 } 492 }
493 ctx->mb_rc[qscale][mb].ssd = ssd; 493 ctx->mb_rc[qscale][mb].ssd = ssd;
494 ctx->mb_rc[qscale][mb].bits = ac_bits+dc_bits+12+8*ctx->table_vlc_bits[0]; 494 ctx->mb_rc[qscale][mb].bits = ac_bits+dc_bits+12+8*ctx->vlc_bits[0];
495 } 495 }
496 } 496 }
497 return 0; 497 return 0;
498 } 498 }
499 499
824 { 824 {
825 DNXHDEncContext *ctx = avctx->priv_data; 825 DNXHDEncContext *ctx = avctx->priv_data;
826 int max_level = 1<<(ctx->cid_table->bit_depth+2); 826 int max_level = 1<<(ctx->cid_table->bit_depth+2);
827 int i; 827 int i;
828 828
829 av_free(ctx->table_vlc_codes-max_level*2); 829 av_free(ctx->vlc_codes-max_level*2);
830 av_free(ctx->table_vlc_bits -max_level*2); 830 av_free(ctx->vlc_bits -max_level*2);
831 av_freep(&ctx->table_run_codes); 831 av_freep(&ctx->run_codes);
832 av_freep(&ctx->table_run_bits); 832 av_freep(&ctx->run_bits);
833 833
834 av_freep(&ctx->mb_bits); 834 av_freep(&ctx->mb_bits);
835 av_freep(&ctx->mb_qscale); 835 av_freep(&ctx->mb_qscale);
836 av_freep(&ctx->mb_rc); 836 av_freep(&ctx->mb_rc);
837 av_freep(&ctx->mb_cmp); 837 av_freep(&ctx->mb_cmp);