发明内容
本发明主要解决的技术问题是提供一种数字电视接收终端及其广告数据处理方法,以提高机顶盒等数字电视接收终端对广告数据的处理速度,提升用户的体验感。
本发明实施例提供了一种数字电视接收终端的广告数据处理方法,所述方法包括以下步骤:
接收服务器发送的广告数据,所述广告数据包括图片控制信息表、图片信息表或图片数据表,其中,每种表均具有相应的表标识;
解析接收的所述图片控制信息表、图片信息表或图片数据表中的一种或者多种,得到每种表相应的表标识;
对已解析得到所述表标识的一种或者多种图片控制信息表、图片信息表以及图片数据表进行判断,判断其对应的表标识是否已经存在于所述数字电视接收终端内;
若对应的表标识已经存在于所述数字电视接收终端内,则将同一表标识的所有表一一对应存储。
其中,在将广告数据存储之前,所述方法还包括以下步骤:
判断是否已获取所有的广告数据,若是,则将获取的广告数据打包后存储,否则继续获取广告数据。
其中,在获取所述图片控制信息表后,所述方法还包括以下步骤:
将所述图片控制信息表中的版本与已存储在所述数字电视接收终端的版本进行对比,判断是否需要对已存储的广告数据进行更新。
其中,接收服务器发送的广告数据的步骤之前,所述方法还包括以下步骤:
将所述广告数据预先保存至所述数字电视接收终端的结构体中。
其中,所述方法还包括以下步骤:
获取所述数字电视接收终端显示控制界面的类型以及服务器标识,根据所述显示控制界面的类型以及服务器标识获取所述广告数据的标识,根据所述广告数据的标识读取相应的图片数据,将读取的图片数据转换为与所述显示控制界面的类型匹配的格式后显示。
本发明实施例的还一目的在于提供一种数字电视接收终端,所述终端包括:
广告数据接收模块,用于接收服务器发送的广告数据,所述广告数据包括图片控制信息表、图片信息表或图片数据表,其中,每种表均具有相应的表标识;
广告数据解析模块,用于解析接收的所述图片控制信息表、图片信息表或图片数据表中的一种或者多种,得到每种表相应的表标识;
判断模块,用于对已解析得到所述表标识的一种或者多种图片控制信息表、图片信息表以及图片数据表进行判断,判断其对应的表标识是否已经存在于所述数字电视接收终端内;
存储模块,用于按照所述标识将获取的广告数据一一对应存储。
其中,所述判断模块,还用于判断是否已获取所有的广告数据,若是,则控制所述存储模块将获取的广告数据打包后存储,否则控制所述广告数据解析模块继续获取广告数据。
其中,所述终端还包括:
版本对比模块,用于将所述图片控制信息表中的版本与已存储在所述数字电视接收终端的版本进行对比,判断是否需要对已存储的广告数据进行更新。
其中,所述存储模块,还用于将所述广告数据预先保存至所述数字电视接收终端的结构体中。
其中,所述终端还包括:
显示控制模块,用于获取所述数字电视终端显示控制界面的类型以及服务器标识,根据所述显示控制界面的类型以及服务器标识获取所述广告数据的标识,根据所述广告数据的标识读取相应的图片数据,将读取的图片数据转换为与所述显示控制界面的类型匹配的格式后显示。
通过上述实施例,本发明使得机顶盒等数字电视接收终端快速、稳定、高效的实现对广告数据的处理,利于机顶盒等数字电视接收终端的推广普及。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明第一实施例提供了一种数字电视接收终端的广告数据处理方法,所述方法包括以下步骤:
接收服务器发送的广告数据,所述广告数据包括图片控制信息表、图片信息表或图片数据表,其中,每种表均具有相应的表标识;
解析接收的所述图片控制信息表、图片信息表或图片数据表中的一种或者多种,得到每种表相应的表标识;
对已解析得到所述表标识的一种或者多种图片控制信息表、图片信息表以及图片数据表进行判断,判断其对应的表标识是否已经存在于所述数字电视接收终端内;
若对应的表标识是否已经存在于所述数字电视接收终端内,则将同一表标识的所有表一一对应存储。
本发明第二实施例提供了一种数字电视接收终端,所述终端包括:
广告数据接收模块,用于接收服务器发送的广告数据,所述广告数据包括图片控制信息表、图片信息表或图片数据表,其中,每种表均具有相应的表标识;
广告数据解析模块,用于解析接收的所述图片控制信息表、图片信息表或图片数据表中的一种或者多种,得到每种表相应的表标识;
判断模块,用于对已解析得到所述表标识的一种或者多种图片控制信息表、图片信息表以及图片数据表进行判断,判断其对应的表标识是否已经存在于所述数字电视接收终端内;
存储模块,用于按照所述标识将获取的广告数据一一对应存储。
请参阅图1,图1示出了本发明实施例提供的数字电视接收终端的广告数据处理方法的流程。为便于说明,本发明实施例以数字电视接收终端为机顶盒为例进行说明。
在步骤S101中,接收服务器发送的广告数据。
其中,广告数据包括图片控制信息表、图片信息表或图片数据表,其中,每种表均具有相应的表标识。关于上述各个表的更详细的描述请参阅下文。
在具体实施过程中,接收服务器发送的广告数据的步骤之前,包括:
在机顶盒开机过程中读取所述存储器中保存的广告数据,在读取不到所述广告数据时直接进行接收来自服务器的广告数据步骤S101;在读取到所述广告数据时,将所述广告数据预先保存至所述数字电视终端的结构体中,并进行步骤S102。
在步骤S102中,解析接收的图片控制信息表、图片信息表或图片数据表中的一种或者多种,得到每种表相应的表标识。
在具体实施过程中,本发明实施例还将图片控制信息表中的版本与已存储在机顶盒的版本进行对比,判断是否需要对已存储的广告数据进行更新,在版本一致时,直接显示已存储在机顶盒内的广告数据,否则进行步骤S103。
上述实施例是实现机顶盒开机时的广告数据加载,这样就会在每次开机的时候得到上一次接收的广告数据,当在接收中判断版本一致时,直接用上一次的广告数据进行广告显示,大大提高效率。
在步骤S103中,对已解析得到所述表标识的一种或者多种图片控制信息表、图片信息表以及图片数据表进行判断,判断其对应的表标识是否已经存在于所述机顶盒内;若对应的表标识是否已经存在于所述机顶盒内,则进行步骤S104,否则进行步骤S105。
在步骤S104中,将同一表标识的所有表一一对应存储。
在具体实施过程中,还判断是否已获取所有的广告数据,若是,则将获取的广告数据打包后存储,否则继续获取广告数据。
在步骤S105中,将解析到的表直接进行存储。
在具体实施过程中,机顶盒在将广告数据进行显示时,获取所述机顶盒显示控制界面的类型以及服务器标识,根据显示控制界面的类型以及服务器标识获取所述广告数据的标识,根据广告数据的标识读取相应的图片数据,将读取的图片数据转换为与显示控制界面的类型匹配的格式后显示。
本发明使机顶盒节省大量时间,实现高效的数据接收处理机制,提供快速、稳定、高效的广告接收系统。
在另一实施例中,实现安全保护机制,即接收来自前端的广告数据步骤中,在断电、信号线被拔掉或者前端数据中断时,或者在接收的广告数据超出阀值时,或者接收的广告数据版本与存储器中的广告数据版本一样时,结束本方法不再进行将完成拼包的所述图片数据写入机顶盒的存储器步骤。
为实现另一种安全保护机制,防止系统崩溃后无法还原,将完成拼包的所述图片数据写入机顶盒的存储器步骤包括:将完成拼包的所述图片数据、及其初次写入的时间数据写入机顶盒的存储器。
在另一实施例中,对接收的广告数据不完整期间进行处理,即接收来自前端的广告数据步骤中,在接收的广告数据不完整时,同时进行所述接收广告数据步骤、与通过本身机制显示所述存储器中的图片步骤。
更具体的实施例中,接收来自前端的已将广告数据和电视节目数据复用的数据流TS步骤包括:
1)、获取广告数据所在的电子节目菜单EPG频点;
2)、在机顶盒开机的时候锁定所述频点;
3)、锁定所述频点后,设置广告数据接收通道的标志码传输包PID,并开通所述通道;
4)、采用所述通道接收来自前端的数据流TS,所述数据流是已将广告数据和电视节目数据复用的数据流;
5)、接收所述数据流TS的同时,采用过滤器来过滤掉除广告数据外的其他数据。
为更好的描述本发明,下面提供一具体实施例的应用说明:
请参阅图2,图2为机顶盒中广告图片信息、图片数据和传输流之间的关系。
本发明机顶盒支持多路Service拥有自己对应的广告图片的传输方式。在广告图片下发时,通过在广告图片传输流的控制段中插入PicLink Description描述子,完成为指定Service分配广告图片。连接过程中,支持一路Service链接一幅广告图片,也支持多个不同的Service链接同一幅广告图片,具体实现方式请参照图3所示的图片控制信息表和图4中PicLink Description的结构。
其中,图5所示为图片数据流的分段结构表;图6所示为图片信息表;图7所示为图片信息Pic_Info();图8所示为图片数据表:pic_segment_data_section()。
请参阅图9,图9示出了本发明实施中广告实现过程的流程。
通过上述图3至图8中各个表的关系,将广告数据打包成TS流的形式同其它电视节目复用,根据前端带宽情况,调整广告流的播放码率,机顶盒根据TS中广告特定的描述子来找到广告数据并解析出来,再由机顶盒将解析出来的广告图片通过特有的机制显示在终端电视机上。
请参阅图10,图10是广告数据接收过程流程。
首先获取广告数据所在的电子节目菜单(Electronic ProgramGuide,EPG)频点,在机顶盒开机的时候去锁定频点,如果锁频成功,进行下一步,如果失败则直接退出接收。锁频成功后设置广告数据接收通道的标识Pid,给接收广告数据开通道,再通过设置过滤器来过滤掉除广告数据外的其他数据。
本发明实施例中,广告数据加载过程描述如下:
机顶盒在开机过程中首先会去读取FLASH中保存的广告数据,如果没有数据则直接进行数据接收;如果有数据,先将FLASH中的数据保存到结构体中,然后再进行数据接收,这样就会在每次开机的时候得到上一次接收的数据,当在接收中判断版本一致时,直接用上一次的数据进行广告显示,大大提高效率。
本发明实施例中,对广告数据解析(针对图3至图8各个表的描述)过程描述如下:
由于图3至图8几个表具有相同的table_id,所以可以不分前后顺序一起接收。以下是针对每个表的解析数据的描述:
首先在存储过程中需要几个变量:
A、实际接收的对应关联个数(收到多少个图片控制信息表),用于存储图片信息和图片数据时根据每个图片控制信息表中描述的PicID进行查找;
B、实际接收的总segment个数,用于判断是否接收全部的segment;
C、实际接收一幅图片的segment个数,用于接收数据后将每个图片的数据拼包;
D、实际接收的图片信息个数,用于在接收的图片信息中查找数据;
E、为判断相同的section_id不去重复接收,本发明实施例实用二分法查找此section_id是否已经接收过,如果接收过则跳过。
请参阅图11,图11示出了本发明实施例中解析图片控制信息流程。
此表中描述了所有广告图片的对应关系,包括图片对应的service_id、图片的类型和图片的id;当table_extension_id和section_number同为0时表示图片控制信息表。首先解析出pic_control_version(版本),与机顶盒存储器FLASH里面数据版本进行比较。如果相同则表明没有图片版本变化,直接将FLASH里的数据拷贝给显示时所用的结构体,跳出数据接收。如果版本不相同,解析得到图片个数pic_number,用于判断数据是否接收完所有广告图片。在解析此表时,记录并保存接收图片控制信息表的个数(实际接收的关联个数),用于存储时的下标,存储每个对应关系的ServiceID、PicType、PicID;每收到一次图片控制信息表就将对应关联的个数加一次。在全部接收后,能得到共解析了多少个对应关系,就是上面描述的对应关联个数。
请参阅图12,图12为本发明实施例中解析图片信息表流程。
此表中表述了每个广告图片的信息数据:图片的宽高、原始大小、压缩后的大小、图片分段数据的数量、是否有压缩、图片的有效期等;首先判断实际接收的图片个数要小于最大值(最大值有运营商提供),因为三种表的接收顺序不是固定的,有可能先收到的不是图片信息表,所以要根据section_number(与pic_id相同)去找查找实际接收的控制信息表中是否已经接收过这个pic_id,如果存在,将解析的图片信息数据赋给pic_id对应的图片;如果不存在说明图片信息表是在图片控制信息表之前先收到的,那么将这个pic_id保存下来,同时将实际接收的图片信息个数加一次。
请参阅图13,图13示出了本发明实施例中解析图片数据表流程。
此表对应的是每个图片的数据区;与解析图片信息表相同,也要根据标识section_number(与pic_id相同)去找查找实际接收的控制信息表中是否已经接收过这个pic_id,如果不存在,则说明图片数据表是在图片控制信息表之前先收到的,也将这个pic_id保存下来,同时将实际接收的图片信息个数加一次。如果存在,将解析的图片数据赋给pic_id对应的图片(图片的buffer、segment_id、大小),同时将实际接收的一幅图片的segment个数加一次。
针对section的接收是三种表(图片控制信息表、图片信息表、图片数据表)同时接收,从码流中接收到一个section就去解析并保存同时将总的segment_num加1,这种情况下表的顺序没有先后,所以在接收图片信息表和图片数据表时首先要判断接收到的控制信息表中是否已经接收过这两个表中所描述的pic_id(section_number)。这样,不管先收到的是什么表都会将他先保存起来,再按照对应关系(图片控制信息表)中的描述去赋值。
在本发明实施例中,当广告数据全部接收完毕后,以接收的图片总个数为外层循环,先要判断一幅图片实际接收的segment和解析出来的segment(在图片信息表中有描述)个数是否相等。不相等说明没有接收全部的广告数据,直接用FLASH存储的广告数据进行显示;如果相等,再以每幅图片的实际接收的segment个数循环,根据pic_id取得某幅图片的segment数据和大小,将每个图片的segment数据按顺序拼起来,打包在一起,再根据实际接收的图片个数将数据一并写入FLASH。
图14示出了本发明实施例提供的广告图片的显示流程。
在本发明实施例中,机顶盒通过控件的方式来显示广告图片。首先在要显示广告的界面中国创建一个广告控件,由于每个界面要显示不同的广告图片,这里需要给出界面的类型和所对应的service_id,再根据service_id和界面的类型来取出图片的id(pic_id),再根据图片pic_id取出对应的图片信息:图片数据、宽、高、大小、图片类型(譬如gif、jpeg、bmp、I帧等);将取到的所有格式的图片数据解析成机顶盒默认显示的图片格式,通过空间的方式显示在界面上。
在本发明实施例中,在接收数据过程中的安全处理中不光做超时处理的机制,还判断描述中总的segment是否和实际接收的总个数相同,还有描述中每个图片的segment和实际接收每个图片segment个数是否相同。这样就保证数据接收是否正确是否收全;在进行FLASH读写时不只是判断crc校验,还加入初次写入FLASH的时间和日期,确保机顶盒在异常情况下能正常启动。
请参阅图15,图15为本发明实施例的广告更新流程图,鉴于图示内容已清晰表述,此处不再详述。
请参阅图16,图16示出了本发明实施例提供的数字电视接收终端的结构。
其中,广告数据接收模块161,用于接收服务器发送的广告数据,所述广告数据包括图片控制信息表、图片信息表或图片数据表,其中,每种表均具有相应的表标识;
广告数据解析模块162,用于解析接收的所述图片控制信息表、图片信息表或图片数据表中的一种或者多种,得到每种表相应的表标识;
判断模块163,用于对已解析得到所述表标识的一种或者多种图片控制信息表、图片信息表以及图片数据表进行判断,判断其对应的表标识是否已经存在于所述数字电视接收终端内;
存储模块164,用于按照所述标识将获取的广告数据一一对应存储。
在具体实施过程中,所述判断模块163,还用于判断是否已获取所有的广告数据,若是,则控制所述存储模块将获取的广告数据打包后存储,否则控制所述广告数据解析模块继续获取广告数据。
所述终端还包括:
版本对比模块165,用于将所述图片控制信息表中的版本与已存储在所述数字电视接收终端的版本进行对比,判断是否需要对已存储的广告数据进行更新。
所述存储模块164,还用于将所述广告数据预先保存至所述数字电视终端的结构体中。
显示控制模块166,用于获取所述数字电视终端显示控制界面的类型以及服务器标识,根据所述显示控制界面的类型以及服务器标识获取所述广告数据的标识,根据所述广告数据的标识读取相应的图片数据,将读取的图片数据转换为与所述显示控制界面的类型匹配的格式后显示。
本发明实施例无需按广告数据的排列顺序来等待正确顺序的广告数据,按照接收到的表的标识,判断是否已经存储有相同标识的表,若有,按照标识对应存储,若没有,直接存储,节省了大量时间,实现了高效的数据接收处理机制。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。