📄 g726_8cpp-source.html
字号:
00271 YUT = (Y+DIFSX); <span class="comment">// & 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& 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<<6)-YL;00284 <span class="keywordtype">int</span> DIFSX = DIF>>6;00285 YLP = (YL+DIFSX); <span class="comment">// & 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>& 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<<(RATE-1);00304 <a class="code" href="group__integers.html#ga6">uint</a> n = (I&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& 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)&(1<<13);00318 <a class="code" href="group__integers.html#ga6">uint</a> GELL = (YUT+15840)&(1<<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& 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>>6);00338 <span class="keywordtype">int</span> PROD = DIF*AL;00339 <span class="keywordflow">if</span>(DIF<0) PROD += (1<<6)-1; <span class="comment">// Force round towards zero for following shift</span>00340 PROD >>= 6;00341 Y = ((YL>>6)+PROD); <span class="comment">// & 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& 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<<9)-DMS;00354 <span class="keywordtype">int</span> DIFSX = (DIF>>5);00355 DMSP = (DIFSX+DMS); <span class="comment">// & 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& 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<<11)-DML;00368 <span class="keywordtype">int</span> DIFSX = (DIF>>7);00369 DMLP = (DIFSX+DML); <span class="comment">// & 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& 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<<9)-AP;00382 <span class="keywordtype">int</span> DIFSX = (DIF>>4);00383 APP = (DIFSX+AP); <span class="comment">// & 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& 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<<(RATE-1));00403 <span class="keywordflow">if</span>(x&mask)00404 x = ~x;00405 x &= 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& AL)00416 {00417 <a class="code" href="group__g726__section4m.html#ga1">CHECK_UM</a>(AP,10);00418 AL = (AP>256) ? 64 : AP>>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& 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<<2)-DMLP;00433 <a class="code" href="group__integers.html#ga6">uint</a> DIFM;00434 <span class="keywordflow">if</span>(DIF<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 >> 3;00439 AX = (Y>=1536 && DIFM<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& 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>& SE,<span class="keywordtype">int</span>& 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 >> 1;00471 SE = SEI >> 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>& 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&(1<<15))00486 DQI = (1<<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>& PK0,uint& 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 + -