CN111327901B - 视频编码方法、装置、存储介质及编码设备 - Google Patents

视频编码方法、装置、存储介质及编码设备 Download PDF

Info

Publication number
CN111327901B
CN111327901B CN202010162588.6A CN202010162588A CN111327901B CN 111327901 B CN111327901 B CN 111327901B CN 202010162588 A CN202010162588 A CN 202010162588A CN 111327901 B CN111327901 B CN 111327901B
Authority
CN
China
Prior art keywords
block
sub
vector
control point
current coding
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
Application number
CN202010162588.6A
Other languages
English (en)
Other versions
CN111327901A (zh
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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information 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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202010162588.6A priority Critical patent/CN111327901B/zh
Publication of CN111327901A publication Critical patent/CN111327901A/zh
Application granted granted Critical
Publication of CN111327901B publication Critical patent/CN111327901B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开关于一种视频编码方法、装置、存储介质及编码设备,属于音视频技术领域。该方法应用于帧内预测,包括:对于当前帧中的当前编码块,获取当前编码块的仿射运动向量,所述仿射运动向量包括当前编码块的至少两个控制点的控制点块向量;根据所述仿射运动向量获取当前编码块中每个单元的块向量;其中,每个单元的块向量均指向当前帧中与其匹配的参考单元,每个单元包括一个或多个像素点;对于任意一个单元,根据所述单元的块向量在当前帧中确定与其匹配的参考单元,根据所述参考单元对所述单元进行编码。在帧内预测时,本公开可以达到更精确地匹配当前帧中经过仿射变换的重复pattern的目的,从而能够获得更好的视频压缩性能。

Description

视频编码方法、装置、存储介质及编码设备
技术领域
本公开涉及音视频技术领域,尤其涉及一种视频编码方法、装置、存储介质及编码设备。
背景技术
帧内块复制(IBC,Intra Block Copy)是屏幕内容编码(SCC,Screen ContentCoding)中新增的一种编码工具。其中,帧内块复制是一种帧内预测模式,它允许在预测当前块时参考当前帧已重建的部分。参见图1,当前块拥有一个块向量(BV,Block Vector),该块向量指向当前帧中的另一个块(称为参考块或匹配快),而当前块可以根据该参考块重建。即,帧内块复制依赖于基于块向量在当前帧的已重建部分确定出来的参考块。
目前的帧内块复制方式仅考虑了块的平移运动,如图2所示,其示出了当前帧中的一个块在帧内的平移运动。然而,实际情况却是在当前帧中重复出现的pattern(比如物体)有可能经过了旋转、缩放、剪切等仿射变换。在这种情况下,仅考虑平移运动的帧内块复制方式便有可能出现以下问题:无法在当前帧中为当前块精确地找到与其匹配的参考块,进而影响视频的压缩性能。为此,进行视频编码,以解决上述问题,便成为了本领域技术人员亟待解决的一个问题。
发明内容
本公开提供一种视频编码方法、装置、存储介质及编码设备,在进行帧内预测时,基于仿射运动预测能够在当前帧中为当前编码块的各个单元精确地找到与其匹配的参考单元,即本公开能达到更精确地匹配经过仿射变换的重复pattern的目的,从而能够获得更好的视频压缩性能。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种视频编码方法,所述方法应用于帧内预测,包括:
对于当前帧中的当前编码块,获取当前编码块的仿射运动向量,所述仿射运动向量包括当前编码块的至少两个控制点的控制点块向量;
根据所述仿射运动向量获取当前编码块中每个单元的块向量;其中,每个单元的块向量均指向当前帧中与其匹配的参考单元,每个单元包括一个或多个像素点;
对于任意一个单元,根据所述单元的块向量在当前帧中确定与其匹配的参考单元,根据所述参考单元对所述单元进行编码。
在一种可能的实现方式中,在获取当前编码块中每个单元的块向量之前,所述方法还包括:
将当前编码块划分为多个子块,每个子块中包括多个像素点,一个子块为一个单元;
所述根据所述仿射运动向量获取当前编码块中每个单元的块向量,包括:
根据所述仿射运动向量获取每个子块的块向量,其中,每个子块的块向量均指向当前帧中与其匹配的参考块;
所述对于任意一个单元,根据所述单元的块向量在当前帧中确定与其匹配的参考相单元,根据所述参考单元对所述单元进行编码,包括:
对于任意一个子块,根据所述子块的块向量在当前帧中确定与其匹配的参考块,根据所述子块的参考块对所述子块进行编码。
在一种可能的实现方式中,所述仿射运动向量包括两个控制点的控制点块向量,每个子块包括的像素点个数相同;
所述根据所述仿射运动向量获取每个子块的块向量,包括:
获取当前编码块的左上角控制点的第一控制点块向量;
获取当前编码块的右上角控制点的第二控制点块向量;
对于任意一个子块,根据所述第一控制点块向量、第二控制点块向量、所述子块的中心像素点的位置坐标和每个子块的宽度值,获取所述子块的块向量。
在一种可能的实现方式中,所述仿射运动向量包括三个控制点的控制点块向量,每个子块包括的像素点个数相同;
所述根据所述仿射运动向量获取每个子块的块向量,包括:
获取当前编码块的左上角控制点的第一控制点块向量;
获取当前编码块的右上角控制点的第二控制点块向量;
获取当前编码块的左下角控制点的第三控制点块向量;
对于任意一个子块,根据所述第一控制点块向量、第二控制点块向量、所述第三控制点块向量、所述子块的中心像素点的位置坐标、以及每个子块的宽度值和高度值,获取所述子块的块向量。
在一种可能的实现方式中,对于当前帧的色度分量,在根据所述仿射运动向量获取每个子块的块向量时,所述方法还包括:
对于每个色度子块,确定与所述色度子块相对应的N个亮度子块,N为正整数;
对于所述N个亮度子块中的任意一个亮度子块,根据所述仿射运动向量和所述亮度子块的中心像素点的位置坐标,获取所述亮度子块的块向量;
获取所述N个亮度子块的块向量的平均值,将所述平均值作为所述色度子块的块向量。
在一种可能的实现方式中,所述获取当前编码块的仿射运动向量,包括:
基于与当前编码块空域邻近的多个相邻块的运动信息,获取关于控制点块向量的多组预测值候选项,得到预测值候选项列表;
在所述预测值候选项列表中确定率失真代价最小的一组目标预测值候选项;
以所述目标预测值候选项作为控制点块向量的搜索起点,在目标搜索范围内修正每个控制点块向量,直至搜索到率失真代价最小的一组控制点块向量,得到当前编码块的仿射运动向量。
在一种可能的实现方式中,所述多个相邻块包括位于当前编码块左上角的左上顶端块、位于当前编码块右上角的右上块和右上顶端块、位于当前编码块左下角的第一左下块和左下顶端块;或,
所述多个相邻块包括位于当前编码块左上角的左上顶端块、左上块和第二左下块,位于当前编码块左下角的第一左下块和左下顶端块,位于当前编码块右上角的右上块和右上顶端块。
根据本公开实施例的第二方面,提供一种视频编码装置,所述装置应用于帧内预测,包括:
第一获取模块,被配置为对于当前帧中的当前编码块,获取当前编码块的仿射运动向量,所述仿射运动向量包括当前编码块的至少两个控制点的控制点块向量;
第二获取模块,被配置为根据所述仿射运动向量获取当前编码块中每个单元的块向量;其中,每个单元的块向量均指向当前帧中与其匹配的参考单元,每个单元包括一个或多个像素点;
编码模块,被配置为对于任意一个单元,根据所述单元的块向量在当前帧中确定与其匹配的参考单元,根据所述参考单元对所述单元进行编码。
在一种可能的实现方式中,所述装置还包括:
划分模块,被配置为将当前编码块划分为多个子块,每个子块中包括多个像素点,一个子块为一个单元;
所述第二获取模块,还被配置为根据所述仿射运动向量获取每个子块的块向量,其中,每个子块的块向量均指向当前帧中与其匹配的参考块;
所述编码模块,还被配置为对于任意一个子块,根据所述子块的块向量在当前帧中确定与其匹配的参考块,根据所述子块的参考块对所述子块进行编码。
在一种可能的实现方式中,所述仿射运动向量包括两个控制点的控制点块向量,每个子块包括的像素点个数相同;
所述第二获取模块,还被配置为获取当前编码块的左上角控制点的第一控制点块向量;获取当前编码块的右上角控制点的第二控制点块向量;对于任意一个子块,根据所述第一控制点块向量、第二控制点块向量、所述子块的中心像素点的位置坐标和每个子块的宽度值,获取所述子块的块向量。
在一种可能的实现方式中,所述仿射运动向量包括三个控制点的控制点块向量,每个子块包括的像素点个数相同;
所述第二获取模块,还被配置为获取当前编码块的左上角控制点的第一控制点块向量;获取当前编码块的右上角控制点的第二控制点块向量;获取当前编码块的左下角控制点的第三控制点块向量;对于任意一个子块,根据所述第一控制点块向量、第二控制点块向量、所述第三控制点块向量、所述子块的中心像素点的位置坐标、以及每个子块的宽度值和高度值,获取所述子块的块向量。
在一种可能的实现方式中,对于当前帧的色度分量,所述第二获取模块,还被配置为对于每个色度子块,确定与所述色度子块相对应的N个亮度子块,N为正整数;对于所述N个亮度子块中的任意一个亮度子块,根据所述仿射运动向量和所述亮度子块的中心像素点的位置坐标,获取所述亮度子块的块向量;获取所述N个亮度子块的块向量的平均值,将所述平均值作为所述色度子块的块向量。
在一种可能的实现方式中,所述第一获取模块,还被配置为基于与当前编码块空域邻近的多个相邻块的运动信息,获取关于控制点块向量的多组预测值候选项,得到预测值候选项列表;在所述预测值候选项列表中确定率失真代价最小的一组目标预测值候选项;以所述目标预测值候选项作为控制点块向量的搜索起点,在目标搜索范围内修正每个控制点块向量,直至搜索到率失真代价最小的一组控制点块向量,得到当前编码块的仿射运动向量。
在一种可能的实现方式中,所述多个相邻块包括位于当前编码块左上角的左上顶端块、位于当前编码块右上角的右上块和右上顶端块、位于当前编码块左下角的第一左下块和左下顶端块;或,
所述多个相邻块包括位于当前编码块左上角的左上顶端块、左上块和第二左下块,位于当前编码块左下角的第一左下块和左下顶端块,位于当前编码块右上角的右上块和右上顶端块。
根据本公开实施例的第三方面,提供一种编码设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的视频编码方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由编码设备的处理器执行时,使得编码设备能够执行如第一方面所述的视频编码方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品中的指令由编码设备的处理器执行时,使得编码设备能够执行第一方面所述的视频编码方法。
本公开实施例提供的技术方案至少带来以下有益效果:
本公开实施例实现了基于仿射模型进行帧内预测,详细来说,对于当前帧中的当前编码块,本公开实施例会获取当前编码块的仿射运动向量,其中,该仿射运动向量包括当前编码块的至少两个控制点的控制点块向量;之后,根据该仿射运动向量获取当前编码块中每个单元的块向量;其中,每个单元的块向量均指向当前帧中与其匹配的参考单元,每个单元包括一个或多个像素点;进一步地,对于任意一个单元,根据该单元的块向量在当前帧中确定与其匹配的参考单元并根据该参考单元对该单元进行编码。
由于包括至少两个控制点块向量的仿射模型能够准确地预测非平移运动,如旋转、缩放、剪切、以及变形等,所以基于仿射运动预测能够在当前帧中为当前编码块的各个单元精确地找到与其匹配的参考单元,即本公开能达到更精确地匹配经过仿射变换的重复pattern的目的,从而能够获得更好的视频压缩性能。换言之,由于提高了帧内预测在复杂运动场景的预测精确度,因此可显著提升编码性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是背景技术部分示出的一种帧内块复制的示意图。
图2是根据一示例性实施例示出的一种基于一个块向量的平移运动示意图。
图3是根据一示例性实施例示出的一种视频编码方法涉及的实施环境的示意图。
图4是根据一示例性实施例示出的一种视频编码方法的流程图。
图5是根据一示例性实施例示出的一种视频编码方法的流程图。
图6是根据一示例性实施例示出的一种基于两个块向量的仿射模型预测的示意图。
图7是根据一示例性实施例示出的一种基于三个块向量的仿射模型预测的示意图。
图8是根据一示例性实施例示出的一种当前编码块与空间邻近块的示意图。
图9是根据一示例性实施例示出的一种当前编码块与空间邻近块的示意图。
图10是根据一示例性实施例示出的一种当前编码块与空间邻近块的示意图。
图11是根据一示例性实施例示出的一种视频编码装置的框图。
图12是根据一示例性实施例示出的一种编码设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所涉及的用户信息可以为经用户授权或者经过各方充分授权的信息。
在对本公开实施例进行详细地解释说明之前,先对本公开实施例可能涉及到的一些缩略语或术语进行介绍。
当前编码块:也可以称为当前块,指代当前帧中当前待进行编码的任意一个块。
帧间预测:是时间域编码,是利用一组连续图像间的时间性冗余度进行图像压缩。即,利用视频中各帧之间的相关性即时间相关性,来达到视频压缩的目的。通常来讲,帧间预测是利用已编码的视频帧和基于块的运动补偿的预测模式。即,会将一帧图像分成若干个块,而当前帧中每个块都是从参考图像某一相同尺寸区域预测而得。
帧内预测:是空间域编码,利用图像空间性冗余度进行图像压缩,处理的是一幅独立的图像,不会跨越多幅图像。即,在编码当前帧中的当前块时,能够参考当前帧中已重建的部分,而不用参考其他帧。
帧内块复制:对于文字、图形等屏幕内容图像,同一帧中可能会存在很多重复纹理,即具有较强的空间相关性。如果在编码当前块时,能够参考当前帧中已编码完的块,则能大大提升编码效率。即,针对屏幕图像的空间相关性强的特点,屏幕内容编码引入了新的一种预测技术,即IBC技术。
即,帧内块复制是一种帧内预测模式,它允许在预测当前块时参考当前帧已重建的部分。如图1所示,当前块拥有一个块向量(BV),该块向量指向当前帧中的另一个块(称为参考块或匹配快),而当前块可以根据该参考块重建。即,帧内块复制依赖于基于块向量在当前帧的已重建部分确定出来的参考块。
块向量:在本公开实施例中,指示当前块与参考块之间偏移的位移向量称为块向量。其中,块向量由待编码的当前块指向当前帧中的与其最佳匹配的一个参考块,即块向量指向已经重建并可用于参考的参考块,并以该参考位置的像素作为当前块的预测。
控制点:在本公开实施例中,控制点指代位于当前编码块的四个拐角处的一类虚拟点。
其中,控制点可以分为位于当前编码块左上角的左上角控制点,位于当前编码块右上角的右上角控制点,位于当前编码块左下角的左下角控制点,以及位于当前编码块右下角的右下角控制点。
示例性地,控制点可以通过特定的搜索规则搜索得到,控制点是尽可能逼近四个拐角处的虚拟点,每个控制点的块向量也可称之为控制点块向量,而控制点块向量可以通过与当前编码块空域邻近的多个块的运动信息得到。
运动估计:是指从视频序列中抽取运动信息的一整套技术。其中,运动估计为视频编码中最重要的组成部分之一。考虑到现实生活中物体运动是连续的,一个连续的视频序列中前后两帧视频图像之间的差异比较小,可能只是物体的相对位置发生了变化,或者这两帧图像在边界上发生了变化。对于视频编码器而言,如果对整个视频图像进行编码,则会造成很大的码流浪费,如果只根据两幅图像的差异和参考帧进行编码,则可大大减低码流浪费。即,运动估计的基本思想是将图像序列的每一帧分割成许多互不重叠的宏块,并设定宏块内所有像素的位移量都相同,然后对每个宏块按照指定搜索算法和指定匹配准则在参考帧的指定区域内搜索出与每个宏块最相似的匹配块,该匹配块与当前块的相对位移即为运动向量。
在进行视频压缩时,只需存储运动向量、残差块及参考帧就可以恢复出当前块。通过运动估计可以去除帧间冗余度,使得视频传输的比特数大为减少。其中,指定搜索算法包括全局搜索算法、分数精度搜索算法、快速搜索算法、分级数搜索算法、混合搜索算法等。指定匹配准则包括MAD(Mean Absolute Difference,平均绝对值差)、MSE(Mean SquaredError,平均平方误差)等。
运动补偿:通常来讲,运动补偿是一种描述相邻帧(相邻在这里表示在编码关系上相邻,在播放顺序上两帧未必相邻)之间差别的方法。具体来说,是描述前面一帧的每个块怎样移动到当前帧中的某个位置上去。即,运动补偿是指通过先前的局部图像来预测、补偿当前的局部图像,它是减少帧序列冗余信息的有效方法。也即,运动补偿是根据运动矢量和帧间预测方法来获得当前帧的预测值的过程。
仿射变换:是二维平面中一种重要的变换,在图像图形领域有广泛的应用。其中,仿射变换是一种简单的变换,包括但不限于:旋转、缩放、剪切等。其中,单个块向量仅能表示帧内的平移运动,对于非平移运动,如旋转、缩放、剪切、以及变形等运动,平移运动模型无法得到准确的预测,所以提出包括至少两个控制点块向量的仿射模型。另外,由于仿射变换可维持线性和平行性,因而仿射模型可以表示平移、旋转、缩放和剪切等运动。
下面对本公开实施例提供的视频编码方法涉及的实施环境进行介绍。
参见图3,该实施环境可以包括视频编码设备301和视频解码设备302。其中,视频编码设备301也简称为编码设备,用于执行本公开实施例提供的视频编码方法。视频解码设备302也简称为解码设备。
在本公开实施例中,编码设备301用于基于帧内预测方式对图像帧进行编码,并将编码后得到的视频码流通过网络连接传输至解码设备302。而解码设备302用于对接收到的视频码流进行解码,得到可显示在显示屏幕上的视频图像。
示例性地,上述图像帧可以为屏幕内容图像,本公开实施例对此不进行具体限定。
在一种可能的实现方式中,编码设备301和解码设备302的类型包括但不限于:移动式终端和固定式终端。作为一个示例,移动式终端包括但不限于:智能手机、平板电脑、笔记本电脑、电子阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器等;固定式终端包括但不限于台式电脑,本公开实施例对此不进行具体限定。
基于以上的实施环境,本公开实施例提供了一种基于仿射模型的帧内预测方式,即本公开实施例结合了帧内块复制技术和仿射运动预测技术,在进行帧内块复制时,使用多参数仿射模型来取代平移运动模型进行运动估计和运动补偿,提高了帧内预测在复杂运动场景的预测精确度。
在本公开实施例中,仿射运动预测由两个或三个控制点块向量表示,根据两个或三个控制点块向量,可以推导出当前编码块中每个单元的块向量,分别进行运动补偿。其中,上述一个单元中包括一个或多个像素点,比如一个单元可以为当前编码块的一个子块。
换言之,在进行帧内预测时,基于仿射运动预测能够在当前帧中为当前编码块的各个单元,精确地找到与其匹配的参考单元,即本公开能达到更精确地匹配经过仿射变换的pattern,从而能够获得更好的视频压缩性能,即能够提升视频编码性能。
也即,本公开实施例在帧内预测时,引入了更复杂的仿射模型,以达到更精确地匹配经仿射变换的重复pattern的目的,从而获得更好的压缩性能。
下面通过以下实施方式对本公开实施例提供的视频编码方法进行详细说明。
图4是根据一示例性实施例示出的一种视频编码方法的流程图,如图4所示,该方法用帧内预测并用于图3中所示的编码设备301,包括以下步骤。
在步骤401中,对于当前帧中的当前编码块,获取当前编码块的仿射运动向量,该仿射运动向量包括当前编码块的至少两个控制点的控制点块向量。
在步骤402中,根据该仿射运动向量获取当前编码块中每个单元的块向量;其中,每个单元的块向量均指向当前帧中与其匹配的参考单元,每个单元包括一个或多个像素点。
在步骤403中,对于任意一个单元,根据该单元的块向量在当前帧中确定与其匹配的参考单元,根据该参考单元对该单元进行编码。
本公开实施例提供的方法,实现了基于仿射模型进行帧内预测,详细来说,对于当前帧中的当前编码块,本公开实施例会获取当前编码块的仿射运动向量,其中,该仿射运动向量包括当前编码块的至少两个控制点的控制点块向量;之后,根据该仿射运动向量获取当前编码块中每个单元的块向量;其中,每个单元的块向量均指向当前帧中与其匹配的参考单元,每个单元包括一个或多个像素点;进一步地,对于任意一个单元,根据该单元的块向量在当前帧中确定与其匹配的参考单元并根据该参考单元对该单元进行编码。
由于包括至少两个控制点块向量的仿射模型能够准确地预测非平移运动,如旋转、缩放、剪切、以及变形等,所以基于仿射运动预测能够在当前帧中为当前编码块的各个单元精确地找到与其匹配的参考单元,即本公开能达到更精确地匹配经过仿射变换的重复pattern的目的,从而能够获得更好的视频压缩性能。换言之,由于提高了帧内预测在复杂运动场景的预测精确度,因此可显著提升编码性能。
在一种可能的实现方式中,在获取当前编码块中每个单元的块向量之前,所述方法还包括:
将当前编码块划分为多个子块,每个子块中包括多个像素点,一个子块为一个单元;
所述根据所述仿射运动向量获取当前编码块中每个单元的块向量,包括:
根据所述仿射运动向量获取每个子块的块向量,其中,每个子块的块向量均指向当前帧中与其匹配的参考块;
所述对于任意一个单元,根据所述单元的块向量在当前帧中确定与其匹配的参考相单元,根据所述参考单元对所述单元进行编码,包括:
对于任意一个子块,根据所述子块的块向量在当前帧中确定与其匹配的参考块,根据所述子块的参考块对所述子块进行编码。
在一种可能的实现方式中,所述仿射运动向量包括两个控制点的控制点块向量,每个子块包括的像素点个数相同;
所述根据所述仿射运动向量获取每个子块的块向量,包括:
获取当前编码块的左上角控制点的第一控制点块向量;
获取当前编码块的右上角控制点的第二控制点块向量;
对于任意一个子块,根据所述第一控制点块向量、第二控制点块向量、所述子块的中心像素点的位置坐标和每个子块的宽度值,获取所述子块的块向量。
在一种可能的实现方式中,所述仿射运动向量包括三个控制点的控制点块向量,每个子块包括的像素点个数相同;
所述根据所述仿射运动向量获取每个子块的块向量,包括:
获取当前编码块的左上角控制点的第一控制点块向量;
获取当前编码块的右上角控制点的第二控制点块向量;
获取当前编码块的左下角控制点的第三控制点块向量;
对于任意一个子块,根据所述第一控制点块向量、第二控制点块向量、所述第三控制点块向量、所述子块的中心像素点的位置坐标、以及每个子块的宽度值和高度值,获取所述子块的块向量。
在一种可能的实现方式中,对于当前帧的色度分量,在根据所述仿射运动向量获取每个子块的块向量时,所述方法还包括:
对于每个色度子块,确定与所述色度子块相对应的N个亮度子块,N为正整数;
对于所述N个亮度子块中的任意一个亮度子块,根据所述仿射运动向量和所述亮度子块的中心像素点的位置坐标,获取所述亮度子块的块向量;
获取所述N个亮度子块的块向量的平均值,将所述平均值作为所述色度子块的块向量。
在一种可能的实现方式中,所述获取当前编码块的仿射运动向量,包括:
基于与当前编码块空域邻近的多个相邻块的运动信息,获取关于控制点块向量的多组预测值候选项,得到预测值候选项列表;在所述预测值候选项列表中确定率失真代价最小的一组目标预测值候选项;以所述目标预测值候选项作为控制点块向量的搜索起点,在目标搜索范围内修正每个控制点块向量,直至搜索到率失真代价最小的一组控制点块向量,得到当前编码块的仿射运动向量。
在一种可能的实现方式中,所述多个相邻块包括位于当前编码块左上角的左上顶端块、位于当前编码块右上角的右上块和右上顶端块、位于当前编码块左下角的第一左下块和左下顶端块;或,
所述多个相邻块包括位于当前编码块左上角的左上顶端块、左上块和第二左下块,位于当前编码块左下角的第一左下块和左下顶端块,位于当前编码块右上角的右上块和右上顶端块。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图5是根据一示例性实施例示出的一种视频编码方法的流程图,如图5所示,该方法用帧内预测并用于图3中所示的编码设备301,包括以下步骤。
在步骤501中,对于当前帧中的当前编码块,获取当前编码块的仿射运动向量,该仿射运动向量包括当前编码块的至少两个控制点的控制点块向量。
在本公开实施例中,该仿射运动向量既可以为2个控制点的控制点块向量,也可以为3个控制点的控制点块向量。即,针对帧内预测的帧内块复制,为了应对重复pattern可能出现的缩放、剪切、旋转等仿射变换,本公开实施例引入了如图6所示的基于2个控制点块向量(CPBV,Control Point Block Vector)和如图7所示的基于3个控制点块向量的仿射模型预测方式。
其中,单个块向量仅能表示帧内的平移运动,对于非平移运动,如图6所示的旋转、缩放、剪切、以及图7所示的变形等运动,平移运动模型无法得到准确的预测,所以提出仿射模型,其中,仿射模型利用至少两个控制点块向量。另外,由于仿射变换可维持线性和平行性,因而仿射模型可以表示平移、旋转、缩放和剪切等运动。
作为一个示例,上述2或3个控制点块向量可以是基于与当前编码块空域邻近的多个块的运动信息得到。其中,上述2个控制点可以为位于当前编码块左上角的左上角控制点和位于当前编码块右上角的右上角控制点。上述3个控制点可以为位于当前编码块左上角的左上角控制点、位于当前编码块右上角的右上角控制点、以及位于当前编码块左下角的左下角控制点。
在一种可能的实现方式中,确定每个控制点的控制点块向量的过程分为两步:
第一步、确定控制点块向量的预测值候选项列表。
本公开实施例会基于与当前编码块空域邻近的多个相邻块的运动信息,获取关于控制点块向量的多组预测值候选项,构成预测值候选项列表。示例性地,编码设备可以通过计算率失真代价,在预测值候选项列表给出的多组预测值候选项中确定出一组最优的预测值候选项,并记录其序号。其中,确定出来的一组最优的预测值候选项在本文中也被称之为目标预测值候选项。
其中,与当前编码块空域邻近的相邻块可以参见图8,包括位于当前编码块左上角的左上顶端块B2、位于当前编码块右上角的右上块B0和右上顶端块B1、位于当前编码块左下角的第一左下块A0和左下顶端块A1。
另外,与当前编码块空域邻近的相邻块还可以参见图9,该多个块包括位于当前编码块左上角的左上顶端块B2、左上块B3和第二左下块A2,位于当前编码块右上角的右上块B0和右上顶端块B1,位于当前编码块左下角的第一左下块A0和左下顶端块A1。
示例性地,如图8所示,预测值候选项可以按照如下方式获取:根据第一目标块对应的至少两个控制点的控制点块向量,获取预测值候选项,其中,第一目标块是按照指定搜索顺序在与当前编码块空域相邻的多个相邻块中搜索得到的;其中,指定搜索顺序为:对于左相邻块(指代块A0和A1),由块A0到块A1;对于上相邻块(指代块B0、B1和B2),由块B0到块B1再到块B2。
示例性地,如图9所示,预测值候选项还可以按照如下方式获取:根据第二目标块的块向量,获取左上角控制点的预测值,第二目标块是按照第一搜索顺序在位于当前编码块左上角的左上顶端块、左上块和第二左下块中搜索得到的,第一搜索顺序为:由左上顶端块到左上块再到第二左下块;
根据第三目标块的块向量,获取左下角控制点的预测值,第三目标块是按照第二搜索顺序在位于当前编码块左下角的第一左下块和左下顶端块中搜索得到的,第二搜索顺序为:由第一左下块到左下顶端块;
根据第四目标块的块向量,获取右上角控制点的预测值,第四目标块是按照第三搜索顺序在位于右上角的右上块和右上顶端块中搜索得到的,第三搜索顺序为:由右上块到右上顶端块。
其中,第一搜索顺序为由块B2到块B3再到块A2,即当前编码块左上角控制点的第一控制点块向量是基于块B2、块B3和块A2这三个块的块向量得到的,其中,第二目标块为这三个块中第一个可用的块。其中,第二搜索顺序为由块B1到块B0,即当前编码块右上角控制点的第二控制点块向量是基于块B0和块B1这两个块的块向量得到的,其中,第三目标块为这三个块中第一个可用的块。其中,第三搜索顺序为由块A1到块A0,即当前编码块左下角控制点的第三控制点块向量是基于块A0和块A1这两个块的块向量得到的,其中,第四目标块为这两个块中第一个可用的块。
第二步、采用运动估计确定最优的控制点块向量。
以第一步确定的一组最优的预测值候选项,作为控制点块向量的搜索起点,可以采用迭代搜索或基于梯度搜索的方式,在确定的目标搜索范围内,修正每个控制点块向量,直到搜索到最优(比如率失真代价最小)的一组控制点块向量,得到当前编码块的仿射运动向量。
需要说明的是,最终在码流中传输的是第一步得到的一组最优的预测值候选项的序号,以及第二步得到的最优的一组控制点块向量与其预测值候选项之间的误差,得到预测误差。进而,解码设备通过相同的预测值候选项列表构建过程,以及解码得到的预测值候选项序号和相应的预测误差,恢复当前编码块的控制点块向量,进行后续的运动补偿过程。
在步骤502中,将当前编码块划分为多个子块,每个子块中包括多个像素点且每个子块包括的像素点个数相同。
由于每个像素点单独计算的复杂度较高,因此可以以子块为单位进行块复制,即可以对当前编码块进行划分,形成多个子块,进而计算每个子块的块向量,通过该种方式来降低计算复杂度。作为一个示例,在对当前编码块进行子块划分时,每个子块的大小可以相同即每个子块包括的像素点个数相同,比如每个子块的大小均为4*4,本公开实施例对此不进行具体限定。
在步骤503中,根据该仿射运动向量获取每个子块的块向量,其中,每个子块的块向量均指向当前帧中与其匹配的参考块。
针对图6所示的基于2个控制点块向量的仿射模型预测方式,根据仿射运动向量获取每个子块的块向量,包括:
5031、获取当前编码块的左上角控制点的第一控制点块向量;获取当前编码块的右上角控制点的第二控制点块向量;对于任意一个子块,根据第一控制点块向量、第二控制点块向量、该子块的中心像素点的位置坐标和每个子块的宽度值,获取子块的块向量。
对于2个控制点块向量的仿射模型预测方式,(x,y)位置像素点的块向量可由下面的公式计算得到:
Figure BDA0002406309880000141
Figure BDA0002406309880000142
示例性地,如图10所示,每个子块的块向量由根据它的中心像素点计算得到的块向量代替。即,在计算每个子块的块向量时,使用的是每个子块的中心像素点的位置坐标。
其中,(bv0x,bv0y)为第一控制点块向量,(bv1x,bv1y)为第二控制点块向量。
针对图7所示的基于3个控制点块向量的仿射模型预测方式,根据仿射运动向量获取每个子块的块向量,包括:
5032、获取当前编码块的左上角控制点的第一控制点块向量;获取当前编码块的右上角控制点的第二控制点块向量;获取当前编码块的左下角控制点的第三控制点块向量;对于任意一个子块,根据第一控制点块向量、第二控制点块向量、第三控制点块向量、子块的中心像素点的位置坐标、以及每个子块的宽度值和高度值,获取子块的块向量。
对于3个控制点块向量的仿射模型预测方式,(x,y)位置像素点的运动向量可由下面的公式计算得到:
Figure BDA0002406309880000151
Figure BDA0002406309880000152
其中,(bv2x,bv2y)为第三控制点块向量。
在另一种可能的实现方式中,针对当前帧的亮度分量,即对于亮度分量运动补偿,每个亮度子块(比如4*4)的块向量以每个亮度子块的中心像素点的块向量代替,然后分别对各个亮度子块进行运动补偿。
另外,针对当前帧的色度分量,对于每个色度子块(比如4*4),确定与该色度子块相对应的N个亮度子块,其中,N为正整数;获取该N个亮度子块的块向量的平均值,将得到的平均值作为该色度子块的块向量。即,对于色度分量运动补偿,每个色度子块通过对相应的4个亮度子块(比如4x4)的块向量取平均,得到该色度子块的块向量,然后分别对各个色度子块进行运动补偿。
需要说明的是,色度采样率可以为亮度采样率的一半,因此,编解码端可以得到两个色度块和一个亮度块,一个色度块的尺寸为M*M,一个亮度块的尺寸为2M*2M,其中,M为正整数,即一个亮度块对应两个色度块。例如,对于一帧图像有三个图像通道分别为Y、U和V,在图像通道Y上,编解码端对该帧图像进行亮度采样,得到一个亮度块;在图像通道U和V上,分别对该帧图像进行色度采样,得到一个色度块。
当处理色度块时,可以先确定与该色度块对应的亮度块,再确定该亮度块的各个亮度子块,然后,再确定该色度块的每个色度子块对应的至少一个亮度子块,最后,根据每个色度子块所对应的至少一个亮度子块的块向量,获取每个色度子块的块向量。
例如,一个色度块的尺寸为2*2,由2行2列的色度子块组成,与该色度块对应的一个亮度块的尺寸为4*4,由4行4列的亮度子块组成,对于第1行第1列处的色度子块,对应亮度块中第1行至第2行,第1列至第2列位置处的4个亮度子块,然后,获取这4个亮度子块的块向量,再对这4个亮度子块的块向量求平均值,将求出的平均值作为第1行第1列处的色度子块的运动向量。
在步骤504中,对于任意一个子块,根据该子块的块向量在当前帧中确定与其匹配的参考块,根据该子块的参考块对该子块进行编码。
在一种可能的实现方式中,根据该子块的参考块对该子块进行编码,包括但不限于:将该参考块和当前子块作差,得到残差数据,并对残差数据分别进行变换和量化处理,得到量化参数。将量化参数和该子块的块向量一起进行熵编码,加入到输出的码流中。
相应地,在解码端,将该量化参数进行反量化处理和反变换,得到残差数据;之后,按照块向量指明的位置,从已经解码的部分找到相应的参考块,进而将该残差数据与找到的参考块进行相加,完成该子块的重建,得到重建块。
示例性地,上述变换包括但不限于DCT(Discrete Cosine Transform,离散余弦变换)、FFT(Fast Fourier Transform,离散余弦变换)等。量化处理为数字信号处理领域一种常用的技术,是指将信号的连续取值(或者大量可能的离散取值)近似为有限多个(或较少的)离散值的过程。量化处理主要应用于从连续信号到数字信号的转换中,连续信号经过采样成为离散信号,离散信号经过量化即成为数字信号。
本公开实施例提供的方法,本公开实施例实现了基于仿射模型进行帧内预测,详细来说,对于当前帧中的当前编码块,本公开实施例会获取当前编码块的仿射运动向量,其中,该仿射运动向量包括当前编码块的至少两个控制点的控制点块向量;之后,根据该仿射运动向量获取当前编码块中每个单元的块向量;其中,每个单元的块向量均指向当前帧中与其匹配的参考单元,每个单元包括一个或多个像素点;进一步地,对于任意一个单元,根据该单元的块向量在当前帧中确定与其匹配的参考单元并根据该参考单元对该单元进行编码。
由于包括至少两个控制点块向量的仿射模型能够准确地预测非平移运动,如旋转、缩放、剪切、以及变形等,所以基于仿射运动预测能够在当前帧中为当前编码块的各个单元精确地找到与其匹配的参考单元,即本公开能达到更精确地匹配经过仿射变换的重复pattern的目的,从而能够获得更好的视频压缩性能。换言之,由于提高了帧内预测在复杂运动场景的预测精确度,因此可显著提升编码性能。
图11是根据一示例性实施例示出的一种视频编码装置的框图。该装置应用于帧内预测,参照图11,该装置包括第一获取模块1101,第二获取模块1102和编码模块1103。
第一获取模块1101,被配置为对于当前帧中的当前编码块,获取当前编码块的仿射运动向量,所述仿射运动向量包括当前编码块的至少两个控制点的控制点块向量;
第二获取模块1102,被配置为根据所述仿射运动向量获取当前编码块中每个单元的块向量;其中,每个单元的块向量均指向当前帧中与其匹配的参考单元,每个单元包括一个或多个像素点;
编码模块1103,被配置为对于任意一个单元,根据所述单元的块向量在当前帧中确定与其匹配的参考单元,根据所述参考单元对所述单元进行编码。
本公开实施例提供的装置,实现了基于仿射模型进行帧内预测,详细来说,对于当前帧中的当前编码块,本公开实施例会获取当前编码块的仿射运动向量,其中,该仿射运动向量包括当前编码块的至少两个控制点的控制点块向量;之后,根据该仿射运动向量获取当前编码块中每个单元的块向量;其中,每个单元的块向量均指向当前帧中与其匹配的参考单元,每个单元包括一个或多个像素点;进一步地,对于任意一个单元,根据该单元的块向量在当前帧中确定与其匹配的参考单元并根据该参考单元对该单元进行编码。
由于包括至少两个控制点块向量的仿射模型能够准确地预测非平移运动,如旋转、缩放、剪切、以及变形等,所以基于仿射运动预测能够在当前帧中为当前编码块的各个单元精确地找到与其匹配的参考单元,即本公开能达到更精确地匹配经过仿射变换的重复pattern的目的,从而能够获得更好的视频压缩性能。换言之,由于提高了帧内预测在复杂运动场景的预测精确度,因此可显著提升编码性能。
在一种可能的实现方式中,该装置还包括:
划分模块,被配置为将当前编码块划分为多个子块,每个子块中包括多个像素点,一个子块为一个单元;
第二获取模块,还被配置为根据所述仿射运动向量获取每个子块的块向量,其中,每个子块的块向量均指向当前帧中与其匹配的参考块;
编码模块,还被配置为对于任意一个子块,根据所述子块的块向量在当前帧中确定与其匹配的参考块,根据所述子块的参考块对所述子块进行编码。
在一种可能的实现方式中,所述仿射运动向量包括两个控制点的控制点块向量,每个子块包括的像素点个数相同;
第二获取模块,还被配置为获取当前编码块的左上角控制点的第一控制点块向量;获取当前编码块的右上角控制点的第二控制点块向量;对于任意一个子块,根据所述第一控制点块向量、第二控制点块向量、所述子块的中心像素点的位置坐标和每个子块的宽度值,获取所述子块的块向量。
在一种可能的实现方式中,所述仿射运动向量包括三个控制点的控制点块向量,每个子块包括的像素点个数相同;
第二获取模块,还被配置为获取当前编码块的左上角控制点的第一控制点块向量;获取当前编码块的右上角控制点的第二控制点块向量;获取当前编码块的左下角控制点的第三控制点块向量;对于任意一个子块,根据所述第一控制点块向量、第二控制点块向量、所述第三控制点块向量、所述子块的中心像素点的位置坐标、以及每个子块的宽度值和高度值,获取所述子块的块向量。
在一种可能的实现方式中,对于当前帧的色度分量,第二获取模块,还被配置为对于每个色度子块,确定与所述色度子块相对应的N个亮度子块,N为正整数;对于所述N个亮度子块中的任意一个亮度子块,根据所述仿射运动向量和所述亮度子块的中心像素点的位置坐标,获取所述亮度子块的块向量;获取所述N个亮度子块的块向量的平均值,将所述平均值作为所述色度子块的块向量。
在一种可能的实现方式中,第一获取模块,还被配置为基于与当前编码块空域邻近的多个相邻块的运动信息,获取关于控制点块向量的多组预测值候选项,得到预测值候选项列表;在所述预测值候选项列表中确定率失真代价最小的一组目标预测值候选项;以所述目标预测值候选项作为控制点块向量的搜索起点,在目标搜索范围内修正每个控制点块向量,直至搜索到率失真代价最小的一组控制点块向量,得到当前编码块的仿射运动向量。
在一种可能的实现方式中,所述多个相邻块包括位于当前编码块左上角的左上顶端块、位于当前编码块右上角的右上块和右上顶端块、位于当前编码块左下角的第一左下块和左下顶端块;或,
所述多个相邻块包括位于当前编码块左上角的左上顶端块、左上块和第二左下块,位于当前编码块左下角的第一左下块和左下顶端块,位于当前编码块右上角的右上块和右上顶端块。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图12示出了本公开一个示例性实施例提供的一种编码设备1200的结构框图。通常,设备1200包括有:处理器1201和存储器1202。
处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1201所执行以实现本公开中方法实施例提供的视频编码方法。
在一些实施例中,设备1200还可选包括有:外围设备接口1203和至少一个外围设备。处理器1201、存储器1202和外围设备接口1203之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1203相连。具体地,外围设备包括:显示屏1205和电源1209。
外围设备接口1203可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1201和存储器1202。在一些实施例中,处理器1201、存储器1202和外围设备接口1203被集成在同一芯片或电路板上;在一些其他实施例中,处理器1201、存储器1202和外围设备接口1203中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
显示屏1204用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1204是触摸显示屏时,显示屏1204还具有采集在显示屏1204的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1201进行处理。此时,显示屏1204还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1204可以为一个,设置设备1200的前面板;显示屏1204可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
电源1205用于为设备1200中的各个组件进行供电。电源1205可以是交流电、直流电、一次性电池或可充电电池。当电源1205包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
本领域技术人员可以理解,图12中示出的结构并不构成对设备1200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器,上述指令可由编码设备1200的处理器执行以完成上述视频编码方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,所述计算机程序产品中的指令由编码设备1200的处理器执行时,使得编码设备1200能够执行如上述方法实施例中的视频编码方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (4)

1.一种视频编码方法,其特征在于,所述方法应用于帧内预测,包括:
对于当前帧中的当前编码块,将当前编码块划分为多个子块;
根据第二目标块的块向量,获取当前编码块的左上角控制点的预测值,所述第二目标块是按照第一搜索顺序在位于当前编码块左上角的左上顶端块、左上块和第二左下块中搜索得到的,所述第二目标块是所述左上顶端块、左上块和第二左下块中第一个可用的块,所述第一搜索顺序为由所述左上顶端块到所述左上块再到所述第二左下块;
根据第三目标块的块向量,获取当前编码块的左下角控制点的预测值,所述第三目标块是按照第二搜索顺序在位于当前编码块左下角的第一左下块和左下顶端块中搜索得到的,所述第三目标块是所述第一左下块和左下顶端块中第一个可用的块,所述第二搜索顺序为由所述第一左下块到所述左下顶端块;
根据第四目标块的块向量,获取当前编码块的右上角控制点的预测值,所述第四目标块是按照第三搜索顺序在位于当前编码块右上角的右上块和右上顶端块中搜索得到的,所述第四目标块是所述右上块和右上顶端块中第一个可用的块,所述第三搜索顺序为由所述右上块到所述右上顶端块;
获取关于三个控制点的控制点块向量的多组预测值候选项,得到预测值候选项列表;
在所述预测值候选项列表中确定率失真代价最小的一组目标预测值候选项;
以所述目标预测值候选项作为三个控制点的控制点块向量的搜索起点,在目标搜索范围内修正每个控制点块向量,直至搜索到率失真代价最小的一组控制点块向量,得到当前编码块的仿射运动向量,所述仿射运动向量包括当前编码块的三个控制点的控制点块向量,每个子块包括一个或多个像素点,且每个子块包括的像素点个数相同,其中,所述在目标搜索范围内修正每个控制点块向量时采用的是迭代搜索或者基于梯度搜索的方式;
当所述仿射运动向量包括三个控制点的控制点块向量时,获取当前编码块的所述左上角控制点的第一控制点块向量;获取当前编码块的所述右上角控制点的第二控制点块向量;获取当前编码块的所述左下角控制点的第三控制点块向量;对于任意一个子块,通过以下公式,根据所述第一控制点块向量、所述第二控制点块向量、所述第三控制点块向量、所述子块的中心像素点的位置坐标、每个子块的宽度值和高度值,获取所述子块的块向量
Figure QLYQS_1
Figure QLYQS_2
Figure QLYQS_3
其中,所述子块的块向量指向当前帧中与所述子块匹配的参考块,
Figure QLYQS_4
为所述子块的中心像素点的位置坐标,/>
Figure QLYQS_5
为所述第一控制点块向量,/>
Figure QLYQS_6
为所述第二控制点块向量,(/>
Figure QLYQS_7
, />
Figure QLYQS_8
)为所述第三控制点块向量,/>
Figure QLYQS_9
为所述子块的宽度值,h为所述子块的高度值;
对于任意一个子块,根据所述子块的块向量在当前帧中确定与所述子块匹配的所述参考块,根据所述子块的所述参考块对所述子块进行编码;
对于当前帧的色度分量,在根据所述仿射运动向量获取每个子块的块向量时,所述方法还包括:
对于每个色度子块,确定与所述色度子块相对应的N个亮度子块,N为正整数;
对于所述N个亮度子块中的任意一个亮度子块,根据所述仿射运动向量和所述亮度子块的中心像素点的位置坐标,获取所述亮度子块的块向量,所述亮度子块的块向量用于对所述亮度子块进行运动补偿;
获取所述N个亮度子块的块向量的平均值,将所述平均值作为所述色度子块的块向量,所述色度子块的块向量用于对所述色度子块进行运动补偿。
2.一种视频编码装置,其特征在于,所述装置应用于帧内预测,包括:
第一获取模块,被配置为对于当前帧中的当前编码块,根据第二目标块的块向量,获取当前编码块的左上角控制点的预测值,所述第二目标块是按照第一搜索顺序在位于当前编码块左上角的左上顶端块、左上块和第二左下块中搜索得到的,所述第二目标块是所述左上顶端块、左上块和第二左下块中第一个可用的块,所述第一搜索顺序为由所述左上顶端块到所述左上块再到所述第二左下块;根据第三目标块的块向量,获取当前编码块的左下角控制点的预测值,所述第三目标块是按照第二搜索顺序在位于当前编码块左下角的第一左下块和左下顶端块中搜索得到的,所述第三目标块是所述第一左下块和左下顶端块中第一个可用的块,所述第二搜索顺序为由所述第一左下块到所述左下顶端块;根据第四目标块的块向量,获取当前编码块的右上角控制点的预测值,所述第四目标块是按照第三搜索顺序在位于当前编码块右上角的右上块和右上顶端块中搜索得到的,所述第四目标块是所述右上块和右上顶端块中第一个可用的块,所述第三搜索顺序为由所述右上块到所述右上顶端块;获取关于三个控制点的控制点块向量的多组预测值候选项,得到预测值候选项列表;在所述预测值候选项列表中确定率失真代价最小的一组目标预测值候选项;以所述目标预测值候选项作为三个控制点的控制点块向量的搜索起点,在目标搜索范围内修正每个控制点块向量,直至搜索到率失真代价最小的一组控制点块向量,得到当前编码块的仿射运动向量,所述仿射运动向量包括当前编码块的三个控制点的控制点块向量;
划分模块,被配置为将当前编码块划分为多个子块,每个子块包括一个或多个像素点,且每个子块包括的像素点个数相同,其中,所述在目标搜索范围内修正每个控制点块向量时采用的是迭代搜索或者基于梯度搜索的方式;
第二获取模块,被配置为根据所述仿射运动向量获取当前编码块中每个子块的块向量;其中,每个子块的块向量均指向当前帧中与所述子块匹配的参考块;
编码模块,被配置为对于任意一个子块,根据所述子块的块向量在当前帧中确定与所述子块匹配的所述参考块,根据所述子块的所述参考块对所述子块进行编码;
所述第二获取模块,还被配置为:当所述仿射运动向量包括三个控制点的控制点块向量时,获取当前编码块的所述左上角控制点的第一控制点块向量;获取当前编码块的所述右上角控制点的第二控制点块向量;获取当前编码块的所述左下角控制点的第三控制点块向量;对于任意一个子块,通过以下公式,根据所述第一控制点块向量、所述第二控制点块向量、所述第三控制点块向量、所述子块的中心像素点的位置坐标、每个子块的宽度值和高度值,获取所述子块的块向量
Figure QLYQS_10
Figure QLYQS_11
/>
Figure QLYQS_12
其中,
Figure QLYQS_13
为所述子块的中心像素点的位置坐标,/>
Figure QLYQS_14
为所述第一控制点块向量,/>
Figure QLYQS_15
为所述第二控制点块向量,(/>
Figure QLYQS_16
, />
Figure QLYQS_17
)为所述第三控制点块向量,/>
Figure QLYQS_18
为所述子块的宽度值,h为所述子块的高度值;
所述第二获取模块,还被配置为对于每个色度子块,确定与所述色度子块相对应的N个亮度子块,N为正整数;对于所述N个亮度子块中的任意一个亮度子块,根据所述仿射运动向量和所述亮度子块的中心像素点的位置坐标,获取所述亮度子块的块向量,所述亮度子块的块向量用于对所述亮度子块进行运动补偿;获取所述N个亮度子块的块向量的平均值,将所述平均值作为所述色度子块的块向量,所述色度子块的块向量用于对所述色度子块进行运动补偿。
3.一种编码设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1所述的视频编码方法。
4.一种存储介质,其特征在于,当所述存储介质中的指令由编码设备的处理器执行时,使得所述编码设备能够执行如权利要求1所述的视频编码方法。
CN202010162588.6A 2020-03-10 2020-03-10 视频编码方法、装置、存储介质及编码设备 Active CN111327901B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010162588.6A CN111327901B (zh) 2020-03-10 2020-03-10 视频编码方法、装置、存储介质及编码设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010162588.6A CN111327901B (zh) 2020-03-10 2020-03-10 视频编码方法、装置、存储介质及编码设备

Publications (2)

Publication Number Publication Date
CN111327901A CN111327901A (zh) 2020-06-23
CN111327901B true CN111327901B (zh) 2023-05-30

Family

ID=71165747

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010162588.6A Active CN111327901B (zh) 2020-03-10 2020-03-10 视频编码方法、装置、存储介质及编码设备

Country Status (1)

Country Link
CN (1) CN111327901B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112055208B (zh) * 2020-08-22 2024-05-07 浙江大华技术股份有限公司 视频编码方法、设备及存储装置
CN116132685A (zh) * 2022-09-20 2023-05-16 杭州海康威视数字技术股份有限公司 图像编解码方法、装置及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110383839A (zh) * 2017-03-14 2019-10-25 高通股份有限公司 仿射运动信息导出

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2924501C (en) * 2013-11-27 2021-06-22 Mediatek Singapore Pte. Ltd. Method of video coding using prediction based on intra picture block copy
CN104935938B (zh) * 2015-07-15 2018-03-30 哈尔滨工业大学 一种混合视频编码标准中帧间预测方法
WO2017147765A1 (en) * 2016-03-01 2017-09-08 Mediatek Inc. Methods for affine motion compensation
US20190116376A1 (en) * 2017-10-12 2019-04-18 Qualcomm Incorporated Motion vector predictors using affine motion model in video coding
CN110868602B (zh) * 2018-08-27 2024-04-12 华为技术有限公司 视频编码器、视频解码器及相应方法
CN110505485B (zh) * 2019-08-23 2021-09-17 北京达佳互联信息技术有限公司 运动补偿方法、装置、计算机设备以及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110383839A (zh) * 2017-03-14 2019-10-25 高通股份有限公司 仿射运动信息导出

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Algorithm Description of Joint Exploration Test Model 4;J. Chen等;《JVET-D1001》;20161119;第2.3.6节 *

Also Published As

Publication number Publication date
CN111327901A (zh) 2020-06-23

Similar Documents

Publication Publication Date Title
US11831902B2 (en) Picture prediction method and picture prediction apparatus
CN110557631B (zh) 图像预测方法和相关设备
RU2676245C1 (ru) Способ прогнозирующего кодирования, устройство прогнозирующего кодирования и программа прогнозирующего кодирования вектора движения и способ прогнозирующего декодирования, устройство прогнозирующего декодирования и программа прогнозирующего декодирования вектора движения
JP2019198092A (ja) 画像予測方法および関連装置
CN107318026B (zh) 视频编码器以及视频编码方法
CN103004201B (zh) 运动图像编码装置、运动图像解码装置、运动图像编码方法以及运动图像解码方法
CN104581177B (zh) 一种结合块匹配和串匹配的图像压缩方法和装置
CN104967852A (zh) 通过帧内预测来对图像进行编码和解码的方法和设备
US10742989B2 (en) Variable frame rate encoding method and device based on a still area or a motion area
Wang et al. A fast algorithm and its VLSI architecture for fractional motion estimation for H. 264/MPEG-4 AVC video coding
CN111327901B (zh) 视频编码方法、装置、存储介质及编码设备
CN104363449A (zh) 图像预测方法及相关装置
KR100580194B1 (ko) 비트 정밀도를 낮춘 부화소 움직임 추정방법 및 장치
CN104333758A (zh) 深度图的预测方法和检测像素点的方法及相关装置
CN102263954A (zh) 一种基于对象的快速分形视频压缩与解压缩方法
Yun et al. Design of reconfigurable array processor for multimedia application
CN104683812A (zh) 用于移动估计的视频预处理方法与装置
CN115412727A (zh) 编码方法、解码方法及其装置
KR20080107668A (ko) 블록 기반의 영상 움직임 추정 방법 및 그 장치

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
GR01 Patent grant
GR01 Patent grant