法律状态公告日
法律状态信息
法律状态
2018-08-03
授权
授权
2016-09-14
实质审查的生效 IPC(主分类):H04N19/176 申请日:20160516
实质审查的生效
2016-08-17
公开
公开
技术领域
本发明涉及视频编码技术领域,尤其涉及一种基于块搜索和正交匹配追踪的视频变换编码方法。
背景技术
近年来,随着高清、超高清视频的普及,视频原始数据量急剧增加,给存储和传输带来巨大压力。如何进一步提高视频编码的压缩效率是一个至关重要的问题。
目前广泛采用的视频编码标准,如H.264和HEVC(High Efficiency VideoCoding,高性能视频编码),都基于混合视频编码框架,一般由以下几部分组成,预测(Prediction)、变换(Transform)、量化(Quantization)和熵编码(Entropy Coding)。其中,变换技术用于处理当前编码块的预测残差,使其能量集中在少数几个系数上(而其他系数为零),从而去除残差中的空间冗余。在HEVC标准中,规定主要采用离散余弦变换(DCT),部分采用离散正弦变换(DST)。这些变换的基函数都是固定的,并不会随着当前编码块的残差而改变。因此,在处理具有不同特性的残差时,DCT/DST并不总是能够得到很好的能量聚集,使得编码效率低下。
针对固定变换基函数存在的问题,Lan等提出了信号依赖的变换(SDT)[C.Lan,J.Xu,G.Shi,F.Wu,“Exploiting non-local correlation via signal-dependenttransform(SDT),”IEEE Journal of Selected Topics in Signal Processing,vol.5,no.7,pp.1298–1308,2011],该方法的主要思路是通过块搜索找出与当前编码块可能相似的图像块,利用这些相似块采用Karhunen–Loève变换(KLT)求得一组正交基函数,再对当前块的残差进行变换。因此,每个编码块的基函数都可能各不相同,较好地适应了残差的不同特性。然而该方法存在的问题是KLT的计算复杂度非常高,可能造成视频解码计算速度慢而无法满足实际应用的需求。
发明内容
本发明的目的是提供一种基于块搜索和正交匹配追踪的视频变换编码方法,可以提升压缩效率且尽量减少变换的计算复杂度。
本发明的目的是通过以下技术方案实现的:
一种基于块搜索和正交匹配追踪的视频变换编码方法,包括:
对当前编码块进行运动估计以获得时间预测值,并基于所述时间预测值获得当前编码块的残差;
基于当前编码块的空间邻域和时间预测,搜索当前编码块的匹配块,并利用聚类算法获得正交匹配追踪OMP变换的词典;
以当前编码块的残差在OMP变换的词典上进行OMP变换,获得变得系数,完成视频变换编码。
所述基于所述时间预测值获得当前编码块的残差包括:
将当前编码块的原始值减去时间预测值获得当前编码块的残差。
所述基于当前编码块的空间邻域和时间预测,搜索当前编码块的匹配块包括:
构建搜索基准Target Patch:将当前编码块的上边与左边呈倒L型的重建区域作为模版Template,并在当前编码块的位置上加入时间预测的像素值,其大小等于当前编码块的大小;其中,当前编码块的大小为N×N,Template中左边的宽度和上边的高度均为T;
利用MSE的准则在参考帧中搜索相似的块:
其中,pcandi为参考帧中重建区域的一个块,ppatch为构建的Target>candi(i,j)表示位置(i,j)处的像素值,类比于ppatch(i,j);
选取具有最小MSE的前M个块l=0,1,2,...,M-1作为匹配块参与词典的构建。
所述利用聚类算法获得OMP变换的词典包括:
获取OMP变换所需的基其中,表示第l个匹配块去除倒L型Template后的像素值,pmcp为运动补偿预测的像素值;
将进行能量归一化:其中,|xl|是的模;
将能量归一化后的向量作为OMP变换的词典,词典大小为M;
或者,获取OMP变换所需的基后,利用聚类算法将l=0,1,2,...,M-1进行聚类,取K个聚类中心Q:Q=[u1,u2,...,uK];
再对聚类中心Q中的各个元素进行相应的能量归一化,将能量归一化后的聚类中心Q作为OMP变换的词典,词典大小为K。
所述以当前编码块的残差在OMP变换的词典上进行OMP变换,获得变得系数包括:
当前编码块的残差为r,OMP变换的词典为D,词典D的大小为M或者为K,则OMP变换即为求解下述方程:r=Dy;其中,y为变换系数;求解时的输入参数为r、D以及给定非零变换系数的个数m;
假设词典D的大小为K,则求解包含位置信息Pm的变换系数y∈RK×1的过程如下:
a、初始化:令r0=r,y(w)=0,w=0,1,...,K-1,被选择词典D中的元素集合t=1;其中,y(w)=0表示初始化时将所有变换系数都设为0;
b、按下述公式找到当前状态下最优词典D中的元素的下标λ:
c、利用找到的下标λ更新第t次迭代后的位置集合Pt=Pt-1∪{λ},以及更新被选择词典D中的元素集合Φt=Φt-1∪{uλ},并令uλ=0;
d、求解系数yt:其中,δ为常数,I表示大小为t×t的单位矩阵,yt表示第t次迭代获得的变换系数,其维度为t×1;
e、t=t+1,如果t<m,则跳至步骤b;
f、此时,t=m,得到Pm∈Rm×1,ym∈Rm×1,并计算最终的包含位置信息的变换系数y∈RK×1:y(Pm(s))=ym(s),s=0,1,...,m-1;其中,Pm(s)为最终得到的集合Pm中的第s个元素的值,ym表示第m次迭代获得的变换系数,其维度为m×1,ym(s)表示ym中第s个元素。
该方法还包括:
对包含位置信息的变换系数进行量化与熵编码处理:1)进行缩放处理:y(Pt(s))=y(Pt(s))<<(15-bitDepth-logTrSize);其中,logTrSize=log2N,bitDepth是当前编码器的比特深度;2)对缩放处理后的变换系数进行量化处理,获得量化后的变换系数3)对量化后的系数进行熵编码,其过程如下:a、用一个长度为K的二值向量,表示量化后的系数的每个位置是否为0,对该二值向量进行编码;b、对于每个非零系数进行如下编码:先编一个二值flag表明该系数的绝对值是否大于1,如果不大于1,结束该系数的编码;如果大于1,跳至步骤c;c、编一个flag表明该系数的绝对值是否大于2,如果不大于2,结束该系数的编码;如果大于2,跳至步骤d;d、对系数的绝对值减去3,然后进行指数哥伦布编码;e、对系数的正负性进行编码;
对熵编码后的变换系数进行反OMP变换获得重建残差
由上述本发明提供的技术方案可以看出,对于具有特定性质的残差,该变换方法相比传统的离散余弦/正弦变换(DCT/DST)能够达到更好的能量聚集度,从而提升压缩效率,同时,该变换的计算复杂度比SDT要低,便于解码。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的一种基于块搜索和正交匹配追踪的视频变换编码方法的流程图;
图2为本发明实施例提供的构建的Target Patch示意图;
图3为本发明实施例提供的获得OMP变换的词典的流程图;
图4为本发明实施例提供的获取最佳匹配块以及所需基的示意图;
图5为本发明实施例提供的选取最优变换的流程图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
图1为本发明实施例提供的一种基于块搜索和正交匹配追踪的视频变换编码方法的流程图。如图1所示,其主要包括如下步骤:
步骤11、对当前编码块进行运动估计以获得时间预测值,并基于所述时间预测值获得当前编码块的残差。
步骤12、基于当前编码块的空间邻域和时间预测,搜索当前编码块的匹配块,并利用聚类算法获得正交匹配追踪(OMP)变换的词典。
步骤13、以当前编码块的残差在OMP变换的词典上进行OMP变换,获得变得系数,完成视频变换编码。
为了便于理解,下面结合附图对本发明做详细的说明。
本发明实施例的上述方案可以应用于HEVC或者其它类似的视频编码方法中。
本领域技术人员可以理解,对当前编码块进行运动估计以获得时间预测值可以通过常规技术来实现,此外,所述的基于所述时间预测值获得当前编码块的残差,可以为将当前编码块的原始值减去时间预测值获得当前编码块的残差。
本发明实施例中,获得OMP变换的词典的步骤如图3所示;主要包括:
1)构建搜索基准(Target Patch):如图2所示,将当前编码块的上边与左边呈倒L型的重建区域作为模版(Template),同时,为了保证搜到的块和当前编码块具有很高的相似性,还在当前编码块的位置上加入时间预测(例如运动补偿预测MC prediction)的像素值,其大小等于当前编码块的大小;其中,当前编码块的大小为N×N,模板的宽度为T,这里的宽度指的是当前编码块左边的宽度和上边的高度,二者一致。(示例性的,T可以固定为3,或者可以根据当前块的宽度N来设定)。
2)利用最小化均方误差(MSE)的准则在参考帧中搜索相似的块,这里,MSE的计算方式为:
其中,pcandi为参考帧中重建区域的一个块,pcandi(i,j)表示位置(i,j)处的像素值,类比于ppatch(i,j)。ppatch为上一步骤所构建的Target>
3)选取具有最小MSE的前M个块l=0,1,2,...,M-1作为匹配块参与词典的构建。此处,M的值可以确定,也可以根据当前块的大小或其他因素进行设定。
4)获取OMP变换所需的基(为N2×1的一维向量):其中,表示第l个匹配块去除倒L型Template后的像素值,pmcp为运动补偿预测的像素值,其中和pmcp以同样的光栅扫描顺序变成N2×1的一维向量。
如图4所示,为上述步骤3)-4)的示意图,对应图4中的b1,b2,b98,b99等;pmcp对应图4中的p。
5)可选地,利用聚类算法将l=0,1,2,...,M-1进行聚类,取K个聚类中心Q:Q=[u1,u2,...,uK]。
示例性的,聚类方法可以为K-means聚类,K的取值可以由当前块的大小确定。例如,对于变换块大小4x4,K=8;对于变换块大小8x8,K=16;对于变换块大小为16x16,K=32;对于变换块大小为32x32,K=64。上述给的K的值是通过实验获得的最优值,理论上K的范围是1~M之间均可。此外,也可使用其他非监督的聚类方法。
6)为了消除某些基的能量主导性,将进行能量归一化:其中,|xl|是的模;若实施上述第五步聚类,则对u1…uK进行相应的能量归一化。
7)以能量归一化后的向量作为词典,词典的大小为M(无聚类情况)或K(有聚类情况)。
本发明实施例中,以当前编码块的残差在上述获得的词典上进行OMP变换,获得变换系数,具体包括:
当前编码块的残差为r(维度N2×1),OMP变换的词典为D(词典D的大小为M或者K,也就是说,词典可以D为聚类并归一化后的结果,维度N2×K,也可以为无聚类情况下的归一化结果,维度N2×M),则OMP变换即为求解下述方程:r=Dy;其中,y(维度K×1或者M×1)为变换系数;求解时的输入参数为r、D以及给定非零变换系数的个数m,求解获得的输出为包含位置信息Pm(被选择的m个基(此处的基为词典D中的元素)的位置,每个位置的范围是1~K,m<=K,或者1~M,m<=M)的变换系数y∈RK×1或者,y∈RM×1;
假设词典D的大小为K(即以归一化后的Q为词典D),则求解过程如下:
a、初始化:令r0=r,变换系数被选择基的集合其中,y(w)=0表示初始化时将所有变换系数都设为0;
b、按下述公式找到当前状态下最优基的下标λ:
c、利用找到的下标λ更新位置集合Pt(Pt表示第t次迭代后的位置集合),Pt=Pt-1∪{λ},以及更新被选择基的集合Φt=Φt-1∪{uλ},并令uλ=0;
d、求解系数yt:其中,δ是常数,例如δ=10-6,I表示大小为t×t的单位矩阵,yt表示第t次迭代获得的变换系数,其维度为t×1;
e、t=t+1,如果t<m,则跳至步骤b;
f、此时,t=m,得到Pm∈Rm×1,ym∈Rm×1。并计算最终的包含位置信息的变换系数y∈RK×1:y(Pm(s))=ym(s),s=0,1,...,m-1。其中,Pm(s)指的是最终得到的集合Pm中的第s个元素的值(即在第s步迭代中选择的基的下标),ym表示第m次迭代获得的变换系数,其维度为m×1,ym(s)表示ym中第s个元素。
需要说明的是,上述求解过程是以归一化后的Q作为词典D进行说明,本领域技术人员可以理解,也可以采用无聚类情况下的归一化结果作为词典D来求解获得最终的变换系数y∈RM×1,具体过程与前文类似,区别仅在于m取值大小及词典D中的元素数量与表达式不同。
上述过程中,非零变换系数的个数m在本实例中是通过令m=1~K,分别计算其Rate-Distortion(率失真)的性能来选择最优的值。
此外,类似于DST/DCT变换系数,OMP变换系数也需要进行量化和熵编码。本实施例中采用的步骤如下:
1)为了和DST/DCT系数保持一致,对OMP变换系数进行以下的缩放:y(Pt(s))=y(Pt(s))<<(15-bitDepth-logTrSize);其中,logTrSize=log2N,本领域技术人员可以理解bitDepth是当前编码器的比特深度。
2)对缩放处理后的变换系数进行量化处理,获得量化后的变换系数本领域技术人员可以理解,OMP系数的量化方式可以为均匀量化,沿用HEVC的均匀量化器。
3)对量化后的系数进行熵编码,其过程如下:a、首先用一个长度为K的二值向量,表示量化后的系数的每个位置是否为0,对该二值向量进行编码;b、对于每个非零系数进行如下编码:先编一个二值flag表明该系数的绝对值是否大于1,如果不大于1,结束该系数的编码;如果大于1,跳至步骤c;c、编一个flag表明该系数的绝对值是否大于2,如果不大于2,结束该系数的编码;如果大于2,跳至步骤d;d、对系数的绝对值减去3,然后进行指数哥伦布编码;e、对系数的正负性进行编码。
同时,还需要对熵编码后的变换系数进行反OMP变换获得重建残差
需要强调的是,编码端需要OMP正变换和反变换,解码端只需OMP反变换,其中编解码端以同样的方式获得词典,以保证编解码匹配。
另一方面,如图5所示,在应用于HEVC混合编码结构中时,还可以将上述方案与传统的DST/DCT方案相结合来选择最佳变换方案。即:编码器变换编码部分,对于一个变换单元(transform unit,TU),计算用DST/DCT进行变换和反变换得到的Distortion和编码比特数,计算其Rate-Distortion Cost(率失真代价)。同时计算用OMP变换和反变换的Rate-Distortion Cost,选择Rate-Distortion Cost最小的变换作为最终的变换。
另外,还将本发明实施例的方案与传统的DST/DCT方案进行对比:编码给定码率的HEVC码流,编码结构采用低延时的IPPP结构,测试平台为HM12.0,测试序列为HEVC标准测试序列中的BQSquare。与传统的DST/DCT相比,本发明实施例的方案能提高Rate-Distortion性能19.9%。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
机译: 基于多层的视频编码方法,通过对视频帧的块进行编码以在块和预测块之间存在差异来生成位序列的方法,存储平均值,预测视频帧的当前块的解码方法块,从预测块解码视频帧的当前块的方法,基于多层的视频解码方法,基于多层的视频编码器和视频解码器多层视频
机译: 基于分级编码的块模式信息和变换索引信息的视频编码方法和装置以及视频解码方法和装置
机译: 在帧内预测/基于场的正交变换和帧间预测/基于帧的正交变换之间可选择的视频编码