对编码视频数据进行分区的方法、计算机系统及存储介质与流程

文档序号:23426952发布日期:2020-12-25 11:57阅读:181来源:国知局
对编码视频数据进行分区的方法、计算机系统及存储介质与流程

交叉引用

本申请要求2019年6月24日在美国专利和商标局提交的第62/865,945号美国临时申请以及2020年6月22日在美国专利和商标局提交的美国专利申请第16/908,036号的优先权,其全部内容通过引用结合在本申请中。

本公开总体上涉及数据处理领域,并且尤其涉及视频编码和解码。



背景技术:

图片可以被分割成至少一个片(tile)。片是与图片的矩形子区域对应的编码树单元(ctu:codingtreeunit)序列。片可以被划分为至少一个块(brick)。条带(slice)包含图片的多个片或片的多个块。支持条带的两种模式:光栅扫描条带模式和矩形条带模式。在光栅扫描条带模式中,条带包含图片的片光栅扫描中的片序列。在矩形条带模式中,条带包含图片的多个块,所述多个块共同地构成矩形区域。



技术实现要素:

在对编码视频数据进行分区的过程中,如何在节省比特位的情况下,对视频帧进行分区,以实现快速高效地对分区图像进行快速高效的解码,是本技术领域中需要去考虑的问题。

本申请实施例涉及对编码视频数据进行分区的方法、计算机系统及存储介质。

本申请实施例提供了一种用于对编码视频数据进行分区的方法。所述方法包括接收视频帧数据。将视频帧数据分割成至少一个子单元。其中,每个子单元各自具有唯一的地址值,根据所述唯一的地址值,所述至少一个子单元以递增的顺序排列;以及与每个所述子单元相关联的左边界和顶部边界包括图片边界和先前解码的子单元的边界中的至少一个。

本申请实施例还提供了一种对编码视频数据进行分区的计算机系统。所述计算机系统包括接收模块,用于接收视频帧数据;和分割模块,用于将所述视频帧数据分割成至少一个子单元;其中,每个所述子单元具有唯一的地址值,根据所述唯一的地址值,所述至少一个子单元以递增的顺序排列,以及与每个所述子单元相关联的左边界和顶部边界包括图片边界和先前解码的子单元的边界中的至少一个。

本申请实施例还提供一种非易失性计算机可读介质,存储有指令,所述指令包括:至少一个指令,当由计算机的至少一个处理器执行所述至少一个指令时,可以使所述至少一个处理器执行本申请实施例所述的方法。

本申请实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请实施例所述方法。

通过本申请实施例的技术方案,在对编码视频数据进行分区的过程中,视频帧数据分割成的至少一个子单元,根据其唯一的地址值,以递增的顺序排列,这样解码器可以根据增加的地址或标识值来对子单元进行连续解码,不仅可以提高解码器的解码效率,还可以节省比特位。

附图说明

通过以下结合附图的说明性实施例的详细描述,这些和其他目的,特征和优点将变得显而易见。附图的各种特征不是按比例绘制的,因为所述图示是为了清楚起见,便于本领域技术人员结合具体实施方式的理解。在附图中:

图1示出了根据至少一个实施例的联网计算机环境;

图2是根据至少一个实施例的示例性分区图像;

图3a至图3c是根据至少一个实施例的示例性分区参数;

图4是示出根据至少一个实施例的由对已编码视频进行分区的程序所执行的步骤的操作流程图;

图5是根据至少一个实施例的图1中描绘的计算机和服务器的内部组件和外部组件的框图;

图6是根据至少一个实施例的包括图1中描绘的计算机系统的云计算环境的框图;和

图7是根据至少一个实施例的图6的云计算环境的功能层的框图。

具体实施方式

本文公开了所要求保护的结构和方法的具体实施方式;然而,可以理解,所公开的实施例仅是可以以各种形式实施的要求保护的结构和方法的说明。然而,这些结构和方法可以以许多不同的形式来实施,并不应被解释为限于本文阐述的示例性实施例。相反,提供这些示例性实施例以使本公开将是透彻和完整的,并且将向本领域技术人员充分传达要求保护的范围。在实施例中,可以省略众所周知的特征和技术的细节,以避免使所呈现的实施例晦涩。

