...

Package arithmetic

Overview ▾

Package arithmetic provides jbig2 arithmetic encoder definitions.

type Class

Class is the arithmetic encoding context class.

type Class int

Enumerated definitions for the encoding classes.

const (
    // IAAI used to decode number of symbol instances in an aggregation.
    IAAI Class = iota
    // IADH used to decode difference in height between two height classes.
    IADH
    // IADS used to decode the S coordinate of the second and subsequent
    // symbol instances in a strip.
    IADS
    // IADT used to decode the T coordinate of the second and subsequent
    // symbol instances in a strip.
    IADT
    // IADW used to decode the difference in width between two symbols in
    // a height class
    IADW
    // IAEX used to decode export flags.
    IAEX
    // IAFS used to decode the S coordinate of the first symbol instance
    // in a strip.
    IAFS
    // IAIT used to decode the T coordinate of the symbol instances in a strip.
    IAIT
    // IARDH used to decode the delta height of symbol instance refinements.
    IARDH
    // IARDW used to decode the delta width of symbol instance refinements.
    IARDW
    // IARDX used to decode the delta X position of symbol instance refinements.
    IARDX
    // IARDY used to decode the delta Y position of symbol instance refinements.
    IARDY
    // IARI used to decode the Ri bit of symbol instances.
    IARI
)

func (Class) String

func (c Class) String() string

String implements fmt.Stringer interface.

type Encoder

Encoder is the jbig2 arithmetic encoder context.

type Encoder struct {
    // contains filtered or unexported fields
}

func New

func New() *Encoder

New creates new initialized arithmetic encoder.

func (*Encoder) DataSize

func (e *Encoder) DataSize() int

DataSize returns the size of encoded data

func (*Encoder) EncodeBitmap

func (e *Encoder) EncodeBitmap(bm *bitmap.Bitmap, duplicateLineRemoval bool) error

EncodeBitmap encodes packed data used for the 1bpp packed format image.

func (*Encoder) EncodeIAID

func (e *Encoder) EncodeIAID(symbolCodeLength, value int) (err error)

EncodeIAID encodes the integer ID 'value'. The symbol code length is the binary length of the value.

func (*Encoder) EncodeInteger

func (e *Encoder) EncodeInteger(proc Class, value int) (err error)

EncodeInteger encodes the integer 'value' for the given class 'proc'.

func (*Encoder) EncodeOOB

func (e *Encoder) EncodeOOB(proc Class) (err error)

EncodeOOB encodes out of band value for given class process.

func (*Encoder) Final

func (e *Encoder) Final()

Final flush any remaining arithmetic encoder context to the output

func (*Encoder) Flush

func (e *Encoder) Flush()

Flush all the data stored in a context

func (*Encoder) Init

func (e *Encoder) Init()

Init initializes a new context.

func (*Encoder) Refine

func (e *Encoder) Refine(iTemp, iTarget *bitmap.Bitmap, ox, oy int) error

Refine encodes the refinement of an exemplar to a bitmap. It encodes the differences between the template and the target image. The values 'ox, oy' are limited to [-1, 0, 1].

func (*Encoder) Reset

func (e *Encoder) Reset()

Reset the arithmetic coder back to a init state

func (*Encoder) WriteTo

func (e *Encoder) WriteTo(w io.Writer) (int64, error)

WriteTo implements io.WriterTo interface.