The Fib multimedia system
Fib is a system for storing multimedia data (like images or films).
|
Classes | |
class | cDataPoint |
class | cDataPointRange |
class | cMatrix2D |
Functions | |
template<class tX , class tY , class tZ > | |
vector< nD2::cDataPoint< tX, tY, tZ > > | derivate (const vector< nD2::cDataPoint< tX, tY, tZ > > &vecInput) |
template<class tX , class tY , class tZ > | |
pair< vector < nD2::cDataPointRange< tX, tY, tZ > >, nD2::cDataPointRange < tX, tY, tZ > > | derivateDist (const vector< nD2::cDataPointRange< tX, tY, tZ > > &vecInput) |
bool | lowerFirstNumber (const pair< unsigned long, cFibElement * > &paFirst, const pair< unsigned long, cFibElement * > &paSecond) |
template<class tX > | |
void | integrateLineInAreas (list< pair< unsigned long, list< pair< fib::algorithms::nD1::cDataPoint< tX, tX >, fib::algorithms::nD1::cDataPoint< tX, tX > > > > > &areas, const pair< fib::algorithms::nD1::cDataPoint< tX, tX >, fib::algorithms::nD1::cDataPoint< tX, tX > > &paNewLine) |
template<class tX > | |
cFibElement * | createAreasForPoints (const set< nD1::cDataPoint< tX, tX > > &setPoints, cFibElement *pUnderobject, cFibVariable *pVariableDimX, cFibVariable *pVariableDimY) |
template<class tX > | |
cFibElement * | createSplineBorderAreasForPoints (const set< nD1::cDataPoint< tX, tX > > &setPoints, cFibElement *pUnderobject, cFibVariable *pVariableDimX, cFibVariable *pVariableDimY, const unsigned int uiMaxSplineParameters=4, const unsigned int uiMinBitsToStoreMantissa=1, const double maxValue=0.0, const unsigned long ulMaxMemoryCost=100000) |
template<class tX > | |
cFibElement * | createSplineItrFastBorderAreasForPoints (const set< nD1::cDataPoint< tX, tX > > &setPoints, cFibElement *pUnderobject, cFibVariable *pVariableDimX, cFibVariable *pVariableDimY, const unsigned int uiMaxSplineParameters=4, const unsigned int uiMinBitsToStoreMantissa=1, double maxValue=0.0, const double maxError=0, const unsigned long ulMaxMemoryCost=100000) |
template<class tX > | |
cFibElement * | createSplineItrFastBorderAreasForPoints (const set< nD1::cDataPoint< tX, tX > > &setMinimumArea, const set< nD1::cDataPoint< tX, tX > > &setMaximumArea, cFibElement *pUnderobject, cFibVariable *pVariableDimX, cFibVariable *pVariableDimY, const unsigned int uiMaxSplineParameters=4, set< nD1::cDataPoint< tX, tX > > *pOutSetMissingPoints=NULL, const unsigned int uiMinBitsToStoreMantissa=1, double maxValue=0.0, const double maxError=0, const unsigned long ulMaxMemoryCost=100000) |
template<class tX > | |
cFibElement * | createNSplineBorderAreasForPoints (const set< nD1::cDataPoint< tX, tX > > &setPoints, cFibElement *pUnderobject, cFibVariable *pVariableDimX, cFibVariable *pVariableDimY, const unsigned int uiMaxSplineParameters=4, const unsigned int uiMinBitsToStoreMantissa=1, double maxValue=0.0, const double maxError=0, const unsigned long ulMaxMemoryCost=100000) |
template<class tX > | |
cFibElement * | createNSplineBorderAreasForPoints (const set< nD1::cDataPoint< tX, tX > > &setMinimumArea, const set< nD1::cDataPoint< tX, tX > > &setMaximumArea, cFibElement *pUnderobject, cFibVariable *pVariableDimX, cFibVariable *pVariableDimY, const unsigned int uiMaxSplineParameters=4, set< nD1::cDataPoint< tX, tX > > *pOutSetMissingPoints=NULL, const unsigned int uiMinBitsToStoreMantissa=1, double maxValue=0.0, const double maxError=0, const unsigned long ulMaxMemoryCost=100000) |
cFibElement* fib::algorithms::nD2::createAreasForPoints | ( | const set< nD1::cDataPoint< tX, tX > > & | setPoints, |
cFibElement * | pUnderobject, | ||
cFibVariable * | pVariableDimX, | ||
cFibVariable * | pVariableDimY | ||
) |
This function combines the given set of points to Fib objects. Beware: You have to care that the created underobjects will be deleted
setPoints | the set with the datapoints to combine to Fib objects with the help of area and function elements; The given points should be positions in an matrix, positions in the matrix but not given, will be considerd not to be in the area to create. |
pUnderobject | a pointer to the underobject, which the created Fib elements should contain and which should be evalued for the point positions |
pVariableX | a pointer to the variable for the x position |
pVariableY | a pointer to the variable for the y position |
cFibElement* fib::algorithms::nD2::createNSplineBorderAreasForPoints | ( | const set< nD1::cDataPoint< tX, tX > > & | setPoints, |
cFibElement * | pUnderobject, | ||
cFibVariable * | pVariableDimX, | ||
cFibVariable * | pVariableDimY, | ||
const unsigned int | uiMaxSplineParameters = 4 , |
||
const unsigned int | uiMinBitsToStoreMantissa = 1 , |
||
double | maxValue = 0.0 , |
||
const double | maxError = 0 , |
||
const unsigned long | ulMaxMemoryCost = 100000 |
||
) |
This function combines the given set of points to Fib objects, with the help of splies (polynoms with fixed number of parametes uiMaxSplineParameters) . For this the method
uses
setPoints | the set with the datapoints to combine to Fib objects with the help of area and function elements; The given points should be positions in an matrix, positions in the matrix but not given, will be considerd not to be in the area to create. |
pUnderobject | a pointer to the underobject, which the created Fib elements should contain and which should be evalued for the point positions |
pVariableX | a pointer to the variable for the x position |
pVariableY | a pointer to the variable for the y position |
uiMaxSplineParameters | the number of parameters for the spline; Don't choose this number to big, because the evaluation time will grow exponentialy with this number. Even splines with 8 parameters will take some time. |
uiMinBitsToStoreMantissa | the minimal number of bits to store the mantissa of the function value parameters, when the parameter is in the form: mantissa * 2^exponent ; the method will try to reduce the bits, to store a parameter of the returned vector, to the uiMinBitsToStoreMantissa value; if uiMinBitsToStoreMantissa is 0, no optimization for the mantissa bits will be done |
maxValue | the maximum possible value in all parameters the evalued spline/function elements will allways have value parameters vecFactors[i] with -1 * maxValue <= vecFactors[i] <= maxValue for 0 <= i < vecFactors.size(); if 0 (standard value) is given, the maximum possible value will be evalued from the given data |
maxError | the maximal error for the border polynoms to find; the error on the interpolated polynoms for the borders will be equal or less than maxError |
ulMaxMemoryCost | a number for the maximum memory cost this method is allowed to use; if 0 the maximum memory cost is unbounded |
cFibElement* fib::algorithms::nD2::createNSplineBorderAreasForPoints | ( | const set< nD1::cDataPoint< tX, tX > > & | setMinimumArea, |
const set< nD1::cDataPoint< tX, tX > > & | setMaximumArea, | ||
cFibElement * | pUnderobject, | ||
cFibVariable * | pVariableDimX, | ||
cFibVariable * | pVariableDimY, | ||
const unsigned int | uiMaxSplineParameters = 4 , |
||
set< nD1::cDataPoint< tX, tX > > * | pOutSetMissingPoints = NULL , |
||
const unsigned int | uiMinBitsToStoreMantissa = 1 , |
||
double | maxValue = 0.0 , |
||
const double | maxError = 0 , |
||
const unsigned long | ulMaxMemoryCost = 100000 |
||
) |
This function combines the given set of points to Fib objects, with the help of splies (polynoms with fixed number of parametes uiMaxSplineParameters) . For this the method
uses
setMinimumArea | the set with the datapoints to combine to Fib objects with the help of area and function elements; the created area should contain all of these points; The given points should be positions in an matrix, positions in the matrix but not given, will be considerd not to be in the area to create. |
setMaximumArea | the set with the datapoints to combine to Fib objects with the help of area and function elements; the created area can contain these points; this set should contain all points from setMinimumArea; The given points should be positions in an matrix, positions in the matrix but not given, will be considerd not to be in the area to create. |
pUnderobject | a pointer to the underobject, which the created Fib elements should contain and which should be evalued for the point positions |
pVariableX | a pointer to the variable for the x position |
pVariableY | a pointer to the variable for the y position |
uiMaxSplineParameters | the number of parameters for the spline; Don't choose this number to big, because the evaluation time will grow exponentialy with this number. Even splines with 8 parameters will take some time. |
pOutSetMissingPoints | if not NULL, the points not in the created area will be inserted/added into this set, when this function returns |
uiMinBitsToStoreMantissa | the minimal number of bits to store the mantissa of the function value parameters, when the parameter is in the form: mantissa * 2^exponent ; the method will try to reduce the bits, to store a parameter of the returned vector, to the uiMinBitsToStoreMantissa value; if uiMinBitsToStoreMantissa is 0, no optimization for the mantissa bits will be done |
maxValue | the maximum possible value in all parameters the evalued spline/function elements will allways have value parameters vecFactors[i] with -1 * maxValue <= vecFactors[i] <= maxValue for 0 <= i < vecFactors.size(); if 0 (standard value) is given, the maximum possible value will be evalued from the given data |
maxError | the maximal error for the border polynoms to find; the error on the interpolated polynoms for the borders will be equal or less than maxError |
ulMaxMemoryCost | a number for the maximum memory cost this method is allowed to use; if 0 the maximum memory cost is unbounded |
cFibElement* fib::algorithms::nD2::createSplineBorderAreasForPoints | ( | const set< nD1::cDataPoint< tX, tX > > & | setPoints, |
cFibElement * | pUnderobject, | ||
cFibVariable * | pVariableDimX, | ||
cFibVariable * | pVariableDimY, | ||
const unsigned int | uiMaxSplineParameters = 4 , |
||
const unsigned int | uiMinBitsToStoreMantissa = 1 , |
||
const double | maxValue = 0.0 , |
||
const unsigned long | ulMaxMemoryCost = 100000 |
||
) |
This function combines the given set of points to Fib objects, with the help of splies (polynoms with fixed number of parametes uiMaxSplineParameters) . Beware: You have to care that the created underobjects will be deleted
uses
setPoints | the set with the datapoints to combine to Fib objects with the help of area and function elements; The given points should be positions in an matrix, positions in the matrix but not given, will be considerd not to be in the area to create. |
pUnderobject | a pointer to the underobject, which the created Fib elements should contain and which should be evalued for the point positions |
pVariableX | a pointer to the variable for the x position |
pVariableY | a pointer to the variable for the y position |
uiMaxSplineParameters | the number of parameters for the spline; Don't choose this number to big, because the evaluation time will grow exponentialy with this number. Even splines with 8 parameters will take some time. |
uiMinBitsToStoreMantissa | the minimal number of bits to store the mantissa of the function value parameters, when the parameter is in the form: mantissa * 2^exponent ; the method will try to reduce the bits, to store a parameter of the returned vector, to the uiMinBitsToStoreMantissa value; if uiMinBitsToStoreMantissa is 0, no optimization for the mantissa bits will be done |
maxValue | the maximum possible value in all parameters the evalued spline/function elements will allways have value parameters vecFactors[i] with -1 * maxValue <= vecFactors[i] <= maxValue for 0 <= i < vecFactors.size(); if 0 (standard value) is given, the maximum possible value will be evalued from the given data |
ulMaxMemoryCost | a number for the maximum memory cost this method is allowed to use; if 0 the maximum memory cost is unbounded |
cFibElement* fib::algorithms::nD2::createSplineItrFastBorderAreasForPoints | ( | const set< nD1::cDataPoint< tX, tX > > & | setPoints, |
cFibElement * | pUnderobject, | ||
cFibVariable * | pVariableDimX, | ||
cFibVariable * | pVariableDimY, | ||
const unsigned int | uiMaxSplineParameters = 4 , |
||
const unsigned int | uiMinBitsToStoreMantissa = 1 , |
||
double | maxValue = 0.0 , |
||
const double | maxError = 0 , |
||
const unsigned long | ulMaxMemoryCost = 100000 |
||
) |
This function combines the given set of points to Fib objects, with the help of splies (polynoms with fixed number of parametes uiMaxSplineParameters) . Beware: You have to care that the created underobjects will be deleted
uses
setPoints | the set with the datapoints to combine to Fib objects with the help of area and function elements; The given points should be positions in an matrix, positions in the matrix but not given, will be considerd not to be in the area to create. |
pUnderobject | a pointer to the underobject, which the created Fib elements should contain and which should be evalued for the point positions |
pVariableX | a pointer to the variable for the x position |
pVariableY | a pointer to the variable for the y position |
uiMaxSplineParameters | the number of parameters for the spline; Don't choose this number to big, because the evaluation time will grow exponentialy with this number. Even splines with 8 parameters will take some time. |
uiMinBitsToStoreMantissa | the minimal number of bits to store the mantissa of the function value parameters, when the parameter is in the form: mantissa * 2^exponent ; the method will try to reduce the bits, to store a parameter of the returned vector, to the uiMinBitsToStoreMantissa value; if uiMinBitsToStoreMantissa is 0, no optimization for the mantissa bits will be done |
maxValue | the maximum possible value in all parameters the evalued spline/function elements will allways have value parameters vecFactors[i] with -1 * maxValue <= vecFactors[i] <= maxValue for 0 <= i < vecFactors.size(); if 0 (standard value) is given, the maximum possible value will be evalued from the given data |
maxError | the maximal error for the border polynoms to find; the error on the interpolated polynoms for the borders will be equal or less than maxError |
ulMaxMemoryCost | a number for the maximum memory cost this method is allowed to use; if 0 the maximum memory cost is unbounded |
cFibElement* fib::algorithms::nD2::createSplineItrFastBorderAreasForPoints | ( | const set< nD1::cDataPoint< tX, tX > > & | setMinimumArea, |
const set< nD1::cDataPoint< tX, tX > > & | setMaximumArea, | ||
cFibElement * | pUnderobject, | ||
cFibVariable * | pVariableDimX, | ||
cFibVariable * | pVariableDimY, | ||
const unsigned int | uiMaxSplineParameters = 4 , |
||
set< nD1::cDataPoint< tX, tX > > * | pOutSetMissingPoints = NULL , |
||
const unsigned int | uiMinBitsToStoreMantissa = 1 , |
||
double | maxValue = 0.0 , |
||
const double | maxError = 0 , |
||
const unsigned long | ulMaxMemoryCost = 100000 |
||
) |
This function combines the given set of points to Fib objects, with the help of splies (polynoms with fixed number of parametes uiMaxSplineParameters) . Beware: You have to care that the created underobjects will be deleted
uses
setMinimumArea | the set with the datapoints to combine to Fib objects with the help of area and function elements; the created area should contain all of these points; The given points should be positions in an matrix, positions in the matrix but not given, will be considerd not to be in the area to create. |
setMaximumArea | the set with the datapoints to combine to Fib objects with the help of area and function elements; the created area can contain these points; this set should contain all points from setMinimumArea; The given points should be positions in an matrix, positions in the matrix but not given, will be considerd not to be in the area to create. |
pUnderobject | a pointer to the underobject, which the created Fib elements should contain and which should be evalued for the point positions |
pVariableX | a pointer to the variable for the x position |
pVariableY | a pointer to the variable for the y position |
uiMaxSplineParameters | the number of parameters for the spline; Don't choose this number to big, because the evaluation time will grow exponentialy with this number. Even splines with 8 parameters will take some time. |
pOutSetMissingPoints | if not NULL, the points not in the created area will be inserted/added into this set, when this function returns |
uiMinBitsToStoreMantissa | the minimal number of bits to store the mantissa of the function value parameters, when the parameter is in the form: mantissa * 2^exponent ; the method will try to reduce the bits, to store a parameter of the returned vector, to the uiMinBitsToStoreMantissa value; if uiMinBitsToStoreMantissa is 0, no optimization for the mantissa bits will be done |
maxValue | the maximum possible value in all parameters the evalued spline/function elements will allways have value parameters vecFactors[i] with -1 * maxValue <= vecFactors[i] <= maxValue for 0 <= i < vecFactors.size(); if 0 (standard value) is given, the maximum possible value will be evalued from the given data |
maxError | the maximal error for the border polynoms to find; the error on the interpolated polynoms for the borders will be equal or less than maxError |
ulMaxMemoryCost | a number for the maximum memory cost this method is allowed to use; if 0 the maximum memory cost is unbounded |
vector< nD2::cDataPoint<tX, tY, tZ> > fib::algorithms::nD2::derivate | ( | const vector< nD2::cDataPoint< tX, tY, tZ > > & | vecInput | ) |
This function evaluats a derivate of a vector with datapoints. To evalue the derivate the differnce in the y values of to neibourpoints is divided with ther distance.
vecInput | the vector with the range data points, for which the derivate is to be evalued |
pair< vector< nD2::cDataPointRange<tX, tY, tZ> >, nD2::cDataPointRange<tX, tY, tZ> > fib::algorithms::nD2::derivateDist | ( | const vector< nD2::cDataPointRange< tX, tY, tZ > > & | vecInput | ) |
This function evaluats a derivate of a vector with range datapoints. To evalue the derivate a point with the minimal range size is choosen as the devolopment point. For every other point the maximal and minimal distance betwean two bounderies of the point and the devolopment point is evalued and divided by the distance betwean the points.
vecInput | the vector with the range data points, for which the derivate is to be evalued |
void fib::algorithms::nD2::integrateLineInAreas | ( | list< pair< unsigned long, list< pair< fib::algorithms::nD1::cDataPoint< tX, tX >, fib::algorithms::nD1::cDataPoint< tX, tX > > > > > & | areas, |
const pair< fib::algorithms::nD1::cDataPoint< tX, tX >, fib::algorithms::nD1::cDataPoint< tX, tX > > & | paNewLine | ||
) |
This function integrats the given line into the given areas. The given line will be appended to all areas to which it is connected. (It is connected if one of it's 8 neibours is in the area.) If no area exist a nuw area with the line will be added. If an area exists wich is connected with the given line paNewLine, but already has points on the same x row, the area is duplicated without theas line and the new line is added to it.
areas | a list of areas, wher the line should be integrated into |
paNewLine | the (new) line to integrate as a pare of it lowest and biggest datapoints |
bool fib::algorithms::nD2::lowerFirstNumber | ( | const pair< unsigned long, cFibElement * > & | paFirst, |
const pair< unsigned long, cFibElement * > & | paSecond | ||
) |
paFirst | the first pair to compare with |
paSecond | the second pair to compare with |