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" |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 FXCODEC_STATUS decode_Arith_Template3_opt3(CJBig2_Image *pImage, CJBig2_Arit
hDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause); | 69 FXCODEC_STATUS decode_Arith_Template3_opt3(CJBig2_Image *pImage, CJBig2_Arit
hDecoder *pArithDecoder, JBig2ArithCtx *gbContext, 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_Template3_unopt(CJBig2_Image * pImage, CJBig2_Ar
ithDecoder *pArithDecoder, JBig2ArithCtx *gbContext, IFX_Pause* pPause); |
71 FX_DWORD m_loopIndex; | 71 FX_DWORD m_loopIndex; |
72 uint8_t * m_pLine; | 72 uint8_t * m_pLine; |
73 IFX_Pause* m_pPause; | 73 IFX_Pause* m_pPause; |
74 FXCODEC_STATUS m_ProssiveStatus; | 74 FXCODEC_STATUS m_ProssiveStatus; |
75 CJBig2_Image** m_pImage; | 75 CJBig2_Image** m_pImage; |
76 CJBig2_ArithDecoder *m_pArithDecoder; | 76 CJBig2_ArithDecoder *m_pArithDecoder; |
77 JBig2ArithCtx *m_gbContext; | 77 JBig2ArithCtx *m_gbContext; |
78 FX_WORD m_DecodeType; | 78 FX_WORD m_DecodeType; |
79 FX_BOOL LTP; | 79 bool LTP; |
80 FX_RECT m_ReplaceRect; | 80 FX_RECT m_ReplaceRect; |
81 private: | 81 private: |
82 | 82 |
83 CJBig2_Image *decode_Arith_Template0_opt(CJBig2_ArithDecoder *pArithDecoder,
JBig2ArithCtx *gbContext); | 83 CJBig2_Image *decode_Arith_Template0_opt(CJBig2_ArithDecoder *pArithDecoder,
JBig2ArithCtx *gbContext); |
84 | 84 |
85 CJBig2_Image *decode_Arith_Template0_opt2(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); | 85 CJBig2_Image *decode_Arith_Template0_opt2(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); |
86 | 86 |
87 CJBig2_Image *decode_Arith_Template0_opt3(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); | 87 CJBig2_Image *decode_Arith_Template0_opt3(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); |
88 | 88 |
89 CJBig2_Image *decode_Arith_Template0_unopt(CJBig2_ArithDecoder *pArithDecode
r, JBig2ArithCtx *gbContext); | 89 CJBig2_Image *decode_Arith_Template0_unopt(CJBig2_ArithDecoder *pArithDecode
r, JBig2ArithCtx *gbContext); |
(...skipping 15 matching lines...) Expand all Loading... |
105 CJBig2_Image *decode_Arith_Template2_unopt(CJBig2_ArithDecoder *pArithDecode
r, JBig2ArithCtx *gbContext); | 105 CJBig2_Image *decode_Arith_Template2_unopt(CJBig2_ArithDecoder *pArithDecode
r, JBig2ArithCtx *gbContext); |
106 | 106 |
107 CJBig2_Image *decode_Arith_Template3_opt(CJBig2_ArithDecoder *pArithDecoder,
JBig2ArithCtx *gbContext); | 107 CJBig2_Image *decode_Arith_Template3_opt(CJBig2_ArithDecoder *pArithDecoder,
JBig2ArithCtx *gbContext); |
108 | 108 |
109 CJBig2_Image *decode_Arith_Template3_opt2(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); | 109 CJBig2_Image *decode_Arith_Template3_opt2(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); |
110 | 110 |
111 CJBig2_Image *decode_Arith_Template3_opt3(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); | 111 CJBig2_Image *decode_Arith_Template3_opt3(CJBig2_ArithDecoder *pArithDecoder
, JBig2ArithCtx *gbContext); |
112 | 112 |
113 CJBig2_Image *decode_Arith_Template3_unopt(CJBig2_ArithDecoder *pArithDecode
r, JBig2ArithCtx *gbContext); | 113 CJBig2_Image *decode_Arith_Template3_unopt(CJBig2_ArithDecoder *pArithDecode
r, JBig2ArithCtx *gbContext); |
114 public: | 114 public: |
115 FX_BOOL MMR; | 115 bool MMR; |
116 FX_DWORD GBW; | 116 FX_DWORD GBW; |
117 FX_DWORD GBH; | 117 FX_DWORD GBH; |
118 uint8_t GBTEMPLATE; | 118 uint8_t GBTEMPLATE; |
119 FX_BOOL TPGDON; | 119 bool TPGDON; |
120 FX_BOOL USESKIP; | 120 bool USESKIP; |
121 CJBig2_Image * SKIP; | 121 CJBig2_Image * SKIP; |
122 signed char GBAT[8]; | 122 signed char GBAT[8]; |
123 }; | 123 }; |
124 class CJBig2_GRRDProc : public CJBig2_Object | 124 class CJBig2_GRRDProc : public CJBig2_Object |
125 { | 125 { |
126 public: | 126 public: |
127 | 127 |
128 CJBig2_Image *decode(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *grCo
ntext); | 128 CJBig2_Image *decode(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *grCo
ntext); |
129 | 129 |
130 CJBig2_Image *decode_Template0_unopt(CJBig2_ArithDecoder *pArithDecoder, JBi
g2ArithCtx *grContext); | 130 CJBig2_Image *decode_Template0_unopt(CJBig2_ArithDecoder *pArithDecoder, JBi
g2ArithCtx *grContext); |
131 | 131 |
132 CJBig2_Image *decode_Template0_opt(CJBig2_ArithDecoder *pArithDecoder, JBig2
ArithCtx *grContext); | 132 CJBig2_Image *decode_Template0_opt(CJBig2_ArithDecoder *pArithDecoder, JBig2
ArithCtx *grContext); |
133 | 133 |
134 CJBig2_Image *decode_Template1_unopt(CJBig2_ArithDecoder *pArithDecoder, JBi
g2ArithCtx *grContext); | 134 CJBig2_Image *decode_Template1_unopt(CJBig2_ArithDecoder *pArithDecoder, JBi
g2ArithCtx *grContext); |
135 | 135 |
136 CJBig2_Image *decode_Template1_opt(CJBig2_ArithDecoder *pArithDecoder, JBig2
ArithCtx *grContext); | 136 CJBig2_Image *decode_Template1_opt(CJBig2_ArithDecoder *pArithDecoder, JBig2
ArithCtx *grContext); |
137 | 137 |
138 CJBig2_Image *decode_V1(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *g
rContext); | 138 CJBig2_Image *decode_V1(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *g
rContext); |
139 public: | 139 public: |
140 FX_DWORD GRW; | 140 FX_DWORD GRW; |
141 FX_DWORD GRH; | 141 FX_DWORD GRH; |
142 FX_BOOL GRTEMPLATE; | 142 bool GRTEMPLATE; |
143 CJBig2_Image *GRREFERENCE; | 143 CJBig2_Image *GRREFERENCE; |
144 int32_t GRREFERENCEDX; | 144 int32_t GRREFERENCEDX; |
145 int32_t GRREFERENCEDY; | 145 int32_t GRREFERENCEDY; |
146 FX_BOOL TPGRON; | 146 bool TPGRON; |
147 signed char GRAT[4]; | 147 signed char GRAT[4]; |
148 }; | 148 }; |
149 typedef struct { | 149 typedef struct { |
150 CJBig2_ArithIntDecoder *IADT, | 150 CJBig2_ArithIntDecoder *IADT, |
151 *IAFS, | 151 *IAFS, |
152 *IADS, | 152 *IADS, |
153 *IAIT, | 153 *IAIT, |
154 *IARI, | 154 *IARI, |
155 *IARDW, | 155 *IARDW, |
156 *IARDH, | 156 *IARDH, |
157 *IARDX, | 157 *IARDX, |
158 *IARDY; | 158 *IARDY; |
159 CJBig2_ArithIaidDecoder *IAID; | 159 CJBig2_ArithIaidDecoder *IAID; |
160 } JBig2IntDecoderState; | 160 } JBig2IntDecoderState; |
161 class CJBig2_TRDProc : public CJBig2_Object | 161 class CJBig2_TRDProc : public CJBig2_Object |
162 { | 162 { |
163 public: | 163 public: |
164 | 164 |
165 CJBig2_Image *decode_Huffman(CJBig2_BitStream *pStream, JBig2ArithCtx *grCon
text); | 165 CJBig2_Image *decode_Huffman(CJBig2_BitStream *pStream, JBig2ArithCtx *grCon
text); |
166 | 166 |
167 CJBig2_Image *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx
*grContext, | 167 CJBig2_Image *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx
*grContext, |
168 JBig2IntDecoderState *pIDS = NULL); | 168 JBig2IntDecoderState *pIDS = NULL); |
169 public: | 169 public: |
170 FX_BOOL SBHUFF; | 170 bool SBHUFF; |
171 FX_BOOL SBREFINE; | 171 bool SBREFINE; |
172 FX_DWORD SBW; | 172 FX_DWORD SBW; |
173 FX_DWORD SBH; | 173 FX_DWORD SBH; |
174 FX_DWORD SBNUMINSTANCES; | 174 FX_DWORD SBNUMINSTANCES; |
175 FX_DWORD SBSTRIPS; | 175 FX_DWORD SBSTRIPS; |
176 FX_DWORD SBNUMSYMS; | 176 FX_DWORD SBNUMSYMS; |
177 | 177 |
178 JBig2HuffmanCode *SBSYMCODES; | 178 JBig2HuffmanCode *SBSYMCODES; |
179 uint8_t SBSYMCODELEN; | 179 uint8_t SBSYMCODELEN; |
180 | 180 |
181 CJBig2_Image **SBSYMS; | 181 CJBig2_Image **SBSYMS; |
182 FX_BOOL SBDEFPIXEL; | 182 bool SBDEFPIXEL; |
183 | 183 |
184 JBig2ComposeOp SBCOMBOP; | 184 JBig2ComposeOp SBCOMBOP; |
185 FX_BOOL TRANSPOSED; | 185 bool TRANSPOSED; |
186 | 186 |
187 JBig2Corner REFCORNER; | 187 JBig2Corner REFCORNER; |
188 signed char SBDSOFFSET; | 188 signed char SBDSOFFSET; |
189 CJBig2_HuffmanTable *SBHUFFFS, | 189 CJBig2_HuffmanTable *SBHUFFFS, |
190 *SBHUFFDS, | 190 *SBHUFFDS, |
191 *SBHUFFDT, | 191 *SBHUFFDT, |
192 *SBHUFFRDW, | 192 *SBHUFFRDW, |
193 *SBHUFFRDH, | 193 *SBHUFFRDH, |
194 *SBHUFFRDX, | 194 *SBHUFFRDX, |
195 *SBHUFFRDY, | 195 *SBHUFFRDY, |
196 *SBHUFFRSIZE; | 196 *SBHUFFRSIZE; |
197 FX_BOOL SBRTEMPLATE; | 197 bool SBRTEMPLATE; |
198 signed char SBRAT[4]; | 198 signed char SBRAT[4]; |
199 }; | 199 }; |
200 class CJBig2_SDDProc : public CJBig2_Object | 200 class CJBig2_SDDProc : public CJBig2_Object |
201 { | 201 { |
202 public: | 202 public: |
203 | 203 |
204 CJBig2_SymbolDict *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2Ari
thCtx *gbContext, JBig2ArithCtx *grContext); | 204 CJBig2_SymbolDict *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2Ari
thCtx *gbContext, JBig2ArithCtx *grContext); |
205 | 205 |
206 CJBig2_SymbolDict *decode_Huffman(CJBig2_BitStream *pStream, JBig2ArithCtx *
gbContext, JBig2ArithCtx *grContext, IFX_Pause* pPause); | 206 CJBig2_SymbolDict *decode_Huffman(CJBig2_BitStream *pStream, JBig2ArithCtx *
gbContext, JBig2ArithCtx *grContext, IFX_Pause* pPause); |
207 public: | 207 public: |
208 FX_BOOL SDHUFF; | 208 bool SDHUFF; |
209 FX_BOOL SDREFAGG; | 209 bool SDREFAGG; |
210 FX_DWORD SDNUMINSYMS; | 210 FX_DWORD SDNUMINSYMS; |
211 CJBig2_Image ** SDINSYMS; | 211 CJBig2_Image ** SDINSYMS; |
212 FX_DWORD SDNUMNEWSYMS; | 212 FX_DWORD SDNUMNEWSYMS; |
213 FX_DWORD SDNUMEXSYMS; | 213 FX_DWORD SDNUMEXSYMS; |
214 CJBig2_HuffmanTable *SDHUFFDH, | 214 CJBig2_HuffmanTable *SDHUFFDH, |
215 *SDHUFFDW, | 215 *SDHUFFDW, |
216 *SDHUFFBMSIZE, | 216 *SDHUFFBMSIZE, |
217 *SDHUFFAGGINST; | 217 *SDHUFFAGGINST; |
218 uint8_t SDTEMPLATE; | 218 uint8_t SDTEMPLATE; |
219 signed char SDAT[8]; | 219 signed char SDAT[8]; |
220 FX_BOOL SDRTEMPLATE; | 220 bool SDRTEMPLATE; |
221 signed char SDRAT[4]; | 221 signed char SDRAT[4]; |
222 }; | 222 }; |
223 class CJBig2_HTRDProc : public CJBig2_Object | 223 class CJBig2_HTRDProc : public CJBig2_Object |
224 { | 224 { |
225 public: | 225 public: |
226 | 226 |
227 CJBig2_Image *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx
*gbContext, IFX_Pause* pPause); | 227 CJBig2_Image *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx
*gbContext, IFX_Pause* pPause); |
228 | 228 |
229 CJBig2_Image *decode_MMR(CJBig2_BitStream *pStream, IFX_Pause* pPause); | 229 CJBig2_Image *decode_MMR(CJBig2_BitStream *pStream, IFX_Pause* pPause); |
230 public: | 230 public: |
231 FX_DWORD HBW, | 231 FX_DWORD HBW, |
232 HBH; | 232 HBH; |
233 FX_BOOL HMMR; | 233 bool HMMR; |
234 uint8_t HTEMPLATE; | 234 uint8_t HTEMPLATE; |
235 FX_DWORD HNUMPATS; | 235 FX_DWORD HNUMPATS; |
236 CJBig2_Image **HPATS; | 236 CJBig2_Image **HPATS; |
237 FX_BOOL HDEFPIXEL; | 237 bool HDEFPIXEL; |
238 JBig2ComposeOp HCOMBOP; | 238 JBig2ComposeOp HCOMBOP; |
239 FX_BOOL HENABLESKIP; | 239 bool HENABLESKIP; |
240 FX_DWORD HGW, | 240 FX_DWORD HGW, |
241 HGH; | 241 HGH; |
242 int32_t HGX, | 242 int32_t HGX, |
243 HGY; | 243 HGY; |
244 FX_WORD HRX, | 244 FX_WORD HRX, |
245 HRY; | 245 HRY; |
246 uint8_t HPW, | 246 uint8_t HPW, |
247 HPH; | 247 HPH; |
248 }; | 248 }; |
249 class CJBig2_PDDProc : public CJBig2_Object | 249 class CJBig2_PDDProc : public CJBig2_Object |
250 { | 250 { |
251 public: | 251 public: |
252 | 252 |
253 CJBig2_PatternDict *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2Ar
ithCtx *gbContext, IFX_Pause* pPause); | 253 CJBig2_PatternDict *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2Ar
ithCtx *gbContext, IFX_Pause* pPause); |
254 | 254 |
255 CJBig2_PatternDict *decode_MMR(CJBig2_BitStream *pStream, IFX_Pause* pPause)
; | 255 CJBig2_PatternDict *decode_MMR(CJBig2_BitStream *pStream, IFX_Pause* pPause)
; |
256 public: | 256 public: |
257 FX_BOOL HDMMR; | 257 bool HDMMR; |
258 uint8_t HDPW, | 258 uint8_t HDPW, |
259 HDPH; | 259 HDPH; |
260 FX_DWORD GRAYMAX; | 260 FX_DWORD GRAYMAX; |
261 uint8_t HDTEMPLATE; | 261 uint8_t HDTEMPLATE; |
262 }; | 262 }; |
263 class CJBig2_GSIDProc : public CJBig2_Object | 263 class CJBig2_GSIDProc : public CJBig2_Object |
264 { | 264 { |
265 public: | 265 public: |
266 | 266 |
267 FX_DWORD *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *gb
Context, IFX_Pause* pPause); | 267 FX_DWORD *decode_Arith(CJBig2_ArithDecoder *pArithDecoder, JBig2ArithCtx *gb
Context, IFX_Pause* pPause); |
268 | 268 |
269 FX_DWORD *decode_MMR(CJBig2_BitStream *pStream, IFX_Pause* pPause); | 269 FX_DWORD *decode_MMR(CJBig2_BitStream *pStream, IFX_Pause* pPause); |
270 public: | 270 public: |
271 FX_BOOL GSMMR; | 271 bool GSMMR; |
272 FX_BOOL GSUSESKIP; | 272 bool GSUSESKIP; |
273 uint8_t GSBPP; | 273 uint8_t GSBPP; |
274 FX_DWORD GSW, | 274 FX_DWORD GSW, |
275 GSH; | 275 GSH; |
276 uint8_t GSTEMPLATE; | 276 uint8_t GSTEMPLATE; |
277 CJBig2_Image *GSKIP; | 277 CJBig2_Image *GSKIP; |
278 }; | 278 }; |
279 #endif | 279 #endif |
OLD | NEW |