openjpeg/doxygen/mqc_8h.html

854 lines
52 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OpenJPEG: mqc.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
&#160;<span id="projectnumber">2.5.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- 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>
<div id="nav-path" class="navpath">
<ul>
<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>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> </div>
<div class="headertitle">
<div class="title">mqc.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Implementation of an MQ-Coder (MQC)
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="opj__common_8h_source.html">opj_common.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="mqc__inl_8h_source.html">mqc_inl.h</a>&quot;</code><br />
</div>
<p><a href="mqc_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="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopj__mqc__state.html">opj_mqc_state</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This struct defines the state of a context. <a href="structopj__mqc__state.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structopj__mqc.html">opj_mqc</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">MQ coder. <a href="structopj__mqc.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a2ea7971c7ed2c6e19bc3e9c3ba26b68f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#a2ea7971c7ed2c6e19bc3e9c3ba26b68f">MQC_NUMCTXS</a>&#160;&#160;&#160;19</td></tr>
<tr class="separator:a2ea7971c7ed2c6e19bc3e9c3ba26b68f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af45d4e27106b58c5cc51bf4eaa2b3f4f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#af45d4e27106b58c5cc51bf4eaa2b3f4f">BYPASS_CT_INIT</a>&#160;&#160;&#160;0xDEADBEEF</td></tr>
<tr class="separator:af45d4e27106b58c5cc51bf4eaa2b3f4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a9825c307fa8289e5cb331dd7225c33c2"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structopj__mqc__state.html">opj_mqc_state</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#a9825c307fa8289e5cb331dd7225c33c2">opj_mqc_state_t</a></td></tr>
<tr class="memdesc:a9825c307fa8289e5cb331dd7225c33c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">This struct defines the state of a context. <a href="mqc_8h.html#a9825c307fa8289e5cb331dd7225c33c2">More...</a><br /></td></tr>
<tr class="separator:a9825c307fa8289e5cb331dd7225c33c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88db3570f4dea454a8a2251b174d5050"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structopj__mqc.html">opj_mqc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a></td></tr>
<tr class="memdesc:a88db3570f4dea454a8a2251b174d5050"><td class="mdescLeft">&#160;</td><td class="mdescRight">MQ coder. <a href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">More...</a><br /></td></tr>
<tr class="separator:a88db3570f4dea454a8a2251b174d5050"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Exported functions</h2></td></tr>
<tr class="memitem:a7315986b3a52b2e2287a49ab1780ae4f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#a7315986b3a52b2e2287a49ab1780ae4f">opj_mqc_setcurctx</a>(mqc, ctxno)&#160;&#160;&#160;(mqc)-&gt;curctx = &amp;(mqc)-&gt;ctxs[(<a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>)(ctxno)]</td></tr>
<tr class="memdesc:a7315986b3a52b2e2287a49ab1780ae4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the current context used for coding/decoding. <a href="mqc_8h.html#a7315986b3a52b2e2287a49ab1780ae4f">More...</a><br /></td></tr>
<tr class="separator:a7315986b3a52b2e2287a49ab1780ae4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9c6d11f48074e5064584d1e5d0dcd0f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#ac9c6d11f48074e5064584d1e5d0dcd0f">opj_mqc_numbytes</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc)</td></tr>
<tr class="memdesc:ac9c6d11f48074e5064584d1e5d0dcd0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of bytes written/read since initialisation. <a href="mqc_8h.html#ac9c6d11f48074e5064584d1e5d0dcd0f">More...</a><br /></td></tr>
<tr class="separator:ac9c6d11f48074e5064584d1e5d0dcd0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b1de23283892ba50029b75ab1b9a91a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#a9b1de23283892ba50029b75ab1b9a91a">opj_mqc_resetstates</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc)</td></tr>
<tr class="memdesc:a9b1de23283892ba50029b75ab1b9a91a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset the states of all the context of the coder/decoder (each context is set to a state where 0 and 1 are more or less equiprobable) <a href="mqc_8h.html#a9b1de23283892ba50029b75ab1b9a91a">More...</a><br /></td></tr>
<tr class="separator:a9b1de23283892ba50029b75ab1b9a91a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7260daca59a1e01f087a7806db045853"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#a7260daca59a1e01f087a7806db045853">opj_mqc_setstate</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> ctxno, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> msb, <a class="el" href="openjpeg_8h.html#a3cec91ef9e73677f0dbd60d4e42401b9">OPJ_INT32</a> prob)</td></tr>
<tr class="memdesc:a7260daca59a1e01f087a7806db045853"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the state of a particular context. <a href="mqc_8h.html#a7260daca59a1e01f087a7806db045853">More...</a><br /></td></tr>
<tr class="separator:a7260daca59a1e01f087a7806db045853"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1a06acd83ef63950db20f73251efab3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#ac1a06acd83ef63950db20f73251efab3">opj_mqc_init_enc</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc, <a class="el" href="openjpeg_8h.html#a22de44e15bddae7edfacf4e9ac9bb199">OPJ_BYTE</a> *bp)</td></tr>
<tr class="memdesc:ac1a06acd83ef63950db20f73251efab3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the encoder. <a href="mqc_8h.html#ac1a06acd83ef63950db20f73251efab3">More...</a><br /></td></tr>
<tr class="separator:ac1a06acd83ef63950db20f73251efab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39b562515ebaa0a9707c51b6770ad7fe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#a39b562515ebaa0a9707c51b6770ad7fe">opj_mqc_flush</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc)</td></tr>
<tr class="memdesc:a39b562515ebaa0a9707c51b6770ad7fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flush the encoder, so that all remaining data is written. <a href="mqc_8h.html#a39b562515ebaa0a9707c51b6770ad7fe">More...</a><br /></td></tr>
<tr class="separator:a39b562515ebaa0a9707c51b6770ad7fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba5f2d1b605d35e514aeb7a2827996b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#aba5f2d1b605d35e514aeb7a2827996b9">opj_mqc_bypass_init_enc</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc)</td></tr>
<tr class="memdesc:aba5f2d1b605d35e514aeb7a2827996b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">BYPASS mode switch, initialization operation. <a href="mqc_8h.html#aba5f2d1b605d35e514aeb7a2827996b9">More...</a><br /></td></tr>
<tr class="separator:aba5f2d1b605d35e514aeb7a2827996b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a259d02eadde28d92edac74dbc40323"><td class="memItemLeft" align="right" valign="top"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#a4a259d02eadde28d92edac74dbc40323">opj_mqc_bypass_get_extra_bytes</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc, <a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> erterm)</td></tr>
<tr class="memdesc:a4a259d02eadde28d92edac74dbc40323"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return number of extra bytes to add to <a class="el" href="mqc_8h.html#ac9c6d11f48074e5064584d1e5d0dcd0f" title="Return the number of bytes written/read since initialisation.">opj_mqc_numbytes()</a> for the² size of a non-terminating BYPASS pass. <a href="mqc_8h.html#a4a259d02eadde28d92edac74dbc40323">More...</a><br /></td></tr>
<tr class="separator:a4a259d02eadde28d92edac74dbc40323"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad886df66150746e1a41d3e20037683fb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#ad886df66150746e1a41d3e20037683fb">opj_mqc_bypass_enc</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> d)</td></tr>
<tr class="memdesc:ad886df66150746e1a41d3e20037683fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">BYPASS mode switch, coding operation. <a href="mqc_8h.html#ad886df66150746e1a41d3e20037683fb">More...</a><br /></td></tr>
<tr class="separator:ad886df66150746e1a41d3e20037683fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9eb31de8e3ede6acad7469f9ea0b0d1b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#a9eb31de8e3ede6acad7469f9ea0b0d1b">opj_mqc_bypass_flush_enc</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc, <a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> erterm)</td></tr>
<tr class="memdesc:a9eb31de8e3ede6acad7469f9ea0b0d1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">BYPASS mode switch, flush operation. <a href="mqc_8h.html#a9eb31de8e3ede6acad7469f9ea0b0d1b">More...</a><br /></td></tr>
<tr class="separator:a9eb31de8e3ede6acad7469f9ea0b0d1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a858901a7f568a2845885e537aaeab825"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#a858901a7f568a2845885e537aaeab825">opj_mqc_reset_enc</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc)</td></tr>
<tr class="memdesc:a858901a7f568a2845885e537aaeab825"><td class="mdescLeft">&#160;</td><td class="mdescRight">RESET mode switch. <a href="mqc_8h.html#a858901a7f568a2845885e537aaeab825">More...</a><br /></td></tr>
<tr class="separator:a858901a7f568a2845885e537aaeab825"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a178f2a2119c59ae30169835162bd73e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#a178f2a2119c59ae30169835162bd73e7">opj_mqc_restart_init_enc</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc)</td></tr>
<tr class="memdesc:a178f2a2119c59ae30169835162bd73e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">RESTART mode switch (TERMALL) reinitialisation. <a href="mqc_8h.html#a178f2a2119c59ae30169835162bd73e7">More...</a><br /></td></tr>
<tr class="separator:a178f2a2119c59ae30169835162bd73e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8351e8a317e68679bf5ce649e91f48d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#ae8351e8a317e68679bf5ce649e91f48d">opj_mqc_erterm_enc</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc)</td></tr>
<tr class="memdesc:ae8351e8a317e68679bf5ce649e91f48d"><td class="mdescLeft">&#160;</td><td class="mdescRight">ERTERM mode switch (PTERM) <a href="mqc_8h.html#ae8351e8a317e68679bf5ce649e91f48d">More...</a><br /></td></tr>
<tr class="separator:ae8351e8a317e68679bf5ce649e91f48d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6195cf3fe837a5acbaa721c3e453465"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#af6195cf3fe837a5acbaa721c3e453465">opj_mqc_segmark_enc</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc)</td></tr>
<tr class="memdesc:af6195cf3fe837a5acbaa721c3e453465"><td class="mdescLeft">&#160;</td><td class="mdescRight">SEGMARK mode switch (SEGSYM) <a href="mqc_8h.html#af6195cf3fe837a5acbaa721c3e453465">More...</a><br /></td></tr>
<tr class="separator:af6195cf3fe837a5acbaa721c3e453465"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0e4b75040d645307e25dd53528e8512"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#aa0e4b75040d645307e25dd53528e8512">opj_mqc_init_dec</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc, <a class="el" href="openjpeg_8h.html#a22de44e15bddae7edfacf4e9ac9bb199">OPJ_BYTE</a> *bp, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> len, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> extra_writable_bytes)</td></tr>
<tr class="memdesc:aa0e4b75040d645307e25dd53528e8512"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the decoder for MQ decoding. <a href="mqc_8h.html#aa0e4b75040d645307e25dd53528e8512">More...</a><br /></td></tr>
<tr class="separator:aa0e4b75040d645307e25dd53528e8512"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a683734858d69085fd07394d1d3fae633"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#a683734858d69085fd07394d1d3fae633">opj_mqc_raw_init_dec</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc, <a class="el" href="openjpeg_8h.html#a22de44e15bddae7edfacf4e9ac9bb199">OPJ_BYTE</a> *bp, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> len, <a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> extra_writable_bytes)</td></tr>
<tr class="memdesc:a683734858d69085fd07394d1d3fae633"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the decoder for RAW decoding. <a href="mqc_8h.html#a683734858d69085fd07394d1d3fae633">More...</a><br /></td></tr>
<tr class="separator:a683734858d69085fd07394d1d3fae633"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bdec54dabf502c578e46d6b34ce8b93"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mqc_8h.html#a5bdec54dabf502c578e46d6b34ce8b93">opq_mqc_finish_dec</a> (<a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *mqc)</td></tr>
<tr class="memdesc:a5bdec54dabf502c578e46d6b34ce8b93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminate RAW/MQC decoding. <a href="mqc_8h.html#a5bdec54dabf502c578e46d6b34ce8b93">More...</a><br /></td></tr>
<tr class="separator:a5bdec54dabf502c578e46d6b34ce8b93"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implementation of an MQ-Coder (MQC) </p>
<p>The functions in <a class="el" href="mqc_8c.html">MQC.C</a> have for goal to realize the MQ-coder operations. The functions in <a class="el" href="mqc_8c.html">MQC.C</a> are used by some function in <a class="el" href="t1_8c.html">T1.C</a>. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="af45d4e27106b58c5cc51bf4eaa2b3f4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af45d4e27106b58c5cc51bf4eaa2b3f4f">&#9670;&nbsp;</a></span>BYPASS_CT_INIT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define BYPASS_CT_INIT&#160;&#160;&#160;0xDEADBEEF</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2ea7971c7ed2c6e19bc3e9c3ba26b68f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ea7971c7ed2c6e19bc3e9c3ba26b68f">&#9670;&nbsp;</a></span>MQC_NUMCTXS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MQC_NUMCTXS&#160;&#160;&#160;19</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a7315986b3a52b2e2287a49ab1780ae4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7315986b3a52b2e2287a49ab1780ae4f">&#9670;&nbsp;</a></span>opj_mqc_setcurctx</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define opj_mqc_setcurctx</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">ctxno&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;(mqc)-&gt;curctx = &amp;(mqc)-&gt;ctxs[(<a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>)(ctxno)]</td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the current context used for coding/decoding. </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">ctxno</td><td>Number that identifies the context </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="a9825c307fa8289e5cb331dd7225c33c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9825c307fa8289e5cb331dd7225c33c2">&#9670;&nbsp;</a></span>opj_mqc_state_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structopj__mqc__state.html">opj_mqc_state</a> <a class="el" href="mqc_8h.html#a9825c307fa8289e5cb331dd7225c33c2">opj_mqc_state_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>This struct defines the state of a context. </p>
</div>
</div>
<a id="a88db3570f4dea454a8a2251b174d5050"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88db3570f4dea454a8a2251b174d5050">&#9670;&nbsp;</a></span>opj_mqc_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structopj__mqc.html">opj_mqc</a> <a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>MQ coder. </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ad886df66150746e1a41d3e20037683fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad886df66150746e1a41d3e20037683fb">&#9670;&nbsp;</a></span>opj_mqc_bypass_enc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void opj_mqc_bypass_enc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
<td class="paramname"><em>d</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>BYPASS mode switch, coding operation. </p>
<p>JPEG 2000 p 505. </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">d</td><td>The symbol to be encoded (0 or 1) </td></tr>
</table>
</dd>
</dl>
<p class="reference">References <a class="el" href="structopj__mqc.html#a3db4ba6d16362a3bb01801c76f3dad63">opj_mqc::bp</a>, <a class="el" href="mqc_8h.html#af45d4e27106b58c5cc51bf4eaa2b3f4f">BYPASS_CT_INIT</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>
</div>
</div>
<a id="a9eb31de8e3ede6acad7469f9ea0b0d1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9eb31de8e3ede6acad7469f9ea0b0d1b">&#9670;&nbsp;</a></span>opj_mqc_bypass_flush_enc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void opj_mqc_bypass_flush_enc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a>&#160;</td>
<td class="paramname"><em>erterm</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>BYPASS mode switch, flush operation. </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">erterm</td><td>1 if ERTERM is enabled, 0 otherwise </td></tr>
</table>
</dd>
</dl>
<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>
<p class="reference">Referenced by <a class="el" href="t1_8c.html#a0066492bf8c292bf235c1c754a3272bf">opj_t1_encode_cblk()</a>.</p>
</div>
</div>
<a id="a4a259d02eadde28d92edac74dbc40323"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a259d02eadde28d92edac74dbc40323">&#9670;&nbsp;</a></span>opj_mqc_bypass_get_extra_bytes()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> opj_mqc_bypass_get_extra_bytes </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a>&#160;</td>
<td class="paramname"><em>erterm</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return number of extra bytes to add to <a class="el" href="mqc_8h.html#ac9c6d11f48074e5064584d1e5d0dcd0f" title="Return the number of bytes written/read since initialisation.">opj_mqc_numbytes()</a> for the² size of a non-terminating BYPASS pass. </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">erterm</td><td>1 if ERTERM is enabled, 0 otherwise </td></tr>
</table>
</dd>
</dl>
<p class="reference">References <a class="el" href="structopj__mqc.html#a3db4ba6d16362a3bb01801c76f3dad63">opj_mqc::bp</a>, and <a class="el" href="structopj__mqc.html#a800663d44b19c3469c242a35840dd9bf">opj_mqc::ct</a>.</p>
<p class="reference">Referenced by <a class="el" href="t1_8c.html#a0066492bf8c292bf235c1c754a3272bf">opj_t1_encode_cblk()</a>.</p>
</div>
</div>
<a id="aba5f2d1b605d35e514aeb7a2827996b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba5f2d1b605d35e514aeb7a2827996b9">&#9670;&nbsp;</a></span>opj_mqc_bypass_init_enc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void opj_mqc_bypass_init_enc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>BYPASS mode switch, initialization operation. </p>
<p>JPEG 2000 p 505. </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>
<p class="reference">References <a class="el" href="structopj__mqc.html#a3db4ba6d16362a3bb01801c76f3dad63">opj_mqc::bp</a>, <a class="el" href="mqc_8h.html#af45d4e27106b58c5cc51bf4eaa2b3f4f">BYPASS_CT_INIT</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>
<p class="reference">Referenced by <a class="el" href="t1_8c.html#a0066492bf8c292bf235c1c754a3272bf">opj_t1_encode_cblk()</a>.</p>
</div>
</div>
<a id="ae8351e8a317e68679bf5ce649e91f48d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8351e8a317e68679bf5ce649e91f48d">&#9670;&nbsp;</a></span>opj_mqc_erterm_enc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void opj_mqc_erterm_enc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>ERTERM mode switch (PTERM) </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>
<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="mqc_8c.html#a0c8f333dd527ed82faec6dfec5b1711b">opj_mqc_byteout()</a>.</p>
<p class="reference">Referenced by <a class="el" href="t1_8c.html#a0066492bf8c292bf235c1c754a3272bf">opj_t1_encode_cblk()</a>.</p>
</div>
</div>
<a id="a39b562515ebaa0a9707c51b6770ad7fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39b562515ebaa0a9707c51b6770ad7fe">&#9670;&nbsp;</a></span>opj_mqc_flush()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void opj_mqc_flush </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Flush the encoder, so that all remaining data is written. </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>
<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>, <a class="el" href="mqc_8c.html#a0c8f333dd527ed82faec6dfec5b1711b">opj_mqc_byteout()</a>, and <a class="el" href="mqc_8c.html#a22d3ee14b5fa548d998bfcef2b34f344">opj_mqc_setbits()</a>.</p>
<p class="reference">Referenced by <a class="el" href="t1_8c.html#a0066492bf8c292bf235c1c754a3272bf">opj_t1_encode_cblk()</a>.</p>
</div>
</div>
<a id="aa0e4b75040d645307e25dd53528e8512"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0e4b75040d645307e25dd53528e8512">&#9670;&nbsp;</a></span>opj_mqc_init_dec()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void opj_mqc_init_dec </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="openjpeg_8h.html#a22de44e15bddae7edfacf4e9ac9bb199">OPJ_BYTE</a> *&#160;</td>
<td class="paramname"><em>bp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
<td class="paramname"><em>extra_writable_bytes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize the decoder for MQ decoding. </p>
<p>opj_mqc_finish_dec() must be absolutely called after finishing the decoding passes, so as to restore the bytes temporarily overwritten.</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">bp</td><td>Pointer to the start of the buffer from which the bytes will be read Note that OPJ_COMMON_CBLK_DATA_EXTRA bytes at the end of the buffer will be temporarily overwritten with an artificial 0xFF 0xFF marker. (they will be backuped in the mqc structure to be restored later) So bp must be at least len + OPJ_COMMON_CBLK_DATA_EXTRA large, and writable. </td></tr>
<tr><td class="paramname">len</td><td>Length of the input buffer </td></tr>
<tr><td class="paramname">extra_writable_bytes</td><td>Indicate how many bytes after len are writable. This is to indicate your consent that bp must be large enough. </td></tr>
</table>
</dd>
</dl>
<p class="reference">References <a class="el" href="structopj__mqc.html#a26cf29944f5a74b2a0af55defaed5e5d">opj_mqc::a</a>, <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>, <a class="el" href="structopj__mqc.html#a49f134a3878811e59581b25fc829a069">opj_mqc::end_of_byte_stream_counter</a>, <a class="el" href="mqc__inl_8h.html#af1feff8274fe5a9da129d93322fce03e">opj_mqc_bytein()</a>, <a class="el" href="mqc_8c.html#a4f0a5a2ce3c6ff564f7dc9bdaae4f961">opj_mqc_init_dec_common()</a>, and <a class="el" href="mqc_8h.html#a7315986b3a52b2e2287a49ab1780ae4f">opj_mqc_setcurctx</a>.</p>
<p class="reference">Referenced by <a class="el" href="t1_8c.html#ab90391839b2f56ca40aaae1b8748ca3c">opj_t1_decode_cblk()</a>.</p>
</div>
</div>
<a id="ac1a06acd83ef63950db20f73251efab3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac1a06acd83ef63950db20f73251efab3">&#9670;&nbsp;</a></span>opj_mqc_init_enc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void opj_mqc_init_enc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="openjpeg_8h.html#a22de44e15bddae7edfacf4e9ac9bb199">OPJ_BYTE</a> *&#160;</td>
<td class="paramname"><em>bp</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize the encoder. </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">bp</td><td>Pointer to the start of the buffer where the bytes will be written </td></tr>
</table>
</dd>
</dl>
<p class="reference">References <a class="el" href="structopj__mqc.html#a26cf29944f5a74b2a0af55defaed5e5d">opj_mqc::a</a>, <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>, <a class="el" href="structopj__mqc.html#a49f134a3878811e59581b25fc829a069">opj_mqc::end_of_byte_stream_counter</a>, <a class="el" href="mqc_8h.html#a7315986b3a52b2e2287a49ab1780ae4f">opj_mqc_setcurctx</a>, and <a class="el" href="structopj__mqc.html#ac6e2a167d3bdf52a3c7378cc62d3ff20">opj_mqc::start</a>.</p>
<p class="reference">Referenced by <a class="el" href="t1_8c.html#a0066492bf8c292bf235c1c754a3272bf">opj_t1_encode_cblk()</a>.</p>
</div>
</div>
<a id="ac9c6d11f48074e5064584d1e5d0dcd0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9c6d11f48074e5064584d1e5d0dcd0f">&#9670;&nbsp;</a></span>opj_mqc_numbytes()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a> opj_mqc_numbytes </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the number of bytes written/read since initialisation. </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 number of bytes already encoded </dd></dl>
<p class="reference">References <a class="el" href="structopj__mqc.html#a3db4ba6d16362a3bb01801c76f3dad63">opj_mqc::bp</a>, and <a class="el" href="structopj__mqc.html#ac6e2a167d3bdf52a3c7378cc62d3ff20">opj_mqc::start</a>.</p>
<p class="reference">Referenced by <a class="el" href="t1_8c.html#a0066492bf8c292bf235c1c754a3272bf">opj_t1_encode_cblk()</a>.</p>
</div>
</div>
<a id="a683734858d69085fd07394d1d3fae633"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a683734858d69085fd07394d1d3fae633">&#9670;&nbsp;</a></span>opj_mqc_raw_init_dec()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void opj_mqc_raw_init_dec </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="openjpeg_8h.html#a22de44e15bddae7edfacf4e9ac9bb199">OPJ_BYTE</a> *&#160;</td>
<td class="paramname"><em>bp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
<td class="paramname"><em>extra_writable_bytes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize the decoder for RAW decoding. </p>
<p>opj_mqc_finish_dec() must be absolutely called after finishing the decoding passes, so as to restore the bytes temporarily overwritten.</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">bp</td><td>Pointer to the start of the buffer from which the bytes will be read Note that OPJ_COMMON_CBLK_DATA_EXTRA bytes at the end of the buffer will be temporarily overwritten with an artificial 0xFF 0xFF marker. (they will be backuped in the mqc structure to be restored later) So bp must be at least len + OPJ_COMMON_CBLK_DATA_EXTRA large, and writable. </td></tr>
<tr><td class="paramname">len</td><td>Length of the input buffer </td></tr>
<tr><td class="paramname">extra_writable_bytes</td><td>Indicate how many bytes after len are writable. This is to indicate your consent that bp must be large enough. </td></tr>
</table>
</dd>
</dl>
<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_8c.html#a4f0a5a2ce3c6ff564f7dc9bdaae4f961">opj_mqc_init_dec_common()</a>.</p>
<p class="reference">Referenced by <a class="el" href="t1_8c.html#ab90391839b2f56ca40aaae1b8748ca3c">opj_t1_decode_cblk()</a>.</p>
</div>
</div>
<a id="a858901a7f568a2845885e537aaeab825"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a858901a7f568a2845885e537aaeab825">&#9670;&nbsp;</a></span>opj_mqc_reset_enc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void opj_mqc_reset_enc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>RESET mode switch. </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>
<p class="reference">References <a class="el" href="mqc_8c.html#a9b1de23283892ba50029b75ab1b9a91a">opj_mqc_resetstates()</a>, <a class="el" href="mqc_8c.html#a7260daca59a1e01f087a7806db045853">opj_mqc_setstate()</a>, <a class="el" href="t1_8h.html#a335ce360eba4cbd31b9e082535d02180">T1_CTXNO_AGG</a>, <a class="el" href="t1_8h.html#a27ee56916ef86bcbb5c07e55fb719b20">T1_CTXNO_UNI</a>, and <a class="el" href="t1_8h.html#a325280d653d545416723a91f0ebbf428">T1_CTXNO_ZC</a>.</p>
<p class="reference">Referenced by <a class="el" href="t1_8c.html#a0066492bf8c292bf235c1c754a3272bf">opj_t1_encode_cblk()</a>.</p>
</div>
</div>
<a id="a9b1de23283892ba50029b75ab1b9a91a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9b1de23283892ba50029b75ab1b9a91a">&#9670;&nbsp;</a></span>opj_mqc_resetstates()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void opj_mqc_resetstates </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Reset the states of all the context of the coder/decoder (each context is set to a state where 0 and 1 are more or less equiprobable) </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>
<p class="reference">References <a class="el" href="structopj__mqc.html#a2ecaf46cd4f26b606e95a3180e1e664f">opj_mqc::ctxs</a>, <a class="el" href="mqc_8h.html#a2ea7971c7ed2c6e19bc3e9c3ba26b68f">MQC_NUMCTXS</a>, and <a class="el" href="mqc_8c.html#a2c3c376c7ad5a8c6edd5c82891efd296">mqc_states</a>.</p>
<p class="reference">Referenced by <a class="el" href="mqc_8h.html#a858901a7f568a2845885e537aaeab825">opj_mqc_reset_enc()</a>, <a class="el" href="t1_8c.html#ab90391839b2f56ca40aaae1b8748ca3c">opj_t1_decode_cblk()</a>, and <a class="el" href="t1_8c.html#a0066492bf8c292bf235c1c754a3272bf">opj_t1_encode_cblk()</a>.</p>
</div>
</div>
<a id="a178f2a2119c59ae30169835162bd73e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a178f2a2119c59ae30169835162bd73e7">&#9670;&nbsp;</a></span>opj_mqc_restart_init_enc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void opj_mqc_restart_init_enc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>RESTART mode switch (TERMALL) reinitialisation. </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>
<p class="reference">References <a class="el" href="structopj__mqc.html#a26cf29944f5a74b2a0af55defaed5e5d">opj_mqc::a</a>, <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>
<p class="reference">Referenced by <a class="el" href="t1_8c.html#a0066492bf8c292bf235c1c754a3272bf">opj_t1_encode_cblk()</a>.</p>
</div>
</div>
<a id="af6195cf3fe837a5acbaa721c3e453465"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6195cf3fe837a5acbaa721c3e453465">&#9670;&nbsp;</a></span>opj_mqc_segmark_enc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void opj_mqc_segmark_enc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>SEGMARK mode switch (SEGSYM) </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>
<p class="reference">References <a class="el" href="mqc_8c.html#a6367db2a4c3eee85678978f60090363b">opj_mqc_encode()</a>, and <a class="el" href="mqc_8h.html#a7315986b3a52b2e2287a49ab1780ae4f">opj_mqc_setcurctx</a>.</p>
<p class="reference">Referenced by <a class="el" href="t1_8c.html#a0066492bf8c292bf235c1c754a3272bf">opj_t1_encode_cblk()</a>.</p>
</div>
</div>
<a id="a7260daca59a1e01f087a7806db045853"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7260daca59a1e01f087a7806db045853">&#9670;&nbsp;</a></span>opj_mqc_setstate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void opj_mqc_setstate </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
<td class="paramname"><em>ctxno</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="openjpeg_8h.html#a4cb1e6e6b6ef2df499d5c02f7df54cbb">OPJ_UINT32</a>&#160;</td>
<td class="paramname"><em>msb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="openjpeg_8h.html#a3cec91ef9e73677f0dbd60d4e42401b9">OPJ_INT32</a>&#160;</td>
<td class="paramname"><em>prob</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the state of a particular context. </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">ctxno</td><td>Number that identifies the context </td></tr>
<tr><td class="paramname">msb</td><td>The MSB of the new state of the context </td></tr>
<tr><td class="paramname">prob</td><td>Number that identifies the probability of the symbols for the new state of the context </td></tr>
</table>
</dd>
</dl>
<p class="reference">References <a class="el" href="structopj__mqc.html#a2ecaf46cd4f26b606e95a3180e1e664f">opj_mqc::ctxs</a>, and <a class="el" href="mqc_8c.html#a2c3c376c7ad5a8c6edd5c82891efd296">mqc_states</a>.</p>
<p class="reference">Referenced by <a class="el" href="mqc_8h.html#a858901a7f568a2845885e537aaeab825">opj_mqc_reset_enc()</a>, <a class="el" href="t1_8c.html#ab90391839b2f56ca40aaae1b8748ca3c">opj_t1_decode_cblk()</a>, and <a class="el" href="t1_8c.html#a0066492bf8c292bf235c1c754a3272bf">opj_t1_encode_cblk()</a>.</p>
</div>
</div>
<a id="a5bdec54dabf502c578e46d6b34ce8b93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5bdec54dabf502c578e46d6b34ce8b93">&#9670;&nbsp;</a></span>opq_mqc_finish_dec()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void opq_mqc_finish_dec </td>
<td>(</td>
<td class="paramtype"><a class="el" href="mqc_8h.html#a88db3570f4dea454a8a2251b174d5050">opj_mqc_t</a> *&#160;</td>
<td class="paramname"><em>mqc</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Terminate RAW/MQC decoding. </p>
<p>This restores the bytes temporarily overwritten by <a class="el" href="mqc_8h.html#aa0e4b75040d645307e25dd53528e8512" title="Initialize the decoder for MQ decoding.">opj_mqc_init_dec()</a>/ <a class="el" href="mqc_8h.html#a683734858d69085fd07394d1d3fae633" title="Initialize the decoder for RAW decoding.">opj_mqc_raw_init_dec()</a></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>
<p class="reference">References <a class="el" href="structopj__mqc.html#a464f7ff357673a604755c3bfd0b26a85">opj_mqc::backup</a>, <a class="el" href="structopj__mqc.html#a82b0225c0f832b4ff04bf5dc171ea164">opj_mqc::end</a>, and <a class="el" href="opj__common_8h.html#a7f1b41029a9c8a29b973c4200df596dd">OPJ_COMMON_CBLK_DATA_EXTRA</a>.</p>
<p class="reference">Referenced by <a class="el" href="t1_8c.html#ab90391839b2f56ca40aaae1b8748ca3c">opj_t1_decode_cblk()</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- 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"/>
</a> 1.8.17
</small></address>
</body>
</html>