\hypertarget{group__MCoder}{}\section{M-\/\+Coder}
\label{group__MCoder}\index{M-\/\+Coder@{M-\/\+Coder}}


M-\/\+Coder (binary arithmetic coder).  


\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classSPL_1_1MEncoder}{S\+P\+L\+::\+M\+Encoder}
\begin{DoxyCompactList}\small\item\em The M-\/\+Coder (binary) arithmetic encoder class. \end{DoxyCompactList}\item 
class \hyperlink{classSPL_1_1MDecoder}{S\+P\+L\+::\+M\+Decoder}
\begin{DoxyCompactList}\small\item\em The M-\/\+Coder (binary) arithmetic decoder class. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
long \hyperlink{group__MCoder_gad82a207d2e2887473ef152bbad891c26}{S\+P\+L\+::\+M\+Encoder\+::get\+Sym\+Count} () const 
\begin{DoxyCompactList}\small\item\em Get the number of symbols that have been encoded so far. \end{DoxyCompactList}\item 
long \hyperlink{group__MCoder_ga1c9307ec229b68c64e2497bd073f3b1d}{S\+P\+L\+::\+M\+Encoder\+::get\+Bit\+Count} () const 
\begin{DoxyCompactList}\small\item\em Get the number of bits (of encoded data) that have been output to the underlying bit stream so far. \end{DoxyCompactList}\item 
int \hyperlink{group__MCoder_ga16408ee66d2342f464b4580d961ba63b}{S\+P\+L\+::\+M\+Encoder\+::get\+Num\+Contexts} () const 
\begin{DoxyCompactList}\small\item\em Get the number of contexts. \end{DoxyCompactList}\item 
Output\+Bit\+Stream $\ast$ \hyperlink{group__MCoder_ga0ba0be00034c4f60d8587df037f272ee}{S\+P\+L\+::\+M\+Encoder\+::get\+Output} () const 
\begin{DoxyCompactList}\small\item\em Get the bit stream being used for output. \end{DoxyCompactList}\item 
void \hyperlink{group__MCoder_ga5c7a92969f5e8cc1ee6a8617b15e9765}{S\+P\+L\+::\+M\+Encoder\+::set\+Output} (Output\+Bit\+Stream $\ast$out)
\begin{DoxyCompactList}\small\item\em Set the bit stream to use for output. \end{DoxyCompactList}\item 
long \hyperlink{group__MCoder_ga4ead202da057105b90407072d3248da5}{S\+P\+L\+::\+M\+Decoder\+::get\+Bit\+Count} () const 
\begin{DoxyCompactList}\small\item\em Get the number of bits read so far. \end{DoxyCompactList}\item 
long \hyperlink{group__MCoder_gae1f478ac3741184867431971207900bf}{S\+P\+L\+::\+M\+Decoder\+::get\+Sym\+Count} () const 
\begin{DoxyCompactList}\small\item\em Get the number of symbols decoded so far. \end{DoxyCompactList}\item 
int \hyperlink{group__MCoder_ga77cf39ef2aa6c4849d0157811f27eec6}{S\+P\+L\+::\+M\+Decoder\+::get\+Num\+Contexts} () const 
\begin{DoxyCompactList}\small\item\em Get the number of contexts. \end{DoxyCompactList}\item 
Input\+Bit\+Stream $\ast$ \hyperlink{group__MCoder_ga821e18b732ea366801f2391ea11b2497}{S\+P\+L\+::\+M\+Decoder\+::get\+Input} () const 
\begin{DoxyCompactList}\small\item\em Get the input bit stream (i.\+e., the bit stream from which encoded data is to be read). \end{DoxyCompactList}\item 
void \hyperlink{group__MCoder_gabf86d03693319ab79346db06f90f5509}{S\+P\+L\+::\+M\+Decoder\+::set\+Input} (Input\+Bit\+Stream $\ast$in)
\begin{DoxyCompactList}\small\item\em Set the input bit stream (i.\+e., the bit stream from which encoded data is to be read). \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
M-\/\+Coder (binary arithmetic coder). 



