summaryrefslogtreecommitdiff
path: root/libavcodec/jpeg2000dwt.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-06-22 01:56:06 +0200
committerMichael Niedermayer <michaelni@gmx.at>2015-06-22 02:00:57 +0200
commit6c7b1597c7790da6018695dda6cd8a6b6690d6e5 (patch)
tree5ac13be044df20137f52aa7cbb5d34056f5f45b4 /libavcodec/jpeg2000dwt.c
parent69f7ccef8e12a9995ae08c9cca429bd4402bed69 (diff)
downloadffmpeg-6c7b1597c7790da6018695dda6cd8a6b6690d6e5.tar.gz
avcodec/jpeg2000: Move H band scaling from wavelet into quantization code
This reduces the number of operations done and is equivalent except for rounding Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/jpeg2000dwt.c')
-rw-r--r--libavcodec/jpeg2000dwt.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/libavcodec/jpeg2000dwt.c b/libavcodec/jpeg2000dwt.c
index b997e7e180..a1fe713202 100644
--- a/libavcodec/jpeg2000dwt.c
+++ b/libavcodec/jpeg2000dwt.c
@@ -197,7 +197,7 @@ static void dwt_encode97_float(DWTContext *s, float *t)
for (i = mh; i < lh; i+=2, j++)
t[w*lp + j] = F_LFTG_X * l[i];
for (i = 1-mh; i < lh; i+=2, j++)
- t[w*lp + j] = F_LFTG_K * l[i];
+ t[w*lp + j] = l[i];
}
// VER_SD
@@ -214,7 +214,7 @@ static void dwt_encode97_float(DWTContext *s, float *t)
for (i = mv; i < lv; i+=2, j++)
t[w*j + lp] = F_LFTG_X * l[i];
for (i = 1-mv; i < lv; i+=2, j++)
- t[w*j + lp] = F_LFTG_K * l[i];
+ t[w*j + lp] = l[i];
}
}
}
@@ -273,7 +273,7 @@ static void dwt_encode97_int(DWTContext *s, int *t)
for (i = mv; i < lv; i+=2, j++)
t[w*j + lp] = ((l[i] * I_LFTG_X) + (1 << 15)) >> 16;
for (i = 1-mv; i < lv; i+=2, j++)
- t[w*j + lp] = ((l[i] * I_LFTG_K) + (1 << 15)) >> 16;
+ t[w*j + lp] = l[i];
}
// HOR_SD
@@ -290,7 +290,7 @@ static void dwt_encode97_int(DWTContext *s, int *t)
for (i = mh; i < lh; i+=2, j++)
t[w*lp + j] = ((l[i] * I_LFTG_X) + (1 << 15)) >> 16;
for (i = 1-mh; i < lh; i+=2, j++)
- t[w*lp + j] = ((l[i] * I_LFTG_K) + (1 << 15)) >> 16;
+ t[w*lp + j] = l[i];
}
}
@@ -414,7 +414,7 @@ static void dwt_decode97_float(DWTContext *s, float *t)
for (i = mh; i < lh; i += 2, j++)
l[i] = data[w * lp + j] * F_LFTG_K;
for (i = 1 - mh; i < lh; i += 2, j++)
- l[i] = data[w * lp + j] * F_LFTG_X;
+ l[i] = data[w * lp + j];
sr_1d97_float(line, mh, mh + lh);
@@ -430,7 +430,7 @@ static void dwt_decode97_float(DWTContext *s, float *t)
for (i = mv; i < lv; i += 2, j++)
l[i] = data[w * j + lp] * F_LFTG_K;
for (i = 1 - mv; i < lv; i += 2, j++)
- l[i] = data[w * j + lp] * F_LFTG_X;
+ l[i] = data[w * j + lp];
sr_1d97_float(line, mv, mv + lv);
@@ -491,7 +491,7 @@ static void dwt_decode97_int(DWTContext *s, int32_t *t)
for (i = mh; i < lh; i += 2, j++)
l[i] = ((data[w * lp + j] * I_LFTG_K) + (1 << 15)) >> 16;
for (i = 1 - mh; i < lh; i += 2, j++)
- l[i] = ((data[w * lp + j] * I_LFTG_X) + (1 << 15)) >> 16;
+ l[i] = data[w * lp + j];
sr_1d97_int(line, mh, mh + lh);
@@ -507,7 +507,7 @@ static void dwt_decode97_int(DWTContext *s, int32_t *t)
for (i = mv; i < lv; i += 2, j++)
l[i] = ((data[w * j + lp] * I_LFTG_K) + (1 << 15)) >> 16;
for (i = 1 - mv; i < lv; i += 2, j++)
- l[i] = ((data[w * j + lp] * I_LFTG_X) + (1 << 15)) >> 16;
+ l[i] = data[w * j + lp];
sr_1d97_int(line, mv, mv + lv);