数字节目自动排序方法

文档序号:7622450阅读:870来源:国知局
专利名称:数字节目自动排序方法
技术领域
本发明属于数字电视技术领域,具体地说,是涉及ー种对数字节目的自动排序方法。
背景技术
数字电视正在全国各地迅速推广并将最終取代模拟电视。目前,全国各地的网络运营商在播放数字节目时,往往使用不同方案的EPG(电子节目指南)系统对节目信息进行定义处理,然后经过复用后,通过电视信号中的PSI/SI (Program Specific Information/Specific Information,节目定义信息/定义信息)信息播出。在PSI/SI信息中定义有姆套数字节目的唯一服务编号Service id。若当地有线网络运营商需要对各套数字节目的排列顺序进行特别定义,则还需要在PSI/SI信息中写入每套数字节目所对应的逻辑频道号LCN(Logic Channel Number),从而为接收终端提供一种有序的节目排列方式。但是,这种 针对LCN的节目排序方式目前仅适合机顶盒产业ー批订单就针对ー个运营商的研、产、销模式,对于数字电视一体机而言,由于产品需要面向全国市场,因此在产品销往不同城市、地区时,并不能事先预知所有地区的有线网络运营商的节目排序规则,而且有的运营商习惯将LCN定义在网络信息表NIT(Network Information Table)中,有的定义在业务群关联表 BAT (Bandwidth Allocation Threshold)中,还有的定义在服务描述表 SDT (ServiceDescription Table)中。有的在ー个频点发放所有节目的LCN,有的只在本频点发送本频点节目的LCN,而且各地描述子的数据结构也不一样,由此导致现有的数字电视一体机不能按照当地有线网络运营商的要求对所有节目进行自动排序,往往都是根据各地情况定向开发,不仅増加了很多人力物力,而且系统程序难以维护。

发明内容
本发明的目的在于提供ー种数字节目的自动排序方法,以实现按照当地有线网络运营商的要求对数字节目进行自动排序。为解决上述技术问题,本发明采用以下技术方案予以实现ー种数字节目自动排序方法,包括以下步骤(I)请求各频点的NIT表、BAT表和SDT表;(2)提取各表中的所有私有描述子;(3)提取描述子标签值相同的私有描述子,若该标签值的所有私有描述子存在与之一一对应的Service id,则解析该标签值的所有私有描述子中的描述子数据是否具有连续性,若有,则认为是LCN;若该标签值的所有私有描述子不存在与之——对应的Service id,则将该标签值的所有私有描述子中的描述子数据与所有节目的Service id进行对比,若找到全部对应的Service id,则依次从各Service id以外的描述子数据中提取数据进行解析,若存在具有连续性的数据,则认为是LCN;
若没有找到LCN,则依次提取下一组描述子标签值相同的私有描述子进行解析;(4)将Service id和解析出的LCN通过Service id与节目信息关联起来;(5)按照LCN的大小对节目进行排序。进ー步的,在所述步骤(3)中,首先判断相同标签值的所有私有描述子是否是SDT表中的私有描述子;若是,则在SDT表中姆个节目的业务描述符中查找与所述私有描述子--对应的 Service id。又进ー步的,在所述步骤(3)中,将相同频点的所有私有描述子中,描述子标签值相同的私有描述子连同当前频点值保存起来;并且,若某一相同标签值的所有私有描述子
存在与之--对应的Service id,则将Service id同与之对应的私有描述子关联保存,形
成与Service id个数对应的多个数据块;否则,将该标签值的所有私有描述子中的描述子长度累加,描述子数据合并作为ー个描述子保存,形成ー个数据块。由此形成的数据块,若存在下述三种情況,则认为在私有描述子中有可能存在有线网络运营商定义的LCN:第一种情况,在所形成的所述数据块中,若描述子标签值相同的数据块个数等于节目个数,则分析该标签值的每个数据块中的描述子数据,寻找具有连续性的数据,作为LCN。进ー步的,所述寻找具有连续性的数据的过程为分析每个描述子数据,每相邻的两个字节循环组合成ー个数字,对比所形成的所有数字是否具有连续性,如果连续,则认为是 LCN。第二种情况,在所形成的所述数据块中,若描述子标签值相同的数据块只有ー个,且数据块中私有描述子的描述子长度值Descriptorjength是节目个数N的整数倍,则分析该数据块中的描述子数据,查找与全部Service id 一一对应的数据,如果找到所有的Service id,则提取姆个Service id之后的数据并分析其中是否具有连续性的数据,若有,则认为是LCN,否则,认为不存在LCN;若在该数据块中的描述子数据中没有查找到与全部Service id——对应的数据,则认为不存在LCN。进ー步的,所述分析该数据块中的描述子数据的过程为从描述子数据的第一个字节开始,将每相邻的两个字节循环组合成ー个数字,然后与所有节目的Service id进行对比,若存在相同的数字,贝1J认为是Service id,然后依次后移(Descriptor_length/N)个字节,并依次提取两个字节组合成数字,与所有节目的Service id进行对比,以找到所有的Service id ;在查找到的姆ー个Service id之后依次提取两个字节组成数字,并验证数字的连续性,若连续则认为是LCN,否则,在查找到的每ー个Service id之后顺序后移ー个字节后,再依次提取两个字节组成数字,并验证数字的连续性,若连续则认为是LCN,以此循环直到数据验证完毕。第三种情况,若所形成的所述数据块的个数大于1,且描述子标签值相同的数据块个数与频点个数相同,或者虽然描述子标签值相同的数据块个数与频点个数不同,但是该标签值的所有数据块中的描述子长度值之和是节目个数的整数倍,则分析该标签值的所有
数据块中的描述子数据,查找与全部Service id--对应的数据,如果找到所有的Service
id,则在剩余的数据中分析是否具有连续性的数据,若有,则认为是LCN,否则,不存在LCN ;如果找不到所有的Service id,则认为不存在LCN。
优选的,在所述步骤(5)中,针对所述LCN利用插入排序、冒泡排序、选择排序、快速排序、推排序或者归并排序等算法对节目进行排序。再进ー步的,若找不到所述的LCN,则系统按照Service id的大小对所有节目进行排序。与现有技术相比,本发明的优点和积极效果是本发明的数字节目自动排序方法可以动态识别不同有线网络运营商定义的逻辑频道号LCN,无论运营商选择在哪个表中发放LCN,或者通过何种形式进行发放,都可以统ー读取,然后进行排序处理,具有很强的适应性和通用性。采用该节目排序方法设计的数字电视一体机,无论销往何地,都能按照当地有线网络运行商定义的排序规则对所有节目进行正确排序,从而节约了人力物力,方便了电视机程序的维护管理工作。
结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更加清楚。


图I是本发明所提出的数字节目自动排序方法中建立数据链表的一种实施例的程序流程图;图2是数据链表的结构图;图3是从数据链表中寻找LCN并对数字节目进行排序的程序流程图。
具体实施例方式下面结合附图对本发明的具体实施方式
进行详细地描述。首先,对本发明所提出的数字节目自动排序方法的基本设计思路进行简要介绍。目前的数字电视信号都遵循DVBC规范和PSI/SI规范,在DVBC规范和PSI/SI规范中没有定义节目排序的描述符,有线网络运营商若要自己定义节目排列顺序,则必须通过PSI/SI信息中的私有描述子进行定义。在PSI/SI规范中,只有描述子标签值descriptor_tag在0x80至OxFE的描述子为用户自定义描述子,即私有描述子;且运营商自定义的逻辑频道号LCN只能在NIT、SDT或者BAT表中定义,并赋予相同的描述子标签值deSCriptor_tag值,随PSI/SI信息发放。本发明即是通过分析EPG系统中定义的描述子标签descriptor_tag的值,来查找运营商定义的私有描述子;然后通过分析私有描述子中的数据,来提取保存在其中的LCN,进而根据LCN数据和节目信息对节目进行排序,以达到各地方网络运营商的节目排序要求。因为PSI/SI规范对每个业务描述以及每个描述子都有规范定义,而用户自定义的描述子不会与规范中的描述子冲突,因此,可以判断出哪些是用户自定义的私有描述子。考虑到LCN必须通过每套数字节目的唯一服务编号Service id与节目进行关联,因此LCN必与Service id是成对的;前端运营商通过复用器发送排序描述数据只有两种情况一种情况是ー个Service id对应ー个存储有LCN的私有描述子,这种情况通常出现在SDT表中,即运营商将LCN定义在SDT表中时,遵循这种定义模式,此时只需要解析出所有私有描述子中具有连续性的数据,则该连续性数据即为LCN ;第二种情况就是Service id与LCN都定义在私有描述子中,比如运营商在NIT或者BAT表中定义LCN时即遵循该定义模式;在这种情况下可以通过分析私有描述子中的数据,与所有节目的Service id进行对比,找到对应的Service id ;然后依次从Service id以外的数据中寻找具有连续性的数据,即认为找到了 LCN数据。最后将Service id和LCN通过Service id与节目信息关联起来,依据LCN的大小对节目进行排序即可。下面通过ー个具体的实施例来详细阐述所述数字节目自动排序方法的具体设计流程。实施例一,本实施例针对前端运营商发送排序描述数据的两种情况设计不同的LCN提取方法,由于事先不能预知运营商将LCN定义在哪个表里,因此需要首先提取各频点的NIT表、BAT表和SDT表,分别进行分析;针对各表中的所有私有描述子(即描述子标签值在0x80至OxFE的描述子),由于事先不能预知运营商将包含有LCN的私有描述子的描述子标签定义为何值,因此需要按照描述子标签值进行分组。即,将具有相同描述子标签值的所有私有描述子分为ー组,所述私有描述子的数据结构定义如下
Userdefined-Descriptor {
Descriptor-tag8描述子标签,大小为8bit
Descriptor-Iength 8描述子长度,大小为8bit
Descriptor-Data 128 描述子数据,大小为 128bit
}o提取第一组描述子标签值相同的私有描述子,执行以下的LCN寻找过程针对第一种情况,若该标签值的所有私有描述子存在与之——对应的Serviceid,则解析该标签值的所有私有描述子中的描述子数据是否具有连续性,若有连续性,则认为该数据即为LCN,退出LCN的寻找过程;否则,认为LCN可能与Service id —同定义在私有描述子中,即第二种情况,或者保存在其它描述子标签值的私有描述子中。针对第二种情况,若该标签值的所有私有描述子不存在与之一一对应的Serviceid,则将该标签值的所有私有描述子中的描述子数据与所有节目的Service id进行对比,若找到全部对应的Service id,则依次从各Service id以外的所述描述子数据中提取数据进行解析,若存在具有连续性的数据,则认为该连续性的数据即为LCN,退出LCN的寻找过程;否则,认为该组私有描述子中不包含运营商定义的LCN。若在当前ー组私有描述子中没有找到LCN,则依次提取下一组描述子标签值相同的私有描述子进行解析,即重复执行上述的LCN寻找过程。若找到了 LCN,则将Service id和解析出的LCN通过Service id与节目信息关联起来,然后按照LCN的大小对节目进行自动排序;若最終找不到LCN,则本系统优选按照Service id的大小对所有节目进行排序。作为数字节目自动排序方法的ー种具体实现步骤,本实施例通过建立数据链表的方式来对提取出的私有描述子进行存储,具体实现步骤如下SlOl、当搜索数字节目时,提取频点列表;S102、调谐到某一频点进行搜台;S103、创建数据链表;
在本实施例中,所述数据链表为ー个ニ维链表,其链表结构如图2所75,包括链表头Head和数据块Save_Descriptor,所述数据块Save_Descriptor的数据结构如下
Save-Descriptor{
Unsign intFreq;频点信息
Unsign shortService—id; 卞目的 Service id
Userdefined-Descriptor Descriptor私有描述子数据
};S104、请求该频点的NIT表、BAT表和SDT表; S105、判断各表中是否存在合法的私有描述子,若存在,则执行后续步骤;否则,跳转至步骤S107 ;在本实施例中,分析各表中的所有描述子,由私有描述子的数据结构可知私有描述子的自身长度为2个字节,如果具有数据,那么长度必然大于等于3个字节;判断每个描述子的描述子标签descriptor_tag的值是否在0x80至OxFE之间,若是,贝U为私有描述子(即网络运营商自定义的描述子);进ー步读取所述私有描述子的描述子长度desCriptor_length,如果描述子长度descriptor_length小于3,则为非法的描述子;如果大于2,则认为在描述子数据Descriptor_Data(descriptor_length后的数据段)中存在数据,为合法的私有描述子。S106、提取该频点上的NIT、BAT和SDT表中的所有合法的私有描述子,形成数据块Save_Descriptor,存入数据链表;在本实施例中,首先将所有描述子标签Descriptor_tag的值相同(以下简称为Descriptor_tag相同)的私有描述子连同当前频点按照上述数据块Save_Descriptor的数据结构保存,并加入到图2所示的数据链表中,且Descriptor_tag相同的各个数据块Save_Descriptor保存在数据链表的同一行。如果某ー相同标签值的所有私有描述子是该频点
中SDT表的私有描述子,且姆个节目的业务描述符中存在与之--对应的Service id,则
将Service id同与其对应的私有描述子关联保存,形成不同的数据块Save_Descriptor,即姆ー个私有描述子连同当前频点以及与其对应的Service id形成ー个数据块Save_Descriptor,保存到图2所示数据链表的同一行中。如果私有描述子是从当前频点的BAT表或者NIT表中获取的,且存在多个Descriptor_tag相同的私有描述子,则将Descriptor_tag相同的所有私有描述子的描述子长度descriptor_length累加,descriptor_data中的数据合并后作为ー个数据descriptor保存成一个描述子,进而连同当前频点保存成ー个数据块Save_Descriptor,存入图2所示的数据链表。S107、判断是否到达最后ー个频点,若是,则执行步骤S109 ;否则,执行后续步骤;S108、调谐到下ー个频点,返回步骤S104 ;S109、将创建好的数据链表保存到系统内存中;S110、数据链表创建结束。当数据链表中没有数据时,链表的表头Head为空;而当向数据链表中存入数据块Save_Descriptor时,则表头Head不为空,可以将存入的第一个数据块Save_Descriptor中的描述子数据的第一个字节同时存入到表头Head中,以表示该数据链表不为空。在创建好数据链表后,则可以通过分析该数据链表中的数据来解析其中是否定义有LCN。分析数据是不是LCN的依据是(I)是否存在具有连续性的数据;(2)数据中是否存在与Service id相同的数据,与节目能够关联。下面结合图3对LCN的寻找过程进行详细阐述,包括以下步骤S301、读取数据链表的表头Head ;S302、判断表头Head是否为空,若为空,则表示数据链表中没有数据块,即不存在LCN,跳转至步骤S319 ;若不为空,则表示可能存在LCN,执行后续步骤;S3O3、读取一组 Descriptor_tag 相同的数据块 Save_Descriptor ;
在这里,即读取数据链表中位于同一行的所有数据块Save_Descriptor,本实施例优选从第一行顺序读取;S304、判断是否只有ー个数据块Save_Descriptor,若是,则表示有线网络在ー个频点发送了全部节目的描迷子,可以通过解析该描述子来查找是否存在运营商定义的LCN,执行后续步骤;否则,跳转至S310 ;S305、判断当前数据块 Save_Descriptor 中描述子长度 descriptor_length 的值是否是节目个数N的整数倍,如果是,则说明LCN可能存在于该数据块的描述子数据descriptor_data中,执行后续的LCN提取步骤;否则,说明该数据块的描述子数据descriptor_data中不可能存在LCN,跳转至步骤S317 ;S306、分析当前数据块Save_Descriptor中描述子数据descriptor_data,查找其中的 Service id ;根据PSI/SI规范,Service id和LCN的大小均为两个字节;为了分析描述子数据descriptor_data中是否存在Service id和LCN,本实施例对描述子数据descriptor_data中每相邻的两个字节数据进行循环组合,即提取前ー个字节数据HIGH8 = data[n],后ー个字节数据L0W8 = data[n+l] ,η = O, I, 2,...,将提取的两个字节组合成ー个数字CuerData=(((HIGH8) << 8) I (L0W8));其中,公式(((HIGH8) << 8) | (L0W8))即表示将前ー个字节左移8位,作为数字CuerData的高8位,然后与后一个字节位或,组成ー个大小为两个字节的数字。将数字CuerData与所有节目的Service id进行比对(所有节目的Service id可以事先从PSI/SI信息的PAT表或者PMT表中读取),看是否存在相同,如果相同,则可能是Service id,依次后移(Descriptor_length/N)个字节,同样提取两个字节组合成数字,比对看是否是Service id,直到分析完descriptor_data中的所有数据。S307、判断是否找到所有的Service id,若是,贝U说明在姆个Service id后面可能存在LCN,执行后续步骤;否则,说明描述子数据descriptor_data中不存在LCN,跳转至步骤 S317 ;S308、在每个Service id后面依次提取两个字节数据进行组合,组合方式同步骤S306中的相关描述;验证提取出的所有数据的连续性,如果有连续性,则认为是LCN ;如果不连续,则在每个Service id之后首先后移一个字节,然后再提取两个字节数据进行组合,并验证提取出的所有数据的连续性,以此循环直到数据验证完毕;S309、判断是否找到LCN,若是,则执行步骤S320 ;否则,执行步骤S317 ;
5310、判断该描述子标签值068(1^。101'_138的数据块Save_Descriptor的个数是否与节目个数N相同,若相同,则说明LCN可能存在于该标签值的描述子数据中,即网络运营商在SDT表中定义LCN,执行后续步骤;否则,表明在该标签值的数据块中不存在LCN,跳转至步骤S312 ;S311、分析姆个数据块中的描述子数据descriptor_data,即顺序提取两个字节HIGH8 = data[n],L0W8 = data[n+l], η = O, I, 2,...,循环组合成一个数字 CuerData =(((HIGH8) << 8) I (L0W8)),对比组合成的所有数字,看是否具有连续性,如果连续则是LCN,并且在数据块Save_Descriptor中保存有与姆个LCN对应的Service id,提取所述的Service id,跳转至步骤S320 ;否则,跳转至步骤S317 ;S312、判断该描述子标签值Descriptor_tag的数据块Save_Descriptor的个数 是否与频点个数相同,若相同,则表明有线网络在一个频点发送了本频点的所有节目信息,比如在一个频点发送了青岛台的全部节目信息,而在另一频点发送中央台的各套节目信息等;此时LCN很有可能存在于该标签值的描述子数据中,跳转至步骤S314对描述子数据进行解析;否则,表明在该标签值的数据块中不存在LCN,执行步骤S313 ; S313、判断该描述子标签值Descriptorjag中所有数据块的描述子长度Descriptor_length之和是否是节目个数N的整数倍,若是,则说明LCN可能存在于该标签值的描述子数据中,执行后续步骤;否则,表明在该标签值的数据块中不存在LCN,执行步骤 S317 ;S314、分析每个数据块中的描述子数据deSCript0r_data,即顺序提取每个描述子数据中的姆两个字节HIGH8 = data[n], L0W8 = data[n+l], η = 0,1, 2,...,循环组合成ー个数字CuerData = (((HIGH8) < < 8) | (L0W8));将组合成的所有数字与所有节目的Service id进行对比,如果找到全部的Service id,则执行后续步骤;否则,执行步骤S317 ;S315、在找到的每ー个Service id后面依次提取两个字节数据进行组合,验证提取出的所有数据的连续性,如果有连续性,则认为是LCN ;如果不连续,则在每个Serviceid之后首先后移ー个字节,然后再提取两个字节数据进行组合,并验证提取出的所有数据的连续性,以此循环直到数据验证完毕;S316、判断是否找到LCN,若是,则执行步骤S320 ;否则,执行后续步骤;S317、判断是否到达数据链表的结尾,若是,则执行步骤S319 ;否则,执行后续步骤;S318、读取下一组Descriptor_tag相同的数据块Save_Descriptor,返回步骤S304 ;S319、按照Service id对节目进行排序,跳转至步骤S323 ;执行到此步骤,表明有线网络运营商没有在PSI/SI信息中定义LCN,即没有规定节目排列顺序,此时系统优选按照Service id的大小顺序对各套节目进行排序。S320、组合 Service id 和 LCN;在本实施例中,将Service id、LCN以及频点信息存入与lcn_info_t类似的数据链表或者数组中,所述lcn_info_t的数据结构为typedef struct lcn_info_s {
Unsign intFreq;频点信息
Unsign shortService—id; 节目的 Service id
Unsign shortlcn;LCN
}lcn-info-t;S321、将LCN通过Service id与节目信息关联;S322、将各套节目按照LCN的大小顺序进行排序;
在本实施例中,排序算法可以采用插入排序、冒泡排序、选择排序、快速排序、堆排序或者归并排序等现有方法具体完成,本实施例并不仅限于以上举例;S323、保存排序結果,结束节目排序过程。本实施例所提出的四个判断步骤S304、S310、S312、S313是按照LCN可能出现的三种情况定义的,在不满足此三种情况时,可以直接认为PSI/SI信息中没有定义LCN。当然,以上所述仅是本发明的ー种优选实施方式,应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.ー种数字节目自动排序方法,包括以下步骤 (1)请求各频点的NIT表、BAT表和SDT表; (2)提取各表中的所有私有描述子; (3)提取描述子标签值相同的私有描述子,若该标签值的所有私有描述子存在与之一一对应的Service id,则解析该标签值的所有私有描述子中的描述子数据是否具有连续性,若有,则认为是LCN; 若该标签值的所有私有描述子不存在与之一一对应的Service id,则将该标签值的所有私有描述子中的描述子数据与所有节目的Service id进行对比,若找到全部对应的Service id,则依次从各Service id以外的描述子数据中提取数据进行解析,若存在具有 连续性的数据,则认为是LCN; 若没有找到LCN,则依次提取下一组描述子标签值相同的私有描述子进行解析; (4)将Serviceid和解析出的LCN通过Service id与节目信息关联起来; (5)按照LCN的大小对节目进行排序。
2.根据权利要求I所述的数字节目自动排序方法,其特征在于在所述步骤(3)中,首先判断相同标签值的所有私有描述子是否是SDT表中的私有描述子;若是,则在SDT表中每个节目的业务描述符中查找与所述私有描述子--对应的Service id。
3.根据权利要求I所述的数字节目自动排序方法,其特征在干在所述步骤(3)中,将相同频点的所有私有描述子中,描述子标签值相同的私有描述子连同当前频点值保存起来;并且,若某一相同标签值的所有私有描述子存在与之一一对应的Service id,则将Service id同与之对应的私有描述子关联保存,形成与Service id个数对应的多个数据块;否则,将该标签值的所有私有描述子中的描述子长度累加,描述子数据合并作为ー个描述子保存,形成ー个数据块。
4.根据权利要求3所述的数字节目自动排序方法,其特征在于在所形成的所述数据块中,若描述子标签值相同的数据块个数等于节目个数,则分析该标签值的每个数据块中的描述子数据,寻找具有连续性的数据,作为LCN。
5.根据权利要求4所述的数字节目自动排序方法,其特征在于在所述寻找具有连续性的数据的过程中,分析每个描述子数据,每相邻的两个字节循环组合成ー个数字,对比所形成的所有数字是否具有连续性,如果连续,则是LCN。
6.根据权利要求3所述的数字节目自动排序方法,其特征在干在所形成的所述数据块中,若描述子标签值相同的数据块只有ー个,且数据块中私有描述子的描述子长度值descriptor_length是节目个数N的整数倍,则分析该数据块中的描述子数据,查找与全部Service id--对应的数据,如果找到所有的Service id,则提取姆个Service id之后的数据并分析其中是否具有连续性的数据,若有,则认为是LCN,否则,认为不存在LCN ;若在该数据块中的描述子数据中没有查找到与全部Service id一一对应的数据,则认为不存在LCN。
7.根据权利要求6所述的数字节目自动排序方法,其特征在于在所述分析该数据块中的描述子数据的过程中,从描述子数据的第一个字节开始,将每相邻的两个字节循环组合成ー个数字,然后与所有节目的Service id进行对比,若存在相同的数字,则认为是Service id,然后依次后移(Descriptor_length/N)个字节,并依次提取两个字节组合成数字,与所有节目的Service id进行对比,以找到所有的Service id;在查找到的姆ー个Service id之后依次提取两个字节组成数字,并验证数字的连续性,若连续则认为是LCN,否则,在查找到的每ー个Service id之后顺序后移一个字节后,再依次提取两个字节组成数字,并验证数字的连续性,若连续则认为是LCN,以此循环直到数据验证完毕。
8.根据权利要求3所述的数字节目自动排序方法,其特征在于若所形成的所述数据块的个数大于I,且描述子标签值相同的数据块个数与频点个数相同,或者虽然描述子标签值相同的数据块个数与频点个数不同,但是该标签值的所有数据块中的描述子长度值之和是节目个数的整数倍,则分析该标签值的所有数据块中的描述子数据,查找与全部Serviceid一一对应的数据,如果找到所有的Service id,则在剩余的数据中分析是否具有连续性的数据,若有,则认为是LCN,否则,不存在LCN ;如果找不到所有的Service id,则认为不存在 LCN。
9.根据权利要求I至8中任一项所述的数字节目自动排序方法,其特征在于在所述步骤(5)中,针对所述LCN利用插入排序、冒泡排序、选择排序、快速排序、推排序或者归并排序算法对节目进行排序。
10.根据权利要求I至8中任一项所述的数字节目自动排序方法,其特征在于若找不到所述的LCN,则系统按照Service id的大小对所有节目进行排序。
全文摘要
本发明公开了一种数字节目自动排序方法,包括以下步骤1、请求各频点的NIT表、BAT表和SDT表;2、提取各表中的所有私有描述子;3、解析私有描述子中的LCN;4、将Service id和解析出的LCN通过Service id与节目信息关联起来;5、按照LCN的大小对节目进行排序。本发明可以动态识别不同有线网络运营商定义的LCN,无论运营商选择在哪个表中发放LCN,或者通过何种形式进行发放,都可以统一读取,然后进行排序处理,具有很强的适应性和通用性。采用该节目排序方法设计的数字电视一体机,无论销往何地都能按照当地有线网络运行商定义的排序规则对所有节目进行正确排序,节约了人力物力。
文档编号H04N21/435GK102695085SQ20111007581
公开日2012年9月26日 申请日期2011年3月21日 优先权日2011年3月21日
发明者张明远 申请人:青岛海信电器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1