\subsection{Function Documentation}
\hypertarget{group__MCoder_ga1c9307ec229b68c64e2497bd073f3b1d}{}\index{M-\/\+Coder@{M-\/\+Coder}!get\+Bit\+Count@{get\+Bit\+Count}}
\index{get\+Bit\+Count@{get\+Bit\+Count}!M-\/\+Coder@{M-\/\+Coder}}
\subsubsection[{get\+Bit\+Count}]{\setlength{\rightskip}{0pt plus 5cm}long S\+P\+L\+::\+M\+Encoder\+::get\+Bit\+Count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\label{group__MCoder_ga1c9307ec229b68c64e2497bd073f3b1d}


Get the number of bits (of encoded data) that have been output to the underlying bit stream so far. 

\hypertarget{group__MCoder_ga4ead202da057105b90407072d3248da5}{}\index{M-\/\+Coder@{M-\/\+Coder}!get\+Bit\+Count@{get\+Bit\+Count}}
\index{get\+Bit\+Count@{get\+Bit\+Count}!M-\/\+Coder@{M-\/\+Coder}}
\subsubsection[{get\+Bit\+Count}]{\setlength{\rightskip}{0pt plus 5cm}long S\+P\+L\+::\+M\+Decoder\+::get\+Bit\+Count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\label{group__MCoder_ga4ead202da057105b90407072d3248da5}


Get the number of bits read so far. 

\hypertarget{group__MCoder_ga821e18b732ea366801f2391ea11b2497}{}\index{M-\/\+Coder@{M-\/\+Coder}!get\+Input@{get\+Input}}
\index{get\+Input@{get\+Input}!M-\/\+Coder@{M-\/\+Coder}}
\subsubsection[{get\+Input}]{\setlength{\rightskip}{0pt plus 5cm}Input\+Bit\+Stream $\ast$ S\+P\+L\+::\+M\+Decoder\+::get\+Input (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\label{group__MCoder_ga821e18b732ea366801f2391ea11b2497}


Get the input bit stream (i.\+e., the bit stream from which encoded data is to be read). 

\hypertarget{group__MCoder_ga16408ee66d2342f464b4580d961ba63b}{}\index{M-\/\+Coder@{M-\/\+Coder}!get\+Num\+Contexts@{get\+Num\+Contexts}}
\index{get\+Num\+Contexts@{get\+Num\+Contexts}!M-\/\+Coder@{M-\/\+Coder}}
\subsubsection[{get\+Num\+Contexts}]{\setlength{\rightskip}{0pt plus 5cm}int S\+P\+L\+::\+M\+Encoder\+::get\+Num\+Contexts (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\label{group__MCoder_ga16408ee66d2342f464b4580d961ba63b}


Get the number of contexts. 

\hypertarget{group__MCoder_ga77cf39ef2aa6c4849d0157811f27eec6}{}\index{M-\/\+Coder@{M-\/\+Coder}!get\+Num\+Contexts@{get\+Num\+Contexts}}
\index{get\+Num\+Contexts@{get\+Num\+Contexts}!M-\/\+Coder@{M-\/\+Coder}}
\subsubsection[{get\+Num\+Contexts}]{\setlength{\rightskip}{0pt plus 5cm}int S\+P\+L\+::\+M\+Decoder\+::get\+Num\+Contexts (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\label{group__MCoder_ga77cf39ef2aa6c4849d0157811f27eec6}


Get the number of contexts. 

\hypertarget{group__MCoder_ga0ba0be00034c4f60d8587df037f272ee}{}\index{M-\/\+Coder@{M-\/\+Coder}!get\+Output@{get\+Output}}
\index{get\+Output@{get\+Output}!M-\/\+Coder@{M-\/\+Coder}}
\subsubsection[{get\+Output}]{\setlength{\rightskip}{0pt plus 5cm}Output\+Bit\+Stream $\ast$ S\+P\+L\+::\+M\+Encoder\+::get\+Output (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\label{group__MCoder_ga0ba0be00034c4f60d8587df037f272ee}


Get the bit stream being used for output. 

\hypertarget{group__MCoder_gad82a207d2e2887473ef152bbad891c26}{}\index{M-\/\+Coder@{M-\/\+Coder}!get\+Sym\+Count@{get\+Sym\+Count}}
\index{get\+Sym\+Count@{get\+Sym\+Count}!M-\/\+Coder@{M-\/\+Coder}}
\subsubsection[{get\+Sym\+Count}]{\setlength{\rightskip}{0pt plus 5cm}long S\+P\+L\+::\+M\+Encoder\+::get\+Sym\+Count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\label{group__MCoder_gad82a207d2e2887473ef152bbad891c26}


Get the number of symbols that have been encoded so far. 

\hypertarget{group__MCoder_gae1f478ac3741184867431971207900bf}{}\index{M-\/\+Coder@{M-\/\+Coder}!get\+Sym\+Count@{get\+Sym\+Count}}
\index{get\+Sym\+Count@{get\+Sym\+Count}!M-\/\+Coder@{M-\/\+Coder}}
\subsubsection[{get\+Sym\+Count}]{\setlength{\rightskip}{0pt plus 5cm}long S\+P\+L\+::\+M\+Decoder\+::get\+Sym\+Count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\label{group__MCoder_gae1f478ac3741184867431971207900bf}


Get the number of symbols decoded so far. 

\hypertarget{group__MCoder_gabf86d03693319ab79346db06f90f5509}{}\index{M-\/\+Coder@{M-\/\+Coder}!set\+Input@{set\+Input}}
\index{set\+Input@{set\+Input}!M-\/\+Coder@{M-\/\+Coder}}
\subsubsection[{set\+Input}]{\setlength{\rightskip}{0pt plus 5cm}void S\+P\+L\+::\+M\+Decoder\+::set\+Input (
\begin{DoxyParamCaption}
\item[{{\bf Input\+Bit\+Stream} $\ast$}]{in}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{group__MCoder_gabf86d03693319ab79346db06f90f5509}


Set the input bit stream (i.\+e., the bit stream from which encoded data is to be read). 

\hypertarget{group__MCoder_ga5c7a92969f5e8cc1ee6a8617b15e9765}{}\index{M-\/\+Coder@{M-\/\+Coder}!set\+Output@{set\+Output}}
\index{set\+Output@{set\+Output}!M-\/\+Coder@{M-\/\+Coder}}
\subsubsection[{set\+Output}]{\setlength{\rightskip}{0pt plus 5cm}void S\+P\+L\+::\+M\+Encoder\+::set\+Output (
\begin{DoxyParamCaption}
\item[{{\bf Output\+Bit\+Stream} $\ast$}]{out}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{group__MCoder_ga5c7a92969f5e8cc1ee6a8617b15e9765}


Set the bit stream to use for output. 

