Remove a bunch of dead JBIG2 code.

R=tsepez@chromium.org

Review URL: https://codereview.chromium.org/1293393002 .
diff --git a/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.cpp b/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.cpp
index 415d919..33b88bf 100644
--- a/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.cpp
@@ -1059,268 +1059,6 @@
   }
   return GBREG;
 }
-CJBig2_Image* CJBig2_GRDProc::decode_Arith_V2(
-    CJBig2_ArithDecoder* pArithDecoder,
-    JBig2ArithCtx* gbContext) {
-  FX_BOOL LTP, SLTP, bVal;
-  FX_DWORD CONTEXT;
-  CJBig2_Image* GBREG;
-  FX_DWORD line1, line2, line3;
-  LTP = 0;
-  JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH));
-  GBREG->fill(0);
-  for (FX_DWORD h = 0; h < GBH; h++) {
-    if (TPGDON) {
-      switch (GBTEMPLATE) {
-        case 0:
-          CONTEXT = 0x9b25;
-          break;
-        case 1:
-          CONTEXT = 0x0795;
-          break;
-        case 2:
-          CONTEXT = 0x00e5;
-          break;
-        case 3:
-          CONTEXT = 0x0195;
-          break;
-      }
-      SLTP = pArithDecoder->DECODE(&gbContext[CONTEXT]);
-      LTP = LTP ^ SLTP;
-    }
-    if (LTP == 1) {
-      GBREG->copyLine(h, h - 1);
-    } else {
-      switch (GBTEMPLATE) {
-        case 0: {
-          line1 = GBREG->getPixel(1, h - 2);
-          line1 |= GBREG->getPixel(0, h - 2) << 1;
-          line2 = GBREG->getPixel(2, h - 1);
-          line2 |= GBREG->getPixel(1, h - 1) << 1;
-          line2 |= GBREG->getPixel(0, h - 1) << 2;
-          line3 = 0;
-          for (FX_DWORD w = 0; w < GBW; w++) {
-            if (USESKIP && SKIP->getPixel(w, h)) {
-              bVal = 0;
-            } else {
-              CONTEXT = line3;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], h + GBAT[1]) << 4;
-              CONTEXT |= line2 << 5;
-              CONTEXT |= GBREG->getPixel(w + GBAT[2], h + GBAT[3]) << 10;
-              CONTEXT |= GBREG->getPixel(w + GBAT[4], h + GBAT[5]) << 11;
-              CONTEXT |= line1 << 12;
-              CONTEXT |= GBREG->getPixel(w + GBAT[6], h + GBAT[7]) << 15;
-              bVal = pArithDecoder->DECODE(&gbContext[CONTEXT]);
-            }
-            if (bVal) {
-              GBREG->setPixel(w, h, bVal);
-            }
-            line1 = ((line1 << 1) | GBREG->getPixel(w + 2, h - 2)) & 0x07;
-            line2 = ((line2 << 1) | GBREG->getPixel(w + 3, h - 1)) & 0x1f;
-            line3 = ((line3 << 1) | bVal) & 0x0f;
-          }
-        } break;
-        case 1: {
-          line1 = GBREG->getPixel(2, h - 2);
-          line1 |= GBREG->getPixel(1, h - 2) << 1;
-          line1 |= GBREG->getPixel(0, h - 2) << 2;
-          line2 = GBREG->getPixel(2, h - 1);
-          line2 |= GBREG->getPixel(1, h - 1) << 1;
-          line2 |= GBREG->getPixel(0, h - 1) << 2;
-          line3 = 0;
-          for (FX_DWORD w = 0; w < GBW; w++) {
-            if (USESKIP && SKIP->getPixel(w, h)) {
-              bVal = 0;
-            } else {
-              CONTEXT = line3;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], h + GBAT[1]) << 3;
-              CONTEXT |= line2 << 4;
-              CONTEXT |= line1 << 9;
-              bVal = pArithDecoder->DECODE(&gbContext[CONTEXT]);
-            }
-            if (bVal) {
-              GBREG->setPixel(w, h, bVal);
-            }
-            line1 = ((line1 << 1) | GBREG->getPixel(w + 3, h - 2)) & 0x0f;
-            line2 = ((line2 << 1) | GBREG->getPixel(w + 3, h - 1)) & 0x1f;
-            line3 = ((line3 << 1) | bVal) & 0x07;
-          }
-        } break;
-        case 2: {
-          line1 = GBREG->getPixel(1, h - 2);
-          line1 |= GBREG->getPixel(0, h - 2) << 1;
-          line2 = GBREG->getPixel(1, h - 1);
-          line2 |= GBREG->getPixel(0, h - 1) << 1;
-          line3 = 0;
-          for (FX_DWORD w = 0; w < GBW; w++) {
-            if (USESKIP && SKIP->getPixel(w, h)) {
-              bVal = 0;
-            } else {
-              CONTEXT = line3;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], h + GBAT[1]) << 2;
-              CONTEXT |= line2 << 3;
-              CONTEXT |= line1 << 7;
-              bVal = pArithDecoder->DECODE(&gbContext[CONTEXT]);
-            }
-            if (bVal) {
-              GBREG->setPixel(w, h, bVal);
-            }
-            line1 = ((line1 << 1) | GBREG->getPixel(w + 2, h - 2)) & 0x07;
-            line2 = ((line2 << 1) | GBREG->getPixel(w + 2, h - 1)) & 0x0f;
-            line3 = ((line3 << 1) | bVal) & 0x03;
-          }
-        } break;
-        case 3: {
-          line1 = GBREG->getPixel(1, h - 1);
-          line1 |= GBREG->getPixel(0, h - 1) << 1;
-          line2 = 0;
-          for (FX_DWORD w = 0; w < GBW; w++) {
-            if (USESKIP && SKIP->getPixel(w, h)) {
-              bVal = 0;
-            } else {
-              CONTEXT = line2;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], h + GBAT[1]) << 4;
-              CONTEXT |= line1 << 5;
-              bVal = pArithDecoder->DECODE(&gbContext[CONTEXT]);
-            }
-            if (bVal) {
-              GBREG->setPixel(w, h, bVal);
-            }
-            line1 = ((line1 << 1) | GBREG->getPixel(w + 2, h - 1)) & 0x1f;
-            line2 = ((line2 << 1) | bVal) & 0x0f;
-          }
-        } break;
-      }
-    }
-  }
-  return GBREG;
-}
-CJBig2_Image* CJBig2_GRDProc::decode_Arith_V1(
-    CJBig2_ArithDecoder* pArithDecoder,
-    JBig2ArithCtx* gbContext) {
-  FX_BOOL LTP, SLTP, bVal;
-  FX_DWORD CONTEXT = 0;
-  CJBig2_Image* GBREG;
-  LTP = 0;
-  JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH));
-  GBREG->fill(0);
-  for (FX_DWORD h = 0; h < GBH; h++) {
-    if (TPGDON) {
-      switch (GBTEMPLATE) {
-        case 0:
-          CONTEXT = 0x9b25;
-          break;
-        case 1:
-          CONTEXT = 0x0795;
-          break;
-        case 2:
-          CONTEXT = 0x00e5;
-          break;
-        case 3:
-          CONTEXT = 0x0195;
-          break;
-      }
-      SLTP = pArithDecoder->DECODE(&gbContext[CONTEXT]);
-      LTP = LTP ^ SLTP;
-    }
-    if (LTP == 1) {
-      for (FX_DWORD w = 0; w < GBW; w++) {
-        GBREG->setPixel(w, h, GBREG->getPixel(w, h - 1));
-      }
-    } else {
-      for (FX_DWORD w = 0; w < GBW; w++) {
-        if (USESKIP && SKIP->getPixel(w, h)) {
-          GBREG->setPixel(w, h, 0);
-        } else {
-          CONTEXT = 0;
-          switch (GBTEMPLATE) {
-            case 0:
-              CONTEXT |= GBREG->getPixel(w - 1, h);
-              CONTEXT |= GBREG->getPixel(w - 2, h) << 1;
-              CONTEXT |= GBREG->getPixel(w - 3, h) << 2;
-              CONTEXT |= GBREG->getPixel(w - 4, h) << 3;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], h + GBAT[1]) << 4;
-              CONTEXT |= GBREG->getPixel(w + 2, h - 1) << 5;
-              CONTEXT |= GBREG->getPixel(w + 1, h - 1) << 6;
-              CONTEXT |= GBREG->getPixel(w, h - 1) << 7;
-              CONTEXT |= GBREG->getPixel(w - 1, h - 1) << 8;
-              CONTEXT |= GBREG->getPixel(w - 2, h - 1) << 9;
-              CONTEXT |= GBREG->getPixel(w + GBAT[2], h + GBAT[3]) << 10;
-              CONTEXT |= GBREG->getPixel(w + GBAT[4], h + GBAT[5]) << 11;
-              CONTEXT |= GBREG->getPixel(w + 1, h - 2) << 12;
-              CONTEXT |= GBREG->getPixel(w, h - 2) << 13;
-              CONTEXT |= GBREG->getPixel(w - 1, h - 2) << 14;
-              CONTEXT |= GBREG->getPixel(w + GBAT[6], h + GBAT[7]) << 15;
-              break;
-            case 1:
-              CONTEXT |= GBREG->getPixel(w - 1, h);
-              CONTEXT |= GBREG->getPixel(w - 2, h) << 1;
-              CONTEXT |= GBREG->getPixel(w - 3, h) << 2;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], h + GBAT[1]) << 3;
-              CONTEXT |= GBREG->getPixel(w + 2, h - 1) << 4;
-              CONTEXT |= GBREG->getPixel(w + 1, h - 1) << 5;
-              CONTEXT |= GBREG->getPixel(w, h - 1) << 6;
-              CONTEXT |= GBREG->getPixel(w - 1, h - 1) << 7;
-              CONTEXT |= GBREG->getPixel(w - 2, h - 1) << 8;
-              CONTEXT |= GBREG->getPixel(w + 2, h - 2) << 9;
-              CONTEXT |= GBREG->getPixel(w + 1, h - 2) << 10;
-              CONTEXT |= GBREG->getPixel(w, h - 2) << 11;
-              CONTEXT |= GBREG->getPixel(w - 1, h - 2) << 12;
-              break;
-            case 2:
-              CONTEXT |= GBREG->getPixel(w - 1, h);
-              CONTEXT |= GBREG->getPixel(w - 2, h) << 1;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], h + GBAT[1]) << 2;
-              CONTEXT |= GBREG->getPixel(w + 1, h - 1) << 3;
-              CONTEXT |= GBREG->getPixel(w, h - 1) << 4;
-              CONTEXT |= GBREG->getPixel(w - 1, h - 1) << 5;
-              CONTEXT |= GBREG->getPixel(w - 2, h - 1) << 6;
-              CONTEXT |= GBREG->getPixel(w + 1, h - 2) << 7;
-              CONTEXT |= GBREG->getPixel(w, h - 2) << 8;
-              CONTEXT |= GBREG->getPixel(w - 1, h - 2) << 9;
-              break;
-            case 3:
-              CONTEXT |= GBREG->getPixel(w - 1, h);
-              CONTEXT |= GBREG->getPixel(w - 2, h) << 1;
-              CONTEXT |= GBREG->getPixel(w - 3, h) << 2;
-              CONTEXT |= GBREG->getPixel(w - 4, h) << 3;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], h + GBAT[1]) << 4;
-              CONTEXT |= GBREG->getPixel(w + 1, h - 1) << 5;
-              CONTEXT |= GBREG->getPixel(w, h - 1) << 6;
-              CONTEXT |= GBREG->getPixel(w - 1, h - 1) << 7;
-              CONTEXT |= GBREG->getPixel(w - 2, h - 1) << 8;
-              CONTEXT |= GBREG->getPixel(w - 3, h - 1) << 9;
-              break;
-          }
-          bVal = pArithDecoder->DECODE(&gbContext[CONTEXT]);
-          GBREG->setPixel(w, h, bVal);
-        }
-      }
-    }
-  }
-  return GBREG;
-}
-CJBig2_Image* CJBig2_GRDProc::decode_MMR(CJBig2_BitStream* pStream) {
-  int bitpos, i;
-  CJBig2_Image* pImage;
-  JBIG2_ALLOC(pImage, CJBig2_Image(GBW, GBH));
-  if (pImage->m_pData == NULL) {
-    delete pImage;
-    m_pModule->JBig2_Error(
-        "Generic region decoding procedure: Create Image Failed with width = "
-        "%d, height = %d\n",
-        GBW, GBH);
-    return NULL;
-  }
-  bitpos = (int)pStream->getBitPos();
-  _FaxG4Decode(m_pModule, pStream->getBuf(), pStream->getLength(), &bitpos,
-               pImage->m_pData, GBW, GBH, pImage->m_nStride);
-  pStream->setBitPos(bitpos);
-  for (i = 0; (FX_DWORD)i < pImage->m_nStride * GBH; i++) {
-    pImage->m_pData[i] = ~pImage->m_pData[i];
-  }
-  return pImage;
-}
 CJBig2_Image* CJBig2_GRRDProc::decode(CJBig2_ArithDecoder* pArithDecoder,
                                       JBig2ArithCtx* grContext) {
   if (GRW == 0 || GRH == 0) {
@@ -1832,176 +1570,7 @@
   }
   return GRREG;
 }
