CN1658675A - 一种应用硬件实现运动估计时的搜索窗数据读取方法 - Google Patents
一种应用硬件实现运动估计时的搜索窗数据读取方法 Download PDFInfo
- Publication number
- CN1658675A CN1658675A CN200510053741.7A CN200510053741A CN1658675A CN 1658675 A CN1658675 A CN 1658675A CN 200510053741 A CN200510053741 A CN 200510053741A CN 1658675 A CN1658675 A CN 1658675A
- Authority
- CN
- China
- Prior art keywords
- data block
- reference frame
- search window
- memory space
- edged
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000033001 locomotion Effects 0.000 title claims abstract description 32
- 230000008569 process Effects 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 9
- 230000006399 behavior Effects 0.000 claims description 6
- 239000000203 mixture Substances 0.000 claims description 2
- 230000003247 decreasing effect Effects 0.000 abstract 1
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 3
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000006386 memory function Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
- H04N5/145—Movement estimation
Abstract
本发明公开了一种应用硬件实现运动估计时的搜索窗数据读取方法,该方法包括以下步骤:在运动估计模块中划分至少存储临界数目个数据块的存储空间;初始化所述存储空间;判断是否读取完参考帧数据,在没有读取完参考帧数据的时候,依次读取参考帧中的数据块,判断所读取的参考帧中的数据块是否位于参考帧的边界,如果是则进行加边操作,并将所读取的数据块和加边操作得到的数据块存储到所述存储空间,否则将所读取的参考帧的数据块存储到所述存储空间;从所述存储空间中获取当前搜索窗数据用于运动估计。本发明降低了在硬件总线上的数据传输量,减少了运动估计对处理器的占用,提高了视频编码系统的效率。
Description
技术领域
本发明涉及视频信号编码领域,特别是一种应用硬件实现运动估计时的的搜索窗数据读取方法。
背景技术
视频编码方法包括帧内压缩和帧间压缩,帧间压缩的关键技术之一是运动估计,通过运动估计进行帧间压缩能够减少视频码流的时域冗余,提高视频图像的压缩比。现有的多种视频编码方法都采用了运动估计作为编码预测帧的方法,如:Mpeg-1、Mpeg-2、Mpeg-4、H.261、H.263和H.264等视频编码方法。
在视频编码中,将正在进行运动估计的帧称为当前帧或预测帧,将在当前帧运动估计中用来作为运动估计基准的帧称为参考帧。通常将每帧图像划分为若干个宏块(Macro Block,MB),每个宏块由一个16×16字节的亮度分量Y和两个8×8字节的色度分量U、V组成,每个亮度分量Y又可以分为四个8×8字节的块(block)。由于运动估计过程中只涉及到宏块中的亮度分量,因此运动估计中所说的宏块通常指宏块中的亮度分量。一般情况下,运动估计以宏块为单位,当前帧中正在进行运动估计的宏块称为当前宏块。对当前宏块进行运动估计时需要如下数据:当前宏块数据和参考帧中与当前宏块相对应的搜索窗数据。搜索窗一般是边长为奇数个宏块的正方形,图1是3×3的搜索窗的示意图,与当前宏块在当前帧中的位置相同的宏块在图中以阴影表示,称为搜索窗中心宏块,搜索窗由上述搜索窗中心宏块以及周围相邻的8个宏块组成,即搜索窗由如图所示的3×3个宏块组成。为了方便叙述,将上述8个宏块用标号1、2、3、4、5、6、7、8进行标记。
运动估计是视频编码过程中占有相当大计算量的部分,通常占整个视频编码计算量的40~70%。由于嵌入式设备的计算资源有限,因此往往采用硬件实现运动估计,以减少对嵌入式系统资源的占用,加快运动估计的速度。图2为一个视频压缩编码器的结构框图,该视频压缩编码器包括处理器、输入模块、输出模块、运动估计模块和其它硬件加速模块,处理器负责整个编码器的控制工作,输入模块为图像传感器等输入设备,输出模块为显示器等输出设备,运动估计模块用于对当前帧中的各个宏块依次分别进行运动估计,其它硬件加速模块则用于完成视频压缩中的其它相应处理。各个模块之间通过硬件总线连接,并且通过硬件总线传输数据。对于运动估计而言,处理器将当前帧中的当前宏块和搜索窗数据通过总线传输给运动估计模块,以进行运动估计操作。具体处理方式参考图3,运动估计模块根据来自当前帧的当前宏块数据和来自参考帧的搜索窗数据,在搜索窗内进行搜索,找到与当前宏块大小相同、在图像上最相似的数据块,这个最相似的数据块称为匹配块,匹配块所在的位置称为最佳匹配位置,然后将当前宏块与匹配块两者的位置差作为当前宏块的运动矢量,当前宏块和匹配块两者的象素差作为残差块,这样就得到了当前宏块的运动估计结果。
假设每帧图像以宏块为单位分为T行、S列,即每帧图像包含S×T个宏块。从第一行第一个宏块开始,按照行的顺序依次对当前帧中的宏块进行运动估计,直至完成对当前帧中所有宏块的运动估计。
首先,处理器读取当前帧中的当前宏块,以及读取参考帧中与当前宏块对应的搜索窗中心宏块和搜索窗中心宏块周围相邻的宏块,并构造搜索窗。根据搜索窗是否需要加边操作,构造搜索窗分为两种情况。
情况1:如果搜索窗需要加边操作,即不能在参考帧中获得搜索窗的全部宏块,则处理器需要对参考帧进行加边操作才能得到完整的搜索窗。加边宏块的个数是与搜索窗的大小相关如果是m×m的搜索窗,则需要向每个方向加(m-1)/2层宏块。下面以3×3的搜索窗为例说明加边操作的原理。如图1所示的搜索窗应该包括阴影所示的搜索窗中心宏块和它周围标号为1~8的8个宏块。当上述搜索窗中心宏块位于参考帧的左上角时,如图4所示,图中以粗虚线表示参考帧的上边界和左边界,可以看出参考帧中只有搜索窗中心宏块和标号为4、5、6的宏块,没有标号为1、2、3、7、8的宏块,这就需要通过加边操作补充出所没有的宏块,才能构成完整的搜索窗。通过加边操作得到的宏块称为加边宏块。
具体加边方法有多种,例如直接将图像的边界象素向加边宏块进行复制,或者直接对加边宏块进行镜像等方法,这里以直接将图像的边界象素向加边宏块进行复制为例。加边操作可按下面公式(1)~(8)的规则进行。其中坐标的含义如图5所示,图5中间的阴影区为参考帧,每帧包含S×T个宏块,周围虚线所示的为参考帧的加边宏块,坐标的第一个值表示宏块所在的列,第二个值表示宏块所在的行。
1、对于对角线加边宏块,则该加边宏块中所有象素值等于图像最角上象素的颜色值,即加边宏块由处于角上的宏块生成。
左上角的加边宏块:MB[1,1]MB[0,0] (1)
右上角的加边宏块:MB[S,1]MB[S+1,0] (2)
左下角的加边宏块:MB[1,T]MB[0,T+1] (3)
右下角的加边宏块:MB[S,T]MB[T+1,S+1] (4)
2、对于边界加边宏块,则将图像边界的一条颜色值向加边方向赋值,即加边宏块由相应的边界宏块生成。
上边界的加边宏块:MB[s,1]MB[s,0] (5)
下边界的加边宏块:MB[s,T]MB[s,T+1] (6)
左边界的加边宏块:MB[1,t]MB[0,t] (7)
右边界的加边宏块:MB[S,t]MB[S+1,t] (8)
上面公式中的s、t分别满足:1≤s≤S和1≤t≤T。这里的“”表示生成,而不是直接拷贝形成。
在进行加边操作之后,处理器就构造得到当前宏块对应的搜索窗数据。
情况2:如果搜索窗不需要加边操作,即能够在参考帧中获得搜索窗的全部宏块,则处理器从参考帧中直接读取搜索窗中心宏块和周围的8个宏块数据构成搜索窗数据。
在得到当前宏块和搜索窗数据之后,处理器将当前宏块和搜索窗数据通过硬件总线传输给运动估计模块。也就是说,在对每一个当前宏块进行运动估计的过程中,运动估计模块需要从处理器读取10个宏块的数据,其中包括当前宏块的1个宏块数据和搜索窗的9个宏块数据。
运动估计模块接收到当前宏块和搜索窗之后,对当前宏块进行运动估计,并将运动估计结果返回给处理器。
在此之后,处理器读取下一个当前宏块以及读取参考帧中与当前宏块对应的中心宏块搜索窗中心宏块和搜索窗中心宏块周围相邻的宏块并构造搜索窗,再将下一个当前宏块和该当前宏块所对应的搜索窗数据通过硬件总线传输给运动估计模块,由运动估计模块进行运动估计并将结果返回给处理器,直到完成对当前帧中所有宏块的运动估计。
从上述技术方案可以看出,在对当前帧中每个宏块进行运动估计的过程中,都需要通过硬件总线从处理器读取该当前宏块所对应的完整的搜索窗数据,造成了硬件总线的频繁占用。而且由于相邻的当前宏块所对应的搜索窗具有部分相同的宏块,因此造成了现有技术多次重复传输相同的数据,例如图6所示的当前帧中相邻两个宏块[s,t]和[s+1,t]所对应的搜索窗,其中坐标的含义和前面一样,这两个宏块对应的搜索窗具有相同的六个宏块,即图中以网格所示的6个模块,在现有技术中在对宏块[s,t]和[s+1,t]进行运动估计的时候需要重复传输上述六个宏块。由此可见,现有技术采用的搜索窗数据读取方法具有庞大的数据传输量,大量地占用总线,导致编码系统效率下降。
发明内容
有鉴于此,本发明提出了一种应用硬件实现运动估计时的搜索窗数据读取方法,用以降低数据传输量,提高视频编码系统的效率。
根据以上目的,本发明提供了一种应用硬件实现运动估计时的搜索窗数据读取方法,所述硬件至少包括用于对当前帧进行运动估计的运动估计模块,其特征在于,该方法包括以下步骤:
A.确定临界数目;在运动估计模块中划分至少能够存储临界数目个数据块的存储空间,且每个数据块占据存储空间内的一个存储单元;
B.设定加边后参考帧中各个数据块的位置和所述存储空间中存储单元的对应关系;
C.按照读取顺序以及步骤B中所述的对应关系,将包含加边数据块的参考帧的前临界数目减一个数据块存储在存储空间内相应的存储单元中;
D.判断参考帧中的数据块是否读取完毕,如果是则结束流程,否则按照读取顺序依次读取参考帧中的下一个数据块;判断所读取的数据块是否位于参考帧的边界,如果是则进行加边操作,并按照步骤B所述对应关系在所述存储空间的相应存储单元内存储所读取的数据块和加边操作得到的数据块,否则按照步骤B所述对应关系在所述存储空间的相应存储单元内存储所读取的数据块;
E.根据已读取的当前帧中当前数据块位置,和设定的搜索窗大小确定组成当前搜索窗的数据块,构造当前数据块所对应的搜索窗,进行运动估计,然后返回步骤D。
步骤A中所述确定临界数目的步骤为:根据参考帧、预设的搜索窗大小以及运动估计的读取顺序确定临界数目。
进一步,如果参考帧的大小为S×T,搜索窗的大小为m×m,且以行为运动估计的读取顺序,则所述确定临界数目的方法为:(S+m-1)(m-1)+m;其中,S为所述参考帧的列数,T为所述参考帧的行数,m为所述搜索窗的边长。
步骤B为:根据加边后参考帧中各个数据块在加边后参考帧中的顺序和所述存储单元在存储空间中的顺序,设定所述加边后参考帧中各个数据块和所述存储空间中存储单元的对应关系。
进一步,步骤B中所述对应关系为:i=j mod L,其中i为所述存储空间中存储单元的位置;j为所述数据块在加边后参考帧中存储空间的位置,在以行为运动估计的读取顺序时j=t×(S+m-1)+s,其中S为参考帧的列数,s为所述数据块在参考帧中所在的列坐标,t为所述数据块在参考帧中所在的行坐标,m为搜索窗的边长;L为所述存储空间的长度。
步骤C中所述按照读取顺序以及步骤B中所述的对应关系将包含加边数据块的参考帧的前临界数目减一个数据块存储在存储空间内相应的存储单元中的方法为:以行为读取顺序读取参考帧中前(S+1)(m-1)/2个数据块,判断所读取的数据块是否位于参考帧的边界,如果是则进行加边操作,并按照步骤B所述对应关系将所读取的数据块和加边操作得到的数据块存储在所述存储空间中的相应存储单元中,否则按照步骤B所述对应关系将所读取的数据块存储在所述存储空间的相应存储单元中;其中,S为所述参考帧的列数,m为所述搜索窗的边长。
所述存储空间采用连续的地址单元。
进一步,采用直接存储器访问DMA传输方式读取参考帧中的数据块。
步骤E中所述构造当前数据块所对应的搜索窗的步骤进一步包括:根据步骤B所述对应关系确定组成当前搜索窗的数据块在存储空间的位置;根据所述组成当前搜索窗的数据块在存储空间的位置,从存储空间中获取当前搜索窗数据。
所述数据块为宏块或块。
从上述方案中可以看出,由于本发明在运动估计模块中设置了用于保存搜索窗数据的存储空间,在初始化存储空间后,每次只从硬件总线上读取参考帧的一个数据块,对于已经读取到运动估计模块中的搜索窗数据不再重新读取,而仅读取运动估计模块中没有的部分搜索窗数据,大大降低了总线上的数据传输量,提高了视频编码系统的效率。并且进一步由于本发明搜索窗存储空间中的存储单元在地址上连续,可以采用DMA传输方式传输宏块,减少了对处理器的占用,进一步提高了编码的效率。
附图说明
图1为搜索窗的结构示意图;
图2为视频编码器的结构框图;
图3为对当前宏块进行运动估计的示意图;
图4为加边操作示意图;
图5为参考帧及加边后参考帧的示意图;
图6为现有技术中重复传输数据的示意图;
图7为根据本发明的流程示意图;
图8为根据本发明的搜索窗存储空间的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下举实施例对本发明进一步详细说明。
如图5所示,中间的阴影区为参考帧,参考帧以宏块为单位分为T行、S列,每帧包含S×T个宏块,周围虚线所示的为参考帧的加边宏块,由于这里以3×3的搜索窗为例,对参考帧的加边宽度为1层宏块。一般地,如果搜索窗大小为m×m,则每个边界各加(m-1)/2层宏块,其中m为奇数。在下面叙述的过程中以宏块或加边宏块的坐标表示对应的宏块或加边宏块。本实施例以行的顺序为读取顺序对当前帧中各个宏块进行运动估计,即从当前帧中的宏块MB[1,1]开始,先对第一行宏块进行运动估计,然后依次对各行的宏块进行运动估计。
针对现有技术的缺点,本发明改进了搜索窗数据的读取方法,如图7所示,结合本发明的运动估计流程如下:
步骤701,在运动估计模块中分配用于存储搜索窗数据的存储空间,该存储空间内划分出若干个存储单元,每一个存储单元存储一个宏块数据,该搜索窗存储空间至少能够存储临界数目个宏块。
临界数目是根据参考帧和搜索窗的大小以及运动估计模块的读取顺序来确定的,它需要满足的条件是:该搜索窗存储空间内存储的是加边后参考帧中连续的宏块,并且这些宏块中至少存在一个搜索窗数据。当参考帧为T行、S列,搜索窗为m行、m列时,以行的顺序为读取顺序对当前帧中的宏块进行运动估计,那么临界数目为(S+m-1)(m-1)+m。在本实施例中,搜索窗的大小为3×3,因此这里的临界数目为2(S+2)+3,即2S+7。参考图5,在加边后的参考帧中,按照行的顺序的2S+7个连续宏块,恰好包含了一个3×3的搜索窗。下面的过程以搜索窗存储空间长度取临界数目的情况为例叙述。
本发明进一步将搜索窗存储空间表示为如图8所示一个循环链表,该循环链表中每个单元存储一个宏块,将各个存储单元依次标记为0~2S+6,在该循环链表中宏块的排列顺序与加边后参考帧中宏块的排列顺序相同。在该循环链表中,宏块的存储采用循环存储方式,具体过程在后面相应步骤描述。
由于该循环链表物理结构上采用连续地址单元,可以通过模运算实现循环存储功能,即在该循环链表中宏块实际插入的位置i为:
i=j mod L (9)
其中j表示需要插入的宏块或加边宏块在加边后参考帧的中的位置,(s,t)表示需要插入宏块或加边宏块在参考帧中的位置,则在本实施例中j的值为j=t×(S+m-1)+s=t×(S+2)+s;L为链表的长度,即L等于2S+7。这样,不管j增加到多少,其插入的位置都在[0,L-1]之间,并且与宏块或加边宏块在加边后参考帧中的顺序相同,从而实现了循环存储功能。
由于搜索窗存储空间采用了以宏块为存储单元,并且在地址上是连续的,因此在每次读取参考帧宏块数据时,可以采用直接存储器访问(DirectMemory Access,DMA)传输方式。采用DMA传输方式可以减少数据传输过程对处理器的占用,提高了视频编码的效率。
步骤702,初始化搜索窗存储空间,其目的就是将加边后参考帧中以行的顺序的前2S+6个宏块和加边宏块存储到搜索窗存储空间中。存储2S+6个宏块和加边宏块的数据,即比搜索窗存储空间长度少一个的数据,其目的是在每次执行步骤704时只需要读入一个参考帧宏块。
本步骤的具体过程如下:依次读取参考帧第一行的宏块MB[1,1]~MB[S,1]和第二行的第一个宏块MB[1,2],即参考帧中前(S+1)(m-1)/2个宏块,这些宏块是加边后参考帧前2S+6个宏块中属于参考帧本身存在的那部分宏块,根据公式(9)将这些宏块存放在搜索窗存储空间中从第S+3到第2S+2和第2S+5的位置。判断已读取的宏块是否为边界宏块,如果是边界宏块则对边界宏块进行加边操作,得到图5中虚线部分所示的加边宏块MB[0,0]到MB[S+1,0]以及MB[0,1]、MB[S+1,1]和MB[0,2],将这些加边宏块依次存储到如图7所示的搜索窗存储空间的第0到第S+2位置和第2S+3、第2S+4位置。判断所读取宏块是否为边界宏块并进行加边操作的过程,可以在读取每读取一个宏块之后进行,也可以在读取完所有的宏块之后进行。
初始化搜索窗存储空间后,如图8所示的搜索窗存储空间中存储单元第0~2S+5存储单元分别存储着图5中以行的顺序的MB[0,0]~MB[1,2]宏块和加边宏块;搜索窗存储空间中2S+6没有被存入数据,将其作为下一个被写入的存储单元。
步骤703至步骤704,判断参考帧中宏块是否已经读完,即是否已经读取了参考帧中宏块MB[S,T],如果已经读完,则执行步骤707及其后续步骤,否则按照预定读取顺序,即本实施例中以行的顺序读取参考帧中的下一个宏块,并按照公式(9)将读取到的宏块数据存储在搜索窗存储空间中相应的存储单元内。
在初始化搜索窗存储空间后,第一次读取的宏块是图5中的MB[2,2]宏块,将其存储到图8中标号为2S+6存储单元,第二次读取的宏块将覆盖写入到图8中标号为0的存储单元中。最后读取的是图5中所示的MB[S,T]宏块,它在搜索窗存储空间中的存储位置为(T×(S+2)+S)mod L。
步骤705至步骤706,判断读取的参考帧宏块是否为边界宏块,如果是边界宏块,则根据公式(1)~(8)的规则进行加边操作,并将加边操作得到的宏块按照公式(9)保存到搜索窗存储空间的下一个存储单元。如果读取的参考帧宏块不是边界宏块,那么执行步骤707及其后续步骤。
在执行完步骤706后,搜索窗存储空间中已经有了对当前宏块进行运动估计所需要的当前搜索窗数据。
在上述判断过程中,根据参考帧宏块的坐标判断其是否为边界宏块,例如X方向的坐标为1或S的宏块以及Y方向的坐标为1或T的宏块为边界宏块,即参考帧宏块坐标[s,t]满足s=1‖t=1‖s=S‖t=T时需要进行加边操作。
例如,对于初始化搜索窗存储空间后第一次读取的宏块MB[2,2],通过上述方法可以判断出它不是边界宏块,因此不需要进行加边操作。
再例如,对于上述最后读取的宏块MB[S,T],通过上述方法可以判断出它是位于角上的边界宏块,需要进行加边操作,那么加边出如下三个加边宏块:
MB[S,T]MB[S+1,T]
MB[S,T]MB[S,T+1]
MB[S,T]MB[S+1,T+1]
同样,这里“”表示生成,而不是直接拷贝形成。
它们分别存储在搜索窗存储空间的如下位置:
(T×(S+2)+(S+1))mod L;
((T+1)×(S+2)+S)mod L;
((T+1)×(S+2)+(S+1))mod L。
在上述流程中,初始化搜索窗存储空间后,对于当前帧中每个宏块[s,t],在参考帧读取完毕之前只需要通过总线读取一个参考帧宏块存储到搜索窗存储空间中,构成3×3宏块的搜索窗。如果当前宏块[s,t]是右边界宏块,在参考帧中读取的是下一行起始位置[1,t+1]的宏块,否则读取参考帧中[s+1,t+1]位置的宏块。如果在参考帧中读取的是边界宏块,则需要进行加边操作。当当前宏块位于倒数第二行最后一个宏块时,即[S,T-1]位置,所有的参考帧宏块数据已全部读取到搜索窗存储空间中,在此之后无需再通过总线读取搜索窗数据,只需对最后行的所有宏块依次进行运动估计操作。
步骤707,从搜索窗存储空间中获取当前宏块所对应的搜索窗数据,即当前搜索窗数据。
假设当前宏块为当前帧中的MB[s,t],那么搜索窗为参考帧中的MB[x,y],其中x分别取s-1、s、s+1,y分别取t-1、t、t+1,依次组合共得到9个宏块,根据公式(9)很容易得到这9个宏块在搜索窗存储空间中的位置,根据它们的位置读取这9个宏块组成搜索窗。
至此,已经完成当前搜索窗数据的构造,以下的步骤是将已构造的搜索窗数据应用到运动估计中。
步骤708,读取当前帧中所要进行运动估计的宏块,即当前宏块。
需要注意的是,步骤708与步骤703至步骤707之间不存在严格的先后顺序,即可以先读取参考帧中的数据,也可以先读取当前帧中的数据。
步骤709,在得到当前搜索窗和当前宏块后,运动估计模块根据现有技术的运动估计方法进行运动估计得到当前宏块的运动矢量、残差块等数据结果,并将运动矢量、残差块等结果传输给处理器。
步骤710至步骤711,判断是否完成了当前帧的全部运动估计,即是否已经对当前帧中所有的宏块进行了运动估计,如果是,则结束本流程,否则转到步骤703,即开始对当前帧中下一个宏块进行运动估计。
本发明也可以采用块为单位读取搜索窗数据,并进行运动估计,其过程与采用宏块的过程相似,这里不再赘述。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1、一种应用硬件实现运动估计时的搜索窗数据读取方法,所述硬件至少包括用于对当前帧进行运动估计的运动估计模块,其特征在于,该方法包括以下步骤:
A.确定临界数目;在运动估计模块中划分至少能够存储临界数目个数据块的存储空间,且每个数据块占据存储空间内的一个存储单元;
B.设定加边后参考帧中各个数据块的位置和所述存储空间中存储单元的对应关系;
C.按照读取顺序以及步骤B中所述的对应关系,将包含加边数据块的参考帧的前临界数目减一个数据块存储在存储空间内相应的存储单元中;
D.判断参考帧中的数据块是否读取完毕,如果是则结束流程,否则按照读取顺序依次读取参考帧中的下一个数据块;判断所读取的数据块是否位于参考帧的边界,如果是则进行加边操作,并按照步骤B所述对应关系在所述存储空间的相应存储单元内存储所读取的数据块和加边操作得到的数据块,否则按照步骤B所述对应关系在所述存储空间的相应存储单元内存储所读取的数据块;
E.根据已读取的当前帧中当前数据块位置,和设定的搜索窗大小确定组成当前搜索窗的数据块,构造当前数据块所对应的搜索窗,进行运动估计,然后返回步骤D。
2、根据权利要求1所述的方法,其特征在于,步骤A中所述确定临界数目的步骤为:根据参考帧、预设的搜索窗大小以及运动估计的读取顺序确定临界数目。
3、根据权利要求2所述的方法,其特征在于,如果参考帧的大小为S×T,搜索窗的大小为m×m,且以行为运动估计的读取顺序,则所述确定临界数目的方法为:(S+m-1)(m-1)+m;
其中,S为所述参考帧的列数,T为所述参考帧的行数,m是为所述搜索窗的边长。
4、根据权利要求1所述的方法,其特征在于,步骤B为:
根据加边后参考帧中各个数据块在加边后参考帧中的顺序和所述存储单元在存储空间中的顺序,设定所述加边后参考帧中各个数据块和所述存储空间中存储单元的对应关系。
5、根据权利要求4所述的方法,其特征在于,步骤B中所述对应关系为:i=j mod L,其中
i为所述存储空间中存储单元的位置;
j为所述数据块在加边后参考帧中存储空间的位置,在以行为运动估计的读取顺序时j=t×(S+m-1)+s,其中S为参考帧的列数,s为所述数据块在参考帧中所在的列坐标,t为所述数据块在参考帧中所在的行坐标,m为搜索窗的边长;
L为所述存储空间的长度。
6、根据权利要求1所述的方法,其特征在于,步骤C中所述按照读取顺序以及步骤B中所述的对应关系将包含加边数据块的参考帧的前临界数目减一个数据块存储在存储空间内相应的存储单元中的方法为:
以行为读取顺序读取参考帧中前(S+1)(m-1)/2个数据块,判断所读取的数据块是否位于参考帧的边界,如果是则进行加边操作,并按照步骤B所述对应关系将所读取的数据块和加边操作得到的数据块存储在所述存储空间中的相应存储单元中,否则按照步骤B所述对应关系将所读取的数据块存储在所述存储空间的相应存储单元中;
其中,S为所述参考帧的列数,m为所述搜索窗的边长。
7、根据权利要求1所述的方法,其特征在于,所述存储空间采用连续的地址单元。
8、根据权利要求7所述的方法,其特征在于,采用直接存储器访问DMA传输方式读取参考帧中的数据块。
9、根据权利要求1所述的方法,其特征在于,步骤E中所述构造当前数据块所对应的搜索窗的步骤进一步包括:根据步骤B所述对应关系确定组成当前搜索窗的数据块在存储空间的位置;根据所述组成当前搜索窗的数据块在存储空间的位置,从存储空间中获取当前搜索窗数据。
10、根据权利要求1~9之一所述的方法,其特征在于,所述数据块为宏块或块。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100537417A CN1328910C (zh) | 2005-03-10 | 2005-03-10 | 一种应用硬件实现运动估计时的搜索窗数据读取方法 |
US11/368,817 US7860166B2 (en) | 2005-03-10 | 2006-03-06 | Method and apparatus for motion estimation in video signal decoding |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100537417A CN1328910C (zh) | 2005-03-10 | 2005-03-10 | 一种应用硬件实现运动估计时的搜索窗数据读取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1658675A true CN1658675A (zh) | 2005-08-24 |
CN1328910C CN1328910C (zh) | 2007-07-25 |
Family
ID=35007892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100537417A Expired - Fee Related CN1328910C (zh) | 2005-03-10 | 2005-03-10 | 一种应用硬件实现运动估计时的搜索窗数据读取方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7860166B2 (zh) |
CN (1) | CN1328910C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100592799C (zh) * | 2008-06-12 | 2010-02-24 | 四川虹微技术有限公司 | 基于h.264标准运动补偿的数据快速读取方法 |
CN101309405B (zh) * | 2007-05-14 | 2011-04-20 | 华为技术有限公司 | 参考数据载入的方法及装置 |
CN109660810A (zh) * | 2018-12-29 | 2019-04-19 | 湖南国科微电子股份有限公司 | 一种数据编码方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8358695B2 (en) * | 2006-04-26 | 2013-01-22 | Altera Corporation | Methods and apparatus for providing a scalable motion estimation/compensation assist function within an array processor |
US8775359B2 (en) * | 2007-09-19 | 2014-07-08 | Utc Fire & Security Corporation | System and method for occupancy estimation |
US8285068B2 (en) | 2008-06-25 | 2012-10-09 | Cisco Technology, Inc. | Combined deblocking and denoising filter |
US20100220786A1 (en) * | 2009-02-27 | 2010-09-02 | Hong Kong Applied Science and Technology Research Institute Company Limited | Method and apparatus for multiple reference picture motion estimation |
US8615044B2 (en) * | 2009-06-05 | 2013-12-24 | Cisco Technology, Inc. | Adaptive thresholding of 3D transform coefficients for video denoising |
US8638395B2 (en) | 2009-06-05 | 2014-01-28 | Cisco Technology, Inc. | Consolidating prior temporally-matched frames in 3D-based video denoising |
US8472725B2 (en) | 2010-06-02 | 2013-06-25 | Cisco Technology, Inc. | Scene change detection and handling for preprocessing video with overlapped 3D transforms |
US9635308B2 (en) | 2010-06-02 | 2017-04-25 | Cisco Technology, Inc. | Preprocessing of interlaced video with overlapped 3D transforms |
US9628674B2 (en) * | 2010-06-02 | 2017-04-18 | Cisco Technology, Inc. | Staggered motion compensation for preprocessing video with overlapped 3D transforms |
EP2903284A1 (en) * | 2013-06-05 | 2015-08-05 | Axis AB | Method for encoding digital video data |
US9832351B1 (en) | 2016-09-09 | 2017-11-28 | Cisco Technology, Inc. | Reduced complexity video filtering using stepped overlapped transforms |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2742249B1 (fr) * | 1995-12-06 | 1998-01-23 | Thomson Multimedia Sa | Procede et dispositif d'estimation de mouvement |
US6957350B1 (en) * | 1996-01-30 | 2005-10-18 | Dolby Laboratories Licensing Corporation | Encrypted and watermarked temporal and resolution layering in advanced television |
JPH1079947A (ja) * | 1996-09-03 | 1998-03-24 | Mitsubishi Electric Corp | 動きベクトル検出装置 |
US5784108A (en) * | 1996-12-03 | 1998-07-21 | Zapex Technologies (Israel) Ltd. | Apparatus for and method of reducing the memory bandwidth requirements of a systolic array |
US7050502B2 (en) * | 2001-09-18 | 2006-05-23 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for motion vector detection and medium storing method program directed to the same |
US7715479B2 (en) * | 2003-07-21 | 2010-05-11 | International Business Machines Corporation | Power-aware on-chip memory management for video coding algorithms |
US7599435B2 (en) * | 2004-01-30 | 2009-10-06 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Video frame encoding and decoding |
US20050262275A1 (en) * | 2004-05-19 | 2005-11-24 | Gil Drori | Method and apparatus for accessing a multi ordered memory array |
US7953152B1 (en) * | 2004-06-28 | 2011-05-31 | Google Inc. | Video compression and encoding method |
JP4335779B2 (ja) * | 2004-10-28 | 2009-09-30 | 富士通マイクロエレクトロニクス株式会社 | 符号化装置およびこれを用いた録画装置、並びに符号化方法および録画方法 |
KR100913088B1 (ko) * | 2005-01-21 | 2009-08-21 | 엘지전자 주식회사 | 베이스 레이어의 내부모드 블록의 예측정보를 이용하여영상신호를 엔코딩/디코딩하는 방법 및 장치 |
-
2005
- 2005-03-10 CN CNB2005100537417A patent/CN1328910C/zh not_active Expired - Fee Related
-
2006
- 2006-03-06 US US11/368,817 patent/US7860166B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309405B (zh) * | 2007-05-14 | 2011-04-20 | 华为技术有限公司 | 参考数据载入的方法及装置 |
CN100592799C (zh) * | 2008-06-12 | 2010-02-24 | 四川虹微技术有限公司 | 基于h.264标准运动补偿的数据快速读取方法 |
CN109660810A (zh) * | 2018-12-29 | 2019-04-19 | 湖南国科微电子股份有限公司 | 一种数据编码方法 |
CN109660810B (zh) * | 2018-12-29 | 2021-07-27 | 湖南国科微电子股份有限公司 | 一种数据编码方法 |
Also Published As
Publication number | Publication date |
---|---|
US7860166B2 (en) | 2010-12-28 |
US20060204046A1 (en) | 2006-09-14 |
CN1328910C (zh) | 2007-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1658675A (zh) | 一种应用硬件实现运动估计时的搜索窗数据读取方法 | |
CN1874519A (zh) | 使用视频对称的帧内预测方法和设备及编解码方法及设备 | |
CN1761322A (zh) | 选择参考图像的方法 | |
CN1642282A (zh) | 视频编码系统 | |
CN1993995A (zh) | 用于预测多角度运动画面的直接模式运动的方法、介质和装置 | |
CN1784015A (zh) | 一种帧内图像预测编码方法 | |
CN1287598C (zh) | 用于消除区块效应和/或铃振噪声的滤波方法和装置 | |
CN1668108A (zh) | 析像度变换方法及装置 | |
CN101056410A (zh) | 视频信号处理装置 | |
CN1627825A (zh) | 用于运动图像编码的运动估计方法 | |
CN1722842A (zh) | 视听编解码器的滤波方法和滤波设备 | |
CN1266942C (zh) | 图像处理装置 | |
CN1214648C (zh) | 用于在纹理映射引擎中执行运动补偿的方法与设备 | |
CN101068359A (zh) | 算术编码中的概率模型存储方法 | |
CN1199307A (zh) | 编码/译码的装置和方法以及存贮编码信号的存储介质 | |
CN1703094A (zh) | 1/4像素插值应用于1/2像素插值结果的图象插值装置和方法 | |
CN1449197A (zh) | 视频编码系统中的b图象模式确定方法与装置 | |
CN1925616A (zh) | 一种宏块对级帧场自适应编解码方法 | |
CN1230000C (zh) | 视频编解码中变换系数块的扫描方法和装置 | |
CN1204752C (zh) | 存储和处理时间上顺序排列图象的图象信息的方法和装置 | |
CN1750660A (zh) | 移动向量计算方法 | |
CN1780402A (zh) | 视频图像运动补偿装置 | |
CN1283107C (zh) | 快速运动预测方法及其装置 | |
CN1589018A (zh) | 视频解码缓冲区控制装置及方法 | |
CN1665306A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070725 Termination date: 20120310 |