用于片上系统中的智能数据/帧压缩的系统和方法

文档序号:1722491 发布日期:2019-12-17 浏览:15次 >En<

阅读说明:本技术 用于片上系统中的智能数据/帧压缩的系统和方法 (System and method for intelligent data/frame compression in a system-on-chip ) 是由 S·加代尔拉布 C·秋 M·卡恩 K·厄内万 T·隆哥 S·布思 M·瓦里亚 M·阿列 于 2018-03-29 设计创作,主要内容包括:一种用于智能压缩的示例性方法定义针对由温度传感器生成的温度读数的门限值。根据第一模式或第二模式对被接收到压缩模块中的数据块进行压缩,对第一模式或第二模式的选择是基于针对温度读数的活动水平与所定义的门限值的比较的。第一压缩模式可以是与无损压缩算法相关联的,而第二压缩模式是与有损压缩算法相关联的。或者,第一压缩模式和第二压缩模式两者都可以是与无损压缩算法相关联的,然而,对于第一压缩模式,所接收的数据块是以默认高质量水平设置来产生的,而对于第二压缩模式,所接收的数据块是以降低的质量水平设置来产生的。(An exemplary method for intelligent compression defines a threshold value for a temperature reading generated by a temperature sensor. The data blocks received into the compression module are compressed according to a first mode or a second mode, the selection of the first mode or the second mode being based on a comparison of the activity level for the temperature reading to a defined threshold value. The first compression mode may be associated with a lossless compression algorithm, while the second compression mode is associated with a lossy compression algorithm. Alternatively, both the first compression mode and the second compression mode may be associated with a lossless compression algorithm, however, for the first compression mode, the received data block is generated at a default high quality level setting, and for the second compression mode, the received data block is generated at a reduced quality level setting.)

用于片上系统中的智能数据/帧压缩的系统和方法

技术领域

便携式计算设备(“PCD”)正在个人和专业水平上成为人们的必需品。这些设备可以包括蜂窝电话、便携式数字助理(PDA)、便携式游戏控制台、掌上电脑和其它便携式电子设备。PCD通常包含集成电路或片上系统(“SoC”),它们包括被设计为一起工作以向用户递送功能的大量组件。例如,SoC可以包含任意数量的处理引擎,诸如调制解调器、由内核组成的中央处理单元(“CPU”)、图形处理单元(“GPU”)等,所述处理引擎从SoC上的存储器组件读取数据和指令并且向SoC上的存储器组件写入数据和指令。数据和指令是经由被称为总线的导线集合在设备之间发送的。

高效地设置PCD中的总线带宽和存储器组件的尺寸对于优化SoC上的处理组件的功能能力并且保证最小要求服务质量(QoS)水平是重要的。通常,存储器容量和总线带宽的利用率是通过压缩数据使得数据需要更少的总线带宽进行发送和更少的存储器空间进行存储来进一步优化的。然而,不是所有的数据/帧都是以相同的效率进行压缩的,并且因此,PCD设计者面临着权衡决策:使用在解压缩时产生较低质量输出的有损压缩方法进行压缩,以及作为交换,得益于较小的存储器组件和总线带宽要求;或者替代地,使用在解压缩时产生高质量输出的无损压缩方法进行压缩,但是需要相对较大的存储器组件和总线带宽来维持令人满意的QoS。无论哪种方式,考虑到压缩的“实际最坏情况”,设计者必须设置总线和存储器组件的尺寸,否则他们会面临如由任意数量的关键性能指标所测量的降低的QoS的风险。

简单地说,本领域中已知的用于数据/帧压缩的当前系统和方法指示PCD设计者为了确保可接受的QoS水平的递送,无论所使用的压缩方法如何,必须利用对于大多数用例而言是过大的存储器组件和总线带宽。因此,在本领域中需要使PCD设计者能够正确地设置存储器组件和总线带宽尺寸使得最优压缩方法可以用于给定用例的系统和方法。更具体地,在本领域中需要考虑到任何一个或多个关键性能指标的、利用混合模式压缩方法来优化QoS的智能压缩系统和方法。

发明内容

公开了用于便携式计算设备(“PCD”)中的智能数据压缩的方法和系统的各个实施例。一种示例性方法通过如下操作开始:定义针对由PCD内的温度传感器生成的温度读数的门限值。取决于实施例,温度读数可以是与PCD的面板或外壳温度、PoP存储器设备温度、管芯结温度等相关联的。接下来,第一数据块被接收到根据第一压缩模式的压缩模块中。压缩模块可操作为在第一压缩模式与第二压缩模式之间进行切换。在将第一数据块接收到压缩模块中的情况下,监测针对温度读数的活动水平并且将其与先前定义的针对温度读数的门限值进行比较。基于对针对温度读数的活动水平与定义的门限值的比较,可以将压缩模块切换到第二压缩模式,使得第二数据块被接收到根据第二压缩模式的压缩模块中。

在一替代实施例中,生成针对在一段时间内的平均带宽读数的门限值。带宽读数可以是与DRAM或其它存储设备相关联的。在将第一数据块接收到压缩模块中的情况下,监测针对带宽读数的活动水平并且将其与先前定义的针对带宽读数的门限值进行比较。基于对针对带宽读数的活动水平与定义的门限值的比较,可以将压缩模块切换到第二压缩模式,使得第二数据块被接收到根据第二压缩模式的压缩模块中。

取决于该解决方案的实施例,第一压缩模式可以是与无损压缩算法相关联的,而第二压缩模式是与有损压缩算法相关联的。在其它实施例中,第一压缩模式和第二压缩模式两者都可以是与无损压缩算法相关联的,然而,对于第一压缩模式,所接收的数据块是以默认高质量水平设置来产生的,而对于第二压缩模式,所接收的数据块是以降低的质量水平设置来产生的。此外,预期的是,该解决方案的一些实施例可以被配置用于针对具有图像帧的形式的数据块的应用,而该解决方案的其它实施例被配置用于针对具有在图像帧内的单元的形式的数据块的应用。

附图说明

在附图中,除非另外指示,否则遍及各个视图,相似的附图标记指代相似的部分。对于具有诸如“102A”或“102B”的字母字符标记的附图标记,字母字符标记可以区分出现在同一附图中的两个相似的部分或元素。当旨在使附图标记涵盖在所有附图中具有相同附图标记的所有部分时,可以省略附图标记的字母字符标记。

图1示出了对由多个数据子单元或瓦片组成的图像帧进行压缩的效果;

图2示出了利用DRAM存储器组件的压缩数据事务,DRAM存储器组件具有所要求的每事务最小访问长度(“MAL”);

图3示出了与示例性图像帧相关联的一系列压缩数据事务;

图4A示出了视频流中的示例性帧序列,各个帧具有不同的复杂度并且是根据无损压缩算法进行压缩的;

图4B示出了图4A说明的示例性帧序列,帧是根据利用包括无损算法和有损算法的混合模式压缩的智能压缩方法进行压缩的;

图5是示出考虑到任何一个或多个关键性能指标的、利用图4B的混合模式压缩方法的智能压缩方法的逻辑流程图;

图6是示出考虑到热能测量和门限的、利用图4B的混合模式压缩方法的智能压缩方法的逻辑流程图;

图7是示出考虑到与平均电压设置相关联的系统可靠性目标的、利用图4B的混合模式压缩方法的智能压缩方法的逻辑流程图;

图8示出了视频流中的示例性帧序列,各个帧具有不同的复杂度并且是在对图像质量设置的动态调整之后根据无损压缩算法进行压缩的;

图9是示出考虑到任何一个或多个关键性能指标的、利用图8的动态输入压缩方法的智能压缩方法的逻辑流程图;

图10是示出考虑到热能测量和门限的、利用图8的动态输入压缩方法的智能压缩方法的逻辑流程图;

图11是示出考虑到与平均电压设置相关联的系统可靠性目标的、利用图8的动态输入压缩方法的智能压缩方法的逻辑流程图;

图12是示出用于智能压缩的片上系统的实施例的功能方块图;

图13A是示出图12中的图像CODEC模块的实施例的功能方块图,所述图像CODEC模块被配置用于实现利用包括无损算法和有损算法的混合模式压缩的智能压缩方法;

图13B是示出图12中的图像CODEC模块的实施例的功能方块图,所述图像CODEC模块被配置用于实现在对图像质量设置的动态调整之后利用无损压缩算法的智能压缩方法;

图14是示出用于实现智能压缩方法和系统的、无线电话形式的便携式计算设备(“PCD”)的示例性、非限制性方面的功能方块图;以及

图15是示出用于执行智能压缩方法的、图14中的PCD的示例性软件架构的示意图。

具体实施方式

本文使用的词语“示例性”意味着用作示例、实例或说明。本文中描述为“示例性”的任何方面不必被解释为是排他性的、优选于其它方面或者比其它方面有优势。

在本描述中,术语“应用”还可以包括具有可执行内容(诸如:对象代码、脚本、字节代码、标记语言文件以及补丁)的文件。另外,本文中所提及的“应用”还可以包括本质上不可执行的文件(诸如可能需要被打开的文档或需要被访问的其它数据文件)。

在本描述中,对“DRAM”或“DDR”存储器组件的引用将被理解为预想任何更广类别的易失性随机接入存储器(“RAM”),以及将不是将本文公开的解决方案的范围限制为特定类型或代的RAM。即,将理解的是,系统和方法的各个实施例提供用于管理已经根据无损和/或有损压缩算法进行压缩的数据的事务的解决方案,并且不必限于针对与双数据速率存储器相关联的压缩数据事务的应用。此外,预想本文所公开的解决方案的某些实施例可以适用于DDR、DDR-2、DDR-3、低功率DDR(“LPDDR”)或任何后代的DRAM。

如在本描述中使用的,术语“组件”、“数据库”、“模块”、“方块”、“系统”等等旨在通常指代计算机相关的实体,要么是硬件、固件、硬件和软件的组合、软件,要么是执行中的软件,除非具体地限于某种计算机相关的实体。例如,组件可以是,但不限于是:在处理器上运行的进程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。通过说明的方式,在计算设备运行上的应用和计算设备两者可以是组件。一个或多个组件可以存在于进程和/或执行的线程中,并且组件可以位于一个计算机中和/或分布在两个或更多计算机之间。此外,这些组件可以从具有存储在其上的各种数据结构的各种计算机可读介质中执行。组件可以诸如根据具有一个或多个数据分组(例如,来自与本地系统、分布式系统中的另一组件进行交互、和/或跨越诸如互联网的网络通过信号的方式与其它系统进行交互的一个组件的数据)的信号通过本地和/或远程进程进行通信。

在本描述中,术语“中央处理单元(“CPU”)”、“数字信号处理器(“DSP”)”、“图形处理单元(“GPU”)”和“芯片”可互换地使用。此外,CPU、DSP、GPU或芯片可以包括在本文中通常被称为“内核”的一个或多个不同的处理组件。

在本描述中,术语“引擎”、“处理引擎”、“处理组件”、“发生器”等用于指代片上系统(“SoC”)内的、生成数据和/或帧并且将它们在总线上传输给存储器组件或者从存储器组件进行传输的任何组件。因此,引擎可以指代,但不限于指代:CPU、DSP、GPU、调制解调器、控制器、相机、视频记录仪等。

在本描述中,术语“总线”指代通过其从处理引擎向存储器组件和位于SoC上或SoC外的其它设备发送数据的导线集合。将理解的是,总线包括两部分:地址总线和数据总线,其中数据总线传输实际的数据,并且地址总线传输指定数据在存储器组件中的位置的信息(即,地址和关联的元数据)。术语“宽度”或“总线宽度”或“带宽”指代通过给定总线每周期可以发送的数据量,即“块尺寸”。例如,16字节总线可以一次发送16字节的数据,而32字节总线可以每周期发送32字节的数据。此外,“总线速度”指代通过给定总线每秒可以发送数据块的次数。类似地,“总线周期”或“周期”指代通过给定总线对一个数据块的传输。

在本描述中,术语“便携式计算设备”(“PCD”)用于描述依靠有限容量的电源(诸如电池)进行操作的任何设备。尽管电池操作的PCD已经被使用了数十年,但是与第三代(“3G”)和***(“4G”)无线技术的到来相结合的可再充电电池的技术进步已经实现了具有多种能力的大量PCD。因此,PCD可以是蜂窝电话、卫星电话、寻呼机、PDA、智能电话、导航设备、智能本或阅读器、媒体播放器、上述设备的组合、具有无线连接的膝上型计算机等。

在本描述中,术语“无损”和“有损”指代不同类别的压缩算法或方法,而不意味着指代任何特定算法。本领域技术人员将辨别给定的特定压缩算法是“无损”还是“有损”的。一般来说,并且如本领域技术人员将理解的是,“无损”和“有损”是描述在对数据集合或帧的压缩中在文件被解压缩时所有的原始数据是否都能够被恢复的术语。在“无损”压缩的情况下,最初在帧中的数据的每一个比特在帧被解压缩之后保持,即,所有信息完全被恢复。图形交换文件(“GIF”)是提供无损压缩的一种示例性图像格式。相反,有损压缩算法通过永久地消除某些信息(尤其是冗余信息)来减少帧或数据集合。因此,当利用有损算法进行压缩的文件被解压缩时,仅一部分原始信息被保留(尽管用户体验可能没有因此受影响)。有损压缩算法可以适用于基于视频和声音的用例,例如,因为某一数量的信息损失可能不会被用户检测到。JPEG图像文件是提供有损压缩的示例性图像格式。使用有损压缩算法,设计者可以决定要引入多少损失并且在文件大小与输出图像质量之间作出权衡。

在本描述中,术语“图像”、“数据集合”、“数据”、“帧”、“图像帧”、“缓冲区”、“文件”等可互换使用。尽管本文在发生器组件生成具有图像帧的格式的数据集合(诸如可以由相机或视频子系统生成的)的上下文中描述了本解决方案的实施例,但是将理解的是,本文所描述的解决方案不限于针对帧的应用。事实上,预想的是,本解决方案的实施例可以适用于通常可以得益于数据压缩的任何用例。

在本描述中,术语“瓦片”和“单元”可互换地用于指代数据块,所述数据块形成较大数据块(诸如帧)的子集。

在本描述中,术语“未压缩”指代处于其原始、压缩前状态的帧,而术语“解压缩”指代首先使用压缩算法从其未压缩状态被压缩并且稍后被解压缩的帧。取决于所使用的压缩类别,被解压缩的帧的数据集合与帧的原始、未压缩状态的数据集合可以是相同的(无损压缩)或者可以是不同的(有损压缩)。

如帧压缩领域的技术人员将理解的,通过任何给定的压缩算法生成的作为结果的压缩比不可避免地在帧之间改变。数字地捕获的视频序列的在给定帧中的纹理层次、光线条件、ISO设置等可以显著地不同于同一序列中的不同帧,并且因此,针对帧的压缩的相对水平也将显著地不同。例如,视频序列中的、捕获几个人站着并且谈话的帧与捕获相同的几个人在街道上急跑以远离背景中的***的后续帧相比,更有可能经历高水平的压缩。简单地说,具有跑动主体和***的帧就是具有许多数据,如果该帧是为了在稍后被解压缩时实现高质量渲染,则该帧在压缩时的损失是无法承担的。

在具有足够大的处理组件、存储器组件、总线带宽和电源的情况下,PCD设计者将不需要考虑一种压缩算法与另一种压缩算法的权衡,他们简单地以可能的最高质量水平来产生帧,并且利用无损压缩算法进行压缩(如果真要进行压缩的话)。这样,他们可以确保用户所体验到的QoS总是在其最大可能水平上。但是,针对PCD的受限制的形状因子的现实迫使设计者在设置PCD中的组件的尺寸时权衡各种压缩算法,以实现针对所有预测用例的最小可接受QoS。

因此,PCD设计者在评估针对所有已知用例所需要的带宽要求和组件尺寸时,已经通常使用了“实际最坏情况”压缩比。因此,实际最坏情况是为了维持针对需要压缩的最困难帧(例如,捕获人们在街道上急跑以远离背景中的***的帧)的最小可接受QoS所要求的压缩比。使用实际最坏情况,设计者作出保守的尺寸设置选择,以确保存储器和总线带宽将总是足够的,而不考虑给定帧的复杂度。要注意的是,如果设计者将带宽的尺寸设置地过小,则在有问题的用例期间的处理中所产生的时延可能导致丢帧、每秒帧(“FPS”)速率的下降等。相反,对于好于实际最坏情况的所有用例,系统可能是针对实现最小可接受QoS而言将尺寸显著地设置地过大的,这导致较高成本的系统。

