Changeset 4198

Show
Ignore:
Timestamp:
06/30/08 14:48:24 (6 years ago)
Author:
soohyunc
Message:

adding words (high-level vic overview)

Location:
vic/branches/cc/docs/plan
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • vic/branches/cc/docs/plan/2-overview.tex

    r4197 r4198  
    1313\begin{center} 
    1414\includegraphics[scale=.5]{./img/high-vic-arch} 
    15 \caption{\label{fig:high-vic-arch}High-level Overview \emph{vic} Architecture  
     15\caption{\label{fig:high-vic-arch}High-level \emph{vic} Architecture  
    1616with CC Mechanisms} 
    1717\end{center} 
     
    2222buffer, subsequently decoded (and some color conversion if necessary), and 
    2323finally displayed in a output device. Depending upon a codec, the rendered 
    24 frames may not be discareded immediately, but will be kept for some times before 
     24frames may not be discarded immediately, but will be kept for some times before 
    2525they get purged. 
    2626 
     
    3131packets are transmitted.  The purpose of this analysis is to figure out how 
    3232\emph{vic} works and, from that, we would like to know how to design the 
    33 congestion control APIs.  Figure~\ref{fig:still-grabber} shows a class-diagram 
    34 like figure that how the still grabber generates packets. 
     33congestion control APIs. The still grabber can be used when we want to feed 
     34pre-recored video sequences to the \emph{vic} system\footnote{One should start 
     35\emph{vic} using the following command: \texttt{./vic -XstillGrabber \emph{(IP 
     36address)}/\emph{(port number)}}.}. Currently, the still grabber in \emph{vic} 
     37can take a JPG image file (4:2:2) and a CIF formatted video file. 
     38Figure~\ref{fig:still-grabber} shows a class-diagram like figure that how the 
     39still grabber generates packets. \\ 
    3540 
    3641\begin{figure}[!h]  
     
    4146\end{figure} 
    4247 
    43 The still grabber can be used when we want to feed pre-recored video sequences 
    44 to the \emph{vic} system\footnote{One should start \emph{vic} using the 
    45 following command: \texttt{./vic -XstillGrabber \emph{(IP address)}/\emph{(port 
    46 number)}}.}. Currently, the still grabber in \emph{vic} can take a JPG image 
    47 file (4:2:2) and a CIF formatted video file. 
    48  
    4948Once the still device loads a file (either a JPG or a CIF file) into the memory, 
    5049it invokes \texttt{StillGrabber} or \texttt{StillYuvGrabber} depending upon a 
    5150file type. Assuming \texttt{StillYuvGrabber} is called, it sets the frame size 
    52 by calling \texttt{setsize()} method, and call \texttt{StillYuvGrabber::start()} 
    53 wich again calls \texttt{Grabber::start()}.  \texttt{Grabber::start()} basically 
    54 sets a frame clock and sets \texttt{timeout()}. Then, 
    55 \texttt{StillYuvGrabber::grab()} starts grabbing video frames from the memory 
    56 and passes to the encoder (\texttt{encoder-h261.cpp}): in this case, 
    57 \texttt{H261PixelEncoder::consume()} will be called. After that, it starts 
    58 encoding macro-blocks given a set of YUV inputs and send the packets. 
     51by calling \texttt{setsize()} method, and calls 
     52\texttt{StillYuvGrabber::start()} which again calls \texttt{Grabber::start()}. 
     53\texttt{Grabber::start()} basically sets the frame clock and timer using 
     54\texttt{timeout()} method.  Then, \texttt{StillYuvGrabber::grab()} starts 
     55grabbing video frames from the memory and passes to the encoder 
     56(\texttt{encoder-h261.cpp}): in this case, \texttt{H261PixelEncoder::consume()} 
     57will be called. After that, it starts encoding macro-blocks given a set of YUV 
     58inputs and send the encoded frames to the transmit module 
     59(\texttt{SessionManager::transmit()}). The encoder provides the encoded frames 
     60to the transmit module as long as they are available: see the dashed line in 
     61Figure~\ref{fig:still-grabber}.  \texttt{SessionManager::transmit()} then 
     62packetizes the frames and sends it to the network. \\ 
     63 
     64This is an example of how \emph{vic} takes input from a file, encodes the 
     65frames, packetizes them, and sends them to the network. The core part of the 
     66congestion control module could sit in between the codecs and the transmit 
     67module. Instead of passing the encoded frames directly to the transmit module, 
     68the encoded frames could be queued in some send buffer, and the congestion 
     69control module picks up the frames determined by its suggested rate, for 
     70example, if it is TFRC then it picks up the frames in a certain interval, or if 
     71it is TFWC then it pick up the frames as long as the sending window allows. 
    5972 
    6073\newpage 
  • vic/branches/cc/docs/plan/report.tex

    r4195 r4198  
    2020\DeclareGraphicsRule{*}{eps}{*}{} 
    2121 
    22 \title{Initial Design Plan} 
     22\title{Project Plan} 
    2323\author{Soo-Hyun Choi} 
    2424 
     
    4747%\includegraphics{logo} 
    4848\vspace*{\stretch{1}} 
    49 {\LARGE \textsf{\textbf{Initial Design Plan\\}}} 
     49{\LARGE \textsf{\textbf{Project Plan\\}}} 
    5050\vspace{1cm} 
    5151{\large \textsf{Soo-Hyun Choi\\}} 
     
    5757Piers O'Hanlon and Colin Perkins \\}} 
    5858\vspace{2.5cm} 
    59 {\normalsize \textbf{Keywords}\\ Internet congestion control, real-time 
     59{\normalsize \textbf{Keywords}\\Internet congestion control, Real-time 
    6060multimedia application} 
    6161\end{center}