国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于C6000系列DSP的MPEG-4編碼器實(shí)現(xiàn)

發(fā)布時(shí)間:2010-11-26 18:38    發(fā)布者:designer
關(guān)鍵詞: C6000 , dsp , MPEG-4 , 編碼器
MPEG-4是一種開(kāi)放性標(biāo)準(zhǔn),其中許多部分都沒(méi)有規(guī)定,可以加入一些新的算法,因此采用通用DSP能夠隨時(shí)更新算法、優(yōu)化算法、使得編碼效率更高。由于MPEG-4編碼算法復(fù)雜,需要存儲(chǔ)的數(shù)據(jù)量大,無(wú)論是存儲(chǔ)空間分配、數(shù)據(jù)傳輸還是運(yùn)算速度對(duì)DSP來(lái)說(shuō)都是挑戰(zhàn)。本文介紹了基于C6000系列DSP的MPEG-4視頻編碼卡的軟硬件實(shí)現(xiàn)。利用DSP的VLIW和流水線結(jié)構(gòu)設(shè)計(jì)程序可以使MPEG-4編碼效率大大提高。

1 DSP特性介紹

由于算法的復(fù)雜性及數(shù)據(jù)量的日益增大,單靠串行結(jié)構(gòu)的處理器完成數(shù)據(jù)處理工作已經(jīng)越來(lái)越不可行,因此出現(xiàn)了并行結(jié)構(gòu)的CPU以完成這一新的任務(wù)。現(xiàn)今最著名的兩種并行體系結(jié)構(gòu)是超長(zhǎng)指令字VLIW(Very Long Instruction Word)結(jié)構(gòu)和超標(biāo)量體系結(jié)構(gòu)。由于超標(biāo)量體系結(jié)構(gòu)CPU硬件極其復(fù)雜,指令動(dòng)態(tài)調(diào)度將導(dǎo)致時(shí)間的不確定性,所以DSP很少使用這種結(jié)構(gòu)。而一般使用超長(zhǎng)指令字(VLIW)結(jié)構(gòu),這種長(zhǎng)指令通常包括多個(gè)彼此獨(dú)立的同步操作。

C6000系列DSP是TI公司生產(chǎn)的高檔DSP。這一系列DSP都是基于VelociTITM構(gòu)架的VLIW DSP,它在每個(gè)周期可以執(zhí)行八條32bit的指令,具有高達(dá)200MHz的CPU,從而使得其運(yùn)算能力達(dá)到1600MIPS(200MHz×8條指令=1600MIPS)。這些性能都確立了它在高端多媒體應(yīng)用中的地位。

DSP的CPU結(jié)構(gòu)如圖1所示,它具有兩個(gè)通道,每個(gè)通道具有4個(gè)功能單元(1個(gè)乘法器和3個(gè)算術(shù)邏輯單元),16個(gè)32位通用寄存器,每個(gè)通道的功能單元可以隨意訪問(wèn)本通道的寄存器。CPU還有兩個(gè)交叉單元,通過(guò)它們,一個(gè)通道的功能單元可以訪問(wèn)另一個(gè)通道的寄存器。另外CPU還具有256bit寬的數(shù)據(jù)和程序通道,可以使程序存儲(chǔ)器在每個(gè)時(shí)鐘周期提供8條并行執(zhí)行指令。這種CPU結(jié)構(gòu)是DSP具有VLIW結(jié)構(gòu)的最基本條件。此系列DSP的存儲(chǔ)空間映射為內(nèi)部存儲(chǔ)器、內(nèi)部外設(shè)及擴(kuò)展存儲(chǔ)器。其中內(nèi)部存儲(chǔ)器由64KB內(nèi)部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器構(gòu)成,內(nèi)部程序存儲(chǔ)器可以映射到CPU地址空間或者作為Cache操作。內(nèi)部和外部數(shù)據(jù)存儲(chǔ)器均可通過(guò)CPU、DMA或HPI(HostPort Interface)方式訪問(wèn),HPI接口使上位機(jī)可以訪問(wèn)DSP的存儲(chǔ)空間。   




2 MPEG-4編碼卡的硬件設(shè)計(jì)

MPEG-4編碼卡包括幾部分:視頻采集、視頻的MPEG-4編碼、整個(gè)系統(tǒng)的CPLD控制、PC機(jī)與DSP的通信等模塊,其結(jié)構(gòu)框圖如圖2所示。





2.1 視頻采集

視頻采集部分主要完成模擬視頻到數(shù)字視頻的轉(zhuǎn)換,包括一片視頻采集芯片和一片小的CPLD。CPLD的作用是控制視頻采集芯片,將采得的數(shù)據(jù)從8位或16位轉(zhuǎn)化為32位,并且使數(shù)據(jù)按照Y、U、V分開(kāi)的方式排列。這樣相當(dāng)于對(duì)采集到的數(shù)據(jù)進(jìn)行了一次預(yù)處理,以便于視頻編碼使用。另外,CPLD將32位寬的數(shù)據(jù)輸出給32位的FIFO。用32位的FIFO以及將視頻數(shù)據(jù)轉(zhuǎn)換為32位,可以使DSP讀取視頻數(shù)據(jù)時(shí)32位的數(shù)據(jù)總線沒(méi)有空閑,從而提高DSP讀取視頻數(shù)據(jù)的效率;這里使用FIFO是為了減少DSP讀取數(shù)據(jù)的時(shí)間、降低高速設(shè)備和低速設(shè)備的不匹配。每次FIFO半滿時(shí),CPLD會(huì)給DSP發(fā)送中斷信號(hào),并且在中斷處理程序中使用DMA方式讀取視頻數(shù)據(jù);如果不使用FIFO,DSP會(huì)頻繁中斷,從而花費(fèi)大量時(shí)間在入棧、出棧以及寄存器的設(shè)置上。

2.2 視頻編碼

DSP讀入視頻數(shù)據(jù)后進(jìn)行先期處理,如將YUV格式轉(zhuǎn)為RGB格式等;然后進(jìn)行MPEG-4視頻編碼。在這一過(guò)程中,數(shù)據(jù)訪問(wèn)通常要占用50%的時(shí)間,算術(shù)運(yùn)算要占用30%的時(shí)間,控制要占用20%的時(shí)間。因?yàn)樾枰M(jìn)行運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償,在數(shù)據(jù)存儲(chǔ)器中通常保存一幀I(原始幀)幀圖像和至少一幀P(預(yù)測(cè)幀)幀圖像,這些圖像占用的空間都比較大,因此一般都放在外部存儲(chǔ)器SDRAM里。在編碼過(guò)程中還要存儲(chǔ)DCT系數(shù)、運(yùn)動(dòng)向量、量化矩陣、可變長(zhǎng)編碼表、Z形編碼表等,由于占用較小的存儲(chǔ)空間而且會(huì)反復(fù)用到,因此把它們放在片內(nèi)存儲(chǔ)器中。

2.3 PC與編碼卡通信

PC與編碼卡通信可以通過(guò)并口、串口、USB口、PCI接口等方式實(shí)現(xiàn)。其中PCI接口方式易于PC與編碼器高速傳輸數(shù)據(jù),因此本文采用PCI接口。編碼后的數(shù)據(jù)通過(guò)DSP的HPI、PCI橋芯片、PCI總線到達(dá)PC。PC通過(guò)DSP的HPI直接對(duì)DSP的存儲(chǔ)空間進(jìn)行訪問(wèn)。HPI有兩種工作方式:一種是單數(shù)據(jù)讀寫(xiě),這種方式每次只能讀寫(xiě)一個(gè)數(shù)據(jù),一般主機(jī)對(duì)編碼參數(shù)進(jìn)行設(shè)置,例如設(shè)置圖像大小、幀率等;另一種是burst方式的數(shù)據(jù)讀寫(xiě),在這種方式下只需要指定初始訪問(wèn)地址,然后以地址自加的方式訪問(wèn)DSP的存儲(chǔ)空間,這種訪問(wèn)方式不需要DSP的CPU參與。圖2中CPLD完成PCI橋芯片與DSP之間的訪問(wèn)控制,DSP、PCI的中斷控制等功能。

