a graph constructed from a cover file and a message to be embedded More...
#include <Graph.h>
Public Member Functions | |
| Graph (CvrStgFile *cvr, const BitString &emb, Selector &sel) | |
| ~Graph (void) | |
| unsigned long | getNumVertices (void) const |
| Vertex * | getVertex (VertexLabel l) const |
| void | unmarkDeletedAllVertices (void) |
| float | getAvgVertexDegree (void) const |
| void | printVerboseInfo (void) |
| bool | check (bool verbose=false) const |
| bool | check_Vertices (bool verbose=false) const |
| bool | check_SampleValues (bool verbose=false) const |
| bool | check_SampleOccurences (bool verbose=false) const |
| bool | check_SVALists (bool verbose=false) const |
Private Member Functions | |
| std::list< SampleOccurence > ::iterator | markDeletedSampleOccurence (std::list< SampleOccurence >::iterator it) |
| std::list< SampleOccurence > ::iterator | unmarkDeletedSampleOccurence (std::list< SampleOccurence >::iterator it) |
| void | constructSamples (const std::vector< SamplePos * > &sposs, std::vector< SampleValue ** > &svalues) |
| void | constructVertices (std::vector< SamplePos * > &sposs, std::vector< SampleValue ** > &svalues, const std::vector< EmbValue > &tvalues) |
| void | constructEdges (void) |
| bool | check_SampleOccurences_size (bool verbose=false) const |
| bool | check_SampleOccurences_correctness (bool verbose=false) const |
| bool | check_SampleOccurences_completeness (bool verbose=false) const |
| bool | check_SVALists_size (bool verbose=false) const |
| bool | check_SVALists_soundness (bool verbose=false) const |
| bool | check_SVALists_sorted (bool verbose=false) const |
| bool | check_SVALists_uniqueness (bool verbose=false) const |
| bool | check_SVALists_completeness (bool verbose=false) const |
Private Attributes | |
| std::vector< Vertex * > | Vertices |
| contains the vertices in this graph - Vertices[l] is the vertex with label l | |
| std::vector< SampleValue * > | SampleValues |
| contains the list of (unique) sample values - SampleValues[l] is the sample value with label l | |
| std::vector < SampleValueAdjacencyList * > | SVALists |
| contains the sample value adjacency lists (SVALists[v] contains only sample values with embedded value v) | |
| std::vector< std::list < SampleOccurence > > | SampleOccurences |
| SampleOccurences[l] contains all occurences of the sample value with label l. | |
| std::vector< UWORD32 * > | NumSampleOccurences |
| std::vector< std::list < SampleOccurence > > | DeletedSampleOccurences |
| contains those sample occurences that have been marked as deleted from SampleOccurences | |
| std::vector< UWORD32 * > | NumDeletedSampleOccurences |
| CvrStgFile * | File |
| EmbValue | EmbValueModulus |
| unsigned short | SamplesPerVertex |
Friends | |
| class | WKSConstructionHeuristic |
| class | EdgeIterator |
| class | SampleValueAdjacencyList |
| class | Vertex |
This class provides a purely graph-theoretic interface to any other class. Some classes however need access to the internal (steganographic) representation, for example: Vertex, EdgeIterator,... . These are declared as friends of Graph here and thus have direct access to the private data structures.
| Graph::Graph | ( | CvrStgFile * | cvr, | |
| const BitString & | emb, | |||
| Selector & | sel | |||
| ) |
construct a graph
| cvr | the underlying cover file | |
| emb | the bitstring to be embedded (with correct arity already set) |
| Graph::~Graph | ( | void | ) |
destructor
| bool Graph::check | ( | bool | verbose = false |
) | const |
check the integrity of all data structures, only used for debugging and testing
| bool Graph::check_SampleOccurences | ( | bool | verbose = false |
) | const |
check the integrity of the SampleOccurences data structure, it is assumed that DeletedSampleOccurences is empty, only used for debugging and testing
| bool Graph::check_SampleOccurences_completeness | ( | bool | verbose = false |
) | const [private] |
| bool Graph::check_SampleOccurences_correctness | ( | bool | verbose = false |
) | const [private] |
| bool Graph::check_SampleOccurences_size | ( | bool | verbose = false |
) | const [private] |
| bool Graph::check_SampleValues | ( | bool | verbose = false |
) | const |
check the integrity of the SampleValues data structure, only used for debugging and testing
| bool Graph::check_SVALists | ( | bool | verbose = false |
) | const |
check the integrity of the SVALists data structure, only used for debugging and testing
| bool Graph::check_SVALists_completeness | ( | bool | verbose = false |
) | const [private] |
| bool Graph::check_SVALists_size | ( | bool | verbose = false |
) | const [private] |
| bool Graph::check_SVALists_sorted | ( | bool | verbose = false |
) | const [private] |
| bool Graph::check_SVALists_soundness | ( | bool | verbose = false |
) | const [private] |
| bool Graph::check_SVALists_uniqueness | ( | bool | verbose = false |
) | const [private] |
| bool Graph::check_Vertices | ( | bool | verbose = false |
) | const |
check the integrity of the Vertices data structure, only used for debugging and testing
| void Graph::constructEdges | ( | void | ) | [private] |
construct edge-related data structures
needs: SampleValues, Vertices (except SampleOccurenceIts) provides: SVALists, SampleOccurences, Vertices (SampleOccurenceIts)
| void Graph::constructSamples | ( | const std::vector< SamplePos * > & | sposs, | |
| std::vector< SampleValue ** > & | svalues | |||
| ) | [private] |
construct sample-related data structures
needs: sposs(unsorted) provides: svalues(unsorted,unique), SampleValues
| void Graph::constructVertices | ( | std::vector< SamplePos * > & | sposs, | |
| std::vector< SampleValue ** > & | svalues, | |||
| const std::vector< EmbValue > & | tvalues | |||
| ) | [private] |
construct vertex-related data structures
needs: sposs(unsorted), svalues(unsorted,unique), tvalues provides: sposs(sorted), Vertices (except SampleOccurenceIts)
| float Graph::getAvgVertexDegree | ( | void | ) | const |
calculate and return the average vertex degree
| unsigned long Graph::getNumVertices | ( | void | ) | const [inline] |
get the number of vertices in this graph
| Vertex* Graph::getVertex | ( | VertexLabel | l | ) | const [inline] |
get a vertex
| l | the vertex label (index) of the vertex to be returned (must be < getNumVertices()) |
| std::list< SampleOccurence >::iterator Graph::markDeletedSampleOccurence | ( | std::list< SampleOccurence >::iterator | it | ) | [private] |
| void Graph::printVerboseInfo | ( | void | ) |
| void Graph::unmarkDeletedAllVertices | ( | void | ) |
| std::list< SampleOccurence >::iterator Graph::unmarkDeletedSampleOccurence | ( | std::list< SampleOccurence >::iterator | it | ) | [private] |
friend class EdgeIterator [friend] |
friend class SampleValueAdjacencyList [friend] |
friend class Vertex [friend] |
friend class WKSConstructionHeuristic [friend] |
std::vector<std::list<SampleOccurence> > Graph::DeletedSampleOccurences [private] |
EmbValue Graph::EmbValueModulus [private] |
CvrStgFile* Graph::File [private] |
std::vector<UWORD32*> Graph::NumDeletedSampleOccurences [private] |
std::vector<UWORD32*> Graph::NumSampleOccurences [private] |
NumSampleOccurences[l][t] contains the number vertices that contain the sample value with label l and associated target t
std::vector<std::list<SampleOccurence> > Graph::SampleOccurences [private] |
unsigned short Graph::SamplesPerVertex [private] |
std::vector<SampleValue*> Graph::SampleValues [private] |
std::vector<SampleValueAdjacencyList*> Graph::SVALists [private] |
std::vector<Vertex*> Graph::Vertices [private] |
1.6.3