首页> 中国专利> 使用基于子块的时间运动向量预测进行视频编码的方法和装置

使用基于子块的时间运动向量预测进行视频编码的方法和装置

摘要

在计算设备处执行基于子块的时间运动向量预测的方法。该计算设备获取视频比特流,该视频比特流包括与多个编码图片相关联的数据。在对视频比特流中的当前图片进行解码时,计算设备根据在视频比特流中用信号传输的语义元素选择一个参考图片作为当前图片的并置图片,并且根据固定顺序基于当前编码单元(CU)的空间相邻块的运动信息确定并置图片与当前图片之间的运动移位。接下来,计算设备将当前CU分割成多个子CU,基于该运动移位和并置图片中与当前图片的相应子块相对应的块的运动信息获得每个子CU的时间运动向量预测值,并且根据时间运动向量预测值对当前CU进行解码。

著录项

  • 公开/公告号CN112789859A

    专利类型发明专利

  • 公开/公告日2021-05-11

    原文格式PDF

  • 申请/专利权人 北京达佳互联信息技术有限公司;

    申请/专利号CN201980056293.6

  • 发明设计人 陈漪纹;王祥林;

    申请日2019-08-29

  • 分类号H04N19/52(20060101);H04N19/119(20060101);H04N19/176(20060101);H04N19/105(20060101);

  • 代理机构11602 北京市汉坤律师事务所;

  • 代理人魏小薇;吴丽丽

  • 地址 100085 北京市海淀区上地西路6号1幢1层101D1-7

  • 入库时间 2023-06-19 10:55:46

说明书

技术领域

本申请总体上涉及视频数据编码和解码,并且具体地,涉及使用基于子块的时间运动向量预测进行视频编码的方法和系统。

背景技术

如数字电视、膝上型计算机或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏机、智能电话、视频电话会议设备、视频流式传输设备等各种电子设备都支持数字视频。电子设备通过实施如由MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分、高级视频编码(AVC)、高效视频编码(HEVC)和通用视频编码(VVC)标准定义的视频压缩/解压缩标准来传输、接收、编码、解码和/或存储数字视频数据。视频压缩典型地包括执行空间(帧内)预测和/或时间(帧间)预测以减少或消除视频数据中固有的冗余。对于基于块的视频编码,将视频帧分区为一个或多个条带(slice),每个条带具有多个视频块,所述视频块也可以被称为编码树单元(CTU)。每个CTU可以包含一个编码单元(CU)或递归地分割成较小的CU,直到达到预设的最小CU大小。每个CU(也称为叶子CU)包含一个或多个变换单元(TU),并且每个CU还包含一个或多个预测单元(PU)。可以以帧内、帧间或IBC模式对每个CU进行编码。使用相对于同一视频帧内的相邻块中的参考样点的空间预测,对视频帧的帧内编码(I)条带中的视频块进行编码。视频帧的帧间编码(P或B)条带中的视频块可以使用相对于同一视频帧内的相邻块中的参考样点的空间预测或使用相对于其他先前和/或未来参考视频帧中的参考样点的时间预测。

基于先前已被编码的参考块(例如,相邻块)的空间或时间预测产生针对待编码的当前视频块的预测块。查找参考块的过程可以通过块匹配算法来完成。表示待编码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。根据指向形成预测块的参考帧中的参考块的运动向量、以及残差块来对帧间编码块进行编码。确定运动向量的过程典型地被称为运动估计。根据帧内预测模式和残差块对帧内编码块进行编码。为了进一步压缩,将残差块从像素域变换到变换域,例如频域,从而产生残差变换系数,然后可以对所述残差变换系数进行量化。可以扫描最初布置为二维阵列的经量化的变换系数,以产生变换系数的一维向量,并且然后将其熵编码到视频比特流中,以实现甚至更多的压缩。

然后,将编码视频比特流保存在计算机可读存储介质(例如,闪速存储器)中,以被具有数字视频能力的另一个电子设备访问,或者直接以有线或无线方式传输到电子设备。然后,电子设备通过例如解析编码视频比特流以从比特流获得语义元素并且至少部分地基于从比特流获得的语义元素将数字视频数据从编码视频比特流重构为其原始格式来执行视频解压缩(其是与上文描述的视频压缩相反的过程),并且在电子设备的显示器上渲染重构的数字视频数据。

随着数字视频质量从高清到4K×2K或甚至8K×4K,待编码/解码的视频数据量呈指数增长。如何在保持解码视频数据的图像质量的同时更高效地对视频数据进行编码/解码,一直是挑战。

发明内容

本申请描述了与视频数据编码和解码有关的实施方式,并且更具体地,描述了与使用基于子块的时间运动向量预测进行视频编码和解码的系统和方法有关的实施方式。

根据本申请的第一方面,一种基于子块的时间运动向量预测的方法在计算设备处执行,该计算设备具有一个或多个处理器和存储有待由一个或多个处理器执行的多个程序的存储器。计算设备获取包括与多个编码图片相关联的数据的视频比特流。在对视频比特流中的当前图片进行解码时,计算设备根据在视频比特流中用信号传输的语义元素选择一个参考图片作为当前图片的并置图片,并且根据固定顺序基于当前编码单元(CU)的空间相邻块的运动信息确定并置图片与当前图片之间的运动移位。接下来,计算设备将当前CU分割成多个子CU,每个子CU对应当前图片的相应子块。然后,计算设备基于以下各项获得当前CU的每个子CU的时间运动向量预测值:(i)并置图片与当前图片之间的运动移位;以及(ii)并置图片中与当前图片的相应子块相对应的块的运动信息;并且根据当前CU的多个子CU的时间运动向量预测值对当前CU进行解码。

根据本申请的第二方面,一种计算设备包括一个或多个处理器、存储器以及存储在存储器中的多个程序。程序当由一个或多个处理器执行时,使计算设备执行如上文描述的前述操作。

根据本申请的第三方面,一种非暂态计算机可读存储介质存储用于由具有一个或多个处理器的计算设备执行的多个程序。程序当由一个或多个处理器执行时,使计算设备执行如上文描述的前述操作。

附图说明

被包括在内以提供对实施方式的进一步理解并且并入本文并构成说明书的一部分的附图图示了所描述的实施方式,并且与说明书一起用于解释基本原理。相似的附图标记指代对应的部分。

图1是图示了根据本公开的一些实施方式的示例性视频编码和解码系统的框图。

图2是图示了根据本公开的一些实施方式的示例性视频编码器的框图。

图3是图示了根据本公开的一些实施方式的示例性视频解码器的框图。

图4A至图4D是图示了根据本公开的一些实施方式的如何将帧递归地四叉树分区成具有不同大小的多个视频块的框图。

图5A是图示了根据本公开的一些实施方式的待编码的当前CU的在空间上相邻且在时间上并置的块位置的框图。

图5B是图示了根据本公开的一些实施方式的示例性过程的流程图,通过所述示例性过程识别运动向量候选项列表。

图5C是图示了根据本公开的一些实施方式的如何在当前图片与并置图片之间执行基于子块的时间运动向量预测的框图。

图6是图示了根据本公开的一些实施方式的示例性过程的流程图,视频解码器通过所述示例性过程实施基于并置图片的运动信息为当前图片构造基于子块的时间运动向量预测的技术。

具体实施方式

现在将详细参考具体实施方式,附图中图示了这些实施方式的示例。在以下详细描述中,阐述了许多非限制性的具体细节,以便帮助理解本文提出的主题。但是对于本领域的普通技术人员将清楚明白的是,在不脱离权利要求的范围的情况下,可以使用各种替代性方案,并且可以在没有这些具体细节的情况下实践主题。例如,对于本领域的普通技术人员将清楚明白的是,本文提出的主题可以在具有数字视频能力的许多类型的电子设备上实施。

图1是图示了根据本公开的一些实施方式的用于并行地对视频块进行编码和解码的示例性系统10的框图。如图1所示,系统10包括源设备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,所述显示设备可以是集成显示设备和被配置为与目的地设备14通信的外部显示设备。显示设备34向用户显示解码视频数据,并且可以包括各种显示设备中的任何一种,如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一种类型的显示设备。

视频编码器20和视频解码器30可以根据专有或行业标准(如VVC、HEVC、MPEG-4第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的位置与从第一参考帧列表(例如,列表0)或第二参考帧列表(例如,列表1)中选择的参考帧的预测块的位置进行比较来计算帧间预测编码帧中的视频块的PU的运动向量,所述列表中的每一个标识存储在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都可以通过从被编码的当前视频块的像素值中减去预测块的像素值来形成残差视频块,从而形成像素差值。形成残差视频块的像素差值可以包括亮度分量差和色度分量差。

如上文描述的,帧内预测处理单元46可以对当前视频块进行帧内预测,作为由运动估计单元42和运动补偿单元44执行的帧间预测、或者由帧内BC单元48执行的帧内块复制预测的替代方案。具体地,帧内预测处理单元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或由所述视频解码器取得。熵编码单元56还可以对被编码的当前视频帧的运动向量和其他语义元素进行熵编码。

逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换以在像素域中重构残差视频块,以生成用于预测其他视频块的参考块。如上所述,运动补偿单元44可以从DPB64中存储的帧的一个或多个参考块中生成经运动补偿的预测块。运动补偿单元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的其他部件解码的视频数据,如编码视频比特流。例如,可以经由对视频数据进行有线或无线网络传送或者通过访问物理数据存储介质(例如,闪存驱动器或硬盘)从存储设备32、本地视频源(如相机)获得存储在视频数据存储器79中的视频数据。视频数据存储器79可以包括存储来自编码视频比特流的编码视频数据的编码图片缓冲器(CPB)。视频解码器30的解码图片缓冲器(DPB)92存储参考视频数据,以用于由视频解码器30对视频数据进行解码(例如,在帧内预测编码模式或帧间预测编码模式下)。视频数据存储器79和DPB 92可以由多种存储器设备中的任一种形成,如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其他类型的存储器设备。出于说明性目的,视频数据存储器79和DPB 92在图3中被描绘为视频解码器30的两个不同的部件。但是对于本领域技术人员将清楚明白的是,视频数据存储器79和DPB92可以由同一存储器设备或单独的存储器设备提供。在一些示例中,视频数据存储器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存储用于对接下来的视频块进行后续运动补偿的参考帧。DPB 92或与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×16CU 430和440按块大小各自进一步划分为四个8×8的CU。图4D描绘了图示了如图4C中所描绘的CTU 400的分区过程的最终结果的四叉树数据结构,四叉树的每个叶子节点对应于相应大小在32×32至8×8范围内的一个CU。类似于图4B描绘的CTU,每个CU可以包括亮度样点的编码块(CB)和相同大小的帧的色度样点的两个对应的编码块,以及用于对编码块的样点进行编码的语义元素。在单色图片或具有三个单独的色彩平面的图片中,CU可以包括单个编码块和用于对编码块的样点进行编码的语义结构。

在一些实施方式中,视频编码器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的原始亮度编码块中的对应样点之间的差。类似地,视频编码器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可以重构该帧。

如上所述,视频编码主要使用两种模式(即,帧内预测(intra-frame prediction(或(intra-prediction))和帧间预测(inter-frame prediction或(inter-prediction)))来实现视频压缩。应注意的是,IBC可以被认为是帧内预测或第三模式。在这两种模式之间,由于使用用于从参考视频块中预测当前视频块的运动向量,因此帧间预测比帧内预测对编码效率的贡献更大。

但是随着不断改进的视频数据捕获技术和用于保留视频数据中的细节的更精细的视频块大小,表示当前帧的运动向量所需的数据量也大幅度增加。克服这个挑战的一种方式是受益于以下事实:不仅空间域和时间域中的一组相邻CU具有用于预测目的的类似视频数据,而且这些相邻CU之间的运动向量也类似。因此,有可能通过探索空间上相邻的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))、跳过和合并。在每种模式下,可以根据下文描述的算法将一个或多个运动向量候选项添加到运动向量候选列表中。最终,候选列表中的运动向量候选项之一用作帧间预测CU的待由视频编码器20编码到视频比特流中或由视频解码器30从视频比特流中解码的最佳运动向量预测值。为了从候选列表中找到最佳运动向量预测值,引入了运动向量竞争(MVC)方案,以从运动向量的给定候选集(即,运动向量候选列表)中选择运动向量,所述运动向量的给定候选集包括空间和时间运动向量候选项。

在当前CU的运动向量的给定候选集内选择一个MVP候选项之后,视频编码器20可以为对应的MVP候选项生成一个或多个语义元素,并且将语义元素编码到视频比特流中,使得视频解码器30可以使用语义元素从视频比特流中取得MVP候选项。根据用于构造运动向量候选集的特定模式,不同模式(例如,AMVP、合并、跳过等)具有不同的语义元素集。对于AMVP模式,语义元素包括帧间预测指示符(例如,列表0、列表1或双向预测)、参考索引、运动向量候选索引、运动向量差和预测残差信号等。对于跳过模式和合并模式,仅合并索引被编码到比特流中,因为当前CU从由编码合并索引所引用的相邻CU继承了其他语义元素(包括帧间预测指示符、参考索引和运动向量)。在跳过编码CU的情况下,运动向量预测残差信号也被省略。

图5A是图示了根据本公开的一些实施方式的待编码/解码的当前CU的在空间上相邻和在时间上并置的块位置的框图。对于给定模式(例如,AMVP、合并或跳过),首先通过检查与空间上左侧(A0、A1)和上方(B0、B1、B2)相邻的块位置相关联的运动向量的可用性,以及与时间上并置的块位置相关联的运动向量的可用性来构造运动向量预测(MVP)候选列表。在构造MVP候选列表的过程期间,从候选列表中移除冗余的MVP候选项,并且在必要时添加零值运动向量以使候选列表具有固定的长度(应注意的是,不同的模式可以具有不同的固定长度)。在构造MVP候选列表之后,视频编码器20可以从候选列表中选择最佳运动向量预测值,并且将指示所选候选项的对应索引编码到视频比特流中。

将图5A用作示例,并且假设候选列表的固定长度为二,图5B是图示了根据本公开的一些实施方式的示例性过程的流程图,通过所述示例性过程识别运动向量候选项列表。特别地,如图5B所描绘的,可以通过在AMVP模式下执行以下步骤来构造当前CU的运动向量预测值(MVP)候选列表:

1)步骤505:从五个空间上相邻的CU中选择两个MVP候选项

a)从以A0开始且以A1结束的两个左侧空间相邻CU之一中推导多达一个非缩放的MVP候选项;

b)如果在先前的步骤中没有来自左侧的非缩放的MVP候选项可用,则从以A0开始且以A1结束的两个左侧空间相邻CU之一中推导多达一个缩放的MVP候选项;

c)从以B0开始、然后B1并且以B2结束的三个上方空间相邻CU之一中推导多达一个非缩放的MVP候选项;

d)如果A0和A1均不可用,或者如果A0和A1以帧内模式进行编码,则从以B0开始、然后B1并且以B2结束的三个上方空间相邻CU之一中推导多达一个缩放的MVP候选项;

2)步骤510:从两个时间上并置的CU中选择一个MVP候选项;

3)步骤515:从MVP候选列表中移除先前的步骤中发现的重复的MVP候选项;

4)步骤520:将多达两个零值MVP添加到MVP候选列表。

5)步骤525:从MVP候选列表中移除索引大于1的MVP候选项。

6)步骤530:最终确定当前CU的MVP候选列表中的两个MVP候选项。

由于在上文构造的AMVP模式MVP候选列表中仅存在两个候选项,因此将如二进制标志等相关联语义元素编码到比特流中以指示候选列表内的两个MVP候选项中的哪一个用于对当前CU进行解码。

在一些实施方式中,在子CU级执行选择用于对当前CU进行编码/解码的时间运动向量预测值的过程,以提高解码图片的准确性。该过程首先为包括当前CU的当前图片识别并置图片,并且然后确定时间向量(在本申请中也称为“运动移位”)。接下来,该过程将当前CU分割为多个子CU,并且根据预设算法从由时间向量标识的并置图片中的相应块推导每个子CU的运动信息,所述预设算法也称为“基于子块的时间运动向量预测”(SbTMVP)。

图5C是图示了根据本公开的一些实施方式的如何在当前图片与并置图片之间执行基于子块的时间运动向量预测的框图。在该示例中,当前CU 535-1是64×64码块,并且所述当前CU被划分为8×8个子CU,每个子CU是8×8码块。为了推导每个子CU的运动信息,SbTMVP过程划分为两个主要步骤:

·步骤一:使用当前图片535与并置图片540之间的所谓的“时间向量”识别并置图片540中的对应块540-1。

·步骤二:将当前CU 535-1分割为多个子CU,并且从并置图片540中的对应块获得包括每个子CU 535-3的运动向量和参考索引(其默认为零)的子CU的运动信息。

如上所述,假设在执行SbTMVP过程之前,并置图片540对于当前图片535是已知的。例如,并置图片通常是当前图片的一个参考图片,所述参考图片是从当前图片的两个参考图片列表(例如,列表0和列表1)之一中选择的。在一些实施方式中,对应块是处于并置图片中与当前图片中的当前CU相同的相对位置处的块。在一些实施方式中(例如,图5C),对应块不必是处于并置图片中与当前图片中的当前CU 535-1相同的相对位置处的块。相反,存在将当前图片中的当前CU 535-1的中心与并置图片540中的对应块540-1的中心关联的时间向量。

在一些实施方式中,SbTMVP过程被实施为在视频编码期间为当前CU构造上述运动向量候选列表的过程的一部分。换句话说,如果确定要使用SbTMVP来处理当前CU,则将与SbTMVP相对应的参数相应地添加到运动向量候选列表。在一些其他实施方式中,SbTMVP过程独立于在视频编码期间为当前CU构造上述运动向量候选列表的过程被实施。换句话说,与前述帧间预测模式一样,将SbTMVP视为单独的帧间预测模式。由于编码过程与解码过程之间的对称性质,本申请的其余部分使用对当前CU的解码来说明如何将SbTMVP过程用于预测当前CU的时间运动向量。

图6是图示了根据本公开的一些实施方式的示例性解码过程的流程图,视频解码器通过所述示例性解码过程实施基于并置图片的运动信息为当前图片构造基于子块的时间运动向量预测的技术。

首先,视频解码器30获取(610)包括与多个编码图片相关联的数据的编码视频比特流。如图4A和图4C中描绘的,每个图片包括多个编码树单元(CTU)行,并且每个CTU包括一个或多个编码单元(CU)。视频解码器30从视频比特流中提取不同的信息片段(如语义元素和像素值)以逐行重构图片。

在该示例中,假设视频解码器30正在解码图5C中描绘的当前图片535(630),或更具体地,当前图片535中的当前CU 535-1。如上所述,当前图片535具有多个参考图片,例如,列表0和/或列表。出于时间运动向量预测的目的,参考图片之一是如图5C所描绘的当前图片535的所谓的“并置图片”540。因此,视频解码器30首先根据在视频比特流中用信号传输的语义元素以预设顺序确定参考图片之一作为当前图片的并置图片(630-1)。例如,在时间运动向量候选项的推导中,首先将条带头中的显式标志(collocated_from_l0_flag)发送到视频解码器30,以指示是从例如列表0还是列表1中选择并置图片。进一步地,将并置参考索引(collocated_ref_idx)发送到视频解码器30,从而指示该列表中的哪个参考图片被选择作为用于推导时间运动向量候选项的并置图片。

在任一种情况下,在当前图片的参考图片被识别为并置图片之后,视频解码器30根据固定顺序基于当前CU 535-1的空间相邻块的运动信息确定并置图片与当前图片之间的运动移位(也称为“时间向量”)(参见例如图5C中描绘的时间向量537)(630-3)。如上所述,每个CTU(包括一个或多个CU)具有多个空间相邻块,如A0、A1、B0、B1、B2等。每个空间相邻块可以具有指向当前CU的相应参考图片内的对应块的运动向量。在一些实施方式中,视频解码器30检查与对应的空间相邻块相关联的每个参考图片,直到各参考图片之一与并置图片相同为止。检查顺序是自适应的。在一些实施方式中,根据低延迟条件(LDC)和语义元素“collocated_from_l0_flag”,检查顺序从列表0和列表1之一开始。LDC是用于指示是否所有参考图片的图片顺序计数(POC)都比当前图片小的布尔变量。例如,列表0可以包括时间上在当前图片之前的至少一个参考图片,以及可选地包括时间上在当前图片之后的一个或多个参考图片。列表1可以包括时间上在当前图片之后的至少一个参考图片,或者仅包括时间上在当前图片之前的参考图片。在识别出与当前CU的特定空间相邻块相关联的参考图片之后,视频解码器30确定空间相邻块的运动信息,并将所述运动信息用作并置图片与当前图片之间的运动移位。通过使用运动移位,可以将并置图片内的块识别为与当前CU相对应。在建立如图5C所描绘的当前CU 535-1与对应的块540-1之间的映射关系之后,视频解码器30可以开始为当前CU 535-1的每个子块构造时间运动向量预测。

注意,假设在由视频解码器30接收的视频比特流的生成期间,视频编码器20已经将当前CU 535-1分割为多个子CU。因此,视频解码器30可以使用来自视频比特流的相同的语义元素集将当前CU 535-1分割为多个子CU(630-5)。如图5C所描绘的,当前图片535中的每个子CU 535-3在并置图片540中的相同相对位置处具有对应的子块。视频解码器30负责为每个子CU重构相同的时间运动向量预测,就像视频编码器20在根据SbTMVP过程将子CU编码到视频比特流中时一样。

在一些实施方式中,视频解码器30基于两条信息获得当前CU的每个子CU的时间运动向量预测值,这两条信息即:并置图片与当前图片之间的运动移位,以及并置图片中与当前图片的相应子块相对应的块的运动信息(630-7)。例如,针对当前图片535中的每个子CU,视频解码器30根据并置图片与当前图片之间的运动移位来识别并置图片中处于与当前图片中的子CU的子块相同的相对位置处的块。接下来,视频解码器30确定并置图片中的所识别的块的运动信息,并根据所识别的块的所确定的运动信息选择运动向量以及参考索引,以根据当前图片与其参考图片之间的POC差异同对应块的并置图片与参考图片之间的POC差异之比推导子CU的时间运动向量预测值。

另一方面,并置图片540中的对应块540-1可能属于不同的CU、CTU或甚至不同的条带或图块。对应块540-1中的不同子块可能具有不同的预测模式,使得对应块540-1中的一些子块可能根本不具有运动向量。在一些实施方式中,视频解码器30通过检查对应块540-1内的特定子块并确定该特定子块是否具有运动信息来处理此情况。如果特定子块具有运动信息,则当并置图片中的子CU的对应块不具有运动信息时,视频解码器30可以将特定子块的运动信息用作当前CU的另一个子CU的默认时间运动向量预测值。例如,在处理当前CU中的任何子CU之前,视频解码器30可以首先检查在对应块540-1的中心处或附近的块(或样点)的对应块(例如,在对应块540-1的中心正下方的右侧的块),并且检查该块是否具有运动信息。如果该块没有运动信息,则视频解码器30假设SbTMVP过程不适用于当前CU,并且继续处理当前图片中的另一合并候选项。但是,如果该块具有运动信息,则视频解码器30假设SbTMVP过程适用于当前CU,并且在当前CU的任何子CU的处于并置图片中的相同相对位置处的对应块不具有用于构造子CU的时间运动向量预测值的运动信息时,将所述运动信息用作当前CU的子CU的默认时间运动向量预测值。假设SbTMVP过程适用于当前CU,则视频解码器30使用针对当前CU的多个子CU获得的时间运动向量预测值来对当前CU进行相应解码(630-9)。

如上所述,帧内块复制(IBC)可以显著提高屏幕内容素材的编码效率。由于IBC模式被实施为块级编码模式,因此在视频编码器20处执行块匹配(BM)以找到每个CU的最佳块向量。在此,块向量用于指示从当前块到参考块的位移,所述参考块已经在当前图片内被重构。IBC编码的CU被视为不同于帧内预测模式或帧间预测模式的第三预测模式。

在CU级别,IBC模式可以作为IBC AMVP模式或IBC跳过/合并模式用信号传输,如下所示:

-IBC AMVP模式:CU的实际块向量与从CU的块向量候选项中选择的CU的块向量预测值之间的块向量差(BVD)以与在上文描述的AMVP模式下对运动向量差进行编码的方式相同的方式进行编码。块向量预测方法使用两个块向量候选项作为预测值,一个来自左侧邻居,并且另一个来自上方邻居(如果IBC编码的话)。当任一个邻居都不可用时,默认的块向量将用作块向量预测值。用信号传输二进制标志以指示块向量预测值索引。

-IBC跳过/合并模式:合并候选索引用于指示来自相邻IBC编码块的合并候选列表中的块向量候选项中的哪一个用于预测当前块的块向量。

视频编码器可以基于上述波前的前两个块的数据以及包括当前波前的第一个编码块的条带的条带头的一个或多个元素来初始化当前波前的上下文以执行当前波前的上下文自适应二进制算术编码(CABAC)。视频编码器可以在对后续CTU行上方的CTU行的两个CTU进行编码之后使用上下文状态来执行后续波前(或CTU行)的CABAC初始化。换句话说,在开始对当前波前进行编码之前,视频编码器可以对当前波前上方的波前的至少两个块进行编码,其中假设当前波前不是图片的CTU顶行。视频编码器然后可以在对当前波前上方的波前的至少两个块进行编码之后初始化当前波前的CABAC上下文。

在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合实施。如果在软件中实施,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质进行传输并且由基于硬件的处理单元执行。计算机可读介质可以包括对应于如数据存储介质等有形介质的计算机可读存储介质或包括有助于例如根据通信协议将计算机程序从一个地方转移到另一个地方的任何介质的通信介质。以此方式,计算机可读介质通常可以对应于(1)非暂态的有形计算机可读存储介质或者(2)如信号或载波等通信介质。数据存储介质可以是可以被一个或多个计算机或者一个或多个处理器访问以取得用于实施本申请中描述的实施方式的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。

在对本文中实施方式的描述中使用的术语仅出于描述特定实施方式的目的,并且不旨在限制权利要求的范围。如对实施方式的描述和所附权利要求中使用的,单数形式“一个(a)”、“一种(an)”和“所述(the)”旨在也包括复数形式,除非上下文另有明确指示。还将理解的是,本文所使用的术语“和/或”是指并涵盖相关联列举项目中的一个或多个项目的任何和所有可能组合。将进一步理解的是,当在本说明书中使用术语“包括(comprises)”和/或“包括(comprising)”时,其指定陈述的特征、元件和/或部件的存在,但不排除一个或多个其他特征、元件、部件和/或其群组的存在或添加。

还将理解,尽管术语第一、第二等在本文中可以用来描述各种要素,但是这些要素不应该受这些术语的限制。这些术语仅仅是用来将一个要素与另一个要素进行区分。例如,在不偏离实施方式的范围的情况下,第一电极可以被称为第二电极,并且类似地,第二电极可以被称为第一电极。第一电极和第二电极都是电极,但是第一电极和第二电极不是同一电极。

已经出于说明和描述的目的呈现了对本申请的描述,并且描述不旨在是穷举的,或以所公开的形式限于本发明。许多修改、变体和替代性实施方式对于受益于前述描述和相关联附图中呈现的教导的本领域普通技术人员将是清楚明白的。选择并描述实施例以便最好地解释本发明的原理、实际应用,并且使本领域其他技术人员能够理解本发明的各种实施方式并且最好地利用基本原理以及具有适合于预期的特定用途的各种修改的各种实施方式。因此,应当理解,权利要求的范围不应受限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在包括在所附权利要求的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号