DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Amendment
This action is in response to the amendment filed on 3rd March, 2026. Claims 1-11, 13, and 15-20 have been amended. Claims 12 and 14 has/have been cancelled. Claims 21-22 have been added. Claims 1-11, 13, and 15-22 remain rejected in the application. Applicant's amendments to the claims have overcome each and every objection previously set forth in the non-final office action mailed 3rd December, 2025.
Response to Arguments
Applicant's arguments with respect to Claims 1 and 16-17 filed on 3rd March, 2026, with respect to the rejection under 35 U.S.C. § 103, regarding that the prior art does not teach the limitation(s): "allocating, at the server and based on the first start instruction, a first cloud application client of the plurality of cloud application clients, wherein the first cloud application client executes in the first virtual machine" and "isolating, using a first data collection component in the first cloud application client, data transmission processes of first cloud application client from the plurality of cloud application clients" have been fully considered, but are moot because of new grounds for rejection. It has now been taught by the combination of Zhang and Laan.
Regarding arguments to Claims 2-11, 13, 15, and 18-22, they directly/indirectly depend on independent Claims 1 and 16-17 respectively. Applicant does not argue anything other than independent Claims 1 and 16-17. The limitations in those claims, in conjunction with combination, was previously established as explained.
Claim Objections
Claims 3, 5, and 15 are objected to because of the following informalities:
Claim 3 recites the limitation(s): "the data attribute information corresponds the first terminal" on PG(s). 3, Line(s) 8-10; examiner suggests amending this to "the data attribute information corresponds to the first terminal";
Claim 5 recites the limitation(s): "the fence object configured to monitor a data status" on PG(s). 4, Line(s) 4-5; examiner suggests amending this to "the fence object is configured to monitor a data status"; and
Claim 15 recites the limitation(s): "second application data stream of between the second cloud application client" on PG(s). 6, Line(s) 4-6; examiner suggests amending this to "second application data stream between the second cloud application client".Appropriate correction is required.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-2, 4, 7-11, 15-18, and 20-21 are rejected under 35 U.S.C. 103 as being unpatentable over Zhang et al. (US 20220130096 A1, previously cited), hereinafter referenced as Zhang, in view of van der Laan et al. (US 20150321098 A1, previously cited), hereinafter referenced as Laan.
Regarding Claim 1, Zhang discloses a method (Zhang, [0017]: teaches a method for optimizing an application in a server-side hosted environment), comprising:
instantiating a plurality of cloud application clients on a first virtual machine on a server (Zhang, [0028]: teaches a cloud application platform 102 <read on server> allocating a virtual container 210 <read on first virtual machine> that includes application 214 <read on instantiate cloud application client> as shown in FIG. 2; Note: it should be noted that although FIG. 2 depicts a single application 214 on a single server-side hosted environment 212, multiple applications 214 <read on plurality of cloud application clients> may execute; additionally, more than one virtual container can be instantiated);
PNG
media_image1.png
392
430
media_image1.png
Greyscale
receiving, at the server and from a first terminal, a first start instruction to start a cloud application client (Zhang, [0036]: teaches "an application provisioning request <read on first start instruction> may be a request to create the necessary resources (such as an instance of a virtual container 210, server-side hosted environment 212, and/or application 214) to start an application 214 <read on cloud application client> such that a user may interact with the application 214 via a remote device 106 <read on first terminal>," where the cloud application platform 102 receives said request);
allocating, at the server and based on the first start instruction, a first cloud application client of the plurality of cloud application clients (Zhang, [0036]: teaches cloud application platform 102 <read on server> dynamically provision instances <read on plurality of cloud application clients> of resources necessary to execute application 214 <read on first cloud application client>, which is done in response to a user requesting access to application 214 via an application provisioning request <read on first start instruction>), wherein
the first cloud application client executes in the first virtual machine (Zhang, [0038]: teaches cloud application platform 102 provisioning multiple instances of virtual containers <read on first virtual machine>, where different instances of application 214 is executed for multiple users such that each application instance is isolated so that data in one application 214, server-side hosted environment 212, and/or virtual container does not leak into other instances of those structures);
isolating, using a first data collection component in the first cloud application client, data transmission processes of first cloud application client from the plurality of cloud application clients (Zhang, [0028]: teaches virtual container 214 being configured to provide security and isolation among different applications 214 such that one application 214a <read on first cloud application client> is isolated from another 214n, meaning that application processes <read on data transmission processes> cannot communicate with each other directly; [0044]: teaches the cloud application platform 102 providing application 214 access to GPU 206 <read on first data collection component> to process graphics data, where the OS virtualization layer 208 provides a dedicated GPU 206 for a particular virtual container 210);
rendering, by the first cloud application client and in a first rendering buffer of the first cloud application client, first image data (Zhang, [0045]: teaches the cloud application platform 102 rendering graphics data <read on first image data> with GPU 206, where the rendered graphics data is stored in shared memory 404 <read on first rendering buffer> as shown in FIG. 4; [0044]: teaches the OS virtualization layer 208 actively rerouting calls to use the GPU from application 214 <read on first cloud application client> to the GPU 206 of the cloud application platform 102 (rather than a local GPU in the applications 214 native executing environment));
PNG
media_image2.png
389
451
media_image2.png
Greyscale
capturing, from the first rendering buffer, the first image data (Zhang, FIG. 4 teaches shared memory 404 <read on first rendering buffer> of GPU 206 receiving rendered graphics 410 <read on first image data>);
sending a first application data stream of [[audio/]]video data from the first cloud application client to the first terminal (Zhang, [0042]: teaches remote device 106 <read on first terminal> receiving transmitted encoded graphics <read on video data> (i.e., artificial reality content <read on first application data stream>) from cloud application platform 102, which includes virtual container 210 <read on first cloud application client>; Note: it should be noted that it is commonly known in the art that GPU hardware receives both video and audio data), wherein
the first application data stream is sent through the first data collection component (Zhang, [0048]: teaches sending the encoded graphics and audio (i.e., artificial-reality content <read on first application data stream>) to remote device 106 after being processed (i.e., rendered and encoded) through GPU 206 <read on first data collection component>; [0055]: teaches artificial-reality content includes video and audio data; Note: it should be noted that the data collection component is being interpreted as collecting video and audio data), and
[[the audio/video data is based on the first image data and first audio data;]]
causing, by the first cloud application client and based on the first application data stream, the audio/video data to be outputted at the first terminal (Zhang, [0042]: teaches remote device 106 <read on first terminal> receiving transmitted <read on outputted> encoded graphics and audio <read on audio/video data> (i.e., artificial reality content <read on first application data stream>) from cloud application platform 102, which includes virtual container 210 <read on first cloud application client>);
receiving, from the first terminal and at a first operation processing component of the first cloud application client on the server, object operation data (Zhang, [0045]: teaches application 214 running in a server-side hosted environment 212 <read on first operation processing component>; [0041]: teaches a user interacting with application 214 through remote device 106 by inputting commands <read on object operation data> into remote device 106, where in response to receiving user commands, application 214 provides encoded graphics for display; Note: it should be noted that Paragraph [0065] of the Specification defines object operation data as input event data, which is an operation instruction inputted by a user); and
executing, by the first operation processing component and in the first cloud application client, the object operation data (Zhang, [0041]: teaches a user interacting with application 214, which is within server-side hosted environment 212 <read on first operation processing component>, through remote device 106 by inputting commands <read on object operation data> into remote device 106, where in response to receiving user commands, application 214 executes said commands and provides encoded graphics for display).
However, Zhang does not expressly disclose
sending a first application data stream of audio/video data from the first cloud application client to the first terminal; and
the audio/video data is based on the first image data and first audio data.
Laan discloses
sending a first application data stream of audio/video data from the first cloud application client to the first terminal (Laan, [0147]: teaches video compressor 404 <read on first cloud application client> capturing a video frame and audio generated from server 402, where the video compressor 404 compresses the video (frame) and audio data into packets <read on audio/video data> as a video stream <read on first application data stream> before being sent to a user client 415 <read on first terminal>); and
the audio/video data is based on the first image data and first audio data (Laan, [0147]: teaches video compressor 404 capturing a video frame <read on first image data> and audio <read on first audio data> generated from server 402, where the video compressor 404 compresses the video (frame) and audio data into packets <read on audio/video data> as a video stream <read on first application data stream> before being sent to a user client 415).
Laan is analogous art with respect to Zhang because they are from the same field of endeavor, namely cloud-based data streaming. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to have client devices include video and audio decompressor components as taught by Laan into the teaching of Zhang. The suggestion for doing so would allow the system to unpack compressed video stream data, including audio and video data, thereby saving bandwidth and improving video streaming efficiency. Therefore, it would have been obvious to combine Laan with Zhang.
Regarding Claim 16, it recites the limitations that are similar in scope to Claim 1, but in an apparatus. As shown in the rejection, the combination of Zhang and Laan discloses the limitations of Claim 1. Additionally, Zhang discloses an apparatus (Zhang, [0097]: teaches a system <read on apparatus>), comprising:
one or more processors (Zhang, [0097]: teaches a system that includes a GPU, at least one physical processor, and physical memory including computer-executable instructions for the physical processor to execute and perform); and
memory storing instructions that, when executed by the one or more processors, cause the apparatus to (Zhang, [0097]: teaches a system that includes a GPU, at least one physical processor, and physical memory including computer-executable instructions for the physical processor to execute and perform):…
Thus, Claim 16 is met by Zhang according to the mapping presented in the rejection of Claim 1, given the method corresponds to an apparatus.
Regarding Claim 17, it recites the limitations that are similar in scope to Claim 1, but in a non-transitory computer-readable medium. As shown in the rejection, the combination of Zhang and Laan discloses the limitations of Claim 1. Additionally, Zhang discloses a non-transitory computer-readable medium storing computer instructions that, when executed by one or more processors, cause the one or more processors to perform actions (Zhang, [0097]: teaches a system that includes a GPU, at least one physical processor, and physical memory <read on non-transitory computer-readable medium> including computer-executable instructions for the physical processor to execute and perform <read on actions>) comprising:…
Thus, Claim 17 is met by Zhang according to the mapping presented in the rejection of Claim 1, given the method corresponds to a non-transitory computer-readable medium.
Regarding Claims 2 and 18, the combination of Zhang and Laan discloses the method and the non-transitory computer-readable medium of Claims 1 and 17 respectively. Additionally, Zhang further discloses wherein:
the first data collection component further comprises a first rendering capturing component (Zhang, FIG. 4 teaches GPU of a respective virtual container 206 storing rendered graphics 408 in shared memory 404 <read on first rendering capturing component>; Note: it should be noted that the rendering capturing component is being interpreted as a form of storage; additionally, the first rendering capturing component and the first rendering buffer are being interpreted as identical terms); and wherein
the first rendering capturing component captures the first image data (Zhang, FIG. 4 teaches shared memory 404 <read on first rendering capturing component> storing rendered graphics data 408 <read on first image data>).
Regarding Claim 4, the combination of Zhang and Laan discloses the method of Claim 1. Zhang does not expressly disclose the limitations of Claim 4; however, Laan discloses wherein sending the first data application stream further comprises:
sending the first image data and the first audio data to a first data compression component (Laan, FIG. 4A teaches a Storage Area Network (SAN) 403 outputting video <read on first image data> and audio data <read on first audio data> from server 402 to video compressor 404 <read on first data compression component>; [0117]: teaches the video compression logic 404 including logic for compressing audio);
PNG
media_image3.png
345
481
media_image3.png
Greyscale
processing, by the first data compression component, the first image and first audio data to obtain the audio/video data (Laan, [0118]: teaches the video <read on first image data> and audio data <read on first audio data> being compressed by video compression logic 404 <read on first data compression component>, where the compressed video stream <read on obtained audio/video data> is then sent to client device 415 over the internet 410); and
sending, through the first data collection component, the audio/video data to the first terminal (Laan, [0147]: teaches video compressor 404 <read on first data collection component> capturing a video frame and audio generated from server 402, where the video compressor 404 compresses the video (frame) and audio data into packets <read on audio/video data> as a video stream before being sent to a user client 415 <read on first terminal>), wherein
the first terminal performs decompression processing on the audio/video data to obtain decompressed audio/video data (Laan, FIG. 4E teaches client device 475 <read on first terminal> including video decompressor 486 and audio decompressor 488 <read on perform decompression processing> that processes video and audio data to video output 487 and audio output 489 <read on obtain decompressed video/audio data>) and
PNG
media_image4.png
347
486
media_image4.png
Greyscale
outputs the decompressed audio/video data (Laan, FIG. 4E teaches the decompressed video output 487 and the decompressed audio output 489 being sent to HDMI 490 for display output).
Laan is analogous art with respect to Zhang because they are from the same field of endeavor, namely cloud-based data streaming. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to have client devices include video and audio decompressor components as taught by Laan into the teaching of Zhang. The suggestion for doing so would allow the system to unpack compressed video stream data, including audio and video data, thereby saving bandwidth and improving video streaming efficiency. Therefore, it would have been obvious to combine Laan with Zhang.
Regarding Claims 7 and 20, the combination of Zhang and Laan discloses the method and the non-transitory computer-readable medium of Claims 1 and 18 respectively. Additionally, Zhang further discloses wherein sending the first application data stream further comprises:
obtaining, via a first rendering capturing component, image data from a first rendering buffer corresponding to the first cloud application client (Zhang, FIG. 4 teaches GPU 206 of its respective virtual container 210 <read on first cloud application client> accessing rendered graphics 412 from shared memory 404 <read on rendering buffer> and going through an encoding stage <read on first rendering capturing component> to obtain encoded rendered graphics 414 <read on image data>);
[[obtaining, via the first rendering capturing component, audio data corresponding to the image data from a first audio buffer corresponding to the first cloud application client; and]]
sending, to the first terminal and from the first cloud application client, audio/video data (Zhang, [0042]: teaches remote device 106 displaying the received encoded graphics <read on video data> and audio <read on audio data>).
However, Zhang does not expressly disclose
obtaining, via the first rendering capturing component, audio data corresponding to the image data from a first audio buffer corresponding to the first cloud application client.
Laan discloses
obtaining, via the first rendering capturing component, audio data corresponding to the image data from a first audio buffer corresponding to the first cloud application client (Laan, [0244]: teaches the app/game server 1521-1525 <read on first cloud application client> acquiring video/audio feeds from a delay buffer 1515 <read on audio buffer>; Note: it should be noted that the video and audio buffers are being interpreted as being a single buffer component).
Laan is analogous art with respect to Zhang because they are from the same field of endeavor, namely cloud-based data streaming. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to have client devices include video and audio decompressor components as taught by Laan into the teaching of Zhang. The suggestion for doing so would allow the system to unpack compressed video stream data, including audio and video data, thereby saving bandwidth and improving video streaming efficiency. Therefore, it would have been obvious to combine Laan with Zhang.
Regarding Claim 8, the combination of Zhang and Laan discloses the method of Claim 7. Additionally, Zhang further discloses wherein the first rendering buffer is configured to
store an image rendered in the first cloud application client (Zhang, FIG. 3 teaches step 340, which stores the rendered graphics <read on rendered image> in shared memory <read on rendering buffer> of the GPU).
PNG
media_image5.png
673
433
media_image5.png
Greyscale
Regarding Claim 9, the combination of Zhang and Laan discloses the method of Claim 7. Additionally, Zhang further discloses wherein the first audio buffer is configured to
store audio generated in the first cloud application client (Zhang, [0069]: teaches controller 625 populating an audio data set <read on generated audio> with information <read on audio buffer>; Note: it should be noted that it is common in the art to use some form of storage for audio processing, which includes an audio buffer).
Regarding Claim 10, the combination of Zhang and Laan discloses the method of Claim 1. Additionally, Zhang further discloses
rendering display data in the first cloud application client to obtain image data corresponding to the first cloud application client (Zhang, FIG. 4 teaches GPU 206 of its respective virtual container 210 and application 214 <read on first cloud application client> accessing rendered graphics 412 from shared memory 404 and going through an encoding stage to obtain encoded rendered graphics 414 <read on image data>), and
storing the image data into a first rendering buffer (Zhang, FIG. 3 teaches step 340, which stores the rendered graphics <read on image data> in shared memory <read on first rendering buffer> of the GPU).
Regarding Claim 11, the combination of Zhang and Laan discloses the method of Claim 10. Additionally, Zhang further discloses
calling, by the first cloud application client, a rendering interface provided by a graphics processing unit (GPU) driver in the server (Zhang, [0045]: teaches the cloud application platform 102 <read on server> rendering <read on process> graphics data with GPU 206 from render 406 <read on rendering interface> with respect to its associated virtual container 210 and application 214 <read on first cloud application client>; Note: it should be noted that a GPUs require GPU drivers to function properly).
Regarding Claim 15, the combination of Zhang and Laan discloses the method of Claim 1. Additionally, Zhang further discloses
allocating, based on receipt of a second start instruction from a second terminal, a second cloud application client in the plurality of cloud application clients (Zhang, [0036]: teaches cloud application platform 102 dynamically provision instances <read on plurality of cloud application clients> of resources necessary to execute application 214 <read on second cloud application client>, which is done in response to a user requesting access to application 214 via an application provisioning request <read on second start instruction> from remote device 106 <read on second terminal>), wherein
the second cloud application client executes in the first virtual machine (Zhang, [0038]: teaches cloud application platform 102 provisioning multiple instances of virtual containers <read on first virtual machine>, where different instances of application 214 is executed for multiple users such that each application instance is isolated so that data in one application 214, server-side hosted environment 212, and/or virtual container does not leak into other instances of those structures; Note: it should be noted that although FIG. 2 depicts a single application 214 on a single server-side hosted environment 212, multiple applications 214 <read on second cloud application client> may execute, which is being interpreted as multiple applications being executable from the same virtual machine); and
sending a second application data stream of between the second cloud application client and the second terminal through a second data collection component in the second cloud application client (Zhang, [0042]: teaches remote device 106 <read on second terminal> receiving transmitted encoded graphics and audio <read on second application data stream of audio/video data> from cloud application platform 102, which includes virtual container 210 <read on second cloud application client>; [0044]: teaches the cloud application platform 102 providing application 214 access to GPU 206 <read on second data collection component> to process graphics data, where the OS virtualization layer 208 provides a dedicated GPU 206 for a particular virtual container 210).
Regarding Claim 21, the combination of Zhang and Laan discloses the apparatus of Claim 16. Zhang does not expressly disclose the limitations of Claim 21; however, Laan discloses wherein the first cloud application client
generates the first audio data (Laan, [0147]: teaches captured generated audio), and wherein
the instructions, when executed by the one or more processors, further cause the apparatus to:capture, by the first data collection component and as part of the first application data stream, the first audio data (Laan, [0147]: teaches video compressor 404 <read on first data collection component> capturing a video frame and audio generated from server 402, where the video compressor 404 compresses the video (frame) and audio data <read on captured first audio data> into packets as a video stream <read on first application data stream> before being sent to a user client 415).
Laan is analogous art with respect to Zhang because they are from the same field of endeavor, namely cloud-based data streaming. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to have client devices include video and audio decompressor components as taught by Laan into the teaching of Zhang. The suggestion for doing so would allow the system to unpack compressed video stream data, including audio and video data, thereby saving bandwidth and improving video streaming efficiency. Therefore, it would have been obvious to combine Laan with Zhang.
Claims 3, 5-6, 19, and 22 are rejected under 35 U.S.C. 103 as being unpatentable over Zhang et al. (US 20220130096 A1, previously cited), hereinafter referenced as Zhang, in view of van der Laan et al. (US 20150321098 A1, previously cited), hereinafter referenced as Laan as applied to Claims 2, 16, and 18 above respectively, and further in view of Long et al. (US 20210312585 A1, previously cited), hereinafter referenced as Long.
Regarding Claims 3 and 19, the combination of Zhang and Laan discloses the method and the non-transitory computer-readable medium of Claims 2 and 18 respectively. The combination of Zhang and Laan does not expressly disclose the limitations of Claims 3 and 19; however, Long discloses
determining data attribute information of the first rendering buffer (Long, [0307]: teaches client 2202 specifying the client unit of graphics device that processes command data, where "a graphics processor command parser examines the client field of each command to condition the further processing of the command and route the command data to the appropriate client unit" and return the corresponding buffer state <read on first rendering buffer> as shown in FIG. 22B), wherein
PNG
media_image6.png
458
410
media_image6.png
Greyscale
the data attribute information corresponds the first terminal (Long, FIG. 22A teaches client 2202 <read on data attribute information> specifying the client unit of the graphics device <read on corresponding first terminal> that will process the command data);
PNG
media_image7.png
82
392
media_image7.png
Greyscale
creating a first texture resource object in the first rendering capturing component based on the data attribute information (Long, [0085]: teaches execution resources 256A-256D sharing an instruction cache 354 and shared memory 353, as well as multiple instances of a texture <read on first texture resource object> and/or data cache memory 358A-358B); and
encapsulating the first image data in the first rendering buffer into the first texture resource object (Long, [0066]: teaches a raster operations unit (ROP) 226 including compression logic to compress <read on encapsulate> depth or color data <read on first image data> that is written to memory <read on first rendering buffer>).
Long is analogous art with respect to Zhang, in view of Laan because they are from the same field of endeavor, namely generating cloud-based application instances for client devices. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to have the system perform texture operations for multiple instances of texture data in cache memory as taught by Long into the teaching of Zhang, in view of Laan. The suggestion for doing so would allow for a single texture data to be referenced by multiple client instances, thereby yielding predictable results. Therefore, it would have been obvious to combine Long with Zhang, in view of Laan.
Regarding Claim 5, the combination of Zhang and Laan discloses the method of Claim 4. The combination of Zhang and Laan does not expressly disclose the limitations of Claim 5; however, Long discloses wherein
the first image data is located in a first texture resource object (Long, [0343]: teaches image <read on first image data> and texture data <read on first texture resource object> being stored in memory; Note: it should be noted that it is being interpreted that the texture data is based on the image data), wherein
the first texture resource object is shared by the plurality of cloud application clients (Long, [0356]: teaches sharing GPU buffers mapped by the graphics data, such as texture data <read on first texture resource object>, across different processes corresponding to different instances <read on plurality of cloud application clients>); and
the first rendering capturing component further comprises a fence object (Long, [0356]: teaches sharing GPU buffers <read on first rendering capturing component> mapped by the graphics data across different processes corresponding to different instances using a global resource handle <read on fence object> and DirectX OpenSharedResource() function call), wherein
the fence object configured to monitor a data status in the first texture resource object (Long, [0356]: teaches sharing GPU buffers mapped by the graphics data, such as texture data <read on first texture resource object>, across different processes corresponding to different instances using a global resource handle <read on fence object> and DirectX OpenSharedResource() function call, where buffers mapped by other graphics data are compared with existing buffers <read on monitoring data status> for memory space optimization across said different instances).
Long is analogous art with respect to Zhang, in view of Laan because they are from the same field of endeavor, namely generating cloud-based application instances for client devices. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to have the system perform texture operations for multiple instances of texture data in cache memory as taught by Long into the teaching of Zhang, in view of Laan. The suggestion for doing so would allow for a single texture data to be referenced by multiple client instances, thereby yielding predictable results. Therefore, it would have been obvious to combine Long with Zhang, in view of Laan.
Regarding Claim 6, the combination of Zhang, Laan, and Long discloses the method of Claim 5. Zhang does not expressly disclose the limitations of Claim 6; however, Laan discloses
[[setting the first texture resource object as a shared texture resource;]]
[[setting the first fence object as a shared fence;]]
[[importing the shared texture resource and the shared fence into]] the first data compression component (Laan, FIG. 4A teaches a Storage Area Network (SAN) 403 outputting video and audio data from server 402 to video compressor 404 <read on first data compression component>);
sending a signal to the first data compression component (Laan, [0066]: teaches a raster operations unit (ROP) 226 including compression logic <read on first data compression component> for performing compression operations <read on send signal> on depth or color data); and
[[determining image data corresponding to the shared texture resource in the first data compression component based on the signal;]]
determining the audio data in the first rendering capturing component (Laan, [0210]: teaches the hosting service 210 assessing the quality of the communication channel with client device 415 to determine whether to use FEC on the video/audio data and user commands); and
compressing the audio data and the image data (Laan, [0118]: teaches the video and audio data being compressed by video compression logic 404).
Laan is analogous art with respect to Zhang because they are from the same field of endeavor, namely cloud-based data streaming. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to have client devices include video and audio decompressor components as taught by Laan into the teaching of Zhang. The suggestion for doing so would allow the system to unpack compressed video stream data, including audio and video data, thereby saving bandwidth and improving video streaming efficiency. Therefore, it would have been obvious to combine Laan with Zhang.
However, the combination of Zhang and Laan does not expressly disclose
setting the first texture resource object as a shared texture resource;
setting the first fence object as a shared fence;
importing the shared texture resource and the shared fence into the first data compression component; and
determining image data corresponding to the shared texture resource in the first data compression component based on the signal.
Long discloses
setting the first texture resource object as a shared texture resource (Long, [0081]: teaches cache memory 272 being used as data cache to cache texture data <read on setting first texture resource object as shared texture resource> that is communicated between functional units and texture unit 236);
setting the first fence object as a shared fence (Long, [0356]: teaches sharing GPU buffers mapped by the graphics data across different processes corresponding to different instances using a global resource handle and DirectX OpenSharedResource() function call <read on setting first fence object as shared fence>; Note: it should be noted that a shared fence is created through a Windows Display Driver Model (WDDM), which include CreateSharedHandle() and OpenSharedResource() method calls);
importing the shared texture resource and the shared fence into the first data compression component (Long, [0356]: teaches sharing GPU buffers mapped by the graphics data <read on importing shared texture resource> across different processes corresponding to different instances <read on first cloud application client> using a global resource handle and DirectX OpenSharedResource() function call <read on importing shared fence>); and
determining image data corresponding to the shared texture resource in the first data compression component based on the signal (Long, [0067]: teaches the ROP 226 processing read and write requests of graphics data <read on determining image data> between L2 cache 221 and memory crossbar 216 as shown in FIG. 2B).
PNG
media_image8.png
522
362
media_image8.png
Greyscale
Long is analogous art with respect to Zhang, in view of Laan because they are from the same field of endeavor, namely generating cloud-based application instances for client devices. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to have the system perform texture operations for multiple instances of texture data in cache memory as taught by Long into the teaching of Zhang, in view of Laan. The suggestion for doing so would allow for a single texture data to be referenced by multiple client instances, thereby yielding predictable results. Therefore, it would have been obvious to combine Long with Zhang, in view of Laan.
Regarding Claim 22, the combination of Zhang and Laan discloses the apparatus of Claim 16. Zhang does not expressly disclose the limitations of Claim 22; however, Laan discloses wherein the instructions, when executed by the one or more processors, further cause the apparatus to send the first application data stream by:
[[setting a first texture resource object as a shared texture resource in the plurality of cloud application clients;]]
[[setting a fence object as a shared fence in the plurality of cloud application clients;]]
[[importing the shared texture resource and the shared fence into]] a first data compression component in the first cloud application client (Laan, FIG. 4A teaches a Storage Area Network (SAN) 403 outputting video and audio data from server 402 <read on first cloud application client> to video compressor 404 <read on first data compression component>);
sending a signal to the first data compression component (Laan, [0066]: teaches a raster operations unit (ROP) 226 including compression logic <read on first data compression component> for performing compression operations <read on send signal> on depth or color data);
[[determining image data corresponding to the shared texture resource in the first data compression component based on the signal;]]
determining the audio data in the first rendering capturing component (Laan, [0210]: teaches the hosting service 210 assessing the quality of the communication channel with client device 415 to determine whether to use FEC on the video/audio data and user commands);
compressing the audio data and the image data (Laan, [0118]: teaches the video and audio data being compressed by video compression logic 404); and
sending the audio data and the image data in the first application data stream (Laan, [0147]: teaches compressing the video and audio data via packets <read on first application data stream> before sending it to the user's client device 415).
Laan is analogous art with respect to Zhang because they are from the same field of endeavor, namely cloud-based data streaming. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to have client devices include video and audio decompressor components as taught by Laan into the teaching of Zhang. The suggestion for doing so would allow the system to unpack compressed video stream data, including audio and video data, thereby saving bandwidth and improving video streaming efficiency. Therefore, it would have been obvious to combine Laan with Zhang.
However, the combination of Zhang and Laan does not expressly disclose
setting a first texture resource object as a shared texture resource in the plurality of cloud application clients;
setting a fence object as a shared fence in the plurality of cloud application clients;
importing the shared texture resource and the shared fence into a first data compression component in the first cloud application client; and
determining image data corresponding to the shared texture resource in the first data compression component based on the signal.
Long discloses
setting a first texture resource object as a shared texture resource in the plurality of cloud application clients (Long, [0081]: teaches cache memory 272 being used as data cache to cache texture data <read on setting first texture resource object as shared texture resource> that is communicated between functional units and texture unit 236);
setting a fence object as a shared fence in the plurality of cloud application clients (Long, [0356]: teaches sharing GPU buffers mapped by the graphics data across different processes corresponding to different instances using a global resource handle and DirectX OpenSharedResource() function call <read on setting first fence object as shared fence>; Note: it should be noted that a shared fence is created through a Windows Display Driver Model (WDDM), which include CreateSharedHandle() and OpenSharedResource() method calls);
importing the shared texture resource and the shared fence into a first data compression component in the first cloud application client (Long, [0356]: teaches sharing GPU buffers mapped by the graphics data <read on importing shared texture resource> across different processes corresponding to different instances <read on first cloud application client> using a global resource handle and DirectX OpenSharedResource() function call <read on importing shared fence>); and
determining image data corresponding to the shared texture resource in the first data compression component based on the signal (Long, [0067]: teaches the ROP 226 processing read and write requests of graphics data <read on determining image data> between L2 cache 221 and memory crossbar 216 as shown in FIG. 2B).
Long is analogous art with respect to Zhang, in view of Laan because they are from the same field of endeavor, namely generating cloud-based application instances for client devices. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to have the system perform texture operations for multiple instances of texture data in cache memory as taught by Long into the teaching of Zhang, in view of Laan. The suggestion for doing so would allow for a single texture data to be referenced by multiple client instances, thereby yielding predictable results. Therefore, it would have been obvious to combine Long with Zhang, in view of Laan.
Claim 13 is rejected under 35 U.S.C. 103 as being unpatentable over Zhang et al. (US 20220130096 A1, previously cited), hereinafter referenced as Zhang, in view of van der Laan et al. (US 20150321098 A1, previously cited), hereinafter referenced as Laan as applied to Claim 1 above respectively, and further in view of Zou (US 20150142747 A1).
Regarding Claim 13, the combination of Zhang and Laan discloses the method of Claim 1. Additionally, Zhang further discloses wherein the first start instruction further comprises
[[application identification information, and wherein]]
allocating the first cloud application client is further based on [[application identification information in]] the first start instruction (Zhang, [0036]: teaches cloud application platform 102 dynamically provision instances of resources necessary to execute application 214 <read on first cloud application client>, which is done in response to a user requesting access to application 214 via an application provisioning request <read on first start instruction>).
However, the combination of Zhang and Laan does not expressly disclose
application identification information, and wherein
allocating the first cloud application client is further based on application identification information in the first start instruction.
Zou discloses
application identification information (Zou, [0068]: teaches a snapshot creation request for an application carries an identifier <read on application identification information> of the application, so that the cloud operation server 101 can determine a plurality of virtual machine instances that are running the application), and wherein
allocating the first cloud application client is further based on application identification information in the first start instruction (Zou, [0068]: teaches a snapshot creation request for an application carries an identifier <read on application identification information> of the application, so that the cloud operation server 101 can determine a plurality of virtual machine instances that are running the application to take snapshots to backup session data).
Zou is analogous art with respect to Zhang, in view of Laan because they are from the same field of endeavor, namely deploying virtual machine instances for cloud computing applications. Before the effective filing date of the claimed invention, it would have been obvious to a person of ordinary skill in the art to have cloud applications carry an identifier as taught by Zou into the teaching of Zhang, in view of Laan. The suggestion for doing so would allow the virtual machine to take consistent snapshots of the current session to backup data in the event of power or data loss, thereby preserving data integrity and improving the overall user experience. Therefore, it would have been obvious to combine Zou with Zhang, in view of Laan.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Huang et al. (US 20200105047 A1) discloses virtual view broadcasters and a broadcaster for a cloud-based computer application;
Padala et al. (US 20200089521 A1) discloses autoscaling a multi-tier application that has components executing on a plurality of tiers of a virtual data center;
van Welzen et al. (US 20220331702 A1) discloses applications being executed on remote computing devices for compositing and broadcasting gameplay with video and audio data;
Yang et al. (US 20210316213 A1) discloses providing a streamlining video by an application program; and
Zhu et al. (US 20180041557 A1) discloses cloud application servers and clients for mobile client devices.
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to KARL TRUONG whose telephone number is (703)756-5915. The examiner can normally be reached 10:30 AM - 7:30 PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Kent Chang can be reached at (571) 272-7667. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/K.D.T./Examiner, Art Unit 2614
/KENT W CHANG/Supervisory Patent Examiner, Art Unit 2614