亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? levinson.asm

?? ADI BLACKFIN BF533的音頻編解碼程序
?? ASM
字號:
/*******************************************************************************
Copyright(c) 2000 - 2002 Analog Devices. All Rights Reserved.
Developed by Joint Development Software Application Team, IPDC, Bangalore, India
for Blackfin DSPs  ( Micro Signal Architecture 1.0 specification).

    By using this module you agree to the terms of the Analog Devices License
Agreement for DSP Software. 
********************************************************************************
Module Name     : levinson.asm
Label name      :  __levinson
Version         :   1.2
Change History  :

                Version     Date          Author      Comments
                1.2         11/18/2002    Swarnalatha Tested with VDSP++ 3.0
                                                      compiler 6.2.2 on 
                                                      ADSP-21535 Rev.0.2
                1.1         11/13/2002    Swarnalatha Tested with VDSP++ 3.0
                                                      on ADSP-21535 Rev. 0.2
                1.0         06/26/2001    Srinivas    Original 

Description     : This program implements the double precision Levinson-Durbin 
                  Algorithm.
                  The autocorrelation values r(i) are assumed to be in 1.31 
                  format. 
                    This function gives filter coeff
                    a(0),a(1).... . in 4.12 format.
                    a(i)[j] -> jth LPC in ith iteration. 

Algorithm       : Levinson-Durbin Algorithm
                    Eld(0)=r(0)
                    for i=1 to 10 do
                        a(i-1)[0] = 1
                        k(i) = - [summ{a(i-1)[j] * r(i-j)}]/Eld(i-1),   j=0 to i-1
                        a(i)[i]=k(i)
                        for j=1 to i-1 do
                            a(i)[j] = a(i-1)[j] + k(i) * a(i-1)[i-j]
                        end
                    Eld(i) = {1-k(i)*k(i)}*Eld(i-1)
                    end

Prototype       : void _levinson(fract32 *PtrAutoCorr, fract16 *PtrOutput,
                                fract16 *PtrReflCoeff);
                        PtrAutoCorr  :- Pointer to autocorrelation buffer,  
                        PtrOutput    :- Pointer to the output buffer,
                        PtrReflCoeff :- Pointer to reflection coeff buffer.

Assumptions     : (1) Order of the filter, nOrder is assumed to be 10.

Registers used  : A0, A1, R0-R7, P0-P5, I0-I3, L0-L3, LC0, LC1.

Performance     :
                    Code size      : 344 bytes
                    Cycle count    : 1283 Cycles
*******************************************************************************/
.section    L1_code;
.global     __levinson;
.align 8;

.extern __ld_div32;

__levinson:

    [--SP] = (R7:4,P5:3);
    [--SP] = RETS;          //Store RETS register values in stack     
    L0 = 0;
    L1 = 0;
    L2 = 0;
    P2 = R0;                //The address of the Autocorr values r(0)
    L3 = 0;
    P3 = R1;                //store address of the o/p buffer         
    P0 = -80;               //Offset for stack buffers,
                            //memory required = 2*(nOrder)*4 bytes
    I3 = R2;                //PtrReflCoeff
    R1 = [P2++];            //r[0]
    SP = SP + P0;           //Allocating the memory for temp buffers
    P0 = 40;                //Offset for single buffer
    I0 = P2;                //I0 pointing r[1]
    R5 = R5 - R5 (NS) || R0 = [P2++];
                            //Load r(1);
    P5 = SP;                //Starting address of temp buffer1 in stack
    P1 = P0 + P5;           //Starting address for temp buffer2 in stack
    I2 = P5;                //I2 Pointing to a(i-1)[1]
