Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > main-release > by-pkgid > b91608bcc8cdfae85c75f04c03683d58 > files > 226

lib64dirac-devel-0.9.1-1mdv2008.1.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.4 -->
<div class="nav">
<a class="el" href="a00226.html">dirac</a>::<a class="el" href="a00142.html">WaveletTransform</a></div>
<h1>dirac::WaveletTransform Class Reference</h1><!-- doxytag: class="dirac::WaveletTransform" -->A class to do wavelet transforms.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="a00298.html">wavelet_utils.h</a>&gt;</code>
<p>

<p>
<a href="a00395.html">List of all members.</a><h2>Public Member Functions</h2>
<ul>
<li><a class="el" href="a00142.html#f149f703155dbe93d96cd9d69f0cb81a">WaveletTransform</a> (int d=4, <a class="el" href="a00168.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> f=DAUB9_7)
<dl class="el"><dd class="mdescRight">Constructor.  <a href="#f149f703155dbe93d96cd9d69f0cb81a"></a><br></dl><li>virtual <a class="el" href="a00142.html#11fdcc2a3ebf9a89c95bef2ff0db98bb">~WaveletTransform</a> ()
<dl class="el"><dd class="mdescRight">Destructor.  <a href="#11fdcc2a3ebf9a89c95bef2ff0db98bb"></a><br></dl><li>void <a class="el" href="a00142.html#1cce596a13fda8b342a3670aafa4d2a7">Transform</a> (const <a class="el" href="a00226.html#c972efbebbe042dd142790f520369d9c">Direction</a> d, <a class="el" href="a00113.html">PicArray</a> &amp;pic_data, <a class="el" href="a00023.html">CoeffArray</a> &amp;coeff_data)
<dl class="el"><dd class="mdescRight">Transforms the data to and from the wavelet domain.  <a href="#1cce596a13fda8b342a3670aafa4d2a7"></a><br></dl><li><a class="el" href="a00136.html">SubbandList</a> &amp; <a class="el" href="a00142.html#da9f33dd1bd89c591fd020b673ef30c5">BandList</a> ()
<dl class="el"><dd class="mdescRight">Returns the set of subbands.  <a href="#da9f33dd1bd89c591fd020b673ef30c5"></a><br></dl><li>const <a class="el" href="a00136.html">SubbandList</a> &amp; <a class="el" href="a00142.html#731254ca1f1dff6bdb4d51d34a758402">BandList</a> () const 
<dl class="el"><dd class="mdescRight">Returns the set of subbands.  <a href="#731254ca1f1dff6bdb4d51d34a758402"></a><br></dl><li>void <a class="el" href="a00142.html#d07c287a93638d48fd68c2e077c98b61">SetBandWeights</a> (const float cpd, const <a class="el" href="a00080.html">FrameSort</a> &amp;fsort, const <a class="el" href="a00168.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> &amp;cformat, const <a class="el" href="a00226.html#39dd89c4c7484412efd87d41548271cd">CompSort</a> csort, const bool field_coding)
<dl class="el"><dd class="mdescRight">Sets the subband weights.  <a href="#d07c287a93638d48fd68c2e077c98b61"></a><br></dl></ul>
<h2>Private Member Functions</h2>
<ul>
<li><a class="el" href="a00142.html#aad94e2749b51264352305eefd901213">WaveletTransform</a> (const <a class="el" href="a00142.html">WaveletTransform</a> &amp;cpy)
<dl class="el"><dd class="mdescRight">Private, bodyless copy constructor: class should not be copied.  <a href="#aad94e2749b51264352305eefd901213"></a><br></dl><li><a class="el" href="a00142.html">WaveletTransform</a> &amp; <a class="el" href="a00142.html#cf8c9fb33b4f2391267164f3d28f5c1b">operator=</a> (const <a class="el" href="a00142.html">WaveletTransform</a> &amp;rhs)
<dl class="el"><dd class="mdescRight">Private, bodyless copy operator=: class should not be assigned.  <a href="#cf8c9fb33b4f2391267164f3d28f5c1b"></a><br></dl><li>float <a class="el" href="a00142.html#63c22d1afc3f2f924d403f6eb0754590">PerceptualWeight</a> (float xf, float yf, <a class="el" href="a00226.html#39dd89c4c7484412efd87d41548271cd">CompSort</a> cs)
<dl class="el"><dd class="mdescRight">Given x and y spatial frequencies in cycles per degree, returns a weighting value.  <a href="#63c22d1afc3f2f924d403f6eb0754590"></a><br></dl></ul>
<h2>Private Attributes</h2>
<ul>
<li><a class="el" href="a00136.html">SubbandList</a> <a class="el" href="a00142.html#b42772d19deacaa4e1edf23e1176ce21">m_band_list</a>
<li>int <a class="el" href="a00142.html#50eb51dd507883ef463ecb607a1ffb78">m_depth</a>
<dl class="el"><dd class="mdescRight">Depth of the transform.  <a href="#50eb51dd507883ef463ecb607a1ffb78"></a><br></dl><li><a class="el" href="a00168.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="el" href="a00142.html#95b5b2e110ebf759ce116bb2b935be34">m_filt_sort</a>
<dl class="el"><dd class="mdescRight">The filter set to be used.  <a href="#95b5b2e110ebf759ce116bb2b935be34"></a><br></dl><li><a class="el" href="a00149.html">VHFilter</a> * <a class="el" href="a00142.html#f8dd650ea3346056ba1db78c6271abec">m_vhfilter</a>
<dl class="el"><dd class="mdescRight">A class to do the filtering required.  <a href="#f8dd650ea3346056ba1db78c6271abec"></a><br></dl></ul>
<h2>Classes</h2>
<ul>
<li>class <a class="el" href="a00143.html">PredictStep97</a>
<dl class="el"><dd class="mdescRight">Class to do two-tap prediction lifting step for Daubechies (9,7).  <a href="a00143.html#_details">More...</a><br></dl><li>class <a class="el" href="a00144.html">PredictStepFourTap</a>
<dl class="el"><dd class="mdescRight">Class to do symmetric four-tap prediction lifting step.  <a href="a00144.html#_details">More...</a><br></dl><li>class <a class="el" href="a00145.html">PredictStepShift</a>
<dl class="el"><dd class="mdescRight">Class to do two-tap prediction lifting step.  <a href="a00145.html#_details">More...</a><br></dl><li>class <a class="el" href="a00146.html">UpdateStep97</a>
<dl class="el"><dd class="mdescRight">Class to do two-tap update lifting step for Daubechies (9,7).  <a href="a00146.html#_details">More...</a><br></dl><li>class <a class="el" href="a00147.html">UpdateStepFourTap</a>
<dl class="el"><dd class="mdescRight">Class to do symmetric four-tap update lifting step.  <a href="a00147.html#_details">More...</a><br></dl><li>class <a class="el" href="a00148.html">UpdateStepShift</a>
<dl class="el"><dd class="mdescRight">Class to do two-tap updating lifting step.  <a href="a00148.html#_details">More...</a><br></dl><li>class <a class="el" href="a00149.html">VHFilter</a>
<dl class="el"><dd class="mdescRight">A virtual parent class to do vertical and horizontal splitting with wavelet filters.  <a href="a00149.html#_details">More...</a><br></dl><li>class <a class="el" href="a00150.html">VHFilterDAUB9_7</a>
<dl class="el"><dd class="mdescRight">Class to do Daubechies (9,7) filtering operations.  <a href="a00150.html#_details">More...</a><br></dl><li>class <a class="el" href="a00151.html">VHFilterDD13_7</a>
<dl class="el"><dd class="mdescRight">An extension of DD9_7, with a better low-pass filter but more computation.  <a href="a00151.html#_details">More...</a><br></dl><li>class <a class="el" href="a00152.html">VHFilterDD9_7</a>
<dl class="el"><dd class="mdescRight">A short filter that's actually close to Daubechies (9,7) but with just two lifting steps.  <a href="a00152.html#_details">More...</a><br></dl><li>class <a class="el" href="a00153.html">VHFilterHAAR0</a>
<dl class="el"><dd class="mdescRight">Class to do Haar wavelet filtering operations.  <a href="a00153.html#_details">More...</a><br></dl><li>class <a class="el" href="a00154.html">VHFilterHAAR1</a>
<dl class="el"><dd class="mdescRight">Class to do Haar wavelet filtering operations with a single shift per level.  <a href="a00154.html#_details">More...</a><br></dl><li>class <a class="el" href="a00155.html">VHFilterHAAR2</a>
<dl class="el"><dd class="mdescRight">Class to do Haar wavelet filtering operations with a double shift per level.  <a href="a00155.html#_details">More...</a><br></dl><li>class <a class="el" href="a00156.html">VHFilterLEGALL5_3</a>
<dl class="el"><dd class="mdescRight">Class to do (5,3) wavelet filtering operations.  <a href="a00156.html#_details">More...</a><br></dl></ul>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A class to do forward and backward wavelet transforms by iteratively splitting or merging the lowest frequency band. <hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="f149f703155dbe93d96cd9d69f0cb81a"></a><!-- doxytag: member="dirac::WaveletTransform::WaveletTransform" ref="f149f703155dbe93d96cd9d69f0cb81a" args="(int d=4, WltFilter f=DAUB9_7)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dirac::WaveletTransform::WaveletTransform           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>d</em> = <code>4</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00168.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a>&nbsp;</td>
          <td class="paramname"> <em>f</em> = <code>DAUB9_7</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="11fdcc2a3ebf9a89c95bef2ff0db98bb"></a><!-- doxytag: member="dirac::WaveletTransform::~WaveletTransform" ref="11fdcc2a3ebf9a89c95bef2ff0db98bb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual dirac::WaveletTransform::~WaveletTransform           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="aad94e2749b51264352305eefd901213"></a><!-- doxytag: member="dirac::WaveletTransform::WaveletTransform" ref="aad94e2749b51264352305eefd901213" args="(const WaveletTransform &amp;cpy)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">dirac::WaveletTransform::WaveletTransform           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00142.html">WaveletTransform</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>cpy</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="1cce596a13fda8b342a3670aafa4d2a7"></a><!-- doxytag: member="dirac::WaveletTransform::Transform" ref="1cce596a13fda8b342a3670aafa4d2a7" args="(const Direction d, PicArray &amp;pic_data, CoeffArray &amp;coeff_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dirac::WaveletTransform::Transform           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00226.html#c972efbebbe042dd142790f520369d9c">Direction</a>&nbsp;</td>
          <td class="paramname"> <em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00113.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="a00023.html">CoeffArray</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>coeff_data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Transforms the data to and from the wavelet domain. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>d</em>&nbsp;</td><td>the direction of the transform </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pic_data</em>&nbsp;</td><td>the data to be transformed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>coeff_data</em>&nbsp;</td><td>array that holds the transform coefficient data </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="da9f33dd1bd89c591fd020b673ef30c5"></a><!-- doxytag: member="dirac::WaveletTransform::BandList" ref="da9f33dd1bd89c591fd020b673ef30c5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00136.html">SubbandList</a>&amp; dirac::WaveletTransform::BandList           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="731254ca1f1dff6bdb4d51d34a758402"></a><!-- doxytag: member="dirac::WaveletTransform::BandList" ref="731254ca1f1dff6bdb4d51d34a758402" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="a00136.html">SubbandList</a>&amp; dirac::WaveletTransform::BandList           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="d07c287a93638d48fd68c2e077c98b61"></a><!-- doxytag: member="dirac::WaveletTransform::SetBandWeights" ref="d07c287a93638d48fd68c2e077c98b61" args="(const float cpd, const FrameSort &amp;fsort, const ChromaFormat &amp;cformat, const CompSort csort, const bool field_coding)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dirac::WaveletTransform::SetBandWeights           </td>
          <td>(</td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>cpd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00080.html">FrameSort</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>fsort</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00168.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>cformat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00226.html#39dd89c4c7484412efd87d41548271cd">CompSort</a>&nbsp;</td>
          <td class="paramname"> <em>csort</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool&nbsp;</td>
          <td class="paramname"> <em>field_coding</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets perceptual weights for the subbands. Takes into account both perceptual factors (weight noise less at higher spatial frequencies) and the scaling needed for the wavelet transform.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cpd</em>&nbsp;</td><td>perctual factor - the number of cycles per degree </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fsort</em>&nbsp;</td><td>the frame sort (I, L1 or L2) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cformat</em>&nbsp;</td><td>the chroma format </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>csort</em>&nbsp;</td><td>the component type (Y, U or V) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>field_coding</em>&nbsp;</td><td>True if input is coded as fields </td></tr>
  </table>
</dl>

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

<p>

</div>
</div><p>
<a class="anchor" name="63c22d1afc3f2f924d403f6eb0754590"></a><!-- doxytag: member="dirac::WaveletTransform::PerceptualWeight" ref="63c22d1afc3f2f924d403f6eb0754590" args="(float xf, float yf, CompSort cs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float dirac::WaveletTransform::PerceptualWeight           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>xf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>yf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00226.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 width="100%"><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="b42772d19deacaa4e1edf23e1176ce21"></a><!-- doxytag: member="dirac::WaveletTransform::m_band_list" ref="b42772d19deacaa4e1edf23e1176ce21" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00136.html">SubbandList</a> <a class="el" href="a00142.html#b42772d19deacaa4e1edf23e1176ce21">dirac::WaveletTransform::m_band_list</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

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

<p>

</div>
</div><p>
<a class="anchor" name="95b5b2e110ebf759ce116bb2b935be34"></a><!-- doxytag: member="dirac::WaveletTransform::m_filt_sort" ref="95b5b2e110ebf759ce116bb2b935be34" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00168.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="el" href="a00142.html#95b5b2e110ebf759ce116bb2b935be34">dirac::WaveletTransform::m_filt_sort</a><code> [private]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="f8dd650ea3346056ba1db78c6271abec"></a><!-- doxytag: member="dirac::WaveletTransform::m_vhfilter" ref="f8dd650ea3346056ba1db78c6271abec" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00149.html">VHFilter</a>* <a class="el" href="a00142.html#f8dd650ea3346056ba1db78c6271abec">dirac::WaveletTransform::m_vhfilter</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="a00298.html">wavelet_utils.h</a></ul>
<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>