Update Doxygen doc
[openjpeg.git] / doxygen / mqc__inl_8h.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <meta name="generator" content="Doxygen 1.8.10"/>
7 <title>OpenJPEG: mqc_inl.h File Reference</title>
8 <link href="tabs.css" rel="stylesheet" type="text/css"/>
9 <script type="text/javascript" src="jquery.js"></script>
10 <script type="text/javascript" src="dynsections.js"></script>
11 <link href="doxygen.css" rel="stylesheet" type="text/css" />
12 </head>
13 <body>
14 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
15 <div id="titlearea">
16 <table cellspacing="0" cellpadding="0">
17  <tbody>
18  <tr style="height: 56px;">
19   <td id="projectalign" style="padding-left: 0.5em;">
20    <div id="projectname">OpenJPEG
21    &#160;<span id="projectnumber">2.2.0</span>
22    </div>
23   </td>
24  </tr>
25  </tbody>
26 </table>
27 </div>
28 <!-- end header part -->
29 <!-- Generated by Doxygen 1.8.10 -->
30   <div id="navrow1" class="tabs">
31     <ul class="tablist">
32       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
33       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
34       <li><a href="modules.html"><span>Modules</span></a></li>
35       <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
36       <li class="current"><a href="files.html"><span>Files</span></a></li>
37     </ul>
38   </div>
39   <div id="navrow2" class="tabs2">
40     <ul class="tablist">
41       <li><a href="files.html"><span>File&#160;List</span></a></li>
42       <li><a href="globals.html"><span>Globals</span></a></li>
43     </ul>
44   </div>
45 <div id="nav-path" class="navpath">
46   <ul>
47 <li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_694e20c96f4fc1be4aed4f026eadce94.html">antonin</a></li><li class="navelem"><a class="el" href="dir_3ca1ad36e65e03f9e8d67ddc2553765b.html">dev</a></li><li class="navelem"><a class="el" href="dir_181a881edfcb8646dab693a228fa6bde.html">opj</a></li><li class="navelem"><a class="el" href="dir_5064bb5511811c3176850b7e47443f14.html">github</a></li><li class="navelem"><a class="el" href="dir_0b20524d8f8835ca75acc430451c8412.html">openjpeg</a></li><li class="navelem"><a class="el" href="dir_e3f8a8e294f8271ee71cbcf3c2acacc1.html">src</a></li><li class="navelem"><a class="el" href="dir_da83fe5fdfb6c4554d36abffc03790ad.html">lib</a></li><li class="navelem"><a class="el" href="dir_68013e83e260d17d49dee5e209315608.html">openjp2</a></li>  </ul>
48 </div>
49 </div><!-- top -->
50 <div class="header">
51   <div class="summary">
52 <a href="#define-members">Macros</a> &#124;
53 <a href="#func-members">Functions</a>  </div>
54   <div class="headertitle">
55 <div class="title">mqc_inl.h File Reference</div>  </div>
56 </div><!--header-->
57 <div class="contents">
58
59 <p><a href="mqc__inl_8h_source.html">Go to the source code of this file.</a></p>
60 <table class="memberdecls">
61 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
62 Macros</h2></td></tr>
63 <tr class="memitem:a77750aa7d64cf6f783400c88435e99a8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#a77750aa7d64cf6f783400c88435e99a8">opj_mqc_mpsexchange_macro</a>(d,  curctx,  a)</td></tr>
64 <tr class="separator:a77750aa7d64cf6f783400c88435e99a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
65 <tr class="memitem:a0e2e2ac16b81932dd21a765c9acb71d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#a0e2e2ac16b81932dd21a765c9acb71d5">opj_mqc_lpsexchange_macro</a>(d,  curctx,  a)</td></tr>
66 <tr class="separator:a0e2e2ac16b81932dd21a765c9acb71d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
67 <tr class="memitem:ae5188ad6071ff78926872e908e66bf6f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#ae5188ad6071ff78926872e908e66bf6f">opj_mqc_bytein_macro</a>(mqc,  c,  ct)</td></tr>
68 <tr class="separator:ae5188ad6071ff78926872e908e66bf6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
69 <tr class="memitem:a26748854179015d73a35f07ed00b1f9d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#a26748854179015d73a35f07ed00b1f9d">opj_mqc_renormd_macro</a>(mqc,  a,  c,  ct)</td></tr>
70 <tr class="separator:a26748854179015d73a35f07ed00b1f9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
71 <tr class="memitem:a40c56ca9f2d05d6107741d6f701616cf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#a40c56ca9f2d05d6107741d6f701616cf">opj_mqc_decode_macro</a>(d,  mqc,  curctx,  a,  c,  ct)</td></tr>
72 <tr class="separator:a40c56ca9f2d05d6107741d6f701616cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
73 <tr class="memitem:a43cb01b97e9202f752b48d69e1e0b57c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#a43cb01b97e9202f752b48d69e1e0b57c">DOWNLOAD_MQC_VARIABLES</a>(mqc,  curctx,  c,  a,  ct)</td></tr>
74 <tr class="separator:a43cb01b97e9202f752b48d69e1e0b57c"><td class="memSeparator" colspan="2">&#160;</td></tr>
75 <tr class="memitem:a60d2e92b6ebae432474ce7d62778a04b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#a60d2e92b6ebae432474ce7d62778a04b">UPLOAD_MQC_VARIABLES</a>(mqc,  curctx,  c,  a,  ct)</td></tr>
76 <tr class="separator:a60d2e92b6ebae432474ce7d62778a04b"><td class="memSeparator" colspan="2">&#160;</td></tr>
77 <tr class="memitem:a7364151e7c65e86436818cef3f7ad822"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#a7364151e7c65e86436818cef3f7ad822">opj_mqc_renormd</a>(mqc)&#160;&#160;&#160;<a class="el" href="mqc__inl_8h.html#a26748854179015d73a35f07ed00b1f9d">opj_mqc_renormd_macro</a>(mqc, mqc-&gt;a, mqc-&gt;c, mqc-&gt;ct)</td></tr>
78 <tr class="memdesc:a7364151e7c65e86436818cef3f7ad822"><td class="mdescLeft">&#160;</td><td class="mdescRight">Renormalize mqc-&gt;a and mqc-&gt;c while decoding.  <a href="#a7364151e7c65e86436818cef3f7ad822">More...</a><br /></td></tr>
79 <tr class="separator:a7364151e7c65e86436818cef3f7ad822"><td class="memSeparator" colspan="2">&#160;</td></tr>
80 <tr class="memitem:a89ab47f40f5de66906de82d3e5bd724b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#a89ab47f40f5de66906de82d3e5bd724b">opj_mqc_decode</a>(d,  mqc)&#160;&#160;&#160;<a class="el" href="mqc__inl_8h.html#a40c56ca9f2d05d6107741d6f701616cf">opj_mqc_decode_macro</a>(d, mqc, mqc-&gt;curctx, mqc-&gt;a, mqc-&gt;c, mqc-&gt;ct)</td></tr>
81 <tr class="memdesc:a89ab47f40f5de66906de82d3e5bd724b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode a symbol.  <a href="#a89ab47f40f5de66906de82d3e5bd724b">More...</a><br /></td></tr>
82 <tr class="separator:a89ab47f40f5de66906de82d3e5bd724b"><td class="memSeparator" colspan="2">&#160;</td></tr>
83 </table><table class="memberdecls">
84 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
85 Functions</h2></td></tr>
86 <tr class="memitem:ac95b072fbe38180fafa0c02051b12874"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="openjpeg_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#ac95b072fbe38180fafa0c02051b12874">opj_mqc_raw_decode</a> (<a class="el" href="group___m_q_c.html#ga49560555308b38694eddc876275ed4bc">opj_mqc_t</a> *mqc)</td></tr>
87 <tr class="memdesc:ac95b072fbe38180fafa0c02051b12874"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode a symbol using raw-decoder.  <a href="#ac95b072fbe38180fafa0c02051b12874">More...</a><br /></td></tr>
88 <tr class="separator:ac95b072fbe38180fafa0c02051b12874"><td class="memSeparator" colspan="2">&#160;</td></tr>
89 <tr class="memitem:af1feff8274fe5a9da129d93322fce03e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="openjpeg_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#af1feff8274fe5a9da129d93322fce03e">opj_mqc_bytein</a> (<a class="el" href="group___m_q_c.html#ga49560555308b38694eddc876275ed4bc">opj_mqc_t</a> *const mqc)</td></tr>
90 <tr class="memdesc:af1feff8274fe5a9da129d93322fce03e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Input a byte.  <a href="#af1feff8274fe5a9da129d93322fce03e">More...</a><br /></td></tr>
91 <tr class="separator:af1feff8274fe5a9da129d93322fce03e"><td class="memSeparator" colspan="2">&#160;</td></tr>
92 </table>
93 <h2 class="groupheader">Macro Definition Documentation</h2>
94 <a class="anchor" id="a43cb01b97e9202f752b48d69e1e0b57c"></a>
95 <div class="memitem">
96 <div class="memproto">
97       <table class="memname">
98         <tr>
99           <td class="memname">#define DOWNLOAD_MQC_VARIABLES</td>
100           <td>(</td>
101           <td class="paramtype">&#160;</td>
102           <td class="paramname">mqc, </td>
103         </tr>
104         <tr>
105           <td class="paramkey"></td>
106           <td></td>
107           <td class="paramtype">&#160;</td>
108           <td class="paramname">curctx, </td>
109         </tr>
110         <tr>
111           <td class="paramkey"></td>
112           <td></td>
113           <td class="paramtype">&#160;</td>
114           <td class="paramname">c, </td>
115         </tr>
116         <tr>
117           <td class="paramkey"></td>
118           <td></td>
119           <td class="paramtype">&#160;</td>
120           <td class="paramname">a, </td>
121         </tr>
122         <tr>
123           <td class="paramkey"></td>
124           <td></td>
125           <td class="paramtype">&#160;</td>
126           <td class="paramname">ct&#160;</td>
127         </tr>
128         <tr>
129           <td></td>
130           <td>)</td>
131           <td></td><td></td>
132         </tr>
133       </table>
134 </div><div class="memdoc">
135 <b>Value:</b><div class="fragment"><div class="line"><span class="keyword">register</span> <a class="code" href="structopj__mqc__state.html">opj_mqc_state_t</a> **curctx = mqc-&gt;curctx; \</div>
136 <div class="line">        register <a class="code" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> c = mqc-&gt;c; \</div>
137 <div class="line">        register <a class="code" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> a = mqc-&gt;a; \</div>
138 <div class="line">        register <a class="code" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> ct = mqc-&gt;ct</div>
139 <div class="ttc" id="structopj__mqc__state_html"><div class="ttname"><a href="structopj__mqc__state.html">opj_mqc_state</a></div><div class="ttdoc">This struct defines the state of a context. </div><div class="ttdef"><b>Definition:</b> mqc.h:58</div></div>
140 <div class="ttc" id="openjpeg_8h_html_a4cb1e6e6b6ef2df499d5c02f7df54cbb"><div class="ttname"><a href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a></div><div class="ttdeci">uint32_t OPJ_UINT32</div><div class="ttdef"><b>Definition:</b> openjpeg.h:126</div></div>
141 </div><!-- fragment -->
142 </div>
143 </div>
144 <a class="anchor" id="ae5188ad6071ff78926872e908e66bf6f"></a>
145 <div class="memitem">
146 <div class="memproto">
147       <table class="memname">
148         <tr>
149           <td class="memname">#define opj_mqc_bytein_macro</td>
150           <td>(</td>
151           <td class="paramtype">&#160;</td>
152           <td class="paramname">mqc, </td>
153         </tr>
154         <tr>
155           <td class="paramkey"></td>
156           <td></td>
157           <td class="paramtype">&#160;</td>
158           <td class="paramname">c, </td>
159         </tr>
160         <tr>
161           <td class="paramkey"></td>
162           <td></td>
163           <td class="paramtype">&#160;</td>
164           <td class="paramname">ct&#160;</td>
165         </tr>
166         <tr>
167           <td></td>
168           <td>)</td>
169           <td></td><td></td>
170         </tr>
171       </table>
172 </div><div class="memdoc">
173 <b>Value:</b><div class="fragment"><div class="line">{ \</div>
174 <div class="line">        OPJ_UINT32 l_c;  \</div>
175 <div class="line">        <span class="comment">/* Given opj_mqc_init_dec() we know that at some point we will */</span> \</div>
176 <div class="line">        <span class="comment">/* have a 0xFF 0xFF artificial marker */</span> \</div>
177 <div class="line">        l_c = *(mqc-&gt;bp + 1); \</div>
178 <div class="line">        if (*mqc-&gt;bp == 0xff) { \</div>
179 <div class="line">            if (l_c &gt; 0x8f) { \</div>
180 <div class="line">                c += 0xff00; \</div>
181 <div class="line">                ct = 8; \</div>
182 <div class="line">                mqc-&gt;end_of_byte_stream_counter ++; \</div>
183 <div class="line">            } <span class="keywordflow">else</span> { \</div>
184 <div class="line">                mqc-&gt;bp++; \</div>
185 <div class="line">                c += l_c &lt;&lt; 9; \</div>
186 <div class="line">                ct = 7; \</div>
187 <div class="line">            } \</div>
188 <div class="line">        } <span class="keywordflow">else</span> { \</div>
189 <div class="line">            mqc-&gt;bp++; \</div>
190 <div class="line">            c += l_c &lt;&lt; 8; \</div>
191 <div class="line">            ct = 8; \</div>
192 <div class="line">        } \</div>
193 <div class="line">}</div>
194 </div><!-- fragment -->
195 <p>Referenced by <a class="el" href="mqc__inl_8h.html#af1feff8274fe5a9da129d93322fce03e">opj_mqc_bytein()</a>.</p>
196
197 </div>
198 </div>
199 <a class="anchor" id="a89ab47f40f5de66906de82d3e5bd724b"></a>
200 <div class="memitem">
201 <div class="memproto">
202       <table class="memname">
203         <tr>
204           <td class="memname">#define opj_mqc_decode</td>
205           <td>(</td>
206           <td class="paramtype">&#160;</td>
207           <td class="paramname">d, </td>
208         </tr>
209         <tr>
210           <td class="paramkey"></td>
211           <td></td>
212           <td class="paramtype">&#160;</td>
213           <td class="paramname">mqc&#160;</td>
214         </tr>
215         <tr>
216           <td></td>
217           <td>)</td>
218           <td></td><td>&#160;&#160;&#160;<a class="el" href="mqc__inl_8h.html#a40c56ca9f2d05d6107741d6f701616cf">opj_mqc_decode_macro</a>(d, mqc, mqc-&gt;curctx, mqc-&gt;a, mqc-&gt;c, mqc-&gt;ct)</td>
219         </tr>
220       </table>
221 </div><div class="memdoc">
222
223 <p>Decode a symbol. </p>
224 <dl class="params"><dt>Parameters</dt><dd>
225   <table class="params">
226     <tr><td class="paramname">d</td><td>OPJ_UINT32 value where to store the decoded symbol </td></tr>
227     <tr><td class="paramname">mqc</td><td>MQC handle </td></tr>
228   </table>
229   </dd>
230 </dl>
231 <dl class="section return"><dt>Returns</dt><dd>Returns the decoded symbol (0 or 1) in d </dd></dl>
232
233 <p>Referenced by <a class="el" href="t1_8c.html#a5b012076ab1c77674f5d0727bb78bf1d">opj_t1_dec_clnpass_check_segsym()</a>.</p>
234
235 </div>
236 </div>
237 <a class="anchor" id="a40c56ca9f2d05d6107741d6f701616cf"></a>
238 <div class="memitem">
239 <div class="memproto">
240       <table class="memname">
241         <tr>
242           <td class="memname">#define opj_mqc_decode_macro</td>
243           <td>(</td>
244           <td class="paramtype">&#160;</td>
245           <td class="paramname">d, </td>
246         </tr>
247         <tr>
248           <td class="paramkey"></td>
249           <td></td>
250           <td class="paramtype">&#160;</td>
251           <td class="paramname">mqc, </td>
252         </tr>
253         <tr>
254           <td class="paramkey"></td>
255           <td></td>
256           <td class="paramtype">&#160;</td>
257           <td class="paramname">curctx, </td>
258         </tr>
259         <tr>
260           <td class="paramkey"></td>
261           <td></td>
262           <td class="paramtype">&#160;</td>
263           <td class="paramname">a, </td>
264         </tr>
265         <tr>
266           <td class="paramkey"></td>
267           <td></td>
268           <td class="paramtype">&#160;</td>
269           <td class="paramname">c, </td>
270         </tr>
271         <tr>
272           <td class="paramkey"></td>
273           <td></td>
274           <td class="paramtype">&#160;</td>
275           <td class="paramname">ct&#160;</td>
276         </tr>
277         <tr>
278           <td></td>
279           <td>)</td>
280           <td></td><td></td>
281         </tr>
282       </table>
283 </div><div class="memdoc">
284 <b>Value:</b><div class="fragment"><div class="line">{ \</div>
285 <div class="line">    <span class="comment">/* Implements ISO 15444-1 C.3.2 Decoding a decision (DECODE) */</span> \</div>
286 <div class="line">    <span class="comment">/* Note: alternate &quot;J.2 - Decoding an MPS or an LPS in the */</span> \</div>
287 <div class="line">    <span class="comment">/* software-conventions decoder&quot; has been tried, but does not bring any */</span> \</div>
288 <div class="line">    <span class="comment">/* improvement. See https://github.com/uclouvain/openjpeg/issues/921 */</span> \</div>
289 <div class="line">    a -= (*curctx)-&gt;qeval;  \</div>
290 <div class="line">    if ((c &gt;&gt; 16) &lt; (*curctx)-&gt;qeval) {  \</div>
291 <div class="line">        opj_mqc_lpsexchange_macro(d, curctx, a);  \</div>
292 <div class="line">        opj_mqc_renormd_macro(mqc, a, c, ct);  \</div>
293 <div class="line">    } <span class="keywordflow">else</span> {  \</div>
294 <div class="line">        c -= (*curctx)-&gt;qeval &lt;&lt; 16;  \</div>
295 <div class="line">        if ((a &amp; 0x8000) == 0) { \</div>
296 <div class="line">            opj_mqc_mpsexchange_macro(d, curctx, a); \</div>
297 <div class="line">            opj_mqc_renormd_macro(mqc, a, c, ct); \</div>
298 <div class="line">        } <span class="keywordflow">else</span> { \</div>
299 <div class="line">            d = (*curctx)-&gt;mps; \</div>
300 <div class="line">        } \</div>
301 <div class="line">    } \</div>
302 <div class="line">}</div>
303 </div><!-- fragment -->
304 </div>
305 </div>
306 <a class="anchor" id="a0e2e2ac16b81932dd21a765c9acb71d5"></a>
307 <div class="memitem">
308 <div class="memproto">
309       <table class="memname">
310         <tr>
311           <td class="memname">#define opj_mqc_lpsexchange_macro</td>
312           <td>(</td>
313           <td class="paramtype">&#160;</td>
314           <td class="paramname">d, </td>
315         </tr>
316         <tr>
317           <td class="paramkey"></td>
318           <td></td>
319           <td class="paramtype">&#160;</td>
320           <td class="paramname">curctx, </td>
321         </tr>
322         <tr>
323           <td class="paramkey"></td>
324           <td></td>
325           <td class="paramtype">&#160;</td>
326           <td class="paramname">a&#160;</td>
327         </tr>
328         <tr>
329           <td></td>
330           <td>)</td>
331           <td></td><td></td>
332         </tr>
333       </table>
334 </div><div class="memdoc">
335 <b>Value:</b><div class="fragment"><div class="line">{ \</div>
336 <div class="line">    if (a &lt; (*curctx)-&gt;qeval) { \</div>
337 <div class="line">        a = (*curctx)-&gt;qeval; \</div>
338 <div class="line">        d = (*curctx)-&gt;mps; \</div>
339 <div class="line">        *curctx = (*curctx)-&gt;nmps; \</div>
340 <div class="line">    } <span class="keywordflow">else</span> { \</div>
341 <div class="line">        a = (*curctx)-&gt;qeval; \</div>
342 <div class="line">        d = !((*curctx)-&gt;mps); \</div>
343 <div class="line">        *curctx = (*curctx)-&gt;nlps; \</div>
344 <div class="line">    } \</div>
345 <div class="line">}</div>
346 </div><!-- fragment -->
347 </div>
348 </div>
349 <a class="anchor" id="a77750aa7d64cf6f783400c88435e99a8"></a>
350 <div class="memitem">
351 <div class="memproto">
352       <table class="memname">
353         <tr>
354           <td class="memname">#define opj_mqc_mpsexchange_macro</td>
355           <td>(</td>
356           <td class="paramtype">&#160;</td>
357           <td class="paramname">d, </td>
358         </tr>
359         <tr>
360           <td class="paramkey"></td>
361           <td></td>
362           <td class="paramtype">&#160;</td>
363           <td class="paramname">curctx, </td>
364         </tr>
365         <tr>
366           <td class="paramkey"></td>
367           <td></td>
368           <td class="paramtype">&#160;</td>
369           <td class="paramname">a&#160;</td>
370         </tr>
371         <tr>
372           <td></td>
373           <td>)</td>
374           <td></td><td></td>
375         </tr>
376       </table>
377 </div><div class="memdoc">
378 <b>Value:</b><div class="fragment"><div class="line">{ \</div>
379 <div class="line">    if (a &lt; (*curctx)-&gt;qeval) { \</div>
380 <div class="line">        d = !((*curctx)-&gt;mps); \</div>
381 <div class="line">        *curctx = (*curctx)-&gt;nlps; \</div>
382 <div class="line">    } <span class="keywordflow">else</span> { \</div>
383 <div class="line">        d = (*curctx)-&gt;mps; \</div>
384 <div class="line">        *curctx = (*curctx)-&gt;nmps; \</div>
385 <div class="line">    } \</div>
386 <div class="line">}</div>
387 </div><!-- fragment -->
388 </div>
389 </div>
390 <a class="anchor" id="a7364151e7c65e86436818cef3f7ad822"></a>
391 <div class="memitem">
392 <div class="memproto">
393       <table class="memname">
394         <tr>
395           <td class="memname">#define opj_mqc_renormd</td>
396           <td>(</td>
397           <td class="paramtype">&#160;</td>
398           <td class="paramname">mqc</td><td>)</td>
399           <td>&#160;&#160;&#160;<a class="el" href="mqc__inl_8h.html#a26748854179015d73a35f07ed00b1f9d">opj_mqc_renormd_macro</a>(mqc, mqc-&gt;a, mqc-&gt;c, mqc-&gt;ct)</td>
400         </tr>
401       </table>
402 </div><div class="memdoc">
403
404 <p>Renormalize mqc-&gt;a and mqc-&gt;c while decoding. </p>
405 <dl class="params"><dt>Parameters</dt><dd>
406   <table class="params">
407     <tr><td class="paramname">mqc</td><td>MQC handle </td></tr>
408   </table>
409   </dd>
410 </dl>
411
412 </div>
413 </div>
414 <a class="anchor" id="a26748854179015d73a35f07ed00b1f9d"></a>
415 <div class="memitem">
416 <div class="memproto">
417       <table class="memname">
418         <tr>
419           <td class="memname">#define opj_mqc_renormd_macro</td>
420           <td>(</td>
421           <td class="paramtype">&#160;</td>
422           <td class="paramname">mqc, </td>
423         </tr>
424         <tr>
425           <td class="paramkey"></td>
426           <td></td>
427           <td class="paramtype">&#160;</td>
428           <td class="paramname">a, </td>
429         </tr>
430         <tr>
431           <td class="paramkey"></td>
432           <td></td>
433           <td class="paramtype">&#160;</td>
434           <td class="paramname">c, </td>
435         </tr>
436         <tr>
437           <td class="paramkey"></td>
438           <td></td>
439           <td class="paramtype">&#160;</td>
440           <td class="paramname">ct&#160;</td>
441         </tr>
442         <tr>
443           <td></td>
444           <td>)</td>
445           <td></td><td></td>
446         </tr>
447       </table>
448 </div><div class="memdoc">
449 <b>Value:</b><div class="fragment"><div class="line">{ \</div>
450 <div class="line">    do { \</div>
451 <div class="line">        if (ct == 0) { \</div>
452 <div class="line">            opj_mqc_bytein_macro(mqc, c, ct); \</div>
453 <div class="line">        } \</div>
454 <div class="line">        a &lt;&lt;= 1; \</div>
455 <div class="line">        c &lt;&lt;= 1; \</div>
456 <div class="line">        ct--; \</div>
457 <div class="line">    } <span class="keywordflow">while</span> (a &lt; 0x8000); \</div>
458 <div class="line">}</div>
459 </div><!-- fragment -->
460 </div>
461 </div>
462 <a class="anchor" id="a60d2e92b6ebae432474ce7d62778a04b"></a>
463 <div class="memitem">
464 <div class="memproto">
465       <table class="memname">
466         <tr>
467           <td class="memname">#define UPLOAD_MQC_VARIABLES</td>
468           <td>(</td>
469           <td class="paramtype">&#160;</td>
470           <td class="paramname">mqc, </td>
471         </tr>
472         <tr>
473           <td class="paramkey"></td>
474           <td></td>
475           <td class="paramtype">&#160;</td>
476           <td class="paramname">curctx, </td>
477         </tr>
478         <tr>
479           <td class="paramkey"></td>
480           <td></td>
481           <td class="paramtype">&#160;</td>
482           <td class="paramname">c, </td>
483         </tr>
484         <tr>
485           <td class="paramkey"></td>
486           <td></td>
487           <td class="paramtype">&#160;</td>
488           <td class="paramname">a, </td>
489         </tr>
490         <tr>
491           <td class="paramkey"></td>
492           <td></td>
493           <td class="paramtype">&#160;</td>
494           <td class="paramname">ct&#160;</td>
495         </tr>
496         <tr>
497           <td></td>
498           <td>)</td>
499           <td></td><td></td>
500         </tr>
501       </table>
502 </div><div class="memdoc">
503 <b>Value:</b><div class="fragment"><div class="line">mqc-&gt;curctx = curctx; \</div>
504 <div class="line">        mqc-&gt;c = c; \</div>
505 <div class="line">        mqc-&gt;a = a; \</div>
506 <div class="line">        mqc-&gt;ct = ct;</div>
507 </div><!-- fragment -->
508 </div>
509 </div>
510 <h2 class="groupheader">Function Documentation</h2>
511 <a class="anchor" id="af1feff8274fe5a9da129d93322fce03e"></a>
512 <div class="memitem">
513 <div class="memproto">
514 <table class="mlabels">
515   <tr>
516   <td class="mlabels-left">
517       <table class="memname">
518         <tr>
519           <td class="memname">static <a class="el" href="openjpeg_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> void opj_mqc_bytein </td>
520           <td>(</td>
521           <td class="paramtype"><a class="el" href="group___m_q_c.html#ga49560555308b38694eddc876275ed4bc">opj_mqc_t</a> *const&#160;</td>
522           <td class="paramname"><em>mqc</em></td><td>)</td>
523           <td></td>
524         </tr>
525       </table>
526   </td>
527   <td class="mlabels-right">
528 <span class="mlabels"><span class="mlabel">static</span></span>  </td>
529   </tr>
530 </table>
531 </div><div class="memdoc">
532
533 <p>Input a byte. </p>
534 <dl class="params"><dt>Parameters</dt><dd>
535   <table class="params">
536     <tr><td class="paramname">mqc</td><td>MQC handle </td></tr>
537   </table>
538   </dd>
539 </dl>
540
541 <p>References <a class="el" href="structopj__mqc.html#a4cde92619ccfc00fcaf4e8f168eccb96">opj_mqc::c</a>, <a class="el" href="structopj__mqc.html#a800663d44b19c3469c242a35840dd9bf">opj_mqc::ct</a>, and <a class="el" href="mqc__inl_8h.html#ae5188ad6071ff78926872e908e66bf6f">opj_mqc_bytein_macro</a>.</p>
542
543 <p>Referenced by <a class="el" href="group___m_q_c.html#gaa0e4b75040d645307e25dd53528e8512">opj_mqc_init_dec()</a>.</p>
544
545 </div>
546 </div>
547 <a class="anchor" id="ac95b072fbe38180fafa0c02051b12874"></a>
548 <div class="memitem">
549 <div class="memproto">
550 <table class="mlabels">
551   <tr>
552   <td class="mlabels-left">
553       <table class="memname">
554         <tr>
555           <td class="memname">static <a class="el" href="openjpeg_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> opj_mqc_raw_decode </td>
556           <td>(</td>
557           <td class="paramtype"><a class="el" href="group___m_q_c.html#ga49560555308b38694eddc876275ed4bc">opj_mqc_t</a> *&#160;</td>
558           <td class="paramname"><em>mqc</em></td><td>)</td>
559           <td></td>
560         </tr>
561       </table>
562   </td>
563   <td class="mlabels-right">
564 <span class="mlabels"><span class="mlabel">static</span></span>  </td>
565   </tr>
566 </table>
567 </div><div class="memdoc">
568
569 <p>Decode a symbol using raw-decoder. </p>
570 <p>Cfr p.506 TAUBMAN </p><dl class="params"><dt>Parameters</dt><dd>
571   <table class="params">
572     <tr><td class="paramname">mqc</td><td>MQC handle </td></tr>
573   </table>
574   </dd>
575 </dl>
576 <dl class="section return"><dt>Returns</dt><dd>Returns the decoded symbol (0 or 1) </dd></dl>
577
578 <p>References <a class="el" href="structopj__mqc.html#a3db4ba6d16362a3bb01801c76f3dad63">opj_mqc::bp</a>, <a class="el" href="structopj__mqc.html#a4cde92619ccfc00fcaf4e8f168eccb96">opj_mqc::c</a>, and <a class="el" href="structopj__mqc.html#a800663d44b19c3469c242a35840dd9bf">opj_mqc::ct</a>.</p>
579
580 <p>Referenced by <a class="el" href="group___t1.html#gab0a7bec44865423db1e55dd10e6b51fe">opj_t1_dec_refpass_step_raw()</a>, and <a class="el" href="group___t1.html#ga637be949c4d76c22bcf308c3454efd93">opj_t1_dec_sigpass_step_raw()</a>.</p>
581
582 </div>
583 </div>
584 </div><!-- contents -->
585 <!-- start footer part -->
586 <hr class="footer"/><address class="footer"><small>
587 Generated by &#160;<a href="http://www.doxygen.org/index.html">
588 <img class="footer" src="doxygen.png" alt="doxygen"/>
589 </a> 1.8.10
590 </small></address>
591 </body>
592 </html>