IP Library Granted Patent US 10,834,358
Granted Patent B1
US 10,834,358 · App. 16/237,130 · Granted Nov 10, 2020

Enhancing video quality based on metadata at a client device having more processing power in a system of client devices having different amounts of processing power

Inventors: Jason Francis Harrison (San Jose, CA); Timo Juhani Ahonen (Belmont, CA)
Assignee: Facebook, Inc.
H04N7/147H04N5/2628
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 10,834,358
App. No.
16/237,130
Granted
Nov 10, 2020
Kind
B1
Abstract

A system includes multiple client devices that are capable of capturing and displaying video data, in which at least two of the client devices have different amounts of processing power. A connection is established at a client device having more processing power to a client device having less processing power. The client device having more processing power receives video data captured by the client device having less processing power as well as metadata associated with the video data via the connection as the video data are being captured by the client device having less processing power. The client device having more processing power processes the video data based on the metadata associated with the video data within a duration of the connection, thereby enhancing a quality of the video data. The processed video data are then displayed at the client device having more processing power.

Claims (66)

1. A method comprising:

establishing, at a first client device, a videoconferencing session with a second client device in which the first client device and the second client device capture and send video data to the other and display captured video data of the other, and wherein the first client device has more processing power than the second client device;

receiving, at the first client device, video data captured by the second client device via the connection;

receiving, at the first client device, metadata associated with the captured video data via the connection;

processing at the first client device, the captured video data based at least in part on the metadata within a duration of the videoconferencing session, such that a quality of the captured video data is enhanced; and

displaying the processed video data at the first client device.

2. The method of claim 1 , wherein the first client device and the second client device are capable of capturing and playing audio data.

3. The method of claim 2 , further comprising:

receiving audio data captured by the second client device via the connection;

receiving additional metadata associated with the captured audio data via the connection;

processing the captured audio data based at least in part on the additional metadata within the duration of the connection, such that a quality of the captured audio data is enhanced; and

playing the processed audio data at the first client device.

4. The method of claim 3 , wherein processing the captured audio data based at least in part on the additional metadata within the duration of the connection comprises:

identifying a background noise included among the captured audio data based at least in part on information comprising the additional metadata describing the background noise; and

generating a sound wave that cancels the background noise included among the captured audio data when played in conjunction with the audio data at the first client device.

5. The method of claim 1 , wherein processing the captured video data based at least in part on the metadata within the duration of the connection comprises:

determining a motion of the second client device based at least in part on information comprising the metadata describing the motion of the second client device; and

stabilizing an image included among the captured video data based at least in part on the motion of the second client device.

6. The method of claim 1 , wherein processing the captured video data based at least in part on the metadata within the duration of the connection comprises:

identifying information comprising the metadata describing a first measurement associated with a color of a pixel included among the captured video data;

determining a second measurement associated with the color of the pixel included among the captured video data if the pixel were rendered at the first client device;

determining a difference between the first measurement and the second measurement; and

modifying the color of the pixel based at least in part on the difference.

7. The method of claim 1 , wherein processing the captured video data based at least in part on the metadata within the duration of the connection comprises:

partitioning a frame included among the captured video data into a plurality of segments based at least in part on information comprising the metadata describing each position of a plurality of pixels comprising the frame;

identifying a background of the frame included among the captured video data corresponding to a set of the plurality of segments;

detecting background motion within the captured video data; and

reducing the background motion within the captured video data.

8. The method of claim 7 , wherein the background motion within the captured video data is reduced by blurring the background.

9. The method of claim 7 , wherein the first client device corresponds to a stationary device and the second client device corresponds to a mobile device.

10. The method of claim 1 , wherein processing the captured video data based at least in part of the metadata within the duration of the connection comprises:

determining whether to enhance a resolution of the captured video data based at least in part on information comprising the metadata describing a context in which the captured video data were captured; and

responsive to determining that the resolution of the captured video data should be enhanced, upsampling a plurality of pixels included among the captured video data.

11. A computer program product comprising a non-transitory computer readable storage medium having instructions encoded thereon that, when executed by a processor, cause the processor to:

establish a videoconferencing session between a first client device and a second client device in which the first client device and the second client device capture and send video data to the other and display captured video data of the other, and wherein the first client device has more processing power than the second client device;

receive, at the first client device, video data captured by the second client device via the connection;

receive, at the first client device, metadata associated with the captured video data via the connection;

process, at the first client device, the captured video data based at least in part on the metadata within a duration of the videoconferencing session, such that a quality of the captured video data is enhanced; and

display the processed video data at the first client device.

12. The computer program product of claim 11 , wherein the first client device and the second client device are capable of capturing and playing audio data.

13. The computer program product of claim 12 , wherein the computer readable storage medium further has instructions encoded thereon that, when executed by the processor, cause the processor to:

receive audio data captured by the second client device via the connection;

receive additional metadata associated with the captured audio data via the connection;

process the captured audio data based at least in part on the additional metadata within the duration of the connection, such that a quality of the captured audio data is enhanced; and

play the processed audio data at the first client device.

14. The computer program product of claim 13 , wherein process the captured audio data based at least in part on the additional metadata within the duration of the connection comprises:

identify a background noise included among the captured audio data based at least in part on information comprising the additional metadata describing the background noise; and

generate a sound wave that cancels the background noise included among the captured audio data when played in conjunction with the audio data at the first client device.

15. The computer program product of claim 11 , wherein process the captured video data based at least in part on the metadata within the duration of the connection comprises:

determine a motion of the second client device based at least in part on information comprising the metadata describing the motion of the second client device; and

stabilize an image included among the captured video data based at least in part on the motion of the second client device.

16. The computer program product of claim 11 , wherein process the captured video data based at least in part on the metadata within the duration of the connection comprises:

identify information comprising the metadata describing a first measurement associated with a color of a pixel included among the captured video data;

determine a second measurement associated with the color of the pixel included among the captured video data if the pixel were rendered at the first client device;

determine a difference between the first measurement and the second measurement; and

modify the color of the pixel based at least in part on the difference.

17. The computer program product of claim 11 , wherein process the captured video data based at least in part on the metadata within the duration of the connection comprises:

partition a frame included among the captured video data into a plurality of segments based at least in part on information comprising the metadata describing each position of a plurality of pixels comprising the frame;

identify a background of frame included among the captured video data corresponding to a set of the plurality of segments;

detect a background motion within the captured video data; and

reduce the background motion within the captured video data.

18. The computer program product of claim 17 , wherein the background motion within the captured video data is reduced by blurring the background.

19. The computer program product of claim 17 , wherein the first client device corresponds to a stationary device and the second client device corresponds to a mobile device.

20. The computer program product of claim 11 , wherein process the captured video data based at least in part on the metadata within the duration of the connection comprises:

determine whether to enhance a resolution of the captured video data based at least in part on information comprising the metadata describing a context in which the captured video data were captured; and

responsive to determining that the resolution of the captured video data should be enhanced, upsample a plurality of pixels included among the captured video data.

Assignments (2)
CHANGE OF NAME Recorded Nov 18, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058897/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2019
From: HARRISON, JASON FRANCIS; AHONEN, TIMO JUHANI
To: FACEBOOK, INC.
Reel/Frame 048502/0385 →
Cited By (2)
US 12,585,625 US 12,665,937