libdmtx 0.7.8.8
libdmtx is a software library that enables programs to read and write Data Matrix barcodes of the modern ECC200 variety.
Loading...
Searching...
No Matches
dmtxencodeoptimize.c File Reference

libdmtx - Data Matrix Encoding/Decoding Library Copyright 2011 Mike Laughton. More...

#include "dmtx.h"
#include "dmtxstatic.h"

Go to the source code of this file.

Macros

#define DUMPSTREAMS   0
 

Enumerations

enum  SchemeState {
  AsciiFull , AsciiCompactOffset0 , AsciiCompactOffset1 , C40Offset0 ,
  C40Offset1 , C40Offset2 , TextOffset0 , TextOffset1 ,
  TextOffset2 , X12Offset0 , X12Offset1 , X12Offset2 ,
  EdifactOffset0 , EdifactOffset1 , EdifactOffset2 , EdifactOffset3 ,
  Base256 , SchemeStateCount
}
 

Functions

static int encodeOptimizeBest (DmtxByteList *input, DmtxByteList *output, int sizeIdxRequest, int fnc1)
 
static void streamAdvanceFromBest (DmtxEncodeStream *streamsNext, DmtxEncodeStream *streamsBest, int targetState, int sizeIdxRequest)
 It's safe to compare output length because all targetState combinations start on same input and encodes same number of inputs.
 
static void advanceAsciiCompact (DmtxEncodeStream *streamsNext, DmtxEncodeStream *streamsBest, int targetState, int inputNext, int sizeIdxRequest)
 
static void advanceCTX (DmtxEncodeStream *streamsNext, DmtxEncodeStream *streamsBest, int targetState, int inputNext, int ctxValueCount, int sizeIdxRequest)
 
static void advanceEdifact (DmtxEncodeStream *streamsNext, DmtxEncodeStream *streamsBest, int targetState, int inputNext, int sizeIdxRequest)
 
static int getScheme (int state)
 
static DmtxBoolean validStateSwitch (int fromState, int targetState)
 

Detailed Description

libdmtx - Data Matrix Encoding/Decoding Library Copyright 2011 Mike Laughton.

All rights reserved. Copyright 2012-2016 Vadim A. Misbakh-Soloviov. All rights reserved.

See LICENSE file in the main project directory for full terms of use and distribution.

Contact: Vadim A. Misbakh-Soloviov dmtx@.nosp@m.mva..nosp@m.name Mike Laughton mike@.nosp@m.drag.nosp@m.onfly.nosp@m.logi.nosp@m.c.com

Logic for optimized (multiple scheme) encoding

Definition in file dmtxencodeoptimize.c.

Macro Definition Documentation

◆ DUMPSTREAMS

#define DUMPSTREAMS   0

Definition at line 20 of file dmtxencodeoptimize.c.

Enumeration Type Documentation

◆ SchemeState

Enumerator
AsciiFull 
AsciiCompactOffset0 
AsciiCompactOffset1 
C40Offset0 
C40Offset1 
C40Offset2 
TextOffset0 
TextOffset1 
TextOffset2 
X12Offset0 
X12Offset1 
X12Offset2 
EdifactOffset0 
EdifactOffset1 
EdifactOffset2 
EdifactOffset3 
Base256 
SchemeStateCount 

Definition at line 22 of file dmtxencodeoptimize.c.

Function Documentation

◆ advanceAsciiCompact()

static void advanceAsciiCompact ( DmtxEncodeStream * streamsNext,
DmtxEncodeStream * streamsBest,
int targetState,
int inputNext,
int sizeIdxRequest )
static

Definition at line 224 of file dmtxencodeoptimize.c.

◆ advanceCTX()

static void advanceCTX ( DmtxEncodeStream * streamsNext,
DmtxEncodeStream * streamsBest,
int targetState,
int inputNext,
int ctxValueCount,
int sizeIdxRequest )
static

Definition at line 258 of file dmtxencodeoptimize.c.

◆ advanceEdifact()

static void advanceEdifact ( DmtxEncodeStream * streamsNext,
DmtxEncodeStream * streamsBest,
int targetState,
int inputNext,
int sizeIdxRequest )
static

Definition at line 303 of file dmtxencodeoptimize.c.

◆ encodeOptimizeBest()

static int encodeOptimizeBest ( DmtxByteList * input,
DmtxByteList * output,
int sizeIdxRequest,
int fnc1 )
static

Definition at line 80 of file dmtxencodeoptimize.c.

◆ getScheme()

static int getScheme ( int state)
static

Definition at line 348 of file dmtxencodeoptimize.c.

◆ streamAdvanceFromBest()

static void streamAdvanceFromBest ( DmtxEncodeStream * streamsNext,
DmtxEncodeStream * streamsBest,
int targetState,
int sizeIdxRequest )
static

It's safe to compare output length because all targetState combinations start on same input and encodes same number of inputs.

Only difference is the number of latches/unlatches that are also encoded

Definition at line 183 of file dmtxencodeoptimize.c.

◆ validStateSwitch()

static DmtxBoolean validStateSwitch ( int fromState,
int targetState )
static

Definition at line 394 of file dmtxencodeoptimize.c.