CN116774961A - 无线可编程媒体处理*** - Google Patents
无线可编程媒体处理*** Download PDFInfo
- Publication number
- CN116774961A CN116774961A CN202310883212.8A CN202310883212A CN116774961A CN 116774961 A CN116774961 A CN 116774961A CN 202310883212 A CN202310883212 A CN 202310883212A CN 116774961 A CN116774961 A CN 116774961A
- Authority
- CN
- China
- Prior art keywords
- blocks
- sets
- processing unit
- frame
- cores
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 203
- 238000007906 compression Methods 0.000 claims abstract description 28
- 230000006835 compression Effects 0.000 claims abstract description 25
- 238000000034 method Methods 0.000 claims description 37
- 230000005540 biological transmission Effects 0.000 description 25
- 238000004891 communication Methods 0.000 description 10
- 230000006837 decompression Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000009877 rendering Methods 0.000 description 7
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/395—Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
- G09G5/397—Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/02—Improving the quality of display appearance
- G09G2320/0252—Improving the response speed
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/02—Handling of images in compressed format, e.g. JPEG, MPEG
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/14—Solving problems related to the presentation of information to be displayed
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2350/00—Solving problems of bandwidth in display systems
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2352/00—Parallel handling of streams of display data
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/06—Use of more than one graphics processor to process data before displaying to one or more screens
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/08—Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/022—Centralised management of display operation, e.g. in a server instead of locally
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/06—Consumer Electronics Control, i.e. control of another device by a display or vice versa
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/16—Use of wireless transmission of display information
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
- Information Transfer Between Computers (AREA)
- Digital Computer Display Output (AREA)
Abstract
本公开的实施例涉及无线可编程媒体处理***。在该媒体处理***中,计算设备中的处理单元基于用于计算设备上运行的应用的图形内容生成待显示的帧。此后,待显示的帧被划分成多组块,这些组块被压缩。经过压缩的图形块通过无线链路从处理单元被发送给图形显示设备。以此方式,待显示的帧的生成和压缩可以均在计算设备的同一处理单元中被完成,避免了数据复制,简化了处理操作,从而显著提高了数据处理速度和效率。
Description
相关申请
本申请是申请号为201710744954.7、发明名称为“无线可编程媒体处理***”的发明专利申请的分案申请。
背景技术
虚拟现实(VR)可以模拟真实世界的图像、声音、触感等等,为用户创建身临其境般的虚拟环境。本文中的VR可以包括增强现实(AR)。VR***通常由诸如个人计算机(PC)的计算设备和诸如头盔式显示器(HMD)的图形显示设备组成。借助于计算设备以高帧速率和高视觉品质对丰富图形内容进行渲染,图形显示设备可以为用户提供高质量的VR体验。
传统上,计算设备和图像显示设备通常通过线缆连接。例如,图形显示设备可以经由高清多媒体接口(HDMI)线连接到计算设备,以便从计算设备接收图形内容。图形显示设备还可以经由通用串行总线(USB)线将诸如传感器数据等数据送到计算设备。然而,这些线缆一方面限制了用户的移动,另一方面可能会给用户造成危害,例如可能会将用户绊倒,或者缠住用户脖子。
发明内容
本公开的实施例不同于简单地在计算设备和图形显示设备之间提供无线传输接口的传统无线媒体处理***,提出了一种新的图形处理流程,以提高无线媒体处理***在处理效率和延迟方面的性能。
根据本公开的实施例,在计算设备中的处理单元处,基于用于运行于计算设备上的应用的图形内容生成了待显示的帧。待显示的帧被分成多组块,这些组块被压缩。继而,经压缩的多组块通过无线链路被发送给图形显示设备。以此方式,与图形内容有关的渲染和压缩都在计算设备中的同一处理单元处执行,这大大简化了计算设备侧的处理流程,从而提高了效率。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识要求保护的主题的关键特征或主要特征,也无意限制要求保护的主题的范围。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1示出了根据本公开的某些实施例的示例无线可编程媒体处理***的架构;
图2示出了根据本公开的某些其他实施例的示例无线可编程媒体处理***的架构;
图3示出了根据本公开的某些实施例的方法的流程图;以及
图4示出了根据本公开的某些其他实施例的方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在此使用的术语“媒体处理***”是指具有高清或者超高清媒体传输能力的任意适当***。媒体处理***的示例包括但不限于,VR***和AR***。为讨论方便,在某些实施例中将以VR***作为媒体处理***的示例进行描述。
在此使用的术语“计算设备”是指具有计算能力的任意适当设备。计算设备可以支持任意适当应用(例如,VR或AR应用),并且可以对用于该应用的图形内容进行处理,以用于在图形显示设备上显示。计算设备的示例包括但不限于,大型主机、服务器、个人计算机(PC)、桌上型计算机、膝上型计算机、笔记本计算机、平板计算机、上网本、个人数字助理(PDA)、移动电话、或者智能电话等等。为讨论方便,在某些实施例中将以PC作为计算设备的示例进行描述。
在此使用的术语“图形显示设备”是指具有图形显示能力的任意适当设备。图形显示设备可以对经计算设备处理的图形信息进行显示,以便为用户提供VR体验。图形显示设备的示例包括但不限于,桌上型计算机、膝上型计算机、笔记本计算机、平板计算机、上网本、PDA、移动电话、智能手机、智能眼镜、智能手表、个人通信***(PCS)设备、音频/视频播放器、数码相机/摄像机、个人导航设备、定位设备、电子书设备、游戏设备、或头盔式显示器(HMD)等等。为讨论方便,在某些实施例中将以HMD作为图形显示设备的示例进行描述。
在此使用的术语“处理单元”可以是能够根据程序代码指令执行各种处理的任意适当物理或虚拟的处理器。处理单元可以包括一个或多个核。在包括多个核的情况下,多个核可以并行地操作,从而提高处理单元的处理效率。
处理单元的示例包括但不限于,中央处理单元(CPU)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SoC)、复杂可编程逻辑器件(CPLD)、等等。为讨论方便,在某些实施例中将以GPU作为处理单元的示例进行描述。
在此使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。
如上所述,VR***中的计算设备和图像显示设备传统上通过线缆连接,这限制了用户的活动,并且可能会给用户造成危害。已经开始探索使用无线传输代替基于线缆的有线传输,以实现高质量的无线VR***。例如,已经提出了专用WirelessHD标准,该标准支持60GHz频率以上的无线高清视频传输。基于WirelessHD标准,在计算设备和图像显示设备上实现了60GHz频率以上的无线HDMI接口。还提出了使用无线保真(Wi-Fi)来代替计算设备和图像显示设备之间的USB线。这样,线缆从VR***中被移除,因而避免了有线传输方式会产生的上述问题。
然而,发明人注意到,这种HDMI接口目前仅仅能够支持帧率为90Hz的2160×1200像素的图形内容,无法满足高质量VR应用对于***性能的要求。另外,这种无线VR***的图形显示设备仅具有显示功能而不具有可编程性,因而可扩展性和灵活性较差,而且不可能利用各种基于软件编程的技术来实现性能的改进。
为此,在本公开的实施例的一个方面,发明人经过研究,发现和提出了一种无线可编程媒体处理***。根据在此提出的媒体处理***,特别地,在图形显示设备侧增加了可编程设备,以使得图形显示设备具有可编程性。图1示出了根据本公开的某些实施例的示例无线可编程媒体处理***100。在此示例中,媒体处理***100被实施为VR***。但是应当理解,这仅仅是出于说明目的无意于以任何方式限制本公开的范围。
如图所示,在***100中设置了可编程设备105,它与图形显示设备110(在此示例中为HMD)耦合,以便为图形显示设备110提供可编程性。可编程设备105可以实现为任意适当形式。作为示例,可编程设备105可以包括便携并且低功耗的智能电话级别的片上***(SoC)。根据本公开的实施例,可编程设备105可以包括任意适当组件,这方面的具体示例将在后文参考图2进行描述。
图形显示设备110与可编程设备105之间的耦合可以任意适当方式来实现。作为示例,可编程设备105可以通过HDMI线115和USB线120与图形显示设备110相连,以便经由HDMI线115向图形显示设备110发送要显示的与应用(例如,VR应用)有关的帧,并且经由USB线120从图形显示设备105接收诸如传感器数据等数据。应当理解,其他耦合方式也是可行的。
在***100中,可编程设备105与计算设备125之间使用无线链路来进行数据传输。例如,可编程设备105可以经由无线链路从计算设备125接收用于特定应用的图形内容,并且将来自图形显示设备110的传感器数据等发送给计算设备125。在此示例中,如图所示,可编程设备110与计算设备125之间的无线链路基于千兆比特(WiGig)联盟标准而实现基于因特网协议(IP)的传输。应当理解,这仅仅是示例而非限制。目前已知或者将来开发的任何无线通信技术和通信协议可在此使用。通信技术的示例包括但不限于,无线局域网(WLAN)、全球微波接入互操作性(WiMAX)、蓝牙、Zigbee技术、机器类型通信(MTC)、D2D、或者M2M等等。通信协议的示例包括但不限于,传输控制协议(TCP)/互联网协议(IP)、超文本传输协议(HTTP)、用户数据报协议(UDP)、会话描述协议(SDP)等等。
由于在图形显示设备侧提供了可编程性,所以计算设备和图形显示设备这两侧可以基于软件编程一起配合工作,这提高了无线媒体处理***的可扩展性和灵活性。另外,可以使用诸如压缩算法、内容预提取、姿态预测和协同渲染等等各种基于软件编程的技术来提高无线媒体处理***的帧速率和分辨率,从而改善了***性能和用户体验。
然而,***100在传输速率和处理延迟等方面可能仍将面临挑战。例如,未来的VR***以非常高的帧速率(例如,120Hz)和分辨率为目标。举例而言,高端的三维(3D)VR游戏对于网络吞吐量以及端到端的***延迟具有非常高的要求。下面的表1示出了帧速率为90Hz时不同显示分辨率所需的示例数据吞吐量。
表1
在此示例中,假设使用三字节对每个像素的RGB数据进行编码。在未使用压缩的情况下,2160×1200(2K)的显示分辨率所需的原始数据速率是5.6Gbps。在显示分辨率为4K超高清(UHD)和8K UHD时,所需的数据速率分别高达17.9Gbps和71.7Gbps。
在***延迟方面,在帧速率为90Hz的情况下,需要VR***每11ms就能够渲染、发送并且显示一个高分辨率帧,以保证流畅的用户体验。对于以120Hz的帧速率为目标的未来VR,帧周期甚至缩短为仅8.3ms。而且,高质量VR还要求整个端到端(即,运动到显示)延迟为20ms到25ms。也就是说,一旦图形显示设备移动,VR***必须能够在20ms到25ms内显示根据图形显示设备的新姿态生成的新的帧。
在采用有线传输方式的情况下,计算设备侧所生成的待显示的帧可以直接经由线缆(例如,HDMI线)发送给图形显示设备。与此不同,采用无线传输方式将需要某些额外的处理,下面将参考图2对此进行说明。
图2示出了根据本公开的某些其他实施例的示例无线可编程媒体处理***200的架构。在该示例中,为了便于讨论,同样以VR***作为媒体处理***的示例。如图所示,在***200中,计算设备125包括运行于其上的应用(例如,VR应用)205,用于为用户提供相应的服务,例如图形内容210的显示。计算设备125还包括处理单元(称为“第一处理单元”)215,用于执行对用于应用205的图形内容进行渲染等操作。在此示例中,如图所示,第一处理单元215实施为GPU。然而,这仅仅是示例而非限制。第一处理单元215可以实施为任意适当其他形式。例如,第一处理单元215还可以实施为FPGA或ASIC。
除了第一处理单元215之外,在一些实施例中,计算设备125还可以包括任意适当一个或多个其他处理单元。作为示例,在第一处理单元215实施为GPU或FPGA的实施例中,计算设备125还可以包括CPU。此时,GPU或FPGA用于执行图形渲染等功能,而CPU可以用于执行通用处理功能。多个处理单元可以并行执行计算机可执行指令,以提高计算设备125的并行处理能力。
如图所示,计算设备125还包括无线网络接口单元(称为“第一无线网络接口单元”)220,用于提供与可编程设备105进行无线通信的接口。作为示例,如图所示,第一无线网络接口单元220实施为网络接口卡(NIC)。第一无线网络接口单元220的其他实现形式也是可行的。
除此之外,计算设备125还可以包括实现通过通信介质与其他外部设备通信的任意适当其他通信接口。其他外部设备例如包括但不限于另一计算设备服务器、诸如存储设备、显示设备、输入设备(例如,鼠标、键盘、触摸屏、追踪球、语音输入设备等)、输出设备(例如显示器、扬声器、打印机等)的外部设备、或者使得计算设备125与其他外部设备通信的任何中间设备(例如,网卡、调制解调器等)。
在***200中,计算设备125还包括图形堆栈225和网络堆栈230。图形堆栈225可由第一处理单元215访问,以用于存储待处理的图形内容210。网络堆栈230与第一无线网络接口单元220相互配合,以用于存储要通过无线链路传输的数据。图形堆栈225和网络堆栈230可以实现为任意适当存储设备,例如可以为计算机可读或机器可读存储介质。这样的介质可以是计算设备125可访问的任何可获得的介质,包括但不限于易失性或非易失性介质、可拆卸或不可拆卸介质。除此之外,计算设备125还可以包括一个或多个其他存储设备,用于存储可以在计算设备125内被访问的其他信息和/或数据。
如图所示,计算设备125还包括发送单元235,其对用于应用205的帧进行压缩等操作以减小要通过无线链路传输的数据的大小。发送单元235的具体操作将在后文进行描述。
除了所示出的组件之外,计算设备125还可以包括任意适当其他组件。例如,计算设备125可以包括存储器,其可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或其某种组合。存储器可以包括一个或多个程序模块,这些程序模块被配置为执行本公开的各实施例所实现的各种功能。特别地,程序模块可以由第一处理单元215访问和运行,以实现相应功能。
在此示例中,在计算设备125侧,应用205经由VR软件开发工具包(SDK)(未示出)跨过用户模式和内核模式的边界,使用第一处理器215基于相关联的图形内容210生成待显示的帧。该帧可以存储在第一处理单元215的存储器中(未示出)。
在计算设备125包括GPU作为第一处理单元215并且包括CPU用于实施通用处理功能的实施例中,发送单元235可以例如使用***图形应用程序接口(API)跨过内核模式和用户模式的边界,将待显示的帧从第一处理单元215的存储器提取到CPU的存储器(未示出)。发送单元235可以对帧进行压缩以减小数据的大小。继而,发送单元235再次跨过用户模式和内核模式的边界,将压缩后的数据经由网络堆栈230发送给第一无线网络接口单元220。第一无线网络接口单元220经由无线链路将压缩后的数据发送出去。
在***200中,计算设备125经由无线链路所发送的数据被可编程设备105接收。如图所示,可编程设备105包括无线网络接口单元(称为“第二无线网络接口单元”)240、用于存储第二无线网络接口单元240所接收的帧的网络堆栈245、用于对接收到的帧进行解压缩等处理的接收单元250、处理单元(称为“第二处理单元”)255、以及可由第二处理单元255访问的用于存储图形内容的图形堆栈260。可编程设备105中的上述各组件的具体功能以及实现方式与上面描述的计算设备125中的相应组件类似,故不再赘述。同样与计算设备125类似,可编程设备105可以包括除所示组件之外的任意适当其他组件。
在可编程设备105中,第二无线网络接口单元(例如,NIC)240通过无线链路接收到来自计算设备125的数据,并且将其存储在网络堆栈245中。接收器250跨过用户模式和内核模式的边界,从网络堆栈245获得第二无线网络接口单元240所接收的数据,并且对数据进行解压缩。而后接收器250再次跨过上述边界经由图形堆栈260将解压缩后的帧传递给第二处理单元(例如,GPU)255。如图所示,可编程设备105的第二处理单元255通过线缆(例如,HDMI线)260与图形显示设备110相连,由此可以将解压缩后的帧传递给图形显示设备110,以用于在图形显示设备110上进行显示。
如上所述,在***200中,图形显示设备110的数据处理操作都能够在可编程设备105上执行。这使得图形显示设备110与瘦客户(thin client)端***类似。以此方式,图形显示设备110的可扩展性和灵活性被增强。
上述数据处理过程需要很多次数据复制,因而产生了很多额外的数据副本。例如,在计算设备125中,待显示的帧可能需要从第一处理单元215的存储器复制到主机存储器,再从发送单元235复制到第一无线网络接口单元220。在可编程设备105中,数据需要从第二无线网络接口单元240复制到接收器250,继而复制到第二处理单元255。而通过数据的压缩和解压缩,可以明显减少通过无线链路传输的数据量,从而提高数据传输速率。
然而,发明人注意到,如果数据量较大,则这些数据复制以及压缩和解压缩可能会加重***的处理负担。为了进一步简化处理操作以便进一步提高处理效率并且减小处理延迟,发明人在本公开的实施例的另一方面进一步提出了一种高效的数据压缩和解压缩方案。根据本公开的实施例,由计算设备中的第一处理单元执行关于待显示的帧的生成、压缩和发送的操作。具体而言,第一处理单元基于用于计算设备上运行的应用的图形内容生成待显示的帧。继而,第一处理单元将待显示的帧分成多组块,并且对这些组块进行压缩。而后第一处理单元通过无线链路向图形显示设备发送经压缩的多组块。由此,在发送端可以使用同一个处理单元执行上述生成、压缩和发送操作,因而可以减少图2中所示的较频繁的数据复制,进一步减小了处理延迟。
相应地,在接收端,关于图形内容的接收和解压缩操作也由同一个处理单元执行,特别地,由耦合到图形显示设备的可编程设备中的第二处理单元执行。具体而言,第二处理单元通过无线链路从计算设备接收经压缩的多组块,这些组块是基于用于计算设备上运行的特定应用的图形内容生成的。继而,第二处理单元对接收到的多组块进行解压缩,并且基于经解压缩的多组块生成待显示的帧以用于在图形显示设备上显示。以此方式,在接收端也避免了上述频繁的数据复制,进一步减小了处理延迟。
以下参考图3和图4来说明本公开的这一方面的基本原理和若干示例实现。首先参考图3,其示出了根据本公开的某些实施例在计算设备的第一处理单元处实施的方法300的流程图。方法300能够由图2所示的计算设备125中的第一处理单元215执行。为讨论方便,下面将结合图2对方法300进行描述。
如图所示,在框305,第一处理单元215基于用于计算设备125上运行的应用205的图形内容210生成待显示的帧。作为示例,待显示的帧可以通过对图形内容210进行渲染而生成。任何目前已知或者将来开发的渲染方法均可在此使用。
在得到待显示的帧后,第一处理单元215在框310将所得的帧分成多组块,并且在框315对这些组块进行压缩。根据本公开的实施例,可以采用任意适当压缩算法来实现该压缩。特别地,在某些实施例中,第一处理单元215可以并发地执行多组块的压缩,以便进一步提高处理效率,减少时延,这方面的具体示例将在后文描述。
在第一处理单元215包括多个核的情况下,可以利用多个核并发地执行待显示的帧的生成和压缩操作。也就是说,在某些实施例中,框305、310和框315可以并发执行。例如,第一处理单元215可以使用多个核中的一组核(称为“第一组核”)基于图形内容210(称为“第一图形内容”)生成待显示的帧。与此并行,第一处理单元215使用另一组不同的核(称为“第二组核”)对由待显示的帧得到的多组块进行压缩。这样,在使用第二组核进行图形压缩时,第一处理单元可以同时使用第一组核来基于用于该应用的其他图形内容(称为“第二图形内容”)生成待显示的帧,从而显著提高了***处理效率。
在对多组块进行了压缩后,在框320,第一处理单元215通过无线链路向图形显示设备110发送经压缩的多组块。任何目前已知或者将来开发的无线传输方式均可在此使用。第一处理单元215可以任意适当方式实现多组块到图形显示设备110的传输。为了进一步提到处理效率,在某些实施例中,第一处理单元215可以布置压缩和传输的并行处理管道,也即,框315和框320可以并发执行。例如,第一处理单元215可以执行多个线程,并且利用其中一个线程(称为“第一线程”)执行压缩处理,并且利用另一个不同的线程(称为“第二线程”)执行传输处理。
举例而言,第一处理单元215在将待显示的帧分成多组块之后,可以使用第一线程逐一地对每个组块进行压缩。在完成了一组块(称为“第一组块”)的压缩之后,第一处理单元215可以马上使用分离的第二线程将该组块通过无线链路发送出去。与此同时,第一处理单元215可以继续使用第一线程对另一组块(称为“第二组块”)进行压缩。这种压缩和传输的并行处理明显缩短了发送端的处理时间。
相应地,在接收端,一旦接收到已压缩的一组块,可以立即对其进行解压缩,而不必等待接收到所有的块之后再解压缩,这样大大缩短了总的端到端数据处理时间。接收端的具体操作将在后文参考图4进行描述。
为了进一步缩短发送端的数据处理管道以便进一步减小延迟,在某些实施例中,第一处理单元215可以与计算设备125中的第一无线网络接口单元220耦合,以建立二者之间的直接数据传输路径。可以任何适当方式实现该耦合。作为示例,第一处理单元215和第一无线网络接口单元220可以连接到同一***组件快速互连(PCIe)总线,继而经由PCIe协议直接访问彼此的存储器。
以此方式,图形数据不再需要越过内核/用户模式边界执行多次复制,就能从计算设备发送给图形显示设备。作为示例,对于图2所示的无线***200而言,第一处理单元(例如,GPU)215在将待显示的帧分成多组块并且对各个多组块进行压缩后,经压缩的多组块可以存储在第一处理单元215的存储器中,而取代被复制到主机存储器中。可以允许第一无线网络接口单元(例如,NIC)220直接访问第一处理单元215的存储器,这样经压缩的多组块无需经由主机存储器,就可以经由无线链路发送出去。以此方式,进一步减少了发送端的数据路径的长度,从而进一步改进了***性能,减少了***延迟。
相应地,在接收端,可以采用高效的数据压缩方法,以进一步减少接收端的处理时延。下面将参考图4对接收侧的具体操作进行描述。图4示出了根据本公开的某些实施例的在耦合到图形显示设备的可编程设备中的第二处理单元处实施的方法400的流程图。方法400能够由图2所示的可编程设备105中的第二处理单元255执行。为讨论方便,下面将结合图2对方法400进行描述。
如图所示,在框405,第二处理单元255通过无线链路从计算设备125接收经压缩的多组块,这些组块是基于用于计算设备125上运行的应用205的图形内容210生成的。第二处理单元255可以任意适当方式实现该接收。为了缩短接收端的数据传输路径,进一步简化接收端的操作,在某些实施例中,第二处理单元255可以与可编程设备105中的第二无线网络接口单元240耦合,以建立直接的数据传输路径。在这种情况下,第二处理单元255可以通过无线链路经由第二无线网络接口单元240从计算设备125接收经压缩的多组块。第二处理单元255与第二无线网络接口单元220之间的耦合的具体实现方式与上述第一处理单元215与第二无线网络接口单元240之间的耦合类似,故不再赘述。
在框410,第二处理单元255对接收到的多组块进行解压缩。任何目前已知或者将来开发的解压缩方法均可在此使用。特别地,如上所示,在发送端并发地执行多组块的压缩和发送的实施例中,第二处理单元255可以并发地执行多组块的接收和解压缩,也即,框405和框410可以并发执行。例如,第二处理单元255可以执行多个线程,使用其中一个线程(称为“第三线程”)接收一组块(称为“第三组块”),并且使用另一不同的线程(称为“第四线程”)对接收到的该组块进行解压缩。这样,在对接收的组块进行解压缩的同时,第二处理单元255可以使用第三线程接收另一组块(称为“第四组块”)。以此方式,进一步缩短了接收端的处理时间。
在对多组块进行了解压缩之后,在框415,第二处理单元255基于经解压缩的多组块生成待显示的帧以用于在图形显示设备110上显示。块重组成帧和帧的显示方法在本领域中是已知的,故在此不再赘述。
由此,在接收端,多组块的解压缩和重组等处理可以在同一处理单元,即第二处理单元255执行,这进一步简化了接收侧的处理,从而进一步提高了***效率,减少了***延迟。特别地,在第二处理单元255与第二无线网络接口240之间存在直接数据传输路径的实施例中,可编程设备105不再需要越过内核/用户模式边界对图形数据执行多次复制。例如,第二无线网络接口240可以直接将接收到的多组块存储到第二处理单元255的存储器中,而无需通过主机存储器。以此方式,进一步减少了接收侧数据传输路径的长度,从而进一步改进了***性能。
本文中所描述的功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如但不限于,可以使用的硬件逻辑组件的示意性类型包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑器件(CPLD)等。
用于实施本文所描述的主题的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开内容的上下文中,计算机可读或机器可读存储介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本文所描述的主题的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
以下列出了本公开的一些示例实现。
在一方面,提供了一种在用于媒体处理***的计算设备中的第一处理单元处实施的方法。该方法包括:基于用于计算设备上运行的应用的图形内容生成待显示的帧;将待显示的帧分成多组块;对多组块进行压缩;以及通过无线链路向媒体处理***中的图形显示设备发送经压缩的多组块。
在一些实现方式中,第一处理单元包括多个核,生成待显示的帧包括使用多个核中的第一组核来基于图形内容生成待显示的帧,以及对多组块进行压缩包括使用多个核中的第二组核对多组块进行压缩,第二组核不同于第一组核。
在一些实现方式中,该图形内容是第一图形内容,待显示的帧是待显示的第一帧,该方法还包括:与使用第二组核对多组块进行压缩并发地,使用第一组核基于用于应用的第二图形内容生成待显示的第二帧,第二图形内容不同于第一图形内容,第二帧不同于第一帧。
在一些实现方式中,向图形显示设备发送经压缩的多组块包括:与对多组块的压缩并发地,通过无线链路向图形显示设备发送经压缩的多组块。
在一些实现方式中,第一处理单元执行多个线程,对多组块进行压缩包括使用多个线程中的第一线程,对多组块中的第一组块进行压缩,以及发送经压缩的多组块包括使用多个线程中的第二线程来通过无线链路向图形显示设备发送经压缩的第一组块,第二线程不同于第一线程。
在一些实现方式中,该方法还包括:与使用第二线程发送经压缩的第一组块并发地,使用第一线程对多组块中的第二组块进行压缩,第二组块不同于第一组块。
在一些实现方式中,第一处理单元与计算设备中的第一无线网络接口单元耦合,以及发送经压缩的多组块包括通过无线链路来经由第一无线网络接口单元向图形显示设备发送经压缩的多组块。
在一些实现方式中,该方法还包括:在使用第二线程发送经压缩的一个多组块的同时,使用第一线程对多组块中的另一多组块进行压缩。
在一些实现方式中,第一处理单元包括图形处理单元、现场可编程门阵列和专用集成电路中的至少一个。
在一方面,提供了一种媒体处理***中的可编程设备中的第二处理单元处实施的方法,该可编程设备与图形显示设备耦合。该方法包括:通过无线链路从计算设备接收经压缩的多组块,经压缩的多组块基于用于计算设备上运行的应用的图形内容被生成;对接收到的多组块进行解压缩;以及基于经解压缩的多组块生成待显示的帧以用于在图形显示设备上显示。
在一些实现方式中,对多组块进行解压缩包括:与接收多组块并发地对多组块进行解压缩。
在一些实现方式中,第二处理单元执行多个线程,接收多组块包括使用多个线程中的第三线程来通过无线链路从计算设备接收多组块中的第三组块,以及对多组块进行解压缩包括使用多个线程中的第四线程来对接收到的第三组块进行解压缩,第四线程不同于第三线程。
在一些实现方式中,该方法还包括:与使用第四线程对接收到的第三组块进行解压缩并发地,使用第三线程来通过无线链路从计算设备接收多组块中的第四组块,第四组块不同于第三组块。
在一些实现方式中,该方法还包括:在使用第四线程对接收到的一个多组块进行解压缩的同时,使用第三线程通过无线链路从计算设备接收多组块中的另一多组块。
在一些实现方式中,第二处理单元与可编程设备中的第二无线网络接口单元耦合,以及接收多组块包括:通过无线链路经由第二无线网络接口单元从计算设备接收多组块。
在一些实现方式中,第二处理单元包括图形处理单元、现场可编程门阵列和专用集成电路中的至少一个。
在一方面,提供了一种用于媒体处理***的计算设备。该计算设备包括处理单元;以及存储器,耦合至处理单元并且存储有指令,指令在由处理单元执行时执行图形内容的压缩处理,包括动作:基于用于计算设备上运行的应用的图形内容生成待显示的帧;将待显示的帧分成多组块;对多组块进行压缩;以及通过无线链路向媒体处理***中的图形显示设备发送经压缩的多组块。
在一些实现方式中,第一处理单元包括多个核,生成待显示的帧包括使用多个核中的第一组核来基于图形内容生成待显示的帧,以及对多组块进行压缩包括使用多个核中的第二组核对多组块进行压缩,第二组核不同于第一组核。
在一些实现方式中,该图形内容是第一图形内容,待显示的帧是待显示的第一帧,动作还包括:与使用第二组核对多组块进行压缩并发地,使用第一组核来基于用于应用的第二图形内容生成待显示的第二帧,第二图形内容不同于第一图形内容,第二帧不同于第一帧。
在一些实现方式中,向图形显示设备发送经压缩的多组块包括:与对多组块的压缩并发地,通过无线链路向图形显示设备发送经压缩的多组块。
在一些实现方式中,第一处理单元执行多个线程,对多组块进行压缩包括使用多个线程中的第一线程,对多组块中的第一组块进行压缩,以及发送经压缩的多组块包括使用多个线程中的第二线程来通过无线链路向图形显示设备发送经压缩的第一组块,第二线程不同于第一线程。
在一些实现方式中,动作还包括:与使用第二线程发送经压缩的第一组块并发地,使用第一线程对多组块中的第二组块进行压缩,第二组块不同于第一组块。
在一些实现方式中,第一处理单元与计算设备中的第一无线网络接口单元耦合,以及发送经压缩的多组块包括通过无线链路来经由第一无线网络接口单元向图形显示设备发送经压缩的多组块。
在一些实现方式中,第一处理单元包括图形处理单元、现场可编程门阵列和专用集成电路中的至少一个。
在一方面,提供了一种媒体处理***中的可编程设备。该可编程设备包括处理单元;以及存储器,耦合至处理单元并且存储有指令,指令在由处理单元执行时执行图形内容的解压缩处理,包括动作:通过无线链路从计算设备接收经压缩的多组块,经压缩的多组块基于用于计算设备上运行的应用的图形内容被生成;对接收到的多组块进行解压缩;以及基于经解压缩的多组块生成待显示的帧以用于在图形显示设备上显示。
在一些实现方式中,对多组块进行解压缩包括:与接收多组块并发地对多组块进行解压缩。
在一些实现方式中,第二处理单元执行多个线程,接收多组块包括使用多个线程中的第三线程来通过无线链路从计算设备接收多组块中的第三组块,以及对多组块进行解压缩包括使用多个线程中的第四线程来对接收到的第三组块进行解压缩,第四线程不同于第三线程。
在一些实现方式中,动作还包括:与使用第四线程对接收到的第三组块进行解压缩并发地,使用第三线程来通过无线链路从计算设备接收多组块中的第四组块,第四组块不同于第三组块。
在一些实现方式中,第二处理单元与可编程设备中的第二无线网络接口单元耦合,以及接收多组块包括通过无线链路经由第二无线网络接口单元从计算设备接收多组块。
在一些实现方式中,第二处理单元包括图形处理单元、现场可编程门阵列和专用集成电路中的至少一个。
在一方面,提供了一种机器可读存储介质,其中存储有机器可执行指令,机器可执行指令在设备中运行时,使得设备执行图形内容的压缩处理,包括动作:基于用于计算设备上运行的应用的图形内容生成待显示的帧;将待显示的帧分成多组块;对多组块进行压缩;以及通过无线链路向媒体处理***中的图形显示设备发送经压缩的多组块。
在一些实现方式中,第一处理单元包括多个核,生成待显示的帧包括使用多个核中的第一组核来基于图形内容生成待显示的帧,以及对多组块进行压缩包括使用多个核中的第二组核对多组块进行压缩,第二组核不同于第一组核。
在一些实现方式中,该图形内容是第一图形内容,待显示的帧是待显示的第一帧,动作还包括:与使用第二组核对多组块进行压缩并发地,使用第一组核来基于用于应用的第二图形内容生成待显示的第二帧,第二图形内容不同于第一图形内容,第二帧不同于第一帧。
在一些实现方式中,向图形显示设备发送经压缩的多组块包括:与对多组块的压缩并发地,通过无线链路向图形显示设备发送经压缩的多组块。
在一些实现方式中,第一处理单元执行多个线程,对多组块进行压缩包括使用多个线程中的第一线程,对多组块中的第一组块进行压缩,以及发送经压缩的多组块包括使用多个线程中的第二线程来通过无线链路向图形显示设备发送经压缩的第一组块,第二线程不同于第一线程。
在一些实现方式中,动作还包括:与使用第二线程发送经压缩的第一组块并发地,使用第一线程对多组块中的第二组块进行压缩,第二组块不同于第一组块。
在一些实现方式中,第一处理单元与计算设备中的第一无线网络接口单元耦合,以及发送经压缩的多组块包括通过无线链路来经由第一无线网络接口单元向图形显示设备发送经压缩的多组块。
在一些实现方式中,第一处理单元包括图形处理单元、现场可编程门阵列和专用集成电路中的至少一个。
在一方面,提供了一种机器可读存储介质,其中存储有机器可执行指令,机器可执行指令在设备中运行时,使得设备执行图形内容的解压缩处理,包括动作:通过无线链路从计算设备接收经压缩的多组块,经压缩的多组块基于用于计算设备上运行的应用的图形内容被生成;对接收到的多组块进行解压缩;以及基于经解压缩的多组块生成待显示的帧以用于在图形显示设备上显示。
在一些实现方式中,对多组块进行解压缩包括:与接收多组块并发地对多组块进行解压缩。
在一些实现方式中,第二处理单元执行多个线程,接收多组块包括使用多个线程中的第三线程来通过无线链路从计算设备接收多组块中的第三组块,以及对多组块进行解压缩包括使用多个线程中的第四线程来对接收到的第三组块进行解压缩,第四线程不同于第三线程。
在一些实现方式中,动作还包括:与使用第四线程对接收到的第三组块进行解压缩并发地,使用第三线程来通过无线链路从计算设备接收多组块中的第四组块,第四组块不同于第三组块。
在一些实现方式中,第二处理单元与可编程设备中的第二无线网络接口单元耦合,以及接收多组块包括通过无线链路经由第二无线网络接口单元从计算设备接收多组块。
在一些实现方式中,第二处理单元包括图形处理单元、现场可编程门阵列和专用集成电路中的至少一个。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本公开,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (20)
1.一种计算设备,包括:
第一处理单元;以及
存储器,耦合至所述第一处理单元并且存储有指令,所述指令在由所述第一处理单元执行时执行图形内容的压缩处理,包括动作:
基于用于所述计算设备上运行的应用的图形内容,生成待在图形显示器上显示的帧;
将待显示的帧分成多组块;
对所述多组块进行压缩以生成经压缩的多组块;以及
与对所述多组块进行压缩并发地,通过使用网络接口卡的无线链路向所述图形显示器的媒体处理***中的图形显示设备发送所述经压缩的多组块。
2.根据权利要求1所述的计算设备,其中所述第一处理单元包括多个核,并且所述动作还包括:
生成所述待显示的帧包括使用所述多个核中的第一组核来基于所述图形内容生成所述待显示的帧,并且
对所述多组块进行压缩包括使用所述多个核中的第二组核对所述多组块进行压缩,所述第二组核不同于所述第一组核。
3.根据权利要求2所述的计算设备,其中所述图形内容是第一图形内容并且所述帧是第一帧,并且所述动作还包括:
与使用所述第二组核对所述多组块进行压缩并发地,使用所述第一组核来基于用于所述应用的第二图形内容生成待显示的第二帧,所述第二图形内容不同于所述第一图形内容,所述第二帧不同于所述第一帧。
4.根据权利要求1所述的计算设备,其中所述经压缩的多组块经由在耦合到所述第一处理单元的存储器与所述网络接口卡之间建立的、无需经由主机存储器的直接链路而被发送。
5.根据权利要求4所述的计算设备,其中所述第一处理单元执行多个线程,并且
对所述多组块进行压缩包括使用所述多个线程中的第一线程,对所述多组块中的第一组块进行压缩,并且
发送所述经压缩的多组块包括使用所述多个线程中的第二线程来通过所述无线链路向所述图形显示设备发送经压缩的所述第一组块,所述第二线程不同于所述第一线程。
6.根据权利要求5所述的计算设备,其中所述动作还包括:
与使用所述第二线程发送经压缩的所述第一组块并发地,使用所述第一线程对所述多组块中的第二组块进行压缩,所述第二组块不同于所述第一组块。
7.根据权利要求1所述的计算设备,其中所述动作还包括:
建立用于所述多组块的压缩的一组并行处理管道,其中对所述多组块进行压缩包括在所述一组并行处理管道间分发所述多组块中的各组块以并发地对所述各组块进行压缩。
8.至少一种非暂态机器可读介质,其存储指令,所述指令在由第一处理单元执行时使所述第一处理单元执行操作以:
基于用于计算设备上运行的应用的图形内容,生成待在图形显示器上显示的帧;
将待显示的帧分成多组块;
对所述多组块进行压缩以生成经压缩的多组块;以及
与对所述多组块的压缩并发地,通过使用网络接口卡的无线链路向所述图形显示器的媒体处理***中的图形显示设备发送所述经压缩的多组块。
9.根据权利要求8所述的至少一种非暂态机器可读介质,其中所述第一处理单元包括多个核,并且所述指令还包括如下指令,该指令使所述第一处理单元执行操作以:
生成所述待显示的帧包括使用所述多个核中的第一组核来基于所述图形内容生成所述待显示的帧,并且
对所述多组块进行压缩包括使用所述多个核中的第二组核对所述多组块进行压缩,所述第二组核不同于所述第一组核。
10.根据权利要求9所述的至少一种非暂态机器可读介质,其中所述图形内容是第一图形内容并且所述帧是第一帧,并且所述指令还包括如下指令,该指令使所述第一处理单元执行操作以:
与使用所述第二组核对所述多组块的压缩并发地,使用所述第一组核来基于用于所述应用的第二图形内容生成待显示的第二帧,所述第二图形内容不同于所述第一图形内容,所述第二帧不同于所述第一帧。
11.根据权利要求8所述的至少一种非暂态机器可读介质,其中所述经压缩的多组块经由在耦合到所述第一处理单元的存储器与所述网络接口卡之间建立的、无需经由主机存储器的直接链路而被发送。
12.根据权利要求8所述的至少一种非暂态机器可读介质,其中所述第一处理单元执行多个线程,并且所述指令还包括如下指令,该指令使所述第一处理单元执行操作以:
对所述多组块进行压缩包括使用所述多个线程中的第一线程,对所述多组块中的第一组块进行压缩,并且
发送所述经压缩的多组块包括使用所述多个线程中的第二线程来通过所述无线链路向所述图形显示设备发送经压缩的所述第一组块,所述第二线程不同于所述第一线程。
13.根据权利要求12所述的至少一种非暂态机器可读介质,还包括如下指令,该指令使所述第一处理单元执行操作以:
与使用所述第二线程发送经压缩的所述第一组块并发地,使用所述第一线程对所述多组块中的第二组块进行压缩,所述第二组块不同于所述第一组块。
14.根据权利要求8所述的至少一种非暂态机器可读介质,还包括如下指令,该指令使所述第一处理单元执行操作以:
建立用于所述多组块的压缩的一组并行处理管道,其中用于对所述多组块进行压缩的指令包括用于在所述一组并行处理管道间分发所述多组块中的各组块以并发地对所述各组块进行压缩的指令。
15.一种方法,包括:
基于用于计算设备上运行的应用的图形内容,生成待在图形显示器上显示的帧;
将待显示的帧分成多组块;
由第一处理单元对所述多组块进行压缩以生成经压缩的多组块;以及
与对所述多组块进行压缩并发地,通过使用网络接口卡的无线链路向所述图形显示器的媒体处理***中的图形显示设备发送所述经压缩的多组块。
16.根据权利要求15所述的方法,其中所述第一处理单元包括多个核,并且其中
生成所述待显示的帧包括使用所述多个核中的第一组核来基于所述图形内容生成所述待显示的帧,并且
对所述多组块进行压缩包括使用所述多个核中的第二组核对所述多组块进行压缩,所述第二组核不同于所述第一组核。
17.根据权利要求16所述的方法,其中所述图形内容是第一图形内容并且所述帧是第一帧,并且所述方法还包括:
与使用所述第二组核对所述多组块进行压缩并发地,使用所述第一组核来基于用于所述应用的第二图形内容生成待显示的第二帧,所述第二图形内容不同于所述第一图形内容,所述第二帧不同于所述第一帧。
18.根据权利要求15所述的方法,其中所述经压缩的多组块经由在耦合到所述第一处理单元的存储器与所述网络接口卡之间建立的、无需经由主机存储器的直接链路而被发送。
19.根据权利要求15所述的方法,其中所述第一处理单元执行多个线程,并且其中
对所述多组块进行压缩包括使用所述多个线程中的第一线程,对所述多组块中的第一组块进行压缩,并且
发送所述经压缩的多组块包括使用所述多个线程中的第二线程来通过所述无线链路向所述图形显示设备发送经压缩的所述第一组块,所述第二线程不同于所述第一线程。
20.根据权利要求19所述的方法,还包括:
与使用所述第二线程发送经压缩的所述第一组块并发地,使用所述第一线程对所述多组块中的第二组块进行压缩,所述第二组块不同于所述第一组块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310883212.8A CN116774961A (zh) | 2017-08-25 | 2017-08-25 | 无线可编程媒体处理*** |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310883212.8A CN116774961A (zh) | 2017-08-25 | 2017-08-25 | 无线可编程媒体处理*** |
CN201710744954.7A CN109426473B (zh) | 2017-08-25 | 2017-08-25 | 无线可编程媒体处理*** |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710744954.7A Division CN109426473B (zh) | 2017-08-25 | 2017-08-25 | 无线可编程媒体处理*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116774961A true CN116774961A (zh) | 2023-09-19 |
Family
ID=63080514
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710744954.7A Active CN109426473B (zh) | 2017-08-25 | 2017-08-25 | 无线可编程媒体处理*** |
CN202310883212.8A Pending CN116774961A (zh) | 2017-08-25 | 2017-08-25 | 无线可编程媒体处理*** |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710744954.7A Active CN109426473B (zh) | 2017-08-25 | 2017-08-25 | 无线可编程媒体处理*** |
Country Status (4)
Country | Link |
---|---|
US (3) | US11501740B2 (zh) |
EP (1) | EP3649637A1 (zh) |
CN (2) | CN109426473B (zh) |
WO (1) | WO2019040187A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11563513B1 (en) * | 2019-09-10 | 2023-01-24 | Valve Corporation | Low-latency wireless display system |
CN113160026B (zh) * | 2020-01-07 | 2024-03-05 | 北京地平线机器人技术研发有限公司 | 图像处理方法、装置、介质以及电子设备 |
JP6823333B1 (ja) * | 2020-05-22 | 2021-02-03 | 株式会社Tvt | データ送信装置、プログラム及びシステム |
CN113852826B (zh) * | 2021-09-06 | 2024-07-02 | 歌尔科技有限公司 | 图像数据传输方法、装置及*** |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04301972A (ja) * | 1991-03-29 | 1992-10-26 | Canon Inc | 画像通信装置 |
CN101035285B (zh) * | 2007-04-13 | 2010-06-16 | 深圳市融合视讯科技有限公司 | 一种网络传输中的图像分解及还原方法 |
JP4881237B2 (ja) * | 2007-06-29 | 2012-02-22 | 株式会社東芝 | 画面転送装置およびその方法ならびに画像転送のためのプログラム |
JP4687918B2 (ja) * | 2007-07-24 | 2011-05-25 | 富士ゼロックス株式会社 | 画像処理装置及びプログラム |
US8265168B1 (en) * | 2008-02-01 | 2012-09-11 | Zenverge, Inc. | Providing trick mode for video stream transmitted over network |
US9270783B2 (en) * | 2008-12-06 | 2016-02-23 | International Business Machines Corporation | System and method for photorealistic imaging workload distribution |
US8493390B2 (en) * | 2010-12-08 | 2013-07-23 | Sony Computer Entertainment America, Inc. | Adaptive displays using gaze tracking |
JP6003049B2 (ja) * | 2011-11-30 | 2016-10-05 | 富士通株式会社 | 情報処理装置、画像送信方法及び画像送信プログラム |
US9883156B2 (en) * | 2011-11-30 | 2018-01-30 | Intel Corporation | Techniques to display multimedia data during operating system initialization |
JP2014063259A (ja) * | 2012-09-20 | 2014-04-10 | Fujitsu Ltd | 端末装置,及び処理プログラム |
US20160094849A1 (en) * | 2014-09-27 | 2016-03-31 | Intel Corporation | THERMAL THROTTLING OF WiDi VIDEO STREAM RESOLUTION |
US20160238852A1 (en) | 2015-02-13 | 2016-08-18 | Castar, Inc. | Head mounted display performing post render processing |
CN104780374B (zh) * | 2015-03-23 | 2017-11-10 | 中国科学技术大学先进技术研究院 | 一种基于亮度编码的帧缓存有损压缩方法及装置 |
US9892053B2 (en) * | 2015-03-24 | 2018-02-13 | Intel Corporation | Compaction for memory hierarchies |
EP3082017A1 (en) * | 2015-04-15 | 2016-10-19 | Thomson Licensing | Method and system for displaying additional information associated with a content via an optical head mounted display device |
CN105302294B (zh) * | 2015-09-07 | 2018-08-03 | 哈尔滨市一舍科技有限公司 | 一种交互式虚拟现实演示装置 |
US10694249B2 (en) * | 2015-09-09 | 2020-06-23 | Vantrix Corporation | Method and system for selective content processing based on a panoramic camera and a virtual-reality headset |
US10089964B2 (en) * | 2015-12-18 | 2018-10-02 | Intel Corporation | Graphics processor logic for encoding increasing or decreasing values |
US20170178276A1 (en) * | 2015-12-22 | 2017-06-22 | Intel Corporation | Clustered color compression for efficient processing of graphics data at computing devices |
US9705526B1 (en) * | 2016-03-17 | 2017-07-11 | Intel Corporation | Entropy encoding and decoding of media applications |
US10171825B1 (en) * | 2016-04-27 | 2019-01-01 | Matrox Graphics Inc. | Parallel compression of image data in a compression device |
-
2017
- 2017-08-25 CN CN201710744954.7A patent/CN109426473B/zh active Active
- 2017-08-25 CN CN202310883212.8A patent/CN116774961A/zh active Pending
-
2018
- 2018-07-03 US US16/635,628 patent/US11501740B2/en active Active
- 2018-07-03 EP EP18749663.3A patent/EP3649637A1/en not_active Withdrawn
- 2018-07-03 WO PCT/US2018/040666 patent/WO2019040187A1/en unknown
-
2022
- 2022-11-14 US US17/986,683 patent/US11893963B2/en active Active
-
2023
- 2023-12-20 US US18/389,926 patent/US20240212650A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240212650A1 (en) | 2024-06-27 |
US20230077904A1 (en) | 2023-03-16 |
WO2019040187A1 (en) | 2019-02-28 |
US11501740B2 (en) | 2022-11-15 |
EP3649637A1 (en) | 2020-05-13 |
US11893963B2 (en) | 2024-02-06 |
US20210125580A1 (en) | 2021-04-29 |
CN109426473B (zh) | 2023-07-28 |
CN109426473A (zh) | 2019-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11893963B2 (en) | Wireless programmable media processing system | |
US10229651B2 (en) | Variable refresh rate video capture and playback | |
EP3046331B1 (en) | Media control method and system based on cloud desktop | |
US9665332B2 (en) | Display controller, screen transfer device, and screen transfer method | |
WO2017000580A1 (zh) | 一种媒体内容渲染的方法、用户设备及*** | |
JP6322834B2 (ja) | ビデオチャットデータプロセッシング | |
WO2013140334A2 (en) | Method and system for streaming video | |
US20140108940A1 (en) | Method and system of remote communication over a network | |
JP2008526107A (ja) | リモートコンピューティングにおけるグラフィクスプロセッサの使用 | |
KR20140044840A (ko) | 변경된 영역들을 이용한 매체 인코딩 | |
Zhong et al. | On building a programmable wireless high-quality virtual reality system using commodity hardware | |
CN104012059A (zh) | 协处理器之间的直接链路同步通信 | |
US9558718B2 (en) | Streaming video data in the graphics domain | |
US9454792B2 (en) | Device, system and method for transferring network data | |
US20120113103A1 (en) | Apparatus and method for executing 3d application program using remote rendering | |
US10785512B2 (en) | Generalized low latency user interaction with video on a diversity of transports | |
US20240029376A1 (en) | Spatial foveated streaming -media distribution for extended reality devices | |
US9888250B2 (en) | Techniques for image bitstream processing | |
JP2018534648A (ja) | グラフィカルコマンドトークンの修正 | |
US20170048532A1 (en) | Processing encoded bitstreams to improve memory utilization | |
US10025550B2 (en) | Fast keyboard for screen mirroring | |
Pańka et al. | Visualization of multidimensional data on distributed mobile devices using interactive video streaming techniques | |
WO2023093474A1 (zh) | 一种多媒体处理方法、装置、设备及介质 | |
TWI539795B (zh) | 使用變化區域的媒體編碼 | |
WO2023191710A1 (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 |