专利名称:运行一种算法的方法以及一种可伸缩编程的处理设备的制作方法
技术领域:
本发明涉及运行一个算法的一种方法,其中算法包括第一函数和第二函数。
此外,本发明还涉及可伸缩的(scalable)系统,尤其涉及可伸缩的多媒体通信系统,比如一个ATSC顺应(compliant)视频解码器。
从可伸缩视频解码器以及它所应用到的多信道多址通信的系统(IEEE 19thInternational conference on consumer electronics,year2000,Page 232-233)中可以知道上述类型的方法和系统的一个实施例。这里,描述的一个可伸缩算法被用在实时系统内,该系统具有限制的资源和时限算法。具有这些特征的一个实时系统的例子是被用在一个多信道多址通信系统中的一个视频解码器,以及限制资源的例子是一个物理存储器,一个主处理器,和一个输入/输出设备。可伸缩算法,例如一个用于视频的解码算法,包括多个函数,例如低通滤波和上采样。对于每个函数,确定每个视频信道数的针对CPU负荷的资源需求,例如1,4,或8信道,能被同时解码。从允许的CPU负荷导出可被用在算法内的函数,并且被允许使用的每个函数的预算必须分别被分配到每个函数。
而且,通常知道在一个给定系统中用于测量复杂生失真的当前方法是测量用于一个特殊数据模型(算法)的运行曲线。作为一个例子,使用一个MPEG2解码器的一般性IDCT算法,处于使用中的算法假设所有的数据在每个8×8块中。全部数量的乘法器和加法器是一个固定的数。然而,用一个特殊的算法,如果数据模型改变,计算步骤的数能被改变,因而对于算法计算时间的复杂性是不同的,参看图2。使用改变的复杂等级,输出失真也是不同的,也就是利用不同的的运行点202。用于这种算法的相应的运行曲线可以被测量。如果一个不同的IDCT算法适于该解码器,则能画出一个不同的运行曲线,例如曲线204,206。
多媒体处理工业的快速发展已经促使可编程的多媒体处理设备取代了传统的专用硬件解决方案,例如,专用集成电路(ASICs)。面向软件设备的可编程的功能性已经大大地增加了这些多媒体和通信系统类型的灵活性。可编程设备普遍用于按照可用的计算资源调整和定标函数复杂性到确定的水平。这提供了系统的可量测性。然而,当函数复杂性被缩减时,与常规专用的硬件解决方案相比,系统的性能通常下降。因此,需要在每个函数复杂性水平上最小化功性能下降或失真,以保持系统的整体性能。
在理论上,可量测性经信息率和资源约束处理函数复杂性和失真的折衷。当计算资源减少时,用于执行原始数量函数复杂性的计算或处理能力被减少,从而强迫可伸缩算法退到一个低级的函数复杂性处理。
一个例子是,在一个适于接收和解码诸如电视信号的信息流的数字电视(DTV)视频解码器中可以利用一个可伸缩的设计。解码器的处理能力实际上受到解码器处理器约束的限制,例如可用的计算资源。解码器的处理能力可以被限制到足以处理接收的比特流的那个点上,以便在一种可接受的质量标准上进行显示。因此,能够使处理器解码比特流的方法是降低函数其中之一的质量。例如,在一个画中画(PIP)窗口中显示的质量可以被设置低于(始终可接受的)主频道的质量,通过降低窗口比特流的处理复杂性而不改变对应主频道的主比特流的解码质量。因而,取决于各自的运算模式,不同的处理复杂性可被用于不同的比特流。而这就允许解码器的有限的处理能力可以被更好的利用,能够使多种比特流被同时处理。
现在参考
图1,基于信息的复杂性理论(IBC)显示出,对每个给定的系统,有一个最小的复杂性-失真(C-D)界限100。图1显示速率失真界限100是一个凸函数。该曲线100精确地显示了在可实现函数复杂性-失真(区域102)和不能实现函数-复杂性失真(区域104)之间的理论上的界限。
为了
背景技术:
的目的,C.E.Shannon在1948年在信息论(IT)上公开了他的工作。作为IT的一个分支,在编码和压缩信源的保护下,出现了速率失真理论(RDT),它涉及从一个源上最大的除去冗余的任务,服从于一个质量标准。换句话说,RDT所涉及的是用能用于一个给定再现质量的最少数的比特来表示一个源。在RDT中遇到的折衷是在信息速率和输出失真之间。应该明白的是,尽管是在RDT中,典型的在输出解码系统上没有计算约束。
为了扩展RDT以便得到复杂性-失真折衷和研究可伸缩性的问题,发展了基于信息的复杂性(IBC)理论。IBC是计算复杂性的一个分支,它针对信息是部分的,被污染的,和被定价的来研究问题。IBC主张一个算法的计算能够被缩减,通过限制被处理的输入信息的数量。一个算法的复杂性能被归纳为被处理信息量的一个函数以产生一个输出序列。
如所表示的,上述曲线100的区域102理论上是可实现的算法,同时在下面的区域104是不可实现的。对于一个特殊的系统,复杂性被限制。换句话说,系统的复杂性具有一个界限以便让系统正常的运行。复杂性的界限被描述成[Cmin,Cmax]。而且,输出质量也具有限制,即失真范围[Dmin,Dmax]。Dmin意味着系统能提供的最佳结果,而Dmax意味着用户能容忍的最差的结果。因此,一个实际系统的可工作区域是区域106。
理论上,如果一个设计的系统的性能曲线达到最低的C-D界限100,则实现了一个最佳的设计。然而,对于一个实际的系统来说,要实现最好的理论上的界限100是不切实际的。对于一个给定的系统和一个给定的数据模型(算法),每组测试数据将给出一个质量失真速率。再参考图2,对于这样一个系统模型,来自一个实际系统的复杂性和失真对的每个点被称作一个运算点202。一组运算点202组成一个运算曲线。通过具有一个选择实现和给定测试数据的系统,在运算曲线上的例如204或206的每个运算点202是可实现的。可伸缩性可被定义为在可实现区域106中不同复杂性坐标上的两个运算点202之间的转变。最好的可伸缩算法具有一个运算曲线,它近似接近最低的C-D界限100。在图2中,第一给定系统和数据模型即算法给出一个第一复杂性-失真曲线204,同时第二个提供曲线206。理论上,运算曲线204,206距理论最低复杂性-失真界限100的距离示例了每个系统设计的好坏。通常在一个实际设计情况下,不能获得最低的界限100,而且运算曲线204,206不是平行的。
用在上述例子中的MPEG2视频解码器普遍用在先进电视系统委员会(ATSC)顺应(compliant)数字电视(DTV)的系统中。在特例的图3中示例了一个常规视频解码器300的方框图,是用于一个ATSC DTV顺应系统中,如由GUIDE TO THE USE OF THE ATSC DIGITAL TELEVISIONSTANDARD,ATSC Doc.A/54,October 4,1995所教导的。
简要来说,解码器300包括一个信道缓冲器302,它接收一个编码的视频比特流信号A和输出一个信号B。一个可变长度的解码器(VLD)304接收信号B并重新构建量化的离散余弦变换(DCT)系数的8×8阵列以便提供以量化格式的DCT-系数作为信号C和运动矢量作为信号H。运动补偿器306接收信号H和I,包括用于存储在存储器308中的锚定架的数据,并提供运动补偿的预计的象素值作为信号G。逆量化器310接收信号C并对它去量化以提供信号D,它包括以标准格式的量化的预测误差DCT系数。逆离散余弦变换(IDCT)接收信号D并变换它以获得象素值或预测误差作为信号E。加法器314接收信号E和G并把它们相加以提供重建的象素值,它由量化被降低而作为信号F,信号F被提供作为解码的视频数据并也被送到存储器308。
本发明的一个目的是以一种改进的方式提供上述分配资源的方法。为达到该目的,按照本发明的方法包括以下步骤第一步骤,由算法请求一个算法资源以提供多个输出质量等级,第二步骤,确定提供第一多个质量等级的第一函数和提供第二多个质量等级的第二函数,第三步骤,分配一个预算到算法以便能够在一个输出质量等级上运算该算法,所述输出质量等级是多个输出质量等级的其中之一,第四步骤,分配第一多个质量等级的第一质量等级到第一函数和分配第二多个质量等级的第二质量等级到第二函数。通过整体上分配一个预算到一个算法,一个预算管理器或总体系统控制不需要知道算法包括多个函数。因而总体系统控制能用于一般目的的分配一个预算到同时运行在系统上的算法。预算是基于请求的算法资源。代替分配一个预算到算法,总体系统控制能设置一个输出质量等级到整体上的算法。可以从算法能提供的多个输出质量等级中选择输出质量等级。算法的每个函数能提供多个质量等级。当一个算法得到分配的一个预算或被分配一个输出质量时,一个质量控制能分配一个相应的质量等级或设置到每个函数。从一个函数能提供的多个质量等级中选择相应的质量等级或设置。用于分配的预算提供算法最高输出质量等级的函数的质量等级是一个函数能提供的多个质量等级中的最好的选择。通过分配一个相应的质量等级或设置到每个函数,质量控制在算法包括的函数上隐含的分布它分配的预算。每个函数分配的质量等级是基于被分配到算法的预算。
按照本发明方法的一个实施例被描述在权利要求2中。一个函数可以提供用于多个复杂性等级的一个质量等级,其中例如通过能执行的运算一个函数的许多算术确定一个复杂性等级,函数需求适量的存储器或通信装置,像函数需求的带宽。当算法包括多个函数时,每个函数提供多个质量等级,有一些复杂性等级和可能的质量等级的组合。一个质量控制能执行这些组合并能决定这些组合哪个质量等级分配到一个函数。而且,知道了一个函数的复杂性同时提供相同的质量等级能导致整体上算法的更为平滑的输出质量过渡。
按照本发明方法的一个实施例被描述在权利要求3中。每个函数能运算在它自己的质量等级上。第一函数和第二函数的一种组合可以导致一个算法能提供多个输出质量等级。当一个新的预算被分配到导致一个不同输出质量等级的一个算法时,相同的算法能被再次运算,通过先前所述的分配新的质量等级到第一和第二函数。许多算法提供相同的功能性但在一个不同的输出质量等级上例如可以平行运算,这种方法能限制这些算法。
按照本发明方法的一个实施例被描述在权利要求4中。例如,一个质量控制能从每个函数的复杂性和质量等级的组合中为每个函数选择用于最高质量等级的最低的复杂性。
按照本发明方法的一个实施例被描述在权利要求5中。当分配的预算实质上等于请求的算法资源时,算法实质上不会得到多于它所请求的算法资源的分配。这防止了资源不被算法使用,那样会引起放弃其他的算法运算,因为它们请求的资源已经被分配给该算法。
按照本发明方法的一个实施例被描述在权利要求6中。当除了第二数量资源以外的第一数量的资源实质上等于分配的预算时,算法实质上不使用多于它分配的预算的资源。这防止了该算法的预算超支,会导致其它算法或算法的预算短缺,它们能引起错过这些其它算法或算法的最终期限和降低一个整体输出质量。
按照本发明方法的一个实施例被描述在权利要求7中。由一个算法能提供的输出质量等级依赖于在其上运算算法的一个硬件平台。例如,当算法的第一函数具有特定的硬件需求时,例如像可得到一个硬盘,当硬件没得到时第一函数可以被省去。
按照本发明方法的一个实施例被描述在权利要求8中。由一个算法能提供的输出质量等级依赖于算法可访问的一个软件平台。例如,当算法的第一函数具有特定的硬件需求时,例如像可得到一个线性插值算法时,当线性插值算法没有得到时第一函数可以被不同的运算,例如通过使用一个可用的三次曲线插值算法。
本发明的另一个目的是提供一种方法,用于操作一个可编程的处理设备以减少在一个输出的信号中的失真,它以一种改进的方式分配资源。为实现该目的,按照本发明的方法包括以下步骤第一步骤,提供表现出多个运算状态的数据,所述状态的每个与所述设备的多个运算模式,一个运算的复杂性(C)和一个失真等级(D)的至少一个有关;第二步骤,使用所述数据和基于所述失真等级为每个所述复杂性选择一个所述状态;第三步骤,确定所述设备的一个运算状态;和第四步骤,响应使用所述选择的状态的所述确定的状态,选择其中的所述运算模式以针对每个所述复杂性操作所述设备。
按照本发明的用于操作一个可编程处理设备以减少在一个输出信号中失真的方法的实施例被描述在权利要求10-15中。
本发明的另一个目的是提供一种可伸缩的编程的处理设备,它以一种改进的方式分配资源。为实现该目的,按照本发明的该设备包括可操作在多个模式中的至少一个可伸缩的应用,每个具有一个不同的操作特征的复杂性;一个QOS资源管理器,用于跟踪有多少可用的计算资源可以由所述至少一个可伸缩应用来使用;一个策略管理器,用于确定在给定的一个所述模式中所述可用资源是否适于所述可伸缩应用的操作;和一个本地资源控制,响应所述策略管理器和用于选择,响应由所述策略管理器确定的在所述给定模式中所述可用资源不适于所述至少一个应用的操作,以选择另一个所述模式来用于所述至少一个应用;其中,所述QOS管理器和策略管理器彼此相互响应,和所述至少一个可伸缩应用响应于所述本地资源控制。
按照本发明的可伸缩编程的处理设备的实施例被描述在权利要求17-19中。
通过结合附图进行具体细节的描述,本发明的各种目的,特点和优点将会更加显而易见,在此仅以示例的方式显示,其中图1示例了一个理论上最低可达到的复杂性-失真界限,图2示例了一个系统和理论上最低可达到界限的两个操作模式,图3示例了用于一个ATSC顺应DTV系统的一个传统的视频解码器方框图,图4示例了按照本发明方法的主要步骤的一个实施例,图5示例了包括多个函数的一个算法的例子,图6示例了一个图例,其中设置算法的复杂性与由算法能提供的输出质量等级相反,图7以示意的方式示例了一个存储设备,包括一个存储设备的一个实施例,它包括执行按照本发明方法的被安排的一个计算机程序产品,图8示例了按照本发明一个实施例使用的一个控制系统的一个方框图,图9示例了按照本发明一个实施例的用于一个ATSC顺应DTV系统的一个可伸缩视频解码器方框图,图10示例了按照本发明一个实施例的在各种算法中的一个最低C-D方法;和图11示例了按照本发明另一个实施例的用于一个ATSC顺应DTV系统的一个可伸缩视频解码器方框图。
图12以示意的方式示例了按照本发明系统的一个实施例的最重要的部分,图13以示意的方式示例了包含按照本发明系统的一个实施例的一个电视机,图14以示意的方式示例了包含按照本发明系统的一个实施例的一个置顶盒。
图4示例了按照本发明方法的主要步骤的一个实施例。可编程部件而不是专用单一功能部件能执行连续的媒体处理。那些单一功能部件被用在传统的电视接收机中,一些单一功能部件能被组合来执行诸如用于NTSC或PAL系统的彩色解码,降噪或帧速率上变换。使用引入的可编程部件,可以用软件代替硬件来实现连续的媒体处理算法。一些媒体处理算法的软件实现所期望的优点是减少到市场的时间,硬件再用,软件算法的再用,便携性,和灵活性。媒体处理算法的软件实现必须运行在实时环境中,其中系统资源是有限的,并且不会为一个特殊的处理算法保留足够的系统资源,这能导致由特殊处理算法提供的输出质量的改变。通过感知测量能测量输出质量等级,或客观的通过可用的测量装置。运行处理算法的一个系统能够提供高质量的音频和视频,它具有50Hz以上的一个相对高的帧速率,几乎不容忍帧频波动和一个低的耐受帧跳跃。最好是,系统还能够用最大值30Hz提供低的帧速率,一种高的耐受帧频波动和一种高耐受帧跳跃。
算法可以是隐含分配的预算或者通过隐含的设置算法的一个输出质量等级。一个总体系统控制的目的之一是优化由全部系统提供的总输出质量,同时有效的利用所有可用的资源。总输出质量依赖于在同时运算的算法和一个算法处理的数据之间的数量。例如,系统可以是一个电视,一个PC,一个显示器,一个置顶盒,或一个VCR。为了实现该目的,执行下列主要步骤。
这里,步骤400是一个初始化步骤,其中,一个总体系统控制,例如一个预算管理器访问第一查表的内容,如表1所示。在该表中,“CPU”,“协处理器”和“存储需求”是一个算法能使用的资源的例子。而且,在列中表示的较高的数称为“质量号数”,表明由一个用户感知的一个较好的输出质量等级。通过访问该第一查表的内容,总体系统控制确定预先规定的资源量,例如CPU循环,一个算法请求,以提供一个预定的输出质量等级。
表1是算法一部分的算法或一个质量控制也必须访问表1的内容。当一个用户针对主窗口切换到另一个信道时算法隐含的开始,并且模拟的,新信道的源不同于数字的,老信道的源。开始算法或改变一个算法资源需求的其他的例子是当一个用户交换一个主窗口和一个画中画窗口的内容时,例如在一个得分之后观看重放,当一个视频会议窗口的大小改变时,或当一个新的应用,例如一个视频会议应用,当一个呼叫到达时,在一个附加的窗口中开始。当算法处理的媒体数据改变时一个算法的资源需求也改变。可以通过业务提供者用不同的输入参数发送信源来引起媒体数据中的一个改变,例如当可以是一个24Hz胶片的一个影片被可以是一个60Hz摄影的一个商业节目中断,或者可以通过运动或情景改变来引起。
在步骤402内,例如通过从一些配置文件中读取这种信息来确定一个媒体处理算法包括的函数。该文件例如描述了用于包括诸函数的轮廓或清晰度增强的一个算法,以示意的方式示例在图5中。在该图中,显示了一个细节滤波器512,一个非线性函数502,一个增益504,一个加法器506,和噪声测量508。细节滤波器从包含一个视频信号的一个输入信号中提取高频成分。这些成分能被加到输入信号上以增加视频信号的总体的清晰度印象。非线性函数和随后的增益能减少非自然信号,像由细节滤波器引起的消波,而噪声测量函数能适应清晰度增强,这取决于包含在输入信号内的噪声电平。
在步骤404内,请求的资源和每个函数的质量等级被确定。为了分开关注,参看图5,一个质量控制510把总体系统控制与一个算法包括的函数且是部分的算法屏蔽开来。在用于轮廓或清晰度增强的算法内,细节滤波器更改它请求的资源,例如,CPU循环数或字节数。通过用于滤波器的系数和滤波器类型描述的质量等级确定请求资源的改变水平,垂直,或都有。非线性函数改变它请求的资源,例如CPU循环,并通过非线性函数的量化描述的质量等级来确定,这对于输入信号和输出信号可以是不同的。增益改变它请求的资源,例如一个乘法,位移和加法运算,这取决于在包含在存储器的一个查表中它是否被存储成固定值,通过一个乘法或通过位移和加法运算来计算它。噪声测量改变它请求的资源,例如CPU循环,因为例如它能被打开或关闭。通过例如作出较少的精确增加,加法运算可以改变它请求的资源量。然而,加法运算不能改变它们请求的资源量而为一预定的资源量提供一预定的质量等级,例如,CPU循环,这时也能使用加法运算。用于请求资源和每个函数的质量等级的所有设置的组合导致大规模的设计空间,其中算法的复杂性,或算法的一个函数,或算法函数的一个组合被设置与它的质量等级相反。结果被概括为例如表2所示的第二查表。在该表中,有三个主列“版本”,它分配一个唯一数到一行,“质量”,它聚合有关一个算法能提供的输出质量等级的所有参数,和“复杂性”,它聚合有关算法复杂性的所有参数。提及的参数是没有限制的,例如,存储操作或像带宽和高速缓存之类的通信装置能被用作有关算法复杂性的参数。而且,表2中用于质量和复杂性的号码是绝对的,但可以与选择格式无关规格化的运行视频内的每个像素。使用这种概念,一个媒体算法设计者设计媒体算法包括的函数以便在不同的输出质量等级上提供正确的功能性。
表2在步骤406中,更新表的内容以便用于算法必须访问的可用的软件平台。例如,当软件平台不支持“暂时处理”时,从表中移去该列并相应更新有效行。例如当不支持“水平处理”时,相应的列和行根本不会作出任何处理,从表中移去像行6和N。此外,还可能示例一个运行时间查表,它包含软件平台内来自可用软件函数的一个映射,以便由算法需求的软件函数代替更新表2。
在步骤408中,更新表的内容来用于算法必须在其上运算的可用的硬件平台。例如,当硬件平台不提供一个协处理器时,从表中移去该列并且只使用一个协处理器的所有行被移去。此外,还可能示例一个运行时间替更新表2。
在这些步骤之后,函数和算法包括不同函数提供的多查表,它包含硬件平台内来自可用硬件的一个映射,以便由算法需求的硬件代个质量等级,算法提供的多个输出质量等级,以及来自硬件平台和软件的算法需求的硬件和软件,它们对于质量控制是已知的。总体系统控制只需要知道有关该算法,算法请求的资源,它需求的硬件和算法提供的多个输出质量等级。
在步骤410中,根据一个最好的总体系统输出质量等级,总体系统控制分配一个资源预算到该算法。当系统处于稳定状态时,可以实现一个最好的整体系统输出质量等级,其中所有正运行的算法提供一预定的输出质量等级,并且系统处于最大负荷。这意味着在不调整运行算法的输出质量等级的情况下附加的算法不能被开始。被分配的预算实质上等于算法请求的资源以提供一预定的输出质量等级。当算法得到的分配的预算少于请求的资源时,算法可以不提供预定的输出质量等级,和当算法得到的分配的预算多于请求的资源时,算法可以不使用所有的资源。参看图5,总体系统控制512基于表1的内容把预算分配给算法。总体系统控制512能基于表2的内容把预算分配给算法。在后者的情况下,总体系统控制决定由算法提供的一种更为平滑的输出质量等级的过渡。如表2所示,由算法提供的输出质量等级一个突变过渡是从版本2到版本6,或从版本5到版本6,因为处理以两维方式改变。从版本2到版本3期望更平滑的过渡,因为处理只以一维方式改变。其他的“质量”参数像质量号数和PSNR也提供有关平滑过渡的信息。如在步骤406和408中得到的有关硬件平台和软件平台的信息也能由总体系统控制访问。接着例如基于可用硬件选择由算法提供的输出质量等级。这被显示在表2中,版本1和版本2提供相同的输出质量等级,因为它们的质量号数是相等的,但在CPU和协处理器之间分配它们所需的资源是不同的。质量控制能使用知道的CPU和协处理器之间的分配在其他运行时间当中处理过载情况,其中质量控制能改变分配,同时算法始终提供相同的输出质量。
在步骤412中,质量控制把分配的预算,或输出质量等级翻译成作为整体算法的一个质量等级分配到算法包括的不同的函数。这种翻译是基于表2的内容并考虑用于请求资源和每个函数的质量等级的所有设置的组合。用于请求资源的所有设置的组合确定算法的复杂性。复杂性用一个数表示。该数被加权而得到用于一个特定硬件或软件平台的一个单数。图6显示了复杂性和提供的输出质量等级的组合的一个例子。在针对最低复杂性的最高输出质量上获得有用的组合,如图6中画出的曲线所示。每个点暗示着不同的质量设置或对于一个算法包括的函数的质量等级。在步骤406和408中得到的有关硬件平台和软件平台的信息由质量控制访问。质量控制使用该信息选择复杂性和提供的输出质量等级的最佳的组合,因为最佳组合和组合的数能取决于必须在其上运行的硬件和/或软件平台。通过先前所述的解释表1和表2的内容,可以防止例如通过二次抽样视频数据或删除整个帧,行或像素而改变视频数据的分辨率。此外,质量控制还最大化感知质量,因为例如当一个影片的质量连续改变时,一个用户感觉到系统提供的一个低的输出质量。因此质量等级被少量调整。
在步骤414中,质量控制再分配翻译的分配的预算到算法隐含包括的函数,通过分配相应的质量等级到诸函数。
在步骤416中,函数和总体的算法使用它们分配的预算和设置质量等级开始操作。在完成算法之后,步骤400能再次被执行或者到达最终步骤418。
图7以示意的方式示例了一个存储设备,它包括安排的一个计算机程序产品以执行按照本发明的方法。这里,700是包括代码702的一个光盘。
而且,本发明包括比较实现相同任务的不同的C-D曲线,以便能识别一个算法,该算法对于在确定的复杂性等级上的复杂性和质量失真的折衷比可用的替换更有效。因此,可以选择最好的算法,该算法在确定的复杂性上给出最小的质量失真,并且根据假设的复杂性和失真范围,对于给定的一组算法能实现全局优化的方法。
现在参考图8,按照本发明概念作出的可伸缩视频算法设计控制系统最好包括四个元素一个服务质量(QOS)资源管理器800;一个策略管理器802;一个本地资源控制804;和可伸缩算法806。QOS资源管理器800监视一个整体系统,或成组的子系统内的资源使用。当系统资源改变时它发送控制命令到策略管理器802,并且当子系统被定标时从策略管理器802接收反馈。策略管理器802为QOS管理器800担当一个使节,QOS管理器800具有经本的控制器804命令不同的可伸缩算法806的自主权,以便为适应资源水平的改变递增或递减。尽管策略管理器802控制着不同应用的整体的等级定标,但它不控制一个特定算法806的可伸缩性的细节。例如,它控制MPEG2解码器全部的复杂性等级,但它没有控制MPEG2解码器的哪个算法应该被递减到何种等级。这是本地资源控制804的工作。本地资源控制804(也成为解码资源控制或复杂性转换控制)确切地知道如何定标MPEG2解码器中的每个函数块和定标到何种等级。最终,可伸缩算法806是实现可伸缩性工作的关键。
换句话说,应该理解的是,通常,在计算机质量控制/信息管理领域,作为本领域技术人员来说QOS是熟知的。QOS管理器800基本上管理计算机资源的使用,例如,使用的,没使用的,监视信息流,响应来自要求应用的请求或正在使用的资源。策略管理器802满足QOS管理器800和使用可伸缩算法806的可伸缩应用之间通信的需要,比如图9或11的可伸缩的MPEG2解码器。策略管理器802处理和控制各个可伸缩应用的资源使用并协调这些应用。
本地资源控制804担当用于一个特殊可伸缩应用的一个本地局管理器。例如,现在参考图9,其中示例了按照本发明的一个可伸缩ATSC顺应DTV的视频解码器。其中指定的元素如同图3指定的元素一样,除了按照本发明它们是可伸缩的。因此,在图9的解码器300’中多于一个函数块是可伸缩的。在MPEG2解码器300’中,IDCT是一个函数块的例子。本地资源管理器804(也称为解码资源控制)协调这些块的活动和可伸缩的等级,例如,每个各自的函数块应该被定标多少。如果对于一个特殊的函数块多样的可伸缩算法806是可用的,例如,一个IDCT,为了实现最小的失真,无论何时和何地应该提供多种算法的转换,例如204,206,通过本地资源管理器804执行这些控制任务。
如上所述,基本的研究证实了在一个C-D平面中存在最低的复杂性-失真(C-D)界限100。然而,要设计一个完美的在该界线100上的系统是不实际的。为了最好地实现/接近该理论上的最低界限100,系统设计者通常搜索单一的最佳算法,它能针对不同的复杂等级接近界限100。通常从用于最佳匹配的一组算法中选择一个单一的算法。但如在图2中清楚所示的,例如,不同算法的运算204,206曲线可以彼此交叉。这暗示着在一个失真率上有一个算法比其他的算法具有低的复杂性等级,但在一个不同的失真率上不必引起一个较低的复杂性等级。
现在参考图10,为了更接近全局优化C-D界限100,并且按照本发明的一个优选形式测量可用算法的运算曲线;然后对于可能给定的数据集,选择在运算曲线内对于每个复杂性等级产出最低失真率的算法;最后,选择在不同运算曲线上的切换点,导致一个新的全局优化运算曲线。换句话说,按照本发明,不同算法1002,1004,1006,1008之间的转换被优化利用以便提供比任何各自测试的算法1002,1004,1006,1008更好的一个运算曲线1010。
现在再参考图11,其中示例了按照本发明的另一个ATSC顺应DTV视频解码器300”,它包括一个可伸缩IDCT函数块312,312’,312”。作为公开的一个实施例,使用MPEG2解码器300”的IDCT函数块312,312’,312”,该接近法建议使用多样离散余弦转换(DCT)算法以便对于计算复杂性和质量实现解码器的一种最佳的可伸缩性。对于给定的复杂性等级,选择一个DCT算法以给出最小的失真等级。
理论上应该清楚,如果有限数量的算法是可用的,能够近似或接近实现最低C-D界限100,通过在每个复杂性上执行它们之间的所有比较和选择最合适的一个。然而实际上,设计标准限制了可用算法的数量和比较的时间,并且,如将要讨论的,运算切换点的数量也被限制。因此,本发明的近似法是根据某种给定的复杂性使用一确定数量的可用算法而得到最低可能的质量失真。
还是参考图11,其中示例了按照本发明的另一种形式的用于一个ATSC顺应DTV系统的一个视频解码器300”的方框图。同样是能被容易确定的,解码器300”结合许多相同的元素,如图1的解码器300一样,因此对类似这些元素的讨论将不再重复。现在再参考图3和9,但与解码器300相反,解码器300”包括多个IDCT 312,312’,312”和复杂性转换开关804,而解码器300’包括能完成多个算法和开关转换804的一个IDCT312’。复杂性转换804响应于从策略管理器802产生的信号J。响应信号J而输出信号K的转换控制804有选择地激活IDCT312,312’,312”的其中之一。在图11示例的情况下,有n个IDCT312,312’,312”,在它们之间进行转换以提供n个不同的算法。可替换的,例如在示例的图9中,使用不同算法的被有选择地激活的一个或多个IDCT可以被使用。
再参考图8,QOS800确定多少,或什麽样的中央处理单元(CPU)循环的百分比,即,被给与权力使用的MPEG2解码器300”的处理能力。这可以或不可以足够用于全部能力的MPEG2解码,即非可伸缩。策略管理器802接收该预算,连同用于其它应用的其他预算。策略管理器802确定是否该计算或处理能力的预算量足够用于全部的解码,它还将通知本地资源控制804以激活一个可伸缩的算法806,或从QOS管理器800请求更多的资源以便保持一个合适的输出质量。假设MPEG2解码器300”的本地资源管理器804接收了减少的预算,基于提前的集中统计,例如通过使用一个或多个查表,会做出一个确定,在何种可用处理能力的等级上将激活哪个可伸缩算法204。假设按照本发明的全局优化IDCT算法被激活,和由于复杂性与失真的对立关系被预先脱机确定,在每个复杂性等级上,作为对应于一个特殊的运算点,本地资源管理器804有良好定义的算法来调用和使用。
对于不同的算法,复杂型伸展是不同的。不是所有的可用算法会提供复杂性-失真测量和量程的相同的范围。对于不同算法的运算点可以彼此偏移。对于不同算法的复杂性测量的度量应该是统一的,或者定标到可比较的水平上。运行算法的机器循环的总数可以被定义成算法的复杂性等级。然而,在可伸缩算法的高水平模拟中,测量机器周期是不现实的,因为机器周期是平台和依靠CPU的。在此情况下,乘法缩率可被用作一个复杂型测量。
按照本发明的一个实施例,获得一个运算C-D曲线的过程如下所述步骤1.根据不同的复杂性等级测量可用算法的运算点;步骤2.定标不同算法的运算点到相同的尺度并在相同的线图上画出运算点;步骤3.发现运算曲线的开关点(交叉点);和步骤4.通过选择每个运算曲线部分确定全局优化运算曲线1010,每个运算曲线部分在每个开关点之间是最靠近C-D曲线100的。
总之,对于使用多种方案的一个给定的系统,例如算法和模式,公开的方法建议了一种接近全局优化复杂性-失真界限100的更好的方法。该方法是根据基于信息复杂性的理论且是实际可实现的。它能用在可伸缩多媒体/通信系统设计和可伸缩性分析中。
在描述本发明方法实施例中的顺序不是必须遵循的,作为本领域技术人员来说,在不脱离本发明意旨的理念下,同时使用线程模型,多处理器系统或多样处理,可以改变步骤的顺序或执行的步骤。而且,介绍的质量控制和总体系统控制表现的作用或概念可以被用在本发明的方法中。
图12以示意方式示例了按照本发明系统的一个实施例的最重要部分。该系统1200包括第一存储器,它包含一个算法请求的许多资源的每个资源以提供一个预定的输出质量等级。一个CPU和一个协处理器时能被请求的周期的资源的例子。一个第二存储器1204,包含一个模块以执行算法的第一函数,同时一个第三存储器1206,包含一个模块以执行算法的第二函数。考虑到轮廓或清晰度增强算法514,如图5中所述的。第二存储器1204包含执行细节滤波器500的模块,同时第三存储器1206包含执行噪声测量508的模块。此外,系统还包含更多的存储器,它们包含执行图5中所述的轮廓或清晰度增强算法的所有函数的模块。第四存储器1208,包含一个查表,该查表包含第一函数能提供的第一多个质量等级的每个质量等级,它需求的资源量。第五存储器1210,包含一个查表,该查表包含第二函数能提供的第二多个质量等级的每个质量等级,第二函数需求的资源量。在总体系统控制分配了每资源的一个预算之后,如先前所述,第六存储器1212包含分配到算法的每资源的预算量。此外,总体系统控制也能在总体上分配算法的输出质量等级,从而隐含的分配每资源的一个预算到算法。而且,存储器1214和1216包含分别由算法的第一和第二函数提供的质量等级。存储器1218包含多个复杂性号数,表明算法第一函数运算复杂性的多个等级。存储器1220包含一个复杂性数,表明算法第一函数运算的最小复杂性。为了确定如前所述的存储器1214和1216的内容,质量控制必须访问存储器1218和1220的内容。此外,存储器1202,1208,和1210,1218,1220也能组成一个查表,如表2所示。该组合的查表则能被存储在一个存储器中而代替多个分离的存储器。而且,当用硅实现系统时,其中函数块和查表是彼此硬布线的,则存储器1212,1214和1216可以被省略。质量控制访问存储器1226的内容,该存储器1226包含一个配置文件,该配置文件包含系统内有关可用硬件的信息,并且它访问存储器1228的内容,存储器1228包含一个配置文件,该配置文件包含系统内有关可用软件算法的信息。质量控制必须访问所有先前所述的存储器,而总体系统控制只需要访问存储器1202,1212,1226和1228。然而,当总体系统控制必须访问更多的存储器时,由算法提供的输出质量等级会变得更平滑。此外,系统还包括一个第一协处理器1222,在其上能运行算法的第一函数,和一个第二协处理器1224,在其上能运行算法的第二函数。一个可选的CPU1230,运算整体上的算法,因为在第一和第二函数之间需要一些中间处理的通信。当系统不包含协处理器时,则算法的函数运行在CPU上。当第一函数能被运算在多个复杂性等级上时,第一函数在一个专用协处理器1232上运行在最小复杂等级上,而更多的复杂等级运行在协处理器1222上。此外,在1232或1222上,能够在多个复杂性等级的每个上运行第一函数,或者在CPU1230上,在多个复杂性等级的每个上运行第一函数。通过一个计算机,用打算操作成一个应用程序的软件可以实现该系统,或通过能够运行软件的任何其他的标准体系结构。该系统能被用于操作一个数字电视机1234。该系统也能以硅的形式实现,其中由逻辑构件块代替提到的查表,该逻辑构件块是彼此硬布线的,并且提到的处理器和协处理器被省去。
图13以示意的方式示例了包括按照本发明系统的一个实施例的一个电视机的最重要部分。在此,一个天线1300接收一个电视信号。天线例如也可以是一个圆盘式卫星电视天线,电缆,存储设备,因特网,以太网或任何能接收一个电视信号的其他的设备。一个接收机1302接收信号。信号例如可以是数字的,模拟的,RGB或YUV。除接收机1302外,电视机包括一个可编程部件1304,例如一个可编程集成电路。该可编程部件包含按照本发明的一个系统1306。一个电视屏幕1308显示由接收机1302接收的图像并由可编程部件1304进行处理,按照本发明的系统1306和其他的部分通常包含在一个电视机中,但这里没有显示。
图14以示意的方式示例了包括按照本发明系统的一个实施例的一个置顶盒的最重要部分。在此,一个天线1400接收一个电视信号。天线例如也可以是一个圆盘式卫星电视天线,电缆,存储设备,因特网,以太网或任何能接收一个电视信号的其他的设备。一个置顶盒1402接收信号。信号例如可以是数字的,模拟的,RGB或YUV。除了包含在一个置顶盒中的普通部分外,但在此未示出,置顶盒还包含按照本发明的一个系统1404。电视机1406能显示从置顶盒1402连同按照本发明的系统1404接收的一个信号中产生的输出信号。输出信号也可以直接到一个存储设备,像一个VCR,DVD-RW或一个硬盘,或者它们可以直接到一个因特网链路而取代直接到电视机。
权利要求
1.一种运行一个算法的方法,其中算法包括第一函数和第二函数,该方法包括以下步骤第一步骤,由算法请求一个算法资源以提供多个输出质量等级,第二步骤,确定提供第一多个质量等级的第一函数和提供第二多个质量等级的第二函数,第三步骤,分配一个预算到算法以便能够在一个输出质量等级上运算该算法,所述输出质量等级是多个输出质量等级的其中之一,第四步骤,分配第一多个质量等级的第一质量等级到第一函数和分配第二多个质量等级的第二质量等级到第二函数。
2.按照权利要求1运行一个算法的方法,进一步包括确定能在多个复杂性等级上运算第一函数的第五步骤,同时提供第一质量等级。
3.按照权利要求1运行一个算法的方法,进一步包括以下步骤第六步骤,在输出质量等级上运算该算法,第七步骤,在第一质量等级上运算第一函数,同时由第一函数消耗第一资源量,和在第二质量等级上运算第二函数,同时由第二函数消耗第二资源量。
4.按照权利要求3运行一个算法的方法,进一步包括第八步骤,在多个复杂性等级的一个最小复杂等级上运行第一函数。
5.按照权利要求1运行一个算法的方法,其中分配的预算实质上等于请求的算法资源。
6.按照权利要求3运行一个算法的方法,其中除第二资源量以外的第一资源量实质上等于分配的预算。
7.按照权利要求1运行一个算法的方法,进一步包括第九步骤,确定操作所述方法的一个硬件平台以便确定算法资源和多个输出质量等级。
8.按照权利要求1运行一个算法的方法,进一步包括第十步骤,确定操作所述方法的一个软件平台以便确定算法资源和多个输出质量等级。
9.一种方法,用于操作一个可编程处理设备以减少一个输出信号中的失真,该方法包括以下步骤第一步骤,提供表现出多个运算状态(202)的数据,所述状态(202)的每个与所述设备的多个运算模式(1002,1004,1006,1008),一个运算的复杂性(C)和一个失真等级(D)的至少一个有关;第二步骤,使用所述数据和基于所述失真等级为每个所述复杂性选择一个所述状态;第三步骤,确定所述设备的一个运算状态;和第四步骤,响应使用所述选择的状态的所述确定的状态,选择其中的所述运算模式以针对每个所述复杂性操作所述设备。
10.按照权利要求9的操作一个可编程处理设备以减少一个输出信号中的失真的方法,其中用于第一确定状态的所述选择的运算模式不同于用于第二确定状态的所述选择的运算模式。
11.按照权利要求9的操作一个可编程处理设备以减少一个输出信号中的失真的方法,其中所述第二步骤是基于针对所述复杂性的最小化所述失真等级。
12.按照权利要求9的操作一个可编程处理设备以减少一个输出信号中的失真的方法,其中所述第一步骤包括使用至少一个查表。
13.按照权利要求9的操作一个可编程处理设备以减少一个输出信号中的失真的方法,其中所述可编程设备是一个多媒体通信设备。
14.按照权利要求9的操作一个可编程处理设备以减少一个输出信号中的失真的方法,其中所述设备是包括至少一个IDCT的一个ATSC顺应数字电视的解码器,和每个所述模式对应于所述至少一个IDCT操作的一个不同的模式。
15.按照权利要求9的操作一个可编程处理设备以减少一个输出信号中的失真的方法,其中所述选择包括确定其中的所述模式,所述模式提供一个复杂性-失真特征,该复杂性-失真特征对于使用所述可用计算资源量执行所述任务的那些所述其他模式来说是所期望的。
16.一种可伸缩编程的处理设备,包括可操作在多个模式中的至少一个可伸缩的应用(300’),每个具有一个不同的操作特征的复杂性;一个QOS资源管理器,用于跟踪有多少可用的计算资源可以由所述至少一个可伸缩应用(300’)来使用;一个策略管理器(802),用于确定在给定的一个所述模式中所述可用资源是否适于所述可伸缩应用(300’)的操作;和一个本地资源控制(804),响应所述策略管理器(802)和用于选择,响应由所述策略管理器确定的在所述给定模式中所述可用资源不适于所述至少一个应用的操作,以选择另一个所述模式来用于所述至少一个应用(300’);其中,所述QOS管理器(800)和策略管理器(802)彼此相互响应,和所述至少一个可伸缩应用(300’)响应于所述本地资源控制(804)。
17.按照权利要求16的一种可伸缩编程的处理设备,进一步包括所述本地资源控制可访问的一个存储器。
18.按照权利要求17的一种可伸缩编程的处理设备,其中所述存储器包括一个数据,表明对于多个可用系统资源量的每个所述模式的复杂性-失真特征。
19.按照权利要求16的一种可伸缩编程的处理设备,其中所述设备是包括至少一个IDCT的一个ATSC顺应数字电视的解码器,和每个所述模式对应于所述至少一个IDCT操作的一个不同的模式。
20.一种MPEG2可兼容视频解码器,包括至少一个可变长度解码器(304’);至少一个耦合到所述可变长度解码器(300’)的逆量化器(310’);至少一个耦合到所述逆量化器(310’)的逆离散余弦变换(312’);至少一个耦合到所述可变长度解码器(304’)的运动补偿器(306);耦合到所述逆离散余弦变换(312’)和运动补偿器(306)的一个求和点(314);和一个控制器(804);其中至少一个可变长度解码器(304’),逆量化器(310’),逆离散余弦变换(312’)和运动补偿器(306)被耦合到所述控制器,并响应在多个模式其中之一的操作,对于所述解码器一个输出的一个可接受的失真等级,每个具有一个给定的复杂性特征;和,其中所述控制器基于所述给定的复杂性特征选择所述模式的所述其中之一。
21.按照权利要求20的一种可伸缩的MPEG2可兼容视频解码器,其中其中所述控制器选择所述模式的所述其中之一进一步基于一个可用的计算资源量,该可用的计算资源量用于在至少一个可变长度解码器(304’),逆量化器(310’),逆离散余弦变换(312’)和运动补偿器(306)上进行运算。
22.按照权利要求20的一种可伸缩的MPEG2可兼容视频解码器,其中所述至少一个逆离散余弦变换(312’)包括多个逆离散余弦变换(312,312’,312”),它们响应所述控制器(804)可选择的操作。
23.按照权利要求22的一种可伸缩的MPEG2可兼容视频解码器,其中所述可选择操作的逆离散余弦变换(312,312’,312”)实现所述模式的其中之一的所述选择。
24.按照权利要求23的一种可伸缩的MPEG2可兼容视频解码器,其中所述选择的一个所述模式的所述复杂性-失真特征比所述多个模式的其他的那些更有效。
25.一种计算机程序产品,被安排执行按照任一权利要求1-15的方法。
26.一种存储设备(700),包括按照权利要求25的一种计算机程序产品。
全文摘要
当今,不是专用单一功能部件的可编程部件(1304)能在消费者设备中执行连续的媒体处理,像数字电视机(1310),置顶盒,PC,或VCR。用于那些可编程部件的被写的媒体处理算法必须被设计以提供多个输出质量等级来换取所需的处理资源。由于资源是有限的,必须用它们的资源使用和它们提供的输出质量等级来控制媒体处理算法。消费者设备的用户不喜欢在质量上看到很大的变化,例如当他们正观看一个影片时。因此,像一个算法包括的函数一样,典型的算法特征,使用每函数使用的资源和每函数的质量等级以提供更为平滑的质量过渡。
文档编号H04N7/24GK1394443SQ01803281
公开日2003年1月29日 申请日期2001年8月22日 优先权日2000年8月29日
发明者C·亨特舍尔, S·彭, C·C·A·M·范宗, M·加布拉尼, E·F·M·斯蒂芬斯, R·J·布里尔 申请人:皇家菲利浦电子有限公司