|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.actor.lib.Transformer
ptolemy.actor.lib.comm.HuffmanBasic
public class HuffmanBasic
Given a probability distribution, generate the Huffman code book. The probability distribution is given by the pmf parameter. The corresponding alphabet is given by the alphabet parameter. The code book is in a format of an array of strings, each string consists of '0' and '1's. The code book is sent to the huffmanCodeBook output port.
| Red (cxh) |
| Red (zhouye) |
| Nested Class Summary | |
|---|---|
static class |
HuffmanBasic.Node
A class that defines the node in binary tree that is used to construct the codebook of Huffman code. |
| Nested classes/interfaces inherited from class ptolemy.kernel.Entity |
|---|
Entity.ContainedObjectsIterator |
| Field Summary | |
|---|---|
protected java.lang.String[] |
_codeBook
The huffman code book. |
protected boolean |
_parametersInvalid
Flag that indicates if the parameters are invalid. |
protected double[] |
_pmf
The probability mass function. |
Parameter |
alphabet
The alphabet of the input. |
TypedIOPort |
huffmanCodeBook
A port that produces the Huffman code book generated based on the probability mass function. |
Parameter |
pmf
The probability mass function. |
| Fields inherited from class ptolemy.actor.lib.Transformer |
|---|
input, output |
| Fields inherited from class ptolemy.actor.AtomicActor |
|---|
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested |
| Fields inherited from class ptolemy.kernel.util.NamedObj |
|---|
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
| Fields inherited from interface ptolemy.actor.Executable |
|---|
COMPLETED, NOT_READY, STOP_ITERATING |
| Constructor Summary | |
|---|---|
HuffmanBasic(CompositeEntity container,
java.lang.String name)
Construct an actor with the given container and name. |
|
| Method Summary | |
|---|---|
private HuffmanBasic.Node |
_findMinNode(java.util.LinkedList list)
Find the node with the minimum probability value in the given linked list. |
private void |
_setCode(HuffmanBasic.Node node,
java.lang.String[] codeBook)
Set the Huffman codeword for the given node and all its children. |
void |
attributeChanged(Attribute attribute)
If the attribute being changed is pmf, then verify all the elements are positive and their sum is 1.0. |
java.lang.Object |
clone(Workspace workspace)
Override the base class to set type constraints. |
void |
fire()
Generate the Huffman codebook for the given pmf, and encode the input into booleans and send them to the output port. |
java.lang.String[] |
generateCodeBook(double[] pmf)
Generate the Huffman code book given the probability mass function. |
void |
initialize()
Initialize the actor by resetting the _parametersInvalid to true. |
| Methods inherited from class ptolemy.actor.TypedAtomicActor |
|---|
_addPort, _fireAt, _fireAt, attributeTypeChanged, clone, newPort, typeConstraintList, typeConstraints |
| 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.InstantiableNamedObj |
|---|
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition |
| Methods inherited from class java.lang.Object |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface ptolemy.actor.Actor |
|---|
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList |
| Methods inherited from interface ptolemy.actor.Executable |
|---|
isFireFunctional, isStrict, iterate, postfire, prefire, stop, stopFire, terminate |
| Methods inherited from interface ptolemy.actor.Initializable |
|---|
addInitializable, preinitialize, removeInitializable, wrapup |
| Methods inherited from interface ptolemy.kernel.util.Nameable |
|---|
description, getContainer, getDisplayName, getFullName, getName, getName, setName |
| Methods inherited from interface ptolemy.kernel.util.Derivable |
|---|
getDerivedLevel, getDerivedList, propagateValue |
| Field Detail |
|---|
public Parameter pmf
public Parameter alphabet
public TypedIOPort huffmanCodeBook
protected java.lang.String[] _codeBook
protected boolean _parametersInvalid
protected double[] _pmf
| Constructor Detail |
|---|
public HuffmanBasic(CompositeEntity container,
java.lang.String name)
throws NameDuplicationException,
IllegalActionException
container - The container.name - The name of this actor.
IllegalActionException - If the entity cannot be contained
by the proposed container.
NameDuplicationException - If the container already has an
actor with this name.| Method Detail |
|---|
public java.lang.Object clone(Workspace workspace)
throws java.lang.CloneNotSupportedException
clone in class AtomicActorworkspace - The workspace for the new object.
java.lang.CloneNotSupportedException - If a derived class contains
an attribute that cannot be cloned.NamedObj.exportMoML(Writer, int, String),
NamedObj.setDeferringChangeRequests(boolean)
public void attributeChanged(Attribute attribute)
throws IllegalActionException
attributeChanged in class NamedObjattribute - The attribute that changed.
IllegalActionException - If any element in pmf
is non-positive or the sum is not 1.0.
public void fire()
throws IllegalActionException
fire in interface Executablefire in class AtomicActorIllegalActionException - Not thrown in this base class.public java.lang.String[] generateCodeBook(double[] pmf)
pmf - The probability mass function.
public void initialize()
throws IllegalActionException
initialize in interface Initializableinitialize in class AtomicActorIllegalActionException - If the parent class throws it.private HuffmanBasic.Node _findMinNode(java.util.LinkedList list)
list - The given linked list.
private void _setCode(HuffmanBasic.Node node,
java.lang.String[] codeBook)
node - The given node.codeBook - The code book to be generated.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||