Sophie

Sophie

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

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="a00085.html">ModeDecider</a>
  </div>
<div class="contents">
<h1>dirac::ModeDecider Class Reference</h1><!-- doxytag: class="dirac::ModeDecider" -->Decides between superblock and block prediction modes.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="a00194_source.html">me_mode_decn.h</a>&gt;</code>
<p>

<p>
<a href="a00368.html">List of all members.</a><h2>Public Member Functions</h2>
<ul>
<li><a class="el" href="a00085.html#4f0b96f094c3e9c4a768c848699c415c">ModeDecider</a> (const <a class="el" href="a00063.html">EncoderParams</a> &amp;encp)
<dl class="el"><dd class="mdescRight">Constructor.  <a href="#4f0b96f094c3e9c4a768c848699c415c"></a><br></dl><li><a class="el" href="a00085.html#a13bd9dd2abf11631a78c2036971b7e6">~ModeDecider</a> ()
<dl class="el"><dd class="mdescRight">Destructor.  <a href="#a13bd9dd2abf11631a78c2036971b7e6"></a><br></dl><li>void <a class="el" href="a00085.html#ea5a08af5c4864ed7da89d99c00e1497">DoModeDecn</a> (<a class="el" href="a00065.html">EncQueue</a> &amp;my_buffer, int pic_num)
<dl class="el"><dd class="mdescRight">Does the actual mode decision.  <a href="#ea5a08af5c4864ed7da89d99c00e1497"></a><br></dl></ul>
<h2>Private Member Functions</h2>
<ul>
<li><a class="el" href="a00085.html#c80197aed2e33f96aaf19811d886d977">ModeDecider</a> (const <a class="el" href="a00085.html">ModeDecider</a> &amp;cpy)
<li><a class="el" href="a00085.html">ModeDecider</a> &amp; <a class="el" href="a00085.html#199ae680080d4520b84b194828d2e930">operator=</a> (const <a class="el" href="a00085.html">ModeDecider</a> &amp;rhs)
<li>void <a class="el" href="a00085.html#141e7d5a61036ae2bfb4bbc415ea34b0">DoSBDecn</a> ()
<li>void <a class="el" href="a00085.html#a22edd6a16b80117a5137dff0758d365">DoLevelDecn</a> (int level)
<dl class="el"><dd class="mdescRight">Make a mode decision given a particular level of decomposition.  <a href="#a22edd6a16b80117a5137dff0758d365"></a><br></dl><li>float <a class="el" href="a00085.html#9cdea8794f99c87ba79628a23fcd6d19">DoUnitDecn</a> (const int xpos, const int ypos, const int level)
<dl class="el"><dd class="mdescRight">Decide on a mode for a given prediction unit (block, sub-SB or SB).  <a href="#9cdea8794f99c87ba79628a23fcd6d19"></a><br></dl><li>void <a class="el" href="a00085.html#891dca9c8c51f3d224f1f2fb465e17bb">DoME</a> (const int xpos, const int ypos, const int level)
<dl class="el"><dd class="mdescRight">Do motion estimation for a prediction unit at a given level.  <a href="#891dca9c8c51f3d224f1f2fb465e17bb"></a><br></dl><li>float <a class="el" href="a00085.html#4e4090fd306aff714c4e3044516764cb">ModeCost</a> (const int xindex, const int yindex)
<dl class="el"><dd class="mdescRight">Return a measure of the cost of coding a given mode.  <a href="#4e4090fd306aff714c4e3044516764cb"></a><br></dl><li><a class="el" href="a00234.html#548820ca76f864dc8630df79b2c5c5b9">ValueType</a> <a class="el" href="a00085.html#99f85b80c40efda559e4d1e21fa4c826">GetDCPred</a> (int xblock, int yblock)
<dl class="el"><dd class="mdescRight">Get a prediction for the dc value of a block.  <a href="#99f85b80c40efda559e4d1e21fa4c826"></a><br></dl><li>float <a class="el" href="a00085.html#103fb05cdfb02ac60d2bcae6d2c43cf6">GetDCVar</a> (const <a class="el" href="a00234.html#548820ca76f864dc8630df79b2c5c5b9">ValueType</a> dc_val, const <a class="el" href="a00234.html#548820ca76f864dc8630df79b2c5c5b9">ValueType</a> dc_pred)
<dl class="el"><dd class="mdescRight">Get a measure of DC value variance.  <a href="#103fb05cdfb02ac60d2bcae6d2c43cf6"></a><br></dl><li>void <a class="el" href="a00085.html#8f7178a4d3d160f04e422daa2faae77f">SetDC</a> (<a class="el" href="a00065.html">EncQueue</a> &amp;my_buffer, int pic_num)
<dl class="el"><dd class="mdescRight">Go through all the intra blocks and extract the chroma dc values to be coded.  <a href="#8f7178a4d3d160f04e422daa2faae77f"></a><br></dl><li>void <a class="el" href="a00085.html#9e2f8267da9507ec27de3bccc8f25beb">SetDC</a> (const <a class="el" href="a00107.html">PicArray</a> &amp;pic_data, <a class="el" href="a00082.html">MEData</a> &amp;me_data, <a class="el" href="a00234.html#39dd89c4c7484412efd87d41548271cd">CompSort</a> cs)
<dl class="el"><dd class="mdescRight">Called by previous fn for each component.  <a href="#9e2f8267da9507ec27de3bccc8f25beb"></a><br></dl><li><a class="el" href="a00234.html#548820ca76f864dc8630df79b2c5c5b9">ValueType</a> <a class="el" href="a00085.html#aac3c27af518605d0eb9928225c17d21">GetBlockDC</a> (const <a class="el" href="a00107.html">PicArray</a> &amp;pic_data, int xloc, int yloc, int split, <a class="el" href="a00234.html#39dd89c4c7484412efd87d41548271cd">CompSort</a> cs)
<dl class="el"><dd class="mdescRight">Called by previous fn for each block.  <a href="#aac3c27af518605d0eb9928225c17d21"></a><br></dl></ul>
<h2>Private Attributes</h2>
<ul>
<li><a class="el" href="a00115.html">PictureSort</a> <a class="el" href="a00085.html#6b861899043a9571d0e0a1154310d8de">m_psort</a>
<li>const <a class="el" href="a00063.html">EncoderParams</a> &amp; <a class="el" href="a00085.html#957f0c1240acc79cbc6606c31a2ccc81">m_encparams</a>
<dl class="el"><dd class="mdescRight">A local reference to the encoder parameters.  <a href="#957f0c1240acc79cbc6606c31a2ccc81"></a><br></dl><li>const <a class="el" href="a00114.html">PicturePredParams</a> * <a class="el" href="a00085.html#1fbb4f66f792c0056f06c5c615d4baf7">m_predparams</a>
<dl class="el"><dd class="mdescRight">A local pointer to the picture prediction params.  <a href="#1fbb4f66f792c0056f06c5c615d4baf7"></a><br></dl><li>float <a class="el" href="a00085.html#1271f4d6d56fd7812ab6a9240ac92ba0">m_lambda</a>
<dl class="el"><dd class="mdescRight">The Lagrangian parameter for motion estimation.  <a href="#1271f4d6d56fd7812ab6a9240ac92ba0"></a><br></dl><li><a class="el" href="a00097.html">OneDArray</a>&lt; float &gt; <a class="el" href="a00085.html#0dc2d25973772f82d777aca337104f55">m_level_factor</a>
<dl class="el"><dd class="mdescRight">Correction factor for comparing SAD costs for different SB splittings.  <a href="#0dc2d25973772f82d777aca337104f55"></a><br></dl><li><a class="el" href="a00097.html">OneDArray</a>&lt; float &gt; <a class="el" href="a00085.html#87fc96b0a8b9c3e5a1719cd4b4debf16">m_mode_factor</a>
<dl class="el"><dd class="mdescRight">Correction factor for comparing mode costs for different SB splittings.  <a href="#87fc96b0a8b9c3e5a1719cd4b4debf16"></a><br></dl><li><a class="el" href="a00097.html">OneDArray</a>&lt; <a class="el" href="a00082.html">MEData</a> * &gt; <a class="el" href="a00085.html#4e62b40e23cf8dd8f6926bd294704133">m_me_data_set</a>
<dl class="el"><dd class="mdescRight">Motion vector data for each level of splitting.  <a href="#4e62b40e23cf8dd8f6926bd294704133"></a><br></dl><li>const <a class="el" href="a00107.html">PicArray</a> * <a class="el" href="a00085.html#e1178fd2db1b78ca449e75f2cab3bd5b">m_pic_data</a>
<li>const <a class="el" href="a00107.html">PicArray</a> * <a class="el" href="a00085.html#9bba52c4c71051bb5b1901475246e7c2">m_ref1_updata</a>
<li>const <a class="el" href="a00107.html">PicArray</a> * <a class="el" href="a00085.html#b547ba0aacc3fb23450e431470df272d">m_ref2_updata</a>
<li>int <a class="el" href="a00085.html#0feb345b4fb798323a569130f80779ee">num_refs</a>
<li><a class="el" href="a00078.html">IntraBlockDiff</a> * <a class="el" href="a00085.html#2c824439a4c4f94e3967378ba1e22788">m_intradiff</a>
<li><a class="el" href="a00004.html">BiBlockDiff</a> * <a class="el" href="a00085.html#992b0eec017f995b5f337ca97a343ce9">m_bicheckdiff</a>
<li>int <a class="el" href="a00085.html#6ae903cd1e4079f8f274a648a34a21dc">m_xsb_loc</a>
<li>int <a class="el" href="a00085.html#d5367eb68fe3402961d90984dd8465cb">m_ysb_loc</a>
</ul>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Loops over all the superblocks and decides on the best modes. A superblock is a square of 16 blocks. There are three possible splitting levels: level 0 means the superblock is considered as a single block; level 1 means the superblock is considered as 4 larger blocks, termed sub-superblocks; level 0 means the superblock is split right down to blocks.<p>
In deciding which modes to adopt, the <a class="el" href="a00085.html" title="Decides between superblock and block prediction modes.">ModeDecider</a> object calculates costs for all permutations, doing motion estimation for the level 1 and level 0 modes as these have not been calculated before. The process of decision for each is as follows. For each SB, we loop over the levels, and call DoLevelDecn. DoLevelDecn does motion estimation if it's necessary. Then it assumes that we don't have a common block mode and calls DoUnitDecn which finds the best mode for each unit in the SB at that level, individually. When we've got a best cost for that level we go up to the next one. <hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="4f0b96f094c3e9c4a768c848699c415c"></a><!-- doxytag: member="dirac::ModeDecider::ModeDecider" ref="4f0b96f094c3e9c4a768c848699c415c" args="(const EncoderParams &amp;encp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dirac::ModeDecider::ModeDecider           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00063.html">EncoderParams</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>encp</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The constructor creates arrays for handling the motion vector data at splitting levels 0 and 1, as motion estimation must be performed for these levels. 
</div>
</div><p>
<a class="anchor" name="a13bd9dd2abf11631a78c2036971b7e6"></a><!-- doxytag: member="dirac::ModeDecider::~ModeDecider" ref="a13bd9dd2abf11631a78c2036971b7e6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dirac::ModeDecider::~ModeDecider           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The destructor destroys the classes created in the constructor 
</div>
</div><p>
<a class="anchor" name="c80197aed2e33f96aaf19811d886d977"></a><!-- doxytag: member="dirac::ModeDecider::ModeDecider" ref="c80197aed2e33f96aaf19811d886d977" args="(const ModeDecider &amp;cpy)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dirac::ModeDecider::ModeDecider           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00085.html">ModeDecider</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>cpy</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a22edd6a16b80117a5137dff0758d365"></a><!-- doxytag: member="dirac::ModeDecider::DoLevelDecn" ref="a22edd6a16b80117a5137dff0758d365" args="(int level)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dirac::ModeDecider::DoLevelDecn           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>level</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="891dca9c8c51f3d224f1f2fb465e17bb"></a><!-- doxytag: member="dirac::ModeDecider::DoME" ref="891dca9c8c51f3d224f1f2fb465e17bb" args="(const int xpos, const int ypos, const int level)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dirac::ModeDecider::DoME           </td>
          <td>(</td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>xpos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>ypos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>level</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="ea5a08af5c4864ed7da89d99c00e1497"></a><!-- doxytag: member="dirac::ModeDecider::DoModeDecn" ref="ea5a08af5c4864ed7da89d99c00e1497" args="(EncQueue &amp;my_buffer, int pic_num)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dirac::ModeDecider::DoModeDecn           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00065.html">EncQueue</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>my_buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>pic_num</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Does the mode decision <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>my_buffer</em>&nbsp;</td><td>the buffer of all the relevant frames </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pic_num</em>&nbsp;</td><td>the picture number for which motion estimation is being done </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="141e7d5a61036ae2bfb4bbc415ea34b0"></a><!-- doxytag: member="dirac::ModeDecider::DoSBDecn" ref="141e7d5a61036ae2bfb4bbc415ea34b0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dirac::ModeDecider::DoSBDecn           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="9cdea8794f99c87ba79628a23fcd6d19"></a><!-- doxytag: member="dirac::ModeDecider::DoUnitDecn" ref="9cdea8794f99c87ba79628a23fcd6d19" args="(const int xpos, const int ypos, const int level)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float dirac::ModeDecider::DoUnitDecn           </td>
          <td>(</td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>xpos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>ypos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>level</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="aac3c27af518605d0eb9928225c17d21"></a><!-- doxytag: member="dirac::ModeDecider::GetBlockDC" ref="aac3c27af518605d0eb9928225c17d21" args="(const PicArray &amp;pic_data, int xloc, int yloc, int split, CompSort cs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00234.html#548820ca76f864dc8630df79b2c5c5b9">ValueType</a> dirac::ModeDecider::GetBlockDC           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00107.html">PicArray</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pic_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>xloc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>yloc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>split</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00234.html#39dd89c4c7484412efd87d41548271cd">CompSort</a>&nbsp;</td>
          <td class="paramname"> <em>cs</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="99f85b80c40efda559e4d1e21fa4c826"></a><!-- doxytag: member="dirac::ModeDecider::GetDCPred" ref="99f85b80c40efda559e4d1e21fa4c826" args="(int xblock, int yblock)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00234.html#548820ca76f864dc8630df79b2c5c5b9">ValueType</a> dirac::ModeDecider::GetDCPred           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>xblock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>yblock</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="103fb05cdfb02ac60d2bcae6d2c43cf6"></a><!-- doxytag: member="dirac::ModeDecider::GetDCVar" ref="103fb05cdfb02ac60d2bcae6d2c43cf6" args="(const ValueType dc_val, const ValueType dc_pred)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float dirac::ModeDecider::GetDCVar           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00234.html#548820ca76f864dc8630df79b2c5c5b9">ValueType</a>&nbsp;</td>
          <td class="paramname"> <em>dc_val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00234.html#548820ca76f864dc8630df79b2c5c5b9">ValueType</a>&nbsp;</td>
          <td class="paramname"> <em>dc_pred</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="4e4090fd306aff714c4e3044516764cb"></a><!-- doxytag: member="dirac::ModeDecider::ModeCost" ref="4e4090fd306aff714c4e3044516764cb" args="(const int xindex, const int yindex)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float dirac::ModeDecider::ModeCost           </td>
          <td>(</td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>xindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&nbsp;</td>
          <td class="paramname"> <em>yindex</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="199ae680080d4520b84b194828d2e930"></a><!-- doxytag: member="dirac::ModeDecider::operator=" ref="199ae680080d4520b84b194828d2e930" args="(const ModeDecider &amp;rhs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00085.html">ModeDecider</a>&amp; dirac::ModeDecider::operator=           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00085.html">ModeDecider</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>rhs</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="9e2f8267da9507ec27de3bccc8f25beb"></a><!-- doxytag: member="dirac::ModeDecider::SetDC" ref="9e2f8267da9507ec27de3bccc8f25beb" args="(const PicArray &amp;pic_data, MEData &amp;me_data, CompSort cs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dirac::ModeDecider::SetDC           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00107.html">PicArray</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>pic_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00082.html">MEData</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>me_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00234.html#39dd89c4c7484412efd87d41548271cd">CompSort</a>&nbsp;</td>
          <td class="paramname"> <em>cs</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="8f7178a4d3d160f04e422daa2faae77f"></a><!-- doxytag: member="dirac::ModeDecider::SetDC" ref="8f7178a4d3d160f04e422daa2faae77f" args="(EncQueue &amp;my_buffer, int pic_num)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dirac::ModeDecider::SetDC           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00065.html">EncQueue</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>my_buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>pic_num</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="992b0eec017f995b5f337ca97a343ce9"></a><!-- doxytag: member="dirac::ModeDecider::m_bicheckdiff" ref="992b0eec017f995b5f337ca97a343ce9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00004.html">BiBlockDiff</a>* <a class="el" href="a00085.html#992b0eec017f995b5f337ca97a343ce9">dirac::ModeDecider::m_bicheckdiff</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="957f0c1240acc79cbc6606c31a2ccc81"></a><!-- doxytag: member="dirac::ModeDecider::m_encparams" ref="957f0c1240acc79cbc6606c31a2ccc81" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00063.html">EncoderParams</a>&amp; <a class="el" href="a00085.html#957f0c1240acc79cbc6606c31a2ccc81">dirac::ModeDecider::m_encparams</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="2c824439a4c4f94e3967378ba1e22788"></a><!-- doxytag: member="dirac::ModeDecider::m_intradiff" ref="2c824439a4c4f94e3967378ba1e22788" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00078.html">IntraBlockDiff</a>* <a class="el" href="a00085.html#2c824439a4c4f94e3967378ba1e22788">dirac::ModeDecider::m_intradiff</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="1271f4d6d56fd7812ab6a9240ac92ba0"></a><!-- doxytag: member="dirac::ModeDecider::m_lambda" ref="1271f4d6d56fd7812ab6a9240ac92ba0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="a00085.html#1271f4d6d56fd7812ab6a9240ac92ba0">dirac::ModeDecider::m_lambda</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="0dc2d25973772f82d777aca337104f55"></a><!-- doxytag: member="dirac::ModeDecider::m_level_factor" ref="0dc2d25973772f82d777aca337104f55" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00097.html">OneDArray</a>&lt;float&gt; <a class="el" href="a00085.html#0dc2d25973772f82d777aca337104f55">dirac::ModeDecider::m_level_factor</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="4e62b40e23cf8dd8f6926bd294704133"></a><!-- doxytag: member="dirac::ModeDecider::m_me_data_set" ref="4e62b40e23cf8dd8f6926bd294704133" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00097.html">OneDArray</a>&lt; <a class="el" href="a00082.html">MEData</a>* &gt; <a class="el" href="a00085.html#4e62b40e23cf8dd8f6926bd294704133">dirac::ModeDecider::m_me_data_set</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="87fc96b0a8b9c3e5a1719cd4b4debf16"></a><!-- doxytag: member="dirac::ModeDecider::m_mode_factor" ref="87fc96b0a8b9c3e5a1719cd4b4debf16" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00097.html">OneDArray</a>&lt;float&gt; <a class="el" href="a00085.html#87fc96b0a8b9c3e5a1719cd4b4debf16">dirac::ModeDecider::m_mode_factor</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="e1178fd2db1b78ca449e75f2cab3bd5b"></a><!-- doxytag: member="dirac::ModeDecider::m_pic_data" ref="e1178fd2db1b78ca449e75f2cab3bd5b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00107.html">PicArray</a>* <a class="el" href="a00085.html#e1178fd2db1b78ca449e75f2cab3bd5b">dirac::ModeDecider::m_pic_data</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="1fbb4f66f792c0056f06c5c615d4baf7"></a><!-- doxytag: member="dirac::ModeDecider::m_predparams" ref="1fbb4f66f792c0056f06c5c615d4baf7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00114.html">PicturePredParams</a>* <a class="el" href="a00085.html#1fbb4f66f792c0056f06c5c615d4baf7">dirac::ModeDecider::m_predparams</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="6b861899043a9571d0e0a1154310d8de"></a><!-- doxytag: member="dirac::ModeDecider::m_psort" ref="6b861899043a9571d0e0a1154310d8de" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00115.html">PictureSort</a> <a class="el" href="a00085.html#6b861899043a9571d0e0a1154310d8de">dirac::ModeDecider::m_psort</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="9bba52c4c71051bb5b1901475246e7c2"></a><!-- doxytag: member="dirac::ModeDecider::m_ref1_updata" ref="9bba52c4c71051bb5b1901475246e7c2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00107.html">PicArray</a>* <a class="el" href="a00085.html#9bba52c4c71051bb5b1901475246e7c2">dirac::ModeDecider::m_ref1_updata</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="b547ba0aacc3fb23450e431470df272d"></a><!-- doxytag: member="dirac::ModeDecider::m_ref2_updata" ref="b547ba0aacc3fb23450e431470df272d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00107.html">PicArray</a>* <a class="el" href="a00085.html#b547ba0aacc3fb23450e431470df272d">dirac::ModeDecider::m_ref2_updata</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="6ae903cd1e4079f8f274a648a34a21dc"></a><!-- doxytag: member="dirac::ModeDecider::m_xsb_loc" ref="6ae903cd1e4079f8f274a648a34a21dc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="a00085.html#6ae903cd1e4079f8f274a648a34a21dc">dirac::ModeDecider::m_xsb_loc</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

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

<p>

</div>
</div><p>
<a class="anchor" name="0feb345b4fb798323a569130f80779ee"></a><!-- doxytag: member="dirac::ModeDecider::num_refs" ref="0feb345b4fb798323a569130f80779ee" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="a00085.html#0feb345b4fb798323a569130f80779ee">dirac::ModeDecider::num_refs</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="a00194_source.html">me_mode_decn.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>