CN1503557A - 自动个人视频记录方法和系统 - Google Patents

自动个人视频记录方法和系统 Download PDF

Info

Publication number
CN1503557A
CN1503557A CNA2003101149689A CN200310114968A CN1503557A CN 1503557 A CN1503557 A CN 1503557A CN A2003101149689 A CNA2003101149689 A CN A2003101149689A CN 200310114968 A CN200310114968 A CN 200310114968A CN 1503557 A CN1503557 A CN 1503557A
Authority
CN
China
Prior art keywords
pvr
program
range
long
space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2003101149689A
Other languages
English (en)
Inventor
斯蒂芬・B・波士顿
斯蒂芬·B·波士顿
・W・布朗
米切尔·W·布朗
・A・鲍利尼
米切尔·A·鲍利尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1503557A publication Critical patent/CN1503557A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/775Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/781Television signal recording using magnetic recording on disks or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/907Television signal recording using static stores, e.g. storage tubes or semiconductor memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

自动个人视频记录,包括为在个人视频记录器(“PVR”)上具有分配的存储空间的用户预定某一节目,其中节目具有超过用户的自由空间的存储空间要求,PVR与存储空间提供者耦接,以便实现数据通信;向存储空间提供者传送通过存储空间提供者,把节目记录在远程PVR上的存储空间中的命令,所述远程PVR与存储空间提供者耦接,以便实现数据通信。在存储空间提供者中接收来自个人视频记录器(“PVR”)的,把节目记录在远程PVR上的命令,所述命令包括节目的标识和记录节目的时间表;选择远程PVR;和根据节目标识和记录节目的时间表,把节目记录在选择的远程PVR上的存储空间中。

Description

自动个人视频记录方法和系统
技术领域
本发明涉及数据处理,更具体地说,涉及自动个人视频记录的方法、系统和产品。
背景技术
就个人视频记录器(“PVR”)的现有技术来说,记录电视节目或其它视频内容(“节目”)的可用存储空间是有限资源。PVR相当昂贵,于是一般被一个以上的用户共用。TivoTM系统是这种PVR的一个例子,目前TivoTM系统按其能够记录的视频内容的小时数销售,一般为20、30或50小时。在具有一个以上用户的设定下,并没有依据用户分配配置或控制典型PVR上的可用记录时间,这会导致问题。一个用户可能使用不相称份额的适于记录视频内容的存储空间,几乎不给记录器的其它用户留下存储空间。如果存在配置或控制存储空间,简化多个用户的使用,允许多个用户无冲突地共用存储资源,同时擦除或重写其他人记录的节目的风险较小的方法将是有利的。
另外,注意根据估计的压缩水平,估计记录特定节目所需的存储空间也是有用的。于是,具有管理压缩水平的估计值,于是存储空间需求的估计值过低的风险的装置和方法会是有益的。此外,虽然现有技术中缺少这样的措施,不过向用户提供集合他们的借出、借入和记录节目能力的各种方法会是有益的。另外,虽然现有技术中缺少这样的措施,不过向用户提供把存储空间借给其它用户或者借给多组用户的各种方法会是有益的。特别当用于出借的自由空间不足时,用户能够恢复已用空间,从而可把恢复的已用空间用于记录另外的节目也将是有益的。
用户将操纵PVR控制器来控制PVR,以及跟踪PVR的操作。但是,PVR操作如此复杂,以致对于用户来说,具有改进的跟踪和控制PVR操作的方法将是有益的。如果对于PVR来说,存在利用相对于用户收发关于PVR操作的消息的装置的方法将特别有益。
发明内容
本发明的例证实施例一般包括自动个人视频记录的方法。这种实施例包括为在个人视频记录器(“PVR”)上具有分配的存储空间的用户预定某一节目,可选的是,所述分配的存储空间包括自由空间,其中节目具有超过用户的自由空间的存储空间要求,PVR与存储空间提供者耦接,以便实现数据通信,并向存储空间提供者传送通过存储空间提供者,把节目记录在远程PVR上的存储空间中的命令,所述远程PVR与存储空间提供者耦接,以便实现数据通信。在这种实施例中,命令包括节目的标识和记录该节目的时间表。
本发明的例证实施例一般包括比较节目的存储空间要求和用户的自由空间,其中向存储空间提供者传送通过存储空间提供者,把节目记录在远程PVR上的存储空间中的命令包括如果节目的存储空间要求超过用户的自由空间,则传送所述命令。实施例一般包括把节目从远程PVR下载到PVR上,并从所述PVR显示节目。这种实施例包括以从存储空间提供者流来的视频的形式,在PVR上显示所述节目。
本发明的例证实施例一般包括个人视频记录的方法,所述方法包括在存储空间提供者中接收来自个人视频记录器(“PVR”)的把节目记录在远程PVR上的命令,所述命令包括节目的标识和记录节目的时间表。这种实施例包括选择远程PVR,并根据节目标识和记录节目的时间表,把节目记录在选择的远程PVR上的存储空间。在这种实施例中,选择远程PVR包括选择某一远程PVR,在所述远程PVR上,存储空间提供者是具有分配的存储空间的用户,所述分配的存储空间具有超过节目的存储空间要求的自由空间。在典型的实施例中,记录节目包括把节目记录在远程PVR上,分配给存储空间提供者的存储空间中。
在例证的实施例中,选择远程PVR包括从若干远程PVR中选择某一远程PVR,在选择的远程PVR上,存储空间提供者是允许借用存储空间的许可远程出借量的用户,所述许可的远程出借量超过节目的存储空间要求。这种实施例包括借用选择的远程PVR上的存储空间。在一些实施例中,记录节目包括把节目记录于在选择的远程PVR上借用的存储空间中。这种实施例中,选择远程PVR包括根据远程PVR的许可远程借贷量,确定是否允许存储空间提供者向远程PVR借用存储空间,远程PVR的许可远程借贷量包括远程PVR上的借出人允许向存储空间提供者出借的最大借贷量的总数。典型的实施例包括存储空间提供者把节目从选择的远程PVR下载到存储空间提供者,并通过PVR以流式视频的形式,从存储空间提供者显示该节目。
根据如附图中图解说明的本发明的例证实施例的下述更具体说明,本发明的前述及其它目的、特征和优点将是显而易见的。
附图说明
图1a和1b是其中可实现本发明的例证实施例的信息处理系统的各个方面的图形表示。
图2a是根据本发明的PVR的例证实施例的方框图。
图2b是图解说明存储空间分配的例子的饼图。
图3描述了作为可在本发明的例证实施例中使用的相关记录的数据结构。
图4是描述个人视频记录方法的流程图。
图5是描述选择借出人的例证方法的流程图。
图6是描述选择向其借用合计至少等于不足量的借贷量的多个借出人的例证方法的流程图。
图7是描述根据出借优先级,选择借出人的例证方法的流程图。
图8是描述根据自由空间与不足量的比例,选择借出人的例证方法的流程图。
图9是描述从借用人把借用的存储空间返回给借出人的例证方法的流程图。
图10a描述了代表参考HDTV源组织的近似压缩等级的例子的记录中的数据结构。
图10b描述了代表参考NTSC源组织的近似压缩等级的例子的记录中的数据结构。
图11是描述包括重新计算存储空间要求的个人视频记录方法的流程图。
图12是描述包括重新计算存储空间要求的备选个人视频记录方法的流程图。
图13描述了PVR系统层简表和一对多地与PVR简表联系的类型索引空间检查记录的数据结构(可在本发明的不同例证实施例中使用的数据结构)。
图14是描述根据类型,递增存储空间要求的例证方法的流程图。
图15是描述根据类型,递增存储空间要求的另一例证方法的流程图。
图16是描述未分配的存储空间和用户、库(pool)和组之间的存储空间分配的例子的饼图。
图17是描述包括借用存储空间的例证个人视频记录方法的流程图,其中至少一个借出人是库。
图18是描述向库分配存储空间的例证方法的流程图。
图19是描述向库分配存储空间的另一例证方法的流程图。
图20描述了可在使用库的不同实施例中使用的例证数据结构。
图21a描述了可在利用组的不同实施例中使用的例证数据结构。
图21b描述了可在利用组的不同实施例中使用的备选例证数据结构。
图22是描述产生组的例证方法的流程图,所述方法包括分配来自用户空间的组存储空间和分配来自未分配空间的组存储空间的备选方案。
图23是描述在组成员间,分配节目的存储空间要求的备选例证方法的流程图。
图24是描述在一个或多个成员退出存储空间分配的情况下,重新在组成员间分配节目的存储空间要求的例证方法的流程图。
图25是描述在组成员之间分配出借的备选例证方法的流程图。
图26是描述在一个或多个成员退出组存储责任的情况下,在组成员之间重新分配节目的组出借的例证方法的流程图。
图27表示了可在本发明的不同实施例中使用的例证数据结构。
图28是描述释放已显示的存储空间,供记录节目之前的例证方法的流程图。
图29是描述借用小于不足量的存储空间借贷量,并释放已显示空间的例证备选方法的流程图。
图30是描述在记录和观看节目的时候,释放节目的已显示空间的备选方法的流程图和存储空间要求的示意图。
图31是描述识别已显示空间的例证方法的流程图。
图32是描述丢弃已显示帧的备选例证方法的流程图。
图33是描述丢弃已显示帧的另一备选例证方法的流程图。
图34是MPEG视频的现有结构图。
图35是描述进一步压缩节目的例证方法的流程图。
图36是描述借用小于不足量的存储空间借贷量,并进一步压缩记录的节目的例证备选方法的流程图。
图37是描述进一步压缩节目的另一备选例证方法的流程图。
图38是描述在记录节目的时候,提高压缩等级的例证方法的流程图。
图39是描述在记录节目的时候,提高压缩等级的例证方法的流程图。
图40图解说明了操作和消息的类别以及用户简表和节目记录的数据结构间的例证关系。
图41是图解说明包括识别消息点,并传送消息的个人视频记录方法的流程图。
图42是图解说明识别消息点,并传送消息的方法的流程图。
图43是识别消息点和传送消息,包括接收响应的另一方法的流程图。
图44描述了可在关于消息接发的不同例证实施例中使用的记录中的数据结构。
图45是描述关于个人视频记录器的控制的例证机器学习方法的流程图。
图46是描述关于个人视频记录器的控制的另一例证机器学习方法,包括训练和变换的流程图。
图47是描述关于个人视频记录器的控制的另一例证机器学习方法,包括利用插入的命令选择构成消息的流程图。
图48是根据本发明的PVR的例证实施例的另一方框图,其中PVR与存储空间提供者耦接,以便实现数据通信。
图49描述了可在PVR与存储空间提供者耦接,以便实现数据通信的不同例证实施例中使用的记录中的数据结构。
图50是描述向存储空间提供者借用存储空间的例证方法的流程图。
图51是描述显示保存在向存储空间提供者借用的存储空间中的节目的例证方法的流程图。
图52是描述在存储空间提供者内,把节目记录在从存储空间提供者借用的存储空间中的例证方法的流程图。
图53描述在远程PVR间分布存储空间的情况下,个人视频记录的不同例证实施例的数据结构。
图54是描述在存储空间分布在远程PVR间的情况下,  自动个人视频记录方法的流程图。
图55是描述在存储空间分布在远程PVR间的情况下,另一自动个人视频记录方法的流程图。
具体实施方式
                         介绍
本说明书中基本上关于自动个人视频记录的方法说明本发明。但是,本领域的技术人员会认识到包括根据所公开方法操作的适当编程装置的任何计算机系统也在本发明的范围之内。
适当的编程装置包括指导计算机系统执行本发明的方法步骤的任意装置,例如包括由与计算机存储器耦接的处理单元和算术逻辑电路构成的系统,所述系统具有在计算机存储器中保存的能力,所述计算机存储器包括配置成保存数据和程序指令,供处理单元执行的本发明的方法的程控步骤的电子电路。本发明还可包含在供任意适当的数据处理系统使用的计算机程序产品中,例如磁盘或其它记录介质中。
通过利用用于机器可读信息的任意记录介质,包括磁介质、光学介质或者其它适当介质,可实现计算机程序产品的实施例。当包含在程序产品中时,本领域的技术人员会立即认识到具有适当编程装置的任何计算机系统能够执行本发明的方法的步骤。本领域的技术人员会立即认识到,虽然本说明书中描述的多数例证实施例面向安装在计算机硬件上,并在计算机硬件上执行的软件,不过,实现成固件或硬件的备选实施例也在本发明的范围之内。
                            定义
本说明书中,除非另外指出,术语“字段”和“数据元素”一般用作同义词,指的是数字数据的单独元素。数据元素的集合被称为“记录”或“数据结构”。记录的集合被称为“表”或“文件”。文件或表的集合被称为“数据库”。包括元方法、函数或软件例程以及数据元素的复合数据结构被称为“类”,类的实例被称为“对象”或“分类对象”。
根据上下文,术语“借入”(borrow)、“借出”(lend)和“出借”(loan)一般意味着在PVR的自动控制下,实现的存储空间的较短期重新安排。根据上下文,术语“分配”一般意味着借助用户通过用户接口的手动输入,实现的存储空间的相当长期的重新安排。借入的一个例子是记录时,PVR的存在需要在进行记录之前消除的存储空间不足的确定。如果所述消除是将在用户观看节目之后保留的存储空间的重新安排,那么认为所述消除措施是“借入”或“出借”。分配的一个例子是响应提示屏幕,通过键盘或遥控器,以及利用显示装置上的数据输入屏幕,向用户或者向合用库(pool)分配一部分未分配的存储空间的用户人工指令。
“Cinepak”是最初由SuperMac,Inc.开发的通用编译码器。
“Codec”是涉及“编码器/解码器”的行业标准术语。编译码器是用于对具有音频的视频进行编码和解码的装置和方法。用硬件或软件实现编译码器。以系统或设备图表示的图2a中的编译码器176隐含为硬件编译码器。类似于其它协处理器,硬件编译码器会减轻CPU负担,使整个PVR操作更高效。纯软件编译码器可自由地从因特网上的不同来源下载。可以认为软件编译码器往往比硬件编译码器低廉,而硬件编译码器往往更有效。存在许多编译码器,例如包括Cinepak,Motion JPEG,当然还有MPEG。PVR操作主要针对视频,从而在根据本发明的实施例的PVR中,硬件编译码器较常见,不过软件编译码器的使用也在本发明的范围之内,实际上,在计较成本的不同实施例中,使用软件编译码器是十分可能的。
编译码器功能包括压缩和解压缩。当节目被编码时,节目被转换成适合于保存或传输的压缩格式;当节目被解码时,节目被转换成适合于呈现的非压缩(原始)格式。每个编译码器具有它可处理的一定输入格式,和它能够产生的一定输出格式。在一些情况下,一系列编译码器被用于把节目从一种格式或压缩水平转换成另一种格式或压缩水平。
“DVD”代表“数字通用磁盘”或者“数字视频磁盘”,拥有至少4.7千兆字节,足够用于长片的一种改进存储标准。DVD存储器,象CD-ROM存储器,一般最终是光学存储器,不过格式并不严格要求光学存储器,通常用其它种类的存储器,磁存储器或电子存储器来实现(至少作为一种过渡性措施)。DVD规范支持容量从4.7千兆字节~17千兆字节,存取速率为600KBps~1.3MBps的磁盘。DVD驱动器向下与CD-ROM兼容。即,DVD播放器可播放老式的CD-ROM、CD-I磁盘和视频CD,以及DVD-ROM。DVD播放器还可读取CD-R磁盘。DVD可能与根据本发明的实施例的PVR相关,因为DVD,象HDTC,使用MPEG-2压缩视频数据。
本公开文献中使用的术语“压缩”指的是用于减小文件大小的所有可用技术的整体效果,例如包括颜色空间的减小,帧速率的降低,分辨率的降低,音频质量的降低,和压缩算法或压缩算法参数的改变。对于本领域的技术人员来说,通过压缩算法和压缩算法参数的处理,减小文件大小的方式有多种。但是,依据上下文,本公开文献中术语“压缩”的使用当然一般要比压缩算法的处理要宽。
“压缩水平”指的是根据节目的持续时间计算的估计压缩水平,和关于节目的记录内容的估计压缩水平。除非另外指出,术语“压缩水平”指的是“估计压缩水平”
“压缩算法”指的是特定类型的压缩技术,包括有损耗压缩和无损耗压缩,例如包括Lempel-Zif-Welch压缩(它是在称为“GIF”的普及图形文件格式中使用的压缩技术);诸如LS77和LZ-78之类的Lempel-Zif压缩的各种改型,LZ-78是在诸如众所周知的‘Zip’实用程序之类众多流行应用程序中使用的‘字典’压缩技术;长程编码;和Huffman编码。
“耦接以实现数据通信用”(coupled for data communication)意味着任意形式的数据通信,无线,802.11b,蓝牙,红外,无线电,网际协议,HTTP协议,电子邮件协议,联网,直接连接,专用电话线路,拨号,利用RS-232(EIA232)或通用串行总线的串行连接,硬连线并行端口连接,按照电力线协议的网络连接,以及本领域技术人员可想到的其它形式的数据通信连接。数据通信用耦合包括数据通信用联网耦合。可和本发明的不同实施例一起使用的网络的例子包括电缆网,企业内部网,外部网,因特网,局域网,广域网,和本领域技术人员想到的其它网络结构。使用电视频道,电缆通道,视频提供者,远程通信源等之间的联网耦合也在本发明的范围之内。
“ID”是“标识”的缩写,代表“标识码’或标识字段。本公开文献中的一种引用风格是把用户标识码称为“用户ID”。依据本公开文献中的惯例,字段名“用户ID”被用于保存用户ID。即,例如图3中的例证用户简表202中的用户ID字段190包含PVR上一个注册用户的用户ID。当借用人的用户ID被保存在计算机存储器中的数据元素中时,在本公开文献中,通常把该用户ID,即借用人的标识称为“借用人ID”。类似地,借出人标识通常称为“借出人ID”。“借用人ID”和“借出人ID”是用户作为借出人、借用人、所有者、观众等的角色的用户ID。即,例如借用人和借出人是具有用户ID的用户。当用户担当借用人时,根据上下文,通常认为该用户具有借用人ID。当我们指定某一字段保存借用人ID时,我们采用把该字段命名为“借用人ID”字段的惯例。例如,图3中的借出授权记录220包括借出人ID字段222,借出人ID字段222包括认可出借的用户的用户ID。
“IMAP”表示‘因特网消息存取协议’。IMAP是一种用于从因特网电子邮件服务器取回电子邮件消息的协议。在“离线”操作中,电子邮件客户把消息从电子邮件服务器取到运行电子邮件客户程序的客户机,随后从服务器删除该电子邮件消息。在“在线”操作中,消息可保留在电子邮件服务器上,并借助电子邮件客户程序远程处理消息。在在线方式下,邮件被保留在服务器上,当用户在不同的时间访问不同的计算机,读取他们的电子邮件时,这是有益的。POP支持离线电子邮件操作。IMAP支持离线和在线电子邮件操作。即,IMAP(较新的协议)目前类似于具有一些其它特征的POP3。例如,就IMAP来说,当消息仍然在电子邮件服务器上的时候,客户可关于关键字搜索电子邮件消息。电子邮件客户随后可选择下载哪些邮件,把其余的邮件保留在服务器上。
“ISP”表示“因特网服务提供者”,提供因特网接入服务的公司。对于月度交费来说,ISP向用户提供用户标识码(通常称为‘用户名’),口令,和接入电话号码,对于宽带服务来说,ISP向用户提供通过其接入因特网的IP地址。在配有适当的数据通信用耦接,例如调制解调器或电缆调制解调器的情况下,用户和公司随后可登录因特网,浏览万维网,访问与因特网相关的其它服务,例如USENET和电子邮件。在服务公司中,ISP还提供从公司的网络到因特网的直接连接。
“JPEG”代表联合图像专家组,制定该标准的委员会的初始名称。JPEG是一种图形图像用数据压缩标准。JPEG可使文件大小减小到大约未压缩文件大小的5%,不过在压缩中会丢失一些细节。
“运动JPEG”或者“MJPEG”通过支持视频,扩展了JPEG标准。在运动JPEG中,利用JPEG格式保存各个视频帧。在这方面,注意JPEG的5%压缩估计值只是压缩算法的效果,而不涉及帧速率、分辨率等。
“MPEG”代表‘运动图像专家组’“ISO”(国际标准化组织)和“IEC”(国际电工委员会)下的一个工作组。通常称为“MPEG视频”的实际包括三种标准,MPEG-1,MPEG-2和MPEG-4。MPEG-1和MPEG-2类似。它们都根据运动补偿块变换编码技术进行工作。MPEG-4在其把软件图像构成描述符用于很低范围中的目标位速率,小于64Kb/sec方面存在不同。
“MPEG-1”最初被优化成在30帧/秒(NTSC制式)下,在352×240象素的视频分辨率下工作,或者在25帧/秒(PAL制式)下,在352×288象素下工作,通常称为源输入格式(SIF)视频。MPEG-1分辨率并不局限于上述大小,事实上在每秒60帧下可高达4095×4095。为大约每秒1.5兆位的应用,优化MPEG-1的位速率,不过如果需要,也可在更高的速率下使用MPEG-1。 MPEG-1只适用于渐进帧,对于交错视频应用,例如在广播电视应用中使用的交错视频应用,没有任何规定。
“MPEG-2”解决与数字电视广播直接相关的问题,例如场交错的高效编码和可缩放性。MPEG-2的目标位速率高于MPEG-1的目标位速率,介于4-9Mb/sec之间,可能得到很高的视频质量。MPEG-2以‘简表’(profile)和级’(level)为基础。简表定义位流可缩放性和颜色空间分辨率,而级定义图像分辨率和每个简表的最大位速率。目前使用的最常见的描述符可能是“主简表,主级”(MP@ML),指的是对于NTSC视频在高达15Mb/sec的位速率下,在30帧/秒下720×480分辨率视频。通常使用的MPEG-2描述符的另一例子是在高达每秒80兆位的位速率下,每秒30帧下1920×1080象素的HDTV分辨率。该HDTV例子是‘主简表,高级’(MP@HL)描述符。在参考文献2中可找到各种法定组合的完整表格。
“NTSC”代表由全国电视标准委员会公布的视频标准。该委员会负责规定美国国内的电视和视频标准。在欧洲和世界的其余地方,主流电视标准是PAL和SECAM。NTSC视频标准定义具有以每秒60个交错半帧实现的30帧/秒的帧速率的复合视频信号。每帧包含525线,并且可获得1千6百万不同颜色。更新的数字电视标准被称为“HDTV”,用于高清晰度电视,支持高于NTSC的分辨率。
“POP”意味着邮局协议’。POP是电子邮件客户用于从邮件服务器取回电子邮件的协议。在电子邮件客户之中,广泛使用POP,不过新的IMAP协议也正在变得越来越普及。存在两种版本的POP。POP2需要SMTP从客户或其它服务器接收电子邮件消息。较新的版本,POP3,可在存在或不存在SMTP的情况下使用。
“节目”(show)意味着任何可记录或可分发的电子或数字内容,包括电视广播、电影、CD内容、DVD记录、有线传输、卫星传输、商业视频片断、音频、多媒体编程等等。节目包括通过任何机构或装置传送给用户的任意图像或图像系列,包括相关的音频或其它多媒体内容。
“SMTP”表示‘简单邮件传输协议’。SMTP是在服务器之间传输电子邮件的协议。因特网电子邮件通信主要通过SMTP从服务器传播到服务器。在电子邮件到达目标服务器之后,随后借助利用POP或者IMAP的电子邮件客户程序,从服务器取回电子邮件消息。SMTP也被用于把消息从邮件客户程序传送给邮件服务器。这就是当配置电子邮件客户程序时,用户通常必须指定POP或IMAP服务器和SMTP服务器的原因。‘电子邮件客户程序’表示诸如Microsoft的OutlookTM之类电子邮件应用程序。
除非另有说明,“用户”表示‘注册用户’,即在PVR内具有典型用户简表,例如由图3上附图标记202处的记录结构图解说明的那些用户简表的用户。读者会注意到在本发明的范围内不需要任何登录,不过仍然许可登录。于是,在许多实施例中允许非注册用户观看其它用户记录的节目。允许非注册用户观看的益处在于拜访亲属不必具有为其安装的用户简表。他们可以直接坐下并观看TV。但是在许多实施例中,尽管在发明本身内,登录是可选的,不过仍然安装了如实际情况那样需要登录的访问控制。根据本发明的实施例,需要登录以便进行访问控制的PVR的配置例子是控制儿童观看时间的PVR和控制未成年观众接触成人内容的PVR。
根据上下文,本公开文献中使用的术语“视频”一般包括音频。
                     借用存储空间
