CN112055201A - 视频编码方法及其相关装置 - Google Patents

视频编码方法及其相关装置 Download PDF

Info

Publication number
CN112055201A
CN112055201A CN202010784572.9A CN202010784572A CN112055201A CN 112055201 A CN112055201 A CN 112055201A CN 202010784572 A CN202010784572 A CN 202010784572A CN 112055201 A CN112055201 A CN 112055201A
Authority
CN
China
Prior art keywords
block
current
motion vector
blocks
sub
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
Application number
CN202010784572.9A
Other languages
English (en)
Inventor
方诚
江东
曾飞洋
林聚财
殷俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202010784572.9A priority Critical patent/CN112055201A/zh
Publication of CN112055201A publication Critical patent/CN112055201A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

本申请提供视频编码方法及其相关装置。该视频编码方法包括:在当前块的时域参考帧中确定当前块的原始匹配块;基于原始匹配块确定每个偏移矢量的可用性;基于原始匹配块和可用的偏移矢量确定当前块的衍生匹配块;基于原始匹配块和衍生匹配块确定当前块的最佳匹配块;基于最佳匹配块对当前块进行编码。本申请可以提高视频编码的准确度。

Description

视频编码方法及其相关装置
技术领域
本申请涉及视频编码技术领域,特别是涉及视频编码方法及其相关装置。
背景技术
由于视频图像数据量比较大,通常需要对其进行编码压缩,压缩后的数据称之为视频码流,视频码流通过有线或者无线网络传输至用户端,再进行解码观看。
整个视频编码流程包括预测、变换、量化、编码等过程。其中预测分为帧内预测和帧间预测两部分。帧间预测用的是图像帧间的时域相关性来对图像进行压缩。本申请的发明人在长期的研发过程中,发现目前帧间预测方法还存在一定的局限性,也在一定程度上影响了视频编码的准确度。
发明内容
本申请提供视频编码方法及其相关装置,能够提高视频编码的准确度。
为解决上述问题,本申请提供一种视频编码方法,该方法包括:
确定当前块的原始匹配块;
基于原始匹配块确定每个偏移矢量的可用性;
基于原始匹配块和可用的偏移矢量确定当前块的衍生匹配块;
基于原始匹配块和衍生匹配块确定当前块的最佳匹配块;
基于最佳匹配块对当前块进行编码。
其中,基于原始匹配块确定每个偏移矢量的可用性,包括:
利用每个偏移矢量对应的至多三个小编码块的时域运动矢量进行查重,以确定每个偏移矢量的可用性。
其中,基于原始匹配块确定每个偏移矢量的可用性,包括:
检测确定偏移矢量对应的小编码块满足位置要求,且偏移矢量对应的小编码块中一对斜对角的小编码块的时域运动矢量不一致,则偏移矢量可用。
其中,基于原始匹配块确定每个偏移矢量的可用性,包括:
利用每个偏移矢量对应的多个小编码块本身的时域运动矢量进行查重,以确定每个偏移矢量的可用性。
其中,基于原始匹配块和衍生匹配块确定当前块的最佳匹配块,包括:
用掩膜获取当前匹配块中与当前子块的对应子块的时域运动矢量,基于对应子块的时域运动矢量确定当前子块的运动矢量,其中,原始匹配块和至少一个衍生匹配块依次为当前匹配块,当前块的所有子块依次为当前子块;
在用掩膜获取不到对应子块的时域运动矢量时,基于当前子块坐标对应的时域运动矢量、当前块坐标对应的时域运动矢量、当前块的一小编码块的时域运动矢量或当前块的相邻已编码块的一小编码块的运动矢量确定当前子块的运动矢量;
基于当前块中所有子块的运动矢量确定当前匹配块的代价;
基于所有匹配块的代价确定当前块的最佳匹配块。
其中,基于当前块的一小编码块的时域运动矢量或当前块的相邻已编码块的一小编码块的运动矢量确定当前子块的运动矢量,包括:
基于当前块中的备选块中距离当前子块最近的备选块的时域运动矢量确定当前子块的运动矢量,当前块的备选块为位于当前块边缘的所有小编码块或当前块的所有角落的小编码块;或,
基于所有相邻已编码块的备选块中距离当前子块最近的备选块的运动矢量确定当前子块的运动矢量,相邻已编码块的备选块为相邻已编码块中与当前块相邻的小编码块。
其中,基于当前块或相邻已编码块的备选块中距离当前子块最近的备选块的运动矢量确定当前子块的运动矢量,包括:
在距离当前子块最近的备选块的数量大于或等于两个时,基于F块的运动矢量确定当前子块的运动矢量,或基于任一距离当前子块最近的备选块的运动矢量确定当前子块的运动矢量,或基于当前块的所有角落的小编码块中距离当前子块最近的小编码块的时域运动矢量确定当前子块的运动矢量,或基于当前块的坐标对应的时域运动矢量确定当前子块的运动矢量。
其中,当前块的一小编码块的时域运动矢量为当前块的一小编码块的坐标对应的时域运动矢量;或,
当前块的一小编码块的时域运动矢量是基于用掩膜获取的当前匹配块中与当前块的一小编码块对应的小编码块的时域运动矢量确定的。
其中,当前块的尺寸大于或等于尺寸阈值,尺寸阈值小于8*8。
其中,基于原始匹配块和衍生匹配块确定当前块的最佳匹配块,包括:
基于当前匹配块确定当前块中每一子块的运动矢量;其中,原始匹配块和至少一个衍生匹配块依次为当前匹配块;
基于当前块中所有子块的运动矢量对当前块进行运动补偿,得到运动补偿块;
基于运动补偿块计算当前匹配块的代价;
基于所有匹配块的代价确定当前块的最佳匹配块;
其中,运动补偿的单元的尺寸与尺寸阈值相同。
其中,尺寸阈值大于或等于4*4;
当前块大于或等于4*4且小于8*8时,偏移矢量以4像素为单位,当前块运动补偿的单元的尺寸为4*4;
当前块大于或等于8*8时,偏移矢量以4像素为单位,当前块运动补偿的单元的尺寸为4*4;或
当前块大于或等于8*8时,偏移矢量以8像素为单位,当前块运动补偿的单元的尺寸为8*8。
为解决上述问题,本申请提供一种编解码器,该编解码器包括存储器和处理器;存储器中存储有计算机程序,处理器用于执行计算机程序以实现上述方法的步骤。
为解决上述问题,本申请提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法中的步骤。
本申请的方法是:该视频编码方法先确定当前块的原始匹配块和衍生匹配块,继而基于当前块的原始匹配块和衍生匹配块确定当前块的最佳匹配块,基于当前块的最佳匹配块对当前块进行编码,可以提高预测的准确度,继而提高视频编码的准确度。
附图说明
为了更清楚地说明本申请实施方式中的技术方案,下面将对实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施方式,对本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请视频编码方法一实施方法的流程示意图;
图2是本申请视频编码方法中每个偏移矢量对应的小编码块的位置示意图;
图3是本申请视频编码方法中编码块的时域运动矢量对应的空域位置示意图;
图4是本申请视频编码方法中原始匹配块和衍生匹配块的位置示意图;
图5是本申请视频编码方法中当前块的F块的位置示意图;
图6是本申请视频编码方法中确定当前块中当前子块的时域运动矢量一实施例的示意图;
图7是本申请视频编码方法中确定当前块中当前子块的时域运动矢量另一实施例的示意图;
图8是本申请编解码器的结构示意图;
图9是本申请计算机存储介质一实施方式的结构示意图。
具体实施方式
为使本领域的技术人员更好地理解本申请的技术方案,下面结合附图和具体实施方式对本申请所提供的视频编码方法及其相关装置做进一步详细描述。
本申请的视频编码方法主要基于增强时域运动矢量(ETMVP)预测方法对当前块进行编码。
本申请的视频编码方法主要是在时域参考帧中找到当前块的n个匹配块,然后依次遍历这n个匹配块,对当前块的每个子块,去当前匹配块中取对应子块对应的时域MV,以确定当前子块的运动矢量,然后依照当前块中所有子块对应于每个匹配块的运动矢量,确定最佳匹配块,基于最佳匹配块对当前块进行编码。
本申请的视频编码方法如图1所示,具体包括以下步骤。
S101:在当前块的时域参考帧中确定当前块的原始匹配块。
可以先确定当前块的原始匹配块,这样可以基于原始匹配块的位置确定当前块的衍生匹配块,进而可以基于当前块的原始匹配块和衍生匹配块确定出当前块的最佳匹配块。
在步骤S101中,可以先确定当前块的时域参考帧,进而在当前块的时域参考帧上确定当前块的原始匹配块。
可选地,可以将当前块的参考帧列表中的一参考帧作为当前块的时域参考帧。优选地,可以将当前块的参考帧列表中索引最小的参考帧作为当前块的时域参考帧。例如,对于P帧而言,可以将参考帧列表list0中的index0参考帧作为当前块的时域参考帧。进一步地,对于双向预测编码帧而言,其内当前块的参考帧列表有两个,此时可将任一参考帧列表中的索引最小的参考帧作为当前块的时域参考帧。例如,对于B帧而言,可以将参考帧列表list1中的index0参考帧作为当前块的时域参考帧。
可选地,在时域参考帧中确定当前块的原始匹配块的步骤可以包括:将当前块的横坐标和纵坐标分别加上第一值后舍入到第二值的倍数,并且要修剪到当前LCU内。例如,假设第一值为4,第二值为8,而当前块的坐标为(8,16),横坐标和纵坐标分别加第一值后的坐标为(12,20),横坐标和纵坐标舍入到第二值的倍数后的坐标为(8,16)。当然,第一值和第二值可以为固定值,例如第一值为4,第二值为8。在其他实现方式中,第一值和第二值可以基于偏移矢量的单位来设定,例如,偏移矢量以4像素为单位,第二值可以为4,或者无需设定第二值,即可以直接将当前块的横坐标和纵坐标各自与第一值的和作为原始匹配块的横坐标和纵坐标。
总的来说,时域参考帧中的原始匹配块的空域位置与当前块的坐标是强相关的。原始匹配块的空域位置可能等于当前块的位置,但也可能在当前块位置的基础上偏移(0,4)、(4,0)或(4,4)。
S102:基于原始匹配块确定每个偏移矢量的可用性。
在确定当前块的原始匹配块之后,可以基于原始匹配块确定每个偏移矢量是否可用,这样就可以基于可用的偏移矢量和原始匹配块确定当前块的衍生匹配块。
偏移矢量可以有4个,可以分别为(x,0)、(-x,0)、(0,x)和(0,-x)。其中x可以为8或4等数值。其中,在一实现场景中,x可以为固定值,例如无论当前块的尺寸为多少,x均为8。在另一实现场景中,可以根据当前块的尺寸确定x,例如当前块的尺寸大于或等于4*4且小于8*8,x为4,又例如当前块的尺寸大于或等于8*8,x为8。
基于原始匹配块确定每个偏移矢量的可用性的步骤,可以包括:基于原始匹配块确定每个偏移矢量对应的小编码块的时域运动矢量;对每个偏移矢量对应的小编码块的时域运动矢量进行查重,以确定每个偏移矢量的可用性。
如图2所示,基于原始匹配块可以确定每个偏移矢量对应的小编码块的位置。例如,偏移矢量(x,0)对应的小编码块可以包括图2中的A1、B2、A3、B4;偏移矢量(-x,0)对应的小编码块可以包括图2中的B1、A2、B3、A4;偏移矢量(0,x)对应的小编码块可以包括图2中的A1、A2、C3、C4;偏移矢量(x,0)对应的小编码块可以包括图2中的C1、C2、A3、A4。其中,A1~C4可以为4*4的小编码块(scu,small coding unit),且A1~C4相对于原始匹配块的位置可如图2所示。
进而在确定每个偏移矢量对应的小编码块后,可以基于每个偏移矢量对应的小编码块的位置确定每个偏移矢量对应的至少部分小编码块的时域运动矢量。可以通过多种方法确定每个偏移矢量对应的至少部分小编码块的时域运动矢量。
例如,可以基于每个偏移矢量对应的小编码块本身的时域运动矢量确定每个偏移矢量对应的小编码块的时域运动矢量,这样就可以直接利用每个偏移矢量对应的小编码块本身的时域运动矢量进行查重,减少计算量,提高查重的效率。
又例如,可以用掩膜(mask)获取每个偏移矢量对应的小编码块的时域运动矢量。用mask获取小编码块的时域运动矢量的具体方法如下所示:
(1)、先确定时域参考帧中编码块的时域运动矢量对应的空域位置。
目前时域参考帧中编码块的时域运动矢量对应的空域位置只和编码块的坐标相关。
设bx,by表示把时域参考帧平均划分为4*4块后,把每一个4*4块当做一个坐标点时,编码块在时域参考帧中的位置坐标,利用一个mask来确定编码块的时域运动矢量对应的空域位置:mask=(-1)^3。“^”表示将-1和3按位异或,异或后mask的最后两位二进制数为0。接下来设编码块的时域运动矢量对应的空域位置的坐标(同样以4*4为单元)为(xpos,ypos):
xpos=(bx&mask)+2;
ypos=(by&mask)+2;
“&”表示按位与。其中xpos可能取到的范围为:bx-1,bx,bx+1,bx+2;ypos可能取到的范围为:by-1,by,by+1,by+2。同一个坐标位置的编码块只会对应一个时域运动矢量对应的空域位置。不同坐标的编码块所对应的时域运动矢量的空域位置的范围如图3所示,图3中所有小圆点的位置就是所有可能的空域位置坐标,每一个小方块代表4*4块。
(2)、基于编码块的时域运动矢量对应的空域位置得到编码块的时域运动矢量。
具体地,可对编码块的时域运动矢量对应的空域位置的时域运动矢量进行缩放,可以缩放到时域参考帧,将缩放处理后的时域运动矢量作为编码块的时域运动矢量。
另外,在用掩膜(mask)获取不到小编码块的时域运动矢量时,可基于F块的MV获得小编码块的时域运动矢量。
基于上述方法确定每个偏移矢量对应的小编码块的时域运动矢量后,可以利用每个偏移矢量对应的小编码块的时域运动矢量进行查重以确定每个偏移矢量的可用性。
在一实现方式中,可以利用每个偏移矢量对应的全部小编码块的时域运动矢量进行查重,以确定每个偏移矢量的可用性。
例如,对于偏移矢量(x,0)而言,在图2所示的A1、B2、A3、B4满足位置要求时,确认A1和B2的时域运动矢量不一致且A3和B4的时域运动矢量不一致,则说明偏移矢量(x,0)可用,反之则不可用。
另例如,对于偏移矢量(-x,0)而言,在图2所示的B1、A2、B3、A4满足位置要求时,确认A2和B1的时域运动矢量不一致且A4和B3的时域运动矢量不一致,则说明偏移矢量(-x,0)可用,反之则不可用。
又例如,对于偏移矢量(0,x)而言,在图2所示的A1、A2、C3、C4满足位置要求时,确认A1和C3的时域运动矢量不一致且A2和C4的时域运动矢量不一致,则说明偏移矢量(0,x)可用,反之则不可用。
再例如,对于偏移矢量(0,-x)而言,在图2所示的C1、C2、A3、A4满足位置要求时,确认A3和C1的时域运动矢量不一致且A4和C2的时域运动矢量不一致,则说明偏移矢量(0,-x)可用,反之则不可用。
在另一实现方式中,可以利用每个偏移矢量对应的至多三个小编码块的时域运动矢量进行查重,以确定每个偏移矢量的可用性,这样在步骤S102中只需要获取每个偏移矢量对应的至多三个小编码块的时域运动矢量,从而查重的复杂度得以降低。例如,对于偏移矢量(x,0)而言,在图2所示的A1、B2、A3、B4满足位置要求时,确认A1和B2的时域运动矢量不一致且A3和A1的时域运动矢量不一致,说明偏移矢量(x,0)可用,反之则不可用。
进一步地,可以仅利用每个偏移矢量对应的两个小编码块的时域运动矢量进行查重,这样在步骤S102中只需要获取每个偏移矢量对应的两个小编码块的时域运动矢量。较为优选的是,利用每个偏移矢量对应的小编码块中一对斜对角的小编码块的时域运动矢量进行查重,以在保证查重精准度的同时大幅度降低查重复杂度。例如,对于偏移矢量(0,-x)而言,在图2所示的C1、C2、A3、A4满足位置要求时,确认A3和C2的时域运动矢量不一致,则说明偏移矢量(0,-x)可用,反之则不可用。或者对于偏移矢量(0,-x)而言,在图2所示的C1、C2、A3、A4满足位置要求时,确认A4和C1的时域运动矢量不一致,则说明偏移矢量(0,-x)可用,反之则不可用。
可以理解的是,每个偏移矢量对应的小编码块满足位置要求是指,每个偏移矢量对应的小编码块位于时域参考帧且位于同一LCU内。进一步地,在填充规则为向下填充且向右填充时,偏移矢量(-x,0)对应的B1和B3不超过LCU左边界即相当于偏移矢量(-x,0)对应的小编码块位于时域参考帧且位于同一LCU内,从而确定偏移矢量(-x,0)对应的B1和B3不超过LCU左边界,即可表明偏移矢量(-x,0)对应的小编码块满足位置要求。同样地,在填充规则为向下填充且向右填充时,偏移矢量(0,-x)对应的C1和C2不超过LCU上边界,即可表明偏移矢量(-x,0)对应的小编码块满足位置要求。
进一步地,当偏移矢量对应的某一小编码块不满足位置要求时,可以用F块的运动矢量确定的该小编码块的运动矢量参与查重。具体地,可以将F块的运动矢量缩放到时域参考帧得到的值,作为该小编码块的运动矢量。并且,F块与当前块的相对位置如图5所示。
另外,确定可用的偏移矢量之后,可以将可用的偏移矢量和原始匹配块对应的偏移矢量放到一个列表中,以得到偏移矢量列表。5个偏移矢量的顺序优先级可为(0,0),(0,x),(x,0),(0,-x),(-x,0)。例如,可用的偏移矢量为(8,0)和(0,-8),则偏移矢量列表中3个偏移矢量的顺序为(0,0),(8,0)和(0,-8)。
S103:基于原始匹配块和可用的偏移矢量确定当前块的衍生匹配块。
确定可用的偏移矢量后,可以基于原始匹配块和可用的偏移矢量确定当前块的衍生匹配块。
例如,假设可用的偏移矢量为3个,分别为(8,0)、(-8,0)、(0,8),则如图4所示,对原始匹配块(图4中的实线框)分别偏移(8,0)、(-8,0)和(0,8),可以得到衍生匹配块1、衍生匹配块2和衍生匹配块3。
S104:基于原始匹配块和衍生匹配块确定当前块的最佳匹配块。
确定当前块的原始匹配块和衍生匹配块后,可以确定原始匹配块和衍生匹配块中哪一个匹配块才是当前块的最佳匹配块。
可选地,在步骤S104中,可以先计算出原始匹配块和衍生匹配块中每一个匹配块的代价,然后将代价最小的匹配块作为当前块的最佳匹配块。
其中,计算一匹配块的代价的步骤,可以包括:基于一匹配块确定当前块中每一子块的运动矢量;接着基于当前块中所有子块的运动矢量确定一匹配块的代价。
在计算所有匹配块的代价时,可以将原始匹配块和至少一个衍生匹配块依次作为当前块的当前匹配块,计算当前匹配块的代价,直至所有匹配块的代价均计算完毕。其中,原始匹配块和至少一个衍生匹配块作为当前匹配块的顺序不受限定。
可选地,在步骤S104中基于当前匹配块确定当前块每一子块的运动矢量的过程中,可以用掩膜获取当前匹配块中与当前子块的对应子块的时域运动矢量,基于对应子块的时域运动矢量确定当前子块的运动矢量,其中,当前块的所有子块依次为当前子块。具体地,可以对对应子块的时域运动矢量进行缩放处理,可以缩放到时域参考帧,以得到当前子块的运动矢量。示例性地,当前匹配块所属图像帧的POC(Picture Order Count,图像顺序号)为8,而对应子块的参考帧的POC为6,且当前块所属图像帧的POC为12,则
Figure BDA0002621469360000101
Figure BDA0002621469360000102
在用掩膜获取不到对应子块的时域运动矢量时,可以基于F块的运动矢量、当前子块坐标对应的时域运动矢量、当前块坐标对应的时域运动矢量、当前块的相邻已编码块的运动矢量、当前块的一小编码块的时域运动矢量或当前块的相邻已编码块的一小编码块的运动矢量确定当前子块的运动矢量。其中,当前块的一小编码块的时域运动矢量为当前块的一小编码块的坐标对应的时域运动矢量;或基于用掩膜获取的当前匹配块中与当前块的一小编码块对应的小编码块的时域运动矢量确定到的。例如,可以先用掩膜获取当前匹配块中与当前块的一小编码块对应的小编码块的时域运动矢量,然后对对应的小编码块的时域运动矢量进行缩放处理,并缩放到时域参考帧,以得到当前块的一小编码块的时域运动矢量。
在第一实现方式中,在用mask获取不到对应子块的时域运动矢量时,基于图5所示的F块的运动矢量确定当前子块的运动矢量。具体地,可将当前块空域相邻左下角位置的F块的运动矢量缩放到时域参考帧,将缩放处理得到的运动矢量作为当前子块的运动矢量。另外,在F块不存在或F块的MV不可用时,将0运动矢量作为当前子块的运动矢量。
在第二实现方式中,在用mask获取不到对应子块的时域运动矢量时,可以基于当前块的备选块中距离当前子块最近的备选块的时域运动矢量确定当前子块的运动矢量,使得当前子块无法用mask获取到有效运动矢量时,填充的默认运动矢量也能比较准确。其中,当前块的备选块可为位于当前块边缘的所有小编码块或当前块的所有角落的小编码块。例如,如图6所示,当前块的备选块为当前块所有角落的小编码块,其包括备选块1、备选块2、备选块3和备选块4,箭头表示子块选择哪个备选块的时域运动矢量。当前子块为子块1时,当前子块与备选块1最近,可基于备选块1的时域运动矢量确定当前子块的运动矢量。
进一步地,在本实现方式中,在距离当前子块最近的备选块的数量大于或等于两个时,可以基于F块的运动矢量确定当前子块的运动矢量,或基于任一距离当前子块最近的备选块的运动矢量确定当前子块的运动矢量,或基于当前块的坐标对应的时域运动矢量确定当前子块的运动矢量。另外,在备选块为位于当前块边缘的所有小编码块时,且距离当前子块最近的备选块的数量大于或等于两个时,还可以基于当前块的所有角落的小编码块中距离当前子块最近的小编码块的时域运动矢量确定当前子块的运动矢量。
在第三实现方式中,在用mask获取不到对应子块的时域运动矢量时,可以基于所有相邻已编码块的备选块中距离当前子块最近的备选块的运动矢量确定当前子块的运动矢量,使得当前子块无法用mask获取到有效运动矢量时,填充的默认运动矢量也能比较准确。其中,相邻已编码块的备选块为相邻已编码块中与当前块相邻的小编码块。例如,如图7所示,当前块的左边和上方的相邻块为当前块的相邻已编码块,当前块的尺寸为16*16,子块的尺寸为4*4,从而当前块的两个相邻已编码块的备选块有备选块1、备选块2、备选块3、备选块4、备选块5、备选块6、备选块7和备选块8这8个备选块,若当前子块为子块1,当前子块与备选块3最近,则可以基于备选块3的运动矢量得到当前子块的运动矢量。进一步地,在本实现方式中,在距离当前子块最近的备选块的数量大于或等于两个时,可以基于F块的运动矢量确定当前子块的运动矢量,或基于任一距离当前子块最近的备选块的运动矢量确定当前子块的运动矢量,或基于当前块的所有角落的小编码块中距离当前子块最近的小编码块的时域运动矢量确定当前子块的运动矢量,或基于当前块的坐标对应的时域运动矢量确定当前子块的运动矢量。
可以理解的是,通过上述实现方式仍无法确定当前子块的运动矢量时,可以将0运动矢量作为当前子块的运动矢量。
进一步地,基于当前匹配块确定当前块中所有子块的运动矢量后,可以先基于当前块中所有子块的运动矢量对当前块进行运动补偿,得到运动补偿块;然后基于运动补偿块计算当前匹配块的代价,这样就可基于当前块中所有子块的运动矢量确定一匹配块的代价的步骤。
另外,在基于当前匹配块确定当前块中所有子块的运动矢量之前,可以按照相同的划分方法将当前匹配块和当前块划分为多个子块。其中,当前匹配块中与当前子块的对应子块与当前匹配块左上顶点的相对位置,和当前块中当前子块与当前块的左上顶点的相对位置相同。其中,子块的尺寸可均为n*m,例如,子块的尺寸均为4*4,或者子块的尺寸均为8*8。
其中,本申请所述的“小编码块”是指4*4的块。
S105:基于最佳匹配块对当前块进行编码。
确定当前块的最佳匹配块后,可以基于最佳匹配块对当前块进行编码。
在一实现方式中,基于最佳匹配块对当前块进行编码的步骤,可以包括:对最佳匹配块对应的偏移矢量的索引进行编码。另外,还需要传输本申请的视频编码方法的启用flag。
在本实施方式中,该视频编码方法先确定当前块的原始匹配块和衍生匹配块,继而基于当前块的原始匹配块和衍生匹配块确定当前块的最佳匹配块,基于当前块的最佳匹配块对当前块进行编码,可以提高预测的准确度,继而提高视频编码的准确度。
本申请还可通过一尺寸阈值表示启用本申请视频编码方法的当前块的尺寸要求。当前块的尺寸大于或等于尺寸阈值时,则可通过本申请视频编码方法对当前块进行编码,但当前块的尺寸小于尺寸阈值时,不可通过本申请视频编码方法对当前块进行编码。尺寸阈值可以小于或等于8*8,这样可以使用本申请的视频编码方法对更小的块进行编码。
在一实现方式中,尺寸阈值小于8*8时,步骤S104中的运动补偿的单元的尺寸可与尺寸阈值相同。
在另一实现方式中,尺寸阈值小于8*8且大于或等于4*4时,且当前块的尺寸小于8*8且大于或等于4*4时,步骤S101中确定当前块的原始匹配块时可以无须舍入或者可以舍入到4的倍数,步骤S102中的偏移矢量可以4像素为单位,相应地,步骤S104中的运动补偿的单元为4*4。另外,在当前块的尺寸大于或等于8*8时,偏移矢量可以以4像素或8像素为单位。在本实现方式中,可以对更小的块采用本申请的视频编码方法,且偏移矢量可以以4像素为单位偏移,能使预测更加精细。
具体地,可以设立一个或多个偏移矢量为8像素的编码块的尺寸区间。例如,偏移矢量为8像素的编码块的尺寸区间为[8*8,16*16]∪[32*32,64*64],这样在当前块的尺寸属于[8*8,16*16]∪[32*32,64*64]时,当前块对应的偏移矢量以8像素为单位;相应地,在当前块的尺寸不属于[8*8,16*16]∪[32*32,64*64]时,当前块对应的偏移矢量以4像素为单位。在本实现方式中,若当前块对应的偏移矢量以4像素为单位,即步骤S102中的x为4,当前块的偏移矢量分别为(4,0)、(-4,0)、(0,-4)和(0,4)时,步骤S101中确定当前块的原始匹配块时可以无须舍入或者可以舍入到4的倍数,且步骤S104中的运动补偿的单元为4*4。若当前块对应的偏移矢量以8像素为单位,即步骤S102中的x为8,当前块的偏移矢量分别为(8,0)、(-8,0)、(0,-8)和(0,8)步骤S101中确定当前块的原始匹配块时需要舍入到8的倍数,且步骤S104中的运动补偿的单元可为8*8。当然可以理解的是,偏移矢量为8像素的编码块的尺寸区间也可以为空集,即无论当前块的尺寸为多少,当前块的偏移矢量均为4。
请参阅图8,图8是本申请编解码器一实施方式的结构示意图。本编解码器10包括相互耦接的存储器11和处理器12,存储器11用于存储程序指令,处理器12用于执行程序指令以实现上述任一实施方式的方法。
上述视频编码方法的逻辑过程以计算机程序呈现,在计算机程序方面,若其作为独立的软件产品销售或使用时,其可存储在计算机存储介质中,因而本申请提出一种计算机存储介质。请参阅图9,图9是本申请计算机存储介质一实施方式的结构示意图,本实施方式计算机存储介质20中存储有计算机程序21,计算机程序21被处理器执行时实现上述视频编码方法中的步骤。
该计算机存储介质20具体可以为U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory,)、磁碟或者光盘等可以存储计算机程序的介质,或者也可以为存储有该计算机程序的服务器,该服务器可将存储的计算机程序发送给其他设备运行,或者也可以自运行该存储的计算机程序。该计算机存储介质20从物理实体上来看,可以为多个实体的组合,例如多个服务器、服务器加存储器、或存储器加移动硬盘等多种组合方式。
以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (13)

