CN103179447B - 在数字电视时移中优化磁盘空间利用率的方法及装置 - Google Patents
在数字电视时移中优化磁盘空间利用率的方法及装置 Download PDFInfo
- Publication number
- CN103179447B CN103179447B CN201110430918.6A CN201110430918A CN103179447B CN 103179447 B CN103179447 B CN 103179447B CN 201110430918 A CN201110430918 A CN 201110430918A CN 103179447 B CN103179447 B CN 103179447B
- Authority
- CN
- China
- Prior art keywords
- time
- time shift
- disk
- shift
- disk space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明提供了一种在数字电视时移中优化磁盘空间利用率的方法及装置,在录制时移节目的过程中,如果当前已录制的时移节目的时长已超过设定的最大时移时间,并且当前所接收到的传输流的流比特率小于平均流比特率,则删除录制时间最久的时移节目,以释放多余的磁盘碎片,并将新录制的时移节目覆盖当前文件中最久录制的时移节目。应用本发明能够根据需要动态改变时移节目所占用的磁盘空间大小,从而避免磁盘空间不足时磁盘空间利用率低的问题。
Description
技术领域
本发明涉及数字电视技术,特别涉及在数字电视时移中优化磁盘空间利用率的方法及装置。
背景技术
数字电视中的“时移”是指将节目录制在存储器中供将来使用。观众在观看数字电视节目时,可以随时按暂停或快退/快进键,也可以选择几天前的电视节目进行观看。
现有技术中,比较常见的是由网络电视提供时移功能,其主要实现位于服务器端,可以参考申请号为“200610147769.1”,发明名称为《一种具有时移功能的直播服务器及实现方法》的中国发明专利申请,以及申请号为“200510111252.2”,发明名称为《一种网络互动电视系统实现时移功能的方法》的中国发明专利申请。这种类型的时移方案主要由广电服务提供商采用,特点是由服务器端屏蔽了复杂度,客户端可以跳转至任意感兴趣的区域。
目前,也出现了一些由电视端提供时移功能的技术方案,即由电视端将一定时间范围内的数据录制于本地以提供给用户作时移使用。在时移策略上主要有以下两种:
第一种:定时间定空间
根据当前码流,假设一个码率上限,据此计算出当前磁盘可以录制多长时间的节目,然后就在设定好的空闲磁盘空间上录制节目直到占满磁盘空间,同时提供给上层的可播放的数据是固定。
这种方法的缺点有:1)没有合理利用空间,该方法是基于所假设的码率上限来计算可以录制多长时间的节目,而如果按实际码率进行计算可能在当前空间下可以给上层提供更多时间的时移内容;2)如果此时有其它应用占据磁盘空间,就可能导致时移内容达不到当初设定的时长。
第二种:定时间不定空间
在公开号为“CN101146196A”,发明名称为《控制时移存储空间的方法和设备及使用其的电视接收机》的中国发明专利申请中,当时移实例需要增加空间时,就为其分配更多的空间。但当时移实例不需要那么多空间的情况下,并不会主动释放多余的空间。
在公开号为“US2006171658A1”,发明名称为“Usetrimmoduletodeletetheoldestdata”的美国专利申请中,增加了剪切文件模块,复杂化了文件操作。在写入新录制数据的同时剪切掉过期数据,而通常时移过程是将新录制数据覆盖过期数据,多出来的剪切功能会降低时移性能。
上述现有技术方案没有考虑如何在磁盘空间不足的情况下更加合理地利用磁盘空间,并与其他应用合理共存。并且,上述现有技术都是针对单个调谐器(Tuner)作时移,而随着越来越多的双调谐器硬件的普及,需要在两个或者两个以上调谐器的情况下提供时移功能。
发明内容
本发明提供了一种在数字电视时移中优化磁盘空间利用率的方法及装置,以根据需要动态改变时移节目所占用的磁盘空间大小,避免磁盘空间不足时磁盘空间利用率低的问题。
本发明提供的一种在数字电视时移中优化磁盘空间利用率的方法,包括:
在录制时移节目的过程中,如果当前已录制的时移节目的时长已超过设定的最大时移时间,并且当前所接收到的传输流的流比特率小于平均流比特率,则删除录制时间最久的时移节目,以释放多余的磁盘碎片,并将新录制的时移节目覆盖当前文件中最久录制的时移节目;
其中,最大时移时间是已录制的时移节目能够存储在磁盘中的最大时长。
该方法可以进一步包括:
如果当前已录制的时移节目的时长已超过设定的最大时移时间,且当前所接收到的传输流的流比特率大于等于平均流比特率,则判断新录制的时移节目是否会覆盖最大时移时间内的时移节目,如果不会覆盖,则将新录制的时移节目覆盖当前文件中最久录制的时移节目,如果会覆盖,则判断是否存在空闲磁盘空间,如果存在,申请新的磁盘碎片用于存储新录制的时移节目,如果不存在,将新录制的时移节目覆盖当前文件中最久录制的时移节目;
如果当前已录制的时移节目的时长未超过设定的最大时移时间,则判断是否存在空闲磁盘空间,如果存在,申请新的磁盘碎片用于存储新录制的时移节目,如果不存在,将新录制的时移节目覆盖当前文件中最久录制的时移节目。
当同时有多个时移实例正在进行时移节目录制时;
该方法可以进一步包括:预先为所述多个时移实例设置获取磁盘空间的优先级,并在磁盘空间不足时,根据各时移实例的优先级进行磁盘空间分配。
在磁盘空间不足时,可以按照以下方式进行磁盘空间分配:
无论时移实例的优先级是否相同,优先满足已录制的时移节目的时长尚未达到其对应的最小时移时间的时移实例的需求,使所述时移实例所录制的时移节目的时长能够达到其对应的最小时移时间;
强制征用优先级低的时移实例的磁盘空间,使优先级高的时移实例获得尽量多的磁盘空间直至所述优先级高的时移实例的已录制的时移节目的时长达到其对应的最大时移时间,同时使被强制征用磁盘空间的时移实例的已录制的时移节目的时长不低于其对应的最小时移时间;
其中,最小时移时间是在磁盘空间允许的情况下,时移实例的已录制的时移节目至少要达到的时长。
较佳地,通过磁盘碎片列表和文件系统的inode表,对已录制的时移节目所占用的磁盘空间的磁盘碎片进行管理;
所述磁盘碎片列表为双向链表,其中的磁盘碎片以录制的时移节目的先后顺序进行排列,在读取已录制的时移节目时,先查找磁盘碎片列表,再确定下一个要读取的磁盘碎片的物理地址;
文件系统的inode表描述了已录制的时移节目所占用的磁盘空间。
本发明提供的一种在数字电视时移中优化磁盘空间利用率的装置,包括:用户接口模块和文件管理模块,其中:
用户接口模块提供了与数字电视用户进行交互的接口,用于根据用户的设置设定最大时移时间,所述最大时移时间是已录制的时移节目能够存储在磁盘中的最大时长;
文件管理模块以磁盘碎片为最小管理单元,通过磁盘碎片列表将构成当前文件的所有磁盘碎片串联起来,在录制时移节目的过程中,如果当前已录制的时移节目的时长已超过最大时移时间,并且当前所接收到的传输流的流比特率小于平均流比特率,则删除当前文件中录制时间最久的时移节目,将相应的磁盘碎片从磁盘碎片列表中删除,并将新录制的时移节目覆盖当前文件中最久录制的时移节目。
该装置中还可以包括:码流信息提取模块和视频信息索引模块;
所述码流信息提取模块,用于从接收到的传输流中提取码流信息,对码流信息进行处理之后发送给视频信息索引模块,将传输流发送给文件管理模块;所述码流信息包括:绝对时间、绝对数据偏移量和关键帧标签;处理之后的码流信息包括:录制时间、数据偏移量和帧类型;
所述视频信息索引模块,用于将码流信息提取模块所提供的信息以画面组(GOP)为单位,构造成以录制时间先后顺序排列的列表,并提供快速搜索和查询功能;
所述文件管理模块,还用于根据视频信息索引模块所构造的列表,将当前文件中数据偏移量与关键帧的绝对偏移量对应起来,对磁盘碎片进行管理。
当所述装置中同时有多个时移实例正在进行时移节目录制时;
每个时移实例共用一个文件管理模块,文件管理模块通过时移实例对应的标签进行区分;
所述用户接口模块,还用于根据用户的设置设定所述多个时移实例获取磁盘空间的优先级;
在磁盘空间不足时,所述文件管理模块还用于根据各时移实例的优先级进行磁盘空间分配。
较佳地,所述用户接口模块,还用于根据用户的设置分别为各时移实例设定对应的最小时移时间和最大时移时间,所述最小时移时间是在磁盘空间允许的情况下,时移实例的已录制的时移节目至少要达到的时长;
在磁盘空间不足时,无论时移实例的优先级是否相同,文件管理模块优先对已录制的时移节目的时长尚未达到其对应的最小时移时间的时移实例进行磁盘空间分配,使所述时移实例所录制的时移节目的时长能够达到其对应的最小时移时间;并强制征用优先级低的时移实例的磁盘空间,使优先级高的时移实例获得尽量多的磁盘空间直至所述优先级高的时移实例的已录制的时移节目的时长达到其对应的最大时移时间,同时使被强制征用磁盘空间的时移实例的已录制的时移节目的时长不低于其对应的最小时移时间。
较佳地,文件管理模块所构造的磁盘碎片列表为双向链表,在读取已录制的时移节目时,所述文件管理模块先查找磁盘碎片列表,再确定下一个要读取的磁盘碎片的物理地址。
由上述技术方案可见,本发明在录制时移节目的过程中,通过判断当前已录制的时移节目的时长是否已超过设定的最大时移时间,并判断当前所接收到的传输流的流比特率是否小于平均流比特率,在上述两个条件均满足的情况下,删除录制时间最久的时移节目,以释放多余的磁盘碎片,并将新录制的时移节目覆盖当前文件中最久录制的时移节目。从而,随着流比特率变小,可以主动释放多余的磁盘碎片,使得时移节目所占用的磁盘空间随着传输流的流比特率的大小起伏而增减,从而达到了根据需要动态改变时移节目所占用的磁盘空间大小的目的,避免了磁盘空间不足时磁盘空间利用率低的问题。
并且,本发明提供的多时移实例方案通过为各时移实例设置用于获取磁盘空间的优先级,并在磁盘空间不足时,根据各时移实例的优先级进行磁盘空间分配,实现了在多个时移实例间动态、合理地分配磁盘空间的目的,在磁盘空间不足的情况下,可以降低其中一个时移实例所占用的磁盘空间给另一个时移实例使用,从而使各时移实例能够互补利用磁盘空间。
此外,采用本发明使得时移实例可以与其他应用共用一个文件系统,文件管理模块驱动层添加的新功能对文件系统的其他功能没有影响。
附图说明
图1为本发明一较佳在数字电视时移中优化磁盘空间利用率的方法的流程示意图;
图2为本发明一较佳在数字电视时移中优化磁盘空间利用率的装置的组成结构示意图;
图3为单个时移实例的主界面示意图;
图4为两个时移实例的同时运行的主界面示意图;
图5为本发明用户接口模块与文件管理模块的交互示意图;
图6为绝对偏移量与文件偏移量在文件管理模块中间件层中的映射关系示意图;
图7为本发明合并文件碎片的流程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
本发明的主要思想是:在录制时移节目的过程中,如果当前已录制的时移节目的时长已超过设定的最大时移时间,并且当前所接收到的传输流的流比特率小于平均流比特率,则删除录制时间最久的时移节目,以释放多余的磁盘碎片,并将新录制的时移节目覆盖当前文件中最久录制的时移节目。基于上述主要思想,随着流比特率变小,可以主动释放多余的磁盘碎片,使得时移节目所占用的磁盘空间随着传输流的流比特率的大小起伏而增减,从而达到根据需要动态改变时移节目所占用的磁盘空间大小的目的,避免磁盘空间不足时磁盘空间利用率低的问题。
本发明中,最大时移时间是已录制的时移节目能够存储在磁盘中的最大时长;最小时移时间是在磁盘空间允许的情况下,时移实例的已录制的时移节目至少要达到的时长。
本发明包括单时移实例方案和多时移实例共存方案。多时移实例共存方案是在单时移实例方案的基础上,为各时移实例设置获取磁盘空间的优先级,并在磁盘空间不足时,根据各时移实例的优先级进行磁盘空间分配,从而使各时移实例能够互补利用磁盘空间。
图1为本发明一较佳在数字电视时移中优化磁盘空间利用率的方法的流程示意图。图1所示方法包括以下步骤:
步骤101:进行时移功能设置。
在开始时移录制前,需要通过用户接口模块或利用默认数据设置时移功能选项,包括设置最大时移时间和最小时移时间等。
步骤102:开始时移录制。
步骤103:判断当前已录制的时移节目的时长是否已达到设定的最大时移时间,如果是,执行步骤104,否则,执行步骤108.
步骤104:判断当前所接收到的传输流的流比特率是否小于平均流比特率,如果是,执行步骤106,否则,执行步骤105。
步骤105:判断新录制的时移节目是否会覆盖最大时移时间内的时移节目,即判断是否需要申请磁盘碎片,如果是,执行步骤108,否则,执行步骤107。
步骤106:删除录制时间最久的时移节目,以释放多余的磁盘碎片。
步骤107:将新录制的时移节目覆盖当前文件中最久录制的时移节目,返回步骤102。
步骤108:判断是否存在空闲磁盘空间,如果存在,执行步骤109,否则,执行步骤107。
步骤109:根据流比特率大小、磁盘剩余空间、以及实际的磁盘空间大小,申请新的磁盘碎片用于存储新录制的时移节目,并返回步骤102。
对应于上述方法,本发明提供了一种在数字电视时移中优化磁盘空间利用率的装置,该装置包括:用户接口模块和文件管理模块,其中:
用户接口模块提供了与数字电视用户进行交互的接口,用于根据用户的设置设定最大时移时间;
文件管理模块以磁盘碎片为最小管理单元,通过磁盘碎片列表将构成当前文件的所有磁盘碎片串联起来,在录制时移节目的过程中,如果当前已录制的时移节目的时长已超过最大时移时间,并且当前所接收到的传输流的流比特率小于平均流比特率,则删除当前文件中录制时间最久的时移节目,将相应的磁盘碎片从磁盘碎片列表中删除,并将新录制的时移节目覆盖当前文件中最久录制的时移节目。
上述用户接口模块和文件管理模块是为了达到优化磁盘空间利用率的目的,该装置最少要包含的模块。在实际应用中,录制的时移节目需要供用户播放,并提供快速搜索、查找功能,以提供快退、快进功能,为此,需要在装置中设置码流信息提取模块和视频信息模块。
码流信息提取模块,用于从接收到的传输流中提取码流信息,对码流信息进行处理之后发送给视频信息索引模块,将传输流发送给文件管理模块;码流信息包括:绝对时间、绝对数据偏移量和关键帧标签;处理之后的码流信息包括:录制时间、数据偏移量和帧类型;
视频信息索引模块,用于将码流信息提取模块所提供的信息以画面组(GOP)为单位,构造成以录制时间先后顺序排列的列表,并提供快速搜索和查询功能;
文件管理模块还用于根据视频信息索引模块所构造的列表,将当前文件中数据偏移量与关键帧的绝对偏移量对应起来,对磁盘碎片进行管理。
本发明中,关键帧即I帧。
下面结合附图,以双时移实例为例,对本发明装置进行说明。
图2为本发明一较佳在数字电视时移中优化磁盘空间利用率的装置的组成结构示意图。图中所示两个时移实例将录制的数据保存在同一个可编辑文件中。两个时移实例中对应的功能模块是相同的,下面详细说明单个时移实例中的各个模块。图2所示装置中包括四个基本模块:码流信息提取模块、视频信息索引模块、文件管理模块和用户接口模块。其中:
传输流数据1的数据来自于同轴电缆,经过电视调谐器和解复用处理到达码流信息提取模块。传输流的编码格式可以是MPEG2,也可以是H.264,对于码流信息提取模块来说,传输流的编码格式不同,获取帧信息的方法不一样。
码流信息提取模块提取当前视频流的绝对时间信息、绝对数据偏移量信息以及关键帧标签,进行处理之后,得到以下信息:
1)录制时间:从0开始,用以取代传输流中的时间标签。利用录制过程提取当前时间信息,避免了传输流中时间标签不准确的问题。
2)数据偏移量:从0开始,在录制过程中以字节为单位一直递增。提供给用户接口进行视频跳转或者快进快退。
3)帧类型:可以是I帧、B帧或P帧。
录制时间与数据偏移量都是从0开始一直递增。传输流的包头以0x47开始,假定每个传输流的包由188个字节组成。根据传输流的组成,码流信息提取模块可以通过硬件,也可以通过软件方式将所有帧的基本信息提取出来。处理完一个帧的信息,就将此信息发送给视频信息索引模块,视频信息索引模块负责将所有帧组织成一个队列。
对于原始的传输流数据1,码流信息提取模块可以将传输流包中的时间标签修改成当前时间,这样在以后的播放过程中就可以直接使用传输流包中的时间标签,从而避免由于数据在解码器中缓冲过多而造成播放时间不准确的问题。也可以不修改时间标签,直接将原始数据输出至文件管理模块,这样就需要解码器缓冲区尽可能地小。
关键帧信息输入到视频信息处理模块,以GOP(GroupofPicture,画面组)为单位组织成以时间先后顺序排列的队列。每个GOP信息的组成为:
以上数据结构记录了I帧和P帧的信息。提供两种数据查询方式:
第一种方式:通过时间查询数据偏移量,用于根据时间跳转至指定时间的数据偏移量所对应的位置。
第二种方式:通过数据偏移量查询时间,用于提取当前播放位置的时间信息,可以用于显示当前播放时间;或者也可以检查当前播放位置有没有落在时移范围之内。
视频信息索引模块中的GOP数据可以存储于磁盘中也可以存储于内存中,提供快速搜索、查询功能,其主要功能是提供快进、快退功能查找关键帧,将关键帧的在文件中的绝对数据偏移量和大小提供给文件管理模块。如果存储于内存中则直接折半查找;如果存储于磁盘中,则每次读取若干个(例如60个)GOP的信息到内存队列,然后比较检索时间与内存队列中的时间,如果不命中则按折半查找的方法读取下一组60个GOP的信息至内存队列,如果不足60个GOP,则按实际大小读取GOP信息。如果所检索信息越界,则返回错误信息。
用户接口模块提供了与电视用户交互的接口。在本实施例中表现为各种设置菜单,弹出对话框,播放、停止、快进、快退等操作。用户接口模块可以用软件的方式实现,其实现在文件管理模块的上层,只需调用文件管理模块即可,而文件管理模块则需要发送事件给用户接口模块。
本实施例包括的用户直接调用有:
1)设置最小时移时间限制;
2)设置最大时移时间限制;
3)设置时移实例间的优先级;
4)设置是否开启关键帧索引;
5)开始、停止、快进、快退等播放操作;
6)开启或者关闭磁盘碎片合并功能。
其中第5个,直接通过电视遥控器输入各种控制键,由应用程序捕捉到相应的按键,直接调用用户接口模块,用户接口模块做界面调整再调用文件管理模块。单个时移实例的主界面如图3所示。图中焦点在倒三角处,利用左右按键可以减小或增大最小时移时间,设置完后按返回键或者设置界面中的“Return“按钮。设置后的最小时移时间反应在主界面中的“TimeshiftMin:xx:xx:”。最大时移时间和其他选项的设置类似于最小时移时间的设置方法。
设置界面还可以通过其他方法进入。当磁盘空间满,然而此时录制的数据的时长还没有到达最大时移时间,则可以弹出相应的对话框,询问用户是否降低最大时移时间,如果降低,则进入到最大时移时间的设置界面,否则,返回到主界面。
文件管理模块的事件通知可以有:
1)磁盘空间满;
2)文件读写错误;
3)播放至文件头或者文件尾。
对于事件的处理,如通知2可以通过消息框显示给用户,但有的事件则直接被应用程序接收处理而并不显示相关消息框。如当按后退键一直播放到文件头,则最终由应用程序接收到此事件,然后重新从文件头开始播放。当错误发生时,如通知2,则会跳转到电视模式。
当两个时移实例同时运行时的主界面如图4所示,两个时移实例可以并排排列。当两个时移实例运行时,按“返回”键弹出时移设置界面并将获取焦点的时移实例的边框高亮显示,此时按左右键可以切换焦点至另一个时移实例,按向下键可以将焦点移动到时移设置界面。在时移设置界面中,用户可以调整时移实例间的位置关系,按向上键则将焦点移动到时移实例中,按“返回”键则会将界面隐藏起来。按停止键则退出其中一个时移实例,则另外一个时移实例就可放大到全屏显示。
图5为本发明用户接口模块与文件管理模块的交互示意图。
文件管理模块为本发明实施例的核心模块。每个时移实例共用一个文件管理模块,文件管理模块通过时移实例对应的标签加以区分。文件管理模块以物理磁盘碎片为最小管理单元,在文件系统驱动中添加针对磁盘碎片的删除、合并、创建等功能。通过一个磁盘碎片的列表将所有碎片串联起来,并且将文件中数据偏移量与关键帧的绝对偏移量对应起来。
文件管理模块提供了与其他模块的交互的接口,从码流信息提取模块获取到实时码流数据,从视频信息索引模块获取参考帧信息用以读取特定位置的数据,而用户接口模块则直接或间接控制文件管理模块。本实施例前面已经详细叙述了这三个模块,下面将详细描述文件管理模块的功能。
文件管理模块的实现分中间件层和驱动层,由中间件层提供给外部模块基本的文件操作。
中间件层的主要功能有:
1)提供抽象基本接口;
2)将绝对偏移量与当前文件中的偏移量一一对应;
3)利用时移实例的优先级自动调整时移实例占用的磁盘空间大小。
中间件层屏蔽了文件调用的差异性,提供用户基本的用户接口,例如:
1)打开文件:Open(filename,......)
2)关闭文件:Close(filedescription)
3)读文件:Read(filedescription,bufferpointer,buffersize)
4)写文件:Write(filedescription,bufferpointer,buffersize)
5)在文件中寻找:Seek(filedescription,offset)
6)Ioctl(filedescription,type,...)
通过“open”接口,不同的时移实例返回不同的文件描述符,后续的其他操作都以此文件描述符作为参数。“Read”接口和“Write”接口同时支持普通bufferI/O方式和DirectI/O方式读写,buffer必须是4k字节对齐。“Seek”接口中的参数“offset”是视频索引模块提供的绝对偏移量(从0开始,以传输流的包大小为最小单位递增),因为时移实例录制的文件本质上是一个循环缓冲区,参数“offset”必须重新映射到文件中的实际偏移量。
如图6所示,图中绝对时间轴从0开始计时,而实际时移文件的可播放时长只占其中一部分。当录制至文件尾,新的数据就会写到文件头,这样当新一轮录制开始后,绝对偏移量就会是当前文件的大小而实际偏移量是0。
通过“Ioctl”接口,可以设置时移实例的优先级。对于优先级的策略,只有在磁盘空间不足的情况下才有效,主要包括以下:
1)时移实例的最大时移时间和最小时移时间在设定优先级前需设置。默认的最大时移时间为90分钟,最小时移时间为10分钟,并且最大时移时间和最小时移时间可以通过用户接口模块来动态调整。
2)时移实例的优先级可以动态调整。
3)当时移实例达到最大时移时间,则时移时间不得继续增长。
4)当时移实例设置成不同或者相同的优先级,在磁盘空间不足的情况下,假设时移实例2的录制时间超过最小时移时间,而时移实例1的录制时间没有超过最小时移时间,则时移实例2自动释放磁盘碎片供时移实例1使用,如果时移实例2正在播放即将要释放的磁盘碎片,则跳转至最久录制的数据。
5)当时移实例设置成不同的优先级,在磁盘空间不足的情况下,假如时移实例2的优先级高于时移实例1,且时移实例2时间未达到最大时移时间,时移实例2强制征用时移实例1的磁盘碎片直到时移实例1的已录制时间接近最小时移时间。如果此时时移实例1的时间小于最小时移时间,则时移实例2不得强制征用。
驱动层是文件管理模块的主要功能点,除了正常的读写操作外,驱动层添加的主要功能有:
1)维护磁盘碎片列表;
2)创建新磁盘碎片;
3)释放磁盘碎片
4)合并磁盘碎片。
磁盘碎片列表示例如表1所示:
表1
表1所示磁盘碎片列表中包括两个时移实例的标签信息,不同的文件描述符对应不同的实例标签。磁盘碎片列表数据结构是一个双向链表,每个磁盘碎片有一个磁盘碎片ID,该磁盘碎片再指向前一个和后一个磁盘碎片ID,相邻两个磁盘碎片在物理上可以不连续,只要在其上录制的电视节目是连续的即可。同时,每一个磁盘碎片还对应着起始扇区和结束扇区,这是一块物理上连续的区域。对于每个时移实例对应的文件来说,都有对应的文件头和文件尾,文件头的“前一个磁盘碎片ID”为0,而文件尾的“下一个磁盘碎片ID”为0。磁盘碎片的ID是递增的,当超过最大值则从1开始计数。
文件碎片散落在磁盘的各个角落,当文件管理模块需要写入新数据至时移文件但磁盘空间不足时,可以在磁盘碎片列表中查找有无可用碎片,如果没有,则创建新碎片并将磁盘碎片添加到磁盘碎片列表中。添加磁盘碎片的流程为:
1)在当前未释放文件碎片列表中查找最匹配文件碎片块;
2)如果有则加入文件碎片索引列表,将写指针移动到新碎片;
3)如果没有则判断空闲空间是否足够,如果磁盘空间不足则将该消息通知用户接口模块;
4)如果还有空闲磁盘碎片,则优先找有无物理上相邻的碎片,如果有则先合并到当前文件碎片,修改当前磁盘碎片列表中的磁盘碎片大小信息以及更新文件系统inode表;
5)如果无物理上相邻的碎片,则将可利用空间的磁盘碎片加入当前文件的,将写指针移动到新碎片并更新磁盘碎片列表,同时添加该磁盘碎片信息到磁盘碎片列表并更新文件系统的inode表。
时移实例可以自动或者手动释放文件间接释放文件碎片,其流程为:
1)由于传输流的降低,当实际录制下来的数据的总的时间超过最长时间时,以录制时间为优先级释放最久录制的文件碎片,并且从磁盘碎片列表和文件系统的inode表中将其删除;
2)如果需要释放的磁盘碎片足够大,当前所需释放的空间小于此文件碎片。此时只需要更新磁盘碎片列表的“起始扇区”和“结束扇区”选项,以及在时移文件在文件系统中的inode表的信息;
3)当用户接口模块降低了最大时移时间且已经降低到实际时移时间以下,最久录制的文件碎片就需要释放掉;
4)当其中一个时移实例停止后,将磁盘碎片列表中的与该时移实例相对应的行删除,且更新该时移文件的inode表。
为了避免磁盘碎片的大量生成,文件管理模块需要将物理上邻近的磁盘碎片合并起来。合并文件碎片的流程如图7所示,包括:
1)当时移时间未超过最长时间,根据磁盘碎片列表找出下一个时间上相邻的文件碎片写入新录制数据;
2)在已录制数据已经达到最大时移时间,同时时移节目的码率下降,这时候实际存放于在磁盘上的文件的时移时间就会超过最长时间,磁盘碎片列表也会相应变长;
3)在已录制数据已经达到最大时移时间,但磁盘碎片列表中没有物理上相邻文件碎片,根据磁盘碎片列表找出下一个时间上相邻的文件碎片写入新录制数据;
4)在已录制数据已经达到最大时移时间,且磁盘碎片列表中有物理上相邻文件碎片,但磁盘碎片对应的播放时间点在最大时移时间之内,则根据磁盘碎片列表找出下一个时间上相邻的文件碎片写入新录制数据;
5)在已录制数据已经达到最大时移时间,且磁盘碎片列表中有物理上相邻文件碎片,且磁盘碎片对应的播放时间点不在最大时移时间之内,则合并当前相邻文件碎片,将写指针移动至此碎片,并且更新磁盘碎片列表。
由上述实施例可见,本发明在录制时移节目的过程中,通过判断当前已录制的时移节目的时长是否已超过设定的最大时移时间,并判断当前所接收到的传输流的流比特率是否小于平均流比特率,在上述两个条件均满足的情况下,删除录制时间最久的时移节目,以释放多余的磁盘碎片,并将新录制的时移节目覆盖当前文件中最久录制的时移节目。从而,随着流比特率变小,可以主动释放多余的磁盘碎片,使得时移节目所占用的磁盘空间随着传输流的流比特率的大小起伏而增减,从而达到了根据需要动态改变时移节目所占用的磁盘空间大小的目的,避免了磁盘空间不足时磁盘空间利用率低的问题。
并且,本发明提供的多时移实例方案通过为各时移实例设置用于获取磁盘空间的优先级,并在磁盘空间不足时,根据各时移实例的优先级进行磁盘空间分配,实现了在多个时移实例间动态、合理地分配磁盘空间的目的,在磁盘空间不足的情况下,可以降低其中一个时移实例所占用的磁盘空间给另一个时移实例使用,从而使各时移实例能够互补利用磁盘空间。
此外,采用本发明使得时移实例可以与其他应用共用一个文件系统,文件管理模块驱动层添加的新功能对文件系统的其他功能没有影响。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种在数字电视时移中优化磁盘空间利用率的方法,其特征在于,包括:
在录制时移节目的过程中,如果当前已录制的时移节目的时长已超过设定的最大时移时间,并且当前所接收到的传输流的流比特率小于平均流比特率,则删除录制时间最久的时移节目,以释放多余的磁盘碎片,并将新录制的时移节目覆盖当前文件中最久录制的时移节目;
其中,最大时移时间是已录制的时移节目能够存储在磁盘中的最大时长。
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
如果当前已录制的时移节目的时长已超过设定的最大时移时间,且当前所接收到的传输流的流比特率大于等于平均流比特率,则判断新录制的时移节目是否会覆盖最大时移时间内的时移节目,如果不会覆盖,则将新录制的时移节目覆盖当前文件中最久录制的时移节目,如果会覆盖,则判断是否存在空闲磁盘空间,如果存在,申请新的磁盘碎片用于存储新录制的时移节目,如果不存在,将新录制的时移节目覆盖当前文件中最久录制的时移节目;
如果当前已录制的时移节目的时长未超过设定的最大时移时间,则判断是否存在空闲磁盘空间,如果存在,申请新的磁盘碎片用于存储新录制的时移节目,如果不存在,将新录制的时移节目覆盖当前文件中最久录制的时移节目。
3.根据权利要求1所述的方法,其特征在于:
同时有多个时移实例正在进行时移节目录制;
该方法进一步包括:预先为所述多个时移实例设置获取磁盘空间的优先级,并在磁盘空间不足时,根据各时移实例的优先级进行磁盘空间分配。
4.根据权利要求3所述的方法,其特征在于,在磁盘空间不足时,按照以下方式进行磁盘空间分配:
无论时移实例的优先级是否相同,优先满足已录制的时移节目的时长尚未达到其对应的最小时移时间的时移实例的需求,使所述时移实例所录制的时移节目的时长能够达到其对应的最小时移时间;
强制征用优先级低的时移实例的磁盘空间,使优先级高的时移实例获得尽量多的磁盘空间直至所述优先级高的时移实例的已录制的时移节目的时长达到其对应的最大时移时间,同时使被强制征用磁盘空间的时移实例的已录制的时移节目的时长不低于其对应的最小时移时间;
其中,最小时移时间是在磁盘空间允许的情况下,时移实例的已录制的时移节目至少要达到的时长。
5.根据权利要求1至4任一项所述的方法,其特征在于:
通过磁盘碎片列表和文件系统的inode表,对已录制的时移节目所占用的磁盘空间的磁盘碎片进行管理;
所述磁盘碎片列表为双向链表,其中的磁盘碎片以录制的时移节目的先后顺序进行排列,在读取已录制的时移节目时,先查找磁盘碎片列表,再确定下一个要读取的磁盘碎片的物理地址;
文件系统的inode表描述了已录制的时移节目所占用的磁盘空间。
6.一种在数字电视时移中优化磁盘空间利用率的装置,其特征在于,包括:用户接口模块和文件管理模块,其中:
用户接口模块提供了与数字电视用户进行交互的接口,用于根据用户的设置设定最大时移时间,所述最大时移时间是已录制的时移节目能够存储在磁盘中的最大时长;
文件管理模块以磁盘碎片为最小管理单元,通过磁盘碎片列表将构成当前文件的所有磁盘碎片串联起来,在录制时移节目的过程中,如果当前已录制的时移节目的时长已超过最大时移时间,并且当前所接收到的传输流的流比特率小于平均流比特率,则删除当前文件中录制时间最久的时移节目,将相应的磁盘碎片从磁盘碎片列表中删除,并将新录制的时移节目覆盖当前文件中最久录制的时移节目。
7.根据权利要求6所述的装置,其特征在于,该装置中还包括:码流信息提取模块和视频信息索引模块;
所述码流信息提取模块,用于从接收到的传输流中提取码流信息,对码流信息进行处理之后发送给视频信息索引模块,将传输流发送给文件管理模块;所述码流信息包括:绝对时间、绝对数据偏移量和关键帧标签;处理之后的码流信息包括:录制时间、数据偏移量和帧类型;
所述视频信息索引模块,用于将码流信息提取模块所提供的信息以画面组(GOP)为单位,构造成以录制时间先后顺序排列的列表,并提供快速搜索和查询功能;
所述文件管理模块,还用于根据视频信息索引模块所构造的列表,将当前文件中数据偏移量与关键帧的绝对偏移量对应起来,对磁盘碎片进行管理。
8.根据权利要求6或7所述的装置,其特征在于:
所述装置中同时有多个时移实例正在进行时移节目录制;
每个时移实例共用一个文件管理模块,文件管理模块通过时移实例对应的标签进行区分;
所述用户接口模块,还用于根据用户的设置设定所述多个时移实例获取磁盘空间的优先级;
在磁盘空间不足时,所述文件管理模块还用于根据各时移实例的优先级进行磁盘空间分配。
9.根据权利要求8所述的装置,其特征在于:
所述用户接口模块,还用于根据用户的设置分别为各时移实例设定对应的最小时移时间和最大时移时间,所述最小时移时间是在磁盘空间允许的情况下,时移实例的已录制的时移节目至少要达到的时长;
在磁盘空间不足时,无论时移实例的优先级是否相同,文件管理模块优先对已录制的时移节目的时长尚未达到其对应的最小时移时间的时移实例进行磁盘空间分配,使所述时移实例所录制的时移节目的时长能够达到其对应的最小时移时间;并强制征用优先级低的时移实例的磁盘空间,使优先级高的时移实例获得尽量多的磁盘空间直至所述优先级高的时移实例的已录制的时移节目的时长达到其对应的最大时移时间,同时使被强制征用磁盘空间的时移实例的已录制的时移节目的时长不低于其对应的最小时移时间。
10.根据权利要求6或7所述的装置,其特征在于:
文件管理模块所构造的磁盘碎片列表为双向链表,在读取已录制的时移节目时,所述文件管理模块先查找磁盘碎片列表,再确定下一个要读取的磁盘碎片的物理地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110430918.6A CN103179447B (zh) | 2011-12-20 | 2011-12-20 | 在数字电视时移中优化磁盘空间利用率的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110430918.6A CN103179447B (zh) | 2011-12-20 | 2011-12-20 | 在数字电视时移中优化磁盘空间利用率的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103179447A CN103179447A (zh) | 2013-06-26 |
CN103179447B true CN103179447B (zh) | 2016-08-03 |
Family
ID=48639018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110430918.6A Active CN103179447B (zh) | 2011-12-20 | 2011-12-20 | 在数字电视时移中优化磁盘空间利用率的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103179447B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103474087B (zh) * | 2013-09-06 | 2016-10-05 | 南京南自信息技术有限公司 | 一种简单防止磁盘碎片产生录像文件的管理方法 |
CN103986945B (zh) | 2014-05-27 | 2018-01-05 | 华为技术有限公司 | 一种混合网络系统、频道内容回看方法与混合机顶盒 |
CN104156173A (zh) * | 2014-07-29 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种实现磁盘碎片整理的方法及装置 |
CN104135687A (zh) * | 2014-07-29 | 2014-11-05 | 深圳创维数字技术股份有限公司 | 一种节目数据处理的方法及数字电视终端 |
CN106937160B (zh) * | 2017-03-28 | 2019-12-24 | 青岛海信电器股份有限公司 | 一种针对终端的录制文件在快进快退时的显示方法和装置 |
CN107155081A (zh) * | 2017-05-15 | 2017-09-12 | 青岛海信电器股份有限公司 | 节目录制方法及装置 |
CN112788352B (zh) * | 2019-11-01 | 2023-04-25 | Vidaa(荷兰)国际控股有限公司 | 直播时移方法、终端及存储介质 |
CN112565671A (zh) * | 2021-02-25 | 2021-03-26 | 全时云商务服务股份有限公司 | 桌面共享中的会议信息捕获方法、装置及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101056251A (zh) * | 2007-05-11 | 2007-10-17 | 中兴通讯股份有限公司 | 一种时移服务系统及方法 |
CN101146196A (zh) * | 2006-09-15 | 2008-03-19 | 三星电子株式会社 | 控制时移存储空间的方法和设备及使用其的电视接收机 |
CN101742194A (zh) * | 2008-11-19 | 2010-06-16 | 深圳市朗科科技股份有限公司 | 实现电视时移功能的系统及方法 |
CN101843097A (zh) * | 2007-10-31 | 2010-09-22 | 思科技术公司 | 用于自适应盘管理的方法和系统 |
CN101877779A (zh) * | 2010-05-25 | 2010-11-03 | 中兴通讯股份有限公司 | 一种交互式网络电视iptv系统、时移播放控制方法及装置 |
CN102148806A (zh) * | 2010-02-09 | 2011-08-10 | 华为技术有限公司 | 网络电视的时移处理方法和系统以及网络设备、终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8565578B2 (en) * | 2001-12-06 | 2013-10-22 | Harold J. Plourde, Jr. | Dividing and managing time-shift buffering into program specific segments based on defined durations |
-
2011
- 2011-12-20 CN CN201110430918.6A patent/CN103179447B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101146196A (zh) * | 2006-09-15 | 2008-03-19 | 三星电子株式会社 | 控制时移存储空间的方法和设备及使用其的电视接收机 |
CN101056251A (zh) * | 2007-05-11 | 2007-10-17 | 中兴通讯股份有限公司 | 一种时移服务系统及方法 |
CN101843097A (zh) * | 2007-10-31 | 2010-09-22 | 思科技术公司 | 用于自适应盘管理的方法和系统 |
CN101742194A (zh) * | 2008-11-19 | 2010-06-16 | 深圳市朗科科技股份有限公司 | 实现电视时移功能的系统及方法 |
CN102148806A (zh) * | 2010-02-09 | 2011-08-10 | 华为技术有限公司 | 网络电视的时移处理方法和系统以及网络设备、终端 |
CN101877779A (zh) * | 2010-05-25 | 2010-11-03 | 中兴通讯股份有限公司 | 一种交互式网络电视iptv系统、时移播放控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103179447A (zh) | 2013-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103179447B (zh) | 在数字电视时移中优化磁盘空间利用率的方法及装置 | |
AU2007327991B2 (en) | Systems and methods for media source selection and toggling | |
US9473476B2 (en) | Program guide data management for media content access systems and methods | |
US7624412B2 (en) | Recording and playback system | |
US8312490B2 (en) | DVR with enhanced functionality | |
US11627381B2 (en) | Video assets having associated graphical descriptor data | |
NO20151810A1 (no) | Fremgangsmåte og anordning for fjernsynsmottaker | |
US20090193486A1 (en) | Digital set-top terminal with partitioned hard disk and associated system and method | |
EP1982265B1 (en) | Fast switching of channels based on the automatic buffering of the previously displayed channel and predicted channels | |
US8923685B2 (en) | Methods and systems for dynamically balancing storage of recorded media content data between a local storage device and a network storage device | |
EP2269191A1 (en) | Method and apparatus for replacement of audio data in a recorded audio/video stream | |
KR101589802B1 (ko) | 기록된 비디오 프로그램들의 저장을 최적화하는 방법 및 장치 | |
US20080154941A1 (en) | Method of and apparatus for encoding/decoding multimedia data with preview function | |
EP1222822A2 (en) | Trick play signal generation for a digital video recorder | |
CA2665855A1 (en) | Methods and apparatus for dividing an audio/video stream into multiple segments using text data | |
EP2635025B1 (en) | Video processing method and video appliance implementing the method | |
US20140282761A1 (en) | System and Method for Optimizing Storage and Transcoding Costs in Network DVR | |
US20130336636A1 (en) | Advanced recording options for interactive media guidance application systems | |
US20140341544A1 (en) | Creating and managing sub-recordings | |
EP2779670A2 (en) | Method of time shifting in a digital TV and apparatus using the same | |
CN101212644A (zh) | 一种数字电视用户操作信息处理方法 | |
EP2595403A1 (en) | Method for providing video content to a user | |
TWI244869B (en) | Data-on-demand digital broadcast system utilizing prefetch data transmission | |
AU2011203545A1 (en) | Systems and Methods for Media Source Selection and Toggling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |