Sophie

Sophie

distrib > Mageia > 6 > x86_64 > media > core-updates > by-pkgid > 3ed7a08dfe3e0b575957c42a1a1f5970 > files > 17

libpgf-doc-6.12.24-7.1.mga6.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libpgf: Encoder.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="PGF.PNG"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">libpgf
   &#160;<span id="projectnumber">6.12.24</span>
   </div>
   <div id="projectbrief">PGF - Progressive Graphics File</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('Encoder_8h_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Encoder.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="Encoder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * The Progressive Graphics File; http://www.libpgf.org</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * </span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * $Date: 2006-06-04 22:05:59 +0200 (So, 04 Jun 2006) $</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * $Revision: 229 $</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * </span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * This file Copyright (C) 2006 xeraina GmbH, Switzerland</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * </span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * modify it under the terms of the GNU LESSER GENERAL PUBLIC LICENSE</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * as published by the Free Software Foundation; either version 2.1</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * of the License, or (at your option) any later version.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * </span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * </span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#ifndef PGF_ENCODER_H</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#define PGF_ENCODER_H</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PGFstream_8h.html">PGFstream.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="BitStream_8h.html">BitStream.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Subband_8h.html">Subband.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="WaveletTransform_8h.html">WaveletTransform.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment">// Constants</span></div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="Encoder_8h.html#a309eafbca7ed5953ef9102861479f4ed">   39</a></span>&#160;<span class="preprocessor">#define BufferLen                       (BufferSize/WordWidth)  </span></div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="Encoder_8h.html#a05a74e73e6c734fcad194efbca053ed5">   40</a></span>&#160;<span class="preprocessor">#define CodeBufferLen           BufferSize                              </span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor"></span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keyword">class </span><a class="code" href="classCEncoder.html">CEncoder</a> {</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classCEncoder_1_1CMacroBlock.html">   51</a></span>&#160;        <span class="keyword">class </span><a class="code" href="classCEncoder_1_1CMacroBlock.html">CMacroBlock</a> {</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <span class="keyword">public</span>:</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classCEncoder_1_1CMacroBlock.html#a70f3cc1cb204a4bcce871bf6b5b134f6">   56</a></span>&#160;                <a class="code" href="classCEncoder_1_1CMacroBlock.html#a70f3cc1cb204a4bcce871bf6b5b134f6">CMacroBlock</a>(<a class="code" href="classCEncoder.html">CEncoder</a> *encoder)</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                : <a class="code" href="classCEncoder_1_1CMacroBlock.html#aa5abc7cc9df3402a233367f0087168f8">m_header</a>(0)</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                , <a class="code" href="classCEncoder_1_1CMacroBlock.html#adf5e8e4952216e6fdd189224618edd50">m_encoder</a>(encoder)</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                {</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                        ASSERT(<a class="code" href="classCEncoder_1_1CMacroBlock.html#adf5e8e4952216e6fdd189224618edd50">m_encoder</a>);</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                        <a class="code" href="classCEncoder_1_1CMacroBlock.html#af3ecc039cc0e3000b394c15265107b38">Init</a>(-1);</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                }</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classCEncoder_1_1CMacroBlock.html#af3ecc039cc0e3000b394c15265107b38">   67</a></span>&#160;                <span class="keywordtype">void</span> <a class="code" href="classCEncoder_1_1CMacroBlock.html#af3ecc039cc0e3000b394c15265107b38">Init</a>(<span class="keywordtype">int</span> lastLevelIndex) {                         <span class="comment">// initialize for reusage</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                        <a class="code" href="classCEncoder_1_1CMacroBlock.html#a7ab47e29ad9e3397869fdfb50b53e035">m_valuePos</a> = 0;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                        <a class="code" href="classCEncoder_1_1CMacroBlock.html#a865f294ffa568a165224c2105bf1bb01">m_maxAbsValue</a> = 0;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                        <a class="code" href="classCEncoder_1_1CMacroBlock.html#a6e15685fcab5aa06f0f5ed17312774c7">m_codePos</a> = 0;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                        <a class="code" href="classCEncoder_1_1CMacroBlock.html#a68163a823248889d9d407f4b0331245d">m_lastLevelIndex</a> = lastLevelIndex;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                }</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                <span class="keywordtype">void</span> <a class="code" href="classCEncoder_1_1CMacroBlock.html#af95842ac15879ab2b3a9b5232bb4f1a5">BitplaneEncode</a>();</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classCEncoder_1_1CMacroBlock.html#a139b60f3f0d76b9158573e4d897423d6">   80</a></span>&#160;                <a class="code" href="PGFtypes_8h.html#acb1ee3f52ccfad782dcaa0abd79e5d05">DataT</a>   <a class="code" href="classCEncoder_1_1CMacroBlock.html#a139b60f3f0d76b9158573e4d897423d6">m_value</a>[<a class="code" href="PGFtypes_8h.html#aa362edf6db9662acf6ef958a6db19c35">BufferSize</a>];                            </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classCEncoder_1_1CMacroBlock.html#a527667f1e0529ff577dcbe7f0aa38d77">   81</a></span>&#160;                UINT32  <a class="code" href="classCEncoder_1_1CMacroBlock.html#a527667f1e0529ff577dcbe7f0aa38d77">m_codeBuffer</a>[<a class="code" href="Encoder_8h.html#a05a74e73e6c734fcad194efbca053ed5">CodeBufferLen</a>];            </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classCEncoder_1_1CMacroBlock.html#aa5abc7cc9df3402a233367f0087168f8">   82</a></span>&#160;                <a class="code" href="unionROIBlockHeader.html">ROIBlockHeader</a> <a class="code" href="classCEncoder_1_1CMacroBlock.html#aa5abc7cc9df3402a233367f0087168f8">m_header</a>;                                        </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classCEncoder_1_1CMacroBlock.html#a7ab47e29ad9e3397869fdfb50b53e035">   83</a></span>&#160;                UINT32  <a class="code" href="classCEncoder_1_1CMacroBlock.html#a7ab47e29ad9e3397869fdfb50b53e035">m_valuePos</a>;                                                     </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classCEncoder_1_1CMacroBlock.html#a865f294ffa568a165224c2105bf1bb01">   84</a></span>&#160;                UINT32  <a class="code" href="classCEncoder_1_1CMacroBlock.html#a865f294ffa568a165224c2105bf1bb01">m_maxAbsValue</a>;                                          </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classCEncoder_1_1CMacroBlock.html#a6e15685fcab5aa06f0f5ed17312774c7">   85</a></span>&#160;                UINT32  <a class="code" href="classCEncoder_1_1CMacroBlock.html#a6e15685fcab5aa06f0f5ed17312774c7">m_codePos</a>;                                                      </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classCEncoder_1_1CMacroBlock.html#a68163a823248889d9d407f4b0331245d">   86</a></span>&#160;                <span class="keywordtype">int</span>             <a class="code" href="classCEncoder_1_1CMacroBlock.html#a68163a823248889d9d407f4b0331245d">m_lastLevelIndex</a>;                                       </div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <span class="keyword">private</span>:</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;                UINT32 <a class="code" href="classCEncoder_1_1CMacroBlock.html#a50637f0c6ccc3d29b10063204a55253b">RLESigns</a>(UINT32 codePos, UINT32* signBits, UINT32 signLen);</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                UINT32 <a class="code" href="classCEncoder_1_1CMacroBlock.html#a171a6f1d0d6297823542acc3cb43338a">DecomposeBitplane</a>(UINT32 bufferSize, UINT32 planeMask, UINT32 codePos, UINT32* sigBits, UINT32* refBits, UINT32* signBits, UINT32&amp; signLen, UINT32&amp; codeLen);</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;                UINT8  <a class="code" href="classCEncoder_1_1CMacroBlock.html#a152834c140a4fcf478a2295eb247f4d4">NumberOfBitplanes</a>();</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classCEncoder_1_1CMacroBlock.html#a84aa40ee75fb9d993c0cec207b4092e3">   92</a></span>&#160;                <span class="keywordtype">bool</span>   <a class="code" href="classCEncoder_1_1CMacroBlock.html#a84aa40ee75fb9d993c0cec207b4092e3">GetBitAtPos</a>(UINT32 pos, UINT32 planeMask)<span class="keyword"> const  </span>{ <span class="keywordflow">return</span> (abs(m_value[pos]) &amp; planeMask) &gt; 0; } </div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classCEncoder_1_1CMacroBlock.html#adf5e8e4952216e6fdd189224618edd50">   94</a></span>&#160;                <a class="code" href="classCEncoder.html">CEncoder</a> *<a class="code" href="classCEncoder_1_1CMacroBlock.html#adf5e8e4952216e6fdd189224618edd50">m_encoder</a>;                                            <span class="comment">// encoder instance</span></div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classCEncoder_1_1CMacroBlock.html#a7acaa42598512b958d5e16b8bcded13b">   95</a></span>&#160;                <span class="keywordtype">bool</span>    <a class="code" href="classCEncoder_1_1CMacroBlock.html#a7acaa42598512b958d5e16b8bcded13b">m_sigFlagVector</a>[<a class="code" href="PGFtypes_8h.html#aa362edf6db9662acf6ef958a6db19c35">BufferSize</a>+1];          <span class="comment">// see paper from Malvar, Fast Progressive Wavelet Coder</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        };</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <a class="code" href="classCEncoder.html#ad4abed11dca812bdb0d2f9715e6de4da">CEncoder</a>(<a class="code" href="classCPGFStream.html">CPGFStream</a>* stream, <a class="code" href="structPGFPreHeader.html">PGFPreHeader</a> preHeader, <a class="code" href="structPGFHeader.html">PGFHeader</a> header, <span class="keyword">const</span> <a class="code" href="structPGFPostHeader.html">PGFPostHeader</a>&amp; postHeader, </div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                UINT64&amp; userDataPos, <span class="keywordtype">bool</span> useOMP) THROW_; <span class="comment">// throws IOException</span></div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <a class="code" href="classCEncoder.html#aa6b7126b6e24bd115348fa6243756f47">~CEncoder</a>();</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classCEncoder.html#aa2ffd887a5d8b2e63dfa5b7188ca49f1">  117</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classCEncoder.html#aa2ffd887a5d8b2e63dfa5b7188ca49f1">FavorSpeedOverSize</a>() { <a class="code" href="classCEncoder.html#a1d51c113f3f7f4f2c94bd7a8c05c12ee">m_favorSpeed</a> = <span class="keyword">true</span>; }</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classCEncoder.html#a2491bafd532b4f6bcc5505cc0857078c">Flush</a>() THROW_;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classCEncoder.html#af1772564b2558115a6e0f4b6bdfb1873">UpdatePostHeaderSize</a>(<a class="code" href="structPGFPreHeader.html">PGFPreHeader</a> preHeader) THROW_;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        UINT32 <a class="code" href="classCEncoder.html#a9e9bde69d4e28e6752adb7f593adfaaf">WriteLevelLength</a>(UINT32*&amp; levelLength) THROW_;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        UINT32 <a class="code" href="classCEncoder.html#aabc52a41473071a2b4c5ddb7459dd264">UpdateLevelLength</a>() THROW_;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classCEncoder.html#ab2b090edf99019e23f4264a6d76469bc">Partition</a>(<a class="code" href="classCSubband.html">CSubband</a>* band, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">int</span> startPos, <span class="keywordtype">int</span> pitch) THROW_;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classCEncoder.html#acff251105003f4a4376a01180dbdc757">  158</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classCEncoder.html#acff251105003f4a4376a01180dbdc757">SetEncodedLevel</a>(<span class="keywordtype">int</span> currentLevel) { ASSERT(currentLevel &gt;= 0); <a class="code" href="classCEncoder.html#a55d6f2b3aeea93c52bd0a39af9f5db8b">m_currentBlock</a>-&gt;<a class="code" href="classCEncoder_1_1CMacroBlock.html#a68163a823248889d9d407f4b0331245d">m_lastLevelIndex</a> = <a class="code" href="classCEncoder.html#a821892e5cf7a82b43898bc4e15717bfb">m_nLevels</a> - currentLevel - 1; <a class="code" href="classCEncoder.html#a52d2d5a49f3f6994f67cae1e2176f968">m_forceWriting</a> = <span class="keyword">true</span>; }</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classCEncoder.html#a75534facc647f53982bcfd72c1caa540">WriteValue</a>(<a class="code" href="classCSubband.html">CSubband</a>* band, <span class="keywordtype">int</span> bandPos) THROW_;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classCEncoder.html#a5c8dc9273c8a17ce72e86fec5f389112">  170</a></span>&#160;        INT64 <a class="code" href="classCEncoder.html#a5c8dc9273c8a17ce72e86fec5f389112">ComputeHeaderLength</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classCEncoder.html#a5409bc51f3d922d43b5bcad3b8f2c8aa">m_levelLengthPos</a> - <a class="code" href="classCEncoder.html#a32012be0814bbc611963517e482d1111">m_startPosition</a>; }</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classCEncoder.html#a41cb748b6797fc6de436e546f3d76ff2">  175</a></span>&#160;        INT64 <a class="code" href="classCEncoder.html#a41cb748b6797fc6de436e546f3d76ff2">ComputeBufferLength</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classCEncoder.html#ad01ad5ea3003064b00516dad191d3499">m_stream</a>-&gt;<a class="code" href="classCPGFStream.html#a841e109647ea77dd9e589ab00ef4aad8">GetPos</a>() - <a class="code" href="classCEncoder.html#a17309ba6d30988bf1e6d02ea51a55825">m_bufferStartPos</a>; }</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classCEncoder.html#a8aadfcf080fad9a5cd82b532dc847d5b">  180</a></span>&#160;        INT64 <a class="code" href="classCEncoder.html#a8aadfcf080fad9a5cd82b532dc847d5b">ComputeOffset</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classCEncoder.html#ad01ad5ea3003064b00516dad191d3499">m_stream</a>-&gt;<a class="code" href="classCPGFStream.html#a841e109647ea77dd9e589ab00ef4aad8">GetPos</a>() - <a class="code" href="classCEncoder.html#a5409bc51f3d922d43b5bcad3b8f2c8aa">m_levelLengthPos</a>; }</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classCEncoder.html#a0b2fefcc1d7c95b14e62c71caa1e4fdb">  184</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classCEncoder.html#a0b2fefcc1d7c95b14e62c71caa1e4fdb">SetBufferStartPos</a>() { <a class="code" href="classCEncoder.html#a17309ba6d30988bf1e6d02ea51a55825">m_bufferStartPos</a> = <a class="code" href="classCEncoder.html#ad01ad5ea3003064b00516dad191d3499">m_stream</a>-&gt;<a class="code" href="classCPGFStream.html#a841e109647ea77dd9e589ab00ef4aad8">GetPos</a>(); }</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="preprocessor">#ifdef __PGFROISUPPORT__</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <span class="keywordtype">void</span> EncodeTileBuffer() THROW_  { ASSERT(<a class="code" href="classCEncoder.html#a55d6f2b3aeea93c52bd0a39af9f5db8b">m_currentBlock</a> &amp;&amp; <a class="code" href="classCEncoder.html#a55d6f2b3aeea93c52bd0a39af9f5db8b">m_currentBlock</a>-&gt;<a class="code" href="classCEncoder_1_1CMacroBlock.html#a7ab47e29ad9e3397869fdfb50b53e035">m_valuePos</a> &gt;= 0 &amp;&amp; <a class="code" href="classCEncoder.html#a55d6f2b3aeea93c52bd0a39af9f5db8b">m_currentBlock</a>-&gt;<a class="code" href="classCEncoder_1_1CMacroBlock.html#a7ab47e29ad9e3397869fdfb50b53e035">m_valuePos</a> &lt;= <a class="code" href="PGFtypes_8h.html#aa362edf6db9662acf6ef958a6db19c35">BufferSize</a>); <a class="code" href="classCEncoder.html#adc7b22b8775517e9da0b7aff4ee865cb">EncodeBuffer</a>(<a class="code" href="unionROIBlockHeader.html">ROIBlockHeader</a>(<a class="code" href="classCEncoder.html#a55d6f2b3aeea93c52bd0a39af9f5db8b">m_currentBlock</a>-&gt;<a class="code" href="classCEncoder_1_1CMacroBlock.html#a7ab47e29ad9e3397869fdfb50b53e035">m_valuePos</a>, <span class="keyword">true</span>)); }</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        <span class="keywordtype">void</span> SetROI()                                   { m_roi = <span class="keyword">true</span>; }</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="preprocessor">#ifdef TRACE</span></div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        <span class="keywordtype">void</span> DumpBuffer() <span class="keyword">const</span>;</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classCEncoder.html#adc7b22b8775517e9da0b7aff4ee865cb">EncodeBuffer</a>(<a class="code" href="unionROIBlockHeader.html">ROIBlockHeader</a> h) THROW_; <span class="comment">// throws IOException</span></div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classCEncoder.html#a5c54a254b5ddcbe8eaf3bfcb082afcda">WriteMacroBlock</a>(<a class="code" href="classCEncoder_1_1CMacroBlock.html">CMacroBlock</a>* block) THROW_; <span class="comment">// throws IOException</span></div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classCEncoder.html#ad01ad5ea3003064b00516dad191d3499">  205</a></span>&#160;        <a class="code" href="classCPGFStream.html">CPGFStream</a> *<a class="code" href="classCEncoder.html#ad01ad5ea3003064b00516dad191d3499">m_stream</a>;                                           </div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classCEncoder.html#a32012be0814bbc611963517e482d1111">  206</a></span>&#160;        UINT64  <a class="code" href="classCEncoder.html#a32012be0814bbc611963517e482d1111">m_startPosition</a>;                                        </div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classCEncoder.html#a5409bc51f3d922d43b5bcad3b8f2c8aa">  207</a></span>&#160;        UINT64  <a class="code" href="classCEncoder.html#a5409bc51f3d922d43b5bcad3b8f2c8aa">m_levelLengthPos</a>;                                       </div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classCEncoder.html#a17309ba6d30988bf1e6d02ea51a55825">  208</a></span>&#160;        UINT64  <a class="code" href="classCEncoder.html#a17309ba6d30988bf1e6d02ea51a55825">m_bufferStartPos</a>;                                       </div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classCEncoder.html#a6f4684ae62c14fcf22ff29e7ac8f5bc2">  210</a></span>&#160;        <a class="code" href="classCEncoder_1_1CMacroBlock.html">CMacroBlock</a> **<a class="code" href="classCEncoder.html#a6f4684ae62c14fcf22ff29e7ac8f5bc2">m_macroBlocks</a>;                            </div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classCEncoder.html#aeed23492e6a3d093c919708da3cc04d2">  211</a></span>&#160;        <span class="keywordtype">int</span>             <a class="code" href="classCEncoder.html#aeed23492e6a3d093c919708da3cc04d2">m_macroBlockLen</a>;                                        </div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classCEncoder.html#aac446c96d95a90bb005019aef2d18284">  212</a></span>&#160;        <span class="keywordtype">int</span>             <a class="code" href="classCEncoder.html#aac446c96d95a90bb005019aef2d18284">m_lastMacroBlock</a>;                                       </div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classCEncoder.html#a55d6f2b3aeea93c52bd0a39af9f5db8b">  213</a></span>&#160;        <a class="code" href="classCEncoder_1_1CMacroBlock.html">CMacroBlock</a> *<a class="code" href="classCEncoder.html#a55d6f2b3aeea93c52bd0a39af9f5db8b">m_currentBlock</a>;                            </div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classCEncoder.html#a6eba5be82f05684ca2574f36f8945717">  215</a></span>&#160;        UINT32* <a class="code" href="classCEncoder.html#a6eba5be82f05684ca2574f36f8945717">m_levelLength</a>;                                          </div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="classCEncoder.html#a883026518a92ae6ed2aad8c9ed459b12">  216</a></span>&#160;        <span class="keywordtype">int</span>     <a class="code" href="classCEncoder.html#a883026518a92ae6ed2aad8c9ed459b12">m_currLevelIndex</a>;                                       </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classCEncoder.html#a821892e5cf7a82b43898bc4e15717bfb">  217</a></span>&#160;        UINT8   <a class="code" href="classCEncoder.html#a821892e5cf7a82b43898bc4e15717bfb">m_nLevels</a>;                                                      </div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classCEncoder.html#a1d51c113f3f7f4f2c94bd7a8c05c12ee">  218</a></span>&#160;        <span class="keywordtype">bool</span>    <a class="code" href="classCEncoder.html#a1d51c113f3f7f4f2c94bd7a8c05c12ee">m_favorSpeed</a>;                                           </div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classCEncoder.html#a52d2d5a49f3f6994f67cae1e2176f968">  219</a></span>&#160;        <span class="keywordtype">bool</span>    <a class="code" href="classCEncoder.html#a52d2d5a49f3f6994f67cae1e2176f968">m_forceWriting</a>;                                         </div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="preprocessor">#ifdef __PGFROISUPPORT__</span></div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        <span class="keywordtype">bool</span>    m_roi;                                                          </div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;};</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="preprocessor">#endif //PGF_ENCODER</span></div><div class="ttc" id="classCEncoder_1_1CMacroBlock_html_a152834c140a4fcf478a2295eb247f4d4"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#a152834c140a4fcf478a2295eb247f4d4">CEncoder::CMacroBlock::NumberOfBitplanes</a></div><div class="ttdeci">UINT8 NumberOfBitplanes()</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8cpp_source.html#l00736">Encoder.cpp:736</a></div></div>
<div class="ttc" id="classCEncoder_html_aeed23492e6a3d093c919708da3cc04d2"><div class="ttname"><a href="classCEncoder.html#aeed23492e6a3d093c919708da3cc04d2">CEncoder::m_macroBlockLen</a></div><div class="ttdeci">int m_macroBlockLen</div><div class="ttdoc">array length </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00211">Encoder.h:211</a></div></div>
<div class="ttc" id="classCEncoder_html_a0b2fefcc1d7c95b14e62c71caa1e4fdb"><div class="ttname"><a href="classCEncoder.html#a0b2fefcc1d7c95b14e62c71caa1e4fdb">CEncoder::SetBufferStartPos</a></div><div class="ttdeci">void SetBufferStartPos()</div><div class="ttdoc">Save current stream position as beginning of current level. </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00184">Encoder.h:184</a></div></div>
<div class="ttc" id="classCEncoder_html_a5c54a254b5ddcbe8eaf3bfcb082afcda"><div class="ttname"><a href="classCEncoder.html#a5c54a254b5ddcbe8eaf3bfcb082afcda">CEncoder::WriteMacroBlock</a></div><div class="ttdeci">void WriteMacroBlock(CMacroBlock *block) THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8cpp_source.html#l00395">Encoder.cpp:395</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html_a7ab47e29ad9e3397869fdfb50b53e035"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#a7ab47e29ad9e3397869fdfb50b53e035">CEncoder::CMacroBlock::m_valuePos</a></div><div class="ttdeci">UINT32 m_valuePos</div><div class="ttdoc">current buffer position </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00083">Encoder.h:83</a></div></div>
<div class="ttc" id="classCPGFStream_html"><div class="ttname"><a href="classCPGFStream.html">CPGFStream</a></div><div class="ttdoc">Abstract stream base class. </div><div class="ttdef"><b>Definition:</b> <a href="PGFstream_8h_source.html#l00039">PGFstream.h:39</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html_a68163a823248889d9d407f4b0331245d"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#a68163a823248889d9d407f4b0331245d">CEncoder::CMacroBlock::m_lastLevelIndex</a></div><div class="ttdeci">int m_lastLevelIndex</div><div class="ttdoc">index of last encoded level: [0, nLevels); used because a level-end can occur before a buffer is full...</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00086">Encoder.h:86</a></div></div>
<div class="ttc" id="classCEncoder_html_a2491bafd532b4f6bcc5505cc0857078c"><div class="ttname"><a href="classCEncoder.html#a2491bafd532b4f6bcc5505cc0857078c">CEncoder::Flush</a></div><div class="ttdeci">void Flush() THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8cpp_source.html#l00305">Encoder.cpp:305</a></div></div>
<div class="ttc" id="PGFtypes_8h_html_acb1ee3f52ccfad782dcaa0abd79e5d05"><div class="ttname"><a href="PGFtypes_8h.html#acb1ee3f52ccfad782dcaa0abd79e5d05">DataT</a></div><div class="ttdeci">INT32 DataT</div><div class="ttdef"><b>Definition:</b> <a href="PGFtypes_8h_source.html#l00219">PGFtypes.h:219</a></div></div>
<div class="ttc" id="classCEncoder_html_aa6b7126b6e24bd115348fa6243756f47"><div class="ttname"><a href="classCEncoder.html#aa6b7126b6e24bd115348fa6243756f47">CEncoder::~CEncoder</a></div><div class="ttdeci">~CEncoder()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8cpp_source.html#l00146">Encoder.cpp:146</a></div></div>
<div class="ttc" id="PGFtypes_8h_html_aa362edf6db9662acf6ef958a6db19c35"><div class="ttname"><a href="PGFtypes_8h.html#aa362edf6db9662acf6ef958a6db19c35">BufferSize</a></div><div class="ttdeci">#define BufferSize</div><div class="ttdoc">must be a multiple of WordWidth </div><div class="ttdef"><b>Definition:</b> <a href="PGFtypes_8h_source.html#l00077">PGFtypes.h:77</a></div></div>
<div class="ttc" id="BitStream_8h_html"><div class="ttname"><a href="BitStream_8h.html">BitStream.h</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html_a865f294ffa568a165224c2105bf1bb01"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#a865f294ffa568a165224c2105bf1bb01">CEncoder::CMacroBlock::m_maxAbsValue</a></div><div class="ttdeci">UINT32 m_maxAbsValue</div><div class="ttdoc">maximum absolute coefficient in each buffer </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00084">Encoder.h:84</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html_a6e15685fcab5aa06f0f5ed17312774c7"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#a6e15685fcab5aa06f0f5ed17312774c7">CEncoder::CMacroBlock::m_codePos</a></div><div class="ttdeci">UINT32 m_codePos</div><div class="ttdoc">current position in encoded bitstream </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00085">Encoder.h:85</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html_a50637f0c6ccc3d29b10063204a55253b"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#a50637f0c6ccc3d29b10063204a55253b">CEncoder::CMacroBlock::RLESigns</a></div><div class="ttdeci">UINT32 RLESigns(UINT32 codePos, UINT32 *signBits, UINT32 signLen)</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8cpp_source.html#l00760">Encoder.cpp:760</a></div></div>
<div class="ttc" id="Encoder_8h_html_a05a74e73e6c734fcad194efbca053ed5"><div class="ttname"><a href="Encoder_8h.html#a05a74e73e6c734fcad194efbca053ed5">CodeBufferLen</a></div><div class="ttdeci">#define CodeBufferLen</div><div class="ttdoc">number of words in code buffer (CodeBufferLen &gt; BufferLen) </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00040">Encoder.h:40</a></div></div>
<div class="ttc" id="classCEncoder_html_a9e9bde69d4e28e6752adb7f593adfaaf"><div class="ttname"><a href="classCEncoder.html#a9e9bde69d4e28e6752adb7f593adfaaf">CEncoder::WriteLevelLength</a></div><div class="ttdeci">UINT32 WriteLevelLength(UINT32 *&amp;levelLength) THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8cpp_source.html#l00172">Encoder.cpp:172</a></div></div>
<div class="ttc" id="structPGFPreHeader_html"><div class="ttname"><a href="structPGFPreHeader.html">PGFPreHeader</a></div><div class="ttdoc">PGF pre-header. </div><div class="ttdef"><b>Definition:</b> <a href="PGFtypes_8h_source.html#l00114">PGFtypes.h:114</a></div></div>
<div class="ttc" id="Subband_8h_html"><div class="ttname"><a href="Subband_8h.html">Subband.h</a></div><div class="ttdoc">PGF wavelet subband class. </div></div>
<div class="ttc" id="classCSubband_html"><div class="ttname"><a href="classCSubband.html">CSubband</a></div><div class="ttdoc">Wavelet channel class. </div><div class="ttdef"><b>Definition:</b> <a href="Subband_8h_source.html#l00042">Subband.h:42</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html_a7acaa42598512b958d5e16b8bcded13b"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#a7acaa42598512b958d5e16b8bcded13b">CEncoder::CMacroBlock::m_sigFlagVector</a></div><div class="ttdeci">bool m_sigFlagVector[BufferSize+1]</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00095">Encoder.h:95</a></div></div>
<div class="ttc" id="classCEncoder_html_a6eba5be82f05684ca2574f36f8945717"><div class="ttname"><a href="classCEncoder.html#a6eba5be82f05684ca2574f36f8945717">CEncoder::m_levelLength</a></div><div class="ttdeci">UINT32 * m_levelLength</div><div class="ttdoc">temporary saves the level index </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00215">Encoder.h:215</a></div></div>
<div class="ttc" id="classCEncoder_html_adc7b22b8775517e9da0b7aff4ee865cb"><div class="ttname"><a href="classCEncoder.html#adc7b22b8775517e9da0b7aff4ee865cb">CEncoder::EncodeBuffer</a></div><div class="ttdeci">void EncodeBuffer(ROIBlockHeader h) THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8cpp_source.html#l00336">Encoder.cpp:336</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html_af95842ac15879ab2b3a9b5232bb4f1a5"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#af95842ac15879ab2b3a9b5232bb4f1a5">CEncoder::CMacroBlock::BitplaneEncode</a></div><div class="ttdeci">void BitplaneEncode()</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8cpp_source.html#l00468">Encoder.cpp:468</a></div></div>
<div class="ttc" id="unionROIBlockHeader_html"><div class="ttname"><a href="unionROIBlockHeader.html">ROIBlockHeader</a></div><div class="ttdoc">Block header used with ROI coding scheme. </div><div class="ttdef"><b>Definition:</b> <a href="PGFtypes_8h_source.html#l00151">PGFtypes.h:151</a></div></div>
<div class="ttc" id="structPGFHeader_html"><div class="ttname"><a href="structPGFHeader.html">PGFHeader</a></div><div class="ttdoc">PGF header. </div><div class="ttdef"><b>Definition:</b> <a href="PGFtypes_8h_source.html#l00123">PGFtypes.h:123</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html_a84aa40ee75fb9d993c0cec207b4092e3"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#a84aa40ee75fb9d993c0cec207b4092e3">CEncoder::CMacroBlock::GetBitAtPos</a></div><div class="ttdeci">bool GetBitAtPos(UINT32 pos, UINT32 planeMask) const</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00092">Encoder.h:92</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html_a70f3cc1cb204a4bcce871bf6b5b134f6"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#a70f3cc1cb204a4bcce871bf6b5b134f6">CEncoder::CMacroBlock::CMacroBlock</a></div><div class="ttdeci">CMacroBlock(CEncoder *encoder)</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00056">Encoder.h:56</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html_a171a6f1d0d6297823542acc3cb43338a"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#a171a6f1d0d6297823542acc3cb43338a">CEncoder::CMacroBlock::DecomposeBitplane</a></div><div class="ttdeci">UINT32 DecomposeBitplane(UINT32 bufferSize, UINT32 planeMask, UINT32 codePos, UINT32 *sigBits, UINT32 *refBits, UINT32 *signBits, UINT32 &amp;signLen, UINT32 &amp;codeLen)</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8cpp_source.html#l00620">Encoder.cpp:620</a></div></div>
<div class="ttc" id="classCEncoder_html_a41cb748b6797fc6de436e546f3d76ff2"><div class="ttname"><a href="classCEncoder.html#a41cb748b6797fc6de436e546f3d76ff2">CEncoder::ComputeBufferLength</a></div><div class="ttdeci">INT64 ComputeBufferLength() const</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00175">Encoder.h:175</a></div></div>
<div class="ttc" id="classCEncoder_html_ab2b090edf99019e23f4264a6d76469bc"><div class="ttname"><a href="classCEncoder.html#ab2b090edf99019e23f4264a6d76469bc">CEncoder::Partition</a></div><div class="ttdeci">void Partition(CSubband *band, int width, int height, int startPos, int pitch) THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8cpp_source.html#l00241">Encoder.cpp:241</a></div></div>
<div class="ttc" id="classCEncoder_html_a52d2d5a49f3f6994f67cae1e2176f968"><div class="ttname"><a href="classCEncoder.html#a52d2d5a49f3f6994f67cae1e2176f968">CEncoder::m_forceWriting</a></div><div class="ttdeci">bool m_forceWriting</div><div class="ttdoc">all macro blocks have to be written into the stream </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00219">Encoder.h:219</a></div></div>
<div class="ttc" id="classCEncoder_html_a55d6f2b3aeea93c52bd0a39af9f5db8b"><div class="ttname"><a href="classCEncoder.html#a55d6f2b3aeea93c52bd0a39af9f5db8b">CEncoder::m_currentBlock</a></div><div class="ttdeci">CMacroBlock * m_currentBlock</div><div class="ttdoc">current macro block (used by main thread) </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00213">Encoder.h:213</a></div></div>
<div class="ttc" id="classCEncoder_html_aabc52a41473071a2b4c5ddb7459dd264"><div class="ttname"><a href="classCEncoder.html#aabc52a41473071a2b4c5ddb7459dd264">CEncoder::UpdateLevelLength</a></div><div class="ttdeci">UINT32 UpdateLevelLength() THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8cpp_source.html#l00197">Encoder.cpp:197</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html_adf5e8e4952216e6fdd189224618edd50"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#adf5e8e4952216e6fdd189224618edd50">CEncoder::CMacroBlock::m_encoder</a></div><div class="ttdeci">CEncoder * m_encoder</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00094">Encoder.h:94</a></div></div>
<div class="ttc" id="structPGFPostHeader_html"><div class="ttname"><a href="structPGFPostHeader.html">PGFPostHeader</a></div><div class="ttdoc">Optional PGF post-header. </div><div class="ttdef"><b>Definition:</b> <a href="PGFtypes_8h_source.html#l00141">PGFtypes.h:141</a></div></div>
<div class="ttc" id="classCEncoder_html_a6f4684ae62c14fcf22ff29e7ac8f5bc2"><div class="ttname"><a href="classCEncoder.html#a6f4684ae62c14fcf22ff29e7ac8f5bc2">CEncoder::m_macroBlocks</a></div><div class="ttdeci">CMacroBlock ** m_macroBlocks</div><div class="ttdoc">array of macroblocks </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00210">Encoder.h:210</a></div></div>
<div class="ttc" id="WaveletTransform_8h_html"><div class="ttname"><a href="WaveletTransform_8h.html">WaveletTransform.h</a></div><div class="ttdoc">PGF wavelet transform class. </div></div>
<div class="ttc" id="classCEncoder_html_a32012be0814bbc611963517e482d1111"><div class="ttname"><a href="classCEncoder.html#a32012be0814bbc611963517e482d1111">CEncoder::m_startPosition</a></div><div class="ttdeci">UINT64 m_startPosition</div><div class="ttdoc">stream position of PGF start (PreHeader) </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00206">Encoder.h:206</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html_a527667f1e0529ff577dcbe7f0aa38d77"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#a527667f1e0529ff577dcbe7f0aa38d77">CEncoder::CMacroBlock::m_codeBuffer</a></div><div class="ttdeci">UINT32 m_codeBuffer[CodeBufferLen]</div><div class="ttdoc">output buffer for encoded bitstream </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00081">Encoder.h:81</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html">CEncoder::CMacroBlock</a></div><div class="ttdoc">A macro block is an encoding unit of fixed size (uncoded) </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00051">Encoder.h:51</a></div></div>
<div class="ttc" id="classCPGFStream_html_a841e109647ea77dd9e589ab00ef4aad8"><div class="ttname"><a href="classCPGFStream.html#a841e109647ea77dd9e589ab00ef4aad8">CPGFStream::GetPos</a></div><div class="ttdeci">virtual UINT64 GetPos() const =0</div></div>
<div class="ttc" id="classCEncoder_html_ad01ad5ea3003064b00516dad191d3499"><div class="ttname"><a href="classCEncoder.html#ad01ad5ea3003064b00516dad191d3499">CEncoder::m_stream</a></div><div class="ttdeci">CPGFStream * m_stream</div><div class="ttdoc">output PMF stream </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00205">Encoder.h:205</a></div></div>
<div class="ttc" id="classCEncoder_html_a17309ba6d30988bf1e6d02ea51a55825"><div class="ttname"><a href="classCEncoder.html#a17309ba6d30988bf1e6d02ea51a55825">CEncoder::m_bufferStartPos</a></div><div class="ttdeci">UINT64 m_bufferStartPos</div><div class="ttdoc">stream position of encoded buffer </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00208">Encoder.h:208</a></div></div>
<div class="ttc" id="classCEncoder_html_a5409bc51f3d922d43b5bcad3b8f2c8aa"><div class="ttname"><a href="classCEncoder.html#a5409bc51f3d922d43b5bcad3b8f2c8aa">CEncoder::m_levelLengthPos</a></div><div class="ttdeci">UINT64 m_levelLengthPos</div><div class="ttdoc">stream position of Metadata </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00207">Encoder.h:207</a></div></div>
<div class="ttc" id="classCEncoder_html_a5c8dc9273c8a17ce72e86fec5f389112"><div class="ttname"><a href="classCEncoder.html#a5c8dc9273c8a17ce72e86fec5f389112">CEncoder::ComputeHeaderLength</a></div><div class="ttdeci">INT64 ComputeHeaderLength() const</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00170">Encoder.h:170</a></div></div>
<div class="ttc" id="classCEncoder_html_a75534facc647f53982bcfd72c1caa540"><div class="ttname"><a href="classCEncoder.html#a75534facc647f53982bcfd72c1caa540">CEncoder::WriteValue</a></div><div class="ttdeci">void WriteValue(CSubband *band, int bandPos) THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8cpp_source.html#l00321">Encoder.cpp:321</a></div></div>
<div class="ttc" id="classCEncoder_html_aa2ffd887a5d8b2e63dfa5b7188ca49f1"><div class="ttname"><a href="classCEncoder.html#aa2ffd887a5d8b2e63dfa5b7188ca49f1">CEncoder::FavorSpeedOverSize</a></div><div class="ttdeci">void FavorSpeedOverSize()</div><div class="ttdoc">Encoder favors speed over compression size. </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00117">Encoder.h:117</a></div></div>
<div class="ttc" id="PGFstream_8h_html"><div class="ttname"><a href="PGFstream_8h.html">PGFstream.h</a></div><div class="ttdoc">PGF stream class. </div></div>
<div class="ttc" id="classCEncoder_html_a1d51c113f3f7f4f2c94bd7a8c05c12ee"><div class="ttname"><a href="classCEncoder.html#a1d51c113f3f7f4f2c94bd7a8c05c12ee">CEncoder::m_favorSpeed</a></div><div class="ttdeci">bool m_favorSpeed</div><div class="ttdoc">favor speed over size </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00218">Encoder.h:218</a></div></div>
<div class="ttc" id="classCEncoder_html_a883026518a92ae6ed2aad8c9ed459b12"><div class="ttname"><a href="classCEncoder.html#a883026518a92ae6ed2aad8c9ed459b12">CEncoder::m_currLevelIndex</a></div><div class="ttdeci">int m_currLevelIndex</div><div class="ttdoc">counts where (=index) to save next value </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00216">Encoder.h:216</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html_a139b60f3f0d76b9158573e4d897423d6"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#a139b60f3f0d76b9158573e4d897423d6">CEncoder::CMacroBlock::m_value</a></div><div class="ttdeci">DataT m_value[BufferSize]</div><div class="ttdoc">input buffer of values with index m_valuePos </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00080">Encoder.h:80</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html_aa5abc7cc9df3402a233367f0087168f8"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#aa5abc7cc9df3402a233367f0087168f8">CEncoder::CMacroBlock::m_header</a></div><div class="ttdeci">ROIBlockHeader m_header</div><div class="ttdoc">block header </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00082">Encoder.h:82</a></div></div>
<div class="ttc" id="classCEncoder_html_aac446c96d95a90bb005019aef2d18284"><div class="ttname"><a href="classCEncoder.html#aac446c96d95a90bb005019aef2d18284">CEncoder::m_lastMacroBlock</a></div><div class="ttdeci">int m_lastMacroBlock</div><div class="ttdoc">array index of the last created macro block </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00212">Encoder.h:212</a></div></div>
<div class="ttc" id="classCEncoder_html_a8aadfcf080fad9a5cd82b532dc847d5b"><div class="ttname"><a href="classCEncoder.html#a8aadfcf080fad9a5cd82b532dc847d5b">CEncoder::ComputeOffset</a></div><div class="ttdeci">INT64 ComputeOffset() const</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00180">Encoder.h:180</a></div></div>
<div class="ttc" id="classCEncoder_html_a821892e5cf7a82b43898bc4e15717bfb"><div class="ttname"><a href="classCEncoder.html#a821892e5cf7a82b43898bc4e15717bfb">CEncoder::m_nLevels</a></div><div class="ttdeci">UINT8 m_nLevels</div><div class="ttdoc">number of levels </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00217">Encoder.h:217</a></div></div>
<div class="ttc" id="classCEncoder_html_ad4abed11dca812bdb0d2f9715e6de4da"><div class="ttname"><a href="classCEncoder.html#ad4abed11dca812bdb0d2f9715e6de4da">CEncoder::CEncoder</a></div><div class="ttdeci">CEncoder(CPGFStream *stream, PGFPreHeader preHeader, PGFHeader header, const PGFPostHeader &amp;postHeader, UINT64 &amp;userDataPos, bool useOMP) THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8cpp_source.html#l00070">Encoder.cpp:70</a></div></div>
<div class="ttc" id="classCEncoder_html"><div class="ttname"><a href="classCEncoder.html">CEncoder</a></div><div class="ttdoc">PGF encoder. </div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00046">Encoder.h:46</a></div></div>
<div class="ttc" id="classCEncoder_1_1CMacroBlock_html_af3ecc039cc0e3000b394c15265107b38"><div class="ttname"><a href="classCEncoder_1_1CMacroBlock.html#af3ecc039cc0e3000b394c15265107b38">CEncoder::CMacroBlock::Init</a></div><div class="ttdeci">void Init(int lastLevelIndex)</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00067">Encoder.h:67</a></div></div>
<div class="ttc" id="classCEncoder_html_af1772564b2558115a6e0f4b6bdfb1873"><div class="ttname"><a href="classCEncoder.html#af1772564b2558115a6e0f4b6bdfb1873">CEncoder::UpdatePostHeaderSize</a></div><div class="ttdeci">void UpdatePostHeaderSize(PGFPreHeader preHeader) THROW_</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8cpp_source.html#l00155">Encoder.cpp:155</a></div></div>
<div class="ttc" id="classCEncoder_html_acff251105003f4a4376a01180dbdc757"><div class="ttname"><a href="classCEncoder.html#acff251105003f4a4376a01180dbdc757">CEncoder::SetEncodedLevel</a></div><div class="ttdeci">void SetEncodedLevel(int currentLevel)</div><div class="ttdef"><b>Definition:</b> <a href="Encoder_8h_source.html#l00158">Encoder.h:158</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="Encoder_8h.html">Encoder.h</a></li>
    <li class="footer">Generated on Mon Dec 31 2018 19:09:17 for libpgf by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>