掌桥专利:专业的专利平台
掌桥专利
首页

对视频信号进行解码或编码的方法、计算装置和存储介质

文献发布时间:2023-06-19 19:38:38


对视频信号进行解码或编码的方法、计算装置和存储介质

本申请是申请号为201980066515.2、申请日为2019年10月8日、题目为“对跨分量线性模型的简化”的发明申请的分案申请。

技术领域

本申请总体涉及视频数据编码和解码,并且具体地,涉及在视频数据编码和解码期间使用跨分量线性模型来重建色度块的方法和系统。

背景技术

各种电子装置(诸如数字电视、膝上型计算机或台式计算机、平板计算机、数码相机、数字记录装置、数字媒体播放器、视频游戏机、智能手机、视频电话会议装置、视频流装置等)都支持数字视频。电子装置通过实施如由MPEG-4、ITU-TH.263、ITU-TH.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至图4D是示出根据本公开的一些实施方式的如何将帧递归地四叉树分区为不同尺寸的多个视频块的框图。

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

图5B是示出根据本公开的一些实施方式的使用波前并行处理对图片的多个CTU的多个行进行多线程编码的框图。

图6A和图6B是分别示出根据本发明的一些实施方式的示例性重建亮度块和示例性相关联色度块的框图。

图7A至图7E示出根据本发明的一些实施方式的使用跨分量线性模型来推导亮度值与色度值之间的线性模型的各种方式。

图8是示出根据本发明的一些实施方式的视频编解码器实现使用跨分量线性模型以基于来自亮度块的重建亮度样点来重建色度块的色度样点的技术的示例性处理的流程图。

具体实施方式

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

图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服务器(例如,用于网站(website))、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将视频数据分区为视频块。此分区还可包括根据与视频数据相关联的预定义的划分结构(诸如四叉树结构)将视频帧分区为条带、并行块或其它较大编码单元(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可通过从正被编码的当前视频块的像素值减去预测块的像素值来形成像素差值,从而形成残差视频块。形成残差视频块的像素差值可包括亮度分量差和色度分量差两者。

作为如上所述的由运动估计单元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之间以进一步处理解码视频块。然后,将给定帧中的解码视频块存储在DPB92中,其中,DPB 92存储用于下一视频块的后续运动补偿的参考帧。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×16的CU 430和CU 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的预测亮度块之一中的亮度样点与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的运动信息作为当前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的情况下,也省略了运动矢量预测残差信号。

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

使用图5A作为示例并且假设候选列表具有固定长度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候选和成对候选组成。

提高现有技术编码标准所采用的编码效率的另一种方法是使用例如多核处理器将并行处理引入视频编码/解码处理中。例如,波前并行处理(WPP)已被引入到HEVC中,作为使用多个线程并行地对多行的CTU进行编码或解码的功能。

图5B是说明根据本公开的一些实施方式的使用波前并行处理(WPP)对图片的多个行的CTU进行多线程编码的框图。当启用WPP时,可以以波前方式并行处理多个行的CTU,其中,在两个邻近波前的开始部分之间可能存在两个CTU的延迟。例如,为了使用WPP对图片500进行编码,视频编解码器(诸如视频编码器20和视频解码器30)可将图片500的编码树单元(CTU)划分为多个波前,其中,每个波前对应于图片中的相应的一行CTU。视频编解码器可例如使用第一编解码器核或线程开始从顶部波前进行编码/解码。在视频编解码器已对顶部波前的两个或更多个CTU进行编码/解码之后,视频编解码器可例如使用第二并行编解码器核或线程开始与对顶部波前进行编码/解码并行地对第二顶部波前进行编码/解码。在视频编解码器已对第二顶部波前的两个或更多个CTU进行编码之后,视频编解码器可例如使用第三并行编解码器核或线程开始与对较高的波前进行编码/解码并行地对第三顶部波前进行编码/解码。该模式可沿图片500中的波前继续下去。在本公开中,视频编解码器正在使用WPP同时编码的一组CTU被称为“CTU组”。因此,当视频编解码器使用WPP对图片进行编码/解码时,CTU组中的每个CTU可属于图片的唯一波前,并且CTU可从相应上方波前中的CTU偏移图片的至少两列CTU。

视频编解码器可基于上方波前的前两个块的数据以及包括当前波前的第一编码块的条带的条带头的一个或更多个元素来初始化当前波前的上下文以执行当前波前的上下文自适应二进制算术编码(CABAC)。视频编解码器可在对后续CTU行上方的CTU行的两个CTU进行编码/解码之后,使用上下文状态执行后续波前(或CTU行)的CABAC初始化。换句话说,假设当前波前不是图片的顶部行的CTU,在开始对当前波前进行编码/解码之前,视频编解码器(或更具体地,视频编解码器的线程)可对当前波前上方的波前的至少两个块进行编码/解码。然后,视频编解码器可在对当前波前上方的波前的至少两个块进行编码/解码之后对当前波前的CABAC上下文进行初始化。在这个示例中,图片500的每个CTU行是分离的分区并且具有相关联的线程(WPP线程1、WPP线程2、…),使得图片500中的多个CTU行可被并行编码。

因为HMVP表的当前实施方式使用全局运动矢量(MV)缓冲器来存储先前重建的运动矢量,所以该HMVP表无法在上文结合图5B所描述的启用WPP的并行编码方案上实施。具体地,全局MV缓冲器由视频编码器的编码/解码处理的所有线程共享的事实阻碍了第一WPP线程(即,WPP线程1)之后的WPP线程开始,这是因为这些WPP线程必须等待HMVP表根据第一WPP线程(即,第一CTU行)的最后一个CTU(即,最右边的CTU)完成更新。

为了克服该问题,提出了由WPP线程共享的全局MV缓冲器被替换为多个CTU行专用缓冲器,使得CTU行的每个波前具有其自己的缓冲器以用于存储与当在视频编解码器处启用WPP时由相应WPP线程处理的CTU行对应的HMVP表。应注意,每个CTU行具有其自己的HMVP表,相当于在对CTU行的第一CU进行编码之前重置HMVP表。HMVP表重置是用于清除HMVP表中的由另一CTU行的编码生成的所有运动矢量。在一个实施方式中,重置操作是用于将HMVP表中的可用运动矢量预测值的大小设置为零。在又一实施方式中,重置操作可用于将HMVP表中的所有条目的参考索引设置为无效值,诸如-1。通过这样做,无论AMVP、合并和跳过这三种模式中的哪一种模式,特定波前内的当前CTU的MVP候选列表的构建取决于与处理该特定波前的WPP线程相关联的HMVP表。除了上述两个CTU延迟之外,不同波前之间不存在相互依赖性,并且与不同波前相关联的运动矢量候选项列表的构建可像图5B中描绘的WPP处理一样并行地进行。换句话说,在开始处理特定波前时,将HMVP表重置为空,而不影响另一WPP线程对CTU的另一波前的编码。在一些情况下,可在对每个单独CTU进行编码之前,将HMVP表重置为空。在这种情况下,HMVP表中的运动矢量限于特定CTU,并且可存在更高的可能性来将HMVP表内的运动矢量选择为特定CTU内的当前CU的运动矢量。

图6A和图6B是分别示出根据本公开的一些实施方式的示例性重建亮度块602和示例性相关联色度块620的框图。在此示例中,重建亮度块602的亮度样点(例如,亮度样点604)、顶部邻近亮度组606(例如,亮度样点608)和左侧邻近亮度组610(例如,亮度样点613)已在视频编解码处理期间被预测出。色度块620的色度样点将被预测,而顶部邻近色度组624的色度样点(例如,色度样点626)和左侧邻近色度组628的色度样点(例如,色度样点630)已在视频编解码处理期间被预测出。在一些实施例中,可通过将跨分量线性模型(CCLM)应用于重建亮度块602的对应下采样的亮度样点来预测色度块620的色度样点。下面结合图7A-图7E提供CCLM的推导和应用。

在一些实施例中,重建亮度块602和色度块620分别表示重建视频帧的一部分的不同分量。例如,在YCbCr颜色空间中,图像由亮度分量(Y)、蓝色差色度分量(Cb)和红色差色度分量(Cr)表示。重建亮度块602表示视频帧的一部分的亮度分量(即,亮度),并且色度块620表示视频帧的同一部分的色度分量(即,颜色)。重建亮度块602的亮度样点(例如,亮度样点604)具有表示视频帧的特定像素处的亮度的亮度值,并且色度样点(例如,色度样点622)具有表示视频帧的特定像素处的颜色的色度值。

在一些实施例中,重建亮度块602是具有块宽度为2M个亮度样点和块高度为2N个亮度样点的2M×2N块。M和N可以是相同的值(例如,重建亮度块602是正方形块)或不同的值(例如,重建亮度块602是非正方形块)。

因为人类视觉系统对色差比对亮度差更不敏感,所以色度子采样是常见的压缩技术。因此,重建亮度块602和色度块620可表示视频帧的同一部分,但以不同分辨率被编码。例如,视频帧可能已使用色度子采样方案(例如4:2:0或4:2:2)进行了编码,从而以比亮度信息更低的分辨率对色度信息进行编码。如图6A和图6B中所示,重建亮度块602以2M×2N的分辨率被编码,而色度块620以M×N的较小分辨率被编码。实际上,色度块620可具有其它分辨率,诸如2M×2N(例如,4:4:4全采样)、2M×N(例如,4:4:0子采样)、M×2N(例如,4:2:2子采样)和1/2M×2N(例如,4:1:1子采样)。

重建亮度块602紧邻顶部邻近亮度组606和左侧邻近亮度组610。顶部邻近亮度组和左侧邻近亮度组的尺寸可被显式地用信号传送或取决于重建亮度块602的尺寸。例如,顶部邻近亮度组606可具有2M个样点的宽度(例如,与重建亮度块602的宽度相同)或4M个样点的宽度(例如,重建亮度块602的宽度的两倍)和2个样点的高度。左侧邻近亮度组610可具有2个样点的宽度,具有2N或4N个样点的高度。在一些实施例中,顶部邻近亮度组606和左侧邻近亮度组610均是同一视频帧的已被重建的另一亮度块或多个亮度块的一部分。

色度块620紧邻顶部邻近色度组624和左侧邻近组628。顶部邻近色度组624和左侧邻近组628的尺寸可被显式地用信号发送或取决于色度块620的尺寸。例如,顶部邻近色度组624可具有1×M的尺寸,并且左侧邻近色度组628可具有N×1的尺寸。

在一些实施例中,可基于重建亮度样点(例如,亮度样点604)的亮度值来预测色度值(例如,色度块620的色度值)。例如,在视频帧的亮度值与对应色度值之间存在线性或准线性关系的假设下,视频编解码器可使用CCLM基于对应重建亮度值来预测色度值。通过这样做,视频编解码器可节省用于对色度值进行编码、发送编码的色度值和对编码的色度值进行解码的大量时间和带宽。为了使用CCLM从亮度样点预测色度样点,视频编解码器(1)推导色度样点与亮度样点之间的线性模型,并且(2)将线性模型应用于与待预测的色度样点对应的重建亮度样点。

在一些实施例中,由于亮度块和色度块具有不同的分辨率(例如,色度块已被子采样),所以视频编解码器首先对亮度样点执行下采样以生成与各个色度样点唯一对应的下采样亮度样点(例如,下采样亮度样点605、609和612)。在一些实施例中,在视频帧的高度方向和宽度方向两者上的六个邻近重建亮度样点用于生成下采样亮度样点(例如,所属领域中已知的加权平均方案,包括六抽头下采样等)。例如,顶部邻近亮度组内部的区域611内的六个重建亮度样点(分别由图中的小框表示)用于通过对其对应亮度值求平均来生成下采样亮度样点609,并且重建亮度块602内部的区域607内的六个重建亮度样点(分别由图中的小框表示)用于生成下采样亮度样点605。可选地,通过识别感兴趣区域中的重建亮度样点或使用不同形状区域中的不同数量的重建亮度样点来生成下采样亮度样点。

在一些实施例中,为了驱动线性模型,视频编解码器通过识别下采样亮度样点(例如,分别具有最大亮度值和最小亮度值的下采样亮度样点)中的最大值和最小值和对应重建色度样点并且通过最大数据点和最小数据点(例如,最大数据点包括具有最大亮度值的下采样亮度样点和对应重建色度样点,最小数据点包括具有最小亮度值的下采样亮度样点和对应重建色度样点)拟合线性模型(例如,Y=αX+β),来使用最大-最小方法。在推导出线性模型之后,视频编解码器将线性模型应用于重建亮度块602中的下采样亮度样点以生成色度块620的对应色度样点。视频编解码器可以以下方式获得最大数据点和最小数据点:

1.在一些实施例中,视频编解码器搜索下采样亮度样点组(例如,顶部邻近亮度组606和左侧邻近亮度组610中选择的一组下采样亮度样点)以识别最大下采样亮度样点和最小下采样亮度样点。然后,视频编解码器识别与最大下采样亮度样点和最小下采样亮度样点对应的先前重建色度样点(例如,顶部邻近色度组624和左侧邻近色度组628中的重建色度样点),如下文结合图7A和关于此实施方式的细节的相关描述所述。

2.在一些实施例中,视频编解码器搜索重建亮度样点组(例如,顶部邻近亮度组606和左侧邻近亮度组610中选择的一组重建亮度样点)以识别所选择的重建亮度样点组中的(i)具有最大亮度值的重建亮度样点和(ii)具有最小亮度值的重建亮度样点,而无需对所选择的重建亮度样点组执行下采样来识别最大重建亮度样点和最小重建亮度样点。然后,视频编解码器在与最大重建亮度样点和最小重建亮度样点相关联的区域(例如,使用所属领域中已知的包括六抽头下采样的加权平均方案的具有六个样点的区域等)中执行下采样,以生成作为最大重建亮度样点的下采样亮度样点(其可能是或可能不是精确的最大下采样亮度样点)和作为最小重建亮度样点的下采样亮度样点(其可能是或可能不是精确的最小下采样亮度样点)。然后,视频编解码器识别与被识别为最大重建亮度样点的下采样亮度样点对应的重建色度样点(例如,在顶部邻近色度组624和左侧邻近色度组628中)和与被识别为最小重建亮度样点的下采样亮度样点对应的重建色度样点,如下文结合图7B和关于此实施方式的细节的相关描述所述。

3.在一些实施例中,视频编解码器搜索重建色度样点组(例如,顶部邻近色度组624和左侧邻近色度组628中选择的色度样点)来识别最大重建色度样点和最小重建色度样点(例如,分别具有最大色度值和最小色度值的色度样点)。然后,视频编解码器识别与最大重建色度样点和最小重建色度样点对应的下采样亮度样点(例如,顶部邻近亮度组606和左侧邻近亮度组610中的下采样亮度样点),如下文结合图7C和关于此实施方式的细节的相关描述所述。

4.在一些实施例中,视频编解码器搜索下采样亮度样点组(例如,顶部邻近亮度组606和左侧邻近亮度组610中选择的一组下采样亮度样点)来识别预定义数量(例如,两个)的具有最大亮度值的下采样亮度样点和预定义数量(例如,两个)的具有最小亮度值的下采样亮度样点。然后,视频编解码器分别识别顶部邻近色度组624和左侧邻近色度组628中的重建色度样点,其中,顶部邻近色度组624和左侧邻近色度组628中的每一个分别对应于最大下采样亮度样点组和最小下采样亮度样点组中的相应一个。然后,视频编解码器对所识别的重建色度样点组和下采样亮度样点组中的每一个内的值(例如,色度值或亮度值)执行加权平均以生成最大平均色度值、最小平均色度值、最大平均下采样亮度值(例如,从最大下采样亮度样点组生成)和最小平均下采样亮度值(例如,从最小下采样亮度样点组生成),如下文结合图7D和图7E以及关于此实施方式的细节的相关描述所述。

图7A到图7E示出根据本公开的一些实施方式的使用CCML推导亮度值与色度值之间的线性模型的各种方法。具体地,曲线图上的每个圆形数据点(例如,点702a)表示一对水平轴上的重建色度样点和垂直轴上的对应重建亮度样点。例如,如果部分地使用重建亮度样点(例如,使用所属领域中已知的包括六抽头下采样的加权平均方案等)生成的下采样亮度样点对应于重建色度样点,则重建色度样点对应于重建亮度样点。曲线图上的每个正方形数据点(例如,点702b)表示一对水平轴上的重建色度样点和垂直轴上的对应下采样亮度样点。在一些实施例中,由于使用多个重建亮度样点来生成下采样亮度样点(例如,使用所属领域中已知的包括六抽头下采样的加权平均方案等),所以正方形数据点与多个圆形数据点相关联。虚线矩形(例如,虚线矩形703)指示所涵盖的正方形数据点和圆形数据点相关联(例如,与正方形数据点对应的下采样亮度样点是从与圆形数据点对应的重建亮度样点生成的)。出于说明性目的,在虚线矩形内仅示出了一个正方形数据点和一个圆形数据点,但是在实际实践中,每个虚线矩形可包括多个圆形数据点和一个正方形数据点。

在一些实施例中,视频编解码器搜索下采样亮度样点(例如,图6A的下采样亮度样点609和612)来识别具有最大亮度值和最小亮度值的下采样亮度样点和对应重建色度样点以推导线性模型。例如,在图7A中,正方形数据点702b表示选择的下采样亮度样点组的具有最小亮度值的下采样亮度样点和对应重建色度样点,并且正方形数据点704b表示具有最大亮度值的下采样亮度样点和对应重建色度样点。因此,通过点702b和点704b的线性拟合表示用于从下采样亮度样点(例如,图6A中的亮度块602的下采样亮度样点605)预测色度样点(例如,图6B中的色度块620的色度样点622)的线性模型。

生成下采样亮度样点的计算量很大,这是因为下采样亮度样点中的大部分在最大-最小方法中可能很少被使用到。在一些实施例中,代替执行所有亮度样点的下采样,视频编解码器直接搜索重建亮度样点(例如,图6A的重建亮度样点608和613)来识别具有最大亮度值和最小亮度值的重建亮度样点。如图7B中所示,圆形数据点702a表示具有最小亮度值的重建亮度样点和对应重建色度样点,并且圆形数据点706a表示具有最大亮度值的重建亮度样点和对应重建色度样点。在识别最小重建亮度样点和最大重建亮度样点(圆形数据点702a和706a)之后,视频编解码器然后在包括最小重建亮度样点和最大重建亮度样点的区域中执行下采样(例如,使用所属领域中已知的包括六抽头下采样的加权平均方案等)以生成对应的准最小下采样亮度样点和准最大下采样亮度样点(由图7B中的正方形数据点702b和706b表示,其可与图7A中的正方形数据点702b和704b相同或可不与图7A中的正方形数据点702b和704b相同)。通过图7B中的正方形数据点702b和706b的线性拟合表示用于从重建亮度样点预测色度样点的线性模型。与图7A中使用的方法相比,仅执行两个下采样操作。识别的最小下采样亮度样点与图7A中所使用的最小下采样亮度样点相同,而最大下采样的亮度样点与图7A中所使用的最大下采样亮度样点不同。

在一些实施例中,视频编解码器使用具有最大亮度值和最小亮度值的重建亮度样点来生成线性模型,并且放弃执行下采样。在图7C中,不对重建亮度样点执行下采样,并且通过直接拟合穿过圆形数据点702a和706a的线来生成线性模型。

在一些实施例中,代替搜索具有最大亮度值和最小亮度值的下采样亮度样点(或重建亮度样点),视频编解码器首先搜索具有最大色度值和最小色度值的重建色度样点。一旦识别到最大重建色度样点和最小重建色度样点,视频编解码器然后计算对应下采样亮度样点以生成线性模型。在图7D中,圆形数据点708a表示具有最小色度值的重建色度样点,并且圆形数据点704a表示具有最大色度值的重建色度样点。然后,视频编解码器生成通过正方形数据点708b(其表示部分地使用来自圆形数据点708a的重建亮度样点生成的下采样亮度样点)和正方形数据点704b(其表示部分地使用来自圆形数据点704a的重建亮度样点生成的下采样亮度样点)拟合的线性模型。

在一些实施例中,视频编解码器选择多个(例如,两个)具有最大亮度值的下采样亮度样点和多个(例如,两个)具有最小亮度值的下采样亮度样点。然后,视频编解码器搜索对应的最大重建色度样点组和最小重建色度样点组。视频编解码器在每个组内执行平均运算,并且使用平均亮度值和平均色度值来生成线性模型。在图7E中,使用最大的两个下采样亮度样点(正方形数据点710b和704b)和最小的两个下采样亮度样点(正方形数据点708b和正方形数据点702b)来生成线性模型。

图8是示出视频编解码器实现使用跨分量线性模型以基于来自亮度块的重建亮度样点来重建色度块的色度样点的技术的示例性处理700的流程图。处理700可在解码处理或编码处理期间实现。

作为第一步骤,视频编解码器对与色度块对应的亮度块进行重建(810)。色度块(例如,图6B的色度块620)将随后从重建亮度块被重建,并且可具有不同于重建亮度块(例如,图6A的重建亮度块602)的分辨率的不同分辨率。因为亮度块和色度块表示视频帧的同一部分的不同分量(例如,分别是亮度分量和颜色分量),所以亮度块对应于色度块。在一些实施例中,亮度块与多个先前重建邻近亮度样点(例如,图6A的顶部邻近亮度组606和左侧邻近亮度组610中的重建亮度样点)相邻,并且色度块与多个先前重建邻近色度样点(例如,图6A的顶部邻近色度组624和左侧邻近色度组628中的重建色度样点)相邻。注意,本申请中的术语“与...相邻”不限于“与...紧邻”,并且还涵盖编码块不与亮度样点/色度样点紧邻的情况。在一些实施例中,视频编解码器通过推导跨分量线性模型并且将该模型应用于重建亮度样点(或亮度块中的下采样重建亮度样点)来预测色度块中的色度样点。

接下来,视频编解码器按照预定义顺序搜索多个重建邻近亮度样点的子组,以识别至少一个最大或准最大亮度样点和至少一个最小或准最小亮度样点(820)。在一些实施例中,多个重建邻近亮度样点的子组涵盖所有多个重建邻近亮度样点。例如,视频编解码器可搜索邻近亮度样点中的所有亮度样点或多达预定义数量的邻近亮度样点。在一些实施例中,视频编解码器根据光栅扫描顺序、从左到右、从上到下或以这些顺序的任何组合来搜索邻近亮度样点。在一些实施例中,邻近亮度样点包括在空间上在亮度块的顶部上的那些样点(例如,顶部邻近色度组624)和在亮度块的左侧的那些样点(例如,左侧邻近色度组610)。视频编解码器可仅搜索顶部邻近色度样点或左侧邻近色度样点。

在识别到最大亮度样点和最小亮度样点之后,视频编解码器计算分别与所识别的最大亮度样点和最小亮度样点对应的至少一个下采样的最大亮度样点和至少一个下采样的最小亮度样点(830和840)。例如,视频编解码器可使用六抽头下采样技术来从六个邻近重建亮度样点(例如,以3×2方式或2×3方式排列)生成下采样亮度样点(例如,通过加权平均)。下采样的最大亮度样点和下采样的最小亮度样点分别对应于相应的重建色度样点(例如,分别为第一重建邻近色度样点和第二重建邻近色度样点)。例如,第一重建邻近色度样点和第二重建邻近色度样点可具有多个重建邻近色度样点。

在一些实现中,上述操作820、830和840以不同的顺序重新排列。例如,视频编解码器首先从多个重建邻近亮度样点计算一个或更多个下采样亮度样点,然后在计算的一个或更多个下采样亮度样点的子组之中进行搜索以分别识别至少一个下采样的最大亮度样点和至少一个下采样的最小亮度样点。下采样的最大亮度样点被选为对应于第一重建色度样点,并且下采样的最小亮度样点被选为对应于第二重建色度样点。

接下来,视频编解码器使用第一对下采样的最大亮度样点与第一重建邻近色度样点以及第二对下采样的最小亮度样点与第二重建邻近色度样点来生成线性模型(850)。在一些实施例中,视频编解码器通过识别两个数据点(例如,(第一重建邻近色度样点、下采样的最大亮度样点)和(第二重建邻近色度样点、下采样的最小亮度样点))使用最大-最小方法来生成线性模型并且通过两个数据点拟合线性方程。

在获得线性模型之后,视频编解码器从重建亮度块的亮度样点计算下采样亮度样点(860)。每个下采样亮度样点对应于色度块的色度样点。例如,视频编解码器可使用用于计算下采样的最大亮度样点和下采样的最小亮度样点的相同下采样技术来计算下采样亮度样点。

最后,视频编解码器通过将线性模型应用于对应的下采样亮度样点来预测色度块中的色度样点(870)。

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

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

还将被理解,尽管本文可使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件与另一个元件区分开。例如,在不脱离实施方式的范围的情况下,第一电极可被称为第二电极,并且类似地,第二电极可被称为第一电极。第一电极和第二电极都是电极,但它们不是相同的电极。

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

相关技术
  • 一种编码方法、解码方法及装置、计算机可读存储介质
  • 红外遥控的解码处理方法、装置及计算机可读存储介质
  • 一种路径解码方法、装置、计算机设备及存储介质
  • 数据流解码方法和系统、电子装置及计算机可读存储介质
  • 一种编码方法及装置、计算机存储介质
  • 对视频信号进行解码/编码的方法和计算机可读存储介质
  • 用于解码、编码视频信号的方法和计算机可读存储介质
技术分类

06120115984598