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

📄 g726_8cpp-source.html

📁 这个是关于G.726算法的源程序
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="l00380"></a>00380     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(AP,10);<a name="l00381"></a>00381     <span class="keywordtype">int</span> DIF = (AX&lt;&lt;9)-AP;<a name="l00382"></a>00382     <span class="keywordtype">int</span> DIFSX = (DIF&gt;&gt;4);<a name="l00383"></a>00383     APP = (DIFSX+AP); <span class="comment">// &amp; 1023;</span><a name="l00384"></a>00384     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(APP,10);<a name="l00385"></a>00385     }<a name="l00386"></a>00386 <a name="l00387"></a>00387 <a name="l00391"></a><a class="code" href="group__g726__section4.html#ga15">00391</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga15">FUNCTF</a>(<a class="code" href="group__integers.html#ga6">uint</a> RATE,<a class="code" href="group__integers.html#ga6">uint</a> I,<a class="code" href="group__integers.html#ga6">uint</a>&amp; FI)<a name="l00392"></a>00392     {<a name="l00393"></a>00393     <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(I,RATE);<a name="l00394"></a>00394 <a name="l00395"></a>00395     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__integers.html#ga4">int16</a> functf2[2] = {0,7};<a name="l00396"></a>00396     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__integers.html#ga4">int16</a> functf3[4] = {0,1,2,7};<a name="l00397"></a>00397     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__integers.html#ga4">int16</a> functf4[8] = {0,0,0,1,1,1,3,7};<a name="l00398"></a>00398     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__integers.html#ga4">int16</a> functf5[16] = {0,0,0,0,0,1,1,1,1,1,2,3,4,5,6,6};<a name="l00399"></a>00399     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__integers.html#ga4">int16</a>* <span class="keyword">const</span> functf[4] = {functf2,functf3,functf4,functf5};<a name="l00400"></a>00400 <a name="l00401"></a>00401     <a class="code" href="group__integers.html#ga6">uint</a> x = I;<a name="l00402"></a>00402     <span class="keywordtype">int</span> mask=(1&lt;&lt;(RATE-1));<a name="l00403"></a>00403     <span class="keywordflow">if</span>(x&amp;mask)<a name="l00404"></a>00404         x = ~x;<a name="l00405"></a>00405     x &amp;= mask-1;<a name="l00406"></a>00406     FI = functf[RATE-2][x];<a name="l00407"></a>00407 <a name="l00408"></a>00408     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(FI,3);<a name="l00409"></a>00409     }<a name="l00410"></a>00410 <a name="l00411"></a>00411 <a name="l00415"></a><a class="code" href="group__g726__section4.html#ga16">00415</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga16">LIMA</a>(<a class="code" href="group__integers.html#ga6">uint</a> AP,<a class="code" href="group__integers.html#ga6">uint</a>&amp; AL)<a name="l00416"></a>00416     {<a name="l00417"></a>00417     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(AP,10);<a name="l00418"></a>00418     AL = (AP&gt;256) ? 64 : AP&gt;&gt;2;<a name="l00419"></a>00419     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(AL,7);<a name="l00420"></a>00420     }<a name="l00421"></a>00421 <a name="l00422"></a>00422 <a name="l00426"></a><a class="code" href="group__g726__section4.html#ga17">00426</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga17">SUBTC</a>(<a class="code" href="group__integers.html#ga6">uint</a> DMSP,<a class="code" href="group__integers.html#ga6">uint</a> DMLP,<a class="code" href="group__integers.html#ga6">uint</a> TDP,<a class="code" href="group__integers.html#ga6">uint</a> Y,<a class="code" href="group__integers.html#ga6">uint</a>&amp; AX)<a name="l00427"></a>00427     {<a name="l00428"></a>00428     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(DMSP,12);<a name="l00429"></a>00429     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(DMLP,14);<a name="l00430"></a>00430     <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(TDP,1);<a name="l00431"></a>00431     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(Y,13);<a name="l00432"></a>00432     <span class="keywordtype">int</span> DIF = (DMSP&lt;&lt;2)-DMLP;<a name="l00433"></a>00433     <a class="code" href="group__integers.html#ga6">uint</a> DIFM;<a name="l00434"></a>00434     <span class="keywordflow">if</span>(DIF&lt;0)<a name="l00435"></a>00435         DIFM = -DIF;<a name="l00436"></a>00436     <span class="keywordflow">else</span><a name="l00437"></a>00437         DIFM = DIF;<a name="l00438"></a>00438     <a class="code" href="group__integers.html#ga6">uint</a> DTHR = DMLP &gt;&gt; 3;<a name="l00439"></a>00439     AX = (Y&gt;=1536 &amp;&amp; DIFM&lt;DTHR) ? TDP : 1;<a name="l00440"></a>00440     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(AX,1);<a name="l00441"></a>00441     }<a name="l00442"></a>00442 <a name="l00443"></a>00443 <a name="l00447"></a><a class="code" href="group__g726__section4.html#ga18">00447</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga18">TRIGA</a>(<a class="code" href="group__integers.html#ga6">uint</a> TR,<a class="code" href="group__integers.html#ga6">uint</a> APP,<a class="code" href="group__integers.html#ga6">uint</a>&amp; APR)<a name="l00448"></a>00448     {<a name="l00449"></a>00449     <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(TR,1);<a name="l00450"></a>00450     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(APP,10);<a name="l00451"></a>00451     APR = TR ? 256 : APP;<a name="l00452"></a>00452     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(APR,10);<a name="l00453"></a>00453     }<a name="l00454"></a>00454 <a name="l00458"></a><a class="code" href="group__g726__section4.html#ga19">00458</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga19">ACCUM</a>(<span class="keywordtype">int</span> WAn[2],<span class="keywordtype">int</span> WBn[6],<span class="keywordtype">int</span>&amp; SE,<span class="keywordtype">int</span>&amp; SEZ)<a name="l00459"></a>00459     {<a name="l00460"></a>00460     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WAn[0],16);<a name="l00461"></a>00461     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WAn[1],16);<a name="l00462"></a>00462     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[0],16);<a name="l00463"></a>00463     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[1],16);<a name="l00464"></a>00464     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[2],16);<a name="l00465"></a>00465     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[3],16);<a name="l00466"></a>00466     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[4],16);<a name="l00467"></a>00467     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[5],16);<a name="l00468"></a>00468     <a class="code" href="group__integers.html#ga4">int16</a> SEZI = (<a class="code" href="group__integers.html#ga4">int16</a>)(WBn[0]+WBn[1]+WBn[2]+WBn[3]+WBn[4]+WBn[5]);<a name="l00469"></a>00469     <a class="code" href="group__integers.html#ga4">int16</a> SEI = (<a class="code" href="group__integers.html#ga4">int16</a>)(SEZI+WAn[0]+WAn[1]);<a name="l00470"></a>00470     SEZ = SEZI &gt;&gt; 1;<a name="l00471"></a>00471     SE = SEI &gt;&gt; 1;  <a name="l00472"></a>00472     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SE,15);<a name="l00473"></a>00473     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SEZ,15);<a name="l00474"></a>00474     }<a name="l00475"></a>00475 <a name="l00476"></a>00476 <a name="l00480"></a><a class="code" href="group__g726__section4.html#ga20">00480</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga20">ADDB</a>(<a class="code" href="group__integers.html#ga6">uint</a> DQ,<span class="keywordtype">int</span> SE,<span class="keywordtype">int</span>&amp; SR)<a name="l00481"></a>00481     {<a name="l00482"></a>00482     <a class="code" href="group__g726__section4m.html#ga0">CHECK_SM</a>(DQ,16);<a name="l00483"></a>00483     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SE,15);<a name="l00484"></a>00484     <span class="keywordtype">int</span> DQI;<a name="l00485"></a>00485     <span class="keywordflow">if</span>(DQ&amp;(1&lt;&lt;15))<a name="l00486"></a>00486         DQI = (1&lt;&lt;15)-DQ;<a name="l00487"></a>00487     <span class="keywordflow">else</span><a name="l00488"></a>00488         DQI = DQ;<a name="l00489"></a>00489     SR = (<a class="code" href="group__integers.html#ga4">int16</a>)(DQI+SE);<a name="l00490"></a>00490     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SR,16);<a name="l00491"></a>00491     }<a name="l00492"></a>00492 <a name="l00493"></a>00493 <a name="l00497"></a><a class="code" href="group__g726__section4.html#ga21">00497</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga21">ADDC</a>(<a class="code" href="group__integers.html#ga6">uint</a> DQ,<span class="keywordtype">int</span> SEZ,<span class="keywordtype">int</span>&amp; PK0,<a class="code" href="group__integers.html#ga6">uint</a>&amp; SIGPK)<a name="l00498"></a>00498     {<a name="l00499"></a>00499     <a class="code" href="group__g726__section4m.html#ga0">CHECK_SM</a>(DQ,16);<a name="l00500"></a>00500     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SEZ,15);<a name="l00501"></a>00501     <span class="keywordtype">int</span> DQI;<a name="l00502"></a>00502     <span class="keywordflow">if</span>(DQ&amp;(1&lt;&lt;15))<a name="l00503"></a>00503         DQI = (1&lt;&lt;15)-DQ;<a name="l00504"></a>00504     <span class="keywordflow">else</span><a name="l00505"></a>00505         DQI = DQ;<a name="l00506"></a>00506     <span class="keywordtype">int</span> DQSEZ = (<a class="code" href="group__integers.html#ga4">int16</a>)(DQI+SEZ);<a name="l00507"></a>00507     PK0 = DQSEZ&gt;&gt;15;<a name="l00508"></a>00508     SIGPK = DQSEZ ? 0 : 1;<a name="l00509"></a>00509     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(PK0,1);<a name="l00510"></a>00510     <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(SIGPK,1);<a name="l00511"></a>00511     }<a name="l00512"></a>00512 <a name="l00513"></a>00513 <a name="l00514"></a><a class="code" href="group__g726__section4.html#ga22">00514</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga22">MagToFloat</a>(<a class="code" href="group__integers.html#ga6">uint</a> mag,<a class="code" href="group__integers.html#ga6">uint</a>&amp; exp,<a class="code" href="group__integers.html#ga6">uint</a>&amp; mant)<a name="l00515"></a>00515     {<a name="l00516"></a>00516     <a class="code" href="group__integers.html#ga6">uint</a> e = 0;<a name="l00517"></a>00517     <a class="code" href="group__integers.html#ga6">uint</a> m = mag&lt;&lt;1;<a name="l00518"></a>00518     <span class="keywordflow">if</span>(m&gt;=(1&lt;&lt;8))<a name="l00519"></a>00519         {<a name="l00520"></a>00520         e |= 8;<a name="l00521"></a>00521         m &gt;&gt;= 8;<a name="l00522"></a>00522         }<a name="l00523"></a>00523     <span class="keywordflow">if</span>(m&gt;=(1&lt;&lt;4))<a name="l00524"></a>00524         {<a name="l00525"></a>00525         e |= 4;<a name="l00526"></a>00526         m &gt;&gt;= 4;<a name="l00527"></a>00527         }<a name="l00528"></a>00528     <span class="keywordflow">if</span>(m&gt;=(1&lt;&lt;2))<a name="l00529"></a>00529         {<a name="l00530"></a>00530         e |= 2;<a name="l00531"></a>00531         m &gt;&gt;= 2;<a name="l00532"></a>00532         }<a name="l00533"></a>00533     e |= m&gt;&gt;1;<a name="l00534"></a>00534     exp = e;<a name="l00535"></a>00535     mant = mag ? (mag&lt;&lt;6)&gt;&gt;e : 1&lt;&lt;5;<a name="l00536"></a>00536     }<a name="l00537"></a>00537 <a name="l00538"></a>00538 

⌨️ 快捷键说明

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