用于在多媒体内容中寻找帧的方法和设备与流程

文档序号:13596147阅读:192来源:国知局
用于在多媒体内容中寻找帧的方法和设备与流程

本发明涉及多媒体内容的播放。更具体地说,本发明涉及一种用于从多媒体内容中所包括的所有帧中寻找目标帧的方法和设备。



背景技术:

随着便携式多媒体播放装置已经得到发展并且它们的性能已经得到提高,具有高比特率的大容量多媒体内容(诸如高清视频、无损音频和其它类似的大容量媒体和多媒体内容)的便携消费已经得到增加。

编解码器可采用可变比特率,其允许基于帧的特征来对多媒体数据进行编码,从而提供最大压缩率并对于具有高比特率的大容量多媒体内容的每一帧确保高质量(例如,高清视频质量、高的声音质量等)。

但是,当基于可变比特率对多媒体数据进行编码时,帧的比特率不是固定的。因此,为了移动到(即,确定或选择)包括具有可变比特率的帧的多媒体内容的预定位置,会需要解析直到所述预定位置的所有帧。这种方案可被称为预滚动(pre-rolling)方案,当执行对预定位置处的帧进行的寻找时,所述预滚动方案对从第一帧直到位于想找的点处的帧的帧进行解析。尽管预滚动方案易于实现,但是在寻找期间解析的数据被丢弃,因此每一次执行寻找时,都从第一帧执行解析。因此,预滚动方案效率不高,并且在想找的点距离第一帧较远的情况下,性能会劣化。

为了克服上述缺点,可使用通过在解码之前解析所有帧来生成寻找表格的方案或者在编码期间生成寻找表格并将生成的寻找表格插入到文件格式中的方案。但是,由于大容量多媒体内容的增加,基于寻找表格的方案会包括诸如寻找时间缓慢、使用大量的存储器、寻找结果的准确度低等之类的问题。

根据用于在解码前生成寻找表格,从而从解析所有帧的方案降低开销的方案,在解码前,会需要对所有帧进行解析,并且会需要对寻找表格进行初始化。寻找表格的初始化会在解码期间导致大量的初始播放延迟,并且初始播放延迟会随着内容的量和播放时间的长度的增加而增加。

根据用于在编码期间生成寻找表格并将寻找表格插入到文件格式中,从而去除在解码操作期间生成寻找表格时发生的开销的方案,编码器的压缩率会劣化,因此,会生成有限数量的寻找表格。相应地,寻找表格会具有低准确度,因此,使用寻找表格的寻找操作的结果会不准确。此外,随着播放时间增加,准确度会劣化。另外,当在存储或流传输期间寻找表格被删除或被损坏时,基于寻找表格执行的寻找会无法实现。



技术实现要素:

本发明的各个方面旨在至少解决以上提到的问题和/或缺点,并至少提供下面描述的优点。因此,本发明的一方面是为了提供一种用于在多媒体内容中快速准确地寻找目标帧的方法和设备。

因此,本发明的另一方面是为了提供一种用于在不使用寻找表格的情况下在多媒体内容中快速准确地寻找目标帧的方法和设备。

根据本发明的一方面,提供一种多媒体内容帧寻找方法。所述方法包括:根据针对多媒体内容中的帧设置的平均比特率计算区段的平均比特率来设置目标帧的候选位置(所述目标帧对应于目标时间);通过基于候选位置逐渐减小平均比特率计算区段的大小来调整候选位置;将目标帧确定为具有以下开始时间的帧,其中,所述开始时间与目标时间的差在预定的可允许误差范围之内,其中,目标帧被从开始点最接近候选位置的帧中确定。

根据本发明的另一方面,提供一种多媒体内容帧寻找设备。所述设备包括:存储器,用于存储多媒体内容中的帧的数据;控制器,用于根据针对所述帧设置的平均比特率计算区段的平均比特率来设置对应于目标时间的目标帧的候选位置,通过基于候选位置逐渐减小平均比特率计算区段的大小来调整候选位置,将目标帧确定为具有以下开始时间的帧,其中,所述开始时间与目标时间的差在预定的可允许误差范围之内,其中,目标帧被从开始点最接近候选位置的帧中确定。

根据本发明的示例性实施例,提供一种在不必解析从多媒体内容的第一帧到目标帧的所有帧且不必使用寻找表格的情况下在多媒体内容中寻找目标帧的设备和方法。

根据本发明的示例性实施例,提供一种可不在编码期间将寻找表格插入到文件格式,并且可不使用在解码期间生成和初始化寻找表格所需的大量存储器,并由此可提高解码器的加载速度并且可快速准确地寻找目标帧的设备和方法。

通过下面结合附图公开本发明的的示例性实施例的详细描述,本发明的其它方面、优点和突出特征对于本领域技术人员将变得清楚。

附图说明

通过下面结合附图进行的描述,本发明的特定示例性实施例的上述和其它方面、特征和优点将变得更清楚,其中:

图1是示出包括根据本发明的示例性实施例的多媒体内容帧寻找设备的多媒体内容播放器的框图;

图2A和图2B是示出根据本发明的示例性实施例的多媒体内容帧寻找方法的流程图;

图3到图6F是示出根据本发明的示例性实施例的多媒体内容帧寻找方法的示例的示图。

在整个附图中,应当注意相同的附图标号被用来描述相同或类似的元件、特征和结构。

具体实施方式

提供参考附图的以下描述是为了有助于全面理解由权利要求及其等同物所限定的本发明的示例性实施例。以下描述包括各种有助于理解的具体细节,但这些细节将被认为仅仅是示例性的。因此,本领域的普通技术人员将认识到:在不脱离本发明的范围和精神的情况下,可对在本文中描述的实施例进行各种改变和修改。另外,为了清楚和简明,可省略对公知功能和构造的描述。

在下面的描述和权利要求中使用的术语和词语并不限于书面的含义,而仅仅是由发明人使用以能够对本发明有清晰和一致的理解。因此,本领域技术人员应清楚:下面对本发明的示例性实施例的描述是仅仅出于示例的目的而提供的,并不是为了限制本发明的目的,其中,本发明由权利要求及其等同物所限定。

应当理解,除非上下文清楚地另有指示,否则单数形式包括复数指示物。因此,例如,提及“组件表面”包括提及一个或多个这样的表面。

图1示出包括根据本发明的示例性实施例的多媒体内容帧寻找设备的多媒体内容播放器。

参考图1,控制器100可控制存储器102、解析单元104、解码器106、渲染器(renderer)108和输出单元110,从而控制多媒体内容播放器的功能。存储器102可存储将被图1的多媒体内容播放器播放的至少一个多媒体内容。解析单元104可读取存储在存储器102中的多媒体内容的数据,并且可解析读取的数据。解码器106可对由解析单元104解析的数据进行解码。渲染器108可渲染由解码器106解码的数据。为了输出由渲染器108渲染的音频数据、视频数据和其它数据,输入单元110可包括输出装置,诸如扬声器、显示器和其它类似的输出装置。

在下文中,针对控制器100来描述图1的多媒体内容播放器在多媒体内容中对帧进行寻找,其中,所述控制器100在存储器102中所存储的多媒体内容中执行帧的寻找。多媒体内容帧寻找设备可包括存储器102和控制器100。但是,本发明并不限于此,并且对帧的寻找可由解析单元104、或任何其它适合的元件、单元或项目代替控制器100来执行。

控制器100可从存储在存储器102中的多媒体内容的帧中寻找对应于目标时间的目标帧,其中,多媒体内容包括可变比特率的帧。目标时间可对应于由用户从全部播放时间中选择的播放时间,使得播放点被确定为所选择的播放时间。

控制器100可根据针对存储在存储器102中的多媒体内容的帧设置的平均比特率(ABR)计算区段的ABR,将候选位置确定为对应于目标时间的目标帧。控制器100还可通过基于候选位置逐渐缩小ABR计算区段来调整候选位置。在本示例性实施例中,控制器100可重复地调整候选位置,直到最接近候选位置的帧的开始时间与目标时间之间的差在可允许误差范围T之内为止。例如,可允许误差范围T可被确定为以下时间范围,在所述时间范围中,最接近候选位置的帧的开始时间被认为与目标时间类似,所述时间范围例如,0.1秒、0.5秒、1秒或任何其它适合的时间量的时间范围。可允许误差范围T可被预定。

在下文中,将描述通过控制器100来设置并调整候选位置。控制器100可将多媒体内容的全部数据设置为ABR计算区段。控制器100还可基于全部数据的ABR将离开全部数据的开始点有一定距离的位置设置为候选位置,其中,所述距离对应于与目标时间对应的数据大小。控制器100可从多媒体内容的全部数据的帧中寻找最接近当前设置的候选位置的帧,并且可将寻找到的帧的开始时间设置为候选时间。随后,控制器100可将目标时间与候选时间之间的差同可允许误差范围T进行比较。当目标时间与候选时间之间的差超出可允许误差范围T时,控制器100可将在当前设置的ABR计算区段中沿从目标时间到候选时间的方向排除了存在于候选位置外部的区段的剩余区段重新设置为ABR计算区段。因此,控制器100可基于重新设置的ABR计算区段的ABR来将当前设置的候选位置调整对应于目标时间与候选时间之间的差的数据大小。在如上文所述对候选位置进行调整后,控制器100可基于调整后的候选位置重复从设置候选时间的操作开始的操作。

控制器100可在开始点最接近如上文所述进行设置和调整的候选位置的帧中将目标帧确定为具有以下开始时间的帧,其中,所述开始时间与目标时间的差(即,时间量)在可允许误差范围T之内。

图2A和图2B示出根据本发明的示例性实施例的由控制器100执行的多媒体内容帧寻找方法。图2A和图2B通过参考符号A和B相互连接。图3到图6F示出根据本发明的示例性实施例的多媒体内容帧寻找方法的示例。

参考图2A和图2B,在步骤200中,控制器100可初始化用来寻找帧的变量,所述变量包括:左边界位置(LBP)、右边界位置(RBP)、左边界时间(LBT)和右边界时间(RBT)。LBP是ABR计算区段的开始点,RBP是ABR计算区段的结束点,LBT是ABR计算区段的开始时间,RBT是计算区段的结束时间。因此,LBT是对应于LBP的时间,RBT是对应于RBP的时间。

在步骤200中,控制器100可将LBP初始化为多媒体内容的全部数据的开始点,可将RBP初始化为多媒体内容的全部数据的结束点,可将LBT初始化为与多媒体内容的全部数据的开始点对应的开始时间,可将RBT初始化为与多媒体内容的全部数据的结束点对应的结束时间。多媒体内容的全部数据可基本上对应于将被播放的数据,而排除了可被置于多媒体内容的全部数据的前侧的各种附加信息或者数据。

接下来,在步骤202中,控制器100可基于等式1来计算ABR,并且可基于计算的ABR来设置与目标时间对应的目标帧的候选位置(POS),其中,目标时间可被称为目的时间(GT)。GT可对应于由用户从多媒体内容的全部播放时间中选择的播放时间,从而将播放点置于所选择的播放时间处。

ABR=RBP/RBT

POS=ABR×GT

……等式1

也就是说,控制器100可将要执行寻找的多媒体内容的全部数据300(参见图3)设置为ABR计算区段,并且可以基于等式1来计算全部数据300的ABR。

控制器100可根据等式1来设置POS。也就是说,离开全部数据300的开始点有一定距离的位置可被设置为POS,其中,所述距离对应于与GT对应的数据大小。POS可与对应于GT的目标帧的开始点相同。但是,由于POS是根据ABR确定的,因此POS出现在目标帧的开始点之前或之后的可能性较高。也就是说,POS可如图4A所示出现在GT之前,或者可如图5A所示出现在GT之后。

接下来,在步骤204中,控制器100可将数据读取指针移动到与存储在存储器102中的多媒体内容的全部数据300中的POS对应的位置。在步骤206中,控制器100可寻找开始点最接近数据读取指针的帧,并且可将寻找到的帧的开始时间设置为候选时间(CT)。

当POS位于寻找到的帧中时,寻找到的帧的开始点可与POS相同,或者寻找到的帧的开始点可与POS有很小的差。但是,由于最接近与POS对应的数据读取指针的帧被寻找到,因此寻找到的帧的开始点与POS之间的差可被忽视。因此,为了便于描述,如图4A到6F所示,描述为CT对应于POS,其中,图4A到图6F示出由控制器100执行的多媒体内容帧寻找方法的示例。

可通过解析或计算寻找到的帧来获得在步骤206中寻找到的帧的开始时间。由于与帧相关并被包括在帧的头中的信息可根据多媒体内容的文件格式而变化,因此获得寻找到的帧的开始时间的方案可根据多媒体内容的文件格式而变化。

包括在多媒体内容的帧的头中的信息可以是例如帧编号,诸如基于免费无损音频编解码器(FLAC)的文件格式。当包括在帧的头中的信息是帧编号时,所述帧编号可指示所述帧在包括在多媒体内容中的所有帧中的顺序编号。可通过将比对应于帧编号的帧的数量少一的数量乘以用于对一个帧进行编码的采样的数量来计算在寻找到的帧之前的所有帧的采样的数量。另外,可通过将所有帧的采样的数量除以采样率来计算寻找到的帧的开始时间。

作为另一示例,包括在多媒体内容的帧的头中的信息可以是例如基于Ogg Vorbis(OGG)的文件格式的采样编号。当包括在帧的头中的信息是采样编号时,所述采样编号可指示与多媒体内容相关的所有编码采样中的对应于所述帧的采样的顺序编号。可通过将对应于采样编号的采样的数量除以采样率来计算寻找到的帧的开始时间。

此外,包括在多媒体内容的帧的头中的信息可以是时间信息。例如,所述时间信息可指示从多媒体内容的开始时间到所述帧的开始时间所经过的时间。包括在寻找到的帧的头中的时间信息可对应于寻找到的帧的开始时间,因此,可不需要用于确定开始时间的单独计算。

在步骤206之后,控制器100可在步骤208中将CT与GT之间的差的绝对值同可允许误差范围T进行比较。当所述差小于可允许误差范围T时,控制器100可进行到步骤224,以便确定对应于CT的帧是目标帧。否则,如图2B中所示,控制器100可进行到步骤210。

在步骤210中,控制器100可比较CT和GT。当如图4A所示,CT小于GT时,控制器100可进行到步骤212。当CT大于GT时,控制器100可进行到步骤218。

在步骤212中,可基于等式2来调整当前设置的POS。

ABR=(RBP-POS)/(RBT-CT)

Difference=ABR×(GT-CT)

POS=POS+Difference

……等式2

在等式2中,ABR表示平均比特率,POS表示候选位置,GT表示目标时间,CT表示候选时间,RBP表示ABR计算区段的结束点,RBT表示ABR计算区段的结束时间,Difference表示基于ABR计算区段的ABR的对应于GT与CT之间的差的数据大小。

对于步骤212,当在步骤210中的比较结果示出CT小于GT时,也就是说,当POS存在于GT之前时,如图4A所示,ABR计算区段可被重新设置为在RBP与POS之间,并且可在步骤212基于等式2来针对RBP-POS计算ABR。可通过将GT与CT之间的差乘以RBP-POS的ABR来计算对应于GT与CT之间的差的数据大小的Difference。因此,可基于等式2,通过将计算的Difference与当前设置的POS相加来调整POS。也就是说,可根据等式2将POS调整Difference,其中,Difference对应于GT与CT之间的差的数据大小。

在步骤212之后,控制器100可在步骤214中确定是否更新LBP和LBT。更详细地说,控制器100可确定POS是否大于LBP或者CT是否大于LBT,并且如果有一项为真,那么在图2的步骤216中,如图4B所示,控制器100可使用POS的值来更新LBP,并且可使用CT的值来更新LBT。在步骤216之后,控制器100可返回到图2A的步骤204。当控制器100在步骤214中确定POS小于LBP时,那么控制器100跳过步骤216并返回步骤204。另外,当控制器100确定CT小于LBT时,那么控制器100跳过步骤216并返回步骤204。在本示例性实施例中,CT是对应于POS的时间,LBT是对应于LBP的时间,因此,可如在步骤214中所确定的根据POS是否大于LBP或根据CT是否大于LBT来确定是否要更新LBP和LBT。

在步骤218中,可根据等式3来调整当前设置的POS。

ABR=(POS-LBP)/(CT-LBT)

Difference=ABR×(CT-GT)

POS=POS-Difference

……等式3

