📄 g726_8cpp-source.html
字号:
00501 <span class="keywordtype">int</span> DQI;00502 <span class="keywordflow">if</span>(DQ&(1<<15))00503 DQI = (1<<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>>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& exp,uint& 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<<1;00518 <span class="keywordflow">if</span>(m>=(1<<8))00519 {00520 e |= 8;00521 m >>= 8;00522 }00523 <span class="keywordflow">if</span>(m>=(1<<4))00524 {00525 e |= 4;00526 m >>= 4;00527 }00528 <span class="keywordflow">if</span>(m>=(1<<2))00529 {00530 e |= 2;00531 m >>= 2;00532 }00533 e |= m>>1;00534 exp = e;00535 mant = mag ? (mag<<6)>>e : 1<<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& 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>>15);00546 <a class="code" href="group__integers.html#ga6">uint</a> MAG = DQ&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<<10) + (EXP<<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& 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>>15)&1;00562 <a class="code" href="group__integers.html#ga6">uint</a> MAG = SRS ? (-SR)&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<<10) + (EXP<<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>& 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>>15)&1;00579 <a class="code" href="group__integers.html#ga6">uint</a> AnMAG = AnS ? (-(An>>2))&8191 : An>>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>>10;00585 <a class="code" href="group__integers.html#ga6">uint</a> SRnEXP = (SRn>>6) & 15;00586 <a class="code" href="group__integers.html#ga6">uint</a> SRnMANT = SRn&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)>>4;00591 <a class="code" href="group__integers.html#ga6">uint</a> WAnMAG;00592 <span class="keywordflow">if</span>(WAnEXP<=26)00593 WAnMAG = (WAnMANT<<7) >> (26-WAnEXP);00594 <span class="keywordflow">else</span>00595 WAnMAG = ((WAnMANT<<7) << (WAnEXP-26)) & 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>& 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<=A2LL)00610 A2P = A2LL;00611 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(A2T>=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>& 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<=A1LL)00630 A1P = A1LL;00631 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(A1T>=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>& 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>& 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>>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>& 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<-8191) FA1 = -8191<<2;00694 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(A1>8191) FA1 = 8191<<2;00695 <span class="keywordflow">else</span> FA1 = A1<<2;00696 00697 <span class="keywordtype">int</span> FA = (PK0^PK1) ? FA1 : -FA1;00698 00699 UGA2 = (UGA2A+FA) >> 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>>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>& 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 + -