com.lizardtech.djvu
Class JB2Codec

java.lang.Object
  extended by com.lizardtech.djvu.DjVuObject
      extended by com.lizardtech.djvu.JB2Codec
All Implemented Interfaces:
DjVuInterface
Direct Known Subclasses:
JB2Decode

public abstract class JB2Codec
extends DjVuObject

DOCUMENT ME!

Version:
$Revision: 1.5 $
Author:
$author$

Field Summary
protected  NumContext abs_loc_x
          DOCUMENT ME!
protected  NumContext abs_loc_y
          DOCUMENT ME!
protected  NumContext abs_size_x
          DOCUMENT ME!
protected  NumContext abs_size_y
          DOCUMENT ME!
protected static int BIGNEGATIVE
          DOCUMENT ME!
protected static int BIGPOSITIVE
          DOCUMENT ME!
protected  java.util.Vector bitcells
          DOCUMENT ME!
protected  byte[] bitdist
          DOCUMENT ME!
protected  byte[] cbitdist
          DOCUMENT ME!
protected  NumContext dist_comment_byte
          DOCUMENT ME!
protected  NumContext dist_comment_length
          DOCUMENT ME!
protected  NumContext dist_match_index
          DOCUMENT ME!
protected  NumContext dist_record_type
          DOCUMENT ME!
protected  BitContext dist_refinement_flag
          DOCUMENT ME!
protected static byte END_OF_DATA
          DOCUMENT ME!
protected  boolean gotstartrecordp
          DOCUMENT ME!
protected  int image_columns
          DOCUMENT ME!
protected  int image_rows
          DOCUMENT ME!
protected  NumContext image_size_dist
          DOCUMENT ME!
protected  NumContext inherited_shape_count_dist
          DOCUMENT ME!
protected  int last_bottom
          DOCUMENT ME!
protected  int last_left
          DOCUMENT ME!
protected  int last_right
          DOCUMENT ME!
protected  int last_row_bottom
          DOCUMENT ME!
protected  int last_row_left
          DOCUMENT ME!
protected  java.util.Vector leftcell
          DOCUMENT ME!
protected  java.util.Vector lib2shape
          DOCUMENT ME!
protected  java.util.Vector libinfo
          DOCUMENT ME!
protected static byte MATCHED_COPY
          DOCUMENT ME!
protected static byte MATCHED_REFINE
          DOCUMENT ME!
protected static byte MATCHED_REFINE_IMAGE_ONLY
          DOCUMENT ME!
protected static byte MATCHED_REFINE_LIBRARY_ONLY
          DOCUMENT ME!
protected static java.lang.Integer MINUS_ONE_OBJECT
          DOCUMENT ME!
protected static byte NEW_MARK
          DOCUMENT ME!
protected static byte NEW_MARK_IMAGE_ONLY
          DOCUMENT ME!
protected static byte NEW_MARK_LIBRARY_ONLY
          DOCUMENT ME!
protected static byte NON_MARK_DATA
          DOCUMENT ME!
protected  BitContext offset_type_dist
          DOCUMENT ME!
protected static byte PRESERVED_COMMENT
          DOCUMENT ME!
protected  boolean refinementp
          DOCUMENT ME!
protected  NumContext rel_loc_x_current
          DOCUMENT ME!
protected  NumContext rel_loc_x_last
          DOCUMENT ME!
protected  NumContext rel_loc_y_current
          DOCUMENT ME!
protected  NumContext rel_loc_y_last
          DOCUMENT ME!
protected  NumContext rel_size_x
          DOCUMENT ME!
protected  NumContext rel_size_y
          DOCUMENT ME!
protected static byte REQUIRED_DICT_OR_RESET
          DOCUMENT ME!
protected  java.util.Vector rightcell
          DOCUMENT ME!
protected  java.util.Vector shape2lib
          DOCUMENT ME!
protected  int[] short_list
          DOCUMENT ME!
protected  int short_list_pos
          DOCUMENT ME!
protected static byte START_OF_DATA
          DOCUMENT ME!
 
Fields inherited from class com.lizardtech.djvu.DjVuObject
hasReferences
 
Constructor Summary
protected JB2Codec(boolean encoding)
          Creates a new JB2Codec object.
 
Method Summary
protected  int add_library(int shapeno, com.lizardtech.djvu.JB2Shape jshp)
          DOCUMENT ME!
protected abstract  void code_absolute_location(com.lizardtech.djvu.JB2Blit jblt, int rows, int columns)
          DOCUMENT ME!
protected  void code_absolute_mark_size(GBitmap bm)
          DOCUMENT ME!
protected abstract  void code_absolute_mark_size(GBitmap bm, int border)
          DOCUMENT ME!
protected  void code_bitmap_by_cross_coding(GBitmap bm, GBitmap cbm, int libno)
          DOCUMENT ME!
protected abstract  void code_bitmap_by_cross_coding(GBitmap bm, GBitmap cbm, int xd2c, int dw, int dy, int cy, int up1, int up0, int xup1, int xup0, int xdn1)
          DOCUMENT ME!
protected  void code_bitmap_directly(GBitmap bm)
          DOCUMENT ME!
protected abstract  void code_bitmap_directly(GBitmap bm, int dw, int dy, int up2, int up1, int up0)
          DOCUMENT ME!
protected abstract  java.lang.String code_comment(java.lang.String comment)
          DOCUMENT ME!
protected  void code_eventual_lossless_refinement()
          DOCUMENT ME!
protected  void code_image_size(JB2Dict ignored)
          DOCUMENT ME!
protected  void code_image_size(JB2Image ignored)
          DOCUMENT ME!
protected abstract  void code_inherited_shape_count(JB2Dict jim)
          DOCUMENT ME!
protected abstract  int code_match_index(int index, JB2Dict jim)
          DOCUMENT ME!
protected  int code_record_A(int rectype, JB2Dict jim, com.lizardtech.djvu.JB2Shape xjshp)
          DOCUMENT ME!
protected  int code_record_B(int rectype, JB2Image jim, com.lizardtech.djvu.JB2Shape xjshp, com.lizardtech.djvu.JB2Blit xjblt)
          DOCUMENT ME!
protected abstract  int code_record_type(int rectype)
          DOCUMENT ME!
protected  void code_relative_location(com.lizardtech.djvu.JB2Blit jblt, int rows, int columns)
          DOCUMENT ME!
protected  void code_relative_mark_size(GBitmap bm, int cw, int ch)
          DOCUMENT ME!
protected abstract  void code_relative_mark_size(GBitmap bm, int cw, int ch, int border)
          DOCUMENT ME!
protected abstract  boolean codeBit(boolean bit, BitContext ctx)
          DOCUMENT ME!
protected abstract  int codeBit(boolean bit, byte[] array, int offset)
          DOCUMENT ME!
protected  int codeNum(int low, int high, NumContext ctx, int v)
          DOCUMENT ME!
protected  void fill_short_list(int v)
          DOCUMENT ME!
protected  int get_cross_context(GBitmap bm, GBitmap cbm, int up1, int up0, int xup1, int xup0, int xdn1, int column)
          DOCUMENT ME!
protected abstract  int get_diff(int ignored, NumContext rel_loc)
          DOCUMENT ME!
protected  int get_direct_context(GBitmap bm, int up2, int up1, int up0, int column)
          DOCUMENT ME!
protected  void init_library(JB2Dict jim)
          DOCUMENT ME!
protected  void reset_numcoder()
          DOCUMENT ME!
protected  void shape2lib(int shapeno, java.lang.Number libno)
          DOCUMENT ME!
protected  int shift_cross_context(GBitmap bm, GBitmap cbm, int context, int n, int up1, int up0, int xup1, int xup0, int xdn1, int column)
          DOCUMENT ME!
protected  int shift_direct_context(GBitmap bm, int context, int next, int up2, int up1, int up0, int column)
          DOCUMENT ME!
protected  int update_short_list(int v)
          DOCUMENT ME!
 
Methods inherited from class com.lizardtech.djvu.DjVuObject
checkLockTime, create, create, createSoftReference, createWeakReference, getDjVuOptions, getFromReference, invoke, setDjVuOptions
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BIGPOSITIVE

protected static final int BIGPOSITIVE
DOCUMENT ME!

See Also:
Constant Field Values

BIGNEGATIVE

protected static final int BIGNEGATIVE
DOCUMENT ME!

See Also:
Constant Field Values

START_OF_DATA

protected static final byte START_OF_DATA
DOCUMENT ME!

See Also:
Constant Field Values

NEW_MARK

protected static final byte NEW_MARK
DOCUMENT ME!

See Also:
Constant Field Values

NEW_MARK_LIBRARY_ONLY

protected static final byte NEW_MARK_LIBRARY_ONLY
DOCUMENT ME!

See Also:
Constant Field Values

NEW_MARK_IMAGE_ONLY

protected static final byte NEW_MARK_IMAGE_ONLY
DOCUMENT ME!

See Also:
Constant Field Values

MATCHED_REFINE

protected static final byte MATCHED_REFINE
DOCUMENT ME!

See Also:
Constant Field Values

MATCHED_REFINE_LIBRARY_ONLY

protected static final byte MATCHED_REFINE_LIBRARY_ONLY
DOCUMENT ME!

See Also:
Constant Field Values

MATCHED_REFINE_IMAGE_ONLY

protected static final byte MATCHED_REFINE_IMAGE_ONLY
DOCUMENT ME!

See Also:
Constant Field Values

MATCHED_COPY

protected static final byte MATCHED_COPY
DOCUMENT ME!

See Also:
Constant Field Values

NON_MARK_DATA

protected static final byte NON_MARK_DATA
DOCUMENT ME!

See Also:
Constant Field Values

REQUIRED_DICT_OR_RESET

protected static final byte REQUIRED_DICT_OR_RESET
DOCUMENT ME!

See Also:
Constant Field Values

PRESERVED_COMMENT

protected static final byte PRESERVED_COMMENT
DOCUMENT ME!

See Also:
Constant Field Values

END_OF_DATA

protected static final byte END_OF_DATA
DOCUMENT ME!

See Also:
Constant Field Values

MINUS_ONE_OBJECT

protected static final java.lang.Integer MINUS_ONE_OBJECT
DOCUMENT ME!


dist_refinement_flag

protected final BitContext dist_refinement_flag
DOCUMENT ME!


offset_type_dist

protected final BitContext offset_type_dist
DOCUMENT ME!


abs_loc_x

protected final NumContext abs_loc_x
DOCUMENT ME!


abs_loc_y

protected final NumContext abs_loc_y
DOCUMENT ME!


abs_size_x

protected final NumContext abs_size_x
DOCUMENT ME!


abs_size_y

protected final NumContext abs_size_y
DOCUMENT ME!


dist_comment_byte

protected final NumContext dist_comment_byte
DOCUMENT ME!


dist_comment_length

protected final NumContext dist_comment_length
DOCUMENT ME!


dist_match_index

protected final NumContext dist_match_index
DOCUMENT ME!


dist_record_type

protected final NumContext dist_record_type
DOCUMENT ME!


image_size_dist

protected final NumContext image_size_dist
DOCUMENT ME!


inherited_shape_count_dist

protected final NumContext inherited_shape_count_dist
DOCUMENT ME!


rel_loc_x_current

protected final NumContext rel_loc_x_current
DOCUMENT ME!


rel_loc_x_last

protected final NumContext rel_loc_x_last
DOCUMENT ME!


rel_loc_y_current

protected final NumContext rel_loc_y_current
DOCUMENT ME!


rel_loc_y_last

protected final NumContext rel_loc_y_last
DOCUMENT ME!


rel_size_x

protected final NumContext rel_size_x
DOCUMENT ME!


rel_size_y

protected final NumContext rel_size_y
DOCUMENT ME!


bitcells

protected final java.util.Vector bitcells
DOCUMENT ME!


leftcell

protected final java.util.Vector leftcell
DOCUMENT ME!


lib2shape

protected final java.util.Vector lib2shape
DOCUMENT ME!


libinfo

protected final java.util.Vector libinfo
DOCUMENT ME!


