Mercurial > libavcodec.hg
comparison vc1.c @ 3509:da6095607f26 libavcodec
Don't do non-uniform quantization on zero coeffs.
author | kostya |
---|---|
date | Sat, 22 Jul 2006 03:54:00 +0000 |
parents | 3d6e4ef3170d |
children | f8d3be212bce |
comparison
equal
deleted
inserted
replaced
3508:3d6e4ef3170d | 3509:da6095607f26 |
---|---|
2059 /* apply AC prediction if needed */ | 2059 /* apply AC prediction if needed */ |
2060 if(s->ac_pred) { | 2060 if(s->ac_pred) { |
2061 if(dc_pred_dir) { //left | 2061 if(dc_pred_dir) { //left |
2062 for(k = 1; k < 8; k++) { | 2062 for(k = 1; k < 8; k++) { |
2063 block[k << 3] = ac_val[k] * scale; | 2063 block[k << 3] = ac_val[k] * scale; |
2064 if(!v->pquantizer) | 2064 if(!v->pquantizer && block[k << 3]) |
2065 block[k << 3] += (block[k << 3] < 0) ? -v->pq : v->pq; | 2065 block[k << 3] += (block[k << 3] < 0) ? -v->pq : v->pq; |
2066 } | 2066 } |
2067 } else { //top | 2067 } else { //top |
2068 for(k = 1; k < 8; k++) { | 2068 for(k = 1; k < 8; k++) { |
2069 block[k] = ac_val[k + 8] * scale; | 2069 block[k] = ac_val[k + 8] * scale; |
2070 if(!v->pquantizer) | 2070 if(!v->pquantizer && block[k]) |
2071 block[k] += (block[k] < 0) ? -v->pq : v->pq; | 2071 block[k] += (block[k] < 0) ? -v->pq : v->pq; |
2072 } | 2072 } |
2073 } | 2073 } |
2074 i = 63; | 2074 i = 63; |
2075 } | 2075 } |
2258 /* apply AC prediction if needed */ | 2258 /* apply AC prediction if needed */ |
2259 if(use_pred) { | 2259 if(use_pred) { |
2260 if(dc_pred_dir) { //left | 2260 if(dc_pred_dir) { //left |
2261 for(k = 1; k < 8; k++) { | 2261 for(k = 1; k < 8; k++) { |
2262 block[k << 3] = ac_val2[k] * scale; | 2262 block[k << 3] = ac_val2[k] * scale; |
2263 if(!v->pquantizer) | 2263 if(!v->pquantizer && block[k << 3]) |
2264 block[k << 3] += (block[k << 3] < 0) ? -mquant : mquant; | 2264 block[k << 3] += (block[k << 3] < 0) ? -mquant : mquant; |
2265 } | 2265 } |
2266 } else { //top | 2266 } else { //top |
2267 for(k = 1; k < 8; k++) { | 2267 for(k = 1; k < 8; k++) { |
2268 block[k] = ac_val2[k + 8] * scale; | 2268 block[k] = ac_val2[k + 8] * scale; |
2269 if(!v->pquantizer) | 2269 if(!v->pquantizer && block[k]) |
2270 block[k] += (block[k] < 0) ? -mquant : mquant; | 2270 block[k] += (block[k] < 0) ? -mquant : mquant; |
2271 } | 2271 } |
2272 } | 2272 } |
2273 i = 63; | 2273 i = 63; |
2274 } | 2274 } |