summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancois-Olivier Devaux <fodevaux@users.noreply.github.com>2007-08-21 12:30:08 +0000
committerFrancois-Olivier Devaux <fodevaux@users.noreply.github.com>2007-08-21 12:30:08 +0000
commitd4d23c7eb56203d620b888fc67316e47ca9b20ca (patch)
tree5e1111f164de5c01b038e982e571ae1f8e485032
parentadca52578d6ba5284b7df39ebdf9ed61a5e31d74 (diff)
Reworks of t1_updateflags to get rid of the shift operation. mqc_setcurctx moved to the header to allow it to be inlined into the t1.
-rw-r--r--ChangeLog2
-rw-r--r--libopenjpeg/mqc.c4
-rw-r--r--libopenjpeg/mqc.h2
-rw-r--r--libopenjpeg/t1.c20
4 files changed, 11 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index b8cfd620..dbb072e5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,8 @@ August 21, 2007
* [Callum Lerwick] Minor cleanup patch, that gets rid of a bunch of "old style declaration" warnings from Intel's compiler
* [Callum Lerwick] Aligned malloc using Intel's _mm_malloc(). Cleanup on the t1 memory allocation, getting rid of some leftover debug code
* [Callum Lerwick] Memory leaks fixed
+* [Callum Lerwick] Reworks of t1_updateflags to get rid of the shift operation
+* [Callum Lerwick] mqc_setcurctx moved to the header to allow it to be inlined into the t1.
August 20, 2007
+ [FOD] Added support for the TGA file format in the codec
diff --git a/libopenjpeg/mqc.c b/libopenjpeg/mqc.c
index a9d54565..9aa9d2c2 100644
--- a/libopenjpeg/mqc.c
+++ b/libopenjpeg/mqc.c
@@ -371,10 +371,6 @@ void mqc_init_enc(opj_mqc_t *mqc, unsigned char *bp) {
mqc->start = bp;
}
-void mqc_setcurctx(opj_mqc_t *mqc, int ctxno) {
- mqc->curctx = &mqc->ctxs[ctxno];
-}
-
void mqc_encode(opj_mqc_t *mqc, int d) {
if ((*mqc->curctx)->mps == d) {
mqc_codemps(mqc);
diff --git a/libopenjpeg/mqc.h b/libopenjpeg/mqc.h
index a3d44b01..d3c0c5c8 100644
--- a/libopenjpeg/mqc.h
+++ b/libopenjpeg/mqc.h
@@ -116,7 +116,7 @@ Set the current context used for coding/decoding
@param mqc MQC handle
@param ctxno Number that identifies the context
*/
-void mqc_setcurctx(opj_mqc_t *mqc, int ctxno);
+#define mqc_setcurctx(mqc, ctxno) (mqc)->curctx = &(mqc)->ctxs[(int)(ctxno)]
/**
Encode a symbol using the MQ-coder
@param mqc MQC handle
diff --git a/libopenjpeg/t1.c b/libopenjpeg/t1.c
index 724ec04d..c815cff1 100644
--- a/libopenjpeg/t1.c
+++ b/libopenjpeg/t1.c
@@ -261,21 +261,22 @@ static void t1_updateflags(flag_t *flagsp, int s, int stride) {
flag_t *sp = flagsp + stride;
static const flag_t mod[] = {
- T1_SIG_S, T1_SIG_N, T1_SIG_E, T1_SIG_W,
- T1_SIG_S | T1_SGN_S, T1_SIG_N | T1_SGN_N, T1_SIG_E | T1_SGN_E, T1_SIG_W | T1_SGN_W
+ T1_SIG_S, T1_SIG_S|T1_SGN_S,
+ T1_SIG_E, T1_SIG_E|T1_SGN_E,
+ T1_SIG_W, T1_SIG_W|T1_SGN_W,
+ T1_SIG_N, T1_SIG_N|T1_SGN_N
};
- s <<= 2;
-
np[-1] |= T1_SIG_SE;
np[0] |= mod[s];
np[1] |= T1_SIG_SW;
flagsp[-1] |= mod[s+2];
- flagsp[1] |= mod[s+3];
+ flagsp[0] |= T1_SIG;
+ flagsp[1] |= mod[s+4];
sp[-1] |= T1_SIG_NE;
- sp[0] |= mod[s+1];
+ sp[0] |= mod[s+6];
sp[1] |= T1_SIG_NW;
}
@@ -315,7 +316,6 @@ static void t1_enc_sigpass_step(
mqc_encode(mqc, v ^ t1_getspb(flag));
}
t1_updateflags(flagsp, v, t1->flags_stride);
- *flagsp |= T1_SIG;
}
*flagsp |= T1_VISIT;
}
@@ -342,7 +342,6 @@ static void t1_dec_sigpass_step(
v = raw_decode(raw); /* ESSAI */
*datap = v ? -oneplushalf : oneplushalf;
t1_updateflags(flagsp, v, t1->flags_stride);
- *flagsp |= T1_SIG;
}
} else {
mqc_setcurctx(mqc, t1_getctxno_zc(flag, orient));
@@ -351,7 +350,6 @@ static void t1_dec_sigpass_step(
v = mqc_decode(mqc) ^ t1_getspb(flag);
*datap = v ? -oneplushalf : oneplushalf;
t1_updateflags(flagsp, v, t1->flags_stride);
- *flagsp |= T1_SIG;
}
}
*flagsp |= T1_VISIT;
@@ -560,7 +558,6 @@ LABEL_PARTIAL:
v = *datap < 0 ? 1 : 0;
mqc_encode(mqc, v ^ t1_getspb(flag));
t1_updateflags(flagsp, v, t1->flags_stride);
- *flagsp |= T1_SIG;
}
}
*flagsp &= ~T1_VISIT;
@@ -591,7 +588,6 @@ LABEL_PARTIAL:
v = mqc_decode(mqc) ^ t1_getspb(flag);
*datap = v ? -oneplushalf : oneplushalf;
t1_updateflags(flagsp, v, t1->flags_stride);
- *flagsp |= T1_SIG;
}
}
*flagsp &= ~T1_VISIT;
@@ -777,7 +773,7 @@ static bool allocate_buffers(
memset(t1->data,0,datasize * sizeof(int));
t1->flags_stride=w+2;
- flagssize = t1->flags_stride * (h+2);
+ flagssize=t1->flags_stride * (h+2);
if(flagssize > t1->flagssize){
opj_aligned_free(t1->flags);