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

视频解码设备,由解码设备实现的译码方法和计算机程序产品与流程

2021-11-05 19:45:00 来源:中国专利 TAG:
[0001][0002]本技术(本发明)实施例大体上涉及图像处理领域,更具体地,涉及视频解码设备,一种由解码设备实现的译码方法和计算机程序产品。
背景技术
::[0003]视频译码(视频编码和解码)广泛用于数字视频应用,例如广播数字电视、基于互联网和移动网络的视频传输、视频聊天、视频会议等实时会话应用、dvd和蓝光光盘、视频内容采集和编辑系统以及安全应用的可携式摄像机。[0004]即使视频相对较短,也需要大量的视频数据来描述,当数据要在带宽容量有限的通信网络中进行流式传输或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩然后在现代电信网络中发送。由于内存资源可能有限,当在存储设备中存储视频时,视频的尺寸也可能成为问题。视频压缩设备通常在信源侧使用软件和/或硬件对视频数据进行编码,然后进行发送或存储,从而减少表示数字视频图像所需的数据量。然后,由解码视频数据的视频解压缩设备在目的地侧接收压缩数据。在有限的网络资源以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。技术实现要素:[0005]本技术实施例提供了独立权利要求所述的编码和解码方法和装置。[0006]上述和其它目的通过独立权利要求的主题来实现。其它实现方式在从属权利要求、具体实施方式和附图中呈现。[0007]本发明的第一方面提供了一种由解码设备实现的译码方法,所述方法包括:获取码流;根据所述码流获取当前块的指示符的值;根据所述指示符的所述值和预定义查找表,获取所述当前块的第一参数的值和所述当前块的第二参数的值;根据所述第一参数的所述值和所述第二参数的所述值,获取位于所述当前块中的样本的样本距离的值;根据所述样本的所述样本距离的所述值,获取所述样本的预测值。[0008]根据本发明实施例,用于划分块的参数(例如角度参数、距离参数等)存储在预定义查找表中,因此,这些参数的实际值不需要在码流中传输,而是根据译码在码流中的指示值获取这些参数的值。因此,可以提高译码效率。[0009]如图15所示,公开了一种由解码设备实现的译码方法,所述方法包括:[0010]s1501:获取码流。[0011]码流可以根据无线网络或有线网络获得。码流可以通过同轴电缆、光纤电缆、双绞线、数字用户线(digitalsubscriberline,dsl)或如红外线、无线电、微波、wifi、蓝牙、lte或5g等无线技术从网站、服务器或其它远程源传输。[0012]在一个实施例中,码流是网络抽象层(networkabstractionlayer,nal)单元流或字节流等形式的位序列,形成接入单元(accessunit,au)序列的表示,所述接入单元序列形成一个或多个编码视频序列(codedvideosequence,cvs)。[0013]在一些实施例中,对于解码过程,解码端读取码流并从码流中推导解码图像;对于编码过程,编码端产生码流。[0014]通常,码流包括由语法结构形成的语法元素。语法元素:码流中表示的数据元素。[0015]语法结构:在码流中一起按指定顺序存在的零个或多个语法元素。[0016]在一个特定示例中,码流格式表示网络抽象层(networkabstractionlayer,nal)单元流与字节流之间的关系,网络抽象层单元流与字节流都称为码流。[0017]例如,码流可以具有两种格式:nal单元流格式和字节流格式。nal单元流格式在概念上是更“基本的”类型。nal单元流格式包括称为nal单元的语法结构的序列。该序列是按解码顺序排序的。对nal单元流中的nal单元的解码顺序(和内容)施加了约束。[0018]通过按解码顺序对nal单元进行排序,并在每个nal单元前添加起始码前缀和零个或多个零值字节以形成字节流,可以由nal单元流格式构建字节流格式。通过在该字节流中搜索唯一的起始码前缀模式的位置,可以从字节流格式中提取nal单元流格式。[0019]该句指定通过码流给出的源图像与解码图像之间的关系的实施例。[0020]由码流表示的视频序列是按解码顺序排列的一系列图像。[0021]源图像和解码图像各自包括一个或多个样本阵列:[0022]‑只有亮度(y)(单色)样本的阵列;[0023]‑一个亮度样本阵列和两个色度样本阵列(ycbcr或ycgco);[0024]‑绿蓝红(gbr,也称为rgb)样本阵列;[0025]‑表示其它未指定的单色或三刺激色样本的阵列(例如yzx,也称为xyz)。[0026]与这些阵列相关的变量和术语称为亮度(或l或y)和色度,其中,两个色度阵列称为cb和cr;无论使用的实际颜色表示方法如何。使用的实际颜色表示方法可以用语法指示,所述语法在itu‑th.sei|iso/iec23002‑7中指定的vui参数中表示。[0027]变量subwidthc和subheightc在表2中表示,取决于通过sps_chroma_format_idc和sps_separate_colour_plane_flag表示的色度格式采样结构。[0028]表2‑根据sps_chroma_format_idc和sps_separate_colour_plane_flag推导的subwidthc和subheightc值[0029]sps_chroma_format_idcsps_separate_colour_plane_flag色度格式subwidthcsubheightc00单色11104:2:022204:2:221304:4:411314:4:411[0030]在单色采样中,只有一个样本阵列,名义上是亮度阵列。[0031]在4:2:0采样中,两个色度阵列的高度和宽度都为亮度阵列的一半。[0032]在4:2:2采样中,两个色度阵列的高度都与亮度阵列相同,宽度都为亮度阵列的一半。[0033]在4:4:4采样中,根据sps_separate_colour_plane_flag的值,存在以下情况:[0034]‑如果sps_separate_colour_plane_flag等于0,则两个色度阵列的高度和宽度都与亮度阵列相同;[0035]‑否则(即sps_separate_colour_plane_flag等于1),三个颜色平面分别作为单色采样图像处理。[0036]s1502:根据所述码流获取当前块的指示符的值。[0037]在一个实施例中,指示符的值用于表示几何划分融合模式的划分形状。例如,指示符可以是merge_gpm_partition_idx[x0][y0],其中merge_gpm_partition_idx[x0][y0]表示几何划分融合模式的划分形状。阵列索引x0,y0表示所考虑译码块的左上亮度样本相对于图像的左上亮度样本的位置(x0,y0)。[0038]通常,merge_gpm_partition_idx[x0][y0]的值是从码流解码的。在一个示例中,merge_gpm_partition_idx[][]的取值范围为0到63(包括0和63)。在一个示例中,merge_gpm_partition_idx[][]的解码过程是“旁路”。[0039]当merge_gpm_partition_idx[x0][y0]不存在时,推断它等于0。[0040]s1503:根据所述指示符的所述值和预定义查找表,获取所述当前块的第一参数的值和所述当前块的第二参数的值。[0041]在一种实现方式中,所述第一参数表示用于划分所述当前块的角度。[0042]在一种实现方式中,所述第二参数表示用于划分所述当前块的距离。[0043]在一种实现方式中,所述预定义查找表包括成对的第一参数和第二参数,[0044]其中,当一对中的第一参数表示与0度、45度、90度、135度、180度、225度、270度或315度中的一个角度对应的角度时,所述对中的对应第二参数不表示样本和所述当前块的中心之间的距离为零。[0045]在一种实现方式中,所述预定义查找表包括成对的第一参数和第二参数,[0046]其中,一对中的所述第一参数表示不与0度、45度、90度、135度、180度、225度、270度或315度中的一个角度对应的角度,所述对中的所述对应第二参数表示样本和所述当前块的所述中心之间的距离为零。[0047]在一种实现方式中,所述预定义查找表包括成对的第一参数和第二参数,[0048]其中,一对中的所述第一参数表示与0度、45度、90度、135度、180度、225度、270度或315度中的一个角度对应的角度,所述对中的所述对应第二参数表示样本和所述当前块的所述中心之间的距离为零。[0049]在一种实现方式中,所述第二参数表示几何划分的距离索引,或所述第二参数描述分隔线到所述当前块的所述中心的距离。[0050]在一个实施例中,如下表所表示,根据merge_gpm_partition_idx[xcb][ycb](指示符)的值设置几何划分模式的划分角度变量angleidx(参数1)和距离变量distanceidx(参数2)。可以理解的是,在该实现方式中,这种关系可以根据表1或根据函数来实现。[0051]表1:基于merge_gpm_partition_idx的angleidx和distanceidx的规范[0052][0053][0054]s1504:根据所述第一参数的所述值和所述第二参数的所述值,获取位于所述当前块中的样本的样本距离的值。[0055]在一个实施例中,该步骤包括:[0056]步骤3.1:获取当前块的角度参数(alphan或angleidx)的索引值、当前块的宽度(w)的值、当前块的高度(h)的值。w和h是当前块以样本数为单位的宽度和高度。例如,宽度和高度均等于8的译码块是包括64个样本的正方形块。在另一示例中,w和h是当前块以亮度样本数为单位的宽度和高度。角度参数的索引值可以根据上文描述参考表1获取。[0057]步骤3.2:根据w的值和h的值获取比值whratio的值,whratio的值表示当前译码块的宽度与高度之间的比值。[0058]在一个示例中,whratio=h/w;或whratio=w/h。[0059]在另一示例中,两个变量ncbw和ncbh表示当前译码块的宽度和高度,变量cidx表示颜色分量索引。[0060]变量nw、nh和whratio如下推导:[0061]nw=(cidx==0)?ncbw:ncbw*subwidthc;[0062]nh=(cidx==0)?ncbh:ncbh*subheightc;[0063]whratio=nh/nw。[0064]在一个示例中,变量subwidthc和subheightc在表2中表示。[0065]步骤3.3:根据查找表、alpha的值和whratio的值获取shifthor值,在一个示例中,alpha(alphan或angleidx)的值和whratio的值用作查找表的索引值。shifthor值也可以根据函数获取,其中,alpha(alphan或angleidx)的值和whratio的值是函数的输入,shifthor值是函数的输出。在一个示例中,函数的结果与查找表相似或相同。在一个示例中,shifthor值表示样本距离计算过程的量化步长。[0066]在另一示例中,该函数可以表示为shifthor=(angleidx%16==8||(angleidx%16!=0&&whratio>0))?0:1。[0067]步骤3.4:根据shifthor值计算sample_dist的值。[0068]在一个示例中,为了计算样本距离(sample_dist),首先,如下推导变量offsetx和offsety:[0069]如果shifthor等于0,则:[0070]offsetx=(–nw)>>1,[0071]offsety=((–nh)>>1) [0072](angleidx<16?(distanceidx*nh)>>3:–((distanceidx*nh)>>3));[0073]否则(shifthor等于1):[0074]offsetx=((–nw)>>1) [0075](angleidx<16?(distanceidx*nw)>>3:–((distanceidx*nw)>>3));[0076]offsety=(–nh)>>1;[0077]‑变量xl和yl如下推导:[0078]xl=(cidx==0)?x:x*subwidthc[0079]yl=(cidx==0)?y:y*subheightc[0080]sample_dist=(((xl offsetx)<<1) 1)*dislut[displacementx] (((yl offsety)<<1) 1))*dislut[displacementy]。[0081]变量displacementx和displacementy如下推导:[0082]hwratio=cbheight/cbwidth;[0083]displacementx=angleidx;[0084]displacementy=(angleidx 8)%32。[0085]阵列dislut在下表3中表示。[0086]在一些实施例中,根据几何模型,译码块中的样本被认为位于两个子块中。子块a或子块b可以包括当前译码块中的一部分(但不是全部)样本。子块a或子块b可以根据每个样本的sample_dist的符号表示。sample_dist可以根据其它段落中的示例和实施例获取。[0087]s1505:根据所述样本的所述样本距离的所述值,获取所述样本的预测值。[0088]在一种实现方式中,所述根据所述样本的所述样本距离的所述值,获取所述样本的预测值包括:[0089]根据所述样本距离值计算两个加权因子;[0090]根据第一预测值、第二预测值和所述两个加权因子,获取所述样本的所述预测值。[0091]在一种实现方式中,所述样本距离的所述值表示所述样本到分隔线的水平距离或垂直距离,或所述垂直距离和水平距离的组合,其中,所述分隔线用于将译码块划分为两个子块。[0092]在一个示例中,计算的sample_dist用于计算加权因子,所述加权因子用于对应于所述样本的第一预测值和第二预测值的组合。在一个示例中,加权因子表示为sampleweight1和sampleweight2,表示与第一预测值对应的权重和与第二预测值对应的权重。[0093]在一个示例中,加权因子根据以下函数计算,[0094]weightidxl=partflip?32 sample_dist:32–sample_dist;[0095]wvalue=clip3(0,8,(weightidxl 4)>>3)。[0096]在该示例中,wvalue为sampleweight1,8–wvalue为sampleweight2。变量partflip根据angleidx的值确定。在一个示例中,partflip=(angleidx>=13&&angleidx<=27)?0:1,或partflip=(angleidx>=13&&angleidx<=27)?1:0。[0097]在一个示例中,根据坐标(x,y)处的第一预测值、坐标(x,y)处的第二预测值、sampleweight1和sampleweight2计算在样本坐标(x,y)处的预测样本的组合值。[0098]在一个示例中,预测样本值如下推导:[0099]pbsamples[x][y]=clip3(0,(1<<bitdepth)–1,(predsamplesla[x][y]*wvalue predsampleslb[x][y]*(8–wvalue) offset1)>>shift1)。[0100]其中,bitdepth表示样本位深度,变量shift1根据bitdepth获取,在一个示例中,shift1=max(5,17–bitdepth);变量offset1根据shift1获取,在一个示例中,offset1=1<<(shift1ꢀ–1),predsamplesla和predsampleslb是两个(ncbw)×(ncbh)阵列。[0101]在一个实施例中,公开了一种由编码设备实现的译码方法,所述方法包括:选择第一参数的值和第二参数的值;[0102]根据所述第一参数的所述值、所述第二参数的所述值和查找表获取索引值;将所述索引值编码到码流中。[0103]编码端每个步骤的细节与解码端的上述示例相对应。[0104]如图16所示,本发明的第二方面提供一种解码设备1600,所述解码设备包括:[0105]接收模块1601,用于获取码流,并根据所述码流获取当前块的指示符的值;[0106]划分参数处理模块1602,用于根据所述指示符的所述值和预定义查找表,获取所述当前块的第一参数的值和所述当前块的第二参数的值;[0107]计算模块1603,用于根据所述第一参数的所述值和所述第二参数的所述值,获取位于所述当前块中的样本的样本距离的值;[0108]预测模块1604,用于根据所述样本的所述样本距离的所述值,获取所述样本的预测值。[0109]本发明第一方面提供的方法可由本发明第二方面提供的装置执行。上述方法的其它特征和实现方式对应于本发明第二方面提供的装置的特征和实现方式。[0110]在一个实施例中,公开了一种解码器(30)或编码器(20),包括用于执行上述任一个(种)实施例和实现方式提供的方法的处理电路。[0111]在一个实施例中,公开了一种计算机程序产品,包括用于执行上述任一个(种)实施例和实现方式提供的方法的程序代码。[0112]在一个实施例中,公开了一种解码器或编码器,包括:[0113]一个或多个处理器;[0114]非瞬时性计算机可读存储介质,与所述一个或多个处理器耦合并存储由所述一个或多个处理器执行的程序,其中,当所述程序由所述处理器执行时,使所述解码器或所述编码器执行上述任一个(种)实施例和实现方式提供的方法。[0115]在一个实施例中,公开了一种非瞬时性存储介质,包括由图像解码设备解码的经编码的码流,其中,所述码流通过将视频信号或图像信号的帧划分为多个块生成,所述码流包括多个语法元素,其中,所述多个语法元素包括上述任一个(种)实施例和实现方式提供的指示符(语法)。[0116]附图和以下描述对一个或多个实施例的细节进行了阐述。其它特征、目的和优点在说明书、附图以及权利要求中呈现。附图说明[0117]下文结合附图对本发明实施例进行详细描述。在附图中:[0118]图1a为用于实现本发明实施例的视频译码系统示例的框图;[0119]图1b为用于实现本发明实施例的视频译码系统的另一示例的框图;[0120]图2为用于实现本发明实施例的视频编码器示例的框图;[0121]图3为用于实现本发明实施例的视频解码器的示例结构的框图;[0122]图4为编码装置或解码装置的一个示例的框图;[0123]图5为编码装置或解码装置的另一示例的框图;[0124]图6a示出了同位块的示例;[0125]图6b示出了空域邻块的示例;[0126]图7示出了三角预测模式的一些示例;[0127]图8示出了子块预测模式的一些示例;[0128]图9‑图12示出了关于块划分的一些示例;[0129]图13为用于实现内容分发业务的内容供应系统3100的示例结构的框图;[0130]图14为终端设备示例结构的框图;[0131]图15为参考本发明的方法实施例的流程图;[0132]图16为参考本发明的装置实施例的框图。[0133]在下文中,除非另外明确说明,否则相同的附图标记是指相同或至少功能上等效的特征。具体实施方式[0134]以下描述中,参考附图,所述附图组成本发明一部分并以说明的方式示出本发明实施例的具体方面或可使用本发明实施例的具体方面。应理解,本发明实施例可以在其它方面中使用,并且可以包括附图中未描绘的结构或逻辑变化。因此,以下详细描述不应以限制性的意义来理解,本发明的范围由所附权利要求书界定。[0135]例如,应理解,结合所描述方法的公开内容对用于执行所述方法的对应设备或系统也可以同样适用,反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括一个或多个单元(例如,功能单元)来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元分别执行多个步骤中的一个或多个),即使附图中未明确描述或说明该一个或多个单元。另一方面,例如,如果根据一个或多个单元(例如,功能单元)来描述具体装置,则对应的方法可以包括一个步骤来执行一个或多个单元的功能(例如,一个步骤执行一个或多个单元的功能,或多个步骤各自执行多个单元中的一个或多个单元的功能),即使该一个或多个步骤在附图中未明确描述或示出。此外,应理解,除非另有说明,否则本文中描述的各种示例性实施例和/或方面的特征可相互组合。[0136]视频译码通常指对构成视频或视频序列的图像序列进行处理。在视频译码领域中,术语“帧(frame)”与“图像(picture/image)”可以用作同义词。视频译码(或通常称为译码)包括视频编码和视频解码两部分。视频编码在信源侧执行,通常包括处理(例如,压缩)原始视频图像以减少表示视频图像所需的数据量(从而更高效存储和/或发送)。视频解码在目的地侧执行,通常包括相对于编码器作逆处理,以重建视频图像。实施例涉及的视频图像(或通常称为图像)的“译码”应理解为涉及视频图像或相应视频序列的“编码”或“解码”。编码部分和解码部分的组合也称为编解码(编码和解码,codec)。[0137]在无损视频译码情况下,可以重建原始视频图像,即重建的视频图像与原始视频图像具有相同的质量(假设存储或传输期间没有传输损耗或其它数据丢失)。在有损视频译码情况下,通过量化等进行进一步压缩来减少表示视频图像的数据量,而解码器侧无法完全重建视频图像,即重建的视频图像的质量比原始视频图像的质量更低或更差。[0138]几个视频译码标准属于“有损混合视频编解码器”组(即,将样本域中的空域预测和时域预测与变换域中用于应用量化的2d变换译码结合)。视频序列中的每个图像通常划分成不重叠的块集合,通常基于块级进行译码。换句话说,编码器通常在块(视频块)级对视频进行处理,即编码,例如,通过空域(帧内)预测和/或时域(帧间)预测来生成预测块;从当前块(当前处理/待处理的块)中减去预测块,获得残差块;在变换域中变换残差块并量化残差块,以减少待发送(压缩)的数据量,而解码器将相对于编码器的逆处理应用于经编码或压缩的块,以重建当前块进行表示。此外,编码器重复解码器的处理步骤,使得编码器和解码器生成相同的预测(例如,帧内预测和帧间预测)和/或重建,用于对后续块进行处理(即译码)。[0139]在以下实施例中,根据图1至图3描述了视频译码系统10、视频编码器20和视频解码器30。[0140]图1a为示意性框图,示出了示例性译码系统10,例如可以利用本技术技术的视频译码系统10(或简称为译码系统10)。视频译码系统10的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)代表可用于根据本技术中描述的各种示例执行各技术的设备的示例。[0141]如图1a所示,译码系统10包括源设备12,例如,所述源设备12用于将经编码的图像数据21提供到目的地设备14以对经编码的图像数据13进行解码。[0142]源设备12包括编码器20,并且可以另外(即可选地)包括图像源16、预处理器(或预处理单元)18(例如图像预处理器18)和通信接口或通信单元22。[0143]图像源16可以包括或可以是任何类型的图像捕获设备,例如用于捕获真实世界图像的摄像机,和/或任何类型的图像生成设备,例如用于生成计算机动画图像的计算机图形处理器,或用于获取和/或提供真实世界图像、计算机生成图像(例如,屏幕内容、虚拟现实(virtualreality,vr)图像)和/或其任何组合(例如,增强现实(augmentedreality,ar)图像)的任何类型的其它设备。所述图像源可以为存储任一上述图像的任何类型的存储器(memory/storage)。[0144]区别于预处理器18和预处理单元18执行的处理,图像或图像数据17也可以称为原始图像或原始图像数据17。[0145]预处理器18用于接收(原始)图像数据17,对图像数据17进行预处理,以获得经预处理的图像19或经预处理的图像数据19。例如,预处理器18执行的预处理可包括修剪(trimming)、颜色格式转换(例如从rgb转换为ycbcr)、调色或去噪。可以理解的是,预处理单元18可以为可选组件。[0146]视频编码器20用于接收经预处理的图像数据19并提供经编码的图像数据21(例如,下文根据图2进一步详细描述)。[0147]源设备12的通信接口22可以用于接收经编码的图像数据21,并通过通信信道13将经编码的图像数据21(或其任何其它经处理版本)发送到另一设备(例如目的地设备14)或任何其它设备,以便进行存储或直接重建。[0148]目的地设备14包括解码器30(例如,视频解码器30),并且可以另外(即,可选地)包括通信接口或通信单元28、后处理器32(或后处理单元32)和显示设备34。[0149]目的地设备14的通信接口28用于接收经编码的图像数据21(或其任何其它经处理版本),例如,直接从源设备12或任何其它源(例如,编码图像数据存储设备等存储设备)接收,并将经编码的图像数据21提供给解码器30。[0150]通信接口22和通信接口28可以用于通过源设备12与目的地设备14之间的直接通信链路(例如,直接有线或无线连接),或通过任何类型的网络(例如,有线或无线网络或其任意组合,或任何类型的专用和公共网络),或其任意组合发送或接收经编码的图像数据21或编码数据13。[0151]例如,通信接口22可用于将经编码的图像数据21封装为数据包等合适的格式,和/或采用任何类型的传输编码或处理来处理所述经编码的图像数据,以便通过通信链路或通信网络进行发送。[0152]例如,与通信接口22对应的通信接口28可以用于接收传输数据,并通过任何类型的对应传输解码或处理和/或解封装方式来处理传输数据,得到经编码的图像数据21。[0153]通信接口22和通信接口28均可配置为单向通信接口(如图1a中从源设备12指向目的地设备14的通信信道13的箭头所表示),或双向通信接口,并可用于发送和接收消息等,例如,建立连接,确认和交互与通信链路和/或数据传输(例如,经编码的图像数据传输)相关的任何其它信息。[0154]解码器30用于接收经编码的图像数据21并提供经解码的图像数据31或解码图像31(例如,下文根据图3或图5进一步详细描述)。[0155]目的地设备14的后处理器32用于对经解码的图像数据31(也称为重建图像数据)(例如,解码图像31)进行后处理,以获得经后处理的图像数据33(例如,后处理图像33)。例如,由后处理单元32执行的后处理可以包括颜色格式转换(例如从ycbcr转换为rgb)、颜色校正、修剪或重采样,或任何其它处理,例如,用于准备经解码的图像数据31以供显示设备34等显示。[0156]目的地设备14的显示设备34用于接收经后处理的图像数据33,以向用户或观看者等显示图像。显示设备34可以是或包括用于显示重建图像的任何类型的显示器,例如,集成或外部的显示器或监视器。例如,显示器可以包括液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclightemittingdiode,oled)显示器、等离子显示器、投影仪、微型led显示器、硅基液晶显示器(liquidcrystalonsilicon,lcos)、数字光处理器(digitallightprocessor,dlp)或任何类型的其它显示器。[0157]尽管图1a示出了源设备12和目的地设备14作为单独的设备,但是在实施例中,设备还可以同时包括源设备12和目的地设备14或同时包括源设备12和目的地设备14的功能,即源设备12或对应功能以及目的地设备14或对应功能。在这类实施例中,源设备12或对应功能以及目的地设备14或对应功能可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。[0158]根据描述,图1a所示的源设备12和/或目的地设备14中的不同单元或功能的存在和(准确)划分可能根据实际设备和应用而有所不同,这对技术人员来说是显而易见的。[0159]编码器20(例如视频编码器20)或解码器30(例如视频解码器30),或编码器20和解码器30两者都可通过如图1b所示的处理电路实现,如一个或多个微处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(application‑specificintegratedcircuit,asic)、现场可编程门阵列(field‑programmablegatearray,fpga)、离散逻辑、硬件、视频编码专用处理器或其任意组合。编码器20可以由处理电路46实现,以体现结合图2的编码器20所述的各种模块和/或本文描述的任何其它编码器系统或子系统。解码器30可以由处理电路46实现,以体现结合图3的解码器30所述的各种模块和/或本文描述的任何其它解码器系统或子系统。所述处理电路可用于执行下文描述的各种操作。如图5所示,如果所述技术部分地以软件形式实现,则设备可以将软件的指令存储在合适的非瞬时性计算机可读介质中,并且可以使用一个或多个处理器执行硬件中的指令,以执行本发明的技术。视频编码器20和视频解码器30中的任一个可作为组合编解码器(encoder/decoder,codec)的一部分集成在单个设备中,如图1b所示。[0160]源设备12和目的地设备14可以包括多种设备中的任一种,包括任何类型的手持或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板电脑(tablet/tabletcomputer)、摄像机、台式计算机、机顶盒、电视、显示设备、数字媒体播放器、视频游戏机、视频流设备(如内容服务服务器或内容分发服务器)、广播接收器设备、广播发射器设备等,并且可以不使用或使用任何类型的操作系统。在某些情况下,可以配备源设备12和目的地设备14以用于无线通信。因此,源设备12和目的地设备14可以是无线通信设备。[0161]在某些情况下,图1a所示的视频译码系统10仅仅是示例,本技术的技术可适用于在编码设备与解码设备之间不一定包括任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它示例中,从本地存储器中检索数据,通过网络发送数据,等等。视频编码设备可以对数据进行编码并将数据存储到存储器中,和/或视频解码设备可以从存储器检索数据并对数据进行解码。在一些示例中,编码和解码由相互不通信而只是将数据编码到存储器和/或从存储器中检索数据并对数据进行解码的设备来执行。[0162]为便于描述,本文参考由itu‑t视频译码专家组(videocodingexpertsgroup,vceg)和iso/iec运动图像专家组(motionpictureexpertsgroup,mpeg)的视频译码联合工作组(jointcollaborationteamonvideocoding,jct‑vc)开发的高效视频译码(high‑efficiencyvideocoding,hevc)或通用视频译码(versatilevideocoding,vvc)(下一代视频译码标准)参考软件等描述本发明实施例。本领域普通技术人员理解本发明实施例不限于hevc或vvc。[0163]编码器和编码方法[0164]图2为用于实现本技术技术的示例性视频编码器20的示意性框图。在图2的示例中,视频编码器20包括输入端201(或输入接口201)、残差计算单元204、变换处理单元206、量化单元208、反量化单元210和逆变换处理单元212、重建单元214、环路滤波单元220、解码图像缓冲区(decodedpicturebuffer,dpb)230、模式选择单元260、熵编码单元270和输出端272(或输出接口272)。模式选择单元260可以包括帧间预测单元244、帧内预测单元254和划分单元262。帧间预测单元244可以包括运动估计单元和运动补偿单元(未示出)。图2所示的视频编码器20也可以称为混合视频编码器或基于混合视频编解码器的视频编码器。[0165]残差计算单元204、变换处理单元206、量化单元208和模式选择单元260可以组成编码器20的正向信号路径,而反量化单元210、逆变换处理单元212、重建单元214、缓冲区216、环路滤波器220、解码图像缓冲区(decodedpicturebuffer,dpb)230、帧间预测单元244和帧内预测单元254可以组成视频编码器20的反向信号路径。视频编码器20的反向信号路径与解码器(参见图3中的视频解码器30)的信号路径对应。反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decodedpicturebuffer,dpb)230、帧间预测单元244和帧内预测单元254还组成视频编码器20的“内置解码器”。[0166]图像和图像划分(图像和块)[0167]编码器20可用于通过输入端201等接收图像17(或图像数据17),例如,形成视频或视频序列的图像序列中的图像。接收的图像或图像数据也可以是经预处理的图像19(或经预处理的图像数据19)。为简单起见,以下描述使用图像17。图像17也可以称为当前图像或待编码图像(特别是在视频译码中,以便将当前图像与其它图像(例如,同一视频序列(即,也包括当前图像的视频序列)的先前编码和/或解码的图像)区分开)。[0168](数字)图像为或可以视为具有强度值的样本的二维阵列或矩阵。阵列中的样本也可以称为像素(pixel或pel)(图像元素的简称)。图像的尺寸和/或分辨率由阵列或图像在水平和垂直方向(或轴)上的样本数量定义。通常采用三种颜色分量来表示颜色,即该图像可表示为三个样本阵列或包括三个样本阵列。在rgb格式或颜色空域中,图像包括对应的红色、绿色和蓝色样本阵列。然而,在视频译码中,每个像素通常由亮度和色度格式或在颜色空域中表示,例如,ycbcr,包括y表示的亮度分量(有时也用l表示)和cb和cr表示的两个色度分量。亮度(luminance,简称luma)分量y表示亮度或灰度级强度(例如,在像灰度图像中),而两个色度(chrominance,简称chroma)分量cb和cr表示色度或颜色信息分量。因此,ycbcr格式的图像包括亮度样本值(y)的亮度样本阵列和色度值(cb和cr)的两个色度样本阵列。rgb格式的图像可以转换或变换为ycbcr格式,反之亦然,该过程也称为颜色变换或转换。如果图像是单色的,则该图像可以仅包括亮度样本阵列。相应地,例如,图像可以为单色格式的亮度样本阵列或4:2:0、4:2:2和4:4:4彩色格式的亮度样本阵列和两个对应的色度样本阵列。[0169]视频编码器20的实施例可以包括图像划分单元(图2中未示出),用于将图像17划分成多个(通常不重叠)图像块203。这些块也可以称为根块、宏块(h.264/avc)或译码树块(codingtreeblock,ctb),或译码树单元(codingtreeunit,ctu)(h.265/hevc和vvc)。图像划分单元可用于对视频序列的所有图像使用相同的块尺寸和定义块尺寸的对应网格,或者用于改变图像或图像子集或组之间的块尺寸,并将每个图像划分成对应块。[0170]在其它实施例中,视频编码器可以用于直接接收图像17的块203,例如组成图像17的一个、几个或所有块。图像块203也可以称为当前图像块或待编码图像块。[0171]与图像17类似,图像块203同样是或可以看作是具有强度值(样本值)的样本的二维阵列或矩阵,但是,图像块203的尺寸比图像17小。换句话说,例如,根据所应用的颜色格式,块203可以包括一个样本阵列(例如,图像17是单色情况下的亮度阵列,或图像17是彩色情况下的亮度或色度阵列)或三个样本阵列(例如,图像17是彩色情况下的一个亮度阵列和两个色度阵列)或任何其它数量和/或类型的阵列。块203的水平方向和垂直方向(或轴线)上的样本数量决定了块203的尺寸。因此,块可以为m×n(m列×n行)个样本阵列,或m×n个变换系数阵列等。[0172]图2所示的视频编码器20的实施例可以用于逐块对图像17进行编码,例如,按块203进行编码和预测。[0173]残差计算[0174]残差计算单元204可用于通过如下等方式根据图像块203和预测块265(下文详细描述预测块265)来计算残差块205(也称为残差205):逐个样本(逐个像素)从图像块203的样本值中减去预测块265的样本值,以获得样本域中的残差块205。[0175]变换[0176]变换处理单元206可以用于对残差块205的样本值进行离散余弦变换(discretecosinetransform,dct)或离散正弦变换(discretesinetransform,dst)等变换,得到变换域中的变换系数207。变换系数207也可称为变换残差系数,表示变换域中的残差块205。[0177]变换处理单元206可用于应用dct/dst的整数化近似,例如为h.265/hevc指定的变换。与正交dct变换相比,这种整数化近似通常通过某一因子进行缩放(scale)。为了保持经过正变换和逆变换处理的残差块的范数,在变换过程中应用了其它缩放因子。缩放因子通常是根据某些约束条件来选择的,例如缩放因子是用于移位运算的2的幂、变换系数的位深度、准确性与实现成本之间的权衡等。例如,通过逆变换处理单元212等为逆变换(以及在视频解码器30侧通过逆变换处理单元312等为对应的逆变换)指定具体的缩放因子;相应地,可以在编码器20侧,通过变换处理单元206等为正变换指定对应的缩放因子。[0178]视频编码器20(具体是变换处理单元206)的实施例可以用于直接或通过熵编码单元270编码或压缩等输出变换参数(例如,一种或多种变换的类型),使得例如视频解码器30可以接收并使用变换参数进行解码。[0179]量化[0180]量化单元208可以用于通过应用标量量化或矢量量化等对变换系数207进行量化,以获得量化系数209。量化系数209也可以称为量化变换系数209或量化残差系数209。[0181]量化过程可以减小与部分或全部变换系数207相关的位深度。例如,可以在量化期间将n位变换系数向下舍入到m位变换系数,其中n大于m。可以通过调整量化参数(quantizationparameter,qp)修改量化程度。例如,对于标量量化,可以进行不同程度的缩放来实现较细或较粗的量化。较小量化步长对应较细量化,而较大量化步长对应较粗量化。可通过量化参数(quantizationparameter,qp)表示合适的量化步长。例如,量化参数可以为合适的量化步长的预定义集合的索引。例如,较小的量化参数可对应精细量化(较小量化步长),较大的量化参数可对应粗糙量化(较大量化步长),反之亦然。量化可以包括除以量化步长,而反量化单元210等执行的对应和/或反解量化可以包括乘以量化步长。根据hevc等一些标准的实施例可以使用量化参数来确定量化步长。通常,可以根据量化参数使用包括除法的等式的定点近似来计算量化步长。可以引入其它缩放因子来进行量化和解量化,以恢复可能由于在用于量化步长和量化参数的等式的定点近似中使用的缩放而修改的残差块的范数。在一种示例性实现方式中,可以合并逆变换和解量化的缩放。或者,可以使用自定义的量化表并由编码器通过码流等方式向解码器指示(signal)。量化是有损操作,其中量化步长越大,损耗越大。[0182]视频编码器20(具体是量化单元208)的实施例可以用于直接或通过熵编码单元270编码等输出量化参数(quantizationparameter,qp),使得例如视频解码器30可以接收并使用量化参数进行解码。[0183]反量化[0184]反量化单元210用于通过根据或使用与量化单元208相同的量化步长,应用量化单元208所应用的量化方案的逆过程等方式,对量化系数应用量化单元208的反量化,以获得解量化系数211。解量化系数211也可以称为解量化残差系数211,对应于变换系数207,但是由于量化造成的损耗,解量化系数211通常与变换系数207不同。[0185]逆变换[0186]逆变换处理单元212用于进行变换处理单元206进行的变换的逆变换,例如,逆离散余弦变换(discretecosinetransform,dct)或逆离散正弦变换(discretesinetransform,dst)或其它逆变换,以获得样本域中的重建残差块213(或对应的解量化系数213)。重建残差块213也可以称为变换块213。[0187]重建[0188]重建单元214(例如,加法器或求和器214)用于例如通过将重建残差块213的样本值和预测块265的样本值逐个样本相加,将变换块213(即重建残差块213)添加到预测块265,以获得样本域中的重建块215。[0189]滤波[0190]环路滤波单元220(或简称“环路滤波器”220)用于对重建块215进行滤波以获得滤波块221,或通常用于对重建样本进行滤波以获得滤波后样本。例如,环路滤波单元用于平滑像素转变或提高视频质量。环路滤波单元220可以包括一个或多个环路滤波器,例如去块效应滤波器、样本自适应偏移(sample‑adaptiveoffset,sao)滤波器或者一个或多个其它滤波器,例如双边滤波器、自适应环路滤波器(adaptiveloopfilter,alf)、锐化滤波器、平滑滤波器或协同滤波器,或其任意组合。虽然环路滤波单元220在图2中示出为环内滤波器,但是在其它配置中,环路滤波单元220可以实现为后环路滤波器。滤波块221也可以称为滤波重建块221。[0191]视频编码器20(具体是环路滤波单元220)的实施例可用于直接或通过熵编码单元270编码等输出环路滤波器参数(如样本自适应偏移信息),使得例如解码器30可以接收和使用相同的环路滤波器参数或相应的环路滤波器进行解码。[0192]解码图像缓冲区[0193]解码图像缓冲区(decodedpicturebuffer,dpb)230可以是存储参考图像或通常存储参考图像数据以供视频编码器20对视频数据进行编码的存储器。dpb230可以由多种存储设备中的任一种组成,如动态随机存取存储器(dynamicrandomaccessmemory,dram),包括同步dram(synchronousdram,sdram)、磁阻ram(magnetoresistiveram,mram)、电阻ram(resistiveram,rram)或其它类型的存储设备。解码图像缓冲区(decodedpicturebuffer,dpb)230可用于存储一个或多个滤波块221。解码图像缓冲区230还可用于存储同一当前图像或不同图像(例如,先前重建的图像)的其它先前滤波块(例如,先前重建和滤波块221),并且可提供完整的先前重建(即解码)的图像(和对应的参考块和样本)和/或部分重建的当前图像(和对应的参考块和样本),以进行帧间预测等。例如,在重建块215未被环路滤波单元220进行滤波时,解码图像缓冲区(decodedpicturebuffer,dpb)230还可用于存储一个或多个未经滤波的重建块215,或通常存储未经滤波的重建样本,或重建块或重建样本的任何其它未经进一步处理的版本。[0194]模式选择(划分和预测)[0195]模式选择单元260包括划分单元262、帧间预测单元244和帧内预测单元254,用于从解码图像缓冲区230或其它缓冲区(例如,行缓冲区,未示出)等接收或获得原始图像数据(例如,原始块203(当前图像17的当前块203))和重建图像数据(例如,相同(当前)图像和/或一个或多个先前解码图像的滤波和/或未经滤波的重建样本或重建块)。重建图像数据用作参考图像数据进行帧间预测或帧内预测等预测,以获得预测块265或预测值265。[0196]模式选择单元260可用于为当前块预测模式(不包括划分)和预测模式(例如帧内或帧间预测模式)确定或选择划分类型,并生成对应的预测块265,以对残差块205进行计算和对重建块215进行重建。[0197]模式选择单元260的实施例可用于选择划分和预测模式(例如,从模式选择单元260支持或可用于模式选择单元260的预测模式中选择),所述预测模式提供最佳匹配或者说最小残差(最小残差意味着传输或存储中更好的压缩),或提供最小指示开销(最小指示开销意味着传输或存储中更好的压缩),或者同时考虑或平衡以上两者。模式选择单元260可以用于根据率失真优化(ratedistortionoptimization,rdo)确定划分和预测模式,即选择提供最小率失真的预测模式。本上下文中如“最佳”、“最小”、“最优”等术语不一定指总体上“最佳”、“最小”、“最优”等,也可以指满足终止或选择标准,例如,值超过或低于阈值或其它约束条件,可能会进行“次优选择”,但是降低了复杂度和处理时域。[0198]换句话说,划分单元262可以用于将块203划分成更小的划分块或子块(再次形成块),例如,使用四叉树(quad‑tree,qt)划分、二叉树(binary‑tree,bt)划分或三叉树(triple‑tree,tt)划分或其任何组合迭代地进行,并例如,对每个划分块或子块进行预测,其中,所述模式选择包括选择划分块203的树形结构并将预测模式应用于每个划分块或子块。[0199]下文详细描述由示例性视频编码器20执行的划分(例如,由划分单元260执行)和预测处理(例如,由帧间预测单元244和帧内预测单元254执行)。[0200]划分[0201]划分单元262可以将当前块203划分(或划分)成更小的划分块,例如正方形或矩形尺寸的较小块。可以将这些较小块(也可以称为子块)进一步划分为甚至更小的划分块。这也称为树划分或层次树划分,其中,可以递归地划分例如根树层次0(层次级别0,深度0)的根块,例如划分为两个或两个以上下一较低树层次的块,例如树层次1(层次级别1,深度1)的节点。可以再次将这些块划分为两个或两个以上下一较低层次,例如树层次2(层次级别2、深度2)的块等,直到例如因为满足结束标准(例如达到最大树深度或最小块尺寸),划分结束。未进一步划分的块也称为树的叶块或叶节点。划分成两个划分块的树称为二叉树(binary‑tree,bt),划分成三个划分块的树称为三叉树(ternary‑tree,tt),划分成四个划分块的树称为四叉树(quad‑tree,qt)。[0202]如上所述,本文使用的术语“块”可以是图像的一部分,特别是正方形或矩形部分。例如,结合hevc和vvc,块可以是或对应于译码树单元(codingtreeunit,ctu)、译码单元(codingunit,cu)、预测单元(predictionunit,pu)和变换单元(transformunit,tu),和/或对应于对应块,例如,译码树块(codingtreeblock,ctb)、译码块(codingblock,cb)、变换块(transformblock,tb)或预测块(predictionblock,pb)。[0203]例如,译码树单元(codingtreeunit,ctu)可以为或包括具有三个样本阵列的图像的亮度样本的一个ctb和色度样本的两个对应ctb,或单色图像或使用用于对样本进行译码的三个独立颜色平面和语法结构译码的图像的样本的一个ctb。相应地,译码树块(codingtreeblock,ctb)可以为n×n样本块,其中,n可以设为某个值从而将分量划分为多个ctb,这就是划分。译码单元(codingunit,cu)可以为或包括具有三个样本阵列的图像的亮度样本的一个译码块、色度样本的两个对应译码块,或单色图像或使用用于对样本进行译码的三个独立颜色平面和语法结构译码的图像的样本的一个译码块。相应地,译码块(codingblock,cb)可以为m×n样本块,其中,m和n可以设为某个值从而将ctb划分为多个译码块,这就是划分。[0204]在实施例中,例如根据hevc,可以通过表示为译码树的四叉树结构将译码树单元(codingtreeunit,ctu)划分为多个cu。在cu级决定是否使用帧间(时域)预测或帧内(空域)预测对图像区域进行译码。可以根据pu划分类型将每个cu进一步划分为一个、两个或四个pu。一个pu内应用相同的预测过程,并在pu的基础上向解码器发送相关信息。在根据pu划分类型应用预测过程获得残差块之后,可以根据与用于cu的译码树类似的另一种四叉树结构将cu划分为变换单元(transformunit,tu)。[0205]在实施例中,例如根据当前开发的称为通用视频译码(versatilevideocoding,vvc)的最新视频译码标准,使用四叉树和二叉树(quad‑treeandbinarytree,qtbt)划分来划分译码块。在qtbt块结构中,cu可以为正方形或矩形。例如,首先通过四叉树结构划分译码树单元(codingtreeunit,ctu)。通过二叉树或三叉树(ternary或triple)结构进一步划分四叉树叶节点。划分树叶节点称为译码单元(codingunit,cu),该划分用于预测和变换处理,而不进行任何进一步划分。这意味着在qtbt译码块结构中,cu、pu和tu的块尺寸相同。同时,还提出将三叉树划分等多重划分与qtbt块结构结合使用。[0206]在一个示例中,视频编码器20的模式选择单元260可以用于执行本文描述的划分技术的任意组合。[0207]如上所述,视频编码器20用于从(预定的)预测模式集合中确定或选择最佳或最优的预测模式。预测模式集合可以包括帧内预测模式和/或帧间预测模式等。[0208]帧内预测[0209]帧内预测模式集合可以包括35种不同的帧内预测模式,例如像dc(或均值)模式和平面模式的非方向性模式或者如hevc中定义的方向性模式,或者可以包括67种不同的帧内预测模式,例如像dc(或均值)模式和平面模式的非方向性模式或者如vvc中定义的方向性模式。[0210]帧内预测单元254用于根据帧内预测模式集合中的帧内预测模式,使用同一当前图像的邻块的重建样本来生成帧内预测块265。[0211]帧内预测单元254(或通常为模式选择单元260)还用于将帧内预测参数(或通常为指示块的所选帧内预测模式的信息)以语法元素266的形式输出到熵编码单元270,以包括到经编码的图像数据21中,使得例如视频解码器30可以接收并使用用于解码的预测参数。[0212]帧间预测[0213](可能的)帧间预测模式的集合取决于可用参考图像(即,例如存储在dpb230中的先前至少部分解码的图像)和其它帧间预测参数,例如取决于是否使用整个参考图像或只使用参考图像的一部分(例如当前块的区域附近的搜索窗口区域)来搜索最佳匹配参考块,和/或例如取决于是否应用像素插值(例如二分之一/半像素和/或四分之一像素插值)。[0214]除上述预测模式外,还可以使用跳过模式和/或直接模式。[0215]帧间预测单元244可以包括运动估计(motionestimation,me)单元和运动补偿(motioncompensation,mc)单元(两者在图2中未示出)。运动估计单元可用于接收或获取图像块203(当前图像17的当前图像块203)和解码图像231,或至少一个或多个先前重建块,例如,一个或多个其它/不同先前解码图像231的重建块,以进行运动估计。例如,视频序列可以包括当前图像和先前解码图像231,或换句话说,当前图像和先前解码图像231可以为图像序列的一部分或组成图像序列,这些图像组成视频序列。[0216]例如,编码器20可用于从多个其它图像中的相同或不同图像的多个参考块中选择参考块,并将参考图像(或参考图像索引)和/或参考块的位置(x坐标,y坐标)与当前块的位置之间的偏移(空域偏移)作为帧间预测参数提供给运动估计单元。该偏移也称为运动矢量(motionvector,mv)。[0217]运动补偿单元用于获取(例如接收)帧间预测参数,并根据或使用帧间预测参数进行帧间预测,以获得帧间预测块265。由运动补偿单元执行的运动补偿可以包括根据通过运动估计确定的运动/块矢量来提取或生成预测块,还可能包括对子像素精度执行插值。插值滤波可以根据已知像素样本生成其它像素样本,从而可能增加可以用于对图像块进行译码的候选预测块的数量。一旦接收到当前图像块的pu的运动矢量,运动补偿单元可以定位在其中一个参考图像列表中运动矢量指向的预测块。[0218]运动补偿单元还可以生成与块和视频条带(slice)相关的语法元素,以供视频解码器30在解码视频条带的图像块时使用。[0219]熵编码[0220]例如,熵编码单元270用于对量化系数209、帧间预测参数、帧内预测参数、环路滤波器参数和/或其它语法元素应用熵编码算法或方案(例如,可变长度译码(variablelengthcoding,vlc)方案、上下文自适应vlc(contextadaptivevlc,cavlc)方案、算术译码方案、二值化、上下文自适应二进制算术译码(contextadaptivebinaryarithmeticcoding,cabac)、基于语法的上下文自适应二进制算术译码(syntax‑basedcontext‑adaptivebinaryarithmeticcoding,sbac)、概率区间划分熵(probabilityintervalpartitioningentropy,pipe)译码或其它熵编码方法或技术)或旁路熵编码算法或方案(不压缩),以获得可以通过输出端272以经编码的码流21等形式输出的经编码的图像数据21,使得例如视频解码器30可以接收并使用这些参数进行解码。可以将经编码的码流21发送到视频解码器30,或将其存储在存储器中以供后续传输或由视频解码器30检索。[0221]视频编码器20的其它结构变体可以用于对视频流进行编码。例如,基于非变换的编码器20可以在某些块或帧没有变换处理单元206的情况下直接量化残差信号。在另一种实现方式中,编码器20中,量化单元208和反量化单元210可以组合成一个单元。[0222]解码器和解码方法[0223]图3示出了用于实现本技术技术的视频解码器30的示例。视频解码器30用于接收例如由编码器20编码的经编码的图像数据21(例如,经编码的码流21)以获得解码图像331。经编码的图像数据或码流包括用于解码该经编码的图像数据的信息,例如表示经编码的视频条带中的图像块的数据和相关的语法元素。[0224]在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如求和器314)、环路滤波区320、解码图像缓冲区(decodedpicturebuffer,dpb)330、帧间预测单元344和帧内预测单元354。帧间预测单元344可以为或可以包括运动补偿单元。在一些示例中,视频解码器30可执行通常与针对图2的视频编码器100描述的编码过程相反的解码过程。[0225]如针对编码器20的描述,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decodedpicturebuffer,dpb)230、帧间预测单元344和帧内预测单元354还组成视频编码器20的“内置解码器”。相应地,反量化单元310的功能可以与反量化单元110相同;逆变换处理单元312的功能可以与逆变换处理单元212相同;重建单元314的功能可以与重建单元214相同;环路滤波器320的功能可以与环路滤波器220相同;解码图像缓冲区330的功能可以与解码图像缓冲区230相同。因此,对视频编码器20的相应单元和功能进行的描述对应地适用于视频解码器30的相应单元和功能。[0226]熵解码[0227]熵解码单元304用于解析码流21(或通常为经编码的图像数据21)并例如对经编码的图像数据21进行熵解码,以获得量化系数309和/或经解码的译码参数(图3中未示出)等,例如帧间预测参数(例如参考图像索引和运动矢量)、帧内预测参数(例如帧内预测模式或索引)、变换参数、量化参数、环路滤波器参数和/或其它语法元素中的任一个或全部。熵解码单元304可用于应用与针对编码器20的熵编码单元270所描述的编码方案相对应的解码算法或方案。熵解码单元304还可以用于向模式选择单元360提供帧间预测参数、帧内预测参数和/或其它语法元素,并向解码器30的其它单元提供其它参数。视频解码器30可以接收视频条带级和/或视频块级的语法元素。[0228]反量化[0229]反量化单元310可用于从经编码的图像数据21(例如,通过熵解码单元304等解析和/或解码)接收量化参数(quantizationparameter,qp)(或通常为与反量化相关的信息)和量化系数,并根据所述量化参数对经解码的量化系数309应用反量化以获得解量化系数311,所述解量化系数311也可以称为变换系数311。反量化过程可以包括使用视频编码器20对视频条带中的每个视频块确定的量化参数来确定量化程度,同样也确定需要进行的反量化的程度。[0230]逆变换[0231]逆变换处理单元312可用于接收解量化系数311,也称为变换系数311,并对解量化系数311应用变换以获得样本域中的重建残差块213。重建残差块213也可以称为变换块313。变换可以为逆变换,例如逆dct、逆dst、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可以用于从经编码的图像数据21接收变换参数或对应信息(例如,通过熵解码单元304等解析和/或解码),以确定将应用于解量化系数311的变换。[0232]重建[0233]重建单元314(例如,加法器或求和器314)可用于通过将重建残差块313的样本值和预测块365的样本值相加等方式,将重建残差块313添加到预测块365,以获得样本域中的重建块315。[0234]滤波[0235]环路滤波单元320(在译码环路中或译码环路之后)用于对重建块315进行滤波,以获得滤波块321,以平滑像素转变或提高视频质量等。环路滤波单元320可以包括一个或多个环路滤波器,例如去块效应滤波器、样本自适应偏移(sample‑adaptiveoffset,sao)滤波器或者一个或多个其它滤波器,例如双边滤波器、自适应环路滤波器(adaptiveloopfilter,alf)、锐化滤波器、平滑滤波器或协同滤波器,或其任意组合。虽然环路滤波单元320在图3中示出为环内滤波器,但是在其它配置中,环路滤波单元320可以实现为后环路滤波器。[0236]解码图像缓冲区[0237]然后,将图像的解码视频块321存储在解码图像缓冲区330中,所述解码图像缓冲区330存储作为参考图像的解码图像331,这些参考图像用于其它图像的后续运动补偿和/或用于分别输出到显示器。[0238]解码器30用于通过输出端312等输出解码图像311,向用户呈现或供用户观看。[0239]预测[0240]帧间预测单元344的功能可以与帧间预测单元244(特别是运动补偿单元)相同,帧内预测单元354的功能可以与帧间预测单元254相同,并根据从经编码的图像数据21接收的划分和/或预测参数或相应信息(例如,通过熵解码单元304等解析和/或解码)决定划分或划分并执行预测。模式选择单元360可以用于根据重建图像、块或相应的样本(经过滤波或未经滤波)执行每个块的预测(帧内预测或帧间预测),得到预测块365。[0241]当视频条带译码为帧内译码(i)条带时,模式选择单元360的帧内预测单元354用于根据指示的帧内预测模式和来自当前图像的先前解码块的数据为当前视频条带的图像块生成预测块365。当视频图像译码为帧间译码(即b或p)条带时,模式选择单元360的帧间预测单元344(例如运动补偿单元)用于根据运动矢量和从熵解码单元304接收的其它语法元素为当前视频条带的视频块生成预测块365。对于帧间预测,可以根据其中一个参考图像列表内的其中一个参考图像产生这些预测块。视频解码器30可以根据存储在dpb330中的参考图像,使用默认构建技术来构建参考帧列表:列表0和列表1。[0242]模式选择单元360用于通过解析运动矢量和其它语法元素,确定当前视频条带的视频块的预测信息,并使用预测信息产生用于所解码的当前视频块的预测块。例如,模式选择单元360使用接收到的一些语法元素确定用于对视频条带的视频块进行译码的预测模式(例如,帧内预测或帧间预测)、帧间预测条带类型(例如b条带、p条带或gpb条带)、条带的一个或多个参考图像列表的构建信息、条带的每个帧间编码视频块的运动矢量、条带的每个帧间编码视频块的帧间预测状态以及其它信息,以对当前视频条带内的视频块进行解码。[0243]视频解码器30的其它变体可以用于对经编码的图像数据21进行解码。例如,解码器30可以在没有环路滤波单元320的情况下产生输出视频流。例如,基于非变换的解码器30可以在某些块或帧没有逆变换处理单元312的情况下直接反量化残差信号。在另一种实现方式中,视频解码器30中,反量化单元310和逆变换处理单元312可以组合成一个单元。[0244]应理解,在编码器20和解码器30中,可以对当前步骤的处理结果进一步处理,然后输出到下一步骤。例如,在插值滤波、运动矢量推导或环路滤波之后,可以对插值滤波、运动矢量推导或环路滤波的处理结果进行进一步的运算,如限幅(clip)或移位(shift)运算。[0245]需要说明的是,可以对当前块的推导运动矢量(包括但不限于仿射模式的控制点运动矢量,仿射模式、平面模式、atmvp模式的子块运动矢量,时域运动矢量等)进行进一步运算。例如,根据运动矢量的表示位将运动矢量的值限制在预定义范围内。如果运动矢量的表示位为bitdepth,则范围为–2^(bitdepth–1)至2^(bitdepth–1)–1,其中“^”表示幂运算。例如,如果bitdepth设置为16,则范围为–32768‑32767;如果bitdepth设置为18,则范围为–ꢀ131072‑131071。这里提供了两种约束运动矢量的方法。[0246]方法1:通过平滑运算来去除溢出的最高有效位(mostsignificantbit,msb)[0247]ux=(mvx 2bitdepth)%2bitdepthꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(1)[0248]mvx=(ux>=2bitdepth–1)?(ux–2bitdepth):uxꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(2)[0249]uy=(mvy 2bitdepth)%2bitdepthꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(3)[0250]mvy=(uy>=2bitdepth–1)?(uy–2bitdepth):uyꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(4)[0251]例如,如果mvx的值为–32769,则使用公式(1)和(2)之后得到的值为32767。在计算机系统中,以二进制补码的形式存储十进数。–32769的二进制补码为1,0111,1111,1111,1111(17位),这时丢弃msb,那么得到的二进制补码为0111,1111,1111,1111(十进数为32767),这与使用公式(1)和(2)之后得到的输出结果相同。[0252]ux=(mvpx mvdx 2bitdepth)%2bitdepthꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(5)[0253]mvx=(ux>=2bitdepth–1)?(ux–2bitdepth):uxꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(6)[0254]uy=(mvpy mvdy 2bitdepth)%2bitdepthꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(7)[0255]mvy=(uy>=2bitdepth–1)?(uy–2bitdepth):uyꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(8)[0256]这些运算可以在对mvp和mvd求和的过程中执行,如公式(5)至(8)所示。[0257]方法2:对值进行限幅来去除溢出的msb:[0258]vx=clip3(–2bitdepth–1,2bitdepth–1–1,vx)[0259]vy=clip3(–2bitdepth–1,2bitdepth–1–1,vy)[0260]其中,函数clip3的定义如下:[0261][0262]运算“?”通常用作表示“if…else”条件的快捷方式。例如,“x<k?x=1:x=0”可以解释为“如果x小于k,则x设置为1,否则(如果x不小于k)x设置为0”。[0263]图4为本发明实施例提供的视频译码设备400的示意图。视频译码设备400适用于实现本文描述的公开实施例。在一个实施例中,视频译码设备400可以是解码器(如图1a的视频解码器30)或编码器(如图1a的视频编码器20)。[0264]视频译码设备400包括:入端口410(或输入端口410)和接收单元(rx)420,用于接收数据;处理器、逻辑单元或中央处理单元(centralprocessingunit,cpu)430,用于处理数据;发送单元(tx)440和出端口450(或输出端口450),用于发送数据;存储器460,用于存储数据。视频译码设备400还可以包括与入端口410、接收单元420、发送单元440和出端口450耦合的光电(optical‑to‑electrical,oe)组件和电光(electrical‑to‑optical,eo)组件,用作光信号或电信号的出口或入口。[0265]处理器430通过硬件和软件实现。处理器430可以实现为一个或多个cpu芯片、核(例如,多核处理器)、fpga、asic和dsp。处理器430与入端口410、接收单元420、发送单元440、出端口450和存储器460通信。处理器430包括译码模块470。译码模块470用于实现上述公开的实施例。例如,译码模块470用于实现、处理、准备或提供各种译码操作。因此,包括译码模块470使得视频译码设备400的功能得到了显著改进,实现了视频译码设备400不同状态的转换。或者,以存储在存储器460中并由处理器430执行的指令来实现译码模块470。[0266]存储器460可以包括一个或多个磁盘、磁带机和固态硬盘,可用作溢出数据存储设备,以在选择执行程序时存储这类程序,并存储在程序执行期间读取的指令和数据。例如,存储器460可以是易失性和/或非易失性的,并且可以是只读存储器(read‑onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、三态内容寻址存储器(ternarycontent‑addressablememory,tcam)和/或静态随机存取存储器(staticrandom‑accessmemory,sram)。[0267]图5为示例性实施例提供的装置500的简化框图,装置500可用作图1中的源设备12和目的地设备14中的任一个或两个。[0268]装置500中的处理器502可以是中央处理单元。或者,处理器502可以是现有的或今后将开发出的能够操控或处理信息的任何其它类型的设备或多个设备。虽然可以使用如图所示的处理器502等单个处理器来实现所公开的实现方式,但使用一个以上处理器可以提高速度和效率。[0269]在一种实现方式中,装置500中的存储器504可以是只读存储器(readonlymemory,rom)设备或随机存取存储器(randomaccessmemory,ram)设备。任何其它合适类型的存储设备都可以用作存储器504。存储器504可以包括处理器502通过总线512访问的代码和数据506。存储器504还可包括操作系统508和应用程序510,其中,应用程序510包括允许处理器502执行本文所述方法的至少一个程序。例如,应用程序510可以包括应用1至n,还可以包括执行本文所述方法的视频译码应用。[0270]装置500还可以包括一个或多个输出设备,如显示器518。在一个示例中,显示器518可以是将显示器与可用于感测触摸输入的触敏元件组合的触敏显示器。显示器518可以通过总线512与处理器502耦合。[0271]尽管装置500的总线512在本文中描述为单个总线,但是总线512可以包括多个总线。此外,辅助存储器514可以直接与装置500的其它组件耦合或可以通过网络访问,并且可以包括单个集成单元(例如一个存储卡)或多个单元(例如多个存储卡)。因此,装置500可以通过多种配置实现。[0272]在根据itu‑th.265进行融合候选列表构建的示例中,根据以下候选项构建融合候选列表:[0273]1.根据五个空域邻块推导的最多四个空域候选项;[0274]2.根据两个时域同位块推导的一个时域候选项;[0275]3.附加候选项,包括组合的双向预测候选项;[0276]4.零运动矢量候选项。[0277]空域候选项[0278]首先将空域邻块的运动信息添加到融合候选列表中(在一个示例中,在第一运动矢量添加到融合候选列表之前,融合候选列表可以是空列表)作为运动信息候选项。在这里,被认为要插入融合列表中的邻块如图6b所示。对于帧间预测块融合,通过按顺序检查a1、b1、b0、a0和b2,按照该顺序将最多四个候选项插入融合列表中。[0279]运动信息可以包含所有运动数据,所述运动数据包括是否使用一个或两个参考图像列表的信息,以及每个参考图像列表的参考索引和运动矢量。[0280]在一个示例中,在检查邻块是否可用以及是否包含运动信息之后,在将邻块的所有运动数据作为运动信息候选项之前,还执行一些其它冗余检查。为了两个不同目的,这些冗余检查可分为两个类别:[0281]类别1:避免列表中具有包含冗余运动数据的候选项;[0282]类别2:防止融合可以通过其它方式表示而产生冗余语法的两个划分块。[0283]时域候选项[0284]图6a示出了从其中检索时域运动信息候选项的块的坐标。同位块是与当前块的–x、–y坐标相同但位于不同图像(参考图像之一)上的块。如果列表未满,则将时域运动信息候选项添加到融合列表中(在一个示例中,当融合列表中的候选项数量小于阈值时,融合列表未满,例如,阈值可以为4、5、6,等等)。[0285]生成的候选项[0286]在插入空域和时域运动信息候选项之后,如果融合列表仍未满,则添加生成的候选项以填充列表。列表尺寸在序列参数集中表示,并在整个编码视频序列中是固定的。[0287]双向预测[0288]“双向预测”是一种特殊的帧间预测模式,其中使用2个运动矢量预测块。运动矢量可以指向相同或不同的参考图像,其中参考图像可以通过参考图像列表id和参考图像索引表示。例如,第一运动矢量可以指向参考图像列表l0中的第一图像,第二运动矢量可以指向参考图像列表l1中的第一图像。可以维护两个参考图像列表(例如,l0和l1),并且从列表l0中选择由第一运动矢量指向的图像,从列表l1中选择由第二运动矢量指向的图像。[0289]在一个示例中,如果运动信息指示双向预测,则运动信息包括两部分:[0290]·l0部分:运动矢量和指向参考图像列表l0中的条目的参考图像索引。[0291]·l1部分:运动矢量和指向参考图像列表l1中的条目的参考图像索引。[0292]图像顺序编号(pictureordercount,poc):与每个图像关联的变量唯一地标识编码视频序列(codedvideosequence,cvs)中的所有图像中关联的图像,并且当关联的图像要从解码图像缓冲区输出时,指示相对于同一cvs中要从解码图像缓冲区输出的其它图像的输出顺序位置,该关联图像的输出顺序位置。[0293]参考图像列表l0和l1可以各自包括一个或多个参考图像,每个参考图像都用poc标识。与每个参考索引和poc值的关联可以在码流中表示。例如,l0和l1参考图像列表可以包括以下参考图像:[0294]参考图像列表参考索引pocl0012l0113l1013l1114[0295]在以上示例中,参考图像列表l1中的第一个条目(由参考索引0表示)是poc值为13的参考图像。参考图像列表l1中的第二个条目(由参考索引1表示)是poc值为14的参考图像。[0296]itu‑th.265和vvc中的融合列表构建过程输出运动信息候选项列表。vvc的融合列表构建过程在文档jvet‑l1001_v2通用视频译码(草案3)的“8.3.2.2融合模式的亮度运动矢量的推导过程(8.3.2.2derivationprocessforlumamotionvectorsformergemode)”部分中描述,该文档可以通过http://phenix.it‑sudparis.eu/jvet/公开获取。术语“运动信息”是指执行运动补偿预测过程所需要的运动数据。运动信息通常指以下信息:[0297]·块是否使用单向预测或双向预测。[0298]·预测中使用的参考图像的id(如果块使用双向预测,则为2个id)。[0299]·运动矢量(如果块是双向预测的,则为2个运动矢量)。[0300]·其它信息。[0301]在vvc和h.265中,融合列表构建输出的候选列表包括n个候选运动信息。数量n通常包括在码流中,可以是正整数,如5、6等。包含在构建的融合列表中的候选项可以包括单向预测信息或双向预测信息。这意味着从融合列表中选择的候选项可以指示双向预测操作。[0302]三角预测模式[0303]三角预测模式的概念是引入一种新的三角划分用于运动补偿预测。如图7所示,沿对角线或反对角线方向将两个三角预测单元用于cu。用于cu的每个三角预测单元使用单向预测运动矢量和参考帧索引进行帧间预测,所述单向预测运动矢量和参考帧索引从单向预测候选列表推导。在通过运动补偿或帧内预测等方式预测与每个三角预测单元相关联的样本之后,对对角线边缘执行自适应加权过程。然后,将变换和量化过程应用于整个cu。需要说明的是,这种模式仅适用于跳过模式和融合模式。[0304]在三角预测模式中,块被划分成两个三角形部分(如图7所示),每个部分可以使用一个运动矢量进行预测。用于预测一个三角形部分(用pu1表示)的运动矢量可以不同于用于预测另一个三角形部分(用pu2表示)的运动矢量。在一个示例中,需要说明的是,每个部分可以仅使用单个运动矢量进行预测(单向预测),以便降低执行三角预测模式的复杂性。换句话说,pu1和pu2可以不使用包括两个运动矢量的双向预测进行预测。[0305]子块预测模式[0306]三角预测模式是子块预测的一种特殊情况,其中一个块被划分成两个块。在以上示例中,示出了两种块划分方向(45度和135度划分)。也可以采用其它划分角度和划分比例进行子块预测(图8中的示例)。[0307]在一些示例中,块被划分成2个子块,每个部分(子块)都用单向预测进行预测。[0308]在一个示例中,通过使用子块划分模式,使用以下步骤获取块的预测样本:[0309]·步骤1:根据几何模型将译码块划分为2个子块。该模型可以通过图9‑图12所示的分隔线(例如直线)划分块。[0310]可以理解,步骤1的结果可能只是概念。例如,步骤1之后没有表述概念“子块1”或“子块2”;而是生成或获取指代分隔线的参数。根据指代分隔线的参数,样本属于不同的子块。[0311]在该步骤中,根据几何模型,译码块中的样本被认为位于两个子块中。子块a或子块b包括当前译码块中的一部分(但不是全部)样本。子块a或子块b可以根据每个样本的sample_dist的符号表示。sample_dist可以根据其它段落中的示例和实施例获取。[0312]·步骤2:获取第一子块的第一预测模式和第二子块的第二预测模式。在一个示例中,第一预测模式与第二预测模式不同。在一个示例中,预测模式(第一预测模式或第二预测模式)可以是帧间预测模式,帧间预测模式的信息可以包括参考图像索引和运动矢量。在另一示例中,预测模式可以是帧内预测模式,帧内预测模式的信息可以包括帧内预测模式索引。[0313]·步骤3:分别使用第一预测模式和第二预测模式获取第一预测值和第二预测值。[0314]·步骤4:根据步骤1中公开的划分,通过将第一预测值和第二预测值组合,获取预测样本的组合值。将来自第一预测和第二预测的样本组合以获取块的预测样本的组合值的过程可以包括滤波操作、遮蔽操作或样本复制。[0315]在一个示例中,在步骤1中,译码块通过各种方式划分为2个子块。图9示出了关于译码块划分的示例,分隔线1250将该块划分为2个子块。指示两个参数来描述线1250,一个参数是角度α1210,另一个参数是距离dist1230。[0316]在一些实施例中,图9所指示的角度在x轴与分隔线之间测量,而距离由垂直于分隔线并穿过当前块中心的矢量的长度测量。[0317]在另一示例中,图10示出了表示分隔线的另一种方式,其中角度和距离的示例与图9所示的示例不同。[0318]在一些示例中,在步骤4中,步骤1中公开的划分用于两种所述预测的组合,以获取最终预测。在一个示例中,在步骤4中使用混合操作,以消除任何伪影(沿分隔线的边缘或锯齿状外观)。混合操作可以描述为沿着分隔线进行的滤波操作。[0319]在一个示例中,在编码端,根据基于率失真的成本函数确定分隔线(定义该线的参数,例如角度和距离)。确定的线参数被编码到码流中。在解码端,根据码流解码(获取)线参数。在解码端,线参数用于第一预测值和第二预测值的组合,以获取最终预测值。步骤1不要求有两个子译码块概念,解码器可以使用译码块和线参数来表示两个子译码块概念。[0320]由于将译码块划分为2个子块的可能性有很多,因此划分的指示(译码)需要很多位。并且由于角度和距离值可以有许多不同的值,因此需要在码流中指示的边信息过多。[0321]本发明实施例是关于划分参数的指示。高效译码通过以下特征实现:[0322]·用于划分块的参数(例如角度和距离)存储在预定表中,从而不需要传输角度和距离的实际值。[0323]·该表包含更有可能的划分参数,这些划分参数包括足够的变化。[0324]·表的索引被编码到码流中(或从码流中获取)。[0325]本发明实施例实现了一种对描述编码块划分为子块的参数进行联合译码的方式。[0326]实施例1(解码器角度):[0327]在该实施例中,使用以下步骤获取编码块样本的组合预测值。[0328]步骤1:根据码流获取当前解码块的指示符的值。[0329]在一个实施例中,指示符的值用于表示几何划分融合模式的划分形状。例如,指示符可以是merge_gpm_partition_idx[x0][y0],其中merge_gpm_partition_idx[x0][y0]表示几何划分融合模式的划分形状。阵列索引x0,y0表示所考虑译码块的左上亮度样本相对于图像的左上亮度样本的位置(x0,y0)。[0330]通常,merge_gpm_partition_idx[x0][y0]的值是从码流解码的。在一个示例中,merge_gpm_partition_idx[][]的取值范围为0到63(包括0和63)。在一个示例中,merge_gpm_partition_idx[][]的解码过程是“旁路”。[0331]当merge_gpm_partition_idx[x0][y0]不存在时,推断它等于0。[0332]步骤2:根据指示符的值和预定义查找表,获取第一参数的值和第二参数的值。[0333](参数1,参数2)=查找表(指示符)[0334]在一个实施例中,如下表所表示,根据merge_gpm_partition_idx[xcb][ycb](指示符)的值设置几何划分模式的划分角度变量angleidx(参数1)和距离变量distanceidx(参数2)。可以理解的是,在该实现方式中,这种关系可以根据表1或根据函数来实现。[0335]表1:基于merge_gpm_partition_idx的angleidx和distanceidx的规范[0336][0337][0338]步骤3:对于当前解码块中的样本,根据第一参数的值和第二参数的值计算样本距离(sample_dist)。[0339]在一个实施例中,步骤3包括:[0340]步骤3.1:获取当前块的角度参数(alphan或angleidx)的索引值、当前块的宽度(w)的值、当前块的高度(h)的值。w和h是当前块以样本数为单位的宽度和高度。例如,宽度和高度均等于8的译码块是包括64个样本的正方形块。在另一示例中,w和h是当前块以亮度样本数为单位的宽度和高度。角度参数的索引值可以根据上文描述参考表1获取。[0341]步骤3.2:根据w的值和h的值获取比值whratio的值,whratio的值表示当前译码块的宽度与高度之间的比值。[0342]在一个示例中,whratio=h/w;或whratio=w/h。[0343]在另一示例中,两个变量ncbw和ncbh表示当前译码块的宽度和高度,变量cidx表示颜色分量索引。[0344]变量nw、nh和whratio如下推导:[0345]nw=(cidx==0)?ncbw:ncbw*subwidthc;[0346]nh=(cidx==0)?ncbh:ncbh*subheightc;[0347]whratio=nh/nw。[0348]在一个示例中,变量subwidthc和subheightc在表2中表示,取决于色度格式采样结构,所述色度格式采样结构通过chroma_format_idc(chroma_format_idc表示相对于亮度采样的色度采样)和separate_colour_plane_flag(separate_colour_plane_flag等于1表示4:4:4色度格式的三个颜色分量单独译码。separate_colour_plane_flag等于0表示颜色分量不单独译码。当separate_colour_plane_flag不存在时,推断它等于0。当separate_colour_plane_flag等于1时,经译码的图像由三个单独的分量组成,每个分量由一个颜色平面的经译码的样本(y、cb或cr)组成并使用单色译码语法。在这种情况下,每个颜色平面与特定的colour_plane_idvalue值相关联)表示。chroma_format_idc、subwidthc和subheightc的其它值可以将来由itu‑t|iso/iec指定。[0349]表2‑根据chroma_format_idc和separate_colour_plane_flag推导的subwidthc和subheightc值[0350][0351][0352]在单色采样中,只有一个样本阵列,名义上是亮度阵列。[0353]在4:2:0采样中,两个色度阵列的高度和宽度都为亮度阵列的一半。[0354]在4:2:2采样中,两个色度阵列的高度都与亮度阵列相同,宽度都为亮度阵列的一半。[0355]在4:4:4采样中,根据separate_colour_plane_flag的值,存在以下情况:[0356]‑如果separate_colour_plane_flag等于0,则两个色度阵列的高度和宽度都与亮度阵列相同。[0357]‑否则(即separate_colour_plane_flag等于1),三个颜色平面分别作为单色采样图像处理。[0358]步骤3.3:根据查找表、alpha的值和whratio的值获取shifthor值,在一个示例中,alpha(alphan或angleidx)的值和whratio的值用作查找表的索引值。可以理解,shifthor值也可以根据函数获取,其中,alpha(alphan或angleidx)的值和whratio的值是函数的输入,shifthor值是函数的输出。在一个示例中,函数的结果与查找表相似或相同。在一个示例中,shifthor值表示样本距离计算过程的量化步长。[0359]在另一示例中,该函数可以表示为shifthor=(angleidx%16==8||(angleidx%16!=0&&whratio>0))?0:1。[0360]步骤3.4:根据shifthor值计算sample_dist的值。[0361]在一个示例中,为了计算样本距离(sample_dist),首先,如下推导变量offsetx和offsety:[0362]如果shifthor等于0,则:[0363]offsetx=(–nw)>>1,[0364]offsety=((–nh)>>1) [0365](angleidx<16?(distanceidx*nh)>>3:–((distanceidx*nh)>>3));[0366]否则(shifthor等于1):[0367]offsetx=((–nw)>>1) [0368](angleidx<16?(distanceidx*nw)>>3:–((distanceidx*nw)>>3));[0369]offsety=(–nh)>>1;[0370]‑变量xl和yl如下推导:[0371]xl=(cidx==0)?x:x*subwidthc[0372]yl=(cidx==0)?y:y*subheightc[0373]sample_dist=(((xl offsetx)<<1) 1)*dislut[displacementx] (((yl offsety)<<1) 1))*dislut[displacementy]。[0374]变量displacementx和displacementy如下推导:[0375]hwratio=cbheight/cbwidth;[0376]displacementx=angleidx;[0377]displacementy=(angleidx 8)%32。[0378]表3中表示的阵列dislut如下所示:[0379]表3‑几何划分距离阵列dislut的规范[0380]idx02345681011121314dislut[idx]8884420–2–4–4–8–8idx161819202122242627282930dislut[idx]–8–8–8–4–4–2024488[0381]在另一实施例中,作为一个示例,上述实施例中的步骤3可以包括以下步骤:[0382]步骤3.1:获取当前块的角度参数(alphan或angleidx)的值、距离索引(distanceidx)的值、当前块的宽度(w)的值、当前块的高度(h)的值。w和h是当前块以样本数为单位的宽度和高度。例如,宽度和高度均等于8的译码块是包括64个样本的正方形块。在另一示例中,w和h是当前块以亮度样本数为单位的宽度和高度。角度参数的索引值可以根据上文描述参考表1获取。[0383]步骤3.2:根据w的值和h的值获取比值whratio的值,whratio的值表示当前译码块的宽度与高度之间的比值。(第二参数)获取,角度α(1210)可以根据angleidx(第一参数)获取。距离1230可以是到译码块中心的距离,角度可以是分隔线与穿过编码块中心点的水平(或等效地垂直)线之间的角度。[0434]在一个示例中,查找表是预定义的。[0435]在一个示例中,可以有一个以上预定义查找表。在一个示例中,如果块的宽高比(宽高比=w>h?w/h:h/w)等于1,则使用译码块的一个查找表。在另一示例中,如果宽高比不等于1,则使用一个或多个查找表(与所述一个查找表不同),其中,w和h是译码块的宽度和高度。[0436]在另一示例中,可以有一个以上预定义查找表,一个查找表用于译码块,块的w*h大于阈值;如果块的w*h小于或等于阈值,则将一个或多个查找表(与所述一个查找表不同)用于块。例如,如果待预测的当前块的尺寸小于或等于32×32个亮度样本,则使用第一查找表。否则,如果当前译码块的尺寸大于32×32个亮度样本,则使用第二查找表。这两个查找表可以包含关于不同块尺寸的不同属性的不同参数集。例如,第二查找表可以包含比第一查找表更多的参数,从而使较大块的划分更灵活。[0437]在一些示例中,如果一个块使用了一个以上预定义查找表,则可以使用函数f(w,h)来确定该块的一个查找表,其中,w和h是译码块的宽度和高度。[0438]在另一示例中,根据公式计算样本距离sample_dist:[0439]sample_dist=((x<<1) 1)*dis[angleidx1] ((y<<1) 1))*dis[angleidx2]–ꢀoffset(distanceidx)。其中,[0440]·angleidx1的值和angleidx2的值来自码流或根据从码流获取的其它信息推导/计算,angleidx1和angleidx2表示分隔线的量化三角参数,第一个是余弦类型,第二个是正弦类型。在一个示例中,x和y是样本相对于译码块左上样本的–x和–y坐标。[0441]·dis[]是查找表。dis[angleidx1]描述了在所述样本的–x坐标上,样本距离(sample_dist)相对于单位增量(增量为值1)的变化。dis[angleidx2]描述了在所述样本的–y坐标上,样本距离(sample_dist)相对于单位增量(增量为值1)的变化。在一个示例中,angleidx1等于angleidx,angleidx2等于(displacementx 8)%32。[0442]·offset(distanceidx)是作为索引值(distanceidx)的函数的偏移值,索引值从码流获取,或根据从码流获取的其它信息推导/计算。[0443]查找表的构建:[0444]根据一个示例,第一参数的取值范围可以在0与4k–1之间,其中,k为大于0的整数;第二参数的取值范围可以在0至n之间。在这种情况下,所述查找表的行可以包括第一参数和第二参数的除以下组合外的所有组合:[0445]·第一组对:第二参数的值等于0,第一参数的值等于{0,k,2k,3k}中的一个。[0446]·第二组对:第二参数的值=0,第一参数的值等于{k/2,3k/2,5k/2,7k/2}中的一个。[0447]·第三组参数:第二参数的值=0,第一参数的值大于或等于2k。[0448]在一个示例中,k的值为8或4。数量k描述了用于划分90度角的离散角度值的数量。在一个示例中,如果数量k为8,则分隔线可以具有以下角度值:0度、11.25度、22.5度、33.75度、45度等。在另一示例中,如果k的值为4,则角度值为:0度、22.5度、45度、67.5度等。[0449]在一个示例中,n的值为4。通常,n可以是大于0的整数。[0450]在一些实施例中,第二参数描述了分隔线到译码块中心的距离。如果第二参数的值为0,这意味着分隔线穿过译码块中心。如果第一参数的值等于k,这意味着分隔线是水平或垂直取向的(角度值等于0度、90度、270度或360度)。第一组对从查找表中排除,因为这会产生冗余划分,使用二叉树对编码块进行二叉树(意指划分为两个)划分也会产生冗余划分。二叉树划分是一种机制,它沿垂直或水平轴将编码块划分为尺寸相等的2个编码块(而不是划分为子块)。因此,根据本发明实施例,第一组对从查找表中排除。[0451]第二组对从查找表中排除,因为第二组对会产生可以通过三角预测模式实现的划分。因此,排除第二组对可以防止冗余子块划分。[0452]第三组对从表中排除,因为当角度等于x或x 180时,如果第二参数等于0,会产生相同的划分。[0453]根据另一示例,以下对可以从查找表中排除:[0454]·第二参数的值等于n,第一参数的值等于{k/2,3k/2,5k/2,7k/2}中的一个。[0455]·第二参数的值等于n,第一参数的值等于{k/2–1,3k/2–1,5k/2–1,7k/2–1,k/2 1,3k/2 1,5k/2 1,7k/2 1}中的一个。[0456]在一些实施例中,上述对可以从查找表中排除,因为它们产生2个子块,其中一个子块可能太小。如果第一参数的值等于k/2、3k/2等等,这意味着分隔线的角度为45度、135度、225度或315度。如果第二参数的值等于n(这是最大值),则其中一个子块包括译码块的一个角的一小部分,这会因太小而难以进行划分操作。[0457]查找表中对的排序:[0458]根据一个示例,如果第二参数等于n(其中n是第二参数的最大可能值),则可以在查找表的末尾添加对(第一参数,第二参数)。换句话说,如果存在p对,其中第二参数的值等于n,则查找表的最后p个条目可以包括所述p对。例如,如果n等于4,k等于8,则有p=4k*1=32对参数,其中第二参数等于4。[0459]根据另一示例,参数对根据启发式过程排序。该启发式过程可以根据训练数据确定,例如,所述训练数据反映训练数据集中参数对的出现或使用。因此,出现频率较高的参数对放置在列表的开头,而出现频率较低的参数对放置在列表的末尾。[0460]当第二参数等于n时,一个子块比另一个子块小。选择这种划分的可能性较小(与每个子块中的样本数更相似的情况相比)。此外,具有较大值的(查找表的)索引值通常需要较多的位数以便编码到码流中。因此,在表的末尾包括可能性较低的对提高了压缩效率,因此表的开头可以分配给可能性较高的对(例如,导致更有利子块划分的对)。[0461]下文给出了指示符(geo_partition_idx)和查找表的一个示例。指示符的值介于0与139之间,用于使用查找表选择第一参数和第二参数。表4是查找表的示例。[0462]表4:查找表,其中geo_partition_idx是表的索引,angleidx是第一参数,distanceidx是第二参数。[0463][0464][0465][0466][0467][0468]可以理解的是,表4只是示出第一参数和第二参数的可能组合值的示例,在其它实现方式中,表4的一部分可以用作查找表,以获取第一参数和第二参数。[0469]示例1.一种由解码设备实现的译码方法,其特征在于,包括:[0470]获取码流;[0471]根据所述码流获取当前块的指示符的值;[0472]根据所述指示符的所述值和预定义查找表,获取所述当前块的第一参数的值和所述当前块的第二参数的值;[0473]根据所述第一参数的所述值和所述第二参数的所述值,获取位于所述当前块中的样本的样本距离的值;[0474]根据所述样本的所述样本距离的所述值,获取所述样本的预测值。[0475]示例2.根据示例1所述的方法,其中,所述第一参数表示用于划分所述当前块的角度。[0476]示例3.根据示例1或2所述的方法,其中,所述第二参数表示用于划分所述当前块的距离。[0477]示例4.根据示例1至3中任一项所述的方法,其中,所述预定义查找表由第一参数和第二参数对组成(在一个示例中,所述表中的每个条目是第一参数和第二参数的唯一对),[0478]以下对位于所述预定义查找表中:[0479]第一参数表示与0度、45度、90度、135度、180度、225度、270度或315度中的一个角度对应的角度,所述对中的对应第二参数不表示样本和所述当前块的中心之间的距离为零。[0480]示例5.根据示例1至4中任一项所述的方法,其中,所述预定义查找表由第一参数和第二参数对组成(在一个示例中,所述表中的每个条目是第一参数和第二参数的唯一对),[0481]以下对位于所述预定义查找表中;[0482]第一参数表示不与0度、45度、90度、135度、180度、225度、270度或315度中的一个角度对应的角度,所述对中的对应第二参数表示样本和所述当前块的中心之间的距离为零。[0483]示例6.根据示例1至5中任一项所述的方法,其中,所述预定义查找表由第一参数和第二参数对组成(在一个示例中,所述表中的每个条目是第一参数和第二参数的唯一对),[0484]以下对不包括在所述预定义查找表中;[0485]第一参数表示与0度、45度、90度、135度、180度、225度、270度或315度中的一个角度对应的角度,所述对中的对应第二参数表示样本和所述当前块的中心之间的距离为零。[0486]示例7.一种解码器(30),包括处理电路,用于执行根据示例1至6中任一项所述的方法。[0487]示例8.一种计算机程序产品,包括程序代码,所述程序代码用于执行根据示例1至6中任一项所述的方法。[0488]示例9.一种解码器,其特征在于,包括:[0489]一个或多个处理器;[0490]非瞬时性计算机可读存储介质,与所述一个或多个处理器耦合并存储由所述处理器执行的程序,其中,当所述程序由所述处理器执行时,使所述解码器执行根据示例1至6中任一项所述的方法。[0491]示例10.一种由解码设备实现的译码方法,其特征在于,包括:[0492]获取码流;[0493]根据所述码流获取当前块的指示符的值;[0494]根据所述指示符的所述值和预定义查找表,获取所述当前块的第一参数的值和所述当前块的第二参数的值;[0495]根据所述第一参数的所述值和所述第二参数的所述值,获取位于所述当前块中的样本的样本距离的值;[0496]根据所述样本的所述样本距离的所述值,获取所述样本的预测值。[0497]示例11.根据示例10所述的方法,其特征在于,所述第一参数表示用于划分所述当前块的角度。[0498]示例12.根据示例10或11所述的方法,其特征在于,所述第二参数表示用于划分所述当前块的距离。[0499]示例13.根据示例10至12中任一项所述的方法,其特征在于,所述第二参数表示几何划分的距离索引,或所述第二参数描述分隔线到所述当前块的中心的距离。[0500]示例14.根据示例10至13中任一项所述的方法,其特征在于,所述根据所述样本的所述样本距离的所述值,获取所述样本的预测值包括:[0501]根据所述样本距离值计算两个加权因子;[0502]根据第一预测值、第二预测值和所述两个加权因子,获取所述样本的所述预测值。[0503]示例15.根据示例10至14中任一项所述的方法,其特征在于,所述样本距离的所述值表示所述样本到分隔线的水平距离或垂直距离,或所述垂直距离和水平距离的组合,其中,所述分隔线用于将编码块分为两个子块。[0504]示例16.根据示例10至15中任一项所述的方法,其特征在于,所述预定义查找表包括成对的第一参数和第二参数,[0505]其中,当一对中的所述第一参数表示与0度、45度、90度、135度、180度、225度、270度或315度中的一个角度对应的角度时,所述对中的对应第二参数不表示样本和所述当前块的所述中心之间的距离为零。[0506]示例17.根据示例10至16中任一项所述的方法,其特征在于,所述预定义查找表包括成对的第一参数和第二参数,[0507]其中,一对中的所述第一参数表示不与0度、45度、90度、135度、180度、225度、270度或315度中的一个角度对应的角度,所述对中的所述对应第二参数表示样本和所述当前块的所述中心之间的距离为零。[0508]示例18.根据示例10‑17中任一项所述的方法,其特征在于,所述预定义查找表包括成对的第一参数和第二参数,[0509]其中,一对中的所述第一参数表示与0度、45度、90度、135度、180度、225度、270度或315度中的一个角度对应的角度,所述对中的所述对应第二参数表示样本和所述当前块的所述中心之间的距离为零。[0510]示例19.一种解码器(30),其特征在于,包括处理电路,用于执行根据示例10至18中任一项所述的方法。[0511]示例20.一种解码器,其特征在于,包括:[0512]一个或多个处理器;[0513]非瞬时性计算机可读存储介质,与所述一个或多个处理器耦合并存储由所述处理器执行的程序,其中,当所述程序由所述处理器执行时,使所述解码器执行根据示例10至18中任一项所述的方法。[0514]示例21.一种由编码设备实现的译码方法,其特征在于,包括:[0515]选择第一参数的值和第二参数的值;[0516]根据所述第一参数的所述值、所述第二参数的所述值和查找表获取索引值;[0517]将所述索引值编码到码流中。[0518]示例22.根据示例21所述的方法,其特征在于,所述方法还包括:[0519]计算编码块中样本的样本距离;[0520]根据所述计算的样本距离计算与所述样本对应的加权因子;[0521]根据第一预测值、第二预测值和所述加权因子,计算所述样本的组合预测值。[0522]示例23.一种编码器,其特征在于,包括:[0523]一个或多个处理器;[0524]非瞬时性计算机可读存储介质,与所述一个或多个处理器耦合并存储由所述一个或多个处理器执行的程序,其中,所述程序由所述处理器执行时,使所述解码器执行根据示例21或22所述的方法。[0525]示例24.一种计算机程序产品,其特征在于,包括用于执行根据示例10至18以及21至22中任一项所述的方法的程序代码。[0526]下面对上述实施例中所示的编码方法和解码方法的应用以及使用这些应用的系统进行解释说明。[0527]图13为用于实现内容分发业务的内容供应系统3100的框图。该内容供应系统3100包括捕获设备3102、终端设备3106,并可选地包括显示器3126。捕获设备3102通过通信链路3104与终端设备3106通信。通信链路可以包括上文描述的通信信道13。通信链路3104包括但不限于wifi、以太网、有线、无线(3g/4g/5g)、usb或其任意类型组合等。[0528]捕获设备3102生成数据,并可以通过如上述实施例中所示的编码方法对数据进行编码。或者,捕获设备3102可以将数据分发到流媒体服务器(图中未示出),该服务器对数据进行编码,并将编码数据发送到终端设备3106。捕获设备3102包括但不限于摄像机、智能手机或平板电脑、计算机或笔记本电脑、视频会议系统、pda、车载设备或其任意组合等。例如,捕获设备3102可以包括上述源设备12。当数据包括视频时,捕获设备3102中包括的视频编码器20可以实际执行视频编码处理。当数据包括音频(即语音)时,捕获设备3102中包括的音频编码器可以实际执行音频编码处理。对于一些实际场景,捕获设备3102通过将经编码的视频数据和经编码的音频数据一起复用来分发经编码的视频数据和经编码的音频数据。对于其它实际场景,例如在视频会议系统中,不复用经编码的音频数据和经编码的视频数据。捕获设备3102分别将经编码的音频数据和经编码的视频数据分发到终端设备3106。[0529]在内容供应系统3100中,终端设备310接收并再现编码数据。终端设备3106可以为具有数据接收和恢复能力的设备,如智能手机或平板电脑3108、计算机或膝上型电脑3110、网络视频录像机(networkvideorecorder,nvr)/数字视频录像机(digitalvideorecorder,dvr)3112、电视3114、机顶盒(settopbox,stb)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personaldigitalassistant,pda)3122、车载设备3124或其任意组合,或能够对上述编码数据进行解码的此类设备。例如,终端设备3106可以包括上述目的地设备14。当编码数据包括视频时,终端设备中包括的视频解码器30优先进行视频解码。当编码数据包括音频时,终端设备中包括的音频解码器优先进行音频解码处理。[0530]对于带显示器的终端设备,如智能手机或平板电脑3108、计算机或膝上型电脑3110、网络视频录像机(networkvideorecorder,nvr)/数字视频录像机(digitalvideorecorder,dvr)3112、电视3114、个人数字助理(personaldigitalassistant,pda)3122、或车载设备3124,终端设备可以将解码数据发送到其显示器。对于不带显示器的终端设备,如stb3116、视频会议系统3118或视频监控系统3120,将外接显示器3126与终端设备连接,以接收并显示解码数据。[0531]当该系统中的每个设备执行编码或解码时,可以使用如上述实施例中所示的图像编码设备或图像解码设备。[0532]图14为终端设备3106的示例结构的示意图。在终端设备3106从捕获设备3102接收到流之后,协议处理单元3202分析流的传输协议。所述协议包括但不限于实时流传输协议(realtimestreamingprotocol,rtsp)、超文本传输协议(hypertexttransferprotocol,http)、http直播流传输协议(httplivestreamingprotocol,hls)、mpeg‑dash、实时传输协议(real‑timetransportprotocol,rtp)、实时消息传输协议(realtimemessagingprotocol,rtmp)或其任意组合等。[0533]协议处理单元3202对流进行处理后,生成流文件。文件输出到解复用单元3204。解复用单元3204可以将复用数据分离成经编码的音频数据和经编码的视频数据。如上文所述,对于一些实际场景,例如在视频会议系统中,不复用经编码的音频数据和经编码的视频数据。在这种情况下,不通过解复用单元3204,将编码数据发送到视频解码器3206和音频解码器3208。[0534]通过解复用处理,生成视频基本码流(elementarystream,es)、音频es和可选的字幕。视频解码器3206,包括上述实施例所描述的视频解码器30,通过上述实施例所示的解码方法对视频es进行解码以生成视频帧,并将该数据发送到同步单元3212。音频解码器3208对音频es进行解码以生成音频帧,并将该数据发送至同步单元3212。或者,可以在将视频帧发送至同步单元3212之前存储在缓冲区(图14中未示出)中。类似地,可以在将音频帧发送至同步单元3212之前存储在缓冲区(图14中未示出)中。[0535]同步单元3212同步视频帧和音频帧,并将视频/音频提供给视频/音频显示器3214。例如,同步单元3212同步视频信息和音频信息的呈现。信息可以使用与译码音频和可视数据呈现相关的时域戳和与数据流发送相关的时域戳,在语法中进行译码。[0536]如果流中包括字幕,则字幕解码器3210对字幕进行解码,并使字幕与视频帧和音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。[0537]本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备都可以包括在汽车系统等其它系统中。[0538]数学运算符[0539]本技术中使用的数学运算符与c编程语言中使用的数学运算符类似。然而,对整数除法和算术移位运算的结果进行了更准确的定义,并且定义了其它运算,如幂运算和实值除法。编号和计数规范通常从0开始,例如,“第一个”相当于第0个,“第二个”相当于第1个,等等。[0540]算术运算符[0541]以下算术运算符定义如下:[0542] 加法[0543]–减法(作为双参数运算符)或者非运算(作为一元前缀运算符)[0544]*乘法,包括矩阵乘法[0545]xy幂运算。表示x的y次幂。在其它上下文中,该表示用作上标,而非用于解释为幂运算。[0546]/整除运算,向0对结果进行截断。例如,7/4和–7/–4被截断成1,–7/4和7/–ꢀ4被截断成–1。[0547]÷用来表示数学等式中的除法运算,没有截断或四舍五入运算。[0548]用来表示数学等式中的除法运算,没有截断或四舍五入运算。[0549]f(i)的求和,其中i取从x到y(包括y)的所有整数值。[0550]x%y取模运算。x除y的余数,这里x和y都必须是整数,并且x≥0和y>0。[0551]逻辑运算符[0552]以下逻辑运算符定义如下:[0553]x&&yx和y的布尔逻辑“与”运算[0554]x||yx和y的布尔逻辑“或”运算[0555]!布尔逻辑“非”运算[0556]x?y:z如果x为真(true)或不等于0,则返回y的值,否则,返回z的值。[0557]关系运算符[0558]以下关系运算符定义如下:[0559]>大于[0560]>=大于或等于[0561]<小于[0562]<=小于或等于[0563]==等于[0564]!=不等于[0565]当一个关系运算符应用于一个已被赋值“na”(不适用,notapplicable)的语法元素或变量时,值“na”被视为该语法元素或变量的不同值。值“na”被视为不等于任何其它值。[0566]按位运算符[0567]以下按位运算符定义如下:[0568]&按位“与”运算。当对整数变量运算时,运算的是整数值的二的补码表示。当对二进制参数运算时,如果它包含的位比另一个参数少,则通过添加更多等于0的有效位来扩展较短的参数。[0569]|按位“或”运算。当对整数变量运算时,运算的是整数值的二的补码表示。当对二进制参数运算时,如果它包含的位比另一个参数少,则通过添加更多等于0的有效位来扩展较短的参数。[0570]^按位“异或”运算。当对整数变量运算时,运算的是整数值的二的补码表示。当对二进制参数运算时,如果它包含的位比另一个参数少,则通过添加更多等于0的有效位来扩展较短的参数。[0571]x>>yx的二的补码整数表示算术右移y个二进制位。只有y为非负整数值时才定义该函数。右移的结果是移进最高有效位(mostsignificantbit,msb)的比特位等于移位运算之前的x的msb。[0572]x<<yx的二的补码整数表示算术左移y个二进制位。只有y为非负整数值时才定义该函数。由于左移而移进最低有效位(leastsignificantbit,lsb)的位的值等于0。[0573]赋值运算符[0574]以下算术运算符定义如下:[0575]=赋值运算符[0576] 增,即,x 等于x=x 1;当在阵列索引中使用时,等于增运算之前变量的值。[0577]––减,即,x––等于x=x–1;当在阵列索引中使用时,等于减运算之前变量的值。[0578] =增加指定量,即,x =3等于x=x 3,x =(–3)等于x=x (–3)。[0579]–=减少指定量,即,x–=3等于x=x–3,x–=(–3)等于x=x–(–3)。[0580]范围表示法[0581]以下符号用来说明值的范围:[0582]x=y..zx取从y到z(包括端值)的整数值,其中x、y和z是整数,z大于y。[0583]数学函数[0584]定义了以下数学函数:[0585][0586]asin(x)三角反正弦函数,对参数x运算,x在–1.0至1.0(包括端值)范围之间,输出值在–π÷2至π÷2(包括端值)范围之间,单位为弧度。[0587]atan(x)三角反正切函数,对参数x运算,输出值在–π÷2至π÷2(包括端值)范围之间,单位为弧度。[0588][0589]ceil(x)大于或等于x的最小整数。[0590]clip1y(x)=clip3(0,(1<<bitdepthy)–1,x)[0591]clip1c(x)=clip3(0,(1<<bitdepthc)–1,x)[0592][0593]cos(x)三角余弦函数,对参数x运算,单位为弧度。[0594]floor(x)小于或等于x的最大整数。[0595][0596]ln(x)x的自然对数(以e为底的对数,其中e是自然对数底数常数2.718281828……)。[0597]log2(x)x以2为底的对数。[0598]log10(x)x以10为底的对数。[0599][0600][0601]round(x)=sign(x)*floor(abs(x) 0.5)[0602][0603]sin(x)三角正弦函数,对参数x运算,单位为弧度。[0604][0605]swap(x,y)=(y,x)[0606]tan(x)三角正切函数,对参数x运算,单位为弧度。[0607]运算顺序优先级[0608]当没有使用括号来显式表示表达式中的优先顺序时,适应以下规则:[0609]‑高优先级的运算在低优先级的任何运算之前计算。[0610]‑相同优先级的运算从左到右依次计算。[0611]下表从最高到最低说明运算的优先级,表中位置越高,优先级越高。[0612]对于c编程语言中也使用的运算符,本规范中使用的优先级顺序与在c编程语言中使用的优先级顺序相同。[0613]表:运算优先级从最高(表格顶部)到最低(表格底部)排序[0614]逻辑运算的文本说明[0615]在文本中,逻辑运算的语句用数学形式描述如下:[0616][0617][0618]可以采用如下方式描述:[0619]……如下/……以下为准:[0620]‑如果条件0,则语句0[0621]‑否则,如果条件1,则语句1[0622]‑……[0623]‑否则(关于剩余条件的提示性说明),则语句n。[0624]文本中的每个“如果……否则,如果……否则,……”语句都以“……如下”或“……以下适用”开头,紧接“如果……”。“如果……,否则,如果……,否则,……”的最后一个条件始终是“否则,……”。中间的“如果……否则,如果……否则,……”语句可以通过使“……如下”或“……以下适用”与结尾“否则,……”匹配来识别。[0625]在文本中,逻辑运算的语句用数学形式描述如下:[0626][0627]可以采用如下方式描述:[0628]……如下/……以下为准:[0629]‑如果满足以下所有条件,则语句0:[0630]‑条件0a[0631]‑条件0b[0632]‑否则,如果满足以下一个或多个条件,则语句1:[0633]‑条件1a[0634]‑条件1b[0635]‑……[0636]‑否则,语句n[0637]在文本中,逻辑运算的语句用数学形式描述如下:[0638][0639]可以采用如下方式描述:[0640]当条件0,则语句0[0641]当条件1,则语句1[0642]尽管本发明实施例主要根据视频译码进行了描述,但需要说明的是,译码系统10、编码器20和解码器30(相应地,系统10)的实施例以及本文描述的其它实施例也可以用于静态图像处理或译码,即,对视频译码中独立于任何先前或连续图像的单个图像进行处理或译码。通常,如果图像处理译码限于单个图像17,则仅帧间预测单元244(编码器)和344(解码器)不可用。视频编码器20和视频解码器30的所有其它功能(也称为工具或技术)同样可用于静态图像处理,例如残差计算204/304、变换206、量化208、反量化210/310、(逆)变换212/312、划分262/362、帧内预测254/354和/或环路滤波220/320、熵编码270和熵解码304。[0643]编码器20和解码器30等的实施例,以及本文描述的与编码器20和解码器30等有关的功能可以硬件、软件、固件或其任意组合来实现。如果以软件来实现,则各种功能可作为一个或多个指令或代码存储在计算机可读介质中或通过通信介质传输,且由基于硬件的处理单元执行。计算机可读介质可以包括与有形介质(如数据存储介质)对应的计算机可读存储介质,或包括任何便于将计算机程序从一处传送到另一处的介质(例如根据通信协议)的通信介质。通过这种方式,计算机可读介质通常可以对应(1)非瞬时性的有形计算机可读存储介质,或(2)如信号或载波等通信介质。数据存储介质可以是通过一个或多个计算机或一个或多个处理器访问的任何可用介质,以检索用于实现本发明所述技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。[0644]作为示例而非限制,这类计算机可读存储介质可以包括ram、rom、eeprom、cd‑rom或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存或可以用于存储指令或数据结构形式的所需程序代码并且可以由计算机访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴电缆、光缆、双绞线、数字用户线(digitalsubscriberline,dsl)或如红外线、无线电和微波等无线技术从网站、服务器或其它远程资源传输指令,则在介质定义中包括同轴电缆、光缆、双绞线、dsl或如红外线、无线电和微波等无线技术。然而,应理解,计算机可读存储介质和数据存储介质并不包括连接、载波、信号或其它瞬时性介质,而是针对非瞬时性有形存储介质。本文所使用的磁盘和光盘包括压缩光盘(compactdisc,cd)、激光光盘、光学光盘、数字多功能光盘(digitalversatiledisc,dvd)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包括在计算机可读介质的范围内。[0645]可通过如一个或多个数字信号处理器(digitalsignalprocessor,dsp)、通用微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程逻辑阵列(fieldprogrammablelogicarray,fpga)或其它等效集成或离散逻辑电路等一个或多个处理器来执行指令。因此,本文所使用的术语“处理器”可指前述结构或适合于实现本文描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文描述的各种功能可以提供在用于编码和解码的专用硬件和/或软件模块内,或者并入组合编解码器中。而且,所述技术可以完全在一个或多个电路或逻辑元件中实现。[0646]本发明的技术可以在多种设备或装置中实现,这些设备或装置包括无线手机、集成电路(integratedcircuit,ic)或一组ic(例如芯片组)。本发明描述了各种组件、模块或单元,以强调用于执行所公开技术的设备的功能方面,但未必需要由不同的硬件单元实现。相反,如上所述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过包括如上所述的一个或多个处理器的互操作硬件单元的集合来提供。当前第1页12当前第1页12
再多了解一些

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

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

相关文献