计算机显示内容的编解码方法和系统的制作方法

文档序号:2585847阅读:321来源:国知局
专利名称:计算机显示内容的编解码方法和系统的制作方法
技术领域
本发明涉及计算机图形技术,尤其涉及对计算机显示内容进行编码和解码的方法和系统。
背景技术
计算机目前已经实际应用于各种行业,计算机图形已被用于显示文本、图像、电影、视频游戏、娱乐以及其它二维(2D)和三维(3D)内容。现代计算机还被联网在一起以通过因特网共享信息,一个计算机中的计算机显示内容经常需要被传输到另一个计算机或其它多个计算机。也就是说,需要在一个计算机上抓取计算机显示,然后将该被抓取的内容编码并通过计算机网络传输到其它多个计算机或存储设备。在接收的计算机上,为了显示所接收的显示内容,对编码后的显示内容进行解码。

发明内容
发明要解决的问题但是,计算机屏幕显示内容目前变得越来越复杂、包括越来越大的信息量、要求更高的分辨率,现有的显示编解码方法(编码器和解码器)对某些应用而言并不理想。本发明所公开的方法和系统的目的在于解决上述一个或多个问题和其它问题。
_5] 用于解决问题的方案本发明的一个方面包括一种编码方法,用于对计算机的屏幕上的显示数据进行编码,包括将上述屏幕上的显示内容划分为多个显示块,每个块具有块类型;创建块描述表以描述上述多个显示块的特性;将上述多个显示块分类成预定的具有不同编码优先项的不同的块类型;基于分类后的块类型,使用对应的压缩算法,对上述多个显示块进行编码以生成编码后的显示块;更新上述块描述表以包括分类后的显示块的信息;将上述更新后的块描述表编码为编码后的块描述表;将上述编码后的块描述表和上述编码后的显示块合并以生成编码后的显示数据;以及输出上述编码后的显示数据。本发明的另一个方面包括一种解码方法,用于对编码后的显示数据进行解码,所述编码后的显示数据包含多个显示块,每个显示块基于其显示块的特性被进行了对应的编码,该解码方法包括获取上述编码后的显示数据;从上述编码后的显示数据还原描述上述多个显示块的特性的块描述表,上述多个显示块的特性包括对应的块类型和对应的压缩算法;基于上述块描述表,确定显示块的对应的块类型;基于上述块类型,用对应的压缩算法,对多个编码后的显示块进行解码,以生成解码后的显示块;将上述解码后的显示块合并以生成解码后的显示数据;以及输出上述解码后的显示数据。本领域技术人员按照本发明的说明书、权利要求以及附图可以理解本发明的其它方面。


图I表示包括某些公开的实施方式的例示性的计算环境;图2表示与上述公开的实施方式一致的例示性的计算机的框图;图3表示与上述公开的实施方式一致的用于编码操作的例示性的框图;图4表示与上述公开的实施方式一致的例示性的编码处理;图5表不与上述公开的实施方式一致的例不性的分类处理;图6表示与上述公开的实施方式一致的例示性的解码处理。
具体实施例方式下面对在附图中所示的本发明的例示性的实施方式进行详细说明。在所有可能的 情况下,在所有附图中使用相同附图标号表示相同或相似的部分。图I表示包括某些公开的实施方式的例示性的计算环境。如图I所示,计算环境100包括因特网102和通过因特网102连接的第一计算机110和第二计算机120。在不偏离本公开实施方式的主旨的情况下可以增加其它的构件。因特网102可以包括使用标准传输控制协议/因特网协议(TCP/IP)相互连接的任何私有计算机网络和公共计算机网络。因特网102可以通过IP,诸如万维网(WWW)的互联超文本文档和超文本传输协议(HTTP)等来实施大量的服务。第一计算机110和第二计算机120可以包括任何合适类型的计算机,由用户操作以进行计算、显示和通过因特网102联网。例如,计算机110和120可以包括台式计算机、笔记本计算机、平板电脑、智能手机以及其它类型的计算平台和软件程序。虽然图I中仅示出了两个计算机,但是可以包括任意数量的计算机。图2表示可以被配置来实现第一计算机110和/或第二计算机120的例示性的计算机200的框图。如图2所示,计算机200 (例如第一计算机110,第二计算机120)可以包括处理器202,随机存储器(RAM) 204、只读存储器(ROM) 206、显示接口 208、输入/输出接口 210、存储单元212以及通信接口 214。在不偏离本公开实施方式的主旨的情况下可以增加其它构件、可以除去某些设备。处理器202可以包括任何合适类型的通用微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、微处理器以及专用集成电路(ASIC)等。处理器202可以执行计算机程序指令序列以进行与计算机200有关的各种处理。上述计算机程序指令可以从只读存储器R0M206或存储单元212加载到随机存储器RAM204以由处理器202执行。处理器202可以控制计算机200的操作。显示接口 208可以包括任何合适的计算机监视器或显示设备(例如液晶显示器(LCD)和其它视频显示设备)和控制该计算机监视器或显示设备的接口或显示处理器。显示接口 208可以支持各种视频解码格式(例如H264. 8),还可以包括帧缓冲器。而且,输入/输出接口 210可用于由一个用户或多个用户将信息输入计算机200或者用于一个用户或多个用户从计算机200接收信息。例如,输入/输出接口 210可以包括任何合适的输入设备,例如遥控器、键盘、鼠标、麦克风、视频照相机或网络摄像头、电子书写板、语音通信设备或任何其它光学的或无线的输入设备。输入/输出接口 210还可以包括任何合适的输出设备,例如扬声器或任何其它音频设备。存储单元212可以包括任何合适的存储由计算机200使用的信息的存储设备,例如通用串行总线(USB)驱动器、硬盘、闪存盘、光盘、CR-ROM驱动器、DVD或者其它类型的海量存储介质或者网络存储器。而且,通信接口 214可以提供通信连接以便计算机200可以通过因特网102或其它通信网络经由各种通信协议,例如TCP/IP和超文本传输协议(HTTP)被远程访问和/或与其它系统通信。计算机200 (例如第一计算机110和/或第二计算机120)中的部分或所有构件可以通过硬件、软件或硬件和软件的结合来实现。在某些实施方式中,计算机200可以进行显示内容的编码和解码操作。图3表示这种操作的例示性的框图。如图3所示,计算机200可以使用显示编解码器302以在显示接口 208上进行内容的编码和/或解码操作。这里所用的术语,显示编解码器,可以指任何被配置为对计算机屏幕上的显示内容,例如文本、图像、视频、和/或音频内容、或其它类型的内容,进行编码和/或解码的编码器和/或解码器。 在操作中,显示接口 208上的显示内容,S卩,屏幕显示可以被划分为多个显示块304,显示编解码器302可以基于显示块的特性对显示内容进行编码和/或解码。例如,每个显示块可以被赋予某特定类型。在某些实施方式中,显示块可以被划分为三种数据类型图形类型,图像类型和视频类型。数据的图形类型可以来自图形数据源,例如计算机程序,图形类型数据的内容可以是静态的、需要高分辨率,例如文本和窗口框。数据的图像类型可以来自图像数据源、例如图像照相机、图像类型数据的内容可以是静态的,具有合理的分辨率。而且,数据的视频类型可以来自视频数据源,例如视频照相机,视频类型数据的内容可以是动态的,具有有限的分辨率(例如,该分辨率可以根据用于传输视频类型数据的可用带宽而减小)。也可以使用其它类型的数据。计算机200可以使用显示块的类型信息和其它特性来对该显示内容进行编码和/或解码。图4表示由计算机200使用显示编解码器302进行的例示性的编码处理400。如图4所示,在开始时,计算机200可以初始化硬件和软件构件(402)。例如,计算机200可以初始化某些显示设备、显示编解码器302和其它相关的显示和通信设备,并可以确定或选择要被编码的显示屏幕(例如,屏幕框或屏幕图像等)。计算机200还可以初始化任何合适的数据结构。例如,计算机200可以创建与编码和/或解码处理相关的块描述表。块描述表可以包括任何合适的数据结构,该数据结构被配置为描述每个显示块的特性,例如块类型、位置、大小和/或编码方法等。而且,计算机200可以将显示屏幕划分或分成多个显示块(404)。例如,计算机200可以将显示屏幕划分成多个2nX2n(n = 1,2,3,4…)大小的显示块。例如4Χ4、8Χ8、16Χ16,也可以使用其它的大小和数量。而且,计算机200可以对每个划分得到的显示块进行分类(406)。例如,计算机200可以将每个显示块分类到一个特定的类型,例如图形类型、图像类型、以及视频类型中之一。计算机200可以使用某些预先确定的算法来进行分类操作。图5表示由计算机200进行的例示性的分类处理500。如图5所示,计算机200可以比较来自不同帧的显示块(502)。例如,计算机200可以对显示屏幕中的相同位置处的当前帧和在某个时间间隔时的以前帧中的块进行比较。该时间间隔可以由计算机200的用户配置或者由计算机200基于特定的应用程序来自动设定。在某些实施方式中,该时间间隔可以被设定为多个帧间隔以减小处理负载,或者可以被设定为单个帧间隔以提高处理质量。
比较结果可以反映当前 帧的特定的块的内容是否发生了变化。例如,如果该特定的块的任何像素与在某个时间间隔时的以前帧相比发生了变化,则可以认为该特定的块的内容发生了变化。该比较结果可以被存储以形成供进一步确定使用的比较记录。进而,计算机200可以确定当前帧的特定的块的内容是否频繁变化(504)。根据所存储的比较记录,计算机200可以确定在一个预先确定的时间段里特定的块的变化总数。如果变化总数超过阈值,计算机200可以确定当前帧的特定的块的内容频繁变化;如果变化总数没有超过阈值,计算机200可以确定当前帧的特定的块的内容不频繁变化。如果计算机200确定显示块频繁变化(504,是),计算机200可以将该显示块分类为视频块(506)。另一方面,如果计算机200确定显示块不频繁变化(504,否),计算机200可以进一步确定在该块中的像素颜色是否有突然变化(508)。例如,计算机200可以比较垂直和水平方向相邻的像素以确定两个相邻的像素之间的颜色值(例如R、G、B值)是否发生突然变化(即,变化超出了阈值)。如果计算机200确定相邻的像素之间有突然颜色变化(508,是),计算机200可以将该显示块分类为图形块(510)。另一方面,如果计算机200确定相邻的像素之间没有突然颜色变化(508,否),计算机200可以将该显示块分类为图像块(512)。这样,计算机200可以将当前显示帧的每个显示块分类为视频块、图形块、以及图像块中之一。进而,计算机200可以更新块描述表以反映每个显示块的当前分类(514)。返回图4,在每个显示块被分类后(406),计算机200可以确定特定的块的块类型(408)。例如,在处理中,计算机200可以顺序地读出每个显示块并使用来自块描述表中的块信息来确定特定的块的块类型。如果计算机200确定该块是视频块(408,视频),计算机200可以使用确定的用于视频数据的算法对该块进行处理。例如,计算机200可以首先将相邻的或者邻近的视频块合并在一起以生成一个或多个视频窗口(410)。进而,计算机200可以对视频窗口进行处理或编码(412)。当对视频窗口进行编码时,计算机200可以使用帧率或连续性作为优先项(即,在任何可能的时候保持帧率而根据用于数据传输的可用带宽来调整分辨率),可以使用诸如MPEG2、MPEG4和H264等压缩算法来压缩视频窗口。如果计算机200确定该块是图形块(408,图形),计算机200可以使用确定的用于图形数据的算法对该图形块进行处理或编码(414)。当对图形块进行编码时,计算机200可以使用分辨率作为优先项(即,在任何可能的时候保持分辨率),可以使用诸如ZLIB、7Z和PNG等无损压缩算法。进而,由于图形块的内容大多是静态的,可以只压缩和传输与以前的对应的块相比发生变化的内容。可以先将所有的图形块合并在一起并使用确定的压缩算法进行压缩。如果计算机200确定该块是图像块(408,图像),计算机200可以使用确定的用于图像数据的算法对该图像块进行处理或编码(416)。当对图像块进行编码时,计算机200可以使用带宽作为优先项(即,基于用于数据传输的可用的有限带宽对数据进行编码),可以使用诸如GIF、JPEG和JPEG2000等有损压缩算法。进而,由于图像块的内容也大多是静态的,可以只压缩和传输与以前的对应的块相比发生变化的内容。可以先将所有的图像块合并在一起并使用确定的压缩算法进行压缩。在所有的显示块被处理(例如编码或压缩)后,计算机200可以更新块描述表(418)。例如,计算机200可以记录每个显示块和/或视频窗口的块位置、块类型、编码方法、优先项以及大小。进而,计算机200可以生成编码后的显示内容(420)。计算机200可以将被进行了不同的编码的视频窗口、图形块以及图像块合并在一起以生成编码后的显示内容。计算机200还可以使用预先确定的无损压缩算法来压缩块描述表并将压缩后的块描述表加到编码后的显示内容中。进而,计算机200可以输出包括压缩后的块描述表的编码后的显示内容(422)。计算机200可以通过计算机网络(因特网102)将编码后的显示内容输出到另一计算机,例如第一计算机110和第二计算机120之间。可替换或可选地,计算机200也可以 将编码后的显示内容输出到本地存储器(例如存储单元212)或网络存储器以进行存储。也可以使用其它输出设备。当通过通信信道(例如,通过计算机网络)输出编码后的显示内容时,计算机200可以检测或监视该编码后数据的数据码率、用于传输该编码后数据的可用带宽和/或显示编解码器302或其它设备的工作负载。如果可用带宽不足以传输编码后的数据或者工作负载过重,计算机200可以在对显示数据进行编码或压缩之前进行某些预处理以减小数据码率或数据量。例如,对于视频窗口,计算机200可以缩小采样视频窗口,然后对缩小了的视频窗口进行压缩。对于图形块和图像块,计算机200可以减小图形块和图像块的帧率。也可以使用用于减小编码后的数据码率或数据量的其它方法。除了编码处理之外,计算机200还可以进行对应的解码处理以对编码后的显示内容进行还原。图6表示由计算机200使用显示编解码器302进行的例示性的解码处理600。如图6所示,在开始时,计算机200可以获取编码后的显示内容(602)。例如,计算机200可以通过因特网102从另一计算机或从本地存储器或远程存储器获取编码后的显示内容。可以使用任何合适的数据源。在获取编码后的显示内容后(602),计算机200可以对块描述表进行还原(604)。例如,计算机200可以将编码后的块描述表从编码后的显示内容中分离出来,并基于预先确定的用于块描述表的算法对块描述表进行解压缩或解码。计算机200也可以分离编码后的视频窗口、图形块和图像块。基于被还原后的块描述表,计算机200可以获取将被处理的数据的显示内容数据类型¢06),并确定每个块或视频窗口的数据类型。如果计算机200确定是视频类型(608,视频),计算机200可以处理所确定出的视频数据¢10)。例如,计算机200可以使用确定的用于视频数据的算法,对编码或者压缩后的视频窗口进行解码或解压缩,来还原原始的视频块。如果计算机200确定是图形类型(608,图形),计算机200可以处理所确定出的图形数据¢12)。计算机200可以使用确定的用于图形数据的算法,对编码或者压缩后的图形块进行解码或解压缩,来还原原始的图形块。进而,如果计算机200确定是图像类型(608,图像),计算机200可以处理所确定出的图像数据¢14)。计算机200可以使用确定的用于图像数据的算法,对编码或者压缩后的图像块进行解码或解压缩,来还原原始的图像块。在所有的原始的显示块都被还原后,计算机200可以基于块描述表中的信息将显示块合并或组合起来(616)并生成显示内容作为显示框或显示屏幕(618)。进而,计算机200可以输出解码后的显示内容¢20)。例如,计算机200可以将解码后的显示内容输出到显示设备(例如,显示接口 208)以向计算机200的用户展现显示内容,或者将解码后的显示内容输出到用于进一步处理的计算机程序或其它设备。通过使用上面公开的方法和系统,可以使用灵活的时间间隔对显示屏幕数据进行动态地分析和分类,并基于内容进行编码或压缩。当内容要求连续性时,连续性被作为处理的优先项;当内容要求分辨率时,分辨率被作为处理的优先项。这样,与现有的系统相比,上面公开的系统可以实现更高的压缩率以适应传输编码后的显示屏幕数据的计算机网络的不同的带宽要求。而且,上面公开的方法和系统能够使用不同的编码和解码的硬件并能够根据硬件和/或软件的环境进行调整。对于本领域技术人员来说其它的应用和优点是显而易见的。·
权利要求
1.一种编码方法,用于对计算机的屏幕上的显示数据进行编码,包括 将上述屏幕上的显示内容划分为多个显示块,每个块具有块类型; 创建块描述表以描述上述多个显示块的特性; 将上述多个显示块分类成预定的具有不同编码优先项的不同的块类型; 基于分类后的块类型,使用对应的压缩算法,对上述多个显示块进行编码以生成编码后的显不块; 更新上述块描述表以包括分类后的显示块的信息; 将上述更新后的块描述表编码为编码后的块描述表; 将上述编码后的块描述表和上述编码后的显示块合并以生成编码后的显示数据;以及 输出上述编码后的显示数据。
2.根据权利要求I所述的方法,其中, 上述块类型是视频块类型、图形块类型、以及图像块类型中之一。
3.根据权利要求2所述的方法,其中, 上述视频块类型以帧率作为其优先项; 上述图形块类型以分辨率作为其优先项;以及 上述图像块类型以带宽作为其优先项。
4.根据权利要求2所述的方法,其中,上述分类包括 确定特定的显示块是否频繁变化; 当上述特定的显示块频繁变化时,将上述特定的显示块分类为视频块; 当上述特定的显示块不频繁变化时,确定上述特定的显示块的像素颜色是否有突然变化; 当像素颜色有突然变化时,将上述特定的显示块分类为图形块;以及 当像素颜色没有突然变化时,将上述特定的显示块分类为图像块。
5.根据权利要求3所述的方法,其中,上述对多个显示块进行编码还包括 采用有损压缩算法压缩视频块;以及 采用无损压缩算法压缩图形块。
6.根据权利要求3所述的方法,其中,上述对多个显示块进行编码还包括 根据MPEG2、MPEG4和H264之一压缩视频块; 根据ZLIB、7Z和PNG之一压缩图形块;以及 根据GIF、JPEG和JPEG2000之一压缩图像块。
7.根据权利要求5所述的方法,其中,上述压缩视频块还包括 将上述视频块合并成多个视频窗口 ;以及 压缩上述多个视频窗口。
8.根据权利要求7所述的方法,还包括 监视带宽状况;以及 当带宽状况不理想时,在压缩上述视频窗口之前缩小采样上述视频窗口。
9.一种解码方法,用于对编码后的显示数据进行解码,所述编码后的显示数据包含多个显示块,每个显示块基于其显示块的特性被进行了对应的编码,该解码方法包括 获取上述编码后的显示数据;从上述编码后的显示数据还原描述上述多个显示块的特性的块描述表,上述多个显示块的特性包括对应的块类型和对应的压缩算法; 基于上述块描述表,确定显示块的对应的块类型; 基于上述对应的块类型,用对应的压缩算法,对多个编码后的显示块进行解码以生成解码后的显示块; 将上述解码后的显示块合并以生成解码后的显示数据;以及 输出上述解码后的显示数据。
10.根据权利要求9所述的方法,其中, 上述块类型包括视频块类型、图形块类型、以及图像块类型。
11.根据权利要求10所述的方法,其中,上述对多个显示块进行解码还包括 根据MPEG2、MPEG4和H264之一对视频块进行解压缩; 根据ZLIB、7Z和PNG之一对图形块进行解压缩;以及 根据GIF、JPEG和JPEG2000之一对图像块进行解压缩。
12.根据权利要求11所述的方法,其中,上述对视频块进行解压缩还包括 对多个视频窗口进行解压缩;以及 从上述多个视频窗口还原上述视频块。
全文摘要
一种编解码方法,用于对计算机的屏幕上的显示数据进行高效传输,包括将上述屏幕上的显示内容划分为多个显示块,每个块具有块类型;创建块描述表以描述上述多个显示块的特性;将上述多个显示块分类成预定的具有不同编码优先项的不同的块类型;基于分类后的块类型,使用对应的压缩算法,对上述多个显示块进行编码以生成编码后的显示块;更新上述块描述表以包括分类后的显示块的信息;将上述更新后的块描述表编码为编码后的块描述表;将上述编码后的块描述表和上述编码后的显示块合并以生成编码后的显示数据;输出上述编码后的显示数据;以及在接收计算机上进行对应的解码。
文档编号G09G5/36GK102929569SQ20111032256
公开日2013年2月13日 申请日期2011年10月21日 优先权日2011年8月11日
发明者洪雪荣 申请人:洪雪荣
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1