有利地,本解决方案的实施例向设计者提供“正确地设置”发生器、存储器组件和总线带宽的“尺寸”以在一系列用例之间优化功耗和QoS水平的能力。要注意的是,本解决方案的实施例利用混合模式压缩方法。在这样做时,并且如将在下文鉴于附图更透彻地解释的,某些实施例提供在单个用例中使用无损和有损压缩算法,算法的选择和持续时间是考虑到关键性能指标来作出的。某些其它实施例提供动态帧质量水平作为无损压缩块的输入,以便创建更“可压缩”的帧。

转向图1,所示出的是对包括多个数据子单元或瓦片的图像帧进行压缩的效果。在本描述中,可以在由256字节瓦片组成的图像帧的上下文内描述各个实施例。然而,要注意的是,将理解的是,256字节瓦片大小以及各种压缩数据事务大小在本质上是示例性的,并且不建议本解决方案的实施例限于针对256字节瓦片大小的应用。此外,将理解的是,在本描述中对针对DRAM的任何特定最小访问长度(“MAL”)或访问块大小(“ABS”)的引用用于便于描述本解决方案,并且不建议本解决方案的实施例限于针对具有特定MAL要求的DRAM设备的应用。因此,本领域技术人员将认识到的是,在本描述中引用的特定数据传输大小、块大小、总线宽度、MAL等仅是出于示例性目的而提供的,并且不将所预想的解决方案的范围限制为适用于具有相同的数据传输大小、块大小、总线宽度、MAL等的应用。

返回图1图示,将未压缩图像帧(也称为“缓冲区”)描绘为包括三十个未压缩瓦片或单元,如由最黑阴影表示的,每一个未压缩瓦片或单元具有大小“K”。示例性大小K可以是256字节,然而,如上文所解释的,瓦片不限于任何特定大小并且可以根据应用进行改变。如本领域技术人员将理解的是,可以通过逐瓦片地应用压缩算法的压缩器块(在图1中被描绘为图像CODEC模块113)来减小未压缩图像帧的大小,从而优化其在总线上的传输并且使其对存储器容量的影响最小化。压缩的结果是压缩图像帧加上元数据文件,如图1图示中可见。压缩图像帧包括在原始、未压缩图像帧中的、已经遭受由压缩块113进行的压缩算法之后的瓦片。

在未压缩图像帧中,每个瓦片可以具有大小K,而在压缩图像帧中,每个瓦片可以具有大小K或更小(K(对于没有可能的压缩)、K-1字节、K-2字节、K-3字节、...、K=1字节)。在该图示中,形成压缩图像帧的各个瓦片由不同水平的阴影来表示,这取决于由压缩块113已经向给定瓦片所拥有的数据应用其压缩算法而导致的压缩程度。要注意的是,如本领域技术人员将理解的,压缩块113创建用于压缩图像帧元数据的伴随缓冲区。压缩图像帧元数据包含用于压缩图像帧中的每个压缩瓦片的大小、类型和属性的记录。因为DRAM访问可以限于最小访问长度MAL的单元,所以给定压缩瓦片的大小在元数据中可以被表示成为了表示压缩瓦片大小所要求的ABS数量(例如,1MAL、2MAL、...、n MAL)。元数据中的这种大小描述允许将来的缓冲区读取器仅向存储器请求将每个瓦片解压缩回原始大小K所需要的最小要求数据量。

图2示出了利用DRAM存储器组件的压缩数据事务,所述DRAM存储器组件满足针对每个事务是每事务最小访问长度(“MAL”)的整数倍的要求。如从图2图示中可以理解的,压缩瓦片可以具有小于针对其被存储在其中的DRAM的最小访问长度要求的整数倍的长度。因此,针对压缩数据的请求要求包括为了满足MAL要求的整数倍所需要的某个数量的无用数据或“填充”的事务。向压缩瓦片数据中添加不携带任何信息的填充,以使事务大小是系统MAL的整数倍(i*MAL)。示例性MAL可以是32字节或64字节,这取决于特定芯片技术(诸如LPDDR2、LPDDR3、LPDDR4等)和存储器总线宽度(x16、x32、x64)。作为一示例,可以利用1字节的填充数据来填充具有63字节大小的压缩瓦片,以便产生完整的64字节事务大小(2x32BMAL或1x64B MAL)。类似地,如果MAL是32字节,则可以利用31字节的填充数据来填充具有65字节大小的压缩瓦片(3x32B MAL),或者如果MAL是64字节,则可以利用63字节的填充数据来填充具有65字节大小的压缩瓦片,以便产生完整的128字节事务大小(2x64B MAL)。要注意的是,在上文示例中,压缩瓦片大小的区别仅是2字节;然而,由于65字节压缩瓦片超过64字节,则其事务必须包括显著更多的填充。

图3示出了与示例性图像帧相关联的一系列压缩数据事务。要注意的是,图3图示中的事务或单元可以被认为是已经根据无损或有损压缩算法进行了压缩(以及在图1和图2图示中描绘的那些单元)。

利用“N”列和“M”行的瓦片示出了图像帧。根据本领域中已知的方法,第一行瓦片中的前四个顺序瓦片是按照其未压缩长度、压缩长度和事务长度(压缩长度加上填充)来示出的。为了便于示出,该示出是在前四个顺序瓦片的上下文内进行的,如本领域技术人员将理解的,所描绘的概念是与除了图像帧的第一行瓦片中的前四个顺序瓦片之外的瓦片组相关的。

考虑处于其未压缩状态的示例性四个顺序瓦片,每个瓦片(#1,0;#2,0;#3,0;#4,0)具有256字节长度(其它长度是预想的)。当被压缩时,示例性四个顺序瓦片分别具有112字节、56字节、33字节和177字节的长度。假设MAL是64字节,则示例性四个顺序瓦片中的每个瓦片的事务长度可以分别是128字节(112字节压缩数据加上16字节填充)、64字节(56字节压缩数据加上8字节填充)、64字节(33字节压缩数据加上31字节填充)和192字节(177字节压缩数据加上15字节填充)。要注意的是,为了处理所有四个示例性顺序瓦片,本领域中已知的方法进行四次事务:针对每个压缩瓦片进行一次事务。

图4A示出了视频流中的示例性帧序列,各个帧具有不同的复杂度并且是根据无损压缩算法进行压缩的。将结合图4A图表描述的图4B示出了图4A图示的示例性帧序列,帧是根据利用包括无损算法和有损算法的混合模式压缩的智能压缩方法进行压缩的。要注意的是,尽管图4图示中的块被称为帧,但是预想这些块也可以表示帧内的瓦片。即,预想本解决方案的实施例可以逐帧地实现,或者如果是这样配置的,则可以逐瓦片地实现。因此,本文描述的解决方案的范围将不仅限于帧级别上的应用,因为本解决方案的实施例还可以在瓦片级别上应用。

如从与图4相关联的图例中可以理解的,被描绘为实心块的那些帧是根据无损压缩算法进行压缩的帧,而被描绘为透明块的那些帧是根据有损压缩算法进行压缩的帧。通过实线连接的那些帧是形成被生成、被压缩并且被输出到存储器设备(例如,诸如DDR存储器组件)的帧的序列的那些帧。图4A和图4B图表两者上的“y轴”表示帧的压缩比,而“x轴”表示时间。

首先参照图4A图表,帧的发生器(例如,诸如相机或视频子系统)正在生成根据无损压缩算法进行压缩的顺序帧。对于以帧1开始的前七个帧,帧的压缩比高于如图表中的水平虚线所表示的最小目标压缩比门限。因此,对于前七个帧,原始产生的帧的复杂度是这样的,无损压缩算法的应用不产生低到以致于使系统带宽负担过重并且不利地影响QoS水平的压缩比。然而,从帧8开始并且继续到帧20,原始产生的帧的相对复杂度增加,使得无损压缩算法无法将帧大小减小到高于期望目标最小压缩比的水平。原始产生的帧的相对复杂度在帧21处降低,使得所应用的无损压缩算法充分地减小帧的大小,以维持高于目标线的压缩比。对于图4A图示中的帧8至帧20(这些帧是根据无法将帧大小减小到超过目标最小压缩比的无损压缩算法进行压缩的),存在用户体验到无法接受的低QoS的风险。用于容纳帧8至帧20的不充足的带宽可能导致系统通过以下操作来进行响应:丢弃帧中的一个或多个帧,增加时延使得有效帧速率降低,等等。

参照图4B图表,在图4A图表中示出的原始产生的帧的相同序列是使用根据本解决方案的实施例的智能压缩方法进行压缩的。与图4A图表中一样,帧1至帧7是根据无损压缩算法进行压缩的。以帧8在其未压缩状态中的相对复杂度,其是使用无损压缩算法被最小程度地压缩的,并且因此,显示出低于目标最小压缩比的压缩比。响应于帧8压缩比,可以使用生成超过目标最小值的压缩比的有损压缩算法来对帧9进行压缩。帧序列继续下去,其中后续帧是根据有损压缩算法进行压缩的,直到在帧21处,被识别的是,优选的无损压缩算法将产生可接受压缩比。此时,混合模式方法默认回到无损压缩算法,并且使用无损算法继续在帧22处进行压缩。

可以采用多种方式来实现对帧21中的降低的复杂度的检测。一个示例将是以无损方式对每个帧/瓦片进行编码并且记录所产生的压缩比,而不是将实际的无损压缩数据写入存储设备或DRAM;一旦在帧上记录的压缩帧高于目标最小值,则系统可以切换为将无损压缩用于帧22,如图4B中所示。替代地,可以通过检查有损帧的压缩比来实现对帧21中的降低的复杂度的检测。对于低复杂度帧,有损压缩比将显著地高于用于高复杂度帧的有损压缩比。然后,系统可以使用针对有损压缩比的预定义门限来指示:一旦针对给定帧(例如,针对如图4B中所示的帧22)超过了该有损压缩比门限,系统就可以切换为使用无损压缩。

有利地,通过使用混合模式方法,智能压缩解决方案的实施例可以使序列中的被压缩至低于目标最小压缩比的压缩比的帧(例如,图4B图表中的帧8)的数量最小化,同时还使序列中的使用有损压缩算法进行压缩(当无损压缩算法将产生可接受压缩比时)的帧(例如,图4B图表中的帧21)的数量最小化。

图5是示出考虑到任何一个或多个关键性能指标(“KPI”)(诸如但不限于:最小目标压缩比、带宽利用率、电压电平、帧速率(“FPS”)、压缩时延等)的、利用图4B的混合模式压缩方法的智能压缩方法500的逻辑流程图。要注意的是,图4B图表所示出的混合模式压缩方法是使用输出帧的压缩比作为KPI来描述的,然而,预想相同的方法可以是使用除了压缩比之外的KPI作为用于切换压缩模式的触发来采用的。

在方块505处开始,可以将原始产生的帧接收到图像CODEC 113中,图像CODEC 113包括一个或多个无损压缩块和一个或多个有损压缩块。在方块505处,使用默认的或优选的无损压缩块来对接收到的帧进行压缩。接下来,在方块510处,对相关的KPI进行监测,以确定QoS是否保持在可接受水平处,并且在决策方块515处,将所监测的KPI与预定门限进行比较。如果KPI高于(或低于,由于可能是这种情况)预定门限,即,KPI处于可接受水平,则方法500可以沿着“是”分支回到方块505,并且继续使用无损压缩算法对输入的未压缩帧进行压缩。然而,如果所监测的KPI在与预定门限进行比较时不处于可接受水平,则从决策方块515沿着“否”分支来到方块520。在一示例性实现方式中,在遇到处于不可接受水平处的KPI的第一实例之后立即沿着“否”分支。在其它示例性实现方式中,向“否”决策中添加迟滞,其中在调用“否”分支之前,KPI必须是不可接受的达X连续次数的可编程序列或者在Y个连续序列的窗口中达X次。

在方块520处,将下一个产生的未压缩帧接收到CODEC 113中并且使用有损压缩块进行压缩。有利地,尽管使用有损压缩算法进行压缩的帧稍后可能生成具有与原始生成的未压缩帧相比相对较低的质量水平的解压缩帧,但是与有损压缩相关联的减小的带宽可以导致相关的KPI有朝着可接受水平返回的趋势。

接下来,在方块525处,对相关的KPI进行监测,以确定QoS是否已经返回到可接受水平,并且在决策方块530处,将所监测的KPI与预定门限进行比较。如果KPI还没有返回到可接受水平,则方法500可以沿着“否”分支回到方块520,并且继续使用有损压缩算法对输入的未压缩帧进行压缩。然而,如果所监测的KPI在与预定门限进行比较时指示KPI已经返回到可接受水平,则从决策方块530沿着“是”分支来到决策方块505。

在决策方块535处,方法500可以考虑是否已经使用有损压缩算法生成了足够的帧,以证明返回到无损压缩算法是合理的。尽管本解决方案的一些实施例可以在KPI一指示可接受水平就触发返回到优选的无损压缩模式,但是预想其它实施例可以包括用于缓解发生如下情况的概率的迟滞考虑:KPI可能在门限之间来回反弹,并且这样做时,触发过多的在无损模式与有损模式之间切换的事件。在一示例性实现方式中,在遇到高于门限的KPI的第一实例之后立即沿着“是”分支。对于其它示例性实现方式,向“是”决策中添加迟滞,其中在调用“是”分支之前,KPI必须是不可接受的达K连续次数的可编程序列或者在L个连续序列的窗口中达K次。

在决策方块535处返回到方法500,如果已经使用有损压缩对预定数量的帧进行了压缩,同时KPI在与门限进行比较时处于可接受水平,则可以沿着“是”分支,并且方法返回到方块505,在方块505处,将向下一个输入的未压缩帧应用无损压缩算法。然而,如果在决策方块535处,还没有使用有损压缩算法对预定数量的帧进行压缩,同时KPI保持处于可接受水平,则可以沿着“否”分支来到方块540,并且接收下一个未压缩帧并且使用有损压缩块进行压缩。在方块545处,对KPI进行监测,并且方法500回环到决策方块530。

用这种方式,针对使用混合模式压缩方法的智能压缩方法的解决方案的实施例可能对一些解压缩帧的将来质量作出妥协,以便对如通过相关的一个或多个KPI量化的QoS进行优化。

图6是示出考虑到热能测量和门限的、利用图4B的混合模式压缩方法的智能压缩方法600的逻辑流程图。要注意的是,图4B图表所示出的混合模式压缩方法是使用输出帧的压缩比作为用于确定何时在无损压缩模式与有损压缩模式之间进行切换的触发来描述的,然而,预想可以在考虑到热预算约束和/或热测量的情况下来采用相同的方法作为缓解和管理热能生成的方式。即,预想可以将图4B的混合模式压缩方法用作热管理技术。

在方块605处开始,可以将原始产生的帧接收到图像CODEC 113中,图像CODEC 113包括一个或多个无损压缩块和一个或多个有损压缩块。在方块605处,使用默认的或优选的无损压缩块来对接收到的帧进行压缩。接下来,在方块610处,对一个或多个温度传感器进行监测,以确定热能水平是否保持在可接受水平处,并且在决策方块615处,将传感器所产生的温度读数与预定门限进行比较。所监测的温度传感器可以是与PCD 100的面板温度、处理内核的结温度、PoP存储器组件的温度等相关联的。如果温度低于预定门限,即,所监测的热状况处于可接受水平,则方法600可以沿着“否”分支回到方块605,并且继续使用无损压缩算法对输入的未压缩帧进行压缩。然而,如果所监测的热状况在与预定门限进行比较时不处于可接受水平,则从决策方块615沿着“是”分支来到方块620。替代实现方式可以选择在满足热KPI之后不立即采用“是”分支,而是在采用“是”分支之前进行等待,直到热KPI高于门限达预定时间段为止。

在方块620处,将下一个产生的未压缩帧接收到CODEC 113中并且使用有损压缩块进行压缩。有利地,尽管使用有损压缩算法进行压缩的帧稍后可能生成具有与原始产生的未压缩帧相比相对较低的质量水平的解压缩帧,但是与有损压缩相关联的减小的带宽可以降低功耗并且导致所监测的热状况有朝着可接受水平返回的趋势。

接下来,在方块625处,对温度传感器进行监测,以确定热状况是否已经返回到可接受水平,并且在决策方块630处,将温度读数与预定门限进行比较。如果温度传感器所监测的热状况还没有返回到可接受水平,则方法600可以沿着“是”分支回到方块620,并且继续使用有损压缩算法对输入的未压缩帧进行压缩。然而,如果来自温度传感器的读数在与预定门限进行比较时指示热状况可能已经返回到可接受水平,则从决策方块630沿着“否”分支来到决策方块635。

在决策方块635处,方法600可以考虑是否已经使用有损压缩算法生成了足够的帧,以证明返回到无损压缩算法是合理的。尽管本解决方案的一些实施例可以在温度读数一指示针对正在监测的热状况的可接受水平就触发返回到优选的无损压缩模式,但是预想其它实施例可以包括用于缓解发生如下情况的概率的迟滞考虑:热状况可能在门限之间来回反弹,并且这样做时,触发过多的在无损模式与有损模式之间切换的事件。

在决策方块635处返回到方法600,如果已经使用有损压缩对预定数量的帧进行了压缩,或者如果已经过去了预定时间量,同时与温度传感器相关联的热状况在与门限进行比较时处于可接受水平,则可以沿着“是”分支,并且方法返回到方块605,在方块605处,将向下一个输入的未压缩帧应用无损压缩算法。然而,如果在决策方块635处,还没有使用有损压缩算法对预定数量的帧进行压缩,或者预定时间量还没有过去,同时热状况保持处于可接受水平,则可以沿着“否”分支来到方块640,并且接收下一个未压缩帧并且使用有损压缩块进行压缩。在方块645处,使用温度传感器所生成的温度读数来对热状况进行监测,并且方法600回环到决策方块630。

用这种方式,针对使用混合模式压缩方法的智能压缩方法的解决方案的实施例可能对一些解压缩帧的将来质量作出妥协,以便缓解不利的热能量生成以及随后地设备的温度。

图7是示出考虑到与平均电压设置相关联的系统可靠性目标的、利用图4B的混合模式压缩方法的智能压缩方法700的逻辑流程图。要注意的是,图4B图表所示出的混合模式压缩方法是使用输出帧的压缩比作为用于确定何时在无损压缩模式与有损压缩模式之间进行切换的触发来描述的,然而,预想可以在考虑到与平均电压设置相关联的系统可靠性目标的情况下来采用相同的方法。即,预想可以将图4B的混合模式压缩方法用作用于将平均供电电压维持在上门限与下门限之间的技术。本领域技术人员将理解的是,为了确保芯片102的可靠性,可能期望将平均供电电压保持在最大平均以下,但是不要低得太多以至于用户所体验的平均QoS不必要地受损害。

在方块705处开始,可以将原始产生的帧接收到图像CODEC 113中,图像CODEC 113包括一个或多个无损压缩块和一个或多个有损压缩块。在方块705处,使用默认的或优选的无损压缩块来对接收到的帧进行压缩。接下来,在方块710处,对一个或多个电压传感器进行监测,以计算供应给芯片102的电压随时间的移动平均。基于移动平均,方法700可以通过在决策方块715处将电压平均与预定门限进行比较,来确定芯片的长期可靠性是否是可接受的。如果供电电压平均低于预定门限,即,所预测的芯片的长期可靠性处于可接受水平,则方法700可以沿着“否”分支回到方块705,并且继续使用无损压缩算法对输入的未压缩帧进行压缩。然而,如果供电电压平均在与预定门限进行比较时不处于可接受水平,则从决策方块715沿着“是”分支来到方块720。

在方块720处,将下一个产生的未压缩帧接收到CODEC 113中并且使用有损压缩块进行压缩。有利地,尽管使用有损压缩算法进行压缩的帧稍后可能生成具有与原始产生的未压缩帧相比相对较低的质量水平的解压缩帧,但是与有损压缩相关联的减小的带宽可以降低功耗并且导致供电电压平均有朝着可接受水平返回的趋势。

接下来,在方块725处,对电压传感器进行监测,以确定供电电压平均是否已经返回到可接受水平,并且在决策方块730处,将供电电压平均与预定下门限进行比较。如果从所监测的电压传感器计算出的供电电压平均保持高于下门限,则方法700可以沿着“否”分支回到方块720,并且继续使用有损压缩算法对输入的未压缩帧进行压缩。然而,如果供电电压平均指示供应给芯片102的平均电压已经下降到下平均门限以下,则从决策方块730沿着“是”分支回到方块705,在方块705处,向下一个输入的未压缩帧应用无损压缩。

用这种方式,针对使用混合模式压缩方法的智能压缩方法的解决方案的实施例可能对一些解压缩帧的将来质量作出妥协,以便将平均供电电压维持在与目标芯片可靠性目标相关联的范围中。

图8示出了视频流中的示例性帧序列,各个帧具有不同的复杂度并且是在对图像质量设置的动态调整之后根据无损压缩算法进行压缩的。要注意的是,尽管图8图示中的块被称为帧,但是预想这些块也可以表示帧内的瓦片。即,预想本解决方案的实施例可以逐帧地实现,或者如果是这样配置的,则可以逐瓦片地实现。因此,本文描述的本解决方案的范围将不仅限于帧级别上的应用,因为本解决方案的实施例还可以在瓦片级别上应用。

如从与图8相关联的图例中可以理解的,被描绘为实心方块的那些帧是在未压缩帧是使用默认“高”图像质量水平来生成的情况下根据无损压缩算法进行压缩的帧。相反,被描绘为透明方块的那些帧是在未压缩帧是使用在质量上相对于默认图像质量水平是“较低”的经调整的图像质量水平来生成的情况下根据有损压缩算法进行压缩的帧。实心圆指示发生器(诸如相机或视频子系统)正在生成未压缩帧所采用的图像质量水平。通过实线连接的那些帧是形成根据活动图像质量水平设置被生成、被压缩并且被输出到存储器设备(例如,诸如DDR存储器组件)的帧的序列的那些帧。图8图表上的左侧“y轴”表示输出帧的压缩比,右侧“y轴”表示针对未压缩帧的发生器的图像质量水平设置,以及“x轴”表示时间。

参照图8图表,帧的发生器(例如,诸如相机或视频子系统)正在以默认图像质量水平生成然后根据无损压缩算法进行压缩的顺序帧。对于以帧1开始的前七个帧,帧的压缩比高于最小目标压缩比门限并且低于最大目标压缩比,如图表中的水平虚线所表示的。因此,对于前七个帧,以默认图像质量设置原始地产生的帧的复杂度是这样的,无损压缩算法的应用不产生低到以致于使系统带宽负担过重并且不利地影响QoS水平的压缩比。然而,从帧8开始并且继续到帧20,帧在以默认图像质量水平被产生时的相对复杂度是这样的,无损压缩算法不能够显著地降低帧大小。作为响应,可以降低与帧9相关联的图像质量水平设置,使得原始产生的未压缩帧的相对复杂度被降低,以便无损压缩算法可以充分地将压缩比维持在目标线以上。

预想可以调整图像发生器内的任意数量和/或组合的“旋钮”,以便降低CODEC模块113的未压缩图像上游的图像质量水平。例如,可以调整图像质量设置(诸如但不限于:纹理设置、颜色比特分辨率、中央凹设置等),以便降低发生器所生成的未压缩帧的复杂度。

返回到图8图示,在帧21处,发生器中的较低的图像质量水平设置使得无损压缩算法生成具有高于预定最大压缩比的压缩比的压缩帧。作为响应,用于生成具有其未压缩形式的帧22的图像质量设置可以返回到默认设置。在帧序列中向前移动,图像质量设置可以保持在默认水平,除非发生以下情况或者直到发生以下情况为止:无损压缩算法再次生成具有低于最小目标的压缩比的压缩帧。

有利地,通过使用动态质量设置方法,智能压缩解决方案的实施例可以使序列中的被压缩至低于目标最小压缩比的压缩比的帧(例如,图8图表中的帧8)的数量最小化,同时还使序列中的从使用较低质量设置生成的未压缩帧进行压缩的帧(例如,图8图表中的帧21)的数量最小化。

图9是示出考虑到任何一个或多个关键性能指标(“KPI”)(诸如但不限于:最小目标压缩比、带宽利用率、电压电平、帧速率(“FPS”)、压缩时延等)的、利用图8的动态输入压缩方法的智能压缩方法900的逻辑流程图。要注意的是,图8图表所示出的动态输入帧质量方法是使用输出帧的压缩比作为KPI来描述的,然而,预想相同的方法可以是使用除了压缩比之外的KPI作为用于调整生成器质量设置的触发来采用的。

在方块905处开始,可以将根据默认图像质量设置产生的未压缩帧接收到图像CODEC 113中并且相应地进行压缩,图像CODEC 113包括一个或多个无损压缩块。接下来,在方块910处,对相关的KPI进行监测,以确定KPI是否保持在可接受水平处,并且在决策方块915处,将所监测的KPI与预定门限进行比较。如果KPI高于(或低于,由于可能是这种情况)预定门限,即,KPI处于可接受水平,则方法900可以沿着“否”分支回到方块905,并且继续对以默认图像质量设置产生的输入的未压缩帧进行压缩。然而,如果所监测的KPI在与预定门限进行比较时不处于可接受水平,则从决策方块915沿着“是”分支来到方块920。

在方块920处,根据降低的图像质量水平设置来产生下一个产生的未压缩帧,并且在方块925处将其接收到CODEC 113中并且使用无损压缩算法进行压缩。有利地,尽管使用较低质量水平设置来产生未压缩帧在稍后被解压缩时将影响帧的最终质量,但是与对相对不太复杂的未压缩帧的无损压缩相关联的减小的带宽可以导致相关的KPI有朝着可接受水平返回的趋势。

接下来,在决策方块930处,将所监测的KPI与预定门限进行比较,以确定QoS是否已经返回到可接受水平。如果KPI还没有返回到可接受水平,则方法900可以沿着“否”分支回到方块925(在方块925处,维持降低的图像质量设置)或方块920(在方块920处,进一步降低图像质量设置)。然而,如果所监测的KPI在与预定门限进行比较时指示KPI已经返回到可接受水平,则从决策方块930沿着“是”分支来到决策方块935。

在决策方块935处,方法900可以考虑是否已经从利用降低的图像质量设置产生的未压缩帧中压缩了足够的帧,以证明返回到默认图像质量设置是合理的。尽管本解决方案的一些实施例可以在KPI一指示可接受水平就触发返回到默认图像质量设置,但是预想其它实施例可以包括用于缓解发生如下情况的概率的迟滞考虑:KPI可能在门限之间来回反弹,并且这样做时,触发过多的在默认图像质量设置与降低的图像质量设置之间切换的事件。

在决策方块935处返回到方法900,如果已经从利用降低的图像质量设置产生的未压缩帧中压缩了预定数量的帧,以证明返回到默认图像质量设置是合理的,则可以沿着“是”分支来到方块945,在方块945处,针对产生的未压缩帧的图像质量设置返回到默认设置。然而,如果在决策方块935处,还没有从利用降低的图像质量设置产生的未压缩帧中压缩预定数量的帧,以证明返回到默认图像质量设置是合理的,则可以沿着“否”分支来到方块940,并且在利用无损算法进行压缩之前使用降低的图像质量设置来生成下一个未压缩帧。方法900回环到决策方块930。

用这种方式,针对使用动态质量设置方法的智能压缩方法的解决方案的实施例可能对一些解压缩帧的将来质量作出妥协,以便对如通过相关的一个或多个KPI量化的QoS进行优化。

图10是示出考虑到热能测量和门限的、利用图8的动态输入压缩方法的智能压缩方法1000的逻辑流程图。要注意的是,图8图表所示出的动态输入帧质量方法是使用输出帧的压缩比作为用于确定何时调整发生器的图像质量设置的触发来描述的,然而,预想可以相同的方法可以是在考虑到热预算约束和/或热测量的情况下来用作缓解和管理热能生成的方式的。即,预想可以将图8的动态输入压缩方法用作热管理技术。

在方块1005处开始,可以将根据默认图像质量设置产生的未压缩帧接收到图像CODEC 113中并且相应地进行压缩,图像CODEC 113包括一个或多个无损压缩块。接下来,在方块1010处,对一个或多个温度传感器进行监测,以确定热能水平是否保持在可接受水平,并且在决策方块1015处,将传感器所产生的温度读数与预定门限进行比较。所监测的温度传感器可以是与PCD 100的面板温度、处理内核的结温度、PoP存储器组件的温度等相关联的。如果温度低于预定门限,即,所监测的热状况处于可接受水平,则方法1000可以沿着“否”分支回到方块1005,并且继续对以默认图像质量设置产生的输入的未压缩帧进行压缩。然而,如果所监测的热状况在与预定门限进行比较时不处于可接受水平,则从决策方块1015沿着“是”分支来到方块1020。

在方块1020处,根据降低的图像质量水平设置来产生下一个产生的未压缩帧,并且在方块1025处将其接收到CODEC 113中并且使用无损压缩算法进行压缩。有利地,尽管使用较低质量水平设置来产生未压缩帧在稍后被解压缩时将影响帧的最终质量,但是与对相对不太复杂的未压缩帧的无损压缩相关联的减小的带宽可以导致正在监测的热状况有朝着可接受水平返回的趋势。

接下来,在决策方块1030处,将所监测的热状况与预定门限进行比较,以确定热状况是否已经返回到可接受水平。如果热状况还没有返回到可接受水平,则方法1000可以沿着“是”分支回到方块1025(在方块1025处,维持降低的图像质量设置)或方块1020(在方块1020处,进一步降低图像质量设置)。然而,如果所监测的温度传感器读数在与预定门限进行比较时指示热状况已经返回到可接受水平,则从决策方块1030沿着“否”分支来到决策方块1035。

在决策方块1035处,方法1000可以考虑是否已经从利用降低的图像质量设置产生的未压缩帧中压缩了足够的帧,以证明返回到默认图像质量设置是合理的。尽管本解决方案的一些实施例可以在温度传感器读数一指示正在监测的热状况已经返回到可接受水平就触发返回到默认图像质量设置,但是预想其它实施例可以包括用于缓解发生如下情况的概率的迟滞考虑:热状况可能在门限之间来回反弹,并且这样做时,触发过多的在默认图像质量设置与降低的图像质量设置之间切换的事件。

在决策方块1035处返回到方法1000,如果已经从利用降低的图像质量设置产生的未压缩帧中压缩了预定数量的帧,或者如果已经过去了预定时间量,以证明返回到默认图像质量设置是合理的,则可以沿着“是”分支来到方块1045,在方块1045处,将针对产生的未压缩帧的图像质量设置返回到默认设置。然而,如果在决策方块1035处,还没有从利用降低的图像质量设置产生的未压缩帧中压缩预定数量的帧,或者如果预定时间量还没有过去,以证明返回到默认图像质量设置是合理的,则可以沿着“否”分支来到方块1040,并且在利用无损算法进行压缩之前使用降低的图像质量设置来生成下一个未压缩帧。方法1000回环到决策方块1030。

用这种方式,针对使用动态质量设置方法的智能压缩方法的解决方案的实施例可能对一些解压缩帧的将来质量作出妥协,以便缓解不利的热能量生成。

图11是示出考虑到与平均电压设置相关联的系统可靠性目标的、利用图8的动态输入压缩方法的智能压缩方法1100的逻辑流程图。要注意的是,图8图表所示出的动态输入压缩方法是使用输出帧的压缩比作为用于确定何时调整发生器的图像质量设置的触发来描述的,然而,预想可以考虑到与平均电压设置相关联的系统可靠性目标来采用相同的方法。即,预想可以将图8的动态输入压缩方法用作用于将平均供电电压维持在上门限与下门限之间的技术。本领域技术人员将理解的是,为了确保芯片102的可靠性,可能期望将平均供电电压保持在最大平均以下,但是不要低得太多以至于用户所体验的平均QoS不必要地受损害。

在方块1105处开始,可以将根据默认图像质量设置产生的未压缩帧接收到图像CODEC 113中并且相应地进行压缩,图像CODEC 113包括一个或多个无损压缩块。接下来,在方块1110处,对一个或多个电压传感器进行监测,以计算供应给芯片102的电压随时间的移动平均。基于移动平均,方法1100可以通过在决策方块1115处将电压平均与预定上门限进行比较,来确定芯片的长期可靠性是否是可接受的。如果供电电压平均低于预定上门限,即,预测的芯片的长期可靠性处于可接受水平,则方法1100可以沿着“否”分支回到方块1105,并且继续对以默认质量设置产生的输入的未压缩帧进行压缩。然而,如果供电电压平均在与预定上门限进行比较时不处于可接受水平,则从决策方块1115沿着“是”分支来到方块1120。

在方块1120处,根据降低的图像质量水平设置来产生下一个未压缩帧,并且在方块1125处将其接收到CODEC 113中并且使用无损压缩算法进行压缩。有利地,尽管使用较低质量水平设置来产生未压缩帧在稍后被解压缩时将影响帧的最终质量,但是与对相对不太复杂的未压缩帧的无损压缩相关联的减小的带宽可以降低功耗并且导致供电电压平均有朝着可接受水平返回的趋势。

接下来,在决策方块1130处,将供电电压平均与预定下门限进行比较。如果从所监测的电压传感器计算出的供电电压平均保持高于下门限,则方法1100可以沿着“否”分支回到方块1125(在方块1125处,维持降低的图像质量设置)或方块1120(在方块1120处,进一步降低图像质量设置)。然而,如果供电电压平均指示供应给芯片102的平均电压已经下降到下平均门限以下,则从决策方块1130沿着“是”分支来到决策方块1135。在方块1135处,可以将发生器的质量水平设置增加回到默认水平。方法1100回环到方块1105。

用这种方式,针对使用动态质量设置方法的智能压缩方法的解决方案的实施例可能对一些解压缩帧的将来质量作出妥协,以便将平均供电电压维持在与目标芯片可靠性目标相关联的范围中。

图12是示出用于智能压缩的片上系统102的实施例的功能方块图。系统102可以被配置为实现本文描述的包括混合模式方法和/或动态质量设置方法的智能压缩方法中的任何一种或多种智能压缩方法。取决于被实现的解决方案的实施例,监测模块114可以监测与功率管理集成电路(“PMIC”)相关联并且被供应给芯片102的功率或电压电平、来自传感器157的温度读数、从图像CODEC模块113产生的压缩帧的压缩比、或任何其它相关的KPI。

智能压缩(“IC”)模块101可以与帧发生器(诸如数据/帧引擎201)一起工作,以在将未压缩帧输入到图像CODEC模块113进行压缩之前动态地调整产生未压缩帧所采用的图像质量设置。替代地,IC模块101可以与图像CODEC模块113一起工作,以在无损压缩算法与有损压缩算法之间进行切换。与上文相对于图4至图11已经描述的相一致,IC模块101可以基于来自监测器模块114的关于以下各项的输入数据来指导发生器引擎201和/或图像CODEC模块113:压缩帧的压缩比、来自传感器157的温度读数、电压电平、或任何相关的KPI。

图13A是示出图12中的图像CODEC模块的实施例的功能方块图,所述图像CODEC模块被配置用于实现利用包括无损算法和有损算法的混合模式压缩的智能压缩方法。当系统102被配置用于执行使用混合模式方法的智能压缩方法时,与关于于图4至图7已经描述的相一致,发生器引擎201A可以向图像CODEC 113A提供其未压缩帧输入,图像CODEC 113A继而可以根据无损压缩器块或有损压缩块对该帧进行压缩。关于可以使用哪个压缩器块来对给定帧进行压缩的确定取决于从IC模块101A接收的指令。IC模块101A可以考虑到从监测器模块114接收的任何一个或多个输入来生成指令。

图13B是示出图12中的图像CODEC模块的实施例的功能方块图,所述图像CODEC模块被配置用于实现在对图像质量设置的动态调整之后利用无损压缩算法的智能压缩方法。当系统102被配置用于执行使用动态质量设置方法的智能压缩方法时,与关于图8至图11已经描述的相一致,发生器引擎201B可以向图像CODEC 113B提供其未压缩帧输入,图像CODEC113B继而将根据无损压缩器块对该帧进行压缩。可以通过由IC模块101B向引擎201B指示的图像质量水平设置来指示引擎201B所产生的未压缩帧的复杂度。

如图13B图示中所示,在图像CODEC模块113B内包括的图像质量滤波器和多路复用器逻辑单元以及无损压缩器的上游在其它实施例中可以被包括在引擎201B内。无论特定布置如何,IC模块101B都指示图像CODEC模块113B最终是对以默认图像质量设置产生的未压缩帧还是对以降低的图像质量设置产生的未压缩帧进行了压缩。IC模块101B可以考虑到从监测器模块114接收的任何一个或多个输入来生成用于调整产生未压缩帧所采用的图像质量设置的指令。

图14是示出用于实现智能压缩方法和系统的、无线电话形式的便携式计算设备(“PCD”)100的示例性、非限制性方面的功能方块图。如图所示,PCD 100包括片上系统102,片上系统102包括耦合在一起的多内核中央处理单元(“CPU”)110和模拟信号处理器126。如本领域技术人员所理解的,CPU 110可以包括第零内核222、第一内核224和第N内核230。此外,如本领域技术人员所理解的,替代CPU 110,还可以采用数字信号处理器(“DSP”)。

通常,智能压缩(“IC”)模块101可以从硬件和/或固件形成,并且可以负责动态地调整发生器生成未压缩帧所采用的图像质量设置和/或使得图像CODEC模块113在有损压缩算法与无损压缩算法之间进行切换。如图14中所示,显示器控制器128和触摸屏控制器130耦合到数字信号处理器110。在片上系统102外部的触摸屏显示器132耦合到显示器控制器128和触摸屏控制器130。PCD 100还可以包括视频编码器134,例如,逐行倒相制式(“PAL”)编码器、顺序存储彩色制式(“SECAM”)编码器、国家电视系统委员会(“NTSC”)编码器或任何其它类型的视频编码器134。视频编码器134耦合到多内核CPU 110。视频放大器136耦合到视频编码器134和触摸屏显示器132。视频端口138耦合到视频放大器136。如在图14中描绘的,通用串行总线(“USB”)控制器140耦合到CPU 110。此外,USB端口142耦合到USB控制器140。

存储器112(其可以包括PoP存储器、高速缓存、掩码ROM/引导ROM、引导OTP存储器、DDR类型的DRAM存储器)也可以耦合到CPU 110。用户身份模块(“SIM”)卡146也可以耦合到CPU 110。此外,如图14中所示,数字相机148可以耦合到CPU 110。在一示例性方面中,数字相机148是电荷耦合器件(“CCD”)相机或互补金属氧化物半导体(“CMOS”)相机。

如图14中进一步所示,立体声音频CODEC 150可以耦合到模拟信号处理器126。此外,音频放大器152可以耦合到立体声音频CODEC 150。在一示例性方面中,第一立体声扬声器154和第二立体声扬声器156耦合到音频放大器152。图14示出麦克风放大器158也可以耦合到立体声音频CODEC 150。此外,麦克风160可以耦合到麦克风放大器158。在特定方面中,调频(“FM”)无线电调谐器162可以耦合到立体声音频CODEC 150。此外,FM天线164耦合到FM无线电调谐器162。此外,立体声耳机166可以耦合到立体声音频CODEC 150。

图14还指示射频(“RF”)收发机168可以耦合到模拟信号处理器126。RF开关170可以耦合到RF收发机168和RF天线172。如图14中所示,小键盘174可以耦合到模拟信号处理器126。此外,具有麦克风的单声道耳麦176可以耦合到模拟信号处理器126。此外,振动器设备178可以耦合到模拟信号处理器126。图14还示出电源188(例如,电池)通过功率管理集成电路(“PMIC”)180耦合到片上系统102。在特定方面中,电源188包括可再充电DC电池或者来源于连接到交流(“AC”)电源的AC到DC变压器的DC电源。

CPU 110还可以耦合到一个或多个内部、片上热传感器157A以及一个或多个外部、片外热传感器157B。片上热传感器157A可以包括一个或多个正比于绝对温度(“PTAT”)温度传感器,其是基于垂直PNP结构的并且通常专用于互补金属氧化物半导体(“CMOS”)超大规模集成(“VLST”)电路。片外热传感器157B可以包括一个或多个热敏电阻。热传感器157可以产生压降,利用模数转换器(“ADC”)控制器(未示出)将压降转换成数字信号。然而,可以采用其它类型的热传感器157。

触摸屏显示器132、视频端口138、USB端口142、相机148、第一立体声扬声器154、第二立体声扬声器156、麦克风160、FM天线164、立体声耳机166、RF开关170、RF天线172、小键盘174、单声道耳麦176、振动器178、热传感器157B、PMIC 180以及电源188可以在片上系统102外部。然而,将理解的是,在图14的PCD 100的示例性实施例中被描绘为在片上系统102外部的这些设备中的一个或多个设备在其它示例性实施例中可以位于芯片102上。

在特定方面中,本文描述的方法步骤中的一个或多个方法步骤可以由在存储器112中的可执行指令和参数来执行或者以IC模块101和/或图像CODEC模块113的形式来执行。此外,IC模块101、图像CODEC模块113、存储器112、其中存储的指令、或其组合可以充当用于执行本文描述的方法步骤中的一个或多个方法步骤的单元。

图15是示出图14中的用于执行智能压缩方法的PCD的示例性软件架构的示意图1500。如图15中所示,CPU或数字信号处理器110经由主总线211耦合到存储器112。如上文所提及的,CPU 110是具有N个内核处理器的多内核处理器。即,CPU 110包括第一内核222、第二内核224和第N内核230。如本领域技术人员已知的,第一内核222、第二内核224和第N内核230中的每个内核可用于支持专用应用或程序。替代地,一个或多个应用或程序可以被分布用于跨越可用内核中的两个或更多个内核进行处理。

CPU 110可以从可以包括软件和/或硬件的IC模块101接收命令。如果被体现为软件,则模块101包括由CPU 110执行的指令,其中CPU 110向由CPU 110和其它处理器执行的其它应用程序发出命令。

CPU 110的第一内核222、第二内核224至第N内核230可以集成在单个集成电路管芯上,或者它们可以集成或耦合在多电路封装中的单独的管芯上。设计者可以将第一内核222、第二内核224至第N内核230经由一个或多个共享高速缓存进行耦合,并且它们可以经由网络拓扑(诸如总线、环、网格和交叉开关拓扑)来实现消息或指令传递。

如本领域中已知的并且上文在定义中描述的,总线211可以包括经由一个或多个有线或无线连接的多条通信路径。总线211可以具有用于实现通信的额外元件(诸如控制器、缓冲器(高速缓存)、驱动器、中继器和接收机),为了简单起见将所述额外元件省略。此外,总线211可以包括用于实现前述组件之间的适当通信的地址、控制和/或数据连接。

当用软件来实现PCD 100所使用的逻辑单元时,如图15中所示,应当注意的是,启动逻辑单元250、管理逻辑单元260、IC接口逻辑单元270、应用存储280中的应用和文件系统290的部分中的一项或多项可以存储在任何计算机可读介质上,以供任何计算机相关的系统或方法使用或者与其相结合地使用。

在本文档的上下文中,计算机可读介质是电子、磁、光或其它物理设备或单元,其可以包含或存储供计算机相关的系统或方法使用或者与其相结合地使用的计算机程序和数据。各种逻辑元素和数据存储可以体现在任何计算机可读介质中,以供指令执行系统、装置或设备(诸如基于计算机的系统、包含处理器的系统、或者能够从指令执行系统、装置或设备取得指令并且执行指令的其它系统)使用或者与其相结合地使用。在本文档的上下文中,“计算机可读介质”可以是能够存储、传送、传播或传输程序以供指令执行系统、装置或设备使用或者与其相结合地使用的任何单元。

计算机可读介质可以是例如但不限于:电子、磁、光、电磁、红外或半导体系统、装置、设备或传播介质。计算机可读介质的更具体的示例(非排他性列表)将包括以下各项:具有一条或多条导线的电气连接(电子)、便携式计算机磁盘(磁)、随机存取存储器(RAM)(电子)、只读存储器(ROM)(电子)、可擦除可编程只读存储器(EPROM、EEPROM或闪存)(电子)、光纤(光)和便携式压缩盘只读存储器(CDROM)(光)。要注意的是,计算机可读介质甚至可以是纸或在其上打印程序的另一种适当介质,因为程序可以例如经由对纸或其它介质的光学扫描被电子地捕获,然后以适当的方式被编译、被解释或者以其它方式被处理(如果必要的话),并且然后被存储在计算机存储器中。

在替代实施例中,在启动逻辑单元250、管理逻辑单元260以及可能IC接口逻辑单元270中的一项或多项是用硬件实现的情况下,可以利用以下技术(其均是本领域中公知的)中的任何技术或组合来实现各种逻辑单元:具有用于在数据信号上实现逻辑功能的逻辑门的分立逻辑电路、具有适当的组合逻辑门的专用集成电路(ASIC)、可编程门阵列(PGA)、现场可编程门阵列(FPGA)等。

存储器112是非易失性数据存储设备,诸如闪存或固态存储器设备。尽管被描绘为单个设备,但是存储器112可以是具有耦合到数字信号处理器110(或额外的处理器内核)的单独数据存储的分布式存储器设备。

启动逻辑单元250包括用于选择性地识别、加载以及执行用于智能压缩的选择程序的一个或多个可执行指令。启动逻辑单元250可以识别、加载以及执行选择智能压缩程序。可以在嵌入式文件系统290的程序存储296中发现示例性选择程序。示例性选择程序在由CPU 110中的内核处理器中的一个或多个内核处理器执行时,可以根据IC模块101所提供的一个或多个信号来操作,以实现智能压缩方法。

管理逻辑单元260包括用于在相应的处理器内核中的一个或多个处理器内核上终止IC程序、以及选择性地识别、加载以及执行更合适的替换程序的一个或多个可执行指令。管理逻辑单元260被安排为在运行时间或者当PCD 100被加电并且正由设备的操作者使用时执行这些功能。可以在嵌入式文件系统290的程序存储296中发现替换程序。

接口逻辑单元270包括用于呈现、管理外部输入并且与外部输入进行交互以观察、配置或者以其它方式更新在嵌入式文件系统290中存储的信息的一个或多个可执行指令。在一个实施例中,接口逻辑单元270可以结合经由USB端口142接收的制造商输入进行操作。这些输入可以包括要从程序存储296中删除或者添加到程序存储296的一个或多个程序。替代地,输入可以包括对程序存储296中的程序中的一个或多个程序的编辑或更改。此外,输入可以识别对启动逻辑单元250和管理逻辑单元260中的一者或两者的一个或多个更改或整体替换。举例而言,输入可以包括对使用的特定类型的压缩算法和/或对帧级别或瓦片级别上的活动智能压缩方法的目标应用的更改。

接口逻辑单元270使制造商能够可控地配置和调整终端用户在PCD 100上的定义操作条件之下的体验。当存储器112是闪存时,可以对启动逻辑单元250、管理逻辑单元260、接口逻辑单元270、应用存储280中的应用程序或嵌入式文件系统290中的信息中的一项或多项进行编辑、替换或以其它方式进行修改。在一些实施例中,接口逻辑单元270可以允许PCD 100的终端用户或操作者对启动逻辑单元250、管理逻辑单元260、应用存储280中的应用或嵌入式文件系统290中的信息进行搜索、定位、修改或替换。操作者可以使用所产生的接口来作出将在PCD 100的下一次启动时实现的改变。替代地,操作者可以使用所产生的接口来作出在运行时间期间实现的改变。

嵌入式文件系统290包括分层布置的存储器管理存储292。在这点上,文件系统290可以包括其整体文件系统容量的预留部分,其用于存储用于配置和管理由PCD 100所使用的各种IC算法的信息。

在本说明书中描述的过程或过程流中的某些步骤自然地先于其它步骤,以使本发明如所描述的运作。但是,本发明不限于所描述的步骤的次序,如果这样的次序或顺序不改变本发明的功能的话。即,要认识到的是,在不脱离本发明的范围和精神的情况下,某些步骤可以在其它步骤之前、之后或与其它步骤并行地(大体同时地)执行。在一些实例中,可以在不脱离本发明的情况下省略或不执行某些步骤。此外,诸如“其后”、“然后”、“接下来”等的词语不旨在限制步骤的次序。这些词语仅用于引导读者贯穿示例性方法的描述。

另外,编程领域的普通技术人员能够基于例如在本说明书中的流程图和关联的描述,在没有困难的情况下编写计算机代码或识别适当的硬件和/或电路以实现所公开的发明。因此,对程序代码指令的特定集合或详细的硬件设备的公开不被认为是获得对如何实现以及使用本发明的足够的理解所必须的。在上文描述中并且结合附图更加详细地解释了所要求保护的计算机实现过程的发明性功能,所述附图可以说明各个过程流。

在一个或多个示例性方面中,所描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则所述功能可以作为一个或多个指令或代码存储在计算机可读介质中或者通过其进行传输。计算机可读介质包括计算机存储介质和通信介质两者,所述通信介质包括促进程序从一个地方传送到另一个地方的任何介质。存储介质可以是可由计算机或处理器存取的任何可用的介质。通过举例而非限制性的方式,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储介质或其它磁存储设备、或者可以用于以指令或数据结构的形式携带或存储期望的程序代码以及可以由计算机来存取的任何其它介质。

因此,尽管已经详细地说明和描述了选择的方面,但是将理解的是,如下面的权利要求书所限定的,可以在不脱离本发明的精神和范围的情况下,在本文中作出各种替代和改变。

40页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:视频帧编解码器架构

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类