CN102411786A - 用于基于dwt的系统的运动补偿的低复杂度方法 - Google Patents

用于基于dwt的系统的运动补偿的低复杂度方法 Download PDF

Info

Publication number
CN102411786A
CN102411786A CN2011103077891A CN201110307789A CN102411786A CN 102411786 A CN102411786 A CN 102411786A CN 2011103077891 A CN2011103077891 A CN 2011103077891A CN 201110307789 A CN201110307789 A CN 201110307789A CN 102411786 A CN102411786 A CN 102411786A
Authority
CN
China
Prior art keywords
group
sub
grades
fritter
band images
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011103077891A
Other languages
English (en)
Inventor
K·M·马拉迪
B·A·库马
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102411786A publication Critical patent/CN102411786A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/547Motion estimation performed in a transform domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明涉及用于基于DWT的系统的运动补偿的低复杂度方法。描述了用于在离散小波变换域中执行运动补偿的技术。在一示例性实施例中,服务器可以在离散小波变换域中对图像执行运动补偿,并且将至少一个运动矢量和至少一个增量阵列发送给客户端。客户端可以使用所述至少一个运动矢量和所述至少一个增量阵列来组合图像。除以上之外,在具体实施方式、权利要求书和附图中描述了其他方面。

Description

用于基于DWT的系统的运动补偿的低复杂度方法
技术领域
本发明涉及用于基于DWT的系统的运动补偿的低复杂度方法。
背景技术
虚拟机平台通过在每个操作系统自己的虚拟机内运行该操作系统来允许多个客操作系统在物理机上的同时执行。可以在虚拟机中提供的一个示例性服务是虚拟桌面会话。虚拟桌面会话在本质上是在虚拟机内运行的将其用户界面发送到远程计算机的个人计算机环境。这一体系结构类似于远程桌面环境,但改为将多个用户同时连接到操作系统,在虚拟桌面会话中每一用户能够访问在虚拟桌面环境中的虚拟机中执行的他们自己的操作系统。
现代操作系统实施了用于3D应用/视频游戏的三维(3D)图形用户界面及其操作系统用户界面。用户享受与3D环境交互的体验,并且所期望的将是能够在虚拟桌面会话中将3D图形流传输给客户端;然而,由于多种原因而难以实现流传输3D图形。例如,流传输3D图形的动作需要带宽和/或压缩。带宽是有限的,并且通常在通过因特网连接时不受客户端或服务器控制。压缩可以减小必须从服务器发送给客户端的数据量;然而,压缩操作具有高等待时间并且是处理器密集的。因此,所期望的是用于减小必须从服务器发送给客户端的数据量和/或为了对所述数据进行压缩所花费的时间的方案。
发明内容
一示例性实施例包括一种系统。在该示例中,系统包括但不限于处理器、以及在计算机系统可操作时与该处理器通信的存储器。在该示例中,该存储器可以包括计算机可读指令,所述计算机可读指令在执行以后致使该处理器:通过离散小波变换过程将图像小块分解成一组子带图像,其中该组子带图像至少包括低通子带图像;量化该组子带图像;从低通子带图像和该低通子带图像的上一版本中确定一组运动矢量;从该组子带图像的上一版本和该组运动矢量中为该组子带图像确定一组增量阵列;以及将所确定的增量阵列和该组运动矢量发送给远程计算机系统。除以上之外,权利要求书、具体实施方式和附图中描述了其他技术。
另一示例性实施例包括一种方法。在该示例中,该方法包括但不限于:通过离散小波变换过程将图像小块分解成一组一级子带图像、一组二级子带图像以及一组三级子带图像;量化该组一级子带图像、该组二级子带图像以及该组三级子带图像;从三级低通子带图像和该三级低通子带图像的上一版本中确定一组三级运动矢量;从参考子带图像和该组三级运动矢量中为该组一级子带图像、该组二级子带图像和该组三级子带图像确定增量阵列;以及将所确定的增量阵列和至少该组三级运动矢量发送给远程计算机系统。除以上之外,权利要求书、具体实施方式和附图中描述了其他技术。
另一示例性实施例包括计算机可读存储介质。在该示例中,该计算机可读存储介质包括计算机可读指令,所述计算机可读指令在执行以后致使该处理器:根据一组运动矢量对一组子带图像进行重新定位;将增量矢量应用于该组经重新定位的子带图像,由此获得一组经运动补偿的子带图像;对该组经运动补偿的子带图像进行逆量化;通过离散小波逆变换过程将该组经运动补偿的子带图像组合成图像小块;以及显示该图像小块。除以上之外,权利要求书、具体实施方式和附图中描述了其他技术。
本领域技术人员将理解,本公开的一个或多个各种方面可包括但不限于用于实现此处所引用的方面的电路和/或编程;该电路和/或编程实质上可以是配置成实现本文所引用的方面的硬件、软件和/或固件的任何组合,这取决于系统设计者的设计选择。
以上是概述,并且因此必然包含细节的简化、一般化及省略。本领域技术人员将明白,本概述只是说明性的并且决不旨在是限制性的。
附图说明
图1描绘了计算机系统的高级框图。
图2描绘了虚拟机服务器的高级框图。
图3描绘了虚拟机服务器的高级框图。
图4描绘了虚拟桌面服务器的高级框图。
图5描绘了虚拟桌面服务器的高级框图。
图6描绘了示例性的压缩算法。
图7描绘了经分解的图像小块。
图8描绘了用于对图像进行压缩的操作过程。
图9示出了包括附加操作的图8的操作过程。
图10描绘了用于对图像进行压缩的操作过程。
图11示出了包括附加操作的图10的操作过程。
图12描绘了用于对图像进行压缩的操作过程。
图13示出了包括附加操作的图12的操作过程。
具体实施方式
所公开的主题可以使用一个或多个计算机系统。图1及以下讨论旨在提供可在其中实现所公开的主题的合适计算环境的简要概括描述。
贯穿本说明书使用的术语“电路”可包括诸如硬件中断控制器、硬盘驱动器、网络适配器、图形处理器、基于硬件的视频/音频编解码器等硬件组件,以及用于操作这些硬件的固件。术语“电路”还可以包括由固件和/或软件来配置的进行指令读取和执行的微处理器、专用集成电路、以及处理器,例如多核通用处理单元的核。处理器可由从例如RAM、ROM、固件和/或大容量存储等存储器加载的指令来配置,从而具体化可用于配置处理器来执行功能的逻辑。在其中电路包括硬件和软件的组合的示例实施例中,实现者可以编写具体化逻辑的源代码,该源代码随后被编译成可由硬件执行的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件实现的功能或软件实现的功能之间几乎没有差别的地步,因而选择硬件还是软件来实现此处描述的功能只是一个设计选择。换言之,由于本领域的技术人员可以理解软件进程可被变换成等效的硬件结构,且硬件结构本身可被变换成等效的软件进程,因此选择硬件实现或是软件实现留给了实现者。
现在参考图1,描绘了示例性计算系统100。计算机系统100可包括处理器102,例如,执行核。尽管示出了一个处理器102,但在其他实施例中,计算机系统100可具有多个处理器,例如每一处理器衬底有多个执行核,和/或各自可具有多个执行核的多个处理器衬底。如图所示,各种计算机可读存储介质110可由一个或多个系统总线互连,所述系统总线将各种系统组件耦合到处理器102。系统总线可以是几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。在一示例实施例中,计算机可读存储介质110可以包括例如随机存取存储器(RAM)104、存储设备106(例如电机硬盘驱动器、固态硬盘驱动器等)、固件108(例如闪速RAM或ROM)、以及可移动存储设备118(例如CD-ROM、软盘、DVD、闪速驱动器、外部存储设备等)。本领域的技术人员应当理解,可使用其他类型的计算机可读存储介质,如磁带盒、闪存卡、和/或数字视频盘。
计算机可读存储介质110可以提供处理器可执行指令122、数据结构、程序模块以及用于计算机100的其他数据的非易失性和易失性存储。基本输入/输出系统(BIOS)120可被存储在固件108中,它包含帮助在诸如启动期间在计算机系统100内的各元件之间传递信息的基本例程。包括操作系统和/或应用程序的多个程序可被存储在固件108、存储设备106、RAM 104和/或可移动存储设备118上,并且可由处理器102来执行。
命令和信息可由计算机100通过输入设备116来接收,输入设备可包括但不限于键盘和定点设备。其他输入设备可以包括话筒、操纵杆、游戏手柄、扫描仪等等。这些和其他输入设备常通过耦合到系统总线的串行端口接口连接到处理器102,但也可通过其他接口连接,如并行端口、游戏端口或通用串行总线(USB)。显示器或其他类型的显示设备也可经由诸如视频适配器等可以是图形处理器单元112的一部分或可连接到图形处理器单元112的接口来连接到系统总线。除显示器之外,计算机通常包括其他外围输出设备,如扬声器和打印机(未示出)。图1的示例性系统还可包括主适配器、小型计算机系统接口(SCSI)总线和连接到SCSI总线的外部存储设备。
计算机系统100可以使用到诸如远程计算机之类的一个或多个远程计算机的逻辑连接在联网环境中操作。远程计算机可以是另一计算机、服务器、路由器、网络PC、对等设备或其他常见的网络节点,并且通常包括上面关于计算机系统100所述的许多或全部元件。
当在LAN或WAN联网环境中使用时,计算机系统100可通过网络接口卡114连接至LAN或WAN。NIC 114可以是内置或外置的,其可以连接到系统总线。在联网环境中,相对于计算机系统100所描述的程序模块或其部分可被储存在远程存储器存储设备中。可以理解,所描述的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他手段。虽然可构想本发明的许多实施例尤其适用于计算机化的系统,然而在本说明中不意味着将本发明限于那些实施例。
转到图2,示出了可被用来生成虚拟机的示例性虚拟化平台。在该实施例中,系统管理程序微内核202可被配置成控制并仲裁对计算机系统200的硬件的访问。系统管理程序微内核202可以生成称为分区的执行环境,如子分区1到子分区N(其中N是大于1的整数)。在此,子分区是系统管理程序微内核202所支持的基本隔离单元。系统管理程序微内核202可以隔离一个分区中的进程,使其不能访问另一分区的资源。每个子分区都可以被映射到在系统管理程序微内核202控制之下的一组硬件资源,例如,存储器、设备、处理器周期等。在各实施例中,系统管理程序微内核202可以是独立的软件产品、操作系统的一部分、嵌入在主板的固件中、专用集成电路、或其组合。
系统管理程序微内核202可以通过限制物理计算机系统中的客操作系统的存储器视图来实施分区。当系统管理程序微内核202实例化一虚拟机时,它可以将系统物理存储器(SPM)的页(例如,具有开始和结束地址的固定长度存储器块)分配给虚拟机作为客物理存储器(GPM)。在此,客机的受限的系统存储器视图受系统管理程序微内核202控制。术语“客物理存储器”是从虚拟机的视点描述存储器页的简写方式,且术语系统物理存储器是从物理系统的观点描述存储器页的简写方式。因此,被分配给虚拟机的存储器页会有客物理地址(虚拟机所使用的地址)和系统物理地址(页的实际地址)。
客操作系统可以虚拟化客物理存储器。虚拟存储器是一种管理技术,其允许操作系统过度提交存储器,并且给予应用程序对连续工作存储器的唯一访问。在虚拟化环境中,客操作系统可以使用一个或多个页表来将已知为虚拟客地址的虚拟地址转换成客物理地址。在该示例中,存储器地址可以具有客虚拟地址、客物理地址以及系统物理地址。
在所描绘的示例中,父分区组件也可被认为是类似于Xen的开源系统管理程序的域0,父分区组件可以包括主机204。主机204可以是操作系统(或一组配置实用程序),并且主机204可以被配置成通过使用虚拟服务提供者228(VSP)向在子分区1-N中执行的客操作系统提供资源。VPS 228(一般在开源社区中被称为后端驱动程序)可用来通过虚拟服务客户机(VSC)(在开源社区或类虚拟化设备中一般称为前端驱动程序)对到硬件资源的接口进行多路复用。如图所示,虚拟服务客户机可以在客操作系统的上下文中执行。然而,这些驱动程序不同于客机中的其余驱动程序,因为向它们提供了系统管理程序而非客机。在一示例性实施例中,虚拟服务提供者228与虚拟服务客户机216和218通信所使用的路径可以被视为虚拟路径。
如图所示,仿真器234(例如虚拟化IDE设备、虚拟化视频适配器、虚拟化NIC等)可被配置成在主机204中运行并被附加到可供客操作系统220和222使用的资源。例如,当客操作系统接触被映射到设备的寄存器所处的存储器位置、或者存储器被映射的设备时,微内核系统管理程序202可截取该请求并将客机试图写入的值传递给相关联的仿真器。在此,该示例中的资源可被认为是虚拟设备所处的位置。仿真器的以这种方式的使用可以被视为仿真路径。仿真路径与虚拟化路径相比是低效的,因为与在VSP和VSC之间传递消息相比,它需要更多的CPU资源来仿真设备。例如,可以将经由仿真路径把值写入盘所需的、被映射至寄存器的存储器上的几百个动作减少为一个消息,该消息在虚拟路径中从VSC被传递至VSP。
每个子分区都可包括一个或多个虚拟处理器(230和232),客操作系统(220和222)可管理并调度线程以便在这些虚拟处理器上执行。一般而言,虚拟处理器是提供具有特定架构的物理处理器的表示的可执行指令以及相关联的状态信息。例如,一个虚拟机可具有带有英特尔x86处理器特性的虚拟处理器,而另一虚拟处理器可具有PowerPC处理器的特性。本例中的虚拟处理器可被映射到计算机系统的处理器,使得实现虚拟处理器的指令将得到处理器的支持。由此,在包括多个处理器的实施例中,虚拟处理器可以由处理器同时执行,同时例如其他处理器执行系统管理程序指令。分区中虚拟处理器和存储器的组合可被认为是虚拟机。
客操作系统(220和222)可以是任何操作系统,如来自微软
Figure BSA00000590474500071
苹果
Figure BSA00000590474500072
开源社区等的操作系统。客操作系统可包括用户/内核操作模式,并且可具有能包括调度器、存储器管理器等的内核。一般而言,内核模式可包括处理器中的执行模式,该执行模式授予至少对特权处理器指令的访问。每一客操作系统可具有相关联的文件系统,该文件系统上存储有诸如终端服务器、电子商务服务器、电子邮件服务器等应用程序以及客操作系统本身。客操作系统可调度线程来在虚拟处理器上执行,并且可实现此类应用程序的实例。
现在参考图3,示出了上述图2中的可替代的虚拟化平台。图3描绘了与图2的组件相类似的组件;然而,在该示例实施例中,系统管理程序302可包括微内核组件以及和图2的主机204中的组件(如虚拟服务提供者228和设备驱动程序224)相类似的组件,而管理操作系统304可包含例如用于配置系统管理程序302的配置实用程序。在该体系结构中,系统管理程序302可以执行与图2的系统管理程序微内核202相同或相似的功能;然而,在该体系结构中,图3的系统管理程序302可被配置成向在子分区中执行的客操作系统提供资源。图3的系统管理程序302可以是独立的软件产品、操作系统的一部分、嵌入在主板的固件内,或者系统管理程序302的一部分可以由专用集成电路来实现。
现在参考图4,它示出虚拟桌面服务器400的高级框图。在一实施例中,虚拟桌面服务器400可以被配置成部署到客户机(例如,诸如智能电话的移动设备)、具有和图1所示组件相似的组件的计算机系统等等的虚拟桌面会话(VDS)。简言之,虚拟桌面技术使用户能与虚拟机中运行的客操作系统远程地交互。不同于远程桌面会话,在虚拟桌面会话中,仅仅一个用户登录到客操作系统中并且该用户可以对其具有总控制,例如,该用户可以作为管理员运行并且在客机上具有完全的权限。在所示例子中,虚拟桌面服务器400可以具有与图2和图3的计算机系统200或300类似的组件。虚拟化平台402是上面在图2和图3中所述的虚拟化基础结构组件的逻辑抽象。在以下章节中被描述为在虚拟化平台402“以内”的功能可以在图2和图3所述的一个或多个元件中实现。例如,将在下面的段落中更详细描述的3D图形服务管理器404可以在图2的主机204中实现。在一个更特定的示例中,3D图形服务管理器404可以在父分区中运行的主机操作系统中实现。
虚拟桌面会话的启动要求对虚拟机内的客操作系统进行实例化。在一示例性实施例中,虚拟桌面管理器(例如处理器可执行指令的模块)可以响应于请求而启动虚拟机414(其可以引导客操作系统428)。虚拟桌面管理器可以在逻辑处理器上执行,并且可以指示虚拟化平台402(例如微内核系统管理程序202)为分区分配存储器。虚拟化平台402可以执行并且配置虚拟机414的存储器内的虚拟设备,并且将引导加载器程序加载到分配给VM 414的存储器中。引导加载器程序可以在虚拟处理器上执行(其进而可以在处理器上运行),并且客操作系统428可以加载在虚拟机414内。会话管理器408可以由客操作系统428来加载,并且其可以加载诸如运行时子系统426之类的环境子系统,所述环境子系统可以包括诸如操作系统核410之类的内核模式部分。例如,在一实施例中,环境子系统可以被配置成将服务的子集展示给应用程序并向内核420提供访问点。当客操作系统428被加载时,引导加载器程序可以退出,并将对虚拟机414的控制转交给客操作系统428。客操作系统428可以执行图4所示的各个模块,并且将其自身配置为主控虚拟桌面会话。例如,客操作系统428可以包括致使远程呈现引擎406、会话管理器408等等在引导以后启动的注册表值。
在客操作系统428运行以后的某个时刻,其可以从客户端接收连接请求。该传入的连接请求可以首先由远程呈现引擎406来处理,该远程呈现引擎406可以被配置为监听连接消息,并且当接收到消息时,其可以产生栈实例。远程呈现引擎406可以运行会话的协议栈实例,并且3D图形用户界面(其在虚拟化平台402中渲染)可以被远程显示子系统418捕捉并且通过协议栈实例发送给客户端。一般而言,协议栈实例可被配置成将用户界面输出路由到相关联的客户机、以及将从相关联的客户机接收到的用户输入路由到操作系统核410。简言之,操作系统核410可以被配置成管理屏幕输出:收集来自键盘、鼠标和其它设备的输入。
用户凭证(例如用户名/口令组合)可由远程呈现引擎406接收并被传递至会话管理器408。会话管理器408可以将凭证传递至登录过程,登录过程可以将凭证路由至认证子系统424以进行验证。认证子系统424可以确定用户凭证是有效的并且可以启动虚拟桌面会话,也就是说用户可以登陆到客操作系统428。
认证子系统424还可以生成系统令牌,该系统令牌可以在每当用户尝试执行一进程时使用,以确定用户是否具有运行该进程或线程的安全凭证。例如,当进程或线程尝试获得访问时(例如,打开、关闭、删除和/或修改例如文件、设置或应用程序这样的对象),线程或进程可由安全子系统422来认证。安全子系统422可以对照与对象相关联的访问控制列表来检查系统令牌,并且基于系统令牌中的信息与访问控制列表的比较来确定线程是否具有许可。如果安全子系统422确定线程被授权,则允许该线程访问对象。
继续对图4的描述,在一实施例中,操作系统核410可以包括图形显示界面416(GDI)和输入子系统412。在一示例实施例中,输入子系统412可以被配置成经由虚拟桌面会话的协议栈实例从客户机接收用户输入,并将该输入发送至操作系统核410。在一些实施例中,用户输入可包括表示绝对和/或相对鼠标运动命令、鼠标坐标、鼠标点击、键盘信号、操纵杆运动信号等的信号。例如对图标的鼠标双击之类的用户输入可被操作系统核410接收,并且输入子系统412可被配置成确定图标位于与该双击相关联的坐标处。输入子系统412随后可被配置成向可执行与该图标相关联的应用的进程的运行时子系统426发送通知。
转到图5,图5示出了用于将虚拟桌面服务器400配置为将表示三维图形用户界面的图像流传输给诸如客户端520之类的客户端的组件。简言之,客户端520可以包括具有与图1所示的组件类似的组件的计算机系统、移动设备或瘦客户端。例如,瘦客户端可以具有商业硬件和单片式web浏览器,该web浏览器被配置为管理该硬件、用户输入和输出并且连接到因特网。在该示例中,瘦客户端还可以包括将在下面的段落中更详细描述的客户端运动补偿模块518、客户端处理器526、例如显示器之类的用户界面522、以及任选的客户端3D图形处理单元524。
虚拟桌面服务器400可以包括运动补偿模块404,该运动补偿模块404以虚线示出以指示:在一示例性的实施例中,运动补偿模块404可以由例如处理器102或图形处理单元504之类的处理单元来实施,或者在编解码器502的固件或逻辑内实现。例如,运动补偿模块404可以被写入指令,所述指令致使基于x86的处理器内的单指令多数据(SIMD)指令处理某些操作。在另一示例中,运动补偿模块404可以用着色器语言来编写。在又一示例中,运动补偿模块404的逻辑可以在编解码器502内的硬件中实现,该编解码器502可以附加到虚拟桌面服务器400的主板。在一示例性的实施例中,运动补偿模块的实例可以运行在3D图形处理单元504上,另一实例可以运行在处理器102上,并且编解码器502可以执行运动补偿模块操作。选择由CPU、GPU和/或在硬件内来实施运动补偿模块404是设计选择,该设计选择可以基于虚拟桌面服务器400内的处理器和图形处理单元的数量、以及以硬件或硬件/软件的组合来实现该模块的期望度。这样的选择留给实现者。
继续对图5的描述,图5示出了3D应用506,该3D应用506可以是客操作系统428的图形用户界面、3D文字处理程序、3D视频游戏等等。3D应用可以向3D图形应用程序接口(API)508发出指令,该3D图形应用程序接口(API)508可以是诸如来自微软
Figure BSA00000590474500101
的Direct3D之类的API。简言之,3D图形API 508提供例如视频游戏之类的图形应用与3D图形服务客户端510之间的抽象层。一方面,3D图形API 508提供到3D图形服务客户端510所展示的图形处理单元接口的低级接口,另一方面其提供可以由应用调用的3D图形命令库。API508可以将3D图形命令库映射到由3D图形服务客户端510展示的接口,由此使游戏开发者不必理解每个图形驱动程序的特性。
在操作中,API 508可以生成例如基本几何形状之类的图元,其中该图元在计算机图形中用作被表示成顶点和常数的其他形状的构建块,并且API 508将该顶点存储在例如存储器页之类的多个顶点缓冲器中。当API 508发出渲染命令时,3D图形服务客户端510可以对命令和数据进行格式化;将其打包到一个或多个GPU令牌中;以及通过共享的存储器514将GPU令牌与对顶点缓冲器的位置的描述一起发送给3D-GPU服务提供器512。3D-GPU服务提供器512可以执行和提取来自GPU令牌的渲染命令和数据,并且将其翻译回将被API发出的命令和指令。然后,3D-GPU服务提供器512可以将该命令发出给3D GPU驱动程序516。
图形处理单元504可以执行和生成表示图像帧的位图,例如像素值阵列。3D-GPU服务提供器512可以捕捉位图并且将该位图传递给运动补偿模块404,该运动补偿模块404将在下面段落中更详细描述。一般而言,运动补偿模块404可以对帧进行压缩并且通过共享的存储器514将图像发送给虚拟机414。经压缩的帧可以被发送给远程呈现引擎406并且通过一个或多个信息分组被发送给客户端。
现在转到图6,图6示出了可以用于实施运动补偿模块404的示例性模块、以及可以用于实施客户端运动补偿模块518的示例性模块。这些示例性模块中的一些或全部可以以GPU可执行指令、CPU可执行指令和/或在硬件逻辑内实现。而且,这些模块中的一些是虚线示出的,以指示它们被认为是任选的。
在图形处理单元504生成了表示帧(源图像)的位图以后,该帧可以被运动补偿模块404捕捉并且被小块化(tiling)模块602处理。在一示例性的实施例中,小块化模块602可以将源帧划分成各个小块,所述小块被实现为来自源图像的图像数据的连续部分。在一特定的实施例中,1024x1024像素帧可以被划分成16个64x64像素的小块。
继续对图6的描述,在帧被分割成小块以后,每个小块任选地可以由差分模块616来处理。差分模块616可以接收小块并且将当前小块与相应的参考小块相比较。参考小块可以是来自上一帧的相应小片(参考小块)。在该示例中,差分模块616可以通过将表示小块的位图与相同小块的上一版本相比较来确定当前小块是否已经相对于对比小块被改变。如果小块中的像素值从一帧到下一帧不具有改变,则差分模块616丢弃该小块。在差分模块616由运行在处理器102上的可执行指令(即SIMD指令)来实施的示例性实施例中,多个小块可以在单个操作中同时与参考小块相比较。在另一示例性的实施例中,差分模块616可以由运行在3D图形处理单元504上的着色器指令来实施。在该示例中,3D图形处理单元504的多个着色器流水线可以用于同时将源小块与参考小块相比较。
在检测到改变的小块以后,运动补偿模块404可以被配置为估计该小块如何从以前的版本改变,并且将差(增量)发送给客户端520。本质上,运动补偿包括:搜索一个或多个运动矢量;将所述一个或多个运动矢量应用于源图像;以及计算与根据所述一个或多个运动矢量重新定位的源图像之间的增量。运动矢量精确度取决于图像中所使用的运动矢量的数目以及搜索的精确度。
在一示例性的实施例中,运动矢量搜索操作和增量计算可以在已经由DWT模块604对源图像执行了离散小波变换以后执行。搜索运动矢量和在DWT域中根据数据生成增量阵列(例如表示参考图像小块与经重新定位的源图像小块之间的差的像素值阵列)通过如下方式减小了虚拟桌面服务器400上的负担:消除了传统的压缩技术由于其在空间域中执行运动矢量搜索和增量阵列计算而经历的开销。也就是说,不需要在虚拟桌面服务器400上执行通常执行的逆DWT操作,因为搜索和增量阵列计算在DWT域中进行。类似于帧差分模块616,DWT模块604可以由在处理器102上运行的可执行指令来实施,并且可以使用SIMD指令来在单个操作中同时对多个小块执行DWT操作。在另一示例性的实施例中,DWT模块604可以由运行在3D图形处理单元504上的着色器指令来实施。在该示例中,3D图形处理单元504的多个着色器流水线可以用于同时对多个小块执行DWT操作。。最后,DWT模块604也可以在编解码器502的硬件逻辑中实现。
例如,简要地参考图7,图7示出了通过对图像小块进行三个离散小波变换所获得的所得到的经分解的小块700。离散小波变换(DWT)将源图像小块的像素阵列的各个颜色分量分解成相应的颜色子带。例如,在单个变换以后,图像小块被分解成四个像素子带,一个对应于一级低通子带(LL)702并且其他三个一级低通子带对应于水平(HL)704子带、垂直(LH)706子带、以及对角线高通(HH)708子带。总的来说,经分解的图像示出了LL子带中的粗糙逼近图像、以及较高子带中的三个详细图像。每个一级子带都是原始小块的尺寸的四分之一(即在原始小块为64x64像素的实例中为32x32像素)。如该附图所示,一级低通带702可以进一步被分解以获得另一等级的分解,由此产生16x16像素的二级子带710、712、714和716。二级LL子带710可以进一步被分解成四个8x8像素的三级子带:三级LL 718、三级LH 722、三级HL 720、以及三级HH 724。
简要地回到图6,在已经获得经离散小波变换的小块以后,这些小块可以被发送给量化模块606,该量化模块606可以被配置为对子带图像进行压缩,并且然后这些小块被发送给运动预测模块614。运动预测模块614可以被配置为在一个或所有LL子带(例如图7的一级LL子带702、二级LL子带710、或者三级LL子带722)中搜索运动矢量。选择搜索哪个LL子带取决于实现者的目的。例如,与在二级中相比,运动矢量搜索可以在三级中更快速地执行;然而,由于三级具有较低的分辨率,因此运动矢量精确度较低。如果实现者想要优化速度,则他或她可以在三级中执行搜索。如果实现者想要优化精确度,则他或她可以在一级中执行搜索。在另一实施例中,实现者可以将从较高等级(三级)获得的运动矢量用作在较低等级(二级)中的搜索的参考点。
回到图7,图7示出了三级LL子带718中的搜索。如该附图所示,在三级LL子带718中获得了四个运动矢量(尽管获得了四个运动矢量,但是本领域的技术人员能够理解,可以获得更小或更大数目的运动矢量)。例如,运动预测模块614可以被配置为将三级LL子带718细分成四个4x4像素的块,并且然后执行搜索,由此产生三级LL子带718中的4个运动矢量。
该搜索可以通过将4x4像素块与三级LL子带718中的其他像素相比较来执行。例如,来自源图像的第一像素块可以与来自参考图像的相应像素块相比较,并且误差(即两个块之间的差)可以被计算出。运动补偿模块404可以移动来自源图像的第一像素块;记录用于对块进行重新定位的矢量;以及将经重新定位的第一像素块与来自参考图像的相应的新像素块相比较。该操作可以在进行了预定次数的比较操作或者获得了最小误差值以前一直进行。在未获得最小误差时,用于产生最低误差的矢量可以被选为第一像素块的运动矢量。运动补偿模块404可以在处理器102、3D图形处理单元504上和/或编解码器502中同时计算第二、第三、第四像素块的运动矢量。该组所确定的运动矢量由图7的运动矢量726来示出。由于三级子带是二级子带的大小的1/4,一级子带的大小的1/8,因此每个三级运动矢量都可以乘以标量以便获得二级运动矢量728,以及乘以另一标量以获得一级运动矢量730。
在一示例性的实施例中,误差可以使用多种技术之一来计算。例如,可以使用均方误差、绝对差之和、平均绝对差、平方误差之和、以及绝对差之和度量来计算误差。在一示例性的实施例中,可以使用绝对差之和度量,因为这些运算可以比其他一些度量更快地执行。例如,块内的每个像素都可以由整数来表示。也就是说,在4x4像素块中,该块可以具有16个整数,每像素一个整数。来自源图像小块的块可以与来自参考图像小块的16像素的块相比较,并且可以获得每个像素的绝对差。然后,该绝对差可以一起相加以获得绝对差值之和(“SAD”)值。然后,来自源图像小块的块可以与来自参考图像小块的其他块相比较,并且可以计算出SAD值。具有最低SAD值的块与参考块最相似,并且用于从源图像小块移动像素值块的矢量可以被设置成运动矢量。
在运动矢量已经被获得和缩放以后,可以使用运动矢量来为每个子带图像生成增量阵列。例如,每个子带图像(例如在三级LL子带718中执行运动矢量搜索这一实例中的10个子带图像)可以被发送给求和模块608,该求和模块使用运动矢量来偏移子带图像并且从参考图像小块中减去源图像小块来创建增量阵列。在图7所示的实施例中,在DWT域中可以生成10个增量阵列:每个子带图像一个增量阵列。
如图6所示,增量阵列可以被发送给熵编码器模块610,该熵编码器模块610可以执行熵编码过程以对增量阵列和运动矢量进行压缩。熵编码器模块610可以被配置为基于可用传输带宽和存储器资源选出多个不同编码器之一来执行熵编码过程。示例性的熵编码技术可以包括在名称为“System and method foreffectively encoding and decoding electronic information(用于有效地对电子信息进行编码和解码的系统和方法)”的美国专利No.7,460,725中所描述的技术,该申请的全部内容通过引用并入本申请。然后,经压缩的增量阵列和运动矢量可以在一个或多个小块包中与该帧中的每个其他小块的增量阵列和运动矢量一起被发送给客户端520。另外,增量阵列和运动矢量可以被发送给另一加法器模块612,该加法器模块612可以将增量阵列与通过该运动被重新定位的子带参考小块图像相加。这些子带参考小块图像反映客户端520的状态,并且可以在下一捕捉操作期间用作参考小块图像,而不使用来自空间域的参考图像。
回到图5,客户端520可以通过因特网接收一个或多个表示运动矢量和增量阵列的分组,并且将包含在该分组内的信息路由到客户端3D图形处理单元524、编解码器(未示出)、或者处理器526。客户端运动补偿模块518可以对小块进行解压缩,重建帧并且将表示帧的位图写入存储器。然后,位图可以由用户界面522显示。
参考图6,客户端运动压缩模块518可以接收小块包,并且提取小块的子带图像和运动矢量,并且将该小块的子带图像和运动矢量发送给熵解码器模块616,该熵解码器模块616可以对子带图像和运动矢量进行解压缩。如该附图所示,运动矢量可以被发送给运动调节模块620,该运动调节模块620可以包括表示用户界面522当前所显示的小块的子带图像。运动矢量可以用于重新定位表示用户界面522当前所显示的小块的子带图像,并且经重新定位的子带图像可以被发送给加法器模块618,该加法器模块618可以将增量阵列与经重新定位的子带图像相加。在特定的示例中,与当前所显示的帧相关联的一级HH子带图像的四个部分可以根据四个经缩放的一级矢量730被重新定位,并且被发送给加法器模块618。表示与当前所显示的帧相关联的一级HH子带图像的像素阵列可以与一级HH子带图像的增量阵列相加。可以并行地对每个子带图像执行类似的操作。
所得到的经运动补偿的子带图像可以被发送给逆量化模块622,并且然后被发送给离散小波逆变换模块624。离散小波逆变换模块624可以被配置为从经运动补偿的子带图像中组合小块。参考图7,在一示例性的实施例中,图6的逆DWT模块624可以被配置为从图7所示的10个子带图像中组合图像小块。在该示例中,逆DWT模块624可以将三级子带图像(718、720、722和724)组合成二级LL子带图像710。然后,逆DWT模块624可以取得二级LL子带图像710、二级LH子带图像714、二级HL子带图像712、以及二级HH子带图像716,并且将它们组合以形成一级LL子带图像702。最后,逆DWT模块624可以取得一级LL子带图像702、一级LH子带图像706、一级HL子带图像704、以及一级HH子带图像708,并且将它们组合以形成图像小块。逆DWT模块624可以并行地运行在图形处理单元504或处理器102上,并且可以用单个操作组合其他小块。然后,小块可以被安排和写入存储器。然后,可以向用户界面522渲染表示帧的位图。
下面是描绘操作过程的一系列流程图。为便于理解,流程图被组织成使得初始流程图通过总体“大图”视点来渲染各实现,并且后续的流程图提供以虚线示出的进一步的附加物和/或细节。此外,本领域的技术人员可以理解,虚线所描绘的操作过程被认为是任选的。
参考图8,图8示出了包括操作800-810的用于对虚拟桌面会话期间的图像进行压缩的操作过程。操作800开始该操作过程,并且操作802示出了:通过离散小波变换过程将图像小块分解成一组子带图像,其中该组子带图像至少包括一低通子带图像。例如,在一实施例中,离散小波变换模块604可以被配置为将图像小块(即图像的子部分)分解(即分隔)成子带。例如并且参考图7,子带可以至少包括低级低通子带(LL),比如LL子带718、710或702。低通子带与其他子带相比以最低分辨率示出了对图像小块的粗糙逼近。
继续对图8的描述,操作804示出了:对该组子带图像进行量化。例如,在一实施例中,在分解以后但在运动估计以前,该组子带图像可以由量化模块606量化。在该示例性实施例中,可以使用量化来压缩子带图像。
操作806示出了:从该低通子带图像以及该低通子带图像的上一版本中确定一组运动矢量。例如并且再次转到图6,在该示例中,运行补偿模块404可以包括运动预测模块614,例如可执行指令。在该示例中,运动预测模块614可以通过搜索小块的低通子带图像来确定运动矢量,例如二维矢量,该运动矢量可以定义与源图像小块中的像素坐标的偏差。
在至少一个示例性的实施例中,可以执行9点菱形搜索来找出合适的运动矢量。例如,参考子带小块图像的像素阵列中的中心点可以与来自源低级低通子带小块图像的像素块一起被选出。可以通过将源低级低通子带小块图像的像素块与参考子带小块图像相比较来为菱形上的每个点计算出SAD值,并且可以保存最低的SAD值。然后,该菱形的中心点例如可以被偏移到具有最低SAD值的点,并且可以为该菱形的5个点计算SAD值。可以保存来自该操作的最低SAD值。在一示例性实施例中,具有最低SAD值的的点的坐标可以被设置成运动矢量,或者可以执行所期望数目的附加迭代。搜索越长,则压缩方案花费时间越长。
继续对图8的描述,操作808示出了:从该组子带图像的之前版本以及该组运动矢量中为该组子带图像确定一组增量阵列。例如并且再次参考图图6,该组运动矢量可以用于为该组中的每个子带图像确定增量阵列。例如,可以使用运动矢量来相对于参考子带图像偏移子带图像,并且然后可以计算出差。例如,来自当前小块(即源)的一级对角线子带图像(HH)、以及之前例如在上一捕捉操作期间获得的参考一级对角线子带图像可以被发送给加法器模块608。一级对角线子带图像内的每个像素块的中心点可以使用运动矢量来重新定位。在对源子带图像进行重新定位以后,可以从源子带图像中减去表示参考子带图像的像素阵列。如果运动矢量导致良好的匹配,则所得到的阵列应当主要包括0值。
转到操作810,该操作示出了:将所确定的增量阵列和该组运动矢量发送给远程计算机系统。参考图5,所确定的增量阵列和运动矢量可以被运动补偿模块404通过共享存储器514发送给远程呈现引擎406。远程呈现引擎406可以在虚拟处理器上执行(也就是说,远程呈现引擎406可以在受限的上下文中在处理器102上运行),并且致使所确定的增量阵列和运动矢量通过一个或多个分组被发送给客户端。
在一示例性的实施例中,3D图形处理单元504可以用于实施上述操作中的某些操作。在该实施例中,运动补偿模块404的某些功能可以并行地在3D图形处理单元504上运行。例如在一实施例中,DWT模块604、加法器模块608和612和/或运动预测模块614例如可以以着色器指令来实现。简言之,着色器指令是主要用于计算渲染效果的GPU指令集。由于着色器被编写为以将变换应用于大的元素集合,因此着色器良好地适于处理运动补偿模块404的并行处理,使得多个小块可以同时被处理。
现在参考图9,图9示出图8的操作过程的可替代的实施例,其包括附加操作912-926。操作912示出了:通过将从低通子带图像获得的像素值相继地与从该低通子带图像的上一版本中获得像素值相比较来确定该组运动矢量。例如,运动预测模块614可以被配置为相继地将来自源低通子带图像的像素值块与来自参考图像的像素值块比较。例如,运动预测模块614可以选择像素值块并且记录源块的坐标。然后,运动预测模块614可以将源块与具有相同坐标的参考块相比较并且确定该块是否匹配。然后,运动预测模块614可以对源快重新定位;记录被其用于对该源快进行重新定位的矢量;以及将该源快与来自参考块的处于该位置的像素值相比较并且计算出二者之间的误差。运动预测模块614可以继续该过程,直到在预定义的误差阈值下进行计算或者进行了预定义次数的比较操作。当该过程进行时,运动预测模块614可以用多个不同的源像素块来执行相同的操作。在该过程结束以后,运动预测模块614可以被配置为选择用于获得最低误差的矢量作为运动矢量。
继续对图9的描述,操作914示出了:通过将三级低通子带图像划分成多个像素值块并且相继地将所述多个像素块与从该三级低通子带图像的上一版本中获得的像素值块相比较来确定该组运动矢量。例如并且参考图6,在一实施例中,运动预测模块614可以被配置为确定四个运动矢量:来自三级低通子带图像718的每4x4像素块一个运动矢量。该子带图像小块可以通过分解一级低通子带702并且然后分解二级低通子带710来获得。该组操作产生三级LL718。然后,该组四个运动矢量可以使用与上述技术类似的技术来确定。
继续对图9的描述,操作916示出了:从三级低通子带图像以及该三级低通子带图像的上一版本中确定该组运动矢量。例如并且参考图6,在一实施例中,运动预测模块614可以被配置为从三级低通子带(3级LL 718)中确定运动矢量。该子带图像小块可以通过分解一级低通子带702并且然后分解二级低通子带710来获得。该组操作产生三级LL 718。由于分辨率如此低,因此所得到的矢量与通过在数值上更低的子带内进行搜索将获得的运动矢量相比精度更低,然而,该搜索可以更快地完成,因为形成该图像的像素的数量小,并且低分辨率使得更易于找到匹配。
现在转到操作918,操作918示出了:针对二级子带图像和一级子带图像缩放该组运动矢量。再次参考图6,在一示例性的实施例中,运动矢量可以从较高子带(即二级)获得,并且被缩放为使得其可以应用于数值上更低等级的子带图像(即一级)子带图像。例如,在从三级低通子带718获得运动矢量的实施例中,这些运动矢量可以乘以缩放值,使得它们可以应用于二级子带(712、714和716),以及乘以另一缩放值,使得它们可以应用于一级子带(704、706和708)。在一示例性的实施例中,三级低通子带718是原始图像的尺寸的1/8,并且从该子带获得的运动矢量可以乘以2以便获得二级子带的运动矢量,以及乘以4以便获得一级子带的运动矢量。在该示例中,在获得经缩放的矢量以后,这些矢量与源子带图像和参考子带图像的源组一起可以被发送给加法器模块608以便确定多个增量阵列。
操作920示出了:将第二小块发送给硬件编解码器,该硬件编解码器被配置为同时为第二小块确定增量阵列和一组运动矢量。例如并且参考图5,在一示例性实施例中,第二小块可以被发送给编解码器520,并且可以在为第一小块确定第一小块的增量阵列和运动矢量时同时为第二小块确定第二小块的增量阵列和运动矢量。
转到操作922,该操作示出了:对所确定的增量阵列和该组运动矢量进行熵编码。例如并且参考图6,熵编码器模块610可以被配置为在将组子带图像的增量阵列以及运动矢量发送给远程呈现引擎406以前对它们进行熵编码。在该示例性实施例中,熵编码器模块610可以使用无损数据压缩算法来压缩增量阵列和运动矢量。
由于某些编码方案需要更多的资源(即存储器和CPU周期)来实施,因此在一示例性实施例中,熵编码器模块610可以被配置为基于当前存储器带宽来从一组编码器中选择编码器。例如,在一实施例中,熵编码器模块610可以包括基于上下文的自适应二进制算数编码编码器(CABAC)模块或行程编码编码器(RLE)模块。在熵编码器模块610与量化模块606一起使用的例子中,熵编码器模块610可以被配置为为了调节图像的质量和/或基于可用的存储器带宽来调节一个或多个量化参数。
转到操作924,操作924示出了:确定图像小块已经从该图像小块的上一版本发生了改变。例如,在一实施例中,运动补偿模块404可以被配置为将运动估计技术应用于自上一捕捉以来已经改变的小块。例如,图形处理单元504可以执行包括自上一渲染操作以来还未改变的小块的位图并且将该位图绘制到存储器。在该示例中,表示该图像的像素阵列可以被小块化模块602分解成小块、例如较小阵列,并且发送给差分模块616。差分模块616可以被配置为将每个小块与例如该小块的上一版本之类的参考小块相比较。在小块的像素值与该小块的上一版本相同时,差分模块616可以丢弃该小块。在存在差异时,差分模块616可以将该小块转发给离散小波变换模块604。
现在参考操作926,操作926示出了:将该组运动矢量存储在与所确定的增量阵列相关联的元数据内。再次转到图5,在一示例性实施例中,增量阵列可以一起被打包到小块包中并且该小块包可以与该帧中的每个小块的小块包一起被打包到帧包中。然后,帧包可以被发送给远程呈现引擎406,该远程呈现引擎406可以将该帧包插入到一个或多个信息分组中并且将所述分组发送给客户端。在该示例中,每个小块包都可以包括可存储元数据的报头。在该示例性的实施例中,增量阵列的运动矢量可以与指示该小块已经经过运动补偿的位一起被插入到报头中。
现在转到图10,图10示出了用于对图像进行压缩的包括操作1000-1010的操作过程。操作1000开始该操作过程,并且操作1002示出了:通过离散小波变换过程将图像小块分解成一组一级子带图像、一组二级子带图像、以及一组三级子带图像。例如,在一实施例中,离散小波变换模块604可以被配置为通过对小块图像执行离散小波变换来将图像小块(即表示该图像的像素值的分部)分解(即分隔)成子带。在一示例性的实施例中,DWT模块604可以由处理单元执行指令来实现或者在附加到虚拟桌面服务器400的主板的硬件编解码器502内实现等等。在硬件编解码器示例中,3D-GPU服务提供器512可以捕捉图像并且将其发送给编解码器502以供编解码器电路进行处理。
例如并且参考图7,DWT模块604可以被配置为执行三个等级的离散小波变换。第一DWT操作可以将图像小块分隔成一级水平子带(HL)704、一级垂直子带(LH)706、一级对角线子带(HH)708、以及一级低通子带(LL)702分量。在第一DWT完成以后,一级低通子带图像702可以被反馈到DWT模块中,并且可以产生一组二级子带图形,所述二级子带图形可以包括二级水平子带712、二级垂直子带图像714、二级对角线子带图像716、以及二级低通子带图像710。最后,可以对二级低通子带图像710执行第三离散小波变换以生成一组三级子带图形,所述三级子带图形可以包括三级水平子带712、三级垂直子带图像714、三级对角线子带图像716、以及三级低通子带图像718。
回过来参考图10,操作1004示出了:对该组一级子带图像、该组二级子带图像以及该组三级子带图像进行量化。例如,在一实施例中,在分解以后但在运动估计以前,该组子带图像可以被量化模块606量化。在该示例性实施例中,可以使用量化来压缩该组子带图像。
操作1006示出了:从三级低通子带图像以及该三级低通子带图像的上一版本中确定一组三级运动矢量。例如并且再次转到图6,在该示例中,运行补偿模块404可以包括运动预测模块614,例如可执行指令或者集成在编解码器502内的逻辑。在该示例中,运动预测模块614可以在该组子带图像被量化以后通过搜索三级低通子带图像718来确定三级运动矢量。
现在转到操作1008,操作1004示出了:从参考子带图像和该组三级运动矢量中为该组一级子带图像、该组二级子带图像以及该组三级子带图像确定增量阵列。例如并且转到图6,在一实施例中,一组运动矢量(例如四个运动矢量):三级低通子带图像718的每4x4像素块一个运动矢量可以与该组一级子带图像、该组二级子带图像、该组三级子带图像、参考图像(例如组一级子带图像、该组二级子带图像、以及该组三级子带图像的上一版本)一起被发送给加法器模块608。在该示例中,加法器模块608可以被配置为根据合适的运动矢量来偏移该组子带图像并且计算出差阵列。
在一特定的示例中,三级子带图像(LL 718、HL 712、LH 714、以及HH724)可以基于三级运动矢量被偏移一定数目的像素,并且差阵列可以通过将来自三级子带图像的像素值与参考三级子带图像相比较来确定。类似地,加法器模块608可以用2来缩放三级运动矢量726并使用它们从参考二级子带图像中计算差阵列,并且用4来缩放三级运动矢量726并使用它们从参考一级子带图像中计算差阵列。在该过程结束时,加法器模块608可以具有10个差阵列和40个运动矢量。
现在转到操作1010,操作1010示出了:将所确定的增量阵列和至少该组三级运动矢量发送给远程计算机系统。参考图5,所确定的增量阵列和所确定的运动矢量可以被打包到小块包中并且被运动补偿模块404通过共享存储器514发送给远程呈现引擎406。远程呈现引擎406可以在虚拟存储器上执行并且致使小块包通过一个或多个分组被发送给客户端。
图11示出了图10所示的操作过程的替换实施例,其包括附加操作1112-1118。操作1112示出了:在该示例性实施例中,操作过程可以包括用于通过相继地将从三级低通子带图像所获得的像素值块与从该三级低通子带图像的上一版本所获得的像素值块相比较来确定该组三级运动矢量的操作。例如,运动预测模块614可以被配置为使用评估度量来搜索三级运动矢量718。在一示例性实施例中,运动预测模块614可以将三级运动矢量718分解成4个象限,并且可以相继地将来自每个象限的像素值块与来自参考图像的像素值块相比较。运动预测模块614可以继续搜索,直到该计算产生低于预定义的误差阈值的误差值或者进行了预定次数的计算。
操作1114示出了:由硬件编解码器从与第二小块相关联的低通子带图像以及第二小块的至少一组三级运动矢量中同时为一组三级运动矢量确定增量阵列;以及由图形处理单元从与第三图像小块相关联的低通子带图像以及第三图像小块的至少一组三级运动矢量中同时为一组三级运动矢量确定增量阵列。例如并且回过来参考图5,在一示例性实施例中,可以由3D GPU 504为第二图像小块以及由硬件编解码器502同时执行与上面参照图10所述的操作类似的操作。在该示例中,小块可以同时被不同的执行单元处理并且被发送给客户端520。
操作1116示出了:对所确定的增量阵列和该组三级运动矢量进行熵编码。例如并且参考图6,熵编码器模块610可以被配置为在将组子带图像的增量阵列以及运动矢量发送给远程呈现引擎406以前对它们进行熵编码。在该示例性实施例中,熵编码器模块610可以使用无损数据压缩算法来压缩增量阵列和运动矢量。
操作1118示出了:确定图像小块已经从该图像小块的上一版本发生了改变。例如,在一实施例中,运动补偿模块404可以被配置为将运动估计技术应用于自上一捕捉以来已经改变的小块。例如,3D图形处理单元504可以执行包括自上一渲染操作以来还未改变的小块的位图并且将该位图绘制到存储器。在该实例中,表示该图像的像素阵列可以被小块化模块602分解成小块,例如较小阵列,并且发送给差分模块616。差分模块616可以被配置为将每个小块与例如该小块的上一版本之类的参考小块相比较。在小块的像素值与该小块的上一版本相同时,差分模块616可以丢弃该小块。在存在差异时,差分模块616可以将该小块转发给离散小波变换模块604。
现在转到图12,图12示出了用于对图像进行解压缩的操作过程,其操作1200、1202、1204、1206、1208和1210。操作1200开始操作过程,并且操作1202示出了:根据一组运动矢量对一组子带图像进行位置调节。例如并且参考图5,在一示例性实施例中,客户端520可以包括客户端运动补偿模块518,该客户端运动补偿模块518可以由例如编解码器(未示出)之类的硬件来实施,或者由硬件/软件的组合(例如由处理器102或3D图行处理单元(也未示出)中任一执行的可执行指令)来实施。在该实施例中,客户端520可以被配置为接收一组增量阵列和一组运动矢量。在该示例中,客户端520还可以被配置为存储用于生成当前所显示的帧(即参考子带图像)的经离散小波变换的子带图像的副本。客户端520将该组增量阵列和一个或多个运动矢量发送给客户端运动补偿模块518的运动调节模块620。运动调节模块620可以接收该组运动矢量并且使用所述一个或多个运动矢量来调节该组参考子带图像。在一特定的示例中,该组运动矢量可以是一级运动矢量730,例如40个运动矢量,并且用于生成当前帧的经离散小波变换的子带图像可以包括一级HH子带图像、一级LH子带图像、一级HL子带图像、以及一级LL子带图像。
现在参考操作1204,操作1204示出了:将增量阵列应用于该组经重新定位的子带图像,由此获得一组经运动补偿的子带图像。例如并且参考图6,加法器模块618可以接收用于生成当前帧的经位置调节的经离散小波变换的子带图像、以及增量阵列。在该示例中,增量阵列可以与每个参考子带图像相加,由此创建一组经运动补偿的子带图像。
现在参考操作1206,操作1206示出了:对该组经运动补偿的子带图像进行逆量化。例如并且参考图6,该组经运动补偿的子带图像可以被传递给逆量化模块622,该逆量化模块622使用自适应量化参数来对子带图像进行解量化。
继续对图12的描述,操作1208示出了:通过离散小波逆变换过程将该组经运动补偿的子带图像组合成图像小块。例如并且再次转到图6,在一示例性实施例中,客户端运动补偿模块518可以包括离散小波逆变换模块624,该离散小波逆变换模块624可以接收经运动补偿的子带图像。在该示例中,离散小波逆变换模块624可以将经运动补偿的子带图像组装成图像小块。
现在转到操作1210,操作1210示出了:显示图像小块。例如并且转到图5,该图像小块和该帧的所有其他图像小块可以被组装成帧并且写入存储器。客户端520可以读取位图并且将其渲染给显示设备。
参考图13,图13示出了图12的操作过程的可替代的实施例,其包括操作1312、1314、1316和1318。操作1312示出了:从根据一组三级运动矢量被调节的一组三级子带图像中组合二级低通子带图像;从一组二级子带图像、经组合的三级低通子带图像、以及一组二级运动矢量中组合一级低通子带图像;以及从一组一级子带图像、经组合的一级低通子带图像、以及一组一级运动矢量中组合图像小块。例如并且参考图7,在一示例性的实施例中,图6的逆DWT模块624可以被配置为从图7所示的10个子带图像中组合图像小块。例如,运动调节模块620可能之前已经调节了每个参考子带图像并且将其与相关联的增量阵列相加。逆DWT模块624可以在该示例中被配置为从经运动补偿的三级子带图像中组合经运动补偿的二级LL子带图像。然后,逆DWT模块624可以从经运动补偿的二级子带图像中组合经运动补偿的一级LL子带图像。最后,逆DWT模块624可以从经运动补偿的一级子带图像中组合经运动补偿的小块图像。
现在转到操作1314,操作1314示出了:从与该组子带图像相关联的小块报头中的元数据中提取该组运动矢量。例如,在一示例性实施例中,客户端运动补偿模块518可以被配置为接收小块包,该小块包包括例如一组增量阵列、指示该小块包已被运动补偿的位、以及一组存储在该报头中的运动矢量。在该示例中,客户端运动补偿模块518可以确定该小块已经被运动补偿,并且从小块报头中读取运动矢量,并且将其与小块包中的阵列一起传递给例如熵解码器模块616或者直接传递给运动调节模块620。
现在转到操作1316,操作1316示出了:缩放该组运动矢量。例如,在一实施例中,小块包可以包括:10个子带增量阵列,例如:4个三级子带增量阵列、3个二级子带增量阵列、以及3个一级子带增量阵列;以及四个运动矢量,例如三级LL718的每个象限一个运动矢量。在该示例中,运动调节模块620可以被配置为缩放该组运动矢量以便将其应用于二级和一级子带图像。在一示例性的实施例中,三级低通子带718是原始图像的尺寸的1/8,并且因此从该子带获得的运动矢量可以乘以2以便获得二级子带的运动矢量,以及乘以4以便获得一级子带的运动矢量。
操作1318示出了:对该组三级子带图像、该组二级子带图像以及该组一级子带图像进行熵解码。例如并且参考图6,熵解码器模块616可以被配置为接收10个子带增量阵列并且选择无损数据解压缩方案来对增量阵列进行解压缩。例如,小块包可以指示:哪个压缩方案曾被熵编码器模块610使用。在该示例中,熵解码器模块616可以使用该信息来选择合适的解码器并且对子带增量阵列进行解码。
前述的详细描述通过示例和/或操作图阐述了系统和/或过程的各实施例。在这样的框图和/或示例包含一个或多个功能和/或操作的范围内,本领域技术人员将理解,这样的框图,或示例内的每一功能和/或操作可以分别地和/或共同地通过范围广泛的硬件、软件、固件或几乎其任何组合来实现。
尽管示出和描述了此处所描述的本主题的特定方面,但是,对于本领域的技术人员显而易见的是,基于此处的原理,在不偏离此处所描述的主题以及其广泛的方面的情况下,可以作出更改和修改,因此,所附权利要求书将包含在它们的范围内,所有这样的更改和修改都将在此处所描述的主题的真正的精神和范围内。

Claims (15)

1.一种被配置为对虚拟桌面会话期间的图像进行压缩的计算机系统(400),包括:
处理器(102);以及
存储器(104和/或106),该存储器(104和/或106)在计算机系统(400)为可操作时与处理器(102)通信,该存储器(104和/或106)其上存储有计算机可执行指令,所述计算机可执行指令在执行以后致使处理器(102):
通过离散小波变换过程将图像小块分解成一组子带图像(702,704,706和708),其中该组子带图像至少包括低通子带图像(702);
对该组子带图像进行量化;
从低通子带图像(702)以及该低通子带图像的上一版本中确定一组运动矢量;
从该组子带图像的上一版本和该组运动矢量中为该组子带图像(702,704,706和708)确定一组增量阵列;以及
将所确定的增量阵列和该组运动矢量发送给远程计算机系统(520)。
2.如权利要求1所述的计算机系统,其特征在于,所述存储器还包括在执行以后致使该处理器执行以下动作的计算机可执行指令:
通过将从该低通子带图像获得的像素值相继地与从该低通子带图像的上一版本中获得的像素值相比较来确定该组运动矢量。
3.如权利要求1所述的计算机系统,其特征在于,所述存储器还包括在执行以后致使该处理器执行以下动作的计算机可执行指令:
通过将三级低通子带图像划分成多个像素值块并且相继地将所述多个像素值块与从该三级低通子带图像的上一版本中获得的像素值相比较来确定该组运动矢量。
4.如权利要求1所述的计算机系统,其特征在于,所述存储器还包括在执行以后致使该处理器执行以下动作的计算机可执行指令:
从三级低通子带图像以及该三级低通子带图像的上一版本中确定该组运动矢量。
5.如权利要求1所述的计算机系统,其特征在于,所述存储器还包括在执行以后致使该处理器执行以下动作的计算机可执行指令:
针对二级子带图像和一级子带图像缩放该组运动矢量。
6.如权利要求1所述的计算机系统,其特征在于,所述存储器还包括在执行以后致使该处理器执行以下动作的计算机可执行指令:
将第二小块发送给硬件编解码器,该硬件编解码器被配置为同时为第二小块确定增量阵列和一组运动矢量。
7.如权利要求1所述的计算机系统,其特征在于,所述存储器还包括在执行以后致使该处理器执行以下动作的计算机可执行指令:
对所确定的增量阵列和该组运动矢量进行熵编码。
8.如权利要求1所述的计算机系统,其特征在于,所述存储器还包括在执行以后致使该处理器执行以下动作的计算机可执行指令:
确定该图像小块已经从该图像小块的上一版本发生了改变。
9.如权利要求1所述的计算机系统,其特征在于,所述存储器还包括在执行以后致使该处理器执行以下动作的计算机可执行指令:
将该组运动矢量存储在与所确定的增量阵列相关联的元数据内。
10.如权利要求1所述的系统,其特征在于,该处理器是图形处理单元。
11.一种用于对远程呈现会话期间的图像进行压缩的方法,包括:
通过离散小波变换过程将图像小块分解成一组一级子带图像(702,704,706和708)、一组二级子带图像(710,712,714和716)以及一组三级子带图像(718,720,722和724);
量化该组一级子带图像(702,704,706和708)、该组二级子带图像(710,712,714和716)以及该组三级子带图像(718,720,722和724);
从三级低通子带图像(718)和该三级低通子带图像的上一版本中确定一组三级运动矢量(726);
从参考子带图像和该组三级运动矢量中为该组一级子带图像(702,704,706和708)、该组二级子带图像(710,712,714和716)和该组三级子带图像(718,720,722和724)确定增量阵列;以及
将所确定的增量阵列和至少该组三级运动矢量(726)发送给远程计算机系统(520)。
12.如权利要求11所述的方法,其特征在于,还包括:
通过将从该三级低通子带图像获得的像素值块相继地与从三级该低通子带图像的上一版本中获得的像素值块相比较来确定该组三级运动矢量。
13.如权利要求11所述的方法,其特征在于,还包括:
由硬件编解码器从与第二小块相关联的低通子带图像和第二小块的至少一组三级运动矢量中为一组三级运动矢量同时确定增量阵列;
由图形处理单元从与第三图像小块相关联的低通子带图像和第三图像小块的至少一组三级运动矢量中为一组三级运动矢量同时确定增量阵列。
14.如权利要求11所述的方法,其特征在于,还包括:
对所确定的增量阵列和该组三级运动矢量进行熵编码。
15.如权利要求11所述的方法,其特征在于,还包括:
确定该图像小块已经从该图像小块的上一版本发生了改变。
CN2011103077891A 2010-09-29 2011-09-28 用于基于dwt的系统的运动补偿的低复杂度方法 Pending CN102411786A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/893,969 2010-09-29
US12/893,969 US20120075346A1 (en) 2010-09-29 2010-09-29 Low Complexity Method For Motion Compensation Of DWT Based Systems

Publications (1)

Publication Number Publication Date
CN102411786A true CN102411786A (zh) 2012-04-11

Family

ID=45870203

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011103077891A Pending CN102411786A (zh) 2010-09-29 2011-09-28 用于基于dwt的系统的运动补偿的低复杂度方法

Country Status (2)

Country Link
US (1) US20120075346A1 (zh)
CN (1) CN102411786A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105374005A (zh) * 2014-08-11 2016-03-02 Arm有限公司 数据处理系统
CN108257079A (zh) * 2016-12-29 2018-07-06 北京国双科技有限公司 图形变换方法及装置
CN110740352A (zh) * 2019-11-14 2020-01-31 北京京航计算通讯研究所 显卡透传环境下基于spice协议的差异图像显示方法

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745173B1 (en) * 2011-12-30 2014-06-03 hopTo Inc. Client computing system for and method of receiving cross-platform remote access to 3D graphics applications
JP5722761B2 (ja) * 2011-12-27 2015-05-27 株式会社ソニー・コンピュータエンタテインメント 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造
US9367931B1 (en) 2011-12-30 2016-06-14 hopTo Inc. Motion vectors for cross-platform display
US9454617B1 (en) * 2011-12-30 2016-09-27 hopTo Inc. Client rendering
US8769052B1 (en) 2011-12-30 2014-07-01 hopTo Inc. Cloud-based server computing system for and method of providing cross-platform remote access to 3D graphics applications
US8838749B1 (en) 2011-12-30 2014-09-16 hopTo Inc. Cloud based client computing system for and method of receiving cross-platform remote access to 3D graphics applications
US9223534B1 (en) 2011-12-30 2015-12-29 hopTo Inc. Client side detection of motion vectors for cross-platform display
US8766990B1 (en) 2011-12-30 2014-07-01 hopTo Inc. Server computing system for and method of providing cross-platform remote access to 3D graphics applications
US9218107B1 (en) 2011-12-30 2015-12-22 hopTo Inc. Cloud-based text management for cross-platform display
US9106612B1 (en) 2012-05-18 2015-08-11 hopTo Inc. Decomposition and recomposition for cross-platform display
US9124562B1 (en) 2012-05-18 2015-09-01 hopTo Inc. Cloud-based decomposition and recomposition for cross-platform display
US9250782B1 (en) 2013-03-15 2016-02-02 hopTo Inc. Using split windows for cross-platform document views
US9430134B1 (en) 2013-03-15 2016-08-30 hopTo Inc. Using split windows for cross-platform document views
US9342859B2 (en) * 2013-10-22 2016-05-17 American Megatrends, Inc. GPU based parallel image processing at thin client
US9185136B2 (en) * 2013-11-28 2015-11-10 Cyber-Ark Software Ltd. Correlation based security risk identification
US10542258B2 (en) 2016-01-25 2020-01-21 Google Llc Tile copying for video compression
KR101742258B1 (ko) * 2016-02-29 2017-05-31 경희대학교 산학협력단 웹 기반 가상 데스크탑 프로토콜을 이용한 컨텐츠 제공 방법 및 장치
GB2559550A (en) * 2017-02-03 2018-08-15 Realvnc Ltd Method and system for remote controlling and viewing a computing device
US10497173B2 (en) * 2018-05-07 2019-12-03 Intel Corporation Apparatus and method for hierarchical adaptive tessellation
WO2020140063A1 (en) * 2018-12-27 2020-07-02 Futurewei Technologies, Inc. Flexible tile signaling in video coding
CN110868614B (zh) * 2019-11-14 2021-09-28 北京京航计算通讯研究所 显卡透传环境下基于spice协议的差异图像显示系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1281618A (zh) * 1997-11-14 2001-01-24 分析科技公司 压缩视频信息的装置及其方法
TWI243615B (en) * 2004-10-11 2005-11-11 Ind Tech Res Inst System for enhancing compression ratio of scalable video coding and method thereof
US20060008038A1 (en) * 2004-07-12 2006-01-12 Microsoft Corporation Adaptive updates in motion-compensated temporal filtering
CN1885946A (zh) * 2005-06-24 2006-12-27 三星电子株式会社 运动错误补偿器以及检测和补偿运动错误的方法
US20100001995A1 (en) * 2008-01-03 2010-01-07 International Business Machines Corporation Method and System for Remote Visualization Client Acceleration
US20100103195A1 (en) * 1999-11-09 2010-04-29 Macinnis Alexander G Video, audio and graphics decode, composite and display system
US20100226441A1 (en) * 2009-03-06 2010-09-09 Microsoft Corporation Frame Capture, Encoding, and Transmission Management

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6937659B1 (en) * 1997-11-14 2005-08-30 Ac Capital Management, Inc. Apparatus and method for compressing video information
US20110134315A1 (en) * 2009-12-08 2011-06-09 Avi Levy Bi-Directional, Local and Global Motion Estimation Based Frame Rate Conversion

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1281618A (zh) * 1997-11-14 2001-01-24 分析科技公司 压缩视频信息的装置及其方法
US20100103195A1 (en) * 1999-11-09 2010-04-29 Macinnis Alexander G Video, audio and graphics decode, composite and display system
US20060008038A1 (en) * 2004-07-12 2006-01-12 Microsoft Corporation Adaptive updates in motion-compensated temporal filtering
CN1735208A (zh) * 2004-07-12 2006-02-15 微软公司 在运动补偿的时间滤波中的自适应更新
TWI243615B (en) * 2004-10-11 2005-11-11 Ind Tech Res Inst System for enhancing compression ratio of scalable video coding and method thereof
CN1885946A (zh) * 2005-06-24 2006-12-27 三星电子株式会社 运动错误补偿器以及检测和补偿运动错误的方法
US20100001995A1 (en) * 2008-01-03 2010-01-07 International Business Machines Corporation Method and System for Remote Visualization Client Acceleration
US20100226441A1 (en) * 2009-03-06 2010-09-09 Microsoft Corporation Frame Capture, Encoding, and Transmission Management

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HYUN-WOOK PARK 等: "motion estimation using low-band-shift method for wavelet-based moving-picture coding", 《IEEE TRANSACTIONS ON IMAGE PROCESSING》, vol. 9, no. 4, 30 April 2000 (2000-04-30), XP011025569 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105374005A (zh) * 2014-08-11 2016-03-02 Arm有限公司 数据处理系统
CN105374005B (zh) * 2014-08-11 2020-10-23 Arm有限公司 数据处理系统及其操作方法、计算机可读存储介质
CN108257079A (zh) * 2016-12-29 2018-07-06 北京国双科技有限公司 图形变换方法及装置
CN108257079B (zh) * 2016-12-29 2021-07-27 北京国双科技有限公司 图形变换方法及装置
CN110740352A (zh) * 2019-11-14 2020-01-31 北京京航计算通讯研究所 显卡透传环境下基于spice协议的差异图像显示方法
CN110740352B (zh) * 2019-11-14 2021-07-20 北京京航计算通讯研究所 显卡透传环境下基于spice协议的差异图像显示方法

Also Published As

Publication number Publication date
US20120075346A1 (en) 2012-03-29

Similar Documents

Publication Publication Date Title
CN102411786A (zh) 用于基于dwt的系统的运动补偿的低复杂度方法
JP5971493B2 (ja) Gpuリソースの複数のクライアントへの割り当て
US9069622B2 (en) Techniques for load balancing GPU enabled virtual machines
CN102495769B (zh) 动态虚拟设备故障恢复
CN102932324B (zh) 支持降低的网络带宽使用的跨帧渐进损坏
US10002403B2 (en) Command remoting
US9235452B2 (en) Graphics remoting using augmentation data
US8600155B2 (en) Classification and encoder selection based on content
MX2013014599A (es) Escritorio basado en navegador web y solucion de ubicacion remota de aplicacion.
CN102378976B (zh) 使用多个处理器的图像压缩加速
CN106797398B (zh) 用于向客户端提供虚拟桌面服务的方法和系统
CN101088107A (zh) 图形处理器在远程计算中的使用
CN114025238B (zh) 基于Linux服务器原生安卓应用云端虚拟化方法
CN102355489A (zh) 通过网络显示与操作3d游戏的方法、系统、服务器及客户端
CN115065684A (zh) 数据处理方法、装置、设备以及介质
Xia et al. Highly accurate real-time image steganalysis based on GPU
US20130282560A1 (en) Application accessibility system and method
CN113835816A (zh) 一种虚拟机桌面显示方法、装置、设备及可读存储介质
US10656956B2 (en) Virtual desktop server for supporting high-quality graphics processing and method for processing high-quality graphics using the same
CN114625487B (zh) 在元宇宙中运行应用程序的方法、系统、设备及存储介质
US12026585B1 (en) Tensor network decoder with accounting for correlated noise
Wang et al. Matching search in fractal video compression and its parallel implementation in distributed computing environments
US20240020564A1 (en) Quantum circuits for matrix trace estimation
Hota VaaS: Visualization as a Service
Wagner et al. Real-time Service-based Stream-processing of High-resolution Videos

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150727

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150727

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

AD01 Patent right deemed abandoned

Effective date of abandoning: 20161019

C20 Patent right or utility model deemed to be abandoned or is abandoned