CN104427345B - 运动矢量的获取方法、获取装置、视频编解码器及其方法 - Google Patents
运动矢量的获取方法、获取装置、视频编解码器及其方法 Download PDFInfo
- Publication number
- CN104427345B CN104427345B CN201310413733.3A CN201310413733A CN104427345B CN 104427345 B CN104427345 B CN 104427345B CN 201310413733 A CN201310413733 A CN 201310413733A CN 104427345 B CN104427345 B CN 104427345B
- Authority
- CN
- China
- Prior art keywords
- block
- backward
- pixel value
- current block
- motion information
- 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.)
- Active
Links
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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/567—Motion estimation based on rate distortion criteria
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种运动矢量的获取方法、获取装置、视频编解码器及其方法。获取方法包括:获取当前帧中当前块的相邻块的运动信息和第一参考帧中与当前块位置相同的第一参考块的运动信息,运动信息包括前向运动矢量和前向参考标识以及后向运动矢量和后向参考标识;依次根据每一运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块;检测每次确定的前向匹配块和后向匹配块之间的相似度;将最大相似度所对应的运动信息设置为当前块的运动信息。实施本申请可以降低计算复杂度,能够解决现有技术需要进一步提高编码效率的问题。
Description
技术领域
本申请涉及视频编解码技术领域,具体是涉及一种运动矢量的获取方法及其获取装置,另外还涉及一种视频编码方法、视频解码方法、视频编码器和视频解码器。
背景技术
在视频序列中通常存在四种冗余:空域冗余、时域冗余、视觉冗余和编码冗余。视频编码的目的是为了消除上述冗余,以实现视频压缩。在视频编码阶段,需要预测当前待编码帧中当前块在帧间编码时的运动矢量,根据运动矢量计算当前块的残差值,并将运动补偿后的残差值进行编码,然后在视频解码阶段利用预测的运动矢量计算得到参考块,将参考块与残差值累加以重建当前块。可见,计算出符合当前块运动轨迹的准确的运动矢量,能够提高编码效果。
现有技术中存在多种预测当前块的运动矢量的方案,比如在现有的H.264视频编码方法中,通常采用skip或direct模式预测当前块的运动矢量,即将当前块在参考帧中相同位置的参考块的运动矢量作为当前块的运动矢量,或者采用模板匹配方法预测当前块的运动矢量,即选取当前块相邻的编码区域作为模板区域,利用模板区域之间的相关性,将最符合当前块的运动轨迹的模板区域的运动矢量作为当前块的运动矢量。
然而,利用现有的预测运动矢量的方案进行视频编码时,其编码效果尚不理想,计算复杂度高,虽能满足基本需求,但编码效率有待进一步提高。
发明内容
有鉴于此,本申请提供了一种运动矢量的获取方法、获取装置、视频编解码器及其方法,以解决现有技术需要进一步提高编码效率的问题。
为解决上述问题,本申请第一方面提供一种运动矢量的获取方法,获取方法包括:获取当前帧中当前块的相邻块的运动信息和第一参考帧中与当前块位置相同的第一参考块的运动信息,其中,第一参考块和相邻块为已编码或解码的块,相邻块的运动信息和第一参考块的运动信息包括前向运动矢量和前向参考标识以及后向运动矢量和后向参考标识;依次根据每一相邻块的运动信息和第一参考块的运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块;检测每次确定的前向匹配块和后向匹配块之间的相似度;将最大相似度所对应的运动信息设置为当前块的运动信息。
结合第一方面,在第一种可能的实现方式中,相邻块包括当前块邻接的左下方、左方、左上方、上方和右上方的五个块中的至少一个。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,若当前块邻接的至少一个块不存在,则将当前块邻接的至少一个块的前向运动矢量和后向运动矢量均设置为零矢量。
结合第一方面、第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,检测每次确定的前向匹配块和后向匹配块之间的相似度的步骤包括:计算每次确定的前向匹配块的第一像素值以及后向匹配块的第二像素值;计算第一像素值与第二像素值之间的差值的度量;根据差值的度量检测相似度,其中,差值的度量越大,则相似度越小,差值的度量越小,则相似度越大。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,计算第一像素值与第二像素值之间的差值的步骤具体为:将第一像素值和第二像素值进行相似度函数计算以获得差值的度量。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,相似度函数为绝对误差和:
其中,SAD为差值的度量,f1(m+i1,n+j1)为第一像素值,f2(m+i2,n+j2)为第二像素值,m和n分别代表当前块的水平和垂直坐标值,i1和j1分别为前向运动矢量在水平和垂直坐标上的分量,i2和j2分别为后向运动矢量在水平和垂直坐标上的分量,M和N分别代表当前块的宽度和高度。
结合第一方面的第三种可能的实现方式,在第六种可能的实现方式中,计算每次确定的前向匹配块的第一像素值以及后向匹配块的第二像素值的步骤具体为:按照预定规则对每次确定的前向匹配块的像素进行抽样得到第一像素值以及对后向匹配块的像素进行抽样得到第二像素值。
结合第一方面的第六种可能的实现方式,在第七种可能的实现方式中,按照预定规则对每次确认的前向匹配块的像素进行抽样得到第一像素值以及对后向匹配块的像素进行臭氧得到第二像素值的步骤为:按照每行像素和每列像素上均间隔一个像素的规则对每次确定的前向匹配块的像素进行抽样得到第一像素值以及对后向匹配块的像素进行臭氧得到第二像素值。
结合第一方面,在第八种可能的实现方式中,第一参考帧的数量为至少两个,则获取第一参考帧中与当前块位置相同的第一参考块的运动信息的步骤具体为:获取至少两个第一参考帧中与当前块位置相同的至少两个第一参考块的运动信息。
为解决上述问题,本申请第二方面提供一种视频编码方法,视频编码方法包括:采用上述任一种所述的获取方法获得当前帧中当前块的运动信息;根据运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块;根据前向匹配块的第一像素值和后向匹配块的第二像素值生成参考像素值,并计算参考像素值和当前块的真实像素值之间的目标残差值;在码流中编码目标残差值并在码流中添加运算标识。
结合第二方面,在第一种可能的实现方式中,参考像素值为第一像素值和第二像素值的加权平均值。
为解决上述问题,本申请第三方面提供一种视频解码方法,视频解码方法包括:从接收到的码流中解码出目标残差值和运算标识;根据运算标识采用上述任一种所述的获取方法获得当前帧中当前块的运动信息;根据运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块;根据前向匹配块的第一像素值和后向匹配块的第二像素值生成参考像素值;将参考像素值与目标残差值进行累加以重构当前块。
结合第三方面,在第一种可能的实现方式中,参考像素值为第一像素值和第二像素值的加权平均值。
为解决上述问题,本申请第四方面提供一种获取装置,获取装置包括获取模块、确定模块、检测模块和设置模块,其中,获取模块用于获取当前帧中当前块的相邻块的运动信息和第一参考帧中与当前块位置相同的第一参考块的运动信息,并将每一运动信息发送给确定模块,其中,第一参考块和相邻块为已编码或解码的块,相邻块的运动信息和第一参考块的运动信息包括前向运动矢量和前向参考标识以及后向运动矢量和后向参考标识;确定模块用于从获取模块接收每一相邻块的运动信息和第一参考块的运动信息,依次根据每一相邻块的运动信息和第一参考块的运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块,并将确定结果发送给检测模块;检测模块用于从确定模块接收确定结果,检测每次确定的前向匹配块和后向匹配块之间的相似度,并将相似度发送给设置模块;设置模块用于从检测模块接收相似度,并将最大相似度所对应的运动信息设置为当前块的运动信息。
结合第四方面,在第一种可能的实现方式中,相邻块包括当前块邻接的左下方、左方、左上方、上方和右上方的五个块中的至少一个。
结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,若当前块邻接的至少一个块不存在,则获取模块将当前块邻接的至少一个块的前向运动矢量和后向运动矢量均设置为零矢量。
结合第四方面、第四方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,检测模块包括第一计算单元、第二计算单元和检测单元,其中,第一计算单元用于从确定模块接收确定结果,计算每次确定的前向匹配块的第一像素值以及后向匹配块的第二像素值,并将第一像素值和第二像素值发送给第二计算单元;第二计算单元用于从第一计算单元接收第一像素值和第二像素值,计算第一像素值与第二像素值之间的差值的度量,并将差值的度量发送给检测单元;检测单元用于从第二计算单元接收差值的度量,根据差值的度量检测相似度,并将相似度发送给设置模块,其中,差值的度量越大,则相似度越小,差值的度量越小,则相似度越大。
结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,第二计算单元具体用于将第一像素值和第二像素值进行相似度函数计算以获得差值的度量。
结合第四方面的第四种可能的实现方式,在第五种可能的实现方式中,相似度函数为绝对误差和:
其中,SAD为差值的度量,f1(m+i1,n+j1)为第一像素值,f2(m+i2,n+j2)为第二像素值,m和n分别代表当前块的水平和垂直坐标值,i1和j1分别为前向运动矢量在水平和垂直坐标上的分量,i2和j2分别为后向运动矢量在水平和垂直坐标上的分量,M和N分别代表当前块的宽度和高度。
结合第四方面的第三种可能的实现方式,在第六种可能的实现方式中,第一计算单元具体用于按照预定规则对每次确定的前向匹配块的像素进行抽样得到第一像素值以及对前向匹配块的像素进行抽样得到第二像素值。
结合第四方面的第六种可能的实现方式,在第七种可能的实现方式中,预定规则为每行像素和每列像素上均间隔一个像素的规则。
结合第四方面,在第八种可能的实现方式中,第一参考帧的数量为至少两个,则获取模块具体用于获取至少两个第一参考帧中与当前块位置相同的至少两个第一参考块的运动信息。
为解决上述问题,本申请第五方面提供一种视频编码器,视频编码器包括确定装置、计算装置、编码装置和上述任一种所述的获取装置,其中,获取装置用于获得当前帧中当前块的运动信息;确定装置用于根据运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块;计算装置用于根据前向匹配块的第一像素值和后向匹配块的第二像素值生成参考像素值,并计算参考像素值和当前块的真实像素值之间的目标残差值;编码装置用于在码流中编码目标残差值并在码流中添加运算标识。
结合第五方面,在第一种可能的实现方式中,参考像素值为第一像素值和第二像素值的加权平均值。
为解决上述问题,本申请第六方面提供一种视频解码器,视频解码器包括解码装置、确定装置、计算装置、重构装置和上述任一种所述的获取装置,其中,解码装置用于从接收到的码流中解码出目标残差值和运算标识;获取装置用于根据运算标识获得当前帧中当前块的运动信息;确定装置用于根据运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块;计算装置用于根据前向匹配块的第一像素值和后向匹配块的第二像素值生成参考像素值;重构装置用于将参考像素值与目标残差值进行累加以重构当前块。
结合第六方面,在第一种可能的实现方式中,参考像素值为第一像素值和第二像素值的加权平均值。
本申请的运动矢量的获取方法、获取装置、视频编解码器及其方法不仅获取当前块在当前帧中的相邻块的运动信息,还获取当前块在参考帧中相同位置的参考块的运动信息,每一运动信息又包括前向和后向的运动矢量以及前向参考标识和后向参考标识,前向参考标识和后向参考标识分别指示前向参考帧和后向参考帧,通过前向和后向运动矢量可以确定出当前块的前向匹配块和后向匹配块并检测两者相似度,进而将最大相似度对应的运动信息设置为当前块的运动信息,通过这种方式,综合考虑了视频序列的空域相关性和时域相关性,可以提高编码效果,又由于仅计算两个匹配块之间的相似度,可以减少计算复杂度,从而解决现有技术需要进一步提高编码效率的问题。
附图说明
图1是本发明运动矢量的获取方法第一实施例的流程示意图;
图2是本发明运动矢量的获取方法第二实施例的流程示意图;
图3是本发明中当前块和相邻块的空间位置示意图;
图4是本发明中当前帧与前向参考帧和后向参考帧的位置示意图;
图5是本发明中前向参考帧中前向匹配块的像素示意图;
图6是本发明视频编码方法一实施例的流程示意图;
图7是本发明视频解码方法一实施例的流程示意图;
图8是本发明获取装置第一实施例的结构示意图;
图9是本发明获取装置第二实施例的结构示意图;
图10是本发明视频编码器一实施例的结构示意图;
图11是本发明视频解码器一实施例的结构示意图;
图12是本发明获取装置第三实施例的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透切理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施方式中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
下面结合附图和具体的实施方式进行说明。
参见图1,是本发明运动矢量的获取方法第一实施例的流程示意图。运动矢量的获取方法包括以下步骤:
步骤S11:获取当前帧中当前块的相邻块的运动信息和第一参考帧中与当前块位置相同的第一参考块的运动信息,其中,第一参考块和相邻块为已编码或解码的块,相邻块的运动信息和第一参考块的运动信息包括前向运动矢量和前向参考标识以及后向运动矢量和后向参考标识。
其中,在编码时,会依次接收原始视频序列中的各帧。在解码时,会接收到已编码的各帧。在编码或解码当前帧时,当前帧被划分为互不重叠的编码块,当前块就是即将进行编码或解码的块。而第一参考帧是在当前帧之前已经编码或解码的帧。
当前帧被划分为互不重叠的块,每个块的尺寸可以是16×16像素、32×32像素或者64×64像素等。块可以是宏块,或者是h.265标准中的CU,coding tree。除了当前帧左上角的块以外,每个块的相邻块必然有一部分是已经编码或解码的块。
在本实施例中,第一参考帧的数量为至少两个,则需要获取至少两个第一参考帧中与当前块位置相同的至少两个第一参考块的运动信息。第一参考帧可以是前向的帧也可以是后向的帧,如果第一参考帧为多个,那么第一参考帧可以全部是前向的帧,也可以全部是后向的帧。
由于相邻块和第一参考块已经编码或者解码,所以它们的运动信息是已知的。
步骤S12:依次根据每一相邻块的运动信息和第一参考块的运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块。
其中,前向参考标识和后向参考标识在运动信息中分别与前向运动矢量和后向运动矢量匹配,用于指示相邻块或第一参考块所对应的前向参考帧和后向参考帧。
确定前向匹配块的过程为:根据前向参考标识确定当前帧的前向参考帧,在前向参考帧中以与当前块位置相同的块为起点,沿着前向运动矢量的运动轨迹,前向运动矢量的终点所指向的块即为前向匹配块。同样的,后向匹配块也采用同样的方式确定。每个运动信息对应有一个前向匹配块和后向匹配块。
步骤S13:检测每次确定的前向匹配块和后向匹配块之间的相似度。
其中,帧间的关系为时域关系,一般来说,编码的帧在时域上都具有相关性,也就是视频数据之间具有相关性。比如,当同一个运动物体在不同帧中都以同样的速度进行匀速运动,那么在这些帧中运动矢量是相同的。
帧内各块之间的关系为空域关系,如果当前块与某个相邻块是帧中同一个运动物体,那么相邻块的运动矢量就能代表当前块的运动矢量,相邻块在前向参考帧的前向匹配块和后向参考帧中的后向匹配块就等同于当前块的前向匹配块和后向匹配块。
步骤S14:将最大相似度所对应的运动信息设置为当前块的运动信息。
本发明实施例的运动矢量的获取方法充分考虑到视频压缩编码中的时域相关性和空域相关性,通过空域相邻块和时域参考块的运动信息得到当前块的前向匹配块和后向匹配块,再选出前向匹配块和后向匹配块之间最大相似度所对应的运动信息作为当前块的运动信息对,由于综合考虑了视频序列的空域相关性和时域相关性,可以提高现有技术的编码效果,并且只计算单个块之间的相似度,计算复杂度大为降低,解决现有技术需要进一步提高编码效率的问题。
为了便于理解本发明,以下结合附图2-5对本发明做进一步具体介绍。如图2所示,是本发明运动矢量的获取方法第二实施例的流程示意图。运动矢量的获取方法包括以下步骤:
步骤S21:获取当前帧中当前块的相邻块的运动信息和第一参考帧中与当前块位置相同的第一参考块的运动信息,其中,第一参考块和相邻块为已编码或解码的块,相邻块的运动信息和第一参考块的运动信息包括前向运动矢量和前向参考标识以及后向运动矢量和后向参考标识。
其中,相邻块包括当前块CB邻接的左下方、左方、左上方、上方和右上方的四个块A、B、C、D、E中的至少一个(见图3)。优选地,本实施例获取当前块CB的四个相邻块A、B、C、D的运动信息。在本实施例中,第一参考帧为一个,那么运动信息的数量总共为5个。当然,第一参考帧可以为多个,那么获取的运动信息的数量就相应增加。
如果当前块CB恰好处于当前帧CF的边缘,例如处于当前帧CF的左上角,那么当前块的左方、左上方、上方或右上方均不存在邻接的至少一个块,则将当前块CB邻接的至少一个块的前向运动矢量和后向运动矢量均设置为零矢量。
进一步地,由于块还可以继续划分为更小的块,所以当前块CB的相邻块A、B、C、D可以是与当前块CB相同尺寸的块,或者也可以是更小的块(如图3所示)。
步骤S22:依次根据每一相邻块的运动信息和第一参考块的运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块。
其中,以相邻块A为例,其运动信息包含前向运动矢量mva1和前向参考标识以及后向运动矢量mva2和后向参考标识(见图4),寻找前向匹配块FB和后向匹配块BB的过程如下:
根据前向参考标识可以确定当前帧CF的前向参考帧FF,在前向参考帧FF中找到与当前块CB位置相同的块,然后以该块为起点,沿着前向运动矢量mva1就可以找到前向匹配块FB,即前向运动矢量mva1的箭头所指向的块。
同样的,根据后向参考标识可以确定当前帧CF的后向参考帧BF,在后向参考帧BF中找到与当前块CB位置相同的块,然后以该块为起点,沿着后向运动矢量mva2就可以找到后向匹配块BB,即后向运动矢量mva2的箭头所指向的块。
步骤S23:检测每次确定的前向匹配块和后向匹配块之间的相似度。
其中,相似度可以由前向匹配块和后向匹配块之间的差值的度量来表征。具体地,步骤S23包括:
步骤S231:计算每次确定的前向匹配块的第一像素值以及后向匹配块的第二像素值。
其中,每一个块都由像素组成。比如,尺寸为16×16像素的块包含1个16×16的亮度像素块和2个8×8的色度像素块。每一个像素点的像素值的总和就构成块的像素值。这里,前向匹配块FB和后向匹配块BB的尺寸大小都相同,像素数目也相同。在本实施例中,步骤S231具体为:按照预定规则对每次确定的前向匹配块的像素进行抽样得到第一像素值以及对后向匹配块的像素进行抽样得到第二像素值。
预定规则可以为每行像素和每列像素上均间隔一个像素的规则,即隔行隔列抽样像素。如图5所示,以尺寸为16×16像素的块为例,前向匹配块FB具有16×16个像素,按照隔行隔列抽样阴影部分的像素就得到第一像素值。当然,预定规则可以根据实际需要设定,本发明对此不作限定。
步骤S232:计算第一像素值与第二像素值之间的差值的度量。
其中,差值为第一像素值和第二像素值相减的结果,差值的度量为差值的一阶或二阶值。
在本实施例中,步骤S232具体为:将第一像素值和第二像素值进行相似度函数计算以获得差值的度量。相似度函数可以为误差和、绝对误差和(sum of absolutedifferences,SAD)、绝对变换误差和、绝对平方差和等。也就是说,可以采用一阶或二阶的误差公式计算差值。本实施例优选为绝对误差和:
其中,SAD为差值的度量,f1(m+i1,n+j1)为第一像素值,f2(m+i2,n+j2)为第二像素值,m和n分别代表当前块CB的水平和垂直坐标值,i1和j1分别为前向运动矢量mva1在水平和垂直坐标上的分量,i2和j2分别为后向运动矢量mva2在水平和垂直坐标上的分量,M和N分别代表当前块CB的宽度和高度,即当前块CB的尺寸。M和N的具体取值以当前块CB的分块方式确定,如果当前块CB为16×16,那么M=16,N=16。
步骤S233:根据差值的度量检测相似度,其中,差值的度量越大,相似度越小,差值的度量越小,相似度越大。
其中,差值的度量越小,那么说明前向匹配块FB和后向匹配块BB越接近,相似度就越大。相似度可以量化为具体的值,以方便比较。
步骤S24:将最大相似度所对应的运动信息设置为当前块的运动信息。
本发明实施例的运动矢量的获取方法充分考虑到视频压缩编码中的时域相关性和空域相关性,通过空域相邻块和时域参考块的运动信息得到当前块的前向匹配块和后向匹配块,并抽样得到两个匹配块的像素值,再利用绝对误差和得到两个像素值之间的差值,从而将差值最小所对应的运动信息设置为当前块的运动信息,通过抽样像素,能够大为降低计算复杂度。
参见图6,是本发明视频编码方法一实施例的流程示意图。视频编码方法采用上述任一实施例的运动矢量的获取方法,视频编码方法包括以下步骤:
步骤S31:获得当前帧中当前块的运动信息。
其中,当前帧中当前块的运动信息通过上述任一实施例的运动矢量的获取方法获得。
步骤S32:根据运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块。
步骤S33:根据前向匹配块的第一像素值和后向匹配块的第二像素值生成参考像素值,并计算参考像素值和当前块的真实像素值之间的目标残差值。
其中,参考像素值优选为第一像素值和第二像素值的加权平均值,第一像素值和第二像素值的权重可以根据实际需要设置。在本实施例中,计算参考像素值和真实像素值时,需要计算所有像素。
步骤S34:在码流中编码目标残差值并在码流中添加运算标识。
其中,由于不需要将运动信息写入码流,节省了编码所需的比特。经过实验验证,本发明的视频编码方法比现有技术的视频编码方法能够节省码率3.12%。
本发明实施例的视频编码方法通过获得当前块的运动信息,再由运动信息确定当前块的前向匹配块和后向匹配块,通过前向匹配块和后向匹配块的像素值生成参考像素值,进而获得参考像素值与真实像素值之间的目标残差值,由于获得运动信息时,综合考虑了视频序列的空域相关性和时域相关性,可以提高编码效果,降低计算复杂度,而且不需要将运动信息写入码流,能够降低码率。
参见图7,是本发明视频解码方法一实施例的流程示意图。视频解码方法采用上述任一实施例的运动矢量的获取方法,视频解码方法包括以下步骤:
步骤S41:从接收到的码流中解码出目标残差值和运算标识。
其中,运算标识用于说明编码视频序列时采用了上述的运动矢量的获取方法。
步骤S42:根据运算标识采用获得当前帧中当前块的运动信息。
其中,由于编码时采用了上述的运动矢量的获取方法,所以解码时应当采用同样的运动矢量的获取方法。
步骤S43:根据运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块。
步骤S44:根据前向匹配块的第一像素值和后向匹配块的第二像素值生成参考像素值。
其中,参考像素值优选为第一像素值和第二像素值的加权平均值,第一像素值和第二像素值的权重可以根据实际需要设置。
应当注意的是,由于本实施例的视频解码方法和前述实施例的视频编码方法都采用相同的运动矢量的获取方法,因此,获得的运动信息是相同的,而且会采用同样的方式获取参考像素值,所以参考像素值也是相同的。
步骤S45:将参考像素值与目标残差值进行累加以重构当前块。
其中,参考像素值与目标残差值进行累加后,得到的值即为当前块的真实像素值。
本发明实施例的视频解码方法通过获得当前块的运动信息,再由运动信息确定当前块的前向匹配块和后向匹配块,通过前向匹配块和后向匹配块的像素值生成参考像素值,并由参考像素值累加目标残差值以重构当前块,由于获得运动信息时,综合考虑了视频序列的空域相关性和时域相关性,可以提高编码效果,降低计算复杂度,而且在解码码流时,只需解码目标残差值,不需要解码运动信息,所以解码效率提高。
参见图8,是本发明获取装置第一实施例的结构示意图。获取装置包括获取模块51、确定模块52、检测模块53和设置模块54。
获取模块51用于获取当前帧中当前块的相邻块的运动信息和第一参考帧中与当前块位置相同的第一参考块的运动信息,并将每一相邻块的运动信息和第一参考块的运动信息发送给确定模块52,其中,第一参考块和相邻块为已编码或解码的块,相邻块的运动信息和第一参考块的运动信息包括前向运动矢量和前向参考标识以及后向运动矢量和后向参考标识。在编码时,会依次接收原始视频序列中的各帧。在解码时,会接收到已编码的各帧。在编码或解码当前帧时,当前帧被划分为互不重叠的编码块,当前块就是即将进行编码或解码的块。而第一参考帧是在当前帧之前已经编码或解码的帧。在本实施例中,第一参考帧的数量为至少两个,则获取模块51需要获取至少两个第一参考帧中与当前块位置相同的至少两个第一参考块的运动信息。第一参考真可以是前向的帧也可以是后向的帧,如果第一参考帧为多个,那么第一参考帧可以全部是前向的帧,也可以全部是后向的帧。
确定模块52用于从获取模块51接收每一相邻块的运动信息和第一参考块的运动信息,依次根据每一相邻块的运动信息和第一参考块的运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块,并将确定结果发送给检测模块53。前向参考标识和后向参考标识在运动信息中分别与前向运动矢量和后向运动矢量匹配,用于指示相邻块或第一参考块所对应的前向参考帧和后向参考帧。确定模块52确定前向匹配块的过程为:根据前向参考标识确定当前帧的前向参考帧,在前向参考帧中以与当前块位置相同的块为起点,沿着前向运动矢量的运动轨迹,前向运动矢量的终点所指向的块即为前向匹配块。同样的,后向匹配块也采用同样的方式确定。每个运动信息对应有一个前向匹配块和后向匹配块。
检测模块53用于从确定模块52接收确定结果,检测每次确定的前向匹配块和后向匹配块之间的相似度,并将相似度发送给设置模块54。帧间的关系为时域关系,一般来说,编码的帧在时域上都具有相关性,也就是视频数据之间具有相关性。比如,当同一个运动物体在不同帧中都以同样的速度进行匀速运动,那么可以认为在这些帧中运动矢量是相同的。帧内各块之间的关系为空域关系,如果当前块与某个相邻块是帧中同一个运动物体,那么相邻块的运动矢量就能代表当前块的运动矢量,相邻块在前向参考帧的前向匹配块和后向参考帧中的后向匹配块就等同于当前块的前向匹配块和后向匹配块。
设置模块54用于从检测模块53接收相似度,并将最大相似度所对应的运动信息设置为当前块的运动信息。
本发明实施例的获取装置充分考虑到视频压缩编码中的时域相关性和空域相关性,通过空域相邻块和时域参考块的运动信息得到当前块的前向匹配块和后向匹配块,再选出前向匹配块和后向匹配块之间相似度最大所对应的运动信息作为当前块的运动信息,由于综合考虑了视频序列的空域相关性和时域相关性,可以提高现有技术的编码效果,并且只计算单个块之间的相似度,计算复杂度大为降低,解决现有技术需要进一步提高编码效率的问题。
参见图9,是本发明获取装置第二实施例的结构示意图。获取装置包括获取模块61、确定模块62、检测模块63和设置模块64。检测模块63包括第一计算单元631、第二计算单元632和检测单元633。
获取模块61用于获取当前帧中当前块的相邻块的运动信息和第一参考帧中与当前块位置相同的第一参考块的运动信息,并将每一相邻块的运动信息和第一参考块的运动信息发送给确定模块62,其中,第一参考块和相邻块为已编码或解码的块,相邻块的运动信息和第一参考块的运动信息包括前向运动矢量和前向参考标识以及后向运动矢量和后向参考标识。相邻块包括当前块邻接的左下方、左方、左上方、上方和右上方的四个块中的至少一个。优选地,本实施例获取当前块的四个相邻块的运动信息。如果第一参考帧为一个,那么运动信息的数量总共为5个。如果第一参考帧为多个,那么获取的运动信息的数量就相应增加。在本实施例中,如果当前块恰好处于当前帧的边缘,例如处于当前帧的左上角,那么当前块的左方、左上方、上方或右上方均不存在邻接的块,则获取模块61将当前块邻接的块的前向运动矢量和后向运动矢量均设置为零矢量。进一步地,由于块还可以继续划分为更小的块,所以相邻的块可以是与当前块相同尺寸的块,或者也可以是更小的块。
确定模块62用于从获取模块61接收每一相邻块的运动信息和第一参考块的运动信息,依次根据每一相邻块的运动信息第一参考块的运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块,并将确定结果发送给检测模块63。寻找前向匹配块和后向匹配块的过程如下:根据前向参考标识可以确定当前帧的前向参考帧,在前向参考帧中找到与当前块位置相同的块,然后以该块为起点,沿着前向运动矢量就可以找到前向匹配块,即前向运动矢量的终点所指向的块。同样的,根据后向参考标识可以确定当前帧的后向参考帧,在后向参考帧中找到与当前块位置相同的块,然后以该块为起点,沿着后向运动矢量就可以找到后向匹配块,即后向运动矢量的终点所指向的块。
检测模块63用于从确定模块62接收确定结果,检测每次确定的前向匹配块和后向匹配块之间的相似度,并将相似度发送给设置模块64。
设置模块64用于从检测模块63接收相似度,并将最大相似度所对应的运动信息设置为当前块的运动信息。
检测模块63检测的相似度可以由前向匹配块和后向匹配块之间的差值的度量来表征。具体地:
第一计算单元631用于计算每次确定的前向匹配块的第一像素值以及后向匹配块的第二像素值。每一个块都由像素组成,每一个像素点的像素值的总和就构成块的像素值。这里,前向匹配块和后向匹配块的尺寸大小都相同,像素数目也相同。在本实施例中,第一计算单元631具体用于按照预定规则对每次确定的前向匹配块的像素进行抽样得到第一像素值以及对后向匹配块的像素进行抽样得到第二像素值。预定规则可以为每行像素和每列像素上均间隔一个像素的规则,即隔行隔列抽样像素。当然,预定规则可以根据实际需要设定,本发明对此不作限定。
第二计算单元632用于计算第一像素值与第二像素值之间的差值的度量。在本发明的一个应用场景中,第二计算单元632将第一像素值和第二像素值进行相似度函数计算以获得差值的度量。相似度函数优选为绝对误差和:
其中,SAD为差值的度量,f1(m+i1,n+j1)为第一像素值,f2(m+i2,n+j2)为第二像素值,m和n分别代表当前块的水平和垂直坐标值,i1和j1分别为前向运动矢量在水平和垂直坐标上的分量,i2和j2分别为后向运动矢量在水平和垂直坐标上的分量,M和N分别代表当前块的宽度和高度。M和N即为当前块的尺寸,M和N的具体取值以当前块CB的分块方式确定,如果当前块CB为16×16,那么M=16,N=16。
检测单元633用于根据差值的度量检测相似度,其中,差值的度量与相似度成反比。差值的度量越小,那么说明前向匹配块和后向匹配块越接近,相似度就越大。反之,差值的度量越大,相似度越小。
本发明实施例的获取装置充分考虑到视频压缩编码中的时域相关性和空域相关性,通过空域相邻块和时域参考块的运动信息得到当前块的前向匹配块和后向匹配块,并抽样得到两个匹配块的像素值,再利用绝对误差和得到两个像素值之间的差值的度量,从而将最小差值的度量所对应的运动信息设置为当前块的运动信息,通过抽样像素,能够大为降低计算复杂度。
参见图10,是本发明视频编码器一实施例的结构示意图。视频编码器包括获取装置71、确定装置72、计算装置73和编码装置74。其中,获取装置71为上述任一实施例的获取装置。
获取装置71用于获得当前帧中当前块的运动信息。
确定装置72用于根据运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块。
计算装置73用于根据前向匹配块的第一像素值和后向匹配块的第二像素值生成参考像素值,并计算参考像素值和当前块的真实像素值之间的目标残差值。其中,参考像素值优选为第一像素值和第二像素值的加权平均值。在本实施例中,计算参考像素值和真实像素值时,需要计算所有像素。
编码装置74用于在码流中编码目标残差值并在码流中添加运算标识。由于不需要将运动信息写入码流,可以节省编码需的比特,节省了码率。经过实验验证,本发明的视频编码方法比现有技术的视频编码方法最大能够节省码率3.12%。
本发明实施例的视频编码器通过获得当前块的运动信息,再由运动信息确定当前块的前向匹配块和后向匹配块,通过前向匹配块和后向匹配块的像素值生成参考像素值,进而获得参考像素值与真实像素值之间的目标残差值,由于获得运动信息时,综合考虑了视频序列的空域相关性和时域相关性,可以提高编码效果,降低计算复杂度,而且不需要将运动信息写入码流,能够降低码率。
参见图11,是本发明视频解码器一实施例的结构示意图。视频解码器包括解码装置81、获取装置82、确定装置83、计算装置84和重构装置85。其中,获取装置82为上述任一实施例的获取装置。
解码装置81用于从接收到的码流中解码出目标残差值和运算标识。
获取装置82用于根据运算标识获得当前帧中当前块的运动信息。运算标识用于说明视频编码器中的获取装置获得运动信息的方式。则获取装置82发现码流中的运算标识后,将采用与视频编码器同样的方式获得当前帧中当前块的运动信息。
确定装置83用于根据运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块。
计算装置84用于根据前向匹配块的第一像素值和后向匹配块的第二像素值生成参考像素值。参考像素值优选为第一像素值和第二像素值的加权平均值,第一像素值和第二像素值的权重可以根据实际需要设置。应当注意的是,由于本实施例的视频解码器和前述实施例的视频编码器都采用相同的获取装置,因此,获得的运动信息是相同的,而且会采用同样的方式获取参考像素值,所以参考像素值也是相同的。
重构装置85用于将参考像素值与目标残差值进行累加以重构当前块。参考像素值与目标残差值进行累加后,得到的值即为当前块的真实像素值。
本发明实施例的视频解码器通过获得当前块的运动信息,再由运动信息确定当前块的前向匹配块和后向匹配块,通过前向匹配块和后向匹配块的像素值生成参考像素值,并由参考像素值累加目标残差值以重构当前块,由于获得运动信息时,综合考虑了视频序列的空域相关性和时域相关性,可以提高编码效果,降低计算复杂度,而且在解码码流时,只需解码目标残差值,不需要解码运动信息,所以解码效率提高。
参见图12,是本发明获取装置第三实施例的结构示意图。获取装置包括处理器(processer)91、接收器(receiver)92、发送器(emitter)93、随机存取存储器(RAM)94、只读存储器(ROM)95、总线96以及网络接口单元(Network Interface Unit)97。其中,处理器91通过总线96分别耦接接收器92、发送器93、随机存取存储器94、只读存储器95以及网络接口单元97。其中,当需要运行获取装置时,通过固化在只读存储器95中的基本输入输出系统(BIOS)或者嵌入式系统中的boot loader引导系统进行启动,引导获取装置进入正常运行状态。在获取装置进入正常运行状态后,在随机存取存储器94中运行应用程序(Application Programs)和操作系统(OS),使得:
处理器91获取当前帧中当前块的相邻块的运动信息和第一参考帧中与当前块位置相同的第一参考块的运动信息,其中,第一参考块和相邻块为已编码或解码的块,相邻块的运动信息和第一参考块的运动信息包括前向运动矢量和前向参考标识以及后向运动矢量和后向参考标识;依次根据每一相邻块的运动信息和第一参考块的运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定当前块的后向匹配块;检测每次确定的前向匹配块和后向匹配块之间的相似度;将最大相似度所对应的运动信息设置为当前块的运动信息。
处理器91的具体实现过程请参照前述实施例的运动矢量的获取方法以及获取装置,此处不再赘述。
通过上述方式,本发明的运动矢量的获取方法、获取装置、视频编解码器及其方法不仅获取当前块在当前帧中的相邻块的运动信息,还获取当前块在参考帧中相同位置的参考块的运动信息,每一运动信息又包括前向和后向的运动矢量以及前向参考标识和后向参考标识,前向参考标识和后向参考标识分别指示前向参考帧和后向参考帧,通过前向和后向运动矢量可以确定出当前块的前向匹配块和后向匹配块并检测两者相似度,进而将最大相似度对应的运动信息设置为当前块的运动信息,通过这种方式,综合考虑了视频序列的空域相关性和时域相关性,可以提高现有技术的编码效果,又由于仅计算两个匹配块之间的相似度,可以减少计算复杂度,从而解决现有技术需要进一步提高编码效率的问题。并且利用运动信息进行编解码时,不需要在码流中写入运动信息,能够降低编码码率,提高编解码效率。
在本申请所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,管理服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的保护范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (26)
1.一种运动矢量的获取方法,其特征在于,所述获取方法包括:
获取当前帧中当前块的相邻块的运动信息和第一参考帧中与所述当前块位置相同的第一参考块的运动信息,其中,所述第一参考块和所述相邻块为已编码或解码的块,所述相邻块的运动信息和所述第一参考块的运动信息包括前向运动矢量和前向参考标识以及后向运动矢量和后向参考标识;
依次根据每一所述相邻块的运动信息和所述第一参考块的运动信息中的前向运动矢量在所述前向参考标识指示的前向参考帧中确定所述当前块的前向匹配块,以及根据后向运动矢量在所述后向参考标识指示的后向参考帧中确定所述当前块的后向匹配块;
检测每次确定的所述前向匹配块和所述后向匹配块之间的相似度;
将最大相似度所对应的所述运动信息设置为所述当前块的运动信息;
其中,所述前向参考标识和所述后向参考标识在所述运动信息中分别与所述前向运动矢量和所述后向运动矢量匹配,用于指示所述相邻块或所述第一参考块所对应的所述前向参考帧和所述后向参考帧;
所述依次根据每一所述相邻块的运动信息和所述第一参考块的运动信息中的前向运动矢量在所述前向参考标识指示的前向参考帧中确定所述当前块的前向匹配块,以及根据后向运动矢量在所述后向参考标识指示的后向参考帧中确定所述当前块的后向匹配块包括:
依次根据每一所述相邻块和所述第一参考块的运动信息中的所述前向参考标识确定所述前向参考帧,在所述前向参考帧中找到与所述当前块位置相同的块,以所述前向参考帧中与所述当前块位置相同的块为起点,所述前向运动矢量的箭头所指向的块为所述前向匹配块,以及根据所述后向参考标识确定所述后向参考帧,在所述后向参考帧中找到与所述当前块位置相同的块,以所述后向参考帧中与所述当前块位置相同的块为起点,所述后向运动矢量的箭头所指向的块为所述后向匹配块。
2.根据权利要求1所述的获取方法,其特征在于,所述相邻块包括所述当前块邻接的左下方、左方、左上方、上方和右上方的五个块中的至少一个。
3.根据权利要求2所述的获取方法,其特征在于,若所述当前块邻接的至少一个块不存在,则将所述当前块邻接的至少一个块的前向运动矢量和后向运动矢量均设置为零矢量。
4.根据权利要求1至3任一项所述的获取方法,其特征在于,所述检测每次确定的所述前向匹配块和所述后向匹配块之间的相似度的步骤包括:
计算每次确定的所述前向匹配块的第一像素值以及所述后向匹配块的第二像素值;
计算所述第一像素值与所述第二像素值之间的差值的度量;
根据所述差值的度量检测所述相似度,其中,所述差值的度量越大,则所述相似度越小,所述差值的度量越小,则所述相似度越大。
5.根据权利要求4所述的获取方法,其特征在于,所述计算所述第一像素值与所述第二像素值之间的差值的度量的步骤具体为:
将所述第一像素值和所述第二像素值进行相似度函数计算以获得所述差值的度量。
6.根据权利要求5所述的获取方法,其特征在于,所述相似度函数为绝对误差和SAD:
其中,SAD为所述差值的度量,f1(m+i1,n+j1)为所述第一像素值,f2(m+i2,n+j2)为所述第二像素值,m和n分别代表所述当前块的水平和垂直坐标值,i1和j1分别为所述前向运动矢量在水平和垂直坐标上的分量,i2和j2分别为所述后向运动矢量在水平和垂直坐标上的分量,M和N分别代表所述当前块的宽度和高度。
7.根据权利要求4所述的获取方法,其特征在于,所述计算每次确定的所述前向匹配块的第一像素值以及所述后向匹配块的第二像素值的步骤具体为:
按照预定规则对每次确定的所述前向匹配块的像素进行抽样得到第一像素值以及对所述后向匹配块的像素进行抽样得到第二像素值。
8.根据权利要求7所述的获取方法,其特征在于,所述按照预定规则对每次确认的所述前向匹配块的像素进行抽样得到第一像素值以及对所述后向匹配块的像素进行臭氧得到第二像素值的步骤为:
按照每行像素和每列像素上均间隔一个像素的规则对每次确定的所述前向匹配块的像素进行抽样得到第一像素值以及对所述后向匹配块的像素进行臭氧得到第二像素值。
9.根据权利要求1所述的获取方法,其特征在于,所述第一参考帧的数量为至少两个,则所述获取第一参考帧中与所述当前块位置相同的第一参考块的运动信息的步骤具体为:
获取所述至少两个第一参考帧中与所述当前块位置相同的至少两个第一参考块的运动信息。
10.一种视频编码方法,其特征在于,所述视频编码方法包括:
采用根据权利要求1至9任一项所述的获取方法获得当前帧中当前块的运动信息;
根据所述运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定所述当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定所述当前块的后向匹配块;
根据所述前向匹配块的第一像素值和所述后向匹配块的第二像素值生成参考像素值,并计算所述参考像素值和所述当前块的真实像素值之间的目标残差值;
在码流中编码所述目标残差值并在所述码流中添加运算标识。
11.根据权利要求10所述的视频编码方法,其特征在于,所述参考像素值为所述第一像素值和所述第二像素值的加权平均值。
12.一种视频解码方法,其特征在于,所述视频解码方法包括:
从接收到的码流中解码出目标残差值和运算标识;
根据所述运算标识采用根据权利要求1至9任一项所述的获取方法获得当前帧中当前块的运动信息;
根据所述运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定所述当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定所述当前块的后向匹配块;
根据所述前向匹配块的第一像素值和所述后向匹配块的第二像素值生成参考像素值;
将所述参考像素值与所述目标残差值进行累加以重构所述当前块。
13.根据权利要求12所述的视频解码方法,其特征在于,所述参考像素值为所述第一像素值和所述第二像素值的加权平均值。
14.一种获取装置,其特征在于,所述获取装置包括获取模块、确定模块、检测模块和设置模块,其中,
所述获取模块用于获取当前帧中当前块的相邻块的运动信息和第一参考帧中与所述当前块位置相同的第一参考块的运动信息,并将每一所述运动信息发送给所述确定模块,其中,所述第一参考块和所述相邻块为已编码或解码的块,所述相邻块的运动信息和所述第一参考块的运动信息包括前向运动矢量和前向参考标识以及后向运动矢量和后向参考标识;
所述确定模块用于从所述获取模块接收每一所述相邻块的运动信息和所述第一参考块的运动信息,依次根据每一所述相邻块的运动信息和所述第一参考块的运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定所述当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定所述当前块的后向匹配块,并将确定结果发送给所述检测模块,其中,所述前向参考标识和所述后向参考标识在所述运动信息中分别与所述前向运动矢量和所述后向运动矢量匹配,用于指示所述相邻块或所述第一参考块所对应的所述前向参考帧和所述后向参考帧;
所述检测模块用于从所述确定模块接收所述确定结果,检测每次确定的所述前向匹配块和所述后向匹配块之间的相似度,并将所述相似度发送给所述设置模块;
所述设置模块用于从所述检测模块接收所述相似度,并将最大相似度所对应的所述运动信息设置为所述当前块的运动信息;
其中确定模块具体用于依次根据每一所述相邻块和所述第一参考块的运动信息中的所述前向参考标识确定所述前向参考帧,在所述前向参考帧中找到与所述当前块位置相同的块,以所述前向参考帧中与所述当前块位置相同的块为起点,所述前向运动矢量的箭头所指向的块为所述前向匹配块,以及根据所述后向参考标识确定所述后向参考帧,在所述后向参考帧中找到与所述当前块位置相同的块,以所述后向参考帧中与所述当前块位置相同的块为起点,所述后向运动矢量的箭头所指向的块为所述后向匹配块。
15.根据权利要求14所述的获取装置,其特征在于,所述相邻块包括所述当前块邻接的左下方、左方、左上方、上方和右上方的五个块中的至少一个。
16.根据权利要求15所述的获取装置,其特征在于,若所述当前块邻接的至少一个块不存在,则所述获取模块将所述当前块邻接的至少一个块的前向运动矢量和后向运动矢量均设置为零矢量。
17.根据权利要求14至16任一项所述的获取装置,其特征在于,所述检测模块包括第一计算单元、第二计算单元和检测单元,其中,
所述第一计算单元用于从所述确定模块接收所述确定结果,计算每次确定的所述前向匹配块的第一像素值以及所述后向匹配块的第二像素值,并将所述第一像素值和所述第二像素值发送给所述第二计算单元;
所述第二计算单元用于从所述第一计算单元接收所述第一像素值和所述第二像素值,计算所述第一像素值与所述第二像素值之间的差值的度量,并将所述差值的度量发送给所述检测单元;
所述检测单元用于从所述第二计算单元接收所述差值的度量,根据所述差值的度量检测所述相似度,并将所述相似度发送给所述设置模块,其中,所述差值的度量越大,则所述相似度越小,所述差值的度量越小,则所述相似度越大。
18.根据权利要求17所述的获取装置,其特征在于,所述第二计算单元具体用于将所述第一像素值和所述第二像素值进行相似度函数计算以获得所述差值的度量。
19.根据权利要求18所述的获取装置,其特征在于,所述相似度函数为绝对误差和:
其中,SAD为所述差值的度量,f1(m+i1,n+j1)为所述第一像素值,f2(m+i2,n+j2)为所述第二像素值,m和n分别代表所述当前块的水平和垂直坐标值,i1和j1分别为所述前向运动矢量在水平和垂直坐标上的分量,i2和j2分别为所述后向运动矢量在水平和垂直坐标上的分量,M和N分别代表所述当前块的宽度和高度。
20.根据权利要求17所述的获取装置,其特征在于,所述第一计算单元具体用于按照预定规则对每次确定的所述前向匹配块的像素进行抽样得到第一像素值以及对所述后向匹配块的像素进行抽样得到第二像素值。
21.根据权利要求20所述的获取装置,其特征在于,所述预定规则为每行像素和每列像素上均间隔一个像素的规则。
22.根据权利要求14所述的获取装置,其特征在于,所述第一参考帧的数量为至少两个,则所述获取模块具体用于获取所述至少两个第一参考帧中与所述当前块位置相同的至少两个第一参考块的运动信息。
23.一种视频编码器,其特征在于,所述视频编码器包括确定装置、计算装置、编码装置和根据权利要求14至22任一项所述的获取装置,其中,
所述获取装置用于获得当前帧中当前块的运动信息;
所述确定装置用于根据所述运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定所述当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定所述当前块的后向匹配块;
所述计算装置用于根据所述前向匹配块的第一像素值和所述后向匹配块的第二像素值生成参考像素值,并计算所述参考像素值和所述当前块的真实像素值之间的目标残差值;
所述编码装置用于在码流中编码所述目标残差值并在所述码流中添加运算标识。
24.根据权利要求23所述的视频编码器,其特征在于,所述参考像素值为所述第一像素值和所述第二像素值的加权平均值。
25.一种视频解码器,其特征在于,所述视频解码器包括解码装置、确定装置、计算装置、重构装置和根据权利要求14至22任一项所述的获取装置,其中,
所述解码装置用于从接收到的码流中解码出目标残差值和运算标识;
所述获取装置用于根据所述运算标识获得当前帧中当前块的运动信息;
所述确定装置用于根据所述运动信息中的前向运动矢量到前向参考标识指示的前向参考帧中确定所述当前块的前向匹配块以及根据后向运动矢量到后向参考标识指示的后向参考帧中确定所述当前块的后向匹配块;
所述计算装置用于根据所述前向匹配块的第一像素值和所述后向匹配块的第二像素值生成参考像素值;
所述重构装置用于将所述参考像素值与所述目标残差值进行累加以重构所述当前块。
26.根据权利要求25所述的视频解码器,其特征在于,所述参考像素值为所述第一像素值和所述第二像素值的加权平均值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310413733.3A CN104427345B (zh) | 2013-09-11 | 2013-09-11 | 运动矢量的获取方法、获取装置、视频编解码器及其方法 |
PCT/CN2014/075107 WO2015035769A1 (zh) | 2013-09-11 | 2014-04-10 | 运动矢量的获取方法、获取装置、视频编解码器及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310413733.3A CN104427345B (zh) | 2013-09-11 | 2013-09-11 | 运动矢量的获取方法、获取装置、视频编解码器及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104427345A CN104427345A (zh) | 2015-03-18 |
CN104427345B true CN104427345B (zh) | 2019-01-08 |
Family
ID=52665004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310413733.3A Active CN104427345B (zh) | 2013-09-11 | 2013-09-11 | 运动矢量的获取方法、获取装置、视频编解码器及其方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104427345B (zh) |
WO (1) | WO2015035769A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019000443A1 (zh) | 2017-06-30 | 2019-01-03 | 华为技术有限公司 | 一种帧间预测的方法及装置 |
CN109495738B (zh) * | 2017-09-12 | 2023-02-07 | 华为技术有限公司 | 一种运动信息的编解码方法和装置 |
CN107483953B (zh) * | 2017-10-10 | 2019-11-29 | 司马大大(北京)智能系统有限公司 | 帧间运动估计方法、装置及电子设备 |
CN109756739B (zh) * | 2017-11-07 | 2022-09-02 | 华为技术有限公司 | 图像预测方法和装置 |
CN109905714B (zh) * | 2017-12-08 | 2022-12-27 | 华为技术有限公司 | 帧间预测方法、装置及终端设备 |
CN107995494B (zh) * | 2017-12-12 | 2019-11-22 | 珠海全志科技股份有限公司 | 视频图像数据的压缩方法与解压方法、计算机装置、计算机可读存储介质 |
CN117336504A (zh) * | 2017-12-31 | 2024-01-02 | 华为技术有限公司 | 图像预测方法、装置以及编解码器 |
CN113315975B (zh) | 2018-03-29 | 2022-12-06 | 华为技术有限公司 | 一种双向帧间预测方法及装置 |
CN110710209A (zh) * | 2018-04-02 | 2020-01-17 | 北京大学 | 运动补偿的方法、装置和计算机系统 |
CN110944209B (zh) * | 2018-09-21 | 2022-03-04 | 华为技术有限公司 | 运动矢量的确定方法和装置 |
CN114727114B (zh) | 2018-09-21 | 2024-04-09 | 华为技术有限公司 | 运动矢量的确定方法和装置 |
WO2020140242A1 (zh) * | 2019-01-03 | 2020-07-09 | 北京大学 | 视频处理方法和装置 |
CN109451318B (zh) * | 2019-01-09 | 2022-11-01 | 鲍金龙 | 便于vr视频编码的方法、装置、电子设备及存储介质 |
CN112954325B (zh) * | 2019-03-11 | 2022-09-30 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN109803175B (zh) * | 2019-03-12 | 2021-03-26 | 京东方科技集团股份有限公司 | 视频处理方法及装置、设备、存储介质 |
CN113411610B (zh) | 2019-06-21 | 2022-05-27 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN110475116B (zh) * | 2019-08-19 | 2021-09-21 | 北京大学深圳研究生院 | 一种运动矢量导出方法、装置及电子设备 |
CN112135126B (zh) | 2019-11-05 | 2021-09-21 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置、设备及机器可读存储介质 |
CN111754429B (zh) * | 2020-06-16 | 2024-06-11 | Oppo广东移动通信有限公司 | 运动矢量后处理方法和装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1736108A (zh) * | 2003-01-10 | 2006-02-15 | 皇家飞利浦电子股份有限公司 | 有效的预测图像参数估计 |
CN1762160A (zh) * | 2003-03-14 | 2006-04-19 | 皇家飞利浦电子股份有限公司 | 确定运动矢量的方法 |
CN101605262A (zh) * | 2009-07-09 | 2009-12-16 | 杭州士兰微电子股份有限公司 | 可变块尺寸运动预测方法和装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1225127C (zh) * | 2003-09-12 | 2005-10-26 | 中国科学院计算技术研究所 | 一种用于视频编码的编码端/解码端双向预测方法 |
CN1321534C (zh) * | 2003-12-31 | 2007-06-13 | 中国科学院计算技术研究所 | 固定参考帧数编码方式下获取图像参考块的方法 |
JP4805915B2 (ja) * | 2004-05-04 | 2011-11-02 | クゥアルコム・インコーポレイテッド | 時間的なスケーラビリティのために2方向予測されたフレームを組み立てるための方法及び装置 |
KR101408698B1 (ko) * | 2007-07-31 | 2014-06-18 | 삼성전자주식회사 | 가중치 예측을 이용한 영상 부호화, 복호화 방법 및 장치 |
CN101227614B (zh) * | 2008-01-22 | 2010-09-08 | 炬力集成电路设计有限公司 | 视频编码系统的运动估计装置及其方法 |
CN101820547A (zh) * | 2009-02-27 | 2010-09-01 | 源见科技(苏州)有限公司 | 帧间模式选择方法 |
CN102883160B (zh) * | 2009-06-26 | 2016-06-29 | 华为技术有限公司 | 视频图像运动信息获取方法、装置及设备、模板构造方法 |
CN102215387B (zh) * | 2010-04-09 | 2013-08-07 | 华为技术有限公司 | 视频图像处理方法以及编/解码器 |
CN101917615A (zh) * | 2010-06-03 | 2010-12-15 | 北京邮电大学 | 一种混合视频编码框架中的增强型双向运动矢量预测方法 |
CN102378000B (zh) * | 2010-08-13 | 2013-07-17 | 炬力集成电路设计有限公司 | 一种视频解码装置和方法 |
-
2013
- 2013-09-11 CN CN201310413733.3A patent/CN104427345B/zh active Active
-
2014
- 2014-04-10 WO PCT/CN2014/075107 patent/WO2015035769A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1736108A (zh) * | 2003-01-10 | 2006-02-15 | 皇家飞利浦电子股份有限公司 | 有效的预测图像参数估计 |
CN1762160A (zh) * | 2003-03-14 | 2006-04-19 | 皇家飞利浦电子股份有限公司 | 确定运动矢量的方法 |
CN101605262A (zh) * | 2009-07-09 | 2009-12-16 | 杭州士兰微电子股份有限公司 | 可变块尺寸运动预测方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104427345A (zh) | 2015-03-18 |
WO2015035769A1 (zh) | 2015-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104427345B (zh) | 运动矢量的获取方法、获取装置、视频编解码器及其方法 | |
US11134263B2 (en) | Moving picture decoding method and moving picture encoding method | |
Wang et al. | Fast object detection in compressed video | |
CN101860754B (zh) | 运动矢量编码和解码的方法和装置 | |
EP1661384B1 (en) | Semantics-based motion estimation for multi-view video coding | |
CN104067619B (zh) | 视频解码器、视频解码方法以及视频解码程序的记录介质 | |
KR102283725B1 (ko) | 이미지 인코딩 방법 및 장치, 그리고 이미지 디코딩 방법 및 장치 | |
Ding et al. | Identification of motion-compensated frame rate up-conversion based on residual signals | |
FI3767951T3 (fi) | Menetelmä ja laitteisto videokuvien koodaamiseksi | |
CN106576170B (zh) | 用于视频编码的自适应搜索窗口定位的方法和系统 | |
CN104539949B (zh) | Hevc屏幕编码中基于边缘方向的快速分块的方法及装置 | |
Gelgon et al. | A region-level graph labeling approach to motion-based segmentation | |
CN103747262A (zh) | 一种基于gpu的运动估计方法 | |
CN105338354B (zh) | 一种运动向量估计方法和装置 | |
CN110324634A (zh) | 一种基于运动矢量嵌入失真分解的视频隐写方法 | |
Hou et al. | Graph-based transform for data decorrelation | |
CN103430543A (zh) | 重构和编码图像块的方法 | |
KR101810118B1 (ko) | 프로파일 정보 기반 움직임 추정장치 및 방법 | |
KR101777776B1 (ko) | 표본 프로파일 정보 기반 움직임 추정장치 및 방법 | |
CN104284195A (zh) | 三维视频中的深度图预测方法、装置、编码器和解码器 | |
Hou et al. | Low-Latency Neural Stereo Streaming | |
CN105611299A (zh) | 一种基于hevc的运动估计方法 | |
Chan et al. | Faster inter prediction by NR-frame in VVC | |
US20070086525A1 (en) | Motion vector detection method and device of the same | |
Veena et al. | A Machine Learning Framework for Inter-frame Prediction for Effective Motion Estimation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |