source: trunk/poppler/mypoppler/poppler/JBIG2Stream.h @ 2

Last change on this file since 2 was 2, checked in by Eugene Romanenko, 16 years ago

First import

File size: 4.3 KB
RevLine 
[2]1//========================================================================
2//
3// JBIG2Stream.h
4//
5// Copyright 2002-2003 Glyph & Cog, LLC
6//
7//========================================================================
8
9#ifndef JBIG2STREAM_H
10#define JBIG2STREAM_H
11
12#ifdef USE_GCC_PRAGMAS
13#pragma interface
14#endif
15
16#include "goo/gtypes.h"
17#include "Object.h"
18#include "Stream.h"
19
20class GooList;
21class JBIG2Segment;
22class JBIG2Bitmap;
23class JArithmeticDecoder;
24class JArithmeticDecoderStats;
25class JBIG2HuffmanDecoder;
26struct JBIG2HuffmanTable;
27class JBIG2MMRDecoder;
28
29//------------------------------------------------------------------------
30
31class JBIG2Stream: public FilterStream {
32public:
33
34  JBIG2Stream(Stream *strA, Object *globalsStream);
35  virtual ~JBIG2Stream();
36  virtual StreamKind getKind() { return strJBIG2; }
37  virtual void reset();
38  virtual int getChar();
39  virtual int lookChar();
40  virtual GooString *getPSFilter(int psLevel, char *indent);
41  virtual GBool isBinary(GBool last = gTrue);
42
43private:
44
45  void readSegments();
46  GBool readSymbolDictSeg(Guint segNum, Guint length,
47                          Guint *refSegs, Guint nRefSegs);
48  void readTextRegionSeg(Guint segNum, GBool imm,
49                         GBool lossless, Guint length,
50                         Guint *refSegs, Guint nRefSegs);
51  JBIG2Bitmap *readTextRegion(GBool huff, GBool refine,
52                              int w, int h,
53                              Guint numInstances,
54                              Guint logStrips,
55                              int numSyms,
56                              JBIG2HuffmanTable *symCodeTab,
57                              Guint symCodeLen,
58                              JBIG2Bitmap **syms,
59                              Guint defPixel, Guint combOp,
60                              Guint transposed, Guint refCorner,
61                              int sOffset,
62                              JBIG2HuffmanTable *huffFSTable,
63                              JBIG2HuffmanTable *huffDSTable,
64                              JBIG2HuffmanTable *huffDTTable,
65                              JBIG2HuffmanTable *huffRDWTable,
66                              JBIG2HuffmanTable *huffRDHTable,
67                              JBIG2HuffmanTable *huffRDXTable,
68                              JBIG2HuffmanTable *huffRDYTable,
69                              JBIG2HuffmanTable *huffRSizeTable,
70                              Guint templ,
71                              int *atx, int *aty);
72  void readPatternDictSeg(Guint segNum, Guint length);
73  void readHalftoneRegionSeg(Guint segNum, GBool imm,
74                             GBool lossless, Guint length,
75                             Guint *refSegs, Guint nRefSegs);
76  void readGenericRegionSeg(Guint segNum, GBool imm,
77                            GBool lossless, Guint length);
78  JBIG2Bitmap *readGenericBitmap(GBool mmr, int w, int h,
79                                 int templ, GBool tpgdOn,
80                                 GBool useSkip, JBIG2Bitmap *skip,
81                                 int *atx, int *aty,
82                                 int mmrDataLength);
83  void readGenericRefinementRegionSeg(Guint segNum, GBool imm,
84                                      GBool lossless, Guint length,
85                                      Guint *refSegs,
86                                      Guint nRefSegs);
87  JBIG2Bitmap *readGenericRefinementRegion(int w, int h,
88                                           int templ, GBool tpgrOn,
89                                           JBIG2Bitmap *refBitmap,
90                                           int refDX, int refDY,
91                                           int *atx, int *aty);
92  void readPageInfoSeg(Guint length);
93  void readEndOfStripeSeg(Guint length);
94  void readProfilesSeg(Guint length);
95  void readCodeTableSeg(Guint segNum, Guint length);
96  void readExtensionSeg(Guint length);
97  JBIG2Segment *findSegment(Guint segNum);
98  void discardSegment(Guint segNum);
99  void resetGenericStats(Guint templ,
100                         JArithmeticDecoderStats *prevStats);
101  void resetRefinementStats(Guint templ,
102                            JArithmeticDecoderStats *prevStats);
103  void resetIntStats(int symCodeLen);
104  GBool readUByte(Guint *x);
105  GBool readByte(int *x);
106  GBool readUWord(Guint *x);
107  GBool readULong(Guint *x);
108  GBool readLong(int *x);
109
110  Guint pageW, pageH, curPageH;
111  Guint pageDefPixel;
112  JBIG2Bitmap *pageBitmap;
113  Guint defCombOp;
114  GooList *segments;            // [JBIG2Segment]
115  GooList *globalSegments;      // [JBIG2Segment]
116  Stream *curStr;
117  Guchar *dataPtr;
118  Guchar *dataEnd;
119
120  JArithmeticDecoder *arithDecoder;
121  JArithmeticDecoderStats *genericRegionStats;
122  JArithmeticDecoderStats *refinementRegionStats;
123  JArithmeticDecoderStats *iadhStats;
124  JArithmeticDecoderStats *iadwStats;
125  JArithmeticDecoderStats *iaexStats;
126  JArithmeticDecoderStats *iaaiStats;
127  JArithmeticDecoderStats *iadtStats;
128  JArithmeticDecoderStats *iaitStats;
129  JArithmeticDecoderStats *iafsStats;
130  JArithmeticDecoderStats *iadsStats;
131  JArithmeticDecoderStats *iardxStats;
132  JArithmeticDecoderStats *iardyStats;
133  JArithmeticDecoderStats *iardwStats;
134  JArithmeticDecoderStats *iardhStats;
135  JArithmeticDecoderStats *iariStats;
136  JArithmeticDecoderStats *iaidStats;
137  JBIG2HuffmanDecoder *huffDecoder;
138  JBIG2MMRDecoder *mmrDecoder;
139};
140
141#endif
Note: See TracBrowser for help on using the repository browser.