CN102111615B - 直接存储器存取搬移实现视频滤波的方法及系统 - Google Patents
直接存储器存取搬移实现视频滤波的方法及系统 Download PDFInfo
- Publication number
- CN102111615B CN102111615B CN 200910261736 CN200910261736A CN102111615B CN 102111615 B CN102111615 B CN 102111615B CN 200910261736 CN200910261736 CN 200910261736 CN 200910261736 A CN200910261736 A CN 200910261736A CN 102111615 B CN102111615 B CN 102111615B
- Authority
- CN
- China
- Prior art keywords
- data
- macro
- cyclic buffer
- block line
- dma
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种DMA搬移实现视频滤波的方法,包括:在片内存储器中开辟两个循环缓冲区;DMA把需要进行运动补偿的宏块行数据放入第一个循环缓冲区,重建后的数据由DMA放入第二个循环缓冲区中,进行实时环路滤波的处理,处理完成后的数据写到片外存储器中。本发明还同时公开了一种DMA搬移进行视频滤波的系统,采用本发明的方法和系统,能有效的减少DMA的搬移次数和搬移的数据量,从而大幅度的提高了处理器中实现视频编解码器的性能。
Description
技术领域
本发明涉及视频信息技术,特别是指一种直接存储器存取(DMA)搬移实现视频滤波的方法及系统。
背景技术
随着用户对视频图像质量要求的提高,更大尺寸、更高分辨率成为了一个发展方向。在现存的主流芯片处理器中,如:数字信号处理(DSP)、现场可编程门阵列(FPGA)以及专用集成电路(ASIC)等,其片内存储器的空间都是有限的,在处理高密集度的数据时,如高清视频图像,由于数据量非常大,因此,必须使用到片外存储器。而片内存储器和片外存储器的存取速度差别是相当大的,片外存储器的存取速度相对比较缓慢,所以,当处理器直接访问片外存储器时,就会造成数据读写缺失,而且处理效率较为低下。
为了降低数据读写缺失,一种常用的技术就是使用DMA在后台传输数据。在现有的处理器中,DMA是不可或缺的部件。DMA的传输数据过程是指:当处理器对其中一块内存空间的数据进行处理时,DMA部件将下一次处理器需要处理的数据拷贝到另一块内存中,这里,将下一次处理器需要处理的数据拷贝到另一块内存中的操作也称为DMA搬移。由于DMA的后台运行特性,使得DMA搬移的时间隐匿于处理器当前处理的过程中。这样,处理器在处理另一块内存的数据时,就可以直接从片内存储器得到所需处理的数据,最终降低数据读写缺失的时间。
然而,在一些情况下,两次相邻的DMA搬移之间的数据是相关联的,并且,用DMA在处理器片内与片外存储器之间搬移的数据量非常大。图1为现有技术的DMA乒乓处理方式示意图,其具体工作方式为:在常规的DMA处理方式中有两个缓冲区,缓冲区A和缓冲区B,DMA传递其中一块缓冲区数据时,比如缓冲区A,另一块缓冲区B则接收来自外部存储器或者CPU的下一组数据,如此,这两个缓冲区之间就实现了类似打乒乓球的乒乓工作模式。采用乒乓处理模式时,对于重建图像的环路滤波,需要从片外存储器搬取整帧的数据进行处理,因此,DMA搬移的数据量就会大量增加。
举个例子来说,在高清H.264编解码算法中,环路滤波的数据上下宏块行之间都存在着数据的相关性。图2和图3为H.264标准中宏块4×4块边界和边界点示意图,其中,图3中p0、p1、p2和p3表示一个宏块的四个子块,q0、q1、q2和q3表示另一个宏块的四个子块。H.264编解码算法中的环路滤波包括水平边界的滤波和垂直边界的滤波,数据访问包含垂直的列数据访问和水平的行数据访问,因此边界点a必须要在相邻的子块,包括:水平子块p0和q0与垂直子块p0和q0的滤波处理完成后才能进行滤波处理;边界e也存在类似的问题,所以,从图2中可以看出,当前4×4块的边界a和边界e必须在其相邻块滤波完成后才可以进行处理,数据的相关性比较强。
在H.264/AVC标准规定,先对垂直边界进行滤波,然后再对水平边界进行滤波,如果采用图1所描述的常规的DMA乒乓处理方式和常规的视频算法处理流程,将会带来冗余数据搬移和DMA数据带宽的浪费。特别是,在DSP的多核高清视频编解码算法中,数据量特别巨大,DMA的搬移延时严重制约了高清视频编解码的性能。
同时,滤波是视频编码和图像处理领域的一种常用操作,根据功能的不同可以对输入的视频图像产生不同的作用,例如:插值滤波、降噪滤波、去块效应滤波等。在这些滤波方法中,有的是被视频图像编解码标准规定的;有的是开放算法,没有被规定。比如,在目前的高级视频编码标准中,基本都包含了分数像素插值滤波和去块效应滤波功能,其中,环路滤波的主要作用是将反量化、反变换之后的重建图像进行处理,以消除相邻块边界明显的差异,即块效应。但是,H.264编解码算法中的滤波算法,在处理数据时,宏块行之间都存在着严重的数据相关性。
可见,由于DMA搬移数据的相关性加上在多核高清视频编码算法中搬移数据量的巨大性,采用现有的乒乓处理方式和常规的视频算法处理,会造成搬移的数据过于冗余且造成DMA带宽的浪费;而且,DMA的搬移延时严重制约了高清视频编解码的性能。
发明内容
有鉴于此,本发明的主要目的在于提供一种DMA搬移实现视频滤波的方法和系统,能减小DMA搬移的数据量,提高视频图像滤波过程的执行效率,从而提高了视频编解码的性能。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种DMA搬移实现视频滤波的方法,在处理器的片内存储器中开辟两个循环缓冲区;该方法还包括:
DMA将进行运动补偿的宏块行数据搬移到第一循环缓冲区内,进行运动补偿,运动补偿处理后的宏块行数据由DMA搬移到第二循环缓冲区内,进行环路滤波处理,重建后的宏块行数据由DMA搬移到片外存储器中;
其中,所述第二循环缓冲区比第一循环缓冲区超前一个宏块行重叠放置,所述第一循环缓冲区的大小为D个宏块行的数据加上上下各A行像素的数据;所述第二循环缓冲区的大小为D个宏块行的数据;
所述D表示宏块行,A表示图像运动搜索扩充的整数像素点值。
上述方案中,所述将进行运动补偿的宏块行数据搬移到第一循环缓冲区内进行运动补偿包括:在第一循环缓冲区中一个宏块行数据进行运动补偿的同时,DMA搬移下一个需要进行运动补偿的宏块行数据到第一循环缓冲区,如此循环;
所述运动补偿处理后的宏块行数据由DMA搬移到第二循环缓冲区内进行环路滤波处理包括:在第二循环缓冲区中一个宏块行进行环路滤波处理的同时,DMA搬移下一个需要进行环路滤波处理的宏块行数据到第二循环缓冲区,如此循环。
上述方案中,所述将进行运动补偿的宏块行的数据搬移到第一循环缓冲区内具体为:宏块行按照DMA的搬移顺序依次存储在第一循环缓冲区的不同地址中,如果循环缓冲区的数据按照搬移的顺序存储到达循环缓冲区的底部,则重新回到循环缓冲区的顶部覆盖之前的数据依次再进行存储。
上述方案中,所述运动补偿处理后的宏块行数据由DMA搬移到第二循环缓冲区内具体为:宏块行按照DMA的搬移顺序依次存储在第二循环缓冲区的不同地址中,如果循环缓冲区的数据按照搬移的顺序存储到达循环缓冲区的底部,则重新回到循环缓冲区的顶部覆盖之前的数据依次再进行存储。
上述方案中,两个循环缓冲区的数据处理同时进行。
上述方案中,两个循环缓冲区的处理速度及处理方向均相同。
上述方案中,所述运动补偿具体为:纵向运动运动矢量的绝对值在图像运动搜索扩充的整数像素点值之内,使用片内存储器的数据进行图像的重建;在图像运动搜索扩充的整数像素点值之外,使用片外存储器的数据进行图像的重建。
本发明还提供了一种DMA搬移实现视频滤波的系统,包括处理器,还包括DMA、第一循环缓冲区、第二循环缓冲区以及片外存储器;其中,
DMA,用于搬移第一循环缓冲区、第二循环缓冲区以及片外存储器中的数据;
第一循环缓冲区,用于存放运动补偿的宏块行数据,并将经过运动补偿的数据存入第二循环缓冲区;
第二循环缓冲区,用于存放环路滤波的数据,并将经过环路滤波处理后的宏块行数据存入到片外存储器中;
片外存储器,用于存放第二循环缓冲区重建后的图像和参考帧的数据。
所述第二循环缓冲区比第一循环缓冲区超前一个宏块行重叠放置。
所述第一循环缓冲区的大小为D个宏块行的数据加上上下各A行像素的数据;所述第二循环缓冲区的大小为D个宏块行的数据;
所述D表示宏块行,A表示图像运动搜索扩充的整数像素点值。
上述方案中,该系统还包括判断模块,用于判断当前处理的宏块行数据是否为一帧中的最后一个宏块行数据。
本发明所提供的DMA搬移实现视频滤波的方法及系统,采用双循环缓冲的DMA搬移,进行宏块行数据的实时环路滤波处理,如此,既能大幅度降低算法对处理器片内存储器的内存空间占用,又能有效减少DMA的搬移次数,并降低DMA的搬移数据量。
另外,本发明的方案,第二循环缓冲区与第一循环缓冲区超前一个宏块行重叠放置,两个循环缓冲区共享内存空间,两个循环缓冲区中的数据处理均以相同速度向相同方向移动,因此,两个循环缓冲区处理所需的数据不会发生冲突,不会出现被覆盖。如此,可提高片内存储器中数据的利用率,从而大幅度提高处理器中处理视频编解码的性能。
附图说明
图1为现有技术的DMA乒乓处理方式示意图;
图2为现有技术的H.264标准中宏块4×4块边界示意图;
图3为现有技术的H.264标准中宏块4×4块边界点示意图;
图4为本发明DMA搬移实现视频滤波方法的实现流程图;
图5为本发明DMA搬移实现视频滤波系统的组成结构示意图;
图6为实施例的双循环缓冲区按图像的跨度在片内存储器中内存的分布示意图。
具体实施方式
本发明的基本思想是:在处理器的片内存储器中开辟两个循环缓冲区;DMA搬移第一个宏块行的数据到第一循环缓冲区内,在对第一个宏块行进行运动补偿的同时,DMA再搬移第二个宏块行的数据到第一循环缓冲区内,等待运动补偿运算;并且,经运动补偿处理后的第一个宏块行由DMA搬移到第二循环缓冲区内,进行环路滤波处理;重建后的宏块行放到片外存储器中;两个循环缓冲区均在处理一个宏块行的同时搬移下一个宏块行数据等待处理,如此循环,直到处理完整帧数据。
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图4为本发明的实现方法流程图,本发明方法在编码端和解码端均适用,如图4所示,本发明DMA搬移实现视频滤波的方法包括以下步骤:
步骤401:在处理器的片内存储器中开辟两个循环缓冲区;
这里,两个循环缓冲区作为DMA搬移的循环缓冲区,分别称为第一循环缓冲区和第二循环缓存区;第二循环缓冲区比第一循环缓冲区超前一个宏块行重叠摆放,第一循环缓冲区用于存放运动补偿的数据,其大小为2A+16D,其中,A表示图像运动搜索扩充的整数像素点值,D表示宏块行,也就是说,第一循环缓冲区的大小可以存放D个宏块行加上上下各A行像素的数据。第二缓冲区用于存放重建和环路滤波的数据,其大小为16D,也就是说,第二循环缓冲区的大小可以存放D个宏块行的数据。
步骤402:DMA搬移参考帧中2A+16行数据到第一循环缓冲区内;
这里,参考帧为要处理的帧;2A+16行数据包括对当前进行运动补偿的宏块行和当前宏块行上下各A行像素数据。
本步骤中,所述DMA搬移的第一个2A+16行数据从第一循环缓冲区的首地址开始存放。
步骤403:对第一循环缓冲区中的宏块行数据进行运动补偿运算,同时DMA搬移下一个需要运动补偿的宏块行数据到第一循环缓冲区内;
这里,所述对宏块行的数据进行运动补偿运算具体为:纵向运动运动矢量的绝对值在A个整数像素值之内,使用片内存储器的数据进行图像的重建;在A个整数像素值之外,则使用片外存储器的数据进行图像的重建。
所述DMA搬移的第二个宏块行数据紧邻第一个2A+16行数据的地址存放,DMA每次搬移的宏块行数据均紧邻上一个宏块行数据之后存放,依此类推。
步骤404:进行运动补偿处理后的宏块行由DMA搬移到第二循环缓冲区中从其首地址开始存放,对存入第一循环缓冲区的下一个宏块行进行运动补偿运算,同时DMA搬移参考帧中的再下一个宏块行的数据到第一循环缓冲区内;
这里,第一循环缓冲区和第二循环缓冲区中的操作都是采用循环缓冲的方式进行,宏块行按照DMA的搬移顺序依次存储在循环缓冲区的不同地址中,如果循环缓冲区的数据按照搬移的顺序存到了循环缓冲区的底部,则重新回到循环缓冲区的顶部覆盖之前的数据依次再进行存储。
本步骤中,所述第一循环缓冲区对一个宏块行进行运动补偿的同时,DMA搬移下一个宏块行数据到第一循环缓冲区等待处理,如此循环。
步骤405:对存入第二循环缓冲区的宏块行数据进行环路滤波,处理完后写到片外存储器中,同时搬移下一个宏块行数据进行环路滤波;
这里,图像的重建应超前于环路滤波一个宏块行,以去除帧内图像重建时宏块行之间的数据相关性。
本步骤完成后,表示搬移到第一循环缓冲区的一个宏块行数据的处理过程结束。
这里,所述第二循环缓冲区的数据进行环路滤波处理时,第一循环缓冲区的数据同时也在进行运动补偿处理,并且DMA搬移下一个需要运动补偿处理的宏块行数据,两个循环缓冲区的数据处理同时进行。
所述第二循环缓冲区对一个宏块行进行环路滤波的同时,DMA搬移下一个宏块行数据到第二循环缓冲区等待处理,如此循环。
这里,虽然两个循环缓冲区重叠放置,但由于第二循环缓冲区比第一循环缓冲区超前一个宏块行放置,且对这两个循环缓冲区的处理速度及处理方向均相同,因此,每个循环缓冲区当前所需处理的数据并不会被其他数据覆盖,处理过的数据会被等待处理的数据覆盖。
步骤406:当处理到第一循环缓冲区内的最后一个宏块行时,拷贝第一循环缓冲区最后的2A行数据到第一循环缓冲区的顶部;
这里,2A行数据根据宏块行的不同时刻变化,处理到第一循环缓冲区的最后一个宏块行后,需要拷贝最后的2A行数据到循环缓冲区的顶部,以便新一轮存入第一循环缓冲区顶部的宏块行数据能进行运动补偿运算。
步骤407:判断是否处理到一帧中的最后一个宏块行数据,如果是,则结束当前帧解码流程;如果不是,则执行步骤403。
本发明DMA搬移进行视频滤波的方法,由于采用双循环的DMA搬移,并对视频数据的宏块行数据进行实时环路滤波,因此,可以大大降低DMA搬移的次数和搬移的数据量,从而能大大提高处理器中实现视频编解码器的性能。
为实现上述方法,本发明DMA搬移实现视频滤波的系统如图5所示,包括处理器51、DMA 52、第一循环缓冲区53、第二循环缓冲区54以及片外存储器55;其中,
处理器51,用于进行数据处理和运算;
DMA 52,用于搬移第一循环缓冲区53、第二循环缓冲区54以及片外存储器55中的数据;
第一循环缓冲区53,用于存放需进行运动补偿的宏块行数据,并将经过运动补偿的宏块行数据存入第二循环缓冲区54;
这里,第一循环缓冲区53的容量为2A+16D,即:可以存放D个宏块行加上上下各A行像素的数据;DMA52搬移参考帧中宏块行的数据放到第一循环缓冲区53中,处理器51对第一循环缓冲区的数据进行运动补偿运算,完成图像的重建任务,重建后的图像由DMA 52搬移放到第二循环缓冲区54中;宏块行数据根据搬移顺序依次存储在第一循环缓冲区中,当存到第一循环缓冲区的底部时,数据重新回到第一循环缓冲区顶部再依次进行存储;
处理器51在进行一个宏块行的重建时,DMA 52就从参考帧中搬移下一次要处理的宏块行数据到第一循环缓冲区53。
第二循环缓冲区54,用于存放进行环路滤波的宏块行数据,并将经过环路滤波处理后的宏块行数据存入到片外存储器55中;
这里,第二循环缓冲区54的容量为16D,即:可以存放D个宏块行的数据;第二循环缓冲区54比第一循环缓冲区53超前一个宏块行重叠摆放。处理器51对存入第二个循环缓冲区54中的宏块行数据,进行实时环路滤波处理;图像重建完成后,直接写到片外存储器55中,数据在第二循环缓冲区的存储方式与第一循环缓冲区53的存储方式相同,DMA 52对第二循环缓冲区数据的搬移方式也与第一循环缓冲区53的搬移方式相同;
片外存储器55,用于存放第二循环缓冲区54重建后的图像和参考帧的数据。
本发明DMA搬移进行视频滤波的系统,由DMA 52先将参考帧中2A+16行的数据搬移到第一循环缓冲区53中,由处理器51对第一循环缓冲区53的数据进行运动补偿运算,同时DMA 52搬移参考帧中下一个宏块行的数据到第一循环缓冲区53中;在第一循环缓冲区53中重建后的宏块行由DMA搬移到第二循环缓冲区54中,并由处理器51对重建后的宏块行进行环路滤波处理,完成后写到片外存储器55中,同时DMA 52搬移下一个重建后的宏块行数据到第二循环缓冲区54中进行环路滤波处理。到此,完成对一个宏块行的处理任务。如此,宏块行数据的处理在第一循环缓冲区53和第二循环缓冲区54中循环进行,直到处理完一帧中最后一个宏块行的数据。
该系统还包括判断模块,用于判断当前处理是否为一帧中的最后一个宏块行数据,如果是,则结束处理流程;如果不是,则继续下一宏块行的处理。
下面结合实施例对本发明的方案做进一步详细的描述。
以H.264标准中使用的解码环路滤波为例,本实施例DMA搬移实现视频滤波的方法包括以下步骤:
步骤a:在处理器的片内存储器开辟两个用于DMA搬移的循环缓冲区,且两个循环缓冲区互相错开一个宏块行重叠摆放;
如图6所示,第一循环缓冲区的大小为8个宏块行加上边界扩充的56行数据,用于存放运动补偿的数据;第二循环缓冲区的大小为8个宏块行的数据,用于存放环路滤波的数据。第二循环缓冲区比第一循环缓冲区超前一个宏块行放置。其中,斜线填充表示环路滤波的起始宏块行数据;竖线填充表示运动补偿的上下边界的扩充数据;网格填充表示一个宏块行数据。
步骤b:在进行运动补偿之前,DMA先搬移参考帧中72行数据放到第一循环缓冲区内;
这里,运动补偿所需要的数据按照循环缓冲的方式搬移存放在第一循环缓冲区内。举个例子来说,DMA搬移的数据依次放入8宏块行的地址空间里,当8个宏块行的地址空间存放完之后,DMA从参考帧中搬移第9个宏块行的数据覆盖上一轮第一个宏块行的数据存放,第10个宏块行的数据覆盖上一轮第二个宏块行的数据存放,以此类推;
步骤c:对搬移的宏块行进行运动补偿,DMA同时搬移参考帧中下一个需要运动补偿的宏块行的数据到第一循环缓冲区内;
这里,所述进行运动补偿是对存入第一循环缓冲区的第一个宏块行开始依次处理;所述下一个需要运动补偿的宏块行的数据大小为16行数据;
所述对宏块行的数据进行运动补偿运算具体为:纵向运动运动矢量的绝对值在28个整数像素值之内,都使用片内存储器的数据进行图像的重建;在28个整数像素值之外,则使用片外存储器的数据进行图像的重建。
步骤d:重建后的宏块行直接存储到第二循环缓冲区中,对存入第一循环缓冲区的下一个宏块行进行运动补偿运算的同时,DMA搬移参考帧中的再下一个宏块行的数据;
这里,第二循环缓冲区中的数据的存放也是采用循环缓冲的方式进行,宏块行按照搬移顺序依次存储在循环缓冲区中,如果循环缓冲区的数据按照DMA搬移顺序存到了循环缓冲区的底部,则重新回到循环缓冲区的顶部,覆盖之前的数据依次再进行存放;
虽然两个循环缓冲区重叠放置,但由于第二循环缓冲区比第一循环缓冲区超前一个宏块行放置,且对这两个循环缓冲区的处理速度及处理方向均相同,因此,每个循环缓冲区当前所需处理的数据并不会被其他数据覆盖,处理过的数据会被等待处理的数据覆盖。
所述第一循环缓冲区对一个宏块行进行运动补偿的同时,DMA搬移下一个宏块行数据到第一循环缓冲区等待处理,如此循环。
步骤e:对存入第二循环缓冲区的宏块行数据进行环路滤波,处理完后写到片外存存储器中;
这里,对存入第二循环缓冲区的第一个宏块行开始依次处理;图像的重建总超前于环路滤波一个宏块行,以去除帧内图像重建时宏块行之间的数据相关性。
本步骤完成后表示存入第一循环缓冲区的一个宏块行数据的处理过程结束。
这里,所述第二循环缓冲区的数据进行环路滤波处理的同时,第一循环缓冲区的数据也在进行运动补偿处理;
所述第二循环缓冲区对一个宏块行进行环路滤波的同时,DMA搬移下一个宏块行数据到第二循环缓冲区等待处理,如此循环。
步骤f:当处理到第一循环缓冲区内的最后一个宏块行时,搬移第一循环缓冲区最后的56行数据到第一循环缓冲区的顶部;
步骤g:判断是否处理到一帧中的最后一个宏块行数据,如果是,则结束当前处理流程;如果不是,则执行步骤c。
在H.264的标准中的解码端,利用上述方法可以大大降低DMA搬移的次数和数据量,从而大幅度提高了视频图像滤波过程的执行效率,进而提高处理器处理视频解码的性能。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种DMA搬移实现视频滤波的方法,其特征在于,在处理器的片内存储器中开辟两个循环缓冲区;该方法还包括:
DMA将进行运动补偿的宏块行数据搬移到第一循环缓冲区内,进行运动补偿,运动补偿处理后的宏块行数据由DMA搬移到第二循环缓冲区内,进行环路滤波处理,重建后的宏块行数据由DMA搬移到片外存储器中;
其中,所述第二循环缓冲区比第一循环缓冲区超前一个宏块行重叠放置,所述第一循环缓冲区的大小为D个宏块行的数据加上上下各A行像素的数据;所述第二循环缓冲区的大小为D个宏块行的数据;
所述D表示宏块行,A表示图像运动搜索扩充的整数像素点值。
2.根据权利要求1所述的方法,其特征在于,所述将进行运动补偿的宏块行数据搬移到第一循环缓冲区内进行运动补偿包括:在第一循环缓冲区中一个宏块行数据进行运动补偿的同时,DMA搬移下一个需要进行运动补偿的宏块行数据到第一循环缓冲区,如此循环;
所述运动补偿处理后的宏块行数据由DMA搬移到第二循环缓冲区内进行环路滤波处理包括:在第二循环缓冲区中一个宏块行进行环路滤波处理的同时,DMA搬移下一个需要进行环路滤波处理的宏块行数据到第二循环缓冲区,如此循环。
3.根据权利要求2所述的方法,其特征在于,所述将进行运动补偿的宏块行的数据搬移到第一循环缓冲区内具体为:宏块行按照DMA的搬移顺序依次存储在第一循环缓冲区的不同地址中,如果循环缓冲区的数据按照搬移的顺序存储到达循环缓冲区的底部,则重新回到循环缓冲区的顶部覆盖之前的数据依次再进行存储。
4.根据权利要求3所述的方法,其特征在于,所述运动补偿处理后的宏块行数据由DMA搬移到第二循环缓冲区内具体为:宏块行按照DMA的搬移顺序依次存储在第二循环缓冲区的不同地址中,如果循环缓冲区的数据按照搬移的顺序存储到达循环缓冲区的底部,则重新回到循环缓冲区的顶部覆盖之前的数据依次再进行存储。
5.根据权利要求4所述的方法,其特征在于,两个循环缓冲区的数据处理同时进行。
6.根据权利要求5所述的方法,其特征在于,两个循环缓冲区的处理速度及处理方向均相同。
7.根据权利要求1或6所述的方法,其特征在于,所述运动补偿具体为:纵向运动运动矢量的绝对值在图像运动搜索扩充的整数像素点值之内,使用片内存储器的数据进行图像的重建;在图像运动搜索扩充的整数像素点值之外,使用片外存储器的数据进行图像的重建。
8.一种DMA搬移实现视频滤波的系统,包括处理器,其特征在于,该系统还包括DMA、第一循环缓冲区、第二循环缓冲区以及片外存储器;其中,
DMA,用于搬移第一循环缓冲区、第二循环缓冲区以及片外存储器中的数据;
第一循环缓冲区,用于存放运动补偿的宏块行数据,并将经过运动补偿的数据存入第二循环缓冲区;
第二循环缓冲区,用于存放环路滤波的数据,并将经过环路滤波处理后的宏块行数据存入到片外存储器中;
片外存储器,用于存放第二循环缓冲区重建后的图像和参考帧的数据;
其中,所述第二循环缓冲区比第一循环缓冲区超前一个宏块行重叠放置,所述第一循环缓冲区的大小为D个宏块行的数据加上上下各A行像素的数据;所述第二循环缓冲区的大小为D个宏块行的数据;
所述D表示宏块行,A表示图像运动搜索扩充的整数像素点值。
9.根据权利要求8所述的系统,其特征在于,该系统还包括判断模块,用于判断当前处理的宏块行数据是否为一帧中的最后一个宏块行数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910261736 CN102111615B (zh) | 2009-12-29 | 2009-12-29 | 直接存储器存取搬移实现视频滤波的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910261736 CN102111615B (zh) | 2009-12-29 | 2009-12-29 | 直接存储器存取搬移实现视频滤波的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102111615A CN102111615A (zh) | 2011-06-29 |
CN102111615B true CN102111615B (zh) | 2012-11-28 |
Family
ID=44175621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910261736 Expired - Fee Related CN102111615B (zh) | 2009-12-29 | 2009-12-29 | 直接存储器存取搬移实现视频滤波的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102111615B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105323586B (zh) * | 2015-04-07 | 2016-11-09 | 佛山世寰智能科技有限公司 | 一种用于多核并行视频编码和解码的共享内存接口 |
US10310998B2 (en) | 2015-06-30 | 2019-06-04 | Microsoft Technology Licensing, Llc | Direct memory access with filtering |
CN110035293B (zh) * | 2019-04-22 | 2022-01-11 | 湖南国科微电子股份有限公司 | 电子设备及图像编码数据存储方法与装置 |
CN115660941B (zh) * | 2022-12-27 | 2023-03-14 | 北京象帝先计算技术有限公司 | 图像搬移方法、装置、电子设备和计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1543145A (zh) * | 2003-04-28 | 2004-11-03 | 华为技术有限公司 | 一种数字信号处理器内部数据传输的方法 |
CN101060627A (zh) * | 2007-04-13 | 2007-10-24 | 深圳安凯微电子技术有限公司 | 一种高清信号解码器 |
CN101282265A (zh) * | 2008-04-18 | 2008-10-08 | 西安交通大学 | 一种基于无线传感器网络节点的视觉传感器驱动方法 |
-
2009
- 2009-12-29 CN CN 200910261736 patent/CN102111615B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1543145A (zh) * | 2003-04-28 | 2004-11-03 | 华为技术有限公司 | 一种数字信号处理器内部数据传输的方法 |
CN101060627A (zh) * | 2007-04-13 | 2007-10-24 | 深圳安凯微电子技术有限公司 | 一种高清信号解码器 |
CN101282265A (zh) * | 2008-04-18 | 2008-10-08 | 西安交通大学 | 一种基于无线传感器网络节点的视觉传感器驱动方法 |
Non-Patent Citations (1)
Title |
---|
JP特开2009-272724A 2009.11.19 |
Also Published As
Publication number | Publication date |
---|---|
CN102111615A (zh) | 2011-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9351003B2 (en) | Context re-mapping in CABAC encoder | |
CN103188495B (zh) | 译码视频数据的方法 | |
KR100695141B1 (ko) | 영상처리시스템에 있어서 메모리 억세스장치 및 방법, 데이터 기록장치 및 방법과 데이터 독출장치 및 방법 | |
EP1917812B1 (en) | Video encoding and decoding preserving cache localities | |
CN102111615B (zh) | 直接存储器存取搬移实现视频滤波的方法及系统 | |
CN101472176A (zh) | 基于边界强度因子进行去块效应滤波的解码方法和装置 | |
KR101274112B1 (ko) | 영상 부호화 장치 | |
JP5253312B2 (ja) | 動画像処理装置およびその動作方法 | |
TWI523498B (zh) | An image coding method, an image decoding method, an image coding apparatus, and an image decoding apparatus | |
CN100493193C (zh) | 对实时数码视频影流进行缓存控制的方法和装置 | |
US20050259887A1 (en) | Video deblocking method and apparatus | |
CN105847823A (zh) | 一种在视频解码中减少内存带宽使用的方法 | |
CN104935933A (zh) | 一种视频编解码方法 | |
CN101459839A (zh) | 去块效应滤波方法及实现该方法的装置 | |
CN103796021B (zh) | 视频编解码方法及装置 | |
CN101820543A (zh) | 一种与DMA相结合的ping-pong结构快速数据存取方法 | |
CN103327340A (zh) | 一种整数搜索方法及装置 | |
CN103702132B (zh) | 滤波方法、装置及设备 | |
JP2009130599A (ja) | 動画像復号装置 | |
CN102625091B (zh) | 一种基于avs的帧间预测方法 | |
CN102625093B (zh) | 一种基于avs的帧间预测方法 | |
CN109040755A (zh) | 一种适用于视频编码的图像前处理装置 | |
CN102625095B (zh) | 一种基于avs的帧间预测方法 | |
Zhang et al. | An efficient reference frame storage scheme for H. 264 HDTV decoder | |
CN102447905A (zh) | 一种视频解码旋转显示方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121128 Termination date: 20171229 |