较佳实施例的详细描述
概述
以下所描述的若干方法和系统可使内容作者能够实现精确到帧的编辑,同时减少与此相关联的处理复杂性。此外,至少在部分实施例中,这些系统和方法可确保比特率完整性被保持,以使与流式传输环境相关联的比特率条件被保持。在所描述的方案中,各种方法和系统针对于智能地确定哪些内容部分应被解压缩、处理并被重新压缩,以及哪些内容部分不应被解压缩。所描述的各种方案可使内容用户能够在比以前可能的时间短的多的时间内生成甚至更高质量的内容。
至少在一些实施例中,本文中所描述的系统和方法可允许创建能将源文件的概念抽象掉、并可取而代之地向用户呈现表示源文件的一系列剪辑或片段的应用程序。进而这些剪辑或片段可由用户经由应用程序,通过复制、移动等单独地操作。本文中所描述的各个发明实施例可允许该类源文件表示。
在开始对下述各个实施例的讨论之前,以下术语和有关概念将被使用。术语比特率是吞吐量参数,指每秒可例如通过网络被流式传输的比特数。术语恒定比特率指一般或平均意义上恒定的比特率。例如,在流式传输应用中,流式传输的网络带宽或比特率被假设是恒定的。缓冲区窗口指确保在流式传输会话中无延迟的流畅回放所需的最小预转(pre-roll)时间。术语缓冲区满度指用于确保应用于数据的压缩满足给定缓冲区窗口的恒定比特率的信息。这将在下文变得更加清楚。
此外,在以下描述中,术语“编码”和“压缩(名词)”或“压缩(动名词)”被可互换地使用。类似地,术语“解码”和“解压缩(动名词)”或“解压缩(名词)”被可互换地使用。此外,术语“样本”被用于指文件的单独可分段的部分,诸如单独的帧等。
在以下讨论中,首先讨论用来提供以上所列出的优点的各种方法。然后讨论其中可应用这些方法的示例性组件和系统。要意识到并理解,所要描述的这些方法可结合与下述的具体系统不同的各种组件和系统来实现,而不会偏离所要求保护的主题的精神和范围。
示例性方法
在以下讨论中,在裁剪文件、将文件缝合到一起、用各种过渡将文件缝合到一起以及将各种效果应用于文件的上下文中提供各种发明性方法的示例,其中每一个示例都在其各自单独的标题之下。如上文所示,这些方法针对于智能地确定一个或多个文件的哪些部分应被解压缩和处理,而哪些部分不应被解压缩。为此,各个实施例可接收若干要接受一个或多个操作的已压缩的多媒体文件,这些操作要求一个或多个文件片段中的至少一部分被解码。根据至少一部分实施例,仅那些必需被解码的文件部分被解码以执行这些操作。此过程的一个结果是不到这些多媒体文件的整体的部分为执行这些操作的目的而被解码。
裁剪文件
当文件被裁剪时,文件的若干部分被移除。例如,用户可能希望裁剪文件的开始部分、中间部分和/或结束部分,以将他们不希望在其特定项目中出现的内容删除。例如,考虑图2,该图表示已编码或已压缩的源文件。为裁剪特定文件,用户通常与允许对多媒体文件进行创建和编辑的软件应用程序交互。一个此类应用程序是Windows
Movie Maker应用程序,尽管显而易见其它应用程序可被使用。
在图2的示例中,标明了文件的若干部分,包括若干前一关键帧200、206,所谓的标入点202,下一帧204,以及所谓的标出点208。
首先考虑用户希望裁剪文件的开始部分的情况。在此情形中,用户经由软件应用程序指示标入点。标入点定义了文件中的位置,该位置之前的内容要被丢弃。在示例中,要被丢弃的内容以虚线表示。
当用户定义标入点时,该发明性过程确定标入点是否为关键帧。如果是,那么该关键帧之前的所有样本可被丢弃。但是,如果标入点不是关键帧,那么前一关键帧——在此例中为关键帧200——被定位,以使与标入点相关联的帧能被解码。一旦定位前一关键帧,解码即可从该关键帧起到标入点发生。从标入点前进直至下一关键帧(此例中为关键帧204)为止,所有样本将被解码和重新编码,然后已重新编码的帧可被写到输出文件中。
根据所描述的实施例,当与标入点相关联的帧被重新编码时,它被重新编码成关键帧。此外,构建在被重新编码的前一δ帧(如今是新的关键帧)上的那些中间帧或δ帧被重新编码,以使它们对新关键帧的依存关系可被建立。现在,当到达下一关键帧204,已压缩的所有样本可被直接复制到输出文件中。
现在在上文提及的缓冲区满度信息的上下文中考虑此例子。根据一个实施例,文件的每个帧都有与其相关联的缓冲区满度信息。在前一关键帧和后一关键帧被标识出来的分析过程期间,为所有样本计算缓冲区满度信息。对于需被重新编码的片段,开始和结束缓冲区满度信息被确定并被用来配置用于对该片段进行重新编码的编码器。如本领域技术人员将会理解的那样,缓冲区满度信息被编码器或压缩器用来确保各样本是以不违反任何可能被施加的恒定比特率条件的方式被压缩的。因此,当编码器压缩以与标入点相关联的帧为开始的样本时,它处理与被压缩的样本相关联的缓冲区满度信息,以确保当这些样本被重新压缩时,这些样本不违反恒定比特率条件。在分析过程期间,如果与标入点相关联的新关键帧的位置离下一关键帧过近,从而不允许足够的比特率来将标入点编码成关键帧,则可有决定在何处定位下一关键帧204的智能决策。在以下所描述的实施例中,此处理和决策制定是由分析器组件执行的。
例如,考虑以下情况。在一极端例子中,假设标入点恰好在关键帧204右边。这意味着新的关键帧将刚好被定位到关键帧204的右边。因为关键帧消耗大量比特,如本领域技术人员将会理解的那样,所以恒定比特率条件很可能被违反。因此,为在流式传输情形中保持输出文件的质量,令关键帧刚好相互邻接是不合需要的。为对付此情况,根据以下所描述的一个实施例,分析器组件可将再下一个关键帧作为“下一”关键帧,以确保有适当量的带宽可用来在标入点和“下一”关键帧之间进行重新编码。下一关键帧204和各后续中间帧可被解码和重新编码,以调整在与标入点相关联的关键帧之后的那个关键帧的位置。例如,在此情形中,下一关键帧204可被重新编码成依赖于新关键帧的中间帧,且各后续中间帧中的一个可被重新编码成关键帧,从而遵从恒定比特率条件。
图3是根据其中内容被从文件开头被裁剪的一个实施例,描述一种裁剪方法中的各个步骤的流程图。该方法可结合任何合适的硬件、软件、固件或其组合来实现。在一些实施例中,该方法可被具体化为驻留在计算机可读介质上的计算机可读指令。特别在一个例子中,该方法可使用诸如下述的系统来实现。
步骤300定义标入点。此步骤可通过用户与诸如Windows
Movie Maker等多媒体编辑应用程序的交互来完成。步骤302确定标入点是否为关键帧。如果是,那么步骤304丢弃标入点之前的所有样本,且步骤305从标入点到文件结束为止将已压缩的样本复制到输出文件中。如果标入点不是关键帧,那么步骤306定位前一关键帧,且步骤307计算与标入点相关联的开始缓冲区满度信息。步骤308定位标入点后的下一关键帧,并为该下一关键帧计算结束缓冲区满度信息。然后步骤310对在前一关键帧处开始到下一关键帧的各样本或帧进行解码或解压缩。步骤312在编码器上设置开始和结束缓冲区满度信息,且步骤314将与标入点相关联的帧重新编码成新关键帧。步骤316对新关键帧以后到下一关键帧为止的各帧继续重新编码,并将已重新编码的各帧复制到输出文件中。然后步骤318将从下一关键帧直至文件结束为止的已压缩的样本复制到输出文件中。
现在考虑用户希望裁剪文件结束部分的情况。在此情形中,用户指示标明其后内容将被丢弃的位置的标出点208(图2)。该发明性方法根据文件是否使用双向帧或B帧来编码而采取两种不同的方法。如果文件未用双向帧编码,且没有要被附加在标出点以后的内容,那么标出点以后的各样本可简单地被丢弃。如果编码使用了双向帧,那么该方法定位前一关键帧206,并从那里开始解压缩,直至标出点为止。然后从前一关键帧206直到与标出点相关联的样本为止的各样本被重新压缩。这确保可能与在文件的已编码的格式中的标出点之前、但在文件的被呈现的格式中的标出点之后的双向帧相关联的信息不会被给出。
图4是根据其中内容从文件结束被裁剪的一个实施例描述一种裁剪方法中的各个步骤的流程图。该方法可结合任何合适的硬件、软件、固件或其组合来实现。在一些实施例中,该方法可被具体化为驻留在计算机可读介质上的计算机可读指令。特别在一个例子中,该方法可使用如下述的系统来实现。
步骤400定义标出点。此步骤可通过用户与诸如WindowsMovie Maker等多媒体编辑应用程序交互来完成。步骤402确定在编码过程中是否使用了B帧。如果在编码过程中没有使用B帧,那么步骤404丢弃标出点以后的所有样本。另一方面,如果在编码过程中使用了B帧,则步骤406定位相对于标出点的前一关键帧,并计算涉及前一关键帧的开始缓冲区满度信息,步骤407计算涉及该标出点的缓冲区满度信息。步骤408对在前一关键帧处开始直至与标出点相关联的帧为止并包括该帧的各样本或帧进行解码。然后步骤410在编码器上设置开始和结束缓冲区满度信息,且步骤412对从前一关键帧直至标出点为止并包括标出点的各样本进行重新编码,弃置标出点以后的所有样本。
将文件缝合到一起
缝合指将两段内容拼接在一起。通常,用户会有两个或多个不同文件,并希望将两个不同文件的部分拼接在一起。在以下示例中,假设希望被拼接在一起的各文件的部分已如上文所提及的那样被裁剪过。
具体地,考虑图5,图示出希望被缝合到一起的示例性第一和第二片段。在此例中,文件的开始已相对于标入点502被裁剪,在此例中,标入点502不包括关键帧。在这种情况下,记得前一关键帧已被定位——此例中为关键帧500——且文件从关键帧500起到与标出点502相关联的帧为止已被解码。在此例中,还假设第二片段的结束已如上所述相对于标出点514被裁剪。
根据所描述的实施例,对两个文件片段的处理是在两个文件片段之间的连接区域中以某种程度上与上述不同的方式进行的。更具体而言,考虑以下情况。对于第一片段,该过程定位出相对于标出点的前一关键帧——此例中为关键帧504——并确定与关键帧504相关联的缓冲区满度信息。类似地,对于第二片段,该过程定位出相对于标入点510的前一关键帧——此例中为关键帧508——并从该处开始解码过程。此外,该过程定位出第二片段上的标入点之后的关键帧,并确定与该关键帧——此例中为关键帧512——相关联的缓冲区满度信息。
根据所描述的实施例,样本从关键帧504到关键帧512被解码。此外,为确保与所期望的恒定比特率相关联的比特率条件不被违反,与包括关键帧504和关键帧512在内的各个帧的缓冲区满度信息被提供给压缩器,以使恒定比特率条件能被保持。记得如果需要的话,压缩器被配置成调整各关键帧的位置来保持恒定比特率条件。
图6是根据来自其中两个不同文件的内容被缝合到一起的一个实施例来描述一种缝合方法中的各个步骤的流程图。该方法可结合任何合适的硬件、软件、固件或其组合来实现。在一些实施例中,该方法可被具体化为驻留在计算机可读介质上的计算机可读指令。特别在一个例子中,该方法可使用如下述的系统来实现。
步骤600定义拼接点,在拼接点处第一和第二文件或文件片段将被拼接到一起。在图5的示例中,第一文件片段的拼接点对应于标出点506,第二文件的拼接点对应于标入点510。步骤602定位出相对于第一文件中的拼接点的前一关键帧,并为此关键帧计算开始缓冲区满度。在图5的示例中,该前一关键帧对应于关键帧504。步骤604定位出相对于第二文件中的拼接点的前一关键帧和下一关键帧,并为该下一关键帧计算结束缓冲区满度。在图5的示例中,上述前一和下一关键帧分别对应于关键帧508、512。步骤606对在第一文件中的前一关键帧处(即,关键帧504)开始到第二文件中的下一关键帧(即,关键帧512)但不包括后者在内的样本或帧进行解码。
步骤608在编码器上设置开始和结束缓冲区满度信息,且步骤610将与第一文件中的拼接点相关联的帧重新编码成新的关键帧。步骤612继续对该新关键帧之后直至第二文件中的下一关键帧为止的帧进行重新编码,并将那些已重新编码的帧复制到输出文件中。步骤614将从第二文件中的下一关键帧起直至第二文件的结束为止的已压缩的样本复制到输出文件中。
用过渡将文件缝合到一起
在此示例中,两个不同的文件部分或片段可被缝合到一起,并包括被应用到文件片段之间的过渡。例如,考虑图7,图示出两个不同的第一和第二文件片段以及应用到这两个片段之间的过渡。在此例中,该过程确定解压缩和重新压缩的最佳位置。相应地,在此例中,该过程定位出相对于第一片段中的标入过渡开始帧702的前一关键帧——此例中为关键帧700——且还计算与此帧相关联的开始缓冲区满度信息。此外,该过程定位出在第二片段中的标出过渡停止帧710之后的最近的下一关键帧——此例中为关键帧712——并计算与该帧相关联的结束缓冲区满度信息。该过程然后对这些点之间的所有样本进行解码或解压缩,并将已解压缩的样本(包括关键帧700但不包括关键帧712)提供给处理器。应当理解,对第二片段的解码在标入过渡开始帧708之前的关键帧706处开始发生。
图8是根据其中来自两个不同文件的内容被缝合到一起且在文件片段之间包括过渡的一个实施例描述一种用过渡来缝合的方法中的各个步骤的流程图。该方法可结合任何合适的硬件、软件、固件或其组合来实现。在一些实施例中,该方法可被具体化为驻留在计算机可读介质上的计算机可读指令。特别在一个例子中,该方法可使用如下述的系统来实现。
步骤800定义过渡点,在过渡点处第一文件或文件片段将过渡到第二文件或第二文件片段。在图7的示例中,第一文件片段的过渡点对应于标入点702,且第二文件的过渡点对应于标出点710。步骤802定位出相对于第一文件中的过渡点的前一关键帧,并计算与该关键帧相关联的开始缓冲区满度信息。在图7的示例中,该前一关键帧对应于关键帧700。步骤804定位出相对于第二文件中的过渡点的前一关键帧和下一关键帧,并为该下一关键帧计算结束缓冲区满度信息。在图7的示例中,上述前一和下一关键帧分别对应于关键帧706、712。步骤806对在第一文件中的前一关键帧处(即,关键帧700)开始直至第二文件中的下一关键帧(即,关键帧712)但不包括后者为止的样本进行解码。
步骤808将过渡应用到适当的已解码的帧,且步骤810在编码器上设置缓冲区满度信息。步骤812对以第一文件中的前一关键帧开始的各帧进行重新编码。步骤814继续对第一文件中的前一关键帧之后直至第二文件中的下一关键帧为止的帧进行重新编码,并将已重新编码的帧复制到输出文件中。步骤816将从第二文件中的下一关键帧直至第二文件结束为止的已压缩的样本复制到输出文件中。
对文件应用效果
在此例中,效果被应用到单个文件部分。例如,考虑图9,图示出对其应用了效果的示例性文件片段。在此例中,效果开始处的帧(即,帧902)被视为该片段的标入点,效果结束处的帧(即,帧904)被视为标出点。同样,该过程定位出相对于标入点的前一关键帧——此例中为帧900——并计算与该前一关键帧相关联的开始缓冲区满度信息。该过程还定位出标出点之后的下一关键帧——此例中为帧906——并计算与此帧相关联的结束缓冲区满度信息。然后该过程对这两个帧之间的样本进行解压缩,并将样本提供给压缩器,以使压缩器能够重新压缩这些样本。此外,与各关键帧相关联的缓冲区满度信息被提供给压缩器,以使压缩器能就在何处定位关键帧以保持与恒定比特率相关联的比特率条件作出智能决策。
图10是描述其中效果被应用到内容的一种方法中的各个步骤的流程图。该方法可结合任何合适的硬件、软件、固件或其组合来实现。在一些实施例中,该方法可被具体化为驻留在计算机可读介质上的计算机可读指令。特别在一个例子中,该方法可使用如下述的系统来实现。
步骤1000定义标入效果开始点和标出效果停止点,在图9的示例中,它们分别对应于帧902和904。步骤1002定位出相对于标入效果开始点的前一关键帧,并计算与此关键帧相关联的开始缓冲区满度信息。在图9的示例中,该前一关键帧对应于关键帧900。步骤1004定位出相对于标出效果停止点的下一关键帧,并计算与此帧相关联的缓冲区满度信息。在图9的示例中,该下一关键帧对应于关键帧906。步骤1006对前一关键帧900和下一关键帧906之间的样本进行解码。步骤1008将适当的效果应用到适当的帧上。
步骤1010在编码器上设置开始和结束缓冲区满度信息,且步骤1012对以前一关键帧开始直至下一关键帧为止的各个帧进行重新编码,并将已重新编码的帧复制到输出文件中。步骤1014将从第二文件中的下一关键帧直至第二文件的结束为止的已压缩的样本复制到输出文件中。
用于实施这些方法的示例性系统
图11是配置成实施上述方法的一种软件组件的高级视图。该软件组件采用收录于计算机可读介质上的出版器组件1100的形式,而该计算机可读介质进而配备在计算系统上。在所示和所描述的实施例中,出版器组件1100包含分析器1102,并构建用来描述媒体项目的时间线对象1108。出版器组件1100通过分析器1102导出用来创建适当的时间线对象1108的信息,而时间线对象1108进而在所有上述处理发生之后构建适当的拓扑结构1106。此外,分析器1102所导出的信息由出版器组件1100用来配置如上所述地压缩样本的压缩器1104。
现在考虑图12及其中可使用出版器组件1100的一种示例性系统。在此系统中,诸如Windows
Movie Maker等编辑应用程序1200允许用户创建、编辑和共享多媒体影片。操作中,应用程序1200创建描述和表示用户项目的所谓的时间线对象1202。时间线对象1202有效地描述各个媒体源(即,文件和文件部分)要如何排列。该应用程序还定义目标集合1204。目标集合有效地描述结果输出并提供描述诸如要由压缩器1104使用的压缩设置等输出的配置设置的输出概况。
例如,考虑图13,图示出表示用户创建的项目的时间线对象的可视化表示。在此例中,时间线对象包括两个文件——标为“文件1”和“文件2”。用户项目被分成三个片段——片段1、片段2和片段3。片段1包括文件1的一部分,片段2包括用户所加入的诸如文件1和2之间的SMPTE消除等的过渡,片段3包括文件3的一部分。
一旦应用程序1200定义时间线对象1202和目标集合1204,此信息即被提供给出版器组件用于如下所述地进行处理。在一个实施例中,出版器组件可检查目标集合1204以确定目标集合是否包含与支持紧接着在以下描述的各种操作的编码相关联的压缩设置。例如,Windows
Media Video 9(WMV9)具有支持下述各种操作的编码器。在目标集合不支持下述各种操作的情况下,时间线对象1202和目标集合可简单地被传递给媒体引擎1206进行处理。媒体引擎1206被配置成处理和呈现用户项目。一种示例性的媒体引擎在美国专利申请第10/730,735号中描述,其所揭示内容通过被引用而包含于此。
为正在进行的目的,假设目标集合表明压缩设置指示支持所要描述的各种操作的编码器。在此例中,出版器组件1100将时间线对象1202和目标集合1204传递给分析器1102进行分析。
在所示和所描述的实施例中,所发生的处理是两步骤或两阶段过程。处理的第一步骤是分析步骤,其中用户定义的时间线由分析器处理和分析。处理的第二步骤在数据被写出到输出文件中时发生。
分析步骤
在上例中,用户已在文件1和2之间插入了过渡。如上文所提及那样,过渡的开始被定义为标入点,过渡的结束被定义为标出点。在如以上题为“用过渡将文件缝合到一起”的章节中所描述的那样,在分析器的分析中,分析器定位出相对于文件1中的过渡的开始的前一关键帧。此外,分析器定位出文件2中的过渡结束之后的下一关键帧。这告诉分析器,解压缩和重新压缩需要在这两点之间发生。此外,作为其分析的一部分,分析器1102为此范围计算开始和结束缓冲区满度信息。根据所描述的实施例,分析器能计算的缓冲区满度参数可包括,但不限于:该范围的比特数、该范围的样本数、开始时间(按照全局时间线)、与相对于文件1中的标入点的前一关键帧相关联的开始缓冲区满度信息、停止时间(按照全局时间线)、与相对于文件2中的标出点的下一关键帧相关联的停止缓冲区满度信息。
从其分析中,分析器能够确定,如果项目部分将被智能地处理,则图13中的带有三个片段的先前的时间线对象将不适合。相反,从分析器的分析中显现出来的是如图14中所示的具有5个片段的新时间线对象。
因此,分析器1102能取用户定义的时间线对象1202(图12)并对其进行处理来导出更精确地表示用户项目的第二个新的时间线对象,以使智能解压缩和重新压缩可被应用。
在所示和所描述的实施例中,一旦导出新的或第二时间线对象,即可导出该新时间线对象的局部拓扑结构。局部拓扑结构被用来描述或定义不同文件中的数据样本要如何被处理,及哪些组件将处理哪些片段。例如,考虑图14中所图示的局部拓扑结构。
在此例中,出版器组件1100从图14的新时间线对象导出局部拓扑结构,并能确定对于片段1,源文件1能以已压缩的形式被直接提供给输出文件。对于片段2,出版器组件1100定义文件1为被提供给解压缩器,然后被提供给输出文件。对于与文件1和文件2之间的过渡相一致的片段3,出版器组件定义文件1和2为以消除(wipe)效果的形式被提供给合成组件,然后被提供给输出文件。对于片段4,出版器组件定义文件2为被提供给解压缩器,然后被提供给输出文件。最后,对于片段5,出版器定义文件2为以已压缩的形式被直接复制到输出文件中。
现在,给定上述局部拓扑结构,称为拓扑结构加载器的组件采用该局部拓扑结构,并从其生成全部拓扑结构。一种示例性拓扑结构加载器在美国专利申请第10/796,505号中描述,其所揭示内容通过被引用而包含于此。在所示和所描述的实施例中,对于那些需被重新压缩的片段,拓扑结构加载器将适当的压缩器插入到拓扑结构中。因此,在本例中,拓扑结构加载器在片段2和4的解码器之后插入压缩器。对于片段3,拓扑结构加载器在消除组件之后插入压缩器。
在处理中的这一点上,用户项目的完整和全部的拓扑结构已被定义,并体现了智能解码和编码,以使仅这些单个文件中那些应被解压缩和处理的部分实际上被解压缩和处理。具体而言,在上例中,无需解压缩片段1和5,因为用户没有动过那些片段。
数据写步骤
已如上所述地创建了新时间线1108(图12)及局部和全部拓扑结构1106,出版器组件1100使用分析器分析的结果和新时间线来配置压缩器1104,并实际上开始将已压缩的数据写到输出文件中。
用户可选的压缩概况(profile)
以上各系统和方法的优点之一是用户可选择压缩概况,并将那些压缩概况用于对否则要根据不同的压缩概况来压缩的文件进行压缩和编码。这可经由例如诸如应用程序1200(图12)等的应用程序来完成。
例如,考虑以下情况。假设用户有若干文件或文件片段希望缝合在一起,且每个文件或文件片段可能并非正好被应用了相同的压缩。例如,文件1可能是用100Kbps的比特率压缩到320×240,文件2可能用1Mbps压缩到640×480,文件3可能用200Kbps压缩到320×240。如果用户希望将这些文件缝合到一起,并使用某一种媒体类型质量来压缩该项目,则用户可选择与文件3相关联的压缩参数——即,200Kbps,320×240。因为对文件2和文件1应用的压缩并非正好匹配这些参数,可对这些文件应用一些额外的处理。更具体而言,当将这些文件缝合到一起时,文件1可被解压缩并重新压缩到200Kbps并写到输出文件。此外,文件2可被解压缩,重新调整到较小的大小(320×240),重新压缩到200Kbps并写到输出文件。文件3可简单被复制到输出文件中。至少在一些实施例中,由用户通过应用程序表述的压缩参数中的这些改变可由出版器组件1100处理。
如从以上讨论的角度可以理解,缓冲区满度信息由编码器在重新编码过程期间使用,以确保恒定比特率条件被保持,以使流式传输环境中项目的回放流畅。
应用程序可选的压缩概况和智能操作
在一些实施例中,可创建允许应用程序自动选择编码内容所用的压缩概况的应用程序,从而可对压解压缩和重新压缩的内容的量作出智能决策。即,给定若干文件片段,其中每一个文件片段都具有不同的压缩概况,适当配置的应用程序可分析文件片段和要对这些文件片段进行的操作的集合,并可自动选择旨在最小化或至少减少被解压缩和重新压缩的内容的量的压缩概况。
此外,独立于各压缩概况中的差异,或除此之外,应用程序可被配置成在源格式可能不一定匹配输出格式的情况中灵活处理和适应媒体。即,可能存在其中格式中的差异不应妨碍处理的情况。
例如,考虑以下情况。如以上所描述的分析中的一部分,可进行分析以确定所标识的源具有匹配期望的输出文件格式的格式。在某些出现格式差异的实例中,本发明性系统和方法仍可处理媒体。在此例中,其中可能发生此现象的一些情形涉及专用数据、帧速率和比特率。
就专用数据而言,在一些情况中,专用数据无需在源格式和输出格式之间恰好匹配。在所示和所描述的实施例中,至少一些差异数据格式(例如,专用数据格式)并不禁止上述发明性过程的执行。这些差异是在以上在标题“用于实施这些方法的示例性系统”下描述的处理期间被处理的。
就帧速率而言,考虑以下情况。一些视频格式使用30帧/秒(f/s),一些格式使用29.9997f/s(或0.03333平均时间/帧)。这些格式本质上是相当的,并且在上述处理期间也应被视为相同的。在有本质上相当的格式差异的情况中,上述的本发明性处理可有效地将各种格式作为相当格式处理。
就比特率而言,考虑以下情况。如果目标比特率高于源比特率,那么上述的本发明性处理仍应发生,因为目标的较高比特率将不会改变源的质量。但是,如本领域技术人员将会理解,反之则不为真。因此,在此情形中,当格式中的差异不会影响源媒体的质量时,那么上述的本发明处理仍应发生。
总而言之,有源文件和输出文件之间的各种文件格式差异不应禁止处理的各种情况。可纳入考虑的各种因素包括差异的大小(如在帧速率的例子中)和对媒体的处理对输出质量将造成的效果。在格式差异实际上相当、或并无显著不同、或可被轻易处理的那些实例中,处理应当发生。类似地,在格式差异不会影响或显著降低输出文件的总体质量的那些情况中,处理应当发生。
结论
上述各种方法和系统可使内容作者能够实现精确到帧的编辑,并可减少经受解压缩和重新压缩处理的内容的量。此外,各种系统和方法可确保比特率完整性被保持,以使与流式传输环境相关联的比特率条件被保持。在上述方案中,各种方法和系统旨在智能地确定哪些内容部分应被解压缩、处理和重新压缩,及哪些内容部分不应被解压缩。所述方案可使内容作者能够在比以前可能的时间短的多的时间内生成甚至更高质量的内容。
尽管是以结构化特征和/或方法性步骤专用的语言描述了本发明,应当理解,在所附权利要求书中定义的发明不必限于所述的具体特征或步骤。相反,这些具体特征和步骤是作为实现所要求保护的发明的较佳形式被揭示的。