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

📄 g726_8cpp-source.html

📁 Tixys source code, include G.711, G.726, IMA-ADPCM etc.
💻 HTML
📖 第 1 页 / 共 5 页
字号:
00271     YUT = (Y+DIFSX); <span class="comment">// &amp; 8191</span>00272     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(YUT,13);00273     }00274 00275 <a name="l00279"></a><a class="code" href="group__g726__section4.html#ga9">00279</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga9">FILTE</a>(uint YUP,uint YL,uint&amp; YLP)00280     {00281     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(YUP,13);00282     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(YL,19);00283     <span class="keywordtype">int</span> DIF = (YUP&lt;&lt;6)-YL;00284     <span class="keywordtype">int</span> DIFSX = DIF&gt;&gt;6;00285     YLP = (YL+DIFSX); <span class="comment">// &amp; 524287</span>00286     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(YLP,19);00287     }00288 00289 <a name="l00293"></a><a class="code" href="group__g726__section4.html#ga10">00293</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga10">FUNCTW</a>(uint RATE,uint I,<span class="keywordtype">int</span>&amp; WI)00294     {00295     <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(I,RATE);00296 00297     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__integers.html#ga4">int16</a> functw2[2] = {4074-4096,439};00298     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__integers.html#ga4">int16</a> functw3[4] = {4092-4096,30,137,582};00299     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__integers.html#ga4">int16</a> functw4[8] = {4084-4096,18,41,64,112,198,355,1122};00300     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="group__integers.html#ga4">int16</a> functw5[16] = {14,14,24,39,40,41,58,100,141,179,219,280,358,440,529,696};00301     <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> functw[4] = {functw2,functw3,functw4,functw5};00302 00303     <a class="code" href="group__integers.html#ga6">uint</a> signMask = 1&lt;&lt;(RATE-1);00304     <a class="code" href="group__integers.html#ga6">uint</a> n = (I&amp;signMask) ? (2*signMask-1)-I : I;00305     WI = functw[RATE-2][n];00306 00307     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WI,12);00308     }00309 00310 <a name="l00314"></a><a class="code" href="group__g726__section4.html#ga11">00314</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga11">LIMB</a>(uint YUT,uint&amp; YUP)00315     {00316     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(YUT,13);00317     <a class="code" href="group__integers.html#ga6">uint</a> GEUL = (YUT+11264)&amp;(1&lt;&lt;13);00318     <a class="code" href="group__integers.html#ga6">uint</a> GELL = (YUT+15840)&amp;(1&lt;&lt;13);00319     <span class="keywordflow">if</span>(GELL)00320         YUP = 544;00321     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!GEUL)00322         YUP = 5120;00323     <span class="keywordflow">else</span>00324         YUP = YUT;00325     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(YUP,13);00326     }00327 00328 <a name="l00332"></a><a class="code" href="group__g726__section4.html#ga12">00332</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga12">MIX</a>(uint AL,uint YU,uint YL,uint&amp; Y)00333     {00334     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(AL,7);00335     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(YU,13);00336     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(YL,19);00337     <span class="keywordtype">int</span> DIF = YU-(YL&gt;&gt;6);00338     <span class="keywordtype">int</span> PROD = DIF*AL;00339     <span class="keywordflow">if</span>(DIF&lt;0) PROD += (1&lt;&lt;6)-1; <span class="comment">// Force round towards zero for following shift</span>00340     PROD &gt;&gt;= 6;00341     Y = ((YL&gt;&gt;6)+PROD); <span class="comment">// &amp; 8191;</span>00342     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(Y,13);00343     }00344 00345 <a name="l00349"></a><a class="code" href="group__g726__section4.html#ga13">00349</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga13">FILTA</a>(uint FI,uint DMS,uint&amp; DMSP)00350     {00351     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(FI,3);00352     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(DMS,12);00353     <span class="keywordtype">int</span> DIF = (FI&lt;&lt;9)-DMS;00354     <span class="keywordtype">int</span> DIFSX = (DIF&gt;&gt;5);00355     DMSP = (DIFSX+DMS); <span class="comment">// &amp; 4095;</span>00356     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(DMSP,12);00357     }00358 00359 <a name="l00363"></a><a class="code" href="group__g726__section4.html#ga14">00363</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga14">FILTB</a>(uint FI,uint DML,uint&amp; DMLP)00364     {00365     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(FI,3);00366     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(DML,14);00367     <span class="keywordtype">int</span> DIF = (FI&lt;&lt;11)-DML;00368     <span class="keywordtype">int</span> DIFSX = (DIF&gt;&gt;7);00369     DMLP = (DIFSX+DML); <span class="comment">// &amp; 16383;</span>00370     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(DMLP,14);00371     }00372 00373 <a name="l00377"></a><a class="code" href="group__g726__section4.html#ga15">00377</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">FILTC</a>(uint AX,uint AP,uint&amp; APP)00378     {00379     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(AX,1);00380     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(AP,10);00381     <span class="keywordtype">int</span> DIF = (AX&lt;&lt;9)-AP;00382     <span class="keywordtype">int</span> DIFSX = (DIF&gt;&gt;4);00383     APP = (DIFSX+AP); <span class="comment">// &amp; 1023;</span>00384     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(APP,10);00385     }00386 00387 <a name="l00391"></a><a class="code" href="group__g726__section4.html#ga16">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#ga16">FUNCTF</a>(uint RATE,uint I,uint&amp; FI)00392     {00393     <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(I,RATE);00394 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};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};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};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};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};00400 00401     <a class="code" href="group__integers.html#ga6">uint</a> x = I;00402     <span class="keywordtype">int</span> mask=(1&lt;&lt;(RATE-1));00403     <span class="keywordflow">if</span>(x&amp;mask)00404         x = ~x;00405     x &amp;= mask-1;00406     FI = functf[RATE-2][x];00407 00408     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(FI,3);00409     }00410 00411 <a name="l00415"></a><a class="code" href="group__g726__section4.html#ga17">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#ga17">LIMA</a>(uint AP,uint&amp; AL)00416     {00417     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(AP,10);00418     AL = (AP&gt;256) ? 64 : AP&gt;&gt;2;00419     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(AL,7);00420     }00421 00422 <a name="l00426"></a><a class="code" href="group__g726__section4.html#ga18">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#ga18">SUBTC</a>(uint DMSP,uint DMLP,uint TDP,uint Y,uint&amp; AX)00427     {00428     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(DMSP,12);00429     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(DMLP,14);00430     <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(TDP,1);00431     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(Y,13);00432     <span class="keywordtype">int</span> DIF = (DMSP&lt;&lt;2)-DMLP;00433     <a class="code" href="group__integers.html#ga6">uint</a> DIFM;00434     <span class="keywordflow">if</span>(DIF&lt;0)00435         DIFM = -DIF;00436     <span class="keywordflow">else</span>00437         DIFM = DIF;00438     <a class="code" href="group__integers.html#ga6">uint</a> DTHR = DMLP &gt;&gt; 3;00439     AX = (Y&gt;=1536 &amp;&amp; DIFM&lt;DTHR) ? TDP : 1;00440     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(AX,1);00441     }00442 00443 <a name="l00447"></a><a class="code" href="group__g726__section4.html#ga19">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#ga19">TRIGA</a>(uint TR,uint APP,uint&amp; APR)00448     {00449     <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(TR,1);00450     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(APP,10);00451     APR = TR ? 256 : APP;00452     <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(APR,10);00453     }00454 <a name="l00458"></a><a class="code" href="group__g726__section4.html#ga20">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#ga20">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)00459     {00460     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WAn[0],16);00461     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WAn[1],16);00462     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[0],16);00463     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[1],16);00464     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[2],16);00465     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[3],16);00466     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[4],16);00467     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WBn[5],16);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]);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]);00470     SEZ = SEZI &gt;&gt; 1;00471     SE = SEI &gt;&gt; 1;  00472     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SE,15);00473     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SEZ,15);00474     }00475 00476 <a name="l00480"></a><a class="code" href="group__g726__section4.html#ga21">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#ga21">ADDB</a>(uint DQ,<span class="keywordtype">int</span> SE,<span class="keywordtype">int</span>&amp; SR)00481     {00482     <a class="code" href="group__g726__section4m.html#ga0">CHECK_SM</a>(DQ,16);00483     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SE,15);00484     <span class="keywordtype">int</span> DQI;00485     <span class="keywordflow">if</span>(DQ&amp;(1&lt;&lt;15))00486         DQI = (1&lt;&lt;15)-DQ;00487     <span class="keywordflow">else</span>00488         DQI = DQ;00489     SR = (<a class="code" href="group__integers.html#ga4">int16</a>)(DQI+SE);00490     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SR,16);00491     }00492 00493 <a name="l00497"></a><a class="code" href="group__g726__section4.html#ga22">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#ga22">ADDC</a>(uint DQ,<span class="keywordtype">int</span> SEZ,<span class="keywordtype">int</span>&amp; PK0,uint&amp; SIGPK)00498     {00499     <a class="code" href="group__g726__section4m.html#ga0">CHECK_SM</a>(DQ,16);00500     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SEZ,15);

⌨️ 快捷键说明

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