Sophie

Sophie

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

lib64dirac-devel-0.9.1-1mdv2008.1.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Dirac Video Codec</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<h1 align="center" color="#606080">
Dirac - A Video Codec
</h1>
<p align="center">
Created by the <a href="http://www.bbc.co.uk">British Broadcasting Corporation</a>.
</p>
<hr>
<!-- Generated by Doxygen 1.5.4 -->
<h1>common.h</h1><a href="a00167.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* ***** BEGIN LICENSE BLOCK *****</span>
<a name="l00002"></a>00002 <span class="comment">*</span>
<a name="l00003"></a>00003 <span class="comment">* $Id: common.h,v 1.70 2008/01/15 04:36:23 asuraparaju Exp $ $Name: Dirac_0_9_1 $</span>
<a name="l00004"></a>00004 <span class="comment">*</span>
<a name="l00005"></a>00005 <span class="comment">* Version: MPL 1.1/GPL 2.0/LGPL 2.1</span>
<a name="l00006"></a>00006 <span class="comment">*</span>
<a name="l00007"></a>00007 <span class="comment">* The contents of this file are subject to the Mozilla Public License</span>
<a name="l00008"></a>00008 <span class="comment">* Version 1.1 (the "License"); you may not use this file except in compliance</span>
<a name="l00009"></a>00009 <span class="comment">* with the License. You may obtain a copy of the License at</span>
<a name="l00010"></a>00010 <span class="comment">* http://www.mozilla.org/MPL/</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Software distributed under the License is distributed on an "AS IS" basis,</span>
<a name="l00013"></a>00013 <span class="comment">* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for</span>
<a name="l00014"></a>00014 <span class="comment">* the specific language governing rights and limitations under the License.</span>
<a name="l00015"></a>00015 <span class="comment">*</span>
<a name="l00016"></a>00016 <span class="comment">* The Original Code is BBC Research and Development code.</span>
<a name="l00017"></a>00017 <span class="comment">*</span>
<a name="l00018"></a>00018 <span class="comment">* The Initial Developer of the Original Code is the British Broadcasting</span>
<a name="l00019"></a>00019 <span class="comment">* Corporation.</span>
<a name="l00020"></a>00020 <span class="comment">* Portions created by the Initial Developer are Copyright (C) 2004.</span>
<a name="l00021"></a>00021 <span class="comment">* All Rights Reserved.</span>
<a name="l00022"></a>00022 <span class="comment">*</span>
<a name="l00023"></a>00023 <span class="comment">* Contributor(s): Thomas Davies (Original Author),</span>
<a name="l00024"></a>00024 <span class="comment">*                 Scott R Ladd,</span>
<a name="l00025"></a>00025 <span class="comment">*                 Tim Borer,</span>
<a name="l00026"></a>00026 <span class="comment">*                 Anuradha Suraparaju,</span>
<a name="l00027"></a>00027 <span class="comment">*                 Andrew Kennedy</span>
<a name="l00028"></a>00028 <span class="comment">*                 Myo Tun (Brunel University, myo.tun@brunel.ac.uk)</span>
<a name="l00029"></a>00029 <span class="comment">*</span>
<a name="l00030"></a>00030 <span class="comment">* Alternatively, the contents of this file may be used under the terms of</span>
<a name="l00031"></a>00031 <span class="comment">* the GNU General Public License Version 2 (the "GPL"), or the GNU Lesser</span>
<a name="l00032"></a>00032 <span class="comment">* Public License Version 2.1 (the "LGPL"), in which case the provisions of</span>
<a name="l00033"></a>00033 <span class="comment">* the GPL or the LGPL are applicable instead of those above. If you wish to</span>
<a name="l00034"></a>00034 <span class="comment">* allow use of your version of this file only under the terms of the either</span>
<a name="l00035"></a>00035 <span class="comment">* the GPL or LGPL and not to allow others to use your version of this file</span>
<a name="l00036"></a>00036 <span class="comment">* under the MPL, indicate your decision by deleting the provisions above</span>
<a name="l00037"></a>00037 <span class="comment">* and replace them with the notice and other provisions required by the GPL</span>
<a name="l00038"></a>00038 <span class="comment">* or LGPL. If you do not delete the provisions above, a recipient may use</span>
<a name="l00039"></a>00039 <span class="comment">* your version of this file under the terms of any one of the MPL, the GPL</span>
<a name="l00040"></a>00040 <span class="comment">* or the LGPL.</span>
<a name="l00041"></a>00041 <span class="comment">* ***** END LICENSE BLOCK ***** */</span>
<a name="l00042"></a>00042 
<a name="l00043"></a>00043 <span class="preprocessor">#ifndef _COMMON_H_</span>
<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#define _COMMON_H_</span>
<a name="l00045"></a>00045 <span class="preprocessor"></span>
<a name="l00046"></a>00046 <span class="preprocessor">#ifdef  _MSC_VER</span>
<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#define  _CRT_SECURE_NO_DEPRECATE</span>
<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#endif // _MSC_VER</span>
<a name="l00049"></a>00049 <span class="preprocessor"></span>
<a name="l00050"></a>00050 <span class="preprocessor">#include &lt;<a class="code" href="a00159.html">libdirac_common/arrays.h</a>&gt;</span>
<a name="l00051"></a>00051 <span class="preprocessor">#include &lt;<a class="code" href="a00168.html">libdirac_common/common_types.h</a>&gt;</span>
<a name="l00052"></a>00052 <span class="preprocessor">#include &lt;<a class="code" href="a00173.html">libdirac_common/dirac_assertions.h</a>&gt;</span>
<a name="l00053"></a>00053 <span class="preprocessor">#include &lt;vector&gt;</span>
<a name="l00054"></a>00054 <span class="preprocessor">#include &lt;cmath&gt;</span>
<a name="l00055"></a>00055 <span class="keyword">namespace </span>dirac
<a name="l00056"></a>00056 {
<a name="l00066"></a>00066     <span class="comment">//Some basic types used throughout the codec ...//</span>
<a name="l00068"></a>00068 <span class="comment"></span>
<a name="l00070"></a><a class="code" href="a00226.html#548820ca76f864dc8630df79b2c5c5b9">00070</a>     <span class="keyword">typedef</span> <span class="keywordtype">short</span> <a class="code" href="a00226.html#548820ca76f864dc8630df79b2c5c5b9" title="Type of picture data (including motion compensated residuals).">ValueType</a>;
<a name="l00071"></a>00071 
<a name="l00072"></a>00072 <span class="preprocessor">#if !defined(HAVE_MMX)</span>
<a name="l00074"></a><a class="code" href="a00226.html#00c36803f51328ff862631abde5071c5">00074</a> <span class="preprocessor">    typedef int CoeffType;</span>
<a name="l00075"></a>00075 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00077"></a>00077 <span class="preprocessor">    typedef short CoeffType;</span>
<a name="l00078"></a>00078 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00079"></a>00079 <span class="preprocessor"></span>
<a name="l00081"></a>00081     <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00226.html#a06abce72d8abe345fcebb61fc0b8867" title="Type for performing calculations on ValueType and CoeffType. Should be &amp;gt;ValueType...">CalcValueType</a>;
<a name="l00082"></a>00082 
<a name="l00084"></a>00084     <span class="keyword">enum</span> <a class="code" href="a00226.html#b8a7aad3ab6de8cc3709dcacde946964" title="Prediction modes for blocks.">PredMode</a>{ <a class="code" href="a00226.html#b8a7aad3ab6de8cc3709dcacde946964ddfe71174598de7a23a7926ce3e99568">INTRA</a> , <a class="code" href="a00226.html#b8a7aad3ab6de8cc3709dcacde946964851554bd0849bc4ec2ce34449d9cf9d5">REF1_ONLY</a> , <a class="code" href="a00226.html#b8a7aad3ab6de8cc3709dcacde946964a276e376c6c10d9f743c1e067bbedac3">REF2_ONLY</a> , <a class="code" href="a00226.html#b8a7aad3ab6de8cc3709dcacde946964fd5e269c3b97f9be2be1b6ae96a9cada">REF1AND2</a>, <a class="code" href="a00226.html#b8a7aad3ab6de8cc3709dcacde946964290f9055595bd6daa61e11877be4dabf">UNDEFINED</a> };
<a name="l00085"></a>00085 
<a name="l00087"></a>00087     <span class="keyword">enum</span> <a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a>{ <a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cdd577a36e277061ea45fb4060c222887b">Y_COMP</a> , <a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cde984257135e62d6a7a2d1482fe9458d2">U_COMP</a> , <a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cdb068e6dcd00953f4d817f4e675ba00a0">V_COMP</a> };
<a name="l00088"></a>00088 
<a name="l00090"></a>00090     <span class="keyword">enum</span> <a class="code" href="a00226.html#521776b4db3589284c5b7acb2b38a4b1" title="Addition or subtraction.">AddOrSub</a>{ <a class="code" href="a00226.html#521776b4db3589284c5b7acb2b38a4b1524399f6e703e34f56e6b96c5415d471">ADD</a> , <a class="code" href="a00226.html#521776b4db3589284c5b7acb2b38a4b1962e75f21af1e4fb3291272b379e660a">SUBTRACT</a> };
<a name="l00091"></a>00091 
<a name="l00093"></a>00093     <span class="keyword">enum</span> <a class="code" href="a00226.html#c972efbebbe042dd142790f520369d9c" title="Forward or backward.">Direction</a> { <a class="code" href="a00226.html#c972efbebbe042dd142790f520369d9c9e7a3c2913f648e1a49ffee753ff10d1">FORWARD</a> , <a class="code" href="a00226.html#c972efbebbe042dd142790f520369d9cd64613e1de607c315ae9b9efa3889197">BACKWARD</a> };
<a name="l00094"></a>00094 
<a name="l00096"></a>00096     <span class="keyword">enum</span> <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac" title="Contexts used for coefficient coding.">CtxAliases</a>
<a name="l00097"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac6db667df0c3a2c089c859a3107abc2eb">00097</a>     {<span class="comment">//used for residual coding</span>
<a name="l00098"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac2fa57489e06cfe60509c164f9a370fe3">00098</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac6db667df0c3a2c089c859a3107abc2eb">SIGN0_CTX</a>,          <span class="comment">// -sign, previous symbol is 0</span>
<a name="l00099"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac88560fa2af3763ca96a12102aa26705a">00099</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac2fa57489e06cfe60509c164f9a370fe3">SIGN_POS_CTX</a>,       <span class="comment">// -sign, previous symbol is +ve</span>
<a name="l00100"></a>00100         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac88560fa2af3763ca96a12102aa26705a">SIGN_NEG_CTX</a>,       <span class="comment">// -sign, previous symbol is -ve</span>
<a name="l00101"></a>00101 
<a name="l00102"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac89003482f0ce7e2d08715cfd14182c0f">00102</a>         <span class="comment">// Follow bit contexts</span>
<a name="l00103"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac3cb5f911a62f155ff571f2c6ae9969bc">00103</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac89003482f0ce7e2d08715cfd14182c0f">Z_FBIN1z_CTX</a>,       <span class="comment">// -bin 1, parent is zero, neighbours zero</span>
<a name="l00104"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac3457a7b5840c83d341df35451c3d036a">00104</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac3cb5f911a62f155ff571f2c6ae9969bc">Z_FBIN1nz_CTX</a>,      <span class="comment">// -bin 1, parent is zero, neighbours non-zero</span>
<a name="l00105"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971acd0b63044c328341ace525be3ef73c221">00105</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac3457a7b5840c83d341df35451c3d036a">Z_FBIN2_CTX</a>,        <span class="comment">// -bin 2, parent is zero</span>
<a name="l00106"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac0a2229c0e25aca440612b416a22ec27c">00106</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971acd0b63044c328341ace525be3ef73c221">Z_FBIN3_CTX</a>,        <span class="comment">// -bin 3, parent is zero</span>
<a name="l00107"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac8b0d71bf2e28f84ba8d0d38fdb1515e9">00107</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac0a2229c0e25aca440612b416a22ec27c">Z_FBIN4_CTX</a>,        <span class="comment">// -bin 4, parent is zero</span>
<a name="l00108"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971acef1a5c44efff573581d378698132ffcf">00108</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac8b0d71bf2e28f84ba8d0d38fdb1515e9">Z_FBIN5_CTX</a>,        <span class="comment">// -bin 5, parent is zero</span>
<a name="l00109"></a>00109         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971acef1a5c44efff573581d378698132ffcf">Z_FBIN6plus_CTX</a>,    <span class="comment">// -bins 6 plus, parent is zero</span>
<a name="l00110"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac6c0535ba9466d7daa7f77b19528f41d6">00110</a> 
<a name="l00111"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac4d3db2f83cc7aeb32426cdd60960e172">00111</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac6c0535ba9466d7daa7f77b19528f41d6">NZ_FBIN1z_CTX</a>,      <span class="comment">// -bin 1, parent is non-zero, neighbours zero</span>
<a name="l00112"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac07c73dfe4adb9d5a31ea7262d61e6642">00112</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac4d3db2f83cc7aeb32426cdd60960e172">NZ_FBIN1nz_CTX</a>,     <span class="comment">// -bin 1, parent is non-zero, neighbours non-zero</span>
<a name="l00113"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac54ff6416aaf6d18fafbed2d607f41e7d">00113</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac07c73dfe4adb9d5a31ea7262d61e6642">NZ_FBIN2_CTX</a>,       <span class="comment">// -bin 2, parent is non-zero</span>
<a name="l00114"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac550463c86485f1abf5cc7200dfd89f95">00114</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac54ff6416aaf6d18fafbed2d607f41e7d">NZ_FBIN3_CTX</a>,       <span class="comment">// -bin 3, parent is non-zero</span>
<a name="l00115"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac19df40326e320809a4430d5adf02153e">00115</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac550463c86485f1abf5cc7200dfd89f95">NZ_FBIN4_CTX</a>,       <span class="comment">// -bin 4, parent is non-zero</span>
<a name="l00116"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac4241839c1087803277f860426380bdc7">00116</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac19df40326e320809a4430d5adf02153e">NZ_FBIN5_CTX</a>,       <span class="comment">// -bin 5, parent is non-zero</span>
<a name="l00117"></a>00117         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac4241839c1087803277f860426380bdc7">NZ_FBIN6plus_CTX</a>,   <span class="comment">// -bins 6 plus, parent is non-zero</span>
<a name="l00118"></a>00118 
<a name="l00119"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac1779aed84d380f5d9cdb4e775f26edc2">00119</a>         <span class="comment">// Information bit contexts</span>
<a name="l00120"></a>00120         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac1779aed84d380f5d9cdb4e775f26edc2">INFO_CTX</a>,
<a name="l00121"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971acb3241550ea12d43cf8826f616ea2a36e">00121</a> 
<a name="l00122"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971acaa10956a28cd9a22c4eb1f224f54cb24">00122</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971acb3241550ea12d43cf8826f616ea2a36e">BLOCK_SKIP_CTX</a>,     <span class="comment">// - blocks are skipped</span>
<a name="l00123"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971aced56fd2edaabdf1466506454174611b6">00123</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971acaa10956a28cd9a22c4eb1f224f54cb24">Q_OFFSET_FOLLOW_CTX</a>,   <span class="comment">// - code block quantiser offset magnitude</span>
<a name="l00124"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac48b93f322c0b6325c3438e2d11f5f712">00124</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971aced56fd2edaabdf1466506454174611b6">Q_OFFSET_INFO_CTX</a>,  <span class="comment">// - code block quantiser offset info context</span>
<a name="l00125"></a><a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac7e853b7f8bdef7d3872fe8a5a647f849">00125</a>         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac48b93f322c0b6325c3438e2d11f5f712">Q_OFFSET_SIGN_CTX</a>,   <span class="comment">// - code block quantiser offset sign</span>
<a name="l00126"></a>00126         <a class="code" href="a00226.html#679a3f10e5a1308d42d327ebb51971ac7e853b7f8bdef7d3872fe8a5a647f849">TOTAL_COEFF_CTXS</a>   <span class="comment">// The total number of coefficient contexts</span>
<a name="l00127"></a>00127     };
<a name="l00128"></a>00128 
<a name="l00130"></a>00130     <span class="keyword">enum</span> <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad" title="Contexts used for MV data coding.">MvCtxAliases</a>
<a name="l00131"></a>00131     {
<a name="l00132"></a>00132         <span class="comment">// DC value contexts //</span>
<a name="l00134"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144adf565188c2be16cb2d39cba0421c07937">00134</a> <span class="comment"></span>
<a name="l00135"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad1194259959dfee380e50ee4cec72ed75">00135</a>         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144adf565188c2be16cb2d39cba0421c07937">DC_FBIN1_CTX</a>,
<a name="l00136"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144adb7c4c055bdee745631905549f4b20aec">00136</a>         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad1194259959dfee380e50ee4cec72ed75">DC_FBIN2plus_CTX</a>,
<a name="l00137"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144adaa1bac82fb85b6b9b6ad8e71c32eac0a">00137</a>         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144adb7c4c055bdee745631905549f4b20aec">DC_INFO_CTX</a>,
<a name="l00138"></a>00138         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144adaa1bac82fb85b6b9b6ad8e71c32eac0a">DC_SIGN_CTX</a>,
<a name="l00139"></a>00139 
<a name="l00140"></a>00140         <span class="comment">// Motion vector contexts //</span>
<a name="l00142"></a>00142 <span class="comment"></span>
<a name="l00143"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad1c27a6e175dfcfd6e6cc0817c909b783">00143</a> 
<a name="l00144"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144adec3d9819b8518e08951ad64e9e9c7ec1">00144</a>         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad1c27a6e175dfcfd6e6cc0817c909b783">MV_FBIN1_CTX</a>,
<a name="l00145"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad0c4a5a5072d7770888c0855e4acf7d24">00145</a>         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144adec3d9819b8518e08951ad64e9e9c7ec1">MV_FBIN2_CTX</a>,
<a name="l00146"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144add122d9bb1e715af6dd2a2ae887214ed3">00146</a>         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad0c4a5a5072d7770888c0855e4acf7d24">MV_FBIN3_CTX</a>,
<a name="l00147"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad759074d64f1d94a1bd385c1c0f94ea8f">00147</a>         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144add122d9bb1e715af6dd2a2ae887214ed3">MV_FBIN4_CTX</a>,
<a name="l00148"></a>00148         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad759074d64f1d94a1bd385c1c0f94ea8f">MV_FBIN5plus_CTX</a>,
<a name="l00149"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad2b643a4baedcf5d7b0eb66867428c58e">00149</a> 
<a name="l00150"></a>00150         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad2b643a4baedcf5d7b0eb66867428c58e">MV_INFO_CTX</a>,
<a name="l00151"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad0d547cbd2aa0356739a2764f60a6fa42">00151</a> 
<a name="l00152"></a>00152         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad0d547cbd2aa0356739a2764f60a6fa42">MV_SIGN_CTX</a>,
<a name="l00153"></a>00153 
<a name="l00154"></a>00154 
<a name="l00155"></a>00155         <span class="comment">// Prediction mode contexts</span>
<a name="l00156"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad07bcbc984c53cfc6184a7d74e2087b4a">00156</a> 
<a name="l00157"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144add8c817ad1bf98bda54817f79c4258a3c">00157</a>         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad07bcbc984c53cfc6184a7d74e2087b4a">PMODE_BIT0_CTX</a>,     <span class="comment">// -bit 0, prediction mode value</span>
<a name="l00158"></a>00158         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144add8c817ad1bf98bda54817f79c4258a3c">PMODE_BIT1_CTX</a>,     <span class="comment">// -bin 1, prediction mode value</span>
<a name="l00159"></a>00159 
<a name="l00160"></a>00160 
<a name="l00161"></a>00161         <span class="comment">// Macroblock contexts</span>
<a name="l00162"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144adafafd29f196b33065a10794f7ff39a27">00162</a> 
<a name="l00163"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad686665cb4ad9a5eeacab9c7f2f110ec8">00163</a>         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144adafafd29f196b33065a10794f7ff39a27">MB_SPLIT_BIN1_CTX</a>,  <span class="comment">// bin 1, MB split mode vals</span>
<a name="l00164"></a>00164         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad686665cb4ad9a5eeacab9c7f2f110ec8">MB_SPLIT_BIN2_CTX</a>,  <span class="comment">// bin 2, MB split mode vals. Bin 3 not required</span>
<a name="l00165"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad60ad83ae3b57e2d3c344064db9d4683d">00165</a> 
<a name="l00166"></a>00166         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad60ad83ae3b57e2d3c344064db9d4683d">MB_SPLIT_INFO_CTX</a>,  <span class="comment">// info context for MB split mode</span>
<a name="l00167"></a><a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad6eddcf5350fda95a8020581c3f5a7b77">00167</a> 
<a name="l00168"></a>00168         <a class="code" href="a00226.html#91ea3dd97a4aa2ef1fcc6127f83144ad6eddcf5350fda95a8020581c3f5a7b77">TOTAL_MV_CTXS</a>       <span class="comment">// The total number of motion vector contexts</span>
<a name="l00169"></a>00169     };
<a name="l00170"></a>00170 
<a name="l00171"></a>00171 
<a name="l00177"></a>00177     <a class="code" href="a00168.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> <a class="code" href="a00226.html#3fa5677629ca56a140891499e2b6a7a0" title="Function to convert an integer to a valid VideoFormat.">IntToVideoFormat</a>(<span class="keywordtype">int</span> video_format);
<a name="l00178"></a>00178 
<a name="l00184"></a>00184     <a class="code" href="a00168.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> <a class="code" href="a00226.html#6262da6033ef8dec53ed79693191df06" title="Function to convert an integer to a valid VideoFormat.">IntToChromaFormat</a>(<span class="keywordtype">int</span> chroma_format);
<a name="l00185"></a>00185 
<a name="l00191"></a>00191     <a class="code" href="a00168.html#c814b7884e2fe3617a7590dd30fb69d3">FrameRateType</a> <a class="code" href="a00226.html#4fd137e5120048a9b36c7a4665359faf" title="Function to convert an integer to a valid FrameRate type.">IntToFrameRateType</a>(<span class="keywordtype">int</span> frame_rate_idx);
<a name="l00192"></a>00192 
<a name="l00198"></a>00198     <a class="code" href="a00168.html#a7dbc205d742c02df228c990257b7302">PixelAspectRatioType</a> <a class="code" href="a00226.html#9d8038b9245bac50d0d9d7e4281a40fc" title="Function to convert an integer to a valid PixelAspectRatio type.">IntToPixelAspectRatioType</a>(<span class="keywordtype">int</span> pix_asr_idx);
<a name="l00199"></a>00199 
<a name="l00205"></a>00205     <a class="code" href="a00168.html#d9244a0d1ab3670e4027e3ac49cf18da">SignalRangeType</a> <a class="code" href="a00226.html#c53c1864217e35900988e08b554d7126" title="Function to convert an integer to a valid SignalRange type.">IntToSignalRangeType</a>(<span class="keywordtype">int</span> signal_range_idx);
<a name="l00206"></a>00206 
<a name="l00212"></a>00212     <a class="code" href="a00168.html#73c509e14745c98e30772b6c4f8b6e1e">MVPrecisionType</a> <a class="code" href="a00226.html#80cc5b144ce86b72de08676ad94d1c56" title="Function to convert an integer to a valid motion-vector precision type.">IntToMVPrecisionType</a>(<span class="keywordtype">int</span> mv_prec);
<a name="l00213"></a>00213 
<a name="l00214"></a>00214     <span class="comment">//Classes used throughout the codec//</span>
<a name="l00217"></a>00217 <span class="comment"></span>    <span class="keyword">class </span>FrameSort
<a name="l00218"></a>00218     {
<a name="l00219"></a><a class="code" href="a00080.html#e0a20b52d526e25a93a66fb877a7c80b">00219</a>     <span class="keyword">public</span>:
<a name="l00220"></a>00220         <a class="code" href="a00080.html#e0a20b52d526e25a93a66fb877a7c80b">FrameSort</a>() { <a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a> = 0x00; } <span class="comment">// default intra non-ref</span>
<a name="l00221"></a><a class="code" href="a00080.html#1490243b0f7fc9719925dbb211940c48">00221</a> 
<a name="l00222"></a><a class="code" href="a00080.html#949eba71f155247bc476f222f712d3de">00222</a>         <span class="keywordtype">void</span> <a class="code" href="a00080.html#1490243b0f7fc9719925dbb211940c48">SetIntra</a>() { <a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a> &amp;= 0xfe; }
<a name="l00223"></a><a class="code" href="a00080.html#6275390f0eaaebbcda63afafd6107b84">00223</a>         <span class="keywordtype">void</span> <a class="code" href="a00080.html#949eba71f155247bc476f222f712d3de">SetInter</a>() { <a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a> |= 0x01; }
<a name="l00224"></a><a class="code" href="a00080.html#864e9e834b65f9bcbba065ae7714274e">00224</a>         <span class="keywordtype">void</span> <a class="code" href="a00080.html#6275390f0eaaebbcda63afafd6107b84">SetNonRef</a>() { <a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a> &amp;= 0xfd; }
<a name="l00225"></a>00225         <span class="keywordtype">void</span> <a class="code" href="a00080.html#864e9e834b65f9bcbba065ae7714274e">SetRef</a>() { <a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a> |= 0x02; }
<a name="l00226"></a><a class="code" href="a00080.html#b22324d4b4e9dcf0178f7ed0d2421b14">00226</a> 
<a name="l00227"></a><a class="code" href="a00080.html#0452cc5115c7649f97d0e3b31293a09d">00227</a>         <span class="keywordtype">bool</span> <a class="code" href="a00080.html#b22324d4b4e9dcf0178f7ed0d2421b14">IsInter</a> ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a> &amp; 0x01; }
<a name="l00228"></a><a class="code" href="a00080.html#2d08fd9360b4484f31b065facfc9bd8c">00228</a>         <span class="keywordtype">bool</span> <a class="code" href="a00080.html#0452cc5115c7649f97d0e3b31293a09d">IsIntra</a> ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !<a class="code" href="a00080.html#b22324d4b4e9dcf0178f7ed0d2421b14">IsInter</a>(); }
<a name="l00229"></a><a class="code" href="a00080.html#41fa5d6d3f987c5e9e7652970e38b9f5">00229</a>         <span class="keywordtype">bool</span> <a class="code" href="a00080.html#2d08fd9360b4484f31b065facfc9bd8c">IsRef</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a> &amp; 0x02; };
<a name="l00230"></a>00230         <span class="keywordtype">bool</span> <a class="code" href="a00080.html#41fa5d6d3f987c5e9e7652970e38b9f5">IsNonRef</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !<a class="code" href="a00080.html#2d08fd9360b4484f31b065facfc9bd8c">IsRef</a>(); }
<a name="l00231"></a><a class="code" href="a00080.html#34175cfa5a266f9d31535b87dfe7a13b">00231</a> 
<a name="l00232"></a><a class="code" href="a00080.html#56ba15688776687e5ee8d1c925a058f9">00232</a>         <span class="keywordtype">void</span> <a class="code" href="a00080.html#34175cfa5a266f9d31535b87dfe7a13b">SetIntraNonRef</a>() { <a class="code" href="a00080.html#1490243b0f7fc9719925dbb211940c48">SetIntra</a>(); <a class="code" href="a00080.html#6275390f0eaaebbcda63afafd6107b84">SetNonRef</a>(); }
<a name="l00233"></a><a class="code" href="a00080.html#d86eb061a5df6ce2c70166a804182962">00233</a>         <span class="keywordtype">void</span> <a class="code" href="a00080.html#56ba15688776687e5ee8d1c925a058f9">SetIntraRef</a>() { <a class="code" href="a00080.html#1490243b0f7fc9719925dbb211940c48">SetIntra</a>(); <a class="code" href="a00080.html#864e9e834b65f9bcbba065ae7714274e">SetRef</a>(); }
<a name="l00234"></a><a class="code" href="a00080.html#55c725c111307caffc89bac05ccb0255">00234</a>         <span class="keywordtype">void</span> <a class="code" href="a00080.html#d86eb061a5df6ce2c70166a804182962">SetInterNonRef</a>() { <a class="code" href="a00080.html#949eba71f155247bc476f222f712d3de">SetInter</a>(); <a class="code" href="a00080.html#6275390f0eaaebbcda63afafd6107b84">SetNonRef</a>(); }
<a name="l00235"></a>00235         <span class="keywordtype">void</span> <a class="code" href="a00080.html#55c725c111307caffc89bac05ccb0255">SetInterRef</a>() { <a class="code" href="a00080.html#949eba71f155247bc476f222f712d3de">SetInter</a>(); <a class="code" href="a00080.html#864e9e834b65f9bcbba065ae7714274e">SetRef</a>(); }
<a name="l00236"></a><a class="code" href="a00080.html#38ac9c8cfbba35f5b171d032d652622f">00236</a> 
<a name="l00237"></a><a class="code" href="a00080.html#ea135dc499cf48036096b40e9a1521c3">00237</a>         <span class="keywordtype">bool</span> <a class="code" href="a00080.html#38ac9c8cfbba35f5b171d032d652622f">IsIntraNonRef</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a> &amp; 0x03) == 0x00; }
<a name="l00238"></a><a class="code" href="a00080.html#b2340568a1975b4ef4e5e138cbebba43">00238</a>         <span class="keywordtype">bool</span> <a class="code" href="a00080.html#ea135dc499cf48036096b40e9a1521c3">IsIntraRef</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a> &amp; 0x03) == 0x02; }
<a name="l00239"></a><a class="code" href="a00080.html#f4d4b5462d7c128008c0ad2e0645a166">00239</a>         <span class="keywordtype">bool</span> <a class="code" href="a00080.html#b2340568a1975b4ef4e5e138cbebba43">IsInterNonRef</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a> &amp; 0x03) == 0x01; }
<a name="l00240"></a>00240         <span class="keywordtype">bool</span> <a class="code" href="a00080.html#f4d4b5462d7c128008c0ad2e0645a166">IsInterRef</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a> &amp; 0x03) == 0x03; }
<a name="l00241"></a><a class="code" href="a00080.html#cdc9da995a26e28ba746a5dbd358938e">00241</a> 
<a name="l00242"></a>00242         <span class="keywordtype">void</span> <a class="code" href="a00080.html#cdc9da995a26e28ba746a5dbd358938e">Clear</a>() { <a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a>=0x00; }
<a name="l00243"></a><a class="code" href="a00080.html#d05ae610b5322c2c4257fa518f78602b">00243</a> 
<a name="l00244"></a>00244         <span class="keyword">static</span> <a class="code" href="a00080.html" title="Frame type Class.">FrameSort</a> <a class="code" href="a00080.html#d05ae610b5322c2c4257fa518f78602b">IntraRefFrameSort</a>()
<a name="l00245"></a>00245         {
<a name="l00246"></a>00246             <a class="code" href="a00080.html" title="Frame type Class.">FrameSort</a> <a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a>;
<a name="l00247"></a>00247             fs.SetIntraRef();
<a name="l00248"></a>00248             <span class="keywordflow">return</span> fs;
<a name="l00249"></a>00249         }
<a name="l00250"></a><a class="code" href="a00080.html#697b2ec1427f521b9e350d5643723f1d">00250</a> 
<a name="l00251"></a>00251         <span class="keyword">static</span> <a class="code" href="a00080.html" title="Frame type Class.">FrameSort</a> <a class="code" href="a00080.html#697b2ec1427f521b9e350d5643723f1d">InterRefFrameSort</a>()
<a name="l00252"></a>00252         {
<a name="l00253"></a>00253             <a class="code" href="a00080.html" title="Frame type Class.">FrameSort</a> <a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a>;
<a name="l00254"></a>00254             fs.SetInterRef();
<a name="l00255"></a>00255             <span class="keywordflow">return</span> fs;
<a name="l00256"></a>00256         }
<a name="l00257"></a><a class="code" href="a00080.html#9985c88cc99e509a310d004ce5f89d18">00257</a> 
<a name="l00258"></a>00258         <span class="keyword">static</span> <a class="code" href="a00080.html" title="Frame type Class.">FrameSort</a> <a class="code" href="a00080.html#9985c88cc99e509a310d004ce5f89d18">IntraNonRefFrameSort</a>()
<a name="l00259"></a>00259         {
<a name="l00260"></a>00260             <a class="code" href="a00080.html" title="Frame type Class.">FrameSort</a> <a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a>;
<a name="l00261"></a>00261             fs.SetIntraNonRef();
<a name="l00262"></a>00262             <span class="keywordflow">return</span> fs;
<a name="l00263"></a>00263         }
<a name="l00264"></a><a class="code" href="a00080.html#8de78ed41a0954bb11b3fb4e85ffe4a2">00264</a> 
<a name="l00265"></a>00265         <span class="keyword">static</span> <a class="code" href="a00080.html" title="Frame type Class.">FrameSort</a> <a class="code" href="a00080.html#8de78ed41a0954bb11b3fb4e85ffe4a2">InterNonRefFrameSort</a>()
<a name="l00266"></a>00266         {
<a name="l00267"></a>00267             <a class="code" href="a00080.html" title="Frame type Class.">FrameSort</a> <a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a>;
<a name="l00268"></a>00268             fs.SetInterNonRef();
<a name="l00269"></a>00269             <span class="keywordflow">return</span> fs;
<a name="l00270"></a>00270         }
<a name="l00271"></a>00271 
<a name="l00272"></a><a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">00272</a>     <span class="keyword">private</span>:
<a name="l00273"></a>00273         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00080.html#17c47a468a43f49e07b4e1979fa02b84">fs</a>;
<a name="l00274"></a>00274     };
<a name="l00275"></a>00275 
<a name="l00277"></a>00277 
<a name="l00280"></a>00280     <span class="keyword">class </span><a class="code" href="a00113.html" title="A class for picture component data.">PicArray</a>: <span class="keyword">public</span> <a class="code" href="a00139.html" title="A template class for two-dimensional arrays.">TwoDArray</a>&lt;ValueType&gt;
<a name="l00281"></a>00281     {
<a name="l00282"></a>00282     <span class="keyword">public</span>:
<a name="l00284"></a>00284 
<a name="l00287"></a>00287         <a class="code" href="a00113.html#55bc2eb84f6c67813dbfd20374c4f6cd" title="Default constructor.">PicArray</a>(): <a class="code" href="a00139.html" title="A template class for two-dimensional arrays.">TwoDArray&lt;ValueType&gt;</a>(){}
<a name="l00288"></a>00288 
<a name="l00290"></a>00290 
<a name="l00294"></a>00294         <a class="code" href="a00113.html#55bc2eb84f6c67813dbfd20374c4f6cd" title="Default constructor.">PicArray</a>(<span class="keywordtype">int</span> height, <span class="keywordtype">int</span> width, <a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a> cs=<a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cdd577a36e277061ea45fb4060c222887b">Y_COMP</a>): 
<a name="l00295"></a>00295             <a class="code" href="a00139.html#239555fac85a27c2b937740a2bdf5b54" title="Default constructor.">TwoDArray</a>&lt;<a class="code" href="a00226.html#548820ca76f864dc8630df79b2c5c5b9" title="Type of picture data (including motion compensated residuals).">ValueType</a>&gt;(height, width), <a class="code" href="a00113.html#9ae550e19866d35ca91d3a83f26e1774">m_csort</a>(cs){}
<a name="l00296"></a>00296 
<a name="l00297"></a>00297         <span class="comment">//copy constructor and assignment= derived by inheritance</span>
<a name="l00298"></a>00298 
<a name="l00300"></a>00300         <a class="code" href="a00113.html#39490dc32f879817ba4d4ca64906b86e" title="Destructor.">~PicArray</a>(){}
<a name="l00301"></a>00301 
<a name="l00303"></a>00303         <span class="keyword">const</span> <a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a>&amp; <a class="code" href="a00113.html#0520f4a860e6cd510dfddf17850a2a59" title="Return which component is stored.">CSort</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00113.html#9ae550e19866d35ca91d3a83f26e1774">m_csort</a>;}
<a name="l00304"></a>00304         
<a name="l00306"></a>00306         <span class="keywordtype">void</span> <a class="code" href="a00113.html#2fc34eceb77b2183cccf29a7124870ff" title="Set the type of component being stored.">SetCSort</a>(<span class="keyword">const</span> <a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a> cs){ <a class="code" href="a00113.html#9ae550e19866d35ca91d3a83f26e1774">m_csort</a> = cs; }
<a name="l00307"></a>00307 
<a name="l00308"></a>00308     <span class="keyword">private</span>:
<a name="l00309"></a><a class="code" href="a00113.html#9ae550e19866d35ca91d3a83f26e1774">00309</a> 
<a name="l00310"></a>00310         <a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a> <a class="code" href="a00113.html#9ae550e19866d35ca91d3a83f26e1774">m_csort</a>;
<a name="l00311"></a>00311     };
<a name="l00312"></a>00312 
<a name="l00314"></a>00314 
<a name="l00317"></a>00317     <span class="keyword">class </span><a class="code" href="a00023.html" title="A class for picture component data.">CoeffArray</a>: <span class="keyword">public</span> <a class="code" href="a00139.html" title="A template class for two-dimensional arrays.">TwoDArray</a>&lt;CoeffType&gt;
<a name="l00318"></a>00318     {
<a name="l00319"></a>00319     <span class="keyword">public</span>:
<a name="l00321"></a>00321 
<a name="l00324"></a>00324         <a class="code" href="a00023.html#9a1ae666dd08aad45e6c640105a7a321" title="Default constructor.">CoeffArray</a>(): <a class="code" href="a00139.html" title="A template class for two-dimensional arrays.">TwoDArray&lt;CoeffType&gt;</a>(){}
<a name="l00325"></a>00325 
<a name="l00327"></a>00327 
<a name="l00331"></a>00331         <a class="code" href="a00023.html#9a1ae666dd08aad45e6c640105a7a321" title="Default constructor.">CoeffArray</a>(<span class="keywordtype">int</span> height, <span class="keywordtype">int</span> width, <a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a> cs=<a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cdd577a36e277061ea45fb4060c222887b">Y_COMP</a>): 
<a name="l00332"></a>00332             <a class="code" href="a00139.html#239555fac85a27c2b937740a2bdf5b54" title="Default constructor.">TwoDArray</a>&lt;<a class="code" href="a00226.html#00c36803f51328ff862631abde5071c5" title="Type of wavelet coefficient data (should be larger than ValueType).">CoeffType</a>&gt;(height, width), <a class="code" href="a00023.html#22ce5a9af41041517c767fc8bc426e8a">m_csort</a>(cs){}
<a name="l00333"></a>00333 
<a name="l00334"></a>00334         <span class="comment">//copy constructor and assignment= derived by inheritance</span>
<a name="l00335"></a>00335 
<a name="l00337"></a>00337         <a class="code" href="a00023.html#c3704aebda8bd837bdba740753fc28e6" title="Destructor.">~CoeffArray</a>(){}
<a name="l00338"></a>00338         
<a name="l00340"></a>00340         <span class="keyword">const</span> <a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a>&amp; <a class="code" href="a00023.html#caa83247c3d460be6c0fc5cd3764591a" title="Return which component is stored.">CSort</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00023.html#22ce5a9af41041517c767fc8bc426e8a">m_csort</a>;}
<a name="l00341"></a>00341         
<a name="l00343"></a>00343         <span class="keywordtype">void</span> <a class="code" href="a00023.html#6023b26024d40a2cc595cb037e95a48c" title="Set the type of component being stored.">SetCSort</a>(<span class="keyword">const</span> <a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a> cs){ <a class="code" href="a00023.html#22ce5a9af41041517c767fc8bc426e8a">m_csort</a> = cs; }
<a name="l00344"></a>00344         
<a name="l00345"></a>00345         <span class="keyword">private</span>:
<a name="l00346"></a><a class="code" href="a00023.html#22ce5a9af41041517c767fc8bc426e8a">00346</a> 
<a name="l00347"></a>00347         <a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a> <a class="code" href="a00023.html#22ce5a9af41041517c767fc8bc426e8a">m_csort</a>;
<a name="l00348"></a>00348 
<a name="l00349"></a>00349     };
<a name="l00350"></a>00350 
<a name="l00351"></a>00351 
<a name="l00353"></a>00353     <span class="keyword">class </span><a class="code" href="a00030.html" title="A structure for recording costs, particularly in quantisation.">CostType</a>
<a name="l00354"></a>00354     {
<a name="l00355"></a>00355     <span class="keyword">public</span>:
<a name="l00357"></a>00357         <span class="keywordtype">double</span> <a class="code" href="a00030.html#03a269eca62bf7d9c36ee012635ba9ae" title="The error (MSE or 4th power).">Error</a>;
<a name="l00358"></a>00358 
<a name="l00360"></a>00360         <span class="keywordtype">double</span> <a class="code" href="a00030.html#addd4b6dbc0d76556c3d8071ed5e6036" title="The entropy in bits per symbol.">ENTROPY</a>;
<a name="l00361"></a>00361 
<a name="l00363"></a>00363         <span class="keywordtype">double</span> <a class="code" href="a00030.html#9e611c0015f909a894db035638fc7703" title="The Lagrangian combination of MSE+lambda*entropy.">TOTAL</a>;
<a name="l00364"></a>00364     };
<a name="l00365"></a>00365 
<a name="l00366"></a>00366 
<a name="l00368"></a>00368 
<a name="l00373"></a>00373     <span class="keyword">class </span>EntropyCorrector
<a name="l00374"></a>00374     {
<a name="l00375"></a>00375     <span class="keyword">public</span>:
<a name="l00377"></a>00377 
<a name="l00381"></a>00381         <a class="code" href="a00068.html#c81a65472bb1b7278dd111da2dbc53ac" title="Constructor.">EntropyCorrector</a>(<span class="keywordtype">int</span> depth);
<a name="l00382"></a>00382 
<a name="l00384"></a>00384         <span class="comment">//NB: Assume default copy constructor, assignment = and destructor//</span>
<a name="l00386"></a>00386 <span class="comment"></span>
<a name="l00388"></a>00388 
<a name="l00392"></a>00392         <span class="keywordtype">float</span> <a class="code" href="a00068.html#e46b59714a8bf4886d1195d8f266b12c" title="Returns the correction factor.">Factor</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> bandnum, <span class="keyword">const</span> FrameSort fsort,<span class="keyword">const</span> <a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a> c) <span class="keyword">const</span>;
<a name="l00393"></a>00393 
<a name="l00395"></a>00395 
<a name="l00403"></a>00403         <span class="keywordtype">void</span> <a class="code" href="a00068.html#401c1a17d9d97e107f645cd3315504f6" title="Update the correction factors.">Update</a>(<span class="keywordtype">int</span> bandnum, FrameSort fsort, <a class="code" href="a00226.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a> c,<span class="keywordtype">int</span> est_bits,<span class="keywordtype">int</span> actual_bits);
<a name="l00404"></a>00404 
<a name="l00405"></a>00405     <span class="keyword">private</span>:
<a name="l00407"></a>00407         <span class="keywordtype">void</span> <a class="code" href="a00068.html#74fb8bfe5caf703a2a705e9a3e90eb27" title="Initialises the correction factors.">Init</a>();
<a name="l00408"></a><a class="code" href="a00068.html#31b23e42b2432b76f756ec0b65c11598">00408</a> 
<a name="l00409"></a><a class="code" href="a00068.html#10aba16ad5834e78274faaf31f8015b4">00409</a>         <a class="code" href="a00139.html" title="A template class for two-dimensional arrays.">TwoDArray&lt;float&gt;</a> <a class="code" href="a00068.html#31b23e42b2432b76f756ec0b65c11598">m_Yfctrs</a>;
<a name="l00410"></a><a class="code" href="a00068.html#d926ceeaa302fa91cea0adbdef90f3db">00410</a>         <a class="code" href="a00139.html" title="A template class for two-dimensional arrays.">TwoDArray&lt;float&gt;</a> <a class="code" href="a00068.html#10aba16ad5834e78274faaf31f8015b4">m_Ufctrs</a>;
<a name="l00411"></a>00411         <a class="code" href="a00139.html" title="A template class for two-dimensional arrays.">TwoDArray&lt;float&gt;</a> <a class="code" href="a00068.html#d926ceeaa302fa91cea0adbdef90f3db">m_Vfctrs</a>;
<a name="l00412"></a>00412     };
<a name="l00413"></a>00413 
<a name="l00415"></a>00415     <span class="keyword">class </span><a class="code" href="a00104.html" title="Parameters for overlapped block motion compensation.">OLBParams</a>
<a name="l00416"></a>00416     {
<a name="l00417"></a>00417 
<a name="l00418"></a>00418     <span class="keyword">public</span>:
<a name="l00419"></a>00419 
<a name="l00421"></a>00421         <a class="code" href="a00104.html#7b631775c43c7773095785c67dd3b626" title="Default constructor does nothing.">OLBParams</a>(){}
<a name="l00422"></a>00422 
<a name="l00424"></a>00424         <span class="comment">/*</span>
<a name="l00425"></a>00425 <span class="comment">            Constructor rationalises proposed parameters to allow suitable</span>
<a name="l00426"></a>00426 <span class="comment">            overlap and fit in with chroma format</span>
<a name="l00427"></a>00427 <span class="comment">            \param    xblen    the horizontal block length</span>
<a name="l00428"></a>00428 <span class="comment">            \param    yblen    the vertical block length</span>
<a name="l00429"></a>00429 <span class="comment">            \param    xblen    the horizontal block separation</span>
<a name="l00430"></a>00430 <span class="comment">            \param    yblen    the vertical block separation</span>
<a name="l00431"></a>00431 <span class="comment"></span>
<a name="l00432"></a>00432 <span class="comment">        */</span>
<a name="l00433"></a>00433         <a class="code" href="a00104.html#7b631775c43c7773095785c67dd3b626" title="Default constructor does nothing.">OLBParams</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> xblen, <span class="keyword">const</span> <span class="keywordtype">int</span> yblen,
<a name="l00434"></a>00434                   <span class="keyword">const</span> <span class="keywordtype">int</span> xbsep, <span class="keyword">const</span> <span class="keywordtype">int</span> ybsep);
<a name="l00435"></a>00435 
<a name="l00436"></a>00436         <span class="comment">// Gets ...</span>
<a name="l00437"></a>00437 
<a name="l00439"></a>00439         <span class="keywordtype">int</span> <a class="code" href="a00104.html#463d96359a7d599473070c9a7c6f1f5e" title="Returns the horizontal block length.">Xblen</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00104.html#5ef048388fefd9d680e5ee43101db561">m_xblen</a>;}
<a name="l00440"></a>00440 
<a name="l00442"></a>00442         <span class="keywordtype">int</span> <a class="code" href="a00104.html#2f40697e66034478eef0a484f21f19ef" title="Returns the vertical block length.">Yblen</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00104.html#5328e83485d3b16c5d53ddcf22382eb2">m_yblen</a>;}
<a name="l00443"></a>00443 
<a name="l00445"></a>00445         <span class="keywordtype">int</span> <a class="code" href="a00104.html#d147441c2688c186c08dddc25b2ee3e9" title="Returns the horizontal block separation.">Xbsep</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00104.html#dbc50bed229aefd574d2183f68437717">m_xbsep</a>;}
<a name="l00446"></a>00446 
<a name="l00448"></a>00448         <span class="keywordtype">int</span> <a class="code" href="a00104.html#3b9acfab08f00c5cc9c992319626f3e6" title="Returns the vertical block separation.">Ybsep</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00104.html#318ceed3678adfaebd8eea1c3ff9c9b2">m_ybsep</a>;}
<a name="l00449"></a>00449 
<a name="l00451"></a>00451         <span class="keywordtype">int</span> <a class="code" href="a00104.html#3d7e5aef09e9b8eb5a6e247c3637ebf1" title="The offset in the horizontal start of the block caused by overlap,=(XBLEN-XBSEP)/2...">Xoffset</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00104.html#7acf837c03d9800f5a4f949b9b061e16">m_xoffset</a>;}
<a name="l00452"></a>00452 
<a name="l00454"></a>00454         <span class="keywordtype">int</span> <a class="code" href="a00104.html#3978b720a5689e11c6fe3f3ef8614ddb" title="The offset in the vertical start of the block caused by overlap,=(YBLEN-YBSEP)/2...">Yoffset</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00104.html#467ed3a54eb9127c1f3cd35fd7c6d6b6">m_yoffset</a>;}
<a name="l00455"></a>00455 
<a name="l00456"></a>00456         <span class="comment">// ... and sets</span>
<a name="l00457"></a>00457 
<a name="l00459"></a>00459         <span class="keywordtype">void</span> <a class="code" href="a00104.html#841cb8025065d980c7ea5faa2fb8bfa7" title="Sets the block width.">SetXblen</a>( <span class="keywordtype">int</span> xblen ){ <a class="code" href="a00104.html#5ef048388fefd9d680e5ee43101db561">m_xblen</a> = xblen; <a class="code" href="a00104.html#7acf837c03d9800f5a4f949b9b061e16">m_xoffset</a> = (<a class="code" href="a00104.html#5ef048388fefd9d680e5ee43101db561">m_xblen</a>-<a class="code" href="a00104.html#dbc50bed229aefd574d2183f68437717">m_xbsep</a>)/2;}
<a name="l00460"></a>00460 
<a name="l00462"></a>00462         <span class="keywordtype">void</span> <a class="code" href="a00104.html#a1430aadc8175b304e28cb10a72e46dd" title="Sets the block height.">SetYblen</a>( <span class="keywordtype">int</span> yblen ){ <a class="code" href="a00104.html#5328e83485d3b16c5d53ddcf22382eb2">m_yblen</a> = yblen; <a class="code" href="a00104.html#467ed3a54eb9127c1f3cd35fd7c6d6b6">m_yoffset</a> = (<a class="code" href="a00104.html#5328e83485d3b16c5d53ddcf22382eb2">m_yblen</a>-<a class="code" href="a00104.html#318ceed3678adfaebd8eea1c3ff9c9b2">m_ybsep</a>)/2;}
<a name="l00463"></a>00463 
<a name="l00465"></a>00465         <span class="keywordtype">void</span> <a class="code" href="a00104.html#b4498339c141c8e3bbd03b93570c0249" title="Sets the block horizontal separation.">SetXbsep</a>( <span class="keywordtype">int</span> xbsep ){ <a class="code" href="a00104.html#dbc50bed229aefd574d2183f68437717">m_xbsep</a> = xbsep; <a class="code" href="a00104.html#7acf837c03d9800f5a4f949b9b061e16">m_xoffset</a> = (<a class="code" href="a00104.html#5ef048388fefd9d680e5ee43101db561">m_xblen</a>-<a class="code" href="a00104.html#dbc50bed229aefd574d2183f68437717">m_xbsep</a>)/2;}
<a name="l00466"></a>00466 
<a name="l00468"></a>00468         <span class="keywordtype">void</span> <a class="code" href="a00104.html#95bb609322fcdbbd4af10421a08c8b75" title="Sets the block vertical separation.">SetYbsep</a>( <span class="keywordtype">int</span> ybsep ){ <a class="code" href="a00104.html#318ceed3678adfaebd8eea1c3ff9c9b2">m_ybsep</a> = ybsep; <a class="code" href="a00104.html#467ed3a54eb9127c1f3cd35fd7c6d6b6">m_yoffset</a> = (<a class="code" href="a00104.html#5328e83485d3b16c5d53ddcf22382eb2">m_yblen</a>-<a class="code" href="a00104.html#318ceed3678adfaebd8eea1c3ff9c9b2">m_ybsep</a>)/2;}
<a name="l00469"></a>00469 
<a name="l00470"></a>00470         <span class="keywordtype">bool</span> <a class="code" href="a00104.html#400c741383072ef5e32374f3ceb0823e">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00104.html#7b631775c43c7773095785c67dd3b626" title="Default constructor does nothing.">OLBParams</a> bparams) <span class="keyword">const</span>;
<a name="l00471"></a>00471 
<a name="l00472"></a>00472         <span class="comment">// overloaded stream operators</span>
<a name="l00473"></a>00473         <span class="keyword">friend</span> std::ostream &amp; <a class="code" href="a00104.html#8589235100403eef0086fc5d8d807b8e">operator&lt;&lt; </a>(std::ostream &amp;, <a class="code" href="a00104.html#7b631775c43c7773095785c67dd3b626" title="Default constructor does nothing.">OLBParams</a> &amp;);
<a name="l00474"></a>00474         <span class="keyword">friend</span> std::istream &amp; <a class="code" href="a00104.html#5b8dca4880cd3c59c0266be3ba8634c7">operator&gt;&gt; </a>(std::istream &amp;, <a class="code" href="a00104.html#7b631775c43c7773095785c67dd3b626" title="Default constructor does nothing.">OLBParams</a> &amp;);
<a name="l00475"></a>00475 
<a name="l00476"></a>00476 
<a name="l00477"></a>00477     <span class="keyword">private</span>:
<a name="l00478"></a><a class="code" href="a00104.html#5ef048388fefd9d680e5ee43101db561">00478</a> 
<a name="l00479"></a><a class="code" href="a00104.html#5328e83485d3b16c5d53ddcf22382eb2">00479</a>         <span class="keywordtype">int</span> <a class="code" href="a00104.html#5ef048388fefd9d680e5ee43101db561">m_xblen</a>;
<a name="l00480"></a><a class="code" href="a00104.html#dbc50bed229aefd574d2183f68437717">00480</a>         <span class="keywordtype">int</span> <a class="code" href="a00104.html#5328e83485d3b16c5d53ddcf22382eb2">m_yblen</a>;
<a name="l00481"></a><a class="code" href="a00104.html#318ceed3678adfaebd8eea1c3ff9c9b2">00481</a>         <span class="keywordtype">int</span> <a class="code" href="a00104.html#dbc50bed229aefd574d2183f68437717">m_xbsep</a>;
<a name="l00482"></a><a class="code" href="a00104.html#7acf837c03d9800f5a4f949b9b061e16">00482</a>         <span class="keywordtype">int</span> <a class="code" href="a00104.html#318ceed3678adfaebd8eea1c3ff9c9b2">m_ybsep</a>;
<a name="l00483"></a><a class="code" href="a00104.html#467ed3a54eb9127c1f3cd35fd7c6d6b6">00483</a>         <span class="keywordtype">int</span> <a class="code" href="a00104.html#7acf837c03d9800f5a4f949b9b061e16">m_xoffset</a>;
<a name="l00484"></a>00484         <span class="keywordtype">int</span> <a class="code" href="a00104.html#467ed3a54eb9127c1f3cd35fd7c6d6b6">m_yoffset</a>;
<a name="l00485"></a>00485     };
<a name="l00486"></a>00486 
<a name="l00488"></a>00488     <span class="keyword">class </span><a class="code" href="a00122.html" title="Class defining a rational number.">Rational</a>
<a name="l00489"></a>00489     {
<a name="l00490"></a>00490     <span class="keyword">public</span>:
<a name="l00492"></a>00492         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00122.html#d00702073a0f1267a082fc42bfd769b2" title="Numerator.">m_num</a>;
<a name="l00494"></a>00494         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00122.html#f0ac584e8eb2ca83afe05afff1cc9679" title="Denominator.">m_denom</a>;
<a name="l00495"></a>00495     };
<a name="l00496"></a>00496 
<a name="l00498"></a>00498     <span class="keyword">class </span>ParseParams
<a name="l00499"></a>00499     {
<a name="l00500"></a>00500     <span class="keyword">public</span>:
<a name="l00502"></a>00502         <a class="code" href="a00109.html#4ad226fc435f79b19d254f3ff827986b" title="Default constructor.">ParseParams</a>();
<a name="l00503"></a>00503 
<a name="l00504"></a>00504         <span class="comment">// Gets</span>
<a name="l00505"></a>00505 
<a name="l00507"></a>00507         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00109.html#03146d671596016f205c5974caa74c38" title="Get the major version.">MajorVersion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00109.html#715449ffe207a6b6537015a6e4a16366" title="Major Version.">m_major_ver</a>; }
<a name="l00508"></a>00508 
<a name="l00510"></a>00510         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00109.html#5009bf1ddfd88b30077e99705351fc76" title="Get the minor version.">MinorVersion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00109.html#a459069c84acfc40e20979c0ff3a5f80" title="Minor Version.">m_minor_ver</a>; }
<a name="l00511"></a>00511 
<a name="l00513"></a>00513         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00109.html#e75b4c890455441b4b298e0958cc9fad" title="Get the Profile.">Profile</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00109.html#1bd2622860290355e4b9a38c4e62e436" title="Profile.">m_profile</a>; }
<a name="l00514"></a>00514 
<a name="l00516"></a>00516         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00109.html#520820ff4c5862d34741a63325e47490" title="Get the Level.">Level</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00109.html#7f168527db57c562fcc86763bfb06870" title="Level.">m_level</a>; }
<a name="l00517"></a>00517 
<a name="l00518"></a>00518         <span class="comment">// Sets</span>
<a name="l00519"></a>00519 
<a name="l00521"></a>00521         <span class="keywordtype">void</span> <a class="code" href="a00109.html#c6210aa51f98bfa9f293d57fe9b10a63" title="Set the major version.">SetMajorVersion</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> major_ver) {<a class="code" href="a00109.html#715449ffe207a6b6537015a6e4a16366" title="Major Version.">m_major_ver</a> = major_ver; }
<a name="l00522"></a>00522 
<a name="l00524"></a>00524         <span class="keywordtype">void</span> <a class="code" href="a00109.html#9fa399e3a2edaad792e1d525d889adc9" title="Set the minor version.">SetMinorVersion</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> minor_ver) { <a class="code" href="a00109.html#a459069c84acfc40e20979c0ff3a5f80" title="Minor Version.">m_minor_ver</a> = minor_ver; }
<a name="l00525"></a>00525 
<a name="l00527"></a>00527         <span class="keywordtype">void</span> <a class="code" href="a00109.html#d894b0d468e7b25c7d3369eabc4d8d7f" title="Set the Profile.">SetProfile</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> level) { <a class="code" href="a00109.html#7f168527db57c562fcc86763bfb06870" title="Level.">m_level</a> = level; }
<a name="l00528"></a>00528 
<a name="l00530"></a>00530         <span class="keywordtype">void</span> <a class="code" href="a00109.html#44bd249b2afe6b76f58590f79690232b" title="Set the Level.">SetLevel</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> profile) { <a class="code" href="a00109.html#1bd2622860290355e4b9a38c4e62e436" title="Profile.">m_profile</a> = profile; }
<a name="l00531"></a>00531 
<a name="l00532"></a>00532     <span class="keyword">private</span>:
<a name="l00534"></a>00534         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00109.html#715449ffe207a6b6537015a6e4a16366" title="Major Version.">m_major_ver</a>;
<a name="l00536"></a>00536         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00109.html#a459069c84acfc40e20979c0ff3a5f80" title="Minor Version.">m_minor_ver</a>;
<a name="l00538"></a>00538         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00109.html#1bd2622860290355e4b9a38c4e62e436" title="Profile.">m_profile</a>;
<a name="l00540"></a>00540         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00109.html#7f168527db57c562fcc86763bfb06870" title="Level.">m_level</a>;
<a name="l00541"></a>00541     };
<a name="l00542"></a>00542 
<a name="l00544"></a>00544     <span class="keyword">class </span>SourceParams
<a name="l00545"></a>00545     {
<a name="l00546"></a>00546     <span class="keyword">public</span>:
<a name="l00548"></a>00548         <a class="code" href="a00125.html#db48a5d25d172cfdb791ed772322fabb" title="default constructor">SourceParams</a> (<span class="keyword">const</span> <a class="code" href="a00168.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> &amp;vf = <a class="code" href="a00168.html#216a5d43d2a518325c84f100ed7735a55a3ea902cd1b9de9f720f66bba453c65">VIDEO_FORMAT_CUSTOM</a>,
<a name="l00549"></a>00549                       <span class="keywordtype">bool</span> set_defaults=<span class="keyword">true</span>);
<a name="l00550"></a>00550 
<a name="l00552"></a>00552         <span class="comment">//NB: Assume default copy constructor, assignment = and destructor//</span>
<a name="l00554"></a>00554 <span class="comment"></span>
<a name="l00555"></a>00555         <span class="comment">// Gets</span>
<a name="l00557"></a>00557 <span class="comment"></span>        <a class="code" href="a00168.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> <a class="code" href="a00125.html#c2f64a769180717df29c0e55c25d24ed" title="Returns video-format.">GetVideoFormat</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#9a7db04b9a042483e46bcb2b10ced7f3" title="Video-format.">m_video_format</a>;}
<a name="l00558"></a>00558 
<a name="l00560"></a>00560         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#963d5968dc28741d2ed57020cbd4af64" title="Returns the picture width.">Xl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00125.html#737314eb6333867f32e9a7f22584e7ae" title="Width of video.">m_xl</a>;}
<a name="l00561"></a>00561 
<a name="l00563"></a>00563         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#ab0d24343a0908b790989eadc7a4d1b0" title="Returns the picture height.">Yl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00125.html#8cfb27502c1c576bf225d2dd6f91c5db" title="Height of video.">m_yl</a>;}
<a name="l00564"></a>00564 
<a name="l00566"></a>00566         <a class="code" href="a00168.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> <a class="code" href="a00125.html#b24c9222a5722df95f32a8c91feb60ea" title="Returns the chroma format of the sequence (420, 422, 444).">CFormat</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00125.html#f8c3c6f498360267d7b5fd006274500d" title="Presence of chroma and/or chroma sampling structure.">m_cformat</a>;}
<a name="l00567"></a>00567 
<a name="l00569"></a>00569         <span class="keywordtype">int</span> <a class="code" href="a00125.html#9fc404373d04a05efdcf5905d075cb3b" title="Returns the chroma width.">ChromaWidth</a>() <span class="keyword">const</span>;
<a name="l00570"></a>00570 
<a name="l00572"></a>00572         <span class="keywordtype">int</span> <a class="code" href="a00125.html#f23320213c7c7b1dfbe6782733875e79" title="Returns the chroma height.">ChromaHeight</a>() <span class="keyword">const</span>;
<a name="l00573"></a>00573 
<a name="l00575"></a>00575         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#ab2c3cb2b9689e25fb9744e050dc12c7" title="Returns the source sampling field of the source scan format.">SourceSampling</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#1f60a1dbf59785a4f9d7bae2f781bd47" title="Source sampling field : 0 - progressive, 1 - interlaced.">m_source_sampling</a>; }
<a name="l00576"></a>00576 
<a name="l00578"></a>00578         <span class="keywordtype">bool</span> <a class="code" href="a00125.html#4303224aecf8b47abd846d6d49f3654d" title="Returns true if top field comes first in time.">TopFieldFirst</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#56565c37550add8c86d565db7145cbf3" title="If m_source_sampling=1, true if the top field is first in temporal order.">m_topfieldfirst</a>; }
<a name="l00579"></a>00579 
<a name="l00581"></a>00581         Rational <a class="code" href="a00125.html#8508d37cf49d90430602338ce532968d" title="Return the number for frames per second.">FrameRate</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#318303ef43999fe22ad5df7d3cd5698d" title="Frame Rate i.e number of frames per second.">m_framerate</a>; }
<a name="l00582"></a>00582 
<a name="l00584"></a>00584         <a class="code" href="a00168.html#c814b7884e2fe3617a7590dd30fb69d3">FrameRateType</a> <a class="code" href="a00125.html#67c2b4a92b0553d60b5f74727b875a10" title="Return the type from the frame rate table.">FrameRateIndex</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#865674b3dd960379f48ceeaa4be9a611" title="Index into frame rate table.">m_fr_idx</a>; }
<a name="l00585"></a>00585 
<a name="l00587"></a>00587         Rational <a class="code" href="a00125.html#84f62f5dca14cc6f78290f9c3f4d6109" title="Return the pixel aspect ratio.">PixelAspectRatio</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#cae12b84d6eb836f90b40de04fe3adb9" title="Pixel Aspect Ratio.">m_pixel_aspect_ratio</a>; }
<a name="l00588"></a>00588 
<a name="l00590"></a>00590         <a class="code" href="a00168.html#a7dbc205d742c02df228c990257b7302">PixelAspectRatioType</a> <a class="code" href="a00125.html#f029ff2b3c87d93f764b7a4b529defe3" title="Return the type from the pixel aspect ratio table.">PixelAspectRatioIndex</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#af18b252a28ee1666c77b80a203a3d34" title="Index into pixel aspect ratio table.">m_pix_asr_idx</a>; }
<a name="l00591"></a>00591 
<a name="l00592"></a>00592         <span class="comment">// Clean area parameters</span>
<a name="l00594"></a>00594 <span class="comment"></span>        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#8764da2e88e2a918a8b2b912f724c90c" title="Return the Clean area width.">CleanWidth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#506b2df74f6174a02042758a1db9ad6c" title="Clean area width.">m_clean_width</a>; }
<a name="l00596"></a>00596         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#c115ff029eb1a1bf5867d48b8c3389ea" title="Return the Clean area height.">CleanHeight</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#00937291a031a1ee311f808e7e88ed0a" title="Clean area height.">m_clean_height</a>; }
<a name="l00598"></a>00598         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#7367e1c57a72075751b02ae1335ef696" title="Return the Clean area left offset.">LeftOffset</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#dff600ae7afa4b6f580384682d5d159d" title="Clean area left offset.">m_left_offset</a>; }
<a name="l00600"></a>00600         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#38c657b1e5b97c0e80e5db51aea1dc58" title="Return the Clean area top offset.">TopOffset</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#c304a3512f87c20090def2f14f234f9c" title="Clean area top offset.">m_top_offset</a>; }
<a name="l00601"></a>00601 
<a name="l00602"></a>00602         <span class="comment">// Signal Range parameters</span>
<a name="l00603"></a>00603 
<a name="l00605"></a>00605         <a class="code" href="a00168.html#d9244a0d1ab3670e4027e3ac49cf18da">SignalRangeType</a> <a class="code" href="a00125.html#b8bbe4dec1dc7888b022f2b6194d5056" title="Return the type from the signal range table.">SignalRangeIndex</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#d3dfea43e79bca8ac87d8326158f404c" title="Index into signal range table.">m_sr_idx</a>; }
<a name="l00606"></a>00606 
<a name="l00608"></a>00608         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#8aa44df9019ffdda08fc93d670c2cf92" title="Return the luma offset.">LumaOffset</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#4e58a1024cb15932b7b0b04f63e1b634" title="Luma offset.">m_luma_offset</a>; }
<a name="l00610"></a>00610         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#22c1a2f2b3d5d713a9b59b5380f36a1f" title="Return the luma excursion.">LumaExcursion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#c2d33f365a9ca25205b2cb66eb429f08" title="Luma excursion.">m_luma_excursion</a>; }
<a name="l00612"></a>00612         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#440967c51b5f0564d285faef84e0b003" title="Return the chroma offset.">ChromaOffset</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#211386edeed9c90324c78f52569a6972" title="Chroma offset.">m_chroma_offset</a>; }
<a name="l00614"></a>00614         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#309ba2298656c83730035d3251fdad86" title="Return the chroma excursion.">ChromaExcursion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#04454b16e45418c3e7bc565340d66c2e" title="Chroma excursion.">m_chroma_excursion</a>; }
<a name="l00615"></a>00615 
<a name="l00617"></a>00617         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#22343ce4eca72ede42141de12f6665e0" title="Return the index into the colour specification table.">ColourSpecificationIndex</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#ba79fd333975aa4e8f089caf13de74ee" title="Index into colour spec table.">m_cs_idx</a>; }
<a name="l00618"></a>00618 
<a name="l00620"></a>00620         <a class="code" href="a00168.html#b38dc5997b8fc7f0f94d4d85a8d3f5a2">ColourPrimaries</a> <a class="code" href="a00125.html#52f7d3b5f2106b8b4e7bac966e7c9ce8" title="Return the colour primaries index.">ColourPrimariesIndex</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#6f84eb54acb116bc8d3c7912b1e4d183" title="Colour Primaries Index.">m_col_primary</a>; }
<a name="l00622"></a>00622         <a class="code" href="a00168.html#e3b93f8dd089aefd5f6721c6145ff682">ColourMatrix</a> <a class="code" href="a00125.html#0834b7d40860b962d6a408b123d59154" title="Return the colour matrix index.">ColourMatrixIndex</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#3769d09fb2eba34be035eea1e4224169">m_col_matrix</a>; }
<a name="l00624"></a>00624         <a class="code" href="a00168.html#1b236414b6580bfadb3be8585123f2db">TransferFunction</a> <a class="code" href="a00125.html#8bd84cab8fb02989964331225d691f18" title="Return the transfer function index.">TransferFunctionIndex</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00125.html#60950f9add3cf64b19c3051417a474ec">m_transfer_func</a>; }
<a name="l00625"></a>00625 
<a name="l00626"></a>00626         <span class="comment">// Sets</span>
<a name="l00627"></a>00627 
<a name="l00629"></a>00629         <span class="keywordtype">void</span> <a class="code" href="a00125.html#245f9300632726a35aad2b823d27cc38" title="Sets the picture width.">SetXl</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> xlen) {<a class="code" href="a00125.html#737314eb6333867f32e9a7f22584e7ae" title="Width of video.">m_xl</a> = xlen;}
<a name="l00630"></a>00630 
<a name="l00632"></a>00632         <span class="keywordtype">void</span> <a class="code" href="a00125.html#04a88af26e9330cd9b38c9d01ecac3ce" title="Sets the picture height.">SetYl</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ylen) {<a class="code" href="a00125.html#8cfb27502c1c576bf225d2dd6f91c5db" title="Height of video.">m_yl</a> = ylen;}
<a name="l00633"></a>00633 
<a name="l00635"></a>00635         <span class="keywordtype">void</span> <a class="code" href="a00125.html#b8f248b6705c4c45b0bf97b60865cada" title="Sets the chroma format (Y only, 420, 422 etc).">SetCFormat</a>(<a class="code" href="a00168.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> cf) {<a class="code" href="a00125.html#f8c3c6f498360267d7b5fd006274500d" title="Presence of chroma and/or chroma sampling structure.">m_cformat</a>=cf;}
<a name="l00636"></a>00636 
<a name="l00638"></a>00638         <span class="keywordtype">void</span> <a class="code" href="a00125.html#a2fc27b7a1780d36fee871e592595655" title="Set if the source sampling field of the scan format.">SetSourceSampling</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> source_sampling) 
<a name="l00639"></a>00639         { <a class="code" href="a00125.html#1f60a1dbf59785a4f9d7bae2f781bd47" title="Source sampling field : 0 - progressive, 1 - interlaced.">m_source_sampling</a> = source_sampling; }
<a name="l00640"></a>00640 
<a name="l00642"></a>00642         <span class="keywordtype">void</span> <a class="code" href="a00125.html#28d0bd345f6fb02434fabf5db159b667" title="Set Topfield first. True if top field comes first in time.">SetTopFieldFirst</a>(<span class="keywordtype">bool</span> tff) { <a class="code" href="a00125.html#56565c37550add8c86d565db7145cbf3" title="If m_source_sampling=1, true if the top field is first in temporal order.">m_topfieldfirst</a> = tff; }
<a name="l00643"></a>00643 
<a name="l00645"></a>00645         <span class="keywordtype">void</span> <a class="code" href="a00125.html#4e741bc1c8c1d417ada75fa19db327ac" title="Sets the video format.">SetVideoFormat</a>(<a class="code" href="a00168.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> vf){ <a class="code" href="a00125.html#9a7db04b9a042483e46bcb2b10ced7f3" title="Video-format.">m_video_format</a>=vf;}
<a name="l00646"></a>00646 
<a name="l00648"></a>00648         <span class="keywordtype">void</span> <a class="code" href="a00125.html#cdcc5b045ec614bbe253ecf78f82c232" title="Set the frame rate.">SetFrameRate</a>(<span class="keyword">const</span> Rational &amp;frate )
<a name="l00649"></a>00649         {
<a name="l00650"></a>00650             <a class="code" href="a00125.html#865674b3dd960379f48ceeaa4be9a611" title="Index into frame rate table.">m_fr_idx</a> = <a class="code" href="a00168.html#c814b7884e2fe3617a7590dd30fb69d3e5ca50c18422d0aaded343070d508314">FRAMERATE_CUSTOM</a>; <a class="code" href="a00125.html#318303ef43999fe22ad5df7d3cd5698d" title="Frame Rate i.e number of frames per second.">m_framerate</a> = frate;
<a name="l00651"></a>00651         }
<a name="l00652"></a>00652 
<a name="l00654"></a>00654         <span class="keywordtype">void</span> <a class="code" href="a00125.html#cdcc5b045ec614bbe253ecf78f82c232" title="Set the frame rate.">SetFrameRate</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> fr_num, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> fr_denom )
<a name="l00655"></a>00655         {
<a name="l00656"></a>00656             <a class="code" href="a00125.html#865674b3dd960379f48ceeaa4be9a611" title="Index into frame rate table.">m_fr_idx</a> = <a class="code" href="a00168.html#c814b7884e2fe3617a7590dd30fb69d3e5ca50c18422d0aaded343070d508314">FRAMERATE_CUSTOM</a>;
<a name="l00657"></a>00657             <a class="code" href="a00125.html#318303ef43999fe22ad5df7d3cd5698d" title="Frame Rate i.e number of frames per second.">m_framerate</a>.m_num = fr_num;
<a name="l00658"></a>00658             <a class="code" href="a00125.html#318303ef43999fe22ad5df7d3cd5698d" title="Frame Rate i.e number of frames per second.">m_framerate</a>.m_denom = fr_denom;
<a name="l00659"></a>00659         }
<a name="l00660"></a>00660 
<a name="l00662"></a>00662         <span class="keywordtype">void</span> <a class="code" href="a00125.html#cdcc5b045ec614bbe253ecf78f82c232" title="Set the frame rate.">SetFrameRate</a>(<a class="code" href="a00168.html#c814b7884e2fe3617a7590dd30fb69d3">FrameRateType</a> fr);
<a name="l00663"></a>00663 
<a name="l00665"></a>00665         <span class="keywordtype">void</span> <a class="code" href="a00125.html#6466a4d1397c8d8e811a386dfe7979a6" title="Set the pixel aspect ratio.">SetPixelAspectRatio</a>(<span class="keyword">const</span> Rational &amp;pix_asr)
<a name="l00666"></a>00666         {
<a name="l00667"></a>00667             <a class="code" href="a00125.html#af18b252a28ee1666c77b80a203a3d34" title="Index into pixel aspect ratio table.">m_pix_asr_idx</a> = <a class="code" href="a00168.html#a7dbc205d742c02df228c990257b7302687cd79be94c5d6e942960fa408ebe1b">PIXEL_ASPECT_RATIO_CUSTOM</a>;
<a name="l00668"></a>00668             <a class="code" href="a00125.html#cae12b84d6eb836f90b40de04fe3adb9" title="Pixel Aspect Ratio.">m_pixel_aspect_ratio</a> = pix_asr;
<a name="l00669"></a>00669         }
<a name="l00670"></a>00670 
<a name="l00672"></a>00672         <span class="keywordtype">void</span> <a class="code" href="a00125.html#6466a4d1397c8d8e811a386dfe7979a6" title="Set the pixel aspect ratio.">SetPixelAspectRatio</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> pix_as_num, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> pix_as_denom )
<a name="l00673"></a>00673         {
<a name="l00674"></a>00674             <a class="code" href="a00125.html#af18b252a28ee1666c77b80a203a3d34" title="Index into pixel aspect ratio table.">m_pix_asr_idx</a> = <a class="code" href="a00168.html#a7dbc205d742c02df228c990257b7302687cd79be94c5d6e942960fa408ebe1b">PIXEL_ASPECT_RATIO_CUSTOM</a>;
<a name="l00675"></a>00675             <a class="code" href="a00125.html#cae12b84d6eb836f90b40de04fe3adb9" title="Pixel Aspect Ratio.">m_pixel_aspect_ratio</a>.m_num = pix_as_num;
<a name="l00676"></a>00676             <a class="code" href="a00125.html#cae12b84d6eb836f90b40de04fe3adb9" title="Pixel Aspect Ratio.">m_pixel_aspect_ratio</a>.m_denom = pix_as_denom;
<a name="l00677"></a>00677         }
<a name="l00678"></a>00678 
<a name="l00680"></a>00680         <span class="keywordtype">void</span> <a class="code" href="a00125.html#6466a4d1397c8d8e811a386dfe7979a6" title="Set the pixel aspect ratio.">SetPixelAspectRatio</a>(<a class="code" href="a00168.html#a7dbc205d742c02df228c990257b7302">PixelAspectRatioType</a> pixel_aspect_ratio);
<a name="l00681"></a>00681 
<a name="l00682"></a>00682         <span class="comment">// Clean area parameters</span>
<a name="l00684"></a>00684 <span class="comment"></span>        <span class="keywordtype">void</span> <a class="code" href="a00125.html#98cb0ecae81996a03eaa77ba4dc26968" title="Set the Clean area width.">SetCleanWidth</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> clean_width) { <a class="code" href="a00125.html#506b2df74f6174a02042758a1db9ad6c" title="Clean area width.">m_clean_width</a> = clean_width; }
<a name="l00686"></a>00686         <span class="keywordtype">void</span> <a class="code" href="a00125.html#cd92334edbc46397cd595559488469bf" title="Set the Clean area height.">SetCleanHeight</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> clean_height) { <a class="code" href="a00125.html#00937291a031a1ee311f808e7e88ed0a" title="Clean area height.">m_clean_height</a> = clean_height; }
<a name="l00688"></a>00688         <span class="keywordtype">void</span> <a class="code" href="a00125.html#cd320c3f9d228f19935e272f035758a5" title="Set the Clean area left offset.">SetLeftOffset</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> left_offset) { <a class="code" href="a00125.html#dff600ae7afa4b6f580384682d5d159d" title="Clean area left offset.">m_left_offset</a> = left_offset; }
<a name="l00690"></a>00690         <span class="keywordtype">void</span> <a class="code" href="a00125.html#0fc18c4753bdb4a79792e852c5eda279" title="Set the Clean area top offset.">SetTopOffset</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> top_offset) { <a class="code" href="a00125.html#c304a3512f87c20090def2f14f234f9c" title="Clean area top offset.">m_top_offset</a> = top_offset; }
<a name="l00691"></a>00691 
<a name="l00692"></a>00692         <span class="comment">// Signal Range parameters</span>
<a name="l00694"></a>00694 <span class="comment"></span>        <span class="keywordtype">void</span> <a class="code" href="a00125.html#5e09d404ad4ba5656f34c88c878527a8" title="Set the Signal Range parameters.">SetSignalRange</a>(<a class="code" href="a00168.html#d9244a0d1ab3670e4027e3ac49cf18da">SignalRangeType</a> sr);
<a name="l00695"></a>00695 
<a name="l00697"></a>00697         <span class="keywordtype">void</span> <a class="code" href="a00125.html#799a988e47e77ca47efe1b854e2c5e51" title="Set the luma offset.">SetLumaOffset</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> luma_offset) { <a class="code" href="a00125.html#d3dfea43e79bca8ac87d8326158f404c" title="Index into signal range table.">m_sr_idx</a> = <a class="code" href="a00168.html#d9244a0d1ab3670e4027e3ac49cf18dab47c0996621de228c6e0d73570845f7a">SIGNAL_RANGE_CUSTOM</a>; <a class="code" href="a00125.html#4e58a1024cb15932b7b0b04f63e1b634" title="Luma offset.">m_luma_offset</a> = luma_offset; }
<a name="l00699"></a>00699         <span class="keywordtype">void</span> <a class="code" href="a00125.html#daf155c080423cceaae993f7748cea20" title="Set the luma excursion.">SetLumaExcursion</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> luma_exc) { <a class="code" href="a00125.html#d3dfea43e79bca8ac87d8326158f404c" title="Index into signal range table.">m_sr_idx</a> = <a class="code" href="a00168.html#d9244a0d1ab3670e4027e3ac49cf18dab47c0996621de228c6e0d73570845f7a">SIGNAL_RANGE_CUSTOM</a>; <a class="code" href="a00125.html#c2d33f365a9ca25205b2cb66eb429f08" title="Luma excursion.">m_luma_excursion</a> = luma_exc; }
<a name="l00701"></a>00701         <span class="keywordtype">void</span> <a class="code" href="a00125.html#7216651259633f02be45949c7c1426a5" title="Set the chroma offset.">SetChromaOffset</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> chroma_off) { <a class="code" href="a00125.html#d3dfea43e79bca8ac87d8326158f404c" title="Index into signal range table.">m_sr_idx</a> = <a class="code" href="a00168.html#d9244a0d1ab3670e4027e3ac49cf18dab47c0996621de228c6e0d73570845f7a">SIGNAL_RANGE_CUSTOM</a>; <a class="code" href="a00125.html#211386edeed9c90324c78f52569a6972" title="Chroma offset.">m_chroma_offset</a> = chroma_off; }
<a name="l00703"></a>00703         <span class="keywordtype">void</span> <a class="code" href="a00125.html#38943fcef10c3d3fe22222056d6f06ac" title="Set the chroma excursion.">SetChromaExcursion</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> chroma_exc) { <a class="code" href="a00125.html#d3dfea43e79bca8ac87d8326158f404c" title="Index into signal range table.">m_sr_idx</a> = <a class="code" href="a00168.html#d9244a0d1ab3670e4027e3ac49cf18dab47c0996621de228c6e0d73570845f7a">SIGNAL_RANGE_CUSTOM</a>; <a class="code" href="a00125.html#04454b16e45418c3e7bc565340d66c2e" title="Chroma excursion.">m_chroma_excursion</a> = chroma_exc; }
<a name="l00704"></a>00704 
<a name="l00706"></a>00706         <span class="keywordtype">void</span> <a class="code" href="a00125.html#87dfe3bafc958540b4ffd5a29e4ce7f6" title="Set the Colour specification.">SetColourSpecification</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cs_idx);
<a name="l00708"></a>00708         <span class="keywordtype">void</span> <a class="code" href="a00125.html#7a9bd04d81c3ffe3bae671653eae9348" title="Set the colour primaries index.">SetColourPrimariesIndex</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cp);
<a name="l00710"></a>00710         <span class="keywordtype">void</span> <a class="code" href="a00125.html#c20f6eedb770469a2252cc90fd10f167" title="Set the colour matrix index.">SetColourMatrixIndex</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cm);
<a name="l00712"></a>00712         <span class="keywordtype">void</span> <a class="code" href="a00125.html#837c37878bbfaffa69066bc5ab6136fd" title="Set the transfer function index.">SetTransferFunctionIndex</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> tf);
<a name="l00713"></a>00713 
<a name="l00714"></a>00714     <span class="keyword">private</span>:
<a name="l00716"></a>00716         <a class="code" href="a00168.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> <a class="code" href="a00125.html#9a7db04b9a042483e46bcb2b10ced7f3" title="Video-format.">m_video_format</a>;
<a name="l00717"></a>00717 
<a name="l00719"></a>00719         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#737314eb6333867f32e9a7f22584e7ae" title="Width of video.">m_xl</a>;
<a name="l00720"></a>00720 
<a name="l00722"></a>00722         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#8cfb27502c1c576bf225d2dd6f91c5db" title="Height of video.">m_yl</a>;
<a name="l00723"></a>00723 
<a name="l00725"></a>00725         <a class="code" href="a00168.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> <a class="code" href="a00125.html#f8c3c6f498360267d7b5fd006274500d" title="Presence of chroma and/or chroma sampling structure.">m_cformat</a>;
<a name="l00726"></a>00726 
<a name="l00728"></a>00728         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#1f60a1dbf59785a4f9d7bae2f781bd47" title="Source sampling field : 0 - progressive, 1 - interlaced.">m_source_sampling</a>;
<a name="l00729"></a>00729 
<a name="l00731"></a>00731         <span class="keywordtype">bool</span> <a class="code" href="a00125.html#56565c37550add8c86d565db7145cbf3" title="If m_source_sampling=1, true if the top field is first in temporal order.">m_topfieldfirst</a>;
<a name="l00732"></a>00732 
<a name="l00734"></a>00734         <a class="code" href="a00168.html#c814b7884e2fe3617a7590dd30fb69d3">FrameRateType</a> <a class="code" href="a00125.html#865674b3dd960379f48ceeaa4be9a611" title="Index into frame rate table.">m_fr_idx</a>;
<a name="l00735"></a>00735 
<a name="l00737"></a>00737         Rational <a class="code" href="a00125.html#318303ef43999fe22ad5df7d3cd5698d" title="Frame Rate i.e number of frames per second.">m_framerate</a>;
<a name="l00738"></a>00738 
<a name="l00740"></a>00740         <a class="code" href="a00168.html#a7dbc205d742c02df228c990257b7302">PixelAspectRatioType</a> <a class="code" href="a00125.html#af18b252a28ee1666c77b80a203a3d34" title="Index into pixel aspect ratio table.">m_pix_asr_idx</a>;
<a name="l00741"></a>00741 
<a name="l00743"></a>00743         Rational <a class="code" href="a00125.html#cae12b84d6eb836f90b40de04fe3adb9" title="Pixel Aspect Ratio.">m_pixel_aspect_ratio</a>;
<a name="l00744"></a>00744 
<a name="l00745"></a>00745         <span class="comment">// Clean area parameters</span>
<a name="l00746"></a>00746 
<a name="l00748"></a>00748         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#506b2df74f6174a02042758a1db9ad6c" title="Clean area width.">m_clean_width</a>;
<a name="l00749"></a>00749 
<a name="l00751"></a>00751         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#00937291a031a1ee311f808e7e88ed0a" title="Clean area height.">m_clean_height</a>;
<a name="l00752"></a>00752 
<a name="l00754"></a>00754         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#dff600ae7afa4b6f580384682d5d159d" title="Clean area left offset.">m_left_offset</a>;
<a name="l00755"></a>00755 
<a name="l00757"></a>00757         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#c304a3512f87c20090def2f14f234f9c" title="Clean area top offset.">m_top_offset</a>;
<a name="l00758"></a>00758 
<a name="l00759"></a>00759         <span class="comment">// signal range parameters</span>
<a name="l00760"></a>00760 
<a name="l00762"></a>00762         <a class="code" href="a00168.html#d9244a0d1ab3670e4027e3ac49cf18da">SignalRangeType</a> <a class="code" href="a00125.html#d3dfea43e79bca8ac87d8326158f404c" title="Index into signal range table.">m_sr_idx</a>;
<a name="l00763"></a>00763 
<a name="l00765"></a>00765         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#4e58a1024cb15932b7b0b04f63e1b634" title="Luma offset.">m_luma_offset</a>;
<a name="l00767"></a>00767         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#c2d33f365a9ca25205b2cb66eb429f08" title="Luma excursion.">m_luma_excursion</a>;
<a name="l00769"></a>00769         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#211386edeed9c90324c78f52569a6972" title="Chroma offset.">m_chroma_offset</a>;
<a name="l00771"></a>00771         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#04454b16e45418c3e7bc565340d66c2e" title="Chroma excursion.">m_chroma_excursion</a>;
<a name="l00772"></a>00772 
<a name="l00774"></a>00774         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00125.html#ba79fd333975aa4e8f089caf13de74ee" title="Index into colour spec table.">m_cs_idx</a>;
<a name="l00775"></a>00775 
<a name="l00777"></a>00777         <a class="code" href="a00168.html#b38dc5997b8fc7f0f94d4d85a8d3f5a2">ColourPrimaries</a> <a class="code" href="a00125.html#6f84eb54acb116bc8d3c7912b1e4d183" title="Colour Primaries Index.">m_col_primary</a>;
<a name="l00778"></a>00778 
<a name="l00779"></a><a class="code" href="a00125.html#3769d09fb2eba34be035eea1e4224169">00779</a>         <span class="comment">// Colour Matrix index</span>
<a name="l00780"></a>00780         <a class="code" href="a00168.html#e3b93f8dd089aefd5f6721c6145ff682">ColourMatrix</a> <a class="code" href="a00125.html#3769d09fb2eba34be035eea1e4224169">m_col_matrix</a>;
<a name="l00781"></a>00781 
<a name="l00782"></a><a class="code" href="a00125.html#60950f9add3cf64b19c3051417a474ec">00782</a>         <span class="comment">// Transfer function index</span>
<a name="l00783"></a>00783         <a class="code" href="a00168.html#1b236414b6580bfadb3be8585123f2db">TransferFunction</a> <a class="code" href="a00125.html#60950f9add3cf64b19c3051417a474ec">m_transfer_func</a>;
<a name="l00784"></a>00784     };
<a name="l00785"></a>00785 
<a name="l00787"></a>00787     <span class="keyword">class </span><a class="code" href="a00078.html" title="Parameters for initialising frame class objects.">FrameParams</a>
<a name="l00788"></a>00788     {
<a name="l00789"></a>00789 
<a name="l00790"></a>00790     <span class="keyword">public</span>:
<a name="l00792"></a>00792         <a class="code" href="a00078.html#bb22b766323777e7f6d8949796681f34" title="Default constructor.">FrameParams</a>();
<a name="l00793"></a>00793 
<a name="l00795"></a>00795 
<a name="l00798"></a>00798         <a class="code" href="a00078.html#bb22b766323777e7f6d8949796681f34" title="Default constructor.">FrameParams</a>(<span class="keyword">const</span> <a class="code" href="a00168.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a>&amp; cf, <span class="keywordtype">int</span> orig_xlen, <span class="keywordtype">int</span> orig_ylen,
<a name="l00799"></a>00799                     <span class="keywordtype">int</span> dwt_xlen, <span class="keywordtype">int</span> dwt_ylen,
<a name="l00800"></a>00800                     <span class="keywordtype">int</span> c_dwt_xlen, <span class="keywordtype">int</span> c_dwt_ylen,
<a name="l00801"></a>00801                     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> luma_depth, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> chroma_depth);
<a name="l00802"></a>00802 
<a name="l00804"></a>00804 
<a name="l00807"></a>00807         <a class="code" href="a00078.html#bb22b766323777e7f6d8949796681f34" title="Default constructor.">FrameParams</a>(<span class="keyword">const</span> <a class="code" href="a00168.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a>&amp; cf, <span class="keyword">const</span> <a class="code" href="a00080.html" title="Frame type Class.">FrameSort</a>&amp; fs);
<a name="l00808"></a>00808 
<a name="l00810"></a>00810         <span class="comment">/*</span>
<a name="l00811"></a>00811 <span class="comment">            All data is derived from the sequence parameters</span>
<a name="l00812"></a>00812 <span class="comment">        */</span>
<a name="l00813"></a>00813         <a class="code" href="a00078.html#bb22b766323777e7f6d8949796681f34" title="Default constructor.">FrameParams</a>(<span class="keyword">const</span> <a class="code" href="a00125.html" title="Parameters relating to the source material being encoded/decoded.">SourceParams</a>&amp; sparams);
<a name="l00814"></a>00814 
<a name="l00816"></a>00816         <span class="comment">/*</span>
<a name="l00817"></a>00817 <span class="comment">           All data is derived from the sequence parameters</span>
<a name="l00818"></a>00818 <span class="comment">        */</span>
<a name="l00819"></a>00819         <a class="code" href="a00078.html#bb22b766323777e7f6d8949796681f34" title="Default constructor.">FrameParams</a>(<span class="keyword">const</span> <a class="code" href="a00125.html" title="Parameters relating to the source material being encoded/decoded.">SourceParams</a>&amp; sparams, <span class="keyword">const</span> <a class="code" href="a00080.html" title="Frame type Class.">FrameSort</a>&amp; fs);
<a name="l00820"></a>00820 
<a name="l00822"></a>00822         <span class="comment">//NB: Assume default copy constructor, assignment = and destructor//</span>
<a name="l00824"></a>00824 <span class="comment"></span>
<a name="l00825"></a>00825         <span class="comment">// Gets ...</span>
<a name="l00826"></a>00826 
<a name="l00828"></a>00828         <span class="keyword">const</span> <a class="code" href="a00168.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a>&amp; <a class="code" href="a00078.html#8bfb415ca14ea3062f8ff989325f063b" title="Returns the chroma format of the frame.">CFormat</a>()<span class="keyword"> const</span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#7dc5902fcb3275a46e7e0faedb4b6fdc" title="The chroma format.">m_cformat</a>;}
<a name="l00829"></a>00829 
<a name="l00831"></a>00831         <span class="keywordtype">int</span> <a class="code" href="a00078.html#6ffe9b08717d0b55a336f5d7c7b05dad" title="Returns the luma width of the padded frame.">DwtXl</a>()<span class="keyword"> const</span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#c5a67f8d83e1a0e83c4afe860fa14e86" title="Padded Frame luma width for Discrete Wavelet Transform.">m_dwt_xl</a>;}
<a name="l00832"></a>00832 
<a name="l00834"></a>00834         <span class="keywordtype">int</span> <a class="code" href="a00078.html#e2ffa2e94201153eea33f4c531e7e26e" title="Returns the luma height of the padded frame.">DwtYl</a>()<span class="keyword"> const</span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#46b12405c25d74775546c1c513a3a401" title="Padded Frame luma height for Discrete Wavelet Transform.">m_dwt_yl</a>;}
<a name="l00835"></a>00835 
<a name="l00837"></a>00837         <span class="keywordtype">int</span> <a class="code" href="a00078.html#f8d7dd574f8d3cdaf019bb7347530a45" title="Returns the chroma width of the padded frame.">DwtChromaXl</a>()<span class="keyword"> const</span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#dd0ce084b15d189f7c7ba705f9c8dfae" title="DWT Chroma length.">m_dwt_chroma_xl</a>;}
<a name="l00838"></a>00838 
<a name="l00840"></a>00840         <span class="keywordtype">int</span> <a class="code" href="a00078.html#7baa3f162bdfd77fd9c0bea3617a0350" title="Returns the chroma height of the padded frame.">DwtChromaYl</a>()<span class="keyword"> const</span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#a92084272b147196b56da656b56020c1" title="DWT Chroma height.">m_dwt_chroma_yl</a>;}
<a name="l00841"></a>00841 
<a name="l00843"></a>00843         <span class="keywordtype">int</span> <a class="code" href="a00078.html#4328df1ee676a17721b0db8f22ad6ef4" title="Returns the original picture width.">OrigXl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#4c45956420c0e9b995dedfaa20c31135" title="Orignal Frame luma width.">m_orig_xl</a>;}
<a name="l00844"></a>00844 
<a name="l00846"></a>00846         <span class="keywordtype">int</span> <a class="code" href="a00078.html#eb25192e912644cc2b051da6f0373a0c" title="Returns the original picture height.">OrigYl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#39af32e7b1ad6de489fa4415f4a6eb3e" title="Orignal Frame luma height.">m_orig_yl</a>;}
<a name="l00847"></a>00847 
<a name="l00849"></a>00849         <span class="keywordtype">int</span> <a class="code" href="a00078.html#934510f8e73b182a2b271c714b6bd2ad" title="Returns the original chroma width of the frame.">OrigChromaXl</a>()<span class="keyword"> const</span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#1fe4c2ddf3d5a0a9369961a969adb6d0" title="Orignal Frame chroma width.">m_orig_cxl</a>;}
<a name="l00850"></a>00850 
<a name="l00852"></a>00852         <span class="keywordtype">int</span> <a class="code" href="a00078.html#ff9eec6a014ae75ca131ebd2c0f32461" title="Returns the original chroma height of the frame.">OrigChromaYl</a>()<span class="keyword"> const</span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#206c372aca3c9617649f300c16c5a84c" title="Orignal Frame chroma height.">m_orig_cyl</a>;}
<a name="l00853"></a>00853 
<a name="l00855"></a>00855         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00078.html#87c1b8fab22bfb555303a5abc4e94346" title="Returns the luma depth.">LumaDepth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00078.html#27a7287cea5099ee04da029f1c98d45d" title="Luma depth - number of bits required for lumz.">m_luma_depth</a>; }
<a name="l00856"></a>00856 
<a name="l00858"></a>00858         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00078.html#3e79db896a1db42d1b26d8e1aa7b9210" title="Returns the chroma depth.">ChromaDepth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00078.html#3e9ab7559f3091e7751745ded6db8933" title="chroma depth - number of bits required for luma">m_chroma_depth</a>; }
<a name="l00859"></a>00859 
<a name="l00861"></a>00861         <span class="keyword">const</span> FrameSort&amp; <a class="code" href="a00078.html#d2982ff31f1ddbe9afcc4617f526349d" title="Returns the type of the frame.">FSort</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#c64470d428f9846f5115f023e993abe4" title="The frame sort.">m_fsort</a>;}
<a name="l00862"></a>00862 
<a name="l00864"></a>00864         <span class="keywordtype">int</span> <a class="code" href="a00078.html#912d3cb60ada4173a2eb120c32ee56e4" title="Returns the number of the frame (in time order).">FrameNum</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#c21c257d7aabe8b1f8fb6f7e4e848f07" title="The frame number, in temporal order.">m_fnum</a>;}
<a name="l00865"></a>00865 
<a name="l00867"></a>00867         <span class="keywordtype">int</span> <a class="code" href="a00078.html#286badeb4514a4316dd982057fa5c1b5" title="Returns the retired reference frame number.">RetiredFrameNum</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#5da56364cc54b014ca67c4a72d0efc28" title="The frame number of the retired frame.">m_retd_fnum</a>;}
<a name="l00868"></a>00868 
<a name="l00870"></a>00870         <span class="keywordtype">bool</span> <a class="code" href="a00078.html#c492c3769b4a5d222ed82f3329f7082c" title="Returns whether the frame is bi-directionally predicted by checking references.">IsBFrame</a>() <span class="keyword">const</span>;
<a name="l00871"></a>00871 
<a name="l00873"></a>00873         <span class="keywordtype">int</span> <a class="code" href="a00078.html#6d17271a456daf4363284af9c4ce299c" title="Returns the number of frames after the current frame number after which the frame...">ExpiryTime</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#2d5427fe83e0415a7646ae0e46e41abc" title="The number of frames, after the current frame number, after the (de)coding of which...">m_expiry_time</a>;}
<a name="l00874"></a>00874 
<a name="l00876"></a>00876         <span class="keywordtype">bool</span> <a class="code" href="a00078.html#f6909d0f3ebabad8bf6078ab97a99ac2" title="Returns an indication of whether the frame has been output yet.">Output</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#408a849234f2ccdbc275add5210ac5dd" title="True if the frame has been output, false if not.">m_output</a>;}
<a name="l00877"></a>00877 
<a name="l00879"></a>00879         <span class="keyword">const</span> std::vector&lt;int&gt;&amp; <a class="code" href="a00078.html#00f5019cd48659378986357954a9bdf9" title="Returns a const C++ reference to the set of reference frame numbers (will be empty...">Refs</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#bcc1a21df6935a1b97a627a8979f833e" title="The set of frame numbers of reference frames.">m_refs</a>;}
<a name="l00880"></a>00880 
<a name="l00882"></a>00882         std::vector&lt;int&gt;&amp; <a class="code" href="a00078.html#00f5019cd48659378986357954a9bdf9" title="Returns a const C++ reference to the set of reference frame numbers (will be empty...">Refs</a>(){<span class="keywordflow">return</span> <a class="code" href="a00078.html#bcc1a21df6935a1b97a627a8979f833e" title="The set of frame numbers of reference frames.">m_refs</a>;}
<a name="l00883"></a>00883 
<a name="l00885"></a>00885         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00078.html#f56c53b50d8a7412088eb6f91400b6a3" title="Return the number of reference frames.">NumRefs</a>()<span class="keyword">const </span>{<span class="keywordflow">return</span> <a class="code" href="a00078.html#bcc1a21df6935a1b97a627a8979f833e" title="The set of frame numbers of reference frames.">m_refs</a>.size();}
<a name="l00886"></a>00886 
<a name="l00888"></a>00888         <a class="code" href="a00168.html#d495a9f61af7fff07d7e97979d1ab854">FrameType</a> <a class="code" href="a00078.html#264108ac7d95db8904b1feffdca4d048" title="Returns type of frame (see enum).">GetFrameType</a> ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00078.html#5cf81b490c47f979f0bfc23da51e7dcb" title="Frame type.">m_frame_type</a>; }
<a name="l00889"></a>00889 
<a name="l00891"></a>00891         <a class="code" href="a00168.html#a298d9663bceef9c2ac2880c5bae3327">ReferenceType</a> <a class="code" href="a00078.html#42d7b788df32d0e14eddfe3f835f8e3b" title="Returns reference frame type (see enum).">GetReferenceType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00078.html#d371d5abb97a76eeeebcb30f0bfd1212" title="Reference type.">m_reference_type</a>;}
<a name="l00892"></a>00892 
<a name="l00894"></a>00894         <span class="keywordtype">bool</span> <a class="code" href="a00078.html#6e4fe816502724f8908578b6d93f2f9b" title="Returns true is entropy coding using Arithmetic coding.">UsingAC</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00078.html#5cbf6e84b143f89e6dc3963f6523f144" title="arithmetic coding flag">m_using_ac</a>; }
<a name="l00895"></a>00895 
<a name="l00896"></a>00896         <span class="comment">// ... Sets</span>
<a name="l00897"></a>00897 
<a name="l00899"></a>00899         <span class="keywordtype">void</span> <a class="code" href="a00078.html#3d37a2fb122e2aada0c53574f587ef8a" title="Sets the type of frame.">SetFSort</a>( <span class="keyword">const</span> FrameSort&amp; fs );
<a name="l00900"></a>00900 
<a name="l00902"></a>00902         <span class="keywordtype">void</span> <a class="code" href="a00078.html#bc28443657b7c87b83a09e7ae7fa9e90" title="Sets the frame to be Intra/Inter.">SetFrameType</a>(<span class="keyword">const</span> <a class="code" href="a00168.html#d495a9f61af7fff07d7e97979d1ab854">FrameType</a> ftype);
<a name="l00903"></a>00903 
<a name="l00905"></a>00905         <span class="keywordtype">void</span> <a class="code" href="a00078.html#beba2fa4698df2daad672d3ee6e9a804" title="Sets the frame to be a reference or not.">SetReferenceType</a>(<span class="keyword">const</span> <a class="code" href="a00168.html#a298d9663bceef9c2ac2880c5bae3327">ReferenceType</a> rtype);
<a name="l00906"></a>00906 
<a name="l00908"></a>00908         <span class="keywordtype">void</span> <a class="code" href="a00078.html#662288741fc6aef0463674a0d49a8412" title="Sets the frame number.">SetFrameNum</a>( <span class="keyword">const</span> <span class="keywordtype">int</span> fn ){ <a class="code" href="a00078.html#c21c257d7aabe8b1f8fb6f7e4e848f07" title="The frame number, in temporal order.">m_fnum</a>=fn; }
<a name="l00909"></a>00909 
<a name="l00911"></a>00911         <span class="keywordtype">void</span> <a class="code" href="a00078.html#21ce8353280273c124af66db57a92fa6" title="Sets how long the frame will stay in the buffer (encoder only).">SetExpiryTime</a>( <span class="keyword">const</span> <span class="keywordtype">int</span> expt ){ <a class="code" href="a00078.html#2d5427fe83e0415a7646ae0e46e41abc" title="The number of frames, after the current frame number, after the (de)coding of which...">m_expiry_time</a>=expt; }
<a name="l00912"></a>00912 
<a name="l00914"></a>00914         <span class="keywordtype">void</span> <a class="code" href="a00078.html#2b155332e07e6bcfe53e6bcbde8b5121" title="Sets a flag to indicate that the frame has been output.">SetAsOutput</a>(){<a class="code" href="a00078.html#408a849234f2ccdbc275add5210ac5dd" title="True if the frame has been output, false if not.">m_output</a>=<span class="keyword">true</span>;}
<a name="l00915"></a>00915 
<a name="l00917"></a>00917         <span class="keywordtype">void</span> <a class="code" href="a00078.html#f8ea5c31543d2fa688c2a2e79cd2e49a" title="Sets the chroma format.">SetCFormat</a>(<a class="code" href="a00168.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> cf){ <a class="code" href="a00078.html#7dc5902fcb3275a46e7e0faedb4b6fdc" title="The chroma format.">m_cformat</a> = cf; }
<a name="l00918"></a>00918 
<a name="l00920"></a>00920         <span class="keywordtype">void</span> <a class="code" href="a00078.html#a9c039a9c34baba0e965348dc02a3c17" title="Sets the padded frame luma length.">SetDwtXl</a>(<span class="keywordtype">int</span> xl){<a class="code" href="a00078.html#c5a67f8d83e1a0e83c4afe860fa14e86" title="Padded Frame luma width for Discrete Wavelet Transform.">m_dwt_xl</a> = xl; }
<a name="l00921"></a>00921 
<a name="l00923"></a>00923         <span class="keywordtype">void</span> <a class="code" href="a00078.html#f097dacdeb325b5aef8423ccb20da22c" title="Sets the padded frame luma height.">SetDwtYl</a>(<span class="keywordtype">int</span> yl){<a class="code" href="a00078.html#46b12405c25d74775546c1c513a3a401" title="Padded Frame luma height for Discrete Wavelet Transform.">m_dwt_yl</a> = yl; }
<a name="l00924"></a>00924 
<a name="l00926"></a>00926         <span class="keywordtype">void</span> <a class="code" href="a00078.html#d281b7739061fc2ce0916591ef0f1a15" title="Sets the original picture width.">SetOrigXl</a>(<span class="keywordtype">int</span> orig_xlen);
<a name="l00927"></a>00927 
<a name="l00929"></a>00929         <span class="keywordtype">void</span> <a class="code" href="a00078.html#795f7948d20744bad32811f174dd0fbe" title="Sets the original picture height.">SetOrigYl</a>(<span class="keywordtype">int</span> orig_ylen);
<a name="l00930"></a>00930 
<a name="l00932"></a>00932         <span class="keywordtype">void</span> <a class="code" href="a00078.html#f9065818424734025aaa59dfc7ec6ed2" title="Sets the chroma length.">SetDwtChromaXl</a>(<span class="keywordtype">int</span> xl){<a class="code" href="a00078.html#dd0ce084b15d189f7c7ba705f9c8dfae" title="DWT Chroma length.">m_dwt_chroma_xl</a> = xl; }
<a name="l00933"></a>00933 
<a name="l00935"></a>00935         <span class="keywordtype">void</span> <a class="code" href="a00078.html#365401f76fa81899288cf4d898c23141" title="Sets the chroma height.">SetDwtChromaYl</a>(<span class="keywordtype">int</span> yl){<a class="code" href="a00078.html#a92084272b147196b56da656b56020c1" title="DWT Chroma height.">m_dwt_chroma_yl</a> = yl; }
<a name="l00936"></a>00936 
<a name="l00938"></a>00938         <span class="keywordtype">void</span> <a class="code" href="a00078.html#d91dd515b756e0833d486e304fd9cf24" title="Set Luma Depth.">SetLumaDepth</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> luma_depth) { <a class="code" href="a00078.html#27a7287cea5099ee04da029f1c98d45d" title="Luma depth - number of bits required for lumz.">m_luma_depth</a> = luma_depth; }
<a name="l00939"></a>00939 
<a name="l00941"></a>00941         <span class="keywordtype">void</span> <a class="code" href="a00078.html#f773733ad2ec73368e0ee9d273703268" title="Set Chroma Depth.">SetChromaDepth</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> chroma_depth) { <a class="code" href="a00078.html#3e9ab7559f3091e7751745ded6db8933" title="chroma depth - number of bits required for luma">m_chroma_depth</a> = chroma_depth; }
<a name="l00942"></a>00942 
<a name="l00944"></a>00944         <span class="keywordtype">void</span> <a class="code" href="a00078.html#cc27b2c139c9e6a85f5b2711d0518731" title="Sets the retired reference frame number.">SetRetiredFrameNum</a>(<span class="keywordtype">int</span> retd_fnum) {<a class="code" href="a00078.html#5da56364cc54b014ca67c4a72d0efc28" title="The frame number of the retired frame.">m_retd_fnum</a> = retd_fnum;}
<a name="l00945"></a>00945 
<a name="l00947"></a>00947         <span class="keywordtype">void</span> <a class="code" href="a00078.html#5c1e9cad69162337a11835dc3ffbb493" title="Sets the arithmetic coding flag.">SetUsingAC</a>(<span class="keywordtype">bool</span> using_ac) { <a class="code" href="a00078.html#5cbf6e84b143f89e6dc3963f6523f144" title="arithmetic coding flag">m_using_ac</a> = using_ac; }
<a name="l00948"></a>00948 
<a name="l00949"></a>00949     <span class="keyword">private</span>:
<a name="l00950"></a>00950 
<a name="l00952"></a>00952         <a class="code" href="a00168.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> <a class="code" href="a00078.html#7dc5902fcb3275a46e7e0faedb4b6fdc" title="The chroma format.">m_cformat</a>;
<a name="l00953"></a>00953 
<a name="l00955"></a>00955         <span class="keywordtype">int</span> <a class="code" href="a00078.html#c5a67f8d83e1a0e83c4afe860fa14e86" title="Padded Frame luma width for Discrete Wavelet Transform.">m_dwt_xl</a>;
<a name="l00956"></a>00956 
<a name="l00958"></a>00958         <span class="keywordtype">int</span> <a class="code" href="a00078.html#46b12405c25d74775546c1c513a3a401" title="Padded Frame luma height for Discrete Wavelet Transform.">m_dwt_yl</a>;
<a name="l00959"></a>00959 
<a name="l00961"></a>00961         FrameSort <a class="code" href="a00078.html#c64470d428f9846f5115f023e993abe4" title="The frame sort.">m_fsort</a>;
<a name="l00962"></a>00962 
<a name="l00964"></a>00964         std::vector&lt;int&gt; <a class="code" href="a00078.html#bcc1a21df6935a1b97a627a8979f833e" title="The set of frame numbers of reference frames.">m_refs</a>;
<a name="l00965"></a>00965 
<a name="l00967"></a>00967         <span class="keywordtype">int</span> <a class="code" href="a00078.html#2d5427fe83e0415a7646ae0e46e41abc" title="The number of frames, after the current frame number, after the (de)coding of which...">m_expiry_time</a>;
<a name="l00968"></a>00968 
<a name="l00970"></a>00970         <span class="keywordtype">int</span> <a class="code" href="a00078.html#c21c257d7aabe8b1f8fb6f7e4e848f07" title="The frame number, in temporal order.">m_fnum</a>;
<a name="l00971"></a>00971 
<a name="l00973"></a>00973         <a class="code" href="a00168.html#d495a9f61af7fff07d7e97979d1ab854">FrameType</a> <a class="code" href="a00078.html#5cf81b490c47f979f0bfc23da51e7dcb" title="Frame type.">m_frame_type</a>;
<a name="l00974"></a>00974 
<a name="l00976"></a>00976         <a class="code" href="a00168.html#a298d9663bceef9c2ac2880c5bae3327">ReferenceType</a> <a class="code" href="a00078.html#d371d5abb97a76eeeebcb30f0bfd1212" title="Reference type.">m_reference_type</a>;
<a name="l00977"></a>00977 
<a name="l00979"></a>00979         <span class="keywordtype">bool</span> <a class="code" href="a00078.html#408a849234f2ccdbc275add5210ac5dd" title="True if the frame has been output, false if not.">m_output</a>;
<a name="l00980"></a>00980 
<a name="l00982"></a>00982         <span class="keywordtype">int</span> <a class="code" href="a00078.html#dd0ce084b15d189f7c7ba705f9c8dfae" title="DWT Chroma length.">m_dwt_chroma_xl</a>;
<a name="l00983"></a>00983 
<a name="l00985"></a>00985         <span class="keywordtype">int</span> <a class="code" href="a00078.html#a92084272b147196b56da656b56020c1" title="DWT Chroma height.">m_dwt_chroma_yl</a>;
<a name="l00986"></a>00986 
<a name="l00988"></a>00988         <span class="keyword">mutable</span>  <span class="keywordtype">int</span> <a class="code" href="a00078.html#5da56364cc54b014ca67c4a72d0efc28" title="The frame number of the retired frame.">m_retd_fnum</a>;
<a name="l00989"></a>00989 
<a name="l00991"></a>00991         <span class="keywordtype">int</span> <a class="code" href="a00078.html#4c45956420c0e9b995dedfaa20c31135" title="Orignal Frame luma width.">m_orig_xl</a>;
<a name="l00992"></a>00992 
<a name="l00994"></a>00994         <span class="keywordtype">int</span> <a class="code" href="a00078.html#39af32e7b1ad6de489fa4415f4a6eb3e" title="Orignal Frame luma height.">m_orig_yl</a>;
<a name="l00995"></a>00995 
<a name="l00997"></a>00997         <span class="keywordtype">int</span> <a class="code" href="a00078.html#1fe4c2ddf3d5a0a9369961a969adb6d0" title="Orignal Frame chroma width.">m_orig_cxl</a>;
<a name="l00998"></a>00998 
<a name="l01000"></a>01000         <span class="keywordtype">int</span> <a class="code" href="a00078.html#206c372aca3c9617649f300c16c5a84c" title="Orignal Frame chroma height.">m_orig_cyl</a>;
<a name="l01001"></a>01001 
<a name="l01003"></a>01003         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00078.html#27a7287cea5099ee04da029f1c98d45d" title="Luma depth - number of bits required for lumz.">m_luma_depth</a>;
<a name="l01004"></a>01004 
<a name="l01006"></a>01006         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00078.html#3e9ab7559f3091e7751745ded6db8933" title="chroma depth - number of bits required for luma">m_chroma_depth</a>;
<a name="l01007"></a>01007 
<a name="l01009"></a>01009         <span class="keywordtype">bool</span> <a class="code" href="a00078.html#5cbf6e84b143f89e6dc3963f6523f144" title="arithmetic coding flag">m_using_ac</a>;
<a name="l01010"></a>01010     };
<a name="l01011"></a>01011 
<a name="l01013"></a>01013     <span class="keyword">class </span>CodeBlocks
<a name="l01014"></a>01014     {
<a name="l01015"></a>01015     <span class="keyword">public</span>:
<a name="l01017"></a>01017         <a class="code" href="a00020.html#ad65159cfe3deeb3e31e84f5cf8d9e5f" title="Default Constructor.">CodeBlocks</a> () : <a class="code" href="a00020.html#984c6c7086df0e7e2627f0aee95fed2e" title="Number of Horizontal code blocks.">m_hblocks</a>(1), <a class="code" href="a00020.html#988369ff234454838f0a1c8d3be87742" title="Number of Vertical code blocks.">m_vblocks</a>(1)
<a name="l01018"></a>01018         {}
<a name="l01019"></a>01019 
<a name="l01021"></a>01021         <a class="code" href="a00020.html#ad65159cfe3deeb3e31e84f5cf8d9e5f" title="Default Constructor.">CodeBlocks</a> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>  hblocks, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vblocks) :
<a name="l01022"></a>01022             <a class="code" href="a00020.html#984c6c7086df0e7e2627f0aee95fed2e" title="Number of Horizontal code blocks.">m_hblocks</a>(hblocks),
<a name="l01023"></a>01023             <a class="code" href="a00020.html#988369ff234454838f0a1c8d3be87742" title="Number of Vertical code blocks.">m_vblocks</a>(vblocks)
<a name="l01024"></a>01024             {}
<a name="l01025"></a>01025 
<a name="l01026"></a>01026         <span class="comment">// Gets</span>
<a name="l01028"></a>01028 <span class="comment"></span>        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00020.html#39a962b40d22788f35a8c12c93c03d21" title="Return the number of horizontal code blocks.">HorizontalCodeBlocks</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00020.html#984c6c7086df0e7e2627f0aee95fed2e" title="Number of Horizontal code blocks.">m_hblocks</a>; }
<a name="l01030"></a>01030         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00020.html#d49dea723932fff96a70af12e3c6a613" title="Return the number of vertical code blocks.">VerticalCodeBlocks</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00020.html#988369ff234454838f0a1c8d3be87742" title="Number of Vertical code blocks.">m_vblocks</a>; }
<a name="l01031"></a>01031         <span class="comment">// Sets</span>
<a name="l01033"></a>01033 <span class="comment"></span>        <span class="keywordtype">void</span> <a class="code" href="a00020.html#5b89c956c9d6d80401ec920e0d5364d0" title="Set the number of horizontal code blocks.">SetHorizontalCodeBlocks</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> hblocks) { <a class="code" href="a00020.html#984c6c7086df0e7e2627f0aee95fed2e" title="Number of Horizontal code blocks.">m_hblocks</a> = hblocks; }
<a name="l01035"></a>01035         <span class="keywordtype">void</span> <a class="code" href="a00020.html#10fa8c05e4497c41f5d7f3f1dcd605a1" title="Set the number of vertical code blocks.">SetVerticalCodeBlocks</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vblocks) { <a class="code" href="a00020.html#988369ff234454838f0a1c8d3be87742" title="Number of Vertical code blocks.">m_vblocks</a> = vblocks; }
<a name="l01036"></a>01036     <span class="keyword">private</span>:
<a name="l01038"></a>01038         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00020.html#984c6c7086df0e7e2627f0aee95fed2e" title="Number of Horizontal code blocks.">m_hblocks</a>;
<a name="l01040"></a>01040         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00020.html#988369ff234454838f0a1c8d3be87742" title="Number of Vertical code blocks.">m_vblocks</a>;
<a name="l01041"></a>01041     };
<a name="l01043"></a>01043 
<a name="l01046"></a>01046     <span class="keyword">class </span>CodecParams
<a name="l01047"></a>01047     {
<a name="l01048"></a>01048     <span class="keyword">public</span>:
<a name="l01049"></a>01049 
<a name="l01051"></a>01051         <a class="code" href="a00021.html#a3174a7b3868dde65578c34721ed6d73" title="Default constructor.">CodecParams</a> (<span class="keyword">const</span> <a class="code" href="a00168.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a>&amp; video_format = <a class="code" href="a00168.html#216a5d43d2a518325c84f100ed7735a55a3ea902cd1b9de9f720f66bba453c65">VIDEO_FORMAT_CUSTOM</a>,
<a name="l01052"></a>01052                       <a class="code" href="a00168.html#d495a9f61af7fff07d7e97979d1ab854">FrameType</a> ftype = <a class="code" href="a00168.html#d495a9f61af7fff07d7e97979d1ab854a2bd963050a9c16edd65af4a71489fae">INTRA_FRAME</a>,
<a name="l01053"></a>01053                       <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> num_refs = 0,
<a name="l01054"></a>01054                       <span class="keywordtype">bool</span> set_defaults=<span class="keyword">true</span>);
<a name="l01055"></a>01055 
<a name="l01057"></a>01057         <span class="comment">//NB: Assume default copy constructor, assignment = and destructor//</span>
<a name="l01059"></a>01059 <span class="comment"></span>
<a name="l01060"></a>01060         <span class="comment">// Gets ...</span>
<a name="l01061"></a>01061 
<a name="l01063"></a>01063         <span class="keywordtype">int</span> <a class="code" href="a00021.html#db57706811ca795086c960d0ad0a7fb3" title="Return the number of macroblocks horizontally.">XNumMB</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00021.html#4863d01ad3673def86ea3b59fc6fc0eb" title="The number of macroblocks horizontally.">m_x_num_mb</a>;}
<a name="l01064"></a>01064 
<a name="l01066"></a>01066         <span class="keywordtype">int</span> <a class="code" href="a00021.html#86d6b2b24ee1fa31f29f90bf4e242f82" title="Return the number of macroblocks vertically.">YNumMB</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00021.html#090a43ec6b5e267461ebe835995d5ad8" title="The number of macroblocks verticaly.">m_y_num_mb</a>;}
<a name="l01067"></a>01067 
<a name="l01069"></a>01069         <span class="keywordtype">int</span> <a class="code" href="a00021.html#12defd087d1d6439e29dee87d834cf76" title="Return the number of blocks horizontally.">XNumBlocks</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00021.html#559a0a9c0e3aaf9bd0bde781f8a6b785" title="The number of blocks horizontally.">m_x_num_blocks</a>;}
<a name="l01070"></a>01070 
<a name="l01072"></a>01072         <span class="keywordtype">int</span> <a class="code" href="a00021.html#26aaf9c5df32e761388e3832d5222918" title="Returns the number of blocks vertically.">YNumBlocks</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00021.html#8ecc4191f08c27c3e265f293968708d7" title="The number of blocks vertically.">m_y_num_blocks</a>;}
<a name="l01073"></a>01073 
<a name="l01075"></a>01075         <span class="keywordtype">bool</span> <a class="code" href="a00021.html#6548ebdf3a462f2dbf611b815b1d9295" title="Returns true if we&amp;#39;re coding input as fields (independent of source format!)...">FieldCoding</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00021.html#a85a5122ce73cf1f17ac31508e20ab15" title="True if input is coded as fields, false if coded as frames.">m_field_coding</a>;}
<a name="l01076"></a>01076 
<a name="l01078"></a>01078         <span class="keywordtype">bool</span> <a class="code" href="a00021.html#7cd55eec72a67e5938c1eadca457fd28" title="Returns true if the topmost field comes first in time when coding.">TopFieldFirst</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00021.html#b364b1393e5f22ecea4256dc9e1c1d8b" title="True if interlaced and top field is first in temporal order.">m_topfieldfirst</a>;}
<a name="l01079"></a>01079 
<a name="l01081"></a>01081         <span class="keywordtype">int</span> <a class="code" href="a00021.html#43e7c69a0f2e0f7efffb03fa17dfa1cb" title="Return the original frame/field luma width.">OrigXl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00021.html#31649d232c5cd65b3c3737d6e0cf86c2" title="The original frame/field luma width.">m_orig_xl</a>;}
<a name="l01082"></a>01082 
<a name="l01084"></a>01084         <span class="keywordtype">int</span> <a class="code" href="a00021.html#8a6ad204836c85ec6c9b6722d7513385" title="Return the original frame/field luma height.">OrigYl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00021.html#13fd0549c2dc0fce51c9625d2683c41c" title="The original frame/field luma height.">m_orig_yl</a>;}
<a name="l01085"></a>01085 
<a name="l01087"></a>01087         <span class="keywordtype">int</span> <a class="code" href="a00021.html#d957791820ed4d5224a8a3752fb0d722" title="Return the original frame/field chroma width.">OrigChromaXl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00021.html#69299ca5c8646fa19c6fe8bafdd5b91d" title="The original frame/field chroma width.">m_orig_cxl</a>;}
<a name="l01088"></a>01088 
<a name="l01090"></a>01090         <span class="keywordtype">int</span> <a class="code" href="a00021.html#0a829a12e3a24fc2aa40d4067d028e37" title="Return the original frame/field chroma height.">OrigChromaYl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00021.html#23d6641e970ee5a354ccbec236324eea" title="The original frame/field chroma height.">m_orig_cyl</a>;}
<a name="l01091"></a>01091 
<a name="l01093"></a>01093         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00021.html#01efbdecdb976846286936b61ad6c5fa" title="Returns the luma depth.">LumaDepth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00021.html#1b8c4b68d83736273d344abf2f158d24" title="Luma depth - number of bits required for lumz.">m_luma_depth</a>; }
<a name="l01094"></a>01094 
<a name="l01096"></a>01096         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00021.html#d8f3a77272c71970840b3efe401c47de" title="Returns the chroma depth.">ChromaDepth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00021.html#e4c3224a827680b77c897cabeefe64a1" title="chroma depth - number of bits required for luma">m_chroma_depth</a>; }
<a name="l01097"></a>01097 
<a name="l01098"></a>01098 
<a name="l01100"></a>01100         <span class="keyword">const</span> OLBParams&amp; <a class="code" href="a00021.html#be8456bdf9323b41b99ac2c055a32872" title="Return the Luma block parameters for each macroblock splitting level.">LumaBParams</a>(<span class="keywordtype">int</span> n)<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00021.html#b9af3dc1470e04155347ceaaf82b5735">m_lbparams</a>[n];}
<a name="l01101"></a>01101 
<a name="l01103"></a>01103         <span class="keyword">const</span> OLBParams&amp; <a class="code" href="a00021.html#e3f0da8fc57fb24e29652becff829b8a" title="Return the Chroma block parameters for each macroblock splitting level.">ChromaBParams</a>(<span class="keywordtype">int</span> n)<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00021.html#a0a78cfb4472225689697f0fda37bce9">m_cbparams</a>[n];}
<a name="l01104"></a>01104 
<a name="l01106"></a>01106         <a class="code" href="a00168.html#73c509e14745c98e30772b6c4f8b6e1e">MVPrecisionType</a> <a class="code" href="a00021.html#a855393b1fd5f169eb66b6799556325e" title="Return the number of accuracy bits used for motion vectors.">MVPrecision</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00021.html#cd92fcb9c87096a1e6a97d2886f6abfa" title="The precision of motion vectors (number of accuracy bits eg 1=half-pel accuracy)...">m_mv_precision</a>; }
<a name="l01107"></a>01107 
<a name="l01109"></a>01109         <span class="keywordtype">bool</span> <a class="code" href="a00021.html#169f013531aafcdad328ccdfd786bc0f" title="Return zero transform flag being used for frame (de)coding.">ZeroTransform</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00021.html#5925bc780d52cefa6327f5cc36a8353c" title="Zero transform flag.">m_zero_transform</a>; }
<a name="l01110"></a>01110 
<a name="l01112"></a>01112         <a class="code" href="a00168.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="code" href="a00021.html#60f2e5f682f06bde617066206c488036" title="Return the wavelet filter currently being used for frame (de)coding.">TransformFilter</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00021.html#13baf206bfae22c3f3ac40af7e37e62a" title="The wavelet filter being used.">m_wlt_filter</a>; }
<a name="l01113"></a>01113 
<a name="l01115"></a>01115         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00021.html#418406afc22c0ab2d5f55a3e13811d9c" title="Return the transform depth being used for frame (de)coding.">TransformDepth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00021.html#cd11e456494fab1addda7aef4a748007" title="Wavelet depth.">m_wlt_depth</a>; }
<a name="l01116"></a>01116 
<a name="l01118"></a>01118         <a class="code" href="a00168.html#c01e150ebe1e8dee39d5431ab23e8ec5">CodeBlockMode</a> <a class="code" href="a00021.html#144a8855ef615f9e7eaa03b6b9cae8af" title="Return multiple quantisers flag being used for frame (de)coding.">GetCodeBlockMode</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00021.html#523f45512277eb98eda9f50a57249583" title="Code block mode.">m_cb_mode</a>; }
<a name="l01119"></a>01119 
<a name="l01121"></a>01121         <span class="keywordtype">bool</span> <a class="code" href="a00021.html#55e162b15813f8b84ba083a10e541b84" title="Return the spatial partitioning flag being used for frame (de)coding.">SpatialPartition</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00021.html#a38cb06cbf6da70b8dd6a6cce1b91d0c" title="Spatial partitioning flag.">m_spatial_partition</a>; }
<a name="l01122"></a>01122 
<a name="l01124"></a>01124         <span class="keyword">const</span> CodeBlocks &amp;<a class="code" href="a00021.html#84502187a6c79eda3e95e7b65fb20c45" title="Return the code blocks for a particular level.">GetCodeBlocks</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> level) <span class="keyword">const</span>;
<a name="l01125"></a>01125 
<a name="l01127"></a>01127         <a class="code" href="a00168.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> <a class="code" href="a00021.html#5d73684addd447b10fff2dcee0832531" title="Return the video format currently being used for frame (de)coding.">GetVideoFormat</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00021.html#b797cf86636a379fe3cf335e07025b7c" title="The video format being used.">m_video_format</a>; }
<a name="l01128"></a>01128 
<a name="l01130"></a>01130         <span class="keywordtype">bool</span> <a class="code" href="a00021.html#5b9480a5a462d228e0923a363287e789" title="Return the global motion flag used for encoding/decoding.">UsingGlobalMotion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00021.html#efcab09a6068e39aaa24fa11918198f3" title="Global motion fields.">m_use_global_motion</a>; }
<a name="l01131"></a>01131 
<a name="l01133"></a>01133         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00021.html#c329223ddd6d76d83711862228af790c" title="Return the number of frame weight precision bits.">FrameWeightsBits</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00021.html#8dc4c194ec49c3929f58cb3e128f4443" title="frame predicion parameters - precision">m_frame_weights_bits</a>; }
<a name="l01134"></a>01134 
<a name="l01136"></a>01136         <span class="keywordtype">int</span> <a class="code" href="a00021.html#2304ec1e05be97a93814f90d89c0b7fd" title="Return the Ref1 weight.">Ref1Weight</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00021.html#cfde1005872fa18f4f04b5c35a45b253" title="frame predicion parameters - reference frame 1 weight">m_ref1_weight</a>; }
<a name="l01137"></a>01137 
<a name="l01139"></a>01139         <span class="keywordtype">int</span> <a class="code" href="a00021.html#d43c73aa585f4571087723ff515e416e" title="Return the Ref2 weight.">Ref2Weight</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00021.html#9c0c80fe86c9f9f74d5e236722fa0289" title="frame predicion parameters - reference frame 1 weight">m_ref2_weight</a>; }
<a name="l01140"></a><a class="code" href="a00021.html#af3a64a98295a26652749e96fefa47e8">01140</a> 
<a name="l01141"></a>01141         <span class="keywordtype">bool</span> <a class="code" href="a00021.html#af3a64a98295a26652749e96fefa47e8">CustomRefWeights</a>()
<a name="l01142"></a>01142         {
<a name="l01143"></a>01143             <span class="keywordflow">return</span> (<a class="code" href="a00021.html#8dc4c194ec49c3929f58cb3e128f4443" title="frame predicion parameters - precision">m_frame_weights_bits</a> != 1 ||
<a name="l01144"></a>01144                     <a class="code" href="a00021.html#cfde1005872fa18f4f04b5c35a45b253" title="frame predicion parameters - reference frame 1 weight">m_ref1_weight</a> != 1 ||
<a name="l01145"></a>01145                     <a class="code" href="a00021.html#9c0c80fe86c9f9f74d5e236722fa0289" title="frame predicion parameters - reference frame 1 weight">m_ref2_weight</a> != 1);
<a name="l01146"></a>01146         }
<a name="l01147"></a>01147         <span class="comment">// ... and Sets</span>
<a name="l01149"></a>01149 <span class="comment"></span>        <span class="keywordtype">void</span> <a class="code" href="a00021.html#36e9e2b0651d943f511684c78d000cb2" title="Set how many MBs there are horizontally.">SetXNumMB</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> xn){<a class="code" href="a00021.html#4863d01ad3673def86ea3b59fc6fc0eb" title="The number of macroblocks horizontally.">m_x_num_mb</a>=xn;}
<a name="l01150"></a>01150 
<a name="l01152"></a>01152         <span class="keywordtype">void</span> <a class="code" href="a00021.html#306b0db81300d72935b09e968f4ca674" title="Set how many MBs there are vertically.">SetYNumMB</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> yn){<a class="code" href="a00021.html#090a43ec6b5e267461ebe835995d5ad8" title="The number of macroblocks verticaly.">m_y_num_mb</a>=yn;}
<a name="l01153"></a>01153 
<a name="l01155"></a>01155         <span class="keywordtype">void</span> <a class="code" href="a00021.html#a70a49c00973fd7967712801f1daf1bc" title="Set how many blocks there are horizontally.">SetXNumBlocks</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> xn){<a class="code" href="a00021.html#559a0a9c0e3aaf9bd0bde781f8a6b785" title="The number of blocks horizontally.">m_x_num_blocks</a>=xn;}
<a name="l01156"></a>01156 
<a name="l01158"></a>01158         <span class="keywordtype">void</span> <a class="code" href="a00021.html#d325aae7d59e5e68ba6118519b265bbb" title="Set how many blocks there are vertically.">SetYNumBlocks</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> yn){<a class="code" href="a00021.html#8ecc4191f08c27c3e265f293968708d7" title="The number of blocks vertically.">m_y_num_blocks</a>=yn;}
<a name="l01159"></a>01159 
<a name="l01161"></a>01161         <span class="keywordtype">void</span> <a class="code" href="a00021.html#07b84b2ff7c28faf2b86ab6317075e76" title="Sets whether input is coded as fields.">SetFieldCoding</a>(<span class="keywordtype">bool</span> field_coding){<a class="code" href="a00021.html#a85a5122ce73cf1f17ac31508e20ab15" title="True if input is coded as fields, false if coded as frames.">m_field_coding</a>=field_coding;}
<a name="l01162"></a>01162 
<a name="l01164"></a>01164         <span class="keywordtype">void</span> <a class="code" href="a00021.html#215666680ce387cfc5236bad0072b721" title="Sets whether the topmost field comes first in time [NB: TBD since this duplicates...">SetTopFieldFirst</a>(<span class="keywordtype">bool</span> topf){<a class="code" href="a00021.html#b364b1393e5f22ecea4256dc9e1c1d8b" title="True if interlaced and top field is first in temporal order.">m_topfieldfirst</a>=topf;}
<a name="l01165"></a>01165 
<a name="l01167"></a>01167         <span class="keywordtype">void</span> <a class="code" href="a00021.html#6856179bf31987a5fa87861f68a5fb7d" title="Set the original frame/field luma width.">SetOrigXl</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> x){<a class="code" href="a00021.html#31649d232c5cd65b3c3737d6e0cf86c2" title="The original frame/field luma width.">m_orig_xl</a>=x;}
<a name="l01168"></a>01168 
<a name="l01170"></a>01170         <span class="keywordtype">void</span> <a class="code" href="a00021.html#292ea8692f36bf54dce06e4d13ef9228" title="Set the original frame/field luma height.">SetOrigYl</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> y){<a class="code" href="a00021.html#13fd0549c2dc0fce51c9625d2683c41c" title="The original frame/field luma height.">m_orig_yl</a>=y;}
<a name="l01171"></a>01171 
<a name="l01172"></a>01172 
<a name="l01174"></a>01174         <span class="keywordtype">void</span> <a class="code" href="a00021.html#579cf58903c71cdb60047c5874c59010" title="Set the original frame/field chroma width.">SetOrigChromaXl</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> x){<a class="code" href="a00021.html#69299ca5c8646fa19c6fe8bafdd5b91d" title="The original frame/field chroma width.">m_orig_cxl</a>=x;}
<a name="l01175"></a>01175 
<a name="l01177"></a>01177         <span class="keywordtype">void</span> <a class="code" href="a00021.html#ce656e69af68b336d81d201692d4df6c" title="Set the original frame/field chroma height.">SetOrigChromaYl</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> y){<a class="code" href="a00021.html#23d6641e970ee5a354ccbec236324eea" title="The original frame/field chroma height.">m_orig_cyl</a>=y;}
<a name="l01178"></a>01178 
<a name="l01180"></a>01180         <span class="keywordtype">void</span> <a class="code" href="a00021.html#a536d6853b212d5a0465176e9d3495d1" title="Set Luma Depth.">SetLumaDepth</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> luma_depth) { <a class="code" href="a00021.html#1b8c4b68d83736273d344abf2f158d24" title="Luma depth - number of bits required for lumz.">m_luma_depth</a> = luma_depth; }
<a name="l01181"></a>01181 
<a name="l01183"></a>01183         <span class="keywordtype">void</span> <a class="code" href="a00021.html#5361228a4952e2d800ea52b821abecf2" title="Set Chroma Depth.">SetChromaDepth</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> chroma_depth) { <a class="code" href="a00021.html#e4c3224a827680b77c897cabeefe64a1" title="chroma depth - number of bits required for luma">m_chroma_depth</a> = chroma_depth; }
<a name="l01184"></a>01184 
<a name="l01186"></a>01186         <span class="keywordtype">void</span> <a class="code" href="a00021.html#2ef6bd98ec92eef8fe2651e31a75e47f" title="Set the block sizes for all MB splitting levels given these prototype block sizes...">SetBlockSizes</a>(<span class="keyword">const</span> OLBParams&amp; olbparams , <span class="keyword">const</span> <a class="code" href="a00168.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> cformat);
<a name="l01188"></a>01188         <span class="keywordtype">void</span> <a class="code" href="a00021.html#4d8200a3cb31d6905eed879c9a807685" title="Set block level luma params.">SetLumaBlockParams</a>(<span class="keyword">const</span> OLBParams&amp; olbparams) {<a class="code" href="a00021.html#b9af3dc1470e04155347ceaaf82b5735">m_lbparams</a>[2] = olbparams;}
<a name="l01189"></a>01189 
<a name="l01191"></a>01191         <span class="keywordtype">void</span> <a class="code" href="a00021.html#60b97c1792266dc7cb0f7f53e1e9c520" title="Set the number of accuracy bits for motion vectors.">SetMVPrecision</a>(<span class="keyword">const</span> <a class="code" href="a00168.html#73c509e14745c98e30772b6c4f8b6e1e">MVPrecisionType</a> p)
<a name="l01192"></a>01192         {
<a name="l01193"></a>01193             <span class="comment">// Assert in debug mode. Maybe we should throw an exception???</span>
<a name="l01194"></a>01194             <a class="code" href="a00173.html#bafd0501037cf667db22293d34125217">TESTM</a>((p &gt;=0 &amp;&amp; p &lt;=3), <span class="stringliteral">"Motion precision value in range 0..3"</span>);
<a name="l01195"></a>01195             <a class="code" href="a00021.html#cd92fcb9c87096a1e6a97d2886f6abfa" title="The precision of motion vectors (number of accuracy bits eg 1=half-pel accuracy)...">m_mv_precision</a> = p;
<a name="l01196"></a>01196         }
<a name="l01197"></a><a class="code" href="a00021.html#72519967ece5a05f46cb934fe69da2d1">01197</a> 
<a name="l01198"></a>01198         <span class="keywordtype">void</span> <a class="code" href="a00021.html#60b97c1792266dc7cb0f7f53e1e9c520" title="Set the number of accuracy bits for motion vectors.">SetMVPrecision</a>(<span class="keyword">const</span> <a class="code" href="a00168.html#73c509e14745c98e30772b6c4f8b6e1e">MVPrecisionType</a> p)<span class="keyword"> const</span>
<a name="l01199"></a>01199 <span class="keyword">        </span>{
<a name="l01200"></a>01200             <span class="comment">// Assert in debug mode. Maybe we should throw an exception???</span>
<a name="l01201"></a>01201             <a class="code" href="a00173.html#bafd0501037cf667db22293d34125217">TESTM</a>((p &gt;=0 &amp;&amp; p &lt;=3), <span class="stringliteral">"Motion precision value in range 0..3"</span>);
<a name="l01202"></a>01202             <a class="code" href="a00021.html#cd92fcb9c87096a1e6a97d2886f6abfa" title="The precision of motion vectors (number of accuracy bits eg 1=half-pel accuracy)...">m_mv_precision</a> = p;
<a name="l01203"></a>01203         }
<a name="l01204"></a>01204 
<a name="l01206"></a>01206         <span class="keywordtype">void</span> <a class="code" href="a00021.html#a05f5bd27efebebbb0e45f829d2f9eda" title="Set the zero transform flag being used for frame (de)coding.">SetZeroTransform</a>(<span class="keywordtype">bool</span> zero_transform)  { <a class="code" href="a00021.html#5925bc780d52cefa6327f5cc36a8353c" title="Zero transform flag.">m_zero_transform</a> = zero_transform; }
<a name="l01207"></a>01207 
<a name="l01209"></a>01209         <span class="keywordtype">void</span> <a class="code" href="a00021.html#5f311ed8615c426f492b96b32702e250" title="Set the wavelet filter used for frame (de)coding.">SetTransformFilter</a>(<span class="keyword">const</span> <a class="code" href="a00168.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> wf) { <a class="code" href="a00021.html#13baf206bfae22c3f3ac40af7e37e62a" title="The wavelet filter being used.">m_wlt_filter</a>=wf; }
<a name="l01210"></a>01210 
<a name="l01212"></a>01212         <span class="keywordtype">void</span> <a class="code" href="a00021.html#5f311ed8615c426f492b96b32702e250" title="Set the wavelet filter used for frame (de)coding.">SetTransformFilter</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> wf_idx);
<a name="l01213"></a>01213 
<a name="l01215"></a>01215         <span class="keywordtype">void</span> <a class="code" href="a00021.html#c0685bfbd7d15976b5efcbaf4e02d071" title="Set the transform depth used for frame (de)coding and allocate for the code blocks...">SetTransformDepth</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> wd);
<a name="l01216"></a>01216 
<a name="l01218"></a>01218         <span class="keywordtype">void</span> <a class="code" href="a00021.html#71eb9f2d3a5e3ec45c3e8cbd9b7214e5" title="Set the multiple quantisers flag usedto frame (de)coding.">SetCodeBlockMode</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cb_mode);
<a name="l01219"></a>01219 
<a name="l01221"></a>01221         <span class="keywordtype">void</span> <a class="code" href="a00021.html#a27f86a19529c367206707cb6c3ebaf4" title="Set the spatial partition flag usedto frame (de)coding.">SetSpatialPartition</a>(<span class="keywordtype">bool</span> spatial_partition) { <a class="code" href="a00021.html#a38cb06cbf6da70b8dd6a6cce1b91d0c" title="Spatial partitioning flag.">m_spatial_partition</a>=spatial_partition; }
<a name="l01222"></a>01222 
<a name="l01224"></a>01224         <span class="keywordtype">void</span>  <a class="code" href="a00021.html#6f4414fb532bb92ca3a189f1b7412837" title="Set the number of code blocks for a particular level.">SetCodeBlocks</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> level, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> hblocks, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vblocks);
<a name="l01225"></a>01225 
<a name="l01227"></a>01227         <span class="keywordtype">void</span> <a class="code" href="a00021.html#58ca365f4740bcb7d37f50ccf454079d" title="Set the video format used for frame (de)coding.">SetVideoFormat</a>(<span class="keyword">const</span> <a class="code" href="a00168.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> vd) { <a class="code" href="a00021.html#b797cf86636a379fe3cf335e07025b7c" title="The video format being used.">m_video_format</a>=vd; }
<a name="l01228"></a>01228 
<a name="l01230"></a>01230         <span class="keywordtype">void</span> <a class="code" href="a00021.html#507222587fcd8aff7527757634fcdef9" title="Set the wavelet filter used for frame (de)coding.">SetUsingGlobalMotion</a>(<span class="keywordtype">bool</span> gm) { <a class="code" href="a00021.html#efcab09a6068e39aaa24fa11918198f3" title="Global motion fields.">m_use_global_motion</a>=gm; }
<a name="l01231"></a>01231 
<a name="l01233"></a>01233         <span class="keywordtype">void</span> <a class="code" href="a00021.html#61b549be3ede97b7723077a2f7ee1001" title="Set the frame weight precision bits used for (de)coding.">SetFrameWeightsPrecision</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> wt_prec) { <a class="code" href="a00021.html#8dc4c194ec49c3929f58cb3e128f4443" title="frame predicion parameters - precision">m_frame_weights_bits</a>=wt_prec; }
<a name="l01234"></a>01234 
<a name="l01236"></a>01236         <span class="keywordtype">void</span> <a class="code" href="a00021.html#af5214d40241df76d935aafe04b437ac" title="Set the ref 1 frame weight.">SetRef1Weight</a>(<span class="keywordtype">int</span> wt) { <a class="code" href="a00021.html#cfde1005872fa18f4f04b5c35a45b253" title="frame predicion parameters - reference frame 1 weight">m_ref1_weight</a>=wt; }
<a name="l01237"></a>01237 
<a name="l01239"></a>01239         <span class="keywordtype">void</span> <a class="code" href="a00021.html#0790882a4ac1440a5b59bfd39ab8a794" title="Set the ref 2 frame weight.">SetRef2Weight</a>(<span class="keywordtype">int</span> wt) { <a class="code" href="a00021.html#9c0c80fe86c9f9f74d5e236722fa0289" title="frame predicion parameters - reference frame 1 weight">m_ref2_weight</a>=wt; }
<a name="l01240"></a>01240 
<a name="l01241"></a>01241     <span class="keyword">protected</span>:
<a name="l01243"></a>01243         <a class="code" href="a00168.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="code" href="a00021.html#60f2e5f682f06bde617066206c488036" title="Return the wavelet filter currently being used for frame (de)coding.">TransformFilter</a> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> wf_idx);
<a name="l01244"></a>01244     <span class="keyword">private</span>:
<a name="l01245"></a>01245 
<a name="l01247"></a>01247         <span class="keywordtype">bool</span> <a class="code" href="a00021.html#a85a5122ce73cf1f17ac31508e20ab15" title="True if input is coded as fields, false if coded as frames.">m_field_coding</a>;
<a name="l01248"></a>01248 
<a name="l01250"></a>01250         <span class="keywordtype">bool</span> <a class="code" href="a00021.html#b364b1393e5f22ecea4256dc9e1c1d8b" title="True if interlaced and top field is first in temporal order.">m_topfieldfirst</a>;
<a name="l01251"></a>01251 
<a name="l01253"></a>01253         <span class="keywordtype">int</span> <a class="code" href="a00021.html#31649d232c5cd65b3c3737d6e0cf86c2" title="The original frame/field luma width.">m_orig_xl</a>;
<a name="l01254"></a>01254 
<a name="l01256"></a>01256         <span class="keywordtype">int</span> <a class="code" href="a00021.html#13fd0549c2dc0fce51c9625d2683c41c" title="The original frame/field luma height.">m_orig_yl</a>;
<a name="l01257"></a>01257 
<a name="l01259"></a>01259         <span class="keywordtype">int</span> <a class="code" href="a00021.html#69299ca5c8646fa19c6fe8bafdd5b91d" title="The original frame/field chroma width.">m_orig_cxl</a>;
<a name="l01260"></a>01260 
<a name="l01262"></a>01262         <span class="keywordtype">int</span> <a class="code" href="a00021.html#23d6641e970ee5a354ccbec236324eea" title="The original frame/field chroma height.">m_orig_cyl</a>;
<a name="l01263"></a>01263 
<a name="l01265"></a>01265         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00021.html#1b8c4b68d83736273d344abf2f158d24" title="Luma depth - number of bits required for lumz.">m_luma_depth</a>;
<a name="l01266"></a>01266 
<a name="l01268"></a>01268         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00021.html#e4c3224a827680b77c897cabeefe64a1" title="chroma depth - number of bits required for luma">m_chroma_depth</a>;
<a name="l01269"></a>01269 
<a name="l01271"></a>01271         <span class="keywordtype">int</span> <a class="code" href="a00021.html#4863d01ad3673def86ea3b59fc6fc0eb" title="The number of macroblocks horizontally.">m_x_num_mb</a>;
<a name="l01272"></a>01272 
<a name="l01274"></a>01274         <span class="keywordtype">int</span> <a class="code" href="a00021.html#090a43ec6b5e267461ebe835995d5ad8" title="The number of macroblocks verticaly.">m_y_num_mb</a>;
<a name="l01275"></a>01275 
<a name="l01277"></a>01277         <span class="keywordtype">int</span> <a class="code" href="a00021.html#559a0a9c0e3aaf9bd0bde781f8a6b785" title="The number of blocks horizontally.">m_x_num_blocks</a>;
<a name="l01278"></a>01278 
<a name="l01280"></a>01280         <span class="keywordtype">int</span> <a class="code" href="a00021.html#8ecc4191f08c27c3e265f293968708d7" title="The number of blocks vertically.">m_y_num_blocks</a>;
<a name="l01281"></a><a class="code" href="a00021.html#b9af3dc1470e04155347ceaaf82b5735">01281</a> 
<a name="l01282"></a>01282         <a class="code" href="a00105.html" title="A template class for one-dimensional arrays.">OneDArray&lt;OLBParams&gt;</a> <a class="code" href="a00021.html#b9af3dc1470e04155347ceaaf82b5735">m_lbparams</a>;
<a name="l01283"></a><a class="code" href="a00021.html#a0a78cfb4472225689697f0fda37bce9">01283</a> 
<a name="l01284"></a>01284         <a class="code" href="a00105.html" title="A template class for one-dimensional arrays.">OneDArray&lt;OLBParams&gt;</a> <a class="code" href="a00021.html#a0a78cfb4472225689697f0fda37bce9">m_cbparams</a>;
<a name="l01285"></a>01285 
<a name="l01287"></a>01287         <span class="keyword">mutable</span> <a class="code" href="a00168.html#73c509e14745c98e30772b6c4f8b6e1e">MVPrecisionType</a> <a class="code" href="a00021.html#cd92fcb9c87096a1e6a97d2886f6abfa" title="The precision of motion vectors (number of accuracy bits eg 1=half-pel accuracy)...">m_mv_precision</a>;
<a name="l01288"></a>01288 
<a name="l01290"></a>01290         <a class="code" href="a00168.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> <a class="code" href="a00021.html#b797cf86636a379fe3cf335e07025b7c" title="The video format being used.">m_video_format</a>;
<a name="l01291"></a>01291 
<a name="l01293"></a>01293         <span class="keywordtype">bool</span> <a class="code" href="a00021.html#efcab09a6068e39aaa24fa11918198f3" title="Global motion fields.">m_use_global_motion</a>;
<a name="l01294"></a>01294 
<a name="l01296"></a>01296         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00021.html#8dc4c194ec49c3929f58cb3e128f4443" title="frame predicion parameters - precision">m_frame_weights_bits</a>;
<a name="l01297"></a>01297 
<a name="l01299"></a>01299         <span class="keywordtype">int</span> <a class="code" href="a00021.html#cfde1005872fa18f4f04b5c35a45b253" title="frame predicion parameters - reference frame 1 weight">m_ref1_weight</a>;
<a name="l01300"></a>01300 
<a name="l01302"></a>01302         <span class="keywordtype">int</span> <a class="code" href="a00021.html#9c0c80fe86c9f9f74d5e236722fa0289" title="frame predicion parameters - reference frame 1 weight">m_ref2_weight</a>;
<a name="l01303"></a>01303 
<a name="l01305"></a>01305         <span class="keywordtype">bool</span> <a class="code" href="a00021.html#5925bc780d52cefa6327f5cc36a8353c" title="Zero transform flag.">m_zero_transform</a>;
<a name="l01306"></a>01306 
<a name="l01308"></a>01308         <a class="code" href="a00168.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="code" href="a00021.html#13baf206bfae22c3f3ac40af7e37e62a" title="The wavelet filter being used.">m_wlt_filter</a>;
<a name="l01309"></a>01309 
<a name="l01311"></a>01311         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00021.html#cd11e456494fab1addda7aef4a748007" title="Wavelet depth.">m_wlt_depth</a>;
<a name="l01312"></a>01312 
<a name="l01314"></a>01314         <a class="code" href="a00168.html#c01e150ebe1e8dee39d5431ab23e8ec5">CodeBlockMode</a> <a class="code" href="a00021.html#523f45512277eb98eda9f50a57249583" title="Code block mode.">m_cb_mode</a>;
<a name="l01315"></a>01315 
<a name="l01317"></a>01317         <span class="keywordtype">bool</span> <a class="code" href="a00021.html#a38cb06cbf6da70b8dd6a6cce1b91d0c" title="Spatial partitioning flag.">m_spatial_partition</a>;
<a name="l01318"></a>01318 
<a name="l01320"></a>01320         <a class="code" href="a00105.html" title="A template class for one-dimensional arrays.">OneDArray&lt;CodeBlocks&gt;</a> <a class="code" href="a00021.html#3b2e6bfe80ff844eb1341a08b8e0de86" title="Code block array. Number of entries is m_wlt_depth+1.">m_cb</a>;
<a name="l01321"></a>01321     };
<a name="l01322"></a>01322 
<a name="l01324"></a>01324 
<a name="l01327"></a>01327     <span class="keyword">class </span><a class="code" href="a00066.html" title="Parameters for the encoding process.">EncoderParams</a>: <span class="keyword">public</span> <a class="code" href="a00021.html" title="Parameters common to coder and decoder operation.">CodecParams</a>
<a name="l01328"></a>01328     {
<a name="l01329"></a>01329         <span class="comment">//codec params plus parameters relating solely to the operation of the encoder</span>
<a name="l01330"></a>01330 
<a name="l01331"></a>01331     <span class="keyword">public</span>:
<a name="l01333"></a>01333         <a class="code" href="a00066.html#0cf3bf79fb7d3c1540a5269a715bbf65" title="Default constructor.">EncoderParams</a>(<span class="keyword">const</span> <a class="code" href="a00168.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a>&amp; video_format,
<a name="l01334"></a>01334                       <a class="code" href="a00168.html#d495a9f61af7fff07d7e97979d1ab854">FrameType</a> ftype = <a class="code" href="a00168.html#d495a9f61af7fff07d7e97979d1ab854570a3b00df1556952c916d921ebd5d7c">INTER_FRAME</a>,
<a name="l01335"></a>01335                       <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> num_refs = 2,
<a name="l01336"></a>01336                       <span class="keywordtype">bool</span> set_defaults=<span class="keyword">true</span>);
<a name="l01337"></a>01337 
<a name="l01339"></a>01339             <span class="comment">//NB: Assume default copy constructor, assignment = and destructor//</span>
<a name="l01340"></a>01340             <span class="comment">//This means pointers are copied, not the objects they point to.////</span>
<a name="l01342"></a>01342 <span class="comment"></span>
<a name="l01343"></a>01343          <span class="comment">// Gets ...</span>
<a name="l01344"></a>01344 
<a name="l01345"></a>01345 
<a name="l01347"></a>01347         <span class="keywordtype">bool</span> <a class="code" href="a00066.html#f05aaf221137601466030058bc46d341" title="Returns true if we&amp;#39;re operating verbosely, false otherwise.">Verbose</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#f816f8f808978947246da6c527b5b786" title="Code/decode with commentary if true.">m_verbose</a>;}
<a name="l01348"></a>01348 
<a name="l01350"></a>01350         <span class="keywordtype">bool</span> <a class="code" href="a00066.html#ed45cc9ce861a762e5a1510d18b81d1c" title="Returns a flag indicating that we&amp;#39;re doing local decoding.">LocalDecode</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#f5a68db5bdc43b968b72b0b3ff062564" title="Flag indicating we&amp;#39;re doing local decoding.">m_loc_decode</a>;}
<a name="l01351"></a>01351 
<a name="l01353"></a>01353         <span class="keywordtype">bool</span> <a class="code" href="a00066.html#122a0b100d62957694410295c7aa6fae" title="Get whether we&amp;#39;re doing lossless coding.">Lossless</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#837aadea4b7c11c424febb2c30a13b5c" title="A flag indicating we&amp;#39;re doing lossless coding.">m_lossless</a>;}
<a name="l01354"></a>01354 
<a name="l01356"></a>01356         <span class="keywordtype">bool</span> <a class="code" href="a00066.html#12630ebd66238f4fb477af94b03a2236" title="Get whether we&amp;#39;re doing full-search motion estimation.">FullSearch</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#580fed8a15aaf7d308645f1cf7829ea9" title="A flag indicating whether we&amp;#39;re doing full-search block matching.">m_full_search</a>; }
<a name="l01357"></a>01357 
<a name="l01359"></a>01359         <span class="keywordtype">int</span> <a class="code" href="a00066.html#96af28ab894b2c231d04b113d693eb68" title="Get the horizontal search range for full-search motion estimation.">XRangeME</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#a867ff187fdac0e567c6929a79bf3cf3" title="The horizontal range for full-search block matching.">m_x_range_me</a>;}
<a name="l01360"></a>01360 
<a name="l01362"></a>01362         <span class="keywordtype">int</span> <a class="code" href="a00066.html#00c31958567ca92f724441060f5fb5be" title="Get the vertical search range for full-search motion estimation.">YRangeME</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#b6a2877aff7d91ce828c67af3f7cc7d5" title="The vertical range for full-search block matching.">m_y_range_me</a>;}
<a name="l01363"></a>01363 
<a name="l01365"></a>01365         <span class="keywordtype">float</span> <a class="code" href="a00066.html#071957f329c44c4309f3ac049eb1fe9d" title="Get the quality factor.">Qf</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#d9f2137abb239359849390e8ab271590" title="Quality factor.">m_qf</a>;}
<a name="l01366"></a>01366 
<a name="l01368"></a>01368 
<a name="l01373"></a>01373         <span class="keywordtype">int</span> <a class="code" href="a00066.html#a547a1f2caa8e27fa1b2d6fb5389313c" title="Return the nominal number of L1 frames before the next I frame.">NumL1</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#3fa8fc7ea413fac9657058292ab6efe2" title="Number of L1 frames before next I frame.">m_num_L1</a>;}
<a name="l01374"></a>01374 
<a name="l01376"></a>01376         <span class="keywordtype">int</span> <a class="code" href="a00066.html#a064d835d76a9ee2bba493df91955742" title="Return the separation between L1 frames (and between L1 and I frames).">L1Sep</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#b7aa4848a21640e4ab592e75690cc4d4" title="Separation between L1 frames.">m_L1_sep</a>;}
<a name="l01377"></a>01377 
<a name="l01379"></a>01379         <span class="keywordtype">float</span> <a class="code" href="a00066.html#97e7e72588060114d98f0f837694241e" title="Return the amount we&amp;#39;re weighting noise in the U component.">UFactor</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#f8c511ead922e1fd7bd477164d0813a2" title="factor for weighting U component quantisation errors">m_ufactor</a>;}
<a name="l01380"></a>01380 
<a name="l01382"></a>01382         <span class="keywordtype">float</span> <a class="code" href="a00066.html#5eca76b871908ec8cce60f55b01643fd" title="Return the amount we&amp;#39;re weighting noise in the V component.">VFactor</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#a673881347efd1d5780f7dd1b2e87250" title="factor for weighting V component quantisation errors">m_vfactor</a>;}
<a name="l01383"></a>01383 
<a name="l01385"></a>01385         <span class="keywordtype">float</span> <a class="code" href="a00066.html#545a73d467e9c6679cf470a825653b6a" title="Return the number of cycles per degree at the nominal viewing distance for the raster...">CPD</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#e40736003477dbd235f2d51a32d4de8e" title="Cycles per degree assumed for viewing the video.">m_cpd</a>;}
<a name="l01386"></a>01386 
<a name="l01388"></a>01388         <span class="keywordtype">bool</span> <a class="code" href="a00066.html#9455e75c3262b87a53c274c75b385532" title="Return whether input denoising is on or off.">Denoise</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#d749af600cbcd8acb53bae04dcc5e0a4" title="Flag indicating input denoising.">m_denoise</a>;}
<a name="l01389"></a>01389 
<a name="l01391"></a>01391         <span class="keywordtype">float</span> <a class="code" href="a00066.html#df6479dcd94ddeecc8994b0bff9c2f99" title="Return the Lagrangian parameter to be used for I frames.">ILambda</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#7b57e767faa0a4be785d85689f5d8cfe" title="Lagrangian parameter for Intra frame coding.">m_I_lambda</a>;}
<a name="l01392"></a>01392 
<a name="l01394"></a>01394         <span class="keywordtype">float</span> <a class="code" href="a00066.html#7d72ddd5270b55927c32cf8ef8739ec3" title="Return the Lagrangian parameter to be used for L1 frames.">L1Lambda</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#57214e4f5257248e82b5600578afe51c" title="Lagrangian parameter for L1 frame coding.">m_L1_lambda</a>;}
<a name="l01395"></a>01395 
<a name="l01397"></a>01397         <span class="keywordtype">float</span> <a class="code" href="a00066.html#8069d1f372a3509246c1c9789fd4f1c9" title="Return the Lagrangian parameter to be used for L2 frames.">L2Lambda</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#730ccecd6484362247fe2c9474c179c0" title="Lagrangian parameter for L2 frame coding.">m_L2_lambda</a>;}
<a name="l01398"></a>01398 
<a name="l01400"></a>01400         <span class="keywordtype">float</span> <a class="code" href="a00066.html#6c4d0037fdca9e61169a10b10c3c913d" title="Return the Lagrangian ME parameter to be used for L1 frames.">L1MELambda</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#d6cf2f25be1d143690816640965d4546" title="Lagrangian param for L1 motion estimation.">m_L1_me_lambda</a>;}
<a name="l01401"></a>01401 
<a name="l01403"></a>01403         <span class="keywordtype">float</span> <a class="code" href="a00066.html#3d603b8e803c018236b87df6ccba0706" title="Return the Lagrangian ME parameter to be used for L2 frames.">L2MELambda</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#458f5e347c3f37e2b54df45836d0c9ed" title="Lagrangian param for L2 motion estimation.">m_L2_me_lambda</a>;}
<a name="l01404"></a>01404 
<a name="l01406"></a>01406         <span class="keywordtype">int</span> <a class="code" href="a00066.html#6041bfe0d74158eb52d9bb368a1de268" title="Return the size of the GOP.">GOPLength</a>() <span class="keyword">const</span>;
<a name="l01407"></a>01407 
<a name="l01409"></a>01409         <span class="keywordtype">char</span> * <a class="code" href="a00066.html#7e2f0be95312fcac3fbd744fe5ac9111" title="Return the output path to be used for storing diagnositic data.">OutputPath</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> ( <span class="keywordtype">char</span>* ) <a class="code" href="a00066.html#6dae6ce23a776dc54437e4748282ad72" title="Output file path.">m_output_path</a>.c_str();}
<a name="l01410"></a>01410 
<a name="l01412"></a>01412         <span class="keyword">const</span> EntropyCorrector&amp; <a class="code" href="a00066.html#41655056b5a4f60d3b422632617a9578" title="Return a reference to the entropy factors.">EntropyFactors</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> *<a class="code" href="a00066.html#40d302f4d2ac0b78fdbada4e09b7432e" title="Correction factors for quantiser selection.">m_ent_correct</a>;}
<a name="l01413"></a>01413 
<a name="l01415"></a>01415         EntropyCorrector&amp; <a class="code" href="a00066.html#41655056b5a4f60d3b422632617a9578" title="Return a reference to the entropy factors.">EntropyFactors</a>() {<span class="keywordflow">return</span> *<a class="code" href="a00066.html#40d302f4d2ac0b78fdbada4e09b7432e" title="Correction factors for quantiser selection.">m_ent_correct</a>;}
<a name="l01416"></a>01416 
<a name="l01418"></a>01418         <a class="code" href="a00168.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="code" href="a00066.html#c06efc9733de8a4b32e56b6fa759e05a" title="Return the Wavelet filter to be used for intra frames.">IntraTransformFilter</a>() { <span class="keywordflow">return</span> <a class="code" href="a00066.html#e9af357dc58148a0ad980610b2be139f" title="Wavelet filter for Intra frames.">m_intra_wltfilter</a>; }
<a name="l01419"></a>01419 
<a name="l01421"></a>01421         <a class="code" href="a00168.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="code" href="a00066.html#e9790025a93c3e0ac8f52181bca77862" title="Return the Wavelet filter to be used for Inter frames.">InterTransformFilter</a>() { <span class="keywordflow">return</span> <a class="code" href="a00066.html#512f21be5b9043db03e0e302993b4083" title="Wavelet filter for Inter frames.">m_inter_wltfilter</a>; }
<a name="l01422"></a>01422 
<a name="l01424"></a>01424         <span class="keywordtype">int</span> <a class="code" href="a00066.html#6f889061cb794c7a535ca67c8f873ac9" title="Return the Target Bit Rate in kbps.">TargetRate</a>() {<span class="keywordflow">return</span> <a class="code" href="a00066.html#dfc3b69d1d60d20680a8918f9ce0ea68" title="Target bit rate.">m_target_rate</a>;}
<a name="l01425"></a>01425 
<a name="l01427"></a>01427         <span class="keywordtype">bool</span> <a class="code" href="a00066.html#9c9f86d9a9023317e5318ec16e51101f" title="Return true if using Arithmetic coding.">UsingAC</a>()<span class="keyword">  const </span>{<span class="keywordflow">return</span> <a class="code" href="a00066.html#1086f35a3984eec9b394fb0a75464b30" title="Arithmetic coding flag.">m_using_ac</a>;}
<a name="l01428"></a>01428 
<a name="l01429"></a>01429         <span class="comment">// ... and Sets</span>
<a name="l01430"></a>01430 
<a name="l01432"></a>01432         <span class="keywordtype">void</span> <a class="code" href="a00066.html#002033a82b0960f8ba7fb931cd8902e0" title="Sets verbosity on or off.">SetVerbose</a>(<span class="keywordtype">bool</span> v){<a class="code" href="a00066.html#f816f8f808978947246da6c527b5b786" title="Code/decode with commentary if true.">m_verbose</a>=v;}
<a name="l01433"></a>01433 
<a name="l01435"></a>01435         <span class="keywordtype">void</span> <a class="code" href="a00066.html#b02c6bcbacaf67419d2e4c134e04a09b" title="Sets a flag indicating that we&amp;#39;re producing a locally decoded o/p.">SetLocalDecode</a>( <span class="keyword">const</span> <span class="keywordtype">bool</span> decode ){<a class="code" href="a00066.html#f5a68db5bdc43b968b72b0b3ff062564" title="Flag indicating we&amp;#39;re doing local decoding.">m_loc_decode</a>=decode;}
<a name="l01436"></a>01436 
<a name="l01438"></a>01438         <span class="keywordtype">void</span> <a class="code" href="a00066.html#16d8b48462edbccd46350c200fbc8ffd" title="Set whether we&amp;#39;re doing lossless coding.">SetLossless</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> l){<a class="code" href="a00066.html#837aadea4b7c11c424febb2c30a13b5c" title="A flag indicating we&amp;#39;re doing lossless coding.">m_lossless</a> = l;}
<a name="l01439"></a>01439 
<a name="l01441"></a>01441         <span class="keywordtype">void</span> <a class="code" href="a00066.html#d6b94c8adac00eac9ef98cb8d6cdfbd1" title="Set whether we&amp;#39;re doing full-search motion estimation.">SetFullSearch</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> fs){<a class="code" href="a00066.html#580fed8a15aaf7d308645f1cf7829ea9" title="A flag indicating whether we&amp;#39;re doing full-search block matching.">m_full_search</a> = fs;}
<a name="l01442"></a>01442 
<a name="l01444"></a>01444         <span class="keywordtype">void</span> <a class="code" href="a00066.html#4fe43f39177b1d7f532a227b59028989" title="Set the horizontal search range for full-search motion estimation.">SetXRangeME</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> xr){<a class="code" href="a00066.html#a867ff187fdac0e567c6929a79bf3cf3" title="The horizontal range for full-search block matching.">m_x_range_me</a> = xr;}
<a name="l01445"></a>01445 
<a name="l01447"></a>01447         <span class="keywordtype">void</span> <a class="code" href="a00066.html#021e715dbe513c1d3165122d1ee2081c" title="Set the vertical search range for full-search motion estimation.">SetYRangeME</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> yr){<a class="code" href="a00066.html#b6a2877aff7d91ce828c67af3f7cc7d5" title="The vertical range for full-search block matching.">m_y_range_me</a> = yr;}
<a name="l01448"></a>01448 
<a name="l01450"></a>01450         <span class="keywordtype">void</span> <a class="code" href="a00066.html#2a51b2804fd4b85a63fdec51b74968d8" title="Set the quality factor.">SetQf</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> qfac){ <a class="code" href="a00066.html#d9f2137abb239359849390e8ab271590" title="Quality factor.">m_qf</a>=qfac; <a class="code" href="a00066.html#d9d8f214430384e0c8de53010decd1ff" title="Calculate the Lagrangian parameters from the quality factor.">CalcLambdas</a>(<a class="code" href="a00066.html#d9f2137abb239359849390e8ab271590" title="Quality factor.">m_qf</a>); }
<a name="l01451"></a>01451 
<a name="l01453"></a>01453         <span class="keywordtype">void</span> <a class="code" href="a00066.html#7c243043fcfb96040fef60146ad8558b" title="Set the nominal number of L1 frames between I frames.">SetNumL1</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> nl){<a class="code" href="a00066.html#3fa8fc7ea413fac9657058292ab6efe2" title="Number of L1 frames before next I frame.">m_num_L1</a>=nl;}
<a name="l01454"></a>01454 
<a name="l01456"></a>01456         <span class="keywordtype">void</span> <a class="code" href="a00066.html#d66beeade69b3a9cbd70afc2fdb0a960" title="Set the separation between L1 frames.">SetL1Sep</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> lsep){<a class="code" href="a00066.html#b7aa4848a21640e4ab592e75690cc4d4" title="Separation between L1 frames.">m_L1_sep</a>=lsep;}
<a name="l01457"></a>01457 
<a name="l01459"></a>01459         <span class="keywordtype">void</span> <a class="code" href="a00066.html#2aeaebe1dd14022e6d388cee681ce40d" title="Set the amount to weight noise in the U component.">SetUFactor</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> uf){<a class="code" href="a00066.html#f8c511ead922e1fd7bd477164d0813a2" title="factor for weighting U component quantisation errors">m_ufactor</a>=uf;}
<a name="l01460"></a>01460 
<a name="l01462"></a>01462         <span class="keywordtype">void</span> <a class="code" href="a00066.html#7d727a0cb6f046bfef68b8ef2c8fcba4" title="Set the amount to weight noise in the V component.">SetVFactor</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> vf){<a class="code" href="a00066.html#a673881347efd1d5780f7dd1b2e87250" title="factor for weighting V component quantisation errors">m_vfactor</a>=vf;}
<a name="l01463"></a>01463 
<a name="l01465"></a>01465         <span class="keywordtype">void</span> <a class="code" href="a00066.html#4bfbfb144d06acfb94b038d3c7b4adf7" title="Set the number of cycles per degree at the nominal viewing distance.">SetCPD</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> cpd){<a class="code" href="a00066.html#e40736003477dbd235f2d51a32d4de8e" title="Cycles per degree assumed for viewing the video.">m_cpd</a>=cpd;}
<a name="l01466"></a>01466 
<a name="l01467"></a>01467 
<a name="l01469"></a>01469         <span class="keywordtype">void</span> <a class="code" href="a00066.html#0fb4447cc6fd56a77118844ce8860a89" title="Set denoising value - true or false.">SetDenoise</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> denoise){<a class="code" href="a00066.html#d749af600cbcd8acb53bae04dcc5e0a4" title="Flag indicating input denoising.">m_denoise</a>=denoise;}
<a name="l01470"></a>01470 
<a name="l01472"></a>01472         <span class="keywordtype">void</span> <a class="code" href="a00066.html#5d4c05f96ede057505d181a8e0e17f04" title="Set the output path to be used for diagnostic data.">SetOutputPath</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * op){ <a class="code" href="a00066.html#6dae6ce23a776dc54437e4748282ad72" title="Output file path.">m_output_path</a> = op; }
<a name="l01473"></a>01473 
<a name="l01475"></a>01475         <span class="keywordtype">void</span> <a class="code" href="a00066.html#eef2c5afb874818be15c34544416f65c" title="Sets the entropy factors - TBD: set this up in a constructor and pass encoder params...">SetEntropyFactors</a>(EntropyCorrector* entcorrect){<a class="code" href="a00066.html#40d302f4d2ac0b78fdbada4e09b7432e" title="Correction factors for quantiser selection.">m_ent_correct</a>=entcorrect;}
<a name="l01477"></a>01477         <span class="keywordtype">void</span> <a class="code" href="a00066.html#39bd62b18402bad71c6f3bd500eda580" title="Set the Wavelet filter to be used for intra frames.">SetIntraTransformFilter</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> wf_idx);
<a name="l01478"></a>01478 
<a name="l01480"></a>01480         <span class="keywordtype">void</span> <a class="code" href="a00066.html#ede674e9da97a8131abb9a6fa4e87e38" title="Set the Wavelet filter to be used for inter frames.">SetInterTransformFilter</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> wf_idx);
<a name="l01481"></a>01481 
<a name="l01483"></a>01483         <span class="keywordtype">void</span> <a class="code" href="a00066.html#39bd62b18402bad71c6f3bd500eda580" title="Set the Wavelet filter to be used for intra frames.">SetIntraTransformFilter</a>(<a class="code" href="a00168.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> wf) { <a class="code" href="a00066.html#e9af357dc58148a0ad980610b2be139f" title="Wavelet filter for Intra frames.">m_intra_wltfilter</a> = wf; }
<a name="l01484"></a>01484         
<a name="l01486"></a>01486         <span class="keywordtype">void</span>  <a class="code" href="a00066.html#c13979dc7f1c9ba600ae3021ac6bdbaa" title="Set the number of code blocks for all levels.">SetUsualCodeBlocks</a>(<span class="keyword">const</span> <a class="code" href="a00168.html#d495a9f61af7fff07d7e97979d1ab854">FrameType</a>&amp; ftype);
<a name="l01487"></a>01487 
<a name="l01489"></a>01489         <span class="keywordtype">void</span> <a class="code" href="a00066.html#ede674e9da97a8131abb9a6fa4e87e38" title="Set the Wavelet filter to be used for inter frames.">SetInterTransformFilter</a>(<a class="code" href="a00168.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> wf) { <a class="code" href="a00066.html#512f21be5b9043db03e0e302993b4083" title="Wavelet filter for Inter frames.">m_inter_wltfilter</a> = wf; }
<a name="l01490"></a>01490 
<a name="l01492"></a>01492         <span class="keywordtype">void</span> <a class="code" href="a00066.html#ffc877983104edd226c5cfdc5d975db5" title="Set the target bit rate.">SetTargetRate</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> rate){<a class="code" href="a00066.html#dfc3b69d1d60d20680a8918f9ce0ea68" title="Target bit rate.">m_target_rate</a> = rate;}
<a name="l01493"></a>01493 
<a name="l01495"></a>01495         <span class="keywordtype">void</span> <a class="code" href="a00066.html#bbec44a87ff261d3a8345fdde3dda0e5" title="Set the arithmetic coding flag.">SetUsingAC</a>(<span class="keywordtype">bool</span> using_ac) {<a class="code" href="a00066.html#1086f35a3984eec9b394fb0a75464b30" title="Arithmetic coding flag.">m_using_ac</a> = using_ac;}
<a name="l01496"></a>01496     <span class="keyword">private</span>:
<a name="l01497"></a>01497 
<a name="l01499"></a>01499         <span class="keywordtype">void</span> <a class="code" href="a00066.html#d9d8f214430384e0c8de53010decd1ff" title="Calculate the Lagrangian parameters from the quality factor.">CalcLambdas</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> qf);
<a name="l01500"></a>01500 
<a name="l01501"></a>01501     <span class="keyword">private</span>:
<a name="l01502"></a>01502 
<a name="l01504"></a>01504         <span class="keywordtype">bool</span> <a class="code" href="a00066.html#f816f8f808978947246da6c527b5b786" title="Code/decode with commentary if true.">m_verbose</a>;
<a name="l01505"></a>01505 
<a name="l01507"></a>01507         <span class="keywordtype">bool</span> <a class="code" href="a00066.html#f5a68db5bdc43b968b72b0b3ff062564" title="Flag indicating we&amp;#39;re doing local decoding.">m_loc_decode</a>;
<a name="l01508"></a>01508 
<a name="l01510"></a>01510         <span class="keywordtype">bool</span> <a class="code" href="a00066.html#837aadea4b7c11c424febb2c30a13b5c" title="A flag indicating we&amp;#39;re doing lossless coding.">m_lossless</a>;
<a name="l01511"></a>01511 
<a name="l01513"></a>01513         <span class="keywordtype">bool</span> <a class="code" href="a00066.html#580fed8a15aaf7d308645f1cf7829ea9" title="A flag indicating whether we&amp;#39;re doing full-search block matching.">m_full_search</a>;
<a name="l01514"></a>01514 
<a name="l01516"></a>01516         <span class="keywordtype">int</span> <a class="code" href="a00066.html#a867ff187fdac0e567c6929a79bf3cf3" title="The horizontal range for full-search block matching.">m_x_range_me</a>;
<a name="l01517"></a>01517 
<a name="l01519"></a>01519         <span class="keywordtype">int</span> <a class="code" href="a00066.html#b6a2877aff7d91ce828c67af3f7cc7d5" title="The vertical range for full-search block matching.">m_y_range_me</a>;
<a name="l01520"></a>01520 
<a name="l01522"></a>01522         <span class="keywordtype">float</span> <a class="code" href="a00066.html#d9f2137abb239359849390e8ab271590" title="Quality factor.">m_qf</a>;
<a name="l01523"></a>01523 
<a name="l01525"></a>01525         <span class="keywordtype">int</span> <a class="code" href="a00066.html#3fa8fc7ea413fac9657058292ab6efe2" title="Number of L1 frames before next I frame.">m_num_L1</a>;
<a name="l01526"></a>01526 
<a name="l01528"></a>01528         <span class="keywordtype">int</span> <a class="code" href="a00066.html#b7aa4848a21640e4ab592e75690cc4d4" title="Separation between L1 frames.">m_L1_sep</a>;
<a name="l01529"></a>01529 
<a name="l01531"></a>01531         <span class="keywordtype">float</span> <a class="code" href="a00066.html#f8c511ead922e1fd7bd477164d0813a2" title="factor for weighting U component quantisation errors">m_ufactor</a>;
<a name="l01532"></a>01532 
<a name="l01534"></a>01534         <span class="keywordtype">float</span> <a class="code" href="a00066.html#a673881347efd1d5780f7dd1b2e87250" title="factor for weighting V component quantisation errors">m_vfactor</a>;
<a name="l01535"></a>01535 
<a name="l01537"></a>01537         <span class="keywordtype">float</span> <a class="code" href="a00066.html#e40736003477dbd235f2d51a32d4de8e" title="Cycles per degree assumed for viewing the video.">m_cpd</a>;
<a name="l01538"></a>01538 
<a name="l01540"></a>01540         <span class="keywordtype">bool</span> <a class="code" href="a00066.html#d749af600cbcd8acb53bae04dcc5e0a4" title="Flag indicating input denoising.">m_denoise</a>;
<a name="l01541"></a>01541 
<a name="l01543"></a>01543         <span class="keywordtype">float</span> <a class="code" href="a00066.html#7b57e767faa0a4be785d85689f5d8cfe" title="Lagrangian parameter for Intra frame coding.">m_I_lambda</a>;
<a name="l01544"></a>01544 
<a name="l01546"></a>01546         <span class="keywordtype">float</span> <a class="code" href="a00066.html#57214e4f5257248e82b5600578afe51c" title="Lagrangian parameter for L1 frame coding.">m_L1_lambda</a>;
<a name="l01547"></a>01547 
<a name="l01549"></a>01549         <span class="keywordtype">float</span> <a class="code" href="a00066.html#730ccecd6484362247fe2c9474c179c0" title="Lagrangian parameter for L2 frame coding.">m_L2_lambda</a>;
<a name="l01550"></a>01550 
<a name="l01552"></a>01552         <span class="keywordtype">float</span> <a class="code" href="a00066.html#d6cf2f25be1d143690816640965d4546" title="Lagrangian param for L1 motion estimation.">m_L1_me_lambda</a>;
<a name="l01553"></a>01553 
<a name="l01555"></a>01555         <span class="keywordtype">float</span> <a class="code" href="a00066.html#458f5e347c3f37e2b54df45836d0c9ed" title="Lagrangian param for L2 motion estimation.">m_L2_me_lambda</a>;
<a name="l01556"></a>01556 
<a name="l01558"></a>01558         EntropyCorrector* <a class="code" href="a00066.html#40d302f4d2ac0b78fdbada4e09b7432e" title="Correction factors for quantiser selection.">m_ent_correct</a>;
<a name="l01559"></a>01559 
<a name="l01561"></a>01561         std::string <a class="code" href="a00066.html#6dae6ce23a776dc54437e4748282ad72" title="Output file path.">m_output_path</a>;
<a name="l01562"></a>01562 
<a name="l01564"></a>01564         <a class="code" href="a00168.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="code" href="a00066.html#e9af357dc58148a0ad980610b2be139f" title="Wavelet filter for Intra frames.">m_intra_wltfilter</a>;
<a name="l01565"></a>01565 
<a name="l01567"></a>01567         <a class="code" href="a00168.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="code" href="a00066.html#512f21be5b9043db03e0e302993b4083" title="Wavelet filter for Inter frames.">m_inter_wltfilter</a>;
<a name="l01568"></a>01568 
<a name="l01570"></a>01570         <span class="keywordtype">int</span> <a class="code" href="a00066.html#dfc3b69d1d60d20680a8918f9ce0ea68" title="Target bit rate.">m_target_rate</a>;
<a name="l01571"></a>01571 
<a name="l01573"></a>01573         <span class="keywordtype">bool</span> <a class="code" href="a00066.html#1086f35a3984eec9b394fb0a75464b30" title="Arithmetic coding flag.">m_using_ac</a>;
<a name="l01574"></a>01574 
<a name="l01575"></a>01575     };
<a name="l01576"></a>01576 
<a name="l01578"></a>01578 
<a name="l01581"></a>01581     <span class="keyword">class </span>DecoderParams: <span class="keyword">public</span> CodecParams
<a name="l01582"></a>01582     {
<a name="l01583"></a>01583     <span class="keyword">public</span>:
<a name="l01585"></a>01585         <a class="code" href="a00032.html#146b80ef7f13b9df9ae8cfd2110351b1" title="Default constructor.">DecoderParams</a>(<span class="keyword">const</span> <a class="code" href="a00168.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a>&amp; video_format = <a class="code" href="a00168.html#216a5d43d2a518325c84f100ed7735a50dbded26b63fcbf0163bf3fe2d6aa923">VIDEO_FORMAT_CIF</a>, <a class="code" href="a00168.html#d495a9f61af7fff07d7e97979d1ab854">FrameType</a> ftype=<a class="code" href="a00168.html#d495a9f61af7fff07d7e97979d1ab854a2bd963050a9c16edd65af4a71489fae">INTRA_FRAME</a>, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> num_refs = 0, <span class="keywordtype">bool</span> set_defaults = <span class="keyword">false</span>);
<a name="l01586"></a>01586 
<a name="l01588"></a>01588         <span class="keywordtype">bool</span> <a class="code" href="a00032.html#f44d51abdd8fbb04dcb17eb139aa6a09" title="Returns true if we&amp;#39;re operating verbosely, false otherwise.">Verbose</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00032.html#11fd826e619dcb25efdad6656655b4a7" title="Code/decode with commentary if true.">m_verbose</a>;}
<a name="l01589"></a>01589 
<a name="l01591"></a>01591         <span class="keywordtype">void</span> <a class="code" href="a00032.html#be5d98d190a6c96edf0c0e714af8093b" title="Sets verbosity on or off.">SetVerbose</a>(<span class="keywordtype">bool</span> v){<a class="code" href="a00032.html#11fd826e619dcb25efdad6656655b4a7" title="Code/decode with commentary if true.">m_verbose</a>=v;}
<a name="l01592"></a>01592 
<a name="l01594"></a>01594             <span class="comment">//NB: Assume default copy constructor, assignment = and destructor//</span>
<a name="l01595"></a>01595             <span class="comment">//This means pointers are copied, not the objects they point to.////</span>
<a name="l01597"></a>01597 <span class="comment"></span>
<a name="l01598"></a>01598 
<a name="l01599"></a>01599     <span class="keyword">private</span>:
<a name="l01600"></a>01600 
<a name="l01602"></a>01602         <span class="keywordtype">bool</span> <a class="code" href="a00032.html#11fd826e619dcb25efdad6656655b4a7" title="Code/decode with commentary if true.">m_verbose</a>;
<a name="l01603"></a>01603 
<a name="l01604"></a>01604     };
<a name="l01605"></a>01605 
<a name="l01607"></a>01607     <span class="keyword">inline</span> <a class="code" href="a00226.html#548820ca76f864dc8630df79b2c5c5b9" title="Type of picture data (including motion compensated residuals).">ValueType</a> <a class="code" href="a00226.html#578523d235f3d273aa7aae9d0127dab7" title="A simple bounds checking function, very useful in a number of places.">BChk</a>(<span class="keyword">const</span> <a class="code" href="a00226.html#548820ca76f864dc8630df79b2c5c5b9" title="Type of picture data (including motion compensated residuals).">ValueType</a> &amp;num, <span class="keyword">const</span> <a class="code" href="a00226.html#548820ca76f864dc8630df79b2c5c5b9" title="Type of picture data (including motion compensated residuals).">ValueType</a> &amp;max)
<a name="l01608"></a>01608     {
<a name="l01609"></a>01609         <span class="keywordflow">if</span>(num &lt; 0) <span class="keywordflow">return</span> 0;
<a name="l01610"></a>01610         <span class="keywordflow">else</span> <span class="keywordflow">if</span>(num &gt;= max) <span class="keywordflow">return</span> max-1;
<a name="l01611"></a>01611         <span class="keywordflow">else</span> <span class="keywordflow">return</span> num;
<a name="l01612"></a>01612     }
<a name="l01613"></a>01613 
<a name="l01615"></a>01615     <span class="keyword">class </span>QuantiserLists
<a name="l01616"></a>01616     {
<a name="l01617"></a>01617     <span class="keyword">public</span>:
<a name="l01619"></a>01619         <a class="code" href="a00119.html#1d322afd9784d4197f9593b508e5d703" title="Default constructor.">QuantiserLists</a>();
<a name="l01620"></a>01620 
<a name="l01622"></a>01622         <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="a00119.html#8f55e40d58354b1ab627ce4dd23b2398" title="Returns 4 times the quantisation factor.">QuantFactor4</a>( <span class="keyword">const</span> <span class="keywordtype">int</span> index )<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00119.html#446d371c4aaa63026b55393d7b580dc7">m_qflist4</a>[index]; }
<a name="l01623"></a>01623 
<a name="l01625"></a>01625         <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="a00119.html#b26080292ffeeeedc60c497301ad17ce" title="Returns the intra frame quantisation offset for non-zero values.">IntraQuantOffset4</a>( <span class="keyword">const</span> <span class="keywordtype">int</span> index )<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00119.html#5b7a3ec886e4508064bd4e8a793430bf">m_intra_offset4</a>[index]; }
<a name="l01627"></a>01627         <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="a00119.html#00511d6ab38cc62ee3f024d9491552c5" title="Returns the inter frame quantisation offset for non-zero values.">InterQuantOffset4</a>( <span class="keyword">const</span> <span class="keywordtype">int</span> index )<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00119.html#83afc3afc325b9683fe46559c8e43562">m_inter_offset4</a>[index]; }
<a name="l01628"></a>01628 
<a name="l01630"></a>01630         <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="a00119.html#4a0b77ae2879ddfe62c12ed0b2bee2dd" title="Returns the maximum quantiser index supported.">MaxQIndex</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00119.html#bd9e8355c11bcac21d36dcc037d81407">m_max_qindex</a>; }
<a name="l01631"></a>01631 
<a name="l01632"></a>01632 
<a name="l01633"></a><a class="code" href="a00119.html#bd9e8355c11bcac21d36dcc037d81407">01633</a>     <span class="keyword">private</span>:
<a name="l01634"></a><a class="code" href="a00119.html#446d371c4aaa63026b55393d7b580dc7">01634</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00119.html#bd9e8355c11bcac21d36dcc037d81407">m_max_qindex</a>;
<a name="l01635"></a><a class="code" href="a00119.html#5b7a3ec886e4508064bd4e8a793430bf">01635</a>         <a class="code" href="a00105.html" title="A template class for one-dimensional arrays.">OneDArray&lt;int&gt;</a> <a class="code" href="a00119.html#446d371c4aaa63026b55393d7b580dc7">m_qflist4</a>;
<a name="l01636"></a><a class="code" href="a00119.html#83afc3afc325b9683fe46559c8e43562">01636</a>         <a class="code" href="a00105.html" title="A template class for one-dimensional arrays.">OneDArray&lt;int&gt;</a> <a class="code" href="a00119.html#5b7a3ec886e4508064bd4e8a793430bf">m_intra_offset4</a>;
<a name="l01637"></a>01637         <a class="code" href="a00105.html" title="A template class for one-dimensional arrays.">OneDArray&lt;int&gt;</a> <a class="code" href="a00119.html#83afc3afc325b9683fe46559c8e43562">m_inter_offset4</a>;
<a name="l01638"></a>01638 
<a name="l01639"></a>01639     };
<a name="l01640"></a>01640 
<a name="l01642"></a>01642     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="a00119.html" title="Class for encapsulating quantiser data.">QuantiserLists</a> dirac_quantiser_lists;
<a name="l01643"></a>01643 
<a name="l01644"></a>01644 } <span class="comment">// namespace dirac</span>
<a name="l01645"></a>01645 
<a name="l01646"></a>01646 <span class="preprocessor">#endif</span>
</pre></div><hr>
<p align="center"><small>
&copy; 2004 British Broadcasting Corporation.
Dirac code licensed under the <a href="http://www.mozilla.org/MPL/">Mozilla Public License (MPL) Version 1.1</a>.<br>
HTML documentation generated by Dimitri van Heesch's
excellent <a href="http://www.doxygen.org">Doxygen</a> tool.
</small></p>
</body>
</html>