3 MPEG-4編碼卡的軟件設(shè)計(jì)

C6000系列DSP提供的編譯環(huán)境支持C++、C以及匯編語(yǔ)言,用C++設(shè)計(jì)的程序執(zhí)行效率較低,一般不用;大多數(shù)都采用C語(yǔ)言和匯編語(yǔ)言相結(jié)合的方式來(lái)完成DSP程序設(shè)計(jì)。DSP程序設(shè)計(jì)流程如下:先寫(xiě)出C代碼并對(duì)其優(yōu)化,如果不能達(dá)到預(yù)期的運(yùn)行效率,則編寫(xiě)匯編代碼來(lái)提高效率。對(duì)于MPEG-4這樣復(fù)雜的算法,只運(yùn)用C語(yǔ)言是遠(yuǎn)遠(yuǎn)不夠的,在本設(shè)計(jì)里大部分代碼都由匯編語(yǔ)言完成。

設(shè)計(jì)高效的代碼,必須充分利用該DSP的VLIW和流水線結(jié)構(gòu)。利用VLIW結(jié)構(gòu)可以在一個(gè)時(shí)鐘周期并行執(zhí)行八條32位指令;在流水線結(jié)構(gòu)下,一條指令的執(zhí)行不用等待上一條指令執(zhí)行結(jié)束,例如DSP從內(nèi)存中讀取一個(gè)數(shù)據(jù)需要5個(gè)時(shí)鐘周期,在讀取這個(gè)數(shù)據(jù)的同時(shí),DSP可以去執(zhí)行別的指令,不必等待這條指令執(zhí)行結(jié)束。具有這兩種結(jié)構(gòu)的DSP在性能提高的同時(shí),程序設(shè)計(jì)也變得比較復(fù)雜。對(duì)于具有VLIW和流水線結(jié)構(gòu)的DSP在設(shè)計(jì)程序時(shí)必須注意以下幾個(gè)問(wèn)題:

·每一個(gè)指令包可以包括多條操作指令,在C6000系列DSP中每一條指令包括八條32位操作指令;

·可以將兩個(gè)16位數(shù)據(jù)或者四個(gè)8位數(shù)據(jù)合并成一個(gè)32位數(shù)據(jù),以提高存取效率;

·必須靜態(tài)地知道每條操作指令執(zhí)行需要的時(shí)鐘周期,這樣才能取得該操作的正確結(jié)果;

·這種結(jié)構(gòu)的處理器不能處理動(dòng)態(tài)事件,例如Cache突然消失;

·對(duì)于多周期才能完成的指令,在正確計(jì)算的基礎(chǔ)上,一定要提前執(zhí)行,以免出現(xiàn)一條指令必須等上一條指令執(zhí)行結(jié)束才能執(zhí)行的情況。

下面結(jié)合C6000系列DSP的指令及其具體資源情況,以MPEG-4中的算法為例說(shuō)明如何利用這兩種結(jié)構(gòu)設(shè)計(jì)出高效的代碼。

3.1 利用流水線結(jié)構(gòu)設(shè)計(jì)程序