在等式3中,ABR表示平均比特率,POS表示候选位置,GT表示目标时间,CT表示候选时间,LBP表示ABR计算区段的开始点,LBT表示ABR计算区段的开始时间,Difference表示根据ABR计算区段的ABR的对应于GT与CT之间的差的数据大小。

在步骤218中,当在步骤210中的比较结果显示出CT大于GT时,也就是说,当如图5A所示POS存在于GT之后时,那么如图5A所示,ABR计算区段可被重新设置为在POS与LBP之间。因此,在步骤218中,可根据等式3针对POS-LBP来计算ABR。如等式3中所示,可通过将GT与CT之间的差乘以RBP-POS的ABR来计算与GT与CT之间的差的数据大小对应的Difference,并且可通过从当前设置的POS减去计算的Difference来调整POS。也就是说,可将POS调整与GT与CT之间的差的数据大小对应的Difference。

在步骤218之后,控制器100可在步骤220中确定是否更新RBP和RBT。更详细地说,控制器100可确定POS是否小于RBP或CT是否小于RBT。如果POS小于RBP或者如果CT小于RBT,那么,在步骤222中,控制器100可使用POS的值来更新RBP并且可使用CT的值来更新RBT。在执行步骤222之后,控制器100可返回到步骤204。但是,当控制器100在步骤220中确定POS大于RBP时,控制器100可跳过步骤222,而返回到步骤204。另外,当控制器100确定CT大于RBT时,控制器100可跳过步骤220并返回步骤204。在本示例性实施例中,CT是对应于POS的时间,RBT是对应于RBP的时间,因此,可在步骤220中通过确定POS是否小于RBP或者通过确定CT是否小于RBT来确定是否要更新RBP和RBT。

因此,当GT与CT之间的差超出可允许误差范围T时,在步骤210到步骤222中,控制器100可将在当前设置的ABR计算区段中沿从GT到CT的方向排除了存在于POS外部的区段的剩余区段重新设置为ABR计算区段。另外,控制器100可基于重新设置的ABR计算区段的ABR,将当前设置的POS调整与GT与CT之间的差的数据大小对应的Difference,并且可返回到步骤204,以便基于调整后的POS重复从设置CT的步骤开始的步骤。

因此,当在步骤202中设置的POS与对应于GT的目标帧的开始点不同时,即,当POS如图4A所示存在于GT之前,或者如图5A所示存在于GT之后时,步骤204到步骤222可被重复地执行,因此,可寻找到对应于CT的POS,其中,所述CT与GT之间的差在可允许误差范围T之内。

图6A到图6F示出设置和调整POS的示例。图6A示出在图2A的步骤202中针对全部数据300来设置ABR计算区段。图6B到图6F示出根据步骤204到步骤222,POS被调整从而对应于CT,其中,CT与GT的差在可允许误差范围T之内,并且POS位于与GT对应的目标帧的开始点。

图6B示出基于全部数据300(参见图6A)的ABR所设置的对应于POS的CT存在于GT之前的情况。ABR计算区段被重新设置为从RBP到POS。因此,图6B的重新设置的ABR计算区段可小于图6A的ABR计算区段。

图6C示出由于ABR计算区段被重新设置为如图6B所示,因此图6B的POS和CT被更新为LBP和LBT的情况。另外,基于重新设置的ABR计算区段的ABR的对应于POS的CT存在于GT之后,其中,ABR计算区段被重新设置为从POS到LBP。在图6C中,CT与GT之间的差小于在图6B中找到的差,并且图6C的重新设置的ABR计算区段小于图6B的重新设置的ABR计算区段。

图6D示出因为ABR计算区段被重新设置为如图6C所示,因此图6C的POS和CT被更新为RBP和RBT的示例。另外,基于图6C的重新设置的ABR计算区段的ABR的对应于POS的CT存在于GT之后,其中,ABR计算区段被重新设置为从POS到LBP。这里,在图6D中,尽管对应于POS的CT存在于GT之后,但是CT与GT之间的差小于在图6C中的这样的差,并且重新设置的ABR计算区段小于图6C的重新设置的ABR计算区段。

图6E示出因为ABR计算区段被重新设置为如图6D所示,因此图6D的POS和CT被更新为RBP和RBT的示例。另外,基于图6C的重新设置的ABR计算区段的ABR的对应于POS的CT存在于GT之前,其中,ABR计算区段被重新设置为从RBP到POS。这里,在图6E中,尽管对应于POS的CT存在于GT之前,但是CT与GT之间的差小于在图6D中的这样的差,并且重新设置的ABR计算区段小于图6D的重新设置的ABR计算区段。

图6F示出通过在图6B到图6D中描述的操作,POS被调整为对应于CT的POS的示例,其中,所述CT与GT之间的差在可允许误差范围T之内。因此,POS位于与GT对应的目标帧的开始点。

如上文中参考图6A到图6F所描述的,控制器100可基于ABR计算区段的ABR来设置与对应于GT的目标帧相关的POS,其中,针对存储在存储器102中的多媒体内容中的帧来设置所述ABR计算区段。另外,控制器100可基于图2A和图2B的步骤200到步骤222通过逐渐缩小ABR计算区段来调整POS。在本示例性实施例中,POS的调整被重复地执行,直到GT与CT之间的差处于预定的可允许误差范围T之内为止,其中,CT对应于最接近POS的帧的开始时间。

当在图2A的步骤208中的比较结果显示出CT与GT之间的差小于可允许误差范围T时,控制器100可在步骤218中将对应于CT的帧确定为目标帧,并且可完成目标帧的寻找。

尽管示例性实施例描述了在包括具有可变比特率的帧的多媒体内容中寻找帧,但是本发明并不限于此,并且本发明可应用于在包括具有恒定比特率的帧的多媒体内容中寻找帧。尽管示例性实施例描述了控制器100在多媒体内容中执行帧的寻找,但是本发明并不限于此,解析单元104或任何其它适合的单元或元件都可代替控制器100来执行帧的寻找。在这种情况下,解析单元104或任何其它适合的单元或元件可起到控制器的作用,以控制在多媒体内容中的帧的寻找。此外,在多媒体内容播放器的控制器包括解析单元的情况下,在多媒体内容中的帧的寻找可由包括解析单元的控制器来执行。

上述的本发明的示例性实施例可实现为硬件、或硬件和软件的组合。软件可无论以擦除还是重写方式被存储在易失性或非易失性非瞬时存储装置(诸如只读存储器(ROM)和随机存取存储器(RAM))中,或者被存储在能够执行光或磁记录和机械读取的存储介质(诸如压缩盘(CD)、数字通用盘(DVD)、光盘、磁盘等)中。可被包括在装备有多媒体内容播放器的移动终端中的存储器可以是机器可读非瞬时存储介质的示例,其中,所述机器可读非瞬时存储介质适合于存储包括用于实现示例性实施例的指令的程序或多个程序。因此,本发明的示例性实施例可包括程序以及包括所述程序的机器可读非瞬时存储介质(例如计算机可读非瞬时存储介质),其中,所述程序包括用来实现在本说明的权利要求中所要求的设备或方法的代码。所述程序可通过诸如通过有线或无线连接传输的通信信号的介质来电传输。

根据本发明的示例性实施例的多媒体内容帧寻找方法可被制造为程序,从而被存储在可以是非瞬时存储介质的存储介质中。配备有多媒体内容播放器的移动终端可通过从程序供应服务器将程序安装或下载到控制应用来执行所述程序,并可使用所述程序来在多媒体内容中寻找帧。当将被用于在多媒体内容中寻找帧的程序被安装到移动终端时,可在移动终端中执行所述程序,并且所述程序可提供在多媒体内容中寻找帧的服务,其中,所述多媒体内容可被存储在移动终端中。程序供应服务器可从移动终端接收对程序的请求,并且可响应于请求将程序发送到移动终端。程序服务器可额外执行对请求发送程序的移动终端是否是服务的订户的确定、用户授权、支付确认和其它类似操作。程序供应服务器可包括存储所述程序的存储介质。此外,存储介质可被包括在程序供应服务器中,或存在于程序供应服务器的外部。

虽然已经参照本发明的特定示例性实施例显示和描述了本发明,但是本领域技术人员将理解,在不脱离由权利要求及其等同物所限定的本发明的精神和范围的情况下,可在其中进行形式和细节上的各种改变。

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