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

编解码视频中序列结束的指示的制作方法

2023-02-06 12:04:41 来源:中国专利 TAG:

编解码视频中序列结束的指示
1.相关申请的交叉引用
2.根据适用的专利法和/或依据巴黎公约的规则,本技术旨在及时要求于2020年5月22日提交的美国临时专利申请no.63/029,334的优先权和权益。出于法律规定的所有目的,上述申请的全部公开内容通过引用并入作为本技术的公开内容的一部分。
技术领域
3.该专利文档涉及图像和视频编码和解码。


背景技术:

4.数字视频在互联网和其他数字通信网络上占据最大的带宽使用。随着能够接收和显示视频的连接用户设备数量的增加,预计数字视频使用的带宽需求将继续增长。


技术实现要素:

5.本文档公开了可由视频编码器和解码器用来执行视频编码或解码的技术。
6.在一个示例方面,公开了一种视频处理方法。该方法包括执行视频和视频的比特流之间的转换,其中,比特流符合格式规则,其中,比特流包括一个或多个层,该一个或多个层包括一个或多个图片单元(pu),其中,格式规则规定,响应于比特流的层中按照解码顺序在层中的序列结束网络抽象层(eos nal)单元之后的第一pu,将第一pu的变量设置为特定值,其中,该变量指示该第一pu是否为编解码层视频序列起始(clvss)pu。
7.在另一个示例方面,公开了另一种视频处理方法。该方法包括执行视频和视频的比特流之间的转换,其中,比特流包括一个或多个层,该一个或多个层包括根据格式规则的一个或多个图片单元(pu);其中,格式规则规定特定层的序列结束网络抽象层(eos nal)单元之后的特定层的pu是特定类型的pu。在一些实施例中,该特定类型的pu是帧内随机访问点(irap)类型或逐步解码刷新(gdr)类型之一。在一些实施例中,其中,该特定类型的pu是编解码层视频序列起始(clvss)pu。
8.在另一个示例方面,公开了另一种视频处理方法。该方法包括执行视频和视频的比特流之间的转换,其中,比特流包括一个或多个层,该一个或多个层包括根据格式规则的一个或多个图片单元(pu),其中,格式规则规定,当存在时,序列结束(eos)原始字节序列有效负载(rbsp)语法结构规定,比特流中按照解码顺序与eos网络抽象层(nal)单元属于同一层的下一个后续pu是来自帧内随机访问点(irap)pu类型或逐步解码刷新(gdr)pu类型的特定pu类型。在一些实施例中,该特定pu类型是irap pu类型。在一些实施例中,该特定pu类型是gdr pu类型。
9.在另一个示例方面,公开了另一种视频处理方法。该方法包括执行视频和视频的比特流之间的转换,其中,比特流包括一个或多个层,该一个或多个层包括根据格式规则的一个或多个网络抽象层(nal)单元,其中,格式规则规定序列结束网络抽象层(eos nal)单元的标头中的第一层标识符需要等于比特流中的该一个或多个层之一的第二层标识符。在
一些实施例中,格式规则还允许在图片单元(pu)中包含一个以上的eos nal单元。在一些实施例中,其中,格式规则规定eos nal单元的第一层标识符需要小于或等于与eos nal单元相关联的视频编解码层(vcl)nal单元的第三层标识符。
10.在另一个示例方面,公开了另一种视频处理方法。该方法包括执行视频和视频的比特流之间的转换,其中,该比特流包括一个或多个层,该一个或多个层包括一个或多个图片单元(pu),该一个或多个图片单元(pu)包括根据格式规则的一个或多个网络抽象层(nal)单元,其中,格式规则规定,响应于指示pu中序列结束的第一nal单元,如果存在指示另一序列结束的另一nal单元或如果存在指示比特流结束的另一nal单元,则第一nal单元是pu内除了该另一nal单元的所有nal单元中的最后一个nal单元。在一些实施例中,该另一nal单元是序列结束(eos)nal单元。在一些实施例中,该另一nal单元是比特流结束(eob)nal单元。
11.在又一示例方面,公开了一种视频编码器装置。视频编码器包括被配置为实现上述方法的处理器。
12.在又一示例方面,公开了一种视频解码器装置。视频解码器包括被配置为实现上述方法的处理器。
13.在又一示例方面,公开了一种其上存储有代码的计算机可读介质。该代码以处理器可执行代码的形式体现了本文描述的方法之一。
14.在又一示例方面,公开了一种将比特流存储到计算机可读介质的方法。使用上述方法生成比特流。
15.在整个本文档中对这些和其他特征进行了描述。
附图说明
16.图1是示出了根据本公开的一些实施例的视频编解码系统的框图。
17.图2是用于视频处理的示例硬件平台的框图。
18.图3是视频处理的示例方法的流程图。
19.图4是示出了示例视频编解码系统的框图。
20.图5是示出了根据本公开的一些实施例的编码器的框图。
21.图6是示出了根据本公开的一些实施例的解码器的框图。
22.图7至图11示出了各种视频处理的方法的流程图。
具体实施方式
23.本文档中使用章节标题是为了易于理解并且不将每个章节中公开的技术和实施例的适用性仅限制于该章节。此外,在一些描述中使用h.266术语仅仅是为了易于理解,而不是为了限制所公开技术的范围。因此,本文描述的技术也适用于其他视频编解码器协议和设计。
24.1介绍
25.本文档涉及视频编解码技术。具体地,它是关于视频编解码中eos nal单元的处理,特别是在多层和多子层上下文中。这些想法可以单独或以各种组合应用于支持多层视频编解码(例如,正在开发的多功能视频编解码(vvc))的任何视频编解码标准或非标准视
频编解码器。
26.2缩略语
27.aps自适应参数集
28.au访问单元
29.aud访问单元分隔符
30.avc高级视频编解码
31.clvs编解码层视频序列
32.cpb编解码图片缓冲器
33.cra清洁随机访问
34.ctu编解码树单元
35.cvs编解码视频序列
36.dci解码能力信息
37.dpb解码图片缓冲器
38.eob比特流结束
39.eos序列结束
40.gdr逐步解码刷新
41.hevc高效视频编解码
42.hrd假设参考解码器
43.idr即时解码刷新
44.ilp层间预测
45.ilrp层间参考图片
46.jem联合探索模型
47.ltrp长期参考图片
48.mcts运动约束片集
49.nal网络抽象层
50.ols输出层集
51.ph图片标头
52.pps图片参数集
53.ptl档次、层、级别
54.pu图片单元
55.rap随机访问点
56.rbsp原始字节序列有效负载
57.sei补充增强信息
58.sps序列参数集
59.strp短期参考图片
60.svc可缩放视频编解码
61.vcl视频编解码层
62.vps视频参数集
63.vtmvvc测试模型
64.vui视频可用性信息
65.vvc多功能视频编解码
66.3初步讨论
67.视频编解码标准主要是通过开发众所周知的itu-t和iso/iec标准而发展而发展起来的。itu-t制定了h.261和h.263标准,iso/iec制定了mpeg-1和mpeg-4visual标准,并且两个组织联合制定了h.262/mpeg-2视频标准和h.264/mpeg-4高级视频编解码(advanced video coding,avc)标准和h.265/hevc[1]标准。从h.262开始,视频编解码标准基于混合视频编解码结构,其中,利用时域预测加变换编解码。为了探索hevc之外的未来视频编解码技术,由vceg和mpeg于2015年联合成立联合视频探索团队(joint video exploration team,jvet)。此后,jvet采用了许多新方法并将其纳入名为联合探索模型(jem)[2]的参考软件。目前,jvet会议每季度举行一次,新编解码标准的目标是与hevc相比降低50%的比特率。新的视频编解码标准在2018年4月的jvet会议上被正式命名为多功能视频编码(vvc),并且vvc测试模型(vtm)的第一个版本也在当时发布。随着不断努力对vvc标准化做出贡献,每次jvet会议都会为vvc标准采用新的编解码技术。vvc的工作草案和测试模型vtm在每次会议后都会更新。vvc项目目前的目标是在2020年7月的会议上实现技术完成(fdis)。
[0068]
3.1.参考图片管理和参考图片列表(rpl)
[0069]
参考图片管理是任何使用帧间预测的视频编解码方案所必需的核心功能。它管理参考图片在解码图片缓冲器(dpb)中的存储和移除,并将参考图片按其正确顺序放置在rpl中。
[0070]
hevc的参考图片管理,包括参考图片标记和从解码图片缓冲器(dpb)中的移除以及参考图片列表构建(rplc),不同于avc。代替avc中基于滑动窗口加自适应存储器管理控制操作(mmco)的参考图片标记机制,hevc规定了基于所谓的参考图片集(rps)的参考图片管理和标记机制,因此rplc基于rps机制。rps由与图片相关联的参考图片集组成,该参考图片集合包括按照解码顺序在相关图片之前的所有参考图片,其可以用于相关图片或按照解码顺序在相关图片之后的任何图片的帧间预测。参考图片集由五个参考图片列表组成。前三个列表包含可用于当前图片的帧间预测和可用于按照解码顺序在当前图片之后的一个或多个图片的帧间预测的所有参考图片。其他两个列表由所有参考图片组成,这些参考图片未用于当前图片的帧间预测,但可用于按照解码顺序在当前图片之后的一个或多个图片的帧间预测。rps提供了dpb状态的“帧内编解码”信令通知,而不是像如avc中的“帧间编解码”信令通知,主要是为了提高抗误码能力。hevc中的rplc过程基于rps,通过为每个参考索引向rps子集信令通知索引;这个过程比avc中的rplc过程更简单。
[0071]
与avc相比,vvc中的参考图片管理更类似于hevc,但更简单且更稳健。如那些标准一样,导出了两个rpl,列表0和列表1,但是它们不是基于在hevc使用的参考图片集概念或者在avc中使用的自动滑动窗口过程;相反,它们被更直接地信令通知。对于rpl,参考图片被列为活动和非活动条目,并且只有活动条目可以被用作当前图片的ctu的帧间预测中的参考索引。非活动条目指示要保存在dpb中的其他图片,以供比特流中稍后到达的其他图片参考。
[0072]
3.2.hevc和vvc中的随机访问及其支持
[0073]
随机访问是指从按照解码顺序不是比特流的第一个图片的图片开始访问和解码
比特流。为了支持广播/多播和多方视频会议中的调谐和频道切换、本地回放和流式传输中的搜索以及流式传输中的流自适应,比特流需要包括频繁的随机访问点,这些访问点通常是帧内编解码图片,但也可以是帧间编解码图片(例如,在逐步解码刷新的情况下)。
[0074]
hevc通过nal单元类型在nal单元标头中包括帧内随机访问点(irap)图片的信令通知。支持三种类型的irap图片,即即时解码刷新(idr)、清洁随机访问(cra)和断开链接访问(bla)图片。idr图片将帧间图片预测结构约束为不参考当前图片组(gop)之前的任何图片,该当前图片组(gop)通常称为封闭gop随机访问点。通过允许某些图片参考当前gop之前的图片,cra图片的限制较少,所有这些图片在随机访问的情况下都将被丢弃。cra图片通常被称为开放gop随机访问点。bla图片通常源自两个比特流或其一部分在cra图片处的拼接,例如,在流切换期间。为了更好地使得系统能够使用irap图片,总共定义了六个不同的nal单元来信令通知irap图片的属性,这可用于更好地匹配如iso基本媒体文件格式(isobmff)[6]中定义的流访问点类型,其用于在http上的动态自适应流式传输(dash)[7]中的随机访问支持。
[0075]
vvc支持三种类型的irap图片、两种类型的idr图片(一种类型具有或另一种类型不具有相关联的radl图片)和一种类型的cra图片。这些与hevc中的基本相同。hevc中的bla图片类型不包含在vvc中,主要有两个原因:i)bla图片的基本功能可以通过cra图片加上序列结束nal单元来实现,它的存在指示后续图片在单层比特流中开始新的cvs。ii)在vvc的开发期间,希望规定比hevc更少的nal单元类型,如通过nal单元标头中的nal单元类型字段使用5位而不是6位所指示的。
[0076]
vvc和hevc之间的随机访问支持的另一个关键区别是在vvc中以更规范的方式支持gdr。在gdr中,比特流的解码可以从帧间编解码的图片开始,尽管在开始时不是整个图片区域都可以被正确解码,但是在多个图片之后,整个图片区域将是正确的。avc和hevc也支持gdr,使用恢复点sei消息来信令通知gdr随机访问点和恢复点。在vvc中,新的nal单元类型被规定用于指示gdr图片,并且恢复点在图片标头语法结构中被信令通知。允许cvs和比特流以gdr图片开始。这意味着允许整个比特流仅包含帧间编解码图片,而没有单个帧内编解码图片。以这种方式规定gdr支持的主要好处是为gdr提供了一致性行为。gdr使编码器能够通过将帧内编解码条带或块分布在多个图片中而不是对整个图片进行帧内编解码来平滑比特流的比特率,从而允许显著降低端到端延迟,随着无线显示、在线游戏、基于无人机的应用等超低延迟应用变得越来越流行,降低端到端延迟在当今被认为比以前更加重要。
[0077]
vvc中另一与gdr相关的特征是虚拟边界信令通知。gdr图片与其恢复点之间的图片处的刷新区域(即,正确解码区域)和未刷新区域之间的边界可以被信令通知为虚拟边界,并且当被信令通知时,将不会应用跨边界的环路滤波,因此不会发生边界处或边界附近的一些样点的解码不匹配。当应用确定在gdr过程期间显示正确解码的区域时,这可能是有用的。
[0078]
irap图片和gdr图片可统称为随机访问点(rap)图片。
[0079]
3.3.序列内的图片分辨率变化
[0080]
在avc和hevc中,图片的空域分辨率不能改变,除非使用新sps的新序列以irap图片开始。vvc允许在不编码irap图片的位置改变序列内的图片分辨率,irap图片总是被帧内编解码。此特征有时称为参考图片重采样(rpr),因为当参考图片具有与正在解码的当前图
片不同的分辨率时,该特征需要对用于帧间预测的参考图片进行重采样。
[0081]
缩放比率被限制为大于或等于1/2(从参考图片到当前图片的2倍下采样),并且小于或等于8(8倍上采样)。规定了具有不同频率截止的三组重采样滤波器来处理参考图片和当前图片之间的各种缩放比率。三组重采样滤波器分别应用于范围从1/2到1/1.75、从1/1.75到1/1.25和从1/1.25到8的缩放比率。每组重采样滤波器具有用于亮度的16个相位和用于色度的32个相位,这与运动补偿插值滤波器的情况相同。实际上正常的mc插值过程是重采样过程的一种特殊情况,其中缩放比率范围从1/1.25到8。水平和垂直缩放比率是基于图片宽度和高度以及为参考图片和当前图片规定的左、右、顶部和底部缩放偏移而导出的。
[0082]
支持此特性的vvc设计与hevc不同的其他方面包括:i)在pps中而不是在sps中信令通知的图片分辨率和对应的一致性窗口,而在sps中信令通知最大图片分辨率。ii)对于单层比特流,每个图片存储(dpb中用于存储一个解码图片的槽)占用存储具有最大图片分辨率的解码图像所需的缓冲器尺寸。
[0083]
3.4.一般和vvc中的可缩放视频编解码(svc)
[0084]
可缩放视频编解码(svc,有时也称为视频编解码中的可缩放性)是指使用基本层(bl)(有时称为参考层(rl)和一个或多个可缩放增强层(el)的视频编解码。在svc中,基本层可以携带具有基本质量水平的视频数据。一个或多个增强层可以携带附加的视频数据以支持例如更高的空域、时域和/或信噪比(snr)水平。可以相对于先前编码的层来定义增强层。例如,底层可以用作bl,而顶层可以用作el。中间层可以用作el或rl,或两者兼而有之。例如,中间层(例如,既不是最低层也不是最高层的层)可以是中间层下方的层(例如基本层或任何居间的增强层)的el,并且同时用作中间层上方的一个或多个增强层的rl。类似地,在hevc标准的多视图或3d扩展中,可能存在多个视图,并且一个视图的信息可以用于编解码(例如,编码或解码)另一个视图的信息(例如,运动估计、运动矢量预测和/或其他冗余)。
[0085]
在svc中,由编码器或解码器使用的参数基于可以利用它们的编解码级别(例如,视频级别、序列级别、图片级别、条带级别等)被分组成参数集。例如,可以由比特流中不同层的一个或多个编解码视频序列使用的参数可以包括在视频参数集(vps)中,并且可以由编解码视频序列中的一个或多个图片使用的参数包含在序列参数集(sps)中。类似地,由图片中的一个或多个条带使用的参数可以包括在图片参数集(pps)中,并且特定于单个条带的其他参数可以包括在条带标头中。类似地,可以在各种编解码级别提供特定层在给定时间使用哪个(哪些)参数集的指示。
[0086]
由于vvc中对参考图片重采样(rpr)的支持,可以在不需要任何额外的信令通知处理级别编解码工具的情况下设计对包含多个层(例如,在vvc中具有sd和hd分辨率的两个层)的比特流的支持,因为空域可缩放性支持所需的上采样可仅使用rpr上采样滤波器。然而,对于可缩放性支持,需要高级别的语法变化(与不支持可缩放性相比)。vvc版本1中规定了可缩放性支持。与任何早期视频编解码标准(包括avc和hevc的扩展)中的可缩放性支持不同,vvc可缩放性的设计已经尽可能地对单层解码器设计友好。多层比特流的解码能力是以好像比特流中只有单层的方式来规定的。例如,以独立于要解码的比特流中的层的数量的方式指定诸如dpb尺寸的解码能力。基本上,为单层比特流设计的解码器不需要太多改变就能够解码多层比特流。与avc和hevc的多层扩展的设计相比,hls方面在牺牲一些灵活性的情况下得到了显著简化。例如,irap au需要包含cvs中存在的每个层的图片。
[0087]
3.5.参数集
[0088]
avc、hevc和vvc规定了参数集。参数集的类型包括sps、pps、aps和vps。所有avc、hevc和vvc都支持sps和pps。vps是从hevc开始引入的,并且包含在hevc和vvc两者中。aps没有被包含在avc或hevc中,但被包含在最新的vvc草案文本中。
[0089]
sps被设计为携带序列级别标头信息,并且pps被设计为携带不频繁改变的图片级别标头信息。使用sps和pps,不需要为每个序列或图片重复不频繁改变的信息,因此可以避免该信息的冗余信令通知。此外,使用sps和pps实现了重要标头信息的带外传输,从而不仅避免了冗余传输的需要,而且还提高了错误恢复能力。
[0090]
引入vps是为了携带多层比特流中所有层共同的序列级别标头信息。
[0091]
引入aps是为了携带这样的图片级别或条带级别信息,这些信息需要相当多的比特来进行编解码,可以由多个图片共享,并且在序列中可以有相当多不同的变化。
[0092]
4所公开的技术方案解决的技术问题
[0093]
在最新的vvc文本(在jvet-r2001-va/v10中)中用于处理eos nal单元的现有设计存在以下问题:
[0094]
1)在条款3(定义)中,作为clvs图片定义的一部分,短语“比特流的层中按照解码顺序在eos nal单元之后的第一pu”存在问题,因为eos nal单元是层特定的并且eos nal单元仅适用于nuh_layer_id等于eos nal单元的nuh_layer_id的层。因此,这将导致混乱和互操作性问题。
[0095]
2)在条款7.4.2.2(nal单元标头语义)中,规定当nal_unit_type等于ph_nut、eos_nut或fd_nut时,nuh_layer_id应等于相关联vcl nal单元的nuh_layer_id。然而,这并不能完全实现时域可缩放性,例如提取时域可缩放比特流的时域子集的操作,同时在提取输出中保留每个层的eos nal单元。例如,假设有nuh_layer_id等于0和1的两个层,并且每个层有两个temporalid等于0和1的子层。在n大于0且temporalid等于1的au n中,每个pu中有一个eos nal单元,并且两个eos nal单元的nuh_layer_id等于0和1。请注意,任何eos nal单元都要求具有temporalid等于0。通过仅保留每层中最低子层的提取过程,将移除temporalid等于1的nal单元,因此,在au n
[0096]
中的两个eos nal单元将成为au n-1中nuh_layer_id等于1的pu的一部分。这将违反eos nal单元的nuh_layer_id应该等于相关联的vcl nal单元的nuh_layer_id的规则。因此,需要允许eos nal单元的nuh_layer_id与关联的vcl nal单元的nuh_layer_id不同,并且还需要允许一个pu包含多个eos nal单元。
[0097]
3)在条款7.4.2.4.3(pu的顺序及其与au的关联)中,规定当存在时,属于同一层并包含eos nal单元的pu之后的特定层的下一个pu应为clvss pu。但是,如上所述,需要允许eos nal单元的nuh_layer_id
[0098]
与关联的vcl nal单元的nuh_layer_id不同。因此,这里的约束需要相应地改变。
[0099]
4)在条款7.4.2.4.4(nal单元和编解码图片的顺序以及它们与pu的关联)中,规定当eos nal单元存在于pu中时,它应是pu内除eob nal
[0100]
单元(如果存在)之外的所有nal单元中的最后一个nal单元。但是,如上所述,需要允许一个pu包含多于一个eos nal单元。因此,这里的约束需要相应地改变。
[0101]
5)在条款7.4.3.10(序列结束rbsp语义)中,规定当存在时,eos rbsp
[0102]
规定当前pu是clvs中按照解码顺序的最后一个pu,并且比特流中按照解码顺序的下一个后续pu(如果有)是irap或gdr pu。然而,如上所述,pu可能包含不同层的eos nal单元,因此,需要相应地改变这个约束。
[0103]
5技术方案和实施例的列表
[0104]
为解决上述及其他问题,公开了如下总结的方法。这些项目应该被认为是解释一般概念的示例,而不应该以狭隘的方式解释。此外,这些项目可以单独使用或以任何方式组合使用。
[0105]
1)为了解决问题1,在条款3(定义)中,在作为clvs图片的定义的一部分的注释中,将短语“比特流的层中按照解码顺序在eos nal单元之后的第一pu”更改为“比特流的层中按照解码顺序在该层中的eos nal单元之后的第一pu”。
[0106]
2)为了解决问题2,不是要求eos nal单元的nuh_layer_id等于关联的vcl nal单元的nuh_layer_id,而是规定eos nal单元的nuh_layer_id应等于cvs中存在的层的nuh_layer_id值之一。
[0107]
a.此外,在一个示例中,允许一个pu包含多于一个的eos nal单元。
[0108]
b.此外,在一个示例中,eos nal单元的nuh_layer_id的值需要小于或等于关联的vcl nal单元的nuh_layer_id。
[0109]
3)为了解决问题3,规定当存在时,在属于同一层的eos nal单元之后的特定层的下一个pu应该是irap或gdr pu。
[0110]
a.或者,规定当存在时,在属于同一层的eos nal单元之后的特定层的下一个pu应为clvss pu。
[0111]
4)为了解决问题4,规定当eos nal单元存在于pu中时,它应是pu内除了其他eos nal单元(当存在时)或eob nal单元(当存在时)之外的所有nal单元中的最后一个nal单元。
[0112]
5)为了解决问题4,规定当存在时,eos rbsp规定比特流中按照解码顺序与eos nal单元属于同一层的下一个后续pu(如果有)是irap或gdr pu。
[0113]
6实施例
[0114]
以下是上文章节5中总结的本发明的一些方面的一些示例实施例,其可被应用于vvc规范。更改的文本基于jvet-r2001-va/v10中最新的vvc文本。已添加或修改的大部分相关部分以粗体下划线突出显示,并且部分删除部分以[[双方括号中的黑体斜体]]突出显示。可能还有其他一些编辑性质的更改,因此没有突出显示。
[0115]
6.1.第一实施例
[0116]
该实施例用于项目1、2、2a、2b、3、4和5。
[0117]
3定义
[0118]
...
[0119]
编解码层视频序列(clvs):具有相同nuh_layer_id值的pu序列,按照解码顺序由clvss pu组成,后跟零个或多个不是clvss pu的pu,包括所有后续pu,直到但不包括作为clvss pu的任何后续pu。
[0120]
注释—clvss pu可以是idr pu、cra pu或gdr pu。对于每个idr pu,nooutputbeforerecoveryflag的值等于1,并且每个crapu具有等于1的handlecraasclvsstartflag,并且每个cra或gdr pu是比特流的层中按照解码顺序的第一
pu或比特流的层中按照解码顺序的eos nal单元之后的第一pu。
[0121]
...
[0122]
7.4.2.2nal单元标头语义
[0123]
...
[0124]
nuh_layer_id规定vcl nal单元所属的层的标识符或非vcl nal单元所应用的层的标识符。nuh_layer_id的值应在0到55(包括端值)的范围内。nuh_layer_id的其他值被保留以供itu-t|iso/iec将来使用。
[0125]
对于编解码图片的所有vcl nal单元,nuh_layer_id的值应当相同。编解码图片或pu的nuh_layer_id的值是编解码图片或pu的vcl nal单元的nuh_layer_id的值。
[0126]
当nal_unit_type等于ph_nut、[[eos_nut,]]或fd_nut时,nuh_layer_id应等于相关vcl nal单元的nuh_layer_id。
[0127][0128]
注释1—dci、vps、aud和eob nal单元的nuh_layer_id值不受约束。
[0129]
...
[0130]
7.4.2.4.3pu的顺序及其与au的关联
[0131]
...
[0132]
比特流一致性的要求是,当存在时,属于同一层的之后的特定层的下一个pu应为为
[0133]
...
[0134]
7.4.2.4.4nal单元和编解码图片的顺序及其与pu的关联
[0135]
pu由零个或一个ph nal单元、一个编解码图片(包括一个或多个vcl nal单元)以及零个或多个其他非vcl nal单元组成。vcl nal单元与编解码图片的关联在条款7.4.2.4.5中描述。
[0136]
当图片由多个vcl nal单元组成时,pu中应存在ph nal单元。
[0137]
当vcl nal单元的sh_picture_header_in_slice_header_flag等于1或者vcl nal单元是ph nal单元之后的第一vcl nal单元时,vcl nal单元是图片的第一vcl nal单元。
[0138]
pu内非vcl nal单元(aud和eob nal单元除外)的顺序应遵守以下约束:
[0139]

当pu中存在ph nal单元时,它应位于pu的第一vcl nal单元之前。
[0140]

当任何dci nal单元、vps nal单元、sps nal单元、pps nal单元、前缀sei nal单元、nal_unit_type等于rsv_nvcl_26的nal单元、或nal_unit_type在unspec_28..unspec_29范围内的nal单元存在于pu中时,它们不应在pu的最后一个vcl nal单元之后。
[0141]

当任何dci nal单元、vps nal单元、sps nal单元或pps nal单元存在于pu中时,它们应位于pu的ph nal单元(如果存在)之前,并应位于pu的第一vcl nal单元之前。
[0142]

pu中的nal_unit_type等于suffix_sei_nut、fd_nut或rsv_nvcl_27、或在
unspec_30..unspec_31范围内的nal单元不应位于pu的第一vcl nal单元之前。
[0143]

当任何前缀aps nal单元存在于pu中时,它们应位于pu的第一vcl单元之前。
[0144]

当任何后缀aps nal单元存在于pu中时,它们应在pu的最后一个vcl单元之后。
[0145]

当eos nal单元存在于pu中时,它应是pu内除了
[0146]
eob nal单元(当存在时)之外的所有nal单元中的最后一个nal单元。
[0147]
7.4.3.10序列结束rbsp语义
[0148][0149]
当存在时,eos rbsp规定rbsp规定比特流中按照解码顺序下一个后续pu(如果有的话)是irap或gdr pu。
[0150]
eos rbsp的sodb和rbsp的语法内容为空。
[0151]
图1是可实现本文中所公开的各种技术的示例视频处理系统1900的框图。各种实现方式可以包括系统1900中的一些或全部组件。系统1900可以包括用于接收视频内容的输入1902。视频内容可以以原始或未压缩的格式(例如8或10比特多分量像素值)接收,或者可以以压缩或编码的格式接收。输入1902可以代表网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(pon)等)和无线接口(诸如wi-fi或蜂窝接口)。
[0152]
系统1900可以包括可以实现本文档中描述的各种编解码或编码方法的编解码组件1904。编解码组件1904可以减少从输入1902到编解码组件1904的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件1904的输出可以被存储或经由如组件1906所表示的通信连接来发送。在输入1902处接收的视频的存储或通信的比特流(或编解码)表示可以由组件1908使用,以生成被发送到显示接口1910的像素值或可显示视频。从比特流表示中生成用户可见的视频的过程有时被称为视频解压缩。此外,尽管某些视频处理操作被称为“编解码”操作或工具,但是应当理解,在编码器处使用编解码工具或操作,并且反转编解码结果的对应的解码工具或操作将由解码器执行。
[0153]
外围总线接口或显示接口的示例可以包括通用串行总线(usb)或高清晰度多媒体接口(hdmi)或显示端口(displayport)等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以实施在各种电子设备中,诸如移动电话、膝上型计算机、智能电话或其它能够进行数字数据处理和/或视频显示的其他设备。
[0154]
图2是视频处理装置3600的框图。装置3600可以用于实现本文中所述的一个或多个方法。装置3600可以实施在智能电话、平板电脑、计算机、物联网(iot)接收器等中。装置3600可以包括一个或多个处理器3602、一个或多个存储器3604和视频处理硬件3606。(多个)处理器3602可以被配置为实现本文档中所述的一个或多个方法。(多个)存储器3604可以用于存储数据和代码,该代码用于实现本文所描述的方法和技术。视频处理硬件3606可
以用于在硬件电路中实现本文档中所描述的一些技术。
[0155]
图4是示出可利用本公开的技术的示例视频编解码系统100的框图。
[0156]
如图4所示,视频编解码系统100可以包括源设备110和目的地设备120。源设备110生成编码的视频数据,该源设备110可以被称为视频编码设备。目的地设备120可以解码由源设备110生成的编码的视频数据,该目的地设备120可以被称为视频解码设备。
[0157]
源设备110可以包括视频源112、视频编码器114和输入/输出(i/o)接口116。
[0158]
视频源112可以包括源,诸如视频捕获设备、从视频内容提供器接收视频数据的接口、和/或用于生成视频数据的计算机图形系统、或这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关联的数据。编解码图片是图片的编解码表示。相关联的数据可以包括序列参数集、图片参数集和其他语法结构。i/o接口116可以包括调制器/解调器(调制解调器)和/或发射器。可以将编码的视频数据经由i/o接口116通过网络130a直接发送到目的地设备120。还可以将编码的视频数据存储到存储介质/服务器130b上,以供目的地设备120访问。
[0159]
目的地设备120可以包括i/o接口126、视频解码器124和显示设备122。
[0160]
i/o接口126可以包括接收器和/或调制解调器。i/o接口126可以从源设备110或存储介质/服务器130b获取编码的视频数据。视频解码器124可以对编码的视频数据进行解码。显示设备122可以向用户显示解码的视频数据。显示设备122可以与目的地设备120集成,或可以在配置为与外置显示设备相接的目的地设备120外部。
[0161]
视频编码器114和视频解码器124可以根据视频压缩标准(诸如,高效视频编解码(hevc)标准、多功能视频编解码(vvc)标准和其他当前和/或其他标准)进行操作。
[0162]
图5是示出视频编码器200的示例的框图,该视频编码器200可以是图4中示出的系统100中的视频编码器114。
[0163]
视频编码器200可以被配置为执行本公开的任何或全部技术。在图5的示例中,视频编码器200包括多个功能组件。本公开所描述的技术可以在视频编码器200的各种组件之间共享。在一些示例中,处理器可以配置为执行本公开中描述的任何或全部技术。
[0164]
视频编码器200的功能组件可以包括分割单元201、预测单元202(其可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206)、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重构单元212、缓冲器213和熵编码单元214。
[0165]
在其他示例中,视频编码器200可以包括更多、更少或不同的功能组件。在一个示例中,预测单元202可以包括帧内块复制(ibc)单元。ibc单元可以以ibc模式进行预测,其中至少一个参考图片是当前视频块所在的图片。
[0166]
此外,诸如运动估计单元204和运动补偿单元205的一些组件可以被高度集成,但是出于解释的目的在图5的示例中分开表示。
[0167]
分割单元201可以将图片分割成一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块尺寸。
[0168]
模式选择单元203可以例如基于残差结果选择编解码模式(例如,帧内或帧间)中的一个,并且将作为结果的帧内或帧间编解码块提供到残差生成单元207来生成残差块数
据而且提供到重构单元212来重构编解码块以用作参考图片。在一些示例中,模式选择单元203可以选择帧内和帧间预测的组合(ciip)模式,其中预测是基于帧间预测信号和帧内预测信号。模式选择单元203还可以为帧间预测情况下的块选择运动矢量的分辨率(例如子像素或整像素精度)。
[0169]
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较,生成当前视频块的运动信息。运动补偿单元205可以基于来自缓冲器213的图片(而不是与当前视频块相关联的图片)的运动信息和解码样点来为当前视频块确定预测的视频块。
[0170]
运动估计单元204和运动补偿单元205可以为当前视频块进行不同操作,例如执行不同操作取决于当前视频块是在i条带、p条带还是b条带中。
[0171]
在一些示例中,运动估计单元204可以为当前视频块执行单向预测,并且运动估计单元204可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。运动估计单元204然后可以生成指示列表0或列表1中的含有参考视频块的参考图片的参考索引以及指示当前视频块与参考视频块之间的空域位移的运动矢量。运动估计单元204可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
[0172]
在其他示例中,运动估计单元204可以为当前视频块执行双向预测,运动估计单元204可以在列表0的参考图片中搜索当前视频块的参考视频块并且还可以在列表1的参考图片中搜索当前视频块的另一个参考视频块。运动估计单元204然后可以生成指示列表0或列表1中的含有参考视频块的参考图片的参考索引以及指示参考视频块与当前视频块之间的空域位移的运动矢量。运动估计单元204可以输出参考索引和当前视频块的运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
[0173]
在一些示例中,运动估计单元204可以输出完整的运动信息集,以用于解码器的解码处理。
[0174]
在一些示例中,运动估计单元204可以不输出当前视频的完整的运动信息集。而是,运动估计单元204可以参考另一个视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与邻近视频块的运动信息足够相似。
[0175]
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示:向视频解码器300指示当前视频块具有与另一个视频块相同的运动信息的值。
[0176]
在另一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中标识另一个视频块和运动矢量差(mvd)。运动矢量差指示当前视频块的运动矢量与指示视频块的运动矢量之间的差。视频解码器300可以使用指示视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
[0177]
如上所讨论的,视频编码器200可以预测性地信令通知运动矢量。可以由视频编码器200实现的预测性的信令通知技术的两个示例包括高级运动矢量预测(amvp)和merge模式信令通知。
[0178]
帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视
频块执行帧内预测时,帧内预测单元206可以基于相同图片中的其他视频块的解码样点来生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
[0179]
残差生成单元207可以通过从当前视频块中减去(例如,由减号表示)当前视频块的(多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中样点的不同样点分量的残差视频块。
[0180]
在其他示例中,例如在跳过模式下,对于当前视频块可能不存在当前视频块的残差数据,并且残差生成单元207可以不执行减去操作。
[0181]
变换处理单元208可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块来生成当前视频块的一个或多个变换系数视频块。
[0182]
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(qp)值来量化与当前视频块相关联的变换系数视频块。
[0183]
逆量化单元210和逆变换单元211可以将逆量化和逆变换分别应用于变换系数视频块,以从变换系数视频块重构残差视频块。重构单元212可以将重构的残差视频块添加到来自由预测单元202生成的一个或多个预测视频块的对应样点,以产生与当前块相关联的重构视频块用于存储在缓冲器213中。
[0184]
在重构单元212重构视频块之后,可以执行环路滤波操作以降低视频块中视频块化伪影。
[0185]
熵编码单元214可以从视频编码器200的其他功能组件接收数据。当熵编码单元214接收数据时,熵编码单元214可以执行一个或多个熵编码操作以生成熵编码数据并且输出包括熵编码数据的比特流。
[0186]
图6是示出视频解码器300的示例的框图,该视频解码器300可以是图4中示出的系统100中的视频解码器114。
[0187]
视频解码器300可以被配置为执行本公开的任何或全部技术。在图5的示例中,视频解码器300包括多个功能组件。本公开所描述的技术可以在视频解码器300的各种组件之间共享。在一些示例中,处理器可以配置为执行本公开中描述的任何或全部技术。
[0188]
在图6的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305、重构单元306和缓冲器307。在一些示例中,视频解码器300可以执行与关于视频编码器200(图5)所描述的编码过程总体相反的解码过程。
[0189]
熵解码单元301可以检索编码比特流。编码比特流可以包括熵编解码视频数据(例如,视频数据的编码块)。熵解码单元301可以对熵编解码视频进行解码,并且从熵解码视频数据中,运动补偿单元302可以确定包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息的运动信息。运动补偿单元302例如可以通过执行amvp和merge模式确定此类信息。
[0190]
运动补偿单元302可以产生运动补偿块,可能地基于插值滤波器进行插值。要以子像素精度使用的插值滤波器的标识符可以包括在语法元素中。
[0191]
运动补偿单元302可以使用由视频编码器200在编码视频块的期间所使用的插值滤波器,来计算出参考块的子整数像素的插值的值。运动补偿单元302可以根据接收的语法
信息确定由视频编码器200所使用的插值滤波器并且使用插值滤波器来产生预测块。
[0192]
运动补偿单元302可以使用一些语法信息来确定:用于对编码视频序列的(多个)帧和/或(多个)条带进行编码的块的尺寸、描述编码视频序列的图片的每个宏块如何被分割的分割信息、指示如何编码每个分割的模式、每个帧间编码块的一个或多个参考帧(和参考帧列表)、以及对编码视频序列进行解码的其他信息。
[0193]
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式来从空域相邻块形成预测块。逆量化单元303逆量化(即,去量化)在比特流中提供的且由熵解码单元301解码的量化的视频块系数。逆变换单元303应用逆变换。
[0194]
重构单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的对应预测块求和,以形成解码块。如果需要,去块滤波器还可以应用于滤波解码块以便移除块效应伪影。解码视频块然后存储在缓冲器307中,该缓冲器307提供用于随后的运动补偿/帧内预测的参考块,并且还产生用于在显示设备上呈现的解码视频。
[0195]
接下来提供了一些实施例优选的解决方案的列表。
[0196]
以下解决方案显示了上一章节(例如,项目1)中讨论的技术的示例实施例。
[0197]
1.一种视频处理的方法(例如,图3中的方法600),包括执行(602)包括一个或多个视频图片的视频与该视频的比特流表示之间的转换,其中编解码表示符合格式规则,其中格式规则规定比特流的层中的第一图片单元(pu)按照解码顺序在该层中在序列结束网络抽象层(eos nal)单元之后。
[0198]
以下解决方案显示了上一章节(例如,项目2)中讨论的技术的示例实施例。
[0199]
2.一种视频处理方法,包括:执行包括一个或多个视频图片的视频和该视频的比特流表示之间的转换,其中该比特流表示包括具有一个或多个视频层的编解码视频序列,其中该比特流表示符合格式规则,该格式规则规定序列结束网络抽象层(eos nal)单元的层id等于编解码视频序列中的视频层之一的另一个层id。
[0200]
3.如解决方案1所述的方法,其中,格式规则还允许在图片单元(pu)中包含多于一个的eos nal单元。
[0201]
以下解决方案显示了上一章节(例如,项目1)中讨论的技术的示例实施例。
[0202]
4.一种视频处理方法,包括:执行包括一个或多个视频图片的视频和该视频的比特流表示之间的转换,其中该比特流表示包括具有一个或多个视频层的编解码视频序列,其中该比特流表示符合格式规则,该格式规则规定在属于同一层的序列结束网络抽象层(eos nal)单元之后的特定层的下一个图片单元是帧内随机访问点或逐步解码刷新图片单元。
[0203]
以下解决方案显示了上一章节(例如,项目4)中讨论的技术的示例实施例。
[0204]
5.一种视频处理方法,包括:执行包括一个或多个视频图片的视频和该视频的比特流表示之间的转换,其中该比特流表示包括具有一个或多个视频层的编解码视频序列,其中该比特流表示符合格式规则,该格式规则规定图片单元中的eos nal单元是pu内除其他eos nal单元或eob nal单元之外的所有nal单元中的最后一个nal单元。
[0205]
以下解决方案显示了上一章节(例如,项目5)中讨论的技术的示例实施例。
[0206]
6.一种视频处理方法,包括:执行包括一个或多个视频图片的视频和该视频的比特流表示之间的转换,其中该比特流表示包括具有一个或多个视频层的编解码视频序列,
其中该比特流表示符合格式规则,该格式规则规定eos rbsp规定比特流中按照解码顺序与eos nal单元属于同一层的下一个后续pu必须是irap或gdr pu。
[0207]
7.如解决方案1~6中任一项所述的方法,其中执行转换包括将视频编码成编解码表示。
[0208]
8.如解决方案1~6中任一项所述的方法,其中执行转换包括解析和解码编解码表示以生成视频。
[0209]
9.一种视频解码装置,包括被配置为实现解决方案1至8中的一项或多项所述的方法的处理器。
[0210]
10.一种视频编码装置,包括被配置为实现解决方案1至8中的一项或多项所述的方法的处理器。
[0211]
11.一种其上存储有计算机代码的计算机程序产品,该代码在由处理器执行时使处理器实现解决方案1至8中任一项所述的方法。
[0212]
12.一种在本文档中描述的方法、装置或系统。
[0213]
下面描述一些优选实施例。
[0214]
在一些实施例中(例如,参见章节5中的项目1),视频处理的方法(例如,图7中描绘的方法700)包括执行(702)视频和视频的比特流之间的转换,其中比特流符合格式规则,其中比特流包括一个或多个层,该一个或多个层包括一个或多个图片单元(pu),其中,格式规则规定,响应于比特流的层中按照解码顺序在层中的序列结束网络抽象层(eos nal)单元之后的第一pu,将第一pu的变量设置为特定值,其中变量指示第一pu是否为编解码层视频序列起始(clvss)pu。在一些实施例中,第一pu是即时解码刷新pu。在一些实施例中,第一pu为清洁随机访问pu,并且清洁随机访问pu的另一变量被设置为指示清洁随机访问pu被作为clvss pu处理。在一些实施例中,第一pu是清洁随机访问pu。在一些实施例中,第一pu是逐步解码刷新pu。在一些实施例中,第一pu是层中按照解码顺序的第一个pu。在一些实施例中,变量对应于nooutputbeforerecoveryflag。
[0215]
在一些实施例中(例如,参见章节5中的项目3),视频处理的方法(例如,图8中描绘的方法800)包括执行(802)视频和视频的比特流之间的转换,其中,比特流包括一个或多个层,该一个或多个层包括根据格式规则的一个或多个图片单元(pu);其中,格式规则规定特定层的序列结束网络抽象层(eos nal)单元之后的特定层的pu是特定类型的pu。在一些实施例中,特定类型的pu是帧内随机访问点(irap)类型或逐步解码刷新(gdr)类型之一。在一些实施例中,其中,特定类型的pu是编解码层视频序列起始(clvss)pu。
[0216]
在一些实施例中(例如,参见章节5中的项目5),视频处理的方法(例如,图9中描绘的方法900)包括执行(902)视频和视频的比特流之间的转换,其中比特流包括一个或多个层,该一个或多个层包括根据格式规则的一个或多个图片单元(pu),其中,格式规则规定,当存在时,序列结束(eos)原始字节序列有效负载(rbsp)语法结构规定,比特流中按照解码顺序与eos网络抽象层(nal)单元属于同一层的下一个后续pu是来自帧内随机访问点(irap)pu类型或逐步解码刷新(gdr)pu类型的特定pu类型。在一些实施例中,特定pu类型是irap pu类型。在一些实施例中,特定pu类型是gdr pu类型。
[0217]
在一些实施例中(例如,参见章节5中的项目2),视频处理的方法(例如,图10中描绘的方法1000)包括执行(1002)视频和视频的比特流之间的转换,其中比特流包括一个或
多个层,该一个或多个层包括根据格式规则的一个或多个网络抽象层(nal)单元,其中,格式规则规定序列结束网络抽象层(eos nal)单元的标头中的第一层标识符需要等于比特流中的一个或多个层之一的第二层标识符。在一些实施例中,格式规则还允许在图片单元(pu)中包含多于一个的eos nal单元。在一些实施例中,其中,格式规则规定eos nal单元的第一层标识符需要小于或等于与eos nal单元相关联的视频编解码层(vcl)nal单元的第三层标识符。
[0218]
在一些实施例中(例如,参见章节5中的项目4),视频处理的方法(例如,图11中描绘的方法1100)包括执行(1102)视频和视频的比特流之间的转换,其中比特流包括一个或多个层,该一个或多个层包括一个或多个图片单元(pu),该一个或多个图片单元(pu)包括根据格式规则的一个或多个网络抽象层(nal)单元,其中格式规则规定,响应于指示pu中序列结束的第一nal单元,如果存在指示另一序列结束的另一nal单元或如果存在指示比特流结束的另一nal单元,则第一nal单元是pu内除了该另一nal单元之外的所有nal单元中的最后一个nal单元。在一些实施例中,另一nal单元是序列结束(eos)nal单元。在一些实施例中,另一nal单元是比特流结束(eob)nal单元。
[0219]
在以上公开的实施例中,pu可以具有包括图片标头nal单元、包括一个或多个视频编解码层nal单元的编解码图片和零个或多个非视频编解码层nal单元的格式。
[0220]
在以上公开的实施例中,执行转换包括将视频编码为比特流。
[0221]
在以上公开的实施例中,执行转换包括从比特流中解码视频。
[0222]
在一些实施例中,包括处理器的视频解码装置可以被配置为实现在任何上述公开的实施例中描述的方法。
[0223]
在一些实施例中,包括处理器的视频编码装置可以被配置为实现上述方法。
[0224]
在一些实施例中,计算机程序产品可以具有存储在其上的计算机代码,该代码在由处理器执行时使处理器实现上述公开的方法。
[0225]
在一些实施例中,一种比特流生成的方法,包括根据上述权利要求中的任一项或多项所述的方法生成比特流;以及将比特流存储在计算机可读程序介质上。
[0226]
在一些实施例中,非暂时性计算机可读记录介质可以存储由视频处理装置执行的方法生成的视频的比特流,其中该方法包括根据本文公开的方法生成比特流。
[0227]
本文档中描述的所公开的以及其他解决方案、示例、实施例、模块和功能操作可以被实现在数字电子电路中或者在计算机软件、固件或硬件(含有本文档中所公开的结构以及其结构的等同物)中、或者它们中的一个或多个的组合。所公开的和其他实施例可以被实现为一个或多个计算机程序产品,即在计算机可读介质上所编码的计算机程序指令的一个或多个模块,该计算机程序指令用于由数据处理装置执行或者控制数据处理装置的操作。该计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读可传播信号的物质的组合,或它们中的一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如,机器生成的电、光或电磁信号,其被生成来编码信息以传输到合适的接收器装置。
[0228]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译或解释语言)编写,并且可以以任何形式来部署计算机程序,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其它单元。计算机程序不必须对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,在标记语言文档中存储的一个或多个脚本)的文件的一部分中、存储在专用于所讨论的程序的单个文件中、或存储在多个协同文件中(例如存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以部署为在一个计算机上或者在多个计算机上执行,该多个计算机位于一个站点处或者跨多个站点分布并由通信网络互连。
[0229]
本文档中所描述的过程和逻辑流可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过在输入数据上操作并且生成输出来执行功能。也可以由专用逻辑电路(例如,现场可编程门阵列(fpga)或专用集成电路(asic))执行过程和逻辑流,并且装置可以实现为专用逻辑电路(例如fpga或asic)。
[0230]
适合于计算机程序的执行的处理器包括例如通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或者该两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如磁、磁光盘或光盘),或者可操作地耦合以从该一个或多个大容量存储设备(例如磁、磁光盘或光盘)接收数据或者将数据传输到该一个或多个大容量存储设备(例如磁、磁光盘或光盘),或者从其接收数据并向其传递数据。但是,计算机不必具有此类设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备(例如eprom、eeprom和闪速存储器设备);磁盘(例如内部硬盘或可移动磁盘);磁光盘;和cd rom和dvd-rom磁盘。处理器和存储器可以由专用逻辑电路补充,或者合并在专用逻辑电路中。
[0231]
虽然本专利文档包含许多细节,但这些细节不应被解释为对任何主题或可要求保护的范围的限制,而是作为规定于特定技术的特定实施例的特征的描述。在本专利文档中,在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反地,在单个实施例的上下文中所描述的各种特征还可以分别在多个实施例中来实现或者以各种合适的子组合来实现。此外,尽管特征可以如上文描述为以某些组合起作用并且甚至最初同样地要求,但是在某些情况下来自所要求保护的组合的一个或多个特征可以从组合中去除,并且所要求保护的组合可以针对子组合或子组合的变化。
[0232]
类似地,尽管在附图中以特定顺序描绘了操作,但这不应当理解为要求按所示的特定次序或顺序次序进行此类操作或者进行所有示出的操作,以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都要求这种分离。
[0233]
仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和示出的内容来作出其它实施方式、增强和变型。
再多了解一些

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

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

相关文献