首页 / 专利库 / 视听技术与设备 / 块匹配运动估计 / HEVC整像素运动估计方法及装置

HEVC整像素运动估计方法及装置

阅读:347发布:2020-05-11

专利汇可以提供HEVC整像素运动估计方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种HEVC整 像素 运动估计 方法及装置,相关方案中每次搜索参考像素都是完全复用的,可以减少带宽,同时加快 数据处理 速度,粗搜索和细搜索阶段SAD计算单元复用,可以减少资源的利用。此外,相关方案以较低的资源利用率,实时性的特点完成HEVC标准下的整像素运动估计。,下面是HEVC整像素运动估计方法及装置专利的具体信息内容。

1.一种HEVC整像素运动估计装置,其特征在于,包括:
划分单元,用于将待处理的最大编码单元LCU根据LCU四叉树划分深度进行划分处理;
粗搜索单元,用于对划分后深度为0~2处的2N×2N的像素分别进行粗搜索,根据每个搜索点的率失真代价,确定各深度的像素块粗搜索的最佳匹配点;其中,N=8,16,32;粗搜索时,在±64范围内以步长为8进行全搜索;
细搜索单元,用于在细搜索时,对划分后的像素块以及参考图像搜索窗口进行下采样处理;对深度为0~2处的所有像素块分别进行细搜索,搜索中心点为相应深度粗搜索的最佳匹配点;对深度为3处的N×N的像素块分别进行细搜索,搜索中心点为深度2像素块粗搜索的最佳匹配点;根据每个搜索点的率失真代价,得到各个像素块细搜索的最佳匹配点,即各个像素块的最佳运动矢量;同时,进行最佳模式判决最终得到LCU的最佳划分模式;其中,细搜索时对各深度的像素块在相应搜索中心点±7范围内进行搜索,搜索步长为1。
2.根据权利要求1所述的一种HEVC整像素运动估计装置,其特征在于,所述粗搜索时,划分后待处理的像素块存储于Current RAM中,参考像素存储于Reference RAM中;
LCU的像素大小为64×64,当划分为深度为1的四个32×32的像素块时,分别对四个32×32的像素块进行粗搜索;其中,64×64的LCU的深度为0;
对于每一个32×32的像素块,其还包含了深度为2的四个16×16的像素块,则对于这五个像素块进行粗搜索时,采用层次复用的参考像素调度策略来进行不同搜索点参考像素的调度,从而获得每一像素块在各搜索点的SAD值;
利用一个深度为256的SAD RAM来存储32×32的像素块的SAD值;当四个32×32的像素块粗搜索完成后,能够得到深度为0的64×64的LCU在各搜索点的SAD值;
利用相应运动矢量的编码比特数R(MV),及其在各搜索点的SAD值,来计算用每一深度的像素块在各搜索点的率失真代价:
RD cost=SAD+λR(MV);
上式中,λ拉格朗日乘数因子;
对于每一深度的像素块,选择率失真代价最小的搜索点作为最佳匹配点。
3.根据权利要求2所述的一种HEVC整像素运动估计装置,其特征在于,所述采用层次复用的参考像素调度策略来进行不同搜索点参考像素的调度,从而获得每一像素块在各搜索点的SAD值包括:
对于32×32的像素块,将其分为四个32×8的像素块,并将160×160像素的参考图像搜索窗口划分为20个160×8的像素块,每一160×8的像素块称为一个8行参考像素;取参考图像搜索窗口第一个8行参考像素,能够计算第一个32×8像素块在mvy=-64时16个搜索点的SAD值,记为SAD_0;取参考图像搜索窗口第二个8行参考像素,能够计算第二个32×8像素块的mvy=-64的SAD,记为SAD_1,同时也能计算第一个32×8像素块在mvy=-56的SAD;取参考图像搜索窗口第三个8行参考像素,能计算第三个32×8像素块的mvy=-64的SAD,记为SAD_
2,也能计算第二个32×8像素块在mvy=-56的SAD,以及第一个32×8像素块在mvy=-48的SAD;取参考图像搜索窗口中第四个8行参考像素,能计算第四个32×8像素块的mvy=-64的SAD,记为SAD_3,也能计算第三个32×8像素块在mvy=-56的SAD、第二个32×8像素块在mvy=-48的SAD,以及第一个32×8像素块在mvy=-40的SAD;合并SAD_0、SAD_1、SAD_2和SAD_3,得到32×32的像素块在mvy=-64的SAD值;依次类推,采用上述方式直至计算完成所有的搜索点的SAD值;
采用这种策略,每次计算时只需取8行参考像素则能完成SAD的计算;其中,采用两个8行寄存器缓冲参考图像中的8行参考像素;第一个8行寄存器缓冲先缓冲参考图像搜索窗口的第一个8行像素,之后全部转移到第二个8行寄存器;每个周期第二个8行寄存器向右移8个像素,同时第一个8行寄存器缓存参考图像搜索窗口的下一个8行参考像素;这两个8行寄存器在粗搜索与细搜索时复用,且第一个8行寄存器设为line buffer形式;
对于32×32的像素块中所包含的四个16×16的像素块,将每一16×16的像素块划分为两个16×8的像素块,再以步长为8在±64范围内进行全搜索,且采用8个深度为16的FIFO模块来缓存每一16×8的像素块的SAD值。
4.根据权利要求1或2或3所述的一种HEVC整像素运动估计装置,其特征在于,所述细搜索时,对划分后的像素块以及参考图像搜索窗口进行2:1下采样处理;利用光栅扫描的方式来处理参考像素,达到完全复用上下左右搜索点的参考像素的目的;对参考像素左右方向采用循环右移方式,上下方向采用向下移位方式;
对于深度为1的32×32的像素块需要46×46个参考像素块,共需要46×32个8bit寄存器,则经过下采样处理后共需要46×16个8bit寄存器;对于深度为2的16×16的像素块需要
30×30参考像素块,共需要30×16个8bit寄存器,则经过下采样处理后共需要30×8个8bit寄存器;同时,复用粗搜索中的两个8行寄存器,进行参考像素的缓冲与调用。
5.一种HEVC整像素运动估计方法,其特征在于,通过权利要求1~4任一项所述的装置实现,该方法包括:
将待处理的最大编码单元LCU根据LCU四叉树划分深度进行划分处理;
对划分后深度为0~2处的2N×2N的像素块分别进行粗搜索,根据每个搜索点的率失真代价,确定各深度的像素块粗搜索的最佳匹配点;其中,N=8,16,32;粗搜索时,在±64范围内以步长为8进行全搜索;
在细搜索时,对划分后的像素块以及参考图像搜索窗口进行下采样处理;对深度为0~
2处的所有像素块分别进行细搜索,搜索中心点为相应深度粗搜索的最佳匹配点;对深度为
3处的N×N的像素块分别进行细搜索,搜索中心点为深度2像素块粗搜索的最佳匹配点;最终得到各个像素块细搜索的最佳匹配点,即各个像素块的最佳运动矢量;同时,进行最佳模式判决最终得到LCU的最佳划分模式;其中,细搜索时对各深度的像素块在相应搜索中心点±7范围内进行搜索,搜索步长为1。
6.根据权利要求5所述的一种HEVC整像素运动估计方法,其特征在于,所述粗搜索时,划分后待处理的像素块存储于Current RAM中,参考像素存储于Reference RAM中;
LCU的像素大小为64×64,当划分为深度为1的四个32×32的像素块时,分别对四个32×32的像素块进行粗搜索;其中,64×64的LCU的深度为0;
对于每一个32×32的像素块,其还包含了深度为2的四个16×16的像素块,则对于这五个像素块进行粗搜索时,采用层次复用的参考像素调度策略来进行不同搜索点参考像素的调度,从而获得每一像素块在各搜索点的SAD值;
利用一个深度为256的SAD RAM来存储32×32的像素块的SAD值;当四个32×32的像素块粗搜索完成后,能够得到深度为0的64×64的LCU在各搜索点的SAD值;
利用相应运动矢量的编码比特数R(MV),及其在各搜索点的SAD值,来计算用每一深度的像素块在各搜索点的率失真代价:
RD cost=SAD+λR(MV);
上式中,λ拉格朗日乘数因子;
对于每一深度的像素块,选择率失真代价最小的搜索点作为最佳匹配点。
7.根据权利要求5所述的一种HEVC整像素运动估计方法,其特征在于,所述采用层次复用的参考像素调度策略来进行不同搜索点参考像素的调度,从而获得每一像素块在各搜索点的SAD值包括:
对于32×32的像素块,将其分为四个32×8的像素块,并将160×160像素的参考图像搜索窗口划分为20个160×8的像素块,每一160×8的像素块称为一个8行参考像素;取参考图像搜索窗口第一个8行参考像素,能够计算第一个32×8像素块在mvy=-64时16个搜索点的SAD值,记为SAD_0;取参考图像搜索窗口第二个8行参考像素,能够计算第二个32×8像素块的mvy=-64的SAD,记为SAD_1,同时也能计算第一个32×8像素块在mvy=-56的SAD;取参考图像搜索窗口第三个8行参考像素,能计算第三个32×8像素块的mvy=-64的SAD,记为SAD_
2,也能计算第二个32×8像素块在mvy=-56的SAD,以及第一个32×8像素块在mvy=-48的SAD;取参考图像搜索窗口中第四个8行参考像素,能计算第四个32×8像素块的mvy=-64的SAD,记为SAD_3,也能计算第三个32×8像素块在mvy=-56的SAD、第二个32×8像素块在mvy=-48的SAD,以及第一个32×8像素块在mvy=-40的SAD;合并SAD_0、SAD_1、SAD_2和SAD_3,得到32×32的像素块在mvy=-64的SAD值;依次类推,采用上述方式直至计算完成所有的搜索点的SAD值;
采用这种策略,每次计算时只需取8行参考像素则能完成SAD的计算;其中,采用两个8行寄存器缓冲参考图像中的8行参考像素;第一个8行寄存器缓冲先缓冲参考图像搜索窗口的第一个8行像素,之后全部转移到第二个8行寄存器;每个周期第二个8行寄存器向右移8个像素,同时第一个8行寄存器缓存参考图像搜索窗口的下一个8行参考像素;这两个8行寄存器在粗搜索与细搜索时复用,且第一个8行寄存器设为line buffer形式;
对于32×32的像素块中所包含的四个16×16的像素块,将每一16×16的像素块划分为两个16×8的像素块,再以步长为8在±64范围内进行全搜索,且采用8个深度为16的FIFO模块来缓存每一16×8的像素块的SAD值。
8.根据权利要求5或6或7所述的一种HEVC整像素运动估计方法,其特征在于,所述细搜索时,对划分后的像素块以及参考图像搜索窗口进行2:1下采样处理;利用光栅扫描的方式来处理参考像素,达到完全复用上下左右搜索点的参考像素的目的;对参考像素左右方向采用循环右移方式,上下方向采用向下移位方式;
对于深度为1的32×32的像素块需要46×46个参考像素块,共需要46×32个8bit寄存器,则经过下采样处理后共需要46×16个8bit寄存器;对于深度为2的16×16的像素块需要
30×30参考像素块,共需要30×16个8bit寄存器,则经过下采样处理后共需要30×8个8bit寄存器;同时,复用粗搜索中的两个8行寄存器,进行参考像素的缓冲与调用。

