<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 基于TMS320VC550的JPEG視頻壓縮系統的實(shí)現

基于TMS320VC550的JPEG視頻壓縮系統的實(shí)現

作者: 時(shí)間:2010-02-26 來(lái)源:網(wǎng)絡(luò ) 收藏

5 優(yōu)化

  算法在DSP上需要解決編碼速度問(wèn)題。片上內存資源的有限性使得大部分的程序代碼和數據不得不放在片外,大量的圖像數據在慢速的SDRAM存儲器中,對其訪(fǎng)問(wèn)和算術(shù)運算是影響性能的關(guān)鍵因素之一。因此,應從內存分配和代碼優(yōu)化兩個(gè)方面來(lái)優(yōu)化程序,提高編碼效率。

  5.1 數據內存優(yōu)化

  由于VC5509A的片上存儲器包括32 Kx16位DARAM,96 Kx16位SARAM,共128 K位的存儲空間。其中DARAM為雙訪(fǎng)問(wèn)內存,即在一個(gè)周期內可完成兩次數據訪(fǎng)問(wèn),SARAM為單訪(fǎng)問(wèn)內存,即在一個(gè)周期內只能完成一次數據訪(fǎng)問(wèn),片外內存為擴展的SDRAM,訪(fǎng)問(wèn)其需要額外的等待時(shí)間,執行效率比較低。因此在算法設計中應合理安排內存分配,盡量將訪(fǎng)問(wèn)頻繁的程序代碼和數據放在片內內存中,特別是DARAM中,可以提高編碼效率。

  5.2 C代碼優(yōu)化

  在的編碼中,根據VC5509A結構特點(diǎn)及結合圖像數據量大的特點(diǎn),提高編碼效率,考慮程序編寫(xiě)和優(yōu)化如下:

  (1)利用編譯器優(yōu)化,開(kāi)啟編譯器的優(yōu)化選項,包括基本優(yōu)化、文件級優(yōu)化和程序級優(yōu)化。

  (2)使用本征(intrinsics)函數,C55x提供了一種特殊函數一本征函數,可迅速優(yōu)化C代碼。本征甬數前有個(gè)下劃線(xiàn)“一”,調用方法和普通函數相同。

  (3)使用圖像庫,TI提供C55x的圖像庫IMGLIB,庫中都是圖像處理常用的函數,而且可以用C語(yǔ)言調用,匯編優(yōu)化好,執行效率高,因此盡量用庫函數。在JPEG編碼中比較關(guān)鍵的是DCT變換可調用庫函數中的IMG_sw_fdct_8x8(short*fdct_data,short, *inter_buffer),該函數完成一次DCT變換需用1 078個(gè)時(shí)鐘周期。大大提高JPEG的編碼效率。

  (4)高效使用MAC硬件,C55x有專(zhuān)門(mén)的硬件高效執行MAC運算。一個(gè)周期中可以執行一個(gè)單乘加或一個(gè)雙乘加(dual-MAC)運算。

  (5)使用特殊數據類(lèi)型(register類(lèi)型、volatile類(lèi)型、const類(lèi)型),對于需要多次重復訪(fǎng)問(wèn)的變量,如for循環(huán)中的變量值,一般可設置為register型變量。聲明變量為register型能提高效率,但必須小心使用。在某些編譯器中,優(yōu)化器會(huì )自動(dòng)分配一些變量為register 型。

  (6)減少判斷循環(huán),在使用判斷方式選取控制語(yǔ)句時(shí)應盡量減少判斷轉移。DSP多采用流水線(xiàn)結構。由于TMS320C55X采用7級流水線(xiàn)結構,頻繁的轉移指令使得流水線(xiàn)難以發(fā)揮作用。

  另外。DSP的大多數指令為單周期指令,但轉移類(lèi)指令卻通常要耗費較多的機器周期。因此,應盡可能減少程序中的轉移分支,以提高程序的效率。

  6 實(shí)驗結果

  6.1 效果實(shí)驗結果

  通過(guò)改變量化因子Q,改變圖像的比。比越大,壓縮過(guò)程中的視覺(jué)損失越大,壓縮后的圖片越不清晰。圖6為采用不同的量化因子Q的壓縮前后效果比較圖。其中,圖6a為未壓縮,大小57.4 KB的原始BMP圖像,圖6b為壓縮后大小為5.18 KB的圖像,圖6c為壓縮后大小5.18 KB的圖像。由圖知,壓縮后的圖像與原始圖像在視覺(jué)效果上相差不大。當Q=50時(shí),壓縮后圖像所需存儲空間僅為原圖像的1/14。

采用不同的量化因子Q的壓縮前后效果比較圖


  6.2 壓縮耗時(shí)實(shí)驗結果

  對于一個(gè)8x8數據塊,各步耗時(shí)如下:分塊:1.335μs;DCT變換:5. 39μs;量化:1.355μs;哈夫曼編碼:3.375μs。說(shuō)明一個(gè)8x8數據塊總耗時(shí)為11.455μs,一幀720x576灰度圖像的壓縮總耗時(shí)為90x72x11.455=74 228.4μs,再加上其他輔助操作,實(shí)際耗時(shí)約75 ms。根據上述結果,在1 s內向上位機發(fā)送13幀720x576的灰度圖像,基本滿(mǎn)足要求。

  7 結束語(yǔ)

  介紹9A DSP的JPEG壓縮的設計和方案,該系統硬件設計采用DSP+FPGA的方案,充分發(fā)揮了各自?xún)?yōu)勢;而軟件設計針對C55x的結構進(jìn)行程序結構和算法優(yōu)化,經(jīng)過(guò)驗證達到較好的實(shí)時(shí)效果。由于該系統體積小、功耗低,適用于一些野外圖像采集、遠程監控等需要連續傳輸圖像的場(chǎng)合。


上一頁(yè) 1 2 3 4 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>