实施例总体上涉及数据处理领域,并且尤其涉及视频编码和解码。以下描述的示例性实施例提供一种用于对编码视频数据进行分区的系统、方法和计算机程序。因此,一些实施例在将单片图像和视频帧作为独立的单独图像的基础上,通过对分区的视频帧和图像数据进行迭代编码和解码,具有了提高计算领域的能力。

如前所描述的,可以将图片划分成至少一个片。所述片是与图片的矩形子区域对应的编码树单元(ctu)序列。片可以被划分为至少一个块。条带包含图片的多个片或片的多个块。支持条带的两种模式:光栅扫描条带模式和矩形条带模式。在光栅扫描条带模式中,条带包含图片的片光栅扫描中的片序列。在矩形条带模式中,条带包含图片的多个块,所述多个块共同地构成矩形区域。

然而,在最新的vvcwd(jvet-n1001-v8)中,在图片参数集(pps:pictureparameterset)中用信号通知的语法元素single_tile_in_pic_flag指示在图片中是否仅存在一个片或在每个图片中是否存在一个以上片。如果single_tile_in_pic_flag的值等于0,则不允许将片分割成块,因为语法元素brick_splitting_present_flag和brick_split_flag[i]不存在。如果不存在bricksplit_flag[i],则每个brick_split_flag[i]的值都被推断为等于0,并且没有关于pps的图片的片被划分为两个或两个以上个块。因此,为了使图片中的片具有多个块,除其他事项外,添加额外的语法元素(例如single_brick_in_pic_flag)可能是有用的,所述语法元素可以指示在每个图片中是否可以仅存在一个块或在每个图片中是否存在一个以上的块。例如,图片中一个片具有多个块可以使所述片被认为是从具有多个片的图片中提取的子图片,所述片具有多个块。这可以比常规方法节省比特位。

本文参考根据各种实施例的方法、装置(系统)和计算机可读介质的流程图和/或框图来描述各方面。应理解,流程图和/或框图的每个框以及流程图和/或框图中各框的组合,都可由计算机可读程序指令来实现。

参考图1,图1是联网计算机环境的功能框图,示出了用于对已编码视频数据进行分区的视频帧分区系统100(以下称为“系统”)。应理解,图1仅提供一种实现方式的图示,并不暗示关于可以实现不同实施例的环境的任何限制。可以基于设计和实现要求对所描绘的环境进行许多修改。

系统100可以包括计算机102和服务器计算机114。计算机102可以通过通信网络110(以下称为“网络”)与服务器计算机114通信。计算机102可以包括处理器104和软件程序108,软件程序108存储在数据存储设备106上,并且能够与用户对接,以及与服务器计算机114通信。如将在下面参考图5讨论的计算机102可以相应地包括内部组件800a和外部组件900a,并且服务器计算机114可以相应地包括内部组件800b和外部组件900b。计算机102可以是例如移动设备、电话、个人数字助理、上网本、膝上型计算机、平板计算机、台式计算机、或能够运行程序、访问网络和访问数据库的任何类型的计算设备。

服务器计算机114还可以在云计算服务模型中操作,诸如软件即服务(saas:softwareasaservice)、平台即服务(paas:platformasaservice)或基础设施即服务(laas:infrastructureasaservice),如下面关于图6和图7所讨论的。服务器计算机114还可以位于云计算部署模型中,诸如私有云、社区云、公共云或混合云。

启动用于对已编码视频数据进行分区的服务器计算机114来运行视频分区程序(videopartitioningprogram)116(下文中称为“程序”)可以与数据库112交互的。下面结合图4将更详细地解释视频分区程序方法。在一个实施例中,计算机102可以作为包括用户接口的输入设备来操作,而程序116可以主要在服务器计算机(servercomputer)114上运行。在替代实施例中,程序116可以主要在至少一个计算机102上运行,而服务器计算机114可以用于处理和存储由程序116使用的数据。应注意,程序116可以是独立的程序,或者页可以集成到更大的视频分区程序中。

然而,应注意,在一些情况下,可以以任何比率在计算机102和服务器计算机114之间共享程序116的处理。在另一个实施例中,程序116可在一个以上计算机、服务器计算机,或计算机和服务器计算机的某种组合(例如,跨网络110与单个服务器计算机114通信的多个计算机102)上操作。例如,在另一个实施例中,程序116可在多个服务器计算机114上操作,所述多个服务器计算机114跨网络110与多个客户端计算机进行通信。在一些实施例中,所述程序可在网络服务器上操作,所述网络服务器跨网络与服务器和多个客户端计算机进行通信。

网络110可以包括有线连接、无线连接、光纤连接或他们的某种组合。通常,网络110可以是支持计算机102和服务器计算机114之间的通信的连接和协议的任何组合。网络110可以包括各种类型的网络,例如局域网(lan)、诸如因特网的广域网(wan)、诸如公共交换电话网络(pstn:publicswitchedtelephonenetwork)的电信网络、无线网络、公共交换网络、卫星网络、蜂窝网络(例如,第五代(5g)网络、长期演进(lte:long-termevolution)网络、第三代(3g)网络、码分多址(cdma:codedivisionmultipleaccess)网络等)、公共陆地移动网络(plmn:publiclandmobilenetwork)、城域网(man:metropolitanareanetwork)、专用网络、自组织网络、内联网、基于光纤的网络等,和/或这些或其他类型网络的组合。

图1所示的设备和网络的数量和排列被作为示例来提供。实际上,与图1所示的设备和/或网络相比,可以有更多的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或排列不同的设备和/或网络。此外,图1所示的两个或更多个设备可以在单个设备内实现,或者图1所示的单个设备可以实现为多个分布式设备。另外或可替代地,100的一组设备(例如,至少一个设备)可以执行被描述为由环境100的另一组设备执行的至少一个功能。

现在参考图2,描绘了示例性分区图像200。分区图像200可以被划分为至少一个片204。片204还可以再被分割成至少一个块206。可以将片204和块206一起分组为至少一个条带202。可以理解的是,在片内没有进一步的块分割的情况下,整个片可以被称为块。当图片仅包含单个片而没有进一步的块分割时,单片的图片可以称为单个块。分区图像200和每个条带202、片204和块206可以具有顶部边界、左边界、底部边界和右边界。

参考图3a、图3b和图3c,根据至少一个实施例描绘了示例性分区参数300a、300b和300c。分区参数300a、300b和300c除其他事项外可以包括语法元素,所述语法元素可以相应地包括:

single_brick_in_pic_flag等于1可以指示每个图片中仅存在一个块涉及图片参数集(pps),single_brick_in_pic_flag等于0的可以指示每个图片中可以存在多个块涉及pps。比特流一致性的要求是,对于在编码视频序列(cvs:codedvideosequence)内激活的所有pps,single_brick_in_pic_flag的值是相同的。

single_tile_in_pic_flag等于1可以指示在每个图片中仅存在一个片涉及到pps,而single_tile_in_pic_flag等于0可以指示在每个图片中可以存在一个以上的片涉及pps。当single_tile_in_pic_flag的值不存在时,可以推断single_tile_in_pic_flag的值等于1。比特流一致性的要求是,对于在cvs内激活的所有pps,single_tile_in_pic_flag的值是相同的。

slice_address可以指示条带的条带地址。当slice_address语法元素不存在时,可以推断slice_address的值等于0。条带地址可以是块id。slice_address的长度是ceil(log2(numbricksinpic))比特。slice_address的值可在0到numbricksinpic-1(包括两端)的范围内。

sh_slice_id可以指示条带的条带id。当sh_slice_id不存在时,可以推断sh_slice_id的值等于0。slice_id的长度可以是signalled_slice_id_length_minus1+1比特。如果signalled_slice_id_flag等于0,则sh_slice_id的值可在0到num_slices_in_pic_minus1(包括两端)的范围内。否则,sh_slice_id的值可在0到2(signalled_slice_id_length_minus1+1)-1(包括两端)的范围内。

当uniform_tile_spacing_flag可以等于0时,brick_row_height_minus1[i][j]plus1可以以ctb为单位指示第i个片中第j个块的高度。当brick_row_height_minus1不存在时,可以推断brick_row_height_minus1[i][j]的值等于rowheight[i]-1。

bottom_right_brick_idx_delta[i]可以指示位于第i个条带的右下角的块的砖块索引与top_left_brick_idx[i]的之间的差。当single_brick_per_slice_flag等于1时,可以推断bottom_right_brick_idx_delta[i]的值等于0。bottom_right_brick_idx_delta[i]语法元素的长度可以是ceil(log2(numbricksinpic-top_left_brick_idx[i]))比特。当bottom_right_brick_idx_delta不存在时,可以推断bottom_right_brick_idx_delta[i]的值等于numbricksinpic-top_left_brick_idx[i]-1。

比特流一致性的要求是可以应用至少一个约束。例如,slice_address的值不等于同一编码图片的任何其他编码条带nal单元的slice_address的值。图片的条带可按其slice_address值的递增的顺序排列。图片的条带的形状可以使每个砖块在解码时,其整个左边界和整个顶部边界都由图片边界组成或由先前解码的(至少一个)块的边界组成。

参考图4,描绘了对编码视频数据进行分区的程序所执行的步骤的操作流程图400。可以借助于图1、图2和图3a至图3c来描述图4。如前所描述的,视频分区程序116(图1)可以快速地且有效地对编码视频数据进行分区。

在402处,接收视频帧数据。所述视频帧数据可以是静止图像或者是视频数据,从所述视频数据中可以提取至少一个帧。在操作中,服务器计算机114(图1)上的视频分区程序116(图1)可以在通信网络110(图1)上从计算机102(图1)接收分区图像200(图2),或者可以从数据库112(图1)检索分区图像200。

在404处,将视频帧数据分割成至少一个子单元。

在一些实施例中,每个所述子单元各自具有唯一的地址值,根据所述唯一的地址值所述至少一个子单元以递增的顺序排列。与每个所述子单元相关联的左边界和顶部边界包括图片边界或先前解码的子单元的边界中的至少一个。在一些实施例中,所述子单元包括条带、片和块中的一种或多种,视频帧数据可以被划分为条带、片和块。在操作中,服务器计算机114(图1)上的视频分区程序116(图1)可以根据分区图像200中的特征以及帧间和帧内预测来划分分区图像200(图2)的条带202(图2)、片204(图2)和块206(图2)的数量。

在一些实施例中,与所述条带相关联的模式包括光栅扫描条带模式或矩形条带模式中的一种;可以按照所述光栅扫描条带模式对应的顺序,对所述条带进行解码;或者按照所述矩形条带模式对应的顺序,对所述条带进行解码。

在一些实施例中,在所述矩形条带模式中启用所述光栅扫描条带模式。

在406处,设置标志,所述标志用于指示所述视频帧数据的子单元的数量。

在一些实施例中,所述标志可以是,例如,single_tile_in_pic_flagorsingle_brick_in_pic_flag。

在一些实施例中,根据设置的标志指示的子单元的数量,如果确定条带包含一个片和多于一个块,则将所述条带作为独立图像来解码。通过标志指示存在的子单元的数量,可以确定,例如,条带可以包含一个片和多于一个的块,并且可以将所述条带作为独立的图像来处理,例如将所述条带作为独立的图像来解码。在操作中,服务器计算机114(图1)上的视频分区程序116(图1)可以根据分区图像200(图2)内的条带202(图2)、片204(图2)和块206(图2)的数量,使用分区参数300a、300b和/或300c(图2)来设置标志。当确定条带202包含一个片204和一个以上块206时,条带202可以作为独立图像来处理。

在408处,根据与子单元相关联的地址值对编码视频数据进行解码。例如,可以根据增加的地址或标识值来对子单元进行连续解码。在操作中,服务器计算机114(图1)上的视频分区程序116(图1)可以以连续增加的顺序对条带202(图2)、片204(图2)和块206(图2)进行解码,以允许对分区图像202(图2)进行解码。

可以理解的是,图4仅提供一种实现方式的图示,并不暗示对如何实现不同实施例的任何限制。可以根据设计和实现要求对所描绘的环境进行许多修改。

通过本申请实施例的技术方案,在对编码视频数据进行分区的过程中,视频帧数据分割成的至少一个子单元,根据其唯一的地址值,以递增的顺序排列,这样解码器可以根据增加的地址或标识值来对子单元进行连续解码,不仅可以提高解码器的解码效率,还可以节省比特位。

本申请实施例还提供一种对编码视频数据进行分区的计算机系统,包括:接收模块,和分割模块;

接收模块,用于接收视频帧数据;

分割模块,用于将所述视频帧数据分割成至少一个子单元;

其中,每个所述子单元具有唯一的地址值,根据所述唯一的地址值,所述至少一个子单元以递增的顺序排列,以及与每个所述子单元相关联的左边界和顶部边界包括图片边界和先前解码的子单元的边界中的至少一个。

在一些实施例中,所述子单元包括条带、片和块中的一种或多种。

在一些实施例中,与所述条带相关联的模式包括光栅扫描条带模式或矩形条带模式中的一种;所述计算机系统还包括解码模块,用于按照所述光栅扫描条带模式对应的顺序,对所述条带进行解码;或者按照所述矩形条带模式对应的顺序,对所述条带进行解码。

在一些实施例中,所述解码模块,还用于在所述矩形条带模式中启用所述光栅扫描条带模式。

在一些实施例中,所述计算机系统还包括设置模块,用于在将所述视频帧数据分割成至少一个子单元之后,设置标志,所述标志指示存在于所述视频帧数据的子单元的数量。

在一些实施例中,如果根据设置的标志指示的子单元的数量,确定条带包含一个片和多于一个块,则将所述条带作为独立图像来解码。

在一些实施例中,所述计算机系统还包括解码模块,用于根据与所述子单元相关联的所述地址值,对所述编码视频数据进行解码。

图5是根据说明性实施例的图1中描绘的计算机的内部组件和外部组件的框图500。应理解,图5仅提供一种实现方式的图示,并不暗示关于实现不同实施例的环境的任何限制。可以根据设计和实现要求对所描绘的环境进行许多修改。

计算机102(图1)和服务器计算机114(图1)可以包括图5所示的相应组的内部组件800a、800b和外部组件900a、900b。每组内部组件800包括至少一个处理器820、至少一个计算机可读ram822和至少一个总线826上的至少一个计算机可读rom824、至少一个操作系统828以及至少一个计算机可读有形存储设备830。

处理器820以硬件、固件,或硬件和软件的组合来实现。处理器820是中央处理单元(cpu:centralprocessingunit)、图形处理单元(gpu:graphicsprocessingunit)、加速处理单元(apu:acceleratedprocessingunit)、微处理器、微控制器、数字信号处理器(dsp:digitalsignalprocessor)、现场可编程门阵列(fpga:field-programmablegatearray)、专用集成电路(asic:application-specificintegratedcircuit)或其他类型的处理部件。在一些实现方式中,处理器820包括能够被编程为执行功能的至少一个处理器。总线826包括准许内部组件800a、800b之间的进行通信的组件。

服务器计算机114(图1)上的至少一个操作系统828、软件程序108(图1)和视频分区程序116(图1)被存储在至少一个相应的计算机可读有形存储设备830,以由至少一个相应的处理器820通过相应的至少一个ram822(其通常包括高速缓存存储器)来执行。在图5所示的实施例中,每个计算机可读有形存储设备830都是内部硬盘驱动器的磁盘存储设备。在一些实施例中,每个计算机可读有形存储设备830都是半导体存储设备,例如rom824、eprom、快闪存储器、光盘、磁光盘、固态盘、压缩盘(cd)、数字多功能盘(dvd)、软盘、盒带、磁带、和/或能够存储计算机程序和数字信息的另一类型的非易失性计算机可读有形存储设备。

每组内部组件800a、800b还包括用于从至少一个便携式计算机可读有形存储设备936(例如cd-rom、dvd、记忆棒、磁带、磁盘、光盘或半导体存储设备)读取和写入的r/w驱动器或接口832。软件程序,例如软件程序108(图1)和视频分区程序116(图1)可以存储在至少一个相应的便携式计算机可读有形存储设备936上,通过相应的r/w驱动器或接口832读取并且加载到相应的硬盘驱动器830中。

每组内部组件800a、800b还包括网络适配器或接口836,例如tcp/ip适配器卡、无线wi-fi接口卡、或者,3g、4g或5g无线接口卡或其他有线或无线通信链路。服务器计算机114(图1)上的软件程序108(图1)和视频分区程序116(图1)可以通过网络(例如,因特网、局域网或其他广域网)和相应的网络适配器或接口836从外部计算机下载到计算机102(图1)和服务器计算机114。将服务器计算机114上的软件程序108和视频分区程序116从网络适配器或接口836加载到相应的硬盘驱动器830中。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。

每组所述外部组件900a、900b都可以包括计算机显示监测器920、键盘930和计算机鼠标934。外部组件900a、900b还可以包括触摸屏、虚拟键盘、触摸板、指向设备和其他人机接口设备。每组所述内部组件800a、800b还包括设备驱动器840,所述设备驱动器840对接到计算机显示器监测器920、键盘930和计算机鼠标934。设备驱动器840、r/w驱动器或接口832和网络适配器或接口836包括硬件和软件(存储在存储设备830和/或rom824中)。

预先理解的是,尽管本公开包括对云计算的详细描述,但是本文所述的实现方式不限于云计算环境。相反,可以结合现在已知或以后开发的任何其他类型的计算环境来实现一些实施例。

云计算是一种服务交付模型,用于实现便捷地、随需应变地对可配置计算资源(例如,网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务)的共享池网络访问,所述可配置计算资源能够快速地供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。所述云模型可以包括至少五个特征、至少三个服务模型和至少四个部署模型。

特征如下:

随需应变的自助服务:云消费者可以单方面地按需自动获取计算能力,如服务器时间和网络存储,从而免去了与服务提供商进行交互的过程。

广泛的网络访问:网络中提供许多可用功能,可通过各种统一的标准机制从多样化的瘦客户端或者胖客户端平台获取(例如,移动电话、笔记本电脑、或pda掌上电脑)。

资源池:服务提供商将计算资源汇集到资源池中,通过多租户模式服务多个消费者,根据消费者的需求对不同的物理资源和虚拟资源进行动态分配或重分配。资源的所在地具有保密性,消费者通常不知道资源的确切位置,也无法控制资源的分配,但是可以指示较精确的概要位置(如,国家、省、或数据中心)。

快速灵活:能够快速而灵活地提供各种功能以实现扩展,在一些情况下是自动地,以快速向外扩展,并且快速地释放以快速地向内扩展。对消费者来说,可取用的功能是没有限制的,并且可以在任何时间进行任意数量的采购。

测量服务:云系统通过利用适合服务类型(例如,存储、处理、带宽和活动用户帐户)的某种抽象级别的计量能力,自动地控制和优化资源使用。可以监测、控制和报告资源使用情况,来为所用服务的提供商和消费者提供透明度。

服务模型如下:

软件即服务(saas):提供给消费者的能力是使用在云基础设施上运行的、提供商的应用程序。可以通过像web浏览器例如(例如,基于web的电子邮件)这样的瘦客户端接口从各种客户端设备访问应用程序。消费者不管理或控制底层云基础设施,所述底层云基础设施包括网络、服务器、操作系统、存储甚至单个应用程序的功能,其中有限的用户具体应用配置设置可能除外。

平台即服务(paas):提供给消费者的能力是利用资源提供商支持的编程语言和工具,将消费者创建或获取的应用程序部署到云的基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但可以控制部署的应用程序以及可能的应用托管环境配置。

