CN107077747A - 远程显示的图形命令压缩 - Google Patents

远程显示的图形命令压缩 Download PDF

Info

Publication number
CN107077747A
CN107077747A CN201580059666.7A CN201580059666A CN107077747A CN 107077747 A CN107077747 A CN 107077747A CN 201580059666 A CN201580059666 A CN 201580059666A CN 107077747 A CN107077747 A CN 107077747A
Authority
CN
China
Prior art keywords
token
command token
block graphics
current block
graphics command
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.)
Granted
Application number
CN201580059666.7A
Other languages
English (en)
Other versions
CN107077747B (zh
Inventor
M·A·S·Y·马卡尔
H·江
V·R·拉韦恩德朗
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN107077747A publication Critical patent/CN107077747A/zh
Application granted granted Critical
Publication of CN107077747B publication Critical patent/CN107077747B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

在一个例子中,一种用于发送视频数据的方法,包括:捕获分别能够渲染到多帧视频数据的多组图形命令令牌;以及响应于确定所述多组图形命令令牌的当前组图形命令令牌的长度与所述多组图形命令令牌的先前组的长度相同,由源设备并且向宿设备输出所述当前组图形命令令牌的已压缩版本。

Description

远程显示的图形命令压缩
技术领域
本公开涉及从源设备流送视频到宿设备(sink device)的技术。
背景技术
无线显示(WD)系统包括源设备和一个或更多个宿设备。源设备和每个宿设备可以是具有无线通信能力的移动设备或有线设备。作为移动设备,例如,源设备和宿设备中的一个或更多个可以包括移动电话、平板计算机、膝上型计算机,具有无线通信卡的便携式计算机,个人数字助理(PDA)、无线游戏设备、便携式媒体播放器,或者具有无线通信能力的其它闪存设备。移动设备还可以包括所谓的“智能”电话和“智能”垫或者平板,或者其它类型的无线通信设备。作为有线设备,例如,源设备和宿设备中的一个或更多个可以包括包括无线通信能力的电视机、台式计算机、监视器、投影仪等。
源设备向参与特定通信会话的宿设备中的一个或更多个发送媒体数据,例如音频和/或视频数据。媒体数据可以在源设备的本地显示器处并且在宿设备的每个显示器处回放。更具体地说,参与宿设备中的每个参与宿设备在其显示器和音频设备上渲染接收到的媒体。
发明内容
一般而言,本公开描述了利用压缩图形命令令牌从源设备发送视频数据到宿设备的技术。
在一个例子中,一种用于发送视频数据的方法,包括:捕获分别能够渲染到多帧视频数据的多组图形命令令牌;以及响应于确定所述多组图形命令令牌的当前组图形命令令牌的长度与所述多组图形命令令牌的所述先前组的长度相同,由源设备并且向宿设备输出所述当前组图形命令令牌的已压缩版本。
在另一例子中,一种源设备,包括:存储器;一个或更多个处理器;以及能够由所述一个或更多个处理器执行的至少一个模块。在该例子中,所述至少一个模块能被所述一个或更多个处理器执行用于:捕获分别能够渲染到多帧视频数据的多组图形命令令牌;以及响应于确定所述多组图形命令令牌的当前组图形命令令牌的长度与所述多组图形命令令牌的先前组的长度相同,向宿设备输出所述当前组图形命令令牌的已压缩版本。
在另一例子中,一种源设备,包括:用于捕获分别能够渲染到多帧视频数据的多组图形命令令牌的单元;以及用于向宿设备并且响应于确定所述多组图形命令令牌的当前组图形命令令牌的长度与所述多组先前组的长度相同,输出所述当前组图形命令令牌的已压缩版本的单元。
在另一例子中,一种存储指令的非瞬态计算机可读存储介质,当被执行时,所述指令使得源设备的一个或更多个处理器:捕获分别能够渲染到多帧视频数据的多组图形命令令牌;以及响应于确定所述多组图形命令令牌的当前组图形命令令牌的长度与所述多组图形命令令牌的先前组的长度相同,向宿设备输出所述当前组图形命令令牌的已压缩版本。
在另一例子中,一种用于接收视频数据的方法,包括:由宿设备并且从源设备接收一版本的当前组图形命令令牌以及所述当前组图形命令令牌的压缩状态的指示,其中所述当前组图形命令令牌来自分别能够渲染到多帧视频数据的多组图形命令令牌;响应于基于所述压缩状态的所述指示确定所述版本的所述当前组图形命令令牌被利用基于帧的压缩进行了压缩,基于所述先前组图形命令令牌以及在所述多组图形命令令牌的所述当前组与所述多组图形命令令牌的先前组之间的接收到的差量,生成所述当前组图形命令令牌的重构版本;以及基于所述当前组图形命令令牌的所述重构版本,渲染视频数据的帧。
在另一例子中,一种宿设备,包括:存储器;一个或更多个处理器;以及能够由所述一个或更多个处理器执行的至少一个模块。在该例子中,所述至少一个模块能够被所述一个或更多个处理器执行,用于:从源设备接收一版本的当前组图形命令令牌以及所述当前组图形命令令牌的压缩状态的指示,其中所述当前组图形命令令牌来自分别能够渲染到多帧视频数据的多组图形命令令牌;响应于基于所述压缩状态的所述指示确定所述版本的所述当前组图形命令令牌被利用基于帧的压缩进行了压缩,基于所述先前组图形命令令牌以及所述当前组图形命令令牌与所述多组图形命令令牌的先前组图形命令令牌之间的接收到的差量,生成所述当前组图形命令令牌的重构版本;以及基于所述当前组图形命令令牌的所述重构版本,渲染视频数据的帧。
在另一方面,一种宿设备包括:用于从源设备接收一版本的当前组图形命令令牌以及所述当前组图形命令令牌的压缩状态的指示的单元,其中所述当前组图形命令令牌来自分别能够渲染到多帧视频数据的多组图形命令令牌;用于响应于基于所述压缩状态的所述指示确定所述版本的所述当前组图形命令令牌被利用基于帧的压缩进行了压缩,基于所述先前组图形命令令牌以及在所述当前组图形命令令牌与所述多组图形命令令牌的先前组图形命令令牌之间的接收到的差量,生成所述当前组图形命令令牌的重构版本的单元;以及用于基于所述当前组图形命令令牌的所述重构版本渲染视频数据的帧的单元。
在另一例子中,一种存储指令的非瞬态计算机可读存储介质,当被执行时,所述指令使得宿设备的一个或更多个处理器:从源设备接收一版本的当前组图形命令令牌以及所述当前组图形命令令牌的压缩状态的指示,其中所述当前组图形命令令牌来自分别能够渲染到多帧视频数据的多组图形命令令牌;响应于基于所述压缩状态的所述指示确定所述版本的所述当前组图形命令令牌被利用基于帧的压缩进行了压缩,基于所述先前组图形命令令牌以及在所述当前组图形命令令牌与所述多组图形命令令牌的先前组图形命令令牌之间的接收到的差量,生成所述当前组图形命令令牌的重构版本;以及基于所述当前组图形命令令牌的所述重构版本,渲染视频数据的帧。
在附图中阐述并在下文描述一个或更多个例子的细节。根据描述和附图以及根据权利要求,其它的特征、对象和优点将变得显而易见。
附图说明
图1是示出了根据本公开的一个或更多个技术可以由源设备输出用于将视频帧流送到宿设备的示例性命令帧100的概念图。
图2是根据本公开的一个或更多个技术示出图形命令令牌的一个例子的更多细节的概念图。
图3是根据本公开的一个或更多个技术的示例性无线显示(WD)系统的概念图,在所述系统中源设备被配置为通过通信信道发送压缩图形命令到宿设备。
图4是根据本公开的一个或更多个技术示出图3的源设备4和宿设备6的一个例子的更多细节的框图,其中源设备4被配置为通过通信信道8流送视频数据到宿设备6。
图5A-5C是根据本公开的一个或更多个技术示出令牌的示例性集合的概念图,所述令牌可以由源设备分析以执行基于令牌的压缩。
图6A和6B是根据本公开的一个或更多个技术示出了示例性命令帧的概念图,所述命令帧可以由源设备输出以流送视频帧到宿设备。
图7A和7B是根据本公开的一个或更多个技术示出源设备流送视频数据到宿设备的示例性操作的流程图。
图8是根据本公开的一个或更多个技术示出源设备利用基于帧的压缩流送视频数据到宿设备的示例性操作的流程图。
图9是根据本公开的一个或更多个技术示出源设备利用基于令牌的压缩流送视频数据到宿设备的示例性操作的流程图。
图10是根据本公开的一个或更多个技术示出宿设备从源设备接收流送视频数据的示例性操作的流程图。
图11是根据本公开的一个或更多个技术示出宿设备对从源设备接收到的流送视频数据执行基于帧的重构的示例性操作的流程图。
图12是根据本公开的一个或更多个技术示出宿设备对从源设备接收到的流送视频数据执行基于令牌的重构的示例性操作的流程图。
图13是根据本公开的一个或更多个技术示出在WD系统内示例性数据流的概念图,在所述WD系统内源设备被配置为通过通信信道发送已压缩图形命令到宿设备。
图14是根据本公开的一个或更多个技术示出根据帧号的数据速率的图。
图15是根据本公开的一个或更多个技术示出利用不同的压缩技术针对多个应用流送视频数据的数据量的图。
图16是根据本公开的一个或更多个技术示出利用不同的压缩技术针对多个应用流送视频数据的数据量的图。
具体实施方式
本公开描述了用于从源设备流送视频到宿设备的技术。在一些例子中,通过捕获来自源设备的帧缓冲器的已构造帧,并将捕获到的帧发送到宿设备,源设备可以流送视频到宿设备,然后宿设备可以在宿设备的显示器处显示图像。该方法可以被称作“像素域”传输方法。然而,在一些例子中,由于捕获到的图像的传输要求高的平均数据速率,所以可能不期望使用像素域方法。
替代地,在一些例子中,“图形域”传输方法可以由源设备用于流送解构的视频帧到宿设备。可以通过捕获在源设备的GPU的输入处的图形命令令牌(例如,OpenGL命令的令牌)和纹理元素形式的显示数据,发送命令令牌和纹理元素到宿设备,来完成图形域传输。宿设备的GPU可以渲染命令令牌和纹理元素到可显示的帧,并在宿设备的显示器处输出所渲染的帧。
在一些例子中,用于渲染连续帧的图形命令令牌可能是相似的。例如,用于渲染帧n的图形命令令牌相似于用于渲染帧n+1的图形命令令牌。根据本公开的一个或更多个技术,与为每帧发送完整的图形命令令牌相反,源设备可以利用该冗余来为一个或更多个帧压缩图形命令令牌。在一些例子中,源设备可以利用基于帧的预测编码和基于令牌的编码之一或二者来压缩图形命令令牌。这样,源设备可以减少用于传输图形命令令牌所要求的数据速率。
图1是示出了根据本公开的一个或更多个技术由源设备输出用于将视频帧流送到宿设备的示例性命令帧100的概念图。如图1所示,命令帧100包括帧开始字段102、帧数据字段104以及帧结束字段106。
在一些例子中,帧开始字段102可以包括开始标记108以及帧号字段112。在一些例子中,帧开始字段102可以指示命令帧100(即,在数据流内)的开始。在一些例子中,帧号字段112可以指示命令帧100的序列号。在一些例子中,对于后续帧帧号字段112的值可以递增。例如,帧号字段112的值对于当前帧是n而对于下一帧是n+1。
在一些例子中,帧数据字段102可以包括多个图形命令令牌114A-114N(统称“令牌114”)。每个令牌114可以对应于图形命令的特定令牌。在下文参考图2提供了令牌114的令牌的一个示例的更多细节。
在一些例子中,帧结束字段106可以包括结束标记116以及帧号字段120。在一些例子中,帧结束字段116可以指示帧结束字段106(即,在数据流内)的开始。在一些例子中,帧号字段120可以指示命令帧100的序列号。
图2是根据本公开的一个或更多个技术示出图形命令令牌的一个例子的更多细节的概念图。如图2所示,令牌114A可以包括令牌头部字段122和令牌数据字段124。
在一些例子中,令牌头部字段112可以指示令牌114A的一个或更多个特性。在一些例子中,令牌头部字段112可以是固定长度,例如12字节。如图2所示,令牌头部字段112可以包括令牌类型126以及令牌数据尺寸130。令牌类型126可以指示图形命令集合的哪个图形命令对应于令牌114A(即,哪个图形命令令牌114A是其令牌)。令牌数据尺寸130可以指示令牌数据字段124的尺寸(例如,以字节为单位)。
令牌数据字段124可以指示令牌114A的一个或更多个变量。例如,如果令牌类型126指示的图形命令类型采用两个变量,则令牌数据字段124可以包括用于这两个变量的数据。
图3是根据本公开的一个或更多个技术的示例性无线显示(WD)系统的概念图,在所述系统中源设备被配置为通过通信信道发送已压缩图形命令到宿设备。如图3所示,WD系统2包括源设备4、宿设备6和通信信道8。
通信信道8可以是能够在源设备4和宿设备6之间传播通信信号的任何信道。在一些例子中,通信信道8可以是无线通信信道。例如,通信信道8可以实现于例如2.4千兆赫(GHz)带、5GHz带、60GHz带的频带中或者其它频带中的射频通信中。在一些例子中,通信信道8可以遵守一组或更多组标准、协议或技术,例如,通用串行总线(USB)(如USB实现者论坛提出的)、Wi-Fi(如Wi-Fi联盟提出的)、WiGig(如无线千兆比特联盟提出的)和/或电气和电子工程师协会(IEEE)802.11标准集(例如,802.11、802.11a、802.11b、802.11g、802.11n、802.11ac、802.11ad等),或者其它标准、协议或技术。可以为本公开的目的定义所使用的频带(例如,2.4GHz、5GHz和60GHz带),因为根据Wi-Fi、WiGig、任何一个或更多个IEEE 802.11协议或者其它可应用标准或协议进行考虑。
WD2可以包括源设备4,设备4可以被配置为通过通信信道(例如,通信信道8)发送压缩图形命令令牌形式的视频数据到宿设备,例如宿设备6。源设备4的例子可以包括但不限于移动设备,例如,智能电话或其它移动手机、平板计算机、膝上型计算机、台式计算机、可穿戴计算设备(例如,智能手表、遮阳板等)、一个或更多个处理单元或其它集成电路或芯片组、或其它电子设备。如图3的例子所示,源设备4可以包括通信模块10、图形处理单元(GPU)12、流送模块14、纹理元素16以及应用模块18A-18N。
源设备4可以包括通信模块10,通信模块10可以管理在源设备4和一个或更多个外部设备(例如,宿设备6)之间的通信。例如,通信模块10可以通过通信信道8与宿设备6交换数据。作为一个例子,通信模块10可以通过通信信道8将已压缩图形命令令牌流送到宿设备6。在一些例子中,通信模块10可以接收要从源设备4的其它部件发送的信息。例如,通信模块10可以从流送模块14接收已压缩图形命令令牌。
源设备4可以包括GPU 12,GPU 12可以基于一个或更多个纹理元素和图形命令令牌渲染视频数据的帧。可以由GPU 12执行的图形命令的一些例子包括但不限于, API、Khronos集团的 API以及OpenCLTM API。在一些例子中,GPU 12可以基于与一个或更多个应用模块18相关联的图形命令令牌和纹理元素渲染视频数据的帧。例如,GPU 12可以基于与应用模块18的应用模块相关联的图形命令令牌和纹理元素渲染视频数据的帧,用于在操作地耦合到或者包含于源设备4内显示器处进行输出。
源设备4可以包括流送模块14,流送模块14可以被配置为流送视频数据到一个或更多个外部设备。例如,流送模块14可以流送图形命令令牌和纹理元素形式的视频数据到宿设备6。在一些例子中,流送模块14可以在命令帧(例如图1的命令帧100)中封装图形命令令牌。在一些例子中,流送模块14可以在GPU 12的输入处捕获图形命令令牌和/或纹理元素16。在一些例子中,与输出完整的图形命令令牌相反,流送模块14可以输出图形命令令牌的已压缩版本。在一些例子中,流送模块14可以利用基于帧的预测编码和基于令牌的编码之一或二者生成图形命令令牌的已压缩版本。
在一些例子中,除了已压缩版本的图形命令令牌外,流送模块14还可以输出图形命令令牌压缩状态的指示。例如,流送模块14可以输出命令帧,命令帧包括一版本的图形命令令牌和指示,该指示指示该版本的图形命令令牌是未压缩的,利用基于帧的预测编码压缩的,还是利用基于令牌的编码压缩的。
源设备4可以包括应用模块18,应用模块18中的每一个可以代表由制造源设备4的实体提供的应用或者在源设备4上运行的软件或者由第三方开发的与源设备4一起使用的应用。应用模块18的例子可以包括用于以下的应用:游戏、购物、旅行路线规划、地图、音频和/或视频演示、文字处理、电子表单、语音和/或呼叫、天气等。
源设备4可以包括纹理元素16,纹理元素16可以由GPU用于渲染视频数据的帧。在一些例子中,一个或更多个纹理元素16可以与应用模块18的特定应用模块相关联。例如,当应用模块18的游戏应用需要切开下落的水果(例如,西瓜、牛油果、菠萝等)时,可能与游戏应用相关联的纹理元素16的示例性纹理元素包括每类水果的图形表示。在一些例子中,纹理元素16可以以多个格式存储。一些示例性格式包括但不限于,RGBα8888、RGBα4444、RGBα5551、RGB 565、Yα88和α8。
WD2可以包括宿设备6,宿设备6可以被配置为从源设备(例如,源设备4)通过通信信道(例如,通信信道8)接收已压缩图形命令令牌形式的视频数据。宿设备6的例子可以包括但不限于移动设备,例如,智能电话或其它移动手机、平板计算机、膝上型计算机、台式计算机、可穿戴计算设备(例如,智能手表、遮阳板等)、电视、监视器、一个或更多个处理单元或者其它集成电路或芯片组,或者其它电子设备。如图3的例子所示,宿设备6可以包括通信模块19、图形处理单元(GPU)20、流送模块22以及纹理元素24。
宿设备6可以包括通信模块19,通信模块19可以管理在宿设备6和一个或更多个外部设备(例如,源设备4)之间的通信。在一些例子中,通信模块19可以执行类似于源设备4的通信模块10的操作。例如,通信模块19可以通过通信信道8与源设备4交换数据。作为一个例子,通信模块19可以通过直接Wi-Fi连接从源设备4接收图形命令令牌和纹理元素。在一些例子中,通信模块19可以提供接收到的信息到宿设备6的其它部件。例如,通信模块19可以向流送模块22提供接收到的图形命令令牌和纹理元素。
宿设备6可以包括GPU 20,GPU 20可以执行类似于源设备4的GPU 12的操作。例如,GPU 20可以基于一个或更多个纹理元素和图形命令令牌渲染视频数据的帧。在一些例子中,GPU 20可能能够执行与GPU 12相同的图形命令。可以由GPU 20执行的图形命令的一些例子包括但不限于, API、Khronos集团的 API以及OpenCLTM API。在一些例子中,GPU 20可以基于从宿设备6的一个或更多个其它部件(例如流送模块22)接收到的图形命令令牌和纹理元素渲染视频数据的帧。例如,GPU 20可以基于从流送模块22接收到的图形命令令牌和纹理元素渲染视频数据的帧,用于在操作地耦合到或者包含于宿设备6内的显示器处进行输出。
宿设备6可以包括流送模块22,流送模块22可以被配置为从一个或更多个外部设备接收流送视频数据。例如,流送模块22可以从源设备4接收图形命令令牌和纹理元素形式的视频数据。在一些例子中,可以在命令帧(例如图1的命令帧100)中封装由流送模块22接收到的图形命令令牌。在这些例子中,流送模块22可以被配置为解封图形命令令牌。在一些例子中,与接收完整的图形命令令牌相反,流送模块22可以接收已压缩图形命令令牌。在这种例子中,流送模块22可以被配置为基于接收到的已压缩图形命令令牌重构图形命令令牌。
在一些例子中,除了已压缩图形命令令牌外,流送模块22还可以接收已压缩图形命令令牌压缩状态的指示。例如,流送模块22可以接收命令帧,命令帧包括一版本的图形命令令牌和指示,该指示指示接收到的版本的图形命令令牌是未压缩的,利用基于帧的预测编码压缩的,还是利用基于令牌的编码压缩的。
宿设备6可以包括纹理元素24,纹理元素24可以由GPU用于渲染视频数据的帧。在一些例子中,流送模块22可以将从源设备4接收到的纹理元素存储到纹理元素24中。
源设备4的用户可能期望从源设备4流送视频到宿设备6。例如,当源设备4的显示器的尺寸小于宿设备6的显示器的尺寸时,源设备4的用户可能期望利用宿设备6的更大显示器来输出视频。然而,例如由于带宽限制,处理功率等,可能不希望从源设备4发送视频数据的已构造帧到宿设备6。根据本公开的一个或更多个技术,流送模块14源设备4可以经由通信信道8将图形命令令牌和一个或更多个纹理元素输出到宿设备6的流送模块22,以便使得宿设备6的GPU 20渲染视频数据的帧。这样,与在像素域内流送视频数据相比,源设备4可以在图形域中例如通过流送图形命令和纹理元素来流送视频数据到宿设备6。
在一些例子中,用于渲染连续帧的图形命令令牌可以是相似的。例如,用于渲染帧n的图形命令令牌可以相似于用于渲染帧n+1的图形命令令牌。根据本公开的一个或更多个技术,与为每帧发送完整的图形命令令牌相比,源设备4可以利用该冗余来为一个或更多个帧压缩图形命令令牌。例如,为了使得宿设备6渲染当前帧n,源设备4可以为当前帧n向宿设备6发送已压缩版本的图形命令令牌。在一些例子中,当前帧n的已压缩版本的图形命令令牌可以定义在帧n的图形命令令牌和先前帧n-1的图形命令令牌之间的不同。这样,源设备4可以减少为当前帧n传输图形命令令牌要求的数据速率。
图4是根据本公开的一个或更多个技术示出图3的源设备4和宿设备6的一个例子的更多细节的框图,其中源设备4被配置为通过通信信道8流送视频数据到宿设备6。
如图4所示,源设备4可以包括一个或更多个处理器30,一个或更多个通信单元32,一个或更多个用户接口(UI)设备34,以及一个或更多个存储设备36。每个部件30、32、34和36可以经由通信信道38(物理地、通信地和/或操作地)互连,用于部件间的通信。在一些例子中,通信信道38可以包括系统总线、网络连接、进程间通信数据结构或者用于传送数据的任何其它信道。在一些例子中,一个或更多个存储设备36可以包括通信模块10、流送模块14、纹理元素16、一个或更多个应用模块18A-18N(统称为“应用模块18”)以及UI模块40。
在一些例子中,处理器30被配置为实现在源设备4内执行的功能和/或过程指令。例如,处理器30可能能够处理存储于一个或更多个存储设备36内的指令。处理器30的例子可以包括任何一个或更多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或者任何其它等同集成或离散逻辑电路,以及这些部件的任意组合。
在一些例子中,源设备4还包括一个或更多个通信单元32。在一个例子中,源设备4利用一个或更多个通信单元32经由一个或更多个网络(例如,一个或更多个无线网络)来与外部设备进行通信。一个或更多个通信单元32可以是网络接口卡,例如,以太网卡、光收发器、射频收发器,或者能够发送和接收信息的任何其它类型的设备。这种网络接口的其它例子可以包括蓝牙、3G和Wi-Fi无线电。在一些例子中,源设备4利用通信单元32来与外部设备进行无线通信。例如,源设备4可以利用通信单元32通过通信信道8与宿设备6的通信单元52进行无线通信。在一些例子中,通信单元32可以从源设备4的其它部件(例如,通信模块10)接收输入,所述其它部件使得通信单元32与外部设备进行通信。
在一些例子中,源设备4还可以包括一个或更多个UI设备34。在一些例子中,UI设备34中的一个或更多个可以被配置为输出内容,例如视频数据。例如,UI设备34的显示器可以被配置为显示由GPU 12渲染的视频数据的帧。除了输出内容外,UI设备34中的一个或更多个可以被配置为接收触觉、音频或者视觉输入。UI设备34的一些例子包括视频显示器、扬声器、键盘、触摸屏、鼠标、摄像机等。
在一些例子中,源设备4还可以包括UI模块40。UI模块40可以执行一个或更多个功能来从与源设备4相关联的其它部件接收内容(例如,UI数据),并使得UI设备34中的一个或更多个输出这些内容。在一些例子中,UI模块40可以被配置为接收输入(例如用户输入)的指示;并发送输入的指示到与源设备4相关联的其它部件,例如流送模块14。
一个或更多个存储设备36可以被配置为在操作期间将信息存储于源设备4中。在一些例子中,存储设备36的一个或更多个可以包括计算机可读存储介质。在一些例子中,存储设备36的一个或更多个可以包括临时存储器,意思是存储设备36的一个或更多个的主要目的不是长期存储。在一些例子中,存储设备36的一个或更多个可以包括易失性存储器,意思是存储设备36的一个或更多个在系统关闭时不保留所存储的内容。易失性存储器的例子包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及本领域已知的其它形式的易失性存储器。在一些例子中,存储设备36的一个或更多个被用于存储由处理器30执行的程序指令。在一个例子中,存储设备36的一个或更多个可以由在源设备4上运行的软件或者模块(例如,通信模块10、流送模块14、应用模块18和UI模块40)用于在程序执行期间临时存储信息。
在一些例子中,存储设备36的一个或更多个还可以包括一个或更多个计算机可读存储介质。存储设备36的一个或更多个还可以被配置用于长期存储信息。在一些例子中,存储设备36的一个或更多个可以包括非易失性存储元件。这种非易失性存储元件的例子包括磁性硬盘、光盘、软盘、闪存,或者电可编程存储器(EPROM)或电可擦除和可编程(EEPROM)存储器的形式。
如上所述,源设备4可以包括流送模块14,流送模块14可以被配置为将视频数据流送到一个或更多个外部设备。在一些例子中,流送模块14可以包括压缩类型模块41、基于帧的压缩模块41以及基于令牌的压缩模块44。
在一些例子中,压缩类型模块41可以被配置为确定输出压缩图形命令令牌集合还是未压缩图形命令令牌集合。在一些例子中,当压缩类型模块41确定输出压缩图形命令令牌集合时,压缩类型模块41还可以被配置为确定是使用基于帧的压缩还是基于令牌的压缩来压缩图形命令令牌集合。在一些例子中,压缩类型模块41可以调用基于帧的压缩模块42以利用基于帧的压缩来压缩图形命令令牌集合。在一些例子中,压缩类型模块41可以调用基于令牌的压缩模块44以利用基于令牌的压缩来压缩图形命令令牌集合。在一些例子中,根据图6A或者图6B的技术,压缩类型模块41可以确定是输出压缩图形命令令牌集合还是未压缩图形命令令牌集合。
在一些例子中,基于帧的压缩模块42可以被配置为在帧水平压缩图形命令令牌集合。根据本公开的一个或更多个技术,基于帧的压缩模块42可以通过输出与图形命令令牌的当前集合和图形命令令牌的先前集合之间的差量对应的信息,而在帧水平压缩图形命令令牌的当前集合。例如,基于帧的压缩模块42可以确定列表,该列表指示与先前帧的令牌集合内的数据块不同的在当前帧的令牌集合内的一个或更多个数据块的相应位置,并且输出所述列表和与先前帧的集合令牌中的数据块不同的当前帧的集合令牌内的一个或更多个数据块。在一些例子中,基于帧的压缩模块42可以根据图7的技术在帧水平压缩图形命令令牌集合。
在一些例子中,基于令牌的压缩模块44可以被配置为在令牌水平压缩图形命令令牌集合。基于令牌的压缩模块44可以被配置为确定在图形命令令牌的两个集合之间的相似性。例如,基于令牌的压缩模块44可以执行令牌搜索,以确定当前帧的令牌是否相似于先前帧的令牌。为了执行令牌搜索,基于令牌的压缩模块44可以为当前帧的每个令牌搜索先前帧以确定先前帧是否包括相似的令牌。在一些例子中,基于令牌的压缩模块44可以确定在当前帧的令牌与先前帧的令牌具有相同令牌类型和相同令牌数据尺寸时,当前帧的令牌相似于先前帧的令牌。如上参考图1所示,令牌的类型(例如,令牌类型126)可以指示令牌对应于图形命令集合中的哪个图形命令,并且令牌的数据尺寸(例如,令牌数据尺寸130)可以指示与令牌相关联的一个或更多个变量的尺寸。
在一些例子中,基于令牌的压缩模块44可以生成指示令牌搜索的结果的令牌预测图。例如,令牌预测图可以针对当前帧的每个令牌指示相似的令牌是否能够在先前帧中找到。作为一个例子,如果不能为当前帧的特定令牌找到相似的令牌,则令牌预测图可以包括用于特定令牌的零。作为另一例子,如果可以为当前帧的特定令牌找到相似令牌,则令牌预测图可以标识先前帧的哪个令牌相似于当前帧的特定令牌。
图5A-5C是根据本公开的一个或更多个技术示出令牌的示例性集合的概念图,所述令牌由源设备分析以执行基于令牌的压缩。图5A-5C中的每个示出了先前帧502A-502C(统称为“先前帧502”)中相应的先前帧以及当前帧504A-504C(统称为“当前帧504”)中相应的当前帧。先前帧502和当前帧504中的每个包括令牌506A-506I的一些组合。
如上所述,基于令牌的压缩模块44可以执行令牌搜索来确定当前帧的令牌是否相似于先前帧的令牌。在一些例子中,当前帧的令牌可能完全不同于先前帧的令牌,并且基于令牌的压缩模块44可能在先前帧中无法为当前帧的任何令牌找到相似令牌。例如,如图5A的例子所示,基于令牌的压缩模块44可以确定当前帧504A的令牌完全不同于先前帧502A的令牌,因为令牌506A-506D完全不同于令牌506E-506H。
在一些例子中,当前帧的至少一个令牌可以相似于先前帧的令牌。作为一个例子,先前帧可以包括与当前帧中包括的令牌不相似的一个或更多个令牌。例如,如图5B的例子所示,基于令牌的压缩模块44可以确定先前帧502B包括当前帧504B中不包括的令牌,因为令牌506C不包含于当前帧504B中。作为另一例子,当前帧可以包括与先前帧中包含的令牌不相似的一个或更多个令牌。例如,如图5C的例子所示,基于令牌的压缩模块44可以确定当前帧504C包括不包含于先前帧502C内令牌,因为令牌506H和506I不相似于包含于先前帧502C内的令牌。
如上所述,基于令牌的压缩模块44可以生成令牌预测图,令牌预测图指示令牌搜索的结果。在图5A的例子中,当先前帧502A的令牌(即,506A-506D)中没有任何一个相似于当前帧504A的令牌(即,506E-506H)时,基于令牌的压缩模块44可以生成令牌预测图,令牌预测图指示在当前帧504A内的所有令牌都是新令牌[0,0,0,0]。
在图5B的例子中,当在先前帧502B中能够为当前帧504B的每个令牌(即,506A、506B和506D)发现相似令牌(即,506A、506B和506D)时,基于令牌的压缩模块44可以生成令牌预测图[1,2,4],以指示当前帧504B第一令牌的相似令牌是先前帧502B的第一令牌,当前帧504B第二令牌的相似令牌是先前帧502B的第二令牌,并且当前帧504B第三令牌的相似令牌是先前帧502B的第四令牌。
在图5C的例子中,当在先前帧502B中能够为当前帧504C的一些令牌(即,506A、506B、506C和506D)发现相似令牌(即,506A、506B、506C和506D)时,基于令牌的压缩模块44可以生成令牌预测图[1,2,0,0,3,4],以指示当前帧504C第一令牌的相似令牌是先前帧502C的第一令牌,当前帧504C第二令牌的相似令牌是先前帧502C的第二令牌,当前帧504C第三和第四令牌是新令牌,当前帧504C第五令牌的相似令牌是先前帧502C的第三令牌,并且当前帧504C第六令牌的相似令牌是先前帧502C的第四令牌。
在任何情况下,基于令牌预测图,基于令牌的压缩模块44可以确定当前帧的令牌集合是否充分相似于先前帧的令牌集合。在一些例子中,基于令牌的压缩模块44可以确定当前帧的令牌集合中相似令牌能够在先前帧的令牌集合中找到的令牌的百分比。例如,基于令牌的压缩模块44可以确定令牌预测图中包括的非零值的百分比。
在一些例子中,响应于确定所述百分比满足门限百分比(例如,10%、20%、30%),基于令牌的压缩模块44可以确定当前帧的令牌集合充分相似于先前帧的令牌集合。在一些例子中,响应于确定所述百分比不满足门限百分比,基于令牌的压缩模块44可以确定当前帧的图形命令令牌集合不充分相似于先前帧的图形命令令牌集合。在一些例子中,当百分比大于门限百分比时,百分比可以满足门限百分比。
在当前帧的令牌集合不充分相似于先前帧的令牌集合时,基于令牌的压缩模块44可以输出图形命令令牌当前集合的未压缩版本。在当前帧的令牌集合充分相似于先前帧的令牌集合时,基于令牌的压缩模块44可以输出令牌预测图和每个令牌的表示。作为一个例子,对于在图形命令令牌的先前集合中不能找到相似的图形命令令牌的图形命令令牌的当前集合的每个相应令牌,基于令牌的压缩模块44可以输出相应的图形命令令牌。例如,在图5C的例子中,基于令牌的压缩模块44可以输出当前帧504C的令牌506H和506I。
作为另一例子,对于图形命令令牌的当前集合中能够在图形命令令牌的先前集合中找到相似图形命令令牌的每个相应图形命令令牌,基于令牌的压缩模块44可以输出列表,该列表指示,与在图形命令令牌的先前集合中找到的相似的图形命令令牌内的数据块不同的一个或更多个数据块,在相应图形命令令牌中的相应位置,以及相应令牌内与相似的图形命令令牌内的数据块不同的一个或更多个数据块。例如,在图5C的例子中,基于令牌的压缩模块44针对当前帧504C的令牌506A可以输出指示列表,该列表指示与先前帧502C的令牌506A内的数据块不同的一个或更多个数据块在当前帧504C的令牌506A内的相应位置,以及当前帧504C的令牌506A内与先前帧502C的令牌506A内的数据块不同的一个或更多个数据块。基于令牌的压缩模块44可以确定并输出当前帧504C的令牌506B和506D的相似列表和数据块。
返回参考图4,宿设备6可以包括一个或更多个处理器50、一个或更多个通信单元52、一个或更多个用户接口(UI)设备54以及一个或更多个存储设备56。每个部件50、52、54和56可以经由通信信道58(物理地、通信地和/或操作地)互连,用于部件间的通信。在一些例子中,通信信道58可以包括系统总线、网络连接、进程间通信数据结构或者用于通信数据的任何其它信道。在一些例子中,一个或更多个存储设备56可以包括通信模块19、流送模块22、纹理元素24以及UI模块60。
在一些例子中,处理器50可以被配置为实现在宿设备6内执行的功能和/或过程指令。例如,处理器50可能能够处理存储于一个或更多个存储设备56内的指令。处理器50的例子可以包括任何一个或更多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA),或者任何其它等同集成或离散逻辑电路,以及这些部件的任意组合。
在一些例子中,宿设备6还包括一个或更多个通信单元52。在一个例子中,宿设备6利用一个或更多个通信单元52经由一个或更多个网络(例如,一个或更多个无线网络)来与外部设备进行通信。一个或更多个通信单元52可以是网络接口卡,例如,USB收发器、以太网卡、光收发器、射频收发器,或者能够发送和接收信息的任何其它类型的设备。这种网络接口的其它例子可以包括蓝牙、3G和Wi-Fi无线电。在一些例子中,宿设备6利用通信单元52来与外部设备进行无线通信。例如,宿设备6可以利用通信单元52通过通信信道8与源设备4的通信单元32进行无线通信。在一些例子中,通信单元52可以将接收到的数据提供给宿设备6的其它部件,例如,通信模块19。
在一些例子中,宿设备6还可以包括一个或更多个UI设备54。在一些例子中,UI设备54中的一个或更多个可以被配置为输出内容,例如视频数据。例如,UI设备54的显示器可以被配置为显示由GPU 20渲染的视频数据的帧。除了输出内容外,UI设备54中的一个或更多个可以被配置为接收触觉、音频或者视觉输入。UI设备54的一些例子包括视频显示器、扬声器、键盘、触摸屏、鼠标、摄像机等。
在一些例子中,宿设备6还可以包括UI模块60。UI模块60可以执行一个或更多个功能来从与宿设备6相关联的其它部件接收内容,例如,UI数据,并使得UI设备54中的一个或更多个输出内容。在一些例子中,UI模块60可以被配置为接收输入的指示,例如用户输入;并发送输入的指示到与宿设备6相关联的其它部件,例如流送模块14。
一个或更多个存储设备56可以被配置为在操作期间将信息存储于宿设备6中。在一些例子中,存储设备56的一个或更多个可以包括计算机可读存储介质。在一些例子中,存储设备56的一个或更多个可以包括临时存储器,意思是存储设备56的一个或更多个的主要目的不是长期存储。在一些例子中,存储设备56的一个或更多个可以包括易失性存储器,意思是存储设备56的一个或更多个在系统关闭时不保留所存储的内容。易失性存储器的例子包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及本领域已知的其它形式的易失性存储器。在一些例子中,存储设备56的一个或更多个被用于存储由处理器50执行的程序指令。在一个例子中,存储设备56的一个或更多个可以由在宿设备6上运行的软件或者模块(例如,通信模块19、流送模块22和UI模块60)用于在程序执行期间临时存储信息。
在一些例子中,存储设备56的一个或更多个还可以包括一个或更多个计算机可读存储介质。存储设备56的一个或更多个还可以被配置用于长期存储信息。在一些例子中,存储设备56的一个或更多个可以包括非易失性存储元件。这种非易失性存储元件的例子包括磁性硬盘、光盘、软盘、闪存,或者电可编程存储器(EPROM)或者电可擦除和可编程(EEPROM)存储器的形式。
如上所述,宿设备6可以包括流送模块22,它可以被配置为从一个或更多个外部设备接收流送视频数据。在一些例子中,流送模块22可以包括压缩类型模块61、基于帧的重构模块42以及基于令牌的重构模块64。
在一些例子中,压缩类型模块61可以被配置为确定图形命令令牌的当前集合是已压缩的还是未压缩的。在一些例子中,例如当利用基于帧的压缩对图形命令令牌的当前集合进行了压缩时,压缩类型模块61可以调用基于帧的重构模块62来重构图形命令令牌的当前集合。在一些例子中,例如当利用基于令牌的压缩对图形命令令牌的当前集合进行了压缩时,压缩类型模块61可以调用基于令牌的重构模块64来重构图形命令令牌的当前集合。
在一些例子中,基于帧的重构模块62可以被配置为在帧水平重构图形命令令牌的集合。根据本公开的一个或更多个技术,基于帧的重构模块62可以基于与图形命令令牌的当前集合和图形命令令牌的先前集合之间的差量对应的信息,而在帧水平重构图形命令令牌的当前集合。例如,基于指示令牌的当前集合内与令牌的先前集合内的数据块不同的一个或更多个数据块的相应位置的列表,以及一个或更多个数据块,基于帧的重构模块62可以通过用一个或更多个接收到的数据块替代图形命令集合的先前集合的相应位置处的数据,而在帧水平重构图形命令令牌的当前集合。
图6A和6B是根据本公开的一个或更多个技术示出了示例性命令帧的概念图,它可以由源设备输出以流送视频帧到宿设备。如图6A所示,命令帧602包括预测标记606、帧尺寸字段608以及帧副本字段610。如图6B所示,命令帧604包括预测标记606、列表尺寸字段612、新数据尺寸字段614、列表字段616以及新数据字段618。
图7A和7B是根据本公开的一个或更多个技术示出源设备流送视频数据到宿设备的示例性操作的流程图。图7A和7B的技术可以由计算设备(例如,图3和图4中示出的源设备4)的一个或更多个处理器执行。为了图示,在图3和4示出的源设备4的上下文中描述图7A和7B的技术,虽然具有不同于源设备4的配置的计算设备可以执行图7A和7B的技术。
根据本公开的一个或更多个技术,源设备4的流送模块14可以捕获第一帧的图形命令令牌的集合(702)。例如,流送模块14可以在包含于源设备4内的GPU的输入处捕获第一帧的图形命令令牌的集合。
流送模块14可以将第一帧的图形命令令牌的集合输出给宿设备6(704)。例如,流送模块14可以经由源设备4和宿设备6之间的无线通信链路发送第一帧的图形命令令牌的集合。在一些例子中,除了第一帧的图形命令令牌的集合外,流送模块14还可以将一个或更多个纹理元素输出到宿设备6。
在一些例子中,流送模块14可以输出未压缩的图形命令令牌的集合。例如,流送模块14可以生成命令帧(例如,图1的命令帧100),它包括第一帧的命令令牌集合(即,第一帧的命令令牌集合可以是图1的令牌114)。
如上所述并且根据本公开的一个或更多个技术,流送模块14可以输出已压缩后续帧的图形命令令牌的集合。例如,流送模块14可以捕获第n帧的图形命令令牌集合(706)。相似于第一帧,流送模块14可以在包含于源设备4内的GPU的输入处捕获第n帧的图形命令令牌的集合。
压缩类型模块41可以确定输出已压缩第n帧的图形命令令牌集合还是未压缩的图形命令令牌集合。例如,压缩类型模块41可以确定第n帧的图形命令令牌集合的长度是否与第n-1帧的图形命令令牌集合的长度相同(708)。
响应于确定出第n帧的图形命令令牌集合的长度与第n-1帧的图形命令令牌集合的长度相同(708的“是”分支),压缩类型模块41可以调用基于帧的压缩模块41,来利用基于帧的编码生成第n帧的图形命令令牌集合的已压缩版本(710),并将第n帧的图形命令令牌集合的已压缩版本输出到宿设备6(712)。在一些例子中,基于帧的压缩模块42可以根据图7的技术执行基于帧的压缩。
在一些例子中,例如图6A的例子,响应于确定第n帧的图形命令令牌集合的长度与第n-1帧的图形命令令牌集合的长度不同(708的“否”分支),流送模块14可以将第n帧的图形命令令牌集合的未压缩版本输出到宿设备6(714A)。在一些例子中,流送模块14可以将第n帧的图形命令令牌集合的未压缩版本封装在命令帧中。例如,流送模块14可以生成第一命令帧(例如,图1的命令帧100),其中帧数据字段104包括第n帧的图形命令令牌集合(即,令牌114包括第n帧的图形命令令牌集合)。在一些例子中,流送模块14还可以将第一命令帧封装在第二命令帧(例如,图6A的命令帧602)里,其中预测标记606指示第n帧的图形命令令牌集合未压缩,帧尺寸字段608指示第二命令帧的尺寸,并且帧副本字段610是第一命令帧。
在一些例子中,例如图7B的例子,响应于确定出第n帧的图形命令令牌集合的长度与第n-1帧的图形命令令牌集合的长度不同(708的“否”分支),基于帧的压缩模块42可以调用基于令牌的压缩模块44,来利用基于令牌的编码生成第n帧的图形命令令牌集合的已压缩版本(714B),并将第n帧的图形命令令牌集合的已压缩版本输出到宿设备6(712)。在一些例子中,基于令牌的压缩模块44可以根据图9的技术执行基于令牌的压缩。
图8是根据本公开的一个或更多个技术示出源设备利用基于帧的压缩流送视频数据到宿设备的示例性操作的流程图。图8的技术可以由计算设备(例如,图3和图4中示出的源设备4)的一个或更多个处理器执行。为了图示,在图3和4示出的源设备4的上下文中描述图8的技术,虽然具有不同于源设备4的配置的计算设备可以执行图8的技术。
如上所述,在一些例子中,基于帧的压缩模块42可以根据图8的技术执行基于帧的压缩。例如,基于帧的压缩模块42可以确定指示第n帧的图形命令令牌集合内与第n-1帧的图形命令令牌集合不同的一个或更多个数据块的相应位置的列表(802)。在一些例子中,数据块可以是数据的字节。作为一个例子,如果在第n帧的图形命令令牌集合内位置70、71、72、80、113、114、158、159、160、161和188处的字节不同于在第n-1帧的图形命令令牌集合内位置70、71、72、80、113、114、158、159、160、161和188处的字节,则基于帧的压缩模块42可以生成指示位置70、71、72、80、113、114、158、159、160、161和188的列表。在一些例子中,基于帧的压缩模块42可以通过对所述位置进行区别编码来生成所述列表。例如,基于帧的压缩模块42可以将位置70、71、72、80、113、114、158、159、160、161和188区别地编码为70、1、1、8、33、1、44、1、1、1和27。在一些例子中,基于帧的压缩模块42可以利用指数哥伦布编码对不同位置进行编码。例如,基于帧的压缩模块42可以利用指数哥伦布编码将上述不同位置编码为“0000001000110”、“1”、“1”、“0001000”、“00000100001”、“1”等。这样,基于帧的压缩模块42可以减少呈现位置列表要求的数据量。
在任何情况下,基于帧的压缩模块42可以通过输出列表和第n帧的图形命令令牌集合内与第n-1帧的图形命令令牌集合内的数据块不同的一个或更多个数据块,而输出第n帧的图形命令令牌集合的已压缩版本(804)。在一些例子中,基于帧的压缩模块42可以将第n帧的图形命令令牌集合的已压缩版本封装在命令帧中,例如,图6B的命令帧604。例如,基于帧的压缩模块42可以生成命令帧604,它具有:预测标记606,表明利用基于帧的压缩对第n帧的图形命令令牌集合进行了压缩;列表尺寸字段612,表明位置的列表的尺寸;新数据尺寸614,表明第n帧的图形命令令牌集合内与第n-1帧的图形命令令牌集合内的数据块不同的一个或更多个数据块的尺寸;列表616,包括位置列表的编码版本;以及新数据字段618,包括第n帧的图形命令令牌集合内与第n-1帧的图形命令令牌集合内的数据块不同的一个或更多个数据块。这样,基于帧的压缩模块42可以利用基于帧的压缩对图形命令令牌进行压缩。
图9是根据本公开的一个或更多个技术示出源设备利用基于令牌的压缩流送视频数据到宿设备的示例性操作的流程图。图9的技术可以由计算设备(例如,图3和图4中示出的源设备4)的一个或更多个处理器执行。为了图示,在图3和4示出的源设备4的上下文中描述图9的技术,虽然具有不同于源设备4的配置的计算设备可以执行图9的技术。
如上所述,在一些例子中,基于令牌的压缩模块44可以根据图9的技术执行基于令牌的压缩。例如,基于令牌的压缩模块44可以确定令牌预测图,它表明对于第n帧的图形命令令牌集合的每个图形命令令牌M,是否能够在第n-1帧的图形命令令牌的集合内找到相似的图形命令令牌(902)。在一些例子中,基于令牌的压缩模块44可以确定:对于第n帧的图形命令令牌集合的特定图形命令令牌,能够在第n-1帧的图形命令令牌的集合内找到相似的图形命令令牌,其中第n-1帧的图形命令令牌的集合的特定图形命令令牌具有与第n帧的图形命令令牌的集合的特定图形命令令牌相同的令牌类型(例如,图1的令牌类型126),以及与第n帧的图形命令令牌的集合的特定图形命令令牌相同的令牌数据尺寸(例如,图1的令牌数据尺寸130)。在一些例子中,与搜索第n-1帧的图形命令令牌的完整集合相反,基于令牌的压缩模块44可以搜索第n-1帧的图形命令令牌的集合的子集(即,搜索范围)。在一些例子中,搜索范围可以包括令牌量(例如,10、20、30、100……等)。
基于令牌的压缩模块44可以确定令牌预测图是否表明第n帧的图形命令令牌集合充分相似于第n-1帧的图形命令令牌集合(904)。例如,基于令牌的压缩模块44可以确定第n帧的图形命令令牌集合中能够在第n-1帧的图形命令令牌集合中找到相似的图形命令令牌的图形命令令牌的百分比。在一些例子中,响应于确定所述百分比满足门限百分比(例如,10%、20%、30%),基于令牌的压缩模块44可以确定第n帧的图形命令令牌集合充分相似于第n-1帧的图形命令令牌集合。在一些例子中,响应于确定所述百分比不满足门限百分比,基于令牌的压缩模块44可以确定第n帧的图形命令令牌集合不充分相似于第n-1帧的图形命令令牌集合。在一些例子中,当百分比大于门限百分比时,百分比可以满足门限百分比。
响应于确定出令牌预测图不表明第n帧的图形命令令牌集合充分相似于第n-1帧的图形命令令牌集合(904的“否”分支),基于令牌的压缩模块44可以向宿设备6输出第n帧的图形命令令牌集合的未压缩版本。例如,相似于图7A的操作714A,基于令牌的压缩模块44可以输出第n帧的图形命令令牌集合的未压缩版本。
响应于确定令牌预测图表明第n帧的图形命令令牌集合充分相似于第n-1帧的图形命令令牌集合(904的“是”分支),基于令牌的压缩模块44可以利用基于令牌的压缩对第n帧的图形命令令牌集合进行压缩。基于令牌的压缩模块44可以通过将索引值m设置为零来处理第一图形命令令牌m(908)。例如,对于第n帧的图形命令令牌集合的每个图形命令令牌m,基于令牌的压缩模块44可以确定是否能够在第n-1帧的图形命令令牌集合中找到相似于图形命令令牌m的图形命令令牌(910)。
如果不能在第n-1帧的图形命令令牌集合中找到相似于图形命令令牌m的图形命令令牌(910的“否”分支),则基于令牌的压缩模块44可以在第n帧的图形命令令牌集合的已压缩版本中对图形命令令牌m进行编码(912),并确定图形命令令牌m是否是第n帧的图形命令令牌集合中最后的令牌(914)。
如果能够在第n-1帧的图形命令令牌集合中找到相似于图形命令令牌m的图形命令令牌(910的“是”分支),则基于令牌的压缩模块44可以对图形命令令牌m和第n-1帧的图形命令令牌集合中相似的图形命令令牌之间的差量进行编码,并确定图形命令令牌m是否是第n帧的图形命令令牌集合中最后的令牌(914)。在一些例子中,基于令牌的压缩模块44可以利用相似于图8的基于帧的压缩技术的技术对所述差量进行编码。例如,基于令牌的压缩模块44可以确定表明图形命令令牌m内与第n-1帧的图形命令令牌集合中的相似的图形命令令牌内找到的数据块不同的一个或更多个数据块的位置的列表(916),并在第n帧的图形命令令牌集合的已压缩版本中,对所述列表和图形命令令牌m内与第n-1帧的图形命令令牌集合中的相似的图形命令令牌内找到的数据块不同的一个或更多个数据块进行编码(918)。
在任何情况下,如果图形命令令牌m不是第n帧的图形命令令牌集合中最后的令牌(914的“否”分支),则基于令牌的压缩模块44可以前进到第n帧的图形命令令牌集合中的下一图形命令令牌(920),并且确定是否能够在第n-1帧的图形命令令牌集合中找到与图形命令令牌m+1相似的图形命令令牌(910)。如果图形命令令牌m是第n帧的图形命令令牌集合中最后的令牌(914的“是”分支),则基于令牌的压缩模块44可以输出第n帧的图形命令令牌集合的已压缩版本(922)。这样,基于令牌的压缩模块44可以利用基于令牌的压缩对图形命令令牌进行压缩。
图10是根据本公开的一个或更多个技术示出宿设备从源设备接收流送的视频数据的示例性操作的流程图。图10的技术可以由计算设备(例如,图3和图4中示出的宿设备6)的一个或更多个处理器执行。为了图示,在图3和4示出的宿设备6的上下文中描述图10的技术,虽然具有不同于宿设备6的配置的计算设备可以执行图10的技术。
根据本公开的一个或更多个技术,宿设备6的流送模块22可以从源设备接收图形命令令牌的当前集合的版本以及图形命令令牌的当前集合的压缩状态的指示(1002)。在一些例子中,图形命令令牌的当前集合可以来自分别能够渲染给视频数据的多个帧的多个图形命令令牌集合。在一些例子中,图形命令令牌的当前集合的接收到的版本可以被封装在命令帧中,例如图1的命令帧100、图6A的命令帧602或者图6B的命令帧604。在一些例子中,压缩状态的指示可以是预测标记,例如,图6A和6B的预测标记606。
流送模块22的压缩类型模块61可以确定压缩状态指示图形命令令牌的当前集合的接收到的版本是利用基于帧的压缩来压缩的(1004)、利用基于令牌的压缩来压缩的(1008)还是未压缩的(1012)。作为一个例子,如果连同图形命令令牌的当前集合的接收到的版本一起接收到的预测标记具有指示基于帧的压缩的值(即,等于255),则压缩类型模块61可以确定图形命令令牌的当前集合的接收到的版本是利用基于帧的压缩来压缩的。作为另一例子,如果连同图形命令令牌的当前集合的接收到的版本一起接收到的预测标记具有指示基于令牌的压缩的值(即,等于不同于255的值),则压缩类型模块61可以确定图形命令令牌的当前集合的接收到的版本是利用基于令牌的压缩来压缩的。作为另一例子,如果未连同图形命令令牌的当前集合的接收到的版本一起接收到预测标记,则压缩类型模块61可以确定图形命令令牌的当前集合的接收到的版本是未压缩的。作为另一例子,如果连同图形命令令牌的当前集合的接收到的版本一起接收到的预测标记等于0,则压缩类型模块61可以确定图形命令令牌的当前集合的接收到的版本是未压缩的。
如果图形命令令牌的当前集合的接收到的版本是利用基于帧的压缩来压缩的(1004的“是”分支),则流送模块22可以利用基于帧的重构生成图形命令令牌的当前集合的未压缩版本(1006)。例如,压缩类型模块61可以调用基于帧的重构模块62来根据图11的技术利用基于帧的重构基于图形命令令牌的先前集合生成图形命令令牌的当前集合的未压缩版本。
如果图形命令令牌的当前集合的接收到的版本是利用基于令牌的压缩来压缩的(1008的“是”分支),则流送模块22可以利用基于令牌的重构生成图形命令令牌的当前集合的未压缩版本(1010)。例如,压缩类型模块61可以调用基于令牌的重构模块64来根据图12的技术利用基于令牌的重构基于图形命令令牌的先前集合生成图形命令令牌的当前集合的未压缩版本。
如果图形命令令牌的当前集合的接收到的版本是未压缩的(1008的“否”分支),则在基于帧的重构或者基于令牌的重构之后,流送模块22可以基于图形命令令牌的当前集合的未压缩版本渲染视频数据的帧(1014)。例如,流送模块22可以使得宿设备6的GPU 20基于图形命令令牌的当前集合的未压缩版本渲染视频数据的帧。在一些例子中,GPU 20可以在宿设备6的UI设备54的显示器处渲染用于输出的视频数据的帧。
图11是根据本公开的一个或更多个技术示出宿设备对从源设备接收到的流送视频数据执行基于帧的重构的示例性操作的流程图。图11的技术可以由计算设备(例如,图3和图4中示出的宿设备6)的一个或更多个处理器执行。为了图示,在图3和4示出的宿设备6的上下文中描述图11的技术,虽然具有不同于宿设备6的配置的计算设备可以执行图11的技术。
如上所述,在一些例子中,压缩类型模块61可以调用基于帧的重构模块62来根据图11的技术利用基于帧的重构生成图形命令令牌的当前集合的未压缩版本。当被调用以执行基于帧的重构时,基于帧的重构模块62可以确定图形命令令牌的当前集合的接收到的版本表明在图形命令令牌的当前集合和图形命令令牌先前集合之间的差量。例如,基于帧的重构模块62可以确定图形命令令牌的当前集合的接收到的版本包括列表,列表表明图形命令令牌的当前集合内与图形命令令牌的先前集合内数据块不同的一个或更多个数据块的相应位置,以及一个或更多个数据块(1102)。
基于帧的重构模块62可以基于变量和图形命令令牌的先前集合,生成图形命令令牌的当前集合的重构版本。例如,基于帧的重构模块62可以通过利用图形命令令牌的当前集合的接收到的版本中包含的一个或更多个数据块替代图形命令令牌的先前集合的相应位置处的数据,生成图形命令令牌的当前集合的重构版本(1104)。基于帧的重构模块62可以输出图形命令令牌的当前集合的重构版本到宿设备6的GPU 20,以使得GPU 20基于图形命令令牌的当前集合的重构版本渲染视频数据的帧。这样,基于帧的重构模块62可以利用基于帧的压缩重构图形命令令牌的集合。
图12是根据本公开的一个或更多个技术示出宿设备对从源设备接收到的流送视频数据执行基于令牌重构的示例性操作的流程图。图12的技术可以由计算设备(例如,图3和图4中示出的宿设备6)的一个或更多个处理器执行。为了图示,在图3和4示出的宿设备6的上下文中描述图12的技术,虽然具有不同于宿设备6的配置的计算设备可以执行图12的技术。
如上所述,在一些例子中,压缩类型模块61可以调用基于令牌的重构模块64来根据图11的技术利用基于令牌的重构生成图形命令令牌的当前集合的未压缩版本。当被调用以执行基于令牌的重构时,基于令牌的重构模块64可以确定图形命令令牌的当前集合的接收到的版本包括令牌预测图,它表明对于图形命令令牌的当前集合的每个图形命令令牌,是否能够在图形命令令牌的先前集合中找到相似的图形命令令牌(1202)。在一些例子中,可以对令牌预测图进行编码。例如,可以将令牌预测图[1,2,0,0,3,7,8,10]编码为非零值向量[1,1,0,0,1,1,1,1],它表明图形命令令牌的当前集合的哪些图形命令令牌在图形命令令牌的先前集合中具有相似的图形命令令牌,以及可以与所述非零值向量组合来重构令牌预测图的不同的非零值向量[1,1,1,4,1,2]。在一些例子中,可以利用指数哥伦布编码对不同的非零值向量进行编码(例如,可以将不同的非零值向量[1,1,1,4,1,2]编码为“1”、“1”、“1”、“00100”、“1”、“010”)。
基于令牌的重构模块64可以通过将索引值m设置为零来处理第一图形命令令牌m(1204)。基于令牌的重构模块64可以基于令牌预测图确定相似于图形命令令牌m的图形命令令牌是否可能在图形命令令牌的先前集合中找到(1206)。作为一个例子,如果令牌预测图中的条目是非零的,则基于令牌的重构模块64可以确定相似于图形命令令牌m的图形命令令牌能够在图形命令令牌的先前集合中找到。作为另一例子,如果令牌预测图中的条目是零,则基于令牌的重构模块64可以确定相似于图形命令令牌m的图形命令令牌不能在图形命令令牌的先前集合中找到。
如果相似于图形命令令牌m的图形命令令牌不能在图形命令令牌的先前集合中找到(1206的“否”分支),则基于令牌的重构模块64可以确定图形命令令牌的当前集合的接收到的版本包括图形命令令牌m(1208)。例如,基于令牌的重构模块64可以确定图形命令令牌的当前集合的接收到的版本包括图形命令令牌m的未压缩版本。基于令牌的重构模块64可以在图形命令令牌的当前集合的未压缩版本中包括令牌m(1210),并且确定令牌m是否是图形命令令牌的当前集合中的最后图形命令令牌(1212)。
如果相似于图形命令令牌m的图形命令令牌能够在图形命令令牌的先前集合中找到(1206的“是”分支),则基于令牌的重构模块64可以利用相似于上述基于帧的重构技术的技术来重构图形命令令牌m。例如,基于令牌的重构模块64可以确定图形命令令牌的当前集合的接收到的版本包括列表,列表表明令牌m内与图形命令令牌的先前集合的找到的相似令牌内的数据块不同的一个或更多个数据块的相应位置,以及令牌m内与图形命令令牌的先前集合的找到的相似令牌内的数据块不同的一个或更多个数据块(1216)。基于所述列表和一个或更多个数据块,基于令牌的重构模块64可以通过利用令牌m内与找到的相似的图形命令令牌不同的一个或更多个数据块替换图形命令令牌的先前集合的找到的相似的图形命令令牌的相应位置处的数据,生成令牌m的重构版本(1218)。基于令牌的重构模块64可以在图形命令令牌的当前集合的未压缩版本内包括图形命令令牌m的重构版本(1220),并且确定令牌m是否是图形命令令牌的当前集合中的最后图形命令令牌(1212)。
在任何情况下,如果图形命令令牌m不是图形命令令牌的当前集合中最后的令牌(1212的“否”分支),则基于令牌的重构模块64可以前进到图形命令令牌的当前集合中的下一图形命令令牌(1212),并且确定相似于图形命令令牌m+1的图形命令令牌是否能够在图形命令令牌的先前集合中找到(1206)。如果图形命令令牌m是图形命令令牌的当前集合中最后的令牌(914的“是”分支),则基于令牌的重构模块64可以输出图形命令令牌的当前集合的未压缩版本(1222)。例如,基于令牌的重构模块64可以向宿设备6的GPU 20输出图形命令令牌的当前集合的未压缩版本,以使得GPU 20基于图形命令令牌的当前集合的未压缩版本渲染视频数据的帧。这样,基于令牌的重构模块64可以利用基于令牌的压缩对图形命令令牌的集合进行重构。
图13是根据本公开的一个或更多个技术示出在WD系统内示例性数据流的概念图,在所述WD系统内源设备被配置为通过通信信道发送已压缩图形命令到宿设备。在一些例子中,图13所示的数据流可以对应于图3和4的WD系统2内的数据流。
如图13所示,源设备4的一个或更多个应用模块18例如可以向GPU 12输出图形命令令牌。在一些例子中,GPU 12可以将图形命令令牌渲染到视频数据中,并将渲染的视频输出到UI设备34的显示器。在一些例子中,GPU 12可能不渲染图形命令令牌。根据本公开的一个或更多个技术,流送模块14可以在GPU 12的输入处捕获图形命令令牌。流送模块14可以处理图形命令令牌,并将已压缩图形命令令牌输出到通信单元32。例如,流送模块14可以利用基于帧的编码或者基于令牌的编码之一或者二者生成已压缩图形命令令牌。通信单元32可以将已压缩图形命令令牌输出到宿设备6的通信单元52。
通信单元52可以将接收到的已压缩图形命令令牌输出到流送模块22。根据本公开的一个或更多个技术,流送模块22可以对已压缩图形命令令牌进行解压以生成图形命令令牌,并将生成的图形命令令牌输出到GPU 20。GPU 20可以将从流送模块22接收到的图形命令令牌渲染到所渲染的视频,并输出渲染的视频用于显示。例如,GPU 20可以输出渲染的视频用于在UI设备54的显示器处显示。
图14是根据本公开的一个或更多个技术示出根据帧号的数据速率的图。在一些例子中,图14的图表1400所示的数据速率可以对应于源设备(例如,图3和4的源设备4)在发送如图形命令令牌和纹理元素的视频数据时生成数据用于转移到宿设备(例如,图3和4的宿设备6)的速率。
在一些例子中,尖峰1402A-1402C(统称为“尖峰1402”)可以对应于包括纹理元素的帧。例如,帧号1、25和50可以包括纹理元素。在图14的例子中,用于发送纹理元素的数据总量大约是77MB。
如上所述,除了发送纹理元素外,源设备还发送图形命令令牌。例如,帧号51-1000可以包括图形命令令牌的集合。在图14的例子中,用于发送图形命令令牌的集合的数据总量大约是242MB。这样,虽然发送纹理元素可能引起数据速率的刺突,但是发送图形命令令牌会构成发送数据总量的主要部分。
根据本公开的一个或更多个技术,源设备可以实现一个或更多个压缩技术,来减少发送图形命令令牌所需要的数据量。例如,源设备可以根据图7-9的技术实现一个或更多个压缩技术。类似地,宿设备可以根据图10-12的技术实现一个或更多个互补的解压技术。这样,源设备和宿设备可以减少发送图形命令令牌所要求的数据量。
图15是根据本公开的一个或更多个技术示出利用不同的压缩技术针对多个应用流送视频数据的数据量的图。在一些例子中,图15的图表1500所示出的原始尺寸1502的数据可以对应于源设备用于针对多个应用(即,“愤怒的鸟”、“水果忍者1”、“水果忍者2”、“谷歌地图1”、“谷歌地图2”、“桥牌”和“巴士模拟器”)在没有压缩图形命令令牌的情况下流送视频数据的数据量。在一些例子中,图15的图表1500所示出的基于帧1504的数据可以对应于由源设备用于针对多个应用利用基于帧的压缩技术来压缩图形命令令牌,流送视频数据的数据量。在一些例子中,图15的图表1500所示出的基于令牌1506的数据可以对应于由源设备用于针对多个应用利用基于帧和基于令牌的压缩技术来压缩图形命令令牌,流送视频数据的数据量。如图15所示,由利用基于帧的技术和基于令牌的技术之一或者二者压缩图形命令令牌,源设备可以减少用于流送视频数据到宿设备的数据量。
图16是根据本公开的一个或更多个技术示出利用不同的压缩技术针对多个应用流送视频数据的数据量的图。图16的图表1600A示出了源设备用于针对多个应用(即,“愤怒的鸟”、“水果忍者1”、“水果忍者2”、“谷歌地图1”、“谷歌地图2”、“桥牌”和“巴士模拟器”)发送视频数据的帧的第一子集的不同数据量。例如,原始尺寸1602A表明源设备用于在没有压缩图形命令令牌的情况下流送帧的第一子集的数据量,而压缩数据1604A表明源设备用于流送具有基于帧的图形命令令牌压缩的帧的第一子集的数据量。
图16的图表1600B示出了源设备用于针对多个应用流送视频数据的帧的第二子集的不同数据量。例如,原始尺寸1602B表明源设备用于在不压缩图形命令令牌的情况下发送帧的第二子集的数据量,并且压缩数据1604B表明源设备用于流送具有基于令牌的图形命令令牌压缩的帧的第二子集的数据量。
视频数据还可以包括在不压缩的情况下发送的帧的第三子集。例如,帧的第三子集可以包括视频数据的第一帧,以及不充分相似于视频数据的先前帧的视频数据的帧以执行基于令牌的压缩的视频数据的帧。用于发送图表1600A所示的数据的第一子集、图表1600B所示的数据的第二子集以及数据的第三子集的数据量一起可能等于图15所示的数据量。
后续例子可以示出公开的一个或更多个技术:
例子1,一种用于发送视频数据的方法,包括:捕获分别渲染到多帧视频数据的多组图形命令令牌;以及响应于确定多组图形命令令牌的当前组图形命令令牌的长度与多组图形命令令牌的先前集合的长度相同,由源设备并且向宿设备输出当前组图形命令令牌的已压缩版本。
例子2,根据例子1所述的方法,其中,所述当前组图形命令令牌的已压缩版本包括:列表,它表明当前组图形命令令牌内与图形命令令牌的先前集合不同的一个或更多个数据块的相应位置;以及一个或更多个数据块。
例子3,根据例子1-2的任意组合所述的方法,其中,所述列表被利用指数哥伦布编码进行编码。
例子4,根据例子1-3的任意组合所述的方法,还包括:响应于确定当前组图形命令令牌的长度不同于图形命令令牌的先前集合的长度,由源设备并且向宿设备输出所述当前组图形命令令牌的未压缩版本。
例子5,根据例子1-4的任意组合所述的方法,其中,所述当前组图形命令令牌的已压缩版本是第一已压缩版本,所述方法还包括:响应于所述当前组图形命令令牌的长度不同于所述先前组图形命令令牌的长度:确定令牌预测图,它表明:对于当前组图形命令令牌的每个图形命令令牌,相似的图形命令令牌是否能够在图形命令令牌的先前集合中找到;响应于基于令牌预测图确定当前组图形命令令牌充分相似于图形命令令牌的先前集合,由源设备并且向宿设备输出当前组图形命令令牌的第二已压缩版本;以及响应于基于令牌预测图确定当前组图形命令令牌不充分相似于先前组图形命令令牌,由源设备并且向宿设备输出当前组图形命令令牌的未压缩版本。
例子6,根据例子1-5的任意组合所述的方法,其中,确定当前组图形命令令牌是否充分相似于先前组图形命令令牌包括:确定当前组图形命令令牌中相似的图形命令令牌能够在先前组图形命令令牌中找到的图形命令令牌的百分比;以及响应于确定所述百分比满足门限百分比,确定当前组图形命令令牌充分相似于先前组图形命令令牌。
例子7,根据例子1-6的任意组合所述的方法,其中,所述当前组图形命令令牌的第二已压缩版本包括:令牌预测图;对于当前组图形命令令牌中相似的图形命令令牌不能在先前组图形命令令牌中找到的每个相应图形命令令牌,所述相应图形命令令牌;以及对于当前组图形命令令牌中相似的图形命令令牌能够在先前组图形命令令牌中找到的每个相应图形命令令牌:列表,它表明相应图形命令令牌内与先前组图形命令令牌的找到的相似的图形命令令牌不同的一个或更多个数据块的相应位置;以及相应令牌内与找到的相似的图形命令令牌不同的一个或更多个数据块。
例子8,根据例子1-7的任意组合所述的方法,还包括:针对当前组图形命令令牌的特定图形命令令牌,确定相似的图形命令令牌能够在先前组图形命令令牌内找到,其中先前组图形命令令牌的特定图形命令令牌具有:与当前组图形命令令牌的特定图形命令令牌相同的令牌类型;以及与当前组图形命令令牌的特定图形命令令牌相同的令牌数据尺寸。
例子9,根据例子1-8的任意组合所述的方法,还包括:由源设备并且向宿设备输出当前组图形命令令牌的压缩状态的指示。
例子10,一种源设备,包括:存储器;一个或更多个处理器;以及能够由所述一个或更多个处理器执行以执行如下操作的至少一个模块:捕获分别能够渲染到多帧视频数据的多组图形命令令牌;以及响应于确定多组图形命令令牌的当前组图形命令令牌的长度与多组图形命令令牌的先前组的长度相同,向宿设备输出当前组图形命令令牌的已压缩版本。
例子11,根据例子10所述的源设备,其中,所述至少一个模块还被至少一个处理器执行用于实现例子1-9的方法的任意组合。
例子12,一种源设备,它包括用于执行例子1-9的方法的任意组合的单元。
例子13,一种存储有指令的计算机可读存储介质,当被执行时,所述指令使得源设备的一个或更多个处理器执行例子1-9的方法的任意组合。
例子14,一种用于接收视频数据的方法,包括:由宿设备并且从源设备接收一版本的当前组图形命令令牌以及当前组图形命令令牌的压缩状态的指示,其中当前组图形命令令牌来自分别能够渲染到多帧视频数据的多组图形命令令牌;响应于基于压缩状态的指示确定利用基于帧的压缩对所述版本的当前组图形命令令牌进行了压缩,基于先前组图形命令令牌以及在多组图形命令令牌的当前组图形命令令牌与先前组图形命令令牌之间的接收到的差量,生成当前组图形命令令牌的重构版本;以及基于当前组图形命令令牌的重构版本,渲染视频数据的帧。
例子15,根据例子14所述的方法,其中,利用基于帧的压缩对当前组图形命令令牌的接收到的版本进行压缩,其中当前组图形命令令牌的长度与先前组图形命令令牌的长度相同。
例子16,根据例子14-15的任意组合所述的方法,其中当前组图形命令令牌的接收到的版本是未压缩的,其中当前组图形命令令牌的长度不同于先前组图形命令令牌的长度。
例子17,根据例子14-16的任意组合所述的方法,其中:在当前组图形命令令牌和先前组图形命令令牌之间的差量包括:列表,它指示当前组图形命令令牌内与多组图形命令令牌的先前组图形命令令牌内的数据块不同的一个或更多个数据块的相应位置;以及一个或更多个数据块;以及生成当前组图形命令令牌的重构版本包括:用包含于当前组图形命令令牌的已压缩版本内的一个或更多个数据块替代在先前组图形命令令牌的相应位置处的数据。
例子18,根据例子14-17的任意组合所述的方法,还包括:响应于基于压缩状态的指示确定利用基于令牌的压缩对当前组图形命令令牌的版本进行了压缩:确定所述版本的当前组图形命令令牌指示当前组图形命令令牌的相应图形命令令牌和先前组图形命令令牌的相似的图形命令令牌之间的相应差量;以及基于先前组图形命令令牌与相应差量,生成当前组图形命令令牌的相应图形命令令牌的重构版本。
例子19,根据例子14-18的任意组合所述的方法,其中:所述版本的当前组图形命令令牌还包括令牌预测图,它指示对于当前组图形命令令牌的每个图形命令令牌,是否相似的图形命令令牌能够在先前组图形命令令牌中找到;对于当前组图形命令令牌中令牌预测图指示其相似的图形命令令牌不能在先前组图形命令令牌内找到的每个相应图形命令令牌,所述版本的当前组图形命令令牌还包括相应的图形命令令牌;以及对于当前组图形命令令牌中令牌预测图指示其相似的图形命令令牌能够在先前组图形命令令牌中找到的每个相应图形命令令牌,相应图形命令令牌的差量包括:列表,它指示相应图形命令令牌内与先前组图形命令令牌的找到的相似的图形命令令牌不同的一个或更多个数据块的相应位置;以及相应令牌内与找到的相似的图形命令令牌不同的一个或更多个数据块。
例子20,根据例子14-19的任意组合所述的方法,其中,利用基于令牌的压缩对当前组图形命令令牌进行了压缩,其中当前组图形命令令牌充分相似于先前组图形命令令牌。
例子21,根据例子14-20的任意组合所述的方法,其中,当前组图形命令令牌的接收到的版本是未压缩的,其中当前组图形命令令牌不充分相似于先前组图形命令令牌。
例子22,一种宿设备,包括:存储器;一个或更多个处理器;以及由一个或更多个处理器执行以执行如下操作的至少一个模块:从源设备接收一版本的当前组图形命令令牌以及当前组图形命令令牌的压缩状态的指示,其中当前组图形命令令牌来自分别能够渲染到多帧视频数据的多组图形命令令牌;响应于基于压缩状态的指示确定利用基于帧的压缩对所述版本的当前组图形命令令牌进行压缩,基于先前组图形命令令牌以及在多组图形命令令牌的当前组图形命令令牌与先前组图形命令令牌之间的接收到的差量,生成当前组图形命令令牌的重构版本;以及基于当前组图形命令令牌的重构版本,渲染视频数据的帧。
例子23,根据例子22所述的宿设备,其中,所述至少一个模块还能被被一个或更多个处理器执行以实现例子12-19的方法的任意组合。
例子24,一种宿设备,包括用于执行例子12-19的方法的任意组合的单元。
例子25,一种存储指令的计算机可读存储介质,当被执行时,所述指令使得宿设备的一个或更多个处理器执行例子12-19的方法的任意组合。
可以认识到,依赖于例子,本文描述的任何技术的特定动作或者事件可以以不同序列执行,可以被添加、合并或者全部忽视(例如,不是所有描述的动作或者事件对实践技术是必要的)。此外,在特定例子中,例如,可以通过多线程处理、中断处理或者多处理器并发地而非顺序地执行动作或者事件。
在一个或更多个例子中,所描述的功能可以用硬件、软件、固件或者其任意组合来实现。当使用软件实现时,可以将功能存储在计算机可读介质中或者作为计算机可读介质上的一个或更多个指令或者代码进行传输,并且可以由基于硬件的处理单元执行。计算机可读介质包括计算机可读存储介质,它对应于例如数据存储介质的有形介质;或者通信介质,它包括便于例如根据通信协议从一个地方向另一个地方传送计算机程序的任何介质。以这种方式,计算机可读介质以便可以对应于(1)非瞬态的有形计算机可读存储介质,或者(2)通信介质,例如信号或者载波。数据存储介质可以是通过一个或更多个计算机或者一个或更多个处理器取回能够存取的任何可用介质,以取回指令、代码和/或数据结构用于实现本公开描述的技术。计算机程序产品可以包括计算机可读介质。
通过示例的方式而不是限制的方式,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或者其它光盘存储、磁盘存储介质或者其它磁存储设备、闪存、或者能够用于存储指令或者数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质。此外,任何连接可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外线、无线和微波之类的无线技术从网站、服务器或者其它远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所述介质的定义中。然而,可以理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或者其它瞬态介质,但是相反指向非瞬态的有形存储介质。如本申请所使用的,盘(disk)和碟(disc)包括压缩光碟(CD)、激光影碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性地复制数据,而碟则用激光来光学地复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
指令可以由一个或更多个处理器执行,例如一个或更多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或者其它等价的集成或者分立逻辑电路。因此,如在本文使用的术语“处理器”可以指代任何上述结构或者适于实现本文描述的技术的任何其它结构。另外,在一些方面,本文描述的功能可以设置在专用硬件和/或被配置为进行编码和解码的软件模块中,或者并入到组合的编码解码器中。另外,所述技术可以完全实现于一个或更多个电路或者逻辑元件中。
本公开的技术可以实现于多种设备或者装置中,包括无线手机、集成电路(IC)或者一组IC(例如,芯片组)。在本公开中描述了各种部件、模块或者单元来强调被配置为执行所公开技术的设备的功能方面,但是不必要求通过不同的硬件单元实现。而是,如上所述,可以在编码解码器硬件单元中组合各种单元,或者通过配合操作的硬件单元提供,包括上述一个或更多个处理器集合适当的软件和/或固件。
已经描述了各种例子。这些和更多例子落入后续权利要求的范围内。

