| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #ifndef _JBIG2_GENERAL_DECODER_H_ | 7 #ifndef _JBIG2_GENERAL_DECODER_H_ |
| 8 #define _JBIG2_GENERAL_DECODER_H_ | 8 #define _JBIG2_GENERAL_DECODER_H_ |
| 9 | 9 |
| 10 #include "../../../include/fxcodec/fx_codec_def.h" | 10 #include "../../../include/fxcodec/fx_codec_def.h" |
| 11 #include "../../../include/fxcrt/fx_coordinates.h" | 11 #include "../../../include/fxcrt/fx_coordinates.h" |
| 12 #include "JBig2_ArithDecoder.h" | 12 #include "JBig2_ArithDecoder.h" |
| 13 #include "JBig2_ArithIntDecoder.h" | 13 #include "JBig2_ArithIntDecoder.h" |
| 14 #include "JBig2_Define.h" | 14 #include "JBig2_Define.h" |
| 15 #include "JBig2_SymbolDict.h" | 15 #include "JBig2_SymbolDict.h" |
| 16 | 16 |
| 17 class CJBig2_HuffmanTable; | 17 class CJBig2_HuffmanTable; |
| 18 class CJBig2_Image; | 18 class CJBig2_Image; |
| 19 class CJBig2_PatternDict; | 19 class CJBig2_PatternDict; |
| 20 typedef enum { | 20 typedef enum { |
| 21 JBIG2_CORNER_BOTTOMLEFT = 0, | 21 JBIG2_CORNER_BOTTOMLEFT = 0, |
| 22 JBIG2_CORNER_TOPLEFT» = 1, | 22 JBIG2_CORNER_TOPLEFT = 1, |
| 23 JBIG2_CORNER_BOTTOMRIGHT = 2, | 23 JBIG2_CORNER_BOTTOMRIGHT = 2, |
| 24 JBIG2_CORNER_TOPRIGHT» = 3 | 24 JBIG2_CORNER_TOPRIGHT = 3 |
| 25 } JBig2Corner; | 25 } JBig2Corner; |
| 26 class CJBig2_GRDProc : public CJBig2_Object | 26 class CJBig2_GRDProc : public CJBig2_Object { |
| 27 { | 27 public: |
| 28 public: | 28 CJBig2_GRDProc() { |
| 29 CJBig2_GRDProc() | 29 m_loopIndex = 0; |
| 30 { | 30 m_pLine = NULL; |
| 31 m_loopIndex = 0; | 31 m_pPause = NULL; |
| 32 m_pLine = NULL; | 32 m_DecodeType = 0; |
| 33 m_pPause = NULL; | 33 LTP = 0; |
| 34 m_DecodeType = 0; | 34 m_ReplaceRect.left = 0; |
| 35 LTP = 0; | 35 m_ReplaceRect.bottom = 0; |
| 36 m_ReplaceRect.left = 0; | 36 m_ReplaceRect.top = 0; |
| 37 m_ReplaceRect.bottom = 0; | 37 m_ReplaceRect.right = 0; |
| 38 m_ReplaceRect.top = 0; | 38 } |
| 39 m_ReplaceRect.right = 0; | 39 |
| 40 } | 40 CJBig2_Image* decode_Arith(CJBig2_ArithDecoder* pArithDecoder, |
| 41 | 41 JBig2ArithCtx* gbContext); |
| 42 CJBig2_Image *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx
*gbContext); | 42 |
| 43 | 43 CJBig2_Image* decode_Arith_V2(CJBig2_ArithDecoder* pArithDecoder, |
| 44 CJBig2_Image *decode_Arith_V2(CJBig2_ArithDecoder *pArithDecoder, JBig2Arith
Ctx *gbContext); | 44 JBig2ArithCtx* gbContext); |
| 45 | 45 |
| 46 CJBig2_Image *decode_Arith_V1(CJBig2_ArithDecoder *pArithDecoder, JBig2Arith
Ctx *gbContext); | 46 CJBig2_Image* decode_Arith_V1(CJBig2_ArithDecoder* pArithDecoder, |
| 47 | 47 JBig2ArithCtx* gbContext); |
| 48 CJBig2_Image *decode_MMR(CJBig2_BitStream *pStream); | 48 |
| 49 FXCODEC_STATUS Start_decode_Arith(CJBig2_Image** pImage, CJBig2_ArithDecoder
*pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause = NULL); | 49 CJBig2_Image* decode_MMR(CJBig2_BitStream* pStream); |
| 50 FXCODEC_STATUS Start_decode_Arith_V2(CJBig2_Image** pImage, CJBig2_ArithDeco
der *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause = NULL); | 50 FXCODEC_STATUS Start_decode_Arith(CJBig2_Image** pImage, |
| 51 FXCODEC_STATUS Start_decode_Arith_V1(CJBig2_Image** pImage, CJBig2_ArithDeco
der *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause = NULL); | 51 CJBig2_ArithDecoder* pArithDecoder, |
| 52 FXCODEC_STATUS Start_decode_MMR(CJBig2_Image** pImage, CJBig2_BitStream *pSt
ream, IFX_Pause* pPause = NULL); | 52 JBig2ArithCtx* gbContext, |
| 53 FXCODEC_STATUS Continue_decode(IFX_Pause* pPause); | 53 IFX_Pause* pPause = NULL); |
| 54 FX_RECT GetReplaceRect() | 54 FXCODEC_STATUS Start_decode_Arith_V2(CJBig2_Image** pImage, |
| 55 { | 55 CJBig2_ArithDecoder* pArithDecoder, |
| 56 return m_ReplaceRect; | 56 JBig2ArithCtx* gbContext, |
| 57 }; | 57 IFX_Pause* pPause = NULL); |
| 58 private: | 58 FXCODEC_STATUS Start_decode_Arith_V1(CJBig2_Image** pImage, |
| 59 FXCODEC_STATUS decode_Arith(IFX_Pause* pPause); | 59 CJBig2_ArithDecoder* pArithDecoder, |
| 60 FXCODEC_STATUS decode_Arith_V2(IFX_Pause* pPause); | 60 JBig2ArithCtx* gbContext, |
| 61 FXCODEC_STATUS decode_Arith_V1(IFX_Pause* pPause); | 61 IFX_Pause* pPause = NULL); |
| 62 FXCODEC_STATUS decode_MMR(); | 62 FXCODEC_STATUS Start_decode_MMR(CJBig2_Image** pImage, |
| 63 FXCODEC_STATUS decode_Arith_Template0_opt3(CJBig2_Image*pImage, CJBig2_Arith
Decoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause); | 63 CJBig2_BitStream* pStream, |
| 64 FXCODEC_STATUS decode_Arith_Template0_unopt(CJBig2_Image *pImage, CJBig2_Ari
thDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause); | 64 IFX_Pause* pPause = NULL); |
| 65 FXCODEC_STATUS decode_Arith_Template1_opt3(CJBig2_Image *pImage, CJBig2_Arit
hDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause); | 65 FXCODEC_STATUS Continue_decode(IFX_Pause* pPause); |
| 66 FXCODEC_STATUS decode_Arith_Template1_unopt(CJBig2_Image * pImage, CJBig2_Ar
ithDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause); | 66 FX_RECT GetReplaceRect() { return m_ReplaceRect; }; |
| 67 FXCODEC_STATUS decode_Arith_Template2_opt3(CJBig2_Image *pImage, CJBig2_Arit
hDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause); | 67 |
| 68 FXCODEC_STATUS decode_Arith_Template2_unopt(CJBig2_Image * pImage, CJBig2_Ar
ithDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause); | 68 private: |
| 69 FXCODEC_STATUS decode_Arith_Template3_opt3(CJBig2_Image *pImage, CJBig2_Arit
hDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause); | 69 FXCODEC_STATUS decode_Arith(IFX_Pause* pPause); |
| 70 FXCODEC_STATUS decode_Arith_Template3_unopt(CJBig2_Image * pImage, CJBig2_Ar
ithDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause); | 70 FXCODEC_STATUS decode_Arith_V2(IFX_Pause* pPause); |
| 71 FX_DWORD m_loopIndex; | 71 FXCODEC_STATUS decode_Arith_V1(IFX_Pause* pPause); |
| 72 uint8_t * m_pLine; | 72 FXCODEC_STATUS decode_MMR(); |
| 73 IFX_Pause* m_pPause; | 73 FXCODEC_STATUS decode_Arith_Template0_opt3(CJBig2_Image* pImage, |
| 74 FXCODEC_STATUS m_ProssiveStatus; | 74 CJBig2_ArithDecoder* pArithDecoder, |
| 75 CJBig2_Image** m_pImage; | 75 JBig2ArithCtx* gbContext, |
| 76 CJBig2_ArithDecoder *m_pArithDecoder; | 76 IFX_Pause* pPause); |
| 77 JBig2ArithCtx *m_gbContext; | 77 FXCODEC_STATUS decode_Arith_Template0_unopt( |
| 78 FX_WORD m_DecodeType; | 78 CJBig2_Image* pImage, |
| 79 FX_BOOL LTP; | 79 CJBig2_ArithDecoder* pArithDecoder, |
| 80 FX_RECT m_ReplaceRect; | 80 JBig2ArithCtx* gbContext, |
| 81 private: | 81 IFX_Pause* pPause); |
| 82 | 82 FXCODEC_STATUS decode_Arith_Template1_opt3(CJBig2_Image* pImage, |
| 83 CJBig2_Image *decode_Arith_Template0_opt(CJBig2_ArithDecoder *pArithDecoder,
JBig2ArithCtx *gbContext); | 83 CJBig2_ArithDecoder* pArithDecoder, |
| 84 | 84 JBig2ArithCtx* gbContext, |
| 85 CJBig2_Image *decode_Arith_Template0_opt2(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); | 85 IFX_Pause* pPause); |
| 86 | 86 FXCODEC_STATUS decode_Arith_Template1_unopt( |
| 87 CJBig2_Image *decode_Arith_Template0_opt3(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); | 87 CJBig2_Image* pImage, |
| 88 | 88 CJBig2_ArithDecoder* pArithDecoder, |
| 89 CJBig2_Image *decode_Arith_Template0_unopt(CJBig2_ArithDecoder *pArithDecode
r, JBig2ArithCtx *gbContext); | 89 JBig2ArithCtx* gbContext, |
| 90 | 90 IFX_Pause* pPause); |
| 91 CJBig2_Image *decode_Arith_Template1_opt(CJBig2_ArithDecoder *pArithDecoder,
JBig2ArithCtx *gbContext); | 91 FXCODEC_STATUS decode_Arith_Template2_opt3(CJBig2_Image* pImage, |
| 92 | 92 CJBig2_ArithDecoder* pArithDecoder, |
| 93 CJBig2_Image *decode_Arith_Template1_opt2(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); | 93 JBig2ArithCtx* gbContext, |
| 94 | 94 IFX_Pause* pPause); |
| 95 CJBig2_Image *decode_Arith_Template1_opt3(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); | 95 FXCODEC_STATUS decode_Arith_Template2_unopt( |
| 96 | 96 CJBig2_Image* pImage, |
| 97 CJBig2_Image *decode_Arith_Template1_unopt(CJBig2_ArithDecoder *pArithDecode
r, JBig2ArithCtx *gbContext); | 97 CJBig2_ArithDecoder* pArithDecoder, |
| 98 | 98 JBig2ArithCtx* gbContext, |
| 99 CJBig2_Image *decode_Arith_Template2_opt(CJBig2_ArithDecoder *pArithDecoder,
JBig2ArithCtx *gbContext); | 99 IFX_Pause* pPause); |
| 100 | 100 FXCODEC_STATUS decode_Arith_Template3_opt3(CJBig2_Image* pImage, |
| 101 CJBig2_Image *decode_Arith_Template2_opt2(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); | 101 CJBig2_ArithDecoder* pArithDecoder, |
| 102 | 102 JBig2ArithCtx* gbContext, |
| 103 CJBig2_Image *decode_Arith_Template2_opt3(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); | 103 IFX_Pause* pPause); |
| 104 | 104 FXCODEC_STATUS decode_Arith_Template3_unopt( |
| 105 CJBig2_Image *decode_Arith_Template2_unopt(CJBig2_ArithDecoder *pArithDecode
r, JBig2ArithCtx *gbContext); | 105 CJBig2_Image* pImage, |
| 106 | 106 CJBig2_ArithDecoder* pArithDecoder, |
| 107 CJBig2_Image *decode_Arith_Template3_opt(CJBig2_ArithDecoder *pArithDecoder,
JBig2ArithCtx *gbContext); | 107 JBig2ArithCtx* gbContext, |
| 108 | 108 IFX_Pause* pPause); |
| 109 CJBig2_Image *decode_Arith_Template3_opt2(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); | 109 FX_DWORD m_loopIndex; |
| 110 | 110 uint8_t* m_pLine; |
| 111 CJBig2_Image *decode_Arith_Template3_opt3(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); | 111 IFX_Pause* m_pPause; |
| 112 | 112 FXCODEC_STATUS m_ProssiveStatus; |
| 113 CJBig2_Image *decode_Arith_Template3_unopt(CJBig2_ArithDecoder *pArithDecode
r, JBig2ArithCtx *gbContext); | 113 CJBig2_Image** m_pImage; |
| 114 public: | 114 CJBig2_ArithDecoder* m_pArithDecoder; |
| 115 FX_BOOL MMR; | 115 JBig2ArithCtx* m_gbContext; |
| 116 FX_DWORD GBW; | 116 FX_WORD m_DecodeType; |
| 117 FX_DWORD GBH; | 117 FX_BOOL LTP; |
| 118 uint8_t GBTEMPLATE; | 118 FX_RECT m_ReplaceRect; |
| 119 FX_BOOL TPGDON; | 119 |
| 120 FX_BOOL USESKIP; | 120 private: |
| 121 CJBig2_Image * SKIP; | 121 CJBig2_Image* decode_Arith_Template0_opt(CJBig2_ArithDecoder* pArithDecoder, |
| 122 signed char GBAT[8]; | 122 JBig2ArithCtx* gbContext); |
| 123 }; | 123 |
| 124 class CJBig2_GRRDProc : public CJBig2_Object | 124 CJBig2_Image* decode_Arith_Template0_opt2(CJBig2_ArithDecoder* pArithDecoder, |
| 125 { | 125 JBig2ArithCtx* gbContext); |
| 126 public: | 126 |
| 127 | 127 CJBig2_Image* decode_Arith_Template0_opt3(CJBig2_ArithDecoder* pArithDecoder, |
| 128 CJBig2_Image *decode(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *grCo
ntext); | 128 JBig2ArithCtx* gbContext); |
| 129 | 129 |
| 130 CJBig2_Image *decode_Template0_unopt(CJBig2_ArithDecoder *pArithDecoder, JBi
g2ArithCtx *grContext); | 130 CJBig2_Image* decode_Arith_Template0_unopt(CJBig2_ArithDecoder* pArithDecoder, |
| 131 | 131 JBig2ArithCtx* gbContext); |
| 132 CJBig2_Image *decode_Template0_opt(CJBig2_ArithDecoder *pArithDecoder, JBig2
ArithCtx *grContext); | 132 |
| 133 | 133 CJBig2_Image* decode_Arith_Template1_opt(CJBig2_ArithDecoder* pArithDecoder, |
| 134 CJBig2_Image *decode_Template1_unopt(CJBig2_ArithDecoder *pArithDecoder, JBi
g2ArithCtx *grContext); | 134 JBig2ArithCtx* gbContext); |
| 135 | 135 |
| 136 CJBig2_Image *decode_Template1_opt(CJBig2_ArithDecoder *pArithDecoder, JBig2
ArithCtx *grContext); | 136 CJBig2_Image* decode_Arith_Template1_opt2(CJBig2_ArithDecoder* pArithDecoder, |
| 137 | 137 JBig2ArithCtx* gbContext); |
| 138 CJBig2_Image *decode_V1(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *g
rContext); | 138 |
| 139 public: | 139 CJBig2_Image* decode_Arith_Template1_opt3(CJBig2_ArithDecoder* pArithDecoder, |
| 140 FX_DWORD GRW; | 140 JBig2ArithCtx* gbContext); |
| 141 FX_DWORD GRH; | 141 |
| 142 FX_BOOL GRTEMPLATE; | 142 CJBig2_Image* decode_Arith_Template1_unopt(CJBig2_ArithDecoder* pArithDecoder, |
| 143 CJBig2_Image *GRREFERENCE; | 143 JBig2ArithCtx* gbContext); |
| 144 int32_t GRREFERENCEDX; | 144 |
| 145 int32_t GRREFERENCEDY; | 145 CJBig2_Image* decode_Arith_Template2_opt(CJBig2_ArithDecoder* pArithDecoder, |
| 146 FX_BOOL TPGRON; | 146 JBig2ArithCtx* gbContext); |
| 147 signed char GRAT[4]; | 147 |
| 148 CJBig2_Image* decode_Arith_Template2_opt2(CJBig2_ArithDecoder* pArithDecoder, |
| 149 JBig2ArithCtx* gbContext); |
| 150 |
| 151 CJBig2_Image* decode_Arith_Template2_opt3(CJBig2_ArithDecoder* pArithDecoder, |
| 152 JBig2ArithCtx* gbContext); |
| 153 |
| 154 CJBig2_Image* decode_Arith_Template2_unopt(CJBig2_ArithDecoder* pArithDecoder, |
| 155 JBig2ArithCtx* gbContext); |
| 156 |
| 157 CJBig2_Image* decode_Arith_Template3_opt(CJBig2_ArithDecoder* pArithDecoder, |
| 158 JBig2ArithCtx* gbContext); |
| 159 |
| 160 CJBig2_Image* decode_Arith_Template3_opt2(CJBig2_ArithDecoder* pArithDecoder, |
| 161 JBig2ArithCtx* gbContext); |
| 162 |
| 163 CJBig2_Image* decode_Arith_Template3_opt3(CJBig2_ArithDecoder* pArithDecoder, |
| 164 JBig2ArithCtx* gbContext); |
| 165 |
| 166 CJBig2_Image* decode_Arith_Template3_unopt(CJBig2_ArithDecoder* pArithDecoder, |
| 167 JBig2ArithCtx* gbContext); |
| 168 |
| 169 public: |
| 170 FX_BOOL MMR; |
| 171 FX_DWORD GBW; |
| 172 FX_DWORD GBH; |
| 173 uint8_t GBTEMPLATE; |
| 174 FX_BOOL TPGDON; |
| 175 FX_BOOL USESKIP; |
| 176 CJBig2_Image* SKIP; |
| 177 signed char GBAT[8]; |
| 178 }; |
| 179 class CJBig2_GRRDProc : public CJBig2_Object { |
| 180 public: |
| 181 CJBig2_Image* decode(CJBig2_ArithDecoder* pArithDecoder, |
| 182 JBig2ArithCtx* grContext); |
| 183 |
| 184 CJBig2_Image* decode_Template0_unopt(CJBig2_ArithDecoder* pArithDecoder, |
| 185 JBig2ArithCtx* grContext); |
| 186 |
| 187 CJBig2_Image* decode_Template0_opt(CJBig2_ArithDecoder* pArithDecoder, |
| 188 JBig2ArithCtx* grContext); |
| 189 |
| 190 CJBig2_Image* decode_Template1_unopt(CJBig2_ArithDecoder* pArithDecoder, |
| 191 JBig2ArithCtx* grContext); |
| 192 |
| 193 CJBig2_Image* decode_Template1_opt(CJBig2_ArithDecoder* pArithDecoder, |
| 194 JBig2ArithCtx* grContext); |
| 195 |
| 196 CJBig2_Image* decode_V1(CJBig2_ArithDecoder* pArithDecoder, |
| 197 JBig2ArithCtx* grContext); |
| 198 |
| 199 public: |
| 200 FX_DWORD GRW; |
| 201 FX_DWORD GRH; |
| 202 FX_BOOL GRTEMPLATE; |
| 203 CJBig2_Image* GRREFERENCE; |
| 204 int32_t GRREFERENCEDX; |
| 205 int32_t GRREFERENCEDY; |
| 206 FX_BOOL TPGRON; |
| 207 signed char GRAT[4]; |
| 148 }; | 208 }; |
| 149 typedef struct { | 209 typedef struct { |
| 150 CJBig2_ArithIntDecoder *IADT, | 210 CJBig2_ArithIntDecoder *IADT, *IAFS, *IADS, *IAIT, *IARI, *IARDW, *IARDH, |
| 151 *IAFS, | 211 *IARDX, *IARDY; |
| 152 *IADS, | 212 CJBig2_ArithIaidDecoder* IAID; |
| 153 *IAIT, | |
| 154 *IARI, | |
| 155 *IARDW, | |
| 156 *IARDH, | |
| 157 *IARDX, | |
| 158 *IARDY; | |
| 159 CJBig2_ArithIaidDecoder *IAID; | |
| 160 } JBig2IntDecoderState; | 213 } JBig2IntDecoderState; |
| 161 class CJBig2_TRDProc : public CJBig2_Object | 214 class CJBig2_TRDProc : public CJBig2_Object { |
| 162 { | 215 public: |
| 163 public: | 216 CJBig2_Image* decode_Huffman(CJBig2_BitStream* pStream, |
| 164 | 217 JBig2ArithCtx* grContext); |
| 165 CJBig2_Image *decode_Huffman(CJBig2_BitStream *pStream, JBig2ArithCtx *grCon
text); | 218 |
| 166 | 219 CJBig2_Image* decode_Arith(CJBig2_ArithDecoder* pArithDecoder, |
| 167 CJBig2_Image *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx
*grContext, | 220 JBig2ArithCtx* grContext, |
| 168 JBig2IntDecoderState *pIDS = NULL); | 221 JBig2IntDecoderState* pIDS = NULL); |
| 169 public: | 222 |
| 170 FX_BOOL SBHUFF; | 223 public: |
| 171 FX_BOOL SBREFINE; | 224 FX_BOOL SBHUFF; |
| 172 FX_DWORD SBW; | 225 FX_BOOL SBREFINE; |
| 173 FX_DWORD SBH; | 226 FX_DWORD SBW; |
| 174 FX_DWORD SBNUMINSTANCES; | 227 FX_DWORD SBH; |
| 175 FX_DWORD SBSTRIPS; | 228 FX_DWORD SBNUMINSTANCES; |
| 176 FX_DWORD SBNUMSYMS; | 229 FX_DWORD SBSTRIPS; |
| 177 | 230 FX_DWORD SBNUMSYMS; |
| 178 JBig2HuffmanCode *SBSYMCODES; | 231 |
| 179 uint8_t SBSYMCODELEN; | 232 JBig2HuffmanCode* SBSYMCODES; |
| 180 | 233 uint8_t SBSYMCODELEN; |
| 181 CJBig2_Image **SBSYMS; | 234 |
| 182 FX_BOOL SBDEFPIXEL; | 235 CJBig2_Image** SBSYMS; |
| 183 | 236 FX_BOOL SBDEFPIXEL; |
| 184 JBig2ComposeOp SBCOMBOP; | 237 |
| 185 FX_BOOL TRANSPOSED; | 238 JBig2ComposeOp SBCOMBOP; |
| 186 | 239 FX_BOOL TRANSPOSED; |
| 187 JBig2Corner REFCORNER; | 240 |
| 188 signed char SBDSOFFSET; | 241 JBig2Corner REFCORNER; |
| 189 CJBig2_HuffmanTable *SBHUFFFS, | 242 signed char SBDSOFFSET; |
| 190 *SBHUFFDS, | 243 CJBig2_HuffmanTable *SBHUFFFS, *SBHUFFDS, *SBHUFFDT, *SBHUFFRDW, *SBHUFFRDH, |
| 191 *SBHUFFDT, | 244 *SBHUFFRDX, *SBHUFFRDY, *SBHUFFRSIZE; |
| 192 *SBHUFFRDW, | 245 FX_BOOL SBRTEMPLATE; |
| 193 *SBHUFFRDH, | 246 signed char SBRAT[4]; |
| 194 *SBHUFFRDX, | 247 }; |
| 195 *SBHUFFRDY, | 248 class CJBig2_SDDProc : public CJBig2_Object { |
| 196 *SBHUFFRSIZE; | 249 public: |
| 197 FX_BOOL SBRTEMPLATE; | 250 CJBig2_SymbolDict* decode_Arith(CJBig2_ArithDecoder* pArithDecoder, |
| 198 signed char SBRAT[4]; | 251 JBig2ArithCtx* gbContext, |
| 199 }; | 252 JBig2ArithCtx* grContext); |
| 200 class CJBig2_SDDProc : public CJBig2_Object | 253 |
| 201 { | 254 CJBig2_SymbolDict* decode_Huffman(CJBig2_BitStream* pStream, |
| 202 public: | 255 JBig2ArithCtx* gbContext, |
| 203 | 256 JBig2ArithCtx* grContext, |
| 204 CJBig2_SymbolDict *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2Ari
thCtx *gbContext, JBig2ArithCtx *grContext); | 257 IFX_Pause* pPause); |
| 205 | 258 |
| 206 CJBig2_SymbolDict *decode_Huffman(CJBig2_BitStream *pStream, JBig2ArithCtx *
gbContext, JBig2ArithCtx *grContext, IFX_Pause* pPause); | 259 public: |
| 207 public: | 260 FX_BOOL SDHUFF; |
| 208 FX_BOOL SDHUFF; | 261 FX_BOOL SDREFAGG; |
| 209 FX_BOOL SDREFAGG; | 262 FX_DWORD SDNUMINSYMS; |
| 210 FX_DWORD SDNUMINSYMS; | 263 CJBig2_Image** SDINSYMS; |
| 211 CJBig2_Image ** SDINSYMS; | 264 FX_DWORD SDNUMNEWSYMS; |
| 212 FX_DWORD SDNUMNEWSYMS; | 265 FX_DWORD SDNUMEXSYMS; |
| 213 FX_DWORD SDNUMEXSYMS; | 266 CJBig2_HuffmanTable *SDHUFFDH, *SDHUFFDW, *SDHUFFBMSIZE, *SDHUFFAGGINST; |
| 214 CJBig2_HuffmanTable *SDHUFFDH, | 267 uint8_t SDTEMPLATE; |
| 215 *SDHUFFDW, | 268 signed char SDAT[8]; |
| 216 *SDHUFFBMSIZE, | 269 FX_BOOL SDRTEMPLATE; |
| 217 *SDHUFFAGGINST; | 270 signed char SDRAT[4]; |
| 218 uint8_t SDTEMPLATE; | 271 }; |
| 219 signed char SDAT[8]; | 272 class CJBig2_HTRDProc : public CJBig2_Object { |
| 220 FX_BOOL SDRTEMPLATE; | 273 public: |
| 221 signed char SDRAT[4]; | 274 CJBig2_Image* decode_Arith(CJBig2_ArithDecoder* pArithDecoder, |
| 222 }; | 275 JBig2ArithCtx* gbContext, |
| 223 class CJBig2_HTRDProc : public CJBig2_Object | 276 IFX_Pause* pPause); |
| 224 { | 277 |
| 225 public: | 278 CJBig2_Image* decode_MMR(CJBig2_BitStream* pStream, IFX_Pause* pPause); |
| 226 | 279 |
| 227 CJBig2_Image *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx
*gbContext, IFX_Pause* pPause); | 280 public: |
| 228 | 281 FX_DWORD HBW, HBH; |
| 229 CJBig2_Image *decode_MMR(CJBig2_BitStream *pStream, IFX_Pause* pPause); | 282 FX_BOOL HMMR; |
| 230 public: | 283 uint8_t HTEMPLATE; |
| 231 FX_DWORD HBW, | 284 FX_DWORD HNUMPATS; |
| 232 HBH; | 285 CJBig2_Image** HPATS; |
| 233 FX_BOOL HMMR; | 286 FX_BOOL HDEFPIXEL; |
| 234 uint8_t HTEMPLATE; | 287 JBig2ComposeOp HCOMBOP; |
| 235 FX_DWORD HNUMPATS; | 288 FX_BOOL HENABLESKIP; |
| 236 CJBig2_Image **HPATS; | 289 FX_DWORD HGW, HGH; |
| 237 FX_BOOL HDEFPIXEL; | 290 int32_t HGX, HGY; |
| 238 JBig2ComposeOp HCOMBOP; | 291 FX_WORD HRX, HRY; |
| 239 FX_BOOL HENABLESKIP; | 292 uint8_t HPW, HPH; |
| 240 FX_DWORD HGW, | 293 }; |
| 241 HGH; | 294 class CJBig2_PDDProc : public CJBig2_Object { |
| 242 int32_t HGX, | 295 public: |
| 243 HGY; | 296 CJBig2_PatternDict* decode_Arith(CJBig2_ArithDecoder* pArithDecoder, |
| 244 FX_WORD HRX, | 297 JBig2ArithCtx* gbContext, |
| 245 HRY; | 298 IFX_Pause* pPause); |
| 246 uint8_t HPW, | 299 |
| 247 HPH; | 300 CJBig2_PatternDict* decode_MMR(CJBig2_BitStream* pStream, IFX_Pause* pPause); |
| 248 }; | 301 |
| 249 class CJBig2_PDDProc : public CJBig2_Object | 302 public: |
| 250 { | 303 FX_BOOL HDMMR; |
| 251 public: | 304 uint8_t HDPW, HDPH; |
| 252 | 305 FX_DWORD GRAYMAX; |
| 253 CJBig2_PatternDict *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2Ar
ithCtx *gbContext, IFX_Pause* pPause); | 306 uint8_t HDTEMPLATE; |
| 254 | 307 }; |
| 255 CJBig2_PatternDict *decode_MMR(CJBig2_BitStream *pStream, IFX_Pause* pPause)
; | 308 class CJBig2_GSIDProc : public CJBig2_Object { |
| 256 public: | 309 public: |
| 257 FX_BOOL HDMMR; | 310 FX_DWORD* decode_Arith(CJBig2_ArithDecoder* pArithDecoder, |
| 258 uint8_t HDPW, | 311 JBig2ArithCtx* gbContext, |
| 259 HDPH; | 312 IFX_Pause* pPause); |
| 260 FX_DWORD GRAYMAX; | 313 |
| 261 uint8_t HDTEMPLATE; | 314 FX_DWORD* decode_MMR(CJBig2_BitStream* pStream, IFX_Pause* pPause); |
| 262 }; | 315 |
| 263 class CJBig2_GSIDProc : public CJBig2_Object | 316 public: |
| 264 { | 317 FX_BOOL GSMMR; |
| 265 public: | 318 FX_BOOL GSUSESKIP; |
| 266 | 319 uint8_t GSBPP; |
| 267 FX_DWORD *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *gb
Context, IFX_Pause* pPause); | 320 FX_DWORD GSW, GSH; |
| 268 | 321 uint8_t GSTEMPLATE; |
| 269 FX_DWORD *decode_MMR(CJBig2_BitStream *pStream, IFX_Pause* pPause); | 322 CJBig2_Image* GSKIP; |
| 270 public: | |
| 271 FX_BOOL GSMMR; | |
| 272 FX_BOOL GSUSESKIP; | |
| 273 uint8_t GSBPP; | |
| 274 FX_DWORD GSW, | |
| 275 GSH; | |
| 276 uint8_t GSTEMPLATE; | |
| 277 CJBig2_Image *GSKIP; | |
| 278 }; | 323 }; |
| 279 #endif | 324 #endif |
| OLD | NEW |