<!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="a00074.html">GenericBandCodec</a> </div> <div class="contents"> <h1>dirac::GenericBandCodec< EntropyCodec > Class Template Reference</h1><!-- doxytag: class="dirac::GenericBandCodec" --><!-- doxytag: inherits="EntropyCodec" -->A template class for coding and decoding wavelet subband data. <p> <code>#include <<a class="el" href="a00163_source.html">band_codec.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for dirac::GenericBandCodec< EntropyCodec >:</div> <div class="dynsection"> <p><center><img src="a00074.png" usemap="#dirac::GenericBandCodec< EntropyCodec >_map" border="0" alt=""></center> <map name="dirac::GenericBandCodec< EntropyCodec >_map"> <area href="a00067.html" alt="EntropyCodec" shape="rect" coords="0,0,263,24"> </map> </div> <p> <a href="a00280.html">List of all members.</a><h2>Public Member Functions</h2> <ul> <li><a class="el" href="a00074.html#1c9fb92476e3600daa9dce0c63de69e0">GenericBandCodec</a> (<a class="el" href="a00141.html">SubbandByteIO</a> *subband_byteio, size_t number_of_contexts, const <a class="el" href="a00142.html">SubbandList</a> &band_list, int band_num, const bool is_intra) <dl class="el"><dd class="mdescRight">Constructor. <a href="#1c9fb92476e3600daa9dce0c63de69e0"></a><br></dl></ul> <h2>Protected Member Functions</h2> <ul> <li>void <a class="el" href="a00074.html#378f1a73c1e79588e78ff8e080492ad8">CodeVal</a> (<a class="el" href="a00021.html">CoeffArray</a> &in_data, const int xpos, const int ypos, const <a class="el" href="a00234.html#00c36803f51328ff862631abde5071c5">CoeffType</a> val) <dl class="el"><dd class="mdescRight">Code an individual quantised value and perform inverse-quantisation. <a href="#378f1a73c1e79588e78ff8e080492ad8"></a><br></dl><li>void <a class="el" href="a00074.html#f72fefdb67e527ea32af5da0f2842e3a">DecodeVal</a> (<a class="el" href="a00021.html">CoeffArray</a> &out_data, const int xpos, const int ypos) <dl class="el"><dd class="mdescRight">Decode an individual quantised value and perform inverse-quantisation. <a href="#f72fefdb67e527ea32af5da0f2842e3a"></a><br></dl><li>void <a class="el" href="a00074.html#d57a207675f892483f7b4ff07ee92790">CodeQuantIndexOffset</a> (const int offset) <dl class="el"><dd class="mdescRight">Encode the offset for a code block quantiser. <a href="#d57a207675f892483f7b4ff07ee92790"></a><br></dl><li>int <a class="el" href="a00074.html#8e3a31f758d21dff836bd24be36b9b19">DecodeQuantIndexOffset</a> () <dl class="el"><dd class="mdescRight">Decode the offset for a code block quantiser. <a href="#8e3a31f758d21dff836bd24be36b9b19"></a><br></dl><li>void <a class="el" href="a00074.html#45dddd6dbf3bf0ce690a589a4f4abf2b">SetToVal</a> (const <a class="el" href="a00017.html">CodeBlock</a> &code_block, <a class="el" href="a00021.html">CoeffArray</a> &coeff_data, const <a class="el" href="a00234.html#00c36803f51328ff862631abde5071c5">CoeffType</a> val) <dl class="el"><dd class="mdescRight">Set a code block area to a given value. <a href="#45dddd6dbf3bf0ce690a589a4f4abf2b"></a><br></dl><li>virtual void <a class="el" href="a00074.html#c2d0763eea2cc7009674384ba1f9f4c8">ClearBlock</a> (const <a class="el" href="a00017.html">CodeBlock</a> &code_block, <a class="el" href="a00021.html">CoeffArray</a> &coeff_data) <dl class="el"><dd class="mdescRight">Set all block values to 0. <a href="#c2d0763eea2cc7009674384ba1f9f4c8"></a><br></dl><li>virtual void <a class="el" href="a00074.html#fbe9e6a13374a7b030ae28397b84395f">DoWorkCode</a> (<a class="el" href="a00021.html">CoeffArray</a> &in_data) <li>virtual void <a class="el" href="a00074.html#2db4a20896bde64fcae2c6fe35583078">DoWorkDecode</a> (<a class="el" href="a00021.html">CoeffArray</a> &out_data) <li>virtual void <a class="el" href="a00074.html#82bba33f40d880fe55c0a462a7ff8db6">CodeCoeffBlock</a> (const <a class="el" href="a00017.html">CodeBlock</a> &code_block, <a class="el" href="a00021.html">CoeffArray</a> &in_data) <li>virtual void <a class="el" href="a00074.html#3315145099c8a72678ecfa6b74dd3330">DecodeCoeffBlock</a> (const <a class="el" href="a00017.html">CodeBlock</a> &code_block, <a class="el" href="a00021.html">CoeffArray</a> &out_data) <li>virtual void <a class="el" href="a00074.html#e563efd53d42e61b4613bd6f5999e662">CodeCoeff</a> (<a class="el" href="a00021.html">CoeffArray</a> &in_data, const int xpos, const int ypos) <li>virtual void <a class="el" href="a00074.html#9d930a4e0c1fad0e2f16227ec24bbf19">DecodeCoeff</a> (<a class="el" href="a00021.html">CoeffArray</a> &in_data, const int xpos, const int ypos) <li>int <a class="el" href="a00074.html#e79bef95f2eb8c34f1f2d9e8cdf53156">ChooseFollowContext</a> (const int bin_number) const <dl class="el"><dd class="mdescRight">A function for choosing the context for "follow bits". <a href="#e79bef95f2eb8c34f1f2d9e8cdf53156"></a><br></dl><li>int <a class="el" href="a00074.html#0e4d57d640186b168c5bbde6450fd7ce">ChooseInfoContext</a> () const <dl class="el"><dd class="mdescRight">A function for choosing the context for "information bits". <a href="#0e4d57d640186b168c5bbde6450fd7ce"></a><br></dl><li>int <a class="el" href="a00074.html#2b023bf7bf8444e82e0d08709d1bc0e6">ChooseSignContext</a> (const <a class="el" href="a00021.html">CoeffArray</a> &data, const int xpos, const int ypos) const <dl class="el"><dd class="mdescRight">A function for choosing the context for sign bits. <a href="#2b023bf7bf8444e82e0d08709d1bc0e6"></a><br></dl></ul> <h2>Protected Attributes</h2> <ul> <li>bool <a class="el" href="a00074.html#d687ad3ba39d006355520e9a713d300f">m_is_intra</a> <dl class="el"><dd class="mdescRight">Flag indicating whether the band comes from an intra picture. <a href="#d687ad3ba39d006355520e9a713d300f"></a><br></dl><li>int <a class="el" href="a00074.html#1aef1d97a2c215068e7893fb6f8c0713">m_bnum</a> <dl class="el"><dd class="mdescRight">variables <a href="#1aef1d97a2c215068e7893fb6f8c0713"></a><br></dl><li>const <a class="el" href="a00140.html">Subband</a> <a class="el" href="a00074.html#5bdf9e858d0d968c7aff5ec8fa734354">m_node</a> <dl class="el"><dd class="mdescRight">the subband being coded <a href="#5bdf9e858d0d968c7aff5ec8fa734354"></a><br></dl><li>int <a class="el" href="a00074.html#9360259035a54dfe498207b54ac8d8cc">m_last_qf_idx</a> <dl class="el"><dd class="mdescRight">the quantisation index of the last codeblock <a href="#9360259035a54dfe498207b54ac8d8cc"></a><br></dl><li>int <a class="el" href="a00074.html#1708f7ab179ce53cc831954db41761f8">m_qf</a> <dl class="el"><dd class="mdescRight">quantisation value <a href="#1708f7ab179ce53cc831954db41761f8"></a><br></dl><li><a class="el" href="a00234.html#00c36803f51328ff862631abde5071c5">CoeffType</a> <a class="el" href="a00074.html#ad422ae38b33b60ee3bc2c7bcc3550e3">m_offset</a> <dl class="el"><dd class="mdescRight">reconstruction point <a href="#ad422ae38b33b60ee3bc2c7bcc3550e3"></a><br></dl><li>bool <a class="el" href="a00074.html#cddfa7b9085e8724a341f21523cea8a7">m_nhood_nonzero</a> <dl class="el"><dd class="mdescRight">True if neighbours non-zero. <a href="#cddfa7b9085e8724a341f21523cea8a7"></a><br></dl><li><a class="el" href="a00140.html">Subband</a> <a class="el" href="a00074.html#867d5768cd4274c79eb7732b5edcf48f">m_pnode</a> <dl class="el"><dd class="mdescRight">the parent subband <a href="#867d5768cd4274c79eb7732b5edcf48f"></a><br></dl><li>int <a class="el" href="a00074.html#93c094eb97a2ade5a2e62358c27ff1fb">m_pxpos</a> <dl class="el"><dd class="mdescRight">position of the parent coefficient <a href="#93c094eb97a2ade5a2e62358c27ff1fb"></a><br></dl><li>int <a class="el" href="a00074.html#7e49fb7b974f89fd6b834e565c5f6c4a">m_pypos</a> <li>bool <a class="el" href="a00074.html#7f9b63d8cb68f488f78b4b708156fdac">m_parent_notzero</a> <dl class="el"><dd class="mdescRight">True if the parent of a coeff is not zero. <a href="#7f9b63d8cb68f488f78b4b708156fdac"></a><br></dl></ul> <h2>Private Member Functions</h2> <ul> <li><a class="el" href="a00074.html#5c02a059f00a04968e70c4fc1e1eb109">GenericBandCodec</a> (const <a class="el" href="a00074.html">GenericBandCodec</a> &cpy) <dl class="el"><dd class="mdescRight">Private, bodyless copy constructor: class should not be copied. <a href="#5c02a059f00a04968e70c4fc1e1eb109"></a><br></dl><li><a class="el" href="a00074.html">GenericBandCodec</a> & <a class="el" href="a00074.html#14cf3197deecbbc6d622b644c8e8af30">operator=</a> (const <a class="el" href="a00074.html">GenericBandCodec</a> &rhs) <dl class="el"><dd class="mdescRight">Private, bodyless copy operator=: class should not be assigned. <a href="#14cf3197deecbbc6d622b644c8e8af30"></a><br></dl></ul> <h3>template<typename EntropyCodec><br> class dirac::GenericBandCodec< EntropyCodec ></h3> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="1c9fb92476e3600daa9dce0c63de69e0"></a><!-- doxytag: member="dirac::GenericBandCodec::GenericBandCodec" ref="1c9fb92476e3600daa9dce0c63de69e0" args="(SubbandByteIO *subband_byteio, size_t number_of_contexts, const SubbandList &band_list, int band_num, const bool is_intra)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::<a class="el" href="a00074.html">GenericBandCodec</a> </td> <td>(</td> <td class="paramtype"><a class="el" href="a00141.html">SubbandByteIO</a> * </td> <td class="paramname"> <em>subband_byteio</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>number_of_contexts</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00142.html">SubbandList</a> & </td> <td class="paramname"> <em>band_list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>band_num</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const bool </td> <td class="paramname"> <em>is_intra</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 BandCodec object to encode subband data <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>subband_byteio</em> </td><td>input/output for the encoded bits </td></tr> <tr><td valign="top"></td><td valign="top"><em>number_of_contexts</em> </td><td>the number of contexts used in the encoding process </td></tr> <tr><td valign="top"></td><td valign="top"><em>band_list</em> </td><td>the set of all the subbands </td></tr> <tr><td valign="top"></td><td valign="top"><em>band_num</em> </td><td>the number of the subband being coded </td></tr> <tr><td valign="top"></td><td valign="top"><em>is_intra</em> </td><td>Flag indicating whether the band comes from an intra picture </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="5c02a059f00a04968e70c4fc1e1eb109"></a><!-- doxytag: member="dirac::GenericBandCodec::GenericBandCodec" ref="5c02a059f00a04968e70c4fc1e1eb109" args="(const GenericBandCodec &cpy)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::<a class="el" href="a00074.html">GenericBandCodec</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00074.html">GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> > & </td> <td class="paramname"> <em>cpy</em> </td> <td> ) </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="e79bef95f2eb8c34f1f2d9e8cdf53156"></a><!-- doxytag: member="dirac::GenericBandCodec::ChooseFollowContext" ref="e79bef95f2eb8c34f1f2d9e8cdf53156" args="(const int bin_number) const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::ChooseFollowContext </td> <td>(</td> <td class="paramtype">const int </td> <td class="paramname"> <em>bin_number</em> </td> <td> ) </td> <td> const<code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="0e4d57d640186b168c5bbde6450fd7ce"></a><!-- doxytag: member="dirac::GenericBandCodec::ChooseInfoContext" ref="0e4d57d640186b168c5bbde6450fd7ce" args="() const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::ChooseInfoContext </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td> const<code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="2b023bf7bf8444e82e0d08709d1bc0e6"></a><!-- doxytag: member="dirac::GenericBandCodec::ChooseSignContext" ref="2b023bf7bf8444e82e0d08709d1bc0e6" args="(const CoeffArray &data, const int xpos, const int ypos) const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::ChooseSignContext </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00021.html">CoeffArray</a> & </td> <td class="paramname"> <em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"> <em>xpos</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"> <em>ypos</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td> const<code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="c2d0763eea2cc7009674384ba1f9f4c8"></a><!-- doxytag: member="dirac::GenericBandCodec::ClearBlock" ref="c2d0763eea2cc7009674384ba1f9f4c8" args="(const CodeBlock &code_block, CoeffArray &coeff_data)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">virtual void <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::ClearBlock </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00017.html">CodeBlock</a> & </td> <td class="paramname"> <em>code_block</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00021.html">CoeffArray</a> & </td> <td class="paramname"> <em>coeff_data</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>Reimplemented in <a class="el" href="a00075.html#16caf7003248f9bf95200b3c209fee01">dirac::GenericIntraDCBandCodec< EntropyCodec ></a>, <a class="el" href="a00075.html#16caf7003248f9bf95200b3c209fee01">dirac::GenericIntraDCBandCodec< ArithCodec< CoeffArray > ></a>, and <a class="el" href="a00075.html#16caf7003248f9bf95200b3c209fee01">dirac::GenericIntraDCBandCodec< ArithCodecToVLCAdapter ></a>.</p> </div> </div><p> <a class="anchor" name="e563efd53d42e61b4613bd6f5999e662"></a><!-- doxytag: member="dirac::GenericBandCodec::CodeCoeff" ref="e563efd53d42e61b4613bd6f5999e662" args="(CoeffArray &in_data, const int xpos, const int ypos)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">virtual void <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::CodeCoeff </td> <td>(</td> <td class="paramtype"><a class="el" href="a00021.html">CoeffArray</a> & </td> <td class="paramname"> <em>in_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"> <em>xpos</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"> <em>ypos</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>Reimplemented in <a class="el" href="a00079.html#4b8080dd9f86ca3552522310c774913f">dirac::IntraDCBandCodec</a>, and <a class="el" href="a00080.html#03cf887d209572cc51bdf395ca2f5044">dirac::IntraDCBandVLC</a>.</p> </div> </div><p> <a class="anchor" name="82bba33f40d880fe55c0a462a7ff8db6"></a><!-- doxytag: member="dirac::GenericBandCodec::CodeCoeffBlock" ref="82bba33f40d880fe55c0a462a7ff8db6" args="(const CodeBlock &code_block, CoeffArray &in_data)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">virtual void <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::CodeCoeffBlock </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00017.html">CodeBlock</a> & </td> <td class="paramname"> <em>code_block</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00021.html">CoeffArray</a> & </td> <td class="paramname"> <em>in_data</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> </div> </div><p> <a class="anchor" name="d57a207675f892483f7b4ff07ee92790"></a><!-- doxytag: member="dirac::GenericBandCodec::CodeQuantIndexOffset" ref="d57a207675f892483f7b4ff07ee92790" args="(const int offset)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::CodeQuantIndexOffset </td> <td>(</td> <td class="paramtype">const int </td> <td class="paramname"> <em>offset</em> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="378f1a73c1e79588e78ff8e080492ad8"></a><!-- doxytag: member="dirac::GenericBandCodec::CodeVal" ref="378f1a73c1e79588e78ff8e080492ad8" args="(CoeffArray &in_data, const int xpos, const int ypos, const CoeffType val)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::CodeVal </td> <td>(</td> <td class="paramtype"><a class="el" href="a00021.html">CoeffArray</a> & </td> <td class="paramname"> <em>in_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"> <em>xpos</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"> <em>ypos</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00234.html#00c36803f51328ff862631abde5071c5">CoeffType</a> </td> <td class="paramname"> <em>val</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="9d930a4e0c1fad0e2f16227ec24bbf19"></a><!-- doxytag: member="dirac::GenericBandCodec::DecodeCoeff" ref="9d930a4e0c1fad0e2f16227ec24bbf19" args="(CoeffArray &in_data, const int xpos, const int ypos)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">virtual void <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::DecodeCoeff </td> <td>(</td> <td class="paramtype"><a class="el" href="a00021.html">CoeffArray</a> & </td> <td class="paramname"> <em>in_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"> <em>xpos</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"> <em>ypos</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>Reimplemented in <a class="el" href="a00079.html#552d6119c66ae1b84264879bf850f0c5">dirac::IntraDCBandCodec</a>.</p> </div> </div><p> <a class="anchor" name="3315145099c8a72678ecfa6b74dd3330"></a><!-- doxytag: member="dirac::GenericBandCodec::DecodeCoeffBlock" ref="3315145099c8a72678ecfa6b74dd3330" args="(const CodeBlock &code_block, CoeffArray &out_data)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">virtual void <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::DecodeCoeffBlock </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00017.html">CodeBlock</a> & </td> <td class="paramname"> <em>code_block</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00021.html">CoeffArray</a> & </td> <td class="paramname"> <em>out_data</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>Reimplemented in <a class="el" href="a00075.html#f2cf7da0868304a23d5ec3de76efb40b">dirac::GenericIntraDCBandCodec< EntropyCodec ></a>, <a class="el" href="a00075.html#f2cf7da0868304a23d5ec3de76efb40b">dirac::GenericIntraDCBandCodec< ArithCodec< CoeffArray > ></a>, and <a class="el" href="a00075.html#f2cf7da0868304a23d5ec3de76efb40b">dirac::GenericIntraDCBandCodec< ArithCodecToVLCAdapter ></a>.</p> </div> </div><p> <a class="anchor" name="8e3a31f758d21dff836bd24be36b9b19"></a><!-- doxytag: member="dirac::GenericBandCodec::DecodeQuantIndexOffset" ref="8e3a31f758d21dff836bd24be36b9b19" args="()" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::DecodeQuantIndexOffset </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="f72fefdb67e527ea32af5da0f2842e3a"></a><!-- doxytag: member="dirac::GenericBandCodec::DecodeVal" ref="f72fefdb67e527ea32af5da0f2842e3a" args="(CoeffArray &out_data, const int xpos, const int ypos)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::DecodeVal </td> <td>(</td> <td class="paramtype"><a class="el" href="a00021.html">CoeffArray</a> & </td> <td class="paramname"> <em>out_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"> <em>xpos</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"> <em>ypos</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="fbe9e6a13374a7b030ae28397b84395f"></a><!-- doxytag: member="dirac::GenericBandCodec::DoWorkCode" ref="fbe9e6a13374a7b030ae28397b84395f" args="(CoeffArray &in_data)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">virtual void <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::DoWorkCode </td> <td>(</td> <td class="paramtype"><a class="el" href="a00021.html">CoeffArray</a> & </td> <td class="paramname"> <em>in_data</em> </td> <td> ) </td> <td><code> [protected, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>Reimplemented in <a class="el" href="a00079.html#f0fe3814042ee758a6988d7b5e997101">dirac::IntraDCBandCodec</a>.</p> </div> </div><p> <a class="anchor" name="2db4a20896bde64fcae2c6fe35583078"></a><!-- doxytag: member="dirac::GenericBandCodec::DoWorkDecode" ref="2db4a20896bde64fcae2c6fe35583078" args="(CoeffArray &out_data)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">virtual void <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::DoWorkDecode </td> <td>(</td> <td class="paramtype"><a class="el" href="a00021.html">CoeffArray</a> & </td> <td class="paramname"> <em>out_data</em> </td> <td> ) </td> <td><code> [protected, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>Reimplemented in <a class="el" href="a00079.html#310cf073898fe6f4c6ac46a88e87086b">dirac::IntraDCBandCodec</a>.</p> </div> </div><p> <a class="anchor" name="14cf3197deecbbc6d622b644c8e8af30"></a><!-- doxytag: member="dirac::GenericBandCodec::operator=" ref="14cf3197deecbbc6d622b644c8e8af30" args="(const GenericBandCodec &rhs)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00074.html">GenericBandCodec</a>& <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00074.html">GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> > & </td> <td class="paramname"> <em>rhs</em> </td> <td> ) </td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="45dddd6dbf3bf0ce690a589a4f4abf2b"></a><!-- doxytag: member="dirac::GenericBandCodec::SetToVal" ref="45dddd6dbf3bf0ce690a589a4f4abf2b" args="(const CodeBlock &code_block, CoeffArray &coeff_data, const CoeffType val)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::SetToVal </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00017.html">CodeBlock</a> & </td> <td class="paramname"> <em>code_block</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00021.html">CoeffArray</a> & </td> <td class="paramname"> <em>coeff_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00234.html#00c36803f51328ff862631abde5071c5">CoeffType</a> </td> <td class="paramname"> <em>val</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline, protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="1aef1d97a2c215068e7893fb6f8c0713"></a><!-- doxytag: member="dirac::GenericBandCodec::m_bnum" ref="1aef1d97a2c215068e7893fb6f8c0713" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::<a class="el" href="a00074.html#1aef1d97a2c215068e7893fb6f8c0713">m_bnum</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="d687ad3ba39d006355520e9a713d300f"></a><!-- doxytag: member="dirac::GenericBandCodec::m_is_intra" ref="d687ad3ba39d006355520e9a713d300f" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::<a class="el" href="a00074.html#d687ad3ba39d006355520e9a713d300f">m_is_intra</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="9360259035a54dfe498207b54ac8d8cc"></a><!-- doxytag: member="dirac::GenericBandCodec::m_last_qf_idx" ref="9360259035a54dfe498207b54ac8d8cc" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::<a class="el" href="a00074.html#9360259035a54dfe498207b54ac8d8cc">m_last_qf_idx</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="cddfa7b9085e8724a341f21523cea8a7"></a><!-- doxytag: member="dirac::GenericBandCodec::m_nhood_nonzero" ref="cddfa7b9085e8724a341f21523cea8a7" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::<a class="el" href="a00074.html#cddfa7b9085e8724a341f21523cea8a7">m_nhood_nonzero</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="5bdf9e858d0d968c7aff5ec8fa734354"></a><!-- doxytag: member="dirac::GenericBandCodec::m_node" ref="5bdf9e858d0d968c7aff5ec8fa734354" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">const <a class="el" href="a00140.html">Subband</a> <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::<a class="el" href="a00074.html#5bdf9e858d0d968c7aff5ec8fa734354">m_node</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="ad422ae38b33b60ee3bc2c7bcc3550e3"></a><!-- doxytag: member="dirac::GenericBandCodec::m_offset" ref="ad422ae38b33b60ee3bc2c7bcc3550e3" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00234.html#00c36803f51328ff862631abde5071c5">CoeffType</a> <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::<a class="el" href="a00074.html#ad422ae38b33b60ee3bc2c7bcc3550e3">m_offset</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="7f9b63d8cb68f488f78b4b708156fdac"></a><!-- doxytag: member="dirac::GenericBandCodec::m_parent_notzero" ref="7f9b63d8cb68f488f78b4b708156fdac" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::<a class="el" href="a00074.html#7f9b63d8cb68f488f78b4b708156fdac">m_parent_notzero</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="867d5768cd4274c79eb7732b5edcf48f"></a><!-- doxytag: member="dirac::GenericBandCodec::m_pnode" ref="867d5768cd4274c79eb7732b5edcf48f" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00140.html">Subband</a> <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::<a class="el" href="a00074.html#867d5768cd4274c79eb7732b5edcf48f">m_pnode</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="93c094eb97a2ade5a2e62358c27ff1fb"></a><!-- doxytag: member="dirac::GenericBandCodec::m_pxpos" ref="93c094eb97a2ade5a2e62358c27ff1fb" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::<a class="el" href="a00074.html#93c094eb97a2ade5a2e62358c27ff1fb">m_pxpos</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="7e49fb7b974f89fd6b834e565c5f6c4a"></a><!-- doxytag: member="dirac::GenericBandCodec::m_pypos" ref="7e49fb7b974f89fd6b834e565c5f6c4a" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::<a class="el" href="a00074.html#7e49fb7b974f89fd6b834e565c5f6c4a">m_pypos</a><code> [protected]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="1708f7ab179ce53cc831954db41761f8"></a><!-- doxytag: member="dirac::GenericBandCodec::m_qf" ref="1708f7ab179ce53cc831954db41761f8" args="" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename EntropyCodec> </div> <table class="memname"> <tr> <td class="memname">int <a class="el" href="a00074.html">dirac::GenericBandCodec</a>< <a class="el" href="a00067.html">EntropyCodec</a> >::<a class="el" href="a00074.html#1708f7ab179ce53cc831954db41761f8">m_qf</a><code> [protected]</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="a00163_source.html">band_codec.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>