视频yuv数据的dma传输方法、装置及dma控制器的制作方法

文档序号:6618788阅读:235来源:国知局
专利名称:视频yuv数据的dma传输方法、装置及dma控制器的制作方法
技术领域
本发明涉及DMA数据传输控制领域,特别是涉及一种视频YUV数 据的DMA传输方法、装置及一种DMA控制器。
背景技术
DMA ( Direct Memory Access,直接存储器存取)是采用 一个专门 的硬件电路——DMA控制器(DMAC)来控制内存与外设之间的数据 交互。进行DMA传输时,DMAC会向CPU申请总线控制权;CPU响 应该请求,将总线控制权交给DMAC,并配置DMA数据传输的相关信 息;然后DMAC开始工作,通过总线进行数据传输,在一次数据传输 结束后,DMAC向CPU发出中断请求,即完成一次DMA传输。
目前,在各种视频解码芯片、视频采集卡中常用的视频数据为YUV 数据。其中,"Y"表示明亮度(Luminance或Luma),也就是灰阶值;而 "U"和"V"(也可用Cr和CB来表示)表示的则是色度(Chrominance 或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。当 YUV数据采用平面格式采样时,每个Y分量,U分量和V分量都会以 独立的平面组织,也就说是,Y分量,U分量和V分量会分别存放在不 同的矩阵中。
基于上述平面格式的YUV数据的特性,现有技术中,在对这种视 频数据进行DMA传输时,会将Y、 U、 V的数据分开处理。即首先通 过CPU分别配置Y数据、U数据和V数据传输的源地址、目标地址以 及传输长度,然后由DMAC依次、分别传输所述Y数据、U数据和V 数据;并在每次传输后,通过中断来通知CPU。由于视频数据往往占用 比较大的存储空间,再加上每次DMA传输需要进行多次配置和多次中 断才能得以完成,因而传输效率极为低下。
因而,目前需要本领域技术人员迫切解决的一个技术问题就是如 何能够有效提高3见频YUV数据的DMA传输效率。

发明内容
本发明所要解决的技术问题是提供一种视频YUV数据的DMA传 输方法,用以有效提高视频YUV数据的DMA传输效率。
本发明还提供了 一种视频YUV数据的DMA传输装置及一种DMA 控制器,用以保证上述方法在实际中的实现及应用。
为了解决上述技术问题,本发明实施例公开了 一种视频YUV数据 的DMA传输方法,所述DMA传输涉及,分别/人Y数据、U数据和V 数据的源起始地址开始,读取原始存储格式的Y数据、U数据和V数据, 以及,/人目标起始地址写入目标存储才各式的^L频YUV数据的过程;所 述的方法包4舌
配置视频YUV数据中Y数据、U数据和V数据的源起始地址,所 述视频YUV数据的原始存储格式信息、目标存储格式信息和大小信息; 以及,所需写入的目标起始地址;
DMA控制器依据所述目标存储格式信息和大小信息,分别计算所 述Y数据、U数据和V数据的读取次数及数据长度;
从Y数据、U数据和V数据当次读取的源起始地址,读取相应的Y 数据、U数据和V数据;
更新所述Y数据、U数据和V数据源起始地址为下一次读取的Y 数据、U数据和V数据源起始地址;
从所述目标起始地址开始,连续写入所读取的Y数据、U数据和V 数据;
更新所述目标起始地址为下一次写入的目标起始地址; 在完成传输后通知CPU。
优选的,所述原始存储格式信息为连续行的存储格式,所述目标存 储格式为运算数据块的存储格式;所述运算数据块包括N行乘以N列的 子块,其中,所述N为大于或等于1的正整数。
优选的,当所述N为大于1的正整数时,所述当次读取的源起始地 址包括多行子块的源起始地址。优选的,所述的方法还包括
将当次读取的Y数据、U数据和V数据存至DMA内部存储器。 本发明实施例还7>开了一种一见频YUV数据的DMA传输方法,所 述DMA传输涉及,从源起始地址开始读取原始存储格式的视频YUV 数据,以及,分别从Y数据、U数据和V数据的目标起始地址开始,写 入目标存储格式的Y数据、U数据和V数据的过程;所述的方法包括 配置视频YUV数据的源起始地址、原始存储格式信息、目标存储 格式信息和大小信息;以及,所需写入的Y数据、U数据和V数据的目 标起始;也址;
DMA控制器依据所述原始存储格式信息和大小信息,分别计算Y 数据、U数据和V数据的读取次数及数据长度;
从所述一见频YUV数据的源起始地址开始,读取Y数据、U数据或 V数据;
更新所述源起始地址为下一次读取的源起始地址;
分别从所述Y数据、U数据和V数据的目标起始地址,连续写入相 应的Y数据、U数据和V数据;
更新所述Y数据、U数据和V数据的目标起始地址为下一次写入的 Y数据、U数据和V数据的目标起始地址;
在完成传输后通知CPU。
优选的,所述原始存储格式信息为运算数据块的存储格式,所述目 标存储格式为连续行的存储格式;所述运算数据块包括N行乘以N列的 子块,其中,所述N为大于或等于1的正整数。
优选的,所述的方法还包括
将读取的Y数据、U数据或V数据存至DMA内部存储器。 本发明实施例还公开了一种视频YUV数据的DMA传输装置,所 述DMA传输涉及,分别从Y数据、U数据和V数据的源起始地址开始, 读取原始存储格式的Y数据、U数据和V数据,以及,从目标起始地址 写入目标存储格式的视频YUV数据的过程;所述的装置包括第一配置模块,用于配置视频YUV数据中Y数据、U数据和V数 据的源起始地址,所述视频YUV数据的原始存储格式信息、目标存储 格式信息和大小信息;以及,所需写入的目标起始地址;
以及,DMA控制器,包括以下模块
第一计算模块,用于依据所述目标存储格式信息和大小信息,分别 计算Y数据、U数据和V数据的读取次数及数据长度;
第一读取模块,用于从Y数据、U数据和V数据当次读取的源起始 地址,读取相应的Y数据、U数据和V数据;
第一源地址更新模块,用于更新所述Y数据、U数据和V数据源起 始地址为下一次读取的Y数据、U数据和V数据源起始地址;
第一写入模块,用于从所述目标起始地址开始,连续写入所读取的 Y数据、U数据和V数据;
第一 目标地址更新模块,用于更新所述目标起始地址为下一次写入 的目标起始地址;
通知模块,用于在完成传输后通知CPU。
优选的,所述原始存储格式信息为连续行的存储格式,所述目标存 储格式为运算数据块的存储格式;所述运算数据块包括N行乘以N列的 子块,其中,所述N为大于或等于1的正整数;
当所述N为大于1的正整数时,所述当次读取的源起始地址包括多 行子块的源起始地址。
优选的,所述第一配置模块包括
CPU配置子模块,用于由CPU配置所述Y数据、U数据和V数据 的源起始地址,以及,所需写入的目标起始地址;
软件配置子模块,用于由软件配置视频YUV数据的原始存储格式 信息、目标存储格式信息和大小信息。
优选的,所述原始存储格式信息在DMA控制器的原始存储格式寄 存器中配置,所述目标存储格式信息在DMA控制器的目标存储格式寄 存器中配置,所述视频YUV数据的大小信息包括图像长度信息和图像宽度信息,分别在DMA控制器的图像长度寄存器和图像宽度寄存器中 配置;或者,在DMA控制器的图像大小寄存器中分别配置。 优选的,所述DMA控制器还包括
DMA内部存储器,用于保存当次读取的Y数据、U数据和V数据。
本发明实施例还公开了一种视频YUV数据的DMA传输装置,所 述DMA传输涉及,分别从Y数据、U数据和V数据的源起始地址开始, 读取原始存储格式的Y数据、U数据和V数据,以及,从目标起始地址 写入目标存储格式的视频YUV数据的过程;所述的装置包括
第二配置模块,用于配置视频YUV数据的源起始地址、原始存储 格式信息、目标存储格式信息和大小信息;以及,所需写入的Y数据、 U数据和V数据的目标起始地址;
以及,DMA控制器,包括以下模块
第二计算模块,用于依据所述原始存储格式信息和大小信息,分别 计算Y数据、U数据和V数据的读取次数及数据长度;
第二读取模块,用于从所述视频YUV数据的源起始地址开始,读 取Y数据、U数据或V数据;
第二源地址更新模块,用于更新所述源起始地址为下一次读取的源 起始地址;
第二写入模块,用于分别从所述Y数据、U数据和V数据的目标起 始地址,连续写入相应的Y数据、U数据和V数据;
第二目标地址更新模块,用于更新所述Y数据、U数据和V数据的 目标起始地址为下一次写入的Y数据、U数据和V数据的目标起始地址;
通知模块,用于在完成传输后通知CPU。
优选的,所述原始存储格式信息为运算数据块的存储格式,所述目 标存储格式为连续行的存储格式;所述运算数据块包括N行乘以N列的 子块,其中,所述N为大于或等于1的正整数。
优选的,所述DMA控制器还包括
DMA内部存储器,用于保存读取的Y数据、U数据或V数据。本发明实施例还公开了一种DMA控制器,包括 原始存储格式寄存器,用于接收配置的视频YUV数据的原始格式 信息;
目标存储格式寄存器,用于接收配置的视频YUV数据的目标格式 信息;
图像大小寄存器,用于接收配置的视频YUV数据的大小信息; 源地址寄存器,用于接收配置的Y数据、U数据和V数据的源起始 地址;
目标地址寄存器,用于接收配置的目标起始地址;
第一计算模块,用于依据所述目标存储格式信息和大小信息,分别 计算Y数据、U数据和V数据的读取次数及数据长度;
第一读取模块,用于从Y数据、U数据和V数据当次读取的源起始 地址,读取相应的Y数据、U数据和V数据;
第一源地址更新模块,用于更新所述Y数据、U数据和V数据源起 始地址为下一次读取的Y数据、U数据和V数据源起始地址;
第一写入模块,用于从所述目标起始地址开始,连续写入所读取的 Y数据、U数据和V数据;
第一目标地址更新模块,用于更新所述目标起始地址为下一次写入 的目标起始地址;
通知模块,用于在完成传输后通知CPU。
本发明实施例还公开了一种DMA控制器,包括
原始存储格式寄存器,用于接收配置的视频YUV数据的原始格式 信息;
目标存储格式寄存器,用于接收配置的视频YUV数据的目标格式 信息;
图像大小寄存器,用于接收配置的视频YUV数据的大小信息;
源地址寄存器,用于接收配置的源起始地址;
目标地址寄存器,用于接收配置的Y数据、U数据和V数据的目标起始地址;
第二计算模块,用于依据所述原始存储格式信息和大小信息,分别 计算Y数据、U数据和V数据的读取次数及数据长度;
第二读取模块,用于从所述视频YUV数据的源起始地址开始,读 取Y数据、U数据或V数据;
第二源地址更新模块,用于更新所述源起始地址为下一次读取的源 起始地址;
第二写入模块,用于分别从所述Y数据、U数据和V数据的目标起 始地址,连续写入相应的Y数据、U数据和V数据;
第二目标地址更新模块,用于更新所述Y数据、U数据和V数据的 目标起始地址为下一次写入的Y数据、U数据和V数据的目标起始地址;
通知模块,用于在完成传输后通知CPU。
与现有技术相比,本发明具有以下优点
本发明通过在DMA传输中进行视频YUV数据的存储格式转换来 提高DMA的传输效率,并且,在一帧视频数据的传输过程中,CPU只 需要进行一次DMA配置,即可使DMA控制器从源地址读取原始存储 格式的视频YUV数据,并从目标起始地址写入目标存储格式的视频 YUV数据,而且只在传输完数据后通知CPU, CPU资源占用很少、功 耗也很小。


图1是一帧采用连续行数据的存储格式的视频图像数据的示意图2是一帧4x4子块格式的视频图像数据的示意图3是一帧图像中第1个4x4子块的数据存放方式的示意图4本发明的 一种视频YUV数据DMA传输方法实施例1的流程图5本发明的 一种视频YUV数据DMA传输方法实施例2的流程图6是一帧视频数据前200个4x4子块中Y数据的像素结构图7是本发明的一种视频YUV数据的DMA传输装置实施例1的结构框图8是本发明的一种视频YUV数据的DMA传输装置实施例2的结 构框图9是本发明的一种DMA控制器实施例1的结构框图; 图IO是本发明的一种DMA控制器实施例2的结构框图。
具体实施例方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合 附图和具体实施方式
对本发明作进一步详细的说明。
在实际中,平面格式的视频YUV数据一般采用连续行数据或运算 数据块的方式来存储。具体而言,第一种连续行数据的存储格式是指, 分别将Y数据、U数据和V数据存储在一个连续空间中,以行数据的形 式存放。以一帧格式为YUV420、大小为800 (列)x600 (行)像素的 视频图像数据为例,假设Y数据的起始地址为0x00000000, Y数据的大 小为800x600像素,则存储空间为0x00000000-0x000752FF(d479999); U数据的起始地址为0x00075300(d480000),大小为400x300像素,则 存储空间为0x00075300(d480000)-0x000752FF(d599999); V数据的起始 地址为0x000927C0(d600000),大小为400x300 4象素,则存储空间为 0x000927C0(d600000)-0x000AFC7F(0d719999)。
第二种运算数据块的存储格式是指,视频图像数据以运算数据块 (一般的运算单位为4行乘以4列的子块)的形式存放。如图l所示的 一帧格式为YUV420、大小为800 (列)x600 (行)像素的一见频图像的 像素数据,若以4x4子块的形式进行存储,则该帧图像的子块数目为 30000块(可由(800x600) / (4x4)获得),所述子块的示意可以参考 图2。其中,第1个子块包含的像素如图1中的101所示。
各个子块的YUV数据在一段连续空间内存放,如图3所示的第1 个子块的像素,即Y。的数据包括第1个子块中4行4字节的数据,Uo和 Vo的数据分别包括第l个子块中2行2字节的数据。对于一帧图像而言, 则该段连续空间的存放次序为第1个子块的Y数据YQ、 U数据U0、V数据V。,第2个子块的Y数据Y。 U数据Up V数据Vi,......, —
直到第30000个子块的Y数据Y29999、 U数据U29999、 V数据V29999。
通常,在采用DMA控制器来传输这种视频YUV数据时,并不会 改变数据的存储格式,其原因在于,DMA是一种完全由硬件执行I/0交 换的工作方式,在传输时,DMA控制器只用来控制系统总线,发出数 据读取或写入的地址,并在数据总线上给出数据,随后在其R/W(读/ 写)线上发出"读"或"写,,的命令来进行数据总线传输。由于DMA传输 的这种特性,采用现有技术在DMA传输时进行数据的格式转换则极为 复杂。 一般而言,需要先编写多条CPU指令,然后由CPU执行这些指 令,相应地配置DMA控制器,以及,和DMA控制器进行多次总线控 制权的交互,才能完成格式转换的传输操作。由于整个传输过程都需要 CPU不断地执行指令,非常占用CPU资源,CPU功耗也较大,而且DMA 传输的速度也因此受到严重影响。
因而,如何在尽可能地减少CPU资源与功耗的前提下,提高DMA 的传输速度,成为本领域研究的一个重点。然而,本领域技术一般只会 从CPU指令设计精简化、提高总线带宽和增大DMA控制器内部存储容 量的方向来改进,而不去考虑其他方面的可能性。
过在DMA传输中进行视频YUV数据的存储格式转换来提高DMA的传 输效率,并且,在一帧视频数据的传输过程中,CPU只需要进行一次 DMA配置,即可使DMA控制器从源地址读取原始存储格式的视频YUV 数据,并从目标起始地址写入目标存储格式的视频YUV数据,而且只 在传输完数据后通知CPU, CPU资源占用很少、功耗也很小。
参考图4,示出了本发明的一种YUV视频数据DMA传输方法实施 例l的流程图,所述DMA传输涉及,分别从Y数据、U数据和V数据 的源起始地址开始,读取原始存储格式的Y数据、U数据和V数据,以 及,从目标起始地址写入目标存储格式的视频YUV数据的过程;本实施例具体可以包括以下步骤
步骤401、配置^L频YUV数据中Y数据、U数据和V数据的源起 始地址,所述视频YUV数据的原始存储格式信息、目标存储格式信息 和大小信息;以及,所需写入的目标起始地址;
步骤402、 DMA控制器依据所述目标存储格式信息和大小信息,分 别计算所述Y数据、U数据和V数据的读取次数及数据长度;
步骤403、从Y数据、U数据和V数据当次读取的源起始地址,读 取相应的Y数据、U数据和V数据;
步骤404、更新所述Y数据、U数据和V数据源起始地址为下一次 读取的Y数据、U数据和V数据源起始地址;
步骤405、从所述目标起始地址开始,连续写入所读取的Y数据、 U数据和Vl丈据;
步骤406、更新所述目标起始地址为下一次写入的目标起始地址;
步骤407、在完成传输后通知CPU。
在本发明实施例中,所述视频YUV数据主要是指平面格式YUV数 据,此格式较为节省带宽,并且适用于采样(subsample)。平面格式使 用三个数组(矩阵)分开存放Y、 U、 V三个分量,就像是一个三维平 面一样。并且,所有U分量必须在Y分量后,所有V分量必须在U分 量后。平面格式包括1420 (4:2:0)、 YV12、 IYUV等多种。
在具体实现中,由于算法处理更为简单和方便的缘故,运算数据块 存储格式被广泛采用,因而在本实施例中优选的是,所述原始存储格式 信息可以为连续行的存储格式,所述目标存储格式可以为运算数据块的 存储格式,本实施例即可将连续行格式的视频YUV数据,经DMA传 输为运算数据块格式的视频YUV数据。
对于视频数据而言,所述运算数据块可以包括N行乘以N列的子块 (即宏块),其中,所述N可以为大于或等于1的正整数。例如,所述 运算数据块可以为4x4的子块、8x8的子块或16x16的子块。
需要说明的是,当所述N为大于1的正整数时,所述当次读取的源起始地址则可以包括多行子块的源起始地址。也就是说,当所述运算数
据块为4x4的子块、8x8的子块、16x16的子块或其它多行多列的子块 时,所述Y数据、U数据和V数据当次读取的源起始地址,可以作为当 次读取的首行子块的起始地址。可以理解的是,依据原始存储格式(连 续行格式)的视频数据的行长度(即列宽),即可依据当次读取的首行 子块的起始地址,确定当次读取的其它相邻行子块的起始地址。
在本发明实施例中,每个运算数据块可以作为每次读取的数据单 位,因而,Y数据、U数据和V数据的读取次数即可以对应运算数据块 的数目。在这种情况下,每次读取的Y数据、U数据和V数据的数据长 度,即可为一个运算数据块中Y数据、U数据和V数据各自所占用的字 节数。例如,假设当前的运算数据块为4x4的子块,则一次读取的是4 行4字节的Y数据,2行2字节的U数据,以及2行2字节的V数据。
在实际中,可以将当次读取的Y数据、U数据和V数据存至DMA 内部存储器,再将所述Y数据、U数据和V数据一次写入目标地址。
所述DMA内部存储器可以为FIFO(First In First Out)存储器。FIFO 存储器是一个先入先出的双口緩沖器,即第一个进入其内的数据第一个 被移出,其中一个存储器的输入口,另一个口是存储器的输出口。这样, 在读取步骤,数据从源地址传输到DMA控制器内部的FIFO存储器内; 在写入步骤,数据从DMA控制器内部的FIFO存储器传输到目标地址。 既能防止在读取和存储操作时丢失数据,又能将数据集中起来进行读取 和存储,可避免频繁的总线操作,减轻CPU的负担,进而提高数据的传 输速度。
当然,本领域技术人员还可以依据DMA内部存储器的大小相应设 置写入方式,例如,在所述DMA内部存储器容量较小的情况,可以读 取一次Y数据就写一次Y数据,然后读取一次U数据和V数据后,再 写入一次U数据和V数据。上述方式仅仅用作示例,本发明对此无需加 以限制。
需要说明的是,在每次读取和写入操作完成后,都需要将源起始地址更新为下一次读取的源起始地址;以及,将目标起始地址更新为下一 次写入的目标起始地址;以进行下一次传输。
在具体实现中,可以由数据传输计数琴和地址寄存器来完成次数更 新操作,例如,每读取或写入一个数据,地址寄存器加1,从而得到下 一个地址,与此同时,数据传输计数器则减1;如此循环,直到数据传 输计数器的值为0,表示数据传输完毕。此时,DMA控制器将向CPU 发出中断请求信号,即以中断方式向CPU报告传输操作的结束。
为使本领域技术人员更好地理解本发明,以下以一帧一见频YUV数 据的DMA传输过程为例对本实施例进一步说明。
本例的DMA传输涉及,分别从Y数据的源起始地址为0x00000000; U数据的源起始地址为0x00075300和V数据的源起始地址为 0x000927C0开始,读取连续行格式的YUV420数据,以及,从目标起 始地址0xF00000000开始,写入4x4子块的存储4各式的一见频YUV数据; 具体可以通过以下步骤实现
步骤Rl、配置当前帧视频数据的原始存储格式为连续行数据存储格 式,目标存储格式为4x4子块的存储格式,图像大小为800x600像素; Y数据的源起始地址为0x00000000;U数据的源起始地址为0x00075300 和V数据的源起始地址为0x000927C0;以及,所需写入的目标起始地 址为0xF00000000;
在具体实现中,所述Y数据、U数据和V数据的源起始地址,以及, 所述目标起始地址可以在DMA控制器的地址寄存器中配置;所述视频 YUV数据的原始存储格式信息和目标存储格式信息可以通过软件分别 在DMA控制器的原始存储格式寄存器和目标存储格式寄存器中配置, 所述视频YUV数据的大小信息可以通过软件分别在DMA控制器的图 像长度寄存器和图像宽度寄存器中配置;或者,在DMA控制器的图像 大小寄存器中分别配置。
步骤R2、 DMA控制器依据所述视频YUV数据的目标存储格式信息和图像大小信息,进行以下计算
计算Y数据的读取次数为(800x600 ) / ( 4x4 ) =30000次,每次传 输的数据长度为4x4=16字节;
计算U数据的读取次数为(800x600) / (4x4) =30000次,每次传 输的数据长度为2x2=4字节;
计算V数据的读取次数为(800x600) / (4x4) =30000次,每次传 输的数据长度为2x2=4字节。
步骤R3、开始第一次读取操作,DMA控制器分别从Y数据的起始地 址0x00000000、 0x00000320、 0x00000640、 0x00000960,读取4行4字节 数据到内部寄存器(buffer);分别从U数据的起始地址0x00075300、 0x00075490,读取2行2字节数据到buffer;以及,从V数据的起始地址 0x000927C0、 0x00092950,读取2行2字节数据到buffer;
需要说明的是,当次读取的Y数据后三行的起始地址0x00000320 、 0x00000640、 0x00000960; U数据的后一4亍起始地址0x00075490及V数据 的后 一行起始地址0x00092950可由DMA控制器计算获得。
步骤R4、在当次读取完成后,更新所述Y数据、U数据和V数据? 的源起始地址为下一次读取的Y数据、U数据和V数据源起始地址;
在本例中,第n次读取的4行Y数据的源起始地址分别可以采用以 下公式计算
第1行起始地址-0x00000000+int((n-l)/200)x2400+4(n画l); 第2行起始地址岣x00000000+int((n-l)/200)x2400+4(n-l)+800; 第3行起始地址-0x00000000+int((n-l)/200)x2400+4(n-l)+1600; 第4行起始地址-0x00000000+int((n-l)/200)x2400+4(n-l)+2400。 其中,1^1^30000, int ()为取整函数,int(x)表示不超过x的最大 整数。
第n次读取的2行U数据的源起始地址分别可以采用以下公式计

第1行起始地址-0x00075300+int((n-l)/200)x400+2 (n-l);第2行起始地址^x00075300+int((n-l)/200)x400+2 (n-l ) +400。 其中,1Si^30000, int ()为取整函数,int(x)表示不超过x的最大整数。
第n次读取的2行V数据的源起始地址分别可以采用以下公式计

第1行起始地址-0x000927C0+int((n-l)/200)x400+2 (n國l);
第2行起始地址-0x000927C0+int((n-l)/200)x400+2 (n-l) +400。
其中,1Si^30000, int ()为取整函数,int(x)表示不超过x的最大整数。
步骤R5、将buffer内当次读取上述Y数据、U数据和V数据,从 目标起始地址OxFOOOOOOOO开始连续写入;其写入格式及数据可以参考 图3。
步骤R6、在当次写入完成后,更新所述目标起始地址为下一次写入 的目标起始地址;
在本例中,第n次写入的目标起始地址可以采用以下7>式计算 0xF00000000+24 (n画l ) 其中,1^30000。
步骤R7、在传输完成(n=30000)后,以中断方式通知CPU。 在实际中,第n次YUV视频数据传输过程还可以为分次写入所述 Y数据、U数据和V数据,即从Y数据源地址起始地址读取相应的4 行4字节的Y数据后,直接将该数据连续写入所述目标起始地址;更新 所述目标起始地址,从U数据源地址起始地址读取2行2字节的U数据, 将该数据连续写入已更新的目标起始地址;更新所述目标起始地址,从 V数据源地址起始位置读取2行2字节的V数据,将该段数据连续写入 已更新的目标起始地址。在本发明实施例,对DMA的具体读写方式并 不加以限制。
参考图5,示出了本发明的一种YUV视频数据DMA传输方法实施例2的流程图,所述DMA传输涉及,从源起始地址开始读取原始存储 格式的视频YUV数据,以及,分别从Y数据、U数据和V数据的目标 起始地址开始,写入目标存储格式的Y数据、U数据和V数据的过程; 本实施例具体可以包^fe以下步骤
步骤501:配置视频YUV数据的源起始地址、原始存储格式信息、 目标存储格式信息和大小信息;以及,所需写入的Y数据、U数据和V 数据的目标起始地址;
步骤502: DMA控制器依据所述原始存储格式信息和大小信息,分 别计算Y数据、U数据和V数据的读取次数及数据长度;
步骤503:从所述视频YUV数据的源起始地址开始,读取Y数据、 U数据或V数据;
步骤504、更新所述源起始地址为下一次读取的源起始地址;
步骤505、分别从所述Y数据、U数据和V数据的目标起始地址, 连续写入相应的Y数据、U数据和V数据;
步骤506、更新所述Y数据、U数据和V数据的目标起始地址为下 一次写入的Y数据、U数据和V数据的目标起始地址;
步骤507、在完成传输后通知CPU。
本实施例中,所述原始存储格式信息可以为运算数据块的存储格 式,所述目标存储格式可以为连续行的存储格式,本实施例即可将运算 数据块格式的视频YUV数据,经DMA传输为连续行格式的视频YUV 数据。
对于视频数据而言,所述运算数据块可以包括N行乘以N列的子块 (即宏块),其中,所述N可以为大于或等于1的正整数。例如,所述 运算数据块可以为4x4的子块、8x8的子块或16x16的子块。
因为连续行存储格式的数据存放特点是在一段连续空间内依次存 放Y数据、U数据和V数据,Y数据、U数据、V数据中的存储地址也 都是连续的,所以在本实施例的格式转换中,可以分别针对Y数据、U 数据或V数据进行处理。例如,参考图6所示的一帧视频数据前200个4x4子块中Y数据的 像素结构图,可以看出,对于Y数据而言,各个子块包括16个像素数 据,这16个像素数据由4段4字节的数据组成,并且,第N个子块与 第N+l个子块的第M段4字节数据的地址是连续的。具体而言,即第2 个子块的第l段4字节数据,与第l个子块的第l段4字节数据的地址 是顺次衔接的,第3个子块的第l段4字节数据,与第2个子块的第1 段4字节数据的地址是顺次衔接的,以此类推。
需要说明的是,第1个子块的第2段4字节数据,与最后一个子块 的第l段4字节数据的地址也是连续的;第1个子块的第3段4字节数 据,与最后一个子块的第2段4字节数据的地址也是连续的;以此类推。 在这种情况下,对于形成连续行格式而言,第1个子块的第2段4字节 数据的起始地址则可以作为下一行数据的起始地址;即第l个子块的第 M段4字节数据的起始地址,可以作为第M行数据的起始地址。
基于上述描述可以得知,每次读取的是一段4字节的数据,即对于 一帧800x600的一见频数据而言,Y数据的读取次数为(800x600 ) /4=120000次。相应地,对于U数据、V数据的读取次数及数据长度的 计算也可采用以上原理获得,以YUV420格式为例,U数据、V数据的 读取次数为(400x300) /2=60000次,每次读取的数据长度为2字节。
在实际中,可以将多次读取的Y数据、U数据或V凝:据存至DMA 内部存储器,再将所述内部存储器中的Y数据、U数据或V数据写入相 应的目才示;也址。
当然,本领域技术人员还可以依据DMA内部存储器的大小相应设 置写入方式,例如,在所述DMA内部存储器容量较小的情况,可以读 取一次Y数据就写一次Y数据,然后在读取下一次Y数据后,再写入 一次Y数据。上述方式仅仅用作示例,本发明对此无需加以限制。
需要说明的是,在每次读取和写入完成后,都需要将源起始地址更 新为下一次读取的源起始地址;以及,将Y数据、U数据和V数据的目 标起始地址更新为下一次写入的Y数据、U数据和V数据的目标起始地址;以进行下一次传输。
在具体实现中,可以由数据传输计数器和地址寄存器来完成次数更 新操作,例如,每读取或写入一个数据,地址寄存器加1,从而得到下 一个地址,与此同时,数据传输计数器则减1;如此循环,直到数据传 输计数器的值为0,表示数据传输完毕。此时,DMA控制器将向CPU 发出中断请求信号,即以中断方式向CPU报告传输操作的结束。
为使本领域技术人员更好地理解本发明,以下以一帧-现频YUV数据 的DMA传输过程为例对本实施例进一步说明。
本例的DMA传输涉及,从源起始地址0xF00000000开始,读取4x4 子块格式的YUV420数据,以及,从Y数据的源起始地址0x00000000; U数据的源起始地址0x00075300和V数据的源起始地址0x000927C0 开始,分别写入连续行格式的Y数据、U数据和V数据;具体可以通过 以下步骤实现
步骤Sl 、配置当前帧视频数据的原始存储格式为4x4子块的存储格 式,目标存储格式为连续行数据的存储格式,图像大小为800x600像素; 当前帧数据的源起始地址为0xF00000000;以及,所需写入的Y数据的 目标起始地址为0x00000000; U数据的目标起始地址为0x00075300; V 数据的目标起始地址为0x000927C0;
在具体实现中,所述源起始地址,以及,所述Y数据、U数据和V 数据的目标起始地址可以在DMA控制器的地址寄存器中配置;所述视 频YUV数据的原始存储格式信息和目标存储格式信息可以通过软件分 别在DMA控制器的原始存储格式寄存器和目标存储格式寄存器中配 置,所述视频YUV数据的大小信息可以通过软件分别在DMA控制器 的图像长度寄存器和图像宽度寄存器中配置;或者,在DMA控制器的 图像大小寄存器中分别配置。
步骤S2、 DMA控制器依据所述视频YUV数据的原始存储格式信 息和图像大小信息,进行以下计算计算Y数据的读取次数为(800x600 )/4=120000次,每次传输的数 据长度为4字节;
计算U数据的读取次数为(400x300) /2=60000次,每次传输的数 据长度为2字节;
计算V数据的读取次数为(400x300) /2-60000次,每次传输的数 据长度为2字节。
步骤S3、开始第一次读取操作,DMA控制器从当前帧视频YUV数据 源起始地址0xF00000000开始,读取第1个子块的第1段4字节的Y数据到 buffer;或者,读取第l个子块的第l段2字节的U数据或V数据到buffer;
步骤S4、在当次Y^t据、U数据或V数据读取完成后,更新所述 源起始地址为下 一 次读取的源起始地址;
例如,对于步骤S3读取的Y数据而言,下一次读取的源起始地址 即为第2个子块的第l段4字节数据的起始地址;对于步骤S3读取的U 数据或V数据而言,下一次读取的源起始地址即为第2个子块的第l段 2字节数据的起始地址。
在本例中,第n次读取的Y数据的源起始地址可以采用以下z^式计

0xF00000000+int((n國l)/800)x24x200+int((n画l)/200)x4+24 ((n-l)%200);
其中,1^1^120000, int()为取整函数,int(x)表示不超过x的最大 整数,(x°/。y)代表x对y取余。
第n次读取的U数据的源起始地址可以采用以下公式计算 0xF00000010+int((n-l)/400)x24x200+int((n曙l)/200)x2+24 ((n-l)o/o200);
其中,1^1^60000, int ()为取整函数,int(x)表示不超过x的最大 整数,(x%y)代表x对y取余;
第n次读取的V数据的源起始地址可以采用以下公式计算 OxF00000014+int((n-1 )/400)x24x200+int((n-1 )/200)x2+24
25((n-l)%200 );
其中,1SnS60000, int ()为取整函数,int(x)表示不超过x的最大 整数,(x%y)代表x对y取余。
步骤S5、将读到buffer内的Y数据,从Y数据的目标起始地址 0x00000000开始连续写入;将读到buffer内的U数据,从U数据的目 标起始地址0x00075300开始连续写入;将读到buffer内的V数据,从 V数据的目标起始地址为0x000927C0开始连续写入;
所述buffer内的数据可以为当次读取的数据,也可以为多次读取的 数据。
步骤S6、在Y数据写入完成(n=120000 )、 U数据写入完成 (n=60000)、 V数据写入完成(n=60000)后,以中断方式通知CPU。
需要说明的是,在本发明实施例中,对于先读Y数据、U数据还是 V数据并不作限制,本领域技术人员根据实际情况处理即可。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列 的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动 作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时 进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均 属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
参考图7,示出了本发明的一种视频YUV数据的DMA传输装置实 施例l的结构框图,所述DMA传输涉及,分别从Y数据、U数据和V 数据的源起始地址开始,读取原始存储格式的Y数据、U数据和V数据, 以及,从目标起始地址写入目标存储格式的视频YUV数据的过程;本 实施例具体可以包括以下模块
第一配置模块701,用于配置视频YUV数据中Y数据、U数据和V 数据的源起始地址,所述视频YUV数据的原始存储格式信息、目标存 储格式信息和大小信息;以及,所需写入的目标起始地址;
以及,DMA控制器72,具体可以包括以下模块第一计算模块721,用于依据所述目标存储格式信息和大小信息, 分别计算Y数据、U数据和V数据的读取次数及数据长度;
第一读取模块722,用于从Y数据、U数据和V数据当次读取的源 起始地址,读取相应的Y数据、U数据和V数据;
第一源地址更新模块723,用于更新所述Y数据、U数据和V数据 源起始地址为下一次读取的Y数据、U数据和V数据源起始地址;
第一写入模块724,用于从所述目标起始地址开始,连续写入所读 取的Y数据、U数据和V数据;
第一目标地址更新模块725,用于更新所述目标起始地址为下一次 写入的目标起始地址;
通知才莫块726,用于在完成传输后通知CPU。
其中,所述原始存储格式信息可以为连续行的存储格式,所述目标 存储格式可以为运算数据块的存储格式。所述运算数据块可以包括N行 乘以N列的子块,其中,所述N为大于或等于1的正整凄t;当所述N 为大于1的正整数时,所述当次读取的源起始地址包括多行子块的源起 始地址。
在本实施例中,优选的是,所述DMA控制器72还可以包括 DMA内部存储器,用于保存当次读取的Y数据、U数据和V数据。 在本发明的一种优选实施例中,所述第一配置模块701可以包括以 下子模块
CPU配置子模块,用于由CPU配置Y数据、U数据和V数据的源 起始地址,以及,所需写入的目标起始地址;
软件配置子模块,用于由软件配置视频YUV数据的原始存储格式 信息、目标存储格式信息和大小信息。
在具体实现中,所述Y数据、U数据和V数据的源起始地址和目标 起始地址可以在DMA控制器的地址寄存器中配置;所述^f见频YUV数 据的原始存储格式信息可以在DMA控制器的原始存储格式寄存器中配 置,所述视频YUV数据的目标存储格式信息可以在DMA控制器的目
27标存储格式寄存器中配置,所述视频YUV数据的大小信息可以包括图 像长度信息和图像宽度信息,可以分别在DMA控制器的图像长度寄存 器和图像宽度寄存器中配置;也可以在DMA控制器的图像大小寄存器 中分别配置。
对于图7所示的装置实施例而言,由于其与图4所示的方法实施例 基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明 即可。
参考图8,示出了本发明的一种视频YUV数据的DMA传输装置实 施例2的结构框图,所述DMA传输涉及,分别/人Y数据、U数据和V 数据的源起始地址开始,读取原始存储格式的Y数据、U数据和V数据, 以及,从目标起始地址写入目标存储格式的一见频YUV数据的过程;本 实施例具体可以包括以下才莫块
第二配置模块801,用于配置视频YUV数据的源起始地址、原始存 储格式信息、目标存储格式信息和大小信息;以及,所需写入的Y数据、 U数据和V数据的目标起始地址;
以及,DMA控制器82,具体可以包括以下模块
第二计算模块821,用于依据所述原始存储格式信息和大小信息, 分别计算Y数据、U数据和V数据的读取次数及数据长度;
第二读取模块822,用于从所述视频YUV数据的源起始地址开始, 读取Y数据、U数据或V数据;
第二源地址更新模块823,用于更新所述源起始地址为下一次读取 的源起始地址;
第二写入模块824,用于分别从所述Y数据、U数据和V数据的目 标起始地址,连续写入相应的Y数据、U数据和V数据;
第二目标地址更新模块825,用于更新所述Y数据、U数据和V数 据的目标起始地址为下一次写入的Y数据、U数据和V数据的目标起始 地址;通知才莫块826,用于在完成传输后通知CPU。
其中,所述原始存储格式信息可以为运算数据块的存储格式,所述 目标存储格式可以为连续行的存储格式。所述运算数据块可以包括N行 乘以N列的子块,其中,所述N为大于或等于1的正整数。
在本实施例中,优选的是,所述DMA控制器82还可以包括 DMA内部存储器,用于保存读取的Y数据、U数据或V数据。 在本发明的一种优选实施例中,所述第二配置模块801可以包括以 下子模块
CPU配置子模块,用于由CPU配置视频YUV数据的源起始地址, 以及,所需写入的Y数据、U数据和V数据的目标起始地址;
软件配置子模块,用于由软件配置视频YUV数据的原始存储格式 信息、目标存储格式信息和大小信息。
在具体实现中,所述Y数据、U数据和V数据的源起始地址和目标 起始地址可以在DMA控制器的地址寄存器中配置;所述视频YUV数 据的原始存储格式信息可以在DMA控制器的原始存储格式寄存器中配 置,所述视频YUV数据的目标存储格式信息可以在DMA控制器的目 标存储格式寄存器中配置,所述视频YUV数据的大小信息可以包括图 像长度信息和图像宽度信息,可以分别在DMA控制器的图像长度寄存 器和图像宽度寄存器中配置;也可以在DMA控制器的图像大小寄存器 中分别配置。
对于图8所示的装置实施例而言,由于其与图5所示的方法实施例 基本相似,所以描述的比较筒单,相关之处参见方法实施例的部分说明 即可。
参考图9,示出了本发明的一种DMA控制器实施例的结构框图, 所述DMA控制器用于控制YUV视频数据的DMA传输过程,具体可以 包括以下模块
原始存储格式寄存器901,用于接收配置的视频YUV数据的原始格式信息;
目标存储格式寄存器卯2,用于接收配置的视频YUV数据的目标格 式信息;
图像大小寄存器903,用于接收配置的视频YUV数据的大小信息; 源地址寄存器904,用于接收配置的Y数据、U数据和V数据的源 起始地址;
目标地址寄存器卯5,用于接收配置的目标起始地址;
第一计算模块906,用于依据所述目标存储格式信息和大小信息, 分别计算Y数据、U数据和V数据的读取次数及数据长度;
第一读取模块907,用于从Y数据、U数据和V数据当次读取的源 起始地址,读取相应的Y数据、U数据和V数据;
第一源地址更新模块卯8,用于更新所述Y数据、U数据和V数据 源起始地址为下一次读取的Y数据、U数据和V数据源起始地址;
第一写入模块909,用于从所述目标起始地址开始,连续写入所读 取的Y数据、U数据和V数据;
第一目标地址更新模块910,用于更新所述目标起始地址为下一次 写入的目标起始地址;
通知模块911,用于在完成传输后通知CPU。
在实际中,所述原始存储格式寄存器、目标存储格式寄存器和图像 大小寄存器可以由软件配置;所述源地址寄存器和目标地址寄存器可以 由CPU配置。
优选地,所述YUV数据的大小信息包括图像长度信息和图像宽度 信息,所述图像大小寄存器包括图像长度寄存器和图像宽度寄存器,分 别用于接收配置的图像长度信息和图像宽度信息。
在具体实现中,DMA控制器还可以包括内部寄存器和数据传输字 节计数器等。这些器件在信息传输之前需要进行初始化设置,即在输入 输出程序中用汇编语言指令对各个寄存器写入初始化控制字。例如,在 DMA传输过程中,由DMA控制器控制系统总线,发出数据读取或写入的地址,并在数据总线上给出数据,随后在其R/W(读/写)线上发出"读" 或"写"的命令;数据沿着数据总线传输,每传输一个数据,DMA控制 器的地址寄存器加1,从而得到下一个地址,数据传输字节计数器则减 1。如此循环,直到字节计数器的值为O,数据传输完毕。在数椐读写过 程中,还可以将所读取的数据保存在内部寄存器,读取完成后再将内部 寄存器中的数据写入到目标地址。
参考图10,示出了本发明的一种DMA控制器实施例的结构框图, 所述DMA控制器用于控制YUV视频数据的DMA传输过程,具体可以 包括以下模块
原始存储格式寄存器1001,用于接收配置的视频YUV数据的原始 格式信息;
目标存储格式寄存器1002,用于接收配置的视频YUV数据的目标 格式信息;
图像大小寄存器1003 ,用于接收配置的视频YUV数据的大小信息; 源地址寄存器1004,用于接收配置的源起始地址; 目标地址寄存器1005,用于接收配置的Y数据、U数据和V数据 的目标起始地址;
第二计算模块1006,用于依据所述原始存储格式信息和大小信息, 分别计算Y数据、U数据和V数据的读取次数及数据长度;
第二读取模块1007,用于从所述视频YUV数据的源起始地址开始, 读取Y数据、U数据或V数据;
第二源地址更新模块1008,用于更新所述源起始地址为下一次读取 的源起始地址;
第二写入模块1009,用于分别从所述Y数据、U数据和V数据的 目标起始地址,连续写入相应的Y数据、U数据和V数据;
第二目标地址更新模块1010,用于更新所述Y数据、U数据和V 数据的目标起始地址为下一次写入的Y数据、U数据和V数据的目标起始地址;
通知模块1011,用于在完成传输后通知CPU。
本说明书中的各个实施例重点说明的都是与其他实施例的不同之 处,各个实施例之间相同相似的部分互相参见即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系 术语仅仅用来将一个实体或者操作与另 一个实体或操作区分开来,而不 一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者 顺序。而且,术语"包括"、"包含"或者其任何其他变体意在涵盖非排他 性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅 包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为 这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况 下,由语句"包括一个......"限定的要素,并不排除在包括所述要素的过
程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种视频YUV数据的DMA传输方法、一 种DMA传输装置及一种DMA控制器进行了详细介绍,本文中应用了 具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只 是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般 技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改 变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1、一种视频YUV数据的DMA传输方法,其特征在于,所述DMA传输涉及,分别从Y数据、U数据和V数据的源起始地址开始,读取原始存储格式的Y数据、U数据和V数据,以及,从目标起始地址写入目标存储格式的视频YUV数据的过程;所述的方法包括配置视频YUV数据中Y数据、U数据和V数据的源起始地址,所述视频YUV数据的原始存储格式信息、目标存储格式信息和大小信息;以及,所需写入的目标起始地址;DMA控制器依据所述目标存储格式信息和大小信息,分别计算所述Y数据、U数据和V数据的读取次数及数据长度;从Y数据、U数据和V数据当次读取的源起始地址,读取相应的Y数据、U数据和V数据;更新所述Y数据、U数据和V数据源起始地址为下一次读取的Y数据、U数据和V数据源起始地址;从所述目标起始地址开始,连续写入所读取的Y数据、U数据和V数据;更新所述目标起始地址为下一次写入的目标起始地址;在完成传输后通知CPU。
2、 如权利要求1所述的方法,其特征在于,所述原始存储格式信 息为连续行的存储格式,所述目标存储格式为运算数据块的存储格式; 所述运算数据块包括N行乘以N列的子块,其中,所述N为大于或等 于1的正整数。
3、 如权利要求2所述的方法,其特征在于,当所述N为大于1的 正整数时,所述当次读取的源起始地址包括多行子块的源起始地址。
4、 如权利要求l、 2或3所述的方法,其特征在于,还包括 将当次读取的Y数据、U数据和V数据存至DMA内部存储器。
5、 一种视频YUV数据的DMA传输方法,其特征在于,所述DMA 传输涉及,从源起始地址开始读取原始存储格式的视频YUV数据,以及,分别从Y数据、U数据和V数据的目标起始地址开始,写入目标存 储格式的Y数据、U数据和V数据的过程;所述的方法包括配置视频YUV数据的源起始地址、原始存储格式信息、目标存储 格式信息和大小信息;以及,所需写入的Y数据、U数据和V数据的目 标起始地址;DMA控制器依据所述原始存储格式信息和大小信息,分别计算Y 数据、U数据和V数据的读取次数及数据长度;从所述视频YUV数据的源起始地址开始,读取Y数据、U数据或 V数据;更新所述源起始地址为下一次读取的源起始地址;分别从所述Y数据、U数据和V数据的目标起始地址,连续写入相 应的Y数据、U数据和V数据;更新所述Y数据、U数据和V数据的目标起始地址为下一次写入的 Y数据、U数据和V数据的目标起始地址;在完成传输后通知CPU。
6、 如权利要求5所述的方法,其特征在于,所述原始存储格式信 息为运算数据块的存储格式,所述目标存储格式为连续行的存储格式; 所述运算数据块包括N行乘以N列的子块,其中,所述N为大于或等 于1的正整数。
7、 如权利要求5或6所述的方法,其特征在于,还包括 将读取的Y数据、U数椐或V数据存至DMA内部存储器。
8、 一种视频YUV数据的DMA传输装置,其特征在于,所述DMA 传输涉及,分别从Y数据、U数据和V数据的源起始地址开始,读取原 始存储格式的Y数据、U数据和V数据,以及,从目标起始地址写入目 标存储格式的视频YUV数据的过程;所述的装置包括第一配置模块,用于配置视频YUV数据中Y数据、U数据和V数 据的源起始地址,所述视频YUV数据的原始存储格式信息、目标存储格式信息和大小信息;以及,所需写入的目标起始地址; 以及,DMA控制器,包括以下模块第一计算模块,用于依据所述目标存储格式信息和大小信息,分别 计算Y数据、U数据和V数据的读取次数及数据长度;第一读取模块,用于从Y数据、U数据和V数据当次读取的源起始 地址,读取相应的Y数据、U数据和V数据;第一源地址更新模块,用于更新所述Y数据、U数据和V数据源起 始地址为下一次读取的Y数据、U数据和V数据源起始地址;第一写入模块,用于从所述目标起始地址开始,连续写入所读取的 Y数据、Ult据和V数据;第一 目标地址更新模块,用于更新所述目标起始地址为下一次写入 的目标起始地址;通知模块,用于在完成传输后通知CPU。
9、 如权利要求8所述的装置,其特征在于,所述原始存储格式信 息为连续行的存储格式,所述目标存储格式为运算数据块的存储格式; 所述运算数据块包括N行乘以N列的子块,其中,所述N为大于或等 于1的正整数;当所述N为大于1的正整数时,所述当次读取的源起始地址包括多 行子块的源起始地址。
10、 如权利要求8所述的装置,其特征在于,所述第一配置模块包括CPU配置子模块,用于由CPU配置所述Y数据、U数据和V数据 的源起始地址,以及,所需写入的目标起始地址;软件配置子模块,用于由软件配置视频YUV数据的原始存储格式 信息、目标存储格式信息和大小信息。
11、 如权利要求10所述的装置,其特征在于,所述原始存储格式 信息在DMA控制器的原始存储格式寄存器中配置,所述目标存储格式 信息在DMA控制器的目标存储格式寄存器中配置,所述视频YUV数据的大小信息包括图像长度信息和图像宽度信息,分别在DMA控制器 的图像长度寄存器和图像宽度寄存器中配置;或者,在DMA控制器的 图像大小寄存器中分别配置。
12、 如权利要求8所述的装置,其特征在于,所述DMA控制器还 包括DMA内部存储器,用于保存当次读取的Y数据、U数据和V数据。
13、 一种视频YUV数据的DMA传输装置,其特征在于,所述DMA 传输涉及,分别从Y数据、U数据和V数据的源起始地址开始,读取原 始存储格式的Y数据、U数据和V数据,以及,/人目标起始地址写入目 标存储格式的视频YUV数据的过程;所述的装置包括第二配置模块,用于配置视频YUV数据的源起始地址、原始存储 格式信息、目标存储格式信息和大小信息;以及,所需写入的Y数据、 U数据和V数据的目标起始地址;以及,DMA控制器,包括以下模块第二计算模块,用于依据所述原始存储格式信息和大小信息,分别 计算Y数据、U数据和V数据的读取次数及数据长度;第二读取模块,用于从所述视频YUV数据的源起始地址开始,读 取Y数据、U数据或V数据;第二源地址更新模块,用于更新所述源起始地址为下一次读取的源 起始地址;第二写入模块,用于分别从所述Y数据、U数据和V数据的目标起 始地址,连续写入相应的Y数据、U数据和V数据;第二目标地址更新模块,用于更新所述Y数据、U数据和V数据的 目标起始地址为下一次写入的Y数据、U数据和V数据的目标起始地址;通知模块,用于在完成传输后通知CPU。
14、 如权利要求13所述的装置,其特征在于,所述原始存储格式 信息为运算数据块的存储格式,所述目标存储格式为连续行的存储格式;所述运算数据块包括N行乘以N列的子块,其中,所述N为大于 或等于1的正整数。
15、 如权利要求13所述的装置,其特征在于,所述DMA控制器还 包括DMA内部存储器,用于保存读取的Y数据、U数据或V数据。
16、 一种DMA控制器,其特征在于,包括原始存储格式寄存器,用于接收配置的视频YUV数据的原始格式 信息;目标存储格式寄存器,用于接收配置的视频YUV数据的目标格式 信息;图像大小寄存器,用于接收配置的视频YUV数据的大小信息; 源地址寄存器,用于接收配置的Y数据、U数据和V数据的源起始 地址;目标地址寄存器,用于接收配置的目标起始地址;第一计算模块,用于依据所述目标存储格式信息和大小信息,分别 计算Y数据、U数据和V数据的读取次数及数据长度;第一读取模块,用于从Y数据、U数据和V数据当次读取的源起始 地址,读取相应的Y数据、U数据和V数据;第一源地址更新模块,用于更新所述Y数据、U数据和V数据源起 始地址为下一次读取的Y数据、U数据和V数据源起始地址;第一写入模块,用于从所述目标起始地址开始,连续写入所读取的 Y数据、U数据和V数据;第 一 目标地址更新模块,用于更新所述目标起始地址为下 一 次写入 的目标起始地址;通知模块,用于在完成传输后通知CPU。
17、 一种DMA控制器,其特征在于,包括原始存储格式寄存器,用于接收配置的视频YUV数据的原始格式 信息;目标存储格式寄存器,用于接收配置的视频YUV数据的目标格式 信息;图像大小寄存器,用于接收配置的视频YUV数据的大小信息; 源地址寄存器,用于接收配置的源起始地址; 目标地址寄存器,用于接收配置的Y数据、U数据和V数据的目标 起始地址;第二计算模块,用于依据所述原始存储格式信息和大小信息,分别 计算Y数据、U数据和V数据的读取次数及数据长度;第二读取模块,用于从所述视频YUV数据的源起始地址开始,读 取Y数据、U数据或V数据;第二源地址更新模块,用于更新所述源起始地址为下一次读取的源 起始地址;第二写入模块,用于分别从所述Y数据、U数据和V数据的目标起 始地址,连续写入相应的Y数据、U数据和V数据;第二目标地址更新模块,用于更新所述Y数据、U数据和V数据的 目标起始地址为下一次写入的Y数据、U数据和V数据的目标起始地址;通知模块,用于在完成传输后通知CPU。
全文摘要
本发明提供了一种视频YUV数据的DMA传输方法,包括配置视频YUV数据中Y数据、U数据和V数据的源起始地址,所述视频YUV数据的原始存储格式信息、目标存储格式信息和大小信息;以及,所需写入的目标起始地址;DMA控制器分别计算所述Y数据、U数据和V数据的读取次数及数据长度;从当次读取的源起始地址,读取相应的Y数据、U数据和V数据;更新所述Y数据、U数据和V数据源起始地址为下一次读取的Y数据、U数据和V数据源起始地址;从目标起始地址开始,连续写入所读取的Y数据、U数据和V数据;更新所述目标起始地址为下一次写入的目标起始地址;在完成传输后通知CPU。本发明能够提高视频YUV数据的DMA传输效率。
文档编号G06F13/28GK101552916SQ20091008346
公开日2009年10月7日 申请日期2009年5月5日 优先权日2009年5月5日
发明者艳 石 申请人:北京红旗胜利科技发展有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1