用于视频编码技术的时间信令的制作方法

文档序号:29980997发布日期:2022-05-11 12:41阅读:88来源:国知局
用于视频编码技术的时间信令的制作方法

1.本发明涉及用于视频编码技术中的方法、设备、计算机程序和计算机可读介质。


背景技术:

2.信号的压缩和解压缩是许多已知系统中的考虑因素。例如视频之类的许多类型的信号可被压缩和编码以供例如经由数据通信网络进行传输。当对此信号进行解码时,可能需要增加信号的质量层级和/或恢复原始信号中所含的尽可能多的信息。
3.一些已知系统采用可缩放编码技术。可缩放编码涉及将信号连同信息一起编码以允许以一个或多个不同质量层级重构信号,这例如取决于解码器的能力和可用带宽。
4.存在关于可缩放编码系统中信号的重构的若干考虑因素。一个此类考虑因素是编码器和/或解码器有效地处理信息的能力。编码器和/或解码器处理信息的效率可为编码器和/或解码器的性能层级的因素。


技术实现要素:

5.在所附权利要求书中阐述本发明的各个方面。
6.进一步的特征和优点将从参考附图的以下描述中变得显而易见。
附图说明
7.图1是示出根据本文中的实例的编码过程的示意图;
8.图2是示出根据本文中的实例的解码过程的示意图;
9.图3a和3b是各自示出根据本文中的实例的编码过程的示意图;
10.图4a和4b是各自示出根据本文中的实例的解码过程的示意图;
11.图5a至5c展示用于两种相应时间模式的编码器中的实例操作;
12.图6a至6e是示出根据本文中的实例的时间预测过程的各种特征的示意图;以及
13.图7a和7b是展示根据实例的时间处理方法的流程图的两半。
具体实施方式
14.本文描述一种混合式后向兼容编码技术。
15.本文中所描述的实例提供一种灵活、可调适、高效且计算量小的编码格式,其将不同视频编码格式、基础编解码器(例如,avc、hevc,或任何其它当前或将来的编解码器)与至少两个增强层级的经编码数据组合。
16.编码方案的一般结构使用以基础编解码器进行编码的经下采样源信号,将第一层级的校正数据添加到基础编解码器的经解码输出以产生经校正图片,且接着将另一层级的增强数据添加到经校正图片的经上采样型式。
17.因此,所述流被视为基础流和增强流。值得注意的是,通常预期基础流由硬件解码器解码,而预期增强流适于具有合适功耗的软件处理实施。
18.此结构形成多个自由度,这允许对许多情形具有极大的灵活性和适应性,从而使得编码格式适合于许多用例,包含云上(ott)传输、现场流式传输、现场超高清(uhd)广播等。
19.尽管基础编解码器的经解码输出并非意图用于检视,但其为较低分辨率下的完全经解码视频,从而使得输出与现有解码器兼容,并且在认为合适的情况下也可用作较低分辨率输出。
20.编解码器格式使用最小数目个简单编码工具。当协同组合时,它们相比于以基础编解码器进行编码的全分辨率图片而言可提供视觉质量改善,同时使得其可被使用的方式较为灵活。
21.图1展示第一实例编码器100。所示组件还可被实施为对应编码过程的步骤。
22.在编码器100中,输入全分辨率视频102经处理以产生各种经编码流。输入视频102包括相应帧,所述相应帧的每一帧被分成多个图块且所述多个图块的每一图块被分成多个块。通过向基础编码器106(例如,avc、hevc,或任何其它编解码器)馈送通过对输入视频102进行下采样104产生的输入视频的经下采样型式来产生第一经编码流(经编码基础流110)。通过将编码操作114应用于通过取得经重构基础编解码器视频与输入视频的经下采样型式之间的差112而获得的残差来产生第二经编码流(经编码1级流116)。通过用基础解码器108对基础编码器106的输出进行解码来获得经重构基础编解码器视频。通过处理126通过取得经重构基础编码视频的经校正型式的经上采样型式与输入视频102之间的差124而获得的残差来产生第三经编码流(经编码2级流128)。通过将经重构基础编解码器视频与通过将解码操作118应用于经编码1级流116而获得的残差进行组合120来获得经重构基础编解码器视频的经校正型式。
23.1级编码操作114以任选的1级时间缓冲器130进行操作,所述1级时间缓冲器可用于应用如下文进一步描述的时间处理。2级编码操作126也以任选的2级时间缓冲器132进行操作,所述2级时间缓冲器可用于应用如下文进一步描述的时间处理。1级时间缓冲器130和2级时间缓冲器132可在时间选择组件134的控制下进行操作。时间选择组件134可接收输入视频102和下采样104的输出中的一个或多个以选择时间模式。这在稍后的实例中更详细地解释。
24.图2展示第一实例解码器200。所示组件还可被实施为对应解码过程的步骤。解码器接收由例如图1的编码器100之类的编码器产生的三个流(经编码基础流210、经编码1级流216和经编码2级流228)连同含有进一步解码信息的标头236。经编码基础流210由对应于编码器中使用的基础解码器的基础解码器208进行解码,且其输出与通过对经编码1级流216进行解码240而获得的经解码残差进行组合238。组合的视频经过上采样242且进一步与通过将解码操作246应用于经编码2级流228而获得的经解码残差进行组合244。
25.图3a和3b展示第二实例编码器300、380的不同变化。第二实例编码器300、380可包括图1的第一实例编码器100的实施方案。在图3a和3b的实例中,更详细地展开流的编码步骤以提供可如何执行步骤的实例。图3a示出具有仅设置于第二层级的增强过程,即相对于2级编码,中的时间预测的第一变化。图3b示出具有在两个增强层级,即1级和2级,中执行的时间预测的第二变化。
26.基础流310大体上通过如参考图1所解释的过程产生。也就是说,对输入视频302进
行下采样304(即,下采样操作304应用于输入视频302以产生经下采样输入视频)。接着使用第一基础编码器306对通过对输入视频302进行下采样304而获得的经下采样视频进行编码(即,编码操作应用于经下采样输入视频以使用第一或基础编码器306产生经编码基础流310)。优选地,第一或基础编码器306是适于硬件解码的编解码器。经编码基础流310可被称为基础层或基础层级。
27.如上所述,增强流可包括两个流。第一增强层级(本文中描述为“1级”)提供可与基础流的经解码型式组合以产生经校正图片的校正数据集合。此第一增强流在图1和3中示出为经编码1级流316。增强流可由增强编码器产生。增强编码器可不同于用于产生经编码基础流310的基础编码器306。
28.为了产生经编码1级流316,使用基础解码器308对经编码基础流310进行解码(即,解码操作应用于经编码基础流310以产生经解码基础流)。经解码基础流与通过对输入视频302进行下采样304而获得的经下采样输入视频之间的差312接着产生(即,减法操作312应用于经下采样输入视频和经解码基础流以产生第一残差集合)。此处,术语残差以与此项技术中已知的方式相同的方式使用,即,参考帧与期望帧之间的误差。此处,参考帧是经解码基础流,且期望帧是经下采样输入视频。因此,第一增强层级中使用的残差可被视为经校正视频,因为其将经解码基础流

