预编码图像的 特技播放方式 本发明涉及数字压缩的视频资料,尤其涉及以非正常播放速度播放这种资料的设备。
在数字视频系统内采用特技播放方式是随着基于数字视频的系统进入市场而变得更加重要的一个问题。正在出现的消费视频产品、例如视频点播(VOD)、VCD和其它类似的系统可以与VHS磁带市场竞争而作为长篇电影的供给者。但是,与基于模拟的重放方法不同,数字视频系统在以非正常播放速度再现视频图像方面提出了任务。这种“非正常速度”再现被称为特技播放,可以按照各种速度、例如快进、快倒、停帧等来呈现图像。
基于MPEG标准的数字视频压缩正在成为数字视频资料的存储及传输的选择格式。遗憾的是,与模拟图像再现不同,提供用户“根据需要”和实时地从常速MPEG视频流中选择地特技播放操作是相当复杂并在计算方面相当昂贵的。
本发明的目的是提供一种通过控制“重放”位置的选择来使各种特技播放方式易于实现的方法。该方法能够独立地译码和显示对任一先前选定视频流的连续选择。
再现视频节目的方法包括以下步骤:
识别在存储介质内的多个视频节目中的每一个节目的一组数字编码信号,以便以多个再现速度再现所述多个节目中的每一个节目;
在预定的转移位置使每一组编码信号内的每一编码信号彼此发生联系;
响应节目和再现速度的选择再现这些编码信号中的一个;
响应随后不同再现速度的选择,按照预定的转移位置转移到这些编码信号中的其它编码信号,以便进行再现;以及
译码被再现信号,以便以选定的再现速度显示选定的节目。
图1表示指出正常和特技播放方式的有利的位速率和分辨率之差的表1。
图2表示代表正常播放速度、两倍播放速度和十倍播放速度的压缩视频数据流。
图3表示在发明的方法中用来在代表正常和特技播放再现方式的位流之间作选择的表组。
图4是表示采用本发明的特征来选择和控制压缩视频源的系统的方框图。
图5是说明本发明的对压缩图像流进行选择和控制、以便以正常和特技播放速度进行再现的方法的操作的流程图。
本发明的方法通过控制“重放”位置的选择来使各种特技播放方式易于实现。根据节目存储介质的不同,单个流可以提供正常播放速度和特技播放操作。但是,利用单个节目流提供正常播放速度和特技播放操作会导致特技播放速度受到GOP大小或I帧重复率的限制。为了提供更多的特技播放速度选择,可以采用多个节目流,一个节目流提供正常播放速度操作,而其它节目流提供各种快进和快倒特技播放方式。提供特技播放特征的图像流不是非得以相同的位速率进行编码不可,也不是非得具有与原始图像流相同的分辨率不可。用非常低的位速率和/或分辨率编码特技播放图像流可以节省存储空间和/或传输成本。此外,人类视觉还可以允许对这些特技播放图像流作进一步处理,以便减小分辨率,由此减小特技播放视频操作的存储及传输成本,不必牺牲被觉察图像的质量。
如上所述,本方法可应用于各种形式的视频资料,模拟的或数字的以及按照各种方式被编码的视频资料。但是,在例示性系统的本说明中,假定利用以下参数按照MPEG格式编码特技播放流:
有一个正常播放(常速)MPEG视频流,
需要两个快进流,即7X和21X常速,
需要两个快倒流,即-7X和-21X常速。但是,本方法可同样有效地应用于各种其它的速度组合。
在该例示性系统中,需要5个单独的MPEG编码流。这些流完全独立并可以具有不同的位速率和/或不同的显示分辨率。例如,质量和存储器效率之间的一种可能的折衷如图1中的表1所示。表1表示采用352×240象素的分辨率和1.5Mbps的位速率的特技播放流,均低于正常播放流704×480象素的分辨率和4.0Mbps的位速率。由于高的空间图像质量会使特技播放分辨率超出人类视觉,所以这一折衷是完全可接受的。于是分辨率和位速率的折衷导致了更有效的存储器使用。存储所有正向和反向特技播放流所需的额外存储器容量可计算如下,即求和被除以相应的特技播放速度的各特技播放位速率并表示为正常播放速度的位速率的百分比。表示为百分比的所需的额外存储器=2[1.5/7]+2[1.5/21]4×100%]]>
所需的额外存储器=14.37%因此,4个特技播放数据流可以用约15%的额外存储器容量来进行存储。可以提供反向正常播放特性,这种特性似乎使特技播放存储器容量需求提高100%。但是,这种反向正常播放特性可以例如在减小了的位速率和分辨率的条件下实现。于是反向正常播放特性可能需要约37%的额外存储器容量,当这一特性与其它特技播放流组合在一起时,就表示了正常播放流需求的约50%的存储器容量的提高。
由于从视频服务器把视频资料读出或重放至用户的译码器,所以该服务器可以响应用户指令在各个流之间进行切换。例如,用户可利用遥控命令来选择最高的快进速度,以便迅速地确定资料中的某一位置。快进控制命令使服务器读出地址从正常播放流中的当前位置转移到在21X快进流中的相应的恰当位置并继续播放。各特技播放和正常播放流都应包括相当均匀的短的图像组(GOP),这些GOP的大小例如是半秒。这种GOP大小产生0.25秒的最坏情形的视觉连续性误差,即在位流间切换时到达最近的I帧入口位置的时间。
整个系统的重要部分是确定不同图像流之间的切换入口位置的方法。例如,在一个流的“重放”期间,用户可能希望切换至另一个流。这种切换需要在字节精确的程度上计算新流中的译码器应开始“播放”的准确位置。可以如下地确定新流中的“入口位置”:
1.确定当前字节偏移,由此确定当前文件中的当前帧。
2.确定在新文件中要切换至的新帧。
3.确定新文件中的字节偏移。步骤2因这一事实而变得复杂,即对于MPEG流,新流的入口位置被限于sequence_header(序列_标题)所在的那些位置,sequence_header通常位于一个图像组(GOP)开头处的I帧上。还因这一事实而变得复杂,即即使在GOP内的帧的数目是恒定的,GOP的真正显示时间的长度也不总是恒定的。这种复杂性由于有可能在MPEG序列中重复场(或帧)而造成,结果就是可由一个GOP产生的最后“被显示”帧多于该GOP内的编码“图像”。
流切换的一个例子如图2所示。在图2中,正常速度图像流被从存储介质中读出或“播放”,在该介质上有供以2X和10X正常速度进行再现用的两个特技播放图像流。为说明简单起见,选择了2和10倍的特技播放速度。在用户特技播放选择瞬时或切换时刻,正常播放图像流在第20个帧处。3个流的每一个的可能的入口位置由序列标题来确定,这些序列标题在图2中用被加黑的帧来表示,通常是一个图像组(GOP)的开始。可切换至的“最合适”帧由箭头线指出,该箭头线连接了各个视频流中的入口位置。就用户视觉连续性而言“理想的”或希望的入口位置在图2中用水平阴影帧来表示。应当指出,由于上述被显示和被重复帧的复杂性,不必仅根据(正常序列内的当前帧)/(特技播放流速度)来计算这些“理想的”位置。在每种情况下,被选择的实际帧是在时间上最接近用户希望的或“理想的”帧的“最合适”的可能入口帧。由图2所示可见,确定切换至哪一帧似乎是显而易见的。但是,从算法的观点来看,并不是那么容易。整个系统的重要部分是确定不同流之间的切换位置的方法。为了实现这一功能,可以使用可预先记录在程序存储介质上的查阅表LUT。这种例示性的查阅表的功能和构造如表2所述,表2表示一般设计。
表2[number_of_tables]table_number]{fle_name}<bit_rate Mbps>[num _gops][num_frames][gop_size][lst_gop_size][speed][gop number][file byte offset][gop number][file byte offset][gop number][file byte offset]. 重复[num_gops]次[gop number][file byte offset][gop nunber][file byte offset][gop number][file byte offset].重复以上所有行(除了第1行)[number_of_tables]次
表2参数定义:
[]表示整数值,
<>表示浮点值,
{}表示文本串,[number_of_tables]
文件中查阅表的数目与位流的数目相同。在例示性的图1中有5个流,因此[number_of_tables]是5。[Table_number]
是与流的排序有关的编号。该编号必须在0和[number_of_tables]-1之间。[Table_number]还表示从最快快倒至最快快进的流的顺序。{file_name}
多路复用MPEG流的名称。<bit_rate>
包括传送层额外开销的多路复用MPEG流的以兆位/秒为单位的速率。[num_gops]
视频流中GOP的数目。[num_frames]
MPEG视频流中的总帧数。[gop_size]
需要时考虑了3/2下拉后在被显示帧内的GOP的大小。[lst_gop_size]
第一个GOP在被显示帧内的大小。通常为[gop_size]-M+1。其中M是MPEG流中I和P帧间的距离。[speed]
包括符号的特技播放流的速度。
表2的例示性查阅表LUT可以在视频资料的重放期间存储在系统存储器内。当用户改变一种速度为另一种速度时,LUT中的信息被用来确定在新流中开始译码的正确或相应的位置。为此目的,需要LUT中的信息以及在正在播放的当前位流中的以字节为单位的当前偏移。
为了启动流之间的切换,通过查阅查阅表找出相应于当前文件偏移的GOP开始位置(见表2)来根据该当前文件偏移确定当前GOP。一旦当前GOP已知,就可以利用公式1和2以及以下参数speed_new、speed_old、gop_size和first_gop_size,根据老GOP(gop_old)计算新GOP(gop_new):
gop_new=[(old_frame*old_speed/new_speed)+(gop_size-
frist_gop_size)]/gop_size ……公式1其中old_frame
=gop_old*gop_size-(gop_size-first_gop_size) ……公式2在计算了新GOP之后,查阅适合于新速度的查阅表,找出相应于该新GOP的文件偏移。然后可以在这一新的文件偏移位置处开始播放新流。相对简单的本系统导致了不同流之间的有效切换。但是,本方法是以新GOP的实时计算为基础的,假定了这些流包含产生恒定数目的被显示帧的一些GOP(用gop_size来表示)。如果这一假定因用来编码流的GOP结构发生变化或因源资料内非恒定的场重复模式和在编码期间使用了非电视电影机(de_telecine)而不正确的话,则以上公式将不正确。
考虑到这些假定有可能是错误的,即不能预先准确地知道当被译码时一个GOP将产生多少个帧,所以就不总是能够在给定了当前流中的位置之后实时地准确计算进入新位流的位置,除非可得到该新流的完整“时间映射”。这是因为如果公式1和2无效,则即使当前“实时”帧号是已知的,也不能算出新流中的哪一个图像号相应于时间方面的相同点。除这一实际问题外,能够与实际切换软件无关地微调流切换延时及精度也是有益的。出于这些理由,公开了一种有益的查阅表方法,这种查阅表方法列出“入口位置”,于是不必执行第二步骤的实时计算并克服了相伴的重复帧的问题。这些有益的查阅表被“脱机”制备,可以与相应的节目流一道被存储。预处理查阅表的使用使得可以与使用这些表的软件无关地执行入口位置确定以及流切换延时的调整。
包含至各个播放和特技播放流的位置的入口或转移的这些专门查阅表的使用需要相当简单的软件控制。因此,可以有利地提供用户控制来使与实际切换控制软件无关的流切换延时的微调或修改易于实现。例如,为了娱乐的连贯起见,用户可以选择总是在第一流的离开位置前半秒或1秒加入新的图像流,这样就可以保持“节目”图像连续。除此之外,“补偿”入口位置可以有益地补偿用户的反应时间。
还可以给用户提供确定查阅表的精度、分辨率或颗粒度的能力。例如,由于地址“转移”显然在每一I帧处出现,所以一旦各个流中的每一个I帧都被包括在LUT内,就得到最高分辨率。这种级别的分辨率使查阅表存储器需求达到最大。但是,LUT内较少的I帧地址将减轻存储器需求,但会使用户失望,即使地址转移被自动校正为包括了否则将会丢失的节目图像也会如此。这些用户控制偏爱的实现可以独立于实际的切换控制软件。因此控制软件即使在切换时间表需要改变时也绝不需要进行修改。2个查阅表或LUT组的原理性说明如图3所示。图3表示自正常播放速度和7倍播放速度起的可能转换目标。自21X、-7X和-21X特技播放速度起的转换需要类似的表组。
这种基于查阅表的切换的方法可说明如下。具有N个流的系统提供了切换至任一流和从任一流进行切换的能力,包括正常播放流和各个特技播放流。因此,对于每一个流,需要N-1个表对(字节偏移,字节偏移)。表对中的第一个偏移相应于在当前流中正在被观看的位置。第二个偏移表示在要切换至的流中的恰好的同一位置(节目位置)。
这种多个表方法可被进一步解释为嵌套地址集。例如,对于从正常播放速度至7倍速的转换的表,每一“到达”字节地址有7个“起始”字节地址。因此,对于这7个NP GOP的每一个,只有一个要到达的在7倍速流内的GOP。同样地,对于从正常播放速度至21倍速的转换,将有到达在21倍流内的一个GOP的21个NPGOP。但是,对于从21倍速至正常播放速度的转换,有相应于当前21倍GOP的一个NP GOP。因此,对于从较低播放速度至较高播放速度的转换,转移地址可被看作是嵌套地址集。但是,从较高播放速度至较低播放速度的转换只形成一个相应的转移地址。
表3表示这种查阅表方法的一般设计。起始/到达表入口可以利用应用于节目流对的软件例行程序来制备。例如,为了制备从正常播放速度至7倍速的转换的表,对两个节目流进行部分译码或语法分析来确定GOP标题。每一流的标题被收集在一个表内,如上所述,该表将具有相应于每一7倍速地址的7个NP地址。
在表3中,当前文件或视频流内的切换起始的位置用是以字节为单位的偏移的[“起始”字节偏移N]来表示。新文件或视频流内的译码开始的位置用是以字节为单位的偏移的[“到达”字节偏移N]来表示。[num_pairs]是文件内切换坐标对的数目。每个表上的坐标对的数目只依赖于在流之间进行切换时所需求的准确性或颗粒度,即较少的坐标对节省了存储空间,但提供较少的加入新流的位置。但是,精度的上限仍由GOP的数目来决定,也就是由流内被切换至的可能入口位置的数目来决定。
表3[“from”byte offset1][“to”byte offset1][“from”byte offset2][“to”byte offset2][“from”byte offset3][“to”byte offset3]. 重复[num_pairs]次[“from”byte offset<num_pairs-1>][“to”byte offset<num_pairs-1>][“from”byte offset<num_pairs>][“to”byte offset<num_pairs>]因此,对于采用N个视频流的系统,每个流将使用(N-1)个表。这些表的使用如下,
对于从流S1至S2的切换(表T_1-2),
从流S1至S3(表T_1_3),
从流S1至S4(T_1_4)…
以及S1至SN(T_1_N)。例如,如果当前图像位置是流S1内的偏移O1,需要切换至流S3,则需要执行以下操作:
1)确定表S_1_3内的最接近(在时间上)“起始”偏移。
2)从同一表中读出相应的“到达”偏移。
3)从读出的“到达”偏移值起开始译码流S3。由这些表造成的存储额外开销与视频流所需的存储空间相比仍然是相当小的。这些表的存储额外开销可以根据以下假定进行计算:
被编码的两个小时电影(7200秒),
+7X、-7X、+21X和-21X的特技播放流,
0.5秒的GOP长度,
4Mbps的位速率,(于是电影=3.6千兆字节)有:14400个表目的4XLUT(NP流地址)
14400/7个表目的8XLUT(7XTP地址)
14400/21个表目的8XLUT(21XTP地址)
总数=79543个表目,假定8字节/表目,
额外开销=636344字节
额外开销%=(636344/3.6千兆字节*100)
=原始正常播放流容量的0.018%。此外,切换过程的全部控制和微调(精度、定时等)都可以利用覆盖软件来控制,覆盖软件对从表中读出的值和表目数目进行修改,不需要访问控制软件。
采用各种本发明的数字视频源选择方法的系统如图4所示。图4所示系统包括具有例如由装置525提供的遥控能力的用户以及用来监视音频及视频输入信号的显示器1000。接口单元500在用户设备和数字视频源10之间提供控制通信流551。接口单元500还译码从源10获得的压缩数字视频信号511,产生传送给显示器1000的音频和视频信号。控制流551由构成接口单元500的一部分的控制发射器550产生。控制流包含多项控制功能,例如用户记帐的启动、用户交互的节目源选择、“特技播放”性能或类似节目源的“虚拟VCR”的供给。用户可以利用遥控单元525或利用手动开关(未示出)与接口单元500进行通信。
数字视频源10包括控制单元50,该控制单元50接收控制流551,并利用软件控制程序完成用户请求的任务。例如,用户发出的命令可以包括:每次使用记帐,节目选择,每次收看付费的节目选择,节目控制或“特技播放”性能。如上所述,用户控制偏爱可以利用方框60表示的用户偏爱控制软件来实现,该用户偏爱控制软件与方框50的主控软件相互作用。
多个压缩数字视频节目源存储在源10内的存储设备中。该存储设备可以包括固态存储器、磁或光存储器、或固态和磁或光存储器的组合。仅为说明起见,图4中示出的压缩数字视频节目被表示为存储器的区域或页面,节目P1在存储器页面100上,节目P2在页面P101上,节目Pn在页面(99+n)上。每一节目页面包括节目存储空间110,该节目存储空间110包含以正常播放速度“再现”的压缩节目,例如供正常播放用的块NP。该正常播放节目可以用图1的表1所示的位速率和分辨率参数来表示。节目存储空间110还包含各种“特技播放”处理形式的节目,例如TP1,即“特技播放”速度1及其反向速度,以及TP2,即“特技播放”速度2及其反向速度。如上所述,可以有利地处理这些“特技播放”形式的节目来减小它们的存储器需求或使之最小。例如如上所述,4种“特技播放”速度的供给提出了约15%的额外存储器需求。为了实现节目播放速度之间的切换,每一节目页面还包含发明的查阅表120,这些查阅表120如上所述列出了起始-到达入口地址。
图4所示例示性系统的操作可参看图5的流程图进行说明。用户利用遥控流551启动与数字视频节目源10的接触。这一初始接触或注册可以表示一记帐周期或事件的开始,或相反,记入用户与系统的相互作用,在图5中用步骤100“开始”来表示。在注册时可以向用户提供一节目选择菜单,用户根据该菜单作出其节目选择。图4的控制器50接收用户命令,选择例如存储器页面100上的节目1。这一节目选择用图5的步骤200来表示。在选择了节目之后,就从存储介质中读出与该节目有关的信息,并把该信息存储在源10的系统存储器内。该信息可以包括系统数据,例如特技播放速度的数目、查阅表,还可以包括各种用户选择,例如显示宽高比、语言、参数等。在步骤225执行检验来确定用户是否选定了播放速度。如果用户选择了正常播放速度或NP方式,则步骤225的检验就是“是”,并如图5的步骤275所示那样,从存储器110的NP存储区中读出压缩数字节目流。同样地,用户也许选择了以最高播放速度反方向地观看“节目1”,于是步骤225的检验也是“是”,从例如存储器110的-TP2存储区中读出“节目1”的变形。如果用户没有规定播放速度,就在步骤250调用默认设置,在图5的步骤275中自动地选择被选“节目1”的正常播放速度再现。
在开始了“节目1”的再现之后,在步骤300执行检验来确定用户是否选择了新的播放速度。如果步骤300的检验是“否”,就进一步在步骤700检测节目结束。于是两个步骤300和700的“否”就形成了等待播放速度改变命令或节目结束的循环。如果步骤300的检验是“是”,则新的播放速度已被选择,图4的控制系统50就确定当前节目重放中的字节偏移地址。这一字节偏移确定用图5的步骤400来表示。在接收了用户的新速度要求后,控制系统50就从存储区120中选出所需速度转移专用的查阅表。该查阅表包含相应的起始/到达或转移地址对。在步骤500对该表进行检索来确定当前字节偏移地址,该当前字节偏移地址代表地址对的“起始地址”。“到达地址”给出在新速度流中的相应字节位置,从该相应字节位置起继续进行再现。从新地址起开始新的速度播放用图5的步骤600来表示。如上所述地获得转移地址来保证可以与相邻或先前帧无关地译码新的节目变形,由此为用户保持节目的连续性。
可以在步骤200的节目初始选择期间提供用户选择的转移位置偏爱和/或转移地址颗粒度。例如,从存储设备中恢复查阅表以及其它用户可选性能,例如语言、参数、宽高比等。可以利用偏爱60在实际使用之前重新计算或修改这些查阅表。这种被修改的转移地址可有利地在位于老的或先前的节目的离开位置之前的位置处加入新节目。
在步骤600处开始新速度节目重放之后,控制序列循环回到步骤300和700,等待另外的重放速度请求或节目结束。如果在步骤700的检验是“是”,就表示到达节目的末尾,在步骤800作进一步的检验来确定用户是否要收看新的节目。如果步骤800的检验是“是”,就返回步骤200,用户可以在该步骤200中根据节目选择菜单选择其它节目。如果步骤800的检验是“否”,就表示重放部分结束,在“结束”步骤900终止与源10的交互作用。
在图4中,存储器页面100上示出了一例示性开关S1,这仅是为了说明起见,实际上,节目流是根据由与从当前速度至新速度的转换有关的存储器120的特定查阅表中的合适地址对确定的地址开始,从合适的播放速度存储器、即NP、TP2等中读出的。同样地,用户可以利用列出了每一播放速度的全部可能入口位置的表120从任何当前播放流转换至任何其它播放流。
图4的源10可被制成包含多个节目的消费娱乐单元。例如,带有节目盘库和换盘机构的投币式自动视盘机。源10可以包括与电子缓冲存储器连接的光盘节目的组合。节目盘可以是MPEG编码的,还可以包含申请人的便利的查阅表。这些查阅表可以包含I帧轨迹地址,这些I帧轨迹地址使光盘重放变换器能够在I帧之间依次转移,以便产生所需的“特技播放”再现速度。如已讨论过的那样,这些查阅表的存储器需求是很小的。但是,为了便于“特技播放”再现,必需在节目重放之前从光盘中恢复这些表并把它们存储在有效存储器内。在“特技播放”再现期间,光盘重放变换器按照从转移表获得的顺序在I帧之间依次转移。例如,在7倍速快进时,变换器“跳过”7个交错的I帧,只再现第8个I帧。在节目结束或用户作出另外的选择之前,这一播放转移播放序列被不断重复。被再现信号流中的间隙可利用缓冲存储器和图像重复原理来消除。节目光盘可以包含在时间和空间方面被进行了处理的“特技播放”专门MPEG流,以便获得比仅用I帧进行再现可获得的视觉显示平滑的视觉显示。同样地,这些“特技播放”专门流可利用申请人的便利查阅表进行寻址。
源10可代表在家庭内进行消费使用的预先装载了压缩视频节目或运动图像的选择的便携娱乐单元。这种娱乐单元可按比例加大并集中放置,以便使许多用户能够看到压缩节目内容。这种集中重放设施为了实现具有上述“特技播放”性能的虚拟VCR,需要与用户的双向通信。