视频编解码中的已解码图片缓冲器管理的制作方法

文档序号:27043745发布日期:2021-10-24 07:07阅读:148来源:国知局
视频编解码中的已解码图片缓冲器管理的制作方法
视频编解码中的已解码图片缓冲器管理
1.相关申请的交叉引用
2.本技术要求于2019年3月15日提交的申请号为62/819,460的美国临时申请以及于2020年3月11日提交的申请号为16/815,710的美国申请优先权,这两个申请的公开内容通过引用整体并入本技术中。
技术领域
3.本技术涉及一组先进的视频编解码技术。更具体地,涉及已解码图片缓冲器管理。


背景技术:

4.用于解码的系统包括已解码图片缓冲器,用于存储在解码中用作参考的图片。


技术实现要素:

5.本技术的一些实施例通过例如提供时间子层适配,改进了已解码图片缓冲器管理技术。
6.在一些实施例中,提供了一种方法。该方法包括:将视频码流的先前已解码图片存储在图片缓冲器中,所述先前已解码图片包括相同时间子层的第一多个图片,所述第一多个图片包括用于预测所述视频码流的当前图片的至少一个子层参考图片;基于在条带头和图片头其中至少一个头部中的指示符,确定所述第一多个图片中的一图片是否为子层非参考(slnr)图片;在确定所述图片为slnr图片的基础上,从所述图片缓冲器中移除所述slnr图片;以及在从所述图片缓冲器中移除所述slnr图片之后,使用存储在所述图片缓冲器内的所述至少一个子层参考图片中的一个或多个子层参考图片,预测所述当前图片。
7.在一实施例中,所述确定所述第一多个图片中的一图片是否为slnr图片,包括:识别所述图片的网络抽象层(nal)单元类型;以及基于识别的nal单元类型,确定所述图片是否为slnr图片。
8.在一实施例中,所述方法还包括:在确定所述图片为slnr图片的基础上,给被确定为slnr图片的所述图片提供一标识符,其中,所述移除步骤包括:基于所述标识符,从所述图片缓冲器中移除所述图片。在一实施例中,所述方法还包括:形成一参考图片列表,该参考图片列表包括所述第一多个图片中的每一个图片的条目,其中,提供所述标识符的步骤包括:在被确定为slnr图片的所述图片所对应的参考图片列表的条目中,提供所述标识符。
9.在一实施例中,存储在所述图片缓冲器中的所述先前已解码图片包括作为参考图片的第二图片,所述方法还包括:确定所述第二图片的所述时间子层的值是否大于预定值;在确定所述第二图片的所述时间子层的值大于所述预定值的基础上,从所述图片缓冲器中移除所述第二图片。在一实施例中,所述方法还包括:在确定所述第二图片的所述时间子层的值大于所述预定值的基础上,为所述第二图片提供一标识符,其中,所述移除所述第二图片包括:基于所述标识符,从所述图片缓冲器中移除所述第二图片。在一实施例中,所述方法还包括:比较所述预定值以及最高时间子层标识号所对应的值,其中,在确定所述预定值
不等于所述最高时间子层标识号所对应的值时,确定所述第二图片的所述时间子层的值是否大于所述预定值。在一实施例中,所述方法还包括:确定所述当前图片是否为帧内随机访问点(irap)图片;确定一标志是否指示不存在随机访问跳过引导(rasl)图片的输出;以及在确定所述当前图片是否为irap图片以及确定所述标志是否指示不存在rasl图片的输出的基础上,确定是否为存储在所述图片缓冲器中的每个参考图片设置相应标识符,所述每个参考图片的所述相应标识符指示是否要从所述图片缓冲器中移除每个参考图片。
10.在一实施例中,所述第二图片的所述时间子层的值大于存储在所述图片缓冲器中的所述第一多个图片的所述时间子层的值。
11.在一实施例中,所述方法还包括:当图片未被所述参考图片列表参考时,从所述图片缓冲器中移除所述参考图片列表未参考的图片。
12.在一些实施例中,提供了一种对视频码流解码的解码器。所述解码器包括:被配置为存储计算机程序代码的存储器;以及至少一个处理器,被配置为访问所述计算机程序代码并按照所述计算机程序代码的指示进行操作,所述计算机程序代码包括:存储代码,被配置为使得所述至少一个处理器,将视频码流的先前已解码图片存储在图片缓冲器中,所述先前已解码图片包括相同时间子层的第一多个图片,所述第一多个图片包括用于预测所述视频码流的当前图片的至少一个子层参考图片;确定代码,被配置为使得所述至少一个处理器,基于出现在条带头和图片头其中至少一个头部中的指示符,确定所述第一多个图片中的一图片是否为子层非参考(slnr)图片;移除代码,被配置为使得所述至少一个处理器,在确定所述图片为slnr图片的基础上,从所述图片缓冲器中移除所述slnr图片;以及预测代码,被配置为使得所述至少一个处理器,在从所述图片缓冲器中移除所述slnr图片之后,使用存储在所述图片缓冲器内的所述至少一个子层参考图片中的一个或多个子层参考图片,预测所述当前图片。
13.在一实施例中,所述确定代码被配置为使得所述至少一个处理器,识别所述图片的网络抽象层(nal)单元类型,并且基于识别的nal单元类型,确定所述图片是否为slnr图片。在一实施例中,所述计算机程序代码还包括提供代码,所述提供代码被配置为使得所述至少一个处理器,在确定所述图片为slnr图片的基础上,给被确定为slnr图片的所述图片提供一标识符,并且所述移除代码被配置为使得所述至少一个处理器,基于所述标识符,从所述图片缓冲器中移除所述图片。在一实施例中,所述计算机程序代码还包括形成代码,所述形成代码被配置为使得所述至少一个处理器,形成一参考图片列表,该参考图片列表包括所述第一多个图片中的每一个图片的条目,并且所述提供代码被配置为使得所述至少一个处理器,在被确定为slnr图片的所述图片所对应的参考图片列表的条目中,提供所述标识符。
14.在一实施例中,存储在所述图片缓冲器中的所述先前已解码图片包括作为参考图片的第二图片,所述确定代码被配置为使得所述至少一个处理器,确定所述第二图片的所述时间子层的值是否大于预定值,并且所述移除代码被配置为使得所述至少一个处理器,在确定所述第二图片的所述时间子层的值大于所述预定值的基础上,从所述图片缓冲器中移除所述第二图片。
15.在一实施例中,所述提供代码被配置为使得所述至少一个处理器,在确定所述第二图片的所述时间子层的值大于所述预定值的基础上,为所述第二图片提供一标识符,并
且所述移除代码被配置为使得所述至少一个处理器,基于所述标识符,从所述图片缓冲器中移除所述第二图片。在一实施例中,所述确定代码被配置为使得所述至少一个处理器,比较所述预定值以及最高时间子层标识号所对应的值,并且在确定所述预定值不等于所述最高时间子层标识号所对应的值时,确定所述第二图片的所述时间子层的值是否大于所述预定值。在一实施例中,所述确定代码被配置为使得所述至少一个处理器,确定所述当前图片是否为帧内随机访问点(irap)图片,并且确定一标志是否指示不存在随机访问跳过引导(rasl)图片的输出;并且所述计算机程序代码还包括提供代码,所述提供代码被配置为使得所述至少一个处理器,在确定所述当前图片为irap图片以及确定所述标志指示不存在rasl图片的输出的情况下,为存储在所述图片缓冲器中的每个参考图片设置相应标识符,所述每个参考图片的所述相应标识符指示是否要从所述图片缓冲器中移除每个参考图片。
16.在一实施例中,所述第二图片的所述时间子层的值大于存储在所述图片缓冲器中的所述第一多个图片的所述时间子层的值。
17.在一些实施例中,提供了一种存储计算机指令的非易失性计算机可读介质,所述计算机指令在由至少一个处理器执行时使得所述至少一个处理器:将视频码流的先前已解码图片存储在图片缓冲器中,所述先前已解码图片包括相同时间子层的第一多个图片,所述第一多个图片包括用于预测所述视频码流的当前图片的至少一个子层参考图片;基于在条带头和图片头其中至少一个头部中的指示符,确定所述第一多个图片中的一图片是否为子层非参考(slnr)图片;在确定所述图片为slnr图片的基础上,从所述图片缓冲器中移除所述slnr图片;以及在从所述图片缓冲器中移除所述slnr图片之后,使用存储在所述图片缓冲器内的所述至少一个子层参考图片中的一个或多个子层参考图片,预测所述当前图片。
附图说明
18.通过下文的详细描述和附图,本技术所公开主题的进一步特征、本质和各种优点将更加清楚,其中:
19.图1是根据实施例的通信系统的简化框图示意图。
20.图2是根据实施例的流媒体系统的简化框图示意图。
21.图3是根据实施例的视频解码器和显示器的简化框图示意图。
22.图4是根据实施例的视频编码器和视频源的简化框图示意图。
23.图5是图示由实施例执行的方法的流程图。
24.图6是图示由实施例执行的方法的流程图。
25.图7是图示实施例的设备的图。
26.图8是适用于实现各实施例的计算机系统的图。
具体实施方式
27.图1图示了根据本技术公开的实施例的通信系统100的简化框图。系统100可以包括通过网络150互连的至少两个终端110和120。对于单向数据传输,第一终端110可对本地位置的视频数据进行编码,以通过网络150传输到另一终端120。第二终端120可从网络150接收另一终端的已编码视频数据,对已编码视频数据进行解码,并显示恢复的视频数据。单
向数据传输可能在媒体服务等应用中比较常见。
28.图1图示了用于支持已编码视频数据的双向传输的第二对终端130和140,所述双向传输可例如在视频会议期间发生。对于双向数据传输,终端130和终端140中的每个终端可对在本地位置采集的视频数据进行编码,以通过网络150传输到另一终端。终端130和终端140中的每个终端还可接收由另一终端传输的已编码视频数据,可对所述已编码视频数据进行解码,且可在本地显示装置上显示恢复的视频数据。
29.在图1中,终端110

140可以例如为服务器、个人计算机、智能电话和/或其它类型的终端。例如,终端(110

140)可以是膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络150表示在终端110

140之间传送已编码视频数据的任何数目的网络,包括例如有线和/或无线通信网络。通信网络150可在电路交换和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或互联网。出于本论述的目的,除非在下文中有所解释,否则网络150的架构和拓扑对于本技术公开的操作来说可能是无关紧要的。
30.作为本技术所公开主题应用的示例,图2示出了视频编码器和视频解码器在流式传输环境中的放置方式。本技术所公开主题可用于其它支持视频的应用,包括例如视频会议、数字tv、在包括cd、dvd、存储棒等的数字介质上存储压缩视频等等。
31.如图2所示,流式传输系统200可包括采集子系统213,所述采集子系统包括视频源201和编码器203。流式传输系统200可以还包括至少一个流式传输服务器205和/或至少一个流式传输客户端206。
32.视频源201可以创建例如未压缩的视频样本流202。视频源201可以是例如数码相机。样本流202描绘为粗线,以强调与已编码视频码流相比,其具有较高的数据量,样本流可由耦接到相机201的编码器203处理。编码器203可包括硬件、软件或软硬件组合,以实现或实施如下文更详细地描述的所公开主题的各方面。编码器203还可生成已编码视频码流204。已编码视频码流204描绘为细线,以强调与未压缩的视频样本流202相比,其具有较低的数据量,其可存储在流式传输服务器205上以供将来使用。一个或多个流式传输客户端206可访问流式传输服务器205,以检索视频码流209,该视频码流209可以是已编码视频码流204的副本。
33.流式传输系统206可包括视频解码器210和显示器212。视频解码器210可例如对视频码流209(视频码流209是已编码视频码流204的传入副本)进行解码,且产生可在显示器212或另一呈现装置(未描绘)上呈现的输出视频样本流211。在一些流式传输系统中,可根据某些视频编码/压缩标准,对视频码流204、209进行编码。该些标准的实施例包括但不限于itu

