⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 g726_8h-source.html

📁 这个是关于G.726算法的源程序
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>audio/G726.h Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.4.4 --><div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div><div class="nav"><a class="el" href="dir_000000.html">audio</a></div><h1>G726.h</h1><a href="G726_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <a name="l00025"></a>00025 <span class="preprocessor">#ifndef __G726_H__</span><a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define __G726_H__</span><a name="l00027"></a>00027 <span class="preprocessor"></span><a name="l00049"></a><a class="code" href="classG726.html">00049</a> <span class="keyword">class </span><a class="code" href="classG726.html">G726</a><a name="l00050"></a>00050     {<a name="l00051"></a>00051 <span class="keyword">public</span>:<a name="l00055"></a><a class="code" href="classG726.html#w7">00055</a>     <span class="keyword">enum</span> <a class="code" href="classG726.html#w7">Law</a>{<a name="l00056"></a>00056         <a class="code" href="classG726.html#w7w0">uLaw</a>=0,     <a name="l00057"></a>00057         <a class="code" href="classG726.html#w7w1">ALaw</a>=1,     <a name="l00058"></a><a class="code" href="classG726.html#w7w2">00058</a>         <a class="code" href="classG726.html#w7w2">PCM16</a>=2     <a name="l00060"></a>00060         };<a name="l00061"></a>00061 <a name="l00065"></a><a class="code" href="classG726.html#w8">00065</a>     <span class="keyword">enum</span> <a class="code" href="classG726.html#w8">Rate</a>{<a name="l00066"></a>00066         <a class="code" href="classG726.html#w8w3">Rate16kBits</a>=2,  <a name="l00067"></a>00067         <a class="code" href="classG726.html#w8w4">Rate24kBits</a>=3,  <a name="l00068"></a>00068         <a class="code" href="classG726.html#w8w5">Rate32kBits</a>=4,  <a name="l00069"></a><a class="code" href="classG726.html#w8w6">00069</a>         <a class="code" href="classG726.html#w8w6">Rate40kBits</a>=5   <a name="l00070"></a>00070         };<a name="l00071"></a>00071 <a name="l00077"></a><a class="code" href="classG726.html#a0">00077</a>     <span class="keyword">inline</span> <a class="code" href="classG726.html#a0">G726</a>()<a name="l00078"></a>00078         {<a name="l00079"></a>00079         <a class="code" href="classG726.html#a1">Reset</a>();<a name="l00080"></a>00080         }<a name="l00081"></a>00081 <a name="l00086"></a>00086     <a class="code" href="common_8h.html#a1">IMPORT</a> <span class="keywordtype">void</span> <a class="code" href="classG726.html#a1">Reset</a>();<a name="l00087"></a>00087 <a name="l00093"></a>00093     <a class="code" href="common_8h.html#a1">IMPORT</a> <span class="keywordtype">void</span> <a class="code" href="classG726.html#a2">SetLaw</a>(<a class="code" href="classG726.html#w7">Law</a> law);<a name="l00094"></a>00094 <a name="l00100"></a>00100     <a class="code" href="common_8h.html#a1">IMPORT</a> <span class="keywordtype">void</span> <a class="code" href="classG726.html#a3">SetRate</a>(<a class="code" href="classG726.html#w8">Rate</a> rate);<a name="l00101"></a>00101 <a name="l00114"></a>00114     <a class="code" href="common_8h.html#a1">IMPORT</a> <a class="code" href="group__integers.html#ga6">uint</a> <a class="code" href="classG726.html#a4">Encode</a>(<a class="code" href="group__integers.html#ga6">uint</a> pcm);<a name="l00115"></a>00115 <a name="l00129"></a>00129     <a class="code" href="common_8h.html#a1">IMPORT</a> <a class="code" href="group__integers.html#ga6">uint</a> <a class="code" href="classG726.html#a5">Decode</a>(<a class="code" href="group__integers.html#ga6">uint</a> adpcm);<a name="l00130"></a>00130 <a name="l00159"></a>00159     <a class="code" href="common_8h.html#a1">IMPORT</a> <a class="code" href="group__integers.html#ga6">uint</a> <a class="code" href="classG726.html#a4">Encode</a>(<span class="keywordtype">void</span>* dst, <span class="keywordtype">int</span> dstOffset, <span class="keyword">const</span> <span class="keywordtype">void</span>* src, <a class="code" href="group__integers.html#ga6">uint</a> srcSize);<a name="l00160"></a>00160 <a name="l00190"></a>00190     <a class="code" href="common_8h.html#a1">IMPORT</a> <a class="code" href="group__integers.html#ga6">uint</a> <a class="code" href="classG726.html#a5">Decode</a>(<span class="keywordtype">void</span>* dst, <span class="keyword">const</span> <span class="keywordtype">void</span>* src, <span class="keywordtype">int</span> srcOffset, <a class="code" href="group__integers.html#ga6">uint</a> srcSize);<a name="l00191"></a>00191 <span class="keyword">private</span>:<a name="l00192"></a>00192     <span class="keywordtype">void</span> <a class="code" href="group__g726__section4B.html#ga0">InputPCMFormatConversionAndDifferenceSignalComputation</a>(<a class="code" href="group__integers.html#ga6">uint</a> S,<span class="keywordtype">int</span> SE,<span class="keywordtype">int</span>&amp; D);<a name="l00193"></a>00193     <span class="keywordtype">void</span> <a class="code" href="group__g726__section4B.html#ga1">AdaptiveQuantizer</a>(<span class="keywordtype">int</span> D,<a class="code" href="group__integers.html#ga6">uint</a> Y,<a class="code" href="group__integers.html#ga6">uint</a>&amp; I);<a name="l00194"></a>00194     <span class="keywordtype">void</span> <a class="code" href="group__g726__section4B.html#ga2">InverseAdaptiveQuantizer</a>(<a class="code" href="group__integers.html#ga6">uint</a> I,<a class="code" href="group__integers.html#ga6">uint</a> Y,<a class="code" href="group__integers.html#ga6">uint</a>&amp; DQ);<a name="l00195"></a>00195     <span class="keywordtype">void</span> <a class="code" href="group__g726__section4B.html#ga3">QuantizerScaleFactorAdaptation1</a>(<a class="code" href="group__integers.html#ga6">uint</a> AL,<a class="code" href="group__integers.html#ga6">uint</a>&amp; Y);<a name="l00196"></a>00196     <span class="keywordtype">void</span> <a class="code" href="group__g726__section4B.html#ga4">QuantizerScaleFactorAdaptation2</a>(<a class="code" href="group__integers.html#ga6">uint</a> I,<a class="code" href="group__integers.html#ga6">uint</a> Y);<a name="l00197"></a>00197     <span class="keywordtype">void</span> <a class="code" href="group__g726__section4B.html#ga5">AdaptationSpeedControl1</a>(<a class="code" href="group__integers.html#ga6">uint</a>&amp; AL);<a name="l00198"></a>00198     <span class="keywordtype">void</span> <a class="code" href="group__g726__section4B.html#ga6">AdaptationSpeedControl2</a>(<a class="code" href="group__integers.html#ga6">uint</a> I,<a class="code" href="group__integers.html#ga6">uint</a> y,<a class="code" href="group__integers.html#ga6">uint</a> TDP,<a class="code" href="group__integers.html#ga6">uint</a> TR);<a name="l00199"></a>00199     <span class="keywordtype">void</span> <a class="code" href="group__g726__section4B.html#ga7">AdaptativePredictorAndReconstructedSignalCalculator1</a>(<span class="keywordtype">int</span>&amp; SE,<span class="keywordtype">int</span>&amp; SEZ);<a name="l00200"></a>00200     <span class="keywordtype">void</span> <a class="code" href="group__g726__section4B.html#ga8">AdaptativePredictorAndReconstructedSignalCalculator2</a>(<a class="code" href="group__integers.html#ga6">uint</a> DQ,<a class="code" href="group__integers.html#ga6">uint</a> TR,<span class="keywordtype">int</span> SE,<span class="keywordtype">int</span> SEZ,<span class="keywordtype">int</span>&amp; SR,<span class="keywordtype">int</span>&amp; A2P);<a name="l00201"></a>00201     <span class="keywordtype">void</span> <a class="code" href="group__g726__section4B.html#ga9">ToneAndTransitionDetector1</a>(<a class="code" href="group__integers.html#ga6">uint</a> DQ,<a class="code" href="group__integers.html#ga6">uint</a>&amp; TR);<a name="l00202"></a>00202     <span class="keywordtype">void</span> <a class="code" href="group__g726__section4B.html#ga10">ToneAndTransitionDetector2</a>(<span class="keywordtype">int</span> A2P,<a class="code" href="group__integers.html#ga6">uint</a> TR,<a class="code" href="group__integers.html#ga6">uint</a>&amp; TDP);<a name="l00203"></a>00203     <span class="keywordtype">void</span> <a class="code" href="group__g726__section4B.html#ga11">OutputPCMFormatConversionAndSynchronousCodingAdjustment</a>(<span class="keywordtype">int</span> SR,<span class="keywordtype">int</span> SE,<a class="code" href="group__integers.html#ga6">uint</a> Y,<a class="code" href="group__integers.html#ga6">uint</a> I,<a class="code" href="group__integers.html#ga6">uint</a>&amp; SD);<a name="l00204"></a>00204     <span class="keywordtype">void</span> <a class="code" href="group__g726__section4B.html#ga12">DifferenceSignalComputation</a>(<span class="keywordtype">int</span> SL,<span class="keywordtype">int</span> SE,<span class="keywordtype">int</span>&amp; D);<a name="l00205"></a>00205     <span class="keywordtype">void</span> <a class="code" href="group__g726__section4B.html#ga13">OutputLimiting</a>(<span class="keywordtype">int</span> SR,<span class="keywordtype">int</span>&amp; S0);<a name="l00206"></a>00206     <a class="code" href="group__integers.html#ga6">uint</a> <a class="code" href="classG726.html#d14">EncodeDecode</a>(<a class="code" href="group__integers.html#ga6">uint</a> input,<span class="keywordtype">bool</span> encode);<a name="l00207"></a>00207 <span class="keyword">private</span>:<a name="l00208"></a><a class="code" href="classG726.html#r0">00208</a>     <a class="code" href="classG726.html#w7">Law</a> <a class="code" href="classG726.html#r0">LAW</a>;<a name="l00209"></a><a class="code" href="classG726.html#r1">00209</a>     <a class="code" href="classG726.html#w8">Rate</a> <a class="code" href="classG726.html#r1">RATE</a>;<a name="l00210"></a>00210     <span class="comment">// Persistant state for DELAY elements...</span><a name="l00211"></a><a class="code" href="classG726.html#r2">00211</a>     <span class="keywordtype">int</span> <a class="code" href="classG726.html#r2">A1</a>;<a name="l00212"></a><a class="code" href="classG726.html#r3">00212</a>     <span class="keywordtype">int</span> <a class="code" href="classG726.html#r3">A2</a>;<a name="l00213"></a><a class="code" href="classG726.html#r4">00213</a>     <a class="code" href="group__integers.html#ga6">uint</a> <a class="code" href="classG726.html#r4">AP</a>;<a name="l00214"></a><a class="code" href="classG726.html#r5">00214</a>     <span class="keywordtype">int</span> <a class="code" href="classG726.html#r5">Bn</a>[6];<a name="l00215"></a><a class="code" href="classG726.html#r6">00215</a>     <a class="code" href="group__integers.html#ga6">uint</a> <a class="code" href="classG726.html#r6">DML</a>;<a name="l00216"></a><a class="code" href="classG726.html#r7">00216</a>     <a class="code" href="group__integers.html#ga6">uint</a> <a class="code" href="classG726.html#r7">DMS</a>;<a name="l00217"></a><a class="code" href="classG726.html#r8">00217</a>     <a class="code" href="group__integers.html#ga6">uint</a> <a class="code" href="classG726.html#r8">DQn</a>[6];<a name="l00218"></a><a class="code" href="classG726.html#r9">00218</a>     <span class="keywordtype">int</span> <a class="code" href="classG726.html#r9">PK1</a>;<a name="l00219"></a><a class="code" href="classG726.html#r10">00219</a>     <span class="keywordtype">int</span> <a class="code" href="classG726.html#r10">PK2</a>;<a name="l00220"></a><a class="code" href="classG726.html#r11">00220</a>     <a class="code" href="group__integers.html#ga6">uint</a> <a class="code" href="classG726.html#r11">SR1</a>;<a name="l00221"></a><a class="code" href="classG726.html#r12">00221</a>     <a class="code" href="group__integers.html#ga6">uint</a> <a class="code" href="classG726.html#r12">SR2</a>;<a name="l00222"></a><a class="code" href="classG726.html#r13">00222</a>     <a class="code" href="group__integers.html#ga6">uint</a> <a class="code" href="classG726.html#r13">TD</a>;<a name="l00223"></a><a class="code" href="classG726.html#r14">00223</a>     <a class="code" href="group__integers.html#ga6">uint</a> <a class="code" href="classG726.html#r14">YL</a>;<a name="l00224"></a><a class="code" href="classG726.html#r15">00224</a>     <a class="code" href="group__integers.html#ga6">uint</a> <a class="code" href="classG726.html#r15">YU</a>;<a name="l00225"></a>00225 <a name="l00226"></a><a class="code" href="classG726.html#n0">00226</a>     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classG726.html#n0">G726Test</a>;<a name="l00227"></a>00227     };<a name="l00228"></a>00228 <a name="l00238"></a><a class="code" href="group__g726.html#ga0">00238</a> <span class="preprocessor">#define IMPLEMENT_G191_BUGS</span><a name="l00239"></a>00239 <span class="preprocessor"></span> <span class="comment">// End of group</span><a name="l00241"></a>00241 <a name="l00242"></a>00242 <span class="preprocessor">#endif</span><a name="l00243"></a>00243 <span class="preprocessor"></span></pre></div><HR><ADDRESS STYLE="align: right;"><SMALL>Generated by&nbsp; <A HREF="http://www.doxygen.org/index.html"><IMG SRC="doxygen.png" ALT="doxygen" ALIGN="middle" BORDER="0"></A> 1.4.4</SMALL></ADDRESS></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -