具体实施方式
图1是依据本发明一较佳实施例的视频接收器10的结构示意图。如图1所示,视频接收器10包括视频解码器12、视频处理器14、帧率转换器(FRC)16和显示器接口18。视频接收器10可采用机顶盒、卫星接收器、地面广播接收器、媒体播放器(例如DVD播放器)、媒体接收器或者类似设备的形式。可选地,接收器10(或其中的一部分)可集成在显示设备中,例如平板电视及、计算机显示器、便携式电视机、手持设备(例如个人数字助理、移动电话、视频播放器)或者类似的设备。
接收器10可采用定制硬件的方式实现,或者采用由软件控制的定制硬件和通用计算机硬件的组合的方式实现。
很明显,视频接收器10接收视频,这些视频采用视频广播、数字视频流或者类似的形式。解码器12用来解码收到的视频,以构建视频场或视频帧。视频处理器14处理解码后的场或帧,缩放(scale)、解交错,以及对收到的视频进行其它处理。FRC 16用于对处理后视频的帧率进行转换,以生成所需帧率的视频,其中该帧率不同于解码视频的帧率。最后得到的更高帧率帧将由显示器接口18在显示器20上显示以供用户收看。显示器接口18可对FRC 16生成的帧视频进行采样或接收,以展示图像用于显示。
显示器接口18可以采用传统的随机访问存储器数模转换器(RAMDAC)的形式,或者遵守HDMI或DVI标准的单个终端或差分发射器的形式,或者其它合适的接口,以便将数据进行转换,从而可以在显示器20上以模拟或数字形式进行显示。
视频将由视频处理器14进行解码和处理,由FRC 16用来对收到的视频进行帧率转换的视频属性信息将被提取出来。该属性信息将从视频处理器下行传送到FRC 16。在描述的实施例中,可使用两个独立的通道22、24来从视频处理器14向FRC 16传送视频数据和属性数据。FRC 16使用收到的属性数据,而无需分析解码后的视频帧来获取(例如提取、确定、计算等等)相同或类似的属性信息。
特别地,视频解码器12将收到的视频信号解码为像素值流。到达视频解码器12的视频信号可来自传统的视频源,例如卫星或有线电视通道、地面广播通道、本地视频存档或外围设备例如DVD播放器。视频信号可以是模拟信号,也可以是数字信号。解码器12因此可采用传统视频解码器来实现,其遵循如下多种视频编码/压缩标准中的任意一种,诸如MPEG、MPEG2、MPEG4、divX、ITU建议ITU-H.264、HDMI、ATSC、PAL或NTSC电视、数字电视(例如ITU BT.601)或者类似的标准。
为便于解释,视频解码器12在图2中举例描述为遵循MPEG的解码器,这样一来,其可包括传统MPEG解码器中可包含的对于本领域技术人员而言熟知的模块,例如用于对收到的视频流进行解析的解析器、可变长度解码器(VLD)32、运动补偿模块(MB)34、行程(run length)解码器和反量化(RL&IQ)模块36、反离散余弦变换模块(IDCT)38、图像重建模块40和用于存储帧/场的存储器42。解码器12通过链路26与视频处理器14通信。链路26可以是串行或并行链路。
图3描述了视频处理器14的一个范例。如图所示,视频处理器14包括至少一个缓存存储器58,用于缓存来自视频解码器12的像素值。示范性的视频处理器14包括用于处理视频的几个功能模块。每个功能模块可执行一个功能,例如,视频处理器14可包括缩放器50、解交错器52、色彩空间转换器54、效果/图层引擎56和噪声削弱模块48。本领域的技术人员应当明白,视频处理器14还可包括本文没有描述的其它功能模块。
内部总线60为缩放器50、解交错器52、色彩空间转换器54、效果/图层引擎56和存储器58提供互联。
属性格式化模块62与视频处理器14的其它功能模块通信。属性格式化模块62接收来自缩放器50、解交错器52、色彩转换器54和效果/图层引擎56以及噪声削弱器48的视频属性信息。另一个通道编码器64可进一步对属性格式化模块62格式化的属性数据进行格式化,以便通过通道24传送到FRC 16(图1所示)。
图4示出了FRC 16的详细示意图。如图4所示,示范性的FRC 16包括缓冲器66和插值器70,其中插值器70用于在缓冲器66中的帧进行插值,以便进行帧率转换。缓冲器66可以是先进先出帧缓冲器,用来存储将由插值器70来合并的连续帧。缓冲器66可存储例如4个用来进行插值的连续帧F。帧率转换器16还包括通道解码器74和属性解码器68,以便对通道编码器64和属性编码器62提供补充。
插值器70用于在缓冲器66进行插帧,以便构建帧率(频率)的值等于帧到达缓冲器66的频率乘以缩放因子SCALE_FREQU的输出帧。时钟信号(CLK)记录帧到达的时间,其允许FRC 16生成最终的帧率。由于FRC 16为收到的每个帧生成一个以上帧,插值器70用于构建插值帧,以代表缓冲存储在缓冲器66之中的帧之间的运动。帧率转换器16使用缓冲器66中的两个输入帧来执行这种运动补偿插值。
可由插值器70执行的运动补偿/插值技术在2005年出版的由Keith Jack撰写的第4期视频(数字工程师手册)中和Watkinson,John撰写的“转换标准工程师导读”(Snell和Wilcox手册系列,
http://www.snellwilcox.com/community/knowledge center/egineering/estandard.pdf)中做了描述,本文引用了其中的全部内容。相关的技术在发明人为本申请发明人的美国专利申请(xx/xxx,xxx)中做了详细的描述,本文也引用了其中的全部内容。
为便于表述,本文将缓冲帧(例如视频处理器14输出的解码帧)表示为帧F0、F1、F2、...Fn,而视频源中的彼此不同的帧表示为帧S0、S1、S2、...。因此,例如,24fps源将具有源帧S0、S1、S2、S3、...,并转换为电视电影格式,其将由视频解码器12解码和/或重建为场或帧,并在随后由视频处理器14进行解交错(如果需要的话)以构建对应于源帧{S0、S0、S0、S1、S1、S2、S2、S2、S3、S3、...}的帧{F0、F1、F2、F3、F4、F5、F6、F7、F8、F9、...}(60fps)。电视电影转换帧F0、F1、...或场将存储在存储介质上,例如DVD或者类似的介质,或者使用地面、卫星或CATV广播技术以模拟(例如NTSC)格式或数字格式(MPEG流或类似的格式)进行广播,或者以其它方式进行提供。具有转换后的帧率的输出帧可表示为帧f0、f1、f2、...fn,如本文所述,其可从帧F0、F1、...中构建。这在图5中进行了描述。
在本文中,插值帧也可表示为I{Sj、Sj+1、I/m}。这种表示形式表示最终的运动插值帧,该帧表示原始帧Sj、Sj+1之间的中间帧,插入该帧以表示从Sj到Sj+1的部分I/M运动。例如插入的帧I{Sj、Sj+1、1/2}用来表示Sj和Sj+1之间的运动中途的运动效果。这种运动插值由帧率转换器16使用从缓冲器66中读取的两个输入帧来进行。
图6描述了解码/处理后的视频帧和帧率转换后的帧。解码/处理后的视频帧沿虚线表示;插入的视频帧沿实线表示。解码/处理后的视频帧由圆圈来表示,插值后的帧由三角来表示。
应当明白,解码/处理后的帧之间的插值度,以及哪个帧将由插值器插入,均与解码/处理后的视频帧F的节奏(cadence)有关。例如,在3:2下拉方式中且频率缩放比为2(SCALE_FREQU=2)时,插值器70控制每个插值帧的运动,以使其在源帧的五分之一之前插入;在2:2下拉方式中,在四分之一之前插入;在不采用下拉方式的情况下,在二分之一之前插入。
图6展示了视频处理器14输出的示范性帧序列中的运动。具体来说,图6出了视频处理器14输出的示范性帧序列F0、F1、F2、F3、...的运动。所描述的帧序列由3:2下拉源生成,通常在从24帧/秒(表示为源帧S0、S1、S2、S3、...)到60交错场/秒即转换为60fps帧的转换过程中产生。如此一来,原始(电影)源中每一秒帧将采样两次,而原始源中的每另一秒帧将将采样三次。生成的帧F0、F1、F2、F3展示了3:2下拉方式,他们是通过对交错场进行解交错来生成的。
最终的帧序列展示了急动运动(称为“颤动”),其中只有在第3、第5、第8、第10等解码帧之后才出现运动。这种颤动在帧率转换之后仍然存在,其无法解决视频源的节奏问题。
为了消除或降低可以感觉得到的急动,帧率转换器16插入相邻的源帧,以构建帧率转换后的帧序列。
在运行过程中,视频流由视频解码器12接收,视频解码器12随后解析该视频流,并构建一系列具有特定分辨率的场或帧。这一系列的场或帧将作为像素流提供给视频处理器14。解码后的视频的格式通常是由编码后的视频的格式决定的。例如,水平、垂直分辨率;纵横比;色彩格式;而是否以帧或场的形式来提供该视频是由视频的编码决定的。
在视频处理器14中,缩放器50、解交错器52、色彩转换器54和图层引擎56以传统方式工作,以提供输出视频帧。在如此处理视频的过程中,缩放器50、解交错器52、色彩转换器54和图层引擎56提取和创建视频属性数据。缩放器50、解交错器52、色彩转换器54和图层引擎56的工作顺序不是固定的,其可基于设计目标来进行修改。
例如,缩放器50可将解码后的视频缩放到所需的尺寸和纵横比。为进行此操作,缩放器50可选择对收到的帧进行分析,以确定收到的视频中的区域是否包含黑条(black bar)、确定视频内容的频率,以及类似的内容。该属性进一步可由缩放器50用来对解码视频进行缩放。例如,解码帧的频率内容可作为代表柱状图的数据来提供;可提供交织后的(例如信箱)视频图像的起始、结束行和/或列。属性数据,包括从解码器12接收到的和由扩展器50构建的,还将向下传送到属性格式化模块62。
类似地,解交错器52可用来将视频的交错场转换为帧,这是通过分析收到的视频场的序列以确定他们的节奏来实线的,有关这方面的技术在美国专利申请10/837835和11/381254中做了描述。通过使用该节奏数据,收到的场可由解交错器进行合并,以生成解交错视频帧。视频场可进行例如插值(bob)和合并(weave)操作来构建帧。由于一帧视频可构建两个场,因此帧序列的节奏仍将连续反应场序列的节奏。这方面的技术在与本申请同时提交的美国专利申请xx/xxxxxx(即上文提到的申请)中做了描述。解交错器52探测到的节奏信息将提供给属性格式化模块62。节奏信息可包括例如几个比特,这些比特用于表示解交错器52所确定的节奏。示范性的探测到的节奏可包括3:2下拉形式;2:2下拉形式;3:3下拉形式或者类似的内容。类似地,若不存在节奏信息,则这种情况也将通知属性格式化模块62。可选地,画面变化将由解交错器通知属性格式化模块62。
色彩空间转换器54可将收到的视频场/帧的色彩空间转换为所需的色彩空间。代表最终的色彩空间的数据还将向下传送到属性格式化模块62。类似地,代表视频亮度和伽玛(gamma)指示的数据以及类似的数据(例如亮度分布的柱状图、伽玛信息以及类似的信息)将由色彩空间转换器54通知属性格式化模块62。
图层/效果引擎56可对收到的视频场/帧进行格式化,以将视频表示为特定的格式,例如画中画(picture-in-picture)、画上画(picture-on-picture)、结合静止图像(例如TV导视或者类似的内容)。属性格式化模块62可从图层/效果引擎56接收描述每一图层的属性(例如计算机生成的视频、静止、图像等等)的每张图片的协坐标、文本信息。
噪声削弱模块48可对收到的视频进行滤波,以消除噪声和/或失真(artifact)。属性格式化模块62可从噪声削弱模块48接收有关噪声级别、信号类型、信号级别的信息和类似的信息。
这样一来,属性格式化模块62从其它的功能模块(例如缩放器50、解交错器52、色彩转换器54、图层引擎56和噪声削弱模块48)接收视频属性。属性格式化模块62可将这些信息格式化为合适的格式,以便这些信息可在通道24上进行编码,并且明确的向下传送到FRC 16。
属性格式化模块62将属性数据格式化为适当的格式,以与处理器14生成的视频帧相对应。例如,对于每个帧,属性格式化模块62可将该帧的属性编码,并将该信息打包。每个数据包的实际格式是任意的。该数据包可采用比特、字节的形式来代表属性信息。该数据包还可包含文本数据,这些数据可指示感兴趣的属性,或者可使用格式化语言例如XML进行格式化。属性格式化模块62还可依据ITU建议ITU-BT.1364.1或本领域技术人员知晓的其它方式来对属性数据进行格式化。
在任何情况下,由属性格式化模块62所格式化的属性数据都将向下传送到通道编码器64。通道编码器64将该属性数据在辅助通道中进行编码,以便该编码数据能与视频处理器14输出的帧保持同步。辅助通道可采用任意一种形式。例如,辅助数据可通过专用通道(以单独的物理链路的方式来提供)传送,或者与视频或者其它数据复用。每个帧将生成一个或多个属性数据包。通道编码器64包括复用器,并可对属性通道进行格式化,以便将属性数据与视频数据复用,从而使用视频数据(例如垂直空白或者水平空白间隔)中未被占用的部分,或者类似的空间。类似地,通道编码器64可对承载数据的单独的物理通道进行编码,并使该通道与视频数据同步。例如,该通道可以是同步流,或者采用异步方式承载与每个帧一同发送的数据包。
在FRC 16,来自视频处理器14的视频数据将缓存在缓冲器66之中,由通道编码器74和属性提取器68从属性通道中提取属性数据。最终的属性信息将提供给插值器70,可选地,也可提供给节奏探测器72。
如果属性信息包含与进站帧序列有关的节奏信息,则节奏探测器72将被禁用,或者由其生成的节奏数据将被忽略。另一方面,如果辅助数据不包含视频的节奏信息,则节奏探测器72将从缓冲器66中缓冲的帧中确定节奏信息,这方面的技术在美国专利申请xx/xxxxxx(即上文提到的申请)中做了描述。由探测器72确定的节奏信息只有在特定帧已经被缓冲之后才能确定,因此将比来自视频处理器14的可用节奏信息滞后一帧。
FRC 16可使用属性解码器68所提取的其它属性数据来调整FRC 16的操作参数,以改善插值效果。例如,FRC可使用图层文本属性数据来独立的处理图层区域。亮度信息可用来对插值帧进行预滤波(可基于画面的暗度分别进行不同形式的滤波)。伽玛信息可用来首先进行解伽玛(de-gamma),然后再进行再伽玛(re-gamma)。可使用与视频有关的频率信息来调整或选择FRC 16的滤波器,以及其灵敏性(sensitivity)。反应噪声类型和信号级别的信息也可用来调整FRC 16的滤波器和灵敏度。FRC 16对属性数据的其它使用方式对本领域的技术人员来说应该是很明显的。
特别地,视频处理器14向FRC 16提供了一个下拉方式的标识符,以执行插值操作,以便从原始源帧中生成运动补偿且插值的帧。为实现插值的精确,可使用节奏指示符来在源中插入不同的帧(区别于重复的帧),以及调整插值参数(例如从插值帧到插值帧的所需部分运动)
图6描述了帧率转换器16从帧序列F0、F1、F2...输出的所需的输出帧序列f0、f1、f2、f3...中的运动。在图6中,运动表示为帧数的一个函数。在描述的例子中,帧率转换器16将帧率增加一倍(也就是SCALE_FREQU=2)。由于帧率转换器16输出的帧比视频处理器14原始生成的帧多,帧率转换器16的插值器70(图2)使用传统运动补偿技术来生成帧,以便以更高的帧率进行展示。在描述的实施例中,每个插值帧fj或者与视频处理器14输出的帧Fi相同,或者由解码后的帧序列(例如,Si,Si+1)中相邻的两个源帧构建而成。当然,也可使用两个以上的相邻源帧来生成插值帧。
在描述的例子中,执行运动补偿是用来产生相对平滑的运动,以降低颤动。在描述的实施例中,运动是线性插值的,其中每组帧f0、f1、f2、f3等等之间的运动是相等的。由于连续的源帧S解码的时间间隔是不相等的,在由视频处理器14进行解码的相同时刻,任何线性插入的序列f0、f1、f2、f3...通常不包含对应于源中的帧S0、S1...的帧。
特别的,f0=F1,而f1、f2、f3和f4是从对F0(或同等地位的帧F1或者F2)和F3(也就是源帧S0和S1)的插值中生成的。每个插入的帧f1、f2、f3和f4都先于从F0到F3的运动(也就是从原始源帧S0到帧S1)。输出帧f5是原始源帧S1(也就是帧F3/F4)。类似地,输出帧f6和f7是从解码帧F3/F4和F5(对应于源帧S1和S2)中生成的。
在采用3:2下拉方式时,FRC 16依赖于缓冲的帧,这些帧之间间隔多达两个帧(也就是F0和F3;F3和F5),FRC 16将在处理至少这些帧时引入处理延迟。因此,f1生成的时刻不会早于对F3解码的时刻。类似地,f6生成的时刻不会早于对F5解码的时刻。f11生成的时刻不会早于对F8解码的时刻。
现在,在采用3:2下拉方式且频率缩放值为2时,在理想状态下,将为每5个(3+2)缓冲帧生成10个输出帧。这一点在图6中也是很明显的。最终的帧f0、f1、f2、f3、f4、f5...f10对应于S0,I{S0、S1、1/5},I{S0、S1、3/5}、I{S0、S1、4/5}、S1,I{S1、S2、1/5},I{S1、S2、2/5},I{S1、S2、3/5},I{S1、S2、4/5},S2。
通过对比,2:2下拉源的最终的帧图样f0、f1、f2、f3...f10对应于帧S0,I{S0、S1、1/4},I{S0、S1、1/2}、I{S0、S1、3/4}、S1,I{S1、S2、1/4},I{S1、S2、1/2},I{S1、S2、3/4},I{S1、S2、4/5},S2,I{S2、S3、1/4},I{S2、S3、1/2}。也就是说,为每个缓冲帧生成四个输出帧。
类似地,未采用下拉方式的最终的帧图样(例如从交错视频中产生)将对应于帧S0,I{S0、S1、1/2},S1,I{S1、S2、1/2},S2,I{S2、S3、1/2}。为每个缓冲帧生成2个输出帧。
当然,取决于解码帧F的节奏,源帧S在缓冲器66中的位置是可变的。
在视频处理器14接收到属性数据时,这些属性数据可与处理后的帧一同获得。如此一来,FRC 16可对所提供的属性数据作出快速反应。例如,当视频处理器14提供的视频的节奏发生变化时,FRC 16使用的插值参数将得到调整。因此,一旦探测到从可以识别的下拉方式变化到无节奏时,就将进行插值操作来构建对应于源帧S0,I{S0、S1、1/2},S1,{S1、S2、1/2},S2,{S2、S3、1/2}的插值帧。由于视频数据的属性数据是可用的,因此进行分析时所需的延迟将得以降低。
应当明白,提供给FRC 16的属性数据无需从视频处理器14产生。作为替代,属性数据可在FRC 14的上行流中的其它位置产生。例如,其它的属性数据或上文描述的属性数据之中的一部分可由解码器12获取。例如,运动向量数据可由构成解码器12的MPEG或类似的解码器来提取,源和/或解码视频的类型(CVBS、组件、数字、逐行、隔行、VGA)可作为属性数据来传送。再一次的,对于本领域的技术人员来说,FRC 14上行流中的其它属性数据也是可用的。
应当明白,视频的接收无需包含解码器12。作为替代,来自外部源的解码的视频可提供给作为本发明一较佳实施例的视频设备,该设备可仅包含视频处理器14、帧率转换器16和可选的显示器接口18。
类似地,视频处理器14和FRC 16可以安装在不同的物理设备中。例如,视频处理器14可以是视频接收器、视频播放器、专用视频处理器或者类似设备的一部分,而FRC 16可以是显示设备例如平板显示器的一部分。视频处理器14与FRC 16之间的链路可以是物理链路,该链路遵循视频互联标准,例如DVI或HDMI标准。通道22和24可以是用来实现互联的通道。例如,通道22和24可以通过HDMI互联来实现。
此外,尽管在上文的描述中,属性数据是同步提供的,其也可以缓存在视频处理器14中,并可由FRC 16或者其它类似的处理器(例如主处理器)从视频处理器14中提取或抽出。相应的,视频处理器14会包含用于存储属性数据的足够存储空间,并提供一适当的接口(例如软件应用编程接口(API))用来询问数据。可选地,视频处理器14可缓存几个帧的属性数据。该属性数据随后在需要时候被询问。
当然,上述实施例仅仅用于描述,并非用于限定本发明的范围。上文所述的实施本发明的实施例可以进行许多修改,包括构成、各部分的排列、操作的细节和顺序等。如本发明权利要求所述,所有上述修改都应划归到本发明的范围之内。
备注:本申请与申请日为2006年12月26日、申请号为11/616,192、名称为“Low Latency Cadence Detection for Frame Rate Conversion”的美国专利专利申请相关,本申请参考并结合其全部内容。