t h.265建议书。正在开发的是非正式地称为多功能视频编码(versatile video coding,vvc)的视频编码标准,本技术的实施例可用于vvc标准的上下文中。
34.图3图示了根据本技术实施例的附接在显示器212上的视频解码器210的示例功能性框图。
35.视频解码器210可包括信道312、接收器310、缓冲存储器315、熵解码器/解析器320、缩放器/逆变换单元351、帧内预测单元352、运动补偿预测单元353、聚合器355、环路滤波单元器356、参考图片存储器357、当前图片存储器358。在至少一个实施例中,视频解码器210可包括一个集成电路、一系列集成电路和/或其它电子电路。视频解码器210还可部分或完全体现为运行在带有相关联的存储器的cpu上的软件。
36.在该实施例以及其它实施例中,接收器310可接收将由解码器210解码的一个或多个已编码视频序列,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列。已编码视频序列可从信道312接收,所述信道可以是通向存储已编码的视频数据的存储装置的硬件/软件链路。接收器310可接收已编码的视频数据以及其它数据,例如,可转发到它们各自的使用实体(未标示)的已编码音频数据和/或辅助数据流。接收器310可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器315可耦接在接收器310与熵解码器/解析器320(此后称为“解析器”)之间。当接收器310从具有足够带宽和可控性的存储/转发装置,或从等时同步网络接收数据时,也可能不需要配置缓冲器315,或可以将所述缓冲器做得较小。为了在互联网等尽力而为业务分组网络上使用,也可能需要缓冲器315,所述缓冲器可相对较大且可具有自适应性大小。
37.视频解码器210可包括解析器320,以根据已熵编码视频序列重建符号321。这些符号的类别包括例如用于管理解码器210的操作的信息,以及用以控制显示器212等显示装置的潜在信息,所述显示器212可耦接到解码器,如图2所示。用于显示装置的控制信息可以是例如辅助增强信息(supplemental enhancement information,sei)消息或视频可用性信息(video usability information,vui)的参数集片段(未标示)。解析器320可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循本领域技术人员所知的原理,包括可变长度编码、霍夫曼编码(huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器320可基于对应于群组的至少一个参数,从已编码视频序列中提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(group of pictures,gop)、图片、图块(tile)、切片(slice)、宏块、编码单元(coding unit,cu)、块、变换单元(transform unit,tu)、预测单元(prediction unit,pu)等等。解析器320还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等等。
38.解析器320可对从缓冲器315接收的视频序列执行熵解码/解析操作,从而创建符号321。
39.取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号321的重建可涉及多个不同单元。涉及哪些单元以及涉及方式可由解析器320从已编码视频序列解析的子群控制信息控制。为了简洁起见,未描述解析器320与下文的多个单元之间的此类子群控制信息流。
40.除已经提及的功能块以外,解码器210可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多单元彼此紧密交互并且可以彼此集成。然而,出于描述所公开主题的目的,概念上细分成下文的功能单元是适当的。
41.一个单元可以是缩放器/逆变换单元351。缩放器/逆变换单元351可以从解析器320接收作为符号321的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元351可输出包括样本值的块,所述样本值可输入到聚合器355中。
42.在一些情况下,缩放器/逆变换单元351的输出样本可属于帧内编码块;即:不使用来自先前已重建图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内预测单元352提供。在一些情况下,帧内预测单元352采用从
当前图片存储器358中的当前(部分已重建)图片提取的周围已重建信息,生成大小和形状与正在重建的块相同的块。在一些情况下,聚合器355基于每个样本,将帧内预测单元352生成的预测信息添加到由缩放器/逆变换单元351提供的输出样本信息中。
43.在其它情况下,缩放器/逆变换单元351的输出样本可属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元353可访问参考图片存储器357以提取用于预测的样本。在根据属于所述块的符号321对提取的样本进行运动补偿之后,这些样本可由聚合器355添加到缩放器/逆变换单元351的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元353从参考图片存储器357内的地址获取预测样本可受到运动矢量控制。所述运动矢量以所述符号321的形式而供运动补偿预测单元353使用,所述符号321例如是包括x、y和参考图片分量。运动补偿还可包括在使用子样本精确运动矢量时,从参考图片存储器357提取的样本值的插值、运动矢量预测机制等等。
44.聚合器355的输出样本可在环路滤波器单元356中被各种环路滤波技术采用。视频压缩技术可包括环路内滤波器技术,所述环路内滤波器技术受控于包括在已编码视频码流中的参数,且所述参数作为来自解析器320的符号321可用于环路滤波器单元356,但是还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。
45.环路滤波器单元356的输出可以是样本流,所述样本流可输出到显示器212等显示装置以及存储在参考图片存储器357中,以用于后续的帧间图片预测。
46.一旦完全重建,某些已编码图片就可用作参考图片以用于将来预测。一旦已编码图片被完全重建,且已编码图片(通过例如解析器320)被识别为参考图片,则当前图片存储器358中存储的当前参考图片可变为参考图片存储器357的一部分,且可在开始重建后续的已编码图片之前重新分配新的当前图片存储器。
47.视频解码器210可根据例如itu

t h.265建议书等标准中记录的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法,如视频压缩技术或标准的语法,特别是其中的配置文件(profiles document)所指定。为了符合一些视频压缩技术或标准,已编码视频序列的复杂度可以是在视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(hypothetical reference decoder,hrd)规范和在已编码视频序列中用信号表示的hrd缓冲器管理的元数据来进一步限定。
48.在实施例中,接收器310可连同已编码视频一起接收附加(冗余)数据。所述附加数据可以是已编码视频序列的一部分。所述附加数据可由视频解码器210用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,snr)增强层、冗余切片、冗余图片、前向纠错码等形式。
49.图4图示了根据本技术实施例的与视频源201相关联的视频编码器203的示例功能性框图。
50.视频编码器203可以包括例如为源编码器430的编码器、编码引擎432、(本地)解码器433、参考图片存储器434、预测器435、传输器440、熵编码器445、控制器450、信道460。
51.编码器203可从视频源201(并非编码器的一部分)接收视频样本,所述视频源可采集将由编码器203编码的视频图像。
52.视频源201可提供将由编码器203编码的呈数字视频样本流形式的源视频序列,所述数字视频样本流可具有任何合适位深度(例如:x位、10位、12位
……
)、任何色彩空间(例如bt.601y crcb、rgb
……
)和任何合适取样结构(例如y crcb 4:2:0、y crcb 4:4:4)。在媒体服务系统中,视频源201可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源203可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的取样结构、色彩空间等,每个像素可包括一个或多个样本。所属领域的技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。
53.根据实施例,编码器203可实时或在由应用所要求的任何其它时间约束下,将源视频序列的图片编码且压缩成已编码视频序列443。施行适当的编码速度可以是控制器450的一个功能。控制器(450)还可以控制如下文所描述的其它功能单元且可以在功能上耦接到这些单元。为了简洁起见,图中未标示耦接。由控制器450设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(group of pictures,gop)布局,最大运动矢量搜索范围等。本领域技术人员可容易地识别控制器450的其它功能,因为这些功能可能会涉及针对某一系统设计优化的视频编码器203。
54.一些视频编码器在本领域技术人员容易认出的“编码环路”中运作。作为简单的描述,编码环路可以由源编码器430的编码部分(负责基于待编码的输入图片和参考图片创建符号)和嵌入于编码器203中的(本地)解码器433组成,当符号与已编码视频码流之间的压缩是无损的之时,解码器433以(远程)解码器创建样本数据的方式重建符号,以创建样本数据。重建的样本流可以输入到参考图片存储器434。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)对于本领域技术人员而言是已知的。
[0055]“本地”解码器433的操作可与例如已在上文结合图3详细描述的“远程”解码器210相同。然而,当符号可用且熵编码器445和解析器320能够无损地将符号编码/解码为已编解码视频序列时,包括信道312、接收器310、缓冲器315和解析器320在内的解码器210的熵解码部分,可能不完全在本地解码器433中实施。
[0056]
此时可以观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,可能需要以基本上相同的功能形式存在于对应的编码器中。出于此原因,本技术侧重于解码器操作。可简化编码器技术的描述,因为编码器技术可能与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。
[0057]
作为源编码器430的操作的一部分,源编码器430可执行运动补偿预测编码,参考来自视频序列中被指定为“参考帧”的一个或多个先前已编码帧,对输入帧进行预测性编码。以此方式,编码引擎432对输入帧的像素块与参考帧的像素块之间的差值进行编码,所述参考帧可被选作所述输入帧的预测参考。
[0058]
本地视频解码器433可基于源编码器430创建的符号,对可指定为参考帧的各帧的已编码视频数据进行解码。编码引擎432的操作可为有损过程。当已编码视频数据是在视频解码器(图4中未示)处解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器433复制解码过程,所述解码过程可由视频解码器对参考帧执行,且可使重建的参考帧存储在参考图片存储器434中。以此方式,编码器403可在本地存储重建的参考帧的副本,所述副本与将由远端视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。
[0059]
预测器435可针对编码引擎432执行预测搜索。即,对于将要编码的新帧,预测器435可在参考图片存储器434中搜索可作为所述新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器435可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器435获得的搜索结果,可确定输入图片可具有从参考图片存储器434中存储的多个参考图片取得的预测参考。
[0060]
控制器450可管理视频编码器430的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
[0061]
可在熵编码器445中对所有上述功能单元的输出进行熵编码。熵编码器根据本领域技术人员所知的技术,例如霍夫曼编码、可变长度编码、算术编码等,对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。
[0062]
传输器440可缓冲由熵编码器445创建的已编码视频序列,从而为通过通信信道460进行传输做准备,所述通信信道可以是通向将存储已编码的视频数据的存储装置的硬件/软件链路。传输器440可将来自视频编码器403的已编码视频数据与要传输的其它数据合并,所述其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。
[0063]
控制器450可管理视频编码器203的操作。在编码期间,控制器450可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为帧内图片(i图片)、预测性图片(p图片)或双向预测性图片(b图片)。
[0064]
帧内图片(i图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(independent decoder refresh,“idr”)图片。所属领域的技术人员了解i图片的变体及其相应的应用和特征。
[0065]
预测性图片(p图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
[0066]
双向预测性图片(b图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。
[0067]
源图片通常可在空间上细分成多个样本块(例如,每个具有4
×
4、8
×
8、4
×
8或16
×
16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图片的编码分配来确定所述其它块。举例来说,i图片的块可进行非预测编码,或所述块可参考同一图片的已经编码的块来进行预测编码(空间预测或帧内预测)。p图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行非预测编码。b图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行
非预测编码。
[0068]
视频编码器203可根据例如itu

t h.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器203可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。
[0069]
在实施例中,传输器440可传输附加数据和已编码的视频。视频编码器430可以包括此类数据为已编码视频序列的一部分。附加数据可包括时间/空间/snr增强层、冗余图片和切片等其它形式的冗余数据、sei消息、vui参数集片段等。
[0070]
本技术的编码器和解码器可以实施本技术的关于已解码图片缓冲器(dpb)(例如,参考图片存储器357和参考图片存储器434)的已解码图片缓冲器管理。
[0071]
已解码图片缓冲器可以存储在解码过程中可用于参考,以重建后续图片的已解码图片。例如,存储在已解码图片缓冲器中的图片,可以在至少一个后续图片的预测过程中用作参考。
[0072]
本技术的编码器和解码器可以构建和/或使用至少一个参考图片列表(例如,语法元素“refpiclist[i]”),每个参考图片列表列出了存储在已解码图片缓冲器中的图片。例如,参考图片列表中的每个索引可以对应于已解码图片缓冲器中的相应图片。参考图片列表可以指例如可以用于帧间预测的参考图片的列表。
[0073]
下面描述本技术的已解码图片缓冲器管理的一些方面。
[0074]
本技术的一些实施例通过提供时间子层适配来改进已解码图片缓冲器管理。术语“子层”(sub

layer)可以指时间可缩放码流的时间可缩放层,所述时间可缩放码流包括具有temporalid变量的特定值的vcl nal单元和相关联的非vcl nal单元。
[0075]
例如,在实施例中,将网络抽象层(nal)单元“trail_nut”、“stsa_nut”、“rasl_nut”和“radl_nut”分别重新规定为(“trail_n”,“trail_r”)、(“stsa_n”,“stsa_r”)、(“rasl_n,rasl_r”)和(“radl_n,rasl_r”),以指示相同时间子层中的图片是已参考图片还是未参考图片。时间标识符等于待解码的当前图片的时间标识符的未参考图片,可以包括在refpiclist[i]中。
[0076]
在实施例中,在序列参数集(“sps”)中,用信号通知每个最高时间标识符的“sps_max_dec_pic_buffering_minus1”。
[0077]
在实施例中,在图块组头中,用信号通知每个最高时间标识符的未使用参考图片的列表。
[0078]
在实施例中,当指定的最高时间标识符的值不等于“sps_max_sub_layers_minus1”时,将时间标识符(例如,语法元素“temporalid”)大于指定的最高时间标识符(例如,语法元素“highesttid”)的所有参考图片,标记为“未用于参考”。
[0079]
根据本技术的一些实施例,可以根据网络的目标比特率或可用比特率,从已解码图片缓冲器中丢弃或可不丢弃没有用于预测和重建相同时间子层中其之后的其它nal单元的nal单元。
[0080]
例如,图5是图示本技术的编码器和解码器可能会如何通过解析和解译nal单元类型来处理对应的nal单元的流程图。如图5所示,解码器(或编码器)可执行方法500。方法500可以包括解析nal单元的nal单元头(501),并识别当前nal单元的nal单元类型(502)。接下
来,解码器(或编码器)可以确定当前nal单元是否用于预测和重建相同时间子层中后续的nal单元(503)。基于该确定,解码器(或编码器)可以使用当前nal单元重建/转发后续的nal单元(504),或者可选地,从已解码图片缓冲器中丢弃当前nal单元(505),而不使用该nal单元来预测和重建后续的nal单元。例如,如果确定当前nal单元用于预测和重建相同时间子层中的后续的nal单元,则解码器(或编码器)可以使用存储在已解码图片缓冲器中的当前nal单元,重建/转发后续的nal单元(504)。如果nal不用于预测和重建后续的nal单元,则解码器(或编码器)可以从已解码图片缓冲器中丢弃当前nal单元(505),而不使用nal单元来预测和重建后续的nal单元。预测和重建后续的nal单元可以指使用已解码图片缓冲器,通过预测和重建当前图片,对当前图片进行解码。
[0081]
本技术中的实施例可以单独使用或以任何顺序组合使用。此外,本技术的方法、编码器和解码器中的每一个可以由处理电路(例如,至少一个处理器或至少一个集成电路)实现。在一个示例中,至少一个处理器执行存储在非易失性计算机可读介质中的程序,以执行本技术中描述的方法、编码器和解码器的功能。
[0082]
如上所述,nal单元类型“trail_nut”、“stsa_nut”、“rasl_nut”和“radl_nut”被分开定义为(“trail_n”,“trail_r”)、(“stsa_n”,“stsa_r”)、(“rasl_n”,“rasl_r”)和(“radl_n”,“rasl_r”),以指示相同子层中的未参考图片。因此,本技术的编码器和解码器可以使用例如下面的表1中所描述的nal单元。
[0083]
表1

nal单元类型代码和nal单元类型类
[0084][0085]
子层图片可以具有上述nal单元类型中的一个类型。如果一个图片的nal单元类型(例如,语法元素“nal_unit_type”)等于“trail_n”、“tsa_n”、“stsa_n”、“radl_n”或“rasl_n”,则该图片是子层非参考(slnr)图片。否则,该图片是子层参考图片。slnr图片可以是,包含按解码顺序在对相同子层的后续图片解码过程中,不能用于进行帧间预测的样本的图片。子层参考图片可以是,包含按解码顺序在对相同子层的后续图片解码过程中,可以用于进行帧间预测的样本的图片。子层参考图片也可以用于,按解码顺序在对较高子层的后续图片解码过程中,进行帧间预测。
[0086]
通过提供指示未参考图片的nal单元(例如,vcl nal单元),可以丢弃不必要的nal
单元,以进行比特率适配。时间id(指示图片所属的时间子层)等于当前图片的时间id的未参考图片,可以包括在refpiclist[i]中。因此,在实施例中,可以将未参考图片标记为“未使用参考图片”,并且可以迅速地从已解码图片缓冲器中移除。
[0087]
例如,在实施例中,解码器(或编码器)可以基于与图片相关联的nal单元,确定该图片是否为slnr图片,并且如果该图片是slnr图片,则将该图片标记为“未使用参考图片”。所述图片(可以存储在已解码图片缓冲器中)可以通过在参考图片列表中所述图片的条目中输入标识符进行标记,标识符例如是“无参考图片”或“未使用参考图片”。解码器(或编码器)可以执行这些方面作为方法500的步骤503的一部分,如图5所示。接下来,解码器(或编码器)可以基于图片的标记,从已解码图片缓冲器中移除图片。解码器(或编码器)可以执行此方面作为方法500的步骤505的一部分,如图5所示。
[0088]
在实施例中,参考图片列表“refpiclist[0]”和“refpiclist[1]”的构建方式如下:
[0089][0090][0091]
在实施例中,可以对码流一致性施加约束。例如,可以约束编码器或解码器,使得在refpiclist[0]或refpiclist[1]中不存在以下至少一个为“真”的活动条目:(1)该条目
等于“无参考图片”。(2)该条目是slnr图片,并且其“temporalid”等于当前图片的“temporalid”。
[0092]
如上所述,在实施例中,可以在sps中用信号通知每个最高时间标识符(例如,语法元素“highesttid”)的语法元素“sps_max_dec_pic_buffering_minus1”。
[0093]
变量“highesttid”的值可由外部装置确定,如果外部装置可用。否则,可以将“highesttid”设置为等于语法元素“sps_max_sub_layers_minus1”。然后,解码器可以估计对于给定的“highesttid”值,已解码图片缓冲器的最大所需大小。
[0094]
在该实施例中,sps可以包括表2所示的以下示例语法。
[0095]
表2
[0096][0097]“sps_max_dec_pic_buffering_minus1[i]”加1指定当“highesttid”等于i时,以图片存储缓冲器为单位,用于已编码视频序列(“cvs”)的已解码图片缓冲器的最大所需大小。“sps_max_dec_pic_buffering_minus1[i]”的值可以在0到“maxdpbsize
”‑
1(包括端值)的范围内,其中,“maxdpbsize”在其它地方指定。
[0098]
如上所述,在实施例中,每个最高时间id的未使用参考图片的列表可以在图块组头中用信号通知。
[0099]
根据“highesttid”的值,每个时间子层的一些参考图片可能不用作后续图片的参考。在实施例中,图块组头中的每个“highesttid”值所对应的未使用参考图片,可以显式地用信号通知。通过显式地用信号通知图块组头中的每个“highesttid”值所对应的未使用参考图片,可以迅速将未使用已解码参考图片从dpb中移除。
[0100]
在该实施例中,sps可以包括表3所示的以下示例语法。
[0101]
表3
[0102]
…ꢀ
} [0103]“unused_ref_pic_signaling_enabled_flag”等于0,说明“num_unused_ref_pic”和“delta_poc_unused_ref_pic[i]”不存在于图块组头中,隐含地确定了将已解码图片从dpb中移除的时间。“unused_ref_pic_signaling_enabled_flag”等于1,说明“num_unused_ref_pic”和“delta_poc_unused_ref_pic[i]”存在于图块组头中,通过解析“delta_poc_unused_ref_pic[i]”,显式地确定将已解码图片从dpb中移除的时间。
[0104]
在该实施例中,图块组头可以包括表4所示的以下示例语法。
[0105]
表4
[0106][0107]“num_unused_ref_pic”指定未使用参考图片条目的数目。如果“num_unused_ref_pic”不存在,则可以将该字段的值设置为等于0。
[0108]“delta_poc_unused_ref_pic[i]”指定当前图片的图片顺序计数值与第i个条目提及的未使用已解码图片的图片顺序计数值之间的绝对差。“delta_poc_unused_ref_pic[i]”的值可以在0到2
15

1的范围内(包括端值)。
[0109]
如果“unused_ref_pic_signaling_enabled_flag”等于1,则以下适用:
[0110][0111]
在实施例中,解码器(或编码器)可以基于上述判定,确定是否将图片标记为“未使用参考图片”。解码器(或编码器)可以执行这些方面作为图5所图示的方法500的步骤503的一部分。接下来,解码器(或编码器)可以基于图片的标记,从已解码图片缓冲器中移除图片。解码器(或编码器)可以执行此方面作为图5所图示的方法500的步骤505的一部分。
[0112]
根据实施例的一方面,当“highesttid”的值不等于“sps_max_sub_layers_minus1”时,可以将“temporalid”大于highesttid的所有参考图片标记为“未用于参考”。
[0113]“highesttid”值可以由外部装置立即改变。子码流提取过程可以以“highesttid”作为输入来应用。
[0114]
例如,在图块组头解码和用于图块组的参考图片列表构建的解码过程之后,但在图块组数据的解码之前,可以为每个图片调用一次所述过程。该过程可使dpb中的至少一个参考图片被标记为“未用于参考”或“用于长期参考”。
[0115]
在实施例中,可以将dpb中的已解码图片标记为“未用于参考”、“用于短期参考”或“用于长期参考”,但在解码过程的操作期间,在任何给定时刻,仅标记为这三个中的一个。当适用时,将这些标记中的一个标记分配给一个图片,可以隐含地移除这些标记中的另一个标记。当称一个图片被标记为“用于参考”时,统称该图片被标记为“用于短期参考”或“用于长期参考”(但不是两者)。
[0116]
dpb中的已解码图片,可以基于其标记,在dpb内以不同的方式进行标识(例如,索引)或以不同的方式存储。例如,短期参考图片(“strp”)可以通过它们的“picordercntval”值进行标识。长期参考图片(“ltrp”)可以通过它们的“picordercntval”值的log2(maxltpicordercntlsb)lsb进行标识。
[0117]
如果当前图片是“norasloutputflag”等于1的irap图片,则将当前dpb中的所有参考图片(如果有的话)标记为“未用于参考”。等于1的“norasloutputflag”可以指示解码器中不存在rasl图片的输出。
[0118]
当“highesttid”的值不等于“sps_max_sub_layers_minus1”时,将“temporalid”大于“highesttid”的所有参考图片标记为“未用于参考”。
[0119]
作为示例,参考图6,本技术的解码器和编码器可以执行方法600。方法600的执行可以基于确定“highesttid”的值不等于“sps_max_sub_layers_minus1”。如图6所示,解码器(或编码器)可以确定参考图片的时间id值(601)。例如,dpb中或参考图片列表中列出的第一参考图片。随后,解码器(或编码器)可以比较参考图片的时间id值与预定值(例如,“highesttid”的值)(602)。如果参考图片的时间id值大于预定值,则解码器(或编码器)可以将该参考图片标记为“未用于参考”(603)。在实施例中,解码器(或编码器)可以在dpb中或参考图片列表中提供所述标记。
[0120]
无论时间id值大于预定值或否,解码器(或编码器)然后可以确定dpb(或参考图片列表)中是否存在在步骤602中没有将其时间id值与预定值进行比较的另一参考图片(604)。如果解码器(或编码器)确定dpb(或参考图片列表)中存在在步骤602中没有将其时间id值与预定值进行比较的另一参考图片,则解码器(或编码器)可以对dpb(或参考图片列表)中的所有参考图片重复步骤601至604。一旦解码器(或编码器)确定dpb(或参考图片列表)中的所有参考图片都在步骤602中将其相应的时间id值与预定值进行了比较,则解码器(或编码器)可以从dpb中移除标记为“未用于参考”的参考图片(605)。解码器(或编码器)可以使用已经移除了任何数目的图片的dpb,对当前图片进行解码(606)。
[0121]
在各实施例中,解码器(和编码器)还可以执行使用dpb对当前图片进行解码的其它功能。例如,解码器(和编码器)可以可选地或附加地应用以下各项:(1)对于refpiclist[0]或refpiclist[1]中的每个ltrp条目,当所参考图片为strp时,解码器(或编码器)可以将该图片标记为“用于长期参考”。(2)解码器(或编码器)可以将dpb中未由refpiclist[0]或refpiclist[1]中的任何条目参考的每个参考图片,标记为“未用于参考”。
[0122]
在实施例中,解码器(或编码器)可以在使用dpb对当前图片进行解码之前,移除dpb中被标记为“未用于参考”的所有参考图片,或者在使用dpb对当前图片进行解码时,在dpb中保留这些参考图片,并忽略这些参考图片。
[0123]
在各实施例中,设备800可以包括存储计算机程序代码的存储器,该计算机程序代码在由至少一个处理器执行时可以使得至少一个处理器执行上述解码器和编码器的功能。
[0124]
例如,参考图7,设备800的计算机程序代码可以包括存储代码810、确定代码820、移除代码830和解码代码840。
[0125]
存储代码810可以被配置为使得至少一个处理器,将视频码流的先前已解码图片存储在已解码图片缓冲器中,所述先前已解码图片包括相同时间子层的多个第一图片,所述多个第一图片包括用于预测视频码流的当前图片的至少一个子层参考图片。
[0126]
确定代码820可以被配置为使得至少一个处理器,根据上文描述的技术中的至少一个,作出确定。例如,确定代码820可以被配置为使得至少一个处理器,确定多个第一图片中的图片是否为子层非参考(slnr)图片。可选地或附加地,确定代码820可以被配置为使至少一个处理器,标识图片的网络抽象层(nal)单元类型,并且基于所标识的nal单元类型,确定该图片是否为slnr图片。可选地或附加地,确定代码820可以被配置为使得至少一个处理器,确定图片的时间子层的值是否大于预定值(例如,“highesttid”的值)。可选地或附加地,确定代码820可以被配置为使得至少一个处理器,比较预定值(例如,“highesttid”的值)以及最高时间子层标识号所对应的值。可选地或附加地,确定代码820可以被配置为,在确定预定值不等于最高时间子层标识号所对应的值时,使得至少一个处理器,确定图片的时间子层的值是否大于预定值(例如,“highesttid”的值)。可选地或附加地,确定代码820可以被配置为使得至少一个处理器,确定当前图片是否为帧内随机访问点(irap)图片,并且确定一标志是否指示不存在随机访问跳过引导(“rasl”)图片的输出。
[0127]
移除代码830可以被配置为使得至少一个处理器,根据上文描述的技术中的至少一个,从已解码图片缓冲器中移除至少一个图片。例如,移除代码830可以被配置为使得至少一个处理器,在确定图片为slnr图片时,从已解码图片缓冲器中移除该slnr图片。可选地或附加地,移除代码830可以被配置为使得至少一个处理器,在确定图片的时间子层的值大于预定值(例如,“highesttid”的值)时,从已解码图片缓冲器中移除图片。在各实施例中,移除代码830可以被配置为使得至少一个处理器,基于标识符(例如,诸如“未用于参考”或“无参考”等标记),从已解码图片缓冲器中移除图片。
[0128]
解码代码840可以被配置为使得至少一个处理器根据上文描述的技术中的至少一个,使用已解码图片缓冲器对当前图片进行解码。例如,在实施例中,解码代码840包括预测代码,该预测代码被配置为使得至少一个处理器,在从已解码图片缓冲器中移除图片(slnr图片或标记有诸如“未用于参考”或“无参考”的标识符的图片)之后,使用存储在已解码图片缓冲器内的至少一个子层参考图片中的一个或多个子层参考图片,预测当前图片。
[0129]
在实施例中,计算机程序代码可以进一步包括提供代码850和形成代码860。
[0130]
提供代码850可以被配置为使得至少一个处理器,根据上文描述的技术中的至少一个,提供标识符。标识符例如可以指示指定图片是“未用于参考”、“用于短期参考”还是“用于长期参考”。例如,提供代码850可以被配置为使得至少一个处理器,在确定图片为slnr图片的基础上,为被确定为slnr图片的图片提供标识符(例如,诸如“未用于参考”或“无参考”的标记)。可选地或附加地,提供代码850可以被配置为使得至少一个处理器,在被确定为slnr图片的图片所对应的参考图片列表的条目中,提供标识符。可选地或附加地,提供代码850可以被配置为使得至少一个处理器,在确定图片的时间子层的值大于预定值(例如,“highesttid”的值)的基础上,为图片提供标识符。可选地或附加地,提供代码850可以被配置为使得至少一个处理器,在确定当前图片为irap图片以及确定标志指示不存在rasl图片的输出的基础上,为当前存储在dpb中的每个参考图片设置标识符,指示待从dpb中移除当前存储的每个参考图片。
[0131]
形成代码860可以被配置为使得至少一个处理器,根据上文描述的技术中至少一个,形成至少一个参考图片列表。例如,形成代码860可以被配置为使得至少一个处理器,形成包括dpb中的至少一个图片的条目的参考图片列表。
[0132]
上文所描述的技术可使用计算机可读指令实施为计算机软件且以物理方式存储在一个或多个计算机可读存储介质中。举例来说,图8示出适于实施本技术的某些实施例的计算机系统900。
[0133]
所述计算机软件可使用任何合适的机器代码或计算机语言来编码,所述机器代码或计算机语言可经受汇编、编译、链接或类似机制以创建包括指令的代码,所述指令可直接或通过解译、微码执行等而由计算机中央处理单元(central processing unit,cpu)、图形处理单元(graphics processing unit,gpu)等执行。
[0134]
可在各种类型的计算机或计算机组件上执行所述指令,所述计算机或计算机组件包括例如个人计算机、平板电脑、服务器、智能电话、游戏装置、物联网装置等。
[0135]
图8中所示的用于计算机系统900的组件为示例,并非旨在暗示关于实施本技术实施例的计算机软件的使用或功能的范围的任何限制。也不应将组件的配置解释为对计算机系统900的示范性实施例中所示的组件中的任一个组件或组件组合有任何依赖或需求。
[0136]
计算机系统900可包括某些人机接口输入装置。此类人机接口输入装置可响应于一个或多个人类用户通过例如触觉输入(例如:按键、滑动、数据手套移动)、音频输入(例如:语音、拍击)、视觉输入(例如:手势)、嗅觉输入(未描绘)进行的输入。人机接口装置还可用于捕获未必与人的有意识输入直接相关的某些媒体,例如音频(例如:话语、音乐、环境声)、图像(例如:扫描图像、从静态图像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
[0137]
输入人机接口装置可包括以下一个或多个(每种仅描绘一个):键盘901、鼠标902、轨迹垫903、触摸屏910、数据手套、操纵杆905、麦克风906、扫描仪907、相机908。
[0138]
计算机系统900还可包括某些人机接口输出装置。此类人机接口输出装置可通过例如触觉输出、声音、光和气味/味道刺激一个或多个人类用户的感觉。此类人机接口输出装置可包括触觉输出装置(例如触摸屏910、数据手套或操纵杆905的触觉反馈,但还可存在不充当输入装置的触觉反馈装置)。例如,这种装置可以是音频输出装置(例如:扬声器909、头戴式耳机(未描绘))、视觉输出装置(例如屏幕910,包括crt屏幕、lcd屏幕、等离子体屏幕、oled屏幕,各自具有或不具有触摸屏输入能力,各自具有或不具有触觉反馈能力
‑‑
其中的一些能够通过例如立体平画输出的方式输出二维视觉输出或大于三维的输出;虚拟现实眼镜(未描绘)、全息显示器和烟雾箱(未描绘)),以及打印机(未描绘)。
[0139]
计算机系统900还可包括人类可访问的存储装置和存储装置的相关联介质,例如光学介质,包括具有cd/dvd等介质921的cd/dvd rom/rw920、拇指驱动器922、可移动硬盘驱动器或固态驱动器923、磁带和软盘(未描绘)等旧版磁性媒体、基于rom/asic/pld的专用装置,例如安全保护装置(未描绘),等等。
[0140]
所属领域的技术人员还应理解,结合当前公开的主题使用的术语“计算机可读介质”并未涵盖传输介质、载波或其它瞬时信号。
[0141]
计算机系统900还可包括到一个或多个通信网络的接口。网络可例如是无线的、有线的、光学的。网络还可以是本地的、广域的、城域的、车载和工业的、实时的、容忍延迟的等等。网络的实例包括例如以太网、无线lan的局域网、包括gsm、3g、4g、5g、lte等的蜂窝网络、包括有线tv、卫星tv和地面广播tv的tv有线或无线广域数字网络、包括can总线的车载网络和工业网络等。某些网络通常需要附接到某些通用数据端口或外围总线949(例如,计算机
系统900的usb端口)的外部网络接口适配器;其它网络通常通过附接到如下文所描述的系统总线而集成到计算机系统900的核心中(例如通过以太网接口集成到pc计算机系统中,或通过蜂窝网络接口集成到智能电话计算机系统中)。通过使用这些网络中的任一网络,计算机系统900可与其它实体通信。此类通信可以是仅单向接收(例如广播tv)、仅单向发送(例如连到某些can总线装置的can总线)或是双向的,例如使用局域数字网络或广域数字网络连接到其它计算机系统。这种通信可包括到云计算环境955的通信。可在如上文所描述的那些网络和网络接口中的每一个上使用某些协议和协议栈。
[0142]
上述人机接口装置、人类可访问存储装置和网络接口954可附接到计算机系统900的核心940。
[0143]
核心940可包括一个或多个中央处理单元(cpu)941、图形处理单元(gpu)942、现场可编程门区域(field programmable gate areas,fpga)形式的专用可编程处理单元943、用于某些任务的硬件加速器944等等。这些装置连同只读存储器(read

only memory,rom)945、随机存取存储器946、例如内部非用户可访问的硬盘驱动器、ssd等内部大容量存储装置947可通过系统总线948连接。在一些计算机系统中,系统总线948可通过一个或多个物理插头形式访问以实现通过额外cpu、gpu等来扩展。外围装置可直接或通过外围总线949附接到核心的系统总线948。用于外围总线的架构包括pci、usb等等。图形适配器950可包括在核心940中。
[0144]
cpu 941、gpu 942、fpga 943和加速器944可执行某些指令,所述指令组合起来可构成上述计算机代码。计算机代码可存储在rom 945或ram 946中。过渡数据也可存储在ram 946中,而永久性数据可例如存储在内部大容量存储装置947中。可通过使用高速缓冲存储器来实现对任一存储器装置的快速存储和检索,所述高速缓冲存储器可与一个或多个cpu 941、gpu 942、大容量存储装置947、rom 945、ram 946等紧密关联。
[0145]
计算机可读介质上可具有用于执行各种计算机实施的操作的计算机代码。所述介质和计算机代码可以是专为本技术的目的设计和构建的介质和计算机代码,或可属于计算机软件领域中的技术人员众所周知且可用的种类。
[0146]
举例来说但不作为限制,具有架构900且尤其是核心940的计算机系统可提供因处理器(包括cpu、gpu、fpga、加速器等)执行以一个或多个有形计算机可读介质体现的软件而产生的功能。此类计算机可读介质可以是与上文所介绍的用户可访问大容量存储装置以及核心940的非暂时性质的某些存储装置(例如核心内部大容量存储装置947或rom 945)相关联的介质。实施本技术的各种实施例的软件可存储在此类装置中且由核心940执行。根据特定需求,计算机可读介质可包括一个或多个存储器装置或芯片。软件可使核心940且具体地说使其中的处理器(包括cpu、gpu、fpga等等)执行本文中所描述的特定过程或特定过程的特定部分,包括限定存储在ram 946中的数据结构以及根据由软件限定的过程修改此类数据结构。另外或作为替代方案,计算机系统可提供由硬连线的或以其它方式体现于电路(例如:加速器944)中的逻辑所产生的功能,所述逻辑可代替或连同软件一起操作以执行本文描述的特定过程或特定过程的特定部分。适当时,对软件的引用可涵盖逻辑,且反之亦然。适当时,对计算机可读介质的引用可涵盖存储用于执行的软件的电路(例如集成电路(ic))、体现用于执行的逻辑的电路或这两种电路。本技术涵盖硬件与软件的任何合适的组合。
[0147]
尽管本技术描述了若干非限制性实施例,但在本技术的范围内,可以有各种改动、排列组合方式以及各种替代等同物。因此,应该理解,在申请的精神和范围内,本领域技术人员能够设计出各种虽未在本文明确示出或描述、但可以体现本技术的原理的系统和方法。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1