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

DMA在實(shí)時(shí)圖像處理中的應(yīng)用

發(fā)布時(shí)間:2010-11-25 12:18    發(fā)布者:eetech
關(guān)鍵詞: DMA , 實(shí)時(shí) , 圖像處理
實(shí)時(shí)圖像處理系統(tǒng)要求系統(tǒng)必須在有限的時(shí)間內(nèi)完成大量數(shù)據(jù)的運(yùn)算。DSP以其獨(dú)特的哈佛總線結(jié)構(gòu)和并行的存儲(chǔ)塊結(jié)構(gòu),將乘法操作與加法操作統(tǒng)一考慮,可以在一個(gè)指令周期完成般處理器的多次運(yùn)算;并且指令系統(tǒng)采用多級流水線操作方式,保證了系統(tǒng)對實(shí)時(shí)性的要求,因此得以在實(shí)時(shí)圖像處理系統(tǒng)廣泛應(yīng)用。圖像處理系統(tǒng)的最大特點(diǎn)就是運(yùn)算數(shù)據(jù)量大。大多數(shù)情況下,數(shù)據(jù)量遠(yuǎn)遠(yuǎn)大于片內(nèi)存儲(chǔ)器容量,計(jì)算過程中必須進(jìn)行數(shù)據(jù)的交換。合理使用DMA可以提高數(shù)據(jù)傳輸效率,取得事半功倍的效果。本文以TMS320C6701(簡稱C6701)為例,介紹DMA在圖像處理中的幾種典型應(yīng)用。

1 圖像處理系統(tǒng)特點(diǎn)與使用DMA的必要性

前面已經(jīng)提到,圖像處理系統(tǒng)的最大特點(diǎn)是就是運(yùn)算數(shù)據(jù)量大,數(shù)據(jù)量往往大于片內(nèi)存儲(chǔ)器容量。不僅如此,圖像處理系統(tǒng)之中,運(yùn)算過程產(chǎn)生的中間數(shù)據(jù)往往與源數(shù)據(jù)大小相當(dāng),這也限制了片內(nèi)高速存儲(chǔ)區(qū)的使用。然而為了提高處理的速度,計(jì)算源數(shù)據(jù)、中間數(shù)據(jù)必須盡可能多地在片內(nèi)高速存儲(chǔ)區(qū)進(jìn)行,因此,必須使用DMA在片內(nèi)高速存儲(chǔ)區(qū)與片外低速存儲(chǔ)區(qū)之間進(jìn)行數(shù)據(jù)交換,以提高數(shù)據(jù)處理速度。 另外,數(shù)據(jù)的排列往往不符合程序的要求;必須對數(shù)據(jù)進(jìn)行重排達(dá)到程序要求;使用DMA對數(shù)據(jù)重排,可以滿足程序要求。與數(shù)據(jù)重排如出一轍,圖像處理中許多操作的基礎(chǔ)都是對多重?cái)?shù)組的操作,也就是矩陣運(yùn)算。諸如求逆、取子圖等圖像處理中經(jīng)常用到的運(yùn)算,也可以通過DMA完成。這些運(yùn)算當(dāng)然可用C語言編程實(shí)現(xiàn),但是,如果程序?qū)崿F(xiàn)是一個(gè)多重循環(huán),不利于軟件流水,而且隨著數(shù)據(jù)量的增加,消耗的時(shí)鐘周期也會(huì)成比例增加;即使使用并行匯編在時(shí)鐘消耗上可以有所減少,這都是不符合系統(tǒng)實(shí)時(shí)性要求的。如果通過DMA數(shù)據(jù)重排,可以輕而易舉地實(shí)現(xiàn),而且這個(gè)過程CPU只占有一個(gè)時(shí)鐘周期,通過巧妙程序安排,安全可以使數(shù)據(jù)的傳輸過程在CPU的后臺(tái)進(jìn)行,根本感覺不到DMA的存在。

2 C6x系列DMA簡介

TMS320C6701S是TMS320C6000系列的高速浮點(diǎn)數(shù)字信號處理信號,是TI公司20世紀(jì)90年代后期的最新一代DSP產(chǎn)品。C6701有4個(gè)通道自加載的DMA通道,用于數(shù)據(jù)的DMA傳輸;另外,1個(gè)輔助DMA通道,負(fù)責(zé)與主機(jī)通信。DMA通道可以在沒有CPU參與下完成映射空間的數(shù)據(jù)傳輸。數(shù)據(jù)的傳輸可以是片內(nèi)存存儲(chǔ)器、片內(nèi)外圍部件或外部器件之間的傳輸。

2.1 DMA控制寄存器

對于C6x系列的DMA,在使用任何一個(gè)DMA通道進(jìn)行數(shù)據(jù)傳輸前,都必須設(shè)置以下幾組寄存器。各寄存器及其功能如下: *主控寄存器(primary control register)——用于控制DMA狀態(tài)及傳輸類型; *副控寄存器(secondary control register)——用于使能CPU中斷,監(jiān)視DMA通道狀態(tài); *傳輸計(jì)數(shù)寄存器(transfer control register)——用于記錄傳輸?shù)膯挝粩?shù)目; *源地址寄存器(source control register)——傳輸?shù)钠鹗嫉刂?*目標(biāo)地址寄存器(destination control register)——傳輸?shù)哪康牡刂罚?此外,DMA通道可以使用以下全局DMA寄存器,以完成比較復(fù)雜的傳輸過程: *全局地址寄存器組(global address register A、B、C和D); *全局索引寄存器組(global index register A和register A和B)。 全局地址寄存器組共有4個(gè)32位寄存器,其作為分裂地址或地址重載值。全局索引寄存器2個(gè)32位寄存器。每個(gè)寄存器含2個(gè)控制域,其中高16位為幀索引域(FRAME INDEX),其值為幀間的地址偏移量,也就是傳輸完1幀后,地址的調(diào)整量;低16位為數(shù)據(jù)單元索引域(ELEMENT INDEX),其值為幀內(nèi)地址偏移量,也就是每傳輸完1個(gè)數(shù)據(jù)單元的地址調(diào)整量。全局計(jì)數(shù)重載計(jì)數(shù)器與全局索引寄存器結(jié)構(gòu)一樣,用于重載DMA通道的傳輸計(jì)數(shù)寄存器。全局DMA寄存器可以為任意DMA通道使用,而且同一寄存器可以同時(shí)被一個(gè)以上的DMA通道使用。

2.2 DMA工作過程簡介

DMA是十分復(fù)雜的系統(tǒng),限于篇幅,這里只簡要介紹DMA的工作過程。 在C6000系列DMA中,把所傳輸?shù)囊欢〝?shù)量的數(shù)據(jù)單元(ELEMENT)稱為幀(FRAME),幀的大小由傳輸計(jì)數(shù)寄存器的低16位數(shù)據(jù)即單元計(jì)數(shù)域(ELEMENT COUNT)指定,該寄存器的值通過傳輸計(jì)數(shù)寄存器的高16位即幀計(jì)數(shù)域(FRAME COUNT)指定。當(dāng)完成1次DMA讀操作,ELEMENT COUNT值自動(dòng)域1;當(dāng)最后1個(gè)數(shù)據(jù)單元讀操作完成時(shí),F(xiàn)RAME COUNT自動(dòng)減1,此時(shí)ELEMENT COUNT的值將被全局計(jì)數(shù)重載寄存器的ELEMENT COUNT更新;當(dāng)最后1幀的讀操作完成后,傳輸計(jì)數(shù)寄存器將被全局計(jì)數(shù)重載寄存器的值更新。 DMA控制器負(fù)責(zé)對每個(gè)通道的讀寫傳輸進(jìn)行地址計(jì)算。在計(jì)算機(jī)傳輸?shù)刂窌r(shí),有基本調(diào)整和使用全局索引寄存器進(jìn)行調(diào)整2種方式:基本調(diào)整是指通過控制域SRC DIR和DST DIR來設(shè)置傳輸?shù)刂罚磾?shù)據(jù)字長大。ㄓ蒃SIZE控制)遞增、遞減或保持不變;而使用全局索引寄存器調(diào)整與基本調(diào)整不同,這種模式下,根據(jù)傳輸?shù)臄?shù)據(jù)元素是否當(dāng)前幀的最后一個(gè)來進(jìn)行地址調(diào)整。 在全局索引寄存器調(diào)整模式下,地址調(diào)整值由全局索引寄存器控制。全局索引寄存器含2個(gè)控制域,其中高16位為幀索引域(FRAME INDEX),其值為幀間的地址偏移量,也就是傳輸完1幀后的地址調(diào)整量;低16位為數(shù)據(jù)單元索引域(ELEMENT INDEX),其值的幀內(nèi)地址偏移量,也就是每傳輸完1個(gè)數(shù)據(jù)單元的地址調(diào)整量。

3 幾種典型的DMA操作及其應(yīng)用

3.1 塊移動(dòng)

塊移動(dòng)能夠?qū)?塊連續(xù)數(shù)據(jù)塊從一個(gè)地址傳輸?shù)搅硪粋(gè)地址,通常用于將數(shù)據(jù)或程序從外部存儲(chǔ)器移到內(nèi)部存儲(chǔ)器。這種塊移動(dòng)是最簡單、最常見的DMA工作方式。例如,將1塊1K連續(xù)的32位數(shù)據(jù)塊從外存(0x02000000)移動(dòng)至內(nèi)存(0x80000000),如圖1所示。




相關(guān)寄存器的值設(shè)置: Primary control register =0x00000050 Transfer control register =0x00000400 Source control register =0x02000000 Destination control register =0x80000000 其中主控寄存器各控制域設(shè)置與意義如下: DST RELOAD =00 無目標(biāo)地址重載 SRC RELOAD =00 無源地址重載 EMOD =0 FS =0 無幀同步 TCINT =1 允許中斷 PRI =1 DMA優(yōu)先 WSYNC =00000 無讀同步 RSYNC =000 無寫同步 RSYNC =00 無寫同步 FRAME COUNT =0X000 ELEMENT COUNT =0X0400 INDEX =0 全局計(jì)數(shù)重載寄存器A CNT RELOAD =0 全局計(jì)數(shù)重載寄存器A SPLIT =00 無分裂地址 ESIZE =00 數(shù)據(jù)單元4BYTES DSTDIR =11 索引寄存器方式 SRCDIR =01 地址遞增 STATUS =00此位只讀 START =00 DMA停止 在主控寄存器的START讀中寫入01b就可以開始DMA的傳輸。

3.2 數(shù)據(jù)重排

往往數(shù)據(jù)的格式并不符合運(yùn)算的要求。在這種情況下,可以通過DMA進(jìn)行數(shù)據(jù)重新排列,以滿足運(yùn)算的要求。數(shù)據(jù)重排主要是利用DMA的幀傳輸方式。數(shù)據(jù)重排所必需的、最關(guān)鍵的一步是設(shè)置全局寄存器,所以,以下討論的重點(diǎn)就是全局寄存器的設(shè)置。

3.2.1 求矩陣轉(zhuǎn)置

圖2顯示了將一個(gè)位于外存16bit的連續(xù)數(shù)據(jù)區(qū),開始地址(0x02000000),數(shù)據(jù)重排并移至片內(nèi)存儲(chǔ)區(qū),首地址為(0x80000000)前后的排列情況。




在數(shù)據(jù)重排中,主要是正確設(shè)置全局索引寄存器。在這里,可以將1幀看作1個(gè)數(shù)組,那么數(shù)據(jù)單元就是數(shù)組的元素。因此,如果假設(shè)共有F%26;#215;E的矩陣,即有F幀數(shù)據(jù),每幀E個(gè)數(shù)據(jù)單元,每個(gè)元素為S(Byte),重排為E%26;#215;F的矩陣。在這種情況下,源地址遞增,目標(biāo)地址根據(jù)全局索引寄存器的值進(jìn)行調(diào)整。在幀內(nèi)相鄰的數(shù)據(jù)單元傳輸時(shí),目標(biāo)地址偏移應(yīng)為F%26;#215;S,所以傳輸完1幀后的地址總偏稱為(E-1)%26;#215;F,因此,下一幀的第1個(gè)數(shù)據(jù)單元地址為在當(dāng)前的地址減去((E-1)%26;#215;F-1)%26;#215;S。也就是說, *FRAME INDEX應(yīng)設(shè)為-((E-1)%26;#215;F-1)%26;#215;S *ELEMENT INDEX應(yīng)設(shè)為F%26;#215;S 在上例中寄存器的設(shè)置為: *FRAME INDEX =-((2-1) %26;#215;4-1) %26;#215;2=0xFFEE *ELEMENT INDEX=4%26;#215;2=8 因此,寄存器設(shè)置如下: Primary control register =0x030001D0 Transfer control register =0x00040002 Source control register =0x02000000 Destination control register =0x80000000 Global index register A =0xFFFA0008 Global count reload A =0x00000002 3.2.2 取圖像子圖 圖像處理中,往往要從圖像中摳取一定大小的子圖,然后對子圖進(jìn)行處理。對于大型圖像,尺寸往往超過了DSP系統(tǒng)的片內(nèi)存儲(chǔ)器的大小,這種摳取的操作成了必不可少的步驟。這可以通過使用全局索引寄存器來完成。例如,從一個(gè)8%26;#215;4的圖像中摳取一個(gè)2%26;#215;4的子圖,如圖3所示,其中每個(gè)數(shù)據(jù)單元為1Byte。





可以這樣描述:有F1幀數(shù)據(jù),每幀數(shù)據(jù)有E1個(gè)數(shù)據(jù)單元,每個(gè)數(shù)據(jù)單元為S(Byte);從中摳取部分為F2幀數(shù)據(jù),每幀數(shù)據(jù)E2個(gè)數(shù)據(jù)單元,數(shù)據(jù)單元為S(Byte)。這種情況下,因?yàn)橥瓿蓴?shù)據(jù)傳輸后,目標(biāo)存儲(chǔ)區(qū)為連續(xù)數(shù)據(jù),因此目標(biāo)地址遞增;源地址根據(jù)全局索引寄存器的值進(jìn)行調(diào)整。幀內(nèi)相鄰的數(shù)據(jù)單元傳輸時(shí),源地址偏移應(yīng)為S;當(dāng)讀完幀的最后一個(gè)數(shù)據(jù)單元,源地址指針跳過(E1-E2)個(gè)數(shù)據(jù)單元,即幀間的地址調(diào)整量為((E1-E1)+1)%26;#215;S。這樣全局寄存器的設(shè)置: **FRAME INDEX =((8-4)+1%26;#215;1=4 *ELEMENT INDEX=1 *FRAME COUNT =2 *ELEMENT INDEX=4 因此,寄存器設(shè)置如下: Primary control register =0x03000270 Transfer control register =0x00020004 Source control register =0x02000000 Destination control register =0x80000000 Global index register A =0x00050001 Global reload register A =0x00000001

結(jié)束語

作為實(shí)時(shí)系統(tǒng),選取合理有效的核心算法是至關(guān)重要的,同時(shí),選擇有效的數(shù)據(jù)傳輸方法也是不容忽視的。我們在實(shí)際工作中發(fā)現(xiàn),在大多數(shù)情形下,數(shù)據(jù)傳輸所花費(fèi)時(shí)間往往超過數(shù)據(jù)處理的時(shí)間,成為實(shí)時(shí)圖像處理系統(tǒng)中的瓶頸。因此,合理使用DMA提高數(shù)據(jù)傳輸效率,是很有實(shí)際價(jià)值和意義的。
本文地址:http://m.qingdxww.cn/thread-41659-1-1.html     【打印本頁】

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

廠商推薦

  • Microchip視頻專區(qū)
  • Chiptorials ——如何將CryptoAuthLib庫用于Microchip安全身份驗(yàn)證IC
  • FPGA設(shè)計(jì)流程培訓(xùn)教程
  • Chiptorials ——使用ATECC608 TrustFLEX實(shí)現(xiàn)基本非對稱身份驗(yàn)證
  • 無線充電基礎(chǔ)知識(shí)及應(yīng)用培訓(xùn)教程
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产成人精品日本亚洲直接 | 中文有码视频 | 成 人 黄 色 视频免费播放 | 91视频国产免费 | 精品一区 二区三区免费毛片 | 国产99热| 视频一区二区欧美日韩在线 | 国产肝交视频在线观看 | 日韩中文字幕在线播放 | 国产三级国产精品国产普男人 | 手机看片在线播放 | 欧美在线一 | 国产亚洲一区二区三区在线观看 | 高清一区二区三区免费 | 香蕉在线视频播放 | 久久一级片 | 久草国产在线视频 | 欧美日韩一区二区三区在线观看 | 韩国一级毛片免费完整视频 | 日本黄大片视频在线播放 | 91免费精品国自产拍在线可以看 | 天天视频在线观看免费 | 欧美一区二区三区网站 | 日韩欧美国产亚洲 | 九色自拍| 在线日本色 | h肉动漫在线观看免费资源 h肉动漫在线观看高清 | 一级片免费在线播放 | 麻豆天美精东91制片厂 | 高清一区二区在线观看 | 亚洲第二区 | 亚洲精品视频免费在线观看 | 99看片| 日本一区二区三区在线看 | 狼狼色丁香久久女婷婷综合 | 交欧美 | 国产欧美曰韩一区二区三区 | 草逼视频下载 | 毛片黄片视频 | a级黄韩国免费播放 | 香蕉视频亚洲一级 |