Claims (30)

1.一种用于发送视频数据的方法,包括:
捕获分别能够渲染到多帧视频数据的多组图形命令令牌;以及
响应于确定所述多组图形命令令牌的当前组图形命令令牌的长度与所述多组图形命令令牌的先前组的长度相同,由源设备并且向宿设备输出所述当前组图形命令令牌的已压缩版本。
2.如权利要求1所述的方法,其中所述当前组图形命令令牌的所述已压缩版本包括:
列表,所述列表指示所述当前组图形命令令牌中与所述先前组图形命令令牌不同的一个或更多个数据块的相应位置;以及
所述一个或更多个数据块。
3.如权利要求2所述的方法,其中所述列表被利用指数哥伦布编码进行编码。
4.如权利要求1所述的方法,还包括:
响应于确定所述当前组图形命令令牌的长度不同于所述先前组图形命令令牌的长度,由所述源设备并且向所述宿设备输出所述当前组图形命令令牌的未压缩版本。
5.如权利要求1所述的方法,其中所述当前组图形命令令牌的所述已压缩版本是第一已压缩版本,所述方法还包括:
响应于确定所述当前组图形命令令牌的长度不同于所述先前组图形命令令牌的长度:
确定令牌预测图,所述令牌预测图指示:对于所述当前组图形命令令牌的每个图形命令令牌,是否能够在所述先前组图形命令令牌中找到相似的图形命令令牌;
响应于基于所述令牌预测图确定所述当前组图形命令令牌充分相似于所述先前组图形命令令牌,由所述源设备并且向所述宿设备输出所述当前组图形命令令牌的第二已压缩版本;以及
响应于基于所述令牌预测图确定所述当前组图形命令令牌不充分相似于所述先前组图形命令令牌,由所述源设备并且向所述宿设备输出所述当前组图形命令令牌的未压缩版本。
6.如权利要求5所述的方法,其中确定所述当前组图形命令令牌是否充分相似于所述先前组图形命令令牌包括:
确定所述当前组图形命令令牌中能够在所述先前组图形命令令牌中找到相似的图形命令令牌的图形命令令牌的百分比;以及
响应于确定所述百分比满足门限百分比,确定所述当前组图形命令令牌充分相似于所述先前组图形命令令牌。
7.如权利要求5所述的方法,其中所述当前组图形命令令牌的所述第二已压缩版本包括:
所述令牌预测图;
对于所述当前组图形命令令牌中不能在所述先前组图形命令令牌中找到相似的图形命令令牌的每个相应图形命令令牌,所述相应图形命令令牌;以及
对于所述当前组图形命令令牌中能够在所述先前组图形命令令牌中找到相似的图形命令令牌的每个相应图形命令令牌:
列表,所述列表指示所述相应图形命令令牌中与所述先前组图形命令令牌的所找到的相似的图形命令令牌不同的一个或更多个数据块的相应位置;以及
所述相应令牌中与所找到的相似的图形命令令牌不同的所述一个或更多个数据块。
8.如权利要求4所述的方法,还包括:针对所述当前组图形命令令牌的特定图形命令令牌,确定能够在所述先前组图形命令令牌中找到相似的图形命令令牌,其中所述先前组图形命令令牌的特定图形命令令牌具有:
与所述当前组图形命令令牌的所述特定图形命令令牌相同的令牌类型;以及
与所述当前组图形命令令牌的所述特定图形命令令牌相同的令牌数据尺寸。
9.如权利要求1所述的方法,还包括:由所述源设备并且向所述宿设备输出所述当前组图形命令令牌的压缩状态的指示。
10.一种源设备,包括:
存储器;
一个或更多个处理器;以及
能够由所述一个或更多个处理器执行以进行如下操作的至少一个模块:
捕获分别能够渲染到多帧视频数据的多组图形命令令牌;以及
响应于确定所述多组图形命令令牌的当前组图形命令令牌的长度与所述多组图形命令令牌的先前组的长度相同,向宿设备输出所述当前组图形命令令牌的已压缩版本。
11.如权利要求10所述的源设备,其中所述当前组图形命令令牌的所述已压缩版本包括:
列表,所述列表指示所述当前组图形命令令牌中与所述先前组图形命令令牌不同的一个或更多个数据块的相应位置;以及
所述一个或更多个数据块。
12.如权利要求11所述的源设备,其中所述列表被利用指数哥伦布编码进行编码。
13.如权利要求10所述的源设备,其中,响应于确定所述当前组图形命令令牌的长度不同于所述先前组图形命令令牌的长度,所述至少一个模块还能够被所述一个或更多个处理器执行以向所述宿设备输出所述当前组图形命令令牌的未压缩版本。
14.如权利要求10所述的源设备,其中所述当前组图形命令令牌的所述已压缩版本是第一已压缩版本,并且其中响应于确定所述当前组图形命令令牌的长度不同于所述先前组图形命令令牌的长度,所述至少一个模块还能够被所述一个或更多个处理器执行以进行如下操作:
确定令牌预测图,所述令牌预测图指示:对于所述当前组图形命令令牌的每个图形命令令牌,是否能够在所述先前组图形命令令牌中找到相似的图形命令令牌;
响应于基于所述令牌预测图确定所述当前组图形命令令牌充分相似于所述先前组图形命令令牌,向所述宿设备输出所述当前组图形命令令牌的第二已压缩版本;并且
响应于基于所述令牌预测图确定所述当前组图形命令令牌不充分相似于所述先前组图形命令令牌,向所述宿设备输出所述当前组图形命令令牌的未压缩版本。
15.如权利要求14所述的源设备,其中所述至少一个模块能够被所述一个或更多个处理器执行以通过至少以下步骤确定所述当前组图形命令令牌是否充分相似于所述先前组图形命令令牌:
确定所述当前组图形命令令牌中能够在所述先前组图形命令令牌中找到相似的图形命令令牌的图形命令令牌的百分比;以及
响应于确定所述百分比满足门限百分比,确定所述当前组图形命令令牌充分相似于所述先前组图形命令令牌。
16.如权利要求14所述的源设备,其中所述当前组图形命令令牌的所述第二已压缩版本包括:
所述令牌预测图;
对于所述当前组图形命令令牌中不能在所述先前组图形命令令牌中找到相似的图形命令令牌的每个相应图形命令令牌,所述相应图形命令令牌;以及
对于所述当前组图形命令令牌中能够在所述先前组图形命令令牌中找到相似的图形命令令牌的每个相应图形命令令牌:
列表,所述列表指示所述相应图形命令令牌中与所述先前组图形命令令牌的所找到的相似的图形命令令牌不同的一个或更多个数据块的相应位置;以及
所述相应令牌中与所找到的相似的图形命令令牌不同的所述一个或更多个数据块。
17.如权利要求13所述的源设备,其中所述至少一个模块还能够被所述一个或更多个处理器执行以进行如下操作:针对所述当前组图形命令令牌的特定图形命令令牌,确定能够在所述先前组图形命令令牌中找到相似的图形命令令牌,其中所述先前组图形命令令牌的特定图形命令令牌具有:
与所述当前组图形命令令牌的所述特定图形命令令牌相同的令牌类型;以及
与所述当前组图形命令令牌的所述特定图形命令令牌相同的令牌数据尺寸。
18.如权利要求10所述的源设备,所述至少一个模块还能够被所述一个或更多个处理器执行以进行如下操作:向所述宿设备输出所述当前组图形命令令牌的压缩状态的指示。
19.一种用于接收视频数据的方法,包括:
由宿设备并且从源设备接收一版本的当前组图形命令令牌以及所述当前组图形命令令牌的压缩状态的指示,其中所述当前组图形命令令牌来自分别能够渲染到多帧视频数据的多组图形命令令牌;
响应于基于所述压缩状态的所述指示,确定所述版本的所述当前组图形命令令牌被利用基于帧的压缩进行了压缩,基于所述先前组图形命令令牌以及所述多组图形命令令牌的所述当前组图形命令令牌与先前组图形命令令牌之间的接收到的差量,生成所述当前组图形命令令牌的重构版本;以及
基于所述当前组图形命令令牌的所述重构版本,渲染视频数据的帧。
20.如权利要求19所述的方法,其中接收到的版本的所述当前组图形命令令牌被利用基于帧的压缩进行了压缩,其中所述当前组图形命令令牌的长度与所述先前组图形命令令牌的长度相同。
21.如权利要求19所述的方法,其中接收到的版本的所述当前组图形命令令牌是未压缩的,其中所述当前组图形命令令牌的长度不同于所述先前组图形命令令牌的长度。
22.如权利要求19所述的方法,其中:
所述当前组图形命令令牌和所述先前组图形命令令牌之间的所述差量包括:列表,所述列表指示所述当前组图形命令令牌中与所述多组图形命令令牌的所述先前组图形命令令牌中的数据块不同的一个或更多个数据块的相应位置;以及所述一个或更多个数据块;以及
生成所述当前组图形命令的所述重构版本包括:用所述当前组图形命令令牌的所述已压缩版本中包括的所述一个或更多个数据块替代所述先前组图形命令令牌的所述相应位置处的数据。
23.如权利要求19所述的方法,还包括:响应于基于所述压缩状态的所述指示,确定所述版本的所述当前组图形命令令牌被利用基于令牌的压缩进行了压缩:
确定所述版本的所述当前组图形命令令牌指示所述当前组图形命令令牌的相应图形命令令牌和先前组图形命令令牌的相似的图形命令令牌之间的相应差量;以及
基于所述先前组图形命令令牌与所述相应差量,生成所述当前组图形命令令牌的相应图形命令令牌的重构版本。
24.如权利要求23所述的方法,其中:
所述版本的所述当前组图形命令令牌还包括令牌预测图,所述令牌预测图指示对于所述当前组图形命令令牌的每个图形命令令牌,是否能够在所述先前组图形命令令牌中找到相似的图形命令令牌;
对于所述当前组图形命令令牌中所述令牌预测图指示不能在所述先前组图形命令令牌中找到相似的图形命令令牌的每个相应图形命令令牌,所述版本的所述当前组图形命令令牌还包括所述相应的图形命令令牌;以及
对于所述当前组图形命令令牌中所述令牌预测图指示能够在所述先前组图形命令令牌中找到相似的图形命令令牌的每个相应图形命令令牌,所述相应图形命令令牌的所述差量包括:
列表,所述列表指示所述相应图形命令令牌中与所述先前组图形命令令牌的所找到的相似的图形命令令牌不同的一个或更多个数据块的相应位置;以及
所述相应令牌中与所找到的相似的图形命令令牌不同的所述一个或更多个数据块。
25.如权利要求23所述的方法,其中所述当前组图形命令令牌被利用基于令牌的压缩进行了压缩,其中所述当前组图形命令令牌充分相似于所述先前组图形命令令牌。
26.如权利要求25所述的方法,其中接收到的版本的所述当前组图形命令令牌是未压缩的,其中所述当前组图形命令令牌不充分相似于所述先前组图形命令令牌。
27.一种宿设备,包括:
存储器;
一个或更多个处理器;以及
能够由所述一个或更多个处理器执行以进行如下操作的至少一个模块:
从源设备接收一版本的当前组图形命令令牌以及所述当前组图形命令令牌的压缩状态的指示,其中所述当前组图形命令令牌来自分别能够渲染到多帧视频数据的多组图形命令令牌;
响应于基于所述压缩状态的所述指示,确定所述版本的所述当前组图形命令令牌被利用基于帧的压缩进行了压缩,基于所述先前组图形命令令牌以及所述多组图形命令令牌的所述当前组图形命令令牌与先前组图形命令令牌之间接收到的差量,生成所述当前组图形命令令牌的重构版本;以及
基于所述当前组图形命令令牌的所述重构版本,渲染视频数据的帧。
28.如权利要求27所述的宿设备,其中:
所述当前组图形命令令牌和所述先前组图形命令令牌之间的所述差量包括:列表,所述列表指示所述当前组图形命令令牌中与所述多组图形命令令牌的所述先前组图形命令令牌中的数据块不同的一个或更多个数据块的相应位置;以及所述一个或更多个数据块;以及
所述至少一个模块能够被所述一个或更多个处理器执行以进行如下操作:通过至少用所述当前组图形命令令牌的所述已压缩版本中包括的所述一个或更多个数据块替代所述先前组图形命令令牌的所述相应位置处的数据,来生成所述当前组图形命令的所述重构版本。
29.如权利要求27所述的宿设备,其中,响应于基于所述压缩状态的所述指示,确定所述版本的所述当前组图形命令令牌被利用基于令牌的压缩进行了压缩,所述至少一个模块还能够被所述一个或更多个处理器执行以进行如下操作:
确定所述版本的所述当前组图形命令令牌指示所述当前组图形命令令牌的相应图形命令令牌和先前组图形命令令牌的相似的图形命令令牌之间的相应差量;以及
基于所述先前组图形命令令牌与所述相应差量,生成所述当前组图形命令令牌的相应图形命令令牌的重构版本。
30.如权利要求29所述的宿设备,其中:
所述版本的所述当前组图形命令令牌还包括令牌预测图,对于所述当前组图形命令令牌的每个图形命令令牌,所述令牌预测图指示是否能够在所述先前组图形命令令牌中找到相似的图形命令令牌;
对于所述当前组图形命令令牌中所述令牌预测图指示不能在所述先前组图形命令令牌中找到相似的图形命令令牌的每个相应图形命令令牌,所述版本的所述当前组图形命令令牌还包括所述相应的图形命令令牌;以及
对于所述当前组图形命令令牌中所述令牌预测图指示能够在所述先前组图形命令令牌中找到相似的图形命令令牌的每个相应图形命令令牌,所述相应图形命令令牌的所述差量包括:
列表,所述列表指示所述相应图形命令令牌中与所述先前组图形命令令牌的所找到的相似的图形命令令牌不同的一个或更多个数据块的相应位置;以及
所述相应令牌中与所找到的相似的图形命令令牌不同的所述一个或更多个数据块。
CN201580059666.7A 2014-11-05 2015-10-13 远程显示的图形命令压缩 Active CN107077747B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/533,933 US10021161B2 (en) 2014-11-05 2014-11-05 Compression of graphical commands for remote display
US14/533,933 2014-11-05
PCT/US2015/055298 WO2016073150A1 (en) 2014-11-05 2015-10-13 Compression of graphical commands for remote display

Publications (2)

Publication Number Publication Date
CN107077747A true CN107077747A (zh) 2017-08-18
CN107077747B CN107077747B (zh) 2020-08-25

Family

ID=54541173

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580059666.7A Active CN107077747B (zh) 2014-11-05 2015-10-13 远程显示的图形命令压缩

Country Status (5)

Country Link
US (1) US10021161B2 (zh)
EP (1) EP3216187A1 (zh)
JP (1) JP2018500854A (zh)
CN (1) CN107077747B (zh)
WO (1) WO2016073150A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11228754B2 (en) 2016-05-06 2022-01-18 Qualcomm Incorporated Hybrid graphics and pixel domain architecture for 360 degree video
CN109325899B (zh) * 2018-09-07 2023-04-04 格兰菲智能科技有限公司 计算机系统、图形处理单元及其图形处理方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1261240A (zh) * 1999-01-21 2000-07-26 刘静波 多媒体数字传输方法及其系统
US20030140179A1 (en) * 2002-01-04 2003-07-24 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
CN1526238A (zh) * 2001-07-11 2004-09-01 Ħ��������˾ 视频传输系统,视频传输单元和编码/解码视频数据的方法
CN1572110A (zh) * 2001-10-23 2005-01-26 汤姆森特许公司 使用虚拟预测图像的快速运动特技模式
CN1714577A (zh) * 2002-11-18 2005-12-28 英国电讯有限公司 视频传输
US20100293248A1 (en) * 2009-05-12 2010-11-18 Yaniv Kamay Data compression of images using a shared dictionary
US20110157196A1 (en) * 2005-08-16 2011-06-30 Exent Technologies, Ltd. Remote gaming features
US20120113091A1 (en) * 2010-10-29 2012-05-10 Joel Solomon Isaacson Remote Graphics
CN103348695A (zh) * 2011-02-04 2013-10-09 高通股份有限公司 针对图形的低延时无线显示器
US20140082160A1 (en) * 2011-11-28 2014-03-20 Muralidhara Mallur Deployment of a driver or an application on a client device having a write-filter
US20140286584A1 (en) * 2013-03-22 2014-09-25 Stmicroelectronics S.R.I. Method and apparatus for image encoding and/or decoding and related computer program products

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5315696A (en) 1991-08-21 1994-05-24 Digital Equipment Corporation Graphics command processing method in a computer graphics system
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US6809735B1 (en) 2002-01-08 2004-10-26 Apple Computer, Inc. Virtualization of graphics resources
JP5358482B2 (ja) * 2010-02-24 2013-12-04 株式会社ルネサスエスピードライバ 表示駆動回路
US10002021B2 (en) 2012-07-20 2018-06-19 Qualcomm Incorporated Deferred preemption techniques for scheduling graphics processing unit command streams
TWI669952B (zh) * 2012-09-18 2019-08-21 美商Vid衡器股份有限公司 使用圖塊及圖塊組的感興趣區域視訊編碼的方法及裝置
JP5983761B2 (ja) * 2012-11-15 2016-09-06 日本電気株式会社 サーバ装置、端末、シンクライアントシステム、画面送信方法およびプログラム
JP5545687B1 (ja) * 2013-11-07 2014-07-09 株式会社 ディー・エヌ・エー ゲームを提供するサーバ及び方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1261240A (zh) * 1999-01-21 2000-07-26 刘静波 多媒体数字传输方法及其系统
CN1526238A (zh) * 2001-07-11 2004-09-01 Ħ��������˾ 视频传输系统,视频传输单元和编码/解码视频数据的方法
CN1572110A (zh) * 2001-10-23 2005-01-26 汤姆森特许公司 使用虚拟预测图像的快速运动特技模式
US20030140179A1 (en) * 2002-01-04 2003-07-24 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
CN1714577A (zh) * 2002-11-18 2005-12-28 英国电讯有限公司 视频传输
US20110157196A1 (en) * 2005-08-16 2011-06-30 Exent Technologies, Ltd. Remote gaming features
US20100293248A1 (en) * 2009-05-12 2010-11-18 Yaniv Kamay Data compression of images using a shared dictionary
US20120113091A1 (en) * 2010-10-29 2012-05-10 Joel Solomon Isaacson Remote Graphics
CN103348695A (zh) * 2011-02-04 2013-10-09 高通股份有限公司 针对图形的低延时无线显示器
US20140082160A1 (en) * 2011-11-28 2014-03-20 Muralidhara Mallur Deployment of a driver or an application on a client device having a write-filter
US20140286584A1 (en) * 2013-03-22 2014-09-25 Stmicroelectronics S.R.I. Method and apparatus for image encoding and/or decoding and related computer program products

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
EISERT P ETC.: "LOW DELAY STREAMING OF COMPUTER GRAPHICS", 《2008 15TH IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING》 *
齐鸿儒等: "移动视频监控系统的设计与实现", 《计算机仿真》 *

