Add comments about non successfull attempt of implementing alternate INITDEC, DECODE...
authorEven Rouault <even.rouault@spatialys.com>
Mon, 15 May 2017 12:09:51 +0000 (14:09 +0200)
committerEven Rouault <even.rouault@spatialys.com>
Mon, 15 May 2017 12:09:51 +0000 (14:09 +0200)
src/lib/openjp2/mqc.c
src/lib/openjp2/mqc_inl.h

index 64a44ef5488512e74b849eaa5b00067468dbb701..d5ba1ab6c22d66f616700be8f6c7b4c61b86db90 100644 (file)
@@ -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;
index 7e1c17d159b4f1aafe6236cfe116ecdd4f662e50..e6558c597799ef4076ba048060587629a2932854 100644 (file)
@@ -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) {