Difference between revisions of "Private:psim"
From NMSL
| Line 3: | Line 3: | ||
= Class Diagrams = | = Class Diagrams = | ||
| − | < | + | <pre> |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | class Frame { | |
| + | int no; // serial number | ||
| + | int layer; // layer number it belongs to, set to zero for nonscalable frame | ||
| + | double deadlineOffset; // deadline offset compared to the start of the video, in secs | ||
| + | int size; // frame size in bytes | ||
| + | } | ||
| − | < | + | class Segment { |
| − | + | int no; // serial number | |
| − | + | Vector<Frame> frames; // reference to included frame | |
| − | + | int totalSize; // aggregate size in bytes | |
| − | + | } | |
| − | + | ||
| − | + | class Video { | |
| − | </ | + | String filename; // video trace file path and name |
| + | Hashtable<int, Frame> frameTrace; // frames read from the trace file | ||
| + | Hashtable<int, Segment> segmentTrace; // segments generated by the prepareSegments(...) | ||
| + | void prepareSegments(int noFrame); // packetize frames into segment, | ||
| + | // noFrame indicates how many frames should we put in one segment; | ||
| + | // we might implement other packtization schemes later. | ||
| + | } | ||
| + | |||
| + | </pre> | ||
Revision as of 22:09, 4 March 2009
This page documents the development of a discrete event simulator for P2P video streaming applications. This simulator captures important features of data-driven video streaming systems. In particular, it is designed to evaluate: (i) the performance of various segment scheduling algorithms; (ii) the potential of network coding in multi-layer P2P video streaming systems.
Class Diagrams
class Frame {
int no; // serial number
int layer; // layer number it belongs to, set to zero for nonscalable frame
double deadlineOffset; // deadline offset compared to the start of the video, in secs
int size; // frame size in bytes
}
class Segment {
int no; // serial number
Vector<Frame> frames; // reference to included frame
int totalSize; // aggregate size in bytes
}
class Video {
String filename; // video trace file path and name
Hashtable<int, Frame> frameTrace; // frames read from the trace file
Hashtable<int, Segment> segmentTrace; // segments generated by the prepareSegments(...)
void prepareSegments(int noFrame); // packetize frames into segment,
// noFrame indicates how many frames should we put in one segment;
// we might implement other packtization schemes later.
}