基础设施即服务(laas):提供给消费者的能力是供应处理、存储、网络和其他基础的计算资源,消费者可在上面部署和运行任何软件,所述任何软件可以包括操作系统和应用程序。消费者不管理或控制底层的云基础设施,但控制操作系统、存储、部署的应用,并且可能对选定的网络部件(例如,主机防火墙)进行有限的控制。

部署模型如下:

私有云:云基础设施只是为组织而运营的。它可由所述组织或第三方管理,并且可以存在预置(onpremise)或外置(offpremise)两个状态。

社区云:云基础设施由若干组织共享,并且支持具有共享问题(例如,任务、安全要求、策略和合规性考虑)的具体社区。它可由组织或第三方管理,并且可以存在于预置或外置两个状态。

公共云:云基础设施面向普通公众或大型行业团体,并且由销售云服务的组织所有。

混合云:云基础设施是由两个或两个以上的云(私有、社区或公共)组成的,他们各自独立,但是通过标准化或专有技术绑定在一起,使得能够支持数据和应用程序的可移植性(例如,解决云之间负载均衡的云爆发(cloudbursting))。

云计算环境面向服务的,着重于无状态、低联接、模块化和语义互操作性。云计算的核心是包括互连节点的网络的基础设施。

参考图6,示出了说明性的云计算环境600。如图中示出的,云计算环境600包括至少一个云计算节点10,所述至少一个云计算节点10可以与云消费者使用的本地计算设备,例如个人数字助理(pda:personaldigitalassistant)或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n进行通信。云计算节点10可以彼此通信。可在至少一个网络(例如如上所描述的私有云、社区云、公共云或混合云或它们的组合)中对它们进行物理地或虚拟地分组(未示出)。允许云计算环境600提供基础设施、平台和/或软件作为服务,对于所述服务云消费者不需要维护本地计算设备上的资源。应理解,图6中示出的计算设备54a-n的类型仅仅是说明性的,并且云计算节点10和云计算环境600可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。

参考图7,示出了由云计算环境600(图6)提供的一组功能抽象层700。应预先理解,图7中示出的组件、层和功能仅仅是说明性的,并且实施例不限于此。如所描绘的,提供以下层和对应的功能:

硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于risc(精简指令集计算机)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件部件包括网络应用服务器软件67和数据库软件68。

虚拟化层70提供抽象层,从所述抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;以及包括虚拟专用网的虚拟网络73;虚拟应用和操作系统74;和虚拟客户端75。

在一个示例中,管理层80可以提供下面描述的功能。资源供应81提供计算资源和在云计算环境中执行任务的其他资源的动态采购。计量和定价82在云计算环境中利用资源时提供成本跟踪,并且对这些资源的消费开具账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,并且提供对数据和其他资源的保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,从而满足所需的服务水平。服务水平协议(sla:servicelevelagreement)计划和实现85提供对根据sla预期未来需求的云计算资源的预先布置和采购。

工作负载层90提供可以利用云计算环境的功能的示例。所述工作负载层90提供的工作负载和功能的示例包括:映射和导航91;软件开发和生命周期管理92;虚拟课堂教育交付93;数据分析处理94;交易处理95;和视频分区96。视频分区96可以将编码视频数据分区成条带、片和块。

一些实施例涉及在任何可能的技术细节集成水平的系统、方法和/或计算机可读介质。计算机可读介质可以包括计算机可读非易失性存储介质(或多个介质),所述计算机可读非易失性存储介质具有使处理器执行操作的计算机可读程序指令。

计算机可读存储介质可以是有形设备,该有形设备可以保留和存储指令以供指令执行设备使用。计算机可读存储介质可以是,例如,但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(ram:randomaccessmemory)、只读存储器(rom:read-onlymemory)、可擦除可编程只读存储器(eprom:programmableread-onlymemory或快闪存储器)、静态随机存取存储器(sram:staticrandomaccessmemory)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备(诸如穿孔卡或凹槽中的其上记录有指令的凸起结构)以及前述内容的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为瞬时信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲),或者通过电线传输的电信号。

本文描述的计算机可读程序指令可以通过网络(例如,因特网、局域网、广域网和/或无线网络),从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并且转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。

用于执行操作的计算机可读程序代码/指令可以是汇编指令、指令集架构(isa:instruction-set-architecture)指令、机器指令、机器相关指令、微码、固件指令、状态设置数据、集成电路的配置数据,或者是以至少一种编程语言的任何组合编写的源代码或目标代码,包括面向对象的编程语言,例如smalltalk、c++等,以及过程编程语言,例如“c”编程语言或类似的编程语言。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包,部分在用户的计算机上执行,部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过包括局域网(局域网)或广域网(广域网)的任何类型的网络连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来对电子电路进行个性化,来执行计算机可读程序指令,以便执行各方面或操作。

这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,以使计算机或其他可编程数据处理装置的处理器执行的指令创建实现流程图和/或框图的至少一个框中指示的功能/动作的手段。这些计算机可读程序指令还可以存储在计算机可读存储介质中,所述计算机可读存储介质可以指导计算机、可编程数据处理装置和/或其他设备以特定方式运行,使得存储有指令的计算机可读存储介质包括制造品(manufacture),所述制造品包括实现流程图和/或框图的至少一个框中指示的功能/动作的各方面的指令。

计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使在计算机、其他可编程装置或其他设备上执行一系列操作步骤,进而产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的至少一个框中指示的功能/动作。

附图中的流程图和框图示出了根据各种实施例的系统、方法和计算机可读介质的可能实现的架构、功能和操作。在这方面,流程图或框图中的每个框可以表示指令的模块、段或部分,所述指令包括用于实现指示逻辑功能的至少一个可执行指令。所述方法,计算机系统和计算机可读介质可以包括与图中所描绘的那些框相比另外的框、更少的框、不同的框或不同布置的框。在一些实施例中,框中标注的功能可以以不同于图中标注的顺序出现。例如,取决于所涉及的功能,实际上可以同时或基本上同时执行连续示出的两个框,或者有时可以以相反的顺序执行所述框。还将注意到,框图和/或流程图图示的每个框,以及框图和/或流程图图示中的框的组合,可由执行指示功能或动作或执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现。

将显而易见的是,本文描述的系统和/或方法可以以硬件、固件或硬件和软件的组合的不同形式来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码并不限制这些实现方式。因此,本文在不参考具体软件代码的情况下描述了系统和/或方法的操作和性能,应理解,软件和硬件可以被设计成基于本文的描述来实现系统和/或方法。

除非明确地如此描述,否则本文中使用的任何元素、动作或指令都不应被解释为关键或必要的。此外,如本文所使用的,冠词“一”和“一个”意图包括至少一个项,并且可以与“至少一个”互换使用。此外,如本文所使用的,术语“组”意图包括至少一个项(例如,相关项、不相关项、相关和不相关项的组合等),并且可以与“至少一个”互换使用。在意图仅一个项的情况下,则使用术语“一个”或类似的语言。此外,如本文所使用的,术语“具有”(“has”、“have”、“having”)等意图是开放式术语。此外,除非另有明确说明,短语“基于”意图表示“至少部分地基于”。

已经出于说明的目的呈现了对各个方面和实施例的描述,但是这些描述并不用于穷举或限制于所公开的实施例。即使特征的组合在权利要求中列举和/或在说明书中公开,但这些组合并不用以限制可能实现方式的公开。实际上,这些特征中的许多可以以权利要求中未具体列举和/或说明书中未公开的方式组合。尽管下面列出的每个从属权利要求可以直接地仅从属于一个权利要求,但是可能的实现方式的公开包括每个从属权利要求与权利要求集中的每个其他权利要求的组合。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域普通技术人员来说将是显而易见的。选择本文使用的术语是为了最好地解释实施例的原理、实际应用或对市场上找到的技术改进,或者使本领域的其他普通技术人员能够理解本文公开的实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1