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

信令通知云工作流中的输入数据的超时和完整的制作方法

2022-06-09 02:42:51 来源:中国专利 TAG:

信令通知云工作流中的输入数据的超时和完整
相关申请的交叉引用
1.本技术要求于2020年6月24日提交的申请号为no.63/043,660的美国临时申请、于2020年10月5日提交的申请号为no.63/087,755的美国临时申请和于2021年4月19日提交的申请号为no.17/233,788的美国申请的优先权,其全部内容通过引用并入本文。
技术领域
2.本公开涉及将基于网络的媒体处理(network based media processing,nbmp)工作流与其功能输入和功能输出相关联,以及信令通知云工作流中的输入数据超时或输入数据完整。


背景技术:

3.mpeg nbmp项目开发了一种在云上处理媒体的概念。然而,当前的nbmp设计存在如下技术问题:缺乏衡量在不同网络实体、媒体处理实体(media processing entity,mpe)、源端或接收端(sink)之间所划分的工作流的质量的能力。
4.nbmp国际规范草案显示了提高媒体处理效率、更快和更低成本地部署媒体服务以及通过利用公共云服务、私有云服务或混合云服务来提供大规模部署的能力的巨大潜力。
5.即使nbmp规范定义了多个任务和多个工作流的空闲状态和运行状态,但这种规范也缺乏如何发生改变的内容。因此,存在以下技术问题:缺少对任务或工作流的每个输入的定义状态以及识别用于改变其状态的任何条件。因此,任务或工作流无法确定其输入中的数据是否完整,并且任务或工作流没有任何规则来确定数据是否停止。
6.此外,即使可以使用网络和云平台来运行各种应用。nbmp标准定义了工作流描述以定义所需的处理,而不提供工作流的输入和工作流的输出到其功能输入和功能输出的一对一映射。
7.虽然当前nbmp工作流描述可提供工作流的详细描述(包括可能的工作流有向无环图(directed acyclic graph,dag)),但是此类描述缺少工作流输入和输出描述与单个功能输入或功能输出之间的关联。
8.此外,可能不清楚工作流的哪个输入与特定功能实例的输入相关联,以及工作流的哪个输出与特定功能实例的输出相关联。这是由于连接映射仅定义了功能之间的连接,而不是功能实例与工作流的输入/输出之间的连接。
9.如果工作流的输入/输出在所有第一功能或最后一个功能之间是不同的,则由于所有输入/输出之间的每个输入/输出的唯一性,工作流管理器可以找到关联。但是,如果工作流包括具有相同描述的多个输入/输出(仅在其流id上有所不同),则对于工作流的输入/输出而言,识别正确的功能输入/功能输出就存在歧义。
10.换言之,在上述其它技术问题中,将工作流输入和工作流输出分配给特定的功能输入和功能输出时也存在歧义。


技术实现要素:

11.为了解决一个或多个不同的技术问题,根据示例性实施例,本公开提供了减少网络开销和服务器计算开销的技术解决方案,同时针对一个或多个视口边界更新传送沉浸式视频。
12.本公开包括一种方法和装置,该装置包括存储器和一个或多个处理器,该存储器被配置为存储计算机程序代码,该处理器被配置为访问该计算机程序代码并按照该计算机程序代码的指示进行操作。计算机程序代码包括获取代码、设置代码和确定代码;该获取代码被配置为使得所述至少一个处理器获得nbmp中的任务和工作流中的至少一个的输入;该设置代码被配置为使得至少一个处理器为任务和工作流中的至少一个的输入设置超时;该确定代码被配置为使得至少一个处理器确定任务和工作流中的至少一个是否在等于超时的持续时间内观察到输入的数据有缺失,使得该确定代码进一步被配置为使得至少一个处理器响应于确定任务和工作流中的至少一个在等于超时的持续时间内观察到输入的数据有缺失,确定输入的其他数据不可用;并且计算机程序代码还包括应用代码和处理代码,该应用代码被配置为使得所述至少一个处理器基于确定输入的其它数据不可用而使至少一个处理器对nbmp中的任务和工作流中的至少一个应用更新,而该处理代码被配置为基于该更新使得至少一个处理器处理nbmp中的任务和工作流中的至少一个。
13.根据示例性实施例,确定代码进一步被配置为使得至少一个处理器确定任务和工作流中的至少一个的状态是否被设置为运行状态,并且该确定代码进一步被配置为使得至少一个处理器在确定状态被设置为运行状态的情况下,基于任务和工作流中的至少一个是否在等于超时的持续时间内观察到输入的数据有缺失,确定是否将状态从运行状态改变为空闲状态。
14.根据示例性实施例,确定代码还被配置为使得至少一个处理器确定是否将任务和工作流中的至少一个的输入与功能输入和功能输出中的至少一个相关联,并且计算机程序代码还包括关联代码,该关联代码被配置为使得至少一个处理器响应于确定将任务和工作流中的至少一个的输入与功能输入和功能输出中的至少一个相关联,将任务和工作流中的至少一个的输入与功能输入和功能输出中的至少一个相关联。
15.根据示例性实施例,其中,确定代码进一步被配置为使得至少一个处理器确定输入是否包括指示,并且该确定代码还被配置为响应于确定输入包括指示,使得至少一个处理器确定输入的其它数据不可用。
16.根据示例性实施例,该指示包括:包括在任务和工作流中的至少一个的输入中的完整输入标志。
17.根据示例性实施例,该指示被包含在与任务和工作流中的至少一个的输入一同提供的元数据中。
18.根据示例性实施例,获取代码进一步被配置为使得至少一个处理器获取多个输入,多个输入包括任务和工作流中的至少一个的所述输入;确定代码进一步被配置为使得至少一个处理器确定任务和工作流中的至少一个的状态是否被设置为运行状态;该确定代码还被配置为使得至少一个处理器确定任务和工作流中的至少一个的所有输入是否在等于超时的持续时间内观察到所有输入的数据有缺失,并且该确定代码还被配置为使得至少一个处理器在确定状态被设置为运行状态的情况下,基于任务和工作流中的至少一个是否
在针对所有输入的等于超时的持续时间内观察到输入的数据有缺失,确定是否将状态从运行状态改变为空闲状态。
19.根据示例性实施例,确定任务和工作流中的至少一个的所有输入是否在等于超时的持续时间内观察到所有输入的数据有缺失包括:确定任务和工作流中的至少一个的所述输入中的至少一个是否指示超时指示和完整指示中的任一个。
20.根据示例性实施例,其中,确定代码进一步被配置为使得至少一个处理器确定任务和工作流中的至少一个的所述输入中的每个输入是否分别与一个或多个功能输入和功能输出中的至少一个相关联,并且计算机程序代码进一步包括关联代码,该关联代码被配置为:使得至少一个处理器基于确定任务和工作流中的至少一个的所述输入中的每个输入是否分别与一个或多个功能输入和功能输出中的至少一个相关联,分别将任务和工作流中的至少一个的所述输入与一个或多个功能输入和功能输出中的至少一个相关联。
21.根据示例性实施例,确定任务和工作流中的至少一个的所述输入中的每个输入是否分别与一个或多个功能输入和功能输出中的至少一个相关联包括:确定任务和工作流中的至少一个的所述输入中的每个输入的标识和端口名中的至少一个,以及确定相应的输入端口和相应的输出端口中的至少一个的相应的端口名和流标识中的至少一个。
附图说明
22.通过以下详细描述和附图,所公开的主题的进一步特征、性质和各种优点将更加明显,在附图中:
23.图1是根据实施例的简化示意图。
24.图2是根据实施例的简化示意图。
25.图3是关于根据实施例的解码器的简化框图。
26.图4是关于根据实施例的编码器的简化框图。
27.图5是关于根据实施例的编码器的简化框图。
28.图6是关于根据实施例的编码器的简化状态图。
29.图7是根据实施例的关于图片的简化框图。
30.图8是关于根据实施例的编码器的简化框图。
31.图9是根据实施例的简化流程图。
32.图10是根据实施例的示意图。
具体实施方式
33.下文所讨论的建议特征可以单独使用或以任何顺序组合使用。此外,这些实施例可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一个示例中,一个或多个处理器执行存储在非瞬时性计算机可读介质中的程序。
34.图1示出了根据本公开的实施例的通信系统100的简化框图。通信系统100可包括通过网络105互连的至少两个终端102和103。对于单向数据传输,第一终端103可以在本地对视频数据进行编码,以通过网络105传输到另一终端102。第二终端102可以从网络105接收另一终端的已编码的视频数据,对已编码的数据进行解码并显示所恢复的视频数据。单向数据传输在媒体服务等应用中是较常见的。
35.图1示出了设置成支持已编码视频的双向传输的第二对终端101和104,该双向传输可例如在视频会议期间发生。对于双向数据传输,每个终端101和104可以对在本地采集的视频数据进行编码,以通过网络105传输到另一终端。每个终端101和104还可以接收由另一终端发送的已编码的视频数据,可对已编码的数据进行解码并且可以在本地显示设备处显示所恢复的视频数据。
36.在图1中,终端101、102、103和104可被示为服务器、个人计算机和智能电话,但是本公开的原理不限于此。本公开的实施例可应用于膝上型计算机、平板计算机、媒体播放器和/或专用视频会议设备。网络105表示在终端101、102、103和104之间传送已编码的视频数据的任何数量的网络,包括例如有线和/或无线通信网络。通信网络105可在电路交换和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或因特网。出于本技术的目的,除非在下文中有所解释,否则网络105的架构和拓扑对于本公开的操作来说可能是无关紧要的。
37.图2示出了视频编码器和视频解码器在流式传输环境中的放置方式,作为公开主题的应用的示例。本技术所公开的主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字tv、在包括cd、dvd、存储棒等的数字介质上存储压缩视频等等。
38.流式传输系统可包括采集子系统203,该采集子系统203可包括数码相机等视频源201,该视频源创建未压缩的视频样本流213。相较于已编码的视频比特流,该样本流213被描绘为强调高数据量的视频样本流,并且可以由耦接到相机201的编码器202处理。编码器202可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开的主题的各方面。相较于样本流,已编码的视频比特流204被描绘为强调较低数据量的已编码的视频比特流,并被存储在流式传输服务器205上以供将来使用。一个或多个流式传输客户端212和207可访问流式传输服务器205以检索已编码的视频比特流204的副本208和206。客户端212可包括视频解码器211,该视频解码器对已编码的视频比特流的传入副本208进行解码,且产生可在显示器209或另一显示装置(未描绘)上呈现的输出视频样本流210。在一些流式传输系统中,可根据某些视频编码/压缩标准对视频比特流204、206和208进行编码。这些标准的实施例在上文中有所说明,并且在此进一步描述。
39.图3可以是根据本公开的实施例的视频解码器300的功能框图。
40.接收器302可接收将由解码器300解码的一个或多个已编码视频序列;在同一实施例或另一实施例中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列的解码。可从信道301接收已编码视频序列,该信道可以是通向存储已编码的视频数据的存储装置的硬件/软件链路。接收器302可接收已编码的视频数据以及其它数据,例如,可转发到它们各自的使用实体(未标示)的已编码音频数据和/或辅助数据流。接收器302可将已编码的视频序列与其它数据分开。为了防止网络抖动,缓冲存储器303可耦接在接收器302和熵解码器/解析器304(此后称为“解析器”)之间。当接收器302从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,可能不需要配置缓冲器303,或可以将该缓冲器做得较小。为了尽力在互联网等业务分组网络上使用,也可能需要缓冲器303,该缓冲器可相对较大且可有利地具有自适应性大小。
41.视频解码器300可包括解析器304以根据已熵编码的视频序列重建符号313。这些符号的类别包括用于管理解码器300的操作的信息,以及用于控制显示装置312(例如,显示
器)的潜在信息,该显示装置312不是解码器的组成部分,但可耦接到解码器。用于显示装置的控制信息可以是辅助增强信息(supplemental enhancement information,sei消息)或视频可用性信息(video usability information,vui)的参数集片段(未标示)。解析器304可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循本领域技术人员公知的各种原理,包括可变长度编码、霍夫曼编码(huffman coding)、具有或不具有上下文灵敏度的算术编码等。解析器304可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(group of pictures,gop)、图片、图块、切片、宏块、编码单元(coding unit,cu)、块、变换单元(transform unit,tu)、预测单元(prediction unit,pu)等。熵解码器/解析器还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等。
42.解析器304可对从缓冲器303接收的视频序列执行熵解码/解析操作,从而创建符号313。解析器304可以接收已编码的数据,并选择性地对特定符号313进行解码。此外,解析器304可确定是否将特定符号313提供给运动补偿预测单元306、缩放器/逆变换单元305、帧内预测单元307或环路滤波器311。
43.取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号313的重建可涉及多个不同的单元。涉及哪些单元以及涉及方式可由解析器304通过从已编码视频序列解析的子群控制信息来控制。为了简洁起见,未描述解析器304和下文的多个单元之间的此类子群控制信息流。
44.除了已经提及的功能块之外,解码器300可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多单元彼此紧密交互且可至少部分地彼此集成。然而,出于描述所公开的主题的目的,概念上细分成下文的功能单元是适当的。
45.第一单元可是缩放器/逆变换单元305。缩放器/逆变换单元305从解析器304接收作为符号313的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元可输出包括样本值的块,该样本值可输入到聚合器310中。
46.在一些情况下,缩放器/逆变换单元305的输出样本可以属于帧内编码块;即,不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内图片预测单元307提供。在一些情况下,帧内图片预测单元307采用从当前(部分重建的)图片309提取的已重建信息生成大小和形状与正在重建的块相同的周围块。在一些情况下,聚合器310基于每个样本,将帧内预测单元307生成的预测信息添加到由缩放器/逆变换单元305提供的输出样本信息中。
47.在其他情况下,缩放器/逆变换单元305的输出样本可属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元306可访问参考图片存储器308以提取用于预测的样本。在根据属于块的符号313对提取的样本进行运动补偿之后,这些样本可由聚合器310添加到缩放器/逆变换单元的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。运动补偿单元从参考图片存储器内的地址获取预测样本可受到运动矢量控制,且该运动矢量以该符号313的形式而供运动补偿单元使用,该符号313例如是包括x、y和
参考图片分量。运动补偿还可包括在使用子样本精确运动矢量时,从参考图片存储器提取的样本值的内插、运动矢量预测机制等等。
48.聚合器310的输出样本可在环路滤波器单元311中被各种环路滤波技术采用。视频压缩技术可包括环路内滤波器技术,该环路内滤波器技术受控于包括在已编码视频比特流中的参数,且该参数作为来自解析器304的符号313可用于环路滤波器单元311。然而,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。
49.环路滤波器单元311的输出可以是样本流,该样本流可输出到显示装置312以及存储在参考图片存储器557中,以用于后续的帧间图片预测。
50.一旦完全重建,某些已编码图片就可用作参考图片以用于将来预测。一旦已编码图片被完全重建,且已编码图片(通过例如解析器304)被识别为参考图片,则当前参考图片309可变为参考图片缓冲器308的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片存储器。
51.视频解码器300可根据例如itu-t h.265标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法(如在视频压缩技术文档或标准中指定的,特别是如在其配置文件文档中指定的)的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。对于合规性,还可要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(hypothetical reference decoder,hrd)规范和在已编码视频序列中用信号表示的hrd缓冲器管理的元数据来进一步限定。
52.在实施例中,接收器302可连同已编码视频一起接收附加(冗余)数据。该附加数据可以作为已编码视频序列的一部分。该附加数据可由视频解码器300使用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,snr)增强层、冗余切片、冗余图片、前向纠错码等形式。
53.图4是根据本公开的实施例的视频编码器400的功能框图。
54.编码器400可从视频源401(并不是编码器的一部分)接收视频样本,该视频源可采集将由编码器400编码的视频图像。
55.视频源401可提供将由编码器303编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可具有任何合适位深度(例如:8位、10位、12位
……
)、任何色彩空间(例如bt.601 y crcb、rgb
……
)和任何合适采样结构(例如y crcb 4:2:0、y crcb 4:4:4)。在媒体服务系统中,视频源401可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源401可包括采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的采样结构、色彩空间等,每个像素可包括一个或多个样本。本领域技术人员可容易理解像素与样本之间的关系。下文侧重于描述样本。
56.根据实施例,编码器400可实时或在由应用所要求的任何其它时间约束下,将源视频序列的图片编码且压缩成已编码视频序列410。施行适当的编码速度是控制器402的一个
功能。控制器控制如下文所描述的其它功能单元且在功能上耦接到这些单元。为了简洁起见,图中未标示耦接。由控制器设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(group of pictures,gop)布局、最大运动矢量搜索范围等。本领域技术人员可容易地识别控制器402的其它功能,这些功能可涉及针对某一系统设计优化的视频编码器400。
57.一些视频编码器在本领域技术人员容易识别成“编码环路”的环路中操作。作为简单的描述,编码环路可由包括编码器402(此后称为“源编码器”)(例如,负责基于待编码的输入图片和参考图片创建符号)的编码部分和嵌入于编码器400中的(本地)解码器406组成,本地解码器以(远程)解码器创建样本数据的方式重建符号以创建样本数据(因为在所公开的主题所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流输入到参考图片存储器405。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片缓冲器中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。本领域技术人员熟知这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)。
[0058]“本地”解码器406的操作可与例如已在上文结合图3详细描述的“远程”解码器300的操作相同。然而,另外简要参考图4,当符号可用且熵编码器408和解析器304能够无损地将符号编码/解码成已编码视频序列时,解码器300的熵解码部分(包括信道301、接收器302、缓冲器303和解析器304)可能无法完全在本地解码器406中实施。
[0059]
此时可观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。
[0060]
作为其操作的一部分,源编码器403可执行运动补偿预测编码,参考来自视频序列中被指定为“参考帧”的一个或多个先前已编码帧,该运动补偿预测编码对输入帧进行预测性编码。以此方式,编码引擎407对输入帧的像素块与参考帧的像素块之间的差异进行编码,该参考帧可被选作该输入帧的预测参考。
[0061]
本地视频解码器406可基于源编码器403创建的符号,对可指定为参考帧的帧的已编码视频数据进行解码。编码引擎407的操作可有利地为有损过程。当已编码视频数据可在视频解码器(图4中未示)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器406复制解码过程,该解码过程可由视频解码器对参考帧执行,且可使重建的参考帧存储在参考图片高速缓存405中。以此方式,编码器400可在本地存储重建的参考帧的副本,该副本与将由远端视频解码器获得的重建参考帧具有共同内容(不存在传输误差)。
[0062]
预测器404可针对编码引擎407执行预测搜索。即,对于将要编码的新帧,预测器404可在参考图片存储器405中搜索可作为该新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器404可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器404获得的搜索结果,可确定输入图片可具有从参考图片存储器405中存储的多个参考图片取得的预测参考。
[0063]
控制器402可管理视频编码器403的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
[0064]
可在熵编码器408中对所有上述功能单元的输出进行熵编码。熵编码器可通过根据本领域技术人员已知的例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将该符号变换成已编码视频序列。
[0065]
传输器409可缓冲由熵编码器408创建的已编码视频序列,从而为通过通信信道411进行传输做准备,该通信信道411可以是通向将存储已编码的视频数据的存储装置的硬件/软件链路。传输器409可将来自视频编码器403的已编码视频数据与要传输的其它数据合并,该其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。
[0066]
控制器402可管理编码器400的操作。在编码期间,控制器405可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种图片类型:
[0067]
帧内图片(i图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(independent decoder refresh,“idr”)图片。本领域技术人员了解i图片的变体及其相应的应用和特征。
[0068]
预测性图片(p图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
[0069]
双向预测性图片(b图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。
[0070]
源图片通常可在空间上细分成多个样本块(例如,4
×
4、8
×
8、4
×
8或16
×
16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图片的编码分配来确定该其它块。举例来说,i图片的块可进行非预测编码,或该块可参考同一图片的已经编码的块来进行预测编码(空间预测或帧内预测)。p图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。b图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。
[0071]
视频编码器400可根据例如itu-t h.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器400可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。
[0072]
在实施例中,传输器409可在传输已编码的视频时传输附加数据。源编码器403可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/snr增强层、诸如冗余图片和切片等其它形式的冗余数据、补充增强信息(sei)消息、视觉可用性信息(vui)参数集片段等。
[0073]
图5示出了根据本文实施例的基于网络的媒体处理mpeg架构500,并且可以相对于云处理来实现,使得可确定和利用在不同网络实体、mpe、源端或接收端之间所划分的工作流的质量,从而利用如下文所述的公共云服务、私有云服务或混合云服务。nbmp架构500包括:nbmp源501,其向nbmp工作流管理器513提供nbmp工作流api和工作流描述511。nbmp工作
流管理器513与功能存储库503之间可以进行功能发现api和功能描述512的通信,并且功能存储库503与nbmp源501也可以进行功能发现api和功能描述502的通信。
[0074]
此外,在图5中,nbmp工作流管理器与媒体处理实体(media processing entity,mpe)505之间可以进行例如nbmp任务api和报告当前任务状态和配置的任务的通信,媒体处理实体mpe可作为运行时配置/流/事件绑定实体进行操作。例如,媒体源504可向mpe 505的一个或多个任务521和522提供一个或多个媒体流514,这些任务也可以分别对多个媒体流514进行并行化。mpe505可将一个或多个媒体流515传送到媒体接收端506。
[0075]
此外,在图5中,nbmp源501、nbmp工作流管理器513、功能存储库503和mpe 505之间的通信可被认为是控制流,而媒体源504、mpe 505和媒体接收端506之间的通信可被认为是数据流。
[0076]
根据示例性实施例,通过输入描述符和输出描述符来描述工作流描述511的输入和输出,并且根据示例性实施例,可在处理描述符的连接映射阵列(connection-map array)中定义的工作流的功能实例之间的互连,使得在下文的表1至表3中示出对应的对象:表1-输入描述符表2-输出描述符表3-连接映射阵列元素
[0077]
根据示例性实施例,来自的对象和到的对象在表4中定义:表4
‑“
来自”对象和“到”对象
[0078]
图6示出了根据示例性实施例的任务生命周期状态图600。例如,可将oninstantiation信号611接收到实例化状态601。实例化状态601可通过ontaskconfiguration信号612转换到空闲状态602,并且空闲状态602可通过onreset信号617转换回到实例化状态601。空闲状态602还可通过ontaskconfiguration信号613进行循环,并且还可通过onstart信号614转换到运行状态603。该运行状态603可通过ontaskconfiguration信号615进行循环,并且可通过onstop信号和/或oncompletion信号616转换到空闲状态602。运行状态603还可通过onerror信号623转换到错误状态604,并且错误状态604可分别通过onerrorhandling信号624、onreset信号625和ontermination信号626转换到空闲状态602、实例化状态601和破坏状态605。此外,运行状态603、空闲状态602和实例化状态601可分别通过ontermination信号621、ontermination信号622和ontermination信号611转换到破坏状态605。
[0079]
根据示例性实施例,还可添加onstop和oncompletion信号。例如,当媒体数据或元数据停止到达mpe 505时,onstop信号可指示例如任务521和/或任务522应将其状态从运行状态603转换到空闲状态602。此外例如,当处理过程完成时,例如在mpe 505处,oncompletion信号可指示任务521和/或任务522将其状态从运行状态603转换到空闲状态
602。根据示例性实施例,这些特征不仅针对mpe 505呈现,而且至少那些状态(从运行状态603到/来自空闲状态602)的转换也可针对工作流管理器513提供。
[0080]
根据示例性实施例,可使用超时参数(例如通过示例性地向输入描述符添加超时)来提供和增强nbmp输入描述符和参数,如下表5至表7所描述的:表5-输入媒体参数对象名称类型基数流idp1名称p1关键词p1mime类型p1视频格式p0-1音频格式p0-1图像格式p0-1编解码器类型p0-1协议p1吞吐量p0-1缓冲区尺寸p0-1缓存服务器urlp1表6-输入元数据参数对象名称类型基数流idp1名称p1关键词p1mime类型p1编解码器类型p0-1协议p1最大尺寸p0-1最小间隔p0-1缓存服务器urlp0-1方案-urip0-1超时p0-1
[0081]
根据实施例,可以定义超时参数,如表7所示:表7-输入超时参数
[0082]
图7示出了示例性实施例,其示出了具有输入i1和多个输出o1、o2、o3和o4的工作
流描述符700,但是根据实施例可以改变此种数量的输入和输出。类似地,图8示出了任务框图800的示例性实施例,任务框图具有任务t0,其中输入i1被拆分成多个任务t1、t2、t3以及另一个t3,所拆分的多个任务具有各自的输出t1、t2、t3和t4,但是根据实施例可以改变此种数量的输入和输出。然而,查看工作流描述符700和任务框图800,存在关于缺乏对(o1、o2、o3、o4)和(t1、t2、t3、t4)之间的关联的描述的技术问题。因此,实施例可以参考并依赖于下面表8和表9中所提供的信息:表8-连接映射阵列元素
[0083]
根据实施例,来自的对象和到的对象在表9中定义,并且可替换先前在表3中所提供的定义。表9
‑“
来自”的对象和“到”的对象
[0084]
图9示出根据示例性实施例的简化流程图900。在s901中,接收输入信息和输出信息。
[0085]
在s902中,获取实例。例如,可以获取任务和工作流中的任何一个或多个的一个或多个输入和/或输出。
[0086]
在s903中,建立映射。可以定义关于图7和图8所描述的示例中的功能实例之间的连接;然而,作为一个技术问题,可能不清楚工作流的哪个输入与特定功能实例的输入相关联,以及工作流的哪个输出与特定功能实例的输出相关联。这可能是由于连接映射可能仅
定义了功能之间的连接,而非功能实例与工作流的输入/输出之间的连接。如果工作流的输入/输出在所有第一功能或最后功能之间是不同的,则工作流管理器513可以基于所有输入/所有输出之间的每个输入/每个输出的唯一性而找到关联,但是,如果工作流包括具有相同描述的多个输入/多个输出(其仅在其流id上有所不同),则对于工作流的输入/输出而言,识别正确的功能输入/功能输出就存在歧义。换言之,将工作流输入和工作流输出分配给特定的功能输入和功能输出时将存在歧义。此种情况的一个示例在图7和8中示出,并且本发明所提供的技术方案还解决了此种情况。
[0087]
例如,在s903中,实施例在连接映射中包括工作流的输入/工作流的输出,即,连接映射应包括工作流的所有输入和所有输出。例如,端口名可用作功能id并且流id可用作实例。此外,例如,还可将以下文本等包括在表8中:连接-映射对象的阵列描述了媒体工作流dag,即,图中不同任务之间的连接信息。该阵列中的每个元素表示dag中的边缘,且每个元素在表8中被定义,并且可以替换表3中的定义。
[0088]
此外,根据示例性实施例,表8还应包括通用描述符(general descriptor)的所有输入端口和输出端口,其形式分别为“来自”的对象和“到”的对象(例如,每个输入端口中的一个“来自”的对象和每个输出端口的一个“到”的对象),并且例如,每个相应的工作流的输入/输出的“id”和“端口名”应设置为通用描述符的相应输入端口/输出端口所对应的“端口名”和“流id”。应注意,对于这种连接,可以忽略流控制参数、共定位标志和其他参数,并且在这种示例性实施方式中不包括这些参数。
[0089]
如此,在s903中,确定是否将任务和工作流中的至少一个的输入与功能输入和功能输出中的至少一个相关联,响应于确定任务和工作流中的至少一个的输入与功能输入和功能输出中的至少一个相关联,将任务和工作流中的至少一个的输入与功能输入和功能输出中的至少一个相关联。这还可以获取多个输入(包括任务和工作流中的至少一个的输入),使得确定任务和工作流中的至少一个的输入中的每个输入是否分别与一个或多个功能输入和功能输出中的至少一个相关联;以及基于确定任务和工作流中的至少一个的输入中的每个输入是否分别与一个或多个功能输入和功能输出中的至少一个相关联,分别将任务和工作流中的至少一个的多个输入与一个或多个功能输入和功能输出中的至少一个相关联。例如,根据示例性实施例,在该确定过程中,确定任务和工作流中的至少一个的输入中的每个输入是否分别与一个或多个功能输入和功能输出中的至少一个相关联包括:确定任务和工作流中的至少一个的输入中的每个输入的标识和端口名中的至少一个,以及确定相应的输入端口和相应的输出端口中的至少一个的相应的端口名和流标识中的至少一个。
[0090]
在s904中,进行设置,例如为任务和工作流中的至少一个的任何输入设置超时。在s904和s903中的特征可以并行地或顺序地实现,并且因此,本文公开了一种用于将工作流的每个输入和每个输出关联到每个相关联的单个的功能输入和功能输出的方法,其中,工作流的每个输入或每个输出使用连接映射图连接到工作流的功能实例/任务的输入或输出中的一个,其中,可以明确地识别出每个输入和每个输出,这体现了针对上述技术问题的技术解决方案。
[0091]
在s905中,运行诸如一个或多个任务的操作。然而,作为额外的技术问题,任务或工作流可能无法确定其输入中的数据是否完整。因此,在诸如“onstop,当媒体数据或元数
据停止到达时,任务应当将其状态从运行状态转换到空闲状态”的nbmp规范中的语句在技术上可能不充分,因为任务或工作流可能缺乏用于确定数据是否停止的任何规则。
[0092]
因此,根据示例性实施例,对于诸如在输入停止到达时任务或工作流实现的问题存在技术解决方案,为每个输入定义两个附加参数:“超时(timeout):时间间隔,该时间间隔表示如果在输入中未接收到数据则认为输入数据完整”和“完整(complete):输入标志,该输入标志如果被设置为“真”,则意味着在该输入中没有进一步的数据到达,输入数据可以被认为是完整的”,因此,在s904中,超时参数可以由nbmp源设置用于工作流的输入,或者由工作流管理器设置用于任务的输入。然后,工作流或任务可以观察输入,并且一旦在timeout的持续时间内没有数据到达,则可以得出数据已经停止的结论。
[0093]
在s906中,考虑是否已经接收到一个或多个标志,如果没有,则处理过程可以继续检查这样的一个或多个标志。因此,在s906处,可以考虑在完整输入时是否存在用于输入的标志,当媒体源或连接任务没有任何数据时,将该标志设置为“真”,以使得工作流或任务知道它将不会接收该输入的任何附加数据。因此,在上面的表6中,通过使用超时参数来增强所添加的nbmp输入描述符和参数的技术优势。因此,可以存在针对输入的完整标志,使得对于每个媒体或元数据输入,每个功能可以定义输入参数,并且参数“完整标志”可以定义为如果设置为“真”,则输入是完整的,即在该输入处没有接收到附加数据。在s907中,考虑是否存在空闲状态,如果不存在空闲状态,则处理过程可继续检查这种状态。在s908中,考虑是否改变状态,如果不改变,则处理过程可以继续是否改变这种状态。在s909中,考虑是否结束处理过程,如果不结束,则处理过程可以继续运行。在s910中,结束该处理过程,然后前进到s901以等待多个输入和多个输出中的任一的进一步接收。因此,在处理过程中,确定任务和工作流中的至少一个是否在等于超时的持续时间内观察到输入的数据有缺失,响应于确定任务和工作流中的至少一个在等于超时的持续时间内观察到输入的数据有缺失,确定输入的其他数据不可用;确定任务和工作流中的至少一个的状态是否设置为运行状态,以及在确定所述状态被设置为运行状态的情况下,基于所述任务和所述工作流中的所述至少一个在等于所述超时的持续时间内是否观察到所述输入的数据有缺失来确定是否将所述状态从所述运行状态改变为空闲状态。还可以确定输入是否包括指示,并且响应于确定输入包括指示而确定输入的其他数据不可用。这种指示可以包括与任务和工作流的至少一个的输入一起包括的完整输入标志,或者可以被提供为与任务和工作流的至少一个的输入一起提供的元数据。
[0094]
另外,例如图6的状态之间的状态变化可以基于在s906和s907中的任一处确定的超时参数和完整标志来进一步增强,例如在s908处关于考虑是否存在以下一项:当所有媒体数据或元数据停止到达时(通过观察在所有输入中的超时值或设置为“真”的完整标志或这两者的任何组合,并完成对所接收的输入的处理过程),“onstop”指示将状态从运行状态转变为空闲状态等;以及当处理过程完成时(通过在所有输入中观察超时值或设置为“真”的完整标志或这两者的任何组合,并完成对所接收的输入的处理过程),“oncompletion”指示将状态从运行状态转变为空闲状态等。根据示例性实施例,此处的这种表述可应用于包括任务和工作流的任一个。如此,关于在s901处获取包括任务和工作流中的至少一个的输入的多个输入,还可响应于s906和s907中的任一个或者在s908中确定是否将任务和工作流中的至少一个的状态设置为运行状态,诸如关于附加地确定任务和工作流中的至少一个的
所有输入是否观察到数据有缺失(诸如在s907处的持续时间等于超时的所有输入);并且在s908处确定状态被设置为运行状态的情况下,基于任务和工作流中的至少一个是否在基于s906和s907中的任何一个的结果在等于所有输入的超时的持续时间内观察到输入的数据有缺失,来确定是否将状态从运行状态改变为空闲状态。例如,通过确定任务和工作流的至少一个的输入中的至少一个是否指示s907处的超时指示和/或在s906处的完整指示中的任一个,可以确定任务和工作流的至少一个的所有输入是否在等于超时的持续时间内观察到所有输入的数据有缺失。
[0095]
因此,这些特征具有技术优势,其提供了以下方法:一种为任务或工作流的每个输入设置超时的方法,使得如果任务或工作流在等于超时的持续时间内没有观察到其对应输入中的任何数据,则任务或工作流可以推断出无更多的数据可用于该输入;一种针对媒体输入、元数据输入或任何其它输入使用完整输入标志来信令通知没有附加输入数据可用的方法,使得数据发送实体可以通知任务或工作流将不会有数据被发送到该输入,并且因此推断出任务或工作流将不再有数据将到达;以及一种基于观察所有输入的超时和所有输入的所有完整标志将任务或工作流的状态从运行状态改变为空闲状态的方法,并且如果所有任务或工作流的输入处于超时或完整状态,然后,任务或工作流应当将其状态从运行状态改变为空闲状态,这在考虑到这样的技术问题(例如至少对于nbmp实现)时本来是不可用的,这些技术问题如本文中的实施例所描述的那样被有利地解决。
[0096]
因此,基于上文中所述的s906至s909的任何更新操作,在s905处,基于确定输入的其他数据为不可用,则可对nbmp中的任务和工作流中的至少一个应用更新,以使得nbmp中的任务和工作流中的至少一个的处理过程基于更新来实施。
[0097]
以上所描述的技术可以被实现为使用计算机可读指令的计算机软件,并且可以物理地存储在一个或多个计算机可读介质中或通过特定配置的一个或多个硬件处理器来实现。例如,图10示出了适合于实现所公开的主题的某些实施例的计算机系统1000。
[0098]
可使用任何合适的机器代码或计算机语言对计算机软件进行编码,任何合适的机器代码或计算机语言可经受汇编、编译、链接或类似的机制以创建包括指令的代码,该指令可由计算机中央处理单元(central processing unit,cpu)、图形处理单元(graphic processing unit,gpu)等直接执行或通过解译、微代码执行等执行。
[0099]
指令可在各种类型的计算机或其组件上执行,例如计算机或其组件包括个人计算机、平板计算机、服务器、智能手机、游戏设备、物联网设备等。
[0100]
图10所示的计算机系统1000的组件本质上是示例性的,并不旨在对实施本公开的实施例的计算机软件的使用范围或功能提出任何限制。组件的配置也不应被解释为具有与计算机系统1000的示例性实施例中所示的组件中的任何一个组件或组件的组合相关的任何依赖或要求。
[0101]
计算机系统1000可以包括某些人机接口输入设备。此类人机接口输入设备可响应于一个或多个人类用户通过例如下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如,语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未描绘)。人机接口设备还可用于获取不一定与人的意识输入直接相关的某些媒介,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静止图像相机获取摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
[0102]
输入人机接口设备可包括下述中的一项或多项(每种中仅示出一个):键盘1001、鼠标1002、触控板1003、触摸屏1010、操纵杆1005、麦克风1006、扫描仪1008、相机1007。
[0103]
计算机系统1000还可包括某些人机接口输出设备。此类人机接口输出设备可例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出设备可包括触觉输出设备(例如触摸屏1010或操纵杆1005的触觉反馈,但也可以是不作为输入设备的触觉反馈设备)、音频输出设备(例如,扬声器1009、耳机(未描绘))、视觉输出设备(例如包括crt屏幕、lcd屏幕、等离子屏幕、oled屏幕的屏幕1010,每种屏幕都有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能-其中的一些屏幕能够通过诸如立体图像输出之类的装置、虚拟现实眼镜(未描绘)、全息显示器和烟箱(未描绘)以及打印机(未描绘)来输出二维视觉输出或超过三维的输出。
[0104]
计算机系统1000还可包括人类可访问存储设备及其关联介质,例如,包括具有cd/dvd等介质1011的cd/dvd/rw 1020的光学介质、拇指驱动器1022、可拆卸硬盘驱动器或固态驱动器1023、诸如磁带和软盘之类的传统磁性介质(未描绘)、诸如安全加密狗之类的基于专用rom/asic/pld的设备(未描绘)等。
[0105]
本领域技术人员还应该理解,结合当前公开的主题使用的术语“计算机可读介质”不涵盖传输介质、载波或其它暂时性信号。
[0106]
计算机系统1000还可包括通到一个或多个通信网络1098的接口1099。网络1098例如可以是无线网络、有线网络、光网络。网络1098可进一步是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、延迟容忍网络等。网络1098的示例包括诸如以太网之类的局域网、无线lan、包括gsm、3g、4g、5g、lte等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括canbus的车辆和工业用网络等。某些网络1098通常需要连接到某些通用数据端口或外围总线(1050和1051)的外部网络接口适配器(例如,计算机系统1000的usb端口);如下所述,其它网络接口通常通过连接到系统总线而集成到计算机系统1000的内核中(例如,连接到pc计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统1000可使用这些网络1098中的任何一个网络与其他实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些canbus设备的canbus)或双向的,例如,使用局域网或广域网数字网络连接到其它计算机系统。如上文所述,可在那些网络和网络接口中的每一个上使用某些协议和协议栈。
[0107]
前述的人机接口设备、人机可访问的存储设备和网络接口可附接到计算机系统1000的内核1040。
[0108]
内核1040可以包括一个或多个中央处理单元(cpu)1041、图形处理单元(gpu)1042、图形适配器1017、现场可编程门区域(fpga)1043形式的专用可编程处理单元、用于某些任务的硬件加速器1044等。这些设备以及只读存储器(rom)1045、随机存取存储器1046、诸如内部非用户可访问硬盘驱动器、ssd等之类的内部大容量存储器1047可=通过系统总线1048连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线1048,以能够通过附加cpu、gpu等进行扩展。外围设备可直接连接到内核的系统总线1048,或通过外围总线1051连接连接到内核的系统总线1048。外围总线的体系结构包括pci、usb等。
[0109]
cpu 1041、gpu 1042、fpga 1043和加速器1044可执行某些指令,这些指令可组合
来构成上述计算机代码。该计算机代码可存储在只读存储器(rom)1045或随机存取存储器(ram)1046中。过渡数据也可存储在随机存取存储器(ram)1046中,而永久数据可例如存储在内部大容量存储器1047中。可通过使用高速缓存来进行到任何存储设备的快速存储及检索,该高速缓存可与下述紧密关联:一个或多个cpu 1041、gpu 1042、大容量存储器1047、rom 1045、ram 1046等。
[0110]
计算机可读介质可在其上具有用于执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。
[0111]
作为非限制性示例,可由于一个或多个处理器处理器(包括cpu、gpu、fpga、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有体系结构1000的计算机系统,尤其是内核1040的计算机系统提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储相关联的介质,以及某些非暂时性的内核1040的存储器,例如内核内部大容量存储器1047或rom 1045。可将实施本公开的各实施例的软件存储在此类设备中并由内核1040执行。根据特定需要,计算机可读介质可包括一个或多个存储设备或芯片。软件可使得核心1040,尤其是其中的处理器(包括cpu、gpu、fpga等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在随机存取存储器ram 1046中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可由硬连线或以其它方式体现在电路(例如,加速器1044)中的逻辑而使得计算机系统1000提供功能,该电路可替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可包括存储用于执行的软件的电路(例如集成电路(ic))、体现用于执行的逻辑的电路或者包括两者。本公开包括硬件和软件的任何适当的组合。
[0112]
虽然本公开已经描述了多个示例性实施例,但是存在落入本公开范围内的更改、置换和各种替换等效物。因此,应当理解,本领域技术人员将能够设计出许多虽然未在本文中明确示出或描述,但是体现了本公开的原理,因此落入本公开的精神和范围内的系统和方法。
再多了解一些

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

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

相关文献