专利名称:用于存储数据分组的方法和系统的制作方法
技术领域:
本发明涉及一种对将数据分组存储至缓冲器的存储空间进行管理的方法。
背景技术:
全动数字电视需要大量的存储和数据传输带宽。因此,数字电视系统采用视频压缩算法来减少必要的存储量和数据传输带宽。目前的数字电视系统采用MPEG或者MPEG-2编码以减少所需的数据传输带宽。MPEG-2在ITU-TH.222.0(ISO/IEC 13818-1)“Generic Coding of Moving Picture And AssociatedAudio Information”中被定义。因此,视听序列,诸如电影或其他内容,以MPEG-2压缩格式被存储在媒体服务器上,并且所述视听序列被编码且通常被转化成模拟格式以便显示和/或传输给用户。
众所周知,按照MPEG2的传输流(TS)是一种包括压缩数字视频、压缩数字音频等的流。该TS被用于数字广播中,并且包含多路复用的多个节目。
有两种MPEG-2接收器被采用。首先,在机顶盒中,通过专用的硬件功能,也就是能够处理到来位流的MPEG-2 TS多路分离器,来处理到来的MPEG-2TS分组。在这种情况下,没有数据溢出。而且,如果有诸如信号暂时丢失的意外出现的话,MPEG-2 TS读取器将能够通过使用专用硬件功能容易地重新同步。
第二种MPEG-2接收器是使用利用PCI或USB接口的PC。通常,PCIMPEG-2 TS接收器是PCI主设备,并且没有FIFO溢出发生,因为通过专用的硬件将MPEG2-TS分组写入到PC系统存储器中。此外,USB MPEG2-TS接收器通常采用等时的USB端点传输MPEG2-TS分组,这保证了数据读取位速率,而这类传输中的主要缺陷在于它保留了USB带宽(无论实际的位速率是多少)。
因此,所有这些MPEG-2接收器在以高复杂性为代价的前提下均不会遭遇溢出。
另一方面,有更简单的不采用USB等时端点的USB MPEG-2TS接收器。
然而,无采用哪种传输模式,卫星、有线或陆地,在这些接收器中均可能发生数据溢出和溢出管理的问题。传统上,溢出管理不能够保证大于接收数据位速率的数据读取位速率(例如,可能暂时过载的PC),并且不能够保持MPEG-2TS分组所需的同步。特别地,保证MPEG-2TS读取器能够接收完整的MPEG-2TS分组并且在其数据读取位速率暂时低于接收位速率时保持同步是关键的。
因此,需要一种改善的系统和方法,用于以简单因而经济的方式存储数据分组和管理溢出情况。
发明内容
相应地,本发明提供一种如权利要求1所述的存储数据分组的方法。所述方法的其他特征将在从属权利要求2-5中被详述。
本发明进一步提供一种如权利要求6或者7所述的用于存储数据分组的系统。
本发明进一步提供如权利要求8所述的MPEG-2TS接收器,和如权利要求9所述的计算机程序产品。
图1表示一个数据分组;图2表示一个用于存储诸如图1中数据分组的系统;图3表示在溢出情况下的图2的系统;图4A和4B是管理数据分组存储的方法的框图。
详细说明图1表示由四个数据块db1、db2、db3和db4组成的数据分组DP。在所述的实施例中,数据分组DP是MPEG-2传输流分组。每个数据分组db1、db2、db3和db4分别包含数据A、B、C和D。
图2表示用于存储数据分组(比如图1中的数据分组DP)的系统10。系统10包含具有存储空间的先进先出缓冲器12,和对将数据分组存储至缓冲器12的存储空间进行管理的装置14。在接下来的描述中,缓冲器和它的存储空间将由标记12所标识。
缓冲器12包含八个数据单元(cell),dc1至dc8,用于存储数据。每个单元与一个唯一的地址相关。缓冲器12可以由计算机的随机存取存储器(RAM)来实现。
在这里的描述中,数据单元和数据块具有相同的大小,例如一个字节。当然,它们也可以具有不同的大小。
管理装置14包括读指针管理单元16和写指针管理单元18。
读指针管理单元管理读指针R,它指示将要从中读出数据的数据单元在缓冲器存储空间12的位置。在图2中,读指针R包含数据单元dc4的地址。
写指针管理单元18管理写指针W,它指示将要被写入数据的数据单元在缓冲器存储空间12的地址。在图2中,写指针W包含数据单元dc6的地址。
指针R和W沿着从数据单元dc1到数据单元dc8、再返回到数据单元dc1的相同行进循环路径行进过缓冲器存储空间。
管理装置14还能够存储数据分组的第一数据块被写入的数据单元的地址。这将在下面被解释。
更可取地,读/写指针被存储在指针寄存器(未示出)中。
图3表示溢出情况,即没有足够空闲存储空间用于写入接收到的数据块的情况。空闲存储空间既可以是没有数据的数据单元,也可以是具有已读取数据的数据单元。因此,缓冲器12的空闲存储空间由沿着进行路径从写指针W到读指针R之间的“距离”构成,例如在写指针W和读指针R之间的数据单元。
在图3的溢出情况中,写指针W已经在行进路径上追上了读指针R。因此,缓冲器的所有存储空间都装满未读出的数据。
在所描述的示例中,前三个数据块db1、db2和db3已经被接收,并且它们的对应数据A、B和C已经被写入。然而,不能写入接收的数据块db4的数据D。
图4A和4B是对将数据分组存储到缓冲器12的存储空间进行管理的方法的框图,它由管理装置14所实现。
存储数据分组的管理包括如图4A所示的数据分组读取方法和如图4B所示的数据分组写入方法。这两种方法将被同时并行执行。
参考图4A,读取方法包括第一个步骤30,读取在由读指针R所指示的数据单元中写入的数据。
本方法继续到步骤32,测试可读数据是否写入在下一数据单元。如果并非如此,也就是,如果写指针指示此下一数据单元,那么等待新数据的写入,这由引导回测试步骤32的箭头34所表示。
如果有可读数据,也就是,如果写指针没有指示下一数据单元,那么本方法继续到步骤36,递增读指针R以便它指示下一数据单元,并且返回到读取步骤30。
现在,参照图4B,写入方法包括第一个步骤40,接收正被接收的当前数据分组的数据块。
然后,方法包括步骤42,测试是否有足够的空闲存储空间用于写入新的随后接收的数据块。这通过确定从写指针到读指针的行进循环路径上的存储空间来实现。
如果存在足够的空闲存储空间,也就是,如果写指针W不等于读指针R,那么方法继续到步骤44,将接收的数据块写入到由写指针W所指示的数据单元中,并且递增写指针W,以便它指示行进循环路径的下一数据单元。
如果被写入的数据块是数据分组的第一个块,例如图1中的数据分组DP的数据块db1,那么它的位置地址由管理装置14所存储。这由图4B上的块46所表示。接着方法返回到接收步骤40,管理随后接收到的当前数据分组的数据块的存储。
如果没有足够的空闲存储空间,也就是,如果写指针W等于读指针R,那么方法继续到步骤48,停止写入当前数据分组的接收的数据块,并且将写指针W移动至当前正接收的数据分组的第一个写入数据块的位置地址,所述位置地址在步骤46中被存储。
然后,在等待步骤50,当前数据分组的新接收的数据块被丢弃,也就是,不写入到缓冲器12中。在接收到新数据分组的第一个块时,方法进行到接收步骤40。
由于写指针W的移动,能够有利地在先前数据分组的已经被写入的数据块上重写所接收的下一个数据分组的数据块。
实际上,在诸如MPEG-2数据接收的许多应用中,一个不完整的数据分组不能够被使用,并且之后被应用采用缓冲器12所丢弃。
重写此数据分组为随后的数据分组提供更多的空闲存储空间,因此减少再次发生溢出的机会。
权利要求
1.对将数据分组存储到缓冲器(12)的存储空间进行管理的方法,每个数据分组(DP)包括至少两个数据块(db1,db2,db3,db4),包括步聚-接收(40)当前数据分组的数据块,-将接收的当前数据分组的数据块写入(42)缓冲器(12)的空闲存储空间中,其特征在于-如果在缓冲器(12)中没有足够的空闲存储空间用于写入当前数据分组的接收的数据块,那么-停止(48)写入当前数据分组的接收的数据块,和-将当前数据分组的至少一个被写入的数据块定义(48)为空闲存储空间的一部分,从而下一数据分组的接收的数据块可在当前数据分组的被写入的数据块上重写。
2.如权利要求1的方法,其特征在于,对于定义步骤(48),将当前数据分组的所有被写入的数据块定义为空闲存储空间的一部分。
3.如权利要求1或2的方法,其特征在于缓冲器(12)是先进先出缓冲器。
4.如权利要求3的方法,其中写指针(W)指示在缓冲器存储空间(12)中要写入数据块的位置,读指针(P)指示在缓冲器存储空间(12)中要读取接收的被写入数据块的位置,两个指针沿着相同的行进循环路径行进缓冲器存储空间,其特征在于它包括保存(43)当前数据分组的第一个被写入数据块的位置的步骤,并且-确定是否没有剩余的空闲存储空间(12)的步骤(44)包括确定在循环路径上从写指针(W)到读指针(R)之间的存储空间(12),和-将当前数据分组的至少一个被写入数据块定义为空闲存储空间的一部分的步骤(48)包括将写指针(W)移动到保存的当前数据分组的第一个被写入数据块的位置上。
5.如权利要求1至4之任一的方法,其特征在于当前数据分组是MPEG-2传输流分组。
6.用于存储数据分组的系统,每个数据分组(DP)包括至少两个数据块(db1,db2,db3,db4),包括具有存储空间的缓冲器,其特征在于它包括对将数据分组存储到缓冲器(12)的存储空间中进行管理的装置(14),该管理装置(14)被设置为执行如权利要求1或2所述的方法。
7.如权利要求6的系统,其特征在于所述缓冲器是先进先出缓冲器,并且管理装置(14)被设置为执行如权利要求3或4所述的方法。
8.MPEG-2接收器,其特征在于,它包括如权利要求6或7的用于存储MPEG-2传输流数据分组的系统。
9.可直接加载到数字计算机内部存储器中的计算机程序产品,包括当所述产品在计算机上运行时用于执行如权利要求1至5中任一项所述的步骤的软件代码部分。
全文摘要
本发明涉及一种对将数据分组存储到缓冲器存储空间进行管理的方法,每个数据分组由至少两个数据块所组成,包括接收(40)当前数据分组的数据块的步骤和将接收的当前数据分组的数据块写入(42)缓冲器的空闲存储空间中。如果在缓冲器(12)中没有足够的空闲存储空间用于写入当前数据分组的接收的数据块,那么该方法停止(48)写入当前数据分组的接收的数据块,并将当前数据分组的至少一个被写入的数据块定义(48)为空闲存储空间,从而下一数据分组的接收的数据块可在当前数据分组的被写入的数据块上重写。应用于数字电视接收。
文档编号H04N5/00GK1984339SQ20061017181
公开日2007年6月20日 申请日期2006年9月29日 优先权日2005年10月6日
发明者特里·罗克斯 申请人:迪康公司