-CJBig2_Image* CJBig2_GRRDProc::decode_V1(CJBig2_ArithDecoder* pArithDecoder,
-                                         JBig2ArithCtx* grContext) {
-  FX_BOOL LTP, SLTP, bVal;
-  FX_BOOL TPGRPIX, TPGRVAL;
-  FX_DWORD CONTEXT;
-  CJBig2_Image* GRREG;
-  LTP = 0;
-  JBIG2_ALLOC(GRREG, CJBig2_Image(GRW, GRH));
-  GRREG->fill(0);
-  for (FX_DWORD h = 0; h < GRH; h++) {
-    if (TPGRON) {
-      switch (GRTEMPLATE) {
-        case 0:
-          CONTEXT = 0x0010;
-          break;
-        case 1:
-          CONTEXT = 0x0008;
-          break;
-      }
-      SLTP = pArithDecoder->DECODE(&grContext[CONTEXT]);
-      LTP = LTP ^ SLTP;
-    }
-    if (LTP == 0) {
-      for (FX_DWORD w = 0; w < GRW; w++) {
-        CONTEXT = 0;
-        switch (GRTEMPLATE) {
-          case 0:
-            CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX + 1,
-                                             h - GRREFERENCEDY + 1);
-            CONTEXT |=
-                GRREFERENCE->getPixel(w - GRREFERENCEDX, h - GRREFERENCEDY + 1)
-                << 1;
-            CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX - 1,
-                                             h - GRREFERENCEDY + 1)
-                       << 2;
-            CONTEXT |=
-                GRREFERENCE->getPixel(w - GRREFERENCEDX + 1, h - GRREFERENCEDY)
-                << 3;
-            CONTEXT |=
-                GRREFERENCE->getPixel(w - GRREFERENCEDX, h - GRREFERENCEDY)
-                << 4;
-            CONTEXT |=
-                GRREFERENCE->getPixel(w - GRREFERENCEDX - 1, h - GRREFERENCEDY)
-                << 5;
-            CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX + 1,
-                                             h - GRREFERENCEDY - 1)
-                       << 6;
-            CONTEXT |=
-                GRREFERENCE->getPixel(w - GRREFERENCEDX, h - GRREFERENCEDY - 1)
-                << 7;
-            CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX + GRAT[2],
-                                             h - GRREFERENCEDY + GRAT[3])
-                       << 8;
-            CONTEXT |= GRREG->getPixel(w - 1, h) << 9;
-            CONTEXT |= GRREG->getPixel(w + 1, h - 1) << 10;
-            CONTEXT |= GRREG->getPixel(w, h - 1) << 11;
-            CONTEXT |= GRREG->getPixel(w + GRAT[0], h + GRAT[1]) << 12;
-            break;
-          case 1:
-            CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX + 1,
-                                             h - GRREFERENCEDY + 1);
-            CONTEXT |=
-                GRREFERENCE->getPixel(w - GRREFERENCEDX, h - GRREFERENCEDY + 1)
-                << 1;
-            CONTEXT |=
-                GRREFERENCE->getPixel(w - GRREFERENCEDX + 1, h - GRREFERENCEDY)
-                << 2;
-            CONTEXT |=
-                GRREFERENCE->getPixel(w - GRREFERENCEDX, h - GRREFERENCEDY)
-                << 3;
-            CONTEXT |=
-                GRREFERENCE->getPixel(w - GRREFERENCEDX - 1, h - GRREFERENCEDY)
-                << 4;
-            CONTEXT |=
-                GRREFERENCE->getPixel(w - GRREFERENCEDX, h - GRREFERENCEDY - 1)
-                << 5;
-            CONTEXT |= GRREG->getPixel(w - 1, h) << 6;
-            CONTEXT |= GRREG->getPixel(w + 1, h - 1) << 7;
-            CONTEXT |= GRREG->getPixel(w, h - 1) << 8;
-            CONTEXT |= GRREG->getPixel(w - 1, h - 1) << 9;
-            break;
-        }
-        bVal = pArithDecoder->DECODE(&grContext[CONTEXT]);
-        GRREG->setPixel(w, h, bVal);
-      }
-    } else {
-      for (FX_DWORD w = 0; w < GRW; w++) {
-        bVal = GRREFERENCE->getPixel(w, h);
-        if (TPGRON && (bVal == GRREFERENCE->getPixel(w - 1, h - 1)) &&
-            (bVal == GRREFERENCE->getPixel(w, h - 1)) &&
-            (bVal == GRREFERENCE->getPixel(w + 1, h - 1)) &&
-            (bVal == GRREFERENCE->getPixel(w - 1, h)) &&
-            (bVal == GRREFERENCE->getPixel(w + 1, h)) &&
-            (bVal == GRREFERENCE->getPixel(w - 1, h + 1)) &&
-            (bVal == GRREFERENCE->getPixel(w, h + 1)) &&
-            (bVal == GRREFERENCE->getPixel(w + 1, h + 1))) {
-          TPGRPIX = 1;
-          TPGRVAL = bVal;
-        } else {
-          TPGRPIX = 0;
-        }
-        if (TPGRPIX) {
-          GRREG->setPixel(w, h, TPGRVAL);
-        } else {
-          CONTEXT = 0;
-          switch (GRTEMPLATE) {
-            case 0:
-              CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX + 1,
-                                               h - GRREFERENCEDY + 1);
-              CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX,
-                                               h - GRREFERENCEDY + 1)
-                         << 1;
-              CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX - 1,
-                                               h - GRREFERENCEDY + 1)
-                         << 2;
-              CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX + 1,
-                                               h - GRREFERENCEDY)
-                         << 3;
-              CONTEXT |=
-                  GRREFERENCE->getPixel(w - GRREFERENCEDX, h - GRREFERENCEDY)
-                  << 4;
-              CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX - 1,
-                                               h - GRREFERENCEDY)
-                         << 5;
-              CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX + 1,
-                                               h - GRREFERENCEDY - 1)
-                         << 6;
-              CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX,
-                                               h - GRREFERENCEDY - 1)
-                         << 7;
-              CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX + GRAT[2],
-                                               h - GRREFERENCEDY + GRAT[3])
-                         << 8;
-              CONTEXT |= GRREG->getPixel(w - 1, h) << 9;
-              CONTEXT |= GRREG->getPixel(w + 1, h - 1) << 10;
-              CONTEXT |= GRREG->getPixel(w, h - 1) << 11;
-              CONTEXT |= GRREG->getPixel(w + GRAT[0], h + GRAT[1]) << 12;
-              break;
-            case 1:
-              CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX + 1,
-                                               h - GRREFERENCEDY + 1);
-              CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX,
-                                               h - GRREFERENCEDY + 1)
-                         << 1;
-              CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX + 1,
-                                               h - GRREFERENCEDY)
-                         << 2;
-              CONTEXT |=
-                  GRREFERENCE->getPixel(w - GRREFERENCEDX, h - GRREFERENCEDY)
-                  << 3;
-              CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX - 1,
-                                               h - GRREFERENCEDY)
-                         << 4;
-              CONTEXT |= GRREFERENCE->getPixel(w - GRREFERENCEDX,
-                                               h - GRREFERENCEDY - 1)
-                         << 5;
-              CONTEXT |= GRREG->getPixel(w - 1, h) << 6;
-              CONTEXT |= GRREG->getPixel(w + 1, h - 1) << 7;
-              CONTEXT |= GRREG->getPixel(w, h - 1) << 8;
-              CONTEXT |= GRREG->getPixel(w - 1, h - 1) << 9;
-              break;
-          }
-          bVal = pArithDecoder->DECODE(&grContext[CONTEXT]);
-          GRREG->setPixel(w, h, bVal);
-        }
-      }
-    }
-  }
-  return GRREG;
-}
+
 CJBig2_Image* CJBig2_TRDProc::decode_Huffman(CJBig2_BitStream* pStream,
                                              JBig2ArithCtx* grContext) {
   int32_t STRIPT, FIRSTS;
@@ -3722,341 +3291,6 @@
   }
   return m_ProssiveStatus;
 }