/************************* Beginning of first iteration *******************/
    R0 = -R0;               //-r(1)
    CALL __ld_div32;        //k1 = -r(1)/Eld(0)        
    R4.H = 0X7FFF;          //load 1 in 1.31 format
    R4.L = 0XFFFF;
    [--SP] = R4;            //store 1 in stack
    R2 = R0 >>> 4 || W[I3++] = R0.H;
                            //k1 in 5.27, Store Reflection coeff k1
    A1 = R0.H * R0.L (M);   //Higher 16 bits * Lower 16 bits
    A1 = A1 >>>14;          //shifted 14 times, result here should be twice A1
                            //and stored in A1.L
    R3 = (A1 += R0.H * R0.H) || [I2] = R2;
                            //k1*k1, a(i-1)[1]= k1
    R7 = R4 - R3 ;          //(1-k1*k1)
    P0 = 9;                 //To set loop counter to (nOrder-1)
    A1 = R7.H * R1.L (M);   //multiplication of R3.H & R1.L in mixed mode
    A1 += R1.H * R7.L (M);
    A1 = A1 >>> 15;         //results of cross multiplication in lower 16 bits
    R1 = (A1 += R7.H * R1.H);
                            //Eld(1)=(1-k1*k1)*Eld(0), 32 bit multiplication
                            //result
    I1 = P1;                //I1 pointing to ai(1)
    R6.L = SIGNBITS R1;     //Number of sign bits
    R1 = ASHIFT R1 BY R6.L; //Normalize
    M0 = 8;
    P4 = 1;                 //store the iteration number
/******************************** 2 to nOrder iteration *********************/
    LSETUP(LSTART0,LEND0) LC1=P0;
                            //(nOrder-1) times
LSTART0:A1=A0=0 || R0 = [I2++] || R7 = [I0--];
                            //summ(a*r)=0, a(i-1)[1], r[i-1] 
/******************* Loop for reflection coeff calculation ******************/
/******************* summ -= a(i-1)[j] * r[i-j] *****************************/
        LSETUP(LSTART1,LEND1) LC0=P4;
                            //(i-1)
LSTART1:    R2 = (A0 -= R0.H * R7.H), A1 = R0.H * R7.L (M);        
                            //summ(X.H*Y.H), X.H*Y.L
            R3 = (A1 += R7.H * R0.L) (M)|| R0=[I2++] || R7=[I0--];
                            //X.H*Y.L + Y.H*X.L
            R3 = R3 >>> 15; //cross product
LEND1:      R5 = R5 + R3 (S);                                      
                            //summ(X.H*Y.L + Y.H*X.L)
        R0 = R2 - R5;       //final result of summation of a and r product
        R0 = R0 << 4 || R3 = [P2++];
                            //summ in 1.31, load r[i]
        R0 = R0 - R3 (NS) || I2 -= M0;
                            //add (-r[i]), I2 pointing to a(i-1)[i-1]
        CALL __ld_div32;    //devide summ(a*r) by Eld(i-1)
        I0 = P5;            //I0 pointing to a(i-1)[1]
        R0 = ASHIFT R0 BY R6.L || R2 = [I2--];
                            //Denormalize result k(i), a(i-1)[i-1]
/********************** Loop for LPC updation ******************************/
        LSETUP(LSTART2,LEND2) LC0=P4;
                            //(i-1)
            A1 = R0.H * R2.L (M);
                            //multiplication (k(i)*a(i-1)[i-j]) of R0.H & R2.L
                            //in mixed mode
LSTART2:    A1 += R2.H * R0.L (M);
            A1 = A1 >>>15  || R3 = [I0++];
                            //result in lower 16 bits, a(i-1)[j];
            R7 = (A1 += R0.H * R2.H) || R2 = [I2--];
                            // k(i)*a(i-1)[i-j], a(i-1)[i-j]
            R7 = R3 + R7;   //a(i)[j] = a(i-1)[j] + k(i)a(i-1)[i-j], 