流水線是指指令的處理可分為幾個(gè)子操作,每個(gè)子操作由不同的單元完成。對(duì)每個(gè)單元來(lái)說(shuō),每隔一個(gè)時(shí)鐘周期可進(jìn)入一條新指令,在同一時(shí)間內(nèi)不同單元可以同時(shí)處理多條指令。在C6000中B(.unit)lable是一條跳轉(zhuǎn)指令,它的執(zhí)行周期為7個(gè)時(shí)鐘周期,也就是說(shuō),在安排這條指令之后6個(gè)時(shí)鐘周期才能使程序轉(zhuǎn)移到lable處執(zhí)行,以程序1為例說(shuō)明如何利用流水線結(jié)構(gòu)設(shè)計(jì)程序。該程序的執(zhí)行順序如下:0000→0004→0008→000C-0010→0014→0008→000C...從程序執(zhí)行順序知道,要想在執(zhí)行完0014處的指令后跳轉(zhuǎn)到LOOP處,就應(yīng)該在0014的前6個(gè)時(shí)鐘周期處安排這條指令;如果不提前安排好這條指令,而是在0014后放置這條指令,就需要使CPU等待6個(gè)時(shí)鐘周期才能跳到LOOP處,從而使程序運(yùn)行效率降低。從這個(gè)程序的執(zhí)行順序可以看出,必須提前知道每一條指令的運(yùn)行周期數(shù),并提前安排該指令,才能達(dá)到減少等待周期、提高程序效率的效果。C6000系列DSP指令集包括許多多時(shí)鐘周期的指令,如跳轉(zhuǎn)指令、數(shù)據(jù)訪問(wèn)指令等。MPEG-4編碼算法需要頻繁地訪問(wèn)大量數(shù)據(jù),并且有很多循環(huán),無(wú)論是數(shù)據(jù)訪問(wèn)還是循環(huán)都要用到多時(shí)鐘周期指令。以MEPG-4的DCT算法為例,每一個(gè)8×8的塊變換需要用16次的跳轉(zhuǎn)指令和256次數(shù)據(jù)訪問(wèn)指令,由此可見(jiàn)流水線在MPEG-4程序優(yōu)化中所起的作用。




3.2 利用VLIW結(jié)構(gòu)設(shè)計(jì)程序

利用VLIW結(jié)構(gòu)設(shè)計(jì)程序可以充分利用DSP多個(gè)功能單元并行工作的特性。DSP的每一個(gè)通道都有四個(gè)功能單元(L、S、M、D),每個(gè)功能單元負(fù)責(zé)完成一定的邏輯或者算術(shù)運(yùn)算,另外A、B兩個(gè)通道的互訪可以通過(guò)交叉單元1x、2x完成。程序2中,在一個(gè)時(shí)鐘周期內(nèi)并行執(zhí)行八條指令,使用了所有的功能單元S2、S1、L1、M2、L2、M1、D1、D2,同時(shí)使用了所有的交叉單元1x、2x,已經(jīng)達(dá)到極限。但是這種并行指令的使用也有一定的限制,其最根本的要求就是不能引起資源沖突,例如:

·不能用同一個(gè)功能單元;

·不能對(duì)同一通道的寄存器進(jìn)行兩次long型寫(xiě)操作;

·不能對(duì)同一通道的寄存器同時(shí)進(jìn)行l(wèi)ong型讀操作和存儲(chǔ)操作;

·讀同一寄存器不能超過(guò)4次;

·在同一個(gè)時(shí)鐘周期不能有兩個(gè)指令寫(xiě)入同一寄存器,這不是說(shuō)向同一寄存器寫(xiě)的兩條指令不能放在同一個(gè)并行指令包內(nèi),而是說(shuō)兩個(gè)指令不能在寫(xiě)寄存器的那個(gè)時(shí)鐘周期并存。





仍然以MPEG-4中的DCT算法為例說(shuō)明VLIW結(jié)構(gòu)在程序優(yōu)化中的作用。進(jìn)行DCT變換的原始數(shù)據(jù)是short型的,因此可以將兩個(gè)數(shù)據(jù)合成一個(gè)32位的數(shù)據(jù)來(lái)訪問(wèn);為了使兩個(gè)通道并行訪問(wèn)數(shù)據(jù)和運(yùn)算,應(yīng)盡量把要訪問(wèn)的數(shù)據(jù)平均地分配給不同的通道寄存器;并且通過(guò)交叉單元使兩個(gè)通道相互訪問(wèn),從而達(dá)到很高的并行性,大大提高了編碼效率。

MPEG-4編碼的其它算法,例如逆DCT、運(yùn)動(dòng)估計(jì)、運(yùn)動(dòng)補(bǔ)償?shù)人惴ǘ及罅康难h(huán)運(yùn)算和數(shù)據(jù)訪問(wèn)。因此利用DSP的VLIW結(jié)構(gòu)和流水線結(jié)構(gòu)優(yōu)化MPEG-4編碼算法就成為一種非常合適的方法。

當(dāng)然,編寫(xiě)程序時(shí)不是將DSP的VLIW結(jié)構(gòu)和流水線結(jié)構(gòu)分開(kāi)考慮,而是將兩者結(jié)合起來(lái),在編寫(xiě)每一條指令時(shí)都要清楚這條指令的執(zhí)行周期以及使用的功能單元,這樣才能編寫(xiě)出高效的程序。

表1對(duì)1-D Chen 8×8 DCT、100點(diǎn)點(diǎn)積和FIR濾波器算法的C語(yǔ)言實(shí)現(xiàn)與利用VLIW及流水線結(jié)構(gòu)的匯編代碼實(shí)現(xiàn)進(jìn)行比較。從統(tǒng)計(jì)數(shù)據(jù)可以看出,利用DSP結(jié)構(gòu)編寫(xiě)的匯編代碼執(zhí)行效率要比C語(yǔ)言編寫(xiě)的代碼執(zhí)行效率高40倍左右。因此充分利用DSP的VLIW結(jié)構(gòu)和流水線結(jié)構(gòu)設(shè)計(jì)匯編程序能夠使效率大幅度提高。





本文對(duì)MPEG-4編碼卡進(jìn)行了設(shè)計(jì),主要難點(diǎn)是MPEG-4編碼算法的優(yōu)化,MPEG-4的編碼復(fù)雜、代碼量大。利用C6000系列DSP的VLIW結(jié)構(gòu)和流水線結(jié)構(gòu)設(shè)計(jì)出了MPEG-4編碼算法。實(shí)驗(yàn)證明,算法效率得到了大幅度提高。
本文地址:http://www.qingdxww.cn/thread-42073-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
chinajiagege 發(fā)表于 2011-11-24 20:57:37
好東西就要支持下哈。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 為何選擇集成電平轉(zhuǎn)換?
  • 5分鐘詳解定時(shí)器/計(jì)數(shù)器E和波形擴(kuò)展!
  • 基于CEC1712實(shí)現(xiàn)的處理器SPI FLASH固件安全彈性方案培訓(xùn)教程
  • 了解一下Microchip強(qiáng)大的PIC18-Q24 MCU系列
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产麻豆福利a v在线播放 | 最新亚洲精品 | 欧美一区二区三区高清视频 | 国产精品一区二区在线观看完整版 | 精品国产免费一区二区三区 | 亚洲欧洲日产国码二区在线 | 国产精品边做边接电话在线观看 | 亚洲女人天堂a在线播放 | 精品91自产拍在线观看一区 | 亚洲天堂91| 日本欧美视频在线观看 | 精品视频在线观看一区二区三区 | 91精品视频免费在线观看 | 精品国产免费久久久久久婷婷 | 精东影业果冻传媒 | 一区二区三区中文国产亚洲 | 九九久久精品国产免费看小说 | 搞黄网站免费看 | 成人精品国产亚洲欧洲 | 国产欧美日韩另类 | 亚洲视频www | 69热精品视频在线看影院 | 榴莲草莓向日葵黄瓜丝瓜污 | 99热99热 | 狠狠插入视频 | 日本综合欧美一区二区三区 | 一本大道香蕉大vr在线吗视频 | 国产成人亚洲综合91精品555 | 亚洲一级片在线播放 | 日韩在线 中文字幕 | 国产成人午夜91精品麻豆剧场 | 亚洲国产婷婷香蕉久久久久久 | 69视频永久免费观看下载 | 狠狠色婷婷综合天天久久丁香 | 欧美成人免费全部观看在线看 | 亚洲黄色在线 | 手机在线黄色网址 | 亚洲欧美一区二区三区蜜芽 | 五月婷婷之婷婷 | 在线日韩欧美一区二区三区 | 天美传媒果冻传媒星空传媒 |