summaryrefslogtreecommitdiff
path: root/libopenjpeg/j2k.c
diff options
context:
space:
mode:
authorAntonin Descampe <antonin@gmail.com>2004-07-09 14:04:06 +0000
committerAntonin Descampe <antonin@gmail.com>2004-07-09 14:04:06 +0000
commit651f98ad066ebb978d60c960bdf0f390ea035a14 (patch)
tree7ec13c8d03ece141bff7800cb8579e0dd517f8ef /libopenjpeg/j2k.c
parent132d89472631b37503dbfc2f9fd8713ef1a2a87e (diff)
Bug fixed for scalar_derived quantization type
Diffstat (limited to 'libopenjpeg/j2k.c')
-rw-r--r--libopenjpeg/j2k.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/libopenjpeg/j2k.c b/libopenjpeg/j2k.c
index 3d0fd86e..a0ba1401 100644
--- a/libopenjpeg/j2k.c
+++ b/libopenjpeg/j2k.c
@@ -483,7 +483,7 @@ void j2k_read_qcx(int compno, int len)
len - 1 : (len - 1) / 2);
for (bandno = 0; bandno < numbands; bandno++) {
int expn, mant;
- if (tccp->qntsty == J2K_CCP_QNTSTY_NOQNT) { /* WHY STEPSIZES WHEN NOQNT ? */
+ if (tccp->qntsty == J2K_CCP_QNTSTY_NOQNT) {
expn = cio_read(1) >> 3; /* SPqcx_i */
mant = 0;
} else {
@@ -494,6 +494,17 @@ void j2k_read_qcx(int compno, int len)
tccp->stepsizes[bandno].expn = expn;
tccp->stepsizes[bandno].mant = mant;
}
+
+ /* Add Antonin : if scalar_derived -> compute other stepsizes */
+
+ if (tccp->qntsty==J2K_CCP_QNTSTY_SIQNT) {
+ for (bandno=1 ; bandno<J2K_MAXBANDS ; bandno++) {
+ tccp->stepsizes[bandno].expn = ((tccp->stepsizes[0].expn)-((bandno-1)/3+1)>0)?(tccp->stepsizes[0].expn)-((bandno-1)/3+1):0;
+ tccp->stepsizes[bandno].mant = tccp->stepsizes[0].mant;
+ }
+ }
+
+ /* ddA */
}
void j2k_write_qcd()