LEND2:      A1 = R0.H * R2.L (M) || [I1++] = R7;
                            //update the coeff values
        I0 = P2;            //I0 pointing to r[i]
        R3 = R0 >>> 4  || W[I3++] = R0.H ;
                            //k(i) in 5.27, Store Reflection coeff in buffer
        A1 = R0.H * R0.L (M) || I0 -= 4 || [I1] = R3;
                            //ki*ki, I0 points to r[i-1], a(i)[i]=k(i)
        A1 = A1 >>> 14;     //shifted 14 times result here should be twice A1
                            //and located in A1.L
        R3 = (A1 += R0.H * R0.H) || R5 = [SP];
                            //ki*ki, load 1
        R0 = R5 - R3 (NS);  //(1-ki*ki)
        P4 += 1;            //Increment iteration counter (i-1)
        A1 = R0.H * R1.L (M);                             
                            //multiplication of R0.H & R1.L in mixed mode
        A1 += R1.H * R0.L (M);
        A1 = A1 >>>15;      //result in lower 16 bits
        R1 = (A1 += R0.H * R1.H);                         
                            //Eld(i)=(1-ki*ki)Eld(i-1)
        R5 = 0;
        R3.L = SIGNBITS R1; //Get sign bits
        R1 = ASHIFT R1 BY R3.L;
                            //Normalize Eld(i)
        R6.L = R6.L + R3.L (S);
                            //Update TotalSignBits
        R2 = P1;            //Interchanging the old & new a's array                
        I2 = R2;            //I2 pointing to old a's i.e. a(i-1)[1] 
        I1 = P5;            //I1 pointing to new a's i.e. a(i)[1]
        P1 = P5;

LEND0:  P5 = R2;            //a(i-1)[1]
TERMINATE:
    R1.L = 4096;            //1 in 4.12 format
    P0 = 11;                //nOrder
    R0 = [I2++];            //load A[1]
/*********** Loop for copying the LPC values to o/p buffer **************/
    LSETUP(STEND4,STEND4) LC1=P0;
                            //nOrder       
STEND4:R1 = R0 >>> 15 || W[P3++] = R1 || R0 = [I2++];
                            //In 4.12 format, Copy LPC values to o/p buffer,
                            //load A[i]
    P0 = 84;
    SP = SP + P0;           //releasing the memory allocated for temp buffer
    RETS = [SP++];        
    (R7:4, P5:3) = [SP++];  // Pop the registers before returning.
    RTS;
    NOP;                    //to avoid one stall if LINK or UNLINK happens to be
                            //the next instruction after RTS in the memory.
__levinson.end:                            

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区二区三区在线| 亚洲一区二区三区在线看| 中文字幕在线不卡国产视频| 一区二区三区四区高清精品免费观看 | 日韩在线一区二区三区| 国产在线一区观看| 欧美日韩一区二区三区在线| 国产精品婷婷午夜在线观看| 久久黄色级2电影| 欧美性猛交一区二区三区精品| 欧美精彩视频一区二区三区| 人人超碰91尤物精品国产| 色婷婷国产精品| 国产精品网友自拍| 国产精一区二区三区| 日韩午夜在线影院| 亚洲电影一级黄| 91丨porny丨国产入口| 欧美激情在线看| 国产精品一区二区在线观看不卡| 日韩免费电影网站| 日日摸夜夜添夜夜添亚洲女人| 色婷婷综合久久久久中文一区二区 | 91丝袜美女网| 中文字幕国产一区二区| 国产很黄免费观看久久| 日韩美一区二区三区| 蜜桃视频在线观看一区| 欧美日本在线一区| 舔着乳尖日韩一区| 欧美日本在线视频| 日韩精品一二区| 欧美一区二区观看视频| 日本麻豆一区二区三区视频| 在线成人午夜影院| 日韩成人dvd| 日韩三级视频在线看| 麻豆成人在线观看| 久久亚洲一区二区三区四区| 久久99国产精品尤物| 久久只精品国产| 国产精品88av| 中文字幕一区二区三区色视频| av成人动漫在线观看| 亚洲女女做受ⅹxx高潮| 在线观看日韩毛片| 日韩黄色免费电影| 日韩一区二区精品在线观看| 毛片av一区二区三区| 久久久一区二区| 成人av免费在线观看| 一区二区久久久久久| 7799精品视频| 国产乱码精品一品二品| 亚洲视频图片小说| 欧美精品123区| 国产麻豆91精品| 亚洲人成亚洲人成在线观看图片| 日本久久电影网| 日韩成人免费电影| 欧美国产国产综合| 欧美亚洲综合在线| 国产精品一区2区| 一区二区三区四区不卡在线 | 伊人婷婷欧美激情| 884aa四虎影成人精品一区| 国产精品一区二区你懂的| 一区在线观看免费| 日韩一级黄色大片| av一本久道久久综合久久鬼色| 午夜精品福利一区二区蜜股av| 欧美变态tickle挠乳网站| 99这里只有精品| 日本一不卡视频| 亚洲视频一二区| 久久综合久久鬼色| 欧美日韩成人在线| 成人高清免费观看| 美女久久久精品| 一区二区三区欧美日韩| 久久久亚洲高清| 在线播放日韩导航| 91美女精品福利| 国产大陆a不卡| 青青草97国产精品免费观看无弹窗版| 中文字幕欧美区| 日韩欧美国产三级电影视频| 99免费精品视频| 国内欧美视频一区二区| 天堂久久久久va久久久久| 国产精品美女久久久久久久久久久| 欧美丰满一区二区免费视频| 99久久久免费精品国产一区二区| 美女一区二区视频| 亚洲一区二区三区中文字幕 | 一区二区三区加勒比av| 久久久久久久综合狠狠综合| 欧美日韩一区成人| 91色|porny| 成人自拍视频在线| 国产美女精品在线| 亚洲一二三区在线观看| 亚洲欧美综合网| 国产午夜亚洲精品理论片色戒 | 972aa.com艺术欧美| 国产精品99久久久久久宅男| 久久99九九99精品| 美女性感视频久久| 久久成人羞羞网站| 免费国产亚洲视频| 蜜臀久久99精品久久久久久9| 亚洲一二三四在线观看| 亚洲激情第一区| 亚洲精品高清在线观看| 综合色中文字幕| 国产精品久久久久永久免费观看| 国产亚洲精品7777| 国产欧美日韩激情| 欧美国产日产图区| 中文字幕日韩一区二区| 亚洲日本va午夜在线电影| 亚洲欧美自拍偷拍| 一区二区三区中文在线观看| 亚洲精品中文字幕乱码三区 | 91国偷自产一区二区使用方法| 波多野结衣欧美| 一本大道综合伊人精品热热 | 国产精品一二三四| 成人网男人的天堂| 日本韩国一区二区三区| 欧美日韩一区在线观看| 91精品国产色综合久久不卡电影| 在线播放一区二区三区| 精品久久久久久亚洲综合网| 国产亚洲一区二区三区| 久久精品这里都是精品| 国产嫩草影院久久久久| 中文字幕一区二区三| 亚洲一区二区影院| 美女性感视频久久| 国产盗摄女厕一区二区三区| 成人国产精品免费网站| 99麻豆久久久国产精品免费优播| 欧美综合视频在线观看| 日韩欧美久久久| 国产精品乱人伦一区二区| 亚洲欧美日韩在线| 蜜臀久久99精品久久久久久9 | 久久九九全国免费| 亚洲男人都懂的| 日产欧产美韩系列久久99| 六月丁香婷婷色狠狠久久| 国产精品一级片| 欧洲精品一区二区三区在线观看| 欧美精品免费视频| 日本一区二区三区电影| 亚洲国产精品久久艾草纯爱| 久久99精品久久久久久动态图| 国产激情偷乱视频一区二区三区| 在线亚洲一区二区| 欧美电影免费观看高清完整版在线| 中文字幕一区二区视频| 另类小说图片综合网| 91丨九色丨黑人外教| 欧美成人午夜电影| 亚洲国产日韩a在线播放| 国产麻豆午夜三级精品| 欧美亚洲禁片免费| 欧美激情中文字幕一区二区| 日本女优在线视频一区二区| 91麻豆精东视频| 久久精品人人做人人爽人人| 亚洲国产日韩精品| jvid福利写真一区二区三区| 日韩一本二本av| 亚洲在线免费播放| 波多野结衣欧美| 国产亚洲综合性久久久影院| 日韩综合小视频| 在线看国产日韩| 中文字幕在线观看不卡视频| 激情av综合网| 日韩一区二区在线看片| 亚洲国产视频a| 在线区一区二视频| 亚洲另类色综合网站| 成人午夜电影小说| 久久只精品国产| 国内外成人在线| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲电影一级片| 欧美日韩视频一区二区| 亚洲欧美一区二区久久 | 国产一区二区三区美女| 91精品国产麻豆国产自产在线| 亚洲国产欧美日韩另类综合 | 欧美一区二区三区性视频| 一区二区三区在线免费观看| 不卡视频在线观看| 国产精品美女久久久久aⅴ|