用于在交互电视应用中滚动编码 MPEG静止画面的编码系统和方法 【发明背景】
【发明领域】
本发明涉及交互视频发送媒体,如交互电视,更具体地说,涉及交互电视应用中产生和滚动画面的系统和方法。相关技术描述
交互电视是一种交互式音频/视频发送媒体,它向大量订户提供广播视听内容。交互电视向用户提供广播视频和音频,还提供返回路径供用户与该内容交互作用,例如选择或订购所希望的产品等。为了以最大带宽效率提供内容,交互电视系统可以以音频/视频或图像压缩技术来压缩其内容。于是,在订户位置的系统必须能解压,以供本地显示或重放。
因特网是多个互联网络的全世界范围的集合。在过去若干年内,因特网以指数速率增长。这些互联网络共享的主要属性是使用传输控制协议/因特网协议(TCP/IP)通信协议。使用若干不同的协议使在因特网上的信息可被人得到。其中有只是文本的分级Gopher协议和用于超文本多媒体万维网(WWW或Web)的超文本传输协议(HTTP)。
在许多应用中希望在交互电视系统上显示静止画面或图像。实例包括交互电视应用中的广告画面、电子节目指南或其他内容的显示。另一实例是交互电视系统用于因特网活动,例如万维网浏览。使用能上因特网的电视系统进行万维网浏览一般常称作万维网电视(webTV)。通过交互电视系统传输和显示静止图像或画面,如因特网文件,受到的阻碍是需要把要传送给订户的大尺寸和量大的文件压缩。由于考虑到可能希望提供有不同独特尺寸的静止图像或画面,而使压缩复杂化。所以,需要能以这样一种方式来压缩因特网文件,使它们能被以一种标准方式解码。
再有,在许多情况中希望向电视系统提供的静止图像或画面大于电视机显示尺寸。例如,因特网的万维网页面通常大于计算机显示器的显示屏。这样,为了在交互电视环境中提供或仿真万维网浏览能力,就必须或希望能向电视提供大于电视机显示区的静止画面。由于许多压缩标准需要标准地固定的图像尺寸以供压缩和解压之用,从而使这一问题复杂化了。当提供给电视的画面大于电视机显示尺寸时,就必须向用户提供向下滚动和/或穿过显示屏的能力,这很象用户能在计算机屏幕上滚动一幅图像那样。然而,由于向电视发送静止画面时所用的视频压缩,使得交互电视应用中向用户提供滚动图像能力变得复杂了。所以,希望有一种系统和方法,它使用户能在交互电视应用中滚动画面。MPEG背景
介绍MPEG压缩的背景认为是适当的。在交互电视环境中使用的公用压缩技术称作MPEG(活动画面专家组)。MPEG压缩是一组全运动视频图像的压缩和解压方法,它使用帧间和帧内压缩技术。除了其他之外,MPEG压缩使用运动补偿和离散余弦变换(DCT)处理,并能产生大于200∶1的压缩比。
两个占主要地位的MPEG标准称作MPEG-1和MPEG-2。MPEG-1标准通常关心使用基于块的运动补偿预测(MCP)来减少场(field)间数据,它通常使用时间差分脉冲编码调制(DPCM)。MPEG-2标准小于MPEG-1标准,但包括复盖更广泛应用的扩展,包括隔行扫描(interlaced)数字视频,如高清晰度电视(HDTV)。
一个MPEG流包括三类画面,称作内(I)帧、预测(P)帧和双向内插(B)帧。I帧或内帧含有整个视频帧的视频数据,通常每10到15帧放一个。内帧提供进入文件进行随机访问的入口点,而且通常只被中度压缩。预测帧是参考上一帧(即前一个内帧或预测帧)进行编码的。这样,P帧只包括相对于前一个I帧或P帧的变化。一般而言,预测帧受到相当大量的压缩,并用作未来预测帧的参考。这样,I帧和P帧二者都用作为其后帧的参考。双向画面包括最大压缩量,为了能被编码,需要一个过去的和一个未来的参考。双向帧从不被用作其他帧的参考。
MPEG编码器把各帧分成16×16象素方块网格,这些块称作宏块(macroblock)。把各帧分成宏块是为了实现运动估计/补偿。每个画面包含多个切片(slice)。MPEG标准把一个切片定义为在同一行宏块上开始和结束的2个或更多个宏块(16×16象素块)的连续序列。一个切片以一头段开始,头段中包括一个切片起始代码和指出该切片在画面中的水平和垂直开始位置的信息。再有,在MPEG标准中是对总画面的每个部分都提供头段信息。每个宏块、切片、帧等都有其自己的头段,包含关于该具体画面部分以及它在总画面的上一个较大部分中所处位置的信息。发明概要
本发明包含一个系统和方法,用于在诸如交互电视系统之类视频系统中滚动一个大于MPEG编码画面允许尺寸的画面。在最佳实施例中,交互电视系统包含一个视频发送系统用于提供内容,以及至少一个包括显示屏的订户电视,其中该订户电视与视频发送系统相连。
根据本发明,视频发送系统提供或广播被压缩画面。这压缩的画面大于,即宽于和/或长于标准MPEG画面。该压缩画面包含多个切片,这里这多个切片以一种切片结构进行压缩以利于滚动,而且这里的多个切片包括一个或多个被独立压缩的切片。切片以预先确定的切片结构编码,而且最好是独立地被压缩以使能根据本发明进行滚动。订户电视接收该压缩画面或压缩画面的一部分。订户电视初始时显示压缩画面的系统设定(default)部分,这里系统设定部分的尺寸适合于电视的显示区大小和/或是标准MPEG尺寸。
当使用者希望滚动屏面上的图像时,使用者向该订户电视提供滚动输入。订户电视响应收到的滚动输入,提供适当的切片,这些切片向解码器提供该画面的新的所希望的部分。然后解码器对那些切片解码供在订户电视的显示屏上观看。这样,使用者选择所希望的要观看的画面部分,而订户电视进行操作以向解码器发送适当的切片,这些切片构成所希望的要观看的画面部分。以这种方式,使用者滚过画面的不同部分。还有,订户电视只向解码器提供与电视显示区和/或标准MPEG大小相对应的那些切片,然后解码器只接收和解码那个尺寸的画面。
在一个实施例中,视频发送系统开始时只向订户电视提供相应于标准MPEG尺寸的MPEG画面部分。这样,当订户电视从使用者那里收到滚动输入时,订户电视从视频发送系统请求额外的切片。这样便减少了订户电视解码器或机顶盒所需的存储器容量。在另一实施例中,视频发送系统开始时向订户电视提供与整个画面对应的全部切片。在这一实施例中,订户电视根据使用者的滚动输入,有选择地向解码器提供与标准尺寸MPEG画面相对应的切片。
在一个实施例中,视频发送系统最好还提供一个表,指出包含该压缩画面的每个切片的起始点。订户电视接收该表,并对每个切片使用该表给出的位置向解码器提供使用者所需切片。
本发明还包括创建和编码一个大于标准观看尺寸的压缩画面的系统和方法,以及创建相应的切片起始点表的方法。如前面指出的那样,压缩画面是以适当的切片结构创建的,使能在电视显示屏上滚动画面时以压缩切片代替压缩画面中的其他切片。
附图简述
当结合附图考虑下文中对最佳实施例的详细描述时便能得到对本发明的更好理解,这些附图中:
图1显示一个交互电视系统;
图2显示图1的交互电视系统,它包括一个提供节目内容的远程网络;
图3是图1和图2的交互解码器的框图;
图3A是图3的交互解码器的另一种实施例;
图4A显示一种根据本发明的切片结构,它允许进行垂直滚动;
图4B显示根据本发明的一种包括一个或多个切片列的切片结构,它允许进行水平滚动;
图4C显示根据本发明的一种类似于图4B的切片结构,它包括一个或多个切片列,这里垂直滚动和水平滚动二者都是可能的。图4C显示了该画面的不同水平滚动部分;
图5是流程图,说明用一种预先确定的切片结构创建压缩文件或画面;
图6是流程图,说明根据本发明的图5的编码步骤;
图7是流程图,说明根据本发明以减少了存储器容量需求的订户电视观看一压缩画面的过程;
图8是流程图,说明根据本发明以减少了存储器容量需求的订户电视在一压缩画面中进行滚动的过程;
图9是流程图,说明根据本发明的图7和图10中的显示例程(routine);
图10是流程图,说明根据本发明以具有足够存储器存储整个可滚动画面的订户电视观看一压缩画面的过程;
图11是流程图,说明根据本发明以具有足够存储器存储整个可滚动画面的订户电视在一压缩画面中进行滚动的过程。
实施例详述
本发明包含一个系统和方法,用于在一个视频发送系统中滚动一个大于MPEG画面允许尺寸的画面。本发明还允许滚动一个大于屏面观看区的画面,例如电视屏或计算机屏。在最佳实施例中,该系统和方法包含在一个交互电视系统中。然而,应该指出,本发明可以被包括在任何各类视频系统中,包括标准电视、交互电视、因特网、以及其他类型的视频或图形发送媒体。这里使用的术语“视频(video)”拟包括静止图像、图形以及实况活动或运动视频。交互视频电视
现在参考图1,图中显示了根据本发明的一个实施例的交互电视系统的框图。应该指出,图1只作为一个例示,可以根据愿望使用其他交互电视系统实施例。
如图所示,该交互电视系统利用广播中心100产生视听内容,包括交互视听内容。广播中心100包括音频/视频源102用于提供视听内容。视听内容可以包含电影、体育运动、新闻、sitcom或其他视听节目,如通常在电视上看到的那些。视听内容最好还包含静止画面,它们可用于各种目的。这些静止画面最好包括来自万维网的页面。视听内容可能包括背景画面或图像,以及设计成要重叠在背景画面上的插入画面或重叠。万维网页面、背景画面及插入画面可以象希望的那样包含静止图像或运动视频的一部分。根据本发明,视听内容包括大于标准MPEG尺寸的MPEG编码图像。
音频/视频源102可以包括视频压缩逻辑用于把静止视频图像压缩成压缩的静止视频图像。如图2中所示,视听内容还可象希望的那样由远程网络170或实况馈送(live feed)来提供。
广播中心100还包括一个应用服务器104用于创建和/或产生交互应用内容。交互应用内容包含应用代码和数据,它被设计成由机顶盒或电视中的处理器执行,以支持交互电视特性。应用服务器104最好配置成能产生或提供“开放电视(openTV)交互应用。应用服务器还可以象希望的那样提供“Java”小应用或其他交互程序内容。
编码器/多路组合器106把交互应用内容与视听内容结合,以产生一个音频-视频-交互(AVI)信号。编码器/多路组合器106还使交互应用内容与视听内容同步,以保证交互应用内容插入到视听内容中的适当位置。应该指出,某些信道可以包含非交互节目内容。换句话说,某些视听内容可以不带有相应的交互内容。编码器/多路组合器106最好使多个信号,包括AVI信号和可选的非交互信号,组合起来供传输。
广播中心100还包括上行链路卫星108用于传送广播信号供终端用户或后续分配链路接收。应该指出,图1所示卫星网络实例中使用卫星传送广播信号。然而,应该指出,也可以使用其他传输方法,包括通过同轴电缆进行有线分配,光纤传输,微波传输或其他手段。
广播信号是经由卫星下行链路120从广播中心100收到的。然后广播信号被提供给多个订户。如前文指出的那样,广播信号包括各自信道上的一个或多个AVI信号,还可能包括一个或多个非交互节目信号。
如图所示,每个终端用户或订户最好包括一个机顶盒或交互解码器140以及电视机150。机顶盒或交互解码器140与电视机150相连。应该指出,交互解码器逻辑可以包含在电视机中而不是包含在单独单元140中。再有,电视可包含带有显示屏的通用可编程计算机或其他显示装置,如所希望的那样。
在本说明中,术语“订户电视”是要包括电视机150或其他观看装置,如计算机、LCD(液晶显示)屏等,还可以包括相关的解码器逻辑用于解码被压缩的视频和/或执行交互程序。例如,在一个实施例中,订户电视包含电视机150与交互解码器或机顶盒140相连。
电视机150包括一个遥控器152,它有助于使用者与电视机150和/或交互解码器140的交互作用。使用者能选择所希望的电视频道供观看或提供各种交互选择。根据使用本发明,一旦已经选择了一个画面,如果该画面的尺寸大于标准的MPEG尺寸,则使用者可以使用遥控器152按其愿望在该画面内垂直和/或水平滚动。在选定电视频道上的信号由交互解码器140解码,交互解码器140向电视机150提供输出。交互解码器140最好执行实时操作系统,如来自ThomsonElectronics的OpenTV(开放电视)。当被观看的频道包含AVI信号时,交互解码器140还执行这个选定的AVI信号中携带的交互应用程序,使能表现出交互电视特性。
返回信道156使交互解码器140与一事务服务器160互连,它监视使用者的某些选择并作出相应的响应,如所希望的那样。返回信道156最好利用标准的POTS(普通老式电话系统)电话线和相关的调制解调器(未画出)进行通信。如所希望的那样,可使用其他返回信道选择,如同轴电缆、光纤电缆、DSL(数字订户线)、ATM(异步传输方式)或其他信道。
广播中心100提供多个节目信道,每个包含视听内容。一个或多个信道包含AVI信号,其中包括视听内容和相关的交互应用。在广播中心100的编码器可操作以传输压缩画面,包括大于标准MPEG尺寸的压缩画面。编码器106以滚动画面所必要的切片结构对有非标准尺寸或大于MPEG尺寸的画面进行编码。编码器106还可操作以传送辅助滚动的切片分布图。
所以,在该最佳实施例中,至少一个AVI信号子集包括大于标准MPEG尺寸的画面。这些AVI信号最好包括可执行的交互应用,供滚动大于MPEG标准的那些压缩画面。压缩画面可以是长度或宽度或两者都大于标准MPEG尺寸。这样,交互应用根据使用者的滚动输入进行操作,以显示画面的选定部分。
进行操作使使用者能滚动相应画面的逻辑和/或软件还可以永久性驻留在机顶盒140上,以代替作为交互小应用被传送。图3-交互解码器
现在参考图3,图中显示的框图说明机顶盒或交互解码器140。如图所示,交互解码器140包括一个输入端,用于接收信道上的广播信号。该广播信号最好包含多个信道,这些信道包含电影、体育运动、电视演出、新闻、广告等节目内容。至少一个子集,即一个或多个节目信道包含AVI(音频视频交互)信号,它包含如上述的视听分量和交互节目分量。视听分量最好是被压缩的,最好是按MPEG压缩的。如前文指出的那样,广播信号,最好是交互节目内容,可以包括一个或多个其长度或宽度或二者都大于MPEG标准的压缩画面。广播信号最好还包括这些画面的相关切片分布图信息。
广播信道信号提供给交互解码器140中的多路分离器302。多路分离器302的操作使音频/视频分量与交互分量分离。在本发明的这个最佳实施例中,交互分量包含一个交互应用和/或数据,它依从于Thomson Electronics颁布的OpenTV标准。然而,应该指出,可以按希望的那样,在AVI信号中包括其他类型的交互应用。
多路分离器302向音频/视频解码块304提供音频/视频分量。解码块304进行操作对压缩视听数据流解码,以产生解压的数据。在该最佳实施例中,广播信道传送MPEG-2压缩数据。这样,在该最佳实施例中,解码处理块304最好包括一个MPEG-2解码器用于对编码数据进行解压或解码。解码器304最好包括一个或多个DSP和一个或多个相关联的存储器。应该指出,解码器可以包含各种类型的逻辑,包括一个或多个DSP、CPU、或微控制器、分立逻辑或者它们的组合。
解码处理块304提供音频/视频输出,它最好是提供给电视150供显示。当解码处理块304从存储器接收压缩切片时,解码块304对切片解压并把解压的切片提供给显示单元。
交互解码器140包括存储器316,最好是只读存储器(ROM),它存储交互应用操作系统。该操作系统最好是来自Thomson Electronics的OpenTV。CPU314与ROM316相连。
由多道分离器302的输出端提供的交互节目分量被提供给存储器312,最好是一个随机存取存储器(RAM),它存储交互应用,即OpenTV应用。CPU314与交互应用RAM312相连。这样,来自AVI信号的交互应用被存储在RAM312,而CPU314能从RAM312中读出该应用并执行该应用。
这样,CPU314从ROM316中读出OpenTV操作系统,从而由操作系统控制CPU314的操作。CPU314还从RAM312中读出由AVI信号提供的交互应用,并在ROM316中存储的OpenTV操作系统控制下执行这一交互应用。
在图3的实施例中,其长度或宽度或二者大于MPEG标准的压缩画面被包含在交互应用中。这样,在这一实施例中,其长度或宽度或二者大于MPEG标准的压缩画面被作为交互应用的部分而不是作为视听分量的部分而包括进来。在这一实施例中,压缩画面由多路分离器302接收并暂时存储在RAM312中。在各种实施例中,如下文中要进一步描述的那样,一个压缩的非标准MPEG尺寸的画面,或者是一部分或者是其全部,被存储在RAM312中。
简要参考图3A,在另一实施例中,大于标准MPEG尺寸的压缩画面的各部分被包含在信号的音频/视频部分中。在这一实施例中,音频/视频解码块包括一个画面缓存器303,其大小至少相应于一个标准MPEG尺寸。画面缓存器303接收和存储压缩画面的部分,并向解码器304有选择地提供切片,这在下文中要进一步讨论。
交互分量最好还包括至少一个切片分布图,以协助滚动大于MPEG标准的压缩画面。换言之,视频发送系统最好与任何非标准MPEG尺寸的压缩画面一起提供切片分布图,以帮助滚动压缩画面。
如图所示,RAM312包括一个与解码器304相连的输出端。CPU314控制来自RAM312的输出,以向解码器304提供MPEG切片。更具体地说,根据本发明,CPU314指示RAM312向解码器304提供来自压缩画面的切片,以完成滚动大于MPEG标准尺寸的压缩画面。CPU314最好执行交互应用和使用存储在RAM312中的任何切片分布图,以适当的滚动向解码器提供切片供滚动之用。
如下文中要进一步讨论的那样,根据本发明滚动大于MPEG标准尺寸的压缩画面包含以新的切片代替当前被显示的画面部分的一个或多个切片,从而显示出希望看到的新的画面部分。更具体地说,从压缩画面的第一个看到部分滚动到第二个看到部分包含由CPU314指示RAM312提供压缩画面的新切片以供解码,这些新切片是第二个看到部分的一部分,用以代替第一个看到部分中那些不再被显示的切片。
在一个实施例中,CPU314向一个图形屏上显示块322提供输出。图形屏上显示块被连接成使所提供的输出与解码器304提供的音频/视频输出结合。图形屏上显示块322以一种格式组织数据,使其能重叠在解码器304的音频/视频输出的上面。这样,CPU314执行一个交互应用并产生屏上图形,这些图形与解码器140输出的音频/视频流一起提供。这样,例如,如果所写成的交互应用能使一个或多个图像或其选定部分显示或重叠在电视节目或静止图像上面,则执行该应用的CPU314向图形屏上显示块322提供适当的输出,而块322使相应的图像或选定部分重叠在解码器304的音频/视频输出上和/或与这音频/视频输出一起显示。
交互解码器140还包括一个输入端用于接收使用者的输入。这个使用者的输入被提供给CPU314的输入。这个使用者的输入可以由各种装置提供,最好由遥控器152或由TV150上的按钮或由交互解码器140提供。提供给CPU314的使用者输入使使用者能与交互应用相互作用。例如,使用者或观看者可以选一种选择或按钮以预订产品或预订信息,向电视游戏表演提供回答等。作为另一实例,根据本发明,使用者还提供滚动输入,以便以垂直和/或水平方式滚动那些其长度或宽度或二者都大于MPEG标准尺寸的压缩画面。
交互解码器140还包括一个调制解调器324,它在反向信道上为使用者的交互活动提供信息。如图3中所示,CPU314与调制解调器324相连,调制解调器与交互解码器140的反回信道输出端相连。在图3所示实施例中,调制解调器324可用于双向通信。如图1所示,反向信道156最好与事务服务器160相连。这样,如果使用者选择预订信息或购买产品的选项,则事务服务器接收这一订单并处理该订单以便完成预订。再有,如果使用者回答游戏表演中的问题,则在反向信道156上将回答提供给事务服务器160。图3A-交互解码器的另一实施例
现在参考图3A,如前文指出的那样,在这另一个实施例中,大于MPEG标准尺寸的压缩画面是包含在位流的视听内容部分中的。在本实施例中,机顶盒或交互解码器140包括一个画面缓存器或存储器303连在多路分离器302和解码器304之间。画面缓存器303也可按希望的那样包含在解码器304中。根据本发明,画面缓存器303可进行操作以存储一个压缩画面的若干部分或压缩画面的全部,从而有助于向解码器304提供切片以完成滚动其大小大于MPEG标准尺寸的压缩画面。换言之,该画面缓存器有助于提供来自想要观看的压缩画面第二部分的新切片,用以代替压缩画面第一部分中的切片,从而完成滚动。
在这一实施例中,缓存器303和RAM312可以任选地交换信息,如图中所示。这使缓存器303能向RAM312传送切片和从RAM312传送切片,如果希望进行存储或背景处理的话。换言之,如果缓存器303从多路分离器302收到的输入多于缓存器303能存储的量,即这个非标准MPEG画面大于画面缓存器303,则缓存器303可以把切片或其他数据传送到RAM312供存储和其后提取。另一种作法是如下文将进一步讨论的那样,画面缓存器303只存储压缩画面的一部分,而解码器140根据所收到的滚动输入,从视频显示系统请求补充的切片。
在这一实施例中,如图中所示,CPU314还向缓存器303提供输出。CPU314使用这一输出控制向缓存器303提供MPEG切片和从中取出MPEG切片,向RAM312提供MPEG切片和从中取出,以及向解码器304提供MPEG切片和从中取出。换言之,在图3A中,CPU314控制缓存器303的输入和输出,以完成滚动大于MPEG标准尺寸的画面,其方式与图3中的CPU314控制RAM312以向解码器304提供切片以完成滚动的方式十分相同。更具体地说,在图3A中,滚动大于MPEG标准尺寸的压缩画面包含由CPU314指示缓存器303和/或RAM312响应所收到的滚动输入,以提供含有压缩画面中要观看的下一个所希望部分的适当切片供解码。对大于标准MPEG尺寸的压缩画面编码
如在背景部分中讨论的那样,MPEG-2视频位流通常包含I(内编码的画面、P(预测编码的)画面以及B(双向内插的)画面的某种组合。每个大于MPEG标准尺寸的压缩画面都包含多个切片。MPEG-2把切片定义为在(宏块的)同一行上开始和结束的2个或更多个宏块(16×16象素块)的连续序列。在本最佳实施例中,只有I画面被用于编码大于MPEG标准尺寸的压缩画面。P和B画面最好不用于编码大于MPEG标准尺寸的压缩画面,这是由于以适当的切片结构创建这些画面所存在的固有困难所致。画面的头段,以及可能的来自画面各部分的其他头段都被切掉并放在存储器中。最好放置一个指针指向切片(和/或宏块,如所希望的那样)中所在的头段,以用于要显示的画面部分的定位。
为使能进行垂直滚动,最简单的情况是把各宏块的每行编码成一个切片。对于一个具有MPEG标准宽度但其长度大于标准MPEG的画面,这样编码的画面将类似于图4A。在这一例中,宏块的每行被编码成一个切片。在画面底部和顶部的一个或多个切片最好独立地压缩,意思是一个切片被这样编码,使它能在解码时无需参考其他相邻切片中的宏块。对切片的这种独立编码使能进行滚动,因为一个切片能被解码和显示而无需对不被显示的相邻切片进行解码。应该指出,一个画面能被编码而没有任何切片被独立地压缩。然而,这可能需要把不被显示的切片解码。在画面中总是被一起显示的多个切片也可以在一起压缩,即不独立的压缩,如果希望这样做的话。
下面的图4A的例子假定使用者能向下滚动单个的切片,每次一个,还假定开始时所显示的画面部分处在该画面的最顶部,而且使用者已经向下滚动了4次或4个切片。在图4A中,当前观看部分由实线指定。当前观看部分是从画面顶部向下滚动了4个切片的结果。紧挨着当前观看部分的前一个观看部分称作先前观看部分,并用均一的宽虚线圈定。紧挨着先前观看部分的更前一个观看部分称作第二先前观看部分并由宽窄交替虚线圈定。包含该画面最左上部分的第一观看部分及其后的第二观看部分没有画出。
对于具有MPEG标准长度但其宽度大于标准MPEG的画面,这种编码画面将类似于图4B。在这个例子中,每行宏块被编码成多个切片。在左侧和右侧的头几个切片只包含作为最小值的两个宏块,而在画面中部的切片可以包含多于2个宏块。在左侧和右侧的切片被做成足够小和被独立压缩,从而总能得到压缩画面的MPEG标准尺寸部分。换言之,如果压缩画面比MPEG标准宽例如16个宏块,则在这个例子中在画面的左右两侧各有至少4个包含2个宏块的最小尺寸切片,以及在中部的一组可能较大的切片,以允许从左到右和从右到左完全穿过压缩画面的滚动。在图4B中,由实线指定当前观看部分。当前观看部分是已从先前观看部分向右滚动一次的结果,这先前观看部分由宽虚线圈定。
另一种情况是如果画面在长度和宽度上都大于MPEG标准,则最好以类似于图4C中所示的切片结构对画面编码。在这种情况中,在左侧和右侧的开头少数切片可以只包含最少数量的宏块,即两个宏块,而在画面中部的切片可由多于两个宏块组成。如前所述,在左右两侧的切片可做成足够小并独立地被压缩,从而总能得到压缩画面的MPEG标准尺寸部分供独立解码和观看。图4C的切片结构还允许画面的垂直滚动。在图4C中,当前观看部分由实线指定。当前观看部分是已从先前观看部分向右滚动一次的结果,这先前观看部分由宽虚线圈定。图5-最佳实施例的编码操作
现在参考图5,图中显示一流程图,说明本发明的最佳实施例在创建一个编码MPEG画面过程中的操作,该编码画面大于标准MPEG尺寸并能被滚动。图5显示该最佳实施例,但应该指出,本发明可以以各种其他方式实现。虽然本方法是以流程图形式显示的,但应该指出,图5和图6中的某些步骤可以并发发生或以不同的顺序发生。
如前文讨论的那样,本发明包含在一视频发送系统中滚动一画面的系统和方法,该画面大于MPEG标准尺寸,该视频发送系统最好是一个交互电视系统。交互电视系统包含一个视频发送系统用于提供视频内容以及至少一个包括显示屏的订户电视,其中订户电视与视频发送系统相连。本发明还包含一个系统和方法用于以适当的切片结构对压缩画面编码以供滚动。
图5的流程图显示如何对大于MPEG标准尺寸的画面进行切片编码和压缩,以便通过视频发送系统传输到一订户电视。图5的流程图还显示如何与切片编码一起创建任何所希望的含有切片起始点的表。如图5所示,本方法最好按下述流程操作。
在步骤500,编码器106或有类似功能的装置接收一个未压缩画面,它最好大于MPEG标准尺寸,即大于MPEG标准长度或宽度或二者。MPEG压缩标准最好用作为尺寸的参考标准,但可根据希望的那样使用其他标准或方法,这其中例如TIFF(加标记的图像文件格式)。当使用其他标准或方法时,其参考尺寸最好是可显示图像的尺寸或在任何一次所希望观看的图像部分的尺寸,用以代替MPEG标准尺寸。当使用其他标准或方法时,术语“切片(slice)”将指要被压缩的画面的一部分,它可以由那个标准或方法独立地压缩。
在步骤502,编码器106或有类似功能的装置接收切片编码信息。在本最佳实施例中,画面切片编码信息包含这样一些信息,诸如在未压缩画面中如何创建和在哪里创建切片,以及哪些切片应被独立地压缩。这一编码结构最好设计成允许滚动画面,使该画面的所有可能部分都能在订户电视上被观看到。换言之,画面切片编码信息最好包括足够的信息以允许编码器106以一种切片结构对未压缩画面编码,该切片结构有足够的分割以允许一旦该画面被压缩、传输和接收而且该画面的所希望部分未被压缩时能平滑地滚动整个画面。
画面切片编码信息可以包括某种滚动颗粒化(granularity),它指出一次滚动的连续切片数。一次滚动的连续切片数是指每次滚动输入造成设定数量切片的跳跃。可以在对画面进行MPEG压缩时把独立的切片块压缩成设定数量的不独立的共同压缩切片,从而完成这种颗粒化。这种颗粒化还可以由编程的交互应用来完成,使每个滚动输入造成若干切片的跳跃或滚动,即使这些切片每个被独立地压缩。例如,考虑一个画面(未画出),它有MPEG标准宽度,但比MPEG标准长度长得多。利用一行颗粒化,要使该画面图像向下滚动的单次观看者输入造成一个切片从先前图像的顶部去掉而把单个新切片加到先前图像的底部,从而形成一个新的可观看的画面。于是,从这画面的顶部滚动到底部需要许多次滚动输入。借助较大的颗粒,例如4个切片,要使这一画面的图像向下滚动的观看者输入造成先前图像顶部的4个切片由先前图像底部的同样数量新切片代替,从而构成新的可观看图像。于是,从画面顶部到底部的滚动需要较少的滚动输入。被滚动的多切片个数最好由系统和/或使用者控制。
在步骤504,编码器106或类似功能装置根据画面切片编码信息压缩未被压缩的画面。压缩方法最好是MPEG标准方法,但如前面提到的那样,本领域的技术人员将会理解,其他压缩方案是可考虑的。例如,如果要被压缩的画面的长度或宽度与MPEG标准一致,则构成该画面的编码切片或切片组最好类似地在长度或宽度上与MPEG标准一致。
如步骤506中所示,最好由编码器106或类似功能装置创建画面切片结构每个部分的起始点表。尽管由解码器搜索切片结构以得到任何给定切片或切片组的起始位置也是可能的,但最好创建一个跳跃表以允许知道任何切片的起始点而不必搜索。
换一种说法,压缩大于MPEG标准尺寸的画面从而使该画面能在屏上滚动的操作最好包含由编码器接收一未压缩画面和画面切片编码信息。然后编码器最好根据MPEG标准独立地压缩切片或切片组,从而使压缩画面能在显示器上滚动。然后该编码器最好创建已被独立压缩和/或可滚动的每个切片或切片组的起始点表。图6-压缩非标准尺寸画面
现在参考图6,图中显示的流程图从概念上说明根据画面切片编码信息压缩未压缩画面的步骤504。应该指出,图6的流程图主要是概念性的,而且图6的步骤可以以其他顺序发生或以不同的方式实现。如图所示,步骤504通常包含以下步骤。首先,在步骤600,该方法把未压缩画面的长度与MPEG标准允许的长度进行比较。如果未压缩画面的长度大于MPEG标准,则方法进入步骤602。在步骤602中该方法最好把未压缩画面分成若干切片或切片组供在顶部和底部边界上进行独立压缩,使能发生垂直滚动。最好使用来自步骤502的画面切片编码信息来确定在哪里将发生边界和滚动边界。
在下一个步骤604中,该方法把未压缩画面的宽度与MPEG标准允许的宽度进行比较。如果未压缩画面宽于MPEG标准,则该方法进入步骤606。在步骤606中,该方法最好在可能发生水平滚动的左右边界上把切片结构分成切片列。这最后步骤608涉及根据MPEG标准压缩切片。在步骤608中,该方法最好根据所希望的滚动粒度独立地压缩每个单个切片或切片组。如果存在决不会滚到观看区以外的切片组,则可按照愿望将这些切片组一起压缩。应该指出,步骤602、604及606通常作为一个编码操作一起完成。
所以,视频发送系统或电缆始端的操作可概括如下。首先选择一个画面或图像。该画面的尺寸可能在长度或宽度或二者上都大于标准MPEG。然后为画面流创建画面切片编码信息,最好使用MPEG标准的尺寸作为参考。
一个软件编码器,它接受画面切片编码信息,用于对画面编码。然后创建一个多路组合信号,包含a)用于完成包括滚动的所有必要操作的交互应用;b)压缩的画面位流;c)任何所希望的附加画面位流;以及d)任何所希望的切片分布图或进入附加画面位流的字节偏移量。这个多路组合流可被传输到一个或多个订户电视。图7-滚动压缩画面的一部分
现在参考图7,所显示的流程图说明根据本发明的一个第一实施例滚动一个大于MPEG标准尺寸的压缩画面的方法。应该指出,图7的流程图主要是概念性的,图7中的步骤可以以各种顺序发生或以不同的方式实现。
图7的方法是针对由视频发送系统传输给订户电视供观看的压缩画面。在步骤700,订户电视接收某种选择画面供观看的使用者输入。这里假定所收到的使用者输入选择的画面大于标准MPEG尺寸。为响应步骤700,在步骤702中订户电视从视频发送系统请求该画面,或画面的初始或系统设定部分,最好是画面的最左上部分或画面的系统设定观看部分。应该指出,订户电视开始时可以简单地请求该画面,而视频发送系统可以配置成初始时只提供系统设定部分或系统设定切片。
为响应步骤702,在步骤704中视频发送系统向订户电视提供所请求的压缩画面切片。在这一例中,由使用者输入选择的画面大于标准MPEG尺寸并根据本发明被压缩。该画面被压缩从而使所请求的切片允许订户电视滚过压缩画面,如在本方法其后步骤中将要描述的那样。一旦在步骤704中收到所请求的切片,订户电视将在步骤706中显示压缩画面的所希望部分。下文中将在对图9的描述中给出步骤706的进一步细节。
订户电视继续显示在步骤706中显示的所请求画面,直至在步骤708中由订户电视收到额外的使用者画面选择输入。在步骤708中,订户电视从使用者收到一个新的输入,它是关于希望观看哪个画面或画面部分的,即是否希望一个新的画面或希望在当前画面内滚动。响应步骤708中收到的输入,在步骤710中该方法确定是否由使用者请求了一个新的画面。这个新画面将不同于在步骤706中由订户电视当前显示的画面。例如,这新的画面可从被显示的当前画面中的一个链接中选择,或者就是当使用者向订户电视发出显示不同画面的命令时所请求的画面,例如通过改变标准广播电视上的频道来改变画面。
在步骤710中,如果该方法确定已请求了一个新的不同画面,则该方法返回步骤702并请求视频发送系统提供这新的画面。
另一种情况是,如果使用者在步骤708中已通过提供滚动输入请求滚动当前画面,如步骤712中所确定的那样,则操作前进到步骤714。例如,如果被观看的画面宽于MPEG标准,则使用者可以输入一个向左或向右滚动该图像的命令,以观看到该画面的另一部分。如果被观看的画面长于MPEG标准,使用者可以输入一个使图像向上或向下滚动的命令,以观看画面的另一部分。
对于一个长度或宽度或二者都与MPEG标准一致的画面,最好使其不能在那个相应方向滚动,除非该图像已在屏上被放大,于是该图像大于观看屏的尺寸。
滚动,不论是垂直的还是水平的或是二者都有的滚动,都在步骤714中完成,如在下一部分中描述的那样。在步骤714中完成的滚动例行程序的结果是在存储器中建立新的切片,它们对应于希望被观看的画面部分。换言之,滚动例行程序使用从使用者那里收到的滚动输入,以得到适当的切片。滚动例行程序最好还使用切片表起始位置以请求适当的切片。响应步骤714中滚动例行程序的执行,该方法返回到步骤706中的显示例行程序,以显示由滚动输入指定的画面希望部分。该显示例行程序把这些切片从存储器传送到解码器供观看。图8-滚动例行程序
现在参考图8,图中的流程图说明图7所示步骤714中完成的滚动例行程序。应该指出,图8的流程图主要是概念性的,图8中的步骤可以以各种顺序发生或以不同方式实现。步骤714可分解成步骤752-756。在步骤708,订户电视从使用者接收滚动输入。步骤708对应于图7中的步骤708,在那里使用者已提供了滚动输入。滚动输入指明使用者可能希望观看当前画面的另一部分,它当前未显示在订户电视上。所希望要观看的画面部分可能在画面当前观看部分的上、下、左或右侧。例如,如果当前由订户电视显示的图像是画面的最左上部分,则使用者可能请求该画面沿其长度向下滚动或沿其宽度向右滚动或这二者的组合。显然,如果该画面有标准MPEG宽度但长于MPEG标准,则使用者只能上下滚动画面。类似地,如果该画面有标准MPEG长度,但宽于MPEG标准,则使用者只能左右滚动画面。
在该最佳实施例中,订户电视在RAM312或画面缓存器303中没有或可能没有足够的存储器空间来把画面的所有部分存储在订户电视存储器中。为响应步骤708中的滚动输入,该方法在步骤752中从视频发送系统请求额外的压缩切片,从而使画面可按使用者的请求滚动。
为响应步骤752,在步骤754中视频发送系统向订户电视提供所请求的额外的压缩切片。一旦收到步骤754中请求的额外的压缩切片,在步骤756中该订户电视把所收到的额外的压缩切片存储起来,可能替换RAM312或缓存器303中那些不再需要用于显示的切片。在步骤756中,订户电视把所收到的额外的压缩切片与那些已由订户电视存储在存储器中的切片集成在一起。订户电视最好使用切片分布图或表来辅助请求和/或集成这些切片。图9-显示压缩画面的一部分
现在参考图9,图中的流程图说明图7所示步骤706中完成的显示例行程序。应该指出,图9中的流程图主要是概念性的,图9中的步骤可以以各种顺序发生或以不同方式实现。步骤706可以分解成下述步骤。在步骤800中订户电视向MPEG解码器提供使用者希望观看的压缩画面部分。所提供的部分多个切片,其尺寸相应于标准MPEG尺寸。为响应步骤800,在步骤802中MPEG解码器接收这些切片并解码希望观看的压缩画面部分。
在步骤804中MPEG解码器向订户电视提供该画面的被解码部分。为响应步骤804,在步骤806中订户电视显示被解码的画面部分。订户电视可以继续显示被解码画面部分的图像,直至希望观看另一图像为止。图10-滚动压缩画面
现在参考图10,图中显示的流程图说明根据另一实施例滚动一个大于MPEG标准尺寸的压缩画面的方法。图10显示的实施例类似于图7的实施例,并包括一个附加特性,其中该订户电视能同时在存储器中存储一个或多个完整画面。这样,在这一实施例中,当收到另一滚动输入时,不要求订户电视请求由视频发送系统提供的其他画面切片,相反,画面的所有切片都存在于存储器中。应该指出,图10的流程图主要是概念性的,图10的步骤可以以各种顺序发生或以不同方式实现。所示方法是针对由视频发送系统传输给订户电视供观看的压缩画面。该方法开始于步骤900中订户电视收到使用者输入选择供观看的画面之时。为响应步骤900,在步骤902中订户电视最好从视频发送系统请求所希望的供观看的压缩画面。
为响应步骤902,在步骤904中视频发送系统最好向订户电视提供含有所请求压缩画面的全部切片。压缩画面是根据本发明的切片结构被压缩的,它使使用者能滚动该压缩画面,如在本方法的以下步骤中将描述的那样。一旦在步骤904中收到所请求的切片,在步骤706中订户电视便显示压缩画面的系统设定部分,最好是画面的最左上部分。在图9的描述中进一步给出步骤706的细节。
订户电视可以继续显示在步骤706中显示的所请求画面的图像,直至在步骤908中订户电视收到额外的使用者画面选择输入之时为止。换言之,在步骤908中,订户电视从使用者那里收到一个新的输入,它是关于希望要观看哪个画面或画面部分的输入。为响应步骤908,该方法确定是否在步骤910中由使用者请求了新的画面。新的画面是不同于作为步骤706的一部分当前由订户电视显示的画面。例如,这新的画面可以从被显示的当前画面中的一个链接中选择,或者就是当使用者向订户电视发出显示不同画面的命令时所请求的画面,例如通过改变标准广播电视上的频道来改变画面。
在步骤910中,如果该方法确定已请求了一个新的不同画面,则该方法返回步骤902并请求视频发送系统提供这新的画面。另一种情况是,该方法移到步骤912。在步骤912中,该方法确定是否在步骤908中使用者已通过提供滚动输入来请求滚动当前画面。例如,如果被观看的画面宽于MPEG标准,则使用者可以输入一个向左或向右滚动该图像的命令,以观看到该画面的另一部分。如果被观看的画面长于MPEG标准,使用者可以输入一个使图像向上或向下滚动的命令,以观看画面的另一部分。对于一个长度或宽度或二者都与MPEG标准一致的画面,最好使其不能滚动,除非该图像已在屏上被放大,于是该图像大于观看屏的尺寸。不管是垂直的还是水平的还是这两种的滚动,都是在步骤914中完成,将参考图11对步骤914进行描述。为响应步骤914中对滚动例行程序的执行,该方法返回到步骤706中的显示例行程序。前面已参考图9描述了步骤706中显示例行程序的执行。图11-滚动例行程序
在图10的实施例中,订户电视具有额外的存储器,超过了图7和图8中描述的实施例中存在的最小存储量。这里描述的这一滚动方法不需要从视频发送系统请求额外的切片以发生滚动。应该指出,图11的流程图主要是概念性的,图11中的步骤可以以各种顺序发生或以不同的方式实现。
现在参考图11,步骤914可以分解成下列步骤。在步骤908中,订户电视接收来自使用者的滚动输入。该滚动输入指出使用者希望观看当前画面的另一部分,这一部分当前没有显示在订户电视上。所希望要观看的画面部分可能在画面当前观看部分的上、下、左或右侧。例如,如果当前由订户电视显示的图像是画面的最左上部分,则使用者可能请求该画面沿其长度向下滚动或沿其宽度向右滚动或这二者的组合。
在当前的实施例中,订户电视有足够的存储器把整个画面存储到订户电视存储器中。为响应步骤908中收到的滚动输入,在步骤952中该方法把按希望方式进行滚动所需要的附加压缩切片与订户电视先前显示的那些切片集成在一起。一个指针指向每个切片在存储器中的起始地址。集成涉及把来自先前观看部分的指针集合与提供下一个希望观看部分所需要的那些附加指针组合在一起,而从指示先前观看部分的指针集合中去掉那些为下一个希望观看部分所不再需要的指针。
如前面指出的那样,最好创建每个切片的起始点表,以辅助订户电视更容易地滚动大于标准的压缩画面。如果没有创建和向订户提供每个切片的起始点表,则要求订户电视进行更多的处理以得到切片起始点,从而适当地滚动大于标准的画面。结论
所以,本发明包含一种改进的系统和方法,用于滚动其长度或宽度或二者都大于MPEG标准的压缩画面。虽然已经结合最佳实施例描述了本发明的系统和方法,但并不想限定于这里所提出的具体形式,而是想要复盖在由所附权利要求规定的本发明精神和范围内能合理包括的那些变体、修改和等效物。