summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2017-05-15 14:09:51 +0200
committerEven Rouault <even.rouault@spatialys.com>2017-05-15 14:09:51 +0200
commit4431fa72657b6c4a92c3cf29cfc5c8df69424a0e (patch)
treee648ef276f2e424fccb9c8a35dcad1a9d980a452 /src/lib
parentf7a126af61877cd4623327142521d82a0c19430d (diff)
Add comments about non successfull attempt of implementing alternate INITDEC, DECODE and BYTEIN procedures (refs #921)
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/openjp2/mqc.c5
-rw-r--r--src/lib/openjp2/mqc_inl.h8
2 files changed, 13 insertions, 0 deletions
diff --git a/src/lib/openjp2/mqc.c b/src/lib/openjp2/mqc.c
index 64a44ef5..d5ba1ab6 100644
--- a/src/lib/openjp2/mqc.c
+++ b/src/lib/openjp2/mqc.c
@@ -448,6 +448,11 @@ void opj_mqc_segmark_enc(opj_mqc_t *mqc)
OPJ_BOOL opj_mqc_init_dec(opj_mqc_t *mqc, OPJ_BYTE *bp, OPJ_UINT32 len)
{
+ /* Implements ISO 15444-1 C.3.5 Initialization of the decoder (INITDEC) */
+ /* Note: alternate "J.1 - Initialization of the software-conventions */
+ /* decoder" has been tried, but does */
+ /* not bring any improvement. */
+ /* See https://github.com/uclouvain/openjpeg/issues/921 */
opj_mqc_setcurctx(mqc, 0);
mqc->start = bp;
mqc->end = bp + len;
diff --git a/src/lib/openjp2/mqc_inl.h b/src/lib/openjp2/mqc_inl.h
index 7e1c17d1..e6558c59 100644
--- a/src/lib/openjp2/mqc_inl.h
+++ b/src/lib/openjp2/mqc_inl.h
@@ -93,6 +93,10 @@ static INLINE void opj_mqc_bytein(opj_mqc_t *const mqc)
#else
static INLINE void opj_mqc_bytein(opj_mqc_t *const mqc)
{
+ /* Implements ISO 15444-1 C.3.4 Compressed image data input (BYTEIN) */
+ /* Note: alternate "J.3 - Inserting a new byte into the C register in the */
+ /* software-conventions decoder" has been tried, but does not bring any */
+ /* improvement. See https://github.com/uclouvain/openjpeg/issues/921 */
if (mqc->bp != mqc->end) {
OPJ_UINT32 c;
if (mqc->bp + 1 != mqc->end) {
@@ -144,6 +148,10 @@ Decode a symbol
*/
static INLINE OPJ_INT32 opj_mqc_decode(opj_mqc_t *const mqc)
{
+ /* Implements ISO 15444-1 C.3.2 Decoding a decision (DECODE) */
+ /* Note: alternate "J.2 - Decoding an MPS or an LPS in the */
+ /* software-conventions decoder" has been tried, but does not bring any */
+ /* improvement. See https://github.com/uclouvain/openjpeg/issues/921 */
OPJ_INT32 d;
mqc->a -= (*mqc->curctx)->qeval;
if ((mqc->c >> 16) < (*mqc->curctx)->qeval) {