-FXCODEC_STATUS CJBig2_GRDProc::Start_decode_Arith_V2(
-    CJBig2_Image** pImage,
-    CJBig2_ArithDecoder* pArithDecoder,
-    JBig2ArithCtx* gbContext,
-    IFX_Pause* pPause) {
-  if (GBW == 0 || GBH == 0) {
-    *pImage = NULL;
-    m_ProssiveStatus = FXCODEC_STATUS_DECODE_FINISH;
-    return FXCODEC_STATUS_DECODE_FINISH;
-  }
-  if (*pImage == NULL) {
-    JBIG2_ALLOC((*pImage), CJBig2_Image(GBW, GBH));
-  }
-  if ((*pImage)->m_pData == NULL) {
-    delete *pImage;
-    *pImage = NULL;
-    m_pModule->JBig2_Error(
-        "Generic region decoding procedure: Create Image Failed with width = "
-        "%d, height = %d\n",
-        GBW, GBH);
-    m_ProssiveStatus = FXCODEC_STATUS_ERROR;
-    return FXCODEC_STATUS_ERROR;
-  }
-  m_ProssiveStatus = FXCODEC_STATUS_DECODE_READY;
-  m_DecodeType = 2;
-  m_pPause = pPause;
-  m_pImage = pImage;
-  (*m_pImage)->fill(0);
-  LTP = 0;
-  m_loopIndex = 0;
-  m_pArithDecoder = pArithDecoder;
-  m_gbContext = gbContext;
-  return decode_Arith_V2(pPause);
-}
-FXCODEC_STATUS CJBig2_GRDProc::decode_Arith_V2(IFX_Pause* pPause) {
-  FX_BOOL SLTP, bVal;
-  FX_DWORD CONTEXT;
-  CJBig2_Image* GBREG = *m_pImage;
-  FX_DWORD line1, line2, line3;
-  LTP = 0;
-  JBIG2_ALLOC(GBREG, CJBig2_Image(GBW, GBH));
-  GBREG->fill(0);
-  for (; m_loopIndex < GBH; m_loopIndex++) {
-    if (TPGDON) {
-      switch (GBTEMPLATE) {
-        case 0:
-          CONTEXT = 0x9b25;
-          break;
-        case 1:
-          CONTEXT = 0x0795;
-          break;
-        case 2:
-          CONTEXT = 0x00e5;
-          break;
-        case 3:
-          CONTEXT = 0x0195;
-          break;
-      }
-      SLTP = m_pArithDecoder->DECODE(&m_gbContext[CONTEXT]);
-      LTP = LTP ^ SLTP;
-    }
-    if (LTP == 1) {
-      GBREG->copyLine(m_loopIndex, m_loopIndex - 1);
-    } else {
-      switch (GBTEMPLATE) {
-        case 0: {
-          line1 = GBREG->getPixel(1, m_loopIndex - 2);
-          line1 |= GBREG->getPixel(0, m_loopIndex - 2) << 1;
-          line2 = GBREG->getPixel(2, m_loopIndex - 1);
-          line2 |= GBREG->getPixel(1, m_loopIndex - 1) << 1;
-          line2 |= GBREG->getPixel(0, m_loopIndex - 1) << 2;
-          line3 = 0;
-          for (FX_DWORD w = 0; w < GBW; w++) {
-            if (USESKIP && SKIP->getPixel(w, m_loopIndex)) {
-              bVal = 0;
-            } else {
-              CONTEXT = line3;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], m_loopIndex + GBAT[1])
-                         << 4;
-              CONTEXT |= line2 << 5;
-              CONTEXT |= GBREG->getPixel(w + GBAT[2], m_loopIndex + GBAT[3])
-                         << 10;
-              CONTEXT |= GBREG->getPixel(w + GBAT[4], m_loopIndex + GBAT[5])
-                         << 11;
-              CONTEXT |= line1 << 12;
-              CONTEXT |= GBREG->getPixel(w + GBAT[6], m_loopIndex + GBAT[7])
-                         << 15;
-              bVal = m_pArithDecoder->DECODE(&m_gbContext[CONTEXT]);
-            }
-            if (bVal) {
-              GBREG->setPixel(w, m_loopIndex, bVal);
-            }
-            line1 =
-                ((line1 << 1) | GBREG->getPixel(w + 2, m_loopIndex - 2)) & 0x07;
-            line2 =
-                ((line2 << 1) | GBREG->getPixel(w + 3, m_loopIndex - 1)) & 0x1f;
-            line3 = ((line3 << 1) | bVal) & 0x0f;
-          }
-        } break;
-        case 1: {
-          line1 = GBREG->getPixel(2, m_loopIndex - 2);
-          line1 |= GBREG->getPixel(1, m_loopIndex - 2) << 1;
-          line1 |= GBREG->getPixel(0, m_loopIndex - 2) << 2;
-          line2 = GBREG->getPixel(2, m_loopIndex - 1);
-          line2 |= GBREG->getPixel(1, m_loopIndex - 1) << 1;
-          line2 |= GBREG->getPixel(0, m_loopIndex - 1) << 2;
-          line3 = 0;
-          for (FX_DWORD w = 0; w < GBW; w++) {
-            if (USESKIP && SKIP->getPixel(w, m_loopIndex)) {
-              bVal = 0;
-            } else {
-              CONTEXT = line3;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], m_loopIndex + GBAT[1])
-                         << 3;
-              CONTEXT |= line2 << 4;
-              CONTEXT |= line1 << 9;
-              bVal = m_pArithDecoder->DECODE(&m_gbContext[CONTEXT]);
-            }
-            if (bVal) {
-              GBREG->setPixel(w, m_loopIndex, bVal);
-            }
-            line1 =
-                ((line1 << 1) | GBREG->getPixel(w + 3, m_loopIndex - 2)) & 0x0f;
-            line2 =
-                ((line2 << 1) | GBREG->getPixel(w + 3, m_loopIndex - 1)) & 0x1f;
-            line3 = ((line3 << 1) | bVal) & 0x07;
-          }
-        } break;
-        case 2: {
-          line1 = GBREG->getPixel(1, m_loopIndex - 2);
-          line1 |= GBREG->getPixel(0, m_loopIndex - 2) << 1;
-          line2 = GBREG->getPixel(1, m_loopIndex - 1);
-          line2 |= GBREG->getPixel(0, m_loopIndex - 1) << 1;
-          line3 = 0;
-          for (FX_DWORD w = 0; w < GBW; w++) {
-            if (USESKIP && SKIP->getPixel(w, m_loopIndex)) {
-              bVal = 0;
-            } else {
-              CONTEXT = line3;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], m_loopIndex + GBAT[1])
-                         << 2;
-              CONTEXT |= line2 << 3;
-              CONTEXT |= line1 << 7;
-              bVal = m_pArithDecoder->DECODE(&m_gbContext[CONTEXT]);
-            }
-            if (bVal) {
-              GBREG->setPixel(w, m_loopIndex, bVal);
-            }
-            line1 =
-                ((line1 << 1) | GBREG->getPixel(w + 2, m_loopIndex - 2)) & 0x07;
-            line2 =
-                ((line2 << 1) | GBREG->getPixel(w + 2, m_loopIndex - 1)) & 0x0f;
-            line3 = ((line3 << 1) | bVal) & 0x03;
-          }
-        } break;
-        case 3: {
-          line1 = GBREG->getPixel(1, m_loopIndex - 1);
-          line1 |= GBREG->getPixel(0, m_loopIndex - 1) << 1;
-          line2 = 0;
-          for (FX_DWORD w = 0; w < GBW; w++) {
-            if (USESKIP && SKIP->getPixel(w, m_loopIndex)) {
-              bVal = 0;
-            } else {
-              CONTEXT = line2;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], m_loopIndex + GBAT[1])
-                         << 4;
-              CONTEXT |= line1 << 5;
-              bVal = m_pArithDecoder->DECODE(&m_gbContext[CONTEXT]);
-            }
-            if (bVal) {
-              GBREG->setPixel(w, m_loopIndex, bVal);
-            }
-            line1 =
-                ((line1 << 1) | GBREG->getPixel(w + 2, m_loopIndex - 1)) & 0x1f;
-            line2 = ((line2 << 1) | bVal) & 0x0f;
-          }
-        } break;
-      }
-    }
-    if (pPause && pPause->NeedToPauseNow()) {
-      m_loopIndex++;
-      m_ProssiveStatus = FXCODEC_STATUS_DECODE_TOBECONTINUE;
-      return FXCODEC_STATUS_DECODE_TOBECONTINUE;
-    }
-  }
-  m_ProssiveStatus = FXCODEC_STATUS_DECODE_FINISH;
-  return FXCODEC_STATUS_DECODE_FINISH;
-}
-FXCODEC_STATUS CJBig2_GRDProc::Start_decode_Arith_V1(
-    CJBig2_Image** pImage,
-    CJBig2_ArithDecoder* pArithDecoder,
-    JBig2ArithCtx* gbContext,
-    IFX_Pause* pPause) {
-  if (GBW == 0 || GBH == 0) {
-    *pImage = NULL;
-    m_ProssiveStatus = FXCODEC_STATUS_DECODE_FINISH;
-    return FXCODEC_STATUS_DECODE_FINISH;
-  }
-  if (*pImage == NULL) {
-    JBIG2_ALLOC((*pImage), CJBig2_Image(GBW, GBH));
-  }
-  if ((*pImage)->m_pData == NULL) {
-    delete *pImage;
-    *pImage = NULL;
-    m_pModule->JBig2_Error(
-        "Generic region decoding procedure: Create Image Failed with width = "
-        "%d, height = %d\n",
-        GBW, GBH);
-    m_ProssiveStatus = FXCODEC_STATUS_ERROR;
-    return FXCODEC_STATUS_ERROR;
-  }
-  m_ProssiveStatus = FXCODEC_STATUS_DECODE_READY;
-  m_pPause = pPause;
-  m_pImage = pImage;
-  m_DecodeType = 3;
-  (*m_pImage)->fill(0);
-  LTP = 0;
-  m_loopIndex = 0;
-  m_pArithDecoder = pArithDecoder;
-  m_gbContext = gbContext;
-  return decode_Arith_V1(pPause);
-}
-FXCODEC_STATUS CJBig2_GRDProc::decode_Arith_V1(IFX_Pause* pPause) {
-  FX_BOOL SLTP, bVal;
-  FX_DWORD CONTEXT = 0;
-  CJBig2_Image* GBREG = (*m_pImage);
-  for (; m_loopIndex < GBH; m_loopIndex++) {
-    if (TPGDON) {
-      switch (GBTEMPLATE) {
-        case 0:
-          CONTEXT = 0x9b25;
-          break;
-        case 1:
-          CONTEXT = 0x0795;
-          break;
-        case 2:
-          CONTEXT = 0x00e5;
-          break;
-        case 3:
-          CONTEXT = 0x0195;
-          break;
-      }
-      SLTP = m_pArithDecoder->DECODE(&m_gbContext[CONTEXT]);
-      LTP = LTP ^ SLTP;
-    }
-    if (LTP == 1) {
-      for (FX_DWORD w = 0; w < GBW; w++) {
-        GBREG->setPixel(w, m_loopIndex, GBREG->getPixel(w, m_loopIndex - 1));
-      }
-    } else {
-      for (FX_DWORD w = 0; w < GBW; w++) {
-        if (USESKIP && SKIP->getPixel(w, m_loopIndex)) {
-          GBREG->setPixel(w, m_loopIndex, 0);
-        } else {
-          CONTEXT = 0;
-          switch (GBTEMPLATE) {
-            case 0:
-              CONTEXT |= GBREG->getPixel(w - 1, m_loopIndex);
-              CONTEXT |= GBREG->getPixel(w - 2, m_loopIndex) << 1;
-              CONTEXT |= GBREG->getPixel(w - 3, m_loopIndex) << 2;
-              CONTEXT |= GBREG->getPixel(w - 4, m_loopIndex) << 3;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], m_loopIndex + GBAT[1])
-                         << 4;
-              CONTEXT |= GBREG->getPixel(w + 2, m_loopIndex - 1) << 5;
-              CONTEXT |= GBREG->getPixel(w + 1, m_loopIndex - 1) << 6;
-              CONTEXT |= GBREG->getPixel(w, m_loopIndex - 1) << 7;
-              CONTEXT |= GBREG->getPixel(w - 1, m_loopIndex - 1) << 8;
-              CONTEXT |= GBREG->getPixel(w - 2, m_loopIndex - 1) << 9;
-              CONTEXT |= GBREG->getPixel(w + GBAT[2], m_loopIndex + GBAT[3])
-                         << 10;
-              CONTEXT |= GBREG->getPixel(w + GBAT[4], m_loopIndex + GBAT[5])
-                         << 11;
-              CONTEXT |= GBREG->getPixel(w + 1, m_loopIndex - 2) << 12;
-              CONTEXT |= GBREG->getPixel(w, m_loopIndex - 2) << 13;
-              CONTEXT |= GBREG->getPixel(w - 1, m_loopIndex - 2) << 14;
-              CONTEXT |= GBREG->getPixel(w + GBAT[6], m_loopIndex + GBAT[7])
-                         << 15;
-              break;
-            case 1:
-              CONTEXT |= GBREG->getPixel(w - 1, m_loopIndex);
-              CONTEXT |= GBREG->getPixel(w - 2, m_loopIndex) << 1;
-              CONTEXT |= GBREG->getPixel(w - 3, m_loopIndex) << 2;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], m_loopIndex + GBAT[1])
-                         << 3;
-              CONTEXT |= GBREG->getPixel(w + 2, m_loopIndex - 1) << 4;
-              CONTEXT |= GBREG->getPixel(w + 1, m_loopIndex - 1) << 5;
-              CONTEXT |= GBREG->getPixel(w, m_loopIndex - 1) << 6;
-              CONTEXT |= GBREG->getPixel(w - 1, m_loopIndex - 1) << 7;
-              CONTEXT |= GBREG->getPixel(w - 2, m_loopIndex - 1) << 8;
-              CONTEXT |= GBREG->getPixel(w + 2, m_loopIndex - 2) << 9;
-              CONTEXT |= GBREG->getPixel(w + 1, m_loopIndex - 2) << 10;
-              CONTEXT |= GBREG->getPixel(w, m_loopIndex - 2) << 11;
-              CONTEXT |= GBREG->getPixel(w - 1, m_loopIndex - 2) << 12;
-              break;
-            case 2:
-              CONTEXT |= GBREG->getPixel(w - 1, m_loopIndex);
-              CONTEXT |= GBREG->getPixel(w - 2, m_loopIndex) << 1;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], m_loopIndex + GBAT[1])
-                         << 2;
-              CONTEXT |= GBREG->getPixel(w + 1, m_loopIndex - 1) << 3;
-              CONTEXT |= GBREG->getPixel(w, m_loopIndex - 1) << 4;
-              CONTEXT |= GBREG->getPixel(w - 1, m_loopIndex - 1) << 5;
-              CONTEXT |= GBREG->getPixel(w - 2, m_loopIndex - 1) << 6;
-              CONTEXT |= GBREG->getPixel(w + 1, m_loopIndex - 2) << 7;
-              CONTEXT |= GBREG->getPixel(w, m_loopIndex - 2) << 8;
-              CONTEXT |= GBREG->getPixel(w - 1, m_loopIndex - 2) << 9;
-              break;
-            case 3:
-              CONTEXT |= GBREG->getPixel(w - 1, m_loopIndex);
-              CONTEXT |= GBREG->getPixel(w - 2, m_loopIndex) << 1;
-              CONTEXT |= GBREG->getPixel(w - 3, m_loopIndex) << 2;
-              CONTEXT |= GBREG->getPixel(w - 4, m_loopIndex) << 3;
-              CONTEXT |= GBREG->getPixel(w + GBAT[0], m_loopIndex + GBAT[1])
-                         << 4;
-              CONTEXT |= GBREG->getPixel(w + 1, m_loopIndex - 1) << 5;
-              CONTEXT |= GBREG->getPixel(w, m_loopIndex - 1) << 6;
-              CONTEXT |= GBREG->getPixel(w - 1, m_loopIndex - 1) << 7;
-              CONTEXT |= GBREG->getPixel(w - 2, m_loopIndex - 1) << 8;
-              CONTEXT |= GBREG->getPixel(w - 3, m_loopIndex - 1) << 9;
-              break;
-          }
-          bVal = m_pArithDecoder->DECODE(&m_gbContext[CONTEXT]);
-          GBREG->setPixel(w, m_loopIndex, bVal);
-        }
-      }
-    }
-    if (pPause && pPause->NeedToPauseNow()) {
-      m_loopIndex++;
-      m_ProssiveStatus = FXCODEC_STATUS_DECODE_TOBECONTINUE;
-      return FXCODEC_STATUS_DECODE_TOBECONTINUE;
-    }
-  }
-  m_ProssiveStatus = FXCODEC_STATUS_DECODE_FINISH;
-  return FXCODEC_STATUS_DECODE_FINISH;
-}
 FXCODEC_STATUS CJBig2_GRDProc::Start_decode_MMR(CJBig2_Image** pImage,
                                                 CJBig2_BitStream* pStream,
                                                 IFX_Pause* pPause) {
@@ -4082,26 +3316,19 @@
   m_ProssiveStatus = FXCODEC_STATUS_DECODE_FINISH;
   return m_ProssiveStatus;
 }
