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 |