Also Published As

Publication number Publication date
WO2016073150A1 (en) 2016-05-12
US20160127443A1 (en) 2016-05-05
EP3216187A1 (en) 2017-09-13
JP2018500854A (ja) 2018-01-11
CN107077747B (zh) 2020-08-25
US10021161B2 (en) 2018-07-10

Similar Documents

Publication Publication Date Title
US10897620B2 (en) Method and apparatus for processing a video
CN103458460B (zh) 对信号数据进行压缩和解压缩的方法和装置
CN105279730B (zh) 对于动态生成的图形资源的压缩技术
KR101634134B1 (ko) 블록 압축 이미지들의 압축 해제를 위한 시스템, 방법, 및 컴퓨터 프로그램 제품
CN107258086A (zh) 针对汇显示器的静态帧图像质量改进
TW201507440A (zh) 用於視窗內容編碼之視窗圖與基於標準的漸進式編解碼器
CN109842803A (zh) 一种图像压缩的方法及装置
TW201710883A (zh) 低延遲銀幕鏡像
CN106605411A (zh) 对图形域中的视频数据进行流式传输
US9251731B2 (en) Multi-sampling anti-aliasing compression by use of unreachable bit combinations
CN114006894B (zh) 数据处理系统、方法、电子设备及计算机存储介质
CN108492338A (zh) 动画文件的压缩方法、装置、存储介质和电子装置
CN106713922B (zh) 图像处理方法和电子设备
CN103929640B (zh) 用于管理视频流播的技术
CN110249384A (zh) 具有索引编码和位安排的量化器
CN108696649A (zh) 图像处理方法、装置、设备及计算机可读存储介质
CN106133791B (zh) 用于颜色压缩的群聚和编码
CN113163198B (zh) 图像压缩方法、解压方法、装置、设备及存储介质
JP2014216011A (ja) カラーバッファ圧縮
CN107077747A (zh) 远程显示的图形命令压缩
CN110324668A (zh) 图像块编码中的变换方法、解码中的反变换方法及装置
WO2019127926A1 (zh) 一种稀疏神经网络的计算方法及计算装置、电子装置、计算机可读存储介质以及计算机程序产品
CN108027715B (zh) 图形命令令牌的修改
CN113435523A (zh) 预测内容点击率的方法、装置、电子设备以及存储介质
CN109451313A (zh) 一种视频编码方法、系统及电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant