视频编解码中的缩放方法

文档序号:411938 发布日期:2021-12-17 浏览:10次 >En<

阅读说明:本技术 视频编解码中的缩放方法 (Scaling method in video coding and decoding ) 是由 张凯 张莉 刘鸿彬 王悦 于 2020-05-14 设计创作,主要内容包括:描述了用于数字视频编解码的设备、系统和方法,包括视频编解码中的缩放和除法运算。一种用于视频处理的示例性方法包括在视频的当前视频块和视频的编解码表示之间执行转换,并且该转换包括:用一个或多个运算来近似将在用于处理当前视频块的特定模式中使用的除法运算N/D的结果,以替换除法运算,N和D分别表示除法运算中的分子和分母,并且一个或多个运算中的每一个不同于除法运算。(Apparatus, systems, and methods are described for digital video codecs, including scaling and division operations in video codecs. An exemplary method for video processing includes performing a conversion between a current video block of video and a codec representation of the video, and the conversion includes: the result of a division operation N/D to be used in a particular mode for processing the current video block is approximated with one or more operations to replace the division operation, N and D representing a numerator and a denominator, respectively, in the division operation, and each of the one or more operations is different from the division operation.)

视频编解码中的缩放方法

相关申请的交叉引用

在适用的专利法下和/或依照巴黎公约的规则,本申请旨在及时要求于2019年5月14日提交的国际专利申请号PCT/CN2019/086789和于2019年6月19日提交的国际专利申请号PCT/CN2019/091910的优先权和权益。上述专利申请的全部公开内容作为本申请的公开的部分、通过引用结合于此。

技术领域

本专利文件涉及视频编解码技术、设备和系统。

背景技术

尽管在视频压缩方面取得了进步,但数字视频仍占互联网和其他数字通信网络上的最大带宽使用。随着能够接收和显示视频的互连用户设备的数量的增加,预计对数字视频使用的带宽需求将继续增长。

发明内容

涉及数字视频编解码的设备、系统和方法,特别是涉及视频编解码中的缩放(scaling)和除法(division)运算。所描述的方法可以被应用于现有的视频编解码标准(例如,高效视频编解码(HEVC))和未来的视频编解码标准或视频编解码器。

在一个代表性方面中,公开了一种用于视频处理的方法,包括:在视频的当前视频块和视频的编解码表示(coded representation)之间执行转换,其中,该转换包括:用一个或多个运算近似将在用于处理当前视频块的特定模式中使用的除法运算N/D的结果,以替换除法运算,N和D分别表示除法运算中的分子和分母,其中,一个或多个运算中的每一个不同于除法运算。

在另一个代表性方面中,公开了一种用于视频处理的方法,包括:在视频的当前视频块和视频的编解码表示之间执行转换,其中,该转换包括:用与运动矢量(MV)缩放方案相关联的除法运算来近似将在用于处理当前视频块的特定模式中使用的除法运算N/D的结果,或者从与MV缩放方案相关联的查找表中推导出除法运算N/D的结果,以替换除法运算N/D。

在又一个代表性方面中,上述方法以处理器可执行代码的形式实施,并存储在计算机可读程序介质中。

在又一个代表性方面中,公开了被配置或可运算来执行上述方法的设备。该设备可以包括被编程来实现该方法的处理器。

在又一个代表性方面中,视频解码器装置可以实现如本文所述的方法。

在附图、说明书和权利要求中更详细地描述了所公开技术的上述和其他方面和特征。

附图说明

图1示出了具有整形的解码流程的示例的流程图。

图2示出了用于在交叉分量线性模型(CCLM)预测模式中推导参数的样点(sample)位置的示例。

图3示出了用于推导照明补偿(IC)参数的相邻样点的示例。

图4示出了用于视频处理的示例方法的流程图。

图5示出了用于视频处理的另一示例方法的流程图。

图6是用于实现本文档中所描述的视觉媒体解码或视觉媒体编码技术的硬件平台的示例的框图。

具体实施方式

所公开的技术的实施例可以被应用于现有的视频编解码标准(例如,HEVC,H.265)和未来的标准,以提高压缩性能。在本文档中使用章节标题来提高描述的可读性,并且不以任何方式将讨论或实施例(和/或实现方式)仅限制于相应的章节。

2视频编解码介绍

由于对更高分辨率视频的需求日益增加,视频编解码方法和技术在现代技术中无处不在。视频编解码器通常包括压缩或解压缩数字视频的电子电路或软件,并且不断被改进以提供更高的编码效率。视频编解码器将未压缩的视频转换为压缩格式,反之亦然。视频质量、(由比特率确定的)用于表示视频的数据量、编码和解码算法的复杂度、对数据丢失和错误的敏感性、编辑的容易性、随机访问和端到端延迟(等待时间)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如高效视频编解码(HEVC)标准(也被称为H.265或MPEG-H部分2)、待最终确定的通用视频编解码标准或其他当前和/或未来的视频编解码标准。

视频编解码标准主要是通过公知的ITU-T和ISO/IEC标准的发展演变而来的。ITU-T制定了H.261和H.263,ISO/IEC制定了MPEG-1和MPEG-4视频,并且这两个组织联合制定了H.262/MPEG-2视频和H.264/MPEG-4高级视频编解码(AVC)和H.265/HEVC标准。自H.262之后,视频编解码标准基于混合视频编解码结构,其中利用了时域预测加变换编解码。为了探索HEVC以外的未来的视频编解码技术,VCEG和MPEG于2015年联合成立了联合视频勘探小组(JVET)。从那时起,多种新的方法已经被JVET所采用,并被放入名为联合勘探模型(JEM)的参考软件中。2018年4月,在VCEG(Q6/16)和ISO/IEC JTC1 SC29/WG11(MPEG)之间的联合视频勘探小组(JVET)被创建以用于研究VVC标准,目标是相比于HEVC降低50%的比特率。

2.1 JVET-M 0427中的环路整形(ILR)

环路整形(ILR)的基本思想是将原始(在第一域中的)信号(预测/重建信号)转换到第二域(整形域(reshaped domain))。

环内亮度整形器被实现为一对查找表(LUT),但是两个LUT中仅一个需要被信令通知,因为另一个可以根据被信令通知的LUT来计算。每个LUT都是一维、10比特、1024个条目的映射表(1D-LUT)。一个LUT是正向LUT(FwdLUT),其将输入亮度代码值Yi映射到已改变的值Yr:Yr=FwdLUT[Yi]。另一个LUT是逆向LUT(InvLUT),其将已改变的代码值Yr映射到 (表示Yi的重建值)。

ILR在VVC中也被称为具有色度缩放的亮度映射(LMCS)。

2.1.1 PWL模型

从概念上讲,分段(piece-wise)线性(PWL)是通过以下方式实现的:

假设x1、x2是两个输入轴点(pivot point),并且y1、y2是它们一个段的相应的输出轴点。x1和x2之间的任何输入值x的输出值y可以通过以下等式来插值:

y=((y2-y1)/(x2-x1))*(x-x1)+y1。

在定点实现方式中,该等式可以被改写为:

y=((m*x+2FP_PREC-1)>>FP_PREC)+c。

这里,m是标量,c是偏移,并且FP_PREC是指定精度的常数值。

注意,在CE-12软件中,PWL模型用于预先计算1024个条目的FwdLUT和InvLUT映射表;但是PWL模型也允许在不预先计算LUT的情况下实时地计算相同映射值的实现方式。

2.1.2测试CE12-2

2.1.2.1亮度整形

环路亮度整形的测试2(即,提案中的CE12-2)提供了较低复杂度的流水线(pipeline),其还消除了帧间条带重建中块式(block-wise)帧内预测的解码等待时间。对于帧间和帧内条带两者,在整形域中执行帧内预测。

不管条带类型,总是在整形域中执行帧内预测。通过这样的布置,帧内预测可以在先前的TU重建完成之后立即开始。这种布置也可以为帧内模式提供统一的过程,而不是基于条带提供统一的过程。图1示出了基于模式的CE12-2解码过程的框图。

CE12-2还针对亮度和色度残差缩放测试了16段分段线性(PWL)模型,而不是测试CE12-1的32段PWL模型。

CE12-2中具有环路亮度整形器的帧间条带重建(较浅的阴影块表示整形域中的信号:亮度残差;预测的帧内亮度;以及重建后的帧间亮度)。

2.1.2.2基于亮度的色度残差缩放

基于亮度的色度残差缩放是用定点整数运算实现的乘法过程。色度残差缩放补偿亮度信号与色度信号的相互作用。色度残差缩放应用于TU级别。更具体地,利用相应亮度预测块的平均值。

平均用于标识PWL模型中的索引。该索引标识了缩放因子cScaleInv。色度残差乘以这个数。

注意,色度缩放因子是根据经正向映射的预测的亮度值而不是根据重建后的亮度值计算的。

2.1.2.3 ILR的使用

在编码器侧,每个图像(或片(tile)组)首先被转换到整形域。并且所有的编解码过程都在整形域中执行。对于帧内预测,相邻块在整形域中;对于帧间预测,(从经解码的图像缓冲器的原始域中生成的)参考块首先被转换到整形域中。然后残差被生成并被编码为比特流。

在整个图像(或片组)完成编码/解码之后,在整形域中的样点被转换到原始域,然后去块滤波器和其他滤波器被应用。

对于以下情况,禁止对预测信号进行正向整形:

ο当前块是帧内编码的。

ο当前块被编码为CPR(当前图像参考,也被称为块内复制,IBC)。

ο当前块被编码为组合帧内模式(CIIP),并且对帧内预测块禁用正向整形。

2.1.2.4 VVC工作草案5中的语法和语义

7.3.2.3序列参数集RBSP语法

7.3.2.5自适应参数集语法

7.3.5条带标头语法

7.3.5.1一般条带标头语法

7.3.5.4具有色度缩放数据语法的亮度映射

LMCS APS:APS_params_type等于LMCS_APS的APS。

sps_lmcs_enabled_flag等于1指定在CVS中使用具有色度缩放的亮度映射。sps_lmcs_enabled_flag等于0指定在CVS中不使用具有色度缩放的亮度映射。

7.4.3.5自适应参数集语义

adaptation_parameter_set_id为APS提供标识符,以供其他语法元素参考。

注意–APS可以跨图像共享,并且在图像的不同条带内可以不同。

aps_params_type指定APS中承载的APS参数的类型,如表7-2所示。

表7-2–APS参数类型代码和APS参数的类型

aps_params_type aps_params_type的名称 APS参数的类型
0 ALF_APS ALF参数
1 LMCS_APS LMCS参数
2.7 预留 预留

slice_lmcs_enabled_flag等于1指定为当前条带启用具有色度缩放的亮度映射。slice_lmcs_enabled_flag等于0指定不为当前条带启用具有色度缩放的亮度映射。当slice_lmcs_enabled_flag不存在时,推断其等于0。

slice_lmcs_aps_id指定条带所参考的LMCS APS的adaptation_parameter_set_id。具有等于slice_lmcs_aps_id的adaptation_parameter_set_id的LMCS APS NAL单元的TemporalId应小于或等于经编码的条带NAL单元的TemporalId。

当同一图像的两个或多个条带参考具有相同adaptation_parameter_set_id值的多个LMCS APS时,具有相同adaptation_parameter_set_id值的多个LMCSAPS应具有相同的内容。

7.4.6.4具有色度缩放数据语义的亮度映射

lmcs_min_bin_idx指定亮度映射和色度缩放构建过程中使用的最小bin(二进制位)索引。lmcs_min_bin_idx的值应在0到15(包含0和15)的范围内。

lmcs_delta_max_bin_idx指定15和在亮度映射和色度缩放构造过程使用的最大bin索引LmcsMaxBinIdx之间的delta值。lmcs_delta_max_bin_idx的值应在0到15(包含0和15)的范围内。LmcsMaxBinIdx的值被设置为15-lmcs_delta_max_bin_idx。LmcsMaxBinIdx的值应大于或等于lmcs_min_bin_idx。

lmcs_delta_cw_prec_minus1加1指定用于表示语法lmcs_delta_abs_cw[i]的比特数。lmcs_delta_cw_prec_minus1的值应在0到BitDepthY-2(包含0和BitDepthY-2)的范围内。

lmcs_delta_abs_cw[i]指定第i个bin的绝对delta码字值。

lmcs_delta_sign_cw_flag[i]指定变量lmcsDeltaCW[i]的符号,如下所示:

-如果lmcs_delta_sign_cw_flag[i]等于0,则lmcsDeltaCW[i]为正值。

-否则(lmcs_delta_sign_cw_flag[i]不等于0),lmcsDeltaCW[i]为负值。

当lmcs_delta_sign_cw_flag[i]不存在时,推断其等于0。

变量OrgCW基于如下推导:

OrgCW=(1<<BitDepthY)/16 (7-77)

变量lmcsDeltaCW[i],i=lmcs_min_bin_idx…LmcsMaxBinIdx,基于如下推导:

lmcsDeltaCW[i]=(1-2*lmcs_delta_sign_cw_flag[i])*lmcs_delta_abs_cw[i]

(7-78)

变量lmcsCW[i]基于如下推导:

-对于i=0…lmcs_min_bin_idx-1,lmcsCW[i]被设置为等于0。

-对于i=lmcs_min_bin_idx…LmcsMaxBinIdx,以下等式适用:

lmcsCW[i]=OrgCW+lmcsDeltaCW[i] (7-79)

lmcsCW[i]的值应在(OrgCW>>3)到(OrgCW<<3-1)(包含(OrgCW>>3)到(OrgCW<<3-1))的范围内。

-对于i=LmcsMaxBinIdx+1…15,lmcsCW[i]被设置为等于0。

满足以下条件是比特流符合性(conformance)的要求:

变量InputPivot[i],i=0…16,基于如下推导:

InputPivot[i]=i*OrgCW (7-81)

的变量LmcsPivot[i],i=0…16,变量ScaleCoeff[i]和InvScaleCoeff[i],i=0…15,基于如下推导:

变量ChromaScaleCoeff[i],i=0…15,基于如下推导:

变量ClipRange、LmcsMinVal和LmcsMaxVal基于如下推导:

ClipRange=((lmcs_min_bin_idx>0)&&(LmcsMaxBinIdx<15) (7-84)

LmcsMinVal=16<<(BitDepthY-8) (7-85)

LmcsMaxVal=235<<(BitDepthY-8) (7-86)

注意–仅当slice_lmcs_model_present_flag等于1时,才会更新数组InputPivot[i]和LmcsPivot[i]、ScaleCoeff[i]和InvScaleCoeff[i]、ScaleCoeff[i]、ClipRange、LmcsMinVal和LmcsMaxVal。因此,例如,lmcs模型可以与IRAP图像一起被发送,但是lmcs对于该IRAP图像是被禁用的。

2.1.3 JVET-N0220

JVET-N0220提出了四个方面:

1.用于计算色度残差缩放的平均亮度的流水线延迟的减小;

2.存储色度残差样点所需的本地缓冲器的大小的减小;

3.亮度映射和色度残差缩放中使用的定点精度的统一;

4.对计算色度残差缩放的方法与计算亮度逆缩放的方法的统一,以及对预先计算的LUT的移除。

第2-4项已经被VTM-5采用。

根据已采用的部分,工作草案修订如下。

7.4.5.4具有色度缩放数据语义的亮度映射

lmcs_delta_sign_cw_flag[i]指定变量lmcsDeltaCW[i]的符号,如下所示:

-如果lmcs_delta_sign_cw_flag[i]等于0,则lmcsDeltaCW[i]为正值。

-否则(lmcs_delta_sign_cw_flag[i]不等于0),lmcsDeltaCW[i]为负值。

当lmcs_delta_sign_cw_flag[i]不存在时,推断其等于0。

变量OrgCW基于如下推导:

OrgCW=(1<<BitDepthy)/16 (7-70)

变量lmcsDeltaCW[i],i=lmcs_min_bin_idx…LmcsMaxBinIdx,基于如下推导:

lmcsDeltaCW[i]=(1-2*lmcs_delta_sign_cw_flag[i])*lmcs_delta_abs_cw[i]

(7-71)

变量lmcsCW[i]基于如下推导:

-对于i=0…lmcs_min_bin_idx 1,lmcsCW[i]被设置为等于0。

-对于i=lmcs_min_bin_idx…LmcsMaxBinIdx,以下等式适用:

lmcsCW[i]=OrgCW+lmcsDeltaCW[i] (7-72)

lmcsCW[i]的值应在(OrgCW>>3)至(OrgCw<<3-1)(包含(OrgCW>>3)和(OrgCw<<3-1))的范围内。

-对于i=LmcsMaxBinIdx+1…15,lmcsCW[i]被设置为等于0。

满足以下条件是比特流符合性的要求:

变量InputPivot[i],i=0...16,基于如下公式推导出:

InputPivot[i]=i*OrgCW (7-74)

变量LmcsPivot[i],i=0...16,变量ScaleCoeff[i]和InvScaleCoeff[i],i=0...15,基于如下公式推导:

LmcsPivot[0]=0;

for(i=0;i<=15;i++){

LmcsPivot[i+1]=LmcsPivot[i]+lmcsCW[i]

ScaleCoeff[i]=(lmcsCW[i]*(1<<11)+(1<<(Log2(OrgCW)-1)))>>

(Log2(OrgCW))

(7-75)

if(lmcsCW[i]==0)

InvScaleCoeff[i]=0

else

InvScaleCoeff[i]=OrgCW*(1<<11)/lmcsCW[i]

}

变量ChromaScaleCoeff[i],i=0…15,基于如下公式推导:

if(lmcsCW[i]==0)

ChromaScaleCoeff[i]=(1<<11)

else{

ChromaScaleCoeff[i]=InvScaleCoeff[i]

}

变量ClipRange、LmcsMinVal和LmcsMaxVal基于如下公式推导:

ClipRange=((lmcs_min_bin_idx>0)&&(LmcsMaxBinIdx<15) (7-77)

LmcsMinVal=16<<(BitDepthY-8) (7-78)

LmcsMaxVal=235<<(BitDepthY-8)

8.5.7.6用于组合的合并和帧内预测的加权样点预测过程

idxY=predSamplesInter[x][y]>>Log2(OrgCW)

predSamplesInter[x][y]=Clip1Y(LmcsPivot[idxY]+ (8-888)

(ScaleCoeff[idxY]*(predSamplesInter[x][y]-InputPivot[idxY])+(1<<10))>>11)

8.7.4.2利用亮度样点的映射过程的图像重建

idxY=predSamples[i][j]>>Log2(OrgCW)

PredMapSamples[i][j]=LmcsPivot[idxY]

+(ScaleCoeff[idxY]*(predSamples[i][j]-InputPivot[idxY])+(1<<10))>>11 (8-1058)

i=0...nCurrSw-1,j=0…nCurrSh–1

8.7.4.3.1亮度样点的图像逆映射过程

变量invSample基于如下公式推导:

invSample=InputPivot[idxYInv]+(InvScaleCoeff[idxYInv]*

(8-1060)

(lumaSample[xP][yP]-LmcsPivot[idxYInv])+(1<<10))>>11

8.7.4.4利用色度样点的基于亮度的色度残差缩放过程的图像重建

变量idxYInv是通过调用如第8.7.5.3.2条中所规定的分段函数索引(其中invAvgLuma作为输入并且idxYInv作为输出)的标识推导的。

1.变量varScale基于如下公式推导:

varScale=ChromaScaleCoeff[idxYInv] (8-1065)

–recSamples基于如下公式推导:

-如果tu_cbf_cIdx[xCurr][yCurr]等于1,则以下等式适用:

resSamples[i][j]=Clip3(-(1<<BitDepthC),1<<BitDepthC-1,

resSamples[i][j])

recSamples[xCurr+i][yCurr+j]=ClipCidx1(predSamples[i][j]+

(8-1066)

Sign(resSamples[i][j])*((Abs(resSamples[i][j])*varScale+(1<<10))>>11))

(8-1067)

-否则(tu_cbf_cIdx[xCurr][yCurr]等于0),以下等式适用:

recSamples[xCurr+i][yCurr+j]=ClipCidx1(predSamples[i][j])

(8-1067)

2.2自适应参数集(APS)

VVC采用自适应参数集(APS)来承载ALF参数。片组标头包含aps_id,其在ALF被启用时条件性地存在。APS包含aps_id和ALF参数。为(来自JVET-M0132的)APS分配了新的NUT(NAL单元类型,如AVC和HEVC)。对于(即将出现的)VTM-4.0中的共同测试条件,建议只使用aps_id=0,并将APS与每个图像一起发送。目前,APS ID值的范围将为0到31,并且APS可以跨图像共享(并且在同一图像内的不同片组中可以不同)。当存在时,ID值应该被固定长度地编码。同一图像内的不同内容不能重复使用ID值。

7.3.5.3自适应环路滤波器数据语法

7.3.7.2编解码树单元语法

slice_alf_enabled_flag等于1指定自适应环路滤波器被启用,并且可应用于条带中的Y、Cb或Cr颜色分量。slice_alf_enabled_flag等于0指定对条带中的所有颜色分量禁用自适应环路滤波器。

num_alf_aps_ids_minus1加1指定条带所参考的ALF APS的数量。num_alf_aps_ids_minus1的值应在0到7(包含0和7)的范围内。

slice_alf_aps_id[i]指定条带所参考的第i个ALF APS的adaptation_parameter_set_id。adaptation_parameter_set_id等于slice_alf_aps_id[i]的ALF APSNAL单元的TemporalId应小于或等于经编码的条带NAL单元的TemporalId。

当同一图像的两个或多个条带参考具有相同adaption_parameter_set_id值的多个ALF AP时,具有相同adaptation_parameter_set_id值的多个LMCS APS应具有相同的内容。

alf_ctb_flag[cIdx][xCtb>>Log2CtbSize][yCtb>>Log2CtbSize]等于1指定自适应环路滤波器被应用于由亮度位置(xCtb,yCtb)处的编解码树单元的cIdx所指示的颜色分量的编解码树块。alf_ctb_flag[cIdx][xCtb>>Log2CtbSize][yCtb>>Log2CtbSize]等于0指定自适应环路滤波器不被应用于由亮度位置(xCtb,yCtb)处的编解码树单元的cIdx所指示的颜色分量的编解码树块。

当alf_ctb_flag[cIdx][xCtb>>Log2CtbSize][yCtb>>Log2CtbSize]不存在时,推断其等于0。

2.3VVC中的交叉分量线性模型(CCLM)帧内预测

为了减少交叉分量冗余,在VTM4中使用交叉分量线性模型(CCLM)预测模式,对于该模式,通过使用以下线性模型、基于同一CU的重建亮度样点来预测色度样点:

predC(i,j)=α·recL′(i,j)+β (3-1)

这里,predC(i,j)表示CU中的预测的色度样点,并且recL(i,j)表示同一CU的经下采样的重建亮度样点。线性模型参数α和β是从两个样点的亮度值和色度值之间的关系推导的,这两个样点是在经下采样的相邻亮度样点集内、具有最小样点值和最大样点值的亮度样点,以及它们相应的色度样点。线性模型参数α和β根据以下等式获得。

β=Yb-á·Xb (3-3)

这里,Ya和Xa表示具有最大亮度样点值的亮度样点的亮度值和色度值。并且Xb和Yb分别表示具有最小亮度样点的亮度样点的亮度值和色度值。图2示出了左侧和上方样点的位置以及CCLM模式中涉及的当前块的样点的示例。

计算参数α的除法运算是用查找表实现的。为了减少存储表所需的内存,diff值(最大值和最小值之间的差)和参数α用指数表示法来表示。例如,diff用一个4位有效部分和指数来近似。因此,针对有效数(significand)的16个值,1/diff的表被简化为16个元素,如下所示:

DivTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}。

这将有利于降低计算的复杂度以及存储所需表所需的内存大小。

除了上方模板和左侧模板可以一起用于计算线性模型系数,它们也可以在其他2个LM模式(被称为LM_A和LM_L模式)中被交替使用。

在LM_A模式下,仅使用上方模板计算线性模型系数。为了得到更多的样点,将上方模板扩展为(W+H)。在LM_L模式下,仅使用左侧模板来计算线性模型系数。为了得到更多的样点,将左侧模板扩展为(H+W)。

对于非正方形块,上方模板被扩展为W+W,左侧模板被扩展为H+H。

为了匹配4:2:0视频序列的色度样点位置,对亮度样点应用两种类型的下采样滤波器,以在水平和垂直方向两者上实现2:1的下采样比率。对下采样滤波器的选择由SPS级别标志指定。两个下采样滤波器如下所示,分别与“类型-0”和“类型-2”内容相对应。

注意,当上部参考线位于CTU边界时,只有一条亮度线(帧内预测中的通用线缓冲器)用于获得经下采样的亮度样点。

该参数计算是作为解码过程的部分来执行的,而不仅是作为编码器搜索操作。因此,不使用语法来向解码器传送α和β值。

对于帧内色度模式编码,帧内色度模式编码总共允许8种帧内模式。这些模式包括五种传统的帧内模式和三种交叉分量线性模型模式(CCLM、LM_A和LM_L)。色度模式信令和推导过程如下表所示。色度模式编码直接取决于相应亮度块的帧内预测模式。由于亮度和色度分量的单独块分割(partition)结构在I个条带中被启用,一个色度块可以对应于多个亮度块。因此,对于色度DM模式,直接继承(inherit)覆盖当前色度块的中心位置的相应亮度块的帧内预测模式。

JVET-N 1001-v2中规定的解码过程如下所示。

8.4.4.2.8 INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范

8.变量a、b和k基于如下公式推导:

–如果numSampL等于0,并且numSampT等于0,则以下等式适用:

k=0 (8-208)

a=0 (8-209)

b=1<<(BitDepthC-1) (8-210)

–否则,以下等式适用:

diff=maxY-minY (8-211)

-如果diff不等于0,则以下等式适用:

diffC=maxC–minC (8-212)

x=Floor(Log2(diff)) (8-213)

normDiff=((diff<<4)>>x)&15 (8-214)

x+=(normDiff!=0)?1:0 (8-215)

y=Floor(Log2(Abs(diffC)))+1 (8-216)

a=(diffC*(divSigTable[normDiff]|8)+2y-1)>>y (8-217)

k=((3+x-y)<1)?1:3+x-y (8-218)

a=((3+x-y)<1)?Sign(a)*15:a (8-219)

b=minC-((a*minY)>>k) (8-220)

其中,divSigTable[]被指定如下:

divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}(8-221)

–否则(diff等于0),以下等式适用:

k=0 (8-222)

a=0 (8-223)

b=minC (8-224)

9.预测样点predSamples[x][y],x=0...nTbW-1,y=0...nTbH-1基于如下公式推导:

predSamples[x][y]=Clip1C(((pDsY[x][y]*a)>>k)+b)(8-225)

2.4 VVC中的MV缩放

MV缩放被应用于时域运动矢量预测(TMVP)和AMVP。

在JVET-N1001中,MV缩放描述如下:

8.5.2.12并置运动矢量的推导过程

–否则,mvLXCol作为运动矢量mvCol的经缩放的版本基于如下公式推导:

tx=(16384+(Abs(td)>>1))/td (8-421)

distScaleFactor=Clip3(-4096,4095,(tb*tx+32)>>6) (8-422)

mvLXCol=Clip3(-131072,131071,Sign(distScaleFactor*mvCol)*((Abs(distScaleFactor*mvCol)+127)>>8))

(8-423)

其中,td和tb基于如下公式推导:

td=Clip3(-128,127,colPocDiff) (8-424)

td=Clip3(-128,127,currPocDiff) (8-425)

可以通过查找表实现用于推导tx的除法运算符。查找表MV_SCALE_T[poc_diff_idx]的大小可以是128,并且MV_SCALE_T[poc_diff_idx]=(16384+(Abs(poc_diff_idx)>>1))/poc_diff_idx,poc_diff_idx从1到128。

2.5局部照明补偿

局部照明补偿(LIC)基于照明变化的线性模型,使用缩放因子a和偏移b。并且对于每个帧间模式编解码单元(CU)自适应地启用或禁用局部照明补偿(LIC)。

当LIC适用于CU时,使用最小平方误差方法,以通过使用当前CU的相邻样点及其相应的参考样点(也被称为参考相邻样点)来推导参数a和b。更具体地,如图3所示,使用CU的经子采样(2:1二次采样)的相邻样点和参考图像中的相应样点(由当前CU或子CU的运动信息标识)。单独为每个预测方向推导和应用IC参数。

当CU以合并模式被编解码时,以类似于合并模式中的运动信息复制的方式,从相邻块复制LIC标志;否则,LIC标志被信令通知给CU,以指示LIC是否适用。

当为图像启用LIC时,需要额外的CD级别RD,以确定LIC是否适用于CU。当为CU启用LIC时,对于整数像素(pel)运动搜索和分数像素运动搜索,分别使用去除均值后的绝对差之和(MR-SAD)以及去除均值后的绝对Hadamard变换差之和(MR-SATD),而不是使用SAD和SATD。

为了降低编码复杂度,在JEM中应用了以下编码方案。

当当前图像与其参考图像之间没有明显的照明变化时,对整个图像禁用LIC。为了识别这种情况,在编解码器处计算当前图像的直方图和当前图像的每个参考图像。如果当前图像和当前图像的每个参考图像之间的直方图差小于给定的阈值,则对于当前图像禁用LIC;否则,为当前图像启用LIC。

3现有实现方式的缺点

对IRL(又名LMCS)和CCLM的当前设计可能存在以下问题:

(1)在LMCS的过程中存在除法运算,这在硬件设计中是不被期望的。

