用于缓存电子节目指南的系统和方法

文档序号:7991349阅读:259来源:国知局
用于缓存电子节目指南的系统和方法
【专利摘要】用于在便携式设备(26)上缓存电子节目指南的方法通过当本地缓存(22)包含有关信息时从本地缓存向便携式设备下载频道信息和节目信息开始。然而,如果本地缓存缺少该信息,则便携式设备从服务器(12)下载频道信息和节目信息。然后,便携式设备分别根据下载的频道信息和节目信息来构造频道索引和节目索引,从而在便携式设备上建立电子节目指南。
【专利说明】用于缓存电子节目指南的系统和方法
[0001]相关申请的交叉引用
[0002]本申请基于35U.S.C.119(e)要求于2011年8月10日提交的美国临时专利申请N0.61/521, 971的优先权,该美国临时专利申请的教导并入本文。
【技术领域】
[0003]本发明涉及电子节目指南(EPG)。
【背景技术】
[0004]技术的进步向电视观众和收音机听众提供了过多的节目。为此,电视和收音机内容的提供商通常向其消费者提供电子节目指南(EPG)和交互式节目指南,该电子节目指南(EPG)和交互式节目指南具有显示当前和即将到来的节目的时间表信息的持续更新的菜单。诸如ITV等的一些EPG还具有后向滚动的特征以使用户能够赶上内容。
[0005]在大多数情况下,机顶盒(STB)用作观众将用以调换(tune)(即,选择)由有线电视或卫星电视提供商或其它网络服务运营商提供的内容的机制。为了识别观众可用的内容,STB将从由网络服务运营商维护的后端服务器取回EPG。备选地,STB可以通过对从网络服务运营商接收的传输流TS中的编码信息进行解码来获得EPG。STB将在被称作EPG安装的过程期间将EPG存档到硬盘等上,该过程可以证实是冗长的。实际上,网络服务运营商将基于节目和频道指派的改变来频繁地更新EPG。因此,STB需要在后台更新EPG以向用户提供最近的EPG。
[0006]诸如Apple iPad?等的平板计算机以及诸如智能电话等的其它便携式设备可以与家庭网络中的家庭网关或STB进行交互以提供第二屏幕,所述第二屏幕用于通常以与在诸如电视机等的主显示设备上正在显示的内容相关联的元数据的形式显示信息。这些平板计算机和智能电话与STB的交互可以包括诸如频道切换、音量调节、内容调换、有关和补充的信息导航以及观看等的功能。为了避免从平板计算机或智能电话到后端服务器的多余的网络请求,缓存EPG变得必要。这种缓存允许在本地取回EPG,这使得能够流畅地浏览频道、节目和时间表信息。
[0007]现有的EPG缓存方法致力于如何以XML文件格式的方式将EPG存档到硬盘中以及如何根据文件名来读、写文件,然后对XML文件进行解析以得到具体信息。这种类型的解决方案的缺点包括以下内容:
[0008]UXML文件消耗大量多余的存储空间来存储元素名称、属性名称、标签等;
[0009]2、在单个XML文件中保存所有频道、节目和时间表信息可以证实是非常困难的。将这些信息存储在单独的XML文件中需要多余的文件I/O和多余的时间来将所有XML文件装载到特定目录中。
[0010]使用JavaScript对象表示法(JSON)消息格式而不是XML格式将在时间和存储容量方面带来有限的节省。然而,JSON消息格式是基于文本的,并且仍然需要一些标签来指示密钥和值对。在本地磁盘上将EPG数据串行化为二进制格式可以带来一定改善,但是仍然需要将单独的不同节目组织到不同的文件中,因此编索引和导航仍然是耗时且效率低的。
[0011]因此,存在对克服上述困难的用于在便携式设备上缓存EPG的技术的需要。

【发明内容】

[0012]简言之,根据本原则的优选实施例,用于在便携式设备上缓存电子节目指南的方法通过当本地缓存包含相关信息时从本地缓存向便携式设备下载频道信息和节目信息而开始。然而,如果本地缓存缺少这种信息,则便携式设备从服务器下载频道信息和节目信息。然后,便携式设备分别根据下载的频道信息和节目信息来构造频道索引和节目索引,以在便携式设备上建立电子节目指南。
【专利附图】

【附图说明】
[0013]图1描绘了根据本原则包括用于缓存来自本地缓存或后端系统之一的电子节目指南的至少一个便携式设备的家庭网络的框图;
[0014]图2描绘了根据本原则与图1的便携式设备缓存电子节目指南相关联的事件的时序;
[0015]图3描绘了示出在单日针对单独频道的节目序列的表格;
[0016]图4描绘了图3的放大图,示出了在给定日针对给定频道建立节目段;以及
[0017]图5描绘了示出节目信息的二进制存储的表格。
【具体实施方式】
[0018]图1描绘了通过网络14从后端系统12接收内容和节目指南信息二者的家庭网络10的框图。在图1所示的实施例中,网络14构成互联网。然而,网络14可以采用其它形式,例如,由有线电视、卫星电视提供商或者其它网络系统运营商维护的专有网络。此外,网络14可以采用具有公共或私有接入的广域网、局域网或无线网络或者其组合的形式。
[0019]后端系统12通常包括耦合到网络14、用于提供来自至少一个数据库18的信息的至少一个服务器16。信息可以包括例如表示电影或电视节目的视听文件形式的内容。此夕卜,信息可以是由家庭网络中的设备使用以创建电子节目指南的频道信息和节目信息。虽然图1描绘了由单个服务器16和单个数据库18组成的后端系统,但是实际上,后端系统可以包括多个服务器和/或多个数据库。
[0020]家庭网络10包括家庭网关20,家庭网关20提供网络14与家庭网络中的其它设备(例如,用于选择内容(例如,电视节目)以在电视机24上显示的机顶盒(STB)22)之间的主接口。虽然图1描绘了单个STB22,但是考虑到后端系统12或另一系统(未示出)提供与家庭网络10的互联网连接,家庭网关20具有向多个STB以及其它设备(例如,个人计算机)提供服务的能力。
[0021]家庭网络10可以包括一个或多个便携式设备,该便携式设备由便携式设备26示意性地描绘,便携式设备26可以采用例如具有一个或多个处理器(未示出)的诸如AppleiPad?等的平板计算机的形式。实际上,便携式设备26通过无线链路(例如,由家庭网关20或者连接到家庭网关20的无线路由器(未示出)提供的W1-Fi链路)与家庭网关20进行通信。便携式设备26与网关20进行通信的能力允许平板计算机与STB22进行交互。通过这种方式,便携式设备26可以执行诸如频道切换、音量调节、内容调换、有关和补充的信息导航以及观看等的功能。
[0022]为了使用户利用便携式设备26以执行诸如频道调换等的功能,便携式设备应当拥有显示与通常由STB22提供的电子节目指南类似的电子节目指南的能力。为了显示EPG,STB22可以通过家庭网关20从后端系统取回EPG。备选地,STB可以通过对通过家庭网关20从后端系统12接收的传输流(TS)中的编码信息进行解码来获得内容。STB22将EPG存档到硬盘等上(未示出)。实际上,网络服务运营商将基于节目和频道指派的改变来频繁地更新EPG。
[0023]用于在便携式设备上缓存EPG的当前技术通常要求每当便携式设备需要更新自身时便携式设备直接从后端系统12下载必要的信息。家庭网络10中存在的便携式设备越多,对后端系统的要求越多,从而增加了网络14上的业务。
[0024]根据本原则,在便携式设备26上缓存EPG通过使便携式设备执行程序指令集合而有利地发生,如下所述。当便携式设备26执行程序指令集合时,程序指令集合使设备首先向图1的机顶盒22询问“相关"EPG信息,如果在STB处存在该信息,则便携式设备将从STB下载数据。然而,如果STB22缺少该信息,则便携式设备26将从后端系统12下载信息。术语“相关”是指最近在特定时间间隔内更新的EPG信息(通常是频道和节目信息)。实际上,图1的后端系统12将以定期时间间隔(例如,每隔10分钟)更新STB22。假设更新频率是每隔十分钟,当便携式设备26向STB询问相关EPG信息时,在STB22处比10分钟更久的EPG信息不拥有相关性。
[0025]图2描绘了根据本原则与图1的便携式设备26缓存电子节目指南相关联的事件的序列。图1的便携式设备26将通过首先执行初始化步骤32以准备步骤34来以图2中的更新时间间隔30示意的定期时间间隔缓存EPG,其中,在步骤34期间,便携式设备26首先询问图1的家庭网络10中存储相关EPG信息的本地缓存。实际上,具有EPG信息的本地缓存驻留在图1的STB22中。然而,在一些情况下,本地缓存可以驻留在家庭网络中的另一设备中,例如,假设家庭网关20存档EPG信息,则驻留在家庭网关20中。
[0026]响应于来自便携式设备26的询问,本地缓存(例如,STB22)将使用其状态(即,本地缓存当前是否包含相关EPG信息)进行响应。假设本地缓存具有相关EPG信息,则便携式设备26将从本地缓存下载该信息并且通常将该相关EPG信息存储在便携式设备中的硬盘驱动器或另一存储机制上。如果本地缓存不拥有相关EPG信息,例如,缓存的EPG信息不再是当前的,则便携式设备26将从图1的后端服务器12下载EPG信息以存储在便携式设备中。
[0027]图2中的框38描绘了与便携式设备26缓存EPG信息相关联的步骤的更详细的图示。如前面所讨论的,缓存过程包括询问本地缓存的步骤,本地缓存进而将使用其状态进行响应。如果本地缓存具有相关EPG信息,则便携式设备26将从本地缓存下载该信息以存储在便携式设备上。否则,便携式设备26将从后端系统12下载该信息以存储在便携式设备上。
[0028]实际上,EPG信息在大小上可能超过100兆字节,因此在单个请求中缓存(即,下载)EPG信息变得不切实际。由于该原因,便携式设备26执行框38中的步骤以连续地读取EPG信息。实际上,便携式设备26将执行第一循环40以如前所述地连续地从本地缓存或后端系统12读取频道信息,然后下载频道信息以存储在便携式设备上。在下载和存储频道信息以后,便携式设备26将构造频道索引。便携式设备26将执行第二循环42以连续地读取节目信息,然后下载节目信息以存储在便携式设备上。在下载和存储频道信息以后,便携式设备26将构造节目索引。在步骤43期间,响应于用户对EPG图形用户界面的请求,便携式设备26将根据频道索引和节目索引来创建EPG以进行显示。
[0029]每一个频道包括至少一个并且优选地包括多个节目,每一个节目具有其自己的时间表。开始和停止时间构成每一个节目时间表的重要属性。下面的内容包括用于计算节目时间表的时间块(time block)的示例性C语言程序代码:
[0030]
void cachcBiiildRlocl<s{('H;:sr:dilkix, ^programs)
(
I
try
for (int i = 0; i < programsXength; i++)
{

dilldx.1ds|"il = prograns 卩"j.1d:

schedule = programs[i].schedule;
long schStart = schcduIc.stavt I'imc;
long schL^nd schedule.end Time;
Da;vTimc startDatc = 'TuucLiWLgctDatc(m__cpgCachcDatc.st irt)
ihxtci'itvj:: schSiartDatcTfniciJiiLgcl[)al.c(scliStarl);

schEndDatc.= Duu i irnol:;d.gctDatc(schEnd);

Ini slartlilock gctlilock(schSlarl);
0.-Uv bDate 一 ch!Idx.blockl)atcs|startBlock];
L)a^; rir;;c programBlockDatc = b1ckDatc(startli1ck);
if (startBlock < 0)

{

throw new 'ExcopdonC^avaHd.range of EiPG date &

j

if (:v'hr;h.Abs(T)o:.:.Ti:T:cU;n.gctTimc(bDatc) - schStaii) > (min unit * interval))

(

I

throw new Exception(?liivalid range of EPG date & time/*);

)

/
int cndBlock = gctBlock(schcdulc.cnd Time);
for (int k = startBlock; k <= cndBlock; k++)

r

I

chlldx.blocksfk] = i;

}
}
}
catch (Excenti0.n.e)
{ 、
logiicr.Error(e.Message);
}
}[0031]
int gctBlock(lon>i schStart)
{ '
long IngOffsct = schStart - m_cpgCachcDatc.start;
Double potential Block = (Do; ;bic)(IngOffisct / minunit / interval);
rc t-u rn i i !u) N4 h.C c i Ii ng (po tc n t i a IBI ock);
}
biockDate(lnt block)
{
long b1ckTime - m cpgCachcDatc.starL +(!ong)(block 译 min—unit ^ interval);
return Dau:.Πrr;cl;i; 1.gctDa.tc(block:Timc);
}
[0032]下面给出用于取回EPG数据的C编程语言的示例性编程指令集合。当图1的便携式设备26中的处理器(未示出)执行下面列出的编程指令时,编程指令根据输入的参数“startDateTime”和“duration (持续时间)”来计算时间块。变量“startDateTime”指不针对单个询问的EPG中的节目的具体起始日期和时间。计算存档到便携式设备中的本地磁盘或其它存储机制上的节目信息的偏移和长度利用包括“startBlock”和“endBlock”的时`间块变量。偏移和长度促进从存储设备中读取节目信息。
[0033]
cachcRctricvc(int startChannclindcx.1ni count, long startDateTime, int
duration, boo! includcPrograms)
(
t
l.h; rcsultChanncls = null;
irv
//针对计数项复制以startChamiellndex开始的channelMap阵列
resuItChanneIs = iiew[count]
//将频道阵列从channelMap复制到resultChannds
Arr;:y.Copy(channclMap, startChanncl Index, rcsultChanncls, 0,count);
if (includcPrograms)
I
I
[0034]
【权利要求】
1.一种用于在便携式设备上缓存电子节目指南的方法,包括以下步骤: 当本地缓存包含相关信息时,从所述本地缓存向所述便携式设备下载频道信息和节目信息;否则 从服务器向所述便携式设备下载所述频道信息和所述节目信息;以及 分别根据所下载的频道信息和节目信息来构造频道索引和节目索引,以在所述便携式设备上建立所述电子节目指南。
2.根据权利要求1所述的方法,其中,所述从所述本地缓存向所述便携式设备下载频道信息和节目信息的步骤包括:从家庭网络中的机顶盒下载所述频道信息和所述节目信息的步骤。
3.根据权利要求1所述的方法,其中,所述从所述本地缓存向所述便携式设备下载频道信息和节目信息的步骤包括:从家庭网络中的网关下载所述频道信息和所述节目信息的步骤。
4.根据权利要求1所述的方法,其中,所下载的频道信息包括块序列,每一个块由特定的频道号来标识。
5.根据权利要求4所述的方法,其中,所下载的节目信息包括所述频道信息的每一个块中的节目的起始时间和节目长度信息。
6.根据权利要求1所述的方法,其中,所述相关信息包括最近已经更新的EPG信息。
7.一种用于缓存电子节目指南的便携式设备,包括: 用于当本地缓存包含相关信息时,从所述本地缓存向所述便携式设备下载频道信息和节目信息的装置;否则 用于从服务器向所述便携式设备下载所述频道信息和所述节目信息的装置;以及 用于分别根据所下载的频道信息和节目信息来构造频道索引和节目索引,以在所述便携式设备上建立所述电子节目指南的装置。
8.根据权利要求7所述的便携式设备,其中,所下载的频道信息包括块序列,每一个块由特定的频道号来标识。
9.根据权利要求8所述的便携式设备,其中,所下载的节目信息包括所述频道信息的每一个块中的节目的起始时间和节目长度信息。
10.根据权利要求7所述的便携式设备,其中,所述相关信息包括最近已经更新的EPG信息。
【文档编号】H04N21/482GK103733636SQ201280037498
【公开日】2014年4月16日 申请日期:2012年6月28日 优先权日:2011年8月10日
【发明者】李·道格拉斯·查尔泽, 萨米尔·阿曼德, 杰克·毕夏 申请人:汤姆逊许可公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1