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

用于预测残差代码化的向量量化的制作方法

2022-06-08 23:35:58 来源:中国专利 TAG:

用于预测残差代码化的向量量化
1.相关申请的交叉引用
2.本技术要求于2019年11月26日提交的美国临时专利申请序列号62/940,271的优先权和权益,其全部公开内容通过引用并入本文。


背景技术:

3.数字视频流可以使用一系列帧或静止图像来表示视频。数字视频可以被用于各种应用,包括例如视频会议、高清视频娱乐、视频广告或用户生成的视频的共享。数字视频流可以包含大量数据,并且消耗用于处理、发送或存储视频数据的计算设备的大量计算或通信资源。各种方法已经被提出以减少视频流中的数据量,包括编码或解码技术。


技术实现要素:

4.第一方面是一种用于解码视频的当前块的装置。该装置包括存储器和处理器。处理器被配置为执行存储在存储器中的指令以:从压缩比特流解码指示当前块的残差块是否使用向量量化(vq)被编码的标记;响应于标记指示残差块使用vq被编码,执行指令以:解码指示码本中的条目的参数;以及使用条目解码残差块;响应于标记指示残差块不使用vq被编码,执行指令以:基于指示当前块是否使用变换跳过被编码的跳过标记来解码残差块;以及使用残差块来重构当前块。
5.第二方面是一种用于使用向量量化(vq)编码当前块的装置。该装置包括存储器和处理器。处理器被配置为执行存储在存储器中的指令以:确定当前块是否不使用变换跳过模式被编码;以及响应于确定当前块不使用变换跳过模式被编码,执行指令以:获得当前块的残差块;使用残差块选择vq增益索引和vq形状索引;在压缩比特流中编码vq增益索引;以及在压缩比特流中编码vq形状索引。
6.第三方面是一种使用向量量化(vq)编码当前块的方法。该方法包括:确定当前块不使用变换跳过模式被编码;获得当前块的残差块;使用残差块选择vq增益索引和vq形状索引;在压缩比特流中编码vq增益索引;以及在压缩比特流中编码vq形状索引。
7.本公开的这些和其他方面在实现方式、所附权利要求和附图的以下详细描述中公开。
附图说明
8.本文的描述参照了下面描述的附图,其中贯穿若干视图,相同的附图标记指代相同的部分。
9.图1是视频编码和解码系统的示例的示意图。
10.图2是可以实施发送站或接收站的计算设备的示例的框图。
11.图3是要被编码并且随后解码的视频流的示例的图。
12.图4是编码器的示例的框图。
13.图5是解码器的示例的框图。
14.图6是由残差块表现出的特征的示例的图。
15.图7是根据本公开的实现方式的码本的示例的图。
16.图8是根据本公开的实现方式的使用向量量化的预测残差编码级的功能性的图。
17.图9是根据本公开的实现方式的当在编码器中使用向量量化时用于比特流句法代码化的技术的流程图的图。
18.图10是根据本公开的实现方式的当在编码器中使用向量量化时用于比特流句法代码化的技术的流程图的图。
19.图11是根据本公开的实现方式的当在编码器中使用向量量化时用于比特流句法代码化的技术的流程图的图。
20.图12是根据本公开的实现方式的用于解码当前块的技术的流程图的图。
21.图13是根据本公开的实现方式的用于使用向量量化编码当前块的技术的流程图的图。
具体实施方式
22.视频压缩方案可以包括将相应的图像或帧分解为更小的部分,诸如块,并且使用技术来生成编码比特流以限制针对其相应块所包括的信息。编码比特流可以被解码,以通过有限的信息重新创建源图像。例如,视频压缩方案可以包括将来自像素域的视频流的当前块的预测残差(即,残差块)变换为频域中的变换块的变换系数。变换系数被量化,并且熵代码化为编码比特流。解码器使用编码后的变换系数对编码比特流进行解码或解压缩,以准备视频流以供查看或进一步处理。为了重组预测残差,解码器可以接收量化的变换系数,对变换系数进行解量化,并且对解量化的变换系数进行逆变换。
23.可能有许多不同的变换类型和变换大小可用于变换给定块的预测残差。可能有多达16种甚至更多可用的变换类型,诸如离散余弦变换(dct)或非对称离散正弦变换(adst)。可能有不同数量的可用变换大小,诸如基于表示预测残差的块的大小。例如,表示预测残差的8x8块可以使用一个8x8变换块或四个4x4变换块来变换。
24.为了实现最佳压缩效率,典型的编码器尝试许多变换类型和变换大小,并且选择变换类型和变换大小组合以用于变换预测残差,从而产生最低的率失真成本。该过程被称为变换搜索。然而,变换搜索可能是非常耗时的过程,因为变换类型和大小的数量可能很大。进一步地,在许多情况下,编码器可以针对相同的预测残差多次重复变换搜索过程(例如其中两种不同的预测模式导致相同的预测,因此产生相同的预测残差)。在典型的代码化过程中,在预测残差被变换之后。
25.本公开的实现方式通过省略将预测残差变换到频域来解决诸如这些问题。因此,与预测残差的变换(在编码器中)和逆变换(在解码器中)相关的代码化步骤可以被省略(即,绕过)。
26.如下面进一步描述的,当前块可以使用帧内预测或帧间预测来预测。由帧内预测产生的一些预测残差(即,预测信号)可以表现出某些特征。由于变换系数中的高频,对这种预测残差(即,表现出某些特征的预测残差)的变换系数进行编码往往需要更高的比特率。
27.图6是由残差块表现出的特征的示例600的图。示例600包括说明性预测残差块602至612。预测残差块602至612是4x4残差块的示例。然而,预测残差块可以是任何大小。预测
残差块602至604是表现出局部特征的预测残差的示例。像素值的对比度指示局部特征。预测残差块606至608是表现出非平滑特征的预测残差的示例。预测残差块610至612是表现出对角线图案特征的预测残差的示例。在这种情况下,对角线图案意味着东北-西南对角线(例如预测残差块610)或西北-东南对角线(例如预测残差块611)。
28.根据本公开的实现方式,编码器可以在码本(即,查找表)中查找与预测残差最接近的匹配,而不是将预测残差变换到频域。码本可以包括原型预测残差。原型预测残差在本文中可以被称为码字或码向量。编码器可以对压缩比特流中的最接近匹配的索引进行编码。因此,预测块的近似可以(经由索引)在压缩比特流中指示。因此,预测残差据说被量化为最接近的匹配码向量。解码器可以对索引进行解码,在码本中查找原型预测残差,并且将指示的原型预测残差重组为预测残差。如下面进一步描述的,查找表可以是多于一个查找表。例如,查找表可以包括形状码本和增益码本。还如下面进一步描述的,索引可以是多于一个索引。例如,索引可以包括形状索引(即,形状码本中的条目的指示符)和增益索引(即,增益码本中的条目的指示符)。
29.通过使用预测残差的码本,变换代码化可以被绕过。因此,比特率可以被降低,尤其是针对表现出高频的那些预测残差,否则将需要高比特率来代码化变换系数。附加地,与涉及变换系数的逆变换的解码过程相比,解码过程可以更快。
30.用于视频压缩中的向量量化的技术的进一步细节在本文中首先参照它们可以被实施的系统来描述,如图1至6所示。
31.图1是视频编码和解码系统100的示例的示意图。例如,发送站102可以是具有诸如图2所描述的硬件的内部配置的计算机。然而,发送站102的其他实现方式也是可能的。例如,发送站102的处理可以被分布在多个设备之中。
32.网络104可以连接发送站102和接收站106,以对视频流进行编码和解码。具体地,视频流可以在发送站102中被编码,并且编码的视频流可以在接收站106中被解码。网络104可以是例如互联网。在该示例中,网络104还可以是局域网(lan)、广域网(wan)、虚拟私有网络(vpn)、蜂窝电话网络或在本示例中将视频流从发送站102传送给接收站106的任何其他装置。
33.在一个示例中,接收站106可以是具有诸如图2所描述的硬件的内部配置的计算机。然而,接收站106的其他合适的实现方式也是可能的。例如,接收站106的处理可以被分布在多个设备之中。
34.视频编码和解码系统100的其他实现方式也是可能的。例如,实现方式可以省略网络104。在另一实现方式中,视频流可以被编码,然后存储以在稍后的时间发送给接收站106或具有存储器的任何其他设备。在一个实现方式中,接收站106(例如经由网络104、计算机总线和/或某种通信路径)接收编码的视频流,并且存储该视频流以用于稍后的解码。在示例实现方式中,实时传输协议(rtp)被用于通过网络104发送编码视频。在另一实现方式中,除rtp之外的传输协议可以被使用,(例如基于超文本传送协议(基于http)的视频流协议)。
35.例如,当在视频会议系统中使用时,如下所述,发送站102和/或接收站106可以包括对视频流进行编码和解码的能力。例如,接收站106可以是视频会议参与者,其从视频会议服务器(例如发送站102)接收编码的视频比特流以解码和查看,并且继而将他或她自己的视频比特流编码并发送给视频会议服务器以供其他参与者解码和查看。
36.在一些实现方式中,视频编码和解码系统100可以替代地被用于编码和解码除了视频数据之外的数据。例如,视频编码和解码系统100可以被用于处理图像数据。图像数据可以包括来自图像的数据块。在这种实现方式中,发送站102可以被用于对图像数据进行编码,并且接收站106可以被用于对图像数据进行解码。备选地,接收站106可以表示存储编码图像数据以供稍后使用(诸如在从发送站102接收到编码或预编码的图像数据之后)的计算设备。作为又一替代方案,发送站102可以表示解码图像数据的计算设备,诸如在将解码的图像数据发送给接收站106以供显示之前。
37.图2是可以实施发送站或接收站的计算设备200的示例的框图。例如,计算设备200可以实施图1的发送站102和接收站106中的一个或两个。计算设备200可以是包括多个计算设备的计算系统的形式,或者是一个计算设备的形式,例如移动电话、平板计算机、膝上型计算机、笔记本计算机、台式计算机等。
38.计算设备200中的处理器202可以是常规的中央处理单元。备选地,处理器202可以是现在存在的或此后开发的另一类型的设备或多个设备,其能够操纵或处理信息。例如,尽管所公开的实现方式可以用所示的一个处理器(例如处理器202)来实践,但是速度和效率上的优点可以通过使用多于一个处理器来实现。
39.在实现方式中,计算设备200中的存储器204可以是只读存储器(rom)设备或随机存取存储器(ram)设备。然而,其他合适类型的存储设备可以被用作存储器204。存储器204可以包括由处理器202使用总线212访问的代码和数据206。存储器204还可以包括操作系统208和应用程序210,应用程序210包括至少一个程序,该程序允许处理器202执行本文描述的技术。例如,应用程序210可以包括应用1至n,这些应用还包括执行本文描述的技术的视频代码化应用。计算设备200还可以包括辅助储存装置214,其可以是例如与移动计算设备一起使用的存储器卡。由于视频通信会话可能包含大量信息,所以它们可以全部或部分地存储在辅助储存装置214中,并且根据需要加载到存储器204中以供处理。
40.计算设备200还可以包括一个或多个输出设备,诸如显示器218。在一个示例中,显示器218可以是将显示器与可操作以感测触摸输入的触敏元件组合的触敏显示器。显示器218可以经由总线212耦合至处理器202。除了显示器218之外或作为显示器218的替代方案,允许用户编程或以其他方式使用计算设备200的其他输出设备可以被提供。当输出设备是显示器或包括显示器时,显示器可以以各种方式加以实施,包括通过液晶显示器(lcd)、阴极射线管(crt)显示器或发光二极管(led)显示器(诸如有机led(oled)显示器)加以实施。
41.计算设备200还可以包括图像感测设备220(例如相机)或现在存在的或此后开发的可以感测图像(诸如操作计算设备200的用户的图像)的任何其他图像感测设备220,或者与其通信。图像感测设备220可以被定位为使得它被导向操作计算设备200的用户。在示例中,图像感测设备220的位置和光轴可以被配置为使得视野包括与显示器218直接相邻的区域,并且从该区域,显示器218是可见的。
42.计算设备200还可以包括声音感测设备222(例如麦克风)或现在存在的或此后开发的可以感测计算设备200附近的声音的任何其他声音感测设备,或者与其通信。声音感测设备222可以被定位为使得它被导向操作计算设备200的用户,并且可以被配置为接收在用户操作计算设备200时由用户发出的声音,例如语音或其他话语。
43.尽管图2将计算设备200的处理器202和存储器204描绘为被集成到一个单元中,但
是其他配置可以被使用。处理器202的操作可以被分布在多个机器(其中单个机器可以具有一个或多个处理器)上,该机器可以被直接耦合或跨局域网或其他网络耦合。存储器204可以被分布在多个机器上,诸如基于网络的存储器或执行计算设备200的操作的多个机器中的存储器。尽管此处描绘为一个总线,但是计算设备200的总线212可以由多个总线组成。进一步地,辅助储存装置214可以被直接耦合至计算设备200的其他组件,或者可以经由网络访问,并且可以包括诸如存储器卡的集成单元或诸如多个存储器卡的多个单元。因此,计算设备200可以以多种配置来实施。
44.图3是要被编码和随后解码的视频流300的示例的图。视频流300包括视频序列302。在下一级别,视频序列302包括多个相邻帧304。尽管三个帧被描绘为相邻帧304,但是视频序列302可以包括任何数量的相邻帧304。然后相邻帧304可以被进一步细分为单独的帧,例如帧306。在下一级别,帧306可以被划分为一系列平面或片段308。例如,片段308可以是允许并行处理的帧的子集。片段308也可以是可以将视频数据分离为单独颜色的帧的子集。例如,彩色视频数据的帧306可以包括亮度平面和两个色度平面。片段308可以以不同的分辨率被采样。
45.不管帧306是否被划分为片段308,帧306都可以被进一步细分为块310,其可以包含对应于例如帧306中的16x16像素的数据。块310也可以被布置为包括来自像素数据的一个或多个片段308的数据。块310还可以具有任何其他合适的大小,诸如4x4像素、8x8像素、16x8像素、8x16像素、16x16像素或更大。除非另有说明,否则术语块和宏块在本文中可互换使用。
46.图4是编码器400的示例的框图。如上所述,编码器400可以被实施在发送站102中,诸如通过提供存储在存储器(例如存储器204)中的计算机软件程序来实施。计算机软件程序可以包括机器指令,该机器指令在由诸如处理器202的处理器执行时使发送站102以图4所描述的方式对视频数据进行编码。编码器400也可以被实施为例如发送站102中所包括的专用硬件。在一个特别期望的实现方式中,编码器400是硬件编码器。
47.编码器400具有以下级以在正向路径(由实线连接线示出)中执行各种功能来使用视频流300作为输入产生编码或压缩的比特流420:帧内/帧间预测级402、变换级404、量化级406和熵编码级408。编码器400还可以包括重构路径(由虚线连接线示出)以重构帧以对未来的块进行编码。在图4中,编码器400具有以下级以在重构路径中执行各种功能:解量化级410、逆变换级412、重构级414和环路滤波级416。编码器400的其他结构变化可以被用于对视频流300进行编码。
48.当视频流300被呈现以进行编码时,相应的相邻帧304(诸如帧306)可以以块为单位加以处理。在帧内/帧间预测级402中,相应块可以使用帧内预测(也称为帧内预测)或帧间预测(也称为帧间预测)来编码。无论如何,预测块都可以被形成。在帧内预测的情况下,预测块可以由当前帧中先前已被编码和重构的样本形成。在帧间预测的情况下,预测块可以由一个或多个先前构造的参考帧中的样本形成。
49.接下来,预测块可以在帧内/帧间预测级402中被从当前块中减去以产生残差块(也称为残差)。变换级404使用基于块的变换将残差变换为例如频域中的变换系数。量化级406使用量化器值或量化级别将变换系数转换为离散的量子值,其被称为量化的变换系数。例如,变换系数可以被除以量化器值并且被截断。
50.然后,量化的变换系数由熵编码级408进行熵编码。然后熵编码的系数以及用于对块进行解码的其他信息(例如可以包括诸如用于指示所使用的预测类型、变换类型、运动向量和量化器值等的句法元素)被输出到压缩比特流420。压缩比特流420可以使用各种技术来格式化,诸如可变长度代码化(vlc)或算术代码化。压缩比特流420也可以被称为编码视频流或编码视频比特流,并且这些术语在本文中将可互换地使用。
51.重构路径(由虚线连接线示出)可以被用于确保编码器400和解码器500(下面关于图5描述的)都使用相同的参考帧来解码压缩比特流420。重构路径执行与在解码过程期间发生的功能(下面关于图5描述)类似的功能,这些功能包括在解量化级410中对量化的变换系数进行解量化以及在逆变换级412中对解量化的变换系数进行逆变换以产生导数残差块(也称为导数残差)。在重构级414中,在帧内/帧间预测级402中预测的预测块可以被添加到导数残差以创建重构块。环路滤波级416可以被应用于重构块,以减少诸如块效应的失真。
52.编码器400的其他变化可以被用于对压缩比特流420进行编码。在一些实现方式中,基于非变换的编码器可以直接量化残差信号,而无需针对某些块或帧的变换级404。在一些实现方式中,编码器可以具有在公共级中组合的量化级406和解量化级410。
53.图5是解码器500的示例的框图。例如,通过提供存储在存储器204中的计算机软件程序,解码器500可以在接收站106中实施。计算机软件程序可以包括机器指令,该机器指令在由诸如处理器202的处理器执行时使接收站106以图5所描述的方式解码视频数据。解码器500也可以在例如发送站102或接收站106中所包括的硬件中实施。
54.类似于上面讨论的编码器400的重构路径,在一个示例中,解码器500包括以下级以执行各种功能以从压缩比特流420产生输出视频流516:熵解码级502、解量化级504、逆变换级506、帧内/帧间预测级508、重构级510、环路滤波级512和去块滤波级514。解码器500的其他结构变化可以被用于解码压缩比特流420。
55.当压缩比特流420被呈现以进行解码时,压缩比特流420内的数据元素可以由熵解码级502解码以产生量化的变换系数集合。解量化级504对量化的变换系数进行解量化(例如通过将量化的变换系数乘以量化器值),并且逆变换级506对解量化的变换系数进行逆变换以产生可以与由编码器400中的逆变换级412创建的导数残差相同的导数残差。使用从压缩比特流420解码的报头信息,解码器500可以使用帧内/帧间预测级508来创建与在编码器400中创建的相同的预测块(例如在帧内/帧间预测级402中)。
56.在重构级510中,预测块可以被添加到导数残差以创建重构块。环路滤波级512可以被应用于重构块以减少块效应。其他滤波可以被应用于重构块。在该示例中,去块滤波级514被应用于重构块以减少块失真,并且结果作为输出视频流516输出。输出视频流516也可以被称为解码视频流,并且这些术语在本文中将可互换地使用。解码器500的其他变化可以被用于解码压缩比特流420。在一些实现方式中,解码器500可以在没有去块滤波级514的情况下产生输出视频流516。
57.如上面提及的,预测残差可以使用码本被量化为最接近的原型预测残差。预测残差的码本可以以任何数量的方式导出。在示例中,码本可以使用向量量化(vq)导出。vq是量化技术,它允许对原型数据(即,训练样本)的概率分布进行建模。
58.在离线训练阶段中,许多预测残差块可以被用作训练样本。vq将训练样本划分为组。vq然后通过其质心表示每组样本预测残差。质心成为码向量(例如原型预测残差)。即,
质心成为码本的条目。若干已知技术可以被用于对训练预测残差样本进行聚类并且导出质心(即,码向量)。例如,lloyd算法、广义lloyd算法、linde-buzzo-gray(lbg)算法、k均值或一些其他技术可以被使用。
59.在设计亮度4x4预测残差的码本的示例中,4x4预测残差的训练样本被使用。训练样本中的每个训练样本可以使用训练样本的光栅扫描被转换为16个值(即,像素值)的数组(例如向量)。所使用的vq算法的输入可以是期望码向量(例如码本的大小)的数量n(例如256或一些其他数量)。所得码本将包括n个16值码向量。通常,针对mxn预测残差的大小为p的码本包括p个m*n值码向量。相同的技术可以被用于为任何颜色分量(色度u、色度y等)大小(例如mxn)的预测残差设计码本。
60.图7是根据本公开的实现方式的码本700的示例的图。码本700图示了学习的(即,在训练阶段期间)码向量。如上面提及的,码本的码向量可以被表示为像素值的一维数组。为了便于可视化,码本700的码向量被图示为二维残差块,它们是从训练期间的最高选择频率(即,从码本700的左上角开始)到训练期间的最低选择频率(即,在码本700的右下角结束)排序的。码本700包括256个码向量。然而,仅顶部32和底部32个被图示。
61.在示例中,增益形状向量量化(gsvq)可以被用于导出幅度(即,增益)码本和形状(即,归一化信号)码本。为了便于参考,在以下描述中,gsvq也可以被称为vq。在示例中,用于4x4亮度(y)预测残差的码本可以使得增益码本包括16个标量码字,并且形状码本可以包括256个码向量。
62.在gsvq中,在训练期间,训练预测残差中的每个训练预测残差的范数被提取,并且增益(即,幅度)码本针对提取的范数被导出。范数可以是训练预测残差的欧几里得范数(即,长度)。众所周知,向量x=(x0,x1,

,x
15
)的欧几里得范数由给出。
63.单位范数训练预测残差是指训练预测残差的值中的每个值除以训练预测残差的范数的训练预测残差。即,给定训练预测残差x,单位范数训练预测残差由x/||x||给出。之所以称单位范数训练预测残差,是因为单位范数训练预测残差的长度为1。
64.增益码本可以使用k均值算法对训练预测残差的范数导出。形状码本可以通过以下操作导出:首先,从随机单位范数训练预测残差生成voronoi图;然后迭代地应用k均值算法。在每次迭代中,k均值算法的步骤可以包括计算标志不变距离指标;基于距离对训练样本进行聚类;以及计算归一化集群均值。标志不变距离指标在至少一些训练预测残差和每个当前质心之间加以计算。在示例中,针对单位范数训练预测残差p和质心q,标志不变距离指标d(p,q)可以被计算为d(x,y)=min{||x-y||,||x y||}。即,标志不变距离指标d(p,q)可以是向量(x-y)的第一长度和向量(x y)的第二长度中的最小值。
65.图8是根据本公开的实现方式的使用向量量化的预测残差编码级800的功能性的图。预测残差编码级800将预测残差量化为最接近的增益值和最接近的形状向量。
66.在示例中,预测残差编码级800可以是或者可以被包括在图4的变换级404中。在另一示例中,预测残差编码级800可以是与图4的变换级404分离的级。无论如何,并且虽然没有在图4中具体示出,当编码器400(或其中的一个或多个组件)确定vq(即,gsvq)将对图4的帧内/帧间预测级402所产生的预测残差(即,预测块)被执行时,则至少图4的量化级406、解
量化级410和逆变换级412被绕过。在示例中,仅当预测残差来自帧内预测时,才可以确定使用(或至少测试)vq。在示例中,如果预测块小于或等于某个阈值块大小,则可以确定使用vq。在示例中,针对亮度预测块,阈值块大小是4x4。
67.预测残差编码级800包括归一化级802和gsvq级806。归一化级802可以接收由帧内/帧间预测级402产生的预测残差x。在示例中,预测残差x可以是帧内预测的结果。在示例中,预测残差x的大小可以是4x4或一些其他块大小。预测残差x可以是亮度(y)块、色度(u或v)残差块或一些其他颜色分量残差块。为了便于解释,预测残差的记号x可以被用于指代二维mxn(例如4x4)残差块或等效的一维光栅扫描m*n(例如4*4=16)向量中的任一个或两者。
68.归一化级802生成(例如计算、提取等)预测残差x的范数(例如欧几里得长度||x||)。范数||x||使用增益码本进行标量量化。增益索引(即范数||x||被量化到的增益码本中的值的索引)可以在压缩比特流中被编码,诸如图4的压缩比特流420,如箭头804所指示的。
69.单位范数预测残差x/||x||被输入到gsvq级806,它使用形状码本单独量化单位范数向量。即,gsvq级806标识最接近单位范数向量的码向量。距离(例如误差)度量可以被用于标识最接近的码向量。在示例中,如上所述,单位范数预测残差x/||x||和形状码本的至少一些码向量之间的标志不变距离指标可以被使用。距离度量可以是均方误差。距离度量可以是绝对差误差的总和。任何其他合适的距离度量可以被使用。
70.形状索引(即单位范数x/||x||被量化到的形状码本中的码向量的索引)可以在压缩比特流中被编码,诸如图4的压缩比特流420,如箭头808所指示的。因此,预测残差可以通过最优(例如最接近的)增益和最优(例如最接近的)形状的乘积来近似(例如编码到、压缩到等)。
71.在实现方式中,标志可以附加地在压缩比特流中被编码。该标志可以被用于减小码本的大小。标志可以是表示值 1或-1的二进制符号。例如,标志位值0可以表示值-1,并且标志位值1可以表示值 1,反之亦然。因此,预测残差可以由增益索引、形状索引和标志来表示。
72.在标志未被使用的情况下,预测残差可以由增益和形状来表示,其中增益为正标量,并且形状为单位范数向量。
73.仅出于图示目的,假设以下两个长度为4的向量:v1=[-1,1,1,1]和v2=[1,-1,-1,-1],可以分别用(增益=2,形状=[-0.5,0,5,0.5,0.5])和(增益=2,形状=[0.5-0.5,-0.5,-0.5])表示。在这种定义中,向量v1和v2的形状可以被映射到不同的形状码字,即使向量v1和v2仅仅是彼此的翻转版本。在实现方式中,向量v1和v2的形状可以被视为相同的形状并且它们的标志被解耦。
[0074]
因此,在实现方式中,向量v1和v2可以分别用三元组(增益=2,标志=1,形状=[-0.5,0.5,0.5,0.5])和(增益=2,标志=-1,形状=[-0.5,0.5,0.5,0.5])表示。因此,形状码本的大小可以被减半。即,例如如果码本包括[-0.5,0.5,0.5,0.5],那么它不需要包括码向量[0.5,-0.5,-0.5,-0.5]。因此,在使用标志的实现方式中,码本中的码向量的搜索可以更快,因为增益、标志和形状的搜索可以被独立地完成。
[0075]
总而言之,使用gsvq,预测残差可以由增益索引和形状索引表示;备选地,预测残差可以由增益索引、形状索引和标志(可以是二进制符号)来表示。
[0076]
众所周知,一些编解码器使用可以被称为变换跳过模式的模式。在变换跳过模式
下,编码器可以决定跳过将残差块变换到频域,但仍然可能对残差块执行量化步骤。
[0077]
当残差块具有足够小的能量使得能量可以被忽略时,变换跳过可以由编码器选择。因此,在跳过块模式下,预测信号本身与skip标记一起被编码。跳过模式对于文本、图形和/或屏幕内容视频可能特别有用,因为这些视频通常包含大面积的平坦和/或平滑区域,使得这种区域的帧内和帧间预测产生几乎完美的预测,而没有(或很少)预测残差。在示例中,为了决定变换块是否应该被跳过,编码器可以比较跳过和不跳过的rd成本,然后可以选择rd成本较小的那个。
[0078]
针对当前预测残差,根据本公开的实现方式的编码器必须将预测残差如何被编码(即,预测残差编码模式)传递给解码器(经由压缩比特流)。即,编码器需要传递变换代码化是否被跳过,变换系数是否针对预测残差生成,或者预测残差是否经由gsvq被编码(如关于图8描述的)。
[0079]
至少两(2)个句法元素可以被用于描述预测残差编码模式。第一句法元素(即,use_vq)指示gsvq是否被用于对残差块进行编码。第二句法元素(即,skip)指示预测残差是否用变换跳过模式编码。至少两个句法元素可以被写入预测块的报头、包含预测块的块的报头、宏块的报头、变换块的报头、一些其他报头或其组合中的压缩比特流。
[0080]
在示例中,use_vq和skip可以分别是二进制符号。在示例中,use_vq的值为1指示预测残差使用gsvq被编码,并且值为0指示预测残差不使用gsvq被编码。在示例中,skip的值为1指示预测残差使用变换跳过被编码,并且值为0指示预测残差不使用变换跳过被编码。然而,针对use_vq和/或skip句法元素,其他值也是可能的。
[0081]
图9是根据本公开的实现方式的当在编码器中使用向量量化时用于比特流句法代码化的技术900的流程图的图。在示例中,技术900可以针对大小为4x4并且由帧内预测产生的预测残差执行(例如完成、实施等)。然而,本公开不被限于此。技术900可以将描述编码残差块的模式的句法元素写入压缩比特流,诸如图4的压缩比特流420。
[0082]
技术900可以例如被实施为可以由诸如发送站102的计算设备执行的软件程序。例如,软件程序可以包括机器可读指令,该机器可读指令可以被存储在诸如存储器204或辅助储存装置214的存储器中,并且在由诸如处理器202的处理器执行时可以使计算设备执行技术900。技术900可以使用专用硬件或固件来实施。例如,硬件组件可以被配置为执行技术900。如上面解释的,一些计算设备可以具有多个存储器或处理器,并且技术900中描述的操作可以使用多个处理器、存储器或两者来分布。
[0083]
在902中,技术900可以接收宏块。宏块可以是大小为128
×
128、64
×
64或一些其他mxn大小的块。宏块可以被分割为更小的块,这些块可以被称为代码化块。代码化块还可以被分割为一个或多个预测块。然后预测块被预测,如上面关于图4的帧内/帧间预测级402描述的。也如上所述,预测残差(例如预测块)被产生。例如,预测块可以是大小为4x4的亮度块,并且残差块可以是由帧内预测块产生的对应的4x4预测块。当前正由编码器编码的块被称为当前块。
[0084]
技术900可以在gsvq和变换代码化之间执行率失真搜索以确定哪个导致更好的rd成本。在示例中,搜索可以是穷举搜索。在示例中,可能的模式(例如变换类型、码向量)中的一些(例如子集)可以被搜索。如果gsvq没有导致更好的rd成本,那么技术900将use_vq的0写入压缩比特流并且进行到904;否则,技术900将use_vq的1写入压缩比特流并且进行到
910。
[0085]
在904中,技术900确定将预测残差变换到频域是否要被跳过,对应于使用变换跳过模式对预测残差进行编码。如果预测残差要使用变换跳过模式被编码,那么技术900将句法元素skip的1写入压缩比特流并且在906中结束。在这种情况下,预测残差本身可以被量化。在另一示例中,预测示例本身可以被写入压缩比特流。如果预测残差不使用变换跳过模式被编码,那么技术900为句法元素skip写入0并且进行到908。
[0086]
在908中,技术900可以选择(例如选取、标识、搜索等)变换类型,技术900使用该变换类型将预测残差转换为变换系数的变换块,如上面关于图4的变换级404描述的。技术900然后将变换类型和变换系数编码(即,写入)到压缩比特流,如上面关于图4描述的。
[0087]
在910中,技术900将预测残差量化为最接近的形状向量和最接近的增益值,如关于图8描述的。技术900将形状索引和增益索引写入(例如编码)到压缩比特流。在示例中,标志也可以被使用,如关于图8描述的。因此,技术900也可以将标志写入压缩比特流。
[0088]
比特流部分920、930、940和945图示了压缩比特流的部分的不同组织。
[0089]
比特流部分920图示了当技术900执行序列902-904-906时压缩比特流的组织。因此,比特流部分920包括用于use_vq句法元素的0标记(例如二进制值),随后是skip句法元素的1标记(例如二进制值)。
[0090]
比特流部分930图示了当技术900执行序列902-904-908时压缩比特流的组织。因此,比特流部分930包括用于use_vq句法元素的0标记,随后是skip句法元素的0,随后是编码变换类型的比特,并且随后是熵编码的变换系数。
[0091]
比特流部分940图示了当技术900执行序列902-910时压缩比特流的组织。因此,比特流部分940包括用于use_vq句法元素的1标记,随后是编码增益索引的比特,并且随后是编码形状索引的比特。要注意的是,编码形状索引的比特可以在比特流部分940中编码增益索引的比特之前。
[0092]
比特流部分945图示了当技术900执行序列902-910并且标志也被写入压缩比特流时压缩比特流的组织。因此,比特流部分945包括用于use_vq句法元素的1标记,随后是对增益索引进行编码的比特,随后是对形状索引进行编码的比特,随后是指示标志的二进制符号。要注意的是,增益索引、形状索引和标志可以以任何顺序被写入。
[0093]
解码器(诸如图5的解码器500)可以接收压缩比特流,诸如图5的压缩比特流420。解码器包括或可以访问与产生压缩比特流的编码器相同的查找表(即,形状码本和增益码本)。
[0094]
解码器解码第一句法元素(use_vq)。
[0095]
在实现方式中,如果use_vq等于1,那么解码器解码增益索引和形状索引。解码器使用形状索引以在形状码本中查找形状向量(即,y),并且使用增益索引以在增益码本中查找增益标量值(即,a)。解码器将残差块计算为a
·
y。
[0096]
在另一实现方式中,如果use_vq等于1,那么解码器解码增益索引、形状索引和标志。解码器使用形状索引以在形状码本中查找形状向量(即,y),并且使用增益索引以在增益码本中查找增益标量值(即,a)。解码器将残差块计算为sign
·a·
y。
[0097]
另一方面,如果use_vq等于0,那么解码器继续从压缩比特流中解码另一句法元素(skip)。
[0098]
如果skip等于1,则解码器可以从压缩比特流中解码量化的预测残差以获得残差块。如果skip等于0,则解码器可以从压缩比特流中解码变换类型和变换系数以获得预测块,如上面关于图5描述的。
[0099]
解码器可以使用残差块来重构当前块,如上面关于图5描述的。
[0100]
图10是根据本公开的实现方式的当在编码器中使用向量量化时用于比特流句法代码化的技术1000的流程图的图。在示例中,技术1000可以针对大小为4x4并且由帧内预测产生的预测残差执行(例如完成、实施等)。然而,本公开不被限于此。技术1000可以将描述编码残差块的模式的句法元素写入压缩比特流,诸如图4的压缩比特流420。
[0101]
技术1000可以例如被实施为可以由诸如发送站102的计算设备执行的软件程序。例如,软件程序可以包括机器可读指令,该机器可读指令可以被存储在诸如存储器204或辅助储存装置214的存储器中,并且在由诸如处理器202的处理器执行时可以使计算设备执行技术1000。技术1000可以使用专用硬件或固件来实施。例如,硬件组件可以被配置为执行技术1000。如上面解释的,一些计算设备可以具有多个存储器或处理器,并且技术1000中描述的操作可以使用多个处理器、存储器或两者来分布。
[0102]
在1002中,技术1000可以接收宏块。宏块可以是大小为128x128、64x64或一些其他mxn大小的块。宏块可以被分割为更小的块,这些块可以被称为代码化块。代码化块还可以被分割为一个或多个预测块。然后预测块被预测,如上面关于图4的帧内/帧间预测级402描述的。也如上所述,预测残差(例如预测块)被产生。例如,预测块可以是大小为4x4的亮度块,并且残差块可以是由帧内预测块产生的对应的4x4预测块。当前正由编码器编码的块被称为当前块。
[0103]
在1002中,技术1000确定将预测残差变换到频域是否要被跳过,对应于使用变换跳过模式对预测残差进行编码。如果预测残差要使用变换跳过模式被编码,那么技术1000将句法元素skip的1写入压缩比特流并且在1004中结束。在这种情况下,预测残差本身可以被量化或者可以被写入压缩比特流,而无需量化。如果预测残差不使用变换跳过模式被编码,那么技术1000为句法元素skip写入0并且进行到1006。
[0104]
在1006中,技术1000可以在gsvq和变换代码化之间执行率失真搜索以确定哪个导致更好的rd成本,如上面关于图9的902描述的。如果gsvq没有导致更好的rd成本,那么技术1000将use_vq的0写入压缩比特流并且进行到1010;否则,技术1000将use_vq的1写入压缩比特流并且进行到1008。
[0105]
在1008中,技术1000将预测残差量化为最接近的形状向量和最接近的增益值,如关于图8描述的。技术1000将形状索引和增益索引写入(例如编码)到压缩比特流。在示例中,并且也如关于图8描述的,技术1000也可以写入标志。
[0106]
在1010中,技术1000可以选择(例如选取、标识、搜索等)变换类型,技术1000使用该变换类型将预测残差转换为变换系数的变换块,如上面关于图4的变换级404描述的。技术1000然后将变换类型和变换系数编码(即,写入)到压缩比特流,如上面关于图4描述的。
[0107]
比特流部分1020、1025、1030和1040图示了压缩比特流的部分的不同组织。
[0108]
比特流部分1020图示了当技术1000执行序列1002-1006-1008时压缩比特流的组织。因此,比特流部分1020包括skip句法元素的0标记,随后是use_vq句法元素的1,随后是编码增益索引的比特,并且随后是编码形状索引的比特。要注意的是,编码形状索引的比特
可以在比特流部分1020中编码增益索引的比特之前。
[0109]
比特流部分1025图示了当技术1000执行包括写入标志的序列1002-1006-1008时压缩比特流的组织。因此,比特流部分1025包括skip句法元素的0标记,随后是use_vq句法元素的1,随后是对增益索引进行编码的比特,随后是对形状索引进行编码的比特,并且随后是标志比特。要注意的是,增益索引、形状索引和标志可以以任何顺序被写入比特流部分1025。
[0110]
比特流部分1030图示了当技术1000执行序列1002-1006-1010时压缩比特流的组织。因此,比特流部分1030包括skip句法元素的0标记,随后是use_vq句法元素的0,随后是编码变换类型的比特,并且随后是熵编码的变换系数。
[0111]
比特流部分1040图示了当技术1000执行序列1002-1004时压缩比特流的组织。因此,比特流部分1040包括skip句法元素的1标记。
[0112]
解码器(诸如图5的解码器500)可以接收压缩比特流,诸如图5的压缩比特流420。解码器包括或可以访问与产生压缩比特流的编码器相同的查找表(即,形状码本和增益码本)。
[0113]
解码器解码第一句法元素(skip)。如果skip等于1,则解码器可以从压缩比特流中解码量化的预测残差以获得残差块。
[0114]
如果skip等于0,则解码器解码第二句法元素(use_vq)。
[0115]
在实现方式中,如果use_vq等于1,那么解码器解码增益索引和形状索引。解码器使用形状索引以在形状码本中查找形状向量(即,y),并且使用增益索引以在增益码本中查找增益标量值(即,a)。解码器将残差块计算为a
·
y。
[0116]
在另一实现方式中,如果use_vq等于1,那么解码器解码增益索引、形状索引和标志。解码器使用形状索引以在形状码本中查找形状向量(即,y),并且使用增益索引以在增益码本中查找增益标量值(即,a)。解码器将残差块计算为sign
·a·
y。
[0117]
另一方面,如果use_vq等于0,则解码器可以从压缩比特流中解码变换类型和变换系数以获得预测块,如上面关于图5描述的。
[0118]
解码器然后可以使用残差块来重构当前块,如上面关于图5描述的。
[0119]
图11是根据本公开的实现方式的当在编码器中使用向量量化时用于比特流句法代码化的技术1100的流程图的图。技术1100包括类似于图10的技术1000的块。关于图11,那些类似块(即,类似编号的块)的描述被省略。
[0120]
技术1100与技术1000的差异在于,代替在1008中将预测残差变换到频域以获得变换块,技术1100通过从预测块中减去vq预测残差来获得(即,计算等)差异预测残差,然后将差异预测残差变换到频域。vq预测残差对应于预测残差的gsvq量化。
[0121]
因此,在1102中写入变换类型和变换系数之前,技术1100针对预测残差确定来自形状码向量的增益标量(即,a)和分别来自增益码本和形状码本的形状向量(即,y);将vq预测残差计算为a
·
y;在1104中获得vq预测残差;使用变换类型对vq预测残差进行变换,以获得变换的vq预测残差;在1008中,将增益标量的增益索引和形状码向量的形状索引编码(即,写入)到压缩比特流中;并且在1102中将变换类型和变换的vq预测残差编码(即,写入)到压缩比特流。如上所述,在一些示例中,技术1100可以附加地为预测残差确定标志。因此,技术1100将vq预测残差计算为sign
·a·
y。
[0122]
比特流部分1020、1025、1130和1040图示了压缩比特流的部分的不同组织。比特流部分1020、比特流部分1025和比特流部分1040如关于图10描述的。
[0123]
比特流部分1130图示了当技术1000执行序列1002-1006-1102时压缩比特流的组织。因此,比特流部分1130包括skip句法元素的0标记,随后是use_vq句法元素的0,随后是编码增益索引的比特(第一比特),随后是编码形状索引的比特(第二比特),可选地随后是(如虚线所图示的并且取决于实现方式)标志比特,随后是编码变换类型的比特(第三比特),随后是变换的vq预测残差的熵编码系数的比特(第四比特)。要注意的是,标志比特(如果包括的话)、第一比特、第二比特、第三比特和第四比特可以以任何顺序布置在压缩比特流中。
[0124]
解码器(诸如图5的解码器500)可以接收压缩比特流,诸如图5的压缩比特流420。解码器包括或可以访问与产生压缩比特流的编码器相同的查找表(即,形状码本和增益码本)。
[0125]
解码器解码第一句法元素(skip)。如果skip等于1,则解码器可以使用变换跳过模式从压缩比特流中解码量化的预测残差以获得残差块。
[0126]
如果skip等于0,则解码器解码第二句法元素(use_vq)。
[0127]
在实现方式中,如果use_vq等于1,那么解码器解码增益索引和形状索引。解码器使用形状索引在形状码本中查找形状向量(即,y)。解码器使用增益索引在增益码本中查找增益标量值(即,a)。解码器将残差块计算为a
·
y。
[0128]
在另一实现方式中,如果use_vq等于1,那么解码器解码增益索引、形状索引和标志。解码器使用形状索引在形状码本中查找形状向量(即,y)。解码器使用增益索引在增益码本中查找增益标量值(即,a)。解码器将残差块计算为sign
·a·
y。
[0129]
如果use_vq等于0,则解码器可以从压缩比特流中解码增益索引、形状索引、变换类型和vq变换系数。vq变换系数对应于变换的vq预测残差的熵编码系数。
[0130]
使用变换类型和vq变换系数,解码器可以获得(诸如经由包括熵解码、解量化和逆变换的级或其子集)差异预测残差。解码器可以使用增益索引和形状索引来分别获得(例如查找等)来自增益码本的增益值(即,a)和来自形状码本的形状码向量(即,y)。使用增益值和形状码向量,解码器获得vq预测残差(即,a
·
y)。然后,解码器可以通过将vq预测残差添加到差异预测残差来重组预测残差。
[0131]
解码器然后可以使用残差块来重构当前块,如上面关于图5描述的。
[0132]
图12是根据本公开的实现方式的用于解码当前块的技术1200的流程图的图。技术1200可以在解码器中实施,诸如图5的解码器500。技术1200从压缩比特流中解码残差块(即,预测残差),该压缩比特流可以是图5的压缩比特流420,以重构当前块,如关于图5的重构级510描述的。
[0133]
技术1200可以例如被实施为可以由诸如接收站106的计算设备执行的软件程序。例如,软件程序可以包括机器可读指令,该机器可读指令可以被存储在诸如存储器204或辅助储存装置214的存储器中,并且在由诸如处理器202的处理器执行时可以使计算设备执行技术1200。技术1200可以使用专用硬件或固件来实施。例如,硬件组件可以被配置为执行技术1200。如上面解释的,一些计算设备可以具有多个存储器或处理器,并且技术1200中描述的操作可以使用多个处理器、存储器或两者来分布。
[0134]
技术1200也可以在编码器中实施,诸如图4的编码器400。技术1200可以在编码器的重构路径中实施。
[0135]
在1202中,技术1200可以从压缩比特流解码指示当前块的残差块是否使用向量量化(vq)被编码的标记。该标记可以是上述的use_vq句法元素。
[0136]
在1204中,技术1200确定残差块是否使用vq被编码。例如,如果残差块没有使用vq被编码(诸如例如如果use_vq句法元素等于0),那么技术1200进行到1208;如果残差块是使用vq被编码的(诸如例如如果use_vq句法元素等于1),那么技术1200进行到1210。
[0137]
在1206中,技术1200对指示码本中的条目的参数进行解码。如上面提及的,解码指示码本中的条目的参数可以包括解码增益索引并且解码形状索引。在实现方式中,技术1200还可以对标志进行解码。增益索引、形状索引和标志(如果已解码)可以是如上所述。使用增益索引,技术1200可以从增益码本中选择增益值(增益标量a),如上所述。即,增益索引可以被用于在增益码本中查找增益值。使用形状索引,技术1200可以从形状码本中选择形状向量(即,形状码向量y)。如上所述,形状向量可以是单位范数向量(即,单位范数预测残差)。解码器使用产生压缩比特流的编码器所使用的相同增益码本和形状码本(例如的副本)。
[0138]
在1208中,技术1200使用该条目对残差块进行解码。即,在示例中,残差块可以通过将增益形状乘以形状向量(即,a
·
y)来获得。在另一示例中,在标志也被编码的情况下,残差块可以是通过乘以标志、增益形状和形状向量(即,sign
·a·
y)。
[0139]
在1212中,技术1200使用预测块来重构当前块。当前块可以使用上面关于图5描述的残差块来重构。
[0140]
在1210中,技术1200基于指示当前块是否使用变换跳过(即,变换跳过模式)被编码的跳过标记来解码残差块。在示例中,并且如关于图9描述的,基于指示当前块是否使用变换跳过被编码的跳过标记来解码残差块可以包括:响应于指示当前块没有使用跳过变换被编码的跳过标记,解码变换类型,解码变换块,并且使用变换类型和变换块生成残差块;并且响应于指示当前块使用变换跳过被编码的跳过标记,在不执行逆变换操作的情况下解码残差块。
[0141]
图13是根据本公开的实现方式的用于使用向量量化(vq)编码当前块的技术1300的流程图的图。技术1300可以在编码器中实施,诸如图4的编码器400。技术1300将当前块编码为压缩比特流,诸如图4的压缩比特流420。更具体地,技术1300获得当前块的残差块,并且将与残差块相关的信息写入(即,编码)到压缩比特流,解码器可以使用这些信息来解码残差块。
[0142]
技术1300可以例如被实施为可以由诸如发送站102的计算设备执行的软件程序。例如,软件程序可以包括机器可读指令,该机器可读指令可以被存储在诸如存储器204或辅助储存装置214的存储器中,并且在由诸如处理器202的处理器执行时可以使计算设备执行技术1300。技术1300可以使用专用硬件或固件来实施。例如,硬件组件可以被配置为执行技术1300。如上面解释的,一些计算设备可以具有多个存储器或处理器,并且技术1300中描述的操作可以使用多个处理器、存储器或两者来分布。
[0143]
在1302中,技术1300确定当前块是否不使用变换跳过模式被编码。例如,当前块被确定为不使用关于skip=0描述的变换跳过模式被编码(即,当技术1000将skip=0写入压
缩比特流时,在图10的1002中)。例如,当前块被确定为不使用关于skip=0描述的变换跳过模式被编码(即,当技术1100将skip=0写入压缩比特流时,在图11的1002中)。
[0144]
响应于确定当前块不使用变换跳过模式被编码,技术1300获得(在1304中)当前块的残差块(即,预测残差)。在示例中,预测残差可以使用帧内预测来获得。例如,预测残差可以从/使用图4的帧内/帧间预测级402获得。在1306中,技术1300使用残差块选择vq增益索引和vq形状索引。即,并且如上所述,技术1300可以获得预测残差的范数(例如长度),并且可以通过划分预测块(其可以被认为是一维或二维数组)来获得单位范数预测残差(即,归一化残差块)。使用增益码本,范数的范数(例如幅度、长度等)可以被量化为增益码本中最接近的值。增益码本中最接近的值对应于增益码本中的增益索引(vq增益索引、第一索引)。范数单位预测残差可以被量化为形状码本中最接近的码向量。形状码本中最接近的码向量对应于形状码本中的形状索引(vq形状索引、第二索引)。
[0145]
在1308中,技术1300对压缩比特流中的vq增益索引进行编码。在1310中,技术1300对压缩比特流中的vq形状索引进行编码。
[0146]
在示例中,并且如上面提及的,当前块可以是4x4亮度(即,亮度)块。然而,当前块可以是任何其他大小的亮度块或色度块。在示例中,增益码本可以包括16个条目,并且形状码本可以包括256个条目。在示例中,编码器可以针对不同的当前块大小使用不同的增益码本和形状码本对。在示例中,编码器可以针对不同的颜色分量使用不同的增益码本和形状码本对。如上面提及的,一对形状码本和增益码本可以使用残差块作为训练样本在离线训练期间获得。
[0147]
在示例中,并且如关于图10和11描述的那样,技术1300可以包括在压缩比特流中编码指示当前块不使用变换跳过模式被编码的第一标记(例如skip=0);以及在压缩比特流中编码指示当前块是否要使用vq被编码的第二标记(例如use_vq=0或use_vq=1)。
[0148]
在示例中,并且如关于图11的1102描述的那样,使用vq增益索引和vq形状索引编码当前块可以包括确定vq是否被用于编码当前块;并且响应于确定vq不被用于编码当前块,使用vq增益索引和vq形状索引获得vq残差块,获得作为vq残差块与残差块之间的差异的差异预测残差,对差异预测残差进行变换以获得变换的差异预测残差,并且对变换的差异预测残差进行编码。
[0149]
在示例中,使用vq增益索引和vq形状索引对当前块进行编码可以包括确定vq是否被用于对当前块进行编码;并且响应于确定vq要被用于对当前块进行编码,对指示当前块不使用变换跳过模式(即,skip=0)被编码的第一标记进行编码,并且对指示当前块将使用vq(即,use_vq=1)被编码的第二标记进行编码。
[0150]
在示例中,在1306中,除了使用残差块选择vq增益索引和vq形状索引之外,技术1300还可以选择标志,如上面关于图8描述的。因此,技术1300还可以包括对压缩比特流中的标志进行编码。
[0151]
使用vq进行预测残差代码化可以提高性能。例如,与不使用vq相比,解码器时间被示出为针对关键帧减少到96.35%,并且整体减少到97.78%。
[0152]
为了简化解释,技术900、1000、1100、1200和1300分别被描绘和描述为一系列块、步骤或操作。然而,根据本公开的块、步骤或操作可以以各种顺序发生和/或同时发生。附加地,本文未呈现和描述的其他步骤或操作可以被使用。此外,可能不需要所有图示的步骤或
操作来实施根据所公开的主题的技术。
[0153]
上述的编码和解码方面图示了编码和解码技术的一些示例。然而,要理解,编码和解码(如在权利要求中使用的那些术语)可以表示对数据的压缩、解压缩、变换或任何其他处理或改变。
[0154]
词语“示例”在本文中被用于意指充当示例、实例或图示。本文作为“示例”描述的任何方面或设计不必被解释为比其他方面或设计更优选或有利。相反,词语“示例”的使用旨在以具体方式呈现构思。如本技术中使用的,术语“或”旨在意指包括性的“或”而不是排他性的“或”。即,除非另外指定或者通过上下文清晰指示,否则语句"x包括a或b"旨在意指其任何自然的包括性排列。即,如果x包括a;x包括b;或x包括a和b两者,那么在任何前述实例下均满足“x包括a或b”。另外,在本技术和所附权利要求中使用的冠词“一”和“一个”通常应被解释为意指“一个或多个”,除非另外指定或通过上下文清晰指示以指向单数形式。而且,贯穿本公开,除非如此描述,否则术语“实现方式”或者术语“一个实现方式”的使用并不旨在意指相同的实现方式。
[0155]
发送站102和/或接收站106的实现方式(以及存储在其上和/或由其执行(包括由编码器400和解码器500执行)的算法、方法、指令等)可以用硬件、软件或其任何组合来实现。硬件可以包括例如计算机、知识产权(ip)内核、专用集成电路(asic)、可编程逻辑阵列、光学处理器、可编程逻辑控制器、微码、微控制器、服务器、微处理器、数字信号处理器或任何其他合适的电路。在权利要求中,术语“处理器”应被理解为单独地或组合地涵盖任何前述硬件。术语“信号”和“数据”可互换使用。进一步地,发送站102和接收站106的部分不必一定要以相同的方式实施。
[0156]
进一步地,在一个方面中,例如发送站102或接收站106可以使用具有计算机程序的通用计算机或通用处理器来实施,该计算机程序在被执行时执行本文描述的相应方法、算法和/或指令中的任何一种。另外或备选地,例如专用计算机/处理器可以被使用,其可以包含用于执行本文描述的任何方法、算法或指令的其他硬件。
[0157]
例如,发送站102和接收站106可以在视频会议系统中的计算机上实施。备选地,发送站102可以在服务器上实施,并且接收站106可以在与服务器分离的设备(诸如手持式通信设备)上实施。在该实例中,发送站102可以使用编码器400将内容编码为编码视频信号,并且将编码视频信号发送给通信设备。继而,通信设备然后可以使用解码器500对编码视频信号进行解码。备选地,通信设备可以对本地存储在通信设备上的内容进行解码,例如不是由发送站102发送的内容。其他合适的发送和接收实现方案也是可用的。例如,接收站106可以是大致固定的个人计算机,而不是便携式通信设备,和/或包括编码器400的设备也可以包括解码器500。
[0158]
进一步地,本公开的全部或部分实现方式可以采取可从例如计算机可用或计算机可读介质访问的计算机程序产品的形式。计算机可用或计算机可读介质可以是例如可以有形地包含、存储、传递或传输程序以供任何处理器使用或与其结合使用的任何设备。介质可以是例如电子、磁性、光学、电磁或半导体设备。其他合适的介质也是可用的。
[0159]
上述实现方式和其他方面已经被描述,以有助于容易地理解本公开并且不限制本公开。相反,本公开旨在覆盖所附权利要求的范围内所包括的各种修改和等效布置,该范围应被赋予法律允许的最广泛的解释,以涵盖所有这种修改和等效布置。
再多了解一些

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

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

相关文献