Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Cresson Remi
LSGRM
Commits
a982ace7
Commit
a982ace7
authored
Sep 02, 2016
by
remicres
Browse files
FIX: simplify the function prototype for memory estimation, fix estimation function
parent
879e7ccb
Changes
7
Hide whitespace changes
Inline
Side-by-side
include/lsgrmBaatzSegmenter.h
View file @
a982ace7
...
...
@@ -22,7 +22,7 @@ public:
void
WriteSpecificAttributes
(
NodePointerType
node
,
FILE
*
nodeStream
);
void
ReadSpecificAttributes
(
NodePointerType
node
,
FILE
*
nodeStream
);
long
long
unsigned
int
Get
Node
Memory
(
NodePointerType
&
node
);
long
long
unsigned
int
Get
SpecificAttributes
Memory
(
NodePointerType
&
node
);
};
}
// end of namespace lsrm
...
...
include/lsgrmBaatzSegmenter.txx
View file @
a982ace7
...
...
@@ -44,16 +44,13 @@ BaatzSegmenter<TImage>::ReadSpecificAttributes(NodePointerType node, FILE * node
template<class TImage>
long long unsigned int
BaatzSegmenter<TImage>::Get
Node
Memory(NodePointerType &node)
BaatzSegmenter<TImage>::Get
SpecificAttributes
Memory(NodePointerType &node)
{
long long unsigned int memory = 0;
unsigned int nBands = node->m_Means.size(); //this->m_InputImage->GetNumberOfComponentsPerPixel();
memory += 4 * node->m_Means.size() * sizeof(float); // 4 vectors values
memory += 4 * sizeof(std::vector<float>); // 4 vector containers
long long unsigned int memory = 0;
memory += sizeof(NodePointerType); // size of the node pointer
memory += sizeof(NodeType); // size of the node (actually, size of the base node)
memory += 4 * nBands * sizeof(float); // size of the 4 attributes, multiplied by the nb. of bands
memory += node->m_Edges.size() * sizeof(EdgeType); // size of the edges
return memory;
}
} // end of namespace lsrm
...
...
include/lsgrmFullLambdaScheduleSegmenter.h
View file @
a982ace7
...
...
@@ -22,7 +22,7 @@ public:
void
WriteSpecificAttributes
(
NodePointerType
node
,
FILE
*
nodeStream
);
void
ReadSpecificAttributes
(
NodePointerType
node
,
FILE
*
nodeStream
);
long
long
unsigned
int
Get
Node
Memory
(
NodePointerType
&
node
);
long
long
unsigned
int
Get
SpecificAttributes
Memory
(
NodePointerType
&
node
);
};
}
// end of namespace lsrm
...
...
include/lsgrmFullLambdaScheduleSegmenter.txx
View file @
a982ace7
...
...
@@ -35,16 +35,13 @@ FullLambdaScheduleSegmenter<TImage>::ReadSpecificAttributes(NodePointerType node
template<class TImage>
long long unsigned int
FullLambdaScheduleSegmenter<TImage>::Get
Node
Memory(NodePointerType &node)
FullLambdaScheduleSegmenter<TImage>::Get
SpecificAttributes
Memory(NodePointerType &node)
{
long long unsigned int memory = 0;
unsigned int nBands = node->m_Means.size(); //this->m_InputImage->GetNumberOfComponentsPerPixel();
memory += node->m_Means.size() * sizeof(float); // vector values
memory += sizeof(std::vector<float>); // vector container
long long unsigned int memory = 0;
memory += sizeof(NodePointerType); // size of the node pointer
memory += sizeof(NodeType); // size of the node (actually, size of the base node)
memory += 1 * nBands * sizeof(float); // size of the 1 attribute, multiplied by the nb. of bands
memory += node->m_Edges.size() * sizeof(EdgeType); // size of the edges
return memory;
}
} // end of namespace lsrm
...
...
include/lsgrmSegmenter.h
View file @
a982ace7
...
...
@@ -17,6 +17,7 @@ public:
typedef
typename
TSegmenterType
::
ParamType
ParamType
;
typedef
grm
::
Graph
<
NodeType
>
GraphType
;
typedef
typename
GraphType
::
EdgeType
EdgeType
;
typedef
typename
GraphType
::
EdgeListType
EdgeListType
;
typedef
typename
grm
::
GraphOperations
<
TSegmenterType
>
GraphOperatorType
;
typedef
typename
GraphOperatorType
::
NodePointerType
NodePointerType
;
typedef
GraphToOtbImage
<
GraphType
>
IOType
;
...
...
@@ -163,9 +164,9 @@ public:
}
/*
* Returns the memory (in bytes) occupied by
one node
of the
graph
* Returns the memory (in bytes) occupied by
the specific attributes
of the
node
*/
virtual
long
long
unsigned
int
Get
Node
Memory
(
NodePointerType
&
node
)
=
0
;
virtual
long
long
unsigned
int
Get
SpecificAttributes
Memory
(
NodePointerType
&
node
)
=
0
;
/*
* Returns the memory (in bytes) occupied by the entire graph
...
...
@@ -173,13 +174,31 @@ public:
long
long
unsigned
int
GetGraphMemory
()
{
long
long
unsigned
int
memory
=
0
;
long
long
unsigned
int
numberOfMoves
=
0
;
for
(
auto
&
node
:
this
->
m_Graph
.
m_Nodes
)
{
numberOfMoves
+=
node
->
m_Contour
.
size
();
memory
+=
this
->
GetNodeMemory
(
node
);
// size of the contour (boost::dynamic_bitset)
memory
+=
sizeof
(
lp
::
Contour
);
#ifdef ENVIRONMENT64
memory
+=
8
*
((
node
->
m_Contour
.
size
()
+
63
)
/
64
);
#endif
#ifdef ENVIRONMENT32
memory
+=
8
*
((
node
->
m_Contour
.
size
()
+
31
)
/
32
);
#endif
// size of specific attributes
memory
+=
this
->
GetSpecificAttributesMemory
(
node
);
// size of the node pointer
memory
+=
sizeof
(
NodePointerType
);
// size of the node (actually, size of the base node)
memory
+=
sizeof
(
NodeType
);
// size of the edges
memory
+=
node
->
m_Edges
.
capacity
()
*
sizeof
(
EdgeType
);
memory
+=
sizeof
(
EdgeListType
);
}
memory
+=
std
::
ceil
(
numberOfMoves
/
4
);
return
memory
;
}
...
...
include/lsgrmSpringSegmenter.h
View file @
a982ace7
...
...
@@ -22,7 +22,7 @@ public:
void
WriteSpecificAttributes
(
NodePointerType
node
,
FILE
*
nodeStream
);
void
ReadSpecificAttributes
(
NodePointerType
node
,
FILE
*
nodeStream
);
long
long
unsigned
int
Get
Node
Memory
(
NodePointerType
&
node
);
long
long
unsigned
int
Get
SpecificAttributes
Memory
(
NodePointerType
&
node
);
};
}
// end of namespace lsrm
...
...
include/lsgrmSpringSegmenter.txx
View file @
a982ace7
...
...
@@ -35,16 +35,13 @@ SpringSegmenter<TImage>::ReadSpecificAttributes(NodePointerType node, FILE * nod
template<class TImage>
long long unsigned int
SpringSegmenter<TImage>::Get
Node
Memory(NodePointerType &node)
SpringSegmenter<TImage>::Get
SpecificAttributes
Memory(NodePointerType &node)
{
long long unsigned int memory = 0;
unsigned int nBands = node->m_Means.size(); //this->m_InputImage->GetNumberOfComponentsPerPixel();
memory += node->m_Means.size() * sizeof(float); // vector values
memory += sizeof(std::vector<float>); // vector container
long long unsigned int memory = 0;
memory += sizeof(NodePointerType); // size of the node pointer
memory += sizeof(NodeType); // size of the node (actually, size of the base node)
memory += 1 * nBands * sizeof(float); // size of the 1 attribute, multiplied by the nb. of bands
memory += node->m_Edges.size() * sizeof(EdgeType); // size of the edges
return memory;
}
} // end of namespace lsrm
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment