Sophie

Sophie

distrib > Mandriva > 2010.0 > x86_64 > by-pkgid > f250c16c2b84c9364a2f35a71121aaa2 > files > 276

lib64dirac-devel-1.0.2-2mdv2010.0.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Dirac Video Codec</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<h1 align="center" color="#606080">
Dirac - A Video Codec
</h1>
<p align="center">
Created by the <a href="http://www.bbc.co.uk">British Broadcasting Corporation</a>.
</p>
<hr>
<!-- Generated by Doxygen 1.5.9 -->
<h1>common.h</h1><a href="a00171.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.79 2008/10/01 01:26:47 asuraparaju Exp $ $Name: Dirac_1_0_2 $</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="a00162.html">libdirac_common/arrays.h</a>&gt;</span>
<a name="l00051"></a>00051 <span class="preprocessor">#include &lt;<a class="code" href="a00172.html">libdirac_common/common_types.h</a>&gt;</span>
<a name="l00052"></a>00052 <span class="preprocessor">#include &lt;<a class="code" href="a00178.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="a00234.html#548820ca76f864dc8630df79b2c5c5b9">00070</a>     <span class="keyword">typedef</span> <span class="keywordtype">short</span> <a class="code" href="a00234.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="a00234.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><a class="code" href="a00234.html#a06abce72d8abe345fcebb61fc0b8867">00081</a>     <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00234.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><a class="code" href="a00234.html#b8a7aad3ab6de8cc3709dcacde946964290f9055595bd6daa61e11877be4dabf">00084</a>     <span class="keyword">enum</span> <a class="code" href="a00234.html#b8a7aad3ab6de8cc3709dcacde946964" title="Prediction modes for blocks.">PredMode</a>{ <a class="code" href="a00234.html#b8a7aad3ab6de8cc3709dcacde946964ddfe71174598de7a23a7926ce3e99568">INTRA</a> , <a class="code" href="a00234.html#b8a7aad3ab6de8cc3709dcacde946964851554bd0849bc4ec2ce34449d9cf9d5">REF1_ONLY</a> , <a class="code" href="a00234.html#b8a7aad3ab6de8cc3709dcacde946964a276e376c6c10d9f743c1e067bbedac3">REF2_ONLY</a> , <a class="code" href="a00234.html#b8a7aad3ab6de8cc3709dcacde946964fd5e269c3b97f9be2be1b6ae96a9cada">REF1AND2</a>, <a class="code" href="a00234.html#b8a7aad3ab6de8cc3709dcacde946964290f9055595bd6daa61e11877be4dabf">UNDEFINED</a> };
<a name="l00085"></a>00085 
<a name="l00087"></a><a class="code" href="a00234.html#39dd89c4c7484412efd87d41548271cdd577a36e277061ea45fb4060c222887b">00087</a>     <span class="keyword">enum</span> <a class="code" href="a00234.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a>{ <a class="code" href="a00234.html#39dd89c4c7484412efd87d41548271cdd577a36e277061ea45fb4060c222887b">Y_COMP</a> , <a class="code" href="a00234.html#39dd89c4c7484412efd87d41548271cde984257135e62d6a7a2d1482fe9458d2">U_COMP</a> , <a class="code" href="a00234.html#39dd89c4c7484412efd87d41548271cdb068e6dcd00953f4d817f4e675ba00a0">V_COMP</a> };
<a name="l00088"></a>00088 
<a name="l00090"></a><a class="code" href="a00234.html#521776b4db3589284c5b7acb2b38a4b1962e75f21af1e4fb3291272b379e660a">00090</a>     <span class="keyword">enum</span> <a class="code" href="a00234.html#521776b4db3589284c5b7acb2b38a4b1" title="Addition or subtraction.">AddOrSub</a>{ <a class="code" href="a00234.html#521776b4db3589284c5b7acb2b38a4b1524399f6e703e34f56e6b96c5415d471">ADD</a> , <a class="code" href="a00234.html#521776b4db3589284c5b7acb2b38a4b1962e75f21af1e4fb3291272b379e660a">SUBTRACT</a> };
<a name="l00091"></a>00091 
<a name="l00093"></a><a class="code" href="a00234.html#c972efbebbe042dd142790f520369d9c9e7a3c2913f648e1a49ffee753ff10d1">00093</a>     <span class="keyword">enum</span> <a class="code" href="a00234.html#c972efbebbe042dd142790f520369d9c" title="Forward or backward.">Direction</a> { <a class="code" href="a00234.html#c972efbebbe042dd142790f520369d9c9e7a3c2913f648e1a49ffee753ff10d1">FORWARD</a> , <a class="code" href="a00234.html#c972efbebbe042dd142790f520369d9cd64613e1de607c315ae9b9efa3889197">BACKWARD</a> };
<a name="l00094"></a>00094 
<a name="l00096"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac">00096</a>     <span class="keyword">enum</span> <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac" title="Contexts used for coefficient coding.">CtxAliases</a>
<a name="l00097"></a>00097     {<span class="comment">//used for residual coding</span>
<a name="l00098"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac6db667df0c3a2c089c859a3107abc2eb">00098</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac6db667df0c3a2c089c859a3107abc2eb">SIGN0_CTX</a>,          <span class="comment">// -sign, previous symbol is 0</span>
<a name="l00099"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac2fa57489e06cfe60509c164f9a370fe3">00099</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac2fa57489e06cfe60509c164f9a370fe3">SIGN_POS_CTX</a>,       <span class="comment">// -sign, previous symbol is +ve</span>
<a name="l00100"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac88560fa2af3763ca96a12102aa26705a">00100</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac88560fa2af3763ca96a12102aa26705a">SIGN_NEG_CTX</a>,       <span class="comment">// -sign, previous symbol is -ve</span>
<a name="l00101"></a>00101 
<a name="l00102"></a>00102         <span class="comment">// Follow bit contexts</span>
<a name="l00103"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac89003482f0ce7e2d08715cfd14182c0f">00103</a>         <a class="code" href="a00234.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="a00234.html#679a3f10e5a1308d42d327ebb51971ac3cb5f911a62f155ff571f2c6ae9969bc">00104</a>         <a class="code" href="a00234.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="a00234.html#679a3f10e5a1308d42d327ebb51971ac3457a7b5840c83d341df35451c3d036a">00105</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac3457a7b5840c83d341df35451c3d036a">Z_FBIN2_CTX</a>,        <span class="comment">// -bin 2, parent is zero</span>
<a name="l00106"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971acd0b63044c328341ace525be3ef73c221">00106</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971acd0b63044c328341ace525be3ef73c221">Z_FBIN3_CTX</a>,        <span class="comment">// -bin 3, parent is zero</span>
<a name="l00107"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac0a2229c0e25aca440612b416a22ec27c">00107</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac0a2229c0e25aca440612b416a22ec27c">Z_FBIN4_CTX</a>,        <span class="comment">// -bin 4, parent is zero</span>
<a name="l00108"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac8b0d71bf2e28f84ba8d0d38fdb1515e9">00108</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac8b0d71bf2e28f84ba8d0d38fdb1515e9">Z_FBIN5_CTX</a>,        <span class="comment">// -bin 5, parent is zero</span>
<a name="l00109"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971acef1a5c44efff573581d378698132ffcf">00109</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971acef1a5c44efff573581d378698132ffcf">Z_FBIN6plus_CTX</a>,    <span class="comment">// -bins 6 plus, parent is zero</span>
<a name="l00110"></a>00110 
<a name="l00111"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac6c0535ba9466d7daa7f77b19528f41d6">00111</a>         <a class="code" href="a00234.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="a00234.html#679a3f10e5a1308d42d327ebb51971ac4d3db2f83cc7aeb32426cdd60960e172">00112</a>         <a class="code" href="a00234.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="a00234.html#679a3f10e5a1308d42d327ebb51971ac07c73dfe4adb9d5a31ea7262d61e6642">00113</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac07c73dfe4adb9d5a31ea7262d61e6642">NZ_FBIN2_CTX</a>,       <span class="comment">// -bin 2, parent is non-zero</span>
<a name="l00114"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac54ff6416aaf6d18fafbed2d607f41e7d">00114</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac54ff6416aaf6d18fafbed2d607f41e7d">NZ_FBIN3_CTX</a>,       <span class="comment">// -bin 3, parent is non-zero</span>
<a name="l00115"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac550463c86485f1abf5cc7200dfd89f95">00115</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac550463c86485f1abf5cc7200dfd89f95">NZ_FBIN4_CTX</a>,       <span class="comment">// -bin 4, parent is non-zero</span>
<a name="l00116"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac19df40326e320809a4430d5adf02153e">00116</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac19df40326e320809a4430d5adf02153e">NZ_FBIN5_CTX</a>,       <span class="comment">// -bin 5, parent is non-zero</span>
<a name="l00117"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac4241839c1087803277f860426380bdc7">00117</a>         <a class="code" href="a00234.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>00119         <span class="comment">// Information bit contexts</span>
<a name="l00120"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac1779aed84d380f5d9cdb4e775f26edc2">00120</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac1779aed84d380f5d9cdb4e775f26edc2">INFO_CTX</a>,
<a name="l00121"></a>00121 
<a name="l00122"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971acb3241550ea12d43cf8826f616ea2a36e">00122</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971acb3241550ea12d43cf8826f616ea2a36e">BLOCK_SKIP_CTX</a>,     <span class="comment">// - blocks are skipped</span>
<a name="l00123"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971acaa10956a28cd9a22c4eb1f224f54cb24">00123</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971acaa10956a28cd9a22c4eb1f224f54cb24">Q_OFFSET_FOLLOW_CTX</a>,   <span class="comment">// - code block quantiser offset magnitude</span>
<a name="l00124"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971aced56fd2edaabdf1466506454174611b6">00124</a>         <a class="code" href="a00234.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="a00234.html#679a3f10e5a1308d42d327ebb51971ac48b93f322c0b6325c3438e2d11f5f712">00125</a>         <a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac48b93f322c0b6325c3438e2d11f5f712">Q_OFFSET_SIGN_CTX</a>,   <span class="comment">// - code block quantiser offset sign</span>
<a name="l00126"></a><a class="code" href="a00234.html#679a3f10e5a1308d42d327ebb51971ac7e853b7f8bdef7d3872fe8a5a647f849">00126</a>         <a class="code" href="a00234.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><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad">00130</a>     <span class="keyword">enum</span> <a class="code" href="a00234.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>00134 <span class="comment"></span>
<a name="l00135"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144adf565188c2be16cb2d39cba0421c07937">00135</a>         <a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144adf565188c2be16cb2d39cba0421c07937">DC_FBIN1_CTX</a>,
<a name="l00136"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad1194259959dfee380e50ee4cec72ed75">00136</a>         <a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad1194259959dfee380e50ee4cec72ed75">DC_FBIN2plus_CTX</a>,
<a name="l00137"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144adb7c4c055bdee745631905549f4b20aec">00137</a>         <a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144adb7c4c055bdee745631905549f4b20aec">DC_INFO_CTX</a>,
<a name="l00138"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144adaa1bac82fb85b6b9b6ad8e71c32eac0a">00138</a>         <a class="code" href="a00234.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>00143 
<a name="l00144"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad1c27a6e175dfcfd6e6cc0817c909b783">00144</a>         <a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad1c27a6e175dfcfd6e6cc0817c909b783">MV_FBIN1_CTX</a>,
<a name="l00145"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144adec3d9819b8518e08951ad64e9e9c7ec1">00145</a>         <a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144adec3d9819b8518e08951ad64e9e9c7ec1">MV_FBIN2_CTX</a>,
<a name="l00146"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad0c4a5a5072d7770888c0855e4acf7d24">00146</a>         <a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad0c4a5a5072d7770888c0855e4acf7d24">MV_FBIN3_CTX</a>,
<a name="l00147"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144add122d9bb1e715af6dd2a2ae887214ed3">00147</a>         <a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144add122d9bb1e715af6dd2a2ae887214ed3">MV_FBIN4_CTX</a>,
<a name="l00148"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad759074d64f1d94a1bd385c1c0f94ea8f">00148</a>         <a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad759074d64f1d94a1bd385c1c0f94ea8f">MV_FBIN5plus_CTX</a>,
<a name="l00149"></a>00149 
<a name="l00150"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad2b643a4baedcf5d7b0eb66867428c58e">00150</a>         <a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad2b643a4baedcf5d7b0eb66867428c58e">MV_INFO_CTX</a>,
<a name="l00151"></a>00151 
<a name="l00152"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad0d547cbd2aa0356739a2764f60a6fa42">00152</a>         <a class="code" href="a00234.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>00156 
<a name="l00157"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad07bcbc984c53cfc6184a7d74e2087b4a">00157</a>         <a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad07bcbc984c53cfc6184a7d74e2087b4a">PMODE_BIT0_CTX</a>,     <span class="comment">// -bit 0, prediction mode value</span>
<a name="l00158"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144add8c817ad1bf98bda54817f79c4258a3c">00158</a>         <a class="code" href="a00234.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>00162 
<a name="l00163"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad6fbf7463d0b19d4a868a6abb7eac5a1e">00163</a>         <a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad6fbf7463d0b19d4a868a6abb7eac5a1e">SB_SPLIT_BIN1_CTX</a>,  <span class="comment">// bin 1, SB split mode vals</span>
<a name="l00164"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144adab3fdb3ed63c76de3712aa490b0c9d9f">00164</a>         <a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144adab3fdb3ed63c76de3712aa490b0c9d9f">SB_SPLIT_BIN2_CTX</a>,  <span class="comment">// bin 2, SB split mode vals. Bin 3 not required</span>
<a name="l00165"></a>00165 
<a name="l00166"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad479f555fa72cf4f6f57cdbe28b12ee40">00166</a>         <a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad479f555fa72cf4f6f57cdbe28b12ee40">SB_SPLIT_INFO_CTX</a>,  <span class="comment">// info context for SB split mode</span>
<a name="l00167"></a>00167 
<a name="l00168"></a><a class="code" href="a00234.html#91ea3dd97a4aa2ef1fcc6127f83144ad6eddcf5350fda95a8020581c3f5a7b77">00168</a>         <a class="code" href="a00234.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="a00172.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> <a class="code" href="a00234.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="a00172.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> <a class="code" href="a00234.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="a00172.html#c814b7884e2fe3617a7590dd30fb69d3">FrameRateType</a> <a class="code" href="a00234.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="a00172.html#a7dbc205d742c02df228c990257b7302">PixelAspectRatioType</a> <a class="code" href="a00234.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="a00172.html#d9244a0d1ab3670e4027e3ac49cf18da">SignalRangeType</a> <a class="code" href="a00234.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="a00172.html#73c509e14745c98e30772b6c4f8b6e1e">MVPrecisionType</a> <a class="code" href="a00234.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="l00216"></a>00216 <span class="comment"></span> 
<a name="l00218"></a><a class="code" href="a00127.html">00218</a>     <span class="keyword">class </span><a class="code" href="a00127.html" title="Class defining a rational number.">Rational</a>
<a name="l00219"></a>00219     {
<a name="l00220"></a>00220     <span class="keyword">public</span>:
<a name="l00222"></a><a class="code" href="a00127.html#d00702073a0f1267a082fc42bfd769b2">00222</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00127.html#d00702073a0f1267a082fc42bfd769b2" title="Numerator.">m_num</a>;
<a name="l00224"></a><a class="code" href="a00127.html#f0ac584e8eb2ca83afe05afff1cc9679">00224</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00127.html#f0ac584e8eb2ca83afe05afff1cc9679" title="Denominator.">m_denom</a>;
<a name="l00225"></a>00225     };
<a name="l00226"></a>00226 
<a name="l00228"></a><a class="code" href="a00115.html">00228</a>     <span class="keyword">class </span><a class="code" href="a00115.html" title="Picture type Class.">PictureSort</a>
<a name="l00229"></a>00229     {
<a name="l00230"></a>00230     <span class="keyword">public</span>:
<a name="l00231"></a><a class="code" href="a00115.html#56a06e0a71992722e7c27ba46b40102c">00231</a>         <a class="code" href="a00115.html#56a06e0a71992722e7c27ba46b40102c">PictureSort</a>() { <a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a> = 0x00; } <span class="comment">// default intra non-ref</span>
<a name="l00232"></a>00232 
<a name="l00233"></a><a class="code" href="a00115.html#411c75ae8622b24c2c33668993ffcbe3">00233</a>         <span class="keywordtype">void</span> <a class="code" href="a00115.html#411c75ae8622b24c2c33668993ffcbe3">SetIntra</a>() { <a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a> &amp;= 0xfe; }
<a name="l00234"></a><a class="code" href="a00115.html#3237ae40a09a4027d1ccb664bc5534f8">00234</a>         <span class="keywordtype">void</span> <a class="code" href="a00115.html#3237ae40a09a4027d1ccb664bc5534f8">SetInter</a>() { <a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a> |= 0x01; }
<a name="l00235"></a><a class="code" href="a00115.html#154c75eff1938cd2623f69ab691600c1">00235</a>         <span class="keywordtype">void</span> <a class="code" href="a00115.html#154c75eff1938cd2623f69ab691600c1">SetNonRef</a>() { <a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a> &amp;= 0xfd; }
<a name="l00236"></a><a class="code" href="a00115.html#64e6c9a8361037a03313e109519a948c">00236</a>         <span class="keywordtype">void</span> <a class="code" href="a00115.html#64e6c9a8361037a03313e109519a948c">SetRef</a>() { <a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a> |= 0x02; }
<a name="l00237"></a>00237 
<a name="l00238"></a><a class="code" href="a00115.html#1f138d8f8abfff408ad4e5a30416c1d1">00238</a>         <span class="keywordtype">bool</span> <a class="code" href="a00115.html#1f138d8f8abfff408ad4e5a30416c1d1">IsInter</a> ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a> &amp; 0x01; }
<a name="l00239"></a><a class="code" href="a00115.html#df45da7a01ab6fdb4320c58f6da1337e">00239</a>         <span class="keywordtype">bool</span> <a class="code" href="a00115.html#df45da7a01ab6fdb4320c58f6da1337e">IsIntra</a> ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !<a class="code" href="a00115.html#1f138d8f8abfff408ad4e5a30416c1d1">IsInter</a>(); }
<a name="l00240"></a><a class="code" href="a00115.html#94e171ee0dc076aa80c4b59a8dbd46c9">00240</a>         <span class="keywordtype">bool</span> <a class="code" href="a00115.html#94e171ee0dc076aa80c4b59a8dbd46c9">IsRef</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a> &amp; 0x02; };
<a name="l00241"></a><a class="code" href="a00115.html#f023bc109e7cd346f31f0d50982a0aee">00241</a>         <span class="keywordtype">bool</span> <a class="code" href="a00115.html#f023bc109e7cd346f31f0d50982a0aee">IsNonRef</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !<a class="code" href="a00115.html#94e171ee0dc076aa80c4b59a8dbd46c9">IsRef</a>(); }
<a name="l00242"></a>00242 
<a name="l00243"></a><a class="code" href="a00115.html#3b8fbaaf4594f6225396e1063a755d78">00243</a>         <span class="keywordtype">void</span> <a class="code" href="a00115.html#3b8fbaaf4594f6225396e1063a755d78">SetIntraNonRef</a>() { <a class="code" href="a00115.html#411c75ae8622b24c2c33668993ffcbe3">SetIntra</a>(); <a class="code" href="a00115.html#154c75eff1938cd2623f69ab691600c1">SetNonRef</a>(); }
<a name="l00244"></a><a class="code" href="a00115.html#bbbf5e2e7480ececc57e410331f14127">00244</a>         <span class="keywordtype">void</span> <a class="code" href="a00115.html#bbbf5e2e7480ececc57e410331f14127">SetIntraRef</a>() { <a class="code" href="a00115.html#411c75ae8622b24c2c33668993ffcbe3">SetIntra</a>(); <a class="code" href="a00115.html#64e6c9a8361037a03313e109519a948c">SetRef</a>(); }
<a name="l00245"></a><a class="code" href="a00115.html#4f6c33c92159740c6f90daa6d419df23">00245</a>         <span class="keywordtype">void</span> <a class="code" href="a00115.html#4f6c33c92159740c6f90daa6d419df23">SetInterNonRef</a>() { <a class="code" href="a00115.html#3237ae40a09a4027d1ccb664bc5534f8">SetInter</a>(); <a class="code" href="a00115.html#154c75eff1938cd2623f69ab691600c1">SetNonRef</a>(); }
<a name="l00246"></a><a class="code" href="a00115.html#6e05c4636f8fd6f2266e5bc006c1ad1a">00246</a>         <span class="keywordtype">void</span> <a class="code" href="a00115.html#6e05c4636f8fd6f2266e5bc006c1ad1a">SetInterRef</a>() { <a class="code" href="a00115.html#3237ae40a09a4027d1ccb664bc5534f8">SetInter</a>(); <a class="code" href="a00115.html#64e6c9a8361037a03313e109519a948c">SetRef</a>(); }
<a name="l00247"></a>00247 
<a name="l00248"></a><a class="code" href="a00115.html#1db4f350dab5e8dd206ee3fe467fc189">00248</a>         <span class="keywordtype">bool</span> <a class="code" href="a00115.html#1db4f350dab5e8dd206ee3fe467fc189">IsIntraNonRef</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a> &amp; 0x03) == 0x00; }
<a name="l00249"></a><a class="code" href="a00115.html#b7f6ed65ff4d3f4ee1c7b9bd852895c2">00249</a>         <span class="keywordtype">bool</span> <a class="code" href="a00115.html#b7f6ed65ff4d3f4ee1c7b9bd852895c2">IsIntraRef</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a> &amp; 0x03) == 0x02; }
<a name="l00250"></a><a class="code" href="a00115.html#f20af2ca8e40d14e4a0064512b1ef351">00250</a>         <span class="keywordtype">bool</span> <a class="code" href="a00115.html#f20af2ca8e40d14e4a0064512b1ef351">IsInterNonRef</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a> &amp; 0x03) == 0x01; }
<a name="l00251"></a><a class="code" href="a00115.html#e41ce94b31a43649b21970588fbe7b55">00251</a>         <span class="keywordtype">bool</span> <a class="code" href="a00115.html#e41ce94b31a43649b21970588fbe7b55">IsInterRef</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (<a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a> &amp; 0x03) == 0x03; }
<a name="l00252"></a>00252 
<a name="l00253"></a><a class="code" href="a00115.html#0579999983c8e4b09090e9a957ed33a2">00253</a>         <span class="keywordtype">void</span> <a class="code" href="a00115.html#0579999983c8e4b09090e9a957ed33a2">Clear</a>() { <a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a>=0x00; }
<a name="l00254"></a>00254 
<a name="l00255"></a><a class="code" href="a00115.html#1da9cf2265d35ce748aa8840f30ba1e7">00255</a>         <span class="keyword">static</span> <a class="code" href="a00115.html" title="Picture type Class.">PictureSort</a> <a class="code" href="a00115.html#1da9cf2265d35ce748aa8840f30ba1e7">IntraRefPictureSort</a>()
<a name="l00256"></a>00256         {
<a name="l00257"></a>00257             <a class="code" href="a00115.html" title="Picture type Class.">PictureSort</a> <a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a>;
<a name="l00258"></a>00258             fs.<a class="code" href="a00115.html#bbbf5e2e7480ececc57e410331f14127">SetIntraRef</a>();
<a name="l00259"></a>00259             <span class="keywordflow">return</span> fs;
<a name="l00260"></a>00260         }
<a name="l00261"></a>00261 
<a name="l00262"></a><a class="code" href="a00115.html#b93936dca899545df0dd890a9408c830">00262</a>         <span class="keyword">static</span> <a class="code" href="a00115.html" title="Picture type Class.">PictureSort</a> <a class="code" href="a00115.html#b93936dca899545df0dd890a9408c830">InterRefPictureSort</a>()
<a name="l00263"></a>00263         {
<a name="l00264"></a>00264             <a class="code" href="a00115.html" title="Picture type Class.">PictureSort</a> <a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a>;
<a name="l00265"></a>00265             fs.<a class="code" href="a00115.html#6e05c4636f8fd6f2266e5bc006c1ad1a">SetInterRef</a>();
<a name="l00266"></a>00266             <span class="keywordflow">return</span> fs;
<a name="l00267"></a>00267         }
<a name="l00268"></a>00268 
<a name="l00269"></a><a class="code" href="a00115.html#af7b25902290974af42a3af2f94540e5">00269</a>         <span class="keyword">static</span> <a class="code" href="a00115.html" title="Picture type Class.">PictureSort</a> <a class="code" href="a00115.html#af7b25902290974af42a3af2f94540e5">IntraNonRefPictureSort</a>()
<a name="l00270"></a>00270         {
<a name="l00271"></a>00271             <a class="code" href="a00115.html" title="Picture type Class.">PictureSort</a> <a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a>;
<a name="l00272"></a>00272             fs.<a class="code" href="a00115.html#3b8fbaaf4594f6225396e1063a755d78">SetIntraNonRef</a>();
<a name="l00273"></a>00273             <span class="keywordflow">return</span> fs;
<a name="l00274"></a>00274         }
<a name="l00275"></a>00275 
<a name="l00276"></a><a class="code" href="a00115.html#ca9c7e2f78f5c34af4795b2f289b897d">00276</a>         <span class="keyword">static</span> <a class="code" href="a00115.html" title="Picture type Class.">PictureSort</a> <a class="code" href="a00115.html#ca9c7e2f78f5c34af4795b2f289b897d">InterNonRefPictureSort</a>()
<a name="l00277"></a>00277         {
<a name="l00278"></a>00278             <a class="code" href="a00115.html" title="Picture type Class.">PictureSort</a> <a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a>;
<a name="l00279"></a>00279             fs.<a class="code" href="a00115.html#4f6c33c92159740c6f90daa6d419df23">SetInterNonRef</a>();
<a name="l00280"></a>00280             <span class="keywordflow">return</span> fs;
<a name="l00281"></a>00281         }
<a name="l00282"></a>00282 
<a name="l00283"></a>00283     <span class="keyword">private</span>:
<a name="l00284"></a><a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">00284</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="a00115.html#c4ab61f5df6948132a112bf769aa682b">fs</a>;
<a name="l00285"></a>00285     };
<a name="l00286"></a>00286 
<a name="l00288"></a><a class="code" href="a00131.html">00288</a>     <span class="keyword">class </span><a class="code" href="a00131.html" title="Parameters relating to the source material being encoded/decoded.">SourceParams</a>
<a name="l00289"></a>00289     {
<a name="l00290"></a>00290     <span class="keyword">public</span>:
<a name="l00292"></a>00292         <a class="code" href="a00131.html#db48a5d25d172cfdb791ed772322fabb" title="default constructor">SourceParams</a> (<span class="keyword">const</span> <a class="code" href="a00172.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> &amp;vf = <a class="code" href="a00172.html#216a5d43d2a518325c84f100ed7735a55a3ea902cd1b9de9f720f66bba453c65">VIDEO_FORMAT_CUSTOM</a>,
<a name="l00293"></a>00293                       <span class="keywordtype">bool</span> set_defaults=<span class="keyword">true</span>);
<a name="l00294"></a>00294 
<a name="l00296"></a>00296         <span class="comment">//NB: Assume default copy constructor, assignment = and destructor//</span>
<a name="l00298"></a>00298 <span class="comment"></span>
<a name="l00299"></a>00299         <span class="comment">// Gets</span>
<a name="l00301"></a><a class="code" href="a00131.html#c2f64a769180717df29c0e55c25d24ed">00301</a> <span class="comment"></span>        <a class="code" href="a00172.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> <a class="code" href="a00131.html#c2f64a769180717df29c0e55c25d24ed" title="Returns video-format.">GetVideoFormat</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00131.html#9a7db04b9a042483e46bcb2b10ced7f3" title="Video-format.">m_video_format</a>;}
<a name="l00302"></a>00302 
<a name="l00304"></a><a class="code" href="a00131.html#963d5968dc28741d2ed57020cbd4af64">00304</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#963d5968dc28741d2ed57020cbd4af64" title="Returns the picture width.">Xl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00131.html#737314eb6333867f32e9a7f22584e7ae" title="Width of video.">m_xl</a>;}
<a name="l00305"></a>00305 
<a name="l00307"></a><a class="code" href="a00131.html#ab0d24343a0908b790989eadc7a4d1b0">00307</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#ab0d24343a0908b790989eadc7a4d1b0" title="Returns the picture height.">Yl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00131.html#8cfb27502c1c576bf225d2dd6f91c5db" title="Height of video.">m_yl</a>;}
<a name="l00308"></a>00308 
<a name="l00310"></a><a class="code" href="a00131.html#b24c9222a5722df95f32a8c91feb60ea">00310</a>         <a class="code" href="a00172.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> <a class="code" href="a00131.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="a00131.html#f8c3c6f498360267d7b5fd006274500d" title="Presence of chroma and/or chroma sampling structure.">m_cformat</a>;}
<a name="l00311"></a>00311 
<a name="l00313"></a>00313         <span class="keywordtype">int</span> <a class="code" href="a00131.html#9fc404373d04a05efdcf5905d075cb3b" title="Returns the chroma width.">ChromaWidth</a>() <span class="keyword">const</span>;
<a name="l00314"></a>00314 
<a name="l00316"></a>00316         <span class="keywordtype">int</span> <a class="code" href="a00131.html#f23320213c7c7b1dfbe6782733875e79" title="Returns the chroma height.">ChromaHeight</a>() <span class="keyword">const</span>;
<a name="l00317"></a>00317 
<a name="l00319"></a><a class="code" href="a00131.html#ab2c3cb2b9689e25fb9744e050dc12c7">00319</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.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="a00131.html#1f60a1dbf59785a4f9d7bae2f781bd47" title="Source sampling field : 0 - progressive, 1 - interlaced.">m_source_sampling</a>; }
<a name="l00320"></a>00320 
<a name="l00322"></a><a class="code" href="a00131.html#4303224aecf8b47abd846d6d49f3654d">00322</a>         <span class="keywordtype">bool</span> <a class="code" href="a00131.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="a00131.html#56565c37550add8c86d565db7145cbf3" title="If m_source_sampling=1, true if the top field is first in temporal order.">m_topfieldfirst</a>; }
<a name="l00323"></a>00323 
<a name="l00325"></a><a class="code" href="a00131.html#8508d37cf49d90430602338ce532968d">00325</a>         <a class="code" href="a00127.html" title="Class defining a rational number.">Rational</a> <a class="code" href="a00131.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="a00131.html#318303ef43999fe22ad5df7d3cd5698d" title="Frame Rate i.e number of frames per second.">m_framerate</a>; }
<a name="l00326"></a>00326 
<a name="l00328"></a><a class="code" href="a00131.html#67c2b4a92b0553d60b5f74727b875a10">00328</a>         <a class="code" href="a00172.html#c814b7884e2fe3617a7590dd30fb69d3">FrameRateType</a> <a class="code" href="a00131.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="a00131.html#865674b3dd960379f48ceeaa4be9a611" title="Index into frame rate table.">m_fr_idx</a>; }
<a name="l00329"></a>00329 
<a name="l00331"></a><a class="code" href="a00131.html#84f62f5dca14cc6f78290f9c3f4d6109">00331</a>         <a class="code" href="a00127.html" title="Class defining a rational number.">Rational</a> <a class="code" href="a00131.html#84f62f5dca14cc6f78290f9c3f4d6109" title="Return the pixel aspect ratio.">PixelAspectRatio</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00131.html#cae12b84d6eb836f90b40de04fe3adb9" title="Pixel Aspect Ratio.">m_pixel_aspect_ratio</a>; }
<a name="l00332"></a>00332 
<a name="l00334"></a><a class="code" href="a00131.html#f029ff2b3c87d93f764b7a4b529defe3">00334</a>         <a class="code" href="a00172.html#a7dbc205d742c02df228c990257b7302">PixelAspectRatioType</a> <a class="code" href="a00131.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="a00131.html#af18b252a28ee1666c77b80a203a3d34" title="Index into pixel aspect ratio table.">m_pix_asr_idx</a>; }
<a name="l00335"></a>00335 
<a name="l00336"></a>00336         <span class="comment">// Clean area parameters</span>
<a name="l00338"></a><a class="code" href="a00131.html#8764da2e88e2a918a8b2b912f724c90c">00338</a> <span class="comment"></span>        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#8764da2e88e2a918a8b2b912f724c90c" title="Return the Clean area width.">CleanWidth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00131.html#506b2df74f6174a02042758a1db9ad6c" title="Clean area width.">m_clean_width</a>; }
<a name="l00340"></a><a class="code" href="a00131.html#c115ff029eb1a1bf5867d48b8c3389ea">00340</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#c115ff029eb1a1bf5867d48b8c3389ea" title="Return the Clean area height.">CleanHeight</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00131.html#00937291a031a1ee311f808e7e88ed0a" title="Clean area height.">m_clean_height</a>; }
<a name="l00342"></a><a class="code" href="a00131.html#7367e1c57a72075751b02ae1335ef696">00342</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.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="a00131.html#dff600ae7afa4b6f580384682d5d159d" title="Clean area left offset.">m_left_offset</a>; }
<a name="l00344"></a><a class="code" href="a00131.html#38c657b1e5b97c0e80e5db51aea1dc58">00344</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.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="a00131.html#c304a3512f87c20090def2f14f234f9c" title="Clean area top offset.">m_top_offset</a>; }
<a name="l00345"></a>00345 
<a name="l00346"></a>00346         <span class="comment">// Signal Range parameters</span>
<a name="l00347"></a>00347 
<a name="l00349"></a><a class="code" href="a00131.html#b8bbe4dec1dc7888b022f2b6194d5056">00349</a>         <a class="code" href="a00172.html#d9244a0d1ab3670e4027e3ac49cf18da">SignalRangeType</a> <a class="code" href="a00131.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="a00131.html#d3dfea43e79bca8ac87d8326158f404c" title="Index into signal range table.">m_sr_idx</a>; }
<a name="l00350"></a>00350 
<a name="l00352"></a><a class="code" href="a00131.html#8aa44df9019ffdda08fc93d670c2cf92">00352</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#8aa44df9019ffdda08fc93d670c2cf92" title="Return the luma offset.">LumaOffset</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00131.html#4e58a1024cb15932b7b0b04f63e1b634" title="Luma offset.">m_luma_offset</a>; }
<a name="l00354"></a><a class="code" href="a00131.html#22c1a2f2b3d5d713a9b59b5380f36a1f">00354</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#22c1a2f2b3d5d713a9b59b5380f36a1f" title="Return the luma excursion.">LumaExcursion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00131.html#c2d33f365a9ca25205b2cb66eb429f08" title="Luma excursion.">m_luma_excursion</a>; }
<a name="l00356"></a><a class="code" href="a00131.html#440967c51b5f0564d285faef84e0b003">00356</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#440967c51b5f0564d285faef84e0b003" title="Return the chroma offset.">ChromaOffset</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00131.html#211386edeed9c90324c78f52569a6972" title="Chroma offset.">m_chroma_offset</a>; }
<a name="l00358"></a><a class="code" href="a00131.html#309ba2298656c83730035d3251fdad86">00358</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#309ba2298656c83730035d3251fdad86" title="Return the chroma excursion.">ChromaExcursion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00131.html#04454b16e45418c3e7bc565340d66c2e" title="Chroma excursion.">m_chroma_excursion</a>; }
<a name="l00359"></a>00359 
<a name="l00361"></a><a class="code" href="a00131.html#22343ce4eca72ede42141de12f6665e0">00361</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.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="a00131.html#ba79fd333975aa4e8f089caf13de74ee" title="Index into colour spec table.">m_cs_idx</a>; }
<a name="l00362"></a>00362 
<a name="l00364"></a><a class="code" href="a00131.html#52f7d3b5f2106b8b4e7bac966e7c9ce8">00364</a>         <a class="code" href="a00172.html#b38dc5997b8fc7f0f94d4d85a8d3f5a2">ColourPrimaries</a> <a class="code" href="a00131.html#52f7d3b5f2106b8b4e7bac966e7c9ce8" title="Return the colour primaries index.">ColourPrimariesIndex</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00131.html#6f84eb54acb116bc8d3c7912b1e4d183" title="Colour Primaries Index.">m_col_primary</a>; }
<a name="l00366"></a><a class="code" href="a00131.html#0834b7d40860b962d6a408b123d59154">00366</a>         <a class="code" href="a00172.html#e3b93f8dd089aefd5f6721c6145ff682">ColourMatrix</a> <a class="code" href="a00131.html#0834b7d40860b962d6a408b123d59154" title="Return the colour matrix index.">ColourMatrixIndex</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00131.html#3769d09fb2eba34be035eea1e4224169">m_col_matrix</a>; }
<a name="l00368"></a><a class="code" href="a00131.html#8bd84cab8fb02989964331225d691f18">00368</a>         <a class="code" href="a00172.html#1b236414b6580bfadb3be8585123f2db">TransferFunction</a> <a class="code" href="a00131.html#8bd84cab8fb02989964331225d691f18" title="Return the transfer function index.">TransferFunctionIndex</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00131.html#60950f9add3cf64b19c3051417a474ec">m_transfer_func</a>; }
<a name="l00369"></a>00369 
<a name="l00370"></a>00370         <span class="comment">// Sets</span>
<a name="l00371"></a>00371 
<a name="l00373"></a><a class="code" href="a00131.html#245f9300632726a35aad2b823d27cc38">00373</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.html#245f9300632726a35aad2b823d27cc38" title="Sets the picture width.">SetXl</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> xlen) {<a class="code" href="a00131.html#737314eb6333867f32e9a7f22584e7ae" title="Width of video.">m_xl</a> = xlen;}
<a name="l00374"></a>00374 
<a name="l00376"></a><a class="code" href="a00131.html#04a88af26e9330cd9b38c9d01ecac3ce">00376</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.html#04a88af26e9330cd9b38c9d01ecac3ce" title="Sets the picture height.">SetYl</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ylen) {<a class="code" href="a00131.html#8cfb27502c1c576bf225d2dd6f91c5db" title="Height of video.">m_yl</a> = ylen;}
<a name="l00377"></a>00377 
<a name="l00379"></a><a class="code" href="a00131.html#b8f248b6705c4c45b0bf97b60865cada">00379</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.html#b8f248b6705c4c45b0bf97b60865cada" title="Sets the chroma format (Y only, 420, 422 etc).">SetCFormat</a>(<a class="code" href="a00172.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> cf) {<a class="code" href="a00131.html#f8c3c6f498360267d7b5fd006274500d" title="Presence of chroma and/or chroma sampling structure.">m_cformat</a>=cf;}
<a name="l00380"></a>00380 
<a name="l00382"></a><a class="code" href="a00131.html#a2fc27b7a1780d36fee871e592595655">00382</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.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="l00383"></a>00383         { <a class="code" href="a00131.html#1f60a1dbf59785a4f9d7bae2f781bd47" title="Source sampling field : 0 - progressive, 1 - interlaced.">m_source_sampling</a> = source_sampling; }
<a name="l00384"></a>00384 
<a name="l00386"></a><a class="code" href="a00131.html#28d0bd345f6fb02434fabf5db159b667">00386</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.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="a00131.html#56565c37550add8c86d565db7145cbf3" title="If m_source_sampling=1, true if the top field is first in temporal order.">m_topfieldfirst</a> = tff; }
<a name="l00387"></a>00387 
<a name="l00389"></a><a class="code" href="a00131.html#4e741bc1c8c1d417ada75fa19db327ac">00389</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.html#4e741bc1c8c1d417ada75fa19db327ac" title="Sets the video format.">SetVideoFormat</a>(<a class="code" href="a00172.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> vf){ <a class="code" href="a00131.html#9a7db04b9a042483e46bcb2b10ced7f3" title="Video-format.">m_video_format</a>=vf;}
<a name="l00390"></a>00390 
<a name="l00392"></a><a class="code" href="a00131.html#cdcc5b045ec614bbe253ecf78f82c232">00392</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.html#cdcc5b045ec614bbe253ecf78f82c232" title="Set the frame rate.">SetFrameRate</a>(<span class="keyword">const</span> <a class="code" href="a00127.html" title="Class defining a rational number.">Rational</a> &amp;frate )
<a name="l00393"></a>00393         {
<a name="l00394"></a>00394             <a class="code" href="a00131.html#865674b3dd960379f48ceeaa4be9a611" title="Index into frame rate table.">m_fr_idx</a> = <a class="code" href="a00172.html#c814b7884e2fe3617a7590dd30fb69d3e5ca50c18422d0aaded343070d508314">FRAMERATE_CUSTOM</a>; <a class="code" href="a00131.html#318303ef43999fe22ad5df7d3cd5698d" title="Frame Rate i.e number of frames per second.">m_framerate</a> = frate;
<a name="l00395"></a>00395         }
<a name="l00396"></a>00396 
<a name="l00398"></a><a class="code" href="a00131.html#52edc769fa5735ac3d9b158110c52bd6">00398</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.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="l00399"></a>00399         {
<a name="l00400"></a>00400             <a class="code" href="a00131.html#865674b3dd960379f48ceeaa4be9a611" title="Index into frame rate table.">m_fr_idx</a> = <a class="code" href="a00172.html#c814b7884e2fe3617a7590dd30fb69d3e5ca50c18422d0aaded343070d508314">FRAMERATE_CUSTOM</a>;
<a name="l00401"></a>00401             <a class="code" href="a00131.html#318303ef43999fe22ad5df7d3cd5698d" title="Frame Rate i.e number of frames per second.">m_framerate</a>.<a class="code" href="a00127.html#d00702073a0f1267a082fc42bfd769b2" title="Numerator.">m_num</a> = fr_num;
<a name="l00402"></a>00402             <a class="code" href="a00131.html#318303ef43999fe22ad5df7d3cd5698d" title="Frame Rate i.e number of frames per second.">m_framerate</a>.<a class="code" href="a00127.html#f0ac584e8eb2ca83afe05afff1cc9679" title="Denominator.">m_denom</a> = fr_denom;
<a name="l00403"></a>00403         }
<a name="l00404"></a>00404 
<a name="l00406"></a>00406         <span class="keywordtype">void</span> <a class="code" href="a00131.html#cdcc5b045ec614bbe253ecf78f82c232" title="Set the frame rate.">SetFrameRate</a>(<a class="code" href="a00172.html#c814b7884e2fe3617a7590dd30fb69d3">FrameRateType</a> fr);
<a name="l00407"></a>00407 
<a name="l00409"></a><a class="code" href="a00131.html#6466a4d1397c8d8e811a386dfe7979a6">00409</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.html#6466a4d1397c8d8e811a386dfe7979a6" title="Set the pixel aspect ratio.">SetPixelAspectRatio</a>(<span class="keyword">const</span> <a class="code" href="a00127.html" title="Class defining a rational number.">Rational</a> &amp;pix_asr)
<a name="l00410"></a>00410         {
<a name="l00411"></a>00411             <a class="code" href="a00131.html#af18b252a28ee1666c77b80a203a3d34" title="Index into pixel aspect ratio table.">m_pix_asr_idx</a> = <a class="code" href="a00172.html#a7dbc205d742c02df228c990257b7302687cd79be94c5d6e942960fa408ebe1b">PIXEL_ASPECT_RATIO_CUSTOM</a>;
<a name="l00412"></a>00412             <a class="code" href="a00131.html#cae12b84d6eb836f90b40de04fe3adb9" title="Pixel Aspect Ratio.">m_pixel_aspect_ratio</a> = pix_asr;
<a name="l00413"></a>00413         }
<a name="l00414"></a>00414 
<a name="l00416"></a><a class="code" href="a00131.html#dbc2e677a372590e524b42533798a210">00416</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.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="l00417"></a>00417         {
<a name="l00418"></a>00418             <a class="code" href="a00131.html#af18b252a28ee1666c77b80a203a3d34" title="Index into pixel aspect ratio table.">m_pix_asr_idx</a> = <a class="code" href="a00172.html#a7dbc205d742c02df228c990257b7302687cd79be94c5d6e942960fa408ebe1b">PIXEL_ASPECT_RATIO_CUSTOM</a>;
<a name="l00419"></a>00419             <a class="code" href="a00131.html#cae12b84d6eb836f90b40de04fe3adb9" title="Pixel Aspect Ratio.">m_pixel_aspect_ratio</a>.<a class="code" href="a00127.html#d00702073a0f1267a082fc42bfd769b2" title="Numerator.">m_num</a> = pix_as_num;
<a name="l00420"></a>00420             <a class="code" href="a00131.html#cae12b84d6eb836f90b40de04fe3adb9" title="Pixel Aspect Ratio.">m_pixel_aspect_ratio</a>.<a class="code" href="a00127.html#f0ac584e8eb2ca83afe05afff1cc9679" title="Denominator.">m_denom</a> = pix_as_denom;
<a name="l00421"></a>00421         }
<a name="l00422"></a>00422 
<a name="l00424"></a>00424         <span class="keywordtype">void</span> <a class="code" href="a00131.html#6466a4d1397c8d8e811a386dfe7979a6" title="Set the pixel aspect ratio.">SetPixelAspectRatio</a>(<a class="code" href="a00172.html#a7dbc205d742c02df228c990257b7302">PixelAspectRatioType</a> pixel_aspect_ratio);
<a name="l00425"></a>00425 
<a name="l00426"></a>00426         <span class="comment">// Clean area parameters</span>
<a name="l00428"></a><a class="code" href="a00131.html#98cb0ecae81996a03eaa77ba4dc26968">00428</a> <span class="comment"></span>        <span class="keywordtype">void</span> <a class="code" href="a00131.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="a00131.html#506b2df74f6174a02042758a1db9ad6c" title="Clean area width.">m_clean_width</a> = clean_width; }
<a name="l00430"></a><a class="code" href="a00131.html#cd92334edbc46397cd595559488469bf">00430</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.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="a00131.html#00937291a031a1ee311f808e7e88ed0a" title="Clean area height.">m_clean_height</a> = clean_height; }
<a name="l00432"></a><a class="code" href="a00131.html#cd320c3f9d228f19935e272f035758a5">00432</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.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="a00131.html#dff600ae7afa4b6f580384682d5d159d" title="Clean area left offset.">m_left_offset</a> = left_offset; }
<a name="l00434"></a><a class="code" href="a00131.html#0fc18c4753bdb4a79792e852c5eda279">00434</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.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="a00131.html#c304a3512f87c20090def2f14f234f9c" title="Clean area top offset.">m_top_offset</a> = top_offset; }
<a name="l00435"></a>00435 
<a name="l00436"></a>00436         <span class="comment">// Signal Range parameters</span>
<a name="l00438"></a>00438 <span class="comment"></span>        <span class="keywordtype">void</span> <a class="code" href="a00131.html#5e09d404ad4ba5656f34c88c878527a8" title="Set the Signal Range parameters.">SetSignalRange</a>(<a class="code" href="a00172.html#d9244a0d1ab3670e4027e3ac49cf18da">SignalRangeType</a> sr);
<a name="l00439"></a>00439 
<a name="l00441"></a><a class="code" href="a00131.html#799a988e47e77ca47efe1b854e2c5e51">00441</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.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="a00131.html#d3dfea43e79bca8ac87d8326158f404c" title="Index into signal range table.">m_sr_idx</a> = <a class="code" href="a00172.html#d9244a0d1ab3670e4027e3ac49cf18dab47c0996621de228c6e0d73570845f7a">SIGNAL_RANGE_CUSTOM</a>; <a class="code" href="a00131.html#4e58a1024cb15932b7b0b04f63e1b634" title="Luma offset.">m_luma_offset</a> = luma_offset; }
<a name="l00443"></a><a class="code" href="a00131.html#daf155c080423cceaae993f7748cea20">00443</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.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="a00131.html#d3dfea43e79bca8ac87d8326158f404c" title="Index into signal range table.">m_sr_idx</a> = <a class="code" href="a00172.html#d9244a0d1ab3670e4027e3ac49cf18dab47c0996621de228c6e0d73570845f7a">SIGNAL_RANGE_CUSTOM</a>; <a class="code" href="a00131.html#c2d33f365a9ca25205b2cb66eb429f08" title="Luma excursion.">m_luma_excursion</a> = luma_exc; }
<a name="l00445"></a><a class="code" href="a00131.html#7216651259633f02be45949c7c1426a5">00445</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.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="a00131.html#d3dfea43e79bca8ac87d8326158f404c" title="Index into signal range table.">m_sr_idx</a> = <a class="code" href="a00172.html#d9244a0d1ab3670e4027e3ac49cf18dab47c0996621de228c6e0d73570845f7a">SIGNAL_RANGE_CUSTOM</a>; <a class="code" href="a00131.html#211386edeed9c90324c78f52569a6972" title="Chroma offset.">m_chroma_offset</a> = chroma_off; }
<a name="l00447"></a><a class="code" href="a00131.html#38943fcef10c3d3fe22222056d6f06ac">00447</a>         <span class="keywordtype">void</span> <a class="code" href="a00131.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="a00131.html#d3dfea43e79bca8ac87d8326158f404c" title="Index into signal range table.">m_sr_idx</a> = <a class="code" href="a00172.html#d9244a0d1ab3670e4027e3ac49cf18dab47c0996621de228c6e0d73570845f7a">SIGNAL_RANGE_CUSTOM</a>; <a class="code" href="a00131.html#04454b16e45418c3e7bc565340d66c2e" title="Chroma excursion.">m_chroma_excursion</a> = chroma_exc; }
<a name="l00448"></a>00448 
<a name="l00450"></a>00450         <span class="keywordtype">void</span> <a class="code" href="a00131.html#87dfe3bafc958540b4ffd5a29e4ce7f6" title="Set the Colour specification.">SetColourSpecification</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cs_idx);
<a name="l00452"></a>00452         <span class="keywordtype">void</span> <a class="code" href="a00131.html#7a9bd04d81c3ffe3bae671653eae9348" title="Set the colour primaries index.">SetColourPrimariesIndex</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cp);
<a name="l00454"></a>00454         <span class="keywordtype">void</span> <a class="code" href="a00131.html#c20f6eedb770469a2252cc90fd10f167" title="Set the colour matrix index.">SetColourMatrixIndex</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cm);
<a name="l00456"></a>00456         <span class="keywordtype">void</span> <a class="code" href="a00131.html#837c37878bbfaffa69066bc5ab6136fd" title="Set the transfer function index.">SetTransferFunctionIndex</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> tf);
<a name="l00457"></a>00457 
<a name="l00458"></a>00458     <span class="keyword">private</span>:
<a name="l00460"></a><a class="code" href="a00131.html#9a7db04b9a042483e46bcb2b10ced7f3">00460</a>         <a class="code" href="a00172.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> <a class="code" href="a00131.html#9a7db04b9a042483e46bcb2b10ced7f3" title="Video-format.">m_video_format</a>;
<a name="l00461"></a>00461 
<a name="l00463"></a><a class="code" href="a00131.html#737314eb6333867f32e9a7f22584e7ae">00463</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#737314eb6333867f32e9a7f22584e7ae" title="Width of video.">m_xl</a>;
<a name="l00464"></a>00464 
<a name="l00466"></a><a class="code" href="a00131.html#8cfb27502c1c576bf225d2dd6f91c5db">00466</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#8cfb27502c1c576bf225d2dd6f91c5db" title="Height of video.">m_yl</a>;
<a name="l00467"></a>00467 
<a name="l00469"></a><a class="code" href="a00131.html#f8c3c6f498360267d7b5fd006274500d">00469</a>         <a class="code" href="a00172.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> <a class="code" href="a00131.html#f8c3c6f498360267d7b5fd006274500d" title="Presence of chroma and/or chroma sampling structure.">m_cformat</a>;
<a name="l00470"></a>00470 
<a name="l00472"></a><a class="code" href="a00131.html#1f60a1dbf59785a4f9d7bae2f781bd47">00472</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#1f60a1dbf59785a4f9d7bae2f781bd47" title="Source sampling field : 0 - progressive, 1 - interlaced.">m_source_sampling</a>;
<a name="l00473"></a>00473 
<a name="l00475"></a><a class="code" href="a00131.html#56565c37550add8c86d565db7145cbf3">00475</a>         <span class="keywordtype">bool</span> <a class="code" href="a00131.html#56565c37550add8c86d565db7145cbf3" title="If m_source_sampling=1, true if the top field is first in temporal order.">m_topfieldfirst</a>;
<a name="l00476"></a>00476 
<a name="l00478"></a><a class="code" href="a00131.html#865674b3dd960379f48ceeaa4be9a611">00478</a>         <a class="code" href="a00172.html#c814b7884e2fe3617a7590dd30fb69d3">FrameRateType</a> <a class="code" href="a00131.html#865674b3dd960379f48ceeaa4be9a611" title="Index into frame rate table.">m_fr_idx</a>;
<a name="l00479"></a>00479 
<a name="l00481"></a><a class="code" href="a00131.html#318303ef43999fe22ad5df7d3cd5698d">00481</a>         <a class="code" href="a00127.html" title="Class defining a rational number.">Rational</a> <a class="code" href="a00131.html#318303ef43999fe22ad5df7d3cd5698d" title="Frame Rate i.e number of frames per second.">m_framerate</a>;
<a name="l00482"></a>00482 
<a name="l00484"></a><a class="code" href="a00131.html#af18b252a28ee1666c77b80a203a3d34">00484</a>         <a class="code" href="a00172.html#a7dbc205d742c02df228c990257b7302">PixelAspectRatioType</a> <a class="code" href="a00131.html#af18b252a28ee1666c77b80a203a3d34" title="Index into pixel aspect ratio table.">m_pix_asr_idx</a>;
<a name="l00485"></a>00485 
<a name="l00487"></a><a class="code" href="a00131.html#cae12b84d6eb836f90b40de04fe3adb9">00487</a>         <a class="code" href="a00127.html" title="Class defining a rational number.">Rational</a> <a class="code" href="a00131.html#cae12b84d6eb836f90b40de04fe3adb9" title="Pixel Aspect Ratio.">m_pixel_aspect_ratio</a>;
<a name="l00488"></a>00488 
<a name="l00489"></a>00489         <span class="comment">// Clean area parameters</span>
<a name="l00490"></a>00490 
<a name="l00492"></a><a class="code" href="a00131.html#506b2df74f6174a02042758a1db9ad6c">00492</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#506b2df74f6174a02042758a1db9ad6c" title="Clean area width.">m_clean_width</a>;
<a name="l00493"></a>00493 
<a name="l00495"></a><a class="code" href="a00131.html#00937291a031a1ee311f808e7e88ed0a">00495</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#00937291a031a1ee311f808e7e88ed0a" title="Clean area height.">m_clean_height</a>;
<a name="l00496"></a>00496 
<a name="l00498"></a><a class="code" href="a00131.html#dff600ae7afa4b6f580384682d5d159d">00498</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#dff600ae7afa4b6f580384682d5d159d" title="Clean area left offset.">m_left_offset</a>;
<a name="l00499"></a>00499 
<a name="l00501"></a><a class="code" href="a00131.html#c304a3512f87c20090def2f14f234f9c">00501</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#c304a3512f87c20090def2f14f234f9c" title="Clean area top offset.">m_top_offset</a>;
<a name="l00502"></a>00502 
<a name="l00503"></a>00503         <span class="comment">// signal range parameters</span>
<a name="l00504"></a>00504 
<a name="l00506"></a><a class="code" href="a00131.html#d3dfea43e79bca8ac87d8326158f404c">00506</a>         <a class="code" href="a00172.html#d9244a0d1ab3670e4027e3ac49cf18da">SignalRangeType</a> <a class="code" href="a00131.html#d3dfea43e79bca8ac87d8326158f404c" title="Index into signal range table.">m_sr_idx</a>;
<a name="l00507"></a>00507 
<a name="l00509"></a><a class="code" href="a00131.html#4e58a1024cb15932b7b0b04f63e1b634">00509</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#4e58a1024cb15932b7b0b04f63e1b634" title="Luma offset.">m_luma_offset</a>;
<a name="l00511"></a><a class="code" href="a00131.html#c2d33f365a9ca25205b2cb66eb429f08">00511</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#c2d33f365a9ca25205b2cb66eb429f08" title="Luma excursion.">m_luma_excursion</a>;
<a name="l00513"></a><a class="code" href="a00131.html#211386edeed9c90324c78f52569a6972">00513</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#211386edeed9c90324c78f52569a6972" title="Chroma offset.">m_chroma_offset</a>;
<a name="l00515"></a><a class="code" href="a00131.html#04454b16e45418c3e7bc565340d66c2e">00515</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#04454b16e45418c3e7bc565340d66c2e" title="Chroma excursion.">m_chroma_excursion</a>;
<a name="l00516"></a>00516 
<a name="l00518"></a><a class="code" href="a00131.html#ba79fd333975aa4e8f089caf13de74ee">00518</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00131.html#ba79fd333975aa4e8f089caf13de74ee" title="Index into colour spec table.">m_cs_idx</a>;
<a name="l00519"></a>00519 
<a name="l00521"></a><a class="code" href="a00131.html#6f84eb54acb116bc8d3c7912b1e4d183">00521</a>         <a class="code" href="a00172.html#b38dc5997b8fc7f0f94d4d85a8d3f5a2">ColourPrimaries</a> <a class="code" href="a00131.html#6f84eb54acb116bc8d3c7912b1e4d183" title="Colour Primaries Index.">m_col_primary</a>;
<a name="l00522"></a>00522 
<a name="l00523"></a>00523         <span class="comment">// Colour Matrix index</span>
<a name="l00524"></a><a class="code" href="a00131.html#3769d09fb2eba34be035eea1e4224169">00524</a>         <a class="code" href="a00172.html#e3b93f8dd089aefd5f6721c6145ff682">ColourMatrix</a> <a class="code" href="a00131.html#3769d09fb2eba34be035eea1e4224169">m_col_matrix</a>;
<a name="l00525"></a>00525 
<a name="l00526"></a>00526         <span class="comment">// Transfer function index</span>
<a name="l00527"></a><a class="code" href="a00131.html#60950f9add3cf64b19c3051417a474ec">00527</a>         <a class="code" href="a00172.html#1b236414b6580bfadb3be8585123f2db">TransferFunction</a> <a class="code" href="a00131.html#60950f9add3cf64b19c3051417a474ec">m_transfer_func</a>;
<a name="l00528"></a>00528     };
<a name="l00529"></a>00529 
<a name="l00530"></a>00530 
<a name="l00532"></a><a class="code" href="a00113.html">00532</a>     <span class="keyword">class </span><a class="code" href="a00113.html" title="Parameters for initialising picture class objects.">PictureParams</a>
<a name="l00533"></a>00533     {
<a name="l00534"></a>00534 
<a name="l00535"></a>00535     <span class="keyword">public</span>:
<a name="l00537"></a>00537         <a class="code" href="a00113.html#1a9e0922f9ede79f573bfdf043411845" title="Default constructor.">PictureParams</a>();
<a name="l00538"></a>00538 
<a name="l00540"></a>00540 
<a name="l00543"></a>00543         <a class="code" href="a00113.html#1a9e0922f9ede79f573bfdf043411845" title="Default constructor.">PictureParams</a>(<span class="keyword">const</span> <a class="code" href="a00172.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a>&amp; cf, <span class="keywordtype">int</span> xlen, <span class="keywordtype">int</span> ylen,
<a name="l00544"></a>00544                     <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="l00545"></a>00545 
<a name="l00547"></a>00547 
<a name="l00550"></a>00550         <a class="code" href="a00113.html#1a9e0922f9ede79f573bfdf043411845" title="Default constructor.">PictureParams</a>(<span class="keyword">const</span> <a class="code" href="a00172.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a>&amp; cf, <span class="keyword">const</span> <a class="code" href="a00115.html" title="Picture type Class.">PictureSort</a>&amp; fs);
<a name="l00551"></a>00551 
<a name="l00553"></a>00553 
<a name="l00556"></a>00556         <a class="code" href="a00113.html#1a9e0922f9ede79f573bfdf043411845" title="Default constructor.">PictureParams</a>(<span class="keyword">const</span> <a class="code" href="a00131.html" title="Parameters relating to the source material being encoded/decoded.">SourceParams</a>&amp; sparams);
<a name="l00557"></a>00557 
<a name="l00559"></a>00559         <span class="comment">//NB: Assume default copy constructor, assignment = and destructor//</span>
<a name="l00561"></a>00561 <span class="comment"></span>
<a name="l00562"></a>00562         <span class="comment">// Gets ...</span>
<a name="l00563"></a>00563 
<a name="l00565"></a><a class="code" href="a00113.html#a842f204dca5bbd48c6cb0d2fbc54756">00565</a>         <span class="keyword">const</span> <a class="code" href="a00172.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a>&amp; <a class="code" href="a00113.html#a842f204dca5bbd48c6cb0d2fbc54756" title="Returns the chroma format of the picture.">CFormat</a>()<span class="keyword"> const</span>{<span class="keywordflow">return</span> <a class="code" href="a00113.html#f70323cc49df3d356dfb46fc78c1adb0" title="The chroma format.">m_cformat</a>;}
<a name="l00566"></a>00566 
<a name="l00568"></a><a class="code" href="a00113.html#7b14ca008310a719c64ed2ec9fb66994">00568</a>         <span class="keywordtype">int</span> <a class="code" href="a00113.html#7b14ca008310a719c64ed2ec9fb66994" title="Returns the picture width.">Xl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00113.html#121311b5ea010094b57649b623bb0cb2" title="Picture luma width.">m_xl</a>;}
<a name="l00569"></a>00569 
<a name="l00571"></a><a class="code" href="a00113.html#adcb367ec9212bcc7624576e26cbfd73">00571</a>         <span class="keywordtype">int</span> <a class="code" href="a00113.html#adcb367ec9212bcc7624576e26cbfd73" title="Returns the picture height.">Yl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00113.html#a3725ba46135ce2db7516485231aa637" title="Picture luma height.">m_yl</a>;}
<a name="l00572"></a>00572 
<a name="l00574"></a><a class="code" href="a00113.html#a5bcb1767b088a04d3110c293a7e80a5">00574</a>         <span class="keywordtype">int</span> <a class="code" href="a00113.html#a5bcb1767b088a04d3110c293a7e80a5" title="Returns the chroma width of the picture.">ChromaXl</a>()<span class="keyword"> const</span>{<span class="keywordflow">return</span> <a class="code" href="a00113.html#e6664701f951024aabfaba3afb43bfe5" title="Picture chroma width.">m_cxl</a>;}
<a name="l00575"></a>00575 
<a name="l00577"></a><a class="code" href="a00113.html#2bc7cd7df1fbd54108cce4feec0eebd2">00577</a>         <span class="keywordtype">int</span> <a class="code" href="a00113.html#2bc7cd7df1fbd54108cce4feec0eebd2" title="Returns the chroma height of the picture.">ChromaYl</a>()<span class="keyword"> const</span>{<span class="keywordflow">return</span> <a class="code" href="a00113.html#44930fffac0bb44aea8894ffee5b9d7d" title="Picture chroma height.">m_cyl</a>;}
<a name="l00578"></a>00578 
<a name="l00580"></a><a class="code" href="a00113.html#1e7f305c3956158cb22bacff6bdb974c">00580</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00113.html#1e7f305c3956158cb22bacff6bdb974c" title="Returns the luma depth.">LumaDepth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00113.html#bf093d1c3ab08c964fcd0ae759414c55" title="Luma depth - number of bits required for lumz.">m_luma_depth</a>; }
<a name="l00581"></a>00581 
<a name="l00583"></a><a class="code" href="a00113.html#02d1a8e5567a2c1ad923a762cbf937f6">00583</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00113.html#02d1a8e5567a2c1ad923a762cbf937f6" title="Returns the chroma depth.">ChromaDepth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00113.html#c3c332fbf57c7a464c39e1e16fd70392" title="chroma depth - number of bits required for luma">m_chroma_depth</a>; }
<a name="l00584"></a>00584 
<a name="l00586"></a><a class="code" href="a00113.html#36df5a2358275042a8cc49f16f6de736">00586</a>         <span class="keyword">const</span> <a class="code" href="a00115.html" title="Picture type Class.">PictureSort</a>&amp; <a class="code" href="a00113.html#36df5a2358275042a8cc49f16f6de736" title="Returns the type of the picture.">PicSort</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00113.html#a98635acbe5599bd3446ce3c6379e89f" title="The picture sort.">m_psort</a>;}
<a name="l00587"></a>00587 
<a name="l00589"></a><a class="code" href="a00113.html#8d9b6bbcd817f17cdc6f64dc901b3c7e">00589</a>         <span class="keywordtype">int</span> <a class="code" href="a00113.html#8d9b6bbcd817f17cdc6f64dc901b3c7e" title="Returns the number of the picture (in time order).">PictureNum</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00113.html#edecb096e9d49be3082fd39cdeaa0bdf" title="The picture number, in temporal order.">m_fnum</a>;}
<a name="l00590"></a>00590 
<a name="l00592"></a><a class="code" href="a00113.html#456f6a55a197677039a4e776aba53c6c">00592</a>         <span class="keywordtype">int</span> <a class="code" href="a00113.html#456f6a55a197677039a4e776aba53c6c" title="Returns the retired reference picture number.">RetiredPictureNum</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00113.html#80e400a39ea3805c9324568a06d5620e" title="The picture number of the retired picture.">m_retd_fnum</a>;}
<a name="l00593"></a>00593 
<a name="l00595"></a>00595         <span class="keywordtype">bool</span> <a class="code" href="a00113.html#7128443b73e2706964a9307b34fae1e4" title="Returns whether the picture is bi-directionally predicted by checking references...">IsBPicture</a>() <span class="keyword">const</span>;
<a name="l00596"></a>00596 
<a name="l00598"></a><a class="code" href="a00113.html#80b037be7604e4230c3b6805f0161e6e">00598</a>         <span class="keywordtype">int</span> <a class="code" href="a00113.html#80b037be7604e4230c3b6805f0161e6e" title="Returns the number of pictures after the current picture number after which the picture...">ExpiryTime</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00113.html#4b1dd3bddda0970dcd3afc8c9103b059" title="The number of pictures, after the current picture number, after the (de)coding of...">m_expiry_time</a>;}
<a name="l00599"></a>00599 
<a name="l00601"></a><a class="code" href="a00113.html#547dc03667dff7512edac19c62a52f1e">00601</a>         <span class="keywordtype">bool</span> <a class="code" href="a00113.html#547dc03667dff7512edac19c62a52f1e" title="Returns an indication of whether the picture has been output yet.">Output</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00113.html#b9bcdd697cadfb86d44d1c1c1280cbcf" title="True if the picture has been output, false if not.">m_output</a>;}
<a name="l00602"></a>00602 
<a name="l00604"></a><a class="code" href="a00113.html#ae7c71f730e11ad38a4c51fb13be667a">00604</a>         <span class="keyword">const</span> std::vector&lt;int&gt;&amp; <a class="code" href="a00113.html#ae7c71f730e11ad38a4c51fb13be667a" title="Returns a const C++ reference to the set of reference picture numbers (will be empty...">Refs</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00113.html#263fb4228111f8e7b87a59e7c368017f" title="The set of picture numbers of reference pictures.">m_refs</a>;}
<a name="l00605"></a>00605 
<a name="l00607"></a><a class="code" href="a00113.html#695dcf6074110e375e94d74f6893f393">00607</a>         std::vector&lt;int&gt;&amp; <a class="code" href="a00113.html#695dcf6074110e375e94d74f6893f393" title="Returns non-const C++ referece to the vector of reference pictures, to allow them...">Refs</a>(){<span class="keywordflow">return</span> <a class="code" href="a00113.html#263fb4228111f8e7b87a59e7c368017f" title="The set of picture numbers of reference pictures.">m_refs</a>;}
<a name="l00608"></a>00608 
<a name="l00610"></a><a class="code" href="a00113.html#a8ff378b426cc589324e323cd5bf1d09">00610</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00113.html#a8ff378b426cc589324e323cd5bf1d09" title="Return the number of reference pictures.">NumRefs</a>()<span class="keyword">const </span>{<span class="keywordflow">return</span> <a class="code" href="a00113.html#263fb4228111f8e7b87a59e7c368017f" title="The set of picture numbers of reference pictures.">m_refs</a>.size();}
<a name="l00611"></a>00611 
<a name="l00613"></a><a class="code" href="a00113.html#1e78932509c63264f2f78c46824da8df">00613</a>         <a class="code" href="a00172.html#4f37629f775549c508f4c5625ae348b3">PictureType</a> <a class="code" href="a00113.html#1e78932509c63264f2f78c46824da8df" title="Returns type of picture (see enum).">GetPictureType</a> ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00113.html#f1c7ddab0275a36b0aeb9577ecf735da" title="Picture type.">m_picture_type</a>; }
<a name="l00614"></a>00614 
<a name="l00616"></a><a class="code" href="a00113.html#f4296b6bfd8f03df2e6ecf901059b5f8">00616</a>         <a class="code" href="a00172.html#a298d9663bceef9c2ac2880c5bae3327">ReferenceType</a> <a class="code" href="a00113.html#f4296b6bfd8f03df2e6ecf901059b5f8" title="Returns reference picture type (see enum).">GetReferenceType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00113.html#1e3524a4bde188f2220103577685bb8c" title="Reference type.">m_reference_type</a>;}
<a name="l00617"></a>00617 
<a name="l00619"></a><a class="code" href="a00113.html#e8442306b88073a1956060be8675f391">00619</a>         <span class="keywordtype">bool</span> <a class="code" href="a00113.html#e8442306b88073a1956060be8675f391" 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="a00113.html#fa665b50a371d30d7384ff74c8e3fcb0" title="arithmetic coding flag">m_using_ac</a>; }
<a name="l00620"></a>00620 
<a name="l00621"></a>00621         <span class="comment">// ... Sets</span>
<a name="l00622"></a>00622 
<a name="l00624"></a>00624         <span class="keywordtype">void</span> <a class="code" href="a00113.html#0f02653db7398fa20628d9dabc0e35b7" title="Sets the type of picture.">SetPicSort</a>( <span class="keyword">const</span> <a class="code" href="a00115.html" title="Picture type Class.">PictureSort</a>&amp; ps );
<a name="l00625"></a>00625 
<a name="l00627"></a>00627         <span class="keywordtype">void</span> <a class="code" href="a00113.html#50c26c51f2b0243d2fe4e4c5780f1bed" title="Sets the picture to be Intra/Inter.">SetPictureType</a>(<span class="keyword">const</span> <a class="code" href="a00172.html#4f37629f775549c508f4c5625ae348b3">PictureType</a> ftype);
<a name="l00628"></a>00628 
<a name="l00630"></a>00630         <span class="keywordtype">void</span> <a class="code" href="a00113.html#8c4561d6702a2ec250f570eec32e8be0" title="Sets the picture to be a reference or not.">SetReferenceType</a>(<span class="keyword">const</span> <a class="code" href="a00172.html#a298d9663bceef9c2ac2880c5bae3327">ReferenceType</a> rtype);
<a name="l00631"></a>00631 
<a name="l00633"></a><a class="code" href="a00113.html#42cc3c8df32fba6489447ffe29038cae">00633</a>         <span class="keywordtype">void</span> <a class="code" href="a00113.html#42cc3c8df32fba6489447ffe29038cae" title="Sets the picture number.">SetPictureNum</a>( <span class="keyword">const</span> <span class="keywordtype">int</span> fn ){ <a class="code" href="a00113.html#edecb096e9d49be3082fd39cdeaa0bdf" title="The picture number, in temporal order.">m_fnum</a>=fn; }
<a name="l00634"></a>00634 
<a name="l00636"></a><a class="code" href="a00113.html#1564f2fba1ed57e43ad30157e9e39049">00636</a>         <span class="keywordtype">void</span> <a class="code" href="a00113.html#1564f2fba1ed57e43ad30157e9e39049" title="Sets how long the picture will stay in the buffer (encoder only).">SetExpiryTime</a>( <span class="keyword">const</span> <span class="keywordtype">int</span> expt ){ <a class="code" href="a00113.html#4b1dd3bddda0970dcd3afc8c9103b059" title="The number of pictures, after the current picture number, after the (de)coding of...">m_expiry_time</a>=expt; }
<a name="l00637"></a>00637 
<a name="l00639"></a><a class="code" href="a00113.html#6de583b5728732a0e6b19f3d805cf2c1">00639</a>         <span class="keywordtype">void</span> <a class="code" href="a00113.html#6de583b5728732a0e6b19f3d805cf2c1" title="Sets a flag to indicate that the picture has been output.">SetAsOutput</a>(){<a class="code" href="a00113.html#b9bcdd697cadfb86d44d1c1c1280cbcf" title="True if the picture has been output, false if not.">m_output</a>=<span class="keyword">true</span>;}
<a name="l00640"></a>00640 
<a name="l00642"></a><a class="code" href="a00113.html#77907bd69cade7ceffa0f821382595cb">00642</a>         <span class="keywordtype">void</span> <a class="code" href="a00113.html#77907bd69cade7ceffa0f821382595cb" title="Sets the chroma format.">SetCFormat</a>(<a class="code" href="a00172.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> cf){ <a class="code" href="a00113.html#f70323cc49df3d356dfb46fc78c1adb0" title="The chroma format.">m_cformat</a> = cf; }
<a name="l00643"></a>00643 
<a name="l00645"></a>00645         <span class="keywordtype">void</span> <a class="code" href="a00113.html#32ade8732fcc1a34b47328ff2fdc0625" title="Sets the picture width.">SetXl</a>(<span class="keywordtype">int</span> xlen);
<a name="l00646"></a>00646 
<a name="l00648"></a>00648         <span class="keywordtype">void</span> <a class="code" href="a00113.html#189c50ba8fbeb5d1131dcb8542a3a94b" title="Sets the picture height.">SetYl</a>(<span class="keywordtype">int</span> ylen);
<a name="l00649"></a>00649 
<a name="l00651"></a><a class="code" href="a00113.html#9074ed5b211ef54c93a82eeba8ad2509">00651</a>         <span class="keywordtype">void</span> <a class="code" href="a00113.html#9074ed5b211ef54c93a82eeba8ad2509" title="Set Luma Depth.">SetLumaDepth</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> luma_depth) { <a class="code" href="a00113.html#bf093d1c3ab08c964fcd0ae759414c55" title="Luma depth - number of bits required for lumz.">m_luma_depth</a> = luma_depth; }
<a name="l00652"></a>00652 
<a name="l00654"></a><a class="code" href="a00113.html#9921d2dfba8dc6fc23ac280c72a83671">00654</a>         <span class="keywordtype">void</span> <a class="code" href="a00113.html#9921d2dfba8dc6fc23ac280c72a83671" title="Set Chroma Depth.">SetChromaDepth</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> chroma_depth) { <a class="code" href="a00113.html#c3c332fbf57c7a464c39e1e16fd70392" title="chroma depth - number of bits required for luma">m_chroma_depth</a> = chroma_depth; }
<a name="l00655"></a>00655 
<a name="l00657"></a><a class="code" href="a00113.html#bf521dea487ca83ac4f30f79f1be8c1d">00657</a>         <span class="keywordtype">void</span> <a class="code" href="a00113.html#bf521dea487ca83ac4f30f79f1be8c1d" title="Sets the retired reference picture number.">SetRetiredPictureNum</a>(<span class="keywordtype">int</span> retd_fnum) {<a class="code" href="a00113.html#80e400a39ea3805c9324568a06d5620e" title="The picture number of the retired picture.">m_retd_fnum</a> = retd_fnum;}
<a name="l00658"></a>00658 
<a name="l00660"></a><a class="code" href="a00113.html#fd24478f507552b43fe50d6c1a4c7879">00660</a>         <span class="keywordtype">void</span> <a class="code" href="a00113.html#fd24478f507552b43fe50d6c1a4c7879" title="Sets the arithmetic coding flag.">SetUsingAC</a>(<span class="keywordtype">bool</span> using_ac) { <a class="code" href="a00113.html#fa665b50a371d30d7384ff74c8e3fcb0" title="arithmetic coding flag">m_using_ac</a> = using_ac; }
<a name="l00661"></a>00661 
<a name="l00662"></a>00662     <span class="keyword">private</span>:
<a name="l00663"></a>00663 
<a name="l00665"></a><a class="code" href="a00113.html#f70323cc49df3d356dfb46fc78c1adb0">00665</a>         <a class="code" href="a00172.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> <a class="code" href="a00113.html#f70323cc49df3d356dfb46fc78c1adb0" title="The chroma format.">m_cformat</a>;
<a name="l00666"></a>00666 
<a name="l00668"></a><a class="code" href="a00113.html#a98635acbe5599bd3446ce3c6379e89f">00668</a>         <a class="code" href="a00115.html" title="Picture type Class.">PictureSort</a> <a class="code" href="a00113.html#a98635acbe5599bd3446ce3c6379e89f" title="The picture sort.">m_psort</a>;
<a name="l00669"></a>00669 
<a name="l00671"></a><a class="code" href="a00113.html#263fb4228111f8e7b87a59e7c368017f">00671</a>         std::vector&lt;int&gt; <a class="code" href="a00113.html#263fb4228111f8e7b87a59e7c368017f" title="The set of picture numbers of reference pictures.">m_refs</a>;
<a name="l00672"></a>00672 
<a name="l00674"></a><a class="code" href="a00113.html#4b1dd3bddda0970dcd3afc8c9103b059">00674</a>         <span class="keywordtype">int</span> <a class="code" href="a00113.html#4b1dd3bddda0970dcd3afc8c9103b059" title="The number of pictures, after the current picture number, after the (de)coding of...">m_expiry_time</a>;
<a name="l00675"></a>00675 
<a name="l00677"></a><a class="code" href="a00113.html#edecb096e9d49be3082fd39cdeaa0bdf">00677</a>         <span class="keywordtype">int</span> <a class="code" href="a00113.html#edecb096e9d49be3082fd39cdeaa0bdf" title="The picture number, in temporal order.">m_fnum</a>;
<a name="l00678"></a>00678 
<a name="l00680"></a><a class="code" href="a00113.html#f1c7ddab0275a36b0aeb9577ecf735da">00680</a>         <a class="code" href="a00172.html#4f37629f775549c508f4c5625ae348b3">PictureType</a> <a class="code" href="a00113.html#f1c7ddab0275a36b0aeb9577ecf735da" title="Picture type.">m_picture_type</a>;
<a name="l00681"></a>00681 
<a name="l00683"></a><a class="code" href="a00113.html#1e3524a4bde188f2220103577685bb8c">00683</a>         <a class="code" href="a00172.html#a298d9663bceef9c2ac2880c5bae3327">ReferenceType</a> <a class="code" href="a00113.html#1e3524a4bde188f2220103577685bb8c" title="Reference type.">m_reference_type</a>;
<a name="l00684"></a>00684 
<a name="l00686"></a><a class="code" href="a00113.html#b9bcdd697cadfb86d44d1c1c1280cbcf">00686</a>         <span class="keywordtype">bool</span> <a class="code" href="a00113.html#b9bcdd697cadfb86d44d1c1c1280cbcf" title="True if the picture has been output, false if not.">m_output</a>;
<a name="l00687"></a>00687 
<a name="l00689"></a><a class="code" href="a00113.html#80e400a39ea3805c9324568a06d5620e">00689</a>         <span class="keyword">mutable</span>  <span class="keywordtype">int</span> <a class="code" href="a00113.html#80e400a39ea3805c9324568a06d5620e" title="The picture number of the retired picture.">m_retd_fnum</a>;
<a name="l00690"></a>00690 
<a name="l00692"></a><a class="code" href="a00113.html#121311b5ea010094b57649b623bb0cb2">00692</a>         <span class="keywordtype">int</span> <a class="code" href="a00113.html#121311b5ea010094b57649b623bb0cb2" title="Picture luma width.">m_xl</a>;
<a name="l00693"></a>00693 
<a name="l00695"></a><a class="code" href="a00113.html#a3725ba46135ce2db7516485231aa637">00695</a>         <span class="keywordtype">int</span> <a class="code" href="a00113.html#a3725ba46135ce2db7516485231aa637" title="Picture luma height.">m_yl</a>;
<a name="l00696"></a>00696 
<a name="l00698"></a><a class="code" href="a00113.html#e6664701f951024aabfaba3afb43bfe5">00698</a>         <span class="keywordtype">int</span> <a class="code" href="a00113.html#e6664701f951024aabfaba3afb43bfe5" title="Picture chroma width.">m_cxl</a>;
<a name="l00699"></a>00699 
<a name="l00701"></a><a class="code" href="a00113.html#44930fffac0bb44aea8894ffee5b9d7d">00701</a>         <span class="keywordtype">int</span> <a class="code" href="a00113.html#44930fffac0bb44aea8894ffee5b9d7d" title="Picture chroma height.">m_cyl</a>;
<a name="l00702"></a>00702 
<a name="l00704"></a><a class="code" href="a00113.html#bf093d1c3ab08c964fcd0ae759414c55">00704</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00113.html#bf093d1c3ab08c964fcd0ae759414c55" title="Luma depth - number of bits required for lumz.">m_luma_depth</a>;
<a name="l00705"></a>00705 
<a name="l00707"></a><a class="code" href="a00113.html#c3c332fbf57c7a464c39e1e16fd70392">00707</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00113.html#c3c332fbf57c7a464c39e1e16fd70392" title="chroma depth - number of bits required for luma">m_chroma_depth</a>;
<a name="l00708"></a>00708 
<a name="l00710"></a><a class="code" href="a00113.html#fa665b50a371d30d7384ff74c8e3fcb0">00710</a>         <span class="keywordtype">bool</span> <a class="code" href="a00113.html#fa665b50a371d30d7384ff74c8e3fcb0" title="arithmetic coding flag">m_using_ac</a>;
<a name="l00711"></a>00711     };
<a name="l00712"></a>00712 
<a name="l00713"></a>00713 
<a name="l00715"></a>00715 
<a name="l00718"></a><a class="code" href="a00107.html">00718</a>     <span class="keyword">class </span><a class="code" href="a00107.html" title="A class for picture component data.">PicArray</a>: <span class="keyword">public</span> <a class="code" href="a00145.html" title="A template class for two-dimensional arrays.">TwoDArray</a>&lt;ValueType&gt;
<a name="l00719"></a>00719     {
<a name="l00720"></a>00720     <span class="keyword">public</span>:
<a name="l00722"></a>00722 
<a name="l00725"></a><a class="code" href="a00107.html#55bc2eb84f6c67813dbfd20374c4f6cd">00725</a>         <a class="code" href="a00107.html#55bc2eb84f6c67813dbfd20374c4f6cd" title="Default constructor.">PicArray</a>(): <a class="code" href="a00145.html" title="A template class for two-dimensional arrays.">TwoDArray</a>&lt;<a class="code" href="a00234.html#548820ca76f864dc8630df79b2c5c5b9" title="Type of picture data (including motion compensated residuals).">ValueType</a>&gt;(){}
<a name="l00726"></a>00726 
<a name="l00728"></a>00728 
<a name="l00732"></a><a class="code" href="a00107.html#9e0947db5775cccfbb53bc56c9aaab5a">00732</a>         <a class="code" href="a00107.html#55bc2eb84f6c67813dbfd20374c4f6cd" title="Default constructor.">PicArray</a>(<span class="keywordtype">int</span> height, <span class="keywordtype">int</span> width, <a class="code" href="a00234.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a> cs=<a class="code" href="a00234.html#39dd89c4c7484412efd87d41548271cdd577a36e277061ea45fb4060c222887b">Y_COMP</a>): 
<a name="l00733"></a>00733             <a class="code" href="a00145.html" title="A template class for two-dimensional arrays.">TwoDArray</a>&lt;<a class="code" href="a00234.html#548820ca76f864dc8630df79b2c5c5b9" title="Type of picture data (including motion compensated residuals).">ValueType</a>&gt;(height, width), <a class="code" href="a00107.html#9ae550e19866d35ca91d3a83f26e1774">m_csort</a>(cs){}
<a name="l00734"></a>00734 
<a name="l00735"></a>00735         <span class="comment">//copy constructor and assignment= derived by inheritance</span>
<a name="l00736"></a>00736 
<a name="l00738"></a><a class="code" href="a00107.html#39490dc32f879817ba4d4ca64906b86e">00738</a>         <a class="code" href="a00107.html#39490dc32f879817ba4d4ca64906b86e" title="Destructor.">~PicArray</a>(){}
<a name="l00739"></a>00739 
<a name="l00741"></a><a class="code" href="a00107.html#0520f4a860e6cd510dfddf17850a2a59">00741</a>         <span class="keyword">const</span> <a class="code" href="a00234.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a>&amp; <a class="code" href="a00107.html#0520f4a860e6cd510dfddf17850a2a59" title="Return which component is stored.">CSort</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00107.html#9ae550e19866d35ca91d3a83f26e1774">m_csort</a>;}
<a name="l00742"></a>00742         
<a name="l00744"></a><a class="code" href="a00107.html#2fc34eceb77b2183cccf29a7124870ff">00744</a>         <span class="keywordtype">void</span> <a class="code" href="a00107.html#2fc34eceb77b2183cccf29a7124870ff" title="Set the type of component being stored.">SetCSort</a>(<span class="keyword">const</span> <a class="code" href="a00234.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a> cs){ <a class="code" href="a00107.html#9ae550e19866d35ca91d3a83f26e1774">m_csort</a> = cs; }
<a name="l00745"></a>00745 
<a name="l00746"></a>00746     <span class="keyword">private</span>:
<a name="l00747"></a>00747 
<a name="l00748"></a><a class="code" href="a00107.html#9ae550e19866d35ca91d3a83f26e1774">00748</a>         <a class="code" href="a00234.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a> <a class="code" href="a00107.html#9ae550e19866d35ca91d3a83f26e1774">m_csort</a>;
<a name="l00749"></a>00749     };
<a name="l00750"></a>00750 
<a name="l00751"></a>00751 
<a name="l00753"></a><a class="code" href="a00027.html">00753</a>     <span class="keyword">class </span><a class="code" href="a00027.html" title="A structure for recording costs, particularly in quantisation.">CostType</a>
<a name="l00754"></a>00754     {
<a name="l00755"></a>00755     <span class="keyword">public</span>:
<a name="l00757"></a><a class="code" href="a00027.html#03a269eca62bf7d9c36ee012635ba9ae">00757</a>         <span class="keywordtype">double</span> <a class="code" href="a00027.html#03a269eca62bf7d9c36ee012635ba9ae" title="The error (MSE or 4th power).">Error</a>;
<a name="l00758"></a>00758 
<a name="l00760"></a><a class="code" href="a00027.html#addd4b6dbc0d76556c3d8071ed5e6036">00760</a>         <span class="keywordtype">double</span> <a class="code" href="a00027.html#addd4b6dbc0d76556c3d8071ed5e6036" title="The entropy in bits per symbol.">ENTROPY</a>;
<a name="l00761"></a>00761 
<a name="l00763"></a><a class="code" href="a00027.html#9e611c0015f909a894db035638fc7703">00763</a>         <span class="keywordtype">double</span> <a class="code" href="a00027.html#9e611c0015f909a894db035638fc7703" title="The Lagrangian combination of MSE+lambda*entropy.">TOTAL</a>;
<a name="l00764"></a>00764     };
<a name="l00765"></a>00765 
<a name="l00766"></a>00766 
<a name="l00768"></a>00768 
<a name="l00773"></a><a class="code" href="a00068.html">00773</a>     <span class="keyword">class </span><a class="code" href="a00068.html" title="A class used for correcting estimates of entropy.">EntropyCorrector</a>
<a name="l00774"></a>00774     {
<a name="l00775"></a>00775     <span class="keyword">public</span>:
<a name="l00777"></a>00777 
<a name="l00781"></a>00781         <a class="code" href="a00068.html#c81a65472bb1b7278dd111da2dbc53ac" title="Constructor.">EntropyCorrector</a>(<span class="keywordtype">int</span> depth);
<a name="l00782"></a>00782 
<a name="l00784"></a>00784         <span class="comment">//NB: Assume default copy constructor, assignment = and destructor//</span>
<a name="l00786"></a>00786 <span class="comment"></span>
<a name="l00788"></a>00788 
<a name="l00792"></a>00792         <span class="keywordtype">float</span> <a class="code" href="a00068.html#7117489b773b191fbd2e9ec8ab5d2796" title="Returns the correction factor.">Factor</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> bandnum, <span class="keyword">const</span> <a class="code" href="a00113.html" title="Parameters for initialising picture class objects.">PictureParams</a>&amp; pp,
<a name="l00793"></a>00793                      <span class="keyword">const</span> <a class="code" href="a00234.html#39dd89c4c7484412efd87d41548271cd" title="Types of picture component.">CompSort</a> c) <span class="keyword">const</span>;
<a name="l00794"></a>00794 
<a name="l00796"></a>00796 
<a name="l00804"></a>00804         <span class="keywordtype">void</span> <a class="code" href="a00068.html#d514e977f36f1b6c5280396516a3388d" title="Update the correction factors.">Update</a>(<span class="keywordtype">int</span> bandnum, <span class="keyword">const</span> <a class="code" href="a00113.html" title="Parameters for initialising picture class objects.">PictureParams</a>&amp; pp, 
<a name="l00805"></a>00805                     <a class="code" href="a00234.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="l00806"></a>00806 
<a name="l00807"></a>00807     <span class="keyword">private</span>:
<a name="l00809"></a>00809         <span class="keywordtype">void</span> <a class="code" href="a00068.html#74fb8bfe5caf703a2a705e9a3e90eb27" title="Initialises the correction factors.">Init</a>();
<a name="l00810"></a>00810 
<a name="l00811"></a><a class="code" href="a00068.html#31b23e42b2432b76f756ec0b65c11598">00811</a>         <a class="code" href="a00145.html">TwoDArray&lt;float&gt;</a> <a class="code" href="a00068.html#31b23e42b2432b76f756ec0b65c11598">m_Yfctrs</a>;
<a name="l00812"></a><a class="code" href="a00068.html#10aba16ad5834e78274faaf31f8015b4">00812</a>         <a class="code" href="a00145.html">TwoDArray&lt;float&gt;</a> <a class="code" href="a00068.html#10aba16ad5834e78274faaf31f8015b4">m_Ufctrs</a>;
<a name="l00813"></a><a class="code" href="a00068.html#d926ceeaa302fa91cea0adbdef90f3db">00813</a>         <a class="code" href="a00145.html">TwoDArray&lt;float&gt;</a> <a class="code" href="a00068.html#d926ceeaa302fa91cea0adbdef90f3db">m_Vfctrs</a>;
<a name="l00814"></a>00814     };
<a name="l00815"></a>00815 
<a name="l00817"></a><a class="code" href="a00096.html">00817</a>     <span class="keyword">class </span><a class="code" href="a00096.html" title="Parameters for overlapped block motion compensation.">OLBParams</a>
<a name="l00818"></a>00818     {
<a name="l00819"></a>00819 
<a name="l00820"></a>00820     <span class="keyword">public</span>:
<a name="l00821"></a>00821 
<a name="l00823"></a><a class="code" href="a00096.html#7b631775c43c7773095785c67dd3b626">00823</a>         <a class="code" href="a00096.html#7b631775c43c7773095785c67dd3b626" title="Default constructor does nothing.">OLBParams</a>(){}
<a name="l00824"></a>00824 
<a name="l00826"></a>00826         <span class="comment">/*</span>
<a name="l00827"></a>00827 <span class="comment">            Constructor rationalises proposed parameters to allow suitable</span>
<a name="l00828"></a>00828 <span class="comment">            overlap and fit in with chroma format</span>
<a name="l00829"></a>00829 <span class="comment">            \param    xblen    the horizontal block length</span>
<a name="l00830"></a>00830 <span class="comment">            \param    yblen    the vertical block length</span>
<a name="l00831"></a>00831 <span class="comment">            \param    xblen    the horizontal block separation</span>
<a name="l00832"></a>00832 <span class="comment">            \param    yblen    the vertical block separation</span>
<a name="l00833"></a>00833 <span class="comment"></span>
<a name="l00834"></a>00834 <span class="comment">        */</span>
<a name="l00835"></a>00835         <a class="code" href="a00096.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="l00836"></a>00836                   <span class="keyword">const</span> <span class="keywordtype">int</span> xbsep, <span class="keyword">const</span> <span class="keywordtype">int</span> ybsep);
<a name="l00837"></a>00837 
<a name="l00838"></a>00838         <span class="comment">// Gets ...</span>
<a name="l00839"></a>00839 
<a name="l00841"></a><a class="code" href="a00096.html#463d96359a7d599473070c9a7c6f1f5e">00841</a>         <span class="keywordtype">int</span> <a class="code" href="a00096.html#463d96359a7d599473070c9a7c6f1f5e" title="Returns the horizontal block length.">Xblen</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00096.html#5ef048388fefd9d680e5ee43101db561">m_xblen</a>;}
<a name="l00842"></a>00842 
<a name="l00844"></a><a class="code" href="a00096.html#2f40697e66034478eef0a484f21f19ef">00844</a>         <span class="keywordtype">int</span> <a class="code" href="a00096.html#2f40697e66034478eef0a484f21f19ef" title="Returns the vertical block length.">Yblen</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00096.html#5328e83485d3b16c5d53ddcf22382eb2">m_yblen</a>;}
<a name="l00845"></a>00845 
<a name="l00847"></a><a class="code" href="a00096.html#d147441c2688c186c08dddc25b2ee3e9">00847</a>         <span class="keywordtype">int</span> <a class="code" href="a00096.html#d147441c2688c186c08dddc25b2ee3e9" title="Returns the horizontal block separation.">Xbsep</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00096.html#dbc50bed229aefd574d2183f68437717">m_xbsep</a>;}
<a name="l00848"></a>00848 
<a name="l00850"></a><a class="code" href="a00096.html#3b9acfab08f00c5cc9c992319626f3e6">00850</a>         <span class="keywordtype">int</span> <a class="code" href="a00096.html#3b9acfab08f00c5cc9c992319626f3e6" title="Returns the vertical block separation.">Ybsep</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00096.html#318ceed3678adfaebd8eea1c3ff9c9b2">m_ybsep</a>;}
<a name="l00851"></a>00851 
<a name="l00853"></a><a class="code" href="a00096.html#3d7e5aef09e9b8eb5a6e247c3637ebf1">00853</a>         <span class="keywordtype">int</span> <a class="code" href="a00096.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="a00096.html#7acf837c03d9800f5a4f949b9b061e16">m_xoffset</a>;}
<a name="l00854"></a>00854 
<a name="l00856"></a><a class="code" href="a00096.html#3978b720a5689e11c6fe3f3ef8614ddb">00856</a>         <span class="keywordtype">int</span> <a class="code" href="a00096.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="a00096.html#467ed3a54eb9127c1f3cd35fd7c6d6b6">m_yoffset</a>;}
<a name="l00857"></a>00857 
<a name="l00858"></a>00858         <span class="comment">// ... and sets</span>
<a name="l00859"></a>00859 
<a name="l00861"></a><a class="code" href="a00096.html#841cb8025065d980c7ea5faa2fb8bfa7">00861</a>         <span class="keywordtype">void</span> <a class="code" href="a00096.html#841cb8025065d980c7ea5faa2fb8bfa7" title="Sets the block width.">SetXblen</a>( <span class="keywordtype">int</span> xblen ){ <a class="code" href="a00096.html#5ef048388fefd9d680e5ee43101db561">m_xblen</a> = xblen; <a class="code" href="a00096.html#7acf837c03d9800f5a4f949b9b061e16">m_xoffset</a> = (<a class="code" href="a00096.html#5ef048388fefd9d680e5ee43101db561">m_xblen</a>-<a class="code" href="a00096.html#dbc50bed229aefd574d2183f68437717">m_xbsep</a>)/2;}
<a name="l00862"></a>00862 
<a name="l00864"></a><a class="code" href="a00096.html#a1430aadc8175b304e28cb10a72e46dd">00864</a>         <span class="keywordtype">void</span> <a class="code" href="a00096.html#a1430aadc8175b304e28cb10a72e46dd" title="Sets the block height.">SetYblen</a>( <span class="keywordtype">int</span> yblen ){ <a class="code" href="a00096.html#5328e83485d3b16c5d53ddcf22382eb2">m_yblen</a> = yblen; <a class="code" href="a00096.html#467ed3a54eb9127c1f3cd35fd7c6d6b6">m_yoffset</a> = (<a class="code" href="a00096.html#5328e83485d3b16c5d53ddcf22382eb2">m_yblen</a>-<a class="code" href="a00096.html#318ceed3678adfaebd8eea1c3ff9c9b2">m_ybsep</a>)/2;}
<a name="l00865"></a>00865 
<a name="l00867"></a><a class="code" href="a00096.html#b4498339c141c8e3bbd03b93570c0249">00867</a>         <span class="keywordtype">void</span> <a class="code" href="a00096.html#b4498339c141c8e3bbd03b93570c0249" title="Sets the block horizontal separation.">SetXbsep</a>( <span class="keywordtype">int</span> xbsep ){ <a class="code" href="a00096.html#dbc50bed229aefd574d2183f68437717">m_xbsep</a> = xbsep; <a class="code" href="a00096.html#7acf837c03d9800f5a4f949b9b061e16">m_xoffset</a> = (<a class="code" href="a00096.html#5ef048388fefd9d680e5ee43101db561">m_xblen</a>-<a class="code" href="a00096.html#dbc50bed229aefd574d2183f68437717">m_xbsep</a>)/2;}
<a name="l00868"></a>00868 
<a name="l00870"></a><a class="code" href="a00096.html#95bb609322fcdbbd4af10421a08c8b75">00870</a>         <span class="keywordtype">void</span> <a class="code" href="a00096.html#95bb609322fcdbbd4af10421a08c8b75" title="Sets the block vertical separation.">SetYbsep</a>( <span class="keywordtype">int</span> ybsep ){ <a class="code" href="a00096.html#318ceed3678adfaebd8eea1c3ff9c9b2">m_ybsep</a> = ybsep; <a class="code" href="a00096.html#467ed3a54eb9127c1f3cd35fd7c6d6b6">m_yoffset</a> = (<a class="code" href="a00096.html#5328e83485d3b16c5d53ddcf22382eb2">m_yblen</a>-<a class="code" href="a00096.html#318ceed3678adfaebd8eea1c3ff9c9b2">m_ybsep</a>)/2;}
<a name="l00871"></a>00871 
<a name="l00872"></a>00872         <span class="keywordtype">bool</span> <a class="code" href="a00096.html#400c741383072ef5e32374f3ceb0823e">operator == </a>(<span class="keyword">const</span> <a class="code" href="a00096.html" title="Parameters for overlapped block motion compensation.">OLBParams</a> bparams) <span class="keyword">const</span>;
<a name="l00873"></a>00873 
<a name="l00874"></a>00874         <span class="comment">// overloaded stream operators</span>
<a name="l00875"></a>00875         <span class="keyword">friend</span> std::ostream &amp; <a class="code" href="a00096.html#8589235100403eef0086fc5d8d807b8e">operator&lt;&lt; </a>(std::ostream &amp;, <a class="code" href="a00096.html" title="Parameters for overlapped block motion compensation.">OLBParams</a> &amp;);
<a name="l00876"></a>00876         <span class="keyword">friend</span> std::istream &amp; <a class="code" href="a00096.html#5b8dca4880cd3c59c0266be3ba8634c7">operator&gt;&gt; </a>(std::istream &amp;, <a class="code" href="a00096.html" title="Parameters for overlapped block motion compensation.">OLBParams</a> &amp;);
<a name="l00877"></a>00877 
<a name="l00878"></a>00878 
<a name="l00879"></a>00879     <span class="keyword">private</span>:
<a name="l00880"></a>00880 
<a name="l00881"></a><a class="code" href="a00096.html#5ef048388fefd9d680e5ee43101db561">00881</a>         <span class="keywordtype">int</span> <a class="code" href="a00096.html#5ef048388fefd9d680e5ee43101db561">m_xblen</a>;
<a name="l00882"></a><a class="code" href="a00096.html#5328e83485d3b16c5d53ddcf22382eb2">00882</a>         <span class="keywordtype">int</span> <a class="code" href="a00096.html#5328e83485d3b16c5d53ddcf22382eb2">m_yblen</a>;
<a name="l00883"></a><a class="code" href="a00096.html#dbc50bed229aefd574d2183f68437717">00883</a>         <span class="keywordtype">int</span> <a class="code" href="a00096.html#dbc50bed229aefd574d2183f68437717">m_xbsep</a>;
<a name="l00884"></a><a class="code" href="a00096.html#318ceed3678adfaebd8eea1c3ff9c9b2">00884</a>         <span class="keywordtype">int</span> <a class="code" href="a00096.html#318ceed3678adfaebd8eea1c3ff9c9b2">m_ybsep</a>;
<a name="l00885"></a><a class="code" href="a00096.html#7acf837c03d9800f5a4f949b9b061e16">00885</a>         <span class="keywordtype">int</span> <a class="code" href="a00096.html#7acf837c03d9800f5a4f949b9b061e16">m_xoffset</a>;
<a name="l00886"></a><a class="code" href="a00096.html#467ed3a54eb9127c1f3cd35fd7c6d6b6">00886</a>         <span class="keywordtype">int</span> <a class="code" href="a00096.html#467ed3a54eb9127c1f3cd35fd7c6d6b6">m_yoffset</a>;
<a name="l00887"></a>00887     };
<a name="l00888"></a>00888 
<a name="l00890"></a><a class="code" href="a00103.html">00890</a>     <span class="keyword">class </span><a class="code" href="a00103.html" title="Parameters relating to the complexity of encoder/decoder.">ParseParams</a>
<a name="l00891"></a>00891     {
<a name="l00892"></a>00892     <span class="keyword">public</span>:
<a name="l00894"></a>00894         <a class="code" href="a00103.html#4ad226fc435f79b19d254f3ff827986b" title="Default constructor.">ParseParams</a>();
<a name="l00895"></a>00895 
<a name="l00896"></a>00896         <span class="comment">// Gets</span>
<a name="l00897"></a>00897 
<a name="l00899"></a><a class="code" href="a00103.html#03146d671596016f205c5974caa74c38">00899</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00103.html#03146d671596016f205c5974caa74c38" title="Get the major version.">MajorVersion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00103.html#715449ffe207a6b6537015a6e4a16366" title="Major Version.">m_major_ver</a>; }
<a name="l00900"></a>00900 
<a name="l00902"></a><a class="code" href="a00103.html#5009bf1ddfd88b30077e99705351fc76">00902</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00103.html#5009bf1ddfd88b30077e99705351fc76" title="Get the minor version.">MinorVersion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00103.html#a459069c84acfc40e20979c0ff3a5f80" title="Minor Version.">m_minor_ver</a>; }
<a name="l00903"></a>00903 
<a name="l00905"></a><a class="code" href="a00103.html#e75b4c890455441b4b298e0958cc9fad">00905</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00103.html#e75b4c890455441b4b298e0958cc9fad" title="Get the Profile.">Profile</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00103.html#1bd2622860290355e4b9a38c4e62e436" title="Profile.">m_profile</a>; }
<a name="l00906"></a>00906 
<a name="l00908"></a><a class="code" href="a00103.html#520820ff4c5862d34741a63325e47490">00908</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00103.html#520820ff4c5862d34741a63325e47490" title="Get the Level.">Level</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00103.html#7f168527db57c562fcc86763bfb06870" title="Level.">m_level</a>; }
<a name="l00909"></a>00909 
<a name="l00910"></a>00910         <span class="comment">// Sets</span>
<a name="l00911"></a>00911 
<a name="l00913"></a><a class="code" href="a00103.html#c6210aa51f98bfa9f293d57fe9b10a63">00913</a>         <span class="keywordtype">void</span> <a class="code" href="a00103.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="a00103.html#715449ffe207a6b6537015a6e4a16366" title="Major Version.">m_major_ver</a> = major_ver; }
<a name="l00914"></a>00914 
<a name="l00916"></a><a class="code" href="a00103.html#9fa399e3a2edaad792e1d525d889adc9">00916</a>         <span class="keywordtype">void</span> <a class="code" href="a00103.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="a00103.html#a459069c84acfc40e20979c0ff3a5f80" title="Minor Version.">m_minor_ver</a> = minor_ver; }
<a name="l00917"></a>00917 
<a name="l00919"></a><a class="code" href="a00103.html#74a22e3203e0ac25749d283d76486037">00919</a>         <span class="keywordtype">void</span> <a class="code" href="a00103.html#74a22e3203e0ac25749d283d76486037" title="Set the Profile.">SetProfile</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> profile) { <a class="code" href="a00103.html#1bd2622860290355e4b9a38c4e62e436" title="Profile.">m_profile</a> = profile; }
<a name="l00920"></a>00920 
<a name="l00922"></a><a class="code" href="a00103.html#01bbe305772c7dc31adc902eb7fda08b">00922</a>         <span class="keywordtype">void</span> <a class="code" href="a00103.html#01bbe305772c7dc31adc902eb7fda08b" title="Set the Level.">SetLevel</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> level) { <a class="code" href="a00103.html#7f168527db57c562fcc86763bfb06870" title="Level.">m_level</a> = level; }
<a name="l00923"></a>00923 
<a name="l00924"></a>00924     <span class="keyword">private</span>:
<a name="l00926"></a><a class="code" href="a00103.html#715449ffe207a6b6537015a6e4a16366">00926</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00103.html#715449ffe207a6b6537015a6e4a16366" title="Major Version.">m_major_ver</a>;
<a name="l00928"></a><a class="code" href="a00103.html#a459069c84acfc40e20979c0ff3a5f80">00928</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00103.html#a459069c84acfc40e20979c0ff3a5f80" title="Minor Version.">m_minor_ver</a>;
<a name="l00930"></a><a class="code" href="a00103.html#1bd2622860290355e4b9a38c4e62e436">00930</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00103.html#1bd2622860290355e4b9a38c4e62e436" title="Profile.">m_profile</a>;
<a name="l00932"></a><a class="code" href="a00103.html#7f168527db57c562fcc86763bfb06870">00932</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00103.html#7f168527db57c562fcc86763bfb06870" title="Level.">m_level</a>;
<a name="l00933"></a>00933     };
<a name="l00934"></a>00934 
<a name="l00936"></a><a class="code" href="a00018.html">00936</a>     <span class="keyword">class </span><a class="code" href="a00018.html" title="Structure to hold code block sizes when spatial partitioning is used.">CodeBlocks</a>
<a name="l00937"></a>00937     {
<a name="l00938"></a>00938     <span class="keyword">public</span>:
<a name="l00940"></a><a class="code" href="a00018.html#ad65159cfe3deeb3e31e84f5cf8d9e5f">00940</a>         <a class="code" href="a00018.html#ad65159cfe3deeb3e31e84f5cf8d9e5f" title="Default Constructor.">CodeBlocks</a> () : <a class="code" href="a00018.html#984c6c7086df0e7e2627f0aee95fed2e" title="Number of Horizontal code blocks.">m_hblocks</a>(1), <a class="code" href="a00018.html#988369ff234454838f0a1c8d3be87742" title="Number of Vertical code blocks.">m_vblocks</a>(1)
<a name="l00941"></a>00941         {}
<a name="l00942"></a>00942 
<a name="l00944"></a><a class="code" href="a00018.html#ad40245ad7c3b7d3ba4a2c127116ee83">00944</a>         <a class="code" href="a00018.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="l00945"></a>00945             <a class="code" href="a00018.html#984c6c7086df0e7e2627f0aee95fed2e" title="Number of Horizontal code blocks.">m_hblocks</a>(hblocks),
<a name="l00946"></a>00946             <a class="code" href="a00018.html#988369ff234454838f0a1c8d3be87742" title="Number of Vertical code blocks.">m_vblocks</a>(vblocks)
<a name="l00947"></a>00947             {}
<a name="l00948"></a>00948 
<a name="l00949"></a>00949         <span class="comment">// Gets</span>
<a name="l00951"></a><a class="code" href="a00018.html#39a962b40d22788f35a8c12c93c03d21">00951</a> <span class="comment"></span>        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00018.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="a00018.html#984c6c7086df0e7e2627f0aee95fed2e" title="Number of Horizontal code blocks.">m_hblocks</a>; }
<a name="l00953"></a><a class="code" href="a00018.html#d49dea723932fff96a70af12e3c6a613">00953</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00018.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="a00018.html#988369ff234454838f0a1c8d3be87742" title="Number of Vertical code blocks.">m_vblocks</a>; }
<a name="l00954"></a>00954         <span class="comment">// Sets</span>
<a name="l00956"></a><a class="code" href="a00018.html#5b89c956c9d6d80401ec920e0d5364d0">00956</a> <span class="comment"></span>        <span class="keywordtype">void</span> <a class="code" href="a00018.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="a00018.html#984c6c7086df0e7e2627f0aee95fed2e" title="Number of Horizontal code blocks.">m_hblocks</a> = hblocks; }
<a name="l00958"></a><a class="code" href="a00018.html#10fa8c05e4497c41f5d7f3f1dcd605a1">00958</a>         <span class="keywordtype">void</span> <a class="code" href="a00018.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="a00018.html#988369ff234454838f0a1c8d3be87742" title="Number of Vertical code blocks.">m_vblocks</a> = vblocks; }
<a name="l00959"></a>00959     <span class="keyword">private</span>:
<a name="l00961"></a><a class="code" href="a00018.html#984c6c7086df0e7e2627f0aee95fed2e">00961</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00018.html#984c6c7086df0e7e2627f0aee95fed2e" title="Number of Horizontal code blocks.">m_hblocks</a>;
<a name="l00963"></a><a class="code" href="a00018.html#988369ff234454838f0a1c8d3be87742">00963</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00018.html#988369ff234454838f0a1c8d3be87742" title="Number of Vertical code blocks.">m_vblocks</a>;
<a name="l00964"></a>00964     };
<a name="l00965"></a>00965 
<a name="l00967"></a><a class="code" href="a00114.html">00967</a>     <span class="keyword">class </span><a class="code" href="a00114.html" title="Structure to hold motion parameters when motion comp is used.">PicturePredParams</a>
<a name="l00968"></a>00968     {
<a name="l00969"></a>00969     <span class="keyword">public</span>:
<a name="l00970"></a><a class="code" href="a00114.html#38b461691c457782dc3c704f895fb87f">00970</a>         <a class="code" href="a00114.html#38b461691c457782dc3c704f895fb87f">PicturePredParams</a>():
<a name="l00971"></a>00971     <a class="code" href="a00114.html#4e03b3add6cfacefb5525a0341e08c10">m_lbparams</a>(3),
<a name="l00972"></a>00972         <a class="code" href="a00114.html#b0cac25b712a944dfee01cf38fc74e11">m_cbparams</a>(3) {}
<a name="l00973"></a>00973 
<a name="l00975"></a><a class="code" href="a00114.html#e2326f0e18d2a4a999aa36e4e75ca308">00975</a>         <span class="keywordtype">bool</span> <a class="code" href="a00114.html#e2326f0e18d2a4a999aa36e4e75ca308" 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="a00114.html#d18cdb71686be1383d6417016e97f519" title="Global motion fields.">m_use_global_motion</a>; }
<a name="l00976"></a>00976 
<a name="l00978"></a><a class="code" href="a00114.html#a6add8a869b20bc60846700c3c7098c6">00978</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00114.html#a6add8a869b20bc60846700c3c7098c6" title="Return the number of picture weight precision bits.">PictureWeightsBits</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00114.html#ab4caead29eb088a4849f9efb241639b" title="picture predicion parameters - precision">m_picture_weights_bits</a>; }
<a name="l00979"></a>00979 
<a name="l00981"></a><a class="code" href="a00114.html#b003f2df8732e18c98cc1832b5a04e45">00981</a>         <span class="keywordtype">int</span> <a class="code" href="a00114.html#b003f2df8732e18c98cc1832b5a04e45" title="Return the Ref1 weight.">Ref1Weight</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00114.html#cf9df59e9e33dbd9eb17622311234b99" title="picture predicion parameters - reference picture 1 weight">m_ref1_weight</a>; }
<a name="l00982"></a>00982 
<a name="l00984"></a><a class="code" href="a00114.html#cdebfe15c473a4cb13276ed9c200498d">00984</a>         <span class="keywordtype">int</span> <a class="code" href="a00114.html#cdebfe15c473a4cb13276ed9c200498d" title="Return the Ref2 weight.">Ref2Weight</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00114.html#591239ad3d19fc966d827ec7a3065fec" title="picture predicion parameters - reference picture 2 weight">m_ref2_weight</a>; }
<a name="l00985"></a>00985 
<a name="l00986"></a><a class="code" href="a00114.html#0fe527c2a8c12b835874c1391c21ef81">00986</a>         <span class="keywordtype">bool</span> <a class="code" href="a00114.html#0fe527c2a8c12b835874c1391c21ef81">CustomRefWeights</a>()
<a name="l00987"></a>00987         {
<a name="l00988"></a>00988             <span class="keywordflow">return</span> (<a class="code" href="a00114.html#ab4caead29eb088a4849f9efb241639b" title="picture predicion parameters - precision">m_picture_weights_bits</a> != 1 ||
<a name="l00989"></a>00989                     <a class="code" href="a00114.html#cf9df59e9e33dbd9eb17622311234b99" title="picture predicion parameters - reference picture 1 weight">m_ref1_weight</a> != 1 ||
<a name="l00990"></a>00990                     <a class="code" href="a00114.html#591239ad3d19fc966d827ec7a3065fec" title="picture predicion parameters - reference picture 2 weight">m_ref2_weight</a> != 1);
<a name="l00991"></a>00991         }
<a name="l00992"></a>00992 
<a name="l00994"></a><a class="code" href="a00114.html#6bc75c7d687780aa0bd37efe898f5c8a">00994</a>         <span class="keywordtype">int</span> <a class="code" href="a00114.html#6bc75c7d687780aa0bd37efe898f5c8a" title="Return the number of superblocks horizontally.">XNumSB</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00114.html#37f0e55bf0ff217b0e7be2bf71fb4f6d" title="The number of superblocks horizontally.">m_x_num_sb</a>;}
<a name="l00995"></a>00995 
<a name="l00997"></a><a class="code" href="a00114.html#fa2cdd67b4c6bbf098f9e32a515286af">00997</a>         <span class="keywordtype">int</span> <a class="code" href="a00114.html#fa2cdd67b4c6bbf098f9e32a515286af" title="Return the number of superblocks vertically.">YNumSB</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00114.html#2962e8d9147d730fa8b7a77f95c52eb0" title="The number of superblocks verticaly.">m_y_num_sb</a>;}
<a name="l00998"></a>00998 
<a name="l01000"></a><a class="code" href="a00114.html#0618ad2fa4122592ba58e4e81de66df9">01000</a>         <span class="keywordtype">int</span> <a class="code" href="a00114.html#0618ad2fa4122592ba58e4e81de66df9" title="Return the number of blocks horizontally.">XNumBlocks</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00114.html#c42181d33618bbb20914bb12fa9cd251" title="The number of blocks horizontally.">m_x_num_blocks</a>;}
<a name="l01001"></a>01001 
<a name="l01003"></a><a class="code" href="a00114.html#f369e6dd9f61771e429448696c489e35">01003</a>         <span class="keywordtype">int</span> <a class="code" href="a00114.html#f369e6dd9f61771e429448696c489e35" title="Returns the number of blocks vertically.">YNumBlocks</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00114.html#2312601296facd88949760a22cb5b280" title="The number of blocks vertically.">m_y_num_blocks</a>;}
<a name="l01004"></a>01004 
<a name="l01006"></a><a class="code" href="a00114.html#84e0d3088a6de9f1a8759e717e87354e">01006</a>         <span class="keyword">const</span> <a class="code" href="a00096.html" title="Parameters for overlapped block motion compensation.">OLBParams</a>&amp; <a class="code" href="a00114.html#84e0d3088a6de9f1a8759e717e87354e" 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="a00114.html#4e03b3add6cfacefb5525a0341e08c10">m_lbparams</a>[n];}
<a name="l01007"></a>01007 
<a name="l01009"></a><a class="code" href="a00114.html#cd9ac9f9733218f4c096df045f876a16">01009</a>         <span class="keyword">const</span> <a class="code" href="a00096.html" title="Parameters for overlapped block motion compensation.">OLBParams</a>&amp; <a class="code" href="a00114.html#cd9ac9f9733218f4c096df045f876a16" 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="a00114.html#b0cac25b712a944dfee01cf38fc74e11">m_cbparams</a>[n];}
<a name="l01010"></a>01010 
<a name="l01012"></a><a class="code" href="a00114.html#cd9d738446270d0a07bb5de3f2c86af1">01012</a>         <a class="code" href="a00172.html#73c509e14745c98e30772b6c4f8b6e1e">MVPrecisionType</a> <a class="code" href="a00114.html#cd9d738446270d0a07bb5de3f2c86af1" 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="a00114.html#b0281957ef7f65215dc5f3072fe1ca1c" title="The precision of motion vectors (number of accuracy bits eg 1=half-pel accuracy)...">m_mv_precision</a>; }
<a name="l01013"></a>01013 
<a name="l01015"></a><a class="code" href="a00114.html#37ee340c4d9e2f200b455ce946f2b592">01015</a>         <span class="keywordtype">void</span> <a class="code" href="a00114.html#37ee340c4d9e2f200b455ce946f2b592" title="Set how many SBs there are horizontally.">SetXNumSB</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> xn){<a class="code" href="a00114.html#37f0e55bf0ff217b0e7be2bf71fb4f6d" title="The number of superblocks horizontally.">m_x_num_sb</a>=xn;}
<a name="l01016"></a>01016 
<a name="l01018"></a><a class="code" href="a00114.html#5c7363a8c195042cb99bbc00b5801722">01018</a>         <span class="keywordtype">void</span> <a class="code" href="a00114.html#5c7363a8c195042cb99bbc00b5801722" title="Set how many SBs there are vertically.">SetYNumSB</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> yn){<a class="code" href="a00114.html#2962e8d9147d730fa8b7a77f95c52eb0" title="The number of superblocks verticaly.">m_y_num_sb</a>=yn;}
<a name="l01019"></a>01019 
<a name="l01021"></a><a class="code" href="a00114.html#acdc92679e51c992db505b15524cc1d2">01021</a>         <span class="keywordtype">void</span> <a class="code" href="a00114.html#acdc92679e51c992db505b15524cc1d2" 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="a00114.html#c42181d33618bbb20914bb12fa9cd251" title="The number of blocks horizontally.">m_x_num_blocks</a>=xn;}
<a name="l01022"></a>01022 
<a name="l01024"></a><a class="code" href="a00114.html#f6dd0fa311ee13309723daee3d80e4e7">01024</a>         <span class="keywordtype">void</span> <a class="code" href="a00114.html#f6dd0fa311ee13309723daee3d80e4e7" 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="a00114.html#2312601296facd88949760a22cb5b280" title="The number of blocks vertically.">m_y_num_blocks</a>=yn;}
<a name="l01025"></a>01025 
<a name="l01027"></a>01027         <span class="keywordtype">void</span> <a class="code" href="a00114.html#0b37f8c21acde573c8ad866c56eea66d" title="Set the block sizes for all SB splitting levels given these prototype block sizes...">SetBlockSizes</a>(<span class="keyword">const</span> <a class="code" href="a00096.html" title="Parameters for overlapped block motion compensation.">OLBParams</a>&amp; olbparams , <span class="keyword">const</span> <a class="code" href="a00172.html#4a6c51c10f2eb04abc7209db7caff39f">ChromaFormat</a> cformat);
<a name="l01028"></a>01028 
<a name="l01030"></a><a class="code" href="a00114.html#680c8b56351a884e0cd63fc08d75cd8a">01030</a>         <span class="keywordtype">void</span> <a class="code" href="a00114.html#680c8b56351a884e0cd63fc08d75cd8a" title="Set block level luma params.">SetLumaBlockParams</a>(<span class="keyword">const</span> <a class="code" href="a00096.html" title="Parameters for overlapped block motion compensation.">OLBParams</a>&amp; olbparams) {<a class="code" href="a00114.html#4e03b3add6cfacefb5525a0341e08c10">m_lbparams</a>[2] = olbparams;}
<a name="l01031"></a>01031 
<a name="l01033"></a><a class="code" href="a00114.html#331a8cbdf87f15c893d27be03de3b5a3">01033</a>         <span class="keywordtype">void</span> <a class="code" href="a00114.html#331a8cbdf87f15c893d27be03de3b5a3" title="Set the number of accuracy bits for motion vectors.">SetMVPrecision</a>(<span class="keyword">const</span> <a class="code" href="a00172.html#73c509e14745c98e30772b6c4f8b6e1e">MVPrecisionType</a> p)
<a name="l01034"></a>01034         {
<a name="l01035"></a>01035             <span class="comment">// Assert in debug mode. Maybe we should throw an exception???</span>
<a name="l01036"></a>01036             <a class="code" href="a00178.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="l01037"></a>01037             <a class="code" href="a00114.html#b0281957ef7f65215dc5f3072fe1ca1c" title="The precision of motion vectors (number of accuracy bits eg 1=half-pel accuracy)...">m_mv_precision</a> = p;
<a name="l01038"></a>01038         }
<a name="l01039"></a>01039 
<a name="l01040"></a><a class="code" href="a00114.html#5b215f2f603084b424d99ada2559dc82">01040</a>         <span class="keywordtype">void</span> <a class="code" href="a00114.html#331a8cbdf87f15c893d27be03de3b5a3" title="Set the number of accuracy bits for motion vectors.">SetMVPrecision</a>(<span class="keyword">const</span> <a class="code" href="a00172.html#73c509e14745c98e30772b6c4f8b6e1e">MVPrecisionType</a> p)<span class="keyword"> const</span>
<a name="l01041"></a>01041 <span class="keyword">        </span>{
<a name="l01042"></a>01042             <span class="comment">// Assert in debug mode. Maybe we should throw an exception???</span>
<a name="l01043"></a>01043             <a class="code" href="a00178.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="l01044"></a>01044             <a class="code" href="a00114.html#b0281957ef7f65215dc5f3072fe1ca1c" title="The precision of motion vectors (number of accuracy bits eg 1=half-pel accuracy)...">m_mv_precision</a> = p;
<a name="l01045"></a>01045         }
<a name="l01046"></a>01046 
<a name="l01048"></a><a class="code" href="a00114.html#ff9b5f2dbeb837e0a91eb954dda83134">01048</a>         <span class="keywordtype">void</span> <a class="code" href="a00114.html#ff9b5f2dbeb837e0a91eb954dda83134" title="Set the wavelet filter used for picture (de)coding.">SetUsingGlobalMotion</a>(<span class="keywordtype">bool</span> gm) { <a class="code" href="a00114.html#d18cdb71686be1383d6417016e97f519" title="Global motion fields.">m_use_global_motion</a>=gm; }
<a name="l01049"></a>01049 
<a name="l01051"></a><a class="code" href="a00114.html#1b2bf7aa60fbfed9b261bdf5a75da9f7">01051</a>         <span class="keywordtype">void</span> <a class="code" href="a00114.html#1b2bf7aa60fbfed9b261bdf5a75da9f7" title="Set the picture weight precision bits used for (de)coding.">SetPictureWeightsPrecision</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> wt_prec) { <a class="code" href="a00114.html#ab4caead29eb088a4849f9efb241639b" title="picture predicion parameters - precision">m_picture_weights_bits</a>=wt_prec; }
<a name="l01052"></a>01052 
<a name="l01054"></a><a class="code" href="a00114.html#b6cbd51962c41ff29f1965223d3d6029">01054</a>         <span class="keywordtype">void</span> <a class="code" href="a00114.html#b6cbd51962c41ff29f1965223d3d6029" title="Set the ref 1 picture weight.">SetRef1Weight</a>(<span class="keywordtype">int</span> wt) { <a class="code" href="a00114.html#cf9df59e9e33dbd9eb17622311234b99" title="picture predicion parameters - reference picture 1 weight">m_ref1_weight</a>=wt; }
<a name="l01055"></a>01055 
<a name="l01057"></a><a class="code" href="a00114.html#824e875d432b59af5ce233778f59e332">01057</a>         <span class="keywordtype">void</span> <a class="code" href="a00114.html#824e875d432b59af5ce233778f59e332" title="Set the ref 2 picture weight.">SetRef2Weight</a>(<span class="keywordtype">int</span> wt) { <a class="code" href="a00114.html#591239ad3d19fc966d827ec7a3065fec" title="picture predicion parameters - reference picture 2 weight">m_ref2_weight</a>=wt; }
<a name="l01058"></a>01058 
<a name="l01059"></a>01059     <span class="keyword">private</span>:
<a name="l01060"></a>01060 
<a name="l01062"></a><a class="code" href="a00114.html#37f0e55bf0ff217b0e7be2bf71fb4f6d">01062</a>         <span class="keywordtype">int</span> <a class="code" href="a00114.html#37f0e55bf0ff217b0e7be2bf71fb4f6d" title="The number of superblocks horizontally.">m_x_num_sb</a>;
<a name="l01063"></a>01063 
<a name="l01065"></a><a class="code" href="a00114.html#2962e8d9147d730fa8b7a77f95c52eb0">01065</a>         <span class="keywordtype">int</span> <a class="code" href="a00114.html#2962e8d9147d730fa8b7a77f95c52eb0" title="The number of superblocks verticaly.">m_y_num_sb</a>;
<a name="l01066"></a>01066 
<a name="l01068"></a><a class="code" href="a00114.html#c42181d33618bbb20914bb12fa9cd251">01068</a>         <span class="keywordtype">int</span> <a class="code" href="a00114.html#c42181d33618bbb20914bb12fa9cd251" title="The number of blocks horizontally.">m_x_num_blocks</a>;
<a name="l01069"></a>01069 
<a name="l01071"></a><a class="code" href="a00114.html#2312601296facd88949760a22cb5b280">01071</a>         <span class="keywordtype">int</span> <a class="code" href="a00114.html#2312601296facd88949760a22cb5b280" title="The number of blocks vertically.">m_y_num_blocks</a>;
<a name="l01072"></a>01072 
<a name="l01073"></a><a class="code" href="a00114.html#4e03b3add6cfacefb5525a0341e08c10">01073</a>         <a class="code" href="a00097.html">OneDArray&lt;OLBParams&gt;</a> <a class="code" href="a00114.html#4e03b3add6cfacefb5525a0341e08c10">m_lbparams</a>;
<a name="l01074"></a>01074 
<a name="l01075"></a><a class="code" href="a00114.html#b0cac25b712a944dfee01cf38fc74e11">01075</a>         <a class="code" href="a00097.html">OneDArray&lt;OLBParams&gt;</a> <a class="code" href="a00114.html#b0cac25b712a944dfee01cf38fc74e11">m_cbparams</a>;
<a name="l01076"></a>01076 
<a name="l01078"></a><a class="code" href="a00114.html#b0281957ef7f65215dc5f3072fe1ca1c">01078</a>         <span class="keyword">mutable</span> <a class="code" href="a00172.html#73c509e14745c98e30772b6c4f8b6e1e">MVPrecisionType</a> <a class="code" href="a00114.html#b0281957ef7f65215dc5f3072fe1ca1c" title="The precision of motion vectors (number of accuracy bits eg 1=half-pel accuracy)...">m_mv_precision</a>;
<a name="l01079"></a>01079 
<a name="l01081"></a><a class="code" href="a00114.html#ab4caead29eb088a4849f9efb241639b">01081</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00114.html#ab4caead29eb088a4849f9efb241639b" title="picture predicion parameters - precision">m_picture_weights_bits</a>;
<a name="l01082"></a>01082 
<a name="l01084"></a><a class="code" href="a00114.html#cf9df59e9e33dbd9eb17622311234b99">01084</a>         <span class="keywordtype">int</span> <a class="code" href="a00114.html#cf9df59e9e33dbd9eb17622311234b99" title="picture predicion parameters - reference picture 1 weight">m_ref1_weight</a>;
<a name="l01085"></a>01085 
<a name="l01087"></a><a class="code" href="a00114.html#591239ad3d19fc966d827ec7a3065fec">01087</a>         <span class="keywordtype">int</span> <a class="code" href="a00114.html#591239ad3d19fc966d827ec7a3065fec" title="picture predicion parameters - reference picture 2 weight">m_ref2_weight</a>;
<a name="l01088"></a>01088 
<a name="l01090"></a><a class="code" href="a00114.html#d18cdb71686be1383d6417016e97f519">01090</a>         <span class="keywordtype">bool</span> <a class="code" href="a00114.html#d18cdb71686be1383d6417016e97f519" title="Global motion fields.">m_use_global_motion</a>;
<a name="l01091"></a>01091 
<a name="l01092"></a>01092     };
<a name="l01093"></a>01093 
<a name="l01095"></a>01095 
<a name="l01098"></a><a class="code" href="a00019.html">01098</a>     <span class="keyword">class </span><a class="code" href="a00019.html" title="Parameters common to coder and decoder operation.">CodecParams</a>
<a name="l01099"></a>01099     {
<a name="l01100"></a>01100     <span class="keyword">public</span>:
<a name="l01101"></a>01101 
<a name="l01103"></a>01103         <a class="code" href="a00019.html#536db2ebe452c725fd8e91d120a9119c" title="Default constructor.">CodecParams</a> (<span class="keyword">const</span> <a class="code" href="a00172.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a>&amp; video_format = <a class="code" href="a00172.html#216a5d43d2a518325c84f100ed7735a55a3ea902cd1b9de9f720f66bba453c65">VIDEO_FORMAT_CUSTOM</a>,
<a name="l01104"></a>01104                       <a class="code" href="a00172.html#4f37629f775549c508f4c5625ae348b3">PictureType</a> ftype = <a class="code" href="a00172.html#4f37629f775549c508f4c5625ae348b3682660c6716ef5ba8f8d2d0b2e9a8fc2">INTRA_PICTURE</a>,
<a name="l01105"></a>01105                       <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> num_refs = 0,
<a name="l01106"></a>01106                       <span class="keywordtype">bool</span> set_defaults=<span class="keyword">true</span>);
<a name="l01107"></a>01107 
<a name="l01109"></a>01109         <span class="comment">//NB: Assume default copy constructor, assignment = and destructor//</span>
<a name="l01111"></a>01111 <span class="comment"></span>
<a name="l01112"></a>01112         <span class="comment">// Gets ...</span>
<a name="l01113"></a>01113 
<a name="l01115"></a>01115 
<a name="l01119"></a><a class="code" href="a00019.html#84f91c120e4a8984aee02fd1fd71b216">01119</a>         <span class="keywordtype">int</span> <a class="code" href="a00019.html#84f91c120e4a8984aee02fd1fd71b216" title="Returns the picture coding mode (independent of source format).">PictureCodingMode</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00019.html#b567d0a9ac5bf7fe2bc66d65e4ed6886" title="The picture coding mode.">m_pic_coding_mode</a>;}
<a name="l01120"></a>01120 
<a name="l01122"></a><a class="code" href="a00019.html#6548ebdf3a462f2dbf611b815b1d9295">01122</a>         <span class="keywordtype">bool</span> <a class="code" href="a00019.html#6548ebdf3a462f2dbf611b815b1d9295" title="Returns true if the pictures are being coded as fields (mode 1 or 3).">FieldCoding</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span>  (<a class="code" href="a00019.html#b567d0a9ac5bf7fe2bc66d65e4ed6886" title="The picture coding mode.">m_pic_coding_mode</a>==1); }
<a name="l01123"></a>01123 
<a name="l01125"></a><a class="code" href="a00019.html#7cd55eec72a67e5938c1eadca457fd28">01125</a>         <span class="keywordtype">bool</span> <a class="code" href="a00019.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="a00019.html#b364b1393e5f22ecea4256dc9e1c1d8b" title="True if interlaced and top field is first in temporal order.">m_topfieldfirst</a>;}
<a name="l01126"></a>01126 
<a name="l01128"></a><a class="code" href="a00019.html#f02e285ba979e43b7e4f3a314b0e9ff9">01128</a>         <span class="keywordtype">int</span> <a class="code" href="a00019.html#f02e285ba979e43b7e4f3a314b0e9ff9" title="Return the picture/field luma width.">Xl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00019.html#bc1a20f2716a0b6b766db7402afa22fb" title="The frame/field luma width.">m_xl</a>;}
<a name="l01129"></a>01129 
<a name="l01131"></a><a class="code" href="a00019.html#accae7c347aaa82d9e6053ad25f700ad">01131</a>         <span class="keywordtype">int</span> <a class="code" href="a00019.html#accae7c347aaa82d9e6053ad25f700ad" title="Return the picture/field luma height.">Yl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00019.html#427e2190c138b01e03b48fada70cb75f" title="The frame/field luma height.">m_yl</a>;}
<a name="l01132"></a>01132 
<a name="l01134"></a><a class="code" href="a00019.html#a87a690287b89425cb2bc8062bc08a79">01134</a>         <span class="keywordtype">int</span> <a class="code" href="a00019.html#a87a690287b89425cb2bc8062bc08a79" title="Return the picture/field chroma width.">ChromaXl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00019.html#3c9a90d305e43c4d12f4baeec30473ec" title="The frame/field chroma width.">m_cxl</a>;}
<a name="l01135"></a>01135 
<a name="l01137"></a><a class="code" href="a00019.html#cd3e16293e3fb50178d7cc39566b3c6b">01137</a>         <span class="keywordtype">int</span> <a class="code" href="a00019.html#cd3e16293e3fb50178d7cc39566b3c6b" title="Return the picture/field chroma height.">ChromaYl</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00019.html#a231116448bd6f00a56a3fc64b36ed74" title="The frame/field chroma height.">m_cyl</a>;}
<a name="l01138"></a>01138 
<a name="l01140"></a><a class="code" href="a00019.html#01efbdecdb976846286936b61ad6c5fa">01140</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00019.html#01efbdecdb976846286936b61ad6c5fa" title="Returns the luma depth.">LumaDepth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00019.html#1b8c4b68d83736273d344abf2f158d24" title="Luma depth - number of bits required for lumz.">m_luma_depth</a>; }
<a name="l01141"></a>01141 
<a name="l01143"></a><a class="code" href="a00019.html#d8f3a77272c71970840b3efe401c47de">01143</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00019.html#d8f3a77272c71970840b3efe401c47de" title="Returns the chroma depth.">ChromaDepth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00019.html#e4c3224a827680b77c897cabeefe64a1" title="chroma depth - number of bits required for luma">m_chroma_depth</a>; }
<a name="l01144"></a>01144 
<a name="l01146"></a><a class="code" href="a00019.html#169f013531aafcdad328ccdfd786bc0f">01146</a>         <span class="keywordtype">bool</span> <a class="code" href="a00019.html#169f013531aafcdad328ccdfd786bc0f" title="Return zero transform flag being used for picture (de)coding.">ZeroTransform</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00019.html#5925bc780d52cefa6327f5cc36a8353c" title="Zero transform flag.">m_zero_transform</a>; }
<a name="l01147"></a>01147 
<a name="l01149"></a><a class="code" href="a00019.html#60f2e5f682f06bde617066206c488036">01149</a>         <a class="code" href="a00172.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="code" href="a00019.html#60f2e5f682f06bde617066206c488036" title="Return the wavelet filter currently being used for picture (de)coding.">TransformFilter</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00019.html#13baf206bfae22c3f3ac40af7e37e62a" title="The wavelet filter being used.">m_wlt_filter</a>; }
<a name="l01150"></a>01150 
<a name="l01152"></a><a class="code" href="a00019.html#418406afc22c0ab2d5f55a3e13811d9c">01152</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00019.html#418406afc22c0ab2d5f55a3e13811d9c" title="Return the transform depth being used for picture (de)coding.">TransformDepth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00019.html#cd11e456494fab1addda7aef4a748007" title="Wavelet depth.">m_wlt_depth</a>; }
<a name="l01153"></a>01153 
<a name="l01155"></a><a class="code" href="a00019.html#144a8855ef615f9e7eaa03b6b9cae8af">01155</a>         <a class="code" href="a00172.html#c01e150ebe1e8dee39d5431ab23e8ec5">CodeBlockMode</a> <a class="code" href="a00019.html#144a8855ef615f9e7eaa03b6b9cae8af" title="Return multiple quantisers flag being used for picture (de)coding.">GetCodeBlockMode</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00019.html#523f45512277eb98eda9f50a57249583" title="Code block mode.">m_cb_mode</a>; }
<a name="l01156"></a>01156 
<a name="l01158"></a><a class="code" href="a00019.html#55e162b15813f8b84ba083a10e541b84">01158</a>         <span class="keywordtype">bool</span> <a class="code" href="a00019.html#55e162b15813f8b84ba083a10e541b84" title="Return the spatial partitioning flag being used for picture (de)coding.">SpatialPartition</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00019.html#a38cb06cbf6da70b8dd6a6cce1b91d0c" title="Spatial partitioning flag.">m_spatial_partition</a>; }
<a name="l01159"></a>01159 
<a name="l01161"></a>01161         <span class="keyword">const</span> <a class="code" href="a00018.html" title="Structure to hold code block sizes when spatial partitioning is used.">CodeBlocks</a> &amp;<a class="code" href="a00019.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="l01162"></a>01162 
<a name="l01164"></a><a class="code" href="a00019.html#5d73684addd447b10fff2dcee0832531">01164</a>         <a class="code" href="a00172.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> <a class="code" href="a00019.html#5d73684addd447b10fff2dcee0832531" title="Return the video format currently being used for picture (de)coding.">GetVideoFormat</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="a00019.html#b797cf86636a379fe3cf335e07025b7c" title="The video format being used.">m_video_format</a>; }
<a name="l01165"></a>01165 
<a name="l01167"></a><a class="code" href="a00019.html#c649f3f8d993633e70c808240a0d234d">01167</a>     <a class="code" href="a00114.html" title="Structure to hold motion parameters when motion comp is used.">PicturePredParams</a>&amp; <a class="code" href="a00019.html#c649f3f8d993633e70c808240a0d234d" title="Return the picture prediction params.">GetPicPredParams</a>(){<span class="keywordflow">return</span> <a class="code" href="a00019.html#166f2a241b0186a827992e41f34449e5" title="The picture prediction parameters.">m_picpredparams</a>;}
<a name="l01168"></a>01168 
<a name="l01170"></a><a class="code" href="a00019.html#ccc4d2ef1d6b1c83f06989d810c334f5">01170</a>     <span class="keyword">const</span> <a class="code" href="a00114.html" title="Structure to hold motion parameters when motion comp is used.">PicturePredParams</a>&amp; <a class="code" href="a00019.html#ccc4d2ef1d6b1c83f06989d810c334f5" title="Return the picture prediction params.">GetPicPredParams</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00019.html#166f2a241b0186a827992e41f34449e5" title="The picture prediction parameters.">m_picpredparams</a>;}
<a name="l01171"></a>01171 
<a name="l01172"></a>01172        <span class="comment">// ... and Sets</span>
<a name="l01174"></a><a class="code" href="a00019.html#8ff51500403dd9ed61a1722cd05a1ccd">01174</a> <span class="comment"></span>        <span class="keywordtype">void</span> <a class="code" href="a00019.html#8ff51500403dd9ed61a1722cd05a1ccd" title="Sets whether input is coded as fields or quincunxially.">SetPictureCodingMode</a>(<span class="keywordtype">int</span> pic_coding){<a class="code" href="a00019.html#b567d0a9ac5bf7fe2bc66d65e4ed6886" title="The picture coding mode.">m_pic_coding_mode</a>=pic_coding;}
<a name="l01175"></a>01175 
<a name="l01177"></a><a class="code" href="a00019.html#215666680ce387cfc5236bad0072b721">01177</a>         <span class="keywordtype">void</span> <a class="code" href="a00019.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="a00019.html#b364b1393e5f22ecea4256dc9e1c1d8b" title="True if interlaced and top field is first in temporal order.">m_topfieldfirst</a>=topf;}
<a name="l01178"></a>01178 
<a name="l01180"></a><a class="code" href="a00019.html#5e81d255a88cc5adaa8bcd6bc64b1215">01180</a>         <span class="keywordtype">void</span> <a class="code" href="a00019.html#5e81d255a88cc5adaa8bcd6bc64b1215" title="Set the picture/field luma width.">SetXl</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> x){<a class="code" href="a00019.html#bc1a20f2716a0b6b766db7402afa22fb" title="The frame/field luma width.">m_xl</a>=x;}
<a name="l01181"></a>01181 
<a name="l01183"></a><a class="code" href="a00019.html#72ca3d0569efcd213db88623589bcd67">01183</a>         <span class="keywordtype">void</span> <a class="code" href="a00019.html#72ca3d0569efcd213db88623589bcd67" title="Set the picture/field luma height.">SetYl</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> y){<a class="code" href="a00019.html#427e2190c138b01e03b48fada70cb75f" title="The frame/field luma height.">m_yl</a>=y;}
<a name="l01184"></a>01184 
<a name="l01186"></a><a class="code" href="a00019.html#2b05091d89e2d6bce5be08fefa879f20">01186</a>         <span class="keywordtype">void</span> <a class="code" href="a00019.html#2b05091d89e2d6bce5be08fefa879f20" title="Set the frame/field chroma width.">SetChromaXl</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> x){<a class="code" href="a00019.html#3c9a90d305e43c4d12f4baeec30473ec" title="The frame/field chroma width.">m_cxl</a>=x;}
<a name="l01187"></a>01187 
<a name="l01189"></a><a class="code" href="a00019.html#53d7cce9a7c7f0a805e471545b848d3c">01189</a>         <span class="keywordtype">void</span> <a class="code" href="a00019.html#53d7cce9a7c7f0a805e471545b848d3c" title="Set the frame/field chroma height.">SetChromaYl</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> y){<a class="code" href="a00019.html#a231116448bd6f00a56a3fc64b36ed74" title="The frame/field chroma height.">m_cyl</a>=y;}
<a name="l01190"></a>01190 
<a name="l01192"></a><a class="code" href="a00019.html#a536d6853b212d5a0465176e9d3495d1">01192</a>         <span class="keywordtype">void</span> <a class="code" href="a00019.html#a536d6853b212d5a0465176e9d3495d1" title="Set Luma Depth.">SetLumaDepth</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> luma_depth) { <a class="code" href="a00019.html#1b8c4b68d83736273d344abf2f158d24" title="Luma depth - number of bits required for lumz.">m_luma_depth</a> = luma_depth; }
<a name="l01193"></a>01193 
<a name="l01195"></a><a class="code" href="a00019.html#5361228a4952e2d800ea52b821abecf2">01195</a>         <span class="keywordtype">void</span> <a class="code" href="a00019.html#5361228a4952e2d800ea52b821abecf2" title="Set Chroma Depth.">SetChromaDepth</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> chroma_depth) { <a class="code" href="a00019.html#e4c3224a827680b77c897cabeefe64a1" title="chroma depth - number of bits required for luma">m_chroma_depth</a> = chroma_depth; }
<a name="l01196"></a>01196 
<a name="l01198"></a><a class="code" href="a00019.html#a05f5bd27efebebbb0e45f829d2f9eda">01198</a>         <span class="keywordtype">void</span> <a class="code" href="a00019.html#a05f5bd27efebebbb0e45f829d2f9eda" title="Set the zero transform flag being used for picture (de)coding.">SetZeroTransform</a>(<span class="keywordtype">bool</span> zero_transform)  { <a class="code" href="a00019.html#5925bc780d52cefa6327f5cc36a8353c" title="Zero transform flag.">m_zero_transform</a> = zero_transform; }
<a name="l01199"></a>01199 
<a name="l01201"></a><a class="code" href="a00019.html#5f311ed8615c426f492b96b32702e250">01201</a>         <span class="keywordtype">void</span> <a class="code" href="a00019.html#5f311ed8615c426f492b96b32702e250" title="Set the wavelet filter used for picture (de)coding.">SetTransformFilter</a>(<span class="keyword">const</span> <a class="code" href="a00172.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> wf) { <a class="code" href="a00019.html#13baf206bfae22c3f3ac40af7e37e62a" title="The wavelet filter being used.">m_wlt_filter</a>=wf; }
<a name="l01202"></a>01202 
<a name="l01204"></a>01204         <span class="keywordtype">void</span> <a class="code" href="a00019.html#5f311ed8615c426f492b96b32702e250" title="Set the wavelet filter used for picture (de)coding.">SetTransformFilter</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> wf_idx);
<a name="l01205"></a>01205 
<a name="l01207"></a>01207         <span class="keywordtype">void</span> <a class="code" href="a00019.html#c0685bfbd7d15976b5efcbaf4e02d071" title="Set the transform depth used for picture (de)coding and allocate for the code blocks...">SetTransformDepth</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> wd);
<a name="l01208"></a>01208 
<a name="l01210"></a>01210         <span class="keywordtype">void</span> <a class="code" href="a00019.html#71eb9f2d3a5e3ec45c3e8cbd9b7214e5" title="Set the multiple quantisers flag usedto picture (de)coding.">SetCodeBlockMode</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cb_mode);
<a name="l01211"></a>01211 
<a name="l01213"></a><a class="code" href="a00019.html#a27f86a19529c367206707cb6c3ebaf4">01213</a>         <span class="keywordtype">void</span> <a class="code" href="a00019.html#a27f86a19529c367206707cb6c3ebaf4" title="Set the spatial partition flag usedto picture (de)coding.">SetSpatialPartition</a>(<span class="keywordtype">bool</span> spatial_partition) { <a class="code" href="a00019.html#a38cb06cbf6da70b8dd6a6cce1b91d0c" title="Spatial partitioning flag.">m_spatial_partition</a>=spatial_partition; }
<a name="l01214"></a>01214 
<a name="l01216"></a>01216         <span class="keywordtype">void</span>  <a class="code" href="a00019.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="l01217"></a>01217 
<a name="l01219"></a><a class="code" href="a00019.html#58ca365f4740bcb7d37f50ccf454079d">01219</a>         <span class="keywordtype">void</span> <a class="code" href="a00019.html#58ca365f4740bcb7d37f50ccf454079d" title="Set the video format used for picture (de)coding.">SetVideoFormat</a>(<span class="keyword">const</span> <a class="code" href="a00172.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> vd) { <a class="code" href="a00019.html#b797cf86636a379fe3cf335e07025b7c" title="The video format being used.">m_video_format</a>=vd; }
<a name="l01220"></a>01220 
<a name="l01221"></a>01221    <span class="keyword">protected</span>:
<a name="l01223"></a>01223         <a class="code" href="a00172.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="code" href="a00019.html#60f2e5f682f06bde617066206c488036" title="Return the wavelet filter currently being used for picture (de)coding.">TransformFilter</a> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> wf_idx);
<a name="l01224"></a>01224     <span class="keyword">private</span>:
<a name="l01225"></a>01225 
<a name="l01227"></a><a class="code" href="a00019.html#166f2a241b0186a827992e41f34449e5">01227</a>     <a class="code" href="a00114.html" title="Structure to hold motion parameters when motion comp is used.">PicturePredParams</a> <a class="code" href="a00019.html#166f2a241b0186a827992e41f34449e5" title="The picture prediction parameters.">m_picpredparams</a>;
<a name="l01228"></a>01228 
<a name="l01230"></a><a class="code" href="a00019.html#b567d0a9ac5bf7fe2bc66d65e4ed6886">01230</a>         <span class="keywordtype">int</span> <a class="code" href="a00019.html#b567d0a9ac5bf7fe2bc66d65e4ed6886" title="The picture coding mode.">m_pic_coding_mode</a>;
<a name="l01231"></a>01231 
<a name="l01233"></a><a class="code" href="a00019.html#b364b1393e5f22ecea4256dc9e1c1d8b">01233</a>         <span class="keywordtype">bool</span> <a class="code" href="a00019.html#b364b1393e5f22ecea4256dc9e1c1d8b" title="True if interlaced and top field is first in temporal order.">m_topfieldfirst</a>;
<a name="l01234"></a>01234 
<a name="l01236"></a><a class="code" href="a00019.html#bc1a20f2716a0b6b766db7402afa22fb">01236</a>         <span class="keywordtype">int</span> <a class="code" href="a00019.html#bc1a20f2716a0b6b766db7402afa22fb" title="The frame/field luma width.">m_xl</a>;
<a name="l01237"></a>01237 
<a name="l01239"></a><a class="code" href="a00019.html#427e2190c138b01e03b48fada70cb75f">01239</a>         <span class="keywordtype">int</span> <a class="code" href="a00019.html#427e2190c138b01e03b48fada70cb75f" title="The frame/field luma height.">m_yl</a>;
<a name="l01240"></a>01240 
<a name="l01242"></a><a class="code" href="a00019.html#3c9a90d305e43c4d12f4baeec30473ec">01242</a>         <span class="keywordtype">int</span> <a class="code" href="a00019.html#3c9a90d305e43c4d12f4baeec30473ec" title="The frame/field chroma width.">m_cxl</a>;
<a name="l01243"></a>01243 
<a name="l01245"></a><a class="code" href="a00019.html#a231116448bd6f00a56a3fc64b36ed74">01245</a>         <span class="keywordtype">int</span> <a class="code" href="a00019.html#a231116448bd6f00a56a3fc64b36ed74" title="The frame/field chroma height.">m_cyl</a>;
<a name="l01246"></a>01246 
<a name="l01248"></a><a class="code" href="a00019.html#1b8c4b68d83736273d344abf2f158d24">01248</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00019.html#1b8c4b68d83736273d344abf2f158d24" title="Luma depth - number of bits required for lumz.">m_luma_depth</a>;
<a name="l01249"></a>01249 
<a name="l01251"></a><a class="code" href="a00019.html#e4c3224a827680b77c897cabeefe64a1">01251</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00019.html#e4c3224a827680b77c897cabeefe64a1" title="chroma depth - number of bits required for luma">m_chroma_depth</a>;
<a name="l01252"></a>01252 
<a name="l01254"></a><a class="code" href="a00019.html#b797cf86636a379fe3cf335e07025b7c">01254</a>         <a class="code" href="a00172.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> <a class="code" href="a00019.html#b797cf86636a379fe3cf335e07025b7c" title="The video format being used.">m_video_format</a>;
<a name="l01255"></a>01255 
<a name="l01257"></a><a class="code" href="a00019.html#5925bc780d52cefa6327f5cc36a8353c">01257</a>         <span class="keywordtype">bool</span> <a class="code" href="a00019.html#5925bc780d52cefa6327f5cc36a8353c" title="Zero transform flag.">m_zero_transform</a>;
<a name="l01258"></a>01258 
<a name="l01260"></a><a class="code" href="a00019.html#13baf206bfae22c3f3ac40af7e37e62a">01260</a>         <a class="code" href="a00172.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="code" href="a00019.html#13baf206bfae22c3f3ac40af7e37e62a" title="The wavelet filter being used.">m_wlt_filter</a>;
<a name="l01261"></a>01261 
<a name="l01263"></a><a class="code" href="a00019.html#cd11e456494fab1addda7aef4a748007">01263</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00019.html#cd11e456494fab1addda7aef4a748007" title="Wavelet depth.">m_wlt_depth</a>;
<a name="l01264"></a>01264 
<a name="l01266"></a><a class="code" href="a00019.html#523f45512277eb98eda9f50a57249583">01266</a>         <a class="code" href="a00172.html#c01e150ebe1e8dee39d5431ab23e8ec5">CodeBlockMode</a> <a class="code" href="a00019.html#523f45512277eb98eda9f50a57249583" title="Code block mode.">m_cb_mode</a>;
<a name="l01267"></a>01267 
<a name="l01269"></a><a class="code" href="a00019.html#a38cb06cbf6da70b8dd6a6cce1b91d0c">01269</a>         <span class="keywordtype">bool</span> <a class="code" href="a00019.html#a38cb06cbf6da70b8dd6a6cce1b91d0c" title="Spatial partitioning flag.">m_spatial_partition</a>;
<a name="l01270"></a>01270 
<a name="l01272"></a><a class="code" href="a00019.html#3b2e6bfe80ff844eb1341a08b8e0de86">01272</a>         <a class="code" href="a00097.html">OneDArray&lt;CodeBlocks&gt;</a> <a class="code" href="a00019.html#3b2e6bfe80ff844eb1341a08b8e0de86" title="Code block array. Number of entries is m_wlt_depth+1.">m_cb</a>;
<a name="l01273"></a>01273     };
<a name="l01274"></a>01274 
<a name="l01276"></a>01276 
<a name="l01279"></a><a class="code" href="a00063.html">01279</a>     <span class="keyword">class </span><a class="code" href="a00063.html" title="Parameters for the encoding process.">EncoderParams</a>: <span class="keyword">public</span> <a class="code" href="a00019.html" title="Parameters common to coder and decoder operation.">CodecParams</a>
<a name="l01280"></a>01280     {
<a name="l01281"></a>01281         <span class="comment">//codec params plus parameters relating solely to the operation of the encoder</span>
<a name="l01282"></a>01282 
<a name="l01283"></a>01283     <span class="keyword">public</span>:
<a name="l01285"></a>01285         <a class="code" href="a00063.html#337ad12eb97505be6e126b51fe057ee1" title="Default constructor.">EncoderParams</a>(<span class="keyword">const</span> <a class="code" href="a00172.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a>&amp; video_format,
<a name="l01286"></a>01286                       <a class="code" href="a00172.html#4f37629f775549c508f4c5625ae348b3">PictureType</a> ftype = <a class="code" href="a00172.html#4f37629f775549c508f4c5625ae348b31a413d67ee484ab6d888997e71a13fc4">INTER_PICTURE</a>,
<a name="l01287"></a>01287                       <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> num_refs = 2,
<a name="l01288"></a>01288                       <span class="keywordtype">bool</span> set_defaults=<span class="keyword">true</span>);
<a name="l01289"></a>01289 
<a name="l01291"></a>01291             <span class="comment">//NB: Assume default copy constructor, assignment = and destructor//</span>
<a name="l01292"></a>01292             <span class="comment">//This means pointers are copied, not the objects they point to.////</span>
<a name="l01294"></a>01294 <span class="comment"></span>
<a name="l01295"></a>01295          <span class="comment">// Gets ...</span>
<a name="l01296"></a>01296 
<a name="l01297"></a>01297 
<a name="l01299"></a><a class="code" href="a00063.html#f05aaf221137601466030058bc46d341">01299</a>         <span class="keywordtype">bool</span> <a class="code" href="a00063.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="a00063.html#f816f8f808978947246da6c527b5b786" title="Code/decode with commentary if true.">m_verbose</a>;}
<a name="l01300"></a>01300 
<a name="l01302"></a><a class="code" href="a00063.html#ed45cc9ce861a762e5a1510d18b81d1c">01302</a>         <span class="keywordtype">bool</span> <a class="code" href="a00063.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="a00063.html#f5a68db5bdc43b968b72b0b3ff062564" title="Flag indicating we&amp;#39;re doing local decoding.">m_loc_decode</a>;}
<a name="l01303"></a>01303 
<a name="l01305"></a><a class="code" href="a00063.html#122a0b100d62957694410295c7aa6fae">01305</a>         <span class="keywordtype">bool</span> <a class="code" href="a00063.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="a00063.html#837aadea4b7c11c424febb2c30a13b5c" title="A flag indicating we&amp;#39;re doing lossless coding.">m_lossless</a>;}
<a name="l01306"></a>01306 
<a name="l01308"></a><a class="code" href="a00063.html#12630ebd66238f4fb477af94b03a2236">01308</a>         <span class="keywordtype">bool</span> <a class="code" href="a00063.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="a00063.html#580fed8a15aaf7d308645f1cf7829ea9" title="A flag indicating whether we&amp;#39;re doing full-search block matching.">m_full_search</a>; }
<a name="l01309"></a>01309 
<a name="l01311"></a><a class="code" href="a00063.html#96af28ab894b2c231d04b113d693eb68">01311</a>         <span class="keywordtype">int</span> <a class="code" href="a00063.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="a00063.html#a867ff187fdac0e567c6929a79bf3cf3" title="The horizontal range for full-search block matching.">m_x_range_me</a>;}
<a name="l01312"></a>01312 
<a name="l01314"></a><a class="code" href="a00063.html#00c31958567ca92f724441060f5fb5be">01314</a>         <span class="keywordtype">int</span> <a class="code" href="a00063.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="a00063.html#b6a2877aff7d91ce828c67af3f7cc7d5" title="The vertical range for full-search block matching.">m_y_range_me</a>;}
<a name="l01315"></a>01315 
<a name="l01317"></a><a class="code" href="a00063.html#e91fde426272079f9b1f2a5f1dd9c91d">01317</a>         <span class="keywordtype">bool</span> <a class="code" href="a00063.html#e91fde426272079f9b1f2a5f1dd9c91d" title="Get whether we&amp;#39;re doing combined component motion estimation.">CombinedME</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00063.html#d2555e86bbc080dbab53ada1142a8f40" title="A flag indicating whether we&amp;#39;re doing combined component motion estimation.">m_combined_me</a>; }
<a name="l01318"></a>01318 
<a name="l01320"></a><a class="code" href="a00063.html#071957f329c44c4309f3ac049eb1fe9d">01320</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.html#071957f329c44c4309f3ac049eb1fe9d" title="Get the quality factor.">Qf</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00063.html#d9f2137abb239359849390e8ab271590" title="Quality factor.">m_qf</a>;}
<a name="l01321"></a>01321 
<a name="l01323"></a>01323 
<a name="l01328"></a><a class="code" href="a00063.html#a547a1f2caa8e27fa1b2d6fb5389313c">01328</a>         <span class="keywordtype">int</span> <a class="code" href="a00063.html#a547a1f2caa8e27fa1b2d6fb5389313c" title="Return the nominal number of L1 pictures before the next I picture.">NumL1</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00063.html#3fa8fc7ea413fac9657058292ab6efe2" title="Number of L1 pictures before next I picture.">m_num_L1</a>;}
<a name="l01329"></a>01329 
<a name="l01331"></a><a class="code" href="a00063.html#a064d835d76a9ee2bba493df91955742">01331</a>         <span class="keywordtype">int</span> <a class="code" href="a00063.html#a064d835d76a9ee2bba493df91955742" title="Return the separation between L1 pictures (and between L1 and I pictures).">L1Sep</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00063.html#b7aa4848a21640e4ab592e75690cc4d4" title="Separation between L1 pictures.">m_L1_sep</a>;}
<a name="l01332"></a>01332 
<a name="l01334"></a><a class="code" href="a00063.html#97e7e72588060114d98f0f837694241e">01334</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.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="a00063.html#f8c511ead922e1fd7bd477164d0813a2" title="factor for weighting U component quantisation errors">m_ufactor</a>;}
<a name="l01335"></a>01335 
<a name="l01337"></a><a class="code" href="a00063.html#5eca76b871908ec8cce60f55b01643fd">01337</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.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="a00063.html#a673881347efd1d5780f7dd1b2e87250" title="factor for weighting V component quantisation errors">m_vfactor</a>;}
<a name="l01338"></a>01338 
<a name="l01340"></a><a class="code" href="a00063.html#545a73d467e9c6679cf470a825653b6a">01340</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.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="a00063.html#e40736003477dbd235f2d51a32d4de8e" title="Cycles per degree assumed for viewing the video.">m_cpd</a>;}
<a name="l01341"></a>01341 
<a name="l01343"></a><a class="code" href="a00063.html#def51dcbd7af39b75e336d88feb4390c">01343</a>         <a class="code" href="a00172.html#6f1cf42c54ea112b7d140127834ea43d">PrefilterType</a> <a class="code" href="a00063.html#def51dcbd7af39b75e336d88feb4390c" title="Return what prefiltering is in place.">Prefilter</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00063.html#b5e42352707e9ef2d8ee2a4587bcdbcc" title="Indicator for prefiltering.">m_prefilter</a>;}
<a name="l01344"></a>01344 
<a name="l01346"></a><a class="code" href="a00063.html#bb8ff74170c78615411c826b97eec611">01346</a>         <span class="keywordtype">int</span> <a class="code" href="a00063.html#bb8ff74170c78615411c826b97eec611" title="Return the prefiltering strength.">PrefilterStrength</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00063.html#c66e6291aa1cf25977e973678372f2f5" title="Prefiltering strength.">m_prefilter_strength</a>;}
<a name="l01347"></a>01347 
<a name="l01349"></a><a class="code" href="a00063.html#df6479dcd94ddeecc8994b0bff9c2f99">01349</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.html#df6479dcd94ddeecc8994b0bff9c2f99" title="Return the Lagrangian parameter to be used for I pictures.">ILambda</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00063.html#7b57e767faa0a4be785d85689f5d8cfe" title="Lagrangian parameter for Intra picture coding.">m_I_lambda</a>;}
<a name="l01350"></a>01350 
<a name="l01352"></a><a class="code" href="a00063.html#7d72ddd5270b55927c32cf8ef8739ec3">01352</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.html#7d72ddd5270b55927c32cf8ef8739ec3" title="Return the Lagrangian parameter to be used for L1 pictures.">L1Lambda</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00063.html#57214e4f5257248e82b5600578afe51c" title="Lagrangian parameter for L1 picture coding.">m_L1_lambda</a>;}
<a name="l01353"></a>01353 
<a name="l01355"></a><a class="code" href="a00063.html#8069d1f372a3509246c1c9789fd4f1c9">01355</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.html#8069d1f372a3509246c1c9789fd4f1c9" title="Return the Lagrangian parameter to be used for L2 pictures.">L2Lambda</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00063.html#730ccecd6484362247fe2c9474c179c0" title="Lagrangian parameter for L2 picture coding.">m_L2_lambda</a>;}
<a name="l01356"></a>01356 
<a name="l01358"></a><a class="code" href="a00063.html#6c4d0037fdca9e61169a10b10c3c913d">01358</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.html#6c4d0037fdca9e61169a10b10c3c913d" title="Return the Lagrangian ME parameter to be used for L1 pictures.">L1MELambda</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00063.html#d6cf2f25be1d143690816640965d4546" title="Lagrangian param for L1 motion estimation.">m_L1_me_lambda</a>;}
<a name="l01359"></a>01359 
<a name="l01361"></a><a class="code" href="a00063.html#3d603b8e803c018236b87df6ccba0706">01361</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.html#3d603b8e803c018236b87df6ccba0706" title="Return the Lagrangian ME parameter to be used for L2 pictures.">L2MELambda</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00063.html#458f5e347c3f37e2b54df45836d0c9ed" title="Lagrangian param for L2 motion estimation.">m_L2_me_lambda</a>;}
<a name="l01362"></a>01362 
<a name="l01364"></a>01364         <span class="keywordtype">int</span> <a class="code" href="a00063.html#6041bfe0d74158eb52d9bb368a1de268" title="Return the size of the GOP.">GOPLength</a>() <span class="keyword">const</span>;
<a name="l01365"></a>01365 
<a name="l01367"></a><a class="code" href="a00063.html#7e2f0be95312fcac3fbd744fe5ac9111">01367</a>         <span class="keywordtype">char</span> * <a class="code" href="a00063.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="a00063.html#6dae6ce23a776dc54437e4748282ad72" title="Output file path.">m_output_path</a>.c_str();}
<a name="l01368"></a>01368 
<a name="l01370"></a><a class="code" href="a00063.html#41655056b5a4f60d3b422632617a9578">01370</a>         <span class="keyword">const</span> <a class="code" href="a00068.html" title="A class used for correcting estimates of entropy.">EntropyCorrector</a>&amp; <a class="code" href="a00063.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="a00063.html#40d302f4d2ac0b78fdbada4e09b7432e" title="Correction factors for quantiser selection.">m_ent_correct</a>;}
<a name="l01371"></a>01371 
<a name="l01373"></a><a class="code" href="a00063.html#94e7b16c8895d5d42161af40287ba59e">01373</a>         <a class="code" href="a00068.html" title="A class used for correcting estimates of entropy.">EntropyCorrector</a>&amp; <a class="code" href="a00063.html#94e7b16c8895d5d42161af40287ba59e" title="Return a reference to the entropy factors - we need to be able to change the values...">EntropyFactors</a>() {<span class="keywordflow">return</span> *<a class="code" href="a00063.html#40d302f4d2ac0b78fdbada4e09b7432e" title="Correction factors for quantiser selection.">m_ent_correct</a>;}
<a name="l01374"></a>01374 
<a name="l01376"></a><a class="code" href="a00063.html#c06efc9733de8a4b32e56b6fa759e05a">01376</a>         <a class="code" href="a00172.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="code" href="a00063.html#c06efc9733de8a4b32e56b6fa759e05a" title="Return the Wavelet filter to be used for intra pictures.">IntraTransformFilter</a>() { <span class="keywordflow">return</span> <a class="code" href="a00063.html#e9af357dc58148a0ad980610b2be139f" title="Wavelet filter for Intra pictures.">m_intra_wltfilter</a>; }
<a name="l01377"></a>01377 
<a name="l01379"></a><a class="code" href="a00063.html#e9790025a93c3e0ac8f52181bca77862">01379</a>         <a class="code" href="a00172.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="code" href="a00063.html#e9790025a93c3e0ac8f52181bca77862" title="Return the Wavelet filter to be used for Inter pictures.">InterTransformFilter</a>() { <span class="keywordflow">return</span> <a class="code" href="a00063.html#512f21be5b9043db03e0e302993b4083" title="Wavelet filter for Inter pictures.">m_inter_wltfilter</a>; }
<a name="l01380"></a>01380 
<a name="l01382"></a><a class="code" href="a00063.html#6f889061cb794c7a535ca67c8f873ac9">01382</a>         <span class="keywordtype">int</span> <a class="code" href="a00063.html#6f889061cb794c7a535ca67c8f873ac9" title="Return the Target Bit Rate in kbps.">TargetRate</a>() {<span class="keywordflow">return</span> <a class="code" href="a00063.html#dfc3b69d1d60d20680a8918f9ce0ea68" title="Target bit rate.">m_target_rate</a>;}
<a name="l01383"></a>01383 
<a name="l01385"></a><a class="code" href="a00063.html#9c9f86d9a9023317e5318ec16e51101f">01385</a>         <span class="keywordtype">bool</span> <a class="code" href="a00063.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="a00063.html#1086f35a3984eec9b394fb0a75464b30" title="Arithmetic coding flag.">m_using_ac</a>;}
<a name="l01386"></a>01386 
<a name="l01387"></a>01387         <span class="comment">// ... and Sets</span>
<a name="l01388"></a>01388 
<a name="l01390"></a><a class="code" href="a00063.html#002033a82b0960f8ba7fb931cd8902e0">01390</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.html#002033a82b0960f8ba7fb931cd8902e0" title="Sets verbosity on or off.">SetVerbose</a>(<span class="keywordtype">bool</span> v){<a class="code" href="a00063.html#f816f8f808978947246da6c527b5b786" title="Code/decode with commentary if true.">m_verbose</a>=v;}
<a name="l01391"></a>01391 
<a name="l01393"></a><a class="code" href="a00063.html#b02c6bcbacaf67419d2e4c134e04a09b">01393</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.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="a00063.html#f5a68db5bdc43b968b72b0b3ff062564" title="Flag indicating we&amp;#39;re doing local decoding.">m_loc_decode</a>=decode;}
<a name="l01394"></a>01394 
<a name="l01396"></a><a class="code" href="a00063.html#16d8b48462edbccd46350c200fbc8ffd">01396</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.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="a00063.html#837aadea4b7c11c424febb2c30a13b5c" title="A flag indicating we&amp;#39;re doing lossless coding.">m_lossless</a> = l;}
<a name="l01397"></a>01397 
<a name="l01399"></a><a class="code" href="a00063.html#d6b94c8adac00eac9ef98cb8d6cdfbd1">01399</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.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="a00063.html#580fed8a15aaf7d308645f1cf7829ea9" title="A flag indicating whether we&amp;#39;re doing full-search block matching.">m_full_search</a> = fs;}
<a name="l01400"></a>01400 
<a name="l01402"></a><a class="code" href="a00063.html#12dab2e5ab9ee3c79521a93168aa8110">01402</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.html#12dab2e5ab9ee3c79521a93168aa8110" title="Set whether we&amp;#39;re doing combined component motion estimation.">SetCombinedME</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> cme){<a class="code" href="a00063.html#d2555e86bbc080dbab53ada1142a8f40" title="A flag indicating whether we&amp;#39;re doing combined component motion estimation.">m_combined_me</a> = cme;}
<a name="l01403"></a>01403 
<a name="l01405"></a><a class="code" href="a00063.html#4fe43f39177b1d7f532a227b59028989">01405</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.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="a00063.html#a867ff187fdac0e567c6929a79bf3cf3" title="The horizontal range for full-search block matching.">m_x_range_me</a> = xr;}
<a name="l01406"></a>01406 
<a name="l01408"></a><a class="code" href="a00063.html#021e715dbe513c1d3165122d1ee2081c">01408</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.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="a00063.html#b6a2877aff7d91ce828c67af3f7cc7d5" title="The vertical range for full-search block matching.">m_y_range_me</a> = yr;}
<a name="l01409"></a>01409 
<a name="l01411"></a><a class="code" href="a00063.html#2a51b2804fd4b85a63fdec51b74968d8">01411</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.html#2a51b2804fd4b85a63fdec51b74968d8" title="Set the quality factor.">SetQf</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> qfac){ <a class="code" href="a00063.html#d9f2137abb239359849390e8ab271590" title="Quality factor.">m_qf</a>=qfac; <a class="code" href="a00063.html#d9d8f214430384e0c8de53010decd1ff" title="Calculate the Lagrangian parameters from the quality factor.">CalcLambdas</a>(<a class="code" href="a00063.html#d9f2137abb239359849390e8ab271590" title="Quality factor.">m_qf</a>); }
<a name="l01412"></a>01412 
<a name="l01414"></a><a class="code" href="a00063.html#7c243043fcfb96040fef60146ad8558b">01414</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.html#7c243043fcfb96040fef60146ad8558b" title="Set the nominal number of L1 pictures between I pictures.">SetNumL1</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> nl){<a class="code" href="a00063.html#3fa8fc7ea413fac9657058292ab6efe2" title="Number of L1 pictures before next I picture.">m_num_L1</a>=nl;}
<a name="l01415"></a>01415 
<a name="l01417"></a><a class="code" href="a00063.html#d66beeade69b3a9cbd70afc2fdb0a960">01417</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.html#d66beeade69b3a9cbd70afc2fdb0a960" title="Set the separation between L1 pictures.">SetL1Sep</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> lsep){<a class="code" href="a00063.html#b7aa4848a21640e4ab592e75690cc4d4" title="Separation between L1 pictures.">m_L1_sep</a>=lsep;}
<a name="l01418"></a>01418 
<a name="l01420"></a><a class="code" href="a00063.html#2aeaebe1dd14022e6d388cee681ce40d">01420</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.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="a00063.html#f8c511ead922e1fd7bd477164d0813a2" title="factor for weighting U component quantisation errors">m_ufactor</a>=uf;}
<a name="l01421"></a>01421 
<a name="l01423"></a><a class="code" href="a00063.html#7d727a0cb6f046bfef68b8ef2c8fcba4">01423</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.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="a00063.html#a673881347efd1d5780f7dd1b2e87250" title="factor for weighting V component quantisation errors">m_vfactor</a>=vf;}
<a name="l01424"></a>01424 
<a name="l01426"></a><a class="code" href="a00063.html#4bfbfb144d06acfb94b038d3c7b4adf7">01426</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.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="a00063.html#e40736003477dbd235f2d51a32d4de8e" title="Cycles per degree assumed for viewing the video.">m_cpd</a>=cpd;}
<a name="l01427"></a>01427 
<a name="l01429"></a><a class="code" href="a00063.html#8b8a06dcbb10a87584f67fc917a353ca">01429</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.html#8b8a06dcbb10a87584f67fc917a353ca" title="Set denoising value - true or false.">SetPrefilter</a>(<span class="keyword">const</span> <a class="code" href="a00172.html#6f1cf42c54ea112b7d140127834ea43d">PrefilterType</a> pf, <span class="keyword">const</span> <span class="keywordtype">int</span> str){<a class="code" href="a00063.html#b5e42352707e9ef2d8ee2a4587bcdbcc" title="Indicator for prefiltering.">m_prefilter</a>=pf;
<a name="l01430"></a>01430                                                                  <a class="code" href="a00063.html#c66e6291aa1cf25977e973678372f2f5" title="Prefiltering strength.">m_prefilter_strength</a>=str;}
<a name="l01431"></a>01431 
<a name="l01433"></a><a class="code" href="a00063.html#5d4c05f96ede057505d181a8e0e17f04">01433</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.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="a00063.html#6dae6ce23a776dc54437e4748282ad72" title="Output file path.">m_output_path</a> = op; }
<a name="l01434"></a>01434 
<a name="l01436"></a><a class="code" href="a00063.html#eef2c5afb874818be15c34544416f65c">01436</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.html#eef2c5afb874818be15c34544416f65c" title="Sets the entropy factors - TBD: set this up in a constructor and pass encoder params...">SetEntropyFactors</a>(<a class="code" href="a00068.html" title="A class used for correcting estimates of entropy.">EntropyCorrector</a>* entcorrect){<a class="code" href="a00063.html#40d302f4d2ac0b78fdbada4e09b7432e" title="Correction factors for quantiser selection.">m_ent_correct</a>=entcorrect;}
<a name="l01438"></a>01438         <span class="keywordtype">void</span> <a class="code" href="a00063.html#39bd62b18402bad71c6f3bd500eda580" title="Set the Wavelet filter to be used for intra pictures.">SetIntraTransformFilter</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> wf_idx);
<a name="l01439"></a>01439 
<a name="l01441"></a>01441         <span class="keywordtype">void</span> <a class="code" href="a00063.html#ede674e9da97a8131abb9a6fa4e87e38" title="Set the Wavelet filter to be used for inter pictures.">SetInterTransformFilter</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> wf_idx);
<a name="l01442"></a>01442 
<a name="l01444"></a><a class="code" href="a00063.html#0fd5879a63f7eeae0e1d4c745a69fef8">01444</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.html#0fd5879a63f7eeae0e1d4c745a69fef8" title="Set the Wavelet filter to be used for intra pictures.">SetIntraTransformFilter</a>(<a class="code" href="a00172.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> wf) { <a class="code" href="a00063.html#e9af357dc58148a0ad980610b2be139f" title="Wavelet filter for Intra pictures.">m_intra_wltfilter</a> = wf; }
<a name="l01445"></a>01445         
<a name="l01447"></a>01447         <span class="keywordtype">void</span>  <a class="code" href="a00063.html#af348ce87417eeac2852dd4ddb4355d6" title="Set the number of code blocks for all levels.">SetUsualCodeBlocks</a>(<span class="keyword">const</span> <a class="code" href="a00172.html#4f37629f775549c508f4c5625ae348b3">PictureType</a>&amp; ftype);
<a name="l01448"></a>01448 
<a name="l01450"></a><a class="code" href="a00063.html#f221ad838c4b13d76c50907febf4e8e6">01450</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.html#f221ad838c4b13d76c50907febf4e8e6" title="Set the Wavelet filter to be used for inter pictures.">SetInterTransformFilter</a>(<a class="code" href="a00172.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> wf) { <a class="code" href="a00063.html#512f21be5b9043db03e0e302993b4083" title="Wavelet filter for Inter pictures.">m_inter_wltfilter</a> = wf; }
<a name="l01451"></a>01451 
<a name="l01453"></a><a class="code" href="a00063.html#ffc877983104edd226c5cfdc5d975db5">01453</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.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="a00063.html#dfc3b69d1d60d20680a8918f9ce0ea68" title="Target bit rate.">m_target_rate</a> = rate;}
<a name="l01454"></a>01454 
<a name="l01456"></a><a class="code" href="a00063.html#bbec44a87ff261d3a8345fdde3dda0e5">01456</a>         <span class="keywordtype">void</span> <a class="code" href="a00063.html#bbec44a87ff261d3a8345fdde3dda0e5" title="Set the arithmetic coding flag.">SetUsingAC</a>(<span class="keywordtype">bool</span> using_ac) {<a class="code" href="a00063.html#1086f35a3984eec9b394fb0a75464b30" title="Arithmetic coding flag.">m_using_ac</a> = using_ac;}
<a name="l01457"></a>01457     <span class="keyword">private</span>:
<a name="l01458"></a>01458 
<a name="l01460"></a>01460         <span class="keywordtype">void</span> <a class="code" href="a00063.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="l01461"></a>01461 
<a name="l01462"></a>01462     <span class="keyword">private</span>:
<a name="l01463"></a>01463 
<a name="l01465"></a><a class="code" href="a00063.html#f816f8f808978947246da6c527b5b786">01465</a>         <span class="keywordtype">bool</span> <a class="code" href="a00063.html#f816f8f808978947246da6c527b5b786" title="Code/decode with commentary if true.">m_verbose</a>;
<a name="l01466"></a>01466 
<a name="l01468"></a><a class="code" href="a00063.html#f5a68db5bdc43b968b72b0b3ff062564">01468</a>         <span class="keywordtype">bool</span> <a class="code" href="a00063.html#f5a68db5bdc43b968b72b0b3ff062564" title="Flag indicating we&amp;#39;re doing local decoding.">m_loc_decode</a>;
<a name="l01469"></a>01469 
<a name="l01471"></a><a class="code" href="a00063.html#837aadea4b7c11c424febb2c30a13b5c">01471</a>         <span class="keywordtype">bool</span> <a class="code" href="a00063.html#837aadea4b7c11c424febb2c30a13b5c" title="A flag indicating we&amp;#39;re doing lossless coding.">m_lossless</a>;
<a name="l01472"></a>01472 
<a name="l01474"></a><a class="code" href="a00063.html#580fed8a15aaf7d308645f1cf7829ea9">01474</a>         <span class="keywordtype">bool</span> <a class="code" href="a00063.html#580fed8a15aaf7d308645f1cf7829ea9" title="A flag indicating whether we&amp;#39;re doing full-search block matching.">m_full_search</a>;
<a name="l01475"></a>01475 
<a name="l01477"></a><a class="code" href="a00063.html#d2555e86bbc080dbab53ada1142a8f40">01477</a>         <span class="keywordtype">bool</span> <a class="code" href="a00063.html#d2555e86bbc080dbab53ada1142a8f40" title="A flag indicating whether we&amp;#39;re doing combined component motion estimation.">m_combined_me</a>;
<a name="l01478"></a>01478 
<a name="l01480"></a><a class="code" href="a00063.html#a867ff187fdac0e567c6929a79bf3cf3">01480</a>         <span class="keywordtype">int</span> <a class="code" href="a00063.html#a867ff187fdac0e567c6929a79bf3cf3" title="The horizontal range for full-search block matching.">m_x_range_me</a>;
<a name="l01481"></a>01481 
<a name="l01483"></a><a class="code" href="a00063.html#b6a2877aff7d91ce828c67af3f7cc7d5">01483</a>         <span class="keywordtype">int</span> <a class="code" href="a00063.html#b6a2877aff7d91ce828c67af3f7cc7d5" title="The vertical range for full-search block matching.">m_y_range_me</a>;
<a name="l01484"></a>01484 
<a name="l01486"></a><a class="code" href="a00063.html#d9f2137abb239359849390e8ab271590">01486</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.html#d9f2137abb239359849390e8ab271590" title="Quality factor.">m_qf</a>;
<a name="l01487"></a>01487 
<a name="l01489"></a><a class="code" href="a00063.html#3fa8fc7ea413fac9657058292ab6efe2">01489</a>         <span class="keywordtype">int</span> <a class="code" href="a00063.html#3fa8fc7ea413fac9657058292ab6efe2" title="Number of L1 pictures before next I picture.">m_num_L1</a>;
<a name="l01490"></a>01490 
<a name="l01492"></a><a class="code" href="a00063.html#b7aa4848a21640e4ab592e75690cc4d4">01492</a>         <span class="keywordtype">int</span> <a class="code" href="a00063.html#b7aa4848a21640e4ab592e75690cc4d4" title="Separation between L1 pictures.">m_L1_sep</a>;
<a name="l01493"></a>01493 
<a name="l01495"></a><a class="code" href="a00063.html#f8c511ead922e1fd7bd477164d0813a2">01495</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.html#f8c511ead922e1fd7bd477164d0813a2" title="factor for weighting U component quantisation errors">m_ufactor</a>;
<a name="l01496"></a>01496 
<a name="l01498"></a><a class="code" href="a00063.html#a673881347efd1d5780f7dd1b2e87250">01498</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.html#a673881347efd1d5780f7dd1b2e87250" title="factor for weighting V component quantisation errors">m_vfactor</a>;
<a name="l01499"></a>01499 
<a name="l01501"></a><a class="code" href="a00063.html#e40736003477dbd235f2d51a32d4de8e">01501</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.html#e40736003477dbd235f2d51a32d4de8e" title="Cycles per degree assumed for viewing the video.">m_cpd</a>;
<a name="l01502"></a>01502 
<a name="l01504"></a><a class="code" href="a00063.html#b5e42352707e9ef2d8ee2a4587bcdbcc">01504</a>         <a class="code" href="a00172.html#6f1cf42c54ea112b7d140127834ea43d">PrefilterType</a> <a class="code" href="a00063.html#b5e42352707e9ef2d8ee2a4587bcdbcc" title="Indicator for prefiltering.">m_prefilter</a>;
<a name="l01505"></a>01505 
<a name="l01507"></a><a class="code" href="a00063.html#c66e6291aa1cf25977e973678372f2f5">01507</a>         <span class="keywordtype">int</span> <a class="code" href="a00063.html#c66e6291aa1cf25977e973678372f2f5" title="Prefiltering strength.">m_prefilter_strength</a>;
<a name="l01508"></a>01508 
<a name="l01510"></a><a class="code" href="a00063.html#7b57e767faa0a4be785d85689f5d8cfe">01510</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.html#7b57e767faa0a4be785d85689f5d8cfe" title="Lagrangian parameter for Intra picture coding.">m_I_lambda</a>;
<a name="l01511"></a>01511 
<a name="l01513"></a><a class="code" href="a00063.html#57214e4f5257248e82b5600578afe51c">01513</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.html#57214e4f5257248e82b5600578afe51c" title="Lagrangian parameter for L1 picture coding.">m_L1_lambda</a>;
<a name="l01514"></a>01514 
<a name="l01516"></a><a class="code" href="a00063.html#730ccecd6484362247fe2c9474c179c0">01516</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.html#730ccecd6484362247fe2c9474c179c0" title="Lagrangian parameter for L2 picture coding.">m_L2_lambda</a>;
<a name="l01517"></a>01517 
<a name="l01519"></a><a class="code" href="a00063.html#d6cf2f25be1d143690816640965d4546">01519</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.html#d6cf2f25be1d143690816640965d4546" title="Lagrangian param for L1 motion estimation.">m_L1_me_lambda</a>;
<a name="l01520"></a>01520 
<a name="l01522"></a><a class="code" href="a00063.html#458f5e347c3f37e2b54df45836d0c9ed">01522</a>         <span class="keywordtype">float</span> <a class="code" href="a00063.html#458f5e347c3f37e2b54df45836d0c9ed" title="Lagrangian param for L2 motion estimation.">m_L2_me_lambda</a>;
<a name="l01523"></a>01523 
<a name="l01525"></a><a class="code" href="a00063.html#40d302f4d2ac0b78fdbada4e09b7432e">01525</a>         <a class="code" href="a00068.html" title="A class used for correcting estimates of entropy.">EntropyCorrector</a>* <a class="code" href="a00063.html#40d302f4d2ac0b78fdbada4e09b7432e" title="Correction factors for quantiser selection.">m_ent_correct</a>;
<a name="l01526"></a>01526 
<a name="l01528"></a><a class="code" href="a00063.html#6dae6ce23a776dc54437e4748282ad72">01528</a>         std::string <a class="code" href="a00063.html#6dae6ce23a776dc54437e4748282ad72" title="Output file path.">m_output_path</a>;
<a name="l01529"></a>01529 
<a name="l01531"></a><a class="code" href="a00063.html#e9af357dc58148a0ad980610b2be139f">01531</a>         <a class="code" href="a00172.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="code" href="a00063.html#e9af357dc58148a0ad980610b2be139f" title="Wavelet filter for Intra pictures.">m_intra_wltfilter</a>;
<a name="l01532"></a>01532 
<a name="l01534"></a><a class="code" href="a00063.html#512f21be5b9043db03e0e302993b4083">01534</a>         <a class="code" href="a00172.html#cb32bc58ece3811ce3ce9aa0375a67a4">WltFilter</a> <a class="code" href="a00063.html#512f21be5b9043db03e0e302993b4083" title="Wavelet filter for Inter pictures.">m_inter_wltfilter</a>;
<a name="l01535"></a>01535 
<a name="l01537"></a><a class="code" href="a00063.html#dfc3b69d1d60d20680a8918f9ce0ea68">01537</a>         <span class="keywordtype">int</span> <a class="code" href="a00063.html#dfc3b69d1d60d20680a8918f9ce0ea68" title="Target bit rate.">m_target_rate</a>;
<a name="l01538"></a>01538 
<a name="l01540"></a><a class="code" href="a00063.html#1086f35a3984eec9b394fb0a75464b30">01540</a>         <span class="keywordtype">bool</span> <a class="code" href="a00063.html#1086f35a3984eec9b394fb0a75464b30" title="Arithmetic coding flag.">m_using_ac</a>;
<a name="l01541"></a>01541 
<a name="l01542"></a>01542     };
<a name="l01543"></a>01543 
<a name="l01545"></a>01545 
<a name="l01548"></a><a class="code" href="a00029.html">01548</a>     <span class="keyword">class </span><a class="code" href="a00029.html" title="Parameters for the decoding process.">DecoderParams</a>: <span class="keyword">public</span> <a class="code" href="a00019.html" title="Parameters common to coder and decoder operation.">CodecParams</a>
<a name="l01549"></a>01549     {
<a name="l01550"></a>01550     <span class="keyword">public</span>:
<a name="l01552"></a>01552         <a class="code" href="a00029.html#216337343b4043560a120dd0a741b681" title="Default constructor.">DecoderParams</a>(<span class="keyword">const</span> <a class="code" href="a00172.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a>&amp; video_format = <a class="code" href="a00172.html#216a5d43d2a518325c84f100ed7735a50dbded26b63fcbf0163bf3fe2d6aa923">VIDEO_FORMAT_CIF</a>, <a class="code" href="a00172.html#4f37629f775549c508f4c5625ae348b3">PictureType</a> ftype=<a class="code" href="a00172.html#4f37629f775549c508f4c5625ae348b3682660c6716ef5ba8f8d2d0b2e9a8fc2">INTRA_PICTURE</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="l01553"></a>01553 
<a name="l01555"></a><a class="code" href="a00029.html#f44d51abdd8fbb04dcb17eb139aa6a09">01555</a>         <span class="keywordtype">bool</span> <a class="code" href="a00029.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="a00029.html#11fd826e619dcb25efdad6656655b4a7" title="Code/decode with commentary if true.">m_verbose</a>;}
<a name="l01556"></a>01556 
<a name="l01558"></a><a class="code" href="a00029.html#be5d98d190a6c96edf0c0e714af8093b">01558</a>         <span class="keywordtype">void</span> <a class="code" href="a00029.html#be5d98d190a6c96edf0c0e714af8093b" title="Sets verbosity on or off.">SetVerbose</a>(<span class="keywordtype">bool</span> v){<a class="code" href="a00029.html#11fd826e619dcb25efdad6656655b4a7" title="Code/decode with commentary if true.">m_verbose</a>=v;}
<a name="l01559"></a>01559 
<a name="l01561"></a>01561             <span class="comment">//NB: Assume default copy constructor, assignment = and destructor//</span>
<a name="l01562"></a>01562             <span class="comment">//This means pointers are copied, not the objects they point to.////</span>
<a name="l01564"></a>01564 <span class="comment"></span>
<a name="l01565"></a>01565 
<a name="l01566"></a>01566     <span class="keyword">private</span>:
<a name="l01567"></a>01567 
<a name="l01569"></a><a class="code" href="a00029.html#11fd826e619dcb25efdad6656655b4a7">01569</a>         <span class="keywordtype">bool</span> <a class="code" href="a00029.html#11fd826e619dcb25efdad6656655b4a7" title="Code/decode with commentary if true.">m_verbose</a>;
<a name="l01570"></a>01570 
<a name="l01571"></a>01571     };
<a name="l01572"></a>01572 
<a name="l01574"></a><a class="code" href="a00234.html#578523d235f3d273aa7aae9d0127dab7">01574</a>     <span class="keyword">inline</span> <a class="code" href="a00234.html#548820ca76f864dc8630df79b2c5c5b9" title="Type of picture data (including motion compensated residuals).">ValueType</a> <a class="code" href="a00234.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="a00234.html#548820ca76f864dc8630df79b2c5c5b9" title="Type of picture data (including motion compensated residuals).">ValueType</a> &amp;num, <span class="keyword">const</span> <a class="code" href="a00234.html#548820ca76f864dc8630df79b2c5c5b9" title="Type of picture data (including motion compensated residuals).">ValueType</a> &amp;max)
<a name="l01575"></a>01575     {
<a name="l01576"></a>01576         <span class="keywordflow">if</span>(num &lt; 0) <span class="keywordflow">return</span> 0;
<a name="l01577"></a>01577         <span class="keywordflow">else</span> <span class="keywordflow">if</span>(num &gt;= max) <span class="keywordflow">return</span> max-1;
<a name="l01578"></a>01578         <span class="keywordflow">else</span> <span class="keywordflow">return</span> num;
<a name="l01579"></a>01579     }
<a name="l01580"></a>01580 
<a name="l01582"></a><a class="code" href="a00124.html">01582</a>     <span class="keyword">class </span><a class="code" href="a00124.html" title="Class for encapsulating quantiser data.">QuantiserLists</a>
<a name="l01583"></a>01583     {
<a name="l01584"></a>01584     <span class="keyword">public</span>:
<a name="l01586"></a>01586         <a class="code" href="a00124.html#1d322afd9784d4197f9593b508e5d703" title="Default constructor.">QuantiserLists</a>();
<a name="l01587"></a>01587 
<a name="l01589"></a><a class="code" href="a00124.html#8f55e40d58354b1ab627ce4dd23b2398">01589</a>         <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="a00124.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="a00124.html#446d371c4aaa63026b55393d7b580dc7">m_qflist4</a>[index]; }
<a name="l01590"></a>01590 
<a name="l01592"></a><a class="code" href="a00124.html#b26080292ffeeeedc60c497301ad17ce">01592</a>         <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="a00124.html#b26080292ffeeeedc60c497301ad17ce" title="Returns the intra Picture 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="a00124.html#5b7a3ec886e4508064bd4e8a793430bf">m_intra_offset4</a>[index]; }
<a name="l01594"></a><a class="code" href="a00124.html#00511d6ab38cc62ee3f024d9491552c5">01594</a>         <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="a00124.html#00511d6ab38cc62ee3f024d9491552c5" title="Returns the inter Picture 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="a00124.html#83afc3afc325b9683fe46559c8e43562">m_inter_offset4</a>[index]; }
<a name="l01595"></a>01595 
<a name="l01597"></a><a class="code" href="a00124.html#d88c6127daba41c8c004f21220d73aa4">01597</a>         <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="a00124.html#d88c6127daba41c8c004f21220d73aa4" title="Returns the maximum quantiser index supported.">MaxQuantIndex</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a00124.html#bd9e8355c11bcac21d36dcc037d81407">m_max_qindex</a>; }
<a name="l01598"></a>01598 
<a name="l01599"></a>01599 
<a name="l01600"></a>01600     <span class="keyword">private</span>:
<a name="l01601"></a><a class="code" href="a00124.html#bd9e8355c11bcac21d36dcc037d81407">01601</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="a00124.html#bd9e8355c11bcac21d36dcc037d81407">m_max_qindex</a>;
<a name="l01602"></a><a class="code" href="a00124.html#446d371c4aaa63026b55393d7b580dc7">01602</a>         <a class="code" href="a00097.html">OneDArray&lt;int&gt;</a> <a class="code" href="a00124.html#446d371c4aaa63026b55393d7b580dc7">m_qflist4</a>;
<a name="l01603"></a><a class="code" href="a00124.html#5b7a3ec886e4508064bd4e8a793430bf">01603</a>         <a class="code" href="a00097.html">OneDArray&lt;int&gt;</a> <a class="code" href="a00124.html#5b7a3ec886e4508064bd4e8a793430bf">m_intra_offset4</a>;
<a name="l01604"></a><a class="code" href="a00124.html#83afc3afc325b9683fe46559c8e43562">01604</a>         <a class="code" href="a00097.html">OneDArray&lt;int&gt;</a> <a class="code" href="a00124.html#83afc3afc325b9683fe46559c8e43562">m_inter_offset4</a>;
<a name="l01605"></a>01605 
<a name="l01606"></a>01606     };
<a name="l01607"></a>01607 
<a name="l01609"></a>01609     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="a00124.html" title="Class for encapsulating quantiser data.">QuantiserLists</a> dirac_quantiser_lists;
<a name="l01610"></a>01610 
<a name="l01611"></a>01611 } <span class="comment">// namespace dirac</span>
<a name="l01612"></a>01612 
<a name="l01613"></a>01613 <span class="preprocessor">#endif</span>
</pre></div></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>