summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2005-05-17 09:18:49 +0000
committerMichael Niedermayer <michaelni@gmx.at>2005-05-17 09:18:49 +0000
commitea191e08d6cefad09bfb1e6d9317874dfd4080be (patch)
tree104d512229ce7b989ffaf86773da0dd342b6199d
parentb178f758fae759f9e2d3f02961bd0cd3d04c0d0a (diff)
remove permutation done to quant tables and then undone during idct
move permutation from idct to unpack_vlcs Originally committed as revision 4256 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/vp3.c4
-rw-r--r--libavcodec/vp3dsp.c5
2 files changed, 4 insertions, 5 deletions
diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index 8b9f7c829c..7923229dc1 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -886,7 +886,7 @@ static void init_dequantizer(Vp3DecodeContext *s)
* the dequantization phase */
for (i = 1; i < 64; i++) {
- j = zigzag_index[i];
+ j = i;
s->intra_y_dequant[j] = s->coded_intra_y_dequant[i] * ac_scale_factor / 100;
if (s->intra_y_dequant[j] < MIN_DEQUANT_VAL)
@@ -1659,7 +1659,7 @@ static int unpack_vlcs(Vp3DecodeContext *s, GetBitContext *gb,
if (!eob_run) {
fragment->coeff_count += zero_run;
if (fragment->coeff_count < 64)
- fragment->coeffs[fragment->coeff_count++] = coeff;
+ fragment->coeffs[dezigzag_index[fragment->coeff_count++]] = coeff;
debug_vlc(" fragment %d coeff = %d\n",
s->coded_fragment_list[i], fragment->coeffs[coeff_index]);
} else {
diff --git a/libavcodec/vp3dsp.c b/libavcodec/vp3dsp.c
index 9c9530d05b..8cf77a25af 100644
--- a/libavcodec/vp3dsp.c
+++ b/libavcodec/vp3dsp.c
@@ -53,11 +53,10 @@ void vp3_idct_c(int16_t *input_data, int16_t *dequant_matrix,
int32_t t1, t2;
int i, j;
-
+
/* de-zigzag and dequantize */
for (i = 0; i < coeff_count; i++) {
- j = dezigzag_index[i];
- dequantized_data[j] = dequant_matrix[i] * input_data[i];
+ dequantized_data[i] = dequant_matrix[i] * input_data[i];
}
/* Inverse DCT on the rows now */