(2)在CCLM模式下,色度样点位于原始域中,但亮度样点位于LMCS的整形域中,这可能是低效的。

(3)LMCS模型的信令方法可能是低效的。

4视觉媒体编码的无损编码的示例方法

当前公开的技术的实施例克服了现有实现方式的缺点,从而提供具有更高编解码效率的视频编解码。基于所公开的技术、用于视频编解码中的缩放和除法运算的方法可以增强现有和未来的视频编解码标准,并在以下针对各种实现方式描述的示例中进行了阐述。下面提供的公开的技术的示例解释了一般概念,并且不旨在被解释为限制。在示例中,除非明确地被指示为相反的情况,否则可以组合这些示例中描述的各种特征。

在下面的讨论中,SatShift(x,n)被定义为

在一个示例中,offset0和/或offset1被设置为(1<<n)>>1或(1<<(n-1))。在另一个示例中,offset0和/或offset1被设置为0。

在另一个示例中,offset0=offset1=((1<<n)>>1)-1or((1<<(n-1)))-1。

Clip3(min,max,x)被定义为

Floor(x)被定义为小于或等于x的最大整数。

Ceil(x)是大于或等于x的最小整数。

Log2(x)被定义为x的以2为底的对数。

LMCS中的除法替换

1.提出视频/图像编码/解码过程中的除法运算(诸如LMCS方法中的InvScaleCoeff[i]=OrgCW*(1<<11)/lmcsCW[i])可以由运算或多个运算的过程替换或近似。

a.在一个示例中,运算或多个运算的过程可以包括用索引查询表的条目的运算。

i.在可替代的示例中,其可以包括用索引查询一个或多个表的多个条目的运算。

b.在一个示例中,运算或多个运算的过程可以包括不是除法运算的运算。

i.在一个示例中,其可以包括乘法运算。

ii.在一个示例中,其可以包括加法运算。

iii.在一个示例中,其可以包括SatShift(x,n)的运算。

iv.在一个示例中,其可以包括Shift(x,n)的运算。

v.在一个示例中,其可以包括左移位运算。

vi.在一个示例中,其可以包括Floor(x)的运算。

vii.在一个示例中,其可以包括Log2(x)的运算。

viii.在一个示例中,其可以包括“逻辑或(OR)”(C语言中的|)的运算。

ix.在一个示例中,其可以包括“逻辑与(AND)”(C语言中的&)的运算。

2.在一个示例中,可以使用表示为T[idx]的表来替换或近似第1项中的除法运算。

a.在一个示例中,表大小可以等于2M,并且idx可以在[0,2M-1]的范围内,包括0和2M-1。

b.在一个示例中,T[idx]=Rounding(2P/(idx+offset0))-offset1,其中offset0和offset1是整数。P是整数。例如,P=8或P=9或P=10或P=11或P=12或P=13或者P=14。

i.在一个示例中,Rounding(x/y)=Floor((x+y/2)/y);

ii.在一个示例中,Rounding(x/y)被设置为等于整数Q,使得对于集合中任何整数Q’,|Q*y-x|<=|Q’*y-x|。例如,集合可以是{Floor(x/y)-1,Floor(x/y),Floor(x/y)+1}。

iii.在一个示例中,offset0可以等于2W,例如,W=0或W=1或W=4、或W=5、或W=6、或者W=7。

1)可替代地,offset0可以是0。

iv.在一个示例中,offset1可以等于2Z,例如,Z=3、或Z=4、或Z=5、或Z=6、或者Z=7。

1)可替代地,offset1可以是0。

c.在一个示例中,第2.a项中定义的M可以等于第2.b项中定义的W。

d.在一个示例中,Z可以等于P-W-1,其中Z、P和W在第2.b项中被定义。

e.在一个示例中,T[idx]应该小于2Z

i.在一个示例中,如果T[idx]等于2Z,则其可以被设置为等于0。

ii.例如,T[idx]=(Rounding(2P/(idx+offset0))-offset1)%offset1。

3.表的一些示例如下所示。

a.W=M=7,P=15,

T={0,126,124,122,120,118,117,115,113,111,109,108,106,104,103,101,100,98,96,95,93,92,90,89,88,86,85,83,82,81,79,78,77,76,74,73,72,71,69,68,67,66,65,64,63,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,44,43,42,41,40,39,38,37,37,36,35,34,33,33,32,31,30,30,29,28,27,27,26,25,24,24,23,22,22,21,20,20,19,18,18,17,16,16,15,14,14,13,13,12,11,11,10,10,9,9,8,7,7,6,6,5,5,4,4,3,3,2,2,1,1}。

b.W=M=7,P=14,

T={0,63,62,61,60,59,58,57,56,56,55,54,53,52,51,51,50,49,48,47,47,46,45,45,44,43,42,42,41,40,40,39,38,38,37,37,36,35,35,34,34,33,32,32,31,31,30,30,29,29,28,28,27,27,26,26,25,25,24,24,23,23,22,22,21,21,20,20,20,19,19,18,18,18,17,17,16,16,16,15,15,14,14,14,13,13,13,12,12,12,11,11,10,10,10,9,9,9,8,8,8,8,7,7,7,6,6,6,5,5,5,5,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,0}。

c.W=M=6,P=13,

T={0,0,31,31,30,30,29,29,28,28,27,27,27,26,26,25,25,24,24,24,23,23,23,22,22,22,21,21,21,20,20,20,19,19,19,18,18,18,17,17,17,16,16,16,16,15,15,15,15,14,14,14,14,13,13,13,13,12,12,12,12,11,11,11,11,10,10,10,10,10,9,9,9,9,9,8,8,8,8,8,7,7,7,7,7,6,6,6,6,6,6,5,5,5,5,5,5,4,4,4,4,4,4,3,3,3,3,3,3,3,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,0,0,0}。

d.W=M=6,P=14,

T={0,124,120,117,113,109,106,103,100,96,93,90,88,85,82,79,77,74,72,69,67,65,63,60,58,56,54,52,50,48,46,44,43,41,39,37,36,34,33,31,30,28,27,25,24,22,21,20,18,17,16,14,13,12,11,10,9,7,6,5,4,3,2,1}。

e.W=M=6,P=13,

T={0,62,60,58,56,55,53,51,50,48,47,45,44,42,41,40,38,37,36,35,34,32,31,30,29,28,27,26,25,24,23,22,21,20,20,19,18,17,16,16,15,14,13,13,12,11,10,10,9,8,8,7,7,6,5,5,4,4,3,3,2,2,1,1}。

f.W=M=6,P=12,

T={0,31,30,29,28,27,27,26,25,24,23,23,22,21,21,20,19,19,18,17,17,16,16,15,15,14,14,13,13,12,12,11,11,10,10,9,9,9,8,8,7,7,7,6,6,6,5,5,5,4,4,4,3,3,3,2,2,2,2,1,1,1,1,0}。

g.W=M=6,P=11,

T={0,0,15,15,14,14,13,13,12,12,12,11,11,11,10,10,10,9,9,9,8,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,4,4,4,4,4,4,3,3,3,3,3,2,2,2,2,2,2,2,1,1,1,1,1,1,1,0,0,0}。

h.W=M=6,P=10,

T={0,0,0,7,7,7,7,6,6,6,6,6,5,5,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0}。

i.W=M=5,P=13,

T={0,120,113,106,100,93,88,82,77,72,67,63,58,54,50,46,43,39,36,33,30,27,24,21,18,16,13,11,9,6,4,2}。

j.W=M=5,P=12,

T={0,60,56,53,50,47,44,41,38,36,34,31,29,27,25,23,21,20,18,16,15,13,12,10,9,8,7,5,4,3,2,1}。

k.W=M=5,P=11,

T={0,30,28,27,25,23,22,21,19,18,17,16,15,14,13,12,11,10,9,8,7,7,6,5,5,4,3,3,2,2,1,1}。

l.W=M=5,P=10,

T={0,15,14,13,12,12,11,10,10,9,8,8,7,7,6,6,5,5,4,4,4,3,3,3,2,2,2,1,1,1,1,0}。

m.W=M=5,P=9,

T={0,0,7,7,6,6,5,5,5,4,4,4,4,3,3,3,3,2,2,2,2,2,1,1,1,1,1,1,1,0,0,0}。

n.W=M=4,P=10,

T={0,28,25,22,19,17,15,13,11,9,7,6,5,3,2,1}。

o.W=M=4,P=9,

T={0,14,12,11,10,8,7,6,5,4,4,3,2,2,1,1}。

p.offset0=0,M=8,P=14

T[k]=(214+k/2)/k,k从1到256;

q.offset0=0,M=8,P=11

T[k]=(211+k/2)/k,k从1到256;

r.offset0=0,M=9,P=14

T[k]=(214+k/2)/k,k从1到512;

s.offset0=0,M=9,P=11

T[k]=(211+k/2)/k,k从1到512;

t.offset0=0,M=10,P=14

T[k]=(214+k/2)/k,k从1到1024;

u.offset0=0,M=10,P=11

T[k]=(211+k/2)/k,k从1到1024;

v.T={0,248,240,233,226,219,212,206,199,193,187,181,175,170,164,159,154,149,144,139,134,130,125,121,116,112,108,104,100,96,93,89,85,82,78,75,72,68,65,62,59,56,53,50,47,45,42,39,37,34,31,29,26,24,22,19,17,15,13,10,8,6,4,2}

4.当T[idx]在多次运算的过程中被使用,以替换或近似第2项中的除法运算时,idx可以用多次运算的过程推导。

a.在一个示例中,多个运算的过程可以包括加法、Log2(x)、Floor(x)、左移位、Shift(x,n)或SatShift(x,n)、“逻辑或”和“逻辑与”。

b.在一个示例中,多个运算的过程可以取决于第2项中定义的M或W。

c.在一个示例中,idx可以被设置为等于Shift(D<<M,Floor(Log2(D)))&(2M-1),其中D是分母,诸如LMCS过程中的lmcsCW[i]。

i.idx可以通过添加偏移idx=((Shift(D<<M,Floor(Log2(D)))&(2M-1))+Off来被进一步修改。

1)修改后的idx可以被裁剪(clip)到[0,2M-1]的范围,包括0和2M-1。

2)例如,idx=Min(2M-1,idx0+Off),其中,idx0=(Shift(D<<M,Floor(Log2(D)))&(2M-1)并且Off=(Shift(D<<(M+1),Floor(Log2(D))))&1。

d.在一个示例中,第4.c项中的变量M可以被替换为第2项中定义的W。

e.可替代地,此外,裁剪可以被进一步应用于结果值。

5.提出将T[idx]修改为中间值V,该中间值V将在多个运算的过程中被使用,以替换或近似第2项中的除法运算。

a.在一个示例中,V=T[idx]。

b.在一个示例中,V=T[idx]<<m,其中m是整数。

c.在一个示例中,V=T[idx]*m,其中m是整数。

d.在一个示例中,V=T[idx]+m,其中m是整数。

e.在一个示例中,V=Shift(T[idx],n)或V=SatShift(T[idx],n),其中m是诸如1或2的整数。

1)在一个示例中,值n可以取决于第4项中定义的D的值。

a)例如,如果D<=2M,n=0,其中M在第2项中被定义。

b)例如,如果D>2M,n=Ceil(Log2(D))-M。

c)例如,如果D>2M,n=Floor(Log2(D))-M+1。

f.在一个示例中,修改方法可以取决于T[idx]的值和/或idx的值。

i.在一个示例中,修改方法可以取决于T[idx]的值是否等于诸如0的固定值。

ii.在一个示例中,修改方法可以取决于idx的值是否小于值TT,例如TT=1或2或2M-1。在另一个示例中,修改方法可以取决于idx的值是否等于诸如0的固定值。

iii.在一个示例中,修改方法可以取决于T[idx]的值是否等于0,以及idx的值是否小于值TT,例如TT=1或2或2M-1。在另一个示例中,修改方法可以取决于T[idx]的值是否等于诸如0的固定值,以及idx的值是否等于诸如0的固定值。

g.在一个示例中,V=T[idx]|2Z,其中Z在第2项中被定义。

i.可替代地,如果T[idx]的值等于0并且idx的值小于阈值TT,例如TT=1或2或2M -1,则V=2Z+1;否则,V=T[idx]|2Z

ii.可替代地,如果T[idx]的值等于0并且idx的值等于0,则V=2Z+1;否则,V=T[idx]|2Z

h.在一个示例中,V=T[idx]+2Z,其中Z在第2项中被定义。

i.可替代地,如果T[idx]的值等于0并且idx的值小于阈值TT,例如TT=1或2或2M -1,则V=2Z+1;否则,V=T[idx]+2Z

ii.可替代地,如果idx的值等于0,则V=2Z+1;否则,V=T[idx]+2Z

6.提出除法运算中将被替换或近似的分子(诸如LMCS方法中的OrgC,表示为N)与在第5项中被定义的中间值V的乘法,可以用作除法结果的替换或近似。在公式化的方式中,R=N*V可以用作除法结果的替换或近似。

a.可替代地,表示为R’的修改后的R可以用作除法结果的替换或近似。

i.在一个示例中,R’=R<<m,其中m是诸如11的整数。

1)可替代地,R’=Shift(R,m)或R’=SatShift(R,m),其中m是整数。

2)在一个示例中,m可以取决于第5.e项中定义的值n。

a)例如,m=offset-n,其中offset是诸如11等整数。

ii.在一个示例中,修改方法可以取决于第2项中定义的P和/或第2项中定义的W(或M),和/或第4项中定义的D,和/或T和/或idx。

1)在一个示例中,修改方法可以取决于固定数S与P、

W(或M)、T、idx和D的函数f之间的关系。

a)例如,f(P,W,D,T,idx)=P-W-1+Log2(D),或者f(P,M,D,T,idx)=P-M-1+Log2(D)。

b)例如f(P,W,D,T,idx)=P-W-1+Log2(D)+off,或者f(P,M,D,T,idx)=P-M-1+Log2(D)+off。

i.在一个示例中,如果T[idx]的值等于0并且idx的值小于阈值TT,例如TT=1或2或2M-1,则off等于0;否则,off=1。

ii.在一个示例中,如果idx的值等于0,off等于0;否则,off=1。

c)例如f(P,W,D,T,idx)=P-W+Log2(D),或者f(P,M,D,T,idx)=P-M+Log2(D)。

d)例如f(P,W,D,T,idx)=P-W+1+Log2(D),或者f(P,M,D,T,idx)=P-M+1+Log2(D)。

e)例如,S=11或14。

f)例如,如果f(P,W,D,T,idx)<=S,R’=R<<(S-f(P,W,D,T,idx));否则,R’=Shift(R,f(P,W,D,T,idx)-S)。

g)例如f(P,M,D,T,idx)<=S,R’=R<<(S-f(P,M,D,T,idx));否则,R’=Shift(R,f(P,M,D,T,idx)-S)。

b.可替代地,修改后的N(表示为N’)可以用于推导R,因为R=N’*V。

i.在一个示例中,N’=N<<m,其中m是诸如11的整数。

1)可替代地,N’=Shift(N,m)或N’=SatShift(N,m),其中m是整数。

2)在一个示例中,m可以取决于第5.e项中定义的值n。

a)例如,m=offset-n,其中offset是诸如11等整数。

ii.在一个示例中,修改方法可以取决于第2项中定义的P和/

或第2项中定义的W(或M),和/或第4项中定义的D,和

/或T和/或idx。

1)在一个示例中,修改方法可以取决于固定数S与P、

W(或M)、T、idx和D的函数f之间的关系。

a)函数f可以如第6.a项中一样被定义。

b)例如,S=11。

c)例如f(P,W,D)<=S,N’=N<<(S-f(P,W,D));否则,N’=Shift(N,f(P,W,D)-S)。

d)例如f(P,M,D)<=S,N’=N<<(S-f(P,M,D));否则,N’=Shift(N,f(P,M,D)-S)。

7.提出替换或近似除法运算符的运算或多个运算的过程的结果(表示为R)可以与精度值(表示为Q)相关联。当R用于计算变量B时,B可以被计算为B=Shift(g(R),Q)或B=SatShift(g(R),Q),其中g(R)是关于R的任意函数。

a.在LMCS方法的一个示例中,R可以是InvScaleCoeff[idxYInv],并且经反向亮度重建后的样点可以如下推导:

invSample=InputPivot[idxYInv]+difference,

其中,

difference=Shift(g(InvScaleCoeff[idxYInv]),Q),并且

g(InvScaleCoeff[idxYInv])=InvScaleCoeff[idxYInv]*

(lumaSample[xP][yP]-LmcsPivot[idxYInv]),

Q=11。

b.在LMCS方法的一个示例中,R可以是ChromaScaleCoeff[idxYInv],并且反向色度残差样点可以如下推导:

invResSample[i][j]=

Sign(resSamples[i][j])*(Shift(ChromaScaleCoeff[idxYInv],Q)),其中,

g(ChromaScaleCoeff[idxYInv])=Abs(resSamples[i][j])*

ChromaScaleCoeff[idxYInv],

Q=11。

c.在一个示例中,Q可以是固定数,诸如11或14。

d.在一个示例中,Q可以取决于第2项中定义的P和/或第2项中定义的W(或M),和/或第4项中定义的D和/或表T,和/或idx。

i.在一个示例中,Q=P-W-1+Log2(D),或者Q=P-M-1+Log2(D)。

ii.例如,Q=P-W-1+Log2(D)+off,或者Q=P-M-1+Log2(D)+off。

1)在一个示例中,如果T[idx]的值等于0并且idx的值小于阈值TT,例如TT=1或2或2M-1,则off等于0;否则,off=1。

iii.例如,Q=P-W+Log2(D),或者Q=P-M+Log2(D)。

iv.例如,Q=P-W+1+Log2(D),或者Q=P-M+1+Log2(D)。

e.在一个示例中,Q可以取决于第5.e项中定义的n。

i.例如,Q=offset-n,其中offset是诸如11或14的整数。

8.提出D或者D的绝对值总是大于值G(诸如8),那么表大小可以取决于G。

a.在一个示例中,G可以取决于样点比特深度。

b.在一个示例中,表大小可以取决于样点比特深度。

除法替换的统一

9.在一个示例中,在MV缩放中使用的除法运算可以在多个运算的过程中被使用,以替换或近似第1项中的除法运算。

a.在一个示例中,D可以被转换为范围[minD,maxD](例如[-128,127])内的中间变量D’,其中D是分母(例如,第1项中的lmcsCW[i])。

i.在一个示例中,从D到D’的转换可以是线性或非线性量化过程。

ii.在一个示例中,D’=Clip3(D,minD,maxD);

iii.在一个示例中,D’=Clip3(D,0,maxD);

iv.在一个示例中,D’=SatShift(D,n)或D’=Shift(D,n),其中n

是诸如1或2的整数。

1)可替代地,D’=Clip3(Shift(D,n),minD,maxD)或D’=Clip3(SatShift(D,n),-128,127),其中n是诸如1或2的整数。

2)可替代地,D’=Clip3(Shift(D,n),0,maxD)或D’=Clip3(SatShift(D,n),0,maxD),其中n是诸如1或2的整数。

3)在一个示例中,n的值可以取决于D的值。

a)例如,如果D<=maxD,则n=0。

b)例如,如果D>maxD,则n=Ceil(Log2(D))-Log2(maxD)。

c)例如,如果D>maxD,则n=Floor(Log2(D))-(Log2(maxD)-1)。

b.在一个示例中,中间变量R推导为R=(16384+(Abs(D’)>>1))/D’,可以在多个运算的过程中被使用,以替换或近似第1项中的除法运算。

i.可替代地,表MV_SCALE_T可以用来推导R。

c.在一个示例中,第8.b项中的R可以与精度值(表示为Q)相关联。当R用于计算变量B时,B可以被计算为B=Shift(g(R),Q)或B=SatShift(g(R),Q),其中g(R)是关于R的任意函数。

i.在一个示例中,Q可以取决于第8.a项中的n。

1)可替代地,Q可以等于Offset-n,其中Offset是诸如14的整数。

d.所公开的MV缩放方法可以用于合并帧间模式或高级运动矢量预测(AMVP)模式的时域运动矢量预测(TMVP)的MV缩放。

e.所公开的MV缩放方法可以用于仿射预测模式的MV缩放。

f.所公开的MV缩放方法可以用于基于子块的时域合并模式的MV缩放。

10.在一个示例中,可以在多个运算的过程中使用相同的表来替换或近似CCLM和LMCS的除法运算。

a.例如,表可以是第3项中示出的任何表,诸如第3.e项。

11.在一个示例中,可以在过程中使用相同的表来替换或近似MV缩放和LMCS中的除法运算。

a.例如,表可以是第3项中示出的任何表,诸如第3.e项。

12.在一个示例中,可以在过程中使用替换或近似CCLM中的除法运算的方法,以替换或近似局部照明补偿(LIC)中的除法运算。

a.可替代地,可以在过程中使用替换或近似LMCS中的除法运算的方法,以替换或近似LIC中的除法运算。

b.可替代地,可以在过程中使用替换或近似MV缩放中的除法运算的方法,以替换或近似LIC中的除法运算。

CCLM、LIC和LMCS

13.即使亮度块是用LMCS编码的,色度样点也是根据原始域中重建亮度样点预测的。

a.在一个示例中,对于CCLM模式,可以首先将整形域中的相邻的(相邻或非相邻的)重建亮度样点转换到原始域,然后使用转换后的亮度样点来推导线性模型参数,诸如a和b。

b.在一个示例中,对于CCLM模式,可以首先将整形域中的并置亮度样点转换到原始域,然后将转换后的亮度样点与线性模型一起用于生成预测色度样点。

LMCS模型的信令

14.可以用信令通知在LMCS使用的缩放系数(例如,VVC中的ScaleCoeff[i])和/或逆缩放系数(例如,VVC中的InvScaleCoeff[i])的指示。

a.在一个示例中,缩放系数可以被直接编码。可替代地,可以用信令通知缩放系数的量化值。

b.其可以以预测性方式来信令通知。

c.其可以以固定长度码、一元码、截断一元码或指数哥伦布(Golomb)码来信令通知。

d.其可以在诸如VPS/SPSS/PPS/APS/图像标头/条带标头/片组标头等的视频单元中用信令通知。

15.可以用信令通知LMCS中的色度缩放因子的指示,诸如ChromaScaleCoeff[i]。

a.在一个示例中,色度缩放因子可以被直接编码。可替代地,可以用信令通知缩放因子的量化值。

b.其可以以预测性方式来信令通知。

c.其可以用固定长度码、一元码、截断一元码或指数哥伦布码来信令通知。

d.其可以在诸如VPS/SPSS/PPS/APS/图像标头/条带标头/片组标头等的视频单元中用信令通知。

i.可替代地,此外,如果色度缩放被应用于视频块,则视频单元中的所有视频块可以使用相同的信令通知的缩放因子。

16.提出可以用信令通知信息来指示LMCS中的色度缩放是否被应用。

a.其可以在诸如VPS/SPSS/PPS/APS/图像标头/条带标头/片组标头等的视频单元中用信令通知。

i.在一个示例中,当亮度和色度样点用双树编解码结构编解码并且当前条带或片组是经帧内编解码的条带或片组时,可以在条带或片组标头中用信令通知。

上述示例可以结合在下述方法的上下文中,例如方法400,其可以在视频解码器或视频编解码器处实现。

图4示出了用于视频处理的示例性方法的流程图。方法400包括,在步骤402,执行视频的当前视频块和视频的编解码表示之间的转换,其中,该转换包括:用一个或多个运算近似将在用于处理当前视频块的特定模式中使用的除法运算的结果,以替换除法运算N/D,N和D分别表示除法运算中的分子和分母,其中,一个或多个运算中的每一个不同于除法运算。

图5示出了用于视频处理的另一示例性方法的流程图。方法500包括,在步骤502,执行视频的当前视频块和视频的编解码表示之间的转换,其中,该转换包括:用与运动矢量(MV)缩放方案相关联的除法运算来近似将在用于处理当前块的特定模式中使用的除法运算N/D的结果,或者从与MV缩放方案相关联的查找表中推导除法运算N/D的结果,以替换除法运算N/D。

在一个方面,公开了一种用于视频处理的方法,包括:在视频的当前视频块和视频的编解码表示之间执行转换,其中,该转换包括:用一个或多个运算来近似将在用于处理当前视频块的特定模式中使用的除法运算N/D的结果,N和D分别表示除法运算中的分子和分母,其中,一个或多个运算中的每一个不同于除法运算。

在一个示例中,一个或多个运算包括乘法运算、加法运算、SatShift(x,n)运算、Shift(x,n)运算、左移位运算、floor运算、log2运算和逻辑运算中的至少一个,

其中,

其中,Shift(x,n)=(x+offset0)>>n。

在一个示例中,逻辑运算包括逻辑OR运算和逻辑AND运算中的至少一个。

在一个示例中,offset0和offset1中的至少一个被设置为零。

在一个示例中,offset0和offset1中的至少一个被设置为以下之一:

(1<<n)>>1;

1<<(n-1);

((1<<n)>>1)-1;

(1<<(n-1))-1。

在一个示例中,offset0=offset1。

在一个示例中,一个或多个运算包括基于索引查询至少一个表中的至少一个条目。

在一个示例中,至少一个表具有2M的大小,并且至少一个表中的一个或多个条目中的每一个被表示为T[idx],并且其中,idx表示索引并且在0到2M-1(包含0和2M-1)的范围内,M是整数。

在一个示例中,T[idx]=Rounding(2P/(idx+offset0))-offset1,其中P、offset0和offset1是整数,并且Rounding(.)是舍入函数。

在一个示例中,P在8到14(包含8和14)的范围内。

在一个示例中,Rounding(x/y)=Floor((x+y/2)/y),并且其中,Floor(·)是floor(向下取整)运算。

在一个示例中,Rounding(x/y)被设置为整数Q,使得|Q*y-x|≤|Q'*y-x|,并且其中Q'选自整数集。

在一个示例中,整数集是{Floor(x/y)-1,Floor(x/y)和Floor(x/y)+1}。

在一个示例中,offset0=2W,并且W=0、1、4、5、6或7。

在一个示例中,offset0=0。

在一个示例中,offset1=2Z,并且Z=3、4、5、6或7。

在一个示例中,offset1=0。

在一个示例中,M=W。

在一个示例中,Z=P-W-1。

在一个示例中,T[idx]被设置为以下之一:

T[idx]<2Z

如果T[idx]=2Z,则T[idx]被设置为0;或者

T[idx]=(Rounding(2P/(idx+offset0))-offset1)%offset1。

在一个示例中,W=M=7,P=15,并且至少一个表如下:

{0,126,124,122,120,118,117,115,113,111,109,108,106,104,103,101,100,98,96,95,93,92,90,89,88,86,85,83,82,81,79,78,77,76,74,73,72,71,69,68,67,66,65,64,63,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,44,43,42,41,40,39,38,37,37,36,35,34,33,33,32,31,30,30,29,28,27,27,26,25,24,24,23,22,22,21,20,20,19,18,18,17,16,16,15,14,14,13,13,12,11,11,10,10,9,9,8,7,7,6,6,5,5,4,4,3,3,2,2,1,1}。

在一个示例中,W=M=7,P=14,并且至少一个表如下:

{0,63,62,61,60,59,58,57,56,56,55,54,53,52,51,51,50,49,48,47,47,46,45,45,44,43,42,42,41,40,40,39,38,38,37,37,36,35,35,34,34,33,32,32,31,31,30,30,29,29,28,28,27,27,26,26,25,25,24,24,23,23,22,22,21,21,20,20,20,19,19,18,18,18,17,17,16,16,16,15,15,14,14,14,13,13,13,12,12,12,11,11,10,10,10,9,9,9,8,8,8,8,7,7,7,6,6,6,5,5,5,5,4,4,4,3,3,3,3,2,2,2,2,1,1,1,1,0}。

在一个示例中,W=M=6,P=13,并且至少一个表如下:

{0,0,31,31,30,30,29,29,28,28,27,27,27,26,26,25,25,24,24,24,23,23,23,22,22,22,21,21,21,20,20,20,19,19,19,18,18,18,17,17,17,16,16,16,16,15,15,15,15,14,14,14,14,13,13,13,13,12,12,12,12,11,11,11,11,10,10,10,10,10,9,9,9,9,9,8,8,8,8,8,7,7,7,7,7,6,6,6,6,6,6,5,5,5,5,5,5,4,4,4,4,4,4,3,3,3,3,3,3,3,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,0,0,0}。

在一个示例中,W=M=6,P=14,并且至少一个表如下:

{0,124,120,117,113,109,106,103,100,96,93,90,88,85,82,79,77,74,72,69,67,65,63,60,58,56,54,52,50,48,46,44,43,41,39,37,36,34,33,31,30,28,27,25,24,22,21,20,18,17,16,14,13,12,11,10,9,7,6,5,4,3,2,1}。

在一个示例中,W=M=6,P=13,并且至少一个表如下:

{0,62,60,58,56,55,53,51,50,48,47,45,44,42,41,40,38,37,36,35,34,32,31,30,29,28,27,26,25,24,23,22,21,20,20,19,18,17,16,16,15,14,13,13,12,11,10,10,9,8,8,7,7,6,5,5,4,4,3,3,2,2,1,1}。

在一个示例中,W=M=6,P=12,并且至少一个表如下:

{0,31,30,29,28,27,27,26,25,24,23,23,22,21,21,20,19,19,18,17,17,16,16,15,15,14,14,13,13,12,12,11,11,10,10,9,9,9,8,8,7,7,7,6,6,6,5,5,5,4,4,4,3,3,3,2,2,2,2,1,1,1,1,0}。

在一个示例中,W=M=6,P=11,并且至少一个表如下:

{0,0,15,15,14,14,13,13,12,12,12,11,11,11,10,10,10,9,9,9,8,8,8,8,7,7,7,7,6,6,6,6,5,5,5,5,4,4,4,4,4,4,3,3,3,3,3,2,2,2,2,2,2,2,1,1,1,1,1,1,1,0,0,0}。

在一个示例中,W=M=6,P=10,并且至少一个表如下:

{0,0,0,7,7,7,7,6,6,6,6,6,5,5,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0}。

在一个示例中,W=M=5,P=13,并且至少一个表如下:

{0,120,113,106,100,93,88,82,77,72,67,63,58,54,50,46,43,39,36,33,30,27,24,21,18,16,13,11,9,6,4,2}。

在一个示例中,W=M=5,P=12,并且至少一个表如下:

{0,60,56,53,50,47,44,41,38,36,34,31,29,27,25,23,21,20,18,16,15,13,12,10,9,8,7,5,4,3,2,1}。

在一个示例中,W=M=5,P=11,并且至少一个表如下:

{0,30,28,27,25,23,22,21,19,18,17,16,15,14,13,12,11,10,9,8,7,7,6,5,5,4,3,3,2,2,1,1}。

在一个示例中,W=M=5,P=10,并且至少一个表如下:

{0,15,14,13,12,12,11,10,10,9,8,8,7,7,6,6,5,5,4,4,4,3,3,3,2,2,2,1,1,1,1,0}。

在一个示例中,W=M=5,P=9,并且至少一个表如下:

{0,0,7,7,6,6,5,5,5,4,4,4,4,3,3,3,3,2,2,2,2,2,1,1,1,1,1,1,1,0,0,0}。

在一个示例中,W=M=4,P=10,并且至少一个表如下:

{0,28,25,22,19,17,15,13,11,9,7,6,5,3,2,1}。

在一个示例中,W=M=4,P=9,并且至少一个表如下:

{0,14,12,11,10,8,7,6,5,4,4,3,2,2,1,1}。

在一个示例中,T[idx]=(2P+k/2)/k,k从1到2M;。

在一个示例中,

M=8,P=14;

M=8,P=11;

M=9,P=14;

M=9,P=11;

M=10,P=14;或者

M=10,P=11。

在一个示例中,至少一个表如下:

{0,248,240,233,226,219,212,206,199,193,187,181,175,170,164,159,154,149,144,139,134,130,125,121,116,112,108,104,100,96,93,89,85,82,78,75,72,68,65,62,59,56,53,50,47,45,42,39,37,34,31,29,26,24,22,19,17,15,13,10,8,6,4,2}。

在一个示例中,索引idx是基于一个或多个运算推导的。

在一个示例中,一个或多个运算包括加法运算、log2运算、floor运算、左移位运算、SatShift(x,n)运算、Shift(x,n)运算、逻辑OR运算和逻辑AND运算中的至少一个。

在一个示例中,索引idx基于如下公式推导:

idx=Shift(D<<K,Floor(Log2(D)))&(2K-1),其中D表示除法运算中的分母。

在一个示例中,修改后的索引从索引idx基于如下公式推导:

idx’=idx+Off,其中idx'表示修改后的索引。

在一个示例中,修改后的索引idx’被裁剪到[0,2K-1](包含0和2K-1)的范围内。

在一个示例中,修改后的索引idx’被裁剪如下:

Min(2K-1,idx’),

其中,

在一个示例中,Off=(Shift(D<<(K+1),Floor(Log2(D))))&1。

在一个示例中,K=M或K=W。

在一个示例中,中间值V基于以下之一从条目T[idx]推导:

V=T[idx]<<m;

V=T[idx]*m;

V=T[idx]+m;

V=Shift(T[idx],n);

V=SatShift(T[idx],n);

V=T[idx]+2Z;或者

V=T[idx]|2Z

在一个示例中,m=1或2。

在一个示例中,

如果D<=2M,n=0;并且

如果D>2M,n=Ceil(Log2(D))-M。

在一个示例中,

如果D<=2M,n=0;并且

如果D>2M,n=Floor(Log2(D))-M+1。

在一个示例中,中间值V的推导取决于条目T[idx]的值和与条目T[idx]相关联的索引idx的值中的至少一个。

在一个示例中,推导取决于T[idx]的值是否等于第一值。

在一个示例中,推导取决于idx的值是否小于第二值。

在一个示例中,推导取决于idx的值是否等于第三值。

在一个示例中,第一值和第三值中的至少一个等于0。

在一个示例中,第二值等于{1,2或2M-1}之一。

在一个示例中,中间值V基于如下公式推导:

如果T[idx]的值等于第一值并且idx的值小于第二值,则V=2Z+1

否则,V=T[idx]|2Z,其中“|”表示逻辑OR运算;

其中Z=3、4、5、6或7。

在一个示例中,中间值V基于如下公式推导:

如果T[idx]的值等于第一值并且idx的值等于第三值,则V=2Z+1

否则,V=T[idx]|2Z,其中“|”表示逻辑OR运算;

其中Z=3、4、5、6或7。

在一个示例中,中间值V如下推导:

如果T[idx]的值等于第一值并且idx的值小于第二值,则V=2Z+1

否则,V=T[idx]+2Z

其中Z=3、4、5、6或7。

在一个示例中,中间值V基于如下公式推导:

如果idx的值等于第三值,则V=2Z+1

否则,V=T[idx]+2Z

其中Z=3、4、5、6或7。

在一个示例中,除法运算的结果基于R来近似,其中R=f1(x),其中x表示N*V,并且N表示除法运算中的分子,V表示推导的中间值。

在一个示例中,除法运算的结果基于R来近似,其中R=f1(x)*V,其中x表示N,并且N表示除法运算中的分子,V表示推导的中间值。

在一个示例中,f1(x)推导为以下之一:

f1(x)=x;

f1(x)=x<<m;

f1(x)=Shift(x,m);

f1(x)=SatShift(x,m);其中m表示整数。

在一个示例中,m=11。

在一个示例中,m=offset-n,其中offset表示整数。

在一个示例中,offset=11,并且

如果D<=2M,n=0;或者

D>2M,n=Ceil(Log2(D))-M。

在一个示例中,offset=11,并且

如果D<=2M,n=0;并且

如果D>2M,n=Floor(Log2(D))-M+1。

在一个示例中,

如果f2(P,K,D,T,idx)<=S,f1(x)=x<<(S-f2(P,K,D,T,idx)),

否则,f1(x)=Shift(x,f2(P,K,D,T,idx)-S);

其中P是整数,并且在8到14(包含8和14)的范围内。

在一个示例中,

如果f2(P,K,D)<=S,f1(x)=x<<(S-f2(P,K,D)),

否则,f1(x)=Shift(x,f2(P,K,D)-S);

其中P是整数,并且在8到14(包含8和14)的范围内。

在一个示例中,f2(P,K,D,T,idx)被设置为以下之一:

f2(P,K,D,T,idx)=P-K+Log2(D);

f2(P,K,D,T,idx)=P-K+1+Log2(D);或者

f2(P,K,D,T,idx)=P-K-1+Log2(D)+off。

在一个示例中,f2(P,K,D)被设置为以下之一:

f2(P,K,D)=P-K+Log2(D);或者

f2(P,K,D)=P-K+1+Log2(D)。

在一个示例中,K=M或K=W。

在一个示例中,S=11或S=14。

在一个示例中,S=11。

在一个示例中,如果T[idx]的值等于第一值并且idx的值小于第二值,off=0;

否则,off=1。

在一个示例中,如果idx的值等于第三值,off=0;

否则,off=1。

在一个示例中,R与精度值Q相关联,并且变量B根据R计算如下:

B=Shift(g(R),Q);或者

B=SatShift(g(R),Q);

其中g(R)是关于R的函数,Q是整数。

在一个示例中,Q=11或14。

在一个示例中,方法用于具有色度缩放的亮度映射(LMCS)模式,并且R表示InvScaleCoeff[idxYInv],并且经反向亮度重建后的样点基于如下公式推导:

invSample=InputPivot[idxYInv]+difference,

其中difference=Shift(g(InvScaleCoeff[idxYInv]),Q),并且

g(InvScaleCoeff[idxYInv])=InvScaleCoeff[idxYInv]*

(lumaSample[xP][yP]-LmcsPivot[idxYInv])。

在一个示例中,方法用于具有色度缩放的亮度映射(LMCS)模式,R表示ChromaScaleCoeff[idxYInv],并且反向色度残差样点基于如下公式推导:

invResSample[i][j]=

Sign(resSamples[i][j])*(Shift(ChromaScaleCoeff[idxYInv],Q)),

其中g(ChromaScaleCoeff[idxYInv])=Abs(resSamples[i][j])*

ChromaScaleCoeff[idxYInv]。

在一个示例中,Q=11。

在一个示例中,Q基于如下公式推导:

Q=P-K+Log2(D);

Q=P-K+1+Log2(D);或者

Q=P-K-1+Log2(D)+off。

在一个示例中,K=M或K=W。

在一个示例中,如果T[idx]的值等于第一值并且idx的值小于第二值,off=0;

否则,off=1。

在一个示例中,Q=offset-n,其中offset表示整数。

在一个示例中,offset=11或14,并且

如果D<=2M,n=0;或者

如果D>2M,n=Ceil(Log2(D))-M。

在一个示例中,offset=11或14,并且

如果D<=2M,n=0;并且

如果D>2M,n=Floor(Log2(D))-M+1。

在一个示例中,分母D的值或D的绝对值大于第一阈值。

在一个示例中,第一阈值等于8。

在一个示例中,当前视频块包括至少一个颜色分量,并且第一阈值取决于至少一个颜色分量的采样比特深度。

在一个示例中,至少一个表的大小取决于第一阈值。

在另一方面,公开了一种用于视频处理的方法,包括:在视频的当前视频块和视频的编解码表示之间执行转换,其中,该转换包括:用与运动矢量(MV)缩放方案相关联的除法运算来近似将在用于处理当前视频块的特定模式中使用的除法运算N/D的结果,或者从与MV缩放方案相关联的查找表中推导除法运算N/D的结果,以替换除法运算N/D。

在一个示例中,特定模式包括运动矢量(MV)缩放模式、具有色度缩放的亮度映射(LMCS)模式、交叉分量线性模型(CCLM)预测模式和局部照明补偿(LIC)模式中的至少一种。

在一个示例中,MV缩放方案用于合并帧间模式的时域运动矢量预测(TMVP)、高级运动矢量预测(AMVP)模式、仿射预测模式、基于子块的时域合并模式中的至少一种。

在一个示例中,分母D被转换为范围[minD,maxD]中的中间变量D’,以近似除法运算N/D的结果,其中minD和maxD表示分母的最小值和最大值。

在一个示例中,minD=-128并且maxD=127。

在一个示例中,分母D在线性或非线性量化过程中被转换为D’。

在一个示例中,分母D被转换为D’,如以下之一:

D’=Clip3(D,minD,maxD);

D’=Clip3(D,0,maxD);

D’=SatShift(D,n);

D’=Shift(D,n);

D’=Clip3(Shift(D,n),minD,maxD);

D’=Clip3(SatShift(D,n),minD,maxD);

D’=Clip3(Shift(D,n),0,maxD);

D’=Clip3(SatShift(D,n),0,maxD);

其中n是整数。

在一个示例中,n=1或n=2。

在一个示例中,n的值取决于D的值。

在一个示例中,如果D<=maxD,n=0;

如果D>maxD,n=Ceil(Log2(D))-Log2(maxD)。

在一个示例中,如果D<=maxD,n=0;

如果D>maxD,n=Floor(Log2(D))-(Log2(maxD)-1)。

在一个示例中,除法运算N/D的结果被近似为

(16384+(Abs(D’)>>1))/D’。

在一个示例中,除法运算N/D的结果是根据MV缩放方案中使用的查找表MV_SCALE_T中推导的。

在一个示例中,当前视频块包括亮度分量和至少一个色度分量,其中至少一个表用于近似具有色度缩放的亮度映射(LMCS)模式和交叉分量线性模型(CCLM)预测模式中的除法运算的功能。

在一个示例中,当前视频块包括亮度分量和至少一个色度分量,其中至少一个表用于近似运动矢量缩放操作模式和具有色度缩放的亮度映射(LMCS)模式中的除法运算的功能。

在一个示例中,特定模式包括具有色度缩放的亮度映射(LMCS)模式、交叉分量线性模型(CCLM)预测模式和运动矢量缩放操作模式中的至少一种。

在一个示例中,当前视频块用局部照明补偿(LIC)模式编码,并且该方法用于近似当前视频块在LIC模式中的除法运算的结果。

在一个示例中,执行转换包括从当前视频块生成编解码表示。

在一个示例中,执行转换包括从编解码表示生成当前视频块。

在又一个方面,公开了一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中,指令在由处理器执行时使得处理器实现上述方法。

在又一个方面,公开了一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行上述方法的程序代码。

5所公开技术的示例实现方式

5.1实施例#1

变量LmcsPivot[i],i=0...16,变量ScaleCoeff[i]和InvScaleCoeff[i],i=0...15,基于如下公式推导:

变量ChromaScaleCoeff[i],i=0…15,基于如下公式推导:

if(lmcsCW[i]==0)

ChromaScaleCoeff[i]=(1<<11)

else{

ChromaScaleCoeff[i]=InvScaleCoeff[i]

}

divTable[]被指定如下:

divTable[]={0,62,60,58,56,55,53,51,50,48,47,45,44,42,41,40,38,37,36,35,34,32,31,30,29,28,27,26,25,24,23,22,21,20,20,19,18,17,16,16,15,14,13,13,12,11,10,10,9,8,8,7,7,6,5,5,4,4,3,3,2,2,1,1}。

5.2实施例#2

变量LmcsPivot[i],i=0...16,变量ScaleCoeff[i]和InvScaleCoeff[i],i=0...15,基于如下公式推导:

变量ChromaScaleCoeff[i],i=0…15,基于如下公式推导:

if(lmcsCW[i]==0)

ChromaScaleCoeff[i]=(1<<11)

else{

ChromaScaleCoeff[i]=InvScaleCoeff[i]

}

divTable[]被指定如下:

divTable[]={0,62,60,58,56,55,53,51,50,48,47,45,44,42,41,40,38,37,36,35,34,32,31,30,29,28,27,26,25,24,23,22,21,20,20,19,18,17,16,16,15,14,13,13,12,11,10,10,9,8,8,7,7,6,5,5,4,4,3,3,2,2,1,1}。

5.3实施例#3

变量LmcsPivot[i],i=0...16,变量ScaleCoeff[i]和InvScaleCoeff[i],i=0...15,基于如下公式推导:

变量ChromaScaleCoeff[i],i=0…15,基于如下公式推导:

if(lmcsCW[i]==0)

ChromaScaleCoeff[i]=(1<<11)

else{

ChromaScaleCoeff[i]=InvScaleCoeff[i]

}

divTable[]被指定如下:

divTable[]={0,124,120,117,113,109,106,103,100,96,93,90,88,85,82,79,77,74,72,69,67,65,63,60,58,56,54,52,50,48,46,44,43,41,39,37,36,34,33,31,30,28,27,25,24,22,21,20,18,17,16,14,13,12,11,10,9,7,6,5,4,3,2,1}。

5.4实施例#4

变量LmcsPivot[i],i=0...16,变量ScaleCoeff[i]和InvScaleCoeff[i],i=0…15,基于如下公式推导:

变量ChromaScaleCoeff[i],i=0…15,基于如下公式推导:

if(lmcsCW[i]==0)

ChromaScaleCoeff[i]=(1<<11)

else{

ChromaScaleCoeff[i]=InvScaleCoeff[i]

}

divTable[]被指定如下:

divTable[]={0,124,120,117,113,109,106,103,100,96,93,90,88,85,82,79,77,74,72,69,67,65,63,60,58,56,54,52,50,48,46,44,43,41,39,37,36,34,33,31,30,28,27,25,24,22,21,20,18,17,16,14,13,12,11,10,9,7,6,5,4,3,2,1}。

实施例#5

基于JVET-1001-v8,文本可更改为:

7.4.6.4具有色度缩放数据语义的亮度映射

变量LmcsPivot[i],i=0…16,变量ScaleCoeff[i]和InvScaleCoeff[i],i=0…15,基于如下公式推导:

divTable[]被指定如下:

divTable[]={0,248,240,233,226,219,212,206,199,193,187,181,175,170,164,159,154,149,144,139,134,130,125,121,116,112,108,104,100,96,93,89,85,82,78,75,72,68,65,62,59,56,53,50,47,45,42,39,37,34,31,29,26,24,22,19,17,15,13,10,8,6,4,2}。

图6是视频处理装置600的框图。装置600可用于实现本文所述的方法中的一个或多个。装置600可以在智能手机、平板、计算机、物联网(IoT)接收器等中实施。装置600可以包括一个或多个处理器602、一个或多个存储器604和视频处理硬件606。(多个)处理器602可以被配置为实现本文档中描述的一种或多种方法(包括但不限于方法400或500)。(多个)存储器604可以用于存储用于实现本文所描述的方法和技术的数据和代码。视频处理硬件606可以用于在硬件电路中实现本文档中描述的一些技术。

在一些实施例中,视频编解码方法可以使用如参考图6所述的、在硬件平台上实现的装置来实现。

根据前述内容,将会理解,为了说明的目的,本文已经描述了当前公开的技术的具体实施例,但是在不脱离本发明的范围的情况下,可以进行各种修改。因此,除了所附权利要求之外,当前公开的技术不受限制。

本专利文件中描述的主题和功能操作的实现方式可以在各种系统、数字电子电路或计算机软件、固件或硬件中实现,包括本说明书中公开的结构和它们的结构等价物,或者它们中的一个或多个的组合。本说明书中描述的主题的实现方式可以被实现为一个或多个计算机程序产品,即编码在有形和非暂时性计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基底、存储器设备、影响机器可读传播信号的物质的组合、或者它们中的一个或多个的组合。术语“数据处理单元”或“数据处理装置”包含用于处理数据的所有装置、设备和机器,例如,包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,装置可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。

计算机程序(也被称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译或解释语言)编写,并且其可以以任何形式(包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元)部署。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的部分(例如,存储在标记语言文档中的一个或多个脚本)中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在一个计算机上或者位于一个站点或分布在多个站点并通过通信网络互连的多个计算机上执行。

本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该一个或多个可编程处理器执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以被实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

例如,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机中的任何一个或多个处理器。一般,处理器将从只读存储器或随机访问存储器或者两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。一般,计算机还将包括或可操作地耦合到一个或多个用于存储数据的大容量存储设备(例如磁盘、磁光盘或光盘),以从其接收数据或向其传送数据,或者两者兼有。然而,计算机不需要这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如,包括半导体存储器设备,例如EPROM、EEPROM和闪存设备。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路。

说明书和附图仅被认为是示例性的,其中示例性意味着示例。如本文所使用的,“或”的使用旨在包括“和/或”,除非上下文另有明确指示。

尽管本专利文件包含多个细节,但这些细节不应被解释为对任何发明或所要求保护的范围的限制,而是作为对特定于特定发明的特定实施例的特征的描述。本专利文件中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独实现或者在任何合适的子组合中实现。此外,尽管特征可以在上文中被描述为在某些组合中起作用,并且甚至最初被如此要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变型。

类似地,尽管在附图中以特定次序描述了操作,但是这不应该被理解为要求以所示的特定次序或顺序执行这些操作,或者要求执行所有示出的操作,以获得期望的结果。此外,本专利文件中描述的实施例中的各种系统组件的分离不应理解为在所有实施例中都需要这种分离。

仅描述了几个实现方式和示例,并且可以基于本专利文件中描述和示出的内容进行其他实现方式、增强和变化。

57页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于屏幕内容编解码的最大可能模式列表构建

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类