arithmetic

package
v0.0.0-...-3d04534 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 10, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package arithmetic provides jbig2 arithmetic encoder definitions.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Class

type Class int

Class is the arithmetic encoding context class.

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
)

Enumerated definitions for the encoding classes.

func (Class) String

func (c Class) String() string

String implements fmt.Stringer interface.

type Encoder

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

Encoder is the jbig2 arithmetic encoder context.

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL