cz.cuni.jagrlib.piece
Class DCT

java.lang.Object
  extended by cz.cuni.jagrlib.DefaultProperty
      extended by cz.cuni.jagrlib.Piece
          extended by cz.cuni.jagrlib.DefaultDiscreteTransform
              extended by cz.cuni.jagrlib.piece.DCT
All Implemented Interfaces:
Breakable, DiscreteTransform, PersistentParamsBinary, Property, Template

public class DCT
extends DefaultDiscreteTransform

Discrete cosine transform (can process 1D or 2D data of arbitrary size).

Since:
0.25
See Also:
DCT.java

Field Summary
protected  double[][] base
          Transform bases for last computed transform sizes (accelerator).
protected  int last
          Last cache to be recycled (0 or 1.
protected  int[] len
          Last computed transform sizes (accelerator).
static RegPiece reg
          Static registration instance for this class.
protected  double[] tmpD
          Temporary array for in-place transforms.
 
Fields inherited from class cz.cuni.jagrlib.DefaultDiscreteTransform
CATEGORY, TEMPLATE_NAME
 
Fields inherited from class cz.cuni.jagrlib.Piece
channels, info, pl, plugs, TEMPLATE_TYPE, userBreak
 
Fields inherited from interface cz.cuni.jagrlib.iface.Property
LOGGING, STATISTICS, TEXT_DESCRIPTION
 
Fields inherited from interface cz.cuni.jagrlib.Template
ALL_PLUGS, C_1D, C_2D, C_3D, C_ALPHA, C_BINARY, C_BREP, C_CAMERA, C_CIRCLE, C_CLIP, C_COMPRESSION, C_CURVE, C_DATA, C_DRAW, C_EDITOR, C_ELLIPSE, C_FILL, C_FILTER, C_FLOAT, C_FUNCTION, C_IMAGE, C_INTEGER, C_IO, C_LIGHT, C_LINE, C_METRIC, C_POLYGON, C_PROJECTION, C_RADIOSITY, C_RASTER, C_RENDER, C_SAMPLE, C_SCENE, C_SET, C_SOLID, C_TEXT, C_TRANSFORM, C_VECTOR, C_VIEWER, C_WORKER, CAT_EMPTY, EMPTY, IFACE, JAGRLIB, JAGRLIB2, MANIPULATOR_COMBO, MANIPULATOR_CUSTOM, MANIPULATOR_DEFAULT, MANIPULATOR_MULTILINE, PL_ALPHAMASK, PL_BITMASK, PL_CAUSTIC, PL_CODEC, PL_COLORMAP, PL_COMPARE, PL_DATA, PL_DIRECT, PL_EDITOR, PL_FILTER, PL_FUNCTION, PL_IMAGE, PL_IMPORT, PL_INPUT, PL_INTERSECTION, PL_LIGHTSOURCE, PL_ORDER, PL_OUTPUT, PL_PALETTE, PL_PHOTON, PL_PROPERTY, PL_QUANTIZER, PL_RASTER, PL_RENDER, PL_SHADOW, PL_STREAM, PL_TRANSFORM, PL_TRIGGER, PL_VOLUME, PL_WINDOW, TYPE_BOOLEAN, TYPE_DOUBLE, TYPE_FLOAT, TYPE_INTEGER, TYPE_LONG, TYPE_OBJECT, TYPE_STRING
 
Constructor Summary
DCT()
           
 
Method Summary
protected  double[] assertBase(int l)
          Computes base matrix for the given size.
 boolean getSizeBounds(int[] bounds)
          Get extreme domain (source) ranges.
 int inverse1D(double[] coef, int len, double[] sample, int start)
          Inverse 1D transform (floating-point form).
static int setTemplate(Template t, int ord)
          General-purpose registration routine.
 int transform1D(double[] sample, int start, int len, double[] coef)
          Forward 1D transform (floating-point form).
 
Methods inherited from class cz.cuni.jagrlib.DefaultDiscreteTransform
inverse1D, inverse2D, inverse2D, loadData, storeData, transform1D, transform2D, transform2D
 
Methods inherited from class cz.cuni.jagrlib.Piece
className, connect, findPlug, findPlug, getInfo, getInterface, getInterface, getPlug, getReg, init, isCompatible, isCompatible, isConnected, logError, logWarning, myInterface, newInputPlug, newOptOutputPlug, newOutputPlug, newPlug, noTemplates, propBegin, propBounds, propDefault, propEnd, propEnum, propManipulator, propManipulator, setProgressListener, setRegStrings, setTemplateDynamic, stop
 
Methods inherited from class cz.cuni.jagrlib.DefaultProperty
booleanProperty, booleanProperty, colorDoubleProperty, colorProperty, commit, doubleProperty, doubleProperty, doubleProperty, enumProperty, floatProperty, floatProperty, floatProperty, get, intProperty, intProperty, intProperty, longProperty, longProperty, longProperty, set, set, stringProperty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface cz.cuni.jagrlib.iface.Property
commit, get, set
 

Field Detail

base

protected double[][] base
Transform bases for last computed transform sizes (accelerator).


len

protected int[] len
Last computed transform sizes (accelerator).


last

protected int last
Last cache to be recycled (0 or 1.


tmpD

protected double[] tmpD
Temporary array for in-place transforms.


reg

public static final RegPiece reg
Static registration instance for this class. Automatically initialized in class-loading time.

Constructor Detail

DCT

public DCT()
Method Detail

assertBase

protected double[] assertBase(int l)
Computes base matrix for the given size.


getSizeBounds

public boolean getSizeBounds(int[] bounds)
Get extreme domain (source) ranges.

Specified by:
getSizeBounds in interface DiscreteTransform
Overrides:
getSizeBounds in class DefaultDiscreteTransform
Parameters:
bounds - Pre-allocated array to hold extreme ranges:
bounds[0] .. minimum size in 1st dim,
bounds[1] .. maximum size in 1st dim,
bounds[2] .. minimum size in 2nd dim,
bounds[3] .. maximum size in 2nd dim, etc.
Returns:
true if arbitrary lengths are allowed (even non-powers-ow-two).

transform1D

public int transform1D(double[] sample,
                       int start,
                       int len,
                       double[] coef)
Forward 1D transform (floating-point form). Has to be used if source and/or target data are floating-point!

Specified by:
transform1D in interface DiscreteTransform
Overrides:
transform1D in class DefaultDiscreteTransform
Parameters:
sample - Source array (containing sample data).
start - Starting index of the transformed segment.
len - Source segment length.
coef - Pre-allocated array to hold transformed data (coefficients).
Returns:
Number of coefficients (0 in case of error).
See Also:
inverse1D(double[],int,double[],int), DefaultDiscreteTransform.transform1D(int[],int,int,int[])

inverse1D

public int inverse1D(double[] coef,
                     int len,
                     double[] sample,
                     int start)
Inverse 1D transform (floating-point form). Inverse mapping to transform1D(double[],int,int,double[]).

Specified by:
inverse1D in interface DiscreteTransform
Overrides:
inverse1D in class DefaultDiscreteTransform
Parameters:
coef - Source array (holding coefficients).
len - Number of coefficients.
sample - Pre-allocated array to hold reconstructed sample data.
start - Starting index of the reconstructed sample data.
Returns:
Sample data length (0 in case of error).
See Also:
transform1D(double[],int,int,double[]), DefaultDiscreteTransform.inverse1D(int[],int,int[],int)

setTemplate

public static int setTemplate(Template t,
                              int ord)
General-purpose registration routine. Sets all plugs, strings, etc. to the given Template.