rightcell

protected final java.util.Vector rightcell
DOCUMENT ME!


shape2lib

protected final java.util.Vector shape2lib
DOCUMENT ME!


short_list

protected final int[] short_list
DOCUMENT ME!


bitdist

protected byte[] bitdist
DOCUMENT ME!


cbitdist

protected byte[] cbitdist
DOCUMENT ME!


gotstartrecordp

protected boolean gotstartrecordp
DOCUMENT ME!


refinementp

protected boolean refinementp
DOCUMENT ME!


image_columns

protected int image_columns
DOCUMENT ME!


image_rows

protected int image_rows
DOCUMENT ME!


last_bottom

protected int last_bottom
DOCUMENT ME!


last_left

protected int last_left
DOCUMENT ME!


last_right

protected int last_right
DOCUMENT ME!


last_row_bottom

protected int last_row_bottom
DOCUMENT ME!


last_row_left

protected int last_row_left
DOCUMENT ME!


short_list_pos

protected int short_list_pos
DOCUMENT ME!

Constructor Detail

JB2Codec

protected JB2Codec(boolean encoding)
Creates a new JB2Codec object.

Parameters:
encoding - DOCUMENT ME!
Method Detail

codeNum

protected int codeNum(int low,
                      int high,
                      NumContext ctx,
                      int v)
               throws java.io.IOException
DOCUMENT ME!

Parameters:
low - DOCUMENT ME!
high - DOCUMENT ME!
ctx - DOCUMENT ME!
v - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
java.io.IOException - DOCUMENT ME!
java.lang.ArrayIndexOutOfBoundsException - DOCUMENT ME!

code_absolute_location

protected abstract void code_absolute_location(com.lizardtech.djvu.JB2Blit jblt,
                                               int rows,
                                               int columns)
                                        throws java.io.IOException
DOCUMENT ME!

Parameters:
jblt - DOCUMENT ME!
rows - DOCUMENT ME!
columns - DOCUMENT ME!
Throws:
java.io.IOException

code_bitmap_by_cross_coding

protected abstract void code_bitmap_by_cross_coding(GBitmap bm,
                                                    GBitmap cbm,
                                                    int xd2c,
                                                    int dw,
                                                    int dy,
                                                    int cy,
                                                    int up1,
                                                    int up0,
                                                    int xup1,
                                                    int xup0,
                                                    int xdn1)
                                             throws java.io.IOException
DOCUMENT ME!

Parameters:
bm - DOCUMENT ME!
cbm - DOCUMENT ME!
xd2c - DOCUMENT ME!
dw - DOCUMENT ME!
dy - DOCUMENT ME!
cy - DOCUMENT ME!
up1 - DOCUMENT ME!
up0 - DOCUMENT ME!
xup1 - DOCUMENT ME!
xup0 - DOCUMENT ME!
xdn1 - DOCUMENT ME!
Throws:
java.io.IOException

code_bitmap_directly

protected abstract void code_bitmap_directly(GBitmap bm,
                                             int dw,
                                             int dy,
                                             int up2,
                                             int up1,
                                             int up0)
                                      throws java.io.IOException
DOCUMENT ME!

Parameters:
bm - DOCUMENT ME!
dw - DOCUMENT ME!
dy - DOCUMENT ME!
up2 - DOCUMENT ME!
up1 - DOCUMENT ME!
up0 - DOCUMENT ME!
Throws:
java.io.IOException

code_eventual_lossless_refinement

protected void code_eventual_lossless_refinement()
                                          throws java.io.IOException
DOCUMENT ME!

Throws:
java.io.IOException - DOCUMENT ME!

code_inherited_shape_count

protected abstract void code_inherited_shape_count(JB2Dict jim)
                                            throws java.io.IOException
DOCUMENT ME!

Parameters:
jim - DOCUMENT ME!
Throws:
java.io.IOException

code_absolute_mark_size

protected final void code_absolute_mark_size(GBitmap bm)
                                      throws java.io.IOException
DOCUMENT ME!

Parameters:
bm - DOCUMENT ME!
Throws:
java.io.IOException - DOCUMENT ME!

code_absolute_mark_size

protected abstract void code_absolute_mark_size(GBitmap bm,
                                                int border)
                                         throws java.io.IOException
DOCUMENT ME!

Parameters:
bm - DOCUMENT ME!
border - DOCUMENT ME!
Throws:
java.io.IOException

code_image_size

protected void code_image_size(JB2Dict ignored)
                        throws java.io.IOException
DOCUMENT ME!

Parameters:
ignored - DOCUMENT ME!
Throws:
java.io.IOException - DOCUMENT ME!

code_image_size

protected void code_image_size(JB2Image ignored)
                        throws java.io.IOException
DOCUMENT ME!

Parameters:
ignored - DOCUMENT ME!
Throws:
java.io.IOException - DOCUMENT ME!

code_record_A

protected int code_record_A(int rectype,
                            JB2Dict jim,
                            com.lizardtech.djvu.JB2Shape xjshp)
                     throws java.io.IOException
DOCUMENT ME!

Parameters:
rectype - DOCUMENT ME!
jim - DOCUMENT ME!
xjshp - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
java.io.IOException - DOCUMENT ME!
java.lang.IllegalArgumentException - DOCUMENT ME!

code_record_B

protected int code_record_B(int rectype,
                            JB2Image jim,
                            com.lizardtech.djvu.JB2Shape xjshp,
                            com.lizardtech.djvu.JB2Blit xjblt)
                     throws java.io.IOException
DOCUMENT ME!

Parameters:
rectype - DOCUMENT ME!
jim - DOCUMENT ME!
xjshp - DOCUMENT ME!
xjblt - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
java.io.IOException - DOCUMENT ME!
java.lang.IllegalArgumentException - DOCUMENT ME!

code_relative_mark_size

protected final void code_relative_mark_size(GBitmap bm,
                                             int cw,
                                             int ch)
                                      throws java.io.IOException
DOCUMENT ME!

Parameters:
bm - DOCUMENT ME!
cw - DOCUMENT ME!
ch - DOCUMENT ME!
Throws:
java.io.IOException - DOCUMENT ME!

fill_short_list

protected final void fill_short_list(int v)
DOCUMENT ME!

Parameters:
v - DOCUMENT ME!

get_cross_context

protected final int get_cross_context(GBitmap bm,
                                      GBitmap cbm,
                                      int up1,
                                      int up0,
                                      int xup1,
                                      int xup0,
                                      int xdn1,
                                      int column)
DOCUMENT ME!

Parameters:
bm - DOCUMENT ME!
cbm - DOCUMENT ME!
up1 - DOCUMENT ME!
up0 - DOCUMENT ME!
xup1 - DOCUMENT ME!
xup0 - DOCUMENT ME!
xdn1 - DOCUMENT ME!
column - DOCUMENT ME!
Returns:
DOCUMENT ME!

get_direct_context

protected final int get_direct_context(GBitmap bm,
                                       int up2,
                                       int up1,
                                       int up0,
                                       int column)
DOCUMENT ME!

Parameters:
bm - DOCUMENT ME!
up2 - DOCUMENT ME!
up1 - DOCUMENT ME!
up0 - DOCUMENT ME!
column - DOCUMENT ME!
Returns:
DOCUMENT ME!

code_relative_mark_size

protected abstract void code_relative_mark_size(GBitmap bm,
                                                int cw,
                                                int ch,
                                                int border)
                                         throws java.io.IOException
DOCUMENT ME!

Parameters:
bm - DOCUMENT ME!
cw - DOCUMENT ME!
ch - DOCUMENT ME!
border - DOCUMENT ME!
Throws:
java.io.IOException

get_diff

protected abstract int get_diff(int ignored,
                                NumContext rel_loc)
                         throws java.io.IOException
DOCUMENT ME!

Parameters:
ignored - DOCUMENT ME!
rel_loc - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
java.io.IOException

add_library

protected int add_library(int shapeno,
                          com.lizardtech.djvu.JB2Shape jshp)
DOCUMENT ME!

Parameters:
shapeno - DOCUMENT ME!
jshp - DOCUMENT ME!
Returns:
DOCUMENT ME!

reset_numcoder

protected void reset_numcoder()
DOCUMENT ME!


shape2lib

protected final void shape2lib(int shapeno,
                               java.lang.Number libno)
DOCUMENT ME!

Parameters:
shapeno - DOCUMENT ME!
libno - DOCUMENT ME!

shift_cross_context

protected final int shift_cross_context(GBitmap bm,
                                        GBitmap cbm,
                                        int context,
                                        int n,
                                        int up1,
                                        int up0,
                                        int xup1,
                                        int xup0,
                                        int xdn1,
                                        int column)
DOCUMENT ME!

Parameters:
bm - DOCUMENT ME!
cbm - DOCUMENT ME!
context - DOCUMENT ME!
n - DOCUMENT ME!
up1 - DOCUMENT ME!
up0 - DOCUMENT ME!
xup1 - DOCUMENT ME!
xup0 - DOCUMENT ME!
xdn1 - DOCUMENT ME!
column - DOCUMENT ME!
Returns:
DOCUMENT ME!

shift_direct_context

protected final int shift_direct_context(GBitmap bm,
                                         int context,
                                         int next,
                                         int up2,
                                         int up1,
                                         int up0,
                                         int column)
DOCUMENT ME!

Parameters:
bm - DOCUMENT ME!
context - DOCUMENT ME!
next - DOCUMENT ME!
up2 - DOCUMENT ME!
up1 - DOCUMENT ME!
up0 - DOCUMENT ME!
column - DOCUMENT ME!
Returns:
DOCUMENT ME!

codeBit

protected abstract boolean codeBit(boolean bit,
                                   BitContext ctx)
                            throws java.io.IOException
DOCUMENT ME!

Parameters:
bit - DOCUMENT ME!
ctx - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
java.io.IOException

codeBit

protected abstract int codeBit(boolean bit,
                               byte[] array,
                               int offset)
                        throws java.io.IOException
DOCUMENT ME!

Parameters:
bit - DOCUMENT ME!
array - DOCUMENT ME!
offset - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
java.io.IOException

code_comment

protected abstract java.lang.String code_comment(java.lang.String comment)
                                          throws java.io.IOException
DOCUMENT ME!

Parameters:
comment - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
java.io.IOException

code_match_index

protected abstract int code_match_index(int index,
                                        JB2Dict jim)
                                 throws java.io.IOException
DOCUMENT ME!

Parameters:
index - DOCUMENT ME!
jim - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
java.io.IOException

code_record_type

protected abstract int code_record_type(int rectype)
                                 throws java.io.IOException
DOCUMENT ME!

Parameters:
rectype - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
java.io.IOException

code_bitmap_by_cross_coding

protected void code_bitmap_by_cross_coding(GBitmap bm,
                                           GBitmap cbm,
                                           int libno)
                                    throws java.io.IOException
DOCUMENT ME!

Parameters:
bm - DOCUMENT ME!
cbm - DOCUMENT ME!
libno - DOCUMENT ME!
Throws:
java.io.IOException - DOCUMENT ME!

code_bitmap_directly

protected void code_bitmap_directly(GBitmap bm)
                             throws java.io.IOException
DOCUMENT ME!

Parameters:
bm - DOCUMENT ME!
Throws:
java.io.IOException - DOCUMENT ME!

code_relative_location

protected void code_relative_location(com.lizardtech.djvu.JB2Blit jblt,
                                      int rows,
                                      int columns)
                               throws java.io.IOException
DOCUMENT ME!

Parameters:
jblt - DOCUMENT ME!
rows - DOCUMENT ME!
columns - DOCUMENT ME!
Throws:
java.io.IOException - DOCUMENT ME!
java.lang.IllegalStateException - DOCUMENT ME!

init_library

protected void init_library(JB2Dict jim)
DOCUMENT ME!

Parameters:
jim - DOCUMENT ME!

update_short_list

protected int update_short_list(int v)
DOCUMENT ME!

Parameters:
v - DOCUMENT ME!
Returns:
DOCUMENT ME!