CN101227611A - 一种基于avs的运动估计装置及搜索方法 - Google Patents
一种基于avs的运动估计装置及搜索方法 Download PDFInfo
- Publication number
- CN101227611A CN101227611A CN 200810033359 CN200810033359A CN101227611A CN 101227611 A CN101227611 A CN 101227611A CN 200810033359 CN200810033359 CN 200810033359 CN 200810033359 A CN200810033359 A CN 200810033359A CN 101227611 A CN101227611 A CN 101227611A
- Authority
- CN
- China
- Prior art keywords
- pixel
- register
- array
- row
- reference pixel
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供了一种基于AVS的运动估计装置及搜索方法,所述装置包含的计算及数据保存阵列由计算单元阵列和寄存器阵列组成。所述搜索方法将当前宏块像素和参考像素平行逐行读入计算单元阵列和寄存器阵列,然后对第一行的各个像素搜索点进行SAD计算,当完成第一行后,通过像素的阵列变换,开始对第二行从最后一个像素搜索点开始进行SAD计算,直至该行像素完成,同样完成所有参考像素的计算。所述方法可以减少像素的重复读入,提高像素的重用率,从而提高编码效率。
Description
技术领域
本发明涉及数字视频编码技术,尤其涉及一种基于AVS的运动估计装置及搜索方法。
背景技术
现有数字视频编码通常采用运动估计来实现帧间压缩,运动估计的方法是先将当前编码帧划分为固定大小的块,然后针对每个要被编码的块,在参考帧的一定搜索范围内找出与它匹配误差最小的块,计算匹配误差所依据的准则是累计绝对值差(SAD)。两者间的空间偏移就是当前块的运动向量,其中每个可能的运动向量被称为候选向量。确定运动向量之后,对每个块只需编码它与参考帧中匹配块的插图像即可,这样可以大大减少编码的比特数。在AVS编码标准中,有4种不同尺寸形状的像素块被用于运动估计,包括8×8、16×8、8×16、16×16,AVS的编码器要在这些树状分割模式中选择一种模式进行编码,要确定这个最优模式就要对其中9个不同像素子块分别进行运动估计,求出它们各自的运动向量,即可变尺寸块的运动估计方法。此外,AVS标准中运动向量计算的准则改为使被编码像素块的率失真代价最小,一个子块的率失真代价包括两部分,一个是子块的SAD,这与以往的编码标准中是一致的,还有一部分是与运动向量有关的运动向量编码代价。
实现运动估计的方法很多,常用的有菱形法、三步法、四步法、六边形法等等。这几种方法虽然加速了运动估计,但它们的数据流不规则,每次估计运算的时间不确定,所以硬件实现中通常使用全搜索算法。但在大多数情况下,全搜索算法不能有效的减少运动估计所需的计算量,不能满足实时编码的要求。
全搜索算法结合阵处理器结构可以实现8×8像素块的SAD计算,其他模式(如8×16、16×8、16×16)的SAD利用加法树(Add Tree)得到。搜索前,预先将当前宏块像素装载到4个8×8处理单元(PE)阵列中,每个PE阵列的结构如图1所示;然后在搜索窗口中,按照如图2所示的先下移再右移的顺序,以每个搜索点为起始点,依次读入一行(16个)参考像素。这种方法因为PE阵列在结构上的规则性、控制上的脉动性,负载均匀,易于模块化和硬件实现。但是该方法的缺点是重复读取了大量的参考像素,数据的重用性差,且需要的时钟周期较长。
发明内容
本发明解决的技术问题是提供一种基于AVS的运动估计装置及搜索方法,可以大大提高数据的重用性,使得当前宏块象素和参考窗口中象素均只需读入一次,从而节省时钟周期。
为了解决上述技术问题,本发明采用了如下技术手段:一种基于AVS的运动估计装置,包含整像素运动估计总控制器、加法树、模式选择控制器、率失真计算模块和模式比较模块,所述运动估计装置还包含一个计算及数据保存阵列和阵列控制器,所述整像素运动估计总控制器分别连接至阵列控制器、加法树及模式选择控制器,阵列控制器的输出端分别连接至计算及数据保存阵列和加法树,加法树的输出端连接至模式选择控制器,模式选择控制器的输出端分别连接至率失真计算模块和模式比较模块,率失真计算模块的输出端连接至模式比较模块,所述计算及数据保存阵列用于读取当前宏块像素和参考像素。
所述的计算及数据保存阵列由左右两部分组成,左边为计算单元阵列,右边为寄存器阵列。
所述的计算单元阵列由16×16个计算单元组成,所述的寄存器阵列由16×2ph个寄存器组成,其中2ph为运动估计的搜索窗口的边长。
所述的计算单元由一个当前宏块像素寄存器、一个参考像素寄存器及求两者差绝对值的计算器组成。
本发明的另一方案是提供一种采用上述运动估计装置的运动估计搜索方法,其包含以下步骤:
步骤1、在第一个时钟,读入当前宏块的第一行像素,并存放在16个计算单元的当前宏块像素寄存器中,同时读入第一行参考像素,存放在16个计算单元的参考像素寄存器和第一行2ph个寄存器中;然后对计算单元中的像素进行差绝对值计算;
步骤2、在下一个时钟,将上一时钟保存的当前宏块像素和参考像素向下移入第二行相应的寄存器中,读入当前宏块的第二行像素和第二行参考像素,并对计算单元中的像素进行差绝对值计算;
步骤3、重复步骤1~2,直至16个时钟结束,当前宏块的全部像素和16×(2ph+16)个参考像素都被读入寄存器并计算相应的差绝对值;
步骤4、将每列寄存器的参考像素向左移一列,将第一列寄存器的参考像素移至最后一列寄存器中;并对计算单元中的像素进行差绝对值计算,即开始进行搜索窗口的第一行第二个搜索点的累计绝对值差SAD计算;
步骤5、重复步骤4,经过2ph个时钟,完成参考窗口的首行像素搜索和SAD计算;
步骤6、读入新一行参考像素,并左移后存于第一行,同时将每行寄存器的参考像素下移一行,将第一行参考像素挤出寄存器阵列;
步骤7、计算当前宏块像素与参考像素差的绝对值,求得搜索窗中第二行参考像素中最后一个搜索点的SAD值;
步骤8、将每列寄存器中的参考像素右移到后一列寄存器中,最后一列中的参考像素移入第一列中,即计算搜索窗口第二行倒数第二个搜索点的SAD;
步骤9、重复步骤8,再经过2ph个时钟,完成参考窗口的第二行像素搜索和SAD计算;
步骤10、重复步骤6~9,直到搜索窗口中所有点都搜索完成。
由于采用了以上的基于AVS的运动估计装置及搜索方法,与现有技术相比由于提高了数据的重用性,节省了时钟周期,可以更好的满足编码的实时性要求。
附图说明
本发明的基于AVS的运动估计装置及搜索方法由以下的实施例及附图详细给出。
图1为现有技术的处理单元阵列结构示意图;
图2为现有技术的搜索顺序示意图;
图3为本发明运动估计装置的结构示意图;
图4为本发明的计算与数据保存阵列结构示意图;
图5为本发明的计算单元结构示意图;
图6为本发明的搜索顺序示意图。
具体实施方式
以下将对本发明的运动估计装置及搜索方法作进一步的详细描述。
如图3所示,本实施例提供的一种基于AVS的运动估计装置,包含整像素运动估计总控制器、加法树、模式选择控制器、率失真计算模块和模式比较模块,所述运动估计装置还包含一个计算及数据保存阵列和阵列控制器。其中,整像素运动估计总控制器分别连接至阵列控制器、加法树及模式选择控制器的输入端,阵列控制器的输出端分别连接至计算及数据保存阵列和加法树,加法树的输出端连接至模式选择控制器,模式选择控制器的输出端分别连接至率失真计算模块和模式比较模块,率失真计算模块的输出端连接至模式比较模块,所述计算及数据保存阵列用于读取当前宏块像素和参考像素。
如图4所示,所述的计算及数据保存阵列由左右两部分组成,左边为计算单元阵列,右边为寄存器阵列。所述的计算单元阵列由16×16个计算单元组成,所述的寄存器阵列由16×2ph个寄存器组成,其中2ph为运动估计的搜索窗口的边长。
如图5所示,计算单元阵列中的每个计算单元由一个当前宏块像素寄存器、一个参考像素寄存器及求两者差绝对值的计算器组成。
采用上述运动估计装置的运动估计搜索方法包含以下步骤:
步骤1、在第一个时钟,读入当前宏块的第一行像素,并存放在16个计算单元的当前宏块像素寄存器中,同时读入第一行参考像素,存放在16个计算单元的参考像素寄存器和第一行2ph个寄存器中;然后对计算单元中的像素进行差绝对值计算;
步骤2、在下一个时钟,将上一时钟保存的当前宏块像素和参考像素向下移入第二行相应的寄存器中,读入当前宏块的第二行像素和第二行参考像素,并对计算单元中的像素进行差绝对值计算;
步骤3、重复步骤1~2,直至16个时钟结束,当前宏块的全部像素和16×(2ph+16)个参考像素都被读入寄存器并计算相应的差绝对值;
步骤4、将每列寄存器的参考像素向左移一列,将第一列寄存器的参考像素移至最后一列寄存器中;并对计算单元中的像素进行差绝对值计算,即开始进行搜索窗口的第一行第二个搜索点的SAD计算;
步骤5、重复步骤4,经过2ph个时钟,完成参考窗口的首行像素搜索和SAD计算;
步骤6、读入新一行参考像素,并左移后存于第一行,同时将每行寄存器的参考像素下移一行,将第一行参考像素挤出寄存器阵列;
步骤7、计算当前宏块像素与参考像素差的绝对值,求得搜索窗中第二行参考像素中最后一个搜索点的SAD值;
步骤8、将每列寄存器中的参考像素右移到后一列寄存器中,最后一列中的参考像素移入第一列中,即计算搜索窗口第二行倒数第二个搜索点的SAD;
步骤9、重复步骤8,再经过2ph个时钟,完成参考窗口的第二行像素搜索和SAD计算;
步骤10、重复步骤6~9,直到搜索窗口中所有点都搜索完成。
在步骤2和步骤3之间,加法树在整像素模块总控制器的控制下,对计算单元阵列中计算得到的像素差的绝对值进行组合,分别得到8×8、16×8、8×16和16×16四种模式下的SAD值;将得到的SAD值送入模式选择控制器,在模式选择控制器的控制下,率失真计算模块完成各种模式下的率失真代价,并与之前的SAD值求和后送入模式比较模块中,与之前已保存的SAD与率失真代价之和最小的模式进行比较,选出较小者保存,即可得到匹配误差最小的参考像素。
Claims (5)
1.一种基于AVS的运动估计装置,包含整像素运动估计总控制器、加法树、模式选择控制器、率失真计算模块和模式比较模块,其特征在于,所述运动估计装置还包含一个计算及数据保存阵列和阵列控制器,所述整像素运动估计总控制器分别连接至阵列控制器、加法树及模式选择控制器,阵列控制器的输出端分别连接至计算及数据保存阵列和加法树,加法树的输出端连接至模式选择控制器,模式选择控制器的输出端分别连接至率失真计算模块和模式比较模块,率失真计算模块的输出端连接至模式比较模块,所述计算及数据保存阵列用于读取当前宏块像素和参考像素。
2.如权利要求1所述的运动估计装置,其特征在于,所述的计算及数据保存阵列由左右两部分组成,左边为计算单元阵列,右边为寄存器阵列。
3.如权利要求2所述的运动估计装置,其特征在于,所述的计算单元阵列由16×16个计算单元组成,所述的寄存器阵列由16×2ph个寄存器组成,其中2ph为运动估计的搜索窗口的边长。
4.如权利要求3所述的运动估计装置,其特征在于,所述的计算单元由一个当前宏块像素寄存器、一个参考像素寄存器及求两者差绝对值的计算器组成。
5.采用如权利要求1所述的运动估计装置的运动估计搜索方法,其特征在于,所述方法包含以下步骤:
步骤1、在第一个时钟,读入当前宏块的第一行像素,并存放在16个计算单元的当前宏块像素寄存器中,同时读入第一行参考像素,存放在16个计算单元的参考像素寄存器和第一行2ph个寄存器中;然后对计算单元中的像素进行差绝对值计算;
步骤2、在下一个时钟,将上一时钟保存的当前宏块像素和参考像素向下移入第二行相应的寄存器中,读入当前宏块的第二行像素和第二行参考像素,并对计算单元中的像素进行差绝对值计算;
步骤3、重复步骤1~2,直至16个时钟结束,当前宏块的全部像素和16×(2ph+16)个参考像素都被读入寄存器并计算相应的差绝对值;
步骤4、将每列寄存器的参考像素向左移一列,将第一列寄存器的参考像素移至最后一列寄存器中;并对计算单元中的像素进行差绝对值计算,即开始进行搜索窗口的第一行第二个搜索点的累计绝对值差SAD计算;
步骤5、重复步骤4,经过2ph个时钟,完成参考窗口的首行像素搜索和SAD计算;
步骤6、读入新一行参考像素,并左移后存于第一行,同时将每行寄存器的参考像素下移一行,将第一行参考像素挤出寄存器阵列;
步骤7、计算当前宏块像素与参考像素差的绝对值,求得搜索窗中第二行参考像素中最后一个搜索点的SAD值;
步骤8、将每列寄存器中的参考像素右移到后一列寄存器中,最后一列中的参考像素移入第一列中,即计算搜索窗口第二行倒数第二个搜索点的SAD;
步骤9、重复步骤8,再经过2ph个时钟,完成参考窗口的第二行像素搜索和SAD计算;
步骤10、重复步骤6~9,直到搜索窗口中所有点都搜索完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810033359 CN101227611A (zh) | 2008-01-31 | 2008-01-31 | 一种基于avs的运动估计装置及搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810033359 CN101227611A (zh) | 2008-01-31 | 2008-01-31 | 一种基于avs的运动估计装置及搜索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101227611A true CN101227611A (zh) | 2008-07-23 |
Family
ID=39859330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810033359 Pending CN101227611A (zh) | 2008-01-31 | 2008-01-31 | 一种基于avs的运动估计装置及搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101227611A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102647594A (zh) * | 2012-04-18 | 2012-08-22 | 北京大学 | 一种整像素精度运动估计方法及其系统 |
CN102932643A (zh) * | 2012-11-14 | 2013-02-13 | 上海交通大学 | 一种适用于hevc标准的扩展可变块运动估计电路 |
CN103402084A (zh) * | 2013-07-22 | 2013-11-20 | 张新安 | 基于avs的运动估计快速算法 |
CN105635734A (zh) * | 2014-11-03 | 2016-06-01 | 掌赢信息科技(上海)有限公司 | 基于视频通话场景的自适应视频编码方法及装置 |
WO2023082867A1 (zh) * | 2021-11-09 | 2023-05-19 | 哲库科技(上海)有限公司 | 一种图像处理方法、芯片、电子设备及存储介质 |
-
2008
- 2008-01-31 CN CN 200810033359 patent/CN101227611A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102647594A (zh) * | 2012-04-18 | 2012-08-22 | 北京大学 | 一种整像素精度运动估计方法及其系统 |
CN102647594B (zh) * | 2012-04-18 | 2014-08-20 | 北京大学 | 一种整像素精度运动估计方法及其系统 |
CN102932643A (zh) * | 2012-11-14 | 2013-02-13 | 上海交通大学 | 一种适用于hevc标准的扩展可变块运动估计电路 |
CN102932643B (zh) * | 2012-11-14 | 2016-02-10 | 上海交通大学 | 一种适用于hevc标准的扩展可变块运动估计电路 |
CN103402084A (zh) * | 2013-07-22 | 2013-11-20 | 张新安 | 基于avs的运动估计快速算法 |
CN105635734A (zh) * | 2014-11-03 | 2016-06-01 | 掌赢信息科技(上海)有限公司 | 基于视频通话场景的自适应视频编码方法及装置 |
CN105635734B (zh) * | 2014-11-03 | 2019-04-12 | 掌赢信息科技(上海)有限公司 | 基于视频通话场景的自适应视频编码方法及装置 |
WO2023082867A1 (zh) * | 2021-11-09 | 2023-05-19 | 哲库科技(上海)有限公司 | 一种图像处理方法、芯片、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100471275C (zh) | 用于h.264/avc编码器的运动估计方法 | |
US10244254B2 (en) | Encoding system using motion estimation and encoding method using motion estimation | |
CN103248895B (zh) | 一种用于hevc帧内编码的快速模式估计方法 | |
CN103517069A (zh) | 一种基于纹理分析的hevc帧内预测快速模式选择方法 | |
KR20190117708A (ko) | 부호화유닛 심도 확정 방법 및 장치 | |
CN101227611A (zh) | 一种基于avs的运动估计装置及搜索方法 | |
CN102291581B (zh) | 支持帧场自适应运动估计的实现方法 | |
US20200410352A1 (en) | System and methods for processing spatial data | |
CN103957414A (zh) | 一种hevc帧内预测编码方法和系统 | |
CN102932643B (zh) | 一种适用于hevc标准的扩展可变块运动估计电路 | |
CN110113608B (zh) | 一种基于率失真优化的gpu中视频编码快速搜索方法 | |
CN108282597A (zh) | 一种基于fpga的实时目标追踪系统和方法 | |
CN104469381A (zh) | 一种h.264运动估计搜索窗口自适应调整算法的vlsi实现系统 | |
CN102801982A (zh) | 一种应用于视频压缩且基于块积分的快速运动估计方法 | |
CN101951521B (zh) | 针对扩展可变块的视频图像运动估计方法 | |
CN101902642B (zh) | 一种h.264帧间skip模式快速判定方法 | |
KR100490730B1 (ko) | 비디오 영상 압축 시스템에서의 적응적 패턴을 이용한움직임 예측 장치 및 방법 | |
CN100553341C (zh) | 运动矢量检测装置和运动矢量检测方法 | |
CN103329532A (zh) | 量子化控制装置和方法以及量子化控制程序 | |
CN104378641A (zh) | Hevc/h.265的亚像素插值的simd快速实现方法 | |
CN101268623B (zh) | 用于创建可变形状区块的方法和装置 | |
CN105227959A (zh) | 用于视频编码的多编码点混编流水方法及其装置 | |
CN104683812A (zh) | 用于移动估计的视频预处理方法与装置 | |
CN105611299A (zh) | 一种基于hevc的运动估计方法 | |
CN111901592A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080723 |