专利名称::数据处理方法及系统的制作方法
技术领域:
:本发明是有关于数据处理,且特别有关于一种在媒体文件中处理与存取元数据(metadata)的方法及系统。
背景技术:
:媒体档案,如MPEG-4档案,包括媒体数据与媒体数据的元数据(metadata)。元数据可以提供媒体应用程序足够的样本(sample)信息,以便处理档案中的媒体数据。通常媒体档案由各种结构组件所构成。举例来说,MPEG-4档案是由称为“盒(box)”的结构组件所组成。每一盒可以包括媒体数据、元数据或是其它的子盒。举例来说,一个STBL(sampletable,样本表)盒中记录媒体数据的时间信息与档案信息。依据STBL盒中所记录的信息,应用程序可以得到媒体档案中的时间、类型、数据大小与位置,且更可以利用这些信息来对于媒体档案进行播放与随机搜寻等功能。STBL盒更包含多个子盒,包括STTS(decodingtimetosample,译码时间-样本)盒,如图1所示、STSZ(samplesize,样本尺寸)盒、STSC(sampletochunk,样本-聚集)盒,如第3图所示、STCO(chunkoffset,聚集位移)盒、STSS(syncsample,同步样本)盒,如图2所示、与STSD(sampledescription,样本说明)盒等。STTS盒包含至少一项目(entry),用以记录媒体数据的样本的时间期间。图1显示一STTS盒100,其包含了储存共45个样本的媒体数据的5个项目。值得注意的是,STTS盒中的数据是依据行程长度编码(run-lengthcoding)的技术来进行记录,从而减少储存空间。换言之,媒体样本#1~#6、#7~#20、#21~#31、#32~#33与#34~#45的时程(timeduration)分别为66、67、63、64与66个时间单位,且媒体数据的45个样本的总时程为2947个时间单位。传统上,要找出具有标的译码时间的特定样本可以通过在这些盒中进行线性搜寻来得知。线性搜寻表示个别样本的时程由第一个媒体样本开始累加,直至累积的时程等于或超过标的译码时间。举例来说,为了要找到具有特定译码时间为2000时间单位的特定样本,可以通过累加前30个样本的时程来进行线性搜寻。由于前30个样本的总时程为1964(6*66+14*67+10*63=1964),而前31个样本的总时程为2027(6*66+14*67+11*63=2027),其超过特定译码时间2000,因此,即可找到样本#30。如果这些盒中有大量的项目时,线性搜寻的计算将会非常的耗时。另外,媒体数据中的媒体样本被群组为丛集(chunk)。STSC盒中记录样本与丛集之间的对映关系。依据STSC盒中记录的对映关系,可以辨识出标的样本所在的丛集为何,且可以使用丛集信息得到其它相关数据。图3显示一STSC盒300,其中在丛集#1、丛集#2~#4、丛集#5~#10与丛集#11~#19中的样本数目分别为3、4、7与6。STSC盒中的数据也以行程长度编码的技术来记录,从而减少储存空间。为了要找到一特定样本,可以通过由第一个聚集累加样本数目来进行线性搜寻,从而搜寻相应特定样本的特定聚集。如果STSC盒中有大量的项目时,相关计算也将会非常的耗时。
发明内容本发明的目的在于提供一种数据处理方法及系统。本发明的数据处理方法,用以于一媒体数据流中存取一标的样本。首先,提供相应标的样本的信息。媒体数据流具有多个样本,其中一预定数目的样本信息被计算,且计算结果被储存于至少一快取项目中。本发明通过将相应标的样本的信息与个别快取项目的计算结果进行比对以找出快取项目中的一个。找到该快取项目之后,即可快速地在对应于该快取项目的样本群中找到标的样本。本发明的数据处理系统,包括一媒体数据流、至少一快取项目与一处理单元。媒体数据流具有多个样本。一既定数目项目的样本信息被计算,且计算结果被储存于至少一快取项目中。处理单元接收相应标的样本的标的样本信息,通过将标的样本信息与个别快取项目的计算结果进行比对,找出快取项目中的一个,且在找到快取项目之后,即可快速地在对应于该快取项目的样本群中找到标的样本。本发明上述方法可以通过程序代码方式收录于实体媒体中。当程序代码被机器加载且执行时,机器变成用以实行本发明的装置。图1显示一STTS盒例子。图2显示一STSS盒例子。图3显示一STSC盒例子。图4为一示意图显示依据本发明实施例的STTS盒中的项目与其相应预先计算的快取项目。图5A~5D显示累增处理的例子。图6为一流程图系显示依据本发明实施例的数据处理方法。图7为一流程图系显示依据本发明另一实施例的数据处理方法。100STTS盒200STSS盒300STSC盒E1、E2、...、E15项目CE1、CE2、...、CE5快取项目500播放状态510内存511配置给STSS盒的快取项目的内存空间512配置给STSC盒的快取项目的内存空间513配置给STTS盒的快取项目的内存空间S601、S602、S603步骤S701、S702、S703步骤具体实施方式本发明提供数据处理方法及系统,其中提出预先处理的快取项目(pre-processedcacheentry)、共享快取资源(sharedcachepool)与递增处理(incrementalprocessing)等机制。在以下实施例中,数据处理方法及系统是用以译码MPEG-4档案,其已经于ISO标准中明确定义,为其并非用以限定本发明。MPEG-4档案的概述在ISO14496-12的标准规格中已经提出,其可以结合来进行参考说明。预先处理的快取项目图4显示依据本发明实施例的STTS盒中的项目与其相应预先处理的快取项目。每一快取项目记录一个群组的STTS盒项目的累计总时程。在此实施例中,每一群组包含3个STTS盒项目。如图4所示,STTS盒项目E1、E2与E3的结束时间由快取项目CE1记录,STTS盒项目E4、E5与E6的结束时间由快取项目CE2记录,STTS盒项目E7、E8与E9的结束时间由快取项目CE3记录,STTS盒项目E10、E11与E12的结束时间由快取项目CE4记录,以及STTS盒项目E13、E14与E15的结束时间由快取项目CE5记录。举例来说,假设STTS盒项目E4记录3个样本且每一样本的时程为5,STTS盒项目E5记录5个样本且每一样本的时程为10,且STTS盒项目E6记录7个样本且每一样本的时程为8,则快取项目CE2记录15个样本的结束时间为CE1的结束时间加上121。至于其它快取项目的计算则以此类推。值得注意的是,快取项目中记录的时程可以事先进行计算。为了找出一特定译码时间,可以由第一个快取项目所记录的总时程开始累加,直至累加的总时程等于或超过特定译码时间,从而找出一个快取项目(也就是进行线性搜寻),也可以在这些快取项目中进行二元搜寻。在找出快取项目之后,相应此找出的快取项目的STTS盒项目则可以依据公知的线性搜寻方法来进行检查,其中由找出的快取项目中的第一个媒体样本开始累加样本时程,直至找出的快取项目中样本的累加时程与此找出的快取项目的前一个快取项目的累加总时程的总合等于或超过标的译码时间。由于储存在快取项目中预先处理的数据可以直接进行存取,因此可以减少存取媒体档案频率。值得注意的是,预先处理的快取项目也同样地可以应用到STSS与STSC盒上。在STSC盒中,快取项目中记录被目前与之前的快取项目涵盖的聚集中样本的总数目。共享快取资源在一些实施例中,每一盒所分配的快取项目的数目可以是固定或是依据每一盒的大小来动态决定。在一些实施例中,高速缓存的总大小是有限的,且每一盒的快取项目的配置可以使用一共享快取资源模型来决定。在共享快取资源中,一个盒的快取项目的数目可以依据需要快取项目的盒中的项目数目来决定。举例来说,为了要配置一既定数量的快取项目给STTS、STSS与STSC盒,系统会先配置一第一比率的快取项目给STSS盒。第一比率可以是STTS盒中项目的数目除上快取项目的总数。在一些实施例中,可以限制配置给STSS盒的快取项目的数目必须小于等于一个事先定义的最大值。之后,系统再配置一第二比率的快取项目给STSC盒。第二比率可以是STSC盒中项目的数目除上快取项目的总数。在一些实施例中,可以限制配置给STSC盒的快取项目的数目必须小于等于一个事先定义的最大值。最后,系统会将剩余的快取项目配置给STTS盒。值得注意的是,本发明中快取项目的配置顺序并不限定于前述方式,本发明可以涵盖任何的配置顺序与配置方式。累增处理如前所述,通过预先计算的快取项目,许多花费在冗长计算的时间都将可以减少。然而,如果这些盒(STTS、STSS与STSC)非常的大,则也需要大量的时间来计算所有快取项目。举例来说,如果必须在播放之前准备好STTS盒的完整的快取项目,则相应每一个快取项目的STTS盒项目群组的累加总时程都必须计算。为了减少由于在播放之前计算快取项目所导致的响应时间,快取项目的计算可以利用累增处理的概念进行。在累增处理中,在播放媒体数据之前会先计算一部分的快取项目,而剩余的快取项目将会在播放的同时日益增加地计算。如果使用者搜寻的数据在目前已经准备好的快取项目中找不到时,则快取项目的计算将会继续进行直至使用者搜寻的数据被快取项目涵盖为止。图5A~5D显示累增处理的例子。在此例子中,内存510的内存空间511配置给相应STSS盒的快取项目,内存510的内存空间512配置给相应STSC盒的快取项目,且内存510的内存空间513配置给相应STTS盒的快取项目。如图5A所示,在播放媒体数据之前(请见播放状态500),对于个别的盒,只有一部分的快取项目被计算。个别的盒的剩余的快取项目将会在播放的同时逐渐增加地计算,如图5B所示。由于计算系于播放的同时逐渐完成,每一次只有计算一小部分的快取项目(如图5C所示),使用者将不会发觉播放中的任何时间延迟。如果要搜寻一个在目前译码时间之前的标的译码时间时,由于所需的数据可以在计算出的快取项目中找到,使用者将不会发觉时间延迟。如果要搜寻一个标的译码时间,而所需数据无法在计算出的快取项目中找到时,则快取项目的计算将会继续进行直至使用者搜寻的数据被快取项目涵盖为止,如图5D所示。图6显示依据本发明实施例的数据处理方法。在此实施例中,使用STTS盒为例,但并非用以限制本发明。如步骤S601,接收要寻找的译码时间。如步骤S602,使用二元搜寻或线性搜寻先找到一个快取项目。如步骤S603,在找出快取项目之后,本发明方法只需要在相应于此快取项目的项目群组中搜寻标的样本,其通过累加STTS盒项目中个别样本的时程,直至找出的快取项目中样本的累加时程与此找出的快取项目的前一个快取项目的累加总时程的总合等于或超过标的译码时间。因此,可以减少总搜寻的时间。值得注意的是,如果此样本是以搜寻方式来进行播放,则需要进一步判断此样本是否可以进行随机存取。在媒体数据中可以分为可以随机存取的样本以及无法随机存取的样本。可以随机存取的样本表示这个样本可以在不用考虑到其它样本的情形下被搜寻且进行译码。如果需要的样本不是可以随机存取的样本,则可以由STSS盒中搜寻一个最接近(等于或小于)此样本的随机存取点(可以随机存取的样本),且由STTS盒搜寻此随机存取点的译码时间。图7显示依据本发明另一实施例的数据处理方法。在此实施例中,使用STSC盒为例,但并非用以限制本发明。如步骤S701,接收要寻找的样本,其具有一样本编号。如步骤S702,使用二元搜寻或线性搜寻找到一个快取项目。如步骤S703,在找出快取项目之后,本发明方法只需要在相应于此快取项目的项目群组中搜寻标的聚集编号。值得注意的是,如果此样本是以搜寻方式来进行播放,则可以依据找出的聚集编号所相应的样本说明索引来由样本说明表格(STSD)中撷取样本的相关信息。本发明的方法,或特定型态或其部分,可以以程序代码的型态包含于实体媒体,如软盘、光盘片、硬盘、或是任何其它机器可读取(如计算机可读取)储存媒体,其中,当程序代码被机器,如计算机加载且执行时,此机器变成用以参与本发明的装置。本发明的方法与装置也可以以程序代码型态通过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序代码被机器,如计算机接收、加载且执行时,此机器变成用以参与本发明的装置。当在一般用途处理器实际操作时,程序代码结合处理器提供一操作类似于应用特定逻辑电路的独特装置。上述具体实施例方式仅用以说明本发明,而非限定本发明。权利要求1.一种数据处理方法,用以于一媒体数据流中存取一标的样本,该媒体数据流具有多个样本,其特征在于,该方法包括下列步骤提供相应该标的样本的标的样本信息,其中一既定数目的多个项目的样本信息被计算,且该计算结果被储存于至少一快取项目中;通过将所述标的样本信息与每一快取项目的所述计算结果进行比对,找出所述多个快取项目中的一个;以及在找到所述快取项目之后,由找出的该快取项目的所述多个项目中找到所述标的样本。2.如权利要求1所述的数据处理方法,其特征在于,更包括依据所述多个项目的数目判断所述多个快取项目的数目。3.如权利要求1所述的数据处理方法,其特征在于,更包括当播放时计算一既定数目的所述多个项目的样本信息。4.如权利要求1所述的数据处理方法,其特征在于,更包括提供至少一表格,其中该表格包括一译码时间一样本盒,记录所述多个项目与相应的所述样本信息,所述样本信息包括在相应的项目中所述多个样本的译码时间。5.如权利要求4所述的数据处理方法,其特征在于,所述标的样本信息包括一特定译码时间。6.如权利要求5所述的数据处理方法,其特征在于,找出的快取项目中所述多个样本的累加总时程等于或超过标的译码时间。7.如权利要求1所述的数据处理方法,其特征在于,更包括提供至少一表格,其中该表格包括一样本一聚集盒,包括媒体数据流的聚集,且该样本信息包括在个别聚集中所述多个样本的数目。8.如权利要求7所述的数据处理方法,其特征在于,找出的快取项目中所述多个样本的累加样本总数等于或超过标的样本编号。9.如权利要求1所述的数据处理方法,其特征在于,所述媒体数据流为一MPEG-4档案。10.一种数据处理系统,其特征在于,包括一媒体数据流,具有多个样本;至少一快取项目,用以储存相应一既定数目的多个项目的样本信息被计算的一计算结果;以及一处理单元,用以接收相应一标的样本的标的样本信息,通过将所述标的样本信息与每一快取项目的计算结果进行比对,找出所述多个快取项目中的一个,且在找到该快取项目之后,由找出的该快取项目的所述多个项目中找到所述标的样本。11.如权利要求10所述的数据处理系统,其特征在于,所述处理单元进一步依据所述多个项目的数目判断所述多个快取项目的数目。12.如权利要求10所述的数据处理系统,其特征在于,当播放时,处理单元进一步计算一既定数目的所述多个项目的样本信息。13.如权利要求10所述的数据处理系统,其特征在于,更包括至少一表格,其中该表格包括一译码时间一样本盒,记录所述多个项目与相应的所述样本信息,该样本信息包括在相应的项目中所述多个样本的译码时间。14.如权利要求13所述的数据处理系统,其特征在于,所述标的样本信息包括一特定译码时间。15.如权利要求14所述的数据处理系统,其特征在于,找出的快取项目中所述多个样本的累加总时程等于或超过标的译码时间。16.如权利要求10所述的数据处理系统,其特征在于,更包括至少一表格,其中该表格包括一样本-聚集盒,包括所述媒体数据流的聚集,且该样本信息包括在个别聚集中所述多个样本的数目。17.如权利要求16所述的数据处理系统,其特征在于,找出的快取项目中所述多个样本的累加样本总数等于或超过标的样本编号。18.如权利要求10所述的数据处理系统,其特征在于,所述媒体数据流为一MPEG-4档案。19.如权利要求10所述的数据处理系统,其特征在于,所述数据处理系统为一MPEG-4档案译码器。全文摘要一种数据处理方法及系统,用以于一媒体数据流中存取一标的样本。媒体数据流具有多个样本,其中一预定数目的样本信息被计算,且计算结果被储存于至少一快取项目中。本发明通过将相应标的样本的信息与个别快取项目的计算结果进行比对以找出快取项目中的一个。找到该快取项目之后,即可快速地在对应于该快取项目的样本群中找到标的样本。文档编号H04N7/24GK1937768SQ20061006657公开日2007年3月28日申请日期2006年4月3日优先权日2005年9月20日发明者苏展弘,谢郁震申请人:联发科技股份有限公司