IP Library › Granted Patent US 12,219,173
Granted Patent B2
US 12,219,173 · App. 18/509,074 · Granted Feb 4, 2025

Encoding output for streaming applications based on client upscaling capabilities

Inventors: Prabindh Sundareson (Karnataka, IN); Sachin Pandhare (Karnataka, IN); Shyam Raikar (Maharashtra, IN)
Assignee: NVIDIA Corporation
H04N19/59H04N19/105H04N19/146
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,219,173
App. No.
18/509,074
Granted
Feb 4, 2025
Kind
B2
Abstract

In various examples, the decoding and upscaling capabilities of a client device are analyzed to determine encoding parameters and operations used by a content streaming server to generate encoded video streams. The quality of the upscaled content of the client device may be monitored by the streaming servers such that the encoding parameters may be updated based on the monitored quality. In this way, the encoding operations of one or more streaming servers may be more effectively matched to the decoding and upscaling abilities of one or more client devise such that an increased number of client devices may be served by the streaming servers.

Claims (63)

1. A method comprising:

receiving, from a client device, feedback data corresponding to one or more upscaled versions of one or more first encoded frames transmitted using one or more streams of video data to the client device, the feedback data being generated using the client device, wherein the one or more first encoded frames are generated by applying one or more encoding parameters to one or more video frames;

determining, using the feedback data, one or more indicators of visual quality of the one or more upscaled versions of the one or more first encoded frames relative to the one or more video frames, the one or more indicators of visual quality corresponding to a level of visual similarity between the one or more upscaled versions of the one or more first encoded frames and the one or more video frames;

determining, based at least on the one or more indicators of visual quality, one or more updated encoding parameters comprising at least one updated parameter value corresponding to at least one encoding parameter of the one or more encoding parameters; and

transmitting one or more second encoded frames in the one or more streams of video data to the client device to cause the client device to generate one or more upscaled versions of the one or more second encoded frames, the one or more second encoded frames being encoded using the one or more updated encoding parameters.

2. The method of claim 1 , wherein the feedback data includes one or more portions of the one or more upscaled versions of the one or more first encoded frames, and

the determining the one or more indicators of visual quality includes comparing the one or more portions of the one or more upscaled versions of the one or more first encoded frames to one or more corresponding portions of the one or more video frames.

3. The method of claim 1 , wherein the applying the one or more encoding parameters includes downscaling the one or more video frames to a first resolution indicated by the one or more encoding parameters to generate the one or more first encoded frames having the first resolution, and

wherein the one or more updated encoding parameters indicate a second resolution for the one or more second encoded frames based at least on the one or more indicators of visual quality.

4. The method of claim 1 , wherein the one or more streams of video data include one or more streams of output frames from an executing application instance, wherein the one or more video frames are included in the output frames.

5. The method of claim 1 , further comprising, based at least on the determining the one or more updated encoding parameters, applying the one or more updated encoding parameters to one or more second video frames to generate the one or more second encoded frames.

6. The method of claim 1 , wherein the one or more updated encoding parameters control a frame resolution for the one or more streams of video data.

7. A system comprising:

one or more processing units to execute operations including:

receiving, from a client device, feedback data corresponding to one or more upscaled versions of one or more first frames, the one or more first frames being decoded and upscaled using the client device and based on one or more streams of video data;

determining, using the feedback data, one or more indicators of visual quality of the one or more upscaled versions of the one or more first frames relative to one or more video frames used to generate the one or more first frames, the one or more indicators of visual quality corresponding to a level of visual similarity between the one or more upscaled versions of the one or more first frames and the one or more video frames;

selecting one or more encoding parameters based at least on the one or more indicators of visual quality; and

generating one or more second frames encoded using the one or more encoding parameters.

8. The system of claim 7 , wherein the feedback data includes one or more portions of the one or more upscaled versions of the one or more first frames, and

the determining the one or more indicators of visual quality includes comparing the one or more portions of the one or more upscaled versions of the one or more first frames to one or more corresponding portions of the one or more video frames.

9. The system of claim 7 , wherein the one or more first frames have a first resolution prior to being upscaled using the client device, and

the one or more encoding parameters define a second resolution for the one or more second frames based at least on the one or more indicators of visual quality.

10. The system of claim 7 , wherein the one or more streams of video data include one or more streams of output frames from an executing application instance, the one or more video frames included in the output frames.

11. The system of claim 7 , wherein the operations further include, based at least on the selecting the one or more encoding parameters, applying the one or more encoding parameters to one or more second video frames to generate the one or more second frames.

12. The system of claim 7 , wherein the one or more encoding parameters control a frame resolution for the one or more streams of video data.

13. The system of claim 7 , wherein the system is comprised in at least one of:

a control system for an autonomous or semi-autonomous machine;

a perception system for an autonomous or semi-autonomous machine;

a system for performing simulation operations;

a system for performing light transport simulation;

a system for performing collaborative content creation for 3D assets;

a system for performing deep learning operations;

a system implemented using an edge device;

a system implemented using a robot;

a system for performing conversational AI operations;

a system for generating synthetic data;

a system incorporating one or more virtual machines (VMs);

a system implemented at least partially in a data center; or

a system implemented at least partially using cloud computing resources.

14. A processor comprising:

one or more circuits to generate one or more encoded frames in one or more streams of video data using one or more encoding parameters, the one or more encoding parameters based at least on one or more indicators of visual quality, the one or more indicators of visual quality determined based at least on:

receiving, from a client device, feedback data corresponding to one or more upscaled versions of one or more frames decoded and upscaled from the one or more streams of video data using the client device; and

comparing, using the feedback data, the one or more upscaled versions of the one or more frames to one or more video frames used to generate the one or more frames, wherein the one or more indicators of visual quality correspond to a level of visual similarity between the one or more upscaled versions of the one or more frames and the one or more video frames.

15. The processor of claim 14 , wherein the feedback data includes one or more portions of the one or more upscaled versions of the one or more frames.

16. The processor of claim 14 , wherein the one or more frames have a first resolution prior to being upscaled using the client device, and

the one or more encoding parameters define a second resolution for the one or more encoded frames based at least on the one or more indicators of visual quality.

17. The processor of claim 14 , wherein the one or more streams of video data include one or more streams of output frames from an executing application instance, the one or more video frames included in the output frames.

18. The processor of claim 14 , wherein the one or more circuits are further to, based at least on the one or more encoding parameters, apply the one or more encoding parameters to one or more second video frames to generate the one or more encoded frames.

19. The processor of claim 14 , wherein the one or more encoding parameters control a frame resolution for the one or more streams of video data.

20. The processor of claim 14 , wherein the processor is comprised in at least one of:

a control system for an autonomous or semi-autonomous machine;

a perception system for an autonomous or semi-autonomous machine;

a system for performing simulation operations;

a system for performing light transport simulation;

a system for performing collaborative content creation for 3D assets;

a system for performing deep learning operations;

a system implemented using an edge device;

a system implemented using a robot;

a system for performing conversational AI operations;

a system for generating synthetic data;

a system incorporating one or more virtual machines (VMs);

a system implemented at least partially in a data center; or

a system implemented at least partially using cloud computing resources.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2023
From: SUNDARESON, PRABINDH; PANDHARE, SACHIN; RAIKAR, SHYAM
To: NVIDIA CORPORATION
Reel/Frame 065561/0952 →
Continuity (2)
Continuation 17683140 · Feb 28, 2022
Related Publication 20240098303A1 · Mar 21, 2024
References Cited (35)
US 6580754B1 · Wan et al. · 2003 [cited by applicant]
US 8683542B1 · Henry · 2014 [cited by applicant]
US 9854020B1 · Kum · 2017 [cited by examiner]
US 10194188B1 · Kum et al. · 2019 [cited by applicant]
US 10856030B1 · Kum et al. · 2020 [cited by applicant]
US 11308637B2 · Li · 2022 [cited by examiner]
US 11818192B2 · Sundareson · 2023 [cited by examiner]
US 11855991B1 · Jenkins · 2023 [cited by examiner]
US 11902503B1 · Valli · 2024 [cited by examiner]
US 20050114894A1 · Hoerl · 2005 [cited by applicant]
US 20050251834A1 · Hulbig · 2005 [cited by applicant]
US 20070109324A1 · Lin · 2007 [cited by applicant]
US 20090087120A1 · Wei · 2009 [cited by applicant]
US 20130013098A1 · Gentile et al. · 2013 [cited by applicant]
US 20160086316A1 · Lee et al. · 2016 [cited by applicant]
US 20160212482A1 · Balko · 2016 [cited by applicant]
US 20190342555A1 · Dimitrov et al. · 2019 [cited by applicant]
US 20200265273A1 · Wei · 2020 [cited by examiner]
US 20210065712A1 · Holm · 2021 [cited by examiner]
US 20210129019A1 · Colenbrander · 2021 [cited by applicant]
US 20210233210A1 · Elron et al. · 2021 [cited by applicant]
US 20210295148A1 · Gonsalves · 2021 [cited by examiner]
US 20220374714A1 · Nayak · 2022 [cited by examiner]
US 20220417467A1 · Roeder · 2022 [cited by examiner]
US 20230275950A1 · Sundareson et al. · 2023 [cited by applicant]
CA 2712409A1 · 2011 [cited by applicant]
CN 114501031A · 2022 [cited by examiner]
DE 102021128623A1 · 2022 [cited by applicant]
EP 3846478A1 · 2021 [cited by examiner]
Sundareson, Prabindh; Non-Final Office Action for U.S. Appl. No. 17/683,140, filed Feb. 28, 2022, mailed Sep. 15, 2022, 15 pgs. [cited by applicant]
Sundareson, Prabindh; Final Office Action for U.S. Appl. No. 17/683,140, filed Feb. 28, 2022, mailed Jan. 3, 2023, 17 pgs. [cited by applicant]
Sundareson, et al.; Notice of Allowance for U.S. Appl. No. 17/683,140, filed Feb. 28, 2022, mailed Jun. 20, 2023, 16 pgs. [cited by applicant]
“Automatically Adjust Quality when streaming”, Plex Support, Retrieved from Internet URL: https://support.plex.tv/articles/115007570148-automatically-adjust-quality-when-streaming/, accessed Mar. 7, 2022, last modified … [cited by applicant]
“Microsoft Stream (Classic) Video delivery and network overview”, Microsoft Stream | Microsoft Docs, Retrieved from Internet URL: https://docs.microsoft.com/en-US/stream/network-overview, accessed on Mar. 7, 2022, (Feb.… [cited by applicant]
Aaron, et al.; “Per-Title Encode Optimization,” By Netflix Technology Blog | Netflix TechBlog, Retrieved from Internet URL: https://netflixtechblog.com/per-title-encode-optimization-7e99442b62a2, accessed Mar. 7, 2022, … [cited by applicant]