首页> 中国专利> 迭代地定位对应于所需查找时刻的位置

迭代地定位对应于所需查找时刻的位置

摘要

各种技术使得能够定位文件中对应于所需查找时刻的位置而不访问指定该所需查找时刻的位置的索引。可使用迭代过程来估算对应于所需查找时刻的位置。该过程可迭代通过多次估算直到对应于估算位置的时刻和所需查找时刻之间的差异在可接受量之内或者直到该过程达到迭代阈值。文件然后可在所需查找时刻处或在其附近开始播放。这些技术因此可允许用户在渐进地下载或流传输一文件的同时在该文件中查找。

著录项

  • 公开/公告号CN101675427A

    专利类型发明专利

  • 公开/公告日2010-03-17

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200880014521.5

  • 申请日2008-05-01

  • 分类号G06F17/00(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人顾嘉运;钱静芳

  • 地址 美国华盛顿州

  • 入库时间 2023-12-17 23:44:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-06-03

    专利权的转移 IPC(主分类):G06F17/00 变更前: 变更后: 登记生效日:20150515 申请日:20080501

    专利申请权、专利权的转移

  • 2012-10-10

    授权

    授权

  • 2010-04-28

    实质审查的生效 IPC(主分类):G06F17/00 申请日:20080501

    实质审查的生效

  • 2010-03-17

    公开

    公开

说明书

背景

在观看一视频时,用户通常希望查找至该视频中的特定位置。例如,观 看存储在硬盘驱动器上的电影的用户可能希望跳到对应于该电影中的特定时 刻的指定章节。另选地或另外地,该用户可能希望将电影快进特定时间量。为 了查找至这些所需位置,传统视频播放器查看将电影时刻与字节偏移量相关的 索引。

例如,想象用户希望在时刻30:44处继续观看电影。此外,想象该电影的 长度为2小时且总大小为2千兆字节(GB)。索引因此可建议视频播放器时 刻30:44对应于字节偏移量322122547。该视频播放器因此可在该指定字节偏 移量处开始读取并播放电影。

虽然用户可在观看整个视频之前将该视频存储在硬盘驱动器上,但该用 户也可选择在视频下载的同时开始观看该视频。在这些情况下,视频通常驻留 在包括索引的文件中,该索引在该文件的末尾处或在末尾附近。因此,当用户 希望在视频下载的同时在该视频中查找时,视频播放器通常不可访问索引。由 此,视频播放器无法容易地找出对应于指定查找时刻的字节偏移量。

存在尝试找出这一对应的字节偏移量的两个过程。首先,视频播放器可 以只读取已经下载的数据样本的部分或全部以确定对应于指定查找时刻的数 据样本。一旦视频播放器找到该数据样本,该播放器就可在对应于该数据样本 的字节偏移量处开始读取并播放该视频。然而,该过程通常证明为在计算上是 极其昂贵的。

另一过程包括基于已知视频长度和已知视频大小来计算整个视频的估算 比特率。在计算出该比特率后,视频播放器将该比特率乘以查找时刻以便粗略 地估算出对应的字节偏移量。虽然该方法可证明适用于恒定比特率(CBR)视 频,但该方法通常证明不适用于可变比特率(VBR)视频,因为VBR视频中 的时刻和字节偏移量值通常并非在一对一的基础上对应。

概述

本文描述了能够定位文件中对应于所需查找时刻的位置而不访问指定该 所需查找时刻的位置的索引的各种技术。某些实现采用迭代过程来估算对应于 所需查找时刻的位置。在这些实现中,该过程可迭代通过多次估算直到对应于 估算出的位置的时刻和所需查找时刻之间的差异在可接受量之内或者直到该 过程达到迭代阈值。这些实现然后可在所需查找时刻处或在其附近开始播放文 件。这些技术因此允许用户在渐进地下载或流传输一文件的同时在该文件中查 找。

提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的 一些概念。本概述不旨在标识所要求保护的主题的关键或必要特征,也不旨在 用于帮助确定所要求保护的主题的范围。例如,术语“技术”可以指根据上述 上下文和通篇文档的系统、方法、计算机可读指令、和/或任何其他主题。

附图说明

参考附图来描述详细描述。在附图中,附图标记中的最左边的数字标识 该附图标记首次出现的附图。在不同附图中使用同一附图标记指示相似或相同 的项目。

图1示出了其中媒体播放器可准确地定位文件中对应于所需查找时刻的 位置的说明性环境。

图2-3示出了用于渐进地下载或流传输文件,接收查找至文件的所需时刻 的请求,定位对应于该所需时刻的位置以及在该所需时刻处或在其附近播放文 件的说明性过程。

图4描绘了来自图1的文件的说明性属性。

图5-6示出了用于定位文件中对应于所需查找时刻的位置的另一说明性 过程,该过程利用将所需时刻包括在内(bracket)的两个已知数据点。

图7示出了来自图1的文件的其它说明性属性。

图8-9示出了用于定位文件中对应于所需查找时刻的位置的另一说明性 过程,该过程利用从已知数据点测量的头比特率和尾比特率。

详细描述

概览

以下讨论针对能够定位文件中对应于所需查找时刻的位置而不访问指定 文件中的所需查找时刻的位置的索引的各种技术。这些技术使得用户能够准确 且高效地在诸如视频、歌曲或其他文件等文件继续下载或流传输的同时查找至 该文件中的所需时刻。这些技术可在在所需查找时刻处或在其附近开始播放文 件之前利用迭代过程。

题为“说明性操作环境”的第一节阐述了可启用这些和其他动作的环境。 之后是“说明性迭代过程”章节,其描述了该说明性环境中的组件如何可利用 迭代过程来使得能够在所需查找时刻处播放文件。之后是题为“通过将所需查 找时刻包括在内来迭代地定位对应于所需查找时刻的位置”的第三节。该节描 述了所要求保护的技术如何可通过使用将所需查找时刻包括在内的已知数据 点来锁定对应于所需查找时刻的位置。该讨论然后以题为“使用头比特率和尾 比特率来迭代地定位对应于所需查找时刻的位置”的第四节来得出结论。

包括章节标题和对应概述的本简要介绍是出于方便读者的目的而提供 的,而非旨在限制权利要求或上述各节的范围。

说明性操作环境

以下讨论提供了说明性操作环境以帮助读者理解可采用各种技术的各方 面的某些方式。以下描述的环境仅构成一个示例且并非旨在将这些技术的应用 限于任一个特定操作环境。可使用其它环境而不背离所要求保护的主题的精神 和范围。

图1示出了一个这样的环境100,其包括经由网络106耦合到媒体服务器 104的计算设备102。媒体服务器104通常包含可供计算设备102消费的一个 或多个媒体文件108。媒体文件108可包括视频文件、音频文件、文本文件、 静止图像和/或任何其他文件类型的文件。这些媒体文件还可包括特定格式的容 器内的数据。例如,这些文件可包括高级系统格式(ASF)容器等内的数据。 在这些情况下,媒体文件108通常将至少包括可能按以下次序的三个部分:首 部、数据和索引。

另外,媒体文件108通常是压缩的。例如,媒体文件108中的一个或多个 可以用可变比特率(VBR)来编码。VBR文件通常每个时间段变化一数据量。 在这些情况下,媒体文件108通常将对于较复杂的文件段具有较高的比特率而 对于较不复杂的段具有较低的比特率。这通常导致非线性的字节偏移量时刻 比。

因为媒体文件108通常是压缩的,所以这些文件通常利用关键帧结构。用 该结构构建的文件通常包括“关键帧”的集合,该集合中的每一个关键帧都是 可自解码的自包含视频帧。同时,“增量帧”等通常将驻留在关键帧之间。这 些增量帧包括关于自前导帧的改变的信息。由此,增量帧依赖于前导关键帧以 及可能其间的任何前导增量帧。虽然媒体文件108可包括该关键帧结构,但这 些文件还可包括任何其他压缩和/或非压缩结构。

返回到图1,计算设备102可从媒体服务器104渐进地下载、流传输或以 其他方式获取一个或多个媒体文件108。虽然环境100示出了计算设备102, 但可类似地采用能够获取和播放媒体文件的任何其他设备。例如,操作环境可 采用视频游戏控制台、个人计算机、膝上型计算机、移动电话、便携式媒体播 放器(例如,数字音频播放器或便携式视频播放器)等。

图1还示出计算设备102耦合到控制器110以及显示器112。控制器119 使得用户能够向计算设备102提供输入命令。例如,如果计算设备102播放一 电影,则用户可经由控制器110来请求该设备查找至该电影的所需时刻。同时, 显示器112可输出视频以及可能该电影的音频信号。除了显示器112之外,计 算设备102还可耦合到其他输出设备,诸如扬声器等。

如图所示,计算设备102包括用于播放媒体文件的媒体播放器114以及用 于存储媒体文件的存储器116。图1描绘存储器116当前包含媒体文件120的 一部分118。在某些情况下,媒体文件120包括视频,诸如电影、电视节目等。 在其他情况下,媒体文件120可包括音频文件、视频文件、多媒体文件或各种 其他类型的媒体文件。

在该图示中,计算设备102在从媒体服务器104下载或流传输具有特定总 文件大小122的媒体文件120的过程中。在图1所示的时刻,媒体播放器114 由此可播放媒体文件120中当前驻留在存储器116中的部分118。然而,在播 放部分118之前,媒体播放器114首先可验证当前下载或流传输速率将很可能 导致在该媒体播放器到达该文件的末尾之前将文件120全部存储在存储器116 中。

如图所示,媒体播放器114包括文件源124、音频解码器126、视频解码 器128、音频呈现130和视频呈现132。合并起来,这些组件通常定义用于读 取和播放特定类型的媒体文件的“音频/视频流水线”。文件源124是该流水线 的源。该组件读取媒体文件120中的数据样本并将该样本的各部分分散(splay) 到相应的解码器。

音频解码器126和视频解码器128分别接收数据样本的音频和视频部分以 解码该样本以便输出。最后,音频呈现130和视频呈现132接收已解码的样本 并且或者输出音频和视频部分本身或者将这些部分传递给输出设备,诸如显示 器112和/或扬声器。

文件源124通常处理查找至媒体文件120中的所需时刻的请求。特别要注 意的是,短语“所需时刻”包括由用户或其他请求者指定的确切时刻,或接近 该确切时刻的时刻(例如,确切指定时刻减去等于关键帧之间的最大距离的时 间间隔)两者。在任何情况下,响应于查找至“所需时刻”的请求,文件源124 都确定对应于所需时刻的位置(例如,字节偏移量)再将开始于该位置的数据 样本传递给解码器。如果媒体文件120的部分118包括索引,则文件源124使 用该索引来查找对应于所需时刻的位置。然而,如果媒体文件120是其中索引 驻留在文件末尾的容器格式(例如,ASF),则部分118很可能不包括索引。 在这些情况下,文件源124通常将自己计算位置。

为了计算诸如字节偏移量等对应于所需查找时刻的位置,文件源124包括 读取器134和查找器136,后者包含查找表138。响应于接收到查找至媒体文 件120的所需时刻的请求,查找器136开始迭代地计算估算的字节偏移量,该 估算的字节偏移量估算出文件120中的所需时刻的字节偏移量。在计算出每一 个估算的字节偏移量后,查找器136通常将该值传递给读取器134。

响应于接收到估算的字节偏移量值,读取器134经由字节流140从存储器 116中的媒体文件120中拉取在该字节偏移量处的数据样本。在拉取该数据样 本后,读取器134将该样本传递给查找器136。查找器136然后读取标识应播 放数据样本的实际时刻的、与该数据样本相关联的首部。如果媒体文件120是 VBR文件,则该实际时刻通常不同于指定的所需查找时刻。查找器136因此 将包括字节偏移量值和对应的实际时刻的现在已知的数据点存储在查找表138 中。查找器136然后可使用该已知数据点来计算所需查找时刻的第二估算的字 节偏移量。

在查找器136定位了一般对应于所需查找时刻的字节偏移量之后,或者在 达到迭代阈值时,文件源124开始沿流水线向下传递数据样本。如果媒体文件 120包括视频,则该视频在显示器112上在所需查找时刻处或在其附近开始播 放。说明性环境100由此使得用户能够在媒体文件120渐进地下载或流传输的 同时准确地查找至所需查找时刻。

说明性迭代过程

图2-3示出了说明性过程200,该过程用于渐进地下载或流传输文件,接 收查找至文件的所需时刻的请求,定位对应于该所需时刻的位置以及在该所需 时刻处或其附近播放文件。过程200(以及以下所讨论的其他过程)被示为逻 辑流程图中的动作集合,该动作集合表示可用硬件、软件或其组合来实现的操 作序列。在软件的上下文中,动作表示在由一个或多个处理器执行时执行所述 操作的计算机可执行指令。

过程200开始于动作202,那时计算设备102开始从媒体服务器104流传 输或渐进地下载媒体文件120。动作204表示在计算设备102流传输或下载该 文件时,作出查找至所需时刻(T所需)的请求。该请求可经由控制器110从计 算设备102的用户发出。然而,该请求还可从媒体播放器114本身发出。例如, 想象用户之前开始播放媒体文件120稍后又停止该文件。之后的某一时刻,用 户继续播放媒体文件120,尽管该文件的下载尚未完成。在这种情况下,媒体 播放器114可被配置成在用户停止该文件的时刻继续播放该文件。媒体播放器 114因此可自己请求查找至用户停止文件的时刻(T所需)。

同样,短语“所需时刻”包括由用户或其他请求者(例如,媒体播放器 114)指定的确切时刻,或者接近该确切时刻的时刻(例如,确切指定时刻减 去等于关键帧之间的最大距离的时间间隔)两者。在某些情况下,计算设备102 可能希望查找至稍微比所指定的确切时刻小的时刻,并因此所需时刻将接近所 指定的确切时刻。在其他情况下,计算设备102可能改为希望查找至等于或稍 微大于确切指定时刻的时刻。

查找至稍微小于确定指定时刻的时刻可用于确保媒体播放器114在确切 指定时刻处或在其之前开始播放文件。例如,当媒体文件120利用关键帧结构 时,所需查找时刻可等于确切指定时刻减去关键帧之间的时间间隔(例如,对 于ASF文件是8秒)。通过减去关键帧,媒体播放器114可开始定位和丢弃 增量帧直到发现关键帧。此时,媒体播放器114可解码关键帧以及前导增量帧。 媒体播放器114然后可在实际解码之前丢弃位于确切指定时刻之前的已解码的 帧并播放对应于该确切指定时刻的帧。媒体播放器114还可在确切指定时刻之 前开始播放。当然,注意,在某些情况下也可使用小于或大于单个关键帧距离 的指定时间间隔。

在任何情况下,在接收到查找至所需时刻的请求之后,在某些情况下媒体 播放器114可考虑计算设备102是否将很可能在媒体播放器114到达文件末尾 之前完成下载或流传输该文件。如果媒体播放器114确定该条件由于T所需在媒 体文件120中太远而未被满足,则动作206表示媒体播放器114可禁止该查找。 然而,如果满足该条件,则过程200继续至动作208。相反,媒体播放器114 还可在确定T所需在媒体文件120中是否会太远之前等待直到迭代查找过程完 成。

假设媒体播放器114允许所需查找,动作208表示查找器136计算媒体文 件120的总比特率(例如,比特率)。为了进行这一计算,查找器136通常 参考查找表138。此时,查找表138很可能只包含两个数据点:对应于零时的 零位置,以及对应于文件结束时刻(T)的位置(例如,字节偏移量)。查 找表138很可能从媒体文件120中的首部中发现指定该文件的大小和长度的第 二数据点。查找表138由此很可能在下载或流传输过程开始时或在该时刻附近 发现该第二数据点。在使用这两个已知数据点的情况下,查找器136可使用以 下等式来计算比特率

比特率=[(字节偏移量-0)/(T-0)]*8(1)

在计算出总比特率之后,动作208还表示查找器136可计算对应于T所需的第一估算位置(例如,字节偏移量1)。为此,查找器136可利用以下等式:

字节偏移量1=比特率*T所需*0.125(2)

动作210表示查找器136然后可指示读取器134从存储器116中取得(经 由字节流140)位于字节偏移量1的数据样本。在查找器135从读取器212接 收到数据样本之后,动作212表示查找器136提取在字节偏移量1处的数据样 本指定应显示该数据样本的实际时刻(T1)。在动作214,查找器136将该现 在已知的数据点(T1、字节偏移量1)存储在查找表138中。

在用第一估算时刻发现了第一估算位置后,过程200可继续使用该数据点 来计算第二估算位置和对应的第二估算时刻。如图所示,过程200继续至动作 216,其表示查找器136使用新数据点来计算另一比特率(例如,比特率2)。 动作216还表示查找器136可使用该新比特率来计算另一位置(例如,字节偏 移量2)。计算该新比特率和位置的两个说明性过程以下分别参考图4-6和7-9 来描述。

一旦已计算出比特率2和字节偏移量2,动作218表示读取器134经由字 节流140来取得在字节偏移量2处的数据样本。在动作220,查找器136提取 该数据样本指定应显示它的实际时刻(T2)。类似于动作214,在动作222, 查找器136将该新数据点(T2、字节偏移量2)存储在查找表138中。

同时,动作224表示动作216到222重复直到对应于估算出的字节偏移量 的估算时刻和T所需之间的时间在指定的容许范围内,或者直到达到迭代阈值。 在某些情况下,该指定的容许范围可被设为媒体文件120的关键帧之间的最大 距离(例如,8秒)。同时,该迭代阈值可包括最大迭代次数(例如,四次) 或任何其他可配置阈值。最后,动作226表示媒体播放器114最终将在通常在 T所需处或在其附近的时刻开始播放媒体文件120。播放开始时刻可能恰好或大 约等于请求者指定的时刻。

通过将所需查找时刻包括在内来迭代地定位对应于所需查找时刻的位置

在讨论了通用过程200后,本节描述了迭代地定位对应于所需查找时刻的 位置的具体且非限制性的实现。该特定实现利用将所需查找时刻包括在内的已 知数据点。虽然本节将位置作为字节偏移量来讨论,但也可利用其他位置度量。

首先参考图4,其示出了来自图1的媒体文件120的说明性属性。图4示 出媒体文件120具有在时刻0处的字节偏移量0,以及在时刻T处的字节偏 移量。同样,这两个数据点一般在计算设备102开始下载或流传输媒体文件 120时或在该时刻附近知晓。图4还示出总比特率(比特率)延伸该文件的长 度,而比特率0-T1从时刻0延伸到所确定的时刻T1。注意,用于计算比特率0-T1的时刻将所需查找时刻(T所需)包括在内。最后,图4示出字节偏移量1对应 于T1。如上所述,T1通常从在字节偏移量计算出处采集的数据样本中提取。

记住该对媒体文件120的说明,现在参考图5-6。这些附图示出用于定位 文件中对应于所需查找时刻的位置的说明性迭代过程500,该迭代过程利用将 所需时刻包括在内的两个已知数据点。

过程500开始于动作502,在那里接收查找至所需时刻(T所需)的请求。 同样,该所需时刻可对应于确切指定时刻,或某一近似时刻(例如,该确切指 定时刻减去关键帧之间的时间间隔)。同时,动作504将计数“N”设为等于 1。在动作506,计算整个媒体文件120的总比特率(比特率)。对该比特率 的计算已在上文中参考等式一讨论。同时,动作508计算对应于T所需的第一估 算的字节偏移量(字节偏移量N)。同样,该计算在上文中参考等式二讨论。 同样如上所述,动作510从在字节偏移量N处的数据样本中提取实际时刻(TN) 并且然后将该数据点(TN、字节偏移量N)存储在查找表138中。

在确定第一TN后,动作512查询TN和T所需之间的时间是否小于指定的容 许范围。该动作还查询是否达到迭代阈值。如果动作512肯定地回答这些查询 中的任一个,则动作514在时刻TN或T所需处开始播放媒体文件120。如上所 述,动作514可丢弃位于对应于T所需的数据样本之前的数据样本(或者位于请 求者指定的时刻之前的样本),此时动作514可开始播放该文件。相反,动作 514可在TN(或者之后的下一关键帧)处开始播放该文件。

然而,如果动作512否定地回答所示的两个查询,则过程500继续至动作 516。在动作516,计数“N”更新1,以使得N在当前示例中现在等于2。接 着,动作518表示计算对应于最接近地将T所需包括在内的两个已知数据点的下 一比特率(比特率N)。

为了计算这一比特率,动作518本身包括若干动作。首先,动作520查询 对应于最后一次迭代的时刻(TN-1)是大于还是小于T所需。如果大于T所需,则 动作522计算TX和TN-1之间的比特率。注意,TX表示T0和T所需之间最接近T 所需的已知数据点。还注意,TX具有对应的字节偏移量字节偏移量X。记住这点, 以下公式表示对该比特率的计算:

比特率N=[(字节偏移量N-1-字节偏移量X)/(TN-1-TX)]*8 (3)

对于这次迭代(N=2),数据点T0、字节偏移量0(即,0、0)实际上将 分别表示TX和字节偏移量X。同样,查找表138在该时刻很可能只包含三个数 据点,其中两个对应于文件的开头和末尾。

返回到判定框520,如果TN-1小于T所需,则动作524计算TN-1和TY之间 的比特率。同样注意,TY表示T所需和T之间最接近T所需的已知数据点。还注 意,TY具有对应的字节偏移量字节偏移量Y。以下等式表示对该比特率的计算:

比特率N=[(字节偏移量Y-字节偏移量N-1)/(TY-TN-1)]*8 (4)

对于这次迭代(N=2),注意,数据点T、字节偏移量实际上将分别 表示TY和字节偏移量Y。同样,查找表138在该时刻很可能只包含三个数据点, 其中两个对应于文件的开头和末尾。

在计算出对于这次迭代(N=2)的比特率后,动作526计算对应于T所需的估算的字节偏移量(字节偏移量N)。如果比特率N根据以上等式三来计算, 则字节偏移量N可以用以下等式来计算:

字节偏移量N=[比特率N*(T所需-TX)]*0.125+字节偏移量X(5)

然而,如果比特率N根据以上等式四来计算,则字节偏移量N可以用以下 等式来计算:

字节偏移量N=[比特率N*(T所需-TN-1)]*0.125+字节偏移量N-1(6)

在现在计算出对于这次迭代(N=2)的字节偏移量后,动作528从在字 节偏移量N处的数据样本中提取实际时刻(TN)。动作528然后将该数据点(TN、 字节偏移量N)存储在查找表138中。动作530然后查询TN和T所需之间的时 间是否小于指定的容许范围。该动作还查询是否达到迭代阈值。如果动作530 肯定地回答这些查询中的任一个,则动作532停止迭代并在等于或近似TN或T 所需(例如,请求者指定的时刻)的时刻处开始播放媒体文件120。然而,如果 动作530否定地回答这两个查询,则动作534指示重复动作516和526到530。

过程500由此计算出将所需查找时刻包括在内的最接近的已知数据点之 间的比特率。使用每一个计算出的比特率,可计算出对应于所需查找时刻的估 算的字节偏移量,此时可从媒体文件120中提取对应于该字节偏移量的实际时 刻。通过继续使用跨越所需查找时刻的数据点,估算的字节偏移量通常将接近 对应于该所需查找时刻的实际字节偏移量。过程500由此使得媒体播放器114 能够在不使用指定所需查找时刻在媒体文件120中的位置的索引的情况下准确 地查找至所需查找时刻。

使用头比特率和尾比特率来迭代地定位对应于所需查找时刻的位置

该节描述了迭代地定位所需查找时刻的另一具体且非限制性实现。然而, 该具体实现利用从媒体文件120中的已知数据点计算的头比特率和尾比特率。 同样,虽然本节将位置作为字节偏移量来讨论,但也可利用其他位置度量。

首先参考图7,其示出了来自图1的媒体文件120的说明性属性。图7描 绘了类似于图4所描绘的属性的属性,加上头比特率和尾比特率。如图所示, 媒体文件120被示为包括在T0和T1之间计算出的头比特率(比特率)。媒体 文件120还被示为包括在T1和T之间计算出的尾比特率(比特率)。

一般而言,头比特率被定义为第一已知数据点(T、字节偏移量)和比该 第一已知数据点更接近文件开头的第二已知数据点之间的比特率。例如,参考 图7,其示出了一次对应于T1的所需位置估算(字节偏移量计算出)之后的媒体 文件的属性。因为在该图示中只生成了第一估算,所以查找表138很可能存储 以下三个数据点:对应于文件开头的数据点(0、0)、对应于第一估算的数据 点(T1、字节偏移量计算出)以及对应于文件末尾的数据点(T、字节偏移量)。 在这种情况下,从T1计算的头比特率通常测量T1和T0(0)之间的比特率,T0(0) 此时是比T1更接近文件开头的唯一已知数据点。

在某些情况下,头比特率可在第一已知数据点和第二已知数据点之间计 算,该第二已知数据点是更接近文件开头的所有已知数据点中最接近该第一已 知数据点的已知数据点。再次参考图7,从T1计算的头比特率在这些情况下同 样将测量T1和T0之间的比特率。然而,如果T0和T1之间存在已知数据点, 则自T1的头比特率将在该已知数据点和T1之间计算。换言之,从特定数据点 计算的头比特率可测量该特定数据点和在文件开头的方向上下一个最接近的 已知数据点之间的比特率。

同时,尾比特率一般被定义为第一已知数据点和比该第一已知数据点更接 近文件末尾的第二已知数据点之间的比特率。再次参考图7,在仅三个数据点 是已知的时候,自T1的尾比特率可测量T1和T之间的比特率。在某些情况 下,尾比特率可在第一已知数据点和第二已知数据点之间计算,该第二已知数 据点是更接近文件末尾的所有已知数据点中最接近该第一已知数据点的已知 数据点。换言之,从特定数据点计算的尾比特率可测量该特定数据点和在文件 末尾的方向上下一个最接近的已知数据点之间的比特率。

在讨论了头比特率和尾比特率之后,现在参考图8-9,这两个附图描述了 用于定位文件中对应于所需查找时刻的位置的说明性迭代过程800。类似于过 程500,过程800开始于动作802接收查找至所需时刻(T所需)的请求。同样, 该所需时刻可对应于确切指定时刻,或某一近似时刻(例如,该确切指定时刻 减去关键帧之间的最大时间间隔)。

同时,动作804将计数“N”设为等于1。在动作806,计算整个媒体文 件120的总比特率(比特率)。对该比特率的计算已在上文中参考等式一讨 论。同时,动作808计算对应于T所需的第一估算的字节偏移量(字节偏移量N)。 同样,该计算在上文中参考等式二讨论。动作810然后从在字节偏移量N处的 数据样本中提取实际时刻(TN)并且然后将该数据点(TN、字节偏移量N)存 储在查找表138中。

在确定第一TN后,动作812查询TN和T所需之间的时间是否小于指定的容 许范围。该动作还查询是否达到迭代阈值。同样,如果动作812肯定地回答这 些查询中的任一个,则动作814在等于或近似TN或T所需的时刻处开始播放媒 体文件120。

然而,如果动作812否定地回答这两个询问,则过程800继续至动作816。 在动作816,计数“N”更新1,以使得N现在等于2。动作818然后计算自 TN-1的头比特率和尾比特率。为了计算这些比特率,可使用以下等式:

比特率=[(字节偏移量N-1-字节偏移量α)/(TN-1-Tα)]*8 (7)

比特率=[(字节偏β-字节偏移量N-1)/(Tβ-TN-1)]*8(8)

在以上等式中,注意,Tα对应于具有比TN-1更接近T0的已知字节偏移量 的所有时刻中最接近TN-1的时刻。还注意,Tα具有已知字节偏移量字节偏移量 α。另外,Tβ对应于具有比TN-1更接近T的已知字节偏移量的所有时刻中最接 近TN-1的时刻。Tβ同样具有已知字节偏移量字节偏移量β

在计算出自TN-1的头比特率和尾比特率之后,动作820查询TN-1是大于T 所需还是小于T所需。如果动作820确定是前者,则动作822使用计算出的头比特 率和尾比特率中较小的那个来计算估算的字节偏移量(字节偏移量N)。通过 使用该较小值,增加下一次迭代落在T所需的另一侧上的机会。由此,在估算出 的时刻大于T所需时选择较小值减少了毛刺(spiked)比特率将对迭代过程800 产生不利影响的可能性。

然而,如果动作820确定是TN-1小于T所需,则动作824使用计算出的头 比特率和尾比特率中较大那个来计算估算的字节偏移量(字节偏移量N)。同 样,通过在这些情况下使用该较大值,增加下一次迭代落在T所需的另一侧上的 可能性。由此,在估算出的时刻小于T所需时选择较大值减少了毛刺比特率将对 迭代过程800产生不利影响的可能性。

可使用以下等式来用头比特率或尾比特率计算估算的字节偏移量N

字节偏移量N=[比特率*(T所需-TN-1)]*0.125+字节偏移量N-1(9)

字节偏移量N=[比特率*(T所需-TN-1)]*0.125+字节偏移量N-1(10)

在对于这次迭代(N=2)计算出字节偏移量N后,动作826表示可从媒 体文件120中拉取在计算出的字节偏移量处的数据样本。然后可从该数据样本 中提取应显示该数据样本的实际时刻。动作826还表示然后可将该数据点(TN、 字节偏移量N)存储在查找表138中。

动作828同样查询TN和T所需之间的时间是否小于指定的容许范围。该动 作还查询是否达到迭代阈值。同样,如果动作828肯定地回答这些查询中的任 一个,则动作830停止迭代并且在等于或近似TN或T所需的时刻处开始播放媒 体文件120。然而,如果动作828否定地回答这些查询,则动作832指示返回 到动作816。

过程800由此计算出最接近的已知数据点之间的头比特率和尾比特率并 且确定应使用这两个比特率中的哪一个来计算下一字节偏移量。每一个计算出 的字节偏移量然后可用于确定对应于该字节偏移量的实际时刻。通过继续以此 方式获取数据点,估算的字节偏移量通常将接近对应于所需查找时刻的实际字 节偏移量。过程800由此使得媒体播放器114能够在不使用指定所需查找时刻 在媒体文件120中的位置的索引的情况下准确地查找至所需查找时刻。

结论

尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解, 所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体 特征和动作是作为实现权利要求的示例形式公开的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号