CN114363611B - 用于视频编码的方法和计算设备 - Google Patents

用于视频编码的方法和计算设备 Download PDF

Info

Publication number
CN114363611B
CN114363611B CN202210042724.7A CN202210042724A CN114363611B CN 114363611 B CN114363611 B CN 114363611B CN 202210042724 A CN202210042724 A CN 202210042724A CN 114363611 B CN114363611 B CN 114363611B
Authority
CN
China
Prior art keywords
block
sub
motion
video
blocks
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
CN202210042724.7A
Other languages
English (en)
Other versions
CN114363611A (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
Publication of CN114363611A publication Critical patent/CN114363611A/zh
Application granted granted Critical
Publication of CN114363611B publication Critical patent/CN114363611B/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/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
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/172Methods 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 picture, frame or field
    • 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/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/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

提供一种用于视频编码的方法和计算设备。一种计算设备通过以下操作来执行对视频数据进行解码的方法:确定当前编码单元的同位图片;定位与同位图片对应的当前编码单元的空间邻近块;根据预定义的固定顺序从与空间邻近块相关联的一个或更多个运动矢量确定当前编码单元的运动移位矢量;并且基于运动移位矢量从同位图片中的对应子块重建当前编码单元中的多个子块中的相应子块的基于子块的时间运动矢量。

Description

用于视频编码的方法和计算设备
本申请是申请号为202080036321.0、申请日为2020年6月5日、题目为“用于视频编解码的子块时间运动矢量预测”的发明申请的分案申请。
技术领域
本申请总体涉及视频数据编码和解码,并且具体地,涉及视频数据编码和解码期间的子块运动矢量预测的方法和系统。
背景技术
各种电子设备(诸如数字电视、膝上型计算机或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏机、智能电话、视频电话会议设备、视频流设备等)都支持数字视频。电子设备通过实施如由MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part 10、高级视频编码(AVC)、高效视频编码(HEVC)和通用视频编码(VVC)标准定义的视频压缩/解压缩标准来发送、接收、编码、解码和/或存储数字视频数据。视频压缩通常包括执行空间(帧内)预测和/或时间(帧间)预测来减少或移除视频数据中固有的冗余。对于基于块的视频编码,将视频帧分割为一个或更多个条带,每个条带具有多个视频块,视频块也可被称为编码树单元(CTU)。每个CTU可包含一个编码单元(CU)或者递归地被拆分为更小的CU直到达到预定义的最小CU尺寸为止。每个CU(也称为叶CU)包含一个或多个变换单元(TU)并且每个CU还包含一个或多个预测单元(PU)。可以以帧内、帧间或IBC模式对每个CU进行编码。视频帧的帧内编码(I)条带中的视频块使用关于同一视频帧内的邻近块中的参考样点的空间预测来进行编码。视频帧的帧间编码(P或B)条带中的视频块可使用关于同一视频帧内的邻近块中的参考样点的空间预测或关于其它先前参考视频帧和/或未来参考视频帧中的参考样点的时间预测。
基于先前已被编码的参考块(例如,邻近块)的空间预测或时间预测得出用于待编码的当前视频块的预测块。找到参考块的过程可通过块匹配算法来完成。表示待编码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。根据残差块和指向参考帧中的形成预测块的参考块的运动矢量来对帧间编码块进行编码。确定运动矢量的过程通常被称为运动估计。根据帧内预测模式和残差块对帧内编码块进行编码。为了进一步压缩,将残差块从像素域变换到变换域(例如,频域),从而得出残差变换系数,残差变换系数然后可被量化。最初以二维阵列布置的量化的变换系数可被扫描以产生变换系数的一维向量,然后被熵编码为视频比特流以实现甚至更大的压缩。
然后,将经编码的视频比特流保存于计算机可读存储介质(例如,闪存存储器)中,以由具有数字视频能力的另一电子设备访问或者有线或无线地直接发送到电子设备。然后,电子设备执行视频解压缩(其为与上文描述的视频压缩相反的过程),例如,通过对经编码的视频比特流进行解析来从比特流获得语义元素,并且至少部分地基于从比特流获得的语义元素从经编码的视频比特流将数字视频数据重建为其原始格式,并且电子设备在电子设备的显示器上呈现重建的数字视频数据。
随着数字视频质量从高清变为4K×2K或甚至8K×4K,待编码/解码的视频数据量呈指数增长。在如何在保持解码视频数据的图像质量的同时能够更有效率地对视频数据进行编码/解码方面,是一个长久挑战。
发明内容
本申请描述了与视频数据编码和解码相关的实施方式,并且更具体地,描述了与子块运动矢量预测的系统和方法相关的实施方式。
根据本申请的第一方面,一种对当前图片中的当前编码单元进行解码的方法,包括:确定所述当前图片的同位图片;根据所述当前编码单元的空间邻近块的运动矢量来确定所述当前编码单元的运动移位矢量,其中所述运动移位矢量指示所述当前图片中的所述当前编码单元中的多个子块的子块与所述同位图片中的对应子块之间的空间位置的移位;基于所述运动移位矢量从所述同位图片中的对应子块重建所述当前编码单元中的所述多个子块的所述子块的基于子块的时间运动矢量。
根据本申请的第二方面,一种计算设备包括一个或更多个处理器、存储器和存储在存储器中的多个程序。程序在被一个或更多个处理器执行时使计算设备执行如上文所描述的操作。
根据本申请的第三方面,一种非暂态计算机可读存储介质存储用于由具有一个或更多个处理器的计算设备执行的多个程序。程序在被一个或更多个处理器执行时使计算设备执行如上文所描述的操作。
附图说明
被包括以提供对实施方式的进一步理解并且被并入本文并构成说明书的一部分的附图示出了所描述的实施方式,并且与本描述一起用于解释基本原理。相似的附图标记指代相应的部分。
图1是示出根据本公开的一些实施方式的示例性视频编码和解码系统的框图。
图2是示出根据本公开的一些实施方式的示例性视频编码器的框图。
图3是示出根据本公开的一些实施方式的示例性视频解码器的框图。
图4A至图4E是示出根据本公开的一些实施方式的如何将帧递归地分割为不同尺寸和形状的多个视频块的框图。
图5是示出根据本公开的一些实施方式的待编码的当前CU的空间邻近位置和时间同位块位置的框图。
图6A至图6D是示出根据本公开的一些实施方式的用于导出当前块的时间运动矢量预测值或当前块中的子块的子块时间运动矢量预测值的步骤的框图。
图7示出根据本公开的一些实施方式的用于确定用于导出时间运动矢量预测值和子块时间运动矢量预测值的有效区域的框图。
图8A至图8B示出根据本公开的一些实施方式的示出视频编解码器实施导出子块时间运动矢量预测值的技术的示例性过程的流程图。
具体实施方式
现在将详细参照具体实施方式,在附图中示出具体实施方式的示例。在以下详细描述中,阐述了很多非限制性具体细节以便帮助理解本文呈现的主题。但是对于本领域普通技术人员将显而易见的是,在不脱离权利要求的范围的情况下,可使用各种替代方案,并且可在没有这些具体细节的情况下实践主题。例如,对于本领域普通技术人员将显而易见的是,本文呈现的主题可在具有数字视频能力的许多类型的电子设备上实现。
图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可高度集成,但出于概念目的而单独说明。
在一些实施方式中,帧内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是最大的逻辑编码单元,并且由视频编码器20以序列参数集用信号传送CTU的宽度和高度,使得视频序列中的所有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×16的CU 430和CU 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样点与CU的原始Cb编码块中的对应样点之间的差,并且CU的Cr残差块中的每个样点可指示CU的预测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可重建帧。
如上所述,视频编码主要使用两种模式(即,帧内部预测(或帧内预测)和帧之间预测(或帧间预测))来实现视频压缩。应注意,IBC可被视为帧内预测或第三模式。在两种模式之间,由于使用运动矢量来从参考视频块预测当前视频块,所以帧间预测比帧内预测对编码效率的贡献更大。
但是随着不断改进的视频数据捕获技术和用于保留视频数据中的细节的更精细的视频块尺寸,表示用于当前帧的运动矢量所需的数据量也大幅增加。克服此挑战的一种方式是受益于以下事实:不仅空间域和时间域两者中的一组邻近CU具有用于预测目的的相似视频数据,而且这些邻近CU之间的运动矢量也是相似的。因此,有可能通过以下而使用空间邻近CU和/或时间同位CU的运动信息作为当前CU的运动信息(例如,运动矢量)的近似:探索它们的空间和时间相关性,其也被称为当前CU的“运动矢量预测值”(MVP)。
代替如上文结合图2所描述的将由运动估计单元42确定的当前CU的实际运动矢量编码到视频比特流中,从当前CU的实际运动矢量减去当前CU的运动矢量预测值以产生针对当前CU的运动矢量差(MVD)。通过这样做,不需要将由运动估计单元42针对帧的每个CU确定的运动矢量编码到视频比特流中,并且可显著减少用于表示视频比特流中的运动信息的数据量。
类似于在编码块的帧间预测期间选择参考帧中的预测块的过程,视频编码器20和视频解码器30两者需要采用一组规则,以用于使用与当前CU的空间邻近CU和/或时间同位CU相关联的那些潜在候选运动矢量来构建针对当前CU的运动矢量候选列表(也称为“合并列表”),然后从运动矢量候选列表中选择一个成员作为针对当前CU的运动矢量预测值。通过这样做,不需要在视频编码器20与视频解码器30之间发送运动矢量候选列表本身,并且运动矢量候选列表内的所选运动矢量预测值的索引足以使视频编码器20和视频解码器30使用运动矢量候选列表内的相同运动矢量预测值来对当前CU进行编码和解码。
在一些实施方式中,每个帧间预测CU具有用于构建运动矢量候选列表的三个运动矢量预测模式,包括帧间模式(其也被称为“高级运动矢量预测”(AMVP))、跳过模式和合并模式。在每个模式下,可根据下文所描述的算法将一个或更多个运动矢量候选添加到运动矢量候选列表。最终,候选列表中的这些运动矢量候选中的一个候选用作将被视频编码器20编码到视频比特流中或被视频解码器30从视频比特流解码的帧间预测CU的最佳运动矢量预测值。为了从候选列表找到最佳运动矢量预测值,引入运动矢量竞争(MVC)方案以从包括空间运动矢量候选和时间运动矢量候选的运动矢量的给定候选集合(即,运动矢量候选列表)选择运动矢量。
除了从空间邻近CU或时间同位CU得到运动矢量预测值候选之外,还可从所谓的“基于历史的运动矢量预测”(HMVP)表得到运动矢量预测值候选。HMVP表容纳预定义数量的运动矢量预测值,每个运动矢量预测值已用于对同一行的CTU(或有时是同一CTU)中的特定CU进行编码/解码。由于这些CU的空间/时间接近度,HMVP表中的运动矢量预测值之一可再用于对同一行的CTU内的不同CU进行编码/解码的可能性很高。因此,有可能通过在构建运动矢量候选列表的过程中包括HMVP表来实现更高的编码效率。
在一些实施方式中,HMVP表具有固定长度(例如,5),并且以类似先进先出(FIFO)的方式管理。例如,当对CU的一个帧间编码块进行解码时,针对CU重建运动矢量。因为重建的运动矢量可能是后续CU的运动矢量预测值,所以使用这样的运动矢量来即时地更新HMVP表。当更新HMVP表时,存在两种场景:(i)重建的运动矢量不同于HMVP表中的其它现有运动矢量或(ii)重建的运动矢量与HMVP表中的现有运动矢量之一相同。对于第一场景,如果HMVP表未满,则将重建的运动矢量作为最新运动矢量添加到HMVP表。如果HMVP表已满,则在将重建的运动矢量作为最新运动矢量被添加之前,首先需要从HMVP表移除HMVP表中的最旧运动矢量。换句话说,在这种情况下,HMVP表类似于FIFO缓冲器,使得位于FIFO缓冲器的头部处并与另一先前帧间编码块相关联的运动信息移出缓冲器,使得重建的运动矢量作为HMVP表中的最新成员附加到FIFO缓冲器的尾部。对于第二场景,在将重建的运动矢量作为最新运动矢量添加到HMVP表之前,从HMVP表移除HMVP表中与重建的运动矢量基本相同的现有运动矢量。如果还以FIFO缓冲器的形式维持HMVP表,则将HMVP表中的相同运动矢量之后的运动矢量预测值向前移位一个元素以占据由移除的运动矢量留下的空间,然后将重建的运动矢量作为HMVP表中的最新成员附加到FIFO缓冲器的尾部。
可在不同预测模式(诸如AMVP、合并、跳过等)下将HMVP表中的运动矢量添加到运动矢量候选列表。已发现,存储在HMVP表中的即使不与当前块邻近的先前帧间编码块的运动信息也可用于更有效率的运动矢量预测。
在针对当前CU的运动矢量的给定候选集合内选择一个MVP候选之后,视频编码器20可生成用于对应MVP候选的一个或更多个语义元素并且将它们编码到视频比特流中,使得视频解码器30可使用语义元素从视频比特流取回MVP候选。取决于用于构建运动矢量候选集合的特定模式,不同的模式(例如,AMVP、合并、跳过等)具有不同的语义元素集合。对于AMVP模式,语义元素包括帧间预测指示符(列表0、列表1或双向预测)、参考索引、运动矢量候选索引、运动矢量预测残差信号等。对于跳过模式和合并模式,仅将合并索引编码到比特流中,这是因为当前CU从由编码的合并索引涉及的邻近CU继承了包括帧间预测指示符、参考索引和运动矢量的其它语义元素。在跳过编码CU的情况下,也省略了运动矢量预测残差信号。
图5是示出根据本公开的一些实施方式的待编码/解码的当前CU的空间邻近块位置和时间同位块位置的框图。对于给定模式,通过首先检查与左侧空间邻近块位置和上方空间邻近块位置相关联的运动矢量的可用性以及与时间同位块位置相关联的运动矢量的可用性,然后检查HMVP表中的运动矢量,来构建运动矢量预测(MVP)候选列表。在构建MVP候选列表的过程期间,从候选列表移除一些冗余的MVP候选,并且在必要时,添加零值运动矢量以使候选列表具有固定长度(注意,不同的模式可具有不同的固定长度)。在构建MVP候选列表之后,视频编码器20可从候选列表选择最佳运动矢量预测值并且将指示所选候选的对应索引编码到视频比特流中。
在一些实施例中,通过按照以下顺序包括以下五种类型的候选来构建候选列表(也称为合并候选列表):
1、来自空间邻近CU的空间MVP(即,运动矢量预测值)
2、来自同位CU的时间MVP
3、来自FIFO表的基于历史的MVP
4、成对平均MVP
5、零MV
在一些实施例中,候选列表的大小在条带头中被用信号传送,并且候选列表的最大允许大小是六(例如,在VVC中)。对于合并模式下的每个CU编解码,使用截断一元二值化(TU)对最佳合并候选的索引进行编码。合并索引的第一二进制位用上下文被编解码,并且对于其它二进制位使用旁路编解码。在本公开的以下上下文中,此扩展合并模式也被称为常规合并模式,这是因为其概念与HEVC中使用的合并模式相同。
使用图5作为示例并且假设候选列表具有固定长度2,可通过在AMVP模式下按顺序执行以下步骤来构建针对当前CU的运动矢量预测值(MVP)候选列表:
1)从空间邻近CU选择MVP候选
a)从以A0开始并以A1结束的两个左侧空间邻近CU中的一个得到至多一个未被缩放的MVP候选;
b)如果在前一步骤中没有来自左侧的未被缩放的MVP候选可用,则从以A0开始并以A1结束的两个左侧空间邻近CU中的一个得到至多一个被缩放的MVP候选;
c)从以B0开始、然后是B1并以B2结束的三个上方空间邻近CU中的一个得到至多一个未被缩放的MVP候选;
d)如果A0和A1都不可用,或者如果它们以帧内模式被编码,则从以B0开始、然后是B1并以B2结束的三个上方空间邻近CU中的一个得到至多一个被缩放的MVP候选;
2)如果在先前步骤中找到两个MVP候选并且它们相同,则从MVP候选列表移除两个候选中的一个;
3)从时间同位CU选择MVP候选
a)如果在经过先前步骤之后的MVP候选列表未包括两个MVP候选,则从时间同位CU(例如,T0)得到至多一个MVP候选;
4)从HMVP表中选择MVP候选
a)如果在经过先前步骤之后的MVP候选列表未包括两个MVP候选,则从HMVP表得到至多两个基于历史的MVP;以及
5)如果在经过先前步骤之后的MVP候选列表未包括两个MVP候选,则将至多两个零值MVP添加到MVP候选列表。
由于在上面构建的AMVP模式MVP候选列表中仅存在两个候选,所以将相关联的语义元素(如二进制标志)编码到比特流中以指示候选列表内的两个MVP候选中的哪一个用于对当前CU进行解码。
在一些实施方式中,在跳过或合并模式下的针对当前CU的MVP候选列表可通过按照如以上步骤的顺序执行一组类似步骤来构建。应注意,称为“成对合并候选”的一种特殊类型的合并候选也被包括到用于跳过或合并模式的MVP候选列表中。通过对两个先前得到的合并模式运动矢量候选的MV求平均来生成成对合并候选。合并MVP候选列表的大小(例如,从1到6)在当前CU的条带头中用信号传送。对于合并模式中的每个CU,使用截断一元二值化(TU)来对最佳合并候选的索引进行编码。合并索引的第一二进制位用上下文被编码,并且对于其它二进制位,使用旁路编码。
如上文提到的,基于历史的MVP可在空间MVP和时间MVP之后添加到AMVP模式MVP候选列表或合并MVP候选列表。将先前帧间编码CU的运动信息存储在HMVP表中并且用作针对当前CU的MVP候选。在编码/解码过程期间维持HMVP表。每当存在非子块帧间编码CU时,(如果HMVP表已满并且表中不存在相关联的运动矢量信息的相同副本)将相关联的运动矢量信息添加到HMVP表的最后条目作为新候选,同时从HMVP表中移除存储在HMVP表的第一条目中的运动矢量信息。可选地,在将相关联的运动矢量信息添加到HMVP表的最后条目之前,从表中移除相关联的运动矢量信息的相同副本。
如上文指出的,帧内块复制(IBC)可显著提高屏幕内容材料的编码效率。由于IBC模式被实现为块级别的编码模式,所以在视频编码器20处执行块匹配(BM)以找到针对每个CU的最佳块矢量。这里,块矢量用于指示从当前块到在当前图片内已重建的参考块的位移。IBC模式被视为除帧内预测模式或帧间预测模式之外的第三预测模式。
在CU级别,IBC模式可作为如下IBC AMVP模式或IBC跳过/合并模式被用信号传送:
-IBC AMVP模式:CU的实际块矢量与从CU的块矢量候选中选择的CU的块矢量预测值之间的块矢量差(BVD)以与上文描述的在AMVP模式下对运动矢量差进行编码的相同方式被编码。块矢量预测方法使用两个块矢量候选作为预测值,一个来自左侧邻近块并且另一个来自上方邻近块(如果是IBC编码)。当任一邻近块不可用时,默认块矢量将被用作块矢量预测值。用信号传送二进制标志以指示块矢量预测值索引。IBC AMVP候选列表由空间候选和HMVP候选组成。
-IBC跳过/合并模式:合并候选索引用于指示来自邻近IBC编码块的合并候选列表(被称为“合并列表”或“候选列表”)中的块矢量候选中的哪一个被用于预测针对当前块的块矢量。IBC合并候选列表由空间候选、HMVP候选和成对候选组成。
图6A至图6D是示出根据本公开的一些实施方式的用于导出当前块的时间运动矢量预测值(TMVP)或子块的子块时间运动矢量预测值(SbTMVP)的步骤的框图。
在一些实施例中,仅将一个时间运动矢量预测值(TMVP)候选添加到合并候选列表,如关于图5所描述的。在图片的序列参数集(SPS)中用信号传送第一标志(sps_temporal_mvp_enabled_flag)并且在条带头中用信号传送第二标志(slice_temporal_mvp_enabled_flag)以指示此TMVP候选是被启用还是停用。具体来说,在导出时间合并候选时,从同位图片的MV导出经缩放的运动矢量,该同位图片是参考图片列表中先前编解码的图片。在导出时间运动候选时,首先将条带头中的显式标志(co-located_from_l0_flag)发送到解码器以指示同位图片是选自第一参考帧列表(列表0)还是第二参考帧列表(列表1)。进一步发送同位参考索引(co-located_ref_idx)以指示所使用的列表中的哪个图片被选为用于导出时间运动候选的同位图片。时间运动候选的列表0(也称为L0)和列表1(也称为L1)MV根据以下伪代码基于针对同位图片的同位块中的不同列表的MV的预定义顺序被独立地导出:
Figure BDA0003470975200000221
表1:用于从用于TMVP的同位块导出时间MV的伪代码
如图6A中的虚线所示,获得用于时间合并候选的经缩放的运动矢量602,其中经缩放的运动矢量602是使用POC距离tb 604和POC距离td 606从选择的同位块的运动矢量被缩放的,其中tb被定义为当前图片的参考图片(例如,当前参考608)与当前图片(例如,当前图片610)之间的POC差并且td被定义为同位图片的参考图片(例如,同位参考614)与同位图片(同位图片612)之间的POC差。时间合并候选的参考图片索引被设置为等于零。在HEVC规范中描述了缩放过程的实际实现。对于B条带,两个运动矢量(一个用于参考图片列表0,另一个用于参考图片列表1)被获得并组合以形成双向预测合并候选。
如图6B中所描绘的,在属于参考帧的同位块(例如,同位块620)中,在候选C0与C1之间选择时间候选的位置。如果位置C0处的块不可用、位置C0处的块被帧内编解码或者位置C0处的块在当前CTU外部,则使用位置C1。否则,在导出时间合并候选时使用位置C0
一些编解码标准(例如,VVC测试模型1)支持基于子块的时间运动矢量预测(SbTMVP)方法。类似于HEVC中的时间运动矢量预测(TMVP),SbTMVP使用同位图片中的运动场来改进用于当前图片中的CU的运动矢量预测和合并模式。由TMVP使用的同一同位图片被用于SbTMVP。SbTMVP与TMVP的不同之处在于以下两个主要方面:
1、TMVP在CU级预测运动,而SbTMVP在子CU级预测运动;
2、当TMVP从同位图片中的同位块(同位块是相对于当前CU的右下方块或中心块)选择时间运动矢量时,SbTMVP将运动移位应用于选自同位图片的时间运动信息,其中运动移位是从来自当前CU的空间邻近块之一的运动矢量获得的。
图6C至图6D中示出了SbTMVP过程。SbTMVP(图6D的SbTMVP 632)以两个步骤来预测当前CU(图6D的当前CU 636)内的子CU(例如,子CU 634)的运动矢量。在第一步骤中,检查图6C中的空间邻近者A1(例如,空间邻近者638)。如果A1具有使用同位图片(例如,图6A的同位图片612)作为其参考图片的运动矢量,则将此运动矢量选为待应用的运动移位(例如,图6D的运动移位630)。如果没有识别到这样的运动矢量,则将运动移位设置为零值矢量(0,0)。块A1的列表0MV和列表1MV中的第一可用运动矢量被设置为运动移位。以此方式,在SbTMVP中,与TMVP相比,可更准确地识别对应块,其中对应块(有时被称作同位块)始终处于相对于当前CU的右下方或中心位置。用于确定运动移位的伪代码如下。
Figure BDA0003470975200000241
VVC中用于确定SbTMVP的运动移位的伪代码
上表中使用的变量和函数如下所示。
ColFromL0Flag:用于指示同位图片是否来自列表0参考图片列表的语义
LDC:用于指示所有参考图片是否具有比当前图片更小的POC值
CurrentSliceType:当前条带(图片)的类型
count:已导出的合并候选的可用数量
interDirA1:第n合并候选的interDir(1:L0、2:L1或3:Bi)
refIdxA1[0]:第N合并候选的L0运动信息(例如MV、ref.index)
refIdxA1[1]:第N合并候选的L1运动信息(例如,MV、ref.index)
getRefPic(M,I):用于从参考图片列表M获得具有等于I的参考索引的参考图片的函数。
在第二步骤中,应用在步骤1中识别的运动移位(即,将该运动移位添加到当前块的坐标)以从同位图片获得子CU级运动信息(运动矢量和参考索引),如图6D所示。图6D中的示例假设运动移位被设置为块A1的运动。在实际实施方式中,运动移位可被设置为块A1、A2、B1或B2的运动中的任何一个。
首先,选择代表性子CU,并且将该代表性子CU的对应块的运动信息用作默认运动信息。在SbTMVP的现有方案中,选择位于当前CU的中心位置的右下方的子CU作为代表性子CU。当无法从代表性子CU的对应块导出有效运动信息作为默认运动信息时,SbTMVP候选被视为不可用。当默认运动信息可用时,进行到下一步骤以导出用于当前CU内的每个子CU的运动信息。每当没有运动信息可用于任何子CU的对应块时,默认运动信息将被用作那个子CU的导出的时间运动。
然后,对于每个子CU,同位图片中的子CU的对应块(覆盖中心样点的最小运动网格)的运动信息被用于导出子CU的运动信息。在识别同位子CU的运动信息之后,按照与HEVC的TMVP过程类似的方式将该运动信息转换为当前子CU的运动矢量和参考索引,其中应用时间运动缩放以将时间运动矢量的参考图片与当前CU的参考图片对齐。
应注意,在当前设计中,仅同位图片中的同位CTU内的运动场加上同位CTU右侧的一列可被用于对每个CU的SbTMVP和TMVP导出。如图7中所示,仅同位CTU内的运动信息加上同位CTU右侧的一列运动信息(CTU 2'在此示例中是当前CU的同位CTU)可被用于SbTMVP和TMVP的时间mv导出。在下文中,为便于说明,我们将此同位CTU加上一列称为用于SbTMVP/TMVP推导的“有效区域”。在此上下文下,每当子CU的同位图片中的对应N×N块位于有效区域外部时,对应N×N块用位于同位CTU内的可替代N×N块来替换。可替代N×N块的位置是通过使用以下等式将对应N×N块的原始位置裁剪到位于有效区域内而导出的。在以下等式(针对每个子CU的位置裁剪过程)中,CurPicWidthInSamplesY和CurPicHeightInSamplesY是编解码图片的宽度和高度,CTUWidthInSamplesX及CTUWidthInSamplesY是CTU的宽度和高度,xCtb和yCtb是同位CTU的左上方样点的水平位置和垂直位置。xColCtrCb和yColCtrCb是子CU的代表性样点的水平位置和垂直位置,MotionShiftX和MotionShiftY分别是运动移位的x分量和y分量。函数Clip3(x,y,z)和Min(x,y)定义如下。
Figure BDA0003470975200000261
同位图片内的同位块的位置(xColCb,yColCb)被如下导出。
Figure BDA0003470975200000262
在VVC中,组合的基于子块的合并列表被用于用信号传送基于子块的合并模式,其中,组合的基于子块的合并列表包括SbTMVP候选和仿射合并候选两者。通过序列参数集(SPS)标志启用/停用SbTMVP模式。如果启用SbTMVP模式,则添加SbTMVP预测值作为基于子块的合并候选的列表的第一条目,随后是仿射合并候选。基于子块的合并列表的大小在SPS中用信号传送,并且基于子块的合并列表的最大允许大小在VVC中是5。
用于SbTMVP中的子CU尺寸被固定为8×8,并且如针对仿射合并模式所做,SbTMVP模式仅适用于宽度和高度两者均大于或等于8的CU。此外,在当前VVC中,对于由TMVP和SbTMVP使用的时间运动场存储器,与HEVC中的16×16粒度相比,运动场压缩以8×8粒度被执行。
在一些实施例中,运动移位始终是从邻近块的列表0MV导出;如果列表0MV不可用,则使用邻近块的列表1MV导出SbTMVP的运动移位。伪代码描述如下:
Figure BDA0003470975200000271
用于确定SbTMVP的运动移位的伪代码
在一些实施例中,运动移位始终从邻近块的列表1MV导出;如果列表1MV不可用,则使用邻近块的列表0MV导出SbTMVP的运动移位。伪代码描述如下:
Figure BDA0003470975200000281
用于确定SbTMVP的运动移位的伪代码
在一些实施例中,每当存在位于有效区域外部的子CU的任何对应块时,将零矢量用作运动移位矢量以导出SbTMVP。通过这样做,保证当前CU的所有子CU的对应块位于有效区域内。因此,对于每个子CU不需要位置裁剪过程。存在许多方法来确定当前CU中是否存在位于有效区域外部的子CU的任何对应块。在一个示例中,检查左上方N×N子CU的对应块和右下方N×N子CU的对应块以查看两个对应块是否在有效区域内。如果任一个位于有效区域之外,则将零矢量用作运动移位矢量;否则(两个对应块都位于有效区域内),将导出的运动移位用于SbTMVP。
在一些实施例中,每当存在位于有效区域外部的子CU的任何对应块时,SbTMVP被视为不可用于当前CU。
在一些实施例中,每当存在位于有效区域外部的子CU的任何对应块时,修改运动移位以保证所有子CU的对应块位于有效区域内。因此,对于每个子CU不需要位置裁剪过程。
在一些实施例中,零矢量始终被用于SbTMVP导出的运动移位。
在一些实施例中,提出使用从代表性子CU导出的默认MV作为具有位于有效区域外部的对应块的子CU的MV。
图7示出根据本公开的一些实施方式的用于确定用于导出当前图片(例如,当前图片704)中的编码块(例如,当前CU 702)的TMVP和SbTMVP的有效区域的框图。有效区域是同位图片(例如,同位图片704')中的区域,在该区域中正在搜索当前CU(例如,当前CU 702)的对应CU(例如,对应CU 702')以用于TMVP或SbTMVP。在一些实施方式中,有效区域由CTU(例如,CTU 2')加上一列(例如,一列TMV缓冲区706)确定以用于导出TMVP和SbTMVP。有效区域约束是用于减少存储器使用的设计。通过将有效区域约束为同位CTU加上一列,仅需要将有效区域内的运动信息存储在内部存储器(例如,高速缓冲存储器)中以减少从外部存储器访问时间运动数据的平均成本(时间或能量)。当前,VVC中的最大CTU尺寸是128×128(最大CTU尺寸可在VVC配置文件的后期确定),并且CTU尺寸可被设置为小于128×128(例如,64×64或32×32)。在一个示例中,当CTU尺寸被设置为64×64时,有效区域被约束为同位64×64块加上一列。由于用于最大CTU的时间MV缓冲区的设计已经存在,因此从编解码效率的角度来看,使用小于最大CTU尺寸的有效区域可能不明智。在一些实施例中,有效区域总是被固定为可允许的最大CTU尺寸加上一列,而无论使用什么尺寸的CTU。
在一些实施例中,有效区域被修改为仅是同位CTU。
根据实施例,当CTU尺寸等于最大CTU尺寸时,有效区域是同位CTU加上一列。当CTU尺寸小于最大CTU尺寸时,将有效区域修改为同位CTU加上同位CTU右侧的一列和同位CTU下方的一行。
图8A至图8B示出根据本公开的一些实施方式的示出视频编解码器实施导出子块时间运动矢量预测值的技术的示例性过程800的流程图。尽管过程800可以是解码过程或编码过程,但为方便起见,过程800将被描述为由视频解码器(例如,图3的视频解码器30)执行的解码过程。
作为第一步骤,解码器确定当前编码单元的同位图片(805)(例如,从比特流接收指示当前帧的同位图片是来自第一列表还是第二列表的第一语义元素;然后从比特流接收指示所选列表中的哪个帧被用作同位帧的第二语义元素)。例如,参照图6A,当前图片610中的当前CU 601对应于同位图片612中的同位CU 601'。
接下来,解码器定位当前编码单元的空间邻近块(810)。例如,参照图6D,当前编码单元(例如,当前CU 636)具有空间邻近者638(块A1)。在一些实施例中,空间邻近块是编码单元或子块。
在定位空间邻近块之后,解码器然后确定用于当前编码单元的运动移位矢量(815)。运动移位矢量指示当前图片(例如,图6D中的当前图片610)中的当前编码单元(例如,图6D中的当前CU 636)与同位图片(例如,图6D中的同位图片612)中的对应同位块(例如,图6D中的空间邻近块638'(块A1'))之间的空间位置的移位。
为了确定运动移位矢量,解码器顺序地检查包括在空间邻近块的列表0中的每个运动矢量(820)。根据确定列表0中有运动矢量使用同位图片作为该运动矢量的参考图片(825):解码器将列表0中的该运动矢量设置为运动移位矢量(830)(例如,运动移位矢量630),并且放弃检查空间邻近块的列表0中的后续运动矢量和列表1中的运动矢量(835)。因此,结束对运动矢量的搜索,并且列表0中的第一匹配运动矢量将被用作运动移位矢量。换句话说,解码器总是在检查空间邻近块的列表1之前首先检查空间邻近块的列表0中包括的运动矢量。
另一方面,根据确定列表0中没有使用同位图片作为参考图片的运动矢量(840),解码器顺序地检查包括在空间邻近块的列表1中的每个运动矢量(845)。也就是说,当且仅当列表0中的运动矢量的搜索返回否定结果时,解码器才检查空间邻近块的列表1的运动矢量。
在搜索空间邻近块的列表1中的运动矢量时,根据确定列表1中有运动矢量使用同位图片作为该运动矢量的参考图片(850):解码器将列表1中的该运动矢量设置为运动移位矢量(855),并且放弃检查列表1中的后续运动矢量(860)。也就是说,列表1中的第一匹配运动矢量将被用作运动移位矢量。根据确定列表1中没有运动矢量使用同位图片作为该运动矢量的参考图片(865),解码器将运动移位矢量设置为零值矢量(870)。因此,对应编码单元和当前编码单元相对于同位图片和当前图片处于相同的相对位置(例如,当前编码单元与对应编码单元之间没有运动移位)。
最后,解码器基于运动移位矢量从同位图片中的对应子块重建当前编码单元中的多个子块中的相应子块的基于子块的时间运动矢量(875)。例如,参照图6D,通过在缩放(例如,关于图6A和相关描述所描述的缩放过程)之后使用运动移位矢量630定位对应子块时间运动矢量631来构建子块时间运动矢量预测值632。在一些实施例中,子块包括来自列表0和列表1的一个或两个时间运动矢量。
在一些实施例中,基于运动移位矢量从同位图片中的对应子块重建当前编码单元中的多个子块中的相应子块的基于子块的时间运动矢量包括预测当前编码单元中的多个子块中的相应子块的基于子块的时间运动矢量,包括:基于运动移位矢量在处于同位图片中的预定义区域(例如,有效区域)内搜索与相应子块对应的同位子块;根据确定在同位图片中的预定义区域内存在同位子块:识别同位子块的一个或两个运动矢量;并且将相应子块的基于子块的时间运动矢量设置为:基于当前图片与当前图片的参考图片之间的第一图片顺序计数(POC)距离(例如,图6A中的POC距离tb)和同位图片与同位图片的参考图片之间的第二POC距离(例如,图6A中的POD距离td)缩放的一个或两个运动矢量。在一些实施例中,根据确定同位图片中的预定义区域内不存在同位子块,将对应子块的基于子块的时间运动矢量设置为零值运动矢量。在一些其他实施例中,根据确定在同位图片中的预定义区域内不存在同位子块,将同位图片中的预定义区域内的可替代子块设置为对应子块。例如,可替代子块是预定义区域内最接近同位子块的边界子块。
在一些实施例中,预定义区域具有等于最大可允许CTU尺寸加上一列的尺寸,而不管包括同位编码单元的CTU的尺寸如何。
在一些实施例中,解码器在检查空间邻近块的列表0之前首先检查空间邻近块的列表1中的运动矢量。
在一个或更多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合实施。如果以软件实施,则功能可作为一个或更多个指令或代码存储在计算机可读介质上或通过计算机可读介质传输,并且由基于硬件的处理单元执行。计算机可读介质可包括计算机可读存储介质,其对应于诸如数据存储介质的有形介质,或对应于包括促进将计算机程序从一处传送到另一处(例如,根据通信协议)的任何介质的通信介质。以此方式,计算机可读介质通常可对应于(1)非暂态的有形计算机可读存储介质、或(2)通信介质,诸如信号或载波。数据存储介质可以是可由一个或更多个计算机或一个或更多个处理器访问以取回用于实现本申请中描述的实现方式的指令、代码和/或数据结构的任何可用介质。计算机程序产品可包括计算机可读介质。
在本文的实施方式的描述中使用的术语仅用于描述特定实施方式的目的,并不旨在限制权利要求的范围。如在实施方式的描述和所附权利要求中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,如本文使用的术语“和/或”是指并且涵盖相关联的所列项目中的一个或更多个的任何和所有可能的组合。将进一步理解,术语“包括”和/或“包括…的”当在本说明书中使用时,指定存在所陈述的特征、元件和/或组件,但不排除存在或添加一个或更多个其它特征、元件、组件和/或其群组。
还将被理解,尽管本文可使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件与另一个元件区分开。例如,在不脱离实施方式的范围的情况下,第一电极可被称为第二电极,并且类似地,第二电极可被称为第一电极。第一电极和第二电极都是电极,但它们不是相同的电极。
本申请的描述已经出于说明和描述的目的被呈现,并且不旨在穷举或限于所公开的形式的发明。受益于在前面的描述和相关联的附图中呈现的教导,许多修改、变化和替代实施方式对于本领域普通技术人员将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理、实际应用,并且使本领域的其它技术人员能够理解本发明的各种实施方式,并且最好地利用基本原理和具有适合于预期的特定用途的各种修改的各种实施方式。因此,将理解,权利要求的范围不限于所公开的实施方式的具体示例,并且修改和其它实施方式旨在被包括在所附权利要求的范围内。

Claims (10)

1.一种用于视频编码的方法,所述方法包括:
将视频图片分割为多个编码单元;
确定所述视频图片的同位图片;
根据当前编码单元的空间邻近块的运动矢量来确定所述当前编码单元的运动移位矢量,其中所述运动移位矢量指示所述视频图片中的所述当前编码单元中的多个子块的子块与所述同位图片中的对应子块之间的空间位置的移位;
基于所述运动移位矢量从所述同位图片中的对应子块重建所述当前编码单元中的所述多个子块的所述子块的基于子块的时间运动矢量;
其中,所述根据当前编码单元的空间邻近块的运动矢量来确定所述当前编码单元的运动移位矢量,包括:
响应于确定所述空间邻近块的运动矢量与第一参考图片列表相关,并且所述空间邻近块的运动矢量使用所述同位图片作为其参考图片,将与所述第一参考图片列表相关的运动矢量确定为所述运动移位矢量;以及
响应于确定所述空间邻近块的与所述第一参考图片列表相关的运动矢量不使用所述同位图片作为其参考图片:
根据确定所述空间邻近块的运动矢量与第二参考图片列表相关,并且所述空间邻近块的运动矢量使用所述同位图片作为其参考图片,将与所述第二参考图片列表相关的运动矢量确定为所述运动移位矢量;或者
根据确定所述空间邻近块的与所述第二参考图片列表相关的运动矢量不使用所述同位图片作为其参考图片,确定所述运动移位矢量为零值矢量。
2.根据权利要求1所述的方法,其中基于所述运动移位矢量从所述同位图片中的对应子块重建所述当前编码单元中的多个子块的所述子块的基于子块的时间运动矢量,包括:确定所述同位子块是否在所述同位图片中的预定义区域内。
3.根据权利要求2所述的方法,其中基于所述运动移位矢量从所述同位图片中的对应子块重建所述当前编码单元中的多个子块的所述子块的基于子块的时间运动矢量,还包括:
根据确定所述同位子块不存在于所述同位图片中的所述预定义区域内:
确定所述子块的所述基于子块的时间运动矢量为零值运动矢量。
4.根据权利要求2所述的方法,其中基于所述运动移位矢量从所述同位图片中的对应子块重建所述当前编码单元中的多个子块的所述子块的基于子块的时间运动矢量,还包括:
根据确定所述同位子块不存在于所述同位图片中的所述预定义区域内:
将所述同位图片中的所述预定义区域内的可替代子块设置为所述对应子块,其中所述可替代子块是所述预定义区域内最接近所述同位子块的边界子块。
5.根据权利要求1所述的方法,其中所述当前编码单元的空间邻近块是编码单元或编码单元的子块。
6.根据权利要求2所述的方法,其中所述预定义区域具有等于最大可允许CTU尺寸加上一列的尺寸,而所述预定义区域的尺寸与包括所述同位子块的CTU的尺寸无关。
7.根据权利要求6所述的方法,其中所述最大可允许CTU尺寸是128×128。
8.一种计算设备,包括:
一个或更多个处理器;
存储器,耦接到所述一个或更多个处理器;以及
多个程序,存储在所述存储器中,所述多个程序在由所述一个或更多个处理器执行时使所述计算设备执行权利要求1至7中任一项所述的用于视频编码的方法。
9.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储用于由具有一个或更多个处理器的计算设备执行的多个程序,其中所述多个程序在由所述一个或更多个处理器执行时使所述计算设备执行权利要求1至7中任一项所述的用于视频编码的方法。
10.一种解码器可读存储介质,其特征在于,存储通过如权利要求1至7中任一项权利要求所述的用于视频编码的方法而产生的数据流。
CN202210042724.7A 2019-06-07 2020-06-05 用于视频编码的方法和计算设备 Active CN114363611B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962858916P 2019-06-07 2019-06-07
US62/858,916 2019-06-07
PCT/US2020/036339 WO2020247761A1 (en) 2019-06-07 2020-06-05 Sub-block temporal motion vector prediction for video coding
CN202080036321.0A CN114026852A (zh) 2019-06-07 2020-06-05 用于视频编解码的子块时间运动矢量预测

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202080036321.0A Division CN114026852A (zh) 2019-06-07 2020-06-05 用于视频编解码的子块时间运动矢量预测

Publications (2)

Publication Number Publication Date
CN114363611A CN114363611A (zh) 2022-04-15
CN114363611B true CN114363611B (zh) 2023-03-24

Family

ID=73652328

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202310119129.3A Active CN116156199B (zh) 2019-06-07 2020-06-05 用于视频解码、视频编码的方法、计算设备和存储介质
CN202080036321.0A Pending CN114026852A (zh) 2019-06-07 2020-06-05 用于视频编解码的子块时间运动矢量预测
CN202210042724.7A Active CN114363611B (zh) 2019-06-07 2020-06-05 用于视频编码的方法和计算设备

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN202310119129.3A Active CN116156199B (zh) 2019-06-07 2020-06-05 用于视频解码、视频编码的方法、计算设备和存储介质
CN202080036321.0A Pending CN114026852A (zh) 2019-06-07 2020-06-05 用于视频编解码的子块时间运动矢量预测

Country Status (7)

Country Link
US (1) US20220094942A1 (zh)
EP (1) EP3967039A4 (zh)
JP (2) JP7200404B2 (zh)
KR (4) KR20230098704A (zh)
CN (3) CN116156199B (zh)
MX (1) MX2021015068A (zh)
WO (1) WO2020247761A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024011076A1 (en) * 2022-07-06 2024-01-11 Bytedance Inc. Method, apparatus, and medium for video processing
US20240031577A1 (en) * 2022-07-21 2024-01-25 Tencent America LLC MOTION VECTOR PREDICTION FUSION FOR SUBBLOCK-BASED TEMPORAL MOTION VECTOR PREDICTION (SbTMVP) AND TEMPORAL MOTION VECTOR PREDICTION (TMVP)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103748880A (zh) * 2011-08-17 2014-04-23 佳能株式会社 图像序列的编码方法和装置及图像序列的解码方法和装置
CN109417630A (zh) * 2016-06-30 2019-03-01 交互数字Vc控股公司 利用自动运动信息细化的视频译码的方法和装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1117480C (zh) * 1997-12-01 2003-08-06 三星电子株式会社 运动向量预测方法
US8976873B2 (en) * 2010-11-24 2015-03-10 Stmicroelectronics S.R.L. Apparatus and method for performing error concealment of inter-coded video frames
US9674523B2 (en) * 2012-11-14 2017-06-06 Advanced Micro Devices, Inc. Methods and apparatus for transcoding digital video
US9918098B2 (en) * 2014-01-23 2018-03-13 Nvidia Corporation Memory management of motion vectors in high efficiency video coding motion vector prediction
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
CN107071481A (zh) * 2015-12-14 2017-08-18 联发科技股份有限公司 一种视频编码解码方法及装置
US10124730B2 (en) * 2016-03-17 2018-11-13 Ford Global Technologies, Llc Vehicle lane boundary position
WO2017195608A1 (ja) 2016-05-13 2017-11-16 シャープ株式会社 動画像復号装置
US20180199057A1 (en) * 2017-01-12 2018-07-12 Mediatek Inc. Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding
US10298951B2 (en) * 2017-04-06 2019-05-21 Mediatek Inc. Method and apparatus of motion vector prediction
US10970564B2 (en) * 2017-09-30 2021-04-06 Tusimple, Inc. System and method for instance-level lane detection for autonomous vehicle control
US20210136416A1 (en) * 2017-11-28 2021-05-06 Electronics And Telecommunications Research Institute Method and apparatus for processing images using image transform neural network and image inverse-transforming neural network
CN109472308A (zh) * 2018-11-08 2019-03-15 华南理工大学 一种基于人工智能的免标记仪器设备特征锚点检测方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103748880A (zh) * 2011-08-17 2014-04-23 佳能株式会社 图像序列的编码方法和装置及图像序列的解码方法和装置
CN109417630A (zh) * 2016-06-30 2019-03-01 交互数字Vc控股公司 利用自动运动信息细化的视频译码的方法和装置

Also Published As

Publication number Publication date
KR20220005550A (ko) 2022-01-13
JP7200404B2 (ja) 2023-01-06
KR102548345B1 (ko) 2023-06-28
CN116156199B (zh) 2023-10-03
WO2020247761A1 (en) 2020-12-10
JP2022528581A (ja) 2022-06-14
KR20230098705A (ko) 2023-07-04
EP3967039A4 (en) 2022-07-06
CN114363611A (zh) 2022-04-15
US20220094942A1 (en) 2022-03-24
EP3967039A1 (en) 2022-03-16
CN114026852A (zh) 2022-02-08
MX2021015068A (es) 2022-01-18
JP2023040048A (ja) 2023-03-22
KR20230098704A (ko) 2023-07-04
KR102449889B1 (ko) 2022-09-30
KR20220136502A (ko) 2022-10-07
CN116156199A (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
CN113099243B (zh) 使用基于历史的运动向量预测进行视频解码的方法和装置
CN116847096B (zh) 视频编码方法、计算装置、存储介质和计算机程序产品
CN113170178A (zh) 对合并候选列表的构建的修改
JP2023040048A (ja) ビデオ符号化復号化のためのサブブロックの時間的動きベクトル予測
US11936901B2 (en) Methods and apparatus of video coding using subblock-based temporal motion vector prediction

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