• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    G.729.1算法的改進(jìn)與DSP全匯編優(yōu)化設(shè)計

    2017-01-03 01:29:45王春柳陳德宏申星海
    關(guān)鍵詞:霍夫曼子帶比特

    王春柳,陳德宏,申星海

    (1.河海大學(xué) 文天學(xué)院 電氣信息工程系,安徽 馬鞍山 243031;2.安徽工業(yè)大學(xué) 電氣與信息工程學(xué)院,安徽 馬鞍山 243002)

    G.729.1算法的改進(jìn)與DSP全匯編優(yōu)化設(shè)計

    王春柳1,陳德宏2,申星海2

    (1.河海大學(xué) 文天學(xué)院 電氣信息工程系,安徽 馬鞍山 243031;2.安徽工業(yè)大學(xué) 電氣與信息工程學(xué)院,安徽 馬鞍山 243002)

    在G.729.1寬帶語音編碼算法中,時域混疊編碼器的譜包絡(luò)編碼根據(jù)幀內(nèi)子帶的相關(guān)性,采用差分霍夫曼編碼來減少編碼的比特分配。針對相鄰幀對應(yīng)子帶的譜包絡(luò)存在相關(guān)性,給出了在原有譜包絡(luò)編碼模式的基礎(chǔ)上,增加一種幀間對應(yīng)子帶差分霍夫曼編碼的模式來進(jìn)一步減少譜包絡(luò)的編碼比特數(shù),從而提高合成語音的質(zhì)量。由于G.729.1可以根據(jù)信道的特征隨時調(diào)整編碼速率以取得更好的寬帶語音質(zhì)量,這使得該編碼算法具有很高的復(fù)雜度。為了能在數(shù)字信號處理器 (digital signal processor, DSP)上實時實現(xiàn)G.729.1,結(jié)合TMS320VC5505數(shù)字信號處理器對G.729.1算法采用全匯編實現(xiàn),并對匯編后的G.729.1代碼做了進(jìn)一步的匯編優(yōu)化,優(yōu)化后的G.729.1算法在保證了高質(zhì)量語音輸出的同時,提高了編碼效率,實現(xiàn)了對語音信號的實時處理。

    寬帶語音;G.729.1; 譜包絡(luò)編碼;差分霍夫曼編碼;匯編優(yōu)化

    0 引 言

    G.729.1作為ITU-T提出的嵌入式寬帶語音編碼標(biāo)準(zhǔn)能夠根據(jù)各個終端設(shè)備的能力及傳輸鏈路的傳輸能力,靈活地對編碼比特流進(jìn)行截斷,使得編碼器具有可分級性。它被廣泛應(yīng)用于分組語音傳輸、高質(zhì)量的視頻或音頻會議、網(wǎng)絡(luò)擁塞控制及各種多媒體通信系統(tǒng)中[1-3]。它提供了在8~32 kbit/s之間的12種可選速率,并且用戶可以根據(jù)信道的實際狀況對碼流速率作相應(yīng)調(diào)整,這種根據(jù)網(wǎng)絡(luò)狀況靈活調(diào)整比特率的方法使G.729.1具有較好的適應(yīng)能力,避免了網(wǎng)絡(luò)擁塞,提高了整體服務(wù)質(zhì)量。

    圖1 TDAC編碼原理框圖Fig.1 Block diagram of the TDAC encoder

    由圖1可以看出,TDAC編碼器對低頻端重建加權(quán)差值譜信號和高頻譜信號進(jìn)行譜合并,組成了全頻帶的譜信號。對全頻帶譜信號先進(jìn)行粗編碼,即對變換后的譜系數(shù)(320)組成18個子帶,每個子帶先進(jìn)行譜包絡(luò)編碼,然后再細(xì)量化,即對每個子帶的各個譜系數(shù)再進(jìn)行球形矢量量化。由于TDAC編碼器分配的總比特數(shù)是一定的,因此,子帶譜包絡(luò)編碼分配的比特數(shù)越少,對子帶各個譜系數(shù)分配的比特數(shù)就越多,細(xì)節(jié)描述就更準(zhǔn)確,得到的語音質(zhì)量就越高。G.729.1中的譜包絡(luò)編碼利用幀內(nèi)18個子帶的相關(guān)性,對一幀內(nèi)的相鄰子帶進(jìn)行差分去相關(guān),而幀內(nèi)相鄰子帶差分之后的譜包絡(luò)能量往往集中在較小的動態(tài)范圍內(nèi),即采用不等長霍夫曼編碼,可以進(jìn)一步降低編碼比特數(shù)。

    本文根據(jù)語音幀與幀對應(yīng)子帶之間的譜包絡(luò)具有很大的相關(guān)性,可以利用幀與幀對應(yīng)子帶的相關(guān)性,進(jìn)行差分去相關(guān)處理,對幀間對應(yīng)子帶差分后的信號采用霍夫曼編碼也可以減少譜包絡(luò)的比特分配,然而對不同種類的語音信號,對幀內(nèi)相鄰子帶采用差分霍夫曼編碼模式所分配的比特數(shù)和對語音的相鄰幀對應(yīng)子帶采用差分霍夫曼編碼模式分配的比特數(shù)各有優(yōu)劣,因此,為了使用分配比特數(shù)較少的模式,可以同時保留這2種模式,對每一幀的譜包絡(luò)編碼都計算這2種模式的編碼比特數(shù),采用1 bit來選擇編碼比特數(shù)較小的那種模式,有利于解碼端恢復(fù)譜包絡(luò)的編碼模式。

    由于G.729.1可以根據(jù)信道的特征隨時調(diào)整編碼速率以取得更好的寬帶語音質(zhì)量,這使得該編碼算法具有較高的復(fù)雜度。在工程應(yīng)用中,為了達(dá)到實時處理的目的,文獻(xiàn)[6]采用DM642對G.729.1進(jìn)行簡單的算法優(yōu)化和C語言級別上的優(yōu)化,但該優(yōu)化沒有充分利用DSP C6000系列的結(jié)構(gòu)特點,優(yōu)化效率不高,且C6000系列價格昂貴,因此,采用該系列DSP對G.729.1進(jìn)行處理,性價比不高。文獻(xiàn)[7]采用ARM926EJ為核心的S3C2450處理器對G.729.1進(jìn)行C語言函數(shù)結(jié)構(gòu)和部分匯編優(yōu)化相結(jié)合的優(yōu)化方式,但這種優(yōu)化的可移植性較差,不利于工程應(yīng)用中的直接封裝使用。本文利用C55x系列DSP的低功耗,對數(shù)字信號處理快的特點,在TMS320VC5505 DSP芯片上給出了一種便于編寫、調(diào)試的G.729.1全匯編開發(fā)方案。通過對G.729.1編解碼算法的匯編編寫、調(diào)試,并進(jìn)一步對G.729.1匯編代碼做匯編優(yōu)化,如并行指令、循環(huán)體優(yōu)化、流水線優(yōu)化等。匯編優(yōu)化后的G.729.1代碼可實時處理,并且在工程應(yīng)用中可直接封裝使用并為后續(xù)G.729.1算法的優(yōu)化研究奠定了基礎(chǔ)。

    1 G.729.1譜包絡(luò)編碼的改進(jìn)

    1.1 G.729.1譜包絡(luò)編碼

    (1)

    得到18個譜包絡(luò)后,對每個譜包絡(luò)參數(shù)進(jìn)行5bit均勻標(biāo)量量化,其限定量化結(jié)果為-11~+20的32個可能的數(shù)值,為了防止譜包絡(luò)log_rms(j)的值過多地超出限定范圍,對其進(jìn)行了溢出處理,進(jìn)而得到索引rms_index(j)表示為

    rms_index(j)=round(1/2log_rms(j)),

    j=0,…,17

    (2)

    (2)式中;log_rms(j)為第j個譜包絡(luò);rms_index(j)為第j個量化的譜包絡(luò)。

    量化后的全頻帶包絡(luò)分為2個子矢量:第1個子矢量是rms_index(0)~rms_index(9),該10維的子矢量為低頻帶包絡(luò);第2個矢量是rms_index(10)~rms_index(17),該8維的子矢量為高頻帶包絡(luò)。這2個子矢量的編碼在差分霍夫曼編碼(模式0)和直接自然二進(jìn)制編碼(模式1)之間進(jìn)行自適應(yīng)轉(zhuǎn)換。這是由于差分霍夫曼編碼可使平均編碼比特數(shù)變小,而直接自然二進(jìn)制編碼用于限制最壞情況的比特數(shù)。

    該差分霍夫曼編碼在幀內(nèi)的譜包絡(luò)之間進(jìn)行編碼,一般包括以下4個步驟。

    步驟1對取值為[-11,20]的第1個索引rms_index(0)進(jìn)行5 bit的自然二進(jìn)制編碼。

    步驟2計算相鄰子帶的差分索引和飽和標(biāo)識satur。

    diff_index(j)=rms_index(j)-

    rms_index(j-1),j=1,…,9

    (3)

    (4)

    (3)-(4)式中:rms_index(j)為第j個量化的譜包絡(luò);diff_index(j)為2個相鄰譜包絡(luò)的差值索引;satur為飽和標(biāo)志位。

    步驟3如果satur=0,對于j=1,...,9的低頻差分索引diff_index(j)采用查表法進(jìn)行差分霍夫曼編碼,其霍夫曼表參見文獻(xiàn)[1]。

    步驟4如果satur=1或者差分霍夫曼編碼的比特數(shù)大于45,則對rms_index(1),…,rms_index(9)進(jìn)行步驟1所述的自然二進(jìn)制編碼,并令satur=1。

    1.2 譜包絡(luò)編碼的改進(jìn)

    G.729.1中的譜包絡(luò)編碼利用幀內(nèi)18個子帶的相關(guān)性,對一幀內(nèi)的相鄰子帶進(jìn)行差分去相關(guān),而幀內(nèi)相鄰子帶差分之后的譜包絡(luò)能量往往集中在較小的動態(tài)范圍內(nèi),從而降低編碼比特數(shù)。對常出現(xiàn)的小信號用短碼表示,不常出現(xiàn)的大信號用長碼表示,即采用不等長霍夫曼編碼,可以進(jìn)一步降低編碼比特數(shù)。

    由于譜包絡(luò)編碼分配的比特數(shù)與MDCT系數(shù)分配比特數(shù)的總和是固定的,共351 bit,而MDCT系數(shù)精度越高對語音頻譜細(xì)節(jié)的描述就越準(zhǔn)確,得到的語音質(zhì)量就越好。如果希望MDCT系數(shù)的比特分配越多,這就意味著譜包絡(luò)編碼分配的比特數(shù)越少越好,那么如何進(jìn)一步減少譜包絡(luò)編碼的比特數(shù)呢?一般情況下,語音幀之間的譜包絡(luò)存在很大的相關(guān)性,因此,可采用對幀間對應(yīng)子帶進(jìn)行差分去相關(guān),之后對去除相關(guān)性的對應(yīng)子帶信號采用霍夫曼編碼進(jìn)一步減少譜包絡(luò)的比特分配。文獻(xiàn)[8]表明,對不同種類的語音信號,G.729.1所采用的幀內(nèi)相鄰子帶進(jìn)行差分霍夫曼編碼模式所分配的比特數(shù)和本文所提的語音的相鄰幀對應(yīng)子帶采用差分霍夫曼編碼模式分配的比特數(shù)各有優(yōu)劣,因此,為了確定哪種模式分配的比特數(shù)較少,本文采用同時保留這2種模式的方法,對每幀的譜包絡(luò)編碼都計算這2種模式的編碼比特數(shù),然后進(jìn)行比較,用1 bit來選擇編碼比特數(shù)較小的那種模式,從而可使譜包絡(luò)編碼保持較少的分配比特數(shù)。

    譜包絡(luò)編碼的具體步驟如下。

    步驟1利用(1)式和(2)式計算連續(xù)相鄰幀的18個子帶的譜包絡(luò)值,并計算連續(xù)幀的對應(yīng)子帶譜包絡(luò)的差分為

    diff(t,j)=rms_index(t,j)-rms_index(t-1,j)

    (5)

    (5)式中:rms_index(t,j)是第t幀第j個子帶的量化譜包絡(luò);diff(t,j)為相鄰幀對應(yīng)子帶譜包絡(luò)的差值索引。

    步驟2對每幀得到各個譜包絡(luò)的差值進(jìn)行霍夫曼編碼,并計算分配的比特數(shù)。

    步驟3比較幀內(nèi)相鄰子帶譜包絡(luò)編碼比特分配和相鄰幀對應(yīng)子帶譜包絡(luò)編碼比特分配,采用1 bit進(jìn)行模式選擇,哪種比特數(shù)少,則采用哪種模式,并輸出模式選擇標(biāo)志位。具體譜包絡(luò)編碼流程如圖2所示。

    本文采用ITU-T提供的測試矢量tstseq1.in作為輸入語音,對G.729.1語音壓縮編碼進(jìn)行驗證,統(tǒng)計了1 000幀的語音信號。結(jié)果表明,采用改進(jìn)的譜包絡(luò)編碼使得該部分的編碼比特數(shù)減5 bit左右。由于TDAC編碼器分配的總比特數(shù)是一定的,改進(jìn)的子帶譜包絡(luò)編碼分配的比特數(shù)減少了5 bit,則表明對子帶各個譜系數(shù)分配的比特數(shù)就多了5 bit,細(xì)節(jié)描述就更準(zhǔn)確。通過采用ITU-T推出的WB_PESQ軟件系統(tǒng)對1 000幀的測試矢量tstseq1.in所合成語音的質(zhì)量進(jìn)行評估[9],實驗表明,該譜包絡(luò)方法比原來的譜包絡(luò)編碼方法所得到的感知語音質(zhì)量評價(perceptual evaluation of speech quality, PESQ)得分由原來的4.05提高到4.11,合成語音質(zhì)量所提高。

    圖2 改進(jìn)的譜包絡(luò)編碼流程圖Fig.2 Flow of improved spectral envelope coding

    由于該方法在原有編碼的基礎(chǔ)上增加了對相鄰幀對應(yīng)子帶的差分霍夫曼編碼模式,因此,TDAC編碼器算法的復(fù)雜度有所增加,執(zhí)行一幀的運算量由2 714 111 clock提高到2 759 413 clock,算法復(fù)雜度提高了1.67%。由于G.729.1算法本身的運算量較為龐大,而TDAC編碼器算法的復(fù)雜度只占G.729.1算法中的16.8%,因此,該部分算法復(fù)雜度對G.729.1整體算法的復(fù)雜度并沒有太大影響。但G.729.1的龐大的運算量影響其在工程上的實時實現(xiàn),本文對G.729.1采用全匯編優(yōu)化設(shè)計,解決了實時處理的問題。

    2 G.729.1算法全匯編設(shè)計與優(yōu)化

    TMS320VC5505是TI公司生產(chǎn)的16位定點DSP,在數(shù)字音頻設(shè)備、軟件無線電、便攜式醫(yī)療設(shè)備等領(lǐng)域得到廣泛應(yīng)用[10]。如果直接將C語言編寫的G.729.1編解碼算法加載到C55x DSP開發(fā)平臺進(jìn)行編譯,那么執(zhí)行一個語音超幀(20 ms)需要47 642 993個時鐘周期。對于TMS320VC5505的主頻為100 MHz,則執(zhí)行一個語音超幀需要476.4 ms,無法達(dá)到語音實時處理的目的。因此,為了能在C55x上實時實現(xiàn)G.729.1算法,本文對G.729.1進(jìn)行全匯編編寫和優(yōu)化。而一個合理的開發(fā)設(shè)計方案對程序的編寫和最后的調(diào)試有著至關(guān)重要的作用。本課題利用CCS3.3軟件開發(fā)平臺,開發(fā)一款能夠在DSP上實時處理的G.729.1寬帶語音編碼代碼,其總體開發(fā)流程如圖3所示。

    圖3 基于DSP的G.729.1匯編開發(fā)總方案流程圖Fig.3 Flow of G.729.1 assembly development based on DSP

    圖3描述了G.729.1總體開發(fā)方案流程。該方案首先把C代碼移植到CCS環(huán)境中,并解決移植過程出現(xiàn)的接口不匹配問題;然后對移植成功的C代碼進(jìn)行整體架構(gòu)的分析,制定整個代碼的開發(fā)方案,同時對各個模塊C代碼進(jìn)行參數(shù)精度和算法描述的解讀,制定各個模塊的匯編方案,匯編編寫并調(diào)試各模塊代碼,最后為了進(jìn)一步提高匯編優(yōu)化效率,從各方面對匯編代碼進(jìn)行優(yōu)化。

    2.1 代碼的移植

    由于G.729.1的源C文件是在Visual C++平臺上編寫的,由于CCS3.3對標(biāo)準(zhǔn)C不是百分之百完全兼容的,因此,需要進(jìn)行一定的修改才能將G.729.1算法移植到CCS3.3中。通過修改并在CCS3.3上編譯通過,移植成功后才可以進(jìn)行下一步的匯編編寫和優(yōu)化工作。

    標(biāo)準(zhǔn)C代碼在CCS3.3平臺移植過程中存在的3個不足之處。

    1)標(biāo)準(zhǔn)C代碼的main函數(shù)是帶參數(shù)的,這些參數(shù)可自動判斷輸入文件為什么類型,在CCS3.3中無法執(zhí)行,因而需要將其改為不帶參數(shù)的main函數(shù),人工輸入文件類型。

    2)標(biāo)準(zhǔn)C代碼中的數(shù)據(jù)導(dǎo)入方式是通過fread語句從數(shù)據(jù)文件中讀入數(shù)據(jù),在CCS3.3中,fread讀一個16位整數(shù)時,只能讀出16位整數(shù)的一個字節(jié),這種方式讀入的數(shù)據(jù)格式不對,解決辦法有:①如果數(shù)據(jù)文件是.data格式,直接裝載到數(shù)據(jù)區(qū);②對于其他格式的數(shù)據(jù)文件,可以通過tool工具欄中的Memory Save/Load Utility工具將數(shù)據(jù)讀入指定數(shù)據(jù)區(qū);③可以通過fread將一個16位數(shù)據(jù)讀2次,并需要編程將2個讀出的8位合并成一個完整的16位數(shù)據(jù)。

    3)源C程序移植到CCS3.3上,不僅要加入源文件,而且要與C運行庫進(jìn)行連接。由于C5505 有小模式(small memory model)和大模式(large memory model)之分,模式的選擇決定C運行庫的選擇,在大存儲器模式下,數(shù)據(jù)指針是23位,并在存儲器中占用2個字,大存儲器模式支持?jǐn)?shù)據(jù)的不嚴(yán)格存放,代碼段和數(shù)據(jù)段的長度和位置不會受到一定數(shù)據(jù)頁的限制,本文中在編譯器中設(shè)置-ml,選擇大模式。大模式對應(yīng)的C運行庫為rts55x.1ib。

    將G.729.1源C文件載入TI 公司提供的集成開發(fā)環(huán)境C55xx Rev3.0 CPU Cycle Accurate Simulator。輸入語音信號,經(jīng)編解碼,將解碼得到的信號通過集成開發(fā)環(huán)境CCS3.3中Tools菜單條中的Memory Save/Load Utility來保存。其中,輸入的語音信號為ITU-T提供的測試語音test1_16k.in,將移植后的G.729.1編解碼輸出的.bit文件和.out 文件與之提供的測試文件逐比特進(jìn)行對比,完全一致,并通過Cool Edit Pro v2.0 進(jìn)行試聽,直到和原始測試文件聽不出任何不同,說明移植成功。

    2.2 全匯編的編寫設(shè)計與調(diào)試

    由于G.729.1程序規(guī)模較大,為了實現(xiàn)其全匯編編寫,需要制定一個合理的全匯編實現(xiàn)方案。本文結(jié)合C55x匯編語言和算法代碼的特點,在保證標(biāo)準(zhǔn)C代碼的結(jié)構(gòu)架構(gòu)不變的情況下,對C代碼結(jié)構(gòu)框架下的各個模塊逐個進(jìn)行匯編語言編寫,保證每個階段匯編替代的正確性,完成整個算法的全匯編實現(xiàn)。為了使程序結(jié)構(gòu)清晰,利于修改和調(diào)試,這種將復(fù)雜的算法分解為各個單獨的程序模塊分別實現(xiàn),可使編程變得相對容易,但也要求對C程序代碼非常熟悉,并對匯編指令了解透徹。這種思路雖然花費的時間較長,但易于在調(diào)試中發(fā)現(xiàn)和改正錯誤。

    由于G.729.1包含的模塊眾多,而各個模塊匯編代碼編寫的順序并不是隨意的,而是根據(jù)函數(shù)之間的關(guān)系以及它們的復(fù)雜度大小制定的,編寫順序如下。

    1)對于同一分支的函數(shù),因為子函數(shù)的編寫和調(diào)試比較容易,所以,先替換子函數(shù),即內(nèi)層函數(shù),在保證子函數(shù)的正確性后,再替換父函數(shù),即為外層函數(shù),采用由內(nèi)而外的替換順序,從而降低代碼開發(fā)和調(diào)試難度。

    2)由于執(zhí)行一次G.729.1源代碼編的時間較長,對于同一層次的函數(shù),由它們的復(fù)雜度決定替換順序,采用優(yōu)先替代復(fù)雜函數(shù),這樣可以縮短編譯和連接的時間,從而確定復(fù)雜的函數(shù)先替換,簡單的函數(shù)后替換,從時間上縮短后面函數(shù)調(diào)試時間。

    按照這2個原則逐一替換各個子函數(shù),從而完成父函數(shù)的全匯編編寫。

    為了驗證各個模塊匯編代碼的正確性,本文使用ITU-T 提供的G.729.1相應(yīng)測試矢量test1_16k.in作為輸入信號,由于G.729.1包括12種編碼速率,即8~32 kbit/s,為了加快調(diào)試的速度,在程序中不能直接設(shè)置編碼速率為最高速率(32 kbit/s)。如果先編寫8 kbit/s所對應(yīng)的程序模塊,可設(shè)置編碼速率為8 kbit/s,這樣12~32 kbit/s所對應(yīng)的程序?qū)⒉粫?zhí)行,增加了編譯的速度,且便于調(diào)試。當(dāng)調(diào)試某一模塊,可在該模塊的結(jié)尾處設(shè)置斷點,一幀一幀調(diào)試,大概執(zhí)行10幀,如果該模塊的匯編結(jié)果與C語言結(jié)果相同 ,可認(rèn)為該模塊的匯編程序正確。

    2.3 匯編優(yōu)化

    匯編代碼執(zhí)行效率雖然很高,為了進(jìn)一步提高編寫效率,充分利用各種DSP的硬件資源,本文在匯編代碼的基礎(chǔ)上進(jìn)一步優(yōu)化以提高編碼效率。

    2.3.1 實現(xiàn)高效循環(huán)

    1)單循環(huán)指令RPT(CSR/k8/k16)。如果循環(huán)體中只有一條指令或一個并行指令對,則可以使用RPT指令實現(xiàn)。當(dāng)RPT CSR嵌套循環(huán)中使用時,CSR只需要在循環(huán)體之外初始化一次,單循環(huán)指令的效率很高,是實現(xiàn)循環(huán)的首選方式。

    2)局部塊循環(huán)指令RPTBLOCAL{}。當(dāng)循環(huán)體的代碼長度不大于56 Byte的時候,可以使用RPTBLOCAL指令對指令緩存隊列中的循環(huán)體代碼塊執(zhí)行循環(huán)。局部塊循環(huán)避免了從內(nèi)存中重復(fù)讀取循環(huán)體代碼,從而減少了程序空間訪問的流水線沖突,如果循環(huán)代碼在外部RAM中,局部塊循環(huán)不會重復(fù)產(chǎn)生額外的等待,從整體上降低了功耗。在實現(xiàn)塊循環(huán)時,RPTBLOCAL指令是第1選擇。

    3)塊循環(huán)指令RPTB{}。由于塊循環(huán)指令要重復(fù)地訪問內(nèi)存代碼,執(zhí)行效率不高,因此,在局部塊循環(huán)指令不能使用的情況下才會用塊循環(huán)指令實現(xiàn)循環(huán)。

    4)跳轉(zhuǎn)指令。以上3種方法在實現(xiàn)循環(huán)時無需額外開銷,跳轉(zhuǎn)指令則至少需要5個指令的循環(huán)開銷。這種方法一般在多級(>2)嵌套循環(huán)里面使用。

    為實現(xiàn)高效的循環(huán),應(yīng)盡量使用單循環(huán)指令和局部塊循環(huán)指令,避免使用跳轉(zhuǎn)指令來實現(xiàn)循環(huán)。如果塊循環(huán)的代碼長度大于56 Byte,可以采用下面2種措施來實現(xiàn)局部塊循環(huán):①將循環(huán)體拆分為2個長度較小的代碼塊;②將原循環(huán)中長度較大的指令用其他長度較小指令替代,最常見的就是去除立即數(shù)指令。碰到2級嵌套循環(huán),應(yīng)將內(nèi)層循環(huán)的塊循環(huán)計數(shù)器BRC1在外層循環(huán)體之前進(jìn)行初始化,這樣可以避免重復(fù)初始化帶來的額外指令。

    2.3.2 宏優(yōu)化

    對于長的或復(fù)雜的代碼,將重復(fù)調(diào)用的程序塊定義為宏,此外,函數(shù)調(diào)用會有額外開銷,特別是多次調(diào)用的函數(shù),將其定義為宏后可以節(jié)省調(diào)用花費的開銷。全匯編代碼中定義為宏的函數(shù)有G729EV_G729_Copy,Inv_sqrt和Lag_max。下面給出宏Lag_max的部分定義程序,其他函數(shù)的宏可以用類似方法定義。

    Lag_max .macro scal_sig,L_FRAME,PIT_MAX,

    PIT_MIN,max,p_max

    .global _tabsqr

    ……

    .endm

    2.3.3 DSP匯編指令的巧用

    C55x匯編指令有150多種,編寫的匯編代碼中使用的某些指令并不一定最合適,比如條件跳轉(zhuǎn)指令BCC和指令XCC都可以控制是否執(zhí)行下條語句,但是BCC需要5到6個執(zhí)行周期,XCC只需要1個執(zhí)行周期,因此,在選擇指令的時候應(yīng)盡量選用執(zhí)行周期較少的。如對某一個數(shù)據(jù)進(jìn)行歸一化時,并求出歸一化的指數(shù),可用并行指令MANT::NEXP,一個執(zhí)行周期就可完成。如除法運算中的SUBC指令,因為除法運算沒有相應(yīng)的指令,所以可以轉(zhuǎn)換為減法運算,該指令可以求商和余數(shù)。

    2.3.4 并行指令優(yōu)化

    DSP芯片可以在1個時鐘周期下完成多個操作,也就是說可以將多條指令合并為1條,提高程序的運行效率。C55x中的并行分為單指令內(nèi)建并行和用戶自定義并行兩類。內(nèi)建并行就是一些特殊指令,用得最多的就是并行乘累加指令MAC::MAC,它是基于C55x的雙乘加(multiply and accumulate,MAC)硬件結(jié)構(gòu)。雙MAC并行指令為處理包含大量乘累加操作的G.729.1算法提供了便利。用戶自定義并行是指用戶通過對指令進(jìn)行分析,調(diào)整編碼的順序,將符合條件的2條相鄰指令并行操作[11]。TMS320C5505包含多組總線和功能單元,豐富的硬件資源使其支持高度的并行性,因而并行指令優(yōu)化是全匯編代碼的主要指令優(yōu)化方法之一。

    下面是一些可以采用用戶自定義并行指令來優(yōu)化匯編代碼的情況。

    1)將所有裝載和存儲指令并行放置。例如

    MOV *AR2,AC1 /*裝載AC1*/

    ‖MOV BRC0,*AR3 /*存儲BRC0*/

    2)條件執(zhí)行指令與加載指令并行放置。例如

    XCC first,T0==#0

    ‖MOV #0,AR0

    3)可將A單元的ALU與D單元的ALU,MAC和移位操作并行處理。例如

    ADD T0,AR1 /*在A單元修改AR1*/

    ‖MOV uns(rnd(HI(saturate(AC1<<#1)))),*AR2 /*在D單元執(zhí)行累加器移位飽和和存儲操作*/

    不同的匯編程序并行優(yōu)化的效果不同,從全匯編代碼的優(yōu)化結(jié)果來看,通常經(jīng)過自定義并行優(yōu)化,代碼執(zhí)行時間可以減少20%左右。

    2.3.5 流水線延遲的優(yōu)化

    C55x有2條受保護(hù)的指令流水線:①取指流水線,用于將指令包放入指令緩存隊;②執(zhí)行流水線,用于完成指令譯碼、數(shù)據(jù)訪問和運算,共有7個階段。在流水線中是多條指令同時執(zhí)行,不同的指令會在流水線的不同階段修改內(nèi)存、I/O空間和寄存器的值,為了防止數(shù)據(jù)訪問時會對同一空間進(jìn)行讀/寫,C55x的流水線保護(hù)單元會插入額外的周期來預(yù)防這種錯誤。如果一條指令要訪問前面未執(zhí)行完的指令所訪問的空間,這條指令就會在流水線中中斷,直至前面的指令執(zhí)行完,這條指令再執(zhí)行。為了使延遲最小,利用分析工具Pipeline Stall Analyzer,通過單步執(zhí)行程序找出產(chǎn)生流水線延遲的指令并分析在哪個階段產(chǎn)生流水線延遲并通過調(diào)整順序來解決。例如匯編程序中

    MOV #5,AR1

    MOV *AR1+,AC0

    由于這2條語句有4個周期的延遲,可以把第1條匯編語句改為AMOV #5,AR1,還可以與其他語句進(jìn)行調(diào)整來減小延遲。

    2.3.6 多使用雙字訪問指令

    在很多信號處理中,待處理的數(shù)據(jù)都是連續(xù)存放在內(nèi)存中的,使用雙字訪問可以一次讀取多個數(shù)據(jù),減少內(nèi)存訪問指令數(shù)。

    2.3.7 盡量減少進(jìn)行函數(shù)調(diào)用

    因為進(jìn)行函數(shù)調(diào)用的時候,要將程序計數(shù)器(programe counter,PC)指針和一些寄存器壓棧,函數(shù)調(diào)用完后,程序結(jié)束還要出棧,這都是一些不必要的操作。所以對于一些小的函數(shù), 就不調(diào)用而是直接寫入主函數(shù)里, 這樣就可以減少那些壓棧出棧的操作,提高速度。

    2.3.8 去除一些冗余的賦值

    編譯器產(chǎn)生的代碼有很多賦值,經(jīng)常將一個值賦給寄存器,再賦給變量,這樣就產(chǎn)生了冗余。

    3 結(jié)果分析

    通過對G.729.1進(jìn)行匯編編寫及優(yōu)化,并利用CCS3.3提供的性能分析工具(profiler)對優(yōu)化前后的代碼進(jìn)行分析, 表1是G.729.1編碼器源C代碼與匯編優(yōu)化后的指標(biāo)對比,其中,表1中運算量的單位為CPU的時鐘周期,而優(yōu)化效率則是源C代碼的運算量減去匯編優(yōu)化后的運算量與源C代碼的運算量的比值。

    表1 G.729.1編碼器匯編優(yōu)化前后的指標(biāo)對比

    由表1可以看出,函數(shù)的優(yōu)化效率至少為90%以上,匯編優(yōu)化后的函數(shù)執(zhí)行效率得到大大提高。通過測試可知,G.729.1全匯編代碼的運算量只有1 683 881 clock,而主頻為100 MHz的TMS320VC5505芯片在20 ms內(nèi)允許執(zhí)行的代碼量為2 000 000 clock,小于G.729.1編解碼的代碼量,保證了系統(tǒng)的實時性。

    為了進(jìn)一步評價語音編解碼系統(tǒng)還原出的語音質(zhì)量,本文采用ITU-T推出的WB_PESQ軟件對系統(tǒng)合成語音的質(zhì)量進(jìn)行評估[9]。實驗所用語音選自ITU-T提供的4組測試語音矢量,由于測試語音的語種、時長、是否帶噪等因素會影響語音質(zhì)量的測試結(jié)果,因此,測試語音應(yīng)該足夠豐富,如表2所示。這些語音的采樣頻率都為16 kHz,分別對C語言中的32 kbit/s的合成語音和匯編語言中的32 kbit/s的合成語音做對比,如表3所示。

    從表3的評測結(jié)果可以看出,匯編語音中的合成語音的質(zhì)量和C語言中的合成語音質(zhì)量基本相同,且當(dāng)速率為32 kbit/s時,合成的語音質(zhì)量較高,因此,全匯編優(yōu)化后的G.729.1編解碼器完全可以滿足實際話音通信系統(tǒng)的要求。

    表2 測試語音矢量

    表3 測試語音WB_PESQ得分

    為了進(jìn)一步驗證G.729.1編解碼的正確性,本文以測試矢量tst_16k.in作為輸入語音,經(jīng)G.729.1全匯編編碼和解碼后分別得到8,12和32 kbit/s的合成語音tst_16k_asm.o8,tst_16k_asm.o14和tst_16k_asm.o32。以32 kbit/s的合成語音為例,將原始語音文件與合成語音文件分別導(dǎo)入音頻制作軟件Cool Edit Pro,并對比它們的波形圖,如圖4所示。

    圖4 原始語音和32 kbit/s合成語音的波形圖Fig.4 Original speech waveform and synthetic speech waveform of 32 kbit/s

    將原始語音和32 kbit/s的合成語音的波形進(jìn)行對比,由圖4可見,32 kbit/s的合成語音波形圖與原始輸入語音的基本一致,進(jìn)一步驗證了全匯編結(jié)果的正確性。

    4 結(jié)束語

    針對G.729.1中的TDAC編碼器的譜包絡(luò)編碼方法,本文在原有方法的基礎(chǔ)上增加一種對相鄰幀對應(yīng)子帶采用差分霍夫曼的編碼方法,提高了語音的質(zhì)量。同時,針對G.729.1編解碼算法的高復(fù)雜度,通過充分利用C55x DSP結(jié)構(gòu)特點和匯編語言的特點,對其進(jìn)行全匯編設(shè)計及優(yōu)化,使得G.729.1編解碼器在TMS320VC5505得到實時實現(xiàn),提高系統(tǒng)運行的效率。并且該方法在工程應(yīng)用中可直接封裝使用,為后續(xù)G.729.1算法的優(yōu)化研究奠定了基礎(chǔ)。

    [1] ITU-T Recommendation. G.729-based Embedded Variable bit-rate coder,An 8-32kbit/s scalable wideband coder bitstream interoperable with G.729 (Amendment 7: New Anne F with voice activity detector using ITU-T G.720.1 Annex A)[S].Geneva,Switzerland:Telecommunication Standardization Sector of ITU, 2012.

    [2] RABOT S, KOVESI B, TRILLING R, et al. ITU-T G.729.1: An8-32kbit/s scalable coder interoperable with G.729 for wideband telephony and voice over IP[C]//IEEE International Conference on Acoustics, Speech and Signal Processing. Honolulu, Hawaii, USA: IEEE,2007:529-532.

    [3] GEISER B,JAX P, VARY P, et al. Bandwidth Extension for Hierarchical Speech and Audio Coding in ITU-T Rec. G.729.1[J]. IEEE International Conference on Audio, Speech and Signal Processing, 2007,15(8):2496-2509.

    [4] 李海婷,范睿,朱恒,等.最新的ITU-T嵌入式變速率語音編碼關(guān)鍵技術(shù)[J].電聲技術(shù),2006, 30(11):50-55. LI Haiting, FAN Rui, ZHU Heng,et al. Key techniques of the latest ITU-T embedded variable bit-rate speech coding[J]. Audio Engineering, 2006,30(11):50-55.

    [5] SETO Koji, OGUNFUNMI Tokunbo. Scabable Wideband Speech coding for IP Networks[C]//IEEE Conference on Circuits, Systems & Computers.Penang,Malaysia: IEEE, 2012:77-81.

    [6] 劉麗群, 黃冰. 基于DM642的G.729.1的DSP實現(xiàn)[J].桂林電子科技大學(xué)學(xué)報,2011,31(2):103-105. LIU Liqun , HUANG Bing. Implementation of the G.729.1 based on DM642[J].Journal of Guilin University of Electronic Technology,2011,31(2):103-105.

    [7] 董傳霄.基于ARM體系結(jié)構(gòu)的上層應(yīng)用—音頻編解碼協(xié)議G.729.1的優(yōu)化及應(yīng)用[D].北京:北京郵電大學(xué),2009. DONG Chuanxiao. An application based on ARM—The optimization and Application of G.729.1 speech coding codec[D].Beijing:Beijing University of Posts and Telecommunications, 2009.

    [8] CHO Keunseok,JEONG Sangbae,HAHN Minsoo.Frame Error-Robust MDCT bit Reduce for G.729.1 by Inter-Fame Correlation[C]//IEEE International Conference on Consumer Electronics. Xianning,China:IEEE,2011,819-820.

    [9] ITU-T Recommendation. Wideband extension to Recommendation P.862 for the assessment of wideband telephone networks and speech codecs [R].Geneva,Switzerland:Telecommunication Standardization Sector, 2007.

    [10] Texas Instruments Inc.TMS320VC5505 DSP System User’s Guide,SPRUFP0C[R].Texas: Texas Instruments Incorporated, 2012.

    [11] Texas Instruments Incorporated.TMS320C55X系列DSP指令系統(tǒng)開發(fā)工具與編程指南[M].李海森,周天,黎子盛,譯. 北京:清華大學(xué)出版社,2007. Texas Instruments Incorporated.DSP instructions system development tools and programming guide of TMS320VC55x [M].LI Haisen,ZHOU Tian,LI Zisheng,translation.Beijing: Tsinghua University Press,2007.

    王春柳(1989-),女,安徽馬鞍山人,碩士研究生,研究方向為數(shù)字語音編碼、DSP。E-mail:chunliuwang@yeah.net。

    陳德宏(1965-),男,安徽馬鞍山人,副教授,碩士生導(dǎo)師,研究方向為通信系統(tǒng)總體設(shè)計、數(shù)字語音編碼、DSP、密碼分析。E-mail:cdh@ahut.edu.cn。

    申星海(1990-),男,山西運城人,碩士研究生,研究方向為數(shù)字語音編碼、DSP。

    (編輯:王敏琦)

    G.729.1 algorithm improvement and DSP all assembly optimization design

    WANG Chunliu1, CHEN Dehong2, SHEN Xinghai2

    (1.Department of Electrical Information Engineering, Wentian College, Hohai University, Ma’anshan 243031, P.R.China;2. Institute of Electrical and Information Engineering, Anhui University of Technology, Ma’anshan 243002, P.R.China)

    In the wideband speech coding algorithm of G.729.1 standard, based on sub-band correlation of inter-frames, spectral envelope coding of time-domain aliasing cancellation encoder reduces allocation bits with the difference Huffman coding. Considering the sub-band correlation between adjacent frames, a difference Huffman coding mode in sub-band of adjacent frames is added on the foundation of the original spectral envelope coding mode, which further reduces spectral envelope of coded bits and improves the quality of synthesized speech. G.729.1 can adjust the coding rate according to the characteristics of channel at any time and can get a better wideband speech quality,which makes the encoding algorithm have a high complexity. Therefore, all assemble language based on TMS320VC5505 digital signal processor is adopted to the real-time implement of G.729.1 algorithm. And the further optimization is made for the assembly code of G.729.1. The optimized G.729.1 algorithm can ensure the high-quality synthesis speech, improve the coding efficiency and achieve the real-time processing of the speech signal.

    wideband speech coding; G.729.1; spectral envelope coding; difference Huffman coding; assembly optimization

    10.3979/j.issn.1673-825X.2016.06.007

    2015-05-19

    2015-12-21

    王春柳 chunliuwang@yeah.net

    國家自然科學(xué)基金(61304066)

    Foundation Item:The National Natural Science Foundation of China (61304066)

    TN912.3

    A

    1673-825X(2016)06-0789-08

    猜你喜歡
    霍夫曼子帶比特
    一種基于奇偶判斷WPT的多音干擾抑制方法*
    子帶編碼在圖像壓縮編碼中的應(yīng)用
    電子制作(2019年22期)2020-01-14 03:16:24
    抽象表現(xiàn)主義藝術(shù)先驅(qū)——漢斯·霍夫曼
    諾獎得主霍夫曼團(tuán)隊落戶深職院
    比特幣還能投資嗎
    海峽姐妹(2017年10期)2017-12-19 12:26:20
    比特幣分裂
    比特幣一年漲135%重回5530元
    銀行家(2017年1期)2017-02-15 20:27:20
    基于虛擬孔徑擴(kuò)展的子帶信息融合寬帶DOA估計
    槍口下的人格
    蘋果封殺比特幣應(yīng)用另有隱情?
    久久久色成人| 亚洲国产日韩欧美精品在线观看| 特大巨黑吊av在线直播| 男女下面进入的视频免费午夜| 国产毛片a区久久久久| 亚洲色图av天堂| 免费观看在线日韩| 国产爱豆传媒在线观看| 大话2 男鬼变身卡| 精品熟女少妇av免费看| 午夜福利高清视频| av播播在线观看一区| 免费播放大片免费观看视频在线观看| 肉色欧美久久久久久久蜜桃 | 日韩一区二区三区影片| 亚洲精品乱码久久久v下载方式| 色尼玛亚洲综合影院| 午夜免费观看性视频| 少妇的逼水好多| 久久精品熟女亚洲av麻豆精品 | 一个人看的www免费观看视频| 麻豆成人av视频| 亚洲精品一二三| 人妻制服诱惑在线中文字幕| 国产成人一区二区在线| 久久鲁丝午夜福利片| 熟妇人妻久久中文字幕3abv| h日本视频在线播放| av.在线天堂| 2022亚洲国产成人精品| 91aial.com中文字幕在线观看| 久久精品国产自在天天线| 精品午夜福利在线看| 国产一区二区亚洲精品在线观看| 免费不卡的大黄色大毛片视频在线观看 | 亚洲激情五月婷婷啪啪| 99九九线精品视频在线观看视频| 国产精品一二三区在线看| 人人妻人人看人人澡| 久久久久久九九精品二区国产| 久久久久久伊人网av| 亚洲高清免费不卡视频| 国产色爽女视频免费观看| 在线天堂最新版资源| 我的女老师完整版在线观看| 好男人在线观看高清免费视频| 久久久久久久久久久丰满| 女人久久www免费人成看片| 少妇丰满av| 欧美激情在线99| 一本一本综合久久| 国语对白做爰xxxⅹ性视频网站| 毛片一级片免费看久久久久| 亚洲精品影视一区二区三区av| 久久精品久久精品一区二区三区| 美女内射精品一级片tv| 狂野欧美白嫩少妇大欣赏| 亚洲精品中文字幕在线视频 | 国产成人精品一,二区| 国产成人精品一,二区| 久久久久免费精品人妻一区二区| 熟女电影av网| 亚洲成人精品中文字幕电影| 七月丁香在线播放| 国产高清国产精品国产三级 | 亚洲精品色激情综合| 国产精品无大码| 久久久精品94久久精品| 久久久久九九精品影院| 女人被狂操c到高潮| 久久精品国产亚洲av天美| 国产精品不卡视频一区二区| 亚洲精品aⅴ在线观看| 亚洲一级一片aⅴ在线观看| 深爱激情五月婷婷| 亚洲精品日本国产第一区| 女的被弄到高潮叫床怎么办| 联通29元200g的流量卡| 午夜福利在线观看免费完整高清在| 日韩欧美精品v在线| 国产视频首页在线观看| 一本一本综合久久| 日日啪夜夜爽| 在线播放无遮挡| 一个人看的www免费观看视频| 亚洲精品中文字幕在线视频 | av国产免费在线观看| 免费播放大片免费观看视频在线观看| 亚洲美女视频黄频| 天堂√8在线中文| 亚洲av电影在线观看一区二区三区 | 肉色欧美久久久久久久蜜桃 | 精品久久久久久久久亚洲| 有码 亚洲区| 午夜激情福利司机影院| 伊人久久精品亚洲午夜| 精品午夜福利在线看| 久久久久精品性色| 日本熟妇午夜| 国产一区亚洲一区在线观看| 国产亚洲av嫩草精品影院| 亚洲av不卡在线观看| av在线老鸭窝| 国产精品人妻久久久久久| 熟妇人妻久久中文字幕3abv| 插逼视频在线观看| 2021天堂中文幕一二区在线观| 亚洲精品,欧美精品| 最近最新中文字幕免费大全7| 国产男人的电影天堂91| 一二三四中文在线观看免费高清| or卡值多少钱| 一区二区三区四区激情视频| 成人性生交大片免费视频hd| 狠狠精品人妻久久久久久综合| 一级爰片在线观看| 天天一区二区日本电影三级| 爱豆传媒免费全集在线观看| 美女高潮的动态| 岛国毛片在线播放| 少妇的逼好多水| 国产乱来视频区| 国产一区二区三区综合在线观看 | 人人妻人人澡欧美一区二区| 精品久久久久久久末码| 少妇的逼水好多| 精品人妻视频免费看| 91精品伊人久久大香线蕉| 久久精品国产鲁丝片午夜精品| 在线a可以看的网站| 国产成年人精品一区二区| 久99久视频精品免费| 人妻一区二区av| 少妇被粗大猛烈的视频| 午夜福利视频1000在线观看| 亚洲精品一二三| eeuss影院久久| av国产久精品久网站免费入址| 精品久久久久久成人av| 国产伦精品一区二区三区四那| 亚洲三级黄色毛片| 看十八女毛片水多多多| 精品国产露脸久久av麻豆 | 最近视频中文字幕2019在线8| 欧美成人a在线观看| 国产精品美女特级片免费视频播放器| 丝瓜视频免费看黄片| 国产午夜精品论理片| 你懂的网址亚洲精品在线观看| 哪个播放器可以免费观看大片| 免费电影在线观看免费观看| 青青草视频在线视频观看| 能在线免费看毛片的网站| 亚洲欧美一区二区三区国产| 久久精品久久久久久久性| 免费观看精品视频网站| 99视频精品全部免费 在线| 人人妻人人澡欧美一区二区| 搡女人真爽免费视频火全软件| 免费不卡的大黄色大毛片视频在线观看 | 国产精品久久视频播放| 成人二区视频| 神马国产精品三级电影在线观看| 国产精品1区2区在线观看.| 亚洲精品亚洲一区二区| 亚洲国产av新网站| 久久综合国产亚洲精品| 简卡轻食公司| 国产高清不卡午夜福利| 亚洲18禁久久av| 97热精品久久久久久| 性色avwww在线观看| 成人二区视频| 亚洲性久久影院| 国产黄色免费在线视频| 欧美日韩精品成人综合77777| 国产av不卡久久| 秋霞在线观看毛片| 成人综合一区亚洲| 日本黄大片高清| 亚洲av成人av| 亚洲四区av| 成人美女网站在线观看视频| 国产熟女欧美一区二区| 亚洲欧洲日产国产| 久久99热6这里只有精品| 国产亚洲精品av在线| 亚洲精品成人久久久久久| 视频中文字幕在线观看| 韩国av在线不卡| 欧美激情国产日韩精品一区| 男女啪啪激烈高潮av片| 精品久久久久久久久av| 亚洲四区av| 丝瓜视频免费看黄片| 肉色欧美久久久久久久蜜桃 | www.色视频.com| 午夜老司机福利剧场| 久久久久性生活片| 久久这里有精品视频免费| 国产爱豆传媒在线观看| 久久99热这里只有精品18| av在线播放精品| 欧美成人精品欧美一级黄| 国内精品一区二区在线观看| 中文欧美无线码| 少妇裸体淫交视频免费看高清| 亚洲精品国产av成人精品| 久久久久久久久久久丰满| 国产熟女欧美一区二区| 国产成年人精品一区二区| 亚洲最大成人手机在线| 一级毛片aaaaaa免费看小| 纵有疾风起免费观看全集完整版 | 亚洲最大成人手机在线| videos熟女内射| 身体一侧抽搐| 一边亲一边摸免费视频| 国产在视频线精品| 尤物成人国产欧美一区二区三区| 免费观看精品视频网站| 国产成人精品久久久久久| 99久久中文字幕三级久久日本| 国产黄色小视频在线观看| 最近的中文字幕免费完整| 成人综合一区亚洲| 全区人妻精品视频| 亚洲熟妇中文字幕五十中出| 别揉我奶头 嗯啊视频| 日韩精品青青久久久久久| 国产精品久久视频播放| 日韩,欧美,国产一区二区三区| 精品一区二区免费观看| 三级国产精品片| av.在线天堂| 嫩草影院新地址| 大又大粗又爽又黄少妇毛片口| 国产午夜精品久久久久久一区二区三区| 亚洲婷婷狠狠爱综合网| 99re6热这里在线精品视频| 哪个播放器可以免费观看大片| 国产高清国产精品国产三级 | 亚洲国产精品sss在线观看| 偷拍熟女少妇极品色| 麻豆精品久久久久久蜜桃| 亚洲人成网站在线观看播放| 国产精品国产三级专区第一集| 国产成年人精品一区二区| 精品欧美国产一区二区三| 国产色婷婷99| 两个人的视频大全免费| 国产精品一及| 亚洲熟妇中文字幕五十中出| 两个人视频免费观看高清| 免费看日本二区| 免费av观看视频| 国产精品国产三级专区第一集| 国产亚洲午夜精品一区二区久久 | 干丝袜人妻中文字幕| 十八禁网站网址无遮挡 | 观看美女的网站| 亚洲三级黄色毛片| 99久久精品热视频| 欧美 日韩 精品 国产| 肉色欧美久久久久久久蜜桃 | 在线天堂最新版资源| 国产精品99久久久久久久久| 亚洲自拍偷在线| 两个人视频免费观看高清| 亚洲美女搞黄在线观看| 国产精品综合久久久久久久免费| 天堂√8在线中文| 亚洲精品第二区| 日日摸夜夜添夜夜添av毛片| 男女啪啪激烈高潮av片| 日韩强制内射视频| 国产美女午夜福利| 午夜免费观看性视频| 中文欧美无线码| 国模一区二区三区四区视频| 欧美激情久久久久久爽电影| 超碰av人人做人人爽久久| 秋霞伦理黄片| 国产一区亚洲一区在线观看| 在线观看人妻少妇| 亚洲美女视频黄频| 亚洲美女搞黄在线观看| 精品国产三级普通话版| 亚洲精品国产av蜜桃| 国产精品蜜桃在线观看| 日韩av不卡免费在线播放| 大香蕉97超碰在线| 99视频精品全部免费 在线| 一级毛片久久久久久久久女| 在线播放无遮挡| 九色成人免费人妻av| 国产在视频线在精品| 国产黄色免费在线视频| 一级黄片播放器| 永久免费av网站大全| 久久久久九九精品影院| 国产熟女欧美一区二区| 一夜夜www| 国产又色又爽无遮挡免| 国产精品爽爽va在线观看网站| 久久久久久久久久久丰满| 亚洲精品成人久久久久久| 韩国高清视频一区二区三区| 汤姆久久久久久久影院中文字幕 | 国产 一区 欧美 日韩| 日韩伦理黄色片| 国产单亲对白刺激| 边亲边吃奶的免费视频| 高清欧美精品videossex| 波野结衣二区三区在线| 午夜福利视频精品| 久久久久久久久久久免费av| 久久韩国三级中文字幕| 黄色配什么色好看| 一二三四中文在线观看免费高清| 一个人看视频在线观看www免费| 床上黄色一级片| 丝袜喷水一区| 爱豆传媒免费全集在线观看| 亚洲在线观看片| 最近最新中文字幕免费大全7| 亚洲国产成人一精品久久久| 久久精品久久久久久噜噜老黄| 免费在线观看成人毛片| 午夜福利在线在线| 色视频www国产| 亚洲精品亚洲一区二区| 韩国av在线不卡| 男女啪啪激烈高潮av片| 非洲黑人性xxxx精品又粗又长| 成年女人看的毛片在线观看| 99久国产av精品国产电影| 欧美区成人在线视频| 一个人观看的视频www高清免费观看| 日韩成人伦理影院| 欧美一区二区亚洲| 国产探花极品一区二区| av在线播放精品| 十八禁网站网址无遮挡 | 久久久久久久久久久免费av| 嫩草影院入口| 成人亚洲欧美一区二区av| 欧美成人a在线观看| 国产成人精品福利久久| 六月丁香七月| 波野结衣二区三区在线| 午夜免费激情av| 最近中文字幕2019免费版| 亚洲高清免费不卡视频| 国产熟女欧美一区二区| 男人和女人高潮做爰伦理| 国产精品久久久久久久电影| 亚洲四区av| 国产成人精品久久久久久| 大香蕉97超碰在线| 一区二区三区高清视频在线| 国产黄色视频一区二区在线观看| 两个人的视频大全免费| 亚洲成人久久爱视频| 高清午夜精品一区二区三区| 大香蕉97超碰在线| 中文天堂在线官网| 午夜激情福利司机影院| 亚洲成人精品中文字幕电影| 亚洲av不卡在线观看| 少妇被粗大猛烈的视频| 精品亚洲乱码少妇综合久久| www.色视频.com| 日日啪夜夜爽| 国产欧美另类精品又又久久亚洲欧美| 亚洲人成网站高清观看| 久久人人爽人人爽人人片va| 国产激情偷乱视频一区二区| 搡老乐熟女国产| 赤兔流量卡办理| 亚洲最大成人av| 尾随美女入室| 久久97久久精品| av在线亚洲专区| 欧美日韩视频高清一区二区三区二| 久久久久久久久中文| 久久久久久久午夜电影| 国产伦理片在线播放av一区| 日本爱情动作片www.在线观看| 麻豆成人av视频| 天美传媒精品一区二区| 成人亚洲精品一区在线观看 | 亚洲伊人久久精品综合| 国产一区有黄有色的免费视频 | 欧美日韩亚洲高清精品| 搡女人真爽免费视频火全软件| 成人亚洲精品av一区二区| 少妇丰满av| av线在线观看网站| 免费不卡的大黄色大毛片视频在线观看 | 国产女主播在线喷水免费视频网站 | 搞女人的毛片| 久久韩国三级中文字幕| 免费观看在线日韩| 国产美女午夜福利| 亚洲成人精品中文字幕电影| 99热这里只有精品一区| 在线免费观看的www视频| 国产日韩欧美在线精品| 综合色av麻豆| 久久久久国产网址| 97热精品久久久久久| 天堂中文最新版在线下载 | 99热这里只有是精品在线观看| freevideosex欧美| 特大巨黑吊av在线直播| 免费av毛片视频| 日本一本二区三区精品| a级毛片免费高清观看在线播放| 成人午夜精彩视频在线观看| 日本免费a在线| 久久鲁丝午夜福利片| 亚洲精品影视一区二区三区av| 亚洲经典国产精华液单| 男人和女人高潮做爰伦理| 国产永久视频网站| eeuss影院久久| 亚洲一区高清亚洲精品| 欧美日韩精品成人综合77777| 特大巨黑吊av在线直播| 七月丁香在线播放| av专区在线播放| 99九九线精品视频在线观看视频| 不卡视频在线观看欧美| 久久午夜福利片| 国产成人精品久久久久久| 国产成人aa在线观看| 国产亚洲5aaaaa淫片| 青春草国产在线视频| 日韩中字成人| 免费黄频网站在线观看国产| 成人特级av手机在线观看| 麻豆成人av视频| 午夜福利视频精品| 国内精品美女久久久久久| 亚洲国产精品成人久久小说| 国产极品天堂在线| 免费黄网站久久成人精品| 国产精品国产三级国产av玫瑰| 国产一区有黄有色的免费视频 | 99久久人妻综合| 亚洲自偷自拍三级| 午夜免费男女啪啪视频观看| 一级片'在线观看视频| 国产大屁股一区二区在线视频| 亚洲精品成人久久久久久| 国产乱人偷精品视频| 精品一区二区免费观看| 秋霞伦理黄片| 啦啦啦中文免费视频观看日本| 伦理电影大哥的女人| 插阴视频在线观看视频| 亚洲激情五月婷婷啪啪| 欧美极品一区二区三区四区| 热99在线观看视频| 日韩电影二区| 天美传媒精品一区二区| 夜夜看夜夜爽夜夜摸| 亚洲人与动物交配视频| 欧美bdsm另类| 免费少妇av软件| 嫩草影院精品99| 国产一区二区三区综合在线观看 | 中国国产av一级| 色综合色国产| 老司机影院成人| 男人舔奶头视频| 极品教师在线视频| 日韩大片免费观看网站| 午夜免费男女啪啪视频观看| 男女视频在线观看网站免费| 中文天堂在线官网| 国产精品蜜桃在线观看| 五月玫瑰六月丁香| 尾随美女入室| 性色avwww在线观看| 日韩av不卡免费在线播放| 99久国产av精品| 99热网站在线观看| 国产又色又爽无遮挡免| 亚洲高清免费不卡视频| 国产高潮美女av| 国产一级毛片在线| 日韩欧美三级三区| 国产伦理片在线播放av一区| 能在线免费看毛片的网站| 国内少妇人妻偷人精品xxx网站| 青春草国产在线视频| 亚洲国产av新网站| 午夜视频国产福利| 国产精品久久久久久av不卡| 22中文网久久字幕| 成年av动漫网址| 亚洲av成人av| 亚洲最大成人中文| 精品欧美国产一区二区三| 黄片无遮挡物在线观看| av在线老鸭窝| 一级毛片久久久久久久久女| 你懂的网址亚洲精品在线观看| 国产成人aa在线观看| 美女主播在线视频| 尤物成人国产欧美一区二区三区| 国产爱豆传媒在线观看| 日本黄色片子视频| 色吧在线观看| av专区在线播放| 少妇裸体淫交视频免费看高清| 尾随美女入室| 婷婷色综合www| 天天躁夜夜躁狠狠久久av| 狠狠精品人妻久久久久久综合| 在线观看一区二区三区| 精品久久久噜噜| 天美传媒精品一区二区| 日本黄大片高清| 国产一级毛片在线| 五月玫瑰六月丁香| 91狼人影院| 国产在视频线精品| 精品一区二区三区人妻视频| 51国产日韩欧美| 婷婷色麻豆天堂久久| 日本黄色片子视频| 黄片wwwwww| 精品久久久久久久久久久久久| 久久国产乱子免费精品| 国产综合懂色| 少妇裸体淫交视频免费看高清| av福利片在线观看| 免费在线观看成人毛片| 免费电影在线观看免费观看| 亚洲,欧美,日韩| 日本一二三区视频观看| 男女边摸边吃奶| 久久精品国产亚洲av天美| 国产伦精品一区二区三区视频9| 久久久久久久久久久丰满| or卡值多少钱| 国产高清不卡午夜福利| 免费在线观看成人毛片| 在线免费观看的www视频| 熟妇人妻久久中文字幕3abv| 亚洲精品日本国产第一区| 少妇被粗大猛烈的视频| 成人午夜精彩视频在线观看| videossex国产| 亚洲精品亚洲一区二区| 中文在线观看免费www的网站| 国产一区二区亚洲精品在线观看| 久久久久国产网址| 最近2019中文字幕mv第一页| 亚洲精品成人久久久久久| 国产欧美日韩精品一区二区| 好男人视频免费观看在线| av在线观看视频网站免费| 男女那种视频在线观看| 一个人免费在线观看电影| 精品一区二区三区人妻视频| 中文字幕免费在线视频6| 久久久精品94久久精品| 国产av码专区亚洲av| 亚洲精品中文字幕在线视频 | 伊人久久国产一区二区| 偷拍熟女少妇极品色| 身体一侧抽搐| 免费黄网站久久成人精品| 国产高清国产精品国产三级 | 少妇熟女aⅴ在线视频| 久久久久精品性色| 久久久成人免费电影| 人妻一区二区av| 免费观看的影片在线观看| 3wmmmm亚洲av在线观看| 赤兔流量卡办理| 午夜免费激情av| 精品久久久久久久久亚洲| 欧美变态另类bdsm刘玥| 最近手机中文字幕大全| 亚洲国产精品sss在线观看| 国产欧美日韩精品一区二区| av国产久精品久网站免费入址| 欧美高清性xxxxhd video| 久久久精品欧美日韩精品| 亚洲第一区二区三区不卡| 亚洲人成网站在线播| 久久久精品欧美日韩精品| 日本黄大片高清| 亚洲图色成人| 午夜亚洲福利在线播放| 91久久精品电影网| 日日啪夜夜爽| 日日干狠狠操夜夜爽| 亚洲av国产av综合av卡| 又黄又爽又刺激的免费视频.| 午夜亚洲福利在线播放| 日韩人妻高清精品专区| 久久久a久久爽久久v久久| 69av精品久久久久久| 久久99精品国语久久久| 天堂网av新在线| 一个人观看的视频www高清免费观看| 男的添女的下面高潮视频| 国产大屁股一区二区在线视频| 青青草视频在线视频观看|