精确到帧的编辑方法和系统的制作方法

文档序号:6755351阅读:132来源:国知局
专利名称:精确到帧的编辑方法和系统的制作方法
技术领域
本发明涉及用于创建和编辑多媒体内容的方法和系统。
背景技术
一些多媒体应用程序向用户提供创建和编辑多媒体内容的能力。例如,用户可有多个不同的包含多媒体内容的文件,且用户可能希望从这多个文件生成包含已编辑的内容的一个文件。这些多媒体应用程序通常使用户能够剪裁文件的某些部分和/或以某种方式将各个文件缝合在一起。这些类型的应用程序还可允许用户向已编辑的内容添加效果和过渡。效果令内容被修改,以使其以不同于原始所记录的内容的方式被呈现。例如,令彩色视频以黑白视频形式被呈现是一种效果的示例。过渡构成了一些用于在不同内容之间改变的手段,例如消除(wipe)过渡。
但是,当前可用的许多多媒体应用程序和系统具有各种缺点。尤其是,许多应用程序和系统强制仅能在关键帧或可被独立解码的帧处进行剪裁。
例如,考虑

图1,图示出两个关键帧(K)和若干中间帧(I)。关键帧是无需依赖于任何其它帧即可被解码或解压缩的帧。另一方面,中间帧依赖于其它帧来进行解码,因为它们仅包含描述相对于其它帧的差异的数据。现在假设在编辑多媒体内容期间用户希望裁剪某一中间帧处(在图1中标明为“期望裁剪点”)的内容。许多应用程序以两种方式中的一种来处理此问题。第一种,应用程序可允许在此点处的裁剪,但将强制对整个文件进行解压缩。第二种,应用程序可能不允许在该中间帧处进行裁剪,而是会强制在前一个关键帧处(在图1中标明为“强制裁剪点”)发生裁剪。毫无疑问,这些解决方案中没有哪一种是合乎需要的,因为在第一种情形中,用户期望的处理所不必需的内容被解压缩和重新压缩,因而增加了处理复杂性和额外开销。在第二种情形中,用户的编辑期望未被照做,且在此特定示例中,将导致把用户不希望包括的内容包括进来。
现在考虑用户希望将两个不同文件的部分拼合在一起。许多应用程序会允许若干文件被缝合在一起——但却是盲目地进行,而不考虑或理解将各个文件缝合到一起的效果。也就是说,通常在此情形中,要被缝合的每个部分所属的整个文件被解压缩,盲目地缝合到一起,并被重新压缩。除了解压缩不需要的内容之外,从此情形中可能发生的一个问题是在两个文件部分的连接处,文件流的比特率条件(诸如保持恒定比特率)可能被违反,从而当文件被流式传输时,观众可能会看到假信号或某种其它降质的表现。对于希望在网络上通过向另一用户流式传输所得的输出文件来共享其项目的用户来说,此解决方案是不合乎需要的。
就品质问题而言,由于几个不同的原因,对每个文件的整体进行解压缩、对各个已解码的文件的各个部分进行操作、然后对输出文件进行重新编码可能是有问题的。首先,通过对各个文件的整体进行解码,未受用户操作的部分被不必要地解码。第二,如上所述,对整个输出文件进行重新编码就重新编码所需的资源和时间而言代价非常高。此外,可能更重要的是,每一次内容被解码和重新编码时,它与原始内容的相似性就越来越低。这可能并的确导致降低的质量。
发明概述若干种方法和系统使内容作者能够实现精确到帧的编辑,至少在一些实施例中,减少为对各个帧进行操作而需要被解压缩的内容的量。一些实施例确保比特率完整性被保持,以使与流式传输环境相关联的比特率条件被保持。各个实施例智能地确定哪些内容部分应被解压缩、处理和重新压缩,以及哪些内容部分不应被解压缩。
附图简述图1是示出示例性关键帧和中间帧的框图。
图2是用于描述根据一个实施例的文件裁剪操作的文件的图示。
图3是根据一个实施例描述一种文件裁剪方法中的各个步骤的流程图。
图4是根据一个实施例描述一种文件裁剪方法中的各个步骤的流程图。
图5是用于描述根据一个实施例的文件缝合操作的文件的图示。
图6是根据一个实施例描述一种文件缝合方法中的各个步骤的流程图。
图7是用于描述根据一个实施例的文件缝合/过渡操作的文件的图示。
图8是根据一个实施例描述一种文件缝合/过渡方法中的各个步骤的流程图。
图9是用于描述根据一个实施例将一种效果应用于一文件部分的操作的文件的图示。
图10是根据一个实施例描述一种将一种效果应用于一文件部分的方法中的各个步骤的流程图。
图11是根据一个实施例应用智能解压缩和重新压缩的一种示例性组件的框图。
图12是可利用图11的组件的一种示例性系统的框图。
图13根据一个实施例图示出对表示用户创建的项目的时间线对象的可视化表示。
图14根据一个实施例图示出从图13的时间线对象创建的时间线对象的可视化表示。
较佳实施例的详细描述概述以下所描述的若干方法和系统可使内容作者能够实现精确到帧的编辑,同时减少与此相关联的处理复杂性。此外,至少在部分实施例中,这些系统和方法可确保比特率完整性被保持,以使与流式传输环境相关联的比特率条件被保持。在所描述的方案中,各种方法和系统针对于智能地确定哪些内容部分应被解压缩、处理并被重新压缩,以及哪些内容部分不应被解压缩。所描述的各种方案可使内容用户能够在比以前可能的时间短的多的时间内生成甚至更高质量的内容。
至少在一些实施例中,本文中所描述的系统和方法可允许创建能将源文件的概念抽象掉、并可取而代之地向用户呈现表示源文件的一系列剪辑或片段的应用程序。进而这些剪辑或片段可由用户经由应用程序,通过复制、移动等单独地操作。本文中所描述的各个发明实施例可允许该类源文件表示。
在开始对下述各个实施例的讨论之前,以下术语和有关概念将被使用。术语比特率是吞吐量参数,指每秒可例如通过网络被流式传输的比特数。术语恒定比特率指一般或平均意义上恒定的比特率。例如,在流式传输应用中,流式传输的网络带宽或比特率被假设是恒定的。缓冲区窗口指确保在流式传输会话中无延迟的流畅回放所需的最小预转(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定义标出点。此步骤可通过用户与诸如WindowsMovie 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平均时间/帧)。这些格式本质上是相当的,并且在上述处理期间也应被视为相同的。在有本质上相当的格式差异的情况中,上述的本发明性处理可有效地将各种格式作为相当格式处理。
就比特率而言,考虑以下情况。如果目标比特率高于源比特率,那么上述的本发明性处理仍应发生,因为目标的较高比特率将不会改变源的质量。但是,如本领域技术人员将会理解,反之则不为真。因此,在此情形中,当格式中的差异不会影响源媒体的质量时,那么上述的本发明处理仍应发生。
总而言之,有源文件和输出文件之间的各种文件格式差异不应禁止处理的各种情况。可纳入考虑的各种因素包括差异的大小(如在帧速率的例子中)和对媒体的处理对输出质量将造成的效果。在格式差异实际上相当、或并无显著不同、或可被轻易处理的那些实例中,处理应当发生。类似地,在格式差异不会影响或显著降低输出文件的总体质量的那些情况中,处理应当发生。
结论上述各种方法和系统可使内容作者能够实现精确到帧的编辑,并可减少经受解压缩和重新压缩处理的内容的量。此外,各种系统和方法可确保比特率完整性被保持,以使与流式传输环境相关联的比特率条件被保持。在上述方案中,各种方法和系统旨在智能地确定哪些内容部分应被解压缩、处理和重新压缩,及哪些内容部分不应被解压缩。所述方案可使内容作者能够在比以前可能的时间短的多的时间内生成甚至更高质量的内容。
尽管是以结构化特征和/或方法性步骤专用的语言描述了本发明,应当理解,在所附权利要求书中定义的发明不必限于所述的具体特征或步骤。相反,这些具体特征和步骤是作为实现所要求保护的发明的较佳形式被揭示的。
权利要求
1.一种计算机实现的方法,包括定义相对于一文件的标入点,所述标入点指明要被丢弃的文件内容;至少定位相对于所述标入点的前一和下一独立可解码的帧;对在前一关键帧开始到下一关键帧为止的各帧进行解码;将与所述标入点相关联的帧重新编码成新的关键帧;以及对直至所述下一独立可解码的帧为止的其余各帧进行重新编码。
2.如权利要求1所述的方法,其特征在于,仅当与所述标入点相关联的帧不是独立可解码的帧时,执行定位前一独立可解码的帧的动作。
3.如权利要求1所述的方法,其特征在于,还包括计算与已被解码的各帧相关联的缓冲区满度信息,以及确定在所述重新编码期间恒定比特率条件是否会被违反。
4.如权利要求1所述的方法,其特征在于,还包括计算与已被解码的各帧相关联的缓冲区满度信息,以及确定在所述重新编码期间恒定比特率条件是否会被违反,以及如果是,则调整所述重新编码过程,且其中,所述调整重新编码过程的动作包括调整至少一个独立可解码的帧的位置。
5.如权利要求1所述的方法,其特征在于,还包括接收用户所选择的压缩参数,并在所述重新编码动作期间应用所述压缩参数。
6.一个或多个其上具有计算机可读指令的计算机可读介质,当所述计算机可读指令由一个或多个处理器执行时,执行如权利要求1所述的方法。
7.一种系统,包括一个或多个计算机可读介质;包含在所述一个或多个计算机可读介质上并被配置成实现如权利要求1所述方法的一个或多个软件组件。
8.一种包含如权利要求7所述的一个或多个计算机可读介质的计算机系统。
9.一种计算机实现的方法,包括定义相对于一文件的标出点,所述标出点指明要被丢弃的文件内容;确定是否使用了双向帧来对所述文件内容进行编码;如果没有使用双向帧来对所述文件内容进行编码,则丢弃所述标出点以后的各帧;如果使用了双向帧来对所述文件内容进行编码,则定位相对于所述标出点的前一独立可解码的帧;对在所述前一独立可解码的帧处开始直至并包括与所述标出点相关联的帧的各帧进行解码;对在所述前一独立可解码的帧处开始直至并包括与所述标出点相关联的帧的各帧进行重新编码。
10.如权利要求9所述的方法,其特征在于,还包括在所述重新编码以后,丢弃与所述标出点相关联的帧之后的各帧。
11.如权利要求9所述的方法,其特征在于,还包括接收用户所选择的压缩参数,并在所述重新编码的动作期间应用所述压缩参数。
12.一个或多个其上具有计算机可读指令的计算机可读介质,当所述计算机可读指令由一个或多个处理器执行时,执行如权利要求9所述的方法。
13.一种系统,包括一个或多个计算机可读介质;包含在所述一个或多个计算机可读介质上并被配置成实现如权利要求9所述方法的一个或多个软件组件。
14.一种包含如权利要求13所述的一个或多个计算机可读介质的计算机系统。
15.一种计算机实现的方法,包括定义拼接点,在所述拼接点处第一和第二文件片段将被拼接到一起;定位相对于所述第一文件片段中的拼接点的前一独立可解码的帧;至少定位相对于所述第二文件片段中的拼接点的前一和下一独立可解码的帧;对在所述第一文件片段中的所述前一独立可解码的帧处开始直到但不包括所述第二文件片段中的下一独立可解码的帧的各帧进行解码;将与所述第一文件片段中的拼接点相关联的帧重新编码成新的关键帧;以及对所述新的关键帧之后直至并至少包括与所述第二文件片段中的所述拼接点相关联的帧的剩余各帧进行重新编码。
16.如权利要求15所述的方法,其特征在于,还包括计算与已被解码的各帧相关联的缓冲区满度信息,并确定在所述重新编码期间恒定比特率条件是否会被违反。
17.如权利要求15所述的方法,其特征在于,还包括计算与已被解码的各帧相关联的缓冲区满度信息,并确定在所述重新编码期间恒定比特率条件是否会被违反,并且如果是,则调整所述重新编码过程,其中,所述调整重新编码过程的动作包括调整至少一个独立可解码的帧的位置。
18.如权利要求15所述的方法,其特征在于,还包括接收用户所选择的压缩参数,并在所述重新编码的动作期间应用所述压缩参数。
19.一个或多个其上具有计算机可读指令的计算机可读介质,当所述计算机可读指令由一个或多个处理器执行时,执行如权利要求15所述的方法。
20.一种系统,包括一个或多个计算机可读介质;包含在所述一个或多个计算机可读介质上并被配置成实现如权利要求15所述方法的一个或多个软件组件。
21.一种包含如权利要求20所述的一个或多个计算机可读介质的计算机系统。
22.一种计算机实现的方法,包括定义过渡点,所述过渡点定义在何处发生从第一文件片段到第二文件片段的过渡;定位相对于所述第一文件片段中的过渡点的前一独立可解码的帧;至少定位相对于所述第二文件片段中的过渡点的前一和下一独立可解码的帧;对在所述第一文件片段中的前一独立可解码的帧处开始直到但不包括所述第二文件片段中的下一独立可解码的帧的各帧进行解码;将所述过渡应用到已解码的帧中的至少一部分;以及对在所述第一文件片段中的前一独立可解码的帧处开始直至但不包括所述第二文件片段中的下一独立可解码的帧的各帧进行重新编码。
23.如权利要求22所述的方法,其特征在于,还包括计算与已被解码的各帧相关联的缓冲区满度信息,并确定在所述重新编码过程期间恒定比特率条件是否会被违反。
24.如权利要求22所述的方法,其特征在于,还包括计算与已被解码的各帧相关联的缓冲区满度信息,并确定在所述重新编码过程期间恒定比特率条件是否会被违反,并且如果是,则调整所述重新编码过程,其中所述调整重新编码过程的动作包括调整至少一个独立可解码的帧的位置。
25.如权利要求22所述的方法,其特征在于,还包括接收用户所选择的压缩参数,并在所述重新编码动作期间应用所述压缩参数。
26.一个或多个其上具有计算机可读指令的计算机可读介质,当所述计算机可读指令由一个或多个处理器执行时,执行如权利要求22所述的方法。
27.一种系统,包括一个或多个计算机可读介质;包含在所述一个或多个计算机可读介质上并被配置成实现如权利要求22所述方法的一个或多个软件组件。
28.一种包含如权利要求27所述的一个或多个计算机可读介质的计算机系统。
29.一种计算机实现的方法,包括定义标入效果开始点和标出效果停止点,所述标入效果开始点和标出效果停止点定义要对其应用效果的文件片段;定位相对于所述标入效果开始点的前一独立可解码的帧;定位相对于所述标出效果停止点的下一独立可解码的帧;对在所述前一独立可解码的帧处开始直至但不包括所述下一独立可解码的帧的各帧进行解码;将所述效果应用于至少一个已解码的帧;以及对在所述前一独立可解码的帧处开始直到至少下一独立可解码的帧为止的各帧进行重新编码。
30.如权利要求29所述的方法,其特征在于,还包括计算与已被解码的各帧相关联的缓冲区满度信息,并确定在所述重新编码过程期间恒定比特率条件是否会被违反。
31.如权利要求29所述的方法,其特征在于,还包括计算与已被解码的各帧相关联的缓冲区满度信息,并确定在所述重新编码过程期间恒定比特率条件是否会被违反,且如果是,则调整所述重新编码过程,其中所述调整重新编码过程的动作包括调整至少一个独立可解码的帧的位置。
32.如权利要求29所述的方法,其特征在于,还包括接收用户所选择的压缩参数,并在所述重新编码的动作期间应用所述压缩参数。
33.一个或多个其上具有计算机可读指令的计算机可读介质,当所述计算机可读指令由一个或多个处理器执行时,执行如权利要求29所述的方法。
34.一种系统,包括一个或多个计算机可读介质;包含在所述一个或多个计算机可读介质上并被配置成实现如权利要求29所述方法的一个或多个软件组件。
35.一种包含如权利要求34所述的一个或多个计算机可读介质的计算机系统。
36.一种系统,包括一个或多个计算机可读介质;包含在所述一个或多个计算机可读介质上、且被配置成执行以下各项的一个或多个软件组件从应用程序接收描述用户的多媒体项目的时间线对象;分析所述时间线对象以从中导出一新的时间线对象,所述新的时间线对象以使所述多媒体项目中需被解码的那些部分被具体定义出来的方式描述所述用户的多媒体项目;导出要用来处理与所述用户的项目相关联的文件部分的局部拓扑结构;从所述局部拓扑结构导出要被用来处理所述文件部分的全部拓扑结构。
37.如权利要求36所述的系统,其特征在于,所述一个或多个软件组件被配置成通过至少将压缩器组件插入到所述局部拓扑结构的部分中来导出所述全部拓扑结构。
38.如权利要求36所述的系统,其特征在于,还包括应用程序,所述应用程序被配置成接收涉及多媒体项目的用户输入,并从中生成可向所述一个或多个软件组件提供的时间线对象。
39.如权利要求36所述的系统,其特征在于,所述一个或多个软件组件被配置成计算与所述用户的项目的各帧相关联的缓冲区满度信息,并使用所述缓冲区满度信息来配置用于对所述项目的已被解码的各帧进行重新编码的压缩器。
40.如权利要求36所述的系统,其特征在于,所述一个或多个软件组件被配置成至少根据所述新时间线对象来配置压缩器,并使已压缩的数据被写到输出文件中。
41.如权利要求36所述的系统,其特征在于,所述新时间线对象可描述以下各项中的一项或多项要被裁剪的文件片段;要被裁剪和缝合的文件片段;要被缝合的文件片段;包含至少一个过渡的文件片段;以及包含至少一个效果的文件片段。
42.一种计算机实现的方法,包括接收要受到一个或多个操作的一个或多个已压缩的多媒体文件,所述操作要求一个或多个文件片段中的至少一部分被解码;仅对所述一个或多个文件片段中需被解码的那些部分进行解码,以进行所述一个或多个操作,所述解码动作是对所述多媒体文件中的至少一个多媒体文件的不到全体所执行的;对所述一个或多个文件片段的已解码的部分进行所述一个或多个操作,以提供一个或多个结果文件片段;以及对所述结果文件片段进行重新编码。
43.如权利要求42所述的方法,其特征在于,所述一个或多个操作包括以下操作中的一个或多个裁剪操作、过渡操作、或效果操作、或其组合。
44.如权利要求42所述的方法,其特征在于,还包括向用户呈现所述一个或多个片段的表示,所述表示使用户能够选择片段以及对所选择的片段进行操作。
45.如权利要求42所述的方法,其特征在于,所述重新编码的动作是由被配置成自动选择压缩概况以供所述重新编码动作使用的应用程序来执行的。
46.如权利要求42所述的方法,其特征在于,如果一个或多个所述多媒体文件具有不匹配输出文件格式的格式,则所述动作可被执行。
47.如权利要求46所述的方法,其特征在于,还包括在所述格式不匹配的情况下,确定所述格式是否实际相当,且如果是,则至少执行所述一个或多个操作。
48.如权利要求46所述的方法,其特征在于,在所述格式不匹配的情况下,确定如果所述一个或多个操作被执行,所述多媒体文件的质量是否会降低,且如果否,则执行所述一个或多个操作。
全文摘要
若干方法和系统使内容作者能够实现精确到帧的编辑,以及至少在一些实施例中,减少需被解压缩以对这些帧进行操作的内容的量。一些实施例确保比特率完整性被保持,以使与流式传输环境相关联的比特率条件被保持。各种实施例智能地确定哪些内容部分应被解压缩、处理和重新压缩,以及哪些内容部分不应被解压缩。
文档编号G11B27/031GK101044757SQ200480011996
公开日2007年9月26日 申请日期2004年7月22日 优先权日2004年4月30日
发明者A·V·格里格罗维齐, G·B·林, G·A·豪厄尔, M·L·威尔逊, N·S·纳亚克, O·科勒, R·B·奥克利, B·本德, T·M·安托恩 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1