CN114175658A - 用于改进视频编解码中的运动估计的方法和装置 - Google Patents

用于改进视频编解码中的运动估计的方法和装置 Download PDF

Info

Publication number
CN114175658A
CN114175658A CN202080038497.XA CN202080038497A CN114175658A CN 114175658 A CN114175658 A CN 114175658A CN 202080038497 A CN202080038497 A CN 202080038497A CN 114175658 A CN114175658 A CN 114175658A
Authority
CN
China
Prior art keywords
motion vector
block
video
control point
optimal
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
CN202080038497.XA
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.)
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
Publication of CN114175658A publication Critical patent/CN114175658A/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/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
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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
    • H04N19/513Processing of motion vectors
    • 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
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • 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
    • H04N19/567Motion 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

用于改进视频编解码中的运动估计的方法和装置
技术领域
本申请总体上涉及视频数据编码和解码,并且具体地,涉及用于改进视频编解码中的运动估计的方法和装置。
背景技术
各种电子设备(诸如数字电视、膝上型计算机或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏机、智能电话、视频电话会议设备、视频流设备等)都支持数字视频。电子设备通过实施如由MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4的第10部分、高级视频编解码(AVC)、高效视频编解码(HEVC)和通用视频编解码(VVC)标准定义的视频压缩/解压缩标准来发送、接收、编码、解码和/或存储数字视频数据。视频压缩通常包括执行空间(帧内)预测和/或时间(帧间)预测来减少或移除视频数据中固有的冗余。对于基于块的视频编解码,将视频帧划分为一个或更多个条带,每个条带具有多个视频块,视频块也可被称为编码树单元(CTU)。每个CTU可包含一个编码单元(CU)或者递归地被划分为更小的CU直到达到预定义的最小CU尺寸为止。每个CU(也称为叶CU)包含一个或更多个变换单元(TU)并且每个CU还包含一个或更多个预测单元(PU)。可以以帧内、帧间或IBC模式对每个CU进行编解码。视频帧的帧内编解码(I)条带中的视频块使用关于同一视频帧内的邻近块中的参考样点的空间预测来进行编码。视频帧的帧间编解码(P或B)条带中的视频块可使用关于同一视频帧内的邻近块中的参考样点的空间预测或关于其它先前参考视频帧和/或未来参考视频帧中的参考样点的时间预测。
基于先前已被编码的参考块(例如,邻近块)的空间预测或时间预测得出用于待编解码的当前视频块的预测块。找到参考块的过程可通过块匹配算法来完成。表示待编解码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。根据残差块和指向参考帧中的形成预测块的参考块的运动矢量来对帧间编码块进行编码。确定运动矢量的过程通常被称为运动估计。根据帧内预测模式和残差块对帧内编码块进行编码。为了进一步压缩,将残差块从像素域变换到变换域(例如,频域),从而得出残差变换系数,残差变换系数然后可被量化。最初以二维阵列布置的量化的变换系数可被扫描以产生变换系数的一维矢量,然后被熵编码为视频比特流以实现甚至更大的压缩。
然后,将编码的视频比特流保存于计算机可读存储介质(例如,闪存存储器)中,以由具有数字视频能力的另一电子设备访问或者有线或无线地直接发送到电子设备。然后,电子设备通过例如以下操作来执行视频解压缩(其为与上文描述的视频压缩相反的过程):对已编码的视频比特流进行解析来从比特流获得语义元素并且至少部分地基于从比特流获得的语义元素从已编码的视频比特流将数字视频数据重建为其原始格式,并且电子设备在电子设备的显示器上呈现重建的数字视频数据。
发明内容
本申请描述与视频数据编码和解码相关的实施方式,并且更具体地讲,描述用于改进视频编解码中的运动估计的方法和装置。
根据本申请的第一方面,一种对当前图片的编码块进行编码的方法包括以下操作:在多个候选运动矢量之中选择针对所述编码块的初始运动矢量,其中,所述多个候选运动矢量包括与所述编码块相关联的运动矢量库;在所述初始运动矢量的预定义范围内搜索针对所述编码块的最优运动矢量;在参考图片内识别与所述最优运动矢量对应的先前被编解码的编码块;以及使用参考图片中的先前被编解码的编码块对编码块进行编码。
根据本申请的第二方面,一种电子装置包括一个或更多个处理单元、存储器和存储在所述存储器中的多个程序。所述程序在由所述一个或更多个处理单元执行时促使所述电子装置执行如上所述的对当前图片的编码块进行编码的方法。
根据本申请的第三方面,一种非暂时性计算机可读存储介质存储用于由具有一个或更多个处理单元的电子装置执行的多个程序。所述程序在由所述一个或更多个处理单元执行时促使所述电子装置执行如上所述的对当前图片的编码块进行编码的方法。
根据本申请的第四方面,一种在仿射模式下对当前图片的编码块进行编码的方法包括以下操作:在仿射模式下确定针对所述编码块的多个初始控制点运动矢量;对于所述初始控制点运动矢量中的每一个,在所述初始控制点运动矢量的预定义范围内搜索针对所述编码块的最优控制点运动矢量,其中,所述最优运动矢量在所述初始控制点运动矢量的所述预定义范围内具有最低率失真代价;在参考图片内识别与所述最优控制点运动矢量对应的先前被编解码的编码块;以及根据仿射模式使用所述参考图片中的所述先前被编解码的编码块对编码块进行编码。
根据本申请的第五方面,一种电子装置包括一个或更多个处理单元、存储器和存储在所述存储器中的多个程序。所述程序在由所述一个或更多个处理单元执行时促使所述电子装置执行如上所述的在仿射模式下对当前图片的编码块进行编码的方法。
根据本申请的第六方面,一种非暂时性计算机可读存储介质存储用于由具有一个或更多个处理单元的电子装置执行的多个程序。所述程序在由所述一个或更多个处理单元执行时促使所述电子装置执行如上所述的在仿射模式下对当前图片的编码块进行编码的方法。
附图说明
附图示出所描述的实施方式并且与描述一起用于解释基本原理,其中,附图被包括以提供对实施方式的进一步理解并且被并入本文并构成说明书的一部分。相同的附图标号表示相应的部分。
图1是示出根据本公开的一些实施方式的示例性视频编码和解码系统的框图。
图2是示出根据本公开的一些实施方式的示例性视频编码器的框图。
图3是示出根据本公开的一些实施方式的示例性视频解码器的框图。
图4A至4E是示出根据本公开的一些实施方式的如何将帧递归地分割为不同尺寸和形状的多个视频块的框图。
图5A和5B是分别示出根据本发明的一些实施方式的基于4参数块的仿射运动模型和基于6参数块的仿射运动模型的框图。
图5C是示出根据本公开的一些实施方式的在仿射模式下细化编码块的控制点运动矢量的过程的流程图。
图5D和5E是示出根据本公开的一些实施方式的用于细化控制点运动矢量的搜索图案的框图。
图5F是示出根据本公开的一些实施方式的在仿射模式下对当前图片的编码块进行编码的过程的流程图。
图6A是示出根据本公开的一些实施方式的使用用于对编码块进行编码的运动矢量库来细化初始运动矢量的过程的流程图。
图6B是示出根据本公开的一些实施方式的如何针对编码块构建和更新运动矢量库的框图。
图6C是示出根据本公开的一些实施方式的对当前图片的编码块进行编码的过程的流程图。
具体实施方式
现在将详细参照具体实施方式,在附图中示出具体实施方式的示例。在以下详细描述中,阐述了很多非限制性具体细节以便帮助理解本文呈现的主题。但是对于本领域普通技术人员显而易见的是,在不脱离权利要求的范围的情况下,可使用各种替代方案,并且可在没有这些具体细节的情况下实践主题。例如,对于本领域普通技术人员将显而易见的是,本文呈现的主题可在具有数字视频能力的许多类型的电子设备上实现。
图1是示出根据本公开的一些实施方式的用于对视频块进行并行编码和解码的示例性系统10的框图。如图1中所示,系统10包括源设备12,源设备12生成并编码稍后将由目标设备14进行解码的视频数据。源设备12和目标设备14可包括各种各样的电子设备中的任何电子设备,包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示器设备、数字媒体播放器、视频游戏机、视频流传输设备等。在一些实施方式中,源设备12和目标设备14配备有无线通信能力。
在一些实施方式中,目标设备14可经由链路16接收待解码的编码视频数据。链路16可包括能够将编码视频数据从源设备12移动到目标设备14的任何类型的通信介质或设备。在一个示例中,链路16可包括使源设备12能够实时地将编码视频数据直接发送到目标设备14的通信介质。编码视频数据可根据通信标准(诸如无线通信协议)被调制,并且被发送到目标设备14。通信介质可包括任何无线或有线通信介质,诸如射频(RF)频谱或一个或更多个物理传输线。通信介质可形成基于分组的网络(例如,局域网、广域网或诸如互联网的全球网)的一部分。通信介质可包括路由器、交换机、基站或可有利于促进从源设备12到目标设备14的通信的任何其它装置。
在一些其它实施方式中,编码视频数据可从输出接口22被发送到存储设备32。随后,存储设备32中的编码视频数据可由目标设备14经由输入接口28被访问。存储设备32可包括各种分布式或本地访问的数据存储介质中的任何数据存储介质,诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存存储器、易失性或非易失性存储器、或者用于存储编码视频数据的任何其它合适的数字存储介质。在另一示例中,存储设备32可对应于文件服务器或可保持由源设备12生成的编码视频数据的另一中间存储设备。目标设备14可从存储设备32经由流传输或下载来访问存储的视频数据。文件服务器可以是能够存储编码视频数据并且将编码视频数据发送到目标设备14的任何类型的计算机。示例性文件服务器包括web服务器(例如,用于网站)、FTP服务器、网络附属存储(NAS)设备或本地磁盘驱动器。目标设备14可通过适合于访问存储在文件服务器上的编码视频数据的任何标准数据连接来访问编码视频数据,标准数据连接包括无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或无线信道和有线连接两者的组合。编码视频数据从存储设备32的传输可以是流传输、下载传输或流传输和下载传输两者的组合。
如图1中所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可包括诸如以下项的源或此类源的组合:视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频存档、用于从视频内容提供者接收视频的视频馈入接口、和/或用于生成作为源视频的计算机图形数据的计算机图形系统。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目标设备14可形成相机电话或视频电话。然而,本申请中所描述的实施方式通常可适用于视频编解码,并且可应用于无线和/或有线应用。
可由视频编码器20对捕获、预先捕获或计算机生成的视频进行编码。可经由源设备12的输出接口22直接将编码视频数据发送到目标设备14。还可(或可选地)将编码视频数据存储到存储设备32上以供稍后被目标设备14或其它设备访问,以用于解码和/或回放。输出接口22还可进一步包括调制解调器和/或发送器。
目标设备14包括输入接口28、视频解码器30和显示器设备34。输入接口28可包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16通信传送或在存储设备32上提供的编码视频数据可包括由视频编码器20生成的各种语义元素以供视频解码器30在对视频数据进行解码时使用。此类语义元素可被包括在通信介质上发送、存储在存储介质上或存储在文件服务器上的编码视频数据内。
在一些实施方式中,目标设备14可包括显示器设备34,显示器设备34可以是集成显示器设备以及被配置为与目标设备14通信的外部显示器设备。显示器设备34将解码视频数据显示给用户,并且可包括各种显示器设备中的任何显示器设备,诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示器设备。
视频编码器20和视频解码器30可根据专有标准或行业标准(例如,VVC、HEVC、MPEG-4、Part 10、高级视频编解码(AVC))或此类标准的扩展进行操作。应当理解,本申请不限于特定的视频编码/解码标准,并且可适用于其它视频编码/解码标准。通常认为源设备12的视频编码器20可被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行编码。类似地,还通常认为目标设备14的视频解码器30可被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行解码。
视频编码器20和视频解码器30可分别被实现为各种合适的编码器电路中的任何电路,诸如一个或更多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当部分地以软件实现时,电子设备可将用于软件的指令存储于合适的非暂时性计算机可读介质中,并且在使用一个或更多个处理器的硬件中执行指令以执行本公开中所公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可被包括在一个或更多个编码器或解码器中,编码器或解码器中的任一者可被集成为相应设备中的组合式编码器/解码器(CODEC)的一部分。
图2是示出根据本申请中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可执行对视频帧内的视频块的帧内预测编解码和帧间预测编解码。帧内预测编解码依赖于空间预测以减少或移除给定视频帧或图片内的视频数据中的空间冗余。帧间预测编解码依赖于时间预测以减少或移除视频序列的相邻视频帧或图片内的视频数据中的时间冗余。
如图2中所示,视频编码器20包括视频数据存储器40、预测处理单元41、解码图片缓冲器(DPB)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41进一步包括运动估计单元42、运动补偿单元44、分割单元45、帧内预测处理单元46和帧内块复制(BC)单元48。在一些实施方式中,视频编码器20还包括用于视频块重建的反量化单元58、逆变换处理单元60和加法器62。去块滤波器(未示出)可位于加法器62与DPB 64之间以对块边界进行滤波以从重建视频去除块效应。除了去块滤波器之外,还可使用环路滤波器(未示出)来对加法器62的输出进行滤波。视频编码器20可采取固定或可编程硬件单元的形式,或者可分散在说明的固定或可编程硬件单元中的一个或更多个中。
视频数据存储器40可存储将由视频编码器20的组件编码的视频数据。视频数据存储器40中的视频数据可例如从视频源18获得。DPB 64是存储供视频编码器20(例如,以帧内或帧间预测编码模式)在对视频数据进行编码时使用的参考视频数据的缓冲器。视频数据存储器40和DPB 64可由各种存储器设备中的任何存储器设备形成。在各种示例中,视频数据存储器40可与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。
如图2中所示,在接收到视频数据之后,预测处理单元41内的分割单元45将视频数据分割为视频块。此分割还可包括根据与视频数据相关联的预定义的划分结构(诸如四叉树结构)将视频帧分割为条带、区块(tile)或其它更大编码单元(CU)。视频帧可被划分为多个视频块(或被称为区块的视频块集合)。预测处理单元41可基于误差结果(例如,编解码速率和失真等级)为当前视频块选择多个可行预测编解码模式中的一个,诸如多个帧内预测编解码模式中的多个帧间预测编解码模式中的一个。预测处理单元41可将所得的帧内预测编码块或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重建编码块以用于随后作为参考帧的一部分使用。预测处理单元41还将语义元素(诸如运动矢量、帧内模式指示符、分割信息和其它此类语义信息)提供给熵编码单元56。
为了选择用于当前视频块的合适的帧内预测编解码模式,预测处理单元41内的帧内预测处理单元46可以与和待编解码的当前块在同一帧中的一个或更多个邻近块相关地执行当前视频块的帧内预测编解码以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44与一个或更多个参考帧中的一个或更多个预测块相关地执行当前视频块的帧间预测编解码以提供时间预测。视频编码器20可执行多个编解码遍次,例如,来为视频数据的每个块选择合适的编解码模式。
在一些实施方式中,运动估计单元42通过根据视频帧的序列内的预定模式生成运动矢量来确定用于当前视频帧的帧间预测模式,运动矢量指示当前视频帧内的视频块的预测单元(PU)相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成估计针对视频块的运动的运动矢量的过程。例如,运动矢量可指示当前视频帧或图片内的视频块的PU相对于与当前帧内正被编码的当前块(或其它编码单元)相关的参考帧内的预测块(或其它编码单元)的位移。预定模式可将序列中的视频帧指定为P帧或B帧。帧内BC单元48可以以与由运动估计单元42确定用于帧间预测的运动矢量类似的方式确定用于帧内BC编解码的矢量(例如,块矢量),或可利用运动估计单元42确定块矢量。
在像素差方面,预测块是被认为与待编解码视频块的PU紧密匹配的参考帧的块,像素差可由绝对差总和(SAD)、平方差总和(SSD)或其它差度量确定。在一些实施方式中,视频编码器20可计算用于DPB 64中存储的参考帧的子整数像素位置的值。例如,视频编码器20可对参考帧的四分之一像素位置、八分之一像素位置或其它分数像素位置的值进行插值。因此,运动估计单元42可相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精度的运动矢量。
运动估计单元42通过以下操作来计算针对帧间预测编解码帧中的视频块的PU的运动矢量:将PU的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)选择的参考帧的预测块的位置进行比较,第一参考帧列表和第二参考帧列表中的每一个标识存储在DPB 64中的一个或更多个参考帧。运动估计单元42将计算的运动矢量发送到运动补偿单元44,然后发送到熵编码单元56。
由运动补偿单元44执行的运动补偿可涉及基于由运动估计单元42确定的运动矢量提取或生成预测块。在接收到针对当前视频块的PU的运动矢量后,运动补偿单元44可在参考帧列表中的一个参考帧列表中定位运动矢量所指向的预测块,从DPB 64取回预测块,并且将预测块转发到加法器50。然后,加法器50通过从正被编解码的当前视频块的像素值减去由运动补偿单元44提供的预测块的像素值来形成像素差值的残差视频块。形成残差视频块的像素差值可包括亮度差分量或色度差分量或两者。运动补偿单元44还可生成与视频帧的视频块相关联的语义元素以供视频解码器30在对视频帧的视频块进行解码时使用。语义元素可包括例如定义用于标识预测块的运动矢量的语义元素、指示预测模式的任何标记、或本文描述的任何其它语义信息。应注意,运动估计单元42和运动补偿单元44可高度集成,但出于概念目的而单独说明运动估计单元42和运动补偿单元44。
在一些实施方式中,帧内BC单元48可以以与上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式生成矢量并提取预测块,但是这些预测块与正被编码的当前块在同一帧中,并且这些矢量被称为块矢量而非运动矢量。具体地,帧内BC单元48可确定将用于对当前块进行编码的帧内预测模式。在一些示例中,帧内BC单元48可例如在单独的编码遍次期间使用各种帧内预测模式来对当前块进行编码,并且通过率失真分析来测试它们的性能。接下来,帧内BC单元48可在各种测试的帧内预测模式中选择合适的帧内预测模式以使用并相应地生成帧内模式指示符。例如,帧内BC单元48可使用率失真分析针对各种测试的帧内预测模式计算率失真值,并且在测试的模式中选择具有最佳率失真特性的帧内预测模式作为合适的帧内预测模式来使用。率失真分析大体上确定编码块与被编码以生成编码块的原始未编码块之间的失真(或误差)量、以及用于产生编码块的比特率(即,比特数量)。帧内BC单元48可从针对各种编码块的失真和速率计算比率,以确定哪个帧内预测模式展现针对块的最佳率失真值。
在其它示例中,帧内BC单元48可全部或部分地使用运动估计单元42和运动补偿单元44来执行根据本文描述的实施方式的用于帧内BC预测的此类功能。在任一情况下,对于帧内块复制,在像素差方面,预测块可以是被认为与待编解码的块紧密匹配的块,像素差可由绝对差总和(SAD)、平方差总和(SSD)或其它差度量确定,并且预测块的识别可包括计算针对子整数像素位置的值。
无论预测块是根据帧内预测来自同一帧,还是根据帧间预测来自不同帧,视频编码器20可通过从正被编解码的当前视频块的像素值减去预测块的像素值来形成像素差值,从而形成残差视频块。形成残差视频块的像素差值可包括亮度分量差和色度分量差两者。
作为如上文所描述的由运动估计单元42和运动补偿单元44执行的帧间预测或由帧内BC单元48执行的帧内块复制预测的替代方案,帧内预测处理单元46可对当前视频块进行帧内预测。具体地,帧内预测处理单元46可确定帧内预测模式以用于对当前块进行编码。为此,帧内预测处理单元46可例如在单独的编码遍次期间使用各种帧内预测模式来对当前块进行编码,并且帧内预测处理单元46(或在一些示例中,模式选择单元)可从测试的帧内预测模式中选择合适的帧内预测模式来使用。帧内预测处理单元46可将指示针对块选择的帧内预测模式的信息提供给熵编码单元56。熵编码单元56可将指示选择的帧内预测模式的信息编码到比特流中。
在预测处理单元41经由帧间预测或帧内预测确定针对当前视频块的预测块之后,加法器50通过从当前视频块减去预测块来形成残差视频块。残差块中的残差视频数据可被包括在一个或更多个变换单元(TU)中并且提供给变换处理单元52。变换处理单元52使用变换(诸如离散余弦变换(DCT)或概念上类似的变换)将残差视频数据变换为残差变换系数。
变换处理单元52可将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小比特率。量化过程还可减小与系数中的一些或全部相关联的比特深度。可通过调整量化参数来修改量化程度。在一些示例中,量化单元54可随后执行对包括量化的变换系数的矩阵的扫描。可选地,熵编码单元56可执行扫描。
在量化之后,熵编码单元56使用例如上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、基于语义的上下文自适应二进制算术编码(SBAC)、概率区间分割熵(PIPE)编码或另一熵编码方法或技术,将量化的变换系数熵编码成视频比特流。然后,编码的比特流可被发送到视频解码器30,或存档于存储设备32中以供稍后发送到视频解码器30或由视频解码器30取回。熵编码单元56还可对用于正被编码的当前视频帧的运动矢量和其它语义元素进行熵编码。
反量化单元58和逆变换处理单元60分别应用反量化和逆变换以在像素域中重建残差视频块以用于生成用于预测其它视频块的参考块。如上文指出的,运动补偿单元44可从存储在DPB 64中的帧的一个或更多个参考块生成运动补偿预测块。运动补偿单元44还可将一个或更多个插值滤波器应用于预测块以计算子整数像素值以用于在运动估计时使用。
加法器62将重建的残差块与由运动补偿单元44产生的运动补偿预测块相加来生成参考块以存储在DPB 64中。然后,参考块可由帧内BC单元48、运动估计单元42和运动补偿单元44用作预测块以对后续视频帧中的另一视频块进行帧间预测。
图3是示出根据本申请的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、反量化单元86、逆变换处理单元88、加法器90和DPB 92。预测处理单元81进一步包括运动补偿单元82、帧内预测处理单元84、帧内BC单元85。视频解码器30可执行与上文结合图2关于视频编码器20所描述的编码过程基本互逆的解码过程。例如,运动补偿单元82可基于从熵解码单元80接收的运动矢量生成预测数据,而帧内预测单元84可基于从熵解码单元80接收的帧内预测模式指示符生成预测数据。
在一些示例中,视频解码器30的单元可被分派任务以执行本申请的实施方式。此外,在一些示例中,本申请的实施方式可分散在视频解码器30的多个单元中的一个或更多个单元中。例如,帧内BC单元85可单独地或与视频解码器30的其它单元(诸如,运动补偿单元82、帧内预测处理单元84和熵解码单元80)组合地执行本申请的实施方式。在一些示例中,视频解码器30可不包括帧内BC单元85,并且帧内BC单元85的功能可由预测处理单元81的其它组件(诸如运动补偿单元82)执行。
视频数据存储器79可存储将由视频解码器30的其它组件进行解码的视频数据,诸如编码视频比特流。存储在视频数据存储器79中的视频数据可例如从存储设备32、从本地视频源(诸如相机)、经由视频数据的有线或无线网络通信,或通过访问物理数据存储介质(例如,闪存驱动器或硬盘)获得。视频数据存储器79可包括存储来自编码视频比特流的编码视频数据的编码图片缓冲器(CPB)。视频解码器30的解码图片缓冲器(DPB)92存储参考视频数据以供视频解码器30(例如,以帧内或帧间预测编码模式)在对视频数据进行解码时使用。视频数据存储器79和DPB 92可由各种存储器设备中的任何存储器设备形成,诸如动态随机存取存储器(DRAM)(包括同步DRAM(SDRAM))、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器设备。出于说明性目的,视频数据存储器79和DPB 92在图3中描绘为视频解码器30的两个不同组件。但是对于本领域的技术人员将显而易见的是,视频数据存储器79和DPB 92可由同一存储器设备或单独存储器设备提供。在一些示例中,视频数据存储器79可与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。
在解码过程期间,视频解码器30接收表示编码视频帧的视频块和相关联的语义元素的编码视频比特流。视频解码器30可在视频帧级和/或视频块级接收语义元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化的系数、运动矢量或帧内预测模式指示符、以及其它语义元素。然后,熵解码单元80将运动矢量和其它语义元素转发到预测处理单元81。
当视频帧被编码为帧内预测编码(I)帧或用于其它类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测处理单元84可基于标示的帧内预测模式和来自当前帧的先前解码块的参考数据来生成用于当前视频帧的视频块的预测数据。
当视频帧被编码为帧间预测编码(即,B或P)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量和其它语义元素产生针对当前视频帧的视频块的一个或更多个预测块。预测块中的每一个可从参考帧列表中的一个参考帧列表内的参考帧产生。视频解码器30可基于存储在DPB 92中的参考帧使用默认构建技术来构建参考帧列表,例如,列表0和列表1。
在一些示例中,当根据本文描述的帧内BC模式对视频块进行编码时,预测处理单元81的帧内BC单元85基于从熵解码单元80接收的块矢量和其它语义元素产生针对当前视频块的预测块。预测块可在由视频编码器20定义的与当前视频块的同一图片的重建区域内。
运动补偿单元82和/或帧内BC单元85通过解析运动矢量和其它语义元素来确定针对当前视频帧的视频块的预测信息,然后使用该预测信息产生针对正被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语义元素中的一些语义元素来确定用于对视频帧的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,B或P)、用于针对帧的参考帧列表中的一个或更多个的构建信息、用于帧的每个帧间预测编码视频块的运动矢量、用于帧的每个帧间预测编码视频块的帧间预测状态、以及用于对当前视频帧中的视频块进行解码的其它信息。
类似地,帧内BC单元85可使用接收到的语义元素中的一些语义元素,例如标记,以确定当前视频块是使用帧内BC模式预测的、帧的哪些视频块在重建区域内且应被存储在DPB 92中的构建信息、用于帧的每个帧内BC预测视频块的块矢量、用于帧的每个帧内BC预测视频块的帧内BC预测状态、以及用于对当前视频帧中的视频块进行解码的其它信息。
运动补偿单元82还可使用如由视频编码器20在视频块的编码期间使用的插值滤波器执行插值,以计算针对参考块的子整数像素的插值。在这种情况下,运动补偿单元82可从接收到的语义元素确定由视频编码器20使用的插值滤波器,并且使用这些插值滤波器来产生预测块。
反量化单元86使用由视频编码器20针对视频帧中的每个视频块计算的相同的量化参数以确定量化程度,来对在比特流中提供且由熵解码单元80熵解码的量化的变换系数进行反量化。逆变换处理单元88将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中重建残差块。
在运动补偿单元82或帧内BC单元85基于矢量和其它语义元素生成针对当前视频块的预测块之后,加法器90通过将来自逆变换处理单元88的残差块与由运动补偿单元82和帧内BC单元85生成的对应预测块相加,来重建针对当前视频块的解码视频块。环路滤波器(未示出)可位于加法器90与DPB 92之间以进一步处理解码视频块。然后,将给定帧中的解码视频块存储在DPB 92中,DPB 92存储用于接下来的视频块的后续运动补偿的参考帧。DPB92或与DPB 92分离的存储器设备还可存储解码视频以用于稍后呈现在显示器设备(诸如,图1的显示器设备34)上。
在典型的视频编解码过程中,视频序列通常包括帧或图片的有序集合。每一帧可包括三个样点阵列,表示为SL、SCb和SCr。SL是亮度样点的二维阵列。SCb是Cb色度样点的二维阵列。SCr是Cr色度样点的二维阵列。在其它情况下,帧可以是单色的,因此仅包括亮度样点的一个二维阵列。
如图4A中所示,视频编码器20(或更具体地讲,分割单元45)通过首先将帧分割为一组编码树单元(CTU)而产生帧的编码表示。视频帧可包括以光栅扫描顺序从左至右以及从上至下连续排序的整数数量个CTU。每一个CTU是最大逻辑编码单元,并且CTU的宽度和高度由视频编码器20在序列参数集中标示,使得视频序列中的所有CTU具有为128×128、64×64、32×32和16×16中的一个的相同尺寸。但是应当注意,本申请不必限于特定尺寸。如图4B中所示,每一个CTU可包括亮度样点的一个编码树块(CTB)、两个色度样点的相应编码树块、以及用于对编码树块的样点进行编解码的语义元素。语义元素描述像素的编码块的不同类型的单元的性质和可如何在视频解码器30处重建视频序列,其中,语义元素包括帧间或帧内预测、帧内预测模式、运动矢量和其它参数。在单色图片或具有三个单独颜色平面的图片中,CTU可包括单个编码树块和用于对编码树块的样点进行编解码的语义元素。编码树块可以是N×N的样点的块。
为实现更好性能,视频编码器20可对CTU的编码树块递归地执行树分割(诸如,二叉树分割、三叉树分割、四叉树分割或二叉树分割、三叉树分割和四叉树分割中的两者的组合),并且将CTU划分为更小的编码单元(CU)。如图4C中所示,首先将64×64CTU 400划分为四个更小的CU,每一个CU的块尺寸为32×32。在四个更小的CU之中,CU 410和CU 420各自按块尺寸被划分为四个16×16的CU。两个16×16CU 430和440各自按块尺寸被进一步划分为四个8×8的CU。图4D描绘示出如图4C中所描绘的CTU 400的分割过程的最终结果的四叉树数据结构,其中,四叉树的每一个叶节点与从32×32至8×8的范围的各个尺寸的一个CU对应。类似于图4B中所描绘的CTU,每一个CU可包括亮度样点的编码块(CB)和相同尺寸的帧的两个色度样点的对应编码块、以及用于对编码块的样点进行编解码的语义元素。在单色图片或具有三个单独颜色平面的图片中,CU可包括单个编码块以及用于对编码块的样点进行编解码的语义结构。应注意,图4C和图4D中所描绘的四叉树分割仅出于说明性目的,并且将一个CTU可基于四叉树/三叉树/二叉树分割被划分为CU以适应于变化的局部特性。在多类型树结构中,通过四叉树结构对一个CTU进行分割,并且可通过二叉树结构和三叉树结构对每一个四叉树叶CU进行进一步分割。如图4E中所示,具有宽度W和高度H的编码块有五种可能的分割类型,即四元分割、水平二元分割、垂直二元分割、水平三元分割和垂直三元分割。
在一些实施方式中,视频编码器20可将CU的编码块进一步分割为一个或更多个M×N预测块(PB)。预测块是应用相同预测(帧间或帧内)的样点的矩形(正方形或非正方形)块。CU的预测单元(PU)可包括亮度样点的预测块、两个色度样点的对应预测块、以及用于预测该预测块的语义元素。在单色图片或具有三个单独颜色平面的图片中,PU可包括单个预测块和用于预测该预测块的语义结构。视频编码器20可针对CU的每一个PU的亮度预测块、Cb预测块和Cr预测块生成预测亮度块、预测Cb块和预测Cr块。
视频编码器20可使用帧内预测或帧间预测来产生PU的预测块。如果视频编码器20使用帧内预测来产生PU的预测块,则视频编码器20可基于与PU相关联的帧的解码样点产生PU的预测块。如果视频编码器20使用帧间预测来产生PU的预测块,则视频编码器20可基于除了与PU相关联的帧之外的一个或更多个帧的解码样点来产生PU的预测块。
在视频编码器20产生CU的一个或更多个PU的预测亮度块、预测Cb块和预测Cr块之后,视频编码器20可通过从CU的原始亮度编码块减去CU的预测亮度块而产生CU的亮度残差块,使得CU的亮度残差块中的每一个样点指示CU的预测亮度块中的一个预测亮度块中的亮度样点与CU的原始亮度编码块中的对应样点之间的差。类似地,视频编码器20可分别产生CU的Cb残差块和Cr残差块,使得CU的Cb残差块中的每一个样点指示CU的预测Cb块中的一个预测Cb块中的Cb样点与CU的原始Cb编码块中的对应样点之间的差,并且CU的Cr残差块中的每一个样点可指示CU的预测Cr块中的一个预测Cr块中的Cr样点与CU的原始Cr编码块中的对应样点之间的差。
此外,如图4C中所示,视频编码器20可使用四叉树分割将CU的亮度残差块、Cb残差块和Cr残差块分解为一个或更多个亮度变换块、Cb变换块和Cr变换块。变换块是应用相同变换的样点的矩形(正方形或非正方形)块。CU的变换单元(TU)可包括亮度样点的变换块、色度样点的两个对应变换块、以及用于对变换块样点进行变换的语义元素。因此,CU的每一个TU可与亮度变换块、Cb变换块和Cr变换块相关联。在一些示例中,与TU相关联的亮度变换块可以是CU的亮度残差块的子块。Cb变换块可以是CU的Cb残差块的子块。Cr变换块可以是CU的Cr残差块的子块。在单色图片或具有三个单独颜色平面的图片中,TU可包括单个变换块和用于对变换块的样点进行变换的语义结构。
视频编码器20可将一个或更多个变换应用于TU的亮度变换块以产生针对TU的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可将一个或更多个变换应用于TU的Cb变换块以产生针对TU的Cb系数块。视频编码器20可将一个或更多个变换应用于TU的Cr变换块以产生针对TU的Cr系数块。
在产生系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,视频编码器20可对系数块进行量化。量化通常是指变换系数被量化以能够减少用于表示变换系数的数据的量从而提供进一步压缩的过程。在视频编码器20对系数块进行量化之后,视频编码器20可对指示量化的变换系数的语义元素进行熵编码。例如,视频编码器20可对指示量化的变换系数的语义元素执行上下文自适应二进制算术编码(CABAC)。最终,视频编码器20可输出包括形成编解码的帧及相关联数据的表示的比特序列的比特流,所述比特流被保存在存储设备32中或被发送到目标设备14。
在接收到由视频编码器20产生的比特流之后,视频解码器30可对比特流进行解析以从比特流获得语义元素。视频解码器30可至少部分地基于从比特流获得的语义元素来重建视频数据的帧。重建视频数据的过程通常与由视频编码器20执行的编码过程互逆。例如,视频解码器30可对与当前CU的TU相关联的系数块执行逆变换以重建与当前CU的TU相关联的残差块。视频解码器30还通过将针对当前CU的PU的预测块的样点与当前CU的TU的变换块的对应样点相加来重建当前CU的编码块。在重建针对帧的每一个CU的编码块之后,视频解码器30可重建该帧。
随着数字视频质量从高清晰度变为4K×2K或甚至8K×4K,待编码/解码的视频数据量呈指数增长。就如何在保持解码视频数据的图像质量的同时更有效地对视频数据进行编码/解码而言,这是一个恒定的问题。各种视频编码标准已经采用了不同的方法来解决这个问题。例如,已经发现,当存在许多类型的运动(例如,放大/缩小、旋转、透视运动和现实世界中的其他不规则运动)时,平移运动模型对于运动补偿预测表现不佳。因此,已提出多个基于块的仿射运动模型以增加运动补偿预测的准确性。
图5A和图5B是分别示出根据本公开的一些实施方式的基于4参数块的仿射运动模型和基于6参数块的仿射运动模型的框图。如图5A中所描绘的,当前块510通过以下两个运动矢量与参考图片中的参考块(图中未示出)相关:当前块510的左上角控制点处的MV0(mv0x,mv0y)和当前块510的右上角控制点处的MV1(mv1x,mv1y)。假设当前块510的宽度为W(如图4E中所描绘的),则通过线性仿射运动模型如下定义当前块510内的任何位置(x,y)处的运动矢量MV(mvx,mvy):
Figure BDA0003371416130000171
类似地,如图5B中所描绘的,另一当前块520通过以下三个运动矢量与参考块(图中未示出)相关:当前块520的左上角控制点处的MV0(mv0x,mv0y)、当前块520的右上角控制点处的MV1(mv1x,mv1y)、以及当前块520的左下角控制点处的MV2(mv2x,mv2y)。假设当前块520的宽度和高度分别为W和H,则通过线性仿射运动模型如下定义当前块520内的任何位置(x,y)处的运动矢量MV(mvx,mvy):
Figure BDA0003371416130000172
在本申请中,控制点处的这些运动矢量被称为“控制点运动矢量”(CPMV)。它们的准确性对编解码效率具有显著影响。例如,如果这些控制点运动矢量准确,则可使当前块与基于参考块的预测块之间的预测误差最小化。但如果这些控制点运动矢量不太准确,则当前块与基于参考块的预测块之间的预测误差将增加。
在一些实施方式中,估计当前块的CPMV的过程(针对4参数仿射模型的块510或针对6参数仿射模型的块520)包括四个步骤:(1)根据初始仿射运动补偿模型产生预测样点;(2)基于光流模型利用索贝尔(Sobel)滤波器计算预测样点在两个方向上的空间梯度;(3)基于预测样点的梯度和预测样点的坐标计算相关矩阵;以及(4)基于最小均方估计(LMSE)更新仿射模型补偿参数。当一次迭代之后的更新小于预定义阈值时,重复上述过程直到仿射CPMV收敛为止。可看出,由于优化函数的计算,作为优化过程的仿射运动估计方法的计算复杂度高。通过考虑由预测误差测量的失真和用于对所有仿射CPMV进行编解码的比特来如下定义基于率失真(R-D)代价的示例性优化函数:
Figure BDA0003371416130000173
其中,“o”表示当前块的原始信号,“p”表示来自参考块的预测信号;R(MVi)是用于对第i运动矢量MVi进行编解码的比特的数量;K是CPMV的数量。例如,对于平移模型,将K设置为1,对于4参数仿射模型,将K设置为2,以及对于6参数仿射模型,将K为3。λ是失真和比特代价之间的加权因子。视频编码器20首先检查平移运动模型的R-D代价。如果当前块的宽度和高度两者均大于8,则执行使用4参数仿射模型的仿射运动估计。如果4参数仿射模型的R-D代价不比平移运动模型的R-D代价大太多,则视频编码器20还利用6参数仿射模型检查R-D代价。之后,视频编码器20将具有最小R-D代价的优化的仿射运动补偿模型选择用于当前块。
由于高频性质,从预测块推导出的空间梯度对块中存在的噪声(例如,在原始视频数据中捕获的噪声和/或在编解码过程期间生成的编解码噪声)敏感,因此从预测块推导出的空间梯度是不可靠的。因此,基于这种不准确的梯度推导出准确的仿射CPMV是非常困难的。另外,仿射运动估计是高维优化问题。例如,将分别针对4参数仿射模型和6参数仿射模型估计四个LMSE参数和六个LMSE参数。与其他高维优化问题一样,该优化问题的解决方案高度依赖于初始CPMV的准确性。如果初始CPMV接近R-D代价的局部最小值,则CPMV搜索路径可能陷入局部最小值,这严重影响所估计的仿射CPMV的准确性。
为了改进仿射模式的编码效率,图5C描绘根据本公开的一些实施方式的一个增强仿射运动估计方法。所提出的方法开始于使用如上所述的基于光流的仿射运动估计方法来估计仿射CPMV(532),即,基于预测块的梯度以及由R-D代价测量的预测块与当前块之间的差来迭代地调整仿射CPMV。在执行此仿射运动估计之后,所提出的方法根据基于图案的局部运动搜索进一步细化每一个CPMV。图5D和图5E是示出根据本公开的一些实施方式的用于细化CPMV的两种搜索图案的框图。具体地,图5D描绘菱形搜索图案,其中,从基于光流的仿射运动估计方法估计的CPMV位于菱形图案的中心(例如,圆点550),图5E描绘矩形搜索图案,其中,从基于光流的仿射运动估计方法估计的CPMV位于矩形图案的中心(例如,圆点560)。每一种搜索图案包括多个候选CPMV(例如,图5D中的正方形550-1和正方形550-2或图5E中的正方形560-1和正方形560-2)。
在一个示例中,搜索图案的中心处的CPMV在样点的整数位置处,并且在候选CPMV与该CPMV之间和两个候选CPMV(例如,与正方形550-1和正方形550-2对应的两个CPMV)之间存在预定义偏移。在一些实施方式中,偏移为图片中的一个样点或一个样点的分数。图5C描绘通过在搜索图案内搜索具有比CPMV更低的R-D代价的候选CPMV来细化CPMV的示例性迭代过程。迭代过程包括两个循环:步骤534和步骤542之间的外循环以及步骤536和步骤540之间的内循环。内循环通过细化第k候选CPMV(例如,计算第k候选CPMV的R-D代价并将第k候选CPMV与其他CPMV进行比较)来迭代搜索图案内的候选CPMV,直到搜索图案中的最后一个候选CPMV被检查为止。通过这样做,将具有最低R-D代价的CPMV识别为细化的CPMV。内循环有两种可能的结果。第一,细化的CPMV不同于搜索图案中的中心处的CPMV。例如,如果CPMV550-2的相关联的R-D代价在菱形图案内最低,则可将CPMV 550-2识别为细化的CPMV。在这种情况下,定义以细化的CPMV为中心的新的搜索图案,并且针对新的搜索图案重复内循环。第二,细化的CPMV与搜索图案的中心(例如,圆点550)处的CPMV相同。在此情况下,搜索图案的中心处的CPMV被视为针对仿射模型的当前CPMV的最优值。如果满足这两个条件中的一个,则外循环终止。第一,当没有CPMV改变时,即,如上所述,细化的CPMV与搜索图案的中心处的CPMV相同时,外循环应当终止。第二,当外循环的次数达到预定义阈值iMAX(例如,3)时,外循环终止以降低计算复杂度。总之,通过固定仿射模型的一个或更多个CPMV并搜索另一CPMV的局部细化,最优CPMV的搜索不太可能陷入局部最小值。应注意的是,上文所提出的仿射CPMV细化方法不限于任何特定搜索图案。该方法可应用于许多搜索图案(例如,菱形图案、光栅图案和六边形图案)。
作为上文结合细化仿射运动估计的本发明的概述,图5F是示出根据本公开的一些实施方式的由电子设备执行的在仿射模式下对当前图片的编码块进行编码的过程570的流程图。首先,电子装置在仿射模式下确定针对编码块的多个初始控制点运动矢量(例如,图5A中的块510中的两个CPMV和图5B中的块520中的三个CPMV)(575)。如上所述,通过使经由所述多个初始控制点运动矢量从参考图片预测的像素与编码块中的实际像素之间的差最小化,来确定所述多个初始控制点运动矢量。在一个示例中,根据基于光流的仿射运动估计方案来使该差最小化。
对于所述多个初始控制点运动矢量中的每一个,电子装置在初始控制点运动矢量的预定义范围内搜索针对编码块的最优控制点运动矢量(580)。在一些实施方式中,初始控制点运动矢量的预定义范围包括初始控制点运动矢量周围的控制点运动矢量候选的图案,其中,所述图案选自由正方形图案、菱形图案、光栅图案和六边形图案(例如图5D和5E中所描绘的那些图案)组成的群组。最优运动矢量是在初始控制点运动矢量的预定义范围内具有最低率失真代价的运动矢量。在一些实施方式中,如果在初始控制点运动矢量的预定义范围内的另一控制点运动矢量具有比初始控制点运动矢量的率失真代价低的率失真代价,则电子装置然后利用所述另一控制点运动矢量替换初始控制点运动矢量,并在所述另一控制点运动矢量的新的预定义的范围内继续搜索,直到找到最优控制点运动矢量为止(即,直到在所述另一控制点运动矢量的预定义范围内不存在具有比所述另一控制点运动矢量的率失真代价低的率失真代价的控制点运动矢量时为止)。在一些实施方式中,还选择上限(例如,3),使得在迭代的上限之后将最后一个控制点运动矢量作为最优控制点运动矢量的情况下终止对最优控制点运动矢量的搜索。
然后,电子装置在与当前块对应的参考图片内识别与最优控制点运动矢量对应的先前被编解码的编码块(585)。电子装置根据仿射模式使用参考图片中的先前被编解码的编码块对编码块进行编码(590)。
与上述基于光流的仿射运动估计方法类似,通过定义基于运动矢量的优化函数(例如,率失真代价)并从初始运动矢量估计开始重复地计算率失真代价直到找到具有最低R-D代价的最优运动矢量为止,非仿射运动估计(例如,常规帧间模式)也在数学上被视为优化问题。在一些实施方式中,差异运动矢量用作针对初始运动矢量估计的候选,其中,差异运动矢量包括当前块的邻近块的运动矢量预测(假设两个块共享相同参考图片)和与参考图片中的同位参考块对应的零MV。这些MVP候选被假设为由于它们的对应块是当前块的空间/时间邻近项的事实而与当前块的MV具有强相关性。
如图4E中所描绘的,新视频编解码标准允许通过多个树分割(即,四叉树、二叉树和三叉树)对块进行进一步分割。在不同编码树级的块的MV或空间非相邻块的MV之间可能存在强相关性。例如,在具有较少纹理的平坦区域中,一个编码块倾向于选择与更大的编码块相同或类似的MV,其中,更大的编码块来自所述一个编码块的父级中的一个父级。在另一示例中,当三叉树分割被应用时,一个编码块在水平方向或垂直方向上以1:2:1的比例划分为三个子分割。这样的分割对于以下场景很好地起作用:存在位于当前块的中心部分中的一个前景对象的同时左侧部分和右侧部分属于背景。当发生这种情况时,左侧部分与右侧部分之间的相关性比中心分割和左侧(或右侧)分割之间的相关性强。
在一些实施方式中,运动矢量(MV)库被构建并保持为运动估计过程所使用的初始运动矢量的另一可能源。例如,MV库包含由同一图片中的先前被编解码的帧间块所选择的最优MV。与用于选择初始MV的其它两种类型的MV候选类似,MV库中的MV候选在用作用于选择初始MV的候选之前为了效率而舍入到整数精度。图6A描绘根据本公开的一些实施方式的使用用于对编码块进行编码的这种运动矢量库来细化初始运动矢量的过程。首先,视频编码器20通过计算邻近块的运动矢量的R-D代价来测试邻近块的运动矢量预测(604),并且通过计算零运动矢量的R-D代价来测试零运动矢量(606)。在这两个候选之中,保留具有更低的R-D代价的候选以用于与MV库中的MV候选进行进一步比较。如图6A中所描绘的,视频编码器20通过计算MV库中的MV候选的R-D代价并将其与步骤604和步骤606的优胜项进行比较来测试MV库中的MV候选(608)。视频编码器20重复该过程,直到检查MV库中的最后一个MV候选为止(610-是),并且将具有最低R-D代价的一个MV候选识别为用于优化过程的初始运动矢量估计。该优化过程包括进一步细化初始MV(612)。在一些实施方式中,运动矢量的细化处于更高的分辨率,例如,开始于半像素运动搜索过程至四分之一像素运动过程,直到找到最优运动矢量为止。接下来,视频编码器20使用最优运动矢量和参考图片中的最优运动矢量的对应块来对当前块进行编码(614)。
在一些实施方式中,存储在MV库中的所有MV候选是由先前编码块所选择的最优MV。具体地,MV库中的每一个条目包含两种类型的信息:1)与MV相关联的编码块的位置、宽度和高度,以及2)与编码块的参考图片对应的最优MV。在开始对一个图片进行编码时,可将MV库设置为空或者可利用一些代表性MV值(例如,零MV)初始化MV库。在完成图片中的一个编码块的运动估计之后,可通过将当前块的MV与MV库中的旧MV候选合并来更新MV库。具体地,可按照以下两种方式之一更新MV库:(i)如果在MV库中存在现有条目并且该条目具有与当前块相同的块位置、块宽度和块高度,则利用上面根据图6A确定的当前块的最优MV更新MV库中的条目的MV;以及(ii)如果在MV库中不存在重复条目,则基于先进先出(FIFO)规则将当前块作为一个新MV候选添加到MV库。在一些情况下,MV库对条目的最大数量具有限制。在这种情况下,添加新条目可能导致基于FIFO规则从库中移除最旧的条目。在一些实施方式中,给定一个块的MV与该块的父块的MV之间的强相关性,如图6B所示出的,来自父块级的MV总是保持在MV库中。
在该示例中,假设MV库630具有最多四个条目,并且当编码块620经受如上面在图6B中所述的不同类型的分割时,针对编码块620构建MV库630。当在不划分模式中检查编码块620时,由视频编码器20基于R-D代价分析来确定最优运动矢量MV(B0)。接下来,当编码块经受水平二叉树(BT)划分时,两个新条目MV(B1)和MV(B2)被添加到MV库,MV(B1)和MV(B2)中的每一个条目具有对应子块B1和对应子块B2的相关联的位置和大小信息。当编码块620经受垂直BT划分时,必须根据FIFO规则将第一条目MV(B0)推出MV库。然而,因为条目MV(B0)是与整个块620对应的父级条目,所以条目MV(B0)需要被添加回MV库630的末尾。为此,需要从MV库630中移除第二最旧条目MV(B1)。其结果是,针对编码块的每一个可能的分割,条目MV(B0)均保留在MV库630中,其中,可能的分割包括水平三叉树(TT)划分、垂直TT划分和四叉树(QT)划分。
作为与上述初始运动矢量选择的改进相关的本公开的概述,图6C是示出根据本公开的一些实施方式的使用MV库对当前图片的编码块进行编码的过程640的流程图。电子装置首先在多个运动矢量候选之中选择针对编码块的初始运动矢量,其中,所述多个运动矢量候选包括与编码块相关联的运动矢量库(650)。如上所述,电子设备确定针对所述多个运动矢量候选中的每一个的率失真代价(650-1),然后将具有最低率失真代价的运动矢量候选选为初始运动矢量(650-3)。在一些实施方式中,以整数分辨率执行针对编码块的初始运动矢量的选择,并且以子整数分辨率执行针对编码块的最优运动矢量的选择。
在一些实施方式中,所述多个运动矢量候选还包括与参考图片中的同位编码块对应的零运动矢量和一个或更多个运动矢量,其中,所述一个或更多个运动矢量中的每一个运动矢量与当前图片中的当前块的邻近块相关联。MV库包括一个或更多个运动矢量,其中,每一个运动矢量与当前图片中的先前被编解码的编码块相关联,包括例如与当前图片中的覆盖编码块的区域的先前被编解码的父编码块相关联的运动矢量或与在空间上与编码块不相邻的编码块相关联的运动矢量中的至少一个。如上所述,对于MV库中的上述副本,与运动矢量库中的运动矢量对应的每一个编码块在当前图片中具有唯一的位置和尺寸信息。
接下来,装置在初始运动矢量的预定义范围内搜索针对编码块的最优运动矢量(660)。例如,装置首先在初始运动矢量的预定义范围内识别多个运动矢量细化候选,每一个运动矢量细化候选与初始运动矢量具有预定义的差(660-1)。然后,装置确定针对所述多个运动矢量细化候选中的每一个的率失真代价(660-3),并且将具有最低率失真代价的运动矢量细化候选选为最优运动矢量(660-5)。最后,装置在参考图片内识别与最优运动矢量对应的先前被编解码的编码块(670),并且使用参考图片中的先前编解码的编码块对编码块进行编码(680)。
如上所述,MV库具有有限的长度。利用新选择的最优运动矢量,装置可利用当前编码块的最优运动矢量以及最优运动矢量的相关联的位置和尺寸信息来更新运动矢量库(690)。在一些实施方式中,当运动矢量库中存在具有与最优运动矢量相同的位置和大小信息的现有运动矢量时,装置利用最优运动矢量替换所述现有运动矢量。可选地,如果运动矢量库超过预定义的运动矢量的大小并且在运动矢量库中不存在具有与最优运动矢量相同的位置和尺寸信息的运动矢量,则装置将最优运动矢量以及最优运动矢量的相关联的位置和尺寸信息添加到运动矢量库,并且基于先进先出规则从运动矢量库中移除最旧的运动矢量以及最旧的运动矢量的相关联的位置和尺寸信息。
在一些实施方式中,进一步放宽在视频编码器20处执行的仿射自适应运动矢量分辨率(AMVR)模式的R-D代价分析以利用仿射AMVR模式。例如,如果不使用AMVR的仿射模式的代价小于当前最优模式的代价乘以特定阈值,则视频编码器20检查仿射AMVR模式的R-D代价,即,
Costnon-AMVR<thres*Costbest
其中,最优模式是指不使用AMVR的所有帧间预测模式中的优胜项,并且thres是阈值,例如,thres=1.5。如果满足此条件,则视频编码器20然后测试仿射AMVR模式是否可进一步降低R-D代价。否则,视频编码器20可跳过测试仿射AMVR模式。
在一些实施方式中,与具有AMVR和/或不具有AMVR的常规帧间模式相关联的代价可用于确定是否需要执行仿射AMVR模式的R-D代价检查。例如,如果具有AMVR的常规帧间模式的代价小于不具有AMVR的常规帧间模式的代价乘以特定阈值,则视频编码器20可测试仿射AMVR模式的R-D代价。否则,对于编码器侧的当前块,可省略仿射AMVR模式的R-D代价。
在一个或更多个示例中,所描述的功能可以以硬件、软件、固件或硬件、软件和固件的任何组合实施。如果以软件实施,则所述功能可作为一个或更多个指令或代码被存储于计算机可读介质上或经由计算机可读介质被传输,并且由基于硬件的处理单元执行。计算机可读介质可包括计算机可读存储介质,或通信介质,其中,计算机可读存储介质与诸如数据存储介质的有形介质对应,通信介质包括促进(例如,根据通信协议)将计算机程序从一处传送到另一处的任何介质。以此方式,计算机可读介质通常可对应于(1)非暂时性的有形计算机可读存储介质,或(2)通信介质,例如信号或载波。数据存储介质可以是可由一个或更多个计算机或一个或更多个处理器访问以检索用于实现本申请中描述的实现方式的指令、代码和/或数据结构的任何可用介质。计算机程序产品可包括计算机可读介质。
在本文的实施方式的描述中使用的术语仅用于描述特定实施方式的目的,并不旨在限制权利要求的范围。如在实施方式和所附权利要求的描述中所使用的,除非上下文另有明确说明,否则单数形式旨在也包括复数形式。还将理解的是,如本文所使用的术语“和/或”是指并且涵盖相关联的所列项目中的一个或更多个的任何和所有可能的组合。将进一步理解,当在本说明书中使用时,术语“包括”和/或“包括有”指定所声明的特征、元件和/或组件的存在,但不排除一个或更多个其他特征、元件、组件和/或其他特征、元件和组件的组的存在或添加。
还应当理解,尽管本文可使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件与另一个元件区分开。例如,在不脱离实施方式的范围的情况下,第一电极可被称为第二电极,并且类似地,第二电极可被称为第一电极。第一电极和第二电极都是电极,但它们不是相同的电极。
已经出于说明和描述的目的呈现了本申请的描述,并且本申请的描述并不旨在穷举或将本发明限于所公开的形式。受益于前面的描述和相关联的附图中呈现的教导,许多修改、变化和替代实施方式对于本领域普通技术人员将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理、实际应用,并且使本领域的其他技术人员能够理解本发明的各种实施方式,并且最好地利用基本原理和具有适合于预期的特定用途的各种修改的各种实施方式。因此,应当理解,权利要求的范围不限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在包括在所附权利要求的范围内。

Claims (21)

1.一种对当前图片的编码块进行编码的方法,所述方法包括:
在多个运动矢量候选之中选择针对所述编码块的初始运动矢量,其中,所述多个运动矢量候选包括与所述编码块相关联的运动矢量库;
在所述初始运动矢量的预定义范围内搜索针对所述编码块的最优运动矢量;
在参考图片内识别与所述最优运动矢量对应的先前被编解码的编码块;以及
使用所述参考图片中的所述先前被编解码的编码块对所述编码块进行编码。
2.根据权利要求1所述的方法,其中,所述多个运动矢量候选包括与所述参考图片中的同位编码块对应的零运动矢量。
3.根据权利要求1至2中任一项所述的方法,其中,所述多个运动矢量候选包括一个或更多个运动矢量,其中,每一个运动矢量与所述当前图片中的所述当前块的邻近块相关联。
4.根据权利要求1至3中任一项所述的方法,其中,与所述编码块相关联的所述运动矢量库包括一个或更多个运动矢量,其中,每一个运动矢量与所述当前图片中的先前被编解码的编码块相关联。
5.根据权利要求4所述的方法,其中,与所述运动矢量库中的运动矢量对应的每一个编码块在所述当前图片中具有唯一位置和尺寸信息。
6.根据权利要求1至4中任一项所述的方法,其中,与所述编码块相关联的所述运动矢量库包括与所述当前图片中的覆盖所述编码块的区域的先前被编解码的父编码块相关联的运动矢量或者与在空间上与所述编码块不相邻的编码块相关联的运动矢量中的至少一个。
7.根据权利要求1至4或6中任一项所述的方法,其中,在多个运动矢量候选之中选择针对所述编码块的初始运动矢量的步骤包括:
确定针对所述多个运动矢量候选之中的每一个运动矢量候选的率失真代价;以及
将具有最低率失真代价的运动矢量候选选为所述初始运动矢量。
8.根据权利要求1至4或6至7中任一项所述的方法,其中,在所述初始运动矢量的预定义范围内搜索针对所述编码块的最优运动矢量的步骤包括:
在所述初始运动矢量的所述预定义范围内识别多个运动矢量细化候选,每一个运动矢量细化候选与所述初始运动矢量具有预定义差;
确定针对所述多个运动矢量细化候选中的每一个运动矢量细化候选的率失真代价;以及
将具有最低率失真代价的运动矢量细化候选选为所述最优运动矢量。
9.根据权利要求1至4或6至8中任一项所述的方法,其中,以整数分辨率执行针对所述编码块的初始运动矢量的选择,并且以子整数分辨率执行针对所述编码块的所述最优运动矢量的选择。
10.根据权利要求1至4或6至9中任一项所述的方法,还包括:
在选择针对所述编码块的所述最优运动矢量之后,利用所述当前编码块的所述最优运动矢量以及所述最优运动矢量的相关联的位置和大小信息更新所述运动矢量库。
11.根据权利要求10所述的方法,还包括:
根据确定在所述运动矢量库中存在具有与所述最优运动矢量相同的位置和大小信息的现有运动矢量,利用所述最优运动矢量替换所述现有运动矢量;以及
根据确定在所述运动矢量库中不存在具有与所述最优运动矢量相同的位置和大小信息的现有运动矢量,将所述最优运动矢量以及所述最优运动矢量的相关联的位置和尺寸信息添加到所述运动矢量库,并且如果所述运动矢量库超过预定义的运动矢量的大小,则从所述运动矢量库中移除最旧的运动矢量以及所述最旧的运动矢量的相关联的位置和尺寸信息。
12.一种电子装置,包括:
一个或更多个处理单元;
存储器,耦接到所述一个或更多个处理单元;以及
多个程序,存储在所述存储器中,所述多个程序在由所述一个或更多个处理单元执行时促使所述电子装置执行根据权利要求1-11所述的方法。
13.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储用于由具有一个或更多个处理单元的电子装置执行的多个程序,其中,所述多个程序在由所述一个或更多个处理单元执行时促使所述电子装置执行根据权利要求1-11所述的方法。
14.一种对当前图片的编码块进行编码的方法,所述方法包括:
在仿射模式下确定针对所述编码块的多个初始控制点运动矢量;
对于所述多个初始控制点运动矢量中的每一个初始控制点运动矢量,在所述初始控制点运动矢量的预定义范围内搜索针对所述编码块的最优控制点运动矢量,其中,所述最优运动矢量在所述初始控制点运动矢量的所述预定义范围内具有最低率失真代价;
在参考图片内识别与所述最优控制点运动矢量对应的先前被编解码的编码块;以及
根据所述仿射模式使用所述参考图片中的所述先前被编解码的编码块对所述编码块进行编码。
15.根据权利要求14所述的方法,其中,所述初始控制点运动矢量的所述预定义范围包括所述初始控制点运动矢量周围的控制点运动矢量候选的图案,其中,所述图案选自由正方形图案、菱形图案、光栅图案和六边形图案组成的群组。
16.根据权利要求14至15中任一项所述的方法,其中,通过使经由所述多个初始控制点运动矢量从所述参考图片预测的像素与所述编码块中的实际像素之间的差最小化来确定所述多个初始控制点运动矢量。
17.根据权利要求16所述的方法,其中,根据基于光流的仿射运动估计方案来使所述差最小化。
18.根据权利要求14至15或16中任一项所述的方法,其中,如果在所述初始控制点运动矢量的所述预定义范围内的另一控制点运动矢量具有比所述初始控制点运动矢量的率失真代价低的率失真代价,则然后通过所述另一控制点运动矢量替换所述初始控制点运动矢量,并且在所述另一控制点运动矢量的预定义范围内执行所述搜索,直到找到所述最优控制点运动矢量为止。
19.根据权利要求18所述的方法,其中,当在所述另一控制点运动矢量的所述预定义范围内不存在具有比所述另一控制点运动矢量的率失真代价低的率失真代价的控制点运动矢量时,或者在达到预定义的迭代次数之后,终止对所述最优控制点运动矢量的搜索。
20.一种电子装置,包括:
一个或更多个处理单元;
存储器,耦接到所述一个或更多个处理单元;以及
多个程序,存储在所述存储器中,所述多个程序在由所述一个或更多个处理单元执行时,促使所述电子装置执行根据权利要求14-19所述的方法。
21.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储用于由具有一个或更多个处理单元的电子装置执行的多个程序,其中,所述多个程序在由所述一个或更多个处理单元执行时促使所述电子装置执行根据权利要求14-19所述的方法。
CN202080038497.XA 2019-05-26 2020-05-26 用于改进视频编解码中的运动估计的方法和装置 Pending CN114175658A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962853030P 2019-05-26 2019-05-26
US62/853,030 2019-05-26
PCT/US2020/034568 WO2020243100A1 (en) 2019-05-26 2020-05-26 Methods and apparatus for improving motion estimation in video coding

Publications (1)

Publication Number Publication Date
CN114175658A true CN114175658A (zh) 2022-03-11

Family

ID=73552039

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080038497.XA Pending CN114175658A (zh) 2019-05-26 2020-05-26 用于改进视频编解码中的运动估计的方法和装置

Country Status (2)

Country Link
CN (1) CN114175658A (zh)
WO (1) WO2020243100A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095736B (zh) * 2022-01-11 2022-05-24 杭州微帧信息科技有限公司 一种快速运动估计视频编码方法
CN114745556B (zh) * 2022-02-07 2024-04-02 浙江智慧视频安防创新中心有限公司 编码方法、装置、数字视网膜系统、电子设备及存储介质
WO2024008123A1 (en) * 2022-07-05 2024-01-11 Alibaba Damo (Hangzhou) Technology Co., Ltd. Decoder-side motion vector refinement for affine motion compensation
CN115190299B (zh) * 2022-07-11 2023-02-28 杭州电子科技大学 Vvc仿射运动估计快速计算方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110170598A1 (en) * 2010-01-08 2011-07-14 Xun Shi Method and device for video encoding using predicted residuals
CN107027038A (zh) * 2016-01-29 2017-08-08 谷歌公司 动态参考运动矢量编码模式
CN107409225A (zh) * 2015-03-27 2017-11-28 高通股份有限公司 视频译码中运动信息推导模式确定
CN109155855A (zh) * 2016-05-16 2019-01-04 高通股份有限公司 用于视频译码的仿射运动预测

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017171107A1 (ko) * 2016-03-28 2017-10-05 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10448010B2 (en) * 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
KR102438181B1 (ko) * 2017-06-09 2022-08-30 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110170598A1 (en) * 2010-01-08 2011-07-14 Xun Shi Method and device for video encoding using predicted residuals
CN107409225A (zh) * 2015-03-27 2017-11-28 高通股份有限公司 视频译码中运动信息推导模式确定
CN107027038A (zh) * 2016-01-29 2017-08-08 谷歌公司 动态参考运动矢量编码模式
CN109155855A (zh) * 2016-05-16 2019-01-04 高通股份有限公司 用于视频译码的仿射运动预测

Also Published As

Publication number Publication date
WO2020243100A1 (en) 2020-12-03

Similar Documents

Publication Publication Date Title
CN116320504B (zh) 使用基于历史的运动向量预测进行视频编码的方法和装置
US11962789B2 (en) Simplifications of cross-component linear model
CN114175658A (zh) 用于改进视频编解码中的运动估计的方法和装置
CN113170178A (zh) 对合并候选列表的构建的修改
CN112997494B (zh) 用于视频编码的运动矢量存储
CN114615506A (zh) 用于视频编解码的子块变换的方法和系统
CN116156199B (zh) 用于视频解码、视频编码的方法、计算设备和存储介质
CN113940081A (zh) 使用利用光流的预测细化的视频编解码的方法和装置
CN117501694A (zh) 用于视频编解码中的仿射运动补偿的具有双向匹配的运动细化
CN114363610B (zh) 视频编码的方法、计算设备和存储介质
CN116847096B (zh) 视频编码方法、计算装置、存储介质和计算机程序产品
CN115004706A (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