校正’为基础编码操作中使用的经下采样输入视频。
29.差312接着经编码以产生经编码1级流316(即,编码操作应用于第一残差集合以产生第一增强流316)。
30.在图3a和3b的实例实施方案中,编码操作包括若干步骤,其中的每一者是任选的且优选的且提供特定益处。
31.在图3中,所述步骤包含变换步骤336、量化步骤338和熵编码步骤340。
32.尽管图中未展示,但在一些实例中,编码过程识别是否选择残差分级模式。如果选择残差模式,那么可执行残差分级步骤(即,可对第一残差步骤执行残差分级操作以产生经分级残差集合)。经分级残差集合可经滤波,使得并非所有残差被编码到第一增强流316(或校正流)中。
33.接着对第一残差集合或者经分级或经滤波的第一残差集合进行变换336、量化338和熵编码340以产生经编码1级流316(即,取决于是否选择分级模式将变换操作336应用于第一残差集合或经滤波的第一残差集合以产生经变换残差集合;将量化操作338应用于经变换残差集合以产生经量化残差集合;并且将熵编码操作340应用于经量化残差集合以产生第一层级的增强流316)。优选地,熵编码操作340可为霍夫曼(huffman)编码操作或游程长度编码操作或这两者。任选地,控制操作(图中未展示)可应用于经量化残差集合以便校正分级操作的效应。
34.如上所述,增强流可包括第一增强层级316和第二增强层级328。第一增强层级316可被视为经校正流。第二增强层级328可被视为将经校正流转换为原始输入视频的另一增强层级。
35.通过对另一残差集合进行编码来产生另一增强层级328,所述残差为经解码1级流的经上采样型式与输入视频302之间的差324。
36.在图3中,经量化(或受控)的残差集合经过逆量化342且逆变换344,随后去块滤波器(图中未展示)任选地经应用以产生经解码第一残差集合(即,逆量化操作342应用于经量
化第一残差集合以产生经去量化第一残差集合;逆变换操作344应用于经去量化第一残差集合以产生经去变换第一残差集合;并且去块滤波器操作任选地应用于经去变换第一残差集合以产生经解码第一残差集合)。去块滤波器步骤取决于所应用的变换336为任选的,且包括将经加权掩模应用于经去变换344第一残差集合的每一块。
37.将经解码基础流与经解码第一残差集合进行组合320(即,对经解码基础流和经解码第一残差集合执行求和操作320以产生重新产生的第一流)。如图3a和3b中所示出,接着对所述组合进行上采样322(即,上采样操作322应用于重新产生的第一流以产生经上采样的重新产生的流)。
38.接着将经上采样流与输入视频302进行比较,所述输入视频形成另一残差集合(即,差运算324应用于经上采样的重新产生的流以产生另一残差集合)。所述另一残差集合接着经编码为经编码2级增强流328(即,编码操作接着应用于所述另一残差集合以产生经编码的另一增强流328)。
39.如同经编码1级流316,应用于2级残差的编码可包括若干步骤。图3a将步骤示出为时间预测(在下文进一步描述)、变换348、量化350和熵编码352。
40.尽管图中未展示,但在一些实例中,编码过程识别是否选择残差分级模式。如果选择残差模式,那么可执行残差分级步骤(即,可对另一残差集合执行残差分级操作以产生另一经分级残差集合)。另一经分级残差集合可经滤波,使得并非所有残差被编码到另一增强流328中。
41.另一残差集合或另一经分级残差集合随后经变换348(即,对另一经分级残差集合执行变换操作348以产生另一经变换残差集合)。如所示出,在上采样322之前,变换操作348可利用从重新产生的第一流导出的预测系数或预测平均值。其它信息如下。
42.图3a展示第二实例编码器300的变化,其中时间预测作为2级编码过程的部分而执行。使用时间选择组件334和2级时间缓冲器332执行时间预测。时间选择组件334可如下文更详细地描述确定时间处理模式,且相应地控制2级时间缓冲器332的使用。举例来说,如果将不执行时间处理,那么时间选择组件334可指示2级时间缓冲器332的内容将设定为0。图3b展示第二实例编码器380的变化,其中时间预测作为1级和2级编码过程两者的部分而执行。在图3b中,除了2级时间缓冲器332还提供1级时间缓冲器330。尽管未展示,但其中在1级处而非2级处执行时间处理的另外的变化也是可能的。
43.当选择时间预测时,图3a或3b的第二实例编码器300、380可通过减去从适当时间缓冲器导出的对应系数集合来进一步修改系数(即,由变换组件输出的经变换残差)。对应系数集合可包括从先前帧导出的相同空间区域(例如,定位于帧内的相同编码单元)的系数集合(例如,针对先前帧的相同区域的系数)。这些系数可经导出或以其它方式从时间缓冲器获得。从时间缓冲器获得的系数在本文中可被称为时间系数。可由例如第三减法组件354和356之类的减法组件应用减法(用于相应2级和1级)。将相对于稍后的实例进一步描述此时间预测步骤。概括地说,当应用时间预测时,经编码系数对应于帧与流的另一帧之间的差。另一帧可为流中较早或稍后的帧(或帧中的块)。因此,代替于对经上采样的重新产生的流与输入视频之间的残差进行编码,编码过程可对流中的经变换帧与所述帧的经变换残差之间的差进行编码。因此,熵可减小。可基于控制信息而选择性地应用时间预测以用于编码单元的群组(在本文中被称为“图块”),且可通过发送额外控制信息连同经编码流(例如,标
头内或作为如参考稍后实例所描述的另一表面)而应用解码器处的时间预测的应用。
44.如图3a和3b中所展示,当时间预测为活跃时,每一经变换系数可为:
45.δ=f
当前-f
缓冲器
46.其中时间缓冲器可存储与先前帧相关联的数据。可针对一个彩色平面或针对多个彩色平面执行时间预测。一般来说,可针对视频“帧”应用减法作为逐元素减法,其中帧的元素表示经变换系数,其中相对于特定n乘n编码单元大小(例如2
×
2或4
×
4)而应用变换。由时间预测产生的差(例如上述差量,可存储在缓冲器中以用于后续帧。因此,实际上,由时间预测产生的残差是相对于缓冲器的系数残差。尽管图3a和3b展示时间预测在变换操作之后执行,但其也可在量化操作之后执行。这可避免需要应用2级逆量化组件358和/或1级逆量化组件360。因此,如图3a和3b中所示出和上文所描述,在执行编码过程之后第二实例编码器300、380的输出是经编码基础流310以及一个或多个增强流,所述一个或多个增强流优选地包括用于第一增强层级的经编码1级流316和用于另一或第二增强层级的经编码2级流328。
47.图4a和4b示出第二实例解码器400、480的相应变化。第二实例解码器400、480的变化可分别经实施以对应于图2的第一实例解码器200。如可清楚地看到,更详细地展开解码步骤和组件以提供可如何执行解码的实例。如同图3a和3b,图4a示出其中时间预测仅用于第二层级(即,2级)的变化,且图4b示出其中时间预测用于两个层级(即,1级和2级)的变化。如前所述,设想另外的变化(例如,1级但非2级),其中可使用信令信息控制配置的形式。
48.如图4b的实例中所展示,在解码过程中,解码器480可解析标头436(例如,含有全局配置数据、图片配置数据和其它数据块)且基于那些标头436配置解码器。为了重新产生输入视频,解码器400、480可对基础流410、第一增强流416和另一增强流428中的每一个进行解码。所述流的帧可经同步且接着组合以导出经解码视频448。
49.在每一解码过程中,增强流可经历熵解码450、452、逆量化454、456和逆变换458、460的步骤以重新产生残差集合。
50.图4a和4b的解码过程包括检索表示第一增强层级的经熵解码的经量化系数的阵列,以及输出l-1残差的阵列。在此情况下,通过将熵解码450操作应用于经编码l-1流416来获得经熵解码的经量化系数。图4a和4b的解码过程进一步包括检索基础解码器408的输出的样品的阵列。图4a和4b的解码过程进一步包括将去量化过程454应用于经熵解码的经量化系数的阵列以导出经去量化系数集合,将变换过程458应用于经去量化系数集合,以及任选地应用滤波过程(图4a和4b中未展示)来输出表示第一增强层级的l-1残差的阵列,其可被称为预备残差集合。在此情况下,将去量化过程454应用于经编码1级流416的帧的相应块的经熵解码的经量化系数,且将变换过程458(其可被称为逆变换操作)应用于所述帧的相应块的去量化过程454的输出。图4a和4b的解码过程接着进一步包括通过将l-1残差的阵列与基础解码器408的输出的样品的阵列进行组合462来重新产生图片。图4a和4b的解码过程包括根据传信的参数应用来自预定变换过程的集合的变换过程458。举例来说,变换过程458可应用于2
×
2编码单元或4
×
4编码单元。编码单元在本文中可被称为阵列中的元素块,在此情况下为l-1残差的阵列。
51.图4a和4b的解码过程包括检索表示另一增强层级的经熵解码的经量化系数的阵列,以及输出残差的阵列。在图4a和4b中展示的解码过程中,另一增强层级是第二增强层
级,且残差输出的阵列是l-2残差的阵列。图4a和4b的方法进一步包括检索与表示另一增强层级的经熵解码的经量化系数的阵列相对应的第一增强层级的l-1残差的阵列。图4a和4b的方法进一步包括将上采样过程464应用于第一增强层级的残差的阵列。在图4a和4b中,上采样过程464应用于第一增强层级的l-1残差的阵列与基础解码器408的输出的样品的对应阵列的组合。
52.在图4a和4b中,上采样过程464是经修改上采样过程,其中将修改符添加到残差。添加修改符的步骤可作为变换过程460的部分而执行。或者,因为变换过程460涉及线性变换,所以添加修改符的步骤可作为经修改上采样过程464的部分而执行,如图4a和4b中所展示。添加修改符的步骤因此引起残差的修改。所述修改可基于残差在帧中的位置而执行。所述修改可为预定值。
53.在图4a中,在2级解码期间应用时间预测。在图4a的实例中,时间预测由时间预测组件466控制。在此变化中,从经编码2级流428提取用于时间预测的控制信息,如由从流到时间预测组件466的箭头所指示。在例如图4b中展示的其它实施方案中,用于时间预测的控制信息可单独地例如在标头436中从经编码2级流428发送。时间预测组件466控制2级时间缓冲器432的使用,例如其可确定时间模式且控制时间刷新,如参考稍后的实例所描述。可基于残差的先前帧的数据而更新时间缓冲器432的内容。当应用时间缓冲器432时,将缓冲器的内容添加468到第二残差集合。在图4a中,将时间缓冲器432的内容添加468到2级解码组件446(其在图4a中实施熵解码452、逆量化456和逆变换460)的输出。在其它实例中,时间缓冲器的内容可表示中间解码数据的任何集合,且因此,添加468可恰当地移动以在适当阶段应用时间缓冲器的内容(例如,如果在经去量化系数阶段应用时间缓冲器,那么添加468可位于逆变换460之前)。经时间校正的第二残差集合接着与上采样464的输出进行组合470以产生经解码视频448。经解码视频448处于2级空间分辨率,其可高于1级空间分辨率。第二残差集合将校正应用于(可检视)经上采样的经重构视频,其中所述校正详细地加回且改善线和特征的锐度。
54.变换过程458、460可根据传信参数而选自预定变换过程的集合中。举例来说,变换过程460可应用于l-2残差的阵列中的元素的2
×
2块或l-2残差的阵列中的元素的4
×
4块。
55.图4b展示第二实例解码器480的变化。在此情况下,由时间预测组件466从标头436接收时间预测控制数据。时间预测组件466控制1级和2级时间预测两者,但在其它实例中,可视需要为两个层级提供单独的控制组件。图4b展示了添加468到2级解码组件446的输出的经重构第二残差集合可如何反馈以存储在用于下一帧的2级时间缓冲器432中(为了清晰起见,从图4a中省略所述反馈)。还展示以与上文描述的2级时间缓冲器432类似的方式进行操作的1级时间缓冲器430,且在此图中展示用于缓冲器的反馈环路。1级时间缓冲器430的内容经由求和472添加到1级残差处理管线中。再次,此求和472的位置可取决于在何处应用时间预测而沿着1级残差处理管线变化(例如,如果时间预测在经变换系数空间中应用,那么求和可位于1级逆变换组件458之前)。
56.图4b展示时间控制信息可传信到解码器的两种方式。第一方式是经由标头436,如上文所描述。可用作替代性或额外传信路径的第二方式是经由残差本身内编码的数据。图4b展示其中数据474可编码到hh经变换系数中且因此可在熵解码452之后提取的案例。此数据474可从2级残差处理管线提取且传递到时间预测组件466。
57.每一增强流或两个增强流可使用网络抽象层单元(nalu)的集合囊封到一个或多个增强位流中。nalu意图囊封增强位流以便将增强应用于正确的基础重构帧。nalu可例如含有对nalu的参考索引,其含有增强必须应用于的基础解码器经重构帧位流。以此方式,增强可同步到组合的基础流和每一位流的帧以产生经解码输出视频(即,增强层级的每一帧的残差与基础解码流的帧进行组合)。图片的群组可表示多个nalu。
58.每一帧可由表示不同颜色分量的三个不同平面构成,例如三通道yuv视频的每一分量可具有不同平面。每一平面可接着具有关于给定增强层级的残差数据,例如,y平面可具有1级残差数据的集合和2级残差数据的集合。在某些情况下,例如对于单色信号,可仅存在一个平面;在此情况下,术语帧和平面可互换使用。1级残差数据和2级残差数据可分割如下。残差数据被分成块,所述块的大小取决于所使用的变换的大小。如果使用2
×
2定向分解变换,那么所述块为例如元素的2
×
2块,或如果使用4
×
4定向分解变换,那么所述块为元素的4
×
4块。图块是覆盖帧的区(例如,m乘n区,其可为正方形区)的块的群组。图块为例如元素的32
×
32图块。如此,经编码流中的每一帧可被分成多个图块,且所述多个图块的每一图块可被分成多个块。对于彩色视频,每一帧可被分割成多个平面,其中每一平面被分成多个图块,且所述多个图块的每一图块被分成多个块。
59.上文提到在整个过程中,处理组件或工具的集合可如何应用于增强流中的每一者(或输入视频102、302)。下文提供所述工具中的每一者的概述以及其在如图1到4中所示出的总体过程内的功能性。
60.下采样过程104、304应用于输入视频102、302以产生待由基础编码器106、306进行编码的经下采样视频。下采样104、304可在竖直和水平方向两者上进行,或替代地仅在水平方向上进行。
61.到l-1编码操作114的输入包括l-1残差,其是通过取得基础解码器108、308的经解码输出与通过对输入视频102、302进行下采样104、304而获得的经下采样视频之间的差112、312获得的。所述l-1残差接着经变换336、量化338和编码340,如下文进一步描述。变换336输出变换系数(即,经变换的l-1残差)。
62.存在可在变换过程336中使用的两种类型的变换。两者均利用小内核,所述内核直接应用于在应用预测平均值的阶段之后所保留的残差。
63.第一变换具有应用于残差的2
×
2块的2
×
2内核。所得系数如下:
[0064][0065]
第二变换具有应用于残差的4
×
4块的4
×
4内核。所得系数如下:
[0066][0067]
如果下采样和/或上采样仅在水平方向上执行(例如,某些元素设定为0),那么还可应用合适地调适的变换。如果使用哈达玛(hadamard)变换,例如如上述实例矩阵中所示出,那么解码或逆变换可使用相同矩阵,例如哈达玛矩阵是其自身的逆向。在此情况下,举例来说,可在解码器处使用r=h*c从系数c的对应(m
×
n)
×
1阵列导出关于m
×
n块的残差r的(m
×
n)
×
1阵列,其中h等于上文展示的哈达玛矩阵中的一者。
[0068]
所述系数接着使用线性量化器进行量化338。线性量化器可使用可变大小的死区。线性量化器可使用与量化步骤和非居中去量化偏移不同大小的死区。
[0069]
使用熵编码器340对经量化系数进行编码。存在两个熵编码340的方案。在第一方案中,使用游程长度编码器(rle)对经量化系数进行编码。在第二方案中,首先使用rle对经量化系数进行编码,接着使用霍夫曼编码器处理经编码输出。这可利用rle有利地对通常与经变换残差一起发现的0的长流进行编码,且接着进一步使用霍夫曼编码器有利地对经量化值(例如,其常常具有减小的数目,因为所述值归因于残差和其线性变换值的分布而增加)的不同频率进行编码。
[0070]
如果已选择残差模式(rm),那么进一步分级且选择l-1残差以便确定应对哪些残差进行变换336和编码。优选地,这在熵编码340之前预先形成。
[0071]
如果针对l-1编码选择时间选择模式,那么编码器将通过减去从1级时间缓冲器
130、330导出的对应系数,即下文描述的时间预测,来进一步修改系数。
[0072]
到l-1解码操作118的输入包括经l-1编码残差,所述残差通过熵解码器450、去量化器454和逆变换模块458。由这些模块执行的操作是由上文描述的模块执行的逆操作。
[0073]
如果已针对l-1编码选择时间选择模式,那么可从来自1级时间缓冲器130、330的协同定位的残差部分地预测残差。协同定位的残差在本文中可被称为时间预测。
[0074]
如果使用4
×
4变换,那么经解码残差可被馈送到去块滤波器模块。去块滤波器通过应用权重可被指定的掩模而在经变换残差的每一块上操作。掩模的一般结构如下:
[0075][0076]
其中0≤α≤1并且0≤β≤1。
[0077]
对来自组合120、320经解码(且经去块,如果适用的话)l-1残差和基础解码视频的输出进行上采样122、322以便产生经上采样的经重构视频。上采样可为可选的且在字节流中传信。
[0078]
到l-2编码操作126的输入包括通过取得经上采样的经重构视频与输入视频102、302之间的差124、324而获得的l-2残差。l-2残差接着经变换348、量化350和编码352,如下文进一步描述。以如关于l-1编码114所描述的相同的方式执行变换348、量化350和编码352。如参考l-1编码114所解释,变换348输出变换系数(即,经变换l-2残差)。如果已选择rm,那么进一步分级且选择l-2残差以便确定应对哪些残差进行变换和编码。l-2编码操作126可进一步包括如下文所描述的两个额外过程。
[0079]
如果选择经预测系数模式,那么编码器将进一步修改经变换系数c00(例如,用于2
×
2变换的“平均值”或“a”系数)。如果使用2
×
2变换,那么将通过减去预测残差的经变换块所根据的经上采样残差的值来修改c00。如果使用4
×
4变换,那么将通过减去预测残差的经变换块所根据的四个经上采样残差的平均值来修改c00。
[0080]
如果针对l-2编码选择时间选择模式,那么编码器将通过减去从2级时间缓冲器132、332导出的对应系数来进一步修改系数,如上文所描述。
[0081]
到l-2解码操作246、446的输入包括经编码l-2残差。l-2残差的解码过程通过熵解码器452、去量化器456和逆变换模块460。由这些模块执行的操作是由上文描述的模块执行的逆操作。如果已针对l-2编码选择时间选择模式,那么可从来自2级时间缓冲器132、332的协同定位的残差部分地预测残差。协同定位的残差在本文中可被称为时间预测。
[0082]
经修改的上采样过程242、464包括两个步骤,第二步骤取决于由解码器接收的信令。在第一步骤中,对经解码(且经去块,如果适用的话)l-1残差和基础解码视频208、408(l-1经重构视频)的组合238、462进行上采样以产生经上采样的经重构视频。如果已选择预测系数模式,那么实施第二步骤。确切地说,导出经上采样的经重构视频中的2
×
2块的l-1重构值中的元素的值被添加到经上采样的经重构视频中的所述2
×
2块。
[0083]
贯穿上文,术语位流可按需要被流或字节流或nalu流代替。
[0084]
现将描述时间预测的某些变化和实施细节,包含时间信令的某些方面。
[0085]
在本文中所描述的某些实例中,可使用来自与不同时间样品相关的两个或更多个
视频帧的信息。这可被描述为时间模式,例如,因为其涉及来自不同时间的信息。如本文中所描述,对一个或多个残差集合进行编码的步骤可利用被布置成存储与前一视频帧相关的信息的时间缓冲器。在一种情况下,对残差集合进行编码的步骤可包括从时间缓冲器导出时间系数集合且使用所检索的时间系数集合来修改当前系数集合。在这些实例中,“系数”可包括经变换残差,例如如参考视频流的帧的一个或多个编码单元所定义,方法可应用于残差和系数两者。在某些情况下,可使用编码器和解码器处的不对称方法。举例来说,如图1至4b中所展示,编码可基于系数(例如,经变换残差)而实施时间处理,而解码可基于残差(例如,图4a中的2级残差)而实施时间处理。在某些情况下,编码器处的修改可包括从当前系数集合减去时间系数集合。此方法可应用于多个系数集合,例如涉及2级流和涉及1级流的那些。可例如参考视频数据帧内的编码单元而选择性地执行对当前系数集合的修改。
[0086]
可在编码和解码阶段两者处应用时间方面。时间缓冲器的使用展示于图3a和3b的编码器300、380中且展示于图4a和4b的解码器400、480中。如本文中所描述,在修改编码器处的当前系数集合之前,所述当前系数集合可经历分级和变换中的一者或多者。在一种情况下,来自对应位置(例如,相同位置或映射位置)处的先前经编码(n-1)帧的经去量化经变换系数dqc
x,y,n-1
用于预测待编码为(n)的帧中的系数c
x,y,n
。如果使用4
×
4变换,那么x,y可在范围[0,3]内;如果使用2
×
2变换,那么x,y可在范围[0,1]内。经量化系数可由逆量化块或操作产生。举例来说,在图3a和3b中,通过逆量化组件358、360产生经去量化系数。使用经去量化系数,例如已经量化且随后经去量化的前一帧的系数,可允许通过(有损)量化引入的特征的某些校正。在其它实例中,可在量化之前获取并缓冲未经量化系数。可使用任一方法。
[0087]
在某些实例中,可存在至少两个时间模式:
[0088]
·
不使用时间缓冲器或使用具有所有零值的时间缓冲器的第一时间模式。第一时间模式可被视为帧内模式,因为其仅使用来自当前帧内的信息。在第一时间模式中,在任何所应用的分级和变换之后,可基于来自一个或多个先前帧的信息而在无需修改的情况下量化系数。
[0089]
·
利用时间缓冲器,例如使用具有可能非零值的时间缓冲器,的第二时间模式。第二时间模式可被视为帧间模式,因为其使用来自当前帧外部,例如来自多个帧,的信息。在第二时间模式中,在任何所应用的分级和变换之后,可从待量化的系数减去先前帧经去量化系数——c
x,y,n,帧间
=c
x,y,n-dqc
x,y,n-1

[0090]
在一种情况下,可通过对归零时间系数集合执行减法来应用第一时间模式。在另一情况下,可基于时间信令数据而选择性地执行减法。图5a和5b展示用于两种相应时间模式的编码器中的实例操作。图5a中的第一实例500展示系数集合由编码组件502在第一时间模式c
x,y,n,帧内
中产生。随后传递这些用于量化。图5b中的第二实例504展示系数集合由编码组件506在第二时间模式c
x,y,n,帧间
中通过如上文所描述的减法508产生且接着传递用于量化。随后根据图3a和3b对两种情况下的经量化系数进行编码。应注意,在其它实例中,可在量化之后或在编码管线中的另一点处应用时间模式。
[0091]
可传信两个时间模式中的每一者。可在编码器与解码器之间提供时间信令。两个时间模式可为在视频流内可选的,例如不同模式可应用于视频流的不同部分。时间模式还可或替代地针对整个视频流传信。时间信令可形成例如从编码器传输到解码器的元数据的
部分。可对时间信令进行编码。
[0092]
在一种情况下,可针对视频流,例如针对视频流内的多个帧,定义全局配置变量。举例来说,此可包括temporal_enabled旗标,其中0值指示第一时间模式且1值指示第二时间模式。在其它情况下,以及/或代替全局配置值,可对视频流内的每一帧或“图片”指派有指示时间模式的旗标。如果temporal_enabled旗标用作全局配置变量,那么此可由编码器设定且被传送到解码器。可选择旗标值以便减少需要在位流中传输的数据量(例如,可使用如下文更详细地描述的游程长度编码来压缩0值)。
[0093]
在某些情况下,视频流的帧的一个或多个部分可被指派有指示所述部分的时间模式的变量。举例来说,所述部分可包括编码单元或块,例如通过2
×
2或4
×
4变换矩阵而变换的2
×
2或4
×
4区域。在某些情况下,每一编码单元可被指派有指示时间模式的变量。举例来说,1值可指示第一时间模式(例如,所述单元为“帧内”单元),且0值可指示第二时间模式(例如,所述单元为“帧间”单元)。可在编码器与解码器之间传信与每一部分相关联的变量。仅作为实例提供0和1值,在某些情况下,这些值可被指派到不同模式,例如以减少传信成本。在一种情况下,此可通过将经变换系数中的一者设定为变量值来执行,例如此可通过将用于2
×
2编码单元的h系数或用于4
×
4编码单元的hh系数设定为变量值(例如,0或1)而传信。在另一情况下,每一编码单元可包括指示时间模式的元数据和/或边带信令。图5c展示前一种情况的实例510。在此实例510中,存在由2
×
2变换产生的四个系数512。可通过变换残差的2
×
2编码单元(例如,针对给定平面)来产生这四个系数512。当使用哈达玛变换时,四个系数可被称为a、h、v和d分量514,其分别表示编码单元内的平均、水平、竖直和对角线方面。在图5c的实例510中,h分量用于传信时间模式,如516所展示。
[0094]
可基于所指示的时间模式而在编码器和/或解码器处选择性地应用时间处理。可例如用游程长度编码等对用于增强流的帧的部分的元数据和/或边带信道内的时间信令进行编码以减小待传输到解码器的数据的大小。在此情况下,时间信令可经结构化为时间表面,其中表面具有coding_units_width
×
coding_units_height的大小,例如具有等于图片宽度和高度的大小除以编码单元大小(即,每一图片维度中编码单元的数目)的位图或其它图像。时间表面可被视为类似于经编码系数表面,例如用于视频帧的平面的所有a分量可被编码为“a”表面(等,用于其它系数)。游程长度编码对于例如编码单元和/或图块之类的小部分可为有利的,其中存在几个时间模式(例如,因为此元数据可包括具有重复值的序列的
‘0’

‘1’
的流)。
[0095]
在某些情况下,可估计用于视频的至少一部分的每一时间模式的成本。这可在编码器处或在不同装置中执行。在某些情况下,选择且传信具有较小成本的时间模式。在编码器中,此可由图3a和3b中所展示的时间选择块334和/或时间模式选择块362、364执行。解码器接着可对信令进行解码且应用所选择的时间模式,例如如编码器所指示。成本函数可基于待发送到解码器的数据,包含经编码残差数据和信令数据。
[0096]
可按每帧基础和/或按每部分基础,例如按每图块和/或按每编码单元,执行成本核算。在后一种情况下,在量化和编码之前,成本核算评估的结果可用以设定用于编码单元的时间模式变量。
[0097]
在某些情况下,可提供指示视频的帧的初始时间模式或帧的部分集合的图。此图可由编码器使用。在一种情况下,可如下文更详细地描述通过经编码用于成本估计中而获
得temporal_type变量。
[0098]
在一种情况下,用于选择时间模式的成本可为可控制的,例如通过设定配置文件中的参数。在一种情况下,用于选择时间模式的成本可基于输入帧与一个或多个残差集合(例如,如经重构的)之间的差。在另一情况下,成本函数可基于输入帧与经重构帧之间的差。可评估每一时间模式的成本,且可选择具有最小成本的模式。所述成本可基于绝对差总和(sad)计算。可按每帧和/或每编码单元以此方式来评估成本。
[0099]
举例来说,第一成本函数可基于jo=总和(abs(i
x,y,n-r
x,y,v,o
)),其中i
x,y,n
为输入值(例如,来自输入视频102),r
x,y,v,o
为经重构残差且o为帧内或帧间帧(即,指示第一或第二时间模式)。可使用来自每一时间模式的经重构残差来评估成本函数,且接着可针对每一时间模式比较成本函数的结果。第二成本函数可基于应用用于非零经量化系数的惩罚的额外术语和/或基于在这些经量化系数用于信令的情况下(例如,在变换之后)的一个或多个定向分量的值。在第二情况下,第二成本函数可基于jo=sum(abs(i
x,y,n-r
x,y,v,o
))+step_widthaa*总和((qc
x,y,n,o
!=0)+((o==帧内)&(qc
0,3,n,帧内
==0))),其中步宽是可凭经验调整的可配置权重或乘数,qc
x,y,n,o
是经量化系数且qc
0,3,n,帧内
是与h(用于2
×
2变换)或hh(用于4
×
4变换)元素有关的系数。在其它情况下,在边带信令处于使用中的情况下,将这些位设定为1的成本可并入到第二成本函数中。对于第一时间模式(例如,帧内模式),可根据r
x,y,n,帧内
=变换(dqc
x,y,n,帧内
)重构残差,其中“dq”指示经去量化。对于第二时间模式(例如,帧间模式),可根据r
x,y,n,帧间
=变换(dqc
x,y,n,帧间
+dqc
x,y,n-1
)重构残差。在两种情况下,“变换”可指示系数的逆变换。如果变换矩阵为自逆矩阵,那么共同或共享矩阵可用于正变换和逆变换两者。如前所述,可在信令信息,例如元数据和/或设定参数值,中指示所使用的时间模式。此信令信息可被称为时间模式信令数据。编码器可被配置成产生指示用于解码器的一个或多个经编码增强流的时间模式的时间模式信令数据。编码器可例如通过对时间模式信令数据进行编码来压缩时间模式信令数据,例如使用如下文中进一步论述的游程长度编码。
[0100]
成本函数可并有发送时间模式信令数据的成本,如在上文所描述的第二成本函数中。以此方式,发送用于时间模式的时间模式信令数据的成本可使时间模式信令数据的一个值相比于时间模式信令数据的其它值而言为不利的。
[0101]
在一种情况下,可在编码器处评估成本。举例来说,时间选择块可评估成本。在其它情况下,可由单独实体(例如,在视频流的预处理期间的远程服务器)和传信到编码器和/解码器的时间模式来评估成本。在任一情况下,编码器可被配置成基于成本函数确定时间模式。
[0102]
如果选择第二时间模式(例如,帧间处理),那么接着将经修改的经量化系数(例如,由图3b中的变换348、336与量化350、336之间的减法块354、356输出)发送用于熵编码352、340。通过对这些系数进行去量化358、360而获得的这些系数的经去量化值接着可保持用于下一帧,例如帧n+1,的时间预测。尽管图3b展示用于1级流的两个单独逆量化操作342、360,但应注意,在某些情况下,这些可包括单一共同逆量化操作。
[0103]
时间模式选择和时间预测可应用于图3b中所展示的2级和1级流中的一个或多个(例如,应用于一个或两个残差集合)。在某些情况下,时间模式可针对每一流单独地配置和/或传信。
[0104]
如稍后的部分中所描述,在某些实例中,第二时间模式可利用时间刷新参数。此参数可在将要刷新时间缓冲器时,例如在将要用第二值集合替换存储在时间缓冲器中的第一值集合的情况下,传信。可在编码器和解码器中的一个或多个处应用时间刷新。如果解码器使用存储残差而非系数值的时间缓冲器,那么时间刷新可应用于所述缓冲器。
[0105]
在编码器中,时间缓冲器可存储当时间刷新旗标经设定(例如,等于指示“刷新”的1)时所负载的前一帧的经去量化系数。时间缓冲器可为时间缓冲器130、132、230、232、330、332、430、432中的任一者。在此情况下,经去量化系数存储在时间缓冲器中且用于将来帧的时间预测(例如,用于减法),而同时帧的时间刷新旗标未经设定(例如,等于指示“无刷新”的0)。在此情况下,当接收到具有设定成1的相关联时间刷新旗标的帧时,替换时间缓冲器的内容。这可在每帧基础上执行和/或应用于例如图块或编码单元的帧的部分。如上文所阐述,本文中对“帧”的参考还应用于彩色视频的帧的平面(例如,其中平面和帧对于单色视频可为相同的)。
[0106]
时间刷新参数可用于表示缓慢变化或相对静态场景的帧集合,例如帧集合的第一快照可用于场景中的后续帧。当场景再次改变时,下一场景的帧集合中的第一帧可指示再次需要时间刷新。这可有助于加速时间预测操作。
[0107]
时间缓冲器的时间刷新操作可通过用时间缓冲器将所有值归零来实现。
[0108]
可通过编码器将时间刷新参数传信到解码器,例如传信为二进制temporal_refresh_bit,其中1指示解码器将刷新用于特定经编码流的时间缓冲器(例如,0级或1级)。
[0109]
如本文中所描述,在某些实例中,可将数据分组到图块中,例如图像的32
×
32块中。在此情况下,时间刷新操作,例如如上文所描述,可针对帧以逐图块为基础执行,例如其中系数存储在时间缓冲器中且可由图块寻址。可在编码器和解码器处不对称地应用用于平铺的时间刷新的机构。
[0110]
在一种情况下,可在编码器处执行时间处理操作以基于每帧或每块/编码单元而确定时间刷新逻辑。在某些情况下,用于解码器处的时间刷新的信令可适于保存从编码器传输到解码器的位数。
[0111]
图6a展示可在编码器处执行的时间处理的实例600。图6a展示实例编码器的时间处理子单元602。此编码器可基于图3a或3b的编码器300、380。时间处理子单元602接收指示为r的残差集合。这些可为如本文中所描述的2级或1级残差。其可包括经分级且经滤波残差的集合或未经分级且未经滤波残差的集合。时间处理子单元602输出指示为qc的经量化系数集合,所述经量化系数集合可随后经熵编码。在本实例中,时间处理子单元602还输出指示为ts的时间信令数据以供传送到解码器。时间信令数据ts可与经量化系数一起编码或与其分开编码。时间信令数据ts可被提供为标头数据和/或提供为边带信令信道的部分。时间信令数据可包括指示每一编码单元的时间模式的数据(例如,每一编码单元的可变transtempsig)。另外或替代地,时间信令数据可包括指示每一图块的时间模式的数据(例如,每一图块的可变tiletempsig)。以此方式,平铺的时间刷新可经由与经量化系数分开编码的边带信令信道的部分传信到解码器。
[0112]
在图6a的实例600中,残差(r)由变换组件604接收。此可对应于其它实例的变换组件,例如被布置成执行图3a和3b中的变换步骤336、348的组件中的一者。变换组件604输出如本文中所描述的变换系数(即,经变换残差)。时间处理子单元602还包括中央时间处理器
606。这还接收呈基于图块的时间刷新参数temporal_refresh_per_tile的形式的元数据和时间模式initial_temporal_mode的估计。可按每帧的编码单元提供时间模式的估计,且可按每图块提供基于图块的时间刷新参数。举例来说,如果使用2
×
2变换,那么编码单元涉及2
×
2区域,且在32
×
32图块中存在16
×
16此类区域,且因此存在256个编码单元。元数据可由编码器的另一子单元产生,例如在预处理操作中和/或可例如经由网络应用程序编程接口供应到编码器。
[0113]
在图6a的实例中,时间处理器606接收元数据且被配置成确定用于每一编码单元的时间模式和用于整个帧或图片的时间刷新位的值。时间处理器606控制时间缓冲器608的应用程序。时间缓冲器608可对应于如上文所提及的先前实例的时间缓冲器。时间缓冲器608从逆量化组件610接收经去量化或经逆量化系数,所述逆量化组件可对应于图3a和3b中的逆量化组件358、360中的一者。逆量化组件610进而以通信方式耦合到量化组件612的输出,所述量化组件可对应于图3a和3b中的量化组件338、350中的一者。时间处理器606可实施时间模式选择组件362、364的某些功能,如图3a和3b中所展示。尽管图6a展示量化组件612、逆量化组件610和时间缓冲器608之间的某一耦合,但在其它实例中,时间缓冲器608可在量化之前接收时间处理器606的输出,且因此可省略逆量化组件610。在图6a中,还展示基于时间处理器606的操作而产生时间信令ts的时间信令组件614。
[0114]
图6b展示对应实例解码器616,其中解码器接收每帧temporal_refresh位和每编码单元temporal_mode位。如上文所论述,在某些情况下,可在经编码系数内设定用于每一编码单元的时间模式,例如通过替换系数内的h或hh值。在其它实例中,可经由额外信令信息,例如经由边带和/或作为帧元数据的部分,发送每一编码单元的时间模式。这可描述为使用提供时间信令的时间表面。
[0115]
在图6b的实例解码器616中,在解码器处提供时间处理子单元618。此可实施1级或2级解码组件的至少一部分。时间处理子单元618包括逆量化组件620、逆变换组件622、时间处理器624和时间缓冲器626。逆量化组件620和逆变换组件622可包括图4a和4b中所展示的逆量化组件454、456和逆变换组件458、460的实施方案。时间处理器624可对应于由时间预测组件466和求和468或由时间预测组件466和求和472所应用的功能性。时间缓冲器626可对应于时间缓冲器430、432中的一者。在图6b中,还存在时间信令组件628,其接收数据630,在此实例中,所述数据经指示于位流的标头h的集合中。这些标头h可对应于图4b的标头436。应注意,时间子单元602、618可在某些情况下由不同于本文中的其它实例的相应编码器和解码器实施。
[0116]
在某些情况下,当时间模式经启用时,例如经启用为由全局temporal_enabled位设定时,图6a的时间处理器606被配置成使用基于图块的时间刷新参数temporal_refresh_per_tile和时间模式initial_temporal_mode的估计,且确定用于每一编码单元的时间模式的值以及用于改善编码器与解码器之间的通信效率的整个帧的时间刷新位的值。
[0117]
在一种情况下,时间处理器606可基于时间模式initial_temporal_mode的估计而确定成本,且使用这些成本来设定传送到解码器的值。
[0118]
在一种情况下,时间处理器606可基于跨越帧的编码单元集合的不同经估计时间模式的百分比,例如在编码单元具有时间模式的初始估计的情况下,而最初确定是否应该执行和传信每帧刷新。举例来说,首先,两个经估计时间模式(例如,与2
×
2或4
×
4变换相关
联的元素)的所有编码单元在其具有绝对差的零总和(例如,其中不存在残差的情况)的情况下可被忽略。可接着基于非零编码单元的比例(例如,百分比)来估计帧的刷新位。在某些实例中,可基于最初估计为涉及第一时间模式的编码单元的百分比而设定时间缓冲器的内容的刷新操作。举例来说,如果在不设定temporal_refresh_per_tile的情况下估计为涉及第一时间模式的编码单元的60%以上,或如果在设定temporal_refresh_per_tile的情况下认为75%以上的编码单元涉及第一时间模式,那么可针对整个帧和经设定用于解码器的适当信令而刷新时间缓冲器608(例如,通过使缓冲器内的值归零)。在这些情况下,即使时间处理经启用(例如,经由temporal_enabled信令),也相对于时间缓冲器608内的归零值而执行任何减法,且因此类似于第一时间模式而抑制解码器处的时间预测。这可用于基于视频流内的改变(例如,如果其为现场流)而恢复回到第一时间模式,即使具有时间预测的第二时间模式经传信。这可改善检视质量。
[0119]
类似地,在某些情况下,即使第二时间模式经选择用于编码单元且传信到解码器,如果由基础编码器进行编码的帧被设定为i或帧内帧(例如,通过设定帧的temporal_refresh_bit),那么如上文刷新时间缓冲器608(例如,实现类似于第一时间模式的处理)。这可有助于确保当启用时间处理时遵循例如经编码的基础流的图片群组(gop)边界。
[0120]
是否例如针对图块执行时间刷新可取决于噪声序列是否与经隔离静态边缘一起存在。成本函数的确切形式可取决于实施方案。
[0121]
返回到由图6a的时间处理子单元602执行的处理,在对整个帧刷新的决策之后,第二阶段可涉及基于temporal_refresh_per_tile位值的基于图块的处理。这可针对帧的给定图块集合而按每图块执行。如果使用temporal_refresh_per_tile,且如果将旗标temporal_refresh_per_tile设定在由时间处理器608接收的元数据中,那么可执行以下处理。
[0122]
在第一子阶段,可检查给定图块的时间缓冲器是否已经为空。如果是,那么图块中的所有时间信号为零,且在第二时间模式中对此图块中的编码单元进行编码(例如,帧间编码),例如将用于所述单元的时间模式设定为第二模式,关于此模式在编码器处执行进一步时间处理,且将时间模式传信到解码器(例如,通过设定系数值或经由边带信令)。这可在时间缓冲器为空时根据第一时间模式有效地对图块进行编码(例如,帧内编码)。如果第二时间模式(例如,帧间模式)经由时间模式位中的0值而设定,那么此方法可在时间缓冲器将为空的情况下减少需要传送到解码器的位数。
[0123]
如果并不针对给定图块设定旗标temporal_refresh_per_tile,那么可根据第二时间模式(例如,作为帧间单元)对图块中的第一编码单元进行编码,且并不设定此图块的时间信令。在此情况下,针对图块内的其它编码单元执行如先前所描述的成本核算操作(例如,可基于绝对差总和(sad)度量而确定第一或第二时间模式)。在此情况下,对于其它编码单元,基于当前(例如,现场)编码条件而重新计算初始经估计时间模式信息。图块中的所有其它编码单元可经受以上程序和成本核算步骤。将图块中的第一编码单元编码为第二时间模式可用于指示解码器处的初始时间处理(例如,指示图块的初始刷新),其中基于经设定用于编码单元的temporal_mode位的经确认值而在解码器处执行用于其它编码单元的时间处理。
[0124]
如果针对给定图块设定旗标temporal_refresh_per_tile且用于图块的时间缓冲
器不为空,那么时间处理器可布置用于图块的时间刷新,其中时间信令接着经设定以在解码器处指示此。这可通过将第一编码单元的时间模式值设定为1且将所有其它编码单元的时间模式值设定为0来执行。第一编码单元中的1和其它编码单元中的0的此内容向解码器指示将相对于图块执行刷新操作但减少待跨越传输的信息。在此情况下,时间处理器有效地忽略时间模式值且根据第一时间模式对所有编码单元进行编码(例如,经编码为不具有时间预测的帧内编码单元)。
[0125]
因此,在这些实例中,当temporal_refresh_per_tile被设定为编码器元数据的部分时,第一编码单元可用于指示解码器在所述图块的位置处清洁(即,清空)其对应时间缓冲器,且编码器逻辑可应用时间处理作为适当时间模式。
[0126]
以上方法可允许基于图块内的编码单元而在每图块基础上执行时间预测。可针对图块内的一个编码单元设定给定图块的配置。这些方法可应用于2级流和1级流中的一个或多个,例如应用于残差集合中的一个或多个。
[0127]
在某些情况下,可针对视频流设定temporal_tile_intra_signalling全局参数以指示将在解码器处使用上文所描述的图块刷新逻辑。
[0128]
在某些实例中,可针对多个帧(例如,针对当前帧和下一帧)提供initial_temporal_mode数据。在这些实例中,下一帧,例如帧n+1,的initial_temporal_mode估计还可用于去除对于降低位速率而言并不重要的经量化值,经估计时间模式信息可用于控制与一个或多个阈值的比较以指示经量化值的去除(例如,在图3a或3b中的量化步骤350、338中的一者处或时间模式选择步骤362、364中的一者处)。
[0129]
在某些情况下,如果估计下一帧中的相同位置处的编码单元的initial_temporal_mode与第一时间模式(例如,帧内模式)相关,那么可假定当前编码单元中待编码的残差将会在下一帧中消失,且因此可去除小于或等于给定阈值的残差。作为实例,在测试情况下,此阈值可设定为2,意味着将从编码单元去除小于+/-3的所有经量化值。
[0130]
图6c展示可如何针对残差634的帧(或平面)提供时间信令信息的实例632。图6c的左手侧展示残差帧可如何被分成数个图块636。图6c的右手侧展示时间信令信息可如何被指派到每一图块。举例来说,圆638指示第一图块640。在帧634中,图块跨帧634形成光栅状型样的行。右手侧更详细地展示第一图块640。
[0131]
图6c的右手侧上的圆638展示每一图块640如何包括可被称为编码单元的数个单元642。单元可包括一个或多个残差。在一种情况下,单元可涉及与变换操作相关联的残差块,例如如本文中所描述的2
×
2块,其可涉及定向分解变换(dd,如下文更详细地描述),或如本文中所描述的4
×
4块,其可涉及定向分解平方(dds)。在图6c中,每一图块640具有temporal_refresh_per_tile旗标(展示为“tr”),且图块内的每一单元642具有temporal_type旗标644(展示为“tt”)。此信息可由编码器获得且使用以应用如上文所描述的时间编码。
[0132]
如上文所描述,在一种情况下,可例如作为增强流的部分而“流中”提供时间信令。这可通过在变换之后替换特定系数来执行,例如时间信令被嵌入变换系数内。在一种情况下,水平系数(例如,2
×
2定向分解变换中的h或4
×
4定向分解平方变换中的hh)可用于传信用于特定编码单元的时间模式。可使用水平系数,因为此可最小化对经重构信号的效应。在某些情况下,例如基于由编码块中其它系数所携载的数据,可通过解码器处的逆变换而重
构水平系数的效应。
[0133]
在另一情况下,可使用元数据执行时间信令。此处所使用的元数据可为例如并不形成基础流或增强流的部分的边带信令的形式。在一种情况下,在由解码器接收的单独流中(例如,通过编码器或远程服务器)传输元数据。此单独流可经编码,例如使用游程长度编码经熵编码,且可被称作时间表面经编码流。此流可与由编码器输出的其它流(例如,基础流和增强流)组合以形成传输到解码器的组合位流。
[0134]
尽管“流中”时间信令可提供用于压缩的某些优点,但将帧的时间数据作为单独信息块(例如元数据)发送会允许不同的且可能更有效的熵编码用于此信息。还允许在不需要所接收的增强流数据的情况下执行例如如上文所描述的时间控制和处理。这允许准备时间缓冲器,且对简单的加成过程进行环路内时间解码。
[0135]
在第二时间模式的情况下(例如,在启用时间处理的情况下),可存在三个层级的时间信令:
[0136]
·
在第一层级处,可存在每帧时间信号。这些可包括每帧时间刷新信号。每帧时间刷新信号可为基于帧的时间参数。此可为每帧刷新位。如果经此设定,那么可在无时间预测的情况下对整个帧进行编码。在此层级的信号可用于对帧进行编码且可传信到解码器。
[0137]
·
在第二层级处,可存在每图块时间信号。举例来说,可将这些设定为每m乘n图块,其中m和n可为32。每图块时间信号可包括每图块时间刷新信号。每图块时间刷新信号可为基于图块的时间参数。此可为每图块刷新位。如果针对图块设定时间刷新信号,那么在无时间信息的情况下对整个图块进行编码。此时间信令层级可用于对帧进行编码。在一种情况下,其可不显式地传信到解码器;在此情况下,可如下文所描述通过第三层级处的第一时间信号指示图块刷新信号。在另一情况下,可将每图块时间刷新信号显式地传信到解码器。
[0138]
·
在第三层级处,可存在每块或编码单元时间信号。这些可包括用于所述块的时间模式信号。这可传信到解码器。如果将每图块时间刷新信号设定为1,且在无时间信息的情况下对整个图块进行编码(例如,根据第一时间模式),那么此可针对第一块用可设定为1的每块时间信号的一个位传信到解码器。如果将每图块时间刷新信号设定为0,那么可通过时间预测(例如,使用时间缓冲器)对图块中的第一变换块(例如,2
×
2或4
×
4块)进行编码。在此情况下,可将每块的时间信号设定为0,指示时间预测经使用(例如,根据第二时间模式经编码)。如果将每图块时间刷新信号设定为0,那么图块中的所有其它变换块可具有一个位时间信号,所述一个位时间信号在图块在无时间信息时经编码的情况下经设定为1,且所述一个位时间信号在来自相同空间位置处的前一帧的变换系数首先从变换系数中被减去且接着差经量化且传递到熵编码器的情况下(即,在将要使用第二时间模式和时间缓冲器的情况下)经设定为0。用于所述块的时间模式信号可为基于块的时间参数。基于块的时间参数的值的位长度可为一个位。
[0139]
图6d展示用于4
×
4变换大小(例如,dds变换)的时间信号的表示646。此处展示的数据(例如,所展示的1和0值)可被称为时间表面。可按对应方式传信2
×
2变换大小。图6d展示具有多个图块652、654(例如类似于图6c)的元素的帧648。使用图块652、654组织时间信号。对于4
×
4变换和32
×
32图块,存在每图块8
×
8时间信号(即,32/4)。对于2
×
2变换和32
×
32图块,存在每图块16
×
16时间信号(即,32/2)。用于残差的帧648的时间信号集合,例如如图6d中所展示,可被称为“时间映射”,作为时间表面的替代术语。时间映射或表面可从编
码器传送到解码器。
[0140]
图6d展示图块652、654内的第一变换块656、658的时间信号可如何指示是否将在第一或第二时间模式内处理图块。时间信号可为指示时间模式的位。如果所述位针对第一变换块被设定成1,例如如针对块656所展示,那么这指示将根据第一时间模式对图块652进行解码,例如在不使用时间缓冲器的情况下。在此情况下,可不设定用于其它变换块的位。这可减少传输到解码器的时间数据量。举例来说,相比于其中存在多个值(每编码单元一个)的第二图块654,在第一图块652中,仅一个位值(1)用于时间信令。如果将第一变换块的时间信令位设定为0,例如如针对块658所展示,那么这在图6d中指示将根据第二时间模式对图块654进行解码,例如通过时间缓冲器的时间预测和使用。在此情况下,将剩余变换块的时间信令位设定为0或1,从而在(第三)每块层级处提供时间控制的层级。用以指示时间模式(例如,0或1)的值可以引起编码器与解码器之间的信令层级降低的方式被指派。
[0141]
在某些情况下,如上文所描述的在第三层级处的时间信令可在其作为元数据(例如,边带数据)发送的情况下有效地经编码。
[0142]
在上文所描述的情况下,且例如如图6d中所展示,可将帧的时间表面或映射发送到游程长度编码器(例如,其中帧为经编码残差的“图片”)。可使用游程长度编码有效地对时间表面进行编码。可使用第一和第二增强流中的一个或多个(或此编码器过程的副本)的“熵编码”分量中所使用的相同游程长度编码器来执行游程长度编码。在其它情况下,可使用不同的游程长度编码器。
[0143]
如果将使用游程长度编码,那么当时间表面由游程长度编码器接收时,可发生若干操作。在一种情况下,如果图块中的第一时间信号为1,那么跳过其余图块的时间信令。这由来自具有1值的第一变换块656的箭头展示。在此情况下,如果图块中的第一时间信号为0,例如如针对图6d中的后续图块654所展示,那么图块的时间信令位可经过逐线扫描(例如,在移动到下一行变换块之前,沿着第一行变换块,在移动到下一列变换块的每一步骤处)。在图6d中,每一图块具有8行和8列,因此对于0位,对第一行的前8列执行迭代,且接着对于第二行的同8列重复所述迭代,等等,直到对用于所述特定图块的变换块的所有时间信号进行编码为止。
[0144]
在一种情况下,用于时间信号的游程长度编码器可具有表示0和1的位值(即,第二时间模式和第一时间模式)的两个状态。这些可用于对1的游程和0的游程进行编码。在一种情况下,游程长度编码器可对游程逐字节地进行编码,使用每字节7位来对游程进行编码且使用位7来对需要更多位对游程进行编码(设定成1)的情况或上下文发生变化的情况进行编码。按照惯例,流中的第一符号始终被编码为0或1,因此解码器可初始化状态机。可使用的状态机670展示于图6e中。
[0145]
在实例中,编码器用来确定时间模式(如上文所描述)的成本函数可并有阻止对相同值的游程进行编码的成本,例如在对如上文所论述的指示时间模式值的游程的时间模式信令数据进行编码时。以此方式,当1的游程改变到0的游程时,成本函数可应用惩罚,或反之亦然。这解释了以下事实:在游程长度编码期间停止对游程的编码在熵上是非常显著的。评估成本函数可包括使相同值的游程中的变化不利的速率失真优化(rdo)决策。
[0146]
在一种情况下,由游程长度编码器产生的信息可发送到另一熵编码器组件。这可包括霍夫曼编码器。霍夫曼编码器可针对每一状态和经霍夫曼编码的值将两个霍夫曼代码
写入到元数据流中。游程长度编码和熵编码可因此使用现有熵编码组件和/或这些组件的经适当调适副本(例如,作为经适当初始化的线程)。这可简化编码和解码,因为组件可与不同配置信息一起再使用。在一种情况下,在两个时间模式值(例如,0和1)的情况下,仅游程长度编码可使用,因为额外霍夫曼编码中归因于待编码的有限数目个符号而可能不存在益处。
[0147]
图7a和7b是展示根据实例的时间处理方法的流程图的两半700、740。可在编码器处执行时间处理的方法。时间处理的方法可实施上文所描述的某些过程。处理的方法可应用于图6c中展示的残差的帧。
[0148]
在第一块702处,检查残差的当前帧是否为i帧(即,经帧内编码的帧)。如果残差的当前帧为i帧,那么在块704处刷新时间缓冲器,且在块706处将残差的当前帧编码为帧间帧,其中在块708处将每图片信令设定为1。如果在块702处确定残差的当前帧不是i帧,那么选择第一图块,且在块710处检查以确定是否设定temporal_refresh_per_tile旗标(例如,具有1值)。这可为tr变量644,如图6c的右手侧所展示。如果设定temporal_refresh_per_tile旗标,那么在下一块712处,分析当前图块内的单元的temporal_type旗标。举例来说,对于第一图块,这些可为在图6c的右手侧上展示的单元的temporal_type旗标。在下一块714处,可计数i或第一时间模式旗标值的百分比(例如,
‘1’
值)。如果这些大于75%,那么在块716处刷新时间缓冲器且在块718处对图块进行帧间编码,其中在块720处将每一图块中的时间信号设定为0。如果这些小于75%,那么方法进行到图7b(例如,经由节点a)。如果temporal_refresh_per_tile并未经设定(例如,具有0值),那么进行类似过程,其中在块722处检查以分析单元的temporal-type旗标,且在块724处确定当前图块内的单元的大于60%的temporal_type旗标是否设定为i或第一时间模式(例如,具有
‘1’
值)。如果情况如此,那么进行根据先前75%检查的类似过程(例如,执行块716、718和720)。如果将当前图块内的单元的小于60%的temporal_type旗标设定为i或第一时间模式,那么方法再次进行到图7b(例如,经由节点b)。
[0149]
转向图7b中的流程图的第二半740,且在图7b的左手侧的节点a开始,如果小于75%的单元具有i或第一时间模式,那么在块726处检查时间缓冲器是否为空。如果时间缓冲器为空,那么在块728处对图块内的单元进行帧间编码,且在块730处针对图块中的单元将时间信号设定为0。如果时间缓冲器不为空,那么在块732处对图块内的单元进行帧内编码。在此情况下,将用于第一单元的时间信号设定为1,且在块734处将用于图块中的所有其它单元的时间信号设定为0。
[0150]
在图13b的右手侧且在节点b处开始,如果小于60%的单元具有i或第一时间模式,那么在块736处对当前图块中的第一单元进行帧间编码且在块738处将第一单元的时间信号设定为0。接着,在块740处检查协同定位的n+1单元(即,下一帧中协同定位的单元)的temporal_type是否设定成1。如果是,那么在块742处检查残差值是否小于2。如果残差值小于2,那么在块744处去除残差,例如通过将残差值设定为0。如果残差值不小于2,或如果协同定位的单元未设定成1,那么在块746处作出关于是否基于成本函数而将要对图块中的下一单元进行帧内或帧间编码的确定。在块748处,可根据成本函数分类来设定下一单元的时间信号。这可针对图块中的其余单元重复。可针对帧中的每一图块重复所述方法,例如从对temporal_refresh_per_tile的检查。
[0151]
在实例中,编码器(或编码过程)可与一个或多个远程装置进行通信。编码器可为如图1a、3a和3b中的任一者中所展示的编码器。
[0152]
编码器可跨网络进行通信。在一种情况下,编码器可跨网络接收配置数据和/或跨网络传输配置数据。编码器可接收编码器参数、时间信令和残差掩模中的一个或多个。时间信令可包括本文中所论述的时间信令中的任一者。
[0153]
在一种情况下,跨网络接收的编码器参数可指示待由编码器应用的残差模式和时间模式中的一个或多个。编码器参数可单独地指示用于每一流的模式,或指示用于两个增强流的共同模式。
[0154]
在一种情况下,编码器可具有关于远程或云配置的不同配置设定。在可为“默认”模式的一个模式中,编码器可被配置成跨网络进行远程程序调用以检索初始配置参数来执行如本文所描述的编码。在可为“自定义”模式的另一模式中,编码器可检索指示特定用户配置的局部参数值,所述特定用户配置为例如由编码器使用的特定工具集合和/或那些工具的配置。在一种情况下,编码器可具有不同模式,所述不同模式指示待从远程装置检索哪些参数以及待从本地存储装置检索哪些参数。
[0155]
在一种情况下,时间信令可指示对视频数据帧的某些处理,例如如上文所描述。时间信令可例如指示如上文所描述的特定帧的时间模式(例如,指示帧内或帧间的模式1或0)。可针对增强流中的一者或两者提供时间信令。
[0156]
编码器可将配置数据发送到远程控制服务器和/或从所述远程控制服务器接收所述配置数据。控制服务器可包括实施用于接收或发送数据的应用程序编程接口的服务器计算装置。举例来说,控制服务器可实施rest式接口,借此可通过(安全)超文本传送协议(http)请求和响应来传送数据。在另一情况下,使用特定通信协议(例如,在输送或应用层处)实施的侧信道可用于经由网络在控制服务器与编码器之间的通信。网络可包括一个或多个有线和/或无线网络,包含局域网和广域网。在一种情况下,网络可包括因特网。
[0157]
使用如本文所描述的云配置可提供实施优点。举例来说,可例如基于网络控制系统和测量值而远程地控制编码器。还可通过例如基于由一个或多个远程数据源或控制服务器供应的测量值或预处理而升级向增强处理提供额外数据的固件来升级编码器以提供新功能性。此提供升级和控制旧式硬件装置的灵活方式。
[0158]
本文中所描述的实例考虑残差的时间特性,例如以及空间特性。举例来说,在残差图像中,可在残差“图像”中观察到的如“边缘”和“点”的细节展示极小时间相关。这是因为残差图像中的“边缘”通常不会像如在正常视频流中察觉到的边缘那样平移或旋转。举例来说,在残差图像内,“边缘”实际上可随时间改变形状,例如可在多个残差图像“边缘”内捕捉到头部转向,但所述头部转向可不以标准方式移动(因为“边缘”反映取决于例如照明、按比例缩放因数、编码因数等的因素的复杂差)。残差图像,例如包括顺序残差“帧”或“图片”的残差“视频”,的这些时间方面通常不同于常规图像,例如正常视频帧(例如,在y、u或v平面中),的时间方面。因此,如何将常规编码方法应用于残差图像并非是显而易见的;实际上,已发现来自比较视频编码方案和标准的运动补偿方法不可对残差数据进行编码(例如,以有用方式)。
[0159]
此外,许多比较视频编码方法试图提供时间预测和运动补偿作为常规视频数据的默认值。这些“机内”方法可能不仅会在应用于顺序残差图像时失败,其可占用不必要的处
理资源(例如,这些资源可在实际上损坏视频编码的同时使用)。其还可产生占用经指派位速率的不必要的位。如何解决这些间题从常规方法来看并非显而易见。
[0160]
本文中所描述的实例提供预测残差图像内的时间特征的有效方式。某些实例使用零运动向量预测来有效地预测残差内的时间方面和移动。可看出这些可预测用于相对静态特征的移动(例如,将第二时间模式,即帧间预测,应用于随时间持续的残差特征),且接着将第一时间模式(例如,帧内预测)用于其它所有特征。因此,本文中所描述的某些实例并不试图浪费恐吓资源和预测残差“视频”中暂时不相关的时间特征的位速率。
[0161]
在本文中所描述的编码过程中,可逐块地执行将输入视频编码到多个经编码流中。以此方式,可在不使用来自输入视频中的同一帧的第二元素块的情况下执行将来自输入视频中的给定帧的第一元素块编码到多个经编码流中。
[0162]
下文描述其他实例。其它实例涉及一种将输入视频编码到多个经编码流中以使得经编码流可经组合以重构输入视频的方法,所述方法包括:接收全分辨率输入视频;对全分辨率输入视频进行下采样以产生经下采样视频;使用第一编解码器对经下采样视频进行编码以产生基础编码流;从经编码视频重构视频以产生经重构视频;比较经重构视频与输入视频;以及基于所述比较而产生一个或多个另外的经编码流。
[0163]
相较于经重构视频,输入视频可为经下采样视频。
[0164]
根据实例方法,将经重构视频与输入视频进行比较包括:将经重构视频与经下采样视频进行比较以产生第一残差集合,且其中产生一个或多个另外的经编码流包括对第一残差集合进行编码以产生第一层级经编码流。
[0165]
相较于经重构视频,输入视频可为全分辨率输入视频且经重构视频可经上采样。
[0166]
根据实例方法,将经重构视频与输入视频进行比较包括:对经重构视频进行上采样以产生经上采样的经重构视频;以及将经上采样的经重构视频与全分辨率输入视频进行比较以产生第二残差集合,且其中产生一个或多个另外的经编码流包括对第二差进行编码以产生第二层级经编码流。
[0167]
因此,在实例中,所述方法可根据上文所定义的实例方法产生基础编码流、第一层级经编码流和第二层级经编码流。第一层级经编码流和第二层级经编码流中的每一个可含有由解码器用以增强经编码基础流的增强数据。
[0168]
根据实例方法,对第一残差集合进行编码的步骤包括:将变换应用于残差集合以产生系数集合;将量化操作应用于系数以产生经量化系数集合;以及将编码操作应用于经量化系数。
[0169]
所述变换可例如为离散余弦变换或小波变换。在替代实例中,所述变换可为将元素的块分解为定向分量的小变换(例如,使用2
×
2内核或4
×
4内核)。举例来说,2
×
2内核可为哈达玛变换。可例如在以引用的方式并入本文中的专利申请pct/ep2013/059847或pct/gb2017/052632中查阅到关于变换的更多细节。在另一实例中,编码器可在待使用的不同变换之间选择,例如在2
×
2内核与4
×
4内核之间选择。这使得对残差进行编码的方式更为灵活。
[0170]
所述选择可基于对待变换的数据的分析。
[0171]
所述量化可例如为线性量化。线性量化器可使用可变大小的死区。编码操作可例如为熵编码器,且可包含游程长度编码和/或霍夫曼编码。
[0172]
根据实例方法,对第二残差集合进行编码的步骤包括:将变换应用于第二残差集合以产生系数集合;将量化操作应用于系数以产生经量化系数集合;以及将编码操作应用于经量化系数。
[0173]
所述变换可例如为离散余弦变换或小波变换。在替代实例中,所述变换可为将元素的块分解为定向分量的小变换(例如,使用2
×
2内核或4
×
4内核)。举例来说,2
×
2内核可为哈达玛变换。可例如在以引用的方式并入本文中的专利申请pct/ep2013/059847或pct/gb2017/052632中查阅到关于变换的更多细节。在另一实例中,编码器可在待使用的不同变换之间选择,例如在2
×
2内核与4
×
4内核之间选择。这使得对残差进行编码的方式更为灵活。
[0174]
所述选择可基于对待变换的数据的分析。
[0175]
第一残差集合和第二残差集合可具有应用于其的不同变换,且所述选择可为预定的或在过程期间选择的。所使用的变换可在标头中传信。
[0176]
所述量化可例如为线性量化。线性量化器可使用可变大小的死区。编码操作可例如为熵编码器,且可包含游程长度编码和/或霍夫曼编码。
[0177]
残差可为两个视频或帧之间的差。
[0178]
对第一残差集合进行编码的步骤可包括:基于第一残差集合的预先分析而将第一残差集合分级;以及选择待变换和编码的残差的子集。
[0179]
在实例中,所述方法包括分析第一残差集合,且基于所述分析执行或不执行以下步骤:将第一残差集合分级;以及选择待变换和编码的残差的子集。
[0180]
在实例中,所述方法包括分析第一残差集合且将第一残差集合分级,以及选择待变换和编码的残差的子集,使得基于所述分析差分地执行分级和/或选择的步骤。
[0181]
根据实例方法,对所选择的残差子集执行应用变换的步骤。
[0182]
对第二残差集合进行编码的步骤可包括:基于第二残差集合的预先分析而将第二残差集合分级;以及选择待变换和编码的残差的子集。
[0183]
在实例中,所述方法包括分析第二残差集合,且基于所述分析执行或不执行以下步骤:将第二残差集合分级;和/或选择待变换和编码的残差的子集。
[0184]
在实例中,所述方法包括分析第二残差集合且将第二残差集合分级,以及选择待变换和编码的残差的子集,使得基于所述分析差分地执行分级和/或选择的步骤。
[0185]
根据实例方法,对所选择的残差子集执行应用变换的步骤。
[0186]
经编码流可附有一个或多个标头,所述一个或多个标头包含指示编码过程的方面的参数以便于解码。举例来说,所述标头可包含所使用的编解码器、所应用的变换、所应用的量化,和/或其它解码参数。
[0187]
在某些实例中,量化的步骤可包括基于待变换的系数和/或数据,例如残差数据,的分析而调适量化。在某些实例中,可调适量化步骤中使用的分布。
[0188]
对第一残差集合进行编码的步骤可包括从时间缓冲器导出时间系数集合且从系数集合减去所述时间系数集合。
[0189]
对第二残差集合进行编码的步骤可包括从时间缓冲器导出时间系数集合且从系数集合减去所述时间系数集合。
[0190]
上文描述了分级和选择的步骤可如何应用于残差数据,可如何执行减去时间系数
的步骤,以及还可如何调适量化。这些步骤中的每一者可经预定且选择性地应用,或可基于输入视频、经下采样视频、经重构视频、经上采样视频或上述任何组合的分析而应用以改善编码器的总体性能。所述步骤可基于预定规则集合而选择性地应用或基于性能的分析或反馈而确定性地应用。
[0191]
根据实例方法,第一编解码器是基于硬件的编解码器,优选地第一编解码器是avc、hevc、av1、vp8或vp9。
[0192]
根据其它实例,提供一种将输入视频编码到多个经编码流中的方法,使得经编码流可经组合以重构输入视频,所述方法包括:接收全分辨率输入视频;在低于全分辨率输入视频的分辨率下产生基础编码流;确定用于与基础编码流一起重构全分辨率输入视频的一个或多个另外的经编码流的时间模式;以及通过基于时间模式而选择性地应用时间缓冲器来产生一个或多个另外的经编码流。
[0193]
所述方法可包括将时间模式确定为不使用时间缓冲器的第一时间模式和使用时间缓冲器的第二时间模式中的一者。时间缓冲器可用于应用时间预测。
[0194]
所述方法可包括:在编码器处获得多个编码单元的时间模式元数据;基于所获得的时间模式元数据而确定时间模式以用于对多个编码单元进行编码;以及基于所确定的时间模式和所获得的时间模式元数据而产生多个编码单元的时间模式信令数据。
[0195]
可通过从当前经变换系数集合减去存储在时间缓冲器内的经去量化的经变换系数集合来在编码器处应用时间预测。当前经变换系数集合可与全分辨率输入视频内的当前帧相关联,且经去量化的经变换系数集合可与全分辨率输入视频内的前一帧相关联。
[0196]
在某些实例中,确定时间模式可包括估计成本函数。成本函数可包括全分辨率输入视频和一个或一个或多个另外的经编码流的函数。可通过使用两个时间模式对一个或多个另外的经编码流进行编码且比较针对每一时间模式确定的一个或多个度量来评估成本函数。可针对帧的一个或多个部分,例如一个或多个编码单元,来评估成本函数。
[0197]
在某些实例中,确定时间模式可包括设定帧的时间刷新参数。时间刷新参数可用于传信时间缓冲器的刷新,例如缓冲器内的一个或多个值的归零。在某些实例中,可在编码器处使用时间信令来指示以每图块为基础的时间刷新。
[0198]
在某些实例中,在使用时间缓冲器的第二时间模式中,时间刷新参数可被配置成临时实现与第一时间模式相关联的处理。
[0199]
在某些实例中,编码器,例如如本文中的任何语句中所陈述,可经由网络例如从远程服务器装置接收配置参数。在某些实例中,编码器可另外或替代地将配置参数传输到远程服务器装置。配置参数可配置如在这些语句中的任一者中所描述的编码器的操作。
[0200]
其它实例涉及一种对输入视频进行编码的方法,所述方法包括:在第一分辨率下接收输入视频;在一个或多个相应分辨率下基于输入视频与一个或多个经重构视频之间的差而产生一个或多个残差;基于所选择的残差模式而修改一个或多个残差;以及从一个或多个经修改残差产生一个或多个经编码流。
[0201]
所述方法可包括:对输入视频进行下采样以在第二分辨率下产生经下采样视频;使用第一编解码器对经下采样视频进行编码以产生基础编码流;从经编码视频重构视频以产生经重构视频;比较经重构视频与输入视频;以及基于所述比较而产生一个或多个另外的经编码流。
[0202]
一个残差集合可处于第一分辨率,且一个残差集合可处于第二分辨率。
[0203]
修改一个或多个残差可包括:接收残差权重集合;以及将所述残差权重集合应用于残差集合以产生经修改残差。
[0204]
所述方法可进一步包括使用阈值集合对经修改残差定限。在某些实例中,基于输入视频的分类而确定残差权重集合和阈值集合中的一个或多个。在某些实例中,残差权重集合包括从远程位置接收的残差掩模。在某些实例中,将残差权重集合和阈值集合中的一个或多个应用于残差群组。
[0205]
其它实例涉及一种对输入视频进行编码的方法,所述方法包括:在第一分辨率下接收输入视频;获得一个或多个混合视频流的期望位速率;在一个或多个相应分辨率下基于输入视频与一个或多个经重构视频之间的差而产生一个或多个残差;基于期望位速率而确定用于一个或多个残差的量化参数;基于量化参数而对一个或多个残差进行量化;以及从一个或多个经量化残差产生一个或多个经编码流。
[0206]
所述方法可包括:对输入视频进行下采样以在第二分辨率下产生经下采样视频;使用第一编解码器对经下采样视频进行编码以产生基础编码流;从经编码视频重构视频以产生经重构视频;比较经重构视频与输入视频;以及基于所述比较而产生一个或多个另外的经编码流。
[0207]
一个残差集合可处于第一分辨率,且一个残差集合可处于第二分辨率。
[0208]
确定量化参数可包括:接收到接收一个或多个经编码流和基础编码流的缓冲器的状态;以及使用所述状态来确定量化参数。
[0209]
确定量化参数可包括:接收基础编码层基础编码流的状态;以及使用所述状态来确定量化参数。
[0210]
可针对每一帧、残差和/或残差群组确定量化参数。在一种情况下,基于帧的目标数据大小和使用先前量化参数集合的帧的当前数据大小而确定帧的量化参数。在一种情况下,量化参数是基于先前量化参数集合。
[0211]
在一种情况下,所述方法包括:基于编码器的当前状态而限制所确定的量化参数。
[0212]
在一种情况下,量化参数用以确定用于量化的步宽。在一种情况下,量化参数包括q值,其中用于量化的步宽为q值的逆函数。
[0213]
实例方法进一步包括:发送基础编码流。实例方法进一步包括:发送第一层级经编码流。实例方法进一步包括:发送第二层级经编码流。
[0214]
根据另一实例,提供一种解码方法。一些实例涉及一种将多个经编码流解码成经重构输出视频的方法,所述方法包括:接收第一基础编码流;根据第一编解码器对第一基础编码流进行解码以产生第一输出视频;接收一个或多个另外的经编码流;对所述一个或多个另外的经编码流进行解码以产生残差集合;以及组合残差集合与第一视频以产生经解码视频。
[0215]
在实例中,所述方法包括从标头检索多个解码参数。解码参数可指示哪些程序步骤包含在编码过程中。
[0216]
在实例中,对一个或多个另外的经编码流进行解码以产生残差集合的步骤包括:应用熵解码操作;应用去量化操作;以及应用逆变换操作以产生残差集合。
[0217]
在实例中,对一个或多个另外的经编码流进行解码以产生残差集合的步骤包括:
基于来自时间缓冲器的协同定位的残差而预测残差的子集。
[0218]
在实例中,所述方法可包括接收第一层级经编码流以及接收第二层级经编码流。在此实例中,对一个或多个另外的经编码流进行解码以产生残差集合的步骤包括:对第一层级经编码流进行解码以导出第一残差集合;其中将残差集合与第一视频组合以产生经解码视频的步骤包括:将第一残差集合与第一输出视频组合以产生第二输出视频;对第二输出视频进行上采样以产生经上采样的第二输出视频;对第二层级经编码流进行解码以导出第二残差集合;以及将第二残差集合与第二输出视频组合以产生经重构输出视频。
[0219]
在实例中,对第二输出视频进行上采样以产生经上采样的第二输出视频的步骤包括:将在导出经上采样的第二输出视频中的块的第一残差集合中的元素的值添加到经上采样的第二输出视频中的对应块。所述块可为2
×
2块。此添加步骤可基于标头中包含的预定值或信号而选择性地执行。
[0220]
在实例中,对第一层级经编码流进行解码以导出第一残差集合的步骤包括:应用熵解码操作;应用去量化操作;以及应用逆变换操作以产生第一残差集合。
[0221]
在此实例中,对第一层级经编码流进行解码以导出第一残差集合的步骤包括:应用被配置成将掩模应用于残差块的去块滤波器。掩模可根据预定义权重的集合而加权。
[0222]
在实例中,对第二层级经编码流进行解码以导出第二残差集合的步骤包括:应用熵解码操作;应用去量化操作;以及应用逆变换操作以产生第二残差集合。
[0223]
逆变换操作可为如上文所定义的操作的逆操作,或可为大体上镜像操作。也就是说,可选择性地应用2
×
2块或4
×
4块变换。所述变换可通过解码方法检测或在标头中传信。
[0224]
如果使用2
×
2变换,那么可通过添加预测残差的经变换块所根据的残差的值来修改系数。如果使用4
×
4变换,那么将通过添加四个残差的平均值来修改系数。
[0225]
根据其它实例,提供一种将一个或多个经编码流解码成经重构输出视频的方法,所述方法包括:接收第一基础编码流;根据第一编解码器对第一基础编码流进行解码以产生第一输出视频;接收一个或多个另外的经编码流;接收指示用于一个或多个另外的经编码流的一个或多个部分的时间模式的数据;对指示时间模式的数据进行解码且针对一个或多个另外的经编码流配置一个或多个相应时间缓冲器;对一个或多个另外的经编码流进行解码以产生残差集合,包含将来自一个或多个时间缓冲器的数据选择性地应用于经解码的一个或多个另外的经编码流;以及组合残差集合与第一视频以产生经解码视频。
[0226]
可按对应于解码方法的方式来应用如应用于编码方法的变化。
[0227]
在一个实例中,所述方法进一步包括:接收指示帧的时间刷新的时间信令;以及在选择性地应用来自一个或多个时间缓冲器中的一者的与帧的经解码数据有关的数据之前,使时间缓冲器内的值归零。
[0228]
在一个实例中,将来自一个或多个时间缓冲器的数据选择性地应用于经解码的一个或多个另外的经编码流包括响应于指示第二时间模式而从一个或多个时间缓冲器中的一者减去数据,且响应于指示第一时间模式而不从一个或多个时间缓冲器中的一者减去数据。
[0229]
在一个实例中,指示一个或多个另外的经编码流的一个或多个部分的时间模式的数据包括每一编码单元的位。
[0230]
所述方法可进一步包括显示或输出经重构输出。
[0231]
本文中所描述的某些实例涉及与一个或多个经编码流相关联的时间处理。编码器可被配置成使用时间缓冲器应用时间处理。
[0232]
编码器可被配置成将输入视频编码到多个经编码流中,例如使得所述经编码流可经组合以重构所述输入视频。编码器可被配置成接收包括相应帧的输入视频。
[0233]
在一些情况下,相应帧的每一帧可被分成多个图块。每一图块可被分成多个块。
[0234]
在其它情况下,相应帧的每一帧可被分成多个平面。每一平面可被分成多个图块。所述多个图块的每一图块可被分成多个块。
[0235]
编码器还可被配置成使用基础编码器产生基础编码流。编码器可被配置成确定用于与基础流一起重构输入视频的一个或多个另外的经编码增强流的时间模式。可使用增强编码器产生一个或多个另外的经编码增强流。增强编码器可不同于基础编码器。时间模式可为第一时间模式和第二时间模式中的一者,所述第一时间模式不应用来自用于产生一个或多个另外的经编码增强流的时间缓冲器的非零值,所述第二时间模式应用来自用于产生一个或多个另外的经编码增强流的时间缓冲器的非零值。应用第二时间模式中的来自时间缓冲器的非零值可包括从时间缓冲器导出非零时间系数集合并且使用所述非零时间系数集合来修改用于产生一个或多个另外的经编码流的当前系数集合。
[0236]
编码器可被配置成根据所确定的时间模式基于从基础编码流和输入视频导出的数据而产生一个或多个另外的经编码增强流。产生所述一个或多个另外的经编码增强流可包括将变换应用于多个块的一连串块中的每一个。编码器可被配置成针对输入视频的帧、图块或块中的一个或多个确定时间模式。
[0237]
编码器可被配置成基于成本函数而确定时间模式。成本函数可并有发送用于时间模式的时间模式信令数据的成本。发送用于时间模式的时间模式信令数据的成本可使时间模式信令数据的一个值相比于时间模式信令数据的其它值而言为不利的。
[0238]
成本函数可包括输入视频和一个或多个另外的经编码增强流中的至少一者的函数。编码器可被配置成评估输入视频的帧的成本函数。编码器可被配置成评估输入视频的图块的成本函数。编码器可被配置成评估输入视频的块的成本函数。
[0239]
为了评估成本函数,编码器可被配置成使用第一时间模式和第二时间模式中的每一者对一个或多个另外的经编码增强流进行编码。评估成本函数,编码器还可被配置成比较针对第一时间模式和第二时间模式中的每一者确定的一个或多个度量。
[0240]
为了确定时间模式,编码器可被配置成获得多个块的块集合的时间模式元数据。编码器还可被配置成基于时间模式元数据而确定待用于对所述块集合进行编码的时间模式。
[0241]
编码器可被配置成对指示用于所述一个或多个另外的经编码流的时间模式的时间模式信令数据与一个或多个另外的经编码流分开地进行编码。编码器可使用游程长度编码对时间信令数据进行编码。
[0242]
编码器可被配置成基于以下各者中的至少一者确定是否针对输入视频的给定帧刷新时间缓冲器:给定帧的块的第一比例,第一时间模式待用于针对所述第一比例重构所述给定帧;以及给定帧的块的第二比例,第二时间模式待用于针对所述第二比例重构所述给定帧。针对给定帧刷新时间缓冲器可包括将时间缓冲器内的值设定为零。
[0243]
编码器可被配置成在第一帧之后确定输入视频的第二帧的时间模式。编码器还可
被配置成基于针对第二帧确定的时间模式而从一个或多个另外的经编码增强流中省略第一帧的经变换块的经量化值。
[0244]
编码器可被配置成产生指示用于解码器的一个或多个另外的经编码增强流的时间模式的时间模式信令数据。时间模式信令数据可被压缩。
[0245]
本文中所描述的某些实例涉及与一个或多个经编码流相关联的时间处理。解码器可被配置成使用时间缓冲器应用时间处理。
[0246]
解码器可被配置成接收多个经编码流。所述多个经编码流可能已根据以上实例产生。解码器可被配置成将多个经编码流解码到经重构输出视频中。解码器可被配置成接收第一输出视频,所述第一输出视频包括应用于基础层级经编码流的基础解码器的输出。解码器可被配置成接收一个或多个另外的经编码流。解码器可被配置成对所述一个或多个另外的经编码流的相应帧进行解码以导出相应残差集合。
[0247]
在一些情况下,相应帧的每一帧可被分成多个图块。每一图块可被分成多个块。
[0248]
在其它情况下,相应帧的每一帧可被分成多个平面。每一平面可被分成多个图块。所述多个图块的每一图块可被分成多个块。
[0249]
解码器还可被配置成将残差集合与第一输出视频组合以产生经重构输出视频。为了对相应帧进行解码,解码器可被配置成针对多个块的每一块从一个或多个另外的经编码流获得预备残差集合。为了对相应帧进行解码,解码器可被配置成使用时间缓冲器导出时间预测集合。为了对相应帧进行解码,解码器可被配置成将时间预测集合与预备残差集合组合以输出数据来与第一输出视频组合。
[0250]
解码器可被配置成根据时间模式对一个或多个另外的经编码流进行解码。时间模式可为第一时间模式和第二时间模式中的一者,所述第一时间模式不应用来自用于产生一个或多个另外的经编码流的时间缓冲器的非零值,所述第二时间模式应用来自用于产生一个或多个另外的经编码流的时间缓冲器的非零值。时间模式可在编码器处确定且根据以上实例传信到解码器。
[0251]
解码器可被配置成接收指示每一编码单元,即每一块,的时间模式的时间模式信令数据。解码器可被配置成接收指示每一图块的时间模式的时间模式信令数据。由解码器接收的时间模式信令数据可能已与由解码器接收的一个或多个另外的经编码流分开地被编码。
[0252]
根据其它实例,可提供一种用于将数据集编码成包括标头和有效负载的经编码数据集的设备。所述设备可被配置成根据以上步骤对输入视频进行编码。所述设备可包括被配置成实行以上方面中的任一者的方法的处理器。
[0253]
根据其它实例,可提供一种用于从包括标头和有效负载的数据集将数据集解码成经重构视频的设备。所述设备可被配置成根据以上步骤对输出视频进行解码。所述设备可包括被配置成实行以上方面中的任一者的方法的处理器。
[0254]
还可提供一种编码器和解码器。
[0255]
根据其它实例,可提供计算机可读介质,其在由处理器执行时使所述处理器执行以上方面的方法中的任一者。以上实施例应理解为示例性实例。设想了其它实例。应理解,关于任何一个实例所描述的任何特征可单独使用,或与所描述的其它特征结合使用,且还可与任何其它实例的一个或多个特征结合使用,或与任何其它实例的任何组合结合使用。
此外,在不脱离所附权利要求书的范围的情况下,还可采用上文未描述的等效物和修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1