背景技术
提出了各种方法,以减少存储器的使用,以及在压缩和解压图像数据时,防止后处理单元溢出。
例如,专利文献1公开了根据与图像数据亮度信息相对应的压缩转换规则的压缩图像数据技术,作为减少存储器的使用以及在该存储器中存储压缩数据和压缩转换规则的技术。在解压时,从存储器中读出压缩数据和压缩转换规则,并且压缩数据根据压缩转换规则解压。专利文献2公开了一项技术,在编码图像数据并通过传输缓冲存储器将其输出至后续级的处理单元(专利文献2中称为“VBV缓冲器”)时,监视从传输缓冲存储器中输出的比特率,当该比特率超过预定值时,控制从传输缓冲存储器输出的数据,以减少输出的比特率,从而防止VBV缓冲器溢出。
在处理图像数据的压缩和解压的设备中,当连续输入的帧图像(以下简称为“帧”)被压缩时,该压缩数据存储在共享存储器中,并且存储在共享存储器中的相邻帧的压缩数据被读出并且解压,构成帧转移处理操作。
例如,在液晶显示器中,过驱动(overdrive)处理操作是已知的,由于液晶响应缓慢,其施加的是超电压,而非响应完成时所达到的目标电压的电压,为了这个过驱动处理操作,使用了上文描述的帧转移处理操作(参见专利文献3)。
以下结合图7描述该过驱动处理操作。图7示出了图像显示设备1。图像显示设备包括图像显示单元10,用于执行连续输入的帧的过驱动处理操作;以及液晶显示单元20,如液晶显示面板,用于显示与由图像处理单元10处理的帧相对应的图像。图像处理单元10包括压缩单元11、共享存储器12、解压单元13以及补偿单元14。压缩单元11压缩当前帧并且将它们存储在共享存储器12中,解压单元13从共享存储器12中读出相邻压缩帧,并将其解压以获得相邻解压帧。补偿单元14在从相邻解压帧的数据转变至当前帧数据的方向上,生成过驱动量,并且通过该过驱动量补偿当前帧数据,并且将该当前数据帧输出至液晶显示单元20。
此类图像处理设备通常不仅包括负责压缩处理和解压处理的处理单元,也包括用于访问共享存储器的另一处理单元。在多个处理单元使用共享存储器等的SoC(片上系统)中,管理用于访问共享存储器的存储器总线的带宽是很重要的。这是因为,如果处理单元过度使用存储器总线带宽,因为其他单元将无法执行处理,那么会出现存储器总线故障的问题。
专利文献4公开在具有过驱动功能的图像显示设备中,限定共享存储器的容量并且防止图像质量的降质的技术。此种技术在压缩的时候将对象帧分成多个块,并且通过调整压缩比压缩每个块,使得该数据量与为该块预先确定的使用存储量相对应,并且每个块的压缩数据和显示每个块压缩比的精度信息(在专利文献中称为“OD精度信息”)被存储在共享存储器中。在解压时,对象帧每个块的压缩数据以及OD精度信息从共享存储器中读出,并且基于读出的OD精度信息,对象帧每个块的压缩数据被解压,以获得解压帧。在为当前帧生成过驱动量时,根据相邻帧的解压帧的每个块的OD精度信息,在相应块中的像素的过驱动量被生成。
专利文献5根据处理模式中操作总线信息,为系统中每步处理计算转移共享总线的转移量数据,该系统中的图像编码/解码单元的多个模块通过使用共享总线转移数据,并且根据转移数据的量改变图像编码/解码单元的编码参数。
[专利文献1]日本专利申请特开2005-311743
[专利文献2]日本专利申请特开2006-180036
[专利文献3]日本专利申请特开2001-265298
[专利文献4]日本专利申请特开2006-267172
[专利文献5]日本专利申请特开平10(1998)-224532
专利文献4公开的技术存在问题,其原因在于它通过提高压缩比,能够减少由压缩处理单元使用的存储器,从而降低存储器总线带宽,但是,当压缩比被降低时,图像质量降质。存在即使具有相同压缩比也具有可变数量的压缩数据的压缩算法,例如可逆压缩,并且在采用这种压缩算法的压缩的情况下,必需通过预先假设压缩数据的最大量,分配每个块使用的存储量,从而导致浪费。如果根据示出了每块压缩比的OD精度信息生成过驱动量,那么,只有由具有不同压缩比的同一帧中多个块的压缩所引起的图像质量变化能够被解决,而由高压缩比引起的图像质量降质则不能被解决。
为了防止共享总线的故障而改变图像数据的编码参数的专利文献5中的技术,如专利文献4一样,被由编码参数的改变引起图像质量降质的问题困扰。该技术主要是根据处理模式,计算出由各种处理单元使用的总线带宽,并且基于该计算的结果,为图像编码/解码单元分配预定总线带宽。例如,甚至当其他处理单元使用比计算的要少的总线带宽时,由图像编码/解码单元占用的总线带宽也不能被使用,其结果就是效率低。
具体实施方式
图1示出了涉及本发明的实施方式的图像处理设备100。图像处理设备100包括共享存储器110、存储器总线120、多个处理单元130、总线带宽分配单元140、过驱动处理单元200以及液晶显示单元440。
过驱动处理单元200和处理单元130通过存储器总线120访问共享存储器110。
例如,在初始化图像处理设备100时,总线带宽分配单元140分别分配由多个处理单元130和过驱动处理单元200使用的存储器总线120的带宽的预定量。只要多个处理单元130和过驱动处理单元200在分配给它们自身的存储器总线带宽的限度内访问共享存储器110,各自带宽是以不会发生诸如溢出的存储器总线120的故障的方式而确定的。
过驱动处理单元200根据其接收到的图像数据生成将被输出至液晶显示单元440的图像数据。处理单元130根据过驱动处理单元200实现不同处理。
在过驱动处理单元200中,存储器接口(下文简称为“存储器I/F”)210、压缩单元310、写入缓冲器330、写入请求单元340、读出缓冲器370以及解压单元380用作帧转移单元;压缩单元310、写入缓冲器330、写入请求单元340与在权利要求的范围中所称的“解压单元”相对应。压缩单元为每个帧连续输入的图像数据压缩当前帧(由图1中的F2示出),并且将压缩数据写入共享存储器110。解压单元从共享存储器110读出与当前帧F2相邻(先前)的帧(F1未示出)的压缩数据,并且解压该压缩数据以获得与帧F1相邻的解压帧(由图1中的EF1示出)。
压缩单元310压缩帧F2,并且将压缩数据输出至写入缓冲器330。写入请求单元340为存储器I/F 210做出输出至写入缓冲器330的压缩数据的写入请求,以通过存储器总线120将在写入缓冲器330中的压缩数据写入共享存储器110。
第一测量单元320提供在写入缓冲器330和压缩单元310之间。当压缩单元310压缩帧F2时,第一测量单元320测量每单位时间输出的压缩数据量,并且输出测量结果至下文所述的控制单元420。读出请求单元350通过向存储器I/F 210提出读出请求,通过存储器总线120,从共享存储器110中读出相邻帧F1的压缩数据,并且将该压缩数据输出至读出缓冲器370。结果,解压单元380解压存储在读出缓冲器370中的压缩数据,以获得相邻解压帧EF1。
第二测量单元360提供在读出请求单元350和读出缓冲器370之间。第二测量单元360测量每单位时间由读出请求单元350读出的压缩数据量,并且输出该压缩数据量至控制单元420。
存储器总线监视单元410不定时监视存储器总线120的拥挤度,并且输出该监视结果,例如存储器总线120的利用率。
控制单元420具有带宽计算单元425,并且基于第一测量单元320和第二测量单元360的测量结果,计算由过驱动处理单元200使用的存储器总线带宽,以获得计算带宽。
在本实施方式中,总线带宽分配单元140分配整个过驱动处理单元200中由第一阈值所示的存储器总线带宽,并且将第二阈值(第二阈值<第一阈值)所示的存储器总线带宽分配给压缩单元310。分配给压缩单元310的存储器总线带宽是在解压单元380被拒绝访问时压缩单元310能单独使用的存储器总线带宽。
控制单元420基于存储器总线监视单元410的监视结果、总线带宽分配单元140分配给过驱动处理单元200和压缩单元310的存储器总线带宽(第一阈值和第二阈值)、带宽计算单元425所计算出的计算带宽以及寄存器430(其具体细节将在下文描述),控制写入请求单元340、读出请求单元350以及补偿单元390。
补偿单元390是否补偿的问题,由控制单元420控制。补偿单元390可以称为校正单元。如要进行补偿,那么补偿单元390向改变相邻解压帧EF1的数据至当前帧F2数据的方向上生成过驱动量,并且以这个过驱动量来补偿帧F2数据,并且输出该过驱动量至液晶显示单元440。在不进行补偿的情况下,当前帧F2以其原样在液晶显示单元440上输出。
在图1中,作为执行各种处理的功能块进行描述的各种元件,就硬件而言,可由处理器、存储器以及其他LSI构成;就软件而言,可通过装载在存储器中的程序实现。因此本领域技术人员能理解,这些功能可以仅通过硬件、仅通过软件或通过二者的结合实现,并且不限于它们中的任何一种。
以下具体描述是参考图2,通过集中关注控制单元420,对过驱动处理单元200进行具体描述。
图2是示出了由控制单元420执行的处理的流程的流程图。当过驱动处理单元200开始操作时,作为初始化处理操作之一,控制单元420将寄存器的值设置为零(0)(S100)。寄存器430存储写入状态信息,该写入状态信息显示将要由解压单元380读取的相邻(先前)帧的压缩数据是否已写入共享存储器。例如,在本实施方式中,寄存器430是1比特,并且如果相邻帧的压缩数据被写入共享存储器110,其结果为“1”,如果没有写入,其结果为“0”。当过驱动处理单元200开始操作时,共享存储器110中还没有压缩数据,并且寄存器430的默认值为“0”。
虽然以下没有给出特别的解释,紧随过驱动处理单元200操作开始之后,第一测量单元320以及第二测量单元360一直保持运行,并且输出测量结果至控制单元420。在控制单元420中的带宽计算单元425,基于第一测量单元320和第二测量单元360的测量结果,始终计算过驱动处理单元200所使用的存储器总线带宽。存储器总线监视单元410也始终运行,并且向控制单元420输出存储器总线120的利用率,即监视结果。
在初始化之后,控制单元420参考寄存器430的值(S114)。由于寄存器430的值为“0”,这表明与当前帧的相邻的帧的压缩数据并没有写入共享存储器110,控制单元420允许写入请求单元340写入(S114:否,S160)。压缩单元310压缩当前帧,并输出压缩数据至写入缓冲器330,写入请求单元340根据控制单元420的控制,开始将压缩数据从写入缓冲器330写入到共享存储器110。
压缩单元310继续压缩当前帧,并且写入请求单元340继续写入压缩数据。控制单元430将带宽计算单元425计算的计算带宽与第二阈值进行比较,当计算带宽大于第二阈值时,进一步参考存储器总线监视单元的监视结果(S166:是,S180)。如果计算带宽处于与存储器总线120的利用率相对应的容限之外时,控制单元420停止写入请求单元340的写入,并且将寄存器430更新为“0”,表明当前帧的压缩数据不能被写入(S182:否,S184,S186)。此处,寄存器保持在默认值“0”。
另一方面,如果计算带宽等于或小于第二阈值(S166:否),或者如果计算带宽大于第二阈值但是在与存储器总线120的利用率相对应的容限之内时(S166:是,S180,S182:是),那么控制单元420控制写入请求单元340,使得在共享存储器110中的写入可以继续(S170)。
当从步骤S166开始的处理操作在一(1)帧周期(S172:否,S166和后续步骤)期间被重复,并且写入请求单元340的写入一直持续直到该帧周期结束,控制单元420将寄存器430更新为“1”(S172:是,S140)。
当帧周期结束时,将随后帧改变为当前帧的处理便开始了(S150:是,S144和后续步骤)。如果寄存器430的值为“0”(换言之,当写入在步骤S184被暂停时),该处理和上述从S160开始的处理一样,我们在此省略其描述。
另一方面,如果在步骤S114中的寄存器430的值为“1”,表明相帧邻的压缩数据被写入共享存储器110,那么控制单元420允许读出请求单元350开始读出处理,并且补偿单元390开始补偿处理(S114:是,S120)。然后,控制单元420允许写入请求单元340开始压缩和写入当前帧(S121)。此处,因为可能通过读出相邻帧的压缩数据而在空闲区域写入当前帧的压缩数据,控制单元允许读出,然后允许写入,并且过驱动处理单元200中的压缩单元和解压单元可以共享存储区域。
当计算带宽等于或小于第一阈值,以及该计算带宽比第一阈值大但是在与存储器总线120的利用率相对应的容限之内时(S122:否,或者S122:是,S161,S162:是),控制单元允许写入请求单元340继续写入,读出请求单元350继续读出,并且补偿单元390继续补偿(S124)。如果允许写入请求单元340继续写入,读出请求单元350继续读出,并且补偿单元390继续补偿直到一帧周期结束,控制单元420将寄存器430更新为“1”(S130:是,S140)。
另一方面,当计算带宽等于或大于第一阈值,并且处于与存储器总线120的利用率相对应的容限之外时(S122:是,S160,S162:否),该控制单元420停止读和补偿(S164)。对于与从S166开始的处理相对应的写操作,我们省略相关描述。
当上述处理通过将最后一帧转变为当前帧而实施时,过驱动处理单元200的处理终止。
图3至图6示出了在一个帧周期期间,计算带宽的变化对至共享存储器110的压缩数据写入,以及从共享存储器110的压缩数据读出的影响的示例。
图3示出了在一个帧周期期间计算带宽等于或小于第一阈值的情况,并且与图2所示的流程图中步骤S120-S140的处理相对应。如该图所示,在这种情况下,写入和读出(以及补偿,下文同此)在一个帧周期期间持续,并且寄存器450更新为“1”。
图4示出了计算带宽大于第一阈值,并且在一帧周期的中间(图中时刻A)处于与存储器总线120利用率相对应的容限之外的情况。该示例与图2所示流程图中“S120,S121,S122:是,S161,S162:否,S164至S172,S140”的处理相对应。在时刻A读出停止,结果计算带宽被缩小,保持低于第二阈值直至该帧周期终止。在时刻A之后,读出被中断,但是写入持续到最后,并且寄存器430被更新为“1”。
图5示出了在时刻B,计算带宽等于或大于第一阈值,并且处于与存储器总线120的利用率相对应的容限之外的情况。然而,该情况与图4所示的情况不同,其原因在于当前帧的压缩数据不能写入到共享存储器110。如该图所示,直到时刻C,计算带宽与“S120,S121,S122:是,S161,162:否,S164至S172”的处理相对应,并且在时刻B读出被停止。其后,因为计算带宽等于或小于第二阈值,写入继续。在时刻C时,计算带宽超过第二阈值,且增长超出与存储器总线120利用率相对应的容限之外,写入被停止并且寄存器430更新为“0”。在时刻C的处理与“S166:是,S180,S182:否,S184和S186”的处理相对应。
根据图6的示例,直到时刻E,计算带宽与图5所示的时刻C的计算带宽相同。在时刻E,计算带宽超过第二阈值,但是仍处于与存储器总线120利用率相对应的容限之内,从而写入未被停止。在时刻E的处理与图2所示流程图中“S166:是,S180,S182:是,S170”的处理相对应。然后,由于计算带宽保持低于第二阈值直到该帧周期终止,写入持续,寄存器430更新为“1”。
因此,本实施方式的图像处理设备100计算由过驱动处理单元200使用的存储器总线带宽,并且监视存储器总线120的拥挤度,并且基于计算带宽和拥挤度来控制过驱动处理单元200的访问。即使计算带宽超过预先分配带宽的“第一阈值”,如果它保持在与存储器总线120的拥挤度相对应的容限之内时,过驱动处理单元200被允许继续访问,因此空闲存储器总线带宽能够被有效地使用,并且保证了整个系统的效率。此外,由于不需要为了减少压缩数据数量而如在常规技术的情况下执行任何提高压缩比的处理就可能防止存储器总线故障,所以能够保持良好的图像质量。
在根据本实施方式的图像处理设备100中,即使计算带宽超过第一阈值,并且处于与存储器总线120的拥挤度相对应的容限之外,首先仅停止读出。如果此动作导致计算带宽下降到第二阈值以下,那么当前帧的压缩数据的写入仍能够完成,并且随后帧能够被补偿。此外,即使计算带宽超过第二阈值,如果它处于与存储器总线120的拥挤度相对应的容限之内时,那么通过允许继续写入,空闲存储器总线能够被投入实际使用,从而可保证高效率。
如果可逆压缩被用作压缩算法,那么将被使用的带宽根据帧而变化,并且认为难以计算所使用的带宽。由于在本实施方式中,通过测量每单位长度时间内压缩单元获取的压缩数据量以及每单位长度时间内解压单元读出的压缩数据量,计算出带宽,即便使用可逆压缩算法,仍能高精确度地计算出所使用的带宽,这能够证明有效率地使用存储器总线是有效的。
在此,基于本实施方式描述了本发明。本实施方式是一个示例,并且只要没有背离本发明的主旨,可对上述实施方式做各种变更、调整或者合并。本领域技术人员应当理解这些变更、调整或者结合而得的各种结果均在本发明范围之内。
例如,图像处理设备100将存储器总线带宽在整个过驱动处理单元200中分配,并且如果读出被暂停,仅为写入分配带宽,并且两个带宽(第一阈值和第二阈值)用于控制对共享存储器110的访问。然而,只有第一阈值可以是否允许用于控制整个过驱动处理单元200的访问继续。仍是在这种情况下,可能在有效地使用存储器总线带宽来控制图像质量的任何降质的同时,防止存储器总线的故障,存储器总线带宽的有效使用是通过存储器总线带宽的监视和计算带宽结合来控制的,而计算带宽是通过计算由过驱动处理单元200使用的带宽而获得的。
带宽计算单元425和寄存器430的位置不限于图1所示的位置,例如,带宽计算单元425可以被置于控制单元420之外,并且寄存器430可能被安装在控制单元420之内。
控制单元420和总线带宽分配单元140分别装配在图像处理单元100中,并且总线带宽分配单元140设置第一阈值和第二阈值。然而,也可以采用变体,其中第一阈值和第二阈值由控制单元分配。
当在图像处理设备100中计算带宽超过第一阈值,对于写入和读出的控制是基于存储器总线的拥挤度。然而,对于它们的控制可仅基于计算带宽和拥挤度,而不设置第一阈值。例如,如果计算带宽处于与拥挤度相对应的容限之内时,那么过驱动处理单元可能被允许继续访问,并且如果计算带宽处于与拥挤度相对应的容限之外时,过驱动处理单元可能被拒绝访问。
根据本实施方式的图像处理单元100是本发明所涉及的帧转移处理技术应用于具有过驱动功能的图像显示设备的示例。本发明的技术不限于此,并且可应用于任何设备,其中,当前帧图像被压缩并且压缩数据存储在共享存储器中,并且存储在共享存储器中的相邻帧图像压缩数据被读出并解压。
进一步而言,需要注意的是,申请人的目的是包含所有权利要求要素的等同物,即使是在后来的审查期间做了修改。