亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SIC8008的VoIP原型系統(tǒng)中iLBC的應(yīng)用研究

        2012-08-07 07:52:52許悅李強
        電子測試 2012年2期
        關(guān)鍵詞:機頂盒解碼原型

        許悅,李強

        (重慶郵電大學(xué) 重慶 400065)

        0 引言

        隨著工信部表示三網(wǎng)融合在“十二五”期間將有實質(zhì)性的進展,使用于廣電網(wǎng)絡(luò)的數(shù)字高清電視機頂盒所具有的功能也將越來越豐富。除了能支持接收電視節(jié)目外,還可以支持VoD、Web瀏覽器、DVD、可視電話、遠程教育、遠程醫(yī)療、會議電視等多媒體,其功能正在向高檔化多媒體終端發(fā)展。通過高清機頂盒的硬件擴展接口(USB接口或RCA接口),結(jié)合軟件項目的開發(fā),從而實現(xiàn)VoIP技術(shù)在機頂盒方面的應(yīng)用。

        1 數(shù)字高清電視機頂盒芯片SIC8008

        SIC8008是重慶四聯(lián)微電子有限公司設(shè)計的一款高性能MPEG2/AVS/H264高清解碼芯片。SIC8008結(jié)構(gòu)框圖如圖1所示。主CPU主要用于系統(tǒng)(Linux OS)應(yīng)用,輔CPU實現(xiàn)音頻實時解碼功能及其它計算功能。

        圖1 SIC8008結(jié)構(gòu)框圖

        2 基于SIC8008的VoIP原型系統(tǒng)整體設(shè)計

        2.1 VoIP原型系統(tǒng)實現(xiàn)方式

        文獻[2]中指出,關(guān)于機頂盒實現(xiàn)VoIP功能,業(yè)界一般有3種方式:

        STB通過USB接口外接USB話機,USB話機完成電話按鍵的輸入、聲音的采集和播放,機頂盒內(nèi)實現(xiàn)USB話機驅(qū)動和其它協(xié)議,控制軟件,從而實現(xiàn)機頂盒VoIP功能。

        VoIP的輸入輸出主要通過機頂盒的RJ11接口,機頂盒設(shè)計時已經(jīng)增加了RJ11電話機接口。電話機信號經(jīng)過語音接口單元,送入語音處理單元完成語音編碼壓縮與解壓縮,以及一些語音協(xié)議處理,如SIP、H.323等協(xié)議,再通過主控制器處理后傳送給輸入端。

        VoIP的輸入輸出接口通過機頂盒的音頻輸出和MIC輸入接口完成。

        SIC8008整機設(shè)計本身沒有實現(xiàn)RJ11和MIC輸入接口,因此,第一種方式可以直接應(yīng)用在VoIP原型系統(tǒng)。但是,由于市面上生產(chǎn)的USB話機不但價格很高,而且其驅(qū)動程序并不具有兼容性,同時如果自行開發(fā)SIC8008的USB話機驅(qū)動程序,即提高了開發(fā)成本,又延長了工作周期。為了節(jié)約研究成本并提高工作效率,最后采用在SIC8008整機外接USB聲卡并連接耳機與話筒的方式來實現(xiàn)此原型系統(tǒng)。其中,USB聲卡必須符合標(biāo)準(zhǔn)的USB audio協(xié)議。

        在軟件實現(xiàn)的方法上,將用于PC的語音實時流處理的開源代碼經(jīng)過修改后移植應(yīng)用在SIC8008中,實現(xiàn)語音會話。采用的信令協(xié)議為SIP。VoIP原型系統(tǒng)結(jié)構(gòu)如圖2所示。

        圖2 數(shù)字高清電視機頂盒芯片SIC8008 VoIP原型系統(tǒng)結(jié)構(gòu)

        2.2 Linux內(nèi)核的剪裁

        SIC8008所用的操作系統(tǒng)是經(jīng)過內(nèi)核剪裁的linux-2.6.30。主要做了以下修改:在arch目錄下只保留了arm子目錄,并根據(jù)SIC8008的各項參數(shù)對此子目錄下的各文件進行重新定義,在內(nèi)核中加入符合SIC8008高清數(shù)字電視機頂盒相關(guān)的時鐘、器件以及配置文件等。在fs路徑下,根據(jù)NAND FLASH模塊添加了ysffs2文件系統(tǒng)。Yaffs(Yet Another Flash File System)文件系統(tǒng)是專門針對NAND FLASH設(shè)計的嵌入式文件系統(tǒng),yaffs2是此文件系統(tǒng)的第二個版本,能夠更好的支持大容量的NAND FLASH芯片。

        經(jīng)過對Linux內(nèi)核的剪裁,主要增添了針對SIC8008數(shù)字高清電視機頂盒SoC的ARM系統(tǒng)類型SICMicro HDSoC。由于VoIP原型系統(tǒng)的需要,在對內(nèi)核進行配置時,設(shè)備驅(qū)動的聲卡支持選項中要勾選USB聲音器件選項。

        2.3 Mediastreamer2

        Mediastreamer2是由Simon Morlat開發(fā)的一個輕量級的流技術(shù)引擎,可以對音頻和視頻進行實時流的制作與處理。該引擎基于ortp庫,全部由C語言編寫,完全符合SIC8008上VoIP原型系統(tǒng)處理聲音的需求。

        正如在參考文獻[3]介紹,在基于Linux平臺的語音會話系統(tǒng)中,Mediastreamer2可以通過alsa或oss進行語音的讀寫,收發(fā)RTP包,完成語音編解碼,播放及錄制wav文件,利用FIR濾波器量化語音以及進行自動增益控制等[4]。其簡單的設(shè)計思想,給利用Mediastreamer2開發(fā)語音處理程序的工作提供了一個良好的平臺。

        2.4 語音編碼方案iLBC

        [3]中對主要的語音壓縮算法G.728、G.723.1、G.729.A和iLBC做了比較,最終選擇iLBC作為最終的語音編碼方案。在Mediastreamer2中,默認的語音編碼方案為speex。iLBC和speex都是對CELP的發(fā)展,并且在算法復(fù)雜度及聲音質(zhì)量上都不相上下。但是,由于speex需要ogg作為其容器格式,在將其移植在SIC8008的過程中,還需要首先移植libogg庫,這反而大大增加了整個系統(tǒng)開發(fā)的周期;而iLBC作為Mediastreamer2的默認語音編碼算法,則只需要修改較少部分的代碼并添加一個ilbc.c的文件即可。因此,iLBC最終作為此VoIP原型系統(tǒng)的語音壓縮算法。同樣,文獻[3]為使iLBC作為默認算法對Mediastreamer2的修改方法進行了詳細介紹。

        3 iLBC編解碼原理

        iLBC是一種基于獨立幀的利用線性預(yù)測方法對殘差信號進行編碼的算法,主要支持兩種幀長格式:20 ms和30 ms。對于20 ms幀,每幀的位數(shù)為304 bit,共有160個采樣點,分為4個子幀;對于30 ms,每幀的位數(shù)為400 bit,共有240個采樣點,分為6個子幀。通過使語音信號通過LPC濾波器后得到殘差信號,之后對幀中殘差信號能量最大的部分進行標(biāo)量量化,搜索到開始狀態(tài),建立動態(tài)碼書,用動態(tài)碼書對剩余的殘差信號進行編碼。這種編碼方法即為獨立幀編碼,這種方法增加了幀與幀之間的獨立性,從而消除了傳輸時由于丟包而引起的感知下降。

        iLBC編碼器的輸入必須是采樣率為8 000 Hz,16 bit的PCM信號。

        3.1 iLBC編碼原理

        iLBC的編碼過程如圖3所示。

        在文中的VoIP原型系統(tǒng)中,經(jīng)過USB聲卡采集后得到的PCM信號首先通過高通濾波器,濾除直流分量和低頻噪音。用Levinson-Durbin算法求解LPC系數(shù)得到LPC-10的系數(shù)。每一次LPC分析,得到線性預(yù)測濾波器的系數(shù)之后都需要將其轉(zhuǎn)換為一個線譜頻率(LSF)的集合,量化內(nèi)插后得到線譜對(LSP)集合。因為線譜對系數(shù)更利于量化、內(nèi)插,其對量化誤差不敏感,具有良好的強健性[5]。得到PLC分析器后,計算出信號的殘差,從殘差中找到兩個能量最大的連續(xù)子幀,然后把能量值較小的首23/22個樣點(30 ms/20 ms)或尾23/22樣點從連續(xù)子幀中去除,剩余的57/58個被選定為本次處理的開始狀態(tài)。之后對開始狀態(tài)以基于DPCM的標(biāo)量量化進行編碼[6]。已經(jīng)編碼的殘差信號再經(jīng)解碼得到的LPC激勵樣點集合作為自適應(yīng)碼書。對于剩余的殘差信號,矢量量化將按下面順序進行:包含有初始狀態(tài)的兩個連續(xù)子幀中剩余的23/22個樣點;時間軸上在開始狀態(tài)后的各子幀;時間軸上在初始狀態(tài)前的各子幀。對于此矢量量化,每次碼書搜索的范圍是動態(tài)的,隨著最新的解碼結(jié)果,該動態(tài)碼書被更新。最后將編碼的語音信號打包放入有效載荷中。

        3.2 iLBC解碼原理

        iLBC的解碼模塊的運算量相對與編碼模塊要小。根據(jù)文獻[7]的介紹,解碼的主要過程如下:解包后提取參數(shù)。從得到的LSF參數(shù)進行內(nèi)插,并轉(zhuǎn)化各子幀的LPC系數(shù),以便進行合成操作。對開始狀態(tài)進行解碼,解碼結(jié)果一方面作為激勵信號暫時儲存,另一方面存入碼本存儲區(qū),以構(gòu)成動態(tài)碼本的初始值。對剩余的子幀部分,按照與編碼相同的次序進行殘差解碼,并用解碼結(jié)果更新動態(tài)碼本,重復(fù)此步驟直到所有子幀完成解碼。對于解碼得到的殘差信號,進行語音增強的操作。之后進行語音合成,形成解碼后的語音。最后通過高通濾波器,消除合成后的低頻語音。解碼模塊的流圖如圖4所示。

        圖4 SIC8008 VoIP原型系統(tǒng)iLBC解碼模塊流圖

        4 SIC8008 VoIP原型系統(tǒng)中iLBC編碼模塊的實現(xiàn)與優(yōu)化

        SIC8008是一套采用專用視頻硬件模塊處理高清視頻解碼的方案,并不是由嵌入式CPU或DSP加軟件的方式處理視頻編解碼,能夠有效降低芯片功耗。該高清機頂盒方案的視頻解碼核,在進行高清H.264解碼時的工作主頻約為250 MHz,遠低于CPU或DSP的600 M~1 000 MHz,可顯著降低功耗。釋放CPU的計算能力,用于實現(xiàn)其他功能。VoIP系統(tǒng)作為SIC8008數(shù)字電視高清機頂盒產(chǎn)品中的一項增值業(yè)務(wù),要在不影響高清電視信號視頻解碼的情況下,來實現(xiàn)IP電話的應(yīng)用。該原型系統(tǒng)主要利用SIC8008的輔CPU計算功能來實現(xiàn)其功能。

        4.1 iLBC編碼模塊優(yōu)化前的測試結(jié)果

        文件xend.c是基于Mediastreamer2和oRTP開發(fā)的功能測試文件,用來模擬語音信號從接收到iLBC編碼,之后通過RTP包發(fā)送的過程。其運行結(jié)果如圖5所示。

        有圖5中可以看出,在測試程序運行過程中,延遲告警隨著運行時間持續(xù)增大,并不能達到預(yù)期的效果。究其原因,參考圖6的輔CPU占用情況可以看出,是因為測試程序中PID為354的線程對CPU的占用率過高。此PID正是圖5中名為ms_ticker_run的線程ID,即語音處理時的線程。

        PID為354的線程所實現(xiàn)功能主要是對語音進行iLBC編碼壓縮及RTP打包發(fā)送(發(fā)送地址為127.0.0.1)。初步認為是由于iLBC壓縮算法復(fù)雜度而引起的CPU占用過高。通過對iLBC庫中的編碼測試文件ilbc_encoder.c來進一步試驗,證實了上述判斷,測試結(jié)果見圖7。

        圖5 由xend.c編譯生成的xend_original.elf運行情況

        圖6 xend_original.elf運行時輔CPU占用情況

        圖7 iLBC編碼測試

        圖7中,第二個參數(shù)為iLBC編碼時使用幀長的選擇;第三個參數(shù)為輸入文件,即采樣率為8000Hz,16bit的PCM信號;第三個參數(shù)為編碼后的輸出文件。從圖中可以看出,PCM輸入文件時長30.24秒,經(jīng)iLBC編碼的時間為36.79秒,是實際語音時間的121.7%,超出了6.55秒,遠遠不能達到語音處理的實時性。

        4.2 iLBC編碼模塊的優(yōu)化

        為了使VoIP原型系統(tǒng)的編碼模塊在SIC8008上盡可能的降低其對輔CPU的占用率,在實際開發(fā)應(yīng)用的過程中,對iLBC編碼算法代碼進行優(yōu)化改進。

        文獻[8]針對編碼算法提出了三個改進方案,并在Windows XP上驗證了優(yōu)化的可行性。其中,文獻[8]中提出的減少自適應(yīng)碼書比較次數(shù)和搜索范圍是有效降低算法復(fù)雜度的方法,即考慮到擴展碼書與基本碼書的相關(guān)性,在基本碼書中搜索時取定一個步長跳躍式地搜索,并且在第一級搜索時,編碼的目標(biāo)向量具有較大能量,而第二、第三級搜索時的目標(biāo)向量能量逐級減小,可以將步長繼續(xù)增大,節(jié)約編碼時間。

        由于第二和第三級搜索時目標(biāo)向量的能量越來越小,和第一級搜索時相比處于次要地位,SIC8008上iLBC編碼模塊的實際應(yīng)用過程中,在基本碼書和擴展碼書搜索中只保留第一級的搜索,同時使用步長為2的跳躍式搜索。

        4.3 優(yōu)化結(jié)果

        根據(jù)上一節(jié)的優(yōu)化方法和文獻[8]中提到的其他方案,修改iLBC的代碼,在SIC8008上測試相關(guān)功能。

        iLBC編碼模塊優(yōu)化后,其編碼測試結(jié)果如圖8所示。在參數(shù)不變的情況下,編碼時間為實際語音時間的57.5%,比優(yōu)化前縮短了19.39 s。

        圖8 iLBC代碼優(yōu)化后的編碼測試

        應(yīng)用于實時聲音處理并以RTP包發(fā)送的程序中,xend.elf測試結(jié)果如圖9所示。圖9中結(jié)果沒有延遲告警,正常顯示發(fā)送帶寬。

        此時,輔CPU占用率降低了40%左右,如圖10所示。

        最后,基于優(yōu)化后的iLBC編碼模塊將文獻[3]中提到的IP電話語音留言功能移植在SIC8008中,進行語音留言測試,所得new message.wav聲音質(zhì)量略有下降,但是依然具有很強的可懂度和清晰度。

        通過優(yōu)化,證明了iLBC編碼模塊在SIC8008芯片上開發(fā)VoIP原型系統(tǒng)的可實現(xiàn)性,符合實時語音處理的要求;同時,證明了iLBC編碼優(yōu)化方案在嵌入式軟件開發(fā)過程中的可行性。

        圖9 iLBC代碼優(yōu)化后xend.elf的運行情況

        圖10 iLBC代碼優(yōu)化后xend.elf運行時輔CPU的占用情況

        5 結(jié)論

        基于SIC8008芯片開發(fā)的VoIP原型系統(tǒng),在保證不能影響輔CPU進行高清視頻解碼的情況下,盡可能的降低對其資源的占用。其中,對語音進行實時編碼處理的模塊設(shè)計及優(yōu)化是解決問題的關(guān)鍵所在。經(jīng)過對iLBC編碼模塊代碼的改進與優(yōu)化,測試結(jié)果與為優(yōu)化前的模塊相比,CPU占用率降低了40%左右,并且語音質(zhì)量仍然清晰,具有很強的可懂度。雖然,在自適應(yīng)碼書搜索中采用步長不等于1和只進行一級搜索的方法從理論上不能保證最優(yōu)解,但是在應(yīng)用過程中其實驗結(jié)果對信噪比的影響不大,因此,iLBC模塊的優(yōu)化方案在VoIP原型系統(tǒng)開發(fā)中還是值得的。

        參考文獻

        [1]重慶四聯(lián)微電子. SIC8008產(chǎn)品說明[R]. 重慶四聯(lián)微電子,2011.

        [2]于文華.基于網(wǎng)絡(luò)機頂盒實現(xiàn)VOIP終端[J].電腦知識與技術(shù),2010,6(3).

        [3]許悅.基于Mediastreamer2的IP電話語音信箱功能的設(shè)計與實現(xiàn)[J].電子測試,2011(12).

        [4]Simon Morlat, Mediastreamer2 Documentation 2.4.0[EB/OL]. May 19, 2010. http://download-mirror.savannah.gnu.org/releases/linphone/mediastreamer/doc/index.html.

        [5]楊拯. iLBC語音算法研究及DSP實現(xiàn)[D].北京:北京郵電大學(xué),2008.

        [6]S. V. Anderson. Internet Low Bit Rate Codec (iLBC)[EB/OL]. December 2004. http://tools.ietf.org/html/rfc3951.

        [7]郭廷廷,李 敬.iLBC編碼算法及其在VoIP中的應(yīng)用[JOL].電子技術(shù)應(yīng)用,2006(7).

        [8]肖博,劉炯鑫,黃永峰.iLBC語音編解碼器的實現(xiàn)與優(yōu)化[J].計算機研究與發(fā)展,2007,44(z1).

        猜你喜歡
        機頂盒解碼原型
        《解碼萬噸站》
        包裹的一切
        解碼eUCP2.0
        中國外匯(2019年19期)2019-11-26 00:57:32
        安全使用機頂盒注意五點
        NAD C368解碼/放大器一體機
        Quad(國都)Vena解碼/放大器一體機
        《哈姆雷特》的《圣經(jīng)》敘事原型考證
        數(shù)字電視機頂盒軟件自動測試系統(tǒng)的開發(fā)及應(yīng)用
        電子測試(2017年15期)2017-12-18 07:19:23
        論《西藏隱秘歲月》的原型復(fù)現(xiàn)
        有線電視高清數(shù)字電視機頂盒測試系統(tǒng)的構(gòu)建
        四虎国产精品成人影院| 在线视频免费自拍亚洲| 一区二区三区熟妇人妻18| 日本高清二区视频久二区| 久久精品国产9久久综合| 日本一区二区免费在线看| 亚洲成av人片不卡无码| 东京热久久综合久久88| 少妇人妻偷人精品免费视频| 国产无码swag专区| 国产精品黑色丝袜在线播放| 超级少妇一区二区三区| av男人操美女一区二区三区| 日本女优激情四射中文字幕| 日产一区二区三区免费看| 久久久久亚洲av无码专区首| 99精品国产一区二区| 国产av一区二区精品久久凹凸| 粗大的内捧猛烈进出在线视频 | 日韩a毛片免费观看| 亚洲VA中文字幕无码毛片春药| 亚州AV成人无码久久精品| 久久久亚洲精品一区二区| 亚洲精品中文字幕乱码三区99 | 久久久精品2019中文字幕之3| 国内精品久久人妻性色av| 懂色av一区二区三区网久久| 久草青青91在线播放| 一二区成人影院电影网| 亚洲人成人网站在线观看| 精品国产av无码一道| 国产粉嫩高清| 亚洲av精品一区二区| 国产不卡在线视频观看| 成人精品一区二区三区电影| 国产av无码专区亚洲av中文| 美女裸体自慰在线观看| 最新国产美女一区二区三区| 五月婷婷丁香视频在线观看| 日韩 无码 偷拍 中文字幕| 末成年女a∨片一区二区|