1.一种视频编码方法,其特征在于,所述方法包括:
在当前块的时域参考帧中确定当前块的原始匹配块;
基于原始匹配块确定每个偏移矢量的可用性;
基于所述原始匹配块和可用的偏移矢量确定当前块的衍生匹配块;
基于所述原始匹配块和所述衍生匹配块确定当前块的最佳匹配块;
基于所述最佳匹配块对所述当前块进行编码。
2.根据权利要求1所述的视频编码方法,其特征在于,所述基于原始匹配块确定每个偏移矢量的可用性,包括:
利用每个偏移矢量对应的至多三个小编码块的时域运动矢量进行查重,以确定每个偏移矢量的可用性。
3.根据权利要求2所述的视频编码方法,其特征在于,所述基于原始匹配块确定每个偏移矢量的可用性,包括:
检测确定偏移矢量对应的小编码块满足位置要求,且偏移矢量对应的小编码块中一对斜对角的小编码块的时域运动矢量不一致,则所述偏移矢量可用。
4.根据权利要求1所述的视频编码方法,其特征在于,所述基于原始匹配块确定每个偏移矢量的可用性,包括:
利用每个偏移矢量对应的多个小编码块本身的时域运动矢量进行查重,以确定每个偏移矢量的可用性。
5.根据权利要求1所述的视频编码方法,其特征在于,所述基于所述原始匹配块和所述衍生匹配块确定当前块的最佳匹配块,包括:
用掩膜获取当前匹配块中与当前子块的对应子块的时域运动矢量,基于所述对应子块的时域运动矢量确定当前子块的运动矢量,其中,所述原始匹配块和至少一个衍生匹配块依次为所述当前匹配块,所述当前块的所有子块依次为所述当前子块;
在用掩膜获取不到所述对应子块的时域运动矢量时,基于所述当前子块坐标对应的时域运动矢量、所述当前块坐标对应的时域运动矢量、所述当前块的一小编码块的时域运动矢量或所述当前块的相邻已编码块的一小编码块的运动矢量确定所述当前子块的运动矢量;
基于当前块中所有子块的运动矢量确定当前匹配块的代价;
基于所有匹配块的代价确定当前块的最佳匹配块。
6.根据权利要求5所述的视频编码方法,其特征在于,所述基于当前块的一小编码块的时域运动矢量或所述当前块的相邻已编码块的一小编码块的运动矢量确定所述当前子块的运动矢量,包括:
基于当前块中的备选块中距离所述当前子块最近的备选块的时域运动矢量确定当前子块的运动矢量,当前块的备选块为位于当前块边缘的所有小编码块或当前块的所有角落的小编码块;或,
基于所有相邻已编码块的备选块中距离所述当前子块最近的备选块的运动矢量确定当前子块的运动矢量,相邻已编码块的备选块为相邻已编码块中与所述当前块相邻的小编码块。
7.根据权利要求6所述的视频编码方法,其特征在于,所述基于当前块或相邻已编码块的备选块中距离所述当前子块最近的备选块的运动矢量确定当前子块的运动矢量,包括:
在距离所述当前子块最近的备选块的数量大于或等于两个时,基于F块的运动矢量确定当前子块的运动矢量,或基于任一距离所述当前子块最近的备选块的运动矢量确定所述当前子块的运动矢量,或基于当前块的所有角落的小编码块中距离所述当前子块最近的小编码块的时域运动矢量确定所述当前子块的运动矢量,或基于所述当前块的坐标对应的时域运动矢量确定所述当前子块的运动矢量。
8.根据权利要求5所述的视频编码方法,其特征在于,
所述当前块的一小编码块的时域运动矢量为所述当前块的一小编码块的坐标对应的时域运动矢量;或,
所述当前块的一小编码块的时域运动矢量是基于用掩膜获取的当前匹配块中与当前块的一小编码块对应的小编码块的时域运动矢量确定的。
9.根据权利要求1所述的视频编码方法,其特征在于,
当前块的尺寸大于或等于尺寸阈值,所述尺寸阈值小于8*8。
10.根据权利要求9所述的视频编码方法,其特征在于,
所述基于所述原始匹配块和所述衍生匹配块确定当前块的最佳匹配块,包括:
基于当前匹配块确定所述当前块中每一子块的运动矢量;其中,所述原始匹配块和至少一个衍生匹配块依次为所述当前匹配块;
基于所述当前块中所有子块的运动矢量对所述当前块进行运动补偿,得到运动补偿块;
基于所述运动补偿块计算所述当前匹配块的代价;
基于所有匹配块的代价确定当前块的最佳匹配块;
其中,运动补偿的单元的尺寸与所述尺寸阈值相同。
11.根据权利要求9所述的视频编码方法,其特征在于,所述尺寸阈值大于或等于4*4;
所述当前块大于或等于4*4且小于8*8时,所述偏移矢量以4像素为单位,所述当前块运动补偿的单元的尺寸为4*4;
所述当前块大于或等于8*8时,所述偏移矢量以4像素为单位,所述当前块运动补偿的单元的尺寸为4*4;或
所述当前块大于或等于8*8时,所述偏移矢量以8像素为单位,所述当前块运动补偿的单元的尺寸为8*8。
12.一种编解码器,其特征在于,所述编解码器包括存储器和处理器;所述存储器中存储有计算机程序,所述处理器用于执行所述计算机程序以实现如权利要求1-11中任一项所述方法的步骤。
13.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-11中任一项所述方法的步骤。
CN202010784572.9A 2020-08-06 2020-08-06 视频编码方法及其相关装置 Pending CN112055201A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010784572.9A CN112055201A (zh) 2020-08-06 2020-08-06 视频编码方法及其相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010784572.9A CN112055201A (zh) 2020-08-06 2020-08-06 视频编码方法及其相关装置

Publications (1)

Publication Number Publication Date
CN112055201A true CN112055201A (zh) 2020-12-08

Family

ID=73602103

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010784572.9A Pending CN112055201A (zh) 2020-08-06 2020-08-06 视频编码方法及其相关装置

Country Status (1)

Country Link
CN (1) CN112055201A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557514A (zh) * 2008-04-11 2009-10-14 华为技术有限公司 一种帧间预测编解码方法、装置及系统
CN104202606A (zh) * 2014-08-18 2014-12-10 山东大学 一种基于hevc运动估计起始点确定方法
WO2019110132A1 (en) * 2017-12-08 2019-06-13 Huawei Technologies Co., Ltd. Template matching function for bi-predictive mv refinement
WO2019110120A1 (en) * 2017-12-08 2019-06-13 Huawei Technologies Co., Ltd. Template matching function for bi-predictive mv refinement
CN110213590A (zh) * 2019-06-25 2019-09-06 浙江大华技术股份有限公司 时域运动矢量获取、帧间预测、视频编码的方法及设备
CN111264061A (zh) * 2019-03-12 2020-06-09 深圳市大疆创新科技有限公司 视频编码的方法与装置,以及视频解码的方法与装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557514A (zh) * 2008-04-11 2009-10-14 华为技术有限公司 一种帧间预测编解码方法、装置及系统
CN104202606A (zh) * 2014-08-18 2014-12-10 山东大学 一种基于hevc运动估计起始点确定方法
WO2019110132A1 (en) * 2017-12-08 2019-06-13 Huawei Technologies Co., Ltd. Template matching function for bi-predictive mv refinement
WO2019110120A1 (en) * 2017-12-08 2019-06-13 Huawei Technologies Co., Ltd. Template matching function for bi-predictive mv refinement
CN111264061A (zh) * 2019-03-12 2020-06-09 深圳市大疆创新科技有限公司 视频编码的方法与装置,以及视频解码的方法与装置
CN110213590A (zh) * 2019-06-25 2019-09-06 浙江大华技术股份有限公司 时域运动矢量获取、帧间预测、视频编码的方法及设备

