RTP Trace System  1.0
Coral::TraceArray Class Reference

Trace Array. More...

#include <tracearray.h>

Inheritance diagram for Coral::TraceArray:
Coral::H263TraceArray Coral::MP3TraceArray Coral::MPEGTraceArray

List of all members.

Classes

struct  Trace

Public Member Functions

 TraceArray (const TraceConfiguration &config)
virtual ~TraceArray ()
void init (const cardinal maxLayers, const cardinal maxFrames)
void calculateEmpiricalEnvelope (const cardinal layer, const cardinal start, const cardinal end, const cardinal traceStart, const cardinal traceEnd, EmpiricalEnvelope *ee, const bool frameCount=false) const
void calculateOptimalIntervals (double *costArray, cardinal *lengthArray, const cardinal minLength, const cardinal maxLength) const
double TraceArray::calculateTrafficCost (EmpiricalEnvelope **ee, const cardinal position, const cardinal length) const
double TraceArray::calculateNextTrafficCost (EmpiricalEnvelope **ee, const cardinal position, const cardinal length) const
virtual TraceArraydecreaseFrameRate () const
EmpiricalEnvelopeTraceArray::initEmpiricalEnvelope (char *buffer, const cardinal eePairs, const bool frameCount=false) const

Public Attributes

cardinal Layers
cardinal Frames
cardinal MaxLayers
cardinal MaxFrames
double FrameRate
struct Coral::TraceArray::Trace ** LayerTrace

Protected Attributes

TraceConfiguration Config

Private Member Functions

cardinal calculateEmpiricalEnvelopePoint (const cardinal layer, const cardinal start, const cardinal end, const cardinal traceStart, const cardinal traceEnd, const cardinal delay, const bool frameCount=false) const

Detailed Description

Trace Array.

This is an array of layer traces.

Author:
Thomas Dreibholz
Version:
1.0

Constructor & Destructor Documentation

Constructor.

Parameters:
configTraceConfiguration object with configuration of the trace.

Destructor.


Member Function Documentation

void Coral::TraceArray::calculateEmpiricalEnvelope ( const cardinal  layer,
const cardinal  start,
const cardinal  end,
const cardinal  traceStart,
const cardinal  traceEnd,
EmpiricalEnvelope ee,
const bool  frameCount = false 
) const

Calculate empirical envelope.

Parameters:
layerLayer number to calculate empirical envelope for.
startStart position.
endEnd position.
traceStartTrace start position.
traceEndTrace end position.
eeInitialized EmpiricalEnvelope to write sums into.
frameCounttrue, to calculate empirical envelope for frame count; false for byterate.
cardinal Coral::TraceArray::calculateEmpiricalEnvelopePoint ( const cardinal  layer,
const cardinal  start,
const cardinal  end,
const cardinal  traceStart,
const cardinal  traceEnd,
const cardinal  delay,
const bool  frameCount = false 
) const [private]
void Coral::TraceArray::calculateOptimalIntervals ( double *  costArray,
cardinal lengthArray,
const cardinal  minLength,
const cardinal  maxLength 
) const

Calculate optimal intervals refering to given configuration.

Parameters:
costArrayArray to store costs into.
lengthArrayArray to store lengths into.
minLengthMinimum length.
maxLengthMaximum length.

Decrease frame rate to next lower setting.

Returns:
TraceArray containing next lower frame rate setting or NULL, if current setting is lowest.
void Coral::TraceArray::init ( const cardinal  maxLayers,
const cardinal  maxFrames 
)

Initialize trace array.

Parameters:
maxLayersMaximum number of layers.
maxFramesMaximum number of frames.
double Coral::TraceArray::TraceArray::calculateNextTrafficCost ( EmpiricalEnvelope **  ee,
const cardinal  position,
const cardinal  length 
) const [inline]

Update traffic cost calculation done by calculateTrafficCost() by an additional frame. In this case, the already calculated empirical envelope can be reused resulting in a huge speed improvement.

Parameters:
eeEmpiricalEnvelope array.
positionPosition.
lengthLength.
Returns:
Cost.
double Coral::TraceArray::TraceArray::calculateTrafficCost ( EmpiricalEnvelope **  ee,
const cardinal  position,
const cardinal  length 
) const

Calculate traffic cost for an interval.

Parameters:
eeEmpiricalEnvelope array.
positionPosition.
lengthLength.
Returns:
Cost.
EmpiricalEnvelope* Coral::TraceArray::TraceArray::initEmpiricalEnvelope ( char *  buffer,
const cardinal  eePairs,
const bool  frameCount = false 
) const

Initialize EmpiricalEnvelope.

Parameters:
bufferBuffer for empirical envelope.
eePairsNumber of D-BIND pairs.
frameCounttrue, if empirical envelope is for frame count; false for byterate.
Returns:
Required size.

Member Data Documentation


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines