專利名稱:視頻yuv數(shù)據(jù)的dma傳輸方法、裝置及dma控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及DMA數(shù)據(jù)傳輸控制領(lǐng)域,特別是涉及一種視頻數(shù)據(jù)的 DMA傳輸方法、裝置及一種DMA控制器。
背景技術(shù):
DMA (Direct Memory Access,直接存儲器存取)是釆用一個專門 的硬件電路——DMA控制器(DMAC)來控制內(nèi)存與外設(shè)之間的數(shù)據(jù) 交互。進行DMA傳輸時,DMAC會向CPU申^貪總線控制權(quán);CPU響 應(yīng)該請求,將總線控制一又交給DMAC,并配置DMAlt據(jù)傳輸?shù)南嚓P(guān)信 息;然后DMAC開始工作,通過總線進行數(shù)據(jù)傳輸,在一次數(shù)據(jù)傳輸 結(jié)束后,DMAC向CPU發(fā)出中斷請求,即完成一次DMA傳輸。
目前,在各種視頻解碼芯片、視頻采集卡中常用的視頻數(shù)據(jù)為YUV 數(shù)據(jù)。其中,"Y"表示明亮度(Luminance或Luma),也就是灰階值;而 "U"和"V"(也可用Cr和CB來表示)表示的則是色度(Chrominance 或Chroma),作用是描述影像色彩及飽和度,用于指定像素的顏色。當 YUV數(shù)據(jù)采用平面格式采樣時,每個Y分量,U分量和V分量都會以 獨立的平面組織,也就說是,Y分量,U分量和V分量會分別存放在不 同的矩陣中。
基于上述平面格式的YUV數(shù)據(jù)的特性,現(xiàn)有技術(shù)中,在對這種視 頻數(shù)據(jù)進行DMA傳輸時,會將Y、 U、 V的數(shù)據(jù)分開處理。以下以一 幀視頻圖像的DMA傳輸過程為例具體說明。
假設(shè)該幀圖像為YUV4: 2: 0格式,源地址分別是A, B, C,目標 地址分別為A, , B,和C,,相應(yīng)的DMA傳輸過程為
第一步,CPU配置Y數(shù)據(jù)的源地址A和目標地址A,,傳輸長度L; 配置完成后,由DMAC將長度L的Y數(shù)據(jù)從源地址A傳輸?shù)侥繕说刂?A,, DMAC傳輸結(jié)束后中斷,以通知CPU準備下一次DMA傳輸配置;
第二步,CPU配置U數(shù)據(jù)的源地址B、目標地址B,和傳輸長度L/4;配置完成后,由DMAC將長度L的U數(shù)據(jù)/人源地址B傳輸?shù)侥繕说刂?B, ; DMAC傳輸結(jié)束后中斷,以通知CPU準備下一次DMA傳輸配置;
第三步,CPU配置V數(shù)據(jù)的源地址C、目標地址C,和傳輸長度L/4; 配置完成后,由DMAC將長度L的V數(shù)據(jù)從源地址傳輸?shù)侥繕说刂稢,; 至此, 一幀圖像傳輸結(jié)束。
可見,采用現(xiàn)有技術(shù)對視頻數(shù)據(jù)進行DMA傳輸時,需要由CPU至 少配置三次源地址、目標地址和數(shù)據(jù)長度;由DMAC進行至少三次傳 輸才能完成;并且,由于DMAC每次傳輸后需要通過中斷來通知CPU, 傳輸速度較慢。
因而,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是如 何能夠有效提高視頻數(shù)據(jù)的DMA傳輸速度。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種視頻YUV數(shù)據(jù)的高效DMA 傳輸?shù)姆椒?,能夠提高DMA傳輸?shù)乃俣取?br>
本發(fā)明還提供了 一種視頻YUV數(shù)據(jù)的DMA傳輸裝置及一種DMA 控制器,用以保證上述方法在實際中的實現(xiàn)及應(yīng)用。
為了解決上述技術(shù)問題,本發(fā)明實施例公開了一種視頻YUV數(shù)據(jù) 的DMA傳輸方法,包4舌
配置視頻YUV數(shù)據(jù)的DMA傳輸信息,所述DMA傳輸信息包括 Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的源起始地址信息;Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù) 的目標起始地址信息;YUV數(shù)據(jù)的格式信息和大小信息;
依據(jù)所述YUV數(shù)據(jù)的格式信息和大小信息,分別計算所述Y數(shù)據(jù)、 U數(shù)據(jù)和V數(shù)據(jù)的傳輸長度信息;
DMA控制器分別將相應(yīng)長度的Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù),從其源 起始地址傳輸?shù)狡淠繕似鹗嫉刂?,并在傳輸完所述Y數(shù)據(jù)、U數(shù)據(jù)和V 數(shù)據(jù)后通知CPU。
優(yōu)選的,所述YUV數(shù)據(jù)的格式信息在DMA控制器的格式寄存器 中配置,所述YUV數(shù)據(jù)的大小信息包括圖像長度信息和圖像寬度信息,分別在DMA控制器的圖像長度寄存器和圖像寬度寄存器中配置;或者,
在DMA控制器的圖像大小寄存器中分別配置。
優(yōu)選的,所述DMA控制器位于CPU內(nèi)部或CPU外部。 本發(fā)明實施例還公開了一種視頻YUV H據(jù)的DMA傳輸裝置,包
括
配置模塊,用于配置一見頻YUV數(shù)據(jù)的DMA傳輸信息,所述DMA
傳輸信息包括Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的源起始地址信息;Y數(shù)據(jù)、
U數(shù)據(jù)和V數(shù)據(jù)的目標起始地址信息;YUV數(shù)據(jù)的格式信息和大小信 白
以及,DMA控制器,包括
計算模塊,用于依據(jù)所述YUV數(shù)據(jù)的格式信息和大小信息,分別 計算所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的傳輸長度信息;
DMA傳輸控制模塊,用于分別將相應(yīng)長度的Y數(shù)據(jù)、U數(shù)據(jù)和V 數(shù)據(jù),從其源起始地址傳輸?shù)狡淠繕似鹗嫉刂罚?br>
通知模塊,用于在傳輸完所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)后通知CPU。
優(yōu)選的,所述配置模塊包括
CPU配置子模塊,用于由CPU配置進行DMA傳輸?shù)腨數(shù)據(jù)、U 數(shù)據(jù)和V數(shù)據(jù)的源起始地址信息;Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的目標起始 地址信息;
軟件配置子模塊,用于由軟件配置視頻YUV數(shù)據(jù)的格式信息和大 小信息。
優(yōu)選的,所述YUV數(shù)據(jù)的格式信息在DMA控制器的格式寄存器 中配置,所述YUV數(shù)據(jù)的大小信息包括圖像長度信息和圖像寬度信息, 分別在DMA控制器的圖像長度寄存器和圖像寬度寄存器中配置;或者, 在DMA控制器的圖像大小寄存器中分別配置。
本發(fā)明實施例還公開了一種DMA控制器,包括 格式寄存器,用于接收配置的YUV數(shù)據(jù)的格式信息; 圖像大小寄存器,用于接收配置的YUV數(shù)據(jù)的大小信息;
7源地址寄存器,用于接收配置的Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的源起女 地址;
目標地址寄存器,用于接收配置的Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的目標 起始地址;
計算模塊,用于依據(jù)所述YUV數(shù)據(jù)的格式信息和大小信息,分別 計算所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的傳輸長度信息;
DMA傳輸控制模塊,用于分別將相應(yīng)長度的Y數(shù)據(jù)、U數(shù)據(jù)和V 數(shù)據(jù),從其源起始地址傳輸?shù)狡淠繕似鹗嫉刂罚?br>
通知模塊,用于在傳輸完所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)后通知CPU。
優(yōu)選的,所述格式寄存器和圖像大小寄存器由軟件配置;所述源地 址寄存器和目標地址寄存器由CPU配置。
優(yōu)選的,所述YUV數(shù)據(jù)的大小信息包括圖像長度信息和圖像寬度 信息,所述圖像大小寄存器包括圖像長度寄存器和圖像寬度寄存器,分 別用于接收配置的圖像長度信息和圖像寬度信息。
優(yōu)選的,所述YUV數(shù)據(jù)為平面格式的YUV數(shù)據(jù),所述計算模塊為 乘法器。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點
本發(fā)明通過一次配置YUV數(shù)據(jù),即可使DMA控制器在傳輸完一 幀視頻數(shù)據(jù)后通知CPU,而不需要如現(xiàn)有技術(shù)中,分三次配置YUV數(shù) 據(jù),并通過三次中斷才能完成一幀視頻數(shù)據(jù)的DMA傳輸;因而有效地 提高了視頻數(shù)據(jù)的DMA傳輸速度。
圖1是本發(fā)明的一種視頻YUV數(shù)據(jù)DMA傳輸方法實施例的流程
圖2是本發(fā)明的一種視頻YUV數(shù)據(jù)DMA傳輸裝置實施例的流程
圖3是應(yīng)用圖2所示的實施例對一幀視頻YUV數(shù)據(jù)進行DMA傳輸 的流程圖;圖4是本發(fā)明的一種DMA控制器實施例的結(jié)構(gòu)框圖。
具體實施例方式
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合 附圖和具體實施方式
對本發(fā)明作進一步詳細的說明。
參考圖1,示出了本發(fā)明的一種YUV視頻數(shù)據(jù)DMA傳輸方法實施 例的流程圖,具體可以包括以下步驟
步驟101:配置一見頻YUV數(shù)據(jù)的DMA傳輸信息;
所述DMA傳輸信息可以包括Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的源起始 地址信息;Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的目標起始地址信息;YUV數(shù)據(jù) 的格式信息和大小信息;
步驟102:依據(jù)所述YUV數(shù)據(jù)的格式信息和大小信息,分別計算所 述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的傳輸長度信息;
步驟103: DMA控制器分別將相應(yīng)長度的Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù) 據(jù),從其源起始地址傳輸?shù)狡淠繕似鹗嫉刂?,并在傳輸完所述Y數(shù)據(jù)、 U數(shù)據(jù)和V數(shù)據(jù)后通知CPU。
在本發(fā)明實施例中,所述視頻YUV數(shù)據(jù)主要是指平面格式Y(jié)UV數(shù) 據(jù),此格式較為節(jié)省帶寬,并且適用于采樣(subsample)。平面格式使 用三個數(shù)組(矩陣)分開存放Y、 U、 V三個分量,就像是一個三維平 面一樣。并且,所有U分量必須在Y分量后,所有V分量必須在U分 量后。平面格式包括1420 (4:2:0)、 YV12、 IYUV等多種。
以下以1420格式為例簡單說明YUV數(shù)據(jù)的存儲方式。
1420即指YUV 4:2:0格式。YUV4:2:0并不意味著只有Y,而沒有 U, V;而是指U、 V互相援引,時見時隱,也就是說對于每一個行, 只有一個U分量或者V分量,以2:1的抽樣率存儲。相鄰行存儲不同的 色度分量,即如果一行是4:2:0的話,下一行就是4:0:2,再下一行是4:2:0, 以此類4扭。
對于 一 幀視頻圖像而言,YU V數(shù)據(jù)的大小可由圖像的長度和寬度決 定,如800x600字節(jié);而根據(jù)YUV數(shù)據(jù)的格式,還可獲知Y數(shù)據(jù)、U數(shù)據(jù)、V數(shù)據(jù)各自的地址空間與圖像大小的對應(yīng)關(guān)系。所以,當已知YUV 數(shù)據(jù)的格式信息和大小信息時,則可以計算出Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù) 的地址空間,乂人而獲得Y數(shù)據(jù)、U數(shù)據(jù)和Vft據(jù)進行DMA傳輸時的數(shù) 據(jù)傳輸長度。
例如,已知一幀視頻圖像的大小為800x600字節(jié),格式為YUV4: 2:0,則可以計算出一次DMA傳輸過程中,Y數(shù)據(jù)的傳輸長度為800x600 字節(jié);U數(shù)據(jù)的傳輸長度為400x300字節(jié);V數(shù)據(jù)的傳輸長度為400x300 字節(jié)。
在具體實現(xiàn)中,所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的源起始地址信息和 目標起始地址信息可以由CPU在DMA控制器的地址寄存器中配置;所 述YUV數(shù)據(jù)的格式信息可以通過軟件在DMA控制器的格式寄存器中 配置,所述YUV數(shù)據(jù)的大小信息可以通過軟件分別在DMA控制器的 圖像長度寄存器和圖像寬度寄存器中配置;或者,在DMA控制器的圖 像大小寄存器中分別配置。
例如,可以在DMA控制器中增加一個32位的格式寄存器,用最后 2位來配置YUV數(shù)據(jù)的格式信息,OO表示非YUV格式,Ol表示YUV4: 2: O格式,10表示YUV4: 2: 2格式,ll保留不用。配置大小信息時, 可以依據(jù)圖像的大小由其長度和寬度決定的特點,在DMA控制器中增 加一個16位的圖像長度寄存器和一個16位的圖像寬度寄存器來分別配 置圖像的長度和寬度;也可增加一個32位的圖像大小寄存器,用前16 配置圖像長度,用后16位配置圖像寬度。
DMA是一種完全由硬件執(zhí)行1/0交換的工作方式,在進行DMA傳 輸時,DMA控制器從CPU完全接管對總線的控制,可用于CPU內(nèi)存與 外設(shè)、外部存儲器與CPU內(nèi)存、多個CPU內(nèi)存之間等諸多類型的數(shù)據(jù) 傳輸。 一種通用的DMA傳輸過程為,DMA控制器控制系統(tǒng)總線,發(fā)出 數(shù)據(jù)讀取或?qū)懭氲牡刂?,并在?shù)據(jù)總線上給出數(shù)據(jù),隨后在其R/W(讀 /寫)線上發(fā)出"讀"或"寫"的命令;數(shù)據(jù)沿著數(shù)據(jù)總線傳輸,每傳輸一個 數(shù)據(jù),DMA控制器的地址寄存器加1,從而得到下一個地址,數(shù)據(jù)傳輸
10字節(jié)計數(shù)器則減1。如此循環(huán),直到字節(jié)計數(shù)器的值為0,數(shù)據(jù)傳輸完 畢。此時,DMA控制器將向CPU發(fā)出中斷請求信號,即以中斷方式向 CPU報告?zhèn)鬏敳僮鞯慕Y(jié)束。
為使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明,以下以一幀視頻YUV數(shù)據(jù) 的DMA傳輸過程為例進行說明。
步驟Sl、配置當前幀視頻數(shù)據(jù)的Y數(shù)據(jù)源起始地址為0x00000000, 目標起始地址為0x10000000; U數(shù)據(jù)源起始地址為0x20000000,目標 起始地址為0x30000000; V數(shù)據(jù)源起始地址為0x40000000,目標起始 地址為0x50000000;以及,配置當前幀視頻數(shù)據(jù)的格式為YUV4: 2: 0; 大小為800x600字節(jié);
步驟S2、依據(jù)所述YUV數(shù)據(jù)的格式信息和大小信息,計算獲得所 述Y數(shù)據(jù)的傳輸長度為800x600字節(jié);U數(shù)據(jù)的傳輸長度為400x300字 節(jié);V數(shù)據(jù)的傳輸長度為400x300字節(jié);
步驟S3、 DMA控制器從Y數(shù)據(jù)源起始地址0x00000000到 0x000752FF讀取800x600字節(jié)的Y數(shù)據(jù)到緩存寄存器(buffer);從U數(shù) 據(jù)源起始地址0x20000000到0x2001D4BF讀取400x300字節(jié)的U數(shù)據(jù) 到buffer;從V數(shù)據(jù)源起始地址0x40000000到0x4001D4BF,讀取 400x300字節(jié)的V數(shù)據(jù)到buffer;
步驟S4、分別從Y數(shù)據(jù)目標起始地址0x10000000開始寫入相應(yīng)的 800x600字節(jié)的Y H據(jù),/人U數(shù)據(jù)目標起始地址0x30000000開始寫入 相應(yīng)的400x300字節(jié)的U數(shù)據(jù),以及,從V數(shù)據(jù)目標起始地址0x50000000 開始寫入相應(yīng)的400x300字節(jié)的Vit據(jù);
步驟S5、在傳輸完成后以中斷方式通知CPU。
在實際中,還可以為分次寫入所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù),即從 Y數(shù)據(jù)源起始地址讀取相應(yīng)長度的Y數(shù)據(jù)后,直接將該段數(shù)據(jù)從Y數(shù)據(jù) 目標起始地址寫入;然后從U數(shù)據(jù)源起始地址讀取相應(yīng)長度的U數(shù)據(jù), 將該段數(shù)據(jù)從U數(shù)據(jù)目標起始地址寫入;再從V數(shù)據(jù)源起始地址讀取相 應(yīng)長度的U數(shù)據(jù),將該段數(shù)據(jù)從V數(shù)據(jù)目標起始地址寫入。在本發(fā)明實施例,對DMA的具體讀寫方式并不加以限制。
此外,本領(lǐng)域技術(shù)人員易于想到的是,在圖像大小相同,YUV數(shù)據(jù) 格式相同的情況下,基于本發(fā)明實施例,增加多個Y數(shù)據(jù)、U數(shù)據(jù)和V 數(shù)據(jù)的源地址和目標地址寄存器,并進行相應(yīng)的配置,就可以實現(xiàn)多幀 視頻數(shù)據(jù)的傳輸。
可以看出,本發(fā)明通過一次配置YUV數(shù)據(jù),即可使DMA控制器 在傳輸完一幀視頻數(shù)據(jù)后通知CPU,而不需要如現(xiàn)有技術(shù)中,分三次配 置YUV數(shù)據(jù),并通過三次中斷才能完成一幀3見頻數(shù)據(jù)的DMA傳輸; 因而有效地提高了視頻數(shù)據(jù)的DMA傳輸速度。
在實際中,所述DMA控制器可為位于CPU內(nèi)部的DMA控制器, 也可為芯片中單獨工作的DMA控制器,本發(fā)明對此無需加以限制。
參考圖2,示出了本發(fā)明的一種視頻YUV數(shù)據(jù)的DMA傳輸裝置實 施例的結(jié)構(gòu)框圖,具體可以包括以下模塊
配置模塊201 ,用于配置視頻YUV數(shù)據(jù)的DMA傳輸信息;
其中,所述DMA傳輸信息可以包括Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的 源起始地址信息;Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的目標起始地址信息;YUV 數(shù)據(jù)的格式信息和大小信息;
DMA控制器202,具體可以包括以下才莫塊
計算模塊2021 ,用于依據(jù)所述YUV數(shù)據(jù)的格式信息和大小信息, 分別計算所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的傳輸長度信息;
DMA傳輸控制模塊2022,用于分別將相應(yīng)長度的Y數(shù)據(jù)、U數(shù)據(jù) 和V數(shù)據(jù),從其源起始地址傳輸?shù)狡淠繕似鹗嫉刂罚?br>
通知模塊2023,用于在傳輸完所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)后通 知CPU。
在本發(fā)明的一種優(yōu)選實施例中,所述配置沖莫塊201可以包括以下子 模塊
CPU配置子才莫塊2011,用于由CPU配置進行DMA傳輸?shù)腨數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的源起始地址信息;Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的目標起 始地址信息;
軟件配置子模塊2012,用于由軟件配置視頻YUV數(shù)據(jù)的格式信息 和大小信息。
在具體實現(xiàn)中,所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的源起始地址信息和 目標起始地址信息可以在DMA控制器的地址寄存器中配置;所述YUV 數(shù)據(jù)的格式信息可以在DMA控制器的格式寄存器中配置,所述YUV 數(shù)據(jù)的大小信息可以包括圖像長度信息和圖像寬度信息,可以分別在 DMA控制器的圖像長度寄存器和圖像寬度寄存器中配置;也可以在 DMA控制器的圖像大小寄存器中分別配置。
參考圖3,示出了應(yīng)用圖2所示的實施例對一幀視頻YUV數(shù)據(jù)進行 DMA傳輸?shù)牧鞒虉D,具體可以包括以下步驟
步驟301、 CPU配置子模塊配置所述YUV圖像中Y數(shù)據(jù)、U數(shù)據(jù) 和V數(shù)據(jù)的源起始地址信息和目標起始地址信息;以及,軟件配置子模 塊配置所述YUV圖像的格式信息和大小信息;
步驟302、 DMA控制器中的計算模塊依據(jù)所述YUV數(shù)據(jù)的格式信 息和大小信息,分別計算所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的傳輸長度信息;
步驟303、 DMA傳輸控制模塊分別將相應(yīng)長度的Y數(shù)據(jù)、U數(shù)據(jù) 和V數(shù)據(jù),從其源起始地址傳輸?shù)狡淠繕似鹗嫉刂罚?br>
步驟304、通知模塊在傳輸完所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)后通知 CPU。
對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的 比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
參考圖4,示出了本發(fā)明的一種DMA控制器實施例的結(jié)構(gòu)框圖, 所述DMA控制器用于控制YUV視頻數(shù)據(jù)的DMA傳輸過程,具體可以 包括以下模塊
格式寄存器401,用于接收配置的YUV數(shù)據(jù)的格式信息;圖像大小寄存器402,用于接收配置的YUV數(shù)據(jù)的大小信息; 源地址寄存器403,用于接收配置的Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的源 起始地址;
目標地址寄存器404,用于接收配置的Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的 目標起始i也址;
計算模塊405,用于依據(jù)所述YUV數(shù)據(jù)的格式信息和大小信息,分 別計算所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的傳輸長度信息;
DMA傳輸控制模塊406,用于分別將相應(yīng)長度的Y數(shù)據(jù)、U數(shù)據(jù) 和V數(shù)據(jù),從其源起始地址傳輸?shù)狡淠繕似鹗嫉刂?,并在傳輸完所述Y 數(shù)據(jù)、U數(shù)據(jù)和Vit據(jù)后通知CPU;
通知模塊407,用于在傳輸完所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)后通知 CPU。
在實際中,所述格式寄存器和圖像大小寄存器可以由軟件配置;所 述源地址寄存器和目標地址寄存器可以由CPU配置。
優(yōu)選地,所述YUV數(shù)據(jù)的大小信息包括圖像長度信息和圖像寬度 信息,所述圖像大小寄存器包括圖像長度寄存器和圖像寬度寄存器,分 別用于接收配置的圖像長度信息和圖像寬度信息。
在具體實現(xiàn)中,DMA控制器還可以包括緩存寄存器和數(shù)據(jù)傳輸字 節(jié)計數(shù)器等。這些器件在信息傳輸之前需要進行初始化設(shè)置,即在輸入 輸出程序中用匯編語言指令對各個寄存器寫入初始化控制字。例如,在 DMA傳輸過程中,由DMA控制器控制系統(tǒng)總線,發(fā)出數(shù)據(jù)讀取或?qū)懭?的地址,并在數(shù)據(jù)總線上給出數(shù)據(jù),隨后在其R/W(讀/寫)線上發(fā)出"讀" 或"寫"的命令;數(shù)據(jù)沿著數(shù)據(jù)總線傳輸,每傳輸一個數(shù)據(jù),DMA控制 器的地址寄存器加1,從而得到下一個地址,數(shù)據(jù)傳輸字節(jié)計數(shù)器則減 1。如此循環(huán),直到字節(jié)計數(shù)器的值為O,數(shù)據(jù)傳輸完畢。在數(shù)據(jù)讀寫過 程中,還可以將所讀取的數(shù)據(jù)保存在緩存寄存器,讀取完成后再將緩存 寄存器中的數(shù)據(jù)寫入到目標地址。
作為一種示例,所述計算模塊可以由乘法器實現(xiàn)。通知模塊的功能可由8086系統(tǒng)的HOLD和HLDA引腳來實現(xiàn)。在DMA凄t據(jù)傳輸中, 由DMA控制器發(fā)出一個高電平有效的總線請求信號,通過HOLD引腳 輸入到CPU,請求CPU讓出總線控制權(quán)。HLDA與HOLD配合使用, 在HLDA有效期間,HLDA引腳輸出一個高電平有效的響應(yīng)信號,同時 總線將處于浮空狀態(tài),CPU讓出對總線的控制權(quán),將其交付給申請使用 總線的DMA控制器使用,總線使用完后,會使HOLD信號變?yōu)榈碗娖剑?CPU又重新獲得對總線的控制權(quán)。
本說明書中的各個實施例重點說明的都是與其他實施例的不同之 處,各個實施例之間相同相似的部分互相參見即可。
以上對本發(fā)明所提供的一種一見頻YUV凄t據(jù)的DMA傳輸方法、一 種DMA傳輸裝置及一種DMA控制器進行了詳細介紹,本文中應(yīng)用了 具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只 是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般 技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改 變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1、一種視頻YUV數(shù)據(jù)的DMA傳輸方法,其特征在于,包括配置視頻YUV數(shù)據(jù)的DMA傳輸信息,所述DMA傳輸信息包括Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的源起始地址信息;Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的目標起始地址信息;YUV數(shù)據(jù)的格式信息和大小信息;依據(jù)所述YUV數(shù)據(jù)的格式信息和大小信息,分別計算所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的傳輸長度信息;DMA控制器分別將相應(yīng)長度的Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù),從其源起始地址傳輸?shù)狡淠繕似鹗嫉刂罚⒃趥鬏斖晁鯵數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)后通知CPU。
2、 如權(quán)利要求l所述的方法,其特征在于,所述YUV數(shù)據(jù)的格式信息在DMA控制器的格式寄存器中配置,所述YUV數(shù)據(jù)的大小信息包括圖像長度信息和圖像寬度信息,分別在DMA控制器的圖像長度寄存器和圖像寬度寄存器中配置;或者,在DMA控制器的圖像大小寄存器中分別配置。
3、 如權(quán)利要求l所述的方法,其特征在于,所述DMA控制器位于CPU內(nèi)部或CPU外部。
4、 一種視頻YUV數(shù)據(jù)的DMA傳輸裝置,其特征在于,包括配置模塊,用于配置視頻YUV數(shù)據(jù)的DMA傳輸信息,所述DMA傳輸信息包括Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的源起始地址信息;Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的目標起始地址信息;YUV數(shù)據(jù)的格式信息和大小信自 以及,DMA控制器,包括計算模塊,用于依據(jù)所述YUV數(shù)據(jù)的格式信息和大小信息,分別計算所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的傳輸長度信息;DMA傳輸控制模塊,用于分別將相應(yīng)長度的Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù),從其源起始地址傳輸?shù)狡淠繕似鹗嫉刂?;通知模塊,用于在傳輸完所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)后通知CPU。
5、 如權(quán)利要求4所述的裝置,其特征在于,所述配置模塊包括CPU配置子模塊,用于由CPU配置進行DMA傳輸?shù)腨數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的源起始地址信息;Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的目標起始地址信息;軟件配置子模塊,用于由軟件配置視頻YUV數(shù)據(jù)的格式信息和大小信息。
6、 如權(quán)利要求5所述的裝置,其特征在于,所述YUV數(shù)據(jù)的格式信息在DMA控制器的格式寄存器中配置,所述YUV數(shù)據(jù)的大小信息包括圖像長度信息和圖像寬度信息,分別在DMA控制器的圖像長度寄存器和圖像寬度寄存器中配置;或者,在DMA控制器的圖像大小寄存器中分別配置。
7、 一種DMA控制器,其特征在于,包括格式寄存器,用于接收配置的YUV數(shù)據(jù)的格式信息;圖像大小寄存器,用于接收配置的YUV數(shù)據(jù)的大小信息;源地址寄存器,用于接收配置的Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的源起始地址;目標地址寄存器,用于接收配置的Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的目標起始地址;計算模塊,用于依據(jù)所述YUV數(shù)據(jù)的格式信息和大小信息,分別計算所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的傳輸長度信息;DMA傳輸控制模塊,用于分別將相應(yīng)長度的Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù),從其源起始地址傳輸?shù)狡淠繕似鹗嫉刂?;通知模塊,用于在傳輸完所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)后通知CPU。
8、 如權(quán)利要求7所述的DMA控制器,其特征在于,所述格式寄存器和圖像大小寄存器由軟件配置;所述源地址寄存器和目標地址寄存器由CPU配置。
9、 如權(quán)利要求7所述的DMA控制器,其特征在于,所述YUV數(shù)據(jù)的大小信息包括圖像長度信息和圖像寬度信息,所述圖像大小寄存器包括圖像長度寄存器和圖像寬度寄存器,分別用于接收配置的圖像長度信息和圖像寬度信息。
10、如權(quán)利要求7所述的DMA控制器,其特征在于,所述YUV數(shù)據(jù)為平面格式的YUV數(shù)據(jù),所述計算模塊為乘法器。
全文摘要
本發(fā)明提供了一種視頻YUV數(shù)據(jù)的DMA傳輸方法,包括配置視頻YUV數(shù)據(jù)的DMA傳輸信息,所述DMA傳輸信息包括Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的源起始地址信息;Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的目標起始地址信息;YUV數(shù)據(jù)的格式信息和大小信息;依據(jù)所述YUV數(shù)據(jù)的格式信息和大小信息,分別計算所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)的傳輸長度信息;DMA控制器分別將相應(yīng)長度的Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù),從其源起始地址傳輸?shù)狡淠繕似鹗嫉刂?,并在傳輸完所述Y數(shù)據(jù)、U數(shù)據(jù)和V數(shù)據(jù)后通知CPU。本發(fā)明通過一次配置YUV數(shù)據(jù),即可完成視頻YUV數(shù)據(jù)的DMA傳輸,能夠提高視頻YUV數(shù)據(jù)DMA傳輸?shù)乃俣取?br>
文檔編號H04N7/24GK101552915SQ20091008346
公開日2009年10月7日 申請日期2009年5月5日 優(yōu)先權(quán)日2009年5月5日
發(fā)明者艷 石 申請人:北京紅旗勝利科技發(fā)展有限責任公司