-FXCODEC_STATUS CJBig2_GRDProc::decode_MMR() {
-  return m_ProssiveStatus;
-}
+
 FXCODEC_STATUS CJBig2_GRDProc::Continue_decode(IFX_Pause* pPause) {
-  if (m_ProssiveStatus != FXCODEC_STATUS_DECODE_TOBECONTINUE) {
+  if (m_ProssiveStatus != FXCODEC_STATUS_DECODE_TOBECONTINUE)
+    return m_ProssiveStatus;
+
+  if (m_DecodeType != 1) {
+    m_ProssiveStatus = FXCODEC_STATUS_ERROR;
     return m_ProssiveStatus;
   }
-  switch (m_DecodeType) {
-    case 1:
-      return decode_Arith(pPause);
-    case 2:
-      return decode_Arith_V2(pPause);
-    case 3:
-      return decode_Arith_V1(pPause);
-    case 4:
-      return decode_MMR();
-  }
-  m_ProssiveStatus = FXCODEC_STATUS_ERROR;
-  return m_ProssiveStatus;
+
+  return decode_Arith(pPause);
 }
+
 FXCODEC_STATUS CJBig2_GRDProc::decode_Arith_Template0_opt3(
     CJBig2_Image* pImage,
     CJBig2_ArithDecoder* pArithDecoder,
diff --git a/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.h b/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.h
index eb90f6b..1b933d7 100644
--- a/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.h
+++ b/core/src/fxcodec/jbig2/JBig2_GeneralDecoder.h
@@ -17,12 +17,14 @@
 class CJBig2_HuffmanTable;
 class CJBig2_Image;
 class CJBig2_PatternDict;
-typedef enum {
+
+enum JBig2Corner {
   JBIG2_CORNER_BOTTOMLEFT = 0,
   JBIG2_CORNER_TOPLEFT = 1,
   JBIG2_CORNER_BOTTOMRIGHT = 2,
   JBIG2_CORNER_TOPRIGHT = 3
-} JBig2Corner;
+};
+
 class CJBig2_GRDProc : public CJBig2_Object {
  public:
   CJBig2_GRDProc() {
@@ -40,36 +42,27 @@
   CJBig2_Image* decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
                              JBig2ArithCtx* gbContext);
 
-  CJBig2_Image* decode_Arith_V2(CJBig2_ArithDecoder* pArithDecoder,
-                                JBig2ArithCtx* gbContext);
-
-  CJBig2_Image* decode_Arith_V1(CJBig2_ArithDecoder* pArithDecoder,
-                                JBig2ArithCtx* gbContext);
-
-  CJBig2_Image* decode_MMR(CJBig2_BitStream* pStream);
   FXCODEC_STATUS Start_decode_Arith(CJBig2_Image** pImage,
                                     CJBig2_ArithDecoder* pArithDecoder,
                                     JBig2ArithCtx* gbContext,
                                     IFX_Pause* pPause = NULL);
-  FXCODEC_STATUS Start_decode_Arith_V2(CJBig2_Image** pImage,
-                                       CJBig2_ArithDecoder* pArithDecoder,
-                                       JBig2ArithCtx* gbContext,
-                                       IFX_Pause* pPause = NULL);
-  FXCODEC_STATUS Start_decode_Arith_V1(CJBig2_Image** pImage,
-                                       CJBig2_ArithDecoder* pArithDecoder,
-                                       JBig2ArithCtx* gbContext,
-                                       IFX_Pause* pPause = NULL);
   FXCODEC_STATUS Start_decode_MMR(CJBig2_Image** pImage,
                                   CJBig2_BitStream* pStream,
                                   IFX_Pause* pPause = NULL);
   FXCODEC_STATUS Continue_decode(IFX_Pause* pPause);
   FX_RECT GetReplaceRect() { return m_ReplaceRect; }
 
+  FX_BOOL MMR;
+  FX_DWORD GBW;
+  FX_DWORD GBH;
+  uint8_t GBTEMPLATE;
+  FX_BOOL TPGDON;
+  FX_BOOL USESKIP;
+  CJBig2_Image* SKIP;
+  char GBAT[8];
+
  private:
   FXCODEC_STATUS decode_Arith(IFX_Pause* pPause);
-  FXCODEC_STATUS decode_Arith_V2(IFX_Pause* pPause);
-  FXCODEC_STATUS decode_Arith_V1(IFX_Pause* pPause);
-  FXCODEC_STATUS decode_MMR();
   FXCODEC_STATUS decode_Arith_Template0_opt3(CJBig2_Image* pImage,
                                              CJBig2_ArithDecoder* pArithDecoder,
                                              JBig2ArithCtx* gbContext,
@@ -106,18 +99,6 @@
       CJBig2_ArithDecoder* pArithDecoder,
       JBig2ArithCtx* gbContext,
       IFX_Pause* pPause);
-  FX_DWORD m_loopIndex;
-  uint8_t* m_pLine;
-  IFX_Pause* m_pPause;
-  FXCODEC_STATUS m_ProssiveStatus;
-  CJBig2_Image** m_pImage;
-  CJBig2_ArithDecoder* m_pArithDecoder;
-  JBig2ArithCtx* m_gbContext;
-  FX_WORD m_DecodeType;
-  FX_BOOL LTP;
-  FX_RECT m_ReplaceRect;
-
- private:
   CJBig2_Image* decode_Arith_Template0_opt(CJBig2_ArithDecoder* pArithDecoder,
                                            JBig2ArithCtx* gbContext);
 
@@ -166,16 +147,18 @@
   CJBig2_Image* decode_Arith_Template3_unopt(CJBig2_ArithDecoder* pArithDecoder,
                                              JBig2ArithCtx* gbContext);
 
- public:
-  FX_BOOL MMR;
-  FX_DWORD GBW;
-  FX_DWORD GBH;
-  uint8_t GBTEMPLATE;
-  FX_BOOL TPGDON;
-  FX_BOOL USESKIP;
-  CJBig2_Image* SKIP;
-  signed char GBAT[8];
+  FX_DWORD m_loopIndex;
+  uint8_t* m_pLine;
+  IFX_Pause* m_pPause;
+  FXCODEC_STATUS m_ProssiveStatus;
+  CJBig2_Image** m_pImage;
+  CJBig2_ArithDecoder* m_pArithDecoder;
+  JBig2ArithCtx* m_gbContext;
+  FX_WORD m_DecodeType;
+  FX_BOOL LTP;
+  FX_RECT m_ReplaceRect;
 };
+
 class CJBig2_GRRDProc : public CJBig2_Object {
  public:
   CJBig2_Image* decode(CJBig2_ArithDecoder* pArithDecoder,
@@ -193,10 +176,6 @@
   CJBig2_Image* decode_Template1_opt(CJBig2_ArithDecoder* pArithDecoder,
                                      JBig2ArithCtx* grContext);
 
-  CJBig2_Image* decode_V1(CJBig2_ArithDecoder* pArithDecoder,
-                          JBig2ArithCtx* grContext);
-
- public:
   FX_DWORD GRW;
   FX_DWORD GRH;
   FX_BOOL GRTEMPLATE;
@@ -206,11 +185,13 @@
   FX_BOOL TPGRON;
   signed char GRAT[4];
 };
+
 typedef struct {
   CJBig2_ArithIntDecoder *IADT, *IAFS, *IADS, *IAIT, *IARI, *IARDW, *IARDH,
       *IARDX, *IARDY;
   CJBig2_ArithIaidDecoder* IAID;
 } JBig2IntDecoderState;
+
 class CJBig2_TRDProc : public CJBig2_Object {
  public:
   CJBig2_Image* decode_Huffman(CJBig2_BitStream* pStream,