在视频编码中用于参考偏移信令的系统和方法与流程

文档序号:25543572发布日期:2021-06-18 20:40阅读:313来源:国知局
在视频编码中用于参考偏移信令的系统和方法与流程

本公开涉及视频编码,并且更具体地涉及用于参考偏移信令的技术。



背景技术:

数字视频功能可以结合到各种设备中,包括数字电视、笔记本电脑或台式电脑、平板电脑、数字录音设备、数字媒体播放器、视频游戏设备、蜂窝电话(包括所谓的智能电话)、医学成像设备等。可以根据视频编码标准对数字视频进行编码。视频编码标准可以结合视频压缩技术。视频编码标准的示例包括iso/iecmpeg-4visual和itu-th.264(也被称为iso/iecmpeg-4avc)和高效视频编码(hevc)。hevc在2016年12月的itu-th.265建议书的高效视频编码(hevc)中有所描述,该文献以引用方式并入本文,并且在本文中被称为itu-th.265。目前正在考虑对itu-th.265进行扩展和改进以开发下一代视频编码标准。例如,itu-t视频编码专家组(vceg)和iso/iec活动图像专家组(mpeg)(被统称为联合视频研究组(jvet))正在研究压缩能力显著超过当前hevc标准的未来视频编码技术的标准化的潜在需求。以引用方式并入本文的联合探索模型7(jem7)、联合探索测试模型7(jem7)的算法描述、iso/iecjtc1/sc29/wg11文档:jvet-g1001(2017年7月,意大利,都灵)描述了由jvet在联合测试模型研究下的编码特征,该技术是超越itu-th.265功能的潜在增强视频编码技术。应当指出的是,jem7的编码特征在jem参考软件中实现。如本文所用,术语jem可统称包括在jem7中的算法以及jem参考软件的具体实施。此外,响应于由vceg和mpeg联合发布的″jointcallforproposalsonvideocompressionwithcapabilitiesbeyondhevc″,在2018年4月16日至20日,在加利福尼亚州圣地亚哥的iso/iecjtc1/sc29/wg11的第10次会议上各种组提出了多种视频编码描述并对其作出了响应。作为多种视频编码描述的结果,视频编码规范的草案文本在以引用方式并入本文的″通用视频编码(草案1)″,在2018年4月16日至20日,在加利福尼亚州圣地亚哥的iso/iecjtc1/sc29/wg11的第10次会议的文档jvet-j1001-v2中有所描述该文档以引用方式并入本文并且称为jvet-j1001。″通用视频编码(草案2)″,在2018年7月10日至18日,在斯洛文尼亚卢布尔雅那的iso/iecjtc1/sc29/wg11的第11次会议的文档jvet-k1001-v7,该文档以引用方式并入本文并且称为jvet-k1001,是对jvet-j1001的更新。

视频压缩技术可减少存储和传输视频数据的数据需求。视频压缩技术可通过利用视频序列中固有的冗余来减少数据需求。视频压缩技术可将视频序列再分成连续较小的部分(例如:视频序列内的帧组、帧组内的帧、帧内的区域、区域内的视频块、视频块内的子块等)。可以使用帧内预测编码技术(例如,图片内(空间))和帧间预测技术(即图片间(时间))来生成待编码的视频数据单元与视频数据的参考单元之间的差值。该差值可被称为残差数据。残差数据可被编码为量化变换系数。语法元素可以涉及残差数据和参考编码单元(例如,帧内预测模式索引、运动矢量和块矢量)。可以对残差数据和语法元素进行熵编码。熵编码的残差数据和语法元素可以包括在兼容比特流中。可以根据数据结构来格式化兼容比特流和相关联的元数据。



技术实现要素:

在一个示例中,一种导出用于对视频数据进行解码的预测样本值的方法,所述方法包括:对参考环绕式偏移语法进行解码,所述参考环绕式偏移语法指定用于计算水平环绕式位置的偏移;通过将一与所述参考环绕式偏移语法的值相加然后将所得和乘以最小编码块尺寸来导出亮度位置;以及通过使用所述亮度位置来导出预测的亮度样本值。

在一个示例中,一种导出用于对数据进行编码的预测样本值的方法,所述方法包括:对参考环绕式偏移语法进行编码,所述参考环绕式偏移语法指定用于计算水平环绕式位置的偏移;通过将一与所述参考环绕式偏移语法的值相加然后将所得和乘以最小编码块尺寸来导出亮度位置;以及通过使用所述亮度位置来导出预测的亮度样本值。

在一个示例中,一种包括一个或多个处理器的设备,所述一个或多个处理器被配置为:对参考环绕式偏移语法进行解码,所述参考环绕式偏移语法指定用于计算水平环绕式位置的偏移;通过将一与所述参考环绕式偏移语法的值相加然后将所得和乘以最小编码块尺寸来导出亮度位置;以及通过使用所述亮度位置来导出预测的亮度样本值。

附图说明

图1是示出根据本公开的一种或多种技术的根据四叉树多叉树划分进行编码的一组图片的示例的概念图。

图2a是示出根据本公开的一种或多种技术的对视频数据块进行编码的示例的概念图。

图2b是示出根据本公开的一种或多种技术的对视频数据块进行编码的示例的概念图。

图3是示出具有水平几何填充的当前图片的帧间预测的示例的概念图。

图4是示出根据本公开的一种或多种技术的可被配置为对视频数据进行编码和解码的系统的示例的框图。

图5是示出根据本公开的一种或多种技术的可被配置为对视频数据进行编码的视频编码器的示例的框图。

图6是示出根据本公开的一种或多种技术的可被配置为对视频数据进行解码的视频解码器的示例的框图。

具体实施方式

一般来讲,本公开描述了用于对视频数据进行编码的各种技术。具体而言,本公开描述了在视频编码中用于参考偏移信令的技术。根据本文所述的技术执行参考偏移信令对于提高视频编码信令效率可能特别有用。应当指出的是,虽然本公开的技术是关于itu-th.264、itu-th.265、jvet-j1001和jvet-k1001描述的,但是本公开的技术可普遍应用于视频编码。例如,本文所述的编码技术可结合到视频编码系统(包括基于未来视频编码标准的视频编码系统)中,包括块结构、帧内预测技术、帧间预测技术、变换技术、滤波技术和/或熵编码技术,不同于itu-th.265中包括的那些技术。因此,对itu-th.264、itu-th.265、jvet-j1001和jvet-k1001的参考是出于描述性目的,并且不应被解释为限制本文所述技术的范围。此外,应当指出的是,将文献以引用方式并入本文不应被解释为限制或产生关于本文所用术语的歧义。例如,在某个并入的参考文献中提供的对某个术语的定义不同于另一个并入的参考文献和/或如本文所用的该术语的情况下,则该术语应以广泛地包括每个相应定义的方式和/或以包括替代方案中每个特定定义的方式来解释。

在一个示例中,方法包括确定参考图片偏移值,以及将指示该参考图片偏移的语法元素的值编码为比特流,其中该语法元素的值为零指示不使用环绕式运动补偿,并且该语法元素的除零之外的值指示单位为最小编码块尺寸的该参考图片偏移值。

在一个示例中,设备包括一个或多个处理器,该一个或多个处理器被配置为确定参考图片偏移值,并且将指示该参考图片偏移的语法元素的值编码为比特流,其中该语法元素的值为零指示不使用环绕式运动补偿,并且该语法元素的除零之外的值指示单位为最小编码块尺寸的该参考图片偏移值。

在一个示例中,非暂态计算机可读存储介质包括存储在其上的指令,这些指令在被执行时使得设备的一个或多个处理器:确定参考图片偏移值,并且将指示该参考图片偏移的语法元素的值编码为比特流,其中该语法元素的值为零指示不使用环绕式运动补偿,并且该语法元素的除零之外的值指示单位为最小编码块尺寸的该参考图片偏移值。

在一个示例中,装置包括用于确定参考图片偏移值的装置,以及用于将指示该参考图片偏移的语法元素的值编码为比特流的装置,其中该语法元素的值为零指示不使用环绕式运动补偿,并且该语法元素的除零之外的值指示单位为最小编码块尺寸的该参考图片偏移值。

在一个示例中,方法包括从比特流解析指示参考图片偏移的语法元素的值,其中该语法元素的值为零指示不使用环绕式运动补偿,并且该语法元素的除零之外的值指示单位为最小编码块尺寸的该参考图片偏移值,以及从该解析值确定该参考图片偏移值。

在一个示例中,用于重构视频数据的设备包括一个或多个处理器,该一个或多个处理器被配置为:从比特流解析指示参考图片偏移的语法元素的值,其中该语法元素的值为零指示不使用环绕式运动补偿,并且该语法元素的除零之外的值指示单位为最小编码块尺寸的该参考图片偏移值,并且从该解析值确定该参考图片偏移值。

在一个示例中,非暂态计算机可读存储介质包括存储在其上的指令,这些指令在被执行时使得设备的一个或多个处理器:从比特流解析指示参考图片偏移的语法元素的值,其中该语法元素的值为零指示不使用环绕式运动补偿,并且该语法元素的除零之外的值指示单位为最小编码块尺寸的该参考图片偏移值,并且从该解析值确定该参考图片偏移值。

在一个示例中,装置包括用于从比特流解析指示参考图片偏移的语法元素的值的装置,其中该语法元素的值为零指示不使用环绕式运动补偿,并且该语法元素的除零之外的值指示单位为最小编码块尺寸的该参考图片偏移值,以及用于从该解析值确定该参考图片偏移值的装置。

在以下附图和描述中阐述了一个或多个示例的细节。其他特征、目的和优点将从描述和附图以及权利要求书中显而易见。

视频内容通常包括由一系列帧(或图片)组成的视频序列。一系列帧也可以被称为一组图片(gop)。每个视频帧或图片可划分成一个或多个区域。可以根据基本单元(例如:视频块)和限定区域的规则集(例如,区域必须是布置成矩形的整数个视频块)来限定区域。如本文所用,术语〞视频块″通常可以指图片的区域,或者可以更具体地指可以被预测性地编码的样本值的最大阵列、其子分区和/或对应结构。此外,术语″当前视频块″可以指正被编码或解码的图片的区域。视频块可被定义为可被预测性地编码的样本值的阵列。应当指出的是,在一些情况下,像素值可被描述为包括视频数据的相应分量的样本值,其也可被称为颜色分量(例如,亮度(y)和色度(cb和cr)分量或红色、绿色和蓝色分量)。应当指出的是,在一些情况下,术语″像素值″和″样本值″可互换使用。此外,在一些情况下,像素或样本可称为pel。视频采样格式(也可以被称为色度格式)可以相对于视频块中包括的亮度样本的数量来定义视频块中包括的色度样本的数量。例如,对于4:2:0采样格式,亮度分量的采样率是水平和垂直两个方向的色度分量的采样率的两倍。因此,对于根据4:2:0格式格式化的视频块,用于亮度分量的样本阵列的宽度和高度是用于色度分量的每个样本阵列的宽度和高度的两倍。对于根据4:2:2格式格式化的视频块,亮度分量的样本阵列的宽度是每个色度分量的样本阵列的宽度的两倍,但是亮度分量的样本阵列的高度等于每个色度分量的样本阵列的高度。此外,对于根据4:4:4格式格式化的视频块,亮度分量的样本阵列具有与每个色度分量的样本阵列相同的宽度和高度。

视频块可以根据扫描模式(例如:光栅扫描)在图片和/或区域内排序。视频编码器可对视频块和其子分区执行预测编码。视频块和其子分区可以被称为节点。itu-th.264规定了包括16×16亮度样本的宏块。也就是说,在itu-th.264中,图片被分割成宏块。itu-th.265指定了类似的编码树单元(ctu)结构(也称为最大编码单元(lcu))。在itu-th.265中,图片被分割成ctu。在itu-th.265中,对于图片,ctu尺寸可被设定为包括16×16、32×32或64×64亮度样本。在itu-th.265中,ctu由视频数据的每个分量(例如,亮度(y)和色度(cb和cr))的相应编码树块(ctb)组成。此外,在itu-th.265中,可根据四叉树(qt)划分结构来划分ctu,这使得ctu的ctb被划分为编码块(cb)。也就是说,在itu-th.265中,ctu可被划分为四叉树叶节点。根据itu-th.265,一个亮度cb连同两个对应的色度cb和相关联的语法元素被称为编码单元(cu)。在itu-th.265中,可以发送信号通知cb的最小允许大小。在itu-th.265中,亮度cb的最小允许最小大小是8×8亮度样本。在itu-th.265中,使用帧内预测或帧间预测对图片区域进行编码的决定在cu级进行。

在itu-th.265中,cu与在cu处具有其根的预测单元(pu)结构相关联。在itu-th.265中,pu结构允许分割亮度cb和色度cb以生成对应的参考样本。也就是说,在itu-th.265中,可将亮度cb和色度cb分割成相应的亮度和色度预测块(pb),其中pb包括应用了相同预测的样本值的块。在itu-th.265中,可将cb划分为1个、2个或4个pb。itu-th.265支持从64×64样本向下至4×4样本的pb大小。在itu-th.265中,支持正方形pb来进行帧内预测,其中cb可形成pb,或者cb可被分割成四个正方形pb(即,帧内预测pb类型包括m×m或m/2×m/2,其中m为正方形cb的高度和宽度)。在itu-th.265中,除了正方形pb之外,还支持矩形pb来进行帧间预测,其中cb可垂直地或水平地减半以形成pb(即,帧间预测pb类型包括m×m、m/2×m/2、m/2×m或m×m/2)。此外,应当指出的是,在itu-th.265中,对于帧间预测,支持四个非对称pb划分,其中cb在cb的高度(顶部或底部)或宽度(左侧或右侧)的四分之一处被划分为两个pb(即,非对称划分包括m/4×m左、m/4×m右、m×m/4顶部和m×m/4底部)。对应于pb的帧内预测数据(例如,帧内预测模式语法元素)或帧间预测数据(例如,运动数据语法元素)用于生成pb的参考和/或预测样本值。

如上所述,每个视频帧或图片可划分成一个或多个区域。例如:根据itu-th.265,每个视频帧或图片可以被划分为包括一个或多个片段,并且进一步被划分为包括一个或多个图块,其中每个片段包括ctu序列(例如:以光栅扫描顺序排列),并且其中图块是对应于图片的矩形区域的ctu序列。应当指出的是,在itu-th.265中片段是从独立片段分段开始并包含同一访问单元内的下一个独立片段分段(如果有的话)之前的所有后续从属片段分段(如果有的话)的一个或多个片段分段的序列。片段分段(如片段)是ctu序列。因此,在一些情况下,术语″片段″和″片段分段″可互换使用以指示ctu序列。此外,在itu-th.265中,图块可以由包含在不止一个片段中的ctu组成,并且片段可以由包含在不止一个图块中的ctu组成。然而,itu-th.265规定应满足以下一个或两个条件:(1)片段中的所有ctu属于同一个图块;以及(2)图块中的所有ctu属于同一个片段。参考jvet-k1001,已经提出,片段将需要由整数个完整图块组成,而不是仅需要由整数个完整ctu组成。因此,在一些视频编码技术中,可以支持或可以不支持包括不形成图片的矩形区域的一组ctu的片段。此外,需要由整数个完整图块组成的片段称为图块组。本文所述的技术可适用于片段、图块和/或图块组。图1是示出包括图块组的图片组的示例的概念图。在图1所示的示例中,图片4被示出为包括两个图块组(即,图块组1和图块组2)。应当注意,在一些情况下,图块组1和图块组2可被分类为片段和/或图块。

jem规定了具有最大大小的256×256亮度样本的ctu。jem指定了四叉树加二叉树(qtbt)块结构。在jem中,qtbt结构允许由二叉树(bt)结构进一步划分四叉树叶节点。也就是说,在jem中,二叉树结构允许将四叉树叶节点垂直或水平递归划分。在jvet-k1001中,ctu根据qtmt(quadtreeplusmulti-typetree,四叉树加多类型树)结构划分。jvet-k1001中的qtmt类似于jem中的qtbt。然而,在jvet-k1001中,除了指示二元分割之外,多类型树还可指示所谓的三元(或tt(tripletree,三叉树))分割。三元分割将块竖直地或水平地划分成三个块。在竖直tt分割的情况下,从左边缘在其宽度的四分之一处和从右边缘在其宽度的四分之一处划分块,并且在水平tt分割的情况下,从顶部边缘在其高度的四分之一处和从底部边缘在其高度的四分之一处划分块。再次参考图1,图1示出了将ctu划分为四叉树叶节点并且根据bt分割或tt分割将四叉树叶节点进一步划分的示例。也就是说,在图1中,虚线指示四叉树中的附加二元和三元划分。

如上所述,帧内预测数据或帧间预测数据用于产生当前视频块的参考样本值。根据参考样本值生成的预测中包括的样本值和当前视频块之间的差异可以称为残差数据。残差数据可以包括对应于视频数据的每个分量的相应差值阵列。残差数据可能在像素域中。可对差值阵列应用变换诸如离散余弦变换(dct)、离散正弦变换(dst)、整数变换、小波变换或概念上类似的变换,以生成变换系数。应当指出的是,在itu-th.265和中jvet-k1001,cu与在cu级具有其根的tu(transformunit,变换单元)结构相关联。也就是说,为了生成变换系数,可以对差值的阵列进行划分(例如:可以将四个8×8变换应用于16×16残差值阵列)。对于视频数据的每个分量,差值的此类再分可被称为变换块(tb)。应当指出的是,在一些情况下,可以(在视频编码器中)应用核心变换和后续二次变换来生成变换系数。对于视频解码器,变换的顺序是相反的。

可以对变换系数执行量化处理。量化实质上对变换系数进行缩放以便改变表示一组变换系数所需的数据量。量化可包括将变换系数除以量化缩放因子和任何相关联的取整函数(例如,取整为最接近的整数)。量化的变换系数可以被称为系数位阶值。逆量化(或″去量化″)可以包括将系数位阶值与量化缩放因子相乘。应当指出的是,如本文所用,术语量化过程在一些情况下可指除以缩放因子以生成位阶值,并且在一些情况下可指乘以缩放因子以恢复变换系数。也就是说,量化过程在一些情况下可以指量化,而在一些情况下可以指逆量化。

图2a至图2b是示出对视频数据块进行编码的示例的概念图。如图2a所示,通过从视频数据的当前块中减去一组预测值生成残差、对残差执行变换并且将变换系数量化来生成位阶值,对视频数据的当前块进行编码。如图2b中所示,通过对位阶值执行逆量化,执行逆变换,并且将一组预测值加上所得残差来对当前视频数据块进行解码。应当指出的是,在图2a至图2b的示例中,重构块的样本值不同于被编码的当前视频块的样本值。这样,编码可被认为是有损的。然而,对于重构视频的观看者,样本值的差值可被认为是可接受的或不可察觉的。另外,如图2a至图2b所示,使用缩放因子阵列执行缩放。

如图2a所示,量化的变换系数被编码成比特流。可根据熵编码技术对量化的变换系数和语法元素(例如,指示视频块的编码结构的语法元素)进行熵编码。熵编码技术的示例包括内容自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)、概率区间划分熵编码(pipe)等。熵编码的量化变换系数和对应的熵编码的语法元素可形成可用于在视频解码器处再现视频数据的兼容比特流。熵编码过程可包括对语法元素进行二值化。二值化是指将语法值的值转换为一个或多个位的序列的过程。这些位可以被称为″二进制位″。二值化是一个无损过程,并且可以包括以下编码技术中的一种或组合:固定长度编码、一元编码、截断一元编码、截断rice编码、golomb编码、k阶指数golomb编码和golomb-rice编码。例如,二值化可包括使用8位固定长度二值化技术将语法元素的整数值5表示为00000101,或者使用一元编码二值化技术将整数值5表示为11110。如本文所用,术语固定长度编码、一元编码、截断一元编码、截断rice编码、golomb编码、k阶指数golomb编码和golomb-rice编码中的每一个可以指这些技术的一般实现和/或这些编码技术的更具体实现。例如,可以根据视频编码标准(例如,itu-th.265)具体地定义golomb-rice编码实现。

熵编码过程还包括使用无损数据压缩算法对箱值进行编码。在cabac的示例中,对于特定箱,可从与该箱相关联的一组可用上下文模型中选择一个上下文模型。在一些示例中,可以基于先前的箱和/或先前语法元素的值来选择上下文模型。上下文模型可以识别某个箱具有特定值的概率。例如:上下文模型可以指示对0值箱进行编码的概率为0.7。在选择可用的上下文模型之后,cabac熵编码器可以基于所识别的上下文模型对箱进行算术编码。可以基于已编码的箱的值来更新上下文模型。可基于与上下文一起存储的相关联的变量例如适应窗口大小、使用上下文的已编码的箱的数量,来更新上下文模型。应当指出的是,可以实现cabac熵编码器,使得可以使用算术编码对一些语法元素进行熵编码而不使用明确指定的上下文模型,此类编码可以被称为旁路编码。

如上所述,帧内预测数据或帧间预测数据指示如何为当前视频块生成预测。对于帧内预测编码,帧内预测模式可指定用于生成预测的图片内的参考样本的位置。在itu-th.265中,已定义的可能的帧内预测模式包括平面(即,表面拟合)预测模式(predmode:0)、dc(即平坦的整体平均)预测模式(predmode:1),以及33个角度预测模式(predmode:2-34)。在jvet-k1001中,已定义的可能的针对亮度的帧内预测模式包括平面预测模式(predmode:0)、dc预测模式(predmode:1),以及65个角度预测模式(predmode:2-66)。应当指出的是,平面预测模式和dc预测模式可以被称为无方向预测模式,并且角度预测模式可以被称为方向预测模式。此外,可能存在可以基于亮度分量的帧内预测模式导出色度分量的帧内预测模式的各种方式。应当指出的是,无论已定义的可能预测模式的数量如何,本文描述的技术可以是普遍适用的。

对于帧间预测编码,确定一个或多个先前解码的图片,即,确定参考图片,并且mv(motionvector,运动矢量)识别参考图片中用于生成当前视频块的预测的样本。例如:可以使用位于一个或多个先前编码的图片中的参考样本值来预测当前视频块,并且使用运动矢量来指示参考块相对于当前视频块的位置。运动矢量可描述例如运动矢量的水平位移分量(即,mvx)、运动矢量的竖直位移分量(即,mvy)和运动矢量的分辨率(例如:四分之一像素精度、二分之一像素精度、一像素精度、二像素精度、四像素精度)。先前解码的图片(其可包括在当前图片之前或之后输出的图片)可被组织进一个或多个参考图片列表,并且使用参考图片索引值来进行识别。此外,在帧间预测编码中,单预测是指使用来自单个参考图片的样本值来生成预测,双预测是指使用来自两个参考图片的相应样本值来生成预测。也就是说,在单预测中,单个参考图片和对应的运动矢量用于生成当前视频块的预测,并且在双预测中,第一参考图片和对应的第一运动矢量以及第二参考图片和对应的第二运动矢量用于生成当前视频块的预测。在双预测中,将相应的样本值进行组合(例如:相加、舍入和剪辑,或加权平均)以生成预测。图片及其区域可基于哪些类型的预测模式可用于对其视频块进行编码来进行分类。也就是说,对于具有b类型的区域(例如:b片段),可以利用双预测、单预测和帧内预测模式,对于具有p类型的区域(例如:p片段),可以利用单预测和帧内预测模式,并且对于具有i类型的区域(例如:i片段),可以利用仅帧内预测模式。如上所述,通过参考索引识别参考图片。在itu-th.265中,对于p片段,存在单个参考图片列表refpiclist0,并且对于b片段,除了refpiclist0之外,还存在第二独立参考图片列表refpiclist1。应当注意,对于b片段中的单预测,可以使用refpiclist0或refpiclist1中的一者来生成预测。此外,需注意,在itu-th.265中,在解码过程期间,在开始对图片进行解码时,从存储在dpb(decodedpicturebuffer,解码图片缓冲器)中的先前解码图片生成参考图片列表。

此外,编码标准可支持各种运动矢量预测模式。运动向量预测使能够基于另一运动向量来导出该运动向量的值。运动矢量预测的示例包括高级运动矢量预测(amvp)、时间运动矢量预测(tmvp)、所谓的〞合并″模式,以及″跳过″和″直接″运动推理。此外,运动矢量预测的其他示例包括高级时间运动矢量预测(atmvp)和空间-时间运动矢量预测(stmvp)。itu-th.265支持用于运动向量预测的两种模式:合并模式和所谓的高级运动向量预测(amvp)。在itu-th.265中,对于当前pb的合并模式和amvp两者,导出一组候选块。视频编码器和视频解码器两者执行相同的过程以导出一组候选。因此,对于当前视频块,在编码和解码期间生成相同组的候选。候选块包括具有相关联的运动信息的视频块,从该相关联的运动信息可导出用于生成当前视频块的预测的运动信息。对于itu-th.265中的合并模式,与所选择的候选相关联的所有运动信息(即运动向量位移值、参考图片索引和参考图片列表)被继承作为当前pb的运动信息。也就是说,在视频编码器处,从导出组的候选中选择候选块,并且包括在比特流中的索引值指示所选择的候选,并因此指示当前pb的运动信息。对于itu-th.265中的amvp,用于所选择的候选的运动向量信息被用作当前pb的运动向量的预测运动向量(mvp)。也就是说,在视频编码器处,从导出组的候选中选择候选块,并且指示所选择的候选的索引值和指示预测运动向量与当前pb的运动向量之间的差值的增量值(即,运动矢量增量(mvd))包括在比特流中。此外,对于itu-th.265中的amvp,标识参考图片的语法元素包括在比特流中。可以从空间相邻块和时间块导出一组候选块。此外,所生成的(或默认的)运动信息可用于运动向量预测。

关于本文所用的公式,可使用以下算术运算符:

+加法

-减法

*乘法,包括矩阵乘法

xy求幂。将x指定为y的幂。在其他上下文中,此类符号用于上标而非旨在用于解释为求幂。

/将结果向着零截断的整数除法。例如,将7/4和-7/-4截断为1,并且将-7/4和7/-4截断为-1。

÷在不旨在进行截断或舍入情况下用于表示数学公式中的除法。

x/y在不旨在进行截断或舍入情况下用于表示数学公式中的除法。

此外,可使用以下数学函数:

log2(x),以2为底的x的对数;

ceil(x),大于或等于x的最小整数。

关于本文使用的示例性语法,可以应用以下逻辑运算符的定义:

x&&yx和y的布尔逻辑″和″

x||yx和y的布尔逻辑〞或〞

!布尔逻辑″否″

x?y:z如果x为true或不等于0,则求值为y;否则,求值为z。

此外,可以应用以下关系运算符:

>大于

>=大于或等于

<小于

<=小于或等于

==等于

!=不等于

此外,应当指出的是,在本文所用的语法描述符中,可以应用以下描述符:

-b(8):具有任何位串模式的字节(8位)。该描述符的解析过程由函数read_bits(8)的返回值指定。

-f(n):使用首先写入左位的n位(从左到右)的固定图案位串。该描述符的解析过程由函数read_bits(n)的返回值指定。

-u(n):使用n位的无符号整数。

-ue(v):首先写入左位的无符号整数0阶exp-golomb编码语法元素。

在一些情况下,例如:对于360度视频,对于帧间预测,使用参考图片的水平几何填充。″ce13:perp和参考图片的水平几何填充(试行3.3)″,2018年10月3日至12日在中国澳门举行的iso/iecjtc1/sc29/wg11第12次会议的文档jvet-l0231-r2,其在本文中称为jvet-l0231,描述了使用perp(paddedequirectangularprojection,填充的等矩形投影)的参考图片的水平几何填充。参考图片的水平几何填充包括通过使用例如:重复填充或使用perp在图片的左边界和右边界处添加像素值。应当指出的是,在使用perp的水平几何填充的情况下,在竖直方向上仍可采用传统的重复填充。使用perp可减少重建视区中的接缝伪影,该重建视区涵盖用于填充的等矩形投影的erp(equirectangularprojection,等矩形投影)图片的左边界和右边界。图3是示出具有jvet-l0231中所述的水平几何填充的当前图片的帧间预测的示例的概念图。如图3所示,当前图片具有输入图片宽度inputpicwidth和输入图片高度inputpicheight,其对应于填充的等矩形投影图片的宽度和高度,以及等矩形投影宽度(erp宽度),其对应于等矩形投影图片的宽度。如图3所示,在erp图片的左右边界处添加填充。如图3中进一步所示,对于帧间预测,对于当前预测单元,运动矢量识别参考图片中的参考块。在图3所示的示例中,参考块在左参考图片边界之外。因此,如图3所示,其被替换为向右移位了erp宽度的″环绕式″参考块。

jvet-l0231描述了可结合到jvet-k1001中的参考环绕式信令和解码过程。jvet-l0231中的信令允许指定水平偏移,该水平偏移用于进行帧间预测的水平环绕式运动补偿,其中该偏移指示如果参考块在参考图片边界之外,则将参考块的一部分向右或向左环绕多远。表1示出了可以包括在sps(sequenceparameterset,序列参数集)中以实现erp和perp格式的参考图片的水平几何填充的语法元素。

表1

参考表1,jvet-l0231为相应语法元素提供以下定义。

sps_ref_wraparound_enabled_flag等于1指定水平环绕式运动补偿用于帧间预测。

sps_ref_wraparound_enabled_flag等于0指定不应用这种运动补偿方法。

ref_wraparound_offset指定用于计算水平环绕式位置的偏移,单位为亮度样本。

ref_wraparound_offset应不等于0,应不大于pic_width_in_luma_samples,并且应是mincbsizey的整数倍。

应当指出的是,mincbsizey和subwidthc在jvet-l1001中定义如下:

mincbsizey=1<<mincblog2sizey,其中mincblog2sizey=2;以及

subwidthc等于1(即,对于单色和4:4:4)或2(即,对于4:2:0和4:2:2)

应当指出的是,在jvet-l0231中,perp的水平几何填充与erp的水平几何填充相同,不同的是偏移应基于未填充的erp宽度而不是图片宽度,以考虑填充区域的尺寸。jvet-l0231还提供了以下亮度和色度样本插值过程。

亮度样本插值过程

该过程的输入为:

-亮度位置(xintl,yintl),单位为全样本,

-亮度位置(xfracl,yfracl),单位为分数样本,

-亮度参考样本阵列refpiclxl。

该过程的输出是预测的亮度样本值predsamplelxl。

变量shift1、shift2和shift3导出如下:

-变量shift1被设置为等于min(4,bitdepthy-8),变量shift2被设置为等于6,并且变量shift3被设置为等于max(2,14-bitdepthy)。

-变量picw被设置为等于pic_width_in_luma_samples,并且变量pich被设置为等于pic_height_in_luma_samples。

-变量xoffset被设置为等于ref_wraparound_offset。

表2中指定了等于xfracl或yfracl的每个1/16分数样本位置p的亮度插值滤波器系数fl[p]。

表2

预测的亮度样本值predsamplelxl导出如下:

-如果xfracl和yfracl两者都等于0,则应用以下内容:

-如果sps_ref_wraparound_enabled_flag等于0,则predsamplelxl的值导出如下:

predsamplelxl=refpiclxl[clip3(0,picw-1,xintl)][clip3(0,pich-1,yintl)]<<shift3

-否则,predsamplelxl的值导出如下:

predsamplelxl=refpiclxl[cliph(xoffset,picw,xintl)][clip3(0,pich-1,yintl)]<<shift3

-否则,如果xfracl不等于0并且yfracl等于0,则应用以下内容:

-yposl的值导出如下:

yposl=clip3(0,pich-1,yintl)

-如果sps_ref_wraparound_enabled_flag等于0,则predsamplelxl的值导出如下:

predsamplelxl=(fl[xfrack][0]*refpiclxl[clip3(0,picw-1,xintl-3)][yposl]+fl[xfracl][1]*refpiclxl[clip3(0,picw-1,xintl-2)][yposl]+fl[xfracl][2]*refpiclxl[clip3(0,picw-1,xintl-1)][yposl]+fl[xfracl][3]*refpiclxl[clip3(0,picw-1,xintl)][yposl]+fl[xfracl][4]*refpiclxl[clip3(0,picw-1,xintl+1)][yposl]+fl[xfracl][5]*refpiclxl[clip3(0,picw-1,xintl+2)][yposl]+fl[xfracl][6]*refpiclxl[clip3(0,picw-1,xintl+3)][yposl]+fl[xfracl][7]*refpiclxl[clip3(0,picw-1,xintl+4)][yposl])>>shift1

-否则,predsamplelxl的值导出如下:

predsamplelxl=(fl[xfracl][0]*refpiclxl[cliph(xoffset,picw,xintl-3)][yposl]+fl[xfracl][1]*refpiclxl[cliph(xoffset,picw,xintl-2)][yposl]+fl[xfracl][2]*refpiclxl[cliph(xoffset,picw,xintl-1)][yposl]+fl[xfracl][3]*refpiclxl[cliph(xoffset,picw,xintl)][yposl]+fl[xfracl][4]*refpiclxl[cliph(xoffset,picw,xintl+1)][yposl]+fl[xfracl][5]*refpiclxl[cliph(xoffset,picw,xintl+2)][yposl]+fl[xfracl][6]*refpiclxl[cliph(xoffset,picw,xintl+3)][yposl]+fl[xfracl][7]*refpiclxl[cliph(xoffset,picw,xintl+4)][yposl])>>shift1

-否则,如果xfracl等于0并且yfracl不等于0,则predsamplelxl的值导出如下:

-如果sps_ref_wraparound_enabled_flag等于0,则xposl的值导出如下:

xposl=clip3(0,picw-1,xintl)

-否则,xposl的值导出如下:

xposl=cliph(xoffset,picw,xintl)

-预测的亮度样本值predsamplelxl导出如下:

predsamplelxl=(fl[yfracl][0]*refpiclxl[xposl][clip3(0,pich-1,yintl-3)]+fl[yfracl][1]*refpiclxl[xposl][clip3(0,pich-1,yintl-2)]+fl[yfracl][2]*refpiclxl[xposl][clip3(0,pich-1,yintl-1)]+fl[yfracl][3]*refpiclxl[xposl][clip3(0,pich-1,yintl)]+fl[yfracl][4]*refpiclxl[xposl][clip3(0,pich-1,yintl+1)]+fl[yfracl][5]*refpiclxl[xposl][clip3(0,pich-1,yintl+2)]+fl[yfracl][6]*refpiclxl[xposl][clip3(0,pich-1,yintl+3)]+fl[yfracl][7]*refpiclxl[xposl][clip3(0,pich-1,yintl+4)])>>shift1

-否则,如果xfracl不等于0并且yfracl不等于0,则predsamplelxl的值导出如下:

-如果sps_ref_wraparound_enabled_flag等于0,则样本阵列temp[n](其中n=0...7)导出如下:

yposl=clip3(0,pich-1,yintl+n-3)

temp[n]=(fl[xfracl][0]*refpiclxl[clip3(0,picw-1,xintl-3)][yposl]+fl[xfracl][1]*refpiclxl[clip3(0,picw-1,xintl-2)][yposl]+fl[xfracl][2]*refpiclxl[clip3(0,picw-1,xintl-1)][yposl]+fl[xfracl][3]*refpiclxl[clip3(0,picw-1,xintl)][yposl]+fl[xfracl][4]*refpiclxl[clip3(0,picw-1,xintl+1)][yposl]+fl[xfracl][5]*refpiclxl[clip3(0,picw-1,xintl+2)][yposl]+fl[xfracl][6]*refpiclxl[clip3(0,picw-1,xintl+3)][yposl]+fl[xfracl][7]*refpiclxl[clip3(0,picw-1,xintl+4)][yposl])>>shift1

-否则,样本阵列temp[n](其中n=0...7)导出如下:

yposl=clip3(0,pich-1,yintl+n-3)

temp[n]=(fl[xfracl][0]*refpiclxl[cliph(xoffset,picw,xintl-3)][yposl]+fl[xfracl][1]*refpiclxl[cliph(xoffset,picw,xintl-2)][yposl]+fl[xfracl][2]*refpiclxl[cliph(xoffset,picw,xintl-1)][yposl]+fl[xfracl][3]*refpiclxl[cliph(xoffset,picw,xintl)][yposl]+fl[xfracl][4]*refpiclxl[cliph(xoffset,picw,xintl+1)][yposl]+fl[xfracl][5]*refpiclxl[cliph(xoffset,picw,xintl+2)][yposl]+fl[xfracl][6]*refpiclxl[cliph(xoffset,picw,xintl+3)][yposl]+fl[xfracl][7]*refpiclxl[cliph(xoffset,picw,xintl+4)][yposl])>>shift1

-预测的亮度样本值predsamplelxl导出如下:

predsamplelxl=(fl[yfracl][0]*temp[0]+fl[yfracl][1]*temp[1]+fl[yfracl]2]*temp[2]+fl[yfracl][3]*temp[3]+fl[yfracl][4]*temp[4]+fl[yfracl][5]*temp[5]+fl[yfracl][6]*temp[6]+fl[yfracl][7]*temp[7])>>shift2

色度样本插值过程

该过程的输入为:

-色度位置(xintc,yintc),单位为全样本,-色度位置(xfracc,yfracc),单位为1/32分数样本,

-色度参考样本阵列refpiclxc。

该过程的输出是预测的色度样本值predsamplelxc。

变量shift1、shift2和shift3导出如下:

-变量shift1被设置为等于min(4,bitdepthc-8),变量shift2被设置为等于6,并且变量shift3被设置为等于max(2,14-bitdepthc)。

-变量picwc被设置为等于pic_width_in_luma_samples/subwidthc,并且变量pichc被设置为等于pic_height_in_luma_samples/subheightc。

-变量xoffsetc被设置为等于ref_wraparound_offset/subwidthc。

表3中指定了等于xfracc或yfracc的每个1/32分数样本位置p的亮度插值滤波器系数fc[p]。

表3

预测的色度样本值predsamplelxc导出如下:

-如果xfracc和yfracc两者都等于0,则应用以下内容:

-如果sps_ref_wraparound_enabled_flag等于0,则predsamplelxc的值导出如下:

predsamplelxc=refpiclxc[clip3(0,picwc-1,xintc)][clip3(0,pichc-1,yintc)]<<shift3

-否则,predsamplelxc的值导出如下:

predsamplelxc=refpiclxc[cliph(xoffsetc,picwc,xintc)][clip3(0,pichc-1,yintc)]<<shift3

-否则,如果xfracc不等于0并且yfracc等于0,则应用以下内容:

-yposc的值导出如下:

yposc=clip3(0,pichc-1,yintc)

-如果sps_ref_wraparound_enabled_flag等于0,则predsamplelxc的值导出如下:

predsamplelxc=fc[xfracc][0]*refpiclxc[clip3(0,picwc-1,xintc-1)][yintc]+fc[xfracc][1]*refpiclxc[clip3(0,picwc-1,xintc)][yintc]+fc[xfracc][2]*refpiclxc[clip3(0,picwc-1,xintc+1)][yintc]+fc[xfracc][3]*refpiclxc[clip3(0,picwc-1,xintc+2)][yintc])>>shift1

-否则,predsamplelxc的值导出如下:

predsamplelxc=(fc[xfracc][0]*refpiclxc[cliph(xoffsetc,picwc,xintc-1)][yposc]+fc[xfracc][1]*refpiclxc[cliph(xoffsetc,picwc,xintc)][yposc]+fc[xfracc][2]*refpiclxc[cliph(xoffsetc,picwc,xintc+1)][yposc]+fc[xfracc][3]*refpiclxc[cliph(xoffsetc,picwc,xintc+2)][yposc])>>shift1

-否则,如果xfracc等于0并且yfracc不等于0,则predsamplelxc的值导出如下:

-如果sps_ref_wraparound_enabled_flag等于0,则xposc的值导出如下:

xposc=clip3(0,picwc-1,xintc)

-否则,xposc的值导出如下:

xposc=cliph(xoffsetc,picwc,xintc)

-预测的色度样本值predsamplelxc导出如下:

predsamplelxc=(fc[yfracc][0]*refpiclxc[xposc][clip3(0,pichc-1,yintc-1)]+fc[yfracc][1]*refpiclxc[xposc][clip3(0,pichc-1,yintc)]+fc[yfracc][2]*refpiclxc[xposc][clip3(0,pichc-1,yintc+1)]+fc[yfracc][3]*refpiclxc[xposc][clip3(0,pichc-1,yintc+2)])>>shift1

-否则,如果xfracc不等于0并且yfracc不等于0,则predsamplelxc的值导出如下:

-如果sps_ref_wraparound_enabled_flag等于0,则样本阵列temp[n](其中n=0...3)导出如下:

yposc=clip3(0,pichc-1,yintc+n-1)

temp[n]=(fc[xfracc][0]*refpiclxc[clip3(0,picwc-1,xintc-1)][yposc]+fc[xfracc][1]*refpiclxc[clip3(0,picwc-1,xintc)][yposc]+fc[xfracc][2]*refpiclxc[clip3(0,picwc-1,xintc+1)][yposc]+fc[xfracc][3]*refpiclxc[clip3(0,picwc-1,xintc+2)][yposc])>>shift1

-否则,样本阵列temp[n](其中n=0...3)导出如下:

yposc=clip3(0,pichc-1,yintc+n-1)

temp[n]=(fc[xfracc][0]*refpiclxc[cliph(xoffsetc,picwc,xintc-1)][yposc]+fc[xfracc][1]*refpiclxc[cliph(xoffsetc,picwc,xintc)][yposc]+fc[xfracc][2]*refpiclxc[cliph(xoffsetc,picwc,xintc+1)][yposc]+fc[xfracc][3]*refpiclxc[cliph(xoffsetc,picwc,xintc+2)][yposc])>>shift1

-预测的色度样本值predsamplelxc导出如下:

predsamplelxc=(fc[yfracc][0]*temp[0]+fc[yfracc][1]*temp[1]+fc[yfracc][2]*temp[2]+fc[yfracc][3]*temp[3])>>shift2

jvet-l0231中提供的参考环绕式信令至少具有以下缺点:不允许参考环绕偏移的值为零。由于在jvet-l0231中,使用ue(v)编码发送信号通知参考环绕式偏移,其中值0采用最小位数,因此jvet-l0231中的信令效率低下,因为其实际上浪费了(通过不允许)发送信号通知值0。此外,如jvet-l0231中所定义的语法元素ref_wraparound_offset是需要是mincbsizey的整数倍的样本值,这是低效的,因为不允许可能发送信号通知的各种样本值。因此,jvet-l0231中所述的参考环绕式信令和解码过程可能不太理想。

图4是示出根据本公开的一种或多种技术的可以被配置为对视频数据进行编码(例如,编码和/或解码)的系统的示例的框图。系统100表示可根据本公开的一个或多个示例使用运动向量预测技术执行视频编码的系统的示例。如图4所示,系统100包括源设备102、通信介质110和目标设备120。在图4所示的示例中,源设备102可以包括被配置为对视频数据进行编码并将编码的视频数据传输到通信介质110的任何设备。目标设备120可包括被配置为经由通信介质110接收编码视频数据并且对编码视频数据进行解码的任何设备。源设备102和/或目标设备120可包括配备用于进行有线和/或无线通信的计算设备,并且可以包括机顶盒、数字视频录像机、电视机、台式电脑、膝上型电脑或平板电脑、游戏控制台、移动设备包括例如″智能″电话、蜂窝电话、个人游戏设备和医学成像设备。

通信介质110可以包括无线和有线通信介质和/或存储设备的任意组合。通信介质110可以包括同轴电缆、光纤电缆、双绞线电缆、无线发射器和接收器、路由器、交换机、中继器、基站或可用于促进各种设备和站点之间的通信的任何其他设备。通信介质110可以包括一个或多个网络。例如,通信介质110可以包括被配置为允许访问万维网例如互联网的网络。网络可以根据一个或多个电信协议的组合来运营。电信协议可以包括专有方面和/或可以包括标准化电信协议。标准化电信协议的示例包括数字视频广播(dvb)标准、高级电视系统委员会(atsc)标准、综合服务数字广播(isdb标准、有线数据业务接口规范(docsis)标准、全球移动通信系统(gsm)标准、码分多址(cdma)标准、第3代合作伙伴计划(3gpp)标准、欧洲电信标准协会(etsi)标准、互联网协议(ip)标准、无线应用协议(wap)标准以及电气与电子工程师协会(ieee)标准。

存储设备可以包括能够存储数据的任何类型的设备或存储介质。存储介质可以包括有形或非暂态计算机可读介质。计算机可读介质可以包括光盘、闪存、磁存储器或任何其他合适的数字存储介质。在一些示例中,存储器设备或其部分可以被描述为非易失性存储器,并且在其他示例中,存储器设备的部分可以被描述为易失性存储器。易失性存储器的示例可以包括随机存取存储器(ram)、动态随机存取存储器(dram)和静态随机存取存储器(sram)。非易失性存储器的示例可以包括磁性硬盘、光盘、软盘、闪存或电可编程存储器(eprom)或电可擦除和可编程(eeprom)存储器的形式。一个或多个存储设备可以包括存储卡(例如,安全数字(sd)存储卡)、内部/外部硬盘驱动器和/或内部/外部固态驱动器。数据可以根据定义的文件格式存储在存储设备上。

再次参考图4,源设备102包括视频源104、视频编码器106和接口108。视频源104可包括被配置为捕获和/或存储视频数据的任何设备。例如,视频源104可以包括摄像机和可操作地与其耦接的存储设备。视频编码器106可包括被配置为接收视频数据并生成表示视频数据的兼容比特流的任何设备。兼容比特流可以指视频解码器可以从其接收和再现视频数据的比特流。兼容比特流的各方面可根据视频编码标准来定义。当生成兼容比特流时,视频编码器106可以压缩视频数据。压缩可能是有损的(可觉察的或不可觉察的)或无损的。接口108可以包括被配置为接收兼容视频比特流并且将该兼容视频比特流传输和/或存储到通信介质的任何设备。接口108可以包括网络接口卡诸如以太网卡,并且可以包括光收发器、射频收发器或者可以发送和/或接收信息的任何其他类型的设备。此外,接口108可以包括计算机系统接口,该计算机系统接口可以允许兼容视频比特流存储在存储设备上。例如,接口108可以包括支持外围部件互连(pci)和高速外围部件互连(pcie)总线协议、专用总线协议、通用串行总线(usb)协议、i2c的芯片组、或可用于互连对等设备的任何其他逻辑和物理结构。

再次参考图4,目标设备120包括接口122、视频解码器124和显示器126。接口122可以包括被配置为从通信介质接收兼容视频比特流的任何设备。接口108可以包括网络接口卡诸如以太网卡,并且可以包括光收发器、射频收发器或者可接收和/或发送信息的任何其他类型的设备。此外,接口122可以包括允许从存储设备检索兼容视频比特流的计算机系统接口。例如,接口122可以包括支持pci和pcie总线协议、专用总线协议、usb协议、i2c的芯片组,或者可用于互连对等设备的任何其他逻辑和物理结构。视频解码器124可包括被配置为接收兼容比特流和/或其可接受变体,并且从其再现视频数据的任何设备。显示器126可以包括被配置为显示视频数据的任何设备。显示器126可以包括各种显示设备诸如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另外的类型的显示器中的一种。显示器126可以包括高清显示器或超高清显示器。应当指出的是,虽然在图4所示的示例中,视频解码器124被描述为将数据输出到显示器126,但视频解码器124可被配置为将视频数据输出到各种类型的设备和/或其子部件。例如,视频解码器124可被配置为将视频数据输出到任何通信介质,如本文所述。

图5是示出可实现本文所述的用于对视频数据进行编码的技术的视频编码器200的示例的框图。应当指出的是,尽管示例性视频编码器200被示出为具有不同的功能块,但此类图示旨在用于描述目的,并且不将视频编码器200和/或其子部件限制为特定的硬件或软件架构。可使用硬件、固件和/或软件具体实施的任何组合来实现视频编码器200的功能。在一个示例中,视频编码器200可被配置为根据本文描述的技术对视频数据进行编码。视频编码器200可执行图片区域的帧内预测编码和帧间预测编码,并且因此可被称为混合视频编码器。在图5所示的示例中,视频编码器200接收源视频块。在一些示例中,源视频块可以包括已经根据编码结构划分的图片区域。例如,源视频数据可包括宏块、ctu、cb、其子分区和/或另外的等效编码单元。在一些示例中,视频编码器200可被配置为执行源视频块的额外再分。应当指出的是,本文所述的一些技术可普遍适用于视频编码,无论在编码之前和/或期间如何划分源视频数据。在图5所示的示例中,视频编码器200包括求和器202、变换系数生成器204、系数量化单元206、逆量化/变换处理单元208、求和器210、帧内预测处理单元212、帧间预测处理单元214、滤波器单元216和熵编码单元218。

如图5所示,视频编码器200接收源视频块并输出比特流。视频编码器200可通过从源视频块中减去预测视频块来生成残差数据。求和器202表示被配置为执行该减法运算的部件。在一个示例中,在像素域中发生视频块的减去。变换系数生成器204将变换,诸如离散余弦变换(discretecosinetransform,dct)、离散正弦变换(discretesinetransform,dst)或概念上类似的变换,应用到其残余块或子分区(例如,可以将四个8×8变换应用于16×16残差值阵列)以生成一组残差变换系数。变换系数生成器204可以被配置为执行离散三角变换系列中包括的变换的任意和全部组合。变换系数生成器204可将变换系数输出到系数量化单元206。系数量化单元206可被配置为执行变换系数的量化。如上所述,可以通过调整量化参数来修改量化程度。系数量化单元206可进一步被配置为确定量化参数(qp)并且输出qp数据(例如,用于确定量化组尺寸和/或增量qp值的数据),视频解码器可使用该qp数据来重构量化参数以在视频解码期间执行逆量化。应当注意的是,在其他示例中,可以使用一个或多个附加或另选的参数来确定量化位阶(例如,缩放因子)。本文所述的技术通常可应用于基于对应于视频数据的某一分量的变换系数的量化位阶,确定对应于视频数据的另一分量的变换系数的量化位阶。

如图5所示,量化的变换系数被输出到逆量化/变换处理单元208。逆量化/变换处理单元208可被配置为应用逆量化和逆变换来生成重构的残差数据。如图5所示,在求和器210处,重构的残差数据可以被添加到预测视频块。这样,可以重构编码的视频块,并且可以使用所得重构的视频块来评估给定的预测、变换和/或量化的编码质量。视频编码器200可被配置为执行多个编码回合(例如,在改变预测、变换参数和量化参数中的一个或多个的同时执行编码)。比特流的率失真或其他系统参数可以基于重构的视频块的评估来优化。此外,重构的视频块可被存储并用作预测后续块的参考。

如上所述,可使用帧内预测模式对视频块进行编码。帧内预测处理单元212可被配置为针对当前视频块选择帧内预测模式。帧内预测处理单元212可被配置为评估帧和/或其区域并且确定用以对当前块进行编码的帧内预测模式。如图5所示,帧内预测处理单元212将帧内预测数据(例如,语法元素)输出到熵编码单元218和变换系数生成器204。如上所述,可能的帧内预测模式可以包括平面预测模式、dc预测模式和角度预测模式。帧间预测处理单元214可被配置为针对当前视频块执行帧间预测编码。帧间预测处理单元214可被配置为接收源视频块并且计算视频块的pu的运动信息。运动矢量可以指示当前视频帧内的视频块的pu(或类似的编码结构)相对于参考帧内的预测块的位移。帧间预测编码可以使用一个或多个参考图片。例如,帧间预测处理单元214可定位帧缓冲器内的预测视频块(图5中未示出)。需注意,帧间预测处理单元214可以进一步被配置为将一个或多个内插滤波器应用于重构的残差块,以计算用于运动估计的子整数像素值。此外,运动预测可以是单向预测(使用一个运动矢量)或双向预测(使用两个运动矢量)。帧间预测处理单元214可被配置为通过计算由例如绝对差之和(sad)、平方差之和(ssd)或其他差值度量确定的像素差来选择预测块。帧间预测处理单元214可将所计算的运动矢量的运动预测数据输出到熵编码单元218。

如上所述,jvet-l0231中所述的参考环绕式信令和解码过程可能不太理想。在一个示例中,根据本文的技术,视频编码器200可被配置为使用减一编码来发送信号通知参考环绕式偏移。具体地讲,表4示出了根据本文的技术的可包括在sps中(或在一些示例中,包括在另一个参数集中和/或图块组标头中)以实现erp和perp格式的参考图片的水平几何填充的示例性语法元素。

表4

参考表4,以下定义可用于相应语法元素。

sps_ref_wraparound_enabled_flag等于1指定水平环绕式运动补偿用于帧间预测。sps_ref_wraparound_enabled_flag等于0指定不应用这种运动补偿方法。ref_wraparound_offset_minus1加1指定用于计算水平环绕式位置的偏移,单位为mincbsizey样本。ref_wraparound_offset_minus1应在0至(pic_width_in_luma_samples/mincbsizey)-1的范围内(包括端值)。

应当指出的是,在一些示例中,ref_wraparound_offset_minus1可称为sps_ref_wraparound_offset_minus1。参考根据表4所示的示例,在一个示例中,对应的亮度样本8抽头插值滤波过程可以指定如下:

该过程的输入为:

-亮度位置(xintl,yintl),单位为全样本,

-亮度位置(xfracl,yfracl),单位为分数样本,

-亮度参考样本阵列refpiclxl。

该过程的输出是预测的亮度样本值predsamplelxl。

变量shift1、shift2和shift3导出如下:

-变量shift1被设置为等于min(4,bitdepthy-8),变量shift2被设置为等于6,并且变量shift3被设置为等于max(2,14-bitdepthy)。

-变量picw被设置为等于pic_width_in_luma_samples,并且变量pich被设置为等于pic_height_in_luma_samples。

表4a中指定了等于xfracl或yfracl的每个1/16分数样本位置p的亮度插值滤波器系数fl[p]。

表4a

亮度位置(xinti,yinti),其中i=0...7,单位为全样本,导出如下:

xinti=sps_ref_wraparound_enabled_flag?cliph((ref_wraparound_offset_minus1+1)*mincbsizey,picw,(xintl+i-3)):clip3(0,picw-1,xintl+i-3)

yinti=clip3(0,pich-1,yintl+i-3)

预测的亮度样本值predsamplelxl导出如下:

-如果xfracl和yfracl均等于0,则predsamplelxl的值导出如下:

predsamplelxl=refpiclxl[xint3][yint3]<<shift3

-否则,如果xfracl不等于0并且yfracl等于0,则predsamplelxl的值导出如下:

predsamplelxl=(∑7i=0fl[xfracl][i]*refpiclxl[xinti][yint3])>>shifi1

-否则,如果xfracl等于0并且yfracl不等于0,则predsamplelxl的值导出如下:

predsamplelxl=(∑7i=0fl[yfracl][i]*refpiclxl[xint3][yinti])>>shift1

-否则,如果xfracl不等于0并且yfracl不等于0,则predsamplelxl的值导出如下:

-样本阵列temp[n](其中n=0...7)导出如下:

temp[n]=(∑7i=0fl[xfracl][i]*refpiclxl[xinti][yintn])>>shift1

-预测的亮度样本值predsamplelxl导出如下:

predsamplelxl=(∑7i=0fl[yfracl][i]*temp[i])>>shift2

此外,参考根据表4所示的示例,在一个示例中,对应的亮度样本双线性插值滤波过程可以指定如下:

该过程的输入为:

-亮度位置(xintl,yintl),单位为全样本,

-亮度位置(xfracl,yfracl),单位为分数样本,

-亮度参考样本阵列refpiclxl,

该过程的输出是预测的亮度样本值predsamplelxl。

变量shift1被设置为等于min(4,bitdepthy-8),变量shift2被设置为等于6,并且变量shift3被设置为等于max(2,14=bitdepthy)。

变量picw被设置为等于pic_width_in_luma_samples,并且变量pich被设置为等于pic_height_in_luma_samples。

表4b中指定了等于xfracl或yfracl的每个1/16分数样本位置p的亮度插值滤波器系数fl[p]。

表4b

亮度位置(xinti,yinti),其中i=0...1,单位为全样本,导出如下:

xinti=sps_ref_wraparound_enabled_flag?cliph(ref_wraparound_offset_minus1+1)*mincbsizey,picw,(xintl+i-3)):clip3(0,picw-1,xintl+i)

yinti=clip3(0,pich-1,yintl+i)

预测的亮度样本值predsamplelxl导出如下:

-如果xfracl和yfracl均等于0,则predsamplelxl的值导出如下:

predsamplelxl=refpiclxl[xint0][xint0]<<shift3

-否则,如果xfracl不等于0并且yfracl等于0,则predsamplelxl的值导出如下:

predsamplelxl=(∑1i=0fl[xfracl][i]*refpiclxl[xinti][yint0])>>shift1

-否则,如果xfracl等于0并且yfracl不等于0,则predsamplelxl的值导出如下:

predsamplelxl=(∑1i=0fl[yfracl][i]*refpiclxl[xint0][yinti])>>shift1

-否则,如果xfracl不等于0并且yfracl不等于0,则predsamplelxl的值导出如下:

-样本阵列temp[n](其中n=0...1)导出如下:

temp[n]=(∑1i=0fl[xfracl][i]*refpiclxl[xinti][yintn])>>shift1

-预测的亮度样本值predsamplelxl导出如下:

predsamplelxl=(∑1i=0fl[yfracl][i]*temp[i])>>shift2

此外,参考根据表4所示的示例,在一个示例中,对应的色度样本插值滤波过程可以指定如下:

该过程的输入为:

-色度位置(xintc,yintc),单位为全样本,

-色度位置(xfracc,yfracc),单位为1/32分数样本,

-色度参考样本阵列refpiclxc。

该过程的输出是预测的色度样本值predsamplelxc。

变量shift1、shift2和shift3导出如下:

-变量shift1被设置为等于min(4,bitdepthc_8),变量shift2被设置为等于6,并且变量shift3被设置为等于max(2,14-bitdepthc)。

-变量picwc被设置为等于pic_width_in_luma_samples/subwidthc,并且变量pichc被设置为等于pic_height_in_luma_samples/subheightc。

表4c中指定了等于xfracc或yfracc的每个1/32分数样本位置p的亮度插值滤波器系数fc[p]。

表4c

变量xoffset被设置为等于((sps_ref_wraparound_offset_minus1+1)*mincbsizey)/subwidthc。

色度位置(xinti,yinti),其中i=0...3,单位为全样本,导出如下:

xinti=sps_ref_wraparound_enabled_flag?cliph(xoffset,picwc,(xintc+i-1)):clip3(0,picwc-1,xintc+i-1)

yinti=clip3(0,pichc-1,yintc+i-1)

预测的色度样本值predsamplelxc导出如下:

-如果xfracc和yfracc均等于0,则predsamplelxc的值导出如下:

predsamplelxc=refpiclxc[xinti][yinti]<<shift3

-否则,如果xfracc不等于0并且yfracc等于0,则predsamplelxc的值导出如下:

predsamplelxc=(∑3i=0fc[xfracc][i]*refpiclxc[xinti][yinti])>>shift1

-否则,如果xfracc等于0并且yfracc不等于0,则predsamplelxc的值导出如下:

predsamplelxc=(∑3i=0fc[yfracc][i]*refpiclxc[xinti][yinti])>>shift1

-否则,如果xfracc不等于0并且yfracc不等于0,则predsamplelxc的值导出如下:

-样本阵列temp[n](其中n=0...3)导出如下:

temp[n]=(∑3i=0fc[xfracc][i]*refpiclxc[xinti][yintn])>>shift1

-预测的色度样本值predsamplelxc导出如下:

predsamplelxc=(fc[yfracc][0]*temp[0]+fc[yfracc][1]*temp[1]+fc[yfracc][2]*temp[2]+fc[yfracc][3]*temp[3])>>shift2

在一个示例中,根据本文的技术,视频编码器200可被配置为使得不发送信号通知sps_reference_wraparound_enabled_flag,并且允许针对语法元素ref_wraparound_offset发送信号通知零值,并且定义ref_wraparound_offset的语义使得零值指定水平环绕式运动补偿不用于帧间预测。具体地讲,表5示出了根据本文的技术的可包括在sps中(或在一些示例中,包括在另一个参数集中和/或图块组标头中)以实现erp和perp格式的参考图片的水平几何填充的示例性语法元素。

表5

参考表5,以下定义可用于相应语法元素。

ref_wraparound_offset指定用于计算水平环绕式位置的偏移,单位为mincbsizey样本。ref_wraparound_offset应在0至(pic_width_in_luma_samples/mincbsizey)的范围内(包括端值)。ref_wraparound_offset等于0指定水平环绕式运动补偿不用于帧间预测。

应当指出的是,在一些示例中,ref_wraparound_offset可称为sps_ref_wraparound_offset。参考根据表5所示的示例,在一个示例中,对应的亮度样本8抽头插值滤波过程可以指定如下:

该过程的输入为:

-亮度位置(xintl,yintl),单位为全样本,

-亮度位置(xfracl,yfracl),单位为分数样本,

-亮度参考样本阵列refpiclxl。

该过程的输出是预测的亮度样本值predsamplelxl。

变量shift1、shift2和shift3导出如下:

-变量shift1被设置为等于min(4,bitdepthy-8),变量shift2被设置为等于6,并且变量shift3被设置为等于max(2,14-bitdepthy)。

-变量picw被设置为等于pic_width_in_luma_samples,并且变量pich被设置为等于pic_height_in_luma_samples。

表4a中指定了等于xfracl或yfracl的每个1/16分数样本位置p的亮度插值滤波器系数fl[p]。

亮度位置(xinti,yinti),其中i=0...7,单位为全样本,导出如下:

xinti=ref_wraparound_offset?cliph(ref_wraparound_offset*mincbsizey,picw,(xintl+i-3)):clip3(0,picw-1,xintl+i-3)

yinti=clip3(0,pich-1,yintl+i-3)

-如果xfracl和yfracl均等于0,则predsamplelxl的值导出如下:

predsamplelxl=refpiclxl[xint3][yint3]<<shift3

-否则,如果xfracl不等于0并且yfracl等于0,则predsamplelxl的值导出如下:

predsamplelxl=(∑7i=0fl[xfracl][i]*refpiclxr[xinti][yint3])>>shift1

-否则,如果xfracl等于0并且yfracl不等于0,则predsamplelxl的值导出如下:

predsamplelxl=(∑7i=0fl[yfracl][i]*refpiclxl[yint3][yinti])>>shift1

-否则,如果xfracl不等于0并且yfracl不等于0,则predsamplelxl的值导出如下:

-样本阵列temp[n](其中n=0...7)导出如下:

temp[n]-(∑7i=0fl[xfracl][i]*refpiclxl[xinti][yintn])>>shift1

-预测的亮度样本值predsamplelxl导出如下:

predsamplelxl=(∑7i=0fl[yfracl][i]*temp[i])>>shift2

此外,参考根据表5所示的示例,在一个示例中,对应的亮度样本双线性插值滤波过程可以指定如下:

该过程的输入为:

-亮度位置(xintl,yintl),单位为全样本,

-亮度位置(xfracl,yfracl),单位为分数样本,

-亮度参考样本阵列refpiclxl,

该过程的输出是预测的亮度样本值predsamplelxl。

变量shift1被设置为等于min(4,bitdepthy-8),变量shift2被设置为等于6,并且变量shift3被设置为等于max(2,14-bitdepthy)。

变量picw被设置为等于pic_width_in_luma_samples,并且变量pich被设置为等于pic_height_in_luma_samples。

表4b中指定了等于xfracl或yfracl的每个1/16分数样本位置p的亮度插值滤波器系数fl[p]。

亮度位置(xinti,yinti),其中i=0...1,单位为全样本,导出如下:

xinti=ref_wraparound_offset?cliph(ref_wraparound_offset*mincbsizey,picw,(xintl+i-3)):clip3(0,picw-1,xintl+i)

yinti=clip3(0,pich-1,yintl+i)

预测的亮度样本值predsamplelxl导出如下:

-如果xfracl和yfracl均等于0,则predsamplelxl的值导出如下:

predsamplelxl=refpiclxl[xint0][xint0]<<shift3

-否则,如果xfracl不等于0并且yfracl等于0,则predsamplelxl的值导出如下:

predsamplelxl=(∑1i=0fl[xfracl][i]*refpiclxl[xinti][xint0])>>shift1

-否则,如果xfracl等于0并且yfracl不等于0,则predsamplelxl的值导出如下:

predsamplelxl=(∑1i=0fl[yfracl][i]*refpiclxl[xint0][yinti])>>shift1

-否则,如果xfracl不等于0并且yfracl不等于0,则predsamplelxl的值导出如下:

-样本阵列temp[n](其中n=0...1)导出如下:

temp[n]=(∑1i=0fl[xfracl][i]*refpiclxl[xinti][yintn])>>shift1

-预测的亮度样本值predsamplelxl导出如下:

predsamplelxl=(∑1i=0fl[yfracl][i]*temp[i])>>shift2

此外,参考根据表5所示的示例,在一个示例中,对应的色度样本插值滤波过程可以指定如下:

该过程的输入为:

-色度位置(xintc,yintc),单位为全样本,

-色度位置(xfracc,yfracc),单位为1/32分数样本,

-色度参考样本阵列refpiclxc。

该过程的输出是预测的色度样本值predsamplelxc。

变量shift1、shift2和shift3导出如下:

-变量shift1被设置为等于min(4,bitdepthc-8),变量shift2被设置为等于6,并且变量shift3被设置为等于max(2,14-bitdepthc)。

-变量picwc被设置为等于pic_width_in_luma_samples/subwidthc,并且变量pichc被设置为等于pic_height_in_luma_samples/subheightc。

表4c中指定了等于xfracc或yfracc的每个1/32分数样本位置p的亮度插值滤波器系数fc[p]。

变量xoffset被设置为等于(ref_wraparound_offset)*mincbsizey)/subwidthc。

色度位置(xinti,yinti),其中i=0...3,单位为全样本,导出如下:

xinti=ref_wraparound_offset?cliph(xoffset,picwc,(xintc+i-1)):clip3(0,picwc-1,xintc+i-1)

yinti=clip3(0,pichc-1,yintc+i-1)

预测的色度样本值predsamplelxc导出如下:

-如果xfracc和yfracc均等于0,则predsamplelxc的值导出如下:

predsamplelxc=refpiclxc[xinti][yinti]<<shift3

-否则,如果xfracc不等于0并且yfracc等于0,则predsamplelxc的值导出如下:

predsamplelxc=(∑3i=0fc[xfracc][i]*refpiclxc[xinti][yinti])>>shift1

-否则,如果xfracc等于0并且yfracc不等于0,则predsamplelxc的值导出如下:

predsamplelxc=(∑3i=0fc[yfracc][i]*refpiclxc[xinti][yinti])>>shift1

-否则,如果xfracc不等于0并且yfracc不等于0,则predsamplelxc的值导出如下:

-样本阵列temp[n](其中n=0...3)导出如下:

temp[n]=(∑3i=0fc[xfracc][i]*refpiclxc[xinti][yintn])>>shift1

-预测的色度样本值predsamplelxc导出如下:

predsamplelxc=(fc[yfracc][0]*temp[0]+fc[yfracc][1]*temp[1]+fc[yfracc][2]*temp[2]+fc[yfracc][3]*temp[3])>>shift2

在一个示例中,根据本文的技术,视频编码器200可被配置为使得使用固定的位宽编码来参考环绕式信息。这可通过系统级简化sps的解析。具体地讲,表6示出了根据本文的技术的可包括在sps中(或在一些示例中,包括在另一个参数集中和/或图块组标头中)以实现erp和perp格式的参考图片的水平几何填充的示例性语法元素。

表6

参考表6,以下定义可用于相应语法元素。

sps_ref_wraparound_enabled_flag等于1指定水平环绕式运动补偿用于帧间预测。sps_ref_wraparound_enabled_flag等于0指定不应用这种运动补偿方法。ref_wraparound_offset_minus1加1指定用于计算水平环绕式位置的偏移,单位为mincbsizey样本。ref_wraparound_offset_minus1应在0至(pic_width_in_luma_samples/mincbsizey)-1的范围内(包括端值)。ref_wraparound_offset_minus1语法元素的长度是ceil(log2((pic_width_in_luma_samples/mincbsizey)-1))位。

在另一个示例中,表7示出了根据本文的技术的可包括在sps中(或在一些示例中,包括在另一个参数集中和/或图块组标头中)以实现erp和perp格式的参考图片的水平几何填充的示例性语法元素。

表7

参考表7,以下定义可用于相应语法元素。

ref_wraparound_offset指定用于计算水平环绕式位置的偏移,单位为mincbsizey样本。ref_wraparound_offset应在0至(pic_wudth_in_luma_samples/mincbsizey)的范围内(包括端值)。ref_wraparound_offset语法元素的长度是ceil(log2(pic_widthin_luma_samples/mincbsizey))位。ref_wraparound_offset等于0指定水平环绕式运动补偿不用于帧间预测。

应当注意,相对于上面的示例,在一些情况下,可能以(mincbsizey/subwidthc)为单位来定义ref_wraparound_offset或ref_wraparound_offset_minus1,而不是以mincbsizey为单位来定义这些语法元素。

如上所述,jvet-l0231提供了以下亮度和色度样本插值过程。对于上述每个示例,可以相应地修改亮度和色度样本插值过程。具体地讲,对于每个相应的对应示例,在上述插值过程中:

变量xoffset被设置为等于以下中的一者:

(ref_wraparound_offset_minus1+1)*mincbsizey;或者

(ref_wraparound_offset)*mincbsizey

并且变量xoffsetc被设置为等于以下中的一者:

((ref_wraparound_offset_minus1+1)*mincbsizey)/subwidthc;或者

((ref_wraparound_offset)*mincbsizey)/subwidthc

此外,在一个示例中,根据本文的技术,可以使用以下语法元素来发送信号通知图片宽度和高度。

pic_width_in_mincbsizey_samples指定每个解码图片的宽度,单位为mincbsizey样本。pic_width_in_mincbsizey_samples应不等于0。

pic_height_in_mmcbsizey_samples指定每个解码图片的高度,单位为mincbsizey样本。pic_height_in_mincbsizey_samples应不等于0。

变量picwidthinlumasamples和picheightinlumasamples导出如下:

picwidthinlumasamples=pic_width_in_mincbsizey_samples*mincbsizey

picheightlnlumasamples=pic_height_in_mincbsizey_samples*mincbsizey

其中变量picwidthinlumasample将替换jvet-k1001中的pic_width_in_luma_samples的所有实例,并且变量picheightinlumasample将替换jvet-k1001中的pic_height_in_luma_samples的所有实例。

此外,在一个示例中,可能以(mincbsizey/subwidthc)为单位来定义pic_width_in_mincbsizey_samples和pic_height_in_mincbsizey_samples,而不是以mincbsizey为单位来定义这些语法元素。

再次参考图5,如图5所示,帧间预测处理单元214可经由滤波器单元216接收重构的视频块,该滤波器单元可以是环路内滤波处理的一部分。滤波器单元216可被配置为执行解块和/或样本自适应偏移(sao)滤波。解块是指平滑化重构视频块边界的过程(例如,使观察者不易察觉到边界)。sao滤波是一种可用于通过向重构的视频数据添加偏移以改善重构的非线性振幅映射。熵编码单元218接收量化的变换系数和预测语法数据(即帧内预测数据、运动预测数据和qp数据等)。熵编码单元218可被配置为根据本文中所描述的技术中的一个或多个执行熵编码。熵编码单元218可被配置为输出兼容比特流(即视频解码器可从其接收和再现视频数据的比特流)。这样,视频编码器200表示设备的示例,该设备被配置为确定参考图片偏移值,并且将指示该参考图片偏移的语法元素的值编码为比特流,其中该语法元素的值为零指示不使用环绕式运动补偿,并且该语法元素的除零之外的值指示单位为最小编码块尺寸的该参考图片偏移值。

图6是示出根据本公开的一种或多种技术的可被配置为对视频数据进行解码的视频解码器的示例的框图。在一个示例中,视频解码器300可被配置为基于上文所述的技术中的一种或多种来重构视频数据。也就是说,视频解码器300可以与上述视频编码器200互逆的方式操作。视频解码器300可被配置为执行帧内预测解码和帧间预测解码,并且因此可被称为混合解码器。在图6所示的示例中,视频解码器300包括熵解码单元302、逆量化单元304、逆变换处理单元306、帧内预测处理单元308、帧间预测处理单元310、求和器312、滤波器单元314和参考缓冲器316。视频解码器300可被配置为以与视频编码系统一致的方式对视频数据进行解码,该视频编码系统可以实现视频编码标准的一个或多个方面。应当指出的是,尽管示出的示例性视频解码器300具有不同的功能块,但此类图示旨在用于描述目的,并且不将视频解码器300和/或其子部件限制为特定的硬件或软件架构。可使用硬件、固件和/或软件具体实施的任何组合来实现视频解码器300的功能。

如图6所示,熵解码单元302接收熵编码的比特流。熵解码单元302可被配置为根据与熵编码过程互逆的过程对来自比特流的量化语法元素和量化系数进行解码。熵解码单元302可以被配置为根据上文所述的任何熵编码技术来执行熵解码。熵解码单元302可以以与视频编码标准一致的方式解析编码的比特流。视频解码器300可被配置为解析编码的比特流,其中该编码的比特流基于上述技术生成。逆量化单元304从熵解码单元302接收量化变换系数(即,位阶值)和量化参数数据。量化参数数据可包括上述增量qp值和/或量化组大小值等的任意和全部组合。视频解码器300和/或逆量化单元304可被配置为基于由视频编码器发送信号通知的值和/或通过视频属性和/或编码参数来确定用于逆量化的qp值。也就是说,逆量化单元304可以以与上述系数量化单元206互逆的方式操作。逆量化单元304可以被配置为应用逆量化。逆变换处理单元306可被配置为执行逆变换以生成重构的残差数据。由逆量化单元304和逆变换处理单元306分别执行的技术可类似于由上述逆量化/变换处理单元208执行的技术。逆变换处理单元306可以被配置为应用逆dct、逆dst、逆整数变换、不可分二次变换(nsst)或概念上类似的逆变换过程来变换系数,以便产生像素域中的残差块。此外,如上所述,是否执行特定变换(或特定变换的类型)可以取决于帧内预测模式。如图13所示,可以将重构的残差数据提供给求和器312。求和器312可以将重构的残差数据添加到预测视频块并且生成重构的视频数据。

如上所述,可根据预测视频技术(即帧内预测和帧间预测)确定预测视频块。帧内预测处理单元308可以被配置为接收帧内预测语法元素并且从参考缓冲器316检索预测视频块。参考缓冲器316可以包括被配置为存储一个或多个视频数据帧的存储器设备。帧内预测语法元素可识别帧内预测模式,诸如上述的帧内预测模式。在一个示例中,帧内预测处理单元308可以使用根据本文所述的帧内预测编码技术中的一种或多种来重构视频块。帧间预测处理单元310可以接收帧间预测语法元素并生成运动矢量,以识别存储在参考缓冲器316中的一个或多个参考帧中的预测块。帧间预测处理单元310可以生成运动补偿块,可能基于内插滤波器执行内插。用于具有子像素精度的运动估计的内插滤波器的标识符可以被包括在语法元素中。帧间预测处理单元310可以使用内插滤波器来计算参考块的子整数像素的内插值。

如上所述,视频解码器300可解析编码的比特流,其中该编码的比特流基于上述技术而生成,并且如上所述,视频编码器200可根据上述技术生成比特流。因此,视频解码器300可被配置为根据上述技术执行运动向量预测。这样,视频解码器300表示设备的示例,该设备被配置为:从比特流解析指示参考图片偏移的语法元素的值,其中该语法元素的值为零指示不使用环绕式运动补偿,并且该语法元素的除零之外的值指示单位为最小编码块尺寸的该参考图片偏移值,并且从该解析值确定该参考图片偏移值。

再次参考图6,滤波器单元314可被配置为对重构的视频数据执行滤波。例如,滤波器单元314可被配置为执行解块和/或sao滤波,如上面关于滤波器单元216所描述的。此外,应当指出的是,在一些示例中,滤波器单元314可被配置为执行专用的任意滤波(例如,视觉增强)。如图6所示,视频解码器300可输出重构的视频块。

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

以举例而非限制的方式,此类计算机可读存储介质可包括ram、rom、eeprom、cd-rom或其他光盘存储设备、磁盘存储设备或其他磁存储设备、闪存存储器、或者可用于存储指令或数据结构形式的所需程序代码并且可由计算机访问的任何其他介质。而且,任何连接都被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(dsl)或无线技术诸如红外线、无线电和微波从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、dsl或无线技术诸如红外线、无线电和微波都包含在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂态介质,而是针对非暂态有形存储介质。如本文所用,磁盘和光盘包括压缩光盘(cd)、激光盘、光学光盘、数字通用光盘(dvd)、软磁盘及blu-ray光盘,其中磁盘通常以磁性方式复制数据,而光盘则利用激光以光学方式复制数据。上述的组合也应该包括在计算机可读介质的范围内。

可以由一个或多个处理器诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其他等效集成或离散逻辑电路执行指令。因此,如本文所用的术语″处理器″可以指任何前述结构或适用于实现本文所描述的技术的任何其他结构。此外,在一些方面中,可以在被配置用于编码和解码的专用硬件和/或软件模块内提供本文所述的功能,或者将其结合到组合编解码器中。而且,这些技术可以完全在一个或多个电路或逻辑元件中实现。

本公开的技术可以在各种设备或装置包括无线手机、集成电路(ic)或一组ic(例如,芯片组)中实现。在本公开中描述了各种部件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要通过不同的硬件单元来实现。相反,如上所述,可以将各种单元组合在编解码器硬件单元中,或者通过互操作硬件单元包括如上所述的一个或多个处理器的集合,结合合适的软件和/或固件来提供各种单元。

此外,每个上述实施方案中所使用的基站设备和终端设备的每个功能块或各种特征可通过电路(通常为一个集成电路或多个集成电路)实施或执行。被设计为执行本说明书中所述的功能的电路可包括通用处理器、数字信号处理器(dsp)、专用或通用集成电路(asic)、现场可编程门阵列(fpga),或其他可编程逻辑设备、分立栅极或晶体管逻辑器、或分立硬件部件、或它们的组合。通用处理器可为微处理器,或另选地,该处理器可为常规处理器、控制器、微控制器或状态机。通用处理器或上述每种电路可由数字电路进行配置,或可由模拟电路进行配置。此外,当由于半导体技术的进步而出现制成取代当前集成电路的集成电路的技术时,也能够使用通过该技术生产的集成电路。

已经描述了各种示例。这些示例和其他示例在以下权利要求的范围内。

<交叉引用>

本非临时专利申请根据《美国法典》第35卷第119节(35u.s.c.§119)要求于2018年11月2日提交的临时申请62/755,240、2018年12月21日提交的临时申请62/784,072的优先权,这两个申请的全部内容据此以引用方式并入。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1