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