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

📄 g726_8cpp-source.html

📁 Tixys source code, include G.711, G.726, IMA-ADPCM etc.
💻 HTML
📖 第 1 页 / 共 5 页
字号:
00501     <span class="keywordtype">int</span> DQI;00502     <span class="keywordflow">if</span>(DQ&amp;(1&lt;&lt;15))00503         DQI = (1&lt;&lt;15)-DQ;00504     <span class="keywordflow">else</span>00505         DQI = DQ;00506     <span class="keywordtype">int</span> DQSEZ = (<a class="code" href="group__integers.html#ga4">int16</a>)(DQI+SEZ);00507     PK0 = DQSEZ&gt;&gt;15;00508     SIGPK = DQSEZ ? 0 : 1;00509     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(PK0,1);00510     <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(SIGPK,1);00511     }00512 00513 00514 <span class="keyword">static</span> <span class="keywordtype">void</span> MagToFloat(uint mag,uint&amp; exp,uint&amp; mant)00515     {00516     <a class="code" href="group__integers.html#ga6">uint</a> e = 0;00517     <a class="code" href="group__integers.html#ga6">uint</a> m = mag&lt;&lt;1;00518     <span class="keywordflow">if</span>(m&gt;=(1&lt;&lt;8))00519         {00520         e |= 8;00521         m &gt;&gt;= 8;00522         }00523     <span class="keywordflow">if</span>(m&gt;=(1&lt;&lt;4))00524         {00525         e |= 4;00526         m &gt;&gt;= 4;00527         }00528     <span class="keywordflow">if</span>(m&gt;=(1&lt;&lt;2))00529         {00530         e |= 2;00531         m &gt;&gt;= 2;00532         }00533     e |= m&gt;&gt;1;00534     exp = e;00535     mant = mag ? (mag&lt;&lt;6)&gt;&gt;e : 1&lt;&lt;5;00536     }00537 00538 <a name="l00542"></a><a class="code" href="group__g726__section4.html#ga24">00542</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga24">FLOATA</a>(uint DQ, uint&amp; DQ0)00543     {00544     <a class="code" href="group__g726__section4m.html#ga0">CHECK_SM</a>(DQ,16);00545     <a class="code" href="group__integers.html#ga6">uint</a> DQS = (DQ&gt;&gt;15);00546     <a class="code" href="group__integers.html#ga6">uint</a> MAG = DQ&amp;32767;00547     <a class="code" href="group__integers.html#ga6">uint</a> EXP;00548     <a class="code" href="group__integers.html#ga6">uint</a> MANT;00549     MagToFloat(MAG,EXP,MANT);00550     DQ0 = (DQS&lt;&lt;10) + (EXP&lt;&lt;6) + MANT;00551     <a class="code" href="group__g726__section4m.html#ga3">CHECK_FL</a>(DQ0,11);00552     }00553 00554 <a name="l00558"></a><a class="code" href="group__g726__section4.html#ga25">00558</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga25">FLOATB</a>(<span class="keywordtype">int</span> SR, uint&amp; SR0)00559     {00560     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(SR,16);00561     <a class="code" href="group__integers.html#ga6">uint</a> SRS = (SR&gt;&gt;15)&amp;1;00562     <a class="code" href="group__integers.html#ga6">uint</a> MAG = SRS ? (-SR)&amp;32767 : SR;00563     <a class="code" href="group__integers.html#ga6">uint</a> EXP;00564     <a class="code" href="group__integers.html#ga6">uint</a> MANT;00565     MagToFloat(MAG,EXP,MANT);00566     SR0 = (SRS&lt;&lt;10) + (EXP&lt;&lt;6) + MANT;00567     <a class="code" href="group__g726__section4m.html#ga3">CHECK_FL</a>(SR0,11);00568     }00569 00570 <a name="l00574"></a><a class="code" href="group__g726__section4.html#ga26">00574</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga26">FMULT</a>(<span class="keywordtype">int</span> An,uint SRn,<span class="keywordtype">int</span>&amp; WAn)00575     {00576     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(An,16);00577     <a class="code" href="group__g726__section4m.html#ga3">CHECK_FL</a>(SRn,11);00578     <a class="code" href="group__integers.html#ga6">uint</a> AnS = (An&gt;&gt;15)&amp;1;00579     <a class="code" href="group__integers.html#ga6">uint</a> AnMAG = AnS ? (-(An&gt;&gt;2))&amp;8191 : An&gt;&gt;2;00580     <a class="code" href="group__integers.html#ga6">uint</a> AnEXP;00581     <a class="code" href="group__integers.html#ga6">uint</a> AnMANT;00582     MagToFloat(AnMAG,AnEXP,AnMANT);00583 00584     <a class="code" href="group__integers.html#ga6">uint</a> SRnS = SRn&gt;&gt;10;00585     <a class="code" href="group__integers.html#ga6">uint</a> SRnEXP = (SRn&gt;&gt;6) &amp; 15;00586     <a class="code" href="group__integers.html#ga6">uint</a> SRnMANT = SRn&amp;63;00587 00588     <a class="code" href="group__integers.html#ga6">uint</a> WAnS = SRnS^AnS;00589     <a class="code" href="group__integers.html#ga6">uint</a> WAnEXP = SRnEXP+AnEXP;00590     <a class="code" href="group__integers.html#ga6">uint</a> WAnMANT = ((SRnMANT*AnMANT)+48)&gt;&gt;4;00591     <a class="code" href="group__integers.html#ga6">uint</a> WAnMAG;00592     <span class="keywordflow">if</span>(WAnEXP&lt;=26)00593         WAnMAG = (WAnMANT&lt;&lt;7) &gt;&gt; (26-WAnEXP);00594     <span class="keywordflow">else</span>00595         WAnMAG = ((WAnMANT&lt;&lt;7) &lt;&lt; (WAnEXP-26)) &amp; 32767;00596     WAn = WAnS ? -(int)WAnMAG : WAnMAG;00597     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(WAn,16);00598     }00599 00600 <a name="l00604"></a><a class="code" href="group__g726__section4.html#ga27">00604</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga27">LIMC</a>(<span class="keywordtype">int</span> A2T,<span class="keywordtype">int</span>&amp; A2P)00605     {00606     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(A2T,16);00607     <span class="keyword">const</span> <span class="keywordtype">int</span> A2UL = 12288;00608     <span class="keyword">const</span> <span class="keywordtype">int</span> A2LL = 53248-65536;00609     <span class="keywordflow">if</span>(A2T&lt;=A2LL)00610         A2P = A2LL;00611     <span class="keywordflow">else</span> <span class="keywordflow">if</span>(A2T&gt;=A2UL)00612         A2P = A2UL;00613     <span class="keywordflow">else</span>00614         A2P = A2T;00615     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(A2P,16);00616     }00617 00618 <a name="l00622"></a><a class="code" href="group__g726__section4.html#ga28">00622</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga28">LIMD</a>(<span class="keywordtype">int</span> A1T,<span class="keywordtype">int</span> A2P,<span class="keywordtype">int</span>&amp; A1P)00623     {00624     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(A1T,16);00625     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(A2P,16);00626     <span class="keyword">const</span> <span class="keywordtype">int</span> OME = 15360;00627     <span class="keywordtype">int</span> A1UL = (<a class="code" href="group__integers.html#ga4">int16</a>)(OME-A2P);00628     <span class="keywordtype">int</span> A1LL = (<a class="code" href="group__integers.html#ga4">int16</a>)(A2P-OME);00629     <span class="keywordflow">if</span>(A1T&lt;=A1LL)00630         A1P = A1LL;00631     <span class="keywordflow">else</span> <span class="keywordflow">if</span>(A1T&gt;=A1UL)00632         A1P = A1UL;00633     <span class="keywordflow">else</span>00634         A1P = A1T;00635     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(A1P,16);00636     }00637 00638 <a name="l00642"></a><a class="code" href="group__g726__section4.html#ga29">00642</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga29">TRIGB</a>(uint TR,<span class="keywordtype">int</span> AnP,<span class="keywordtype">int</span>&amp; AnR)00643     {00644     <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(TR,1);00645     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(AnP,16);00646     AnR = TR ? 0 : AnP;00647     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(AnR,16);00648     }00649 00650 <a name="l00654"></a><a class="code" href="group__g726__section4.html#ga30">00654</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga30">UPA1</a>(<span class="keywordtype">int</span> PK0,<span class="keywordtype">int</span> PK1,<span class="keywordtype">int</span> A1,uint SIGPK,<span class="keywordtype">int</span>&amp; A1T)00655     {00656     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(PK0,1);00657     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(PK1,1);00658     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(A1,16);00659     <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(SIGPK,1);00660     <span class="keywordtype">int</span> UGA1;00661     <span class="keywordflow">if</span>(SIGPK==0)00662         {00663         <span class="keywordflow">if</span>(PK0^PK1)00664             UGA1 = -192;00665         <span class="keywordflow">else</span>00666             UGA1 = 192;00667         }00668     <span class="keywordflow">else</span>00669         UGA1 = 0;00670     A1T = (<a class="code" href="group__integers.html#ga4">int16</a>)(A1+UGA1-(A1&gt;&gt;8));00671     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(A1T,16);00672     }00673 00674 <a name="l00678"></a><a class="code" href="group__g726__section4.html#ga31">00678</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga31">UPA2</a>(<span class="keywordtype">int</span> PK0,<span class="keywordtype">int</span> PK1,<span class="keywordtype">int</span> PK2,<span class="keywordtype">int</span> A1,<span class="keywordtype">int</span> A2,uint SIGPK,<span class="keywordtype">int</span>&amp; A2T)00679     {00680     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(PK0,1);00681     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(PK1,1);00682     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(PK2,1);00683     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(A1,16);00684     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(A2,16);00685     <a class="code" href="group__g726__section4m.html#ga4">CHECK_UNSIGNED</a>(SIGPK,1);00686 00687     <a class="code" href="group__integers.html#ga6">uint</a> UGA2;00688     <span class="keywordflow">if</span>(SIGPK==0)00689         {00690         <span class="keywordtype">int</span> UGA2A = (PK0^PK2) ? -16384 : 16384;00691 00692         <span class="keywordtype">int</span> FA1;00693         <span class="keywordflow">if</span>(A1&lt;-8191)     FA1 = -8191&lt;&lt;2;00694         <span class="keywordflow">else</span> <span class="keywordflow">if</span>(A1&gt;8191) FA1 = 8191&lt;&lt;2;00695         <span class="keywordflow">else</span>             FA1 = A1&lt;&lt;2;00696 00697         <span class="keywordtype">int</span> FA = (PK0^PK1) ? FA1 : -FA1;00698 00699         UGA2 = (UGA2A+FA) &gt;&gt; 7;00700         }00701     <span class="keywordflow">else</span>00702         UGA2 = 0;00703     A2T = (<a class="code" href="group__integers.html#ga4">int16</a>)(A2+UGA2-(A2&gt;&gt;7));00704         00705     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(A2T,16);00706     }00707 00708 <a name="l00712"></a><a class="code" href="group__g726__section4.html#ga32">00712</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__g726__section4.html#ga32">UPB</a>(uint RATE,<span class="keywordtype">int</span> Un,<span class="keywordtype">int</span> Bn,uint DQ,<span class="keywordtype">int</span>&amp; BnP)00713     {00714     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(Un,1);00715     <a class="code" href="group__g726__section4m.html#ga2">CHECK_TC</a>(Bn,16);

⌨️ 快捷键说明

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