用于分布式转码的内容自适应组块的利记博彩app

文档序号:10518160阅读:390来源:国知局
用于分布式转码的内容自适应组块的利记博彩app
【专利摘要】公开用于转码视频剪辑的系统和方法。在一个实施方式中,计算机系统确定要将视频剪辑分为N+1个连续组块的N个帧,其中N是正整数,并且其中基于视频剪辑的图像内容、最小组块大小、以及最大组块大小来确定帧。将N+1个组块中的每个提供给用于转码的相应的处理器,以及根据经转码的N+1个组块生成经转码的视频剪辑。
【专利说明】
用于分布式转码的内容自适应组块
技术领域
[0001]本公开的方面和实施方式涉及数据处理,并且更具体地涉及数字内容的转码。
【背景技术】
[0002]转码是一种编码向另一种编码的直接数字-数字数据转换。在将视频剪辑向客户端机器(例如,台式计算机、智能电话、平板计算机等等)递送时经常使用转码,以提供对各种屏幕分辨率、高宽比、文件格式、编解码器等等的支持。

【发明内容】

[0003]下面给出本公开的各种方面的简化概括,以便提供对这些方面的基本理解。该概括并非所有设想的方面的广泛概述,并且既不旨在识别关键或重要的元件,也不是要记述这样的方面的范围。其目的是按照简化形式给出本公开的一些概念,作为下面要给出的更详细描述的前序。
[0004]在本公开的方面中,计算机系统确定要将视频剪辑分为N+1个连续组块的N个帧,其中N是正整数,并且其中基于视频剪辑的图像内容、最小组块大小以及最大组块大小来确定帧。在一个实施方式中,将N+1个组块中的每个提供给用于转码的相应的处理器,并且然后通过经转码的N+1个组块生成经转码的视频剪辑。
【附图说明】
[0005]根据下面给出的详细描述以及根据本公开的各种方面的附图和实施方式,能够更完整地理解本公开的方面和实施方式,但是,本公开的实施方式不应用于将本公开限于特定方面或实施方式,而是仅用于说明和理解。
[0006]图1描绘说明性视频剪辑的部分以及视频剪辑的说明性固定大小和内容自适应组块。
[0007]图2图示出根据本公开一个实施方式的示例性系统架构。
[0008]图3是转码管理器的一个实施方式的框图。
[0009]图4描绘用于视频剪辑的分布式转码的方法的方面的流程图。
[0010]图5描绘用于依照其来确定将视频分为组块的边界帧的方法的方面的流程图。
[0011 ]图6描绘根据本公开的方面和实施方式操作的说明性计算机系统的框图。
【具体实施方式】
[0012]为了视频剪辑的分布式转码而公开本公开的方面和实施方式。具体而言,本公开的实施方式能够将视频剪辑分为组块,将组块中的每个提供给相应的处理器(例如,相应的服务器的中央处理单元、多处理器计算机的相应的处理器等等)用于转码,以及根据转码组块生成经转码的视频剪辑。因为可通过处理器将组块并行转码,所以可以用单个处理器转码整个视频剪辑所需时间的一小部分将视频剪辑转码。
[0013]但是,由于这样的策略所致的问题在于,组块会在它们的视频代码化复杂度方面广泛变化。更具体而言,当跨越具有不同视频代码化复杂度的相邻组块来分割场景时,在组块边界处结果会是不连续的,当组块边界足够大的时候,它对于经转码的视频剪辑的观看者而言是可见的。例如,在相邻组块之间的量化步长大小中存在不连续性,当它足够大的时候,会导致在组块边界处峰值信噪比(PSNR)的可见的不连续性。
[0014]在使用组块来转码视频时的进一步的问题来自于视频压缩的性质。更具体而言,视频压缩利用不同类型的帧一一I帧以及非I帧,I帧包含完全指定的图像,非I帧只存储相邻帧之间的变化(例如,被称为P帧的预测图片帧、被称为B帧的双预测图片帧等等)。虽然组块的首帧始终是I帧,但是组块的末帧可以是I帧,也可以是非I帧。此外,I帧以及非I帧表现出不同的量化噪声模式。因此,组块的最末非I帧与下一个组块的最初I帧之间的质量差异会导致被称为I脉冲的可见闪烁,特别是在较低比特率编码方案中(例如,较低比特率H.264/MPEG-4编码等等)。
[0015]本公开的实施方式可通过使用内容自适应算法来减轻组块的这些固有问题。更具体而言,并非简单地将视频剪辑分为固定大小(或者接近固定大小)的组块,本公开的实施方式基于视频剪辑的图像内容(例如,视频剪辑的帧的像素值、视频剪辑的特征等等)、最小组块大小、以及最大组块大小来确定组块边界。这样的途径在组块边界处给出更少的伪象,从而为用户带来更好的观看体验。
[0016]在本公开的一些实施方式中,基于视频剪辑的图像内容确定组块边界包括识别视频剪辑中的场景变化(例如,经由对诸如淡入或淡出的效果的提取、经由帧之间基于像素的差异、经由帧之间基于柱状图的差异、经由特征的统计分析等等)。通过识别场景变化,以及在可能的时候,将组块边界与场景变化对齐(align),缝合在一起的经转码的视频剪辑的质量得到改善,同时,在与场景变化一致时,由于组块所致的伪象对于观看者而言通常不太明显。
[0017]图1描绘说明性视频剪辑的部分,其包括按照(a)视频剪辑的说明性固定大小组块;以及(b)视频剪辑的说明性内容自适应组块来划分的场景101-1至101-5。如图1所示,当两种组块途径都产生了五个组块边界时,与固定大小组块相比,内容自适应组块在场景内出现的边界更少,从而得到更高质量的经转码的视频剪辑。
[0018]在一些实施方式中,除了最小组块大小和最大组块大小之外,组块边界的确定还基于默认组块大小。在一些这样的实施方式中,默认组块大小大于或等于最小组块大小,且小于或等于最大组块大小。
[0019]在一些实施方式中,当场景超过最大组块大小时,在组块边界处场景的分割可以基于图像内容。例如,组块边界可以基于场景中的独立的帧的亮度的测量来确定(例如,在亮度的测量具有最小变化率的帧处分割场景等等),或者基于跨越场景的帧的运动的测量来确定(例如,在运动的测量具有最小变化率的帧处分割场景等等)。
[0020]根据一些实施方式,可以先将组块解码为中间的“通用”格式,然后从通用格式转码为目标编码。此外在一些实施方式中,可将视频剪辑转码为多个不同的编码(例如,
H.264/MPEG-4、MPEG-2等等)。在一些这样的实施方式中,将每个组块转码为多个不同的编码,且通过组装对应的经转码的组块来生成用于每个编码的经转码的视频剪辑(例如,通过由10^6-2编码的组块组装10^6-2视频剪辑、通过由!1.264/10^6-4编码组块组装!1.264/MPEG-4视频剪辑等等)。应当注意,在一些实施方式中,通用格式可以是未压缩的,而在其他实施方式中,通用格式可以是压缩的。
[0021]因此,本公开的方面和实施方式能够提高经由并行和分布式处理被转码的视频剪辑的质量。由于场景内组块边界的减少、长场景的智能分割(例如,通过将落入这样的场景内的边界处的亮度、运动等等的变化率最小化)、以及经转码的视频剪辑中I帧数量的总体减少,当与简单、固定大小的组块策略相比时,经转码的视频剪辑具有更少的明显伪象。因此,本公开的方面和实施方式经由分布式和并行处理提供将视频剪辑转码的速度优点,同时减轻由于这样的处理所致的质量下降。
[0022]应当注意,虽然是在转码视频剪辑的场境中公开方面和实施方式,但是本公开的技术也适合于转码其他类型的媒体项(例如,音频剪辑、图像等等)。例如,在视频剪辑中场景变化的模拟可以是音频剪辑中的静默时间间隔。
[0023]图2图示出根据本公开一个实施方式的示例系统架构200。系统架构200包括服务器机器215、媒体储存器220、web页面储存器230、客户端机器202-1至202-M、以及连接到网络204的转码服务器260-1至260-N,其中M和N是正整数。网络204可以是公共网络(例如,互联网)、专用网络(例如,局域网(LAN)或广域网(WAN))、或者它们的组合。
[0024]客户端机器202-1至202-M可以是个人计算机(PC)、膝上型计算机、移动电话、平板计算机、机顶盒、电视、视频游戏机、数字助理或任何其他计算设备。客户端机器202-1至202-M可以运行操作系统(未示出),所述操作系统管理客户端机器202-1至202-M的硬件和软件。浏览器(未示出)可以在一些客户端机器上执行(例如,在客户端机器的OS上)。浏览器可以是web浏览器,所述web浏览器通过导航到内容服务器240的web页面(例如,使用超文本传输协议(HTTP))使得web浏览器可以访问服务器机器215的内容服务器240所供应的内容。浏览器可以向内容服务器240发出命令和查询,诸如上传媒体项(例如,视频剪辑、音频剪辑、图像等等)、搜索媒体项、共享媒体项等等的命令。
[0025]客户端机器202-1至202-M中的一个或多个可包括与内容服务器240所提供的服务相关联的应用。可以使用这样的应用(app)的客户端机器的示例包括移动电话、“智能”电视、平板计算机等等。应用或app可以在不访问内容服务器240的web页面的情况下访问由内容服务器240所提供的内容、向内容服务器240发出命令等等。
[0026]通常,如果合适的话,在一个实施例中被描述为由内容服务器240执行的功能在其他实施例中也可以在客户端机器202-1至202-M上被执行。此外,归因于特定组件的功能性也可由不同的组件或者一起操作的多个组件来执行。内容服务器240也可通过适当的应用编程接口,作为向其他系统或设备所提供的服务被访问,并因此不限于在网站中使用。
[0027]服务器机器215可以是机架服务器、路由器计算机、个人计算机、便携式数字助理、移动电话、膝上型计算机、平板计算机、照相机、摄像机、上网本、台式计算机、媒体中心、或上述的任何组合。服务器机器215包括内容服务器240和转码管理器250。在替选的实施例中,内容服务器240和转码管理器250可以在不同的机器上运行。
[0028]媒体储存器220是持久储存器,其能够存储媒体项(例如,视频剪辑、音频剪辑、图像等等)以及数据结构,以标记、组织和索引媒体项。媒体储存器220可由一个或多个储存器设备托管,诸如主存储器、基于磁或光储存器的盘、磁带或硬盘驱动、NAS、SAN等等。在一些实施方式中,媒体储存器220可以是附接网络的文件服务器,而在其他实施例中,媒体储存器220可以是诸如面向对象的数据库、关系数据库等等的一些其他类型的持久储存器,它们可由服务器机器215或者经由网络204被耦合到服务器机器215的一个或多个不同机器托管。媒体储存器220中存储的媒体项可包括用户生成的媒体项(由客户端机器上传)、以及来自服务提供者的媒体项(例如,新闻机构、出版商、图书馆等等)。在一些实施方式中,媒体储存器220可由第三方服务提供,而在一些其他实施方式中,媒体储存器220可由维护服务器机器215的相同实体维护。
[0029]web页面储存器230是持久储存器,其能够存储向客户端供应的web页面和/或移动app文档以及以标记、组织和索引web页面和/或移动app文档(例如,提供给移动app,用于在移动设备上呈现的文档)的数据结构。web页面储存器230可以由一个或多个储存器设备托管,诸如主存储器、基于磁或光储存器的盘、磁带或硬盘驱动器、NAS、SAN等等。在一些实施方式中,web页面储存器230可以是附接网络的文件服务器,而在其他实施例中,web页面储存器230可以是诸如面向对象的数据库、关系数据库等等的一些其他类型的持久储存器,它们可由服务器机器215或者经由网络204被耦合到服务器机器215的一个或多个不同机器托管。web页面储存器230中存储的web页面和/或移动app文档可具有由用户生成并由客户端机器上传、由新闻机构提供等等的嵌入式内容(例如,媒体储存器220中存储的媒体项、互联网上其他地方存储的媒体项等等)。
[0030]根据一些实施方式,转码管理器250能够将上传的媒体项存储在媒体储存器220中,在媒体储存器220中索引媒体项,如下关于图3至图5所述的转码媒体项,以及执行图像、视频和音频处理(例如,滤波、抗混叠、线性检测、场景变化检测、特征提取等等)。下面关于图3详细描述转码管理器250的实施方式。
[0031]转码服务器260-1至260-N中的每个是包括存储器以及一个或多个处理器的机器,且能够经由网络204接收来自服务器机器215的一个或多个组块,将组块转码为一个或多个编码,以及经由网络204将经转码的组块传传送回服务器机器。应当注意,在一些替选的实施方式中,可经由除了网络204之外的网络(例如,局域网、私有城域网或广域网等等)将转码服务器260-1至260-N连接到服务器机器215。此外应当注意,其他实施方式可以采用并行多处理器机器来代替转码服务器260-1至260-N,并且一些这样的实施方式可以使用并行多处理器机器来执行服务器机器215的一些或全部功能。
[0032]图3是转码管理器的一个实施方式的框图。转码管理器300可以与图2的转码管理器250相同,并且可包括解复用器/复用器302、场景变化识别引擎304、组块边界判定引擎306、分割器/组装器308、控制器309、以及数据储存器310。根据特定实施方式,可将这些组件组合在一起,或者分离为进一步的组件。应当注意,在一些实施方式中,转码管理器300的各种组件可以在分离的机器上运行。
[0033]数据储存器310可以与媒体储存器220相同,或者与web页面储存器230相同,或者与这两者相同,或者可以是不同的数据储存器(例如,临时缓冲器或永久数据储存器),以保存一个或多个媒体项(例如,被存储在媒体储存器220中,要被嵌入在web页面中,要被处理等等)、媒体项中的一个或多个组块、在媒体储存器220中用于索引媒体项的一个或多个数据结构、(例如,要存储在web页面储存器230中,要被供应给客户端等等的)一个或多个web页面、在web页面储存器230中用于索引web页面的一个或多个数据结构、或者这些数据的一些组合。数据储存器310可以由一个或多个储存器设备托管,诸如主存储器、基于磁或光储存器的盘、磁带或硬盘驱动器等等。
[0034]解复用器/复用器302能够将视频剪辑的视频部分和音频部分分离,以及能够将视频数据和音频数据组合进视频剪辑内。下面关于图4更详细地描述解复用器/复用器302的一些操作。
[0035]场景变化识别引擎304能够识别视频剪辑中的场景变化(例如,经由对诸如淡入或淡出的效果的提取、经由帧之间基于像素的差异、经由帧之间基于柱状图的差异、经由特征的统计分析等等)。下面关于图5更详细地描述场景变化识别引擎304的一些操作。
[0036]组块边界判定引擎306能够确定将视频剪辑分为连续组块所依照的视频剪辑的帧。在一个方面中,组块边界判定引擎306基于视频剪辑的图像内容、最小组块大小、以及最大组块大小来确定组块边界帧。在一个实施方式中,除了最小组块大小和最大组块大小之夕卜,组块边界帧的确定还基于视频剪辑中的场景变化以及默认组块大小。下面关于图4和图5更详细地描述组块边界判定引擎306的一些操作。
[0037]分割器/组装器308能够根据组块边界帧的集合将视频剪辑分割为连续组块,以及将组块组合进视频剪辑内。控制器309能够将组块提供给相应的转码服务器260用于转码,以及从转码服务器260接收经转码的组块。在一些实施方式中,控制器309可包含用于将组块分配给特定转码服务器的逻辑(例如,负载平衡逻辑等等)。下面关于图4和图5更详细地描述分割器/组装器308和控制器309的一些操作。
[0038]图4描绘用于将视频剪辑分为用于分布式转码的组块的方法的方面的流程图。图4描绘用于视频剪辑的分布式转码的方法的方面的流程图。所述方法通过处理逻辑来执行,所述处理逻辑可包括硬件(电路、专用逻辑等等)、软件(诸如,在通用计算机系统或专用机器上运行的软件)、或两者的组合。在一个实施方式中,所述方法通过图2的服务器机器215来执行,而在一些其他实施方式中,图4的一个或多个块可通过另一个机器来执行。
[0039]为了简化说明,将方法描绘并描述为一系列动作。但是,根据本公开的动作可以按照多种顺序出现和/或同时出现,并且在本文中不呈现和描述其他动作。另外,不要求所有图示出的动作来实现根据所公开的主题内容的方法。此外,本领域技术人员应当理解,可经由状态图或事件将所述方法替选地表现为一系列相关的状态。此外,应当理解,本说明书中公开的方法能够被存储在制品中,以促进将这些方法运输和传递到计算设备。如同本文所使用的,术语制品旨在涵盖可通过任何计算机可读设备或存储介质访问的计算机程序。
[0040]在块401处,接收用户上传的视频剪辑,并且在块402处,将视频剪辑存储在媒体储存器220中。根据一个方面,由内容服务器240来执行块401和块402。
[0041]在块403处,将视频剪辑的视频部分和音频部分分离。根据一个方面,由转码管理器250的解复用器/复用器302来执行块403。
[0042]在一些实施方式中,可以先将视频剪辑的视频部分解码为中间“通用”格式,下面在块406至块408处可以通过“通用”格式获得一个或多个目标编码。在一些这样的实施方式中,通用格式可以是未压缩的,而在一些其他实施方式中,通用格式可以是压缩的。应当注意,在一些方面中,解码为通用格式可以作为块403的一部分被执行,而在一些其他方面中,解码可以替代性地在图4的方法的一些其他点处出现(例如,在图4中未描绘的单独的块,作为另一个块的一部分,诸如块404至块410的其中一个块,等等),或者在图5的方法中的一些点处出现,图5的方法由转码服务器260执行并在下文描述。
[0043]在块404处,基于视频剪辑的图像内容、最小组块大小、以及最大组块大小来确定用于将视频部分分为组块的组块边界帧。下面关于图5详细描述用于执行块404的方法的实施方式。
[0044]在块405处,根据在块404处确定的组块边界帧将视频剪辑分割为连续组块。根据一个方面,由转码管理器250的分割器/组装器308来执行块405。应当注意,当视频剪辑已经被解码为中间“通用”格式时,组块可通过将通用格式视频分割为通用格式组块来获得。
[0045]在块406处,将组块提供给转码服务器260(例如,将第一组块提供给转码服务器260-1,将第二组块提供给转码服务器260-2等等)用于转码。根据一个方面,通过转码管理器250的控制器309来执行块406。在一些实施方式中,控制器309可包含按照智能方式将组块分配给特定转码服务器的逻辑(例如,负载平衡逻辑等等)。
[0046]在块407处,从转码服务器260接收经转码的组块。根据一个方面,通过控制器309来执行块407。根据一些实施方式,由多个转码服务器260并行地转码组块,并且一旦转码完成,每个转码服务器将它的经转码的组块提供给控制器309。应当注意,在一些实施方式中,转码服务器260可直接地或者经由中间通用格式将每个组块转码为多个不同的编码(例如,
H.264/MPEG-4、MPEG-2等等),并将多个经转码的组块提供给控制器309。应当进一步注意,在一些替选的实施方式中,转码服务器260还可以负责将组块解码为通用格式,而不是如上所述,在分割为组块之前将整个视频剪辑解码为通用格式。
[0047]在块408处,根据经转码的组块生成一个或多个经转码的视频。更具体而言,在将组块转码为单个编码时,根据经转码的组块生成单个经转码的视频;在将组块转码为多个编码时(例如,通用格式、MPEG-2、H.264/MPEG-4等等),可通过组装被转码为第一编码的组块来生成第一经转码的视频,通过组装被转码为第二编码的组块来生成第二经转码的视频,等等。根据一个方面,由控制器309来执行块408。
[0048]在块409处,根据在块408处生成的每个经转码的视频以及根据在块403获得的音频来生成相应的视频剪辑。换言之,在单个编码的情况下,根据音频以及在块408处生成的经转码的视频来生成单个经转码的视频剪辑,而在多个编码的情况下,根据音频以及在块408处生成的第一经转码的视频来生成第一经转码的视频剪辑,根据音频以及在块408处生成的第二经转码的视频来生成第二经转码的视频剪辑,等等。根据一个方面,由转码管理器250的解复用器/复用器302来执行块409。
[0049]在块410处,将在块409处生成的一个或多个经转码的视频剪辑存储在媒体储存器220中。应当注意,当视频剪辑已经被解码为通用格式时,也可将视频剪辑的该版本存储在媒体储存器220中。在一些实施方式中,可以在块410处将通用格式视频剪辑存储在媒体储存器220中,而在一些其他实施方式中,可以在该方法的更早时间点将通用格式视频剪辑存储在媒体储存器220中(例如,紧接着在上述块403处解码为通用格式等等)ο根据一个方面,由控制器309来执行块410。
[0050]应当注意,虽然在图4的流程图中由用户来上传要转码的视频剪辑,但是在一些其他实施方式中,可通过一些其他方式来获得要转码的视频剪辑,或者,要转码的视频剪辑已经存储在媒体储存器220中(例如,媒体公司所提供的视频库等等)。应当进一步注意,虽然在图4的流程图中当服务器机器215接收到每个上传的视频剪辑时将其转码,但是在一些其他实施方式中,上传的视频剪辑的转码可以替代性地在以后的时间出现(例如,夜间执行的批量作业等等)。
[0051]图5描绘用于确定要将视频分为组块的边界帧的方法的方面的流程图。所述方法由处理逻辑执行,所述处理逻辑可包括硬件(电路、专用逻辑等等)、软件(诸如,在通用计算机系统或专用机器上运行的软件)、或两者的组合。在一个实施方式中,所述方法通过图2的服务器机器215执行,而在一些其他实施方式中,图5的一个或多个块可通过另一个机器来执行。根据一个方面,由控制器309来执行块501。
[0052]在块501处,识别视频中的一个或多个场景变化。在一些实施方式中,场景变化识别可包括对诸如淡入或淡出的效果的提取,而在一些其他实施方式中,场景变化识别可包括计算连续帧之间像素值的差异并且将所述差异的函数(例如,对于所有像素差异的总和等等)与阈值相比较,而在一些其他实施方式中,场景变化识别可包括构造帧中像素值的柱状图,对于连续帧计算柱状图之间的差异,并且将这些差异的函数(例如,对应的柱状图直条之间差异的总和等等)与阈值相比较,而在其他实施方式中,场景变化识别可包括对从帧提取的特征的统计分析,而在其他实施方式中,可通过一些其他方式来识别场景变化。根据一个方面,由转码管理器250的场景变化识别引擎304来执行块501。
[0053]在块502处,将变量S初始化为空集,并且在块503处,将变量chunkStart初始化为零。在块504处,将变量chunkEnd的值设置为chunkStart与默认组块大小(defaultChunkSize)的和。在一些实施方式中,默认组块大小可以处在最小组块大小与最大组块大小之间,含最小组块大小和最大组块大小(即,大于或等于最小组块大小且小于或等于最大组块大小)。
[0054]在块505处,将变量P设置为chunkEnd前面第一场景变化的帧的索引,并将变量q设置为chunkEnd后面第一场景变化的帧的索引。块506将(q-chunkStart)与最大组块大小maxChunkSize相比较;如果(q-chunkStart)小于或等于maxChunkSize,则执行继续进行到块507,否则执行在块508处继续。
[0055]在块507处,将变量chunkEnd的值设置为变量q的值。执行块507之后,执行在块510处继续。
[0056]块508将(p-chunkStart)与最小组块大小minChunkSize相比较;如果(p-chunkStart)大于或等于minChunkSize,则执行继续进行到块509,否则执行在块510处继续。
[0057]在块509处,将变量chunkEnd的值设置为变量P的值。在块510,将与组块边界帧相对应的chunkEnd的值添加到集合S。
[0058]块511基于变量chunkEnd是否等于视频的末帧的索引来分岔;如果不等于,则执行在块512处继续,否则执行继续进行到块513。在块512处,将变量chunkStart的值设置为chunkEnd+Ι,并且在执行块512之后,执行回到块504处继续。在块513处,将包含组块边界帧的指数的集合S返回。
[0059]应当注意,虽然在图5的实施方式中将组块边界帧限定为组块的末帧,但是通过对图5的方法进行适当的变化,在一些其他实施方式中,可将组块边界帧替代性地限定为组块的首帧。此外,在一些其他实施方式中,组块边界帧的确定可以基于最小组块大小和最大组块大小,但是除了最小大小和最大大小之外,不基于默认组块大小。
[0060]应当进一步注意,在一些其他实施方式中,可将图5的实施方式修改为处理场景超过最大组块大小的情况。在一些这样的实施方式中,在组块边界处对场景的分割可以基于图像内容;例如,可以基于对场景的独立帧的亮度的测量来确定组块边界(例如,在亮度的测量具有最小变化率的帧处分割场景等等),或者基于跨越场景的帧的运动的测量来确定组块边界(例如,在运动的测量具有最小变化率的帧处分割场景等等),或者基于以上两者,而在其他实施例中,可以基于根据场景中帧的像素值所获得的一些其他信息来确定超过最大大小的场景的边界。
[0061]应当进一步注意,虽然是在转码视频剪辑的场境中公开图4和图5的实施方式,但是在这些实施方式中采用的技术可以容易地适合于转码其他类型的媒体项(例如,音频剪辑、图像等等)。例如,在音频剪辑中帧的模拟可以是脉冲代码调制(PCM)的声音样本,而视频中场景变化的模拟可以是音频剪辑中的静默时间间隔。
[0062]图6示出示例性计算机系统,其中可以执行指令集,用于致使机器执行本文讨论的方法论中的任何一个或多个。在替选的实施方式中,可以在LAN、内联网、外联网或互联网中将机器连接(例如,联网)到其他机器。机器可以在客户端-服务器网络环境中作为服务器机器操作。机器可以是个人计算机(PC)、机顶盒(STB)、服务器、网络路由器、开关或网桥,或者是能够执行指定将要由机器采取的动作的指令集(按顺序或相反)的任何机器。进一步地,虽然仅图示出单个机器,但是术语“机器”可用于包括独立或联合执行指令集(或多个集),以执行本文讨论的方法论的任何一个或多个的机器的任何集合。
[0063]示例性计算机系统600包括处理系统(处理器)602、主存储器604(例如,只读存储器(ROM)、闪速存储器、动态随机存取存储器(DRAM)(诸如,同步DRAM(SDRAM))、静态存储器606(例如,闪速存储器、静态随机存取存储器(SRAM))、以及数据储存器设备616,它们经由总线608相互通信。
[0064]处理器602表示诸如微处理器、中央处理单元等等的一个或多个通用处理设备。更具体而言,处理器602可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或者实现其他指令集的处理器、或者实现指令集组合的处理器。处理器602也可以是一个或多个专用处理设备,诸如,专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等等。处理器602被配置为执行用于执行本文讨论的操作和步骤的指令626,。
[0065]计算机系统600可进一步包括网络接口设备622。计算机系统600可包括视频显示单元610(例如,液晶显示器(IXD)或阴极射线管(CRT))、字母数字输入设备612(例如,键盘)、光标控制设备614(例如,鼠标)、以及信号生成设备620(例如,扬声器)。
[0066]数据储存器设备616可包括计算机可读介质624,上面存储具体实施本文所述方法论或功能中的任何一个或多个的一个或多个指令集626(例如,由转码管理器225执行的指令等等)。在由计算机系统600执行期间,指令626可以完全或者至少部分地驻留在主存储器604和/或处理器602内,主存储器604和处理器602也构成计算机可读介质。此外,可经由网络接口设备622通过网络进一步传送或接收指令626。
[0067]虽然在示例性实施例中将计算机可读存储介质624示出为单个介质,但是术语“计算机可读存储介质”应当用于包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”应当用于包括能够存储、编码或承载通过机器执行并致使机器执行本公开的方法论中的任何一个或多个的指令集的任何介质。因此,术语“计算机可读存储介质”应当用于包括但不限于固态存储器、光介质以及磁介质。
[0068]在以上描述中给出多个细节。但是对于得益于本公开的本领域技术人员而言显而易见的是,没有这些具体细节也可以实践实施例。在一些实例中,按照框图的形式而不是通过细节示出公知的结构和设备,以免混淆描述。
[0069]说明书有些部分按照对于计算机存储器中的数据比特的操作的算法和符号表示来呈现。这些算法描述和表示是数据处理领域的普通技术人员用来将他们工作的实质最有效地传达给其他技术人员的手段。在此通常将算法视为带来期望结果的步骤的自洽序列。步骤是要求对物理量的物理操纵的步骤。通常,虽然并非必要,但是这些量采取能够被存储、传递、组合、比较或操纵的电信号或磁信号的形式。在原理上由于公共使用的原因,已经证明将这些信号称为比特、值、元素、符号、字符、术语、数字等等有时候是方便的。
[0070]但是应当牢记,所有这些术语和类似术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非从以上讨论明确另外声明,应当理解在整个说明书中,利用诸如“确定”、“提供”、“生成”等术语的讨论来指计算机系统或类似电子计算设备的动作和处理,计算机系统操纵在计算机系统的寄存器和存储器内被表示为物理(例如,电子)量的数据并将其变换成类似地被表示为计算机系统存储器或寄存器或其他这样的信息储存器、传输或显示设备中的物理量的其他数据。
[0071]此外,本公开的方面和实施方式涉及用于执行本文中的操作的装置。该装置可以专门为所需目的而构造,或者它可以包括通过计算机中存储的计算机程序选择性被激活或重新配置的通用计算机。这样的计算机程序可以被存储在计算机可读存储介质中,诸如但不限于任何类型的磁盘,包括软盘、光盘、⑶-R0M、以及磁光盘、只读存储器(R0M)、随机存取存储器(RAM)、EPR0M、EEPR0M、磁存储卡或光存储卡、或者适合于存储电子指令的任何类型介质。
[0072]本文给出的算法和显示并不内在地涉及任何特定的计算机或其他装置。根据本文的教导,可通过程序使用各种通用系统,或者可以证明,构造更加专用的装置来执行所需的方法步骤是方便的。对于多种这些系统而言所需的结构将从以下描述出现。此外,本公开并非参照任何特定的编程语言来描述。应当理解,可以使用各种编程语言来实现本文所述本公开的教导。
[0073]应当理解,以上描述目的是说明性而非限制性的。通过阅读和理解以上描述,对于本领域技术人员而言很多其他实施例将显而易见。此外,作为替代或者除了媒体剪辑之外,可将上述技术应用于其他类型的数据(例如,图像、音频剪辑、文本文档、web页面等等)。因此,应当参照所附权利要求,连同赋予这些权利要求的等同物的完整范围一起来确定本公开的范围。
【主权项】
1.一种将视频剪辑转码的方法,所述方法包括: 由计算机系统确定要将所述视频剪辑分为N+1个连续组块的所述视频剪辑的N个帧,其中N是正整数,并且其中所述确定是基于所述视频剪辑的图像内容、最小组块大小、以及最大组块大小; 将所述N+1个组块中的每个提供给相应处理器,用于转码;以及 根据经转码的N+1个组块,生成经转码的视频剪辑。2.根据权利要求1所述的方法,其中确定N个帧进一步基于默认组块大小,所述默认组块大小大于或等于所述最小组块大小,且小于或等于所述最大组块大小。3.根据权利要求1所述的方法,其中所述N个帧中的至少一个是基于所述视频剪辑中的场景变化来确定的。4.根据权利要求3所述的方法,进一步包括:识别所述视频剪辑中的一个或多个场景变化。5.根据权利要求1所述的方法,其中所述相应处理器中的每个处理器与相应计算机系统相关联。6.根据权利要求1所述的方法,其中所述视频剪辑包括超过所述最大组块大小的场景,并且其中,所述场景内的帧是基于对于所述场景中的至少两个帧的亮度的测量来确定的。7.根据权利要求6所述的方法,其中所述帧出现在所述场景中所述亮度的测量具有最小变化率的点处。8.一种装置,包括: 用于存储视频剪辑的存储器;以及 处理器,用于: 确定要将所述视频剪辑分为N+1个连续组块的所述视频剪辑的N个帧,其中N是正整数,并且其中所述确定是基于所述视频剪辑的图像内容、最小组块大小、以及最大组块大小; 将所述N+1个组块中的每个提供给相应处理器,用于转码为第一编码以及转码为第二编码; 根据被转码为所述第一编码的所述N+1个组块,来生成第一视频剪辑;以及 根据被转码为所述第二编码的所述N+1个组块,来生成第二视频剪辑。9.根据权利要求8所述的装置,其中所述N+1个组块通过所述相应处理器被并行转码。10.根据权利要求8所述的装置,其中所述N个帧中的至少一个是基于所述视频剪辑中的场景变化来确定。11.根据权利要求10所述的装置,其中所述处理器进一步用于识别所述视频剪辑中的一个或多个场景变化。12.根据权利要求8所述的装置,其中确定N个帧进一步基于默认组块大小,所述默认组块大小大于或等于所述最小组块大小,且小于或等于所述最大组块大小。13.根据权利要求8所述的装置,其中所述视频剪辑包括超过所述最大组块大小的场景,并且其中,所述场景内的帧是基于对于所述场景中的至少两个帧的运动的测量来确定的。14.根据权利要求13所述的装置,其中所述帧出现在所述场景中所述运动的测量具有最小变化率的点处。15.—种其中存储指令的非暂时性计算机可读存储介质,所述指令在被执行时致使计算机系统执行操作,所述操作包括: 由计算机系统确定要将所述视频剪辑分为N+1个连续组块的所述视频剪辑的N个帧,其中N是正整数,并且其中所述确定是基于所述视频剪辑的图像内容、最小组块大小、以及最大组块大小; 将所述N+1个组块的每个提供给相应处理器,用于转码;以及 根据经转码的N+1个组块,生成经转码的视频剪辑。16.根据权利要求15所述的非暂时性计算机可读存储介质,其中所述N个帧中的至少一个是基于所述视频剪辑中的场景变化来确定的。17.根据权利要求16所述的非暂时性计算机可读存储介质,其中所述操作进一步包括:识别所述视频剪辑中的一个或多个场景变化。18.根据权利要求15所述的非暂时性计算机可读存储介质,其中所述视频剪辑包括超过所述最大组块大小的场景,并且其中,所述场景内的帧是基于对于所述场景中的至少两个帧的亮度的测量来确定的。19.根据权利要求18所述的非暂时性计算机可读存储介质,其中所述帧出现在所述场景中所述亮度的测量具有最小变化率的点处。20.根据权利要求15所述的非暂时性计算机可读存储介质,其中所述视频剪辑包括超过所述最大组块大小的场景,并且其中,所述场景内的帧是基于对于所述场景中的至少两个帧的运动的测量来确定的。21.根据权利要求20所述的非暂时性计算机可读存储介质,其中所述帧出现在所述场景中所述运动的测量具有最小变化率的点处。
【文档编号】H04N21/44GK105874813SQ201480071787
【公开日】2016年8月17日
【申请日】2014年12月30日
【发明人】萨姆·约翰, 琴尚郁, 史蒂文·本汀, 蒂埃里·富屈, 林耀中
【申请人】谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1