ptolemy.actor.lib.video
Class SumofAbsoluteDifferences
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.actor.lib.video.SumofAbsoluteDifferences
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
public class SumofAbsoluteDifferences
- extends TypedAtomicActor
Calculate the sum of absolute difference(SAD) between two blocks.
Each input block should have two dimensions by rectangle block(16 by 16, 8 by 8, etc.).
The output port will have the result of SAD.
- Since:
- Ptolemy II 8.0
- Version:
- $Id: SumofAbsoluteDifferences.java 57044 2010-01-27 22:41:05Z cxh $
- Author:
- Hwayong Oh
- See Also:
- Serialized Form
- Accepted Rating:
- Proposed Rating:
Fields inherited from class ptolemy.kernel.util.NamedObj |
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Method Summary |
java.lang.Object |
clone(Workspace workspace)
Override the base class to set type constraints on the ports. |
void |
fire()
If there is at least one token on the input ports, add
tokens from the plus port, subtract tokens from the
minus port, and send the result to the
output port. |
void |
preinitialize()
Create receivers. |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, initialize, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, prefire, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate, wrapup |
Methods inherited from class ptolemy.kernel.ComponentEntity |
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName |
Methods inherited from class ptolemy.kernel.Entity |
_description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName |
Methods inherited from class ptolemy.kernel.util.NamedObj |
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeChanged, attributeList, attributeList, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
previousImageBlock
public TypedIOPort previousImageBlock
- Input for tokens to be a part of previous frame. This is a single port, and its
type is 2D array.
currentImageBlock
public TypedIOPort currentImageBlock
- Input for tokens to be a part of current frame. This is a single port, and its
type is 2D array.
sumAbsoluteDifference
public TypedIOPort sumAbsoluteDifference
- Output port. This is a result for calculating sum of absolute differences between
ImgBlockA and ImgBlockB.
The type is inferred form the connections.
blockSize
public Parameter blockSize
- BlockSize parameter. This is given by a number of elements in a block.
Macro Block in
_blockSize
protected int _blockSize
- Description of the variable.
SumofAbsoluteDifferences
public SumofAbsoluteDifferences(CompositeEntity container,
java.lang.String name)
throws IllegalActionException,
NameDuplicationException
- Construct an actor in the specified container with the specified
name.
- Parameters:
container
- The container.name
- The name of this adder within the container.
- Throws:
IllegalActionException
- If the actor cannot be contained
by the proposed container.
NameDuplicationException
- If the name coincides with
an actor already in the container.
clone
public java.lang.Object clone(Workspace workspace)
throws java.lang.CloneNotSupportedException
- Override the base class to set type constraints on the ports.
- Overrides:
clone
in class AtomicActor
- Parameters:
workspace
- The workspace into which to clone.
- Returns:
- A new instance of AddSubtract.
- Throws:
java.lang.CloneNotSupportedException
- If a derived class contains
an attribute that cannot be cloned.- See Also:
NamedObj.exportMoML(Writer, int, String)
,
NamedObj.setDeferringChangeRequests(boolean)
fire
public void fire()
throws IllegalActionException
- If there is at least one token on the input ports, add
tokens from the plus port, subtract tokens from the
minus port, and send the result to the
output port. At most one token is read
from each channel, so if more than one token is pending, the
rest are left for future firings. If none of the input
channels has a token, do nothing. If none of the plus channels
have tokens, then the tokens on the minus channels are subtracted
from a zero token of the same type as the first token encountered
on the minus channels.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class AtomicActor
- Throws:
IllegalActionException
- If there is no director,
or if addition and subtraction are not supported by the
available tokens.
preinitialize
public void preinitialize()
throws IllegalActionException
- Description copied from class:
AtomicActor
- Create receivers. Derived classes
can override this method to perform additional initialization
functions, but they should call this base class methods or
create the receivers themselves.
This method gets executed exactly once prior to any other
action methods. It cannot produce output data since type
resolution is typically not yet done. It also gets invoked
prior to any static scheduling that might occur in the domain,
so it can change scheduling information.
- Specified by:
preinitialize
in interface Initializable
- Overrides:
preinitialize
in class AtomicActor
- Throws:
IllegalActionException
- Not thrown in this base class.