说明书全文

HEVC整像素运动估计方法及装置

技术领域

[0001] 本发明涉及高清数字视频压缩编码技术领域,尤其涉及一种HEVC整像素运动估计方法及装置。

背景技术

[0002] HEVC(High Efficiency Video Coding)是下一代视频压缩编码标准。在相同视频清晰度的情况下,视频压缩后的码率只有H.264的50%。
[0003] 整像素运动估计是间预测的一部分,在HEVC中,CU(code unit)是最基本的帧间编码单元,其尺寸大小为64×64,32×32,,16×16,8×8,单位为像素。每个CU可以被划分为多个PU,PU是帧间预测的基本单元,大小可以从8×4到64×64。
[0004] 运动估计是在已编码的图(参考帧)中为当前PU寻找一个最佳匹配,该块与当前PU相对位置的偏移即为最优运动矢量(MV,motion vector)。
[0005] 在HEVC中,图像处理像素块的大小最大为64×64,这对数据带宽和速度都提出了非常大的挑战,为此有必要进行深入研究,以减少带宽成本和数据处理代价。

发明内容

[0006] 本发明的目的是提供一种HEVC整像素运动估计方法及装置,可以以较低的带宽成本和数据处理代价完成HEVC标准下的整像素运动估计。
[0007] 本发明的目的是通过以下技术方案实现的:
[0008] 一种HEVC整像素运动估计装置,包括:
[0009] 划分单元,用于将待处理的最大编码单元LCU根据LCU四叉树划分深度进行划分处理;
[0010] 粗搜索单元,用于对划分后深度为0~2处的2N×2N的像素块分别进行粗搜索,根据每个搜索点的率失真代价,确定各深度的像素块粗搜索的最佳匹配点;其中,N=8,16,32;
[0011] 细搜索单元,用于在细搜索时,对划分后的像素块以及参考图像搜索窗口进行下采样处理;对深度为0~2处的所有像素块分别进行细搜索,搜索中心点为相应深度粗搜索的最佳匹配点;对深度为3处的N×N的像素块分别进行细搜索,搜索中心点为深度2像素块粗搜索的最佳匹配点;根据每个搜索点的率失真代价,得到各个像素块细搜索的最佳匹配点,即各个像素块的最佳运动矢量;同时,进行最佳模式判决最终得到LCU的最佳划分模式。
[0012] 所述粗搜索时,在±64范围内以步长为8进行全搜索;其中,划分后待处理的像素块存储于Current RAM中,参考像素存储于Reference RAM中;
[0013] LCU的像素大小为64×64,当划分为深度为1的四个32×32的像素块时,分别对四个32×32的像素块进行粗搜索;其中,64×64的LCU的深度为0;
[0014] 对于每一个32×32的像素块,其还包含了深度为2的四个16×16的像素块,则对于这五个像素块进行粗搜索时,采用层次复用的参考像素调度策略来进行不同搜索点参考像素的调度,从而获得每一像素块在各搜索点的SAD值;
[0015] 利用一个深度为256的SAD RAM来存储32×32的像素块的SAD值;当四个32×32的像素块粗搜索完成后,能够得到深度为0的64×64的LCU在各搜索点的SAD值;
[0016] 利用相应运动矢量的编码比特数R(MV),及其在各搜索点的SAD值,来计算用每一深度的像素块在各搜索点的率失真代价:
[0017] RD cost=SAD+λR(MV);
[0018] 上式中,λ拉格朗日乘数因子;
[0019] 对于每一深度的像素块,选择率失真代价最小的搜索点作为最佳匹配点。
[0020] 所述采用层次复用的参考像素调度策略来进行不同搜索点参考像素的调度,从而获得每一像素块在各搜索点的SAD值包括:
[0021] 对于32×32的像素块,将其分为四个32×8的像素块,并将160×160像素的参考图像搜索窗口划分为20个160×8的像素块,每一160×8的像素块称为一个8行参考像素;取参考图像搜索窗口第一个8行参考像素,能够计算第一个32×8像素块在mvy=-64时16个搜索点的SAD值,记为SAD_0;取参考图像搜索窗口第二个8行参考像素,能够计算第二个32×8像素块的mvy=-64的SAD,记为SAD_1,同时也能计算第一个32×8像素块在mvy=-56的SAD;取参考图像搜索窗口第三个8行参考像素,能计算第三个32×8像素块的mvy=-64的SAD,记为SAD_2,也能计算第二个32×8像素块在mvy=-56的SAD,以及第一个32×8像素块在mvy=-48的SAD;取参考图像搜索窗口中第四个8行参考像素,能计算第四个32×8像素块的mvy=-
64的SAD,记为SAD_3,也能计算第三个32×8像素块在mvy=-56的SAD、第二个32×8像素块在mvy=-48的SAD,以及第一个32×8像素块在mvy=-40的SAD;合并SAD_0、SAD_1、SAD_2和SAD_3,得到32×32的像素块在mvy=-64的SAD值;依次类推,采用上述方式直至计算完成所有的搜索点的SAD值;
[0022] 采用这种策略,每次计算时只需取8行参考像素则能完成SAD的计算;其中,采用两个8行寄存器缓冲参考图像中的8行参考像素;第一个8行寄存器缓冲先缓冲参考图像搜索窗口的第一个8行像素,之后全部转移到第二个8行寄存器;每个周期第二个8行寄存器向右移8个像素,同时第一个8行寄存器缓存参考图像搜索窗口的下一个8行参考像素;这两个8行寄存器在粗搜索与细搜索时复用,且第一个8行寄存器设为line buffer形式;
[0023] 对于32×32的像素块中所包含的四个16×16的像素块,将每一16×16的像素块划分为两个16×8的像素块,再以步长为8在±64范围内进行全搜索,且采用8个深度为16的FIFO模块来缓存每一16×8的像素块的SAD值。
[0024] 所述细搜索时,对划分后的像素块以及参考图像搜索窗口进行2:1下采样处理,对各深度的像素块在相应搜索中心点±7范围内进行搜索,搜索步长为1;利用光栅扫描的方式来处理参考像素,达到完全复用上下左右搜索点的参考像素的目的;对参考像素左右方向采用循环右移方式,上下方向采用向下移位方式;
[0025] 对于深度为1的32×32的像素块需要46×46个参考像素块,共需要46×32个8bit寄存器,则经过下采样处理后共需要46×16个8bit寄存器;对于深度为2的16×16的像素块需要30×30参考像素块,共需要30×16个8bit寄存器,则经过下采样处理后共需要30×8个8bit寄存器;同时,复用粗搜索中的两个8行寄存器,进行参考像素的缓冲与调用。
[0026] 一种HEVC整像素运动估计方法,通过前述的装置实现,该方法包括:
[0027] 将待处理的最大编码单元LCU根据LCU四叉树划分深度进行划分处理;
[0028] 对划分后深度为0~2处的2N×2N的像素块分别进行粗搜索,根据每个搜索点的率失真代价,确定各深度的像素块粗搜索的最佳匹配点;其中,N=8,16,32;
[0029] 在细搜索时,对划分后的像素块以及参考图像搜索窗口进行下采样处理;对深度为0~2处的所有像素块分别进行细搜索,搜索中心点为相应深度粗搜索的最佳匹配点;对深度为3处的N×N的像素块分别进行细搜索,搜索中心点为深度2像素块粗搜索的最佳匹配点;最终得到各个像素块细搜索的最佳匹配点,即各个像素块的最佳运动矢量;同时,进行最佳模式判决最终得到LCU的最佳划分模式。
[0030] 所述粗搜索时,在±64范围内以步长为8进行全搜索;其中,划分后待处理的像素块存储于Current RAM中,参考像素存储于Reference RAM中;
[0031] LCU的像素大小为64×64,当划分为深度为1的四个32×32的像素块时,分别对四个32×32的像素块进行粗搜索;其中,64×64的LCU的深度为0;
[0032] 对于每一个32×32的像素块,其还包含了深度为2的四个16×16的像素块,则对于这五个像素块进行粗搜索时,采用层次复用的参考像素调度策略来进行不同搜索点参考像素的调度,从而获得每一像素块在各搜索点的SAD值;
[0033] 利用一个深度为256的SAD RAM来存储32×32的像素块的SAD值;当四个32×32的像素块粗搜索完成后,能够得到深度为0的64×64的LCU在各搜索点的SAD值;
[0034] 利用相应运动矢量的编码比特数R(MV),及其在各搜索点的SAD值,来计算用每一深度的像素块在各搜索点的率失真代价:
[0035] RD cost=SAD+λR(MV);
[0036] 上式中,λ拉格朗日乘数因子;
[0037] 对于每一深度的像素块,选择率失真代价最小的搜索点作为最佳匹配点。
[0038] 所述采用层次复用的参考像素调度策略来进行不同搜索点参考像素的调度,从而获得每一像素块在各搜索点的SAD值包括:
[0039] 对于32×32的像素块,将其分为四个32×8的像素块,并将160×160像素的参考图像搜索窗口划分为20个160×8的像素块,每一160×8的像素块称为一个8行参考像素;取参考图像搜索窗口第一个8行参考像素,能够计算第一个32×8像素块在mvy=-64时16个搜索点的SAD值,记为SAD_0;取参考图像搜索窗口第二个8行参考像素,能够计算第二个32×8像素块的mvy=-64的SAD,记为SAD_1,同时也能计算第一个32×8像素块在mvy=-56的SAD;取参考图像搜索窗口第三个8行参考像素,能计算第三个32×8像素块的mvy=-64的SAD,记为SAD_2,也能计算第二个32×8像素块在mvy=-56的SAD,以及第一个32×8像素块在mvy=-48的SAD;取参考图像搜索窗口中第四个8行参考像素,能计算第四个32×8像素块的mvy=-
64的SAD,记为SAD_3,也能计算第三个32×8像素块在mvy=-56的SAD、第二个32×8像素块在mvy=-48的SAD,以及第一个32×8像素块在mvy=-40的SAD;合并SAD_0、SAD_1、SAD_2和SAD_3,得到32×32的像素块在mvy=-64的SAD值;依次类推,采用上述方式直至计算完成所有的搜索点的SAD值;
[0040] 采用这种策略,每次计算时只需取8行参考像素则能完成SAD的计算;其中,采用两个8行寄存器缓冲参考图像中的8行参考像素;第一个8行寄存器缓冲先缓冲参考图像搜索窗口的第一个8行像素,之后全部转移到第二个8行寄存器;每个周期第二个8行寄存器向右移8个像素,同时第一个8行寄存器缓存参考图像搜索窗口的下一个8行参考像素;这两个8行寄存器在粗搜索与细搜索时复用,且第一个8行寄存器设为line buffer形式;
[0041] 对于32×32的像素块中所包含的四个16×16的像素块,将每一16×16的像素块划分为两个16×8的像素块,再以步长为8在±64范围内进行全搜索,且采用8个深度为16的FIFO模块来缓存每一16×8的像素块的SAD值。
[0042] 所述细搜索时,对划分后的像素块以及参考图像搜索窗口进行2:1下采样处理,对各深度的像素块在相应搜索中心点±7范围内进行搜索,搜索步长为1;利用光栅扫描的方式来处理参考像素,达到完全复用上下左右搜索点的参考像素的目的;对参考像素左右方向采用循环右移方式,上下方向采用向下移位方式;
[0043] 对于深度为1的32×32的像素块需要46×46个参考像素块,共需要46×32个8bit寄存器,则经过下采样处理后共需要46×16个8bit寄存器;对于深度为2的16×16的像素块需要30×30参考像素块,共需要30×16个8bit寄存器,则经过下采样处理后共需要30×8个8bit寄存器;同时,复用粗搜索中的两个8行寄存器,进行参考像素的缓冲与调用。
[0044] 由上述本发明提供的技术方案可以看出,每次搜索参考像素都是完全复用的,可以减少带宽,同时加快数据处理速度,粗搜索和细搜索阶段SAD计算单元复用,可以减少资源的利用;此外,该方案以较低的资源利用率,实时性的特点完成HEVC标准下的整像素运动估计。附图说明
[0045] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
[0046] 图1为本发明实施例提供的一种HEVC整像素运动估计装置的示意图;
[0047] 图2为本发明实施例提供的粗搜索时层次复用的参考像素调度策略的示意图;
[0048] 图3为本发明实施例提供的粗搜索的实现框架示意图;
[0049] 图4为本发明实施例提供的对深度为0的像素块的细搜索时下采样及分块示意图;
[0050] 图5为本发明实施例提供的细搜索对参考像素进行移位操作示意图;
[0051] 图6为本发明实施例提供的整个装置的工作流程图
[0052] 图7为本发明实施例提供的整个装置的工作示意图;
[0053] 图8为本发明实施例提供的装置的实现框架示意图。

具体实施方式

[0054] 下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0055] 本发明实施例提供一种HEVC整像素运动估计装置,如图1所示,该装置主要包括:
[0056] 划分单元,用于将待处理的最大编码单元(LCU)根据LCU四叉树划分深度进行划分处理;
[0057] 粗搜索单元,用于对划分后深度为0~2处的2N×2N的像素块分别进行粗搜索,根据每个搜索点的率失真代价,确定各深度的像素块粗搜索的最佳匹配点;其中,N=8,16,32;
[0058] 细搜索单元,用于在细搜索时,对划分后的像素块以及参考图像搜索窗口进行下采样处理;对深度为0~2处的所有像素块分别进行细搜索,搜索中心点为相应深度粗搜索的最佳匹配点;对深度为3处的N×N的像素块分别进行细搜索,搜索中心点为深度2像素块粗搜索的最佳匹配点;根据每个搜索点的率失真代价,得到各个像素块细搜索的最佳匹配点,即各个像素块的最佳运动矢量;同时,进行最佳模式判决最终得到LCU的最佳划分模式。
[0059] 本领域技术人员可以理解,LCU划分后的像素块即为CU,CU进一步划分后的像素块即为PU,文中为避免CU与PU的混用,因而统称像素块。
[0060] 本领域技术人员可以理解,上述划分单元、粗搜索单元、细搜索单元可以集成在处理器中。所属领域的技术人员还可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能;此外,该装置还包括若干寄存器以及RAM,以配合上述划分单元、粗搜索单元、细搜索单元来实现HEVC整像素运动估计,具体的将在下文介绍装置工作过程时进行详细的说明。
[0061] 一、像素块划分。
[0062] 本发明实施例中,首先要获取待处理的LCU,其像素大小为64×64;然后,按照LCU四叉树划分深度进行划分处理,如表1所示,为深度与像素块尺寸的对应关系表。
[0063]depth SIZE
depth=0 64×64,64×32,32×64
depth=1 32×32,32×16,16×32
depth=2 16×16,16×8,8×16
depth=3 8×8,8×4,4×8
[0064] 表1深度与像素块尺寸的对应关系
[0065] 在做整个运动估计时,预先并不知道LCU最终的划分情况,所以要遍历所有可能的LCU的划分方式,最终选择最好的划分方式。HEVC中支持了对称与非对称的划分方式,考虑硬件资源,本发明实施例的方案采用了对称划分方式;划分为2N×2N、N×N、2N×N、N×2N。
[0066] 如果将LCU划分为四个大小为32×32像素块,则参考图像搜索窗口大小为160×160像素。
[0067] 本发明实施例中,可以将划分后待处理的像素块存储于Current RAM中,参考像素存储于Reference RAM中;可选的,这两个RAM的位宽均可为32×8bit。
[0068] 二、粗搜索。
[0069] 本发明实施例中,粗搜索时,在±64范围内以步长为8进行全搜索;并只针对0~2处的2N×2N的像素块,即64×64,32×32,16×16的像素块。
[0070] 如果将LCU划分为四个大小为32×32像素块,则需要分别对四个32×32的像素块进行粗搜索;同理,如果采用其他表1所示的其他划分方式,也需要分别对划分后的像素块进行粗搜索。
[0071] 由于,对于每一个32×32的像素块,其还包含了深度为2的四个16×16的像素块,则对于这五个像素块进行粗搜索时,采用层次复用的参考像素调度策略来进行不同搜索点参考像素的调度,可以让其参考像素完全复用,从而获得每一像素块在各搜索点的SAD值。
[0072] 另外,为了方便进行LCU的粗搜索,利用一个深度为256的SAD RAM来存储32×32的像素块的SAD值;当四个32×32的像素块粗搜索完成后,就能够得到深度为0的64×64的LCU在各搜索点的SAD值。
[0073] 本发明实施例中,将率失真代价(Rate-Distortion cost,RDcost)作为确定最佳匹配点的依据,因此,可以利用相应运动矢量的编码比特数R(MV),其在各搜索点的SAD值,来计算用每一深度的像素块在各搜索点的率失真代价:
[0074] RD cost=SAD+λR(MV);
[0075] 上式中,λ拉格朗日乘数因子;
[0076] 对于每一深度的像素块,选择率失真代价最小的搜索点作为最佳匹配点。
[0077] 下面详细介绍层次复用的参考像素调度策略原理及其实现方式。
[0078] 在之前的步骤中已经提到了LCU有多种划分方式,以划分为四个大小为32×32像素块为例,在以32×32CU为一个SAD处理阵列时,搜索步长为8,对参考图像来说,相邻搜索点之间会有很多参考像素是相同的,如左右两点之间有24×32像素块是相同的,上下两点之间有32×24像素块是相同的。为减少处理的周期数,需考虑上下左右搜索点参考像素的完全复用,因而使用层次复用的参考像素调度策略,可以让其参考像素完全复用;具体的调度图如图2所示,具体如下:
[0079] 如图2(a)所示,对于32×32的像素块,将其分为四个32×8的像素块;并将160×160像素的参考图像搜索窗口划分为20个160×8的像素块,每一160×8的像素块称为一个8行参考像素;1)取图2(a)右边中参考图像搜索窗口第一个8行参考像素,可以计算图2(a)左中第一个32×8像素块在mvy=-64时16个搜索点的SAD值(如图2(b)所示),记为SAD_0,但是无法计算图2(a)左中第2、3、4的32×8像素块在mvy=-64的SAD值。2)取图2(a)右中参考图像搜索窗口第二个8行参考像素,可以计算图2(a)左中第二个32×8像素块的mvy=-64的SAD,记为SAD_1,同时也可以计算图2(a)左中第一个32×8像素块在mvy=-56的SAD(如图2(b)所示)。3)取图2(a)右中参考图像搜索窗口第三个8行参考像素,可以计算图2(a)左中第三个32×8像素块的mvy=-64的SAD,记为SAD_2。也可以计算图2(a)左中第二个32×8像素块在mvy=-56的SAD,还可以计算图2(a)左中第一个32×8像素块在mvy=-48的SAD(如图2(b)所示)。4)取图2(a)右中参考图像搜索窗口第四个8行参考像素时,则可以计算图2(a)左中第四个32×8像素块的mvy=-64的SAD,记为SAD_3。也可以计算图2(a)左中第三个32×8像素块在mvy=-56的SAD,计算图2(a)左中第二个32×8像素块在mvy=-48的SAD,计算图2(a)左中第一个32×8像素块在mvy=-40的SAD(如图2(b)所示)。5)合并SAD_0、SAD_1、SAD_2和SAD_3,可得到32×32的像素块在mvy=-64的SAD值。依次类推,采用上述方式直至计算完成所有的搜索点的SAD值。
[0080] 采用这种策略,每次计算时只需取8行参考像素则能完成SAD的计算。同理,对于32×32的像素块中所包含的四个16×16的像素块,将每一16×16的像素块划分为两个16×8的像素块,再以步长为8在±64范围内进行全搜索,但由于同一搜索点的SAD是分层得到的,因此,需要缓存每一个16×8的像素块的SAD值,本发明实施例中,采用了8个深度为16的FIFO模块来缓存每一16×8的像素块的SAD值。
[0081] 另一方面,本发明实施例中,为了配合层次复用的参考像素调度策略,采用了两个8行寄存器缓冲参考图像中的8行参考像素;第一个8行寄存器缓冲先缓冲参考图像搜索窗口的第一个8行像素,之后全部转移到第二个8行寄存器;每个周期第二个8行寄存器向右移
8个像素,同时第一个8行寄存器缓存参考图像搜索窗口的下一个8行参考像素;同时,这两个8行寄存器在粗搜索与细搜索时复用,每行是160个像素。
[0082] 粗搜索的实现框架如图3所示,图3中右上方的第一个Ref register array即为第一个8行寄存器,其从Reference RAM中读取参考图像搜索窗口的第一个8行像素,然后,转移到其下方的Ref register array(即第二个8行寄存器),第二个8行寄存器向右移15次就可计算出同一平位置16个搜索点的SAD值。图3中中间靠左部分的Cur PU registers存储了待进行粗搜索的像素块,其与Current RAM连接来读取相应数据。根据图2的层次复用的参考像素调度策略,将第二个8行参考像素寄存器最右端的32×8个像素送入4个SAD计算单元(即图3虚线框所示部分),最后,配合图3左下方的8个FIFO模块的数据从而可以计算得到各像素块在每个搜索点的率失真代价,最后,通过简单的数值比较方式就可以得到粗搜索的最优MV,也即粗搜索的最佳匹配点。
[0083] 三、细搜索。
[0084] 细搜索阶段是针对表1中所有深度的像素块(2N×2N,N×2N,2N×N)进行的,对不同深度的像素块以相应深度像素块在粗搜索得到的最佳匹配点为搜索中心点,在±7范围内以步长为1进行搜索,通过对相邻搜索点的参考像素进行移位操作,让其在调度过程中参考像素完全复用。
[0085] 本发明实施例中,细搜索之前,要对划分后的像素块以及参考图像搜索窗口进行2:1下采样处理。示例性的,如图4所示,对于LCU,其像素大小为64×64,进行2:1下采样处理为64×32的像素块,通常的SAD计算单元一次只能计算32×32像素块的SAD值,所以可以将
64×32的像素块分为两个32×32像素块来细搜索。粗搜索时,由于同一个LCU中,划分后的待处理的像素块的搜索中心点(或起始点)是相同的,因此,SAD计算单元可以合并,通过合并4个32×32像素块的SAD可以得到64×64像素块粗搜索的最佳MV,利用该最佳MV指向位置作为深度为0PU的细搜索中心点。但此时依然以深度为0的粗搜索的最佳匹配点作为搜索中心点。
[0086] 由于细搜索用全搜索算法,因而利用光栅扫描的方式来处理参考像素,达到完全复用上下左右搜索点的参考像素的目的;对参考像素左右方向采用循环右移方式,上下方向采用向下移位方式。
[0087] 本发明实施例中,对参考像素进行移位操作的过程如图5所示,为了便于图像的绘制,而采用了8×8大小的像素块为例进行介绍,图中带有灰度的像素块表示要送入SAD计算单元的参考像素的数据。其中,(a)通过循环右移可以得到同一水平方向相邻搜索点的参考像素,如(b),处理完同一水平方向搜索点后回到原来位置(c),然后再向下移位得到垂直方向相邻搜索点参考像素(d)。
[0088] 本领域技术人员可以理解,细搜索时主要是参考像素的获取,后续计算SAD值也可以通过常规方式实现。
[0089] 在具体实现时,细搜索需要配合若干寄存器进行参考像素块的存储、调用。对于深度为1的32×32的像素块需要46×46(7+32+7)个参考像素块,共需要46×32个8bit寄存器,则经过下采样处理后共需要46×16个8bit寄存器;对于深度为2的16×16的像素块需要30×30(7+16+7)参考像素块,共需要30×16个8bit寄存器,则经过下采样处理后共需要30×8个8bit寄存器;同时,复用粗搜索中的两个8行寄存器,进行参考像素的缓冲与调用。此外,由于参考像素都存储于Reference RAM,同一行参考像素在一个周期就可得到。
[0090] 同理,最终可以得到各个像素块细搜索的最佳匹配点,即各个像素块的最佳运动矢量;同时,根据相应像素块最佳运动矢量,通过最佳模式判决可得到LCU的最佳划分模式。
[0091] 结合上文的内容,整个装置的工作流程图、工作示意图,及实现框架分别如图6~8所示。
[0092] 图6为整个装置的工作流程图。图6的左侧部分为像素块划分及粗搜索过程,右侧部分为细搜索过程,根据像素块的深度分为两套处理流程,细搜索的原理一样,区别在于由于深度3的像素块没有进行粗搜索,因而,需要使用深度2的像素块粗搜索的最佳匹配点作为搜索中心点,而深度0~2的像素块则直接使用其粗搜索的最佳匹配点作为搜索中心点。
[0093] 图7整个装置的工作示意图,主要涉及粗搜索与细搜索过程,及这两个过程所涉及的搜索范围等参数。
[0094] 图8为装置的实现框架。图8中,所涉及的RAM、寄存器等器件在前文中也提到过了,这里主要通过这些器件来展示工作过程;其中的MVcost单元提供率失真代价计算时所需要的运动矢量的编码比特数R(MV),RDcost单元是用来计算率失真代价(还接收图3中8个FIFO模块的数据,图8中未示出),Comparator单元是用来进行计算率失真代价的比较,从而获得最优运动矢量(Best MV)。本领域技术人员可以理解,RDcost单元、Comparator单元的主要负责粗搜索、细搜索时率失真代价的计算与比较,也就是说,在实际工作中,可以将RDcost单元、Comparator单元独立设置,前文提到的粗搜索单元、细搜索单元负责搜索过程,然后配合RDcost单元、Comparator单元进行后续工作,使得RDcost单元、Comparator单元在粗搜索、细搜索时复用。
[0095] 本领域技术人员可以理解,粗搜索时,由于同一个LCU中,划分后的待处理的像素块的搜索中心点(或起始点)是相同的,因此,SAD计算单元可以合并,通过合并4个32×32像素块的SAD可以得到64×64像素块的SAD;所以在粗搜索时,根据需要的数据存入Current RAM中。同理,在细搜索阶段,由于深度为0的像素块是分成两块处理的,所以每次处理时,也是根据需要的数据存入Current RAM中。
[0096] 另一方面,还将本发明实施例上述方案与HM中算法在编码效率上的差异进行比较,比较结果如表2所示。
[0097]
[0098]
[0099] 表2比较结果
[0100] 表2中的配置模式:Lowdelay-P、Lowdelay、Random Access是制定HEVC标准的官方给的参考软件HM中的三种软件运行参数的配置方式。运动估计中,这三种配置模式主要定义的参考帧的选取方式。Lowdelay-P配置中,对当前帧的参考帧选取一般是单向预测模式。Lowdelay和Random Access配置中,对当前帧的参考帧选取一般是双向预测模式。使用本发明提供的方法和HM中的运动估计算法进行比较,比较结果用BD-rate和BD-PNSR这两个参数来衡量。BD-rate表示两种算法的最后编码比特数的区别,BD-PNSR表示重建图像和原图像的差异。PNSR表示峰值信噪比
[0101] 根据表2可知,本发明采用的算法在Random Access的配置下的BD-rate增多为5.71%,结合硬件设计的资源大小和数据组织的难易程度,5.71%在硬件上是可以接受的。
[0102] 本发明实施例上述方案中,每次搜索参考像素都是完全复用的,可以减少带宽,同时加快数据处理速度,粗搜索和细搜索阶段SAD计算单元复用,可以减少资源的利用。该匹配方法以较低的资源利用率,实时性的特点完成HEVC标准下的整像素运动估计。
[0103] 另一方面,本发明实施例还提供一种HEVC整像素运动估计方法,该方法基于前述实施例所述的装置实现,该方法主要包括:
[0104] 将待处理的最大编码单元LCU根据LCU四叉树划分深度进行划分处理;
[0105] 对划分后深度为0~2处的2N×2N的像素块分别进行粗搜索,根据每个搜索点的率失真代价,确定各深度的像素块粗搜索的最佳匹配点;其中,N=8,16,32;
[0106] 在细搜索时,对划分后的像素块以及参考图像搜索窗口进行下采样处理;对深度为0~2处的所有像素块分别进行细搜索,搜索中心点为相应深度粗搜索的最佳匹配点;对深度为3处的N×N的像素块分别进行细搜索,搜索中心点为深度2像素块粗搜索的最佳匹配点;最终得到各个像素块细搜索的最佳匹配点,即各个像素块的最佳运动矢量;同时,进行最佳模式判决最终得到LCU的最佳划分模式。
[0107] 进一步的,所述粗搜索时,在±64范围内以步长为8进行全搜索;其中,划分后待处理的像素块存储于Current RAM中,参考像素存储于Reference RAM中;
[0108] LCU的像素大小为64×64,当划分为深度为1的四个32×32的像素块时,分别对四个32×32的像素块进行粗搜索;其中,64×64的LCU的深度为0;
[0109] 对于每一个32×32的像素块,其还包含了深度为2的四个16×16的像素块,则对于这五个像素块进行粗搜索时,采用层次复用的参考像素调度策略来进行不同搜索点参考像素的调度,从而获得每一像素块在各搜索点的SAD值;
[0110] 利用一个深度为256的SAD RAM来存储32×32的像素块的SAD值;当四个32×32的像素块粗搜索完成后,能够得到深度为0的64×64的LCU在各搜索点的SAD值;
[0111] 利用相应运动矢量的编码比特数R(MV),及其在各搜索点的SAD值,来计算用每一深度的像素块在各搜索点的率失真代价:
[0112] RD cost=SAD+λR(MV);
[0113] 上式中,λ拉格朗日乘数因子;
[0114] 对于每一深度的像素块,选择率失真代价最小的搜索点作为最佳匹配点。
[0115] 进一步的,所述采用层次复用的参考像素调度策略来进行不同搜索点参考像素的调度,从而获得每一像素块在各搜索点的SAD值包括:
[0116] 对于32×32的像素块,将其分为四个32×8的像素块,并将160×160像素的参考图像搜索窗口划分为20个160×8的像素块,每一160×8的像素块称为一个8行参考像素;取参考图像搜索窗口第一个8行参考像素,能够计算第一个32×8像素块在mvy=-64时16个搜索点的SAD值,记为SAD_0;取参考图像搜索窗口第二个8行参考像素,能够计算第二个32×8像素块的mvy=-64的SAD,记为SAD_1,同时也能计算第一个32×8像素块在mvy=-56的SAD;取参考图像搜索窗口第三个8行参考像素,能计算第三个32×8像素块的mvy=-64的SAD,记为SAD_2,也能计算第二个32×8像素块在mvy=-56的SAD,以及第一个32×8像素块在mvy=-48的SAD;取参考图像搜索窗口中第四个8行参考像素,能计算第四个32×8像素块的mvy=-64的SAD,记为SAD_3,也能计算第三个32×8像素块在mvy=-56的SAD、第二个32×8像素块在mvy=-48的SAD,以及第一个32×8像素块在mvy=-40的SAD;合并SAD_0、SAD_1、SAD_2和SAD_3,得到32×32的像素块在mvy=-64的SAD值;依次类推,采用上述方式直至计算完成所有的搜索点的SAD值;
[0117] 采用这种策略,每次计算时只需取8行参考像素则能完成SAD的计算;其中,采用两个8行寄存器缓冲参考图像中的8行参考像素;第一个8行寄存器缓冲先缓冲参考图像搜索窗口的第一个8行像素,之后全部转移到第二个8行寄存器;每个周期第二个8行寄存器向右移8个像素,同时第一个8行寄存器缓存参考图像搜索窗口的下一个8行参考像素;这两个8行寄存器在粗搜索与细搜索时复用,且第一个8行寄存器设为line buffer形式;
[0118] 对于32×32的像素块中所包含的四个16×16的像素块,将每一16×16的像素块划分为两个16×8的像素块,再以步长为8在±64范围内进行全搜索,且采用8个深度为16的FIFO模块来缓存每一16×8的像素块的SAD值。
[0119] 进一步的,所述细搜索时,对划分后的像素块以及参考图像搜索窗口进行2:1下采样处理,对各深度的像素块在相应搜索中心点±7范围内进行搜索,搜索步长为1;利用光栅扫描的方式来处理参考像素,达到完全复用上下左右搜索点的参考像素的目的;对参考像素左右方向采用循环右移方式,上下方向采用向下移位方式;
[0120] 对于深度为1的32×32的像素块需要46×46个参考像素块,共需要46×32个8bit寄存器,则经过下采样处理后共需要46×16个8bit寄存器;对于深度为2的16×16的像素块需要30×30参考像素块,共需要30×16个8bit寄存器,则经过下采样处理后共需要30×8个8bit寄存器;同时,复用粗搜索中的两个8行寄存器,进行参考像素的缓冲与调用。
[0121] 需要说明的是,上述方法所设计的各个器件在前面的实施例中已经有详细描述,故在这里不再赘述。
[0122] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