专利名称:处理图像数据的系统和方法
技术领域:
本发明总体上涉及用于处理数据的装置、系统和方法,更具体地,涉及通过通信信道将多帧图像数据从显示图像源传输到显示设备的装置、系统和方法。
附图简要说明本发明是通过附图中的示例而非通过附图中的限制来进行说明的,其中相同的标号表示相同的元素,且其中
图1是根据本发明的一个实施例的图像数据处理系统的示意图。
图2是根据本发明的一个实施例的处理图像数据的示例方法的流程图。
图3是显示在图像源显示器上的示例图像的视图,示出划分为用于编码的区域的图像中的已改变部分。
图4是图3中每个划分出的区域的金字塔编码和压缩的示意图。
图5是完整的一组金字塔编码并压缩的图像数据从图像源到显示设备的传输的示意图。
图6是图3的图像显示作为时间的函数在若干示例图像数据层的接收和解压缩期间的变化视图。
图7是仅将金字塔编码并压缩的图像数据的子集从图像源传输到显示设备的示意图。
图8是图7的图像数据显示作为时间的函数在若干示例图像数据层的接收和解压缩期间的变化视图。
图9是根据本发明的将图像数据从图像源传输到显示设备的方法的示例实施例的流程图。
详细说明图1总地在10处示出根据本发明的第一实施例的图像处理系统的示意图。图像处理系统10包括配置为在观看面14上显示图像的显示设备12。显示设备12可以是任何适合类型的显示设备。其示例包括但不限于,液晶显示器(LCD)和数字光处理(DLP)投影机,电视系统,计算机监视器,等等。
图像处理系统10还包括与显示设备12关联的图像提供设备16,及一个或多个与图像提供设备16进行电通信的图像源18。图像提供设备16配置为接收由图像源18传输的图像数据,并处理所接收的图像数据以用于由显示设备12显示。图像提供设备16可以集成到显示设备12中,或可以作为可连接到显示设备的单独组件提供。适合的图像提供设备的一个示例在2003年6月2日提交的、序列号为10/453,905的美国专利申请中公开,将该申请结合在此作为参考。
通常,通过如膝上型或桌面型计算机、个人数字助理(PDA)或其他计算设备这样的图像源向显示设备提供图像数据。某些显示设备配置为无线地从图像源接收图像数据,例如通过如802.11b(或其他802.11协议)、蓝牙等这样的通信协议。这些显示设备可以允许从会议室内的几乎任何位置快速地连接图像源,从而有助于对单个显示设备使用多个图像源。
然而,支持对单个显示设备使用多个图像源会带来各种困难。例如,不同的图像源可能利用不同的软件来生成和/或显示不同格式的图像文件。在此情况下,支持多图像源的显示设备可能需要包括用于解压缩、提供和/或显示多种不同类型的图像文件的适合的软件。在很多情况下,该软件可能由显示设备制造商之外的公司提供。因此,安装和更新这些软件会使显示设备暴露于软件病毒、编程缺陷,及超出显示设备制造商控制的其他问题下。此外,存储和执行在显示所有所需图像数据格式时需要的多个软件程序可能要求相对大的存储量和处理能力。
一种减少显示设备上所需的软件量的可行方法是仅将原始数据文件从每个图像源传送到显示设备,而不是传送格式化的图像数据文件。在此情况下,显示设备可以只需要支持单种图像数据格式,这可以简化显示设备的软件需求。可是,与格式化的图像文件相比,这样的原始数据文件可能很大,因此可能需要相对长的时间来从图像源传送到显示设备,这取决于所使用的通信信道的带宽。在需要用这样的显示设备显示实时视频时,通信信道的带宽对于以典型的视频帧频(通常约为20帧/秒或更高)传送原始图像数据文件来说可能太小。
回到图1,图像源18可以包括能够向图像提供设备16提供图像数据的任何适合的设备。其示例包括但不限于,桌面型计算机和/或服务器18a、膝上型计算机18b、个人数字助理(PDA)18c、移动电话18d等等。此外,图像源18可以按任何适合的方式与图像提供设备16进行电通信。在所述实施例中,每个图像源18都通过无线网络20与图像提供设备16进行电通信。然而,图像源18也可以通过有线网络、通过无线或有线直接连接等等或它们的任何组合与图像提供设备16进行通信。
在图像源18配置为处理多种格式的图像数据时,图像提供设备16可以配置为解码每种所需图像数据格式的数据。然而,如上所述,这可能要求图像提供设备16具有足够的存储器来存储用于解码每种所需格式的单独的软件程序。此外,这些软件程序中的很多可能由图像提供设备16的制造商之外的源提供。因此,使用这样的软件会减少图像提供设备16的制造商对安装在图像提供设备和/或显示设备12上的软件程序的控制。这会使这些显示设备开放在对软件安装、升级或类似操作期间由外部软件引入的病毒、缺陷及其他问题下。
为了简化图像提供设备16的操作和软件需求,每个图像源18都可以包括配置为生成显示器22上的图像的位图,然后将该位图传输到图像提供设备16以用于由显示设备12显示的软件。这提供了这样的优点,即图像提供设备16只需要包括用于接收和解码单种格式的图像数据的软件,且因此有助于防止在软件安装和/或更新期间将病毒、缺陷及其他问题引入到图像提供设备16上。然而,如上所述,未压缩的位图文件可能相当大,因此传输到图像提供设备16会消耗相对长的时间,这取决于所使用的通信信道的带宽。对相对高分辨率格式的图像,如XGA及以上来说尤其如此。在数据是视频数据时,新数据帧传送到图像提供设备16的速率可能约为20帧/秒或更高。在此情况下,帧频可能比生成整个位图并将其传输到图像提供设备16的速率更快,这可能导致视频图像的传输和显示中的误差。
为了避免传输和显示误差,可以在传输之前处理从显示在图像源18中一个上的图像生成的位图,以减少对每帧图像数据传输的数据量。图2总地在100处示出处理从图像源18中一个上的显示器22生成的位像数据的方法的示例实施例。方法100通常由软件代码实现,该软件代码通常存储在图像源18上的存储器中,并可由每个图像源上的处理器执行。
为了减少传输到图像提供设备16的数据量,方法100仅传输一帧或一组图像数据中与紧在当前帧之前传输的那帧或那组图像数据不同的那些部分。因此,方法100首先在102处比较先前传输的一组或一帧图像数据N与当前显示在显示器22上的一组或一帧图像数据N+1,然后在104处确定帧N+1中不同于帧N的部分。
在102处比较两帧图像数据及在104处确定已改变区域可以按任何适合的方式执行。例如,帧N和N+1每个都可以存储在缓冲器中,然后可以将存储在N+1缓冲器中的图像数据的每个像素与存储在N缓冲器中的图像数据的每个像素比较。
在定位到改变时,可以限定已改变区域以用于按任何适合的方式压缩。例如,在某些实施例中,检测到的所有改变可以由所画出的包含图像数据的帧N+1中所有已改变区域的具有可变大小的单个矩形区域限定。然而,可能存在这样的情况,其中这样限定已改变区域的方案导致实际上未与先前发送的帧发生改变的大量数据被压缩和传输。例如,参考图3,在静态图像200演示期间,如在从膝上型计算机的显示器生成幻灯片放映期间,用户可能激活显示器左上角的下拉菜单202,同时位于显示器右下角的时钟符号204更新了。在此情况下,用单个矩形边界限定已改变区域会导致实际上整个屏幕都由该边界包含。这会导致很多未改变数据的压缩和传输,从而会降低图像数据压缩和传输的效率。
作为用单个边界限定所有已改变区域的另一选择,方法100包括在106处通过将已改变部分划分为m个不同的区域来限定图像数据帧N的已改变部分。这些区域在图3中示意性地由206指出。区域206通常具有所设置的相等的大小,且可以是任何大小。在所述实施例中,下拉菜单由四个区域206覆盖,而时钟图标由单个区域覆盖。然而,可能希望使用相对小的区域206来减少与已改变数据一起压缩和传输的未改变数据的量。
再次参考图2,在将图像200的已改变部分划分为区域206之前、同时或之后,方法100可以包括在108处确定正被编码和传输的图像的调色板,及在110处将有关调色板的更新传输到图像提供设备16来协助压缩图像数据的解压缩。这是因为24位颜色可以用调色板中的8位查找值来缩写。当重复使用颜色时,8位缩写使得传输的数据更少。
接下来,方法100包括在112处初始化循环计数器j=1,然后在114处分层编码总共m个区域中的每个区域。在112处初始化的循环计数器对已分层编码的区域206的数量计数。分层编码的一个示例是金字塔编码。金字塔编码涉及将图像(或图像的部分)编码为多层细节,其中每个层包括数量四倍于次高层的表示图像中的区域外观的“像素”或数据点,且其中每个层中的每个像素都是次低层中的四个相邻像素的平均值。每个层中的数据都可以表示为实际值,或表示为与编码在次高层中的平均值之间的差值。虽然所述实施例描述为使用金字塔编码,但应理解,可以使用任何其他适合的分层编码方法。
每个区域的金字塔编码在图4中示意性地示出。要传输到图像提供设备16的每个图像区域206沿着图4顶部示出,且每个区域的一个金字塔层组208的示意表示在区域下方示出。每个层都用符号Lmn标记,其中下标m表示该层次关联于哪个区域206,且其中下标n表示层次组208中的层次“深度”。例如,最左边的区域206a的最详细层次(“最低”层次)如210所示,且标记为L1n。下标“1”表示该层次包括第一区域(m=1)的数据,而n表示该层次是“n”个层次中最低的。n的最大值取决于构建多少个金字塔层次,且通常配置在软件中。最左边区域206a的第三最粗略层次(“第三层次”)L13、第二最粗略层次(“第二层次”)L12,及最粗略层次(“第一层次”或“最高层次”)L11金字塔层次在图4中分别如212、214和216所示。
第一层次216、第二层次214和第三层次212中的值之间的关系也在图4中通过虚线示出。第一层次216中的值220表示第二层次214中的四个相邻值222的平均值,而第二层次中的每个值222表示第三层次212中的四个值224的平均值。
在将每个区域金字塔编码为n个层之后,可以通过一个或多个压缩步骤来压缩每个金字塔层中的图像数据,以进一步减少通过通信信道传输的数据量。图像数据的每个层Lmn的压缩形式在图4中由符号Cmn表示。每个金字塔层中的图像数据都可以按任何适合的方式压缩。在图2的实施例中,每个金字塔层中的图像数据都通过多个压缩步骤来压缩,以获得比通过任何单独使用的压缩技术所可能达到的更高的压缩程度。
对金字塔编码的区域的每个金字塔层的压缩开始于116处,在该处初始化计数器k,计数器k对已压缩的金字塔层次的数量进行计数。接下来,可选地在118处将每个金字塔层中的图像数据转换到亮度/色度颜色空间。适合的亮度/色度颜色空间的示例包括设备相关的颜色空间,如YCrCb颜色空间,以及设备无关的颜色空间,如CIEXYZ和CIE L*a*b*颜色空间。适合的设备无关颜色空间的另一个示例如下所述。颜色空间包括亮度r值以及色度s和t值,且通过下面的公式从CIE L*a*b*颜色空间导出(1)r=(L*-L*min)(rmax/(L*max-L*min))(2)s=(a*-a*min)(smax/(a*max-a*min))(3)t=(b*-b*min)(tmax/(b*max-b*min))从这些公式中计算出的r、s和t值可以舍入或舍位到最接近的整数值,以将数字格式从浮点改变为整数格式,从而简化涉及颜色空间中的值的计算。在这些公式中,值L*max、L*min、a*max、a*min、b*max和b*min可以对应于L*、a*和b*颜色空间坐标中的每一个的实际界限,或对应于另一颜色空间,如选择的图像设备18的颜色空间在映射到CIE L*a*b*颜色空间上时的最大值和最小值。值rmax、smax和tmax对应于r、s和t颜色坐标每个的最大整数值,且取决于用于表示每个坐标的位数。例如,在用六位来表示每个坐标时,对每个坐标存在六十四个可能的整数值(0--63),且rmax、smax和tmax每个都具有值63。
在将每个金字塔层中的图像数据转换到亮度/色度颜色空间之后,可以在120处过滤低变化的数据,以使得非计算机图形数据(“非CG数据”)更加类似计算机图形数据(“CG数据”)。包含CG数据的图像,如视频游戏、数字幻灯片演示文件等等与包含非CG数据的图像,如电影、静态照片等等相比,趋向于对更高频率的图像数据具有更锐利的颜色边界。由于这些数据类型在颜色边界处的不同特性,不同的压缩算法趋向于对CG数据比对非CG数据更好地工作。某些现有的图像数据处理系统尝试确定数据是CG数据还是非CG数据,然后对每种类型的数据使用不同的压缩器。然而,将CG数据误识别为非CG数据,或相反,会导致这些系统中的压缩效率损失。因此,过滤低变化数据120可以包括识别其变化低于预先选择的阈值变化的相邻图像数据值,这可能表明相近颜色之间的过渡,然后改变某些图像数据值来减少该变化,从而创建更加类似CG数据的颜色边界。低变化数据的过滤因此可以允许用同一压缩器适当地压缩非CG数据和CG数据。对非CG数据做出的改变通常仅对具有低于可察觉阈值的变化的相邻值做出,虽然可以可选地对具有高于可察觉阈值的变化的值做出改变。
可以使用任何适合的方法来从图像数据层内的图像数据中过滤低变化数据。适合的方法的一个示例是利用简单的陷波降噪滤波器来消除低变化数据。陷波降噪滤波器可以按如下所述实现。设pc表示当前像素,pl表示当前像素左边的像素,而pr表示当前像素右边的像素。首先,计算pc和pl之间的差值dl及pc和pr之间的差值dr。接下来,比较dl和dr。如果dl和dr的绝对值不相等,且dl和dr中较低的一个的绝对值低于预先选择的可察觉阈值,则可以将pc重置为等于pl或pr以将dl和dr中较低的一个改变为0。或者,可以将pl和pr中的任一个改变为等于pc来实现相同的结果。
如果dl和dr的绝对值相等,则将pc改变为等于pl等价于将pc改变为等于pr。在此情况下,如果dl和dr的绝对值低于预先确定的可察觉阈值,则可以将pc改变为等于pl和pr中的任一个。此外,如果dl和dr两者的绝对值都高于预先选择的可察觉阈值,则不改变pc、pl或pf中的任一个。应理解,上述过滤方法只是示例性的,且可以使用其他适合的过滤低变化数据以使得非CG更加类似CG数据的方法。例如,在dl和dr的绝对值相等并低于预先选择的可察觉阈值时,可以使用判定函数来确定是否改变当前像素来匹配右边或左边,或者上边或下边的相邻像素。
除过滤低变化数据来使得非CG数据更加类似CG数据之外,方法100还包括在122处对每个金字塔层中的图像数据的色度值进行二次抽样。总的来说,二次抽样是一种涉及以比至少一个其他颜色空间分量低的空间频率对至少一个颜色空间分量进行抽样的压缩技术。解压缩设备重新计算丢失的分量。常见的用于亮度/色度颜色空间的二次抽样数据格式包括4:2:2二次抽样,其中在水平方向上以亮度分量一半的空间频率对色度分量进行抽样而在垂直方向上以相同的空间频率对色度分量进行抽样;及4:2:0二次抽样,其中沿着垂直和水平方向都以亮度分量一半的空间频率对色度分量进行抽样。这些二次抽样格式中的任一种,或任何其他适合的二次抽样格式,都可用于对每个金字塔层中的图像数据的色度分量进行二次抽样。
在120处过滤低变化数据并在122处对色度数据进行二次抽样之后,方法100接下来在124处使用一种或多种其他压缩技术来进一步减少所传输的数据量。通常,使用对CG数据提供良好压缩的压缩方法。在所述实施例中,方法100在126处使用增量调制压缩步骤,并在128处使用LZO压缩步骤。LZO是一个实时、可移植、无损的数据压缩库,它优先考虑速度而不是压缩比,且特别适用于CG数据的实时压缩。LZO还提供其他的优点。例如,LZO解压缩需要最少的存储器,且压缩仅需要64千字节的存储器。在压缩了数据的每个金字塔层之后,在130处将层Cmn输出到输出缓冲器以等待被传输到图像提供设备16。接下来,方法100在132处进行检查,通过比较计数器k与层次的数量n来确定是否已压缩区域206的整组208的n个金字塔图像数据层。如果k不等于n,则k在134处递增1,且在118处开始下一个金字塔层的压缩。一旦已压缩区域206的所有金字塔图像数据层,方法100就校验k=n,然后继续在136处通过确定是否计数器j=m来确定所有m个区域206是否都已金字塔编码。如果j不等于m,则j在138处递增1,且方法100循环回到114处来开始下一个区域206的金字塔编码。以此方式,方法100金字塔编码图像200中的每个区域206以形成金字塔图像数据层的对应的一组208,并且还压缩每个区域的每个金字塔层。
一旦每个区域206已被金字塔编码并压缩,已压缩并金字塔编码的图像数据就可被传输到图像提供设备16。在传输视频数据时,金字塔编码并压缩的表示所选择帧的图像数据组的大小可大于可在帧间隔期间跨通信信道传输的最大数据量。在此情况下,图像源18可以配置为在下一帧的压缩和传输开始之前仅传输与可为一帧图像数据发送的数据一样多的数据。
确定要发送多少个层可以按任何适合的方式执行。例如,一个区域206的金字塔层的整组208可以在传输下一个区域206的任何层之前发送。或者,如图5所示,可以首先发送每个区域206的金字塔编码数据的第一层230,接下来第二金字塔编码层232,然后第三层234,以此类推,直到已发送了在帧间隔期间可以发送的最大量的数据。在开始传输任何区域的下一最详细层Cmn+1之前传输所有m个区域206的所选择图像数据层Cmn提供这样的优点对所有区域206都传输至少部分数据,即使在图像数据仅部分传输处亦如此。
图5示出整组图像数据的传输。这会在选择的一帧图像数据仅从紧邻的前一帧图像数据部分改变时发生。在视频演示中,例如,构成单个场景演示的所有图像帧可以包括公共元素,如视频演示中的背景颜色、布景颜色、演员服装颜色等等。因此,在单个场景中,帧之间的改变通常由公共元素的位置切换造成,且可以编码在相对少量的区域中。在此情况下,编码的区域数量可以足够小,以允许在单个帧间隔期间传输完整的一组金字塔编码的压缩图像数据。
图6示出图像200中的每个区域的金字塔编码数据整组208的顺序提供和显示。标号200’用于指示图6中的图像是由显示设备12投影的图像,而不是显示在图像源18中一个上的图像。类似地,标号206’用于指示图像200’中的区域对应于压缩并编码的图像200中的区域206。
首先,如250所示,传输、解压缩和显示压缩图像数据的第一金字塔层,该层由符号C11-C51表示。接下来,如252所示,传输、解压缩和显示压缩图像数据的第二金字塔层,该层由符号C12-C52表示,这将更多细节引入到所显示图像的区域206’中。压缩数据的第三金字塔层的解压缩和显示,如254所示将进一步的细节引入到区域206’中。因此,对于图像数据的每个金字塔层次的解压缩和显示,细节的等级在每个区域206’的水平和垂直两个方向上均以2倍进行变化。对于图像数据C1n-C5n的最详细一层的解压缩和显示,如256所示,原始图像200未在有损压缩步骤中丢失的所有细节都结合到了图像200’中。应理解,图6中所示的改变可以不由显示设备12实际显示,而是可以对保存在缓冲器中的数据做出,且仅在对一帧图像数据的所有已传输数据的解码/解压缩已完成时显示。
另一方面,有时可能需要较大数量的区域206来编码视频演示中的图像数据的某些帧之间的改变。例如,出现在场景改变时的帧,其中背景、衣服及其他元素完全改变,可能只有非常少的公共像素。因此,编码这些帧中的改变可能会需要基本上将整个帧划分为用于编码的区域206。在选择的一帧图像数据具有较大数量的区域206时,在单个帧间隔期间不可能发送一帧图像数据的所有金字塔层。这在图7中示意性地示出。在此情况下,图像数据的传输可以在可被传输的最后一个完整的图像层236已被传输之后停止,或可以停在下一最详细图像数据层238内的中间位置处,例如停在由线240所示的位置。
图8示出一帧图像数据的解压缩,其中已改变区域206”基本上占据了整个图像。像图6的示例,分别在260、262和264示出的第一层、第二层和第三层图像数据的解压缩和显示将增加的细节层次引入到图像中。然而,不像图6的示例那样,图像数据层的传输停在某一中间点处,如266所示,使图像缺少某些精细的细节,如在颜色之间的边界附近的精细的颜色过渡。这样的细节损失对观看者来说可能察觉不到。例如,仅传输某些层的图像数据很可能在较大区域的改变和较高的运动速率期间发生,这些是人类察觉系统较不容易注意细节损失的时间。此外,随后传输的帧可以足够快速地将细节添加到图像中以最小化或消除图像中可察觉的误差。
可以在解压缩过程中实现有助于改进解压缩性能的各种特征,从而改进显示设备12和图像提供设备16在显示视频图像时的性能。例如,为了协助二次抽样图像数据的解压缩,图像提供设备16可以包括用于在解压缩期间存储图像数据解压缩缓冲器,该解压缩缓冲器小于与执行解压缩计算的处理器关联的高速缓冲存储器。
用于解压缩二次抽样图像数据的现有解压缩系统通常在计算丢失的色度值之前将整组的压缩图像数据读入解压缩缓冲器中。通常,压缩图像数据在被读入缓冲器时被复制到高速缓冲存储器中,这允许存储在高速缓存中的值能被更快速地访问以用于解压缩计算。然而,因为压缩图像文件的大小可能大于高速缓冲存储器,所以在将压缩图像数据复制到缓冲器中时,高速缓冲存储器中的某些图像数据可能被其他图像数据覆盖。覆盖高速缓冲存储器中的图像数据可能导致当正在解压缩图像数据的处理器在高速缓冲存储器中查找被覆盖的数据时发生高速缓存脱靶。过多高速缓存脱靶的出现会减慢图像解压缩以至有害的地步。
使用小于高速缓冲存储器的解压缩缓冲器有助于避免高速缓存脱靶的发生。因为高速缓冲存储器通常是相对小的存储器,因此这样的解压缩缓冲器可能也比多数图像文件要小。换句话说,在图像数据表示包含A×B像素阵列的图像时,解压缩缓冲器可以配置为保存A×C的图像数据阵列,其中C小于B。这样的缓冲器可用于通过将一组二次抽样图像数据作为图像数据的一系列较小的子集读入缓冲器和高速缓冲存储器来解压缩该组二次抽样图像数据。可以在将压缩图像数据的一个新子集读入解压缩缓冲器之前解压缩并从缓冲器中输出图像数据的每个子集。因为解压缩缓冲器小于高速缓冲存储器,所以不太可能发生高速缓冲存储器中的任何图像数据被覆盖而同时又被用于解压缩计算。
解压缩缓冲器可以具有任何适合的大小。总的来说,解压缩缓冲器相对于高速缓冲存储器越小,发生大量高速缓存脱靶的可能性越低。此外,要在解压缩缓冲器中解压缩的二次抽样图像数据的类型以及用于对压缩图像数据进行解压缩的计算的类型会影响解压缩缓冲器的大小。例如,4:2:0图像数据中丢失的色度分量可以取决于二次抽样色度值是同位的还是非同位的而不同地计算。同位的色度值在图像上位于和选择的亮度值相同的物理位置,而非同位的色度值夹在几个相关的亮度值之间。4:2:0同位图像数据的丢失的色度值可以在和丢失的值相同的行或相邻的行上由二次抽样色度值计算,这取决于所计算的丢失的色度值的物理位置。因此,用于解压缩具有成行不包含色度值的数据的4:2:0同位图像数据的解压缩缓冲区可以配置为保存不止一行的图像数据来允许由垂直相邻的色度值计算丢失的色度值。
可以使用任何适合的方法来确定在单个帧间隔期间可以从图像源18发送多少个图像数据层到图像提供设备16。例如,一种简单的方法可以是检测活动传输的图像源18上的一帧图像数据何时发生改变,并使用检测到的改变作为触发器来开始新的压缩和传输过程。以此方式,金字塔编码并压缩的图像数据的传输可以继续,直到在选择的图像源上显示的图像中检测到改变,这时先前的图像帧的数据传输如果尚未完成则应停止。
确定可以在单个帧间隔期间发送多少个图像数据层的合适方法的另一个示例包括确定通信信道的带宽,然后由检测到的带宽及已知的图像数据的帧频计算在单个帧间隔期间可以跨通信信道发送多少图像数据。带宽可以在压缩图像数据传输之前或期间一次性确定,或可以周期性地检测并更新。
适合用于只传输等量于可在单个帧间隔期间传输的金字塔编码的压缩图像数据的方法的一个示例实施例总地在图9中的300处示出。方法300首先包括在302处确定在其上将金字塔编码并压缩的图像数据发送到图像提供设备16的通信信道的可用带宽。通过测量出的带宽和金字塔编码并压缩的图像数据的已知帧频,在304处确定可在各帧图像数据的抽样之间通过通信信道发送的最大数据量。
一旦已确定了可以在一个帧间隔期间发送的最大数据量,方法300就开始数据传输。首先,方法300包括在306处初始化计数器k和跟踪变量“total(总计)”。计数器k被用于跟踪已发送的完整的层的数量。接下来,方法300在308处进入对应于计数器k的循环,其中初始化计数器j。计数器j被用于跟踪单个数据层的传输进度。
接下来,方法300开始图像数据的传输。在传输数据层Cjk之前,在312处将下一层Cjk的大小累加到变量“total”的值上,然后在314处比较“total”的值与可以在单个帧间隔期间传送的最大数据量。如果“total”的值在累加下一数据层Cjk的大小之后大于可以在单个帧间隔期间传输的最大数据量,则不传输下一数据层Cjk,并完成数据传输。
另一方面,如果“total”的值小于可以在单个帧间隔期间传输的最大数据量,则在316处传输下一数据层Cjk。接下来,方法300在318处确定计数变量j是否等于m,是则表明已对所有的m个区域206发送了选择的图像数据层。如果j不等于m,则方法300在320处向计数变量j加1并循环回到312处。该循环继续,直到已对所有m个区域206传送了达固定值k的所有数据层Cjk。
一旦已对所有m个区域传送了达固定值k的所有数据层Cjk,方法300就在322处通过比较计数变量k与层数n来确定是否存在尚未被传输的任何图像数据层。如果k小于n,则k在324处递增1,且方法300循环回到308处以开始传输来自下一最详细层的图像数据。
实现方法100和300的各种压缩和传输操作的软件可以作为单个线程、单个进程操作,或可以作为多个线程或多个进程,或它们的任何组合来操作。多线程或多进程方法可以允许比单线程或单进程方法更有效地利用系统10的资源,如传输带宽。各种操作可以由任何适合数量的不同线程或进程实现。例如,在一个实施例中,使用三个独立的线程来执行方法100和300的操作。这些线程可以称为接收器、处理器和发送器。接收器线程可以获取从图像源18屏幕上的图像生成的位图数据。处理器线程可以执行比较、金字塔编码,及方法100的其他压缩步骤。发送器线程可以执行方法300的带宽监视和传输步骤。应理解,这只是一种示例软件架构,且可以使用任何其他适合的软件架构。
因此,在某些实施例中,公开了一种通过通信信道将多帧图像数据从显示图像源传输到显示设备的方法,其中多帧图像数据按预先确定的时间间隔在逐帧的基础上传送。该方法包括通过分层编码来编码选择的一帧图像数据的至少部分以形成分层编码的一组图像数据层,及仅通过通信信道发送该组图像数据层的子集,其中图像数据层的该子集包括比该组图像数据层更少的图像数据层。
其他实施例提供一种通过通信信道传输多帧图像数据的方法,其中通过通信信道在逐帧的基础上按固定的时间间隔传输多帧图像数据。该方法包括定位所选择的一帧图像数据中与紧邻的前一帧图像数据相比包含改变像素的部分,将包含已改变像素的部分划分为多个用于编码的区域,并金字塔编码每个区域以对每个区域形成一组图像数据层,其中每组图像数据层包括包含最少量细节的图像数据层编码信息,包含最高层次细节的图像数据层编码信息,及包含中间层次细节的图像数据层编码信息。该方法还包括传输每个区域的包含最少量细节的图像数据层编码信息,及传输每个区域的其他图像数据层中的至少部分直到固定的时间间隔期满。
又一个实施例提供一种通过通信信道传输多帧图像数据的方法,其中多帧包括相对于紧邻第一帧和第二帧之前传输的帧包含较少数量改变的第一帧及包含较多数量改变的第二帧。该方法包括将第一帧和第二帧中包含改变的部分划分为多个用于编码的区域,金字塔编码每个区域以对每个区域形成一组图像数据层,传输第一帧中所有区域的所有图像数据层,及只传输第二帧中所有区域的图像数据层的一部分。
此外,虽然本发明包括具体实施例,但具体实施例不应被视为具有限制意义,因为可能存在大量的变体。本发明的主题包括在此公开的各种元素、特征、功能,和/或属性的所有新颖和非显而易见的组合及子组合。下面的权利要求特别指出视为新颖和非显而易见的特定组合及子组合。这些权利要求可能引用“一个”元素或“第一”元素或其等价。这样的权利要求应被理解为包括对一个或一个以上这样的元素的结合,而不是要求或排除两个或两个以上这样的元素。各特征、功能、元素和/或属性的其他组合及子组合可以通过本发明权利要求的修改或通过在本申请或相关申请中提供新的权利要求来请求保护。这样的权利要求,无论是在范围上比原始权利要求更宽、更窄、等价或不同,都应被视为包括在本发明的主题之内。
权利要求
1.一种通过通信信道将多帧图像数据从显示图像源传输到显示设备的方法,其中所述多帧图像数据在逐帧的基础上按预先确定的时间间隔传送,所述方法包括通过分层编码来编码选择的一帧图像数据的至少一部分以形成分层编码的一组图像数据层;及仅通过通信信道发送所述一组图像数据层的子集,其中所述图像数据层的子集包括比所述一组图像数据层更少的图像数据层。
2.如权利要求1所述的方法,其特征在于,所述图像数据层的子集只包括能在所述预先确定的时间间隔期间发送的图像数据层。
3.如权利要求1所述的方法,其特征在于,还包括在发送所述一组图像数据层的子集之前确定在所述预先确定的时间间隔中可以通过所述通信信道发送多少个图像数据层。
4.如权利要求1所述的方法,其特征在于,所述编码选择的一帧图像数据的至少一部分包括比较所述选择的一帧图像数据与先前发送的一帧图像数据;识别所述选择的一帧图像数据中和所述先前发送的一帧图像数据相比包含改变的部分;及将包含已改变像素的部分划分为多个用于编码的区域。
5.如权利要求4所述的方法,其特征在于,还包括通过分层编码来独立地编码每个区域以形成多组图像数据层。
6.如权利要求5所述的方法,其特征在于,所述多个图像数据层的每组图像数据层包括包含一个编码具有最少量细节信息的层,一个编码具有最高层次细节信息的层,及多个编码具有中间层次细节信息的层。
7.如权利要求6所述的方法,其特征在于,首先传输所述包含最少量细节的层编码信息,随后传输递增地包含更多细节的层。
8.如权利要求4所述的方法,其特征在于,所述区域大小相同。
9.如权利要求1所述的方法,其特征在于,所述选择的一帧图像数据是第一帧图像数据,且所述一组图像数据层是第一组图像数据层,还包括通过分层编码来编码第二帧图像数据的至少一部分以形成第二组图像数据层,然后传输第二组图像数据层中的所有图像数据层。
10.如权利要求9所述的方法,其特征在于,所述第二帧图像数据包括比第一帧图像数据更少的相对于前一帧图像数据的改变。
11.如权利要求1所述的方法,其特征在于,还包括在传输所述图像数据层之前压缩每个图像数据层。
12.如权利要求11所述的方法,其特征在于,以从二次抽样、颜色空间转换、增量调制及LZO压缩所组成的一组技术中选择的至少一种技术压缩每个图像数据层。
13.如权利要求1所述的方法,其特征在于,所述通过分层编码来编码选择的一帧图像数据的至少一部分以形成分层编码的一组图像数据层包括金字塔编码选择的一帧图像数据的至少一部分。
14.如权利要求1所述的方法,其特征在于,所述显示设备是投影设备。
15.一种通过通信信道传输多帧图像数据到投影设备的方法,其中通过所述通信信道在逐帧的基础上按固定的时间间隔传输所述多帧图像数据,所述方法包括定位选择的一帧图像数据中与紧邻的前一帧图像数据相比包含已改变像素的部分;将所述包含已改变像素的部分划分为多个用于编码的区域;金字塔编码每个区域以对每个区域形成一组图像数据层,其中每组图像数据层包括包含一个编码具有最少量细节信息的图像数据层,一个编码具有最高层次细节信息的图像数据层,及多个编码具有中间层次细节的图像数据层;传输每个区域的包含最少量细节的图像数据层编码信息;及传输每个区域的其他图像数据层中的至少部分,直到固定的时间间隔期满。
16.如权利要求15所述的方法,其特征在于,所述其他图像数据层的传输以增加的细节的顺序传输。
17.如权利要求16所述的方法,其特征在于,在对任何区域传输递增地具有更多细节的图像数据层之前,对所有区域传输具有选择的层次细节的所有图像数据层。
18.如权利要求15所述的方法,其特征在于,还包括计算在所述固定的时间间隔期间可以跨所述通信信道传输的最大数据量。
19.如权利要求18所述的方法,其特征在于,还包括通过在所述固定的时间间隔期间可以跨所述通信信道传输的最大数据量,计算在所述固定的时间间隔期间可以跨所述通信信道传输的层的数量。
20.如权利要求15所述的方法,其特征在于,还包括在传输所述数据层之前压缩每个图像数据层。
21.如权利要求20所述的方法,其特征在于,以从二次抽样、颜色空间转换、增量调制及LZO压缩所组成的一组技术中选择的至少一种技术压缩所述每个图像数据层。
22.如权利要求15所述的方法,其特征在于,所述不同的图像数据帧包含不同数量的已改变像素,且其中对选择的包含不同数量已改变像素的不同图像数据帧传输不同数量的图像数据层。
23.一种通过通信信道传输多帧图像数据的方法,其中所述多帧包括相对于紧邻第一帧和第二帧之前传输的帧包含较少数量改变的第一帧及包含较多数量改变的第二帧,所述方法包括将所述第一帧和第二帧中包含改变的部分划分为多个用于编码的区域;金字塔编码每个区域以对每个区域形成一组图像数据层;传输第一帧中所有区域的所有图像数据层;及只传输第二帧中所有区域的图像数据层的一部分。
24.如权利要求23所述的方法,其特征在于,所述多个图像数据层的每组图像数据层包括包含一个编码具有最少量细节信息的图像数据层,一个编码具有最高层次细节信息的图像数据层,及多个编码具有中间层次细节信息的图像数据层,且其中在其他图像数据层之前传输编码具有少量细节信息的图像数据层。
25.如权利要求23所述的方法,其特征在于,通过所述通信信道在逐帧的基础上按固定的时间间隔周期性地发送所述多帧图像数据。
26.如权利要求25所述的方法,其特征在于,还包括在传输所述第一帧或第二帧的图像数据层之前,确定在所述固定的时间间隔期间可以通过所述通信信道发送多少个图像数据层。
27.如权利要求26所述的方法,其特征在于,确定在所述固定的时间间隔期间可以发送多少个图像数据层包括周期性地确定在所述固定的时间间隔期间可以通过所述通信信道发送的最大数据量。
28.如权利要求25所述的方法,其特征在于,所述第二帧的图像数据层中所传输的部分是在所述固定的时间间隔期间可以通过所述通信信道发送的最大数量的图像数据层。
29.如权利要求23所述的方法,其特征在于,还包括在传输所述图像数据层之前压缩所传输的每个图像数据层。
30.如权利要求29所述的方法,其特征在于,以从二次抽样、颜色空间转换、增量调制及LZO压缩所组成的一组技术中选择的至少一种技术压缩所述图像数据层。
31.在计算机可读存储介质上,可由计算设备执行以用于将图像传输到图像显示设备的指令,所述介质包括用于通过分层编码来编码选择的一帧图像数据的至少一部分以形成分层编码的一组图像数据层的代码;及用于只通过所述通信信道发送所述一组图像数据层的子集的代码,其中所述图像数据层的子集包括比所述一组图像数据层更少的图像数据层。
32.如权利要求31所述的存储介质,其特征在于,其中所述图像数据层的子集只包括能在所述预先确定的时间间隔期间发送的图像数据层。
33.一种用于传输图像以用于显示的设备,所述设备包括用于定位选择的一帧图像数据中与紧邻的前一帧图像数据相比包含已改变像素部分的装置;用于将所述包含已改变像素的部分划分为多个用于编码的区域的装置;用于金字塔编码每个区域以对每个区域形成一组图像数据层的装置,其中每组图像数据层包括包含最少量细节的图像数据层编码信息,包含最高层次细节的图像数据层编码信息,及包含中间层次细节的图像数据层编码信息;用于传输每个区域的包含最少量细节的图像数据层编码信息的装置;及用于传输每个区域的其他图像数据层中的至少部分,直到固定的时间间隔期满的装置。
34.如权利要求33所述的设备,其特征在于,传输所述其他图像数据层以便递增地增加细节。
35.如权利要求33所述的设备,其特征在于,还包括在传输所述数据层之前压缩每个图像数据层的装置。
全文摘要
公开了一种通过通信信道将多帧图像数据从显示图像源传输到显示设备的方法,其中多帧图像数据在逐帧的基础上按预先确定的时间间隔传送。该方法包括通过分层编码来编码选择的一帧图像数据的至少一部分以形成分层编码的一组图像数据层,及仅通过通信信道发送该组图像数据层的子集,其中该图像数据层的子集包括比该组图像数据层更少的图像数据层。
文档编号G06K9/46GK1914624SQ200480041661
公开日2007年2月14日 申请日期2004年12月15日 优先权日2003年12月16日
发明者杰夫·克里克曼 申请人:富可视公司