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

依赖性量化以及残差编码方法与流程

2023-10-09 09:26:10 来源:中国专利 TAG:
依赖性量化以及残差编码方法1.版权声明2.本专利文件公开的部分内容包含受版权保护的材料。版权所有人不反对任何人按本专利文件或专利公开在专利商标局专利文档或者记录中的记载对本专利文件或专利公开进行传真以及复制,但除此之外保留所有版权。
技术领域
:3.本发明总体上涉及多媒体编码以及解码的方法、系统以及装置。
背景技术
::4.依赖性量化是一种用于视频编码以减小视频信号的动态范围,从而使用更少的信息来代表该视频信号的技术。量化一般包括除以量化步长和随后的舍入,而反向量化包括乘以该量化步长。这样的量化处理也称为标量量化。块内所有系数的量化可以独立地完成,并且这种量化方法用于一些现有的视频压缩标准,例如h.264以及高效视频编码(hevc)。为了进一步改进编码效率,多个量化器可能被使用。在多个量化器中确定哪个量化器将被用于量化给定系数,这一般取决于编码扫描顺序中当前系数的先前信息。这种量化方法也被称为依赖性量化,例如,用于通用视频编码(vvc)或h.266中。量化后,系数的量化值称为量化电平或简称为“电平”。残差编码是一种用于将量化的n×m块的量化电平转换为编码位流的技术。5.提供了方法、系统和设备,用于改进现有的依赖性量化方案和残差编码中的语法元素的低效性。技术实现要素:6.提供了依赖性量化以及残差编码的工具和技术。7.根据一实施例(embodiment),提供了一种依赖性量化以及残差编码方法。该方法可以包括从编码位流获取视频数据块的当前量化电平;确定所选量化器,以对当前量化电平进行去量化,其中,如果当前量化电平是解码扫描顺序下所述块的第一非零量化电平,选择第一量化器作为当前量化电平的所选量化器,其中,如果当前量化电平不是解码扫描顺序下所述块的第一非零量化电平,基于当前量化电平的当前状态,选择第一量化器和第二量化器之一作为所选量化器,其中,当前状态是基于解码扫描顺序下块的前一量化电平的先前状态和前一量化电平的值的奇偶性确定的。该方法还可以包括通过所选量化器,对当前量化电平去量化,以产生当前去量化元素;以及通过解码器,利用解码扫描顺序下的当前去量化元素,对块进行重建。8.根据另一实施例,提供了一种依赖性量化以及残差编码装置,该装置可以包括:处理器;以及与处理器通信的非暂态计算机可读介质,非暂态计算机可读介质上编码有一组指令,该一组指令能够被处理器执行以实现多种功能。例如,该组指令可以被处理器执行,以从编码位流获取视频数据块的当前量化电平;并且确定所选量化器,以对当前量化电平进行去量化。如果当前量化电平是解码扫描顺序下块的第一非零量化电平,选择第一量化器作为当前量化电平的所选量化器。如果当前量化电平不是解码扫描顺序下块的第一非零量化电平,基于当前量化电平的当前状态,选择第一量化器和第二量化器之一作为所选量化器。当前状态可以是基于解码扫描顺序下块的前一量化电平的先前状态和前一量化电平的值的奇偶性确定的。该组指令还可以被处理器执行,以通过所选量化器,对当前量化电平去量化,以产生当前去量化元素;以及通过解码器,利用解码扫描顺序下的当前去量化元素,对块进行重建。9.根据又一实施例,提供了一种媒体编码子系统。该媒体编码子系统可以包括两个或更多个量化器,包括:第一量化器以及第二量化器;解码器。该解码器包括:处理器;以及与处理器通信的非暂态的计算机可读介质,非暂态计算机可读介质上编码有一组指令,该一组指令能够被处理器执行,以实现多种功能。例如,该组指令可以被处理器执行,以从编码位流获取视频数据块的当前量化电平;并且确定所选量化器,以对当前量化电平进行去量化。如果当前量化电平是解码扫描顺序下块的第一非零量化电平,选择第一量化器作为当前量化电平的所选量化器。如果当前量化电平不是解码扫描顺序下块的第一非零量化电平,基于当前量化电平的当前状态,选择第一量化器和第二量化器之一作为所选量化器。当前状态可以是基于解码扫描顺序下块的前一量化电平的先前状态和前一量化电平的值的奇偶性确定的。该组指令还可以被处理器执行,以通过所选量化器,对当前量化电平去量化,以产生当前去量化元素;以及利用解码扫描顺序下的当前去量化元素,对块进行重建。10.提到这些说明性的实施例不是为了约束或限制本发明,而是提供示例以帮助理解。其他的实施例在详细描述予以讨论,并在其中提供进一步的描述。附图说明11.通过参考说明书的其余部分和附图,可以实现对特定实施例的性质和优点的进一步理解,其中类似的附图标记用于指代类似的组件。在某些情况下,一个子标签与一个附图标记相关联,以表示多个类似组件中的一个。当提到一个附图标记而没有指定现有的子标签时,其意在指代所有这些多个类似的组件。12.图1是根据各种实施例的编码树单元(ctu)的示意图;13.图2是根据各种实施例的一个ctu分为多个编码单元(cu)的示意图;14.图3是根据各种实施例的由不同的量化器在依赖性量化中产生的两组量化电平输出的示意图;15.图4是根据各种实施例的用于量化器选择的状态机和相应状态表的示意图;16.图5是根据各种实施例的使用依赖性量化和残差编码对视频块进行编码的方法的流程图;17.图6是根据各种实施例的使用依赖性量化和残差编码对编码的视频数据解码的方法的流程图;18.图7是根据各种实施例的媒体编码系统的框图;19.图8是根据各种实施例的媒体解码系统的框图;以及20.图9是根据各种实施例的用于依赖性量化和残差编码的计算机系统的示意框图。具体实施方式21.各种实施例提供了依赖性量化以及残差编码的工具和技术。22.在一些实施例中,提供了一种依赖性量化以及残差编码的方法。这种方法可以包括从编码位流获取视频数据块的当前量化电平;确定所选量化器,以对当前量化电平进行去量化,其中,如果当前量化电平是解码扫描顺序下块的第一非零量化电平,选择第一量化器作为当前量化电平的所选量化器,其中,如果当前量化电平不是解码扫描顺序下块的第一非零量化电平,基于当前量化电平的当前状态,选择第一量化器和第二量化器之一作为所选量化器,其中,当前状态是基于解码扫描顺序下块的前一量化电平的先前状态和前一量化电平的值的奇偶性确定的。该方法还可以包括通过所选量化器,对当前量化电平去量化,以产生当前去量化元素;以及通过解码器,利用解码扫描顺序下的当前去量化元素,对块进行重建。23.在一些示例中,该方法还可以包括基于所述当前状态和所述当前量化电平的值的奇偶性,确定所述块的后一量化电平的后续状态。在进一步的示例中,所述第一量化器以及所述第二量化器可以包括以下之一:一个零量化器和一个非零量化器,两个零量化器,或者两个非零量化器。在一些示例中,所述编码位流可以表示二进制码元中相应的量化电平,其中,如果零量化器被使用,对表征所述量化电平是零值还是非零值的二进制码元进行编码,其中,如果非零量化器被使用,表征所述量化电平是零值还是非零值的所述二进制码元不被编码至所述编码位流中。24.在一些示例中,该方法还可以包括,对于所述第一非零量化电平,确定所述第一非零量化电平的扫描顺序位置。在一些示例中,该方法还可以包括确定所述解码扫描顺序下所述当前量化电平的所述当前状态,其中,确定所述当前量化电平的所述当前状态包括:生成四态模型;以及在对所述前一量化电平去量化期间,至少部分基于所述前一量化电平的先前状态确定所述当前量化电平的所述当前状态,其中,所述四态模型确定从所述先前状态到所述当前状态的状态转换。在进一步的示例中,所述状态转换可以是从第一状态、第二状态、第三状态或第四状态四者之一至相同或者不同状态的转换,所述相同或者不同状态是基于所述先前状态和所述前一量化电平的值的奇偶性确定的。在进一步的示例中,所述当前去量化元素可以是所述块的变换系数或预测残差二者之一的去量化近似。25.在一些实施例中,提供了一种依赖性量化以及残差编码装置。该装置可以包括处理器;以及与所述处理器通信的非暂态计算机可读介质,所述非暂态计算机可读介质上编码有一组指令,所述一组指令能够被所述处理器执行,用于实现多种功能。例如,该组指令可以被处理器执行,以从编码位流获取视频数据块的当前量化电平,并且确定所选量化器,以对所述当前量化电平进行去量化。如果所述当前量化电平是解码扫描顺序下所述块的第一非零量化电平,选择第一量化器作为所述当前量化电平的所述所选量化器。如果所述当前量化电平不是所述解码扫描顺序下所述块的所述第一非零量化电平,基于所述当前量化电平的当前状态,选择所述第一量化器和第二量化器之一作为所述所选量化器。所述当前状态可以是基于所述解码扫描顺序下所述块的前一量化电平的先前状态和所述前一量化电平的值的奇偶性确定的。该组指令还可以被处理器执行,以通过所述所选量化器,对所述当前量化电平去量化,以产生当前去量化元素;以及通过解码器,利用所述解码扫描顺序下的所述当前去量化元素,对所述块进行重建。26.在一些示例中,该组指令还可以被处理器执行,以进一步基于所述当前状态和所述当前量化电平的值的奇偶性,确定所述块的后一量化电平的后续状态。在一些示例中,所述第一量化器以及所述第二量化器可以包括以下之一:一个零量化器和一个非零量化器;两个零量化器,或者两个非零量化器。27.在一些示例中,该组指令还可以被处理器执行,以对于所述第一非零量化电平,确定所述第一非零量化电平的扫描顺序位置。在一些示例中,该组指令还可以被处理器执行,以进一步确定所述解码扫描顺序中所述当前量化电平的所述当前状态,其中,确定所述当前量化电平的所述当前状态包括:生成四态模型;以及在对所述前一量化电平去量化期间,至少部分基于所述前一量化电平的先前状态确定所述当前量化电平的所述当前状态,其中,所述四态模型确定从所述先前状态到所述当前状态的状态转换。在进一步的示例中,所述状态转换是从第一状态、第二状态、第三状态或第四状态四者之一至相同或者不同状态的转换,所述相同或者不同状态是基于所述先前状态和所述前一量化电平的值的奇偶性确定的。在进一步的示例中,所述当前去量化元素是所述块的变换系数或预测残差二者之一的去量化近似。28.在一些实施例中,提供了一种依赖性量化以及残差编码的系统。该媒体编码子系统可以包括两个或更多个量化器,包括:第一量化器以及第二量化器;解码器。该解码器可以包括:处理器;以及与所述处理器通信的非暂态的计算机可读介质,所述非暂态计算机可读介质上编码有一组指令,所述一组指令能够所述处理器执行以实现多种功能。例如,该组指令可以被处理器执行,以从编码位流获取视频数据块的当前量化电平;确定所选量化器,以对所述当前量化电平进行去量化。如果所述当前量化电平是解码扫描顺序下所述块的第一非零量化电平,选择第一量化器作为所述当前量化电平的所述所选量化器。如果所述当前量化电平不是所述解码扫描顺序下所述块的所述第一非零量化电平,基于所述当前量化电平的当前状态,选择所述第一量化器和第二量化器之一作为所述所选量化器。所述当前状态可以是基于所述解码扫描顺序下所述块的前一量化电平的先前状态和所述前一量化电平的值的奇偶性确定的。该组指令还可以被处理器所执行,以通过所述所选量化器,对所述当前量化电平去量化,以产生当前去量化元素;以及利用所述解码扫描顺序下的所述当前去量化元素,对所述块进行重建。29.在一些示例中,该组指令还可以被处理器执行,以进一步基于所述当前状态和所述当前量化电平的值的奇偶性确定所述块的后一量化电平的后续状态。在一些示例中,所述第一量化器以及所述第二量化器包括以下之一:一个零量化器和一个非零量化器,两个零量化器,或者两个非零量化器。30.在一些示例中,该组指令还可以被处理器执行,以进一步确定所述解码扫描顺序下所述当前量化电平的所述当前状态,其中,确定所述当前量化电平的所述当前状态包括:生成四态模型;以及在对所述前一量化电平去量化期间,至少部分基于所述前一量化电平的先前状态确定所述当前量化电平的所述当前状态,其中,所述四态模型确定从所述先前状态到所述当前状态的状态转换。在进一步的示例中,所述状态转换是从第一状态、第二状态、第三状态或第四状态四者之一至相同或者不同状态的转换,所述相同或者不同状态是基于所述先前状态和所述前一量化电平的值的奇偶性确定的。在进一步的示例中,所述当前去量化元素可以是所述块的变换系数或预测残差二者之一的去量化近似。205j,205i可以是ctu200的单个子划分的大小。cu205还可以比根ctu200和/或ctu200的子划分要小,如cus205a-205h以及205k-205l所示。在一些实施例中,cus205a-205m可以例如按z扫描顺序(按标记为205a-205m的顺序)被编码。应该注意的是,ctu200的各种cus205如图2所示,并且根据各种实施例可以对ctu200的划分做出变形。38.图3为在一个依赖性量化方案中由不同的量化器所生成的两组量化电平输出300的示意图。正如前面所描述的,量化是一个用于降低视频信号的动态范围,从而可以使用更少的信息来代表该视频信号的技术。如上所述,量化是一种用于减小变换或未经变换的视频信号的动态范围的技术。因此,可以用较少的位来表示视频信号。在量化之前,原始像素和预测帧像素之间的差被称为“残差”或者“预测残差”。特定位置的变换的视频信号和/或预测残差可以被称为“系数”。为了便于解释,关于系数提供了许多示例。应当理解的是,在其他实施例中,相似的技术可以适当地应用于预测残差,例如,利用变换跳过残差编码(tsrc)的实施例。在量化之后,系数的量化值,或者在变换被跳过的示例中,预测残差的量化值被称作量化电平或者简称为“电平”。39.如上所述,量化包括系数除以量化步长,并且随后对结果量化电平进行舍入。反向量化包括量化电平乘以量化步长。这样的量化处理被称为标准量化。通常,一个块(例如,ctu105,200和/或ctu105,200的子划分)中的所有系数的量化都可以独立执行。40.例如,对于一个n×m大小的块,特定的编码扫描顺序可以被用于将块的二维系数转换为一维系数序列,以进行系数量化和编码。典型地,扫描从块的左上角开始,结束于块的右下角,或结束于右下角方向上的最后一个非零系数电平。这也称作为z-扫描顺序。块内系数的量化可以利用扫描顺序信息(例如,它可能取决于扫描顺序下的先前量化电平的状态)。41.在一些实施例中,为了改进编码效率,多于一个量化(例如,两个量化器)可能被用于量化。量化器可以称为执行量化的设备和/或执行量化的设备的程序功能。对于一个给定的系数确定使用哪个量化器取决于编码扫描顺序下的当前系数的先前信息。这被称为依赖性量化。42.在一些传统的示例中,可以在依赖性量化方案中使用两个量化器,在所述依赖性量化方案中,由量化器输出的两组量化电平可以包括零电平。换句话说,两个量化器可以为零量化器。因此,如下面将进一步详细说明的,在残差编码过程中,可以对sig_coeff_flag编码。对于每个电平,sig_coeff_flag用于指示电平是零还是非零。即使在非零量化器的情况下,sig_coeff_flag也可以被编码。43.如在图3中所描述的,量化步长可以用2来表示,其可以由嵌入在位流中的量化因子决定。两组量化电平的输出300被提供。第一组量化电平由第一量化器q0输出。在不同的实施例中,第一量化器q0被设置为产生一个值,该值可能既包括0电平,又包括非零电平。换句话说,量化器被配置为既有零量化电平,又有非零量化电平。因此,在一些示例中,q0可以为一个零量化器。第二组量化电平由q1输出,其不可能将系数量化为零。因此,在一些示例中,q1可能为非零量化器。44.尽管用于量化给定系数的量化器可以被显式通知,这样做的总开销可能会降低编码效率。因此,可以利用选择量化器算法。在一个示例中,提出了四态模型被提出。45.图4是根据各种实施例的、用于选择量化器的状态机405和相应的状态表410的示意图。在多种实施例中,系数(或预测残差)的先前量化电平的奇偶性用于决定状态转换,因此量化器被用于量化当前系数。例如,在一些实施例中,在两个量化器q0和q1之间的切换可以通过具有四种状态:0,1,2,以及3的状态机所确定。当前状态可以由先前系数(或预测残差)所生成的量化电平的奇偶性以及编码扫描顺序(例如编码/解码扫描顺序)下的先前状态唯一确定。在一些示例中,状态0和状态1可以对应于选择第一量化器q0,而状态2和状态3对应于选择第二量化器q1。46.在一些实施例中,在编码端开始量化时,或在块的解码端反向量化时,状态通常被设置为等于一个初始状态,例如0。系数按编码扫描顺序(例如,按照对系数进行熵解码一样的顺序)重建。在当前系数被重建之后,状态如图4所示地被更新,其中k表示按编码扫描顺序的特定位置的电平值。注意,下一状态仅仅取决于当前状态以及当前电平k的奇偶性(k&1),k代表当前系数电平的值。因此,状态转换过程可以被写成:47.nextstate=statetranstable[state][k&1]ꢀꢀꢀ(式1)[0048]其中,statetranstable代表状态表410,且在二进制补码运算中,运算符“&”指定逐位“与”运算符。或者,在没有查找表的情况下,状态转换也可以指定如下:[0049]nextstate=(32040>>((state<<2) ((k&1)<<1)))&3ꢀꢀꢀ(式2)[0050]其中,16位数值32040指定状态转换表,并且运算符“《《”以及“》》”代表逐位位移运算。[0051]因此,状态唯一地指定用于量化当前系数的标量量化器。例如,如果当前系数的状态等于0或者1,标量量化器q0被使用。否则,如果状态等于2或者3,标量量化器q1被使用。在传统的通用视频编码(vvc)中,依赖性量化仅允许用于常规残差编码(rrc),其意味着依赖性量化应用于预测残差的变换系数,以及标准量化应用于预测残差。根据一些实施例,依赖性量化既可以用于rrc又可以用于变换跳过残差编码,在这种情况下,量化可以用于预测残差。[0052]在视频编码中,残差编码用于将量化电平转换为位流。在量化之后,对于n×m大小的块存在着n×m个量化电平。这些n×m个电平可以为零值或者非零值,其可以进一步地被二值化至二进制码元。基于上下文模型的二进制算术编码还可以将码元压缩为位。[0053]对于rrc块,最后一个非零电平的位置被定义为按编码扫描顺序下的最后一个非零电平的位置。最后一个非零电平的二维坐标(last_sig_coeff_x和last_sig_coeff_y)被首先编码。rrc块可以由若干个预定义的子块(例如,cu或者ctu的子划分)组成。具有最后一个非零电平的最后一个非零子块根据编码扫描顺序,由(last_sig_coeff_x和last_sig_coeff_y)导出。rrc按反向扫描顺序,从最后一个非零的子块开始,逐子块进行编码。在每个子块内,rrc按反向编码扫描顺序,用以下语法元素对每个位置的电平进行编码。[0054]对于每个电平,可将名为sig_coeff_flag的标志编码到位流中。sig_coeff_flag指示该电平是零(在这种情况下sig_coeff_flag被设置为0)还是非零(在这种情况下sig_coeff_flag设置为1)。如果电平是非零,第一abs_level_gtx_flag[0]将被编码,以指示绝对电平是1(设置为0)还是大于1(设置为1)。如果绝对电平大于1,par_level_flag将被编码,以指示电平是奇数(设置为1)还是偶数(设置为0)。使用abs_level_gtx_flag[0]和par_level_flag,可以确定电平是等于2还是3。另一个语法元素,第二abs_level_gtx_flag[1]也被编码,以指示绝对电平比3大(设置为1)或者不大于3(设置为0)。如果电平大于3,可以对两个语法元素abs_remainder和dec_abs_level进行编码。此外,块内的每个电平的符号也将被编码,以充分表示量化电平。[0055]因此,在各种实施例中,视频编码器,例如编码器,可以被配置为更高效地执行残差编码。利用零量化器和非零量化器,可以使sig_coeff_flag的编码更有效率。例如,在各种实施例中,当使用非零量化器q1时,可以完全跳过sig_coeff_flag的编码。当使用非零量化器时,从非零量化器量化的所有电平将具有大于或等于1的绝对值。因此,对于非零量化器的所有量化电平输出,sig_coeff_flag总是1。因此,当非零量化器产生一个电平时,没有必要对sig_coeff_flag进行编码。非零量化器的残差编码的其他语法元素可以与之前描述保持相同。类似地,零量化器的量化电平的残差编码可以保持不变,sig_coeff_flag仍然被编码,因为零和非零电平都可以通过零量化器量化产生。[0056]在各种实施例中,上述对于依赖性量化和残差编码方案的修改可以在一个或多个不同的视频编码标准中采用,并且不限于单个编码标准。例如,非零量化器和相应的残差编码的用法可用于例如且不限于高级视频编码(avc)、高效视频编码(hevc)和/或基于vvc的编解码器中,或进一步适应其他类型的合适编解码器设计。[0057]图5是根据各种实施例的用于依赖性量化和残差编码的方法500的流程图。该方法500起始于505,接收视频数据块。如前所述,在一些实施例中,视频数据块可以包括但不限于ctu、ctu的子划分、或cu。该视频数据块可以进一步包括变换和/或非变换的视频数据。因此,在一些实施例中,在510处,方法500继续,变换视频数据块以产生变换系数块。在一个示例中,该变换可以是离散余弦变换。在一些实施例中,该块可以被变换,而在其他实施例中,视频数据块可以不被变换,而是直接量化,如下文所述。[0058]在判决框515处,方法500继续,判断扫描顺序下的第一非零量化电平是否已经产生。如果在框515处确定扫描顺序下的第一非零量化电平尚未产生,则方法500可以继续520,确定当前系数是否产生编码扫描顺序下的第一非零量化电平。如果没有产生第一非零量化电平,则方法500继续框515,检查是否已经为下一个系数产生了第一非零量化电平。在一些示例中,如果对于当前的系数确定扫描顺序下的第一个非零电平没有(并且尚未被)产生,则当前系数的量化可以被跳过,并且对于后续系数执行非零电平的检查。[0059]如果在520处确定当前系数产生第一非零量化电平,则在525处可以使用第一量化器对当前系数进行量化。如前所述,第一量化器可以是能够通过标量量化将系数量化至非零电平的非零量化器。[0060]在一些实施例中,如果确定第一非零量化电平已经被产生,则方法500可以继续530,为当前系数选择量化器。在各种实施例中,量化器可以被选择为第一量化器或第二量化器之一。在一些示例中,如上所述,第一量化器可以是非零量化器。例如,零量化器可以是被配置为将系数量化为零值的量化器。因此,非零量化器可以是不将系数量化为0的量化器。非零量化器不输出零量化电平。[0061]在一些实施例中,为当前系数选择量化器可以至少部分地基于当前系数的当前状态。在一些示例中,当前状态可以继而基于先前系数的状态(例如,先前状态)来确定。例如,在一些实施例中,可以采用四态模型,如之前关于图4描述的那样。在一些实施例中,在先前系数的量化期间,可以基于先前系数量化期间的先前状态确定当前系数的当前状态。在一些实施例中,可以至少部分地基于先前状态和先前电平k的奇偶性(k&1)(例如,从先前系数产生的量化电平是奇数还是偶数值)来确定状态转换,或者从先前状态到当前状态到后续状态的转换。因此,在535处,用与当前状态相关的量化器对该系数进行量化。[0062]同理,在540处,方法500还包括确定后续系数的后续状态。如同对当前状态的确定,对后续系数的后续状态的确定可以至少部分地基于当前状态。在一些进一步的示例中,可以根据当前状态和当前电平的奇偶性(k&1)来确定至后续状态的状态转换。[0063]在判决框545处,方法500进一步包括确定是否使用了零量化器来量化当前系数。一旦系数已经被量化,编码器可以将量化电平编码为位流形式。如前所述,在一些实施例中,量化电平被二进制化为二进制码元。因此,位流可以包括一个或多个语法元素来编码量化电平的值。在一些实施例中,该一个或多个语法元素可以包括表示值是零还是非零(例如,0或大于0)的标志(例如,二进码元)。在550处,如果确定不使用零量化器,方法500可以确定使用残差编码方案,该方案不对指示电平是零还是非零的二进码元进行编码。例如,在一些实施例中,可以不对指示电平为零或非零的标志/二进码元进行编码,并且残差编码方案可以不包括指示零或非零电平的语法元素。在555处,如果确定使用零量化器,方法500可以确定对指示电平为零或非零的二进码元进行编码。[0064]在一些示例中,方法500还可以包括在扫描顺序下处理后续系数(或者备选地预测残差),如上所述,直到扫描顺序中的所有系数都已被编码。[0065]图6是根据各种实施例的用于解码使用依赖性量化和残差编码进行编码的视频数据的方法600的流程图。该方法600起始于605,访问视频块的量化电平。如前所述,量化电平可以通过残差编码转换为位流。因此,编码的视频数据的位流可以包括量化电平的序列。在一些实施例中,视频块的量化电平因此可以通过提取视频块的每个元素的相应的量化电平来访问。在一些示例中,视频块的元素可能取决于是利用了rrc还是应用tsrc,在rrc的情况下,对预测残差应用变换以产生系数,在tsrc的情况下,不应用变换。因此,在rrc的情况下,去量化的元素可以是一个系数,而在tsrc编码的位流的情况下,去量化的元素可以是预测残差的去量化近似(例如,预测残差的去量化版本,其已经通过对量化的预测残差进行去量化得到了恢复)。因此,每个元素可以进一步对应于视频块在编码扫描顺序(例如,编码/解码扫描顺序)中的相应位置。相应地,在610处,方法600包括处理每个元素的量化电平,从而针对视频块的每个相应的元素,可以从编码视频数据的位流中提取相应的量化电平。[0066]此外,可以选择一个量化器来对量化电平进行去量化。在判决框615处,方法600继续,确定当前量化电平是否是第一非零量化电平。如果确定它是第一非零量化电平,在620处,可以确定第一非零量化电平的扫描顺序位置和相应的当前状态。在一些示例中,在去量化期间的第一非零量化电平可以对应于在量化期间的最后非零电平的位置。因此,在一些示例中,二维坐标,last_sig_coeff_x和last_sig_coeff_y,可用于确定第一个非零量化电平的扫描顺序位置。在一些进一步的示例中,第一非零量化电平的当前状态可以被设置为“默认”或“开始”状态。该方法600可以继续625,基于量化电平的当前状态选择量化器。在一些示例中,在第一非零电平的去量化期间,编码扫描顺序中的当前位置的量化电平可以处于第一状态(或设置为第一状态)。在第一状态下,可以选择一个第一量化器来对第一非零电平进行去量化。因此,在一些示例中,第一状态可以是“默认”或“开始”状态。[0067]如果确定当前量化电平不是第一非零电平,方法600可以继续625,基于量化电平的当前状态选择量化器。如前所述,在一些实施例中,可以根据当前量化电平的当前状态来选择量化器。当前状态可以在先前量化电平的去量化过程中确定。例如,当前状态可以根据先前状态和先前量化电平的值的奇偶性来确定。在一些示例中,当前状态的确定可以基于状态转换表,例如图4的状态表410。[0068]在630处,方法600继续,使用所选择的量化器对当前量化电平进行去量化。在635处,方法600继续,基于当前状态和当前量化电平的值的奇偶性来确定后续电平的状态。如前所述,在一些示例中,可以根据图4的状态表410更新状态。在确定后续状态之后,方法600可以继续,按编码扫描顺序处理后续量化电平,如上所述,直到所有量化电平都被去量化。[0069]方法600还包括,在640处,基于去量化元素重建视频块。如前所述,去量化元素可以是系数的去量化近似(例如,通过对量化系数/变换的预测残差进行去量化所恢复的系数的去量化版本),或者在一些示例中,在使用变换跳过残差编码的情况下(例如,预测残差在编码侧量化之前没有被变换),预测残差的去量化近似。在每种情况下,量化的系数可以指经过量化后的系数,且随后再进行去量化。类似地,量化的预测残差可以指经过量化后的预测残差,并随后进行去量化。在不同的示例中,去量化的元素可能与原始元素不同(例如,原始系数可能与去量化的“量化系数”不同,类似地,原始预测残差可能与去量化的“量化预测残差”不同)。[0070]依赖性量化和残差编码的过程可以由媒体编码系统执行,该系统可以包括编码器/解码器。图7是根据各种实施例的媒体编码系统700的框图。媒体编码系统700可以包括变换处理逻辑705、量化单元710、残差编码逻辑730、去量化和反变换逻辑735以及编码模式选择逻辑740。量化单元710可进一步包括量化选择逻辑715、第一量化器720和第二量化器725。编码模式选择逻辑740可包括运动估计逻辑745、运动补偿逻辑750和预测逻辑755。应该注意的是,媒体编码系统700的各种组件在图7中被示意性地示出,并且根据各种实施例可以对媒体编码系统700进行修改。[0071]在各种实施例中,媒体编码系统700可以在任何合适的硬件上实现,例如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、分立逻辑、软件、硬件或软件和硬件的组合。用软件实现的功能和逻辑可以存储在相应的非临时性计算机可读介质和/或存储设备中。这一点将在下文关于图9更详细地讨论。[0072]在各种实施例中,视频数据可以包括视频数据的图像(例如,帧),也被称为块或宏块。视频数据可以被提供给编码模式选择逻辑740,其可以被配置为产生预测的图像(例如,预测的块)。在一些实施例中,可以从帧的实际后续图像中减去预测的图像以产生残差帧(例如,残差块),并且变换处理逻辑705可以变换残差块以从残差帧产生变换视频数据块。变换视频数据块可以被提供给量化单元710。在其他示例中,视频数据可以直接提供给量化单元710,而不经过变换。如前所述,在一些示例中,一个块可以包括ctu、ctu的子划分或cu。[0073]量化单元710可以被配置为对变换的或未变换的视频数据进行量化以产生量化电平的块。在一些示例中,量化单元710可以产生量化电平的组。在一些实施例中,量化块可以由残差编码逻辑730处理。残差编码逻辑730可以被配置为将量化块的数据转换为位流。例如,在一些实施例中,块中的数据可以被二进制化为二进制码元,如之前关于图3-6描述的。[0074]在一些实施例中,量化块可以进一步被提供给去量化和反变换逻辑735以进一步处理。例如,在一些实施例中,去量化和反变换逻辑可被用于生成重建的残差块。重建的残差块可以被添加到下一个预测帧,并用于运动估计逻辑745、运动补偿逻辑750和预测逻辑755以产生预测帧。[0075]图8是根据各种实施例的媒体解码系统800的框图。媒体解码系统800可以包括熵解码逻辑805、去量化单元810、去量化选择逻辑815、第一量化器820、第二量化器825、反变换逻辑830、编码模式选择逻辑835、运动估计逻辑840、运动补偿逻辑845和预测逻辑850。应该注意的是,媒体解码系统800的各种组件在图8中被示意性地示出,并且根据各种实施例可以对媒体编码系统800进行修改。[0076]在各种实施例中,像媒体编码系统700一样,媒体解码系统800可以在任何合适的硬件上实现,例如一个或多个微处理器、dsp、asic、fpga、分立逻辑、软件、硬件或软件和硬件的组合。在各种实施例中,编码的视频数据可以包括编码的视频块的位流。相应地,熵解码逻辑805可以被配置为解码视频数据的编码位流。具体而言,可以对编码的位流进行解码,并且从编码的位流中提取量化的元素用于进一步处理。[0077]在一些示例中,量化元素然后可以由去量化单元810使用第一量化器820或第二量化器825中的一个进行反量化(或者去量化)。如前所述,第一或第二量化器820、825的选择可根据去量化选择逻辑815确定。在各种实施例中,去量化选择逻辑可以根据当前量化元素(如前所述,其可以是系数或预测残差)的当前状态以及量化元素的值的奇偶性来选择量化器。在一些示例中,当前状态可根据状态转换表确定,如上文有关图4描述的。在一些示例中,去量化的元素可进一步通过反变换逻辑830进行反变换。如前所述,在一些示例中,去量化的元素可以是通过变换预测残差物产生的系数的去量化近似。相应地,反变换逻辑830可以反变换由去量化单元810产生的系数。在一些示例中,对于跳过变换的块,反变换模块219不应用于这些块。[0078]在进一步的示例中,由去量化单元810产生的残差块可以被添加到由编码模式选择逻辑835产生的相应的预测块,以产生重构块。然后,重构块可以提供给编码模式选择逻辑835,以产生一个后续的预测块。因此,由去量化单元810产生的去量化元素可用于产生重构块,并可产生解码的视频。如上文关于图7讨论的,预测块可以根据编码模式和块的参数,以及根据运动估计逻辑840、运动补偿逻辑845和预测逻辑850生成。[0079]图9是根据各种实施例的用于依赖性量化和残差编码的计算机系统900的示意性框图。图9提供了计算机系统900的一个实施例的示意图,例如媒体编码系统700、媒体解码系统800或其子系统,例如编码器、解码器、变换处理逻辑、量化单元、残差编码逻辑、编码模式选择逻辑、去量化和反变换逻辑或其组合,其可以执行本文所述的各种其他实施例所提供的方法。应该注意的是,图9只提供了各种组件的概括示意,其中每个组件中的一个或多个可以酌情利用。因此,图9大致示意了各个系统元素如何以相对分离或相对更集成的方式实施。[0080]计算机系统900包括多个硬件元素,这些硬件元素可以通过总线905进行电耦接(或者可以酌情以其他方式进行通信)。硬件元件可以包括一个或多个处理器910,包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(例如微处理器、数字信号处理芯片、图形加速处理器和微控制器);一个或多个输入设备915,其包括但不限于鼠标、键盘、一个或多个传感器和/或类似物;以及一个或多个输出设备920,其可以包括但不限于显示设备和/或类似物。[0081]计算机系统900还可以包括一个或多个存储设备925(和/或与存储设备925通信),存储设备925可以包括但不限于本地和/或网络可访问的存储,和/或可以包括但不限于磁盘驱动器、驱动器阵列、光学存储设备、诸如随机存取存储器(“ram”)和/或只读存储器(“rom”)的固态存储设备,其可以是可编程的、可闪速更新的,等等。这样的存储设备可以被配置为实现任何适当的数据存储,包括但不限于各种文件系统、数据库结构和/或类似物。[0082]计算机系统900还可以包括通信子系统930,其可以包括但不限于调制解调器、网卡(无线或有线)、红外通信设备、无线通信设备和/或芯片组(例如bluetoothtm设备、802.11设备、wifi设备、wimax设备、wwan设备、z-wave设备、zigbee设备、蜂窝通信设施等)和/或如前所述的lp无线设备。通信子系统930可以允许数据与网络(如下面描述的网络,仅举一例)、与其他计算机或硬件系统、数据中心或不同的云平台之间和/或与本文描述的任何其他设备进行交换。在许多实施例中,计算机系统900进一步包括工作存储器935,其可以包括ram或rom设备,如上所述。[0083]计算机系统900还可以包括软件元素,显示为当前位于工作存储器935内,包括操作系统940、设备驱动器、可执行库和/或其他代码,例如一个或多个应用程序945,其可以包括由各种实施例提供的计算机程序,和/或可以被设计为实现由其他实施例提供的方法,和/或配置系统,如在此描述的。仅仅作为示例,关于上述方法所描述的一个或多个过程可以作为可由计算机(和/或计算机内的处理器)执行的代码和/或指令来实现;那么在一个方面,这种代码和/或指令可以用于配置和/或适配通用计算机(或其他设备)以根据所述方法执行一个或多个操作。[0084]这些指令和/或代码的集合可以被编码和/或存储在非暂时性计算机可读存储介质上,例如上述的存储设备925。在某些情况下,该存储介质可被纳入计算机系统内,例如系统900。在其他实施例中,存储介质可以与计算机系统分开(即,可移动介质,如光盘等),和/或在安装包中提供,这样,存储介质可以用来用存储在其上的指令/代码对通用计算机进行编程、配置和/或适配。这些指令可以采取可执行代码的形式,该代码可由计算机系统900执行,并且/或者可以采取源码和/或可安装代码的形式,该代码在计算机系统900上编译和/或安装时(例如,使用各种普遍可用的编译器、安装程序、压缩/解压缩工具等中的任何一种),则采取可执行代码的形式。[0085]对于本领域的技术人员来说,显而易见的是,可以根据具体的要求做出实质性的变化。例如,也可以使用定制的硬件(例如可编程逻辑控制器、单板计算机、fpga、asic和soc),和/或特定元素可以用硬件、软件(包括便携式软件,例如小程序等)或两者实现。此外,可以采用与其他计算设备的连接,例如网络输入/输出设备。[0086]如上所述,在一个方面,一些实施例可以采用计算机或硬件系统(例如计算机系统900)来执行根据本发明的各种实施例的方法。根据一组实施例,此类方法的一些或全部程序由计算机系统900响应于处理器910执行包含在工作存储器935中的一个或多个指令(其可能被纳入操作系统940和/或其他代码,例如应用程序945)的一个或多个序列而执行。这样的指令可以从另一个计算机可读介质,例如一个或多个存储设备925中读入工作存储器935。仅仅作为示例,执行工作存储器935中包含的指令序列可能导致处理器910执行本文所述方法的一个或多个程序。[0087]本文使用的术语“机器可读介质”和“计算机可读介质”是指参与提供导致机器以特定方式操作的数据的任何介质。在使用计算机系统900实现的一个实施方案中,各种计算机可读介质可能参与向处理器910提供指令/代码以供执行,并且/或者可能被用来存储和/或携带这种指令/代码(例如,作为信号)。在许多实施方案中,计算机可读介质是一种非暂时性的、物理的和/或有形的存储介质。在一些实施方案中,计算机可读介质可采取多种形式,包括但不限于非易失性介质、易失性介质或类似形式。非易失性介质包括,例如,光学和/或磁性磁盘,如存储设备925。易失性介质包括,但不限于,动态存储器,如工作存储器935。在一些替代实施例中,计算机可读介质可以采取传输介质的形式,其中包括但不限于同轴电缆、铜线和光纤,包括构成总线905的导线,以及通信子系统930的各种组件(和/或通信子系统930提供与其他设备通信的介质)。在另一组实施例中,传输介质也可以采取波的形式(包括但不限于无线电波、声波和/或光波,例如在无线电波和红外线数据通信期间产生的那些)。[0088]物理和/或有形的计算机可读介质的常见形式包括例如软盘、软盘、硬盘、磁带或任何其他磁性介质、cd-rom、任何其他光学介质、打孔卡、纸带、任何其他具有孔的图案的物理介质、ram、prom、eprom、flash-eprom、任何其他存储芯片或盒、下文所述的载波或计算机可以从中读取指令和/或代码的任何其他介质。[0089]各种形式的计算机可读介质可用于将一个或多个指令的一个或更多序列携带到处理器910以供执行。仅作为示例,指令最初可以被携带在远程计算机的磁盘和/或光盘上。远程计算机可以将指令加载到其动态存储器中,并通过传输介质将指令作为信号发送,以由计算机系统900接收和/或执行。根据本发明的各种实施例,这些信号可以是电磁信号、声信号、光信号和/或类似信号的形式,都是可以在其上编码指令的载波的示例。[0090]通信子系统930(和/或其组件)通常接收信号,然后总线905可以将信号(和/或者信号所携带的数据、指令等)传送到工作存储器935,处理器910从工作存储器936检索并执行指令。由工作存储器935接收的指令可以可选地在处理器910执行之前或之后存储在存储设备925上。[0091]虽然已经针对实施例描述了一些特征和方面,但本领域技术人员将认识到,许多修改是可能的。例如,本文描述的方法和过程可以使用硬件组件、软件组件和/或其任何组合来实现。此外,尽管为了便于描述,可以针对特定的结构和/或功能组件来描述本文所描述的各种方法和过程,但是由各种实施例提供的方法不限于任何特定的结构或功能架构,而是可以在任何合适的硬件、固件和/或软件配置上实现。类似地,虽然一些功能被赋予一个或多个系统组件,但除非上下文另有规定,否则根据几个实施例,该功能可以分布在各种其他系统组件之间。[0092]此外,尽管为了便于描述,本文所述方法和过程的过程以特定顺序进行了描述,但除非上下文另有规定,否则可以根据各种实施例对各种过程进行重新排序、添加和/或省略。此外,关于一种方法或过程描述的过程可以结合在其他描述的方法或过程中;同样,根据特定结构体系结构和/或关于一个系统描述的系统组件可以被组织在替代结构体系结构中和/或合并在其他描述的系统中。因此,尽管为了便于描述和说明这些实施例的各方面而描述了具有或不具有某些特征的各种实施例,但是本文中关于特定实施例描述的各种组件和/或特征可以在其他描述的实施例中被替换、添加和/或减去,除非上下文另有规定。因此,尽管上面描述了几个实施例,但是应当理解,本发明旨在覆盖在以下权利要求的范围内的所有修改和等效物。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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