openjpeg/doxygen/mqc__inl_8h.html

948 lines
44 KiB
HTML
Raw Permalink Normal View History

2022-05-13 20:21:13 +02:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2017-08-10 06:39:58 +02:00
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
2022-05-13 20:21:13 +02:00
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
2017-08-10 06:39:58 +02:00
<title>OpenJPEG: mqc_inl.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">OpenJPEG
2022-05-13 20:21:13 +02:00
&#160;<span id="projectnumber">2.5.0</span>
2017-08-10 06:39:58 +02:00
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
2022-05-13 20:21:13 +02:00
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
2017-08-10 06:39:58 +02:00
<div id="nav-path" class="navpath">
<ul>
2020-12-28 22:12:25 +01:00
<li class="navelem"><a class="el" href="dir_43e0a1f539e00dcfa1a6bc4d4fee4fc2.html">home</a></li><li class="navelem"><a class="el" href="dir_cb9b2b419d92b64f7cee83d8faf7a4ab.html">even</a></li><li class="navelem"><a class="el" href="dir_f75d9a0165d6564a1e04793ef847d41d.html">openjpeg</a></li><li class="navelem"><a class="el" href="dir_5f588d7ea139c1aae751d03c13a16064.html">openjpeg</a></li><li class="navelem"><a class="el" href="dir_378f732e812ef6cbaaae22e96a4fa79f.html">src</a></li><li class="navelem"><a class="el" href="dir_19dcb5713315405a27e1bde75a489a4c.html">lib</a></li><li class="navelem"><a class="el" href="dir_54e5bc4f0640fea590afaf04f4d9c88d.html">openjp2</a></li> </ul>
2017-08-10 06:39:58 +02:00
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">mqc_inl.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><a href="mqc__inl_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<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>
<tr class="separator:a77750aa7d64cf6f783400c88435e99a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a0e2e2ac16b81932dd21a765c9acb71d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:ae5188ad6071ff78926872e908e66bf6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a26748854179015d73a35f07ed00b1f9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
<tr class="separator:a40c56ca9f2d05d6107741d6f701616cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
2020-12-28 22:12:25 +01:00
<tr class="memitem:aaa7fd5399c753edfc3cf8d4ee3c5a16c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#aaa7fd5399c753edfc3cf8d4ee3c5a16c">DOWNLOAD_MQC_VARIABLES</a>(mqc, curctx, a, c, ct)</td></tr>
<tr class="separator:aaa7fd5399c753edfc3cf8d4ee3c5a16c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d0d6c32ec7bb70eedefc7fc8c1bf3df"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#a6d0d6c32ec7bb70eedefc7fc8c1bf3df">UPLOAD_MQC_VARIABLES</a>(mqc, curctx, a, c, ct)</td></tr>
<tr class="separator:a6d0d6c32ec7bb70eedefc7fc8c1bf3df"><td class="memSeparator" colspan="2">&#160;</td></tr>
2017-08-10 06:39:58 +02:00
<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>
2022-05-13 20:21:13 +02:00
<tr class="memdesc:a7364151e7c65e86436818cef3f7ad822"><td class="mdescLeft">&#160;</td><td class="mdescRight">Renormalize mqc-&gt;a and mqc-&gt;c while decoding. <a href="mqc__inl_8h.html#a7364151e7c65e86436818cef3f7ad822">More...</a><br /></td></tr>
2017-08-10 06:39:58 +02:00
<tr class="separator:a7364151e7c65e86436818cef3f7ad822"><td class="memSeparator" colspan="2">&#160;</td></tr>
<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>
2022-05-13 20:21:13 +02:00
<tr class="memdesc:a89ab47f40f5de66906de82d3e5bd724b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode a symbol. <a href="mqc__inl_8h.html#a89ab47f40f5de66906de82d3e5bd724b">More...</a><br /></td></tr>
2017-08-10 06:39:58 +02:00
<tr class="separator:a89ab47f40f5de66906de82d3e5bd724b"><td class="memSeparator" colspan="2">&#160;</td></tr>
2020-12-28 22:12:25 +01:00
<tr class="memitem:a2fba3969acc0cfbeac82390f5c4dd875"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#a2fba3969acc0cfbeac82390f5c4dd875">opj_mqc_renorme_macro</a>(mqc, a_, c_, ct_)</td></tr>
2022-05-13 20:21:13 +02:00
<tr class="memdesc:a2fba3969acc0cfbeac82390f5c4dd875"><td class="mdescLeft">&#160;</td><td class="mdescRight">Renormalize mqc-&gt;a and mqc-&gt;c while encoding, so that mqc-&gt;a stays between 0x8000 and 0x10000. <a href="mqc__inl_8h.html#a2fba3969acc0cfbeac82390f5c4dd875">More...</a><br /></td></tr>
2020-12-28 22:12:25 +01:00
<tr class="separator:a2fba3969acc0cfbeac82390f5c4dd875"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6bb4b724da9bf77a3241ce9b5fdf1b7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#ac6bb4b724da9bf77a3241ce9b5fdf1b7">opj_mqc_codemps_macro</a>(mqc, curctx, a, c, ct)</td></tr>
<tr class="separator:ac6bb4b724da9bf77a3241ce9b5fdf1b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a833694258cf5a2a12738f6d2d4a15107"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#a833694258cf5a2a12738f6d2d4a15107">opj_mqc_codelps_macro</a>(mqc, curctx, a, c, ct)</td></tr>
<tr class="separator:a833694258cf5a2a12738f6d2d4a15107"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cf12d318ac2c5190757020d569c0188"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#a8cf12d318ac2c5190757020d569c0188">opj_mqc_encode_macro</a>(mqc, curctx, a, c, ct, d)</td></tr>
<tr class="separator:a8cf12d318ac2c5190757020d569c0188"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd3b47c5ec0636042f036148283daaf0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#afd3b47c5ec0636042f036148283daaf0">opj_mqc_bypass_enc_macro</a>(mqc, c, ct, d)</td></tr>
<tr class="separator:afd3b47c5ec0636042f036148283daaf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
2017-08-10 06:39:58 +02:00
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
2022-05-13 20:21:13 +02:00
<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="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc)</td></tr>
<tr class="memdesc:ac95b072fbe38180fafa0c02051b12874"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode a symbol using raw-decoder. <a href="mqc__inl_8h.html#ac95b072fbe38180fafa0c02051b12874">More...</a><br /></td></tr>
2017-08-10 06:39:58 +02:00
<tr class="separator:ac95b072fbe38180fafa0c02051b12874"><td class="memSeparator" colspan="2">&#160;</td></tr>
2022-05-13 20:21:13 +02:00
<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="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *const mqc)</td></tr>
<tr class="memdesc:af1feff8274fe5a9da129d93322fce03e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Input a byte. <a href="mqc__inl_8h.html#af1feff8274fe5a9da129d93322fce03e">More...</a><br /></td></tr>
2017-08-10 06:39:58 +02:00
<tr class="separator:af1feff8274fe5a9da129d93322fce03e"><td class="memSeparator" colspan="2">&#160;</td></tr>
2022-05-13 20:21:13 +02:00
<tr class="memitem:a0c8f333dd527ed82faec6dfec5b1711b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc__inl_8h.html#a0c8f333dd527ed82faec6dfec5b1711b">opj_mqc_byteout</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc)</td></tr>
<tr class="memdesc:a0c8f333dd527ed82faec6dfec5b1711b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Output a byte, doing bit-stuffing if necessary. <a href="mqc__inl_8h.html#a0c8f333dd527ed82faec6dfec5b1711b">More...</a><br /></td></tr>
2020-12-28 22:12:25 +01:00
<tr class="separator:a0c8f333dd527ed82faec6dfec5b1711b"><td class="memSeparator" colspan="2">&#160;</td></tr>
2017-08-10 06:39:58 +02:00
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
2022-05-13 20:21:13 +02:00
<a id="aaa7fd5399c753edfc3cf8d4ee3c5a16c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa7fd5399c753edfc3cf8d4ee3c5a16c">&#9670;&nbsp;</a></span>DOWNLOAD_MQC_VARIABLES</h2>
2017-08-10 06:39:58 +02:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DOWNLOAD_MQC_VARIABLES</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">mqc, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">curctx, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
2020-12-28 22:12:25 +01:00
<td class="paramname">a, </td>
2017-08-10 06:39:58 +02:00
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
2020-12-28 22:12:25 +01:00
<td class="paramname">c, </td>
2017-08-10 06:39:58 +02:00
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">ct&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
2022-05-13 20:21:13 +02:00
<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>
2017-08-10 06:39:58 +02:00
</div><!-- fragment -->
</div>
</div>
2022-05-13 20:21:13 +02:00
<a id="afd3b47c5ec0636042f036148283daaf0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd3b47c5ec0636042f036148283daaf0">&#9670;&nbsp;</a></span>opj_mqc_bypass_enc_macro</h2>
2020-12-28 22:12:25 +01:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define opj_mqc_bypass_enc_macro</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">mqc, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">c, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">ct, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">d&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
2022-05-13 20:21:13 +02:00
<b>Value:</b><div class="fragment"><div class="line">{\</div>
<div class="line"> if (ct == <a class="code" href="mqc_8h.html#af45d4e27106b58c5cc51bf4eaa2b3f4f">BYPASS_CT_INIT</a>) {\</div>
<div class="line"> ct = 8;\</div>
<div class="line"> }\</div>
<div class="line"> ct--;\</div>
<div class="line"> c = c + ((d) &lt;&lt; ct);\</div>
<div class="line"> if (ct == 0) {\</div>
<div class="line"> *mqc-&gt;bp = (<a class="code" href="openjpeg_8h.html#a22de44e15bddae7edfacf4e9ac9bb199">OPJ_BYTE</a>)c;\</div>
<div class="line"> ct = 8;\</div>
<div class="line"> <span class="comment">/* If the previous byte was 0xff, make sure that the next msb is 0 */</span> \</div>
<div class="line"> if (*mqc-&gt;bp == 0xff) {\</div>
<div class="line"> ct = 7;\</div>
<div class="line"> }\</div>
<div class="line"> mqc-&gt;bp++;\</div>
<div class="line"> c = 0;\</div>
<div class="line"> }\</div>
<div class="line">}</div>
2020-12-28 22:12:25 +01:00
</div><!-- fragment -->
</div>
</div>
2022-05-13 20:21:13 +02:00
<a id="ae5188ad6071ff78926872e908e66bf6f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5188ad6071ff78926872e908e66bf6f">&#9670;&nbsp;</a></span>opj_mqc_bytein_macro</h2>
2017-08-10 06:39:58 +02:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define opj_mqc_bytein_macro</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">mqc, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">c, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">ct&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
2022-05-13 20:21:13 +02:00
<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>
2020-12-28 22:12:25 +01:00
</div><!-- fragment -->
2017-08-10 06:39:58 +02:00
</div>
</div>
2022-05-13 20:21:13 +02:00
<a id="a833694258cf5a2a12738f6d2d4a15107"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a833694258cf5a2a12738f6d2d4a15107">&#9670;&nbsp;</a></span>opj_mqc_codelps_macro</h2>
2020-12-28 22:12:25 +01:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define opj_mqc_codelps_macro</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">mqc, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">curctx, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">c, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">ct&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
2022-05-13 20:21:13 +02:00
<b>Value:</b><div class="fragment"><div class="line">{ \</div>
<div class="line"> a -= (*curctx)-&gt;qeval; \</div>
<div class="line"> if (a &lt; (*curctx)-&gt;qeval) { \</div>
<div class="line"> c += (*curctx)-&gt;qeval; \</div>
<div class="line"> } <span class="keywordflow">else</span> { \</div>
<div class="line"> a = (*curctx)-&gt;qeval; \</div>
<div class="line"> } \</div>
<div class="line"> *curctx = (*curctx)-&gt;nlps; \</div>
<div class="line"> opj_mqc_renorme_macro(mqc, a, c, ct); \</div>
<div class="line">}</div>
2020-12-28 22:12:25 +01:00
</div><!-- fragment -->
</div>
</div>
2022-05-13 20:21:13 +02:00
<a id="ac6bb4b724da9bf77a3241ce9b5fdf1b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6bb4b724da9bf77a3241ce9b5fdf1b7">&#9670;&nbsp;</a></span>opj_mqc_codemps_macro</h2>
2020-12-28 22:12:25 +01:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define opj_mqc_codemps_macro</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">mqc, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">curctx, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">c, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">ct&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
2022-05-13 20:21:13 +02:00
<b>Value:</b><div class="fragment"><div class="line">{ \</div>
<div class="line"> a -= (*curctx)-&gt;qeval; \</div>
<div class="line"> if ((a &amp; 0x8000) == 0) { \</div>
<div class="line"> if (a &lt; (*curctx)-&gt;qeval) { \</div>
<div class="line"> a = (*curctx)-&gt;qeval; \</div>
<div class="line"> } <span class="keywordflow">else</span> { \</div>
<div class="line"> c += (*curctx)-&gt;qeval; \</div>
<div class="line"> } \</div>
<div class="line"> *curctx = (*curctx)-&gt;nmps; \</div>
<div class="line"> opj_mqc_renorme_macro(mqc, a, c, ct); \</div>
<div class="line"> } <span class="keywordflow">else</span> { \</div>
<div class="line"> c += (*curctx)-&gt;qeval; \</div>
<div class="line"> } \</div>
<div class="line">}</div>
2020-12-28 22:12:25 +01:00
</div><!-- fragment -->
</div>
</div>
2022-05-13 20:21:13 +02:00
<a id="a89ab47f40f5de66906de82d3e5bd724b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89ab47f40f5de66906de82d3e5bd724b">&#9670;&nbsp;</a></span>opj_mqc_decode</h2>
2017-08-10 06:39:58 +02:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define opj_mqc_decode</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">d, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">mqc&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<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>
</tr>
</table>
</div><div class="memdoc">
<p>Decode a symbol. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">d</td><td>OPJ_UINT32 value where to store the decoded symbol </td></tr>
<tr><td class="paramname">mqc</td><td>MQC handle </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns the decoded symbol (0 or 1) in d </dd></dl>
</div>
</div>
2022-05-13 20:21:13 +02:00
<a id="a40c56ca9f2d05d6107741d6f701616cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40c56ca9f2d05d6107741d6f701616cf">&#9670;&nbsp;</a></span>opj_mqc_decode_macro</h2>
2017-08-10 06:39:58 +02:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define opj_mqc_decode_macro</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">d, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">mqc, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">curctx, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">c, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">ct&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
2022-05-13 20:21:13 +02:00
<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>
2020-12-28 22:12:25 +01:00
</div><!-- fragment -->
2017-08-10 06:39:58 +02:00
</div>
</div>
2022-05-13 20:21:13 +02:00
<a id="a8cf12d318ac2c5190757020d569c0188"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8cf12d318ac2c5190757020d569c0188">&#9670;&nbsp;</a></span>opj_mqc_encode_macro</h2>
2020-12-28 22:12:25 +01:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define opj_mqc_encode_macro</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">mqc, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">curctx, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">c, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">ct, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">d&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
2022-05-13 20:21:13 +02:00
<b>Value:</b><div class="fragment"><div class="line">{ \</div>
<div class="line"> if ((*curctx)-&gt;mps == (d)) { \</div>
<div class="line"> opj_mqc_codemps_macro(mqc, curctx, a, c, ct); \</div>
<div class="line"> } <span class="keywordflow">else</span> { \</div>
<div class="line"> opj_mqc_codelps_macro(mqc, curctx, a, c, ct); \</div>
<div class="line"> } \</div>
<div class="line">}</div>
2020-12-28 22:12:25 +01:00
</div><!-- fragment -->
</div>
</div>
2022-05-13 20:21:13 +02:00
<a id="a0e2e2ac16b81932dd21a765c9acb71d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e2e2ac16b81932dd21a765c9acb71d5">&#9670;&nbsp;</a></span>opj_mqc_lpsexchange_macro</h2>
2017-08-10 06:39:58 +02:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define opj_mqc_lpsexchange_macro</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">d, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">curctx, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">a&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
2022-05-13 20:21:13 +02:00
<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 -->
2017-08-10 06:39:58 +02:00
</div>
</div>
2022-05-13 20:21:13 +02:00
<a id="a77750aa7d64cf6f783400c88435e99a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77750aa7d64cf6f783400c88435e99a8">&#9670;&nbsp;</a></span>opj_mqc_mpsexchange_macro</h2>
2017-08-10 06:39:58 +02:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define opj_mqc_mpsexchange_macro</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">d, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">curctx, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">a&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
2022-05-13 20:21:13 +02:00
<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 -->
2017-08-10 06:39:58 +02:00
</div>
</div>
2022-05-13 20:21:13 +02:00
<a id="a7364151e7c65e86436818cef3f7ad822"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7364151e7c65e86436818cef3f7ad822">&#9670;&nbsp;</a></span>opj_mqc_renormd</h2>
2017-08-10 06:39:58 +02:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define opj_mqc_renormd</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">mqc</td><td>)</td>
<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>
</tr>
</table>
</div><div class="memdoc">
<p>Renormalize mqc-&gt;a and mqc-&gt;c while decoding. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mqc</td><td>MQC handle </td></tr>
</table>
</dd>
</dl>
</div>
</div>
2022-05-13 20:21:13 +02:00
<a id="a26748854179015d73a35f07ed00b1f9d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26748854179015d73a35f07ed00b1f9d">&#9670;&nbsp;</a></span>opj_mqc_renormd_macro</h2>
2017-08-10 06:39:58 +02:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define opj_mqc_renormd_macro</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">mqc, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">a, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">c, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">ct&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
2022-05-13 20:21:13 +02:00
<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>
2020-12-28 22:12:25 +01:00
</div><!-- fragment -->
2017-08-10 06:39:58 +02:00
</div>
</div>
2022-05-13 20:21:13 +02:00
<a id="a2fba3969acc0cfbeac82390f5c4dd875"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2fba3969acc0cfbeac82390f5c4dd875">&#9670;&nbsp;</a></span>opj_mqc_renorme_macro</h2>
2020-12-28 22:12:25 +01:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define opj_mqc_renorme_macro</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">mqc, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">a_, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">c_, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">ct_&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
2022-05-13 20:21:13 +02:00
<b>Value:</b><div class="fragment"><div class="line">{ \</div>
<div class="line"> do { \</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"> if (ct_ == 0) { \</div>
<div class="line"> mqc-&gt;c = c_; \</div>
<div class="line"> opj_mqc_byteout(mqc); \</div>
<div class="line"> c_ = mqc-&gt;c; \</div>
<div class="line"> ct_ = mqc-&gt;ct; \</div>
<div class="line"> } \</div>
<div class="line"> } <span class="keywordflow">while</span>( (a_ &amp; 0x8000) == 0); \</div>
<div class="line">}</div>
2020-12-28 22:12:25 +01:00
</div><!-- fragment -->
<p>Renormalize mqc-&gt;a and mqc-&gt;c while encoding, so that mqc-&gt;a stays between 0x8000 and 0x10000. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mqc</td><td>MQC handle </td></tr>
<tr><td class="paramname">a_</td><td>value of mqc-&gt;a </td></tr>
<tr><td class="paramname">c_</td><td>value of mqc-&gt;c_ </td></tr>
<tr><td class="paramname">ct_</td><td>value of mqc-&gt;ct_ </td></tr>
</table>
</dd>
</dl>
2019-04-02 16:25:55 +02:00
2020-12-28 22:12:25 +01:00
</div>
</div>
2022-05-13 20:21:13 +02:00
<a id="a6d0d6c32ec7bb70eedefc7fc8c1bf3df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d0d6c32ec7bb70eedefc7fc8c1bf3df">&#9670;&nbsp;</a></span>UPLOAD_MQC_VARIABLES</h2>
2017-08-10 06:39:58 +02:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define UPLOAD_MQC_VARIABLES</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">mqc, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">curctx, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
2020-12-28 22:12:25 +01:00
<td class="paramname">a, </td>
2017-08-10 06:39:58 +02:00
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
2020-12-28 22:12:25 +01:00
<td class="paramname">c, </td>
2017-08-10 06:39:58 +02:00
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">ct&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
2022-05-13 20:21:13 +02:00
<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 -->
2017-08-10 06:39:58 +02:00
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
2022-05-13 20:21:13 +02:00
<a id="af1feff8274fe5a9da129d93322fce03e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1feff8274fe5a9da129d93322fce03e">&#9670;&nbsp;</a></span>opj_mqc_bytein()</h2>
2017-08-10 06:39:58 +02:00
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="openjpeg_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> void opj_mqc_bytein </td>
<td>(</td>
2022-05-13 20:21:13 +02:00
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *const&#160;</td>
2017-08-10 06:39:58 +02:00
<td class="paramname"><em>mqc</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Input a byte. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mqc</td><td>MQC handle </td></tr>
</table>
</dd>
</dl>
2022-05-13 20:21:13 +02:00
<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>
2017-08-10 06:39:58 +02:00
2022-05-13 20:21:13 +02:00
<p class="reference">Referenced by <a class="el" href="mqc_8h.html#aa0e4b75040d645307e25dd53528e8512">opj_mqc_init_dec()</a>.</p>
2017-08-10 06:39:58 +02:00
</div>
</div>
2022-05-13 20:21:13 +02:00
<a id="a0c8f333dd527ed82faec6dfec5b1711b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0c8f333dd527ed82faec6dfec5b1711b">&#9670;&nbsp;</a></span>opj_mqc_byteout()</h2>
2020-12-28 22:12:25 +01:00
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void opj_mqc_byteout </td>
<td>(</td>
2022-05-13 20:21:13 +02:00
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
2020-12-28 22:12:25 +01:00
<td class="paramname"><em>mqc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
2019-04-02 16:25:55 +02:00
2020-12-28 22:12:25 +01:00
<p>Output a byte, doing bit-stuffing if necessary. </p>
<p>After a 0xff byte, the next byte must be smaller than 0x90. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mqc</td><td>MQC handle </td></tr>
</table>
</dd>
</dl>
2022-05-13 20:21:13 +02:00
<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>, <a class="el" href="structopj__mqc.html#a800663d44b19c3469c242a35840dd9bf">opj_mqc::ct</a>, and <a class="el" href="structopj__mqc.html#ac6e2a167d3bdf52a3c7378cc62d3ff20">opj_mqc::start</a>.</p>
2020-12-28 22:12:25 +01:00
2022-05-13 20:21:13 +02:00
<p class="reference">Referenced by <a class="el" href="mqc_8h.html#ae8351e8a317e68679bf5ce649e91f48d">opj_mqc_erterm_enc()</a>, and <a class="el" href="mqc_8h.html#a39b562515ebaa0a9707c51b6770ad7fe">opj_mqc_flush()</a>.</p>
2020-12-28 22:12:25 +01:00
</div>
</div>
2022-05-13 20:21:13 +02:00
<a id="ac95b072fbe38180fafa0c02051b12874"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac95b072fbe38180fafa0c02051b12874">&#9670;&nbsp;</a></span>opj_mqc_raw_decode()</h2>
2017-08-10 06:39:58 +02:00
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<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>
<td>(</td>
2022-05-13 20:21:13 +02:00
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
2017-08-10 06:39:58 +02:00
<td class="paramname"><em>mqc</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Decode a symbol using raw-decoder. </p>
<p>Cfr p.506 TAUBMAN </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">mqc</td><td>MQC handle </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns the decoded symbol (0 or 1) </dd></dl>
2022-05-13 20:21:13 +02:00
<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>
2017-08-10 06:39:58 +02:00
2022-05-13 20:21:13 +02:00
<p class="reference">Referenced by <a class="el" href="t1_8c.html#ab0a7bec44865423db1e55dd10e6b51fe">opj_t1_dec_refpass_step_raw()</a>, and <a class="el" href="t1_8c.html#a637be949c4d76c22bcf308c3454efd93">opj_t1_dec_sigpass_step_raw()</a>.</p>
2017-08-10 06:39:58 +02:00
</div>
</div>
</div><!-- contents -->
2022-05-13 20:21:13 +02:00
<div class="ttc" id="aopenjpeg_8h_html_a22de44e15bddae7edfacf4e9ac9bb199"><div class="ttname"><a href="openjpeg_8h.html#a22de44e15bddae7edfacf4e9ac9bb199">OPJ_BYTE</a></div><div class="ttdeci">unsigned char OPJ_BYTE</div><div class="ttdef"><b>Definition:</b> openjpeg.h:123</div></div>
<div class="ttc" id="amqc_8h_html_af45d4e27106b58c5cc51bf4eaa2b3f4f"><div class="ttname"><a href="mqc_8h.html#af45d4e27106b58c5cc51bf4eaa2b3f4f">BYPASS_CT_INIT</a></div><div class="ttdeci">#define BYPASS_CT_INIT</div><div class="ttdef"><b>Definition:</b> mqc.h:99</div></div>
<div class="ttc" id="aopenjpeg_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:132</div></div>
<div class="ttc" id="astructopj__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>
2017-08-10 06:39:58 +02:00
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
2022-05-13 20:21:13 +02:00
</a> 1.8.17
2017-08-10 06:39:58 +02:00
</small></address>
</body>
</html>