steghide 0.5.1
|
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
|
private |
|
private |
|
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
|
private |
|
private |
|
private |
|
private |
|
private |
bool Graph::check_Vertices | ( | bool | verbose = false | ) | const |
check the integrity of the Vertices data structure, only used for debugging and testing
|
private |
construct edge-related data structures
needs: SampleValues, Vertices (except SampleOccurenceIts) provides: SVALists, SampleOccurences, Vertices (SampleOccurenceIts)
|
private |
construct sample-related data structures
needs: sposs(unsorted) provides: svalues(unsorted,unique), SampleValues
|
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
|
inline |
get the number of vertices in this graph
|
inline |
get a vertex
l | the vertex label (index) of the vertex to be returned (must be < getNumVertices()) |
|
private |
void Graph::printVerboseInfo | ( | void | ) |
void Graph::unmarkDeletedAllVertices | ( | void | ) |
|
private |
|
friend |
|
friend |
|
friend |
|
friend |
|
private |
|
private |
|
private |
|
private |
|
private |
NumSampleOccurences[l][t] contains the number vertices that contain the sample value with label l and associated target t
|
private |
|
private |
|
private |
|
private |
|
private |