现在参见附图,尤其是参见图1a和1b,描述了其中可实现本发明的例证实施例的信息处理系统的图示表现。通常以包括自动计算机器的信息处理系统的形式实现本发明的实施例。但是,为了简便起见,并且由于这种具有自动计算机器的信息处理系统事实上通常包含一种形式或另一形式的个人视频记录器,因此本公开文献一般指的是本发明的实施例作为个人视频记录器或“PVR”的实现。
图1a表示了根据本发明的一种PVR的典型安装环境。图1a的PVR 106是机顶盒,大小和形状类似于有线电视接线盒或盒式磁带录象机(“VCR”)。PVR 106与电视机102连接,以便在显示屏幕101上显示电视节目、电影或其它内容,以及显示关于PVR本身及其保存或记录的内容的操作信息。“保存的内容”或“记录的内容”代表能够被记录在包含自动计算机器的环境中的任意信息或娱乐内容,例如包括广播电视节目,有线电视节目,动画,来自视频记录器的个人视频片断,音频和音乐片断,从因特网下载的视频/音频,和来源于诸如光盘之类光学存储器的素材。事实上,图1a中所示的例证PVR 106包括支持可折卸介质的读/写光盘驱动器。同样为了便于引用,本公开文献中,“保存的内容”通常称为“节目”。
PVR 106通过电缆104与电视机102连接。通过标准视频电缆,电缆连接104可用于视频和音频,通过标准同轴电缆,电缆连接104可用于电视广播频率。遥控器110允许用户与PVR 106交互作用并控制PVR 106。遥控器110发出红外(“IR”)信号,不过其它种类的遥控发射也在本发明的范围之内,例如包括无线电控制。例证的PVR 106包括接收来自于遥控器110的信息和指令的IR窗口109。使用遥控器110提供的功能包括在显示屏上移动光标,和选择显示屏上显示的项目的能力。
图1b更详细地描述了可供本发明的不同实施例使用的遥控器110。类似于关于电视机或VCR的标准遥控器,遥控器110包括访问一组主要的菜单和数据输入屏幕,以便配置PVR,配置PVR上的用户简表和安排节目时间的“菜单”按钮。“向上”和“向下”按钮113和115允许用户逐页改变显示,而不是通过逐行或逐项滚动来改变显示。导航按钮114支持滚动。“选择”按钮116被用于在分页和滚动已找到显示项的位置之后,选择该显示项。
遥控器包括常规数字键131以及与电视和录制重放控制相关的按钮,包括“音量”控制132,“频道”选择器120,“静音”按钮118,和“播放”按钮124,称为“回退”134的反绕按钮,标记为“前进”130的快进按钮,和“暂停”按钮126。一般当通过浏览描述电视节目的电视广播时间表的一系列显示屏幕,选择了节目之后,使用“记录”按钮122指示PVR记录该节目。
在前面几段中,我们把本发明的实施例描述成具有配置成PVR的自动计算机器的信息处理系统,所述PVR是与电视机耦接,以便进行显示和用户交互作用,并由遥控器控制的机顶盒。明白机顶盒结构根本不是本发明范围内PVR的唯一构形是有用的,为了澄清这一点,我们要求读者考虑实现成安装在通用计算机上的软件的PVR。就包含在通用计算机上的PVR来说,PVR被实现成按照常规方式安装在计算机存储器中的软件,以便具体体现本发明的发明步骤。
虽然依据机顶盒内的特殊设计,实现成机顶盒的PVR将包括根据本发明实现本发明的步骤和保存内容所需的所有硬件资源,但是不是所有计算机都具有这样的硬件。不过,在任何通用计算机拥有用于下载、读取光盘、接收有线电视、或以其它方式访问可读内容的足够资源,以及用于在硬盘、可写光学驱动器或者其它存储介质上保存这种可记录内容的足够资源的条件下(并且目前的许多通用计算机确实拥有这样的足够资源),那么根据本发明的一个实施例,任何通用计算机可被配置成PVR。
对于根据本发明,在通用计算机中具体化的PVR来说,通过与任何特定计算机终端,计算机显示屏、计算机键盘、计算机鼠标等有关提供的常见用户接口,实现PVR控制。在这种意义上,通用计算机包括个人计算机、便携式计算机、微型计算机、大型机、膝上型计算机、手持式计算机、个人数字助手、具有无线上网能力的蜂窝电话机等。
图2a表示了根据本发明的一个例证实施例,包含PVR 106的自动计算机器的方框图。图2a的PVR 106包括至少一个计算机处理器156,以及随机存取存储器152(“RAM”)。实现本发明的发明步骤的PVR应用程序152保存在RAM 168中。
操作系统154也保存在RAM 168中。本发明的实施例以用于多个用户的个人视频记录为目标。本领域的技术人员会想到管理许多用户的用户账户的大部分工作可下放(downshift to)给诸如Unix、Linux或Microsoft NTTM之类的多用户操作系统。但是,本发明的典型实施例的多用户特征倾向于是应用软件的特征。于是,根据本发明的实施例的PVR可使用单用户操作系统,例如Microsoft的磁盘操作系统或“DOS”,以及多用户操作系统,或者甚至以只供根据本发明的PVR使用的专用系统的形式开发的操作系统。本公开文献中,我们把多个用户的管理称为“用户简表”,以便把我们的应用级用户管理和任何操作系统的用户账户’管理区分开。
图2a的PVR 106包括节目存储空间166。存储空间166可被实现成硬盘空间170,光驱空间172,电可擦可编程只读存储器空间(所谓的“EEPROM”或“快速”存储器)174,RAM驱动器(未示出),或者本领域的技术人员想到的,能够接收和保存记录内容的任意其它类型的计算机存储器。
图2a的例证PVR 106包括内容捕获子系统167。根据内容源182,在典型的实施例中实现内容捕获子系统167,在不同的实施例中,内容捕获子系统167可包括用于接收广播电视158的广播电视调谐器,用于接收有线电视160的电缆接线盒,用于接收卫星电视162的卫星接收器,和用于从因特网164下载可记录内容的因特网连接。
图2a的例证PVR包括编译码器176,编译码器176可采取插入个人计算机的系统总线的视频卡的形式,或者本领域的技术人员想到的其它形式。编译码器176把从存储空间166中记录的节目输出的视频和音频提供给输入/输出接口178。在特殊实例中,编译码器176还可根据需要,提供视频压缩或视频质量方面的变化。输入/输出接口把视频和音频输出提供给显示装置180。在结合电视机实现PVR的情况下,显示装置180是电视机。在PVR被实现成通用计算机的情况下,显示装置通常被实现成计算机显示屏。显示装置180是本领域的技术人员想到的,能够显示视频和音频内容的任意装置。
图2a的例证PVR 106包括输入/输出接口178。在PVR被实现成通用计算机的情况下,输入/输出接口178是计算机接口,例如包括控制对诸如计算机显示屏之类显示装置180的输出,以及来自诸如计算机键盘和计算机鼠标之类用户输入装置181的用户输入的常规软件驱动程序和计算机硬件。在PVR作为机顶盒的情况下,输入/输出接口178包括,例如控制在诸如电视屏幕之类显示装置180上的显示,和来自诸如遥控器(类似于图1a和1b中图解说明的遥控器110)之类用户输入装置181的用户输入的软件驱动程序和计算机硬件。
图3图解说明了可在本发明的不同实施例中使用的几个例证数据结构。这样的数据结构是典型实施例中PVR应用软件(图2a上的附图标记152)的一部分,通常保存在RAM(图2a上的168)中,或者对于长期或非易失性存储来说,保存在硬盘(图2a上的170)或者本领域的技术人员想到的其它非易失性存储器。为了说明清楚起见,作为数据库中的记录表示图3的例证数据结构,不过本领域的技术人员想到的其它数据存储结构也是可能的,所有这些数据存储结构都在本发明的范围之内。
图3描述了用于在PVR上注册多个用户的例证用户简表202。用户简表202代表在其中安装简表的PVR上注册的一个用户,陈述和该用户及该用户操纵PVR的特权有关的特征及限制。更具体地说,用户简表202包括用于保存用户标识或“用户ID”190,称为“PIN”192的口令或个人标识号,用户特权等级194和关于许可用户的可记录内容的内容限制196的数据元素。
注册时,向用户分配PIN 192,对于用户来说,PIN 192是唯一的。在实现成机顶盒的PVR中,通常利用数字PIN,因为易于通过遥控器上的数字按键(图1b上的附图标记131)输入数字PIN。当然,数字PIN不是本发明的必要条件。显然,在通用计算机或者具有键盘的任何装置上实现的PVR不会从纯数字PIN或口令得到任何特别益处。
用户特权等级194提供根据用户类别,区分特权的能力。即,用户特权等级194支持具有不同特权等级的用户类别的确立。常见的例子是特许编辑其它用户的简表的一类管理用户或‘超级用户’。于是,在家庭环境中,父母通常是特许设置关于儿童简表的内容限制的超级用户。在商业环境中,信息技术服务组织中的系统管理员通常被授予产生和管理具有正常使用权用户的简表的特权。
图3的例证用户简表202还代表该简表所表示的用户,提供用于记录适合于记录节目的存储空间的特性的数个例证数据元素。用户简表202为分配空间198,已用空间204,自由空间206,借用空间208,出借空间210,用户是否批准向其它用户借出分配给该用户的存储空间的布尔指示212和借出优先级等级214提供数据元素。
分配空间字段198记录目前分配给用户的存储空间的数量。虽然不是本发明的必要条件,不过分配空间通常只由超级用户改变,从而一般用户避免因一般用户改变其自己的存储空间分配而产生的冲突风险。当产生用户的用户简表时,在注册时,向每个用户分配初始数量的分配空间。图2b表示了饼图175,饼图175表示了居住环境中,存储空间的分配的例子。在图2b的例证分配中,家庭内PVR的全部存储空间的分配包括80%的存储空间分配给父母(40%分配给父亲,40%分配给母亲),20%的存储空间分配给孩子(10%分配给儿子,10%分配给女儿)。
在用户把节目记录在用户的分配空间中的情况下,当节目被记录在用户的分配存储空间中时,记录该节目的一些存储空间被认为是“已使用”。每个节目具有使用用户的一些分配空间的存储空间要求。用户的所有记录节目的已用空间的当前总量可保存在已用空间字段204中。自由空间字段206用于保存分配空间198和已用空间204之间的差值。当PVR为用户记录某一节目时,PVR用该节目的存储要求递增已用空间204,并使自由空间206缩减相同的数量。
当PVR为其自由空间小于节目的存储空间要求的用户记录节目时,担当借用人(borrower)的用户可从另一用户,借出人(lender),借用空间是根据本发明的实施例的PVR的一个特征。用户简表202代表的用户借用的存储空间的数量可记录在借用空间字段208中。类似地,用户出借给其它用户的存储空间的数量可记录在出借空间字段210中。和当PVR为用户记录节目时,PVR缩减自由空间206完全相同,当PVR借用用户的一部分分配空间198时,PVR也可缩减自由空间206。于是在本例中,自由空间数量206,即可供用户记录节目的存储空间的数量应是用户的分配空间198减去用户的已用空间204,再减去用户的借出空间210得到的数量。下面将更详细论述,不过应清楚当用户的自由空间小于将为用户记录的节目所需的存储空间时,除了向借出人借用空间之外,适用于PVR的备选方法是收回用户先前借给借用人的空间。本例中,这种收回会使借出空间210缩减收回空间的数量,使自由空间206增加收回空间的数量。
图3的例证用户简表202还提供指示该简表代表的用户是否批准借用该用户的分配存储空间的布尔数据元素借出认可212。可在用户级为例如希望拒绝出借其分配存储空间的用户,提供诸如借用认可字段212之类的借出控制。在用户级建立无大差别的借出认可是相当粗略的控制,在本发明的范围内,还可对借出认可建立更细致的控制。
在图3的借出授权记录220中描述了更细致的借出认可的例子。例证的借出授权记录220更细致,因为它们表示从由借出人ID字段222中的借出人的用户ID识别的具体借出人,向由借用人ID字段224中的借用人的用户ID识别的具体借用人,出借在最大出借字段226中确定的具体最大数据的认可。较不细致的借出认可的例子是其中程控PVR,允许向任何注册用户出借的情况。就图3的例证数据结构来说,通过在借出授权记录220中的借出人ID字段224中输入‘通配符’,例如星号‘*’,可实现向任意用户的出借,PVR把所述通配符看作在借出授权记录220中标识的借出人222批准向任意用户出借的指示。
当然,在本发明的范围之内,其它粒性(granularity)也是可能的,例如包括具有带开始日期和终止日期的有效期的借出认可,或者关于识别的用户组或具有某一借出优先等级的用户的借出认可。可能的设置较多,本领域的技术人员想到的任意数据结构、编码方法或者借出认可的粒性都在本发明的范围之内。
图3的例证用户简表202还提供称为借出优先级214的数据元素,用于确定用户的借出优先级等级。该数据元素可用在算法中确立否则将被许可借出的空间的被借用顺序,或者根据用户间优先级的比较,拒绝一些出借。在家庭环境中,通过确立两种简单的借出优先级,例如借出优先级等级‘1’和借出优先级等级‘2’,超级用户(例如父母)可向他们自己赋予高于儿童用户的借出优先级等级,拒绝从父母到孩子的所有借出,或者拒绝向孩子的借出,只要可从孩子到孩子借出空间即可,从而只有在使用分配给孩子的所有空间之后,孩子才可向父母借用。可建立另一例证数据结构,本例中称为‘PVR简表’300的系统级简表,记录PVR级参数。本例中,PVR简表包括布尔指示,借出优先级拒绝302,指示用户的借出优先级等级是否将被PVR用于拒绝向优先级等级较低的用户的所有借出,或者通过首先向优先级等级较低的用户要求出借,只是对借出进行排序。
图3的例证数据结构包括节目记录240。节目记录240是代表诸如视频和音频之类的一段录制内容,例如电视节目或动画的数据结构。节目记录240的来源通常有两种,即用户时间安排和优先记录。“用户时间安排”是用户通过用户接口输入节目的标题和记录时间安排。用户接口将因PVR而不同。在实现成机顶盒的PVR中,用户接口通常是在电视屏幕上的电视节目的滚动列表内移动指示符的遥控器。在实现成个人计算机的PVR中,用户接口一般是键盘、鼠标和计算机屏幕,在计算机屏幕上,显示用于突出显示并从包含所关心视频片断的电视节目或网站的滚动列表中进行选择的鼠标指示符。
“优先记录”是PVR被程控,从而根据先前的用户喜好指示,选择和记录节目。例如,先前的用户喜好指示可被实现成用户简表202中的风格偏爱260,使PVR被这样编程,当用户具有足以支持这种记录的自由空间时,读取用户的先前表示的关于喜剧、戏剧、科幻或体育的优先选择,扫描目前可用的资源,选择和用户的风格偏爱相符,并且对于其用户具有足够的自由空间的第一节目,并记录该节目。根据本发明,如果用户不具有足以保存该节目的自由空间时,可程控PVR从另一用户借用空间。
另一方面,为了获得表达特定偏爱的更强能力,PVR可支持通过作为外键码的用户ID 322,与用户简表202链接的独立用户首选项记录320。这种独立首选项记录320可支持用户首选项的任何指示,例如包括关于特定演员326的选先选择,关于特定标题324的优先选择,和编码成优选等级328的用户偏爱强度。特别地对于优选等级328来说,PVR可被编程为记录一系列的优选等级,例如1-10,其中优选等级10’表示用户非常喜欢特定节目标题,‘5’表示中性,‘1’表示不喜欢。节目记录240上的布尔字段‘首选项’278指示记录是否是首选记录。从而用户328可了解在用户先前不知道的情况下,以该用户的名义,已记录了哪些内容,放映用户的录制节目的PVR屏幕一般以视觉方式显示为首选记录的实例的录制节目。
图3的例证节目记录包括代表该节目记录表示的节目的标识码241,节目标题241a,节目的文件名242,节目的风格243(喜剧,戏剧,体育等),记录以其名义记录节目的用户的用户ID的所有者标识字段,称为‘所有者ID’244,节目的估计存储空间要求246,节目的持续时间247,表示所有者是否已观看该节目的布尔指示238,节目来源的指示270,节目的时间表数据272,节目的记录时段274,和节目的保留时期276的数据元素。
但是本例中,节目由标识码241识别,标识码与存储空间中的存储位置没有任何关系。例如,对于标题241a为“Dukes of Hazzard”的节目理应存在一个标识码,对于标题241a为“Star Trek”的节目存在另一标识码,对于标题241a为“Buffy The Vampire Slayer”的节目存在另一标识码。操作系统(图2a上的154)通常把存储空间(图2a上的166)组织成由文件名识别的多段。于是,根据图3的节目记录240提供一个文件名字段242,记录存储空间中记录节目的位置,从而可查找节目的位置,以便观看以及以后便于删除。
根据本发明的一些实施例的PVR被编程成把节目ID字段241用作完全独特的关键字,所述关键字识别将在图3中的时间表字段272中编码的特定日期和时间记录的节目的特定实例。其它实施例被编程成把节目ID 241看作诸如“Star Trek”或“Buffy The VampireSlayer”之类标题的短标识符。在把节目ID 241看作标题标识符的实施例中,当要记录节目时,PVR可根据标题214a加上日期和时间(时间表272),为节目的特定实例建立独特的关键字。
存储空间要求246和持续时间247相关。存储空间要求通常被表述成一定数目字节、千字节或兆字节的存储空间。一般用数分钟或数小时,半小时节目,两小时电影等表示持续时间247。可利用在不压缩、无损压缩和或多或少损耗压缩之间变化的各种压缩,把节目记录在存储空间中。对于指定持续时间的节目,应用更高的压缩等级会降低该节目的存储空间要求。
源270可被编码,以指示用于从广播电视、有线电视或卫星电视捕获录制内容的频道号。可利用识别下载可记录内容的来源的因特网地址对源270编码。可利用打点的十进制地址,统一资源定位符(“URL”)或统一资源标识符(“URI”)对因特网地址编码。
时间表272是保存由节目记录240代表的节目的广播时间表的数据元素。例如,可利用电视节目被广播,于是将被记录的日期和时间对时间表字段272编码。记录时段274提供其间可多次记录节目的时段的指示。例如可利用星期三晚上7点的时间表指示对时间表字段272编码,可利用“1月到6月”对记录时段编码,导致长达6个月每周记录所指示的节目。
保留时段276是指示在删除节目前,保留该节目多长时间的字段。保留字段276和观看指示248可一起在根据本发明的实施例的PVR中工作。例如,在图3中,PVR简表300包括指示是否只在节目被观看后才删除它们的布尔指示,“观看后删除”304。在根据图3的PVR中,如果“观看后删除”304被设置成真,那么在该节目被观看之前,即使观看时间晚于保留时段276的终点,PVR也不会从存储空间删除该节目。如果保留时段的终点晚于观看该节目的时刻,那PVR会保留该节目,直到保留时段的终点为止。另一方面,“观看后删除”304被重置为假,那么在保留时段的终点,PVR删除该节目,而不考虑该节目是否已被观看。
节目记录240中的观看字段248指示节目的所有人是否已观看了该节目。但是,在多用户环境中,把节目保留在存储器中,直到一个以上的用户观看了该节目为止将是有益的。图3中的观看记录250是节目记录240中布尔观看字段248的应用的替换或扩展,允许一个以上的用户表示有兴趣观看该节目,并把该节目保留在存储空间中,直到感兴趣的所有用户已观看该节目为止。节目ID 252是使观看记录250和节目记录240链接的外键码。观众ID 254是表示有兴趣观看由节目ID 252识别的节目的用户的用户ID。已观看字段256是表示识别为观众ID 254的用户是否已观看该节目的布尔指示。观看记录250与特定观众ID 254有关的事实可被看作兴趣的表示,或者诸如兴趣258之类的布尔字段可被添加到观看记录250中,作为有兴趣观看在节目ID 252中识别的节目的肯定表示。
就在用户间借出和借入存储空间来说,需要某一方法来跟踪谁向谁借出了什么。图3的例证数据结构提供一种例证数据结构,出借记录230,用于记录由借出人ID 232识别的哪个借出用户已把多少数量的存储空间借出给由借用人ID 234识别的借入用户。在一个常见例子中,由用户简表202中的用户ID识别的用户将具有数个未偿还的存储空间借用,借用的每个存储空间由出借记录230表示。在这种例子中,用户的用户简表202中的借入空间字段208将包含代表性出借记录230中借出量字段236中的数量之和。
图4是用于自动个人视频记录402的例证方法的流程图。当多用户PVR具有多个注册用户,每个用户在PVR上具有分配的存储空间时,实践根据图4的方法(下面还关于图3的例证数据结构描述根据图4的方法)。每个用户的分配存储空间包括其上记录节目的存储空间(“已用空间”)和其上未记录节目的存储空间(“自由空间”)。如图4中所示,该方法包括为用户记录该用户拥有的节目(402)。预先拥有该节目的用户被称为“借入人”。借入人是在PVR上注册的用户,即在PVR上注册的数个用户之一。
根据图4的方法包括比较借用人的自由空间(图3上用户简表202中的206)和节目的空间要求(节目记录240中的246)的步骤(403)。比较步骤403支持确定节目的存储空间要求是否超过借用人的自由空间的步骤(404)。如图4的例子中所示,在整个记录过程402的开始,即刚好在开始实际记录(图4上表示为步骤410)之前,确定存储空间要求是否超过自由空间。如果节目的存储空间要求未超过借用人的自由空间,那么继续记录直到完成记录(步骤410)。如果节目的存储空间要求超过借用人的自由空间(差值被称为‘不足数量’),那么实现图4的例证方法的PVR选择从其借用一定存储空间的借出人(步骤406)。
这种意义下的‘借出人’是在PVR上注册的具有自由存储空间或“自由空间”的用户,即例如,借出人的用户简表中的自由存储空间字段的数值大于零,并且在借出人的用户简表中反映为大于零的自由空间。所有借出人可能具有小于不足数量的最大借出授权(图3上的226)。于是可能必须向一个以上的借出人借用借贷量,借贷量均小于不足数量,但是整个合计起来至少达到不足数量。
PVR可能未能选择具有许可的,并且可供出借的存储空间的一个或多个借出人。在这种情况下,PVR可被编程成停止节目的记录(步骤412)。
图4的例证方法包括从选择的借出人借用借贷量(步骤408)。通过使用图3的数据结构,例如,通过把借贷量加入借出人的用户简表中的借出空间字段210,从借出人的用户简表中的自由空间字段206中减去借贷量,把借贷量加入借用人的用户简表中的借用空间字段208中,可实现从选择的借出人借用借贷量。除了如上所述调整借出空间、自由空间和借用空间之外,本例中,PVR还会产生至少一个出借记录(图3上的230),识别借出人ID 232中的借出人,借用ID 234中的借用人和借贷量236中的借贷量。本例中,在借贷量是不足数量的意义上,根据不足数量进行借用。
在其它例子中,借贷量,实际借用的数量不等于不足数量。PVR可被编程成为借用人借用大于不足数量的存储空间,以便为记录提供少许的净空。另外,例如如果任何一个借出人都不具有大于不足数量的许可最大值,或者如果任何一个借出人都不具有大于不足数量的自由空间,那么需要数次借贷,以便达到不足数量。这种情况下,可存在一个以上的借贷量,任何一个借贷量都不等于不足数量,但是它们的总和至少等于不足数量。在这些例子中,虽然借贷量可能不等于不足数量,但是在不足数量是要借用总量的指导,即借用借贷量的指导的意义上,根据不足数量进行借用。
在图4的例证方法中,节目的所有人,即借用人或者其它有兴趣观看该节目的人最终观看该节目。即,PVR显示节目(步骤414)。随后把借用的支持记录该节目的存储空间借贷量返回给借出人(步骤416)。返回借贷量(步骤416)实际上涉及反转借用过程。即,PVR找出和记录节目的节目ID 241有关的各个借贷记录。对于每个这种出借记录230,PVR从借出人的用户简表中的借出空间字段210减去借贷量236,把借贷量236加入借出人的用户简表中的自由空间字段206中,从借用人的用户简表中的借用空间字段208中减去借贷量236,并删除出借记录230。
参见图5,以及参考图3的例证数据结构,我们来描述选择借出人的例证方法。就选择借出人而论,如图5中所示,PVR可通过关于至少等于不足数量的最大借出授权(图3上的226),扫描借出人授权记录(类似于在图3上的附图标记220处描述的那些)(步骤502),识别借出人。在PVR支持借出授权记录220中的借用者ID224方面来说,扫描与为拥有要记录的节目的用户批准至少等于不足数量的最大借贷量226的借出人授权记录相关。在PVR支持具有用于向任何用户出借的通配符授权的借用者ID 224这方面来说,扫描与授权向拥有要记录的节目的用户或者向任何用户出借至少等于不足数量的最大借贷量226的借出人授权记录相关。通过把扫描的借出授权记录中的借出人ID 222作为用户简表202中的外键码,PVR比较最大借贷授权226和识别为具有至少等于不足数量的最大借贷量226的借出授权记录中的借出人的用户的自由空间206。PVR随后把在该扫描和比较中找到的,具有均至少等于不足数量的最大借贷量226和自由空间量206的第一个借出人选为借出人。在这种意义上,根据不足数量选择借出人。
所有借出人可能具有小于不足数量的最大借贷授权(图3上的226)。所有借出人可能具有小于不足数量的自由空间(图3上的206)。于是必须从一个以上的借出人借用借贷量,借贷量均小于不足数量,但是整体合计至少达到不足数量。
图6描述了为其个体借贷量的合计总借贷量至少等于不足数量的多个借贷选择借出人的方法。特别地,图6中描述的例证方法包括‘为借用人’扫描借出授权记录(图3上的220)(步骤508),意味着从不同的借出人扫描借出授权记录,找出允许向当前的借用人,即具有借用人ID字段224中的借用人的用户ID的借用人借贷的那些借出人。为了找到允许向借用人(或者借助如上所述的通配符授权,向任何借用人)出借,并且还至少具有一定的自由空间的借出人,图6的方法比较来自借出授权记录的最大借贷量226和相应用户简表202中的自由空间值206(步骤510)。由于在本例中,没有单一借出人具有满足不足数量的足够自由空间,当找到具有一定自由空间的借出人时,例证方法还产生借贷记录230(步骤512),借贷记录230具有等于借出人的最大借贷量226或借出人的自由空间204中较小者的借贷量236。例证方法还把借贷量加入借用人的借用空间208中(步骤514),把借贷量加入借出人的借出空间210中(步骤516),从借出人的自由空间206减去借贷量(步骤518)。例证方法把借贷量加入当前节目的运行总量(步骤520),例证方法重复扫描步骤508,比较步骤510,产生借贷记录步骤512,计算出借贷(步骤514、516、518),和增加运行总量步骤520,直到借贷量的运行总量至少等于不足数量为止。
在图6的例证方法中,正在和借用人ID字段234中的借用人的用户ID相关的借出授权记录的存在代表从借出人(在借出人ID字段222中识别的借出人)到借用人的借贷授权。PVR被编程为查找至少一个这样的借出授权记录,并且发现或未发现至少一个这样的借出授权记录确定是否存在许可借用的借出人。更具体地说,PVR被编程为查找至少一个这样的借出授权记录,并且发现或未发现至少一个这样的借出授权记录确定是否批准借用人向一个或多个借出人借用存储空间。图6的例证方法把其自由空间至少等于不足数量的一个或多个用户选为借出人。
鉴于图3的例证数据结构,图7描述了选择借出人的一个备选例证方法,大体上类似于图6的例证方法,但是还依赖于优选权。如图3中所示,实现成本发明的实施例的PVR可在用户简表202中包括借出优选权等级214。在图7的方法中,每个用户具有优先级等级,并且选择借出人包括根据优先级等级,选择其自由空间至少等于不足数量的借出人。如果可找到其自由空间至少等于不足数量的单一借出人,那么只需要单个借出人。如果满足优先级相关性的第一借出人不具有满足不足数量的自由空间,那PVR可被编程为或者进行一次以上的借贷,或者继续寻找具有足够自由空间的单一借出人。如果不能找到具有足以满足不足数量的自由空间的单一借出人,那么PVR一般被编程为进行一次以上的借贷。
更具体地说,参见图7,所描述的例证方法包括‘关于借用人’查找借出授权记录(图3上的220)(步骤802),意味着具有借用人ID字段224中借用人的用户ID的借出授权记录。图6的方法比较来自借出授权记录的最大借贷量226和相应用户简表202,即借出授权记录220中借出人ID字段222中识别的借出人的用户简表中的自由空间值206(步骤804)。
图7的方法包括检查正确的优先级(步骤806)。正确的优先级取决于特定的PVR。例如,PVR可被编程,以致借用人的优先级必须高于借出人的优先级,大于或等于借出人的优先级,小于借出人的优先级,或者小于或等于借出人的优先级。本领域的技术人员易于想到关于优先级比较或相关性对PVR编程的其它方法,并且所有这些方法在本发明的范围之内。在图7的方法中,如果在借出授权记录中识别的借出人不满足优先级要求,那么该方法返回,并通过查找另一借出授权记录(步骤802),重复该方法的过程。
在图7的例证方法的操作中,有可能任何一个借出人单独都不具备满足不足数量的足够自由空间。于是,实现图7的方法的PVR被编程,以致当找到具有一定存储空间,并且满足优先级要求的借出人时,PVR产生具有等于借出人的最大借贷量226或借出人的自由空间204中较小者的借贷量236的出借记录230(步骤808)。图7的例证方法也把借贷量加入借用人的借用空间208中(步骤810),把借贷量加入借出人的借出空间210中(步骤812),从借出人的自由空间206减去借贷量(步骤814)。例证方法把借贷量加入当前节目的运行总量中(步骤816),并且重复查找借出授权记录的步骤802,比较步骤804,检查优先级步骤806,产生出借记录808,计算借贷步骤(810、812、814)和增加运行总量步骤816,直到借贷量的运行总量至少等于不足数量为止。
图8描述了选择借出人的一个备选例证方法。更具体地说,图8的例证方法在具有至少等于不足数量的自由空间的所有用户中,选择自由空间与分配的存储空间的比值最大的那个用户。图8的例证方法以图3中借出授权记录220的借出授权间隔大小,即特定最大数量226的从借出人222到借用人224的借出授权为基础。图8的例证方法首先查找批准从其自由空间206至少等于不足数量的借出人向借用人224借出存储空间的第一借出授权记录220(步骤702)。图8的方法随后把第一借出人ID和该借出人的自由空间206与不足数量的比值保留在临时存储器中。该方法随后包括重复(步骤710)关于借用人扫描剩余的借出授权记录(步骤706),对于批准向借出人出借,并且具有至少等于不足数量的自由空间的每个借出人,比较借出人的自由空间与不足数量的比值和当前保留在临时存储器中的比值(步骤708),并把最高比值和具有最高比值的借出人的用户ID保留在临时存储器中(步骤709)。循环结束时保留在临时存储器中的用户ID被识别为当前出借的借出人(步骤712)。通过把借贷量加入借用人的借用空间208(步骤714),把借贷量加入借出人的借出空间210中(步骤716),和从借出人的自由空间206减去借贷量(步骤718),完成出借。
根据本发明的实施例的借用存储空间的处理包括把借用空间返还借出人。如前所述,当借用人已观看为其借用空间的节目时,可发生借用空间的返还。但是在本发明的范围内,当借出人需要“收回”借用空间时,也可发生借用空间的返还。更具体地说,当为借出人记录节目时,节目可具有超过借出人的自由空间的存储空间要求。节目的存储空间要求和借出人的自由空间之间的差值被称为“不足数量”。本例中的借出人是已向一个或多个其它用户,即借用人借出一些存储空间的用户。本例中,根据本发明实施例的PVR被编程为确定是否可从其它用户向借出人借给其它自由空间,并且如果不可向借出人借给其它自由空间,那么从至少一个借用人把借出人先前借给借用人的至少一部分借贷量返回给借出人。
结合图3的例证数据结构,图9描述了向从其借用存储空间的借出人返回借用的存储空间的方法的例子。图9的方法始于安排记录存储空间要求超过预定该记录的用户(节目的‘所有人’)的自由空间的节目(步骤802)。本例中,所有人为借出人。即,要记录节目的所有人具有相对于一个或多个用户的未偿还的存储空间借出(由图3上附图标记230图解说明的那类出借记录表示的借出)。本例中,借出人的存储空间不足。即,借出人的用户简表202中的借出人的自由空间量206小于代表要记录节目的节目记录240中的空间要求246(差值为不足数量)。
本例中,PVR被编程为扫描借出授权记录,确定是否存在可供借出人借用的存储空间(步骤804)。如果存储空间可供借出人借用,那么PVR安排向借出人的借贷(步骤816),并继续记录(步骤822)。本例中,如果不存在可供借用的空间,那么PVR收回其它用户(“借用人”)先前向借出人借用的至少一些存储空间。更具体地说,PVR通过查找代表从借出人到借用人的存储空间出借的出借记录230(步骤806),把来自出借记录的借贷量236加入借出人的自由空间字段206(步骤808),从借出人的借出空间字段中减去借贷量236(步骤810),从借用人的借用空间字段减去借贷量236(步骤811),继续进行处理。
在图9的例子中,仍然存在借用人是否开始保存借用人的节目(在出借记录230中的节目ID 241中识别的节目,借用人先前为其向借出人借用存储空间的节目)的问题。在图9的例子中,PVR被编程确定借用人是否具有足以保存在出借记录230中的节目ID字段241中识别的节目的自由空间206。如果否,那么PVR删除借用人的节目(步骤818),删除出借记录230,完成记录(步骤822)。如果借用人具有足以容纳借用人的节目的自由空间,那么PVR从借用人的自由空间206减去借贷量(步骤820),删除出借记录230(步骤812),并完成记录(步骤822)。
如果出借记录中的借贷量小于不足数量,那么PVR可被编程为重复(步骤824)查找出借记录步骤806,收回借出的存储空间(步骤808、810、811),删除借用人的节目步骤820或者从借用人的自由空间减去借贷量步骤818,和删除出借记录步骤812,直到收回足以支持完成借出人节目的记录(步骤822)的存储空间为止。这是收回一个以上的借贷量的例子。即,本例中,当借出人具有相对于一个以上借用人的借贷量时,或者具有相对同一借用人的一个以上的出借时,从借用人向借出人返回至少一部分借贷量包括从一个以上的借用人返回至少一部分借贷量。
               压缩水平和复核存储空间要求
节目240的存储空间要求246是根据节目的持续时间247和节目的估计压缩水平,计算的估计值。图3图解说明了压缩水平的三种例证数据结构:整个PVR 300的默认压缩水平308,用户级的默认压缩水平261,和特定节目240的压缩水平279。提供用户级的默认压缩水平261和PVR水平308,从而每当通过用户的记录节目的时间安排,或者通过优选记录,产生节目记录时,PVR可在节目记录240中记录压缩水平279。
为了便于理解,我们讨论所需最小压缩水平的计算例子。如前所述,美国国内关于HDTV广播定义的格式之一是在每秒30帧的条件下,水平1920象素×垂直1080线。如果把所有这些数字乘在一起,同时8位用于三原色中的每种颜色,那么所需的总数据速率约为1.5千兆位/秒。由于分配给HDTV的6兆赫信道带宽的缘故,每个信道只支持19.2Mb/sec的数据速率,由于信道还必须支持音频、传送和辅助数据信息,因此该数据速率被进一步降低到18Mb/Sec。数据速率方面的限制意味着必须以大约83∶1的数值压缩初始信号。在商业HDTV质量的帧速率和分辨率下,该估计的最小压缩只适用于广播。另外,该估计的最小压缩只是初始广播压缩,只足以使视频流适合传输带宽,还未受到使节目适合PVR的存储空间中的特定空间要求所需的理想进一步(相对)压缩的影响。如图10a和10b(下面更详细说明)中的例证压缩水平记录所示,愿意降低视频质量的用户能够获得高得多的数据存储压缩水平。
为了便于理解PVR中的压缩操作,我们利用单一图像,给出压缩比的一个计算例子,所述单一图像可以是,例如静态图形图像或单一视频帧。压缩比被定义为初始图像中位/象素的数目除以压缩图像中位/象素的数目。假定初始图像具有均在一个24位数据字中表示的320×240象素的分辨率(或者说大小)。并且假定在初始压缩之后,压缩文件的大小为5000字节。那么压缩图像的位/象素为(5000*8)÷(320*240)=0.52位/象素。换句话说,使用的初始图像需要24位来表现每个象素,但是在压缩之后,保存每个象素只需要使用0.52位(平均)。于是压缩比为24÷0.52=46。
在图10a和10b中的表420和602中表示了影响整体的估计压缩水平的因素。如这两个表中所示,但是参考表420,影响压缩水平的因素包括编码类型424(我们假定它带有特定的压缩算法);支持的颜色空间大小426,帧速率428,分辨率430和音频质量432。
表420中的例证记录表示了根据影响压缩的因素,估计的压缩水平422的几个例子。以绝对值的形式,随后在括号中以相对于视频源位流的值的形式表示了压缩水平。相对于初始分辨率430为1930×1080的HDTV源组织表420。相对于初始分辨率为720×480的NTSC源组织表602。
记录440表示在音频质量432为‘高’的情况下,按照MPEG-2,颜色空间大小4∶4∶4或‘48’,帧速率428为30帧/秒,分辨率为1930×1080象素(HDTV标准),估计的源流中的估计初始压缩水平422为80∶1。记录440还表示了相对其自身为1的相对压缩。
目标记录,记录442-450图解说明相对于在源记录440中表示的那种视频源,例证PVR支持的压缩水平。例如,记录442表示在音频质量432为‘高’的情况下,按照MPEG-2,颜色空间大小‘48’,30帧/秒的帧速率428,720×480象素(NTSC视频标准)的分辨率,估计的为480∶1的估计绝对压缩水平422,或者相对于源流的压缩水平(4)。换句话说,利用从1930×1080(HDTV)降到720×480(高质量的NTSC视频)的分辨率重新压缩源流,把主题节目的预计空间要求降低到原量的六分之一。这是虽然算术压缩独自可导致约100-200的绝对压缩比,不过不同于这种压缩技术之外的参数减少,诸如颜色空间、帧速率、分辨率和音频质量之类因素的减少也可导致很大的整体压缩水平的有效证明。
记录444表示通过把颜色空间426从48降到24,例如即从4∶4∶4降到4∶2∶4,获得的为960∶1的估计绝对压缩水平422和相对于源流的相对压缩水平(12)。记录446表示通过进一步降低分辨率430,相对压缩水平增大到约(48)。记录448表示通过把编码424改为MPEG-1和降低音频质量432,得到为(100)的估计相对压缩水平。记录450表示通过进一步把编码424改为MJPEG,和进一步降低音频质量432,得到为(140)的估计相对压缩水平。
对于另一例子,考虑图10b中的表602。表602表示初始压缩水平为80,MPEG-2编码424,支持为48(4∶4∶4)的颜色空间426,帧速率428为30,分辨率430为720×480,音频质量432为高的视频源604。实现表602的例证PVR中支持的相对目标压缩包括由记录606(通过降低分辨率430获得的为4的相对压缩比);记录608(通过进一步降低分辨率430获得的为16的相对压缩比);记录610(通过降低颜色空间426获得的为32的相对压缩比);记录612(通过改变编码424和降低音频质量432,获得的为128的相对压缩比);记录614(通过进一步改变编码424和进一步降低音频质量432,获得的为256的相对压缩比)表示的那些相对目标压缩水平。
表示图10a和10b中不同压缩水平的例证记录说明压缩水平通常随着颜色空间大小、分辨率和音频质量的降低而增大。压缩水平还随着帧速率的降低而增大。具有相关压缩算法的不同编码类型对压缩水平的影响取决于特定编码类型和实现编码的特定编译码器提供的控制类型。出于所有这些原因,本发明的不同实施例中的典型压缩水平是基于上述因素,以及本领域的技术人员会想到的其它因素的估计值。本领域的技术人员会想到的各种各样视频编码、视频压缩算法和影响视频压缩水平的因素的使用都在本发明的范围之内。
如图10a和10b中所示的那些表可用于确定节目的存储空间要求。对于指定持续时间的节目,节目将具有根据诸如在附图标记440和604描述的例证源记录之类的源记录,确定的原始压缩文件大小或空间要求。根据本发明的实施例的PVR可支持在诸如图3的附图标记300描述的PVR简表之类的系统级PVR简表中建立数据元素,目标文件大小316,其中保存记录在PVR上的所有节目的存储空间指南。为了容纳长度不断变化的节目,例如可用兆字节/分钟表示目标文件大小316参数,从而持续时间60分钟的节目会具有为30分钟节目两倍的目标存储空间要求,等等。从而,如果基于源参数(440、604)的初始压缩文件大小超过根据目标文件大小316的节目的目标空间要求,那么PVR可被编程扫描诸如在图10a和10b中描述的那些表格,找出其进一步压缩会导致实际空间要求不大于根据目标文件大小316的目标空间要求的相对压缩水平和参数组。
例如,考虑在无进一步压缩的情况下,在720×480的分辨下以MPEG-2广播的30分钟NTSC节目需要50兆字节的初始压缩文件大小,对应于图10b上表602中在记录604描述的支持视频源。本例中,关于30分钟节目的目标文件大小316指示为15兆字节。PVR被编程成扫描表602,寻找导致不大于15兆字节的文件大小的支持压缩配置。PVR选择由记录606代表的支持压缩水平,相对于源视频的相对压缩水平为4。PVR命令其编译码器利用压缩水平记录606的参数重新压缩节目,导致12.5兆字节的实际(估计)存储要求,PVR把12.5兆字节的实际存储要求保存为如图3中描述的典型节目记录240中的空间要求数据元素246中的节目存储要求。
图10a和10b中的表表示了根据本发明的实施例的PVR中的支持压缩水平的两个例证配置。许多这样的配置是可能的,包括用于PVR的任意特定实施例支持的每种源视频的至少一种配置。本领域的技术人员会想到的所有这种配置都在本发明的范围之内。
在PVR上记录的节目通常被压缩,但是通常实际获得的实际压缩水平只被认为是估计值。于是,每个节目的存储空间要求是估计值。换句话说,当PVR开始记录节目时,甚至可能根据节目的存储要求和用户的自由空间的比较借用存储空间时,PVR不能确定借用的空间量能够实际支持记录。需要一种在记录期间检查节目的存储空间要求,如果需要,借用更多空间的方法。事实上,我们公开控制存储空间估计的风险的两种方法,一种方法使用空间检查阈值在记录期间检查节目的存储空间要求,另一种方法利用过分配(overallocation)。
参考图3的例证数据结构,图11描述了在记录期间,检查存储空间要求的例证方法。因此,参考图11描述的方法是前面说明的记录步骤(图4上的410)的扩展。如图11中所示,该方法包括跟踪记录时段和在实际记录期间使用的实际存储空间(步骤452)。跟踪的记录时段是乘以节目持续时间247的空间检查阈值310。
空间检查阈值310是重新计算节目的存储空间要求246之前,要记录的那部分节目持续时间(节目记录240中的247)。可在如图3中的PVR简表结构300中的附图标记所示的数据结构中实现空间检查阈值。例如,在PVR中持续时间247为30分钟的节目具有90%的空间跟踪阈值,该节目的跟踪记录时段应为27分钟。
当跟踪记录时段至少等于乘以节目的持续时间247的空间检查阈值310时,PVR通过比较使用的实际存储空间和根据估计的存储空间要求,预定要使用的存储空间量,检查估计的存储空间要求。预定用量是乘以初始估计存储空间要求247的空间检查阈值310。
如果使用的实际空间大于预定用量,那么根据图11的方法的PVR递增节目的存储空间要求457。可通过增加预定比例的初始存储空间要求,实现节目的存储空间要求的递增。预定比例可被保存为,例如PVR简表300中的空间检查增加比例312。如果在节目记录240中的字段246中反映的节目的初始存储要求为20兆字节,那么空间检查增加比例为10%,那么PVR可把2兆字节加入节目的存储空间要求246中,导致22兆字节的新存储空间要求。
图11的方法包括比较借用人的自由空间和新存储空间要求,以便确定是否存在不足。该比较现在有用,因为否则当开始记录时,即使用户存在需要借用的不足数量,也不知道该用户目前的存储空间是否存在不足。在开始记录之后,可改变借用人的自由空间。如果确实存在不足数量(步骤460),那么图11的方法选择借出人(步骤462),借用至少和目前的不足数量相同的新借贷量(步骤466),并完成记录记录(步骤468)。如果根据图11的PVR未能找到借出人,那么停止记录(步骤464)。
假定30分钟节目,例如视频下载的初始位速率为150千位/秒,在MPEG-1下这应是相当高的质量。30分钟的节目持续时间为1800秒。总的空间要求为150000乘以1800,即270兆位,除以8位/字节约为34兆字节的节目存储空间要求。在压缩等级相当大的情况下下载该节目,存储空间要求的确是估计值。
由于在开始记录前,我们知道存储空间要求是估计值,因此在图12中图解说明的方法中表示了应付估计值风险的另一方式。鉴于图3的数据结构,说明图12的方法。根据图12的方法通过根据过分配率,递增节目的存储空间要求,开始总的记录过程。在图3的数据结构中,在PVR简表300中的附图标记314处提供本例中的过分配率。例如,如果过分配率314为110%,那么根据图12的方法,节目的存储空间要求会从34兆字节增大到37.4兆字节(34*110%)。
通过比较借用人的自由空间和节目的(新)存储空间要求(步骤458),如果存在不足,那么选择借用人(步骤462),借用借贷量(步骤466)和完成记录(步骤468),继续图12的方法。在记录之后,图12的方法继续比较使用的实际存储空间(利用节目的文件名242,从操作系统的文件系统读取),并把未用的存储空间量返回给借出人。
利用图3的数据结构表述,返回未用的借贷量(步骤474)包括查找具有记录节目240的节目ID 241的出借记录230。根据图12的方法的PVR从借出人的用户简表中的借出空间字段210减去未用的存储空间量,把未用量加入借出人的用户简表中的自由空间字段206,并从借用人的用户简表中的借用空间字段208减去未用量。
压缩效率取决于类型。更具体地说,实际视频压缩的效率取决于视频中描述的主题的运动。考虑苹果的5帧特写静物。必须整体对第一帧编码,但是后续四帧只需参阅第一帧;它们根本不需被编码。但是,就紧紧聚焦于比赛期间的11个足球运动员的5帧视频来说,对于5帧视频中的每帧视频来说,帧中的大部分象素将因帧而异。和5帧美术展示相比,5帧足球的压缩效率必定较低。和戏剧相比,美术的压缩效率更高。和动作电影相比,戏剧的压缩效率更高。和体育竞赛相比,动作电影的压缩效率更高,等等。
图11和12的方法还适合于解决压缩效率随类型而变的问题。我们首先鉴于图13中的例证数据结构,论述图12的方法。图13描述了根据图3已熟悉的PVR简表300的一种形式,所述PVR简表300被修正,从而把空间检查字段:空间检查阈310,空间检查增加比例312和过分配率314转移到新的空间检查简表350。新的空间检查简表350包括类型字段316。空间检查简表350可用于根据类型316,改变空间检查字段:空间检查阈310,空间检查增加比例312和过分配率413的值。
在实现图11的在记录期间检查存储空间要求的方法的PVR中,通过如同本领域的技术人员会想到的那样,对不同类型使用不同的增量,或者如同按照许可设置空间检查简表中的空间检查增加比例的用户的判断设置的那样,对于类型316为‘美术’来说,可在空间检查简表350中把空间检查增加比例312设置成5%。对于类型316为‘戏剧’来说,可在另一空间检查简表中把空间检查增加比例312设置成10%。对于类型316为‘动作’来说,可在另一空间检查简表中把空间检查增加比例312设置成15%。对于类型316为‘体育’来说,可在另一空间检查简表中把空间检查增加比例312设置成20%,等等。
在实现图12的用于在开始记录过程时,过分配存储空间的方法的PVR中,通过如同本领域的技术人员想到的那样,对不同的类型使用不同的过分配率值,或者如同按照许可设置空间检查简表中的空间检查增加比例的用户的判断设置的那样,对于类型316为‘美术’来说,可在空间检查简表350中把过分配的比例递增,过分配率314设置成105%。对于类型316为‘戏剧’来说,可在另一空间检查简表中把过分配率314设置成115%。对于类型316为‘动作’来说,可在另一空间检查简表中把过分配率314设置成115%。对于类型316为‘体育’来说,可在另一空间检查简表中把过分配率314设置成120%,等等。
参考图14并结合图3和13的数据结构,我们描述了根据类型,递增存储空间要求的方法。更具体地说,图14的方法是实现如同关于图11(在记录期间检查存储空间要求的方法)的附图标记457公开的递增存储要求的更详细方法。图14的方法包括从节目记录240读取节目的类型(图3上的243)(步骤1402),根据节目的类型,选择空间检查简表350(步骤1404),递增存储空间要求(步骤1406),递增量为空间检查增加比例(图13中空间检查简表350上的312)和节目的当前空间要求(图3上节目记录240中的246)的乘积。
参考图15并结合图3和13的数据结构,我们描述了在开始记录过程时过分配存储空间的方法。更具体地说,图15的方法是如同结合图12的附图标记470公开那样,按照过分配率实现存储空间要求的更详细方法。图15的方法包括从节目记录240读取节目的类型(图3上的243),根据节目的类型选择空间检查简表350,并把存储空间要求递增到过分配率(图13中空间检查简表350上的314)和节目的当前空间要求(图3上的节目记录240中的246)的乘积。
                       库(pool)和组
至此,我们已详细公开了具有用户之间的存储空间出借的个人视频记录。但是,通过支持允许用户集合他们的出借、借用和记录节目的能力的各种方式,可提高个人视频记录的能力和灵活性。
我们从重新考虑存储空间的整体结构开始。参见图2b,上面我们描述了所有可用空间被分配给用户的存储空间的整体结构。现在参见图16,描述存储空间的更灵活的整体结构。按照图16的存储空间的例证结构描述20%的整体存储空间未被分配给任何人(附图标记1802);20%的整体存储空间被分配给父亲(附图标记1804);20%的整体存储空间被分配给母亲(1808),10%的存储空间给组(1806),10%的存储空间给库(1804);10%的存储空间给儿子(1814);10%的存储空间给女儿(1812)。在下面的说明中,我们较详细地说明存储空间的这种新的整体结构如何提高个人视频记录的灵活性。
                        
库是用于出借的存储空间的集合。库被赋予它们自己的存储空间。库把它们的存储空间借给借用人。虽然在本发明的范围内不存在拒绝库出借的任何内容,不过,在本公开文献中,我们的关于借用的集合的例子是下面描述的‘组’。在我们的共用例子中,为了降低混淆的风险,并提高说明和理解的清晰度,我们描述不借用的库的例子。
通过自未指定的存储空间指定存储空间,或者通过自用户自由空间的分配,库获得它们的存储空间。库通常被准许把它们的存储空间出借给用户或者组。借出授权的例子是产生借出授权记录。
更具体地说,图20描述了可用于实现库的例证数据结构。借出授权记录220、出借记录230和PVR简表300的数据结构和图3中的那些类似。根据这种实施例的PVR包含至少一个库简表2002,每个库简表代表一个库。库简表2002包含数据元素库ID 2004,库标识字段;保存目前分配给该库的存储空间的数量的分配的空间198;保存库的适于记录或借出的分配空间部分的自由空间206;和保存目前从库出借给用户或组的空间数量的出借空间210。
在诸如附图标记220描述的那些借出授权记录中批准从库出借存储空间。借出授权记录包含数据元素借出人ID 222。就从库的借出授权来说,借出人ID字段保存库ID。借出授权记录的字段还包括借入人ID 224,保存准许向库借用的用户或组的用户ID或组ID。借入人ID字段224还保存诸如“*”之类的通配符,指示允许从库向任意用户或组出借。借出授权记录的字段还包括最大出借字段226,保存借出授权记录批准的从库向借用人借出的最大存储空间量。
图17陈述了描述具有库的自动个人视频记录方法的流程图,其中该方法包括从一个或多个借出人1502中选择1510一个借出人。借出人包括至少一个具有自由存储空间的用户1504和至少一个具有自由存储空间的库1506。根据不足量1512,进行图17的方法的选择借出人。不足量是节目的存储空间要求超过借用人的自由空间的数量。借用人是代表其记录节目的用户或组。
根据不足量1512进行选择。即,例如,选择被准许至少出借不足量,并且具有至少和不足量相等的自由空间的借出人。另一方面,如果任何单一借出人都不具有足够的自由空间并且未得到充分的借出授权,那么可选择几个借出人,直到借出人的合计自由空间和批准向借用人出借的最大出借量至少等于不足量为止。
按照图17的方法包括根据不足量1512,向借用人1514的选择借出人1508借用408存储空间的至少一个借出量,借用人具有位于PVR上的分配存储空间1516,可选的是,存储空间1516包括自由空间1518。根据不足量进行借用,因为至少需要借用不足量。出借量可以大于不足量。PVR可被编程为根据均小于不足量,但是其和至少等于不足量的数个借出量组成借出量。当确定4408了出借时,按照图17编程的PVR着手记录1520借用人的节目。本例中,节目具有超过借用人的自由空间(附图标记206)的存储空间要求(图3上的附图标记246),超过量为不足量1512。
在按照图17的方法中,选择的借出人1508可以是库1506。在按照图17的方法中,借用人可以是用户。如下更详细所述,借用人也可以是组。如下更详细所述,图17的方法可包括产生库(1522),包括向库分配存储空间(1524)。
更特别地,图18陈述了描述向库分配存储空间的例证方法的流程图。在图18的方法中,向库1506分配存储空间1524包括从至少一个用户1604向库1506分配1612存储空间。用于用户来说,具有可供向库分配的自由空间1606是有益的。在图18的方法中,向库1506分配存储空间1612包括使用户的存储空间分配1604和用户的自由空间1606缩减共用的分配量1618。图18的方法还包括使库的自由空间1610和库的分配空间1608增加共用的分配量1618。
图19陈述了描述向库1506分配存储空间1524的备选例证方法的流程图。权利要求19的方法包括直接从未分配的存储空间1702把存储空间的共用分配量1704分配给库1506。在权利要求19的方法中,向库分配1524共用的分配量包括使库的自由空间1610和库的分配空间1608增加共用的分配量1704。
现在相对于图2b和16中图解说明的整体存储空间结构,考虑通过库的使用,提供的增大的灵活性。例如,在按照图16的整体结构中,父母(1808、1810)可把库1804视为为孩子(1814、1812)借用系统开销的仓库。通过发了准许从库向孩子出借的借出授权记录,在不存在准许直接从父母向孩子出借的借出授权记录的情况下,父母使孩子能够获得超出明确分配给孩子的可用存储空间,同时,保留父母对他们自己的核心分配(1808、1810)的独占使用。
                       
组是记录能力的集合。即,组集合自由空间和借用能力,以支持记录,而不是出借。虽然这不是本发明的限制,不过在我们的例证集合中,是组而不是库被准许借用存储空间。在我们的例子中,出借存储空间的是库而不是组。组包括成员,至少含蓄地并且如下更详细所述,组在它们的成员之间分配存储空间。
组空间,即分配给组的存储空间可被分配或借用。组空间可分配自用户的自由空间或者分配自未分配的空间。可从发出支持一组的借出授权记录的任意借出人,即从用户或库借用组空间。
图21a描述了可用于表示根据本发明的不同实施例的PVR中的组的例证数据结构。组简表2102代表一组。组简表通常具有诸如组ID2104之类的组标识字段。组简表2102还为分配空间2130,自由空间2132,已用空间2134,借用空间2136,关于该组允许的可记录内容的内容限制2138,和位于组层2102的默认压缩级2140提供数据元素。
图21a的例证数据结构提供代表组的各个成员的成员记录2106。组的成员是具有成员记录的用户,成员记录把用户识别为组的成员。成员记录2106包含组ID字段2104,作为以一对多关系把各个成员记录和组连接起来的外码。
成员记录2106包含把用户识别为在组ID字段2104中识别的组的成员的用户ID字段322。用户ID字段322是一对多地把成员记录和用户简表202联系起来的外码。于是,在图21a的例证数据结构中,成员记录实现组2102和用户202之间的多对多关系。即,每组可具有作为成员的多个用户,每个用户可以是许多组的成员。
组可具有规定的优等选择。更具体地说,通过它们的授权代表,组可以,例如以用户首选项记录320的形式产生优先选择的表达。对于组的优先选择的表达来说,首选项记录320中的用户ID字段322保存充当一对多地联系用户首选项记录320和组的外码的组ID。即,每组可宣称许多优先选择。根据这种实施例的PVR被编程为按照和关于各个用户实现优先选择记录相同的方式,实现关于各组的优先选择记录。
组的授权代表可按照和为用户调度节目的相同方式为各组调度节目的记录,例如通过产生借助用户界面实现的节目记录。更具体地说,预定代表组2102被记录的节目240把代表其预定要记录该节目的组的组ID保存在其拥有者ID字段224中。在这种实施例中,组被认为是节目的所有者。
就借入而论,任何借出人发出的任意借出授权记录(图3和20上的220)可在其BorrowID字段224中保存有效批准对组的出借的组ID。当通配符表示向任何借用人,包括组出借的授权时,利用诸如借入人ID字段224中的‘*’之类的‘*’通配符,批准组借用。在借出授权记录220的借出人ID字段222中识别的借出人可以是任意借出人,包括用户和库。
参考图17中描述的个人视频记录例证方法,可进一步说明组的借用。图17的方法包括代表借用人向借出人1502借用408借用量。借出人1502可以是任何经授权的借出人,包括单个用户和库。借用人1514可以是任何经授权的借用人,例如组以及单个用户。在我们的例证数据结构的环境中,经授权的借用人可以是其组ID出现于借用授权记录220的借入人ID字段224中的组。
从库到组的出借可选择的。即,本发明对库向组的出借没有任何要求,实现只从单个用户向组出借的PVR编程完全在本发明的范围之内。
PVR可被编程接受来自所有组成员或部分组成员的关于节目或组优先选择的表达的调度项。成员记录2106的例证数据结构包括布尔字段AuthorizedRep 2110,其中保存成员记录2106所代表的成员是否被准许排定节目并代表组宣称优先选择的指示。
图22陈述了描述产生组的例证方法的流程图。图22的方法包括产生1906组简表2102,并向该组分配组存储空间1914。另外,图22描述了分配组存储空间的两种备选方法。更具体地说,图22的方法包括向组2101分配1908用户的存储空间1904,作为组存储空间1914。图22的方法还包括直接从未分配的存储空间1902,把组存储空间1914分配1910给组2101的备选方案。
就组分配来自于成员的自由空间1904来说,成员的分配空间(图21a上的附图标记198)和成员的自由空间(图21a上的206)被缩减从用户的自由空间分配给组存储空间的存储空间量。不要求成员平等促成从成员的自由空间到组存储空间的分配。不要求向组提供自由空间的所有(或者任意)用户必须是组的成员。当组产生时,捐赠者、用户和/或成员可确定自用户自由空间的分配的比例(或者可稍后通过用户界面屏幕修正)。
使用组记录节目的优点在于通过杠杆作用影响单个用户的自由空间的使用。这种杠杆作用的一个例子是为具有三个成员的一组记录存储空间要求50兆字节的节目,所述每个成员向组的存储空间提供20兆字节的用户自由空间,即,来自每个用户的平等贡献。本例中,隐含地,每个用户的自由空间被使用16.67兆字节,作为回报,每个用户能够记录并观看50兆字节的节目。
另一优点在于节目中的组所有权根据成员对组存储空间的相对贡献,在成员之间隐含分配所有权。考虑三用户组记录喜剧节目的例子,事先已知用户1和2对喜剧的兴趣小于用户3。这些用户按照1/1/2的比例把他们的自由空间捐献给组存储空间,即用户110兆字节,用户210兆字节,用户320兆字节。于是,就使用10兆字节记录节目来说,这三个用户使用他们的存储空间的程度分别为2.5兆字节,2.5兆字节和5兆字节。正是组存储空间的明确使用按照用户自己设置的预定加权系数隐含分摊空间要求,而不是在组的三个成员之间平等分摊空间要求。
                   分摊(Apportionment)
在迄今为止关于组的所有例子中,整个组记录并删除每个节目,尽管存储空间的隐含分摊,不过一直受益于或受损于节目的整个空间要求的仍然是整个组。具有比此更高的灵活性应是有利的。有利的是能够允许用户在组中集合他们的存储空间,随后当要退出时,借助向每个用户赋予的灵活性,允许逐个用户退出,而不是要求整个组等待,直到他们都同时重获节目的已用空间为止。有益的是能够在组的成员之间明确分摊所有权以及出借量。
                    存储空间的分摊
现在说明根据本发明的PVR的另一类实施例,为组记录节目的实施例,其中向组的成员指示节目的存储空间要求,而不是象这样向组指示节目的存储空间要求。在这种实施例中,参考图21a中的例证数据结构,就向组指示空间要求的数据元素来说,空间分配字段2130、自由空间字段2132、已用空间字段2134和借用空间字段2136存在于组简表2102中,这些字段未被使用。事实上,在根据这种实施例的一些PVR中,这样的字段可全部从组简表2102中除去。
在其它实施例中,支持两种操作模式,一种是象这样向组指示空间要求,另一种模式向组成员指示空间要求。在第一种模式中,使用向组指示空间要求的字段;在第二种模式中,忽略这些字段。利用在为此目的建立的布尔字段,例如图21a上例证的组简表2102中的字段组模式2116中实现的模式开关,根据这种实施例的PVR可在这两种操作模式之间转换。上面我们详细说明了第一种操作模式。在下面的说明中,我们集中于第二种模式,向成员指示空间要求。
参见图23,并参考图21a的例证数据结构,我们说明关于组的节目个人视频记录方法,所述方法向组成员1920分摊2156存储空间要求246。图23的方法包括在两种情况下产生2106节目记录240。该方法包括当借助组的授权代表的数据输入,预定记录2152节目时,产生节目记录。
该方法还包括当根据成员优先选择2150的指示,关于优先选择记录2154识别节目时,产生节目记录。成员是用户,如上详细所述,在用户优先选择的指示的数据输入方面,例如包括输入用户首选项记录320,用户的优选节目标题324和优选演员326的指示,以及宣称这种优先选择的相对强度的用户指示,如偏爱程度字段328中所示,本发明的PVR支持用户。
将以组2102的名义记录的节目240把以其名义记录节目的组的组ID保存在节目240的拥有者ID字段244中。在这种实施例中,组而不是任何单个用户被认为是这种节目的所有者。
图23陈述了描述自动化个人视频记录方法的流程图,所述方法包括为包含若干成员1920的组2102记录2162具有存储空间要求246的节目240,其中每个成员在PVR上具有分配的存储空间198,可选的是,存储空间198包括自由空间206。图23的方法包括分摊2156节目的存储空间要求246,包括向每个成员1920分摊节目的存储空间要求的分摊量。公开了分摊空间要求的三种例证备选方式。
另一方面,在图23的方法中,分摊2156节目的存储空间要求246包括按照成员的数目2114分摊。在根据这种实施例的PVR中,成员的数目一般记录在组简表2102上,例如在诸如成员数目2114之类的字段中。从而分摊节目的存储空间要求包括用成员的数目去除节目的空间要求,从而确定需要向每个成员收取的节目的存储空间要求的分摊量。随后,分摊节目的存储空间要求包括使成员的已用空间204增加分摊的数量,使每个成员的自由空间206缩减分摊的数量。
另一方面,在图23的方法中,分摊2156节目的存储空间要求246包括按照预定的比例2160分摊。在根据这种实施例的PVR中,在诸如成员记录2106中的空间共享字段2112之类的字段中确定预定的比例。预定的比例可以是累计达到100%的百分数,从而例如在具有4个成员的组中,预定的百分数可以是,例如10%、10%、40%和40%。从而,这种实施例中,分摊节目的存储空间要求包括把节目的存储空间要求乘以各个预定百分数,由此确定每个成员的独立分摊量。从而在这种实施例中,分摊节目的存储空间要求包括对于每个成员,使成员的已用空间204增加该成员的分摊量,使成员的自由空间206缩减该成员的分摊量。
另一方面,在图23的方法中,分摊2156节目的存储空间要求246包括按照成员的优先选择2158分摊。成员在例如用户首选项记录320中指示优先选择,包括相对强度等级328的指示。从而这种实施例中,分摊节目的存储空间要求包括以百分数的形式,确定每个成员的优先选择的加权系数。从而在这种实施例中,分摊节目的存储空间要求包括把节目的存储空间要求乘以各个加权系数,由此确定每个成员的独立分摊量。从而在这种实施例中,分摊节目的存储空间要求包括对于每个成员,使成员的已用空间204增加该成员的分摊量,使成员的自由空间206缩减该成员的分摊量。
此外,就优先选择的加权系数来说,我们给出本例进一步说明。在关于节目标题“Dukes of Hazzard”的用户首选项记录320中,母亲宣称为‘3’的偏爱程度,父亲宣称为‘2’的偏爱程度,儿子宣称为‘1’的偏爱程度,女儿宣称不爱好“Dukes of Hazzard”。成员的优先选择的加权系数分别为3/6、2/6、1/6和0/6,或者以百分数表示,分别为50%、33.33%、16.67%和0%。一集“Dukes ofHazzard”的节目存储空间要求为10兆字节。从而每个成员的分摊量分别为5兆字节、3.3兆字节、1.67兆字节和0兆字节。本例中,在每个成员的用户简表202中,成员的已用空间204和自由空间206分别增加和缩减5兆字节(母亲)、3.3兆字节(父亲)、1.67兆字节(儿子)和0兆字节(女儿)。本例中,女儿获得免费搭乘,鉴于她表示不喜欢该节目,因此这是合理的。
              成员退出与组相关的存储空间分配
不管他们先前加入组的协议,成员可能希望通过退出组的节目联合所有权,重获他们的分配给节目的组存储的自由空间。例如,当某一成员已观看节目时,该成员可能希望退出,于是重获存储空间,以便用于其它用途。当某一成员发现组已记录(从而该成员分摊部分节目存储要求)该成员不感兴趣的节目时,该成员可能想要退出。回忆上面的其中儿子对“Dukes of Hazzard”表示为‘1’的偏爱程度的例子。当知道他的组已记录一集“Dukes of Hazzard”时,儿子可能确信他的存储空间用在其它地方可能更好。
在迄今为止我们关于个人视频记录的教导中,不存在成员退出组的节目所有权的简易方式。例如,考虑根据组中成员的数目,分摊存储空间的情况。我们公开了把组大小保存在图21a上表示的组简表2102中的成员数目字段2114中。但是,如果一个成员退出,那么有效的组大小被减1。从而推测起来,我们可定义例如称为“有效组大小”的字段,PVR可把还未退出的成员的数目保存于其中,但是没有一种简易的方式知道哪些成员留下。需要的是具有更大灵活性的某一方法。
图21描述了重新分摊记录2174的例证数据结构,每个重新分摊记录2174识别相对于组的特定成员的节目存储空间要求的重新分摊。这种重新分摊记录表示在还没有退出特定节目的所有权责任的组成员之间,节目存储空间要求的责任的分摊。通过使用重新分摊记录2174,PVR被编程为当一个用户退出组所有权时,为剩余的每个成员产生一个重新分摊记录,从而提供关于多少成员留下以及哪些成员留下的准确记录。
图21a的例证重新分摊记录2174提供节目ID字段241,用作使重新分摊记录和节目记录240联系起来的外码的作用。节目记录240通过把组ID保存在其拥有者ID字段244中,把组识别为节目的所有者。节目记录240中的空间要求字段246保存节目的总的空间要求。
例证的重新分摊记录2174提供用户ID字段280,保存将向其分摊节目的存储空间要求的成员之一的用户ID。例证的重新分摊记录2174还提供重新分摊量字段282,保存将分摊给在重新分摊记录2174的用户ID字段280中识别的成员的那部分节目空间要求。
图24陈述了描述个人视频记录方法的流程图,其中使组成员能够退出节目的组所有权。图24的方法包括在组成员1920中分摊2156节目的存储空间要求。根据成员的数目2114,根据预定比例2160或者根据用户的优先选择2158,分摊2156存储空间。在分摊2156存储空间之后,根据图24的方法的PVR记录节目2162,之后用户可随意观看节目(2164、2170)和删除节目2172。在可在成员退出2164之前,在成员退出2170之后,或者事实上,在从存储器删除节目之前,节目未被任何人观看的意义上,认为观看节目是随意的。图24的方法确实包括最终删除节目2172,包括改变节目的存储空间要求的当前分摊。
图24的方法包括成员的退出2165,随后在组成员1920间重新分摊2166节目的存储空间要求246。重新分摊2166节目的存储空间要求包括通过使每个成员的已用空间204缩减初始的分摊量,并使每个成员的自由空间206增加初始的分摊量,改变先前的节目存储空间要求的分摊。
重新分摊2166还包括在一个组成员退出之后,产生2168重新分摊记录2174,每个组成员一个重新分摊记录。如图21a中所示,每个重新分摊记录2174保存节目ID 241,剩余成员的用户ID,和重新分摊量282。按照多种方式确定重新分摊量282。我们说明三种确定重新分摊量,随后据此重新分摊存储空间要求的例证备选方法。
在图24的方法中,重新分摊2166节目的存储空间要求246或者包括根据成员的数目2114重新分摊。在根据这种实施例的PVR中,成员的数目一般记录在组简表2102上,例如记录在成员数目2114中。从而,重新分摊2168节目的存储空间要求包括使成员的数目减1,由此确定一个成员退出之后剩余成员的数目,以及要产生的重新分摊记录的数目;如上所述为每个留下的成员产生一个重新分摊记录;把节目的空间要求除以剩余成员的数目,由此确定相对于每个留下的成员,要改变的节目存储空间要求的重新分摊量;并把重新分摊量保存在每个重新分摊记录2174中的重新分摊量字段282中。从而,重新分摊节目的存储空间要求还包括使每个留下成员的已用空间204增加重新分摊量,并使每个留下成员的自由空间206缩减重新分摊量。
在图24的方法中,重新分摊2166节目的存储空间要求246或者包括根据预定比例重新分摊。在根据这种实施例的PVR中,在诸如成员记录2106中的空间共享字段21 12之类字段中确定预定的比例。预定比例可以是累计达到100%的百分数,从而,例如在具有4个成员的组中,预定比例可以是,例如10%、10%、40%和40%。但是,在一个成员退出之后,剩余成员的预定比例不再累计达到100%。于是,图24的方法包括通过对剩余的预定比例加权,重新计算预定比例,以便剩余的预定比例再次累计达到100%。从而这种实施例中,重新分摊节目的存储空间要求包括把节目的存储空间要求乘以重新计算的预定比例,由此确定每个留下成员的独立重新分摊量。从而这种实施例中,重新分摊节目的存储空间要求包括把每个留下成员的重新分摊量保存在重新分摊记录2174中的重新分摊量字段中。从而这种实施例中,重新分摊节目的存储空间要求包括对于每个留下的成员,使成员的已用空间204增加该成员的重新分摊量,并使成员的自由空间206缩减该成员的重新分摊量。
在图24的方法中,重新分摊2166节目的存储空间要求246或者包括按照成员的优先选择2158重新分摊。成员在用户首选项记录320中指示优先选择,包括相对强度等级328的指示。从而这种实施例中,重新分摊节目的存储空间要求包括以百分数的形式,确定每个留下成员的优先选择的加权系数。一个成员退出前后,这样确定的加权系数将不同,除非如上所述,退出的成员已宣称对所述节目没有任何兴趣。从而这种实施例中,重新分摊节目的存储空间要求包括把节目的存储空间要求乘以每个新确定的加权系数,由此确定每个成员的独立重新分摊量。从而这种实施例中,重新分摊节目的存储空间要求包括把每个留下成员的重新分摊量保存在重新分摊记录2174中的重新分摊量字段中。从而这种实施例中,重新分摊节目的存储空间要求包括对于每个留下的成员,使成员的已用空间204增加该成员的重新分摊量,并使成员的自由空间206缩减该成员的重新分摊量。
                      出借的分摊
现在说明根据本发明的PVR的另一类实施例,关于组记录节目的实施例,除了在成员间分摊存储空间要求之外,还在成员间分摊存储空间的出借。有益的是注意至少可按照两种方式产生对出借的需要。可产生出借需要的一种方式是当在用户预定或记录时候,或者在优先选择记录中发现不足量时,产生出借需要。
可产生出借需要的另一种方式是当某一成员退出节目的组所有权时,产生出借需要。当用户退出时,剩余成员的节目存储空间要求的分摊量一般会增大。如果一个成员的分摊量超过该成员的自由空间,那么就存在如果要继续记录的话,就需要借用的不足量。
按照所述实施例的PVR通过向组成员,而不是向组分摊,索要组出借量。如果某一成员退出,那么任何未付的组出借量将重新分摊给留下的成员。
参考图3的例证数据结构,通过把组ID保存在借出授权记录220中的借入人ID字段224中,批准组出借,即向组的出借。在图21b的出借记录230中表示了可用于在成员间分摊组出借的数据结构。图21b的出借记录类似于图3的出借记录,增加了布尔组借贷字段284,用于识别组出借的字段。更具体地说,组出借由一前一后使用的两种出借记录表示。一种出借记录,称为‘组出借记录’具有保存于其借入人ID字段234中的组ID,并且其组借贷字段284被设置为“真”。另一种出借记录,称为‘成员出借记录’具有保存于其借入人ID字段234中的组ID,并且其组借贷字段284被重置为False。于是,通过保存起关系码作用的组ID的借入人ID字段234,组出借记录和成员出借记录被一对多地联系起来。
每个成员出借记录中的借出人字段232保存成员的用户DI,于是用作联系成员出借记录和用户简表202的外码。从用户简表的观点来看,成员出借记录看起来类似于其它任何出借记录,但是事实上稍有不同。成员出借记录230中的借贷量236代表将增加到成员的借入空间208中,并从成员的自由空间206减去的量,类似于向用户的其它任何出借一样。但是存在不同,因为所考虑的唯一实际出借是向组,而不是向组的任意特定成员发出的借出授权记录中,批准为向组的出借。这里涉及的唯一出借是向组的出借。成员出借记录中的借贷量是组出借的分摊量,而不是对单个成员的实际出借。
上面这段中描述的是在数据结构中表示组出借的例证方法。另一种方法会产生标题记录,组出借记录的独立表格。本领域的技术人员易于想到用于表示组出借的其它许多数据结构,所有这些结构都在本发明的范围之内。
图25陈述了描述个人视频记录方法的流程图,所述方法包括向组成员1920分摊或重新分摊2112节目的存储空间要求246。成员是具有PVR上的分配存储空间的用户,可选的是,分配的存储空间包括自由空间。在图25的方法中,比较2402成员的存储空间分摊量和成员的自由空间导致发现2406至少一个不足量,即,至少一个成员的分摊量比该成员的自由空间多所述不足量。
图25的方法包括根据所述不足量,选择2407一个或多个借出人1502。借出人1502可包括具有自由存储空间的用户1504和具有自由存储空间的库1506。在选择已被批准向组至少出借不足量,并且具有至少等于不足量的自由空间的借出人的意义上,根据所述不足量进行选择2407。另一方面,如果没有一个借出人批准至少向组出借不足量,并且具有至少等于不足量的自由空间,那么选择一个以上的借出人。
图25的方法包括根据不足量,向组的借出人1502至少借用一个存储空间出借量。在借用至少等于不足量的借贷量的意义上,根据所述不足量进行借用2408。如果没有一个借出人批准至少向组出借不足量,并且具有至少等于不足量的自由空间,那么利用一个以上的借贷实现一次以上的借贷,直到总的借贷量至少等于不足量为止。
图25的方法包括在组成员1920间分摊2410借贷量。在成员间分摊2410借贷量包括向每个成员1920分摊借贷量的分摊量。下面描述分摊借贷量的三种例证备选方法。
在图25的方法中,分摊2410借贷量或者包括根据成员2114的数目分摊。在根据这种实施例的PVR中,成员的数目一般记录在组简表2102上,例如记录在诸如图21b上所示的成员数目2114之类的字段中。分摊借贷量包括把节目的存储空间要求除以成员的数目,从而确定将向每个成员收取的借贷量的分摊量。分摊借贷量包括产生2411出借记录230,包括组出借记录和每个成员的一个成员出借记录。分摊借贷量包括把要记入每个成员的分摊量保存在每个成员出借记录中的借贷量字段236中。分摊借贷量包括使每个成员的借入空间208增加分摊量,并使每个成员的自由空间206缩减分摊量。
在图25的方法中,分摊2140借贷量或者包括根据预定比例2160分摊。在根据这种实施例的PVR中,在诸如成员记录2106中的空间共享字段2112之类字段中确定预定比例。预定比例可以是累计达到100%的百分数,从而例如,在具有四个成员的组中,预定比例可以是,例如10%、10%、40%和40%。这种实施例中,分摊借贷量包括把借贷量乘以各个预定比例,从而确定每个成员的独立分摊量。分摊借贷量包括产生2411出借记录230,包括组出借记录和每个成员的一个成员出借记录。分摊借贷量包括把要记入每个成员的分摊量保存在每个成员出借记录中的借贷量字段236中。这种实施例中,分摊借贷量包括对于每个成员,使成员的借入空间208增加该成员的分摊量,并使成员的自由空间206缩减该成员的分摊量。
在图25的方法中,分摊2410借贷量或者包括根据成员的优先选择2158分摊。成员在例如用户首选项记录320中指示优先选择,包括相对强度等级328的指示。这种实施例中,分摊借贷量包括以百分数的形式确定每个成员的优先选择的加权系数。这种实施例中,分摊借贷量包括把借贷量乘以每个加权系数,由此确定每个成员的独立分摊量。分摊借贷量包括产生2411出借记录230,包括组出借记录和每个成员的一个成员出借记录。分摊借贷量包括把要记入每个成员的分摊量保存在每个成员出借记录中的借贷量字段236中。从而这种实施例中,分摊节目的存储空间要求包括对于每个成员,使成员的借入空间208增加该成员的分摊量,并使成员的自由空间206缩减该成员的分摊量。
可选的是,图25的方法包括记录节目2120,随意显示节目414,最终删除节目2172,包括取消借贷2502。由于就某一用户退出组所有权而导致需要借用来说,在图25中的方法中,记录被认为是可选的,所讨论的节目可能已被记录。显示(或者观看)节目2172被认为是可选的,因为在图25的方法内,在任何人观看该节目之前,授权成员完全可自由删除该节目。
取消借贷包括扫描关于该节目的出借记录230,并且对于在各个成员出借记录中识别的成员,使成员的借入空间208缩减该成员的借贷量236,并使成员的自由空间206增加该成员的借贷量236。从而取消借贷包括删除关于该节目的所有出借记录230,即,通过节目ID字段241与节目记录相联系的所有出借记录。
             成员退出与组相关的存储空间出借
当成员退出组所有权的责任时,不仅必须重新分摊存储空间要求(如本公开文献中上面详细所述),而且还必须重新分摊任何现有的借贷量。图26陈述了个人视频记录方法的流程图,其中当节目具有存储空间的相关组出借时,使成员能够退出节目的组所有权。图26的方法包括在PVR在组成员1910间分摊2410借贷量之后的成员退出2165。
对于退出没有任何特别的计时限制。成员可在记录节目之前或之后退出,在观看或显示节目之前或之后退出。于是当成员退出时,由于产生了相关的节目记录,因此成员的自由空间量可能(事实上很可能)已改变。图26的方法包括比较2402成员当前分摊的节目的存储空间量和成员的自由空间,以便确定是否仍然存在不足量。
如果成员的自由空间已变化,以致目前不存在不足量,那么图26的方法取消现有不必要的出借。如上所述,取消出借包括扫描相关节目的出借记录230,对于在各个成员出借记录中识别的成员,使成员的借入空间208缩减该成员的借贷量236,并使成员的自由空间206增加该成员的借贷量236。从而取消出借包括删除关于节目的所有出借记录230,即通过节目ID字段241与节目记录相联系的所有出借记录。在取消出借之后,仍然把负责节目存储根据的成员的数目的减少交给图26的方法去做,从而该方法包括如上详细所述,在剩余成员间重新分摊2166节目的空间要求。
如果成员的自由空间没有变化,以致仍然存在不足量,或者如果成员的自由空间已发生变化,但是仍然存在不足量,那么通过在剩余成员间重新分摊2604借贷量继续图26的方法。重新分摊借贷量包括改变2606当前的出借分摊,删除2608退出成员的成员出借记录,并重新计算2610成员的分摊借贷量。
改变2606当前的出借分摊包括扫描相关节目的出借记录230,对于在各个成员出借记录中识别的成员,使成员的借入空间208缩减该成员的借贷量236,并使成员的自由空间206增加该成员的借贷量236。从而,由于此时该方法不完全取消出借,因此只删除2608退出成员的成员出借记录。
在图26的方法中,重新分摊2604借贷量或者包括根据成员的数目2114重新计算2610组出借的分摊量。在根据这种实施例的PVR中,成员的数目一般记录在组简表2102上,例如记录在诸如成员数目2114之类字段中。从而,重新计算2610分摊的出借量包括使成员数减1,由此确定在一个成员退出之后留下的成员的数目。另一方面,PVR可被编程为通过计数剩余的具有相同节目ID设置的成员出借记录的数目,确定剩余成员的数目,因为退出成员的成员出借记录已被删除。随后,重新计算2610包括把节目的空间要求除以剩余成员的数目,由此确定要计入每个剩余成员的出借的重新分摊量。该方法包括把重新分摊量保存在各个剩余成员出借记录230中的借贷量字段236中。重新分摊出借随后还包括使每个剩余成员的已用空间204增加重新分摊量,并使每个剩余成员的自由空间206缩减重新分摊量。
在图26的方法中,重新分摊2604借贷量或者包括根据预定比例2160重新计算组出借的分摊量。在根据这种实施例的PVR中,在诸如成员记录2106中的空间共享字段2112之类字段中确定预定比例。预定比例可以是累计达到100%的百分数,从而例如在具有四个成员的组中,预定比例可以是,例如10%、10%、40%和40%。但是,在某一成员退出之后,剩余成员的预定比例不再累计达到100%。于是,重新计算2610出借的分摊量包括通过对剩余的预定比例加权,以使它们再次累计达到100%,进行重新计算。从而这种实施例中,重新计算2610包括把总的借贷量乘以各个重新计算的预定比例,由此确定每个剩余成员的独立重新分摊量。从而这种实施例中,重新计算2610包括把每个剩余成员的重新分摊量保存在剩余的成员出借记录230中的借贷量字段236中。从而这种实施例中,重新计算2610包括对于每个剩余成员,使成员的已用空间204增加该成员的重新分摊量,并使成员的自由空间206缩减该成员的重新分摊量。
在图26的方法中,重新分摊2604借贷量或者包括根据成员的优先选择2158,重新计算2610组出借的分摊量。成员在,例如用户首选项记录320中指示优先选择,包括相对强度等级328的指示。从而这种实施例中,重新计算2610组出借的分摊量包括以百分数的形式,确定每个剩余成员的优先选择的加权系数。在某一成员退出前后,这样确定的加权系数将不同,除非例如如前详细所述,退出的成员宣称对所指的节目没有任何兴趣。从而这种实施例中,重新计算2610包括把总的借贷量乘以每个新确定的加权系数,由此确定每个剩余成员的独立分摊量。从而在这种实施例中,重新计算2610包括把每个剩余成员的重新分摊量保存在剩余成员出借记录230中的借贷量字段236中。这种实施例中,重新计算2610包括对于每个剩余成员,使成员的已用空间204增加该成员的重新分摊量,并使成员的自由空间206缩减该成员的重新分摊量。
                   已显示存储空间的恢复
本说明书中,迄今为止,我们的讨论都假定如果节目的存储空间要求超过可获得的自由空间,并且不能找到可借用存储空间的借出人,那么节目将不被记录。例如,参见上面关于图4中描述的方法的说明,其中选择借出人406的失败会导致停止记录412。
另外例如参见上面关于图11和12中描述的方法的说明,所述两种方法都牵涉到低估节目的存储空间要求的风险。这两种方法都包括如果不能找到借出人(462、406),那么就停止记录(464、412)。另外参见结合图25,在组成员间分摊或重新分摊存储空间要求的讨论,这里我们再一次假定查找借出人2407的失败意味着停止记录2409。
但是,如果存在查找或产生额外的自由空间,以致可在范围更宽的环境内继续记录,并且能够更有效地使用存储空间应是有利的。解决这种问题的一种途径是注意在任意指定时刻,已用空间可保存已向观众显示的记录节目部分。具有恢复这种已显示存储空间,供目前记录节目之用的多种途径应是有益的。
在下面的说明中,我们使用术语“已显示存储空间”或“已显示空间”表示记录已向观众显示的节目数目的存储空间。图27描述了可用于释放已显示空间,供记录节目之用的例证数据结构。根据本发明的实施例的PVR被编程为避免试图释放被标记为写保护,例如在布尔字段默认记录器保护(用户简表202上的2762),记录保护(节目记录240上的2758)和默认记录保护(PVR简表300上的2760)中标记为写保护的节目中的已显示空间。默认记录器保护2762和默认记录保护2760分别是用户层和PVR层的布尔指示,指示是否把记录保护2758设置为“真”作为默认,即,PVR是否默认拒绝恢复已显示空间供另外记录之用。通过操纵用户接口,授权用户可在任意时刻改变特定节目是否被写保护的指示,例如记录保护字段2758。
显示开始时间2750和显示停止时间2752分别记录节目240的显示时段的显示开始时间和显示停止时间。节目的已显示的已用空间的数量可保存在已显示空间2766中,或者可如下更详细所述,在传输过程中计算已显示空间的数量。
在记录250看来,显示开始时间2754和显示停止时间2756分别为在观众ID 254中识别的特定用户,记录在节目ID 252中识别的节目的显示时段的显示开始时间和显示停止时间。已向用户显示的节目的已用空间的数量可保存在已显示空间2764中,或者可如下所述在传输过程中计算。
图28描述了释放已显示存储空间,供记录节目之用的例证方法。更具体地说,图28描述了关于个人视频记录器的自动个人视频记录方法。图28的方法包括记录2702第一节目2710;显示2704至少一部分第一节目,从而产生已显示空间2712;释放2706已显示空间,从而产生可用的自由空间2714;在通过释放已显示空间而获得的自由空间2714中记录2708至少一部分第二节目2716。
图29描述了一种个人视频记录方法,其中比较403节目的存储空间要求和借用人的自由空间。该方法包括当借用人的自由空间小于节目的存储要求,即当存在不足量时,选择406借出人。按照上面结合图4说明的相似方法,当成功选择借出人时,根据本实施例的PVR借用至少超过不足量的借贷量408,并继续进行记录410。如果没有找到借出人,那么记录停止412。但是,在图29的方法中,存在另外一种选择。即,图29的方法包括借用小于不足量的借贷量2950,释放已显示的空间2706,随后继续进行记录410。释放已显示的空间2706包括释放足够量的已显示空间,从而这样释放的已显示空间和借用的借贷量2950足以满足不足量。就图29的方法的使用来说,只有在借用2950和释放已显示空间2706不能提供足以满足不足量的自由空间的情况下,才必需停止记录411。
在图28的方法中,第一节目2719和第二节目2716可以是相同节目。图30以流程图和存储空间要求的示意图的形式,描述了在记录并观看节目的同时,释放已显示空间的备选方法。在图30中,记录第二节目的步骤2708包括在通过释放2706第一节目2902的已显示空间2904而获得的自由空间2714中记录第二节目2906。另外,记录第二节目的步骤2709包括在通过释放2706第一节目2902的已显示空间2904而获得的自由空间2714中记录第二节目2902(实际上第一节目)。即,图30中描述的方法包括把节目记录到保存、显示、随后释放同一节目的前一部分的空间中的操作。在边记录边观看的节目的记录期间,检查存储空间要求的过程中,当PVR发现不足量时,可发生这种操作。如果适于释放的唯一已显示空间是同一节目的先前显示部分,那么PVR释放该已显示空间,并继续记录。
再次参见图28,注意如果PVR要释放2706已显示空间,那么PVR需要能够识别要释放的已显示空间。于是在图28的例子中,显示节目2704包括识别该节目的已显示空间2718。图31更详细地说明识别2718节目的已显示空间的方法。更具体地说,图31的方法包括对于由节目ID 252识别的节目,把该节目的显示时段的显示开始时间2808和显示停止时间2810保存2802在观看记录280中。图31的方法包括从停止时间2810减去2804开始时间2808,从而确定该节目的显示时段的持续时间2812。图31的方法还包括把显示时段的持续时间2812乘以2806该节目的帧速率2814,从而利用视频帧的数目识别该节目的已显示空间的具体量。
例如,考虑以30帧/秒的帧速率显示的30分钟节目已显示10分钟的情况。在所示的这个例子中,已显示帧等于18000(10分钟×60秒/分钟×30帧/秒)。即,该节目的已显示空间可表示为包含记录该节目的视频文件的头18000帧。如果节目的存储空间要求为60兆字节,那么该节目的已显示空间可表示为包含1/3的节目存储空间要求或者20兆字节的已显示空间。
为了利用视频帧计算已显示空间,PVR需要帧速率。根据本发明一些实施例的PVR直接把节目的帧速率2766保存在节目记录240上。其它实施例把帧速率看作压缩等级279中的一个因素,并把帧速率保存在借助压缩等级索引的表格中,例如图10a和10b中描述的表格中。实现图28的方法的PVR一般包括根据节目的压缩等级,识别帧速率,即根据如图10a和10b所示的压缩等级表推断或识别帧速率。
在图28的方法中,释放已显示空间包括丢弃2720已显示帧。如图28中所示,丢弃已显示帧的一种方法是向用于视频编辑的应用编程接口(“API”),视频编辑API中的软件例程发出视频编辑调用2722。存在许多视频编辑API。多数(即使不是所有)编译码器具有用于视频编辑的相关API。用于视频编辑的API的例子包括:‘Video For Linux’,Microsoft的‘Video For WindowsTM’和SunMicrosystems的‘Java Media FrameworkTM’。例如,Video ForWindows是通用视频编辑软件包,例如Adobe PremierTM和视频会议软件,例如Microsoft的NetMeetingTM使用的不依赖硬件的API。
图32描述了丢弃2720已显示帧的一种备选例证方法,一种由直接处理视频文件或者通过对视频编辑AIP的调用,处理视频文件的应用程序编程实现的方法。图32的方法处理记录在视频文件3102中的节目2710,视频文件3102包括视频帧3104,视频帧3104包括已显示帧3106。在图32的方法中,丢弃2720已显示帧包括从视频文件删除3110已显示帧。更具体地说,图32的方法包括打开3108视频文件3102;删除3110已显示帧3106;和关闭3112视频文件3106。于是,图32的方法依赖于PVR的操作系统,近似按照删除的已显示帧3106原来占据的存储空间的比例,减小视频文件3102的大小。
图33描述了稍积极的丢弃2720已显示帧的备选例证方法,同样由直接处理视频文件或者通过调用视频编辑API,处理视频文件的应用程序编程实现的方法。图33的方法处理初始视频文件3102中的节目,初始视频文件3102包含视频帧3104和已显示帧3106。在图33的方法中,丢弃2720已显示帧包括使节目从初始视频文件3102流向新的视频文件3312,排除已显示帧3106,并删除3310初始视频文件3102。更具体地说,图33的方法包括打开3202初始的视频文件3202;打开3304新的视频文件3312;使视频帧3104从初始视频文件3102流向新的视频文件3312,排除已显示帧3106;关闭3308新的视频文件3312;和删除3310初始视频文件3102。我们认为该方法稍微更积极,因为新的视频文件3312只不断填充大小减小的视频片断,初始视频文件3102被完全删除。
就文件的所有打开、关闭和删除来说,在根据本发明许多实施例的PVR中,PVR中的应用软件需要节目的文件名,以便与PVR的操作系统打交道。节目的文件名保存在为此目的设置的字段中,例如图27上节目记录240中的字段242。在图33的方法中,对于PVR来说,有益的是在打开新的视频文件3312并删除3310初始视频文件3102之后,用新的视频文件3312的文件名更新文件名字段242(目前包含初始视频文件3102的文件名)。
当删除已显示帧并从流向新视频文件的流中排除已显示帧的过程应用于丢弃已显示帧时,更详细地研究这些过程是有益的。更具体地说,有益的是识别如何确定何时停止。即,有益的是具有在删除已显示帧的过程中,确定哪帧是要删除的最后一帧的具体途径,假定PVR把视频文件中的第一帧当作要删除的第一帧。类似地,对于从流向新文件的流中排除已显示帧来说,有益的是能够准确识别哪帧是要从流向新文件的流中排除的最后一帧,假定PVR从初始视频文件中的第一帧开始排除。关于哪帧是最后一帧的回答取决于正在处理的视频的视频编码,从其删除帧的文件,或者帧从其流向新文件的文件。
例如,MJPEG每次只压缩一帧,所谓的帧空或空间压缩。每个MJPEG视频帧本身是一个完整的图像。把特定的MJPEG帧识别为要删除或排除的最后一帧是直截了当的:计数利用例如图31的识别已显示空间718的方法识别的帧的数目。即,把显示时段的持续时间2812乘以2806节目的帧速率2814。乘积为帧的数目。就使用根据图32的方法来说,从视频文件的前端删除该数目的帧。就使用根据图33的方法来说,从初始视频文件到新视频文件的流的前端排除该数目的帧。
另一方面,MPEG是既在每帧中使用空间压缩,又在帧之间使用时间压缩的帧间压缩格式。即,在MPEG中,在进行编码操作的时候,每次考虑数帧。图34图解说明了MPEG-1视频的结构的简化说明性例子。MPEG-1视频包括序列报头3402,之后是‘图象组’或‘GOP’报头3404和GOP 3406的一个或多个交替序列,接下来是序列结束标志3408。GOP是一系列的图象(帧3416),每个图象由一个图象报头和实际的图象数据构成。
帧或图象可以是类型I(3410)、P(3412)或B(3414)。I-帧是‘内编码’帧,内编码意味着只参考本身被编码。在不参考序列中的其它任何帧的情况下,I-帧被空间编码。即,I-帧被空间编码而不是被时间编码。可在不参考其它帧的情况下,译解或重构I-帧以便显示。每个I-帧是准备好在解码后独立显示的完整图象。
从I-帧开始,MPEG编码器可正向预测未来的帧。正向预测的帧被称为‘P-帧’,‘P’代表‘预测’。根据I-帧以及根据其它P-帧预测P-帧。P-帧既被空间编码又被时间编码。在无来自另一帧的数据的情况下,不可能重构或译解P-帧。只要求最近的在先I-帧或P-帧正向预测P-帧。
B-帧既被正向预测又被反向预测,‘B’代表‘双向’。根据紧接前面的和下一个I-帧或P-帧正向和反向预测B-帧,于是,重构每个编码B-帧需要两个其它帧。
作为I、P和B-帧的应用例子,考虑下述序列的6帧GOP:IBPBPB,IBPBPB,IBPBPB…。I-帧只被空间编码,根据在先的I和P-帧正向预测P-帧。基于依据在先I或P-帧的正向预测,以及依据之后的I或P-帧的反向预测,对B-帧编码。例证的序列由编码器处理,从而根据第一个I帧和第一个P帧预测第一个B帧;根据第二及第三个P帧预测第二个B帧;根据第三个P帧和下一图象组的第一个I帧预测第三个B帧。
注意每个GOP中的第二个B-帧,除了取决于依据下一I-帧的反向预测之外,还取决于依据在前P-帧的正向预测,而所述在前P-帧又取决于依据在前P-帧和在前I-帧的正向预测。由于I-帧之间的P-帧和B-帧都直接或间接取决于依据在先I-帧的正向预测,因此,在序列中介于I-帧之间的某点剪切MPEG序列造成剪切点和下一I-帧之间的帧无用。于是,在I-帧有效进行在根据本发明的实施例的PVR中,从MPEG视频文件删除已显示帧,和从MPEG流排除已显示帧的剪切。
参见图32和33的方法,于是,当处理MPEG视频时,在删除3110已显示帧3106的过程中,和在排除已显示帧3106的同时,流化3306的过程中,根据这些方法的PVR有效包括检查帧类型。在这些实施例中,对于MPEG视频检查帧类型,以便确定继续部分中的第一帧是I-帧,即,删除或排除的最后一帧之后的下一帧是I-帧,从而在重构修改后的或者新的显示文件的过程中,一开始不向MPEG解码器提供在无在先I-帧的情况下,不能解码的P-帧或B-帧。
换句话说,如果要删除或排除的最后一帧是P-帧或B-帧,那么根据这些实施例处理MPEG视频的PVR可删除直到下一I帧的所有帧。如果剪切会发生在GOP的中间,需要编辑GOP报头,那么PVR可删除或排除直到下一GOP的起点的所有帧,包括当前GOP的GOP报头。典型的MPEG块帧计数是16帧,包括一个I-帧。于是平均来说,该方法预期排除8个未显示的帧,约占第二个视频显示的四分之一,观众不太可能注意到此。
稍保守并且稍复杂的MPEG备选方法是缓存GOP,即当处理GOP以便删除或排除时,逐一缓存每个GOP中的所有帧。从而当已显示帧计数指示中间-GOP丢弃时,PVR仍然能够把整个当前GOP包括或流输出到新的视频文件中,包括该GOP中的已显示帧以及该块中的未显示帧,从而删除比所有已显示帧稍少的已显示帧,但是适当地保存了还未显示的所有帧。
本公开文献中,具体参考例证的编码MJPEG和MPEG,我们讨论了执行已显示帧的删除和排除的几种方式。本领域的技术人员易于想到删除或排除这些编码和其它编码中的已显示帧的许多方式,所有这些方式都在本发明的范围之内。
                    节目的进一步压缩
本公开文献中,上面我们讨论了获得可用于记录节目的自由空间的不同方式,包括向其它用户或用户组出借自由空间,收回出借的空间,以及已显示空间的恢复。我们还讨论了压缩等级影响存储空间要求和存储空间应用的事实。鉴于该讨论,现在我们注意到不仅能够根据压缩等级计算和重置存储空间要求,而且还能如此影响压缩等级应是有益的。具有改变已记录或目前正被记录的节目的压缩等级的能力会增加一种产生适用于记录的自由空间的有用备选途径。
现在我们讨论节目的其它压缩。我们谈及“进一步”压缩,因为根据前面关于压缩的讨论,读者会认识到在传送或捕获及存储过程中,所有节目在一定程度上被压缩。现有读者还会明白本讨论中,术语“节目”包括识别节目并保存节目的属性的节目记录,以及物理记录的与特定节目相关的视频和音频内容。虽然物理记录的内容可保存在各种媒质中,包括RAM中的流和临时数据结构,不过为了便于说明,本公开文献中,我们一般指的是把节目记录在文件中,以便保存在磁介质或光学介质上的文件系统中。
图35描述了一种自动个人视频记录方法,包括记录3502节目(3504、3505),每个节目具有初始的压缩等级3506。压缩等级值,包括本实施例的初始压缩等级3506一般可保存在压缩字段中,例如图3和27中例证数据结构中的节目记录240中的字段279。图35的方法还包括把记录的节目3505压缩3508到新的压缩等级3510,新的压缩等级高于记录节目的初始压缩等级,从而产生适用于记录的自由空间3512。图35的方法还包括至少把部分新节目3514记录3516在通过进一步压缩记录节目3505获得的自由空间3512中。
可按照几种方式出现获得适用于记录的额外自由空间的需要。例如,当用户的要记录节目的存储空间要求大于用户的自由空间时,对于预定记录和对于优选记录来说,需要额外的自由空间。当存储空间要求的分摊量超过成员的自由空间时,在组成员间分摊和重新分摊节目的存储空间要求需要额外的自由空间。当出借的分摊量超过成员的自由空间时,在组成员间分摊和重新分摊组借贷量需要额外的自由空间。
图36描述一种个人视频记录方法,其中比较403节目的存储空间要求和借用人的自由空间。当借用人的自由空间小于节目的存储要求时,即当存在不足量404时,通过选择406借出人继续该方法。按照上面结合图4说明的相似方法,当成功选择借出人时,根据本实施例的PVR借用至少等于不足量的借贷量408,并继续进行记录410。如果没有找到借出人,那么记录停止412。但是,在图36的方法中,存在另外一种选择。图36的方法包括借用小于不足量的借贷量2950,进一步压缩3508记录的节目,随后继续进行记录410。进一步压缩3508记录的节目包括释放足量的已显示空间,从而这样释放的已显示空间和借用的借贷量2950足以满足该不足量。就图36的方法的应用来说,只有在借用2950和进一步压缩3508记录节目不能提供满足不足量的足够自由空间的情况下,才需要停止记录411。
除了进一步压缩记录节目的方法之外,PVR还可实现图29的方法,包括释放已显示空间2706。在这种PVR中,只有在借用2950、释放已显示空间2706和进一步压缩记录节目3508的组合不能提供满足不足量的足够自由空间的情况下,才需要停止记录411。
图35中图解说明的另一种实施例包括选择要进一步压缩的记录节目。选择该记录节目可包括选择初始压缩等级低于PVR中支持的最高压缩等级的节目。记录节目的‘初始’压缩等级是目前保存在节目的节目记录240的压缩字段279中的压缩等级。关于初始压缩等级和支持的最高压缩等级之间的关系,考虑例如图10b中的压缩等级表602。假定初始压缩等级为‘320∶1’,指示其影响因素(包括MPEG-2编码,30帧/秒的帧速率、352×240的分辨率等)列举在表602的记录606中的压缩等级。‘320∶1’的压缩等级和原始视频相关。对在表602的记录604中识别的NTSC源流来说,相同的压缩等级为‘4’。
本例的环境中,支持的最高压缩等级为‘20480∶1’。‘支持的最高压缩等级’意味着PVR具有能够为其处理作为输入的节目的当前编码,并产生进一步压缩的视频编码作为输出的编译码器的最高等级。在本例的环境中,在表602的记录614中指示这样的‘支持的最高压缩等级’。只要节目的初始压强等级小于支持的最高压缩等级,那么该节目就是进一步压缩的候选对象。本例中,在几个候选节目中,选择进一步压缩的节目包括选择初始压缩等级小于根据本发明的实施例的特定PVR中支持的最高压缩等级的候选对象中的第一节目。
图35的方法还包括压缩记录的节目。记录的节目包括初始的视频文件,‘初始’的意义是它是当前的进一步压缩过程的开始条件。如图35中所示,进一步压缩初始视频文件的一种途径是向编译码器的应用编程接口(“API”)中的软件例程发出呼叫2722。用于编译码器的API有许多种。多数(即使不是全部)编译码器具有相关的API。如前所述,编译码器的API的例子包括‘Video For Linux’,Microsoft的‘Video For WindowsTM’和Sun Microsystems的‘Java Media FrameworkTM’。
图37描述了进一步压缩3508包含初始视频文件3702的记录文件的方法。借助自己处理视频文件或者通过对编译码器的API的调用,处理视频文件的应用程序编程,实现图37的方法。虽然通过应用程序编程,能够直接处理视频文件,不过由于多数视频编码格式的结构复杂,多数实施例很可能会实现编译码器和编译码器API。在下面的说明中,假定使用编译码器和编译码器API。
在图37的方法中,记录的节目包括具有初始编码参数3704的初始视频文件3702,初始编码参数3704包括初始编码类型3706。编码类型的例子包括MPEG-1、MPEG-2、MPEG-4、MJPEG、DVD等等。进一步压缩3508记录的节目包括打开3718初始视频文件3702,打开3720新的视频文件3710,通过编译码器176,把初始视频文件3702转换3708成具有新编码参数3712的新视频文件3710。
编码参数实现影响压缩等级的因素,例如如图10a和10b中所示,包括编码类型424、颜色空间大小426,帧速率428,分辨率430和音频质量432。可选的是,新的编码参数可包括新的编码类型3714,不过为了获得更高的压缩等级,它可以改变也可不必改变编码类型。例如,在图10b中的表602中描述的压缩等级序列中,从MPEG-2编码类型的初始压缩等级320∶1开始,在需要改变为MPEG-1(记录612)或MJPGE(记录614),以便获得更高的压缩之前,可使用的具有MPEG-2编码类型的较高压缩等级有两种(由记录608和610表示)。
另外,当改变编码类型时,可以改变也可不必改变编译码器。例如,至少一些处理MPEG-2的编译码器还处理MPEG-1。图2a中的系统方框图只描述了一个编译码器176,不过该图解说明是为了便于说明,而不是对本发明的限制。根据本发明实施例的PVR通常会实现一个以上的编译码器。在需要改变编码类型,以获得更高的支持压缩等级的情况下,使用一系列的编译码器从一种编码类型或者压缩等级转换到另一种编码类型或压缩等级。
图37的方法包括关闭3722新的视频文件3710,删除3716初始的视频文件3702。PVR可向新的视频文件3710赋予不同于初始视频文件3702的文件名,并且就这方面来说,PVR可被编程为用新视频文件3710的新文件名更新节目记录240中的文件名字段242。另外,PVR还被编程为用由编码参数的改变而产生的新的压缩等级更新节目记录240上的压缩字段279。
就改变压缩等级来说,迄今为止,我们的讨论集中于现有记录节目的改变。但是,如果在检查估计的存储空间要求的过程中,发现需要额外的自由空间,那么具有在记录过程中,改变压缩等级的方式也是有益的。如果此时不存在快速释放空间以便继续进行记录的其它有用或理想方式,那么可以说,能够‘在传输过程中’提高压缩应是有益的。
图38描述了在PVR上管理存储空间要求的方法,包括记录3800具有压缩等级279的节目3802,并在记录3800的同时,提高3806节目的压缩等级279。节目包括持续时间247,提高3806节目的压缩等级包括踊跃802节目的记录时段,并跟踪在记录时段内使用的实际存储空间。当跟踪的记录时段至少等于乘以持续时间3810的空间检查阈值时,图38的方法着手比较3804使用的存储空间和计划将在跟踪的记录时段内使用的存储空间的数量。如果使用的存储空间大于计划要使用的存储空间,那么该方法提高3806节目的压缩等级。
图39更详细地描述了在记录过程中,提高3806节目的压缩等级的例证方法。图39的方法包括记录3800节目,包括通过编译码器(未示出),把视频流3922编码3902到第一视频文件3906中。根据影响压缩等级的因素的值,即,根据编译码器操作参数3904,进行编码3902。在图39的方法中,提高3806节目的压缩等级包括关闭3908第一视频文件3906,打开3910第二视频文件3923,改变3912编译码器操作参数3904的值,从而相对于第一视频文件,改变第二视频文件的压缩等级。
更具体地说,编译码器操作参数被改变,以便提高压缩等级。再次参考图10b,考虑利用实现表602中的记录606识别的压缩等级的编译码器操作参数,对第一视频文件编码的例子。即,编译码器是对MPEG-2视频文件编码的MPEG编译码器,所述MPEG-2视频文件的帧速率为30帧/秒,分辨率为352×240等,最终得到相对于原始NTSC视频,320∶1的压缩等级。改变3912编译码器操作参数3904的值,把压缩等级从320提高到1280从而包括用记录608的新操作参数调用编译码器API,即,本例中,把分辨率变为180×120。
图39的方法包括用第二视频文件的文件名调用编译码器API,从而把视频流重定向3914到第二视频文件3923。该方法还包括在节目结束时,关闭3916第二视频文件3923,把第一视频文件3906进一步压缩到第二视频文件的压缩等级。照其初始压缩等级保存第一视频文件3906。如果要有效压缩整个节目,以致可通过单一编译码器对其解码以便显示,那么有益的是把整个节目,包括保存在第一视频文件中的节目的第一部分转换成第二视频文件的新的更高压缩水平。
另一方面,在本发明的范围内,可在一个以上的视频文件间分割单一节目,每个视频文件具有不同的编码参数。实现这种备选方案的PVR从而需要扩展代表节目的数据结构(参见图3),以便包括构成节目的每个节目的与文件相关的信息,例如文件名和压缩等级。这种PVR需要被编程为改变文件、改变参数,甚至可能改变在显示过程中,译解包含一个以上视频文件的节目的编译码器。
在一个以上的视频文件间分割节目的实施例中,通过降低或者甚至消除把第一视频文件进一步压缩为第二视频文件的压缩等级,并连接这两个文件的需要,简化记录。另一方面,如果记录时,把节目编码成单一视频文件,那么译解节目以便显示将更容易,因为在重放过程中,不需要跟踪和改变视频文件,改变编译码器参数,或者改变编译码器。另外,记录时进一步压缩第一视频文件提高了通过改变为更高的压缩等级获得的自由空间的数量。压缩等级方面的一些提高,例如音频质量方面的改变,不会影响视频重放质量,但是它们会影响重放的其它方面。不过,如果稍后重放节目,在具有一个以上压缩等级的一个以上文件间分割节目会影响显示质量,为了实现压缩等级的特定提高,当重放从第一视频文件变到第二视频文件时,尤其是当改变分辨率或帧速率时,需要改变显示质量。
图39的例证方法包括进一步压缩3918第一视频文件3906,并使第二视频文件3923和第一视频文件3906连接。连接视频文件一般包括调用编译码器API,以便实现序列报头、GOP报头等的有序变化。虽然本说明书中我们涉及的是串联这两个视频文件,不过本领域的读者会认识到这种串联包括通过编译码器把来自第一视频文件和第二视频文件的两个源流组合成指向第三视频文件的目标流。
现在在本公开文献中,我们已讨论了进一步压缩PVR中的节目或提高PVR中节目的压缩等级的数种方式。本领域的技术人员易于想到进一步压缩PVR中的节目或提高PVR中节目的压缩等级的许多方式,所有这些方式都在本发明的范围内。
                      消息接发
用户可操纵上面结合图1a和1b说明的PVR控制器,控制PVR和跟踪PVR的操作。但是,PVR操作如此复杂,以致用户最好具有跟踪并控制PVR操作的改进方法。特别有益的是如果PVR具有利用发送和接收消息的装置,相对于用户收发关于PVR操作的消息的途径。
图41图解说明了控制PVR的操作的方法的流程图,包括识别4116PVR操作中的消息点,并传送4118消息。消息一般传递PVR操作的描述,或者向用户请求控制指令。消息指向的用户通常是被识别为具有关于节目的责任的用户,即,就我们的例证数据结构来说,在图40的例证数据结构中图解说明的那种节目记录240中的ownerID字段244中识别的用户。在消息接发的讨论中,对例证数据结构的参考通常是对图40的例证数据结构的参考。
消息具有许多用途,多种类型,并且具有与其类型和用途相应的数据结构。消息点是PVR操作中,当发送,至少考虑传送用于特定用途的特定类型消息有用时的某一时刻。
一些消息被传送为‘张贴(post)’,异步的非阻塞消息。PVR操作不会暂停,以等待对这种消息的响应。作为邮件传送的消息一般包括例程操作的通知,例如通知已按照记录预定节目的消息。一些消息被传送为‘发送(send)’,同步的阻塞(blocking)消息,对于该消息,PVR操作被暂停至少一段时间,在PVR继续进行先前确定的默认操作之前,向用户提供以控制指令表示回答的机会。可作为同步的阻塞消息发送的消息的例子是请求是否压缩还未被其所有者观看的节目,以便获得可用于记录另一节目的自由空间的指令的消息。
本公开文献中,我们精确使用术语‘发送’、‘张贴’和‘传送’。‘发送’通常指的是向用户传送阻塞的同步消息,该消息提示响应。‘张贴’通常指的是向用户传送无阻塞的异步消息,该消息不提示响应。‘传送’通常指的是运送或传递消息消息的过程。按照这种方式为本节讨论定义这些术语允许诸如  向用户传送关于消息点的发送消息’,‘与特定消息点相关的消息的次数的计数已作为张贴传送给用户’之类的术语学。
可用类似C、Cobol或Fortran之类的语言过程实现消息。或者可利用诸如C++或Java之类面向对象的语言,把消息实现成对象。对于过程语言,PVR应用软件本身一般需要知道消息属性,消息是阻塞的或者非阻塞的,超时时段,消息传输模式等等。在面向对象的消息中,消息类别或消息对象本身知道消息属性,把应用层和消息细节隔离开。
按照事件驱动方式实现许多PVR应用程序(图2a上的152),但是为了便于说明,图41使用例证的控制环图解说明PVR的几种典型操作。图41的方法包括注册4106用户4104。图41的方法包括响应用户指令4104,排定4108节目240。该方法还包括根据下载的广播时间表4110和用户首选项320,优先排定4112节目。该方法包括把节目240记录4114在视频文件4120中。图解说明的方法包括识别消息点4116和传送消息4118。图41的方法包括按照用户4126的指令,在显示装置4128上显示4124来自视频文件4120的节目240。
可按照各种方式传送4118消息。图41特别提到网络消息4410,可通过数据通信的网络装置传送许多消息,例如如同下面更详细所述,包括寻呼消息、利用即时消息接发协议的即时消息接发,电子邮件和使用‘SMS’(‘小消息服务’协议)的消息。许多消息接发协议支持双向消息接发,从而根据本发明的实施例的PVR既可向用户传送信息,又可接收来自用户的控制响应。
在记录步骤(4112、4114)之后和在显示步骤4124之前,在图41的方法中插入识别的消息点4116。但是,可在PVR操作中的任意地方插入消息点。下面是在PVR操作中,在不同的例证消息点插入的数种类型和用途的消息的几个例子:
例证消息:“Recorded‘TitleOfShow’on schedule”。该消息具有PVR操作中,紧跟PVR记录在消息中识别的节目之后的消息点。PVR应用程序从节目记录240中的标题字段241a获得节目的标题,并把标题作为子串插入主消息测试串中。该消息被实现成‘张贴’的异步非阻塞消息,不向消息指向的用户请求控制响应。
例证消息:“Preference recorded comedy genre show‘Friends’”。该消息具有PVR操作中,紧跟PVR记录在消息中识别的节目之后的消息点。PVR应用程序从节目记录240中的标题字段241a获得节目的标题,并把该标题作为子串插入主消息测试串中。PVR应用软件从节目记录240中的类型字段243获得节目的类型。该消息被实现成‘张贴’的异步非阻塞消息,不向消息指向的用户请求控制响应。
例证消息:“Borrower‘SoAndSo’viewed a show recorded inspace borrowed from you。X megabytes of your loaned space hasbeen repossessed。”该消息具有PVR操作中,紧跟PVR向借用人显示节目之后的消息点。PVR应用程序从出借记录(图3上的230)获得借用人的身份和借贷量X。该消息被传送给在出借记录中识别的借出人。该消息可包括节目的标题,节目的标题也在出借记录上,至少就我们的例证数据结构来说是这样的,但是PVR假定借出人不关心借用人正在观看什么,只要借出人的出借空间被及时返回。该消息被实现成‘张贴’的异步非阻塞消息,不向消息指向的用户请求控制响应。
例证消息:“Cannot detect your cable box。”该消息指向在用户简表202中识别的具有管理权的用户,或者指向在PVR简表300中识别的负责PVR操作的用户。该消息具有在PVR操作中,紧跟PVR引导之后的消息点。该消息被实现成‘张贴’的异步非阻塞消息,不向消息指向的用户请求控制响应。这并不意味着用户不采取行动。用户多半会重新启动电缆盒或者给电缆公司打电话。但是,在该消息期间,PVR不会同步阻塞操作,以等待用户的行动。
例证消息:“Non-conflictive schedule change:‘Buffy,TheVampire Slayer’is rescheduled to 8:00 pm。The new schedulepresents no conflicts with other shows。Recording will proceed at thenew time。”该消息具有在PVR操作中,紧跟PVR从内容源下载广播时间表,并比较该广播时间表和节目记录240中的记录时间表272之后的消息点。该消息指向在节目记录240中的ownerID字段244中识别的用户。标题241a也来自节目记录。该消息被实现成‘张贴’的异步非阻塞消息,不向消息指向的用户请求控制响应。
例证消息:“Conflicting schedule change:‘Buffy,TheVampire SIayer’is rescheduled to 8:00 pm。The new scheduleconflicts with your scheduled recording of“Dukes of Hazzard。”You have thirty seconds to respond。Receiving no response,thedefault Procedure is to record the‘Dukes of Hazzard’。Should therecording schedule default to‘Dukes of Hazzard?’Your response(Y/N):___。”该消息具有在PVR操作中,紧跟PVR从内容源下载广播时间表,并比较该广播时间表和节目记录240中的记录时间表272之后的消息点。该消息包括默认操作,本例中,记录最初关于所述时间段计划的节目。该消息都指向任一节目的节目记录240中的ownerID字段244中识别的用户,因为同一用户‘拥有’这两个节目。来自这两个节目的相应节目记录240中的标题字段241a的两个标题串联到该消息中。存在两个时间表,一个节目一个时间表,但是这两个时间表要么相同要么重叠,从而该特定的例证消息只包括这两个时间表中的一个,但是PVR可从任一节目的节目记录240中的时间表字段272读取时间表。在30秒的超时时段内,该消息被实现成‘发送’的同步阻塞消息。
例证消息:“Conflicting schedule change:‘Buffy,TheVampire Slayer’is rescheduled to 8:00 pm。The new scheduleconflicts with Mary Jones′scheduled recording of“Dukes ofHazzard。”You have thirty seconds to respond。ReceiVing noresponse,the default Procedure is to record the‘Buffy,TheVampire Slayer’。Should the recording schedule default to‘Buffy,The Vampire Slayer?’Your response(Y/N):_。”该消息具有在PVR操作中,紧跟PVR从内容源下载广播时间表,并比较该广播时间表和节目记录240中的记录时间表272之后的消息点。本例中,有两个所有者,一个是‘Buffy’的所有者,另一个是‘Dukes’的所有者。消息指向特权等级更高的所有者。该消息包括默认操作,本例中,记录属于特权等级更高的用户的节目。PVR从所有者各自的用户简表202中的字段194读取所有者的特权等级。来自这两个节目的相应节目记录240中的标题字段241a的两个标题串联到该消息中。存在两个时间表,一个节目一个时间表,但是这两个时间表要么相同要么重叠,从而该特定的例证消息只包括这两个时间表中的一个,但是PVR可从任一节目的节目记录240中的时间表字段272读取时间表。在30秒的超时时段内,该消息被实现成‘发送’的同步阻塞消息。该消息根据特权等级,解决用户间的冲突。本领域的技术人员会想到解决这种冲突的许多方式,所有这些方式都在本发明的范围之内。
例证消息:“ O wner’,Who presently is not authorized toborrow you storage space,asks permission to borrow 5 megabytesfrom you。Timeout is thirty seconds。Default is‘No’。Yourcurrent free space is 125 megabytes,enough for about 10 hours ofrecording。Lend 5 megabytes to‘ Owner?’Your response(Y/N):_。”该消息具有在PVR操作中,当所有者的自由空间和节目的存储空间要求的比较证实存在不足量时,紧跟开始记录步骤之后的操作点。提议的借贷量,5兆字节是不足量。该消息指向选择的预期借出人。预期的借用人(本例中为‘ Owner’)选择借出人,或者对于另一例子,PVR根据哪个用户当时具有最多的自由空间选择借出人。选择预期借出人的方式有许多种,所有这些方式都在本发明的范围之内。在30秒的超时时段内,该消息被实现成‘发送’的同步阻塞消息,默认操作是拒绝出借。
例证消息:“‘J unior’has authorized viewing hours beginningat 6:30 pm。Junior is requesting a logon to watch television at 6:15pm。Timeout on this message is thirty seconds。Default is‘No’。Allow login?Your response(Y/N):_。”该消息具有在PVR操作中,在如图41中的附图标记4106描述的登录过程中的消息点。该消息指向在用户简表中识别的具有管理权的用户。PVR从诸如图40上的用户简表202中的AuthViewHours 199之类用户简表字段读取准许的观看时间。在30秒的超时时段内,该消息被实现成发送’的同步阻塞消息,默认操作是拒绝登录。
例证消息:“‘Junior’has a viewing restriction that excludesthe‘Adult’genre。Junior’just attempted to schedule a showhaving the‘Adult’genre。The schedule request was rejected。”该消息具有在PVR操作中,紧跟如图41中的附图标记4018描述的排定步骤之后的消息点。该消息指向具有管理权的用户。该消息被实现成‘张贴’的异步非阻塞消息,不向消息指向的用户请求控制响应。这并不意味着用户不采取行动。例如,如果消息指向的管理者是Junior的父亲或母亲,那么多半会产生许多动作。
例证消息:
“You have‘Buffy,The Vampire Slayer’s cheduled to recordat 7:00pm。For this recording there is a deficit in storage space of 10megabytes。Your action choices are:
Do not record
Repossess loaned space,10 megabytes available
Borrow space,25 megabytes available
Delete you other shows,30 megabyts available
Recover displayed space,8 megabyts available
Increase compression of other shows
The default is to not record.If you wish an action other than notrecording you should logon to your PVR and order the desired actionbefore 7:00 pm。”
该消息具有在PVR操作中,稍晚于用户排定节目或者PVR关于优先记录排定节目之后的消息点。读者会从本公开文献中上面的详细说明回想起通常刚好在实际记录节目之前发现存在不足量,这也会是这种消息的一个良好消息点。但是,如果消息点刚好在记录之前,那么用户不会有数小时或者甚至几分钟的时间来采取行动。该消息被描述成‘张贴’的异步非阻塞消息,不向消息指向的用户请求控制响应。
但是,如果该消息具有刚好在记录之前的消息点,那么该消息可能更可取的是实现成例如30秒超时时段内的‘发送’的同步阻塞消息,默认操作是不记录,这种情况下,消息文本表现为如下所示:
“You have‘Buffy,The Vampire Slayer’scheduled to recordat 7:00 pm。For this recording there is a deficit in storage space of 10megabytes。Your action choices are:
1.Do not record
2.Repossess loaned space,10 megabytes available
3.Borrow space,25 megabytes available
4.Delete you other shows,30 megabyts available
5.Recover displayed space,8 megabyts available
6.Increase compression of other shows
The default is choice number1:Do not record.This messagetimes out in thirty seconds。If you wish an action other than thedefault,please select it now。Your selection(1-6):_。”
实现消息接发的方式有许多种。本公开文献稍微集中于双向消息接发,因为这对实现为具有超时和默认值的‘发送’的同步阻塞消息非常有用。就双向消息接发的实现来说,PVR应用软件被编程为通过从响应消息的文本抽取有意义的权标,‘解析’响应消息,所述权标包括当PVR收到响应消息时,PVR要采取的的命令或操作的标识符。
消息可被传送给由电话号码识别的无线寻呼机。通过,例如简单网络寻呼协议或者‘SNPP’(其版本3是在RFC1861中定义的增强双向协议),PVR应用程序可传送消息。RFC1861是在InternetEngineering Task Force中,由Network Working Group发布的因特网协议组规范文件。
通过,例如WCTP(无线通信传送协议),PVR应用程序也可传送无线寻呼消息。WCTP也是一种双向消息接发协议。抱着把HTTP用作其传送机制的特定目的,设计WCTP。WCTP是由PCIA(个人通信行业协会)的成员发布的一种开放式、非专有行业标准。
借助许多专有即时消息接发协议,可通过HTTP传送消息,所有这些专有即时消息接发协议具有只适用于该目的,即供诸如PVR之类消息接发应用之用的应用编程接口(“API”)。这种具有API的即时消息接发协议的例子包括可从American On-Line(“AOL”)、Microsoft Network(“MSN”)、Yahoo、Imici,Inc.、和ICQ,Inc.获得的那些即时消息接发协议。即时消息接发协议实现用户存在检测,并在PVR和用户个人计算机上的web浏览器,以及移动或蜂窝电话机;具有web能力的无线个人数字助手(“PDA”)和膝上型计算机;和具有web能力的其它无线便携式或手持式装置上的微型浏览器之间实现双向即时消息接发。
通过电子邮件,PVR应用程序可把消息传送给电子邮件客户机程序,通过SMTP、POP、IMAP或者其它电子邮件协议,PVR应用程序可把消息传送给任意一种客户机、个人计算机、膝上型计算机、手持式装置、蜂窝电话机等中的电子邮件客户机程序。电子邮件支持双向通信。在使用电子邮件进行消息接发的典型实施例中,PVR应用程序能够用作电子邮件代理’,向其分配关于电子邮件服务的普通电子邮件账户的软件程序。这样,如同其它任何电子邮件用户一样,PVR发送和接收电子邮件。当PVR通过电子邮件向用户发送消息时,用户可按下用户的电子邮件客户机程序上的‘回答’按钮,应答PVR的电子邮件。
PVR应用程序可借助任何电信或电话服务支持的小消息服务(“SMS”),传送消息。SMS提供相对于无线装置传送短消息的机制。SMS支持从PVR把短文本消息传送给蜂窝电话机,类似于字母-数字寻呼。SMS利用小消息服务中心或‘SMSC’,小消息服务中心充当短消息的保存-转发系统。和现有的诸如字母数字寻呼之类其它文本消息传输相反,SMS是一种可靠的系统,提供确保向目的地传送文本消息的机制。另外,SMS支持允许与不同的消息源和目的地交互作用的数种输入机制。例如,PVR可起所谓的“外部短消息实体”或‘ESME’的作用,并以HTTP表格或电子邮件消息的形式传送SMS消息。PVR可起移动发信方或者‘MO’的作用,即,起具有SMS能力的客户机,或者实际上蜂窝电话机的作用。SMS的一个区别特征是现用的移动手持机,或者实际上PVR能够在任意时候接收或提交短消息,不管语音或数据呼叫是否正在进行中。后一特征在把消息实现为具有超时和默认值的‘发送’的同步阻塞消息的PVR中非常有用。
上面我们说明了四种消息接发手段:寻呼、即时消息接发、电子邮件和SMS。本领域的技术人员会想到在PVR和用户之间实现单向或双向消息接发的其它许多方式,所有这些方式都在本发明的范围之内。
再次参见图41,可如下述例证的消息接发伪代码片断举例说明那样,实现识别消息点4116和传送消息4118:
sendMessage(messageString,userID)

    {

    boolean success=false;

    //User probably sysadmin from PVR profile

    UserProfile User=getUserprofile(userID)

    switch(User.MsgMode);

    {
				
				<dp n="d77"/>
    case PAGER:

         success=sendpaper(User.pagerNum,messageText);

           break;

    case EMAIL:

    success=sendmail(User.EmailAddress,messageText);

           break;

    case SMS;

          success=sendSMS(User,SMS-phone.messageText);

           break;

    case INSTANT-MESSAGING;

           success=sendIM(User.IM-Address,messageText);

            break;

    }//end switch()

    return success;//returns true or false for success or failure
}//end sendMessage()
下面二行伪代码识别PVR操作中的消息点,从其发送消息的消息点。例如借助类似于呼叫伪代码的下述代码片断,来自包含PVR应用程序的程序代码内任意地方的呼叫可调用上面陈述的例证消息接发伪代码sendMessage()。
String messageString=“Recorded”+Show.title+“on schedule。”
sendMessage(messageString,Show.userID)
就使用借助上面的代码片断举例说明的这种源代码来说,类似于呼叫伪代码的呼叫行的插入识别消息点。类似地,当PVR的处理器处理包含PVR应用程序的软件时,遇到这种呼叫行的PVR处理器识别消息点。例证的两行呼叫伪代码简单,但是它们仍然需要应用层编程,来相当多地了解或确定消息接发过程,包括了解通过利用节目标题上的“+”运算符串联建立的,随后作为参数传送给sendMessage()函数的消息接发文本本身。
sendMessage()函数本身调用getUserProfile(),获得在用户ID参数中识别的用户的用户简介的副本。sendMessage()随后使用在User.MsgMode(图40中用户简介202中的字段4016)上转换的开关语句确定要发送何种消息。MsgMode 4016是保存消息接发模式的字段,即用户的优选消息接发是通过寻呼机、电子邮件、即时消息接发、SMS或者本领域的技术人员易于想到的其它消息接发手段的指示。图40中的例证用户简介202还包括寻呼机号码字段4018,电子邮件地址字段4020,以及即时消息接发地址字段4022,和用于SMS消息的独立电话号码字段4024。和应用层相反,消息接发函数sendMessage()对消息文本本身的了解很少,只接收函数参数中的消息文本,‘messageString’。
实际上,在该伪代码的操作中,应用层确定消息类型和消息内容,而消息接发函数本身sendMessage()只查找消息接发模式并发送消息。。具有更独立并且灵活的消息接发功能是有益的。上面陈述的伪代码片断是面向程序的,而不是面向对象的。出于下面更详细表示的原因,面向对象的编程可能是有前途的描述消息接发各方面的途径。
图42以流程图的形式图解说明了识别消息点4116和传送消息4118的方法,其中消息点具有相关消息点ID 4202。图42的方法包括根据消息点ID 4202,选择4208要发送的消息4206。在图42的方法中,传送4118消息包括发送选择的消息4206。虽然可用类似C、Cobol和Fortran之类语言程序实现图42的方法,不过用面向对象的术语说明图42的方法是有益的。可根据描述具体消息类别的下述例证伪代码,实现图42的方法。
//

    //message class associated with message point ID″message1″

    //

    class message1:Message

    {

            //
				
				<dp n="d79"/>
    //send()can be a virtual function inherited from an abstract base class

    //if so,override it:

    //

    public int send(userID)

    {

    boolean success=false

    //User probably sysadmin from PVR profile

    UserProfile User=getUserProfile(userID);

    switch(User.MsgMode)

    {

       case PAGER:

              success=sendpaper(User.pagerNum,messageText);

              break;

       case EMAIL;

              success=sendmail(User.EmailAddress,messageText);

              break;

       case SMS;

              success=sendSMS(User.SMS-phone,messageText);

              break;

       case INSTANT-MESSAGING:

              success=sendIM(User.IM-Address,messageText);

              break;

    }//end switch()

    return success;//returns true or false for success or failure
   }//end send()
}//end class message1
和程序伪代码函数sendMessage()一样,面向对象的函数,即子(member)方法,message.send()接受消息文本串和用户ID作为参数,并依赖消息文本的呼叫应用代码。通过包括或面对下述例证伪代码,可识别message.sent()的消息点。
Message m=MessageFactoryOne.createMessageObject(MessagePointID=″MessagePoint″)
m.setMessage(″System Error Message:Cannot detect your cable box.″);
m.send(userID);
本例中,如同紧跟本段的伪代码片段中描述的那样,最初在消息的抽象类别(abstract class)中声明子方法setMessage()和send()。抽象类别有效确定继承自抽象类别的具体消息类别的应用程序接口。事实上这是我们对这些术语的定义:抽象基本类别未被例示成对象。本公开文献中,抽象基本类别只用于定义接口,具体类别是用于例示的类别。当然这是伪代码,其中我们自由使用来自C、C++、Java,以及其它源的各种常见惯例,只要我们的应用对我们的读者有帮助。但是,值得指出的是,‘抽象基本类别’是其接口声明被设计成被具体的衍生类别或‘子类别’继承的类别的C++术语。在Java中,这种结构被称为Java类别‘实现’的‘接口’。在我们的伪代码中,我们使用‘抽象基本类别’,因为根据语境,‘接口’具有许多备选的含意。下面是消息的例证抽象基本类别:
//

    //abstract class for message,declaring the message interface

    //

    class Message

    {

        private String messageText;

    //

    //declare virtual function,define in subclasses

    //

    public abstract int send()

    //
				
				<dp n="d81"/>
    //in-line declaration and definition of setMessage()

    //available to all subclasses 

    //

    public void setMessage(String messageString)

    {

           messageText=messageString;

    }

    }
另外,本例中,PVR的应用程序代码不确切知道哪个消息类别实际正在发送任何特殊消息。子方法MessageFactoryOne.creatMessageObject()是产生消息对象,并把执行发送特定消息的实际任务的消息类别对象的索引或指针返回给呼叫应用程序代码的factory类别中的factory方法。下面是描述包括称为creatMessageObject()的消息factory方法的消息factory类别的例证伪代码:
//

    //Message Factory Class-Example Number One

    //

    //Defines a parameterized factory method for creating message objects

    //

    class.MessageFactoryOne

    {

          public static Message createMessageObject(MesssagePointID)

          {

            Message aMessage=null;//establish pointer or reference for new object

            switch(MessagePointID)

           {

             case″MessagePoint1″:aMessage=new message1;break;

             case″MessagePoint2″:aMessage=new message2;break;
				
				<dp n="d82"/>
           .........

           case″MessagePointN-1″:aMessage=new messageN-1;break;

           case″MessagePointN″:aMessage=new messageN;break;

           }//end switch()

           return aMessage;

        }//end createMessageObject()

    }//end class MessageFactoryOne
在factory方法creatMessageObject()接受参数(本例中,消息点ID‘消息点ID’),随后根据该参数,确定例示和返回许多消息类别中的哪些消息类别方面,factory方法creatMessageObject()被认为是‘参数化的’。本公开文献中上面说明了大约12个不同例证消息,根据本发明的实施例的PVR可具有所有这些例证消息以及本领域的技术人员能够设计的许多其它消息的具体消息类别。
上面我们指出PVR的应用程序代码并不确切知道哪个消息类别实际正在发送任何特定消息。但是,专心的读者已注意到MessageFactoryOne实现消息点ID和消息类型或消息类别之间的一一对应。在这种意义上,消息类型和消息类别基本同义。消息点和消息类型之间的这种一一对应并不需要,这在本发明的范围之内,并且有助于说明。后面我们将说明如何把节目逻辑单元加入factory类别中,以便有效解除消息点ID和消息类型之间的一一对应关系。
在应用层建立消息文本,消息接发软件本身只用于传送该消息的情况下,子方法message1.send()可完全类似程序函数sendMessage()操作。但是,面向对象的方法可带来更高的灵活性。考虑下述具体消息类别,其中消息类别本身完成建立消息文本的工作,大大减轻了应用层的负担,现在,应用层只需识别消息点,并利用适当的参数呼叫send()方法。
//

    //message class associated with message point ID″message2″

    //
				
				<dp n="d83"/>
    //message subclass for conflictive change in show schedule

    //

    class message2:Message

    {

          //override the send()function,inherited from the abstract base class

           public int send(showID-1,showID-2)

           {

                  boolean success=false;

                  Firstshow=getShow(showID-1);

                  SecondShow=getShow(ShowID-2);

                  User=getUser(FirstShow.ownerID);//same ownerID on both shows

                  messageText=FirstShow.title+″,originally scheduled for″+

                               FirstShow.schedule+

                               ″,now conflicts with scheduled recording of″+

                               SecondShow.title+″at″+SecondShow.schedule+

                               ″.Unless you change the schedule,your PVR will

                               recod″+SecondShow.title+″.″;

              switch(User.MsgMode)

    {

              case PAGER:

                     suceess=sendpaper(User.PagerNum,messageText);

                     break;

             case EMAIL;

                     success=sendmail(User.EmailAddress,messageText);

                     break;

              case SMS:

                     suecess=sendSMS(User.SMS-phone,messageText);
				
				<dp n="d84"/>
                      break;

              case INSTANT-MESSAGING:

                      success=sendIM(User.IM-Address,messageText);

                      break;

           }//end switch()

           return success;//returns true or false success or failure

    }//end send()

    }//end class message2
插入PVR应用程序代码中的下述伪代码行包括消息点的例证识别和消息的传输。通过对于识别为‘MessagePoint2’的消息点使用MessageFactoryOne,这些行利用由消息类别‘message2’例示的消息对象传送消息。
Message m=MessageFactoryOne.createMessageObject(″MessagePoint2″);
       m.send(ShowID-1=Show-1.showID,showID-2=show-2.showID);
本例中,PVR应用程序代码不知道消息文本,不知道哪个消息类别将被实际用于传送该消息。当发现时间表中的冲突时,应用程序代码只是根据相应的节目记录,设置节目ID参数,识别其对creatMessageObject()的调用中的消息点,随后调用send()子方法。通过MessageFactoryOne中creatMessageObject()的操作,返回的消息对象‘m’事实上是由消息类别‘message 2’例示的消息对象。
由于根据本发明的PVR通常不仅支持单向消息接发,而且还支持双向消息接发,因此能够根据用户对来自PVR的消息的响应,选择操作或命令是有益的。图43以流程图的形式图解说明了识别消息点4116的方法,其中消息点具有相关的消息点ID 4202,该方法包括根据消息点ID 4202选择4208消息4206。该方法包括传送消息4118。图43的方法还包括接收4404对消息4206的响应4406,并根据响应4406,选择4408要执行的命令4304。该方法还包括执行4306选择的命令4304。
在下面的处理上述这种例证消息的消息类别的伪代码中,陈述了如何传送消息4118和接收响应4404的一个例子,在所述例证消息中,提示用户选择使更多的存储空间适合于记录节目的方法。
//

    //message class″message3″

    //

    //a derived concrete message class for

    //making available more storage space

    //

    class message3:Message

    {

           //override the send()function,inherited from the abstract base class

           public int send(showID,deficit)

           {

              int success=0

              int TimeOutPeriod=30000;//milliseconds,i.e.,30 seconds

              int response;

              Show=getShow(showID);

              User=getUser(Show.ownerID);

              messageText=″You have″+Show.title+scheduled to record at″

                          +show.schedule+″。For this recording there is a

                          deficit in storage space of″+deficit+″

                          megabytes.

                          Your action choices are:

                        1.Do not record

                        2.Reposses loaned space,10 megabytes available

                        3.Borrow space,25 megabytes available

                        4.Delete your other shows,30 megabytes available
				
				<dp n="d86"/>
                    5.Recover displayed space,8 megabytes available

                    6.Increase compression of other shows

                    The default is choice number″+default+″.This

                    message times out jn″+TimeOutPeriod+″seconds。

            If you wish an action other than the default,please select it now.Your

            selection(1-6):_。″

        switch(User.MsgMode)

        {

        case PAGER:

               success=sendpager(User.PagerNum,messageText);

               break;

        case EMAIL:

               success=sendmail(User.EmailAddress,messageText);

               break;

        case SMS:

               success=sendSMS(User.SMS-phone,messageText);

               break;

        case INSTANT-MESSAGING;

               success=sendIM(User.IM-Address,messageText);

               break;

    }//end switch()

    if(success)//message sent

    {

          //sleep for 30 seconds

          sleep(TimeOutPeriod);

          //then return user′s response;

          return(response=getResponse());

    }
				
				<dp n="d87"/>
           elae//message failed

           return success;//returns 0 if failure

           }//end send()

    }//end class message3
插入应用程序代码中的下述伪代码行识别在MessageFactoryOne的操作中,导致利用消息类别‘message3’的消息点。
Message m=MessageFactoryOne.createMessageObject(″MessagePoint3″);
ActionID=m.send(ShowID,DeficitAmount);
本例中,PVR应用程序代码不知道消息文本,并且不知道实际将使用哪种消息类别传送消息。当发现存在不足量时,应用程序代码根据有关的节目记录确定showID参数,根据不足量的计算确定DeficitAmount参数,利用对creatMessageObject()的调用,识别消息类别,随后调用send()子方法。本例中,send()方法实现双向消息接发,并以操作ID的形式返回用户的响应。
图43的方法包括接收4404对消息4206的响应4406,并根据响应4406,选择4408要执行的命令4304。响应message3.send()返回的操作ID是接收4404对消息4206的响应的例子。根据这种响应4406,选择4408要执行的命令4304的一种方式由下述伪代码举例说明:
     Action a=ActionFactory.createActionObject(actionID);
     a.takeAction(showID);
子方法ActionFactory.createActionObject(actionID)是在例证的操作factory类别的下述伪代码中定义的factory方法:
//

    //Action Factory Class

    //

    Defines a parameterized factory method for creating action objects

    //

    class ActionFactory

    {
				
				<dp n="d88"/>
    public static Action createActionObject(actionID)

    {

       Action anAction=null;//establish pointer or refernce for new object

       switch(actionID)

    {

               case 1:anAction=new Action1;break;

               case 2:anAction=new Action2;break;

               .........

               case N-1:anAction=new ActionN-1;break;

               case N:anAction=new ActionN;break;

        }//end switch()

        return anAction;

      }//end createActionObject()

    }//end class ActionFactory
例证的子方法ActionFactory.createActionObj ect(actionID)是参数化fatory方法,通过产生根据作为参数提供的操作ID选择的新的具体操作类别对象发生作用。下面说明的是操作类别的例子(一个抽象操作类别,几个具体操作类别),可用于执行用户响应消息,例如对message3.send()所传送消息的响应,而选择的操作或命令。
//

    //abstract action class

    //

    class Action

    {

             //

            //declare virtual function,define in subclasses

            //

            public abstract Boolean takeAction(showID)==o;
				
				<dp n="d89"/>
    }
紧接下面说明的下一例证类别是具有子方法的具体类别的伪代码例子,所述子方法执行与在message3.send()中向用户提供的第一选择相关的操作。即,下述例证类别被设计成执行不记录所述节目的默认操作。
//

    //concrete action class for action′Do not record′

    //

    class Action1:Action

    {

             //

             //define virtual function from abstract Action class

             //

             public Boolean takeAction(showID)

             {

             boolean success=false

             return(success=deleteShow(showID));

             }

    }
紧接下面说明的下一例证类别是具有子方法的具体类别的伪代码例子,所述子方法执行与在message3.send()中向用户提供的第二选择相关的操作。即,下述例证类别被设计成执行收回出借空间,以便产生用于记录所述节目的可用自由空间的操作。
//

    //concrete action class for action′repossess loaned space′

    //

    class Action2:Action

    {

    //
				
				<dp n="d90"/>
    //define virtual function from abstract Action class

    //

    public boolean taqkeAction(showID)

        {
              boolean success=false;

              //find show record(or show objet)based on showID

              Show=findShow(showID);

              //repo space based on loan records having

              //user ID from Show.ownerID in LenderID field

              return(success=repossessSpace(Show.ownerID));

        }

    }
紧接下面陈述的下一例证消息类别是具有执行与在message3.send()中向用户呈现的第三选择相关的操作的子方法的具体类别的伪代码例子。即,下述例证类别用于执行借用空间,以便获得用于记录所述节目的可用自由空间的操作。
//

    //concrete action class for action′Borrow′

    //

    class Action3:Action
    {

       //

       //define virtual function from abstract Action class

       //

       public boolean takeAction(showID)

       {

               Boolean success=false;

               //find show record(or show object)based on showID

               Show=findShow(showID);
				
				<dp n="d91"/>
             //find user profile based

             User=findUserProfile(show.ownerID);

             //calculate deficit

             Deficit=Show.SpaceRequirement-User.FreeSpace;

             //borrow deficit amount

             return(success=borrowSpace(User,Deficit));

       }

    }
下面是具有执行与在message3.send()中向用户呈现的第四选择相关的操作的子方法的具体类别的伪代码例子。即,下述例证类别用于执行删除先前记录的节目,以便获得用于记录所述节目的可用自由空间的操作。通过查找同一所有者拥有的已观看的第一节目,并删除所述第一节目,继续进行Action4.takeAction()。
//

    //concrete action class for action′Delete shows′

    // 

    class Action4:Action

    {

    //

    //define virtual function from abstraet Action class

    //
    public Boolean takeAction(showID)

    {
           Boolean success=false;

           //find show record(or show object)based on showID

           show=findshow(showID)

           //find user profile based

           User Owner=findUserProfile(Show.ownerID);

           Boolean thisShowViewed==false;
				
				<dp n="d92"/>
         //find first viewed show with same ownerID

        while(thisShowViewed==false)

         {

            NextShow=findNextShow(Show.ownerID);

            if(NextShow==NULL)break;

            thisShowViewed=NextShow.Viewed;

          }

         //NextShow now point to or rererences a viewed show

          if(thisShowViewed==TRUE)

          {

             Owner.FreeSpace+=NextShow.SpaceRequirement

             deleteShow(NextShow);

             success=true;

           }

           return success;

          }

    }
下面是集中到一起,以便参考上面陈述的识别提示用户选择获得适于记录节目的更多存储空间,获得用户的响应,并根据响应采取操作的消息点所需的所有例证伪代码行的四行伪代码例子。
Message m=MessageFactoryOne.createMessageObject(″message3″);
ActionID=m.send(ShowID,DeficitAmount);
Action a=ActionFactory.createActionObject(actionID);
a.takeAction(showID);
现在读者应清楚,参考图43的方法,配合上面描述的面向对象的类别一起操作,上面列出的四行伪代码举例说明了识别消息点4116的方法,其中消息点具有相关的消息点ID 4202。本例中,消息点是下述一行在PVR应用程序代码中的位置:
Message m=MessageFactoryOne.createMessageObject(″MessagePoint3″)
消息点ID是参数‘MessagePoint3’。例证的四行伪代码还举例说明了通过调用m.send()传送消息4118的方法,以及接收4404对消息4206的响应4406,在返回模式下,称为‘actionID’的参数。
例证的四行伪代码还举例说明了根据响应4406,选择要执行的命令4304的方式。即,对借助‘actionID’参数化的creatActionObject()的调用,选择、产生并向应用层返回称为‘a’的操作对象。该操作对象包含‘要执行的命令’,称为‘takeAction()’的子方法。对子方法takeAction()的调用在图43的方法的意义内执行选择的命令4304。
                消息接发的机器学习
根据用户使用PVR有多积极,PVR可能产生发给用户的许多消息。许多这样的消息相当常规,通知预定的记录准时进行,无问题地完成时间表的改变等。出于这些原因,能够以某种方式精选或过滤或限制或筛选消息的数目,而不是总是发送相同消息点的相同消息应是有益的。
在涉及提示决策的消息的其它情况下,用户可反复选择除默认选择之外的某一选择,这种情况下,对要改变的默认选择是有用的。当反复接受相同的默认选择时,把消息类型从提示响应的阻塞消息改变为仅仅建议用户采取默认操作,而不提示响应的张贴是有益的。在所有这些情况下,对于限制消息的数目,改变默认选择和改变消息类型来说,如果PVR自己能够学习如何根据用户的历史行为,实现这些改变应是有益的。
包含计算机的PVR是能够根据正确的编程,实现‘机器学习’的机器。机器学习通常被称为模式识别或数据分类。术语“模式识别”和“分类”基本同义,因为模式识别的根本问题是确定如何把数据的元素分类为属于或不属于某一模式。在根据本发明的PVR的实施例中,分类包括,例如:
消息137是否应被分类为要发送’或‘不要发送’。
消息137是否应被分类为作为阻塞发送或非阻塞张贴传送。
命令编号438是否应被分类为关于消息137的默认值。
除了分类之外,机器学习包括训练。训练包括把已知的输入变换成已知的输出。变换是分类的基础。就PVR消息接发来说,已知的输入是消息接发输入,包括发送给用户的提示与特定命令相关的响应的消息类型。在该面向对象的讨论中,利用消息类别名称识别‘消息类型’。已知的输出是消息接出输出,即,关于消息接发的PVR操作的结果,例如包括消息点的频率或计数,当遇到消息点时是否传送消息,以及消息被传送多少次的计数,消息是作为发送或张贴被传送,用户对消息的响应,用户选择哪个命令及多久选择一次,以及用户是否认为默认选择是发送及多久选择一次。变换包括消息接发输入和消息接输出之间关系的统计描述。变换的例子是User SoAndSo,响应消息745以45%的比率采用默认选择’。
根据本发明的实施例的PVR执行频繁分类操作。在正常操作中每次遇到消息点时,一般执行某一类分类。对于每个消息点,PVR一般执行诸如确定是否传送消息,是否传送张贴或发送,要包括哪个命令,哪个命令将是默认命令之类的分类。另一方面,较少进行训练。可每小时、每日、每周、每月、或者在就整体PVR性能来说有意义的任意时间安排训练例程。可在半夜或4:00am,当多数用户在睡觉,训练例程的执行减缓正常PVR操作的机会很小时进行训练。由于分类频繁进行,而训练不需频繁进行,在本公开文献中,读者会观察到有利于把复杂性从分类转移到训练的设计偏向或策略。
图45陈述了描述关于个人视频记录器(“PVR”)的控制的机器学习的例证方法,所述方法包括提供4401消息的传输记录4402;识别4116 PVR操作中的消息点;根据消息点选择4208要发送的消息4206;和根据消息的传输记录4402,确定4506是否传送选择的消息。在图45的方法中,识别消息点使消息点和消息点ID 4508联系起来。
如同在本发明的实施例中实践的那样,机器学习取决于历史数据的训练变换。消息的传输记录4402包括机器学习的训练变换所需的历史数据。在体现图45的方法的例证PVR中,提供消息的传输记录包括把消息传送4502给用户4402,并保存消息的传输记录4402。
本语境中,‘保存’意味着把代表相对于特定用户的特定消息的特定传输的计算机数据保存在计算机存储器中的数据结构中。图44中图解说明的传输记录数据结构4402是在本发明的不同实施例中,用于保存消息的传输记录的结构的例子。图44的例证传输记录4402包括识别和哪个消息被传送有关的消息点4404,识别传送的消息的特定形式的消息ID 4406,识别向其传送消息的用户的用户ID 4408,消息是作为发送消息或张贴消息传送的指示4410,和如果消息是发送消息,识别用户选择的命令的命令ID 4412的数据元素。
例证的PVR把处理命令选择编号1实现为默认选择,因此不需要指示是否采用默认选择的独立数据元素。如果命令ID 4412的值为‘1’,那么用户采用默认选择。如果PVR承认命令ID不是唯一的,那么这种数据结构将起作用。命令的唯一识别需要命令ID和该命令与其相关的消息ID。按照这种方式识别的命令不是完全可再使用的。
更为灵活的是使用序列指示,例如命令序列4418指示消息中命令的选择顺序,包括哪个命令是默认命令。PVR仍然可采用具有顺序编号‘1’的命令作为默认命令,不过现在为了描述用户选择了哪个顺序编号,传输记录中需要额外的一个数据元素,诸如选择ID4411之类的数据元素。
在参考图45说明的方法中,确定4506是否频繁传送选择的消息包括确定是否根据向用户传送消息的消息接发频率4510,传送选择的消息。在这种实施例中,通常根据在PVR操作中遇到相关消息点的次数,定义消息接发频率。即例如,为‘1’的消息接发频率意味着每遇到一次相应的消息点时,传送消息。为‘5’的消息接发频率意味着每遇到五次相应的消息点时,传送消息,依次类推。
根据图45的方法包括记录4514确定4516是否传送选择的消息4206的结果4512。如果不传送选择的消息,那么确定是否传送消息包括出于统计目的,递增消息点计数4460,记录消息接发输出,以便以后在训练中使用。
类似地,如果不传送选择的消息,那么确定是否传送消息包括递增诸如发送计数4470或张贴计数4474之类的频率支持计数,供确定是否传送选择的消息之用。特别地,PVR实现这种计数(4470、4474),直到计数等于消息接发频率,例如消息接发频率4476为止,随后重置为0。例如,如果有关的消息接发频率4476被设置为‘5’,指示相关的消息点出现每5次才传送该消息,那么确定是否传送该消息的过程包括比较由所讨论的特定消息的消息ID(4456、4458)识别的消息模型4450的消息计数(4470、4474)。如果消息计数小于消息接发频率,那么PVR递增消息计数,不传送该消息。如果消息计数等于消息接发频率,那PVR把消息计数重置为零,并传送该消息。
如果PVR传送该消息,即,如果确定是否传送选择的消息产生该消息将被传送的确定,那PVR向用户4402传送4520选择的消息,并把表示传送消息4522的传输记录保存4524在传输记录4402中。事实上,图45中图解说明的方法通常包括把选择的消息4206传送4520给用户4122,并把表示传送消息的传输记录保存4524在消息传输记录4402中,保存的记录具有,例如图44中图解说明的传输记录4412的形式。向用户4402传送消息包括把消息传送给在用户简表202中识别为,例如所使用的寻呼机号4018的显示装置4122,因为用户宣称的优选消息接发模式4016被设置为‘寻呼机’。
图46陈述了描述关于个人视频记录器(“PVR”)的控制的另一例证机器学习方法,其中消息的传输记录4402包括消息接发输入4650和消息接发输出4652。图46中图解说明的方法包括产生4654从消息接发输入到消息接发输出的变换4656。
可在实现图46中图解说明的那种方法的PVR中使用的消息接发输入4650的例子包括在图44的例证数据结构中所示的几个数据元素。这样的数据元素包括,例如消息标识(传输记录4402中的附图标记4406),消息点标识4404,向其发送消息的用户的用户标识4408,消息是发送消息或张贴消息的指4410,和与消息选择提示相关的命令的命令标识4412。
可在实现图46中图解说明的那种方法的PVR中使用的消息接发输出4652的例子包括在图44的例证数据结构中所示的几个数据元素。这样的数据元素包括,例如消息点计数(消息接发模型4450中的4460)。消息接发输出包括诸如图44上在附图标记4470和4474所示的那些消息计数之类的数据元素。这些计数包括当遇到消息点时,是否传送消息的相关指示。消息接发输出包括指示用户对消息的响应的数据元素,例如,传输记录4402中的字段命令ID 4412,指示用户ID 4408识别的用户响应消息ID 4406选择命令ID 4412。
可在实现图46中图解说明的那种方法的PVR中使用的消息接发4656的例子包括图44的例证数据结构中所示的几个数据元素。这样的数据元素包括,例如置信度等级(消息接发模型4450中的4462、4472),消息接发计数(4470、4474),消息接发频率4476和在消息点是传送发送消息还是传送张贴消息的指示4478。
事实上,变换的产生是本发明的典型实施例中机器学习的训练阶段的重要组成部分。更具体地说,根据本发明的例证PVR通过首先扫描传输记录,并把对于导致用户选择由“传输记录”- “选择ID”==1(附图标记4412)或者由“传输记录”-“选择ID”==1(附图标记4411)指示的默认选项的特定消息点,已传送给具有特定用户ID的特定用户的发送消息的总数计数为第一计数,计算变换元素,例如发送置信度4462。PVR随后获得对于相同消息点,传送给相同用户的所有发送消息的第二计数,而不考虑是否采取默认选项。(通常在对传输记录的同一扫描中产生这两个计数)。
PVR随后通过把第一计数除以第二计数,计算发送置信度4462。于是,本例中,对于特定的消息接发模型4450,发送置信度4462代表对于从消息点ID 4454识别的特定消息点,向用户ID 4452识别的特定用户发送消息,采取默认选项的次数的比例。
本例中,消息接发模型4450是和识别特定消息接发模型的数据元素结合的变换数据元素的储存库。每个消息接发模型,即,每个消息接发模型4450,帮助关于特定用户的特定消息点的消息分类。即,在使用和图4类似的数据结构的例证PVR中,对于向其传送消息的用户和与传送消息相关的消息接发点的各个组合,存在一个独立的消息接发模型。换句话说,消息接发模型记录4450的唯一密钥是消息点ID 4454和用户ID 4452的组合。
上面一段中出现了短语‘消息分类’,对用户理解来说,它可用于重申和扩展分类。如上所述,机器学习包含两个主要阶段:训练和分类。本公开文献中使用的短语‘消息分类’指的是机器学习周期的分类阶段中,关于消息接发的决策。消息分类是关于,例如:在某一消息点是否要传送消息;如果要传送消息,该消息是发送消息还是张贴消息;如果是发送消息,那么包含哪一命令选择,哪一命令选择是默认选择;等等的消息决策。
在其训练阶段中,根据本发明的实施例的例证PVR一般还计数张贴消息,并把该计数保存为变换数据元素,例如图44上的消息接发模型4450中的张贴置信度4472。例证的张贴置信度4472是特定消息接发模型4450中,从消息点ID 4454向用户ID 4452识别的特定用户张贴的消息的计数。
例证的消息接发模型中的另一例证变换数据元素是“消息接发模型”-“消息接发频率”4476。本例中,消息接发频率指的是当遇到特定消息点时,多久传送一次消息。例如,消息接发频率4476中的值‘1’可指示在PVR操作中,每次遇到由消息点ID 4454识别的消息点,要传送某一类型的消息(或者为张贴消息或者为发送消息)。消息接发频率4476中的值‘5’可指示每五次遇到特定的消息点时,要传送一个消息,依次类推。
根据这种实施例的PVR通过比较消息接发计数或置信度等级和阈值,设置消息接发频率。在本例中,在训练4638期间,作为产生4654变换4656的一部分,PVR比较消息接发模型4450的置信度等级(4472、4462)和PVR简表记录300中的一组对应置信度阈值(4422-4432)。本例中,在PVR层保存阈值。在一些实施例中,在用户层或者甚至在消息接发模型本身中保存阈值。本领域的技术人员易于想到的关于阈值参数的任何存储方案都在本发明的范围之内。
本例中,如果消息接发模型目前起发送的作用,即传送张贴或发送4478被设置为‘发送’,那么PVR比较发送置信度4462和发送置信度阈值(4422-4426)。发送置信度阈值-1 4422、发送置信度阈值-2 4424、发送置信度阈值-3 4426分别被设置为‘5’、‘10’和‘20’。如果发送置信度超过发送置信度阈值-1,那么PVR把消息接发频率从‘1’改为‘5’,之后只有当该消息点出现五次时,才对在消息点ID中识别的消息点传送消息。如果发送置信度超过发送置信度阈值-2,那么PVR把消息接发频率从‘5’改为‘10’,之后只有当该消息点出现10次时,才对在消息点ID中识别的消息点传送消息。
如果发送置信度超过发送置信度阈值-3,那PVR把消息接发频率从‘10’改为‘1’,把传送张贴或发送从‘发送’改为‘张贴’,之后每当该消息点出现时,就对在消息点ID中识别的消息点传送消息。
继续本例,当消息接发模型起张贴的作用时,即传送张贴或发送4478被设置为‘张贴’,那么PVR比较张贴置信度4472和张贴置信度阈值(4428-4432)。张贴置信度阈值-1 4428、张贴置信度阈值-2 4430、张贴置信度阈值-3 4432分别被设置为‘5’、‘10’和‘20’。如果张贴置信度超过张贴置信度阈值-1,那么PVR把消息接发频率从‘1’改为‘5’,之后只有当该消息点出现五次时,才对在消息点ID中识别的消息点传送消息。如果张贴置信度超过张贴置信度阈值-2,那么PVR把消息接发频率从‘5’改为‘10’,之后只有当该消息点出现10次时,才对在消息点ID中识别的消息点传送消息。如果张贴置信度超过张贴置信度阈值-3,那PVR把消息接发频率从‘10’改为‘20’,之后每当该消息点出现20次时,对在消息点ID中识别的消息点传送消息。
在本发明的范围内,每次遇到消息点时,PVR也可比较置信度等级和置信度阈值。但是,通过借助消息接发频率,把置信度等级变换成阈值训练消息接发模型使分类处理更快,因为当遇到消息点时,PVR只需为该消息点处理消息接发模型内的值。即,不是进行与阈值的比较,PVR只需比较消息接发频率和消息计数。如前所述,如果计数小于频率,那么递增该计数,不进行传输。如果计数等于频率,那么清除计数,并传送消息。这是前面提及的有利于把复杂性从分类转移到训练的设计策略的一个特殊例子。
我们的例证消息接发模型中的另一例证变换数据元素是图44中命令记录4416中的“命令”-“命令序列”4418。本例中,命令序列指的是PVR把关于命令的选择插入发送消息中的顺序。如前所述,讨论中的例证PVR把选择编号1’定义为在缺少用户响应的情况下,要执行的默认选择。用户响应的缺少被定义为关于发送消息的超时。在根据本发明的实施例的例证PVR中,独立于命令序列保存响应消息ID 4406识别的特定消息,选择某一命令的次数的计数,例如命令计数4420。在训练期间,为每个命令计算CommandSequence4418。更具体地说,在训练期间,根据这种例证实施例的PVR扫描所有的命令记录4416。PVR按照命令计数4420对具有相同MessageID 4406的命令记录分类,随后把递增的数值赋予从‘1’开始,并通过具有相同MessageID的命令的数目延续的CommandSequence。即,具有命令计数的最大值的命令被置为CommandSequence=1,并且CommandSequence==1定义由相同MessageID 4406识别的消息的默认命令。
有益的是注意虽然本例中,在训练期间,为每个命令计算CommandSequence 4418,不过当传送特定消息时,只对选择的或者默认的命令递增命令计数4420。命令顺序计算或更新是作为训练的一部分,施加于所有命令记录的庞大任务。当传送特定消息时,递增命令计数4420是应用于单一命令记录的快速单一步骤。这是有利于把复杂性从分类转移到训练的设计策略的另一例子。
图47陈述了描述关于个人视频记录器(“PVR”)的控制的另一例证机器学习方法的流程图,其中提供4401消息的传输记录包括传输4502提示识别命令的响应的用户4402消息。在图47的方法中,提供消息的传输记录包括保存4504消息的传输记录4402,包括保存响应的记录4604。在图47的方法中,选择4208要传送的消息包括根据对消息的响应记录4604,选择要传送的消息。
下述factory类别用伪代码图解说明根据对消息的响应记录,选择要传送的消息的例子。本例中,诸如MessagingModel.传送张贴或发送4478先前由如上详细所述,根据消息传输的历史记录(例如如图44中的数据结构所示那样构成的记录)工作的训练例程。在消息点选择要传送的消息。在我们的机器学习的术语中,消息的这种选择包括分类,而不是训练。
//

    //Message Factory Class-Example Number Two

    //

    //Defines a parameterized factory method for creating message objects

    //

   class MessageFactoryTwo

   {

      public static Message createMessageObject(MessagePointID)

      {

     MessagingModel=findMessageModel(MessagePointID);

      if(MessageingModel.TransPointOrSend==′Send′)

      {

      if(MessagingModel.SendCount<MessagingModel.MessagingFrequency)

      {

        MessagingModel.SendCount+=1;

        return NULL;//no message until messaging frequency is satisfied
				
				<dp n="d102"/>
    }

    else//if(SendCount>=MessageFrequency)

    {    

      MessagingModel.SendCount=0;

      MessageID=MessagingModel.SendMessageID;

     }

    }

    else/*if Post*/{

      if(MessagingModel.PostCount<MessagingModel.Model.MessagingFrequency)

     {

      MessagingModel.PostCount+=1;

      return NULL;//no message until messageing frepuency is satisfied

     }

      else//if(PostCount>=MessageFrequency){

        MessagingModel.PostCount=0;

        MessageID=MessageModel.PostMessageID;

      }

    };

    switch(MessageID)
    {

        case″message1″:aMessage=new message1;break;

        case″message2″:aMessage=new message2;break;

        .........

        case″messageN-1″:aMessage=new message3;break;

        case″messageN″:aMessage=new message3;break;

    }//end switch()

    return aMessage;

    }//end ereateMessageObject()
				
				<dp n="d103"/>
    }//end class MessageFactoryTwo
本例中,如果训练扫描把TransPostSend 4478置为‘发送’的历史记录,那么MessageID被置为在SendMessageID 4456中识别的发送消息,由switch()语句选择,并由return语句返回的消息是发送消息。如果训练扫描把“传输张贴发送”4478置为‘张贴’的历史记录,那么消息ID被置为在发送消息ID 4456中识别的张贴消息,由switch()语句选择,并由return语句返回的消息是张贴消息。
此时在我们的讨论中,有益的是比较MessageFactoryOne和MessageFactoryTwo。前面在MessageFactoryOne的讨论中,我们指出其在消息点和消息类型之间的一一对应,并注释稍后我们会说明如何把程序逻辑加入factory类别中,以便有效解除消息点ID和消息类型之间的一一对应关系。事实上,借助传送张贴或发送4478,MessageFactoryTwo.creatMessageObject()中的这行伪代码有效解除消息点ID和消息类型之间的一一对应:
if(MessagingModel.TransPostOrSend==′send′){...}
在MessageFactoryTwo.creatMessageObject()中,不能识别由于遇到任意特定消息点的结果,要传送的单一消息类型。相反,当应用程序代码向MessageFactoryTwo要求特定消息点的消息对象时,在本公开文献中陈述的特定例证代码和数据结构的使用中,根据目标消息是将作为发送消息还是作为张贴消息被传送,creatMessageObject()可返回至少两个消息对象中的任意一个。目前的这种消息接发模型(如同图44中在数据结构中具体描述的消息接发模型4450)能够在每个消息点的两个备选消息间进行选择。但是,在本发明的范围内,并不局限于仅仅两个选择。本领域的技术人员会定义能够在每个消息点的两个以上的消息类别间进行选择的消息接发模型,所有这些消息接发模型都在本发明的范围之内。
参考图47说明的方法包括根据对消息的响应记录4604,构成4606选择的消息。在图47的方法中,构成4406选择的消息4206包括把关于一组排序命令4416的选择插入选择的消息中。下述消息类型用伪代码举例说明了根据对消息的响应记录,构成选择的消息(包括插入命令的消息选择)的例子。特别地,该例子举例说明了选择的发送消息,所述发送消息提示用户选择获得适用于记录的更多空间的方式。
//

     //message class associated with messsageID″message4″

    //

    //message subclass for making available more storage space

    //

    class message4P:Message

    {

        //override the send()function,inherited from the abstract base class

        public int send(showID,deficit,MessageID)

        {

                int MaxChoiceNum=1;

                int success=0;

                int TimeOutPeriod=30000;//milliseconds,i.e.,30 seconds

                int response;

                Show=getShow(showID);

                User=getUser(Show.ownerID);

                messageText=″You have″+Show.title+scheduled to record at″

                               +show.schedule+″.For this recording there is a

                               deficit in storage space of″+deficit+″megabytes.

                               Your action choices are:\n″

        //Commands 4416 in this example are indexed or sorted,first,on

        //MessageID 4406,and,second,on CommandSequence 4418

        Command=findFirstCommand(MessageID);
				
				<dp n="d105"/>
          while(CommandID!=NULL)

          {

                messageText=messageText+

                            itoa(Command.CommandSequence)+

                            Command.ChoiceString+′\n′;

                MaxChoiceNum+=1;

                Command=findNextCommand(MessageID);

            }

            messageText=messageText+

                        ″The default is choice humber″+default+″.This

                         message times out in″+TimeOutPeriod+″seconds.

                         If you wish an action other than the default,plese

                         select it now.Your selection(1-″+

                         itoa(MaxChoiceNum)+″):_____.″

           switch(User.MsgMode)

    {

           case PAGER:

                  success=sendpager(User.PagerNum,messageText);

                  break;

           case EMAIL:

                  success=sendmail(User.EmailAddress,messageText);

                  break;

           case SMS;

                  success=sendSMS(User.SMS-phone,messageText);

                  break;

          case INSTANT_MESSAGING;

                  success=sendIM(User.IM-Address,messageText);

                  break;

    }//end switch()
				
				<dp n="d106"/>
      if(success)//message sent

      {

                 sleep(TimeOutPeriod);//sleep for 30 seconds

                 //then return user′s response;

                 response=getResponese();

      }

      else return success;//returns 0 for failure

      //if message was a post,no need to return an actionID,

      //because no action was prompted for or chosen:

      //indicate a Post by returning NULL

     MessagingModel=findMessagingModel(messageID);

     if(MessagingModel.TransPostOrSend==′Post′)

              return NULL;

     else return response;

     }//end send()

    }//end class message4
为了说明该伪代码的操作,假定showID识别预定在5:00pm记录,不足量为5兆字节,默认的选择编号为1,超时周期为30秒的题为“Buffy,The Vampier Slayer”的节目。假定对于由MessageID识别的消息,存在由命令记录4416识别的6个命令,所述命令按照序列号索引,并且分别具有下述选择字符串4480:
Do not record
Repossess loaned space,10 megabytes available
Borrow space,25 megabytes available
Delete you other shows,30 megabyts available
Recover displayed sp ace,8 megabyts available
Increase compression of other shows
从而,根据这些假定,例证的方法send()传送下述消息文本:
“You have Buffy,The Vampire Slayer scheduled to record at5:00pm。For this recording there is a deficit in storage space of 5megabytes。Your action choices are:
1.Do not record
2.Repossess loaned space,10 megabytes aVailable
3.Borrow space,25 megabytes available
4.Delete you other shows,30 megabyts available
5.Recover displayed space,8 megabyts aVailable
6.Increase compression of other shows
The default is choice number1。This message times out in thirtyseconds。If you wish an action other than the default,please selectit now。Your selection(1-6):_。”
例证的方法‘send()’返回代表用户选择的整数,如果用户选择默认选项,不记录,那么返回‘1’,如果用户选择收回出借的空间,那么返回‘2’,如果用户选择借用空间,那么选择‘3’,依次类推。
在根据图47的方法中,例证的方法‘send()’根据对消息的响应记录4604,作用于选择的消息,包括把关于一组排序命令4416的选择插入选择的消息中。本例中,在send()按照训练时,根据在图44上的例证传输记录4402中的字段4412和4411中识别的所有历史消息传输记录(包括用户对特定消息的每个命令的历史响应记录)产生的索引顺序,从命令记录步进到命令记录的意义上,‘send()’根据响应记录操作。本例中,该‘组’命令是由具有相同MessageID 4406值的命令记录识别的一组命令。
为了进一步说明关于消息接发的机器学习,我们给出下述例证的应用情况。考虑具有消息接发模型4450的PVR的例子,消息接发模型4450具有下述值:
UserID 4452==′Junior′
				
				<dp n="d108"/>
    MessagePointID 4454==′MessagePoint4′

    SendMessageID 4456==′message4S′

    PostMessageID 4458==′message4P′

    MessagePointCount 4460==37

    SendConfidence 4462==0.0

    CurrentDefault 4468==′Command435′

    SendCount 4470==0

    PostConfidence 4472==5

    PostCount 4474==0

    MessagingFrequency 4476==1

    TransPostOrSend 4478==′Post′
假定相关阈值被设置为:
SendConfidenceThreshold_1 4422==0.25//每隔四个消息点
SendConfidenceThreshold_2 4424==0.50//每隔九个消息点
SendConfidenceThreshold_3 4426==0.95//变为张贴
PostConfidenceThreshold_1 4428==25//每隔四个消息点
PostConfidenceThreshold_2 4430==50//每隔九个消息点
PostConfidenceThreshold_3 4432==100//每隔十九个消息点
例证的PVR被编程为当遇到MessagePoint4时,例证的PVR传送message4P的张贴,当传送message4P的张贴时,递增张贴计数4474。PVR的训练例程定期计算张贴置信度4472,并且当张贴置信度超过25时,PVR把消息接发频率置为‘5’。类似地,当张贴置信度超过50时,PVR把消息接发频率置为‘10’。当张贴置信度超过100时,PVR把消息接发频率置为‘1’,并把传送张贴或发送置为发送’。
我们的例证PVR被编程为既然传送张贴或发送置为‘发送’,那么当遇到MessagePoint4时,例证的PVR传送Message4S的发送,当这样做时,递增发送计数4470。PVR的训练例程定期计算发送置信度4462,并且当目前默认选择4468的发送置信度4462超过0.25时,PVR把消息接发频率置为‘5’。类似地,当发送置信度超过0.50时,PVR把消息接发频率置为‘10’。当发送置信度超过0.95时,PVR把消息接发频率置为‘20’。
下面是识别提示用户选择获得可用于记录节目的更多存储空间,从用户获得响应,并根据响应采取操作的方法的消息点的四行伪代码例子。
Message m=MessageFactoryTwo.creatMessageObject(″MessagePoint4″);
if(((ActionID=m.send(ShowID,DeficitAmount))!=NULL)
{
         Action a=ActionFactory.createActionObject(actionID);
         a.takeAction(showID);
}
本例中,例证的PVR识别被识别为MessagePoint4’的消息点。PVR应用软件调用消息factory类别MessageFactoryTwo’中的factory方法creatMessageObject()。子方法creatMessageObject()返回消息对象‘m’。factory方法确定要传送哪个消息(如果有的话)。
PVR应用软件随后调用消息对象子方法m.send(),消息对象子方法m.send()可以发送也可不发送消息。由factory确定发送哪个消息。本例中,正是该消息对象确定是否发送消息,如果不发送消息,则返回NULL:
    if(MessagingModel.TransPostOrSend==′Send′){

        if(MessagingModel.SendCount<

    MessagingModel.MessagingFrequency){

        MessagingModel.SendCount+=1;

        return NULL;//no message until messaging frequency is satisfied

    }

    else//if(SendCount>=MessageFrequency){

          MessagingModel.SendCount=0;
				
				<dp n="d110"/>
           MessageID=MessagingModdel.SendMessageID;

       }

    }

    else/*ifPost*/{

          if(MessagingModel.PostCount<MessagingModel.MessagingFrequency)

    {

          MessagingModel.SendCount+=1;

          return NULL;//no message until messaging frequency is satisfied

        }

       else//if(PostCount>=MessageFrequency){

            MessagingModel.PostCount=0;

            MessageID=MessageModel.PostMessageID;

        }

    };
即,如果相关消息接发计数小于规定消息接发频率,则本例中的消息对象不发送消息。另外,如果传送的消息是张贴消息,则消息对象子方法m.send()返回NULL,如果由于未提示或寻找响应,不存在对消息的响应,那么不必响应该消息执行操作。
    if(MessagingModel.TransPostOrSend==′Post′)
    return NULL
这是我们当前的四行伪代码例子中的附带条件的原因:
    if(((ActionID=m.send(ShowID,DeficitAmount))!=NULL)
    {
      Action a=ActionFactory.creatActionObject(actionID);
      a.takeAction(showID);
    }
即,如果消息被传送为张贴消息,则无需采取操作。事实上,没有要采取的操作。但是,注意该四行片断包括关于发送的规定,而不考虑可能没有发生发送的事实。即,应用层代码包括关于发送或张贴的规定,因为应用层代码搞不清是发生发送还是发生张贴。换句话说,此时,应用层完全与由factory类别、消息类别和操作或命令类别构成的消息接发子系统脱离。应用层被给予在任意消息点简单插入和上面所述类似的四行代码,把消息点ID插入对factory方法的调用中,编辑并运行的特权。应用层搞不清是否要发送某一消息。如果发送消息,则应用层不知道该消息是何种消息。
随着参数在机器学习过程中的变化,我们的四行伪代码例子的操作戏剧演化。当我们使用case begin操作时,例证的PVR总是传送请求响应的发送消息,所述响应选择获得适用于记录的更多存储空间的六种备选方式之一。当应用训练例程时,呈现六种备选方式的序列(包括哪个备选方式是默认方式)随着时间变化。当采用一个默认方式足够长,提高发送置信度,使之越过第一发送置信度阈值,每个出现MessagePoint4时,PVR停止发送消息,只有当该消息点每隔四次出现时,才开始传送发送消息。
如果采用默认方式足够长,则PVR变为借助张贴,而不是发送的消息接发,采取默认操作,仅仅通知用户PVR已采取默认操作。当通过训练,张贴置信度增大时,PVR不太频繁地传送张贴消息,最终只有当该消息点每隔十九次出现时,才向用户传送张贴消息。通过PVR性能中的所有这些戏剧变化,从每次出现消息点就提示发送和命令选择到只有当消息点出现二十次时才通告张贴消息,识别消息点的应用程序代码保持不变。即,根据本发明的不同实施例,通过PVR机器学习、训练和分类,在消息点插入下述这些代码行:
Message m=MessageFactoryTwo.creatMessageObject(“MessagePoint4”);
if(((ActionID=m.send(ShowID,DeficitAmount))!=NULL)
{
    Action a=ActionFactory.creatActionObject(actionID);
    a.takeAction(showID);
    }
随后在所有PVR操作中保持完全不变,并且仍然具有上面说明的所有各种效果。
                       存储空间提供者
在一些情况下,用户希望把节目记录在位于除PVR之外某处的存储空间中。例如,当用户在PVR上无自由空间,并且由于该用户已向PVR上的其它用户借用过空间,已应用进一步压缩,以及已恢复显示空间,因此用户发现难以获得额外的自由空间时,用户会认为这种脱离PVR的存储非常有利。另一方面,当用户想为特定节目或类型保留PVR上的用户自由空间时,仅仅作为一种选择,用户可能希望脱离PVR记录。在所有这些情况下,对用户来说,有利的是具有把节目记录在除PVR之外某一位置的改进能力。
本发明的实施例包括自动化个人视频记录装置和方法,包括向存储空间提供者借用存储空间,并把节目记录在借用的空间中。存储空间提供者是能够为节目提供存储空间的任意实体,即,具有通过PVR远程记录和分发、下载或显示任何可记录或可分发的电子或数字内容的能力、装置和方法的任意实体,所述电子或数字内容包括电视广播、电影、CD内容、DVD记录、电缆传输、卫星传输、商业视频片断、音频、多媒体编程等。本公开文献中,根据上下文,具有该能力的实体和所述能力本身都被称为‘存储空间提供者’。存储空间提供者的例子包括因特网服务提供者,PVR卖主和制造商和有线电视频道。
根据这种实施例的PVR一般与存储空间提供者耦接,以便实现数据通信。图48是描述可和本发明的各个实施例一起使用的自动计算机器的例证体系结构的方框图,所述自动计算机器包括与存储服务提供者4804耦接,以便实现数据通信4810的PVR 106。如前所述,根据本发明的实施例的PVR是一种自动计算机器,包括如图2a上附图标记156、168、152和154所示的计算机处理器以及其中放置应用软件和操作系统的随机存取存储器(图48上未示出)。
根据图48的PVR包括数据通信耦接器4802,例如电缆调制解调器或者其它数据通信装置,用于相对于存储服务提供者4804传送和接收数据通信。特别地,数据通信耦接器4802用于把将记录在从存储空间提供者4804借用的存储空间4808中的节目的标识和时间表,传送给具有可供借用的存储空间4806的存储服务提供者4804。在图48的例证结构中,存储空间提供者4804与一个或多个内容源182耦接,以便实现数据通信4803,从而存储空间提供者可按时把节目5020记录在借用的存储空间4808中。
PVR和存储空间提供者之间的通信包括从存储空间提供者4804把记录在向存储空间提供者4804借用的存储空间4808中的节目5020下载到PVR 106,以便通过PVR的显示装置180由PVR显示的指令。PVR和存储空间提供者之间的通信包括从存储空间提供者直接向PVR 106的显示装置180显示记录在向存储空间提供者借用的存储空间中的节目的指令。PVR和存储空间提供者之间的通信包括在节目5020已被观看或下载之后,存储空间提供者删除节目,或者从借用者把借用的存储空间4808返回给存储空间提供者的指令。
图50是描述自动个人视频记录方法的流程图,所述方法包括向存储空间提供者借用存储空间,并把节目记录在借用的空间中。图50的方法包括为借用人5022排定4108节目。排定节目可包括用户参考下载的广播时间表,排定4111某一节目,或者排定4108节目可包括根据用户首选项320的优先选择安排。
图49陈述了可和把节目记录在从存储空间提供者借用的存储空间中的PVR一起使用的例证数据结构。就图49的数据结构来说,通过产生节目记录240来表示节目被预定的事实,节目记录240包含节目ID 241、标题241a、何时该节目将被记录的时间表272等等。当本公开文献继续在从存储空间提供者借用的存储空间中的记录的主题时,除非上下文需要,否则数据元素或数据结构的附图标记一般是图49中描述的数据元素和数据结构的附图标记。
图49的例证数据结构包括借用授权记录4902,每个借用授权记录4902表示借用人向存储空间提供者借用存储空间的授权。在一些实施例中,不存在允许向存储空间提供者借用的最大量,只存在一个可用的存储空间提供者,于是,识别借用人的字段,例如借入人ID224可以是借用授权记录4902中需要的唯一字段。借用授权记录4902可包括允许向存储空间提供者借用的存储空间的最大量,在诸如最大借入4912之类字段中指示的最大值。借用授权记录4902还可提供存储空间提供者的标识,例如提供者ID 4904,在根据支持向一个以上的存储空间提供者借用存储空间的实施例的PVR中,所述存储空间提供者的标识特别有用。
图49的例证数据结构包括借用记录4906,每个借用记录4906代表向存储空间提供者的存储空间借用。借用记录4906包括识别向其借用存储空间的存储空间提供者的数据元素提供者ID 4904。借用记录4906包括识别借用存储空间的借用人的数据元素借入人ID234。借用记录4906包括识别借用的存储空间的数量的数据元素借入量4914。借用记录4906包括识别记录在或者将记录在借用的存储空间中的节目的数据元素节目ID 241。
根据本发明实施例的一些PVR根据具有使借用记录和节目记录相联系的节目ID 241的借用记录4906的存在,推断该节目将或者被记录在在借用记录中的提供者ID 4904中识别的存储空间提供者中的借用存储空间中。支持向一个以上的存储空间提供者借用存储空间的一些PVR通过诸如节目记录240中的提供者ID 4904之类的字段,利用要在该处记录节目的存储空间提供者的身份的正面表示。在这种PVR中,无需根据借用记录推断在该处记录节目的存储空间提供者,因为在节目记录本身中明确陈述了存储空间提供者的身份。
图49的例证数据结构包括存储空间提供者简表记录4908,每个存储空间提供者简表记录4908表示允许用户向其借用存储空间的存储空间提供者。存储空间提供者简表记录4908包括识别由特定的存储空间提供者简表记录4908代表的存储空间提供者的数据元素提供者ID 4904。本例中,存储空间提供者简表记录4908还提供定位从服务空间提供者借用的存储空间的数据元素,本例中为网络地址4910。
在把节目记录在从存储空间提供者借用的存储空间中的语境中,虽然本发明不要求,不过借用人通常是预定某一节目的用户或者代表其选优预定某一节目的用户。即,这种情况下,借用人是具有个人视频记录器(“PVR”)上的分配存储空间的用户,所述分配的存储空间可包括自由空间,如图49上用户简表202中的附图标记206所示。节目具有存储空间要求,如图49上节目记录240中的附图标记246所示。
可选的是,图50的方法包括比较5002节目的存储空间要求和借用人的自由空间。图50中,自由空间和存储空间要求的这种比较被表示成不足量判定5002,因为本公开文献一般把自由空间和存储空间要求的比较讨论为是否存在‘不足量’。根据图50的方法包括如果节目的存储空间要求超过借用人的自由空间,即如果存在不足量,那么向存储空间提供者借用5004存储空间。这种实施例中,要借用的存储空间的量一般不局限于不足量。要借用的存储空间的量一般至少等于节目的整个存储空间要求。
自由空间和存储空间要求的比较5002是可选的。本发明的实施例支持用户确定是否把节目记录在从存储空间提供者借用的存储空间中。图49中用户简表202中的字段SS-借入4922是简表代表的用户的所有节目是否将被记录在从存储空间提供者借用的存储空间中的布尔指示。图49中节目记录240中的字段SS-借入4920是特定节目记录代表的节目是否要被记录在从存储空间提供者借用的存储空间中的布尔指示。
在图50的方法中,可选的是,向存储空间提供者借用5004存储空间包括确定5021是否允许借用人向存储空间提供者借用。在典型的实施例中,根据借用授权记录4902确定5021用户是否被准许。在这种实施例中,每个借用记录一般代表用户向存储空间提供者借用的授权。借用授权记录可具有,例如和图49上的附图标记4902所示类似的数据结构,提供者ID字段4904识别允许向其借用或租用存储空间的存储空间提供者,识别准许向在提供者ID 4904中识别的存储空间提供者借用存储空间的用户的借入人ID 224,和识别允许在借入人ID 224中识别的用户向在提供者ID 4904中识别的存储空间提供者借用或租用的最大存储空间量的最大借入字段4912。
更具体地说,参考图49,在图50的方法中,在许多实施例中,根据包含借用人的标识224和允许借用的存储空间的最大出借量4912的借用授权记录4902,确定5021是否允许借用人向存储空间提供者借用。这种实施例中,借用授权记录4902通常还包括允许借用人向其借用存储空间的存储空间提供者的标识4904。
图50的方法包括把节目5020记录5006在借用的存储空间4808中。更具体地说,记录5006节目包括按照这些实施例编程的PVR的应用软件把节目的标识和记录节目5020的时间表传递给存储空间提供者。随后根据传递的时间表,把节目记录5006在借用的存储空间4808中。
图51是说明显示记录在存储空间提供者4804中的借用存储空间4808中的节目5020的方法的流程图。事实上,根据图51的方法包括至少两种备选的节目显示方法,取决于从节目记录240读取的节目的存储空间要求和从节目所有者的用户简表202读取的节目所有者的自由空间的初始比较5102是否指示PVR上该节目的存储空间存在不足。
根据图51的方法包括把节目5020下载到PVR上,并从PVR显示5104该节目。在用户或借用人请求显示节目时,当进行不足量检查5102(自由空间和存储空间要求的比较)时,下载并且随后从PVR显示是有益的。许多实施例中,当用户或借用人请求显示时,进行这种不足量检查是有益的,因为在把节目记录在从存储空间提供者借用的存储空间中和将向用户或借用人显示该节目之间会过去一段时间。许多实施例中,节目被记录在从存储空间提供者借用的存储空间中,因为PVR上存储空间存在不足。但是,在记录和显示之间的那段时间中,在PVR上,该借用人可能获得其它自由空间,消除了先前存在的不足量,从而现在节目可被整个下载并从PVR显示。
根据图51的方法包括把借用的空间5108返回给存储空间提供者。当节目已显示时,可从借用人或者其它授权用户把借用的存储空间返回给存储空间提供者。当借用人由于其它原因决定不观看节目,但是希望释放存储空间时,例如节省租用的存储空间的费用时,可从借用人或者其它授权用户把借用的存储空间返回给存储空间提供者。如图50中所示,在本发明的许多实施例中,向存储空间提供者借用存储空间5004包括向存储空间提供者租用5005借用的存储空间,从而返回借用的存储空间可有利降低租金。
作为一种备选方案,图51的方法包括从存储空间提供者4804显示5106节目5020。更具体地说,该方法包括直接从存储空间提供者显示节目,而不插入下载到PVR上或者保存在PVR上。当不足量检查5102表明在相关PVR上,存在自由空间的不足时,即,没有适于支持节目下载的足够自由空间时,直接从存储空间提供者显示节目是有利的。另一方面,出于许多原因,例如包括保留PVR上的自由空间用于其它用途,借用人可自行选择直接显示。
就借用人自由处理的支持来说,一些实施例包括表示是否直接从存储空间提供者显示的确定的数据元素。图49上用户简表320中的字段SSP-显示4930是在用户层设置的是否直接显示的布尔指示,当在用户简表中识别的用户是借用人时,指令PVR总是直接从存储空间提供者显示。节目记录240中的字段SSP-显示4932是无需进行不足量检查,将直接从存储空间提供者显示特定节目记录代表的节目的布尔指示。
可通过专用于该用途的有线电视频道,实现直接从存储空间提供者显示节目。另一方面,可通过流式视频,借助HTTP或tcp/ip流向显示装置180,并通过PVR中的电缆调制解调器(包括数据通信耦接器,如图48上的附图标记4802所示)与显示装置180耦接的视频,可实现直接从存储空间提供者显示节目。
现在参见图52,本发明的另一实施例表示成一种个人视频记录方法,所述方法包括在存储空间提供者4804中,从PVR 106接收5202识别节目5020的节目标识5212和记录该节目的时间表5214。图52的方法包括把节目5020记录5204在借用的存储空间4808中。记录节目包括在存储空间提供者4808中接收从内容源182传送或广播的节目本身。
在图52的举例说明中,根据节目标识5212和记录该节目的时间表5214,记录5204该节目。节目标识可以是节目的标题,广播公司的标识码等。节目的一些实例可从内容源182多次广播,从而,从PVR接收的关于该节目的信息最好包括指示要记录特定实例或情节的日期和时间的时间表数据5214。
图52的方法包括存储空间提供者把记录的节目5020下载到PVR 106。在这种实施例的典型实例中,以媒体文件,例如包括视频文件、MPEG文件、CD文件、DVD文件、音频文件、多媒体文件等的网络化4410下载,实现节目的下载。
图52的方法包括存储空间提供者显示5208节目5020。如前所述,由借用人随意决定,或者当PVR上的自由空间不足时,存储空间提供者最好直接向与PVR相关的显示装置显示该节目。在不插入PVR上的存储的情况下,通过专用于该用途的有线频道,通过借助HTTP,通过tcp/ip连接经PVR流向显示装置的视频,或者通过本领域的技术人员易于想到的其它方法的直接传输可实现这种直接显示。本领域的技术人员易于想到的无PVR上的过渡存储的任何节目显示方式都在本发明的范围之内。
图52的方法包括存储空间提供者向借用人出租5206借用的存储空间4808。实践本发明的不同实施例的存储空间提供者可包括以服务订金的形式,例如ISP服务或有线电视服务的月费,收取借用的存储空间或者大量借用的存储空间的租金。另一方面,存储空间提供者可对借用的存储空间的租金分别计价,并按照兆字节收费。本领域的技术人员易于想到的借用存储空间的租金的任何收取方法都在本发明的范围之内。
                远程PVR上的存储空间
一些情况下,最好把节目记录在远程PVR上。“远程PVR”是除用户已计划在其上放映某一节目的PVR之外的其它PVR。从用户的观战来看,把节目记录在远程PVR上至少具有在向存储空间提供者借用或租用的存储空间中记录的优点。即,当用户在该用户的PVR上没有任何自由空间,并且用户发现难以获得额外的自由空间,因为该用户已向其PVR上的其它用户借用了存储空间,已采用了进一步压缩以及已恢复已显示空间时,用户会认为远程PVR上的存储是有利的。另一方面,当用户希望为特定节目或类型保留PVR上该用户的自由空间时,仅仅作为一种选择,用户可能想在远程PVR上记录。
从用户的观点来看,有益的是注意对用户来说,是通过向存储空间提供者还是从远程PVR借用存储空间来远离用户PVR存储预定节目是透明的。在本发明的典型实施例中,存储空间提供者协调远程PVR上节目的存储以及从存储空间提供者借用的空间上的存储。于是,在许多实施例中,所有用户可以知道节目被记录在除用户PVR之外的某一位置。
在商业条款中,如果用户同意允许存储空间提供者把一些用户节目保存在远程PVR上借用的空间中,那么可准许用户降低在存储空间提供者中或者通过存储空间提供者的存储的费用。所有PVR为节目提供存储空间。在许多PVR中,至少部分时间内,存储空间稀缺。但是,在其它许多PVR中,存储空间未被充分利用。这些PVR一般与可起存储空间提供者(必须投入额外的存储空间,以便向用户提供出借或出租存储空间的服务的存储空间提供者)耦接,从而实现数据通信。借助本发明的实施例,通过利用远程PVR上未充分利用的存储空间,存储空间提供者可降低投入他们自己的额外存储空间的需要。作为允许他们的PVR被用作其它PVR上用户的预定节目的存储用远程PVR,可准许用户降低在存储空间提供者中或者通过存储空间提供者的节目存储的费用。毫无疑问,本领域的技术人员会想到其它许多商业方案,所有这些商业方案都在本发明的范围之内。
本发明的实施例包括自动个人视频记录的装置和方法,包括命令或请求存储空间提供者借用远程PVR上的存储空间,并把节目记录在借用的空间中。根据这些实施例的PVR和远程PVR一般与至少一个存储空间提供者耦接,以便实现数据通信。图48是描述可和本发明的不同实施例一起使用的自动计算机器的例证结构的方框图,所述自动计算机器包括与存储服务提供者4804耦接,以便实现数据通信4810的PVR 106。图48的结构包括与存储空间提供者4804耦接,以便实现数据通信4812的若干远程PVR 4816。类似于PVR,根据本发明的实施例的远程PVR 4816是一种包括如图2a上附图标记156、168、152和154所示的计算机处理器以及随机存取存储器的自动计算机器(图48上未示出)。
类似于图48上的PVR 106,远程PVR 4814包含数据通信耦接器4802,例如电缆调制解调器或其它数据通信装置,用于相对于存储服务提供者4804传送和接收数据通信。特别地,数据通信耦接器4802用于与提供协调和实现远程PVR上存储空间借用的服务的存储服务提供者4804通信。在图48的例证结构中,存储空间提供者4804与一个或多个内容源182耦接,以便实现数据通信4803,从而存储空间提供者可按时把节目5020记录在借用的存储空间4808中。在图48的结构中,PVR 106和远程PVR 182也被耦接,以便实现相对于内容源182的数据通信。
PVR和存储空间提供者之间的通信包括把节目5020记录在位于远程PVR 4814上的存储空间5412中的指令、命令或请求。PVR和存储空间提供者之间的通信包括从存储空间提供者4804把记录在远程PVR 4814上的存储空间5412中的节目5020下载到PVR 106,以便通过PVR的显示装置180,由PVR显示的指令、命令或请求。PVR和存储空间提供者之间的通信包括直接从存储空间提供者向PVR 106的显示装置180显示记录在从存储空间提供者借用的存储空间中的节目的指令。PVR和存储空间提供者之间的通信包括在节目5020已被观看或下载之后,存储空间提供者删除节目并把存储空间5412返回给远程PVR(或者返回给在远程PVR上向其借用该存储空间的用户)的指令。存储空间提供者4804和远程PVR 4816之间的通信包括将记录在远程PVR上的存储空间中的节目的记录指令,视频文件的上传和下载,以及借用远程PVR上的存储空间的请求。
图54是描述自动个人视频记录方法的流程图,所述方法包括为用户4104预定4108某一节目。预定节目可包括用户参考下载的广播时间表4110,预定4111某一节目,或者预定3108节目可包括根据用户的首选项320的优选预定4112。PVR 106与存储空间提供者4804耦接,以便实现数据通信4812,如图48的例证结构中所示。
图54的例子的用户4104是在PVR 106上具有分配的存储空间的用户。可选的是,PVR上用户的存储空间包括自由空间,之所以认为是可选的,是因为用户可能已管理PVR上该用户的存储空间,从而此时,用户要么不具有自由空间,要么不具有支持记录特定预定节目的足够自由空间。事实上,在图54的方法中,所讨论的节目具有超过5002用户的自由空间的存储空间要求。
PVR可利用类似图49中陈述的那些数据结构,管理对用户的存储空间分配和节目的存储空间要求。图49的例子包括用户简表记录202,用户简表记录202提供分配给用户的空间的字段198,用户使用的空间的字段204,用户的自由空间字段206,用户向其它用户出借多少空间的字段210等。图49的例子包括节目记录240,每个节目记录240表示将代表用户预定记录的节目。节目记录240提供节目标识字段241,预定节目的用户的标识字段244,节目的存储空间要求字段246等。就图49的数据结构来说,通过产生节目记录240表示预定某一节目的事实,节目记录240包括showID 241,标题241a,何时记录该节目的时间表272等。
在一些实施例中,在节目记录中,诸如SSP-借入4920之类的字段可被用作节目是否将被记录在从存储空间提供者借用的存储空间中,或者在存储空间提供者的选择下,记录在远程PVR上的存储空间中的布尔指示。在这种实施例中,对本地PVR上的用户来说,在存储空间提供者中记录还是在远程PVR中记录是透明的。其它实施例包括利用,例如诸如远程PVR 4934之类布尔字段,特定节目记录记录在远程PVR上,而不是记录在存储空间提供者中的更正面表示。
支持通过一个以上的存储空间提供者在远程PVR上记录节目的一些PVR通过诸如图49的节目记录240中的提供者ID 4904之类的字段,利用将在该处记录节目的存储空间提供者的身份的表示。图49的例证数据结构包括存储空间提供者简表记录4908,每个存储空间提供者简表记录4908代表通过其,用户可定购保存在远程PVR上的节目的存储空间提供者。存储空间提供者简表记录4908包括识别特定存储空间提供者简表记录4908代表的存储空间提供者的数据元素提供者ID 4904。本例中,存储空间提供者简表记录4908还提供查找服务空间提供者的位置,以便进行数据通信的数据元素,本例中,是网络地址4910。
图54的方法包括向存储空间提供者4804传送5406命令5402,以便通过存储空间提供者4804,把节目5020记录在远程PVR 4812上的存储空间5412中,远程PVR 5412与存储空间提供者4804耦接,以便实现数据通信。在本发明的典型实施例中,PVR和存储空间提供者耦接,以便实现数据通信,借助任意形式的数据通信,网络通信,有线或无线,802.11b、蓝牙、红外、无线电、网际协议、HTTP协议、电子邮件协议、连网直接连接、专用电话线路、拨号、利用RS-232(EIA-232)或通用串行总线的串行连接、硬连线并行端口连接、根据电力线协议的网络连接,以及本领域的技术人员易于想到的其它形式的数据通信连接,传送5406命令5402。
在典型的实施例中,命令5402包含节目的标识241和记录该节目的时间表241。可选的是,命令5402包含其它信息,例如节目的存储空间要求。命令中是否包含存储空间要求被认为是随意的,因为另一方面,存储空间提供者按照和PVR类似的方式,即根据不仅来自预定节目的PVR,而且通过惯常下载来自内容源以及来自远程PVR的节目的压缩等级,持续时间等适用于存储空间提供者的信息,计算或推断存储空间要求。
在远程PVR上记录节目的命令5402事实上采取向存储空间提供者借用存储空间的请求的形式。出于几个原因这是正确的,例如包括在一些商业方案中,存储空间提供者会收取存储空间的费用,而不管存储空间实际由存储空间提供者提供,还是事实上由存储空间提供者向远程PVR借用。在这些方案中,如果预订存储空间提供者的服务的用户同意出借或分配他们PVR上的空间,充当远程PVR,那么可降低这些用户的费率。在这些方案中,就使用的空间实际位于存储空间提供者拥有的驱动器上,还是位于远程PVR中的驱动器上来说,存储空间提供者不会产生向存储空间提供者请求存储空间的用户可见的差别。尽管在特定的实施例中并不总是产生这种差别,不过在本公开文献中,为了说明清楚起见,特别区分了要求在远程PVR中记录。
命令5402被认为‘通过’存储空间提供者实现记录,因为预计存储空间提供者会协议记录,虽然实际上是在远程PVR中实现记录并保存在远程PVR上,所述远程PVR既与存储空间提供者耦接,又与内容源耦接,以便实现数据通信。本公开文献中使用的术语“存储空间提供者”包括存储空间提供者的计算机和通信系统。图53描述了有助于存储空间提供者借助在远程PVR间分布的存储空间,协调个人视频记录的数据结构。图53的数据结构包括命令记录5252,每个命令记录代表把节目记录在远程PVR上的命令,每个命令包括节目标识字段241,记录节目的时间表272,和节目的存储空间要求的指示246。
图53的数据结构还包括远程节目记录5302,每个远程节目记录5302代表预定要记录在远程PVR上的节目的实例。远程节目记录5302被表示成与命令记录5252成多对一关系,因为一个节目可被冗余记录在一个以上的远程PVR上。本发明的典型实施例中的存储空间提供者安排成通过在远程PVR上注册为用户,并如同其它任意用户那样借用存储空间,具有远程PVR上的可用存储空间。于是,如同其它任意用户一样,存储空间提供者有使其借出人用完存储空间,收回向存储空间提供者出借的存储空间的风险。本领域的技术人员会想到,控制这种风险的方式有许多种,例如包括借用人优先等级,锁定,把远程PVR上的存储空间永久分配给存储空间提供者,预先通知和收回的宽限期等。但是控制收回风险的一种方式是按照相同的时间表,把同一节目记录在一个以上的远程PVR上。实际上,节目被记录成具有一个或多个备份副本。这样,如果在显示某一节目之前,该节目的一个副本被记录在收回的空间中,那么可从备选副本继续重放。在定购节目的用户观看该节目之后,删除第一记录,如果该节目仍然存在,那么删除所有的备份副本。
在把节目记录在远程PVR上的存储空间的情况下,用户一般是预定某一节目的用户或者以其名义优先预定某一节目的用户。即,这种情况下,用户具有PVR上的分配存储空间,所述存储空间可包括自由空间,如图49上的用户简表202中的附图标记206所示。节目具有存储空间要求,例如如图49上节目记录240中的附图标记246所示。
图54的方法包括确定是否传送5406在远程PVR上记录的命令5402。更具体地说,图54的方法包括比较5002节目的存储空间要求和用户的自由空间,向存储空间提供者传送5406命令5402,以便通过存储空间提供者把节目记录在远程PVR上的存储空间中包括如果节目的存储空间要求超过用户的自由空间,传送该命令。在图54的术语中,如同本公开文献中惯常那样,节目的存储空间要求超过用户的自由空间的事实被描述为‘不足’5002。在图54的例子中,从用户简表202读取用户的自由空间,从节目记录240读取节目的存储空间要求。在图54的例子中,如果节目的存储空间要求不超过用户的自由空间,那么如常在本地PVR 4114(在其上预定该节目的PVR)上进行记录。
自由空间和存储空间要求的比较5002是可选的。本发明的实施例支持用户确定是否把节目记录在远程PVR上的存储空间中,而不管用户PVR上的存储空间可用性。图49中的用户简表22中的字段远程PVR 4936是特定用户简表代表的用户的所有节目是否要被记录在远程PVR上的存储空间中的布尔指示。图49中节目记录240中的字段远程PVR 4934是布尔指示,代表来自‘拥有’节目的用户的是否要把特定节目记录在远程PVR上的存储空间中的指令。
图54的方法包括从远程PVR 4814把节目下载5408到PVR106,并从PVR显示该节目。作为下载节目的一种备选方案,图54的方法包括以从存储空间提供者4804流来的视频的形式,在PVR上显示5410该节目。包括向用户的PVR(即向定购远程PVR上记录节目的用户的PVR)下载节目的备选方案是有益的,因为在许多实施例中,由于用户的PVR上存在存储空间的不足,节目被记录在远程PVR上的存储空间中。但是,在记录和显示之间的时段内,在用户的PVR上可能获得额外的自由空间,消除了原先存在的不足,从而现在节目可被整体下载,并从用户的PVR显示。如果显示时,仍然存在不足量,那么可从远程PVR把节目下载到存储空间提供者,并显示成从存储空间提供者流向用户PVR的显示装置的视频。
图55是描述一种个人视频记录方法的数据流程图,所述方法包括在存储空间提供者4804中接收5502来自PVR的在远程PVR 4812上记录节目5020的命令5402。在图55的例子中,命令5402包括要记录的节目的标识241和记录该节目的时间表。可选的是,图55的例证命令5402包括节目的存储空间要求246的表示。
图55的方法包括选择5504远程PVR 4814,并根据节目标识241和记录该节目的时间表272,把节目5020记录5508在选择的远程PVR 4814上的存储空间(5420、5522)中。在根据图55的方法的一些实施例中,选择远程PVR 4814包括其上选择存储空间提供者4804是具有分配存储空间的用户的远程PVR,所述分配的存储空间具有超过节目的存储空间要求246的自由空间。在这些实施例中,记录5508节目5020包括把节目记录在远程PVR上,分配给存储空间提供者的存储空间5522中。
更具体地说,并参考图3及图55,存储空间提供者(或者代表存储空间提供者的执行进程或线程)可被赋予PVR(根据本发明的实施例的任意PVR,包括在其上预定节目的PVR,以及远程保存节目的远程PVR)上的用户特权。在这种实施例中,如同其它用户一样,存储空间提供者由用户简表202表示。如同其它用户一样,存储空间提供者可具有PVR上的分配存储空间198、已用空间204、自由空间206、借用空间208和出借空间210等。
就选择远程PVR以便在分配的空间中记录来说,要跟踪的一个有用变量是自由空间(分配给作为远程PVR上用户的存储空间提供者的空间量和先前的记录已使用的空间量之间的差值)。通过轮询,或者通过远程PVR和存储空间提供者之间的任意类型的数据通信,以及本领域技术人员会想到的任意类型的数据通信,可从远程PVR把在该远程PVR上具有分配空间的存储空间提供者仍然可用的自由空间量上传到存储空间提供者,并保存在诸如图53上关于存储空间提供者的数据结构中图解说明的远程PVR记录结构5510中的自由空间5513之类的字段中。远程PVR记录5510代表存储空间提供者可在其上把节目记录和保存在分配给存储空间提供者的空间中,或者记录和保存在存储空间提供者借用的空间中的远程PVR。在这两种情况下,使用分配的空间或者借用的空间,存储空间提供者实际上都充当远程PVR上的授权用户。图55的方法包括借用空间5506和无借用情况下,即在分配的空间中记录5526的执行路径。
最终确定分配存储空间或者向PVR上的存储空间提供者出借存储空间的策略的是PVR的用户,而不是存储空间提供者。一些情况下,存储空间提供者自己的基础需要会阻止接受或多或少的远程PVR上存储空间的永久分配,代之以优选借用。由于这些原因以及本领域技术人员会想到的其它许多原因,与在分配空间中记录相反,借用是有利的。
于是在根据图55的方法的一些实施例中,选择5504远程PVR包括从许多PVR 4816中选择某一远程PVR 4814,在所述远程PVR4814上,存储空间提供者是准许借用存储空间的许可的远程借贷量(图53上的附图标记5514)的用户,所述远程借贷量超过节目的存储空间要求(图53上的附图标记246)。在这种实施例中,该方法还包括借用5506选择的远程PVR 4814上的存储空间5510。在这种实施例中,记录5508节目5020还包括把节目记录于在选择的远程PVR 4814上借用的存储空间5520中。
在存储空间提供者借用远程PVR上的存储空间的语境中,选择5504远程PVR 4814还包括确定5505是否允许存储空间提供者4804向远程PVR 4814借用存储空间。通过利用如图53上附图标记5514所示的远程PVR的许可远程借贷量(跟踪或保存的许可远程借贷量),可确定是否准许这样的借用。
在这种实施例中,远程PVR 4814的许可远程借贷量(图53上的附图标记5514)一般包括远程PVR上的借出人允许向存储空间提供者出借的最大借贷量的总数。参考图3:最大借贷量226和在准许向根据本发明的实施例的任意PVR上的任意用户出借的例证实施例中使用的来自借出授权记录220的最大借贷量226相同。在这种意义上,如同远程PVR上的任意其它用户一样,存储空间提供者具有用户ID。如同根据本发明的实施例的任意PVR上的任意其它授权借用人一样,存储空间提供者的用户ID保存在远程PVR中的借出授权记录的借入人ID字段224中。如同从根据本发明的实施例的任意PVR上的任意借出人批准借出授权一样,远程PVR上其用户ID保存在借出授权记录220的借出人ID字段222中的其它一些用户批准向存储空间提供者出借某一最大借贷量226。
参考图53和55:就选择5504远程PVR 4814,以便在借用的存储空间5520中记录5508来说,要跟踪的一个有用变量是远程PVR的许可远程借贷量,例如图53上远程PVR记录5510中的字段AuthRemLoanAmt 5514。如上所述,远程PVR 4814的许可远程借贷量5514一般包括该远程PVR上的借出人允许向存储空间提供者出借的最大借贷量的总数。就图53的例证数据结构来说,所讨论的远程PVR是和许可远程借贷量5514相同的远程PVR记录5510上的远程PVR-ID字段5511中识别的远程PVR。
通过合计其借入人ID字段224中具有存储空间提供者的用户ID的所有借出授权记录220中的最大出借量226,可确定要作为许可远程借贷量5514跟踪的数量。随后通过轮询,或者通过远程PVR和存储空间提供者之间,以及本领域技术人员会想到的任意类型的数据通信,可把关于特定远程PVR这样确定的许可远程借贷量从远程PVR上传到存储空间提供者,并保存在诸如图53上在关于存储空间提供者的数据结构中举例说明的远程PVR记录结构5510中的AuthRemLoanAmt 5514之类的字段中。
如上所述,远程PVR记录5510代表存储空间提供者可在其上,把节目记录和保存在分配给存储空间提供者的空间中,或者记录和保存在存储空间提供者借用的空间中。这两种情况下,使用分配的空间或者借用的空间,存储空间提供者实际上都充当远程PVR上的授权用户。图55的方法包括无借用情况下的记录5526,即在分配的存储空间5522中的记录,以及借用5506远程PVR 4814上的存储空间5520的执行路径。
图56是描述显示记录在远程PVR上的节目的方法的辅助数据流程图。根据图56的一种显示方法包括通过存储空间提供者,把节目从选择的远程PVR下载到预定将在其上显示该节目的PVR。该方法还包括通过PVR 106的显示装置180,从预定显示该节目5020的PVR 106显示5604这样下载的节目5020。在这种实施例的典型实例中,以媒体文件,例如包括视频文件、MPEG文件、CD文件、DVD文件、音频文件、多媒体文件等的网络下载的形式,实现节目的下载。
根据图56的另一显示方法包括存储空间提供者把节目从选择的远程PVR 4814下载5608到存储空间提供者4804,并通过PVR106,例如以流式视频的形式,从存储空间提供者显示5610该节目。由借用人随意决定,或者当预定显示节目的PVR 106上的自由空间不足时,存储空间提供者最好直接向与PVR 106相关的显示装置显示该节目。在根据图56的方法中,通过比较预定该节目的用户可用的自由空间和节目的存储空间要求,确定PVR 106上自由空间是否合用。从PVR 106中用户的用户简表202读取用户的自由空间,从PVR 106上的节目记录240读取节目的存储空间要求。通过远程记录命令5252中的拥有者ID字段5304,用户的用户ID被传递给存储空间提供者,并保存在该节目的远程节目记录5302中的拥有者ID字段5302中,以供稍后确定是否下载时参考。用户简表202和节目记录240具有如图3中所示的现在熟悉的例证结构,包括用户自由空间字段106和节目存储空间要求字段246。在不插入PVR 106上的存储的情况下,通过专用的有线频道,通过借助HTTP,通过tcp/ip连接经PVR流向显示装置的视频,或者通过本领域的技术人员易于想到的其它方法的直接传输可实现这种直接显示。本领域的技术人员易于想到的无PVR上的过渡存储的任何节目显示方式都在本发明的范围之内。
根据图56的第三种显示方法包括直接从远程PVR 4812上的存储空间5512向预定节目5020的PVR 106的显示装置180显示5612节目5020。通过直接经数据通信用因特网耦接器,把视频从远程PVR 4814上的Java服务器流向PVR 106的网络地址,可实现这种直接显示。在图53的例证数据结构中,通过远程PVR记录5510,存储空间提供者已知远程PVR的网络地址5512。远程PVR的网络地址已知意味着其上预定显示该节目的PVR的网络地址也已知。在远程记录节目的命令记录5252中,在PVR-ID字段5306中识别要在其上显示该节目的PVR 106。可选的是,PVR 106的网络地址可包含在命令5252中,或者存储空间提供者可通过查找具有和通过命令5252中的PVR-ID字段5306传递的PVR标识码相同的RemotePVR-ID的远程PVR记录,并从该远程PVR记录读取其网络地址5512,恢复或推断PVR的网络地址。在本发明的许多实施例中,这样传递或推断的网络地址是预定将在其上显示节目的PVR 106的IP地址。从而,存储空间提供者可把预定将在其上显示节目5020的PVR 106的IP地址传递给远程PVR 4814上的嵌入式HTTP服务器,远程PVR 4814随后可以借助HTTP,通过tcp/ip连接经PVR 106流向显示装置180的视频的形式,显示该节目。可在几乎无来自存储空间提供者4804的其它介入的情况下,实现从远程PVR 4814到预定节目5020的PVR 106的这种直接显示5612。
根据上面的说明,可在不脱离发明精神的情况下,在本发明的各个实施例中做出修改和变化。说明书中的描述只有用于举例说明,而不是对本发明的限制。本发明的范围只受下述权利要求限定。

Claims (30)

1、一种自动个人视频记录方法,包括:
为在个人视频记录器(“PVR”)上具有分配的存储空间的用户预定某一节目,可选的是,所述分配的存储空间包括自由空间,其中节目具有超过用户的自由空间的存储空间要求,PVR与存储空间提供者耦接,以便实现数据通信;和
向存储空间提供者传送通过存储空间提供者,把节目记录在远程PVR上的存储空间中的命令,所述远程PVR与存储空间提供者耦接,以便实现数据通信。
2、按照权利要求1所述的方法,其中命令包括节目的标识和记录该节目的时间表。
3、按照权利要求1所述的方法,还包括比较节目的存储空间要求和用户的自由空间,其中向存储空间提供者传送通过存储空间提供者,把节目记录在远程PVR上的存储空间中的命令还包括如果节目的存储空间要求超过用户的自由空间,则传送所述命令。
4、按照权利要求1所述的方法,还包括把节目从远程PVR下载到PVR上,并从所述PVR显示节目。
5、按照权利要求1所述的方法,还包括以从存储空间提供者流来的视频的形式,在PVR上显示所述节目。
6、一种个人视频记录方法,包括:
在存储空间提供者中接收来自个人视频记录器(“PVR”)的,把节目记录在远程PVR上的命令,所述命令包括节目的标识和记录节目的时间表;
选择远程PVR;和
根据节目标识和记录节目的时间表,把节目记录在选择的远程PVR上的存储空间中。
7、按照权利要求6所述的方法,其中:
选择远程PVR包括选择某一远程PVR,在所述远程PVR上,存储空间提供者是具有分配的存储空间的用户,所述分配的存储空间具有超过节目的存储空间要求的自由空间,并且
记录节目还包括把节目记录在远程PVR上,分配给存储空间提供者的存储空间中。
8、按照权利要求6所述的方法,其中:选择远程PVR包括从若干远程PVR中选择某一远程PVR,在选择的远程PVR上,存储空间提供者是被允许借用存储空间的许可远程出借量的用户,所述许可的远程出借量超过节目的存储空间要求,
所述方法还包括借用选择的远程PVR上的存储空间,并且
记录节目还包括把节目记录于在选择的远程PVR上借用的存储空间中。
9、按照权利要求8所述的方法,其中选择远程PVR还包括根据远程PVR的许可远程借贷量,确定是否允许存储空间提供者向远程PVR借用存储空间,远程PVR的许可远程借贷量包括远程PVR上的借出人允许向存储空间提供者出借的最大借贷量的总数。
10、按照权利要求6所述的方法,还包括存储空间提供者把节目从选择的远程PVR下载到存储空间提供者,并通过PVR以流式视频的形式,从存储空间提供者显示该节目。
11、一种自动个人视频记录系统,包括:
为在个人视频记录器(“PVR”)上具有分配的存储空间的用户预定某一节目的装置,可选的是,所述分配的存储空间包括自由空间,其中节目具有超过用户的自由空间的存储空间要求,PVR与存储空间提供者耦接,以便实现数据通信;和
向存储空间提供者传送通过存储空间提供者,把节目记录在远程PVR上的存储空间中的命令的装置,所述远程PVR与存储空间提供者耦接,以便实现数据通信。
12、按照权利要求11所述的系统,其中命令包括节目的标识和记录该节目的时间表。
13、按照权利要求11所述的方法,还包括比较节目的存储空间要求和用户的自由空间的装置,其中向存储空间提供者传送通过存储空间提供者,把节目记录在远程PVR上的存储空间中的命令的装置还包括如果节目的存储空间要求超过用户的自由空间,则传送所述命令的装置。
14、按照权利要求11所述的系统,还包括把节目从远程PVR下载到PVR上的装置,和从所述PVR显示节目的装置。
15、按照权利要求11所述的系统,还包括以从存储空间提供者流来的视频的形式,在PVR上显示所述节目的装置。
16、一种个人视频记录系统,包括:
在存储空间提供者中接收来自个人视频记录器(“PVR”)的,把节目记录在远程PVR上的命令的装置,所述命令包括节目的标识和记录节目的时间表;
选择远程PVR的装置;和
根据节目标识和记录节目的时间表,把节目记录在选择的远程PVR上的存储空间中的装置。
17、按照权利要求16所述的系统,其中:
选择远程PVR的装置包括选择某一远程PVR的装置,在所述远程PVR上,存储空间提供者是具有分配的存储空间的用户,所述分配的存储空间具有超过节目的存储空间要求的自由空间,并且
记录节目的装置还包括把节目记录在远程PVR上,分配给存储空间提供者的存储空间中的装置。
18、按照权利要求16所述的系统,其中:
选择远程PVR的装置包括从若干远程PVR中选择某一远程PVR的装置,在选择的远程PVR上,存储空间提供者是被允许借用存储空间的许可远程出借量的用户,所述许可的远程出借量超过节目的存储空间要求,
所述系统还包括借用选择的远程PVR上的存储空间装置,并且
记录节目的装置还包括把节目记录于在选择的远程PVR上借用的存储空间中。
19、按照权利要求18所述的系统,其中选择远程PVR的装置还包括根据远程PVR的许可远程借贷量,确定是否允许存储空间提供者向远程PVR借用存储空间的装置,远程PVR的许可远程借贷量包括远程PVR上的借出人允许向存储空间提供者出借的最大借贷量的总数。
20、按照权利要求16所述的系统,还包括存储空间提供者把节目从选择的远程PVR下载到存储空间提供者的装置,和通过PVR以流式视频的形式,从存储空间提供者显示该节目的装置。
21、自动个人视频记录用计算机程序产品,包括:
记录介质;
记录在记录介质上,为在个人视频记录器(“PVR”)上具有分配的存储空间的用户预定某一节目的装置,可选的是,所述分配的存储空间包括自由空间,其中节目具有超过用户的自由空间的存储空间要求,PVR与存储空间提供者耦接,以便实现数据通信;和
记录在记录介质上,向存储空间提供者传送通过存储空间提供者,把节目记录在远程PVR上的存储空间中的命令的装置,所述远程PVR与存储空间提供者耦接,以便实现数据通信。
22、按照权利要求21所述的计算机程序产品,其中命令包括节目的标识和记录该节目的时间表。
23、按照权利要求21所述的方法,还包括记录在记录介质上,比较节目的存储空间要求和用户的自由空间的装置,其中记录在记录介质上,向存储空间提供者传送通过存储空间提供者,把节目记录在远程PVR上的存储空间中的命令的装置还包括记录在记录介质上,如果节目的存储空间要求超过用户的自由空间,则传送所述命令的装置。
24、按照权利要求21所述的计算机程序产品,还包括记录在记录介质上,把节目从远程PVR下载到PVR上的装置,和记录在记录介质上,从所述PVR显示节目的装置。
25、按照权利要求21所述的系统,还包括记录在存储介质上,以从存储空间提供者流来的视频的形式,在PVR上显示所述节目的装置。
26、一种个人视频记录用计算机程序产品,包括:
记录介质;
记录在记录介质上,在存储空间提供者中接收来自个人视频记录器(“PVR”)的,把节目记录在远程PVR上的命令的装置,所述命令包括节目的标识和记录节目的时间表;
记录在记录介质上,选择远程PVR的装置;和
记录在记录介质上,根据节目标识和记录节目的时间表,把节目记录在选择的远程PVR上的存储空间中的装置。
27、按照权利要求26所述的计算机程序产品,其中:
记录在记录介质上,选择远程PVR的装置包括记录在记录介质上,选择某一远程PVR的装置,在所述远程PVR上,存储空间提供者是具有分配的存储空间的用户,所述分配的存储空间具有超过节目的存储空间要求的自由空间,并且
记录在记录介质上,记录节目的装置还包括记录在记录介质上,把节目记录在远程PVR上,分配给存储空间提供者的存储空间中的装置。
28、按照权利要求26所述的计算机程序产品,其中:
记录在记录介质上,选择远程PVR的装置包括记录在记录介质上,从若干远程PVR中选择某一远程PVR的装置,在选择的远程PVR上,存储空间提供者是允许借用存储空间的许可远程出借量的用户,所述许可的远程出借量超过节目的存储空间要求,
所述计算机程序产品还包括记录在记录介质上,借用选择的远程PVR上的存储空间装置,并且
记录在记录介质上,记录节目的装置还包括把节目记录于在选择的远程PVR上借用的存储空间中。
29、按照权利要求28所述的计算机程序产品,其中记录在记录介质上,选择远程PVR的装置还包括记录在记录介质上,根据远程PVR的许可远程借贷量,确定是否允许存储空间提供者向远程PVR借用存储空间的装置,远程PVR的许可远程借贷量包括远程PVR上的借出人允许向存储空间提供者出借的最大借贷量的总数。
30、按照权利要求26所述的计算机程序产品,还包括记录在记录介质上,存储空间提供者把节目从选择的远程PVR下载到存储空间提供者的装置,和记录在记录介质上,通过PVR以流式视频的形式,从存储空间提供者显示该节目的装置。
CNA2003101149689A 2002-11-21 2003-11-14 自动个人视频记录方法和系统 Pending CN1503557A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/302,399 2002-11-21
US10/302,399 US7474832B2 (en) 2002-11-21 2002-11-21 Personal video recording with storage space distributed among remote personal video recorders

Publications (1)

Publication Number Publication Date
CN1503557A true CN1503557A (zh) 2004-06-09

Family

ID=32324767

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2003101149689A Pending CN1503557A (zh) 2002-11-21 2003-11-14 自动个人视频记录方法和系统

Country Status (3)

Country Link
US (3) US7474832B2 (zh)
CN (1) CN1503557A (zh)
TW (1) TWI242375B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101189865B (zh) * 2005-03-30 2010-09-29 诺基亚西门子通信有限责任两合公司 用于存储和再现tv节目的方法和装置
CN101427565B (zh) * 2006-04-20 2011-08-03 三星电子株式会社 控制运动图像的分散记录和播放的设备和方法
CN101753936B (zh) * 2008-12-08 2013-07-24 北京中星微电子有限公司 一种视频监控系统的存储空间的配置方法和视频服务器
CN111757160A (zh) * 2020-06-19 2020-10-09 海信视像科技股份有限公司 一种启动体育模式的方法及显示设备

Families Citing this family (155)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6769128B1 (en) 1995-06-07 2004-07-27 United Video Properties, Inc. Electronic television program guide schedule system and method with data feed access
EP2346242A1 (en) 1997-07-21 2011-07-20 Gemstar Development Corporation Systems and methods for program recommendation
CN1867068A (zh) 1998-07-14 2006-11-22 联合视频制品公司 交互式电视节目导视系统及其方法
US6898762B2 (en) 1998-08-21 2005-05-24 United Video Properties, Inc. Client-server electronic program guide
US6859799B1 (en) 1998-11-30 2005-02-22 Gemstar Development Corporation Search engine for video and graphics
US6792197B1 (en) * 1998-12-07 2004-09-14 Index Systems, Inc. System and method for generating video taping reminders
US8266657B2 (en) 2001-03-15 2012-09-11 Sling Media Inc. Method for effectively implementing a multi-room television system
US6263503B1 (en) 1999-05-26 2001-07-17 Neal Margulis Method for effectively implementing a wireless television system
EP2262262A1 (en) 2000-10-11 2010-12-15 United Video Properties, Inc. System and methods for providing storage of data on servers in an on-demand media delivery system
US7529471B2 (en) * 2002-06-25 2009-05-05 International Business Machines Corporation Personal video recording with storage space loans
US8417781B2 (en) * 2002-06-25 2013-04-09 International Business Machines Corporation Personal video recording with messaging
US7433582B2 (en) 2002-06-25 2008-10-07 International Business Machines Corporation Personal video recording with machine learning for messaging
US8867904B2 (en) * 2002-06-25 2014-10-21 Google Inc. Personal video recording with apportioned loans of storage space
US7532809B2 (en) * 2002-06-25 2009-05-12 International Business Machines Corporation Personal video recording with pools and groups
US7366398B2 (en) * 2002-06-25 2008-04-29 International Business Machines Corporation Personal video recording with storage space requirement checking
US7295753B2 (en) * 2002-06-25 2007-11-13 International Business Machines Corporation Personal video recording with further compression of recorded shows
US20040101272A1 (en) * 2002-11-21 2004-05-27 International Business Machines Corporation Personal video recording with storage space providers
US7474832B2 (en) * 2002-11-21 2009-01-06 International Business Machines Corporation Personal video recording with storage space distributed among remote personal video recorders
US20040116067A1 (en) * 2002-12-11 2004-06-17 Jeyhan Karaoguz Media processing system communicating activity information to support user and user base profiling and consumption feedback
US7493646B2 (en) 2003-01-30 2009-02-17 United Video Properties, Inc. Interactive television systems with digital video recording and adjustable reminders
WO2004109683A2 (en) * 2003-06-06 2004-12-16 Matsushita Electric Industrial Co., Ltd. Network recording system and recording device
US7792335B2 (en) * 2006-02-24 2010-09-07 Fotonation Vision Limited Method and apparatus for selective disqualification of digital images
US7454120B2 (en) * 2003-07-02 2008-11-18 Macrovision Corporation Methods and apparatus for client aggregation of television programming in a networked personal video recording system
US8438601B2 (en) 2003-07-02 2013-05-07 Rovi Solutions Corporation Resource management for a networked personal video recording system
US7603022B2 (en) * 2003-07-02 2009-10-13 Macrovision Corporation Networked personal video recording system
US20050025465A1 (en) * 2003-08-01 2005-02-03 Danieli Damon V. Enhanced functionality for audio/video content playback
US20050050578A1 (en) 2003-08-29 2005-03-03 Sony Corporation And Sony Electronics Inc. Preference based program deletion in a PVR
US7861274B2 (en) * 2004-01-13 2010-12-28 Time Warner Cable, Inc. System and method for managing program assets
US8965936B2 (en) * 2004-02-26 2015-02-24 Comcast Cable Holdings, Llc Method and apparatus for allocating client resources to multiple applications
US7483975B2 (en) * 2004-03-26 2009-01-27 Arbitron, Inc. Systems and methods for gathering data concerning usage of media data
JP2005339361A (ja) * 2004-05-28 2005-12-08 Fuji Photo Film Co Ltd 画像表示装置および方法並びにプログラム
US9998802B2 (en) 2004-06-07 2018-06-12 Sling Media LLC Systems and methods for creating variable length clips from a media stream
US8346605B2 (en) 2004-06-07 2013-01-01 Sling Media, Inc. Management of shared media content
US7975062B2 (en) 2004-06-07 2011-07-05 Sling Media, Inc. Capturing and sharing media content
US7769756B2 (en) * 2004-06-07 2010-08-03 Sling Media, Inc. Selection and presentation of context-relevant supplemental content and advertising
AU2005253152B2 (en) 2004-06-07 2010-04-22 Sling Media, Inc. Personal media broadcasting system
US8099755B2 (en) 2004-06-07 2012-01-17 Sling Media Pvt. Ltd. Systems and methods for controlling the encoding of a media stream
US7917932B2 (en) 2005-06-07 2011-03-29 Sling Media, Inc. Personal video recorder functionality for placeshifting systems
US20060093325A1 (en) * 2004-11-02 2006-05-04 Mitsuhiro Imai Data recording controller, method of controlling data recording controller, program, data recording system, and data recording device
US8813136B2 (en) * 2004-11-15 2014-08-19 Broadcom Corporation Data on demand using a centralized data storage device
US20060174279A1 (en) * 2004-11-19 2006-08-03 Sbc Knowledge Ventures, L.P. System and method for managing television tuners
WO2006074252A2 (en) * 2005-01-05 2006-07-13 Digital Networks North America, Inc. Method and system for intelligent indexing of recordable event identifiers
US20060217027A1 (en) * 2005-03-25 2006-09-28 Martuccio Michael C Method and apparatus for fan expressing participation in sporting events
US9063941B2 (en) * 2005-06-03 2015-06-23 Hewlett-Packard Development Company, L.P. System having an apparatus that uses a resource on an external device
US8442126B1 (en) 2005-06-14 2013-05-14 Apple Inc. Synchronizing audio and video content through buffer wrappers
WO2007005790A2 (en) 2005-06-30 2007-01-11 Sling Media, Inc. Firmware update for consumer electronic device
US8713607B2 (en) * 2005-09-30 2014-04-29 Microsoft Corporation Multi-room user interface
US8582946B2 (en) * 2005-11-04 2013-11-12 Rovi Guides, Inc. Systems and methods for recording programs using a network recording device as supplemental storage
CN100531344C (zh) * 2006-02-14 2009-08-19 华为技术有限公司 一种通过h.248协议实现多媒体录制的方法及系统
US8458753B2 (en) 2006-02-27 2013-06-04 Time Warner Cable Enterprises Llc Methods and apparatus for device capabilities discovery and utilization within a content-based network
US8170065B2 (en) 2006-02-27 2012-05-01 Time Warner Cable Inc. Methods and apparatus for selecting digital access technology for programming and data delivery
KR100871562B1 (ko) * 2006-04-20 2008-12-02 삼성전자주식회사 동영상의 분산 녹화 및 재생을 제어하는 장치 및 그 방법
US20070268414A1 (en) * 2006-05-21 2007-11-22 Ming-Tso Hsu Method and system for distributing pvr functionalities
US20080066112A1 (en) * 2006-08-24 2008-03-13 Byron Lewis Bailey Method for implementing on-demand pvr peer-to-peer media sharing with content restraint
GB2444083B (en) * 2006-09-05 2011-06-29 Quantel Ltd Distributed data allocation system
US7801888B2 (en) 2007-03-09 2010-09-21 Microsoft Corporation Media content search results ranked by popularity
US20080235746A1 (en) 2007-03-20 2008-09-25 Michael James Peters Methods and apparatus for content delivery and replacement in a network
JP2008251082A (ja) * 2007-03-30 2008-10-16 Hitachi Ltd 録画システムおよび録画再生方法
US8285818B2 (en) * 2007-06-08 2012-10-09 At&T Intellectual Property I, L.P. System and method of recording and accessing multimedia data
US7954131B2 (en) 2007-06-13 2011-05-31 Time Warner Cable Inc. Premises gateway apparatus and methods for use in a content-based network
US8250610B2 (en) * 2007-06-22 2012-08-21 Verizon Patent And Licensing Inc. Method, computer program product and apparatus for receiving recording recommendations
US20110126700A1 (en) * 2007-07-12 2011-06-02 Johannsen Thorkil J Undercarriage for a telescopic frame
US7849641B2 (en) * 2007-07-12 2010-12-14 Thor Global Enterprises Ltd. Undercarriage for a telescopic frame
US10268741B2 (en) * 2007-08-03 2019-04-23 International Business Machines Corporation Multi-nodal compression techniques for an in-memory database
US8776137B2 (en) * 2007-08-10 2014-07-08 At&T Intellectual Property I, Lp System and methods for digital video recorder backup and recovery
US8171044B2 (en) * 2007-09-13 2012-05-01 At&T Intellectual Property I, L.P. Methods, systems, and products for recommending social communities
US8561116B2 (en) 2007-09-26 2013-10-15 Charles A. Hasek Methods and apparatus for content caching in a video network
US8477793B2 (en) 2007-09-26 2013-07-02 Sling Media, Inc. Media streaming device with gateway functionality
US8160426B2 (en) * 2007-10-12 2012-04-17 Rovi Guides, Inc. Storage management of a recording device in a multi-user system
US8099757B2 (en) 2007-10-15 2012-01-17 Time Warner Cable Inc. Methods and apparatus for revenue-optimized delivery of content in a network
US8244102B2 (en) 2007-10-19 2012-08-14 Internationa Business Machines Corporation Detecting and processing corrupted video recordings
US8917646B2 (en) * 2007-10-19 2014-12-23 International Business Machines Corporation Detecting and processing corrupted video recordings
US8350971B2 (en) 2007-10-23 2013-01-08 Sling Media, Inc. Systems and methods for controlling media devices
WO2009069692A1 (ja) * 2007-11-27 2009-06-04 Nec Corporation コンテンツ配信システム、コンテンツ配信サーバ、コンテンツ配信方法およびコンテンツ配信用プログラム
US8782679B2 (en) * 2007-11-30 2014-07-15 At&T Intellectual Property I, L.P. Systems, methods, and computer products for periodic-fee limited access to videos
US8060609B2 (en) 2008-01-04 2011-11-15 Sling Media Inc. Systems and methods for determining attributes of media items accessed via a personal media broadcaster
JP4618301B2 (ja) * 2008-01-08 2011-01-26 ソニー株式会社 コンテンツの提供方法
US9743142B2 (en) * 2008-02-19 2017-08-22 Time Warner Cable Enterprises Llc Multi-stream premises apparatus and methods for use in a content delivery network
WO2009120010A2 (en) * 2008-03-28 2009-10-01 Samsung Electronics Co., Ltd. Apparatus and method for providing contents in internet broadcasting system
US8293714B2 (en) * 2008-05-05 2012-10-23 Covx Technology Ireland, Ltd. Anti-angiogenic compounds
US8781300B2 (en) * 2008-05-23 2014-07-15 At&T Intellectual Property I, Lp System and apparatus for managing video content recordings
US8667279B2 (en) 2008-07-01 2014-03-04 Sling Media, Inc. Systems and methods for securely place shifting media content
JP4666023B2 (ja) * 2008-08-04 2011-04-06 ソニー株式会社 記録システム、記録装置、及び記録制御方法、並びにプログラム
US8634703B1 (en) * 2008-08-12 2014-01-21 Tivo Inc. Real-time DVR usage and reporting system
US8381310B2 (en) 2009-08-13 2013-02-19 Sling Media Pvt. Ltd. Systems, methods, and program applications for selectively restricting the placeshifting of copy protected digital media content
US8667163B2 (en) 2008-09-08 2014-03-04 Sling Media Inc. Systems and methods for projecting images from a computer system
US20100070925A1 (en) * 2008-09-08 2010-03-18 Sling Media Inc. Systems and methods for selecting media content obtained from multple sources
US8233530B2 (en) * 2008-10-28 2012-07-31 International Business Machines Corporation Video scene matching on return from virtual rendering in a consumer digital video recording device
US20100104258A1 (en) * 2008-10-28 2010-04-29 International Business Machines Corporation User-specified event-based remote triggering of a consumer digital video recording device
US10063934B2 (en) 2008-11-25 2018-08-28 Rovi Technologies Corporation Reducing unicast session duration with restart TV
US9191610B2 (en) 2008-11-26 2015-11-17 Sling Media Pvt Ltd. Systems and methods for creating logical media streams for media storage and playback
US20100208830A1 (en) * 2008-12-18 2010-08-19 Headplay (Barbados) Inc. Video Decoder
US8185477B2 (en) * 2008-12-31 2012-05-22 Ericsson Television Inc. Systems and methods for providing a license for media content over a network
US20100169942A1 (en) * 2008-12-31 2010-07-01 Tandberg Television, Inc. Systems, methods, and apparatus for tagging segments of media content
US20100169347A1 (en) * 2008-12-31 2010-07-01 Tandberg Television, Inc. Systems and methods for communicating segments of media content
US8218939B2 (en) * 2009-01-14 2012-07-10 International Business Machines Corporation Intelligent synchronization of portable video devices
US8438602B2 (en) 2009-01-26 2013-05-07 Sling Media Inc. Systems and methods for linking media content
US9245583B2 (en) * 2009-02-06 2016-01-26 International Business Machines Corporation Group control and messaging for digital video playback sessions
US8195035B2 (en) 2009-02-06 2012-06-05 International Business Machines Corporation Link-based DVR scheduling with conflict resolution
US8428421B2 (en) * 2009-02-06 2013-04-23 International Business Machines Corporation Playback of damaged video media using downloaded content
US8391680B2 (en) * 2009-03-20 2013-03-05 International Business Machines Corporation Genre-based video quota management
US8938467B2 (en) 2009-03-25 2015-01-20 Eloy Technology, Llc System and method for intelligent storage of time shifted content
US8171148B2 (en) 2009-04-17 2012-05-01 Sling Media, Inc. Systems and methods for establishing connections between devices communicating over a network
US8290342B2 (en) * 2009-04-23 2012-10-16 International Business Machines Corporation Managing digital video recorder storage for a plurality of users
US20120117632A1 (en) * 2009-04-29 2012-05-10 Eloy Technology, Llc Method and system for authenticating a data stream
US9866609B2 (en) * 2009-06-08 2018-01-09 Time Warner Cable Enterprises Llc Methods and apparatus for premises content distribution
US10045083B2 (en) * 2009-07-13 2018-08-07 The Directv Group, Inc. Satellite seeding of a peer-to-peer content distribution network
US10410222B2 (en) 2009-07-23 2019-09-10 DISH Technologies L.L.C. Messaging service for providing updates for multimedia content of a live event delivered over the internet
US8406431B2 (en) 2009-07-23 2013-03-26 Sling Media Pvt. Ltd. Adaptive gain control for digital audio samples in a media stream
US9479737B2 (en) 2009-08-06 2016-10-25 Echostar Technologies L.L.C. Systems and methods for event programming via a remote media player
US8966101B2 (en) 2009-08-10 2015-02-24 Sling Media Pvt Ltd Systems and methods for updating firmware over a network
US8532472B2 (en) 2009-08-10 2013-09-10 Sling Media Pvt Ltd Methods and apparatus for fast seeking within a media stream buffer
US8799408B2 (en) 2009-08-10 2014-08-05 Sling Media Pvt Ltd Localization systems and methods
US9525838B2 (en) 2009-08-10 2016-12-20 Sling Media Pvt. Ltd. Systems and methods for virtual remote control of streamed media
US20110035466A1 (en) * 2009-08-10 2011-02-10 Sling Media Pvt Ltd Home media aggregator system and method
US9565479B2 (en) 2009-08-10 2017-02-07 Sling Media Pvt Ltd. Methods and apparatus for seeking within a media stream using scene detection
US9160974B2 (en) 2009-08-26 2015-10-13 Sling Media, Inc. Systems and methods for transcoding and place shifting media content
US8314893B2 (en) 2009-08-28 2012-11-20 Sling Media Pvt. Ltd. Remote control and method for automatically adjusting the volume output of an audio device
US8621099B2 (en) * 2009-09-21 2013-12-31 Sling Media, Inc. Systems and methods for formatting media content for distribution
US9015225B2 (en) 2009-11-16 2015-04-21 Echostar Technologies L.L.C. Systems and methods for delivering messages over a network
US8831399B2 (en) * 2009-12-07 2014-09-09 Eldon Technology Limited Systems and methods for managing and identifying the origin of files on a digital video recorder
US8799485B2 (en) 2009-12-18 2014-08-05 Sling Media, Inc. Methods and apparatus for establishing network connections using an inter-mediating device
US8626879B2 (en) 2009-12-22 2014-01-07 Sling Media, Inc. Systems and methods for establishing network connections using local mediation services
US9178923B2 (en) 2009-12-23 2015-11-03 Echostar Technologies L.L.C. Systems and methods for remotely controlling a media server via a network
US9275054B2 (en) 2009-12-28 2016-03-01 Sling Media, Inc. Systems and methods for searching media content
US8856349B2 (en) 2010-02-05 2014-10-07 Sling Media Inc. Connection priority services for data communication between two devices
US8655966B1 (en) 2010-03-31 2014-02-18 Emc Corporation Mobile device data protection
US8694597B1 (en) 2010-03-31 2014-04-08 Emc Corporation Mobile device group-based data sharing
US9152650B1 (en) * 2010-03-31 2015-10-06 Emc Corporation Mobile device data recovery
US9514089B1 (en) 2010-03-31 2016-12-06 EMC IP Holding Company LLC Mobile device network data synchronization
US8694744B1 (en) 2010-03-31 2014-04-08 Emc Corporation Mobile device snapshot backup
US8683005B1 (en) 2010-03-31 2014-03-25 Emc Corporation Cache-based mobile device network resource optimization
US20110302611A1 (en) * 2010-06-07 2011-12-08 Mark Kenneth Eyer Scripted Interactivity for Non-Real-Time Services
KR101923687B1 (ko) * 2011-01-13 2018-11-30 엘지전자 주식회사 메모리 관리 방법 및 이를 위한 영상 표시 기기
US8272024B2 (en) 2010-12-31 2012-09-18 General Instrument Corporation Distributed recording of content
WO2013085920A2 (en) 2011-12-06 2013-06-13 DISH Digital L.L.C. Remote storage digital video recorder and related operating methods
US9049484B2 (en) 2011-12-06 2015-06-02 Echostar Technologies L.L.C. Efficient assignment of program copies in a network digital video recorder
US8805418B2 (en) 2011-12-23 2014-08-12 United Video Properties, Inc. Methods and systems for performing actions based on location-based rules
JP5422640B2 (ja) * 2011-12-28 2014-02-19 京セラドキュメントソリューションズ株式会社 画像読取装置
US8949923B2 (en) * 2012-02-21 2015-02-03 Time Warner Cable Enterprises Llc Remote media streaming
WO2014106206A1 (en) 2012-12-28 2014-07-03 DISH Digital L.L.C. Adaptive multicast delivery of media streams
US10051025B2 (en) 2012-12-31 2018-08-14 DISH Technologies L.L.C. Method and apparatus for estimating packet loss
US10104141B2 (en) 2012-12-31 2018-10-16 DISH Technologies L.L.C. Methods and apparatus for proactive multi-path routing
US10708319B2 (en) 2012-12-31 2020-07-07 Dish Technologies Llc Methods and apparatus for providing social viewing of media content
KR102050420B1 (ko) * 2013-06-20 2020-01-08 한화테크윈 주식회사 영상신호 저장 방법
US11099839B2 (en) * 2014-08-06 2021-08-24 International Business Machines Corporation Adaptation of a web application for use by a mobile device
US10862747B2 (en) * 2015-03-25 2020-12-08 Airwatch Llc Single user device staging
CA3010043C (en) 2015-12-29 2020-10-20 DISH Technologies L.L.C. Dynamic content delivery routing and related methods and systems
JP6660785B2 (ja) * 2016-03-24 2020-03-11 Run.Edge株式会社 表示制御プログラム、方法、及び表示制御装置
US10687115B2 (en) 2016-06-01 2020-06-16 Time Warner Cable Enterprises Llc Cloud-based digital content recorder apparatus and methods
FR3053557B1 (fr) * 2016-07-01 2018-07-06 Sagemcom Broadband Sas Procede de stockage d'un contenu multimedia, procede de lecture associe et procede de gestion d'un espace de stockage contenant un tel contenu
US10939142B2 (en) 2018-02-27 2021-03-02 Charter Communications Operating, Llc Apparatus and methods for content storage, distribution and security within a content distribution network
US10945033B2 (en) * 2018-03-14 2021-03-09 Idomoo Ltd. System and method to generate a customized, parameter-based video
US10904637B2 (en) * 2018-12-17 2021-01-26 Qualcomm Incorporated Embedded rendering engine for media data
US20220317898A1 (en) * 2021-04-03 2022-10-06 EMC IP Holding Company LLC Managing Application Storage Resource Allocations Based on Application Specific Storage Policies

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5047867A (en) 1989-06-08 1991-09-10 North American Philips Corporation Interface for a TV-VCR system
US6678462B1 (en) * 1997-03-25 2004-01-13 Sony Corporation Electronic device, method and apparatus for controlling an electronic device, and electronic device control system
GB2325537B8 (en) 1997-03-31 2000-01-31 Microsoft Corp Query-based electronic program guide
KR100265113B1 (ko) 1997-08-06 2000-09-01 윤종용 방송프로그램녹화방법
JP4531871B2 (ja) 1997-10-30 2010-08-25 富士通セミコンダクター株式会社 画像情報処理装置及び符号装置
JPH11355707A (ja) 1998-06-10 1999-12-24 Toshiba Corp タイマー予約装置
US6411770B1 (en) 1998-07-02 2002-06-25 Sony Corporation Data recording method and apparatus
US6260049B1 (en) 1998-11-10 2001-07-10 Electronic Paper Solutions, Inc. Automated shelf management system and process for tracking and purging file folders in a file storage facility
US7143430B1 (en) 1999-11-15 2006-11-28 Lucent Technologies Inc. Method and apparatus for remote audiovisual signal recording service
JP5148797B2 (ja) 2000-02-08 2013-02-20 ソニー株式会社 映像データ記録装置および映像データ記録方法
US6658663B1 (en) * 2000-03-08 2003-12-02 Koninklijke Philips Electronics N.V. Business model for leasing storage on a digital recorder
EP1410231A4 (en) 2000-04-03 2005-02-23 Juergen Stark METHOD AND SYSTEM FOR ELECTRONIC MESSAGING WITH CONTENT CONTROL
US6782550B1 (en) 2000-06-16 2004-08-24 Minerva Networks, Inc. Program guide with a current-time bar
JP4049525B2 (ja) 2000-08-16 2008-02-20 富士通株式会社 分散処理システム
JP3416634B2 (ja) 2000-09-21 2003-06-16 住友ゴム工業株式会社 ダイナミックダンパー
EP2262262A1 (en) * 2000-10-11 2010-12-15 United Video Properties, Inc. System and methods for providing storage of data on servers in an on-demand media delivery system
US6606287B2 (en) 2000-11-29 2003-08-12 Vengo, Inc. Method and apparatus for compression rate selection
US7088910B2 (en) 2001-02-09 2006-08-08 Microsoft Corporation Optimizing use of storage space in a video data recording system
KR101775064B1 (ko) * 2001-02-21 2017-09-06 로비 가이드스, 인크. 개인용 비디오 녹화 특징을 갖는 대화식 프로그램 가이드를 위한 시스템 및 방법
US7065778B1 (en) * 2001-05-25 2006-06-20 Enreach Technologies, Inc. Method and system for providing media from remote locations to a viewer
JP2003021800A (ja) 2001-07-10 2003-01-24 Canon Inc 投射型表示装置
US8565578B2 (en) 2001-12-06 2013-10-22 Harold J. Plourde, Jr. Dividing and managing time-shift buffering into program specific segments based on defined durations
US7269338B2 (en) 2001-12-11 2007-09-11 Koninklijke Philips Electronics N.V. Apparatus and method for synchronizing presentation from bit streams based on their content
US7209633B1 (en) 2002-01-23 2007-04-24 Melodeo, Inc. System and methods for logical memory devices in a digital media player
US7206500B1 (en) 2002-01-23 2007-04-17 Melodeo, Inc. System and methods for recording broadcast programs, converting the programs and managing the storage in a digital media playback device
US6909384B2 (en) 2002-01-31 2005-06-21 Microsoft Corporation Generating and searching compressed data
US7221857B2 (en) 2002-01-31 2007-05-22 Sony Corporation System and method for efficiently performing a storage management procedure
US20030154485A1 (en) * 2002-02-12 2003-08-14 Johnson Carolynn Rae Allocation of recording space per user and application
JP4180291B2 (ja) * 2002-03-27 2008-11-12 株式会社日立製作所 記憶装置システムの制御方法および記憶装置、管理装置、およびプログラム
US7805613B2 (en) 2002-06-14 2010-09-28 Time Warner Cable, Inc. Technique for recording entertainment programming content with limited memory capacity
US7295753B2 (en) * 2002-06-25 2007-11-13 International Business Machines Corporation Personal video recording with further compression of recorded shows
US7433582B2 (en) 2002-06-25 2008-10-07 International Business Machines Corporation Personal video recording with machine learning for messaging
US8417781B2 (en) 2002-06-25 2013-04-09 International Business Machines Corporation Personal video recording with messaging
US8867904B2 (en) * 2002-06-25 2014-10-21 Google Inc. Personal video recording with apportioned loans of storage space
US7529471B2 (en) * 2002-06-25 2009-05-05 International Business Machines Corporation Personal video recording with storage space loans
US7532809B2 (en) * 2002-06-25 2009-05-12 International Business Machines Corporation Personal video recording with pools and groups
US7366398B2 (en) * 2002-06-25 2008-04-29 International Business Machines Corporation Personal video recording with storage space requirement checking
US7248776B2 (en) * 2002-06-25 2007-07-24 International Business Machines Corporation Personal video recording with recovery of displayed storage space
US20040101272A1 (en) 2002-11-21 2004-05-27 International Business Machines Corporation Personal video recording with storage space providers
US7474832B2 (en) 2002-11-21 2009-01-06 International Business Machines Corporation Personal video recording with storage space distributed among remote personal video recorders
US7856477B2 (en) 2003-04-04 2010-12-21 Yahoo! Inc. Method and system for image verification to prevent messaging abuse
US7614069B2 (en) * 2003-12-01 2009-11-03 General Instrument Corporation Multi-device distributed digital video recording systems and methods
US7418342B1 (en) 2007-12-03 2008-08-26 International Business Machines Corporation Autonomous destination determination
US7487017B1 (en) 2008-03-31 2009-02-03 International Business Machines Corporation Systems and methods for generating pattern keys for use in navigation systems to predict user destinations

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101189865B (zh) * 2005-03-30 2010-09-29 诺基亚西门子通信有限责任两合公司 用于存储和再现tv节目的方法和装置
CN101427565B (zh) * 2006-04-20 2011-08-03 三星电子株式会社 控制运动图像的分散记录和播放的设备和方法
CN101753936B (zh) * 2008-12-08 2013-07-24 北京中星微电子有限公司 一种视频监控系统的存储空间的配置方法和视频服务器
CN111757160A (zh) * 2020-06-19 2020-10-09 海信视像科技股份有限公司 一种启动体育模式的方法及显示设备

Also Published As

Publication number Publication date
US8818162B2 (en) 2014-08-26
US8396352B2 (en) 2013-03-12
US20040101271A1 (en) 2004-05-27
US7474832B2 (en) 2009-01-06
US20080013919A1 (en) 2008-01-17
TW200425738A (en) 2004-11-16
TWI242375B (en) 2005-10-21
US20090074380A1 (en) 2009-03-19

Similar Documents

Publication Publication Date Title
CN1503557A (zh) 自动个人视频记录方法和系统
CN100348023C (zh) 数据处理设备
CN100350798C (zh) 具有个人视频记录特征的交互式节目导视器的系统和方法
CN1192610C (zh) 记录/回放装置、记录/回放方法和记录媒体
CN1135488C (zh) 图像处理设备,图像处理方法
CN1245836C (zh) 传输和处理被保护的内容
CN100341328C (zh) 媒体播发装置及媒体播发方法
CN1238790C (zh) 接收并存储广播内容、响应用户请求使内容成为可利用状态的接收终端装置
CN1262955C (zh) 通信设备及方法,电子装置及控制方法
CN1685716A (zh) 网络控制确认的系统和方法、控制通信终端、服务器装置
CN1783140A (zh) 信息内容发送设备
CN1777950A (zh) 再现装置,程序,集成电路
CN1326638A (zh) 具有可配置功能的电视机顶盒
CN1833437A (zh) 节目推荐装置
CN1767610A (zh) 信息处理装置,信息处理方法及其程序
CN1433546A (zh) 数据适合化装置、数据适合化方法、存储媒体及程序
CN1788259A (zh) 内容提供服务器、信息处理设备和方法以及计算机程序
CN1728792A (zh) 信息处理设备、信息处理方法及其程序
CN1476722A (zh) 信息处理装置
CN1507238A (zh) 信息处理设备
CN1892872A (zh) 再现设备、再现方法和再现程序
CN1957343A (zh) 内容获取方法、内容获取设备和内容获取程序
CN1698038A (zh) 信息处理系统、信息处理装置及方法与程序
CN1976427A (zh) 信息处理装置、信息处理方法以及程序
CN1271862C (zh) 动画图象编码方法和动画图象译码方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication