FILEJBIG2OPTIONS (original) (raw)
Summary
The FILEJBIG2OPTIONS structure provides information for saving JBIG2 files.
Syntax
Members
uStructSize
Size of this structure in bytes, for versioning. Use the sizeof() operator to calculate this value.
uImageFlags
Flag that indicates whether to use typical prediction (TP) when encoding a non-text area. Possible values are:
Value | Meaning |
---|---|
JBIG2_IMAGE_TPON | [0x0010] Use typical prediction (TP). |
ucImageTemplateType
Value that indicates which template-based arithmetic encoder to use when encoding a non-text area. Possible values are:
Value | Meaning | Template |
---|---|---|
0 | Three lines with a 16-pixel template. | ![]() |
1 | Three lines with a 13-pixel template. | ![]() |
2 | Three lines with a 10-pixel template. | ![]() |
3 | Two lines with a 10-pixel template. | ![]() |
ImageGBATX1
The X location of the adaptive template pixel A1 for a non-text area encoding. Possible values range from -128 to 127 except when the value of the member ImageGBATY1
is zero, in which case it ranges from 128 to 1
ImageGBATY1
The Y location of the adaptive template pixel A1 for a non-text area encoding. Possible values range from -128 to 0.
ImageGBATX2
The X location of the adaptive template pixel A2 for a non-text area encoding. Possible values range from -128 to 127, except when the value of the member ImageGBATY2
is zero, in which case it ranges from 128 to 1.
ImageGBATY2
The Y location of the adaptive template pixel A2 for a non-text area encoding. Possible values range from -128 to 0.
ImageGBATX3
The X location of the adaptive template pixel A3 for a non-text area encoding. Possible values range from -128 to 127, except when the values of the member ImageGBATY3
is zero, in which case it ranges from 128 to -1.
ImageGBATY3
The Y location of the adaptive template pixel A3 for a non-text area encoding. Possible values range from -128 to 0.
ImageGBATX4
The X location of the adaptive template pixel A4 for a non-text area encoding. Possible values range from -128 to 127, except when the value of the member ImageGBATY4
is zero, in which case it ranges from 128 to -1.
ImageGBATY4
The Y location of the adaptive template pixel A4 for a non-text area encoding. Possible values range from -128 to 0.
uImageQFactor
Value that represents the degree of loss in the compression process for a non-text area. The value of 0 means lossless while any other value means lossy. 0 is the default value.
uTextFlags
Flag that indicates whether to keep all dictionary symbols or remove unrepeated symbols from the dictionary. Possible values are:
Value | Meaning |
---|---|
JBIG2_TEXT_REMOVEUNREPEATEDSYM | [0x1000] Remove unrepeated symbols from the dictionary. When this flag is used those symbols in the dictionary, which do not have any match in the bitmap are removed from the text dictionary to be encoded as non-text, resulting in a smaller file size. |
JBIG2_TEXT_KEEPALLSYM | [0x2000] Keep all dictionary symbols. |
ucTextTemplateType
Value that indicates which template-based arithmetic encoder to use when encoding a text area. Possible values are:
Value | Meaning | Template |
---|---|---|
0 | Three lines with a 16-pixel template. | ![]() |
1 | Three lines with a 13-pixel template. | ![]() |
2 | Three lines with a 10-pixel template. | ![]() |
3 | Two lines with a 10-pixel template. | ![]() |
TextGBATX1
The X location of the adaptive template pixel A1 for a text area encoding. Possible values range from -128 to 127 except when the value of the member TextGBATY1
is zero, in which case it ranges from 128 to 1
TextGBATY1
The Y location of the adaptive template pixel A1 for a text area encoding. Possible values range from -128 to 0.
TextGBATX2
The X location of the adaptive template pixel A2 for a text area encoding. Possible values range from -128 to 127, except when the value of the member TextGBATY2
is zero, in which case it ranges from 128 to 1.
TextGBATY2
The Y location of the adaptive template pixel A2 for a text area encoding. Possible values range from -128 to 0.
TextGBATX3
The X location of the adaptive template pixel A3 for a text area encoding. Possible values range from -128 to 127 except when the value of the member TextGBATY3
is zero, in which case it ranges from 128 to -1.
TextGBATY3
The Y location of the adaptive template pixel A3 for a text area encoding. Possible values range from -128 to 0.
TextGBATX4
The X location of the adaptive template pixel A4 for a text area encoding. Possible values range from -128 to 127 except when the value of the member TextGBATY4
is zero, in which case it ranges from 128 to -1.
TextGBATY4
The Y location of the adaptive template pixel A4 for a text area encoding. Possible values range from -128 to 0.
uTextMinSymArea
Value that represents the minimum text symbol area, in pixels.
uTextMinSymWidth
Value that represents the minimum text symbol width, in pixels.
uTextMinSymHeight
Value that represents the minimum text symbol height, in pixels.
uTextMaxSymArea
Value that represents the maximum text symbol area, in pixels.
uTextMaxSymWidth
Value that represents the maximum text symbol width, in pixels.
uTextMaxSymHeight
Value that represents the maximum text symbol height, in pixels.
uTextDifThreshold
Value that represents the maximum difference allowed mapping a text symbol to a dictionary symbol, in percent.
uTextQFactor
Value that represents the degree of the loss in the compression process for a text area. The value of 0 means lossless while any other value means lossy. 0 is the default value.
uXResolution
The bitmap X resolution to be used when setting JBIG2 options.
uYResolution
The bitmap Y resolution to be used when setting JBIG2 options.
uFlags
Flags that indicate whether to remove unwanted JBIG2 segments and whether to use the dictionary for text symbols. You can use a bit-wise OR ( | ) to specify more than one flag. Possible values are:
Value | Meaning |
---|---|
Removing the unwanted JBIG2 segments: | |
JBIG2_REMOVE_MARKER | [0x0001] Remove the two bytes marker from the generic region segment data. |
JBIG2_REMOVE_HEADER_SEGMENT | [0x0002] Remove the JBIG2 header. |
JBIG2_REMOVE_EOP_SEGMENT | [0x0004] Remove the End Of Page segment. |
JBIG2_REMOVE_EOF_SEGMENT | [0x0008] Remove the End Of File segment. |
Using dictionary for text symbols: | |
JBIG2_ENABLE_DICTIONARY | [0x0100] Enable the encoder to use the text symbol dictionary. |
Comments
pFILEJBIG2OPTIONS is a pointer to a FILEJBIG2OPTIONS structure. Where the function parameter type is pFILEJBIG2OPTIONS, declare a FILEJBIG2OPTIONS variable, update the structure's fields, and pass the variable's address in the parameter. Declaring a pFILEJBIG2OPTIONS variable is necessary only if the program requires a pointer.