Similar Documents

Publication Publication Date Title
CN107809642B (zh) 用于视频图像编码和解码的方法、编码设备和解码设备
RU2597521C1 (ru) Способ и устройство для кодирования/декодирования вектора движения
CN107046645B9 (zh) 图像编解码方法及装置
EP3598756B1 (en) Video decoding with improved error resilience
CN102835111B (zh) 使用先前块的运动矢量作为当前块的运动矢量来对图像进行编码/解码的方法和设备
EP2645718A2 (en) Method and apparatus for encoding and decoding motion vector
WO2012095467A1 (en) Video encoding and decoding with low complexity
US20190098312A1 (en) Image prediction method and related device
GB2492778A (en) Motion compensated image coding by combining motion information predictors
TW201230820A (en) Predictive image coding device, predictive image coding method, predictive image coding program, predictive image decoding device, predictive image decoding method, and predictive image decoding program
CN109862365B (zh) 图像数据处理方法及装置
JP2016154395A (ja) 以前ブロックの動きベクトルを現在ブロックの動きベクトルとして用いる映像符号化/復号化方法及び装置
WO2014166433A1 (zh) 深度图像的编解码方法和编解码装置
CN111654696B (zh) 一种帧内的多参考行预测方法、装置、存储介质及终端
CN112534809B (zh) 视频编码中的选择性模板匹配
CN112218087B (zh) 图像编码和解码方法、编码和解码装置、编码器及解码器
CN112055201A (zh) 视频编码方法及其相关装置
CN112601093A (zh) 一种视频编解码的方法及装置
CN105025299B (zh) 对图像进行编码/解码的方法和设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination