Sophie

Sophie

distrib > Mandriva > 2010.0 > x86_64 > media > main-release > by-pkgid > f250c16c2b84c9364a2f35a71121aaa2 > files > 119

lib64dirac-devel-1.0.2-2mdv2010.0.x86_64.rpm

<!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="a00069.html">FieldSequenceCompressor</a>
  </div>
<div class="contents">
<h1>dirac::FieldSequenceCompressor Class Reference</h1><!-- doxytag: class="dirac::FieldSequenceCompressor" --><!-- doxytag: inherits="dirac::SequenceCompressor" -->Compresses a sequence of fields from a stream.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="a00225_source.html">seq_compress.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for dirac::FieldSequenceCompressor:</div>
<div class="dynsection">

<p><center><img src="a00069.png" usemap="#dirac::FieldSequenceCompressor_map" border="0" alt=""></center>
<map name="dirac::FieldSequenceCompressor_map">
<area href="a00128.html" alt="dirac::SequenceCompressor" shape="rect" coords="0,0,199,24">
</map>
</div>

<p>
<a href="a00360.html">List of all members.</a><h2>Public Member Functions</h2>
<ul>
<li><a class="el" href="a00069.html#d5b9584d6ead449ff03efefa4e030c36">FieldSequenceCompressor</a> (<a class="el" href="a00138.html">StreamPicInput</a> *pin, <a class="el" href="a00063.html">EncoderParams</a> &amp;encp, <a class="el" href="a00050.html">DiracByteStream</a> &amp;dirac_byte_stream)
<dl class="el"><dd class="mdescRight">Constructor.  <a href="#d5b9584d6ead449ff03efefa4e030c36"></a><br></dl><li>virtual <a class="el" href="a00069.html#47aa1a308bfe82ec66ad7d9fd222a2f1">~FieldSequenceCompressor</a> ()
<dl class="el"><dd class="mdescRight">Destructor.  <a href="#47aa1a308bfe82ec66ad7d9fd222a2f1"></a><br></dl><li>virtual bool <a class="el" href="a00069.html#a839b60a4ba21097b7aca7bebdedcdf8">LoadNextFrame</a> ()
<dl class="el"><dd class="mdescRight">Load data.  <a href="#a839b60a4ba21097b7aca7bebdedcdf8"></a><br></dl><li>virtual void <a class="el" href="a00069.html#2268cbfcb38ed9ff79192e05495e4a59">SetPicTypeAndRefs</a> (<a class="el" href="a00113.html">PictureParams</a> &amp;pparams)
<dl class="el"><dd class="mdescRight">Set up the appropriate prediction parameters for a picture.  <a href="#2268cbfcb38ed9ff79192e05495e4a59"></a><br></dl></ul>
<h2>Protected Member Functions</h2>
<ul>
<li>virtual int <a class="el" href="a00069.html#33bc4fa8ccaecb3f6080c074f2f40bd3">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="#33bc4fa8ccaecb3f6080c074f2f40bd3"></a><br></dl><li>virtual void <a class="el" href="a00069.html#af02d1f700aa805a86d6f8340f789f7c">UpdateCBRModel</a> (<a class="el" href="a00064.html">EncPicture</a> &amp;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="#af02d1f700aa805a86d6f8340f789f7c"></a><br></dl></ul>
<h2>Private Member Functions</h2>
<ul>
<li>void <a class="el" href="a00069.html#47ce302420cbf999e3b809fa22fbe467">PreMotionEstmationFilter</a> (<a class="el" href="a00107.html">PicArray</a> &amp;comp)
<dl class="el"><dd class="mdescRight">Filter fields.  <a href="#47ce302420cbf999e3b809fa22fbe467"></a><br></dl></ul>
<h2>Private Attributes</h2>
<ul>
<li>int <a class="el" href="a00069.html#2b20c5d73e8621a0a6c55a0c88bb10f9">m_field1_bytes</a>
<li>int <a class="el" href="a00069.html#9e6a4bd8368b8c8769796ae7b41c79c1">m_field2_bytes</a>
</ul>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This class compresses a sequence of fields, field by field. 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 &amp; Destructor Documentation</h2>
<a class="anchor" name="d5b9584d6ead449ff03efefa4e030c36"></a><!-- doxytag: member="dirac::FieldSequenceCompressor::FieldSequenceCompressor" ref="d5b9584d6ead449ff03efefa4e030c36" args="(StreamPicInput *pin, EncoderParams &amp;encp, DiracByteStream &amp;dirac_byte_stream)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dirac::FieldSequenceCompressor::FieldSequenceCompressor           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00138.html">StreamPicInput</a> *&nbsp;</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> &amp;&nbsp;</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> &amp;&nbsp;</td>
          <td class="paramname"> <em>dirac_byte_stream</em></td><td>&nbsp;</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 fields i.e. interlaced data, and prepares to begin compressing with the first field. <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>&nbsp;</td><td>an input stream containing a sequence of frames </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>encp</em>&nbsp;</td><td>parameters for the encoding process </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dirac_byte_stream</em>&nbsp;</td><td>Output destination for compressed data </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="47aa1a308bfe82ec66ad7d9fd222a2f1"></a><!-- doxytag: member="dirac::FieldSequenceCompressor::~FieldSequenceCompressor" ref="47aa1a308bfe82ec66ad7d9fd222a2f1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual dirac::FieldSequenceCompressor::~FieldSequenceCompressor           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [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="33bc4fa8ccaecb3f6080c074f2f40bd3"></a><!-- doxytag: member="dirac::FieldSequenceCompressor::CodedToDisplay" ref="33bc4fa8ccaecb3f6080c074f2f40bd3" args="(const int pnum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int dirac::FieldSequenceCompressor::CodedToDisplay           </td>
          <td>(</td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>pnum</em>          </td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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="a839b60a4ba21097b7aca7bebdedcdf8"></a><!-- doxytag: member="dirac::FieldSequenceCompressor::LoadNextFrame" ref="a839b60a4ba21097b7aca7bebdedcdf8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool dirac::FieldSequenceCompressor::LoadNextFrame           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Load one frame i.e. two fields 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 both fields 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="47ce302420cbf999e3b809fa22fbe467"></a><!-- doxytag: member="dirac::FieldSequenceCompressor::PreMotionEstmationFilter" ref="47ce302420cbf999e3b809fa22fbe467" args="(PicArray &amp;comp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dirac::FieldSequenceCompressor::PreMotionEstmationFilter           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00107.html">PicArray</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>comp</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Low pass filter the components in the fields used in Motion Estimation so that ME works better. Using a 1/4 1/2 1/4 filter 
</div>
</div><p>
<a class="anchor" name="2268cbfcb38ed9ff79192e05495e4a59"></a><!-- doxytag: member="dirac::FieldSequenceCompressor::SetPicTypeAndRefs" ref="2268cbfcb38ed9ff79192e05495e4a59" args="(PictureParams &amp;pparams)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void dirac::FieldSequenceCompressor::SetPicTypeAndRefs           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00113.html">PictureParams</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pparams</em>          </td>
          <td>&nbsp;)&nbsp;</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="af02d1f700aa805a86d6f8340f789f7c"></a><!-- doxytag: member="dirac::FieldSequenceCompressor::UpdateCBRModel" ref="af02d1f700aa805a86d6f8340f789f7c" args="(EncPicture &amp;my_picture, const PictureByteIO *picture_byteio)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void dirac::FieldSequenceCompressor::UpdateCBRModel           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00064.html">EncPicture</a> &amp;&nbsp;</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> *&nbsp;</td>
          <td class="paramname"> <em>picture_byteio</em></td><td>&nbsp;</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><h2>Member Data Documentation</h2>
<a class="anchor" name="2b20c5d73e8621a0a6c55a0c88bb10f9"></a><!-- doxytag: member="dirac::FieldSequenceCompressor::m_field1_bytes" ref="2b20c5d73e8621a0a6c55a0c88bb10f9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="a00069.html#2b20c5d73e8621a0a6c55a0c88bb10f9">dirac::FieldSequenceCompressor::m_field1_bytes</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="9e6a4bd8368b8c8769796ae7b41c79c1"></a><!-- doxytag: member="dirac::FieldSequenceCompressor::m_field2_bytes" ref="9e6a4bd8368b8c8769796ae7b41c79c1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="a00069.html#9e6a4bd8368b8c8769796ae7b41c79c1">dirac::FieldSequenceCompressor::m_field2_bytes</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<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>
&copy; 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>