一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于视频编解码的去块滤波的制作方法

2022-07-16 09:18:22 来源:中国专利 TAG:

用于视频编解码的去块滤波
1.相关申请
2.本技术要求于2019年11月27日提交的题为“deblocking filtering for video coding(用于视频编解码的去块滤波)”的第62/941,479号美国临时专利申请的优先权,其全部内容通过引用并入本文。
技术领域
3.本技术总体涉及视频编解码和压缩,并且更具体地,涉及关于改进在启用参考图片重采样(rpr)方法时的去块技术的方法和装置。


背景技术:

4.各种电子设备(诸如数字电视、膝上型计算机或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏机、智能电话、视频电话会议设备、视频流设备等)都支持数字视频。电子设备通过实施如由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)条带中的视频块可使用关于同一视频帧内的相邻块中的参考样点的空间预测或关于其它先前参考视频帧和/或未来参考视频帧中的参考样点的时间预测。
5.基于先前已被编码的参考块(例如,相邻块)的空间预测或时间预测得出用于待编解码的当前视频块的预测块。找到参考块的过程可通过块匹配算法来完成。表示待编解码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。根据残差块和指向参考帧中的形成预测块的参考块的运动矢量来对帧间编码块进行编码。确定运动矢量的过程通常被称为运动估计。根据帧内预测模式和残差块对帧内编码块进行编码。为了进一步压缩,将残差块从像素域变换到变换域(例如,频域),从而得出残差变换系数,残差变换系数然后可被量化。最初以二维阵列布置的量化的变换系数可被扫描以产生变换系数的一维向量,然后被熵编码为视频比特流以实现甚至更大的压缩。
6.然后,将经编码的视频比特流保存于计算机可读存储介质(例如,闪存存储器)中,以由具有数字视频能力的另一电子设备访问或者有线或无线地直接发送到电子设备。然后,电子设备执行视频解压缩(其为与上文描述的视频压缩相反的过程),例如,通过对经编码的视频比特流进行解析来从比特流获得语义元素,并且至少部分地基于从比特流获得的
语义元素从经编码的视频比特流将数字视频数据重建为其原始格式,并且电子设备在电子设备的显示器上呈现重建的数字视频数据。
7.随着数字视频质量从高清变为4k
×
2k或甚至8k
×
4k,待编码/解码的视频数据量呈指数增长。在如何在保持解码视频数据的图像质量的同时能够更有效率地对视频数据进行编码/解码方面,是一个长久挑战。


技术实现要素:

8.本技术描述了与视频数据编码和解码相关的实施方式,并且更具体地,描述了与关于改进在启用参考图片重采样(rpr)方法时的去块技术的方法和装置相关的实施方式。
9.根据本技术的第一方面,一种对视频数据进行解码的方法包括:对第一图片上的第一编码块和与第一编码块共享公共边缘的第二编码块进行解码,其中对第一编码块和第二编码块进行解码包括重建针对第一编码块的第一残差块和针对第二编码块的第二残差块;确定第一图片具有第一分辨率,与第一编码块对应的第一参考图片具有第二分辨率,并且与第二编码块对应的第二参考图片具有第三分辨率;部分地基于第一分辨率、第二分辨率和第三分辨率的值来导出去块强度(bs)值;以及根据导出的bs值,使用去块滤波器对重建的第一残差块和重建的第二残差块执行环路滤波。
10.根据本技术的第二方面,一种电子装置包括一个或更多个处理单元、存储器和存储在存储器中的多个程序。程序在被一个或更多个处理单元执行时使电子装置执行如上文所描述的对视频数据进行解码的方法。
11.根据本技术的第三方面,一种非暂态计算机可读存储介质存储用于由具有一个或更多个处理单元的电子装置执行的多个程序。程序在被一个或更多个处理单元执行时使电子装置执行如上文所描述的对视频数据进行解码的方法。
附图说明
12.被包括以提供对实施方式的进一步理解并且被并入本文并构成说明书的一部分的附图示出了所描述的实施方式,并且与本说明书一起用于解释基本原理。相似的附图标记指代相应的部分。
13.图1是示出根据本公开的一些实施方式的示例性视频编码和解码系统的框图。
14.图2是示出根据本公开的一些实施方式的示例性视频编码器的框图。
15.图3是示出根据本公开的一些实施方式的示例性视频解码器的框图。
16.图4a至图4e是示出根据本公开的一些实施方式的如何将帧递归地分割为不同尺寸和形状的多个视频块的框图。
17.图5是示出根据本公开的一些实施方式的图片的示例性瓦片组分割的框图。
18.图6是示出根据本公开的一些实施方式的具有由待去块边缘分开的区域的示例性图片的框图。
19.图7是示出根据本公开的一些实施方式的视频编解码器实施使用当前图片分辨率和参考图片分辨率来确定去块强度的技术的示例性过程的流程图。
20.图8是示出根据本公开的一些实施方式的示例上下文自适应二进制算术编解码(cabac)引擎的框图。
具体实施方式
21.现在将详细参照具体实施方式,在附图中示出具体实施方式的示例。在以下详细描述中,阐述了很多非限制性具体细节以便帮助理解本文呈现的主题。但是对于本领域普通技术人员将显而易见的是,在不脱离权利要求的范围的情况下,可使用各种替代方案,并且可在没有这些具体细节的情况下实践主题。例如,对于本领域普通技术人员将显而易见的是,本文呈现的主题可在具有数字视频能力的许多类型的电子设备上实现。
22.图1是示出根据本公开的一些实施方式的用于并行地对视频块进行编码和解码的示例性系统10的框图。如图1中所示,系统10包括源设备12,源设备12生成并编码稍后将由目标设备14进行解码的视频数据。源设备12和目标设备14可包括各种各样的电子设备中的任何电子设备,包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示器设备、数字媒体播放器、视频游戏机、视频流传输设备等。在一些实施方式中,源设备12和目标设备14配备有无线通信能力。
23.在一些实施方式中,目标设备14可经由链路16接收待解码的编码视频数据。链路16可包括能够将编码视频数据从源设备12移动到目标设备14的任何类型的通信介质或设备。在一个示例中,链路16可包括使源设备12能够实时地将编码视频数据直接发送到目标设备14的通信介质。编码视频数据可根据通信标准(诸如无线通信协议)被调制,并且被发送到目标设备14。通信介质可包括任何无线或有线通信介质,诸如射频(rf)频谱或一个或更多个物理传输线。通信介质可形成基于分组的网络(例如,局域网、广域网或诸如互联网的全球网)的一部分。通信介质可包括路由器、交换机、基站或可有利于促进从源设备12到目标设备14的通信的任何其它装置。
24.在一些其它实施方式中,编码视频数据可从输出接口22被发送到存储设备32。随后,存储设备32中的编码视频数据可由目标设备14经由输入接口28被访问。存储设备32可包括各种分布式或本地访问的数据存储介质中的任何数据存储介质,诸如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪存存储器、易失性或非易失性存储器、或者用于存储编码视频数据的任何其它合适的数字存储介质。在另一示例中,存储设备32可对应于文件服务器或可保持由源设备12生成的编码视频数据的另一中间存储设备。目标设备14可从存储设备32经由流传输或下载来访问存储的视频数据。文件服务器可以是能够存储编码视频数据并且将编码视频数据发送到目标设备14的任何类型的计算机。示例性文件服务器包括web服务器(例如,用于网站)、ftp服务器、网络附属存储(nas)设备或本地磁盘驱动器。目标设备14可通过适合于访问存储在文件服务器上的编码视频数据的任何标准数据连接来访问编码视频数据,标准数据连接包括无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等)或无线信道和有线连接两者的组合。编码视频数据从存储设备32的传输可以是流传输、下载传输或流传输和下载传输两者的组合。
25.如图1中所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可包括诸如以下项的源或此类源的组合:视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频存档、用于从视频内容提供者接收视频的视频馈入接口、和/或用于生成作为源视频的计算机图形数据的计算机图形系统。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目标设备14可形成相机电话或视频电话。然而,本技术中所描述的实施方式通常可适用于视频编解码,并且可应用于无线和/或有线应用。
26.可由视频编码器20对捕获、预先捕获或计算机生成的视频进行编码。可经由源设备12的输出接口22直接将编码视频数据发送到目标设备14。还可(或可选地)将编码视频数据存储到存储设备32上以供稍后被目标设备14或其它设备访问,以用于解码和/或回放。输出接口22可进一步包括调制解调器和/或发送器。
27.目标设备14包括输入接口28、视频解码器30和显示器设备34。输入接口28可包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16通信传送或在存储设备32上提供的编码视频数据可包括由视频编码器20生成的各种语义元素以供视频解码器30在对视频数据进行解码时使用。此类语义元素可被包括在通信介质上发送、存储在存储介质上或存储在文件服务器上的编码视频数据内。
28.在一些实施方式中,目标设备14可包括显示器设备34,显示器设备34可以是集成显示器设备和被配置为与目标设备14通信的外部显示器设备。显示器设备34将解码视频数据显示给用户,并且可包括各种显示器设备中的任何显示器设备,诸如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一类型的显示器设备。
29.视频编码器20和视频解码器30可根据专有标准或行业标准(例如,vvc、hevc、mpeg-4、part 10、高级视频编解码(avc))或此类标准的扩展进行操作。应当理解,本技术不限于特定的视频编码/解码标准,并且可适用于其它视频编码/解码标准。通常认为源设备12的视频编码器20可被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行编码。类似地,还通常认为目标设备14的视频解码器30可被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行解码。
30.视频编码器20和视频解码器30可分别被实现为各种合适的编码器电路中的任何电路,诸如一个或更多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。当部分地以软件实现时,电子设备可将用于软件的指令存储于合适的非暂态计算机可读介质中,并且使用一个或更多个处理器执行硬件中的指令以执行本公开中所公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可被包括在一个或更多个编码器或解码器中,编码器或解码器中的任一者可被集成为相应设备中的组合式编码器/解码器(codec)的一部分。
31.图2是示出根据本技术中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可执行对视频帧内的视频块的帧内预测编解码和帧间预测编解码。帧内预测编码依赖于空间预测以减少或移除给定视频帧或图片内的视频数据中的空间冗余。帧间预测编解码依赖于时间预测以减少或移除视频序列的相邻视频帧或图片内的视频数据中的时间冗余。
32.如图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可采取固定或可编程硬件单元的形式,或者可分散在所说明的固定或可编程硬件单元中的一个或更多个中。
33.视频数据存储器40可存储将由视频编码器20的组件编码的视频数据。视频数据存储器40中的视频数据可例如从视频源18获得。dpb 64是存储供视频编码器20(例如,以帧内或帧间预测编解码模式)在对视频数据进行编码时使用的参考视频数据的缓冲器。视频数据存储器40和dpb 64可由各种存储器设备中的任何存储器设备形成。在各种示例中,视频数据存储器40可与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。
34.如图2中所示,在接收到视频数据之后,预测处理单元41内的分割单元45将视频数据分割为视频块。此分割还可包括根据与视频数据相关联的预定义的拆分结构(诸如四叉树结构)将视频帧分割为条带、分区(tile)或其它更大编码单元(cu)。视频帧可被划分为多个视频块(或被称为分区的视频块集合)。预测处理单元41可基于误差结果(例如,编解码速率和失真等级)为当前视频块选择多个可行预测编解码模式中的一个,诸如多个帧内预测编解码模式中的一个或多个帧间预测编码模式中的一个。预测处理单元41可将所得的帧内预测编码块或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重建编码块以用于随后作为参考帧的一部分使用。预测处理单元41还将语义元素(诸如运动矢量、帧内模式指示符、分割信息和其它此类语法信息)提供给熵编码单元56。
35.为了选择用于当前视频块的合适的帧内预测编解码模式,预测处理单元41内的帧内预测处理单元46可以与和待编码的当前块在同一帧中的一个或更多个相邻块相关地执行当前视频块的帧内预测编解码以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44与一个或更多个参考帧中的一个或更多个预测块相关地执行当前视频块的帧间预测编解码以提供时间预测。视频编码器20可执行多个编码遍次,例如,来为视频数据的每个块选择合适的编解码模式。
36.在一些实施方式中,运动估计单元42通过根据视频帧序列内的预定模式生成运动矢量来确定用于当前视频帧的帧间预测模式,运动矢量指示当前视频帧内的视频块的预测单元(pu)相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成估计针对视频块的运动的运动矢量的过程。例如,运动矢量可指示当前视频帧或图片内的视频块的pu相对于与当前帧内正被编解码的当前块(或其它编码单元)相关的参考帧内的预测块(或其它编码单元)的位移。预定模式可将序列中的视频帧指定为p帧或b帧。帧内bc单元48可以以与由运动估计单元42确定用于帧间预测的运动矢量类似的方式确定用于帧内bc编解码的矢量(例如,块矢量),或可利用运动估计单元42确定块矢量。
37.在像素差方面,预测块是被认为与待编码视频块的pu紧密匹配的参考帧的块,像素差可由绝对差总和(sad)、平方差总和(ssd)或其它差度量确定。在一些实施方式中,视频编码器20可计算用于dpb 64中存储的参考帧的子整数像素位置的值。例如,视频编码器20可对参考帧的四分之一像素位置、八分之一像素位置或其它分数像素位置的值进行内插。因此,运动估计单元42可相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精度的运动矢量。
38.运动估计单元42通过以下来计算针对帧间预测编解码帧中的视频块的pu的运动矢量:将pu的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)选择的参考帧的预测块的位置进行比较,第一参考帧列表和第二参考帧列表中的每一个标识存储在dpb 64中的一个或更多个参考帧。运动估计单元42将计算的运动矢量发送到运动补偿单元44,然后发送到熵编码单元56。
39.由运动补偿单元44执行的运动补偿可涉及基于由运动估计单元42确定的运动矢量提取或生成预测块。在接收到针对当前视频块的pu的运动矢量后,运动补偿单元44可在参考帧列表中的一个参考帧列表中定位运动矢量所指向的预测块,从dpb 64取回预测块,并且将预测块转发到加法器50。然后,加法器50通过从正被编解码的当前视频块的像素值减去由运动补偿单元44提供的预测块的像素值来形成像素差值的残差视频块。形成残差视频块的像素差值可包括亮度差分量或色度差分量或两者。运动补偿单元44还可生成与视频帧的视频块相关联的语义元素以供视频解码器30在对视频帧的视频块进行解码时使用。语义元素可包括例如定义用于识别预测块的运动矢量的语义元素、指示预测模式的任何标记、或本文描述的任何其它语法信息。应注意,运动估计单元42和运动补偿单元44可高度集成,但出于概念目的而单独说明。
40.在一些实施方式中,帧内bc单元48可以以与上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式生成矢量并提取预测块,但是这些预测块在与正被编码的当前块的同一帧中,并且这些矢量被称为块矢量而非运动矢量。具体地,帧内bc单元48可确定将用于对当前块进行编码的帧内预测模式。在一些示例中,帧内bc单元48可例如在单独的编码遍次期间使用各种帧内预测模式来对当前块进行编码,并且通过率失真分析来测试它们的性能。接下来,帧内bc单元48可在各种测试的帧内预测模式中选择合适的帧内预测模式以使用并相应地生成帧内模式指示符。例如,帧内bc单元48可使用率失真分析针对各种测试的帧内预测模式计算率失真值,并且在测试的模式中选择具有最佳率失真特性的帧内预测模式作为合适的帧内预测模式来使用。率失真分析大体上确定编码块与被编码以生成编码块的原始未编码块之间的失真(或误差)量、以及用于产生编码块的比特率(即,比特数量)。帧内bc单元48可从针对各种编码块的失真和速率计算比率,以确定哪个帧内预测模式展现针对块的最佳率失真值。
41.在其它示例中,帧内bc单元48可全部或部分地使用运动估计单元42和运动补偿单元44来执行根据本文描述的实施方式的用于帧内bc预测的此类功能。在任一情况下,对于帧内块复制,在像素差方面,预测块可以是被认为与待编解码的块紧密匹配的块,像素差可由绝对差总和(sad)、平方差总和(ssd)或其它差度量确定,并且预测块的识别可包括计算针对子整数像素位置的值。
42.无论预测块是来自根据帧内预测的同一帧还是来自根据帧间预测的不同帧,视频编码器20可通过从正被编解码的当前视频块的像素值减去预测块的像素值来形成像素差值,从而形成残差视频块。形成残差视频块的像素差值可包括亮度分量差和色度分量差两者。
43.作为如上文所描述的由运动估计单元42和运动补偿单元44执行的帧间预测或由帧内bc单元48执行的帧内块复制预测的替代方案,帧内预测处理单元46可对当前视频块进行帧内预测。具体地,帧内预测处理单元46可确定帧内预测模式以用于对当前块进行编码。为此,帧内预测处理单元46可例如在单独的编码遍次期间使用各种帧内预测模式来对当前块进行编码,并且帧内预测处理单元46(或在一些示例中,模式选择单元)可从测试的帧内预测模式中选择合适的帧内预测模式来使用。帧内预测处理单元46可将指示针对块选择的帧内预测模式的信息提供给熵编码单元56。熵编码单元56可将指示选择的帧内预测模式的信息编码到比特流中。
44.在预测处理单元41经由帧间预测或帧内预测确定针对当前视频块的预测块之后,加法器50通过从当前视频块减去预测块来形成残差视频块。残差块中的残差视频数据可被包括在一个或更多个变换单元(tu)中并且提供给变换处理单元52。变换处理单元52使用变换(诸如离散余弦变换(dct)或概念上类似的变换)将残差视频数据变换为残差变换系数。
45.变换处理单元52可将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小比特率。量化过程还可减小与系数中的一些或全部相关联的比特深度。可通过调整量化参数来修改量化程度。在一些示例中,量化单元54可随后执行对包括量化的变换系数的矩阵的扫描。可选地,熵编码单元56可执行扫描。
46.在量化之后,熵编码单元56使用例如上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编解码(cabac)、基于语法的上下文自适应二进制算术编解码(sbac)、概率区间分割熵(pipe)编解码或另一熵编解码方法或技术,将量化的变换系数熵编码成视频比特流。然后,编码的比特流可被发送到视频解码器30,或存档于存储设备32中以供稍后发送到视频解码器30或由视频解码器30取回。熵编码单元56还可对用于正被编码的当前视频帧的运动矢量和其它语义元素进行熵编码。
47.反量化单元58和逆变换处理单元60分别应用反量化和逆变换以在像素域中重建残差视频块以用于生成用于预测其它视频块的参考块。如上文指出的,运动补偿单元44可从存储在dpb 64中的帧的一个或更多个参考块生成运动补偿预测块。运动补偿单元44还可将一个或更多个内插滤波器应用于预测块以计算子整数像素值以用于在运动估计时使用。
48.加法器62将重建的残差块加到由运动补偿单元44产生的运动补偿预测块来产生参考块以存储在dpb 64中。然后,参考块可由帧内bc单元48、运动估计单元42和运动补偿单元44用作预测块以对后续视频帧中的另一视频块进行帧间预测。
49.图3是示出根据本技术的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、反量化单元86、逆变换处理单元88、加法器90和dpb 92。预测处理单元81进一步包括运动补偿单元82、帧内预测处理单元84和帧内bc单元85。视频解码器30可执行与上文结合图2关于视频编码器20所描述的编码过程基本互逆的解码过程。例如,运动补偿单元82可基于从熵解码单元80接收的运动矢量生成预测数据,而帧内预测单元84可基于从熵解码单元80接收的帧内预测模式指示符生成预测数据。
50.在一些示例中,视频解码器30的单元可被分派任务以执行本技术的实施方式。此外,在一些示例中,本公开的实施方式可分散在视频解码器30的多个单元中的一个或更多个单元中。例如,帧内bc单元85可单独地或与视频解码器30的其它单元(诸如,运动补偿单元82、帧内预测处理单元84和熵解码单元80)组合地执行本技术的实施方式。在一些示例中,视频解码器30可不包括帧内bc单元85,并且帧内bc单元85的功能可由预测处理单元81的其它组件(诸如运动补偿单元82)执行。
51.视频数据存储器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的其它组件一起在芯片上,或相对于那些组件在芯片外。
52.在解码过程期间,视频解码器30接收表示编码视频帧的视频块和相关联的语义元素的编码视频比特流。视频解码器30可在视频帧级和/或视频块级接收语义元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符、以及其它语义元素。然后,熵解码单元80将运动矢量和其它语义元素转发到预测处理单元81。
53.当视频帧被编码为帧内预测编码(i)帧或用于其它类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测处理单元84可基于用信号发送的帧内预测模式和来自当前帧的先前解码块的参考数据来生成用于当前视频帧的视频块的预测数据。
54.当视频帧被编码为帧间预测编码(即,b或p)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量和其它语义元素产生针对当前视频帧的视频块的一个或更多个预测块。预测块中的每一个可从参考帧列表中的一个参考帧列表内的参考帧产生。视频解码器30可基于存储在dpb 92中的参考帧使用默认构建技术来构建参考帧列表,列表0和列表1。
55.在一些示例中,当根据本文描述的帧内bc模式对视频块进行编解码时,预测处理单元81的帧内bc单元85基于从熵解码单元80接收的块矢量和其它语义元素产生针对当前视频块的预测块。预测块可在由视频编码器20定义的与当前视频块的同一图片的重建区域内。
56.运动补偿单元82和/或帧内bc单元85通过解析运动矢量和其它语义元素来确定针对当前视频帧的视频块的预测信息,然后使用该预测信息产生针对正被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语义元素中的一些语义元素来确定用于对视频帧的视频块进行编解码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,b或p)、用于针对帧的参考帧列表中的一个或更多个的构建信息、用于帧的每个帧间预测编码视频块的运动矢量、用于帧的每个帧间预测编解码视频块的帧间预测状态、以及用于对当前视频帧中的视频块进行解码的其它信息。
57.类似地,帧内bc单元85可使用接收到的语义元素中的一些语义元素,例如标记,以确定当前视频块是使用帧内bc模式预测的、帧的哪些视频块在重建区域内且应被存储在dpb 92中的构建信息、用于帧的每个帧内bc预测视频块的块矢量、用于帧的每个帧内bc预测视频块的帧内bc预测状态、以及用于对当前视频帧中的视频块进行解码的其它信息。
58.运动补偿单元82还可使用如由视频编码器20在视频块的编码期间使用的内插滤波器执行内插,以计算针对参考块的子整数像素的内插值。在这种情况下,运动补偿单元82可从接收到的语义元素确定由视频编码器20使用的内插滤波器,并且使用这些内插滤波器来产生预测块。
59.反量化单元86使用由视频编码器20针对视频帧中的每个视频块计算的用于确定量化程度的相同的量化参数,对在比特流中提供且由熵解码单元80熵解码的量化的变换系数进行反量化。逆变换处理单元88将逆变换(例如,逆dct、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中重建残差块。
60.在运动补偿单元82或帧内bc单元85基于矢量和其它语义元素生成针对当前视频块的预测块之后,加法器90通过将来自逆变换处理单元88的残差块与由运动补偿单元82和帧内bc单元85生成的对应预测块相加,来重建针对当前视频块的解码视频块。环内滤波器(未示出)可位于加法器90与dpb 92之间以进一步处理解码视频块。然后,将给定帧中的解码视频块存储在dpb 92中,dpb 92存储用于接下来的视频块的后续运动补偿的参考帧。dpb 92或与dpb 92分离的存储器设备还可存储解码视频以用于稍后呈现在显示器设备(例如,图1的显示器设备34)上。
61.在典型的视频编解码过程中,视频序列通常包括帧或图片的有序集合。每一帧可包括三个样点阵列,表示为sl、scb和scr。sl是亮度样点的二维阵列。scb是cb色度样点的二维阵列。scr是cr色度样点的二维阵列。在其它情况下,帧可以是单色的,因此仅包括亮度样点的一个二维阵列。
62.如图4a中所示,视频编码器20(或更具体地,分割单元45)通过首先将帧分割为编码树单元(ctu)的集合来生成帧的编码表示。视频帧可包括以光栅扫描顺序从左到右和从上到下连续排序的整数个ctu。每个ctu是最大的逻辑编码单元,并且由视频编码器20以序列参数集用信号发送ctu的宽度和高度,使得视频序列中的所有ctu具有128
×
128、64
×
64、32
×
32和16
×
16之一的相同尺寸。但是应当注意,本技术不一定限于特定尺寸。如图4b中所示,每个ctu可包括亮度样点的一个编码树块(ctb)、色度样点的两个对应编码树块、以及用于对编码树块的样点进行编解码的语义元素。语义元素描述编码像素块的不同类型的单元的性质以及可如何在视频解码器30处重建视频序列,包括帧间预测或帧内预测、帧内预测模式、运动矢量和其它参数。在单色图片或具有三个单独颜色平面的图片中,ctu可包括单个编码树块和用于对该编码树块的样点进行编解码的语义元素。编码树块可以是n
×
n样点块。
63.为实现更好的性能,视频编码器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所示,存在五种分割类型,即四元分割、水
平二元分割、垂直二元分割、水平三元分割和垂直三元分割。
64.在一些实施方式中,视频编码器20可进一步将cu的编码块分割为一个或更多个m
×
n预测块(pb)。预测块是被应用相同预测(帧间或帧内)的矩形(正方形或非正方形)样点块。cu的预测单元(pu)可包括亮度样点的预测块、色度样点的两个对应预测块和用于对预测块进行预测的语义元素。在单色图片或具有三个单独颜色平面的图片中,pu可包括单个预测块和用于对预测块进行预测的语法结构。视频编码器20可生成针对cu的每个pu的亮度预测块、cb预测块和cr预测块的预测亮度块、预测cb块和预测cr块。
65.视频编码器20可使用帧内预测或帧间预测来生成针对pu的预测块。如果视频编码器20使用帧内预测来生成pu的预测块,则视频编码器20可基于与pu相关联的帧的解码样点来生成pu的预测块。如果视频编码器20使用帧间预测来生成pu的预测块,则视频编码器20可基于除与pu相关联的帧之外的一个或更多个帧的解码样点来生成pu的预测块。
66.在视频编码器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编码块中的对应样点之间的差。
67.此外,如图4c中所示,视频编码器20可使用四叉树分割将cu的亮度残差块、cb残差块和cr残差块分解成一个或更多个亮度变换块、cb变换块和cr变换块。变换块是被应用相同变换的矩形(正方形或非正方形)样点块。cu的变换单元(tu)可包括亮度样点的变换块、色度样点的两个对应变换块和用于对变换块样点进行变换的语义元素。因此,cu的每个tu可与亮度变换块、cb变换块和cr变换块相关联。在一些示例中,与tu相关联的亮度变换块可以是cu的亮度残差块的子块。cb变换块可以是cu的cb残差块的子块。cr变换块可以是cu的cr残差块的子块。在单色图片或具有三个单独颜色平面的图片中,tu可包括单个变换块和用于对该变换块的样点进行变换的语法结构。
68.视频编码器20可将一个或更多个变换应用于tu的亮度变换块以生成针对tu的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可将一个或更多个变换应用于tu的cb变换块以生成针对tu的cb系数块。视频编码器20可将一个或更多个变换应用于tu的cr变换块以生成针对tu的cr系数块。
69.在生成系数块(例如,亮度系数块、cb系数块或cr系数块)之后,视频编码器20可对系数块进行量化。量化通常是指变换系数被量化以可能减少用于表示变换系数的数据量从而提供进一步压缩的过程。在视频编码器20对系数块进行量化之后,视频编码器20可对指示量化的变换系数的语义元素进行熵编码。例如,视频编码器20可对指示量化的变换系数的语义元素执行上下文自适应二进制算术编解码(cabac)。最后,视频编码器20可输出包括比特序列的比特流,比特序列形成编码帧和相关联数据的表示,比特流被保存于存储设备32中或被发送到目标设备14。
70.在接收到由视频编码器20生成的比特流之后,视频解码器30可解析比特流以从比特流获得语义元素。视频解码器30可至少部分地基于从比特流获得的语义元素来对视频数
据的帧进行重建。对视频数据进行重建的过程通常与由视频编码器20执行的编码过程互逆。例如,视频解码器30可对与当前cu的tu相关联的系数块执行逆变换以重建与当前cu的tu相关联的残差块。视频解码器30还通过将针对当前cu的pu的预测块的样点加到当前cu的tu的变换块的对应样点,来重建当前cu的编码块。在重建针对帧的每个cu的编码块之后,视频解码器30可重建帧。
71.如上所述,视频编解码主要使用两种模式(即,帧内部预测(或帧内预测)和帧之间预测(或帧间预测))来实现视频压缩。基于调色板的编解码是已被许多视频编解码标准采用的另一编解码方案。在基于调色板的编解码(可能特别适合于屏幕生成的内容编解码)中,视频编解码器(例如,视频编码器20或视频解码器30)形成表示给定块的视频数据的颜色的调色板表。调色板表包括给定块中的最主要(例如,频繁使用的)像素值。在给定块的视频数据中不被频繁表示的像素值不包括在调色板表中或者作为逃逸颜色包括在调色板表中。
72.调色板表中的每个条目包括针对调色板表中的对应像素值的索引。针对块中的样点的调色板索引可被编码为指示来自调色板表的哪个条目将被用于预测或重建哪个样点。此调色板模式开始于产生针对图片、条带、瓦片或视频块的其它此类分组的第一块的调色板预测因子的过程。如下文将解释,通常通过更新先前使用的调色板预测因子来产生针对后续视频块的调色板预测因子。为了说明的目的,假设调色板预测因子在图片级被定义。换句话说,图片可包括多个编码块,每个编码块具有其自己的调色板表,但存在针对整个图片的一个调色板预测因子。
73.为了减少在视频比特流中用信号发送调色板条目所需的比特,视频解码器可利用调色板预测因子来确定用于重建视频块的调色板表中的新调色板条目。例如,调色板预测因子可包括来自先前使用的调色板表的调色板条目,或者甚至通过包括最近使用的调色板表的所有条目来利用最近使用的调色板表被初始化。在一些实施方式中,调色板预测因子可包括比来自最近使用的调色板表的所有条目更少的条目,然后并入来自其它先前使用的调色板表的一些条目。调色板预测因子可具有与用于编解码不同块的调色板表相同的大小,或者可大于或小于用于编解码不同块的调色板表。在一个示例中,调色板预测因子被实现为包括64个调色板条目的先进先出(fifo)表。
74.为了从调色板预测因子生成针对视频数据块的调色板表,视频解码器可从编码视频比特流接收针对调色板预测因子的每个条目的一比特标志。一比特标志可具有指示调色板预测因子的关联条目将被包括在调色板表中的第一值(例如,二进制一)或指示调色板预测因子的关联条目将不被包括在调色板表中的第二值(例如,二进制零)。如果调色板预测因子的大小大于用于视频数据块的调色板表,则一旦达到针对调色板表的最大大小,视频解码器就可停止接收更多标志。
75.在一些实施方式中,调色板表中的一些条目可在编码视频比特流中直接用信号发送,而不使用调色板预测因子确定。对于此类条目,视频解码器可从编码视频比特流接收指示针对与条目相关联的亮度分量和两个色度分量的像素值的三个单独m比特值,其中m表示视频数据的比特深度。与直接用信号发送的调色板条目所需的多个m比特值相比,从调色板预测因子导出的那些调色板条目仅需要一比特标志。因此,使用调色板预测因子用信号发送一些或所有调色板条目可显著减少用信号发送新调色板表的条目所需的比特的数量,从
而提高调色板模式编解码的整体编解码效率。
76.在许多情况下,针对一个块的调色板预测因子基于被用于对一个或多个先前编码的块进行编码的调色板表被确定。但是当对图片、条带或瓦片中的第一编码树单元进行编解码时,先前编解码的块的调色板表可能不可用。因此,不能使用先前使用的调色板表的条目来生成调色板预测因子。在这种情况下,可在序列参数集(sps)和/或图片参数集(pps)中用信号发送调色板预测因子初始化值的序列,调色板预测因子初始化值是用于在先前使用的调色板表不可用时生成调色板预测因子的值。sps通常是指应用于被称为编码视频序列(cvs)的一系列连续的编码视频图片的语法元素的语法结构,其中,该cvs是由每个条带片段头中找到的语法元素所提及的pps中找到的语法元素的内容确定的。pps通常是指应用于cvs内的一个或多个单独图片的语法元素的语法结构,其中,该cvs是由在每个条带片段头中找到的语法元素确定的。因此,sps通常被认为是比pps更高等级的语法结构,这意味着与包括在pps中的语法元素相比,包括在sps中的语法元素通常改变频率低并且应用于更大部分的视频数据。
77.图5是示出根据本公开的一些实施方式的图片500a和图片500b的示例性瓦片组分割的框图。
78.在vvc中,瓦片被定义为图片的特定瓦片列和特定瓦片行内的多个ctu的矩形区域。瓦片组是图片中包含在单个网络抽象层(nal)单元中的一个或多个瓦片的组合。换句话说,图片可被划分为多个瓦片组和瓦片。瓦片是覆盖图片的矩形区域的ctu序列。瓦片组包括图片的一个或多个瓦片。在一些实施例中,在vvc中支持瓦片组的两种模式:(i)光栅扫描瓦片组模式和(ii)矩形瓦片组模式。在光栅扫描瓦片组模式中,瓦片组包括图片的沿着瓦片光栅扫描顺序的瓦片序列。在矩形瓦片组模式中,瓦片组包括图片的共同形成图片的矩形区的一个或多个瓦片。矩形瓦片组内的瓦片按照瓦片组的瓦片光栅扫描的顺序。
79.例如,图片500a使用光栅扫描瓦片组分割模式被划分为三个瓦片组。图片500a是216个ctu(例如,ctu 502a、502b、502c)的矩形区域,其中每行18个ctu且每列12个ctu。图片500a进一步被划分为12个唯一矩形瓦片(例如,瓦片504a、504b、504c),每个瓦片的尺寸为3
×
6ctu。图片500a包括三个光栅扫描瓦片组(例如,瓦片组506a、506b、506c)。瓦片组506a包括两个瓦片,瓦片组506b包括五个瓦片(例如,灰色阴影),并且瓦片组506c包括五个瓦片。
80.在另一示例中,图片500b使用矩形瓦片组分割模式被划分为九个瓦片组。图片500b是216个ctu(例如,ctu 508a、508b、508c)的矩形区域,其中每行18个ctu且每列12个ctu。图片500b进一步被划分为24个唯一瓦片(例如,瓦片510a和510b),每个瓦片的尺寸为3
×
3ctu。图片500b包括九个矩形瓦片组(相邻瓦片组以不同颜色(例如,灰色对白色)加阴影以用于视觉区分),包括六个矩形瓦片组和三个正方形瓦片组,六个矩形瓦片组中的每一个瓦片组由两个瓦片组成(例如,瓦片组512a),三个正方形瓦片组中的每一个瓦片组由四个瓦片组成(例如,瓦片组512b)。
81.图6是示出根据本公开的一些实施方式的具有由待去块边缘分开的区域的示例性图片600的框图。
82.参考图片重采样(rpr)或自适应分辨率改变(arc)是允许图片分辨率改变而不必引入瞬时解码器刷新(idr)编码的图片或帧内随机存取图片(irap)的技术。在rpr/arc方案中,根据参考图片的宽度和高度与当前图片的宽度和高度之间的比例,使用一个或多个插
值滤波器来产生参考块,并且经重新采样的图片不存储在解码图片缓冲器64(dpb)中。当参考图片中的块被当前图片中的块参考且参考图片的分辨率与当前图片的分辨率不同时,通过调用被设计用于rpr的插值滤波器来重新采样参考图片中的块。
83.去块强度(bs)的导出如下所示。样点p0和q0是位于由待去块边缘分开的相邻块中的样点(例如,块p 602a和块q 604a被待去块边缘606分开,并且块p 602b和块q 604b被待去块边缘608分开)。去块强度(bs)导出如下:
84.如果cidx等于0并且样点p0和q0都在intra_bdpcm_luma_flag等于1的编码块中,则bs被设置为等于0。
85.否则,如果cidx大于0并且样点p0和q0都在intra_bdpcm_chroma_flag等于1的编码块中,则bs被设置为等于0。
86.否则,如果样点p0和q0在用帧内预测模式编码的编码单元的编码块中,则bs被设置为等于2。
87.否则,如果块边缘也是变换块边缘并且样点p0和q0在ciip_flag等于1的编码块中,则bs被设置为等于2。
88.否则,如果块边缘也是变换块边缘并且样点p0和q0在包括一个或多个非零变换系数等级的变换块中,则bs被设置为等于1。
89.否则,如果块边缘也是变换块边缘,cidx大于0,并且样点p0和q0在tu_joint_cbcr_residual_flag等于1的变换单元中,则bs被设置为等于1。
90.否则,如果包含样点p0的编码子块的预测模式不同于包含样点q0的编码子块的预测模式(即,一个编码子块在ibc预测模式下被编码,另一个编码子块在帧间预测模式下被编码),则将bs被设置为等于1。
91.否则,如果cidx等于0,edgeflags等于2,并且以下条件中的一个或多个为真,则bs被设置为等于1:
92.包含样点p0的编码子块和包含样点q0的编码子块都在帧内块复制(ibc)预测模式下被编码,并且在两个编码子块的预测中使用的块矢量的水平分量或垂直分量之间的绝对差以1/16亮度样点为单位大于或等于8。
93.对于包含样点p0的编码子块的预测,使用与包含样点q0的编码子块的预测不同的参考图片或不同数量的运动矢量。
94.一个运动矢量被用于预测包括样点p0的编码子块,一个运动矢量被用于预测包括样点q0的编码子块,并且使用的运动矢量的水平分量或垂直分量之间的绝对差以1/16亮度样点为单位大于或等于8。
95.使用两个运动矢量和两个不同的参考图片来预测包括样点p0的编码子块,使用针对相同的两个参考图片的两个运动矢量来预测包括样点q0的编码子块,并且在预测针对相同的参考图片的两个编码子块时使用的两个运动矢量的水平分量或垂直分量之间的绝对差以1/16亮度样点为单位大于或等于8。
96.针对相同的参考图片的两个运动矢量被用于预测包括样点p0的编码子块,针对相同的参考图片的两个运动矢量被用于预测包括样点q0的编码子块,并且以下两个条件均为真:
97.在预测两个编码子块时使用的列表0运动矢量的水平分量或垂直分量之间的绝对
差以1/16亮度样点为单位大于或等于8,或者在预测两个编码子块时使用的列表1运动矢量的水平分量或垂直分量之间的绝对差以1/16亮度样点为单位大于或等于8。
98.在预测包括样点p0的编码子块时使用的列表0运动矢量的水平分量或垂直分量与在预测包括样点q0的编码子块时使用的列表1运动矢量的水平分量或垂直分量之间的绝对差以1/16亮度样点为单位大于或等于8,或者在预测包括样点p0的编码子块时使用的列表1运动矢量的水平分量或垂直分量与在预测包括样点q0的编码子块时使用的列表0运动矢量的水平分量或垂直分量之间的绝对差以1/16亮度样点为单位大于或等于8。
99.否则,变量bs被设置为等于0。
100.在确定去块强度bs之后,将根据确定的去块强度对边缘应用不同的去块过程。
101.hevc针对亮度分量和色度分量两者使用8
×
8去块网格。在通用视频编解码的测试模型6(vtm6.0)中,引入了关于针对亮度边界的4
×
4网格的去块以处理来自矩形变换形状的块伪像。通过将待去块的样点的数量限制到垂直亮度边界的每一侧上的一个样点(其中一侧具有四个或更少样点的宽度)或限制到水平亮度边界的每一侧上的一个样点(其中一侧具有四个或更少样点的高度)来实现关于4
×
4网格的并行友好亮度去块。
102.在vvc中,去块滤波过程被应用在cu边界和变换子块边界处的4
×
4网格上,并且被应用在针对预测子块边界的8
×
8网格上。预测子块边界包括由子块时间运动矢量预测(sbtmvp)和仿射模式引入的预测单元边界,并且变换子块边界包括由子块变换(sbt)模式和帧内子分割(isp)模式以及归因于大cu的隐式拆分的变换而引入的变换单元边界。
103.对于sbt子块和isp子块,类似于hevc去块滤波器中的tu中的逻辑,当在跨越边缘的任一变换子块中存在非零系数时,去块滤波器被应用于tu边界。
104.对于sbtmvp子块和仿射预测子块,类似于hevc中的pu中的逻辑,考虑相邻预测子块的运动矢量之间的差和相邻预测子块的参考图片,将去块滤波器应用在8
×
8网格上。
105.变换块边界至多可利用变换边界的一侧上的五个样点被去块,变换边界也是编码块的一部分,其中使用sbtmvp或仿射来实现并行友好去块。距变换块边界四个样点的内部预测子块边界至多通过每一侧上的一个样点被去块,远离变换块边界八个样点的内部预测子块边界至多通过边界的每一侧上的两个样点被去块,并且其他内部预测子块边界至多通过边界的每一侧上的三个样点被去块。
106.总之,去块滤波过程被应用于图片的所有编码子块边缘和变换块边缘,除了以下类型的边缘:
107.在图片的边界处的边缘,
108.与loop_filter_across_subpic_enabled_flag[subpicidx]等于0的子图片的边界重合的边缘,
[0109]
当virtualboundariesdisabledflag等于1时与图片的虚拟边界重合的边缘,
[0110]
当loop_filter_across_tiles_enabled_flag等于0时与瓦片边界重合的边缘,
[0111]
当loop_filter_across_slices_enabled_flag等于0时与条带边界重合的边缘,
[0112]
与slice_deblocking_filter_disabled_flag等于1的条带的上边界或左边界重合的边缘,
[0113]
slice_deblocking_filter_disabled_flag等于1的条带内的边缘,
[0114]
不与亮度分量的4
×
4样点网格边界对应的边缘,
[0115]
不与色度分量的8
×
8样点网格边界对应的边缘,
[0116]
亮度分量内的以下边缘:边缘的两侧的intra_bdpcm_luma_flag等于1,
[0117]
色度分量内的以下边缘:边缘的两侧的intra_bdpcm_chroma_flag等于1,
[0118]
不是相关联的变换单元的边缘的色度子块的边缘。
[0119]
图7是示出根据本公开的一些实施方式的视频编解码器实施使用当前图片分辨率和参考图片分辨率确定去块强度的技术的示例性过程700的流程图。为便于描述,将过程700描述为由视频解码器(例如,图3的视频解码器30)执行。
[0120]
在vvc中,当对块边界(例如,图6的待去块边缘606)执行去块时,根据由待去块边界分开的两个块(例如,图6的块p 602a和块q 604a)之间的运动的差异来适配去块决策。引入半亮度样点的阈值以使能够去除源自在运动矢量中具有小差异的帧间预测单元之间的边界的块伪像。
[0121]
在启用rpr的情况下,当前图片与参考图片之间的分辨率可不同,并且由待去块边缘分开的两个块可使用不同的插值滤波器(例如,图6的块p 602a和块q 604a可使用不同的插值滤波器)。可对去块强度(bs)或运动矢量差的阈值的确定进行调整以适应由通过使用不同插值滤波器引起的可能差异。
[0122]
此外,在当前图片和参考图片之间的分辨率不同时,与当参考图片和当前图片具有相同图片尺寸时使用的插值滤波器相比,使用不同的插值滤波器。因此,可能需要对去块强度或运动矢量差的阈值的确定进行调整。
[0123]
过程700示出了确定去块强度的方法。视频解码器30解码(710)第一编码块(例如,图6的块p 602a)和第二编码块(例如,图6的块q 604a)。第二编码块与第一编码块在第一图片(例如,图6的图片600)上共享公共边缘(例如,待去块边缘606)。解码第一编码块和第二编码块包括重建针对第一编码块的第一残差块和针对第二编码块的第二残差块。
[0124]
视频解码器30确定(720)第一图片具有第一分辨率,与第一编码块(例如,图6的块p 602a)对应的第一参考图片具有第二分辨率,并且与第二编码块(例如,图6的块q 604a)对应的第二参考图片具有第三分辨率。
[0125]
在一些实施例中,第一分辨率、第二分辨率和第三分辨率可相同或不同。
[0126]
在一些实施例中,第一编码块和第二编码块使用不同的插值滤波器。
[0127]
视频解码器30部分地基于第一分辨率、第二分辨率和第三分辨率的值导出(730)去块强度(bs)值。
[0128]
在一些实施例中,当第二分辨率与第三分辨率不同时,视频解码器30将bs值设置为第一预定义值(例如,1)。在下面的表1中示出了集成到当前vvc规范中的去块强度导出中的该方法的示例,其中样点p0是第一编码块上的样点,样点q0是第二编码块上的样点:
[0129][0130]
表1
[0131]
在一些实施例中,根据确定第一分辨率不同于第二分辨率或第一分辨率不同于第三分辨率,视频解码器30将bs值设置为第二预定义值。第二预定义值可与第一预定义值相同或不同。
[0132]
在一些实施例中,根据确定第一分辨率不同于在与包括第一图片的视频序列对应的序列参数集(sps)中用信号发送的分辨率,视频解码器30将bs值设置为第三预定义值。第三预定义值可与第一预定义值或第二预定义值相同或不同。
[0133]
在一些实施例中,视频解码器30调整关于第一编码块与第二编码块之间的运动矢量差(mvd)的阈值。
[0134]
在一些实施例中,根据确定第二分辨率不同于第三分辨率,视频解码器30基于不同的mvd阈值导出bs值。该方法增加了对去块强度确定的附加检查。下面在表2中给出了集成到vvc规范中的该方法的示例:
[0135]
[0136]
[0137][0138]
表2
[0139]
在一些实施例中,根据确定第一分辨率不同于在与包括第一图片的视频序列对应的序列参数集(sps)中用信号发送的分辨率,视频解码器30基于不同的mvd阈值设置bs值。下面在表3中示出了合并到vvc规范中的该方法的示例:
[0140][0141]
表3
[0142]
视频解码器30然后根据导出的bs值使用去块滤波器对重建的第一残差块和重建的第二残差块执行环路滤波(740)。
[0143]
图8是示出根据本公开的一些实施方式的示例性上下文自适应二进制算术编解码(cabac)引擎的框图。
[0144]
上下文自适应二进制算术编码(cabac)是在许多视频编解码标准(例如,h.264/mpeg-4avc、高效视频编解码(hevc)和vvc)中使用的熵编解码形式。cabac基于算术编解码,具有一些创新和改变以使其适应视频编解码标准的需要。例如,cabac对二进制符号进行编解码,这保持低复杂度并且允许对任何符号的更频繁使用的比特进行概率建模。因为编解码模式通常是局部良好相关,所以基于局部上下文自适应地选择概率模型,允许更好地建模概率。最后,cabac通过使用量化的概率范围和概率状态来使用免乘法范围除法。
[0145]
cabac具有针对不同上下文的多个概率模式。它首先将所有非二进制符号转换为二进制。然后,对于每个二进制位(或称为比特),编解码器选择使用哪个概率模型,然后使用来自附近元素的信息来优化概率估计。最后应用算术编解码来压缩数据。
[0146]
上下文建模提供对编解码符号的条件概率的估计。利用合适的上下文模型,可通过根据当前符号附近的已编码的符号在不同概率模型之间进行切换来利用给定的符号间冗余进行编码。对数据符号进行编解码涉及以下阶段。
[0147]
二值化:cabac使用二进制算术编解码,这表示只有二进制决策(1或0)被编解码。非二进制值符号(例如变换系数或运动矢量)在算术编解码之前被“二值化”或转换为二进制代码。此过程类似于将数据符号转换为可变长度代码的过程,但二进制代码在传输之前
(由算术编码器)进一步被编码。针对二值化符号的每个二进制位(或“比特”)重复这些阶段。
[0148]
上下文模型选择:“上下文模型”是针对二值化符号的一个或多个二进制位的概率模型。该模型可根据最近编码的数据符号的统计从可用模型的选择中被选择。上下文模型存储每个二进制位为“1”或“0”的概率。
[0149]
算术编码:算术编码器根据选择的概率模型对每个二进制位进行编码。注意,对于每个二进制位(对应于“0”和“1”)只有两个子范围。
[0150]
概率更新:基于实际编码的值更新选择的上下文模型(例如,如果二进制位值是“1”,则增加频率计数“1”)。
[0151]
通过将每个非二进制语法元素值分解为二进制位的序列,cabac中每个二进制位值的进一步处理取决于相关联的编解码模式决策,其可被选择为常规模式或旁路模式。后者是针对二进制位选择的,这些二进制位假设是均匀分布,因此,对于这些二进制位,整个常规二进制算术编码(和解码)过程被简单地绕过。在常规编解码模式中,每个二进制位值通过使用常规二进制算术编解码引擎被编码,其中相关联的概率模型基于语法元素的类型和语法元素的二值化表示中的二进制位位置或二进制位索引(binidx)通过固定选择被确定,或者相关联的概率模型根据相关的边信息(例如,空间邻近者、分量、cu/pu/tu的深度或尺寸,或tu内的位置)从两个或多个概率模型中被自适应地选择。概率模型的选择被称为上下文建模。作为一个重要的设计决策,后一种情况通常仅被应用于最频繁观察到的二进制位,而其他通常不太频繁观察到的二进制位将使用联合的、典型零阶概率模型来处理。通过这种方式,cabac能够在子符号级上进行选择性的自适应概率建模,因此,为利用符号间冗余提供了一种有效的工具,显著降低了整体建模或学习成本。注意,对于固定情况和自适应情况,原则上,从一个概率模型到另一个概率模型的切换可发生在任何两个连续的常规编码二进制位之间。一般来说,cabac中上下文模型的设计反映了以下目的:在避免不必要的建模成本开销与在很大程度上利用统计相关性的冲突目标之间找到良好折衷。
[0152]
cabac中的概率模型的参数是自适应的,这意味着模型概率对二进制位的源的统计变化的自适应是在逐个二进制位的基础上按照后向自适应和同步的方式在编码器和解码器中执行;这个过程被称为概率估计。为此,cabac中的每个概率模型都可利用相关联的模型概率值p从126个不同状态中取一个状态,相关模型概率值p的范围在[0:01875;0:98125]区间内。每个概率模型的两个参数以7比特条目的形式存储在上下文存储器中:6比特用于代表最不可能符号(lps)的模型概率plps的63个概率状态中的每一个,并且1比特用于nmps,即最可能符号(mps)的值。
[0153]
在一个或更多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合实施。如果以软件实施,则功能可作为一个或更多个指令或代码存储在计算机可读介质上或通过计算机可读介质传输,并且由基于硬件的处理单元执行。计算机可读介质可包括计算机可读存储介质,其对应于诸如数据存储介质的有形介质,或对应于包括促进将计算机程序从一处传送到另一处(例如,根据通信协议)的任何介质的通信介质。以此方式,计算机可读介质通常可对应于(1)非暂态的有形计算机可读存储介质、或(2)通信介质,诸如信号或载波。数据存储介质可以是可由一个或更多个计算机或一个或更多个处理器访问以取回用于实现本技术中描述的实现方式的指令、代码和/或数据结构的任何可用介质。计算机程序
产品可包括计算机可读介质。
[0154]
在本文的实施方式的描述中使用的术语仅用于描述特定实施方式的目的,并不旨在限制权利要求的范围。如在实施方式的描述和所附权利要求中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,如本文使用的术语“和/或”是指并且涵盖相关联的所列项目中的一个或更多个的任何和所有可能的组合。将进一步理解,术语“包括”和/或“包括

的”当在本说明书中使用时,指定存在所陈述的特征、元件和/或组件,但不排除存在或添加一个或更多个其它特征、元件、组件和/或其群组。
[0155]
还将被理解,尽管本文可使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件与另一个元件区分开。例如,在不脱离实施方式的范围的情况下,第一电极可被称为第二电极,并且类似地,第二电极可被称为第一电极。第一电极和第二电极都是电极,但它们不是相同的电极。
[0156]
本技术的描述已经出于说明和描述的目的被呈现,并且不旨在穷举或限于所公开的形式的发明。受益于在前面的描述和相关联的附图中呈现的教导,许多修改、变化和替代实施方式对于本领域普通技术人员将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理、实际应用,并且使本领域的其它技术人员能够理解本发明的各种实施方式,并且最好地利用基本原理和具有适合于预期的特定用途的各种修改的各种实施方式。因此,将理解,权利要求的范围不限于所公开的实施方式的具体示例,并且修改和其它实施方式旨在被包括在所附权利要求的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献