<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Dirac Video Codec</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <h1 align="center" color="#606080"> Dirac - A Video Codec </h1> <p align="center"> Created by the <a href="http://www.bbc.co.uk">British Broadcasting Corporation</a>. </p> <hr> <!-- Generated by Doxygen 1.5.9 --> <div class="navpath"><a class="el" href="a00234.html">dirac</a>::<a class="el" href="a00073.html">FrameSequenceCompressor</a> </div> <div class="contents"> <h1>dirac::FrameSequenceCompressor Class Reference</h1><!-- doxytag: class="dirac::FrameSequenceCompressor" --><!-- doxytag: inherits="dirac::SequenceCompressor" -->Compresses a sequence of frames from a stream. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="a00225_source.html">seq_compress.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for dirac::FrameSequenceCompressor:</div> <div class="dynsection"> <p><center><img src="a00073.png" usemap="#dirac::FrameSequenceCompressor_map" border="0" alt=""></center> <map name="dirac::FrameSequenceCompressor_map"> <area href="a00128.html" alt="dirac::SequenceCompressor" shape="rect" coords="0,0,207,24"> </map> </div> <p> <a href="a00359.html">List of all members.</a><h2>Public Member Functions</h2> <ul> <li><a class="el" href="a00073.html#e2f078c72ffdd4a68c4fc6c8f003944b">FrameSequenceCompressor</a> (<a class="el" href="a00138.html">StreamPicInput</a> *pin, <a class="el" href="a00063.html">EncoderParams</a> &encp, <a class="el" href="a00050.html">DiracByteStream</a> &dirac_byte_stream) <dl class="el"><dd class="mdescRight">Constructor. <a href="#e2f078c72ffdd4a68c4fc6c8f003944b"></a><br></dl><li>virtual <a class="el" href="a00073.html#96fc44689e0250dd9caf1b31e59584cf">~FrameSequenceCompressor</a> () <dl class="el"><dd class="mdescRight">Destructor. <a href="#96fc44689e0250dd9caf1b31e59584cf"></a><br></dl><li>virtual bool <a class="el" href="a00073.html#9ef2a53e2b2e99e8ca679e5d00f80cb8">LoadNextFrame</a> () <dl class="el"><dd class="mdescRight">Load data. <a href="#9ef2a53e2b2e99e8ca679e5d00f80cb8"></a><br></dl><li>virtual void <a class="el" href="a00073.html#fc28da872c65a19d96e5b4d5dae89946">SetPicTypeAndRefs</a> (<a class="el" href="a00113.html">PictureParams</a> &pparams) <dl class="el"><dd class="mdescRight">Set up the appropriate prediction parameters for a picture. <a href="#fc28da872c65a19d96e5b4d5dae89946"></a><br></dl></ul> <h2>Protected Member Functions</h2> <ul> <li>virtual int <a class="el" href="a00073.html#2d7f038fccc2ac8c3bc6a39b250cf4e9">CodedToDisplay</a> (const int pnum) <dl class="el"><dd class="mdescRight">Uses the GOP parameters to convert picture numbers in coded order to display order. <a href="#2d7f038fccc2ac8c3bc6a39b250cf4e9"></a><br></dl><li>virtual void <a class="el" href="a00073.html#fe2befbe92bb21fd779fcb9410822a84">UpdateCBRModel</a> (<a class="el" href="a00064.html">EncPicture</a> &my_picture, const <a class="el" href="a00110.html">PictureByteIO</a> *picture_byteio) <dl class="el"><dd class="mdescRight">Update the CBR model based on the data we've compressed. <a href="#fe2befbe92bb21fd779fcb9410822a84"></a><br></dl></ul> <hr><a name="_details"></a><h2>Detailed Description</h2> This class compresses a sequence of frames, frame by frame. It currently uses GOP parameters set in the encoder parameters in order to define the temporal prediction structure. A version to incorporate non-GOP structures is TBC. <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="e2f078c72ffdd4a68c4fc6c8f003944b"></a><!-- doxytag: member="dirac::FrameSequenceCompressor::FrameSequenceCompressor" ref="e2f078c72ffdd4a68c4fc6c8f003944b" args="(StreamPicInput *pin, EncoderParams &encp, DiracByteStream &dirac_byte_stream)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dirac::FrameSequenceCompressor::FrameSequenceCompressor </td> <td>(</td> <td class="paramtype"><a class="el" href="a00138.html">StreamPicInput</a> * </td> <td class="paramname"> <em>pin</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00063.html">EncoderParams</a> & </td> <td class="paramname"> <em>encp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00050.html">DiracByteStream</a> & </td> <td class="paramname"> <em>dirac_byte_stream</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Creates a sequence compressor that compresses frames i.e. progressive data, and prepares to begin compressing with the first frame.Sets up frame padding in the picture input if necesary <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>pin</em> </td><td>an input stream containing a sequence of frames </td></tr> <tr><td valign="top"></td><td valign="top"><em>encp</em> </td><td>parameters for the encoding process </td></tr> <tr><td valign="top"></td><td valign="top"><em>dirac_byte_stream</em> </td><td>Output destination for compressed data </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="96fc44689e0250dd9caf1b31e59584cf"></a><!-- doxytag: member="dirac::FrameSequenceCompressor::~FrameSequenceCompressor" ref="96fc44689e0250dd9caf1b31e59584cf" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual dirac::FrameSequenceCompressor::~FrameSequenceCompressor </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [inline, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Destructor. Must delete IO objects created by constructor. </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="2d7f038fccc2ac8c3bc6a39b250cf4e9"></a><!-- doxytag: member="dirac::FrameSequenceCompressor::CodedToDisplay" ref="2d7f038fccc2ac8c3bc6a39b250cf4e9" args="(const int pnum)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual int dirac::FrameSequenceCompressor::CodedToDisplay </td> <td>(</td> <td class="paramtype">const int </td> <td class="paramname"> <em>pnum</em> </td> <td> ) </td> <td><code> [protected, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Uses the GOP parameters to convert picture numbers in coded order to display order. Pure virtual function. The child class will have to define it. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>pnum</em> </td><td>the picture number in coded order </td></tr> </table> </dl> <p>Implements <a class="el" href="a00128.html#d8ea19c5badfdadc2abb8609ab050685">dirac::SequenceCompressor</a>.</p> </div> </div><p> <a class="anchor" name="9ef2a53e2b2e99e8ca679e5d00f80cb8"></a><!-- doxytag: member="dirac::FrameSequenceCompressor::LoadNextFrame" ref="9ef2a53e2b2e99e8ca679e5d00f80cb8" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual bool dirac::FrameSequenceCompressor::LoadNextFrame </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Load one frame of data into the Sequence Compressor. Sets m_all_done to true if no more data is available to be loaded. <dl class="return" compact><dt><b>Returns:</b></dt><dd>true - if frame load succeeded. false - otherwise </dd></dl> <p>Implements <a class="el" href="a00128.html#1f5e923097c7d60711ed9a4ba47587f3">dirac::SequenceCompressor</a>.</p> </div> </div><p> <a class="anchor" name="fc28da872c65a19d96e5b4d5dae89946"></a><!-- doxytag: member="dirac::FrameSequenceCompressor::SetPicTypeAndRefs" ref="fc28da872c65a19d96e5b4d5dae89946" args="(PictureParams &pparams)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void dirac::FrameSequenceCompressor::SetPicTypeAndRefs </td> <td>(</td> <td class="paramtype"><a class="el" href="a00113.html">PictureParams</a> & </td> <td class="paramname"> <em>pparams</em> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>Implements <a class="el" href="a00128.html#8c4590043a330da09a7fb8fcae8674f3">dirac::SequenceCompressor</a>.</p> </div> </div><p> <a class="anchor" name="fe2befbe92bb21fd779fcb9410822a84"></a><!-- doxytag: member="dirac::FrameSequenceCompressor::UpdateCBRModel" ref="fe2befbe92bb21fd779fcb9410822a84" args="(EncPicture &my_picture, const PictureByteIO *picture_byteio)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void dirac::FrameSequenceCompressor::UpdateCBRModel </td> <td>(</td> <td class="paramtype"><a class="el" href="a00064.html">EncPicture</a> & </td> <td class="paramname"> <em>my_picture</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00110.html">PictureByteIO</a> * </td> <td class="paramname"> <em>picture_byteio</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>Implements <a class="el" href="a00128.html#6c0d621c1b708a10f01aa3b30e1e76b2">dirac::SequenceCompressor</a>.</p> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="a00225_source.html">seq_compress.h</a></ul> </div> <hr> <p align="center"><small> © 2004 British Broadcasting Corporation. Dirac code licensed under the <a href="http://www.mozilla.org/MPL/">Mozilla Public License (MPL) Version 1.1</a>.<br> HTML documentation generated by Dimitri van Heesch's excellent <a href="http://www.doxygen.org">Doxygen</a> tool. </small></p> </body> </html>