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

采用多模型线性模型的视频编码的制作方法

2022-02-22 02:26:35 来源:中国专利 TAG:


1.本发明实施例总体上涉及视频数据编码和解码,尤其涉及采用多模型线性模型的残差编码系统和方法。


背景技术:

2.如数字电视、膝上型或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏控制台、智能电话、视频电话会议设备、视频流媒体设备等各种电子设备都支持数字视频。所述电子设备通过执行由mpeg-4,itu-th.263,itu-th.264/mpeg-4第10部分“高级视频编码(avc)、高效视频编码(hevc)和通用视频编码(vvc)”标准定义的视频压缩/解压缩标准来传输、接收、编码、解码和/或存储数字视频数据。视频压缩通常包括执行空间(帧内)预测和/或时间(帧间)预测以减少或去除视频数据中固有的冗余。对于基于块的视频编码,视频帧被划分为一个或多个条带(slice),每个条带具有多个视频块,所述视频块也可以称为编码树单元(ctu)。每个ctu可以包含一个编码单元(cu)或者被递归地拆分为较小的cu,直到达到预设的最小cu的大小。每个cu(也称为叶子cu)包含一个或多个变换单元(tu),每个cu还包含一个或多个预测单元(pu)。每个cu可以采用帧内、帧间或ibc模式进行编码。使用相对于同一视频帧内的相邻块中的参考样本的空间预测对视频帧的帧内编码(i)条带中的视频块进行编码。视频帧的帧间编码(p或b)切片中的视频块可使用相对于同一视频帧内相邻块中的参考样本的空间预测或相对于其他先前的和/或未来的参考视频帧中的参考样本的时间预测。
3.基于先前编码参考块(如相邻块)的空间或时间预测产生针对待编码的当前视频块的预测块。查找参考块的过程可以通过块匹配算法来完成。表示待编码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。根据指向形成该预测块的参考帧中的参考块的运动向量,以及该残差块对帧间编码块进行编码。确定该运动向量的过程通常称为运动估计。根据帧内预测模式以及该残差块对帧内编码块进行编码。为了进一步压缩,将该残差块从像素域变换到变换域,如频域,从而产生残差变换系数,然后可以对其进行量化。可对最初以二维阵列排列的所述量化了的变换系数进行扫描以产生变换系数的一维向量,然后将其熵编码到视频比特流中以实现更多的压缩。
4.然后将已编码的该视频比特流保存在计算机可读存储介质(如闪速存储器)中,以由具有数字视频能力的另一个电子设备访问或者直接以有线或无线的方式传输到该电子设备。然后,该电子设备通过例如解析该已编码的视频比特流以从该比特流获得语义元素以及至少部分地基于从该比特流获得的语义元素从该已编码的视频比特流将该数字视频数据重建为其原始格式来进行视频解压缩(这是与上述视频压缩相反的过程),并且在该电子设备的显示器上呈现该重建的数字视频数据。
5.随着数字视频质量从高清到4kx2k甚至8kx4k,待编码/解码的视频数据量呈指数增长。如何在保持解码视频数据的图像质量的同时更有效地编码/解码视频数据是一种持续的挑战。


技术实现要素:

6.本技术描述了与视频数据编码和解码相关的实施方式,更具体地,涉及推导多模型线性模型(mmlm)并且基于同一编码单元的解码亮度分量来应用mmlm以预测编码单元的色度分量的系统和方法。
7.根据本发明的第一方面,在计算设备执行解码视频数据的方法,该计算设备具有一个或多个处理器和存储多个程序的存储器,所述程序由所述一个或多个处理器执行。计算设备通过执行以下操作来执行解码视频数据的方法:接收对应于色度块的亮度块,其中,该亮度块由多个重建相邻亮度样本围绕,其中,该色度块由多个重建相邻色度样本围绕;从多个重建相邻亮度样本和多个重建相邻色度样本中选择参考亮度样本组和参考色度样本组,其中,每个参考亮度样本对应于相应的参考色度样本;从该参考亮度样本组计算阈值亮度值并且从该参考色度样本组计算阈值色度值;从该参考亮度样本组确定最大亮度值和最小亮度值,其中,该阈值亮度值大于该最小亮度值且小于该最大亮度值;生成包括第一线性模型和第二线性模型的多模型线性模型,该第一线性模型介于该最小亮度值与该阈值亮度值之间,且该第二线性模型介于该阈值亮度值与该最大亮度值之间;以及使用该多模型线性模型根据该亮度块构建该色度块。
8.根据本发明的第二方面,计算设备包括一个或多个处理器、存储器和存储在该存储器中的多个程序。当由一个或多个处理器执行时,所述程序使得该计算设备执行如上所述的操作。
9.根据本发明的第三方面,一种非暂时性计算机可读存储介质,其存储由具有一个或多个处理器的计算设备执行的多个程序。在由一个或多个处理器执行时,所述程序使得该计算设备执行如上所述的操作。
附图说明
10.所包括的附图用以提供对实施方式的进一步理解并且结合在本文中并构成说明书的一部分,图示了所描述的实施方式并且与说明书一起用于解释基本原理。相同的附图标记指代相应的部分。
11.图1是示出了根据本发明的一些实施方式的示例性视频编码和解码系统的框图;
12.图2是示出了根据本发明的一些实施方式的示例性视频编码器的框图;
13.图3是示出了根据本发明的一些实施方式的示例性视频解码器的框图;
14.图4a-4d是示出了根据本发明的一些实施方式的帧如何被递归四叉树分割成不同大小的多个视频块的框图;
15.图5a是示出了根据本发明的一些实施方式的待编码的当前cu的空间相邻且时间上并置的块位置的框图;
16.图5b是示出了根据本发明的一些实施方式的使用波前并行处理对图片的多行ctu进行多线程编码的框图;
17.图6a和6b分别是示出了根据本发明的一些实施方式的示例性先前重建的亮度块602和待解码的示例性关联色度块620的框图;
18.图7a-7d是示出了根据本发明的一些实施方式的示例性过程的点列图,视频编码器通过该过程实现导出多模型线性模型和将该多模型线性模型用于预测编码单元的色度
样本的技术;
19.图8是示出了根据本发明的一些实施方式的示例性过程的流程图,视频编码器通过该过程实现导出多模型线性模型和将该多模型线性模型用于预测编码单元的色度样本的技术。
具体实施方式
20.现在将详细参考具体实施方式,其示例在附图中示出。在下面的详细描述中,阐述了许多非限制性的具体细节以帮助理解在此呈现的主题。但是对于本领域的普通技术人员来说显而易见的是,在不脱离权利要求的范围的情况下可以使用各种替代方案,并且可以在没有具体细节的情况下实践主题。例如,对于本领域的普通技术人员来说显而易见的是,这里呈现的主题可以在具有数字视频能力的多种类型的电子设备上实现。
21.图1是示出了根据本发明的一些实施方式的用于并行地编码和解码视频块的示例性系统10的框图。如图1所示,系统10包括源设备12,其生成并编码待由目标设备14在稍后时间进行解码的视频数据。源设备12和目标设备14可包括多种电子设备中的任一种,包括台式计算机或膝上型电脑、平板电脑、智能手机、机顶盒、数字电视、摄像机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备,等等。在一些实施方式中,源设备12和目标设备14配备有无线通信能力。
22.在一些实施方式中,目标设备14可经由链路16接收待解码的编码视频数据。链路16可包括能够将编码视频数据从源设备12移动到目标设备14的任何类型的通信介质或设备。在一个示例中,链路16可包括通信介质以使得源设备12能够将编码视频数据实时地直接传输到目标设备14。编码视频数据可根据诸如无线通信协议之类的通信标准被调制,并被传输到目标设备14。该通信介质可包括任何无线或有线通信介质,如射频(rf)频谱或一种或多种物理传输线路。该通信介质可形成基于分组的网络,如局域网、广域网或如因特网的全球网的一部分。该通信介质可包括路由器、交换机、基站或其他任何可能有助于促进从源设备12到目标设备14的通信的设备。
23.在其他的一些实施方式中,编码视频数据可以从输出接口22被传输到存储设备32。随后,目标设备14可通过输入接口28访问存储设备32中的编码视频数据。存储设备32可包括各种分布式或本地访问的数据存储介质中的任何一种,如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪存、易失性或非易失性存储器,或其他任何适当的用于存储已编码的视频数据的数字存储介质。在进一步的示例中,存储设备32可对应于可以保存源设备12生成的编码视频数据的文件服务器或另一种中间存储设备。目标设备14可通过流传输或下载从存储设备32中访问已存储的视频数据。该文件服务器可以是能够存储编码视频数据并将编码视频数据传输到目标设备14的任何类型的计算机。示例性文件服务器包括网络(web)服务器(例如,用于网站)、ftp服务器、网络附加存储(nas)设备或本地磁盘驱动器。目标设备14可以通过任何标准数据连接访问编码视频数据,所述标准数据连接包括适用于访问存储在文件服务器上的编码视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等),或二者的组合。来自存储设备32的已编码的视频数据的传输可以是流传输、下载传输或二者的组合。
24.如图1所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可包
括诸如视频捕获设备之类的源,如摄像机、包含先前捕获的视频的视频档案、用于从视频内容提供商接收视频的视频流界面和/或用于将计算机图形数据生成为源视频的计算机图形系统或所述源的组合。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目标设备14可形成相机电话或视频电话。然而,本技术中描述的实施方式通常可适用于视频编码,并且可适用于无线和/或有线应用。
25.捕获的、预先捕获的或计算机生成的视频可由视频编码器20编码。编码视频数据可通过源设备12的输出接口22直接传输到目标设备14。编码视频数据也可以(或替代地)被存储到存储设备32上以由目标设备14或其他设备以后访问,以进行解码和/或回放。输出接口22还可包括调制解调器和/或发射器。
26.目标设备14包括输入接口28、视频解码器30和显示设备34。输入接口28可包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16传送的或在存储设备32上提供的编码视频数据可包括由视频编码器20生成的供视频解码器30在对视频数据进行解码时使用的多种语义元素。所述语义元素可包括在在通信介质上传输的、在存储介质上存储的或在文件服务器上存储的已编码的视频数据内。
27.在一些实施方式中,目标设备14可包括显示设备34,该显示设备34可以是集成的显示设备和被配置为与目标设备14进行通信的外部显示设备。显示设备34向用户显示解码视频数据,并且可包括多种显示设备中的任一种,例如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或其他类型的显示设备。
28.视频编码器20和视频解码器30可根据专有或行业标准(如vvc、hevc、mpeg-4第10部分,高级视频编码(avc),或此类标准的延伸)进行操作。应理解本技术不限于特定的视频编码/解码标准,可以适用于其他视频编码/解码标准。通常设想源设备12的视频编码器20可被配置为根据当前或未来的标准中的任何一个来编码视频数据。类似地,通常还设想目标设备14的视频解码器30可被配置为根据当前或未来的标准中的任何一个来解码视频数据。
29.视频编码器20和视频解码器30均可以实现为多种适当的编码器电路中的任何一种,例如一个或多个微处理器、数字信号处理器(dsp)、应用型专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。当部分以软件实现时,电子设备可将用于软件的指令存储在适当的非暂时性计算机可读介质中并使用一个或多个处理器在硬件中执行所述指令来执行本发明中公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可包括在一个或多个编码器或解码器中,其中的任何一个可以被集成为相应设备中的组合编码器/解码器(codec)的一部分。
30.图2是示出了根据本技术中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可执行视频帧内的视频块的帧内和帧间预测编码。帧内预测编码依赖于空间预测来减少或消除给定视频帧或图片内视频数据中的空间冗余。帧间预测编码依赖于时间预测来减少或消除视频序列的相邻视频帧或图片内的视频数据中的时间冗余。
31.如图2所示,视频编码器20包括视频数据存储器40、预测处理单元41、解码图片缓存器(dpb)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41还包括运动估计单元42、运动补偿单元44、分割单元45、帧内预测处理单元46和帧内块复制(bc)单元48。在一些实施方式中,视频编码器20还包括用于视频块重建的逆量化单元58、逆
变换处理单元60和加法器62。去块滤波器(未示出)可位于加法器62与dpb64之间以对块边界进行滤波,以从重建的视频中消除块效应伪像。除了去块滤波器之外,还可以使用环路滤波器(未示出)来对加法器62的输出进行滤波。视频编码器20可采用固定或可编程硬件单元的形式,或者可在示出的一个或多个固定的或可编程硬件单元中被划分。
32.视频数据存储器40可存储由视频编码器20的各部件编码的视频数据。视频数据存储器40中的视频数据可以例如从视频源18获得。dpb64是存储参考视频数据以用于由视频编码器20对视频数据进行编码(例如以帧内或帧间预测编码模式)的缓存器。视频数据存储器40和dpb64可由多种存储器设备中的任一种形成。在各种示例中,视频数据存储器40可以与视频编码器20的其他部件在芯片上,或者相对于所述部件在芯片外。
33.如图2所示,在接收视频数据之后,预测处理单元41内的分割单元45将视频数据划分成视频块。该划分还可包括根据预定义的分割结构(例如与视频数据相关联的四叉树结构)将视频帧划分为条带、图块(tile)或其他更大的编码单元(cu)。该视频帧可被划分为多个视频块(或称为图块的视频块组)。预测处理单元41可基于误差结果(如编码率和失真水平)为当前的视频块从多个可能的预测编码模式中选择一个预测编码模式,该预测编码模式如多个帧内预测编码模式中的一个或多个帧间预测编码模式中的一个。预测处理单元41可将由此得到的帧内或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重建该编码块以随后用作参考帧的一部分。预测处理单元41还向熵编码单元56提供如运动向量、帧内模式指示符、分割信息和其他此类语义信息等语义元素。
34.为了为当前视频块选择适当的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可相对于与待编码的当前块同一帧中的一个或多个相邻块执行当前视频块的帧内预测编码,以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或多个参考帧中的一个或多个预测块执行对当前视频块的帧间预测编码,以提供时间预测。视频编码器20可以执行多个编码通道,例如,为视频数据的每个块选择适当的编码模式。
35.在一些实施方式中,运动估计单元42根据视频帧序列内的预定型式通过生成运动向量来为当前视频帧确定帧间预测模式,该运动向量指示当前视频帧内的视频块的预测单元(pu)相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动向量的过程,其估计视频块的运动。运动向量,例如,可指示当前视频帧或图片内的视频块的pu相对于参考帧内的、相对于在当前视频帧内被编码的当前块(或其他已编码单元)的预测块(或其他已编码单元)的位移。该预定型式可将该序列中的视频帧指定为p帧或b帧。帧内bc单元48可以以类似于由运动估计单元42确定运动向量以进行帧间预测的方式类似的方式确定用于帧内bc编码的向量,例如块向量,或者可以利用运动估计单元42来确定该块向量。
36.预测块是在像素差方面被认为与待编码视频块的pu紧密匹配的参考帧的块,像素差可以由绝对差之和(sad)、平方差之和(ssd)或其他差值度量确定。在一些实施方式中,视频编码器20可以计算存储在dpb64中的参考帧的亚整数像素位置的值。例如,视频编码器20可以插入该参考帧的四分之一像素位置、八分之一像素位置或其他分数的像素位置的值。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索并输出具有分数像素精度的运动向量。
37.运动估计单元42通过将pu的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)中选择的参考帧的预测块的位置进行比较来计算帧间预测编码帧中视频块的pu的运动向量,第一参考帧列表和第二参考帧列表中的每一个标识存储在dpb64中的一个或多个参考帧。运动估计单元42将计算的运动向量发送到运动补偿单元44,然后发送到熵编码单元56。
38.由运动补偿单元44执行的运动补偿可涉及基于由运动估计单元42确定的运动向量来获取或生成预测块。在接收到当前视频块的pu的运动向量后,运动补偿单元44可以在参考帧列表之一中定位运动向量所指向的预测块,从dpb64取得预测块,并将预测块转发到加法器50。然后,加法器50通过从被编码的当前视频块的像素值中减去由运动补偿单元44提供的预测块的像素值来形成像素差值的残差视频块。形成残差视频块的所述像素差值可包括亮度差分量或色度差分量或包括两者。运动补偿单元44还可产生与视频帧的视频块相关联的语义元素以供视频解码器30在对视频帧的视频块进行解码时使用。所述语义元素可包括如定义用于识别该预测块的运动向量的语义元素、指示该预测模式的任何标志或本文描述的其他任何语义信息。应注意,运动估计单元42和运动补偿单元44可高度集成,但出于概念目的而分别图示。
39.在一些实施方式中,帧内bc单元48可以以与上文结合运动估计单元42和运动补偿单元44描述的方式类似的方式生成向量并获取预测块,但所述预测块与正在被编码的当前块位于同一帧内,并且所述向量被称为块向量而不是运动向量。具体而言,帧内bc单元48可确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内bc单元48可以例如在单独的编码通道期间使用各种帧内预测模式对当前块进行编码,并且通过率失真分析来测试其性能。接下来,帧内bc单元48可以在各种经测试的帧内预测模式中选择适当的帧内预测模式来使用并相应地生成帧内模式指示符。例如,帧内bc单元48可以使用针对各种经过测试的帧内预测模式的率失真分析来计算率失真值,并且在经过测试的模式中选择具有最佳率失真特性的帧内预测模式作为适当的帧内预测模式来使用。率失真分析通常确定编码块与原始未编码块之间的失真(或误差)量以及用于产生编码块的比特率(即比特数)。帧内bc单元48可根据各个编码块的失真和速率计算比率以确定哪种帧内预测模式展示出块的最佳速率失真值。
40.在其他示例中,帧内bc单元48可全部或部分地使用运动估计单元42和运动补偿单元44以根据本文描述的实施方式来执行用于帧内bc预测的此类功能。在任一情况下,对于帧内块复制,预测块可以是就像素差而言,被认为与待编码块紧密匹配的块,所述像素差由绝对差之和(sad)、平方之和(ssd)或其他差值度量来确定,并且该预测块的识别可包括亚整数像素位置的值的计算。
41.无论预测块是根据帧内预测来自同一帧,还是根据帧间预测来自不同帧,视频编码器20都可以通过从被编码的当前视频块的像素值中减去该预测块的像素值来形成残差视频块,从而形成像素差值。形成该残差视频块的所述像素差值可包括亮度分量差和色度分量差。
42.如上文描述的,帧内预测处理单元46可以对当前视频块进行帧内预测,作为由运动估计单元42和运动补偿单元44执行的帧间预测、或者由帧内bc单元48执行的帧内块复制预测的替代方案。具体而言,帧内预测处理单元46可确定用于对当前块进行编码的帧内预
测模式。为此,帧内预测处理单元46可以例如在单独的编码通道期间使用各种帧内预测模式对当前块进行编码,并且帧内预测处理单元46(或在一些示例中为模式选择单元)可从经过测试的帧内预测模式中选择适当的帧内预测模式来使用。帧内预测处理单元46可向熵编码单元56提供指示块的所选帧内预测模式的信息。熵编码单元56可对指示比特流中的对所选帧内预测模式的信息进行编码。
43.在预测处理单元41通过帧间预测或帧内预测确定当前视频块的预测块之后,加法器50通过从当前视频块中减去该预测块来形成残差视频块。该残差块中的残差视频数据可包括在一个或多个变换单元(tu)中并被提供给变换处理单元52。变换处理单元52使用诸如离散余弦变换(dct)或概念上类似的变换来将残差视频数据变换为残差变换系数。
44.变换处理单元52可将所得到的变换系数发送到量化单元54。量化单元54将所述变换系数量化以进一步降低比特率。量化过程还可以减小与系数中的一些或所有系数相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54然后可对包含经过量化的变换系数的矩阵进行扫描。可替代地,熵编码单元56可进行这种扫描。
45.在量化之后,熵编码单元56使用例如上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)、基于语义的上下文自适应二进制算术编码(sbac)、概率区间分区熵(pipe)编码或其他熵编码方法或技术将量化的变换系数熵编码成视频比特流。然后这种编码后的比特流可被传送到视频解码器30,或存档在存储装置32中以供以后传送到视频解码器30或由视频解码器30取得。熵编码单元56还可对用于被编码的当前视频帧的所述运动向量和其他语义元素进行熵编码。
46.逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换以重建像素域中的残差视频块,以生成用于预测其他视频块的参考块。如上所述,运动补偿单元44可从dpb64中存储的帧的一个或多个参考块生成运动补偿预测块。运动补偿单元44还可将一个或多个内插滤波器应用于该预测块以计算用于运动估计的亚整数像素值。
47.加法器62将该重建的残差块加到运动补偿单元44产生的该运动补偿预测块相加以产生存储在dpb64中的参考块。该参考块然后可由帧内bc单元48、运动估计单元42以及运动补偿单元44用作预测块以对后续视频帧中的另一个视频块进行帧间预测。
48.图3是示出了根据本技术的一些实施方式的示范性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、加法器90和dpb92。预测处理单元81还包括运动补偿单元82、帧内预测处理单元84和帧内bc单元85。视频解码器30执行解码过程,该解码过程通常与上文结合图2所描述的与视频编码器20有关的编码过程是相反的。例如,运动补偿单元82可基于从熵解码单元80接收的运动向量生成预测数据,而帧内预测单元84可基于从熵解码单元80接收的帧内预测模式指示符生成预测数据。
49.在一些示例中,视频解码器30的单元可以被分配执行本发明的实施方式的任务。此外,在一些示例中,本发明的实施方式可以在视频解码器30的一个或多个单元之间划分。例如,帧内bc单元85可以单独地或与视频解码器30的其他单元(如运动补偿单元82、帧内预测处理单元84和熵解码单元80)组合起来执行本发明的实施方式。在一些示例中,视频解码器30可以不包括帧内bc单元85并且帧内bc单元85的功能可由预测处理单元81的其他组件(如运动补偿单元82)执行。
50.视频数据存储器79可以存储待由视频解码器30的其他部件进行解码的视频数据,如编码视频比特流。可以经由对视频数据进行有线或无线网络传送或者通过访问物理数据存储介质(例如,闪存驱动器或硬盘)从存储设备32、本地视频源(如相机)获得存储在视频数据存储器79中的视频数据。视频数据存储器79可包括存储来自编码视频比特流的编码视频数据的编码图片缓存器(cpb)。视频解码器30的解码图片缓存器(dpb)92存储参考视频数据以在视频解码器30解码(如以帧内或帧间预测编码模式)视频数据时使用。视频数据存储器79和dpb92可由多种存储器设备中的任一种形成,如动态随机存取存储器(dram),包括同步dram(sdram)、磁阻ram(mram)、电阻ram(rram)或其他类型的存储设备。出于例示目的,在图3中将视频数据存储器79和dpb92示为视频解码器30的两个不同组件。但是对于本领域中普通的技术人员显而易见的是,视频数据存储器79和dpb92可以由同一存储器设备或单独的存储器设备提供。在一些示例中,视频数据存储器79可与视频解码器30的其他组件在芯片上,或者相对于所述组件在芯片外。
51.在该解码过程期间,视频解码器30接收表示编码视频帧的视频块和相关联的语义元素的编码视频比特流。视频解码器30可以在视频帧级别和/或视频块级别接收所述语义元素。视频解码器30的熵解码单元80对该比特流进行熵解码以生成量化系数、运动向量或帧内预测模式指示符以及其他语义元素。熵解码单元80然后将所述运动向量和其他的所述语义元素转发到预测处理单元81。
52.当该视频帧被编码为帧内预测编码(i)帧或用于其他类型帧中的帧内编码预测块时,预测处理单元81的帧内预测处理单元84可基于通过信号传输的帧内预测模式和来自当前帧的先前解码块的参考数据来为当前视频帧的视频块生成预测数据。
53.当该视频帧被编码为帧间预测编码(即,b或p)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的所述运动向量和其他语义元素为当前视频帧的视频块产生一个或多个预测块。每个预测块可从所述参考帧列表中的一个的参考帧产生。视频解码器30可基于存储在dpb92中的参考帧使用默认的构建技术来构建参考帧列表,即列表0和列表1。
54.在一些示例中,在根据本文所描述的帧内bc模式编码该视频块时,预测处理单元81的帧内bc单元85基于从熵解码单元80接收的块向量和其他语义元素为当前的视频块产生预测块。所述预测块可以在与由视频编码器20定义的当前视频块相同的图片的重建区域内。
55.运动补偿单元82和/或帧内bc单元85通过对所述运动向量和其他的语义元素进行解析来确定用于当前视频帧的视频块的预测信息,然后使用该预测信息来产生被解码的当前视频块的预测块。例如,运动补偿单元82使用所接收的语义元素中的一些来确定用于编码该视频帧的视频块的预测模式(如帧内或帧间预测)、帧间预测帧类型(如b或p)、帧的参考帧列表中的一个或多个参考帧列表的构造信息、帧的每个帧间预测编码视频块的运动向量、帧的每个帧间预测编码视频块的帧间预测状态以及用于对当前视频帧中的视频块进行解码的其他信息。
56.类似地,帧内bc单元85可以使用接收到的语义元素中的一些(如标志)来确定当前视频块是使用以下各项预测的:帧内bc模式、关于帧的视频块处于该重建区域内并应存储在dpb92中的构造信息、用于该帧的每个帧内bc预测视频块的块向量、用于该帧的每个帧内
bc预测视频块的帧内bc预测状态以及用于解码当前视频帧中的所述视频块的其他信息。
57.运动补偿单元82还可以在所述视频块的编码期间如视频编码器20一样使用所述内插滤波器来进行内插以计算用于参考块的亚整数像素的内插值。在这种情况下,运动补偿单元82可从所接收的语义元素来确定视频编码器20所使用的所述内插滤波器,并且使用所述内插滤波器来产生预测块。
58.逆量化单元86使用由视频编码器20针对视频帧中的每个视频块计算的用于确定量化程度的相同的量化参数,对在比特流中提供的并且由熵解码单元80进行熵解码的经量化的变换系数进行逆量化。逆变换处理单元88将逆变换(如逆dct、逆整数变换或概念上类似的逆变换过程)应用于所述变换系数,以重建该像素域中的残差块。
59.在运动补偿单元82或帧内bc单元85基于所述向量和其他语义元素生成用于当前视频块的预测块之后,加法器90通过将来自逆变换处理单元88的残差块和由运动补偿单元82和帧内bc单元85生成的相应预测块相加来重建用于当前视频块的解码视频块。环内滤波器(未图示)可以位于加法器90与dpb92之间以对该解码视频块进行进一步的处理。然后将给定帧中的解码视频块存储在dpb92中,dpb92存储用于以后的视频块的后续运动补偿的参考帧。dpb92或与dpb92分开的存储器设备也可以存储解码视频以供稍后呈现在如图1的显示设备34等显示设备上。
60.在典型的视频编码过程中,视频序列通常包括帧或图片的有序集合。每个帧可包括三个样本阵列,表示为sl、scb和scr。sl是亮度样本的二维阵列。scb是cb色度样本的二维阵列。scr是cr色度样本的二维阵列。在其他示例下,帧可以是单色的,并且因此仅包括亮度样点的一个二维阵列。
61.如图4a所示,视频编码器20(或更具体地来讲,分割单元45)通过首先将帧划分为一组编码树单元(ctu)来生成该帧的编码表示。视频帧可包括从左到右和从上到下的光栅扫描顺序连续排序的整数个ctu。每个ctu是最大的逻辑编码单元并且该ctu的宽度和高度由视频编码器20在序列参数集中用信号通知,以使视频序列中的所有ctu具有相同的大小,即128
×
128、64
×
64、32
×
32和16
×
16中的一个。但需要说明的是,本技术并不一定限于特定的大小。如图4b所示,每个ctu可包括亮度样本的一个编码树块(ctb)、色度样本的两个对应编码树块以及用于对所述编码树块的样本进行编码的语义元素。语义元素描述像素的编码块的不同类型的单元的属性以及如何可以在视频解码器30处重构视频序列,所述语义元素包括帧间或帧内预测、帧内预测模式、运动向量以及其他参数。在单色图片或具有三个单独色彩平面的图片中,ctu可包括单个编码树块和用于对该编码树块的样本进行编码的语义元素。编码树块可以是n
×
n个样本块。
62.为了实现更好的性能,视频编码器20可以对该ctu的所述编码树块递归地执行树分割,例如二叉树分割、四叉树分割或二者的组合,并将该ctu分割成较小的编码单元(cu)。如图4c所示,首先将64
×
64的ctu400分成四个较小的cu,每个cu的块大小为32
×
32。在这四个较小的cu中,cu410和cu420均按块大小各自划分成四个16
×
16的cu。两个16
×
16的cu430和440分别按块大小进一步划分为四个8
×
8的cu。图4d示出了一种四叉树数据结构,图中示出了如图4c中描绘的ctu400的分区过程的最终结果,该四叉树的每个叶子节点对应相应大小在32
×
32到8
×
8范围内的cu。类似于图4b中所描绘的ctu,每个cu可以包括亮度样点的编码块(cb)和相同大小的帧的色度样点的两个对应的编码块,以及用于对编码块的样点进行
编码的语义元素。在单色图片或具有三个单独的色彩平面的图片中,cu可以包括单个编码块和用于对编码块的样点进行编码的语义结构。
63.在一些实施方式中,视频编码器20可进一步将cu的编码块分割成一个或多个m
×
n的预测块(pb)。预测块是样本的矩形(正方形或非正方形)块,该块被应用相同的(帧间或帧内)预测。cu的预测单元(pu)可包括亮度样本的预测块、色度样本的两个对应预测块以及用于所述预测块进行预测的语义元素。在单色图片或具有三个单独色彩平面的图片中,pu可包括单个预测块和用于对该预测块进行预测的语义结构。视频编码器20可以为该cu的每个pu的亮度、cb和cr预测块生成预测亮度、cb和cr块。
64.视频编码器20可使用帧内预测或帧间预测来生成用于pu的预测块。如果视频编码器20使用帧内预测来生成pu的预测块,则视频编码器20可基于与该pu相关联的帧的解码样本来生成pu的预测块。如果视频编码器20使用帧间预测来生成pu的预测块,则视频编码器20可基于除与pu相关联的帧之外的一个或多个帧的解码样本来生成pu的预测块。
65.在视频编码器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编码块中的对应样本之间的差。
66.此外,如图4c所示,视频编码器20可采用四叉树分割来将cu的亮度、cb和cr残差块分解为一个或多个亮度、cb和cr变换块。变换块是样本的矩形(正方形或非正方形)块,该块被应用相同的变换。cu的变换单元(tu)可包括亮度样本的变换块、色度样本的两个对应变换块以及用于对所述变换块样本进行变换的语义元素。因此,cu的每个tu可与亮度变换块、cb变换块和cr变换块相关联。在一些示例中,与该tu相关联的亮度变换块可以是该cu的亮度残差块的子块。该cb变换块可以是该cu的cb残差块的子块。该cr变换块可以是该cu的cr残差块的子块。在单色图片或具有三个单独色彩平面的图片中,tu可包括单个变换块和用于对该变换块的样本进行变换的语义结构。
67.视频编码器20可将一个或多个变换应用于tu的亮度变换块以生成该tu的亮度系数块。系数块可以是多个变换系数的二维阵列。变换系数可以是标量。视频编码器20可将一个或多个变换应用于tu的cb变换块以生成用于该tu的cb系数块。视频编码器20可将一个或多个变换应用于tu的cr变换块以生成用于该tu的cr系数块。
68.在生成系数块(如亮度系数块、cb系数块或cr系数块)之后,视频编码器20可将该系数块量化。量化通常是指对变换系数进行量化以可能减少用于表示变换系数的数据量从而提供进一步压缩的过程。在视频编码器20将系数块量化之后,视频编码器20可对指示经量化的变换系数的语义元素进行熵编码。例如,视频编码器20可对指示经量化的变换系数的语义元素进行上下文自适应二进制算术编码(cabac)。最后,视频编码器20可以输出包括形成编码帧和相关联数据的表示的比特序列的比特流,该比特序列被保存在存储设备32中或传输到目标设备14。
69.在接收由视频编码器20生成的比特流之后,视频解码器30可解析该比特流以从该
比特流获得语义元素。视频解码器30可以至少部分地基于从该比特流获得的语义元素来重建该视频数据的帧。重建视频数据的过程通常与视频编码器20执行的编码过程是相互的。例如,视频解码器30可以对与当前cu的tu相关联的系数块进行逆变换,以重建与当前cu的tu关联的残差块。视频解码器30还可以通过将用于当前cu的pu的预测块的样本加到当前cu的tu的变换块的对应样本来重建当前cu的编码块。在重建帧的每个cu的编码块之后,视频解码器30可重建该帧。
70.如上所述,视频编码主要使用两种模式实现视频压缩,即帧内预测(或intra-prediction)和帧间预测(或inter-prediction)。需要注意的是,ibc既可以被视为帧内预测,也可以被视为第三种模式。在这两种模式之间,由于使用用于从参考视频块中预测当前视频块的运动向量,所以帧间预测比帧内预测对编码效率的贡献更大。
71.但是,随着视频数据捕获技术的不断改进和用于保留视频数据中细节的更精细的视频块大小,表示当前帧的运动向量所需的数据量也显著增加。克服这一挑战的一种方法是受益于这样一个事实,即不仅空间域和时间域中的一组相邻cu具有用于预测目的的相似视频数据,而且所述相邻cu之间的运动向量也相似。因此,有可能通过探索空间上相邻的cu和/或时间上并置的cu的空间和时间相关性,将空间上相邻的cu和/或时间上并置的cu的运动信息用作当前cu的运动信息(例如,运动向量))的近似值,所述近似值也被称为当前cu的“运动向量预测值”(mvp)。
72.代替将由如上文结合图2描述的运动估计单元42确定的当前cu的实际运动向量编码到视频比特流中,从当前cu的实际运动向量中减去当前cu的运动向量预测值以产生用于当前cu的运动向量差(mvd)。通过这样操作,不需要将运动估计单元42为帧的每个cu确定的运动向量编码到视频比特流中,并且可以显著减少用于表示视频比特流中的运动信息的数据量。
73.像在码块的帧间预测期间在参考帧中选择预测块的过程一样,视频编码器20和视频解码器30都需要采用一套规则来使用与当前cu的空间上相邻的cu和/或时间上并置的cu相关联的潜在候选运动向量构建当前cu的运动向量候选列表(也称为“合并列表”),然后从该运动向量候选列表中选择一个成员作为当前cu的运动向量预测值。通过这样操作,不需要在视频编码器20与视频解码器30之间传输该运动向量候选列表本身,并且该运动向量候选列表内的所选运动向量预测值的索引足以使视频编码器20和视频解码器30在运动向量候选列表中使用相同的运动向量预测值对当前cu进行编码和解码。
74.在一些实施方式中,每个帧间预测cu具有用于构造运动向量候选列表的三种运动向量预测模式,包括帧间(也称为“高级运动向量预测”(amvp))、跳过和合并。在每种模式下,可以根据在下面所描述的算法将一个或多个运动向量候选添加到该运动向量候选列表。最终,候选列表中的运动向量候选之一被用作帧间预测cu的待由视频编码器20编码到视频比特流中或由视频解码器30从视频比特流中解码的最佳运动向量预测值。为了从该候选列表中找到最佳的运动向量预测值,引入运动向量竞争(mvc)方案,以从给定的运动向量候选集合(例如运动向量候选列表)中选择运动向量,即该运动向量候选列表,其包括空间和时间运动向量候选。
75.除了从空间的相邻或时间上并置的cu导出运动向量预测值候选之外,还可以从所称的“基于历史的运动向量预测”(hmvp)表中导出运动向量预测值候选。该hmvp列表包含预
定数量的运动向量预测值,每个预测值都一直用于编码/解码同一行ctu(或有时是同一ctu)的特定cu。由于所述cu的空间/时间接近性,该hmvp表中的运动向量预测值之一很有可能被重新用于对同一行ctu内的不同cu进行编码/解码。因此,通过在构建该运动向量候选列表的过程中包含该hmvp列表,可以实现更高的编码效率。
76.在一些实现方式中,该hmvp列表具有固定长度(例如,5)并且以准先进先出(fifo)方式进行管理。例如,在解码cu的一个帧间编码块时,为该cu重建运动向量。使用重建的运动向量即时更新该hmvp列表,因为该运动向量有可能是后续cu的运动向量预测值。在更新该hmvp列表时,有两种情况:(i)重建的运动向量与该hmvp列表中其他现有的运动向量不同,或(ii)重建的运动向量与该hmvp列表中现有运动向量之一相同。对于第一种情况,如果该hmvp表未满,则将重建后的运动向量作为最新的运动向量添加到该hmvp列表中。如果hmvp列表已满,则需要先从hmvp列表中移除hmvp列表中最旧的运动向量,然后再将重建后的运动向量添加为最新的运动向量。换句话说,这种情况下的hmvp列表类似于fifo缓存器,以使位于fifo缓存器头部并与另一个先前的帧间编码块相关联的运动信息被移出缓存器,从而将重建后的运动向量作为hmvp列表中的最新成员被附加到fifo缓存器的尾部。对于第二种情况,在将重建后的运动向量作为最新的运动向量添加到hmvp列表之前,将hmvp列表中与该重建后的运动向量实质上相同的现有运动向量从hmvp列表中移除。如果hmvp列表也以fifo缓存器的形式保持,则将hmvp列表中相同的运动向量之后的运动向量预测值向前移动一个元素,以占据被移除的运动向量留下的空间,然后将重建后的运动向量为作为hmvp列表中的最新成员附加到fifo缓存器的尾部。
77.可将hmvp列表中的运动向量添加到不同预测模式下的运动向量候选列表,如amvp、合并、跳过等。现经发现,存储在hmvp列表中的即使不与当前块相邻的先前帧间编码块的运动信息也可用于更有效的运动向量预测。
78.在当前cu的运动向量的给定候选集合内选择一个mvp候选之后,视频编码器20可以生成用于对应的mvp候选的一个或多个语义元素并且将它们编码成视频比特流,以使视频解码器30可以使用所述语义元素从该视频比特流中获得该mvp候选。根据用于构建运动向量候选集的特定模式,不同的模式(如amvp、合并、跳过等)具有不同的语义元素集合。对于amvp模式,所述语义元素包括帧间预测指示符(列表0、列表1或双向预测)、参考索引、运动向量候选索引、运动向量预测残差信号等。对于跳过模式和合并模式,只有合并索引被编码到比特流中,因为当前cu继承了其他语义元素,其他的语义元素包括来自编码合并索引所指的相邻cu的帧间预测指示符、参考索引和运动向量。在跳过编码cu的情况下,运动向量预测残差信号也被省略。
79.图5a是示出了根据本发明的一些实施方式的待编码/解码的当前cu的空间相邻且时间上并置的块位置的框图。对于给定模式,通过首先检查与在空间上左侧和上方相邻块位置相关联的运动向量的可用性以及与在时间上并置的块位置相关联的运动向量的可用性,然后检查该hmvp列表中的运动向量来构建运动向量预测(mvp)候选列表。在构建mvp候选列表的过程中,从候选列表中移除了一些冗余mvp候选,并在必要时添加零值运动向量以使该候选列表具有固定长度(注意不同的模式可能有不同的固定长度)。在构建该mvp候选列表之后,视频编码器20可以从该候选列表中选择最佳运动向量预测值并将指示所选择的候选的对应索引编码到该视频比特流中。
80.以图5a为例,假设该候选列表的固定长度为2,在amvp模式下,可以通过依次执行以下步骤来构建用于当前cu的运动向量预测值(mvp)候选列表:
81.1)从空间相邻的cu中选择mvp候选
82.a)从以a0开始并以a1结束的两个左侧空间上相邻的cu之一中导出最多一个非缩放mvp候选;
83.b)如果在上一步骤中没有可用的来自左侧的未缩放mvp候选,则从以a0开始并以a1结束的两个左侧空间上相邻的cu之一中导出最多一个缩放的mvp候选;
84.c)从以b0开始、然后是b1并且以b2结束的三个上方空间上相邻的cu之一中导出最多一个非缩放mvp候选;
85.d)如果a0和a1都不可用,或者如果它们以帧内模式解码,则从以b0开始、然后是b1并且以b2结束的三个上方空间上相邻的cu之一中导出最多一个缩放的mvp候选;
86.2)如果在前面的步骤中找到两个mvp候选并且它们相同,则从该mvp候选列表中移除这两个候选中的一个;
87.3)从时间上并置的cu中选择mvp候选
88.a)如果上一步之后的mvp候选列表不包括两个mvp候选,则从时间上并置的cu(如t0)中导出最多一个mvp候选;
89.4)从该hmvp表中选择mvp候选
90.a)如果上一步骤之后的mvp候选列表不包含两个mvp候选,从hmvp表中导出最多两个基于历史的mvp;以及
91.5)如果上一步骤之后的mvp候选列表中不包括两个mvp候选,则将最多两个零值mvp添加到该mvp候选列表中。
92.由于在上面构建的amvp模式mvp候选列表中只有两个候选,相关联的语义元素(如二进制标志)被编码到该比特流中以指示该候选列表中的两个mvp候选中的哪一个被用于解码当前cu。
93.在一些实现方式中,可通过按照与上述步骤类似的顺序执行一组类似的步骤来构建在跳过或合并模式下的用于当前cu的mvp候选列表。注意,一种称为“成对合并候选”的特殊类型的合并候选也包括在用于跳过或合并模式的mvp候选列表中。该成对合并候选是通过对两个先前导出的合并模式运动向量候选的mv求平均而生成的。在当前cu的切片标头中用信号通知该合并mvp候选列表的大小(如从1到6)。对于合并模式中的每个cu,使用截断的一元二值化(tu)对最佳合并候选的索引进行编码。使用上下文对该合并索引的第一个二进制表示bin进行编码,且旁路编码用于其他二进制表示bin。
94.如上所述,可在该空间mvp和时间mvp之后将所述基于历史的mvp添加到该amvp模式mvp候选列表或该合并mvp候选列表中。先前帧间编码的cu的运动信息存储在该hmvp表中,并用作当前cu的mvp候选。在编码/解码过程中对该hmvp表进行维护。每当存在非子块帧间编码的cu时,将关联的运动向量信息作为新的候选添加到该hmvp表的最后一个条目,同时从hmvp表中移除第一个条目存储的运动向量信息(若该hmvp表已满并且表中没有相关联的运动向量信息的相同副本的话)。可替代地,在将该关联运动向量信息添加到hmvp表的最后一个条目之前,从表中移除该关联运动向量信息的相同副本。
95.如上所述,块内复制(ibc)可以显着提高屏幕内容材料的编码效率。由于ibc模式
被实现为块级编码模式,因此在视频编码器20处进行块匹配(bm)以找到每个cu的最佳块向量。这里,块向量用于指示从该当前块到参考块的位移,该参考块已经在当前图片内重建。ibc编码的cu被视为帧内或帧间预测模式之外的第三种预测模式。
96.在cu级别,ibc模式可以用信号通知为如下所述的ibcamvp模式或ibc跳过/合并模式:
97.–
ibc amvp模式:以与上面所描述的在amvp模式下对运动向量差进行编码的方式相同的方式对cu的实际块向量与从该cu的块向量候选中选择的该cu的块向量预测值之间的块向量差(bvd)进行编码。该块向量预测方法使用两个块向量候选作为预测值,一个来自左侧邻居,另一个来自上方邻居(若被ibc编码)。当任一邻居不可用时,将默认块向量用作块向量预测值。用信号发送二进制标志以指示该块向量预测值索引。该ibc amvp候选列表由空间和hmvp候选组成。
98.–
ibc跳过/合并模式:合并候选索引用于指示来自相邻ibc编码块的合并候选列表(也称为“合并列表”)中的哪个块向量候选用于预测用于当前块的块向量。该ibc合并候选列表由空间、hmvp和成对候选组成。
99.现有技术编码标准采用的提高编码效率的另一种方法是使用例如多核处理器将并行处理引入视频编码/解码过程中。例如,波前并行处理(wpp)已经作为使用多线程并行编码或解码多行ctu的特征被引入到hevc中。
100.图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。
101.该视频编码器可初始化用于当前波前的上下文,以基于上方波前的前两个块的数据以及用于包括当前波前的第一个编码块的条带的条带标头的一个或多个元素来进行当前波前的上下文自适应二进制算术编码(cabac)。在对后续ctu行上方的ctu行的两个ctu进行编码之后,该视频编码器可以使用所述上下文状态来进行后续波前(或ctu行)的cabac初始化。换言之,在开始对当前波前进行编码之前,假设当前波前不是图片的顶行ctu,该视频编码器(或更具体地来讲,该视频编码器的线程)可以对当前波前上方的波前的至少两个块进行编码。在对当前波前上方的波前的至少两个块进行编码之后,该视频编码器可以为当前波前初始化cabac上下文。在该示例中,图片500的每个ctu行是单独的分区并且具有相关联的线程(wpp线程1、wpp线程2,...),以使图片500中的ctu行的数量可以被并行编码。
102.因为hmvp表的当前实现使用全局运动向量(mv)缓存器来存储先前重建的运动向量,所以不能在上文结合图5b描述的wpp启用的并行编码方案上实现该hmvp表。特别地,该全局mv缓存器由视频编码器的编码/解码过程的所有线程共享阻止了第一个wpp线程(即wpp线程1)之后的wpp线程被启动,因为所述wpp线程必须等待从第一个wpp线程(即第一个ctu行)的最后一个ctu(即最右边的ctu)开始的hmvp表更新完成。
103.为了克服这个问题,提出将所述wpp线程共享的全局mv缓存器用多个ctu行专用缓存器替代,以使ctu行的每个波前都有自己的缓存器,以存储对应于当wpp在该视频编码器启用时正在由对应的wpp线程处理的ctu行的hmvp表。需要注意的是,具有自己的hmvp表的每个ctu行相当于在对该ctu行的第一个cu进行编码之前重置该hmvp表。hmvp表重置是清除hmvp表中由另一个ctu行的编码所产生的所有运动向量。在一个实现方式中,这种重置操作是将该hmvp表中可用的运动向量预测值的大小设置为零。在另一个实施方式中,所述重置操作可以是将该hmvp表中的所有条目的参考索引设置为无效值,如-1。通过这种操作,特定波前内当前ctu的mvp候选列表的构建,无论是amvp、合并和跳过三种模式中的哪一种,都依赖于与处理该特定波前的wpp线程相关联的hmvp表。除了上述的两个ctu延迟之外,不同波前之间没有相互依赖性,并且与不同波前相关联的运动向量候选列表的构建可以像图5b中描绘的wpp过程那样并行地进行。换言之,在开始处理特定波前时,该hmvp表被重置为空,而并不影响另一个wpp线程对ctu的另一个波前的编码。在某些情况下,可在每个单独的ctu编码之前将该hmvp表重置为空。在这种情况下,该hmvp表中的所述运动向量限于特定的ctu,并且该hmvp表中的运动向量被选为该特定ctu内当前cu的运动向量的可能性可能更高。
104.图6a和6b分别是示出了根据本发明的一些实施方式的示例性先前重建的亮度块602和对应的待重建的示例性色度块620的框图。在该示例中,先前重建的亮度块602的亮度样本(例如,包括亮度样本604)、顶部相邻亮度组606(例如,包括亮度样本608)和左侧相邻亮度组610(例如,包括亮度样本615)在视频编码过程中被预测。色度块620的色度样本(例如,包括色度样本622)将被预测,而顶部相邻色度组624(例如,包括色度样本626)和左侧相邻色度组628(例如,包括色度样本630)的色度样本已在视频编码过程中预先重建。在一些实施例中,如果亮度块602和色度块620具有不同的大小和形状,则可以通过将多模型线性模型(mmlm)应用于先前重建的亮度块602的对应的下采样亮度样本(如下采样亮度样本605)连同顶部相邻色度组624(例如,包括色度样本626)和左侧相邻色度组628(例如,包括色度样本630)的色度样本来预测色度块620的色度样本。该mmlm的推导和应用将在下面结合图7a-7d进行描述。
105.在一些实施例中,先前重建的亮度块602和色度块620各自代表视频帧的一部分的不同分量。例如,在ycbcr色彩空间中,图像由亮度分量(y)、蓝色色差色度分量(cb)和红色色差色度分量(cr)表示。先前重建的亮度块602代表视频帧的一部分的亮度分量(即亮度),而色度块620代表该视频帧的相同部分的色度分量(即颜色)。先前重建的亮度块602的亮度样本(如亮度样本604)具有表示在该视频帧的特定像素处的亮度的亮度值,并且色度样本(如色度样本622)具有表示在该视频帧的特定像素处的颜色。
106.在一些实施例中,先前重建的亮度块602是2m
×
2n的块,该块具有跨块宽度的2m亮度样本和跨块高度的2n亮度样本。例如,“m”和“n”可以是相同的值(例如,先前重建的亮度块602是正方形块)或不同的值(例如,先前重建的亮度块602是非正方形块)。
107.色度二次采样是一种常见的压缩技术,因为人类视觉系统对色差的敏感度低于对亮度差的敏感度。因此,先前重建的亮度块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子采样)。
108.先前重建的亮度块602与顶部相邻亮度组606和左侧相邻亮度组610相邻。顶部相邻亮度组606和左侧相邻亮度组610的大小可以显式地用信号发送或取决于先前重建的亮度块602。例如,顶部相邻亮度组606可具有2m个样本的宽度(例如,与先前重建的亮度块602的宽度相同)或4m个样本(例如,先前重建的亮度块602的宽度的两倍)以及2个样本的高度。左侧相邻亮度组610可具有2个样本的宽度以及2n或4n个样本的高度。在一些实施例中,顶部相邻亮度组606和左侧相邻亮度组610均是已重建的同一视频帧的另一个或多个亮度块的一部分。
109.色度块620与顶部相邻色度组624和左侧相邻组628相邻。顶部相邻色度组624和左侧相邻组628的大小可以显式地用信号发送或取决于色度块620的大小。例如,顶部相邻色度组624的大小可以为1
×
m或1
×
2m,而左侧相邻色度组628的大小可以为n
×
1或2n
×
1。
110.在一些实施例中,可基于对应的重建亮度样本的亮度值(如先前重建的亮度块602中的亮度样本的亮度值)来预测色度值(如色度块620中的色度样本的色度值)。例如,假设编码单元在亮度值与对应色度值之间存在线性或准线性关系,该视频编码器可基于对应的重建亮度值使用该mmlm来预测色度值。通过这种操作,视频编码器可以节省大量时间和带宽来编码色度值、传输编码色度值和解码编码色度值。为了使用该mmlm根据亮度样本的已知的亮度值预测色度样本的未知色度值,视频编码器(1)推导出编码块中色度样本的已知色度值与对应的亮度样本的已知的亮度值之间的一组线性关系(如两个或更多)(每个线性关系适用于特定范围内的亮度值和/或色度值),以及(2)通过将适当的线性关系应用于对应的先前重建亮度样本的已知亮度值来预测色度样本的色度值。视频编码器如何使用该mmlm来从该对应的先前重建亮度样本的已知亮度值预测未知的色度值详细说明可参看图7a-7d和8以及相关描述。
111.在一些实施例中,由于亮度块和色度块的分辨率不同(例如,所述色度块可能已被二次采样),该视频编码器首先对亮度样本进行下采样以生成唯一对应于各自色度样本的下采样的亮度样本(如下采样亮度样本605、609和613)。在一些实施例中,当使用该mmlm来预测色度样本的未知色度值时,该视频编码器将线性关系应用于下采样的亮度样本的已知亮度值(例如,下采样的亮度样本中的每一个唯一地对应于各自的色度样本)而不是应用于实际亮度样本的己知亮度值。在一些实施例中,例如,使用本领域已知的包括六抽头下采样等的加权平均方案将在该视频帧的高度和宽度方向上的六个相邻重建亮度样本用于生成下采样色度样本。例如,在顶部相邻亮度组内的区域611(每个由图中的小框表示)中的这六个重建亮度样本用于通过对其对应的亮度值的加权平均来生成下采样色度样本609,并且先前重建的亮度块602中的区域607(每个由图中的小框表示)内的这六个重建亮度样本用于生成下采样色度样本605。
112.例如,具有两个线性关系的mmlm的应用可以表示为:
[0113][0114]
其中,predc(i,j)表示编码单元中的色度样本(如色度样本622)的预测的色度值,rec
l

(i,j)表示同一编码单元的对应的先前重建亮度样本的已知亮度值。在一些实施例中,rec
l

(i,j)表示同一编码单元的下采样的亮度样本(如下采样的亮度样本605)的已知亮度值,该已知亮度值基于先前重建亮度样本(如六抽头下采样)确定。threshold表示用于确定该mmlm的多个线性关系中的哪一个将要用于特定的色度值的阈值。包括两种线性关系的该mmlm的推导(如线性模型参数α1,α2,β1,β2,threshold的推导)可参看图7a-7d和8以及相关描述。
[0115]
在另一个示例中,具有三个线性关系的mmlm的应用可以表示为:
[0116][0117]
等式2与等式1的不同之处在于等式2中的mmlm包括三个不同的线性关系,其中两个阈值确定三个单独的亮度值范围。对于包含三个线性关系的mmlm的推导(例如参数(α1,α2,α3,β1,β2,β3,threshold1,threshold2)的推导)可参看图7a-7d和8以及相关描述。
[0118]
图7a-7d是示出了根据本发明的一些实施方式的示例性过程的点列图,视频编码器通过该过程实现导出多模型线性模型(mmlm)和将该多模型线性模型用于预测编码单元的色度样本未知色度值的技术。为了方便起见,将该过程描述为由视频编码器执行。对于每个点列,横轴代表亮度样本的亮度值,纵轴代表色度样本的色度值,点列中每个数据点代表一对色度样本和对应的亮度样本。在一些实施例中,该对应的亮度样本是下采样的亮度样本。例如,点列上的数据点可表示一对顶部相邻色度组624(图6b)中的先前重建色度样本(如图6b的色度样本626)和在顶部相邻亮度组606(图6a)中的对应的下采样亮度样本(如,图6a的下采样亮度样本613)。
[0119]
图7a示出了具有第一组数据点704的点列702a,点列702a上的每个数据点(例如,也称为参考样本对)代表一对先前重建色度样本(例如,图6b的色度样本626)以及对应的先前重建亮度样本(例如,图6a的下采样亮度样本613)。先前重建色度样本及其对应的亮度样本分别称为“参考色度样本”和“参考亮度样本”。在一些实施例中,该视频编码器从重建亮度样本的相邻组(例如,顶部相邻亮度组606、左侧相邻亮度组610或两者)中选择用于当前亮度编码块的参考亮度样本,并且从重建色度样本的相邻组(例如,顶部相邻色度组624、左侧相邻色度组628或两者)选择参考色度样本。所述参考亮度样本及其对应的参考色度样本用于导出用于该mmlm的线性模型参数,如用于等式1的参数(α1,α2,β1,β2,threshold)或用于等式2的参数(α1,α2,α3,β1,β2,β3,threshold1,threshold2)。
[0120]
在一些实施例中(也称为“mmlm_a模式”),该视频编码器从顶部相邻亮度组(如来自图6a的顶部相邻亮度组606的下采样亮度样本)选择亮度参考样本并且从对应的顶部色度相邻组(如图6b的顶部相邻色度组624)选择色度参考样本。来自左侧相邻组(如图6a的左
侧相邻亮度组610)的下采样亮度样本和来自左侧色度相邻组(如图6b的左侧相邻色度组628)的与之对应的色度样本被忽略。例如,在图6a和6b中,该视频编码器可以选择m个下采样亮度样本(如重建的亮度块602的每行的下采样亮度样本的数量)和m个色度参考样本(如色度块620的每行的色度参考样本的数量)作为参考亮度样本和参考色度样本,或者选择2m个下采样亮度样本(如重建的亮度块602的每行的下采样亮度样本的数量的两倍)和2m个色度样本(如色度块620的每行的色度样本的数量的两倍)作为参考亮度样本和参考色度样本。一般而言,使用更多的参考亮度样本和参考色度样本使得基于亮度值的色度值的预测更加准确(如更准确地确定mmlm参数),但计算成本更高。
[0121]
在一些实施例中(也称为“mmlm_l模式”),该视频编码器从左侧相邻亮度组(图6a的左侧相邻亮度组610)中选择亮度参考样本并从对应的左侧相邻亮度组(图6b的左侧相邻色度组628)中选择色度参考样本。来自顶部相邻亮度组(如图6a的顶部相邻亮度组606)的下采样的亮度样本和来自顶部相邻色度组(如图6b的顶部相邻色度组628)的与之对应的色度样本被忽略。例如,在图6a和6b中,该视频编码器可选择n个下采样亮度样本(例如,重建的亮度块602的每列下采样亮度样本的数量)和n个色度参考样本(例如,色度块620的每列色度参考样本的数量)作为参考亮度样本和参考色度样本,或者选择2n个下采样亮度样本(如重建的亮度块602的每列的下采样亮度样本的数量的两倍)和2m个色度样本(如色度块620的每列的色度样本的数量的两倍)作为参考亮度样本和参考色度样本。
[0122]
在一些实施例中,该视频编码器使用mmlm_l模式和mmlm_a模式二者来选择亮度参考样本和色度参考样本。
[0123]
图7b示出了具有第二组数据点706的点列702b。该视频编码器使用第二组数据点706来导出mmlm参数。在一些实施例中,第二组数据点706是第一组数据点704的子集。减少亮度参考样本和色度参考样本的数量降低了导出mmlm参数的计算复杂度。该视频编码器以如下方式从第一组数据点704确定第二组数据点706:
[0124]
在一些实施例中,第二组数据点706中的数据点(例如,也称为参考样本对)的数量被限制为预定值,该预定值基于该色度块(如图6b的色度块620)的大小和/或形状,该色度块的色度样本将被预测。下面的表1中提供了四个不同的示例(标记为方法1、2、3和4),其中,根据当前编码单元的色度块的大小和形状,n可以是2、4和/或8。
[0125]
色度块大小方法1方法2方法3方法42
×
n/n
×
224424
×
n/n
×
4(n>=4)48448
×
n/n
×
8(n>=8)884416
×
n/n
×
16(n>=16)884432
×
328844
[0126]
表1
[0127]
例如,如果该色度块具有4
×
8或8
×
4的大小并且该视频编码器选择方法1,则第二组数据点706中的数据点的数量被限制为4。在另一示例中,如果色度块的大小为32
×
32并且该视频编码器选择方法2,则第二组数据点706中的数据点数量限制为8。
[0128]
在一些实施例中,该mmlm仅适用于块大小等于或大于预定阈值的块。例如,大小小于该阈值的色度块将不会使用mmlm进行预测。在一个示例中,用于导出mmlm的参考样本对
的最大数量限制为8,并且块大小阈值限制为8
×
8或16
×
16。因此,不使用mmlm对可能没有足够关联参考样本对的较小的色度块进行预测。
[0129]
在一些实施例中,该视频编码器通过固定的下采样来选择第二组数据点706中的参考样本对。例如,该视频编码器可以使用固定的下采样方法,在这种方法中,在垂直方向(如mmlm_l模式)或水平方向(如mmlm_a)上的某个索引位置(如奇数索引位置)处的亮度或色度参考样本被选择用于mmlm参数推导。
[0130]
在一些实施例中,该视频编码器通过自适应下采样选择第二组数据点706中的参考样本对。例如,该视频编码器可以选择自适应下采样方法,在这种方法中,根据(1)预定义的采样间隔和(2)垂直或水平方向上的起始偏移量来选择参考样本。更具体地来讲,该视频编码器可基于原始参考样本对(如在第一组数据点704中)的数量和减少的参考样本对(如在第二组数据点706中)的数量来以下列方式确定该采样间隔和起始偏移量:
[0131]
1.确定原始参考样本对的数量:l(例如,16);
[0132]
2.确定减少的参考样本对的数量:n(例如,8);
[0133]
3.确定该采样间隔:δ=l/n(例如,2);
[0134]
4.确定该起始偏移量:offset=δ/2(例如,1)。
[0135]
该视频编码器在预定起始位置(例如,第二参考样本)的位置(如相邻亮度或色度组的位置)处选择第一参考样本(如亮度样本或色度样本)加上起始偏移量。其他的参考样本的位置是距前一点的位置加上该采样间隔。
[0136]
图7c示出了具有第二组数据点708的点列702c,该组基于亮度值被亮度阈值710分成两个子组,第一子组从最小参考亮度值712延伸到亮度阈值710,第二子组从亮度阈值延伸到最大亮度值712。该视频编码器然后在每个子组内导出将亮度值映射到色度值的mmlm的相应线性模型。
[0137]
在一些实施例中,该视频编码器通过选择左侧相邻亮度组(如图6a的左侧相邻亮度组610)中的所有亮度样本(或下采样的亮度样本)并忽略所有其他亮度样本来计算亮度阈值710。然后该视频编码器对所选亮度样本执行操作,如确定平均亮度值、中值亮度值、模式亮度值或自定义公式。
[0138]
在一些实施例中,该视频编码器通过选择顶部相邻亮度组(如图6a的顶部相邻亮度组606)中的所有亮度样本(或下采样的亮度样本)并忽略所有其他亮度样本来计算亮度阈值710。然后该视频编码器对所选亮度样本执行操作,如确定平均亮度值、中值亮度值、模式亮度值或自定义公式。
[0139]
在一些实施例中,该视频编码器通过选择顶部和左侧相邻亮度组(如图6a的左侧相邻亮度组610和顶部相邻亮度组606)中的所有亮度样本(或下采样的亮度样本)并忽略所有其他亮度样本来计算亮度阈值710。然后该视频编码器对所选亮度样本执行操作,如确定平均亮度值、中值亮度值、模式亮度值或自定义公式。
[0140]
在一些实施例中,该视频编码器通过选择当前编码单元(如图6a的亮度块602)中的所有亮度样本(或下采样的亮度样本)并忽略所有其他亮度样本来计算亮度阈值710。然后该视频编码器对所选亮度样本执行操作,如确定平均亮度值、中值亮度值、模式亮度值或自定义公式。
[0141]
在一些实施例中,该视频编码器通过选择当前编码单元(如图6a的亮度块602)以
及顶部和左侧相邻亮度组(如图6a的左侧相邻亮度组610和顶部相邻亮度组606)中的所有亮度样本(或下采样的亮度样本)来计算亮度阈值710。然后该视频编码器对所选亮度样本执行操作,如确定平均亮度值、中值亮度值、模式亮度值或其他自定义公式。
[0142]
在一些实施例中,自定义公式包括找到最小和最大亮度值(l
min
和l
max
)并执行:其中,n是预定义的值,例如2。
[0143]
类似地,该视频编码器可以通过将以上技术应用于色度相邻组来确定色度阈值711。
[0144]
尽管点列702c仅包括将所述亮度值分成两个单独组的一个亮度阈值710(例如,对于mmlm有两个线性关系要导出),但在实际实践中,可以存在将所述亮度值分成三个或更多单独的组(例如,为mmlm导出三个或更多线性关系)的多个亮度阈值。例如,当该mmlm中存在三个线性关系时,该视频编码器可以通过以下方式基于最大参考亮度值712和最小参考亮度值714来确定这两个亮度阈值:
[0145][0146][0147]
在另一示例中,所有相邻的(顶部相邻或左侧相邻)重建亮度样本(或下采样是亮度样本)基于相邻重建亮度样本的平均值被分成两组。取值小于该平均值的亮度样本属于一组,取值不小于平均值的亮度样本属于另一组。并且threshold1和threshold2可以计算为各组的平均值。
[0148]
图7d示出了点列702d,在该点列中,基于亮度阈值710、最小参考亮度值712和最大参考亮度值714导出该mmlm的两个线性关系(线性关系716和718)。如在前面参考图7c所描述的那样,该视频编码器首先基于亮度阈值710将第二组数据点708的参考样本分成两个子组。在每个子组内,该视频编码器确定将亮度值映射到色度值的相应的线性关系(见等式1)。在一些实施例中,该视频编码器使用回归方法(例如,考虑该组中的所有数据点)来确定相应的线性关系。然而,执行回归是计算密集型的,并且对于视频编码/解码的目的通常是不现实的,例如在实时情况下。因此,需要推导线性关系的更有效的实施方式(例如,确定等式1中的线性参数)。
[0149]
在一些实施例中,该视频编码器使用最大-最小方法导出线性关系716和718。该视频编码器从(1)、(2)和(3)中确定等式1中的线性模型参数(α
1 β
1 α
2 β2);在(1)中,该参考样本具有最小参考亮度值712(如数学上由a(xa,ya)表示,其中xa是最小参考亮度值712);在(2)中,数据点具有亮度阈值710和色度阈值711(如数学上由阈值(x
t
,y
t
)表示,其中,x
t
和y
t
分别是亮度阈值710和色度阈值711);在(3)中,该参考样本具有最大参考亮度值714(如数学上由b(xb,yb)表示)。值得注意的是,虽然xa和xb是最小和最大亮度值,但ya和yb不必是最小和最大色度值。该视频编码器通过以下方式确定线性模型参数:
[0150][0151]
β1=y
a-α1xa[0152][0153]
β2=y
t-α2x
t
ꢀꢀ
(等式4)。
[0154]
在一些实施例中,对于具有正方形形状的编码块,该视频编码器直接应用上述技术。对于非正方形编码块,在一些实施例中,该视频编码器首先对较长边界的相邻参考样本进行子采样以具有与较短边界相同数量的样本。
[0155]
在该mmlm包括三个线性关系(如由等式3表示)的情况下,该视频编码器可以通过与上面关于具有两个线性关系的mmlm描述的类似的方式导出用于线性关系的线性模型参数。例如,假设这两个阈值数据点可以表示为阈值(x
t1
,y
t1
)和阈值(x
t2
,y
t2
),其中y
t2
>y
t1
,该视频编码器可从a(xa,ya)与阈值(x
t1
,y
t1
)之间的直线关系确定线性模型参数α1和β1。从阈值(x
t1
,y
t1
)与阈值(x
t2
,y
t2
)之间的直线关系导出线性模型参数α2和β2。可以从阈值(x
t2
,y
t2
)与b(xb,yb)之间的直线关系导出线性模型参数α3和β3。
[0156]
在导出该mmlm的线性关系716和718之后,该视频编码器可以通过将适当的线性模型应用于对应的亮度值(或子采样的亮度值)来预测色度样本值(如图6b中色度样本622的色度样本值)。
[0157]
图8是示出了根据本发明的一些实施方式的示例性过程800的流程图,视频编码器通过该过程实现导出多模型线性模型(mmlm)和将该mmlm用于预测编码单元的色度样本的技术。为方便起见,过程800将被描述为由目标设备上的视频解码器执行,例如图3的视频解码器30。
[0158]
作为第一步骤,该视频解码器接收编码有色度块(如图6b的色度块620)、亮度块(如图6a的亮度块602)(例如,该色度块和亮度块属于同一编码单元)、围绕该亮度块的多个相邻亮度样本(如图6a的项部相邻亮度组606和/或左侧相邻亮度组610)以及围绕该色度块的多个相邻色度样本(如顶部相邻色度组624和/或左侧相邻色度组628)(例如,相邻的亮度样本中的一个或多个亮度样本对应于所述相邻的色度样本中的色度样本)的比特流(如由图2的视频编码器20发送)(步骤810)。在一些实施例中,该亮度块和色度块被以不同的采样率采样并且具有不同的块大小和/或形状。例如,该亮度块可以大于该色度块并且对该亮度块进行子采样以找到对应于色度样本的子采样亮度样本(如通过平均相邻亮度样本计算的亮度样本)。
[0159]
然后,该视频解码器对该亮度块、多个相邻亮度样本和多个相邻色度样本进行解码以分别获得该亮度块的多个重建亮度样本、多个重建相邻亮度样本和多个重建相邻色度样本(步骤820)。例如,该视频解码器可以使用模式间预测或模式内预测来对该亮度块、多个相邻亮度样本和多个相邻色度样本进行解码。每个重建相邻亮度样本(或重建的子采样的相邻亮度样本)及其对应的重建相邻色度样本可以表示为参考数据点(例如,作为图7a中的第一组数据点704中的数据点),该参考数据点说明了亮度值与色度值之间的对应关系。
[0160]
接下来,该视频解码器从多个重建相邻亮度样本(或重建的子采样的相邻亮度样本)和多个重建相邻色度样本中分别选择参考亮度样本组和对应的参考色度样本组(例如,由图7b的第二组数据点706表示)(步骤830)。在一些实施例中,参考亮度样本和对应的参考色度样本分别是多个重建相邻亮度样本和多个重建相邻色度样本的子集。关于选择机制的详细信息可参考图7b和相关描述。
[0161]
随后,该视频解码器从多个重建相邻色度样本计算阈值亮度值(如平均亮度值、中值亮度值或从其他预定义的操作计算的亮度值),并且从多个重建相邻色度样本(例如,该数据点(阈值亮度值、阈值色度值)表示该mmlm中的“拐点”并且用于将该mmlm中的第一线性模型与第二线性模型分离,参见图7d和相关描述)计算阈值色度值(如平均色度值、中值色度值或从亮度样本以其他方式计算的色度值)(步骤840)。
[0162]
在确定该阈值亮度值和阈值色度值之后,该视频解码器从该参考亮度样本组确定最大亮度值和最小亮度值(步骤850)。例如,在图7d的点列702d上,最大亮度值为xb值,最小亮度值为xa值。包括该最大亮度值和最小亮度值的参考样本分别为b(xb,yb)和a(xa,ya)。最小亮度值(例如,图7d的xa)、阈值亮度值(例如,图7d的x
t
)和最大亮度值(例如,图7d的xb)限定了两个单独的亮度值区域,其中,第一区域从该最小亮度值延伸到该阈值亮度值,第二区域从该阈值亮度值延伸到该最大亮度值。该阈值亮度值介于该最小亮度值与该最大亮度值之间。在一些实施例中,如果该最大亮度值不同于该最小亮度值,则该阈值亮度值大于或等于该最小亮度值并且小于或等于该最大亮度值。在一些实施例中,如果该最大亮度值等于该最小亮度值(例如,用于计算该最大和该最小亮度值的区域包括均匀的亮度样本),则该最大值、最小值和阈值亮度值彼此相等。因此,如果该阈值亮度值大于或等于该最小亮度值且小于或等于该最大亮度值,则该阈值亮度值介于该最小亮度值与该最大亮度值之间。
[0163]
然后,该视频解码器生成包括在该最小亮度值与该阈值亮度值之间的第一线性模型和在该阈值亮度值与该最大亮度值之间的第二线性模型的多模型线性模型(步骤860)。该第一线性模型由包括该最小亮度值(如图7d的a(xa,ya))的参考样本和包括该阈值亮度值(如图7d的阈值(x
t
,y
t
))的参考样本限定。该第二线性模型由包括该阈值亮度值(如图7d的阈值(x
t
,y
t
))的参考样本和包括该最大亮度值(如图7d的b(xb,yb))的参考样本限定。例如,图7d的点列702d将第一和第二线性模型分别示为线性关系716和线性关系718。
[0164]
最后,该视频解码器使用该多模型线性模型根据该亮度块重建该色度块(步骤870)。在一些实施例中,该视频解码器可以以光栅扫描顺序遍历该亮度块中的每个亮度样本(或子采样的亮度样本),并且应用该mmlm的适当线性关系来重建对应的色度样本(例如,如果该亮度样本的亮度值低于该亮度阈值,则应用第一线性关系;如果该亮度样本的亮度值大于该亮度阈值,则应用第二线性关系)。
[0165]
在一些实施例中,生成该多模型线性模型包括:确定第一参考色度样本的第一色度值以及第二参考色度样本的第二色度值,该第一参考色度样本对应于具有最大亮度值的第一参考亮度样本,该第二参考色度样本对应于具有最小亮度值的第二参考亮度样本;其中该第一线性模型连接(最小亮度值,第一色度值)和(阈值亮度值,阈值色度值),该第二线性模型连接(阈值亮度值,阈值色度值)和(最大亮度值,第二色度值)。
[0166]
在一些实施例中,使用该多模型线性模型根据该亮度块构建该色度块包括:对于该色度块中的相应色度样本:确定对应于该相应色度样本的重建的亮度块中相应亮度样本的相应亮度值;根据确定相应亮度值小于或等于该阈值亮度值:将该第一线性模型应用于该相应亮度值,以获得相应色度值;以及根据确定该相应亮度值大于或等于该阈值亮度值:将该第二线性模型应用于该相应亮度值以获得该相应色度值。
[0167]
在一些实施例中,计算该阈值亮度值包括从多个重建相邻亮度样本中找出平均亮度值,并且计算该阈值色度值包括从多个重建相邻色度样本中找出平均色度值。
[0168]
在一些实施例中,选择该参考亮度样本组和该色度参考样本组包括确定要使用的参考亮度样本和参考色度样本的数量的上限。
[0169]
在一些实施例中,选择该参考亮度样本组和该参考色度样本组包括从多个重建相邻亮度样本中间隔选择亮度样本和从多个重建相邻色度样本中间隔选择色度样本。
[0170]
在一些实施例中,计算大于该阈值亮度值的第二阈值亮度值以及大于该阈值色度值的相应的第二阈值色度值,其中:该第二线性模型适用于该阈值亮度值与该第二阈值亮度值之间的亮度值,并且该第三线性模型适用于该第二阈值亮度值与该最大亮度值之间的亮度值。
[0171]
在一些实施例中,计算该阈值亮度值包括从多个重建相邻亮度样本中找出该最大亮度值与该最小亮度值之间的加权平均亮度值,而计算该阈值色度值包括从多个重建相邻色度样本中找出该最大色度值与该最小色度值之间的加权平均色度值。
[0172]
在一些实施例中,计算该阈值亮度值包括从该亮度块的多个重建亮度样本中找出平均亮度值。
[0173]
在一些实施例中,使用该多模型线性模型根据该亮度块构建该色度块包括:对于该色度块中的色度样本的相应块:确定对应于色度样本的该相应块的解码后的亮度块中的亮度样本的相应块的相应平均亮度值;根据确定该相应平均亮度值小于或等于该阈值亮度值:将该第一线性模型应用于亮度样本的该相应块中的每个亮度值,以获得色度样本的该相应块中的相应色度值;以及根据确定该相应平均亮度值大于该阈值亮度值:将该第二线性模型应用于亮度样本的相应块中的每个亮度值,以获得色度样本的相应块中相应色度值。
[0174]
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则所述功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质传输并由基于硬件的处理单元执行。计算机可读介质可包括计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质,或者包括便于将计算机程序从一个地方转移到另一个地方的任何介质的通信介质,例如,根据通信协议。在这种方式中,计算机可读介质通常可对应于(1)非暂时性的有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一台或多台计算机或一个或多个处理器访问以检索指令、代码和/或数据结构以实现本技术中描述的实施方式的任何可用介质。计算机程序产品可包括计算机可读介质。
[0175]
在此处的实施方式的描述中使用的术语仅用于描述特定实施方式的目的,并不旨在限制权利要求的范围。在实施方式和所附权利要求的描述中使用的单数形式“一个”和“该/所述”也旨在包括复数形式,除非上下文另有明确指示。还应理解,本文所用的术语“和/或”是指并且涵盖一个或多个相关联的所列项目的任何和所有可能的组合。将会进一步理解,当在本说明书中使用时,术语“包括”指定所陈述的特征、要素和/或组件的存在,但不排除其他一个或多个特征、要素、组件和/或它们的组的存在或添加。
[0176]
还应理解,虽然术语第一、第二等在本文中可用于描述各种要素,但所述要素不应受限于所述术语。所述术语仅用于区分一种要素与另一种要素。例如,在不脱离实施方式的范围的情况下,第一电极可以被称为第二电极,并且类似地,第二电极可以被称为第一电极。第一电极和第二电极都是电极,但不是同一个电极。
[0177]
本技术的描述是为了说明和描述的目的而呈现的,并不旨在穷举或限制以所公开形式的本发明。受益于前述描述和相关附图中呈现的教导,本领域普通技术人员将明白许多修改、变化和替代实施方式。选择和描述实施例是为了最好地解释本发明的原理、实际应用,并使本领域的其他技术人员能够理解本发明的各种实现方式,并最好地利用具有各种修改的基本原理和各种实现方式,如适用于预期的特定用途。因此,应当理解,权利要求的范围不限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在包括在所附权利要求的范围内。
再多了解一些

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

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

相关文献