DETAILED ACTION
This Action is in response to Application Number 18791331 received on 7/31/2024.
Claims 1-28 are presented for examination.
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 .
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
Claim(s) 1-28 are rejected under 35 U.S.C. 103 as being unpatentable over Ye et al. (US 20180270531) in view of Jain (US 20110320520).
Regarding claim 1, Ye disclosed an apparatus for computer processing at a client device, comprising:
memory; and at least one processor coupled to the memory (Ye, Fig. 5, 502, 503, [0022], [0074]-[0078]) and configured to:
obtain an indication of at least one of a quality, latency, or capacity of a communication link for communication between the client device and a server (Ye, [0050], "The edge resource 115 receives a wireless link condition indication from the UE requesting or receiving the VR content", in which the “wireless link condition indication” may include "an available bandwidth at the UE 120 or a latency characteristic of the wireless link”, and in addition, may also include “Quality of Service (QoS) information, a Channel Quality Indicator (CQI) information, a Channel Quality Measurement (CQM) information, a Channel State Information (CSI), a signal strength information, a channel aggregation information, a level of packet failure/re-transmission information, a signal-to-noise (SNR) information, or an interference information”; See also [0053] for additional condition indications; [0057], “The movement module 230 and the wireless link condition module 220 report the UE status data (e.g., data indicating the current or expected head movement and the wireless link condition) to the edge resource 115”; [0070], “The communication conditions may be determined at the UE, at 220, and reported to the CAE as indicated at 240.”);
determine a computational load at the client device for a computation of an application, wherein the computation of the application is associated with at least one of the client device or the server (Ye, [0071], “The CAE 116 may also optionally adapt a resolution of the VR content based on the network condition information.”; [0072], “ At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example”; Determining which of the client and server should perform particular rendering of resource intensive operations includes determining a computational load of the application computation that the client should perform, and a computational load of the application computation that the server should perform); and
wherein the client device performs a first client level of the computation of the application (Ye, [0072], “ At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160… the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example“; [0073], “the network condition may be monitored continuously, and cause an interrupt to the CAE 116 to determine the proper adaptation of the VR content based on the network condition and on the FOV”; As such, the network conditions specified in the wireless condition indication, which include quality, latency, and capacity of the communication link, directly affect how the Edge Resource adapts/renders the VR content, thereby changing the computational distribution between the client device and the server; See also [0040], Ye disclosed, “The edge resources 115 can perform content adaption according to a wireless link condition indication”; See [0038], “content adaptation is that action of transforming content to adapt to device capabilities”).
While Ye disclosed the client performing a first client level of the computation of the application, Ye did not explicitly disclose the client performing this first client level of computation of the application if the determined computational load at the client device for the computation of the application is less than a computational load threshold.
In an analogous art, Jain disclosed wherein the client device performs a first client level of the computation of the application if the determined computational load at the client device for the computation of the application is less than a computational load threshold (Jain, [0003], “The disclosed architecture is an optimization mechanism that dynamically splits the computation in an application (e.g., cloud), that is, which parts run on a client (e.g., mobile device), and which parts run on servers in a datacenter”; [0068], “At 704, the components are partitioned based on developer or user preferences on how and where to run the components on a client side and a server side, which change during application execution resulting in components migrating from client to server, or server to client, and between different server nodes”; [0069], Jain disclosed partitioning application components based on aspects of the client device, the aspects including checking “to determine if CPU utilization at the client is less than a maximum”, and performing optimized partitioning between the client and server; The teachings of Jain therefore determine dynamically which parts of the application to run on the client based on the client’s CPU utilization, whether it is less than a maximum or not, i.e. greater than or equal to).
One of ordinary skill in the art would have been motivated to combine the teachings of Ye and Jain as they both involve offloading processing between client and server, and as such they are within similar environments.
Therefore it would have been obvious to one of ordinary skill in the art at the time the invention was filed to incorporate the offloading functionality of Jain within the teachings of Ye in order to optimize the processing for an application and its components between devices, thereby allowing the application to be agnostic as to completion of the workload task with respect to where computations are performed, to which developers no longer need to specially program such flexibility into the client application (Jain, [0003]).
Regarding claim 2, Ye and Jain disclosed the apparatus of claim 1, wherein the at least one processor is further configured to: determine a computational capacity of the client device (Ye, [0072] “At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example”; By determining where to offload potentially resource intensive operations, the teachings of Ye determine which of the client and server has the available computational capacity to perform such rendering operations).
Regarding claim 3, Ye and Jain disclosed the apparatus of claim 2, wherein to determine the computational capacity of the client device, the at least one processor is configured to: determine a thermal threshold level of the client device; determine a computational power level of the client device, wherein the computational power level of the client device includes a remaining battery level; or determine whether at least one of the client device or the server supports a minimum computational capacity (Ye, [0072] “At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example.”; By determining where to offload potentially resource intensive operations, the teachings of Ye determine which of the client and server has the available computational capacity to perform such rendering operations. Determining if the client has enough available capacity to perform the rendering operation equates to determining if the client supports a minimum computational capacity).
Regarding claim 4, Ye and Jain disclosed the apparatus of claim 2, wherein a computational distribution for the computation of the application between the client device and the server is based on the computational capacity of the client device (Ye, [0072] “At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example.”).
Regarding claim 5, Ye and Jain disclosed the apparatus of claim 2, wherein the computational capacity of the client device is a rendering computational capacity (Ye, [0072] “At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example”; By determining where to offload potentially resource intensive operations, the teachings of Ye determine which of the client and server has the available computational capacity to perform such rendering operations).
.
Regarding claim 6, Ye and Jain disclosed the apparatus of claim 1, wherein to obtain the indication of at least one of the quality, latency, or capacity of the communication link, the at least one processor is configured to: obtain a first indication of whether the communication link for the communication between the client device and the server supports a minimum quality, latency, or capacity level (Ye, [0049], “The VR content is adapted if the wireless link condition indication does not exceed a satisfactory wireless link condition threshold”; Determining if the wireless link condition; As noted above, the wireless link condition indication includes quality, latency, or capacity level, and therefore determining that any of these characteristics at least exceeds a particular threshold would amount to determining that wireless link supports this minimum threshold for that characteristic).
Regarding claim 7, Ye and Jain disclosed the apparatus of claim 1, wherein the at least one processor is further configured to: obtain a measurement of at least one of the quality, latency, or capacity of the communication link for the communication between the client device and the server (Ye, [0053], “The wireless link condition module 220 of the HMD 210 implements wireless link condition functions that measure one or more indicators of wireless link conditions”; See [0050], reciting that the conditions include: “one or both of an available bandwidth at the UE 120 or a latency characteristic of the wireless link. In addition, in some examples the wireless link condition indication can include one or more of a Quality of Service (QoS) information, a Channel Quality Indicator (CQI) information, a Channel Quality Measurement (CQM) information, a Channel State Information (CSI), a signal strength information, a channel aggregation information, a level of packet failure/re-transmission information, a signal-to-noise (SNR) information, or an interference information. It should be understood that other or additional wireless link conditions may be included in the wireless link condition indication).
Regarding claim 8, Ye disclosed an apparatus for computer processing at a client device, comprising:
memory; and at least one processor coupled to the memory (Ye, Fig. 5, 502, 503, [0022], [0074]-[0078]) and configured to: obtain an indication of at least one of a quality, latency, or capacity of a communication link for communication between the client device and a server;
determine a computational load at the client device for a computation of an application, wherein the computation of the application is associated with at least one of the client device or the server (Ye, [0071], “The CAE 116 may also optionally adapt a resolution of the VR content based on the network condition information.”; [0072], “ At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example”; Determining which of the client and server should perform particular rendering of resource intensive operations includes determining a computational load of the application computation that the client should perform, and a computational load of the application computation that the server should perform).
Ye did not explicitly disclose wherein the client device performs a first client level of the computation of the application if the determined computational load at the client device for the computation of the application is greater than or equal to a computational load threshold.
In an analogous art, Jain disclosed wherein the client device performs a first client level of the computation of the application if the determined computational load at the client device for the computation of the application is greater than or equal to a computational load threshold (Jain, [0003], “The disclosed architecture is an optimization mechanism that dynamically splits the computation in an application (e.g., cloud), that is, which parts run on a client (e.g., mobile device), and which parts run on servers in a datacenter”; [0068], “At 704, the components are partitioned based on developer or user preferences on how and where to run the components on a client side and a server side, which change during application execution resulting in components migrating from client to server, or server to client, and between different server nodes”; [0069], Jain disclosed partitioning application components based on aspects of the client device, the aspects including checking “to determine if CPU utilization at the client is less than a maximum”, and performing optimized partitioning between the client and server; The teachings of Jain therefore determine dynamically which parts of the application to run on the client based on the client’s CPU utilization, whether it is less than a maximum or not, i.e. greater than or equal to).
One of ordinary skill in the art would have been motivated to combine the teachings of Ye and Jain as they both involve offloading processing between client and server, and as such they are within similar environments.
Therefore it would have been obvious to one of ordinary skill in the art at the time the invention was filed to incorporate the offloading functionality of Jain within the teachings of Ye in order to optimize the processing for an application and its components between devices, thereby allowing the application to be agnostic as to completion of the workload task with respect to where computations are performed, to which developers no longer need to specially program such flexibility into the client application (Jain, [0003]).
Regarding claim 9, Ye and Jain disclosed the apparatus of claim 8, wherein the at least one processor is further configured to: determine a computational capacity of the client device (Ye, [0072] “At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example”; By determining where to offload potentially resource intensive operations, the teachings of Ye determine which of the client and server has the available computational capacity to perform such rendering operations).
Regarding claim 10, Ye and Jain disclosed the apparatus of claim 9, wherein to determine the computational capacity of the client device, the at least one processor is configured to: determine a thermal threshold level of the client device; determine a computational power level of the client device, wherein the computational power level of the client device includes a remaining battery level; or determine whether at least one of the client device or the server supports a minimum computational capacity (Ye, [0072] “At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example.”; By determining where to offload potentially resource intensive operations, the teachings of Ye determine which of the client and server has the available computational capacity to perform such rendering operations. Determining if the client has enough available capacity to perform the rendering operation equates to determining if the client supports a minimum computational capacity).
Regarding claim 11, Ye and Jain disclosed the apparatus of claim 9, wherein a computational distribution for the computation of the application between the client device and the server is based on the computational capacity of the client device (Ye, [0072] “At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example.”).
Regarding claim 12, Ye and Jain disclosed the apparatus of claim 9, wherein the computational capacity of the client device is a rendering computational capacity (Ye, [0072] “At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example”; By determining where to offload potentially resource intensive operations, the teachings of Ye determine which of the client and server has the available computational capacity to perform such rendering operations).
Regarding claim 13, Ye and Jain disclosed the apparatus of claim 8, wherein to obtain the indication of at least one of the quality, latency, or capacity of the communication link, the at least one processor is configured to: obtain a first indication of whether the communication link for the communication between the client device and the server supports a minimum quality, latency, or capacity level (Ye, [0049], “The VR content is adapted if the wireless link condition indication does not exceed a satisfactory wireless link condition threshold”; Determining if the wireless link condition; As noted above, the wireless link condition indication includes quality, latency, or capacity level, and therefore determining that any of these characteristics at least exceeds a particular threshold would amount to determining that wireless link supports this minimum threshold for that characteristic).
Regarding claim 14 Ye and Jain disclosed the apparatus of claim 8, wherein the at least one processor is further configured to: obtain a measurement of at least one of the quality, latency, or capacity of the communication link for the communication between the client device and the server (Ye, [0053], “The wireless link condition module 220 of the HMD 210 implements wireless link condition functions that measure one or more indicators of wireless link conditions”; See [0050], reciting that the conditions include: “one or both of an available bandwidth at the UE 120 or a latency characteristic of the wireless link. In addition, in some examples the wireless link condition indication can include one or more of a Quality of Service (QoS) information, a Channel Quality Indicator (CQI) information, a Channel Quality Measurement (CQM) information, a Channel State Information (CSI), a signal strength information, a channel aggregation information, a level of packet failure/re-transmission information, a signal-to-noise (SNR) information, or an interference information. It should be understood that other or additional wireless link conditions may be included in the wireless link condition indication).
Regarding claim 15, Ye disclosed an apparatus for computer processing at a server, comprising: memory; and at least one processor coupled to the memory (Ye, Fig. 5, 502, 503, [0022], [0074]-[0078]) and configured to:
obtain an indication of at least one of a quality, latency, or capacity of a communication link for communication between a client device and the server (Ye, [0050], "The edge resource 115 receives a wireless link condition indication from the UE requesting or receiving the VR content", in which the “wireless link condition indication” may include "an available bandwidth at the UE 120 or a latency characteristic of the wireless link”, and in addition, may also include “Quality of Service (QoS) information, a Channel Quality Indicator (CQI) information, a Channel Quality Measurement (CQM) information, a Channel State Information (CSI), a signal strength information, a channel aggregation information, a level of packet failure/re-transmission information, a signal-to-noise (SNR) information, or an interference information”; See also [0053] for additional condition indications; [0057], “The movement module 230 and the wireless link condition module 220 report the UE status data (e.g., data indicating the current or expected head movement and the wireless link condition) to the edge resource 115”; [0070], “The communication conditions may be determined at the UE, at 220, and reported to the CAE as indicated at 240.”);
determine a computational load at the server for a computation of an application, wherein the computation of the application is associated with at least one of the client device or the server (Ye, [0071], “The CAE 116 may also optionally adapt a resolution of the VR content based on the network condition information.”; [0072], “ At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example”; Determining which of the client and server should perform particular rendering of resource intensive operations includes determining a computational load of the application computation that the client should perform, and a computational load of the application computation that the server should perform).
Ye did not explicitly disclose wherein the server performs a first server level of the computation of the application if the determined computational load at the server for the computation of the application is less than a computational load threshold.
In an analogous art, Jain disclosed wherein the server performs a first server level of the computation of the application if the determined computational load at the server for the computation of the application is less than a computational load threshold (Jain, [0003], “The disclosed architecture is an optimization mechanism that dynamically splits the computation in an application (e.g., cloud), that is, which parts run on a client (e.g., mobile device), and which parts run on servers in a datacenter”; [0068], “At 704, the components are partitioned based on developer or user preferences on how and where to run the components on a client side and a server side, which change during application execution resulting in components migrating from client to server, or server to client, and between different server nodes”; [0069], Jain disclosed partitioning application components based on aspects of the client device, the aspects including checking “to determine if CPU utilization at the client is less than a maximum”, and performing optimized partitioning between the client and server; The teachings of Jain therefore determine dynamically which parts of the application to run on the client based on the client’s CPU utilization, whether it is less than a maximum or not, i.e. greater than or equal to; See also Figure 8, which includes checking the CPU utilization at both the client and the server, and partitioning the application parts accordingly).
One of ordinary skill in the art would have been motivated to combine the teachings of Ye and Jain as they both involve offloading processing between client and server, and as such they are within similar environments.
Therefore it would have been obvious to one of ordinary skill in the art at the time the invention was filed to incorporate the offloading functionality of Jain within the teachings of Ye in order to optimize the processing for an application and its components between devices, thereby allowing the application to be agnostic as to completion of the workload task with respect to where computations are performed, to which developers no longer need to specially program such flexibility into the client application (Jain, [0003]).
Regarding claim 16, Ye and Jain disclosed the apparatus of claim 15, wherein the at least one processor is further configured to: determine a computational capacity of the server (Ye, [0072] “At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example.”; By determining where to offload potentially resource intensive operations, the teachings of Ye determine which of the client and server has the available computational capacity to perform such rendering operations; See also Jain, [0069] Jain disclosed determining whether each of client and server are at their maximum processor utilization, and therefore their computational capacity).
Regarding claim 17, Ye and Jain disclosed the apparatus of claim 16, wherein to determine the computational capacity of the server, the at least one processor is configured to: determine a thermal threshold level of the server; determine a computational power level of the server; or determine whether at least one of the client device or the server supports a minimum computational capacity (Jain, [0069] Jain disclosed determining whether each of client and server are at their maximum processor utilization, and therefore their computational power).
Regarding claim 18, Ye and Jain disclosed the apparatus of claim 16, wherein a computational distribution for the computation of the application between the client device and the server is based on the computational capacity of the server (Jain, Fig. 8, 806-818, Jain disclosed determining how to partition the application parts based on both client and server capacity).
Regarding claim 19, Ye and Jain disclosed the apparatus of claim 16, wherein the computational capacity of the server is a rendering computational capacity (Ye, [0072] “At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example.”; By determining where to offload potentially resource intensive operations, the teachings of Ye determine which of the client and server has the available computational capacity to perform such rendering operations. Determining if the client has enough available capacity to perform the rendering operation equates to determining if the client supports a minimum computational capacity).
Regarding claim 20, Ye and Jain disclosed the apparatus of claim 15, wherein to obtain the indication of at least one of the quality, latency, or capacity of the communication link, the at least one processor is configured to: obtain a first indication of whether the communication link for the communication between the client device and the server supports a minimum quality, latency, or capacity level (Ye, [0049], “The VR content is adapted if the wireless link condition indication does not exceed a satisfactory wireless link condition threshold”; Determining if the wireless link condition; As noted above, the wireless link condition indication includes quality, latency, or capacity level, and therefore determining that any of these characteristics at least exceeds a particular threshold would amount to determining that wireless link supports this minimum threshold for that characteristic).
Regarding claim 21, Ye and Jain disclosed the apparatus of claim 15, wherein the at least one processor is further configured to: obtain a measurement of at least one of the quality, latency, or capacity of the communication link for the communication between the client device and the server (Ye, [0053], “The wireless link condition module 220 of the HMD 210 implements wireless link condition functions that measure one or more indicators of wireless link conditions”; See [0050], reciting that the conditions include: “one or both of an available bandwidth at the UE 120 or a latency characteristic of the wireless link. In addition, in some examples the wireless link condition indication can include one or more of a Quality of Service (QoS) information, a Channel Quality Indicator (CQI) information, a Channel Quality Measurement (CQM) information, a Channel State Information (CSI), a signal strength information, a channel aggregation information, a level of packet failure/re-transmission information, a signal-to-noise (SNR) information, or an interference information. It should be understood that other or additional wireless link conditions may be included in the wireless link condition indication).
Regarding claim 22, Ye disclosed an apparatus for computer processing at a server, comprising: memory; and at least one processor coupled to the memory (Ye, Fig. 5, 502, 503, [0022], [0074]-[0078]) and configured to:
obtain an indication of at least one of a quality, latency, or capacity of a communication link for communication between a client device and the server (Ye, [0050], "The edge resource 115 receives a wireless link condition indication from the UE requesting or receiving the VR content", in which the “wireless link condition indication” may include "an available bandwidth at the UE 120 or a latency characteristic of the wireless link”, and in addition, may also include “Quality of Service (QoS) information, a Channel Quality Indicator (CQI) information, a Channel Quality Measurement (CQM) information, a Channel State Information (CSI), a signal strength information, a channel aggregation information, a level of packet failure/re-transmission information, a signal-to-noise (SNR) information, or an interference information”; See also [0053] for additional condition indications; [0057], “The movement module 230 and the wireless link condition module 220 report the UE status data (e.g., data indicating the current or expected head movement and the wireless link condition) to the edge resource 115”; [0070], “The communication conditions may be determined at the UE, at 220, and reported to the CAE as indicated at 240.”);
determine a computational load at the server for a computation of an application, wherein the computation of the application is associated with at least one of the client device or the server (Ye, [0071], “The CAE 116 may also optionally adapt a resolution of the VR content based on the network condition information.”; [0072], “ At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example”; Determining which of the client and server should perform particular rendering of resource intensive operations includes determining a computational load of the application computation that the client should perform, and a computational load of the application computation that the server should perform).
Ye did not explicitly disclose wherein the server performs a first server level of the computation of the application if the determined computational load at the server for the computation of the application is greater than or equal to a computational load threshold.
In an analogous art, Jain disclosed wherein the server performs a first server level of the computation of the application if the determined computational load at the server for the computation of the application is greater than or equal to a computational load threshold (Jain, [0003], “The disclosed architecture is an optimization mechanism that dynamically splits the computation in an application (e.g., cloud), that is, which parts run on a client (e.g., mobile device), and which parts run on servers in a datacenter”; [0068], “At 704, the components are partitioned based on developer or user preferences on how and where to run the components on a client side and a server side, which change during application execution resulting in components migrating from client to server, or server to client, and between different server nodes”; [0069], Jain disclosed partitioning application components based on aspects of the client device, the aspects including checking “to determine if CPU utilization at the client is less than a maximum”, and performing optimized partitioning between the client and server; The teachings of Jain therefore determine dynamically which parts of the application to run on the client based on the client’s CPU utilization, whether it is less than a maximum or not, i.e. greater than or equal to; See also Figure 8, which includes checking the CPU utilization at both the client and the server, and partitioning the application parts accordingly).
One of ordinary skill in the art would have been motivated to combine the teachings of Ye and Jain as they both involve offloading processing between client and server, and as such they are within similar environments.
Therefore it would have been obvious to one of ordinary skill in the art at the time the invention was filed to incorporate the offloading functionality of Jain within the teachings of Ye in order to optimize the processing for an application and its components between devices, thereby allowing the application to be agnostic as to completion of the workload task with respect to where computations are performed, to which developers no longer need to specially program such flexibility into the client application (Jain, [0003]).
Regarding claim 23, Ye and Jain disclosed the apparatus of claim 22, wherein the at least one processor is further configured to: determine a computational capacity of the server (Ye, [0072] “At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example.”; By determining where to offload potentially resource intensive operations, the teachings of Ye determine which of the client and server has the available computational capacity to perform such rendering operations; See also Jain, [0069] Jain disclosed determining whether each of client and server are at their maximum processor utilization, and therefore their computational capacity).
Regarding claim 24, Ye and Jain disclosed the apparatus of claim 23, wherein to determine the computational capacity of the server, the at least one processor is configured to: determine a thermal threshold level of the server; determine a computational power level of the server; or determine whether at least one of the client device or the server supports a minimum computational capacity (Jain, [0069] Jain disclosed determining whether each of client and server are at their maximum processor utilization, and therefore their computational power).
Regarding claim 25, Ye and Jain disclosed the apparatus of claim 23, wherein a computational distribution for the computation of the application between the client device and the server is based on the computational capacity of the server (Jain, Fig. 8, 806-818, Jain disclosed determining how to partition the application parts based on both client and server capacity).
Regarding claim 26, Ye and Jain disclosed the apparatus of claim 23, wherein the computational capacity of the server is a rendering computational capacity (Ye, [0072] “At 460, the adapted VR content may be rendered by the edge resource to offload the potentially resource intensive operation from the UE, and at 470 the VR content is provided to the UE via the RAN 160. This rendering may be optional in some embodiments or may be optional in implementation, such as the rendering being performed if the edge resource has available capacity or if the target UE does not have the available capacity, for example.”; By determining where to offload potentially resource intensive operations, the teachings of Ye determine which of the client and server has the available computational capacity to perform such rendering operations. Determining if the client has enough available capacity to perform the rendering operation equates to determining if the client supports a minimum computational capacity).
Regarding claim 27, Ye and Jain disclosed the apparatus of claim 22, wherein to obtain the indication of at least one of the quality, latency, or capacity of the communication link, the at least one processor is configured to: obtain a first indication of whether the communication link for the communication between the client device and the server supports a minimum quality, latency, or capacity level (Ye, [0049], “The VR content is adapted if the wireless link condition indication does not exceed a satisfactory wireless link condition threshold”; Determining if the wireless link condition; As noted above, the wireless link condition indication includes quality, latency, or capacity level, and therefore determining that any of these characteristics at least exceeds a particular threshold would amount to determining that wireless link supports this minimum threshold for that characteristic)..
Regarding claim 28, Ye and Jain disclosed the apparatus of claim 22, wherein the at least one processor is further configured to: obtain a measurement of at least one of the quality, latency, or capacity of the communication link for the communication between the client device and the server (Ye, [0053], “The wireless link condition module 220 of the HMD 210 implements wireless link condition functions that measure one or more indicators of wireless link conditions”; See [0050], reciting that the conditions include: “one or both of an available bandwidth at the UE 120 or a latency characteristic of the wireless link. In addition, in some examples the wireless link condition indication can include one or more of a Quality of Service (QoS) information, a Channel Quality Indicator (CQI) information, a Channel Quality Measurement (CQM) information, a Channel State Information (CSI), a signal strength information, a channel aggregation information, a level of packet failure/re-transmission information, a signal-to-noise (SNR) information, or an interference information. It should be understood that other or additional wireless link conditions may be included in the wireless link condition indication).
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 1-7 and 15-21 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-22 of U.S. Patent No. 12113852. Although the claims at issue are not identical, they are not patentably distinct from each other because claims 1-22 of US Patent 12113852 include all of the limitations of claims 1-7 and 15-21 of the instant application, and therefore claims 1-22 of US Patent 12113852 anticipate claims 1-7 and 15-21 of the instant application, as shown by the table below.
Instant Application 18791331
US Patent 12113852
1. An apparatus for computer processing at a client device, comprising:
memory; and
at least one processor coupled to the memory and configured to:
obtain an indication of at least one of a quality, latency, or capacity of a communication link for communication between the client device and a server;
determine a computational load at the client device for a computation of an application, wherein the computation of the application is associated with at least one of the client device or the server; and
wherein the client device performs a first client level of the computation of the application if the determined computational load at the client device for the computation of the application is less than a computational load threshold.
2. The apparatus of claim 1, wherein the at least one processor is further configured to: determine a computational capacity of the client device.
3. The apparatus of claim 2, wherein to determine the computational capacity of the client device, the at least one processor is configured to: determine a thermal threshold level of the client device; determine a computational power level of the client device, wherein the computational power level of the client device includes a remaining battery level; or determine whether at least one of the client device or the server supports a minimum computational capacity.
4. The apparatus of claim 2, wherein a computational distribution for the computation of the application between the client device and the server is based on the computational capacity of the client device.
5. The apparatus of claim 2, wherein the computational capacity of the client device is a rendering computational capacity.
6. The apparatus of claim 1, wherein to obtain the indication of at least one of the quality, latency, or capacity of the communication link, the at least one processor is configured to: obtain a first indication of whether the communication link for the communication between the client device and the server supports a minimum quality, latency, or capacity level.
7. The apparatus of claim 1, wherein the at least one processor is further configured to: obtain a measurement of at least one of the quality, latency, or capacity of the communication link for the communication between the client device and the server.
15. An apparatus for computer processing at a server, comprising:
memory; and
at least one processor coupled to the memory and configured to:
obtain an indication of at least one of a quality, latency, or capacity of a communication link for communication between a client device and the server;
determine a computational load at the server for a computation of an application, wherein the computation of the application is associated with at least one of the client device or the server; and
wherein the server performs a first server level of the computation of the application if the determined computational load at the server for the computation of the application is less than a computational load threshold.
16. The apparatus of claim 15, wherein the at least one processor is further configured to: determine a computational capacity of the server.
17. The apparatus of claim 16, wherein to determine the computational capacity of the server, the at least one processor is configured to: determine a thermal threshold level of the server; determine a computational power level of the server; or determine whether at least one of the client device or the server supports a minimum computational capacity.
18. The apparatus of claim 16, wherein a computational distribution for the computation of the application between the client device and the server is based on the computational capacity of the server.
19. The apparatus of claim 16, wherein the computational capacity of the server is a rendering computational capacity.
20. The apparatus of claim 15, wherein to obtain the indication of at least one of the quality, latency, or capacity of the communication link, the at least one processor is configured to: obtain a first indication of whether the communication link for the communication between the client device and the server supports a minimum quality, latency, or capacity level.
21. The apparatus of claim 15, wherein the at least one processor is further configured to: obtain a measurement of at least one of the quality, latency, or capacity of the communication link for the communication between the client device and the server.
1. An apparatus for computer processing at a client device, comprising:
a memory; and
at least one processor coupled to the memory and configured to:
obtain an indication of at least one of a quality, latency, or capacity of a communication link for communication between the client device and a server;
determine a computational load at the client device for a computation of an application, wherein the computation of the application is associated with at least one of the client device or the server; and
select a computational distribution for the computation of the application between the client device and the server based on at least one of the computational load at the client device for the computation of the application or at least one of the quality, latency, or capacity of the communication link,
wherein the client device performs a first client level of the computation of the application and the server performs a first server level of the computation of the application if the determined computational load for the computation of the application is less than a computational load threshold.
2. The apparatus of claim 1, wherein the at least one processor is further configured to: determine a computational capacity of the client device.
3. The apparatus of claim 2, wherein to determine the computational capacity of the client device, the at least one processor is configured to: determine a thermal threshold level of the client device; determine a computational power level of the client device, wherein the computational power level of the client device includes a remaining battery level; or determine whether at least one of the client device or the server supports a minimum computational capacity.
4. The apparatus of claim 2, wherein the computational distribution for the computation of the application between the client device and the server is selected based on the computational capacity of the client device.
5. The apparatus of claim 2, wherein the computational capacity of the client device is a rendering computational capacity.
6. The apparatus of claim 1, wherein to obtain the indication of at least one of the quality, latency, or capacity of the communication link, the at least one processor is configured to: obtain a first indication of whether the communication link for the communication between the client device and the server supports a minimum quality, latency, or capacity level.
7. The apparatus of claim 1, wherein the at least one processor is further configured to: obtain a measurement of at least one of the quality, latency, or capacity of the communication link for the communication between the client device and the server.
8. The apparatus of claim 1, wherein the client device performs a second client level of the computation of the application and the server performs a second server level of the computation of the application if the determined computational load for the computation of the application is greater than or equal to a computational load threshold.
9. The apparatus of claim 1, wherein the computational distribution for the computation of the application between the client device and the server corresponds to a split extended reality (XR) architecture, a split augmented reality (AR) architecture, or a split virtual reality (VR) architecture.
10. The apparatus of claim 1, wherein the server is an edge server or a cloud server, and wherein the client device is a head mounted display (HMD) or a headset.
11. The apparatus of claim 1, wherein the computational distribution for the computation of the application between the client device and the server is selected by a central processing unit (CPU) or a graphics processing unit (GPU) at the client device.
12. The apparatus of claim 1, wherein the quality, latency, or capacity of the communication link is based on a quality of service (QOS) notification message, wherein the computational distribution is selected based on the QoS notification message, and wherein a time period of adjustment of the computational distribution is based on the QoS notification message.
13. The apparatus of claim 1, wherein the computation of the application is associated with one or more multimedia applications, wherein the one or more multimedia applications include at least one of one or more extended reality (XR) applications, one or more augmented reality (AR) applications, one or more virtual reality (VR) applications, one or more cloud gaming applications, or one or more cloud assisted perception applications.
14. An apparatus for computer processing at a server, comprising:
a memory; and
at least one processor coupled to the memory and configured to:
obtain an indication of at least one of a quality, latency, or capacity of a communication link for communication between a client device and the server;
determine a computational load at the server for a computation of an application, wherein the computation of the application is associated with at least one of the client device or the server; and
select a computational distribution for the computation of the application between the client device and the server based on at least one of the computational load at the server for the computation of the application or at least one of the quality, latency, or capacity of the communication link,
wherein the client device performs a first client level of the computation of the application and the server performs a first server level of the computation of the application if the determined computational load for the computation of the application is less than a computational load threshold.
15. The apparatus of claim 14, wherein the at least one processor is further configured to: determine a computational capacity of the server.
16. The apparatus of claim 15, wherein to determine the computational capacity of the server, the at least one processor is configured to: determine a thermal threshold level of the server; determine a computational power level of the server; or determine whether at least one of the client device or the server supports a minimum computational capacity.
17. The apparatus of claim 15, wherein the computational distribution for the computation of the application between the client device and the server is selected based on the computational capacity of the server.
18. The apparatus of claim 15, wherein the computational capacity of the server is a rendering computational capacity.
19. The apparatus of claim 14, wherein to obtain the indication of at least one of the quality, latency, or capacity of the communication link, the at least one processor is configured to: obtain a first indication of whether the communication link for the communication between the client device and the server supports a minimum quality, latency, or capacity level.
20. The apparatus of claim 14, wherein the at least one processor is further configured to: obtain a measurement of at least one of the quality, latency, or capacity of the communication link for the communication between the client device and the server.
21. The apparatus of claim 14, wherein the client device performs a second client level of the computation of the application and the server performs a second server level of the computation of the application if the determined computational load for the computation of the application is greater than or equal to a computational load threshold.
22. The apparatus of claim 14, wherein the computational distribution for the computation of the application between the client device and the server corresponds to a split extended reality (XR) architecture, a split augmented reality (AR) architecture, or a split virtual reality (VR) architecture.
Claims 1-7 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 18-34 of U.S. Patent No. 11252226. Although the claims at issue are not identical, they are not patentably distinct from each other because claims 18-34 of US Patent 11252226 include all of the limitations of claims 1-7 of the instant application, and therefore claims 18-34 of US Patent 11252226 anticipate claims 1-7 of the instant application, as shown by the table below.
Instant Application 18791331
US 11252226
1. An apparatus for computer processing at a client device, comprising:
memory; and
at least one processor coupled to the memory and configured to:
obtain an indication of at least one of a quality, latency, or capacity of a communication link for communication between the client device and a server;
determine a computational load at the client device for a computation of an application, wherein the computation of the application is associated with at least one of the client device or the server; and
wherein the client device performs a first client level of the computation of the application if the determined computational load at the client device for the computation of the application is less than a computational load threshold.
2. The apparatus of claim 1, wherein the at least one processor is further configured to: determine a computational capacity of the client device.
3. The apparatus of claim 2, wherein to determine the computational capacity of the client device, the at least one processor is configured to: determine a thermal threshold level of the client device;
determine a computational power level of the client device,
wherein the computational power level of the client device includes a remaining battery level; or determine whether at least one of the client device or the server supports a minimum computational capacity.
4. The apparatus of claim 2, wherein a computational distribution for the computation of the application between the client device and the server is based on the computational capacity of the client device.
5. The apparatus of claim 2, wherein the computational capacity of the client device is a rendering computational capacity.
6. The apparatus of claim 1, wherein to obtain the indication of at least one of the quality, latency, or capacity of the communication link, the at least one processor is configured to: obtain a first indication of whether the communication link for the communication between the client device and the server supports a minimum quality, latency, or capacity level.
7. The apparatus of claim 1, wherein the at least one processor is further configured to: obtain a measurement of at least one of the quality, latency, or capacity of the communication link for the communication between the client device and the server.
18. An apparatus for computer processing, comprising:
a memory; and
at least one processor coupled to the memory and configured to:
determine at least one of a quality, latency, or capacity of a communication link for communication between a client device and a server; [determining results in obtaining]
determine a computational load for an application computation between the client device and the server, wherein the determined computational load for the application computation is less than a computational load threshold, and
wherein, based on the determined computational load for the application computation being less than the computational load threshold, the client device performs a first client level of the application computation and the server performs a first server level of the application computation; determine a computational capacity of at least one of the client device or the server; and adjust a computational distribution for the application computation between the client device and the server based on at least one of the computational load for the application computation, the at least one of the quality, latency, or capacity of the communication link, and the computational capacity of at least one of the client device or the server.
19. The apparatus of claim 18, wherein to determine the computational capacity of at least one of the client device or the server comprises the at least one processor further configured to: determine a thermal threshold level of at least one of the client device or the server.
20. The apparatus of claim 18, wherein to determine the computational capacity of at least one of the client device or the server comprises the at least one processor further configured to: determine a computational power level of at least one of the client device or the server.
21. The apparatus of claim 20, wherein the computational power level of the client device includes a remaining battery level.
[See claim 18]
22. The apparatus of claim 18, wherein to determine the computational capacity of at least one of the client device or the server comprises the at least one processor further configured to: determine whether at least one of the client device or the server supports a minimum computational capacity.
23. The apparatus of claim 18, wherein the computational capacity of at least one of the client device or the server is a rendering computational capacity.
24. The apparatus of claim 18, wherein to determine at least one of the quality, latency, or capacity of the communication link for communication between the client device and the server comprises the at least one processor further configured to: determine whether the communication link for communication between the client device and the server supports a minimum quality, latency, or capacity level.
25. The apparatus of claim 18, wherein the at least one processor is further configured to: measure at least one of the quality, latency, or capacity of the communication link for communication between the client device and the server.
26. The apparatus of claim 18, wherein the client device performs a second client level of the application computation and the server performs a second server level of the application computation when the determined computational load for the application computation is greater than or equal to the computational load threshold.
27. The apparatus of claim 18, wherein the computational distribution for the application computation between the client device and the server corresponds to a split extended reality (XR) architecture, a split augmented reality (AR) architecture, or a split virtual reality (VR) architecture.
28. The apparatus of claim 18, wherein the server is an edge server or a cloud server.
29. The apparatus of claim 18, wherein the client device is a head mounted display (HMD) or a headset.
30. The apparatus of claim 18, wherein the computational distribution for the application computation between the client device and the server is adjusted by a central processing unit (CPU) or a graphics processing unit (GPU).
31. The apparatus of claim 18, wherein the quality, latency, or capacity of the communication link is determined based on a quality of service (QoS) notification message, wherein the computational distribution is adjusted based on the QoS notification message.
32. The apparatus of claim 31, wherein a time period of adjustment of the computational distribution is based on the QoS notification message, wherein the time period of adjustment is at least 100 ms.
33. The apparatus of claim 18, wherein the application computation is for multimedia applications.
34. The apparatus of claim 33, wherein the multimedia applications include at least one of XR applications, AR applications, VR applications, cloud gaming applications, or cloud assisted perception applications.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Sabella et al. (US 20200076875) disclosed offloading computational tasks from UE’s (Sabella, [0041]).
Chang (US 10057373) disclosed determining whether a personal computer or a server should perform operations on a data set (Chang, col. 5, lines 40-60).
Meijer et al. (US 8364751) disclosed partitioning the operations between client and server (Meijer, col. 4, lines 20-60).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JERRY B DENNISON whose telephone number is (571)272-3910. The examiner can normally be reached M-F 8:30-5:50.
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, Hadi Armouche can be reached on 571-270-3618. 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.
/JERRY B DENNISON/Primary Examiner, Art Unit 2409