|
|
|
@@ -1145,7 +1145,21 @@ static void dequantization_int(int x, int y, Jpeg2000Cblk *cblk, |
|
|
|
int32_t *datap = &comp->i_data[(comp->coord[0][1] - comp->coord[0][0]) * (y + j) + x]; |
|
|
|
int *src = t1->data[j]; |
|
|
|
for (i = 0; i < w; ++i) |
|
|
|
datap[i] = (src[i] * band->i_stepsize + (1 << 14)) >> 15; |
|
|
|
datap[i] = (src[i] * band->i_stepsize) / 32768; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
static void dequantization_int_97(int x, int y, Jpeg2000Cblk *cblk, |
|
|
|
Jpeg2000Component *comp, |
|
|
|
Jpeg2000T1Context *t1, Jpeg2000Band *band) |
|
|
|
{ |
|
|
|
int i, j; |
|
|
|
int w = cblk->coord[0][1] - cblk->coord[0][0]; |
|
|
|
for (j = 0; j < (cblk->coord[1][1] - cblk->coord[1][0]); ++j) { |
|
|
|
int32_t *datap = &comp->i_data[(comp->coord[0][1] - comp->coord[0][0]) * (y + j) + x]; |
|
|
|
int *src = t1->data[j]; |
|
|
|
for (i = 0; i < w; ++i) |
|
|
|
datap[i] = (src[i] * band->i_stepsize + (1<<14)) >> 15; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@@ -1228,6 +1242,8 @@ static int jpeg2000_decode_tile(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile, |
|
|
|
|
|
|
|
if (codsty->transform == FF_DWT97) |
|
|
|
dequantization_float(x, y, cblk, comp, &t1, band); |
|
|
|
else if (codsty->transform == FF_DWT97_INT) |
|
|
|
dequantization_int_97(x, y, cblk, comp, &t1, band); |
|
|
|
else |
|
|
|
dequantization_int(x, y, cblk, comp, &t1, band); |
|
|
|
} /* end cblk */ |
|
|
|
|